@toototech/webbuilder-plugins 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +3 -0
  3. package/dist/basic/cssScope.d.ts +3 -0
  4. package/dist/basic/index.d.ts +81 -0
  5. package/dist/basic/injectStyle.d.ts +20 -0
  6. package/dist/basic/plugin.d.ts +19 -0
  7. package/dist/basic/publisher.d.ts +4 -0
  8. package/dist/basic/registries/interactive/accordion/index.d.ts +3 -0
  9. package/dist/basic/registries/interactive/backButton/index.d.ts +3 -0
  10. package/dist/basic/registries/interactive/button/index.d.ts +10 -0
  11. package/dist/basic/registries/interactive/countUp/index.d.ts +9 -0
  12. package/dist/basic/registries/interactive/customCode/index.d.ts +3 -0
  13. package/dist/basic/registries/interactive/index.d.ts +2 -0
  14. package/dist/basic/registries/interactive/inquiryForm/index.d.ts +3 -0
  15. package/dist/basic/registries/interactive/klaviyoSubscribe/index.d.ts +3 -0
  16. package/dist/basic/registries/interactive/popup/index.d.ts +5 -0
  17. package/dist/basic/registries/interactive/salesmartlyChatButton/index.d.ts +10 -0
  18. package/dist/basic/registries/interactive/search/index.d.ts +10 -0
  19. package/dist/basic/registries/interactive/socialShare/index.d.ts +33 -0
  20. package/dist/basic/registries/interactive/tabs/index.d.ts +3 -0
  21. package/dist/basic/registries/layout/container/index.d.ts +19 -0
  22. package/dist/basic/registries/layout/divider/index.d.ts +7 -0
  23. package/dist/basic/registries/layout/grid/index.d.ts +11 -0
  24. package/dist/basic/registries/layout/index.d.ts +2 -0
  25. package/dist/basic/registries/layout/layoutBase/index.d.ts +10 -0
  26. package/dist/basic/registries/layout/section/index.d.ts +3 -0
  27. package/dist/basic/registries/layout/sectionGridBlock/index.d.ts +3 -0
  28. package/dist/basic/registries/layout/spacer/index.d.ts +7 -0
  29. package/dist/basic/registries/media/banner/index.d.ts +11 -0
  30. package/dist/basic/registries/media/carousel/index.d.ts +6 -0
  31. package/dist/basic/registries/media/flipbook/index.d.ts +5 -0
  32. package/dist/basic/registries/media/icon/index.d.ts +3 -0
  33. package/dist/basic/registries/media/image/index.d.ts +3 -0
  34. package/dist/basic/registries/media/index.d.ts +2 -0
  35. package/dist/basic/registries/media/industryTabs/index.d.ts +3 -0
  36. package/dist/basic/registries/media/marquee/index.d.ts +4 -0
  37. package/dist/basic/registries/media/ourSolutions/helpers.d.ts +289 -0
  38. package/dist/basic/registries/media/ourSolutions/index.d.ts +4 -0
  39. package/dist/basic/registries/media/ourSolutions/script.d.ts +1 -0
  40. package/dist/basic/registries/media/ourSolutions/style.d.ts +1 -0
  41. package/dist/basic/registries/media/pdfViewer/index.d.ts +3 -0
  42. package/dist/basic/registries/media/productCategories/index.d.ts +4 -0
  43. package/dist/basic/registries/media/tabMediaGallery/index.d.ts +3 -0
  44. package/dist/basic/registries/media/video/index.d.ts +12 -0
  45. package/dist/basic/registries/navigation/footer/index.d.ts +10 -0
  46. package/dist/basic/registries/navigation/index.d.ts +2 -0
  47. package/dist/basic/registries/navigation/languageSwitcher/index.d.ts +6 -0
  48. package/dist/basic/registries/navigation/logo/index.d.ts +9 -0
  49. package/dist/basic/registries/navigation/navbar/constants.d.ts +38 -0
  50. package/dist/basic/registries/navigation/navbar/factories.d.ts +848 -0
  51. package/dist/basic/registries/navigation/navbar/helpers.d.ts +12 -0
  52. package/dist/basic/registries/navigation/navbar/index.d.ts +4 -0
  53. package/dist/basic/registries/navigation/navbar/registerMegaTypes.d.ts +2 -0
  54. package/dist/basic/registries/navigation/navbar/registerMenuTypes.d.ts +2 -0
  55. package/dist/basic/registries/navigation/navbar/registerRootTypes.d.ts +2 -0
  56. package/dist/basic/registries/navigation/navbar/script.d.ts +1 -0
  57. package/dist/basic/registries/navigation/navbar/style.d.ts +1 -0
  58. package/dist/basic/registries/navigation/socialLinks/index.d.ts +3 -0
  59. package/dist/basic/registries/section/allApplications/index.d.ts +3 -0
  60. package/dist/basic/registries/section/cardCarouselSection/index.d.ts +3 -0
  61. package/dist/basic/registries/section/caseSpotlight/index.d.ts +3 -0
  62. package/dist/basic/registries/section/companyScale/index.d.ts +3 -0
  63. package/dist/basic/registries/section/customizationGrid/index.d.ts +3 -0
  64. package/dist/basic/registries/section/factoryMap/index.d.ts +3 -0
  65. package/dist/basic/registries/section/focaHistoryTimeline/index.d.ts +3 -0
  66. package/dist/basic/registries/section/historyTimeline/index.d.ts +3 -0
  67. package/dist/basic/registries/section/homeBannerCarousel/index.d.ts +4 -0
  68. package/dist/basic/registries/section/hotspotShowcase/index.d.ts +30 -0
  69. package/dist/basic/registries/section/index.d.ts +2 -0
  70. package/dist/basic/registries/section/map/index.d.ts +4 -0
  71. package/dist/basic/registries/section/milestoneCardStrip/index.d.ts +3 -0
  72. package/dist/basic/registries/section/moreCardCarousel/index.d.ts +3 -0
  73. package/dist/basic/registries/section/ourAdvantages/index.d.ts +4 -0
  74. package/dist/basic/registries/section/overviewSplit/index.d.ts +3 -0
  75. package/dist/basic/registries/section/processTimeline/index.d.ts +3 -0
  76. package/dist/basic/registries/section/productCardStrip/index.d.ts +3 -0
  77. package/dist/basic/registries/section/resourceSection/index.d.ts +6 -0
  78. package/dist/basic/registries/section/responsiveHeroCarousel/index.d.ts +4 -0
  79. package/dist/basic/registries/section/serviceIconGrid/index.d.ts +4 -0
  80. package/dist/basic/registries/section/servicesCarousel/index.d.ts +4 -0
  81. package/dist/basic/registries/section/servicesShowcase/index.d.ts +4 -0
  82. package/dist/basic/registries/section/servicesThb/index.d.ts +4 -0
  83. package/dist/basic/registries/section/solutionList/index.d.ts +4 -0
  84. package/dist/basic/registries/section/staticPinMap/index.d.ts +4 -0
  85. package/dist/basic/registries/section/statsCards/index.d.ts +3 -0
  86. package/dist/basic/registries/section/swiperRuntime.d.ts +3 -0
  87. package/dist/basic/registries/shared/sharedTraits.d.ts +37 -0
  88. package/dist/basic/registries/types.d.ts +5 -0
  89. package/dist/basic/registries/typography/heading/index.d.ts +8 -0
  90. package/dist/basic/registries/typography/index.d.ts +2 -0
  91. package/dist/basic/registries/typography/textEditor/index.d.ts +6 -0
  92. package/dist/basic/registryManifest.d.ts +9 -0
  93. package/dist/basic/styleHelpers.d.ts +29 -0
  94. package/dist/basic/svgIcon.d.ts +11 -0
  95. package/dist/basic/traitBridge.d.ts +20 -0
  96. package/dist/basic/traitFactory.d.ts +106 -0
  97. package/dist/basic.js +1146 -0
  98. package/dist/cms/cmsFactory.d.ts +164 -0
  99. package/dist/cms/dynamicRenderPipeline.d.ts +12 -0
  100. package/dist/cms/index.d.ts +31 -0
  101. package/dist/cms/plugin.d.ts +12 -0
  102. package/dist/cms/publisher.d.ts +7 -0
  103. package/dist/cms/registries/dynamic/cms/constants.d.ts +16 -0
  104. package/dist/cms/registries/dynamic/cms/dynamicField/bindings.d.ts +78 -0
  105. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/breadcrumbBlock.d.ts +1 -0
  106. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/conditionalBlock.d.ts +1 -0
  107. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/datetimeBlock.d.ts +1 -0
  108. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/htmlBlock.d.ts +1 -0
  109. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/imageBlock.d.ts +1 -0
  110. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/linkBlock.d.ts +1 -0
  111. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/seoBlock.d.ts +1 -0
  112. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/textBlock.d.ts +1 -0
  113. package/dist/cms/registries/dynamic/cms/dynamicField/blocks/tocBlock.d.ts +1 -0
  114. package/dist/cms/registries/dynamic/cms/dynamicField/constants.d.ts +19 -0
  115. package/dist/cms/registries/dynamic/cms/dynamicField/helpers.d.ts +52 -0
  116. package/dist/cms/registries/dynamic/cms/dynamicField/registerBlock.d.ts +57 -0
  117. package/dist/cms/registries/dynamic/cms/dynamicField/styles.d.ts +7 -0
  118. package/dist/cms/registries/dynamic/cms/media/previewMediaTrait.d.ts +7 -0
  119. package/dist/cms/registries/dynamic/cms/menu/siteMenuAttrs.d.ts +11 -0
  120. package/dist/cms/registries/dynamic/cms/menuTree/menuTreeAttrs.d.ts +8 -0
  121. package/dist/cms/registries/dynamic/cms/post/styles.d.ts +6 -0
  122. package/dist/cms/registries/dynamic/cms/product/detail.styles.d.ts +1 -0
  123. package/dist/cms/registries/dynamic/cms/product/detailV2.styles.d.ts +1 -0
  124. package/dist/cms/registries/dynamic/cms/product/previewProductTrait.d.ts +6 -0
  125. package/dist/cms/registries/dynamic/cms/product/styles.d.ts +6 -0
  126. package/dist/cms/registries/dynamic/dataProvider.d.ts +45 -0
  127. package/dist/cms/registries/dynamic/loopGrid/paginationStyles.d.ts +5 -0
  128. package/dist/cms/registries/dynamic/loopGrid/preview.d.ts +16 -0
  129. package/dist/cms/registries/dynamic/loopGrid/publisher.d.ts +3 -0
  130. package/dist/cms/registries/dynamic/loopGrid/types.d.ts +97 -0
  131. package/dist/cms/registries/navigation/navbarThb/index.d.ts +3 -0
  132. package/dist/cms/registries/navigation/navbarThb/script.d.ts +1 -0
  133. package/dist/cms/registries/navigation/navbarThb/style.d.ts +1 -0
  134. package/dist/cms.js +4535 -0
  135. package/dist/global-settings/components/FontFamilySelect.vue.d.ts +29 -0
  136. package/dist/global-settings/components/FontManagerPanel.vue.d.ts +37 -0
  137. package/dist/global-settings/index.d.ts +8 -0
  138. package/dist/global-settings/plugin.d.ts +3 -0
  139. package/dist/global-settings/publisher.d.ts +15 -0
  140. package/dist/global-settings/runtime/canvasInjection.d.ts +13 -0
  141. package/dist/global-settings/runtime/panelDraftSave.d.ts +17 -0
  142. package/dist/global-settings/runtime/settingsSource.d.ts +4 -0
  143. package/dist/global-settings/useFontManager.d.ts +38 -0
  144. package/dist/global-settings/useGoogleFonts.d.ts +20 -0
  145. package/dist/global-settings/vue.d.ts +1 -0
  146. package/dist/global-settings.js +66 -0
  147. package/dist/i18n/I18nPanel.vue.d.ts +23 -0
  148. package/dist/i18n/i18n.d.ts +25 -0
  149. package/dist/i18n/index.d.ts +7 -0
  150. package/dist/i18n/languageOrder.d.ts +9 -0
  151. package/dist/i18n/plugin.d.ts +21 -0
  152. package/dist/i18n/types.d.ts +101 -0
  153. package/dist/i18n/useWebBuilderI18n.d.ts +164 -0
  154. package/dist/i18n/vue.d.ts +1 -0
  155. package/dist/i18n-BYR3l48y.js +959 -0
  156. package/dist/i18n.js +929 -0
  157. package/dist/index-CxJlLwvG.js +35378 -0
  158. package/dist/index-DWfJ4PBm.js +5724 -0
  159. package/dist/index.d.ts +9 -0
  160. package/dist/index.js +12 -0
  161. package/dist/layout-template/components/LayoutPanel.vue.d.ts +37 -0
  162. package/dist/layout-template/components/TemplateRulesPanel.vue.d.ts +41 -0
  163. package/dist/layout-template/config/layoutSharedResources.d.ts +9 -0
  164. package/dist/layout-template/config/templateSharedResources.d.ts +28 -0
  165. package/dist/layout-template/index.d.ts +9 -0
  166. package/dist/layout-template/plugin.d.ts +13 -0
  167. package/dist/layout-template/runtime/storageAdapter.d.ts +49 -0
  168. package/dist/layout-template/utils/layoutProjectData.d.ts +15 -0
  169. package/dist/layout-template/utils/layoutRulePages.d.ts +19 -0
  170. package/dist/layout-template/utils/layoutSettings.d.ts +45 -0
  171. package/dist/layout-template/utils/templateRules.d.ts +52 -0
  172. package/dist/layout-template/vue.d.ts +2 -0
  173. package/dist/layout-template.js +435 -0
  174. package/dist/layoutSettings-D4SYUMri.js +252 -0
  175. package/dist/plugin-BPA8qlaC.js +40 -0
  176. package/dist/plugin-C0PrxrIe.js +228 -0
  177. package/dist/plugin-DQshk1sY.js +361 -0
  178. package/dist/plugin-DebyCjXx.js +191 -0
  179. package/dist/plugin-Dr6TOtyH.js +73 -0
  180. package/dist/publisher/index.d.ts +5 -0
  181. package/dist/publisher/publisherAssets.d.ts +9 -0
  182. package/dist/publisher/publisherComponents.d.ts +7 -0
  183. package/dist/publisher/publisherPlugins.d.ts +12 -0
  184. package/dist/publisher-C6VWXq8u.js +25 -0
  185. package/dist/publisher.js +1711 -0
  186. package/dist/solar-BsElUqfQ.js +29843 -0
  187. package/dist/style.css +1181 -0
  188. package/dist/templateSharedResources-D1u7eFIs.js +89 -0
  189. package/dist/types-DNbok59z.js +2359 -0
  190. package/dist/useFontManager-CdrLq1eG.js +336 -0
  191. package/dist/vue.d.ts +3 -0
  192. package/dist/vue.js +2171 -0
  193. package/package.json +77 -0
package/dist/style.css ADDED
@@ -0,0 +1,1181 @@
1
+
2
+ .wb-font-trigger[data-v-e45386ba] {
3
+ display: flex;
4
+ align-items: center;
5
+ gap: 6px;
6
+ width: 100%;
7
+ height: 28px;
8
+ padding: 0 8px;
9
+ border: 1px solid #e5e7eb;
10
+ border-radius: 6px;
11
+ background: #f9fafb;
12
+ cursor: pointer;
13
+ transition: border-color 0.15s, background 0.15s;
14
+ overflow: hidden;
15
+ }
16
+ .wb-font-trigger[data-v-e45386ba]:hover {
17
+ border-color: #a5b4fc;
18
+ background: #fff;
19
+ }
20
+ .wb-font-trigger-label[data-v-e45386ba] {
21
+ flex: 1;
22
+ min-width: 0;
23
+ color: #374151;
24
+ font-size: 12px;
25
+ overflow: hidden;
26
+ text-align: left;
27
+ text-overflow: ellipsis;
28
+ white-space: nowrap;
29
+ }
30
+ .wb-font-panel[data-v-e45386ba] {
31
+ display: flex;
32
+ flex-direction: column;
33
+ }
34
+ .wb-fp-search[data-v-e45386ba] {
35
+ padding: 8px 8px 6px;
36
+ border-bottom: 1px solid #f0f0f0;
37
+ }
38
+ .wb-fp-tabs[data-v-e45386ba] {
39
+ display: flex;
40
+ flex-shrink: 0;
41
+ border-bottom: 1px solid #f0f0f0;
42
+ }
43
+ .wb-fp-tab[data-v-e45386ba] {
44
+ flex: 1;
45
+ height: 30px;
46
+ border: none;
47
+ border-bottom: 2px solid transparent;
48
+ background: none;
49
+ color: #9ca3af;
50
+ cursor: pointer;
51
+ font-size: 11px;
52
+ font-weight: 500;
53
+ transition: color 0.15s, border-color 0.15s;
54
+ }
55
+ .wb-fp-tab[data-v-e45386ba]:hover { color: #374151;
56
+ }
57
+ .wb-fp-tab--active[data-v-e45386ba] { color: #4f46e5; border-bottom-color: #4f46e5;
58
+ }
59
+ .wb-fp-list[data-v-e45386ba] {
60
+ flex: 1;
61
+ max-height: 320px;
62
+ overflow-x: hidden;
63
+ overflow-y: auto;
64
+ padding: 4px 0;
65
+ }
66
+ .wb-fp-item[data-v-e45386ba] {
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: space-between;
70
+ gap: 6px;
71
+ width: 100%;
72
+ padding: 5px 10px;
73
+ border: none;
74
+ background: none;
75
+ cursor: pointer;
76
+ transition: background 0.1s;
77
+ }
78
+ .wb-fp-item[data-v-e45386ba]:hover { background: #f3f4f6;
79
+ }
80
+ .wb-fp-item--active[data-v-e45386ba] { background: #eef2ff;
81
+ }
82
+ .wb-fp-name[data-v-e45386ba] {
83
+ flex: 1;
84
+ min-width: 0;
85
+ color: #374151;
86
+ font-size: 12px;
87
+ overflow: hidden;
88
+ text-align: left;
89
+ text-overflow: ellipsis;
90
+ white-space: nowrap;
91
+ }
92
+ .wb-fp-preview[data-v-e45386ba] {
93
+ flex-shrink: 0;
94
+ min-width: 22px;
95
+ color: #6b7280;
96
+ font-size: 14px;
97
+ text-align: right;
98
+ white-space: nowrap;
99
+ }
100
+ .wb-fp-loading[data-v-e45386ba] {
101
+ display: flex;
102
+ align-items: center;
103
+ justify-content: center;
104
+ gap: 6px;
105
+ padding: 24px 0;
106
+ color: #9ca3af;
107
+ font-size: 12px;
108
+ }
109
+ .wb-fp-sentinel[data-v-e45386ba] {
110
+ display: flex;
111
+ align-items: center;
112
+ justify-content: center;
113
+ height: 32px;
114
+ }
115
+ .wb-fp-sentinel-hint[data-v-e45386ba] {
116
+ color: #9ca3af;
117
+ }
118
+ .wb-fp-end[data-v-e45386ba] {
119
+ padding: 6px 0 8px;
120
+ color: #d1d5db;
121
+ font-size: 11px;
122
+ text-align: center;
123
+ }
124
+ .wb-fp-empty[data-v-e45386ba] {
125
+ padding: 20px;
126
+ color: #9ca3af;
127
+ font-size: 11px;
128
+ text-align: center;
129
+ }
130
+
131
+ .font-manager[data-v-d94b5511] {
132
+ padding: 12px;
133
+ border-top: 1px solid #f0f0f0;
134
+ }
135
+ .fm-header[data-v-d94b5511] {
136
+ display: flex;
137
+ align-items: center;
138
+ justify-content: space-between;
139
+ margin-bottom: 8px;
140
+ }
141
+ .fm-global[data-v-d94b5511] {
142
+ padding: 8px;
143
+ margin-bottom: 10px;
144
+ border: 1px solid #e5e7eb;
145
+ border-radius: 6px;
146
+ background: #fafbfc;
147
+ }
148
+ .fm-section-title[data-v-d94b5511] {
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: space-between;
152
+ gap: 8px;
153
+ margin-bottom: 6px;
154
+ color: #374151;
155
+ font-size: 11px;
156
+ font-weight: 600;
157
+ }
158
+ .fm-reset-btn[data-v-d94b5511] {
159
+ padding: 0;
160
+ border: none;
161
+ background: none;
162
+ color: #6b7280;
163
+ cursor: pointer;
164
+ font-size: 10px;
165
+ }
166
+ .fm-reset-btn[data-v-d94b5511]:hover {
167
+ color: #2251ff;
168
+ }
169
+ .fm-helper[data-v-d94b5511] {
170
+ margin-top: 6px;
171
+ color: #9ca3af;
172
+ font-size: 10px;
173
+ line-height: 16px;
174
+ }
175
+ .fm-delivery[data-v-d94b5511] {
176
+ display: flex;
177
+ align-items: center;
178
+ justify-content: space-between;
179
+ gap: 8px;
180
+ padding: 8px;
181
+ margin-bottom: 10px;
182
+ border: 1px solid #e5e7eb;
183
+ border-radius: 6px;
184
+ background: #fff;
185
+ }
186
+ .fm-delivery-copy[data-v-d94b5511] {
187
+ display: flex;
188
+ flex-direction: column;
189
+ min-width: 0;
190
+ }
191
+ .fm-delivery-title[data-v-d94b5511] {
192
+ color: #374151;
193
+ font-size: 11px;
194
+ font-weight: 600;
195
+ line-height: 16px;
196
+ }
197
+ .fm-delivery-desc[data-v-d94b5511] {
198
+ color: #9ca3af;
199
+ font-size: 10px;
200
+ line-height: 15px;
201
+ }
202
+ .fm-switch[data-v-d94b5511] {
203
+ position: relative;
204
+ flex-shrink: 0;
205
+ width: 34px;
206
+ height: 20px;
207
+ padding: 0;
208
+ border: none;
209
+ border-radius: 999px;
210
+ background: #d1d5db;
211
+ cursor: pointer;
212
+ transition: background 0.15s;
213
+ }
214
+ .fm-switch--active[data-v-d94b5511] {
215
+ background: #4f46e5;
216
+ }
217
+ .fm-switch-thumb[data-v-d94b5511] {
218
+ position: absolute;
219
+ top: 2px;
220
+ left: 2px;
221
+ width: 16px;
222
+ height: 16px;
223
+ border-radius: 999px;
224
+ background: #fff;
225
+ box-shadow: 0 1px 2px rgb(15 23 42 / 18%);
226
+ transition: transform 0.15s;
227
+ }
228
+ .fm-switch--active .fm-switch-thumb[data-v-d94b5511] {
229
+ transform: translateX(14px);
230
+ }
231
+ .fm-tabs[data-v-d94b5511] {
232
+ display: flex;
233
+ margin-bottom: 8px;
234
+ overflow: hidden;
235
+ border: 1px solid #e5e7eb;
236
+ border-radius: 6px;
237
+ }
238
+ .fm-tab[data-v-d94b5511] {
239
+ flex: 1;
240
+ height: 28px;
241
+ border: none;
242
+ background: #f9fafb;
243
+ color: #6b7280;
244
+ cursor: pointer;
245
+ font-size: 11px;
246
+ font-weight: 500;
247
+ transition: all 0.15s;
248
+ }
249
+ .fm-tab[data-v-d94b5511]:not(:last-child) {
250
+ border-right: 1px solid #e5e7eb;
251
+ }
252
+ .fm-tab[data-v-d94b5511]:hover {
253
+ color: #374151;
254
+ background: #f3f4f6;
255
+ }
256
+ .fm-tab--active[data-v-d94b5511] {
257
+ color: #4f46e5;
258
+ background: #fff;
259
+ font-weight: 600;
260
+ }
261
+ .fm-search[data-v-d94b5511] {
262
+ margin-bottom: 8px;
263
+ }
264
+ .fm-list[data-v-d94b5511] {
265
+ max-height: 360px;
266
+ overflow-x: hidden;
267
+ overflow-y: auto;
268
+ }
269
+ .fm-browse-list[data-v-d94b5511] {
270
+ max-height: 320px;
271
+ }
272
+ .fm-empty[data-v-d94b5511] {
273
+ display: flex;
274
+ flex-direction: column;
275
+ align-items: center;
276
+ padding: 20px 0;
277
+ }
278
+ .fm-browse-btn[data-v-d94b5511] {
279
+ display: flex;
280
+ align-items: center;
281
+ gap: 4px;
282
+ margin-top: 8px;
283
+ padding: 4px 12px;
284
+ border: 1px solid #c7d2fe;
285
+ border-radius: 5px;
286
+ background: none;
287
+ color: #4f46e5;
288
+ cursor: pointer;
289
+ font-size: 11px;
290
+ transition: background 0.15s;
291
+ }
292
+ .fm-browse-btn[data-v-d94b5511]:hover {
293
+ background: #eef2ff;
294
+ }
295
+ .fm-installed-item[data-v-d94b5511] {
296
+ margin-bottom: 4px;
297
+ overflow: hidden;
298
+ border: 1px solid #f0f0f0;
299
+ border-radius: 6px;
300
+ }
301
+ .fm-installed-row[data-v-d94b5511] {
302
+ display: flex;
303
+ align-items: center;
304
+ gap: 6px;
305
+ padding: 6px 8px;
306
+ cursor: pointer;
307
+ transition: background 0.1s;
308
+ }
309
+ .fm-installed-row[data-v-d94b5511]:hover {
310
+ background: #f9fafb;
311
+ }
312
+ .fm-font-name[data-v-d94b5511] {
313
+ flex: 1;
314
+ min-width: 0;
315
+ color: #374151;
316
+ font-size: 12px;
317
+ overflow: hidden;
318
+ text-overflow: ellipsis;
319
+ white-space: nowrap;
320
+ }
321
+ .fm-font-meta[data-v-d94b5511],
322
+ .fm-font-category[data-v-d94b5511] {
323
+ flex-shrink: 0;
324
+ color: #9ca3af;
325
+ font-size: 10px;
326
+ }
327
+ .fm-icon-btn[data-v-d94b5511] {
328
+ display: flex;
329
+ flex-shrink: 0;
330
+ align-items: center;
331
+ justify-content: center;
332
+ width: 22px;
333
+ height: 22px;
334
+ border: none;
335
+ border-radius: 4px;
336
+ background: none;
337
+ cursor: pointer;
338
+ transition: background 0.15s;
339
+ }
340
+ .fm-icon-btn[data-v-d94b5511]:hover {
341
+ background: #f3f4f6;
342
+ }
343
+ .fm-variants[data-v-d94b5511] {
344
+ padding: 8px;
345
+ border-top: 1px solid #f0f0f0;
346
+ background: #fafbfc;
347
+ }
348
+ .fm-variant-label[data-v-d94b5511] {
349
+ margin-bottom: 6px;
350
+ color: #9ca3af;
351
+ font-size: 10px;
352
+ }
353
+ .fm-variant-grid[data-v-d94b5511] {
354
+ display: grid;
355
+ grid-template-columns: repeat(3, 1fr);
356
+ gap: 3px;
357
+ }
358
+ .fm-variant-checkbox[data-v-d94b5511] {
359
+ display: flex;
360
+ align-items: center;
361
+ gap: 4px;
362
+ padding: 2px 0;
363
+ color: #374151;
364
+ cursor: pointer;
365
+ font-size: 10px;
366
+ }
367
+ .fm-variant-checkbox input[data-v-d94b5511] {
368
+ width: 12px;
369
+ height: 12px;
370
+ margin: 0;
371
+ accent-color: #4f46e5;
372
+ }
373
+ .fm-variant-text[data-v-d94b5511] {
374
+ overflow: hidden;
375
+ text-overflow: ellipsis;
376
+ white-space: nowrap;
377
+ }
378
+ .fm-preview-text[data-v-d94b5511] {
379
+ padding: 4px 0 0;
380
+ color: #6b7280;
381
+ font-size: 12px;
382
+ line-height: 1.4;
383
+ overflow: hidden;
384
+ text-overflow: ellipsis;
385
+ white-space: nowrap;
386
+ }
387
+ .fm-browse-item[data-v-d94b5511] {
388
+ transition: background 0.1s;
389
+ }
390
+ .fm-browse-item[data-v-d94b5511]:hover {
391
+ background: #f9fafb;
392
+ }
393
+ .fm-browse-row[data-v-d94b5511] {
394
+ display: flex;
395
+ align-items: center;
396
+ gap: 6px;
397
+ padding: 5px 4px;
398
+ }
399
+ .fm-install-btn[data-v-d94b5511] {
400
+ display: flex;
401
+ flex-shrink: 0;
402
+ align-items: center;
403
+ gap: 2px;
404
+ padding: 2px 8px;
405
+ border: 1px solid #c7d2fe;
406
+ border-radius: 4px;
407
+ background: #fff;
408
+ color: #4f46e5;
409
+ cursor: pointer;
410
+ font-size: 10px;
411
+ font-weight: 500;
412
+ transition: all 0.15s;
413
+ }
414
+ .fm-install-btn[data-v-d94b5511]:hover {
415
+ border-color: #818cf8;
416
+ background: #eef2ff;
417
+ }
418
+ .fm-installed-badge[data-v-d94b5511] {
419
+ display: flex;
420
+ flex-shrink: 0;
421
+ align-items: center;
422
+ gap: 2px;
423
+ padding: 2px 8px;
424
+ border: 1px solid #a7f3d0;
425
+ border-radius: 4px;
426
+ background: #ecfdf5;
427
+ color: #059669;
428
+ cursor: default;
429
+ font-size: 10px;
430
+ font-weight: 500;
431
+ }
432
+ .fm-sentinel[data-v-d94b5511] {
433
+ display: flex;
434
+ align-items: center;
435
+ justify-content: center;
436
+ height: 28px;
437
+ }
438
+ .fm-end[data-v-d94b5511] {
439
+ padding: 6px 0;
440
+ color: #d1d5db;
441
+ font-size: 10px;
442
+ text-align: center;
443
+ }
444
+ .fm-loading[data-v-d94b5511] {
445
+ display: flex;
446
+ align-items: center;
447
+ justify-content: center;
448
+ gap: 6px;
449
+ padding: 24px 0;
450
+ color: #9ca3af;
451
+ font-size: 12px;
452
+ }
453
+
454
+ .wb-i18n-panel[data-v-a53e606f] {
455
+ box-sizing: border-box;
456
+ display: flex;
457
+ height: 100%;
458
+ min-height: 0;
459
+ flex-direction: column;
460
+ gap: 10px;
461
+ overflow: hidden;
462
+ padding: 14px;
463
+ color: #1f2937;
464
+ }
465
+ .wb-i18n-panel[data-v-a53e606f] *,
466
+ .wb-i18n-panel[data-v-a53e606f] *::before,
467
+ .wb-i18n-panel[data-v-a53e606f] *::after {
468
+ box-sizing: border-box;
469
+ }
470
+ .wb-i18n-panel__header[data-v-a53e606f] {
471
+ flex: 0 0 auto;
472
+ display: flex;
473
+ align-items: center;
474
+ justify-content: space-between;
475
+ gap: 8px;
476
+ }
477
+ .wb-i18n-panel__title[data-v-a53e606f] {
478
+ font-size: 14px;
479
+ font-weight: 700;
480
+ }
481
+ .wb-i18n-panel__meta[data-v-a53e606f] {
482
+ margin-top: 2px;
483
+ font-size: 12px;
484
+ color: #6b7280;
485
+ }
486
+ .wb-i18n-panel__body[data-v-a53e606f] {
487
+ display: flex;
488
+ min-height: 0;
489
+ flex: 1 1 auto;
490
+ flex-direction: column;
491
+ gap: 10px;
492
+ overflow-y: auto;
493
+ overflow-x: hidden;
494
+ padding-right: 2px;
495
+ }
496
+ .wb-i18n-panel__footer[data-v-a53e606f] {
497
+ flex: 0 0 auto;
498
+ border-top: 1px solid #eef2f7;
499
+ padding-top: 10px;
500
+ }
501
+ .wb-i18n-icon-btn[data-v-a53e606f],
502
+ .wb-i18n-btn[data-v-a53e606f],
503
+ .wb-i18n-textarea[data-v-a53e606f] {
504
+ border: 1px solid #d1d5db;
505
+ border-radius: 6px;
506
+ background: #fff;
507
+ }
508
+ .wb-i18n-icon-btn[data-v-a53e606f] {
509
+ width: 28px;
510
+ height: 28px;
511
+ color: #374151;
512
+ }
513
+ .wb-i18n-field[data-v-a53e606f] {
514
+ position: relative;
515
+ display: flex;
516
+ flex-direction: column;
517
+ gap: 6px;
518
+ font-size: 12px;
519
+ font-weight: 600;
520
+ color: #4b5563;
521
+ }
522
+ .wb-i18n-field__tip[data-v-a53e606f] {
523
+ font-size: 12px;
524
+ font-weight: 400;
525
+ line-height: 1.5;
526
+ color: #c2410c;
527
+ }
528
+ .wb-i18n-controls[data-v-a53e606f] {
529
+ display: grid;
530
+ flex: 0 0 auto;
531
+ grid-template-columns: 1fr;
532
+ gap: 10px;
533
+ }
534
+ .wb-i18n-picker[data-v-a53e606f] {
535
+ border-top: 1px solid #eef2f7;
536
+ padding-top: 10px;
537
+ }
538
+ .wb-i18n-summary[data-v-a53e606f] {
539
+ display: grid;
540
+ flex: 0 0 auto;
541
+ grid-template-columns: repeat(2, minmax(0, 1fr));
542
+ gap: 6px;
543
+ font-size: 12px;
544
+ color: #4b5563;
545
+ }
546
+ .wb-i18n-summary span[data-v-a53e606f] {
547
+ border: 1px solid #e5e7eb;
548
+ border-radius: 6px;
549
+ padding: 6px 4px;
550
+ text-align: center;
551
+ }
552
+ .wb-i18n-filters[data-v-a53e606f] {
553
+ display: flex;
554
+ flex: 0 0 auto;
555
+ flex-wrap: wrap;
556
+ gap: 6px;
557
+ }
558
+ .wb-i18n-filter[data-v-a53e606f] {
559
+ min-height: 26px;
560
+ border: 1px solid #e5e7eb;
561
+ border-radius: 6px;
562
+ background: #fff;
563
+ padding: 0 8px;
564
+ font-size: 12px;
565
+ color: #4b5563;
566
+ }
567
+ .wb-i18n-filter--active[data-v-a53e606f] {
568
+ border-color: #2563eb;
569
+ background: #eff6ff;
570
+ color: #1d4ed8;
571
+ }
572
+ .wb-i18n-select-ui[data-v-a53e606f] {
573
+ position: relative;
574
+ width: 100%;
575
+ }
576
+ .wb-i18n-select-ui__trigger[data-v-a53e606f] {
577
+ display: grid;
578
+ width: 100%;
579
+ min-height: 34px;
580
+ grid-template-columns: minmax(0, 1fr) auto;
581
+ align-items: center;
582
+ gap: 8px;
583
+ border: 1px solid #d5dbe5;
584
+ border-radius: 8px;
585
+ background: #fff;
586
+ padding: 0 10px 0 11px;
587
+ color: #111827;
588
+ font: inherit;
589
+ font-size: 13px;
590
+ line-height: 1.3;
591
+ text-align: left;
592
+ cursor: pointer;
593
+ transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
594
+ }
595
+ .wb-i18n-select-ui__trigger[data-v-a53e606f]:hover {
596
+ border-color: #94a3b8;
597
+ background: #f8fafc;
598
+ }
599
+ .wb-i18n-select-ui.is-open .wb-i18n-select-ui__trigger[data-v-a53e606f] {
600
+ border-color: #2563eb;
601
+ box-shadow: 0 0 0 3px rgb(37 99 235 / 12%);
602
+ }
603
+ .wb-i18n-select-ui.is-disabled .wb-i18n-select-ui__trigger[data-v-a53e606f],
604
+ .wb-i18n-select-ui__trigger[data-v-a53e606f]:disabled {
605
+ cursor: not-allowed;
606
+ background: #f3f4f6;
607
+ color: #9ca3af;
608
+ }
609
+ .wb-i18n-select-ui__value[data-v-a53e606f] {
610
+ min-width: 0;
611
+ overflow: hidden;
612
+ text-overflow: ellipsis;
613
+ white-space: nowrap;
614
+ }
615
+ .wb-i18n-select-ui__chevron[data-v-a53e606f] {
616
+ color: #6b7280;
617
+ font-size: 15px;
618
+ line-height: 1;
619
+ transition: transform 0.16s ease;
620
+ }
621
+ .wb-i18n-select-ui.is-open .wb-i18n-select-ui__chevron[data-v-a53e606f] {
622
+ transform: rotate(180deg);
623
+ }
624
+ .wb-i18n-select-ui__menu[data-v-a53e606f] {
625
+ position: absolute;
626
+ right: 0;
627
+ left: 0;
628
+ z-index: 20;
629
+ top: calc(100% + 4px);
630
+ max-height: 176px;
631
+ overflow-y: auto;
632
+ overflow-x: hidden;
633
+ border: 1px solid #dbe3ef;
634
+ border-radius: 10px;
635
+ background: #fff;
636
+ padding: 4px;
637
+ box-shadow: 0 14px 30px rgb(15 23 42 / 14%);
638
+ }
639
+ .wb-i18n-select-ui__menu--tall[data-v-a53e606f] {
640
+ max-height: 240px;
641
+ }
642
+ .wb-i18n-select-ui__option[data-v-a53e606f] {
643
+ display: block;
644
+ width: 100%;
645
+ min-height: 30px;
646
+ border: 0;
647
+ border-radius: 7px;
648
+ background: transparent;
649
+ padding: 7px 9px;
650
+ color: #374151;
651
+ font: inherit;
652
+ font-size: 12px;
653
+ line-height: 1.35;
654
+ text-align: left;
655
+ cursor: pointer;
656
+ }
657
+ .wb-i18n-select-ui__option[data-v-a53e606f]:hover {
658
+ background: #f3f6fb;
659
+ color: #111827;
660
+ }
661
+ .wb-i18n-select-ui__option.is-selected[data-v-a53e606f] {
662
+ background: #eaf1ff;
663
+ color: #1d4ed8;
664
+ font-weight: 700;
665
+ }
666
+ .wb-i18n-error[data-v-a53e606f] {
667
+ border: 1px solid #fecaca;
668
+ border-radius: 6px;
669
+ background: #fef2f2;
670
+ padding: 8px;
671
+ font-size: 12px;
672
+ color: #b91c1c;
673
+ }
674
+ .wb-i18n-actions[data-v-a53e606f] {
675
+ display: grid;
676
+ grid-template-columns: 1fr 1fr;
677
+ gap: 8px;
678
+ }
679
+ .wb-i18n-actions--inline[data-v-a53e606f] {
680
+ grid-template-columns: 1fr;
681
+ }
682
+ .wb-i18n-btn[data-v-a53e606f] {
683
+ min-height: 32px;
684
+ padding: 0 8px;
685
+ font-size: 12px;
686
+ font-weight: 600;
687
+ color: #374151;
688
+ }
689
+ .wb-i18n-btn[data-v-a53e606f]:disabled {
690
+ cursor: not-allowed;
691
+ opacity: 0.55;
692
+ }
693
+ .wb-i18n-btn--primary[data-v-a53e606f] {
694
+ grid-column: 1 / -1;
695
+ border-color: #2563eb;
696
+ background: #2563eb;
697
+ color: #fff;
698
+ }
699
+ .wb-i18n-btn--secondary[data-v-a53e606f] {
700
+ min-height: 30px;
701
+ background: #f9fafb;
702
+ }
703
+ .wb-i18n-no-translate-btn[data-v-a53e606f] {
704
+ flex: 0 0 auto;
705
+ width: 100%;
706
+ }
707
+ .wb-i18n-editor[data-v-a53e606f] {
708
+ display: flex;
709
+ min-height: 0;
710
+ flex: 1 1 auto;
711
+ flex-direction: column;
712
+ gap: 8px;
713
+ border: 1px solid #e5e7eb;
714
+ border-radius: 6px;
715
+ padding: 10px;
716
+ }
717
+ .wb-i18n-editor__bar[data-v-a53e606f] {
718
+ display: flex;
719
+ flex-wrap: wrap;
720
+ align-items: center;
721
+ gap: 6px;
722
+ font-size: 12px;
723
+ font-weight: 700;
724
+ color: #111827;
725
+ }
726
+ .wb-i18n-editor__title[data-v-a53e606f] {
727
+ min-width: 0;
728
+ overflow: hidden;
729
+ text-overflow: ellipsis;
730
+ white-space: nowrap;
731
+ }
732
+ .wb-i18n-editor__meta[data-v-a53e606f] {
733
+ display: flex;
734
+ gap: 8px;
735
+ font-size: 12px;
736
+ color: #6b7280;
737
+ }
738
+ .wb-i18n-translation-stack[data-v-a53e606f] {
739
+ display: flex;
740
+ min-height: 0;
741
+ flex: 1 1 auto;
742
+ flex-direction: column;
743
+ gap: 8px;
744
+ }
745
+ .wb-i18n-translation-block[data-v-a53e606f] {
746
+ display: flex;
747
+ min-height: 0;
748
+ flex: 0 0 auto;
749
+ flex-direction: column;
750
+ gap: 6px;
751
+ font-size: 12px;
752
+ font-weight: 600;
753
+ color: #4b5563;
754
+ }
755
+ .wb-i18n-translation-block--target[data-v-a53e606f] {
756
+ flex: 1 1 auto;
757
+ }
758
+ .wb-i18n-status[data-v-a53e606f],
759
+ .wb-i18n-dirty[data-v-a53e606f] {
760
+ border-radius: 999px;
761
+ padding: 2px 6px;
762
+ font-size: 11px;
763
+ line-height: 16px;
764
+ }
765
+ .wb-i18n-status--translated[data-v-a53e606f] {
766
+ background: #ecfdf5;
767
+ color: #047857;
768
+ }
769
+ .wb-i18n-status--missing[data-v-a53e606f] {
770
+ background: #fff7ed;
771
+ color: #c2410c;
772
+ }
773
+ .wb-i18n-status--stale[data-v-a53e606f] {
774
+ background: #eff6ff;
775
+ color: #1d4ed8;
776
+ }
777
+ .wb-i18n-status--error[data-v-a53e606f] {
778
+ background: #fef2f2;
779
+ color: #b91c1c;
780
+ }
781
+ .wb-i18n-dirty[data-v-a53e606f] {
782
+ background: #f3f4f6;
783
+ color: #4b5563;
784
+ }
785
+ .wb-i18n-textarea[data-v-a53e606f] {
786
+ margin-top: 8px;
787
+ width: 100%;
788
+ min-height: 82px;
789
+ flex: 0 0 auto;
790
+ resize: none;
791
+ padding: 8px;
792
+ font-size: 12px;
793
+ line-height: 1.5;
794
+ }
795
+ .wb-i18n-translation-block .wb-i18n-textarea[data-v-a53e606f] {
796
+ margin-top: 0;
797
+ }
798
+ .wb-i18n-textarea--source[data-v-a53e606f] {
799
+ min-height: 74px;
800
+ background: #f9fafb;
801
+ color: #374151;
802
+ }
803
+ .wb-i18n-translation-block--target .wb-i18n-textarea[data-v-a53e606f] {
804
+ min-height: 120px;
805
+ flex: 1 1 auto;
806
+ }
807
+ .wb-i18n-empty[data-v-a53e606f] {
808
+ padding: 24px 8px;
809
+ text-align: center;
810
+ font-size: 12px;
811
+ color: #6b7280;
812
+ }
813
+
814
+ .layout-panel[data-v-558d1955] {
815
+ display: flex;
816
+ min-height: 100%;
817
+ flex-direction: column;
818
+ gap: 14px;
819
+ padding: 18px 16px 24px;
820
+ background: #fff;
821
+ }
822
+ .layout-panel__header[data-v-558d1955] {
823
+ display: flex;
824
+ flex-direction: column;
825
+ gap: 4px;
826
+ }
827
+ .layout-panel__title[data-v-558d1955] {
828
+ font-size: 28px;
829
+ font-weight: 700;
830
+ line-height: 1.2;
831
+ color: #1f2937;
832
+ word-break: break-word;
833
+ }
834
+ .layout-panel__description[data-v-558d1955] {
835
+ font-size: 13px;
836
+ color: #94a3b8;
837
+ }
838
+ .layout-panel__actions[data-v-558d1955] {
839
+ display: flex;
840
+ align-items: center;
841
+ }
842
+ .layout-panel__note[data-v-558d1955] {
843
+ padding: 12px 14px;
844
+ border: 1px solid #e2e8f0;
845
+ border-radius: 12px;
846
+ background: #f8fafc;
847
+ font-size: 13px;
848
+ line-height: 1.6;
849
+ color: #64748b;
850
+ }
851
+ .layout-panel__empty[data-v-558d1955] {
852
+ margin-top: 20px;
853
+ padding: 14px;
854
+ border-radius: 12px;
855
+ background: #f8fafc;
856
+ color: #64748b;
857
+ font-size: 13px;
858
+ }
859
+ .layout-rules[data-v-558d1955] {
860
+ display: flex;
861
+ flex-direction: column;
862
+ gap: 12px;
863
+ }
864
+ .layout-rule-card[data-v-558d1955] {
865
+ border: 1px solid #e2e8f0;
866
+ border-radius: 14px;
867
+ background: #fff;
868
+ overflow: hidden;
869
+ }
870
+ .layout-rule-card__summary[data-v-558d1955] {
871
+ width: 100%;
872
+ display: flex;
873
+ align-items: center;
874
+ gap: 10px;
875
+ padding: 14px 14px 12px;
876
+ background: transparent;
877
+ border: 0;
878
+ cursor: pointer;
879
+ text-align: left;
880
+ }
881
+ .layout-rule-card__title[data-v-558d1955] {
882
+ font-size: 15px;
883
+ font-weight: 600;
884
+ color: #1f2937;
885
+ white-space: nowrap;
886
+ overflow: hidden;
887
+ text-overflow: ellipsis;
888
+ }
889
+ .layout-rule-card__meta[data-v-558d1955] {
890
+ margin-top: 4px;
891
+ font-size: 12px;
892
+ color: #94a3b8;
893
+ }
894
+ .layout-rule-card__badge[data-v-558d1955] {
895
+ flex-shrink: 0;
896
+ padding: 4px 10px;
897
+ border-radius: 999px;
898
+ background: #ecfdf3;
899
+ color: #10b981;
900
+ font-size: 12px;
901
+ font-weight: 600;
902
+ }
903
+ .layout-rule-card__chevron[data-v-558d1955] {
904
+ flex-shrink: 0;
905
+ color: #94a3b8;
906
+ transition: transform 0.2s ease;
907
+ }
908
+ .layout-rule-card__chevron--open[data-v-558d1955] {
909
+ transform: rotate(180deg);
910
+ }
911
+ .layout-rule-card__body[data-v-558d1955] {
912
+ display: flex;
913
+ flex-direction: column;
914
+ gap: 12px;
915
+ padding: 0 14px 14px;
916
+ }
917
+ .layout-form-field[data-v-558d1955] {
918
+ display: flex;
919
+ flex-direction: column;
920
+ gap: 6px;
921
+ }
922
+ .layout-form-field--grow[data-v-558d1955] {
923
+ flex: 1;
924
+ }
925
+ .layout-form-field--inline[data-v-558d1955] {
926
+ min-width: 88px;
927
+ }
928
+ .layout-form-field__label[data-v-558d1955] {
929
+ font-size: 12px;
930
+ font-weight: 600;
931
+ color: #64748b;
932
+ }
933
+ .layout-form-row[data-v-558d1955] {
934
+ display: flex;
935
+ gap: 10px;
936
+ align-items: flex-end;
937
+ }
938
+ .layout-input[data-v-558d1955] {
939
+ width: 100%;
940
+ height: 36px;
941
+ padding: 0 12px;
942
+ border: 1px solid #dbe4f0;
943
+ border-radius: 10px;
944
+ font-size: 13px;
945
+ color: #1f2937;
946
+ outline: none;
947
+ }
948
+ .layout-input[data-v-558d1955]:focus {
949
+ border-color: #3b82f6;
950
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
951
+ }
952
+ .layout-rule-card__hint[data-v-558d1955] {
953
+ font-size: 12px;
954
+ line-height: 1.6;
955
+ color: #64748b;
956
+ }
957
+ .layout-rule-card__footer[data-v-558d1955] {
958
+ display: flex;
959
+ justify-content: flex-end;
960
+ }
961
+ .layout-action-button[data-v-558d1955] {
962
+ display: inline-flex;
963
+ align-items: center;
964
+ gap: 6px;
965
+ height: 38px;
966
+ padding: 0 14px;
967
+ border: 1px solid #dbe4f0;
968
+ border-radius: 10px;
969
+ background: #fff;
970
+ color: #2563eb;
971
+ font-size: 13px;
972
+ font-weight: 600;
973
+ transition: all 0.2s ease;
974
+ }
975
+ .layout-action-button[data-v-558d1955]:hover:not(:disabled) {
976
+ border-color: #93c5fd;
977
+ background: #eff6ff;
978
+ }
979
+ .layout-action-button[data-v-558d1955]:disabled {
980
+ cursor: not-allowed;
981
+ opacity: 0.55;
982
+ }
983
+ .layout-action-button--danger[data-v-558d1955] {
984
+ color: #ef4444;
985
+ }
986
+ .layout-action-button--danger[data-v-558d1955]:hover:not(:disabled) {
987
+ border-color: #fecaca;
988
+ background: #fef2f2;
989
+ }
990
+
991
+ .layout-panel[data-v-033df7a7] {
992
+ display: flex;
993
+ min-height: 100%;
994
+ flex-direction: column;
995
+ gap: 14px;
996
+ padding: 18px 16px 24px;
997
+ background: #fff;
998
+ }
999
+ .layout-panel__header[data-v-033df7a7] {
1000
+ display: flex;
1001
+ flex-direction: column;
1002
+ gap: 4px;
1003
+ }
1004
+ .layout-panel__title[data-v-033df7a7] {
1005
+ font-size: 28px;
1006
+ font-weight: 700;
1007
+ line-height: 1.2;
1008
+ color: #1f2937;
1009
+ word-break: break-word;
1010
+ }
1011
+ .layout-panel__description[data-v-033df7a7] {
1012
+ font-size: 13px;
1013
+ color: #94a3b8;
1014
+ }
1015
+ .layout-panel__actions[data-v-033df7a7] {
1016
+ display: flex;
1017
+ align-items: center;
1018
+ }
1019
+ .layout-panel__note[data-v-033df7a7] {
1020
+ padding: 12px 14px;
1021
+ border: 1px solid #e2e8f0;
1022
+ border-radius: 12px;
1023
+ background: #f8fafc;
1024
+ font-size: 13px;
1025
+ line-height: 1.6;
1026
+ color: #64748b;
1027
+ }
1028
+ .layout-panel__empty[data-v-033df7a7] {
1029
+ margin-top: 20px;
1030
+ padding: 14px;
1031
+ border-radius: 12px;
1032
+ background: #f8fafc;
1033
+ color: #64748b;
1034
+ font-size: 13px;
1035
+ }
1036
+ .layout-rules[data-v-033df7a7] {
1037
+ display: flex;
1038
+ flex-direction: column;
1039
+ gap: 12px;
1040
+ }
1041
+ .layout-rule-card[data-v-033df7a7] {
1042
+ border: 1px solid #e2e8f0;
1043
+ border-radius: 14px;
1044
+ background: #fff;
1045
+ overflow: hidden;
1046
+ }
1047
+ .layout-rule-card__summary[data-v-033df7a7] {
1048
+ width: 100%;
1049
+ display: flex;
1050
+ align-items: center;
1051
+ gap: 10px;
1052
+ padding: 14px 14px 12px;
1053
+ background: transparent;
1054
+ border: 0;
1055
+ cursor: pointer;
1056
+ text-align: left;
1057
+ }
1058
+ .layout-rule-card__title[data-v-033df7a7] {
1059
+ font-size: 15px;
1060
+ font-weight: 600;
1061
+ color: #1f2937;
1062
+ white-space: nowrap;
1063
+ overflow: hidden;
1064
+ text-overflow: ellipsis;
1065
+ }
1066
+ .layout-rule-card__meta[data-v-033df7a7] {
1067
+ margin-top: 4px;
1068
+ font-size: 12px;
1069
+ color: #94a3b8;
1070
+ }
1071
+ .layout-rule-card__badge[data-v-033df7a7] {
1072
+ flex-shrink: 0;
1073
+ padding: 4px 10px;
1074
+ border-radius: 999px;
1075
+ background: #eff6ff;
1076
+ color: #2563eb;
1077
+ font-size: 12px;
1078
+ font-weight: 600;
1079
+ }
1080
+ .layout-rule-card__chevron[data-v-033df7a7] {
1081
+ flex-shrink: 0;
1082
+ color: #94a3b8;
1083
+ transition: transform 0.2s ease;
1084
+ }
1085
+ .layout-rule-card__chevron--open[data-v-033df7a7] {
1086
+ transform: rotate(180deg);
1087
+ }
1088
+ .layout-rule-card__body[data-v-033df7a7] {
1089
+ display: flex;
1090
+ flex-direction: column;
1091
+ gap: 12px;
1092
+ padding: 0 14px 14px;
1093
+ }
1094
+ .layout-form-field[data-v-033df7a7] {
1095
+ display: flex;
1096
+ flex-direction: column;
1097
+ gap: 6px;
1098
+ min-width: 0;
1099
+ }
1100
+ .layout-form-field[data-v-033df7a7] .el-date-editor.el-input__wrapper,
1101
+ .layout-form-field[data-v-033df7a7] .el-date-editor--datetimerange.el-input__wrapper {
1102
+ width: 100%;
1103
+ min-width: 0;
1104
+ box-sizing: border-box;
1105
+ }
1106
+ .layout-form-field[data-v-033df7a7] .el-date-editor .el-range-separator {
1107
+ flex-shrink: 0;
1108
+ padding: 0 4px;
1109
+ }
1110
+ .layout-form-field[data-v-033df7a7] .el-date-editor .el-range-input {
1111
+ min-width: 0;
1112
+ flex: 1 1 0;
1113
+ }
1114
+ .layout-form-field--grow[data-v-033df7a7] {
1115
+ flex: 1;
1116
+ }
1117
+ .layout-form-field--inline[data-v-033df7a7] {
1118
+ min-width: 88px;
1119
+ }
1120
+ .layout-form-field__label[data-v-033df7a7] {
1121
+ font-size: 12px;
1122
+ font-weight: 600;
1123
+ color: #64748b;
1124
+ }
1125
+ .layout-form-row[data-v-033df7a7] {
1126
+ display: flex;
1127
+ gap: 10px;
1128
+ align-items: flex-end;
1129
+ }
1130
+ .layout-input[data-v-033df7a7] {
1131
+ width: 100%;
1132
+ height: 36px;
1133
+ padding: 0 12px;
1134
+ border: 1px solid #dbe4f0;
1135
+ border-radius: 10px;
1136
+ font-size: 13px;
1137
+ color: #1f2937;
1138
+ outline: none;
1139
+ }
1140
+ .layout-input[data-v-033df7a7]:focus {
1141
+ border-color: #3b82f6;
1142
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
1143
+ }
1144
+ .layout-rule-card__hint[data-v-033df7a7] {
1145
+ font-size: 12px;
1146
+ line-height: 1.6;
1147
+ color: #64748b;
1148
+ }
1149
+ .layout-rule-card__footer[data-v-033df7a7] {
1150
+ display: flex;
1151
+ justify-content: flex-end;
1152
+ }
1153
+ .layout-action-button[data-v-033df7a7] {
1154
+ display: inline-flex;
1155
+ align-items: center;
1156
+ gap: 6px;
1157
+ height: 38px;
1158
+ padding: 0 14px;
1159
+ border: 1px solid #dbe4f0;
1160
+ border-radius: 10px;
1161
+ background: #fff;
1162
+ color: #2563eb;
1163
+ font-size: 13px;
1164
+ font-weight: 600;
1165
+ transition: all 0.2s ease;
1166
+ }
1167
+ .layout-action-button[data-v-033df7a7]:hover:not(:disabled) {
1168
+ border-color: #93c5fd;
1169
+ background: #eff6ff;
1170
+ }
1171
+ .layout-action-button[data-v-033df7a7]:disabled {
1172
+ cursor: not-allowed;
1173
+ opacity: 0.55;
1174
+ }
1175
+ .layout-action-button--danger[data-v-033df7a7] {
1176
+ color: #ef4444;
1177
+ }
1178
+ .layout-action-button--danger[data-v-033df7a7]:hover:not(:disabled) {
1179
+ border-color: #fecaca;
1180
+ background: #fef2f2;
1181
+ }