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
@@ -9,16 +9,11 @@ variant: 'info'|'success'|'warning'|'error' = 'info';
9
9
  position: 'top'|'bottom' = 'top';
10
10
  message: string = '';
11
11
  dismissible: boolean = true;
12
- icon: string = '';
13
- actionText: string = '';
12
+ icon: string = ''; // emoji, URL, image file
13
+ actionText: string = ''; // attr: action-text
14
14
  open: boolean = false;
15
15
  ```
16
16
 
17
- ## Slots
18
-
19
- - `(default)` - Additional content after the message
20
- - `icon` - Custom icon content (overrides `icon` property and default variant icons)
21
-
22
17
  ## Methods
23
18
 
24
19
  - `show()` - Show banner
@@ -27,9 +22,14 @@ open: boolean = false;
27
22
 
28
23
  ## Events
29
24
 
30
- - `banner-open` `{ banner }`
31
- - `banner-close` `{ banner }`
32
- - `banner-action` `{ banner }`
25
+ - `banner-open` -> `{ banner }`
26
+ - `banner-close` -> `{ banner }`
27
+ - `banner-action` -> `{ banner }`
28
+
29
+ ## Slots
30
+
31
+ - `(default)` - Additional content after the message
32
+ - `icon` - Custom icon content (overrides `icon` property and default variant icons)
33
33
 
34
34
  ## CSS Parts
35
35
 
@@ -39,49 +39,32 @@ open: boolean = false;
39
39
  - `action` - Action button
40
40
  - `close` - Close/dismiss button
41
41
 
42
- ## Usage
42
+ ## Basic Usage
43
43
 
44
44
  ```html
45
- <!-- Basic -->
46
45
  <snice-banner message="This is an info message" open></snice-banner>
47
46
 
48
47
  <!-- Variants -->
49
- <snice-banner variant="info" message="Info"></snice-banner>
50
- <snice-banner variant="success" message="Success"></snice-banner>
51
- <snice-banner variant="warning" message="Warning"></snice-banner>
52
- <snice-banner variant="error" message="Error"></snice-banner>
48
+ <snice-banner variant="success" message="Success" open></snice-banner>
49
+ <snice-banner variant="warning" message="Warning" open></snice-banner>
50
+ <snice-banner variant="error" message="Error" open></snice-banner>
53
51
 
54
52
  <!-- Position -->
55
- <snice-banner position="top" message="Top banner" open></snice-banner>
56
53
  <snice-banner position="bottom" message="Bottom banner" open></snice-banner>
57
54
 
58
55
  <!-- With action -->
59
- <snice-banner
60
- message="Update available"
61
- action-text="Update Now"
62
- open
63
- ></snice-banner>
56
+ <snice-banner message="Update available" action-text="Update Now" open></snice-banner>
64
57
 
65
58
  <!-- Not dismissible -->
66
- <snice-banner
67
- message="Important notice"
68
- dismissible="false"
69
- open
70
- ></snice-banner>
71
-
72
- <!-- ⚠️ icon="update" renders as PLAIN TEXT. Use the icon slot for icon fonts. -->
59
+ <snice-banner message="Important" dismissible="false" open></snice-banner>
73
60
 
74
- <!-- Icon SLOT for Material Symbols, Font Awesome, SVGs -->
61
+ <!-- Icon SLOT for icon fonts -->
75
62
  <snice-banner message="Update available" open>
76
63
  <span slot="icon" class="material-symbols-outlined">update</span>
77
64
  </snice-banner>
78
65
 
79
- <!-- Icon PROPERTY for emoji, URLs, image files only -->
66
+ <!-- Icon PROPERTY for emoji/URLs -->
80
67
  <snice-banner icon="🎉" message="Celebration!" open></snice-banner>
81
- <snice-banner icon="/icons/update.svg" message="Update" open></snice-banner>
82
-
83
- <!-- API -->
84
- <snice-banner message="Hello"></snice-banner>
85
68
  ```
86
69
 
87
70
  ```typescript
@@ -90,12 +73,7 @@ banner.hide();
90
73
  banner.toggle();
91
74
  ```
92
75
 
93
- ## Features
76
+ ## Accessibility
94
77
 
95
- - 4 variants (info, success, warning, error)
96
- - Top or bottom positioning
97
- - Dismissible with close button
98
- - Optional action button
99
- - Smooth slide animation
100
- - Fixed positioning
101
- - Accessible (role=alert)
78
+ - `role="alert"` on banner container
79
+ - `aria-label="Close"` on dismiss button
@@ -0,0 +1,89 @@
1
+ # snice-binpack
2
+
3
+ JS-driven bin-packing layout using the maximal rectangles algorithm. Absolute positioning with transform-based transitions.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ gap: string = '1rem'; // spacing between items
9
+ columnWidth: number = 0; // grid snap width (0 = no grid) -- attr: column-width
10
+ rowHeight: number = 0; // grid snap height (0 = no grid) -- attr: row-height
11
+ horizontal: boolean = false; // pack horizontally instead of vertically
12
+ originLeft: boolean = true; // false = right-to-left -- attr: origin-left
13
+ originTop: boolean = true; // false = bottom-to-top -- attr: origin-top
14
+ transitionDuration: string = '0.4s'; // CSS transition duration -- attr: transition-duration
15
+ stagger: number = 0; // ms delay between each item transition
16
+ resize: boolean = true; // auto re-layout on container resize
17
+ draggable: boolean = false; // enable drag-to-reorder
18
+ dragThrottle: number = 120; // ms throttle for drag layout updates -- attr: drag-throttle
19
+ ```
20
+
21
+ ## Methods
22
+
23
+ - `layout()` - Full re-layout
24
+ - `fit(element, x?, y?)` - Position specific item at coordinates, reflow others
25
+ - `reloadItems()` - Re-collect items from DOM
26
+ - `stamp(elements)` - Layout around fixed elements
27
+ - `unstamp(elements)` - Remove stamp constraint
28
+ - `getItemElements()` - Get all layout items
29
+ - `getLayout()` - Returns `BinpackLayout` with item positions/order
30
+ - `setLayout(layout)` - Apply saved layout (reorder, hide/show)
31
+
32
+ ## Events
33
+
34
+ - `binpack-layout-complete` -> `{ items: HTMLElement[] }`
35
+ - `binpack-fit-complete` -> `{ item: HTMLElement, x: number, y: number }`
36
+ - `binpack-drag-item-positioned` -> `{ item: HTMLElement, x: number, y: number }`
37
+
38
+ ## Slots
39
+
40
+ - `(default)` - Items to pack (any elements with explicit width/height)
41
+
42
+ ## CSS Custom Properties
43
+
44
+ - `--binpack-gap` - Gap between items (set via `gap` property)
45
+ - `--binpack-transition-duration` - Transition duration (set via `transition-duration` property)
46
+
47
+ ## CSS Parts
48
+
49
+ - `base` - The inner container element
50
+
51
+ ## Basic Usage
52
+
53
+ ```html
54
+ <snice-binpack gap="0.5rem">
55
+ <div style="width:100px;height:100px">A</div>
56
+ <div style="width:150px;height:80px">B</div>
57
+ <div style="width:80px;height:120px">C</div>
58
+ </snice-binpack>
59
+
60
+ <!-- Horizontal mode -->
61
+ <snice-binpack horizontal style="height:300px">
62
+ <div style="width:100px;height:100px">A</div>
63
+ </snice-binpack>
64
+
65
+ <!-- Grid-snapped -->
66
+ <snice-binpack column-width="100" row-height="100">
67
+ <div style="width:80px;height:80px">A</div>
68
+ </snice-binpack>
69
+
70
+ <!-- Draggable dashboard -->
71
+ <snice-binpack draggable gap="8px" column-width="80" row-height="80">
72
+ <div style="width:160px;height:160px">Revenue</div>
73
+ <div style="width:80px;height:80px">CPU</div>
74
+ <div style="width:160px;height:80px">Orders</div>
75
+ </snice-binpack>
76
+ ```
77
+
78
+ ## Drag CSS Classes
79
+
80
+ - `.binpack-dragging` -- applied during drag (no transition, z-index: 100)
81
+ - `.binpack-positioning` -- applied while animating to final position after drop
82
+
83
+ ## Notes
84
+
85
+ - Items must have explicit width/height (not auto-sized)
86
+ - Container uses `position: relative`, items get `position: absolute` + `transform`
87
+ - Uses ResizeObserver on container and items for auto re-layout
88
+ - FOUC prevented via `[ready]` attribute gating transitions
89
+ - `contain: layout style` on `:host` (NOT paint -- items use absolute positioning)
@@ -2,19 +2,28 @@
2
2
 
3
3
  Page-flipping book component with cover page, keyboard navigation, and animated page turns.
4
4
 
5
+ ## Components
6
+
7
+ - `<snice-book>` - Main book container
8
+ - `<snice-book-page>` - Individual page element
9
+
5
10
  ## Properties
6
11
 
7
12
  ```ts
8
13
  currentPage: number = 0 // attr: current-page
9
- coverImage: string = '' // attr: cover-image URL for cover page image
14
+ coverImage: string = '' // attr: cover-image -- URL for cover page image
10
15
  title: string = '' // Book title shown on cover
11
16
  author: string = '' // Author name shown on cover
12
17
  readonly totalPages: number // Getter, count of slotted page elements
13
18
  ```
14
19
 
15
- ## Slots
20
+ ## Methods
16
21
 
17
- - `(default)` Page elements; each child becomes one page
22
+ - `goToPage(page: number): void` -- Navigate to specific page
23
+ - `nextPage(): void` -- Advance by 1 page
24
+ - `prevPage(): void` -- Go back by 1 page
25
+ - `firstPage(): void` -- Jump to page 0
26
+ - `lastPage(): void` -- Jump to last page
18
27
 
19
28
  ## Events
20
29
 
@@ -22,13 +31,9 @@ readonly totalPages: number // Getter, count of slotted page elements
22
31
  - `page-flip-start` -> `{ fromPage: number, toPage: number, direction: 'forward' | 'backward' }`
23
32
  - `page-flip-end` -> `{ page: number, direction: 'forward' | 'backward' }`
24
33
 
25
- ## Methods
34
+ ## Slots
26
35
 
27
- - `goToPage(page: number): void` Navigate to specific page
28
- - `nextPage(): void` — Advance by 1 page
29
- - `prevPage(): void` — Go back by 1 page
30
- - `firstPage(): void` — Jump to page 0
31
- - `lastPage(): void` — Jump to last page
36
+ - `(default)` -- `<snice-book-page>` elements; each child becomes one page
32
37
 
33
38
  ## CSS Custom Properties
34
39
 
@@ -36,10 +41,10 @@ readonly totalPages: number // Getter, count of slotted page elements
36
41
  --page-bg /* Page background color (default: #F5F5F5) */
37
42
  --dark-text /* Primary text color (default: #2A2935) */
38
43
  --baseline /* Base spacing unit (default: 12px) */
39
- --book-title /* Book title font family (default: 'Tulpen One', sans-serif) */
40
- --title /* Section title / body heading font (default: 'Cormorant Garamond', serif) */
41
- --body /* Body text font (default: 'Cormorant Garamond', serif) */
42
- --base-size /* Base font size, derived from baseline (default: calc(var(--baseline) * 1.2)) */
44
+ --book-title /* Book title font family */
45
+ --title /* Section title / body heading font */
46
+ --body /* Body text font */
47
+ --base-size /* Base font size, derived from baseline */
43
48
  ```
44
49
 
45
50
  ## CSS Parts
@@ -47,21 +52,18 @@ readonly totalPages: number // Getter, count of slotted page elements
47
52
  - `base` - Outer cover container
48
53
  - `book` - Inner book element
49
54
 
50
- ## Keyboard
55
+ ## Keyboard Navigation
51
56
 
52
- - ArrowRight/ArrowDown Next page
53
- - ArrowLeft/ArrowUp Previous page
54
- - Home — First page
55
- - End — Last page
57
+ - ArrowRight -- Next page
58
+ - ArrowLeft -- Previous page
56
59
 
57
- ## Usage
60
+ ## Basic Usage
58
61
 
59
62
  ```html
60
63
  <snice-book title="My Book" author="Jane Doe" cover-image="/cover.jpg">
61
- <div>Page 1 content</div>
62
- <div>Page 2 content</div>
63
- <div>Page 3 content</div>
64
- <div>Page 4 content</div>
64
+ <snice-book-page><div>Page 1 content</div></snice-book-page>
65
+ <snice-book-page><div>Page 2 content</div></snice-book-page>
66
+ <snice-book-page><div>Page 3 content</div></snice-book-page>
65
67
  </snice-book>
66
68
  ```
67
69
 
@@ -5,15 +5,36 @@ Multi-step appointment booking widget: date picker, time slots, confirmation for
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- availableDates: (Date | string)[] = []; // attr: available-dates
9
- availableSlots: BookingSlot[] = []; // attr: available-slots
8
+ availableDates: (Date | string)[] = []; // JS property only
9
+ availableSlots: BookingSlot[] = []; // JS property only
10
10
  duration: number = 30; // default appointment duration (minutes)
11
11
  minDate: Date | string = ''; // attr: min-date
12
12
  maxDate: Date | string = ''; // attr: max-date
13
- fields: BookingField[] = []; // custom form fields for step 3
13
+ fields: BookingField[] = []; // JS property only
14
14
  variant: 'stepper'|'inline' = 'stepper';
15
15
  ```
16
16
 
17
+ ## Methods
18
+
19
+ - `reset()` - Reset to step 1, clear selections
20
+ - `getBooking()` - Returns `BookingData | null`
21
+
22
+ ## Events
23
+
24
+ - `date-select` -> `{ date: string }`
25
+ - `slot-select` -> `{ slot: BookingSlot }`
26
+ - `booking-confirm` -> `{ booking: BookingData }`
27
+ - `booking-cancel` -> `void`
28
+
29
+ ## CSS Parts
30
+
31
+ - `base` - Main container
32
+ - `stepper` - Step indicator header
33
+ - `calendar` - Date picker section
34
+ - `slots` - Time slots section
35
+ - `form` - Confirmation form section
36
+ - `confirmation` - Success message
37
+
17
38
  ## Interfaces
18
39
 
19
40
  ```typescript
@@ -38,19 +59,7 @@ interface BookingData {
38
59
  }
39
60
  ```
40
61
 
41
- ## Methods
42
-
43
- - `reset()` - Reset to step 1, clear selections
44
- - `getBooking()` - Returns `BookingData | null`
45
-
46
- ## Events
47
-
48
- - `date-select` -> `{ date: string }`
49
- - `slot-select` -> `{ slot: BookingSlot }`
50
- - `booking-confirm` -> `{ booking: BookingData }`
51
- - `booking-cancel` -> `void`
52
-
53
- ## Usage
62
+ ## Basic Usage
54
63
 
55
64
  ```html
56
65
  <snice-booking></snice-booking>
@@ -71,26 +80,12 @@ booking.addEventListener('booking-confirm', e => {
71
80
  console.log(e.detail.booking);
72
81
  });
73
82
 
74
- <!-- Inline variant (all steps visible) -->
75
- <snice-booking variant="inline"></snice-booking>
83
+ // Inline variant (all steps visible)
84
+ // <snice-booking variant="inline"></snice-booking>
76
85
  ```
77
86
 
78
- **CSS Parts:**
79
- - `base` - Main container
80
- - `stepper` - Step indicator header
81
- - `calendar` - Date picker section
82
- - `slots` - Time slots section
83
- - `form` - Confirmation form section
84
- - `confirmation` - Success message
87
+ ## Accessibility
85
88
 
86
- ## Features
87
-
88
- - 3-step wizard: Date -> Time -> Confirm
89
- - Stepper or inline layout
90
- - Available date highlighting
91
- - Time slot grid with duration display
92
- - Custom form fields (text, email, tel, textarea)
93
- - Booking summary before confirmation
94
- - Success confirmation view
95
- - Date restrictions (min/max)
96
- - Past date disabling
89
+ - Keyboard navigation for date picker and slots
90
+ - ARIA labels for steps and form fields
91
+ - Focus management between steps
@@ -2,30 +2,47 @@
2
2
 
3
3
  Navigation breadcrumb trail.
4
4
 
5
+ ## Components
6
+
7
+ - `<snice-breadcrumbs>` - Container (imperative `items` array or declarative `<snice-crumb>` children)
8
+ - `<snice-crumb>` - Individual breadcrumb item (data element, no shadow DOM)
9
+
5
10
  ## Properties
6
11
 
12
+ ### snice-breadcrumbs
13
+
7
14
  ```typescript
8
- items: BreadcrumbItem[] = [];
9
- separator: '/'|'>'|'»'|''|'|' = '/';
15
+ items: BreadcrumbItem[] = []; // JS property only
16
+ separator: '/'|'>'|'>>'|'.'|'|' = '/';
10
17
  size: 'small'|'medium'|'large' = 'medium';
11
- maxItems: number = 0; // 0 = show all, attr: max-items
18
+ maxItems: number = 0; // 0 = show all, attr: max-items
12
19
  ```
13
20
 
14
- ## Slots
21
+ ### snice-crumb
15
22
 
16
- - `(default)` - `<snice-crumb>` elements (declarative API)
23
+ ```typescript
24
+ label: string = '';
25
+ href: string = '';
26
+ icon: string = '';
27
+ iconImage: string = ''; // attr: icon-image (deprecated)
28
+ active: boolean = false;
29
+ ```
17
30
 
18
- ### snice-crumb Slots
31
+ ## Methods
19
32
 
20
- - `icon` - Custom icon element (for CSS icon fonts)
33
+ - `setItems(items: BreadcrumbItem[])` - Update breadcrumb items
21
34
 
22
35
  ## Events
23
36
 
24
- - `breadcrumb-click` `{ item, index, href, label }`
37
+ - `breadcrumb-click` -> `{ item: BreadcrumbItem, index: number, href: string, label: string }`
25
38
 
26
- ## Methods
39
+ ## Slots
27
40
 
28
- - `setItems(items: BreadcrumbItem[])` - Update breadcrumb items
41
+ ### snice-breadcrumbs
42
+ - `(default)` - `<snice-crumb>` elements (declarative API)
43
+
44
+ ### snice-crumb
45
+ - `icon` - Custom icon element (for CSS icon fonts)
29
46
 
30
47
  ## CSS Parts
31
48
 
@@ -59,7 +76,7 @@ interface BreadcrumbItem {
59
76
  }
60
77
  ```
61
78
 
62
- ## Usage
79
+ ## Basic Usage
63
80
 
64
81
  ```html
65
82
  <!-- Imperative -->
@@ -72,7 +89,9 @@ breadcrumbs.items = [
72
89
  { label: 'Products', href: '/products' },
73
90
  { label: 'Laptop', active: true }
74
91
  ];
92
+ ```
75
93
 
94
+ ```html
76
95
  <!-- Declarative -->
77
96
  <snice-breadcrumbs>
78
97
  <snice-crumb href="/" label="Home"></snice-crumb>
@@ -90,3 +109,9 @@ breadcrumbs.items = [
90
109
  </snice-crumb>
91
110
  </snice-breadcrumbs>
92
111
  ```
112
+
113
+ ## Accessibility
114
+
115
+ - `<nav>` with `aria-label="Breadcrumb"`
116
+ - `aria-current="page"` on active/last item
117
+ - All links and ellipsis button are keyboard accessible
@@ -1,6 +1,6 @@
1
1
  # snice-button
2
2
 
3
- Interactive button with variants and states.
3
+ Interactive button with variants, states, and form association.
4
4
 
5
5
  ## Properties
6
6
 
@@ -16,19 +16,10 @@ circle: boolean = false;
16
16
  href: string = '';
17
17
  target: string = '';
18
18
  download: string = '';
19
- icon: string = '';
20
- iconPlacement: 'start'|'end' = 'start';
19
+ icon: string = ''; // emoji, URL, image file
20
+ iconPlacement: 'start'|'end' = 'start'; // attr: icon-placement
21
21
  ```
22
22
 
23
- ## Slots
24
-
25
- - `(default)` - Button label content
26
- - `icon` - Custom icon content (overrides `icon` property)
27
-
28
- ## Events
29
-
30
- - `button-click` → `{ originalEvent: MouseEvent }`
31
-
32
23
  ## Methods
33
24
 
34
25
  - `focus(options?)` - Focus button
@@ -38,10 +29,25 @@ iconPlacement: 'start'|'end' = 'start';
38
29
  - `setDisabled(disabled)` - Set disabled state
39
30
  - `setVariant(variant)` - Set variant
40
31
 
41
- ## Usage
32
+ ## Events
33
+
34
+ - `button-click` -> `{ originalEvent: MouseEvent }`
35
+
36
+ ## Slots
37
+
38
+ - `(default)` - Button label content
39
+ - `icon` - Custom icon content (overrides `icon` property)
40
+
41
+ ## CSS Parts
42
+
43
+ - `base` - The button element
44
+ - `spinner` - Loading spinner
45
+ - `label` - Button label text
46
+ - `icon` - Icon container
47
+
48
+ ## Basic Usage
42
49
 
43
50
  ```html
44
- <!-- Basic -->
45
51
  <snice-button>Click me</snice-button>
46
52
 
47
53
  <!-- Variants -->
@@ -53,7 +59,6 @@ iconPlacement: 'start'|'end' = 'start';
53
59
 
54
60
  <!-- Sizes -->
55
61
  <snice-button size="small">Small</snice-button>
56
- <snice-button size="medium">Medium</snice-button>
57
62
  <snice-button size="large">Large</snice-button>
58
63
 
59
64
  <!-- States -->
@@ -63,11 +68,9 @@ iconPlacement: 'start'|'end' = 'start';
63
68
  <!-- Styles -->
64
69
  <snice-button outline>Outline</snice-button>
65
70
  <snice-button pill>Pill</snice-button>
66
- <snice-button circle icon="×"></snice-button>
67
-
68
- <!-- ⚠️ icon="home" renders as PLAIN TEXT. Use the icon slot for icon fonts. -->
71
+ <snice-button circle icon="x"></snice-button>
69
72
 
70
- <!-- Icon SLOT for Material Symbols, Font Awesome, SVGs -->
73
+ <!-- Icon SLOT -- for Material Symbols, Font Awesome, SVGs -->
71
74
  <snice-button>
72
75
  <span slot="icon" class="material-symbols-outlined">save</span>
73
76
  Save
@@ -76,38 +79,24 @@ iconPlacement: 'start'|'end' = 'start';
76
79
  <i slot="icon" class="fa-solid fa-trash"></i>
77
80
  Delete
78
81
  </snice-button>
79
- <snice-button>
80
- <svg slot="icon" viewBox="0 0 24 24"><path d="..."/></svg>
81
- Action
82
- </snice-button>
83
82
 
84
- <!-- Icon PROPERTY for emoji, URLs, image files only -->
85
- <snice-button icon="">Next</snice-button>
86
- <snice-button icon="🏠">Home</snice-button>
83
+ <!-- Icon PROPERTY -- for emoji, URLs, image files only -->
84
+ <!-- icon="home" renders as PLAIN TEXT, NOT a Material icon -->
85
+ <snice-button icon="->">Next</snice-button>
87
86
  <snice-button icon="/icons/save.svg">Save</snice-button>
88
- <snice-button icon="icon.png">Image file</snice-button>
89
- <!-- Scheme overrides: img://, text:// -->
90
87
  <snice-button icon="img://filename">Force img</snice-button>
91
- <snice-button icon="text://content">Force text</snice-button>
92
88
 
93
89
  <!-- As link -->
94
90
  <snice-button href="/page">Link</snice-button>
95
91
  <snice-button href="/file.pdf" download>Download</snice-button>
96
- ```
97
92
 
98
- ## CSS Parts
99
-
100
- `base`, `spinner`, `label`, `icon`
93
+ <!-- Form -->
94
+ <snice-button type="submit" variant="primary">Submit</snice-button>
95
+ <snice-button type="reset">Reset</snice-button>
96
+ ```
101
97
 
102
- ## Features
98
+ ## Accessibility
103
99
 
104
- - 6 color variants
105
- - 3 sizes
106
- - Outline style
107
- - Pill (rounded) shape
108
- - Circle (icon only) shape
109
- - Loading state with spinner
110
- - Disabled state
111
- - Link mode (href)
112
- - Icon support with placement (URL, image files, emoji). Use slot for icon fonts.
113
- - Download attribute support
100
+ - Keyboard accessible (Enter, Space)
101
+ - Focus ring on `:focus-visible`
102
+ - Form-associated (`formAssociated: true`)