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
@@ -1,6 +1,6 @@
1
1
  # snice-qr-code
2
2
 
3
- QR code generator with customizable styling and export.
3
+ QR code generator with customizable styling, center overlays, and export.
4
4
 
5
5
  ## Properties
6
6
 
@@ -8,7 +8,7 @@ QR code generator with customizable styling and export.
8
8
  value: string = '';
9
9
  size: number = 200;
10
10
  errorCorrectionLevel: 'L'|'M'|'Q'|'H' = 'M'; // attr: error-correction-level
11
- renderMode: 'canvas'|'svg' = 'canvas'; // attr: render-mode
11
+ renderMode: 'canvas'|'svg' = 'canvas'; // attr: render-mode
12
12
  dotStyle: 'square'|'rounded'|'dots' = 'square'; // attr: dot-style
13
13
  margin: number = 4;
14
14
  fgColor: string = '#000000'; // attr: fg-color
@@ -24,50 +24,48 @@ textOutlineColor: string = '#ffffff'; // attr: text-outline-color
24
24
 
25
25
  ## Methods
26
26
 
27
- - `toSVGString()` - Export as SVG markup string (sync, only when renderMode='svg')
27
+ - `toSVGString()` - SVG markup string (sync, only when renderMode='svg')
28
28
  - `toDataURL(type?, quality?)` - Export as data URL (async)
29
29
  - `toBlob(type?, quality?)` - Export as Blob (async)
30
30
  - `download(filename?)` - Download as image file
31
31
 
32
32
  ## CSS Custom Properties
33
33
 
34
- - `--qr-bg` - Container background
35
- - `--qr-border-radius` - Container border radius
36
- - `--qr-padding` - Container padding
34
+ - `--qr-bg` - Container background (`hsl(0 0% 100%)`)
35
+ - `--qr-border-radius` - Container border radius (`0`)
36
+ - `--qr-padding` - Container padding (`0`)
37
37
 
38
- ## Usage
38
+ ## CSS Parts
39
+
40
+ - `base` - QR code container div
41
+
42
+ ## Basic Usage
39
43
 
40
44
  ```html
41
- <snice-qr-code value="https://example.com" size="250"></snice-qr-code>
45
+ <snice-qr-code value="https://example.com"></snice-qr-code>
42
46
 
43
- <!-- Custom colors -->
44
- <snice-qr-code value="https://example.com" fg-color="#2196f3" bg-color="#e3f2fd"></snice-qr-code>
47
+ <!-- Custom colors + dot style -->
48
+ <snice-qr-code value="https://example.com" fg-color="#2196f3" dot-style="rounded"></snice-qr-code>
45
49
 
46
- <!-- With center image -->
50
+ <!-- Center image overlay (use high error correction) -->
47
51
  <snice-qr-code value="https://example.com" include-image image-url="/logo.png" error-correction-level="H"></snice-qr-code>
48
52
 
49
- <!-- Dot styles -->
50
- <snice-qr-code value="https://example.com" dot-style="rounded"></snice-qr-code>
53
+ <!-- Center text overlay -->
54
+ <snice-qr-code value="https://example.com" center-text="SCAN" error-correction-level="H"></snice-qr-code>
55
+
56
+ <!-- SVG render mode -->
57
+ <snice-qr-code value="https://example.com" render-mode="svg"></snice-qr-code>
51
58
  ```
52
59
 
53
60
  ```typescript
54
- qr.value = 'https://example.com';
61
+ const qr = document.querySelector('snice-qr-code');
55
62
  const url = await qr.toDataURL('image/png');
56
63
  const blob = await qr.toBlob('image/png');
57
64
  qr.download('qr-code.png');
65
+ const svg = qr.toSVGString(); // only when renderMode='svg'
58
66
  ```
59
67
 
60
- **CSS Parts:**
61
- - `base` - QR code container div
62
-
63
- ## Common Data Formats
68
+ ## Accessibility
64
69
 
65
- ```typescript
66
- // URL: 'https://example.com'
67
- // Email: 'mailto:name@example.com'
68
- // Phone: 'tel:+1234567890'
69
- // SMS: 'sms:+1234567890?body=Hello'
70
- // WiFi: 'WIFI:T:WPA;S:NetworkName;P:password;;'
71
- // Geo: 'geo:37.7749,-122.4194'
72
- // vCard: 'BEGIN:VCARD\nVERSION:3.0\nFN:Name\nEND:VCARD'
73
- ```
70
+ - Purely visual output, no interactive elements
71
+ - Provide adjacent text or wrapper `aria-label` for screen readers
@@ -1,6 +1,6 @@
1
1
  # snice-qr-reader
2
2
 
3
- QR code scanner using device camera and ZXing WASM decoder.
3
+ QR code scanner using device camera with real-time detection.
4
4
 
5
5
  ## Properties
6
6
 
@@ -15,10 +15,10 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
15
15
 
16
16
  ## Methods
17
17
 
18
- - `start()` - Start camera and scanning
18
+ - `start()` - Start camera and scanning (async)
19
19
  - `stop()` - Stop scanning and release camera
20
- - `snap()` - Take snapshot (manual-snap mode), returns QR data or null
21
- - `scanImage(file: File)` - Scan QR code from image file
20
+ - `snap()` - Take snapshot, returns QR data string or null (async)
21
+ - `scanImage(file: File)` - Scan QR code from image file (async)
22
22
  - `switchCamera()` - Toggle front/back camera
23
23
 
24
24
  ## Events
@@ -28,7 +28,15 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
28
28
  - `camera-ready` → `{ reader }`
29
29
  - `camera-error` → `{ error: any, reader }`
30
30
 
31
- ## Usage
31
+ ## CSS Custom Properties
32
+
33
+ - `--qr-reader-bg` - Container background (`rgb(0 0 0)`)
34
+ - `--qr-reader-overlay` - Overlay/gradient color (`rgb(0 0 0 / 0.7)`)
35
+ - `--qr-reader-controls-color` - Button icon/text color (`rgb(255 255 255)`)
36
+ - `--qr-reader-btn-bg` - Button background (`rgb(0 0 0 / 0.4)`)
37
+ - `--qr-reader-btn-hover-bg` - Button hover background (`rgb(0 0 0 / 0.6)`)
38
+
39
+ ## Basic Usage
32
40
 
33
41
  ```html
34
42
  <!-- Auto-start continuous scanning -->
@@ -46,28 +54,17 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
46
54
 
47
55
  ```typescript
48
56
  reader.addEventListener('qr-scan', (e) => console.log(e.detail.data));
49
- reader.start();
57
+ await reader.start();
50
58
 
51
59
  // Manual snap
52
60
  const result = await reader.snap();
61
+
62
+ // Scan from file
63
+ const data = await reader.scanImage(file);
53
64
  ```
54
65
 
55
- ## CSS Custom Properties
66
+ ## Accessibility
56
67
 
57
- - `--qr-reader-bg` - Container background (default: `rgb(0 0 0)`)
58
- - `--qr-reader-overlay` - Overlay/gradient color (default: `rgb(0 0 0 / 0.7)`)
59
- - `--qr-reader-controls-color` - Button icon/text color (default: `rgb(255 255 255)`)
60
- - `--qr-reader-btn-bg` - Button background (default: `rgb(0 0 0 / 0.4)`)
61
- - `--qr-reader-btn-hover-bg` - Button hover background (default: `rgb(0 0 0 / 0.6)`)
62
-
63
- ## Features
64
-
65
- - ZXing WASM decoder (Apache 2.0 + MIT)
66
- - Web Worker for non-blocking detection
67
- - Front/back camera switching
68
- - Configurable scan speed (1-10)
69
- - Pick-first mode (max speed, auto-stop)
70
- - Manual snapshot mode
71
- - Tap-to-start interaction
68
+ - Requires HTTPS for mobile camera access
69
+ - Built-in control buttons with icon labels
72
70
  - Camera released on stop/dispose
73
- - HTTPS required for mobile
@@ -1,6 +1,6 @@
1
1
  # snice-radio
2
2
 
3
- Form radio button input with automatic group management.
3
+ Form radio button input with automatic group management by name.
4
4
 
5
5
  ## Properties
6
6
 
@@ -15,19 +15,19 @@ size: 'small'|'medium'|'large' = 'medium';
15
15
  name: string = ''; // Group name for mutual exclusion
16
16
  value: string = '';
17
17
  label: string = '';
18
- description: string = ''; // Subtitle text (block variant)
18
+ description: string = ''; // Subtitle text (block variant only)
19
19
  ```
20
20
 
21
21
  ## Methods
22
22
 
23
- - `focus()` - Focus radio
23
+ - `focus()` - Focus radio input
24
24
  - `blur()` - Remove focus
25
25
  - `click()` - Programmatic click
26
26
  - `select()` - Select and fire change event
27
27
 
28
28
  ## Events
29
29
 
30
- - `radio-change` → `{ checked, value, radio }`
30
+ - `radio-change` → `{ checked: boolean, value: string, radio: SniceRadioElement }`
31
31
 
32
32
  ## Slots
33
33
 
@@ -35,15 +35,15 @@ description: string = ''; // Subtitle text (block variant)
35
35
 
36
36
  ## CSS Parts
37
37
 
38
- - `input` - Hidden radio input
38
+ - `input` - Hidden native radio input
39
39
  - `radio` - Radio circle container
40
40
  - `dot` - Inner dot indicator
41
41
  - `spinner` - Loading spinner
42
- - `label` - Label text
43
42
  - `content` - Content wrapper (block variant)
43
+ - `label` - Label text
44
44
  - `description` - Description text (block variant)
45
45
 
46
- ## Usage
46
+ ## Basic Usage
47
47
 
48
48
  ```html
49
49
  <!-- Radio group -->
@@ -59,7 +59,6 @@ description: string = ''; // Subtitle text (block variant)
59
59
  <snice-radio label="Disabled" disabled></snice-radio>
60
60
  <snice-radio label="Loading" loading></snice-radio>
61
61
  <snice-radio label="Invalid" invalid></snice-radio>
62
- <snice-radio label="Required" required></snice-radio>
63
62
 
64
63
  <!-- Block variant (card-style) -->
65
64
  <snice-radio variant="block" name="plan" value="free" label="Free" description="For individuals" checked>
@@ -76,11 +75,14 @@ radio.addEventListener('radio-change', (e) => {
76
75
  });
77
76
  ```
78
77
 
79
- ## Features
78
+ ## Keyboard Navigation
79
+
80
+ - Arrow keys navigate within group (wraps around)
81
+ - Focused radio is auto-selected
82
+
83
+ ## Accessibility
80
84
 
81
- - Automatic radio group management by name
82
- - 3 sizes
83
- - Block variant: card-style layout with description + suffix slot
84
- - Loading state with spinner
85
- - Keyboard accessible (arrow keys navigate group, wraps around)
86
- - Contains native `<input type="radio">` for form participation
85
+ - Native `<input type="radio">` for form participation
86
+ - `aria-invalid` when invalid
87
+ - Focus ring on keyboard navigation
88
+ - Required indicator on label
@@ -18,35 +18,46 @@ orientation: 'horizontal'|'vertical' = 'horizontal';
18
18
 
19
19
  ## Events
20
20
 
21
- - `range-change` -> `{ valueLow: number, valueHigh: number, component: SniceRangeSliderElement }`
21
+ - `range-change` `{ valueLow: number, valueHigh: number, component: SniceRangeSliderElement }`
22
22
 
23
23
  ## CSS Parts
24
24
 
25
25
  - `track` - The slider track
26
- - `range` - The highlighted range between thumbs
26
+ - `range` - Highlighted range between thumbs
27
27
  - `thumb-low` - Low value thumb
28
28
  - `thumb-high` - High value thumb
29
29
  - `label-min` - Min label text
30
30
  - `label-max` - Max label text
31
31
 
32
- ## Usage
32
+ ## Basic Usage
33
33
 
34
34
  ```html
35
- <!-- Basic -->
36
35
  <snice-range-slider value-low="20" value-high="80"></snice-range-slider>
37
36
 
38
- <!-- With tooltips -->
39
- <snice-range-slider show-tooltip value-low="25" value-high="75"></snice-range-slider>
40
-
41
- <!-- With labels -->
42
- <snice-range-slider show-labels min="0" max="1000"></snice-range-slider>
37
+ <!-- With tooltips and labels -->
38
+ <snice-range-slider show-tooltip show-labels min="0" max="1000" value-low="200" value-high="800"></snice-range-slider>
43
39
 
44
40
  <!-- Custom step -->
45
41
  <snice-range-slider min="0" max="100" step="5"></snice-range-slider>
46
42
 
47
43
  <!-- Vertical -->
48
44
  <snice-range-slider orientation="vertical" value-low="30" value-high="70"></snice-range-slider>
45
+ ```
49
46
 
50
- <!-- Disabled -->
51
- <snice-range-slider disabled value-low="20" value-high="60"></snice-range-slider>
47
+ ```typescript
48
+ slider.addEventListener('range-change', (e) => {
49
+ console.log(e.detail.valueLow, e.detail.valueHigh);
50
+ });
52
51
  ```
52
+
53
+ ## Keyboard Navigation
54
+
55
+ - Arrow keys adjust focused thumb by step
56
+ - Home/End move to min/max bounds
57
+ - Each thumb independently focusable
58
+
59
+ ## Accessibility
60
+
61
+ - `role="slider"` on each thumb with aria-valuenow/min/max
62
+ - Focus ring on keyboard navigation
63
+ - Track click moves nearest thumb
@@ -1,55 +1,40 @@
1
1
  # snice-rating
2
2
 
3
- Star rating input with full/half precision, custom icons, and keyboard navigation.
3
+ Interactive star rating input with full/half precision, custom icons, and keyboard navigation.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- value: number // Current rating value (default: 0)
9
- max: number // Maximum stars (default: 5)
10
- icon: string // Star character (default: '\u2605')
11
- size: 'small' | 'medium' | 'large' // Display size (default: 'medium')
12
- readonly: boolean // Disable interaction (default: false)
13
- precision: 'full' | 'half' // Click precision (default: 'full')
7
+ ```typescript
8
+ value: number = 0;
9
+ max: number = 5;
10
+ icon: string = '';
11
+ size: 'small'|'medium'|'large' = 'medium';
12
+ readonly: boolean = false;
13
+ precision: 'full'|'half' = 'full';
14
14
  ```
15
15
 
16
16
  ## Events
17
17
 
18
- - `rating-change` → `{ value: number }` - Rating value changed
19
-
20
- ## Keyboard
21
-
22
- - `ArrowRight` / `ArrowUp` - Increase value
23
- - `ArrowLeft` / `ArrowDown` - Decrease value
24
- - Step size: 1 (full) or 0.5 (half precision)
18
+ - `rating-change` → `{ value: number }`
25
19
 
26
20
  ## CSS Custom Properties
27
21
 
28
- ```css
29
- --rating-color /* Filled star color (default: --snice-color-warning) */
30
- --rating-color-empty /* Empty star color (default: --snice-color-border) */
31
- --rating-size /* Star size: small=1rem, medium=1.5rem, large=2rem */
32
- --snice-font-family
33
- --snice-transition-fast
34
- --snice-focus-ring-width
35
- --snice-focus-ring-color
36
- --snice-focus-ring-offset
37
- ```
22
+ - `--rating-color` - Filled star color (`var(--snice-color-warning)`)
23
+ - `--rating-color-empty` - Empty star color (`var(--snice-color-border)`)
24
+ - `--rating-size` - Star size (auto-set by `size`: small=1rem, medium=1.5rem, large=2rem)
25
+
26
+ ## CSS Parts
38
27
 
39
- **CSS Parts:**
40
28
  - `base` - Outer rating container
41
29
  - `star` - Individual star/icon element
42
30
 
43
- ## Accessibility
44
-
45
- Uses `role="radiogroup"` with individual `role="radio"` stars. Keyboard accessible when not readonly.
46
-
47
- ## Usage
31
+ ## Basic Usage
48
32
 
49
33
  ```html
50
- <snice-rating value="3.5" max="5" precision="half" size="large"></snice-rating>
34
+ <snice-rating value="3.5" precision="half" max="5"></snice-rating>
51
35
  <snice-rating value="4" readonly></snice-rating>
52
- <snice-rating icon="&#x2764;" max="10"></snice-rating>
36
+ <snice-rating icon="" value="3" max="5"></snice-rating>
37
+ <snice-rating value="4" size="large"></snice-rating>
53
38
  ```
54
39
 
55
40
  ```typescript
@@ -57,3 +42,14 @@ rating.addEventListener('rating-change', (e) => {
57
42
  console.log('New rating:', e.detail.value);
58
43
  });
59
44
  ```
45
+
46
+ ## Keyboard Navigation
47
+
48
+ - ArrowRight/Up: increase by step (1 or 0.5)
49
+ - ArrowLeft/Down: decrease by step
50
+
51
+ ## Accessibility
52
+
53
+ - `role="radiogroup"` with `role="radio"` per star
54
+ - Not focusable when readonly
55
+ - Focus ring on keyboard navigation
@@ -5,36 +5,33 @@ Transaction receipt display with items, totals, payment info, and multiple visua
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- receiptNumber: string = '' // attribute: receipt-number
9
- date: string = '' // Transaction date
10
- currency: string = 'USD' // ISO 4217 currency code
11
- locale: string = '' // Intl.NumberFormat locale
12
- merchant: ReceiptMerchant = { name: '' } // Merchant info (JS only)
13
- items: ReceiptItem[] = [] // Line items (JS only)
14
- tax: number = 0 // Single tax amount (absolute)
15
- taxes: ReceiptTaxLine[] = [] // Multiple tax lines (JS only)
16
- subtotal: number = 0 // Auto-computed from items if 0
17
- total: number = 0 // Auto-computed as subtotal + tax - discount + tip if 0
18
- tip: number = 0 // Tip/gratuity amount
19
- discount: number = 0 // Discount amount
20
- discountLabel: string = 'Discount' // attribute: discount-label
21
- paymentMethod: string = '' // attribute: payment-method
22
- paymentDetails: string = '' // attribute: payment-details
23
- variant: ReceiptVariant = 'standard' // 'standard'|'thermal'|'modern'|'minimal'|'detailed'
24
- showQr: boolean = false // attribute: show-qr — show QR slot
25
- qrData: string = '' // attribute: qr-data
26
- qrPosition: QrPosition = 'bottom' // attribute: qr-position — 'top'|'bottom'|'footer'
27
- thankYou: string = 'Thank you...' // attribute: thank-you
28
- cashier: string = '' // Cashier name
29
- terminalId: string = '' // attribute: terminal-id
8
+ receiptNumber: string = ''; // attr: receipt-number
9
+ date: string = '';
10
+ currency: string = 'USD';
11
+ locale: string = ''; // Intl.NumberFormat locale
12
+ merchant: ReceiptMerchant = { name: '' }; // JS only
13
+ items: ReceiptItem[] = []; // JS only
14
+ tax: number = 0;
15
+ taxes: ReceiptTaxLine[] = []; // JS only, overrides tax
16
+ subtotal: number = 0; // auto-computed from items if 0
17
+ total: number = 0; // auto-computed if 0
18
+ tip: number = 0;
19
+ discount: number = 0;
20
+ discountLabel: string = 'Discount'; // attr: discount-label
21
+ paymentMethod: string = ''; // attr: payment-method
22
+ paymentDetails: string = ''; // attr: payment-details
23
+ variant: 'standard'|'thermal'|'modern'|'minimal'|'detailed' = 'standard';
24
+ showQr: boolean = false; // attr: show-qr
25
+ qrData: string = ''; // attr: qr-data
26
+ qrPosition: 'top'|'bottom'|'footer' = 'bottom'; // attr: qr-position
27
+ thankYou: string = 'Thank you for your purchase!'; // attr: thank-you
28
+ cashier: string = '';
29
+ terminalId: string = ''; // attr: terminal-id
30
30
  ```
31
31
 
32
32
  ## Types
33
33
 
34
34
  ```typescript
35
- type ReceiptVariant = 'standard' | 'thermal' | 'modern' | 'minimal' | 'detailed';
36
- type QrPosition = 'top' | 'bottom' | 'footer';
37
-
38
35
  interface ReceiptMerchant {
39
36
  name: string; address?: string; logo?: string;
40
37
  phone?: string; email?: string; website?: string; taxId?: string;
@@ -43,101 +40,31 @@ interface ReceiptItem {
43
40
  name: string; quantity: number; price: number;
44
41
  sku?: string; discount?: number; note?: string;
45
42
  }
46
- interface ReceiptTaxLine {
47
- label: string; rate?: number; amount: number;
48
- }
43
+ interface ReceiptTaxLine { label: string; rate?: number; amount: number; }
49
44
  ```
50
45
 
46
+ ## Methods
47
+
48
+ - `print()` - Opens print dialog
49
+
51
50
  ## Slots
52
51
 
53
52
  - `(default)` - Footer content below thank-you message
54
53
  - `qr` - QR code content (shown when `show-qr` is set)
55
54
  - `barcode` - Barcode content
56
55
 
57
- ## Methods
58
-
59
- - `print()` - Opens print dialog
60
-
61
56
  ## CSS Parts
62
57
 
63
- ```
64
- ::part(base) /* Main container */
65
- ::part(header) /* Merchant section */
66
- ::part(logo) /* Merchant logo */
67
- ::part(merchant-name) /* Merchant name */
68
- ::part(merchant-address) /* Merchant address */
69
- ::part(merchant-contact) /* Phone/email/website line */
70
- ::part(meta) /* Receipt # / date / cashier / terminal */
71
- ::part(receipt-number) /* Receipt number value */
72
- ::part(date) /* Date value */
73
- ::part(items-header) /* Column header row */
74
- ::part(items) /* Items list */
75
- ::part(item) /* Individual item row */
76
- ::part(item-name) /* Item name */
77
- ::part(item-qty) /* Item quantity */
78
- ::part(item-price) /* Item price */
79
- ::part(item-sku) /* Item SKU (detailed variant) */
80
- ::part(totals) /* Totals section */
81
- ::part(subtotal-row) /* Subtotal line */
82
- ::part(tax-row) /* Tax line(s) */
83
- ::part(discount-row) /* Discount line */
84
- ::part(tip-row) /* Tip line */
85
- ::part(total-row) /* Grand total line */
86
- ::part(payment) /* Payment section */
87
- ::part(payment-method) /* Payment method text */
88
- ::part(payment-details) /* Auth code / change etc */
89
- ::part(footer) /* Footer section */
90
- ::part(thank-you) /* Thank-you message */
91
- ::part(qr-container) /* QR code wrapper */
92
- ::part(barcode-area) /* Barcode wrapper */
93
- ::part(divider) /* Section dividers */
94
- ```
58
+ - `base` - Root container
59
+ - `divider` - Section dividers
60
+ - `header`, `logo`, `merchant-name`, `merchant-address`, `merchant-contact` - Merchant section
61
+ - `meta`, `receipt-number`, `date` - Metadata section
62
+ - `items-header`, `items`, `item`, `item-name`, `item-sku`, `item-qty`, `item-price` - Items section
63
+ - `totals`, `subtotal-row`, `discount-row`, `tax-row`, `tip-row`, `total-row` - Totals section
64
+ - `payment`, `payment-method`, `payment-details` - Payment section
65
+ - `qr-container`, `barcode-area`, `footer`, `thank-you` - Footer section
95
66
 
96
- ## CSS Custom Properties
97
-
98
- ```css
99
- --receipt-max-width /* 22rem */
100
- --receipt-padding /* 1.5rem */
101
- --receipt-bg /* background */
102
- --receipt-text /* text color */
103
- --receipt-text-secondary /* secondary text */
104
- --receipt-text-tertiary /* tertiary text */
105
- --receipt-border /* border color */
106
- --receipt-bg-element /* element background */
107
- --receipt-header-bg /* header background */
108
- --receipt-accent /* accent color (modern) */
109
- --receipt-font-family /* font override */
110
- --receipt-merchant-font-size /* 1.25rem */
111
- --receipt-item-font-size /* 0.9375rem */
112
- --receipt-meta-font-size /* 0.8125rem */
113
- --receipt-total-font-size /* 1.125rem */
114
- --receipt-total-font-weight /* 700 */
115
- --receipt-footer-font-size /* 0.8125rem */
116
- --receipt-divider-style /* dashed */
117
- --receipt-divider-color /* border color */
118
- --receipt-divider-width /* 1px */
119
- --receipt-border-radius /* 8px */
120
- --receipt-border-color /* border */
121
- --receipt-shadow /* none */
122
- --receipt-thermal-font /* Courier New, monospace */
123
- --receipt-thermal-width /* 18rem */
124
- --receipt-thermal-bg /* rgb(255 255 248) */
125
- --receipt-modern-radius /* 12px */
126
- --receipt-modern-shadow /* 0 4px 24px ... */
127
- --receipt-modern-section-bg /* element bg */
128
- --receipt-modern-section-radius /* 8px */
129
- --receipt-qr-size /* 6rem */
130
- ```
131
-
132
- ## Variants
133
-
134
- - `standard` — Clean receipt with merchant header, items, totals, dashed dividers
135
- - `thermal` — Monospace, narrow-width, dotted separators, thermal printer aesthetic
136
- - `modern` — Card-based, rounded sections, shadows, accent-colored total
137
- - `minimal` — Stripped to essentials, no logo/address, uppercase merchant, thin dividers
138
- - `detailed` — Wide, grid meta, SKU/notes/per-item discounts, thick borders
139
-
140
- ## Usage
67
+ ## Basic Usage
141
68
 
142
69
  ```html
143
70
  <snice-receipt
@@ -146,14 +73,6 @@ interface ReceiptTaxLine {
146
73
  payment-method="Visa **** 4242"
147
74
  variant="standard">
148
75
  </snice-receipt>
149
-
150
- <!-- Thermal -->
151
- <snice-receipt variant="thermal"></snice-receipt>
152
-
153
- <!-- Modern with QR -->
154
- <snice-receipt variant="modern" show-qr qr-position="bottom">
155
- <snice-qr-code slot="qr" value="https://receipt.example.com/4521"></snice-qr-code>
156
- </snice-receipt>
157
76
  ```
158
77
 
159
78
  ```typescript
@@ -165,21 +84,25 @@ receipt.items = [
165
84
  receipt.tax = 1.15;
166
85
  receipt.tip = 2.00;
167
86
 
168
- // Detailed with tax breakdown
169
- receipt.variant = 'detailed';
87
+ // Multiple taxes
170
88
  receipt.taxes = [
171
89
  { label: 'State Tax', rate: 6, amount: 3.00 },
172
90
  { label: 'City Tax', rate: 2, amount: 1.00 }
173
91
  ];
174
- receipt.items = [{ name: 'Widget', quantity: 1, price: 50, sku: 'WDG-001', note: 'Gift wrapped' }];
175
92
  ```
176
93
 
94
+ ## Variants
95
+
96
+ - `standard` - Clean receipt with dashed dividers
97
+ - `thermal` - Monospace, narrow-width, thermal printer aesthetic
98
+ - `modern` - Card-based, rounded sections, shadows
99
+ - `minimal` - Stripped to essentials
100
+ - `detailed` - Wide, grid meta, SKU/notes/per-item discounts
101
+
177
102
  ## Notes
178
103
 
179
- - Subtotal auto-computed from items (with per-item discount subtracted) if not explicitly set
180
- - Total auto-computed as subtotal + tax - discount + tip if not explicitly set
181
- - `taxes` array takes precedence over single `tax` property
182
- - Quantity badge hidden when quantity is 1
183
- - SKU, notes, per-item discounts only visible in `detailed` variant
184
- - Thermal variant prints narrow; modern removes shadows for print
185
- - `@media print` styles included for all variants
104
+ - Subtotal auto-computed from items if not set
105
+ - Total auto-computed as subtotal + tax - discount + tip if not set
106
+ - `taxes` array overrides single `tax` property
107
+ - SKU, notes, per-item discounts only in `detailed` variant
108
+ - Print styles included for all variants