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,360 +1,632 @@
1
- export function initCarouselDemo() {
2
- const section = document.getElementById('carousel');
3
- if (!section) return;
4
-
5
- const assetPath = '/build/assets/images/';
6
-
7
- const images = [
8
- 'nature_forest_1.png',
9
- 'nature_lake_2.png',
10
- 'nature_desert_3.png',
11
- 'nature_ocean_4.png',
12
- 'slide1.png',
13
- 'slide2.png',
14
- 'slide3.png',
15
- 'nature_lake_2.png',
16
- 'nature_forest_1.png',
17
- 'nature_desert_3.png',
18
- ];
19
-
20
- section.innerHTML = `
21
- <div class="demo-wrapper">
22
- <div class="demo-header-section" style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px;">
23
- <h2 class="demo-section-title" style="display: flex; align-items: center; gap: 12px; font-weight: 800; font-size: 1.75rem; color: var(--text-primary);">
24
- Carousel
25
- <span style="font-size: 0.4em; vertical-align: middle; background: linear-gradient(135deg, #f59e0b, #ef4444); color: white; padding: 4px 12px; border-radius: 20px; font-weight: 800; letter-spacing: 0.05em; box-shadow: 0 4px 10px rgba(245, 158, 11, 0.25);">APEX SUPREME</span>
26
- </h2>
27
- </div>
28
-
29
- <nav id="carouselNavPills" style="margin-bottom: 24px; display: flex; gap: 8px; flex-wrap: wrap; background: var(--bg-secondary); padding: 10px; border-radius: 12px; border: 1px solid var(--border-default);">
30
- <ui-button variant="outline" color="warning" label="Core & Scroll" data-tab="core" size="md"ui-button>
31
- <ui-button variant="outline" color="warning" label="Motion Engine" data-tab="motion" size="md"ui-button>
32
- <ui-button variant="outline" color="warning" label="Social Engine" data-tab="social" size="md"ui-button>
33
- <ui-button variant="outline" color="warning" label="Variable Width" data-tab="variable" size="md"ui-button>
34
- <ui-button variant="outline" color="warning" label="Infinity Lab" data-tab="infinity" size="md"ui-button>
35
- <ui-button variant="outline" color="warning" label="Legendary lab" data-tab="legendary" size="md"ui-button>
36
- <ui-button variant="outline" color="warning" label="Ticker Lab (Auto-Moving)" data-tab="ticker" size="md"ui-button>
37
- <ui-button variant="outline" color="warning" label="Lazy Lab (SEO/Perf)" data-tab="lazy" size="md"ui-button>
38
- <ui-button variant="outline" color="warning" label="Cinematic Lab (Premium)" data-tab="cinematic" size="md"ui-button>
39
- </nav>
40
-
41
- <div id="carouselDemoContainer" style="min-height: 500px;"></div>
42
- </div>
43
-
44
- <style>
45
- /* Legendary Stagger logic */
46
- [data-active="true"] .slide-badge,
47
- [data-active="true"] .slide-title,
48
- [data-active="true"] .slide-desc,
49
- [data-active="true"] .slide-btn {
50
- animation: apexSlideUp 1.2s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
51
- opacity: 0;
52
- }
53
- [data-active="true"] .slide-badge { animation-delay: 0.1s; }
54
- [data-active="true"] .slide-title { animation-delay: 0.25s; }
55
- [data-active="true"] .slide-desc { animation-delay: 0.4s; }
56
- [data-active="true"] .slide-btn { animation-delay: 0.55s; }
57
-
58
- @keyframes apexSlideUp {
59
- from { transform: translateY(40px); opacity: 0; }
60
- to { transform: translateY(0); opacity: 1; }
61
- }
62
-
63
- .stagger-slide { height: 100%; width: 100%; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 60px; color: white; }
64
- .stagger-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
65
- .stagger-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.9), transparent 80%); z-index: 1; }
66
- .slide-badge { background: #f59e0b; padding: 4px 12px; border-radius: 20px; font-size: 11px; font-weight: 800; width: fit-content; margin-bottom: 12px; position: relative; z-index: 2; }
67
- .slide-title { font-size: 2.5rem; font-weight: 800; margin: 0 0 10px; position: relative; z-index: 2; line-height: 1.1; }
68
-
69
- .social-preview { background: #000; padding: 50px; border-radius: 40px; display: flex; justify-content: center; }
70
- .phone-wrap { width: 330px; height: 600px; border: 12px solid #282828; border-radius: 56px; overflow: hidden; position: relative; box-shadow: 0 30px 60px rgba(0,0,0,0.5); }
71
- .card-item { background: var(--bg-primary); border-radius: 12px; border: 1px solid var(--border-default); display: flex; align-items: center; justify-content: center; font-weight: 800; box-shadow: var(--shadow-sm); flex-shrink:0; }
72
- .ticker-card { padding: 20px; border-radius: 12px; background: var(--bg-primary); border: 1px solid var(--border-default); display: flex; align-items: center; gap: 15px; min-width: 200px; box-shadow: var(--shadow-sm); }
73
- </style>
74
- `;
75
-
76
- const container = document.getElementById('carouselDemoContainer');
77
- const nav = document.getElementById('carouselNavPills');
78
-
79
- const demoMap = {
80
- core: () => {
81
- container.innerHTML = `
82
- <div class="demo-grid" style="display: grid; grid-template-columns: 1fr 1fr; gap: 32px;">
83
- <div class="demo-block">
84
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Horizontal Context</h3>
85
- <ui-carousel height="250px" indicators="true" arrows-position="sides">
86
- ${images
87
- .slice(0, 4)
88
- .map(img => `<div style="height:100%"><img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:12px;" /></div>`)
89
- .join('')}
90
- </ui-carousel>
91
- </div>
92
- <div class="demo-block">
93
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Vertical Feed Context</h3>
94
- <ui-carousel vertical="true" height="250px" autoplay="true" infinite="true">
95
- ${images
96
- .slice(4, 8)
97
- .map(img => `<div style="height:100%"><img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:12px;" /></div>`)
98
- .join('')}
99
- </ui-carousel>
100
- </div>
101
- <div class="demo-block" style="grid-column: span 2; background: var(--bg-secondary); padding:32px; border-radius:24px; border: 1px solid var(--border-default);">
102
- <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;">
103
- <h3 style="margin:0; font-size: 18px;">3-Card Grouped Scroll</h3>
104
- <ui-pill size="md"riant="outline" color="secondary" label='slides-to-show="3"'></ui-pill>
105
- </div>
106
- <ui-carousel slides-to-show="3" slides-to-scroll="3" arrows="true" height="280px" infinite="true">
107
- ${Array.from({ length: 9 })
108
- .map(
109
- (_, i) =>
110
- `<div style="padding:10px; height:100%;"><div class="card-item" style="width:100%; height:100%; color: var(--text-primary);">PRODUCT ${i + 1}</div></div>`,
111
- )
112
- .join('')}
113
- </ui-carousel>
114
- </div>
115
- </div>
116
- `;
117
- },
118
- motion: () => {
119
- container.innerHTML = `
120
- <div class="demo-grid" style="display: grid; grid-template-columns: 1fr; gap: 48px;">
121
- <div class="demo-block">
122
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">3D Coverflow (Centered Stack)</h3>
123
- <ui-carousel effect="coverflow" height="400px" autoplay="true" slides-to-show="3" center-mode="true">
124
- ${images
125
- .slice(0, 6)
126
- .map(img => `<div style="height:100%"><img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:16px;" /></div>`)
127
- .join('')}
128
- </ui-carousel>
129
- </div>
130
- <div class="demo-block">
131
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">3D Cube View</h3>
132
- <ui-carousel effect="cube" height="400px" indicators-type="pie">
133
- ${images
134
- .slice(4, 8)
135
- .map(img => `<div style="height:100%"><img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:16px;" /></div>`)
136
- .join('')}
137
- </ui-carousel>
138
- </div>
139
- <div class="demo-block">
140
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Perspective Depth Focus</h3>
141
- <ui-carousel effect="depth" height="400px" arrows="true" slides-to-show="3" center-mode="true">
142
- ${images
143
- .slice(0, 6)
144
- .map(img => `<div style="height:100%"><img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:16px;" /></div>`)
145
- .join('')}
146
- </ui-carousel>
147
- </div>
148
- <div class="demo-block">
149
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">3D Vertical Wheel</h3>
150
- <ui-carousel effect="wheel" height="400px" autoplay="true" arrows="true">
151
- ${images
152
- .slice(1, 6)
153
- .map(img => `<div style="height:100%"><img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:16px;" /></div>`)
154
- .join('')}
155
- </ui-carousel>
156
- </div>
157
- <div class="demo-block">
158
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Full Perspective Flip</h3>
159
- <ui-carousel effect="flip" height="400px" arrows="true">
160
- ${images
161
- .slice(0, 4)
162
- .map(img => `<div style="height:100%"><img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:16px;" /></div>`)
163
- .join('')}
164
- </ui-carousel>
165
- </div>
166
- </div>
167
- `;
168
- },
169
- social: () => {
170
- container.innerHTML = `
171
- <div class="demo-block" style="display:flex; flex-direction:column; align-items:center;">
172
- <h3 style="margin-bottom:24px; font-weight:800; color: var(--text-primary);">Mobile Social Story Feed</h3>
173
- <div class="social-preview">
174
- <div class="phone-wrap">
175
- <ui-carousel indicators="true" indicators-type="segments" autoplay="true" height="100%" effect="fade" infinite="true" autoplay-interval="4000">
176
- ${images
177
- .slice(0, 6)
178
- .map(
179
- (img, i) => `
180
- <div style="height:100%; position:relative;">
181
- <img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover;" />
182
- <div style="position:absolute; bottom:50px; left:25px; color:white; font-family:system-ui;">
183
- <span style="font-weight:900; font-size:1.5rem; letter-spacing:-1px;">STORY ${i + 1}</span>
184
- <p style="opacity:0.8; margin-top:4px;">Experience the cinematic fade engine.</p>
185
- </div>
186
- </div>
187
- `,
188
- )
189
- .join('')}
190
- </ui-carousel>
191
- </div>
192
- </div>
193
- </div>
194
- `;
195
- },
196
- variable: () => {
197
- container.innerHTML = `
198
- <div class="demo-block">
199
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Variable Width Gallery (10 Cards)</h3>
200
- <ui-carousel variable-width="true" height="200px" indicators="true" arrows="true" infinite="false">
201
- <div class="card-item" style="width: 300px; height:100%; margin:0 10px; color: var(--text-primary);">MARKET A (300px)</div>
202
- <div class="card-item" style="width: 140px; height:100%; margin:0 10px; color: var(--text-primary); background: var(--bg-secondary);">MINI</div>
203
- <div class="card-item" style="width: 480px; height:100%; margin:0 10px; background:#1e293b; color:white; border: none;">WIDE BANNER AD</div>
204
- <div class="card-item" style="width: 220px; height:100%; margin:0 10px; background:#f59e0b; color:white; border: none;">HIGHLIGHT</div>
205
- <div class="card-item" style="width: 110px; height:100%; margin:0 10px; color: var(--text-primary);">110px</div>
206
- <div class="card-item" style="width: 340px; height:100%; margin:0 10px; color: var(--text-primary);">CARD #6</div>
207
- <div class="card-item" style="width: 260px; height:100%; margin:0 10px; background:#1e293b; color:white; border: none;">CARD #7</div>
208
- <div class="card-item" style="width: 190px; height:100%; margin:0 10px; background:#ef4444; color:white; border: none;">CARD #8</div>
209
- <div class="card-item" style="width: 410px; height:100%; margin:0 10px; background:#334155; color:white; border: none;">CARD #9 (WIDE)</div>
210
- <div class="card-item" style="width: 130px; height:100%; margin:0 10px; color: var(--text-primary);">CARD #10</div>
211
- </ui-carousel>
212
- </div>
213
- `;
214
- },
215
- infinity: () => {
216
- container.innerHTML = `
217
- <div class="demo-grid" style="display:grid; grid-template-columns: 1fr 1fr; gap:32px;">
218
- <div class="demo-block">
219
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Infinite Loop</h3>
220
- <ui-carousel infinite="true" indicators="true" height="250px" autoplay="true">
221
- ${Array.from({ length: 4 }, (_, i) => `<div class="card-item" style="width:100%; height:100%; background:#1e293b; color:white;">LOOP CARD ${i + 1}</div>`).join('')}
222
- </ui-carousel>
223
- </div>
224
- <div class="demo-block">
225
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Boundary Stop (No Empty)</h3>
226
- <ui-carousel infinite="false" indicators="true" height="250px" arrows="true">
227
- ${Array.from({ length: 4 }, (_, i) => `<div class="card-item" style="width:100%; height:100%; background:#10b981; color:white;">STOP AT #${i + 1}</div>`).join('')}
228
- </ui-carousel>
229
- </div>
230
- </div>
231
- `;
232
- },
233
- legendary: () => {
234
- container.innerHTML = `
235
- <div class="demo-block">
236
- <ui-carousel indicators-type="pie" animate-content="true" autoplay="true" height="550px" effect="fade">
237
- ${images
238
- .slice(0, 4)
239
- .map(
240
- (img, i) => `
241
- <div class="stagger-slide">
242
- <img src="${assetPath}${img}" class="stagger-bg" />
243
- <div class="stagger-overlay"></div>
244
- <div class="slide-badge">MASTERCLASS EDITION</div>
245
- <h2 class="slide-title">Motion Art Mark #${i + 1}</h2>
246
- <ui-button class="slide-btn" label="EXPLORE ARCHIVE" variant="glass" color="primary" size="large" shape="pill" style="margin-top:24px;"></ui-button>
247
- </div>
248
- `,
249
- )
250
- .join('')}
251
- </ui-carousel>
252
- </div>
253
- `;
254
- },
255
- ticker: () => {
256
- container.innerHTML = `
257
- <div class="demo-grid" style="display:grid; grid-template-columns: 1fr; gap:32px;">
258
- <div class="demo-block">
259
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Seamless Continuous Ticker</h3>
260
- <p style="margin-bottom:20px; opacity:0.7; color: var(--text-secondary);">Ticker mode enabled with custom speed. The track moves continuously at a pixel-perfect rate.</p>
261
- <ui-carousel ticker="true" ticker-speed="1" height="120px" arrows="false" indicators="false" slides-to-show="4" infinite="true">
262
- ${Array.from(
263
- { length: 8 },
264
- (_, i) => `
265
- <div style="padding:10px;">
266
- <div class="ticker-card">
267
- <div style="width:12px; height:12px; border-radius:50%; background:#10b981;"></div>
268
- <div>
269
- <div style="font-size:14px; font-weight:700; color: var(--text-primary);">NODE_${i + 1}</div>
270
- <div style="font-size:11px; opacity:0.6; color: var(--text-secondary);">LATENCY: ${Math.floor(Math.random() * 20)}ms</div>
271
- </div>
272
- </div>
273
- </div>
274
- `,
275
- ).join('')}
276
- </ui-carousel>
277
- </div>
278
-
279
- <div class="demo-block" style="background:#0f172a; padding:32px; border-radius:24px; color:white; border: 1px solid rgba(255,255,255,0.1);">
280
- <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;">
281
- <h3 style="margin:0; color:white; font-size: 18px;">Industrial High-Speed Banner</h3>
282
- <ui-pill size="md"riant="outline" color="danger" label='ticker-speed="3"'></ui-pill>
283
- </div>
284
- <ui-carousel ticker="true" ticker-speed="3" height="150px" arrows="false" indicators="false" infinite="true">
285
- <div style="padding:15px; height:100%;"><div class="card-item" style="width:100%; height:100%; background:#1e293b; border-color:#334155; color:white; font-size:1.5rem; white-space:nowrap;">FLASH SALE EVENT STARTING NOW - 40% OFF - TCODE: APEX</div></div>
286
- <div style="padding:15px; height:100%;"><div class="card-item" style="width:100%; height:100%; background:#f59e0b; border-color:#f59e0b; color:white; font-size:1.5rem; white-space:nowrap;">NEW MOTION ENGINE RELEASED V1.0 - EXPERIENCE FLUIDITY</div></div>
287
- </ui-carousel>
288
- </div>
289
- </div>
290
- `;
291
- },
292
- lazy: () => {
293
- container.innerHTML = `
294
- <div class="demo-block">
295
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Intersection Observer Lazy Loading</h3>
296
- <p style="margin-bottom:20px; opacity:0.7; color: var(--text-secondary);">Images only load when they are about to enter the viewport (200px threshold). Open network tab to verify.</p>
297
- <ui-carousel lazy-load="true" height="400px" arrows="true">
298
- ${images
299
- .slice(0, 6)
300
- .map(
301
- img => `
302
- <div style="height:100%">
303
- <img data-src="${assetPath}${img}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=" style="width:100%; height:100%; object-fit:cover; border-radius:12px; background:var(--bg-secondary);" />
304
- </div>
305
- `,
306
- )
307
- .join('')}
308
- </ui-carousel>
309
- </div>
310
- `;
311
- },
312
- cinematic: () => {
313
- container.innerHTML = `
314
- <div class="demo-block">
315
- <h3 class="demo-section-title" style="font-size: 18px; margin-bottom: 16px;">Cinematic Ken-Burns Panning</h3>
316
- <p style="margin-bottom:20px; opacity:0.7; color: var(--text-secondary);">Enhanced Ken-Burns effect with subtle panning and smoother scaling for high-end photography.</p>
317
- <ui-carousel effect="ken-burns" autoplay="true" infinite="true" height="500px">
318
- ${images
319
- .slice(0, 4)
320
- .map(
321
- img => `
322
- <div style="height:100%">
323
- <img src="${assetPath}${img}" style="width:100%; height:100%; object-fit:cover; border-radius:12px;" />
324
- </div>
325
- `,
326
- )
327
- .join('')}
328
- </ui-carousel>
329
- </div>
330
- `;
331
- },
332
- };
333
-
334
- const showTab = tab => {
335
- if (demoMap[tab]) {
336
- demoMap[tab]();
337
-
338
- // // Update nav button styles
339
- // if (nav) {
340
- // nav.querySelectorAll('ui-button').forEach(btn => {
341
- // const isMatch = btn.getAttribute('data-tab') === tab;
342
- // btn.variant = isMatch ? 'solid' : 'soft';
343
- // });
344
- // }
345
- }
346
- };
347
-
348
- // Wire up navigation
349
- if (nav) {
350
- nav.querySelectorAll('ui-button').forEach(btn => {
351
- btn.addEventListener('click', () => {
352
- const tab = btn.getAttribute('data-tab');
353
- showTab(tab);
354
- });
355
- });
356
- }
357
-
358
- // Initial tab
359
- showTab('core');
360
- }
1
+ export function initCarouselDemo() {
2
+ const section = document.getElementById('carousel');
3
+ if (!section) return;
4
+
5
+ const assetPath = '/build/assets/images/';
6
+
7
+ section.innerHTML = `
8
+ <div class="demo-header" style="margin-bottom: 32px;">
9
+ <p style="margin-top: 0; opacity: 0.7; font-size: 14px;">Master-tier responsive carousel system featuring advanced 3D transitions, continuous seamless ticker engines, Ken-Burns panning, stories-style segmented progress indicators, and absolute accessibility alignment.</p>
10
+ </div>
11
+
12
+ <div id="carouselNav" class="demo-controls" style="margin: 20px 0; display: flex; gap: 12px; flex-wrap: wrap;">
13
+ <ui-button label="🎮 Playground" onclick="showCarouselPlayground()"></ui-button>
14
+ <ui-button label="✨ Elite Specimens" onclick="showCarouselEliteSpecimens()"></ui-button>
15
+ <ui-button label="🎬 3D Transitions" onclick="showCarouselTransitions()"></ui-button>
16
+ <ui-button label="📈 Industrial Ticker" onclick="showCarouselContinuousTicker()"></ui-button>
17
+ <ui-button label="📱 Mobile Stories" onclick="showCarouselMobileStories()"></ui-button>
18
+ <ui-button label="⚡ Features & A11y" onclick="showCarouselControlsAndA11y()"></ui-button>
19
+ </div>
20
+
21
+ <div id="carouselDemoContainer" style="margin-top: 20px;"></div>
22
+
23
+ <style>
24
+ :root {
25
+ --bg-glass-card: rgba(255, 255, 255, 0.55);
26
+ --border-glass-card: rgba(255, 255, 255, 0.25);
27
+ --text-glass-card: #1f2937;
28
+ }
29
+ html.dark {
30
+ --bg-glass-card: rgba(18, 18, 18, 0.65);
31
+ --border-glass-card: rgba(255, 255, 255, 0.08);
32
+ --text-glass-card: #f3f4f6;
33
+ }
34
+ .specimen-glass-card {
35
+ background: var(--bg-glass-card);
36
+ border: 1px solid var(--border-glass-card);
37
+ color: var(--text-glass-card);
38
+ backdrop-filter: blur(24px);
39
+ -webkit-backdrop-filter: blur(24px);
40
+ }
41
+ .phone-wrap {
42
+ width: 320px;
43
+ height: 580px;
44
+ border: 14px solid #1a1a1a;
45
+ border-radius: 48px;
46
+ overflow: hidden;
47
+ position: relative;
48
+ box-shadow: 0 30px 70px rgba(0,0,0,0.6);
49
+ background: black;
50
+ }
51
+
52
+ @keyframes pulse {
53
+ 0%, 100% { opacity: 0.6; transform: scale(1); }
54
+ 50% { opacity: 1; transform: scale(1.15); }
55
+ }
56
+ </style>
57
+ `;
58
+
59
+ const updateActiveBtn = (funcName) => {
60
+ const nav = document.getElementById('carouselNav');
61
+ if (!nav) return;
62
+ nav.querySelectorAll('ui-button').forEach(btn => {
63
+ const onclick = btn.getAttribute('onclick') || '';
64
+ btn.selected = onclick.includes(funcName);
65
+ });
66
+ };
67
+
68
+ const slideData = [
69
+ { bg: 'linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%)', icon: '🚀', title: 'Apex Performance', desc: 'Accelerated 3D hardware transition layers' },
70
+ { bg: 'linear-gradient(135deg, #06b6d4 0%, #0891b2 100%)', icon: '✨', title: 'Adaptive Theming', desc: 'Seamlessly adapts to your active palette' },
71
+ { bg: 'linear-gradient(135deg, #10b981 0%, #059669 100%)', icon: '🛡️', title: 'A11y Compliant', desc: 'Built-in keyboard, screen reader, and RTL support' },
72
+ { bg: 'linear-gradient(135deg, #f59e0b 0%, #d97706 100%)', icon: '⚡', title: 'Physics Engine', desc: 'Elastic spring swipe and drag dynamics' },
73
+ { bg: 'linear-gradient(135deg, #ec4899 0%, #db2777 100%)', icon: '🎨', title: 'Endless Playbook', desc: 'Cube, coverflow, stack, wheel, flip, and more' },
74
+ { bg: 'linear-gradient(135deg, #3b82f6 0%, #2563eb 100%)', icon: '🌌', title: 'Ken-Burns Cinematic', desc: 'Atmospheric zooming and panning effects' },
75
+ ];
76
+
77
+ const pgSlidesHTML = slideData.map((s) => `
78
+ <div style="height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:${s.bg}; color:white; padding:40px; text-align:center; position:relative; overflow:hidden;">
79
+ <div style="position:absolute; inset:0; opacity:0.1; background:radial-gradient(circle, white 10%, transparent 60%);"></div>
80
+ <div style="font-size:3.5rem; margin-bottom:16px; filter:drop-shadow(0 8px 16px rgba(0,0,0,0.25));">${s.icon}</div>
81
+ <h3 style="font-size:1.75rem; font-weight:800; margin:0 0 10px; text-shadow:0 2px 4px rgba(0,0,0,0.3);">${s.title}</h3>
82
+ <p style="font-size:1rem; opacity:0.9; margin:0; max-width:280px; text-shadow:0 1px 2px rgba(0,0,0,0.25);">${s.desc}</p>
83
+ </div>
84
+ `).join('');
85
+
86
+ window.showCarouselPlayground = function () {
87
+ updateActiveBtn('showCarouselPlayground');
88
+ const container = document.getElementById('carouselDemoContainer');
89
+ if (!container) return;
90
+
91
+ container.innerHTML = `
92
+ <div class="demo-block reveal-fade-in" style="background:var(--bg-primary); border:1px solid var(--border-default); border-radius:24px; padding:32px; box-shadow:var(--shadow-lg);">
93
+ <h3 class="specimen-title" style="margin-bottom:8px; font-weight:800; font-size:1.5rem; color:var(--text-primary); display:flex; align-items:center; gap:10px;">
94
+ <span>🎮 Carousel Studio Playground</span>
95
+ </h3>
96
+ <p style="font-size:13px; color:var(--text-secondary); margin-bottom:24px; max-width:600px;">
97
+ Configure all reactive properties of the carousel. The Stencil runtime dynamically updates attributes and re-renders transition pipelines on the fly.
98
+ </p>
99
+
100
+ <div style="display:grid; grid-template-columns:320px 1fr; gap:32px;">
101
+ <!-- Controls Panel -->
102
+ <div class="playground-settings" style="background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:18px; padding:24px; display:flex; flex-direction:column; gap:20px; max-height:720px; overflow-y:auto;">
103
+
104
+ <div>
105
+ <div style="font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-primary); margin-bottom:12px; display:flex; align-items:center; gap:6px;">
106
+ <span>📐 Structure & Feed</span>
107
+ </div>
108
+ <div style="display:flex; flex-direction:column; gap:12px;">
109
+ <ui-dropdown id="pgSlidesToShow" label="Slides to Show" value="1" size="md" options='[{"label":"1 Slide","value":"1"},{"label":"2 Slides","value":"2"},{"label":"3 Slides","value":"3"},{"label":"4 Slides","value":"4"}]'></ui-dropdown>
110
+ <ui-dropdown id="pgSlidesToScroll" label="Slides to Scroll" value="1" size="md" options='[{"label":"Scroll 1","value":"1"},{"label":"Scroll 2","value":"2"},{"label":"Scroll 3","value":"3"}]'></ui-dropdown>
111
+ <ui-dropdown id="pgOrientation" label="Orientation" value="horizontal" size="md" options='[{"label":"Horizontal","value":"horizontal"},{"label":"Vertical","value":"vertical"}]'></ui-dropdown>
112
+ </div>
113
+ </div>
114
+
115
+ <div>
116
+ <div style="font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-primary); margin-bottom:12px; display:flex; align-items:center; gap:6px;">
117
+ <span>🎬 Motion & Transitions</span>
118
+ </div>
119
+ <div style="display:flex; flex-direction:column; gap:12px;">
120
+ <ui-dropdown id="pgEffect" label="Transition Effect" value="slide" size="md" options='[
121
+ {"label":"Standard Slide","value":"slide"},
122
+ {"label":"Cinematic Fade","value":"fade"},
123
+ {"label":"3D Cube","value":"cube"},
124
+ {"label":"3D Flip","value":"flip"},
125
+ {"label":"3D Coverflow","value":"coverflow"},
126
+ {"label":"Depth Stack","value":"depth"},
127
+ {"label":"Ken-Burns Zoom","value":"ken-burns"},
128
+ {"label":"Vertical Wheel","value":"wheel"},
129
+ {"label":"Vertical Stack","value":"stack"}
130
+ ]'></ui-dropdown>
131
+ <ui-input id="pgDuration" label="Duration (ms)" value="500" size="md"></ui-input>
132
+ <ui-input id="pgInterval" label="Autoplay Interval (ms)" value="3000" size="md"></ui-input>
133
+ </div>
134
+ </div>
135
+
136
+ <div>
137
+ <div style="font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-primary); margin-bottom:12px; display:flex; align-items:center; gap:6px;">
138
+ <span>📊 Indicators & Navigation</span>
139
+ </div>
140
+ <div style="display:flex; flex-direction:column; gap:12px;">
141
+ <ui-dropdown id="pgIndicatorsType" label="Indicators Type" value="dots" size="md" options='[{"label":"Dots Indicator","value":"dots"},{"label":"Stories Segments","value":"segments"},{"label":"Pie Timer","value":"pie"}]'></ui-dropdown>
142
+ <ui-dropdown id="pgArrowsPosition" label="Arrows Position" value="sides" size="md" options='[{"label":"Sides (Center)","value":"sides"},{"label":"Top Right Group","value":"top-right"}]'></ui-dropdown>
143
+ </div>
144
+ </div>
145
+
146
+ <div>
147
+ <div style="font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-primary); margin-bottom:12px;">
148
+ <span>⚡ Behavior Flags</span>
149
+ </div>
150
+ <div style="display:grid; grid-template-columns:1fr; gap:10px;">
151
+ <ui-checkbox id="pgAutoplay" label="Auto-play loop" checked size="md"></ui-checkbox>
152
+ <ui-checkbox id="pgInfinite" label="Infinite scroll" checked size="md"></ui-checkbox>
153
+ <ui-checkbox id="pgArrows" label="Show Arrows" checked size="md"></ui-checkbox>
154
+ <ui-checkbox id="pgIndicators" label="Show Indicators" checked size="md"></ui-checkbox>
155
+ <ui-checkbox id="pgSwipe" label="Touch Swiping" checked size="md"></ui-checkbox>
156
+ <ui-checkbox id="pgDraggable" label="Mouse Draggable" checked size="md"></ui-checkbox>
157
+ <ui-checkbox id="pgCenterMode" label="Center Focus (Peek)" size="md"></ui-checkbox>
158
+ <ui-checkbox id="pgVariableWidth" label="Variable Width" size="md"></ui-checkbox>
159
+ <ui-checkbox id="pgProgress" label="Autoplay Progress Bar" size="md"></ui-checkbox>
160
+ <ui-checkbox id="pgCounter" label="Show Slide Counter" size="md"></ui-checkbox>
161
+ </div>
162
+ </div>
163
+
164
+ </div>
165
+
166
+ <!-- Preview & Code Output -->
167
+ <div style="display:flex; flex-direction:column; gap:24px;">
168
+ <div style="border:1px solid var(--border-default); border-radius:18px; overflow:hidden; background:var(--bg-secondary); padding:24px; display:flex; flex-direction:column; justify-content:center; min-height:420px; position:relative;">
169
+ <div style="position:absolute; top:12px; left:20px; font-size:11px; font-weight:800; text-transform:uppercase; color:var(--text-secondary); letter-spacing:0.05em;">Live Preview Screen</div>
170
+
171
+ <div id="pgCarouselWrapper" style="width:100%;">
172
+ <ui-carousel id="pgCarousel" autoplay="true" autoplay-interval="3000" indicators="true" arrows="true" infinite="true" height="340px">
173
+ ${pgSlidesHTML}
174
+ </ui-carousel>
175
+ </div>
176
+ </div>
177
+
178
+ <div>
179
+ <ui-code-preview id="carouselCodePreview" label="Implementation Code" expanded="false"></ui-code-preview>
180
+ </div>
181
+ </div>
182
+ </div>
183
+
184
+ </div>
185
+ `;
186
+
187
+ setTimeout(() => {
188
+ const dropdowns = ['pgSlidesToShow', 'pgSlidesToScroll', 'pgOrientation', 'pgEffect', 'pgIndicatorsType', 'pgArrowsPosition'];
189
+ const inputs = ['pgDuration', 'pgInterval'];
190
+ const checkboxes = ['pgAutoplay', 'pgInfinite', 'pgArrows', 'pgIndicators', 'pgSwipe', 'pgDraggable', 'pgCenterMode', 'pgVariableWidth', 'pgProgress', 'pgCounter'];
191
+
192
+ dropdowns.forEach(id => document.getElementById(id)?.addEventListener('dropdownChange', () => updateCarouselPlayground()));
193
+ inputs.forEach(id => document.getElementById(id)?.addEventListener('inputChange', () => updateCarouselPlayground()));
194
+ checkboxes.forEach(id => document.getElementById(id)?.addEventListener('checkboxChange', () => updateCarouselPlayground()));
195
+
196
+ updateCarouselPlayground();
197
+ }, 100);
198
+ };
199
+
200
+ window.updateCarouselPlayground = function () {
201
+ const getVal = id => document.getElementById(id)?.value || '';
202
+ const getChecked = id => document.getElementById(id)?.checked || false;
203
+
204
+ const slidesToShow = getVal('pgSlidesToShow');
205
+ const slidesToScroll = getVal('pgSlidesToScroll');
206
+ const orientation = getVal('pgOrientation');
207
+ const effect = getVal('pgEffect');
208
+ const duration = getVal('pgDuration');
209
+ const interval = getVal('pgInterval');
210
+ const indicatorsType = getVal('pgIndicatorsType');
211
+ const arrowsPosition = getVal('pgArrowsPosition');
212
+
213
+ const autoplay = getChecked('pgAutoplay');
214
+ const infinite = getChecked('pgInfinite');
215
+ const arrows = getChecked('pgArrows');
216
+ const indicators = getChecked('pgIndicators');
217
+ const swipe = getChecked('pgSwipe');
218
+ const draggable = getChecked('pgDraggable');
219
+ const centerMode = getChecked('pgCenterMode');
220
+ const variableWidth = getChecked('pgVariableWidth');
221
+ const progress = getChecked('pgProgress');
222
+ const counter = getChecked('pgCounter');
223
+
224
+ const carousel = document.getElementById('pgCarousel');
225
+ if (carousel) {
226
+ carousel.setAttribute('slides-to-show', slidesToShow);
227
+ carousel.setAttribute('slides-to-scroll', slidesToScroll);
228
+ carousel.setAttribute('vertical', orientation === 'vertical');
229
+ carousel.setAttribute('effect', effect);
230
+ carousel.setAttribute('animation-duration', duration);
231
+ carousel.setAttribute('autoplay-interval', interval);
232
+ carousel.setAttribute('indicators-type', indicatorsType);
233
+ carousel.setAttribute('arrows-position', arrowsPosition);
234
+
235
+ // Boolean settings
236
+ carousel.autoplay = autoplay;
237
+ carousel.infinite = infinite;
238
+ carousel.arrows = arrows;
239
+ carousel.indicators = indicators;
240
+ carousel.swipe = swipe;
241
+ carousel.enableDrag = draggable;
242
+ carousel.centerMode = centerMode;
243
+ carousel.variableWidth = variableWidth;
244
+ carousel.showProgress = progress;
245
+ carousel.showCounter = counter;
246
+
247
+ // Handle custom padding for center peeking
248
+ if (centerMode) {
249
+ carousel.setAttribute('center-padding', '60px');
250
+ } else {
251
+ carousel.removeAttribute('center-padding');
252
+ }
253
+
254
+ carousel.refresh();
255
+ }
256
+
257
+ // Code Preview Generator
258
+ const codePreview = document.getElementById('carouselCodePreview');
259
+ if (codePreview) {
260
+ let code = `<ui-carousel\n`;
261
+ code += ` height="360px"\n`;
262
+ if (slidesToShow !== '1') code += ` slides-to-show="${slidesToShow}"\n`;
263
+ if (slidesToScroll !== '1') code += ` slides-to-scroll="${slidesToScroll}"\n`;
264
+ if (orientation === 'vertical') code += ` vertical="true"\n`;
265
+ if (effect !== 'slide') code += ` effect="${effect}"\n`;
266
+ if (duration !== '500') code += ` animation-duration="${duration}"\n`;
267
+ if (autoplay) {
268
+ code += ` autoplay="true"\n`;
269
+ if (interval !== '3000') code += ` autoplay-interval="${interval}"\n`;
270
+ }
271
+ if (indicatorsType !== 'dots') code += ` indicators-type="${indicatorsType}"\n`;
272
+ if (arrowsPosition !== 'sides') code += ` arrows-position="${arrowsPosition}"\n`;
273
+ if (!infinite) code += ` infinite="false"\n`;
274
+ if (!arrows) code += ` arrows="false"\n`;
275
+ if (!indicators) code += ` indicators="false"\n`;
276
+ if (!swipe) code += ` swipe="false"\n`;
277
+ if (!draggable) code += ` enable-drag="false"\n`;
278
+ if (centerMode) code += ` center-mode="true"\n center-padding="60px"\n`;
279
+ if (variableWidth) code += ` variable-width="true"\n`;
280
+ if (progress) code += ` show-progress="true"\n`;
281
+ if (counter) code += ` show-counter="true"\n`;
282
+
283
+ code += `>\n`;
284
+ code += ` <div><img src="slide1.jpg" /></div>\n`;
285
+ code += ` <div><img src="slide2.jpg" /></div>\n`;
286
+ code += ` <div><img src="slide3.jpg" /></div>\n`;
287
+ code += `</ui-carousel>`;
288
+
289
+ codePreview.setAttribute('html-code', code);
290
+ }
291
+ };
292
+
293
+ window.showCarouselEliteSpecimens = function () {
294
+ updateActiveBtn('showCarouselEliteSpecimens');
295
+ const container = document.getElementById('carouselDemoContainer');
296
+ if (!container) return;
297
+
298
+ container.innerHTML = `
299
+ <div class="demo-block reveal-slide-up" style="display:flex; flex-direction:column; gap:40px;">
300
+
301
+ <div>
302
+ <h3 class="specimen-title" style="margin-bottom:8px; font-weight:800; font-size:1.5rem; color:var(--text-primary);">✨ Elite Material Specimens</h3>
303
+ <p style="font-size:13px; color:var(--text-secondary); max-width:600px;">
304
+ A collection of premium material design substrates and high-end visual patterns optimized for enterprise layouts.
305
+ </p>
306
+ </div>
307
+
308
+ <div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(400px, 1fr)); gap:32px;">
309
+ <!-- Specimen 1: Premium Glassmorphic Parallax -->
310
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px;">
311
+ <h4 style="margin:0; font-size:14px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em; display:flex; align-items:center; gap:8px;">
312
+ <span style="color:#d946ef;">💎</span> Glassmorphic Overlay
313
+ </h4>
314
+ <ui-carousel autoplay="true" infinite="true" height="340px" indicators="true" arrows="true" parallax="true" animate-content="true" style="border-radius:16px; overflow:hidden; border:1px solid var(--border-default);">
315
+ ${[1, 2, 3].map(i => `
316
+ <div style="height:100%; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center;">
317
+ <div style="position:absolute; inset:0; background:linear-gradient(135deg, #1e1b4b 0%, #311042 100%); z-index:1;"></div>
318
+ <img src="${assetPath}nature_forest_1.png" style="position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; opacity:0.6;" onerror="this.style.display='none';" />
319
+
320
+ <div class="specimen-glass-card" style="position:relative; z-index:10; width:80%; max-width:340px; padding:32px; border-radius:20px; box-shadow:0 20px 50px rgba(0,0,0,0.3); text-align:center;">
321
+ <div style="background:var(--color-primary); color:white; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; padding:4px 12px; border-radius:20px; width:fit-content; margin:0 auto 16px;">Glass Variant</div>
322
+ <h3 style="font-size:1.5rem; font-weight:800; margin:0 0 10px; color:var(--text-glass-card);">Frosted Glass #${i}</h3>
323
+ <p style="font-size:13px; opacity:0.8; margin:0; line-height:1.5; color:var(--text-glass-card);">Backdrop-filter refraction substrate adapting perfectly to theme variables.</p>
324
+ </div>
325
+ </div>
326
+ `).join('')}
327
+ </ui-carousel>
328
+ </div>
329
+
330
+ <!-- Specimen 2: Cinematic Ken-Burns Panning -->
331
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px;">
332
+ <h4 style="margin:0; font-size:14px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em; display:flex; align-items:center; gap:8px;">
333
+ <span style="color:#06b6d4;">🎬</span> Ken-Burns Cinematic Panning
334
+ </h4>
335
+ <ui-carousel effect="ken-burns" autoplay="true" infinite="true" height="340px" indicators="true" arrows="false" style="border-radius:16px; overflow:hidden; border:1px solid var(--border-default);">
336
+ ${['nature_desert_3.png', 'nature_ocean_4.png', 'nature_lake_2.png'].map((img, idx) => `
337
+ <div style="height:100%; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; padding:40px; color:white;">
338
+ <div style="position:absolute; inset:0; background:linear-gradient(135deg, #124e8c 0%, #0c335e 100%); z-index:1;"></div>
339
+ <img src="${assetPath}${img}" style="position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2;" onerror="this.style.display='none';" />
340
+ <div style="position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.85), transparent 70%); z-index:3;"></div>
341
+
342
+ <div style="position:relative; z-index:10;">
343
+ <div style="font-size:11px; font-weight:800; background:#f59e0b; color:black; padding:3px 10px; border-radius:10px; width:fit-content; margin-bottom:8px;">CINEMATIC VIEW</div>
344
+ <h3 style="font-size:1.6rem; font-weight:800; margin:0 0 6px;">Exotic Landscape #${idx + 1}</h3>
345
+ <p style="font-size:13px; opacity:0.8; margin:0; max-width:320px;">Ken-Burns smooth scaling and panning transition layer is applied.</p>
346
+ </div>
347
+ </div>
348
+ `).join('')}
349
+ </ui-carousel>
350
+ </div>
351
+
352
+ </div>
353
+
354
+ </div>
355
+ `;
356
+ };
357
+
358
+ window.showCarouselTransitions = function () {
359
+ updateActiveBtn('showCarouselTransitions');
360
+ const container = document.getElementById('carouselDemoContainer');
361
+ if (!container) return;
362
+
363
+ container.innerHTML = `
364
+ <div class="demo-block reveal-slide-up" style="display:flex; flex-direction:column; gap:40px;">
365
+
366
+ <div>
367
+ <h3 class="specimen-title" style="margin-bottom:8px; font-weight:800; font-size:1.5rem; color:var(--text-primary);">🎬 High-Performance 3D Transitions</h3>
368
+ <p style="font-size:13px; color:var(--text-secondary); max-width:600px;">
369
+ Leveraging GPU-accelerated CSS 3D transform matrices to deliver incredibly smooth flips, wheel spins, and perspective folds.
370
+ </p>
371
+ </div>
372
+
373
+ <div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(360px, 1fr)); gap:32px;">
374
+
375
+ <!-- Effect 1: 3D Coverflow -->
376
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px; overflow:hidden;">
377
+ <h4 style="margin:0; font-size:13px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em; display:flex; justify-content:space-between;">
378
+ <span>⚡ 3D Coverflow</span>
379
+ <span style="color:var(--color-primary); font-size:11px;">effect="coverflow" center-mode="true"</span>
380
+ </h4>
381
+ <ui-carousel effect="coverflow" height="280px" autoplay="true" slides-to-show="3" center-mode="true" arrows="false" style="border-radius:16px;">
382
+ ${[1,2,3,4,5].map(i => `
383
+ <div style="height:100%; padding:0 8px;">
384
+ <div style="height:100%; border-radius:16px; display:flex; flex-direction:column; justify-content:center; align-items:center; background:linear-gradient(135deg, #a855f7 0%, #6b21a8 100%); color:white; font-size:2rem; font-weight:800; box-shadow:var(--shadow-md);">
385
+ <span>💎 Card ${i}</span>
386
+ </div>
387
+ </div>
388
+ `).join('')}
389
+ </ui-carousel>
390
+ </div>
391
+
392
+ <!-- Effect 2: 3D Cube -->
393
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px; overflow:hidden;">
394
+ <h4 style="margin:0; font-size:13px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em; display:flex; justify-content:space-between;">
395
+ <span>🧊 3D Cube Rotation</span>
396
+ <span style="color:var(--color-primary); font-size:11px;">effect="cube"</span>
397
+ </h4>
398
+ <ui-carousel effect="cube" height="280px" indicators="true" arrows="true" style="border-radius:16px; overflow:visible;">
399
+ ${[
400
+ { bg: 'linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%)', label: 'Front Face' },
401
+ { bg: 'linear-gradient(135deg, #10b981 0%, #047857 100%)', label: 'Right Face' },
402
+ { bg: 'linear-gradient(135deg, #f59e0b 0%, #b45309 100%)', label: 'Back Face' },
403
+ { bg: 'linear-gradient(135deg, #ef4444 0%, #b91c1c 100%)', label: 'Left Face' }
404
+ ].map(face => `
405
+ <div style="height:100%; background:${face.bg}; color:white; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:16px; box-shadow:var(--shadow-lg);">
406
+ <div style="font-size:3rem; margin-bottom:8px;">📦</div>
407
+ <h3 style="font-size:1.5rem; font-weight:800; margin:0;">${face.label}</h3>
408
+ </div>
409
+ `).join('')}
410
+ </ui-carousel>
411
+ </div>
412
+
413
+ <!-- Effect 3: 3D Flip -->
414
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px; overflow:hidden;">
415
+ <h4 style="margin:0; font-size:13px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em; display:flex; justify-content:space-between;">
416
+ <span>🎴 3D Perspective Flip</span>
417
+ <span style="color:var(--color-primary); font-size:11px;">effect="flip"</span>
418
+ </h4>
419
+ <ui-carousel effect="flip" height="280px" indicators="true" arrows="true" style="border-radius:16px; overflow:visible;">
420
+ ${[
421
+ { bg: 'linear-gradient(135deg, #ec4899 0%, #be185d 100%)', title: 'Interactive Slide A' },
422
+ { bg: 'linear-gradient(135deg, #8b5cf6 0%, #5b21b6 100%)', title: 'Interactive Slide B' },
423
+ { bg: 'linear-gradient(135deg, #06b6d4 0%, #0891b2 100%)', title: 'Interactive Slide C' }
424
+ ].map(slide => `
425
+ <div style="height:100%; background:${slide.bg}; color:white; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:16px; box-shadow:var(--shadow-lg);">
426
+ <div style="font-size:3rem; margin-bottom:8px;">🚀</div>
427
+ <h3 style="font-size:1.5rem; font-weight:800; margin:0;">${slide.title}</h3>
428
+ </div>
429
+ `).join('')}
430
+ </ui-carousel>
431
+ </div>
432
+
433
+ <!-- Effect 4: Vertical Wheel -->
434
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px; overflow:hidden;">
435
+ <h4 style="margin:0; font-size:13px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em; display:flex; justify-content:space-between;">
436
+ <span>☸️ 3D Vertical Wheel</span>
437
+ <span style="color:var(--color-primary); font-size:11px;">effect="wheel" vertical="true"</span>
438
+ </h4>
439
+ <ui-carousel effect="wheel" vertical="true" height="280px" autoplay="true" arrows="false" indicators="true" style="border-radius:16px;">
440
+ ${[1, 2, 3, 4].map(i => `
441
+ <div style="height:100%; border-radius:16px; display:flex; flex-direction:column; justify-content:center; align-items:center; background:linear-gradient(135deg, #14b8a6 0%, #0f766e 100%); color:white; font-size:1.8rem; font-weight:800; box-shadow:var(--shadow-md);">
442
+ <span>🎡 Rotor Card ${i}</span>
443
+ </div>
444
+ `).join('')}
445
+ </ui-carousel>
446
+ </div>
447
+
448
+ </div>
449
+
450
+ </div>
451
+ `;
452
+ };
453
+
454
+ window.showCarouselContinuousTicker = function () {
455
+ updateActiveBtn('showCarouselContinuousTicker');
456
+ const container = document.getElementById('carouselDemoContainer');
457
+ if (!container) return;
458
+
459
+ container.innerHTML = `
460
+ <div class="demo-block reveal-slide-up" style="display:flex; flex-direction:column; gap:40px;">
461
+
462
+ <div>
463
+ <h3 class="specimen-title" style="margin-bottom:8px; font-weight:800; font-size:1.5rem; color:var(--text-primary);">📈 Industrial Ticker & Banners</h3>
464
+ <p style="font-size:13px; color:var(--text-secondary); max-width:600px;">
465
+ Continuous, pixel-perfect scrolling ticker lanes that animate continuously at customizable speeds. Ideal for telemetry monitors, announcement streams, or brand partnerships.
466
+ </p>
467
+ </div>
468
+
469
+ <div style="display:flex; flex-direction:column; gap:32px;">
470
+
471
+ <!-- Continuous Telemetry Ticker -->
472
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px;">
473
+ <div style="display:flex; justify-content:space-between; align-items:center;">
474
+ <h4 style="margin:0; font-size:13px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em; display:flex; align-items:center; gap:8px;">
475
+ <span style="color:#10b981; display:inline-block; width:8px; height:8px; border-radius:50%; background:#10b981; animation:pulse 1.5s infinite;"></span>
476
+ Live Telemetry Node Ticker
477
+ </h4>
478
+ <span style="background:var(--color-primary-subtle, rgba(99,102,241,0.15)); color:var(--color-primary); font-size:10px; font-weight:800; padding:4px 10px; border-radius:10px;">ticker-speed="1.2"</span>
479
+ </div>
480
+ <ui-carousel ticker="true" ticker-speed="1.2" height="110px" arrows="false" indicators="false" slides-to-show="4" infinite="true" style="border-radius:12px;">
481
+ ${Array.from({ length: 8 }, (_, i) => `
482
+ <div style="padding:8px; height:100%;">
483
+ <div style="background:var(--bg-primary); border:1px solid var(--border-default); border-radius:12px; padding:16px; display:flex; align-items:center; gap:12px; height:100%; box-shadow:var(--shadow-sm);">
484
+ <div style="width:10px; height:10px; border-radius:50%; background:#10b981;"></div>
485
+ <div>
486
+ <div style="font-size:13px; font-weight:800; color:var(--text-primary);">NODE_${i + 1}</div>
487
+ <div style="font-size:11px; color:var(--text-secondary);">PING: ${10 + Math.floor(Math.random() * 20)}ms</div>
488
+ </div>
489
+ </div>
490
+ </div>
491
+ `).join('')}
492
+ </ui-carousel>
493
+ </div>
494
+
495
+ <!-- Industrial Announcement Banner -->
496
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px;">
497
+ <div style="display:flex; justify-content:space-between; align-items:center;">
498
+ <h4 style="margin:0; font-size:13px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em;">
499
+ 📣 Industrial Warning Banner
500
+ </h4>
501
+ <span style="background:rgba(239,68,68,0.15); color:#ef4444; font-size:10px; font-weight:800; padding:4px 10px; border-radius:10px;">ticker-speed="2.5"</span>
502
+ </div>
503
+ <ui-carousel ticker="true" ticker-speed="2.5" height="80px" arrows="false" indicators="false" infinite="true" style="border-radius:12px;">
504
+ <div style="padding:10px; height:100%;">
505
+ <div style="height:100%; background:linear-gradient(to right, #7f1d1d, #ef4444); color:white; display:flex; align-items:center; justify-content:center; border-radius:8px; font-weight:800; font-size:1.15rem; letter-spacing:0.05em; padding:0 30px;">
506
+ ⚠️ DANGER: UNCOMPRESSIBLE FEED PIPELINE OVERLOAD OVER 98% CAPACITY - SHIELD ACTIVE
507
+ </div>
508
+ </div>
509
+ <div style="padding:10px; height:100%;">
510
+ <div style="height:100%; background:linear-gradient(to right, #ef4444, #b91c1c); color:white; display:flex; align-items:center; justify-content:center; border-radius:8px; font-weight:800; font-size:1.15rem; letter-spacing:0.05em; padding:0 30px;">
511
+ ⚡ SYSTEM WARNING: INTEGRATED KINEMATIC MOTORS RUNNING TEMPERATURE EXCEEDS SAFE MARGINS
512
+ </div>
513
+ </div>
514
+ </ui-carousel>
515
+ </div>
516
+
517
+ </div>
518
+
519
+ </div>
520
+ `;
521
+ };
522
+
523
+ window.showCarouselMobileStories = function () {
524
+ updateActiveBtn('showCarouselMobileStories');
525
+ const container = document.getElementById('carouselDemoContainer');
526
+ if (!container) return;
527
+
528
+ container.innerHTML = `
529
+ <div class="demo-block reveal-slide-up" style="display:flex; flex-direction:column; align-items:center; gap:32px;">
530
+
531
+ <div style="text-align:center;">
532
+ <h3 class="specimen-title" style="margin-bottom:8px; font-weight:800; font-size:1.5rem; color:var(--text-primary);">📱 Mobile Story Segment Progress</h3>
533
+ <p style="font-size:13px; color:var(--text-secondary); max-width:600px; margin:0 auto;">
534
+ Configuring stories-style progress segment bars with autoplay tick intervals. Perfect for quick news digests, onboarding tutorials, or reels.
535
+ </p>
536
+ </div>
537
+
538
+ <!-- Phone Shell Mockup -->
539
+ <div style="background:var(--bg-secondary); padding:40px; border-radius:40px; border:1px solid var(--border-default); box-shadow:var(--shadow-lg); display:flex; justify-content:center; width:100%; max-width:440px;">
540
+ <div class="phone-wrap">
541
+
542
+ <ui-carousel indicators="true" indicators-type="segments" autoplay="true" height="100%" effect="fade" infinite="true" autoplay-interval="4000" arrows="false" show-progress="true">
543
+ ${[
544
+ { bg: 'linear-gradient(to top, #0f172a, #1e293b)', text: 'Unlock Unlimited Potential', step: '01' },
545
+ { bg: 'linear-gradient(to top, #1e1b4b, #311042)', text: 'Ultra Lightweight Layouts', step: '02' },
546
+ { bg: 'linear-gradient(to top, #022c22, #064e3b)', text: 'Pixel Perfect Mechanics', step: '03' },
547
+ { bg: 'linear-gradient(to top, #3c0764, #12005e)', text: 'Elite Developer Experience', step: '04' }
548
+ ].map(slide => `
549
+ <div style="height:100%; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; padding:40px; color:white; background:${slide.bg};">
550
+ <div style="position:absolute; top:-20%; left:-20%; width:100%; height:60%; background:radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 60%); pointer-events:none;"></div>
551
+
552
+ <div style="position:relative; z-index:10;">
553
+ <div style="font-size:3rem; font-weight:900; color:rgba(255,255,255,0.15); margin-bottom:12px; letter-spacing:-2px;">STEP ${slide.step}</div>
554
+ <h3 style="font-weight:800; font-size:1.6rem; letter-spacing:-0.5px; margin:0 0 12px; line-height:1.2; color:white;">${slide.text}</h3>
555
+ <p style="opacity:0.75; font-size:13px; margin:0 0 24px; line-height:1.5;">Witness the cinematic crossfade and stories segmented progress engine.</p>
556
+
557
+ <ui-button label="NEXT TUTORIAL →" size="md" color="primary" variant="solid" style="width:100%;" onclick="this.closest('ui-carousel').next()"></ui-button>
558
+ </div>
559
+ </div>
560
+ `).join('')}
561
+ </ui-carousel>
562
+
563
+ </div>
564
+ </div>
565
+
566
+ </div>
567
+ `;
568
+ };
569
+
570
+ window.showCarouselControlsAndA11y = function () {
571
+ updateActiveBtn('showCarouselControlsAndA11y');
572
+ const container = document.getElementById('carouselDemoContainer');
573
+ if (!container) return;
574
+
575
+ container.innerHTML = `
576
+ <div class="demo-block reveal-slide-up" style="display:flex; flex-direction:column; gap:40px;">
577
+
578
+ <div>
579
+ <h3 class="specimen-title" style="margin-bottom:8px; font-weight:800; font-size:1.5rem; color:var(--text-primary);">⚡ Advanced Controls & Accessibility</h3>
580
+ <p style="font-size:13px; color:var(--text-secondary); max-width:600px;">
581
+ Enterprise features including peeking center-mode, precise slide counters, mouse dragging, wheel scrolling, and synced carousels.
582
+ </p>
583
+ </div>
584
+
585
+ <div style="display:grid; grid-template-columns:repeat(auto-fit, minmax(400px, 1fr)); gap:32px;">
586
+
587
+ <!-- Card 1: Center Mode Peeking + Drag -->
588
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px;">
589
+ <h4 style="margin:0; font-size:14px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em;">
590
+ 🖱️ Center Mode Peeking & Dragging
591
+ </h4>
592
+ <p style="font-size:12px; color:var(--text-secondary); margin:0;">
593
+ <code>center-mode</code> allows adjacent slides to partially peek in. Combined with <code>enable-drag</code>, users can swipe cards smoothly.
594
+ </p>
595
+ <ui-carousel center-mode="true" center-padding="60px" height="240px" indicators="true" arrows="true" style="border-radius:16px;">
596
+ ${[1, 2, 3, 4].map(i => `
597
+ <div style="height:100%; padding:0 8px;">
598
+ <div style="height:100%; border-radius:12px; display:flex; flex-direction:column; justify-content:center; align-items:center; background:linear-gradient(135deg, #fb7185 0%, #e11d48 100%); color:white; font-size:1.6rem; font-weight:800; box-shadow:var(--shadow-sm);">
599
+ <span>📇 Slide ${i}</span>
600
+ </div>
601
+ </div>
602
+ `).join('')}
603
+ </ui-carousel>
604
+ </div>
605
+
606
+ <!-- Card 2: Interactive Counter & Progress Indicators -->
607
+ <div style="padding:24px; background:var(--bg-secondary); border:1px solid var(--border-default); border-radius:24px; display:flex; flex-direction:column; gap:16px;">
608
+ <h4 style="margin:0; font-size:14px; font-weight:800; color:var(--text-primary); text-transform:uppercase; letter-spacing:0.05em;">
609
+ 📊 Slide Counter & Autoplay Progress
610
+ </h4>
611
+ <p style="font-size:12px; color:var(--text-secondary); margin:0;">
612
+ Enable <code>show-counter</code> to render progress counts (e.g. 1 / 4) and <code>show-progress</code> for top-aligned timer bars.
613
+ </p>
614
+ <ui-carousel show-counter="true" show-progress="true" autoplay="true" autoplay-interval="4000" height="240px" indicators="true" arrows="true" style="border-radius:16px;">
615
+ ${['#0284c7', '#059669', '#d97706', '#dc2626'].map((bg, idx) => `
616
+ <div style="height:100%; background:${bg}; color:white; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:16px;">
617
+ <h3 style="font-size:1.5rem; font-weight:800; margin:0;">Visual Page #${idx + 1}</h3>
618
+ <p style="font-size:12px; opacity:0.8; margin-top:4px;">Watch the top-aligned linear loader fill up.</p>
619
+ </div>
620
+ `).join('')}
621
+ </ui-carousel>
622
+ </div>
623
+
624
+ </div>
625
+
626
+ </div>
627
+ `;
628
+ };
629
+
630
+ // Render playground by default
631
+ setTimeout(() => window.showCarouselPlayground(), 50);
632
+ }