snice 4.28.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 (618) 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 +1 -1
  43. package/dist/cdn/badge/snice-badge.min.js +1 -1
  44. package/dist/cdn/banner/snice-banner.js +1 -1
  45. package/dist/cdn/banner/snice-banner.min.js +1 -1
  46. package/dist/cdn/binpack/README.md +27 -0
  47. package/dist/cdn/binpack/snice-binpack.js +1037 -0
  48. package/dist/cdn/binpack/snice-binpack.js.map +1 -0
  49. package/dist/cdn/binpack/snice-binpack.min.js +13 -0
  50. package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
  51. package/dist/cdn/book/snice-book.js +1 -1
  52. package/dist/cdn/book/snice-book.min.js +1 -1
  53. package/dist/cdn/booking/snice-booking.js +1 -1
  54. package/dist/cdn/booking/snice-booking.min.js +1 -1
  55. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  56. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  57. package/dist/cdn/button/README.md +1 -1
  58. package/dist/cdn/button/snice-button.js +2 -2
  59. package/dist/cdn/button/snice-button.js.map +1 -1
  60. package/dist/cdn/button/snice-button.min.js +2 -2
  61. package/dist/cdn/button/snice-button.min.js.map +1 -1
  62. package/dist/cdn/calendar/snice-calendar.js +1 -1
  63. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  64. package/dist/cdn/camera/snice-camera.js +1 -1
  65. package/dist/cdn/camera/snice-camera.min.js +1 -1
  66. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  67. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  68. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  69. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  70. package/dist/cdn/card/snice-card.js +1 -1
  71. package/dist/cdn/card/snice-card.min.js +1 -1
  72. package/dist/cdn/carousel/snice-carousel.js +1 -1
  73. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  74. package/dist/cdn/cart/snice-cart.js +1 -1
  75. package/dist/cdn/cart/snice-cart.min.js +1 -1
  76. package/dist/cdn/chart/snice-chart.js +1 -1
  77. package/dist/cdn/chart/snice-chart.min.js +1 -1
  78. package/dist/cdn/chat/snice-chat.js +1 -1
  79. package/dist/cdn/chat/snice-chat.min.js +1 -1
  80. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  81. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  82. package/dist/cdn/chip/snice-chip.js +1 -1
  83. package/dist/cdn/chip/snice-chip.min.js +1 -1
  84. package/dist/cdn/code-block/snice-code-block.js +1 -1
  85. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  86. package/dist/cdn/color-display/snice-color-display.js +1 -1
  87. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  88. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  89. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  90. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  91. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  92. package/dist/cdn/comments/snice-comments.js +1 -1
  93. package/dist/cdn/comments/snice-comments.min.js +1 -1
  94. package/dist/cdn/countdown/snice-countdown.js +1 -1
  95. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  96. package/dist/cdn/cropper/snice-cropper.js +1 -1
  97. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  98. package/dist/cdn/data-card/snice-data-card.js +1 -1
  99. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  100. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  101. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  102. package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
  103. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
  104. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  105. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
  106. package/dist/cdn/diff/snice-diff.js +1 -1
  107. package/dist/cdn/diff/snice-diff.min.js +1 -1
  108. package/dist/cdn/divider/snice-divider.js +1 -1
  109. package/dist/cdn/divider/snice-divider.min.js +1 -1
  110. package/dist/cdn/doc/snice-doc.js +1 -1
  111. package/dist/cdn/doc/snice-doc.min.js +1 -1
  112. package/dist/cdn/draw/snice-draw.js +1 -1
  113. package/dist/cdn/draw/snice-draw.min.js +1 -1
  114. package/dist/cdn/drawer/snice-drawer.js +1 -1
  115. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  116. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  117. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  118. package/dist/cdn/estimate/snice-estimate.js +1 -1
  119. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  120. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  121. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  122. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  123. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  124. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  125. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  126. package/dist/cdn/flow/snice-flow.js +1 -1
  127. package/dist/cdn/flow/snice-flow.min.js +1 -1
  128. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  129. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  130. package/dist/cdn/funnel/snice-funnel.js +1 -1
  131. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  132. package/dist/cdn/gantt/snice-gantt.js +1 -1
  133. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  134. package/dist/cdn/gauge/snice-gauge.js +1 -1
  135. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  136. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  137. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  138. package/dist/cdn/image/snice-image.js +1 -1
  139. package/dist/cdn/image/snice-image.min.js +1 -1
  140. package/dist/cdn/input/snice-input.js +1 -1
  141. package/dist/cdn/input/snice-input.min.js +1 -1
  142. package/dist/cdn/invoice/snice-invoice.js +1 -1
  143. package/dist/cdn/invoice/snice-invoice.min.js +1 -1
  144. package/dist/cdn/kanban/snice-kanban.js +1 -1
  145. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  146. package/dist/cdn/key-value/snice-key-value.js +1 -1
  147. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  148. package/dist/cdn/kpi/snice-kpi.js +1 -1
  149. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  150. package/dist/cdn/layout/snice-layout.js +1 -1
  151. package/dist/cdn/layout/snice-layout.min.js +1 -1
  152. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  153. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  154. package/dist/cdn/link/snice-link.js +1 -1
  155. package/dist/cdn/link/snice-link.min.js +1 -1
  156. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  157. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  158. package/dist/cdn/list/snice-list.js +1 -1
  159. package/dist/cdn/list/snice-list.min.js +1 -1
  160. package/dist/cdn/location/snice-location.js +1 -1
  161. package/dist/cdn/location/snice-location.min.js +1 -1
  162. package/dist/cdn/login/README.md +2 -2
  163. package/dist/cdn/login/snice-login.js +2 -2
  164. package/dist/cdn/login/snice-login.js.map +1 -1
  165. package/dist/cdn/login/snice-login.min.js +2 -2
  166. package/dist/cdn/login/snice-login.min.js.map +1 -1
  167. package/dist/cdn/map/snice-map.js +1 -1
  168. package/dist/cdn/map/snice-map.min.js +1 -1
  169. package/dist/cdn/markdown/snice-markdown.js +1 -1
  170. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  171. package/dist/cdn/masonry/snice-masonry.js +1 -1
  172. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  173. package/dist/cdn/menu/snice-menu.js +1 -1
  174. package/dist/cdn/menu/snice-menu.min.js +1 -1
  175. package/dist/cdn/message-strip/snice-message-strip.js +1 -1
  176. package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
  177. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  178. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  179. package/dist/cdn/modal/snice-modal.js +1 -1
  180. package/dist/cdn/modal/snice-modal.min.js +1 -1
  181. package/dist/cdn/music-player/snice-music-player.js +1 -1
  182. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  183. package/dist/cdn/nav/snice-nav.js +1 -1
  184. package/dist/cdn/nav/snice-nav.min.js +1 -1
  185. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  186. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  187. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  188. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  189. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  190. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  191. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  192. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  193. package/dist/cdn/pagination/snice-pagination.js +1 -1
  194. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  195. package/dist/cdn/paint/snice-paint.js +1 -1
  196. package/dist/cdn/paint/snice-paint.min.js +1 -1
  197. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  198. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  199. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  200. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  201. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  202. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  203. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  204. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  205. package/dist/cdn/product-card/snice-product-card.js +1 -1
  206. package/dist/cdn/product-card/snice-product-card.min.js +1 -1
  207. package/dist/cdn/progress/snice-progress.js +1 -1
  208. package/dist/cdn/progress/snice-progress.min.js +1 -1
  209. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  210. package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
  211. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  212. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  213. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  214. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  215. package/dist/cdn/radio/snice-radio.js +1 -1
  216. package/dist/cdn/radio/snice-radio.min.js +1 -1
  217. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  218. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  219. package/dist/cdn/rating/snice-rating.js +1 -1
  220. package/dist/cdn/rating/snice-rating.min.js +1 -1
  221. package/dist/cdn/receipt/snice-receipt.js +1 -1
  222. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  223. package/dist/cdn/recipe/snice-recipe.js +1 -1
  224. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  225. package/dist/cdn/runtime/README.md +2 -2
  226. package/dist/cdn/runtime/snice-runtime.esm.js +73 -5
  227. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  228. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  229. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  230. package/dist/cdn/runtime/snice-runtime.js +73 -4
  231. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  232. package/dist/cdn/runtime/snice-runtime.min.js +7 -7
  233. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  234. package/dist/cdn/sankey/snice-sankey.js +1 -1
  235. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  236. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  237. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  238. package/dist/cdn/select/snice-select.js +1 -1
  239. package/dist/cdn/select/snice-select.min.js +1 -1
  240. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  241. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  242. package/dist/cdn/slider/snice-slider.js +1 -1
  243. package/dist/cdn/slider/snice-slider.min.js +1 -1
  244. package/dist/cdn/sortable/snice-sortable.js +1 -1
  245. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  246. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  247. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  248. package/dist/cdn/spinner/snice-spinner.js +1 -1
  249. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  250. package/dist/cdn/split-button/snice-split-button.js +1 -1
  251. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  252. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  253. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  254. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  255. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  256. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  257. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  258. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  259. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  260. package/dist/cdn/step-input/snice-step-input.js +1 -1
  261. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  262. package/dist/cdn/stepper/snice-stepper.js +1 -1
  263. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  264. package/dist/cdn/switch/snice-switch.js +1 -1
  265. package/dist/cdn/switch/snice-switch.min.js +1 -1
  266. package/dist/cdn/table/README.md +1 -1
  267. package/dist/cdn/table/snice-table.js +2 -2
  268. package/dist/cdn/table/snice-table.js.map +1 -1
  269. package/dist/cdn/table/snice-table.min.js +2 -2
  270. package/dist/cdn/table/snice-table.min.js.map +1 -1
  271. package/dist/cdn/tabs/snice-tabs.js +1 -1
  272. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  273. package/dist/cdn/tag/snice-tag.js +1 -1
  274. package/dist/cdn/tag/snice-tag.min.js +1 -1
  275. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  276. package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
  277. package/dist/cdn/terminal/snice-terminal.js +1 -1
  278. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  279. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  280. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  281. package/dist/cdn/textarea/snice-textarea.js +1 -1
  282. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  283. package/dist/cdn/time-picker/snice-time-picker.js +1 -1
  284. package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
  285. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  286. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  287. package/dist/cdn/timeline/snice-timeline.js +1 -1
  288. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  289. package/dist/cdn/timer/snice-timer.js +1 -1
  290. package/dist/cdn/timer/snice-timer.min.js +1 -1
  291. package/dist/cdn/toast/snice-toast.js +1 -1
  292. package/dist/cdn/toast/snice-toast.min.js +1 -1
  293. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  294. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  295. package/dist/cdn/tree/snice-tree.js +1 -1
  296. package/dist/cdn/tree/snice-tree.min.js +1 -1
  297. package/dist/cdn/treemap/snice-treemap.js +1 -1
  298. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  299. package/dist/cdn/user-card/snice-user-card.js +1 -1
  300. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  301. package/dist/cdn/video-player/snice-video-player.js +1 -1
  302. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  303. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  304. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  305. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  306. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  307. package/dist/cdn/weather/snice-weather.js +1 -1
  308. package/dist/cdn/weather/snice-weather.min.js +1 -1
  309. package/dist/cdn/work-order/snice-work-order.js +1 -1
  310. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  311. package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
  312. package/dist/components/action-bar/snice-action-bar.js +182 -0
  313. package/dist/components/action-bar/snice-action-bar.js.map +1 -0
  314. package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
  315. package/dist/components/binpack/snice-binpack.d.ts +82 -0
  316. package/dist/components/binpack/snice-binpack.js +970 -0
  317. package/dist/components/binpack/snice-binpack.js.map +1 -0
  318. package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
  319. package/dist/components/button/snice-button.js +1 -1
  320. package/dist/components/button/snice-button.js.map +1 -1
  321. package/dist/create-request-handler.d.ts +42 -0
  322. package/dist/index.cjs +70 -1
  323. package/dist/index.cjs.map +1 -1
  324. package/dist/index.d.ts +2 -0
  325. package/dist/index.esm.js +70 -2
  326. package/dist/index.esm.js.map +1 -1
  327. package/dist/index.iife.js +70 -1
  328. package/dist/index.iife.js.map +1 -1
  329. package/dist/react/useRequestHandler.d.ts +56 -0
  330. package/dist/react/useRequestHandler.js +103 -0
  331. package/dist/react/useRequestHandler.js.map +1 -0
  332. package/dist/symbols.cjs +1 -1
  333. package/dist/symbols.esm.js +1 -1
  334. package/dist/transitions.cjs +1 -1
  335. package/dist/transitions.esm.js +1 -1
  336. package/docs/ai/DEVELOPMENT.md +1 -1
  337. package/docs/ai/components/accordion.md +46 -80
  338. package/docs/ai/components/action-bar.md +75 -0
  339. package/docs/ai/components/activity-feed.md +7 -7
  340. package/docs/ai/components/alert.md +26 -44
  341. package/docs/ai/components/app-tiles.md +34 -39
  342. package/docs/ai/components/approval-flow.md +1 -1
  343. package/docs/ai/components/audio-recorder.md +35 -67
  344. package/docs/ai/components/availability.md +13 -34
  345. package/docs/ai/components/avatar-group.md +26 -13
  346. package/docs/ai/components/avatar.md +52 -36
  347. package/docs/ai/components/badge.md +21 -32
  348. package/docs/ai/components/banner.md +21 -43
  349. package/docs/ai/components/binpack.md +89 -0
  350. package/docs/ai/components/book.md +25 -23
  351. package/docs/ai/components/booking.md +31 -36
  352. package/docs/ai/components/breadcrumbs.md +36 -11
  353. package/docs/ai/components/button.md +33 -44
  354. package/docs/ai/components/calendar.md +37 -70
  355. package/docs/ai/components/camera-annotate.md +31 -64
  356. package/docs/ai/components/camera.md +38 -120
  357. package/docs/ai/components/candlestick.md +32 -52
  358. package/docs/ai/components/card.md +20 -30
  359. package/docs/ai/components/carousel.md +32 -32
  360. package/docs/ai/components/cart.md +24 -29
  361. package/docs/ai/components/chart.md +29 -114
  362. package/docs/ai/components/chat.md +38 -75
  363. package/docs/ai/components/checkbox.md +22 -41
  364. package/docs/ai/components/chip.md +18 -54
  365. package/docs/ai/components/code-block.md +57 -178
  366. package/docs/ai/components/color-display.md +12 -32
  367. package/docs/ai/components/color-picker.md +17 -39
  368. package/docs/ai/components/command-palette.md +49 -71
  369. package/docs/ai/components/comments.md +55 -36
  370. package/docs/ai/components/countdown.md +28 -30
  371. package/docs/ai/components/cropper.md +33 -33
  372. package/docs/ai/components/data-card.md +20 -14
  373. package/docs/ai/components/date-picker.md +40 -47
  374. package/docs/ai/components/date-range-picker.md +31 -15
  375. package/docs/ai/components/date-time-picker.md +23 -46
  376. package/docs/ai/components/diff.md +30 -31
  377. package/docs/ai/components/divider.md +17 -47
  378. package/docs/ai/components/doc.md +43 -68
  379. package/docs/ai/components/draw.md +35 -87
  380. package/docs/ai/components/drawer.md +48 -77
  381. package/docs/ai/components/empty-state.md +10 -44
  382. package/docs/ai/components/estimate.md +33 -58
  383. package/docs/ai/components/file-gallery.md +48 -100
  384. package/docs/ai/components/file-upload.md +17 -53
  385. package/docs/ai/components/flip-card.md +31 -23
  386. package/docs/ai/components/flow.md +37 -65
  387. package/docs/ai/components/form-builder.md +35 -75
  388. package/docs/ai/components/form-layout.md +10 -20
  389. package/docs/ai/components/funnel.md +33 -48
  390. package/docs/ai/components/gantt.md +27 -23
  391. package/docs/ai/components/gauge.md +16 -17
  392. package/docs/ai/components/heatmap.md +21 -21
  393. package/docs/ai/components/image.md +7 -13
  394. package/docs/ai/components/input.md +38 -70
  395. package/docs/ai/components/invoice.md +35 -36
  396. package/docs/ai/components/kanban.md +32 -61
  397. package/docs/ai/components/key-value.md +32 -16
  398. package/docs/ai/components/kpi.md +38 -73
  399. package/docs/ai/components/layout.md +29 -23
  400. package/docs/ai/components/leaderboard.md +28 -37
  401. package/docs/ai/components/link-preview.md +12 -18
  402. package/docs/ai/components/link.md +10 -7
  403. package/docs/ai/components/list.md +21 -5
  404. package/docs/ai/components/location.md +21 -25
  405. package/docs/ai/components/login.md +14 -9
  406. package/docs/ai/components/map.md +27 -33
  407. package/docs/ai/components/markdown.md +20 -24
  408. package/docs/ai/components/masonry.md +10 -14
  409. package/docs/ai/components/mentions.md +26 -12
  410. package/docs/ai/components/menu.md +54 -52
  411. package/docs/ai/components/message-strip.md +20 -20
  412. package/docs/ai/components/metric-table.md +14 -21
  413. package/docs/ai/components/modal.md +27 -18
  414. package/docs/ai/components/music-player.md +49 -41
  415. package/docs/ai/components/nav.md +34 -31
  416. package/docs/ai/components/network-graph.md +27 -42
  417. package/docs/ai/components/notification-center.md +31 -33
  418. package/docs/ai/components/order-tracker.md +36 -27
  419. package/docs/ai/components/org-chart.md +36 -31
  420. package/docs/ai/components/pagination.md +34 -26
  421. package/docs/ai/components/paint.md +53 -91
  422. package/docs/ai/components/pdf-viewer.md +35 -36
  423. package/docs/ai/components/permission-matrix.md +26 -31
  424. package/docs/ai/components/podcast-player.md +64 -70
  425. package/docs/ai/components/pricing-table.md +37 -48
  426. package/docs/ai/components/product-card.md +58 -41
  427. package/docs/ai/components/progress-ring.md +20 -24
  428. package/docs/ai/components/progress.md +28 -45
  429. package/docs/ai/components/qr-code.md +25 -27
  430. package/docs/ai/components/qr-reader.md +20 -23
  431. package/docs/ai/components/radio.md +17 -15
  432. package/docs/ai/components/range-slider.md +22 -11
  433. package/docs/ai/components/rating.md +29 -33
  434. package/docs/ai/components/receipt.md +50 -127
  435. package/docs/ai/components/recipe.md +44 -42
  436. package/docs/ai/components/sankey.md +21 -30
  437. package/docs/ai/components/scheduler.md +29 -41
  438. package/docs/ai/components/segmented-control.md +11 -15
  439. package/docs/ai/components/select.md +58 -102
  440. package/docs/ai/components/skeleton.md +16 -30
  441. package/docs/ai/components/slider.md +26 -20
  442. package/docs/ai/components/sortable.md +25 -27
  443. package/docs/ai/components/sparkline.md +21 -17
  444. package/docs/ai/components/spinner.md +9 -5
  445. package/docs/ai/components/split-button.md +10 -13
  446. package/docs/ai/components/split-pane.md +19 -14
  447. package/docs/ai/components/spotlight.md +31 -26
  448. package/docs/ai/components/spreadsheet.md +51 -97
  449. package/docs/ai/components/stat-group.md +9 -19
  450. package/docs/ai/components/step-input.md +17 -15
  451. package/docs/ai/components/stepper.md +14 -15
  452. package/docs/ai/components/switch.md +15 -9
  453. package/docs/ai/components/table.md +24 -84
  454. package/docs/ai/components/tabs.md +18 -10
  455. package/docs/ai/components/tag-input.md +18 -29
  456. package/docs/ai/components/tag.md +10 -22
  457. package/docs/ai/components/terminal.md +9 -9
  458. package/docs/ai/components/testimonial.md +9 -19
  459. package/docs/ai/components/textarea.md +15 -16
  460. package/docs/ai/components/theme.md +3 -3
  461. package/docs/ai/components/time-picker.md +30 -49
  462. package/docs/ai/components/time-range-picker.md +16 -15
  463. package/docs/ai/components/timeline.md +5 -4
  464. package/docs/ai/components/timer.md +8 -8
  465. package/docs/ai/components/toast.md +24 -18
  466. package/docs/ai/components/tooltip.md +11 -22
  467. package/docs/ai/components/tree.md +9 -9
  468. package/docs/ai/components/treemap.md +14 -13
  469. package/docs/ai/components/user-card.md +21 -27
  470. package/docs/ai/components/video-player.md +35 -52
  471. package/docs/ai/components/virtual-scroller.md +1 -1
  472. package/docs/ai/components/waterfall.md +17 -16
  473. package/docs/ai/components/weather.md +19 -34
  474. package/docs/ai/components/work-order.md +58 -134
  475. package/docs/ai/patterns.md +63 -0
  476. package/docs/components/accordion.md +72 -151
  477. package/docs/components/action-bar.md +185 -0
  478. package/docs/components/activity-feed.md +9 -14
  479. package/docs/components/alert.md +17 -109
  480. package/docs/components/app-tiles.md +58 -43
  481. package/docs/components/approval-flow.md +8 -14
  482. package/docs/components/audio-recorder.md +45 -51
  483. package/docs/components/availability.md +30 -45
  484. package/docs/components/avatar-group.md +34 -14
  485. package/docs/components/avatar.md +20 -55
  486. package/docs/components/badge.md +53 -470
  487. package/docs/components/banner.md +44 -30
  488. package/docs/components/binpack.md +208 -0
  489. package/docs/components/book.md +78 -57
  490. package/docs/components/booking.md +35 -87
  491. package/docs/components/breadcrumbs.md +74 -448
  492. package/docs/components/button.md +72 -603
  493. package/docs/components/calendar.md +77 -261
  494. package/docs/components/camera-annotate.md +44 -96
  495. package/docs/components/camera.md +94 -333
  496. package/docs/components/candlestick.md +79 -116
  497. package/docs/components/card.md +51 -689
  498. package/docs/components/carousel.md +29 -76
  499. package/docs/components/cart.md +44 -136
  500. package/docs/components/chart.md +95 -438
  501. package/docs/components/chat.md +175 -439
  502. package/docs/components/checkbox.md +52 -609
  503. package/docs/components/chip.md +45 -574
  504. package/docs/components/code-block.md +157 -421
  505. package/docs/components/color-display.md +45 -54
  506. package/docs/components/color-picker.md +103 -36
  507. package/docs/components/command-palette.md +98 -92
  508. package/docs/components/comments.md +16 -10
  509. package/docs/components/countdown.md +15 -20
  510. package/docs/components/cropper.md +14 -16
  511. package/docs/components/data-card.md +16 -15
  512. package/docs/components/date-picker.md +45 -25
  513. package/docs/components/date-range-picker.md +140 -87
  514. package/docs/components/date-time-picker.md +25 -28
  515. package/docs/components/diff.md +22 -17
  516. package/docs/components/divider.md +18 -20
  517. package/docs/components/doc.md +105 -197
  518. package/docs/components/draw.md +117 -223
  519. package/docs/components/drawer.md +113 -478
  520. package/docs/components/empty-state.md +13 -29
  521. package/docs/components/estimate.md +58 -118
  522. package/docs/components/file-gallery.md +123 -495
  523. package/docs/components/file-upload.md +36 -123
  524. package/docs/components/flip-card.md +30 -34
  525. package/docs/components/flow.md +74 -89
  526. package/docs/components/form-builder.md +59 -86
  527. package/docs/components/form-layout.md +21 -31
  528. package/docs/components/funnel.md +21 -22
  529. package/docs/components/gantt.md +5 -5
  530. package/docs/components/gauge.md +5 -23
  531. package/docs/components/heatmap.md +13 -55
  532. package/docs/components/image.md +28 -32
  533. package/docs/components/input.md +25 -14
  534. package/docs/components/invoice.md +34 -33
  535. package/docs/components/kanban.md +99 -394
  536. package/docs/components/key-value.md +22 -12
  537. package/docs/components/kpi.md +41 -112
  538. package/docs/components/layout.md +7 -13
  539. package/docs/components/leaderboard.md +52 -76
  540. package/docs/components/link-preview.md +20 -16
  541. package/docs/components/link.md +22 -19
  542. package/docs/components/list.md +44 -26
  543. package/docs/components/location.md +9 -13
  544. package/docs/components/login.md +42 -36
  545. package/docs/components/map.md +24 -46
  546. package/docs/components/markdown.md +14 -25
  547. package/docs/components/masonry.md +15 -13
  548. package/docs/components/mentions.md +36 -25
  549. package/docs/components/menu.md +39 -46
  550. package/docs/components/message-strip.md +15 -51
  551. package/docs/components/metric-table.md +50 -72
  552. package/docs/components/modal.md +32 -43
  553. package/docs/components/music-player.md +41 -49
  554. package/docs/components/nav.md +23 -13
  555. package/docs/components/network-graph.md +14 -13
  556. package/docs/components/notification-center.md +68 -172
  557. package/docs/components/order-tracker.md +72 -117
  558. package/docs/components/org-chart.md +58 -207
  559. package/docs/components/pagination.md +67 -89
  560. package/docs/components/paint.md +86 -172
  561. package/docs/components/pdf-viewer.md +46 -151
  562. package/docs/components/permission-matrix.md +61 -112
  563. package/docs/components/podcast-player.md +41 -119
  564. package/docs/components/pricing-table.md +104 -147
  565. package/docs/components/product-card.md +94 -197
  566. package/docs/components/progress-ring.md +29 -32
  567. package/docs/components/progress.md +30 -61
  568. package/docs/components/qr-code.md +53 -61
  569. package/docs/components/qr-reader.md +53 -42
  570. package/docs/components/radio.md +42 -40
  571. package/docs/components/range-slider.md +41 -30
  572. package/docs/components/rating.md +50 -84
  573. package/docs/components/receipt.md +91 -129
  574. package/docs/components/recipe.md +107 -216
  575. package/docs/components/sankey.md +47 -83
  576. package/docs/components/scheduler.md +81 -184
  577. package/docs/components/segmented-control.md +48 -40
  578. package/docs/components/select.md +107 -129
  579. package/docs/components/skeleton.md +33 -47
  580. package/docs/components/slider.md +49 -53
  581. package/docs/components/sortable.md +43 -186
  582. package/docs/components/sparkline.md +26 -25
  583. package/docs/components/spinner.md +32 -37
  584. package/docs/components/split-button.md +43 -23
  585. package/docs/components/split-pane.md +41 -58
  586. package/docs/components/spotlight.md +53 -145
  587. package/docs/components/spreadsheet.md +84 -307
  588. package/docs/components/stat-group.md +27 -61
  589. package/docs/components/step-input.md +44 -41
  590. package/docs/components/stepper.md +55 -89
  591. package/docs/components/switch.md +39 -39
  592. package/docs/components/table.md +27 -32
  593. package/docs/components/tabs.md +36 -27
  594. package/docs/components/tag-input.md +50 -176
  595. package/docs/components/tag.md +12 -50
  596. package/docs/components/terminal.md +32 -37
  597. package/docs/components/testimonial.md +24 -81
  598. package/docs/components/textarea.md +9 -14
  599. package/docs/components/theme.md +10 -23
  600. package/docs/components/time-picker.md +48 -72
  601. package/docs/components/time-range-picker.md +22 -41
  602. package/docs/components/timeline.md +7 -14
  603. package/docs/components/timer.md +16 -32
  604. package/docs/components/toast.md +19 -45
  605. package/docs/components/tooltip.md +13 -115
  606. package/docs/components/tree.md +2 -19
  607. package/docs/components/treemap.md +19 -43
  608. package/docs/components/user-card.md +13 -22
  609. package/docs/components/video-player.md +53 -227
  610. package/docs/components/virtual-scroller.md +11 -44
  611. package/docs/components/waterfall.md +58 -137
  612. package/docs/components/weather.md +94 -153
  613. package/docs/components/work-order.md +56 -143
  614. package/docs/plans/2026-03-09-action-bar-design.md +104 -0
  615. package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
  616. package/docs/plans/2026-03-10-react-integration-design.md +166 -0
  617. package/docs/request-response.md +77 -0
  618. package/package.json +1 -1
@@ -11,75 +11,39 @@ size: 'small'|'medium'|'large' = 'medium';
11
11
  removable: boolean = false;
12
12
  selected: boolean = false;
13
13
  disabled: boolean = false;
14
- icon: string = '';
15
- avatar: string = '';
14
+ icon: string = ''; // URL, image file, emoji. Use slot for icon fonts.
15
+ avatar: string = ''; // Avatar image URL (takes precedence over icon slot)
16
16
  ```
17
17
 
18
+ ## Events
19
+
20
+ - `chip-click` -> `{ label: string, selected: boolean }`
21
+ - `chip-remove` -> `{ label: string }`
22
+
18
23
  ## Slots
19
24
 
20
25
  - `icon` - Custom icon content (overrides `icon` property; `avatar` takes precedence)
21
26
 
22
- ## Events
27
+ ## CSS Parts
23
28
 
24
- - `chip-click` - Chip clicked. Detail: `{ label, selected }`
25
- - `chip-remove` - Remove button clicked. Detail: `{ label }`
29
+ - `icon` - Icon wrapper element
26
30
 
27
- ## Usage
31
+ ## Basic Usage
28
32
 
29
33
  ```html
30
- <!-- Basic -->
31
34
  <snice-chip label="Tag"></snice-chip>
32
-
33
- <!-- Variants -->
34
- <snice-chip label="Default" variant="default"></snice-chip>
35
- <snice-chip label="Primary" variant="primary"></snice-chip>
36
- <snice-chip label="Success" variant="success"></snice-chip>
37
- <snice-chip label="Warning" variant="warning"></snice-chip>
38
- <snice-chip label="Error" variant="error"></snice-chip>
39
- <snice-chip label="Info" variant="info"></snice-chip>
40
-
41
- <!-- Removable -->
42
- <snice-chip label="Removable" removable></snice-chip>
43
-
44
- <!-- Selected state -->
45
- <snice-chip label="Selected" selected></snice-chip>
46
-
47
- <!-- Disabled -->
48
- <snice-chip label="Disabled" disabled></snice-chip>
49
-
50
- <!-- ⚠️ icon="star" renders as PLAIN TEXT. Use the icon slot for icon fonts. -->
51
-
52
- <!-- Icon SLOT — for Material Symbols, Font Awesome, SVGs -->
53
- <snice-chip label="Tag">
54
- <span slot="icon" class="material-symbols-outlined">label</span>
55
- </snice-chip>
56
-
57
- <!-- Icon PROPERTY — for emoji, URLs, image files only -->
58
- <snice-chip label="Favorite" icon="★"></snice-chip>
59
- <snice-chip label="Home" icon="/icons/home.svg"></snice-chip>
60
-
61
- <!-- With avatar -->
62
- <snice-chip label="John Doe" avatar="/user.jpg"></snice-chip>
63
-
64
- <!-- Sizes -->
65
- <snice-chip label="Small" size="small"></snice-chip>
66
- <snice-chip label="Medium" size="medium"></snice-chip>
67
- <snice-chip label="Large" size="large"></snice-chip>
68
-
69
- <!-- Events -->
70
- <snice-chip label="Click me" removable></snice-chip>
71
35
  ```
72
36
 
73
37
  ```typescript
74
- chip.addEventListener('chip-click', (e) => console.log('Clicked', e.detail));
38
+ import 'snice/components/chip/snice-chip';
39
+
40
+ // icon="star" renders as PLAIN TEXT. Use the icon slot for icon fonts.
41
+ chip.addEventListener('chip-click', (e) => console.log(e.detail));
75
42
  chip.addEventListener('chip-remove', () => chip.remove());
76
43
  ```
77
44
 
78
- ## Features
45
+ ## Accessibility
79
46
 
80
- - 6 color variants
81
- - 3 sizes
82
- - Removable with X button
83
- - Selected state
84
- - Icon (URL, image files, emoji) or avatar. Use slot for icon fonts.
85
- - Click and remove events
47
+ - Enter/Space to activate
48
+ - aria-selected, aria-disabled
49
+ - Remove button has aria-label
@@ -1,224 +1,103 @@
1
1
  # snice-code-block
2
2
 
3
- Code display with syntax highlighting, line numbers, copy.
4
-
5
- ## Code Content
6
-
7
- Code can be provided via **slotted text content** (preferred) or the `code` property:
8
-
9
- ```html
10
- <!-- Slotted (preferred) -->
11
- <snice-code-block language="javascript">
12
- const x = 1;
13
- </snice-code-block>
14
-
15
- <!-- Property (programmatic) -->
16
- <snice-code-block id="cb"></snice-code-block>
17
- ```
18
-
19
- ```typescript
20
- cb.code = 'const x = 1;';
21
- ```
22
-
23
- Slotted content is hidden and re-rendered with highlighting in the shadow DOM. If both are provided, slotted content sets the `code` property on ready.
3
+ Code display with syntax highlighting, line numbers, copy, and grammar-based formatting.
24
4
 
25
5
  ## Properties
26
6
 
27
7
  ```typescript
28
- code: string = ''; // Set via slot or property (not recommended as attribute)
8
+ code: string = ''; // Set via slot or property
29
9
  language: 'javascript'|'typescript'|'html'|'css'|'json'|'python'|'bash'|'plaintext' = 'plaintext';
30
10
  grammar: GrammarDefinition | string | null = null; // Grammar object or URL to JSON
31
- showLineNumbers: boolean = false;
32
- startLine: number = 1;
33
- highlightLines: number[] = [];
11
+ showLineNumbers: boolean = false; // attribute: show-line-numbers
12
+ startLine: number = 1; // attribute: start-line
13
+ highlightLines: number[] = []; // attribute: highlight-lines
34
14
  copyable: boolean = true;
35
15
  filename: string = '';
36
- format: string = ''; // Formatter name from grammar (e.g. "pretty"), or any truthy string with setFormatter()
37
- theme: '' | 'dark' | 'light' = ''; // Force theme; empty = auto-detect from page/OS
16
+ format: string = ''; // Formatter name (e.g. "pretty"), or truthy string with setFormatter()
17
+ theme: '' | 'dark' | 'light' = ''; // Force theme; empty = auto-detect
18
+ fetchMode: 'native' | 'virtual' | 'event' = 'native'; // attribute: fetch-mode
38
19
  ```
39
20
 
40
- ## Fetch Mode
41
-
42
- ```typescript
43
- fetchMode: 'native' | 'virtual' | 'event' = 'native' // attribute: fetch-mode
44
- ```
45
-
46
- Controls how grammar JSON is loaded when `grammar` is a URL string.
21
+ ## Methods
47
22
 
48
- - **`native`** (default)`fetch(url).then(r => r.json())`. No external wiring needed.
49
- - **`virtual`** — Uses `@request/@respond` pattern (`snice/code-block/load-grammar`). Requires a `@respond` handler.
50
- - **`event`** — Dispatches `grammar-request` CustomEvent with `{ url, language, codeBlock }` detail. Listener calls `codeBlock.setGrammar()` to provide grammar.
23
+ - `copy()` - Copy code to clipboard
24
+ - `highlight()` - Trigger syntax highlighting
25
+ - `setHighlighter(fn)` - Set external highlighter
26
+ - `setFormatter(fn)` - Set formatter function
27
+ - `setGrammar(grammar)` - Set grammar object programmatically
51
28
 
52
- **Note:** If using `@respond('snice/code-block/load-grammar')`, add `fetch-mode="virtual"`. Default is `native`.
29
+ ## Events
53
30
 
54
- ### Native (default)
31
+ - `code-copy` -> `{ code, codeBlock }`
32
+ - `code-before-format` / `code-after-format` -> `{ code, language, codeBlock }`
33
+ - `code-before-highlight` / `code-after-highlight` -> `{ code, language, codeBlock }`
34
+ - `grammar-request` -> `{ url, language, codeBlock }` (only fetch-mode="event")
35
+ - `grammar-loaded` -> `{ grammar, url, language, codeBlock }`
55
36
 
56
- ```html
57
- <snice-code-block grammar="grammars/typescript.json" code="const x = 1"></snice-code-block>
58
- ```
37
+ ## Slots
59
38
 
60
- ### Virtual
39
+ - `(default)` - Code content as slotted text (auto-dedented)
61
40
 
62
- ```html
63
- <snice-code-block grammar="grammars/typescript.json" fetch-mode="virtual" code="const x = 1"></snice-code-block>
64
- ```
41
+ ## CSS Parts
65
42
 
66
- Requires `@respond('snice/code-block/load-grammar')` handler (controller or page).
43
+ - `container` - Outer wrapper
44
+ - `header` - Header bar (filename + copy button)
45
+ - `filename` - Filename display
46
+ - `copy-button` - Copy button
47
+ - `content` - Scrollable code area
48
+ - `pre` - Pre-formatted container
49
+ - `code` - Code element with tokens
67
50
 
68
- ### Event
51
+ ## Basic Usage
69
52
 
70
53
  ```html
71
- <snice-code-block grammar="grammars/typescript.json" fetch-mode="event" code="const x = 1"></snice-code-block>
72
- ```
73
-
74
- ```typescript
75
- cb.addEventListener('grammar-request', async (e) => {
76
- const grammar = await fetch(e.detail.url).then(r => r.json());
77
- e.detail.codeBlock.setGrammar(grammar);
78
- });
54
+ <snice-code-block language="javascript" grammar="grammars/typescript.json">
55
+ const x = 1;
56
+ </snice-code-block>
79
57
  ```
80
58
 
81
- Event detail type:
82
59
  ```typescript
83
- interface GrammarRequestDetail {
84
- url: string;
85
- language: CodeLanguage;
86
- codeBlock: SniceCodeBlockElement;
87
- }
60
+ import 'snice/components/code-block/snice-code-block';
61
+ cb.code = 'const x = 1;';
88
62
  ```
89
63
 
90
- ## Methods
91
-
92
- - `copy()` - Copy code to clipboard
93
- - `highlight()` - Manually trigger syntax highlighting
94
- - `setHighlighter(fn)` - Set external highlighter for this instance
95
- - `setFormatter(fn)` - Set formatter function for this instance
96
- - `setGrammar(grammar)` - Provide grammar object directly (used with `fetch-mode="event"`)
97
-
98
- ## Events
64
+ ## Fetch Mode
99
65
 
100
- - `code-copy` (detail: { code, codeBlock })
101
- - `code-before-format` (detail: { code, language, codeBlock })
102
- - `code-after-format` (detail: { code, language, codeBlock })
103
- - `code-before-highlight` (detail: { code, language, codeBlock })
104
- - `code-after-highlight` (detail: { code, language, codeBlock })
105
- - `grammar-request` (detail: { url, language, codeBlock }) — only dispatched when `fetch-mode="event"`
106
- - `grammar-loaded` (detail: { grammar, url, language, codeBlock }) — fired after grammar is successfully loaded (any fetch mode) or set via `setGrammar()`
66
+ - `native` (default) - fetch(url)
67
+ - `virtual` - @request/@respond pattern
68
+ - `event` - Dispatches `grammar-request`, listener calls `setGrammar()`
107
69
 
108
70
  ## Formatters
109
71
 
110
- Code formatters run as a pre-step before highlighting. Set `format` to a formatter name.
111
-
112
- ### Grammar-Based Formatters (Declarative)
72
+ Grammar-based: `format="pretty"` (grammars: json, typescript, css, snice)
113
73
 
114
- Grammars can include a `formatters` section with named rule sets. Use `format="name"` to select one:
115
-
116
- ```html
117
- <snice-code-block grammar="grammars/json.json" format="pretty" code='{"a":1}'></snice-code-block>
118
- ```
119
-
120
- Grammars with `"pretty"` formatters: `json.json`, `typescript.json`, `css.json`, `snice.json`.
121
-
122
- ```typescript
123
- interface FormatRules {
124
- tabSize?: number; // Indent width (default 2)
125
- useTabs?: boolean; // Tabs instead of spaces
126
- newlineAfter?: string; // Regex char class — newline after these chars
127
- newlineBefore?: string; // Regex char class — newline before these chars
128
- spaceAfter?: string; // Regex char class — space after
129
- spaceBefore?: string; // Regex char class — space before
130
- spaceAround?: string; // Regex char class — space both sides
131
- indent?: string; // Regex char class — increase indent
132
- dedent?: string; // Regex char class — decrease indent
133
- trimTrailing?: boolean; // Trim trailing whitespace (default true)
134
- collapseBlankLines?: number; // Max consecutive blank lines
135
- skipStrings?: boolean; // Skip rules inside strings (default true)
136
- skipComments?: boolean; // Skip rules inside comments (default true)
137
- }
138
- ```
139
-
140
- ### Imperative Formatters
141
-
142
- `setFormatter(fn)` overrides grammar-based formatters when both are present.
74
+ Imperative: `setFormatter(fn)` overrides grammar formatters
143
75
 
144
- ```typescript
145
- type FormatterFunction = (code: string, language: string) => string | Promise<string>;
146
- ```
147
-
148
- **`formatters/json.ts`** — JSON pretty-printer (zero-dependency):
149
76
  ```typescript
150
77
  import { createJsonFormatter } from 'snice/components/code-block/formatters/json';
151
78
  codeBlock.setFormatter(createJsonFormatter({ indent: 2 }));
152
79
  codeBlock.format = 'pretty';
153
80
  ```
154
81
 
155
- **`formatters/indent.ts`** Indent normalizer (zero-dependency):
156
- ```typescript
157
- import { createIndentFormatter } from 'snice/components/code-block/formatters/indent';
158
- codeBlock.setFormatter(createIndentFormatter({ tabSize: 2, useTabs: false }));
159
- codeBlock.format = 'pretty';
160
- ```
161
-
162
- **`formatters/prettier.ts`** — Prettier adapter:
163
- ```typescript
164
- import { setupPrettierFormatter } from 'snice/components/code-block/formatters/prettier';
165
- import * as prettier from 'prettier/standalone';
166
- import parserBabel from 'prettier/plugins/babel';
167
- codeBlock.setFormatter(setupPrettierFormatter(prettier, [parserBabel]));
168
- codeBlock.format = 'pretty';
169
- ```
82
+ ## Grammar Files
170
83
 
171
- ### Whitespace Handling
172
-
173
- Slotted content is automatically dedented — common leading indentation from HTML nesting is stripped while preserving relative indentation.
84
+ - `typescript.json` - TypeScript/JavaScript
85
+ - `html.json` - HTML/XML
86
+ - `css.json` - CSS/SCSS/Less
87
+ - `json.json` - JSON
88
+ - `python.json` - Python
89
+ - `bash.json` - Bash/Shell
90
+ - `snice.json` - Snice (TS + template highlighting)
174
91
 
175
92
  ## Theming
176
93
 
177
- Auto-follows `data-theme` attribute on page or OS `prefers-color-scheme`. Dark (One Dark) and light (One Light) built-in.
178
-
179
- - No attribute / `theme=""` → auto-detect from `[data-theme]` or OS preference
180
- - `theme="dark"` → force One Dark regardless of page theme
181
- - `theme="light"` → force One Light regardless of page theme
182
-
183
- Override individual colors: `--code-keyword-color`, `--code-function-color`, etc.
184
- Override structural colors: `--code-block-bg`, `--code-block-text`, `--code-block-header-bg`.
185
-
186
- ## Grammar System
187
-
188
- JSON-driven tokenizer with Monarch-inspired state machine. Grammars are **external JSON files**, not bundled in the component.
189
-
190
- ### Available Grammar Files
191
-
192
- Load from `components/code-block/grammars/` (or `dist/components/code-block/grammars/` in builds):
193
- - `typescript.json` — TypeScript/JavaScript
194
- - `html.json` — HTML/XML
195
- - `css.json` — CSS/SCSS/Less
196
- - `json.json` — JSON
197
- - `python.json` — Python
198
- - `bash.json` — Bash/Shell
199
- - `snice.json` — Snice (TypeScript + html``/css`` template highlighting)
200
-
201
- ### Highlighter API
202
-
203
- ```typescript
204
- import { highlightCode, tokenize, registerGrammar, unregisterGrammar, getGrammar } from 'snice/components/code-block/highlighter';
205
-
206
- highlightCode(code, grammarOrName); // → HTML string
207
- registerGrammar('myLang', grammar); // Register for name lookup
208
- ```
94
+ Auto-follows `data-theme` or OS `prefers-color-scheme`. Force with `theme="dark"|"light"`.
209
95
 
210
- ## Usage
96
+ Token colors: `--code-keyword-color`, `--code-function-color`, `--code-string-color`, etc.
97
+ Structural: `--code-block-bg`, `--code-block-text`, `--code-block-header-bg`.
211
98
 
212
- ```html
213
- <!-- Slotted content (preferred) -->
214
- <snice-code-block language="javascript" grammar="grammars/typescript.json" show-line-numbers filename="app.js">
215
- console.log('hello');
216
- </snice-code-block>
99
+ ## Accessibility
217
100
 
218
- <!-- Programmatic -->
219
- <snice-code-block language="javascript" grammar="grammars/typescript.json" show-line-numbers filename="app.js"></snice-code-block>
220
- ```
221
-
222
- ```typescript
223
- codeBlock.code = `console.log('hello');`;
224
- ```
101
+ - Auto theme detection (light/dark)
102
+ - Semantic pre/code elements
103
+ - Copy button
@@ -7,48 +7,28 @@ Displays colors with swatch and label.
7
7
  ```typescript
8
8
  value: string = '';
9
9
  format: 'hex'|'rgb'|'hsl' = 'hex';
10
- showSwatch: boolean = true; // attribute: show-swatch
11
- showLabel: boolean = true; // attribute: show-label
10
+ showSwatch: boolean = true; // attribute: show-swatch
11
+ showLabel: boolean = true; // attribute: show-label
12
12
  swatchSize: 'small'|'medium'|'large' = 'medium'; // attribute: swatch-size
13
13
  label: string = '';
14
14
  ```
15
15
 
16
- ## Usage
16
+ ## CSS Parts
17
+
18
+ - `container` - Outer container
19
+ - `swatch` - Color swatch element
20
+ - `label` - Color label text
21
+
22
+ ## Basic Usage
17
23
 
18
24
  ```html
19
- <!-- Basic -->
20
25
  <snice-color-display value="#3b82f6"></snice-color-display>
21
-
22
- <!-- Formats -->
23
- <snice-color-display value="#ff0000" format="hex"></snice-color-display>
24
26
  <snice-color-display value="#ff0000" format="rgb"></snice-color-display>
25
- <snice-color-display value="#ff0000" format="hsl"></snice-color-display>
26
-
27
- <!-- Sizes -->
28
- <snice-color-display value="#10b981" swatch-size="small"></snice-color-display>
29
- <snice-color-display value="#10b981" swatch-size="medium"></snice-color-display>
30
27
  <snice-color-display value="#10b981" swatch-size="large"></snice-color-display>
31
-
32
- <!-- Custom label -->
33
28
  <snice-color-display value="#ef4444" label="Error Red"></snice-color-display>
34
-
35
- <!-- Swatch only -->
36
29
  <snice-color-display value="#3b82f6" show-label="false"></snice-color-display>
37
-
38
- <!-- Label only -->
39
- <snice-color-display value="#3b82f6" show-swatch="false"></snice-color-display>
40
30
  ```
41
31
 
42
- ## CSS Parts
43
-
44
- - `container` - Outer container
45
- - `swatch` - Color swatch element
46
- - `label` - Color label text
47
-
48
- ## Features
49
-
50
- - Auto-converts hex to RGB/HSL
51
- - 3 swatch sizes (16px, 24px, 32px)
52
- - Custom labels supported
53
- - Swatch and label toggle
54
- - Monospace font for color values
32
+ ```typescript
33
+ import 'snice/components/color-display/snice-color-display';
34
+ ```
@@ -1,13 +1,13 @@
1
1
  # snice-color-picker
2
2
 
3
- Color picker with format conversion and presets.
3
+ Color picker with format conversion, presets, and form integration.
4
4
 
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
+ size: 'small'|'medium'|'large' = 'medium';
8
9
  value: string = '#000000';
9
10
  format: 'hex'|'rgb'|'hsl' = 'hex';
10
- size: 'small'|'medium'|'large' = 'medium';
11
11
  label: string = '';
12
12
  helperText: string = ''; // attribute: helper-text
13
13
  errorText: string = ''; // attribute: error-text
@@ -23,8 +23,15 @@ loading: boolean = false;
23
23
 
24
24
  ## Methods
25
25
 
26
- - `focus()` - Focus picker
27
- - `blur()` - Blur picker
26
+ - `focus()` - Focus picker input
27
+ - `blur()` - Remove focus
28
+
29
+ ## Events
30
+
31
+ - `color-picker-input` -> `{ value, colorPicker }` - During color adjustment
32
+ - `color-picker-change` -> `{ value, colorPicker }` - Color committed
33
+ - `color-picker-focus` -> `{ colorPicker }` - Input focused
34
+ - `color-picker-blur` -> `{ colorPicker }` - Input blurred
28
35
 
29
36
  ## CSS Parts
30
37
 
@@ -32,51 +39,22 @@ loading: boolean = false;
32
39
  - `error-text` - Error text element
33
40
  - `helper-text` - Helper text element
34
41
 
35
- ## Events
36
-
37
- - `color-picker-input` → `{ value, colorPicker }`
38
- - `color-picker-change` → `{ value, colorPicker }`
39
- - `color-picker-focus` → `{ colorPicker }`
40
- - `color-picker-blur` → `{ colorPicker }`
41
-
42
- ## Usage
42
+ ## Basic Usage
43
43
 
44
44
  ```html
45
- <!-- Basic -->
46
45
  <snice-color-picker label="Color" value="#ff0000"></snice-color-picker>
47
-
48
- <!-- Formats -->
49
- <snice-color-picker format="hex"></snice-color-picker>
50
- <snice-color-picker format="rgb"></snice-color-picker>
51
- <snice-color-picker format="hsl"></snice-color-picker>
52
-
53
- <!-- With presets -->
54
- <snice-color-picker show-presets></snice-color-picker>
55
-
56
- <!-- No input -->
57
- <snice-color-picker show-input="false"></snice-color-picker>
58
-
59
- <!-- Sizes -->
60
- <snice-color-picker size="small"></snice-color-picker>
61
- <snice-color-picker size="medium"></snice-color-picker>
62
- <snice-color-picker size="large"></snice-color-picker>
63
-
64
- <!-- Events -->
65
- <snice-color-picker></snice-color-picker>
66
46
  ```
67
47
 
68
48
  ```typescript
49
+ import 'snice/components/color-picker/snice-color-picker';
50
+
69
51
  picker.addEventListener('color-picker-change', (e) => {
70
52
  console.log('Color:', e.detail.value);
71
53
  });
72
54
  ```
73
55
 
74
- ## Features
56
+ ## Accessibility
75
57
 
76
58
  - Form-associated custom element
77
- - Native color picker integration
78
- - 3 color formats (hex, rgb, hsl)
79
- - Format conversion
80
- - Color presets
81
- - 3 sizes
82
- - Accessible
59
+ - Label association, error/helper text announced
60
+ - Keyboard accessible
@@ -1,6 +1,6 @@
1
1
  # snice-command-palette
2
2
 
3
- Searchable command palette overlay (K) for quick command access.
3
+ Searchable command palette overlay (Cmd+K / Ctrl+K) for quick command access.
4
4
 
5
5
  ## Properties
6
6
 
@@ -8,14 +8,14 @@ Searchable command palette overlay (⌘K) for quick command access.
8
8
  open: boolean = false;
9
9
  commands: CommandItem[] = [];
10
10
  placeholder: string = 'Type a command or search...';
11
- noResultsText: string = 'No results found';
12
- maxResults: number = 50;
13
- showRecentCommands: boolean = true;
14
- recentCommandsLimit: number = 5;
15
- caseSensitive: boolean = false;
11
+ noResultsText: string = 'No results found'; // attribute: no-results-text
12
+ maxResults: number = 50; // attribute: max-results
13
+ showRecentCommands: boolean = true; // attribute: show-recent-commands
14
+ recentCommandsLimit: number = 5; // attribute: recent-commands-limit
15
+ caseSensitive: boolean = false; // attribute: case-sensitive
16
16
  ```
17
17
 
18
- ## CommandItem Interface
18
+ ### CommandItem Interface
19
19
 
20
20
  ```typescript
21
21
  interface CommandItem {
@@ -38,71 +38,18 @@ interface CommandItem {
38
38
  - `close()` - Close palette
39
39
  - `toggle()` - Toggle visibility
40
40
  - `addCommand(command: CommandItem)` - Add command
41
- - `removeCommand(id: string)` - Remove command
42
- - `executeCommand(id: string)` - Execute by ID
43
- - `clearSearch()` - Clear search
44
- - `focus()` - Focus input
41
+ - `removeCommand(id: string)` - Remove command by ID
42
+ - `executeCommand(id: string)` - Execute command by ID
43
+ - `clearSearch()` - Clear search input
44
+ - `focus()` - Focus search input
45
45
 
46
46
  ## Events
47
47
 
48
- - `command-palette-open` - Opened (detail: { palette })
49
- - `command-palette-close` - Closed (detail: { palette })
50
- - `command-select` - Command selected (detail: { command, palette })
51
- - `command-execute` - Command executed (detail: { command, palette })
52
- - `command-search` - Search changed (detail: { query, results, palette })
53
-
54
- ## Usage
55
-
56
- ```html
57
- <!-- Basic -->
58
- <snice-command-palette></snice-command-palette>
59
- ```
60
-
61
- ```typescript
62
- palette.commands = [
63
- {
64
- id: 'new',
65
- label: 'New File',
66
- description: 'Create a new file',
67
- icon: '📄',
68
- shortcut: '⌘N',
69
- category: 'File',
70
- action: () => console.log('New file')
71
- },
72
- {
73
- id: 'save',
74
- label: 'Save',
75
- icon: '💾',
76
- shortcut: '⌘S',
77
- category: 'File',
78
- action: () => console.log('Saved')
79
- }
80
- ];
81
- ```
82
-
83
- Opens with Cmd+K or Ctrl+K.
84
-
85
- ```html
86
- <!-- Manual trigger -->
87
- <button onclick="palette.show()">Open</button>
88
- ```
89
-
90
- ```typescript
91
- // With async actions
92
- palette.commands = [{
93
- id: 'logout',
94
- label: 'Logout',
95
- action: async () => {
96
- await fetch('/api/logout', { method: 'POST' });
97
- location.href = '/login';
98
- }
99
- }];
100
-
101
- // Events
102
- palette.addEventListener('command-execute', (e) => {
103
- console.log('Executed:', e.detail.command.label);
104
- });
105
- ```
48
+ - `command-palette-open` -> `{ palette }` - Palette opened
49
+ - `command-palette-close` -> `{ palette }` - Palette closed
50
+ - `command-select` -> `{ command, palette }` - Command highlighted
51
+ - `command-execute` -> `{ command, palette }` - Command executed
52
+ - `command-search` -> `{ query, results, palette }` - Search changed
106
53
 
107
54
  ## CSS Parts
108
55
 
@@ -111,11 +58,42 @@ palette.addEventListener('command-execute', (e) => {
111
58
  - `input` - Search input element
112
59
  - `results` - Results list container
113
60
  - `empty` - Empty state message
114
- - `category` - Category header
61
+ - `category` - Category group header
115
62
  - `item` - Command item button
116
63
  - `item-icon` - Item icon wrapper
117
64
  - `item-icon-image` - Item icon image
118
65
  - `item-content` - Item label + description wrapper
119
66
  - `item-label` - Item label text
120
67
  - `item-description` - Item description text
121
- - `item-shortcut` - Item keyboard shortcut badge
68
+ - `item-shortcut` - Keyboard shortcut badge
69
+
70
+ ## Basic Usage
71
+
72
+ ```html
73
+ <snice-command-palette id="palette"></snice-command-palette>
74
+ ```
75
+
76
+ ```typescript
77
+ import 'snice/components/command-palette/snice-command-palette';
78
+
79
+ palette.commands = [
80
+ { id: 'new', label: 'New File', icon: '📄', shortcut: '⌘N', category: 'File', action: () => {} },
81
+ { id: 'save', label: 'Save', icon: '💾', shortcut: '⌘S', category: 'File', action: () => {} }
82
+ ];
83
+
84
+ palette.addEventListener('command-execute', (e) => console.log(e.detail.command.label));
85
+ ```
86
+
87
+ ## Keyboard Navigation
88
+
89
+ - `Cmd+K` / `Ctrl+K` - Toggle palette
90
+ - `Escape` - Close palette
91
+ - `Arrow Up` / `Arrow Down` - Navigate commands
92
+ - `Enter` - Execute active command
93
+
94
+ ## Accessibility
95
+
96
+ - Full keyboard navigation
97
+ - ARIA labels and roles
98
+ - Focus trap when open
99
+ - Screen reader announcements