atomicuilibrary 0.0.1

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 (1108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/cjs/category-section.cjs.entry.js +30 -0
  4. package/dist/cjs/component-size-DsYFUZcz.js +29 -0
  5. package/dist/cjs/dom-oP1E4Rd3.js +267 -0
  6. package/dist/cjs/event-bus-B6M2f8CQ.js +23 -0
  7. package/dist/cjs/exploration-project-tailwind.cjs.js +24 -0
  8. package/dist/cjs/focus-trap-i9T6oXLc.js +139 -0
  9. package/dist/cjs/index-ClkOYpT8.js +2275 -0
  10. package/dist/cjs/index.cjs.js +260 -0
  11. package/dist/cjs/layout-manager.cjs.entry.js +616 -0
  12. package/dist/cjs/library-card.cjs.entry.js +63 -0
  13. package/dist/cjs/lm-container_2.cjs.entry.js +79 -0
  14. package/dist/cjs/lm-panel_3.cjs.entry.js +108 -0
  15. package/dist/cjs/loader.cjs.js +12 -0
  16. package/dist/cjs/my-component.cjs.entry.js +33 -0
  17. package/dist/cjs/my-step.cjs.entry.js +29 -0
  18. package/dist/cjs/nav-bar.cjs.entry.js +247 -0
  19. package/dist/cjs/security-E1JcwxGc.js +1547 -0
  20. package/dist/cjs/smart-step.cjs.entry.js +47 -0
  21. package/dist/cjs/timeline-item.cjs.entry.js +29 -0
  22. package/dist/cjs/ui-accordion_10.cjs.entry.js +5733 -0
  23. package/dist/cjs/ui-advanced-data-table.cjs.entry.js +2684 -0
  24. package/dist/cjs/ui-anchor.cjs.entry.js +558 -0
  25. package/dist/cjs/ui-animate-on-scroll.cjs.entry.js +285 -0
  26. package/dist/cjs/ui-aside-panel.cjs.entry.js +638 -0
  27. package/dist/cjs/ui-avatar-group_3.cjs.entry.js +634 -0
  28. package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +56 -0
  29. package/dist/cjs/ui-breadcrumb.cjs.entry.js +201 -0
  30. package/dist/cjs/ui-callout-banner.cjs.entry.js +291 -0
  31. package/dist/cjs/ui-card.cjs.entry.js +411 -0
  32. package/dist/cjs/ui-carousel.cjs.entry.js +547 -0
  33. package/dist/cjs/ui-checkbox-group.cjs.entry.js +330 -0
  34. package/dist/cjs/ui-checkbox.cjs.entry.js +260 -0
  35. package/dist/cjs/ui-code-editor.cjs.entry.js +961 -0
  36. package/dist/cjs/ui-code-preview.cjs.entry.js +315 -0
  37. package/dist/cjs/ui-color-controller.cjs.entry.js +150 -0
  38. package/dist/cjs/ui-color-picker.cjs.entry.js +658 -0
  39. package/dist/cjs/ui-command-palette.cjs.entry.js +178 -0
  40. package/dist/cjs/ui-dialog-box.cjs.entry.js +1808 -0
  41. package/dist/cjs/ui-dialog-content.cjs.entry.js +31 -0
  42. package/dist/cjs/ui-dialog-footer_2.cjs.entry.js +193 -0
  43. package/dist/cjs/ui-divider.cjs.entry.js +481 -0
  44. package/dist/cjs/ui-dock-host.cjs.entry.js +128 -0
  45. package/dist/cjs/ui-dock.cjs.entry.js +221 -0
  46. package/dist/cjs/ui-drag-drop.cjs.entry.js +172 -0
  47. package/dist/cjs/ui-dropdown_2.cjs.entry.js +1552 -0
  48. package/dist/cjs/ui-empty-state.cjs.entry.js +398 -0
  49. package/dist/cjs/ui-fab-item.cjs.entry.js +39 -0
  50. package/dist/cjs/ui-fab.cjs.entry.js +277 -0
  51. package/dist/cjs/ui-file-upload.cjs.entry.js +418 -0
  52. package/dist/cjs/ui-horizontal-nav.cjs.entry.js +135 -0
  53. package/dist/cjs/ui-image-button.cjs.entry.js +67 -0
  54. package/dist/cjs/ui-input-pair.cjs.entry.js +44 -0
  55. package/dist/cjs/ui-knob.cjs.entry.js +447 -0
  56. package/dist/cjs/ui-library.cjs.entry.js +134 -0
  57. package/dist/cjs/ui-list-group_2.cjs.entry.js +586 -0
  58. package/dist/cjs/ui-list.cjs.entry.js +732 -0
  59. package/dist/cjs/ui-masonry.cjs.entry.js +478 -0
  60. package/dist/cjs/ui-meter-group.cjs.entry.js +173 -0
  61. package/dist/cjs/ui-navigation-item.cjs.entry.js +104 -0
  62. package/dist/cjs/ui-number-input.cjs.entry.js +191 -0
  63. package/dist/cjs/ui-otp-input.cjs.entry.js +246 -0
  64. package/dist/cjs/ui-pagination_3.cjs.entry.js +1621 -0
  65. package/dist/cjs/ui-panel.cjs.entry.js +614 -0
  66. package/dist/cjs/ui-pattern-input.cjs.entry.js +278 -0
  67. package/dist/cjs/ui-popover.cjs.entry.js +517 -0
  68. package/dist/cjs/ui-progress.cjs.entry.js +516 -0
  69. package/dist/cjs/ui-radio-group.cjs.entry.js +205 -0
  70. package/dist/cjs/ui-radio.cjs.entry.js +206 -0
  71. package/dist/cjs/ui-range-slider.cjs.entry.js +637 -0
  72. package/dist/cjs/ui-resizable-panel.cjs.entry.js +484 -0
  73. package/dist/cjs/ui-scroll-top.cjs.entry.js +459 -0
  74. package/dist/cjs/ui-smart-context-menu.cjs.entry.js +376 -0
  75. package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +565 -0
  76. package/dist/cjs/ui-smart-stepper.cjs.entry.js +137 -0
  77. package/dist/cjs/ui-snackbar.cjs.entry.js +863 -0
  78. package/dist/cjs/ui-speed-dial.cjs.entry.js +520 -0
  79. package/dist/cjs/ui-speedometer.cjs.entry.js +428 -0
  80. package/dist/cjs/ui-splitter.cjs.entry.js +282 -0
  81. package/dist/cjs/ui-step.cjs.entry.js +30 -0
  82. package/dist/cjs/ui-stepper.cjs.entry.js +640 -0
  83. package/dist/cjs/ui-switch.cjs.entry.js +405 -0
  84. package/dist/cjs/ui-tabs.cjs.entry.js +703 -0
  85. package/dist/cjs/ui-tag.cjs.entry.js +299 -0
  86. package/dist/cjs/ui-timeline.cjs.entry.js +267 -0
  87. package/dist/cjs/ui-timer.cjs.entry.js +502 -0
  88. package/dist/cjs/ui-toolbar.cjs.entry.js +619 -0
  89. package/dist/cjs/ui-tooltip.cjs.entry.js +697 -0
  90. package/dist/cjs/ui-top-bar.cjs.entry.js +121 -0
  91. package/dist/cjs/ui-transfer-list.cjs.entry.js +592 -0
  92. package/dist/cjs/ui-tree.cjs.entry.js +874 -0
  93. package/dist/cjs/ui-workspace-manager.cjs.entry.js +1201 -0
  94. package/dist/cjs/utils-DVZ6gul6.js +26 -0
  95. package/dist/collection/assets/js/component-config.js +41 -0
  96. package/dist/collection/assets/js/demo-loader.js +147 -0
  97. package/dist/collection/assets/js/demo-nav.js +273 -0
  98. package/dist/collection/assets/js/demos/about-demo.js +60 -0
  99. package/dist/collection/assets/js/demos/accordion-demo.js +1954 -0
  100. package/dist/collection/assets/js/demos/advanced-data-table-demo.js +2952 -0
  101. package/dist/collection/assets/js/demos/anchor-demo.js +527 -0
  102. package/dist/collection/assets/js/demos/animate-on-scroll-demo.js +174 -0
  103. package/dist/collection/assets/js/demos/aside-panel-demo.js +1109 -0
  104. package/dist/collection/assets/js/demos/avatar-demo.js +508 -0
  105. package/dist/collection/assets/js/demos/badge-demo.js +620 -0
  106. package/dist/collection/assets/js/demos/breadcrumb-demo.js +365 -0
  107. package/dist/collection/assets/js/demos/button-demo.js +1223 -0
  108. package/dist/collection/assets/js/demos/button-toggle-demo.js +978 -0
  109. package/dist/collection/assets/js/demos/callout-banner-demo.js +366 -0
  110. package/dist/collection/assets/js/demos/card-demo.js +427 -0
  111. package/dist/collection/assets/js/demos/carousel-demo.js +360 -0
  112. package/dist/collection/assets/js/demos/checkbox-demo.js +489 -0
  113. package/dist/collection/assets/js/demos/code-preview-demo.js +216 -0
  114. package/dist/collection/assets/js/demos/color-picker-demo.js +117 -0
  115. package/dist/collection/assets/js/demos/command-palette-demo.js +105 -0
  116. package/dist/collection/assets/js/demos/complex-form-demo.js +45 -0
  117. package/dist/collection/assets/js/demos/context-menu-data.js +436 -0
  118. package/dist/collection/assets/js/demos/context-menu-demo.js +829 -0
  119. package/dist/collection/assets/js/demos/dashboard-demo.js +5 -0
  120. package/dist/collection/assets/js/demos/dialog-demo-temp.js +411 -0
  121. package/dist/collection/assets/js/demos/dialog-demo.js +2567 -0
  122. package/dist/collection/assets/js/demos/divider-demo.js +853 -0
  123. package/dist/collection/assets/js/demos/dock-demo.js +422 -0
  124. package/dist/collection/assets/js/demos/dock-host-init.js +117 -0
  125. package/dist/collection/assets/js/demos/dock-host-playground.js +59 -0
  126. package/dist/collection/assets/js/demos/documentation-demo.js +34 -0
  127. package/dist/collection/assets/js/demos/drag-drop-demo.js +132 -0
  128. package/dist/collection/assets/js/demos/dropdown-demo.js +1410 -0
  129. package/dist/collection/assets/js/demos/dropdown-subtitle-demo.js +18 -0
  130. package/dist/collection/assets/js/demos/empty-state-demo.js +580 -0
  131. package/dist/collection/assets/js/demos/fab-demo.js +374 -0
  132. package/dist/collection/assets/js/demos/file-upload-demo.js +171 -0
  133. package/dist/collection/assets/js/demos/home-components.js +750 -0
  134. package/dist/collection/assets/js/demos/home-demo.js +441 -0
  135. package/dist/collection/assets/js/demos/horizontal-nav-demo.js +277 -0
  136. package/dist/collection/assets/js/demos/icon-demo.js +380 -0
  137. package/dist/collection/assets/js/demos/input-demo.js +1932 -0
  138. package/dist/collection/assets/js/demos/knob-demo.js +570 -0
  139. package/dist/collection/assets/js/demos/layout-manager-demo.js +918 -0
  140. package/dist/collection/assets/js/demos/list-demo.js +1402 -0
  141. package/dist/collection/assets/js/demos/loader-demo.js +453 -0
  142. package/dist/collection/assets/js/demos/meter-group-demo.js +499 -0
  143. package/dist/collection/assets/js/demos/multi-level-context-menu-demo.js +924 -0
  144. package/dist/collection/assets/js/demos/my-profile-demo.js +237 -0
  145. package/dist/collection/assets/js/demos/nav-bar-demo.js +187 -0
  146. package/dist/collection/assets/js/demos/number-input-demo.js +242 -0
  147. package/dist/collection/assets/js/demos/overview-demo.js +11 -0
  148. package/dist/collection/assets/js/demos/pagination-demo.js +1042 -0
  149. package/dist/collection/assets/js/demos/panel-demo.js +789 -0
  150. package/dist/collection/assets/js/demos/pattern-input-demo.js +241 -0
  151. package/dist/collection/assets/js/demos/popover-demo.js +882 -0
  152. package/dist/collection/assets/js/demos/progress-demo.js +462 -0
  153. package/dist/collection/assets/js/demos/radio-demo.js +413 -0
  154. package/dist/collection/assets/js/demos/range-slider-demo.js +1217 -0
  155. package/dist/collection/assets/js/demos/rating-demo.js +383 -0
  156. package/dist/collection/assets/js/demos/scroll-top-demo.js +353 -0
  157. package/dist/collection/assets/js/demos/skeleton-demo.js +490 -0
  158. package/dist/collection/assets/js/demos/skeleton-performance-demo.js +26 -0
  159. package/dist/collection/assets/js/demos/smart-dialog-demo.js +552 -0
  160. package/dist/collection/assets/js/demos/smart-menu-demo.js +375 -0
  161. package/dist/collection/assets/js/demos/smart-stepper-demo.js +50 -0
  162. package/dist/collection/assets/js/demos/snackbar-demo.js +1040 -0
  163. package/dist/collection/assets/js/demos/speed-dial-demo.js +764 -0
  164. package/dist/collection/assets/js/demos/speedometer-demo.js +425 -0
  165. package/dist/collection/assets/js/demos/split-button-demo.js +201 -0
  166. package/dist/collection/assets/js/demos/stack-demo.js +228 -0
  167. package/dist/collection/assets/js/demos/stepper-demo.js +798 -0
  168. package/dist/collection/assets/js/demos/switch-demo.js +849 -0
  169. package/dist/collection/assets/js/demos/tabs-demo.js +1032 -0
  170. package/dist/collection/assets/js/demos/tag-demo.js +842 -0
  171. package/dist/collection/assets/js/demos/theme-selector-demo.js +466 -0
  172. package/dist/collection/assets/js/demos/timeline-demo.js +365 -0
  173. package/dist/collection/assets/js/demos/timeline-playground.js +59 -0
  174. package/dist/collection/assets/js/demos/timer-demo.js +313 -0
  175. package/dist/collection/assets/js/demos/toolbar-demo.js +643 -0
  176. package/dist/collection/assets/js/demos/tooltip-demo.js +730 -0
  177. package/dist/collection/assets/js/demos/top-bar-demo.js +417 -0
  178. package/dist/collection/assets/js/demos/transfer-list-demo.js +555 -0
  179. package/dist/collection/assets/js/demos/tree-demo.js +693 -0
  180. package/dist/collection/assets/js/demos/workspace-manager-demo.js +241 -0
  181. package/dist/collection/assets/js/index-boot.js +104 -0
  182. package/dist/collection/assets/js/nav-bar-demo.js +20 -0
  183. package/dist/collection/assets/js/nav-bar-init.js +119 -0
  184. package/dist/collection/assets/js/utils/layout-loader.js +80 -0
  185. package/dist/collection/collection-manifest.json +113 -0
  186. package/dist/collection/components/accordion/accordion.css +2090 -0
  187. package/dist/collection/components/accordion/accordion.js +2955 -0
  188. package/dist/collection/components/accordion/types.js +1 -0
  189. package/dist/collection/components/advanced-data-table/advanced-data-table.css +2606 -0
  190. package/dist/collection/components/advanced-data-table/advanced-data-table.js +5394 -0
  191. package/dist/collection/components/advanced-data-table/types.js +1 -0
  192. package/dist/collection/components/anchor/anchor.css +395 -0
  193. package/dist/collection/components/anchor/anchor.js +1404 -0
  194. package/dist/collection/components/anchor/types.js +1 -0
  195. package/dist/collection/components/animate-on-scroll/animate-on-scroll.css +804 -0
  196. package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +696 -0
  197. package/dist/collection/components/aside-panel/aside-panel.css +472 -0
  198. package/dist/collection/components/aside-panel/aside-panel.js +1697 -0
  199. package/dist/collection/components/avatar/avatar.css +696 -0
  200. package/dist/collection/components/avatar/avatar.js +2007 -0
  201. package/dist/collection/components/avatar/types.js +1 -0
  202. package/dist/collection/components/avatar-group/avatar-group.css +253 -0
  203. package/dist/collection/components/avatar-group/avatar-group.js +405 -0
  204. package/dist/collection/components/avatar-group/types.js +1 -0
  205. package/dist/collection/components/badge/badge.css +580 -0
  206. package/dist/collection/components/badge/badge.js +723 -0
  207. package/dist/collection/components/badge/types.js +1 -0
  208. package/dist/collection/components/breadcrumb/breadcrumb-item.js +231 -0
  209. package/dist/collection/components/breadcrumb/breadcrumb.css +313 -0
  210. package/dist/collection/components/breadcrumb/breadcrumb.js +510 -0
  211. package/dist/collection/components/breadcrumb/types.js +1 -0
  212. package/dist/collection/components/button/button.css +1862 -0
  213. package/dist/collection/components/button/button.js +1380 -0
  214. package/dist/collection/components/button/types.js +1 -0
  215. package/dist/collection/components/button-toggle/button-toggle.css +97 -0
  216. package/dist/collection/components/button-toggle/button-toggle.js +620 -0
  217. package/dist/collection/components/button-toggle-group/button-toggle-group.css +401 -0
  218. package/dist/collection/components/button-toggle-group/button-toggle-group.js +1572 -0
  219. package/dist/collection/components/button-toggle-group/types.js +1 -0
  220. package/dist/collection/components/callout-banner/callout-banner.css +684 -0
  221. package/dist/collection/components/callout-banner/callout-banner.js +1076 -0
  222. package/dist/collection/components/callout-banner/types.js +1 -0
  223. package/dist/collection/components/card/card.css +663 -0
  224. package/dist/collection/components/card/card.js +1697 -0
  225. package/dist/collection/components/card/types.js +1 -0
  226. package/dist/collection/components/carousel/carousel.css +549 -0
  227. package/dist/collection/components/carousel/carousel.js +1512 -0
  228. package/dist/collection/components/carousel/types.js +1 -0
  229. package/dist/collection/components/checkbox/checkbox.css +863 -0
  230. package/dist/collection/components/checkbox/checkbox.js +1201 -0
  231. package/dist/collection/components/checkbox/types.js +1 -0
  232. package/dist/collection/components/checkbox-group/checkbox-group.css +223 -0
  233. package/dist/collection/components/checkbox-group/checkbox-group.js +1001 -0
  234. package/dist/collection/components/checkbox-group/types.js +1 -0
  235. package/dist/collection/components/code-editor/code-editor.css +1081 -0
  236. package/dist/collection/components/code-editor/code-editor.js +1211 -0
  237. package/dist/collection/components/code-editor/types.js +1 -0
  238. package/dist/collection/components/code-preview/types.js +1 -0
  239. package/dist/collection/components/code-preview/ui-code-preview.css +209 -0
  240. package/dist/collection/components/code-preview/ui-code-preview.js +548 -0
  241. package/dist/collection/components/color-controller/color-controller.css +108 -0
  242. package/dist/collection/components/color-controller/color-controller.js +224 -0
  243. package/dist/collection/components/color-picker/color-picker.css +323 -0
  244. package/dist/collection/components/color-picker/color-picker.js +1139 -0
  245. package/dist/collection/components/color-picker/types.js +1 -0
  246. package/dist/collection/components/command-palette/command-palette.css +260 -0
  247. package/dist/collection/components/command-palette/command-palette.js +429 -0
  248. package/dist/collection/components/command-palette/types.js +1 -0
  249. package/dist/collection/components/context-menu/context-menu.css +388 -0
  250. package/dist/collection/components/context-menu/context-menu.js +1412 -0
  251. package/dist/collection/components/context-menu/types.js +1 -0
  252. package/dist/collection/components/dialog-box/dialog-box.css +1261 -0
  253. package/dist/collection/components/dialog-box/dialog-box.js +4314 -0
  254. package/dist/collection/components/dialog-box/dialog-tray.css +268 -0
  255. package/dist/collection/components/dialog-box/types.js +1 -0
  256. package/dist/collection/components/dialog-content/dialog-content.css +83 -0
  257. package/dist/collection/components/dialog-content/dialog-content.js +96 -0
  258. package/dist/collection/components/dialog-footer/dialog-footer.css +89 -0
  259. package/dist/collection/components/dialog-footer/dialog-footer.js +94 -0
  260. package/dist/collection/components/dialog-footer/types.js +1 -0
  261. package/dist/collection/components/dialog-header/dialog-header.css +203 -0
  262. package/dist/collection/components/dialog-header/dialog-header.js +630 -0
  263. package/dist/collection/components/dialog-header/types.js +1 -0
  264. package/dist/collection/components/divider/divider.css +948 -0
  265. package/dist/collection/components/divider/divider.js +1612 -0
  266. package/dist/collection/components/divider/types.js +1 -0
  267. package/dist/collection/components/dock/dock.css +348 -0
  268. package/dist/collection/components/dock/dock.js +464 -0
  269. package/dist/collection/components/dock/types.js +1 -0
  270. package/dist/collection/components/dock-host/index.js +1 -0
  271. package/dist/collection/components/dock-host/types.js +1 -0
  272. package/dist/collection/components/dock-host/ui-dock-host.css +155 -0
  273. package/dist/collection/components/dock-host/ui-dock-host.js +226 -0
  274. package/dist/collection/components/drag-drop/drag-drop.css +103 -0
  275. package/dist/collection/components/drag-drop/drag-drop.js +385 -0
  276. package/dist/collection/components/drag-drop/types.js +1 -0
  277. package/dist/collection/components/dropdown/dropdown.css +1142 -0
  278. package/dist/collection/components/dropdown/dropdown.js +2033 -0
  279. package/dist/collection/components/dropdown/types.js +1 -0
  280. package/dist/collection/components/empty-state/empty-state.css +712 -0
  281. package/dist/collection/components/empty-state/empty-state.js +1256 -0
  282. package/dist/collection/components/empty-state/types.js +1 -0
  283. package/dist/collection/components/fab/fab.css +601 -0
  284. package/dist/collection/components/fab/fab.js +1124 -0
  285. package/dist/collection/components/fab-item/fab-item.css +107 -0
  286. package/dist/collection/components/fab-item/fab-item.js +177 -0
  287. package/dist/collection/components/fab-item/types.js +1 -0
  288. package/dist/collection/components/file-upload/file-upload.css +243 -0
  289. package/dist/collection/components/file-upload/file-upload.js +1022 -0
  290. package/dist/collection/components/file-upload/types.js +1 -0
  291. package/dist/collection/components/horizontal-nav/horizontal-nav.css +394 -0
  292. package/dist/collection/components/horizontal-nav/horizontal-nav.js +375 -0
  293. package/dist/collection/components/icon/icon.css +113 -0
  294. package/dist/collection/components/icon/icon.js +583 -0
  295. package/dist/collection/components/image-button/image-button.css +154 -0
  296. package/dist/collection/components/image-button/image-button.js +310 -0
  297. package/dist/collection/components/image-button/types.js +1 -0
  298. package/dist/collection/components/input/input.css +1544 -0
  299. package/dist/collection/components/input/input.js +3690 -0
  300. package/dist/collection/components/input/types.js +1 -0
  301. package/dist/collection/components/input-pair/input-pair.css +72 -0
  302. package/dist/collection/components/input-pair/input-pair.js +309 -0
  303. package/dist/collection/components/knob/knob.css +162 -0
  304. package/dist/collection/components/knob/knob.js +986 -0
  305. package/dist/collection/components/knob/types.js +1 -0
  306. package/dist/collection/components/layout-manager/layout-manager.css +41 -0
  307. package/dist/collection/components/layout-manager/layout-manager.js +525 -0
  308. package/dist/collection/components/layout-manager/lm-container/lm-container.css +117 -0
  309. package/dist/collection/components/layout-manager/lm-container/lm-container.js +110 -0
  310. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.css +0 -0
  311. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +49 -0
  312. package/dist/collection/components/layout-manager/lm-panel/lm-panel.css +97 -0
  313. package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +58 -0
  314. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.css +57 -0
  315. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +120 -0
  316. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.css +149 -0
  317. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +130 -0
  318. package/dist/collection/components/layout-manager/types.js +1 -0
  319. package/dist/collection/components/library/category-section.css +147 -0
  320. package/dist/collection/components/library/category-section.js +139 -0
  321. package/dist/collection/components/library/data.js +74 -0
  322. package/dist/collection/components/library/library-card.css +181 -0
  323. package/dist/collection/components/library/library-card.js +203 -0
  324. package/dist/collection/components/library/library.css +358 -0
  325. package/dist/collection/components/library/library.js +91 -0
  326. package/dist/collection/components/list/list.css +1029 -0
  327. package/dist/collection/components/list/list.js +2167 -0
  328. package/dist/collection/components/list-group/list-group.css +275 -0
  329. package/dist/collection/components/list-group/list-group.js +356 -0
  330. package/dist/collection/components/list-item/list-item.css +1491 -0
  331. package/dist/collection/components/list-item/list-item.js +2184 -0
  332. package/dist/collection/components/masonry/masonry.css +414 -0
  333. package/dist/collection/components/masonry/masonry.js +1104 -0
  334. package/dist/collection/components/masonry/types.js +1 -0
  335. package/dist/collection/components/meter-group/meter-group.css +184 -0
  336. package/dist/collection/components/meter-group/meter-group.js +471 -0
  337. package/dist/collection/components/meter-group/types.js +1 -0
  338. package/dist/collection/components/my-component/my-component.css +27 -0
  339. package/dist/collection/components/my-component/my-component.js +95 -0
  340. package/dist/collection/components/my-step/my-step.css +25 -0
  341. package/dist/collection/components/my-step/my-step.js +237 -0
  342. package/dist/collection/components/nav-bar/nav-bar.css +448 -0
  343. package/dist/collection/components/nav-bar/nav-bar.js +608 -0
  344. package/dist/collection/components/number-input/number-input.css +200 -0
  345. package/dist/collection/components/number-input/number-input.js +695 -0
  346. package/dist/collection/components/otp-input/otp-input.css +243 -0
  347. package/dist/collection/components/otp-input/otp-input.js +761 -0
  348. package/dist/collection/components/otp-input/types.js +1 -0
  349. package/dist/collection/components/pagination/pagination.css +1399 -0
  350. package/dist/collection/components/pagination/pagination.js +2033 -0
  351. package/dist/collection/components/pagination/types.js +1 -0
  352. package/dist/collection/components/panel/panel.css +837 -0
  353. package/dist/collection/components/panel/panel.js +1842 -0
  354. package/dist/collection/components/panel/types.js +1 -0
  355. package/dist/collection/components/pattern-input/pattern-input.css +252 -0
  356. package/dist/collection/components/pattern-input/pattern-input.js +788 -0
  357. package/dist/collection/components/popover/popover.css +399 -0
  358. package/dist/collection/components/popover/popover.js +1449 -0
  359. package/dist/collection/components/popover/types.js +1 -0
  360. package/dist/collection/components/progress/progress.css +588 -0
  361. package/dist/collection/components/progress/progress.js +1414 -0
  362. package/dist/collection/components/progress/types.js +1 -0
  363. package/dist/collection/components/radio/radio.css +773 -0
  364. package/dist/collection/components/radio/radio.js +1059 -0
  365. package/dist/collection/components/radio/types.js +1 -0
  366. package/dist/collection/components/radio-group/radio-group.css +202 -0
  367. package/dist/collection/components/radio-group/radio-group.js +903 -0
  368. package/dist/collection/components/radio-group/types.js +1 -0
  369. package/dist/collection/components/range-slider/range-slider.css +602 -0
  370. package/dist/collection/components/range-slider/range-slider.js +1369 -0
  371. package/dist/collection/components/range-slider/types.js +1 -0
  372. package/dist/collection/components/rating/rating.css +768 -0
  373. package/dist/collection/components/rating/rating.js +1062 -0
  374. package/dist/collection/components/rating/types.js +1 -0
  375. package/dist/collection/components/resizable-panel/resizable-panel.css +247 -0
  376. package/dist/collection/components/resizable-panel/resizable-panel.js +874 -0
  377. package/dist/collection/components/resizable-panel/types.js +1 -0
  378. package/dist/collection/components/scroll-top/scroll-top.css +397 -0
  379. package/dist/collection/components/scroll-top/scroll-top.js +1178 -0
  380. package/dist/collection/components/scroll-top/types.js +1 -0
  381. package/dist/collection/components/skeleton/skeleton-loader.css +429 -0
  382. package/dist/collection/components/skeleton/skeleton-loader.js +1193 -0
  383. package/dist/collection/components/skeleton/types.js +1 -0
  384. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.css +357 -0
  385. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +1190 -0
  386. package/dist/collection/components/smart-location-dropdown/types.js +1 -0
  387. package/dist/collection/components/smart-menu/menu-item.interface.js +1 -0
  388. package/dist/collection/components/smart-menu/smart-menu.css +119 -0
  389. package/dist/collection/components/smart-menu/smart-menu.js +544 -0
  390. package/dist/collection/components/smart-stepper/smart-step.css +213 -0
  391. package/dist/collection/components/smart-stepper/smart-step.js +170 -0
  392. package/dist/collection/components/smart-stepper/smart-stepper.css +146 -0
  393. package/dist/collection/components/smart-stepper/smart-stepper.js +338 -0
  394. package/dist/collection/components/snackbar/snackbar.css +1480 -0
  395. package/dist/collection/components/snackbar/snackbar.js +1759 -0
  396. package/dist/collection/components/snackbar/types.js +1 -0
  397. package/dist/collection/components/speed-dial/speed-dial.css +478 -0
  398. package/dist/collection/components/speed-dial/speed-dial.js +1183 -0
  399. package/dist/collection/components/speed-dial/types.js +1 -0
  400. package/dist/collection/components/speedometer/speedometer.css +95 -0
  401. package/dist/collection/components/speedometer/speedometer.js +868 -0
  402. package/dist/collection/components/speedometer/types.js +1 -0
  403. package/dist/collection/components/splitter/splitter.css +269 -0
  404. package/dist/collection/components/splitter/splitter.js +713 -0
  405. package/dist/collection/components/splitter/types.js +1 -0
  406. package/dist/collection/components/stack/stack.css +269 -0
  407. package/dist/collection/components/stack/stack.js +297 -0
  408. package/dist/collection/components/stack/types.js +1 -0
  409. package/dist/collection/components/step/step.css +77 -0
  410. package/dist/collection/components/step/step.js +214 -0
  411. package/dist/collection/components/step/types.js +1 -0
  412. package/dist/collection/components/stepper/stepper.css +1079 -0
  413. package/dist/collection/components/stepper/stepper.js +1850 -0
  414. package/dist/collection/components/stepper/types.js +1 -0
  415. package/dist/collection/components/switch/switch.css +1099 -0
  416. package/dist/collection/components/switch/switch.js +1578 -0
  417. package/dist/collection/components/tabs/tabs.css +1355 -0
  418. package/dist/collection/components/tabs/tabs.js +1474 -0
  419. package/dist/collection/components/tabs/types.js +1 -0
  420. package/dist/collection/components/tag/tag.css +893 -0
  421. package/dist/collection/components/tag/tag.js +1119 -0
  422. package/dist/collection/components/tag/types.js +1 -0
  423. package/dist/collection/components/tag-group/tag-group.css +144 -0
  424. package/dist/collection/components/tag-group/tag-group.js +887 -0
  425. package/dist/collection/components/tag-group/types.js +1 -0
  426. package/dist/collection/components/timeline/timeline.css +1850 -0
  427. package/dist/collection/components/timeline/timeline.js +889 -0
  428. package/dist/collection/components/timeline/types.js +1 -0
  429. package/dist/collection/components/timeline/ui-timeline.stories.js +19 -0
  430. package/dist/collection/components/timeline-item/timeline-item.css +75 -0
  431. package/dist/collection/components/timeline-item/timeline-item.js +91 -0
  432. package/dist/collection/components/timer/timer.css +367 -0
  433. package/dist/collection/components/timer/timer.js +1292 -0
  434. package/dist/collection/components/timer/types.js +1 -0
  435. package/dist/collection/components/timer/ui-timer.stories.js +19 -0
  436. package/dist/collection/components/toggle-group/toggle-group.css +361 -0
  437. package/dist/collection/components/toggle-group/toggle-group.js +1212 -0
  438. package/dist/collection/components/toggle-group/types.js +1 -0
  439. package/dist/collection/components/toolbar/toolbar-types.js +1 -0
  440. package/dist/collection/components/toolbar/toolbar.css +1186 -0
  441. package/dist/collection/components/toolbar/toolbar.js +1635 -0
  442. package/dist/collection/components/tooltip/tooltip.css +609 -0
  443. package/dist/collection/components/tooltip/tooltip.js +1882 -0
  444. package/dist/collection/components/tooltip/types.js +1 -0
  445. package/dist/collection/components/top-bar/top-bar.css +274 -0
  446. package/dist/collection/components/top-bar/top-bar.js +383 -0
  447. package/dist/collection/components/transfer-list/transfer-list.css +520 -0
  448. package/dist/collection/components/transfer-list/transfer-list.js +1225 -0
  449. package/dist/collection/components/transfer-list/types.js +1 -0
  450. package/dist/collection/components/tree/tree.css +1197 -0
  451. package/dist/collection/components/tree/tree.js +2509 -0
  452. package/dist/collection/components/tree/types.js +1 -0
  453. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +830 -0
  454. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +1231 -0
  455. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-types.js +1 -0
  456. package/dist/collection/components/ui-navigation-bar/navigation-item.css +679 -0
  457. package/dist/collection/components/ui-navigation-bar/navigation-item.js +385 -0
  458. package/dist/collection/components/ui-navigation-bar/navigation-types.js +1 -0
  459. package/dist/collection/components/workspace-manager/types.js +1 -0
  460. package/dist/collection/components/workspace-manager/workspace-manager.css +1094 -0
  461. package/dist/collection/components/workspace-manager/workspace-manager.js +1914 -0
  462. package/dist/collection/components.js +51 -0
  463. package/dist/collection/index.js +108 -0
  464. package/dist/collection/service/drag-manager.js +23 -0
  465. package/dist/collection/service/event-bus.js +19 -0
  466. package/dist/collection/service/serialization.js +8 -0
  467. package/dist/collection/service/state-engine.js +247 -0
  468. package/dist/collection/service/theme-switcher.js +146 -0
  469. package/dist/collection/stories/Button.stories.js +15 -0
  470. package/dist/collection/types/common.js +1 -0
  471. package/dist/collection/types/index.js +4 -0
  472. package/dist/collection/utils/aria-live.js +60 -0
  473. package/dist/collection/utils/component-size.js +25 -0
  474. package/dist/collection/utils/dom.js +260 -0
  475. package/dist/collection/utils/focus-trap.js +135 -0
  476. package/dist/collection/utils/security.js +10 -0
  477. package/dist/collection/utils/test/setup-component-test-env.js +92 -0
  478. package/dist/collection/utils/utils.js +21 -0
  479. package/dist/collection/utils/validation.js +74 -0
  480. package/dist/components/avatar-group.js +1 -0
  481. package/dist/components/avatar.js +1 -0
  482. package/dist/components/badge.js +1 -0
  483. package/dist/components/button-toggle.js +1 -0
  484. package/dist/components/category-section.d.ts +11 -0
  485. package/dist/components/category-section.js +1 -0
  486. package/dist/components/category-section2.js +1 -0
  487. package/dist/components/checkbox.js +1 -0
  488. package/dist/components/context-menu.js +1 -0
  489. package/dist/components/dialog-footer.js +1 -0
  490. package/dist/components/dialog-header.js +1 -0
  491. package/dist/components/dom.js +1 -0
  492. package/dist/components/dropdown.js +1 -0
  493. package/dist/components/event-bus.js +1 -0
  494. package/dist/components/focus-trap.js +1 -0
  495. package/dist/components/icon.js +2 -0
  496. package/dist/components/index.d.ts +35 -0
  497. package/dist/components/index.js +1 -0
  498. package/dist/components/input.js +1 -0
  499. package/dist/components/layout-manager.d.ts +11 -0
  500. package/dist/components/layout-manager.js +1 -0
  501. package/dist/components/library-card.d.ts +11 -0
  502. package/dist/components/library-card.js +1 -0
  503. package/dist/components/library-card2.js +1 -0
  504. package/dist/components/list-group.js +1 -0
  505. package/dist/components/list-item.js +1 -0
  506. package/dist/components/lm-container.d.ts +11 -0
  507. package/dist/components/lm-container.js +1 -0
  508. package/dist/components/lm-container2.js +1 -0
  509. package/dist/components/lm-floating-window.d.ts +11 -0
  510. package/dist/components/lm-floating-window.js +1 -0
  511. package/dist/components/lm-floating-window2.js +1 -0
  512. package/dist/components/lm-panel.d.ts +11 -0
  513. package/dist/components/lm-panel.js +1 -0
  514. package/dist/components/lm-panel2.js +1 -0
  515. package/dist/components/lm-splitter.d.ts +11 -0
  516. package/dist/components/lm-splitter.js +1 -0
  517. package/dist/components/lm-splitter2.js +1 -0
  518. package/dist/components/lm-tabs.d.ts +11 -0
  519. package/dist/components/lm-tabs.js +1 -0
  520. package/dist/components/lm-tabs2.js +1 -0
  521. package/dist/components/my-component.d.ts +11 -0
  522. package/dist/components/my-component.js +1 -0
  523. package/dist/components/my-step.d.ts +11 -0
  524. package/dist/components/my-step.js +1 -0
  525. package/dist/components/nav-bar.d.ts +11 -0
  526. package/dist/components/nav-bar.js +1 -0
  527. package/dist/components/pagination.js +1 -0
  528. package/dist/components/radio.js +1 -0
  529. package/dist/components/range-slider.js +1 -0
  530. package/dist/components/rating.js +1 -0
  531. package/dist/components/resizable-panel.js +1 -0
  532. package/dist/components/skeleton-loader.js +1 -0
  533. package/dist/components/smart-step.d.ts +11 -0
  534. package/dist/components/smart-step.js +1 -0
  535. package/dist/components/stack.js +1 -0
  536. package/dist/components/switch.js +1 -0
  537. package/dist/components/tag-group.js +1 -0
  538. package/dist/components/tag.js +1 -0
  539. package/dist/components/timeline-item.d.ts +11 -0
  540. package/dist/components/timeline-item.js +1 -0
  541. package/dist/components/toggle-group.js +1 -0
  542. package/dist/components/tooltip.js +1 -0
  543. package/dist/components/ui-accordion.d.ts +11 -0
  544. package/dist/components/ui-accordion.js +1 -0
  545. package/dist/components/ui-advanced-data-table.d.ts +11 -0
  546. package/dist/components/ui-advanced-data-table.js +1 -0
  547. package/dist/components/ui-anchor.d.ts +11 -0
  548. package/dist/components/ui-anchor.js +1 -0
  549. package/dist/components/ui-animate-on-scroll.d.ts +11 -0
  550. package/dist/components/ui-animate-on-scroll.js +1 -0
  551. package/dist/components/ui-aside-panel.d.ts +11 -0
  552. package/dist/components/ui-aside-panel.js +1 -0
  553. package/dist/components/ui-avatar-group.d.ts +11 -0
  554. package/dist/components/ui-avatar-group.js +1 -0
  555. package/dist/components/ui-avatar.d.ts +11 -0
  556. package/dist/components/ui-avatar.js +1 -0
  557. package/dist/components/ui-badge.d.ts +11 -0
  558. package/dist/components/ui-badge.js +1 -0
  559. package/dist/components/ui-breadcrumb-item.d.ts +11 -0
  560. package/dist/components/ui-breadcrumb-item.js +1 -0
  561. package/dist/components/ui-breadcrumb.d.ts +11 -0
  562. package/dist/components/ui-breadcrumb.js +1 -0
  563. package/dist/components/ui-button-toggle-group.d.ts +11 -0
  564. package/dist/components/ui-button-toggle-group.js +1 -0
  565. package/dist/components/ui-button-toggle.d.ts +11 -0
  566. package/dist/components/ui-button-toggle.js +1 -0
  567. package/dist/components/ui-button.d.ts +11 -0
  568. package/dist/components/ui-button.js +1 -0
  569. package/dist/components/ui-callout-banner.d.ts +11 -0
  570. package/dist/components/ui-callout-banner.js +1 -0
  571. package/dist/components/ui-card.d.ts +11 -0
  572. package/dist/components/ui-card.js +1 -0
  573. package/dist/components/ui-carousel.d.ts +11 -0
  574. package/dist/components/ui-carousel.js +1 -0
  575. package/dist/components/ui-checkbox-group.d.ts +11 -0
  576. package/dist/components/ui-checkbox-group.js +1 -0
  577. package/dist/components/ui-checkbox.d.ts +11 -0
  578. package/dist/components/ui-checkbox.js +1 -0
  579. package/dist/components/ui-code-editor.d.ts +11 -0
  580. package/dist/components/ui-code-editor.js +1 -0
  581. package/dist/components/ui-code-preview.d.ts +11 -0
  582. package/dist/components/ui-code-preview.js +1 -0
  583. package/dist/components/ui-color-controller.d.ts +11 -0
  584. package/dist/components/ui-color-controller.js +1 -0
  585. package/dist/components/ui-color-picker.d.ts +11 -0
  586. package/dist/components/ui-color-picker.js +1 -0
  587. package/dist/components/ui-command-palette.d.ts +11 -0
  588. package/dist/components/ui-command-palette.js +1 -0
  589. package/dist/components/ui-context-menu.d.ts +11 -0
  590. package/dist/components/ui-context-menu.js +1 -0
  591. package/dist/components/ui-dialog-box.d.ts +11 -0
  592. package/dist/components/ui-dialog-box.js +1 -0
  593. package/dist/components/ui-dialog-content.d.ts +11 -0
  594. package/dist/components/ui-dialog-content.js +1 -0
  595. package/dist/components/ui-dialog-footer.d.ts +11 -0
  596. package/dist/components/ui-dialog-footer.js +1 -0
  597. package/dist/components/ui-dialog-header.d.ts +11 -0
  598. package/dist/components/ui-dialog-header.js +1 -0
  599. package/dist/components/ui-divider.d.ts +11 -0
  600. package/dist/components/ui-divider.js +1 -0
  601. package/dist/components/ui-dock-host.d.ts +11 -0
  602. package/dist/components/ui-dock-host.js +1 -0
  603. package/dist/components/ui-dock.d.ts +11 -0
  604. package/dist/components/ui-dock.js +1 -0
  605. package/dist/components/ui-drag-drop.d.ts +11 -0
  606. package/dist/components/ui-drag-drop.js +1 -0
  607. package/dist/components/ui-dropdown.d.ts +11 -0
  608. package/dist/components/ui-dropdown.js +1 -0
  609. package/dist/components/ui-empty-state.d.ts +11 -0
  610. package/dist/components/ui-empty-state.js +1 -0
  611. package/dist/components/ui-fab-item.d.ts +11 -0
  612. package/dist/components/ui-fab-item.js +1 -0
  613. package/dist/components/ui-fab.d.ts +11 -0
  614. package/dist/components/ui-fab.js +1 -0
  615. package/dist/components/ui-file-upload.d.ts +11 -0
  616. package/dist/components/ui-file-upload.js +1 -0
  617. package/dist/components/ui-horizontal-nav.d.ts +11 -0
  618. package/dist/components/ui-horizontal-nav.js +1 -0
  619. package/dist/components/ui-icon.d.ts +11 -0
  620. package/dist/components/ui-icon.js +1 -0
  621. package/dist/components/ui-image-button.d.ts +11 -0
  622. package/dist/components/ui-image-button.js +1 -0
  623. package/dist/components/ui-input-pair.d.ts +11 -0
  624. package/dist/components/ui-input-pair.js +1 -0
  625. package/dist/components/ui-input.d.ts +11 -0
  626. package/dist/components/ui-input.js +1 -0
  627. package/dist/components/ui-knob.d.ts +11 -0
  628. package/dist/components/ui-knob.js +1 -0
  629. package/dist/components/ui-library.d.ts +11 -0
  630. package/dist/components/ui-library.js +1 -0
  631. package/dist/components/ui-list-group.d.ts +11 -0
  632. package/dist/components/ui-list-group.js +1 -0
  633. package/dist/components/ui-list-item.d.ts +11 -0
  634. package/dist/components/ui-list-item.js +1 -0
  635. package/dist/components/ui-list.d.ts +11 -0
  636. package/dist/components/ui-list.js +1 -0
  637. package/dist/components/ui-masonry.d.ts +11 -0
  638. package/dist/components/ui-masonry.js +1 -0
  639. package/dist/components/ui-meter-group.d.ts +11 -0
  640. package/dist/components/ui-meter-group.js +1 -0
  641. package/dist/components/ui-navigation-bar.d.ts +11 -0
  642. package/dist/components/ui-navigation-bar.js +1 -0
  643. package/dist/components/ui-navigation-item.d.ts +11 -0
  644. package/dist/components/ui-navigation-item.js +1 -0
  645. package/dist/components/ui-number-input.d.ts +11 -0
  646. package/dist/components/ui-number-input.js +1 -0
  647. package/dist/components/ui-otp-input.d.ts +11 -0
  648. package/dist/components/ui-otp-input.js +1 -0
  649. package/dist/components/ui-pagination.d.ts +11 -0
  650. package/dist/components/ui-pagination.js +1 -0
  651. package/dist/components/ui-panel.d.ts +11 -0
  652. package/dist/components/ui-panel.js +1 -0
  653. package/dist/components/ui-pattern-input.d.ts +11 -0
  654. package/dist/components/ui-pattern-input.js +1 -0
  655. package/dist/components/ui-popover.d.ts +11 -0
  656. package/dist/components/ui-popover.js +1 -0
  657. package/dist/components/ui-progress.d.ts +11 -0
  658. package/dist/components/ui-progress.js +1 -0
  659. package/dist/components/ui-radio-group.d.ts +11 -0
  660. package/dist/components/ui-radio-group.js +1 -0
  661. package/dist/components/ui-radio.d.ts +11 -0
  662. package/dist/components/ui-radio.js +1 -0
  663. package/dist/components/ui-range-slider.d.ts +11 -0
  664. package/dist/components/ui-range-slider.js +1 -0
  665. package/dist/components/ui-rating.d.ts +11 -0
  666. package/dist/components/ui-rating.js +1 -0
  667. package/dist/components/ui-resizable-panel.d.ts +11 -0
  668. package/dist/components/ui-resizable-panel.js +1 -0
  669. package/dist/components/ui-scroll-top.d.ts +11 -0
  670. package/dist/components/ui-scroll-top.js +1 -0
  671. package/dist/components/ui-skeleton.d.ts +11 -0
  672. package/dist/components/ui-skeleton.js +1 -0
  673. package/dist/components/ui-smart-context-menu.d.ts +11 -0
  674. package/dist/components/ui-smart-context-menu.js +1 -0
  675. package/dist/components/ui-smart-location-dropdown.d.ts +11 -0
  676. package/dist/components/ui-smart-location-dropdown.js +1 -0
  677. package/dist/components/ui-smart-stepper.d.ts +11 -0
  678. package/dist/components/ui-smart-stepper.js +1 -0
  679. package/dist/components/ui-snackbar.d.ts +11 -0
  680. package/dist/components/ui-snackbar.js +1 -0
  681. package/dist/components/ui-speed-dial.d.ts +11 -0
  682. package/dist/components/ui-speed-dial.js +1 -0
  683. package/dist/components/ui-speedometer.d.ts +11 -0
  684. package/dist/components/ui-speedometer.js +1 -0
  685. package/dist/components/ui-splitter.d.ts +11 -0
  686. package/dist/components/ui-splitter.js +1 -0
  687. package/dist/components/ui-stack.d.ts +11 -0
  688. package/dist/components/ui-stack.js +1 -0
  689. package/dist/components/ui-step.d.ts +11 -0
  690. package/dist/components/ui-step.js +1 -0
  691. package/dist/components/ui-stepper.d.ts +11 -0
  692. package/dist/components/ui-stepper.js +1 -0
  693. package/dist/components/ui-switch.d.ts +11 -0
  694. package/dist/components/ui-switch.js +1 -0
  695. package/dist/components/ui-tabs.d.ts +11 -0
  696. package/dist/components/ui-tabs.js +1 -0
  697. package/dist/components/ui-tag-group.d.ts +11 -0
  698. package/dist/components/ui-tag-group.js +1 -0
  699. package/dist/components/ui-tag.d.ts +11 -0
  700. package/dist/components/ui-tag.js +1 -0
  701. package/dist/components/ui-timeline.d.ts +11 -0
  702. package/dist/components/ui-timeline.js +1 -0
  703. package/dist/components/ui-timer.d.ts +11 -0
  704. package/dist/components/ui-timer.js +1 -0
  705. package/dist/components/ui-toggle-group.d.ts +11 -0
  706. package/dist/components/ui-toggle-group.js +1 -0
  707. package/dist/components/ui-toolbar.d.ts +11 -0
  708. package/dist/components/ui-toolbar.js +1 -0
  709. package/dist/components/ui-tooltip.d.ts +11 -0
  710. package/dist/components/ui-tooltip.js +1 -0
  711. package/dist/components/ui-top-bar.d.ts +11 -0
  712. package/dist/components/ui-top-bar.js +1 -0
  713. package/dist/components/ui-transfer-list.d.ts +11 -0
  714. package/dist/components/ui-transfer-list.js +1 -0
  715. package/dist/components/ui-tree.d.ts +11 -0
  716. package/dist/components/ui-tree.js +1 -0
  717. package/dist/components/ui-workspace-manager.d.ts +11 -0
  718. package/dist/components/ui-workspace-manager.js +1 -0
  719. package/dist/components/utils.js +1 -0
  720. package/dist/esm/category-section.entry.js +28 -0
  721. package/dist/esm/component-size-C7gf39HE.js +27 -0
  722. package/dist/esm/dom-BMFah5q3.js +262 -0
  723. package/dist/esm/event-bus-vwwmWKs9.js +21 -0
  724. package/dist/esm/exploration-project-tailwind.js +20 -0
  725. package/dist/esm/focus-trap-BSQ8klD4.js +137 -0
  726. package/dist/esm/index-DUsoYu9r.js +2264 -0
  727. package/dist/esm/index.js +256 -0
  728. package/dist/esm/layout-manager.entry.js +614 -0
  729. package/dist/esm/library-card.entry.js +61 -0
  730. package/dist/esm/lm-container_2.entry.js +76 -0
  731. package/dist/esm/lm-panel_3.entry.js +104 -0
  732. package/dist/esm/loader.js +10 -0
  733. package/dist/esm/my-component.entry.js +31 -0
  734. package/dist/esm/my-step.entry.js +27 -0
  735. package/dist/esm/nav-bar.entry.js +245 -0
  736. package/dist/esm/security-D2WzX6vR.js +1545 -0
  737. package/dist/esm/smart-step.entry.js +45 -0
  738. package/dist/esm/timeline-item.entry.js +27 -0
  739. package/dist/esm/ui-accordion_10.entry.js +5722 -0
  740. package/dist/esm/ui-advanced-data-table.entry.js +2682 -0
  741. package/dist/esm/ui-anchor.entry.js +556 -0
  742. package/dist/esm/ui-animate-on-scroll.entry.js +283 -0
  743. package/dist/esm/ui-aside-panel.entry.js +636 -0
  744. package/dist/esm/ui-avatar-group_3.entry.js +630 -0
  745. package/dist/esm/ui-breadcrumb-item.entry.js +54 -0
  746. package/dist/esm/ui-breadcrumb.entry.js +199 -0
  747. package/dist/esm/ui-callout-banner.entry.js +289 -0
  748. package/dist/esm/ui-card.entry.js +409 -0
  749. package/dist/esm/ui-carousel.entry.js +545 -0
  750. package/dist/esm/ui-checkbox-group.entry.js +328 -0
  751. package/dist/esm/ui-checkbox.entry.js +258 -0
  752. package/dist/esm/ui-code-editor.entry.js +959 -0
  753. package/dist/esm/ui-code-preview.entry.js +313 -0
  754. package/dist/esm/ui-color-controller.entry.js +148 -0
  755. package/dist/esm/ui-color-picker.entry.js +656 -0
  756. package/dist/esm/ui-command-palette.entry.js +176 -0
  757. package/dist/esm/ui-dialog-box.entry.js +1806 -0
  758. package/dist/esm/ui-dialog-content.entry.js +29 -0
  759. package/dist/esm/ui-dialog-footer_2.entry.js +190 -0
  760. package/dist/esm/ui-divider.entry.js +479 -0
  761. package/dist/esm/ui-dock-host.entry.js +126 -0
  762. package/dist/esm/ui-dock.entry.js +219 -0
  763. package/dist/esm/ui-drag-drop.entry.js +170 -0
  764. package/dist/esm/ui-dropdown_2.entry.js +1549 -0
  765. package/dist/esm/ui-empty-state.entry.js +396 -0
  766. package/dist/esm/ui-fab-item.entry.js +37 -0
  767. package/dist/esm/ui-fab.entry.js +275 -0
  768. package/dist/esm/ui-file-upload.entry.js +416 -0
  769. package/dist/esm/ui-horizontal-nav.entry.js +133 -0
  770. package/dist/esm/ui-image-button.entry.js +65 -0
  771. package/dist/esm/ui-input-pair.entry.js +42 -0
  772. package/dist/esm/ui-knob.entry.js +445 -0
  773. package/dist/esm/ui-library.entry.js +132 -0
  774. package/dist/esm/ui-list-group_2.entry.js +583 -0
  775. package/dist/esm/ui-list.entry.js +730 -0
  776. package/dist/esm/ui-masonry.entry.js +476 -0
  777. package/dist/esm/ui-meter-group.entry.js +171 -0
  778. package/dist/esm/ui-navigation-item.entry.js +102 -0
  779. package/dist/esm/ui-number-input.entry.js +189 -0
  780. package/dist/esm/ui-otp-input.entry.js +244 -0
  781. package/dist/esm/ui-pagination_3.entry.js +1617 -0
  782. package/dist/esm/ui-panel.entry.js +612 -0
  783. package/dist/esm/ui-pattern-input.entry.js +276 -0
  784. package/dist/esm/ui-popover.entry.js +515 -0
  785. package/dist/esm/ui-progress.entry.js +514 -0
  786. package/dist/esm/ui-radio-group.entry.js +203 -0
  787. package/dist/esm/ui-radio.entry.js +204 -0
  788. package/dist/esm/ui-range-slider.entry.js +635 -0
  789. package/dist/esm/ui-resizable-panel.entry.js +482 -0
  790. package/dist/esm/ui-scroll-top.entry.js +457 -0
  791. package/dist/esm/ui-smart-context-menu.entry.js +374 -0
  792. package/dist/esm/ui-smart-location-dropdown.entry.js +563 -0
  793. package/dist/esm/ui-smart-stepper.entry.js +135 -0
  794. package/dist/esm/ui-snackbar.entry.js +861 -0
  795. package/dist/esm/ui-speed-dial.entry.js +518 -0
  796. package/dist/esm/ui-speedometer.entry.js +426 -0
  797. package/dist/esm/ui-splitter.entry.js +280 -0
  798. package/dist/esm/ui-step.entry.js +28 -0
  799. package/dist/esm/ui-stepper.entry.js +638 -0
  800. package/dist/esm/ui-switch.entry.js +403 -0
  801. package/dist/esm/ui-tabs.entry.js +701 -0
  802. package/dist/esm/ui-tag.entry.js +297 -0
  803. package/dist/esm/ui-timeline.entry.js +265 -0
  804. package/dist/esm/ui-timer.entry.js +500 -0
  805. package/dist/esm/ui-toolbar.entry.js +617 -0
  806. package/dist/esm/ui-tooltip.entry.js +695 -0
  807. package/dist/esm/ui-top-bar.entry.js +119 -0
  808. package/dist/esm/ui-transfer-list.entry.js +590 -0
  809. package/dist/esm/ui-tree.entry.js +872 -0
  810. package/dist/esm/ui-workspace-manager.entry.js +1199 -0
  811. package/dist/esm/utils-Ck6jDuhz.js +23 -0
  812. package/dist/exploration-project-tailwind/exploration-project-tailwind.css +1 -0
  813. package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -0
  814. package/dist/exploration-project-tailwind/index.esm.js +1 -0
  815. package/dist/exploration-project-tailwind/p-01c7db7a.entry.js +1 -0
  816. package/dist/exploration-project-tailwind/p-049744f9.entry.js +1 -0
  817. package/dist/exploration-project-tailwind/p-06f0c679.entry.js +1 -0
  818. package/dist/exploration-project-tailwind/p-0b004861.entry.js +1 -0
  819. package/dist/exploration-project-tailwind/p-0d31c9e9.entry.js +1 -0
  820. package/dist/exploration-project-tailwind/p-148e81df.entry.js +1 -0
  821. package/dist/exploration-project-tailwind/p-200241f8.entry.js +1 -0
  822. package/dist/exploration-project-tailwind/p-287dbf09.entry.js +1 -0
  823. package/dist/exploration-project-tailwind/p-2d273118.entry.js +1 -0
  824. package/dist/exploration-project-tailwind/p-2f1aebb3.entry.js +1 -0
  825. package/dist/exploration-project-tailwind/p-2f961934.entry.js +1 -0
  826. package/dist/exploration-project-tailwind/p-35296877.entry.js +1 -0
  827. package/dist/exploration-project-tailwind/p-36861546.entry.js +1 -0
  828. package/dist/exploration-project-tailwind/p-3d3d48fd.entry.js +1 -0
  829. package/dist/exploration-project-tailwind/p-41cd6bf0.entry.js +1 -0
  830. package/dist/exploration-project-tailwind/p-45482d86.entry.js +1 -0
  831. package/dist/exploration-project-tailwind/p-46596a28.entry.js +1 -0
  832. package/dist/exploration-project-tailwind/p-46efdea3.entry.js +1 -0
  833. package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +1 -0
  834. package/dist/exploration-project-tailwind/p-4d73c143.entry.js +1 -0
  835. package/dist/exploration-project-tailwind/p-4de419d5.entry.js +1 -0
  836. package/dist/exploration-project-tailwind/p-4f6bba75.entry.js +1 -0
  837. package/dist/exploration-project-tailwind/p-5508874f.entry.js +1 -0
  838. package/dist/exploration-project-tailwind/p-5ce0dbd8.entry.js +1 -0
  839. package/dist/exploration-project-tailwind/p-5e3e80ae.entry.js +1 -0
  840. package/dist/exploration-project-tailwind/p-61717490.entry.js +1 -0
  841. package/dist/exploration-project-tailwind/p-62352ef2.entry.js +1 -0
  842. package/dist/exploration-project-tailwind/p-64e3a484.entry.js +1 -0
  843. package/dist/exploration-project-tailwind/p-6ab80ead.entry.js +1 -0
  844. package/dist/exploration-project-tailwind/p-6e9694f2.entry.js +1 -0
  845. package/dist/exploration-project-tailwind/p-6fa9dc15.entry.js +1 -0
  846. package/dist/exploration-project-tailwind/p-70d82d79.entry.js +1 -0
  847. package/dist/exploration-project-tailwind/p-717dad1f.entry.js +1 -0
  848. package/dist/exploration-project-tailwind/p-7376ac95.entry.js +1 -0
  849. package/dist/exploration-project-tailwind/p-73d29a4a.entry.js +1 -0
  850. package/dist/exploration-project-tailwind/p-7515b1e3.entry.js +1 -0
  851. package/dist/exploration-project-tailwind/p-77124686.entry.js +1 -0
  852. package/dist/exploration-project-tailwind/p-77a21491.entry.js +1 -0
  853. package/dist/exploration-project-tailwind/p-77cc333a.entry.js +1 -0
  854. package/dist/exploration-project-tailwind/p-7f91d949.entry.js +1 -0
  855. package/dist/exploration-project-tailwind/p-807c6555.entry.js +1 -0
  856. package/dist/exploration-project-tailwind/p-81961fb1.entry.js +1 -0
  857. package/dist/exploration-project-tailwind/p-85bf89fd.entry.js +1 -0
  858. package/dist/exploration-project-tailwind/p-85e36111.entry.js +1 -0
  859. package/dist/exploration-project-tailwind/p-875be805.entry.js +1 -0
  860. package/dist/exploration-project-tailwind/p-898dd0fa.entry.js +1 -0
  861. package/dist/exploration-project-tailwind/p-8d951aef.entry.js +1 -0
  862. package/dist/exploration-project-tailwind/p-9d0c8760.entry.js +1 -0
  863. package/dist/exploration-project-tailwind/p-9fa70359.entry.js +1 -0
  864. package/dist/exploration-project-tailwind/p-9fc06ff0.entry.js +1 -0
  865. package/dist/exploration-project-tailwind/p-BMFah5q3.js +1 -0
  866. package/dist/exploration-project-tailwind/p-BSQ8klD4.js +1 -0
  867. package/dist/exploration-project-tailwind/p-C7gf39HE.js +1 -0
  868. package/dist/exploration-project-tailwind/p-Ck6jDuhz.js +1 -0
  869. package/dist/exploration-project-tailwind/p-D2WzX6vR.js +2 -0
  870. package/dist/exploration-project-tailwind/p-DUsoYu9r.js +2 -0
  871. package/dist/exploration-project-tailwind/p-a1ad32a2.entry.js +1 -0
  872. package/dist/exploration-project-tailwind/p-a3f465d9.entry.js +1 -0
  873. package/dist/exploration-project-tailwind/p-a42fdc33.entry.js +1 -0
  874. package/dist/exploration-project-tailwind/p-a4f52a76.entry.js +1 -0
  875. package/dist/exploration-project-tailwind/p-aa85ff78.entry.js +1 -0
  876. package/dist/exploration-project-tailwind/p-ab752761.entry.js +1 -0
  877. package/dist/exploration-project-tailwind/p-ba21fed3.entry.js +1 -0
  878. package/dist/exploration-project-tailwind/p-c174a372.entry.js +1 -0
  879. package/dist/exploration-project-tailwind/p-c2ca71ac.entry.js +1 -0
  880. package/dist/exploration-project-tailwind/p-c4ba7e52.entry.js +1 -0
  881. package/dist/exploration-project-tailwind/p-c5ddc817.entry.js +1 -0
  882. package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +1 -0
  883. package/dist/exploration-project-tailwind/p-c6fd72e1.entry.js +1 -0
  884. package/dist/exploration-project-tailwind/p-c7e87fbb.entry.js +1 -0
  885. package/dist/exploration-project-tailwind/p-c87aeab6.entry.js +1 -0
  886. package/dist/exploration-project-tailwind/p-c90722ec.entry.js +1 -0
  887. package/dist/exploration-project-tailwind/p-ccb5c737.entry.js +1 -0
  888. package/dist/exploration-project-tailwind/p-ce1222a1.entry.js +1 -0
  889. package/dist/exploration-project-tailwind/p-d16c9635.entry.js +1 -0
  890. package/dist/exploration-project-tailwind/p-d2308a00.entry.js +1 -0
  891. package/dist/exploration-project-tailwind/p-d30e24bd.entry.js +1 -0
  892. package/dist/exploration-project-tailwind/p-d419eaf0.entry.js +1 -0
  893. package/dist/exploration-project-tailwind/p-debede45.entry.js +1 -0
  894. package/dist/exploration-project-tailwind/p-e5322e59.entry.js +1 -0
  895. package/dist/exploration-project-tailwind/p-e8ba0c95.entry.js +1 -0
  896. package/dist/exploration-project-tailwind/p-e90d5307.entry.js +1 -0
  897. package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +1 -0
  898. package/dist/exploration-project-tailwind/p-ecda1cc3.entry.js +1 -0
  899. package/dist/exploration-project-tailwind/p-f0830120.entry.js +1 -0
  900. package/dist/exploration-project-tailwind/p-f11e5cae.entry.js +1 -0
  901. package/dist/exploration-project-tailwind/p-f5719913.entry.js +1 -0
  902. package/dist/exploration-project-tailwind/p-ffb1754a.entry.js +1 -0
  903. package/dist/exploration-project-tailwind/p-vwwmWKs9.js +1 -0
  904. package/dist/index.cjs.js +1 -0
  905. package/dist/index.js +1 -0
  906. package/dist/types/components/accordion/accordion.d.ts +352 -0
  907. package/dist/types/components/accordion/types.d.ts +69 -0
  908. package/dist/types/components/advanced-data-table/advanced-data-table.d.ts +697 -0
  909. package/dist/types/components/advanced-data-table/types.d.ts +120 -0
  910. package/dist/types/components/anchor/anchor.d.ts +133 -0
  911. package/dist/types/components/anchor/types.d.ts +17 -0
  912. package/dist/types/components/animate-on-scroll/animate-on-scroll.d.ts +101 -0
  913. package/dist/types/components/aside-panel/aside-panel.d.ts +249 -0
  914. package/dist/types/components/avatar/avatar.d.ts +201 -0
  915. package/dist/types/components/avatar/types.d.ts +132 -0
  916. package/dist/types/components/avatar-group/avatar-group.d.ts +52 -0
  917. package/dist/types/components/avatar-group/types.d.ts +31 -0
  918. package/dist/types/components/badge/badge.d.ts +109 -0
  919. package/dist/types/components/badge/types.d.ts +6 -0
  920. package/dist/types/components/breadcrumb/breadcrumb-item.d.ts +36 -0
  921. package/dist/types/components/breadcrumb/breadcrumb.d.ts +73 -0
  922. package/dist/types/components/breadcrumb/types.d.ts +5 -0
  923. package/dist/types/components/button/button.d.ts +133 -0
  924. package/dist/types/components/button/types.d.ts +1 -0
  925. package/dist/types/components/button-toggle/button-toggle.d.ts +64 -0
  926. package/dist/types/components/button-toggle-group/button-toggle-group.d.ts +141 -0
  927. package/dist/types/components/button-toggle-group/types.d.ts +7 -0
  928. package/dist/types/components/callout-banner/callout-banner.d.ts +115 -0
  929. package/dist/types/components/callout-banner/types.d.ts +7 -0
  930. package/dist/types/components/card/card.d.ts +160 -0
  931. package/dist/types/components/card/types.d.ts +13 -0
  932. package/dist/types/components/carousel/carousel.d.ts +150 -0
  933. package/dist/types/components/carousel/types.d.ts +8 -0
  934. package/dist/types/components/checkbox/checkbox.d.ts +92 -0
  935. package/dist/types/components/checkbox/types.d.ts +5 -0
  936. package/dist/types/components/checkbox-group/checkbox-group.d.ts +87 -0
  937. package/dist/types/components/checkbox-group/types.d.ts +8 -0
  938. package/dist/types/components/code-editor/code-editor.d.ts +147 -0
  939. package/dist/types/components/code-editor/types.d.ts +20 -0
  940. package/dist/types/components/code-preview/types.d.ts +5 -0
  941. package/dist/types/components/code-preview/ui-code-preview.d.ts +69 -0
  942. package/dist/types/components/color-controller/color-controller.d.ts +24 -0
  943. package/dist/types/components/color-picker/color-picker.d.ts +116 -0
  944. package/dist/types/components/color-picker/types.d.ts +24 -0
  945. package/dist/types/components/command-palette/command-palette.d.ts +41 -0
  946. package/dist/types/components/command-palette/types.d.ts +7 -0
  947. package/dist/types/components/context-menu/context-menu.d.ts +135 -0
  948. package/dist/types/components/context-menu/types.d.ts +20 -0
  949. package/dist/types/components/dialog-box/dialog-box.d.ts +648 -0
  950. package/dist/types/components/dialog-box/types.d.ts +1 -0
  951. package/dist/types/components/dialog-content/dialog-content.d.ts +9 -0
  952. package/dist/types/components/dialog-footer/dialog-footer.d.ts +9 -0
  953. package/dist/types/components/dialog-footer/types.d.ts +1 -0
  954. package/dist/types/components/dialog-header/dialog-header.d.ts +102 -0
  955. package/dist/types/components/dialog-header/types.d.ts +2 -0
  956. package/dist/types/components/divider/divider.d.ts +245 -0
  957. package/dist/types/components/divider/types.d.ts +14 -0
  958. package/dist/types/components/dock/dock.d.ts +37 -0
  959. package/dist/types/components/dock/types.d.ts +11 -0
  960. package/dist/types/components/dock-host/index.d.ts +1 -0
  961. package/dist/types/components/dock-host/types.d.ts +1 -0
  962. package/dist/types/components/dock-host/ui-dock-host.d.ts +23 -0
  963. package/dist/types/components/drag-drop/drag-drop.d.ts +52 -0
  964. package/dist/types/components/drag-drop/types.d.ts +9 -0
  965. package/dist/types/components/dropdown/dropdown.d.ts +264 -0
  966. package/dist/types/components/dropdown/types.d.ts +19 -0
  967. package/dist/types/components/empty-state/empty-state.d.ts +74 -0
  968. package/dist/types/components/empty-state/types.d.ts +13 -0
  969. package/dist/types/components/fab/fab.d.ts +73 -0
  970. package/dist/types/components/fab-item/fab-item.d.ts +14 -0
  971. package/dist/types/components/fab-item/types.d.ts +3 -0
  972. package/dist/types/components/file-upload/file-upload.d.ts +91 -0
  973. package/dist/types/components/file-upload/types.d.ts +15 -0
  974. package/dist/types/components/horizontal-nav/horizontal-nav.d.ts +68 -0
  975. package/dist/types/components/icon/icon.d.ts +66 -0
  976. package/dist/types/components/image-button/image-button.d.ts +31 -0
  977. package/dist/types/components/image-button/types.d.ts +1 -0
  978. package/dist/types/components/input/input.d.ts +217 -0
  979. package/dist/types/components/input/types.d.ts +6 -0
  980. package/dist/types/components/input-pair/input-pair.d.ts +28 -0
  981. package/dist/types/components/knob/knob.d.ts +147 -0
  982. package/dist/types/components/knob/types.d.ts +4 -0
  983. package/dist/types/components/layout-manager/layout-manager.d.ts +32 -0
  984. package/dist/types/components/layout-manager/lm-container/lm-container.d.ts +7 -0
  985. package/dist/types/components/layout-manager/lm-floating-window/lm-floating-window.d.ts +6 -0
  986. package/dist/types/components/layout-manager/lm-panel/lm-panel.d.ts +7 -0
  987. package/dist/types/components/layout-manager/lm-splitter/lm-splitter.d.ts +12 -0
  988. package/dist/types/components/layout-manager/lm-tabs/lm-tabs.d.ts +12 -0
  989. package/dist/types/components/layout-manager/types.d.ts +1 -0
  990. package/dist/types/components/library/category-section.d.ts +15 -0
  991. package/dist/types/components/library/data.d.ts +11 -0
  992. package/dist/types/components/library/library-card.d.ts +19 -0
  993. package/dist/types/components/library/library.d.ts +9 -0
  994. package/dist/types/components/list/list.d.ts +183 -0
  995. package/dist/types/components/list-group/list-group.d.ts +28 -0
  996. package/dist/types/components/list-item/list-item.d.ts +200 -0
  997. package/dist/types/components/masonry/masonry.d.ts +105 -0
  998. package/dist/types/components/masonry/types.d.ts +5 -0
  999. package/dist/types/components/meter-group/meter-group.d.ts +66 -0
  1000. package/dist/types/components/meter-group/types.d.ts +12 -0
  1001. package/dist/types/components/my-component/my-component.d.ts +16 -0
  1002. package/dist/types/components/my-step/index.d.ts +12 -0
  1003. package/dist/types/components/my-step/my-step.d.ts +13 -0
  1004. package/dist/types/components/nav-bar/nav-bar.d.ts +119 -0
  1005. package/dist/types/components/number-input/number-input.d.ts +72 -0
  1006. package/dist/types/components/otp-input/otp-input.d.ts +64 -0
  1007. package/dist/types/components/otp-input/types.d.ts +3 -0
  1008. package/dist/types/components/pagination/pagination.d.ts +295 -0
  1009. package/dist/types/components/pagination/types.d.ts +1 -0
  1010. package/dist/types/components/panel/panel.d.ts +275 -0
  1011. package/dist/types/components/panel/types.d.ts +7 -0
  1012. package/dist/types/components/pattern-input/pattern-input.d.ts +88 -0
  1013. package/dist/types/components/popover/popover.d.ts +161 -0
  1014. package/dist/types/components/popover/types.d.ts +3 -0
  1015. package/dist/types/components/progress/progress.d.ts +224 -0
  1016. package/dist/types/components/progress/types.d.ts +6 -0
  1017. package/dist/types/components/radio/radio.d.ts +87 -0
  1018. package/dist/types/components/radio/types.d.ts +7 -0
  1019. package/dist/types/components/radio-group/radio-group.d.ts +74 -0
  1020. package/dist/types/components/radio-group/types.d.ts +2 -0
  1021. package/dist/types/components/range-slider/range-slider.d.ts +201 -0
  1022. package/dist/types/components/range-slider/types.d.ts +4 -0
  1023. package/dist/types/components/rating/rating.d.ts +127 -0
  1024. package/dist/types/components/rating/types.d.ts +1 -0
  1025. package/dist/types/components/resizable-panel/resizable-panel.d.ts +59 -0
  1026. package/dist/types/components/resizable-panel/types.d.ts +11 -0
  1027. package/dist/types/components/scroll-top/scroll-top.d.ts +186 -0
  1028. package/dist/types/components/scroll-top/types.d.ts +1 -0
  1029. package/dist/types/components/skeleton/skeleton-loader.d.ts +149 -0
  1030. package/dist/types/components/skeleton/types.d.ts +1 -0
  1031. package/dist/types/components/smart-location-dropdown/smart-location-dropdown.d.ts +119 -0
  1032. package/dist/types/components/smart-location-dropdown/types.d.ts +37 -0
  1033. package/dist/types/components/smart-menu/menu-item.interface.d.ts +10 -0
  1034. package/dist/types/components/smart-menu/smart-menu.d.ts +64 -0
  1035. package/dist/types/components/smart-stepper/smart-step.d.ts +29 -0
  1036. package/dist/types/components/smart-stepper/smart-stepper.d.ts +53 -0
  1037. package/dist/types/components/snackbar/snackbar.d.ts +223 -0
  1038. package/dist/types/components/snackbar/types.d.ts +104 -0
  1039. package/dist/types/components/speed-dial/speed-dial.d.ts +171 -0
  1040. package/dist/types/components/speed-dial/types.d.ts +11 -0
  1041. package/dist/types/components/speedometer/speedometer.d.ts +125 -0
  1042. package/dist/types/components/speedometer/types.d.ts +8 -0
  1043. package/dist/types/components/splitter/splitter.d.ts +63 -0
  1044. package/dist/types/components/splitter/types.d.ts +9 -0
  1045. package/dist/types/components/stack/stack.d.ts +34 -0
  1046. package/dist/types/components/stack/types.d.ts +3 -0
  1047. package/dist/types/components/step/step.d.ts +16 -0
  1048. package/dist/types/components/step/types.d.ts +1 -0
  1049. package/dist/types/components/stepper/stepper.d.ts +218 -0
  1050. package/dist/types/components/stepper/types.d.ts +39 -0
  1051. package/dist/types/components/switch/switch.d.ts +162 -0
  1052. package/dist/types/components/tabs/tabs.d.ts +182 -0
  1053. package/dist/types/components/tabs/types.d.ts +17 -0
  1054. package/dist/types/components/tag/tag.d.ts +172 -0
  1055. package/dist/types/components/tag/types.d.ts +4 -0
  1056. package/dist/types/components/tag-group/tag-group.d.ts +107 -0
  1057. package/dist/types/components/tag-group/types.d.ts +2 -0
  1058. package/dist/types/components/timeline/timeline.d.ts +73 -0
  1059. package/dist/types/components/timeline/types.d.ts +28 -0
  1060. package/dist/types/components/timeline/ui-timeline.stories.d.ts +9 -0
  1061. package/dist/types/components/timeline-item/timeline-item.d.ts +15 -0
  1062. package/dist/types/components/timer/timer.d.ts +123 -0
  1063. package/dist/types/components/timer/types.d.ts +18 -0
  1064. package/dist/types/components/timer/ui-timer.stories.d.ts +9 -0
  1065. package/dist/types/components/toggle-group/toggle-group.d.ts +136 -0
  1066. package/dist/types/components/toggle-group/types.d.ts +5 -0
  1067. package/dist/types/components/toolbar/toolbar-types.d.ts +189 -0
  1068. package/dist/types/components/toolbar/toolbar.d.ts +150 -0
  1069. package/dist/types/components/tooltip/tooltip.d.ts +166 -0
  1070. package/dist/types/components/tooltip/types.d.ts +3 -0
  1071. package/dist/types/components/top-bar/top-bar.d.ts +76 -0
  1072. package/dist/types/components/transfer-list/transfer-list.d.ts +137 -0
  1073. package/dist/types/components/transfer-list/types.d.ts +13 -0
  1074. package/dist/types/components/tree/tree.d.ts +180 -0
  1075. package/dist/types/components/tree/types.d.ts +76 -0
  1076. package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-bar.d.ts +108 -0
  1077. package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-types.d.ts +17 -0
  1078. package/dist/types/components/ui-navigation-bar/navigation-item.d.ts +26 -0
  1079. package/dist/types/components/ui-navigation-bar/navigation-types.d.ts +19 -0
  1080. package/dist/types/components/workspace-manager/types.d.ts +48 -0
  1081. package/dist/types/components/workspace-manager/workspace-manager.d.ts +211 -0
  1082. package/dist/types/components.d.ts +29634 -0
  1083. package/dist/types/index.d.ts +21 -0
  1084. package/dist/types/service/drag-manager.d.ts +8 -0
  1085. package/dist/types/service/event-bus.d.ts +9 -0
  1086. package/dist/types/service/serialization.d.ts +5 -0
  1087. package/dist/types/service/state-engine.d.ts +25 -0
  1088. package/dist/types/service/theme-switcher.d.ts +46 -0
  1089. package/dist/types/stencil-public-runtime.d.ts +1860 -0
  1090. package/dist/types/types/animation.type.d.ts +96 -0
  1091. package/dist/types/types/common.d.ts +52 -0
  1092. package/dist/types/types/common.type.d.ts +608 -0
  1093. package/dist/types/types/index.d.ts +37 -0
  1094. package/dist/types/types/text.type.d.ts +32 -0
  1095. package/dist/types/utils/aria-live.d.ts +20 -0
  1096. package/dist/types/utils/component-size.d.ts +2 -0
  1097. package/dist/types/utils/dom.d.ts +58 -0
  1098. package/dist/types/utils/focus-trap.d.ts +35 -0
  1099. package/dist/types/utils/security.d.ts +5 -0
  1100. package/dist/types/utils/test/setup-component-test-env.d.ts +14 -0
  1101. package/dist/types/utils/utils.d.ts +7 -0
  1102. package/dist/types/utils/validation.d.ts +43 -0
  1103. package/loader/cdn.js +1 -0
  1104. package/loader/index.cjs.js +1 -0
  1105. package/loader/index.d.ts +24 -0
  1106. package/loader/index.es2017.js +1 -0
  1107. package/loader/index.js +2 -0
  1108. package/package.json +77 -0
@@ -0,0 +1,1621 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-ClkOYpT8.js');
4
+
5
+ const paginationCss = () => `@charset "UTF-8";.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;position:relative;z-index:0}:host(.has-open-dropdown){z-index:100}.ui-pagination{display:flex;align-items:center;gap:8px;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}.ui-pagination.pagination-sm{font-size:12px}.ui-pagination.pagination-md{font-size:14px}.ui-pagination.pagination-lg{font-size:16px}.ui-pagination.pagination-default .pagination-btn{cursor:pointer;border-radius:8px}.ui-pagination.pagination-outlined .pagination-btn{cursor:pointer;border-radius:8px}.ui-pagination.pagination-filled .pagination-btn{cursor:pointer;border-radius:8px}.ui-pagination.pagination-floating{background:var(--bg-primary, #ffffff);padding:8px 16px;border-radius:50px;box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);border:1px solid var(--border-default, #e5e7eb);width:fit-content}.ui-pagination.pagination-glass{background:rgba(255, 255, 255, 0.1);backdrop-filter:blur(12px);padding:10px 20px;border-radius:16px;border:1px solid rgba(255, 255, 255, 0.2);box-shadow:0 8px 32px 0 rgba(31, 38, 135, 0.15);width:fit-content}.ui-pagination.pagination-soft{gap:12px}.ui-pagination.pagination-modern{background:var(--bg-primary, #ffffff);padding:12px 24px;border-radius:24px;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.05), 0 10px 10px -5px rgba(0, 0, 0, 0.02);border:1px solid var(--border-default, #f3f4f6);gap:16px;width:fit-content}.ui-pagination.pagination-modern .pagination-btn.active{box-shadow:0 4px 12px rgba(var(--color-primary-rgb, 59, 130, 246), 0.3)}.ui-pagination.pagination-minimalist{gap:20px;padding:4px}.ui-pagination.pagination-minimalist .pagination-btn{position:relative}.ui-pagination.pagination-minimalist .pagination-btn:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);width:0;height:2px;background:var(--color-primary, #10b981);transition:width 0.3s ease}.ui-pagination.pagination-minimalist .pagination-btn.active:after{width:80%}.ui-pagination.pagination-premium{background:var(--bg-primary, #ffffff);padding:12px 28px;border-radius:40px;box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.1), 0 10px 15px -5px rgba(0, 0, 0, 0.04);border:none;gap:12px;width:fit-content}.ui-pagination.pagination-premium .pagination-btn.active{background:linear-gradient(135deg, var(--color-primary, #6366f1), var(--color-primary-hover, #4f46e5)) !important;color:white !important;box-shadow:0 10px 20px -5px rgba(var(--color-primary-rgb, 99, 102, 241), 0.5);transform:scale(1.1);transition:all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.ui-pagination.pagination-premium .pagination-btn:hover:not(.active):not(.disabled){background:var(--bg-secondary, #f8fafc);transform:translateY(-2px)}.ui-pagination.pagination-underline{gap:12px}.ui-pagination.pagination-underline .pagination-btn.active{position:relative;color:var(--color-primary, #10b981) !important;background:transparent !important}.ui-pagination.pagination-underline .pagination-btn.active::after{content:"";position:absolute;bottom:2px;left:20%;right:20%;height:2px;background:var(--color-primary, #10b981);border-radius:2px;box-shadow:0 2px 4px rgba(var(--color-primary-rgb, 16, 185, 129), 0.3)}.pagination-main-content{display:flex;align-items:center;justify-content:center;flex:1}.ui-pagination.pagination-has-container{justify-content:center;margin-left:auto;margin-right:auto}.ui-pagination.pagination-segmented{gap:0;width:fit-content;border-radius:8px;overflow:hidden;border:1px solid var(--border-default, #e5e7eb);background:var(--bg-primary, #ffffff)}.ui-pagination.pagination-segmented.pagination-shape-pill{border-radius:30px}.ui-pagination.pagination-segmented.pagination-shape-pill .pagination-btn:first-child{border-top-left-radius:30px !important;border-bottom-left-radius:30px !important}.ui-pagination.pagination-segmented.pagination-shape-pill .pagination-btn:last-child{border-top-right-radius:30px !important;border-bottom-right-radius:30px !important}.ui-pagination.pagination-segmented .pagination-btn,.ui-pagination.pagination-segmented .pagination-label,.ui-pagination.pagination-segmented .pagination-pages{border-radius:0 !important;border:none !important;margin:0 !important;display:flex;align-items:center}.ui-pagination.pagination-segmented .pagination-pages{gap:0;border-left:1px solid var(--border-default, #e5e7eb) !important;border-right:1px solid var(--border-default, #e5e7eb) !important}.ui-pagination.pagination-segmented .pagination-label{padding:0 16px;font-weight:600;font-size:13px;color:var(--text-secondary, #374151);border-left:1px solid var(--border-default, #e5e7eb) !important;border-right:1px solid var(--border-default, #e5e7eb) !important;background:var(--bg-primary, #ffffff);height:100%;min-height:36px}.ui-pagination.pagination-segmented .pagination-btn:not(:last-child){border-right:1px solid var(--border-default, #e5e7eb) !important}.ui-pagination.pagination-arrows-joined .pagination-prev{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important;border-right:none !important}.ui-pagination.pagination-arrows-joined .pagination-next{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.pagination-joined{display:flex;gap:0}.ui-pagination.pagination-vertical{flex-direction:column;width:fit-content;height:auto;gap:12px}.ui-pagination.pagination-vertical .pagination-pages,.ui-pagination.pagination-vertical .pagination-indicators,.ui-pagination.pagination-vertical .pagination-input-container,.ui-pagination.pagination-vertical .pagination-dropdown-container,.ui-pagination.pagination-vertical .pagination-joined{flex-direction:column}.ui-pagination.pagination-vertical.pagination-segmented{border-radius:8px}.ui-pagination.pagination-vertical.pagination-segmented .pagination-btn,.ui-pagination.pagination-vertical.pagination-segmented .pagination-label,.ui-pagination.pagination-vertical.pagination-segmented .pagination-pages{width:100%;border-right:none !important;border-bottom:1px solid var(--border-default, #e5e7eb) !important}.ui-pagination.pagination-vertical.pagination-segmented .pagination-btn:last-child,.ui-pagination.pagination-vertical.pagination-segmented .pagination-label:last-child,.ui-pagination.pagination-vertical.pagination-segmented .pagination-pages:last-child{border-bottom:none !important}.ui-pagination.pagination-vertical.pagination-segmented.pagination-shape-pill{border-radius:20px}.ui-pagination.pagination-vertical.pagination-segmented.pagination-shape-pill .pagination-btn:first-child{border-radius:20px 20px 0 0 !important}.ui-pagination.pagination-vertical.pagination-segmented.pagination-shape-pill .pagination-btn:last-child{border-radius:0 0 20px 20px !important}.ui-pagination.pagination-vertical.pagination-arrows-joined .pagination-prev{border-bottom-left-radius:0 !important;border-bottom-right-radius:0 !important;border-bottom:none !important}.ui-pagination.pagination-vertical.pagination-arrows-joined .pagination-next{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.ui-pagination.pagination-vertical.pagination-underline .pagination-btn.active::after{bottom:20%;top:20%;left:2px;right:auto;width:2px;height:auto}.pagination-btn.disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.pagination-btn:focus{outline:none;box-shadow:0 0 0 2px var(--bg-primary, #ffffff), 0 0 0 4px var(--color-primary, #10b981)}.pagination-btn svg{display:inline-flex;vertical-align:middle;width:16px;height:16px}.ui-pagination.pagination-sm .pagination-btn svg{width:14px;height:14px}.ui-pagination.pagination-lg .pagination-btn svg{width:18px;height:18px}.pagination-basic{display:flex;align-items:center;gap:4px}.pagination-pages{display:flex;align-items:center;gap:2px}.pagination-compact{display:flex;align-items:center;gap:12px}.pagination-info{font-weight:500;color:var(--text-secondary, #374151);white-space:nowrap}.pagination-detailed{display:flex;flex-direction:column;gap:16px;align-items:center}.pagination-details{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}.pagination-total{color:var(--text-muted, #6b7280);font-size:0.875em;margin-left:auto}.pagination-size-selector{display:flex;align-items:center;gap:8px;font-size:0.875em;position:relative;z-index:1}.pagination-size-selector .pagination-size-label{color:var(--text-secondary, #374151);font-weight:500}.pagination-size-selector .pagination-size-suffix{color:var(--text-muted, #64748b)}.pg-dropdown{position:relative;display:inline-flex}.pg-dropdown-open-host{z-index:30}.pg-dropdown-trigger{display:inline-flex;align-items:center;gap:6px;background:var(--bg-primary, #ffffff);border:1.5px solid var(--border-default, #e2e8f0);border-radius:20px;padding:5px 10px 5px 12px;font-size:13px;font-weight:600;font-family:inherit;color:var(--text-primary, #1e293b);cursor:pointer;outline:none;transition:all 0.2s ease;white-space:nowrap}.pg-dropdown-trigger:hover{border-color:var(--color-primary, #3b82f6);box-shadow:0 2px 8px rgba(59, 130, 246, 0.12)}.pg-dropdown-trigger.pg-dropdown-open{border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.12)}.pg-dropdown-trigger:disabled{opacity:0.5;cursor:not-allowed}.pg-dropdown-trigger-wide{min-width:110px;justify-content:space-between}.pg-dropdown-arrow{flex-shrink:0;transition:transform 0.2s ease;opacity:0.6}.pg-arrow-up{transform:rotate(180deg)}.pg-dropdown-panel{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);min-width:100%;width:max-content;background:var(--bg-primary, #ffffff);border:1px solid var(--border-default, #e2e8f0);border-radius:18px;box-shadow:0 12px 40px rgba(0, 0, 0, 0.18), 0 4px 12px rgba(0, 0, 0, 0.1);z-index:100;padding:6px;overflow:hidden;animation:pgDropdownIn 0.15s ease-out}.pg-dropdown-panel-scroll{max-height:220px;overflow-y:auto;scrollbar-width:thin}.pg-dropdown-panel-scroll::-webkit-scrollbar{width:4px}.pg-dropdown-panel-scroll::-webkit-scrollbar-track{background:transparent}.pg-dropdown-panel-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}@keyframes pgDropdownIn{from{opacity:0;transform:translateX(-50%) translateY(-4px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.pg-dropdown-item{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px;border-radius:12px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-primary, #1e293b);transition:background 0.15s ease;white-space:nowrap}.pg-dropdown-item:hover{background:var(--bg-secondary, #f1f5f9)}.pg-dropdown-item-selected{background:#ecfdf5 !important;color:#059669 !important;font-weight:700}.pg-dropdown-item-selected:hover{background:#d1fae5 !important}.pg-dropdown-check{flex-shrink:0;color:#059669}.pagination-size-premium{gap:12px}.pagination-jump{display:flex;align-items:center;gap:8px;font-size:0.875em}.pagination-jump label{color:var(--text-secondary, #374151)}.pagination-jump input{width:44px;padding:4px 8px;border:1px solid var(--border-strong, #d1d5db);border-radius:8px;text-align:center;transition:all 0.2s ease}.pagination-jump input:focus{outline:none;border-color:var(--color-primary, #10b981);box-shadow:0 0 0 2px var(--bg-primary, #ffffff), 0 0 0 4px var(--color-primary, #10b981)}.pagination-jump-btn{margin-left:4px}.pagination-minimal{display:flex;align-items:center;gap:8px}.pagination-input-group{display:flex;align-items:center;gap:8px}.pagination-page-input{min-width:0 !important;text-align:center;font-size:inherit}.pagination-separator{color:var(--text-muted, #6b7280);font-weight:500}.pagination-total-pages{font-weight:500;color:var(--text-secondary, #374151)}.pagination-advanced{display:flex;flex-direction:column;gap:16px;align-items:center}.pagination-controls{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:space-between;width:100%}.pagination-summary{color:var(--text-muted, #6b7280);font-size:0.875em}.pagination-jump-section{display:flex;align-items:center;gap:8px;font-size:0.875em}.pagination-jump-section label{color:var(--text-secondary, #374151)}.pagination-jump-section input{width:44px;padding:4px 8px;border:1px solid var(--border-strong, #d1d5db);border-radius:8px;text-align:center}.pagination-infinite{display:flex;flex-direction:column;align-items:center;gap:12px}.pagination-loading{display:flex;align-items:center;justify-content:center}.pagination-infinite-info{color:var(--text-muted, #6b7280);font-size:0.875em}.pagination-spinner{width:24px;height:24px;border:2px solid var(--border-default, #e5e7eb);border-top:2px solid var(--color-primary, #10b981);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@media (max-width: 640px){.ui-pagination{flex-wrap:wrap;justify-content:center}.pagination-detailed .pagination-details,.pagination-advanced .pagination-controls{flex-direction:column;gap:12px}.pagination-basic{flex-wrap:wrap}.pagination-pages{order:2;width:100%;justify-content:center}.pagination-first,.pagination-prev{order:1}.pagination-next,.pagination-last{order:3}}@media (prefers-color-scheme: dark){.ui-pagination.pagination-default .pagination-btn{background-color:var(--bg-primary, var(--text-primary, #1f2937));border-color:var(--border-default, #374151);color:var(--text-standard, #f9fafb)}.ui-pagination.pagination-default .pagination-btn:hover:not(.disabled):not(.active){background-color:var(--text-secondary, #374151);border-color:var(--border-strong, #4b5563)}.ui-pagination.pagination-outlined .pagination-btn{border-color:var(--border-default, #374151);color:var(--text-standard, #f9fafb)}.ui-pagination.pagination-outlined .pagination-btn:hover:not(.disabled):not(.active){border-color:var(--border-strong, #4b5563);background-color:var(--text-secondary, #374151)}.ui-pagination.pagination-filled .pagination-btn{background-color:var(--text-secondary, #374151);color:var(--text-standard, #f9fafb)}.ui-pagination.pagination-filled .pagination-btn:hover:not(.disabled):not(.active){background-color:var(--text-secondary, #4b5563)}.pagination-info,.pagination-total,.pagination-size-selector label,.pagination-jump label,.pagination-separator,.pagination-total-pages,.pagination-summary,.pagination-jump-section label,.pagination-infinite-info{color:var(--bg-secondary, #d1d5db)}.pagination-size-selector select,.pagination-jump input,.pagination-page-input,.pagination-jump-section input{background-color:var(--bg-primary, var(--text-primary, #1f2937));border-color:var(--border-default, #374151);color:var(--text-standard, #f9fafb);border-radius:8px}.ui-pagination.pagination-floating{background-color:var(--bg-primary, #111827);border-color:var(--border-default, #374151);box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.3)}.ui-pagination.pagination-glass{background-color:rgba(15, 23, 42, 0.4);border-color:rgba(255, 255, 255, 0.05);box-shadow:0 8px 32px 0 rgba(0, 0, 0, 0.6)}.ui-pagination.pagination-modern{background-color:var(--bg-primary, #111827);border-color:var(--border-default, #1f2937);box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.6)}.ui-pagination.pagination-premium{background-color:var(--bg-primary, #111827);box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.7)}.ui-pagination.pagination-premium .pagination-btn:hover:not(.active):not(.disabled){background:var(--bg-secondary, #1e293b)}.ui-pagination.pagination-segmented{background-color:var(--bg-primary, #111827);border-color:var(--border-default, #1f2937)}.ui-pagination.pagination-segmented .pagination-btn,.ui-pagination.pagination-segmented .pagination-label,.ui-pagination.pagination-segmented .pagination-pages{border-color:var(--border-default, #1f2937) !important}.ui-pagination.pagination-segmented .pagination-label{background-color:var(--bg-primary, #111827);color:var(--text-standard, #f9fafb)}.ui-pagination.pagination-underline .pagination-btn.active::after{background:var(--color-primary, #60a5fa);box-shadow:0 2px 8px rgba(96, 165, 250, 0.5)}}.pagination-dropdown-container{display:inline-flex;align-items:center;position:relative;isolation:isolate;overflow:visible;background:var(--bg-primary, #ffffff);padding:6px;border-radius:40px;box-shadow:0 10px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.05);border:1px solid var(--border-default, rgba(226, 232, 240, 0.8));gap:8px;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.pagination-dropdown-container:hover{box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);border-color:var(--color-primary-light, rgba(59, 130, 246, 0.2));transform:translateY(-1px)}.pagination-dropdown-wrapper{position:relative;display:flex;align-items:center;min-width:130px;justify-content:center;z-index:2}.pagination-dropdown-wrapper ui-dropdown{width:100%;--dd-shadow:none;}.pagination-dropdown-wrapper-open{z-index:30}.pagination-total{padding:0 12px;color:var(--text-muted, #64748b);font-size:13px;font-weight:600;border-right:1px solid var(--border-default, #e2e8f0);height:24px;display:flex;align-items:center;letter-spacing:-0.01em}.pagination-dropdown-container .pagination-size-selector,.pagination-input-container .pagination-size-selector{padding:0 12px;border-right:1px solid var(--border-default, #e2e8f0);height:24px;font-size:12px;gap:6px}.pagination-dropdown-container .pagination-size-selector .pagination-size-label,.pagination-input-container .pagination-size-selector .pagination-size-label{color:var(--text-muted, #94a3b8);font-weight:700;text-transform:uppercase;font-size:10px;letter-spacing:0.05em}.pagination-dropdown-container .pagination-size-selector .pagination-size-suffix,.pagination-input-container .pagination-size-selector .pagination-size-suffix{display:none}.pagination-dropdown-container .pagination-size-selector ui-dropdown,.pagination-input-container .pagination-size-selector ui-dropdown{width:auto;min-width:50px;--dropdown-trigger-padding:0 8px;--dropdown-trigger-height:28px;--dropdown-trigger-bg:transparent;--dropdown-trigger-border:none;--dropdown-value-font-size:13px;--dropdown-value-font-weight:600}.pagination-input-container{display:inline-flex;align-items:center;position:relative;isolation:isolate;overflow:visible;background:var(--bg-primary, rgba(255, 255, 255, 0.95));backdrop-filter:blur(8px);padding:2px 6px;border-radius:40px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.05);border:1.5px solid var(--border-default, #e2e8f0);gap:6px;transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1)}.pagination-page-input{flex:none !important;width:auto;min-width:44px}.pagination-page-input ui-input{--input-text-align:center;--input-border-radius:20px;--input-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.02);--input-height:28px;--input-font-size:13px;--input-font-weight:700;--input-border-color:#e2e8f0;--input-padding-inline:4px}.pagination-input-label{font-size:13px;font-weight:500;color:var(--text-muted, #94a3b8);display:flex;gap:1rem;align-items:center}.pagination-input-label strong{color:var(--text-primary, #1e293b);font-weight:700;font-size:14px}.pagination-dropdown-container .pagination-btn,.pagination-input-container .pagination-btn{position:relative;z-index:1;width:32px;height:32px;border-radius:50% !important;display:flex;align-items:center;justify-content:center;transition:all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);background:transparent !important;border:none !important;color:var(--text-secondary, #475569) !important}.pagination-dropdown-container .pagination-btn:hover:not(.disabled),.pagination-input-container .pagination-btn:hover:not(.disabled){background:var(--bg-secondary, #f8fafc) !important;transform:scale(1.15);color:var(--color-primary, #2563eb) !important}.pagination-dropdown-container .pagination-btn:active:not(.disabled),.pagination-input-container .pagination-btn:active:not(.disabled){transform:scale(0.95)}.pagination-dropdown-container .pagination-btn svg,.pagination-input-container .pagination-btn svg{width:18px;height:18px}.ui-pagination.pagination-dropdown-open .pagination-dropdown-container .pagination-btn,.ui-pagination.pagination-dropdown-open .pagination-input-container .pagination-btn{z-index:1}@media (prefers-color-scheme: dark){.pagination-dropdown-container,.pagination-input-container{background:var(--bg-primary, #0f172a);border-color:rgba(255, 255, 255, 0.05);box-shadow:0 10px 40px -10px rgba(0, 0, 0, 0.5)}.pagination-total{border-color:rgba(255, 255, 255, 0.1);color:#94a3b8}.pagination-dropdown-container .pagination-size-selector,.pagination-input-container .pagination-size-selector{border-color:rgba(255, 255, 255, 0.1)}.pagination-dropdown-container .pagination-size-selector .pagination-size-label,.pagination-input-container .pagination-size-selector .pagination-size-label{color:#64748b}.pagination-input-label strong{color:#f1f5f9}.pagination-btn:hover:not(.disabled){background:rgba(255, 255, 255, 0.05) !important}}.pagination-page-input.has-error{border-color:var(--color-danger, #ef4444) !important;background-color:var(--color-danger-light, rgba(239, 68, 68, 0.05)) !important}.pagination-error-message{position:absolute;top:100%;left:50%;transform:translateX(-50%);background:var(--color-danger, #ef4444);color:white;padding:4px 10px;border-radius:4px;font-size:11px;margin-top:8px;white-space:nowrap;z-index:10;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1)}.pagination-error-message::before{content:"";position:absolute;top:-4px;left:50%;transform:translateX(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid var(--color-danger, #ef4444)}.ui-pagination.pagination-sm .pagination-error-message{font-size:10px;padding:2px 8px}.pagination-indicator-container{display:flex;align-items:center;gap:16px}.pagination-indicators{display:flex;align-items:center;gap:8px}.pagination-indicator{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease}.pagination-indicator-dot{width:8px;height:8px;border-radius:50%;background-color:var(--inactive-color, #cbd5e1);transition:all 0.3s ease}.pagination-indicator:hover .pagination-indicator-dot{background-color:var(--hover-color, #94a3b8);transform:scale(1.2)}.pagination-indicator-active .pagination-indicator-dot{background-color:var(--primary-color, var(--color-primary, #10b981));transform:scale(1.5)}.pagination-indicator-label{position:absolute;top:-30px;background-color:var(--primary-color, var(--color-primary, #10b981));color:var(--text-standard, #ffffff);padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap;animation:indicatorSlideIn 0.2s ease}.pagination-indicator-label::after{content:"";position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--primary-color, var(--color-primary, #10b981))}@keyframes indicatorSlideIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.pagination-nav-btn:disabled{opacity:0.4;cursor:not-allowed}.pagination-nav-btn svg{width:16px;height:16px}.ui-pagination.pagination-sm .pagination-indicator-dot{width:6px;height:6px}.ui-pagination.pagination-sm .pagination-nav-btn{width:28px;height:28px}.ui-pagination.pagination-sm .pagination-indicator-label{font-size:10px;padding:2px 8px;top:-26px}.ui-pagination.pagination-lg .pagination-indicator-dot{width:10px;height:10px}.ui-pagination.pagination-lg .pagination-nav-btn{width:40px;height:40px}.ui-pagination.pagination-lg .pagination-nav-btn svg{width:20px;height:20px}.ui-pagination.pagination-lg .pagination-indicator-label{font-size:14px;padding:6px 12px;top:-36px}@media (prefers-color-scheme: dark){.pagination-indicator-dot{background-color:var(--inactive-color, #475569)}.pagination-indicator:hover .pagination-indicator-dot{background-color:var(--hover-color, var(--text-muted, #64748b))}.pagination-indicator-active .pagination-indicator-dot{background-color:var(--primary-color, #60a5fa)}.pagination-indicator-label{background-color:var(--primary-color, #60a5fa)}.pagination-indicator-label::after{border-top-color:var(--primary-color, #60a5fa)}.pagination-nav-btn{background-color:var(--bg-color, var(--bg-primary, var(--text-primary, #1f2937)));border-color:var(--border-color, var(--border-default, #374151));color:var(--text-color, #d1d5db)}.pagination-nav-btn:hover:not(:disabled){background-color:var(--hover-bg, var(--text-secondary, #374151));border-color:var(--primary-color, #60a5fa);color:var(--primary-color, #60a5fa)}}.sr-only{position:absolute;width:0px;height:0px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none}.ui-pagination.pagination-shape-rounded .pagination-btn{border-radius:12px !important}.ui-pagination.pagination-shape-pill .pagination-btn{border-radius:24px !important;padding-left:16px !important;padding-right:16px !important}.ui-pagination.pagination-shape-circle .pagination-btn{border-radius:50% !important;width:36px !important;height:36px !important;min-width:36px !important;padding:0 !important;display:inline-flex !important;align-items:center !important;justify-content:center !important}.pagination-rtl{direction:rtl}.pagination-rtl .pagination-pages{flex-direction:row-reverse}@media (max-width: 768px){.pagination-mobile .pagination-btn{min-width:36px;height:36px;padding:8px;font-size:14px}.pagination-mobile .pagination-pages{gap:4px}.pagination-mobile .pagination-total,.pagination-mobile .pagination-summary{font-size:12px}}.ui-pagination:focus{outline:none;box-shadow:0 0 0 2px var(--bg-primary, #ffffff), 0 0 0 4px var(--color-primary, #10b981);border-radius:8px}.ui-pagination:focus:not(:focus-visible){outline:none}.pagination-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-primary, #ffffff), 0 0 0 4px var(--color-primary, #10b981)}@media (prefers-reduced-motion: reduce){.pagination-btn,.pagination-indicator{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.pagination-transitioning .pagination-btn.active{animation:pageTransition 0.3s ease}@keyframes pageTransition{0%{transform:scale(0.95);opacity:0.7}100%{transform:scale(1);opacity:1}}.pagination-sticky{position:sticky;z-index:100;background:var(--bg-primary, #ffffff);box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);padding:12px 16px;border-radius:8px}.pagination-sticky-top{top:0}.pagination-sticky-bottom{bottom:0}.pagination-progress-bar{width:100%;height:3px;background:var(--bg-primary, #e5e7eb);border-radius:2px;overflow:hidden;margin-bottom:12px}.pagination-progress-fill{height:100%;background:linear-gradient(90deg, var(--color-primary, #10b981), var(--color-primary, #8b5cf6));transition:width 0.3s ease}.pagination-theme-primary .pagination-progress-fill{background:linear-gradient(90deg, var(--color-primary, #10b981), var(--color-primary, #60a5fa))}.pagination-theme-success .pagination-progress-fill{background:linear-gradient(90deg, var(--color-success, #10b981), var(--color-success, #34d399))}.pagination-theme-danger .pagination-progress-fill{background:linear-gradient(90deg, var(--color-danger, #ef4444), var(--color-danger, #f87171))}.pagination-theme-warning .pagination-progress-fill{background:linear-gradient(90deg, var(--color-warning, #f59e0b), var(--color-danger, #fbbf24))}.pagination-theme-info .pagination-progress-fill{background:linear-gradient(90deg, var(--color-info, #06b6d4), var(--color-primary, #22d3ee))}@media (max-width: 768px){.ui-pagination{touch-action:pan-y;user-select:none}}@media (prefers-reduced-motion: reduce){.pagination-transitioning .pagination-btn.active{animation:none}.pagination-progress-fill{transition:none}}.pagination-quick-jump{background:var(--bg-secondary, #f3f4f6) !important;border:1px solid var(--border-strong, #d1d5db) !important;color:var(--text-muted, #6b7280) !important;font-weight:600;font-size:0.875em;min-width:44px !important}.pagination-quick-jump:hover:not(:disabled){background:var(--bg-primary, #e5e7eb) !important;border-color:var(--color-primary, #9ca3af) !important;color:var(--text-secondary, #374151) !important}.pagination-quick-jump:active:not(:disabled){transform:scale(0.95)}.pagination-theme-primary .pagination-quick-jump:hover:not(:disabled){background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.1) !important;border-color:var(--color-primary, #10b981) !important;color:var(--color-primary, #10b981) !important}.pagination-theme-success .pagination-quick-jump:hover:not(:disabled){background:rgba(var(--color-success-rgb, 16, 185, 129), 0.1) !important;border-color:var(--color-success, #10b981) !important;color:var(--color-success, #10b981) !important}.pagination-theme-danger .pagination-quick-jump:hover:not(:disabled){background:rgba(var(--color-danger-rgb, 239, 68, 68), 0.1) !important;border-color:var(--color-danger, #ef4444) !important;color:var(--color-danger, #ef4444) !important}`;
6
+
7
+ const Pagination = class {
8
+ constructor(hostRef) {
9
+ index.registerInstance(this, hostRef);
10
+ this.pageChange = index.createEvent(this, "pageChange");
11
+ this.itemsPerPageChange = index.createEvent(this, "itemsPerPageChange");
12
+ this.validationError = index.createEvent(this, "validationError");
13
+ }
14
+ get el() { return index.getElement(this); }
15
+ /**
16
+ * Hide navigation buttons (next, previous, first, last) in dropdown/input modes
17
+ */
18
+ hideNavButtons = false;
19
+ /**
20
+ * Current active page (1-based)
21
+ */
22
+ currentPage = 1;
23
+ /**
24
+ * Total number of items
25
+ */
26
+ totalItems = 0;
27
+ /**
28
+ * Number of items per page
29
+ */
30
+ itemsPerPage = 10;
31
+ /**
32
+ * Maximum number of page buttons to show
33
+ */
34
+ maxVisiblePages = 5;
35
+ /**
36
+ * Type of pagination to display
37
+ */
38
+ type = 'basic';
39
+ /**
40
+ * Size of the pagination component
41
+ */
42
+ size = 'md';
43
+ /**
44
+ * Visual variant of the pagination
45
+ */
46
+ variant = 'default';
47
+ /**
48
+ * Color theme
49
+ */
50
+ theme = 'primary';
51
+ /**
52
+ * Whether to show first/last buttons
53
+ */
54
+ showFirstLast = true;
55
+ /**
56
+ * Whether to show previous/next buttons
57
+ */
58
+ showPrevNext = true;
59
+ /**
60
+ * Whether to show page size selector
61
+ */
62
+ showPageSize = false;
63
+ /**
64
+ * Whether to show total count
65
+ */
66
+ showTotal = false;
67
+ /**
68
+ * Whether to show jump to page input
69
+ */
70
+ showJumpTo = false;
71
+ /**
72
+ * Custom text for previous button
73
+ */
74
+ prevText = 'Previous';
75
+ /**
76
+ * Custom text for next button
77
+ */
78
+ nextText = 'Next';
79
+ /**
80
+ * Custom text for first button
81
+ */
82
+ firstText = 'First';
83
+ /**
84
+ * Custom text for last button
85
+ */
86
+ lastText = 'Last';
87
+ /**
88
+ * Available page sizes for selector
89
+ */
90
+ pageSizes = [10, 25, 50, 100];
91
+ /**
92
+ * Whether pagination is disabled
93
+ */
94
+ disabled = false;
95
+ /**
96
+ * Whether to show only icons (no text labels)
97
+ */
98
+ iconOnly = false;
99
+ /**
100
+ * Whether to use infinite scroll style (shows loading state)
101
+ */
102
+ infinite = false;
103
+ /**
104
+ * Loading state for infinite scroll
105
+ */
106
+ loading = false;
107
+ /**
108
+ * Whether to use compact mode (for dropdown and input types)
109
+ */
110
+ compact = false;
111
+ /**
112
+ * Enable keyboard navigation
113
+ */
114
+ keyboardNav = true;
115
+ shape = 'default';
116
+ /**
117
+ * Pill-shaped buttons (shorthand for shape="pill")
118
+ */
119
+ pill = false;
120
+ /**
121
+ * Circle-shaped buttons (shorthand for shape="circle")
122
+ */
123
+ circle = false;
124
+ /**
125
+ * Custom prev icon (emoji or SVG string)
126
+ */
127
+ prevIcon = '';
128
+ /**
129
+ * Custom next icon (emoji or SVG string)
130
+ */
131
+ nextIcon = '';
132
+ /**
133
+ * Custom first icon (emoji or SVG string)
134
+ */
135
+ firstIcon = '';
136
+ /**
137
+ * Custom last icon (emoji or SVG string)
138
+ */
139
+ lastIcon = '';
140
+ /**
141
+ * Mobile breakpoint (px)
142
+ */
143
+ mobileBreakpoint = 768;
144
+ /**
145
+ * Auto-switch to compact mode on mobile
146
+ */
147
+ responsiveMode = true;
148
+ /**
149
+ * RTL support
150
+ */
151
+ rtl = false;
152
+ /**
153
+ * Show tooltip on ellipsis hover with hidden page numbers
154
+ */
155
+ ellipsisTooltip = true;
156
+ /**
157
+ * Enable page transition animations
158
+ */
159
+ pageTransition = true;
160
+ /**
161
+ * Sync current page with URL query parameter
162
+ */
163
+ urlSync = false;
164
+ /**
165
+ * URL parameter name for page number
166
+ */
167
+ urlParam = 'page';
168
+ autoHide = true;
169
+ getEffectiveShape() {
170
+ if (this.shape !== 'default')
171
+ return this.shape;
172
+ if (this.circle)
173
+ return 'circle';
174
+ if (this.pill)
175
+ return 'pill';
176
+ return 'default';
177
+ }
178
+ /**
179
+ * Enable quick jump buttons (+5, -5)
180
+ */
181
+ quickJump = false;
182
+ /**
183
+ * Quick jump step size
184
+ */
185
+ quickJumpStep = 5;
186
+ /**
187
+ * Make pagination sticky
188
+ */
189
+ sticky = false;
190
+ /**
191
+ * Sticky position (top or bottom)
192
+ */
193
+ stickyPosition = 'bottom';
194
+ /**
195
+ * Auto-switch to compact when pages exceed threshold
196
+ */
197
+ smartCompact = false;
198
+ /**
199
+ * Page count threshold for smart compact mode
200
+ */
201
+ smartCompactThreshold = 20;
202
+ /**
203
+ * Enable swipe gestures on mobile
204
+ */
205
+ swipeGestures = true;
206
+ /**
207
+ * Show progress indicator
208
+ */
209
+ showProgress = false;
210
+ /**
211
+ * If true, shows a checkmark (tick) next to selected items in internal dropdowns.
212
+ */
213
+ showSelectedMarker = true;
214
+ /**
215
+ * Layout buttons without gaps, inside a single border-radius container
216
+ */
217
+ segmented = false;
218
+ /**
219
+ * Hide page number buttons completely
220
+ */
221
+ hideNumbers = false;
222
+ /**
223
+ * Show custom label (e.g. "3 OF 10") instead of or alongside numbers
224
+ */
225
+ showLabel = false;
226
+ /**
227
+ * Template for the label when showLabel is true. Uses {current} and {total} placeholders.
228
+ */
229
+ labelTemplate = '{current} OF {total}';
230
+ /**
231
+ * Only join navigation arrows (prev/next) together
232
+ */
233
+ arrowsJoined = false;
234
+ /**
235
+ * Layout the pagination vertically
236
+ */
237
+ vertical = false;
238
+ /**
239
+ * Persist page to localStorage
240
+ */
241
+ persistPage = false;
242
+ /**
243
+ * LocalStorage key for persistence
244
+ */
245
+ storageKey = 'pagination-page';
246
+ /**
247
+ * Emitted when page changes
248
+ */
249
+ pageChange;
250
+ /**
251
+ * Emitted when items per page changes
252
+ */
253
+ itemsPerPageChange;
254
+ /**
255
+ * Emitted when validation error occurs
256
+ */
257
+ validationError;
258
+ jumpToPage = null;
259
+ inputError = '';
260
+ pageInputValue = '1';
261
+ showEllipsisTooltip = false;
262
+ ellipsisPages = [];
263
+ isTransitioning = false;
264
+ isMobile = false;
265
+ openDropdown = null;
266
+ handleTotalChange() {
267
+ if (this.currentPage > this.totalPages && this.totalPages > 0) {
268
+ this.currentPage = this.totalPages;
269
+ }
270
+ }
271
+ handleCurrentPageChange(newValue) {
272
+ this.syncPageInputState(newValue);
273
+ }
274
+ handleOpenDropdownChange(newValue) {
275
+ // Elevate host z-index in the light DOM so the panel stacks above
276
+ // sibling ui-pagination shadow hosts (shadow DOM z-index is isolated)
277
+ this.el.classList.toggle('has-open-dropdown', newValue !== null);
278
+ }
279
+ paginationRef;
280
+ touchStartX = 0;
281
+ touchEndX = 0;
282
+ handleOutsideClick = (e) => {
283
+ if (!this.openDropdown)
284
+ return;
285
+ const path = e.composedPath();
286
+ if (!path.includes(this.el)) {
287
+ this.openDropdown = null;
288
+ }
289
+ };
290
+ componentWillLoad() {
291
+ // Initial responsive check
292
+ if (this.responsiveMode && typeof window !== 'undefined') {
293
+ this.checkMobileView();
294
+ }
295
+ // URL sync - read from URL on load
296
+ if (this.urlSync && typeof window !== 'undefined') {
297
+ const urlPage = this.getPageFromURL();
298
+ if (urlPage && urlPage !== this.currentPage) {
299
+ this.currentPage = urlPage;
300
+ }
301
+ }
302
+ // LocalStorage persistence - read from storage on load
303
+ if (this.persistPage && typeof window !== 'undefined') {
304
+ const storedPage = this.getPageFromStorage();
305
+ if (storedPage && storedPage !== this.currentPage) {
306
+ this.currentPage = storedPage;
307
+ }
308
+ }
309
+ this.syncPageInputState(this.currentPage);
310
+ }
311
+ componentDidLoad() {
312
+ // Close dropdown on outside click
313
+ if (typeof window !== 'undefined') {
314
+ document.addEventListener('pointerdown', this.handleOutsideClick, true);
315
+ window.addEventListener('click', this.handleOutsideClick);
316
+ }
317
+ // Responsive mode - add listener
318
+ if (this.responsiveMode && typeof window !== 'undefined') {
319
+ window.addEventListener('resize', this.checkMobileView);
320
+ }
321
+ // Swipe gestures for mobile
322
+ if (this.swipeGestures && this.paginationRef) {
323
+ this.paginationRef.addEventListener('touchstart', this.handleTouchStart, { passive: true });
324
+ this.paginationRef.addEventListener('touchend', this.handleTouchEnd, { passive: true });
325
+ }
326
+ }
327
+ disconnectedCallback() {
328
+ if (typeof window !== 'undefined') {
329
+ window.removeEventListener('resize', this.checkMobileView);
330
+ window.removeEventListener('click', this.handleOutsideClick);
331
+ document.removeEventListener('pointerdown', this.handleOutsideClick, true);
332
+ }
333
+ if (this.swipeGestures && this.paginationRef) {
334
+ this.paginationRef.removeEventListener('touchstart', this.handleTouchStart);
335
+ this.paginationRef.removeEventListener('touchend', this.handleTouchEnd);
336
+ }
337
+ }
338
+ checkMobileView = () => {
339
+ if (typeof window !== 'undefined') {
340
+ this.isMobile = window.innerWidth < this.mobileBreakpoint;
341
+ }
342
+ };
343
+ handleKeyDown = (e) => {
344
+ if (!this.keyboardNav || this.disabled)
345
+ return;
346
+ switch (e.key) {
347
+ case 'ArrowLeft':
348
+ e.preventDefault();
349
+ if (this.rtl) {
350
+ this.handlePageChange(this.currentPage + 1);
351
+ }
352
+ else {
353
+ this.handlePageChange(this.currentPage - 1);
354
+ }
355
+ break;
356
+ case 'ArrowRight':
357
+ e.preventDefault();
358
+ if (this.rtl) {
359
+ this.handlePageChange(this.currentPage - 1);
360
+ }
361
+ else {
362
+ this.handlePageChange(this.currentPage + 1);
363
+ }
364
+ break;
365
+ case 'Home':
366
+ e.preventDefault();
367
+ this.handlePageChange(1);
368
+ break;
369
+ case 'End':
370
+ e.preventDefault();
371
+ this.handlePageChange(this.totalPages);
372
+ break;
373
+ }
374
+ };
375
+ // URL Sync helpers
376
+ getPageFromURL() {
377
+ if (typeof window === 'undefined')
378
+ return null;
379
+ const params = new URLSearchParams(window.location.search);
380
+ const page = params.get(this.urlParam);
381
+ return page ? parseInt(page, 10) : null;
382
+ }
383
+ updateURL(page) {
384
+ if (typeof window === 'undefined')
385
+ return;
386
+ const url = new URL(window.location.href);
387
+ url.searchParams.set(this.urlParam, page.toString());
388
+ window.history.pushState({}, '', url.toString());
389
+ }
390
+ // LocalStorage helpers
391
+ getPageFromStorage() {
392
+ if (typeof window === 'undefined')
393
+ return null;
394
+ const stored = localStorage.getItem(this.storageKey);
395
+ return stored ? parseInt(stored, 10) : null;
396
+ }
397
+ savePageToStorage(page) {
398
+ if (typeof window === 'undefined')
399
+ return;
400
+ localStorage.setItem(this.storageKey, page.toString());
401
+ }
402
+ // Swipe gesture handlers
403
+ handleTouchStart = (e) => {
404
+ this.touchStartX = e.changedTouches[0].screenX;
405
+ };
406
+ handleTouchEnd = (e) => {
407
+ this.touchEndX = e.changedTouches[0].screenX;
408
+ this.handleSwipe();
409
+ };
410
+ handleSwipe() {
411
+ const swipeThreshold = 50;
412
+ const diff = this.touchStartX - this.touchEndX;
413
+ if (Math.abs(diff) > swipeThreshold) {
414
+ if (diff > 0) {
415
+ this.handlePageChange(this.rtl ? this.currentPage - 1 : this.currentPage + 1);
416
+ }
417
+ else {
418
+ this.handlePageChange(this.rtl ? this.currentPage + 1 : this.currentPage - 1);
419
+ }
420
+ }
421
+ }
422
+ // Quick jump handler
423
+ handleQuickJump(direction) {
424
+ const step = this.quickJumpStep;
425
+ const newPage = direction === 'forward'
426
+ ? Math.min(this.currentPage + step, this.totalPages)
427
+ : Math.max(this.currentPage - step, 1);
428
+ this.handlePageChange(newPage);
429
+ }
430
+ // Progress calculation
431
+ get progressPercentage() {
432
+ return (this.currentPage / this.totalPages) * 100;
433
+ }
434
+ get totalPages() {
435
+ return Math.ceil(this.totalItems / this.itemsPerPage);
436
+ }
437
+ get visiblePages() {
438
+ const totalPages = this.totalPages;
439
+ const current = this.currentPage;
440
+ const maxVisible = this.maxVisiblePages;
441
+ if (totalPages <= maxVisible) {
442
+ return Array.from({ length: totalPages }, (_, i) => i + 1);
443
+ }
444
+ const half = Math.floor(maxVisible / 2);
445
+ let start = Math.max(1, current - half);
446
+ let end = Math.min(totalPages, start + maxVisible - 1);
447
+ if (end - start + 1 < maxVisible) {
448
+ start = Math.max(1, end - maxVisible + 1);
449
+ }
450
+ return Array.from({ length: end - start + 1 }, (_, i) => start + i);
451
+ }
452
+ handlePageChange(page) {
453
+ this.openDropdown = null;
454
+ this.jumpToPage = null;
455
+ if (page < 1 || page > this.totalPages || page === this.currentPage || this.disabled) {
456
+ return;
457
+ }
458
+ // Page transition animation
459
+ if (this.pageTransition) {
460
+ this.isTransitioning = true;
461
+ setTimeout(() => this.isTransitioning = false, 300);
462
+ }
463
+ this.currentPage = page;
464
+ this.syncPageInputState(page);
465
+ // URL sync
466
+ if (this.urlSync) {
467
+ this.updateURL(page);
468
+ }
469
+ // LocalStorage persistence
470
+ if (this.persistPage) {
471
+ this.savePageToStorage(page);
472
+ }
473
+ this.pageChange.emit({ page, itemsPerPage: this.itemsPerPage });
474
+ }
475
+ handleItemsPerPageChange(itemsPerPage) {
476
+ this.openDropdown = null;
477
+ this.itemsPerPage = itemsPerPage;
478
+ this.currentPage = 1; // Reset to first page when changing page size
479
+ this.syncPageInputState(1);
480
+ this.itemsPerPageChange.emit(itemsPerPage);
481
+ this.pageChange.emit({ page: 1, itemsPerPage });
482
+ }
483
+ handleJumpToPage() {
484
+ this.openDropdown = null;
485
+ const rawValue = this.pageInputValue.trim();
486
+ // Validate input
487
+ if (!rawValue) {
488
+ this.jumpToPage = null;
489
+ this.inputError = 'Please enter a valid number';
490
+ this.validationError.emit('Please enter a valid number');
491
+ return;
492
+ }
493
+ const requestedPage = Number(rawValue);
494
+ if (isNaN(requestedPage)) {
495
+ this.inputError = 'Please enter a valid number';
496
+ this.validationError.emit('Please enter a valid number');
497
+ return;
498
+ }
499
+ if (requestedPage < 1) {
500
+ this.inputError = `Page number must be at least 1`;
501
+ this.validationError.emit(this.inputError);
502
+ return;
503
+ }
504
+ if (requestedPage > this.totalPages) {
505
+ this.inputError = `Page number cannot exceed ${this.totalPages}`;
506
+ this.validationError.emit(this.inputError);
507
+ return;
508
+ }
509
+ // Clear error and navigate
510
+ this.inputError = '';
511
+ this.jumpToPage = requestedPage;
512
+ const page = Math.max(1, Math.min(this.totalPages, requestedPage));
513
+ this.handlePageChange(page);
514
+ }
515
+ syncPageInputState(page) {
516
+ const normalizedPage = Number.isFinite(page) && page > 0 ? page : 1;
517
+ this.jumpToPage = normalizedPage;
518
+ this.pageInputValue = normalizedPage.toString();
519
+ }
520
+ getPageInputWidth() {
521
+ const totalPageDigits = Math.max(1, this.totalPages.toString().length);
522
+ const currentValueDigits = Math.max(0, this.pageInputValue.trim().length);
523
+ const digits = Math.max(2, totalPageDigits, currentValueDigits);
524
+ const padding = this.size === 'sm' ? '1.75rem' : this.size === 'lg' ? '2.5rem' : '2rem';
525
+ const maxVisibleDigits = this.size === 'sm' ? 4 : this.size === 'lg' ? 8 : 6;
526
+ const visibleDigits = Math.min(digits, maxVisibleDigits);
527
+ return `calc(${visibleDigits}ch + ${padding})`;
528
+ }
529
+ handleInputChange(e) {
530
+ const value = typeof e.detail === 'string' ? e.detail : `${e.detail ?? ''}`;
531
+ this.pageInputValue = value;
532
+ if (value === '') {
533
+ this.jumpToPage = null;
534
+ this.inputError = '';
535
+ return;
536
+ }
537
+ const numValue = Number(value);
538
+ if (isNaN(numValue)) {
539
+ this.inputError = 'Please enter a valid number';
540
+ this.validationError.emit(this.inputError);
541
+ return;
542
+ }
543
+ this.jumpToPage = numValue;
544
+ // Clear error if value is now valid
545
+ if (numValue >= 1 && numValue <= this.totalPages) {
546
+ this.inputError = '';
547
+ }
548
+ }
549
+ renderPageSizeSelector() {
550
+ if (!this.showPageSize)
551
+ return null;
552
+ const isPremium = ['glass', 'modern', 'premium'].includes(this.variant);
553
+ const isOpen = this.openDropdown === 'pageSize';
554
+ return (index.h("div", { class: {
555
+ 'pagination-size-selector': true,
556
+ 'pagination-size-premium': isPremium,
557
+ 'pagination-size-selector-open': isOpen
558
+ }, onClick: (e) => e.stopPropagation() }, index.h("span", { class: "pagination-size-label" }, "Show:"), index.h("div", { class: { 'pg-dropdown': true, 'pg-dropdown-open-host': isOpen } }, index.h("button", { class: { 'pg-dropdown-trigger': true, 'pg-dropdown-open': isOpen }, onClick: () => { this.openDropdown = isOpen ? null : 'pageSize'; }, disabled: this.disabled, type: "button" }, index.h("span", null, this.itemsPerPage), index.h("svg", { class: { 'pg-dropdown-arrow': true, 'pg-arrow-up': isOpen }, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("path", { d: "m6 9 6 6 6-6" }))), isOpen && (index.h("div", { class: "pg-dropdown-panel" }, this.pageSizes.map(size => (index.h("div", { class: { 'pg-dropdown-item': true, 'pg-dropdown-item-selected': size === this.itemsPerPage }, onClick: () => { this.handleItemsPerPageChange(size); this.openDropdown = null; } }, index.h("span", null, size), size === this.itemsPerPage && (index.h("svg", { class: "pg-dropdown-check", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("path", { d: "M20 6 9 17l-5-5" })))))))))));
559
+ }
560
+ getPageLabel() {
561
+ return this.labelTemplate
562
+ .replace('{current}', this.currentPage.toString())
563
+ .replace('{total}', this.totalPages.toString());
564
+ }
565
+ getNavIcon(type) {
566
+ if (this.vertical) {
567
+ if (type === 'first')
568
+ return this.firstIcon || 'chevrons-up';
569
+ if (type === 'prev')
570
+ return this.prevIcon || 'chevron-up';
571
+ if (type === 'next')
572
+ return this.nextIcon || 'chevron-down';
573
+ if (type === 'last')
574
+ return this.lastIcon || 'chevrons-down';
575
+ }
576
+ if (type === 'first')
577
+ return this.firstIcon || 'chevrons-left';
578
+ if (type === 'prev')
579
+ return this.prevIcon || 'chevron-left';
580
+ if (type === 'next')
581
+ return this.nextIcon || 'chevron-right';
582
+ if (type === 'last')
583
+ return this.lastIcon || 'chevrons-right';
584
+ return '';
585
+ }
586
+ renderBasicPagination() {
587
+ const { currentPage, totalPages, visiblePages, showFirstLast, showPrevNext } = this;
588
+ const canGoPrev = currentPage > 1;
589
+ const canGoNext = currentPage < totalPages;
590
+ return (index.h("div", { class: "pagination-basic" }, showFirstLast && (index.h("ui-button", { variant: this.getButtonVariant(-1), size: this.size === 'sm' ? 'sm' : this.size === 'lg' ? 'lg' : 'md',
591
+ // class={`pagination-btn pagination-first ${!canGoPrev ? 'disabled' : ''}`}
592
+ onClick: () => this.handlePageChange(1), disabled: !canGoPrev || this.disabled, ariaLabel: "First page", icon: this.iconOnly ? "chevrons-left" : undefined, iconLibrary: "lucide", label: this.iconOnly ? undefined : this.firstText, shape: this.getEffectiveShape() })), showPrevNext && (index.h("ui-button", { variant: this.getButtonVariant(-1), size: this.size === 'sm' ? 'sm' : this.size === 'lg' ? 'lg' : 'md',
593
+ // class={{
594
+ // 'pagination-btn': true,
595
+ // 'pagination-prev': true,
596
+ // 'pagination-joined': this.arrowsJoined || this.segmented,
597
+ // 'disabled': !canGoPrev
598
+ // }}
599
+ onClick: () => this.handlePageChange(currentPage - 1), disabled: !canGoPrev || this.disabled, ariaLabel: "Previous page", icon: this.iconOnly || this.arrowsJoined ? this.getNavIcon('prev') : undefined, iconLibrary: "lucide", label: this.iconOnly || this.arrowsJoined ? undefined : this.prevText, shape: this.getEffectiveShape() })), this.showLabel && (index.h("div", { class: {
600
+ 'pagination-label': true,
601
+ 'pagination-joined': this.segmented
602
+ } }, this.getPageLabel())), !this.hideNumbers && (index.h("div", { class: {
603
+ 'pagination-pages': true,
604
+ 'pagination-joined': this.segmented
605
+ } }, visiblePages.map(page => (index.h("ui-button", { key: page, variant: this.getButtonVariant(page), size: this.size === 'sm' ? 'sm' : this.size === 'lg' ? 'lg' : 'md',
606
+ // class={{
607
+ // 'pagination-btn': true,
608
+ // 'pagination-page': true,
609
+ // 'active': page === currentPage
610
+ // }}
611
+ onClick: () => this.handlePageChange(page), disabled: this.disabled, label: `${page}`, shape: this.getEffectiveShape() }))))), showPrevNext && (index.h("ui-button", { variant: this.getButtonVariant(-1), size: this.size === 'sm' ? 'sm' : this.size === 'lg' ? 'lg' : 'md',
612
+ // class={{
613
+ // 'pagination-btn': true,
614
+ // 'pagination-next': true,
615
+ // 'pagination-joined': this.arrowsJoined || this.segmented,
616
+ // 'disabled': !canGoNext
617
+ // }}
618
+ onClick: () => this.handlePageChange(currentPage + 1), disabled: !canGoNext || this.disabled, ariaLabel: "Next page", icon: this.iconOnly || this.arrowsJoined ? this.getNavIcon('next') : undefined, iconLibrary: "lucide", label: this.iconOnly || this.arrowsJoined ? undefined : this.nextText, shape: this.getEffectiveShape() })), showFirstLast && (index.h("ui-button", { variant: this.getButtonVariant(-1), size: this.size === 'sm' ? 'sm' : this.size === 'lg' ? 'lg' : 'md',
619
+ //// class={`pagination-btn pagination-last ${!canGoNext ? 'disabled' : ''}`}
620
+ onClick: () => this.handlePageChange(totalPages), disabled: !canGoNext || this.disabled, ariaLabel: "Last page", icon: this.iconOnly ? "chevrons-right" : undefined, iconLibrary: "lucide", label: this.iconOnly ? undefined : this.lastText, shape: this.getEffectiveShape() })), this.quickJump && (index.h("ui-button", { variant: this.getButtonVariant(-1), size: this.size === 'sm' ? 'sm' : this.size === 'lg' ? 'lg' : 'md',
621
+ //// class={`pagination-btn pagination-quick-backward ${!canGoPrev ? 'disabled' : ''}`}
622
+ onClick: () => this.handleQuickJump('backward'), disabled: !canGoPrev || this.disabled, ariaLabel: `Jump back ${this.quickJumpStep} pages`, icon: "chevrons-left", iconLibrary: "lucide", shape: this.getEffectiveShape() })), this.quickJump && (index.h("ui-button", { variant: this.getButtonVariant(-1), size: this.size === 'sm' ? 'sm' : this.size === 'lg' ? 'lg' : 'md',
623
+ // class={`pagination-btn pagination-quick-forward ${!canGoNext ? 'disabled' : ''}`}
624
+ onClick: () => this.handleQuickJump('forward'), disabled: !canGoNext || this.disabled, ariaLabel: `Jump forward ${this.quickJumpStep} pages`, icon: "chevrons-right", iconLibrary: "lucide", shape: this.getEffectiveShape() }))));
625
+ }
626
+ renderCompactPagination() {
627
+ const { currentPage, totalPages } = this;
628
+ const canGoPrev = currentPage > 1;
629
+ const canGoNext = currentPage < totalPages;
630
+ return (index.h("div", { class: "pagination-compact" }, index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "chevron-left", iconLibrary: "lucide", iconSize: "14px",
631
+ // class={`pagination-btn pagination-prev ${!canGoPrev ? 'disabled' : ''}`}
632
+ onClick: () => this.handlePageChange(currentPage - 1), disabled: !canGoPrev || this.disabled, ariaLabel: "Previous page", shape: this.getEffectiveShape() }), index.h("span", { class: "pagination-info" }, currentPage, " of ", totalPages), index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "chevron-right", iconLibrary: "lucide", iconSize: "14px",
633
+ // class={`pagination-btn pagination-next ${!canGoNext ? 'disabled' : ''}`}
634
+ onClick: () => this.handlePageChange(currentPage + 1), disabled: !canGoNext || this.disabled, ariaLabel: "Next page", shape: this.getEffectiveShape() })));
635
+ }
636
+ renderDetailedPagination() {
637
+ const startItem = (this.currentPage - 1) * this.itemsPerPage + 1;
638
+ const endItem = Math.min(this.currentPage * this.itemsPerPage, this.totalItems);
639
+ return (index.h("div", { class: "pagination-detailed" }, this.renderBasicPagination(), index.h("div", { class: "pagination-details" }, this.showTotal && (index.h("span", { class: "pagination-total" }, "Showing ", startItem, "-", endItem, " of ", this.totalItems, " items")), this.renderPageSizeSelector(), this.showJumpTo && (index.h("div", { class: "pagination-jump" }, index.h("label", null, "Go to page:"), index.h("ui-input", { type: "number", min: 1, max: this.totalPages, value: this.jumpToPage, class: this.inputError ? 'has-error' : '', onInputChange: (e) => this.handleInputChange(e), onInputKeydown: (e) => e.detail.key === 'Enter' && this.handleJumpToPage(), disabled: this.disabled, size: "sm", variant: "plain", showTypeIcon: false, style: { width: this.getPageInputWidth() } }), index.h("ui-button", { variant: "primary", size: "sm",
640
+ //// pagination-jump-btn"
641
+ onClick: () => this.handleJumpToPage(), disabled: this.disabled, label: "Go", shape: this.getEffectiveShape() }))))));
642
+ }
643
+ renderMinimalPagination() {
644
+ const { currentPage, totalPages } = this;
645
+ const canGoPrev = currentPage > 1;
646
+ const canGoNext = currentPage < totalPages;
647
+ return (index.h("div", { class: "pagination-minimal" }, index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "chevrons-left", iconLibrary: "lucide", iconSize: "14px",
648
+ // class={`pagination-btn pagination-prev ${!canGoPrev ? 'disabled' : ''}`}
649
+ onClick: () => this.handlePageChange(currentPage - 1), disabled: !canGoPrev || this.disabled, ariaLabel: "Previous page", shape: this.getEffectiveShape() }), index.h("div", { class: "pagination-input-group" }, index.h("ui-input", { type: "number", min: 1, max: totalPages, value: this.jumpToPage || this.currentPage, onInputChange: (e) => this.handleInputChange(e), onInputBlur: () => this.handleJumpToPage(), onInputKeydown: (e) => e.detail.key === 'Enter' && this.handleJumpToPage(), disabled: this.disabled, class: `pagination-page-input ${this.inputError ? 'has-error' : ''}`, size: "sm", variant: "plain", showTypeIcon: false, style: { width: this.getPageInputWidth() } }), index.h("span", { class: "pagination-separator" }, "of"), index.h("span", { class: "pagination-total-pages" }, totalPages)), index.h("ui-button", { variant: "ghost", size: "sm", iconOnly: true, icon: "chevrons-right", iconLibrary: "lucide", iconSize: "14px",
650
+ // class={`pagination-btn pagination-next ${!canGoNext ? 'disabled' : ''}`}
651
+ onClick: () => this.handlePageChange(currentPage + 1), disabled: !canGoNext || this.disabled, ariaLabel: "Next page", shape: this.getEffectiveShape() })));
652
+ }
653
+ renderAdvancedPagination() {
654
+ return (index.h("div", { class: "pagination-advanced" }, index.h("div", { class: "pagination-controls" }, this.renderPageSizeSelector(), this.showTotal && (index.h("div", { class: "pagination-summary" }, "Showing ", ((this.currentPage - 1) * this.itemsPerPage) + 1, " to ", Math.min(this.currentPage * this.itemsPerPage, this.totalItems), " of ", this.totalItems, " entries"))), this.renderBasicPagination(), this.showJumpTo && (index.h("div", { class: "pagination-jump-section" }, index.h("label", null, "Jump to page:"), index.h("ui-input", { type: "text", inputmode: "numeric", pattern: "[0-9]*", value: this.currentPage.toString(), size: this.size, onInputChange: (e) => this.handleInputChange(e), class: {
655
+ 'pagination-page-input': true,
656
+ 'has-error': this.inputError !== ''
657
+ }, style: { width: this.getPageInputWidth() }, error: this.inputError !== '', showError: false, disabled: this.disabled }), index.h("ui-button", { variant: "primary", size: "sm",
658
+ ////class="pagination-btn"
659
+ onClick: () => this.handleJumpToPage(), disabled: this.disabled, label: "Go", shape: this.getEffectiveShape() })))));
660
+ }
661
+ renderInfinitePagination() {
662
+ return (index.h("div", { class: "pagination-infinite" }, index.h("div", { class: "pagination-loading" }, this.loading ? (index.h("ui-loader", { size: "xs", color: "currentColor" })) : (index.h("ui-button", { variant: "primary",
663
+ // pagination-load-more"
664
+ onClick: () => this.handlePageChange(this.currentPage + 1), disabled: this.currentPage >= this.totalPages || this.disabled, label: "Load More", shape: this.getEffectiveShape() }))), this.showTotal && (index.h("div", { class: "pagination-infinite-info" }, "Showing ", this.currentPage * this.itemsPerPage, " of ", this.totalItems, " items"))));
665
+ }
666
+ renderDropdownPagination() {
667
+ const pageOptions = [];
668
+ for (let i = 1; i <= this.totalPages; i++) {
669
+ pageOptions.push({
670
+ label: `Page ${i} of ${this.totalPages}`,
671
+ value: i.toString()
672
+ });
673
+ }
674
+ return (index.h("div", { class: "pagination-dropdown-container" }, this.showTotal && (index.h("div", { class: "pagination-total" }, this.totalItems, " Items")), this.renderPageSizeSelector(), !this.hideNavButtons && (index.h("ui-button", { variant: "ghost", iconOnly: true, icon: "chevron-left", iconLibrary: "lucide",
675
+ // pagination-prev"
676
+ onClick: () => this.handlePageChange(this.currentPage - 1), disabled: this.currentPage === 1 || this.disabled, ariaLabel: "Previous page", shape: "circle" })), index.h("div", { class: { 'pagination-dropdown-wrapper': true, 'pagination-dropdown-wrapper-open': this.openDropdown === 'page' }, onClick: (e) => e.stopPropagation() }, index.h("div", { class: { 'pg-dropdown': true, 'pg-dropdown-open-host': this.openDropdown === 'page' } }, index.h("button", { class: { 'pg-dropdown-trigger': true, 'pg-dropdown-trigger-wide': true, 'pg-dropdown-open': this.openDropdown === 'page' }, onClick: () => { this.openDropdown = this.openDropdown === 'page' ? null : 'page'; }, disabled: this.disabled, type: "button" }, index.h("span", null, "Page ", this.currentPage, " of ", this.totalPages), index.h("svg", { class: { 'pg-dropdown-arrow': true, 'pg-arrow-up': this.openDropdown === 'page' }, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2.5", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("path", { d: "m6 9 6 6 6-6" }))), this.openDropdown === 'page' && (index.h("div", { class: "pg-dropdown-panel pg-dropdown-panel-scroll" }, pageOptions.map(opt => (index.h("div", { class: { 'pg-dropdown-item': true, 'pg-dropdown-item-selected': opt.value === this.currentPage.toString() }, onClick: () => { this.handlePageChange(parseInt(opt.value)); this.openDropdown = null; } }, index.h("span", null, opt.label), opt.value === this.currentPage.toString() && (index.h("svg", { class: "pg-dropdown-check", width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "3", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("path", { d: "M20 6 9 17l-5-5" })))))))))), !this.hideNavButtons && (index.h("ui-button", { variant: "ghost", iconOnly: true, icon: "chevron-right", iconLibrary: "lucide",
677
+ // pagination-next"
678
+ onClick: () => this.handlePageChange(this.currentPage + 1), disabled: this.currentPage === this.totalPages || this.disabled, ariaLabel: "Next page", shape: "circle" }))));
679
+ }
680
+ renderInputPagination() {
681
+ return (index.h("div", { class: "pagination-input-container" }, this.showTotal && (index.h("div", { class: "pagination-total" }, this.totalItems, " Total")), this.renderPageSizeSelector(), !this.hideNavButtons && (index.h("ui-button", { variant: "ghost", iconOnly: true, icon: this.getNavIcon('first'), iconLibrary: "lucide",
682
+ // pagination-first"
683
+ onClick: () => this.handlePageChange(1), disabled: this.currentPage === 1 || this.disabled, ariaLabel: "First page", shape: "circle" })), !this.hideNavButtons && (index.h("ui-button", { variant: "ghost", iconOnly: true, icon: this.getNavIcon('prev'), iconLibrary: "lucide",
684
+ // pagination-prev"
685
+ onClick: () => this.handlePageChange(this.currentPage - 1), disabled: this.currentPage === 1 || this.disabled, ariaLabel: "Previous page", shape: "circle" })), index.h("ui-input", { type: "text", inputmode: "numeric", pattern: "[0-9]*", class: `pagination-page-input ${this.inputError ? 'has-error' : ''}`, value: this.pageInputValue, onInputChange: (e) => this.handleInputChange(e), onInputKeydown: (e) => e.detail.key === 'Enter' && this.handleJumpToPage(), onFocusInternal: () => { this.inputError = ''; }, disabled: this.disabled, size: this.size, variant: "plain", showTypeIcon: false, showError: false, style: { width: this.getPageInputWidth() } }), index.h("span", { class: "pagination-input-label" }, "of ", index.h("strong", null, this.totalPages)), !this.hideNavButtons && (index.h("ui-button", { variant: "ghost", iconOnly: true, icon: this.getNavIcon('next'), iconLibrary: "lucide",
686
+ // pagination-next"
687
+ onClick: () => this.handlePageChange(this.currentPage + 1), disabled: this.currentPage === this.totalPages || this.disabled, ariaLabel: "Next page", shape: "circle" })), !this.hideNavButtons && (index.h("ui-button", { variant: "ghost", iconOnly: true, icon: this.getNavIcon('last'), iconLibrary: "lucide",
688
+ // pagination-last"
689
+ onClick: () => this.handlePageChange(this.totalPages), disabled: this.currentPage === this.totalPages || this.disabled, shape: "circle" }))));
690
+ }
691
+ renderIndicatorPagination() {
692
+ const pages = Array.from({ length: this.totalPages }, (_, i) => i + 1);
693
+ return (index.h("div", { class: "pagination-indicator-container" }, this.showPrevNext && (index.h("ui-button", { variant: this.getButtonVariant(-1), iconOnly: true, icon: "chevron-left", iconLibrary: "lucide",
694
+ //class="pagination-nav-btn"
695
+ onClick: () => this.handlePageChange(this.currentPage - 1), disabled: this.currentPage === 1 || this.disabled, ariaLabel: "Previous page", shape: this.getEffectiveShape() })), index.h("div", { class: "pagination-indicators" }, pages.map(page => (index.h("div", { class: {
696
+ 'pagination-indicator': true,
697
+ 'pagination-indicator-active': page === this.currentPage
698
+ }, onClick: () => !this.disabled && this.handlePageChange(page), role: "button", tabindex: this.disabled ? -1 : 0, "aria-label": `Go to page ${page}`, "aria-current": page === this.currentPage ? 'page' : undefined }, index.h("div", { class: "pagination-indicator-dot" }), page === this.currentPage && (index.h("div", { class: "pagination-indicator-label" }, page)))))), this.showPrevNext && (index.h("ui-button", { variant: this.getButtonVariant(-1), iconOnly: true, icon: "chevron-right", iconLibrary: "lucide",
699
+ //class="pagination-nav-btn"
700
+ onClick: () => this.handlePageChange(this.currentPage + 1), disabled: this.currentPage === this.totalPages || this.disabled, ariaLabel: "Next page", shape: this.getEffectiveShape() })), this.showTotal && (index.h("div", { class: "pagination-total" }, this.currentPage, " / ", this.totalPages))));
701
+ }
702
+ getButtonVariant(page) {
703
+ if (page === this.currentPage) {
704
+ if (this.variant === 'soft')
705
+ return 'soft';
706
+ if (this.variant === 'glass')
707
+ return 'glass';
708
+ if (this.variant === 'modern')
709
+ return 'primary';
710
+ if (this.variant === 'premium')
711
+ return 'primary';
712
+ return this.theme;
713
+ }
714
+ if (this.variant === 'outlined')
715
+ return 'outline';
716
+ if (this.variant === 'floating')
717
+ return 'raised';
718
+ if (this.variant === 'glass')
719
+ return 'glass';
720
+ if (this.variant === 'soft')
721
+ return 'soft';
722
+ if (this.variant === 'modern')
723
+ return 'ghost';
724
+ if (this.variant === 'minimalist')
725
+ return 'plain';
726
+ if (this.variant === 'premium')
727
+ return 'ghost';
728
+ if (this.variant === 'underline')
729
+ return 'ghost';
730
+ return 'ghost';
731
+ }
732
+ render() {
733
+ // Auto-hide when only one page
734
+ if (this.autoHide && this.totalPages <= 1 && !this.infinite) {
735
+ return null;
736
+ }
737
+ // Smart compact mode - auto-switch based on page count
738
+ const effectiveType = this.smartCompact && this.totalPages > this.smartCompactThreshold
739
+ ? 'compact'
740
+ : (this.responsiveMode && this.isMobile ? 'compact' : this.type);
741
+ const effectiveShape = this.shape !== 'default' ? this.shape : (this.circle ? 'circle' : (this.pill ? 'pill' : 'default'));
742
+ const classes = {
743
+ 'ui-pagination': true,
744
+ [`pagination-${effectiveType}`]: true,
745
+ [`pagination-${this.size}`]: true,
746
+ [`pagination-${this.variant}`]: true,
747
+ [`pagination-theme-${this.theme}`]: this.theme !== 'default',
748
+ [`pagination-shape-${effectiveShape}`]: effectiveShape !== 'default',
749
+ 'pagination-disabled': this.disabled,
750
+ 'pagination-segmented': this.segmented,
751
+ 'pagination-arrows-joined': this.arrowsJoined,
752
+ 'pagination-vertical': this.vertical,
753
+ 'pagination-rtl': this.rtl,
754
+ 'pagination-mobile': this.isMobile,
755
+ 'pagination-sticky': this.sticky,
756
+ [`pagination-sticky-${this.stickyPosition}`]: this.sticky,
757
+ 'pagination-transitioning': this.isTransitioning,
758
+ 'pagination-has-container': ['floating', 'glass', 'modern', 'premium'].includes(this.variant),
759
+ 'pagination-dropdown-open': this.openDropdown !== null,
760
+ };
761
+ return (index.h("div", { class: classes, onKeyDown: this.handleKeyDown, tabindex: this.keyboardNav && !this.disabled ? 0 : -1, role: "navigation", "aria-label": "Pagination Navigation", ref: (el) => this.paginationRef = el }, index.h("div", { role: "status", "aria-live": "polite", "aria-atomic": "true", class: "sr-only" }, "Page ", this.currentPage, " of ", this.totalPages), this.showProgress && (index.h("div", { class: "pagination-progress-bar" }, index.h("div", { class: "pagination-progress-fill", style: { width: `${this.progressPercentage}%` } }))), index.h("div", { class: "pagination-main-content" }, this.infinite ? this.renderInfinitePagination() :
762
+ effectiveType === 'basic' ? this.renderBasicPagination() :
763
+ effectiveType === 'compact' ? this.renderCompactPagination() :
764
+ effectiveType === 'detailed' ? this.renderDetailedPagination() :
765
+ effectiveType === 'minimal' ? this.renderMinimalPagination() :
766
+ effectiveType === 'advanced' ? this.renderAdvancedPagination() :
767
+ effectiveType === 'dropdown' ? this.renderDropdownPagination() :
768
+ effectiveType === 'input' ? this.renderInputPagination() :
769
+ effectiveType === 'indicator' ? this.renderIndicatorPagination() :
770
+ this.renderBasicPagination()), this.showTotal && effectiveType !== 'detailed' && effectiveType !== 'advanced' && effectiveType !== 'dropdown' && (index.h("div", { class: "pagination-total" }, "Total ", this.totalItems, " items"))));
771
+ }
772
+ static get watchers() { return {
773
+ "totalItems": [{
774
+ "handleTotalChange": 0
775
+ }],
776
+ "itemsPerPage": [{
777
+ "handleTotalChange": 0
778
+ }],
779
+ "currentPage": [{
780
+ "handleCurrentPageChange": 0
781
+ }],
782
+ "openDropdown": [{
783
+ "handleOpenDropdownChange": 0
784
+ }]
785
+ }; }
786
+ };
787
+ Pagination.style = paginationCss();
788
+
789
+ const ratingCss = () => `.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:inline-block;--rating-primary:var(--color-primary, #10b981);--rating-warning:var(--color-warning, #f59e0b);--rating-success:var(--color-success, #10b981);--rating-danger:var(--color-danger, #ef4444)}.rating-container{display:inline-flex;flex-direction:column;gap:12px;user-select:none;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.rating-container.rating-victory .rating-item-active:last-child{animation:rating-victory-pulse 0.8s cubic-bezier(0.4, 0, 0.2, 1)}.rating-container.rating-victory .rating-item-active .rating-icon-container::after{content:"";position:absolute;width:6px;height:6px;background:currentColor;border-radius:50%;filter:blur(2px);animation:rating-particle-burst 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;box-shadow:10px -20px 0 0 currentColor, -15px -25px 0 0 currentColor, 20px -30px 0 0 currentColor}.rating-container.rating-glow .rating-item-active .rating-icon-fill{filter:drop-shadow(0 0 8px currentColor);animation:rating-shimmer 2s infinite linear}@keyframes rating-shimmer{0%{opacity:0.8}50%{opacity:1}100%{opacity:0.8}}.rating-items{display:flex;align-items:center;gap:8px}.rating-rtl .rating-items{flex-direction:row-reverse}.rating-item{background:none;border:none;padding:0;margin:0;cursor:pointer;outline:none;transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1);display:flex;align-items:center;justify-content:center;position:relative}.rating-item:hover:not(:disabled){transform:scale(1.25);z-index:2}.rating-item.rating-item-active{transform:scale(1.15);z-index:5}.rating-item.rating-item-selected{transform:scale(1.3);z-index:10}.rating-item.rating-item-emoji{background:var(--bg-secondary, #f1f5f9);border-radius:50%;padding:10px;font-size:1.5em;filter:grayscale(1);opacity:0.5;transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.02)}.rating-item.rating-item-emoji.rating-item-active,.rating-item.rating-item-emoji.rating-item-selected{filter:grayscale(0);opacity:1;background:var(--bg-primary, #ffffff);transform:scale(1.3) !important;box-shadow:0 8px 16px rgba(0, 0, 0, 0.08), inset 0 2px 4px rgba(255, 255, 255, 0.8);z-index:20}.rating-item.rating-item-emoji .emoji-display{transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1);display:inline-block}.rating-item:disabled{cursor:not-allowed;opacity:0.5}.rating-icon-container{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px}.rating-size-xxxs .rating-icon-container{width:14px;height:14px}.rating-size-xxs .rating-icon-container{width:18px;height:18px}.rating-size-xs .rating-icon-container{width:22px;height:22px}.rating-size-sm .rating-icon-container{width:26px;height:26px}.rating-size-md .rating-icon-container{width:34px;height:34px}.rating-size-lg .rating-icon-container{width:44px;height:44px}.rating-size-xl .rating-icon-container{width:56px;height:56px}.rating-size-xxl .rating-icon-container{width:72px;height:72px}.rating-size-xxxl .rating-icon-container{width:96px;height:96px}.rating-icon-bg{color:var(--text-muted, #94a3b8);opacity:0.4 !important;transition:all 0.3s;display:block;width:100%;height:100%;position:absolute;top:0;left:0}.rating-glass .rating-icon-bg{color:rgba(255, 255, 255, 0.4);opacity:0.5}.rating-icon-bg.img,.rating-icon-bg img{filter:grayscale(100%);opacity:0.5}.rating-icon-fill{position:absolute;top:0;left:0;height:100%;width:0%;overflow:hidden;color:var(--rating-active-color, var(--color-warning, #f59e0b));transition:width 0.3s cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.rating-icon-fill ui-icon,.rating-icon-fill img{display:block;position:absolute;top:0;left:0;width:34px;height:34px;flex-shrink:0}.rating-size-xxxs .rating-icon-fill ui-icon,.rating-size-xxxs .rating-icon-fill img{width:14px;height:14px}.rating-size-xxs .rating-icon-fill ui-icon,.rating-size-xxs .rating-icon-fill img{width:18px;height:18px}.rating-size-xs .rating-icon-fill ui-icon,.rating-size-xs .rating-icon-fill img{width:22px;height:22px}.rating-size-sm .rating-icon-fill ui-icon,.rating-size-sm .rating-icon-fill img{width:26px;height:26px}.rating-size-md .rating-icon-fill ui-icon,.rating-size-md .rating-icon-fill img{width:34px;height:34px}.rating-size-lg .rating-icon-fill ui-icon,.rating-size-lg .rating-icon-fill img{width:44px;height:44px}.rating-size-xl .rating-icon-fill ui-icon,.rating-size-xl .rating-icon-fill img{width:56px;height:56px}.rating-size-xxl .rating-icon-fill ui-icon,.rating-size-xxl .rating-icon-fill img{width:72px;height:72px}.rating-size-xxxl .rating-icon-fill ui-icon,.rating-size-xxxl .rating-icon-fill img{width:96px;height:96px}.rating-icon-fill img{filter:none;opacity:1;max-width:none}.rating-item-smiley{background:rgba(var(--text-standard-rgb, 128, 128, 128), 0.08);border:1px solid rgba(var(--text-standard-rgb, 128, 128, 128), 0.1);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);position:relative;cursor:pointer}.rating-size-xxxs .rating-item-smiley{padding:4px}.rating-size-xxs .rating-item-smiley{padding:5px}.rating-size-xs .rating-item-smiley{padding:6px}.rating-size-sm .rating-item-smiley{padding:8px}.rating-size-md .rating-item-smiley{padding:10px}.rating-size-lg .rating-item-smiley{padding:12px}.rating-size-xl .rating-item-smiley{padding:16px}.rating-size-xxl .rating-item-smiley{padding:20px}.rating-size-xxxl .rating-item-smiley{padding:24px}.rating-item-smiley.rating-item-active,.rating-item-smiley.rating-item-selected{background:rgba(var(--primary-rgb, 139, 92, 246), 0.15);transform:scale(1.15);color:var(--rating-active-color);box-shadow:0 0 0 4px rgba(var(--primary-rgb, 139, 92, 246), 0.05), 0 4px 12px rgba(0, 0, 0, 0.05)}.rating-glass .rating-item-smiley{background:rgba(255, 255, 255, 0.05)}.rating-glass .rating-item-smiley.rating-item-selected{background:rgba(255, 255, 255, 0.15)}.rating-item-thumb{padding:10px;background:var(--bg-primary, #f8fafc);border:1px solid var(--border-subtle, #e2e8f0);border-radius:12px}.rating-item-thumb.rating-item-active{background:var(--bg-primary, #ffffff);box-shadow:0 4px 12px rgba(0, 0, 0, 0.05);border-color:var(--rating-active-color)}.rating-item-thumb.rating-item-thumb-up:hover:not(:disabled){color:var(--rating-success);border-color:var(--rating-success)}.rating-item-thumb.rating-item-thumb-down:hover:not(:disabled){color:var(--rating-danger);border-color:var(--rating-danger)}.smiley-item-wrapper{display:flex;flex-direction:column;align-items:center;gap:8px}.rating-size-lg .smiley-item-wrapper{gap:12px}.rating-size-xl .smiley-item-wrapper{gap:16px}.smiley-label{font-size:11px;font-weight:700;color:var(--rating-active-color, var(--color-success, #10b981));text-transform:capitalize;letter-spacing:-0.2px;white-space:nowrap}.rating-size-lg .smiley-label{font-size:13px}.rating-size-xl .smiley-label{font-size:15px}.rating-total-reviews{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:4px;color:var(--color-primary, #94a3b8);font-size:11px;font-weight:500;font-style:italic}.rating-rtl .rating-total-reviews{flex-direction:row-reverse}.rating-total-reviews .review-dot{opacity:0.5}.rating-primary{--rating-active-color:var(--rating-primary)}.rating-warning{--rating-active-color:var(--rating-warning)}.rating-success{--rating-active-color:var(--rating-success)}.rating-danger{--rating-active-color:var(--rating-danger)}.rating-size-xxxs .rating-icon-container,.rating-size-xxxs .rating-item-smiley{width:14px;height:14px}.rating-size-xxxs ui-icon{--size:14px}.rating-size-xxxs img{width:14px;height:14px}.rating-size-xxs .rating-icon-container,.rating-size-xxs .rating-item-smiley{width:18px;height:18px}.rating-size-xxs ui-icon{--size:18px}.rating-size-xxs img{width:18px;height:18px}.rating-size-xs .rating-icon-container,.rating-size-xs .rating-item-smiley{width:22px;height:22px}.rating-size-xs ui-icon{--size:22px}.rating-size-xs img{width:22px;height:22px}.rating-size-sm .rating-icon-container,.rating-size-sm .rating-item-smiley{width:26px;height:26px}.rating-size-sm ui-icon{--size:26px}.rating-size-sm img{width:26px;height:26px}.rating-size-md .rating-icon-container,.rating-size-md .rating-item-smiley{width:34px;height:34px}.rating-size-md ui-icon{--size:34px}.rating-size-md img{width:34px;height:34px}.rating-size-lg .rating-icon-container,.rating-size-lg .rating-item-smiley{width:44px;height:44px}.rating-size-lg ui-icon{--size:44px}.rating-size-lg img{width:44px;height:44px}.rating-size-xl .rating-icon-container,.rating-size-xl .rating-item-smiley{width:56px;height:56px}.rating-size-xl ui-icon{--size:56px}.rating-size-xl img{width:56px;height:56px}.rating-size-xxl .rating-icon-container,.rating-size-xxl .rating-item-smiley{width:72px;height:72px}.rating-size-xxl ui-icon{--size:72px}.rating-size-xxl img{width:72px;height:72px}.rating-size-xxxl .rating-icon-container,.rating-size-xxxl .rating-item-smiley{width:96px;height:96px}.rating-size-xxxl ui-icon{--size:96px}.rating-size-xxxl img{width:96px;height:96px}.rating-glass{background:rgba(255, 255, 255, 0.05);backdrop-filter:blur(12px);padding:16px;border-radius:16px;border:1px solid rgba(255, 255, 255, 0.1);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.rating-raised{background:var(--bg-primary, #f8fafc);padding:20px;border-radius:20px;box-shadow:8px 8px 16px rgba(0, 0, 0, 0.05), -4px -4px 12px var(--bg-primary, #ffffff);border:1px solid rgba(0, 0, 0, 0.02)}@keyframes rating-particle-burst{0%{transform:scale(0);opacity:1}100%{transform:scale(1.5) translateY(-60px);opacity:0}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes rating-victory-pulse{from{transform:scale(1.1);filter:drop-shadow(0 0 0px var(--rating-active-color))}to{transform:scale(1.4);filter:drop-shadow(0 0 12px var(--rating-active-color))}}.rating-items-container{display:flex;align-items:center;gap:24px}.rating-summary{display:flex;align-items:center;gap:16px}.rating-summary .summary-divider{width:1px;height:24px;background:var(--bg-primary, #e2e8f0)}.rating-size-lg .rating-summary .summary-divider,.rating-size-xl .rating-summary .summary-divider{height:32px}.rating-summary .summary-content{display:flex;flex-direction:column;justify-content:center;line-height:1.2}.rating-summary .summary-content .summary-label{font-size:14px;font-weight:800;color:var(--rating-active-color, #1e293b);margin:0}.rating-summary .summary-content .summary-value{font-size:12px;font-weight:600;color:var(--rating-active-color, var(--color-success, #10b981));opacity:0.6;margin:0}.rating-summary-bottom{margin-top:12px;justify-content:center}.rating-summary-bottom .summary-divider{display:none}.rating-summary-bottom .summary-content{flex-direction:row;align-items:center;gap:8px}.rating-value{display:flex;flex-direction:column;align-items:center;gap:2px}.rating-label{font-size:13px;font-weight:700;color:var(--rating-active-color);text-transform:uppercase;letter-spacing:0.5px}.rating-number{font-size:11px;font-weight:500;color:var(--color-primary, #94a3b8)}.rating-description{color:var(--color-primary, #94a3b8);font-size:10px;font-weight:400;line-height:1.4;opacity:0.8;max-width:200px}.rating-description-side{margin-inline-start:12px;padding-inline-start:12px;border-inline-start:1px solid rgba(0, 0, 0, 0.08);display:flex;align-items:center}.rating-description-bottom{margin-top:8px;text-align:center;width:100%}.rating-victory-particle{position:absolute;width:var(--size, 6px);height:var(--size, 6px);background:var(--clr, #fbbf24);border-radius:2px;pointer-events:none;z-index:50;animation:rating-particle-burst 1s cubic-bezier(0, 0, 0.2, 1) forwards}@keyframes rating-particle-burst{0%{transform:translate(0, 0) rotate(0deg) scale(0);opacity:1}15%{transform:translate(calc(var(--tx) * 0.2), calc(var(--ty) * 0.2)) rotate(45deg) scale(1.2)}100%{transform:translate(var(--tx), var(--ty)) rotate(var(--rot)) scale(0);opacity:0}}.rating-invalid .rating-icon-bg{color:var(--rating-danger, var(--color-danger, #ef4444));opacity:0.2}.rating-invalid .rating-icon-fill{color:var(--rating-danger, var(--color-danger, #ef4444))}.rating-invalid.rating-glow .rating-item-active{filter:drop-shadow(0 0 8px rgba(var(--color-danger-rgb, 239, 68, 68), 0.4))}.rating-helper{margin-top:8px;font-size:11px;color:var(--text-muted, #64748b);display:flex;align-items:center;gap:6px}.rating-helper.rating-error{color:var(--color-danger, #ef4444)}.rating-histogram{display:flex;flex-direction:column;gap:6px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle, #e2e8f0);width:100%}.histogram-row{display:flex;align-items:center;gap:12px;font-size:11px}.histogram-label{display:flex;align-items:center;gap:4px;min-width:40px;font-weight:600;color:var(--text-standard, #475569)}.histogram-bar-container{flex:1;height:8px;background:var(--bg-secondary, #f1f5f9);border-radius:4px;overflow:hidden}.histogram-bar-fill{height:100%;border-radius:4px;transition:width 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.histogram-count{min-width:30px;text-align:right;font-weight:500;color:var(--text-muted, #94a3b8)}.rating-container:focus{outline:none}.rating-container:focus .rating-items{box-shadow:0 0 0 3px var(--rating-active-color, #fbbf24) 44;border-radius:8px;padding:4px;margin:-4px}`;
790
+
791
+ const Rating = class {
792
+ constructor(hostRef) {
793
+ index.registerInstance(this, hostRef);
794
+ this.ratingChange = index.createEvent(this, "ratingChange");
795
+ }
796
+ get el() { return index.getElement(this); }
797
+ /**
798
+ * Type of rating
799
+ */
800
+ type = 'star';
801
+ /**
802
+ * Current rating value
803
+ */
804
+ value = 0;
805
+ /**
806
+ * Maximum rating value (for star and smiley types)
807
+ */
808
+ max = 5;
809
+ /**
810
+ * Size of the rating icons
811
+ */
812
+ size = 'md';
813
+ /**
814
+ * Color of active rating
815
+ */
816
+ color = 'warning';
817
+ /**
818
+ * Custom active color (hex/css color)
819
+ */
820
+ activeColor;
821
+ /**
822
+ * Custom active fill color (hex/css color)
823
+ */
824
+ activeFillColor;
825
+ /**
826
+ * Read-only mode
827
+ */
828
+ readonly = false;
829
+ /**
830
+ * Disabled state
831
+ */
832
+ disabled = false;
833
+ /**
834
+ * Allow half ratings (only for star type)
835
+ */
836
+ allowHalf = false;
837
+ /**
838
+ * Show rating value text
839
+ */
840
+ showValue = false;
841
+ /**
842
+ /** High-Fidelity: Tactical side/bottom description */
843
+ description;
844
+ descriptionPosition = 'bottom';
845
+ /** Custom labels for ratings
846
+ */
847
+ labels;
848
+ /** High-Fidelity: Atmospheric glow on active items */
849
+ glow = false;
850
+ /** High-Fidelity: Sensory vibration feedback */
851
+ haptic = false;
852
+ /** High-Fidelity: Victory pulse on max rating */
853
+ victoryGlow = false;
854
+ /** High-Fidelity: Visual variant */
855
+ variant = 'default';
856
+ /** High-Fidelity: Allow clearing the rating by clicking the same value */
857
+ clearable = false;
858
+ /** Custom Icon Name (Lucide) */
859
+ iconName = 'star';
860
+ /** Icon Library */
861
+ iconLibrary = 'lucide';
862
+ /** High-Fidelity: Image URL for the rating marker */
863
+ image;
864
+ /** High-Fidelity: Dynamic color mapping for individual items (JSON array) */
865
+ colorMap;
866
+ /** Validation: Error state */
867
+ invalid = false;
868
+ /** Validation: Error message */
869
+ errorMessage;
870
+ /** Show total review count */
871
+ showReviews = false;
872
+ /** Total review count value */
873
+ totalReviews = 0;
874
+ /** Validation: Helper text */
875
+ helperText;
876
+ /**
877
+ * Show a distribution histogram of total reviews
878
+ */
879
+ showHistogram = false;
880
+ /**
881
+ * Data for the rating summary histogram (JSON array of counts from 5 to 1 stars)
882
+ */
883
+ summaryData;
884
+ /**
885
+ * Use native emojis instead of icons for smiley rating
886
+ */
887
+ useEmoji = false;
888
+ /**
889
+ * Show a visual summary of the current rating (label and value)
890
+ */
891
+ showSummary = false;
892
+ /**
893
+ * Position of the summary
894
+ */
895
+ summaryPosition = 'side';
896
+ /**
897
+ * RTL support
898
+ */
899
+ rtl = false;
900
+ hoverValue = 0;
901
+ isVictory = false;
902
+ particles = [];
903
+ /**
904
+ * Emitted when rating changes
905
+ */
906
+ ratingChange;
907
+ getLabels() {
908
+ if (this.labels) {
909
+ try {
910
+ return typeof this.labels === 'string' ? JSON.parse(this.labels) : this.labels;
911
+ }
912
+ catch {
913
+ return [];
914
+ }
915
+ }
916
+ return [];
917
+ }
918
+ handleClick = (rating) => {
919
+ if (this.readonly || this.disabled)
920
+ return;
921
+ if (this.type === 'thumb') {
922
+ // Thumb: toggle between 1 (up), -1 (down), 0 (none)
923
+ if (this.value === rating) {
924
+ this.value = 0;
925
+ }
926
+ else {
927
+ this.value = rating;
928
+ }
929
+ }
930
+ else {
931
+ if (this.clearable && this.value === rating) {
932
+ this.value = 0;
933
+ }
934
+ else {
935
+ this.value = rating;
936
+ }
937
+ }
938
+ if (this.haptic && 'vibrate' in navigator) {
939
+ navigator.vibrate(this.value === this.max ? [15, 30, 15] : 10);
940
+ }
941
+ if (this.value === this.max) {
942
+ this.triggerVictory();
943
+ }
944
+ this.ratingChange.emit(this.value);
945
+ };
946
+ handleKeyDown = (event) => {
947
+ if (this.readonly || this.disabled)
948
+ return;
949
+ let newValue = this.value;
950
+ const step = this.allowHalf ? 0.5 : 1;
951
+ const isRtl = this.rtl || this.el.dir === 'rtl' || !!this.el.closest('[dir="rtl"]');
952
+ switch (event.key) {
953
+ case 'ArrowRight':
954
+ case 'ArrowUp':
955
+ newValue = isRtl
956
+ ? Math.max(0, this.value - step)
957
+ : Math.min(this.max, this.value + step);
958
+ event.preventDefault();
959
+ break;
960
+ case 'ArrowLeft':
961
+ case 'ArrowDown':
962
+ newValue = isRtl
963
+ ? Math.min(this.max, this.value + step)
964
+ : Math.max(0, this.value - step);
965
+ event.preventDefault();
966
+ break;
967
+ case 'Home':
968
+ newValue = 0;
969
+ event.preventDefault();
970
+ break;
971
+ case 'End':
972
+ newValue = this.max;
973
+ event.preventDefault();
974
+ break;
975
+ default:
976
+ return;
977
+ }
978
+ if (newValue !== this.value) {
979
+ this.value = newValue;
980
+ this.ratingChange.emit(this.value);
981
+ if (this.value === this.max)
982
+ this.triggerVictory();
983
+ }
984
+ };
985
+ triggerVictory = () => {
986
+ if (!this.victoryGlow)
987
+ return;
988
+ this.isVictory = true;
989
+ // Create euphoria particles
990
+ const newParticles = Array.from({ length: 24 }).map((_, i) => ({
991
+ id: Date.now() + i,
992
+ tx: (Math.random() - 0.5) * 500,
993
+ ty: -(Math.random() * 300 + 100),
994
+ rot: Math.random() * 720,
995
+ clr: ['#fbbf24', '#f59e0b', '#3bf673', '#10b981', '#ef4444', '#6366f1'][i % 6],
996
+ size: Math.random() * 8 + 4
997
+ }));
998
+ this.particles = newParticles;
999
+ setTimeout(() => {
1000
+ this.isVictory = false;
1001
+ this.particles = [];
1002
+ }, 1500);
1003
+ };
1004
+ handleMouseEnter = (rating) => {
1005
+ if (this.readonly || this.disabled)
1006
+ return;
1007
+ this.hoverValue = rating;
1008
+ };
1009
+ handleMouseLeave = () => {
1010
+ if (this.readonly || this.disabled)
1011
+ return;
1012
+ this.hoverValue = 0;
1013
+ };
1014
+ renderStarRating() {
1015
+ const items = [];
1016
+ const currentValue = this.hoverValue || this.value;
1017
+ const colorMapArray = this.colorMap ? JSON.parse(this.colorMap) : null;
1018
+ for (let i = 1; i <= this.max; i++) {
1019
+ const isActive = currentValue >= i;
1020
+ const isHalf = this.allowHalf && currentValue >= i - 0.5 && currentValue < i;
1021
+ const isHovered = this.hoverValue >= i;
1022
+ const itemColor = colorMapArray && colorMapArray[i - 1] ? colorMapArray[i - 1] : (this.activeColor || this.color);
1023
+ const activeFill = this.activeFillColor || 'currentColor';
1024
+ items.push(index.h("button", { type: "button", class: {
1025
+ 'rating-item': true,
1026
+ 'rating-item-active': isActive || isHalf,
1027
+ 'rating-item-half': isHalf,
1028
+ 'rating-item-hover': isHovered,
1029
+ [`rating-color-${itemColor}`]: !!itemColor,
1030
+ }, onClick: () => this.handleClick(i), onMouseEnter: () => this.handleMouseEnter(i), onMouseLeave: this.handleMouseLeave, disabled: this.disabled || this.readonly, "aria-label": `Rate ${i} out of ${this.max}` }, index.h("div", { class: "rating-icon-container" }, this.image ? (index.h("img", { src: this.image, class: "rating-icon-bg", alt: "rating" })) : (index.h("ui-icon", { name: this.iconName, color: "currentColor", library: this.iconLibrary, size: this.size, class: "rating-icon-bg" })), index.h("div", { class: "rating-icon-fill", style: { width: isHalf ? '50%' : (isActive ? '100% ' : '0%') } }, this.image ? (index.h("img", { src: this.image, alt: "rating active" })) : (index.h("ui-icon", { name: this.iconName, color: "currentColor", library: this.iconLibrary, size: this.size, fill: activeFill }))))));
1031
+ }
1032
+ return items;
1033
+ }
1034
+ renderHistogram() {
1035
+ if (!this.summaryData)
1036
+ return null;
1037
+ try {
1038
+ const data = typeof this.summaryData === 'string' ? JSON.parse(this.summaryData) : this.summaryData;
1039
+ if (!Array.isArray(data))
1040
+ return null;
1041
+ const total = data.reduce((a, b) => a + b, 0);
1042
+ const activeColor = this.activeColor || `var(--rating-${this.color})`;
1043
+ return (index.h("div", { class: "rating-histogram" }, data.map((count, index$1) => {
1044
+ const stars = data.length - index$1;
1045
+ const percentage = total > 0 ? (count / total) * 100 : 0;
1046
+ return (index.h("div", { class: "histogram-row" }, index.h("span", { class: "histogram-label" }, stars, " ", index.h("ui-icon", { name: "star", library: "lucide", size: "10px" })), index.h("div", { class: "histogram-bar-container" }, index.h("div", { class: "histogram-bar-fill", style: { width: `${percentage}%`, backgroundColor: activeColor } })), index.h("span", { class: "histogram-count" }, count)));
1047
+ })));
1048
+ }
1049
+ catch {
1050
+ return null;
1051
+ }
1052
+ }
1053
+ renderSmileyRating() {
1054
+ const items = [];
1055
+ const labels = this.getLabels();
1056
+ const icons = ['frown', 'meh', 'smile', 'laugh', 'heart'];
1057
+ const emojis = ['😢', '😕', '😐', '🙂', '😄'];
1058
+ const currentValue = this.hoverValue || this.value;
1059
+ for (let i = 1; i <= this.max; i++) {
1060
+ const isHovered = this.hoverValue === i;
1061
+ const isSelected = this.value === i;
1062
+ const isActive = currentValue === i || (this.useEmoji && currentValue >= i);
1063
+ const icon = icons[i - 1] || 'smile';
1064
+ const emoji = emojis[i - 1] || '🙂';
1065
+ items.push(index.h("div", { class: "smiley-item-wrapper" }, index.h("button", { type: "button", class: {
1066
+ 'rating-item': true,
1067
+ 'rating-item-smiley': true,
1068
+ 'rating-item-active': isActive,
1069
+ 'rating-item-selected': isSelected,
1070
+ 'rating-item-hover': isHovered,
1071
+ 'rating-item-emoji': this.useEmoji,
1072
+ }, onClick: () => this.handleClick(i), onMouseEnter: () => this.handleMouseEnter(i), onMouseLeave: this.handleMouseLeave, disabled: this.disabled || this.readonly, "aria-label": labels[i - 1] || `Rate ${i} out of ${this.max}` }, this.useEmoji ? (index.h("span", { class: "emoji-display" }, currentValue >= i || isSelected ? emoji : '⚪')) : (index.h("div", { class: "rating-icon-container" }, index.h("ui-icon", { name: icon, color: "currentColor", library: "lucide", size: this.size, class: "rating-icon-bg" }), index.h("div", { class: "rating-icon-fill", style: { width: isActive ? '100%' : '0%' } }, index.h("ui-icon", { name: icon, color: "currentColor", library: "lucide", size: this.size }))))), labels[i - 1] && (index.h("span", { class: "smiley-label" }, labels[i - 1]))));
1073
+ }
1074
+ return items;
1075
+ }
1076
+ renderThumbRating() {
1077
+ const thumbUpActive = this.value === 1 || this.hoverValue === 1;
1078
+ const thumbDownActive = this.value === -1 || this.hoverValue === -1;
1079
+ return [
1080
+ index.h("button", { type: "button", class: {
1081
+ 'rating-item': true,
1082
+ 'rating-item-thumb': true,
1083
+ 'rating-item-active': thumbUpActive,
1084
+ 'rating-item-thumb-up': true,
1085
+ }, onClick: () => this.handleClick(1), onMouseEnter: () => this.handleMouseEnter(1), onMouseLeave: this.handleMouseLeave, disabled: this.disabled || this.readonly, "aria-label": "Thumbs up" }, index.h("div", { class: "rating-icon-container" }, index.h("ui-icon", { name: "thumbs-up", color: "currentColor", library: "lucide", class: "rating-icon-bg" }), index.h("div", { class: "rating-icon-fill", style: { width: thumbUpActive ? '100%' : '0%' } }, index.h("ui-icon", { name: "thumbs-up", color: "currentColor", library: "lucide" })))),
1086
+ index.h("button", { type: "button", class: {
1087
+ 'rating-item': true,
1088
+ 'rating-item-thumb': true,
1089
+ 'rating-item-active': thumbDownActive,
1090
+ 'rating-item-thumb-down': true,
1091
+ }, onClick: () => this.handleClick(-1), onMouseEnter: () => this.handleMouseEnter(-1), onMouseLeave: this.handleMouseLeave, disabled: this.disabled || this.readonly, "aria-label": "Thumbs down" }, index.h("div", { class: "rating-icon-container" }, index.h("ui-icon", { name: "thumbs-down", library: "lucide", class: "rating-icon-bg" }), index.h("div", { class: "rating-icon-fill", style: { width: thumbDownActive ? '100%' : '0%' } }, index.h("ui-icon", { name: "thumbs-down", library: "lucide" })))),
1092
+ ];
1093
+ }
1094
+ render() {
1095
+ const isRtl = this.rtl || this.el.dir === 'rtl' || !!this.el.closest('[dir="rtl"]');
1096
+ const classes = {
1097
+ 'rating-container': true,
1098
+ 'rating-rtl': isRtl,
1099
+ [`rating-size-${this.size}`]: true,
1100
+ [`rating-variant-${this.variant}`]: true,
1101
+ 'rating-readonly': this.readonly,
1102
+ 'rating-disabled': this.disabled,
1103
+ 'rating-glow': this.glow,
1104
+ 'rating-victory': this.isVictory,
1105
+ 'rating-invalid': this.invalid,
1106
+ };
1107
+ const labels = this.getLabels();
1108
+ const currentLabel = this.type === 'thumb'
1109
+ ? (this.value === 1 ? 'Liked' : this.value === -1 ? 'Disliked' : '')
1110
+ : labels[(this.hoverValue || this.value) - 1];
1111
+ const descriptionElement = this.description && (index.h("div", { key: 'ddad90f4a42a3c07145f31156cdc6495f33b0bee', class: `rating-description rating-description-${this.descriptionPosition}` }, this.description));
1112
+ const helperElement = (this.invalid && this.errorMessage) ? (index.h("div", { class: "rating-helper rating-error" }, index.h("ui-icon", { name: "alert-circle", library: "lucide", size: "12px" }), index.h("span", null, this.errorMessage))) : this.helperText ? (index.h("div", { class: "rating-helper" }, this.helperText)) : null;
1113
+ const dynamicStyle = {
1114
+ '--rating-active-color': this.activeColor || `var(--rating-${this.color})`,
1115
+ '--rating-fill-color': this.activeFillColor || 'currentColor',
1116
+ };
1117
+ const summaryElement = (this.showSummary && currentLabel) ? (index.h("div", { class: `rating-summary rating-summary-${this.summaryPosition}` }, index.h("div", { class: "summary-divider" }), index.h("div", { class: "summary-content" }, index.h("p", { class: "summary-label" }, currentLabel), index.h("p", { class: "summary-value" }, (this.hoverValue || this.value).toFixed(0), " / ", this.max)))) : null;
1118
+ return (index.h("div", { key: '09946cb1ba974009053c5cdf39a92c904f485cc7', class: classes, style: dynamicStyle, tabindex: this.disabled ? -1 : 0, onKeyDown: this.handleKeyDown, role: "group", "aria-label": "Rating component" }, index.h("div", { key: '8c56d47b79ddd22a69fd58dee44f13182ebabc3f', class: "rating-items-container" }, index.h("div", { key: '6c9206ec1dc844689631a32799dd368bef1160b0', class: "rating-items" }, this.type === 'star' && this.renderStarRating(), this.type === 'smiley' && this.renderSmileyRating(), this.type === 'thumb' && this.renderThumbRating(), this.descriptionPosition === 'side' && descriptionElement), this.summaryPosition === 'side' && summaryElement), this.showValue && !this.showSummary && this.type !== 'thumb' && (index.h("div", { key: '2b733f67e6c01f31e789b79ea1f652a63edcde39', class: "rating-value" }, currentLabel && index.h("span", { key: 'd5ca42772c409783b2ef5dea7da47944df87eec9', class: "rating-label" }, currentLabel), index.h("span", { key: '860c841ed2d7b2e642ad132d91bcd731e1a974c2', class: "rating-number" }, (this.hoverValue || this.value).toFixed(this.allowHalf ? 1 : 0), " / ", this.max))), this.showReviews && this.totalReviews > 0 && (index.h("div", { key: 'd3f05521d7337580d120356ce44cc149211fe28f', class: "rating-total-reviews" }, index.h("span", { key: '4f3c9863f74bb3e2a5f2d46cb94bef7e053471a1', class: "review-dot" }, "\u2022"), index.h("span", { key: '9eb1794ad9f571667afd26857719bc38c68f5dbf', class: "review-count" }, "(", this.totalReviews, " reviews)"))), this.descriptionPosition === 'bottom' && descriptionElement, this.summaryPosition === 'bottom' && summaryElement, this.showHistogram && this.renderHistogram(), helperElement, this.particles.map(p => (index.h("div", { key: p.id, class: "rating-victory-particle", style: {
1119
+ '--tx': `${p.tx}px`,
1120
+ '--ty': `${p.ty}px`,
1121
+ '--rot': `${p.rot}deg`,
1122
+ '--clr': p.clr,
1123
+ '--size': `${p.size}px`,
1124
+ 'left': '50%',
1125
+ 'top': '50%'
1126
+ } })))));
1127
+ }
1128
+ };
1129
+ Rating.style = ratingCss();
1130
+
1131
+ const skeletonLoaderCss = () => `@charset "UTF-8";.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{--skeleton-bg:var(--skeleton-loader-bg, var(--bg-tertiary, #e2e8f0));--skeleton-wave-bg:var(--skeleton-loader-wave-bg, var(--bg-secondary, #f3f4f6));--skeleton-border-radius:var(--skeleton-loader-border-radius, 4px);--skeleton-progress-bar-bg:var(--skeleton-loader-progress-bar-bg, var(--bg-primary, #ffffff));--skeleton-focus-ring:var(--skeleton-loader-focus-ring, var(--color-primary, #10b981));--skeleton-focus-shadow:var(--skeleton-loader-focus-shadow, #dbeafe)}:host-context([data-theme=dark]),:host-context([data-theme=blue]),:host-context([data-theme=violet]),:host-context([data-theme=green]),:host-context([data-theme=pink]),:host-context(.theme-dark),:host-context(.theme-blue),:host-context(.theme-violet),:host-context(.theme-green),:host-context(.theme-pink),:host(.theme-dark),:host([dark=dark]),:host-context(.skeleton-dark),.skeleton-dark{--skeleton-bg:var(--skeleton-loader-bg, var(--bg-secondary, #1e293b));--skeleton-wave-bg:var(--skeleton-loader-wave-bg, var(--bg-tertiary, #334155))}.skeleton-color-primary{--skeleton-bg:color-mix(in srgb, var(--color-primary, #10b981) 20%, transparent);--skeleton-wave-bg:color-mix(in srgb, var(--color-primary, #10b981) 40%, transparent)}.skeleton-color-secondary{--skeleton-bg:color-mix(in srgb, var(--color-secondary, #64748b) 20%, transparent);--skeleton-wave-bg:color-mix(in srgb, var(--color-secondary, #64748b) 40%, transparent)}.skeleton-color-success{--skeleton-bg:color-mix(in srgb, var(--color-success, #22c55e) 20%, transparent);--skeleton-wave-bg:color-mix(in srgb, var(--color-success, #22c55e) 40%, transparent)}.skeleton-color-danger{--skeleton-bg:color-mix(in srgb, var(--color-danger, #ef4444) 20%, transparent);--skeleton-wave-bg:color-mix(in srgb, var(--color-danger, #ef4444) 40%, transparent)}.skeleton-color-warning{--skeleton-bg:color-mix(in srgb, var(--color-warning, #f59e0b) 20%, transparent);--skeleton-wave-bg:color-mix(in srgb, var(--color-warning, #f59e0b) 40%, transparent)}.skeleton-color-info{--skeleton-bg:color-mix(in srgb, var(--color-info, #38bdf8) 20%, transparent);--skeleton-wave-bg:color-mix(in srgb, var(--color-info, #38bdf8) 40%, transparent)}.skeleton-replication-container ::slotted([slot=custom]:focus-visible){outline:2px solid var(--color-primary, #10b981);outline-offset:2px;border-radius:4px;box-shadow:0 0 0 2px var(--border-subtle, #dbeafe);transition:outline 0.2s, box-shadow 0.2s}.skeleton-rtl .skeleton{direction:rtl;--skeleton-wave-angle:-90deg;animation-direction:reverse}.skeleton-progress-bar{transition:width 0.3s cubic-bezier(0.4, 0, 0.2, 1);background:var(--skeleton-wave-bg, var(--bg-primary, #ffffff));height:4px;border-radius:2px;margin-top:4px}.skeleton-replication-container slot[name=custom]{display:block;margin-top:8px}:host{display:block}.skeleton{background:var(--skeleton-bg, #f0f0f0);position:relative;overflow:hidden}.skeleton-animated.skeleton-pulse{animation:skeleton-pulse var(--skeleton-wave-speed, 1.5s) ease-in-out infinite}.skeleton-animated.skeleton-wave{background:linear-gradient(var(--skeleton-wave-angle, 90deg), var(--skeleton-bg, #f0f0f0) 25%, var(--skeleton-wave-bg, #e0e0e0) 50%, var(--skeleton-bg, #f0f0f0) 75%);background-size:200% 100%;animation:skeleton-wave var(--skeleton-wave-speed, 1.5s) ease-in-out infinite;}.skeleton-dark .skeleton-animated.skeleton-wave{background:linear-gradient(var(--skeleton-wave-angle, 90deg), var(--skeleton-bg, #1e293b) 25%, var(--skeleton-wave-bg, #334155) 50%, var(--skeleton-bg, #1e293b) 75%);background-size:200% 100%}.skeleton-animated.skeleton-shimmer{background:linear-gradient(110deg, var(--skeleton-bg, #f0f0f0) 8%, var(--skeleton-wave-bg, #e0e0e0) 18%, var(--skeleton-bg, #f0f0f0) 33%);background-size:200% 100%;animation:skeleton-shimmer var(--skeleton-wave-speed, 1.5s) linear infinite}.skeleton-animated.skeleton-sheen::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translateX(-100%);background:linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);animation:skeleton-sheen var(--skeleton-wave-speed, 1.5s) infinite}.skeleton-animated.skeleton-glow{animation:skeleton-glow var(--skeleton-wave-speed, 1.5s) ease-in-out infinite alternate}.skeleton-animated.skeleton-flicker{animation:skeleton-flicker 0.2s infinite}.skeleton-circle{border-radius:50%}.skeleton-rounded{border-radius:var(--skeleton-border-radius, 4px)}.skeleton-text{border-radius:4px}.skeleton-avatar{border-radius:50%}.skeleton-button{border-radius:6px}.skeleton-card{border-radius:8px;padding:16px}.skeleton-list-item{border-radius:4px;padding:12px;display:flex;align-items:center;gap:12px}.skeleton-card-content{display:flex;flex-direction:column;gap:12px}.skeleton-card-header{display:flex;align-items:center;gap:12px}.skeleton-card-title{flex:1;display:flex;flex-direction:column;gap:6px}.skeleton-card-body{display:flex;flex-direction:column;gap:8px}.skeleton-list-content{display:flex;align-items:center;gap:12px;width:100%}.skeleton-list-text{flex:1;display:flex;flex-direction:column;gap:6px}.skeleton-card .skeleton-circle,.skeleton-card .skeleton-text,.skeleton-list-item .skeleton-circle,.skeleton-list-item .skeleton-text{background:var(--skeleton-bg, #f0f0f0);animation:inherit}.skeleton-image-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.skeleton-profile-template{display:flex;align-items:center;gap:16px}.skeleton-profile-template .skeleton-profile-lines{display:flex;flex-direction:column;gap:8px}.skeleton-media-object-template{display:flex;align-items:flex-start;gap:12px}.skeleton-media-object-template .skeleton-media-lines{display:flex;flex-direction:column;gap:6px}.skeleton-feed-template{width:100%;padding:16px;border:1px solid var(--ui-color-border, var(--border-default, #e5e7eb));border-radius:12px;background:var(--ui-color-surface, var(--bg-primary, #ffffff))}.skeleton-mask{width:fit-content;height:fit-content;min-width:20px;min-height:20px;display:inline-block}.skeleton-mask>*{visibility:hidden}.skeleton-mask.skeleton-ghost>*{visibility:visible !important;opacity:0.15 !important;filter:blur(2px) grayscale(1)}.skeleton-replication-container{width:100%;display:flex;gap:var(--skeleton-gap, 16px)}.skeleton-replication-container.skeleton-direction-row{flex-wrap:wrap;flex-direction:row !important}.skeleton-replication-container.skeleton-direction-column{flex-direction:column !important}.skeleton-elevated{box-shadow:var(--skeleton-elevation, none)}@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:0.6}}@keyframes skeleton-wave{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes skeleton-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}@keyframes skeleton-sheen{100%{transform:translateX(100%)}}@keyframes skeleton-glow{from{box-shadow:0 0 5px rgba(255, 255, 255, 0), inset 0 0 5px rgba(255, 255, 255, 0)}to{box-shadow:0 0 20px rgba(255, 255, 255, 0.2), inset 0 0 10px rgba(255, 255, 255, 0.1)}}@keyframes skeleton-flicker{0%{opacity:0.95}25%{opacity:1}50%{opacity:0.9}75%{opacity:1}100%{opacity:0.95}}:host{--skeleton-border-radius:4px}.skeleton-speed-slow.skeleton-pulse{animation-duration:3s}.skeleton-speed-slow.skeleton-wave{animation-duration:3s}.skeleton-speed-slow.skeleton-shimmer{animation-duration:3.5s}.skeleton-speed-slow.skeleton-sheen::after{animation-duration:3.5s}.skeleton-speed-slow.skeleton-glow{animation-duration:3s}.skeleton-speed-normal.skeleton-pulse{animation-duration:1.5s}.skeleton-speed-normal.skeleton-wave{animation-duration:1.5s}.skeleton-speed-normal.skeleton-shimmer{animation-duration:1.8s}.skeleton-speed-normal.skeleton-sheen::after{animation-duration:1.8s}.skeleton-speed-normal.skeleton-glow{animation-duration:1.5s}.skeleton-speed-fast.skeleton-pulse{animation-duration:0.8s}.skeleton-speed-fast.skeleton-wave{animation-duration:0.8s}.skeleton-speed-fast.skeleton-shimmer{animation-duration:1s}.skeleton-speed-fast.skeleton-sheen::after{animation-duration:1s}.skeleton-speed-fast.skeleton-glow{animation-duration:0.8s}`;
1132
+
1133
+ const SkeletonLoader = class {
1134
+ constructor(hostRef) {
1135
+ index.registerInstance(this, hostRef);
1136
+ this.skeletonShow = index.createEvent(this, "skeletonShow");
1137
+ this.skeletonHide = index.createEvent(this, "skeletonHide");
1138
+ }
1139
+ /** ARIA label for accessibility */
1140
+ ariaLabel;
1141
+ /** ARIA live region (off, polite, assertive) */
1142
+ ariaLive = 'off';
1143
+ /** ARIA role override (status, progressbar, etc.) */
1144
+ ariaRole;
1145
+ /** Progress value (0-100) for determinate skeletons */
1146
+ progress;
1147
+ /** Show in dark mode (auto, light, dark) */
1148
+ dark = 'auto';
1149
+ /** RTL shimmer direction */
1150
+ rtl = false;
1151
+ /** Fires when skeleton is shown */
1152
+ skeletonShow;
1153
+ /** Fires when skeleton is hidden */
1154
+ skeletonHide;
1155
+ /**
1156
+ * Layout template to use for automatic skeleton generation.
1157
+ * If set to something other than 'none', the `shape` prop is overridden for the template layout.
1158
+ */
1159
+ template = 'none';
1160
+ /**
1161
+ * Number of items to replicate (useful for lists, cards, etc.)
1162
+ * Default: 1
1163
+ */
1164
+ count = 1;
1165
+ /**
1166
+ * Layout direction for replicated items ('row' or 'column')
1167
+ */
1168
+ direction = 'column';
1169
+ /**
1170
+ * If true, animations will automatically pause when the component is not in the viewport.
1171
+ * Dramatically improves performance and battery life for long lists.
1172
+ */
1173
+ lazyAnimation = true;
1174
+ /**
1175
+ * Animation speed
1176
+ */
1177
+ speed = 'normal';
1178
+ /**
1179
+ * Color variant or custom color (hex/rgba)
1180
+ */
1181
+ color = 'neutral';
1182
+ radius;
1183
+ /**
1184
+ * Stagger delay in ms between replicated items
1185
+ * Makes the animation feel more organic as it flows down the page.
1186
+ */
1187
+ stagger = 0;
1188
+ /**
1189
+ * Layout gap between replicated items (e.g. '12px', '1rem')
1190
+ */
1191
+ gap = '16px';
1192
+ /**
1193
+ * Optional explicit highlight/shimmer color for the wave animation.
1194
+ * If not provided, it is auto-derived from `color` by lightening it.
1195
+ */
1196
+ highlightColor;
1197
+ /**
1198
+ * Elevation / shadow intensity (0-4) to match the UI component it mimics
1199
+ */
1200
+ elevation = 0;
1201
+ /**
1202
+ * Shape of the skeleton
1203
+ */
1204
+ shape = 'rectangle';
1205
+ /**
1206
+ * If true, the skeleton acts as a mask over its children.
1207
+ * Useful for wrapping text or components to skeletonize them seamlessly.
1208
+ */
1209
+ mask = false;
1210
+ /**
1211
+ * If true, keeps the children visible at low opacity and blurred behind the skeleton.
1212
+ * Only works when `mask` is true.
1213
+ */
1214
+ ghost = false;
1215
+ /**
1216
+ * Predefined size of the skeleton (xs, sm, md, lg, xl, 2xl)
1217
+ */
1218
+ size = 'md';
1219
+ /**
1220
+ * Width of the skeleton
1221
+ */
1222
+ width = '100%';
1223
+ /**
1224
+ * Height of the skeleton
1225
+ */
1226
+ height = '20px';
1227
+ /**
1228
+ * Border radius for rounded shapes
1229
+ */
1230
+ borderRadius = '4px';
1231
+ /**
1232
+ * Whether to show animation
1233
+ */
1234
+ animated = true;
1235
+ /**
1236
+ * Animation type: 'pulse' or 'wave'
1237
+ */
1238
+ animationType = 'pulse';
1239
+ /**
1240
+ * Custom class for additional styling
1241
+ */
1242
+ customClass = '';
1243
+ /**
1244
+ * Delay in milliseconds before showing the skeleton.
1245
+ * Prevents "flicker" for high-speed connections.
1246
+ */
1247
+ delay = 0;
1248
+ /**
1249
+ * Angle of the wave animation (e.g. '45deg', '90deg').
1250
+ * Default: '90deg' (horizontal)
1251
+ */
1252
+ waveAngle = '90deg';
1253
+ /**
1254
+ * Duration of the wave animation cycle (e.g. '1.5s', '3s').
1255
+ * Default: '1.5s'
1256
+ */
1257
+ waveSpeed = '1.5s';
1258
+ /**
1259
+ * Number of rows (lines) to render when shape is 'text'
1260
+ */
1261
+ rows = 1;
1262
+ /**
1263
+ * Width of the last row when multi-line text is used (e.g. '60%')
1264
+ */
1265
+ lastRowWidth = '80%';
1266
+ isActuallyVisible = false;
1267
+ isInView = true;
1268
+ delayTimer;
1269
+ observer;
1270
+ componentDidLoad() {
1271
+ if (this.lazyAnimation) {
1272
+ this.setupObserver();
1273
+ }
1274
+ }
1275
+ setupObserver() {
1276
+ if (typeof globalThis.IntersectionObserver === 'undefined') {
1277
+ this.isInView = true;
1278
+ return;
1279
+ }
1280
+ this.observer = new IntersectionObserver((entries) => {
1281
+ entries.forEach(entry => {
1282
+ this.isInView = entry.isIntersecting;
1283
+ });
1284
+ }, { threshold: 0.1 });
1285
+ if (this.el) {
1286
+ this.observer.observe(this.el);
1287
+ }
1288
+ }
1289
+ handleDelayChange() {
1290
+ this.handleVisibility();
1291
+ }
1292
+ componentWillLoad() {
1293
+ this.handleVisibility();
1294
+ }
1295
+ get el() { return index.getElement(this); }
1296
+ handleVisibility() {
1297
+ if (this.delay <= 0) {
1298
+ if (!this.isActuallyVisible)
1299
+ this.skeletonShow?.emit();
1300
+ this.isActuallyVisible = true;
1301
+ return;
1302
+ }
1303
+ if (this.delayTimer)
1304
+ clearTimeout(this.delayTimer);
1305
+ if (this.isActuallyVisible)
1306
+ this.skeletonHide?.emit();
1307
+ this.isActuallyVisible = false;
1308
+ this.delayTimer = setTimeout(() => {
1309
+ this.isActuallyVisible = true;
1310
+ this.skeletonShow?.emit();
1311
+ }, this.delay);
1312
+ }
1313
+ disconnectedCallback() {
1314
+ if (this.delayTimer)
1315
+ clearTimeout(this.delayTimer);
1316
+ if (this.observer)
1317
+ this.observer.disconnect();
1318
+ }
1319
+ getSizeDimensions() {
1320
+ const sizeMap = {
1321
+ '3xs': { width: '12px', height: '12px' },
1322
+ '2xs': { width: '16px', height: '16px' },
1323
+ 'xs': { width: '20px', height: '20px' },
1324
+ 'sm': { width: '24px', height: '24px' },
1325
+ 'md': { width: '32px', height: '32px' },
1326
+ 'lg': { width: '48px', height: '48px' },
1327
+ 'xl': { width: '64px', height: '64px' },
1328
+ '2xl': { width: '80px', height: '80px' },
1329
+ '3xl': { width: '120px', height: '120px' },
1330
+ '4xl': { width: '160px', height: '160px' },
1331
+ };
1332
+ return sizeMap[this.size] || sizeMap['md'];
1333
+ }
1334
+ getSkeletonStyles() {
1335
+ // Use size dimensions as defaults if width/height are not explicitly set
1336
+ const sizeDims = this.getSizeDimensions();
1337
+ const baseStyles = {
1338
+ width: this.width !== '100%' ? this.width : sizeDims.width,
1339
+ height: this.height !== '20px' ? this.height : sizeDims.height,
1340
+ };
1341
+ switch (this.shape) {
1342
+ case 'circle':
1343
+ baseStyles.borderRadius = '50%';
1344
+ // Ensure width and height are equal for circles
1345
+ const circleSize = Math.min(parseInt(this.width), parseInt(this.height) || parseInt(this.width));
1346
+ baseStyles.width = `${circleSize}px`;
1347
+ baseStyles.height = `${circleSize}px`;
1348
+ break;
1349
+ case 'square':
1350
+ // Ensure width and height are equal for squares
1351
+ const squareSize = Math.min(parseInt(this.width), parseInt(this.height) || parseInt(this.width));
1352
+ baseStyles.width = `${squareSize}px`;
1353
+ baseStyles.height = `${squareSize}px`;
1354
+ baseStyles.borderRadius = '0';
1355
+ break;
1356
+ case 'oval':
1357
+ baseStyles.borderRadius = '50%';
1358
+ // Oval allows different width and height (ellipse)
1359
+ break;
1360
+ case 'rounded-square':
1361
+ // Ensure width and height are equal for rounded squares
1362
+ const roundedSquareSize = Math.min(parseInt(this.width), parseInt(this.height) || parseInt(this.width));
1363
+ baseStyles.width = `${roundedSquareSize}px`;
1364
+ baseStyles.height = `${roundedSquareSize}px`;
1365
+ baseStyles.borderRadius = this.borderRadius;
1366
+ break;
1367
+ case 'rounded-rectangle':
1368
+ baseStyles.borderRadius = this.borderRadius;
1369
+ // Rounded rectangle allows different width and height
1370
+ break;
1371
+ case 'rounded':
1372
+ baseStyles.borderRadius = this.borderRadius;
1373
+ break;
1374
+ case 'text':
1375
+ baseStyles.borderRadius = '4px';
1376
+ // Text shapes use smer heights based on size
1377
+ const textSizeMap = {
1378
+ '3xs': '10px',
1379
+ '2xs': '12px',
1380
+ 'xs': '14px',
1381
+ 'sm': '16px',
1382
+ 'md': '18px',
1383
+ 'lg': '24px',
1384
+ 'xl': '32px',
1385
+ '2xl': '40px',
1386
+ '3xl': '48px',
1387
+ '4xl': '64px',
1388
+ };
1389
+ baseStyles.height = textSizeMap[this.size] || '18px';
1390
+ break;
1391
+ case 'avatar':
1392
+ baseStyles.borderRadius = '50%';
1393
+ const avatarSize = this.getSizeDimensions();
1394
+ baseStyles.width = this.width !== '100%' ? this.width : avatarSize.width;
1395
+ baseStyles.height = this.height !== '20px' ? this.height : avatarSize.height;
1396
+ break;
1397
+ case 'button':
1398
+ baseStyles.borderRadius = '6px';
1399
+ const buttonHeightMap = {
1400
+ 'xs': '24px',
1401
+ 'sm': '28px',
1402
+ 'md': '32px',
1403
+ 'lg': '36px',
1404
+ 'xl': '40px',
1405
+ '2xl': '44px',
1406
+ };
1407
+ baseStyles.height = this.height !== '20px' ? this.height : (buttonHeightMap[this.size] || '32px');
1408
+ break;
1409
+ case 'pill':
1410
+ baseStyles.borderRadius = '20px';
1411
+ const pillHeightMap = {
1412
+ 'xs': '20px',
1413
+ 'sm': '24px',
1414
+ 'md': '28px',
1415
+ 'lg': '32px',
1416
+ };
1417
+ baseStyles.height = this.height !== '20px' ? this.height : (pillHeightMap[this.size] || '28px');
1418
+ baseStyles.width = this.width !== '100%' ? this.width : '60px';
1419
+ break;
1420
+ case 'card':
1421
+ baseStyles.borderRadius = '8px';
1422
+ const cardHeightMap = {
1423
+ 'xs': '80px',
1424
+ 'sm': '100px',
1425
+ 'md': '120px',
1426
+ 'lg': '160px',
1427
+ 'xl': '200px',
1428
+ '2xl': '240px',
1429
+ };
1430
+ baseStyles.minHeight = this.height !== '20px' ? this.height : (cardHeightMap[this.size] || '120px');
1431
+ break;
1432
+ case 'list-item':
1433
+ baseStyles.borderRadius = '4px';
1434
+ const listItemHeightMap = {
1435
+ 'xs': '32px',
1436
+ 'sm': '36px',
1437
+ 'md': '40px',
1438
+ 'lg': '48px',
1439
+ 'xl': '56px',
1440
+ '2xl': '64px',
1441
+ };
1442
+ baseStyles.height = this.height !== '20px' ? this.height : (listItemHeightMap[this.size] || '40px');
1443
+ break;
1444
+ case 'image':
1445
+ baseStyles.borderRadius = '8px';
1446
+ const imageHeightMap = {
1447
+ 'xs': '100px',
1448
+ 'sm': '150px',
1449
+ 'md': '200px',
1450
+ 'lg': '250px',
1451
+ 'xl': '300px',
1452
+ '2xl': '400px',
1453
+ };
1454
+ baseStyles.height = this.height !== '20px' ? this.height : (imageHeightMap[this.size] || '200px');
1455
+ baseStyles.display = 'flex';
1456
+ baseStyles.alignItems = 'center';
1457
+ baseStyles.justifyContent = 'center';
1458
+ break;
1459
+ case 'none':
1460
+ baseStyles.background = 'transparent';
1461
+ baseStyles.width = 'auto';
1462
+ baseStyles.height = 'auto';
1463
+ break;
1464
+ default: // rectangle
1465
+ baseStyles.borderRadius = '0';
1466
+ break;
1467
+ }
1468
+ return baseStyles;
1469
+ }
1470
+ /**
1471
+ * Resolves the actual color value based on variant or custom string
1472
+ */
1473
+ // private getBaseColor(): string {
1474
+ // const colorMap: Record<string, string> = {
1475
+ // primary: '#3DCD58',
1476
+ // secondary: '#64748b',
1477
+ // success: '#22c55e',
1478
+ // danger: '#ef4444',
1479
+ // warning: '#f59e0b',
1480
+ // info: '#3bf673',
1481
+ // neutral: 'var(--skeleton-bg, #e2e8f0)',
1482
+ // };
1483
+ // const resolved = colorMap[this.color] || this.color;
1484
+ // // Handle theme-based defaults if empty or neutral
1485
+ // if (!this.color || this.color === 'neutral') {
1486
+ // return 'var(red, #e2e8f0)';
1487
+ // }
1488
+ // return resolved;
1489
+ // }
1490
+ // /**
1491
+ // * Derives a lighter shimmer color from the base color.
1492
+ // * Works for most hex colors; for others falls back to the theme wave variable.
1493
+ // */
1494
+ // private getHighlightColor(base: string): string {
1495
+ // // If user explicitly provided a highlight, use it
1496
+ // if (this.highlightColor) return this.highlightColor;
1497
+ // // Handle generic theme variables
1498
+ // if (base.includes('--skeleton-bg')) {
1499
+ // return 'var(--skeleton-wave-bg, #f3f4f6)';
1500
+ // }
1501
+ // // Try to parse hex and lighten
1502
+ // const hex = base.trim();
1503
+ // if (/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(hex)) {
1504
+ // let full = hex.slice(1);
1505
+ // if (full.length === 3) {
1506
+ // full = full.split('').map(c => c + c).join('');
1507
+ // }
1508
+ // const r = Math.min(255, parseInt(full.substring(0, 2), 16) + 30);
1509
+ // const g = Math.min(255, parseInt(full.substring(2, 4), 16) + 30);
1510
+ // const b = Math.min(255, parseInt(full.substring(4, 6), 16) + 30);
1511
+ // return `rgb(${r}, ${g}, ${b})`;
1512
+ // }
1513
+ // // For other types of strings, fallback to the theme wave variable if available
1514
+ // return 'var(--skeleton-wave-bg, #f3f4f6)';
1515
+ // }
1516
+ render() {
1517
+ if (!this.isActuallyVisible)
1518
+ return null;
1519
+ const countArr = Array.from({ length: Math.max(1, this.count) });
1520
+ // ARIA role logic
1521
+ const ariaRole = this.ariaRole || (typeof this.progress === 'number' ? 'progressbar' : 'status');
1522
+ const ariaProps = {
1523
+ role: ariaRole,
1524
+ 'aria-busy': true,
1525
+ 'aria-label': this.ariaLabel,
1526
+ 'aria-live': this.ariaLive,
1527
+ };
1528
+ if (ariaRole === 'progressbar' && typeof this.progress === 'number') {
1529
+ ariaProps['aria-valuenow'] = this.progress;
1530
+ ariaProps['aria-valuemin'] = 0;
1531
+ ariaProps['aria-valuemax'] = 100;
1532
+ }
1533
+ // Dark mode/RTL
1534
+ const darkThemes = ['dark', 'blue', 'violet', 'green', 'pink'];
1535
+ const docTheme = document.documentElement.getAttribute('data-theme') || '';
1536
+ const isDarkAuto = this.dark === 'auto' && ((window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ||
1537
+ darkThemes.some(t => document.documentElement.classList.contains('theme-' + t) || document.body.classList.contains('theme-' + t)) ||
1538
+ darkThemes.includes(docTheme) ||
1539
+ !!this.el.closest(darkThemes.map(t => `.theme-${t}, [data-theme="${t}"]`).join(', ')));
1540
+ const darkClass = this.dark === 'dark' || isDarkAuto ? 'skeleton-dark' : '';
1541
+ const rtlClass = this.rtl ? 'skeleton-rtl' : '';
1542
+ return (index.h("div", { class: `skeleton-replication-container skeleton-direction-${this.direction} ${darkClass} ${rtlClass}`, style: { display: 'flex', flexDirection: this.direction, gap: this.gap }, ...ariaProps }, countArr.map((_, index$1) => {
1543
+ // ...existing code...
1544
+ const staggerDelay = this.stagger > 0 ? `${index$1 * this.stagger}ms` : '0ms';
1545
+ const isAnimating = this.animated && (!this.lazyAnimation || this.isInView);
1546
+ // ...existing code...
1547
+ const namedColors = ['neutral', 'primary', 'secondary', 'success', 'danger', 'warning', 'info'];
1548
+ const isCustomColor = !namedColors.includes(this.color);
1549
+ const skeletonClass = {
1550
+ 'skeleton': true,
1551
+ 'skeleton-animated': isAnimating,
1552
+ [`skeleton-${this.animationType}`]: isAnimating,
1553
+ [`skeleton-${this.shape}`]: true,
1554
+ [`skeleton-speed-${this.speed}`]: true,
1555
+ [`skeleton-color-${this.color}`]: !isCustomColor && this.color !== 'neutral',
1556
+ 'skeleton-mask': this.mask,
1557
+ 'skeleton-ghost': this.ghost && this.mask,
1558
+ 'skeleton-elevated': this.elevation > 0,
1559
+ [this.customClass]: !!this.customClass,
1560
+ };
1561
+ const customStyles = {
1562
+ '--skeleton-stagger-delay': staggerDelay,
1563
+ '--skeleton-wave-angle': this.waveAngle,
1564
+ '--skeleton-wave-speed': this.waveSpeed,
1565
+ '--skeleton-gap': this.gap,
1566
+ '--skeleton-elevation': this.elevation > 0 ? `var(--ui-shadow-${this.elevation}, 0 2px 8px rgba(0,0,0,0.05))` : 'none',
1567
+ };
1568
+ // Custom hex/rgba colors: set as CSS vars so animations still work via gradients
1569
+ if (isCustomColor) {
1570
+ customStyles['--skeleton-bg'] = this.color;
1571
+ customStyles['--skeleton-wave-bg'] = this.highlightColor || this.color;
1572
+ }
1573
+ if (this.radius) {
1574
+ customStyles['--skeleton-border-radius'] = this.radius;
1575
+ }
1576
+ const isCircular = ['circle', 'avatar', 'oval'].includes(this.shape);
1577
+ const styles = {
1578
+ ...this.getSkeletonStyles(),
1579
+ ...customStyles,
1580
+ animationDelay: staggerDelay,
1581
+ ...(isCircular ? {} : (this.radius || this.borderRadius !== '4px' ? { borderRadius: this.radius || this.borderRadius } : {}))
1582
+ };
1583
+ return (index.h("div", { class: skeletonClass, style: styles, key: index$1 }, this.renderContent(), typeof this.progress === 'number' && (index.h("div", { class: "skeleton-progress-bar", style: { width: this.progress + '%', height: '4px', background: 'var(--skeleton-wave-bg, #fff)', borderRadius: '2px', marginTop: '4px' } }))));
1584
+ }), index.h("slot", { name: "custom" })));
1585
+ }
1586
+ renderContent() {
1587
+ const isText = this.shape === 'text';
1588
+ const hasRows = isText && this.rows > 1;
1589
+ return [
1590
+ (this.mask || this.shape === 'none') ? index.h("slot", null) : null,
1591
+ hasRows && !this.mask ? (index.h("div", { class: "skeleton-text-rows", style: { display: 'flex', flexDirection: 'column', gap: '8px', width: '100%' } }, Array.from({ length: this.rows }).map((_, i) => {
1592
+ const isLast = i === this.rows - 1;
1593
+ const rowWidth = isLast ? this.lastRowWidth : (i > 0 && i % 2 === 0 ? '92%' : '100%');
1594
+ return (index.h("div", { class: "skeleton-text-row", style: {
1595
+ height: '1em',
1596
+ width: rowWidth,
1597
+ backgroundColor: 'inherit',
1598
+ borderRadius: '4px',
1599
+ animation: 'inherit'
1600
+ } }));
1601
+ }))) : null,
1602
+ this.shape === 'card' && !this.mask ? (index.h("div", { class: "skeleton-card-content" }, index.h("div", { class: "skeleton-card-header" }, index.h("div", { class: "skeleton-circle", style: { width: '32px', height: '32px', borderRadius: '50%' } }), index.h("div", { class: "skeleton-card-title" }, index.h("div", { class: "skeleton-text", style: { width: '60%', height: '16px', borderRadius: '4px' } }), index.h("div", { class: "skeleton-text", style: { width: '40%', height: '12px', borderRadius: '4px' } }))), index.h("div", { class: "skeleton-card-body" }, index.h("div", { class: "skeleton-text", style: { width: '100%', height: '14px', borderRadius: '4px' } }), index.h("div", { class: "skeleton-text", style: { width: '80%', height: '14px', borderRadius: '4px' } }), index.h("div", { class: "skeleton-text", style: { width: '90%', height: '14px', borderRadius: '4px' } })))) : null,
1603
+ this.shape === 'list-item' && !this.mask ? (index.h("div", { class: "skeleton-list-content" }, index.h("div", { class: "skeleton-circle", style: { width: '32px', height: '32px', borderRadius: '50%' } }), index.h("div", { class: "skeleton-list-text" }, index.h("div", { class: "skeleton-text", style: { width: '70%', height: '14px', borderRadius: '4px' } }), index.h("div", { class: "skeleton-text", style: { width: '50%', height: '12px', borderRadius: '4px' } })))) : null,
1604
+ this.shape === 'image' && !this.mask ? (index.h("div", { class: "skeleton-image-icon" }, index.h("ui-icon", { name: "image", library: "lucide", size: "25%", style: { opacity: '0.2' } }))) : null,
1605
+ this.template === 'profile' ? (index.h("div", { class: "skeleton-profile-template" }, index.h("ui-skeleton-loader", { shape: "circle", size: this.size, color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("div", { class: "skeleton-profile-lines" }, index.h("ui-skeleton-loader", { shape: "text", size: this.size, width: "120px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "text", size: "xs", width: "80px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated })))) : null,
1606
+ this.template === 'media-object' ? (index.h("div", { class: "skeleton-media-object-template" }, index.h("ui-skeleton-loader", { shape: "rounded-rectangle", width: "48px", height: "48px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("div", { class: "skeleton-media-lines", style: { flex: '1' } }, index.h("ui-skeleton-loader", { shape: "text", size: "md", width: "70%", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "text", size: "xs", width: "40%", color: this.color, "highlight-color": this.highlightColor, animated: this.animated, style: { marginTop: '4px' } }), index.h("ui-skeleton-loader", { shape: "text", size: "xs", width: "90%", color: this.color, "highlight-color": this.highlightColor, animated: this.animated, style: { marginTop: '8px' } })))) : null,
1607
+ this.template === 'feed-item' ? (index.h("div", { class: "skeleton-feed-template" }, index.h("div", { class: "feed-header", style: { display: 'flex', gap: '12px', marginBottom: '16px' } }, index.h("ui-skeleton-loader", { shape: "circle", size: "md", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("div", { style: { flex: '1' } }, index.h("ui-skeleton-loader", { shape: "text", size: "xs", width: "100px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "text", size: "xs", width: "60px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated, style: { marginTop: '4px' } }))), index.h("ui-skeleton-loader", { shape: "rectangle", width: "100%", height: "200px", "border-radius": "8px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("div", { class: "feed-footer", style: { marginTop: '12px', display: 'flex', gap: '8px' } }, index.h("ui-skeleton-loader", { shape: "button", size: "sm", width: "60px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "button", size: "sm", width: "60px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated })))) : null,
1608
+ this.template === 'table-row' ? (index.h("div", { class: "skeleton-table-row-template", style: { display: 'flex', gap: '20px', alignItems: 'center', width: '100%', padding: '12px 0' } }, index.h("ui-skeleton-loader", { shape: "rectangle", width: "20px", height: "20px", "border-radius": "4px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "text", width: "15%", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "text", width: "35%", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "text", width: "20%", color: this.color, "highlight-color": this.highlightColor, animated: this.animated }), index.h("ui-skeleton-loader", { shape: "pill", width: "80px", color: this.color, "highlight-color": this.highlightColor, animated: this.animated, style: { marginLeft: 'auto' } }))) : null,
1609
+ ];
1610
+ }
1611
+ static get watchers() { return {
1612
+ "delay": [{
1613
+ "handleDelayChange": 0
1614
+ }]
1615
+ }; }
1616
+ };
1617
+ SkeletonLoader.style = skeletonLoaderCss();
1618
+
1619
+ exports.ui_pagination = Pagination;
1620
+ exports.ui_rating = Rating;
1621
+ exports.ui_skeleton = SkeletonLoader;