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
package/bin/snice.js CHANGED
@@ -34,7 +34,7 @@ if (command === 'create-app') {
34
34
  }
35
35
 
36
36
  const projectPath = positional[0] || '.';
37
- const template = flags.template || 'base';
37
+ const template = flags.template || 'default';
38
38
 
39
39
  createApp(projectPath, template);
40
40
  } else if (command === 'mcp') {
@@ -79,14 +79,14 @@ if (command === 'create-app') {
79
79
  Snice CLI
80
80
 
81
81
  Usage:
82
- snice create-app [options] <project-name>
83
- snice create-app [options] . Initialize in current directory
82
+ snice create-app <project-name> Create a new Snice app
83
+ snice create-app . Initialize in current directory
84
84
  snice build-component <component-name> [options] Build CDN component
85
85
  snice validate Check project for common issues
86
86
  snice mcp Start MCP server for AI assistants
87
87
 
88
88
  Create App Options:
89
- --template=<name> Template to use (default: base)
89
+ --template=react Use React template instead of default
90
90
 
91
91
  Build Component Options:
92
92
  --output=<dir> Output directory (default: ./dist/cdn)
@@ -94,29 +94,24 @@ Build Component Options:
94
94
  --minify Minify output (default: true)
95
95
  --with-theme Include theme.css in output
96
96
 
97
- Templates:
98
- base - Minimal starter with counter example (default)
99
- pwa - Progressive Web App with auth, middleware, and live notifications
100
-
101
97
  MCP Server:
102
98
  Start a Model Context Protocol server for AI-assisted development.
103
99
  Connect in Claude Code: claude mcp add snice -- npx snice mcp
104
100
 
105
101
  Examples:
106
102
  snice create-app my-app
107
- snice create-app my-app --template=pwa
103
+ snice create-app my-app --template=react
108
104
  snice build-component button
109
105
  snice build-component button --output=./cdn --format=iife
110
106
  snice mcp
111
107
  `);
112
108
  }
113
109
 
114
- function createApp(projectPath, template = 'base') {
110
+ function createApp(projectPath, template = 'default') {
115
111
  const targetDir = resolve(process.cwd(), projectPath);
116
112
  const projectName = projectPath === '.' ? basename(process.cwd()) : basename(targetDir);
117
113
 
118
114
  console.log(`\n🚀 Creating Snice app in ${targetDir}...\n`);
119
- console.log(`📦 Using template: ${template}\n`);
120
115
 
121
116
  // Check if directory exists and is empty
122
117
  if (projectPath !== '.') {
@@ -145,7 +140,7 @@ function createApp(projectPath, template = 'base') {
145
140
  // Check if template exists
146
141
  if (!existsSync(templateDir)) {
147
142
  console.error(`❌ Template "${template}" not found!`);
148
- console.error(`Available templates: base, pwa`);
143
+ console.error(`Available templates: default, react`);
149
144
  process.exit(1);
150
145
  }
151
146
 
@@ -341,4 +336,4 @@ function validateProject() {
341
336
  console.log(` → Use .types.ts imports to avoid circular dependencies\n`);
342
337
  }
343
338
  }
344
- }
339
+ }
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="description" content="{{projectName}} - PWA built with Snice" />
7
- <meta name="theme-color" content="#6366f1" />
7
+ <meta name="theme-color" content="#2563eb" />
8
8
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
9
9
  <link rel="apple-touch-icon" href="/icons/icon-192.png" />
10
10
  <title>{{projectName}}</title>
@@ -1,6 +1,7 @@
1
- import { element, property, render, styles, context, on, dispatch, html, css, watch, query } from 'snice';
1
+ import { element, property, render, styles, context, on, dispatch, dispose, html, css, watch, query } from 'snice';
2
2
  import type { Context } from 'snice';
3
3
  import type { Principal, User } from '../types/auth';
4
+ import type { NotificationsDaemon } from '../daemons/notifications';
4
5
  import { logout } from '../services/auth';
5
6
 
6
7
  @element('app-header')
@@ -9,6 +10,8 @@ export class AppHeader extends HTMLElement {
9
10
  @property() userAvatar = '';
10
11
  @property({ type: Boolean }) authenticated = false;
11
12
  @property({ type: Boolean }) menuOpen = false;
13
+ @property({ type: Number }) notificationCount = 0;
14
+ private unsubscribeNotifications: (() => void) | null = null;
12
15
 
13
16
  @query('.user-menu') $menu!: HTMLElement;
14
17
 
@@ -19,6 +22,21 @@ export class AppHeader extends HTMLElement {
19
22
  this.authenticated = principal?.isAuthenticated || false;
20
23
  this.userName = user?.name || '';
21
24
  this.userAvatar = user?.avatar || '';
25
+
26
+ const daemon = ctx.application.notifications as NotificationsDaemon;
27
+ if (daemon && !this.unsubscribeNotifications) {
28
+ this.unsubscribeNotifications = daemon.subscribe(() => {
29
+ this.notificationCount++;
30
+ });
31
+ }
32
+ }
33
+
34
+ @dispose()
35
+ cleanupNotifications() {
36
+ if (this.unsubscribeNotifications) {
37
+ this.unsubscribeNotifications();
38
+ this.unsubscribeNotifications = null;
39
+ }
22
40
  }
23
41
 
24
42
  @watch('menuOpen')
@@ -57,7 +75,7 @@ export class AppHeader extends HTMLElement {
57
75
  <a href="#/dashboard">Dashboard</a>
58
76
  <a href="#/data">Data</a>
59
77
  <a href="#/notifications">
60
- <notification-badge></notification-badge>
78
+ <notification-badge .count=${this.notificationCount}></notification-badge>
61
79
  Notifications
62
80
  </a>
63
81
  </nav>
@@ -109,14 +127,14 @@ export class AppHeader extends HTMLElement {
109
127
  justify-content: space-between;
110
128
  padding: 0 1.5rem;
111
129
  height: 60px;
112
- background: var(--bg-primary);
113
- border-bottom: 1px solid var(--border-color);
130
+ background: var(--snice-color-background);
131
+ border-bottom: 1px solid var(--snice-color-border);
114
132
  }
115
133
 
116
134
  .brand a {
117
135
  font-size: 1.25rem;
118
136
  font-weight: 700;
119
- color: var(--primary-color);
137
+ color: var(--snice-color-primary);
120
138
  text-decoration: none;
121
139
  }
122
140
 
@@ -127,7 +145,7 @@ export class AppHeader extends HTMLElement {
127
145
  }
128
146
 
129
147
  .nav-links a {
130
- color: var(--text-light);
148
+ color: var(--snice-color-text-secondary);
131
149
  text-decoration: none;
132
150
  font-size: 0.875rem;
133
151
  font-weight: 500;
@@ -137,7 +155,7 @@ export class AppHeader extends HTMLElement {
137
155
  }
138
156
 
139
157
  .nav-links a:hover {
140
- color: var(--primary-color);
158
+ color: var(--snice-color-primary);
141
159
  }
142
160
 
143
161
  .user-section {
@@ -152,12 +170,12 @@ export class AppHeader extends HTMLElement {
152
170
  border: none;
153
171
  cursor: pointer;
154
172
  padding: 0.375rem 0.5rem;
155
- border-radius: var(--radius-md);
156
- color: var(--text-color);
173
+ border-radius: var(--snice-border-radius-lg);
174
+ color: var(--snice-color-text);
157
175
  }
158
176
 
159
177
  .user-btn:hover {
160
- background: var(--bg-secondary);
178
+ background: var(--snice-color-background-secondary);
161
179
  }
162
180
 
163
181
  .user-name {
@@ -171,10 +189,10 @@ export class AppHeader extends HTMLElement {
171
189
  top: 100%;
172
190
  margin-top: 0.5rem;
173
191
  min-width: 180px;
174
- background: var(--bg-primary);
175
- border: 1px solid var(--border-color);
176
- border-radius: var(--radius-md);
177
- box-shadow: var(--shadow-lg);
192
+ background: var(--snice-color-background);
193
+ border: 1px solid var(--snice-color-border);
194
+ border-radius: var(--snice-border-radius-lg);
195
+ box-shadow: var(--snice-shadow-lg);
178
196
  padding: 0.5rem 0;
179
197
  z-index: 100;
180
198
  }
@@ -184,7 +202,7 @@ export class AppHeader extends HTMLElement {
184
202
  display: block;
185
203
  width: 100%;
186
204
  padding: 0.5rem 1rem;
187
- color: var(--text-color);
205
+ color: var(--snice-color-text);
188
206
  text-decoration: none;
189
207
  background: none;
190
208
  border: none;
@@ -195,12 +213,12 @@ export class AppHeader extends HTMLElement {
195
213
 
196
214
  .user-menu a:hover,
197
215
  .user-menu button:hover {
198
- background: var(--bg-secondary);
199
- color: var(--primary-color);
216
+ background: var(--snice-color-background-secondary);
217
+ color: var(--snice-color-primary);
200
218
  }
201
219
 
202
220
  .login-link {
203
- color: var(--primary-color);
221
+ color: var(--snice-color-primary);
204
222
  text-decoration: none;
205
223
  font-weight: 500;
206
224
  }
@@ -1,30 +1,11 @@
1
- import { element, property, render, styles, ready, dispose, html, css, watch, query } from 'snice';
2
- import { getNotificationsDaemon } from '../daemons/notifications';
1
+ import { element, property, render, styles, html, css, watch, query } from 'snice';
3
2
 
4
3
  @element('notification-badge')
5
4
  export class NotificationBadge extends HTMLElement {
6
5
  @property({ type: Number }) count = 0;
7
6
 
8
- private unsubscribe: (() => void) | null = null;
9
-
10
7
  @query('.badge') $badge!: HTMLElement;
11
8
 
12
- @ready()
13
- initialize() {
14
- const daemon = getNotificationsDaemon();
15
- this.unsubscribe = daemon.subscribe(() => {
16
- this.count++;
17
- });
18
- }
19
-
20
- @dispose()
21
- cleanup() {
22
- if (this.unsubscribe) {
23
- this.unsubscribe();
24
- this.unsubscribe = null;
25
- }
26
- }
27
-
28
9
  @watch('count')
29
10
  onCountChange() {
30
11
  if (this.$badge) {
@@ -56,7 +37,7 @@ export class NotificationBadge extends HTMLElement {
56
37
  min-width: 18px;
57
38
  height: 18px;
58
39
  padding: 0 4px;
59
- background: var(--danger-color);
40
+ background: var(--snice-color-danger);
60
41
  color: white;
61
42
  font-size: 0.6875rem;
62
43
  font-weight: 600;
@@ -52,18 +52,18 @@ export class SearchBar extends HTMLElement {
52
52
  align-items: center;
53
53
  gap: 0.5rem;
54
54
  padding: 0.5rem 0.75rem;
55
- background: var(--bg-primary);
56
- border: 1px solid var(--border-color);
57
- border-radius: var(--radius-md);
55
+ background: var(--snice-color-background);
56
+ border: 1px solid var(--snice-color-border);
57
+ border-radius: var(--snice-border-radius-lg);
58
58
  }
59
59
 
60
60
  .search-container:focus-within {
61
- border-color: var(--primary-color);
62
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color) 15%, transparent);
61
+ border-color: var(--snice-color-primary);
62
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--snice-color-primary) 15%, transparent);
63
63
  }
64
64
 
65
65
  .icon {
66
- color: var(--text-light);
66
+ color: var(--snice-color-text-secondary);
67
67
  font-size: 0.875rem;
68
68
  }
69
69
 
@@ -73,26 +73,26 @@ export class SearchBar extends HTMLElement {
73
73
  outline: none;
74
74
  background: transparent;
75
75
  font-size: 0.875rem;
76
- color: var(--text-color);
76
+ color: var(--snice-color-text);
77
77
  }
78
78
 
79
79
  input::placeholder {
80
- color: var(--text-light);
80
+ color: var(--snice-color-text-secondary);
81
81
  }
82
82
 
83
83
  .clear {
84
84
  background: none;
85
85
  border: none;
86
86
  cursor: pointer;
87
- color: var(--text-light);
87
+ color: var(--snice-color-text-secondary);
88
88
  font-size: 0.75rem;
89
89
  padding: 0.125rem 0.25rem;
90
- border-radius: var(--radius-sm);
90
+ border-radius: var(--snice-border-radius-md);
91
91
  }
92
92
 
93
93
  .clear:hover {
94
- background: var(--bg-secondary);
95
- color: var(--text-color);
94
+ background: var(--snice-color-background-secondary);
95
+ color: var(--snice-color-text);
96
96
  }
97
97
  `;
98
98
  }
@@ -0,0 +1,17 @@
1
+ import type { Principal } from './types/auth';
2
+ import { getUser } from './services/storage';
3
+ import { isAuthenticated } from './services/auth';
4
+ import { NotificationsDaemon } from './daemons/notifications';
5
+
6
+ // In production, use actual WebSocket URL from env
7
+ const wsUrl = import.meta.env.VITE_WS_URL || 'ws://localhost:8080';
8
+ const notifications = new NotificationsDaemon(wsUrl);
9
+ notifications.start();
10
+
11
+ export const appContext = {
12
+ principal: {
13
+ get user() { return getUser(); },
14
+ get isAuthenticated() { return isAuthenticated(); }
15
+ } as Principal,
16
+ notifications
17
+ };
@@ -1,33 +1,28 @@
1
- import { controller, respond } from 'snice';
2
- import { getNotificationsDaemon } from '../daemons/notifications';
1
+ import { controller, respond, IController } from 'snice';
3
2
  import type { Notification } from '../types/notifications';
4
3
 
5
4
  @controller('notification-controller')
6
- export class NotificationController {
7
- element!: HTMLElement;
5
+ export class NotificationController implements IController {
6
+ element: HTMLElement | null = null;
8
7
  private notifications: Notification[] = [];
9
- private unsubscribe: (() => void) | null = null;
10
8
 
11
9
  async attach(el: HTMLElement) {
12
10
  this.element = el;
13
- const daemon = getNotificationsDaemon();
14
- this.unsubscribe = daemon.subscribe((notification) => {
15
- this.notifications = [notification, ...this.notifications];
16
- });
17
11
  }
18
12
 
19
- async detach() {
20
- if (this.unsubscribe) {
21
- this.unsubscribe();
22
- this.unsubscribe = null;
23
- }
24
- }
13
+ async detach() {}
25
14
 
26
15
  @respond('get-notifications')
27
16
  handleGetNotifications() {
28
17
  return this.notifications;
29
18
  }
30
19
 
20
+ @respond('add-notification')
21
+ handleAddNotification(notification: Notification) {
22
+ this.notifications = [notification, ...this.notifications];
23
+ return { added: true };
24
+ }
25
+
31
26
  @respond('clear-notifications')
32
27
  handleClearNotifications() {
33
28
  this.notifications = [];
@@ -134,15 +134,3 @@ export class NotificationsDaemon {
134
134
  }
135
135
  }
136
136
  }
137
-
138
- // Singleton instance
139
- let instance: NotificationsDaemon | null = null;
140
-
141
- export function getNotificationsDaemon(): NotificationsDaemon {
142
- if (!instance) {
143
- // In production, use actual WebSocket URL from env
144
- const wsUrl = import.meta.env.VITE_WS_URL || 'ws://localhost:8080';
145
- instance = new NotificationsDaemon(wsUrl);
146
- }
147
- return instance;
148
- }
@@ -1,4 +1,5 @@
1
1
  import { initialize } from './router';
2
+ import 'snice/components/theme/theme.css';
2
3
  import './styles/global.css';
3
4
 
4
5
  // Import snice layout and components
@@ -32,13 +33,6 @@ import './pages/notifications';
32
33
  import './pages/settings';
33
34
  import './pages/data';
34
35
 
35
- // Import and start daemons
36
- import { getNotificationsDaemon } from './daemons/notifications';
37
-
38
- // Start notifications daemon
39
- const notificationsDaemon = getNotificationsDaemon();
40
- notificationsDaemon.start();
41
-
42
36
  // Initialize router
43
37
  initialize();
44
38
 
@@ -1,5 +1,4 @@
1
1
  import type { Context } from 'snice';
2
- import type { Principal } from '../types/auth';
3
2
  import { clearToken } from '../services/storage';
4
3
 
5
4
  export async function errorMiddleware(
@@ -11,13 +10,7 @@ export async function errorMiddleware(
11
10
  if (response.status === 401) {
12
11
  clearToken();
13
12
 
14
- // Update context to reflect logged out state
15
- if (this.application.principal) {
16
- const principal = this.application.principal as Principal;
17
- principal.user = null;
18
- principal.isAuthenticated = false;
19
- }
20
-
13
+ // Getters in context will reflect logged-out state since token is cleared
21
14
  window.location.href = '#/login';
22
15
  throw new Error('Unauthorized - redirecting to login');
23
16
  }
@@ -1,9 +1,9 @@
1
1
  import { page } from '../router';
2
- import { render, styles, html, css, context, observe, ready, dispose } from 'snice';
2
+ import { render, styles, html, css, context, observe, dispose } from 'snice';
3
3
  import type { Placard, Context } from 'snice';
4
4
  import type { Principal } from '../types/auth';
5
5
  import { isAuthenticated } from '../guards/auth';
6
- import { getNotificationsDaemon } from '../daemons/notifications';
6
+ import type { NotificationsDaemon } from '../daemons/notifications';
7
7
 
8
8
  const placard: Placard = {
9
9
  name: 'dashboard',
@@ -24,14 +24,13 @@ export class DashboardPage extends HTMLElement {
24
24
  handleContext(ctx: Context) {
25
25
  const principal = ctx.application.principal as Principal | undefined;
26
26
  this.userName = principal?.user?.name || 'User';
27
- }
28
27
 
29
- @ready()
30
- initialize() {
31
- const daemon = getNotificationsDaemon();
32
- this.unsubscribe = daemon.subscribe(() => {
33
- this.notificationCount++;
34
- });
28
+ const daemon = ctx.application.notifications as NotificationsDaemon;
29
+ if (daemon && !this.unsubscribe) {
30
+ this.unsubscribe = daemon.subscribe(() => {
31
+ this.notificationCount++;
32
+ });
33
+ }
35
34
  }
36
35
 
37
36
  @dispose()
@@ -147,12 +146,12 @@ export class DashboardPage extends HTMLElement {
147
146
  }
148
147
 
149
148
  h1 {
150
- color: var(--primary-color);
149
+ color: var(--snice-color-primary);
151
150
  margin: 0 0 0.5rem 0;
152
151
  }
153
152
 
154
153
  .subtitle {
155
- color: var(--text-light);
154
+ color: var(--snice-color-text-secondary);
156
155
  margin: 0;
157
156
  }
158
157
 
@@ -172,13 +171,13 @@ export class DashboardPage extends HTMLElement {
172
171
  display: block;
173
172
  font-size: 2rem;
174
173
  font-weight: 700;
175
- color: var(--primary-color);
174
+ color: var(--snice-color-primary);
176
175
  }
177
176
 
178
177
  .stat-label {
179
178
  display: block;
180
179
  font-size: 0.8125rem;
181
- color: var(--text-light);
180
+ color: var(--snice-color-text-secondary);
182
181
  margin-top: 0.25rem;
183
182
  }
184
183
 
@@ -194,7 +193,7 @@ export class DashboardPage extends HTMLElement {
194
193
 
195
194
  h3 {
196
195
  margin: 0 0 1rem 0;
197
- color: var(--primary-color);
196
+ color: var(--snice-color-primary);
198
197
  }
199
198
 
200
199
  ul {
@@ -204,18 +203,18 @@ export class DashboardPage extends HTMLElement {
204
203
 
205
204
  li {
206
205
  margin: 0.5rem 0;
207
- color: var(--text-color);
206
+ color: var(--snice-color-text);
208
207
  }
209
208
 
210
209
  code {
211
- background: var(--bg-secondary);
210
+ background: var(--snice-color-background-secondary);
212
211
  padding: 0.125rem 0.375rem;
213
- border-radius: var(--radius-sm);
212
+ border-radius: var(--snice-border-radius-md);
214
213
  font-size: 0.8125rem;
215
214
  }
216
215
 
217
216
  p {
218
- color: var(--text-light);
217
+ color: var(--snice-color-text-secondary);
219
218
  margin: 0 0 0.5rem 0;
220
219
  }
221
220
 
@@ -93,11 +93,11 @@ export class DataPage extends HTMLElement {
93
93
 
94
94
  getStatusColor(status: string): string {
95
95
  const colors: Record<string, string> = {
96
- active: 'var(--success-color)',
97
- pending: 'var(--warning-color)',
98
- archived: 'var(--text-light)'
96
+ active: 'var(--snice-color-success)',
97
+ pending: 'var(--snice-color-warning)',
98
+ archived: 'var(--snice-color-text-secondary)'
99
99
  };
100
- return colors[status] || 'var(--text-light)';
100
+ return colors[status] || 'var(--snice-color-text-secondary)';
101
101
  }
102
102
 
103
103
  @render()
@@ -193,12 +193,12 @@ export class DataPage extends HTMLElement {
193
193
 
194
194
  h1 {
195
195
  margin: 0;
196
- color: var(--primary-color);
196
+ color: var(--snice-color-primary);
197
197
  }
198
198
 
199
199
  .count {
200
200
  font-size: 0.875rem;
201
- color: var(--text-light);
201
+ color: var(--snice-color-text-secondary);
202
202
  }
203
203
 
204
204
  .toolbar {
@@ -219,23 +219,23 @@ export class DataPage extends HTMLElement {
219
219
 
220
220
  .filter-btn {
221
221
  padding: 0.375rem 0.75rem;
222
- border: 1px solid var(--border-color);
223
- border-radius: var(--radius-sm);
224
- background: var(--bg-primary);
225
- color: var(--text-light);
222
+ border: 1px solid var(--snice-color-border);
223
+ border-radius: var(--snice-border-radius-md);
224
+ background: var(--snice-color-background);
225
+ color: var(--snice-color-text-secondary);
226
226
  font-size: 0.8125rem;
227
227
  cursor: pointer;
228
228
  transition: all 0.15s;
229
229
  }
230
230
 
231
231
  .filter-btn:hover {
232
- border-color: var(--primary-color);
233
- color: var(--primary-color);
232
+ border-color: var(--snice-color-primary);
233
+ color: var(--snice-color-primary);
234
234
  }
235
235
 
236
236
  .filter-btn.active {
237
- background: var(--primary-color);
238
- border-color: var(--primary-color);
237
+ background: var(--snice-color-primary);
238
+ border-color: var(--snice-color-primary);
239
239
  color: white;
240
240
  }
241
241
 
@@ -246,8 +246,8 @@ export class DataPage extends HTMLElement {
246
246
  }
247
247
 
248
248
  .data-table {
249
- border: 1px solid var(--border-color);
250
- border-radius: var(--radius-md);
249
+ border: 1px solid var(--snice-color-border);
250
+ border-radius: var(--snice-border-radius-lg);
251
251
  overflow: hidden;
252
252
  }
253
253
 
@@ -255,37 +255,37 @@ export class DataPage extends HTMLElement {
255
255
  display: grid;
256
256
  grid-template-columns: 1fr 120px 100px;
257
257
  padding: 0.75rem 1rem;
258
- background: var(--bg-secondary);
258
+ background: var(--snice-color-background-secondary);
259
259
  font-size: 0.75rem;
260
260
  font-weight: 600;
261
261
  text-transform: uppercase;
262
262
  letter-spacing: 0.05em;
263
- color: var(--text-light);
263
+ color: var(--snice-color-text-secondary);
264
264
  }
265
265
 
266
266
  .table-row {
267
267
  display: grid;
268
268
  grid-template-columns: 1fr 120px 100px;
269
269
  padding: 1rem;
270
- border-top: 1px solid var(--border-color);
270
+ border-top: 1px solid var(--snice-color-border);
271
271
  align-items: center;
272
272
  transition: background 0.15s;
273
273
  }
274
274
 
275
275
  .table-row:hover {
276
- background: var(--bg-secondary);
276
+ background: var(--snice-color-background-secondary);
277
277
  }
278
278
 
279
279
  .col-title strong {
280
280
  display: block;
281
- color: var(--text-color);
281
+ color: var(--snice-color-text);
282
282
  font-size: 0.9375rem;
283
283
  }
284
284
 
285
285
  .description {
286
286
  display: block;
287
287
  font-size: 0.8125rem;
288
- color: var(--text-light);
288
+ color: var(--snice-color-text-secondary);
289
289
  margin-top: 0.125rem;
290
290
  }
291
291
 
@@ -294,7 +294,7 @@ export class DataPage extends HTMLElement {
294
294
  align-items: center;
295
295
  gap: 0.375rem;
296
296
  font-size: 0.8125rem;
297
- color: var(--text-color);
297
+ color: var(--snice-color-text);
298
298
  text-transform: capitalize;
299
299
  }
300
300
 
@@ -307,7 +307,7 @@ export class DataPage extends HTMLElement {
307
307
 
308
308
  .col-date {
309
309
  font-size: 0.8125rem;
310
- color: var(--text-light);
310
+ color: var(--snice-color-text-secondary);
311
311
  }
312
312
 
313
313
  .data-table.compact .table-header {