snice 4.27.0 → 4.29.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 (624) hide show
  1. package/adapters/react/action-bar.d.ts +30 -0
  2. package/adapters/react/action-bar.d.ts.map +1 -0
  3. package/adapters/react/action-bar.js +24 -0
  4. package/adapters/react/action-bar.js.map +1 -0
  5. package/adapters/react/action-bar.tsx +38 -0
  6. package/adapters/react/binpack.d.ts +35 -0
  7. package/adapters/react/binpack.d.ts.map +1 -0
  8. package/adapters/react/binpack.js +24 -0
  9. package/adapters/react/binpack.js.map +1 -0
  10. package/adapters/react/binpack.tsx +43 -0
  11. package/adapters/react/components.d.ts +4 -0
  12. package/adapters/react/components.d.ts.map +1 -1
  13. package/adapters/react/components.js +2 -0
  14. package/adapters/react/components.js.map +1 -1
  15. package/adapters/react/components.ts +4 -0
  16. package/adapters/react/useRequestHandler.d.ts +56 -0
  17. package/adapters/react/useRequestHandler.js +103 -0
  18. package/adapters/react/useRequestHandler.js.map +1 -0
  19. package/dist/cdn/accordion/snice-accordion.js +1 -1
  20. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  21. package/dist/cdn/action-bar/README.md +27 -0
  22. package/dist/cdn/action-bar/snice-action-bar.js +249 -0
  23. package/dist/cdn/action-bar/snice-action-bar.js.map +1 -0
  24. package/dist/cdn/action-bar/snice-action-bar.min.js +12 -0
  25. package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -0
  26. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  27. package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
  28. package/dist/cdn/alert/snice-alert.js +1 -1
  29. package/dist/cdn/alert/snice-alert.min.js +1 -1
  30. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  31. package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
  32. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  33. package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
  34. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  35. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  36. package/dist/cdn/availability/snice-availability.js +1 -1
  37. package/dist/cdn/availability/snice-availability.min.js +1 -1
  38. package/dist/cdn/avatar/snice-avatar.js +1 -1
  39. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  40. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  41. package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
  42. package/dist/cdn/badge/snice-badge.js +2 -2
  43. package/dist/cdn/badge/snice-badge.js.map +1 -1
  44. package/dist/cdn/badge/snice-badge.min.js +2 -2
  45. package/dist/cdn/badge/snice-badge.min.js.map +1 -1
  46. package/dist/cdn/banner/snice-banner.js +1 -1
  47. package/dist/cdn/banner/snice-banner.min.js +1 -1
  48. package/dist/cdn/binpack/README.md +27 -0
  49. package/dist/cdn/binpack/snice-binpack.js +1037 -0
  50. package/dist/cdn/binpack/snice-binpack.js.map +1 -0
  51. package/dist/cdn/binpack/snice-binpack.min.js +13 -0
  52. package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
  53. package/dist/cdn/book/snice-book.js +1 -1
  54. package/dist/cdn/book/snice-book.min.js +1 -1
  55. package/dist/cdn/booking/snice-booking.js +1 -1
  56. package/dist/cdn/booking/snice-booking.min.js +1 -1
  57. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  58. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  59. package/dist/cdn/button/README.md +1 -1
  60. package/dist/cdn/button/snice-button.js +11 -10
  61. package/dist/cdn/button/snice-button.js.map +1 -1
  62. package/dist/cdn/button/snice-button.min.js +3 -3
  63. package/dist/cdn/button/snice-button.min.js.map +1 -1
  64. package/dist/cdn/calendar/snice-calendar.js +1 -1
  65. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  66. package/dist/cdn/camera/snice-camera.js +1 -1
  67. package/dist/cdn/camera/snice-camera.min.js +1 -1
  68. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  69. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  70. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  71. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  72. package/dist/cdn/card/snice-card.js +1 -1
  73. package/dist/cdn/card/snice-card.min.js +1 -1
  74. package/dist/cdn/carousel/snice-carousel.js +1 -1
  75. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  76. package/dist/cdn/cart/snice-cart.js +1 -1
  77. package/dist/cdn/cart/snice-cart.min.js +1 -1
  78. package/dist/cdn/chart/snice-chart.js +1 -1
  79. package/dist/cdn/chart/snice-chart.min.js +1 -1
  80. package/dist/cdn/chat/snice-chat.js +1 -1
  81. package/dist/cdn/chat/snice-chat.min.js +1 -1
  82. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  83. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  84. package/dist/cdn/chip/snice-chip.js +1 -1
  85. package/dist/cdn/chip/snice-chip.min.js +1 -1
  86. package/dist/cdn/code-block/snice-code-block.js +1 -1
  87. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  88. package/dist/cdn/color-display/snice-color-display.js +1 -1
  89. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  90. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  91. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  92. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  93. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  94. package/dist/cdn/comments/snice-comments.js +1 -1
  95. package/dist/cdn/comments/snice-comments.min.js +1 -1
  96. package/dist/cdn/countdown/snice-countdown.js +1 -1
  97. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  98. package/dist/cdn/cropper/snice-cropper.js +1 -1
  99. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  100. package/dist/cdn/data-card/snice-data-card.js +1 -1
  101. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  102. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  103. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  104. package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
  105. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
  106. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  107. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
  108. package/dist/cdn/diff/snice-diff.js +1 -1
  109. package/dist/cdn/diff/snice-diff.min.js +1 -1
  110. package/dist/cdn/divider/snice-divider.js +1 -1
  111. package/dist/cdn/divider/snice-divider.min.js +1 -1
  112. package/dist/cdn/doc/snice-doc.js +1 -1
  113. package/dist/cdn/doc/snice-doc.min.js +1 -1
  114. package/dist/cdn/draw/snice-draw.js +1 -1
  115. package/dist/cdn/draw/snice-draw.min.js +1 -1
  116. package/dist/cdn/drawer/snice-drawer.js +1 -1
  117. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  118. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  119. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  120. package/dist/cdn/estimate/snice-estimate.js +1 -1
  121. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  122. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  123. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  124. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  125. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  126. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  127. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  128. package/dist/cdn/flow/snice-flow.js +1 -1
  129. package/dist/cdn/flow/snice-flow.min.js +1 -1
  130. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  131. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  132. package/dist/cdn/funnel/snice-funnel.js +1 -1
  133. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  134. package/dist/cdn/gantt/snice-gantt.js +1 -1
  135. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  136. package/dist/cdn/gauge/snice-gauge.js +1 -1
  137. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  138. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  139. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  140. package/dist/cdn/image/snice-image.js +1 -1
  141. package/dist/cdn/image/snice-image.min.js +1 -1
  142. package/dist/cdn/input/snice-input.js +1 -1
  143. package/dist/cdn/input/snice-input.min.js +1 -1
  144. package/dist/cdn/invoice/snice-invoice.js +1 -1
  145. package/dist/cdn/invoice/snice-invoice.min.js +1 -1
  146. package/dist/cdn/kanban/snice-kanban.js +1 -1
  147. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  148. package/dist/cdn/key-value/snice-key-value.js +1 -1
  149. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  150. package/dist/cdn/kpi/snice-kpi.js +1 -1
  151. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  152. package/dist/cdn/layout/snice-layout.js +1 -1
  153. package/dist/cdn/layout/snice-layout.min.js +1 -1
  154. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  155. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  156. package/dist/cdn/link/snice-link.js +1 -1
  157. package/dist/cdn/link/snice-link.min.js +1 -1
  158. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  159. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  160. package/dist/cdn/list/snice-list.js +1 -1
  161. package/dist/cdn/list/snice-list.min.js +1 -1
  162. package/dist/cdn/location/snice-location.js +1 -1
  163. package/dist/cdn/location/snice-location.min.js +1 -1
  164. package/dist/cdn/login/README.md +2 -2
  165. package/dist/cdn/login/snice-login.js +11 -10
  166. package/dist/cdn/login/snice-login.js.map +1 -1
  167. package/dist/cdn/login/snice-login.min.js +5 -5
  168. package/dist/cdn/login/snice-login.min.js.map +1 -1
  169. package/dist/cdn/map/snice-map.js +1 -1
  170. package/dist/cdn/map/snice-map.min.js +1 -1
  171. package/dist/cdn/markdown/snice-markdown.js +1 -1
  172. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  173. package/dist/cdn/masonry/snice-masonry.js +1 -1
  174. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  175. package/dist/cdn/menu/snice-menu.js +1 -1
  176. package/dist/cdn/menu/snice-menu.min.js +1 -1
  177. package/dist/cdn/message-strip/snice-message-strip.js +1 -1
  178. package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
  179. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  180. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  181. package/dist/cdn/modal/snice-modal.js +1 -1
  182. package/dist/cdn/modal/snice-modal.min.js +1 -1
  183. package/dist/cdn/music-player/snice-music-player.js +1 -1
  184. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  185. package/dist/cdn/nav/snice-nav.js +1 -1
  186. package/dist/cdn/nav/snice-nav.min.js +1 -1
  187. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  188. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  189. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  190. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  191. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  192. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  193. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  194. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  195. package/dist/cdn/pagination/snice-pagination.js +1 -1
  196. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  197. package/dist/cdn/paint/snice-paint.js +1 -1
  198. package/dist/cdn/paint/snice-paint.min.js +1 -1
  199. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  200. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  201. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  202. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  203. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  204. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  205. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  206. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  207. package/dist/cdn/product-card/snice-product-card.js +1 -1
  208. package/dist/cdn/product-card/snice-product-card.min.js +1 -1
  209. package/dist/cdn/progress/snice-progress.js +1 -1
  210. package/dist/cdn/progress/snice-progress.min.js +1 -1
  211. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  212. package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
  213. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  214. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  215. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  216. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  217. package/dist/cdn/radio/snice-radio.js +1 -1
  218. package/dist/cdn/radio/snice-radio.min.js +1 -1
  219. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  220. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  221. package/dist/cdn/rating/snice-rating.js +1 -1
  222. package/dist/cdn/rating/snice-rating.min.js +1 -1
  223. package/dist/cdn/receipt/snice-receipt.js +1 -1
  224. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  225. package/dist/cdn/recipe/snice-recipe.js +1 -1
  226. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  227. package/dist/cdn/runtime/README.md +2 -2
  228. package/dist/cdn/runtime/snice-runtime.esm.js +152 -62
  229. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  230. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  231. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  232. package/dist/cdn/runtime/snice-runtime.js +152 -61
  233. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  234. package/dist/cdn/runtime/snice-runtime.min.js +8 -8
  235. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  236. package/dist/cdn/sankey/snice-sankey.js +1 -1
  237. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  238. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  239. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  240. package/dist/cdn/select/snice-select.js +1 -1
  241. package/dist/cdn/select/snice-select.min.js +1 -1
  242. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  243. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  244. package/dist/cdn/slider/snice-slider.js +1 -1
  245. package/dist/cdn/slider/snice-slider.min.js +1 -1
  246. package/dist/cdn/sortable/snice-sortable.js +1 -1
  247. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  248. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  249. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  250. package/dist/cdn/spinner/snice-spinner.js +1 -1
  251. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  252. package/dist/cdn/split-button/snice-split-button.js +1 -1
  253. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  254. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  255. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  256. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  257. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  258. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  259. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  260. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  261. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  262. package/dist/cdn/step-input/snice-step-input.js +1 -1
  263. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  264. package/dist/cdn/stepper/snice-stepper.js +1 -1
  265. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  266. package/dist/cdn/switch/snice-switch.js +1 -1
  267. package/dist/cdn/switch/snice-switch.min.js +1 -1
  268. package/dist/cdn/table/README.md +1 -1
  269. package/dist/cdn/table/snice-table.js +11 -10
  270. package/dist/cdn/table/snice-table.js.map +1 -1
  271. package/dist/cdn/table/snice-table.min.js +73 -73
  272. package/dist/cdn/table/snice-table.min.js.map +1 -1
  273. package/dist/cdn/tabs/snice-tabs.js +1 -1
  274. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  275. package/dist/cdn/tag/snice-tag.js +1 -1
  276. package/dist/cdn/tag/snice-tag.min.js +1 -1
  277. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  278. package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
  279. package/dist/cdn/terminal/snice-terminal.js +1 -1
  280. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  281. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  282. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  283. package/dist/cdn/textarea/snice-textarea.js +1 -1
  284. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  285. package/dist/cdn/time-picker/snice-time-picker.js +1 -1
  286. package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
  287. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  288. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  289. package/dist/cdn/timeline/snice-timeline.js +1 -1
  290. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  291. package/dist/cdn/timer/snice-timer.js +1 -1
  292. package/dist/cdn/timer/snice-timer.min.js +1 -1
  293. package/dist/cdn/toast/snice-toast.js +1 -1
  294. package/dist/cdn/toast/snice-toast.min.js +1 -1
  295. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  296. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  297. package/dist/cdn/tree/snice-tree.js +1 -1
  298. package/dist/cdn/tree/snice-tree.min.js +1 -1
  299. package/dist/cdn/treemap/snice-treemap.js +1 -1
  300. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  301. package/dist/cdn/user-card/snice-user-card.js +1 -1
  302. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  303. package/dist/cdn/video-player/snice-video-player.js +1 -1
  304. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  305. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  306. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  307. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  308. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  309. package/dist/cdn/weather/snice-weather.js +1 -1
  310. package/dist/cdn/weather/snice-weather.min.js +1 -1
  311. package/dist/cdn/work-order/snice-work-order.js +1 -1
  312. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  313. package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
  314. package/dist/components/action-bar/snice-action-bar.js +182 -0
  315. package/dist/components/action-bar/snice-action-bar.js.map +1 -0
  316. package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
  317. package/dist/components/badge/snice-badge.js +1 -1
  318. package/dist/components/badge/snice-badge.js.map +1 -1
  319. package/dist/components/binpack/snice-binpack.d.ts +82 -0
  320. package/dist/components/binpack/snice-binpack.js +970 -0
  321. package/dist/components/binpack/snice-binpack.js.map +1 -0
  322. package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
  323. package/dist/components/button/snice-button.d.ts +2 -2
  324. package/dist/components/button/snice-button.js +11 -10
  325. package/dist/components/button/snice-button.js.map +1 -1
  326. package/dist/create-request-handler.d.ts +42 -0
  327. package/dist/index.cjs +149 -58
  328. package/dist/index.cjs.map +1 -1
  329. package/dist/index.d.ts +2 -0
  330. package/dist/index.esm.js +149 -59
  331. package/dist/index.esm.js.map +1 -1
  332. package/dist/index.iife.js +149 -58
  333. package/dist/index.iife.js.map +1 -1
  334. package/dist/parts.d.ts +9 -7
  335. package/dist/react/useRequestHandler.d.ts +56 -0
  336. package/dist/react/useRequestHandler.js +103 -0
  337. package/dist/react/useRequestHandler.js.map +1 -0
  338. package/dist/symbols.cjs +1 -1
  339. package/dist/symbols.esm.js +1 -1
  340. package/dist/transitions.cjs +1 -1
  341. package/dist/transitions.esm.js +1 -1
  342. package/docs/ai/DEVELOPMENT.md +1 -1
  343. package/docs/ai/components/accordion.md +46 -80
  344. package/docs/ai/components/action-bar.md +75 -0
  345. package/docs/ai/components/activity-feed.md +7 -7
  346. package/docs/ai/components/alert.md +26 -44
  347. package/docs/ai/components/app-tiles.md +34 -39
  348. package/docs/ai/components/approval-flow.md +1 -1
  349. package/docs/ai/components/audio-recorder.md +35 -67
  350. package/docs/ai/components/availability.md +13 -34
  351. package/docs/ai/components/avatar-group.md +26 -13
  352. package/docs/ai/components/avatar.md +52 -36
  353. package/docs/ai/components/badge.md +21 -32
  354. package/docs/ai/components/banner.md +21 -43
  355. package/docs/ai/components/binpack.md +89 -0
  356. package/docs/ai/components/book.md +25 -23
  357. package/docs/ai/components/booking.md +31 -36
  358. package/docs/ai/components/breadcrumbs.md +36 -11
  359. package/docs/ai/components/button.md +33 -44
  360. package/docs/ai/components/calendar.md +37 -70
  361. package/docs/ai/components/camera-annotate.md +31 -64
  362. package/docs/ai/components/camera.md +38 -120
  363. package/docs/ai/components/candlestick.md +32 -52
  364. package/docs/ai/components/card.md +20 -30
  365. package/docs/ai/components/carousel.md +32 -32
  366. package/docs/ai/components/cart.md +24 -29
  367. package/docs/ai/components/chart.md +29 -114
  368. package/docs/ai/components/chat.md +38 -75
  369. package/docs/ai/components/checkbox.md +22 -41
  370. package/docs/ai/components/chip.md +18 -54
  371. package/docs/ai/components/code-block.md +57 -178
  372. package/docs/ai/components/color-display.md +12 -32
  373. package/docs/ai/components/color-picker.md +17 -39
  374. package/docs/ai/components/command-palette.md +49 -71
  375. package/docs/ai/components/comments.md +55 -36
  376. package/docs/ai/components/countdown.md +28 -30
  377. package/docs/ai/components/cropper.md +33 -33
  378. package/docs/ai/components/data-card.md +20 -14
  379. package/docs/ai/components/date-picker.md +40 -47
  380. package/docs/ai/components/date-range-picker.md +31 -15
  381. package/docs/ai/components/date-time-picker.md +23 -46
  382. package/docs/ai/components/diff.md +30 -31
  383. package/docs/ai/components/divider.md +17 -47
  384. package/docs/ai/components/doc.md +43 -68
  385. package/docs/ai/components/draw.md +35 -87
  386. package/docs/ai/components/drawer.md +48 -77
  387. package/docs/ai/components/empty-state.md +10 -44
  388. package/docs/ai/components/estimate.md +33 -58
  389. package/docs/ai/components/file-gallery.md +48 -100
  390. package/docs/ai/components/file-upload.md +17 -53
  391. package/docs/ai/components/flip-card.md +31 -23
  392. package/docs/ai/components/flow.md +37 -65
  393. package/docs/ai/components/form-builder.md +35 -75
  394. package/docs/ai/components/form-layout.md +10 -20
  395. package/docs/ai/components/funnel.md +33 -48
  396. package/docs/ai/components/gantt.md +27 -23
  397. package/docs/ai/components/gauge.md +16 -17
  398. package/docs/ai/components/heatmap.md +21 -21
  399. package/docs/ai/components/image.md +7 -13
  400. package/docs/ai/components/input.md +38 -70
  401. package/docs/ai/components/invoice.md +35 -36
  402. package/docs/ai/components/kanban.md +32 -61
  403. package/docs/ai/components/key-value.md +32 -16
  404. package/docs/ai/components/kpi.md +38 -73
  405. package/docs/ai/components/layout.md +29 -23
  406. package/docs/ai/components/leaderboard.md +28 -37
  407. package/docs/ai/components/link-preview.md +12 -18
  408. package/docs/ai/components/link.md +10 -7
  409. package/docs/ai/components/list.md +21 -5
  410. package/docs/ai/components/location.md +21 -25
  411. package/docs/ai/components/login.md +14 -9
  412. package/docs/ai/components/map.md +27 -33
  413. package/docs/ai/components/markdown.md +20 -24
  414. package/docs/ai/components/masonry.md +10 -14
  415. package/docs/ai/components/mentions.md +26 -12
  416. package/docs/ai/components/menu.md +54 -52
  417. package/docs/ai/components/message-strip.md +20 -20
  418. package/docs/ai/components/metric-table.md +14 -21
  419. package/docs/ai/components/modal.md +27 -18
  420. package/docs/ai/components/music-player.md +49 -41
  421. package/docs/ai/components/nav.md +34 -31
  422. package/docs/ai/components/network-graph.md +27 -42
  423. package/docs/ai/components/notification-center.md +31 -33
  424. package/docs/ai/components/order-tracker.md +36 -27
  425. package/docs/ai/components/org-chart.md +36 -31
  426. package/docs/ai/components/pagination.md +34 -26
  427. package/docs/ai/components/paint.md +53 -91
  428. package/docs/ai/components/pdf-viewer.md +35 -36
  429. package/docs/ai/components/permission-matrix.md +26 -31
  430. package/docs/ai/components/podcast-player.md +64 -70
  431. package/docs/ai/components/pricing-table.md +37 -48
  432. package/docs/ai/components/product-card.md +58 -41
  433. package/docs/ai/components/progress-ring.md +20 -24
  434. package/docs/ai/components/progress.md +28 -45
  435. package/docs/ai/components/qr-code.md +25 -27
  436. package/docs/ai/components/qr-reader.md +20 -23
  437. package/docs/ai/components/radio.md +17 -15
  438. package/docs/ai/components/range-slider.md +22 -11
  439. package/docs/ai/components/rating.md +29 -33
  440. package/docs/ai/components/receipt.md +50 -127
  441. package/docs/ai/components/recipe.md +44 -42
  442. package/docs/ai/components/sankey.md +21 -30
  443. package/docs/ai/components/scheduler.md +29 -41
  444. package/docs/ai/components/segmented-control.md +11 -15
  445. package/docs/ai/components/select.md +58 -102
  446. package/docs/ai/components/skeleton.md +16 -30
  447. package/docs/ai/components/slider.md +26 -20
  448. package/docs/ai/components/sortable.md +25 -27
  449. package/docs/ai/components/sparkline.md +21 -17
  450. package/docs/ai/components/spinner.md +9 -5
  451. package/docs/ai/components/split-button.md +10 -13
  452. package/docs/ai/components/split-pane.md +19 -14
  453. package/docs/ai/components/spotlight.md +31 -26
  454. package/docs/ai/components/spreadsheet.md +51 -97
  455. package/docs/ai/components/stat-group.md +9 -19
  456. package/docs/ai/components/step-input.md +17 -15
  457. package/docs/ai/components/stepper.md +14 -15
  458. package/docs/ai/components/switch.md +15 -9
  459. package/docs/ai/components/table.md +24 -84
  460. package/docs/ai/components/tabs.md +18 -10
  461. package/docs/ai/components/tag-input.md +18 -29
  462. package/docs/ai/components/tag.md +10 -22
  463. package/docs/ai/components/terminal.md +9 -9
  464. package/docs/ai/components/testimonial.md +9 -19
  465. package/docs/ai/components/textarea.md +15 -16
  466. package/docs/ai/components/theme.md +3 -3
  467. package/docs/ai/components/time-picker.md +30 -49
  468. package/docs/ai/components/time-range-picker.md +16 -15
  469. package/docs/ai/components/timeline.md +5 -4
  470. package/docs/ai/components/timer.md +8 -8
  471. package/docs/ai/components/toast.md +24 -18
  472. package/docs/ai/components/tooltip.md +11 -22
  473. package/docs/ai/components/tree.md +9 -9
  474. package/docs/ai/components/treemap.md +14 -13
  475. package/docs/ai/components/user-card.md +21 -27
  476. package/docs/ai/components/video-player.md +35 -52
  477. package/docs/ai/components/virtual-scroller.md +1 -1
  478. package/docs/ai/components/waterfall.md +17 -16
  479. package/docs/ai/components/weather.md +19 -34
  480. package/docs/ai/components/work-order.md +58 -134
  481. package/docs/ai/patterns.md +63 -0
  482. package/docs/components/accordion.md +72 -151
  483. package/docs/components/action-bar.md +185 -0
  484. package/docs/components/activity-feed.md +9 -14
  485. package/docs/components/alert.md +17 -109
  486. package/docs/components/app-tiles.md +58 -43
  487. package/docs/components/approval-flow.md +8 -14
  488. package/docs/components/audio-recorder.md +45 -51
  489. package/docs/components/availability.md +30 -45
  490. package/docs/components/avatar-group.md +34 -14
  491. package/docs/components/avatar.md +20 -55
  492. package/docs/components/badge.md +53 -470
  493. package/docs/components/banner.md +44 -30
  494. package/docs/components/binpack.md +208 -0
  495. package/docs/components/book.md +78 -57
  496. package/docs/components/booking.md +35 -87
  497. package/docs/components/breadcrumbs.md +74 -448
  498. package/docs/components/button.md +72 -603
  499. package/docs/components/calendar.md +77 -261
  500. package/docs/components/camera-annotate.md +44 -96
  501. package/docs/components/camera.md +94 -333
  502. package/docs/components/candlestick.md +79 -116
  503. package/docs/components/card.md +51 -689
  504. package/docs/components/carousel.md +29 -76
  505. package/docs/components/cart.md +44 -136
  506. package/docs/components/chart.md +95 -438
  507. package/docs/components/chat.md +175 -439
  508. package/docs/components/checkbox.md +52 -609
  509. package/docs/components/chip.md +45 -574
  510. package/docs/components/code-block.md +157 -421
  511. package/docs/components/color-display.md +45 -54
  512. package/docs/components/color-picker.md +103 -36
  513. package/docs/components/command-palette.md +98 -92
  514. package/docs/components/comments.md +16 -10
  515. package/docs/components/countdown.md +15 -20
  516. package/docs/components/cropper.md +14 -16
  517. package/docs/components/data-card.md +16 -15
  518. package/docs/components/date-picker.md +45 -25
  519. package/docs/components/date-range-picker.md +140 -87
  520. package/docs/components/date-time-picker.md +25 -28
  521. package/docs/components/diff.md +22 -17
  522. package/docs/components/divider.md +18 -20
  523. package/docs/components/doc.md +105 -197
  524. package/docs/components/draw.md +117 -223
  525. package/docs/components/drawer.md +113 -478
  526. package/docs/components/empty-state.md +13 -29
  527. package/docs/components/estimate.md +58 -118
  528. package/docs/components/file-gallery.md +123 -495
  529. package/docs/components/file-upload.md +36 -123
  530. package/docs/components/flip-card.md +30 -34
  531. package/docs/components/flow.md +74 -89
  532. package/docs/components/form-builder.md +59 -86
  533. package/docs/components/form-layout.md +21 -31
  534. package/docs/components/funnel.md +21 -22
  535. package/docs/components/gantt.md +5 -5
  536. package/docs/components/gauge.md +5 -23
  537. package/docs/components/heatmap.md +13 -55
  538. package/docs/components/image.md +28 -32
  539. package/docs/components/input.md +25 -14
  540. package/docs/components/invoice.md +34 -33
  541. package/docs/components/kanban.md +99 -394
  542. package/docs/components/key-value.md +22 -12
  543. package/docs/components/kpi.md +41 -112
  544. package/docs/components/layout.md +7 -13
  545. package/docs/components/leaderboard.md +52 -76
  546. package/docs/components/link-preview.md +20 -16
  547. package/docs/components/link.md +22 -19
  548. package/docs/components/list.md +44 -26
  549. package/docs/components/location.md +9 -13
  550. package/docs/components/login.md +42 -36
  551. package/docs/components/map.md +24 -46
  552. package/docs/components/markdown.md +14 -25
  553. package/docs/components/masonry.md +15 -13
  554. package/docs/components/mentions.md +36 -25
  555. package/docs/components/menu.md +39 -46
  556. package/docs/components/message-strip.md +15 -51
  557. package/docs/components/metric-table.md +50 -72
  558. package/docs/components/modal.md +32 -43
  559. package/docs/components/music-player.md +41 -49
  560. package/docs/components/nav.md +23 -13
  561. package/docs/components/network-graph.md +14 -13
  562. package/docs/components/notification-center.md +68 -172
  563. package/docs/components/order-tracker.md +72 -117
  564. package/docs/components/org-chart.md +58 -207
  565. package/docs/components/pagination.md +67 -89
  566. package/docs/components/paint.md +86 -172
  567. package/docs/components/pdf-viewer.md +46 -151
  568. package/docs/components/permission-matrix.md +61 -112
  569. package/docs/components/podcast-player.md +41 -119
  570. package/docs/components/pricing-table.md +104 -147
  571. package/docs/components/product-card.md +94 -197
  572. package/docs/components/progress-ring.md +29 -32
  573. package/docs/components/progress.md +30 -61
  574. package/docs/components/qr-code.md +53 -61
  575. package/docs/components/qr-reader.md +53 -42
  576. package/docs/components/radio.md +42 -40
  577. package/docs/components/range-slider.md +41 -30
  578. package/docs/components/rating.md +50 -84
  579. package/docs/components/receipt.md +91 -129
  580. package/docs/components/recipe.md +107 -216
  581. package/docs/components/sankey.md +47 -83
  582. package/docs/components/scheduler.md +81 -184
  583. package/docs/components/segmented-control.md +48 -40
  584. package/docs/components/select.md +107 -129
  585. package/docs/components/skeleton.md +33 -47
  586. package/docs/components/slider.md +49 -53
  587. package/docs/components/sortable.md +43 -186
  588. package/docs/components/sparkline.md +26 -25
  589. package/docs/components/spinner.md +32 -37
  590. package/docs/components/split-button.md +43 -23
  591. package/docs/components/split-pane.md +41 -58
  592. package/docs/components/spotlight.md +53 -145
  593. package/docs/components/spreadsheet.md +84 -307
  594. package/docs/components/stat-group.md +27 -61
  595. package/docs/components/step-input.md +44 -41
  596. package/docs/components/stepper.md +55 -89
  597. package/docs/components/switch.md +39 -39
  598. package/docs/components/table.md +27 -32
  599. package/docs/components/tabs.md +36 -27
  600. package/docs/components/tag-input.md +50 -176
  601. package/docs/components/tag.md +12 -50
  602. package/docs/components/terminal.md +32 -37
  603. package/docs/components/testimonial.md +24 -81
  604. package/docs/components/textarea.md +9 -14
  605. package/docs/components/theme.md +10 -23
  606. package/docs/components/time-picker.md +48 -72
  607. package/docs/components/time-range-picker.md +22 -41
  608. package/docs/components/timeline.md +7 -14
  609. package/docs/components/timer.md +16 -32
  610. package/docs/components/toast.md +19 -45
  611. package/docs/components/tooltip.md +13 -115
  612. package/docs/components/tree.md +2 -19
  613. package/docs/components/treemap.md +19 -43
  614. package/docs/components/user-card.md +13 -22
  615. package/docs/components/video-player.md +53 -227
  616. package/docs/components/virtual-scroller.md +11 -44
  617. package/docs/components/waterfall.md +58 -137
  618. package/docs/components/weather.md +94 -153
  619. package/docs/components/work-order.md +56 -143
  620. package/docs/plans/2026-03-09-action-bar-design.md +104 -0
  621. package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
  622. package/docs/plans/2026-03-10-react-integration-design.md +166 -0
  623. package/docs/request-response.md +77 -0
  624. package/package.json +20 -10
@@ -1,32 +1,25 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/music-player.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/music-player.md -->
2
2
 
3
3
  # Music Player
4
4
  `<snice-music-player>`
5
5
 
6
6
  A full-featured audio player with playlist support, shuffle, repeat modes, and volume control.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/music-player/snice-music-player';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-music-player.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Events](#events)
12
+ - [CSS Parts](#css-parts)
13
+ - [Basic Usage](#basic-usage)
14
+ - [Examples](#examples)
20
15
 
21
16
  ## Properties
22
17
 
23
18
  | Property | Type | Default | Description |
24
19
  |----------|------|---------|-------------|
25
- | `tracks` | `Track[]` | `[]` | Array of track objects |
26
- | `currentTrackIndex` | `number` | `0` | Index of the current track |
27
- | `currentTrack` | `string` | `''` | Current track ID (reflected attribute) |
28
- | `currentTime` | `number` | `0` | Playback position in seconds (read-only) |
29
- | `duration` | `number` | `0` | Track duration in seconds |
20
+ | `tracks` | `Track[]` | `[]` | Array of track objects (set via JavaScript) |
21
+ | `currentTrackIndex` (attr: `current-track-index`) | `number` | `0` | Index of the current track |
22
+ | `currentTrack` (attr: `current-track`) | `string` | `''` | Current track ID |
30
23
  | `volume` | `number` | `1` | Volume level (0-1) |
31
24
  | `muted` | `boolean` | `false` | Whether audio is muted |
32
25
  | `shuffle` | `boolean` | `false` | Shuffle mode enabled |
@@ -40,6 +33,22 @@ import 'snice/components/music-player/snice-music-player';
40
33
  | `showTrackInfo` (attr: `show-track-info`) | `boolean` | `true` | Show track metadata |
41
34
  | `compact` | `boolean` | `false` | Compact layout mode |
42
35
 
36
+ > **Note:** `currentTime` and `duration` are plain class fields (not `@property`). They are updated internally during playback. Use `seek()` to set playback position.
37
+
38
+ ### Track Interface
39
+
40
+ ```typescript
41
+ interface Track {
42
+ id: string;
43
+ title: string;
44
+ artist?: string;
45
+ album?: string;
46
+ artwork?: string;
47
+ src: string;
48
+ duration?: number;
49
+ }
50
+ ```
51
+
43
52
  ## Methods
44
53
 
45
54
  | Method | Arguments | Description |
@@ -48,7 +57,7 @@ import 'snice/components/music-player/snice-music-player';
48
57
  | `pause()` | -- | Pause playback |
49
58
  | `stop()` | -- | Stop playback and reset position |
50
59
  | `next()` | -- | Skip to next track |
51
- | `previous()` | -- | Skip to previous track |
60
+ | `previous()` | -- | Skip to previous track (restarts if >3s in) |
52
61
  | `seek()` | `time: number` | Seek to time in seconds |
53
62
  | `setVolume()` | `volume: number` | Set volume (0-1) |
54
63
  | `toggleShuffle()` | -- | Toggle shuffle mode |
@@ -60,17 +69,17 @@ import 'snice/components/music-player/snice-music-player';
60
69
 
61
70
  | Event | Detail | Description |
62
71
  |-------|--------|-------------|
63
- | `player-play` | `{ track: Track }` | Playback started |
64
- | `player-pause` | `{ track: Track }` | Playback paused |
65
- | `player-stop` | `{ player: SniceMusicPlayerElement }` | Playback stopped |
66
- | `player-track-change` | `{ track: Track }` | Track changed |
67
- | `player-track-ended` | `{ track: Track }` | Track finished playing |
68
- | `player-shuffle-change` | `{ shuffle: boolean }` | Shuffle mode toggled |
69
- | `player-repeat-change` | `{ repeat: string }` | Repeat mode changed |
70
- | `player-volume-change` | `{ volume: number }` | Volume level changed |
71
- | `player-seek` | `{ time: number }` | Seeked to a new position |
72
- | `player-time-update` | `{ currentTime: number, duration: number }` | Playback time updated |
73
- | `player-error` | `{ error: any }` | An error occurred |
72
+ | `player-play` | `{ player, track: Track }` | Playback started |
73
+ | `player-pause` | `{ player, track: Track }` | Playback paused |
74
+ | `player-stop` | `{ player }` | Playback stopped |
75
+ | `player-track-change` | `{ player, track: Track }` | Track changed |
76
+ | `player-track-ended` | `{ player, track: Track }` | Track finished playing |
77
+ | `player-shuffle-change` | `{ player, shuffle: boolean }` | Shuffle mode toggled |
78
+ | `player-repeat-change` | `{ player, repeat: RepeatMode }` | Repeat mode changed |
79
+ | `player-volume-change` | `{ player, volume: number }` | Volume level changed |
80
+ | `player-seek` | `{ player, time: number }` | Seeked to a new position |
81
+ | `player-time-update` | `{ player, currentTime: number, duration: number }` | Playback time updated |
82
+ | `player-error` | `{ player, error: Error }` | An error occurred |
74
83
 
75
84
  ## CSS Parts
76
85
 
@@ -102,10 +111,11 @@ import 'snice/components/music-player/snice-music-player';
102
111
  ```
103
112
 
104
113
  ```html
105
- <snice-music-player></snice-music-player>
114
+ <snice-music-player id="player"></snice-music-player>
106
115
  ```
107
116
 
108
117
  ```typescript
118
+ const player = document.getElementById('player');
109
119
  player.tracks = [
110
120
  { id: '1', title: 'Summer Breeze', artist: 'The Collective', src: '/audio/track1.mp3' }
111
121
  ];
@@ -115,10 +125,6 @@ player.tracks = [
115
125
 
116
126
  ### Full Player with Playlist
117
127
 
118
- ```html
119
- <snice-music-player></snice-music-player>
120
- ```
121
-
122
128
  ```typescript
123
129
  player.tracks = [
124
130
  {
@@ -212,17 +218,3 @@ player.addEventListener('player-error', (e) => {
212
218
  console.error('Error:', e.detail.error);
213
219
  });
214
220
  ```
215
-
216
- ## Track Interface
217
-
218
- ```typescript
219
- interface Track {
220
- id: string;
221
- title: string;
222
- artist?: string;
223
- album?: string;
224
- artwork?: string;
225
- src: string;
226
- duration?: number;
227
- }
228
- ```
@@ -1,22 +1,18 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/nav.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/nav.md -->
2
2
 
3
3
  # Nav
4
4
  `<snice-nav>`
5
5
 
6
6
  A navigation menu that renders from placard configurations and integrates with Snice's routing system.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/nav/snice-nav';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-nav.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Slots](#slots)
12
+ - [CSS Parts](#css-parts)
13
+ - [Basic Usage](#basic-usage)
14
+ - [Examples](#examples)
15
+ - [Accessibility](#accessibility)
20
16
 
21
17
  ## Properties
22
18
 
@@ -32,6 +28,12 @@ import 'snice/components/nav/snice-nav';
32
28
  |--------|-----------|-------------|
33
29
  | `update()` | `placards, appContext?, currentRoute?, routeParams?` | Update navigation with placard data |
34
30
 
31
+ ## Slots
32
+
33
+ | Name | Description |
34
+ |------|-------------|
35
+ | (default) | Additional content rendered after the navigation |
36
+
35
37
  ## CSS Parts
36
38
 
37
39
  Style internal elements from outside the shadow DOM using `::part()`.
@@ -176,6 +178,14 @@ Set `is-top-level` to automatically receive placards and routes from the Snice c
176
178
  <snice-nav is-top-level></snice-nav>
177
179
  ```
178
180
 
181
+ ## Accessibility
182
+
183
+ - The `<nav>` element has `role="navigation"` for screen readers
184
+ - Active items receive `aria-current="page"`
185
+ - Items with `description` get `aria-label` for accessible names
186
+ - Focus-visible styles are provided for keyboard navigation
187
+ - All navigation links are keyboard-focusable
188
+
179
189
  ## Placard Structure
180
190
 
181
191
  ```typescript
@@ -1,22 +1,17 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/network-graph.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/network-graph.md -->
2
2
 
3
3
  # Network Graph
4
4
  `<snice-network-graph>`
5
5
 
6
6
  An SVG-based force-directed graph visualization for displaying relationships between nodes.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/network-graph/snice-network-graph';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-network-graph.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Events](#events)
11
+ - [CSS Parts](#css-parts)
12
+ - [Basic Usage](#basic-usage)
13
+ - [Examples](#examples)
14
+ - [Accessibility](#accessibility)
20
15
 
21
16
  ## Properties
22
17
 
@@ -180,6 +175,12 @@ Disable drag and zoom for a non-interactive view.
180
175
  <snice-network-graph zoom-enabled="false" drag-enabled="false"></snice-network-graph>
181
176
  ```
182
177
 
178
+ ## Accessibility
179
+
180
+ - The graph container has `role="img"` with `aria-label="Network graph visualization"`
181
+ - Hover tooltips display node label and connection count
182
+ - Responsive via ResizeObserver
183
+
183
184
  ## Data Types
184
185
 
185
186
  ```typescript
@@ -1,43 +1,29 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/notification-center.md instead -->
2
-
3
- # Notification Center Component
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/notification-center.md -->
4
2
 
3
+ # Notification Center
5
4
  `<snice-notification-center>`
6
5
 
7
6
  A bell icon with a dropdown notification panel. Displays an unread count badge, supports marking notifications as read, and allows dismissing individual items.
8
7
 
9
8
  ## Table of Contents
10
- - [Importing](#importing)
11
9
  - [Properties](#properties)
12
10
  - [Methods](#methods)
13
11
  - [Events](#events)
14
- - [CSS Custom Properties](#css-custom-properties)
12
+ - [Slots](#slots)
15
13
  - [CSS Parts](#css-parts)
14
+ - [CSS Custom Properties](#css-custom-properties)
16
15
  - [Basic Usage](#basic-usage)
17
16
  - [Examples](#examples)
18
- - [Types](#types)
19
17
  - [Accessibility](#accessibility)
20
-
21
- ## Importing
22
-
23
- **ESM (bundler)**
24
- ```typescript
25
- import 'snice/components/notification-center/snice-notification-center';
26
- ```
27
-
28
- **CDN**
29
- ```html
30
- <script src="snice-runtime.min.js"></script>
31
- <script src="snice-notification-center.min.js"></script>
32
- ```
18
+ - [Data Types](#data-types)
33
19
 
34
20
  ## Properties
35
21
 
36
22
  | Property | Type | Default | Description |
37
23
  |----------|------|---------|-------------|
38
- | `notifications` | `NotificationItem[]` | `[]` | Array of notification objects to display |
24
+ | `notifications` | `NotificationItem[]` | `[]` | Array of notification objects to display (set via JS) |
39
25
  | `open` | `boolean` | `false` | Whether the dropdown panel is visible |
40
- | `icon` | `string` | `''` | Custom bell icon (URL, image file, emoji). Use slot for icon fonts. |
26
+ | `icon` | `string` | `''` | Custom bell icon (URL, image file, or emoji). Use slot for icon fonts. |
41
27
 
42
28
  ## Methods
43
29
 
@@ -55,37 +41,11 @@ import 'snice/components/notification-center/snice-notification-center';
55
41
  | `notification-dismiss` | `{ id: string }` | Fired when a notification is dismissed |
56
42
  | `notification-read-all` | `void` | Fired when all notifications are marked as read |
57
43
 
58
- ## CSS Custom Properties
59
-
60
- | Property | Description |
61
- |----------|-------------|
62
- | `--snice-font-family` | Font family |
63
- | `--snice-color-text` | Primary text color |
64
- | `--snice-color-primary` | Mark-all-read link color and unread highlight |
65
- | `--snice-color-primary-subtle` | Unread item background |
66
- | `--snice-color-danger` | Badge background and dismiss hover color |
67
- | `--snice-color-text-inverse` | Badge text color |
68
- | `--snice-color-text-secondary` | Message text color |
69
- | `--snice-color-text-tertiary` | Timestamp, empty state text, and dismiss icon color |
70
- | `--snice-color-border` | Panel and item border color |
71
- | `--snice-color-background` | Panel background color |
72
- | `--snice-color-background-element` | Item hover and bell hover background |
73
- | `--snice-shadow-lg` | Panel drop shadow |
74
- | `--snice-spacing-*` | Various spacing tokens |
75
- | `--snice-font-size-sm` | Small text size |
76
- | `--snice-font-size-md` | Base text size |
77
- | `--snice-font-weight-medium` | Medium font weight |
78
- | `--snice-font-weight-semibold` | Semibold font weight |
79
- | `--snice-font-weight-bold` | Bold font weight |
80
- | `--snice-border-radius-md` | Item border radius |
81
- | `--snice-border-radius-lg` | Panel border radius |
82
- | `--snice-transition-fast` | Hover transition speed |
83
-
84
44
  ## Slots
85
45
 
86
- | Slot Name | Description |
87
- |-----------|-------------|
88
- | `icon` | Custom bell icon content. Overrides the `icon` property. Useful for icon fonts (Material Symbols, Font Awesome). |
46
+ | Name | Description |
47
+ |------|-------------|
48
+ | `icon` | Custom bell icon content. Overrides the `icon` property. Useful for icon fonts. |
89
49
 
90
50
  ## CSS Parts
91
51
 
@@ -103,95 +63,46 @@ snice-notification-center::part(trigger) {
103
63
  font-size: 1.5rem;
104
64
  }
105
65
 
106
- snice-notification-center::part(badge) {
107
- background: #ef4444;
108
- color: white;
109
- }
110
-
111
66
  snice-notification-center::part(panel) {
112
67
  border-radius: 0.75rem;
113
68
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
114
69
  }
115
70
  ```
116
71
 
72
+ ## CSS Custom Properties
73
+
74
+ | Property | Description |
75
+ |----------|-------------|
76
+ | `--snice-color-primary` | Mark-all-read link color and unread highlight |
77
+ | `--snice-color-primary-subtle` | Unread item background |
78
+ | `--snice-color-danger` | Badge background and dismiss hover color |
79
+ | `--snice-color-text-inverse` | Badge text color |
80
+ | `--snice-color-text-secondary` | Message text color |
81
+ | `--snice-color-text-tertiary` | Timestamp, empty state text, and dismiss icon color |
82
+ | `--snice-color-border` | Panel and item border color |
83
+ | `--snice-color-background` | Panel background color |
84
+ | `--snice-color-background-element` | Item hover and bell hover background |
85
+ | `--snice-shadow-lg` | Panel drop shadow |
86
+
117
87
  ## Basic Usage
118
88
 
119
89
  ```typescript
120
90
  import 'snice/components/notification-center/snice-notification-center';
121
91
  ```
122
92
 
123
- ```html
124
- <snice-notification-center></snice-notification-center>
125
- ```
126
-
127
- ## Examples
128
-
129
- ### Basic Notifications
130
-
131
- Populate the `notifications` property to display items in the dropdown panel.
132
-
133
93
  ```html
134
94
  <snice-notification-center id="nc"></snice-notification-center>
135
95
 
136
96
  <script type="module">
137
- import 'snice/components/notification-center/snice-notification-center';
138
-
139
97
  const nc = document.getElementById('nc');
140
98
  nc.notifications = [
141
- {
142
- id: '1',
143
- title: 'New message',
144
- message: 'You have a new message from Sarah',
145
- timestamp: '2 min ago',
146
- type: 'info'
147
- },
148
- {
149
- id: '2',
150
- title: 'Build complete',
151
- message: 'Production deployment succeeded',
152
- timestamp: '10 min ago',
153
- type: 'success',
154
- read: true
155
- },
156
- {
157
- id: '3',
158
- title: 'Disk space low',
159
- message: 'Server storage is at 90% capacity',
160
- timestamp: '1 hour ago',
161
- type: 'warning'
162
- }
99
+ { id: '1', title: 'New message', message: 'You have a new message', timestamp: '2 min ago', type: 'info' },
100
+ { id: '2', title: 'Build complete', message: 'Deployment succeeded', timestamp: '10 min ago', type: 'success', read: true }
163
101
  ];
164
102
  </script>
165
103
  ```
166
104
 
167
- ### Handling Notification Clicks
168
-
169
- Listen for the `notification-click` event to navigate or take action when a notification is clicked.
170
-
171
- ```html
172
- <snice-notification-center id="nc"></snice-notification-center>
173
-
174
- <script type="module">
175
- import 'snice/components/notification-center/snice-notification-center';
176
-
177
- const nc = document.getElementById('nc');
178
- nc.notifications = [
179
- { id: '1', title: 'New order', message: 'Order #4521 placed', timestamp: 'Just now', type: 'info' },
180
- { id: '2', title: 'Payment received', message: '$249.99 from Acme Corp', timestamp: '5 min ago', type: 'success' }
181
- ];
182
-
183
- nc.addEventListener('notification-click', (e) => {
184
- const notification = e.detail.notification;
185
- console.log('Clicked:', notification.title);
186
-
187
- // Mark as read when clicked
188
- nc.markAsRead(notification.id);
189
-
190
- // Navigate to relevant page
191
- window.location.href = `/notifications/${notification.id}`;
192
- });
193
- </script>
194
- ```
105
+ ## Examples
195
106
 
196
107
  ### Notification Types
197
108
 
@@ -201,8 +112,6 @@ Each `type` automatically applies a default icon if no custom `icon` is provided
201
112
  <snice-notification-center id="nc"></snice-notification-center>
202
113
 
203
114
  <script type="module">
204
- import 'snice/components/notification-center/snice-notification-center';
205
-
206
115
  const nc = document.getElementById('nc');
207
116
  nc.notifications = [
208
117
  { id: '1', title: 'Info', message: 'System update available', timestamp: '1 min ago', type: 'info' },
@@ -213,63 +122,59 @@ Each `type` automatically applies a default icon if no custom `icon` is provided
213
122
  </script>
214
123
  ```
215
124
 
216
- ### Dismiss and Mark All Read
217
-
218
- Use methods to manage notification state programmatically.
219
-
220
- ```html
221
- <snice-notification-center id="nc"></snice-notification-center>
222
- <button id="clear-all">Clear All</button>
125
+ ### Handling Notification Clicks
223
126
 
224
- <script type="module">
225
- import 'snice/components/notification-center/snice-notification-center';
127
+ Listen for the `notification-click` event to navigate or take action when a notification is clicked.
226
128
 
227
- const nc = document.getElementById('nc');
228
- nc.notifications = [
229
- { id: '1', title: 'Alert 1', message: 'First notification', timestamp: '1 min ago', type: 'info' },
230
- { id: '2', title: 'Alert 2', message: 'Second notification', timestamp: '2 min ago', type: 'warning' },
231
- { id: '3', title: 'Alert 3', message: 'Third notification', timestamp: '3 min ago', type: 'error' }
232
- ];
129
+ ```typescript
130
+ nc.addEventListener('notification-click', (e) => {
131
+ const notification = e.detail.notification;
132
+ console.log('Clicked:', notification.title);
133
+ nc.markAsRead(notification.id);
134
+ });
135
+ ```
233
136
 
234
- // Listen for individual dismissals
235
- nc.addEventListener('notification-dismiss', (e) => {
236
- console.log('Dismissed notification:', e.detail.id);
237
- });
137
+ ### Dismiss and Mark All Read
238
138
 
239
- // Listen for mark-all-read
240
- nc.addEventListener('notification-read-all', () => {
241
- console.log('All notifications marked as read');
242
- });
139
+ Use methods to manage notification state programmatically.
243
140
 
244
- // Programmatically clear all
245
- document.getElementById('clear-all').addEventListener('click', () => {
246
- nc.markAllAsRead();
247
- });
248
- </script>
141
+ ```typescript
142
+ // Listen for individual dismissals
143
+ nc.addEventListener('notification-dismiss', (e) => {
144
+ console.log('Dismissed notification:', e.detail.id);
145
+ });
146
+
147
+ // Listen for mark-all-read
148
+ nc.addEventListener('notification-read-all', () => {
149
+ console.log('All notifications marked as read');
150
+ });
151
+
152
+ // Programmatically mark all as read
153
+ nc.markAllAsRead();
249
154
  ```
250
155
 
251
156
  ### Custom Icons
252
157
 
253
- Override the default type-based icon with a custom emoji or text using the `icon` property.
254
-
255
- ```html
256
- <snice-notification-center id="nc"></snice-notification-center>
257
-
258
- <script type="module">
259
- import 'snice/components/notification-center/snice-notification-center';
158
+ Override the default type-based icon with a custom emoji or text using the `icon` property on each notification item.
260
159
 
261
- const nc = document.getElementById('nc');
262
- nc.notifications = [
263
- { id: '1', title: 'New follower', message: 'Alex started following you', timestamp: 'Just now', icon: '👤' },
264
- { id: '2', title: 'Achievement unlocked', message: 'You completed 100 tasks', timestamp: '5 min ago', icon: '🏆' },
265
- { id: '3', title: 'Reminder', message: 'Team standup in 15 minutes', timestamp: '10 min ago', icon: '' }
266
- ];
267
- </script>
160
+ ```typescript
161
+ nc.notifications = [
162
+ { id: '1', title: 'New follower', message: 'Alex started following you', timestamp: 'Just now', icon: '\u{1F464}' },
163
+ { id: '2', title: 'Achievement unlocked', message: 'You completed 100 tasks', timestamp: '5 min ago', icon: '\u{1F3C6}' },
164
+ { id: '3', title: 'Reminder', message: 'Team standup in 15 minutes', timestamp: '10 min ago', icon: '\u{23F0}' }
165
+ ];
268
166
  ```
269
167
 
270
- ## Types
168
+ ## Accessibility
271
169
 
272
- ### NotificationItem
170
+ - The bell icon is keyboard-focusable and opens the dropdown panel on click or Enter/Space
171
+ - The unread count badge is visible for sighted users
172
+ - Notification items in the dropdown are interactive and clickable
173
+ - The dismiss button is accessible for keyboard navigation
174
+ - The "Mark all as read" action is available in the panel header
175
+ - Unread notifications are visually distinguished with a highlighted background
176
+
177
+ ## Data Types
273
178
 
274
179
  ```typescript
275
180
  interface NotificationItem {
@@ -282,12 +187,3 @@ interface NotificationItem {
282
187
  type?: 'info' | 'success' | 'warning' | 'error'; // Notification type (determines default icon)
283
188
  }
284
189
  ```
285
-
286
- ## Accessibility
287
-
288
- - The bell icon is keyboard-focusable and opens the dropdown panel on click or Enter/Space
289
- - The unread count badge is visible for sighted users; the count is communicated via the badge element
290
- - Notification items in the dropdown are interactive and clickable
291
- - The dismiss button is accessible for keyboard navigation
292
- - The "Mark all as read" action is available as a link at the top of the panel
293
- - Unread notifications are visually distinguished with a highlighted background