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,4 +1,4 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/menu.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/menu.md -->
2
2
 
3
3
  # Menu
4
4
  `<snice-menu>`
@@ -6,33 +6,25 @@
6
6
  A dropdown menu with composable items, dividers, icons, and keyboard shortcut hints.
7
7
 
8
8
  ## Table of Contents
9
- - [Menu Properties](#menu-properties)
10
- - [Menu Item Properties](#menu-item-properties)
9
+ - [Components](#components)
10
+ - [Properties](#properties)
11
11
  - [Methods](#methods)
12
12
  - [Events](#events)
13
- - [Menu Slots](#menu-slots)
14
- - [Menu Item Slots](#menu-item-slots)
13
+ - [Slots](#slots)
15
14
  - [CSS Parts](#css-parts)
16
15
  - [CSS Custom Properties](#css-custom-properties)
17
16
  - [Basic Usage](#basic-usage)
18
17
  - [Examples](#examples)
19
18
 
20
- ## Importing
19
+ ## Components
21
20
 
22
- **ESM (bundler)**
23
- ```typescript
24
- import 'snice/components/menu/snice-menu';
25
- import 'snice/components/menu/snice-menu-item';
26
- import 'snice/components/menu/snice-menu-divider';
27
- ```
21
+ - `<snice-menu>` - The dropdown menu container with trigger and panel
22
+ - `<snice-menu-item>` - Individual selectable menu item with icon and shortcut slots
23
+ - `<snice-menu-divider>` - Visual separator between items
28
24
 
29
- **CDN**
30
- ```html
31
- <script src="snice-runtime.min.js"></script>
32
- <script src="snice-menu.min.js"></script>
33
- ```
25
+ ## Properties
34
26
 
35
- ## Menu Properties
27
+ ### snice-menu
36
28
 
37
29
  | Property | Type | Default | Description |
38
30
  |----------|------|---------|-------------|
@@ -42,7 +34,7 @@ import 'snice/components/menu/snice-menu-divider';
42
34
  | `closeOnSelect` (attr: `close-on-select`) | `boolean` | `true` | Close on item selection |
43
35
  | `distance` | `number` | `4` | Distance from trigger to panel (px) |
44
36
 
45
- ## Menu Item Properties
37
+ ### snice-menu-item
46
38
 
47
39
  | Property | Type | Default | Description |
48
40
  |----------|------|---------|-------------|
@@ -64,9 +56,11 @@ import 'snice/components/menu/snice-menu-divider';
64
56
  |-------|--------|-------------|
65
57
  | `menu-open` | `{ menu: SniceMenuElement }` | Menu opened |
66
58
  | `menu-close` | `{ menu: SniceMenuElement }` | Menu closed |
67
- | `menu-item-select` | `{ item: SniceMenuItemElement, value: string }` | Item selected |
59
+ | `menu-item-select` | `{ item: SniceMenuItemElement, value: string }` | Item selected (bubbles from menu-item) |
60
+
61
+ ## Slots
68
62
 
69
- ## Menu Slots
63
+ ### snice-menu
70
64
 
71
65
  | Name | Description |
72
66
  |------|-------------|
@@ -75,7 +69,7 @@ import 'snice/components/menu/snice-menu-divider';
75
69
  | `image-right` | Image/icon after the trigger |
76
70
  | (default) | Menu items and dividers |
77
71
 
78
- ## Menu Item Slots
72
+ ### snice-menu-item
79
73
 
80
74
  | Name | Description |
81
75
  |------|-------------|
@@ -85,24 +79,30 @@ import 'snice/components/menu/snice-menu-divider';
85
79
 
86
80
  ## CSS Parts
87
81
 
88
- ### Menu Parts
82
+ ### snice-menu
89
83
 
90
- | Part | Description |
91
- |------|-------------|
92
- | `trigger` | The trigger wrapper element |
93
- | `image-left` | Left image container |
94
- | `image-right` | Right image container |
95
- | `panel` | The dropdown panel |
96
- | `content` | Panel content wrapper |
84
+ | Part | Element | Description |
85
+ |------|---------|-------------|
86
+ | `trigger` | `<div>` | The trigger wrapper element |
87
+ | `image-left` | `<span>` | Left image container |
88
+ | `image-right` | `<span>` | Right image container |
89
+ | `panel` | `<div>` | The dropdown panel |
90
+ | `content` | `<div>` | Panel content wrapper |
97
91
 
98
- ### Menu Item Parts
92
+ ### snice-menu-item
99
93
 
100
- | Part | Description |
101
- |------|-------------|
102
- | `item` | The menu item container |
103
- | `icon` | Icon wrapper |
104
- | `label` | Label wrapper |
105
- | `shortcut` | Keyboard shortcut wrapper |
94
+ | Part | Element | Description |
95
+ |------|---------|-------------|
96
+ | `item` | `<div>` | The menu item container |
97
+ | `icon` | `<span>` | Icon wrapper |
98
+ | `label` | `<span>` | Label wrapper |
99
+ | `shortcut` | `<span>` | Keyboard shortcut wrapper |
100
+
101
+ ### snice-menu-divider
102
+
103
+ | Part | Element | Description |
104
+ |------|---------|-------------|
105
+ | `divider` | `<div>` | The separator line |
106
106
 
107
107
  ## CSS Custom Properties
108
108
 
@@ -165,11 +165,6 @@ Use the `icon` and `shortcut` slots on menu items to add visual cues.
165
165
  Use the `placement` attribute to position the menu relative to its trigger.
166
166
 
167
167
  ```html
168
- <snice-menu placement="bottom-start">
169
- <button slot="trigger">Bottom Start</button>
170
- <snice-menu-item value="1">Option 1</snice-menu-item>
171
- </snice-menu>
172
-
173
168
  <snice-menu placement="bottom-end">
174
169
  <button slot="trigger">Bottom End</button>
175
170
  <snice-menu-item value="1">Option 1</snice-menu-item>
@@ -198,20 +193,18 @@ Set `trigger="hover"` to open the menu on mouse hover.
198
193
  Set `trigger="manual"` and use methods to control the menu programmatically.
199
194
 
200
195
  ```html
201
- <snice-menu trigger="manual">
196
+ <snice-menu trigger="manual" id="my-menu">
202
197
  <button slot="trigger">Manual</button>
203
198
  <snice-menu-item value="1">Option 1</snice-menu-item>
204
199
  </snice-menu>
205
200
  ```
206
201
 
207
202
  ```typescript
208
- menu.openMenu();
203
+ document.getElementById('my-menu').openMenu();
209
204
  ```
210
205
 
211
206
  ### Disabled Items
212
207
 
213
- Set the `disabled` attribute on individual menu items.
214
-
215
208
  ```html
216
209
  <snice-menu>
217
210
  <button slot="trigger">Actions</button>
@@ -1,6 +1,6 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/message-strip.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/message-strip.md -->
2
2
 
3
- # Message Strip Component
3
+ # Message Strip
4
4
  `<snice-message-strip>`
5
5
 
6
6
  An inline contextual message bar for displaying status messages within content flow. Unlike alerts (dismissable card), banners (full-width top), and toasts (floating), message strips are designed to sit inline within your content.
@@ -13,19 +13,7 @@ An inline contextual message bar for displaying status messages within content f
13
13
  - [CSS Parts](#css-parts)
14
14
  - [Basic Usage](#basic-usage)
15
15
  - [Examples](#examples)
16
-
17
- ## Importing
18
-
19
- **ESM (bundler)**
20
- ```typescript
21
- import 'snice/components/message-strip/snice-message-strip';
22
- ```
23
-
24
- **CDN**
25
- ```html
26
- <script src="snice-runtime.min.js"></script>
27
- <script src="snice-message-strip.min.js"></script>
28
- ```
16
+ - [Accessibility](#accessibility)
29
17
 
30
18
  ## Properties
31
19
 
@@ -33,15 +21,14 @@ import 'snice/components/message-strip/snice-message-strip';
33
21
  |----------|------|---------|-------------|
34
22
  | `variant` | `'info' \| 'success' \| 'warning' \| 'danger'` | `'info'` | Message type / color |
35
23
  | `dismissable` | `boolean` | `false` | Show dismiss button |
36
- | `icon` | `string` | `''` | Custom icon (set "none" to hide) |
24
+ | `icon` | `string` | `''` | Custom icon (set "none" to hide default icon) |
37
25
 
38
26
  ## Methods
39
27
 
40
- #### `show(): void`
41
- Show the message strip after it has been hidden.
42
-
43
- #### `hide(): void`
44
- Hide the message strip with a slide-out animation.
28
+ | Method | Arguments | Description |
29
+ |--------|-----------|-------------|
30
+ | `show()` | -- | Show the message strip after it has been hidden |
31
+ | `hide()` | -- | Hide the message strip with a slide-out animation |
45
32
 
46
33
  ## Events
47
34
 
@@ -58,11 +45,13 @@ Hide the message strip with a slide-out animation.
58
45
 
59
46
  ## CSS Parts
60
47
 
61
- | Part | Description |
62
- |------|-------------|
63
- | `icon` | The icon container |
64
- | `content` | The message content area |
65
- | `dismiss` | The dismiss button |
48
+ Style internal elements from outside the shadow DOM using `::part()`.
49
+
50
+ | Part | Element | Description |
51
+ |------|---------|-------------|
52
+ | `icon` | `<div>` | The icon container |
53
+ | `content` | `<div>` | The message content area |
54
+ | `dismiss` | `<button>` | The dismiss button |
66
55
 
67
56
  ```css
68
57
  snice-message-strip::part(content) {
@@ -144,12 +133,6 @@ Use the `icon` slot for custom icon elements.
144
133
 
145
134
  ### Programmatic Show/Hide
146
135
 
147
- ```html
148
- <snice-message-strip variant="success">
149
- Your changes have been saved.
150
- </snice-message-strip>
151
- ```
152
-
153
136
  ```typescript
154
137
  messageStrip.hide();
155
138
  messageStrip.show();
@@ -168,16 +151,6 @@ messageStrip.show();
168
151
  </form>
169
152
  ```
170
153
 
171
- ```typescript
172
- form.addEventListener('submit', (e) => {
173
- if (!form.checkValidity()) {
174
- e.preventDefault();
175
- errorStrip.style.display = '';
176
- errorStrip.show();
177
- }
178
- });
179
- ```
180
-
181
154
  ### Stacked Messages
182
155
 
183
156
  ```html
@@ -200,12 +173,3 @@ form.addEventListener('submit', (e) => {
200
173
  - Dismiss button has `aria-label="Dismiss"`
201
174
  - Default variant icons provide visual context clues
202
175
  - Supports both light and dark color schemes
203
-
204
- ## When to Use Which
205
-
206
- | Component | Use Case |
207
- |-----------|----------|
208
- | **Message Strip** | Inline contextual feedback within content |
209
- | **Alert** | Prominent dismissable card-style notification |
210
- | **Banner** | Full-width message at the top of the page |
211
- | **Toast** | Floating temporary notification |
@@ -1,7 +1,6 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/metric-table.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/metric-table.md -->
2
2
 
3
3
  # Metric Table
4
-
5
4
  `<snice-metric-table>`
6
5
 
7
6
  A compact data table optimized for numeric and metric data with inline sparklines, color-coded values, and built-in sorting.
@@ -12,28 +11,16 @@ A compact data table optimized for numeric and metric data with inline sparkline
12
11
  - [CSS Parts](#css-parts)
13
12
  - [Basic Usage](#basic-usage)
14
13
  - [Examples](#examples)
15
-
16
- ## Importing
17
-
18
- **ESM (bundler)**
19
- ```typescript
20
- import 'snice/components/metric-table/snice-metric-table';
21
- ```
22
-
23
- **CDN**
24
- ```html
25
- <script src="snice-runtime.min.js"></script>
26
- <script src="snice-metric-table.min.js"></script>
27
- ```
14
+ - [Accessibility](#accessibility)
28
15
 
29
16
  ## Properties
30
17
 
31
18
  | Property | Type | Default | Description |
32
19
  |----------|------|---------|-------------|
33
- | `columns` | `MetricColumn[]` | `[]` | Column definitions |
34
- | `data` | `Record<string, any>[]` | `[]` | Row data objects |
35
- | `sortBy` (attr: `sort-by`) | `string` | `''` | Column key to sort by |
36
- | `sortDirection` (attr: `sort-direction`) | `'asc' \| 'desc'` | `'desc'` | Sort direction |
20
+ | `columns` | `MetricColumn[]` | `[]` | Column definitions (set via JavaScript) |
21
+ | `data` | `Record<string, any>[]` | `[]` | Row data objects (set via JavaScript) |
22
+ | `sortBy` | `string` | `''` | Column key to sort by |
23
+ | `sortDirection` | `'asc' \| 'desc'` | `'desc'` | Sort direction |
37
24
 
38
25
  ### MetricColumn Interface
39
26
 
@@ -56,11 +43,13 @@ interface MetricColumn {
56
43
 
57
44
  ## CSS Parts
58
45
 
59
- | Part | Description |
60
- |------|-------------|
61
- | `base` | Root container |
62
- | `table` | The table element |
63
- | `row` | Individual table row |
46
+ Style internal elements from outside the shadow DOM using `::part()`.
47
+
48
+ | Part | Element | Description |
49
+ |------|---------|-------------|
50
+ | `base` | `<div>` | Root container |
51
+ | `table` | `<table>` | The table element |
52
+ | `row` | `<tr>` | Individual table row |
64
53
 
65
54
  ```css
66
55
  snice-metric-table::part(row) {
@@ -100,55 +89,49 @@ import 'snice/components/metric-table/snice-metric-table';
100
89
 
101
90
  Define column types to control formatting. Numeric types (`number`, `percent`, `currency`) are right-aligned and color-coded.
102
91
 
103
- ```html
104
- <script>
105
- el.columns = [
106
- { key: 'name', label: 'Metric', type: 'text' },
107
- { key: 'value', label: 'Value', type: 'number' },
108
- { key: 'change', label: 'Change', type: 'percent' },
109
- { key: 'revenue', label: 'Revenue', type: 'currency' }
110
- ];
111
- </script>
92
+ ```javascript
93
+ el.columns = [
94
+ { key: 'name', label: 'Metric', type: 'text' },
95
+ { key: 'value', label: 'Value', type: 'number' },
96
+ { key: 'change', label: 'Change', type: 'percent' },
97
+ { key: 'revenue', label: 'Revenue', type: 'currency' }
98
+ ];
112
99
  ```
113
100
 
114
101
  ### Sparklines
115
102
 
116
103
  Set `sparkline: true` on a column to render array data as inline SVG sparklines. Sparklines are green when trending up and red when trending down.
117
104
 
118
- ```html
119
- <script>
120
- el.columns = [
121
- { key: 'name', label: 'Metric', type: 'text' },
122
- { key: 'trend', label: 'Trend (7d)', sparkline: true }
123
- ];
124
- el.data = [
125
- { name: 'Revenue', trend: [100, 120, 115, 130, 125, 140, 150] },
126
- { name: 'Churn', trend: [5, 6, 7, 8, 7, 8, 9] }
127
- ];
128
- </script>
105
+ ```javascript
106
+ el.columns = [
107
+ { key: 'name', label: 'Metric', type: 'text' },
108
+ { key: 'trend', label: 'Trend (7d)', sparkline: true }
109
+ ];
110
+ el.data = [
111
+ { name: 'Revenue', trend: [100, 120, 115, 130, 125, 140, 150] },
112
+ { name: 'Churn', trend: [5, 6, 7, 8, 7, 8, 9] }
113
+ ];
129
114
  ```
130
115
 
131
116
  ### Color-Coded Values
132
117
 
133
118
  Positive numeric values are displayed in green, negative values in red. This applies automatically to `number`, `percent`, and `currency` column types.
134
119
 
135
- ```html
136
- <script>
137
- el.columns = [
138
- { key: 'metric', label: 'Metric', type: 'text' },
139
- { key: 'change', label: 'Change', type: 'percent' }
140
- ];
141
- el.data = [
142
- { metric: 'Revenue', change: 12.3 }, // Green
143
- { metric: 'Churn', change: -2.5 }, // Red
144
- { metric: 'Retention', change: 0 } // Default color
145
- ];
146
- </script>
120
+ ```javascript
121
+ el.columns = [
122
+ { key: 'metric', label: 'Metric', type: 'text' },
123
+ { key: 'change', label: 'Change', type: 'percent' }
124
+ ];
125
+ el.data = [
126
+ { metric: 'Revenue', change: 12.3 }, // Green
127
+ { metric: 'Churn', change: -2.5 }, // Red
128
+ { metric: 'Retention', change: 0 } // Default color
129
+ ];
147
130
  ```
148
131
 
149
132
  ### Sorting
150
133
 
151
- Click column headers to sort. The first click sorts descending, subsequent clicks toggle direction. The active sort column shows a directional indicator.
134
+ Click column headers to sort. The first click sorts descending, subsequent clicks toggle direction.
152
135
 
153
136
  ```html
154
137
  <snice-metric-table id="sorted" sort-by="value" sort-direction="desc"></snice-metric-table>
@@ -164,27 +147,21 @@ Click column headers to sort. The first click sorts descending, subsequent click
164
147
 
165
148
  Use the `format` property on currency columns to specify the currency code (default: `USD`).
166
149
 
167
- ```html
168
- <script>
169
- el.columns = [
170
- { key: 'name', label: 'Product', type: 'text' },
171
- { key: 'price', label: 'Price (EUR)', type: 'currency', format: 'EUR' }
172
- ];
173
- </script>
150
+ ```javascript
151
+ el.columns = [
152
+ { key: 'name', label: 'Product', type: 'text' },
153
+ { key: 'price', label: 'Price (EUR)', type: 'currency', format: 'EUR' }
154
+ ];
174
155
  ```
175
156
 
176
157
  ### Row Clicks
177
158
 
178
159
  Listen for `row-click` events to handle row interactions.
179
160
 
180
- ```html
181
- <snice-metric-table id="clickable"></snice-metric-table>
182
-
183
- <script>
184
- document.getElementById('clickable').addEventListener('row-click', e => {
185
- console.log('Row:', e.detail.row, 'Index:', e.detail.index);
186
- });
187
- </script>
161
+ ```javascript
162
+ document.getElementById('clickable').addEventListener('row-click', e => {
163
+ console.log('Row:', e.detail.row, 'Index:', e.detail.index);
164
+ });
188
165
  ```
189
166
 
190
167
  ## Accessibility
@@ -193,3 +170,4 @@ Listen for `row-click` events to handle row interactions.
193
170
  - Rows are keyboard accessible with `tabindex="0"`
194
171
  - Press Enter or Space to activate a row
195
172
  - Sort icons provide visual indication of sort state
173
+ - Null/undefined values are shown as an em-dash
@@ -1,22 +1,20 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/modal.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/modal.md -->
2
2
 
3
3
  # Modal
4
4
  `<snice-modal>`
5
5
 
6
6
  A dialog overlay with focus trapping, backdrop dismiss, and keyboard navigation.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/modal/snice-modal';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-modal.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Events](#events)
12
+ - [Slots](#slots)
13
+ - [CSS Parts](#css-parts)
14
+ - [Basic Usage](#basic-usage)
15
+ - [Examples](#examples)
16
+ - [Keyboard Navigation](#keyboard-navigation)
17
+ - [Accessibility](#accessibility)
20
18
 
21
19
  ## Properties
22
20
 
@@ -136,38 +134,23 @@ Set `no-backdrop-dismiss` to prevent closing when clicking outside.
136
134
  </snice-modal>
137
135
  ```
138
136
 
139
- ### Prevent Escape Dismiss
140
-
141
- Set `no-escape-dismiss` to prevent closing with the Escape key.
142
-
143
- ```html
144
- <snice-modal no-escape-dismiss label="Confirmation Required">
145
- <div slot="header"><h2>Confirm Action</h2></div>
146
- <p>Pressing Escape won't close this modal.</p>
147
- <div slot="footer">
148
- <button onclick="this.closest('snice-modal').close()">Confirm</button>
149
- </div>
150
- </snice-modal>
151
- ```
152
-
153
137
  ### Confirmation Dialog
154
138
 
155
139
  ```html
156
- <button>Delete Item</button>
140
+ <button id="deleteBtn">Delete Item</button>
157
141
 
158
- <snice-modal size="small" label="Confirm Delete">
142
+ <snice-modal id="confirmModal" size="small" label="Confirm Delete">
159
143
  <div slot="header"><h2>Confirm Delete</h2></div>
160
144
  <p>Are you sure? This action cannot be undone.</p>
161
145
  <div slot="footer">
162
- <button>Cancel</button>
163
- <button>Delete</button>
146
+ <button onclick="this.closest('snice-modal').close()">Cancel</button>
147
+ <button id="confirmBtn">Delete</button>
164
148
  </div>
165
149
  </snice-modal>
166
150
  ```
167
151
 
168
152
  ```typescript
169
153
  deleteBtn.addEventListener('click', () => modal.show());
170
- cancelBtn.addEventListener('click', () => modal.close());
171
154
  confirmBtn.addEventListener('click', () => {
172
155
  console.log('Item deleted');
173
156
  modal.close();
@@ -177,8 +160,6 @@ confirmBtn.addEventListener('click', () => {
177
160
  ### Form in Modal
178
161
 
179
162
  ```html
180
- <button>Edit Profile</button>
181
-
182
163
  <snice-modal label="Edit Profile">
183
164
  <div slot="header"><h2>Edit Profile</h2></div>
184
165
  <form style="display:flex;flex-direction:column;gap:1rem;">
@@ -192,15 +173,6 @@ confirmBtn.addEventListener('click', () => {
192
173
  </snice-modal>
193
174
  ```
194
175
 
195
- ```typescript
196
- editBtn.addEventListener('click', () => modal.show());
197
- profileForm.addEventListener('submit', (e) => {
198
- e.preventDefault();
199
- console.log('Saved:', Object.fromEntries(new FormData(e.target)));
200
- modal.close();
201
- });
202
- ```
203
-
204
176
  ### Programmatic Control
205
177
 
206
178
  ```typescript
@@ -210,3 +182,20 @@ modal.close(); // Close
210
182
  modal.addEventListener('modal-open', () => console.log('Opened'));
211
183
  modal.addEventListener('modal-close', () => console.log('Closed'));
212
184
  ```
185
+
186
+ ## Keyboard Navigation
187
+
188
+ | Key | Action |
189
+ |-----|--------|
190
+ | Escape | Close the modal (unless `no-escape-dismiss` is set) |
191
+ | Tab | Cycle through focusable elements within the modal |
192
+ | Shift+Tab | Cycle backwards through focusable elements |
193
+
194
+ ## Accessibility
195
+
196
+ - Uses `role="dialog"` with `aria-modal="true"` and `aria-label`
197
+ - Focus is trapped within the modal by default (disable with `no-focus-trap`)
198
+ - First focusable element receives focus on open
199
+ - Previous focus is restored on close
200
+ - Body scroll is locked while modal is open
201
+ - Close button has `aria-label="Close modal"`