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
@@ -0,0 +1,558 @@
1
+ # Accordion Components
2
+
3
+ The accordion components provide collapsible sections of content. An `<snice-accordion>` container manages multiple `<snice-accordion-item>` elements, supporting single or multiple open items with keyboard navigation.
4
+
5
+ ## Table of Contents
6
+ - [Basic Usage](#basic-usage)
7
+ - [Components](#components)
8
+ - [Properties](#properties)
9
+ - [Methods](#methods)
10
+ - [Events](#events)
11
+ - [Examples](#examples)
12
+
13
+ ## Basic Usage
14
+
15
+ ```html
16
+ <snice-accordion>
17
+ <snice-accordion-item item-id="item-1">
18
+ <span slot="header">Section 1</span>
19
+ <div>Content for section 1</div>
20
+ </snice-accordion-item>
21
+
22
+ <snice-accordion-item item-id="item-2">
23
+ <span slot="header">Section 2</span>
24
+ <div>Content for section 2</div>
25
+ </snice-accordion-item>
26
+
27
+ <snice-accordion-item item-id="item-3">
28
+ <span slot="header">Section 3</span>
29
+ <div>Content for section 3</div>
30
+ </snice-accordion-item>
31
+ </snice-accordion>
32
+ ```
33
+
34
+ ```typescript
35
+ import 'snice/components/accordion/snice-accordion';
36
+ import 'snice/components/accordion/snice-accordion-item';
37
+ ```
38
+
39
+ ## Components
40
+
41
+ ### `<snice-accordion>`
42
+ Container element that manages accordion items.
43
+
44
+ ### `<snice-accordion-item>`
45
+ Individual collapsible section within an accordion.
46
+
47
+ ## Properties
48
+
49
+ ### Accordion Container
50
+
51
+ | Property | Type | Default | Description |
52
+ |----------|------|---------|-------------|
53
+ | `multiple` | `boolean` | `false` | Allow multiple items open simultaneously |
54
+
55
+ ### Accordion Item
56
+
57
+ | Property | Type | Default | Description |
58
+ |----------|------|---------|-------------|
59
+ | `itemId` | `string` | auto-generated | Unique identifier for the item |
60
+ | `open` | `boolean` | `false` | Whether the item is expanded |
61
+ | `disabled` | `boolean` | `false` | Disable interaction with the item |
62
+
63
+ ## Methods
64
+
65
+ ### Accordion Container Methods
66
+
67
+ #### `openItem(id: string): void`
68
+ Open a specific item by ID.
69
+
70
+ ```typescript
71
+ accordion.openItem('item-1');
72
+ ```
73
+
74
+ #### `closeItem(id: string): void`
75
+ Close a specific item by ID.
76
+
77
+ ```typescript
78
+ accordion.closeItem('item-1');
79
+ ```
80
+
81
+ #### `toggleItem(id: string): void`
82
+ Toggle a specific item by ID.
83
+
84
+ ```typescript
85
+ accordion.toggleItem('item-1');
86
+ ```
87
+
88
+ #### `openAll(): void`
89
+ Open all items (only works in `multiple` mode).
90
+
91
+ ```typescript
92
+ accordion.openAll();
93
+ ```
94
+
95
+ #### `closeAll(): void`
96
+ Close all items.
97
+
98
+ ```typescript
99
+ accordion.closeAll();
100
+ ```
101
+
102
+ ### Accordion Item Methods
103
+
104
+ #### `toggle(): void`
105
+ Toggle the item's open/closed state.
106
+
107
+ ```typescript
108
+ item.toggle();
109
+ ```
110
+
111
+ #### `expand(animate = true): void`
112
+ Open the item with optional animation.
113
+
114
+ ```typescript
115
+ item.expand();
116
+ item.expand(false); // Without animation
117
+ ```
118
+
119
+ #### `collapse(animate = true): void`
120
+ Close the item with optional animation.
121
+
122
+ ```typescript
123
+ item.collapse();
124
+ item.collapse(false); // Without animation
125
+ ```
126
+
127
+ ## Events
128
+
129
+ ### Container Events
130
+
131
+ #### `@snice/accordion-open`
132
+ Fired when an item is opened.
133
+
134
+ **Event Detail:**
135
+ ```typescript
136
+ {
137
+ itemId: string;
138
+ item: SniceAccordionItemElement;
139
+ }
140
+ ```
141
+
142
+ **Usage:**
143
+ ```typescript
144
+ accordion.addEventListener('@snice/accordion-open', (e) => {
145
+ console.log('Item opened:', e.detail.itemId);
146
+ });
147
+ ```
148
+
149
+ #### `@snice/accordion-close`
150
+ Fired when an item is closed.
151
+
152
+ **Event Detail:**
153
+ ```typescript
154
+ {
155
+ itemId: string;
156
+ item: SniceAccordionItemElement;
157
+ }
158
+ ```
159
+
160
+ ### Item Events
161
+
162
+ #### `accordion-item-toggle`
163
+ Fired when an item is toggled.
164
+
165
+ **Event Detail:**
166
+ ```typescript
167
+ {
168
+ itemId: string;
169
+ open: boolean;
170
+ }
171
+ ```
172
+
173
+ ## Slots
174
+
175
+ ### Accordion Item Slots
176
+
177
+ #### `header` (named slot)
178
+ Content for the clickable header/trigger.
179
+
180
+ ```html
181
+ <snice-accordion-item>
182
+ <span slot="header">Click to expand</span>
183
+ <div>Panel content</div>
184
+ </snice-accordion-item>
185
+ ```
186
+
187
+ #### Default slot
188
+ Content that appears when the item is expanded.
189
+
190
+ ```html
191
+ <snice-accordion-item>
192
+ <span slot="header">Header</span>
193
+ <div>This content is collapsible</div>
194
+ </snice-accordion-item>
195
+ ```
196
+
197
+ ## Examples
198
+
199
+ ### Basic Accordion
200
+
201
+ ```html
202
+ <snice-accordion>
203
+ <snice-accordion-item item-id="general">
204
+ <span slot="header">General Information</span>
205
+ <p>This section contains general information about the product.</p>
206
+ </snice-accordion-item>
207
+
208
+ <snice-accordion-item item-id="specs">
209
+ <span slot="header">Technical Specifications</span>
210
+ <ul>
211
+ <li>Weight: 2.5 kg</li>
212
+ <li>Dimensions: 30x20x10 cm</li>
213
+ <li>Material: Aluminum</li>
214
+ </ul>
215
+ </snice-accordion-item>
216
+
217
+ <snice-accordion-item item-id="warranty">
218
+ <span slot="header">Warranty Information</span>
219
+ <p>This product comes with a 2-year manufacturer warranty.</p>
220
+ </snice-accordion-item>
221
+ </snice-accordion>
222
+ ```
223
+
224
+ ### Multiple Open Items
225
+
226
+ ```html
227
+ <snice-accordion multiple>
228
+ <snice-accordion-item item-id="item-1">
229
+ <span slot="header">Section 1</span>
230
+ <p>Content 1</p>
231
+ </snice-accordion-item>
232
+
233
+ <snice-accordion-item item-id="item-2" open>
234
+ <span slot="header">Section 2</span>
235
+ <p>Content 2 (initially open)</p>
236
+ </snice-accordion-item>
237
+
238
+ <snice-accordion-item item-id="item-3" open>
239
+ <span slot="header">Section 3</span>
240
+ <p>Content 3 (initially open)</p>
241
+ </snice-accordion-item>
242
+ </snice-accordion>
243
+ ```
244
+
245
+ ### With Disabled Items
246
+
247
+ ```html
248
+ <snice-accordion>
249
+ <snice-accordion-item item-id="active">
250
+ <span slot="header">Active Item</span>
251
+ <p>This item can be clicked.</p>
252
+ </snice-accordion-item>
253
+
254
+ <snice-accordion-item item-id="disabled" disabled>
255
+ <span slot="header">Disabled Item</span>
256
+ <p>This item cannot be opened.</p>
257
+ </snice-accordion-item>
258
+ </snice-accordion>
259
+ ```
260
+
261
+ ### FAQ Accordion
262
+
263
+ ```html
264
+ <style>
265
+ snice-accordion-item::part(header) {
266
+ font-weight: 600;
267
+ padding: 1rem;
268
+ }
269
+
270
+ snice-accordion-item::part(content) {
271
+ padding: 1rem;
272
+ background: #f9fafb;
273
+ }
274
+ </style>
275
+
276
+ <snice-accordion id="faq">
277
+ <snice-accordion-item item-id="shipping">
278
+ <span slot="header">What are the shipping options?</span>
279
+ <p>We offer standard (5-7 days) and express (2-3 days) shipping options.</p>
280
+ </snice-accordion-item>
281
+
282
+ <snice-accordion-item item-id="returns">
283
+ <span slot="header">What is your return policy?</span>
284
+ <p>Items can be returned within 30 days of purchase for a full refund.</p>
285
+ </snice-accordion-item>
286
+
287
+ <snice-accordion-item item-id="warranty">
288
+ <span slot="header">Do products come with a warranty?</span>
289
+ <p>All products include a 1-year manufacturer warranty.</p>
290
+ </snice-accordion-item>
291
+ </snice-accordion>
292
+ ```
293
+
294
+ ### Programmatic Control
295
+
296
+ ```html
297
+ <snice-accordion id="controlled">
298
+ <snice-accordion-item item-id="item-1">
299
+ <span slot="header">Item 1</span>
300
+ <p>Content 1</p>
301
+ </snice-accordion-item>
302
+
303
+ <snice-accordion-item item-id="item-2">
304
+ <span slot="header">Item 2</span>
305
+ <p>Content 2</p>
306
+ </snice-accordion-item>
307
+
308
+ <snice-accordion-item item-id="item-3">
309
+ <span slot="header">Item 3</span>
310
+ <p>Content 3</p>
311
+ </snice-accordion-item>
312
+ </snice-accordion>
313
+
314
+ <div style="display: flex; gap: 8px; margin-top: 1rem;">
315
+ <button onclick="document.querySelector('#controlled').openAll()">
316
+ Open All
317
+ </button>
318
+ <button onclick="document.querySelector('#controlled').closeAll()">
319
+ Close All
320
+ </button>
321
+ <button onclick="document.querySelector('#controlled').toggleItem('item-2')">
322
+ Toggle Item 2
323
+ </button>
324
+ </div>
325
+ ```
326
+
327
+ ### With Event Handling
328
+
329
+ ```typescript
330
+ import type { SniceAccordionElement } from 'snice/components/accordion/snice-accordion.types';
331
+
332
+ const accordion = document.querySelector<SniceAccordionElement>('snice-accordion');
333
+
334
+ accordion.addEventListener('@snice/accordion-open', (e) => {
335
+ console.log('Opened item:', e.detail.itemId);
336
+ // Track analytics, load content, etc.
337
+ });
338
+
339
+ accordion.addEventListener('@snice/accordion-close', (e) => {
340
+ console.log('Closed item:', e.detail.itemId);
341
+ });
342
+
343
+ // Programmatic control
344
+ accordion.openItem('item-1');
345
+ accordion.closeItem('item-2');
346
+ accordion.toggleItem('item-3');
347
+ ```
348
+
349
+ ### Dynamic Content Loading
350
+
351
+ ```html
352
+ <snice-accordion id="lazyAccordion">
353
+ <snice-accordion-item item-id="section-1">
354
+ <span slot="header">Section 1</span>
355
+ <div id="content-1">Loading...</div>
356
+ </snice-accordion-item>
357
+
358
+ <snice-accordion-item item-id="section-2">
359
+ <span slot="header">Section 2</span>
360
+ <div id="content-2">Loading...</div>
361
+ </snice-accordion-item>
362
+ </snice-accordion>
363
+
364
+ <script type="module">
365
+ import 'snice/components/accordion/snice-accordion';
366
+ import 'snice/components/accordion/snice-accordion-item';
367
+
368
+ const accordion = document.querySelector('#lazyAccordion');
369
+
370
+ accordion.addEventListener('@snice/accordion-open', async (e) => {
371
+ const contentId = `content-${e.detail.itemId.split('-')[1]}`;
372
+ const contentEl = document.querySelector(`#${contentId}`);
373
+
374
+ if (contentEl.textContent === 'Loading...') {
375
+ const response = await fetch(`/api/content/${e.detail.itemId}`);
376
+ const data = await response.json();
377
+ contentEl.innerHTML = data.html;
378
+ }
379
+ });
380
+ </script>
381
+ ```
382
+
383
+ ### Settings Accordion
384
+
385
+ ```html
386
+ <style>
387
+ .setting-group {
388
+ display: flex;
389
+ flex-direction: column;
390
+ gap: 1rem;
391
+ padding: 1rem;
392
+ }
393
+
394
+ .setting-item {
395
+ display: flex;
396
+ justify-content: space-between;
397
+ align-items: center;
398
+ }
399
+ </style>
400
+
401
+ <snice-accordion>
402
+ <snice-accordion-item item-id="general-settings">
403
+ <span slot="header">⚙️ General Settings</span>
404
+ <div class="setting-group">
405
+ <div class="setting-item">
406
+ <label>Language</label>
407
+ <select>
408
+ <option>English</option>
409
+ <option>Spanish</option>
410
+ <option>French</option>
411
+ </select>
412
+ </div>
413
+ <div class="setting-item">
414
+ <label>Timezone</label>
415
+ <select>
416
+ <option>UTC</option>
417
+ <option>EST</option>
418
+ <option>PST</option>
419
+ </select>
420
+ </div>
421
+ </div>
422
+ </snice-accordion-item>
423
+
424
+ <snice-accordion-item item-id="notification-settings">
425
+ <span slot="header">🔔 Notifications</span>
426
+ <div class="setting-group">
427
+ <div class="setting-item">
428
+ <label>Email notifications</label>
429
+ <input type="checkbox" checked>
430
+ </div>
431
+ <div class="setting-item">
432
+ <label>Push notifications</label>
433
+ <input type="checkbox">
434
+ </div>
435
+ </div>
436
+ </snice-accordion-item>
437
+
438
+ <snice-accordion-item item-id="privacy-settings">
439
+ <span slot="header">🔒 Privacy</span>
440
+ <div class="setting-group">
441
+ <div class="setting-item">
442
+ <label>Profile visibility</label>
443
+ <select>
444
+ <option>Public</option>
445
+ <option>Friends</option>
446
+ <option>Private</option>
447
+ </select>
448
+ </div>
449
+ </div>
450
+ </snice-accordion-item>
451
+ </snice-accordion>
452
+ ```
453
+
454
+ ### Nested Content
455
+
456
+ ```html
457
+ <snice-accordion>
458
+ <snice-accordion-item item-id="products">
459
+ <span slot="header">Products</span>
460
+ <div style="padding: 1rem;">
461
+ <ul>
462
+ <li>Product A - $29.99</li>
463
+ <li>Product B - $39.99</li>
464
+ <li>Product C - $49.99</li>
465
+ </ul>
466
+ </div>
467
+ </snice-accordion-item>
468
+
469
+ <snice-accordion-item item-id="services">
470
+ <span slot="header">Services</span>
471
+ <div style="padding: 1rem;">
472
+ <table>
473
+ <thead>
474
+ <tr>
475
+ <th>Service</th>
476
+ <th>Price</th>
477
+ </tr>
478
+ </thead>
479
+ <tbody>
480
+ <tr>
481
+ <td>Consultation</td>
482
+ <td>$99/hr</td>
483
+ </tr>
484
+ <tr>
485
+ <td>Implementation</td>
486
+ <td>$149/hr</td>
487
+ </tr>
488
+ </tbody>
489
+ </table>
490
+ </div>
491
+ </snice-accordion-item>
492
+ </snice-accordion>
493
+ ```
494
+
495
+ ## Keyboard Navigation
496
+
497
+ The accordion supports comprehensive keyboard navigation:
498
+
499
+ - **Arrow Down**: Move focus to the next item
500
+ - **Arrow Up**: Move focus to the previous item
501
+ - **Home**: Move focus to the first item
502
+ - **End**: Move focus to the last item
503
+ - **Enter** or **Space**: Toggle the focused item
504
+
505
+ ## Accessibility
506
+
507
+ - **ARIA roles**: `button` role on headers, proper aria-expanded states
508
+ - **Keyboard support**: Full keyboard navigation
509
+ - **Screen reader friendly**: Announces state changes
510
+ - **Focus management**: Visible focus indicators
511
+ - **Semantic HTML**: Uses button elements for interactivity
512
+
513
+ ## Browser Support
514
+
515
+ - Modern browsers (Chrome, Firefox, Safari, Edge)
516
+ - Requires Custom Elements v1 and Shadow DOM support
517
+
518
+ ## Best Practices
519
+
520
+ 1. **Use descriptive headers**: Make it clear what each section contains
521
+ 2. **Keep content concise**: Accordion is best for moderate amounts of content
522
+ 3. **Set appropriate IDs**: Provide meaningful `item-id` values for tracking
523
+ 4. **Consider initial state**: Open important sections by default
524
+ 5. **Use multiple mode sparingly**: Single-open mode is often clearer
525
+ 6. **Avoid nesting accordions**: Can be confusing for users
526
+ 7. **Test keyboard navigation**: Ensure all interactions work without a mouse
527
+
528
+ ## Common Patterns
529
+
530
+ ### FAQ Pattern
531
+ ```html
532
+ <snice-accordion>
533
+ <snice-accordion-item item-id="q1">
534
+ <span slot="header">Question 1?</span>
535
+ <p>Answer to question 1.</p>
536
+ </snice-accordion-item>
537
+ </snice-accordion>
538
+ ```
539
+
540
+ ### Settings Pattern
541
+ ```html
542
+ <snice-accordion multiple>
543
+ <snice-accordion-item item-id="general">
544
+ <span slot="header">General</span>
545
+ <!-- Settings form -->
546
+ </snice-accordion-item>
547
+ </snice-accordion>
548
+ ```
549
+
550
+ ### Table of Contents Pattern
551
+ ```html
552
+ <snice-accordion>
553
+ <snice-accordion-item item-id="intro" open>
554
+ <span slot="header">Introduction</span>
555
+ <p>Content overview...</p>
556
+ </snice-accordion-item>
557
+ </snice-accordion>
558
+ ```
@@ -0,0 +1,106 @@
1
+ # Banner Component
2
+
3
+ The `<snice-banner>` component displays fixed-position notification banners at the top or bottom of the viewport.
4
+
5
+ ## Basic Usage
6
+
7
+ ```html
8
+ <snice-banner
9
+ variant="info"
10
+ message="This is an informational message"
11
+ open
12
+ ></snice-banner>
13
+ ```
14
+
15
+ ## Properties
16
+
17
+ | Property | Type | Default | Description |
18
+ |----------|------|---------|-------------|
19
+ | `variant` | `'info' \| 'success' \| 'warning' \| 'error'` | `'info'` | Visual variant |
20
+ | `position` | `'top' \| 'bottom'` | `'top'` | Position on screen |
21
+ | `message` | `string` | `''` | Banner message |
22
+ | `dismissible` | `boolean` | `true` | Show close button |
23
+ | `icon` | `string` | `''` | Custom icon (default icons per variant) |
24
+ | `actionText` | `string` | `''` | Action button text |
25
+ | `open` | `boolean` | `false` | Banner visibility |
26
+
27
+ ## Methods
28
+
29
+ ### `show(): void`
30
+ Show the banner.
31
+
32
+ ### `hide(): void`
33
+ Hide the banner.
34
+
35
+ ### `toggle(): void`
36
+ Toggle banner visibility.
37
+
38
+ ## Events
39
+
40
+ ### `@snice/banner-open`
41
+ Fired when banner opens.
42
+
43
+ ### `@snice/banner-close`
44
+ Fired when banner closes.
45
+
46
+ ### `@snice/banner-action`
47
+ Fired when action button is clicked.
48
+
49
+ ## Examples
50
+
51
+ ### Variants
52
+
53
+ ```html
54
+ <snice-banner variant="info" message="Info message" open></snice-banner>
55
+ <snice-banner variant="success" message="Success!" open></snice-banner>
56
+ <snice-banner variant="warning" message="Warning" open></snice-banner>
57
+ <snice-banner variant="error" message="Error occurred" open></snice-banner>
58
+ ```
59
+
60
+ ### With Action Button
61
+
62
+ ```html
63
+ <snice-banner
64
+ message="A new version is available"
65
+ action-text="Update Now"
66
+ open
67
+ ></snice-banner>
68
+
69
+ <script>
70
+ document.querySelector('snice-banner').addEventListener('@snice/banner-action', () => {
71
+ console.log('Update clicked');
72
+ });
73
+ </script>
74
+ ```
75
+
76
+ ### Bottom Position
77
+
78
+ ```html
79
+ <snice-banner
80
+ position="bottom"
81
+ message="Cookie notice"
82
+ action-text="Accept"
83
+ open
84
+ ></snice-banner>
85
+ ```
86
+
87
+ ### Not Dismissible
88
+
89
+ ```html
90
+ <snice-banner
91
+ message="Maintenance mode active"
92
+ dismissible="false"
93
+ variant="warning"
94
+ open
95
+ ></snice-banner>
96
+ ```
97
+
98
+ ### Programmatic Control
99
+
100
+ ```html
101
+ <snice-banner id="myBanner" message="Hello"></snice-banner>
102
+
103
+ <button onclick="myBanner.show()">Show</button>
104
+ <button onclick="myBanner.hide()">Hide</button>
105
+ <button onclick="myBanner.toggle()">Toggle</button>
106
+ ```