snice 2.5.4 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/README.md +537 -869
  2. package/bin/templates/base/src/components/counter-button.ts +13 -26
  3. package/bin/templates/base/src/controllers/counter-controller.ts +3 -3
  4. package/dist/components/accordion/snice-accordion-item.d.ts +4 -5
  5. package/dist/components/accordion/snice-accordion-item.js +37 -39
  6. package/dist/components/accordion/snice-accordion-item.js.map +1 -1
  7. package/dist/components/accordion/snice-accordion.d.ts +5 -11
  8. package/dist/components/accordion/snice-accordion.js +51 -52
  9. package/dist/components/accordion/snice-accordion.js.map +1 -1
  10. package/dist/components/alert/snice-alert.d.ts +2 -6
  11. package/dist/components/alert/snice-alert.js +41 -56
  12. package/dist/components/alert/snice-alert.js.map +1 -1
  13. package/dist/components/avatar/snice-avatar.d.ts +2 -6
  14. package/dist/components/avatar/snice-avatar.js +64 -71
  15. package/dist/components/avatar/snice-avatar.js.map +1 -1
  16. package/dist/components/badge/snice-badge.d.ts +2 -3
  17. package/dist/components/badge/snice-badge.js +22 -23
  18. package/dist/components/badge/snice-badge.js.map +1 -1
  19. package/dist/components/banner/snice-banner.d.ts +22 -0
  20. package/dist/components/banner/snice-banner.js +180 -0
  21. package/dist/components/banner/snice-banner.js.map +1 -0
  22. package/dist/components/banner/snice-banner.types.d.ts +14 -0
  23. package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +5 -12
  24. package/dist/components/breadcrumbs/snice-breadcrumbs.js +88 -89
  25. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  26. package/dist/components/button/snice-button.d.ts +3 -7
  27. package/dist/components/button/snice-button.js +37 -58
  28. package/dist/components/button/snice-button.js.map +1 -1
  29. package/dist/components/card/snice-card.d.ts +5 -8
  30. package/dist/components/card/snice-card.js +71 -56
  31. package/dist/components/card/snice-card.js.map +1 -1
  32. package/dist/components/checkbox/snice-checkbox.d.ts +4 -13
  33. package/dist/components/checkbox/snice-checkbox.js +66 -137
  34. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  35. package/dist/components/chip/snice-chip.d.ts +5 -11
  36. package/dist/components/chip/snice-chip.js +44 -47
  37. package/dist/components/chip/snice-chip.js.map +1 -1
  38. package/dist/components/color-display/snice-color-display.d.ts +14 -0
  39. package/dist/components/color-display/snice-color-display.js +151 -0
  40. package/dist/components/color-display/snice-color-display.js.map +1 -0
  41. package/dist/components/color-display/snice-color-display.types.d.ts +10 -0
  42. package/dist/components/color-picker/snice-color-picker.d.ts +50 -0
  43. package/dist/components/color-picker/snice-color-picker.js +489 -0
  44. package/dist/components/color-picker/snice-color-picker.js.map +1 -0
  45. package/dist/components/color-picker/snice-color-picker.types.d.ts +19 -0
  46. package/dist/components/date-picker/snice-date-picker.d.ts +11 -11
  47. package/dist/components/date-picker/snice-date-picker.js +134 -133
  48. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  49. package/dist/components/divider/snice-divider.d.ts +2 -4
  50. package/dist/components/divider/snice-divider.js +14 -22
  51. package/dist/components/divider/snice-divider.js.map +1 -1
  52. package/dist/components/drawer/snice-drawer.d.ts +4 -4
  53. package/dist/components/drawer/snice-drawer.js +25 -19
  54. package/dist/components/drawer/snice-drawer.js.map +1 -1
  55. package/dist/components/empty-state/snice-empty-state.d.ts +13 -0
  56. package/dist/components/empty-state/snice-empty-state.js +121 -0
  57. package/dist/components/empty-state/snice-empty-state.js.map +1 -0
  58. package/dist/components/empty-state/snice-empty-state.types.d.ts +9 -0
  59. package/dist/components/file-upload/snice-file-upload.d.ts +45 -0
  60. package/dist/components/file-upload/snice-file-upload.js +394 -0
  61. package/dist/components/file-upload/snice-file-upload.js.map +1 -0
  62. package/dist/components/file-upload/snice-file-upload.types.d.ts +22 -0
  63. package/dist/components/image/snice-image.d.ts +22 -0
  64. package/dist/components/image/snice-image.js +201 -0
  65. package/dist/components/image/snice-image.js.map +1 -0
  66. package/dist/components/image/snice-image.types.d.ts +17 -0
  67. package/dist/components/input/snice-input.d.ts +8 -6
  68. package/dist/components/input/snice-input.js +122 -105
  69. package/dist/components/input/snice-input.js.map +1 -1
  70. package/dist/components/kpi/snice-kpi.d.ts +16 -0
  71. package/dist/components/kpi/snice-kpi.js +162 -0
  72. package/dist/components/kpi/snice-kpi.js.map +1 -0
  73. package/dist/components/kpi/snice-kpi.types.d.ts +12 -0
  74. package/dist/components/layout/snice-layout-blog.d.ts +4 -4
  75. package/dist/components/layout/snice-layout-blog.js +21 -19
  76. package/dist/components/layout/snice-layout-blog.js.map +1 -1
  77. package/dist/components/layout/snice-layout-card.d.ts +2 -2
  78. package/dist/components/layout/snice-layout-card.js +16 -9
  79. package/dist/components/layout/snice-layout-card.js.map +1 -1
  80. package/dist/components/layout/snice-layout-centered.d.ts +2 -2
  81. package/dist/components/layout/snice-layout-centered.js +14 -7
  82. package/dist/components/layout/snice-layout-centered.js.map +1 -1
  83. package/dist/components/layout/snice-layout-dashboard.d.ts +5 -5
  84. package/dist/components/layout/snice-layout-dashboard.js +38 -30
  85. package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
  86. package/dist/components/layout/snice-layout-fullscreen.d.ts +2 -2
  87. package/dist/components/layout/snice-layout-fullscreen.js +17 -10
  88. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
  89. package/dist/components/layout/snice-layout-landing.d.ts +4 -4
  90. package/dist/components/layout/snice-layout-landing.js +21 -19
  91. package/dist/components/layout/snice-layout-landing.js.map +1 -1
  92. package/dist/components/layout/snice-layout-minimal.d.ts +2 -2
  93. package/dist/components/layout/snice-layout-minimal.js +17 -6
  94. package/dist/components/layout/snice-layout-minimal.js.map +1 -1
  95. package/dist/components/layout/snice-layout-sidebar.d.ts +5 -4
  96. package/dist/components/layout/snice-layout-sidebar.js +42 -20
  97. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  98. package/dist/components/layout/snice-layout-split.d.ts +2 -2
  99. package/dist/components/layout/snice-layout-split.js +14 -7
  100. package/dist/components/layout/snice-layout-split.js.map +1 -1
  101. package/dist/components/layout/snice-layout.d.ts +4 -4
  102. package/dist/components/layout/snice-layout.js +16 -10
  103. package/dist/components/layout/snice-layout.js.map +1 -1
  104. package/dist/components/link/snice-link.d.ts +13 -0
  105. package/dist/components/link/snice-link.js +137 -0
  106. package/dist/components/link/snice-link.js.map +1 -0
  107. package/dist/components/link/snice-link.types.d.ts +11 -0
  108. package/dist/components/login/snice-login.d.ts +6 -11
  109. package/dist/components/login/snice-login.js +97 -71
  110. package/dist/components/login/snice-login.js.map +1 -1
  111. package/dist/components/modal/snice-modal.d.ts +5 -9
  112. package/dist/components/modal/snice-modal.js +47 -78
  113. package/dist/components/modal/snice-modal.js.map +1 -1
  114. package/dist/components/nav/snice-nav.d.ts +13 -7
  115. package/dist/components/nav/snice-nav.js +191 -100
  116. package/dist/components/nav/snice-nav.js.map +1 -1
  117. package/dist/components/nav/snice-nav.types.d.ts +3 -3
  118. package/dist/components/pagination/snice-pagination.d.ts +6 -7
  119. package/dist/components/pagination/snice-pagination.js +94 -81
  120. package/dist/components/pagination/snice-pagination.js.map +1 -1
  121. package/dist/components/progress/snice-progress.d.ts +2 -7
  122. package/dist/components/progress/snice-progress.js +41 -98
  123. package/dist/components/progress/snice-progress.js.map +1 -1
  124. package/dist/components/radio/snice-radio.d.ts +4 -4
  125. package/dist/components/radio/snice-radio.js +52 -44
  126. package/dist/components/radio/snice-radio.js.map +1 -1
  127. package/dist/components/select/snice-option.d.ts +2 -1
  128. package/dist/components/select/snice-option.js +12 -5
  129. package/dist/components/select/snice-option.js.map +1 -1
  130. package/dist/components/select/snice-select.d.ts +9 -21
  131. package/dist/components/select/snice-select.js +98 -170
  132. package/dist/components/select/snice-select.js.map +1 -1
  133. package/dist/components/skeleton/snice-skeleton.d.ts +2 -6
  134. package/dist/components/skeleton/snice-skeleton.js +18 -49
  135. package/dist/components/skeleton/snice-skeleton.js.map +1 -1
  136. package/dist/components/slider/snice-slider.d.ts +53 -0
  137. package/dist/components/slider/snice-slider.js +479 -0
  138. package/dist/components/slider/snice-slider.js.map +1 -0
  139. package/dist/components/slider/snice-slider.types.d.ts +26 -0
  140. package/dist/components/snice-cell-C0slgOpe.js +4 -0
  141. package/dist/components/snice-cell-C0slgOpe.js.map +1 -0
  142. package/dist/components/sparkline/snice-sparkline.d.ts +21 -0
  143. package/dist/components/sparkline/snice-sparkline.js +228 -0
  144. package/dist/components/sparkline/snice-sparkline.js.map +1 -0
  145. package/dist/components/sparkline/snice-sparkline.types.d.ts +16 -0
  146. package/dist/components/spinner/snice-spinner.d.ts +10 -0
  147. package/dist/components/spinner/snice-spinner.js +109 -0
  148. package/dist/components/spinner/snice-spinner.js.map +1 -0
  149. package/dist/components/spinner/snice-spinner.types.d.ts +8 -0
  150. package/dist/components/stepper/snice-stepper-panel.d.ts +8 -0
  151. package/dist/components/stepper/snice-stepper-panel.js +70 -0
  152. package/dist/components/stepper/snice-stepper-panel.js.map +1 -0
  153. package/dist/components/stepper/snice-stepper-panel.types.d.ts +4 -0
  154. package/dist/components/stepper/snice-stepper.d.ts +15 -0
  155. package/dist/components/stepper/snice-stepper.js +163 -0
  156. package/dist/components/stepper/snice-stepper.js.map +1 -0
  157. package/dist/components/stepper/snice-stepper.types.d.ts +13 -0
  158. package/dist/components/switch/snice-switch.d.ts +2 -2
  159. package/dist/components/switch/snice-switch.js +38 -26
  160. package/dist/components/switch/snice-switch.js.map +1 -1
  161. package/dist/components/table/snice-cell-actions.d.ts +24 -0
  162. package/dist/components/table/snice-cell-actions.js +149 -0
  163. package/dist/components/table/snice-cell-actions.js.map +1 -0
  164. package/dist/components/table/snice-cell-boolean.d.ts +2 -2
  165. package/dist/components/table/snice-cell-boolean.js +13 -7
  166. package/dist/components/table/snice-cell-boolean.js.map +1 -1
  167. package/dist/components/table/snice-cell-color.d.ts +18 -0
  168. package/dist/components/table/snice-cell-color.js +149 -0
  169. package/dist/components/table/snice-cell-color.js.map +1 -0
  170. package/dist/components/table/snice-cell-currency.d.ts +24 -0
  171. package/dist/components/table/snice-cell-currency.js +235 -0
  172. package/dist/components/table/snice-cell-currency.js.map +1 -0
  173. package/dist/components/table/snice-cell-date.d.ts +2 -2
  174. package/dist/components/table/snice-cell-date.js +14 -8
  175. package/dist/components/table/snice-cell-date.js.map +1 -1
  176. package/dist/components/table/snice-cell-duration.d.ts +2 -2
  177. package/dist/components/table/snice-cell-duration.js +12 -6
  178. package/dist/components/table/snice-cell-duration.js.map +1 -1
  179. package/dist/components/table/snice-cell-email.d.ts +15 -0
  180. package/dist/components/table/snice-cell-email.js +125 -0
  181. package/dist/components/table/snice-cell-email.js.map +1 -0
  182. package/dist/components/table/snice-cell-filesize.d.ts +2 -2
  183. package/dist/components/table/snice-cell-filesize.js +12 -6
  184. package/dist/components/table/snice-cell-filesize.js.map +1 -1
  185. package/dist/components/table/snice-cell-image.d.ts +20 -0
  186. package/dist/components/table/snice-cell-image.js +162 -0
  187. package/dist/components/table/snice-cell-image.js.map +1 -0
  188. package/dist/components/table/snice-cell-json.d.ts +20 -0
  189. package/dist/components/table/snice-cell-json.js +186 -0
  190. package/dist/components/table/snice-cell-json.js.map +1 -0
  191. package/dist/components/table/snice-cell-link.d.ts +17 -0
  192. package/dist/components/table/snice-cell-link.js +142 -0
  193. package/dist/components/table/snice-cell-link.js.map +1 -0
  194. package/dist/components/table/snice-cell-location.d.ts +19 -0
  195. package/dist/components/table/snice-cell-location.js +185 -0
  196. package/dist/components/table/snice-cell-location.js.map +1 -0
  197. package/dist/components/table/snice-cell-number.d.ts +2 -2
  198. package/dist/components/table/snice-cell-number.js +12 -6
  199. package/dist/components/table/snice-cell-number.js.map +1 -1
  200. package/dist/components/table/snice-cell-percentage.d.ts +22 -0
  201. package/dist/components/table/snice-cell-percentage.js +208 -0
  202. package/dist/components/table/snice-cell-percentage.js.map +1 -0
  203. package/dist/components/table/snice-cell-phone.d.ts +18 -0
  204. package/dist/components/table/snice-cell-phone.js +153 -0
  205. package/dist/components/table/snice-cell-phone.js.map +1 -0
  206. package/dist/components/table/snice-cell-progress.d.ts +2 -2
  207. package/dist/components/table/snice-cell-progress.js +12 -6
  208. package/dist/components/table/snice-cell-progress.js.map +1 -1
  209. package/dist/components/table/snice-cell-rating.d.ts +2 -2
  210. package/dist/components/table/snice-cell-rating.js +12 -6
  211. package/dist/components/table/snice-cell-rating.js.map +1 -1
  212. package/dist/components/table/snice-cell-sparkline.d.ts +2 -2
  213. package/dist/components/table/snice-cell-sparkline.js +13 -7
  214. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  215. package/dist/components/table/snice-cell-status.d.ts +17 -0
  216. package/dist/components/table/snice-cell-status.js +144 -0
  217. package/dist/components/table/snice-cell-status.js.map +1 -0
  218. package/dist/components/table/snice-cell-tag.d.ts +16 -0
  219. package/dist/components/table/snice-cell-tag.js +131 -0
  220. package/dist/components/table/snice-cell-tag.js.map +1 -0
  221. package/dist/components/table/snice-cell-text.d.ts +2 -2
  222. package/dist/components/table/snice-cell-text.js +14 -8
  223. package/dist/components/table/snice-cell-text.js.map +1 -1
  224. package/dist/components/table/snice-cell.d.ts +2 -2
  225. package/dist/components/table/snice-cell.js +12 -6
  226. package/dist/components/table/snice-cell.js.map +1 -1
  227. package/dist/components/table/snice-column.d.ts +1 -1
  228. package/dist/components/table/snice-column.js +6 -3
  229. package/dist/components/table/snice-column.js.map +1 -1
  230. package/dist/components/table/snice-header.d.ts +5 -5
  231. package/dist/components/table/snice-header.js +60 -50
  232. package/dist/components/table/snice-header.js.map +1 -1
  233. package/dist/components/table/snice-progress.d.ts +2 -2
  234. package/dist/components/table/snice-progress.js +18 -11
  235. package/dist/components/table/snice-progress.js.map +1 -1
  236. package/dist/components/table/snice-rating.d.ts +2 -2
  237. package/dist/components/table/snice-rating.js +15 -8
  238. package/dist/components/table/snice-rating.js.map +1 -1
  239. package/dist/components/table/snice-row.d.ts +17 -6
  240. package/dist/components/table/snice-row.js +95 -44
  241. package/dist/components/table/snice-row.js.map +1 -1
  242. package/dist/components/table/snice-table.d.ts +18 -10
  243. package/dist/components/table/snice-table.js +355 -173
  244. package/dist/components/table/snice-table.js.map +1 -1
  245. package/dist/components/table/snice-table.types.d.ts +101 -2
  246. package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
  247. package/dist/components/tabs/snice-tab-panel.js +12 -6
  248. package/dist/components/tabs/snice-tab-panel.js.map +1 -1
  249. package/dist/components/tabs/snice-tab.d.ts +6 -5
  250. package/dist/components/tabs/snice-tab.js +36 -19
  251. package/dist/components/tabs/snice-tab.js.map +1 -1
  252. package/dist/components/tabs/snice-tabs.d.ts +5 -5
  253. package/dist/components/tabs/snice-tabs.js +38 -28
  254. package/dist/components/tabs/snice-tabs.js.map +1 -1
  255. package/dist/components/textarea/snice-textarea.d.ts +52 -0
  256. package/dist/components/textarea/snice-textarea.js +407 -0
  257. package/dist/components/textarea/snice-textarea.js.map +1 -0
  258. package/dist/components/textarea/snice-textarea.types.d.ts +30 -0
  259. package/dist/components/timeline/snice-timeline.d.ts +11 -0
  260. package/dist/components/timeline/snice-timeline.js +112 -0
  261. package/dist/components/timeline/snice-timeline.js.map +1 -0
  262. package/dist/components/timeline/snice-timeline.types.d.ts +16 -0
  263. package/dist/components/toast/snice-toast-container.d.ts +7 -7
  264. package/dist/components/toast/snice-toast-container.js +19 -12
  265. package/dist/components/toast/snice-toast-container.js.map +1 -1
  266. package/dist/components/toast/snice-toast.d.ts +3 -15
  267. package/dist/components/toast/snice-toast.js +49 -108
  268. package/dist/components/toast/snice-toast.js.map +1 -1
  269. package/dist/components/tooltip/snice-tooltip.d.ts +2 -2
  270. package/dist/components/tooltip/snice-tooltip.js +15 -8
  271. package/dist/components/tooltip/snice-tooltip.js.map +1 -1
  272. package/dist/context.d.ts +44 -0
  273. package/dist/element-ready.d.ts +40 -0
  274. package/dist/{types/element.d.ts → element.d.ts} +2 -8
  275. package/dist/{types/events.d.ts → events.d.ts} +0 -4
  276. package/dist/index.cjs +2556 -605
  277. package/dist/index.cjs.map +1 -1
  278. package/dist/index.d.ts +21 -0
  279. package/dist/index.esm.js +2535 -604
  280. package/dist/index.esm.js.map +1 -1
  281. package/dist/index.iife.js +2556 -605
  282. package/dist/index.iife.js.map +1 -1
  283. package/dist/method-decorators.d.ts +121 -0
  284. package/dist/on.d.ts +59 -0
  285. package/dist/parts.d.ts +156 -0
  286. package/dist/render-debug.d.ts +27 -0
  287. package/dist/render-tracker.d.ts +14 -0
  288. package/dist/render.d.ts +96 -0
  289. package/dist/symbols.cjs +163 -0
  290. package/dist/symbols.cjs.map +1 -1
  291. package/dist/{types/symbols.d.ts → symbols.d.ts} +22 -0
  292. package/dist/symbols.esm.js +27 -3
  293. package/dist/symbols.esm.js.map +1 -1
  294. package/dist/template.d.ts +99 -0
  295. package/dist/transitions.cjs +219 -0
  296. package/dist/transitions.esm.js +2 -2
  297. package/dist/types/context.d.ts +48 -0
  298. package/dist/types/element-options.d.ts +26 -0
  299. package/dist/types/index.d.ts +25 -9
  300. package/dist/types/nav-context.d.ts +19 -0
  301. package/dist/types/{types/on-options.d.ts → on-options.d.ts} +2 -0
  302. package/dist/types/{types/placard.d.ts → placard.d.ts} +0 -1
  303. package/docs/ai/README.md +26 -0
  304. package/docs/ai/api.md +175 -0
  305. package/docs/ai/architecture.md +160 -0
  306. package/docs/ai/components/accordion.md +174 -0
  307. package/docs/ai/components/alert.md +77 -0
  308. package/docs/ai/components/avatar.md +61 -0
  309. package/docs/ai/components/badge.md +69 -0
  310. package/docs/ai/components/banner.md +84 -0
  311. package/docs/ai/components/breadcrumbs.md +74 -0
  312. package/docs/ai/components/button.md +75 -0
  313. package/docs/ai/components/card.md +61 -0
  314. package/docs/ai/components/checkbox.md +74 -0
  315. package/docs/ai/components/chip.md +73 -0
  316. package/docs/ai/components/color-display.md +48 -0
  317. package/docs/ai/components/color-picker.md +75 -0
  318. package/docs/ai/components/date-picker.md +75 -0
  319. package/docs/ai/components/divider.md +66 -0
  320. package/docs/ai/components/drawer.md +80 -0
  321. package/docs/ai/components/empty-state.md +72 -0
  322. package/docs/ai/components/file-upload.md +93 -0
  323. package/docs/ai/components/image.md +60 -0
  324. package/docs/ai/components/input.md +111 -0
  325. package/docs/ai/components/kpi.md +158 -0
  326. package/docs/ai/components/link.md +77 -0
  327. package/docs/ai/components/login.md +109 -0
  328. package/docs/ai/components/modal.md +67 -0
  329. package/docs/ai/components/nav.md +76 -0
  330. package/docs/ai/components/pagination.md +55 -0
  331. package/docs/ai/components/progress.md +72 -0
  332. package/docs/ai/components/radio.md +79 -0
  333. package/docs/ai/components/select.md +92 -0
  334. package/docs/ai/components/skeleton.md +57 -0
  335. package/docs/ai/components/slider.md +87 -0
  336. package/docs/ai/components/sparkline.md +168 -0
  337. package/docs/ai/components/spinner.md +47 -0
  338. package/docs/ai/components/stepper.md +216 -0
  339. package/docs/ai/components/switch.md +53 -0
  340. package/docs/ai/components/table.md +227 -0
  341. package/docs/ai/components/tabs.md +83 -0
  342. package/docs/ai/components/textarea.md +87 -0
  343. package/docs/ai/components/timeline.md +77 -0
  344. package/docs/ai/components/toast.md +140 -0
  345. package/docs/ai/components/tooltip.md +146 -0
  346. package/docs/ai/patterns.md +244 -0
  347. package/docs/components/accordion.md +558 -0
  348. package/docs/components/banner.md +106 -0
  349. package/docs/components/color-display.md +96 -0
  350. package/docs/components/color-picker.md +81 -0
  351. package/docs/components/drawer.md +602 -0
  352. package/docs/components/empty-state.md +79 -0
  353. package/docs/components/file-upload.md +263 -0
  354. package/docs/components/image.md +110 -0
  355. package/docs/components/kpi.md +251 -0
  356. package/docs/components/link.md +229 -0
  357. package/docs/components/modal.md +558 -0
  358. package/docs/components/nav.md +239 -0
  359. package/docs/components/pagination.md +289 -0
  360. package/docs/components/select.md +599 -0
  361. package/docs/components/slider.md +297 -0
  362. package/docs/components/sparkline.md +293 -0
  363. package/docs/components/spinner.md +63 -0
  364. package/docs/components/stepper.md +410 -0
  365. package/docs/components/switch.md +354 -0
  366. package/docs/components/tabs.md +546 -0
  367. package/docs/components/textarea.md +235 -0
  368. package/docs/components/timeline.md +192 -0
  369. package/docs/components/toast.md +506 -0
  370. package/docs/components/tooltip.md +523 -0
  371. package/docs/controllers.md +744 -0
  372. package/docs/elements.md +855 -0
  373. package/docs/events.md +807 -0
  374. package/docs/migration-v2-to-v3.md +569 -0
  375. package/docs/observe.md +588 -0
  376. package/docs/placards.md +401 -0
  377. package/docs/request-response.md +852 -0
  378. package/docs/routing.md +1186 -0
  379. package/package.json +11 -11
  380. package/dist/components/snice-cell-C9N6yGxQ.js +0 -4
  381. package/dist/components/snice-cell-C9N6yGxQ.js.map +0 -1
  382. package/dist/types/types/index.d.ts +0 -23
  383. /package/dist/{types/controller.d.ts → controller.d.ts} +0 -0
  384. /package/dist/{types/global.d.ts → global.d.ts} +0 -0
  385. /package/dist/{types/observe.d.ts → observe.d.ts} +0 -0
  386. /package/dist/{types/request-response.d.ts → request-response.d.ts} +0 -0
  387. /package/dist/{types/router.d.ts → router.d.ts} +0 -0
  388. /package/dist/{types/testing.d.ts → testing.d.ts} +0 -0
  389. /package/dist/{types/transitions.d.ts → transitions.d.ts} +0 -0
  390. /package/dist/types/{types/adopted-options.d.ts → adopted-options.d.ts} +0 -0
  391. /package/dist/types/{types/app-context.d.ts → app-context.d.ts} +0 -0
  392. /package/dist/types/{types/dispatch-options.d.ts → dispatch-options.d.ts} +0 -0
  393. /package/dist/types/{types/guard.d.ts → guard.d.ts} +0 -0
  394. /package/dist/types/{types/i-controller.d.ts → i-controller.d.ts} +0 -0
  395. /package/dist/types/{types/moved-options.d.ts → moved-options.d.ts} +0 -0
  396. /package/dist/types/{types/observe-options.d.ts → observe-options.d.ts} +0 -0
  397. /package/dist/types/{types/page-options.d.ts → page-options.d.ts} +0 -0
  398. /package/dist/types/{types/part-options.d.ts → part-options.d.ts} +0 -0
  399. /package/dist/types/{types/property-converter.d.ts → property-converter.d.ts} +0 -0
  400. /package/dist/types/{types/property-options.d.ts → property-options.d.ts} +0 -0
  401. /package/dist/types/{types/query-options.d.ts → query-options.d.ts} +0 -0
  402. /package/dist/types/{types/request-options.d.ts → request-options.d.ts} +0 -0
  403. /package/dist/types/{types/respond-options.d.ts → respond-options.d.ts} +0 -0
  404. /package/dist/types/{types/route-params.d.ts → route-params.d.ts} +0 -0
  405. /package/dist/types/{types/router-instance.d.ts → router-instance.d.ts} +0 -0
  406. /package/dist/types/{types/router-options.d.ts → router-options.d.ts} +0 -0
  407. /package/dist/types/{types/simple-array.d.ts → simple-array.d.ts} +0 -0
  408. /package/dist/types/{types/snice-element.d.ts → snice-element.d.ts} +0 -0
  409. /package/dist/types/{types/snice-global.d.ts → snice-global.d.ts} +0 -0
  410. /package/dist/types/{types/transition.d.ts → transition.d.ts} +0 -0
  411. /package/dist/{types/utils.d.ts → utils.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
- import { __runInitializers, __esDecorate } from 'tslib';
2
- import { element, property, query, on, dispatch, ready, watch } from 'snice';
1
+ import { __esDecorate, __runInitializers } from 'tslib';
2
+ import { element, property, query, render, styles, watch, html, css } from 'snice';
3
3
 
4
- var css = ":host {\n display: block;\n --breadcrumb-font-size: 0.875rem; /* 14px */\n --breadcrumb-spacing: 0.5rem; /* 8px */\n --breadcrumb-color: rgb(var(--snice-color-gray-600, 82 82 82));\n --breadcrumb-hover-color: rgb(var(--snice-color-blue-600, 37 99 235));\n --breadcrumb-active-color: rgb(var(--snice-color-gray-900, 23 23 23));\n --breadcrumb-separator-color: rgb(var(--snice-color-gray-400, 163 163 163));\n}\n\n.breadcrumb {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: var(--breadcrumb-font-size);\n line-height: 1.5;\n}\n\n.breadcrumb-item {\n display: flex;\n align-items: center;\n color: var(--breadcrumb-color);\n}\n\n.breadcrumb-link {\n color: inherit;\n text-decoration: none;\n transition: color 0.2s ease;\n cursor: pointer;\n outline: none;\n border-radius: 2px;\n padding: 0.125rem 0.25rem; /* 2px 4px */\n margin: -0.125rem -0.25rem; /* -2px -4px */\n display: inline-flex;\n align-items: center;\n gap: 0.375rem; /* 6px */\n}\n\n.breadcrumb-link:hover {\n color: var(--breadcrumb-hover-color);\n text-decoration: underline;\n}\n\n.breadcrumb-link:focus-visible {\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);\n}\n\n.breadcrumb-text {\n padding: 2px 4px;\n margin: -2px -4px;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem; /* 6px */\n}\n\n.breadcrumb-icon {\n display: inline-flex;\n align-items: center;\n font-size: 1.1em;\n}\n\n.breadcrumb-icon-image {\n width: 1.2em;\n height: 1.2em;\n object-fit: contain;\n vertical-align: middle;\n}\n\n[hidden] {\n display: none !important;\n}\n\n.breadcrumb-item--active {\n color: var(--breadcrumb-active-color);\n font-weight: 500;\n}\n\n.breadcrumb-item--active .breadcrumb-link {\n cursor: default;\n pointer-events: none;\n}\n\n.breadcrumb-separator {\n margin: 0 var(--breadcrumb-spacing);\n color: var(--breadcrumb-separator-color);\n user-select: none;\n}\n\n.breadcrumb-ellipsis {\n display: flex;\n align-items: center;\n padding: 2px 4px;\n margin: -2px -4px;\n cursor: pointer;\n color: var(--breadcrumb-color);\n border-radius: 2px;\n transition: background 0.2s ease;\n}\n\n.breadcrumb-ellipsis:hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.breadcrumb-ellipsis:focus-visible {\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);\n outline: none;\n}\n\n/* Sizes */\n:host([size=\"small\"]) {\n --breadcrumb-font-size: 12px;\n --breadcrumb-spacing: 6px;\n}\n\n:host([size=\"large\"]) {\n --breadcrumb-font-size: 16px;\n --breadcrumb-spacing: 10px;\n}\n\n/* Collapsed state */\n.breadcrumb--collapsed .breadcrumb-item--hidden {\n display: none;\n}\n\n/* Mobile responsive */\n@media (max-width: 640px) {\n .breadcrumb {\n font-size: calc(var(--breadcrumb-font-size) * 0.9);\n }\n}";
4
+ var cssContent = ":host{display:block;--breadcrumb-font-size:0.875rem;--breadcrumb-spacing:0.5rem;--breadcrumb-color:rgb(var(--snice-color-gray-600, 82 82 82));--breadcrumb-hover-color:rgb(var(--snice-color-blue-600, 37 99 235));--breadcrumb-active-color:rgb(var(--snice-color-gray-900, 23 23 23));--breadcrumb-separator-color:rgb(var(--snice-color-gray-400, 163 163 163))}case,default,if,when{display:contents}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:var(--breadcrumb-font-size);line-height:1.5}.breadcrumb-item{display:flex;align-items:center;color:var(--breadcrumb-color)}.breadcrumb-link{color:inherit;text-decoration:none;transition:color .2s;cursor:pointer;outline:0;border-radius:2px;padding:.125rem .25rem;margin:-.125rem -.25rem;display:inline-flex;align-items:center;gap:.375rem}.breadcrumb-link:hover{color:var(--breadcrumb-hover-color);text-decoration:underline}.breadcrumb-link:focus-visible{box-shadow:0 0 0 2px rgba(59,130,246,.4)}.breadcrumb-text{padding:2px 4px;margin:-2px -4px;display:inline-flex;align-items:center;gap:.375rem}.breadcrumb-icon{display:inline-flex;align-items:center;font-size:1.1em}.breadcrumb-icon-image{width:1.2em;height:1.2em;object-fit:contain;vertical-align:middle}[hidden]{display:none!important}.breadcrumb-item--active{color:var(--breadcrumb-active-color);font-weight:500}.breadcrumb-item--active .breadcrumb-link{cursor:default;pointer-events:none}.breadcrumb-separator{margin:0 var(--breadcrumb-spacing);color:var(--breadcrumb-separator-color);user-select:none}.breadcrumb-ellipsis{display:flex;align-items:center;padding:2px 4px;margin:-2px -4px;cursor:pointer;color:var(--breadcrumb-color);border-radius:2px;transition:background .2s}.breadcrumb-ellipsis:hover{background:rgba(0,0,0,.05)}.breadcrumb-ellipsis:focus-visible{box-shadow:0 0 0 2px rgba(59,130,246,.4);outline:0}:host([size=small]){--breadcrumb-font-size:12px;--breadcrumb-spacing:6px}:host([size=large]){--breadcrumb-font-size:16px;--breadcrumb-spacing:10px}.breadcrumb--collapsed .breadcrumb-item--hidden{display:none}@media (max-width:640px){.breadcrumb{font-size:calc(var(--breadcrumb-font-size) * .9)}}";
5
5
 
6
6
  let SniceBreadcrumbs = (() => {
7
7
  let _classDecorators = [element('snice-breadcrumbs')];
@@ -25,85 +25,85 @@ let SniceBreadcrumbs = (() => {
25
25
  let _breadcrumbElement_decorators;
26
26
  let _breadcrumbElement_initializers = [];
27
27
  let _breadcrumbElement_extraInitializers = [];
28
- let _handleEllipsisClick_decorators;
29
- let _handleLinkClick_decorators;
30
- let _init_decorators;
28
+ let _collapsed_decorators;
29
+ let _collapsed_initializers = [];
30
+ let _collapsed_extraInitializers = [];
31
+ let _renderTrigger_decorators;
32
+ let _renderTrigger_initializers = [];
33
+ let _renderTrigger_extraInitializers = [];
34
+ let _renderContent_decorators;
35
+ let _componentStyles_decorators;
31
36
  let _updateBreadcrumb_decorators;
32
37
  (class extends _classSuper {
33
38
  static { _classThis = this; }
34
- constructor() {
35
- super(...arguments);
36
- this.items = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _items_initializers, []));
37
- this.separator = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _separator_initializers, '/'));
38
- this.size = (__runInitializers(this, _separator_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));
39
- this.maxItems = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _maxItems_initializers, 0));
40
- this.breadcrumbElement = (__runInitializers(this, _maxItems_extraInitializers), __runInitializers(this, _breadcrumbElement_initializers, void 0));
41
- this.collapsed = (__runInitializers(this, _breadcrumbElement_extraInitializers), true);
42
- this.slotItems = [];
43
- }
44
39
  static {
45
40
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
46
41
  _items_decorators = [property({ type: Array })];
47
42
  _separator_decorators = [property({})];
48
43
  _size_decorators = [property({})];
49
- _maxItems_decorators = [property({ type: Number, })];
44
+ _maxItems_decorators = [property({ type: Number, attribute: 'max-items' })];
50
45
  _breadcrumbElement_decorators = [query('.breadcrumb')];
51
- _handleEllipsisClick_decorators = [on('click', '.breadcrumb-ellipsis')];
52
- _handleLinkClick_decorators = [on('click', '.breadcrumb-link'), dispatch('breadcrumb-click')];
53
- _init_decorators = [ready()];
46
+ _collapsed_decorators = [property({ type: Boolean })];
47
+ _renderTrigger_decorators = [property({ type: Number, attribute: false })];
48
+ _renderContent_decorators = [render()];
49
+ _componentStyles_decorators = [styles()];
54
50
  _updateBreadcrumb_decorators = [watch('items', 'separator', 'maxItems')];
55
- __esDecorate(this, null, _handleEllipsisClick_decorators, { kind: "method", name: "handleEllipsisClick", static: false, private: false, access: { has: obj => "handleEllipsisClick" in obj, get: obj => obj.handleEllipsisClick }, metadata: _metadata }, null, _instanceExtraInitializers);
56
- __esDecorate(this, null, _handleLinkClick_decorators, { kind: "method", name: "handleLinkClick", static: false, private: false, access: { has: obj => "handleLinkClick" in obj, get: obj => obj.handleLinkClick }, metadata: _metadata }, null, _instanceExtraInitializers);
57
- __esDecorate(this, null, _init_decorators, { kind: "method", name: "init", static: false, private: false, access: { has: obj => "init" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);
51
+ __esDecorate(this, null, _renderContent_decorators, { kind: "method", name: "renderContent", static: false, private: false, access: { has: obj => "renderContent" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);
52
+ __esDecorate(this, null, _componentStyles_decorators, { kind: "method", name: "componentStyles", static: false, private: false, access: { has: obj => "componentStyles" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);
58
53
  __esDecorate(this, null, _updateBreadcrumb_decorators, { kind: "method", name: "updateBreadcrumb", static: false, private: false, access: { has: obj => "updateBreadcrumb" in obj, get: obj => obj.updateBreadcrumb }, metadata: _metadata }, null, _instanceExtraInitializers);
59
54
  __esDecorate(null, null, _items_decorators, { kind: "field", name: "items", static: false, private: false, access: { has: obj => "items" in obj, get: obj => obj.items, set: (obj, value) => { obj.items = value; } }, metadata: _metadata }, _items_initializers, _items_extraInitializers);
60
55
  __esDecorate(null, null, _separator_decorators, { kind: "field", name: "separator", static: false, private: false, access: { has: obj => "separator" in obj, get: obj => obj.separator, set: (obj, value) => { obj.separator = value; } }, metadata: _metadata }, _separator_initializers, _separator_extraInitializers);
61
56
  __esDecorate(null, null, _size_decorators, { kind: "field", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
62
57
  __esDecorate(null, null, _maxItems_decorators, { kind: "field", name: "maxItems", static: false, private: false, access: { has: obj => "maxItems" in obj, get: obj => obj.maxItems, set: (obj, value) => { obj.maxItems = value; } }, metadata: _metadata }, _maxItems_initializers, _maxItems_extraInitializers);
63
58
  __esDecorate(null, null, _breadcrumbElement_decorators, { kind: "field", name: "breadcrumbElement", static: false, private: false, access: { has: obj => "breadcrumbElement" in obj, get: obj => obj.breadcrumbElement, set: (obj, value) => { obj.breadcrumbElement = value; } }, metadata: _metadata }, _breadcrumbElement_initializers, _breadcrumbElement_extraInitializers);
59
+ __esDecorate(null, null, _collapsed_decorators, { kind: "field", name: "collapsed", static: false, private: false, access: { has: obj => "collapsed" in obj, get: obj => obj.collapsed, set: (obj, value) => { obj.collapsed = value; } }, metadata: _metadata }, _collapsed_initializers, _collapsed_extraInitializers);
60
+ __esDecorate(null, null, _renderTrigger_decorators, { kind: "field", name: "renderTrigger", static: false, private: false, access: { has: obj => "renderTrigger" in obj, get: obj => obj.renderTrigger, set: (obj, value) => { obj.renderTrigger = value; } }, metadata: _metadata }, _renderTrigger_initializers, _renderTrigger_extraInitializers);
64
61
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
65
62
  _classThis = _classDescriptor.value;
66
63
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
67
64
  __runInitializers(_classThis, _classExtraInitializers);
68
65
  }
69
- html() {
66
+ renderContent() {
70
67
  const allItems = this.getAllItems();
71
68
  const visibleItems = this.getVisibleItems(allItems);
72
69
  const hasCollapsed = this.maxItems > 0 && allItems.length > this.maxItems && this.collapsed;
73
- return /*html*/ `
74
- <slot style="display: none"></slot>
75
- <nav aria-label="Breadcrumb">
76
- <ol class="breadcrumb ${hasCollapsed ? 'breadcrumb--collapsed' : ''}">
70
+ const breadcrumbClass = `breadcrumb${hasCollapsed ? ' breadcrumb--collapsed' : ''}`;
71
+ return html `
72
+ <slot style="display: none" @slotchange="${() => this.handleSlotChange()}"></slot>
73
+ <nav aria-label="Breadcrumb" @click="${(e) => this.handleClick(e)}">
74
+ <ol class="${breadcrumbClass}">
77
75
  ${visibleItems.map((item, index) => {
78
76
  const isLast = index === visibleItems.length - 1;
79
77
  const isActive = item.active || isLast;
80
78
  const isHidden = hasCollapsed && index > 0 && index < visibleItems.length - 2;
81
- return /*html*/ `
82
- <li class="breadcrumb-item ${isActive ? 'breadcrumb-item--active' : ''} ${isHidden ? 'breadcrumb-item--hidden' : ''}">
83
- ${item.href && !isActive ? /*html*/ `
84
- <a href="${item.href}"
79
+ const itemClass = `breadcrumb-item${isActive ? ' breadcrumb-item--active' : ''}${isHidden ? ' breadcrumb-item--hidden' : ''}`;
80
+ return html `
81
+ <li class="${itemClass}">
82
+ <if ${item.href && !isActive}>
83
+ <a href="${item.href}"
85
84
  class="breadcrumb-link"
86
85
  aria-current="${isActive ? 'page' : ''}"
87
86
  tabindex="0">
88
87
  ${this.renderIcon(item)}
89
88
  ${item.label}
90
89
  </a>
91
- ` : /*html*/ `
92
- <span class="breadcrumb-text"
90
+ </if>
91
+ <if ${!item.href || isActive}>
92
+ <span class="breadcrumb-text"
93
93
  aria-current="${isActive ? 'page' : ''}">
94
94
  ${this.renderIcon(item)}
95
95
  ${item.label}
96
96
  </span>
97
- `}
98
- ${!isLast ? /*html*/ `
97
+ </if>
98
+ <if ${!isLast}>
99
99
  <span class="breadcrumb-separator" aria-hidden="true">
100
100
  ${this.separator}
101
101
  </span>
102
- ` : ''}
102
+ </if>
103
103
  </li>
104
- ${hasCollapsed && index === 0 && allItems.length > this.maxItems ? /*html*/ `
104
+ <if ${hasCollapsed && index === 0 && allItems.length > this.maxItems}>
105
105
  <li class="breadcrumb-item">
106
- <button class="breadcrumb-ellipsis"
106
+ <button class="breadcrumb-ellipsis"
107
107
  aria-label="Show all breadcrumbs"
108
108
  tabindex="0">
109
109
  •••
@@ -112,15 +112,15 @@ let SniceBreadcrumbs = (() => {
112
112
  ${this.separator}
113
113
  </span>
114
114
  </li>
115
- ` : ''}
115
+ </if>
116
116
  `;
117
- }).join('')}
117
+ })}
118
118
  </ol>
119
119
  </nav>
120
120
  `;
121
121
  }
122
- css() {
123
- return css;
122
+ componentStyles() {
123
+ return css `${cssContent}`;
124
124
  }
125
125
  getAllItems() {
126
126
  // Prefer slot items if available, otherwise use items property
@@ -135,23 +135,32 @@ let SniceBreadcrumbs = (() => {
135
135
  const lastItems = allItems.slice(-(this.maxItems - 1));
136
136
  return [firstItem, ...lastItems];
137
137
  }
138
- handleEllipsisClick() {
139
- this.collapsed = false;
140
- this.render();
141
- }
142
- handleLinkClick(event) {
138
+ handleClick(event) {
143
139
  const target = event.target;
144
- const label = target.textContent?.trim() || '';
145
- const href = target.getAttribute('href') || '';
146
- // Find the item index
147
- const allItems = this.getAllItems();
148
- const index = allItems.findIndex(item => item.label === label);
149
- return {
150
- item: allItems[index],
151
- index,
152
- href,
153
- label
154
- };
140
+ // Handle ellipsis click
141
+ if (target.matches('.breadcrumb-ellipsis')) {
142
+ this.collapsed = false;
143
+ return;
144
+ }
145
+ // Handle breadcrumb link click
146
+ if (target.matches('.breadcrumb-link')) {
147
+ const link = target;
148
+ const label = link.textContent?.trim() || '';
149
+ const href = link.getAttribute('href') || '';
150
+ // Find the item index
151
+ const allItems = this.getAllItems();
152
+ const index = allItems.findIndex(item => item.label === label);
153
+ this.dispatchEvent(new CustomEvent('breadcrumb-click', {
154
+ bubbles: true,
155
+ composed: true,
156
+ detail: {
157
+ item: allItems[index],
158
+ index,
159
+ href,
160
+ label
161
+ }
162
+ }));
163
+ }
155
164
  }
156
165
  handleSlotChange() {
157
166
  const slot = this.shadowRoot?.querySelector('slot');
@@ -165,46 +174,36 @@ let SniceBreadcrumbs = (() => {
165
174
  iconImage: crumb.iconImage || undefined,
166
175
  active: crumb.active || false
167
176
  }));
168
- this.render();
169
- }
170
- init() {
171
- // Setup slot change handling
172
- const slot = this.shadowRoot?.querySelector('slot');
173
- if (slot) {
174
- slot.addEventListener('slotchange', () => this.handleSlotChange());
175
- // Initial check for slotted content
176
- this.handleSlotChange();
177
- }
177
+ // Trigger re-render to display slot items by updating a property
178
+ this.renderTrigger++;
178
179
  }
179
180
  updateBreadcrumb() {
180
181
  this.collapsed = true;
181
- // Only render if not using slot items, otherwise slot change will handle it
182
- if (!this.slotItems || this.slotItems.length === 0) {
183
- this.render();
184
- }
185
182
  }
186
183
  setItems(items) {
187
184
  this.items = items;
188
185
  }
189
186
  renderIcon(item) {
190
- return /*html*/ `
191
- <img class="breadcrumb-icon-image" src="${item.iconImage || ''}" alt="" ${item.iconImage ? '' : 'hidden'}>
192
- <span class="breadcrumb-icon" ${item.icon ? '' : 'hidden'}>${item.icon || ''}</span>
187
+ return html `
188
+ <if ${item.iconImage}>
189
+ <img class="breadcrumb-icon-image" src="${item.iconImage}" alt="">
190
+ </if>
191
+ <if ${item.icon}>
192
+ <span class="breadcrumb-icon">${item.icon}</span>
193
+ </if>
193
194
  `;
194
195
  }
195
- render() {
196
- const shadow = this.shadowRoot;
197
- if (shadow) {
198
- shadow.innerHTML = '';
199
- if (this.css) {
200
- const style = document.createElement('style');
201
- style.textContent = this.css();
202
- shadow.appendChild(style);
203
- }
204
- const template = document.createElement('template');
205
- template.innerHTML = this.html();
206
- shadow.appendChild(template.content.cloneNode(true));
207
- }
196
+ constructor() {
197
+ super(...arguments);
198
+ this.items = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _items_initializers, []));
199
+ this.separator = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _separator_initializers, '/'));
200
+ this.size = (__runInitializers(this, _separator_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));
201
+ this.maxItems = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _maxItems_initializers, 0));
202
+ this.breadcrumbElement = (__runInitializers(this, _maxItems_extraInitializers), __runInitializers(this, _breadcrumbElement_initializers, void 0));
203
+ this.collapsed = (__runInitializers(this, _breadcrumbElement_extraInitializers), __runInitializers(this, _collapsed_initializers, true));
204
+ this.slotItems = (__runInitializers(this, _collapsed_extraInitializers), []);
205
+ this.renderTrigger = __runInitializers(this, _renderTrigger_initializers, 0);
206
+ __runInitializers(this, _renderTrigger_extraInitializers);
208
207
  }
209
208
  });
210
209
  return _classThis;
@@ -1 +1 @@
1
- {"version":3,"file":"snice-breadcrumbs.js","sources":["../../../components/breadcrumbs/snice-breadcrumbs.css?inline","../../../../components/breadcrumbs/snice-breadcrumbs.ts"],"sourcesContent":["export default \":host {\\n display: block;\\n --breadcrumb-font-size: 0.875rem; /* 14px */\\n --breadcrumb-spacing: 0.5rem; /* 8px */\\n --breadcrumb-color: rgb(var(--snice-color-gray-600, 82 82 82));\\n --breadcrumb-hover-color: rgb(var(--snice-color-blue-600, 37 99 235));\\n --breadcrumb-active-color: rgb(var(--snice-color-gray-900, 23 23 23));\\n --breadcrumb-separator-color: rgb(var(--snice-color-gray-400, 163 163 163));\\n}\\n\\n.breadcrumb {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n font-size: var(--breadcrumb-font-size);\\n line-height: 1.5;\\n}\\n\\n.breadcrumb-item {\\n display: flex;\\n align-items: center;\\n color: var(--breadcrumb-color);\\n}\\n\\n.breadcrumb-link {\\n color: inherit;\\n text-decoration: none;\\n transition: color 0.2s ease;\\n cursor: pointer;\\n outline: none;\\n border-radius: 2px;\\n padding: 0.125rem 0.25rem; /* 2px 4px */\\n margin: -0.125rem -0.25rem; /* -2px -4px */\\n display: inline-flex;\\n align-items: center;\\n gap: 0.375rem; /* 6px */\\n}\\n\\n.breadcrumb-link:hover {\\n color: var(--breadcrumb-hover-color);\\n text-decoration: underline;\\n}\\n\\n.breadcrumb-link:focus-visible {\\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);\\n}\\n\\n.breadcrumb-text {\\n padding: 2px 4px;\\n margin: -2px -4px;\\n display: inline-flex;\\n align-items: center;\\n gap: 0.375rem; /* 6px */\\n}\\n\\n.breadcrumb-icon {\\n display: inline-flex;\\n align-items: center;\\n font-size: 1.1em;\\n}\\n\\n.breadcrumb-icon-image {\\n width: 1.2em;\\n height: 1.2em;\\n object-fit: contain;\\n vertical-align: middle;\\n}\\n\\n[hidden] {\\n display: none !important;\\n}\\n\\n.breadcrumb-item--active {\\n color: var(--breadcrumb-active-color);\\n font-weight: 500;\\n}\\n\\n.breadcrumb-item--active .breadcrumb-link {\\n cursor: default;\\n pointer-events: none;\\n}\\n\\n.breadcrumb-separator {\\n margin: 0 var(--breadcrumb-spacing);\\n color: var(--breadcrumb-separator-color);\\n user-select: none;\\n}\\n\\n.breadcrumb-ellipsis {\\n display: flex;\\n align-items: center;\\n padding: 2px 4px;\\n margin: -2px -4px;\\n cursor: pointer;\\n color: var(--breadcrumb-color);\\n border-radius: 2px;\\n transition: background 0.2s ease;\\n}\\n\\n.breadcrumb-ellipsis:hover {\\n background: rgba(0, 0, 0, 0.05);\\n}\\n\\n.breadcrumb-ellipsis:focus-visible {\\n box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.4);\\n outline: none;\\n}\\n\\n/* Sizes */\\n:host([size=\\\"small\\\"]) {\\n --breadcrumb-font-size: 12px;\\n --breadcrumb-spacing: 6px;\\n}\\n\\n:host([size=\\\"large\\\"]) {\\n --breadcrumb-font-size: 16px;\\n --breadcrumb-spacing: 10px;\\n}\\n\\n/* Collapsed state */\\n.breadcrumb--collapsed .breadcrumb-item--hidden {\\n display: none;\\n}\\n\\n/* Mobile responsive */\\n@media (max-width: 640px) {\\n .breadcrumb {\\n font-size: calc(var(--breadcrumb-font-size) * 0.9);\\n }\\n}\";",null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snice-breadcrumbs.js","sources":["../../../components/breadcrumbs/snice-breadcrumbs.css?inline","../../../../components/breadcrumbs/snice-breadcrumbs.ts"],"sourcesContent":["export default \":host{display:block;--breadcrumb-font-size:0.875rem;--breadcrumb-spacing:0.5rem;--breadcrumb-color:rgb(var(--snice-color-gray-600, 82 82 82));--breadcrumb-hover-color:rgb(var(--snice-color-blue-600, 37 99 235));--breadcrumb-active-color:rgb(var(--snice-color-gray-900, 23 23 23));--breadcrumb-separator-color:rgb(var(--snice-color-gray-400, 163 163 163))}case,default,if,when{display:contents}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:var(--breadcrumb-font-size);line-height:1.5}.breadcrumb-item{display:flex;align-items:center;color:var(--breadcrumb-color)}.breadcrumb-link{color:inherit;text-decoration:none;transition:color .2s;cursor:pointer;outline:0;border-radius:2px;padding:.125rem .25rem;margin:-.125rem -.25rem;display:inline-flex;align-items:center;gap:.375rem}.breadcrumb-link:hover{color:var(--breadcrumb-hover-color);text-decoration:underline}.breadcrumb-link:focus-visible{box-shadow:0 0 0 2px rgba(59,130,246,.4)}.breadcrumb-text{padding:2px 4px;margin:-2px -4px;display:inline-flex;align-items:center;gap:.375rem}.breadcrumb-icon{display:inline-flex;align-items:center;font-size:1.1em}.breadcrumb-icon-image{width:1.2em;height:1.2em;object-fit:contain;vertical-align:middle}[hidden]{display:none!important}.breadcrumb-item--active{color:var(--breadcrumb-active-color);font-weight:500}.breadcrumb-item--active .breadcrumb-link{cursor:default;pointer-events:none}.breadcrumb-separator{margin:0 var(--breadcrumb-spacing);color:var(--breadcrumb-separator-color);user-select:none}.breadcrumb-ellipsis{display:flex;align-items:center;padding:2px 4px;margin:-2px -4px;cursor:pointer;color:var(--breadcrumb-color);border-radius:2px;transition:background .2s}.breadcrumb-ellipsis:hover{background:rgba(0,0,0,.05)}.breadcrumb-ellipsis:focus-visible{box-shadow:0 0 0 2px rgba(59,130,246,.4);outline:0}:host([size=small]){--breadcrumb-font-size:12px;--breadcrumb-spacing:6px}:host([size=large]){--breadcrumb-font-size:16px;--breadcrumb-spacing:10px}.breadcrumb--collapsed .breadcrumb-item--hidden{display:none}@media (max-width:640px){.breadcrumb{font-size:calc(var(--breadcrumb-font-size) * .9)}}\";",null],"names":["cssTag"],"mappings":"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"}
@@ -16,16 +16,12 @@ export declare class SniceButton extends HTMLElement implements SniceButtonEleme
16
16
  spinner?: HTMLElement;
17
17
  label?: HTMLElement;
18
18
  iconElement?: HTMLImageElement;
19
- html(): string;
20
- css(): string;
21
- updateButtonClasses(): void;
22
- updateDisabledState(): void;
19
+ renderContent(): import("snice").TemplateResult;
20
+ private handleInternalClick;
21
+ componentStyles(): import("snice").CSSResult;
23
22
  setLoading(loading: boolean): void;
24
23
  setDisabled(disabled: boolean): void;
25
24
  setVariant(variant: typeof this.variant): void;
26
- handleClick(event: MouseEvent): {
27
- originalEvent: MouseEvent;
28
- } | undefined;
29
25
  focus(options?: FocusOptions): void;
30
26
  blur(): void;
31
27
  click(): void;
@@ -1,7 +1,7 @@
1
1
  import { __esDecorate, __runInitializers } from 'tslib';
2
- import { element, property, query, watch, on, dispatch } from 'snice';
2
+ import { element, property, query, render, styles, html, css } from 'snice';
3
3
 
4
- var css = ":host {\n display: inline-block;\n position: relative;\n width: auto;\n cursor: pointer;\n}\n\n:host([disabled]) {\n cursor: not-allowed;\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n border: 1px solid;\n font-family: var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);\n font-weight: var(--snice-font-weight-medium, 500);\n text-decoration: none;\n user-select: none;\n white-space: nowrap;\n vertical-align: middle;\n padding: 0;\n transition: \n color var(--snice-transition-fast, 150ms) ease,\n background-color var(--snice-transition-fast, 150ms) ease,\n border-color var(--snice-transition-fast, 150ms) ease,\n box-shadow var(--snice-transition-fast, 150ms) ease;\n cursor: inherit;\n position: relative;\n}\n\n.button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--snice-focus-ring-width, 2px) var(--snice-focus-ring-color, rgb(59 130 246 / 0.5));\n}\n\n.button--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Sizes */\n.button--small {\n font-size: var(--snice-font-size-sm, 0.875rem);\n height: 1.875rem; /* 30px */\n padding: 0 var(--snice-spacing-sm, 0.75rem);\n border-radius: var(--snice-border-radius-md, 0.25rem);\n}\n\n.button--medium {\n font-size: var(--snice-font-size-md, 1rem);\n height: 2.5rem; /* 40px */\n padding: 0 var(--snice-spacing-md, 1rem);\n border-radius: var(--snice-border-radius-md, 0.25rem);\n}\n\n.button--large {\n font-size: var(--snice-font-size-lg, 1.125rem);\n height: 3.125rem; /* 50px */\n padding: 0 var(--snice-spacing-lg, 1.5rem);\n border-radius: var(--snice-border-radius-md, 0.25rem);\n}\n\n/* Variants - Default */\n.button--default {\n background-color: var(--snice-color-background, rgb(255 255 255));\n color: var(--snice-color-text, rgb(23 23 23));\n border-color: var(--snice-color-border, rgb(226 226 226));\n}\n\n.button--default:hover:not(.button--disabled) {\n background-color: var(--snice-color-background-secondary, rgb(250 250 250));\n border-color: var(--snice-color-border-hover, rgb(204 204 204));\n}\n\n.button--default:active:not(.button--disabled) {\n background-color: var(--snice-color-background-tertiary, rgb(241 241 241));\n}\n\n/* Variants - Primary */\n.button--primary {\n background-color: var(--snice-color-primary, rgb(37 99 235));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n border-color: var(--snice-color-primary, rgb(37 99 235));\n}\n\n.button--primary:hover:not(.button--disabled) {\n background-color: var(--snice-color-primary-hover, rgb(29 78 216));\n border-color: var(--snice-color-primary-hover, rgb(29 78 216));\n}\n\n.button--primary:active:not(.button--disabled) {\n background-color: var(--snice-color-primary-hover, rgb(29 78 216));\n}\n\n/* Variants - Success */\n.button--success {\n background-color: var(--snice-color-success, rgb(22 163 74));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n border-color: var(--snice-color-success, rgb(22 163 74));\n}\n\n.button--success:hover:not(.button--disabled) {\n background-color: var(--snice-color-success-hover, rgb(21 128 61));\n border-color: var(--snice-color-success-hover, rgb(21 128 61));\n}\n\n/* Variants - Warning */\n.button--warning {\n background-color: var(--snice-color-warning, rgb(202 138 4));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n border-color: var(--snice-color-warning, rgb(202 138 4));\n}\n\n.button--warning:hover:not(.button--disabled) {\n background-color: var(--snice-color-warning-hover, rgb(161 98 7));\n border-color: var(--snice-color-warning-hover, rgb(161 98 7));\n}\n\n/* Variants - Danger */\n.button--danger {\n background-color: var(--snice-color-danger, rgb(220 38 38));\n color: var(--snice-color-text-inverse, rgb(250 250 250));\n border-color: var(--snice-color-danger, rgb(220 38 38));\n}\n\n.button--danger:hover:not(.button--disabled) {\n background-color: var(--snice-color-danger-hover, rgb(185 28 28));\n border-color: var(--snice-color-danger-hover, rgb(185 28 28));\n}\n\n/* Variants - Text */\n.button--text {\n background-color: transparent;\n color: var(--snice-color-primary, rgb(37 99 235));\n border-color: transparent;\n}\n\n.button--text:hover:not(.button--disabled) {\n background-color: rgb(59 130 246 / 0.1);\n color: var(--snice-color-primary-hover, rgb(29 78 216));\n}\n\n/* Outline modifier */\n.button--outline.button--default {\n background-color: transparent;\n color: var(--snice-color-text, rgb(23 23 23));\n}\n\n.button--outline.button--primary {\n background-color: transparent;\n color: var(--snice-color-primary, rgb(37 99 235));\n}\n\n.button--outline.button--success {\n background-color: transparent;\n color: var(--snice-color-success, rgb(22 163 74));\n}\n\n.button--outline.button--warning {\n background-color: transparent;\n color: var(--snice-color-warning, rgb(202 138 4));\n}\n\n.button--outline.button--danger {\n background-color: transparent;\n color: var(--snice-color-danger, rgb(220 38 38));\n}\n\n.button--outline:hover:not(.button--disabled) {\n background-color: rgb(115 115 115 / 0.1);\n}\n\n/* Shape modifiers */\n.button--pill {\n border-radius: var(--snice-border-radius-pill, 9999px);\n}\n\n.button--circle {\n border-radius: var(--snice-border-radius-circle, 50%);\n width: var(--size);\n padding: 0;\n}\n\n.button--small.button--circle { --size: 1.875rem; /* 30px */ }\n.button--medium.button--circle { --size: 2.5rem; /* 40px */ }\n.button--large.button--circle { --size: 3.125rem; /* 50px */ }\n\n/* Loading state */\n.button--loading {\n position: relative;\n cursor: wait;\n}\n\n.button--loading .label {\n visibility: hidden;\n}\n\n.spinner {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 1em;\n height: 1em;\n}\n\n.button--loading .spinner {\n display: block;\n}\n\n.spinner::after {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spin 0.6s linear infinite;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}";
4
+ var cssContent = ":host{display:inline-block;position:relative;width:auto;cursor:pointer}:host([disabled]){cursor:not-allowed}.button{display:inline-flex;align-items:center;justify-content:center;width:100%;border:1px solid;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-medium,500);text-decoration:none;user-select:none;white-space:nowrap;vertical-align:middle;padding:0;transition:color var(--snice-transition-fast, 150ms) ease,background-color var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease,box-shadow var(--snice-transition-fast, 150ms) ease;cursor:inherit;position:relative}.button:active{transition:color 50ms,background-color 50ms,border-color 50ms,box-shadow 50ms}.button:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.button--disabled{opacity:.5;cursor:not-allowed}.button--small{font-size:var(--snice-font-size-sm, .875rem);height:1.875rem;padding:0 var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--medium{font-size:var(--snice-font-size-md, 1rem);height:2.5rem;padding:0 var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--large{font-size:var(--snice-font-size-lg, 1.125rem);height:3.125rem;padding:0 var(--snice-spacing-lg,1.5rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--default{background-color:var(--snice-color-background,rgb(255 255 255));color:var(--snice-color-text,rgb(23 23 23));border-color:var(--snice-color-border,rgb(226 226 226))}.button--default:hover:not(.button--disabled){background-color:var(--snice-color-background-secondary,rgb(250 250 250));border-color:var(--snice-color-border-hover,rgb(204 204 204))}.button--default:active:not(.button--disabled){background-color:var(--snice-color-background-tertiary,rgb(248 248 248));border-color:var(--snice-color-border-hover,rgb(204 204 204))}.button--primary{background-color:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-primary,rgb(37 99 235))}.button--primary:hover:not(.button--disabled){background-color:var(--snice-color-primary-hover,rgb(29 78 216));border-color:var(--snice-color-primary-hover,rgb(29 78 216))}.button--primary:active:not(.button--disabled){background-color:var(--snice-color-primary-active,rgb(27 76 214));border-color:var(--snice-color-primary-active,rgb(27 76 214))}.button--success{background-color:var(--snice-color-success,rgb(22 163 74));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-success,rgb(22 163 74))}.button--success:hover:not(.button--disabled){background-color:var(--snice-color-success-hover,rgb(21 128 61));border-color:var(--snice-color-success-hover,rgb(21 128 61))}.button--success:active:not(.button--disabled){background-color:var(--snice-color-success-active,rgb(19 126 59));border-color:var(--snice-color-success-active,rgb(19 126 59))}.button--warning{background-color:var(--snice-color-warning,rgb(202 138 4));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-warning,rgb(202 138 4))}.button--warning:hover:not(.button--disabled){background-color:var(--snice-color-warning-hover,rgb(161 98 7));border-color:var(--snice-color-warning-hover,rgb(161 98 7))}.button--warning:active:not(.button--disabled){background-color:var(--snice-color-warning-active,rgb(159 96 5));border-color:var(--snice-color-warning-active,rgb(159 96 5))}.button--danger{background-color:var(--snice-color-danger,rgb(220 38 38));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-danger,rgb(220 38 38))}.button--danger:hover:not(.button--disabled){background-color:var(--snice-color-danger-hover,rgb(185 28 28));border-color:var(--snice-color-danger-hover,rgb(185 28 28))}.button--danger:active:not(.button--disabled){background-color:var(--snice-color-danger-active,rgb(183 26 26));border-color:var(--snice-color-danger-active,rgb(183 26 26))}.button--text{background-color:transparent;color:var(--snice-color-primary,rgb(37 99 235));border-color:transparent}.button--text:hover:not(.button--disabled){background-color:rgb(59 130 246 / .1);color:var(--snice-color-primary-hover,rgb(29 78 216))}.button--text:active:not(.button--disabled){background-color:rgb(59 130 246 / .11)}.button--outline.button--default{background-color:transparent;color:var(--snice-color-text,rgb(23 23 23))}.button--outline.button--primary{background-color:transparent;color:var(--snice-color-primary,rgb(37 99 235))}.button--outline.button--success{background-color:transparent;color:var(--snice-color-success,rgb(22 163 74))}.button--outline.button--warning{background-color:transparent;color:var(--snice-color-warning,rgb(202 138 4))}.button--outline.button--danger{background-color:transparent;color:var(--snice-color-danger,rgb(220 38 38))}.button--outline:hover:not(.button--disabled){background-color:rgb(115 115 115 / .1)}.button--outline:active:not(.button--disabled){background-color:rgb(115 115 115 / .11)}.button--pill{border-radius:var(--snice-border-radius-pill,9999px)}.button--circle{border-radius:var(--snice-border-radius-circle,50%);width:var(--size);padding:0}.button--small.button--circle{--size:1.875rem}.button--medium.button--circle{--size:2.5rem}.button--large.button--circle{--size:3.125rem}.button--loading{position:relative;cursor:wait}.button--loading .label{visibility:hidden}.spinner{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:1em;height:1em}.button--loading .spinner{display:block}.spinner::after{content:'';display:block;width:100%;height:100%;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}";
5
5
 
6
6
  let SniceButton = (() => {
7
7
  let _classDecorators = [element('snice-button')];
@@ -58,9 +58,8 @@ let SniceButton = (() => {
58
58
  let _iconElement_decorators;
59
59
  let _iconElement_initializers = [];
60
60
  let _iconElement_extraInitializers = [];
61
- let _updateButtonClasses_decorators;
62
- let _updateDisabledState_decorators;
63
- let _handleClick_decorators;
61
+ let _renderContent_decorators;
62
+ let _componentStyles_decorators;
64
63
  (class extends _classSuper {
65
64
  static { _classThis = this; }
66
65
  static {
@@ -81,12 +80,10 @@ let SniceButton = (() => {
81
80
  _spinner_decorators = [query('.spinner')];
82
81
  _label_decorators = [query('.label')];
83
82
  _iconElement_decorators = [query('.icon')];
84
- _updateButtonClasses_decorators = [watch('*')];
85
- _updateDisabledState_decorators = [watch('disabled')];
86
- _handleClick_decorators = [on('click'), dispatch('@snice/click')];
87
- __esDecorate(this, null, _updateButtonClasses_decorators, { kind: "method", name: "updateButtonClasses", static: false, private: false, access: { has: obj => "updateButtonClasses" in obj, get: obj => obj.updateButtonClasses }, metadata: _metadata }, null, _instanceExtraInitializers);
88
- __esDecorate(this, null, _updateDisabledState_decorators, { kind: "method", name: "updateDisabledState", static: false, private: false, access: { has: obj => "updateDisabledState" in obj, get: obj => obj.updateDisabledState }, metadata: _metadata }, null, _instanceExtraInitializers);
89
- __esDecorate(this, null, _handleClick_decorators, { kind: "method", name: "handleClick", static: false, private: false, access: { has: obj => "handleClick" in obj, get: obj => obj.handleClick }, metadata: _metadata }, null, _instanceExtraInitializers);
83
+ _renderContent_decorators = [render()];
84
+ _componentStyles_decorators = [styles()];
85
+ __esDecorate(this, null, _renderContent_decorators, { kind: "method", name: "renderContent", static: false, private: false, access: { has: obj => "renderContent" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);
86
+ __esDecorate(this, null, _componentStyles_decorators, { kind: "method", name: "componentStyles", static: false, private: false, access: { has: obj => "componentStyles" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);
90
87
  __esDecorate(null, null, _variant_decorators, { kind: "field", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
91
88
  __esDecorate(null, null, _size_decorators, { kind: "field", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
92
89
  __esDecorate(null, null, _disabled_decorators, { kind: "field", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
@@ -108,7 +105,7 @@ let SniceButton = (() => {
108
105
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
109
106
  __runInitializers(_classThis, _classExtraInitializers);
110
107
  }
111
- html() {
108
+ renderContent() {
112
109
  const classes = [
113
110
  'button',
114
111
  `button--${this.variant || 'default'}`,
@@ -121,58 +118,22 @@ let SniceButton = (() => {
121
118
  this.icon ? `button--has-icon` : '',
122
119
  this.icon ? `button--icon-${this.iconPlacement}` : ''
123
120
  ].filter(Boolean).join(' ');
124
- const iconElement = this.icon ? /*html*/ `
125
- <img class="icon" src="${this.icon}" alt="" part="icon" />
126
- ` : '';
127
- return /*html*/ `
128
- <button class="${classes}" type="button" ${this.disabled ? 'disabled' : ''} part="base">
121
+ return html /*html*/ `
122
+ <button class="${classes}" type="button" ?disabled="${this.disabled}" part="base" @click="${(e) => this.handleInternalClick(e)}">
129
123
  <span class="spinner" part="spinner"></span>
130
- ${this.iconPlacement === 'start' ? iconElement : ''}
124
+ <if ${this.icon && this.iconPlacement === 'start'}>
125
+ <img class="icon" src="${this.icon}" alt="" part="icon" />
126
+ </if>
131
127
  <span class="label" part="label">
132
128
  <slot></slot>
133
129
  </span>
134
- ${this.iconPlacement === 'end' ? iconElement : ''}
130
+ <if ${this.icon && this.iconPlacement === 'end'}>
131
+ <img class="icon" src="${this.icon}" alt="" part="icon" />
132
+ </if>
135
133
  </button>
136
134
  `;
137
135
  }
138
- css() {
139
- return css;
140
- }
141
- updateButtonClasses() {
142
- if (!this.button)
143
- return;
144
- // Rebuild all classes based on current state
145
- const classes = [
146
- 'button',
147
- `button--${this.variant}`,
148
- `button--${this.size}`,
149
- this.outline ? 'button--outline' : '',
150
- this.pill ? 'button--pill' : '',
151
- this.circle ? 'button--circle' : '',
152
- this.loading ? 'button--loading' : '',
153
- this.disabled ? 'button--disabled' : '',
154
- this.icon ? `button--has-icon` : '',
155
- this.icon ? `button--icon-${this.iconPlacement}` : ''
156
- ].filter(Boolean);
157
- // Set the className directly to avoid class manipulation issues
158
- this.button.className = classes.join(' ');
159
- }
160
- updateDisabledState() {
161
- if (this.button) {
162
- this.button.disabled = this.disabled;
163
- }
164
- }
165
- // Keep these methods for backwards compatibility if needed
166
- setLoading(loading) {
167
- this.loading = loading;
168
- }
169
- setDisabled(disabled) {
170
- this.disabled = disabled;
171
- }
172
- setVariant(variant) {
173
- this.variant = variant;
174
- }
175
- handleClick(event) {
136
+ handleInternalClick(event) {
176
137
  if (this.disabled || this.loading) {
177
138
  event.preventDefault();
178
139
  event.stopPropagation();
@@ -193,7 +154,25 @@ let SniceButton = (() => {
193
154
  window.location.href = this.href;
194
155
  }
195
156
  }
196
- return { originalEvent: event };
157
+ // Dispatch the custom event
158
+ this.dispatchEvent(new CustomEvent('@snice/click', {
159
+ bubbles: true,
160
+ composed: true,
161
+ detail: { originalEvent: event }
162
+ }));
163
+ }
164
+ componentStyles() {
165
+ return css /*css*/ `${cssContent}`;
166
+ }
167
+ // Keep these methods for backwards compatibility if needed
168
+ setLoading(loading) {
169
+ this.loading = loading;
170
+ }
171
+ setDisabled(disabled) {
172
+ this.disabled = disabled;
173
+ }
174
+ setVariant(variant) {
175
+ this.variant = variant;
197
176
  }
198
177
  focus(options) {
199
178
  this.button?.focus(options);