diff --git a/assets/css/widget-set.css b/assets/css/widget-set.css
deleted file mode 100644
index 1ade03d6..00000000
--- a/assets/css/widget-set.css
+++ /dev/null
@@ -1,311 +0,0 @@
-.widget_ui_slider_box > img {
- width: calc(60% - 6px);
- margin: 3px;
-}
-.widget_ui_slider_g {
- padding: 5px 0;
-}
-.ashu_upload_button,
-.delimg_upload_button {
- margin: 3px !important;
-}
-.ok_button {
- float: right;
-}
-.hide {
- display: none !important;
-}
-.panel-hide {
- display: none;
-}
-.panel {
- border: 1px solid #ddd;
- display: block;
-}
-.panel .panel-title {
- margin: 0;
- padding: 10px;
- background: #f4f5f6;
-}
-.panel .panel-conter {
- padding: 6px;
-}
-.panel .panel-title:before {
- content: '\f140';
- font: normal 20px/1 dashicons;
- margin: -2px;
- float: right;
-}
-/**---------------侧栏小工具:按栏导出/导入(工具条 + 弹层)-----------**/
-.aksrt-wie-toolbar {
- margin: 8px 0 12px;
-}
-
-.aksrt-wie-toolbar .button {
- margin-right: 6px;
- margin-bottom: 4px;
-}
-
-.aksrt-wie-modal {
- display: none;
- position: fixed;
- inset: 0;
- z-index: 1000100;
- align-items: center;
- justify-content: center;
- padding: 20px;
- box-sizing: border-box;
-}
-
-.aksrt-wie-modal.is-open {
- display: flex;
-}
-
-.aksrt-wie-modal__backdrop {
- position: absolute;
- inset: 0;
- background: rgba(0, 0, 0, 0.45);
-}
-
-.aksrt-wie-modal__dialog {
- position: relative;
- z-index: 1;
- width: 100%;
- max-width: min(920px, 96vw);
- max-height: 90vh;
- overflow: auto;
- background: #fff;
- border-radius: 6px;
- border: 1px solid #c3c4c7;
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.14);
- padding: 18px 20px 16px;
- box-sizing: border-box;
-}
-
-.aksrt-wie-modal__close {
- position: absolute;
- top: 10px;
- right: 10px;
- width: 2em;
- height: 2em;
- padding: 0;
- border: none;
- background: transparent;
- cursor: pointer;
- font-size: 20px;
- line-height: 1;
- color: #646970;
-}
-
-.aksrt-wie-modal__close:hover {
- color: #1d2327;
-}
-
-.aksrt-wie-modal__title {
- margin: 0 32px 10px 0;
- font-size: 16px;
- line-height: 1.3;
-}
-
-.aksrt-wie-modal__hint {
- margin: 0 0 10px;
- font-size: 13px;
-}
-
-.aksrt-wie-modal__import-mode {
- margin: 0 0 12px;
- padding: 10px 12px;
- background: #f6f7f7;
- border: 1px solid #dcdcde;
- border-radius: 4px;
- display: flex;
- align-items: baseline;
- gap: 16px;
- flex-wrap: wrap;
-}
-
-.aksrt-wie-modal__import-mode-title {
- margin: 0 0 8px;
- font-weight: 600;
-}
-
-.aksrt-wie-modal__import-mode-row {
- display: block;
- margin: 6px 0 0;
- cursor: pointer;
-}
-
-.aksrt-wie-modal__import-mode-row input {
- margin-right: 6px;
- vertical-align: middle;
-}
-
-.aksrt-wie-modal__textarea {
- width: 100%;
- min-height: 240px;
- font-family: Consolas, Monaco, monospace;
- font-size: 12px;
- line-height: 1.45;
- box-sizing: border-box;
-}
-
-.aksrt-wie-modal__actions {
- margin: 12px 0 0;
- display: flex;
- flex-wrap: wrap;
- gap: 8px;
- align-items: center;
-}
-
-.aksrt-wie-modal__result {
- margin: 10px 0 0;
- font-size: 13px;
-}
-
-.aksrt-wie-modal__result.is-ok {
- color: #008a20;
-}
-
-.aksrt-wie-modal__result.is-warn {
- color: #996800;
-}
-
-.aksrt-wie-modal__result.is-err {
- color: #d63638;
-}
-
-.aksrt-wie-modal__reload-wrap {
- margin: 12px 0 0;
-}
-
-.aksrt-wie-template-layer {
- z-index: 1000120;
-}
-
-.aksrt-wie-template-list-wrap {
- margin-bottom: 12px;
-}
-
-.aksrt-wie-template-list {
- max-height: 42vh;
- overflow: auto;
- display: flex;
- gap: 10px;
- flex-wrap: wrap;
-}
-
-.aksrt-wie-template-item {
- flex: 1 1 30%;
- min-width: 360px;
-}
-
-.aksrt-wie-template-item:last-child {
- border-bottom: none;
-}
-
-.aksrt-wie-template-item-row {
- display: flex;
- align-items: flex-start;
- gap: 8px;
- height: 100%;
-}
-
-.aksrt-wie-template-item-label {
- display: flex;
- flex: 1 1 auto;
- gap: 10px;
- align-items: flex-start;
- margin: 0;
- cursor: pointer;
- min-width: 0;
- padding: 10px 12px;
- background: #fbfbfb;
- border-radius: 8px;
- border: 1px solid #efeeee;
- height: stretch;
-}
-
-.aksrt-wie-template-item-label:hover {
- background: #f7fbfe;
-}
-
-.aksrt-wie-template-item-label input[type='radio'] {
- margin-top: 3px;
- flex-shrink: 0;
-}
-
-.aksrt-wie-template-item-expand {
- flex-shrink: 0;
- margin-top: 0 !important;
- line-height: 1;
- min-height: 28px;
- padding-left: 8px !important;
- padding-right: 8px !important;
-}
-
-.aksrt-wie-template-expand-icon {
- display: inline-block;
- vertical-align: middle;
-}
-
-.aksrt-wie-template-expand-icon::before {
- content: '';
- display: block;
- width: 0;
- height: 0;
- border-top: 5px solid transparent;
- border-bottom: 5px solid transparent;
- border-left: 6px solid #50575e;
- transition: transform 0.15s ease;
-}
-
-.aksrt-wie-template-item-expand.is-expanded .aksrt-wie-template-expand-icon::before {
- transform: rotate(90deg);
-}
-
-.aksrt-wie-template-item-modules {
- padding: 0 12px 12px 40px;
- margin: 0;
- background: #f6f7f7;
- border-top: 1px solid #eee;
-}
-
-.aksrt-wie-template-module-list {
- margin: 8px 0 0;
- padding-left: 1.2em;
- font-size: 13px;
- line-height: 1.5;
-}
-
-.aksrt-wie-template-module-list li {
- margin-bottom: 4px;
-}
-
-.aksrt-wie-template-module-id {
- font-size: 11px;
- color: #646970;
- margin-left: 4px;
-}
-
-.aksrt-wie-template-item-meta {
- display: flex;
- flex-direction: column;
- gap: 4px;
-}
-
-.aksrt-wie-template-item-title {
- font-weight: 600;
-}
-
-.aksrt-wie-template-item-remind {
- font-size: 12px;
- color: #fc844c;
- line-height: 1.4;
-}
-
-.aksrt-wie-template-item-desc {
- font-size: 12px;
- color: #646970;
- line-height: 1.4;
-}
-
diff --git a/assets/css/widget-set.min.css b/assets/css/widget-set.min.css
deleted file mode 100644
index e6482021..00000000
--- a/assets/css/widget-set.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.widget_ui_slider_box>img{width:calc(60% - 6px);margin:3px}.widget_ui_slider_g{padding:5px 0}.ashu_upload_button,.delimg_upload_button{margin:3px!important}.ok_button{float:right}.hide{display:none!important}.panel-hide{display:none}.panel{border:1px solid #ddd;display:block}.panel .panel-title{margin:0;padding:10px;background:#f4f5f6}.panel .panel-conter{padding:6px}.panel .panel-title:before{content:'\f140';font:normal 20px/1 dashicons;margin:-2px;float:right}.aksrt-wie-toolbar{margin:8px 0 12px}.aksrt-wie-toolbar .button{margin-right:6px;margin-bottom:4px}.aksrt-wie-modal{display:none;position:fixed;inset:0;z-index:1000100;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}.aksrt-wie-modal.is-open{display:flex}.aksrt-wie-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}.aksrt-wie-modal__dialog{position:relative;z-index:1;width:100%;max-width:min(920px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:6px;border:1px solid #c3c4c7;box-shadow:0 8px 32px rgba(0,0,0,.14);padding:18px 20px 16px;box-sizing:border-box}.aksrt-wie-modal__close{position:absolute;top:10px;right:10px;width:2em;height:2em;padding:0;border:none;background:0 0;cursor:pointer;font-size:20px;line-height:1;color:#646970}.aksrt-wie-modal__close:hover{color:#1d2327}.aksrt-wie-modal__title{margin:0 32px 10px 0;font-size:16px;line-height:1.3}.aksrt-wie-modal__hint{margin:0 0 10px;font-size:13px}.aksrt-wie-modal__import-mode{margin:0 0 12px;padding:10px 12px;background:#f6f7f7;border:1px solid #dcdcde;border-radius:4px;display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.aksrt-wie-modal__import-mode-title{margin:0 0 8px;font-weight:600}.aksrt-wie-modal__import-mode-row{display:block;margin:6px 0 0;cursor:pointer}.aksrt-wie-modal__import-mode-row input{margin-right:6px;vertical-align:middle}.aksrt-wie-modal__textarea{width:100%;min-height:240px;font-family:Consolas,Monaco,monospace;font-size:12px;line-height:1.45;box-sizing:border-box}.aksrt-wie-modal__actions{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.aksrt-wie-modal__result{margin:10px 0 0;font-size:13px}.aksrt-wie-modal__result.is-ok{color:#008a20}.aksrt-wie-modal__result.is-warn{color:#996800}.aksrt-wie-modal__result.is-err{color:#d63638}.aksrt-wie-modal__reload-wrap{margin:12px 0 0}.aksrt-wie-template-layer{z-index:1000120}.aksrt-wie-template-list-wrap{margin-bottom:12px}.aksrt-wie-template-list{max-height:42vh;overflow:auto;display:flex;gap:10px;flex-wrap:wrap}.aksrt-wie-template-item{flex:1 1 30%;min-width:360px}.aksrt-wie-template-item:last-child{border-bottom:none}.aksrt-wie-template-item-row{display:flex;align-items:flex-start;gap:8px;height:100%}.aksrt-wie-template-item-label{display:flex;flex:1 1 auto;gap:10px;align-items:flex-start;margin:0;cursor:pointer;min-width:0;padding:10px 12px;background:#fbfbfb;border-radius:8px;border:1px solid #efeeee;height:stretch}.aksrt-wie-template-item-label:hover{background:#f7fbfe}.aksrt-wie-template-item-label input[type=radio]{margin-top:3px;flex-shrink:0}.aksrt-wie-template-item-expand{flex-shrink:0;margin-top:0!important;line-height:1;min-height:28px;padding-left:8px!important;padding-right:8px!important}.aksrt-wie-template-expand-icon{display:inline-block;vertical-align:middle}.aksrt-wie-template-expand-icon::before{content:'';display:block;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid #50575e;transition:transform .15s ease}.aksrt-wie-template-item-expand.is-expanded .aksrt-wie-template-expand-icon::before{transform:rotate(90deg)}.aksrt-wie-template-item-modules{padding:0 12px 12px 40px;margin:0;background:#f6f7f7;border-top:1px solid #eee}.aksrt-wie-template-module-list{margin:8px 0 0;padding-left:1.2em;font-size:13px;line-height:1.5}.aksrt-wie-template-module-list li{margin-bottom:4px}.aksrt-wie-template-module-id{font-size:11px;color:#646970;margin-left:4px}.aksrt-wie-template-item-meta{display:flex;flex-direction:column;gap:4px}.aksrt-wie-template-item-title{font-weight:600}.aksrt-wie-template-item-remind{font-size:12px;color:#fc844c;line-height:1.4}.aksrt-wie-template-item-desc{font-size:12px;color:#646970;line-height:1.4}
\ No newline at end of file
diff --git a/assets/widgets/admin.js b/assets/widgets/admin.js
index 6fee714b..d18eca4e 100644
--- a/assets/widgets/admin.js
+++ b/assets/widgets/admin.js
@@ -165,6 +165,7 @@
frame.on('select', () => {
const attachment = frame.state().get('selection').first().toJSON();
$wrap.find('input[type="url"]').val(attachment.url).trigger('change');
+ if ($wrap.data('media-library') === 'video') return;
let $image = $wrap.find('img');
if (!$image.length) $image = $('').prependTo($wrap);
$image.attr('src', attachment.url);
diff --git a/src/WidgetSystem/FormRenderer.php b/src/WidgetSystem/FormRenderer.php
index 828a4fae..1a0ac2d3 100644
--- a/src/WidgetSystem/FormRenderer.php
+++ b/src/WidgetSystem/FormRenderer.php
@@ -193,7 +193,8 @@ final class FormRenderer {
private static function upload(string $id, string $name, string $value, string $library = ''): void {
$library = in_array($library, ['image', 'video'], true) ? $library : '';
echo '