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
@@ -15,6 +15,7 @@ disabled: boolean = false;
15
15
  required: boolean = false;
16
16
  invalid: boolean = false;
17
17
  readonly: boolean = false;
18
+ loading: boolean = false;
18
19
  label: string = '';
19
20
  helperText: string = ''; // attr: helper-text
20
21
  errorText: string = ''; // attr: error-text
@@ -22,37 +23,42 @@ name: string = '';
22
23
  showValue: boolean = false; // attr: show-value
23
24
  showTicks: boolean = false; // attr: show-ticks
24
25
  vertical: boolean = false;
25
- loading: boolean = false;
26
- // form-align: CSS-only attribute (no JS property). Gives the slider track area
27
- // min-height: 2.5rem (40px) so it aligns with input/select fields in form rows.
26
+ // form-align: CSS-only attribute, aligns with inputs in form rows
28
27
  ```
29
28
 
29
+ ## Methods
30
+
31
+ - `focus()` / `blur()` - Focus/blur thumb
32
+ - `checkValidity()` - Returns boolean
33
+ - `reportValidity()` - Returns boolean
34
+ - `setCustomValidity(message)` - Set validation message
35
+
30
36
  ## Events
31
37
 
32
- - `slider-input` → `{ value, slider }` - During drag
33
- - `slider-change` → `{ value, slider }` - After drag complete
38
+ - `slider-input` → `{ value: number, slider }` - During drag
39
+ - `slider-change` → `{ value: number, slider }` - After commit
34
40
 
35
- ## Methods
41
+ ## CSS Parts
36
42
 
37
- - `focus()` - Focus slider thumb
38
- - `blur()` - Blur slider thumb
39
- - `checkValidity()` - Check validation, returns `boolean`
40
- - `reportValidity()` - Report validation to user, returns `boolean`
41
- - `setCustomValidity(message)` - Set custom validation message
43
+ - `track`, `fill`, `thumb`, `spinner`, `error-text`, `helper-text`
42
44
 
43
- ## Usage
45
+ ## Basic Usage
44
46
 
45
47
  ```html
46
- <snice-slider label="Volume" min="0" max="100"></snice-slider>
47
- <snice-slider show-value value="50"></snice-slider>
48
+ <snice-slider label="Volume" min="0" max="100" value="50" show-value></snice-slider>
48
49
  <snice-slider show-ticks min="0" max="10" step="1"></snice-slider>
49
- <snice-slider variant="primary"></snice-slider>
50
- <snice-slider size="small"></snice-slider>
50
+ <snice-slider variant="primary" size="large"></snice-slider>
51
51
  <snice-slider vertical></snice-slider>
52
- <snice-slider label="Qty" form-align></snice-slider> <!-- aligns with inputs in form rows -->
53
- <snice-slider min="0" max="100" step="5" value="50"></snice-slider>
52
+ <snice-slider label="Qty" form-align></snice-slider>
54
53
  ```
55
54
 
56
- ## CSS Parts
55
+ ## Keyboard Navigation
56
+
57
+ - Arrow keys: adjust by step
58
+ - Home/End: min/max
59
+
60
+ ## Accessibility
57
61
 
58
- `track`, `fill`, `thumb`, `spinner`, `error-text`, `helper-text`
62
+ - Form-associated via ElementInternals
63
+ - `role="slider"` with aria-valuenow/min/max
64
+ - Validation via checkValidity/reportValidity/setCustomValidity
@@ -4,42 +4,30 @@ Drag-and-drop sortable container for reordering child elements.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- direction: 'vertical' | 'horizontal' = 'vertical'
9
- handle: string = '' // CSS selector for drag handle within items
10
- disabled: boolean = false
11
- group: string = '' // group name for cross-container sorting
7
+ ```typescript
8
+ direction: 'vertical'|'horizontal' = 'vertical';
9
+ handle: string = ''; // CSS selector for drag handle
10
+ disabled: boolean = false;
11
+ group: string = ''; // Group name for cross-container sorting
12
12
  ```
13
13
 
14
- ## Slots
15
-
16
- - `default` - Items to be sortable (automatically set to `draggable`)
17
-
18
14
  ## Events
19
15
 
20
- - `sort-start` -> `{ index: number; item: HTMLElement }`
21
- - `sort-end` -> `{ oldIndex: number; newIndex: number; item: HTMLElement }`
22
- - `sort-change` -> `{ oldIndex: number; newIndex: number; item: HTMLElement }`
23
-
24
- ## CSS Parts
25
-
26
- - `base` - The outer sortable container
16
+ - `sort-start` `{ index: number, item: HTMLElement }`
17
+ - `sort-end` `{ oldIndex: number, newIndex: number, item: HTMLElement }`
18
+ - `sort-change` `{ oldIndex: number, newIndex: number, item: HTMLElement }`
27
19
 
28
- ## CSS Custom Properties
20
+ ## Slots
29
21
 
30
- - `--snice-spacing-xs` - Gap between items (default: `0.5rem`)
31
- - `--snice-transition-fast` - Drag transition speed (default: `150ms`)
32
- - `--snice-color-primary` - Ghost outline color (default: `rgb(37 99 235)`)
22
+ - `(default)` - Items to be sortable (auto set `draggable`)
33
23
 
34
- ## CSS Classes on Items
24
+ ## CSS Parts
35
25
 
36
- - `.sortable-dragging` - Added to item being dragged (opacity: 0.4)
37
- - `.sortable-ghost` - Dashed outline placeholder
26
+ - `base` - Outer sortable container
38
27
 
39
- ## Usage
28
+ ## Basic Usage
40
29
 
41
30
  ```html
42
- <!-- Vertical sortable list -->
43
31
  <snice-sortable>
44
32
  <div>Item 1</div>
45
33
  <div>Item 2</div>
@@ -48,9 +36,13 @@ group: string = '' // group name for cross-container sorting
48
36
 
49
37
  <!-- Horizontal with drag handle -->
50
38
  <snice-sortable direction="horizontal" handle=".drag-handle">
51
- <div><span class="drag-handle">&#9776;</span> Item A</div>
52
- <div><span class="drag-handle">&#9776;</span> Item B</div>
39
+ <div><span class="drag-handle">☰</span> Item A</div>
40
+ <div><span class="drag-handle">☰</span> Item B</div>
53
41
  </snice-sortable>
42
+
43
+ <!-- Cross-container sorting -->
44
+ <snice-sortable group="tasks">...</snice-sortable>
45
+ <snice-sortable group="tasks">...</snice-sortable>
54
46
  ```
55
47
 
56
48
  ```typescript
@@ -58,3 +50,9 @@ sortable.addEventListener('sort-change', (e) => {
58
50
  console.log(`Moved from ${e.detail.oldIndex} to ${e.detail.newIndex}`);
59
51
  });
60
52
  ```
53
+
54
+ ## Accessibility
55
+
56
+ - Items auto `draggable="true"`
57
+ - Ghost placeholder with dashed outline
58
+ - `.sortable-dragging` / `.sortable-ghost` classes during drag
@@ -8,34 +8,33 @@ Compact inline chart for visualizing trends and patterns.
8
8
  data: number[] = [];
9
9
  type: 'line'|'bar'|'area' = 'line';
10
10
  color: 'primary'|'success'|'warning'|'danger'|'muted' = 'primary';
11
- customColor: string = ''; // attr: custom-color, overrides color
11
+ customColor?: string; // attr: custom-color, overrides color
12
12
  width: number = 100;
13
13
  height: number = 30;
14
- strokeWidth: number = 2; // attr: stroke-width
15
- showDots: boolean = false; // attr: show-dots
16
- showArea: boolean = false; // attr: show-area
14
+ strokeWidth: number = 2; // attr: stroke-width
15
+ showDots: boolean = false; // attr: show-dots
16
+ showArea: boolean = false; // attr: show-area
17
17
  smooth: boolean = false;
18
- min?: number;
19
- max?: number;
18
+ min?: number; // auto-calculated if unset
19
+ max?: number; // auto-calculated if unset
20
20
  ```
21
21
 
22
22
  ## CSS Parts
23
23
 
24
- - `container` - Container div
24
+ - `container` - Outer container
25
25
  - `svg` - SVG element
26
- - `line` - Line/path element
27
- - `area` - Area polygon/path
28
- - `bar` - Bar rect
29
- - `dot` - Dot circle
26
+ - `line` - Line path
27
+ - `area` - Area fill path
28
+ - `dot` - Data point circle
29
+ - `bar` - Bar rectangle
30
30
 
31
- ## Usage
31
+ ## Basic Usage
32
32
 
33
33
  ```html
34
- <snice-sparkline></snice-sparkline>
35
- ```
36
-
37
- ```typescript
38
- sparkline.data = [10, 20, 15, 25, 30];
34
+ <snice-sparkline id="chart"></snice-sparkline>
35
+ <script>
36
+ document.getElementById('chart').data = [10, 20, 15, 25, 30];
37
+ </script>
39
38
  ```
40
39
 
41
40
  ```html
@@ -45,3 +44,8 @@ sparkline.data = [10, 20, 15, 25, 30];
45
44
  <snice-sparkline custom-color="#9333ea"></snice-sparkline>
46
45
  <snice-sparkline min="0" max="100"></snice-sparkline>
47
46
  ```
47
+
48
+ ## Accessibility
49
+
50
+ - Decorative; use `aria-busy="true"` on container while loading
51
+ - Add `aria-label` to describe the trend for screen readers
@@ -13,11 +13,11 @@ thickness: number = 4;
13
13
 
14
14
  ## CSS Parts
15
15
 
16
- - `base` - The outer spinner container
17
- - `circle` - The SVG spinner circle
18
- - `label` - The label text element
16
+ - `base` - Outer spinner container
17
+ - `circle` - SVG spinner circle
18
+ - `label` - Label text element
19
19
 
20
- ## Usage
20
+ ## Basic Usage
21
21
 
22
22
  ```html
23
23
  <snice-spinner></snice-spinner>
@@ -25,8 +25,12 @@ thickness: number = 4;
25
25
  <snice-spinner size="large"></snice-spinner>
26
26
  <snice-spinner size="xl"></snice-spinner>
27
27
  <snice-spinner color="success"></snice-spinner>
28
- <snice-spinner color="warning"></snice-spinner>
29
28
  <snice-spinner color="error"></snice-spinner>
30
29
  <snice-spinner label="Loading..."></snice-spinner>
31
30
  <snice-spinner thickness="6"></snice-spinner>
32
31
  ```
32
+
33
+ ## Accessibility
34
+
35
+ - `role="status"` with `aria-label`
36
+ - `label` property provides visible descriptive text
@@ -13,10 +13,15 @@ disabled: boolean = false;
13
13
  loading: boolean = false;
14
14
  outline: boolean = false;
15
15
  pill: boolean = false;
16
- icon: string = ''; // Icon (URL, image file, emoji)
17
- iconPlacement: 'start'|'end' = 'start';
16
+ icon: string = ''; // URL, image file, or emoji
17
+ iconPlacement: 'start'|'end' = 'start'; // attr: icon-placement
18
18
  ```
19
19
 
20
+ ## Events
21
+
22
+ - `primary-click` → `{ button }`
23
+ - `action-click` → `{ value, action, button }`
24
+
20
25
  ## CSS Parts
21
26
 
22
27
  - `base` - Root container
@@ -27,12 +32,7 @@ iconPlacement: 'start'|'end' = 'start';
27
32
  - `menu-items` - Menu items wrapper
28
33
  - `action` - Individual action button
29
34
 
30
- ## Events
31
-
32
- - `primary-click` → `{ button }`
33
- - `action-click` → `{ value, action, button }`
34
-
35
- ## Usage
35
+ ## Basic Usage
36
36
 
37
37
  ```html
38
38
  <snice-split-button label="Save" variant="primary"></snice-split-button>
@@ -49,10 +49,7 @@ btn.addEventListener('primary-click', () => console.log('Save clicked'));
49
49
  btn.addEventListener('action-click', (e) => console.log(e.detail.value));
50
50
  ```
51
51
 
52
- ## Notes
52
+ ## Accessibility
53
53
 
54
- - Main button triggers `primary-click`
55
- - Chevron dropdown triggers menu of alternative actions
56
- - Menu closes after action click or outside click
57
- - Escape key closes menu
54
+ - Menu closes on action click, outside click, or Escape key
58
55
  - Actions set via JS property (array), not child elements
@@ -1,6 +1,6 @@
1
1
  # snice-split-pane
2
2
 
3
- Resizable split pane layout.
3
+ Resizable split pane layout with draggable divider.
4
4
 
5
5
  ## Properties
6
6
 
@@ -13,30 +13,30 @@ snapSize: number = 0; // attr: snap-size, percentage, 0 = no snap
13
13
  disabled: boolean = false;
14
14
  ```
15
15
 
16
- ## Slots
16
+ ## Methods
17
17
 
18
- - `primary` - Primary pane content
19
- - `secondary` - Secondary pane content
18
+ - `getPrimarySize()` → `number` - Get primary pane percentage
19
+ - `getSecondarySize()` → `number` - Get secondary pane percentage
20
+ - `setPrimarySize(size)` - Set primary pane percentage
21
+ - `reset()` - Reset to 50/50
20
22
 
21
23
  ## Events
22
24
 
23
25
  - `pane-resize` → `{ primarySize, secondarySize, splitPane }`
24
26
 
25
- ## Methods
27
+ ## Slots
26
28
 
27
- - `getPrimarySize()` - Get primary pane percentage
28
- - `getSecondarySize()` - Get secondary pane percentage
29
- - `setPrimarySize(size)` - Set primary pane percentage
30
- - `reset()` - Reset to 50/50
29
+ - `primary` - Primary pane content (left or top)
30
+ - `secondary` - Secondary pane content (right or bottom)
31
31
 
32
32
  ## CSS Parts
33
33
 
34
- - `primary` - The primary pane container
35
- - `divider` - The draggable divider bar
36
- - `handle` - The visual handle inside the divider
37
- - `secondary` - The secondary pane container
34
+ - `primary` - Primary pane container
35
+ - `divider` - Draggable divider bar
36
+ - `handle` - Visual handle inside divider
37
+ - `secondary` - Secondary pane container
38
38
 
39
- ## Usage
39
+ ## Basic Usage
40
40
 
41
41
  ```html
42
42
  <snice-split-pane style="height: 400px;">
@@ -54,3 +54,8 @@ disabled: boolean = false;
54
54
  <div slot="secondary">70%</div>
55
55
  </snice-split-pane>
56
56
  ```
57
+
58
+ ## Accessibility
59
+
60
+ - Divider keyboard-accessible with arrow keys
61
+ - Mouse, touch, and keyboard input supported
@@ -1,46 +1,46 @@
1
1
  # snice-spotlight
2
2
 
3
- Guided tour / onboarding spotlight that highlights elements with step-by-step popover instructions.
3
+ Guided tour / onboarding spotlight with cutout overlay and step-by-step popovers.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- steps: SpotlightStep[] = []
7
+ ```typescript
8
+ steps: SpotlightStep[] = [];
9
9
 
10
10
  interface SpotlightStep {
11
- target: string // CSS selector for target element
12
- title: string
13
- description: string
14
- position?: 'top' | 'bottom' | 'left' | 'right' | 'auto'
11
+ target: string; // CSS selector for target element
12
+ title: string;
13
+ description: string;
14
+ position?: 'top'|'bottom'|'left'|'right'|'auto';
15
15
  }
16
16
  ```
17
17
 
18
18
  ## Methods
19
19
 
20
- - `start()` - Begin the spotlight tour from step 0
20
+ - `start()` - Begin tour from step 0
21
21
  - `next()` - Advance to next step (ends tour if on last step)
22
22
  - `prev()` - Go back to previous step
23
- - `goToStep(index: number)` - Jump to specific step
23
+ - `goToStep(index)` - Jump to specific step
24
24
  - `end()` - End the tour
25
25
 
26
26
  ## Events
27
27
 
28
- - `spotlight-start` -> `void`
29
- - `spotlight-step` -> `{ index: number; step: SpotlightStep }`
30
- - `spotlight-end` -> `void`
31
- - `spotlight-skip` -> `{ index: number }`
28
+ - `spotlight-start` `void`
29
+ - `spotlight-step` `{ index, step }`
30
+ - `spotlight-end` `void`
31
+ - `spotlight-skip` `{ index }`
32
32
 
33
33
  ## CSS Custom Properties
34
34
 
35
- - `--snice-transition-medium` - Cutout transition speed (default: `250ms`)
36
- - `--snice-color-background` - Popover background (default: `rgb(255 255 255)`)
37
- - `--snice-color-border` - Popover border (default: `rgb(226 226 226)`)
38
- - `--snice-color-text` - Popover text color (default: `rgb(23 23 23)`)
39
- - `--snice-color-primary` - Primary button color (default: `rgb(37 99 235)`)
35
+ - `--snice-transition-medium` - Cutout transition speed (`250ms`)
36
+ - `--snice-color-background` - Popover background (`rgb(255 255 255)`)
37
+ - `--snice-color-border` - Popover border (`rgb(226 226 226)`)
38
+ - `--snice-color-text` - Popover text (`rgb(23 23 23)`)
39
+ - `--snice-color-primary` - Primary button (`rgb(37 99 235)`)
40
40
  - `--snice-shadow-lg` - Popover shadow
41
- - `--snice-border-radius-lg` - Popover border radius (default: `0.5rem`)
41
+ - `--snice-border-radius-lg` - Popover border radius (`0.5rem`)
42
42
 
43
- ## Usage
43
+ ## Basic Usage
44
44
 
45
45
  ```html
46
46
  <snice-spotlight></snice-spotlight>
@@ -48,13 +48,18 @@ interface SpotlightStep {
48
48
 
49
49
  ```typescript
50
50
  spotlight.steps = [
51
- { target: '#step1', title: 'Welcome', description: 'This is the first step', position: 'bottom' },
52
- { target: '#step2', title: 'Next', description: 'Click here to continue', position: 'right' },
53
- { target: '#step3', title: 'Done', description: 'All set!', position: 'top' }
51
+ { target: '#step1', title: 'Welcome', description: 'First step', position: 'bottom' },
52
+ { target: '#step2', title: 'Next', description: 'Continue here', position: 'right' },
54
53
  ];
55
54
  spotlight.start();
56
55
 
57
- spotlight.addEventListener('spotlight-end', () => {
58
- console.log('Tour completed');
59
- });
56
+ spotlight.addEventListener('spotlight-end', () => console.log('Tour completed'));
57
+ spotlight.addEventListener('spotlight-skip', (e) => console.log(`Skipped at ${e.detail.index}`));
60
58
  ```
59
+
60
+ ## Accessibility
61
+
62
+ - Keyboard-accessible navigation buttons
63
+ - Focus moves to popover on each step
64
+ - Escape key ends tour
65
+ - Respects `prefers-reduced-motion`
@@ -4,122 +4,57 @@ Excel-like spreadsheet with formulas, multi-cell selection, undo/redo, column re
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- data: any[][] = []
9
- columns: SpreadsheetColumn[] = []
10
- readonly: boolean = false
7
+ ```typescript
8
+ data: any[][] = [];
9
+ columns: SpreadsheetColumn[] = [];
10
+ readonly: boolean = false;
11
11
 
12
12
  interface SpreadsheetColumn {
13
- header: string
14
- type?: 'text' | 'number' | 'date' | 'boolean' | 'select'
15
- width?: number
16
- options?: string[] // for 'select' type
17
- }
18
-
19
- interface CellPosition {
20
- row: number
21
- col: number
22
- }
23
-
24
- interface CellRange {
25
- start: CellPosition
26
- end: CellPosition
27
- }
28
-
29
- interface UndoEntry {
30
- row: number
31
- col: number
32
- oldValue: any
33
- newValue: any
13
+ header: string;
14
+ type?: 'text'|'number'|'date'|'boolean'|'select';
15
+ width?: number;
16
+ options?: string[]; // for 'select' type
34
17
  }
35
18
  ```
36
19
 
37
20
  ## Methods
38
21
 
39
- - `getCell(row: number, col: number)` - Get resolved cell value
40
- - `setCell(row: number, col: number, value: any)` - Set cell value (auto-expands data, adds to undo stack)
41
- - `getData()` - Get copy of all data
42
- - `setData(data: any[][])` - Replace all data
22
+ - `getCell(row, col)` → `any` - Get resolved cell value (formulas return computed result)
23
+ - `setCell(row, col, value)` - Set cell value (auto-expands, adds to undo stack)
24
+ - `getData()` → `any[][]` - Get copy of all data
25
+ - `setData(data)` - Replace all data
43
26
 
44
27
  ## Events
45
28
 
46
- - `cell-change` -> `{ row: number; col: number; value: any; oldValue: any }`
47
- - `cell-select` -> `{ row: number; col: number }`
48
- - `row-select` -> `{ row: number }`
49
- - `column-sort` -> `{ col: number; direction: 'asc' | 'desc' }`
50
-
51
- ## Formula Support
52
-
53
- Cells starting with `=` are evaluated. Supported functions:
54
- - `=SUM(A1:B3)`, `=AVG(A1:A5)`, `=AVERAGE(A1:A5)`
55
- - `=COUNT(A1:A10)`, `=MIN(A1:A5)`, `=MAX(A1:A5)`
56
-
57
- ## Keyboard Shortcuts
58
-
59
- - Arrow keys: Navigate cells
60
- - Shift+Arrow: Extend selection range
61
- - Shift+Click: Extend selection to clicked cell
62
- - Enter/F2: Edit selected cell
63
- - Tab/Shift+Tab: Move to next/previous cell (commits edit, auto-expands grid)
64
- - Escape: Cancel edit
65
- - Delete/Backspace: Clear selected cell(s)
66
- - Ctrl+C/Ctrl+V: Copy/paste (supports tab-separated multi-cell)
67
- - Ctrl+Z: Undo (up to 100 entries)
68
- - Ctrl+Y / Ctrl+Shift+Z: Redo
69
- - Any printable key: Start editing with that character (type-to-edit)
70
-
71
- ## Multi-Cell Selection
72
-
73
- - Click+drag to select range
74
- - Shift+click extends from anchor
75
- - Shift+arrow keys grow selection
76
- - Selected range: light blue fill; anchor cell: 2px blue border
77
- - Status bar shows COUNT, SUM, AVG of numeric cells in selection
78
-
79
- ## Column Resizing
29
+ - `cell-change` `{ row, col, value, oldValue }`
30
+ - `cell-select` `{ row, col }`
31
+ - `row-select` `{ row }`
32
+ - `column-sort` `{ col, direction: 'asc'|'desc' }`
80
33
 
81
- - Drag right edge of column header to resize
82
- - Min width: 40px
83
- - Widths stored in internal map
34
+ ## CSS Parts
84
35
 
85
- ## Context Menu (Right-Click)
86
-
87
- Items: Cut, Copy, Paste, Insert Row Above/Below, Delete Row, Insert Column Left/Right, Delete Column, Clear Cell(s)
88
-
89
- ## Row/Column Add Buttons
90
-
91
- - "+" row at bottom: appends empty row
92
- - "+" column at right: appends empty column
93
- - Auto-expand on Tab (last col) or Enter (last row)
94
-
95
- ## Empty State
96
-
97
- When data is empty, shows "Double-click or start typing to add data"
98
-
99
- ## Frozen Headers
100
-
101
- - Row numbers: sticky left (visible during horizontal scroll)
102
- - Column headers: sticky top
103
- - Corner cell (top-left): sticky both directions
104
-
105
- **CSS Parts:**
106
- - `formula-bar` - The formula bar with cell reference and input
107
- - `base` - The main spreadsheet grid area
108
- - `status-bar` - The bottom status bar showing selection stats
109
- - `context-menu` - The right-click context menu
36
+ - `formula-bar` - Formula bar with cell reference and input
37
+ - `base` - Main spreadsheet grid area
38
+ - `status-bar` - Bottom status bar (selection stats)
39
+ - `context-menu` - Right-click context menu
110
40
 
111
41
  ## CSS Custom Properties
112
42
 
113
- - `--snice-color-border` - Grid lines (default: `rgb(226 226 226)`)
114
- - `--snice-color-background` - Cell background (default: `rgb(255 255 255)`)
43
+ - `--snice-color-border` - Grid lines (`rgb(226 226 226)`)
44
+ - `--snice-color-background` - Cell background (`rgb(255 255 255)`)
115
45
  - `--snice-color-background-element` - Header/row-number background
116
- - `--snice-color-primary` - Selected cell border (default: `rgb(37 99 235)`)
117
- - `--snice-color-primary-subtle` - Range selection fill / header highlight
118
- - `--snice-color-text` - Cell text color
46
+ - `--snice-color-background-hover` - Row/header hover
47
+ - `--snice-color-primary` - Selected cell border (`rgb(37 99 235)`)
48
+ - `--snice-color-primary-subtle` - Range selection fill
49
+ - `--snice-color-text` - Cell text
119
50
  - `--snice-color-text-secondary` - Formula bar cell ref
120
51
  - `--snice-color-text-tertiary` - Row numbers, status bar labels
121
52
 
122
- ## Usage
53
+ ## Formula Support
54
+
55
+ Cells starting with `=` are evaluated: `SUM`, `AVG`/`AVERAGE`, `COUNT`, `MIN`, `MAX`. Cell refs use A1 notation.
56
+
57
+ ## Basic Usage
123
58
 
124
59
  ```html
125
60
  <snice-spreadsheet></snice-spreadsheet>
@@ -141,3 +76,22 @@ sheet.addEventListener('cell-change', (e) => {
141
76
  console.log(`Cell [${e.detail.row},${e.detail.col}] changed to ${e.detail.value}`);
142
77
  });
143
78
  ```
79
+
80
+ ## Keyboard Navigation
81
+
82
+ - Arrow keys: navigate cells
83
+ - Shift+Arrow: extend selection range
84
+ - Enter/F2: edit cell; Escape: cancel
85
+ - Tab/Shift+Tab: next/prev cell (commits edit, auto-expands)
86
+ - Delete/Backspace: clear cell(s)
87
+ - Ctrl+C/V: copy/paste (tab-separated multi-cell)
88
+ - Ctrl+Z: undo; Ctrl+Y: redo (up to 100 entries)
89
+ - Any printable key: type-to-edit
90
+
91
+ ## Accessibility
92
+
93
+ - Full keyboard navigation and editing
94
+ - Visible focus indicator on selected cell
95
+ - Frozen row numbers (sticky left) and column headers (sticky top)
96
+ - Context menu: Cut, Copy, Paste, Insert/Delete Row/Column, Clear
97
+ - Auto-expanding grid via "+" buttons and Tab/Enter at edges