atomicuilibrary 0.1.0 → 0.1.3

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 (618) hide show
  1. package/dist/cjs/category-section.cjs.entry.js +2 -2
  2. package/dist/cjs/dom-BvBb0kmW.js +267 -0
  3. package/dist/cjs/exploration-project-tailwind.cjs.js +2 -2
  4. package/dist/cjs/{index-ClkOYpT8.js → index-C32cWsm5.js} +1 -1
  5. package/dist/cjs/layout-manager.cjs.entry.js +3 -3
  6. package/dist/cjs/library-card.cjs.entry.js +2 -2
  7. package/dist/cjs/lm-container_2.cjs.entry.js +2 -2
  8. package/dist/cjs/lm-panel_3.cjs.entry.js +4 -4
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/my-component.cjs.entry.js +1 -1
  11. package/dist/cjs/my-step.cjs.entry.js +2 -2
  12. package/dist/cjs/nav-bar.cjs.entry.js +4 -4
  13. package/dist/cjs/smart-step.cjs.entry.js +3 -3
  14. package/dist/cjs/timeline-item.cjs.entry.js +2 -2
  15. package/dist/cjs/ui-accordion_11.cjs.entry.js +132 -50
  16. package/dist/cjs/ui-advanced-data-table.cjs.entry.js +2 -2
  17. package/dist/cjs/ui-anchor.cjs.entry.js +2 -2
  18. package/dist/cjs/ui-animate-on-scroll.cjs.entry.js +3 -3
  19. package/dist/cjs/ui-aside-panel.cjs.entry.js +10 -11
  20. package/dist/cjs/ui-avatar-group_5.cjs.entry.js +1694 -0
  21. package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +3 -3
  22. package/dist/cjs/ui-breadcrumb.cjs.entry.js +1 -1
  23. package/dist/cjs/ui-callout-banner.cjs.entry.js +2 -2
  24. package/dist/cjs/ui-card.cjs.entry.js +4 -3
  25. package/dist/cjs/ui-carousel.cjs.entry.js +1 -1
  26. package/dist/cjs/ui-checkbox.cjs.entry.js +3 -3
  27. package/dist/cjs/ui-code-editor.cjs.entry.js +2 -2
  28. package/dist/cjs/ui-code-preview.cjs.entry.js +2 -2
  29. package/dist/cjs/ui-color-picker.cjs.entry.js +256 -22
  30. package/dist/cjs/ui-command-palette.cjs.entry.js +1 -1
  31. package/dist/cjs/ui-dialog-box.cjs.entry.js +85 -11
  32. package/dist/cjs/ui-dialog-content.cjs.entry.js +1 -1
  33. package/dist/cjs/ui-dialog-footer_2.cjs.entry.js +1 -1
  34. package/dist/cjs/ui-divider.cjs.entry.js +1 -1
  35. package/dist/cjs/ui-dock-host.cjs.entry.js +4 -4
  36. package/dist/cjs/ui-dock.cjs.entry.js +2 -2
  37. package/dist/cjs/ui-drag-drop.cjs.entry.js +2 -2
  38. package/dist/cjs/ui-dropdown_2.cjs.entry.js +104 -34
  39. package/dist/cjs/ui-empty-state.cjs.entry.js +2 -2
  40. package/dist/cjs/ui-fab-item.cjs.entry.js +2 -2
  41. package/dist/cjs/ui-fab.cjs.entry.js +4 -4
  42. package/dist/cjs/ui-file-upload.cjs.entry.js +143 -44
  43. package/dist/cjs/ui-horizontal-nav.cjs.entry.js +2 -2
  44. package/dist/cjs/ui-knob.cjs.entry.js +1 -1
  45. package/dist/cjs/ui-label.cjs.entry.js +473 -0
  46. package/dist/cjs/ui-library.cjs.entry.js +2 -2
  47. package/dist/cjs/ui-list-group_2.cjs.entry.js +349 -60
  48. package/dist/cjs/ui-list.cjs.entry.js +76 -42
  49. package/dist/cjs/ui-masonry.cjs.entry.js +1 -1
  50. package/dist/cjs/ui-meter-group.cjs.entry.js +5 -4
  51. package/dist/cjs/ui-navigation-item.cjs.entry.js +5 -5
  52. package/dist/cjs/ui-number-input.cjs.entry.js +7 -3
  53. package/dist/cjs/ui-otp-input.cjs.entry.js +5 -5
  54. package/dist/cjs/{ui-pagination_4.cjs.entry.js → ui-pagination_3.cjs.entry.js} +35 -506
  55. package/dist/cjs/ui-panel.cjs.entry.js +1 -1
  56. package/dist/cjs/ui-pattern-input.cjs.entry.js +46 -11
  57. package/dist/cjs/ui-progress.cjs.entry.js +66 -9
  58. package/dist/cjs/ui-range-slider.cjs.entry.js +2 -2
  59. package/dist/cjs/ui-resizable-panel.cjs.entry.js +2 -2
  60. package/dist/cjs/ui-scroll-top.cjs.entry.js +1 -1
  61. package/dist/cjs/ui-smart-context-menu.cjs.entry.js +1 -1
  62. package/dist/cjs/ui-smart-stepper.cjs.entry.js +2 -2
  63. package/dist/cjs/ui-snackbar.cjs.entry.js +1 -1
  64. package/dist/cjs/ui-speed-dial.cjs.entry.js +1 -1
  65. package/dist/cjs/ui-speedometer.cjs.entry.js +28 -17
  66. package/dist/cjs/ui-splitter.cjs.entry.js +1 -1
  67. package/dist/cjs/ui-step.cjs.entry.js +2 -2
  68. package/dist/cjs/ui-stepper.cjs.entry.js +1 -1
  69. package/dist/cjs/ui-switch.cjs.entry.js +14 -13
  70. package/dist/cjs/ui-tabs.cjs.entry.js +2 -2
  71. package/dist/cjs/ui-tag.cjs.entry.js +58 -13
  72. package/dist/cjs/ui-timeline.cjs.entry.js +10 -2
  73. package/dist/cjs/ui-timer.cjs.entry.js +2 -2
  74. package/dist/cjs/ui-toolbar.cjs.entry.js +2 -2
  75. package/dist/cjs/ui-tooltip.cjs.entry.js +4 -4
  76. package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
  77. package/dist/cjs/ui-transfer-list.cjs.entry.js +6 -6
  78. package/dist/cjs/ui-tree.cjs.entry.js +30 -15
  79. package/dist/cjs/ui-workspace-manager.cjs.entry.js +2 -2
  80. package/dist/collection/assets/js/component-config.js +1 -0
  81. package/dist/collection/assets/js/demo-loader.js +2 -0
  82. package/dist/collection/assets/js/demos/about-demo.js +13 -13
  83. package/dist/collection/assets/js/demos/accordion-demo.js +66 -66
  84. package/dist/collection/assets/js/demos/advanced-data-table-demo.js +102 -102
  85. package/dist/collection/assets/js/demos/anchor-demo.js +27 -28
  86. package/dist/collection/assets/js/demos/animate-on-scroll-demo.js +12 -12
  87. package/dist/collection/assets/js/demos/aside-panel-demo.js +51 -51
  88. package/dist/collection/assets/js/demos/avatar-demo.js +433 -95
  89. package/dist/collection/assets/js/demos/badge-demo.js +51 -52
  90. package/dist/collection/assets/js/demos/breadcrumb-demo.js +7 -7
  91. package/dist/collection/assets/js/demos/button-demo.js +117 -107
  92. package/dist/collection/assets/js/demos/button-toggle-demo.js +199 -96
  93. package/dist/collection/assets/js/demos/callout-banner-demo.js +23 -23
  94. package/dist/collection/assets/js/demos/card-demo.js +23 -22
  95. package/dist/collection/assets/js/demos/carousel-demo.js +632 -360
  96. package/dist/collection/assets/js/demos/checkbox-demo.js +124 -7
  97. package/dist/collection/assets/js/demos/color-picker-demo.js +394 -100
  98. package/dist/collection/assets/js/demos/command-palette-demo.js +182 -65
  99. package/dist/collection/assets/js/demos/complex-form-demo.js +5 -5
  100. package/dist/collection/assets/js/demos/context-menu-demo.js +43 -43
  101. package/dist/collection/assets/js/demos/dialog-demo-temp.js +3 -3
  102. package/dist/collection/assets/js/demos/dialog-demo.js +336 -230
  103. package/dist/collection/assets/js/demos/divider-demo.js +59 -62
  104. package/dist/collection/assets/js/demos/dock-demo.js +12 -12
  105. package/dist/collection/assets/js/demos/dock-host-init.js +31 -31
  106. package/dist/collection/assets/js/demos/documentation-demo.js +34 -34
  107. package/dist/collection/assets/js/demos/drag-drop-demo.js +2 -2
  108. package/dist/collection/assets/js/demos/dropdown-demo.js +140 -136
  109. package/dist/collection/assets/js/demos/dropdown-subtitle-demo.js +2 -2
  110. package/dist/collection/assets/js/demos/empty-state-demo.js +294 -78
  111. package/dist/collection/assets/js/demos/fab-demo.js +95 -11
  112. package/dist/collection/assets/js/demos/file-upload-demo.js +641 -171
  113. package/dist/collection/assets/js/demos/home-components.js +2 -2
  114. package/dist/collection/assets/js/demos/horizontal-nav-demo.js +6 -6
  115. package/dist/collection/assets/js/demos/icon-demo.js +17 -17
  116. package/dist/collection/assets/js/demos/input-demo.js +147 -143
  117. package/dist/collection/assets/js/demos/knob-demo.js +29 -30
  118. package/dist/collection/assets/js/demos/label-demo.js +697 -0
  119. package/dist/collection/assets/js/demos/layout-manager-demo.js +55 -55
  120. package/dist/collection/assets/js/demos/list-demo.js +185 -122
  121. package/dist/collection/assets/js/demos/loader-demo.js +48 -48
  122. package/dist/collection/assets/js/demos/masonry-demo.js +568 -140
  123. package/dist/collection/assets/js/demos/meter-group-demo.js +14 -16
  124. package/dist/collection/assets/js/demos/multi-level-context-menu-demo.js +25 -25
  125. package/dist/collection/assets/js/demos/my-profile-demo.js +27 -27
  126. package/dist/collection/assets/js/demos/nav-bar-demo.js +1 -1
  127. package/dist/collection/assets/js/demos/number-input-demo.js +262 -211
  128. package/dist/collection/assets/js/demos/pagination-demo.js +29 -29
  129. package/dist/collection/assets/js/demos/panel-demo.js +18 -25
  130. package/dist/collection/assets/js/demos/pattern-input-demo.js +278 -40
  131. package/dist/collection/assets/js/demos/popover-demo.js +240 -149
  132. package/dist/collection/assets/js/demos/progress-demo.js +170 -156
  133. package/dist/collection/assets/js/demos/radio-demo.js +73 -12
  134. package/dist/collection/assets/js/demos/range-slider-demo.js +33 -33
  135. package/dist/collection/assets/js/demos/rating-demo.js +19 -19
  136. package/dist/collection/assets/js/demos/scroll-top-demo.js +8 -9
  137. package/dist/collection/assets/js/demos/skeleton-demo.js +110 -52
  138. package/dist/collection/assets/js/demos/skeleton-performance-demo.js +2 -2
  139. package/dist/collection/assets/js/demos/smart-dialog-demo.js +12 -12
  140. package/dist/collection/assets/js/demos/smart-menu-demo.js +17 -17
  141. package/dist/collection/assets/js/demos/snackbar-demo.js +53 -53
  142. package/dist/collection/assets/js/demos/speed-dial-demo.js +14 -14
  143. package/dist/collection/assets/js/demos/speedometer-demo.js +40 -32
  144. package/dist/collection/assets/js/demos/split-button-demo.js +2 -2
  145. package/dist/collection/assets/js/demos/splitter-demo.js +14 -14
  146. package/dist/collection/assets/js/demos/stack-demo.js +27 -27
  147. package/dist/collection/assets/js/demos/stepper-demo.js +49 -49
  148. package/dist/collection/assets/js/demos/switch-demo.js +561 -125
  149. package/dist/collection/assets/js/demos/tabs-demo.js +22 -22
  150. package/dist/collection/assets/js/demos/tag-demo.js +62 -62
  151. package/dist/collection/assets/js/demos/theme-selector-demo.js +27 -27
  152. package/dist/collection/assets/js/demos/timeline-demo.js +10 -10
  153. package/dist/collection/assets/js/demos/timeline-playground.js +2 -2
  154. package/dist/collection/assets/js/demos/timer-demo.js +10 -10
  155. package/dist/collection/assets/js/demos/toolbar-demo.js +17 -17
  156. package/dist/collection/assets/js/demos/tooltip-demo.js +92 -90
  157. package/dist/collection/assets/js/demos/top-bar-demo.js +6 -6
  158. package/dist/collection/assets/js/demos/transfer-list-demo.js +20 -20
  159. package/dist/collection/assets/js/demos/tree-demo.js +50 -66
  160. package/dist/collection/assets/js/demos/workspace-manager-demo.js +20 -20
  161. package/dist/collection/collection-manifest.json +1 -2
  162. package/dist/collection/components/accordion/accordion.css +275 -9
  163. package/dist/collection/components/accordion/accordion.js +7 -6
  164. package/dist/collection/components/advanced-data-table/advanced-data-table.css +5 -5
  165. package/dist/collection/components/advanced-data-table/advanced-data-table.js +2 -2
  166. package/dist/collection/components/anchor/anchor.css +1 -0
  167. package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +2 -2
  168. package/dist/collection/components/aside-panel/aside-panel.css +2 -2
  169. package/dist/collection/components/aside-panel/aside-panel.js +10 -11
  170. package/dist/collection/components/avatar/avatar.css +6 -6
  171. package/dist/collection/components/avatar/avatar.js +63 -11
  172. package/dist/collection/components/badge/badge.css +27 -17
  173. package/dist/collection/components/badge/badge.js +6 -3
  174. package/dist/collection/components/breadcrumb/breadcrumb-item.js +2 -2
  175. package/dist/collection/components/button/button.css +1 -0
  176. package/dist/collection/components/button/button.js +3 -3
  177. package/dist/collection/components/button-toggle/button-toggle.js +2 -2
  178. package/dist/collection/components/button-toggle-group/button-toggle-group.css +161 -14
  179. package/dist/collection/components/button-toggle-group/button-toggle-group.js +2 -2
  180. package/dist/collection/components/callout-banner/callout-banner.css +75 -0
  181. package/dist/collection/components/callout-banner/callout-banner.js +1 -1
  182. package/dist/collection/components/card/card.css +221 -9
  183. package/dist/collection/components/card/card.js +3 -2
  184. package/dist/collection/components/checkbox/checkbox.js +3 -3
  185. package/dist/collection/components/code-editor/code-editor.js +1 -1
  186. package/dist/collection/components/code-preview/ui-code-preview.js +1 -1
  187. package/dist/collection/components/color-picker/color-picker.css +110 -6
  188. package/dist/collection/components/color-picker/color-picker.js +302 -26
  189. package/dist/collection/components/context-menu/context-menu.css +9 -9
  190. package/dist/collection/components/dialog-box/dialog-box.js +116 -14
  191. package/dist/collection/components/dialog-header/dialog-header.js +1 -1
  192. package/dist/collection/components/dock/dock.css +116 -3
  193. package/dist/collection/components/dock-host/ui-dock-host.js +3 -3
  194. package/dist/collection/components/drag-drop/drag-drop.js +1 -1
  195. package/dist/collection/components/dropdown/dropdown.css +101 -8
  196. package/dist/collection/components/dropdown/dropdown.js +94 -28
  197. package/dist/collection/components/empty-state/empty-state.js +1 -1
  198. package/dist/collection/components/fab/fab.css +87 -15
  199. package/dist/collection/components/fab/fab.js +3 -3
  200. package/dist/collection/components/fab-item/fab-item.js +1 -1
  201. package/dist/collection/components/file-upload/file-upload.css +1362 -31
  202. package/dist/collection/components/file-upload/file-upload.js +171 -50
  203. package/dist/collection/components/horizontal-nav/horizontal-nav.css +9 -9
  204. package/dist/collection/components/horizontal-nav/horizontal-nav.js +2 -2
  205. package/dist/collection/components/icon/icon.js +1 -1
  206. package/dist/collection/components/input/input.css +9 -0
  207. package/dist/collection/components/input/input.js +20 -9
  208. package/dist/collection/components/label/label.css +583 -0
  209. package/dist/collection/components/label/label.js +1669 -0
  210. package/dist/collection/components/layout-manager/layout-manager.js +1 -1
  211. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +1 -1
  212. package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +1 -1
  213. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +1 -1
  214. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +1 -1
  215. package/dist/collection/components/library/category-section.js +1 -1
  216. package/dist/collection/components/library/library-card.js +1 -1
  217. package/dist/collection/components/library/library.js +1 -1
  218. package/dist/collection/components/list/list.css +46 -5
  219. package/dist/collection/components/list/list.js +76 -42
  220. package/dist/collection/components/list-group/list-group.css +0 -2
  221. package/dist/collection/components/list-group/list-group.js +11 -5
  222. package/dist/collection/components/list-item/list-item.css +403 -131
  223. package/dist/collection/components/list-item/list-item.js +345 -61
  224. package/dist/collection/components/loader/loader.css +1 -1
  225. package/dist/collection/components/loader/loader.js +2 -2
  226. package/dist/collection/components/meter-group/meter-group.css +5 -0
  227. package/dist/collection/components/meter-group/meter-group.js +3 -2
  228. package/dist/collection/components/my-step/my-step.js +1 -1
  229. package/dist/collection/components/nav-bar/nav-bar.css +4 -4
  230. package/dist/collection/components/nav-bar/nav-bar.js +6 -6
  231. package/dist/collection/components/number-input/number-input.js +6 -2
  232. package/dist/collection/components/otp-input/otp-input.css +10 -0
  233. package/dist/collection/components/otp-input/otp-input.js +3 -3
  234. package/dist/collection/components/pagination/pagination.js +1 -1
  235. package/dist/collection/components/pattern-input/pattern-input.css +0 -1
  236. package/dist/collection/components/pattern-input/pattern-input.js +44 -9
  237. package/dist/collection/components/popover/popover.css +35 -7
  238. package/dist/collection/components/popover/popover.js +64 -9
  239. package/dist/collection/components/progress/progress.css +176 -32
  240. package/dist/collection/components/progress/progress.js +66 -8
  241. package/dist/collection/components/radio/radio.css +2 -0
  242. package/dist/collection/components/radio/radio.js +2 -2
  243. package/dist/collection/components/range-slider/range-slider.css +284 -31
  244. package/dist/collection/components/range-slider/range-slider.js +5 -5
  245. package/dist/collection/components/rating/rating.css +151 -65
  246. package/dist/collection/components/rating/rating.js +31 -13
  247. package/dist/collection/components/resizable-panel/resizable-panel.js +1 -1
  248. package/dist/collection/components/skeleton/skeleton-loader.css +144 -44
  249. package/dist/collection/components/skeleton/skeleton-loader.js +11 -7
  250. package/dist/collection/components/smart-stepper/smart-step.js +2 -2
  251. package/dist/collection/components/smart-stepper/smart-stepper.js +1 -1
  252. package/dist/collection/components/speedometer/speedometer.css +26 -6
  253. package/dist/collection/components/speedometer/speedometer.js +26 -15
  254. package/dist/collection/components/stack/stack.js +2 -2
  255. package/dist/collection/components/step/step.js +1 -1
  256. package/dist/collection/components/stepper/stepper.js +1 -1
  257. package/dist/collection/components/switch/switch.css +367 -8
  258. package/dist/collection/components/switch/switch.js +13 -12
  259. package/dist/collection/components/tag/tag.css +38 -12
  260. package/dist/collection/components/tag/tag.js +58 -13
  261. package/dist/collection/components/tag-group/tag-group.css +0 -1
  262. package/dist/collection/components/tag-group/tag-group.js +3 -3
  263. package/dist/collection/components/timeline/timeline.css +380 -317
  264. package/dist/collection/components/timeline/timeline.js +8 -0
  265. package/dist/collection/components/timeline-item/timeline-item.js +1 -1
  266. package/dist/collection/components/timer/timer.js +1 -1
  267. package/dist/collection/components/toggle-group/toggle-group.css +7 -3
  268. package/dist/collection/components/toggle-group/toggle-group.js +7 -3
  269. package/dist/collection/components/toolbar/toolbar.js +1 -1
  270. package/dist/collection/components/tooltip/tooltip.js +4 -4
  271. package/dist/collection/components/top-bar/top-bar.js +2 -2
  272. package/dist/collection/components/transfer-list/transfer-list.css +13 -13
  273. package/dist/collection/components/transfer-list/transfer-list.js +4 -4
  274. package/dist/collection/components/tree/tree.css +35 -21
  275. package/dist/collection/components/tree/tree.js +28 -13
  276. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +34 -16
  277. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +46 -11
  278. package/dist/collection/components/ui-navigation-bar/navigation-item.css +7 -7
  279. package/dist/collection/components/ui-navigation-bar/navigation-item.js +3 -3
  280. package/dist/collection/utils/dom.js +151 -151
  281. package/dist/components/avatar-group.js +1 -1
  282. package/dist/components/avatar.js +1 -1
  283. package/dist/components/badge.js +1 -1
  284. package/dist/components/button-toggle.js +1 -1
  285. package/dist/components/button.js +1 -0
  286. package/dist/components/category-section2.js +1 -1
  287. package/dist/components/checkbox.js +1 -1
  288. package/dist/components/context-menu.js +1 -1
  289. package/dist/components/dialog-header.js +1 -1
  290. package/dist/components/dom.js +1 -1
  291. package/dist/components/dropdown.js +1 -1
  292. package/dist/components/icon.js +2 -2
  293. package/dist/components/input.js +1 -1
  294. package/dist/components/layout-manager.js +1 -1
  295. package/dist/components/library-card2.js +1 -1
  296. package/dist/components/list-group.js +1 -1
  297. package/dist/components/list-item.js +1 -1
  298. package/dist/components/lm-container2.js +1 -1
  299. package/dist/components/lm-floating-window2.js +1 -1
  300. package/dist/components/lm-panel2.js +1 -1
  301. package/dist/components/lm-splitter2.js +1 -1
  302. package/dist/components/lm-tabs2.js +1 -1
  303. package/dist/components/loader.js +1 -1
  304. package/dist/components/my-step.js +1 -1
  305. package/dist/components/nav-bar.js +1 -1
  306. package/dist/components/pagination.js +1 -1
  307. package/dist/components/popover.js +1 -0
  308. package/dist/components/radio.js +1 -1
  309. package/dist/components/range-slider.js +1 -1
  310. package/dist/components/rating.js +1 -1
  311. package/dist/components/resizable-panel.js +1 -1
  312. package/dist/components/skeleton-loader.js +1 -1
  313. package/dist/components/smart-step.js +1 -1
  314. package/dist/components/stack.js +1 -1
  315. package/dist/components/switch.js +1 -1
  316. package/dist/components/tag-group.js +1 -1
  317. package/dist/components/tag.js +1 -1
  318. package/dist/components/timeline-item.js +1 -1
  319. package/dist/components/toggle-group.js +1 -1
  320. package/dist/components/tooltip.js +1 -1
  321. package/dist/components/ui-accordion.js +1 -1
  322. package/dist/components/ui-advanced-data-table.js +1 -1
  323. package/dist/components/ui-anchor.js +1 -1
  324. package/dist/components/ui-animate-on-scroll.js +1 -1
  325. package/dist/components/ui-aside-panel.js +1 -1
  326. package/dist/components/ui-badge.js +1 -1
  327. package/dist/components/ui-breadcrumb-item.js +1 -1
  328. package/dist/components/ui-breadcrumb.js +1 -1
  329. package/dist/components/ui-button-toggle-group.js +1 -1
  330. package/dist/components/ui-button.js +1 -1
  331. package/dist/components/ui-callout-banner.js +1 -1
  332. package/dist/components/ui-card.js +1 -1
  333. package/dist/components/ui-carousel.js +1 -1
  334. package/dist/components/ui-code-editor.js +1 -1
  335. package/dist/components/ui-code-preview.js +1 -1
  336. package/dist/components/ui-color-picker.js +1 -1
  337. package/dist/components/ui-command-palette.js +1 -1
  338. package/dist/components/ui-dialog-box.js +1 -1
  339. package/dist/components/ui-dock-host.js +1 -1
  340. package/dist/components/ui-dock.js +1 -1
  341. package/dist/components/ui-drag-drop.js +1 -1
  342. package/dist/components/ui-empty-state.js +1 -1
  343. package/dist/components/ui-fab-item.js +1 -1
  344. package/dist/components/ui-fab.js +1 -1
  345. package/dist/components/ui-file-upload.js +1 -1
  346. package/dist/components/ui-horizontal-nav.js +1 -1
  347. package/dist/components/ui-knob.js +1 -1
  348. package/dist/components/{ui-color-controller.d.ts → ui-label.d.ts} +4 -4
  349. package/dist/components/ui-label.js +1 -0
  350. package/dist/components/ui-library.js +1 -1
  351. package/dist/components/ui-list.js +1 -1
  352. package/dist/components/ui-masonry.js +1 -1
  353. package/dist/components/ui-meter-group.js +1 -1
  354. package/dist/components/ui-navigation-bar.js +1 -1
  355. package/dist/components/ui-navigation-item.js +1 -1
  356. package/dist/components/ui-number-input.js +1 -1
  357. package/dist/components/ui-otp-input.js +1 -1
  358. package/dist/components/ui-panel.js +1 -1
  359. package/dist/components/ui-pattern-input.js +1 -1
  360. package/dist/components/ui-popover.js +1 -1
  361. package/dist/components/ui-progress.js +1 -1
  362. package/dist/components/ui-scroll-top.js +1 -1
  363. package/dist/components/ui-smart-stepper.js +1 -1
  364. package/dist/components/ui-snackbar.js +1 -1
  365. package/dist/components/ui-speed-dial.js +1 -1
  366. package/dist/components/ui-speedometer.js +1 -1
  367. package/dist/components/ui-splitter.js +1 -1
  368. package/dist/components/ui-step.js +1 -1
  369. package/dist/components/ui-stepper.js +1 -1
  370. package/dist/components/ui-tabs.js +1 -1
  371. package/dist/components/ui-timeline.js +1 -1
  372. package/dist/components/ui-timer.js +1 -1
  373. package/dist/components/ui-toolbar.js +1 -1
  374. package/dist/components/ui-top-bar.js +1 -1
  375. package/dist/components/ui-transfer-list.js +1 -1
  376. package/dist/components/ui-tree.js +1 -1
  377. package/dist/components/ui-workspace-manager.js +1 -1
  378. package/dist/esm/category-section.entry.js +2 -2
  379. package/dist/esm/dom-DFBTWhGw.js +262 -0
  380. package/dist/esm/exploration-project-tailwind.js +3 -3
  381. package/dist/esm/{index-DUsoYu9r.js → index-Dqu2zaH1.js} +1 -1
  382. package/dist/esm/layout-manager.entry.js +3 -3
  383. package/dist/esm/library-card.entry.js +2 -2
  384. package/dist/esm/lm-container_2.entry.js +2 -2
  385. package/dist/esm/lm-panel_3.entry.js +4 -4
  386. package/dist/esm/loader.js +3 -3
  387. package/dist/esm/my-component.entry.js +1 -1
  388. package/dist/esm/my-step.entry.js +2 -2
  389. package/dist/esm/nav-bar.entry.js +4 -4
  390. package/dist/esm/smart-step.entry.js +3 -3
  391. package/dist/esm/timeline-item.entry.js +2 -2
  392. package/dist/esm/ui-accordion_11.entry.js +132 -50
  393. package/dist/esm/ui-advanced-data-table.entry.js +2 -2
  394. package/dist/esm/ui-anchor.entry.js +2 -2
  395. package/dist/esm/ui-animate-on-scroll.entry.js +3 -3
  396. package/dist/esm/ui-aside-panel.entry.js +10 -11
  397. package/dist/esm/ui-avatar-group_5.entry.js +1688 -0
  398. package/dist/esm/ui-breadcrumb-item.entry.js +3 -3
  399. package/dist/esm/ui-breadcrumb.entry.js +1 -1
  400. package/dist/esm/ui-callout-banner.entry.js +2 -2
  401. package/dist/esm/ui-card.entry.js +4 -3
  402. package/dist/esm/ui-carousel.entry.js +1 -1
  403. package/dist/esm/ui-checkbox.entry.js +3 -3
  404. package/dist/esm/ui-code-editor.entry.js +2 -2
  405. package/dist/esm/ui-code-preview.entry.js +2 -2
  406. package/dist/esm/ui-color-picker.entry.js +256 -22
  407. package/dist/esm/ui-command-palette.entry.js +1 -1
  408. package/dist/esm/ui-dialog-box.entry.js +85 -11
  409. package/dist/esm/ui-dialog-content.entry.js +1 -1
  410. package/dist/esm/ui-dialog-footer_2.entry.js +1 -1
  411. package/dist/esm/ui-divider.entry.js +1 -1
  412. package/dist/esm/ui-dock-host.entry.js +4 -4
  413. package/dist/esm/ui-dock.entry.js +2 -2
  414. package/dist/esm/ui-drag-drop.entry.js +2 -2
  415. package/dist/esm/ui-dropdown_2.entry.js +104 -34
  416. package/dist/esm/ui-empty-state.entry.js +2 -2
  417. package/dist/esm/ui-fab-item.entry.js +2 -2
  418. package/dist/esm/ui-fab.entry.js +4 -4
  419. package/dist/esm/ui-file-upload.entry.js +143 -44
  420. package/dist/esm/ui-horizontal-nav.entry.js +2 -2
  421. package/dist/esm/ui-knob.entry.js +1 -1
  422. package/dist/esm/ui-label.entry.js +471 -0
  423. package/dist/esm/ui-library.entry.js +2 -2
  424. package/dist/esm/ui-list-group_2.entry.js +349 -60
  425. package/dist/esm/ui-list.entry.js +76 -42
  426. package/dist/esm/ui-masonry.entry.js +1 -1
  427. package/dist/esm/ui-meter-group.entry.js +5 -4
  428. package/dist/esm/ui-navigation-item.entry.js +5 -5
  429. package/dist/esm/ui-number-input.entry.js +7 -3
  430. package/dist/esm/ui-otp-input.entry.js +5 -5
  431. package/dist/esm/{ui-pagination_4.entry.js → ui-pagination_3.entry.js} +36 -506
  432. package/dist/esm/ui-panel.entry.js +1 -1
  433. package/dist/esm/ui-pattern-input.entry.js +46 -11
  434. package/dist/esm/ui-progress.entry.js +66 -9
  435. package/dist/esm/ui-range-slider.entry.js +2 -2
  436. package/dist/esm/ui-resizable-panel.entry.js +2 -2
  437. package/dist/esm/ui-scroll-top.entry.js +1 -1
  438. package/dist/esm/ui-smart-context-menu.entry.js +1 -1
  439. package/dist/esm/ui-smart-stepper.entry.js +2 -2
  440. package/dist/esm/ui-snackbar.entry.js +1 -1
  441. package/dist/esm/ui-speed-dial.entry.js +1 -1
  442. package/dist/esm/ui-speedometer.entry.js +28 -17
  443. package/dist/esm/ui-splitter.entry.js +1 -1
  444. package/dist/esm/ui-step.entry.js +2 -2
  445. package/dist/esm/ui-stepper.entry.js +1 -1
  446. package/dist/esm/ui-switch.entry.js +14 -13
  447. package/dist/esm/ui-tabs.entry.js +2 -2
  448. package/dist/esm/ui-tag.entry.js +58 -13
  449. package/dist/esm/ui-timeline.entry.js +10 -2
  450. package/dist/esm/ui-timer.entry.js +2 -2
  451. package/dist/esm/ui-toolbar.entry.js +2 -2
  452. package/dist/esm/ui-tooltip.entry.js +4 -4
  453. package/dist/esm/ui-top-bar.entry.js +1 -1
  454. package/dist/esm/ui-transfer-list.entry.js +6 -6
  455. package/dist/esm/ui-tree.entry.js +30 -15
  456. package/dist/esm/ui-workspace-manager.entry.js +2 -2
  457. package/dist/exploration-project-tailwind/exploration-project-tailwind.css +1 -1
  458. package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -1
  459. package/dist/exploration-project-tailwind/{p-7ba2258a.entry.js → p-024a299a.entry.js} +1 -1
  460. package/dist/exploration-project-tailwind/p-0a71896a.entry.js +1 -0
  461. package/dist/exploration-project-tailwind/{p-35296877.entry.js → p-0cdeb8d8.entry.js} +1 -1
  462. package/dist/exploration-project-tailwind/{p-a42fdc33.entry.js → p-139cefbc.entry.js} +1 -1
  463. package/dist/exploration-project-tailwind/{p-036d2a44.entry.js → p-198c83e5.entry.js} +1 -1
  464. package/dist/exploration-project-tailwind/p-236f47b1.entry.js +1 -0
  465. package/dist/exploration-project-tailwind/{p-81ebba11.entry.js → p-25530d0d.entry.js} +1 -1
  466. package/dist/exploration-project-tailwind/{p-41cd6bf0.entry.js → p-298f2057.entry.js} +1 -1
  467. package/dist/exploration-project-tailwind/{p-85e36111.entry.js → p-2b5a8e3e.entry.js} +1 -1
  468. package/dist/exploration-project-tailwind/{p-e8c6d395.entry.js → p-2b6aa7bc.entry.js} +1 -1
  469. package/dist/exploration-project-tailwind/{p-70bacda8.entry.js → p-2cfba753.entry.js} +1 -1
  470. package/dist/exploration-project-tailwind/{p-cbee2607.entry.js → p-2fe22958.entry.js} +1 -1
  471. package/dist/exploration-project-tailwind/{p-20ecc116.entry.js → p-3012e780.entry.js} +1 -1
  472. package/dist/exploration-project-tailwind/p-321c3f46.entry.js +1 -0
  473. package/dist/exploration-project-tailwind/{p-8b57fe4e.entry.js → p-3ab43638.entry.js} +1 -1
  474. package/dist/exploration-project-tailwind/p-3ad7e47e.entry.js +1 -0
  475. package/dist/exploration-project-tailwind/p-3b1ca826.entry.js +1 -0
  476. package/dist/exploration-project-tailwind/p-3ee8ddae.entry.js +1 -0
  477. package/dist/exploration-project-tailwind/{p-e22317c1.entry.js → p-3efb44c8.entry.js} +1 -1
  478. package/dist/exploration-project-tailwind/{p-36861546.entry.js → p-42e3bc28.entry.js} +1 -1
  479. package/dist/exploration-project-tailwind/p-4360331a.entry.js +1 -0
  480. package/dist/exploration-project-tailwind/{p-2f961934.entry.js → p-443de32b.entry.js} +1 -1
  481. package/dist/exploration-project-tailwind/{p-898dd0fa.entry.js → p-44d15451.entry.js} +1 -1
  482. package/dist/exploration-project-tailwind/{p-4288c158.entry.js → p-46071679.entry.js} +1 -1
  483. package/dist/exploration-project-tailwind/{p-a3f465d9.entry.js → p-497d6182.entry.js} +1 -1
  484. package/dist/exploration-project-tailwind/p-4ad8c55c.entry.js +1 -0
  485. package/dist/exploration-project-tailwind/{p-4aaa8e40.entry.js → p-4c46ac0b.entry.js} +1 -1
  486. package/dist/exploration-project-tailwind/{p-98e91da5.entry.js → p-5042ddaa.entry.js} +1 -1
  487. package/dist/exploration-project-tailwind/p-60190e0e.entry.js +1 -0
  488. package/dist/exploration-project-tailwind/p-60530874.entry.js +1 -0
  489. package/dist/exploration-project-tailwind/{p-200241f8.entry.js → p-6108565d.entry.js} +1 -1
  490. package/dist/exploration-project-tailwind/{p-fb4aca69.entry.js → p-62889cfe.entry.js} +1 -1
  491. package/dist/exploration-project-tailwind/{p-c02284ea.entry.js → p-66f71613.entry.js} +1 -1
  492. package/dist/exploration-project-tailwind/{p-7889bfc4.entry.js → p-67c440b2.entry.js} +1 -1
  493. package/dist/exploration-project-tailwind/{p-c1c8ac28.entry.js → p-6f09503f.entry.js} +1 -1
  494. package/dist/exploration-project-tailwind/p-721bdbc3.entry.js +1 -0
  495. package/dist/exploration-project-tailwind/p-747b02ea.entry.js +1 -0
  496. package/dist/exploration-project-tailwind/{p-c6fd72e1.entry.js → p-754cb046.entry.js} +1 -1
  497. package/dist/exploration-project-tailwind/{p-97af03cc.entry.js → p-7ed3bba2.entry.js} +1 -1
  498. package/dist/exploration-project-tailwind/{p-d59da767.entry.js → p-864cebb7.entry.js} +1 -1
  499. package/dist/exploration-project-tailwind/{p-4d73c143.entry.js → p-96ee3196.entry.js} +1 -1
  500. package/dist/exploration-project-tailwind/{p-54965530.entry.js → p-97086868.entry.js} +1 -1
  501. package/dist/exploration-project-tailwind/{p-d114a347.entry.js → p-9c5ced88.entry.js} +1 -1
  502. package/dist/exploration-project-tailwind/p-9d3044d4.entry.js +1 -0
  503. package/dist/exploration-project-tailwind/p-9e079be6.entry.js +1 -0
  504. package/dist/exploration-project-tailwind/{p-790556f0.entry.js → p-9e4c45f5.entry.js} +1 -1
  505. package/dist/exploration-project-tailwind/p-9eee7394.entry.js +1 -0
  506. package/dist/exploration-project-tailwind/p-DFBTWhGw.js +1 -0
  507. package/dist/exploration-project-tailwind/p-Dqu2zaH1.js +2 -0
  508. package/dist/exploration-project-tailwind/p-a7bdedc2.entry.js +1 -0
  509. package/dist/exploration-project-tailwind/{p-c87aeab6.entry.js → p-a8ec29de.entry.js} +1 -1
  510. package/dist/exploration-project-tailwind/{p-6ddbee42.entry.js → p-ae617f62.entry.js} +1 -1
  511. package/dist/exploration-project-tailwind/{p-05a436d3.entry.js → p-aef76052.entry.js} +1 -1
  512. package/dist/exploration-project-tailwind/p-b5f043fa.entry.js +1 -0
  513. package/dist/exploration-project-tailwind/p-b637b91b.entry.js +1 -0
  514. package/dist/exploration-project-tailwind/{p-d2e45c5e.entry.js → p-bc49a088.entry.js} +1 -1
  515. package/dist/exploration-project-tailwind/{p-6b838549.entry.js → p-bd9a631f.entry.js} +1 -1
  516. package/dist/exploration-project-tailwind/{p-e8ba0c95.entry.js → p-bf4b6767.entry.js} +1 -1
  517. package/dist/exploration-project-tailwind/p-c0fa400e.entry.js +1 -0
  518. package/dist/exploration-project-tailwind/{p-8578b616.entry.js → p-c4f3d990.entry.js} +1 -1
  519. package/dist/exploration-project-tailwind/p-c68ddb2f.entry.js +1 -0
  520. package/dist/exploration-project-tailwind/p-c79574c4.entry.js +1 -0
  521. package/dist/exploration-project-tailwind/p-c840098d.entry.js +1 -0
  522. package/dist/exploration-project-tailwind/{p-a1ad32a2.entry.js → p-c8663cbe.entry.js} +1 -1
  523. package/dist/exploration-project-tailwind/p-cb6e38a6.entry.js +1 -0
  524. package/dist/exploration-project-tailwind/p-cb9f2df1.entry.js +1 -0
  525. package/dist/exploration-project-tailwind/p-cfe8b696.entry.js +1 -0
  526. package/dist/exploration-project-tailwind/p-d00e13ae.entry.js +1 -0
  527. package/dist/exploration-project-tailwind/{p-c4ba7e52.entry.js → p-d01ed934.entry.js} +1 -1
  528. package/dist/exploration-project-tailwind/{p-aa85ff78.entry.js → p-d4e57d94.entry.js} +1 -1
  529. package/dist/exploration-project-tailwind/{p-ccb5c737.entry.js → p-d5bd3a3f.entry.js} +1 -1
  530. package/dist/exploration-project-tailwind/{p-45482d86.entry.js → p-d987cebe.entry.js} +1 -1
  531. package/dist/exploration-project-tailwind/p-d9ae77c0.entry.js +1 -0
  532. package/dist/exploration-project-tailwind/p-e9bae5c7.entry.js +1 -0
  533. package/dist/exploration-project-tailwind/p-f516fabc.entry.js +1 -0
  534. package/dist/exploration-project-tailwind/p-f68e2794.entry.js +1 -0
  535. package/dist/exploration-project-tailwind/{p-d30e24bd.entry.js → p-fa034f69.entry.js} +1 -1
  536. package/dist/types/components/aside-panel/aside-panel.d.ts +0 -3
  537. package/dist/types/components/avatar/avatar.d.ts +3 -0
  538. package/dist/types/components/avatar/types.d.ts +2 -0
  539. package/dist/types/components/badge/badge.d.ts +1 -0
  540. package/dist/types/components/color-picker/color-picker.d.ts +35 -2
  541. package/dist/types/components/dialog-box/dialog-box.d.ts +10 -0
  542. package/dist/types/components/dropdown/dropdown.d.ts +5 -0
  543. package/dist/types/components/file-upload/file-upload.d.ts +23 -6
  544. package/dist/types/components/label/label.d.ts +290 -0
  545. package/dist/types/components/label/types.d.ts +39 -0
  546. package/dist/types/components/list/list.d.ts +2 -1
  547. package/dist/types/components/list-group/list-group.d.ts +1 -0
  548. package/dist/types/components/list-item/list-item.d.ts +45 -17
  549. package/dist/types/components/pattern-input/pattern-input.d.ts +6 -0
  550. package/dist/types/components/popover/popover.d.ts +3 -0
  551. package/dist/types/components/progress/progress.d.ts +7 -0
  552. package/dist/types/components/range-slider/range-slider.d.ts +2 -2
  553. package/dist/types/components/rating/rating.d.ts +1 -0
  554. package/dist/types/components/skeleton/skeleton-loader.d.ts +1 -1
  555. package/dist/types/components/speedometer/speedometer.d.ts +1 -0
  556. package/dist/types/components/tag/tag.d.ts +4 -0
  557. package/dist/types/components/tree/tree.d.ts +1 -0
  558. package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-bar.d.ts +1 -1
  559. package/dist/types/components.d.ts +742 -425
  560. package/dist/types/types/common.d.ts +2 -2
  561. package/dist/types/types/common.type.d.ts +2 -0
  562. package/dist/types/utils/dom.d.ts +4 -4
  563. package/package.json +4 -5
  564. package/dist/cjs/dom-oP1E4Rd3.js +0 -267
  565. package/dist/cjs/ui-avatar-group_3.cjs.entry.js +0 -634
  566. package/dist/cjs/ui-color-controller.cjs.entry.js +0 -150
  567. package/dist/cjs/ui-popover.cjs.entry.js +0 -517
  568. package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +0 -565
  569. package/dist/collection/components/color-controller/color-controller.css +0 -108
  570. package/dist/collection/components/color-controller/color-controller.js +0 -224
  571. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.css +0 -357
  572. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +0 -1190
  573. package/dist/components/ui-color-controller.js +0 -1
  574. package/dist/components/ui-smart-location-dropdown.d.ts +0 -11
  575. package/dist/components/ui-smart-location-dropdown.js +0 -1
  576. package/dist/esm/dom-BMFah5q3.js +0 -262
  577. package/dist/esm/ui-avatar-group_3.entry.js +0 -630
  578. package/dist/esm/ui-color-controller.entry.js +0 -148
  579. package/dist/esm/ui-popover.entry.js +0 -515
  580. package/dist/esm/ui-smart-location-dropdown.entry.js +0 -563
  581. package/dist/exploration-project-tailwind/p-06f0c679.entry.js +0 -1
  582. package/dist/exploration-project-tailwind/p-0d31c9e9.entry.js +0 -1
  583. package/dist/exploration-project-tailwind/p-148e81df.entry.js +0 -1
  584. package/dist/exploration-project-tailwind/p-16bdd162.entry.js +0 -1
  585. package/dist/exploration-project-tailwind/p-2347d21b.entry.js +0 -1
  586. package/dist/exploration-project-tailwind/p-3d381f75.entry.js +0 -1
  587. package/dist/exploration-project-tailwind/p-4417a9d8.entry.js +0 -1
  588. package/dist/exploration-project-tailwind/p-44742ddd.entry.js +0 -1
  589. package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +0 -1
  590. package/dist/exploration-project-tailwind/p-4bef8bed.entry.js +0 -1
  591. package/dist/exploration-project-tailwind/p-4efd63ce.entry.js +0 -1
  592. package/dist/exploration-project-tailwind/p-5c835d90.entry.js +0 -1
  593. package/dist/exploration-project-tailwind/p-61717490.entry.js +0 -1
  594. package/dist/exploration-project-tailwind/p-717dad1f.entry.js +0 -1
  595. package/dist/exploration-project-tailwind/p-71d95bb1.entry.js +0 -1
  596. package/dist/exploration-project-tailwind/p-9bd14f69.entry.js +0 -1
  597. package/dist/exploration-project-tailwind/p-9fc06ff0.entry.js +0 -1
  598. package/dist/exploration-project-tailwind/p-BMFah5q3.js +0 -1
  599. package/dist/exploration-project-tailwind/p-DUsoYu9r.js +0 -2
  600. package/dist/exploration-project-tailwind/p-a27f59d2.entry.js +0 -1
  601. package/dist/exploration-project-tailwind/p-a7b07cf4.entry.js +0 -1
  602. package/dist/exploration-project-tailwind/p-bd89d060.entry.js +0 -1
  603. package/dist/exploration-project-tailwind/p-c63c522e.entry.js +0 -1
  604. package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +0 -1
  605. package/dist/exploration-project-tailwind/p-d6ce9721.entry.js +0 -1
  606. package/dist/exploration-project-tailwind/p-dc92a343.entry.js +0 -1
  607. package/dist/exploration-project-tailwind/p-debede45.entry.js +0 -1
  608. package/dist/exploration-project-tailwind/p-e76318c7.entry.js +0 -1
  609. package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +0 -1
  610. package/dist/exploration-project-tailwind/p-eab5ad36.entry.js +0 -1
  611. package/dist/exploration-project-tailwind/p-f0bc5d7e.entry.js +0 -1
  612. package/dist/exploration-project-tailwind/p-f1beee72.entry.js +0 -1
  613. package/dist/exploration-project-tailwind/p-f543392f.entry.js +0 -1
  614. package/dist/exploration-project-tailwind/p-f61cfb7c.entry.js +0 -1
  615. package/dist/types/components/color-controller/color-controller.d.ts +0 -24
  616. package/dist/types/components/smart-location-dropdown/smart-location-dropdown.d.ts +0 -119
  617. package/dist/types/components/smart-location-dropdown/types.d.ts +0 -37
  618. /package/dist/collection/components/{smart-location-dropdown → label}/types.js +0 -0
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-ClkOYpT8.js');
3
+ var index = require('./index-C32cWsm5.js');
4
4
 
5
- const fileUploadCss = () => `.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;font-family:inherit}:host(.is-sideload){background:white;border-radius:24px;overflow:hidden;box-shadow:0 10px 40px rgba(0, 0, 0, 0.12);border:1px solid #e5e7eb}.fu-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary, #374151);margin-bottom:6px}.fu-sideload-header{padding:32px 32px 16px 32px}.fu-header-title-row{display:flex;align-items:center;gap:16px;margin-bottom:24px}.fu-header-title-row h2{margin:0;font-size:28px;font-weight:500;color:#111827;flex:1}.fu-close-dialog{background:#ef4444 !important;color:white !important;border-radius:8px !important;width:36px;height:36px}.fu-sideload-zone{border:2px dashed #e5e7eb;border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;background:#fdfdfd;transition:all 0.2s}.fu-sideload-zone:hover,.fu-sideload-zone.is-dragging{border-color:#10b981;background:#f0fdf4}.fu-sideload-zone span{font-size:15px;color:#4b5563}.fu-browse-pill{background:#10b981;color:white;padding:2px 12px;border-radius:20px;font-weight:600;margin-left:4px}.fu-zone{border:2px dashed var(--border-strong, #d1d5db);border-radius:14px;padding:40px 24px;text-align:center;cursor:pointer;background:var(--bg-primary, #fafafa);transition:border-color 0.2s, background 0.2s}.fu-zone:hover:not(.fu-disabled){border-color:var(--color-primary, #10b981);background:var(--bg-primary, #eff6ff)}.fu-zone.fu-dragging{border-color:var(--color-primary, #10b981);background:var(--bg-primary, #eff6ff);box-shadow:inset 0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2)}.fu-zone.fu-disabled{opacity:0.5;cursor:not-allowed}.fu-zone-icon{font-size:40px;margin-bottom:10px}.fu-file-list{display:flex;flex-direction:column;gap:12px;padding:16px 32px;max-height:400px;overflow-y:auto}.fu-file-list.is-sideload-list{padding:0 32px 32px 32px}.fu-file-item{display:flex;align-items:center;gap:16px;padding:14px 20px;border:1px solid #e5e7eb;border-radius:14px;background:white;transition:transform 0.2s}.fu-file-item.is-error{background:#fff1f2;border-color:#fecaca}.fu-sideload-item-icon{flex-shrink:0}.fu-file-info{flex:1;min-width:0}.fu-file-name{display:block;font-size:15px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fu-file-meta{font-size:13px;color:#6b7280;margin-top:2px}.fu-item-error-msg{color:#ef4444;font-weight:700;background:rgba(239, 68, 68, 0.08);padding:1px 6px;border-radius:4px}.fu-remove{color:#9ca3af !important}.fu-remove:hover{color:#ef4444 !important}.fu-sideload-footer{padding:24px 32px;background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between}.fu-footer-actions-right{display:flex;gap:12px}.fu-trigger-row{display:flex;align-items:center;gap:16px}.fu-actions{display:flex;gap:8px}.fu-progress-bar{height:6px;background:#e5e7eb;border-radius:3px;margin-top:10px;overflow:hidden}.fu-progress-fill{height:100%;background:#10b981;transition:width 0.3s ease}.fu-input-hidden{display:none}`;
5
+ const fileUploadCss = () => `@charset "UTF-8";.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;font-family:inherit}:host(.is-sideload){background:var(--bg-primary, white);border-radius:24px;overflow:hidden;box-shadow:0 10px 40px rgba(0, 0, 0, 0.12);border:1px solid var(--border-default, #e5e7eb)}.fu-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary, #374151);margin-bottom:6px}.fu-sideload-header{padding:32px 32px 16px 32px}.fu-header-title-row{display:flex;align-items:center;gap:16px;margin-bottom:24px}.fu-header-title-row h2{margin:0;font-size:28px;font-weight:500;color:var(--text-primary, #111827);flex:1}.fu-close-dialog{background:#ef4444 !important;color:white !important;border-radius:8px !important;width:36px;height:36px}.fu-sideload-zone{border:2px dashed var(--border-strong, #e5e7eb);border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;background:var(--bg-secondary, #fdfdfd);transition:all 0.2s}.fu-sideload-zone:hover,.fu-sideload-zone.is-dragging{border-color:var(--color-primary, #10b981);background:rgba(16, 185, 129, 0.05)}.fu-sideload-zone span{font-size:15px;color:var(--text-secondary, #4b5563)}.fu-browse-pill{background:#10b981;color:white;padding:2px 12px;border-radius:20px;font-weight:600;margin-left:4px}.fu-zone{border:2px dashed var(--border-strong, #d1d5db);border-radius:14px;padding:40px 24px;text-align:center;cursor:pointer;background:var(--bg-primary, #fafafa);transition:border-color 0.2s, background 0.2s}.fu-zone:hover:not(.fu-disabled){border-color:var(--color-primary, #10b981);background:var(--bg-primary, #eff6ff)}.fu-zone.fu-dragging{border-color:var(--color-primary, #10b981);background:var(--bg-primary, #eff6ff);box-shadow:inset 0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2)}.fu-zone.fu-disabled{opacity:0.5;cursor:not-allowed}.fu-zone-icon{font-size:40px;margin-bottom:10px}.fu-file-list{display:flex;flex-direction:column;gap:10px;padding:16px 32px;max-height:400px;overflow-y:auto}.fu-file-list.is-sideload-list{padding:0 32px 32px 32px}.fu-file-item{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--border-default, #e5e7eb);border-radius:12px;background:var(--bg-primary, white);transition:all 0.25s cubic-bezier(0.4, 0, 0.2, 1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.02)}.fu-file-item:hover{border-color:var(--border-strong, #d1d5db);box-shadow:0 4px 12px rgba(0, 0, 0, 0.05)}.fu-file-item.is-error{background:var(--bg-primary, #fff1f2);border-color:#fecaca}.fu-file-item.is-error:hover{border-color:var(--color-error, #ef4444)}.fu-file-item.is-success{border-color:var(--color-success, #10b981);background:var(--bg-primary, #fcfdfc)}.fu-file-item.is-success:hover{border-color:var(--color-success, #10b981)}.fu-file-icon-wrapper{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.2s}.fu-file-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.fu-file-name-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.fu-file-name{font-size:14px;font-weight:500;color:var(--text-primary, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.fu-file-status{flex-shrink:0}.fu-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:12px;text-transform:uppercase;letter-spacing:0.05em}.fu-status-badge.is-success{background:rgba(16, 185, 129, 0.08);color:#10b981}.fu-status-badge.is-uploading{background:rgba(59, 130, 246, 0.08);color:#3b82f6}.fu-status-badge.is-pending{background:rgba(107, 114, 128, 0.08);color:#6b7280}.fu-status-badge.is-validating{background:rgba(245, 158, 11, 0.08);color:#f59e0b}.fu-status-badge.is-error{background:rgba(239, 68, 68, 0.08);color:#ef4444}.fu-spinner-dot{width:6px;height:6px;background:currentColor;border-radius:50%;animation:fu-pulse 1.2s infinite ease-in-out}@keyframes fu-pulse{0%,100%{transform:scale(0.6);opacity:0.5}50%{transform:scale(1.2);opacity:1}}.fu-file-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary, #6b7280)}.fu-file-size{font-weight:500}.fu-file-error-msg{color:#ef4444;font-weight:500;display:inline-flex;align-items:center;gap:4px;animation:fu-shake 0.3s ease-in-out}@keyframes fu-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}.fu-remove{color:#9ca3af !important;opacity:0.8;transition:all 0.2s !important}.fu-remove:hover{color:#ef4444 !important;opacity:1;transform:scale(1.05)}.fu-sideload-footer{padding:24px 32px;background:var(--bg-secondary, #f9fafb);border-top:1px solid var(--border-default, #e5e7eb);display:flex;align-items:center;justify-content:space-between}.fu-footer-actions-right{display:flex;gap:12px}.fu-trigger-row{display:flex;align-items:center;gap:16px}.fu-actions{display:flex;gap:8px}.fu-progress-bar{height:6px;background:#e5e7eb;border-radius:3px;margin-top:10px;overflow:hidden}.fu-progress-fill{height:100%;background:#10b981;transition:width 0.3s ease}.fu-input-hidden{display:none}.fu-file-item.is-clickable{cursor:pointer}.fu-file-item.is-clickable:hover{background:var(--bg-secondary, #f9fafb);border-radius:10px;box-shadow:inset 0 0 0 1.5px var(--border-default, #e5e7eb)}.fu-zone-has-files{border-color:var(--color-primary, #10b981)}.fu-zone-queue-badge{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:6px 14px;background:rgba(16, 185, 129, 0.1);border:1.5px solid rgba(16, 185, 129, 0.35);border-radius:20px;font-size:13px;font-weight:600;color:var(--color-primary-text, #047857);cursor:pointer;transition:background 0.15s, box-shadow 0.15s;z-index:1}.fu-zone-queue-badge:hover{background:rgba(16, 185, 129, 0.18);box-shadow:0 0 0 3px rgba(16, 185, 129, 0.15)}.fu-zone-queue-view{opacity:0.75;font-weight:700;margin-left:2px}.fu-view-queue-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--bg-secondary, #f3f4f6);border:1.5px solid var(--border-default, #e5e7eb);border-radius:20px;font-size:13px;font-weight:600;color:var(--text-primary, #374151);cursor:pointer;transition:background 0.15s, border-color 0.15s, color 0.15s}.fu-view-queue-btn:hover{background:rgba(16, 185, 129, 0.08);border-color:var(--color-primary, #10b981);color:var(--color-primary-text, #047857)}.fu-queue-backdrop{position:fixed;inset:0;z-index:99998;background:rgba(0, 0, 0, 0.45);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:fu-fade-in 0.15s ease}.fu-queue-dialog{background:var(--bg-primary, #ffffff);border-radius:20px;width:min(560px, 100vw - 32px);max-height:min(88dvh, 88vh, 680px);display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.06);overflow:clip;animation:fu-dialog-in 0.18s cubic-bezier(0.34, 1.56, 0.64, 1)}.fu-queue-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border-default, #e5e7eb);flex-shrink:0}.fu-queue-header-right{display:flex;align-items:center;gap:8px}.fu-upload-mode-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:0.01em}.fu-upload-mode-badge.is-auto{background:rgba(16, 185, 129, 0.1);color:var(--color-primary-text, #047857);border:1px solid rgba(16, 185, 129, 0.25)}.fu-upload-mode-badge.is-manual{background:rgba(99, 102, 241, 0.1);color:#4f46e5;border:1px solid rgba(99, 102, 241, 0.25)}.fu-queue-manual-banner{display:flex;align-items:center;gap:8px;padding:10px 20px;background:rgba(99, 102, 241, 0.06);border-bottom:1px solid rgba(99, 102, 241, 0.15);font-size:13px;color:var(--text-secondary, #4b5563);flex-shrink:0}.fu-queue-manual-banner strong{color:#4f46e5;font-weight:700}.fu-queue-dialog--manual .fu-queue-footer{background:rgba(99, 102, 241, 0.03)}.fu-upload-icon-text{font-size:36px;line-height:1}.fu-inline-trigger{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 9px;background:transparent;border:1.5px solid var(--border-default, #e2e8f0);border-radius:8px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-primary, #374151);transition:background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;position:relative;white-space:nowrap;user-select:none}.fu-inline-trigger:hover:not(.fu-inline-disabled){background:var(--bg-secondary, #f1f5f9);border-color:var(--color-primary, #10b981);color:var(--color-primary, #10b981);box-shadow:0 0 0 3px rgba(16, 185, 129, 0.1)}.fu-inline-trigger:active:not(.fu-inline-disabled){background:rgba(16, 185, 129, 0.08);box-shadow:none}.fu-inline-trigger.fu-inline-active{border-color:var(--color-primary, #10b981);color:var(--color-primary, #10b981);background:rgba(16, 185, 129, 0.05)}.fu-inline-trigger.fu-inline-disabled{opacity:0.45;cursor:not-allowed}.fu-inline-icon{display:inline-flex;align-items:center;flex-shrink:0}.fu-inline-label{line-height:1.2}.fu-inline-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:20px;background:var(--color-primary, #10b981);color:#fff;font-size:10px;font-weight:800;line-height:1;cursor:pointer;transition:background 0.15s, transform 0.15s}.fu-inline-badge:hover{background:#059669;transform:scale(1.1)}.fu-queue-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;color:var(--text-primary, #111827)}.fu-queue-count-pill{padding:2px 10px;border-radius:20px;background:rgba(16, 185, 129, 0.12);color:var(--color-primary-text, #047857);font-size:12px;font-weight:700;border:1px solid rgba(16, 185, 129, 0.3)}.fu-queue-errors{padding:10px 20px;border-bottom:1px solid rgba(239, 68, 68, 0.25);background:rgba(254, 242, 242, 0.8);display:flex;flex-direction:column;gap:6px;flex-shrink:0;max-height:120px;overflow-y:auto}.fu-queue-error-item{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#ef4444}.fu-queue-summary{display:flex;align-items:center;gap:16px;padding:8px 20px;border-bottom:1px solid var(--border-default, #e5e7eb);background:var(--bg-secondary, #f9fafb);flex-shrink:0;flex-wrap:wrap}.fu-queue-summary-stat{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text-secondary, #6b7280)}.fu-queue-summary-stat.is-auto{color:#3b82f6}.fu-queue-summary-stat.is-complete{color:#10b981}.fu-qs-dot{width:8px;height:8px;border-radius:50%}.fu-qs-dot.success{background:#10b981}.fu-qs-dot.pending{background:#6366f1}.fu-qs-dot.error{background:#ef4444}.fu-queue-list{flex:1;min-height:0;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}.fu-queue-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:40px 0;color:var(--text-muted, #9ca3af);font-size:14px;font-weight:500}.fu-queue-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 20px 18px;border-top:1px solid var(--border-default, #e5e7eb);background:var(--bg-secondary, #f9fafb);flex-shrink:0;position:relative;z-index:1}.fu-queue-footer-left,.fu-queue-footer-right{display:flex;align-items:center;gap:8px}.fu-dialog-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(0, 0, 0, 0.45);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;animation:fu-fade-in 0.15s ease}@keyframes fu-fade-in{from{opacity:0}to{opacity:1}}.fu-dialog{background:var(--bg-primary, #ffffff);border-radius:18px;width:min(480px, 100vw - 32px);max-height:min(90vh, 640px);display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.06);overflow:hidden;animation:fu-dialog-in 0.18s cubic-bezier(0.34, 1.56, 0.64, 1)}@keyframes fu-dialog-in{from{opacity:0;transform:scale(0.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.fu-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border-default, #e5e7eb)}.fu-dialog-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--text-primary, #111827)}.fu-dialog-preview{background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border-default, #e5e7eb);display:flex;align-items:center;justify-content:center;min-height:180px;max-height:260px;overflow:hidden;padding:16px}.fu-dialog-image{max-width:100%;max-height:228px;object-fit:contain;border-radius:8px;box-shadow:0 4px 16px rgba(0, 0, 0, 0.1)}.fu-dialog-file-icon{width:96px;height:96px;border-radius:20px;display:flex;align-items:center;justify-content:center}.fu-dialog-info{padding:20px 24px 16px;display:flex;flex-direction:column;gap:10px;flex:1;overflow-y:auto}.fu-dialog-name{font-size:15px;font-weight:700;color:var(--text-primary, #111827);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fu-dialog-meta{display:flex;gap:16px;flex-wrap:wrap}.fu-dialog-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary, #6b7280);font-weight:500}.fu-dialog-status-row{display:flex}.fu-dialog-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:700}.fu-dialog-badge.is-success{background:rgba(16, 185, 129, 0.1);color:#10b981}.fu-dialog-badge.is-error{background:rgba(239, 68, 68, 0.1);color:#ef4444}.fu-dialog-badge.is-pending{background:rgba(99, 102, 241, 0.1);color:#6366f1}.fu-dialog-badge.is-uploading{background:rgba(59, 130, 246, 0.1);color:#3b82f6}.fu-dialog-badge.is-validating{background:rgba(245, 158, 11, 0.1);color:#f59e0b}.fu-dialog-progress{height:6px;background:var(--border-default, #e5e7eb);border-radius:3px;overflow:hidden;margin-top:4px}.fu-dialog-progress-fill{height:100%;background:var(--color-primary, #10b981);border-radius:3px;transition:width 0.4s ease}.fu-dialog-footer{display:flex;align-items:center;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border-default, #e5e7eb)}.fu-dialog-nav-count{font-size:12px;font-weight:600;color:var(--text-secondary, #6b7280);min-width:40px;text-align:center}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-backdrop,:host-context(.dark) .fu-dialog-backdrop,:host-context([data-theme=dark]) .fu-queue-backdrop,:host-context([data-theme=dark]) .fu-dialog-backdrop,:host(.dark) .fu-queue-backdrop,:host(.dark) .fu-dialog-backdrop,:host([data-theme=dark]) .fu-queue-backdrop,:host([data-theme=dark]) .fu-dialog-backdrop{background:rgba(0, 0, 0, 0.65);backdrop-filter:blur(6px)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-dialog,:host-context(.dark) .fu-dialog,:host-context([data-theme=dark]) .fu-queue-dialog,:host-context([data-theme=dark]) .fu-dialog,:host(.dark) .fu-queue-dialog,:host(.dark) .fu-dialog,:host([data-theme=dark]) .fu-queue-dialog,:host([data-theme=dark]) .fu-dialog{background:var(--bg-primary, #1e293b);box-shadow:0 24px 64px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.08)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-inline-trigger,:host-context([data-theme=dark]) .fu-inline-trigger,:host(.dark) .fu-inline-trigger,:host([data-theme=dark]) .fu-inline-trigger{border-color:var(--border-default, #334155);color:var(--text-primary, #e2e8f0)}:host-context(.dark) .fu-inline-trigger:hover:not(.fu-inline-disabled),:host-context([data-theme=dark]) .fu-inline-trigger:hover:not(.fu-inline-disabled),:host(.dark) .fu-inline-trigger:hover:not(.fu-inline-disabled),:host([data-theme=dark]) .fu-inline-trigger:hover:not(.fu-inline-disabled){background:rgba(255, 255, 255, 0.06);border-color:var(--color-primary, #10b981);color:#34d399;box-shadow:0 0 0 3px rgba(16, 185, 129, 0.12)}:host-context(.dark) .fu-inline-trigger.fu-inline-active,:host-context([data-theme=dark]) .fu-inline-trigger.fu-inline-active,:host(.dark) .fu-inline-trigger.fu-inline-active,:host([data-theme=dark]) .fu-inline-trigger.fu-inline-active{border-color:#34d399;color:#34d399;background:rgba(52, 211, 153, 0.06)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-upload-mode-badge.is-auto,:host-context([data-theme=dark]) .fu-upload-mode-badge.is-auto,:host(.dark) .fu-upload-mode-badge.is-auto,:host([data-theme=dark]) .fu-upload-mode-badge.is-auto{background:rgba(16, 185, 129, 0.15);color:#34d399;border-color:rgba(52, 211, 153, 0.3)}:host-context(.dark) .fu-upload-mode-badge.is-manual,:host-context([data-theme=dark]) .fu-upload-mode-badge.is-manual,:host(.dark) .fu-upload-mode-badge.is-manual,:host([data-theme=dark]) .fu-upload-mode-badge.is-manual{background:rgba(99, 102, 241, 0.15);color:#a5b4fc;border-color:rgba(165, 180, 252, 0.3)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-manual-banner,:host-context([data-theme=dark]) .fu-queue-manual-banner,:host(.dark) .fu-queue-manual-banner,:host([data-theme=dark]) .fu-queue-manual-banner{background:rgba(99, 102, 241, 0.08);border-bottom-color:rgba(99, 102, 241, 0.2);color:var(--text-secondary, #94a3b8)}:host-context(.dark) .fu-queue-manual-banner strong,:host-context([data-theme=dark]) .fu-queue-manual-banner strong,:host(.dark) .fu-queue-manual-banner strong,:host([data-theme=dark]) .fu-queue-manual-banner strong{color:#a5b4fc}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-header,:host-context(.dark) .fu-dialog-header,:host-context([data-theme=dark]) .fu-queue-header,:host-context([data-theme=dark]) .fu-dialog-header,:host(.dark) .fu-queue-header,:host(.dark) .fu-dialog-header,:host([data-theme=dark]) .fu-queue-header,:host([data-theme=dark]) .fu-dialog-header{border-bottom-color:var(--border-default, #334155)}:host-context(.dark) .fu-queue-title,:host-context(.dark) .fu-dialog-title,:host-context([data-theme=dark]) .fu-queue-title,:host-context([data-theme=dark]) .fu-dialog-title,:host(.dark) .fu-queue-title,:host(.dark) .fu-dialog-title,:host([data-theme=dark]) .fu-queue-title,:host([data-theme=dark]) .fu-dialog-title{color:var(--text-primary, #f1f5f9)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-count-pill,:host-context([data-theme=dark]) .fu-queue-count-pill,:host(.dark) .fu-queue-count-pill,:host([data-theme=dark]) .fu-queue-count-pill{background:rgba(16, 185, 129, 0.18);color:#34d399;border-color:rgba(52, 211, 153, 0.3)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-errors,:host-context([data-theme=dark]) .fu-queue-errors,:host(.dark) .fu-queue-errors,:host([data-theme=dark]) .fu-queue-errors{background:rgba(239, 68, 68, 0.1);border-bottom-color:rgba(239, 68, 68, 0.25)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-summary,:host-context([data-theme=dark]) .fu-queue-summary,:host(.dark) .fu-queue-summary,:host([data-theme=dark]) .fu-queue-summary{background:var(--bg-secondary, #0f172a);border-bottom-color:var(--border-default, #334155)}:host-context(.dark) .fu-queue-summary-stat,:host-context([data-theme=dark]) .fu-queue-summary-stat,:host(.dark) .fu-queue-summary-stat,:host([data-theme=dark]) .fu-queue-summary-stat{color:var(--text-secondary, #94a3b8)}:host-context(.dark) .fu-queue-summary-stat.is-auto,:host-context([data-theme=dark]) .fu-queue-summary-stat.is-auto,:host(.dark) .fu-queue-summary-stat.is-auto,:host([data-theme=dark]) .fu-queue-summary-stat.is-auto{color:#93c5fd}:host-context(.dark) .fu-queue-summary-stat.is-complete,:host-context([data-theme=dark]) .fu-queue-summary-stat.is-complete,:host(.dark) .fu-queue-summary-stat.is-complete,:host([data-theme=dark]) .fu-queue-summary-stat.is-complete{color:#34d399}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-list,:host-context([data-theme=dark]) .fu-queue-list,:host(.dark) .fu-queue-list,:host([data-theme=dark]) .fu-queue-list{scrollbar-color:var(--border-default, #334155) transparent;scrollbar-width:thin}:host-context(.dark) .fu-queue-empty,:host-context([data-theme=dark]) .fu-queue-empty,:host(.dark) .fu-queue-empty,:host([data-theme=dark]) .fu-queue-empty{color:var(--text-muted, #64748b)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-file-item,:host-context([data-theme=dark]) .fu-file-item,:host(.dark) .fu-file-item,:host([data-theme=dark]) .fu-file-item{border-bottom-color:var(--border-default, #1e293b)}:host-context(.dark) .fu-file-item.is-clickable:hover,:host-context([data-theme=dark]) .fu-file-item.is-clickable:hover,:host(.dark) .fu-file-item.is-clickable:hover,:host([data-theme=dark]) .fu-file-item.is-clickable:hover{background:rgba(255, 255, 255, 0.05);box-shadow:inset 0 0 0 1.5px var(--border-default, #334155)}:host-context(.dark) .fu-file-name,:host-context([data-theme=dark]) .fu-file-name,:host(.dark) .fu-file-name,:host([data-theme=dark]) .fu-file-name{color:var(--text-primary, #f1f5f9)}:host-context(.dark) .fu-file-meta,:host-context([data-theme=dark]) .fu-file-meta,:host(.dark) .fu-file-meta,:host([data-theme=dark]) .fu-file-meta{color:var(--text-secondary, #94a3b8)}:host-context(.dark) .fu-file-error-msg,:host-context([data-theme=dark]) .fu-file-error-msg,:host(.dark) .fu-file-error-msg,:host([data-theme=dark]) .fu-file-error-msg{color:#f87171}:host-context(.dark) .fu-remove,:host-context([data-theme=dark]) .fu-remove,:host(.dark) .fu-remove,:host([data-theme=dark]) .fu-remove{color:#64748b !important}:host-context(.dark) .fu-remove:hover,:host-context([data-theme=dark]) .fu-remove:hover,:host(.dark) .fu-remove:hover,:host([data-theme=dark]) .fu-remove:hover{color:#f87171 !important}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-queue-footer,:host-context([data-theme=dark]) .fu-queue-footer,:host(.dark) .fu-queue-footer,:host([data-theme=dark]) .fu-queue-footer{background:var(--bg-secondary, #0f172a);border-top-color:var(--border-default, #334155)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-status-badge.is-success,:host-context([data-theme=dark]) .fu-status-badge.is-success,:host(.dark) .fu-status-badge.is-success,:host([data-theme=dark]) .fu-status-badge.is-success{background:rgba(16, 185, 129, 0.15);color:#34d399}:host-context(.dark) .fu-status-badge.is-error,:host-context([data-theme=dark]) .fu-status-badge.is-error,:host(.dark) .fu-status-badge.is-error,:host([data-theme=dark]) .fu-status-badge.is-error{background:rgba(239, 68, 68, 0.15);color:#f87171}:host-context(.dark) .fu-status-badge.is-pending,:host-context([data-theme=dark]) .fu-status-badge.is-pending,:host(.dark) .fu-status-badge.is-pending,:host([data-theme=dark]) .fu-status-badge.is-pending{background:rgba(99, 102, 241, 0.15);color:#a5b4fc}:host-context(.dark) .fu-status-badge.is-uploading,:host-context([data-theme=dark]) .fu-status-badge.is-uploading,:host(.dark) .fu-status-badge.is-uploading,:host([data-theme=dark]) .fu-status-badge.is-uploading{background:rgba(59, 130, 246, 0.15);color:#93c5fd}:host-context(.dark) .fu-status-badge.is-validating,:host-context([data-theme=dark]) .fu-status-badge.is-validating,:host(.dark) .fu-status-badge.is-validating,:host([data-theme=dark]) .fu-status-badge.is-validating{background:rgba(245, 158, 11, 0.15);color:#fcd34d}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-dialog-preview,:host-context([data-theme=dark]) .fu-dialog-preview,:host(.dark) .fu-dialog-preview,:host([data-theme=dark]) .fu-dialog-preview{background:var(--bg-secondary, #0f172a);border-bottom-color:var(--border-default, #334155)}:host-context(.dark) .fu-dialog-image,:host-context([data-theme=dark]) .fu-dialog-image,:host(.dark) .fu-dialog-image,:host([data-theme=dark]) .fu-dialog-image{box-shadow:0 4px 24px rgba(0, 0, 0, 0.4)}:host-context(.dark) .fu-dialog-name,:host-context([data-theme=dark]) .fu-dialog-name,:host(.dark) .fu-dialog-name,:host([data-theme=dark]) .fu-dialog-name{color:var(--text-primary, #f1f5f9)}:host-context(.dark) .fu-dialog-meta-item,:host-context([data-theme=dark]) .fu-dialog-meta-item,:host(.dark) .fu-dialog-meta-item,:host([data-theme=dark]) .fu-dialog-meta-item{color:var(--text-secondary, #94a3b8)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-dialog-badge.is-success,:host-context([data-theme=dark]) .fu-dialog-badge.is-success,:host(.dark) .fu-dialog-badge.is-success,:host([data-theme=dark]) .fu-dialog-badge.is-success{background:rgba(16, 185, 129, 0.15);color:#34d399}:host-context(.dark) .fu-dialog-badge.is-error,:host-context([data-theme=dark]) .fu-dialog-badge.is-error,:host(.dark) .fu-dialog-badge.is-error,:host([data-theme=dark]) .fu-dialog-badge.is-error{background:rgba(239, 68, 68, 0.15);color:#f87171}:host-context(.dark) .fu-dialog-badge.is-pending,:host-context([data-theme=dark]) .fu-dialog-badge.is-pending,:host(.dark) .fu-dialog-badge.is-pending,:host([data-theme=dark]) .fu-dialog-badge.is-pending{background:rgba(99, 102, 241, 0.15);color:#a5b4fc}:host-context(.dark) .fu-dialog-badge.is-uploading,:host-context([data-theme=dark]) .fu-dialog-badge.is-uploading,:host(.dark) .fu-dialog-badge.is-uploading,:host([data-theme=dark]) .fu-dialog-badge.is-uploading{background:rgba(59, 130, 246, 0.15);color:#93c5fd}:host-context(.dark) .fu-dialog-badge.is-validating,:host-context([data-theme=dark]) .fu-dialog-badge.is-validating,:host(.dark) .fu-dialog-badge.is-validating,:host([data-theme=dark]) .fu-dialog-badge.is-validating{background:rgba(245, 158, 11, 0.15);color:#fcd34d}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-progress-bar,:host-context(.dark) .fu-dialog-progress,:host-context([data-theme=dark]) .fu-progress-bar,:host-context([data-theme=dark]) .fu-dialog-progress,:host(.dark) .fu-progress-bar,:host(.dark) .fu-dialog-progress,:host([data-theme=dark]) .fu-progress-bar,:host([data-theme=dark]) .fu-dialog-progress{background:rgba(255, 255, 255, 0.08)}:host-context(.dark) .fu-dialog-footer,:host-context([data-theme=dark]) .fu-dialog-footer,:host(.dark) .fu-dialog-footer,:host([data-theme=dark]) .fu-dialog-footer{border-top-color:var(--border-default, #334155)}:host-context(.dark) .fu-dialog-nav-count,:host-context([data-theme=dark]) .fu-dialog-nav-count,:host(.dark) .fu-dialog-nav-count,:host([data-theme=dark]) .fu-dialog-nav-count{color:var(--text-secondary, #94a3b8)}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-zone-queue-badge,:host-context([data-theme=dark]) .fu-zone-queue-badge,:host(.dark) .fu-zone-queue-badge,:host([data-theme=dark]) .fu-zone-queue-badge{background:rgba(16, 185, 129, 0.12);border-color:rgba(52, 211, 153, 0.3);color:#34d399}:host-context(.dark) .fu-zone-queue-badge:hover,:host-context([data-theme=dark]) .fu-zone-queue-badge:hover,:host(.dark) .fu-zone-queue-badge:hover,:host([data-theme=dark]) .fu-zone-queue-badge:hover{background:rgba(16, 185, 129, 0.22)}:host-context(.dark) .fu-view-queue-btn,:host-context([data-theme=dark]) .fu-view-queue-btn,:host(.dark) .fu-view-queue-btn,:host([data-theme=dark]) .fu-view-queue-btn{background:var(--bg-secondary, #1e293b);border-color:var(--border-default, #334155);color:var(--text-primary, #f1f5f9)}:host-context(.dark) .fu-view-queue-btn:hover,:host-context([data-theme=dark]) .fu-view-queue-btn:hover,:host(.dark) .fu-view-queue-btn:hover,:host([data-theme=dark]) .fu-view-queue-btn:hover{background:rgba(16, 185, 129, 0.1);border-color:#34d399;color:#34d399}:host-context(.dark),:host-context([data-theme=dark]),:host(.dark),:host([data-theme=dark]){}:host-context(.dark) .fu-zone-has-files,:host-context([data-theme=dark]) .fu-zone-has-files,:host(.dark) .fu-zone-has-files,:host([data-theme=dark]) .fu-zone-has-files{background:rgba(16, 185, 129, 0.05)}@media (prefers-color-scheme: dark){.fu-queue-backdrop,.fu-dialog-backdrop{background:rgba(0, 0, 0, 0.65);backdrop-filter:blur(6px)}.fu-queue-dialog,.fu-dialog{background:var(--bg-primary, #1e293b);box-shadow:0 24px 64px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.08)}.fu-inline-trigger{border-color:var(--border-default, #334155);color:var(--text-primary, #e2e8f0)}.fu-inline-trigger:hover:not(.fu-inline-disabled){background:rgba(255, 255, 255, 0.06);border-color:var(--color-primary, #10b981);color:#34d399;box-shadow:0 0 0 3px rgba(16, 185, 129, 0.12)}.fu-inline-trigger.fu-inline-active{border-color:#34d399;color:#34d399;background:rgba(52, 211, 153, 0.06)}.fu-upload-mode-badge.is-auto{background:rgba(16, 185, 129, 0.15);color:#34d399;border-color:rgba(52, 211, 153, 0.3)}.fu-upload-mode-badge.is-manual{background:rgba(99, 102, 241, 0.15);color:#a5b4fc;border-color:rgba(165, 180, 252, 0.3)}.fu-queue-manual-banner{background:rgba(99, 102, 241, 0.08);border-bottom-color:rgba(99, 102, 241, 0.2);color:var(--text-secondary, #94a3b8)}.fu-queue-manual-banner strong{color:#a5b4fc}.fu-queue-header,.fu-dialog-header{border-bottom-color:var(--border-default, #334155)}.fu-queue-title,.fu-dialog-title{color:var(--text-primary, #f1f5f9)}.fu-queue-count-pill{background:rgba(16, 185, 129, 0.18);color:#34d399;border-color:rgba(52, 211, 153, 0.3)}.fu-queue-errors{background:rgba(239, 68, 68, 0.1);border-bottom-color:rgba(239, 68, 68, 0.25)}.fu-queue-summary{background:var(--bg-secondary, #0f172a);border-bottom-color:var(--border-default, #334155)}.fu-queue-summary-stat{color:var(--text-secondary, #94a3b8)}.fu-queue-summary-stat.is-auto{color:#93c5fd}.fu-queue-summary-stat.is-complete{color:#34d399}.fu-queue-list{scrollbar-color:var(--border-default, #334155) transparent;scrollbar-width:thin}.fu-queue-empty{color:var(--text-muted, #64748b)}.fu-file-item{border-bottom-color:var(--border-default, #1e293b)}.fu-file-item.is-clickable:hover{background:rgba(255, 255, 255, 0.05);box-shadow:inset 0 0 0 1.5px var(--border-default, #334155)}.fu-file-name{color:var(--text-primary, #f1f5f9)}.fu-file-meta{color:var(--text-secondary, #94a3b8)}.fu-file-error-msg{color:#f87171}.fu-remove{color:#64748b !important}.fu-remove:hover{color:#f87171 !important}.fu-queue-footer{background:var(--bg-secondary, #0f172a);border-top-color:var(--border-default, #334155)}.fu-status-badge.is-success{background:rgba(16, 185, 129, 0.15);color:#34d399}.fu-status-badge.is-error{background:rgba(239, 68, 68, 0.15);color:#f87171}.fu-status-badge.is-pending{background:rgba(99, 102, 241, 0.15);color:#a5b4fc}.fu-status-badge.is-uploading{background:rgba(59, 130, 246, 0.15);color:#93c5fd}.fu-status-badge.is-validating{background:rgba(245, 158, 11, 0.15);color:#fcd34d}.fu-dialog-preview{background:var(--bg-secondary, #0f172a);border-bottom-color:var(--border-default, #334155)}.fu-dialog-image{box-shadow:0 4px 24px rgba(0, 0, 0, 0.4)}.fu-dialog-name{color:var(--text-primary, #f1f5f9)}.fu-dialog-meta-item{color:var(--text-secondary, #94a3b8)}.fu-dialog-badge.is-success{background:rgba(16, 185, 129, 0.15);color:#34d399}.fu-dialog-badge.is-error{background:rgba(239, 68, 68, 0.15);color:#f87171}.fu-dialog-badge.is-pending{background:rgba(99, 102, 241, 0.15);color:#a5b4fc}.fu-dialog-badge.is-uploading{background:rgba(59, 130, 246, 0.15);color:#93c5fd}.fu-dialog-badge.is-validating{background:rgba(245, 158, 11, 0.15);color:#fcd34d}.fu-progress-bar,.fu-dialog-progress{background:rgba(255, 255, 255, 0.08)}.fu-dialog-footer{border-top-color:var(--border-default, #334155)}.fu-dialog-nav-count{color:var(--text-secondary, #94a3b8)}.fu-zone-queue-badge{background:rgba(16, 185, 129, 0.12);border-color:rgba(52, 211, 153, 0.3);color:#34d399}.fu-zone-queue-badge:hover{background:rgba(16, 185, 129, 0.22)}.fu-view-queue-btn{background:var(--bg-secondary, #1e293b);border-color:var(--border-default, #334155);color:var(--text-primary, #f1f5f9)}.fu-view-queue-btn:hover{background:rgba(16, 185, 129, 0.1);border-color:#34d399;color:#34d399}.fu-zone-has-files{background:rgba(16, 185, 129, 0.05)}}`;
6
6
 
7
7
  const FileUpload = class {
8
8
  constructor(hostRef) {
@@ -36,10 +36,11 @@ const FileUpload = class {
36
36
  showPreview = true;
37
37
  /** Disabled */
38
38
  disabled = false;
39
- /** Variant: 'dropzone' | 'button' | 'compact' | 'sideload' */
39
+ /** Variant: 'dropzone' | 'button' | 'compact' | 'inline' | 'sideload' */
40
40
  variant = 'dropzone';
41
- /** Icon emoji or text */
42
- uploadIcon = '📁';
41
+ /** Custom upload icon: pass a lucide icon name (e.g. "file-plus") or any emoji/text.
42
+ * Defaults to the upload-cloud lucide icon when left empty. */
43
+ uploadIcon = '';
43
44
  /** RTL support */
44
45
  rtl = false;
45
46
  /** Capture attribute for mobile camera */
@@ -50,12 +51,16 @@ const FileUpload = class {
50
51
  fileNamePattern = '';
51
52
  /** Show manual validate button */
52
53
  showValidateButton = false;
53
- /** Show manual upload button */
54
+ /** Show manual upload button — overrides auto-upload when true */
54
55
  showUploadButton = false;
55
- /** Automatically trigger upload when files are selected */
56
+ /** When true (default), upload begins immediately after files are selected.
57
+ * When false, files stay in "Ready" state until the user clicks the Upload button inside the queue dialog. */
56
58
  autoUpload = true;
57
59
  /** Automatically emit completion event and hide list when all files succeed */
58
60
  autoCloseOnSuccess = false;
61
+ /** Allow the user to select an entire folder instead of individual files.
62
+ * Sets webkitdirectory on the hidden input. Implicitly enables multiple. */
63
+ directory = false;
59
64
  /** Integrated header title (for sideload variant) */
60
65
  headerTitle = '';
61
66
  isDragging = false;
@@ -63,6 +68,10 @@ const FileUpload = class {
63
68
  errors = [];
64
69
  /** Overall component state: 'idle' | 'validating' | 'uploading' | 'success' | 'error' */
65
70
  componentStatus = 'idle';
71
+ /** Whether the queue management dialog is visible */
72
+ isQueueOpen = false;
73
+ /** Index of the file currently shown in the preview dialog (-1 = closed) */
74
+ previewFileIndex = -1;
66
75
  uploadIntervals = {};
67
76
  fileSelect;
68
77
  fileRemove;
@@ -126,6 +135,8 @@ const FileUpload = class {
126
135
  this.files = [];
127
136
  this.errors = [];
128
137
  this.componentStatus = 'idle';
138
+ this.isQueueOpen = false;
139
+ this.previewFileIndex = -1;
129
140
  }
130
141
  formatSize(bytes) {
131
142
  if (bytes < 1024)
@@ -212,6 +223,15 @@ const FileUpload = class {
212
223
  if (fileNameError) {
213
224
  validationErrors.push(fileNameError);
214
225
  }
226
+ // Empty file check — must come before size-range checks
227
+ if (file.size === 0) {
228
+ validationErrors.push({
229
+ fileName: file.name,
230
+ message: `${file.name} is empty (0 KB) and cannot be uploaded`,
231
+ rule: 'empty-file',
232
+ });
233
+ return validationErrors; // skip further size checks on an empty file
234
+ }
215
235
  if (this.minSize > 0 && file.size < this.minSize) {
216
236
  validationErrors.push({
217
237
  fileName: file.name,
@@ -269,11 +289,6 @@ const FileUpload = class {
269
289
  uf.errorMessage = `Duplicate detected: "${file.name}"`;
270
290
  validationErrors.push({ fileName: file.name, message: uf.errorMessage, rule: 'duplicate-file' });
271
291
  }
272
- if (file.size === 0) {
273
- uf.status = 'error';
274
- uf.errorMessage = 'File is empty (0 bytes)';
275
- validationErrors.push({ fileName: file.name, message: uf.errorMessage, rule: 'empty-file' });
276
- }
277
292
  const fileErrors = this.validateFile(file);
278
293
  if (fileErrors.length > 0 && uf.status !== 'error') {
279
294
  uf.status = 'error';
@@ -291,6 +306,9 @@ const FileUpload = class {
291
306
  });
292
307
  this.errors = validationErrors.map(error => error.message);
293
308
  this.files = [...this.files, ...newFiles];
309
+ // Auto-open the queue dialog whenever files are added
310
+ if (newFiles.length > 0 && this.variant !== 'sideload')
311
+ this.isQueueOpen = true;
294
312
  if (this.autoUpload) {
295
313
  newFiles.filter(f => f.status === 'pending').forEach(f => this.startSimulation(f.name));
296
314
  }
@@ -370,47 +388,128 @@ const FileUpload = class {
370
388
  delete this.uploadIntervals[removed.name];
371
389
  }
372
390
  this.files = this.files.filter((_, i) => i !== idx);
391
+ // Remove validation errors that mention this file's name
392
+ this.errors = this.errors.filter(e => !e.includes(removed.name));
393
+ // Clear max-files warnings when we're now under the limit
394
+ if (this.files.length < this.maxFiles) {
395
+ this.errors = this.errors.filter(e => !e.includes('more file') && !e.includes('upload up to'));
396
+ }
397
+ // If no files left, clear all remaining errors
398
+ if (this.files.length === 0) {
399
+ this.errors = [];
400
+ }
373
401
  this.fileRemove.emit(removed.name);
374
402
  this.fileSelect.emit(this.files);
375
403
  };
376
- getIcon(type) {
377
- if (type.startsWith('image/'))
378
- return '🖼️';
379
- if (type === 'application/pdf')
380
- return '📄';
381
- if (type.includes('word'))
382
- return '📝';
383
- if (type.includes('sheet') || type.includes('excel'))
384
- return '📊';
385
- if (type.includes('zip') || type.includes('rar'))
386
- return '🗜️';
387
- return '📎';
404
+ getFileIconStyles(type) {
405
+ const t = (type || '').toLowerCase();
406
+ if (t.startsWith('image/')) {
407
+ return { icon: 'image', bg: 'rgba(168, 85, 247, 0.08)', color: 'rgb(168, 85, 247)' };
408
+ }
409
+ if (t === 'application/pdf' || t.includes('pdf') || t.includes('word') || t.includes('document')) {
410
+ return { icon: 'file-text', bg: 'rgba(59, 130, 246, 0.08)', color: 'rgb(59, 130, 246)' };
411
+ }
412
+ if (t.includes('sheet') || t.includes('excel') || t.includes('csv') || t.includes('spreadsheet')) {
413
+ return { icon: 'file-spreadsheet', bg: 'rgba(16, 185, 129, 0.08)', color: 'rgb(16, 185, 129)' };
414
+ }
415
+ if (t.includes('zip') || t.includes('rar') || t.includes('tar') || t.includes('compressed') || t.includes('7z')) {
416
+ return { icon: 'archive', bg: 'rgba(245, 158, 11, 0.08)', color: 'rgb(245, 158, 11)' };
417
+ }
418
+ if (t.startsWith('audio/')) {
419
+ return { icon: 'music', bg: 'rgba(236, 72, 153, 0.08)', color: 'rgb(236, 72, 153)' };
420
+ }
421
+ if (t.startsWith('video/')) {
422
+ return { icon: 'video', bg: 'rgba(239, 68, 68, 0.08)', color: 'rgb(239, 68, 68)' };
423
+ }
424
+ return { icon: 'file', bg: 'rgba(107, 114, 128, 0.08)', color: 'rgb(107, 114, 128)' };
425
+ }
426
+ /** Renders the zone/trigger icon — lucide icon name, emoji text, or default upload-cloud */
427
+ renderUploadZoneIcon(size = '40px') {
428
+ if (!this.uploadIcon) {
429
+ // Default: use lucide upload-cloud icon
430
+ return index.h("ui-icon", { name: "upload-cloud", library: "lucide", size: size, color: "var(--color-primary, #10b981)" });
431
+ }
432
+ // Heuristic: if no spaces and only a-z/0-9/- it's a lucide icon name
433
+ if (/^[a-z0-9-]+$/.test(this.uploadIcon)) {
434
+ return index.h("ui-icon", { name: this.uploadIcon, library: "lucide", size: size, color: "var(--color-primary, #10b981)" });
435
+ }
436
+ // Otherwise render as emoji/text
437
+ return index.h("span", { class: "fu-upload-icon-text" }, this.uploadIcon);
438
+ }
439
+ /** Renders the reusable file-row used in both the queue dialog and sideload list */
440
+ renderFileRow(f, idx, isUploading) {
441
+ const progress = f.progress || 0;
442
+ const status = f.status;
443
+ const { icon, bg, color } = this.getFileIconStyles(f.type);
444
+ const renderedIcon = status === 'error' ? 'alert-triangle' : icon;
445
+ const renderedBg = status === 'error' ? 'rgba(239, 68, 68, 0.08)' : bg;
446
+ const renderedColor = status === 'error' ? 'rgb(239, 68, 68)' : color;
447
+ return (index.h("div", { class: { 'fu-file-item': true, [`is-${status}`]: true, 'is-clickable': true }, key: f.name + idx, onClick: () => { this.previewFileIndex = idx; }, title: "Click to preview" }, index.h("div", { class: "fu-file-icon-wrapper", style: { backgroundColor: renderedBg } }, index.h("ui-icon", { name: renderedIcon, library: "lucide", size: "20px", color: renderedColor })), index.h("div", { class: "fu-file-info" }, index.h("div", { class: "fu-file-name-row" }, index.h("span", { class: "fu-file-name", title: f.name }, f.name), index.h("span", { class: "fu-file-status" }, status === 'success' && index.h("span", { class: "fu-status-badge is-success" }, index.h("ui-icon", { name: "check", library: "lucide", size: "12px", color: "#10b981" }), index.h("span", null, "Done")), status === 'uploading' && index.h("span", { class: "fu-status-badge is-uploading" }, index.h("span", { class: "fu-spinner-dot" }), index.h("span", null, Math.round(progress), "%")), status === 'pending' && index.h("span", { class: "fu-status-badge is-pending" }, index.h("span", null, "Ready")), status === 'validating' && index.h("span", { class: "fu-status-badge is-validating" }, index.h("span", null, "Validating\u00E2\u20AC\u00A6")), status === 'error' && index.h("span", { class: "fu-status-badge is-error" }, index.h("span", null, "Failed")))), index.h("div", { class: "fu-file-meta" }, index.h("span", { class: "fu-file-size" }, this.formatSize(f.size)), status === 'error' && f.errorMessage && (index.h("span", { class: "fu-file-error-msg" }, index.h("ui-icon", { name: "alert-circle", library: "lucide", size: "12px", color: "currentColor" }), index.h("span", null, f.errorMessage)))), status === 'uploading' && (index.h("div", { class: "fu-progress-bar" }, index.h("div", { class: "fu-progress-fill", style: { width: `${progress}%` } })))), index.h("ui-button", { variant: "ghost", size: "xxs", iconOnly: true, class: "fu-remove", onClick: (e) => { e.stopPropagation(); this.removeFile(idx); }, ariaLabel: "Remove", icon: "x", iconLibrary: "lucide", iconSize: "16px", disabled: isUploading && status === 'uploading' })));
448
+ }
449
+ /** Queue management dialog — shown for all non-sideload variants */
450
+ /** Queue management dialog - shown for all non-sideload variants */
451
+ renderQueueDialog() {
452
+ if (!this.isQueueOpen || this.variant === 'sideload')
453
+ return null;
454
+ const hasFiles = this.files.length > 0;
455
+ const isUploading = this.componentStatus === 'uploading';
456
+ const isValidating = this.componentStatus === 'validating';
457
+ const validCount = this.files.filter(f => f.status !== 'error').length;
458
+ const readyCount = this.files.filter(f => f.status === 'pending').length;
459
+ const doneCount = this.files.filter(f => f.status === 'success').length;
460
+ const pendingCount = this.files.filter(f => f.status === 'pending' || f.status === 'uploading').length;
461
+ const failedCount = this.files.filter(f => f.status === 'error').length;
462
+ const hasErrors = failedCount > 0;
463
+ const allSuccess = hasFiles && this.files.every(f => f.status === 'success');
464
+ const canAdd = !this.disabled && this.files.length < this.maxFiles;
465
+ const isManual = !this.autoUpload || this.showUploadButton;
466
+ const showUploadBtn = isManual && !allSuccess;
467
+ const closeQueue = () => {
468
+ this.isQueueOpen = false;
469
+ // Drop successfully uploaded files — they're done; keep pending/uploading/error
470
+ this.files = this.files.filter(f => f.status !== 'success');
471
+ if (this.files.length === 0) {
472
+ this.componentStatus = 'idle';
473
+ this.errors = [];
474
+ this.previewFileIndex = -1;
475
+ }
476
+ };
477
+ return (index.h("div", { class: "fu-queue-backdrop", onClick: closeQueue }, index.h("div", { class: { 'fu-queue-dialog': true, 'fu-queue-dialog--manual': isManual }, onClick: (e) => e.stopPropagation(), role: "dialog", "aria-modal": "true", "aria-label": "Upload Queue" }, index.h("div", { class: "fu-queue-header" }, index.h("div", { class: "fu-queue-title" }, index.h("ui-icon", { name: "upload-cloud", library: "lucide", size: "18px", color: "var(--color-primary, #10b981)" }), index.h("span", null, "Upload Queue"), index.h("span", { class: "fu-queue-count-pill" }, this.files.length, " file", this.files.length !== 1 ? 's' : '')), index.h("div", { class: "fu-queue-header-right" }, index.h("span", { class: `fu-upload-mode-badge ${isManual ? 'is-manual' : 'is-auto'}` }, index.h("ui-icon", { name: isManual ? 'hand' : 'zap', library: "lucide", size: "11px", color: "currentColor" }), isManual ? 'Manual upload' : 'Auto upload'), index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "x", iconLibrary: "lucide", onClick: closeQueue, ariaLabel: "Close dialog" }))), isManual && readyCount > 0 && !isUploading && !allSuccess && (index.h("div", { class: "fu-queue-manual-banner" }, index.h("ui-icon", { name: "mouse-pointer-click", library: "lucide", size: "14px", color: "#6366f1" }), index.h("span", null, readyCount, " file", readyCount !== 1 ? 's' : '', " ready \u2014 click ", index.h("strong", null, "Upload"), " when ready."))), this.errors.length > 0 && (index.h("div", { class: "fu-queue-errors" }, this.errors.map(e => (index.h("div", { class: "fu-queue-error-item" }, index.h("ui-icon", { name: "alert-triangle", library: "lucide", size: "14px", color: "#ef4444" }), index.h("span", null, e)))))), hasFiles && (index.h("div", { class: "fu-queue-summary" }, doneCount > 0 && index.h("span", { class: "fu-queue-summary-stat" }, index.h("span", { class: "fu-qs-dot success" }), doneCount, " done"), pendingCount > 0 && index.h("span", { class: "fu-queue-summary-stat" }, index.h("span", { class: "fu-qs-dot pending" }), pendingCount, " pending"), hasErrors && index.h("span", { class: "fu-queue-summary-stat" }, index.h("span", { class: "fu-qs-dot error" }), failedCount, " failed"), this.autoUpload && isUploading && (index.h("span", { class: "fu-queue-summary-stat is-auto" }, index.h("span", { class: "fu-spinner-dot" }), " Uploading...")), allSuccess && (index.h("span", { class: "fu-queue-summary-stat is-complete" }, index.h("ui-icon", { name: "check-circle", library: "lucide", size: "13px", color: "#10b981" }), " All done")))), index.h("div", { class: "fu-queue-list" }, !hasFiles && (index.h("div", { class: "fu-queue-empty" }, index.h("ui-icon", { name: "inbox", library: "lucide", size: "32px", color: "var(--text-muted, #9ca3af)" }), index.h("span", null, "No files in queue"))), this.files.map((f, idx) => this.renderFileRow(f, idx, isUploading))), index.h("div", { class: "fu-queue-footer" }, index.h("div", { class: "fu-queue-footer-left" }, canAdd && (index.h("ui-button", { variant: "ghost", size: "sm", label: "Add more", icon: "plus", iconLibrary: "lucide", disabled: isUploading, onClick: () => this.inputRef?.click() })), hasErrors && (index.h("ui-button", { variant: "ghost", size: "sm", label: "Remove failed", icon: "trash-2", iconLibrary: "lucide", onClick: () => this.removeInvalidFiles() }))), index.h("div", { class: "fu-queue-footer-right" }, !isUploading && !allSuccess && (index.h("ui-button", { variant: "outline", size: "sm", label: "Cancel all", onClick: () => this.clear() })), this.showValidateButton && (index.h("ui-button", { variant: "outline", size: "sm", label: "Validate", loading: isValidating, disabled: isUploading || !hasFiles, onClick: () => this.validate() })), showUploadBtn && (index.h("ui-button", { variant: "primary", size: "sm", label: isUploading ? 'Uploading...' : `Upload ${readyCount > 0 ? readyCount : validCount} file${(readyCount || validCount) !== 1 ? 's' : ''}`, icon: isUploading ? 'loader' : 'upload', iconLibrary: "lucide", loading: isUploading, disabled: isValidating || validCount === 0, onClick: () => this.upload() })), allSuccess && (index.h("ui-button", { variant: "primary", size: "sm", icon: "check", iconLibrary: "lucide", label: "Done", onClick: closeQueue })))))));
478
+ }
479
+ renderPreviewDialog() {
480
+ const idx = this.previewFileIndex;
481
+ if (idx < 0 || idx >= this.files.length)
482
+ return null;
483
+ const f = this.files[idx];
484
+ const progress = f.progress || 0;
485
+ const status = f.status;
486
+ const isUploading = status === 'uploading';
487
+ const isImage = f.type?.startsWith('image/') && !!f.dataUrl;
488
+ const { icon, bg, color } = this.getFileIconStyles(f.type);
489
+ const renderedIcon = status === 'error' ? 'alert-triangle' : icon;
490
+ const renderedBg = status === 'error' ? 'rgba(239, 68, 68, 0.08)' : bg;
491
+ const renderedColor = status === 'error' ? 'rgb(239, 68, 68)' : color;
492
+ const close = () => { this.previewFileIndex = -1; };
493
+ return (index.h("div", { class: "fu-dialog-backdrop", onClick: close }, index.h("div", { class: "fu-dialog", onClick: (e) => e.stopPropagation(), role: "dialog", "aria-modal": "true", "aria-label": `File details: ${f.name}` }, index.h("div", { class: "fu-dialog-header" }, index.h("div", { class: "fu-dialog-title" }, index.h("ui-icon", { name: "file-search", library: "lucide", size: "18px", color: "var(--color-primary, #10b981)" }), index.h("span", null, "File Details")), index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "x", iconLibrary: "lucide", onClick: close, ariaLabel: "Close" })), index.h("div", { class: "fu-dialog-preview" }, isImage
494
+ ? index.h("img", { class: "fu-dialog-image", src: f.dataUrl, alt: f.name })
495
+ : index.h("div", { class: "fu-dialog-file-icon", style: { backgroundColor: renderedBg } }, index.h("ui-icon", { name: renderedIcon, library: "lucide", size: "48px", color: renderedColor }))), index.h("div", { class: "fu-dialog-info" }, index.h("div", { class: "fu-dialog-name", title: f.name }, f.name), index.h("div", { class: "fu-dialog-meta" }, index.h("span", { class: "fu-dialog-meta-item" }, index.h("ui-icon", { name: "hard-drive", library: "lucide", size: "13px", color: "currentColor" }), this.formatSize(f.size)), index.h("span", { class: "fu-dialog-meta-item" }, index.h("ui-icon", { name: "tag", library: "lucide", size: "13px", color: "currentColor" }), f.type || 'Unknown type')), index.h("div", { class: "fu-dialog-status-row" }, status === 'success' && index.h("span", { class: "fu-dialog-badge is-success" }, index.h("ui-icon", { name: "check-circle", library: "lucide", size: "14px", color: "currentColor" }), "Uploaded successfully"), status === 'uploading' && index.h("span", { class: "fu-dialog-badge is-uploading" }, index.h("span", { class: "fu-spinner-dot" }), "Uploading\u00E2\u20AC\u00A6 ", Math.round(progress), "%"), status === 'pending' && index.h("span", { class: "fu-dialog-badge is-pending" }, index.h("ui-icon", { name: "clock", library: "lucide", size: "14px", color: "currentColor" }), "Ready to upload"), status === 'error' && index.h("span", { class: "fu-dialog-badge is-error" }, index.h("ui-icon", { name: "alert-circle", library: "lucide", size: "14px", color: "currentColor" }), f.errorMessage || 'Upload failed'), status === 'validating' && index.h("span", { class: "fu-dialog-badge is-validating" }, index.h("span", { class: "fu-spinner-dot" }), "Validating\u00E2\u20AC\u00A6")), (status === 'uploading' || status === 'success') && (index.h("div", { class: "fu-dialog-progress" }, index.h("div", { class: "fu-dialog-progress-fill", style: { width: `${progress}%` } })))), index.h("div", { class: "fu-dialog-footer" }, index.h("ui-button", { variant: "ghost", size: "sm", label: "Remove file", icon: "trash-2", iconLibrary: "lucide", disabled: isUploading, onClick: () => { this.removeFile(idx); close(); } }), index.h("div", { style: { flex: '1' } }), index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "chevron-left", iconLibrary: "lucide", disabled: idx === 0, ariaLabel: "Previous file", onClick: () => { this.previewFileIndex = idx - 1; } }), index.h("span", { class: "fu-dialog-nav-count" }, idx + 1, " / ", this.files.length), index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "chevron-right", iconLibrary: "lucide", disabled: idx === this.files.length - 1, ariaLabel: "Next file", onClick: () => { this.previewFileIndex = idx + 1; } }), index.h("ui-button", { variant: "primary", size: "sm", label: "Close", onClick: close })))));
388
496
  }
389
497
  render() {
390
498
  const canAdd = !this.disabled && this.files.length < this.maxFiles;
391
499
  const hasFiles = this.files.length > 0;
392
500
  const isUploading = this.componentStatus === 'uploading';
393
- const isValidating = this.componentStatus === 'validating';
394
501
  const validFilesCount = this.files.filter(f => f.status !== 'error').length;
395
- const hasErrors = this.files.some(f => f.status === 'error');
396
- return (index.h(index.Host, { key: 'e023a6d860e04cbad81a073a3d921b4670644ea1', dir: this.rtl ? 'rtl' : 'ltr', onPaste: this.handlePaste, class: { 'is-sideload': this.variant === 'sideload' } }, this.variant === 'sideload' && (index.h("div", { key: 'f0a9154a2d0fd3574b659674cf76f3a12f058d57', class: "fu-sideload-header" }, index.h("div", { key: '83d0168bac94abaa64b8e97026c97fd8d2423ae3', class: "fu-header-title-row" }, index.h("ui-icon", { key: '8387010b6ef439d6de023eb97eb18fc38d9aa06d', name: "upload-cloud", library: "lucide", size: "24px", color: "var(--color-primary, #10b981)" }), index.h("h2", { key: 'a31a8e98afedd667a99090de154ee41565e7d6ca' }, this.headerTitle || 'Sideload Firmware'), index.h("ui-button", { key: 'b6253491fe52f40256bc7160c5d7f127f56618f3', variant: "ghost", size: "md", iconOnly: true, icon: "x", iconLibrary: "lucide", class: "fu-close-dialog" })), index.h("div", { key: 'b1628a83b975aaf63a78fb4827eda5b723d7559e', class: { 'fu-sideload-zone': true, 'is-dragging': this.isDragging }, onDragOver: (e) => { e.preventDefault(); this.isDragging = true; }, onDragLeave: () => (this.isDragging = false), onDrop: this.handleDrop, onClick: () => canAdd && this.inputRef?.click() }, index.h("ui-icon", { key: '438322e56615a49d5b59ce048a53baa70a378bbd', name: "upload", library: "lucide", size: "20px", color: "var(--color-primary, #10b981)" }), index.h("span", { key: '55635c6bdee2d0f6cdb76f6c631e43af00119c29' }, "Drop more files or ", index.h("strong", { key: '38a4347b3acc9f226d8807513a13e896cc3988ab', class: "fu-browse-pill" }, "Browse"))))), this.label && this.variant !== 'sideload' && index.h("label", { key: '8d7e1ab4892d62a638a0ac2a7ed3de49ea4db3a7', class: "fu-label" }, this.label), this.variant === 'dropzone' && (index.h("div", { key: 'e3db150b83ca3874088a4f0ab4ff721d1eb8599a', class: { 'fu-zone': true, 'fu-dragging': this.isDragging, 'fu-disabled': this.disabled }, onDragOver: (e) => { e.preventDefault(); this.isDragging = true; }, onDragLeave: () => (this.isDragging = false), onDrop: this.handleDrop, onClick: () => canAdd && this.inputRef?.click() }, index.h("div", { key: 'c067ae850850024015757974c5e881b1fc52cdd0', class: "fu-zone-icon" }, this.uploadIcon), index.h("div", { key: 'a438cded36e799c246e29bd636bc79c833246d2e', class: "fu-zone-title" }, "Drag & drop files here"), index.h("div", { key: '952dd6afce21218fa9a3b9c1f7cb1a2854ab9f21', class: "fu-zone-sub" }, "or ", index.h("span", { key: '5946db023c7713f63ff402082de612cfe27d79e1', class: "fu-zone-browse" }, "browse files")), index.h("div", { key: '0b63680de4b4c3d99a985747efd1bdf2733b8c1a', class: "fu-zone-limit" }, this.accept && index.h("span", { key: '5c75daa15408bec904c57ee6f7e4af4ba09f56b7' }, "Accepts: ", this.accept), index.h("span", { key: '34488fd0e8064650fcbc50672d9f4b40b56c3252' }, "Max ", this.formatSize(this.maxSize), " \u00B7 Up to ", this.maxFiles, " files")))), (this.variant === 'button' || this.variant === 'compact') && (index.h("div", { key: '805a97dbff1ac3911e20d25d9feb5dc0e0254d90', class: "fu-trigger-row" }, this.variant === 'button' && (index.h("ui-button", { key: '54b3624ef218f5c5c8d62a4c5dc88fe24ddc9a27', variant: "primary", onClick: () => canAdd && this.inputRef?.click(), disabled: this.disabled || isUploading, label: this.label || 'Select Files', icon: this.uploadIcon })), this.variant === 'compact' && (index.h("div", { key: '3ebbfb44da248d985e86f48759772545de916d5d', class: { 'fu-compact': true, 'fu-disabled': this.disabled }, onClick: () => canAdd && this.inputRef?.click() }, index.h("span", { key: '39e88c85f57b10cec99d7c677689cd0402b8b5b0', class: "fu-compact-icon" }, this.uploadIcon), index.h("span", { key: '41e011e8f46008ef0e803fcfe7bbecc55e7ddd98', class: "fu-compact-text" }, this.label || 'Choose file'), index.h("span", { key: '5f2c96e19c6ab3d715ffbd9d33fd49c507cda31b', class: "fu-compact-count" }, this.files.length, " / ", this.maxFiles))), (this.showValidateButton || this.showUploadButton) && (index.h("div", { key: '494128b8db00f33ab9d602b78c2c17c9374ddf0a', class: "fu-actions" }, this.showValidateButton && (index.h("ui-button", { key: '470be75a0b9a69b8557f749c615f60848b045f7f', variant: "outline", size: "md", loading: isValidating, disabled: isUploading || this.disabled || !hasFiles, onClick: () => this.validate(), label: "Validate" })), this.showUploadButton && (index.h("ui-button", { key: '14cea3a0039fe06e5a6eff5baf4ce1ffcee724ad', variant: "primary", size: "md", loading: isUploading, disabled: isValidating || this.disabled || !hasFiles, onClick: () => this.upload(), label: "Upload All", icon: "upload", iconLibrary: "lucide" })))))), this.variant === 'dropzone' && (this.showValidateButton || this.showUploadButton) && (index.h("div", { key: 'aba1a4dc3bfffe9b2613719ce2ae876e10bd9aca', class: "fu-dropzone-actions" }, index.h("span", { key: 'f6bddf09dfb74057ee74aff7e82a38a999973e9c', class: "fu-status-text" }, hasFiles ? `${this.files.length} file(s) selected` : 'No files selected'), index.h("div", { key: 'e050caeb8ba45b9d2d0adeddf659b5a53abddf89', class: "fu-button-group" }, this.showValidateButton && (index.h("ui-button", { key: '95b6ea727bbe7cad4a3ba6f10e1b3777393b4ca4', variant: "ghost", size: "md", loading: isValidating, disabled: isUploading || !hasFiles, onClick: () => this.validate(), label: "Validate Files" })), this.showUploadButton && (index.h("ui-button", { key: '3d92daaa1f7d0bb85e1bf016fb53aa0f771c4510', variant: "primary", size: "md", loading: isUploading, disabled: isValidating || !hasFiles, onClick: () => this.upload(), label: "Start Upload" }))))), index.h("input", { key: '33eaf23068f5a8042b7e44ef8564f22860693395', ref: el => (this.inputRef = el), type: "file", class: "fu-input-hidden", accept: this.accept, multiple: this.multiple, capture: this.capture === true ? 'environment' : (this.capture || undefined), onChange: this.handleFileInput }), this.errors.length > 0 && this.variant !== 'sideload' && (index.h("div", { key: '7c206fe6b3cd098262a1061e9abf88909c443fb2', class: "fu-errors" }, this.errors.map(e => index.h("div", { class: "fu-error" }, "\u26A0 ", e)))), this.showPreview && hasFiles && (index.h("div", { key: '36884700bc547826dfbfa32556a59e56ea0c9ff1', class: { 'fu-file-list': true, 'is-sideload-list': this.variant === 'sideload' } }, this.variant !== 'sideload' && index.h("div", { key: '634011f23cba7105437851f7e969e98ee1e46c09', class: "fu-list-header" }, "QUEUED FILES"), this.files.map((f, idx) => {
397
- const progress = f.progress || 0;
398
- const status = f.status;
399
- const statusLabels = {
400
- pending: 'Ready',
401
- validating: 'Validating...',
402
- uploading: 'Uploading...',
403
- success: 'Complete',
404
- error: 'Failed'
405
- };
406
- const itemIcon = status === 'error' ? 'alert-triangle' : (status === 'success' ? 'check-circle' : 'info');
407
- const iconColor = status === 'error' ? '#f59e0b' : (status === 'success' ? '#10b981' : '#3b82f6');
408
- return (index.h("div", { class: { 'fu-file-item': true, [`is-${status}`]: true }, key: f.name + idx }, this.variant === 'sideload'
409
- ? index.h("ui-icon", { class: "fu-sideload-item-icon", name: itemIcon, library: "lucide", size: "24px", color: iconColor })
410
- : (f.type.startsWith('image/') && f.dataUrl
411
- ? index.h("img", { class: "fu-thumb", src: f.dataUrl, alt: f.name })
412
- : index.h("span", { class: "fu-file-icon" }, this.getIcon(f.type))), index.h("div", { class: "fu-file-info" }, index.h("div", { class: "fu-file-name-row" }, index.h("span", { class: "fu-file-name" }, f.name), index.h("span", { class: "fu-file-status" }, this.variant !== 'sideload' && index.h("span", { class: "fu-status-label" }, statusLabels[status]), status === 'success' && index.h("ui-icon", { name: "check", library: "lucide", size: "14px", color: "#10b981" }), status === 'error' && this.variant !== 'sideload' && index.h("ui-icon", { name: "alert-circle", library: "lucide", size: "14px", color: "#ef4444" }), status === 'uploading' && index.h("span", { class: "fu-file-percent" }, Math.round(progress), "%"))), index.h("div", { class: "fu-file-meta" }, index.h("span", { class: "fu-file-size" }, this.formatSize(f.size)), f.errorMessage && index.h("span", { class: "fu-item-error-msg" }, " \u00B7 ", f.errorMessage)), (status === 'uploading' || status === 'success') && (index.h("div", { class: "fu-progress-bar" }, index.h("div", { class: "fu-progress-fill", style: { width: `${progress}%` } })))), index.h("ui-button", { variant: "ghost", size: "xxs", iconOnly: true, class: "fu-remove", onClick: (e) => { e.stopPropagation(); this.removeFile(idx); }, ariaLabel: "Remove", icon: "x-circle", iconLibrary: "lucide", iconSize: "18px", disabled: isUploading && status === 'uploading' })));
413
- }))), this.variant === 'sideload' && (index.h("div", { key: 'ef71906dbefd987da6f7cf54dacb41528d8e7d4b', class: "fu-sideload-footer" }, index.h("div", { key: 'e5ce897412814293206de68572bce9fe93478fff', class: "fu-footer-actions-left" }, hasErrors && (index.h("ui-button", { key: '40c336eb57ba23767800511d7f8a5525c3bb3a0f', variant: "ghost", size: "md", label: "Clean Queue", onClick: () => this.removeInvalidFiles(), icon: "trash-2", iconLibrary: "lucide" }))), index.h("div", { key: '31c7983a14455d24158aa3c7bb69b490f995968e', class: "fu-footer-actions-right" }, index.h("ui-button", { key: 'd9723f7193044a178473437cad30d2074d41b6b4', variant: "outline", label: "Cancel", onClick: () => this.clear() }), index.h("ui-button", { key: '532aae5a83893629ee5d8186904286393183f5e7', variant: "primary", label: `Upload ${validFilesCount} files`, disabled: validFilesCount === 0 || isUploading, loading: isUploading, onClick: () => this.upload(), icon: "upload", iconLibrary: "lucide" })))), this.helperText && this.variant !== 'sideload' && index.h("div", { key: '6bd4941a135fbf542f3d9ca275847660424695d9', class: "fu-helper" }, this.helperText)));
502
+ return (index.h(index.Host, { key: 'd3152c915742132400c8c4bb67d9e3b89d54b632', dir: this.rtl ? 'rtl' : 'ltr', onPaste: this.handlePaste, class: { 'is-sideload': this.variant === 'sideload' } }, this.variant === 'sideload' && (index.h("div", { key: 'dd3fe148a8860b4b9b1ef9e47358bdd46dd64a21', class: "fu-sideload-header" }, index.h("div", { key: '0f170379a0ea0c797a6c05819af167de7c2dafed', class: "fu-header-title-row" }, index.h("ui-icon", { key: '6b0b71f7e01651f33efaf6a2a3421367b71b47cc', name: "upload-cloud", library: "lucide", size: "24px", color: "var(--color-primary, #10b981)" }), index.h("h2", { key: 'a4330e9cb9973cdb61ed42f65dc5a374c371d8f2' }, this.headerTitle || 'Sideload Firmware'), index.h("ui-button", { key: '2dd90814fbaa9f636c1a0f24f126ab9b31583d66', variant: "ghost", size: "md", iconOnly: true, icon: "x", iconLibrary: "lucide", class: "fu-close-dialog" })), index.h("div", { key: '234c9679585087721a30df197ae8c0f3739b5c94', class: { 'fu-sideload-zone': true, 'is-dragging': this.isDragging }, onDragOver: (e) => { e.preventDefault(); this.isDragging = true; }, onDragLeave: () => (this.isDragging = false), onDrop: this.handleDrop, onClick: () => canAdd && this.inputRef?.click() }, index.h("ui-icon", { key: '303cf7a91a182a42aa288519ba933854ffe63b94', name: "upload", library: "lucide", size: "20px", color: "var(--color-primary, #10b981)" }), index.h("span", { key: 'd3c193b6e528ff43ce0f4ebd7959cfb0ae78b220' }, "Drop more files or ", index.h("strong", { key: '373cba75237e24b8b6a4e384129cf9543d5cf30e', class: "fu-browse-pill" }, "Browse"))))), this.variant === 'sideload' && hasFiles && (index.h("div", { key: 'e6b1e6370a769387ec8b75954e34847f93e37e05', class: "fu-file-list is-sideload-list" }, this.files.map((f, idx) => this.renderFileRow(f, idx, isUploading)))), this.variant === 'sideload' && (index.h("div", { key: 'f4d122874935aeff0dfee060c91d6299234cee5e', class: "fu-sideload-footer" }, index.h("div", { key: '4e98b7d2bf5fa02766414def762e070d378eb98e', class: "fu-footer-actions-left" }, this.files.some(f => f.status === 'error') && (index.h("ui-button", { key: 'a2cf99cb5992794930f97f559918a1ad02d05288', variant: "ghost", size: "md", label: "Clean Queue", icon: "trash-2", iconLibrary: "lucide", onClick: () => this.removeInvalidFiles() }))), index.h("div", { key: '5425b0d9c59a85e6113ab43ca1c03757bc78845b', class: "fu-footer-actions-right" }, index.h("ui-button", { key: 'c0ef12d4bd32b4eede664130f1cc662abbf1e83f', variant: "outline", label: "Cancel", onClick: () => this.clear() }), index.h("ui-button", { key: '293aac09dfda74ea69b8d8ea1082ad25786ca62f', variant: "primary", label: `Upload ${validFilesCount} files`, disabled: validFilesCount === 0 || isUploading, loading: isUploading, onClick: () => this.upload(), icon: "upload", iconLibrary: "lucide" })))), this.variant !== 'sideload' && (index.h("div", { key: 'ad83c062093c5992ca2f02e1b5bd11483e43f1fd' }, this.label && index.h("label", { key: '9b807a8af85d1fc282375a47d565b1a52d31e207', class: "fu-label" }, this.label), this.variant === 'dropzone' && (index.h("div", { key: '376d617761e2d03b3fbed7a0fa27da05a6acd1f7', class: { 'fu-zone': true, 'fu-dragging': this.isDragging, 'fu-disabled': this.disabled, 'fu-zone-has-files': hasFiles }, onDragOver: (e) => { e.preventDefault(); this.isDragging = true; }, onDragLeave: () => (this.isDragging = false), onDrop: this.handleDrop, onClick: () => canAdd && this.inputRef?.click() }, index.h("div", { key: '7df435796b000ddc2af9590115ecd96d8c365bcc', class: "fu-zone-icon" }, this.renderUploadZoneIcon('40px')), index.h("div", { key: '9cd1d88570d13b1535286a5133aa673eb56473d8', class: "fu-zone-title" }, "Drag & drop files here"), index.h("div", { key: '82adc9f84981437ed9d1f619ad9f5b52be0a645b', class: "fu-zone-sub" }, "or ", index.h("span", { key: '0f1f65b55b58aca3eec0d8b3667c9ebeffdc29d3', class: "fu-zone-browse" }, "browse files")), index.h("div", { key: 'b9a9021442ec5bc8e3309a51cadd2af5cb193c08', class: "fu-zone-limit" }, this.accept && index.h("span", { key: '12217ab2c6ce5955f966ab627740aabf114484c8' }, "Accepts: ", this.accept), index.h("span", { key: '5ffd8530aed30321eff0c8e01c6104e2626e0476' }, "Max ", this.formatSize(this.maxSize), " \u00B7 Up to ", this.maxFiles, " files")), hasFiles && (index.h("div", { key: '4d155a2c4b6516743b7ee38d2ddcc5c20d3c1089', class: "fu-zone-queue-badge", onClick: (e) => { e.stopPropagation(); this.isQueueOpen = true; } }, index.h("ui-icon", { key: '4e9d11d3444c799a6c54efbe8c3ef894be451809', name: "layers", library: "lucide", size: "14px", color: "#10b981" }), index.h("span", { key: '8e52407087416f63933efb6288be0e8899f06391' }, this.files.length, " file", this.files.length !== 1 ? 's' : '', " queued"), index.h("span", { key: '374fbd52cbe323bea13a0749af95050030891dc4', class: "fu-zone-queue-view" }, "View Queue \u2192"))))), (this.variant === 'button' || this.variant === 'compact' || this.variant === 'inline') && (index.h("div", { key: 'c7b031b7b628d8972fd72ab903e5324f7946fc8c', class: "fu-trigger-row" }, this.variant === 'button' && (index.h("ui-button", { key: '25a4cdca35f3c1047683825991c36335fbc0166d', variant: "primary", onClick: () => canAdd && this.inputRef?.click(), disabled: this.disabled || isUploading, label: this.label || 'Select Files', icon: this.uploadIcon || 'upload-cloud', iconLibrary: "lucide" })), this.variant === 'compact' && (index.h("div", { key: '9eb1ef83a2814e814730e42c175b612cdc4f2cd8', class: { 'fu-compact': true, 'fu-disabled': this.disabled }, onClick: () => canAdd && this.inputRef?.click() }, index.h("span", { key: 'a68573fcfc5a820a46c9b8c832ffd4ceec155651', class: "fu-compact-icon" }, this.renderUploadZoneIcon('18px')), index.h("span", { key: '5f8c2a40cbceb3f6f10bbb4481284836e476975e', class: "fu-compact-text" }, this.label || 'Choose file'), index.h("span", { key: 'ae53043e7f6dbc27bc42bde8e2bf9d7870591718', class: "fu-compact-count" }, this.files.length, " / ", this.maxFiles))), this.variant === 'inline' && (index.h("button", { key: '49e94c27db6aa2b0a9eb56150abed00769a45ba2', class: { 'fu-inline-trigger': true, 'fu-inline-disabled': this.disabled, 'fu-inline-active': hasFiles }, disabled: this.disabled, onClick: () => canAdd && this.inputRef?.click(), type: "button", title: this.label || 'Upload files' }, index.h("span", { key: '148d06eb63c8df50ba268c5165fd12fb525c238e', class: "fu-inline-icon" }, this.renderUploadZoneIcon('16px')), index.h("span", { key: 'ba271f05d6d8e0b3c9419bc1e7bd367e0f7adf0d', class: "fu-inline-label" }, this.label || 'Upload files'), hasFiles && (index.h("span", { key: 'd7ad2159e8e33facc99edc0926d46939c2864fb4', class: "fu-inline-badge", onClick: (e) => { e.stopPropagation(); this.isQueueOpen = true; } }, this.files.length)))), hasFiles && this.variant !== 'inline' && (index.h("button", { key: 'bd4a50a142bac3d136c0de7221ce15fe078628fd', class: "fu-view-queue-btn", onClick: () => { this.isQueueOpen = true; } }, index.h("ui-icon", { key: '71083c82786b219595cf9d8b5738848da048c0b9', name: "layers", library: "lucide", size: "14px", color: "currentColor" }), this.files.length, " file", this.files.length !== 1 ? 's' : '', " queued")))), this.helperText && index.h("div", { key: 'ecc66b684f1e28a0f886faeee45b274b613f36a5', class: "fu-helper" }, this.helperText))), index.h("input", { key: '3e50fac523ae8a776f4468782a079d8a4206ac45', ref: el => {
503
+ this.inputRef = el;
504
+ if (el) {
505
+ if (this.directory) {
506
+ el.setAttribute('webkitdirectory', '');
507
+ }
508
+ else {
509
+ el.removeAttribute('webkitdirectory');
510
+ }
511
+ }
512
+ }, type: "file", class: "fu-input-hidden", accept: this.accept, multiple: this.multiple || this.directory, capture: this.capture === true ? 'environment' : (this.capture || undefined), onChange: this.handleFileInput }), this.renderQueueDialog(), this.renderPreviewDialog()));
414
513
  }
415
514
  };
416
515
  FileUpload.style = fileUploadCss();
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-ClkOYpT8.js');
3
+ var index = require('./index-C32cWsm5.js');
4
4
 
5
- const horizontalNavCss = () => `.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;width:100%}.horizontal-nav-container{position:relative;display:flex;align-items:center;width:100%}.horizontal-nav-container.scrollable .horizontal-nav{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.horizontal-nav-container.scrollable .horizontal-nav::-webkit-scrollbar{display:none}.horizontal-nav{display:flex;width:100%;background-color:#ffffff;border-radius:8px;padding:4px}.nav-list{display:flex;list-style:none;margin:0;padding:0;gap:4px;width:100%}.horizontal-nav.full-width .nav-list{flex:1}.horizontal-nav.full-width .nav-list-item{flex:1}.horizontal-nav.full-width .nav-item{width:100%;justify-content:center}.horizontal-nav.align-start .nav-list{justify-content:flex-start}.horizontal-nav.align-center .nav-list{justify-content:center}.horizontal-nav.align-end .nav-list{justify-content:flex-end}.horizontal-nav.align-space-between .nav-list{justify-content:space-between}.nav-list-item{display:flex}.nav-item{display:flex;align-items:center;gap:8px;padding:8px 16px;background:none;border:none;border-radius:6px;color:#64748b;text-decoration:none;font-weight:500;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;font-size:14px;position:relative}.horizontal-nav.size-sm .nav-item{padding:6px 12px;font-size:12px;gap:6px}.horizontal-nav.size-md .nav-item{padding:8px 16px;font-size:14px;gap:8px}.horizontal-nav.size-lg .nav-item{padding:10px 20px;font-size:16px;gap:10px}.horizontal-nav.variant-default .nav-item:hover:not(.disabled):not(.active){background-color:#f1f5f9;color:#475569}.horizontal-nav.variant-default .nav-item.active{background-color:#eff6ff;color:#3b82f6}.horizontal-nav.variant-pills .nav-item{border-radius:20px}.horizontal-nav.variant-pills .nav-item:hover:not(.disabled):not(.active){background-color:#f1f5f9;color:#475569}.horizontal-nav.variant-pills .nav-item.active{background-color:#3b82f6;color:white}.horizontal-nav.variant-underline{background-color:transparent;border-bottom:1px solid #e2e8f0;border-radius:0;padding:0}.horizontal-nav.variant-underline .nav-item{border-radius:0;padding-bottom:12px;margin-bottom:-1px}.horizontal-nav.variant-underline .nav-item::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:transparent;transition:background-color 0.2s ease}.horizontal-nav.variant-underline .nav-item:hover:not(.disabled):not(.active){color:#475569}.horizontal-nav.variant-underline .nav-item:hover:not(.disabled):not(.active)::after{background-color:#cbd5e1}.horizontal-nav.variant-underline .nav-item.active{color:#3b82f6}.horizontal-nav.variant-underline .nav-item.active::after{background-color:#3b82f6}.horizontal-nav.variant-segmented{background-color:#f1f5f9;border-radius:8px;padding:4px}.horizontal-nav.variant-segmented .nav-item{background-color:transparent}.horizontal-nav.variant-segmented .nav-item:hover:not(.disabled):not(.active){background-color:rgba(255, 255, 255, 0.5)}.horizontal-nav.variant-segmented .nav-item.active{background-color:white;color:#1e293b;box-shadow:0 1px 3px rgba(0, 0, 0, 0.1)}.nav-item.disabled{opacity:0.4;cursor:not-allowed}.nav-item-content{display:flex;align-items:center;gap:inherit}.nav-icon{display:inline-flex;align-items:center;font-size:1.1em;line-height:1}.nav-icon svg{width:1em;height:1em;fill:currentColor}.nav-label{line-height:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;background-color:#ef4444;color:white;font-size:11px;font-weight:600;border-radius:10px;line-height:1}.nav-item.active .nav-badge{background-color:#dc2626}.horizontal-nav.with-divider .nav-list-item:not(:last-child)::after{content:"";width:1px;height:20px;background-color:#e2e8f0;margin:auto 4px}.scroll-button{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:white;border:1px solid #e2e8f0;border-radius:50%;cursor:pointer;z-index:10;box-shadow:0 2px 4px rgba(0, 0, 0, 0.1);transition:all 0.2s ease}.scroll-button:hover{background-color:#f8fafc;border-color:#cbd5e1}.scroll-button.left{left:4px}.scroll-button.right{right:4px}.scroll-button svg{width:16px;height:16px;color:#64748b}.horizontal-nav.display-list{padding:0;background:transparent}.horizontal-nav.display-list .nav-list{flex-direction:column;gap:0}.horizontal-nav.display-list .nav-list-item{width:100%;border-bottom:1px solid #e5e7eb}.horizontal-nav.display-list .nav-list-item:last-child{border-bottom:none}.horizontal-nav.display-list .nav-item{width:100%;padding:12px 16px;border-radius:0;justify-content:flex-start;background-color:#ffffff}.horizontal-nav.display-list .nav-item:hover{background-color:#f9fafb}.horizontal-nav.display-list .nav-item.active{background-color:#eff6ff;border-left:3px solid #3b82f6;padding-left:13px}.horizontal-nav.display-list.variant-pills .nav-item,.horizontal-nav.display-list.variant-underline .nav-item,.horizontal-nav.display-list.variant-segmented .nav-item{border-radius:0}.horizontal-nav.display-list.variant-pills .nav-item.active{background-color:#eff6ff}.horizontal-nav.display-list.size-sm .nav-item{padding:8px 12px}.horizontal-nav.display-list.size-sm .nav-item.active{padding-left:9px}.horizontal-nav.display-list.size-lg .nav-item{padding:16px 20px}.horizontal-nav.display-list.size-lg .nav-item.active{padding-left:17px}@media (max-width: 640px){.horizontal-nav.size-md .nav-item{padding:6px 12px;font-size:13px}.horizontal-nav.size-lg .nav-item{padding:8px 16px;font-size:14px}}`;
5
+ const horizontalNavCss = () => `.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;width:100%}.horizontal-nav-container{position:relative;display:flex;align-items:center;width:100%}.horizontal-nav-container.scrollable .horizontal-nav{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.horizontal-nav-container.scrollable .horizontal-nav::-webkit-scrollbar{display:none}.horizontal-nav{display:flex;width:100%;background-color:#ffffff;border-radius:8px;padding:4px}.nav-list{display:flex;list-style:none;margin:0;padding:0;gap:4px;width:100%}.horizontal-nav.full-width .nav-list{flex:1}.horizontal-nav.full-width .nav-list-item{flex:1}.horizontal-nav.full-width .nav-item{width:100%;justify-content:center}.horizontal-nav.align-start .nav-list{justify-content:flex-start}.horizontal-nav.align-center .nav-list{justify-content:center}.horizontal-nav.align-end .nav-list{justify-content:flex-end}.horizontal-nav.align-space-between .nav-list{justify-content:space-between}.nav-list-item{display:flex}.nav-item{display:flex;align-items:center;gap:8px;padding:8px 16px;background:none;border:none;border-radius:6px;color:#64748b;text-decoration:none;font-weight:500;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;font-size:14px;position:relative}.horizontal-nav.size-sm .nav-item{padding:6px 12px;font-size:12px;gap:6px}.horizontal-nav.size-md .nav-item{padding:8px 16px;font-size:14px;gap:8px}.horizontal-nav.size-lg .nav-item{padding:10px 20px;font-size:16px;gap:10px}.horizontal-nav.variant-default .nav-item:hover:not(.disabled):not(.active){background-color:#f1f5f9;color:#475569}.horizontal-nav.variant-default .nav-item.active{background-color:var(--color-primary-subtle, rgba(59, 130, 246, 0.1));color:var(--color-primary, #3b82f6)}.horizontal-nav.variant-pills .nav-item{border-radius:20px}.horizontal-nav.variant-pills .nav-item:hover:not(.disabled):not(.active){background-color:#f1f5f9;color:#475569}.horizontal-nav.variant-pills .nav-item.active{background-color:var(--color-primary, #3b82f6);color:var(--text-inverse, white)}.horizontal-nav.variant-underline{background-color:transparent;border-bottom:1px solid #e2e8f0;border-radius:0;padding:0}.horizontal-nav.variant-underline .nav-item{border-radius:0;padding-bottom:12px;margin-bottom:-1px}.horizontal-nav.variant-underline .nav-item::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:transparent;transition:background-color 0.2s ease}.horizontal-nav.variant-underline .nav-item:hover:not(.disabled):not(.active){color:#475569}.horizontal-nav.variant-underline .nav-item:hover:not(.disabled):not(.active)::after{background-color:#cbd5e1}.horizontal-nav.variant-underline .nav-item.active{color:var(--color-primary, #3b82f6)}.horizontal-nav.variant-underline .nav-item.active::after{background-color:var(--color-primary, #3b82f6)}.horizontal-nav.variant-segmented{background-color:#f1f5f9;border-radius:8px;padding:4px}.horizontal-nav.variant-segmented .nav-item{background-color:transparent}.horizontal-nav.variant-segmented .nav-item:hover:not(.disabled):not(.active){background-color:rgba(255, 255, 255, 0.5)}.horizontal-nav.variant-segmented .nav-item.active{background-color:white;color:#1e293b;box-shadow:0 1px 3px rgba(0, 0, 0, 0.1)}.nav-item.disabled{opacity:0.4;cursor:not-allowed}.nav-item-content{display:flex;align-items:center;gap:inherit}.nav-icon{display:inline-flex;align-items:center;font-size:1.1em;line-height:1}.nav-icon svg{width:1em;height:1em;fill:currentColor}.nav-label{line-height:1}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;background-color:#ef4444;color:white;font-size:11px;font-weight:600;border-radius:10px;line-height:1}.nav-item.active .nav-badge{background-color:#dc2626}.horizontal-nav.with-divider .nav-list-item:not(:last-child)::after{content:"";width:1px;height:20px;background-color:#e2e8f0;margin:auto 4px}.scroll-button{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:white;border:1px solid #e2e8f0;border-radius:50%;cursor:pointer;z-index:10;box-shadow:0 2px 4px rgba(0, 0, 0, 0.1);transition:all 0.2s ease}.scroll-button:hover{background-color:#f8fafc;border-color:#cbd5e1}.scroll-button.left{left:4px}.scroll-button.right{right:4px}.scroll-button svg{width:16px;height:16px;color:#64748b}.horizontal-nav.display-list{padding:0;background:transparent}.horizontal-nav.display-list .nav-list{flex-direction:column;gap:0}.horizontal-nav.display-list .nav-list-item{width:100%;border-bottom:1px solid #e5e7eb}.horizontal-nav.display-list .nav-list-item:last-child{border-bottom:none}.horizontal-nav.display-list .nav-item{width:100%;padding:12px 16px;border-radius:0;justify-content:flex-start;background-color:#ffffff}.horizontal-nav.display-list .nav-item:hover{background-color:#f9fafb}.horizontal-nav.display-list .nav-item.active{background-color:var(--color-primary-subtle, rgba(59, 130, 246, 0.1));border-left:3px solid var(--color-primary, #3b82f6);padding-left:13px}.horizontal-nav.display-list.variant-pills .nav-item,.horizontal-nav.display-list.variant-underline .nav-item,.horizontal-nav.display-list.variant-segmented .nav-item{border-radius:0}.horizontal-nav.display-list.variant-pills .nav-item.active{background-color:var(--color-primary-subtle, rgba(59, 130, 246, 0.1))}.horizontal-nav.display-list.size-sm .nav-item{padding:8px 12px}.horizontal-nav.display-list.size-sm .nav-item.active{padding-left:9px}.horizontal-nav.display-list.size-lg .nav-item{padding:16px 20px}.horizontal-nav.display-list.size-lg .nav-item.active{padding-left:17px}@media (max-width: 640px){.horizontal-nav.size-md .nav-item{padding:6px 12px;font-size:13px}.horizontal-nav.size-lg .nav-item{padding:8px 16px;font-size:14px}}`;
6
6
 
7
7
  const HorizontalNav = class {
8
8
  constructor(hostRef) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-ClkOYpT8.js');
3
+ var index = require('./index-C32cWsm5.js');
4
4
 
5
5
  const knobCss = () => `.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:inline-block}.knob-wrapper{display:flex;flex-direction:column;align-items:center;gap:12px}.knob-container{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;touch-action:none;transition:transform 0.1s ease}.knob-container:hover:not(.disabled):not(.readonly){transform:scale(1.02)}.knob-container.dragging{cursor:grabbing;transform:scale(1.05)}.knob-container.disabled,.knob-container.readonly{cursor:not-allowed;opacity:0.5}.knob-svg{display:block;overflow:visible}.value-arc{filter:drop-shadow(0 2px 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.3));transition:stroke 0.2s ease}.knob-container:hover:not(.disabled):not(.readonly) .value-arc{filter:drop-shadow(0 3px 6px rgba(var(--color-primary-rgb, 59, 130, 246), 0.4))}.center-dot{filter:drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1))}.indicator{transition:all 0.1s ease;filter:drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2))}.value-label{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);display:flex;align-items:baseline;gap:2px;pointer-events:none;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}.value-number{font-size:calc(var(--knob-size, 120px) * 0.2);font-weight:700;color:var(--text-primary, #1e293b);line-height:1}.value-suffix{font-size:calc(var(--knob-size, 120px) * 0.12);font-weight:600;color:var(--text-muted, #64748b);line-height:1}.min-max-labels{display:flex;justify-content:space-between;width:100%;font-size:12px;color:var(--text-muted, #64748b);font-weight:500;padding:0 8px}.min-label,.max-label{white-space:nowrap}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.8}}.knob-container.dragging .value-label{animation:pulse 0.3s ease-in-out}.knob-container:active:not(.disabled):not(.readonly){transform:scale(1.05)}.knob-container:focus-visible{outline:2px solid var(--color-primary, #10b981);outline-offset:4px;border-radius:50%}@media (max-width: 640px){.value-number{font-size:calc(var(--knob-size, 120px) * 0.18)}.value-suffix{font-size:calc(var(--knob-size, 120px) * 0.11)}.min-max-labels{font-size:11px}}`;
6
6