snice 3.1.0 → 3.3.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 (464) hide show
  1. package/README.md +90 -41
  2. package/dist/components/accordion/snice-accordion-item.d.ts +2 -2
  3. package/dist/components/accordion/snice-accordion-item.js +9 -9
  4. package/dist/components/accordion/snice-accordion-item.js.map +1 -1
  5. package/dist/components/accordion/snice-accordion.d.ts +2 -2
  6. package/dist/components/accordion/snice-accordion.js +9 -9
  7. package/dist/components/accordion/snice-accordion.js.map +1 -1
  8. package/dist/components/actions/snice-actions.d.ts +28 -0
  9. package/dist/components/actions/snice-actions.js +220 -0
  10. package/dist/components/actions/snice-actions.js.map +1 -0
  11. package/dist/components/actions/snice-actions.types.d.ts +27 -0
  12. package/dist/components/alert/snice-alert.d.ts +2 -2
  13. package/dist/components/alert/snice-alert.js +9 -9
  14. package/dist/components/alert/snice-alert.js.map +1 -1
  15. package/dist/components/audio-recorder/snice-audio-recorder.d.ts +58 -0
  16. package/dist/components/audio-recorder/snice-audio-recorder.js +413 -0
  17. package/dist/components/audio-recorder/snice-audio-recorder.js.map +1 -0
  18. package/dist/components/audio-recorder/snice-audio-recorder.types.d.ts +28 -0
  19. package/dist/components/avatar/snice-avatar.d.ts +2 -2
  20. package/dist/components/avatar/snice-avatar.js +9 -9
  21. package/dist/components/avatar/snice-avatar.js.map +1 -1
  22. package/dist/components/badge/snice-badge.d.ts +2 -2
  23. package/dist/components/badge/snice-badge.js +10 -10
  24. package/dist/components/badge/snice-badge.js.map +1 -1
  25. package/dist/components/banner/snice-banner.d.ts +22 -0
  26. package/dist/components/banner/snice-banner.js +180 -0
  27. package/dist/components/banner/snice-banner.js.map +1 -0
  28. package/dist/components/banner/snice-banner.types.d.ts +14 -0
  29. package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +2 -2
  30. package/dist/components/breadcrumbs/snice-breadcrumbs.js +9 -9
  31. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  32. package/dist/components/button/snice-button.d.ts +2 -2
  33. package/dist/components/button/snice-button.js +9 -9
  34. package/dist/components/button/snice-button.js.map +1 -1
  35. package/dist/components/calendar/snice-calendar.d.ts +46 -0
  36. package/dist/components/calendar/snice-calendar.js +294 -0
  37. package/dist/components/calendar/snice-calendar.js.map +1 -0
  38. package/dist/components/calendar/snice-calendar.types.d.ts +34 -0
  39. package/dist/components/camera/snice-camera.d.ts +39 -0
  40. package/dist/components/camera/snice-camera.js +286 -0
  41. package/dist/components/camera/snice-camera.js.map +1 -0
  42. package/dist/components/camera/snice-camera.types.d.ts +28 -0
  43. package/dist/components/card/snice-card.d.ts +2 -2
  44. package/dist/components/card/snice-card.js +9 -9
  45. package/dist/components/card/snice-card.js.map +1 -1
  46. package/dist/components/carousel/snice-carousel.d.ts +32 -0
  47. package/dist/components/carousel/snice-carousel.js +279 -0
  48. package/dist/components/carousel/snice-carousel.js.map +1 -0
  49. package/dist/components/carousel/snice-carousel.types.d.ts +22 -0
  50. package/dist/components/chart/snice-chart.d.ts +73 -0
  51. package/dist/components/chart/snice-chart.js +940 -0
  52. package/dist/components/chart/snice-chart.js.map +1 -0
  53. package/dist/components/chart/snice-chart.types.d.ts +71 -0
  54. package/dist/components/chat/snice-chat.d.ts +98 -0
  55. package/dist/components/chat/snice-chat.js +589 -0
  56. package/dist/components/chat/snice-chat.js.map +1 -0
  57. package/dist/components/chat/snice-chat.types.d.ts +141 -0
  58. package/dist/components/checkbox/snice-checkbox.d.ts +2 -2
  59. package/dist/components/checkbox/snice-checkbox.js +9 -9
  60. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  61. package/dist/components/chip/snice-chip.d.ts +2 -2
  62. package/dist/components/chip/snice-chip.js +9 -9
  63. package/dist/components/chip/snice-chip.js.map +1 -1
  64. package/dist/components/code-block/snice-code-block.d.ts +15 -0
  65. package/dist/components/code-block/snice-code-block.js +141 -0
  66. package/dist/components/code-block/snice-code-block.js.map +1 -0
  67. package/dist/components/code-block/snice-code-block.types.d.ts +15 -0
  68. package/dist/components/color-display/snice-color-display.d.ts +14 -0
  69. package/dist/components/color-display/snice-color-display.js +151 -0
  70. package/dist/components/color-display/snice-color-display.js.map +1 -0
  71. package/dist/components/color-display/snice-color-display.types.d.ts +10 -0
  72. package/dist/components/color-picker/snice-color-picker.d.ts +50 -0
  73. package/dist/components/color-picker/snice-color-picker.js +489 -0
  74. package/dist/components/color-picker/snice-color-picker.js.map +1 -0
  75. package/dist/components/color-picker/snice-color-picker.types.d.ts +19 -0
  76. package/dist/components/command-palette/snice-command-palette.d.ts +47 -0
  77. package/dist/components/command-palette/snice-command-palette.js +428 -0
  78. package/dist/components/command-palette/snice-command-palette.js.map +1 -0
  79. package/dist/components/command-palette/snice-command-palette.types.d.ts +49 -0
  80. package/dist/components/date-picker/snice-date-picker.d.ts +2 -2
  81. package/dist/components/date-picker/snice-date-picker.js +10 -10
  82. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  83. package/dist/components/divider/snice-divider.d.ts +2 -2
  84. package/dist/components/divider/snice-divider.js +9 -9
  85. package/dist/components/divider/snice-divider.js.map +1 -1
  86. package/dist/components/doc/snice-doc.d.ts +93 -0
  87. package/dist/components/doc/snice-doc.js +626 -0
  88. package/dist/components/doc/snice-doc.js.map +1 -0
  89. package/dist/components/doc/snice-doc.types.d.ts +118 -0
  90. package/dist/components/draw/snice-draw.d.ts +71 -0
  91. package/dist/components/draw/snice-draw.js +709 -0
  92. package/dist/components/draw/snice-draw.js.map +1 -0
  93. package/dist/components/draw/snice-draw.types.d.ts +41 -0
  94. package/dist/components/drawer/snice-drawer.d.ts +2 -2
  95. package/dist/components/drawer/snice-drawer.js +9 -9
  96. package/dist/components/drawer/snice-drawer.js.map +1 -1
  97. package/dist/components/empty-state/snice-empty-state.d.ts +13 -0
  98. package/dist/components/empty-state/snice-empty-state.js +121 -0
  99. package/dist/components/empty-state/snice-empty-state.js.map +1 -0
  100. package/dist/components/empty-state/snice-empty-state.types.d.ts +9 -0
  101. package/dist/components/file-upload/snice-file-upload.d.ts +44 -0
  102. package/dist/components/file-upload/snice-file-upload.js +387 -0
  103. package/dist/components/file-upload/snice-file-upload.js.map +1 -0
  104. package/dist/components/file-upload/snice-file-upload.types.d.ts +22 -0
  105. package/dist/components/gantt/snice-gantt.d.ts +29 -0
  106. package/dist/components/gantt/snice-gantt.js +268 -0
  107. package/dist/components/gantt/snice-gantt.js.map +1 -0
  108. package/dist/components/gantt/snice-gantt.types.d.ts +23 -0
  109. package/dist/components/image/snice-image.d.ts +22 -0
  110. package/dist/components/image/snice-image.js +201 -0
  111. package/dist/components/image/snice-image.js.map +1 -0
  112. package/dist/components/image/snice-image.types.d.ts +17 -0
  113. package/dist/components/input/snice-input.d.ts +2 -2
  114. package/dist/components/input/snice-input.js +9 -9
  115. package/dist/components/input/snice-input.js.map +1 -1
  116. package/dist/components/kanban/snice-kanban.d.ts +31 -0
  117. package/dist/components/kanban/snice-kanban.js +243 -0
  118. package/dist/components/kanban/snice-kanban.js.map +1 -0
  119. package/dist/components/kanban/snice-kanban.types.d.ts +29 -0
  120. package/dist/components/kpi/snice-kpi.d.ts +16 -0
  121. package/dist/components/kpi/snice-kpi.js +162 -0
  122. package/dist/components/kpi/snice-kpi.js.map +1 -0
  123. package/dist/components/kpi/snice-kpi.types.d.ts +12 -0
  124. package/dist/components/layout/snice-layout-blog.d.ts +2 -2
  125. package/dist/components/layout/snice-layout-blog.js +9 -9
  126. package/dist/components/layout/snice-layout-blog.js.map +1 -1
  127. package/dist/components/layout/snice-layout-card.d.ts +2 -2
  128. package/dist/components/layout/snice-layout-card.js +9 -9
  129. package/dist/components/layout/snice-layout-card.js.map +1 -1
  130. package/dist/components/layout/snice-layout-centered.d.ts +2 -2
  131. package/dist/components/layout/snice-layout-centered.js +9 -9
  132. package/dist/components/layout/snice-layout-centered.js.map +1 -1
  133. package/dist/components/layout/snice-layout-dashboard.d.ts +2 -2
  134. package/dist/components/layout/snice-layout-dashboard.js +9 -9
  135. package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
  136. package/dist/components/layout/snice-layout-fullscreen.d.ts +2 -2
  137. package/dist/components/layout/snice-layout-fullscreen.js +9 -9
  138. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
  139. package/dist/components/layout/snice-layout-landing.d.ts +2 -2
  140. package/dist/components/layout/snice-layout-landing.js +9 -9
  141. package/dist/components/layout/snice-layout-landing.js.map +1 -1
  142. package/dist/components/layout/snice-layout-minimal.d.ts +2 -2
  143. package/dist/components/layout/snice-layout-minimal.js +9 -9
  144. package/dist/components/layout/snice-layout-minimal.js.map +1 -1
  145. package/dist/components/layout/snice-layout-sidebar.d.ts +2 -2
  146. package/dist/components/layout/snice-layout-sidebar.js +9 -9
  147. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  148. package/dist/components/layout/snice-layout-split.d.ts +2 -2
  149. package/dist/components/layout/snice-layout-split.js +9 -9
  150. package/dist/components/layout/snice-layout-split.js.map +1 -1
  151. package/dist/components/layout/snice-layout.d.ts +2 -2
  152. package/dist/components/layout/snice-layout.js +9 -9
  153. package/dist/components/layout/snice-layout.js.map +1 -1
  154. package/dist/components/link/snice-link.d.ts +13 -0
  155. package/dist/components/link/snice-link.js +137 -0
  156. package/dist/components/link/snice-link.js.map +1 -0
  157. package/dist/components/link/snice-link.types.d.ts +11 -0
  158. package/dist/components/list/snice-list-item.d.ts +6 -0
  159. package/dist/components/list/snice-list-item.js +68 -0
  160. package/dist/components/list/snice-list-item.js.map +1 -0
  161. package/dist/components/list/snice-list.d.ts +23 -0
  162. package/dist/components/list/snice-list.js +270 -0
  163. package/dist/components/list/snice-list.js.map +1 -0
  164. package/dist/components/list/snice-list.types.d.ts +28 -0
  165. package/dist/components/location/snice-location.d.ts +35 -0
  166. package/dist/components/location/snice-location.js +238 -0
  167. package/dist/components/location/snice-location.js.map +1 -0
  168. package/dist/components/location/snice-location.types.d.ts +35 -0
  169. package/dist/components/login/snice-login.d.ts +2 -2
  170. package/dist/components/login/snice-login.js +9 -9
  171. package/dist/components/login/snice-login.js.map +1 -1
  172. package/dist/components/menu/snice-menu-divider.d.ts +4 -0
  173. package/dist/components/menu/snice-menu-divider.js +53 -0
  174. package/dist/components/menu/snice-menu-divider.js.map +1 -0
  175. package/dist/components/menu/snice-menu-item.d.ts +10 -0
  176. package/dist/components/menu/snice-menu-item.js +99 -0
  177. package/dist/components/menu/snice-menu-item.js.map +1 -0
  178. package/dist/components/menu/snice-menu-item.types.d.ts +9 -0
  179. package/dist/components/menu/snice-menu.d.ts +27 -0
  180. package/dist/components/menu/snice-menu.js +199 -0
  181. package/dist/components/menu/snice-menu.js.map +1 -0
  182. package/dist/components/menu/snice-menu.types.d.ts +18 -0
  183. package/dist/components/modal/snice-modal.d.ts +2 -2
  184. package/dist/components/modal/snice-modal.js +9 -9
  185. package/dist/components/modal/snice-modal.js.map +1 -1
  186. package/dist/components/nav/snice-nav.js +1 -1
  187. package/dist/components/nav/snice-nav.js.map +1 -1
  188. package/dist/components/pagination/snice-pagination.d.ts +2 -2
  189. package/dist/components/pagination/snice-pagination.js +8 -8
  190. package/dist/components/pagination/snice-pagination.js.map +1 -1
  191. package/dist/components/progress/snice-progress.d.ts +2 -2
  192. package/dist/components/progress/snice-progress.js +9 -9
  193. package/dist/components/progress/snice-progress.js.map +1 -1
  194. package/dist/components/qr-code/qrcode.d.ts +28 -0
  195. package/dist/components/qr-code/qrcode.js +906 -0
  196. package/dist/components/qr-code/qrcode.js.map +1 -0
  197. package/dist/components/qr-code/snice-qr-code.d.ts +35 -0
  198. package/dist/components/qr-code/snice-qr-code.js +256 -0
  199. package/dist/components/qr-code/snice-qr-code.js.map +1 -0
  200. package/dist/components/qr-code/snice-qr-code.types.d.ts +33 -0
  201. package/dist/components/radio/snice-radio.d.ts +2 -2
  202. package/dist/components/radio/snice-radio.js +9 -9
  203. package/dist/components/radio/snice-radio.js.map +1 -1
  204. package/dist/components/select/snice-option.d.ts +2 -2
  205. package/dist/components/select/snice-option.js +8 -8
  206. package/dist/components/select/snice-option.js.map +1 -1
  207. package/dist/components/select/snice-select.d.ts +2 -2
  208. package/dist/components/select/snice-select.js +9 -9
  209. package/dist/components/select/snice-select.js.map +1 -1
  210. package/dist/components/skeleton/snice-skeleton.d.ts +2 -2
  211. package/dist/components/skeleton/snice-skeleton.js +9 -9
  212. package/dist/components/skeleton/snice-skeleton.js.map +1 -1
  213. package/dist/components/slider/snice-slider.d.ts +53 -0
  214. package/dist/components/slider/snice-slider.js +479 -0
  215. package/dist/components/slider/snice-slider.js.map +1 -0
  216. package/dist/components/slider/snice-slider.types.d.ts +26 -0
  217. package/dist/components/snice-cell-C0slgOpe.js +4 -0
  218. package/dist/components/snice-cell-C0slgOpe.js.map +1 -0
  219. package/dist/components/sparkline/snice-sparkline.d.ts +21 -0
  220. package/dist/components/sparkline/snice-sparkline.js +228 -0
  221. package/dist/components/sparkline/snice-sparkline.js.map +1 -0
  222. package/dist/components/sparkline/snice-sparkline.types.d.ts +16 -0
  223. package/dist/components/spinner/snice-spinner.d.ts +10 -0
  224. package/dist/components/spinner/snice-spinner.js +109 -0
  225. package/dist/components/spinner/snice-spinner.js.map +1 -0
  226. package/dist/components/spinner/snice-spinner.types.d.ts +8 -0
  227. package/dist/components/split-pane/snice-split-pane.d.ts +32 -0
  228. package/dist/components/split-pane/snice-split-pane.js +191 -0
  229. package/dist/components/split-pane/snice-split-pane.js.map +1 -0
  230. package/dist/components/split-pane/snice-split-pane.types.d.ts +19 -0
  231. package/dist/components/stat/snice-stat.d.ts +14 -0
  232. package/dist/components/stat/snice-stat.js +140 -0
  233. package/dist/components/stat/snice-stat.js.map +1 -0
  234. package/dist/components/stat/snice-stat.types.d.ts +12 -0
  235. package/dist/components/stepper/snice-stepper-panel.d.ts +8 -0
  236. package/dist/components/stepper/snice-stepper-panel.js +70 -0
  237. package/dist/components/stepper/snice-stepper-panel.js.map +1 -0
  238. package/dist/components/stepper/snice-stepper-panel.types.d.ts +4 -0
  239. package/dist/components/stepper/snice-stepper.d.ts +15 -0
  240. package/dist/components/stepper/snice-stepper.js +163 -0
  241. package/dist/components/stepper/snice-stepper.js.map +1 -0
  242. package/dist/components/stepper/snice-stepper.types.d.ts +13 -0
  243. package/dist/components/switch/snice-switch.d.ts +2 -2
  244. package/dist/components/switch/snice-switch.js +9 -9
  245. package/dist/components/switch/snice-switch.js.map +1 -1
  246. package/dist/components/table/snice-cell-actions.d.ts +2 -2
  247. package/dist/components/table/snice-cell-actions.js +9 -9
  248. package/dist/components/table/snice-cell-actions.js.map +1 -1
  249. package/dist/components/table/snice-cell-boolean.d.ts +2 -2
  250. package/dist/components/table/snice-cell-boolean.js +9 -9
  251. package/dist/components/table/snice-cell-boolean.js.map +1 -1
  252. package/dist/components/table/snice-cell-color.d.ts +2 -2
  253. package/dist/components/table/snice-cell-color.js +9 -9
  254. package/dist/components/table/snice-cell-color.js.map +1 -1
  255. package/dist/components/table/snice-cell-currency.d.ts +2 -2
  256. package/dist/components/table/snice-cell-currency.js +9 -9
  257. package/dist/components/table/snice-cell-currency.js.map +1 -1
  258. package/dist/components/table/snice-cell-date.d.ts +2 -2
  259. package/dist/components/table/snice-cell-date.js +9 -9
  260. package/dist/components/table/snice-cell-date.js.map +1 -1
  261. package/dist/components/table/snice-cell-duration.d.ts +2 -2
  262. package/dist/components/table/snice-cell-duration.js +9 -9
  263. package/dist/components/table/snice-cell-duration.js.map +1 -1
  264. package/dist/components/table/snice-cell-email.d.ts +2 -2
  265. package/dist/components/table/snice-cell-email.js +9 -9
  266. package/dist/components/table/snice-cell-email.js.map +1 -1
  267. package/dist/components/table/snice-cell-filesize.d.ts +2 -2
  268. package/dist/components/table/snice-cell-filesize.js +9 -9
  269. package/dist/components/table/snice-cell-filesize.js.map +1 -1
  270. package/dist/components/table/snice-cell-image.d.ts +2 -2
  271. package/dist/components/table/snice-cell-image.js +9 -9
  272. package/dist/components/table/snice-cell-image.js.map +1 -1
  273. package/dist/components/table/snice-cell-json.d.ts +2 -2
  274. package/dist/components/table/snice-cell-json.js +9 -9
  275. package/dist/components/table/snice-cell-json.js.map +1 -1
  276. package/dist/components/table/snice-cell-link.d.ts +2 -2
  277. package/dist/components/table/snice-cell-link.js +9 -9
  278. package/dist/components/table/snice-cell-link.js.map +1 -1
  279. package/dist/components/table/snice-cell-location.d.ts +2 -2
  280. package/dist/components/table/snice-cell-location.js +9 -9
  281. package/dist/components/table/snice-cell-location.js.map +1 -1
  282. package/dist/components/table/snice-cell-number.d.ts +2 -2
  283. package/dist/components/table/snice-cell-number.js +9 -9
  284. package/dist/components/table/snice-cell-number.js.map +1 -1
  285. package/dist/components/table/snice-cell-percentage.d.ts +2 -2
  286. package/dist/components/table/snice-cell-percentage.js +9 -9
  287. package/dist/components/table/snice-cell-percentage.js.map +1 -1
  288. package/dist/components/table/snice-cell-phone.d.ts +2 -2
  289. package/dist/components/table/snice-cell-phone.js +9 -9
  290. package/dist/components/table/snice-cell-phone.js.map +1 -1
  291. package/dist/components/table/snice-cell-progress.d.ts +2 -2
  292. package/dist/components/table/snice-cell-progress.js +9 -9
  293. package/dist/components/table/snice-cell-progress.js.map +1 -1
  294. package/dist/components/table/snice-cell-rating.d.ts +2 -2
  295. package/dist/components/table/snice-cell-rating.js +9 -9
  296. package/dist/components/table/snice-cell-rating.js.map +1 -1
  297. package/dist/components/table/snice-cell-sparkline.d.ts +2 -2
  298. package/dist/components/table/snice-cell-sparkline.js +9 -9
  299. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  300. package/dist/components/table/snice-cell-status.d.ts +2 -2
  301. package/dist/components/table/snice-cell-status.js +9 -9
  302. package/dist/components/table/snice-cell-status.js.map +1 -1
  303. package/dist/components/table/snice-cell-tag.d.ts +2 -2
  304. package/dist/components/table/snice-cell-tag.js +9 -9
  305. package/dist/components/table/snice-cell-tag.js.map +1 -1
  306. package/dist/components/table/snice-cell-text.d.ts +2 -2
  307. package/dist/components/table/snice-cell-text.js +9 -9
  308. package/dist/components/table/snice-cell-text.js.map +1 -1
  309. package/dist/components/table/snice-cell.d.ts +2 -2
  310. package/dist/components/table/snice-cell.js +9 -9
  311. package/dist/components/table/snice-cell.js.map +1 -1
  312. package/dist/components/table/snice-column.d.ts +1 -1
  313. package/dist/components/table/snice-column.js +4 -4
  314. package/dist/components/table/snice-column.js.map +1 -1
  315. package/dist/components/table/snice-header.d.ts +2 -2
  316. package/dist/components/table/snice-header.js +9 -9
  317. package/dist/components/table/snice-header.js.map +1 -1
  318. package/dist/components/table/snice-progress.d.ts +2 -2
  319. package/dist/components/table/snice-progress.js +8 -8
  320. package/dist/components/table/snice-progress.js.map +1 -1
  321. package/dist/components/table/snice-rating.d.ts +2 -2
  322. package/dist/components/table/snice-rating.js +8 -8
  323. package/dist/components/table/snice-rating.js.map +1 -1
  324. package/dist/components/table/snice-row.d.ts +2 -2
  325. package/dist/components/table/snice-row.js +10 -10
  326. package/dist/components/table/snice-row.js.map +1 -1
  327. package/dist/components/table/snice-table.d.ts +2 -3
  328. package/dist/components/table/snice-table.js +9 -14
  329. package/dist/components/table/snice-table.js.map +1 -1
  330. package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
  331. package/dist/components/tabs/snice-tab-panel.js +9 -9
  332. package/dist/components/tabs/snice-tab-panel.js.map +1 -1
  333. package/dist/components/tabs/snice-tab.d.ts +2 -2
  334. package/dist/components/tabs/snice-tab.js +9 -9
  335. package/dist/components/tabs/snice-tab.js.map +1 -1
  336. package/dist/components/tabs/snice-tabs.d.ts +2 -2
  337. package/dist/components/tabs/snice-tabs.js +9 -9
  338. package/dist/components/tabs/snice-tabs.js.map +1 -1
  339. package/dist/components/terminal/snice-terminal.types.d.ts +133 -0
  340. package/dist/components/textarea/snice-textarea.d.ts +52 -0
  341. package/dist/components/textarea/snice-textarea.js +407 -0
  342. package/dist/components/textarea/snice-textarea.js.map +1 -0
  343. package/dist/components/textarea/snice-textarea.types.d.ts +30 -0
  344. package/dist/components/timeline/snice-timeline.d.ts +11 -0
  345. package/dist/components/timeline/snice-timeline.js +112 -0
  346. package/dist/components/timeline/snice-timeline.js.map +1 -0
  347. package/dist/components/timeline/snice-timeline.types.d.ts +16 -0
  348. package/dist/components/toast/snice-toast-container.d.ts +2 -2
  349. package/dist/components/toast/snice-toast-container.js +8 -8
  350. package/dist/components/toast/snice-toast-container.js.map +1 -1
  351. package/dist/components/toast/snice-toast.d.ts +2 -2
  352. package/dist/components/toast/snice-toast.js +8 -8
  353. package/dist/components/toast/snice-toast.js.map +1 -1
  354. package/dist/components/tooltip/snice-tooltip.d.ts +2 -2
  355. package/dist/components/tooltip/snice-tooltip.js +10 -10
  356. package/dist/components/tooltip/snice-tooltip.js.map +1 -1
  357. package/dist/components/tree/snice-tree-item.d.ts +35 -0
  358. package/dist/components/tree/snice-tree-item.js +301 -0
  359. package/dist/components/tree/snice-tree-item.js.map +1 -0
  360. package/dist/components/tree/snice-tree-item.types.d.ts +30 -0
  361. package/dist/components/tree/snice-tree.d.ts +45 -0
  362. package/dist/components/tree/snice-tree.js +390 -0
  363. package/dist/components/tree/snice-tree.js.map +1 -0
  364. package/dist/components/tree/snice-tree.types.d.ts +65 -0
  365. package/dist/components/virtual-scroller/snice-virtual-scroller.d.ts +31 -0
  366. package/dist/components/virtual-scroller/snice-virtual-scroller.js +160 -0
  367. package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -0
  368. package/dist/components/virtual-scroller/snice-virtual-scroller.types.d.ts +19 -0
  369. package/dist/index.cjs +125 -158
  370. package/dist/index.cjs.map +1 -1
  371. package/dist/index.esm.js +125 -158
  372. package/dist/index.esm.js.map +1 -1
  373. package/dist/index.iife.js +125 -158
  374. package/dist/index.iife.js.map +1 -1
  375. package/dist/parts.d.ts +13 -16
  376. package/dist/symbols.cjs +1 -1
  377. package/dist/symbols.esm.js +1 -1
  378. package/dist/template.d.ts +0 -1
  379. package/dist/transitions.cjs +1 -1
  380. package/dist/transitions.esm.js +1 -1
  381. package/docs/ai/README.md +10 -1
  382. package/docs/ai/components/actions.md +81 -0
  383. package/docs/ai/components/audio-recorder.md +97 -0
  384. package/docs/ai/components/banner.md +84 -0
  385. package/docs/ai/components/calendar.md +95 -0
  386. package/docs/ai/components/camera.md +130 -0
  387. package/docs/ai/components/carousel.md +49 -0
  388. package/docs/ai/components/chart.md +160 -0
  389. package/docs/ai/components/chat.md +189 -0
  390. package/docs/ai/components/code-block.md +32 -0
  391. package/docs/ai/components/color-display.md +48 -0
  392. package/docs/ai/components/color-picker.md +75 -0
  393. package/docs/ai/components/command-palette.md +117 -0
  394. package/docs/ai/components/doc.md +154 -0
  395. package/docs/ai/components/draw.md +140 -0
  396. package/docs/ai/components/empty-state.md +72 -0
  397. package/docs/ai/components/file-upload.md +93 -0
  398. package/docs/ai/components/gantt.md +95 -0
  399. package/docs/ai/components/image.md +60 -0
  400. package/docs/ai/components/kanban.md +102 -0
  401. package/docs/ai/components/kpi.md +158 -0
  402. package/docs/ai/components/layout.md +261 -0
  403. package/docs/ai/components/link.md +77 -0
  404. package/docs/ai/components/list.md +50 -0
  405. package/docs/ai/components/location.md +75 -0
  406. package/docs/ai/components/menu.md +114 -0
  407. package/docs/ai/components/popover.md +70 -0
  408. package/docs/ai/components/qr-code.md +106 -0
  409. package/docs/ai/components/slider.md +87 -0
  410. package/docs/ai/components/sparkline.md +168 -0
  411. package/docs/ai/components/spinner.md +47 -0
  412. package/docs/ai/components/split-pane.md +71 -0
  413. package/docs/ai/components/stat.md +29 -0
  414. package/docs/ai/components/stepper.md +216 -0
  415. package/docs/ai/components/textarea.md +87 -0
  416. package/docs/ai/components/timeline.md +77 -0
  417. package/docs/ai/components/tree.md +191 -0
  418. package/docs/ai/components/virtual-scroller.md +71 -0
  419. package/docs/components/actions.md +317 -0
  420. package/docs/components/alert.md +540 -0
  421. package/docs/components/audio-recorder.md +152 -0
  422. package/docs/components/badge.md +593 -0
  423. package/docs/components/banner.md +106 -0
  424. package/docs/components/breadcrumbs.md +568 -0
  425. package/docs/components/button.md +648 -0
  426. package/docs/components/calendar.md +397 -0
  427. package/docs/components/camera.md +383 -0
  428. package/docs/components/card.md +778 -0
  429. package/docs/components/carousel.md +63 -0
  430. package/docs/components/chart.md +526 -0
  431. package/docs/components/chat.md +482 -0
  432. package/docs/components/checkbox.md +714 -0
  433. package/docs/components/chip.md +670 -0
  434. package/docs/components/code-block.md +49 -0
  435. package/docs/components/color-display.md +96 -0
  436. package/docs/components/color-picker.md +81 -0
  437. package/docs/components/command-palette.md +159 -0
  438. package/docs/components/doc.md +357 -0
  439. package/docs/components/draw.md +307 -0
  440. package/docs/components/empty-state.md +79 -0
  441. package/docs/components/file-upload.md +263 -0
  442. package/docs/components/gantt.md +347 -0
  443. package/docs/components/image.md +110 -0
  444. package/docs/components/kanban.md +410 -0
  445. package/docs/components/kpi.md +251 -0
  446. package/docs/components/link.md +229 -0
  447. package/docs/components/list.md +65 -0
  448. package/docs/components/location.md +369 -0
  449. package/docs/components/menu.md +633 -0
  450. package/docs/components/popover.md +333 -0
  451. package/docs/components/qr-code.md +464 -0
  452. package/docs/components/slider.md +297 -0
  453. package/docs/components/sparkline.md +293 -0
  454. package/docs/components/spinner.md +63 -0
  455. package/docs/components/split-pane.md +315 -0
  456. package/docs/components/stat.md +45 -0
  457. package/docs/components/stepper.md +410 -0
  458. package/docs/components/textarea.md +235 -0
  459. package/docs/components/timeline.md +192 -0
  460. package/docs/components/tree.md +536 -0
  461. package/docs/components/virtual-scroller.md +298 -0
  462. package/package.json +2 -1
  463. package/dist/components/snice-cell-BLFVdxPp.js +0 -4
  464. package/dist/components/snice-cell-BLFVdxPp.js.map +0 -1
@@ -0,0 +1,568 @@
1
+ # Breadcrumbs Components
2
+
3
+ The breadcrumbs components provide navigation trail indicators showing the user's current location within a hierarchy. Supports icons, custom separators, collapsing for long trails, and multiple sizes.
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
+ <!-- Using items array -->
17
+ <snice-breadcrumbs id="breadcrumbs"></snice-breadcrumbs>
18
+
19
+ <script type="module">
20
+ const breadcrumbs = document.getElementById('breadcrumbs');
21
+ breadcrumbs.items = [
22
+ { label: 'Home', href: '/' },
23
+ { label: 'Products', href: '/products' },
24
+ { label: 'Laptops', active: true }
25
+ ];
26
+ </script>
27
+
28
+ <!-- Or using crumb elements -->
29
+ <snice-breadcrumbs>
30
+ <snice-crumb href="/" label="Home"></snice-crumb>
31
+ <snice-crumb href="/products" label="Products"></snice-crumb>
32
+ <snice-crumb label="Laptops" active></snice-crumb>
33
+ </snice-breadcrumbs>
34
+ ```
35
+
36
+ ```typescript
37
+ import 'snice/components/breadcrumbs/snice-breadcrumbs';
38
+ import 'snice/components/breadcrumbs/snice-crumb';
39
+ ```
40
+
41
+ ## Components
42
+
43
+ ### `<snice-breadcrumbs>`
44
+ Container for breadcrumb navigation trail.
45
+
46
+ ### `<snice-crumb>`
47
+ Individual breadcrumb item.
48
+
49
+ ## Properties
50
+
51
+ ### Breadcrumbs Container
52
+
53
+ | Property | Type | Default | Description |
54
+ |----------|------|---------|-------------|
55
+ | `items` | `BreadcrumbItem[]` | `[]` | Array of breadcrumb items |
56
+ | `separator` | `'/' \| '>' \| '»' \| '•' \| '\|'` | `'/'` | Separator between items |
57
+ | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Breadcrumb size |
58
+ | `maxItems` | `number` | `0` | Max items to show (0 = show all) |
59
+
60
+ ### BreadcrumbItem Interface
61
+
62
+ ```typescript
63
+ interface BreadcrumbItem {
64
+ label: string; // Display text
65
+ href?: string; // Link URL (optional)
66
+ icon?: string; // Icon text/emoji
67
+ iconImage?: string; // Icon image URL
68
+ active?: boolean; // Current/active state
69
+ }
70
+ ```
71
+
72
+ ### Crumb Element
73
+
74
+ | Property | Type | Default | Description |
75
+ |----------|------|---------|-------------|
76
+ | `label` | `string` | `''` | Display text |
77
+ | `href` | `string` | `''` | Link URL |
78
+ | `icon` | `string` | `''` | Icon text/emoji |
79
+ | `iconImage` | `string` | `''` | Icon image URL |
80
+ | `active` | `boolean` | `false` | Current/active state |
81
+
82
+ ## Methods
83
+
84
+ #### `setItems(items: BreadcrumbItem[]): void`
85
+ Programmatically set breadcrumb items.
86
+
87
+ ```typescript
88
+ breadcrumbs.setItems([
89
+ { label: 'Home', href: '/' },
90
+ { label: 'Docs', href: '/docs' },
91
+ { label: 'Components', active: true }
92
+ ]);
93
+ ```
94
+
95
+ ## Events
96
+
97
+ #### `breadcrumb-click`
98
+ Fired when a breadcrumb link is clicked.
99
+
100
+ **Event Detail:**
101
+ ```typescript
102
+ {
103
+ item: BreadcrumbItem;
104
+ index: number;
105
+ href: string;
106
+ label: string;
107
+ }
108
+ ```
109
+
110
+ **Usage:**
111
+ ```typescript
112
+ breadcrumbs.addEventListener('breadcrumb-click', (e) => {
113
+ console.log('Clicked:', e.detail.label);
114
+ console.log('Index:', e.detail.index);
115
+ });
116
+ ```
117
+
118
+ ## Examples
119
+
120
+ ### Basic Breadcrumbs
121
+
122
+ ```html
123
+ <snice-breadcrumbs id="basic"></snice-breadcrumbs>
124
+
125
+ <script type="module">
126
+ const breadcrumbs = document.getElementById('basic');
127
+ breadcrumbs.items = [
128
+ { label: 'Home', href: '/' },
129
+ { label: 'Products', href: '/products' },
130
+ { label: 'Electronics', href: '/products/electronics' },
131
+ { label: 'Laptops', active: true }
132
+ ];
133
+ </script>
134
+ ```
135
+
136
+ ### Using Crumb Elements
137
+
138
+ ```html
139
+ <snice-breadcrumbs>
140
+ <snice-crumb href="/" label="Home"></snice-crumb>
141
+ <snice-crumb href="/docs" label="Documentation"></snice-crumb>
142
+ <snice-crumb href="/docs/components" label="Components"></snice-crumb>
143
+ <snice-crumb label="Breadcrumbs" active></snice-crumb>
144
+ </snice-breadcrumbs>
145
+ ```
146
+
147
+ ### Custom Separators
148
+
149
+ ```html
150
+ <!-- Slash separator (default) -->
151
+ <snice-breadcrumbs separator="/"></snice-breadcrumbs>
152
+
153
+ <!-- Greater than -->
154
+ <snice-breadcrumbs separator=">"></snice-breadcrumbs>
155
+
156
+ <!-- Double angle -->
157
+ <snice-breadcrumbs separator="»"></snice-breadcrumbs>
158
+
159
+ <!-- Bullet -->
160
+ <snice-breadcrumbs separator="•"></snice-breadcrumbs>
161
+
162
+ <!-- Pipe -->
163
+ <snice-breadcrumbs separator="|"></snice-breadcrumbs>
164
+
165
+ <script type="module">
166
+ const items = [
167
+ { label: 'Home', href: '/' },
168
+ { label: 'Settings', href: '/settings' },
169
+ { label: 'Profile', active: true }
170
+ ];
171
+
172
+ document.querySelectorAll('snice-breadcrumbs').forEach(bc => {
173
+ bc.items = items;
174
+ });
175
+ </script>
176
+ ```
177
+
178
+ ### Different Sizes
179
+
180
+ ```html
181
+ <snice-breadcrumbs size="small" id="small-bc"></snice-breadcrumbs>
182
+ <snice-breadcrumbs size="medium" id="medium-bc"></snice-breadcrumbs>
183
+ <snice-breadcrumbs size="large" id="large-bc"></snice-breadcrumbs>
184
+
185
+ <script type="module">
186
+ const items = [
187
+ { label: 'Home', href: '/' },
188
+ { label: 'Catalog', href: '/catalog' },
189
+ { label: 'Products', active: true }
190
+ ];
191
+
192
+ document.querySelectorAll('[id$="-bc"]').forEach(bc => {
193
+ bc.items = items;
194
+ });
195
+ </script>
196
+ ```
197
+
198
+ ### With Icons
199
+
200
+ ```html
201
+ <snice-breadcrumbs id="icon-breadcrumbs"></snice-breadcrumbs>
202
+
203
+ <script type="module">
204
+ const breadcrumbs = document.getElementById('icon-breadcrumbs');
205
+ breadcrumbs.items = [
206
+ { label: 'Home', href: '/', icon: '🏠' },
207
+ { label: 'Settings', href: '/settings', icon: '⚙️' },
208
+ { label: 'Profile', icon: '👤', active: true }
209
+ ];
210
+ </script>
211
+ ```
212
+
213
+ ### With Icon Images
214
+
215
+ ```html
216
+ <snice-breadcrumbs id="image-breadcrumbs"></snice-breadcrumbs>
217
+
218
+ <script type="module">
219
+ const breadcrumbs = document.getElementById('image-breadcrumbs');
220
+ breadcrumbs.items = [
221
+ { label: 'Home', href: '/', iconImage: '/icons/home.svg' },
222
+ { label: 'Dashboard', href: '/dashboard', iconImage: '/icons/dashboard.svg' },
223
+ { label: 'Analytics', iconImage: '/icons/analytics.svg', active: true }
224
+ ];
225
+ </script>
226
+ ```
227
+
228
+ ### Collapsed Breadcrumbs
229
+
230
+ ```html
231
+ <!-- Show first and last 2 items, collapse middle -->
232
+ <snice-breadcrumbs max-items="3" id="collapsed"></snice-breadcrumbs>
233
+
234
+ <script type="module">
235
+ const breadcrumbs = document.getElementById('collapsed');
236
+ breadcrumbs.items = [
237
+ { label: 'Home', href: '/' },
238
+ { label: 'Level 1', href: '/level1' },
239
+ { label: 'Level 2', href: '/level2' },
240
+ { label: 'Level 3', href: '/level3' },
241
+ { label: 'Level 4', href: '/level4' },
242
+ { label: 'Current Page', active: true }
243
+ ];
244
+ </script>
245
+ ```
246
+
247
+ ### Dynamic Breadcrumbs
248
+
249
+ ```html
250
+ <snice-breadcrumbs id="dynamic"></snice-breadcrumbs>
251
+
252
+ <script type="module">
253
+ import type { SniceBreadcrumbsElement } from 'snice/components/breadcrumbs/snice-breadcrumbs.types';
254
+
255
+ const breadcrumbs = document.getElementById('dynamic') as SniceBreadcrumbsElement;
256
+
257
+ // Simulate navigation
258
+ function updateBreadcrumbs(path) {
259
+ const segments = path.split('/').filter(Boolean);
260
+ const items = [{ label: 'Home', href: '/' }];
261
+
262
+ let currentPath = '';
263
+ segments.forEach((segment, index) => {
264
+ currentPath += '/' + segment;
265
+ items.push({
266
+ label: segment.charAt(0).toUpperCase() + segment.slice(1),
267
+ href: index < segments.length - 1 ? currentPath : undefined,
268
+ active: index === segments.length - 1
269
+ });
270
+ });
271
+
272
+ breadcrumbs.setItems(items);
273
+ }
274
+
275
+ // Update based on current path
276
+ updateBreadcrumbs(window.location.pathname);
277
+
278
+ // Listen for navigation
279
+ breadcrumbs.addEventListener('breadcrumb-click', (e) => {
280
+ if (e.detail.href) {
281
+ console.log('Navigate to:', e.detail.href);
282
+ // Update breadcrumbs based on new location
283
+ updateBreadcrumbs(e.detail.href);
284
+ }
285
+ });
286
+ </script>
287
+ ```
288
+
289
+ ### E-commerce Breadcrumbs
290
+
291
+ ```html
292
+ <snice-breadcrumbs id="ecommerce" separator=">"></snice-breadcrumbs>
293
+
294
+ <script type="module">
295
+ const breadcrumbs = document.getElementById('ecommerce');
296
+ breadcrumbs.items = [
297
+ { label: 'Home', href: '/', icon: '🏠' },
298
+ { label: 'Electronics', href: '/category/electronics', icon: '⚡' },
299
+ { label: 'Computers', href: '/category/electronics/computers', icon: '💻' },
300
+ { label: 'Laptops', href: '/category/electronics/computers/laptops', icon: '📱' },
301
+ { label: 'MacBook Pro 16"', active: true }
302
+ ];
303
+ </script>
304
+ ```
305
+
306
+ ### Documentation Breadcrumbs
307
+
308
+ ```html
309
+ <snice-breadcrumbs id="docs" separator="•"></snice-breadcrumbs>
310
+
311
+ <script type="module">
312
+ const breadcrumbs = document.getElementById('docs');
313
+ breadcrumbs.items = [
314
+ { label: 'Docs', href: '/docs' },
315
+ { label: 'API Reference', href: '/docs/api' },
316
+ { label: 'Components', href: '/docs/api/components' },
317
+ { label: 'Breadcrumbs', active: true }
318
+ ];
319
+ </script>
320
+ ```
321
+
322
+ ### File System Navigation
323
+
324
+ ```html
325
+ <snice-breadcrumbs id="filesystem" separator="/"></snice-breadcrumbs>
326
+
327
+ <script type="module">
328
+ const breadcrumbs = document.getElementById('filesystem');
329
+
330
+ function navigateToFolder(path) {
331
+ const folders = path.split('/').filter(Boolean);
332
+ const items = [{ label: 'Root', href: '/' }];
333
+
334
+ let currentPath = '';
335
+ folders.forEach((folder, index) => {
336
+ currentPath += '/' + folder;
337
+ items.push({
338
+ label: folder,
339
+ href: index < folders.length - 1 ? currentPath : undefined,
340
+ active: index === folders.length - 1
341
+ });
342
+ });
343
+
344
+ breadcrumbs.setItems(items);
345
+ }
346
+
347
+ // Show current folder structure
348
+ navigateToFolder('/Users/John/Documents/Projects/MyApp');
349
+
350
+ breadcrumbs.addEventListener('breadcrumb-click', (e) => {
351
+ if (e.detail.href) {
352
+ navigateToFolder(e.detail.href);
353
+ }
354
+ });
355
+ </script>
356
+ ```
357
+
358
+ ### Multi-level Navigation
359
+
360
+ ```html
361
+ <snice-breadcrumbs id="multilevel" max-items="4"></snice-breadcrumbs>
362
+
363
+ <script type="module">
364
+ const breadcrumbs = document.getElementById('multilevel');
365
+
366
+ const navigation = {
367
+ '/': { label: 'Home' },
368
+ '/products': { label: 'Products' },
369
+ '/products/electronics': { label: 'Electronics' },
370
+ '/products/electronics/computers': { label: 'Computers' },
371
+ '/products/electronics/computers/laptops': { label: 'Laptops' },
372
+ '/products/electronics/computers/laptops/gaming': { label: 'Gaming Laptops' }
373
+ };
374
+
375
+ function buildBreadcrumbs(currentPath) {
376
+ const pathSegments = currentPath.split('/').filter(Boolean);
377
+ const items = [{ label: 'Home', href: '/' }];
378
+
379
+ let path = '';
380
+ pathSegments.forEach((segment, index) => {
381
+ path += '/' + segment;
382
+ const navItem = navigation[path];
383
+
384
+ if (navItem) {
385
+ items.push({
386
+ label: navItem.label,
387
+ href: index < pathSegments.length - 1 ? path : undefined,
388
+ active: index === pathSegments.length - 1
389
+ });
390
+ }
391
+ });
392
+
393
+ breadcrumbs.setItems(items);
394
+ }
395
+
396
+ buildBreadcrumbs('/products/electronics/computers/laptops/gaming');
397
+ </script>
398
+ ```
399
+
400
+ ### Breadcrumbs with Event Handling
401
+
402
+ ```html
403
+ <snice-breadcrumbs id="event-breadcrumbs"></snice-breadcrumbs>
404
+
405
+ <div id="event-log" style="margin-top: 1rem; padding: 1rem; background: #f3f4f6; border-radius: 0.375rem;">
406
+ <strong>Events:</strong>
407
+ <div id="events"></div>
408
+ </div>
409
+
410
+ <script type="module">
411
+ const breadcrumbs = document.getElementById('event-breadcrumbs');
412
+ const eventsContainer = document.getElementById('events');
413
+
414
+ breadcrumbs.items = [
415
+ { label: 'Home', href: '/' },
416
+ { label: 'Level 1', href: '/level1' },
417
+ { label: 'Level 2', href: '/level2' },
418
+ { label: 'Current', active: true }
419
+ ];
420
+
421
+ breadcrumbs.addEventListener('breadcrumb-click', (e) => {
422
+ const event = document.createElement('div');
423
+ event.style.padding = '0.5rem 0';
424
+ event.textContent = `Clicked: ${e.detail.label} (index: ${e.detail.index})`;
425
+ eventsContainer.prepend(event);
426
+
427
+ // Prevent default navigation if needed
428
+ // e.preventDefault();
429
+ });
430
+ </script>
431
+ ```
432
+
433
+ ### Responsive Breadcrumbs
434
+
435
+ ```html
436
+ <style>
437
+ @media (max-width: 640px) {
438
+ snice-breadcrumbs {
439
+ font-size: 0.875rem;
440
+ }
441
+ }
442
+ </style>
443
+
444
+ <snice-breadcrumbs id="responsive" max-items="3"></snice-breadcrumbs>
445
+
446
+ <script type="module">
447
+ const breadcrumbs = document.getElementById('responsive');
448
+
449
+ // Adjust max items based on screen size
450
+ function updateMaxItems() {
451
+ if (window.innerWidth < 640) {
452
+ breadcrumbs.maxItems = 2;
453
+ } else if (window.innerWidth < 1024) {
454
+ breadcrumbs.maxItems = 3;
455
+ } else {
456
+ breadcrumbs.maxItems = 0; // Show all
457
+ }
458
+ }
459
+
460
+ breadcrumbs.items = [
461
+ { label: 'Home', href: '/' },
462
+ { label: 'Category', href: '/category' },
463
+ { label: 'Subcategory', href: '/category/sub' },
464
+ { label: 'Product Type', href: '/category/sub/type' },
465
+ { label: 'Product', active: true }
466
+ ];
467
+
468
+ updateMaxItems();
469
+ window.addEventListener('resize', updateMaxItems);
470
+ </script>
471
+ ```
472
+
473
+ ### Breadcrumbs with Custom Styling
474
+
475
+ ```html
476
+ <style>
477
+ #styled-breadcrumbs::part(breadcrumb-link) {
478
+ color: #3b82f6;
479
+ font-weight: 500;
480
+ }
481
+
482
+ #styled-breadcrumbs::part(breadcrumb-link):hover {
483
+ color: #2563eb;
484
+ text-decoration: underline;
485
+ }
486
+
487
+ #styled-breadcrumbs::part(breadcrumb-separator) {
488
+ color: #9ca3af;
489
+ margin: 0 0.75rem;
490
+ }
491
+ </style>
492
+
493
+ <snice-breadcrumbs id="styled-breadcrumbs"></snice-breadcrumbs>
494
+
495
+ <script type="module">
496
+ const breadcrumbs = document.getElementById('styled-breadcrumbs');
497
+ breadcrumbs.items = [
498
+ { label: 'Home', href: '/' },
499
+ { label: 'Styled', href: '/styled' },
500
+ { label: 'Breadcrumbs', active: true }
501
+ ];
502
+ </script>
503
+ ```
504
+
505
+ ## Accessibility
506
+
507
+ - **Semantic HTML**: Uses `<nav>` with `aria-label="Breadcrumb"`
508
+ - **Current page**: Last item has `aria-current="page"`
509
+ - **Keyboard support**: All links are keyboard accessible
510
+ - **Screen reader friendly**: Proper navigation landmark and structure
511
+
512
+ ## Browser Support
513
+
514
+ - Modern browsers (Chrome, Firefox, Safari, Edge)
515
+ - Requires Custom Elements v1 and Shadow DOM support
516
+
517
+ ## Best Practices
518
+
519
+ 1. **Show hierarchy**: Use breadcrumbs for multi-level navigation
520
+ 2. **Keep labels concise**: Short, clear segment names work best
521
+ 3. **Use appropriate separators**: Choose separators that match your design
522
+ 4. **Collapse long trails**: Use `maxItems` for deep hierarchies
523
+ 5. **Make links clickable**: All non-active items should be navigable
524
+ 6. **Place consistently**: Usually at the top of the page content
525
+ 7. **Don't duplicate navigation**: Breadcrumbs complement, not replace, main nav
526
+ 8. **Test on mobile**: Consider responsive behavior for small screens
527
+ 9. **Handle dynamic updates**: Update breadcrumbs when navigation changes
528
+ 10. **Provide context**: Breadcrumbs should reflect actual page hierarchy
529
+
530
+ ## Common Patterns
531
+
532
+ ### Basic Navigation
533
+ ```html
534
+ <snice-breadcrumbs items='[
535
+ {"label": "Home", "href": "/"},
536
+ {"label": "Products", "href": "/products"},
537
+ {"label": "Item", "active": true}
538
+ ]'></snice-breadcrumbs>
539
+ ```
540
+
541
+ ### E-commerce Category
542
+ ```html
543
+ <snice-breadcrumbs separator=">"></snice-breadcrumbs>
544
+ ```
545
+
546
+ ### Documentation
547
+ ```html
548
+ <snice-breadcrumbs separator="•"></snice-breadcrumbs>
549
+ ```
550
+
551
+ ### File System
552
+ ```html
553
+ <snice-breadcrumbs separator="/"></snice-breadcrumbs>
554
+ ```
555
+
556
+ ## When to Use
557
+
558
+ ✅ **Use breadcrumbs when:**
559
+ - Pages are organized in a clear hierarchy (2+ levels deep)
560
+ - Users might need to navigate back up the hierarchy
561
+ - The site has many categories or sections
562
+ - Users arrive from search and need context
563
+
564
+ ❌ **Avoid breadcrumbs when:**
565
+ - Site has a flat structure (1-2 levels)
566
+ - Navigation is linear (wizards, onboarding)
567
+ - The hierarchy isn't clear or consistent
568
+ - Mobile-only experience with limited space