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,22 +1,18 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/date-time-picker.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/date-time-picker.md -->
2
2
 
3
3
  # Date Time Picker
4
4
  `<snice-date-time-picker>`
5
5
 
6
- Combined date and time picker with calendar and scrollable time selectors.
6
+ Combined date and time picker with calendar and scrollable time selectors. Form-associated custom element.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/date-time-picker/snice-date-time-picker';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-date-time-picker.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Events](#events)
12
+ - [CSS Parts](#css-parts)
13
+ - [Basic Usage](#basic-usage)
14
+ - [Examples](#examples)
15
+ - [Accessibility](#accessibility)
20
16
 
21
17
  ## Properties
22
18
 
@@ -92,6 +88,12 @@ import 'snice/components/date-time-picker/snice-date-time-picker';
92
88
  <snice-date-time-picker label="Appointment"></snice-date-time-picker>
93
89
  ```
94
90
 
91
+ **CDN**
92
+ ```html
93
+ <script src="snice-runtime.min.js"></script>
94
+ <script src="snice-date-time-picker.min.js"></script>
95
+ ```
96
+
95
97
  ## Examples
96
98
 
97
99
  ### With Initial Value
@@ -192,6 +194,8 @@ Use `helper-text` and `error-text` for guidance or validation.
192
194
 
193
195
  ### Disabled and Readonly
194
196
 
197
+ Use `disabled` or `readonly` to prevent user interaction.
198
+
195
199
  ```html
196
200
  <snice-date-time-picker disabled value="2024-12-25T14:30" label="Disabled"></snice-date-time-picker>
197
201
  <snice-date-time-picker readonly value="2024-12-25T14:30" label="Readonly"></snice-date-time-picker>
@@ -211,10 +215,6 @@ Use `name` and `required` for native form participation.
211
215
 
212
216
  Listen for changes using the `datetime-change` event.
213
217
 
214
- ```html
215
- <snice-date-time-picker id="dtp" label="Pick date & time"></snice-date-time-picker>
216
- ```
217
-
218
218
  ```typescript
219
219
  dtp.addEventListener('datetime-change', (e) => {
220
220
  console.log('ISO:', e.detail.iso);
@@ -225,20 +225,17 @@ dtp.addEventListener('datetime-change', (e) => {
225
225
 
226
226
  ### Form Validation
227
227
 
228
- The component supports the Constraint Validation API. Use `checkValidity()`, `reportValidity()`, and `setCustomValidity()` for custom form validation.
229
-
230
- ```html
231
- <form>
232
- <snice-date-time-picker name="appointment" required label="Appointment"></snice-date-time-picker>
233
- <button type="submit">Submit</button>
234
- </form>
235
- ```
228
+ The component supports the Constraint Validation API.
236
229
 
237
230
  ```typescript
238
231
  picker.setCustomValidity('Please select a future date and time');
239
232
  picker.reportValidity();
240
233
  ```
241
234
 
242
- ## Responsive Behavior
235
+ ## Accessibility
243
236
 
244
- On screens smaller than 480px, the panel stacks the calendar and time selectors vertically instead of side-by-side.
237
+ - Form-associated custom element with `ElementInternals`
238
+ - Calendar popup uses `popover="manual"` for proper layering
239
+ - Supports `aria-invalid` when in invalid state
240
+ - Required fields show visual indicator on the label
241
+ - On screens smaller than 480px, the panel stacks vertically
@@ -1,8 +1,9 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/diff.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/diff.md -->
2
2
 
3
3
  # Diff Component
4
+ `<snice-diff>`
4
5
 
5
- The diff component displays a text diff between two strings with unified or side-by-side (split) views, line numbers, word-level highlighting, collapsible unchanged sections, and addition/deletion statistics.
6
+ Text diff viewer with unified and split (side-by-side) modes, line numbers, word-level highlighting, collapsible unchanged sections, and addition/deletion statistics.
6
7
 
7
8
  ## Table of Contents
8
9
  - [Properties](#properties)
@@ -58,13 +59,11 @@ interface DiffHunk {
58
59
 
59
60
  ## CSS Parts
60
61
 
61
- Style internal elements from outside the shadow DOM using `::part()`.
62
-
63
- | Part | Element | Description |
64
- |------|---------|-------------|
65
- | `base` | `<div>` | Outer diff container |
66
- | `header` | `<div>` | Header with addition/deletion stats and mode toggle buttons |
67
- | `content` | `<div>` | Diff content area containing the diff table(s) |
62
+ | Part | Description |
63
+ |------|-------------|
64
+ | `base` | Outer diff container |
65
+ | `header` | Header with addition/deletion stats and mode toggle buttons |
66
+ | `content` | Diff content area containing the diff table(s) |
68
67
 
69
68
  ```css
70
69
  snice-diff::part(base) {
@@ -81,12 +80,18 @@ snice-diff::part(header) {
81
80
 
82
81
  ## Basic Usage
83
82
 
83
+ ```typescript
84
+ import 'snice/components/diff/snice-diff';
85
+ ```
86
+
84
87
  ```html
85
88
  <snice-diff old-text="hello world" new-text="hello there"></snice-diff>
86
89
  ```
87
90
 
88
- ```typescript
89
- import 'snice/components/diff/snice-diff';
91
+ **CDN**
92
+ ```html
93
+ <script src="snice-runtime.min.js"></script>
94
+ <script src="snice-diff.min.js"></script>
90
95
  ```
91
96
 
92
97
  ## Examples
@@ -193,9 +198,9 @@ When comparing large files, unchanged sections beyond the `context-lines` thresh
193
198
 
194
199
  ## Accessibility
195
200
 
196
- - **Dark mode support**: Automatically adapts colors for `[data-theme="dark"]` and `prefers-color-scheme: dark`
197
- - **Line numbers**: Provide clear reference points for discussing specific changes
198
- - **Color coding**: Added lines are highlighted with a green background, removed lines with red, providing clear visual distinction
199
- - **Word-level diffs**: Within changed lines, the specific words that differ are highlighted for precision
200
- - **Collapsible sections**: Large unchanged regions are collapsed to reduce noise and can be expanded on demand
201
- - **Stats header**: The +N/-N summary provides an immediate overview of the change scope
201
+ - Dark mode support via `[data-theme="dark"]` and `prefers-color-scheme: dark`
202
+ - Line numbers provide clear reference points for discussing specific changes
203
+ - Color coding: added lines highlighted green, removed lines red
204
+ - Word-level diffs highlight the specific words that differ within changed lines
205
+ - Collapsible sections reduce noise; click to expand
206
+ - Stats header provides an immediate +N/-N overview of change scope
@@ -1,22 +1,16 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/divider.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/divider.md -->
2
2
 
3
3
  # Divider
4
4
  `<snice-divider>`
5
5
 
6
6
  Separator line with optional text label.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/divider/snice-divider';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-divider.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [CSS Custom Properties](#css-custom-properties)
11
+ - [CSS Parts](#css-parts)
12
+ - [Basic Usage](#basic-usage)
13
+ - [Examples](#examples)
20
14
 
21
15
  ## Properties
22
16
 
@@ -43,13 +37,11 @@ import 'snice/components/divider/snice-divider';
43
37
 
44
38
  ## CSS Parts
45
39
 
46
- Style internal elements from outside the shadow DOM using `::part()`.
47
-
48
- | Part | Element | Description |
49
- |------|---------|-------------|
50
- | `base` | `<div>` | Outer divider container |
51
- | `line` | `<div>` | The divider line(s) |
52
- | `text` | `<span>` | Optional text label |
40
+ | Part | Description |
41
+ |------|-------------|
42
+ | `base` | Outer divider container |
43
+ | `line` | The divider line(s) |
44
+ | `text` | Optional text label |
53
45
 
54
46
  ```css
55
47
  snice-divider::part(line) {
@@ -72,6 +64,12 @@ import 'snice/components/divider/snice-divider';
72
64
  <snice-divider></snice-divider>
73
65
  ```
74
66
 
67
+ **CDN**
68
+ ```html
69
+ <script src="snice-runtime.min.js"></script>
70
+ <script src="snice-divider.min.js"></script>
71
+ ```
72
+
75
73
  ## Examples
76
74
 
77
75
  ### Variants
@@ -1,82 +1,65 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/doc.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/doc.md -->
2
2
 
3
- # snice-doc
3
+ # Doc
4
+ `<snice-doc>`
4
5
 
5
6
  A simple WYSIWYG document editor component with formatting toolbar and content insertion capabilities.
6
7
 
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [CSS Custom Properties](#css-custom-properties)
12
+ - [CSS Parts](#css-parts)
13
+ - [Basic Usage](#basic-usage)
14
+ - [Examples](#examples)
15
+ - [Keyboard Navigation](#keyboard-navigation)
16
+ - [Accessibility](#accessibility)
17
+
7
18
  ## Properties
8
19
 
9
- | Property | Attribute | Type | Default | Description |
10
- | ----------------- | ------------------ | --------- | -------------------- | ------------------------------------------------ |
11
- | `placeholder` | `placeholder` | `string` | `"Start typing..."` | Placeholder text when empty |
12
- | `readonly` | `readonly` | `boolean` | `false` | Whether the editor is readonly |
13
- | `icons` | `icons` | `string` | `"default"` | Icon set: `"default"`, `"material"`, `"fontawesome"` |
20
+ | Property | Attribute | Type | Default | Description |
21
+ |----------|-----------|------|---------|-------------|
22
+ | `placeholder` | `placeholder` | `string` | `"Start typing..."` | Placeholder text when empty |
23
+ | `readonly` | `readonly` | `boolean` | `false` | Whether the editor is readonly |
24
+ | `icons` | `icons` | `'default' \| 'material' \| 'fontawesome'` | `'default'` | Toolbar icon set |
14
25
 
15
26
  ## Methods
16
27
 
17
- ### `getHTML(): string`
18
-
19
- Get the current HTML content of the editor.
20
-
21
- ```javascript
22
- const html = editor.getHTML();
23
- ```
24
-
25
- ### `setHTML(html: string): void`
26
-
27
- Set the HTML content of the editor.
28
-
29
- ```javascript
30
- editor.setHTML(`
31
- <h1>Welcome!</h1>
32
- <p>This is a <b>simple</b> document editor.</p>
33
- `);
34
- ```
35
-
36
- ### `getText(): string`
37
-
38
- Get the document content as plain text.
39
-
40
- ```javascript
41
- const text = editor.getText();
42
- ```
43
-
44
- ### `getMarkdown(): string`
45
-
46
- Get the document content converted to Markdown. Supports headings, bold, italic, strikethrough, links, images, lists, tables, horizontal rules, and inline code.
47
-
48
- ```javascript
49
- const md = editor.getMarkdown();
50
- ```
51
-
52
- ### `downloadAs(format: 'html' | 'markdown' | 'text', filename?: string): void`
53
-
54
- Download the document in the specified format. If no filename is provided, defaults to `document.html`, `document.md`, or `document.txt`.
55
-
56
- ```javascript
57
- editor.downloadAs('markdown', 'my-document.md');
58
- editor.downloadAs('html');
59
- editor.downloadAs('text', 'notes.txt');
60
- ```
61
-
62
- ### `clear(): void`
63
-
64
- Clear all content and reset to an empty paragraph.
65
-
66
- ```javascript
67
- editor.clear();
68
- ```
28
+ | Method | Arguments | Description |
29
+ |--------|-----------|-------------|
30
+ | `getHTML()` | -- | Returns the current HTML content |
31
+ | `setHTML()` | `html: string` | Sets the HTML content |
32
+ | `getText()` | -- | Returns the content as plain text |
33
+ | `getMarkdown()` | -- | Returns the content converted to Markdown |
34
+ | `downloadAs()` | `format: 'html' \| 'markdown' \| 'text', filename?: string` | Downloads the document in the specified format |
35
+ | `clear()` | -- | Clears all content and resets to empty paragraph |
36
+
37
+ ## CSS Custom Properties
38
+
39
+ | Property | Description |
40
+ |----------|-------------|
41
+ | `--snice-doc-font-family` | Editor font family |
42
+ | `--snice-doc-font-size` | Editor font size |
43
+ | `--snice-doc-text-color` | Text color |
44
+ | `--snice-doc-background` | Editor background |
45
+ | `--snice-doc-muted-color` | Muted text color |
46
+ | `--snice-doc-placeholder-color` | Placeholder text color |
47
+ | `--snice-doc-primary-color` | Primary accent color |
48
+ | `--snice-doc-link-color` | Link color |
49
+ | `--snice-doc-inline-code-background` | Inline code background |
50
+ | `--snice-doc-toolbar-background` | Toolbar background |
51
+ | `--snice-doc-border` | Border color |
52
+ | `--snice-doc-hover-background` | Hover state background |
53
+ | `--snice-doc-sidebar-background` | Sidebar background |
69
54
 
70
55
  ## CSS Parts
71
56
 
72
- Style internal elements from outside the shadow DOM using `::part()`.
73
-
74
- | Part | Element | Description |
75
- |------|---------|-------------|
76
- | `base` | `<div>` | The outer document wrapper |
77
- | `editor` | `<div>` | The editable content area |
78
- | `toolbar` | `<div>` | The formatting toolbar |
79
- | `icon` | `<span>` | Toolbar icon element |
57
+ | Part | Description |
58
+ |------|-------------|
59
+ | `base` | The outer document wrapper |
60
+ | `editor` | The editable content area |
61
+ | `toolbar` | The formatting toolbar |
62
+ | `icon` | Toolbar icon element |
80
63
 
81
64
  ```css
82
65
  snice-doc::part(base) {
@@ -97,22 +80,28 @@ snice-doc::part(editor) {
97
80
 
98
81
  ## Basic Usage
99
82
 
100
- ```html
101
- <snice-doc id="editor"></snice-doc>
83
+ ```typescript
84
+ import 'snice/components/doc/snice-doc';
102
85
  ```
103
86
 
104
- ```typescript
105
- import 'snice';
87
+ ```html
88
+ <snice-doc id="editor"></snice-doc>
106
89
 
107
- // Set initial content
108
- editor.setHTML('<h1>Welcome</h1><p>Start editing...</p>');
90
+ <script>
91
+ editor.setHTML('<h1>Welcome</h1><p>Start editing...</p>');
92
+ const html = editor.getHTML();
93
+ </script>
94
+ ```
109
95
 
110
- // Get content
111
- const html = editor.getHTML();
112
- console.log(html);
96
+ **CDN**
97
+ ```html
98
+ <script src="snice-runtime.min.js"></script>
99
+ <script src="snice-doc.min.js"></script>
113
100
  ```
114
101
 
115
- ## Toolbar Features
102
+ ## Examples
103
+
104
+ ### Toolbar Features
116
105
 
117
106
  The toolbar includes:
118
107
 
@@ -121,17 +110,17 @@ The toolbar includes:
121
110
  - **U** - Underline text (Ctrl/Cmd+U)
122
111
  - **S** - Strikethrough text
123
112
  - **H1, H2, H3, P** - Heading formats and paragraph
124
- - **• / 1.** - Bulleted and numbered lists
125
- - **🔗** - Insert link
126
- - **🖼** - Insert image
127
- - **📊** - Insert table
128
- - **―** - Insert divider
129
- - **⬇** - Download menu (HTML, Markdown, Plain Text)
130
-
131
- ## Examples
113
+ - **Bullet / Number** - Bulleted and numbered lists
114
+ - **Link** - Insert link
115
+ - **Image** - Insert image
116
+ - **Table** - Insert table
117
+ - **Divider** - Insert horizontal rule
118
+ - **Download** - Download menu (HTML, Markdown, Plain Text)
132
119
 
133
120
  ### Export and Download
134
121
 
122
+ Use `downloadAs()` to save the document in different formats.
123
+
135
124
  ```html
136
125
  <snice-doc id="editor"></snice-doc>
137
126
  <button id="save-md">Save as Markdown</button>
@@ -148,14 +137,33 @@ saveHtml.addEventListener('click', () => {
148
137
  });
149
138
  ```
150
139
 
151
- ### Material Icons
140
+ ### Icon Sets
141
+
142
+ Use the `icons` attribute to switch toolbar icon sets.
143
+
144
+ **Default (text/emoji)**
145
+ ```html
146
+ <snice-doc></snice-doc>
147
+ ```
152
148
 
149
+ **Material Symbols** - requires loading the font in your document:
153
150
  ```html
151
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined">
154
152
  <snice-doc icons="material"></snice-doc>
155
153
  ```
156
154
 
155
+ **Font Awesome** - requires loading the Font Awesome stylesheet:
156
+ ```html
157
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
158
+ <snice-doc icons="fontawesome"></snice-doc>
159
+ ```
160
+
161
+ Fonts cascade from light DOM into the shadow DOM automatically.
162
+
157
163
  ### Readonly Document Viewer
158
164
 
165
+ Set `readonly` to display documents without editing capabilities.
166
+
159
167
  ```html
160
168
  <snice-doc readonly></snice-doc>
161
169
  ```
@@ -169,127 +177,27 @@ viewer.setHTML(`
169
177
 
170
178
  ### Save and Load Content
171
179
 
172
- ```html
173
- <snice-doc id="editor"></snice-doc>
174
- <button id="save">Save</button>
175
- <button id="load">Load</button>
176
- ```
180
+ Use `getHTML()` and `setHTML()` to persist content.
177
181
 
178
182
  ```typescript
179
- save.addEventListener('click', () => {
180
- localStorage.setItem('document', editor.getHTML());
181
- });
182
-
183
- load.addEventListener('click', () => {
184
- const html = localStorage.getItem('document');
185
- if (html) editor.setHTML(html);
186
- });
187
- ```
188
-
189
- ## Features
190
-
191
- - **WYSIWYG editing** - Direct HTML content editing
192
- - **Formatting toolbar** - Bold, italic, underline, strikethrough, headings, lists
193
- - **Content insertion** - Links, images, tables, dividers
194
- - **Download/Export** - Save as HTML, Markdown, or Plain Text
195
- - **Icon sets** - Default text labels, Material Icons, or Font Awesome
196
- - **Paste image support** - Paste images directly from clipboard
197
- - **Keyboard shortcuts** - Ctrl/Cmd+B for bold, Ctrl/Cmd+I for italic, Ctrl/Cmd+U for underline
198
- - **Readonly mode** - Display documents without editing capabilities
199
- - **Dark mode** - Automatic dark mode via prefers-color-scheme
200
- - **Customizable styling** - CSS custom properties for theming
201
-
202
- ## Icon Sets
203
-
204
- The `icons` property controls which icon set the toolbar uses:
205
-
206
- ### Default (text/emoji)
207
-
208
- ```html
209
- <snice-doc></snice-doc>
210
- ```
211
-
212
- Uses text labels (B, I, U, H1, etc.) and emoji for action buttons.
213
-
214
- ### Material Symbols
215
-
216
- ```html
217
- <!-- Load the font in your document -->
218
- <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined">
183
+ // Save
184
+ localStorage.setItem('document', editor.getHTML());
219
185
 
220
- <snice-doc icons="material"></snice-doc>
221
- ```
222
-
223
- Uses [Material Symbols Outlined](https://fonts.google.com/icons). You must load the font stylesheet in your document — the font cascades from light DOM into the shadow DOM automatically.
224
-
225
- ### Font Awesome
226
-
227
- ```html
228
- <!-- Load the font in your document -->
229
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
230
-
231
- <snice-doc icons="fontawesome"></snice-doc>
186
+ // Load
187
+ const html = localStorage.getItem('document');
188
+ if (html) editor.setHTML(html);
232
189
  ```
233
190
 
234
- Uses [Font Awesome 6](https://fontawesome.com/icons) solid icons. You must load the Font Awesome stylesheet in your document.
235
-
236
- ## Keyboard Shortcuts
191
+ ## Keyboard Navigation
237
192
 
238
193
  - **Ctrl/Cmd+B** - Toggle bold
239
194
  - **Ctrl/Cmd+I** - Toggle italic
240
195
  - **Ctrl/Cmd+U** - Toggle underline
241
196
 
242
- ## Styling
243
-
244
- The component can be styled using CSS custom properties:
245
-
246
- ```css
247
- snice-doc {
248
- /* Colors */
249
- --snice-doc-text-color: #333;
250
- --snice-doc-background: #fff;
251
- --snice-doc-muted-color: #999;
252
- --snice-doc-placeholder-color: #999;
253
- --snice-doc-primary-color: #0969da;
254
- --snice-doc-link-color: #0969da;
255
-
256
- /* Code */
257
- --snice-doc-inline-code-background: rgba(175, 184, 193, 0.2);
258
-
259
- /* Toolbar */
260
- --snice-doc-toolbar-background: #f6f8fa;
261
-
262
- /* Borders */
263
- --snice-doc-border: #e1e4e8;
264
- --snice-doc-hover-background: #e8eaed;
265
-
266
- /* Sidebar */
267
- --snice-doc-sidebar-background: #f6f8fa;
268
- }
269
- ```
270
-
271
- Dark mode is supported automatically via `prefers-color-scheme: dark`.
272
-
273
197
  ## Accessibility
274
198
 
275
- - Supports keyboard navigation
276
- - Uses contentEditable for native text editing
199
+ - Uses `contentEditable` for native text editing behavior
277
200
  - Semantic HTML output
278
-
279
- ## Browser Support
280
-
281
- Works in all modern browsers that support:
282
- - Custom Elements v1
283
- - Shadow DOM
284
- - contentEditable
285
- - ES2020+
286
-
287
- ## TypeScript
288
-
289
- Full TypeScript support:
290
-
291
- ```typescript
292
- const html = editor.getHTML();
293
- const markdown = editor.getMarkdown();
294
- editor.downloadAs('markdown', 'export.md');
295
- ```
201
+ - Keyboard shortcuts for formatting
202
+ - Dark mode support via `prefers-color-scheme: dark`
203
+ - Paste images directly from clipboard