snice 4.28.0 → 4.30.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 (835) hide show
  1. package/README.md +3 -10
  2. package/adapters/react/SniceProvider.d.ts +71 -0
  3. package/adapters/react/SniceProvider.js +49 -0
  4. package/adapters/react/SniceProvider.js.map +1 -0
  5. package/adapters/react/SniceRouter.d.ts +44 -0
  6. package/adapters/react/SniceRouter.js +190 -0
  7. package/adapters/react/SniceRouter.js.map +1 -0
  8. package/adapters/react/action-bar.d.ts +30 -0
  9. package/adapters/react/action-bar.d.ts.map +1 -0
  10. package/adapters/react/action-bar.js +24 -0
  11. package/adapters/react/action-bar.js.map +1 -0
  12. package/adapters/react/action-bar.tsx +38 -0
  13. package/adapters/react/binpack.d.ts +35 -0
  14. package/adapters/react/binpack.d.ts.map +1 -0
  15. package/adapters/react/binpack.js +24 -0
  16. package/adapters/react/binpack.js.map +1 -0
  17. package/adapters/react/binpack.tsx +43 -0
  18. package/adapters/react/components.d.ts +6 -0
  19. package/adapters/react/components.d.ts.map +1 -1
  20. package/adapters/react/components.js +3 -0
  21. package/adapters/react/components.js.map +1 -1
  22. package/adapters/react/components.ts +6 -0
  23. package/adapters/react/grid.d.ts +36 -0
  24. package/adapters/react/grid.d.ts.map +1 -0
  25. package/adapters/react/grid.js +24 -0
  26. package/adapters/react/grid.js.map +1 -0
  27. package/adapters/react/grid.tsx +44 -0
  28. package/adapters/react/index.d.ts +5 -0
  29. package/adapters/react/index.d.ts.map +1 -1
  30. package/adapters/react/index.js +3 -2
  31. package/adapters/react/index.js.map +1 -1
  32. package/adapters/react/index.ts +6 -3
  33. package/adapters/react/matchRoute.d.ts +16 -0
  34. package/adapters/react/matchRoute.js +32 -0
  35. package/adapters/react/matchRoute.js.map +1 -0
  36. package/adapters/react/types.d.ts +1 -15
  37. package/adapters/react/types.d.ts.map +1 -1
  38. package/adapters/react/types.ts +1 -15
  39. package/adapters/react/useRequestHandler.d.ts +56 -0
  40. package/adapters/react/useRequestHandler.js +103 -0
  41. package/adapters/react/useRequestHandler.js.map +1 -0
  42. package/bin/snice.js +8 -13
  43. package/bin/templates/{pwa → default}/index.html +1 -1
  44. package/bin/templates/{pwa → default}/src/components/app-header.ts +36 -18
  45. package/bin/templates/{pwa → default}/src/components/notification-badge.ts +2 -21
  46. package/bin/templates/{pwa → default}/src/components/search-bar.ts +12 -12
  47. package/bin/templates/default/src/context.ts +17 -0
  48. package/bin/templates/{pwa → default}/src/controllers/notification-controller.ts +10 -15
  49. package/bin/templates/{pwa → default}/src/daemons/notifications.ts +0 -12
  50. package/bin/templates/{pwa → default}/src/main.ts +1 -7
  51. package/bin/templates/{pwa → default}/src/middleware/error.ts +1 -8
  52. package/bin/templates/{pwa → default}/src/pages/dashboard.ts +17 -18
  53. package/bin/templates/{pwa → default}/src/pages/data.ts +24 -24
  54. package/bin/templates/{pwa → default}/src/pages/login.ts +3 -6
  55. package/bin/templates/{pwa → default}/src/pages/notifications.ts +21 -19
  56. package/bin/templates/{pwa → default}/src/pages/profile.ts +10 -12
  57. package/bin/templates/{pwa → default}/src/pages/settings.ts +22 -22
  58. package/bin/templates/default/src/router.ts +13 -0
  59. package/bin/templates/default/src/styles/global.css +16 -0
  60. package/bin/templates/{pwa → default}/tsconfig.json +2 -1
  61. package/bin/templates/react/README.md +124 -0
  62. package/bin/templates/react/global.d.ts +10 -0
  63. package/bin/templates/react/index.html +15 -0
  64. package/bin/templates/react/package.json +31 -0
  65. package/bin/templates/react/src/App.tsx +112 -0
  66. package/bin/templates/react/src/components/AppHeader.tsx +85 -0
  67. package/bin/templates/react/src/components/AppLayout.tsx +11 -0
  68. package/bin/templates/react/src/components/NotificationBadge.tsx +13 -0
  69. package/bin/templates/react/src/components/SearchBar.tsx +63 -0
  70. package/bin/templates/react/src/daemons/notifications.ts +136 -0
  71. package/bin/templates/react/src/fetcher.ts +15 -0
  72. package/bin/templates/react/src/guards/auth.ts +6 -0
  73. package/bin/templates/react/src/main.tsx +27 -0
  74. package/bin/templates/react/src/middleware/auth.ts +16 -0
  75. package/bin/templates/react/src/middleware/error.ts +29 -0
  76. package/bin/templates/react/src/middleware/retry.ts +31 -0
  77. package/bin/templates/react/src/pages/DashboardPage.tsx +111 -0
  78. package/bin/templates/react/src/pages/DataPage.tsx +119 -0
  79. package/bin/templates/react/src/pages/LoginPage.tsx +46 -0
  80. package/bin/templates/react/src/pages/NotificationsPage.tsx +119 -0
  81. package/bin/templates/react/src/pages/ProfilePage.tsx +92 -0
  82. package/bin/templates/react/src/pages/SettingsPage.tsx +165 -0
  83. package/bin/templates/react/src/services/auth.ts +48 -0
  84. package/bin/templates/react/src/services/jwt.ts +35 -0
  85. package/bin/templates/react/src/services/storage.ts +24 -0
  86. package/bin/templates/react/src/styles/global.css +382 -0
  87. package/bin/templates/react/src/types/auth.ts +21 -0
  88. package/bin/templates/react/src/types/notifications.ts +9 -0
  89. package/bin/templates/react/tests/helpers/test-utils.ts +79 -0
  90. package/bin/templates/react/tests/middleware/auth.test.ts +67 -0
  91. package/bin/templates/react/tests/middleware/error.test.ts +105 -0
  92. package/bin/templates/react/tests/middleware/retry.test.ts +103 -0
  93. package/bin/templates/react/tests/services/auth.test.ts +89 -0
  94. package/bin/templates/react/tests/services/jwt.test.ts +76 -0
  95. package/bin/templates/react/tests/services/storage.test.ts +69 -0
  96. package/bin/templates/{base → react}/tsconfig.json +4 -6
  97. package/bin/templates/react/vite.config.ts +18 -0
  98. package/bin/templates/react/vitest.config.ts +18 -0
  99. package/dist/cdn/accordion/snice-accordion.js +1 -1
  100. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  101. package/dist/cdn/action-bar/README.md +27 -0
  102. package/dist/cdn/action-bar/snice-action-bar.js +249 -0
  103. package/dist/cdn/action-bar/snice-action-bar.js.map +1 -0
  104. package/dist/cdn/action-bar/snice-action-bar.min.js +12 -0
  105. package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -0
  106. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  107. package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
  108. package/dist/cdn/alert/snice-alert.js +1 -1
  109. package/dist/cdn/alert/snice-alert.min.js +1 -1
  110. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  111. package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
  112. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  113. package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
  114. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  115. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  116. package/dist/cdn/availability/snice-availability.js +1 -1
  117. package/dist/cdn/availability/snice-availability.min.js +1 -1
  118. package/dist/cdn/avatar/snice-avatar.js +1 -1
  119. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  120. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  121. package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
  122. package/dist/cdn/badge/snice-badge.js +1 -1
  123. package/dist/cdn/badge/snice-badge.min.js +1 -1
  124. package/dist/cdn/banner/snice-banner.js +1 -1
  125. package/dist/cdn/banner/snice-banner.min.js +1 -1
  126. package/dist/cdn/binpack/README.md +27 -0
  127. package/dist/cdn/binpack/snice-binpack.js +1037 -0
  128. package/dist/cdn/binpack/snice-binpack.js.map +1 -0
  129. package/dist/cdn/binpack/snice-binpack.min.js +13 -0
  130. package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
  131. package/dist/cdn/book/snice-book.js +1 -1
  132. package/dist/cdn/book/snice-book.min.js +1 -1
  133. package/dist/cdn/booking/snice-booking.js +1 -1
  134. package/dist/cdn/booking/snice-booking.min.js +1 -1
  135. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  136. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  137. package/dist/cdn/button/README.md +1 -1
  138. package/dist/cdn/button/snice-button.js +2 -2
  139. package/dist/cdn/button/snice-button.js.map +1 -1
  140. package/dist/cdn/button/snice-button.min.js +2 -2
  141. package/dist/cdn/button/snice-button.min.js.map +1 -1
  142. package/dist/cdn/calendar/snice-calendar.js +1 -1
  143. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  144. package/dist/cdn/camera/snice-camera.js +1 -1
  145. package/dist/cdn/camera/snice-camera.min.js +1 -1
  146. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  147. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  148. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  149. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  150. package/dist/cdn/card/snice-card.js +1 -1
  151. package/dist/cdn/card/snice-card.min.js +1 -1
  152. package/dist/cdn/carousel/snice-carousel.js +1 -1
  153. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  154. package/dist/cdn/cart/snice-cart.js +1 -1
  155. package/dist/cdn/cart/snice-cart.min.js +1 -1
  156. package/dist/cdn/chart/snice-chart.js +1 -1
  157. package/dist/cdn/chart/snice-chart.min.js +1 -1
  158. package/dist/cdn/chat/snice-chat.js +1 -1
  159. package/dist/cdn/chat/snice-chat.min.js +1 -1
  160. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  161. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  162. package/dist/cdn/chip/README.md +2 -2
  163. package/dist/cdn/chip/snice-chip.js +2 -2
  164. package/dist/cdn/chip/snice-chip.js.map +1 -1
  165. package/dist/cdn/chip/snice-chip.min.js +3 -3
  166. package/dist/cdn/chip/snice-chip.min.js.map +1 -1
  167. package/dist/cdn/code-block/snice-code-block.js +1 -1
  168. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  169. package/dist/cdn/color-display/snice-color-display.js +1 -1
  170. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  171. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  172. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  173. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  174. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  175. package/dist/cdn/comments/snice-comments.js +1 -1
  176. package/dist/cdn/comments/snice-comments.min.js +1 -1
  177. package/dist/cdn/countdown/snice-countdown.js +1 -1
  178. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  179. package/dist/cdn/cropper/snice-cropper.js +1 -1
  180. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  181. package/dist/cdn/data-card/snice-data-card.js +1 -1
  182. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  183. package/dist/cdn/date-picker/README.md +1 -1
  184. package/dist/cdn/date-picker/snice-date-picker.js +2 -2
  185. package/dist/cdn/date-picker/snice-date-picker.js.map +1 -1
  186. package/dist/cdn/date-picker/snice-date-picker.min.js +2 -2
  187. package/dist/cdn/date-picker/snice-date-picker.min.js.map +1 -1
  188. package/dist/cdn/date-range-picker/README.md +1 -1
  189. package/dist/cdn/date-range-picker/snice-date-range-picker.js +2 -2
  190. package/dist/cdn/date-range-picker/snice-date-range-picker.js.map +1 -1
  191. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +11 -11
  192. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js.map +1 -1
  193. package/dist/cdn/date-time-picker/README.md +1 -1
  194. package/dist/cdn/date-time-picker/snice-date-time-picker.js +2 -2
  195. package/dist/cdn/date-time-picker/snice-date-time-picker.js.map +1 -1
  196. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +2 -2
  197. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js.map +1 -1
  198. package/dist/cdn/diff/snice-diff.js +1 -1
  199. package/dist/cdn/diff/snice-diff.min.js +1 -1
  200. package/dist/cdn/divider/snice-divider.js +1 -1
  201. package/dist/cdn/divider/snice-divider.min.js +1 -1
  202. package/dist/cdn/doc/snice-doc.js +1 -1
  203. package/dist/cdn/doc/snice-doc.min.js +1 -1
  204. package/dist/cdn/draw/README.md +2 -2
  205. package/dist/cdn/draw/snice-draw.js +26 -4
  206. package/dist/cdn/draw/snice-draw.js.map +1 -1
  207. package/dist/cdn/draw/snice-draw.min.js +3 -3
  208. package/dist/cdn/draw/snice-draw.min.js.map +1 -1
  209. package/dist/cdn/drawer/snice-drawer.js +1 -1
  210. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  211. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  212. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  213. package/dist/cdn/estimate/snice-estimate.js +1 -1
  214. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  215. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  216. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  217. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  218. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  219. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  220. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  221. package/dist/cdn/flow/snice-flow.js +1 -1
  222. package/dist/cdn/flow/snice-flow.min.js +1 -1
  223. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  224. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  225. package/dist/cdn/funnel/snice-funnel.js +1 -1
  226. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  227. package/dist/cdn/gantt/snice-gantt.js +1 -1
  228. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  229. package/dist/cdn/gauge/snice-gauge.js +1 -1
  230. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  231. package/dist/cdn/grid/README.md +27 -0
  232. package/dist/cdn/grid/snice-grid.js +862 -0
  233. package/dist/cdn/grid/snice-grid.js.map +1 -0
  234. package/dist/cdn/grid/snice-grid.min.js +13 -0
  235. package/dist/cdn/grid/snice-grid.min.js.map +1 -0
  236. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  237. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  238. package/dist/cdn/image/snice-image.js +1 -1
  239. package/dist/cdn/image/snice-image.min.js +1 -1
  240. package/dist/cdn/input/snice-input.js +1 -1
  241. package/dist/cdn/input/snice-input.min.js +1 -1
  242. package/dist/cdn/invoice/snice-invoice.js +1 -1
  243. package/dist/cdn/invoice/snice-invoice.min.js +1 -1
  244. package/dist/cdn/kanban/snice-kanban.js +1 -1
  245. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  246. package/dist/cdn/key-value/snice-key-value.js +1 -1
  247. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  248. package/dist/cdn/kpi/snice-kpi.js +1 -1
  249. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  250. package/dist/cdn/layout/snice-layout.js +1 -1
  251. package/dist/cdn/layout/snice-layout.min.js +1 -1
  252. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  253. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  254. package/dist/cdn/link/snice-link.js +1 -1
  255. package/dist/cdn/link/snice-link.min.js +1 -1
  256. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  257. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  258. package/dist/cdn/list/snice-list.js +1 -1
  259. package/dist/cdn/list/snice-list.min.js +1 -1
  260. package/dist/cdn/location/snice-location.js +1 -1
  261. package/dist/cdn/location/snice-location.min.js +1 -1
  262. package/dist/cdn/login/README.md +2 -2
  263. package/dist/cdn/login/snice-login.js +2 -2
  264. package/dist/cdn/login/snice-login.js.map +1 -1
  265. package/dist/cdn/login/snice-login.min.js +2 -2
  266. package/dist/cdn/login/snice-login.min.js.map +1 -1
  267. package/dist/cdn/map/snice-map.js +1 -1
  268. package/dist/cdn/map/snice-map.min.js +1 -1
  269. package/dist/cdn/markdown/snice-markdown.js +1 -1
  270. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  271. package/dist/cdn/masonry/snice-masonry.js +1 -1
  272. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  273. package/dist/cdn/menu/snice-menu.js +1 -1
  274. package/dist/cdn/menu/snice-menu.min.js +1 -1
  275. package/dist/cdn/message-strip/README.md +2 -2
  276. package/dist/cdn/message-strip/snice-message-strip.js +2 -2
  277. package/dist/cdn/message-strip/snice-message-strip.js.map +1 -1
  278. package/dist/cdn/message-strip/snice-message-strip.min.js +6 -6
  279. package/dist/cdn/message-strip/snice-message-strip.min.js.map +1 -1
  280. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  281. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  282. package/dist/cdn/modal/snice-modal.js +1 -1
  283. package/dist/cdn/modal/snice-modal.min.js +1 -1
  284. package/dist/cdn/music-player/snice-music-player.js +1 -1
  285. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  286. package/dist/cdn/nav/snice-nav.js +1 -1
  287. package/dist/cdn/nav/snice-nav.min.js +1 -1
  288. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  289. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  290. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  291. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  292. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  293. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  294. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  295. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  296. package/dist/cdn/pagination/snice-pagination.js +1 -1
  297. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  298. package/dist/cdn/paint/README.md +2 -2
  299. package/dist/cdn/paint/snice-paint.js +26 -3
  300. package/dist/cdn/paint/snice-paint.js.map +1 -1
  301. package/dist/cdn/paint/snice-paint.min.js +3 -3
  302. package/dist/cdn/paint/snice-paint.min.js.map +1 -1
  303. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  304. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  305. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  306. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  307. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  308. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  309. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  310. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  311. package/dist/cdn/product-card/README.md +1 -1
  312. package/dist/cdn/product-card/snice-product-card.js +1 -1
  313. package/dist/cdn/product-card/snice-product-card.min.js +1 -1
  314. package/dist/cdn/progress/snice-progress.js +1 -1
  315. package/dist/cdn/progress/snice-progress.min.js +1 -1
  316. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  317. package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
  318. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  319. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  320. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  321. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  322. package/dist/cdn/radio/snice-radio.js +1 -1
  323. package/dist/cdn/radio/snice-radio.min.js +1 -1
  324. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  325. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  326. package/dist/cdn/rating/snice-rating.js +1 -1
  327. package/dist/cdn/rating/snice-rating.min.js +1 -1
  328. package/dist/cdn/receipt/snice-receipt.js +1 -1
  329. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  330. package/dist/cdn/recipe/snice-recipe.js +1 -1
  331. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  332. package/dist/cdn/runtime/README.md +2 -2
  333. package/dist/cdn/runtime/snice-runtime.esm.js +109 -16
  334. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  335. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  336. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  337. package/dist/cdn/runtime/snice-runtime.js +109 -15
  338. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  339. package/dist/cdn/runtime/snice-runtime.min.js +7 -7
  340. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  341. package/dist/cdn/sankey/snice-sankey.js +1 -1
  342. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  343. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  344. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  345. package/dist/cdn/select/snice-select.js +1 -1
  346. package/dist/cdn/select/snice-select.min.js +1 -1
  347. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  348. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  349. package/dist/cdn/slider/snice-slider.js +1 -1
  350. package/dist/cdn/slider/snice-slider.min.js +1 -1
  351. package/dist/cdn/sortable/snice-sortable.js +1 -1
  352. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  353. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  354. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  355. package/dist/cdn/spinner/snice-spinner.js +1 -1
  356. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  357. package/dist/cdn/split-button/snice-split-button.js +1 -1
  358. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  359. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  360. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  361. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  362. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  363. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  364. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  365. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  366. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  367. package/dist/cdn/step-input/snice-step-input.js +1 -1
  368. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  369. package/dist/cdn/stepper/snice-stepper.js +1 -1
  370. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  371. package/dist/cdn/switch/snice-switch.js +1 -1
  372. package/dist/cdn/switch/snice-switch.min.js +1 -1
  373. package/dist/cdn/table/README.md +1 -1
  374. package/dist/cdn/table/snice-table.js +2 -2
  375. package/dist/cdn/table/snice-table.js.map +1 -1
  376. package/dist/cdn/table/snice-table.min.js +2 -2
  377. package/dist/cdn/table/snice-table.min.js.map +1 -1
  378. package/dist/cdn/tabs/snice-tabs.js +1 -1
  379. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  380. package/dist/cdn/tag/README.md +1 -1
  381. package/dist/cdn/tag/snice-tag.js +2 -2
  382. package/dist/cdn/tag/snice-tag.js.map +1 -1
  383. package/dist/cdn/tag/snice-tag.min.js +3 -3
  384. package/dist/cdn/tag/snice-tag.min.js.map +1 -1
  385. package/dist/cdn/tag-input/README.md +2 -2
  386. package/dist/cdn/tag-input/snice-tag-input.js +2 -2
  387. package/dist/cdn/tag-input/snice-tag-input.js.map +1 -1
  388. package/dist/cdn/tag-input/snice-tag-input.min.js +2 -2
  389. package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -1
  390. package/dist/cdn/terminal/snice-terminal.js +1 -1
  391. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  392. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  393. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  394. package/dist/cdn/textarea/snice-textarea.js +1 -1
  395. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  396. package/dist/cdn/time-picker/README.md +1 -1
  397. package/dist/cdn/time-picker/snice-time-picker.js +2 -2
  398. package/dist/cdn/time-picker/snice-time-picker.js.map +1 -1
  399. package/dist/cdn/time-picker/snice-time-picker.min.js +2 -2
  400. package/dist/cdn/time-picker/snice-time-picker.min.js.map +1 -1
  401. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  402. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  403. package/dist/cdn/timeline/snice-timeline.js +1 -1
  404. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  405. package/dist/cdn/timer/snice-timer.js +1 -1
  406. package/dist/cdn/timer/snice-timer.min.js +1 -1
  407. package/dist/cdn/toast/README.md +1 -1
  408. package/dist/cdn/toast/snice-toast.js +7 -3
  409. package/dist/cdn/toast/snice-toast.js.map +1 -1
  410. package/dist/cdn/toast/snice-toast.min.js +6 -6
  411. package/dist/cdn/toast/snice-toast.min.js.map +1 -1
  412. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  413. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  414. package/dist/cdn/tree/snice-tree.js +1 -1
  415. package/dist/cdn/tree/snice-tree.min.js +1 -1
  416. package/dist/cdn/treemap/snice-treemap.js +1 -1
  417. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  418. package/dist/cdn/user-card/snice-user-card.js +1 -1
  419. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  420. package/dist/cdn/video-player/snice-video-player.js +1 -1
  421. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  422. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  423. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  424. package/dist/cdn/waterfall/README.md +1 -1
  425. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  426. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  427. package/dist/cdn/weather/snice-weather.js +1 -1
  428. package/dist/cdn/weather/snice-weather.min.js +1 -1
  429. package/dist/cdn/work-order/snice-work-order.js +1 -1
  430. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  431. package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
  432. package/dist/components/action-bar/snice-action-bar.js +182 -0
  433. package/dist/components/action-bar/snice-action-bar.js.map +1 -0
  434. package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
  435. package/dist/components/binpack/snice-binpack.d.ts +82 -0
  436. package/dist/components/binpack/snice-binpack.js +970 -0
  437. package/dist/components/binpack/snice-binpack.js.map +1 -0
  438. package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
  439. package/dist/components/button/snice-button.js +1 -1
  440. package/dist/components/button/snice-button.js.map +1 -1
  441. package/dist/components/chip/snice-chip.js +1 -1
  442. package/dist/components/chip/snice-chip.js.map +1 -1
  443. package/dist/components/date-picker/snice-date-picker.js +1 -1
  444. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  445. package/dist/components/date-range-picker/snice-date-range-picker.js +1 -1
  446. package/dist/components/date-range-picker/snice-date-range-picker.js.map +1 -1
  447. package/dist/components/date-time-picker/snice-date-time-picker.js +1 -1
  448. package/dist/components/date-time-picker/snice-date-time-picker.js.map +1 -1
  449. package/dist/components/draw/snice-draw.d.ts +2 -0
  450. package/dist/components/draw/snice-draw.js +25 -3
  451. package/dist/components/draw/snice-draw.js.map +1 -1
  452. package/dist/components/grid/snice-grid.d.ts +73 -0
  453. package/dist/components/grid/snice-grid.js +795 -0
  454. package/dist/components/grid/snice-grid.js.map +1 -0
  455. package/dist/components/grid/snice-grid.types.d.ts +41 -0
  456. package/dist/components/message-strip/snice-message-strip.js +1 -1
  457. package/dist/components/message-strip/snice-message-strip.js.map +1 -1
  458. package/dist/components/paint/snice-paint.d.ts +2 -0
  459. package/dist/components/paint/snice-paint.js +25 -2
  460. package/dist/components/paint/snice-paint.js.map +1 -1
  461. package/dist/components/tag/snice-tag.js +1 -1
  462. package/dist/components/tag/snice-tag.js.map +1 -1
  463. package/dist/components/tag-input/snice-tag-input.js +1 -1
  464. package/dist/components/tag-input/snice-tag-input.js.map +1 -1
  465. package/dist/components/theme/theme.css +15 -0
  466. package/dist/components/time-picker/snice-time-picker.js +1 -1
  467. package/dist/components/time-picker/snice-time-picker.js.map +1 -1
  468. package/dist/components/toast/snice-toast-container.js +4 -0
  469. package/dist/components/toast/snice-toast-container.js.map +1 -1
  470. package/dist/components/toast/snice-toast.js +2 -2
  471. package/dist/create-request-handler.d.ts +42 -0
  472. package/dist/index.cjs +106 -12
  473. package/dist/index.cjs.map +1 -1
  474. package/dist/index.d.ts +2 -0
  475. package/dist/index.esm.js +106 -13
  476. package/dist/index.esm.js.map +1 -1
  477. package/dist/index.iife.js +106 -12
  478. package/dist/index.iife.js.map +1 -1
  479. package/dist/react/SniceProvider.d.ts +71 -0
  480. package/dist/react/SniceProvider.js +49 -0
  481. package/dist/react/SniceProvider.js.map +1 -0
  482. package/dist/react/SniceRouter.d.ts +44 -0
  483. package/dist/react/SniceRouter.js +190 -0
  484. package/dist/react/SniceRouter.js.map +1 -0
  485. package/dist/react/index.d.ts +3 -0
  486. package/dist/react/index.js +14 -0
  487. package/dist/react/index.js.map +1 -0
  488. package/dist/react/matchRoute.d.ts +16 -0
  489. package/dist/react/matchRoute.js +32 -0
  490. package/dist/react/matchRoute.js.map +1 -0
  491. package/dist/react/useRequestHandler.d.ts +56 -0
  492. package/dist/react/useRequestHandler.js +103 -0
  493. package/dist/react/useRequestHandler.js.map +1 -0
  494. package/dist/symbols.cjs +1 -1
  495. package/dist/symbols.esm.js +1 -1
  496. package/dist/transitions.cjs +1 -1
  497. package/dist/transitions.esm.js +1 -1
  498. package/dist/types/guard.d.ts +4 -11
  499. package/docs/ai/DEVELOPMENT.md +1 -1
  500. package/docs/ai/README.md +7 -7
  501. package/docs/ai/components/accordion.md +46 -80
  502. package/docs/ai/components/action-bar.md +75 -0
  503. package/docs/ai/components/activity-feed.md +7 -7
  504. package/docs/ai/components/alert.md +26 -44
  505. package/docs/ai/components/app-tiles.md +34 -39
  506. package/docs/ai/components/approval-flow.md +1 -1
  507. package/docs/ai/components/audio-recorder.md +35 -67
  508. package/docs/ai/components/availability.md +13 -34
  509. package/docs/ai/components/avatar-group.md +26 -13
  510. package/docs/ai/components/avatar.md +52 -36
  511. package/docs/ai/components/badge.md +21 -32
  512. package/docs/ai/components/banner.md +21 -43
  513. package/docs/ai/components/binpack.md +89 -0
  514. package/docs/ai/components/book.md +25 -23
  515. package/docs/ai/components/booking.md +31 -36
  516. package/docs/ai/components/breadcrumbs.md +36 -11
  517. package/docs/ai/components/button.md +33 -44
  518. package/docs/ai/components/calendar.md +37 -70
  519. package/docs/ai/components/camera-annotate.md +31 -64
  520. package/docs/ai/components/camera.md +38 -120
  521. package/docs/ai/components/candlestick.md +32 -52
  522. package/docs/ai/components/card.md +20 -30
  523. package/docs/ai/components/carousel.md +32 -32
  524. package/docs/ai/components/cart.md +24 -29
  525. package/docs/ai/components/chart.md +29 -114
  526. package/docs/ai/components/chat.md +38 -75
  527. package/docs/ai/components/checkbox.md +22 -41
  528. package/docs/ai/components/chip.md +18 -54
  529. package/docs/ai/components/code-block.md +57 -178
  530. package/docs/ai/components/color-display.md +12 -32
  531. package/docs/ai/components/color-picker.md +17 -39
  532. package/docs/ai/components/command-palette.md +49 -71
  533. package/docs/ai/components/comments.md +55 -36
  534. package/docs/ai/components/countdown.md +28 -30
  535. package/docs/ai/components/cropper.md +33 -33
  536. package/docs/ai/components/data-card.md +20 -14
  537. package/docs/ai/components/date-picker.md +40 -47
  538. package/docs/ai/components/date-range-picker.md +31 -15
  539. package/docs/ai/components/date-time-picker.md +23 -46
  540. package/docs/ai/components/diff.md +30 -31
  541. package/docs/ai/components/divider.md +17 -47
  542. package/docs/ai/components/doc.md +43 -68
  543. package/docs/ai/components/draw.md +35 -87
  544. package/docs/ai/components/drawer.md +48 -77
  545. package/docs/ai/components/empty-state.md +10 -44
  546. package/docs/ai/components/estimate.md +33 -58
  547. package/docs/ai/components/file-gallery.md +48 -100
  548. package/docs/ai/components/file-upload.md +17 -53
  549. package/docs/ai/components/flip-card.md +31 -23
  550. package/docs/ai/components/flow.md +37 -65
  551. package/docs/ai/components/form-builder.md +35 -75
  552. package/docs/ai/components/form-layout.md +10 -20
  553. package/docs/ai/components/funnel.md +33 -48
  554. package/docs/ai/components/gantt.md +27 -23
  555. package/docs/ai/components/gauge.md +16 -17
  556. package/docs/ai/components/grid.md +116 -0
  557. package/docs/ai/components/heatmap.md +21 -21
  558. package/docs/ai/components/image.md +7 -13
  559. package/docs/ai/components/input.md +38 -70
  560. package/docs/ai/components/invoice.md +35 -36
  561. package/docs/ai/components/kanban.md +32 -61
  562. package/docs/ai/components/key-value.md +32 -16
  563. package/docs/ai/components/kpi.md +38 -73
  564. package/docs/ai/components/layout.md +29 -23
  565. package/docs/ai/components/leaderboard.md +28 -37
  566. package/docs/ai/components/link-preview.md +12 -18
  567. package/docs/ai/components/link.md +10 -7
  568. package/docs/ai/components/list.md +21 -5
  569. package/docs/ai/components/location.md +21 -25
  570. package/docs/ai/components/login.md +14 -9
  571. package/docs/ai/components/map.md +27 -33
  572. package/docs/ai/components/markdown.md +20 -24
  573. package/docs/ai/components/masonry.md +10 -14
  574. package/docs/ai/components/mentions.md +26 -12
  575. package/docs/ai/components/menu.md +54 -52
  576. package/docs/ai/components/message-strip.md +20 -20
  577. package/docs/ai/components/metric-table.md +14 -21
  578. package/docs/ai/components/modal.md +27 -18
  579. package/docs/ai/components/music-player.md +49 -41
  580. package/docs/ai/components/nav.md +34 -31
  581. package/docs/ai/components/network-graph.md +27 -42
  582. package/docs/ai/components/notification-center.md +31 -33
  583. package/docs/ai/components/order-tracker.md +36 -27
  584. package/docs/ai/components/org-chart.md +36 -31
  585. package/docs/ai/components/pagination.md +34 -26
  586. package/docs/ai/components/paint.md +53 -91
  587. package/docs/ai/components/pdf-viewer.md +35 -36
  588. package/docs/ai/components/permission-matrix.md +26 -31
  589. package/docs/ai/components/podcast-player.md +64 -70
  590. package/docs/ai/components/pricing-table.md +37 -48
  591. package/docs/ai/components/product-card.md +58 -41
  592. package/docs/ai/components/progress-ring.md +20 -24
  593. package/docs/ai/components/progress.md +28 -45
  594. package/docs/ai/components/qr-code.md +25 -27
  595. package/docs/ai/components/qr-reader.md +20 -23
  596. package/docs/ai/components/radio.md +17 -15
  597. package/docs/ai/components/range-slider.md +22 -11
  598. package/docs/ai/components/rating.md +29 -33
  599. package/docs/ai/components/receipt.md +50 -127
  600. package/docs/ai/components/recipe.md +44 -42
  601. package/docs/ai/components/sankey.md +21 -30
  602. package/docs/ai/components/scheduler.md +29 -41
  603. package/docs/ai/components/segmented-control.md +11 -15
  604. package/docs/ai/components/select.md +58 -102
  605. package/docs/ai/components/skeleton.md +16 -30
  606. package/docs/ai/components/slider.md +26 -20
  607. package/docs/ai/components/sortable.md +25 -27
  608. package/docs/ai/components/sparkline.md +21 -17
  609. package/docs/ai/components/spinner.md +9 -5
  610. package/docs/ai/components/split-button.md +10 -13
  611. package/docs/ai/components/split-pane.md +19 -14
  612. package/docs/ai/components/spotlight.md +31 -26
  613. package/docs/ai/components/spreadsheet.md +51 -97
  614. package/docs/ai/components/stat-group.md +9 -19
  615. package/docs/ai/components/step-input.md +17 -15
  616. package/docs/ai/components/stepper.md +14 -15
  617. package/docs/ai/components/switch.md +15 -9
  618. package/docs/ai/components/table.md +24 -84
  619. package/docs/ai/components/tabs.md +18 -10
  620. package/docs/ai/components/tag-input.md +18 -29
  621. package/docs/ai/components/tag.md +10 -22
  622. package/docs/ai/components/terminal.md +9 -9
  623. package/docs/ai/components/testimonial.md +9 -19
  624. package/docs/ai/components/textarea.md +15 -16
  625. package/docs/ai/components/theme.md +3 -3
  626. package/docs/ai/components/time-picker.md +30 -49
  627. package/docs/ai/components/time-range-picker.md +16 -15
  628. package/docs/ai/components/timeline.md +5 -4
  629. package/docs/ai/components/timer.md +8 -8
  630. package/docs/ai/components/toast.md +24 -18
  631. package/docs/ai/components/tooltip.md +11 -22
  632. package/docs/ai/components/tree.md +9 -9
  633. package/docs/ai/components/treemap.md +14 -13
  634. package/docs/ai/components/user-card.md +21 -27
  635. package/docs/ai/components/video-player.md +35 -52
  636. package/docs/ai/components/virtual-scroller.md +1 -1
  637. package/docs/ai/components/waterfall.md +17 -16
  638. package/docs/ai/components/weather.md +19 -34
  639. package/docs/ai/components/work-order.md +58 -134
  640. package/docs/ai/patterns.md +87 -0
  641. package/docs/ai/react-integration.md +97 -0
  642. package/docs/components/accordion.md +72 -151
  643. package/docs/components/action-bar.md +185 -0
  644. package/docs/components/activity-feed.md +9 -14
  645. package/docs/components/alert.md +17 -109
  646. package/docs/components/app-tiles.md +58 -43
  647. package/docs/components/approval-flow.md +8 -14
  648. package/docs/components/audio-recorder.md +45 -51
  649. package/docs/components/availability.md +30 -45
  650. package/docs/components/avatar-group.md +34 -14
  651. package/docs/components/avatar.md +20 -55
  652. package/docs/components/badge.md +53 -470
  653. package/docs/components/banner.md +44 -30
  654. package/docs/components/binpack.md +208 -0
  655. package/docs/components/book.md +78 -57
  656. package/docs/components/booking.md +35 -87
  657. package/docs/components/breadcrumbs.md +74 -448
  658. package/docs/components/button.md +72 -603
  659. package/docs/components/calendar.md +77 -261
  660. package/docs/components/camera-annotate.md +44 -96
  661. package/docs/components/camera.md +94 -333
  662. package/docs/components/candlestick.md +79 -116
  663. package/docs/components/card.md +51 -689
  664. package/docs/components/carousel.md +29 -76
  665. package/docs/components/cart.md +44 -136
  666. package/docs/components/chart.md +95 -438
  667. package/docs/components/chat.md +175 -439
  668. package/docs/components/checkbox.md +52 -609
  669. package/docs/components/chip.md +45 -574
  670. package/docs/components/code-block.md +157 -421
  671. package/docs/components/color-display.md +45 -54
  672. package/docs/components/color-picker.md +103 -36
  673. package/docs/components/command-palette.md +98 -92
  674. package/docs/components/comments.md +16 -10
  675. package/docs/components/countdown.md +15 -20
  676. package/docs/components/cropper.md +14 -16
  677. package/docs/components/data-card.md +16 -15
  678. package/docs/components/date-picker.md +45 -25
  679. package/docs/components/date-range-picker.md +140 -87
  680. package/docs/components/date-time-picker.md +25 -28
  681. package/docs/components/diff.md +22 -17
  682. package/docs/components/divider.md +18 -20
  683. package/docs/components/doc.md +105 -197
  684. package/docs/components/draw.md +117 -223
  685. package/docs/components/drawer.md +113 -478
  686. package/docs/components/empty-state.md +13 -29
  687. package/docs/components/estimate.md +58 -118
  688. package/docs/components/file-gallery.md +123 -495
  689. package/docs/components/file-upload.md +36 -123
  690. package/docs/components/flip-card.md +30 -34
  691. package/docs/components/flow.md +74 -89
  692. package/docs/components/form-builder.md +59 -86
  693. package/docs/components/form-layout.md +21 -31
  694. package/docs/components/funnel.md +21 -22
  695. package/docs/components/gantt.md +5 -5
  696. package/docs/components/gauge.md +5 -23
  697. package/docs/components/grid.md +249 -0
  698. package/docs/components/heatmap.md +13 -55
  699. package/docs/components/image.md +28 -32
  700. package/docs/components/input.md +25 -14
  701. package/docs/components/invoice.md +34 -33
  702. package/docs/components/kanban.md +99 -394
  703. package/docs/components/key-value.md +22 -12
  704. package/docs/components/kpi.md +41 -112
  705. package/docs/components/layout.md +7 -13
  706. package/docs/components/leaderboard.md +52 -76
  707. package/docs/components/link-preview.md +20 -16
  708. package/docs/components/link.md +22 -19
  709. package/docs/components/list.md +44 -26
  710. package/docs/components/location.md +9 -13
  711. package/docs/components/login.md +42 -36
  712. package/docs/components/map.md +24 -46
  713. package/docs/components/markdown.md +14 -25
  714. package/docs/components/masonry.md +15 -13
  715. package/docs/components/mentions.md +36 -25
  716. package/docs/components/menu.md +39 -46
  717. package/docs/components/message-strip.md +15 -51
  718. package/docs/components/metric-table.md +50 -72
  719. package/docs/components/modal.md +32 -43
  720. package/docs/components/music-player.md +41 -49
  721. package/docs/components/nav.md +23 -13
  722. package/docs/components/network-graph.md +14 -13
  723. package/docs/components/notification-center.md +68 -172
  724. package/docs/components/order-tracker.md +72 -117
  725. package/docs/components/org-chart.md +58 -207
  726. package/docs/components/pagination.md +67 -89
  727. package/docs/components/paint.md +86 -172
  728. package/docs/components/pdf-viewer.md +46 -151
  729. package/docs/components/permission-matrix.md +61 -112
  730. package/docs/components/podcast-player.md +41 -119
  731. package/docs/components/pricing-table.md +104 -147
  732. package/docs/components/product-card.md +94 -197
  733. package/docs/components/progress-ring.md +29 -32
  734. package/docs/components/progress.md +30 -61
  735. package/docs/components/qr-code.md +53 -61
  736. package/docs/components/qr-reader.md +53 -42
  737. package/docs/components/radio.md +42 -40
  738. package/docs/components/range-slider.md +41 -30
  739. package/docs/components/rating.md +50 -84
  740. package/docs/components/receipt.md +91 -129
  741. package/docs/components/recipe.md +107 -216
  742. package/docs/components/sankey.md +47 -83
  743. package/docs/components/scheduler.md +81 -184
  744. package/docs/components/segmented-control.md +48 -40
  745. package/docs/components/select.md +107 -129
  746. package/docs/components/skeleton.md +33 -47
  747. package/docs/components/slider.md +49 -53
  748. package/docs/components/sortable.md +43 -186
  749. package/docs/components/sparkline.md +26 -25
  750. package/docs/components/spinner.md +32 -37
  751. package/docs/components/split-button.md +43 -23
  752. package/docs/components/split-pane.md +41 -58
  753. package/docs/components/spotlight.md +53 -145
  754. package/docs/components/spreadsheet.md +84 -307
  755. package/docs/components/stat-group.md +27 -61
  756. package/docs/components/step-input.md +44 -41
  757. package/docs/components/stepper.md +55 -89
  758. package/docs/components/switch.md +39 -39
  759. package/docs/components/table.md +27 -32
  760. package/docs/components/tabs.md +36 -27
  761. package/docs/components/tag-input.md +50 -176
  762. package/docs/components/tag.md +12 -50
  763. package/docs/components/terminal.md +32 -37
  764. package/docs/components/testimonial.md +24 -81
  765. package/docs/components/textarea.md +9 -14
  766. package/docs/components/theme.md +10 -23
  767. package/docs/components/time-picker.md +48 -72
  768. package/docs/components/time-range-picker.md +22 -41
  769. package/docs/components/timeline.md +7 -14
  770. package/docs/components/timer.md +16 -32
  771. package/docs/components/toast.md +19 -45
  772. package/docs/components/tooltip.md +13 -115
  773. package/docs/components/tree.md +2 -19
  774. package/docs/components/treemap.md +19 -43
  775. package/docs/components/user-card.md +13 -22
  776. package/docs/components/video-player.md +53 -227
  777. package/docs/components/virtual-scroller.md +11 -44
  778. package/docs/components/waterfall.md +58 -137
  779. package/docs/components/weather.md +94 -153
  780. package/docs/components/work-order.md +56 -143
  781. package/docs/plans/2026-03-09-action-bar-design.md +104 -0
  782. package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
  783. package/docs/plans/2026-03-10-grid-component-design.md +138 -0
  784. package/docs/plans/2026-03-10-grid-component-plan.md +716 -0
  785. package/docs/plans/2026-03-10-react-integration-design.md +166 -0
  786. package/docs/plans/2026-03-10-react-integration-plan.md +1178 -0
  787. package/docs/react-integration.md +508 -0
  788. package/docs/request-response.md +63 -0
  789. package/package.json +1 -1
  790. package/bin/templates/base/README.md +0 -33
  791. package/bin/templates/base/global.d.ts +0 -14
  792. package/bin/templates/base/index.html +0 -13
  793. package/bin/templates/base/package.json +0 -21
  794. package/bin/templates/base/src/components/counter-button.ts +0 -88
  795. package/bin/templates/base/src/components/counter-button.types.ts +0 -7
  796. package/bin/templates/base/src/components/feature-card.ts +0 -59
  797. package/bin/templates/base/src/components/feature-card.types.ts +0 -5
  798. package/bin/templates/base/src/controllers/counter-controller.ts +0 -24
  799. package/bin/templates/base/src/main.ts +0 -24
  800. package/bin/templates/base/src/pages/about-page.ts +0 -68
  801. package/bin/templates/base/src/pages/home-page.ts +0 -105
  802. package/bin/templates/base/src/pages/not-found-page.ts +0 -55
  803. package/bin/templates/base/src/router.ts +0 -9
  804. package/bin/templates/base/src/styles/global.css +0 -27
  805. package/bin/templates/base/src/types/api-response.ts +0 -5
  806. package/bin/templates/base/src/types/status.ts +0 -1
  807. package/bin/templates/base/src/types/theme.ts +0 -1
  808. package/bin/templates/base/src/types/user.ts +0 -5
  809. package/bin/templates/base/vite.config.ts +0 -38
  810. package/bin/templates/pwa/public/vite.svg +0 -1
  811. package/bin/templates/pwa/src/router.ts +0 -20
  812. package/bin/templates/pwa/src/styles/global.css +0 -64
  813. /package/bin/templates/{pwa → default}/README.md +0 -0
  814. /package/bin/templates/{pwa → default}/global.d.ts +0 -0
  815. /package/bin/templates/{pwa → default}/package.json +0 -0
  816. /package/bin/templates/{pwa → default}/public/icons/.gitkeep +0 -0
  817. /package/bin/templates/{base → default}/public/vite.svg +0 -0
  818. /package/bin/templates/{pwa → default}/src/fetcher.ts +0 -0
  819. /package/bin/templates/{pwa → default}/src/guards/auth.ts +0 -0
  820. /package/bin/templates/{pwa → default}/src/middleware/auth.ts +0 -0
  821. /package/bin/templates/{pwa → default}/src/middleware/retry.ts +0 -0
  822. /package/bin/templates/{pwa → default}/src/services/auth.ts +0 -0
  823. /package/bin/templates/{pwa → default}/src/services/jwt.ts +0 -0
  824. /package/bin/templates/{pwa → default}/src/services/storage.ts +0 -0
  825. /package/bin/templates/{pwa → default}/src/types/auth.ts +0 -0
  826. /package/bin/templates/{pwa → default}/src/types/notifications.ts +0 -0
  827. /package/bin/templates/{pwa → default}/tests/helpers/test-utils.ts +0 -0
  828. /package/bin/templates/{pwa → default}/tests/middleware/auth.test.ts +0 -0
  829. /package/bin/templates/{pwa → default}/tests/middleware/error.test.ts +0 -0
  830. /package/bin/templates/{pwa → default}/tests/middleware/retry.test.ts +0 -0
  831. /package/bin/templates/{pwa → default}/tests/services/auth.test.ts +0 -0
  832. /package/bin/templates/{pwa → default}/tests/services/jwt.test.ts +0 -0
  833. /package/bin/templates/{pwa → default}/tests/services/storage.test.ts +0 -0
  834. /package/bin/templates/{pwa → default}/vite.config.ts +0 -0
  835. /package/bin/templates/{pwa → default}/vitest.config.ts +0 -0
@@ -5,33 +5,29 @@ Audio recording with visualization and playback.
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- autoStart: boolean = false;
8
+ autoStart: boolean = false; // attr: auto-start
9
9
  format: 'audio/webm'|'audio/ogg'|'audio/mp4'|'audio/wav' = 'audio/webm';
10
10
  bitrate: number = 128000;
11
- showControls: boolean = true;
12
- showVisualizer: boolean = true;
13
- maxDuration: number = 0;
14
- showTimer: boolean = true;
15
- showPlayback: boolean = true;
16
- recordedUrl: string = ''; // URL of recorded audio (set after stop)
11
+ showControls: boolean = true; // attr: show-controls
12
+ showVisualizer: boolean = true; // attr: show-visualizer
13
+ maxDuration: number = 0; // attr: max-duration, 0=unlimited
14
+ showTimer: boolean = true; // attr: show-timer
15
+ showPlayback: boolean = true; // attr: show-playback
16
+ recordedUrl: string = ''; // URL of recorded audio (set after stop)
17
17
  ```
18
18
 
19
19
  ## Methods
20
20
 
21
- ```typescript
22
- start(): Promise<void>
23
- stop(): Promise<AudioRecording>
24
- pause(): void
25
- resume(): void
26
- cancel(): void
27
- getState(): 'inactive'|'recording'|'paused'
28
- getDuration(): number
29
- isRecording(): boolean
30
- download(filename?: string): void
31
- reset(): void
32
- ```
33
-
34
- ## AudioRecording
21
+ - `start(): Promise<void>` - Start recording
22
+ - `stop(): Promise<AudioRecording>` - Stop and return recording
23
+ - `pause()` - Pause recording
24
+ - `resume()` - Resume recording
25
+ - `cancel()` - Cancel and discard
26
+ - `getState(): 'inactive'|'recording'|'paused'`
27
+ - `getDuration(): number` - Duration in seconds
28
+ - `isRecording(): boolean`
29
+ - `download(filename?)` - Download recorded audio
30
+ - `reset()` - Reset state and discard playback
35
31
 
36
32
  ```typescript
37
33
  interface AudioRecording {
@@ -46,31 +42,29 @@ interface AudioRecording {
46
42
 
47
43
  ## Events
48
44
 
49
- - `recorder-start` - Recording started
50
- - `recorder-stop` - Recording stopped
51
- - `recorder-pause` - Paused
52
- - `recorder-resume` - Resumed
53
- - `recorder-cancel` - Cancelled
54
- - `recorder-error` - Error
45
+ - `recorder-start` → `{ recorder }` - Recording started
46
+ - `recorder-stop` → `{ recorder }` - Recording stopped
47
+ - `recorder-pause` → `{ recorder }` - Paused
48
+ - `recorder-resume` → `{ recorder }` - Resumed
49
+ - `recorder-cancel` → `{ recorder }` - Cancelled
50
+ - `recorder-error` → `{ recorder, error }` - Error
55
51
 
56
- ## Usage
57
-
58
- ```javascript
59
- // Start
60
- await recorder.start();
52
+ ## CSS Parts
61
53
 
62
- // Stop and get recording
63
- const recording = await recorder.stop();
64
- // { blob, url, duration, size, format, timestamp }
54
+ - `base` - Outer recorder container
55
+ - `controls` - Recording and playback control buttons
56
+ - `visualizer` - Audio frequency visualizer bar container
57
+ - `progress` - Playback progress bar
65
58
 
66
- // Pause/resume
67
- recorder.pause();
68
- recorder.resume();
59
+ ## Basic Usage
69
60
 
70
- // Cancel
71
- recorder.cancel();
61
+ ```html
62
+ <snice-audio-recorder auto-start format="audio/mp4" bitrate="256000" max-duration="60"></snice-audio-recorder>
63
+ ```
72
64
 
73
- // Download
65
+ ```javascript
66
+ await recorder.start();
67
+ const recording = await recorder.stop();
74
68
  recorder.download('recording.webm');
75
69
 
76
70
  // Upload
@@ -78,29 +72,3 @@ const formData = new FormData();
78
72
  formData.append('audio', recording.blob);
79
73
  await fetch('/upload', { method: 'POST', body: formData });
80
74
  ```
81
-
82
- ```html
83
- <snice-audio-recorder
84
- auto-start
85
- format="audio/mp4"
86
- bitrate="256000"
87
- max-duration="60">
88
- </snice-audio-recorder>
89
- ```
90
-
91
- **CSS Parts:**
92
- - `base` - Outer recorder container div
93
- - `controls` - Recording and playback control buttons
94
- - `visualizer` - Audio frequency visualizer bar container
95
- - `progress` - Playback progress bar
96
-
97
- ## Features
98
-
99
- - MediaRecorder API
100
- - Real-time visualizer
101
- - Pause/resume
102
- - Timer
103
- - Multiple formats
104
- - Playback
105
- - Download
106
- - Requires HTTPS
@@ -11,11 +11,7 @@ startHour: number = 0; // attr: start-hour
11
11
  endHour: number = 24; // attr: end-hour
12
12
  format: '12h'|'24h' = '12h';
13
13
  readonly: boolean = false;
14
- ```
15
-
16
- ## Interfaces
17
14
 
18
- ```typescript
19
15
  interface AvailabilityRange {
20
16
  day: number; // 0=Mon, 1=Tue, ..., 6=Sun
21
17
  start: string; // "HH:MM"
@@ -31,51 +27,34 @@ interface AvailabilityRange {
31
27
 
32
28
  ## Events
33
29
 
34
- - `availability-change` -> `{ value: AvailabilityRange[] }`
30
+ - `availability-change` `{ value: AvailabilityRange[] }`
35
31
 
36
- ## Usage
32
+ ## CSS Parts
33
+
34
+ - `base` - Main container
35
+ - `header` - Header with title and presets
36
+ - `grid` - Availability grid
37
+
38
+ ## Basic Usage
37
39
 
38
40
  ```html
39
41
  <snice-availability start-hour="8" end-hour="18" granularity="30"></snice-availability>
42
+ <snice-availability format="24h"></snice-availability>
43
+ <snice-availability readonly></snice-availability>
40
44
  ```
41
45
 
42
46
  ```typescript
43
- // Pre-fill
44
47
  availability.setAvailability([
45
48
  { day: 0, start: '09:00', end: '17:00' },
46
49
  { day: 1, start: '09:00', end: '17:00' },
47
50
  ]);
48
-
49
- // Listen for changes
50
- availability.addEventListener('availability-change', e => {
51
- console.log(e.detail.value);
52
- });
53
-
54
- // Read current state
51
+ availability.addEventListener('availability-change', e => console.log(e.detail.value));
55
52
  const ranges = availability.getAvailability();
56
-
57
- // Clear all
58
53
  availability.clear();
59
-
60
- <!-- Readonly display -->
61
- <snice-availability readonly></snice-availability>
62
-
63
- <!-- 24h format -->
64
- <snice-availability format="24h"></snice-availability>
65
54
  ```
66
55
 
67
- **CSS Parts:**
68
- - `base` - Main container
69
- - `header` - Header with title and presets
70
- - `grid` - Availability grid
71
-
72
- ## Features
56
+ ## Accessibility
73
57
 
74
58
  - Click or drag to toggle cells
75
59
  - Presets: Business Hours, Weekdays Only, Clear All
76
- - Readonly mode
77
- - 12h/24h time format
78
- - Configurable granularity (15/30/60 min)
79
- - Configurable hour range
80
- - Legend and total hours counter
81
- - Drag painting (add/remove mode)
60
+ - Visual legend and total hours counter
@@ -5,13 +5,11 @@ Row of overlapping avatars with "+N" overflow indicator.
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- avatars: AvatarGroupItem[] = []; // Array of avatar data (set via JS property)
9
- max: number = 5; // Max visible before "+N"
8
+ avatars: AvatarGroupItem[] = []; // Array of avatar data (set via JS)
9
+ max: number = 5; // Max visible before "+N"
10
10
  size: 'small'|'medium'|'large' = 'medium';
11
- overlap: number = 8; // Overlap in px
12
- ```
11
+ overlap: number = 8; // Overlap in px
13
12
 
14
- ```typescript
15
13
  interface AvatarGroupItem {
16
14
  src?: string; // Image URL
17
15
  initials?: string; // Fallback initials
@@ -20,18 +18,32 @@ interface AvatarGroupItem {
20
18
  }
21
19
  ```
22
20
 
21
+ ## Events
22
+
23
+ - `avatar-click` → `{ avatar: AvatarGroupItem, index: number }`
24
+ - `overflow-click` → `{ remaining: number, avatars: AvatarGroupItem[] }`
25
+
23
26
  ## Slots
24
27
 
25
28
  - `(default)` - `<snice-avatar>` elements for declarative mode
26
29
 
27
- ## Events
30
+ ## CSS Parts
28
31
 
29
- - `avatar-click` `{ avatar: AvatarGroupItem, index: number }`
30
- - `overflow-click` `{ remaining: number, avatars: AvatarGroupItem[] }`
32
+ - `base` - The avatar group container
33
+ - `avatar` - Individual avatar buttons
34
+ - `overflow` - The "+N" overflow button
31
35
 
32
- ## Usage
36
+ ## Basic Usage
33
37
 
34
38
  ```html
39
+ <!-- Declarative -->
40
+ <snice-avatar-group max="3" size="medium">
41
+ <snice-avatar name="Alice Johnson"></snice-avatar>
42
+ <snice-avatar name="Bob Smith" src="/avatars/bob.jpg"></snice-avatar>
43
+ <snice-avatar name="Carol Williams"></snice-avatar>
44
+ </snice-avatar-group>
45
+
46
+ <!-- Programmatic -->
35
47
  <snice-avatar-group id="group" max="3" size="medium"></snice-avatar-group>
36
48
  ```
37
49
 
@@ -51,7 +63,8 @@ group.addEventListener('overflow-click', (e) => {
51
63
  });
52
64
  ```
53
65
 
54
- **CSS Parts:**
55
- - `base` - The avatar group container
56
- - `avatar` - Individual avatar buttons
57
- - `overflow` - The "+N" overflow button
66
+ ## Accessibility
67
+
68
+ - `role="group"` with `aria-label="Avatar group"`
69
+ - Each avatar is a `<button>` with title and aria-label
70
+ - Focus styles on all interactive elements
@@ -1,42 +1,61 @@
1
1
  # snice-avatar
2
2
 
3
- User profile images with fallback initials.
3
+ User profile image with automatic fallback to name-based initials or default person icon.
4
+
5
+ ## Table of Contents
6
+ - [Properties](#properties)
7
+ - [Methods](#methods)
8
+ - [CSS Custom Properties](#css-custom-properties)
9
+ - [CSS Parts](#css-parts)
10
+ - [Basic Usage](#basic-usage)
11
+ - [Examples](#examples)
4
12
 
5
13
  ## Properties
6
14
 
7
15
  ```typescript
8
- src: string = '';
9
- alt: string = '';
10
- name: string = '';
16
+ src: string = ''; // Image URL
17
+ alt: string = ''; // Alt text (falls back to `name`)
18
+ name: string = ''; // User's name (initials + color generation)
11
19
  size: 'xs'|'small'|'medium'|'large'|'xl'|'xxl' = 'medium';
12
20
  shape: 'circle'|'square'|'rounded' = 'circle';
13
- fallbackColor: string = '#ffffff';
14
- fallbackBackground: string = '';
21
+ fallbackColor: string = '#ffffff'; // attr: fallback-color — text color for initials
22
+ fallbackBackground: string = ''; // attr: fallback-background — overrides auto-color
15
23
  ```
16
24
 
17
25
  ## Methods
18
26
 
19
- - `getInitials(name)` - Extract initials from name
27
+ - `getInitials(name: string): string` - Extract initials from a name string
28
+
29
+ ## CSS Custom Properties
30
+
31
+ - `--avatar-size` - Avatar dimensions (varies by `size`)
32
+ - `--avatar-bg` - Background color (auto-generated from name)
33
+ - `--avatar-color` - Text/icon color (default: `rgb(255 255 255)`)
34
+
35
+ ## CSS Parts
36
+
37
+ - `base` - Outer avatar container
38
+ - `image` - The `<img>` element (when loaded)
39
+ - `fallback` - Initials or default icon container
40
+
41
+ ## Basic Usage
20
42
 
21
- ## Usage
43
+ ```html
44
+ <snice-avatar src="/user.jpg" name="John Doe"></snice-avatar>
45
+ ```
46
+
47
+ ## Examples
22
48
 
23
49
  ```html
24
- <!-- With image -->
25
- <snice-avatar
26
- src="/user.jpg"
27
- alt="John Doe"
28
- name="John Doe">
29
- </snice-avatar>
30
-
31
- <!-- Fallback to initials -->
50
+ <!-- Initials fallback (no image) -->
32
51
  <snice-avatar name="John Doe"></snice-avatar>
33
52
 
53
+ <!-- Default icon (no name or image) -->
54
+ <snice-avatar></snice-avatar>
55
+
34
56
  <!-- Sizes -->
35
57
  <snice-avatar name="JD" size="xs"></snice-avatar>
36
- <snice-avatar name="JD" size="small"></snice-avatar>
37
- <snice-avatar name="JD" size="medium"></snice-avatar>
38
58
  <snice-avatar name="JD" size="large"></snice-avatar>
39
- <snice-avatar name="JD" size="xl"></snice-avatar>
40
59
  <snice-avatar name="JD" size="xxl"></snice-avatar>
41
60
 
42
61
  <!-- Shapes -->
@@ -44,23 +63,20 @@ fallbackBackground: string = '';
44
63
  <snice-avatar name="JD" shape="square"></snice-avatar>
45
64
  <snice-avatar name="JD" shape="rounded"></snice-avatar>
46
65
 
47
- <!-- Custom colors -->
48
- <snice-avatar
49
- name="JD"
50
- fallback-color="#fff"
51
- fallback-background="#3b82f6">
52
- </snice-avatar>
53
- ```
66
+ <!-- Custom fallback colors -->
67
+ <snice-avatar name="Custom" fallback-color="#fff" fallback-background="#3b82f6"></snice-avatar>
54
68
 
55
- **CSS Parts:**
56
- - `base` - Outer avatar container
57
- - `image` - The `<img>` element (when image is loaded)
58
- - `fallback` - Initials or default icon container
69
+ <!-- Broken image falls back to initials -->
70
+ <snice-avatar src="https://broken-url.com/404.jpg" name="Fallback User"></snice-avatar>
71
+ ```
59
72
 
60
- ## Features
73
+ ### Size Reference
61
74
 
62
- - 6 size options (xs to xxl)
63
- - 3 shape options
64
- - Image with fallback to initials
65
- - Custom fallback colors
66
- - Auto-extracts initials from name
75
+ | Size | Dimensions | Font Size |
76
+ |------|-----------|-----------|
77
+ | `xs` | 1.5rem (24px) | 0.625rem |
78
+ | `small` | 2rem (32px) | 0.75rem |
79
+ | `medium` | 2.5rem (40px) | 0.875rem |
80
+ | `large` | 3rem (48px) | 1rem |
81
+ | `xl` | 4rem (64px) | 1.25rem |
82
+ | `xxl` | 6rem (96px) | 2rem |
@@ -17,10 +17,6 @@ pulse: boolean = false;
17
17
  offset: number = 0;
18
18
  ```
19
19
 
20
- ## Slots
21
-
22
- - `(default)` - Content the badge overlays
23
-
24
20
  ## Methods
25
21
 
26
22
  - `setBadgeContent(content)` - Set text content
@@ -28,57 +24,50 @@ offset: number = 0;
28
24
  - `showDot()` - Switch to dot mode
29
25
  - `hide()` - Clear all content
30
26
 
31
- ## Usage
27
+ ## Slots
28
+
29
+ - `(default)` - Content the badge overlays
30
+
31
+ ## CSS Parts
32
+
33
+ - `base` - Outer wrapper element
34
+ - `badge` - The badge indicator element
35
+
36
+ ## Basic Usage
32
37
 
33
38
  ```html
34
- <!-- Basic -->
35
39
  <snice-badge content="New"></snice-badge>
36
-
37
- <!-- Count badge -->
38
40
  <snice-badge count="5"></snice-badge>
39
-
40
- <!-- Max count (99+) -->
41
41
  <snice-badge count="150" max="99"></snice-badge>
42
-
43
- <!-- Dot indicator -->
44
42
  <snice-badge dot></snice-badge>
45
43
 
46
44
  <!-- On element -->
47
- <div style="position: relative; display: inline-block;">
45
+ <snice-badge count="3" variant="error">
48
46
  <button>Messages</button>
49
- <snice-badge count="3" variant="error"></snice-badge>
50
- </div>
47
+ </snice-badge>
51
48
 
52
49
  <!-- Variants -->
53
50
  <snice-badge content="New" variant="primary"></snice-badge>
54
- <snice-badge content="" variant="success"></snice-badge>
51
+ <snice-badge content="OK" variant="success"></snice-badge>
55
52
  <snice-badge content="!" variant="warning"></snice-badge>
56
- <snice-badge content="×" variant="error"></snice-badge>
53
+ <snice-badge content="x" variant="error"></snice-badge>
57
54
  <snice-badge content="i" variant="info"></snice-badge>
58
55
 
59
56
  <!-- Positions -->
60
- <snice-badge count="5" position="top-right"></snice-badge>
61
57
  <snice-badge count="5" position="top-left"></snice-badge>
62
58
  <snice-badge count="5" position="bottom-right"></snice-badge>
63
- <snice-badge count="5" position="bottom-left"></snice-badge>
64
59
 
65
60
  <!-- Inline -->
66
- <p>Status <snice-badge inline content="Active"></snice-badge></p>
61
+ <p>Status <snice-badge inline content="Active" variant="success"></snice-badge></p>
67
62
 
68
63
  <!-- Pulse animation -->
69
64
  <snice-badge dot pulse variant="error"></snice-badge>
70
- ```
71
65
 
72
- **CSS Parts:**
73
- - `base` - Outer wrapper element
74
- - `badge` - The badge indicator element
66
+ <!-- Custom offset -->
67
+ <snice-badge count="5" offset="5">...</snice-badge>
68
+ ```
75
69
 
76
- ## Features
70
+ ## Accessibility
77
71
 
78
- - 6 color variants
79
- - Count with max limit (shows 99+ style)
80
- - Dot mode for indicators
81
- - 4 positioning options
82
- - Inline or positioned
83
- - Pulse animation
84
- - Custom offset
72
+ - `role="status"` for screen reader announcements
73
+ - Descriptive `aria-label` on badge element
@@ -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)