snice 4.28.0 → 4.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (835) hide show
  1. package/README.md +3 -10
  2. package/adapters/react/SniceProvider.d.ts +71 -0
  3. package/adapters/react/SniceProvider.js +49 -0
  4. package/adapters/react/SniceProvider.js.map +1 -0
  5. package/adapters/react/SniceRouter.d.ts +44 -0
  6. package/adapters/react/SniceRouter.js +190 -0
  7. package/adapters/react/SniceRouter.js.map +1 -0
  8. package/adapters/react/action-bar.d.ts +30 -0
  9. package/adapters/react/action-bar.d.ts.map +1 -0
  10. package/adapters/react/action-bar.js +24 -0
  11. package/adapters/react/action-bar.js.map +1 -0
  12. package/adapters/react/action-bar.tsx +38 -0
  13. package/adapters/react/binpack.d.ts +35 -0
  14. package/adapters/react/binpack.d.ts.map +1 -0
  15. package/adapters/react/binpack.js +24 -0
  16. package/adapters/react/binpack.js.map +1 -0
  17. package/adapters/react/binpack.tsx +43 -0
  18. package/adapters/react/components.d.ts +6 -0
  19. package/adapters/react/components.d.ts.map +1 -1
  20. package/adapters/react/components.js +3 -0
  21. package/adapters/react/components.js.map +1 -1
  22. package/adapters/react/components.ts +6 -0
  23. package/adapters/react/grid.d.ts +36 -0
  24. package/adapters/react/grid.d.ts.map +1 -0
  25. package/adapters/react/grid.js +24 -0
  26. package/adapters/react/grid.js.map +1 -0
  27. package/adapters/react/grid.tsx +44 -0
  28. package/adapters/react/index.d.ts +5 -0
  29. package/adapters/react/index.d.ts.map +1 -1
  30. package/adapters/react/index.js +3 -2
  31. package/adapters/react/index.js.map +1 -1
  32. package/adapters/react/index.ts +6 -3
  33. package/adapters/react/matchRoute.d.ts +16 -0
  34. package/adapters/react/matchRoute.js +32 -0
  35. package/adapters/react/matchRoute.js.map +1 -0
  36. package/adapters/react/types.d.ts +1 -15
  37. package/adapters/react/types.d.ts.map +1 -1
  38. package/adapters/react/types.ts +1 -15
  39. package/adapters/react/useRequestHandler.d.ts +56 -0
  40. package/adapters/react/useRequestHandler.js +103 -0
  41. package/adapters/react/useRequestHandler.js.map +1 -0
  42. package/bin/snice.js +8 -13
  43. package/bin/templates/{pwa → default}/index.html +1 -1
  44. package/bin/templates/{pwa → default}/src/components/app-header.ts +36 -18
  45. package/bin/templates/{pwa → default}/src/components/notification-badge.ts +2 -21
  46. package/bin/templates/{pwa → default}/src/components/search-bar.ts +12 -12
  47. package/bin/templates/default/src/context.ts +17 -0
  48. package/bin/templates/{pwa → default}/src/controllers/notification-controller.ts +10 -15
  49. package/bin/templates/{pwa → default}/src/daemons/notifications.ts +0 -12
  50. package/bin/templates/{pwa → default}/src/main.ts +1 -7
  51. package/bin/templates/{pwa → default}/src/middleware/error.ts +1 -8
  52. package/bin/templates/{pwa → default}/src/pages/dashboard.ts +17 -18
  53. package/bin/templates/{pwa → default}/src/pages/data.ts +24 -24
  54. package/bin/templates/{pwa → default}/src/pages/login.ts +3 -6
  55. package/bin/templates/{pwa → default}/src/pages/notifications.ts +21 -19
  56. package/bin/templates/{pwa → default}/src/pages/profile.ts +10 -12
  57. package/bin/templates/{pwa → default}/src/pages/settings.ts +22 -22
  58. package/bin/templates/default/src/router.ts +13 -0
  59. package/bin/templates/default/src/styles/global.css +16 -0
  60. package/bin/templates/{pwa → default}/tsconfig.json +2 -1
  61. package/bin/templates/react/README.md +124 -0
  62. package/bin/templates/react/global.d.ts +10 -0
  63. package/bin/templates/react/index.html +15 -0
  64. package/bin/templates/react/package.json +31 -0
  65. package/bin/templates/react/src/App.tsx +112 -0
  66. package/bin/templates/react/src/components/AppHeader.tsx +85 -0
  67. package/bin/templates/react/src/components/AppLayout.tsx +11 -0
  68. package/bin/templates/react/src/components/NotificationBadge.tsx +13 -0
  69. package/bin/templates/react/src/components/SearchBar.tsx +63 -0
  70. package/bin/templates/react/src/daemons/notifications.ts +136 -0
  71. package/bin/templates/react/src/fetcher.ts +15 -0
  72. package/bin/templates/react/src/guards/auth.ts +6 -0
  73. package/bin/templates/react/src/main.tsx +27 -0
  74. package/bin/templates/react/src/middleware/auth.ts +16 -0
  75. package/bin/templates/react/src/middleware/error.ts +29 -0
  76. package/bin/templates/react/src/middleware/retry.ts +31 -0
  77. package/bin/templates/react/src/pages/DashboardPage.tsx +111 -0
  78. package/bin/templates/react/src/pages/DataPage.tsx +119 -0
  79. package/bin/templates/react/src/pages/LoginPage.tsx +46 -0
  80. package/bin/templates/react/src/pages/NotificationsPage.tsx +119 -0
  81. package/bin/templates/react/src/pages/ProfilePage.tsx +92 -0
  82. package/bin/templates/react/src/pages/SettingsPage.tsx +165 -0
  83. package/bin/templates/react/src/services/auth.ts +48 -0
  84. package/bin/templates/react/src/services/jwt.ts +35 -0
  85. package/bin/templates/react/src/services/storage.ts +24 -0
  86. package/bin/templates/react/src/styles/global.css +382 -0
  87. package/bin/templates/react/src/types/auth.ts +21 -0
  88. package/bin/templates/react/src/types/notifications.ts +9 -0
  89. package/bin/templates/react/tests/helpers/test-utils.ts +79 -0
  90. package/bin/templates/react/tests/middleware/auth.test.ts +67 -0
  91. package/bin/templates/react/tests/middleware/error.test.ts +105 -0
  92. package/bin/templates/react/tests/middleware/retry.test.ts +103 -0
  93. package/bin/templates/react/tests/services/auth.test.ts +89 -0
  94. package/bin/templates/react/tests/services/jwt.test.ts +76 -0
  95. package/bin/templates/react/tests/services/storage.test.ts +69 -0
  96. package/bin/templates/{base → react}/tsconfig.json +4 -6
  97. package/bin/templates/react/vite.config.ts +18 -0
  98. package/bin/templates/react/vitest.config.ts +18 -0
  99. package/dist/cdn/accordion/snice-accordion.js +1 -1
  100. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  101. package/dist/cdn/action-bar/README.md +27 -0
  102. package/dist/cdn/action-bar/snice-action-bar.js +249 -0
  103. package/dist/cdn/action-bar/snice-action-bar.js.map +1 -0
  104. package/dist/cdn/action-bar/snice-action-bar.min.js +12 -0
  105. package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -0
  106. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  107. package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
  108. package/dist/cdn/alert/snice-alert.js +1 -1
  109. package/dist/cdn/alert/snice-alert.min.js +1 -1
  110. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  111. package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
  112. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  113. package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
  114. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  115. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  116. package/dist/cdn/availability/snice-availability.js +1 -1
  117. package/dist/cdn/availability/snice-availability.min.js +1 -1
  118. package/dist/cdn/avatar/snice-avatar.js +1 -1
  119. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  120. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  121. package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
  122. package/dist/cdn/badge/snice-badge.js +1 -1
  123. package/dist/cdn/badge/snice-badge.min.js +1 -1
  124. package/dist/cdn/banner/snice-banner.js +1 -1
  125. package/dist/cdn/banner/snice-banner.min.js +1 -1
  126. package/dist/cdn/binpack/README.md +27 -0
  127. package/dist/cdn/binpack/snice-binpack.js +1037 -0
  128. package/dist/cdn/binpack/snice-binpack.js.map +1 -0
  129. package/dist/cdn/binpack/snice-binpack.min.js +13 -0
  130. package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
  131. package/dist/cdn/book/snice-book.js +1 -1
  132. package/dist/cdn/book/snice-book.min.js +1 -1
  133. package/dist/cdn/booking/snice-booking.js +1 -1
  134. package/dist/cdn/booking/snice-booking.min.js +1 -1
  135. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  136. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  137. package/dist/cdn/button/README.md +1 -1
  138. package/dist/cdn/button/snice-button.js +2 -2
  139. package/dist/cdn/button/snice-button.js.map +1 -1
  140. package/dist/cdn/button/snice-button.min.js +2 -2
  141. package/dist/cdn/button/snice-button.min.js.map +1 -1
  142. package/dist/cdn/calendar/snice-calendar.js +1 -1
  143. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  144. package/dist/cdn/camera/snice-camera.js +1 -1
  145. package/dist/cdn/camera/snice-camera.min.js +1 -1
  146. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  147. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  148. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  149. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  150. package/dist/cdn/card/snice-card.js +1 -1
  151. package/dist/cdn/card/snice-card.min.js +1 -1
  152. package/dist/cdn/carousel/snice-carousel.js +1 -1
  153. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  154. package/dist/cdn/cart/snice-cart.js +1 -1
  155. package/dist/cdn/cart/snice-cart.min.js +1 -1
  156. package/dist/cdn/chart/snice-chart.js +1 -1
  157. package/dist/cdn/chart/snice-chart.min.js +1 -1
  158. package/dist/cdn/chat/snice-chat.js +1 -1
  159. package/dist/cdn/chat/snice-chat.min.js +1 -1
  160. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  161. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  162. package/dist/cdn/chip/README.md +2 -2
  163. package/dist/cdn/chip/snice-chip.js +2 -2
  164. package/dist/cdn/chip/snice-chip.js.map +1 -1
  165. package/dist/cdn/chip/snice-chip.min.js +3 -3
  166. package/dist/cdn/chip/snice-chip.min.js.map +1 -1
  167. package/dist/cdn/code-block/snice-code-block.js +1 -1
  168. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  169. package/dist/cdn/color-display/snice-color-display.js +1 -1
  170. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  171. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  172. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  173. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  174. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  175. package/dist/cdn/comments/snice-comments.js +1 -1
  176. package/dist/cdn/comments/snice-comments.min.js +1 -1
  177. package/dist/cdn/countdown/snice-countdown.js +1 -1
  178. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  179. package/dist/cdn/cropper/snice-cropper.js +1 -1
  180. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  181. package/dist/cdn/data-card/snice-data-card.js +1 -1
  182. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  183. package/dist/cdn/date-picker/README.md +1 -1
  184. package/dist/cdn/date-picker/snice-date-picker.js +2 -2
  185. package/dist/cdn/date-picker/snice-date-picker.js.map +1 -1
  186. package/dist/cdn/date-picker/snice-date-picker.min.js +2 -2
  187. package/dist/cdn/date-picker/snice-date-picker.min.js.map +1 -1
  188. package/dist/cdn/date-range-picker/README.md +1 -1
  189. package/dist/cdn/date-range-picker/snice-date-range-picker.js +2 -2
  190. package/dist/cdn/date-range-picker/snice-date-range-picker.js.map +1 -1
  191. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +11 -11
  192. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js.map +1 -1
  193. package/dist/cdn/date-time-picker/README.md +1 -1
  194. package/dist/cdn/date-time-picker/snice-date-time-picker.js +2 -2
  195. package/dist/cdn/date-time-picker/snice-date-time-picker.js.map +1 -1
  196. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +2 -2
  197. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js.map +1 -1
  198. package/dist/cdn/diff/snice-diff.js +1 -1
  199. package/dist/cdn/diff/snice-diff.min.js +1 -1
  200. package/dist/cdn/divider/snice-divider.js +1 -1
  201. package/dist/cdn/divider/snice-divider.min.js +1 -1
  202. package/dist/cdn/doc/snice-doc.js +1 -1
  203. package/dist/cdn/doc/snice-doc.min.js +1 -1
  204. package/dist/cdn/draw/README.md +2 -2
  205. package/dist/cdn/draw/snice-draw.js +26 -4
  206. package/dist/cdn/draw/snice-draw.js.map +1 -1
  207. package/dist/cdn/draw/snice-draw.min.js +3 -3
  208. package/dist/cdn/draw/snice-draw.min.js.map +1 -1
  209. package/dist/cdn/drawer/snice-drawer.js +1 -1
  210. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  211. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  212. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  213. package/dist/cdn/estimate/snice-estimate.js +1 -1
  214. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  215. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  216. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  217. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  218. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  219. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  220. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  221. package/dist/cdn/flow/snice-flow.js +1 -1
  222. package/dist/cdn/flow/snice-flow.min.js +1 -1
  223. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  224. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  225. package/dist/cdn/funnel/snice-funnel.js +1 -1
  226. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  227. package/dist/cdn/gantt/snice-gantt.js +1 -1
  228. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  229. package/dist/cdn/gauge/snice-gauge.js +1 -1
  230. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  231. package/dist/cdn/grid/README.md +27 -0
  232. package/dist/cdn/grid/snice-grid.js +862 -0
  233. package/dist/cdn/grid/snice-grid.js.map +1 -0
  234. package/dist/cdn/grid/snice-grid.min.js +13 -0
  235. package/dist/cdn/grid/snice-grid.min.js.map +1 -0
  236. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  237. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  238. package/dist/cdn/image/snice-image.js +1 -1
  239. package/dist/cdn/image/snice-image.min.js +1 -1
  240. package/dist/cdn/input/snice-input.js +1 -1
  241. package/dist/cdn/input/snice-input.min.js +1 -1
  242. package/dist/cdn/invoice/snice-invoice.js +1 -1
  243. package/dist/cdn/invoice/snice-invoice.min.js +1 -1
  244. package/dist/cdn/kanban/snice-kanban.js +1 -1
  245. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  246. package/dist/cdn/key-value/snice-key-value.js +1 -1
  247. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  248. package/dist/cdn/kpi/snice-kpi.js +1 -1
  249. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  250. package/dist/cdn/layout/snice-layout.js +1 -1
  251. package/dist/cdn/layout/snice-layout.min.js +1 -1
  252. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  253. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  254. package/dist/cdn/link/snice-link.js +1 -1
  255. package/dist/cdn/link/snice-link.min.js +1 -1
  256. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  257. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  258. package/dist/cdn/list/snice-list.js +1 -1
  259. package/dist/cdn/list/snice-list.min.js +1 -1
  260. package/dist/cdn/location/snice-location.js +1 -1
  261. package/dist/cdn/location/snice-location.min.js +1 -1
  262. package/dist/cdn/login/README.md +2 -2
  263. package/dist/cdn/login/snice-login.js +2 -2
  264. package/dist/cdn/login/snice-login.js.map +1 -1
  265. package/dist/cdn/login/snice-login.min.js +2 -2
  266. package/dist/cdn/login/snice-login.min.js.map +1 -1
  267. package/dist/cdn/map/snice-map.js +1 -1
  268. package/dist/cdn/map/snice-map.min.js +1 -1
  269. package/dist/cdn/markdown/snice-markdown.js +1 -1
  270. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  271. package/dist/cdn/masonry/snice-masonry.js +1 -1
  272. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  273. package/dist/cdn/menu/snice-menu.js +1 -1
  274. package/dist/cdn/menu/snice-menu.min.js +1 -1
  275. package/dist/cdn/message-strip/README.md +2 -2
  276. package/dist/cdn/message-strip/snice-message-strip.js +2 -2
  277. package/dist/cdn/message-strip/snice-message-strip.js.map +1 -1
  278. package/dist/cdn/message-strip/snice-message-strip.min.js +6 -6
  279. package/dist/cdn/message-strip/snice-message-strip.min.js.map +1 -1
  280. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  281. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  282. package/dist/cdn/modal/snice-modal.js +1 -1
  283. package/dist/cdn/modal/snice-modal.min.js +1 -1
  284. package/dist/cdn/music-player/snice-music-player.js +1 -1
  285. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  286. package/dist/cdn/nav/snice-nav.js +1 -1
  287. package/dist/cdn/nav/snice-nav.min.js +1 -1
  288. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  289. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  290. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  291. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  292. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  293. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  294. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  295. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  296. package/dist/cdn/pagination/snice-pagination.js +1 -1
  297. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  298. package/dist/cdn/paint/README.md +2 -2
  299. package/dist/cdn/paint/snice-paint.js +26 -3
  300. package/dist/cdn/paint/snice-paint.js.map +1 -1
  301. package/dist/cdn/paint/snice-paint.min.js +3 -3
  302. package/dist/cdn/paint/snice-paint.min.js.map +1 -1
  303. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  304. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  305. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  306. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  307. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  308. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  309. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  310. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  311. package/dist/cdn/product-card/README.md +1 -1
  312. package/dist/cdn/product-card/snice-product-card.js +1 -1
  313. package/dist/cdn/product-card/snice-product-card.min.js +1 -1
  314. package/dist/cdn/progress/snice-progress.js +1 -1
  315. package/dist/cdn/progress/snice-progress.min.js +1 -1
  316. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  317. package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
  318. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  319. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  320. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  321. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  322. package/dist/cdn/radio/snice-radio.js +1 -1
  323. package/dist/cdn/radio/snice-radio.min.js +1 -1
  324. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  325. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  326. package/dist/cdn/rating/snice-rating.js +1 -1
  327. package/dist/cdn/rating/snice-rating.min.js +1 -1
  328. package/dist/cdn/receipt/snice-receipt.js +1 -1
  329. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  330. package/dist/cdn/recipe/snice-recipe.js +1 -1
  331. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  332. package/dist/cdn/runtime/README.md +2 -2
  333. package/dist/cdn/runtime/snice-runtime.esm.js +109 -16
  334. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  335. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  336. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  337. package/dist/cdn/runtime/snice-runtime.js +109 -15
  338. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  339. package/dist/cdn/runtime/snice-runtime.min.js +7 -7
  340. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  341. package/dist/cdn/sankey/snice-sankey.js +1 -1
  342. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  343. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  344. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  345. package/dist/cdn/select/snice-select.js +1 -1
  346. package/dist/cdn/select/snice-select.min.js +1 -1
  347. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  348. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  349. package/dist/cdn/slider/snice-slider.js +1 -1
  350. package/dist/cdn/slider/snice-slider.min.js +1 -1
  351. package/dist/cdn/sortable/snice-sortable.js +1 -1
  352. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  353. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  354. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  355. package/dist/cdn/spinner/snice-spinner.js +1 -1
  356. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  357. package/dist/cdn/split-button/snice-split-button.js +1 -1
  358. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  359. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  360. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  361. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  362. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  363. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  364. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  365. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  366. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  367. package/dist/cdn/step-input/snice-step-input.js +1 -1
  368. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  369. package/dist/cdn/stepper/snice-stepper.js +1 -1
  370. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  371. package/dist/cdn/switch/snice-switch.js +1 -1
  372. package/dist/cdn/switch/snice-switch.min.js +1 -1
  373. package/dist/cdn/table/README.md +1 -1
  374. package/dist/cdn/table/snice-table.js +2 -2
  375. package/dist/cdn/table/snice-table.js.map +1 -1
  376. package/dist/cdn/table/snice-table.min.js +2 -2
  377. package/dist/cdn/table/snice-table.min.js.map +1 -1
  378. package/dist/cdn/tabs/snice-tabs.js +1 -1
  379. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  380. package/dist/cdn/tag/README.md +1 -1
  381. package/dist/cdn/tag/snice-tag.js +2 -2
  382. package/dist/cdn/tag/snice-tag.js.map +1 -1
  383. package/dist/cdn/tag/snice-tag.min.js +3 -3
  384. package/dist/cdn/tag/snice-tag.min.js.map +1 -1
  385. package/dist/cdn/tag-input/README.md +2 -2
  386. package/dist/cdn/tag-input/snice-tag-input.js +2 -2
  387. package/dist/cdn/tag-input/snice-tag-input.js.map +1 -1
  388. package/dist/cdn/tag-input/snice-tag-input.min.js +2 -2
  389. package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -1
  390. package/dist/cdn/terminal/snice-terminal.js +1 -1
  391. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  392. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  393. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  394. package/dist/cdn/textarea/snice-textarea.js +1 -1
  395. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  396. package/dist/cdn/time-picker/README.md +1 -1
  397. package/dist/cdn/time-picker/snice-time-picker.js +2 -2
  398. package/dist/cdn/time-picker/snice-time-picker.js.map +1 -1
  399. package/dist/cdn/time-picker/snice-time-picker.min.js +2 -2
  400. package/dist/cdn/time-picker/snice-time-picker.min.js.map +1 -1
  401. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  402. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  403. package/dist/cdn/timeline/snice-timeline.js +1 -1
  404. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  405. package/dist/cdn/timer/snice-timer.js +1 -1
  406. package/dist/cdn/timer/snice-timer.min.js +1 -1
  407. package/dist/cdn/toast/README.md +1 -1
  408. package/dist/cdn/toast/snice-toast.js +7 -3
  409. package/dist/cdn/toast/snice-toast.js.map +1 -1
  410. package/dist/cdn/toast/snice-toast.min.js +6 -6
  411. package/dist/cdn/toast/snice-toast.min.js.map +1 -1
  412. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  413. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  414. package/dist/cdn/tree/snice-tree.js +1 -1
  415. package/dist/cdn/tree/snice-tree.min.js +1 -1
  416. package/dist/cdn/treemap/snice-treemap.js +1 -1
  417. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  418. package/dist/cdn/user-card/snice-user-card.js +1 -1
  419. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  420. package/dist/cdn/video-player/snice-video-player.js +1 -1
  421. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  422. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  423. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  424. package/dist/cdn/waterfall/README.md +1 -1
  425. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  426. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  427. package/dist/cdn/weather/snice-weather.js +1 -1
  428. package/dist/cdn/weather/snice-weather.min.js +1 -1
  429. package/dist/cdn/work-order/snice-work-order.js +1 -1
  430. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  431. package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
  432. package/dist/components/action-bar/snice-action-bar.js +182 -0
  433. package/dist/components/action-bar/snice-action-bar.js.map +1 -0
  434. package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
  435. package/dist/components/binpack/snice-binpack.d.ts +82 -0
  436. package/dist/components/binpack/snice-binpack.js +970 -0
  437. package/dist/components/binpack/snice-binpack.js.map +1 -0
  438. package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
  439. package/dist/components/button/snice-button.js +1 -1
  440. package/dist/components/button/snice-button.js.map +1 -1
  441. package/dist/components/chip/snice-chip.js +1 -1
  442. package/dist/components/chip/snice-chip.js.map +1 -1
  443. package/dist/components/date-picker/snice-date-picker.js +1 -1
  444. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  445. package/dist/components/date-range-picker/snice-date-range-picker.js +1 -1
  446. package/dist/components/date-range-picker/snice-date-range-picker.js.map +1 -1
  447. package/dist/components/date-time-picker/snice-date-time-picker.js +1 -1
  448. package/dist/components/date-time-picker/snice-date-time-picker.js.map +1 -1
  449. package/dist/components/draw/snice-draw.d.ts +2 -0
  450. package/dist/components/draw/snice-draw.js +25 -3
  451. package/dist/components/draw/snice-draw.js.map +1 -1
  452. package/dist/components/grid/snice-grid.d.ts +73 -0
  453. package/dist/components/grid/snice-grid.js +795 -0
  454. package/dist/components/grid/snice-grid.js.map +1 -0
  455. package/dist/components/grid/snice-grid.types.d.ts +41 -0
  456. package/dist/components/message-strip/snice-message-strip.js +1 -1
  457. package/dist/components/message-strip/snice-message-strip.js.map +1 -1
  458. package/dist/components/paint/snice-paint.d.ts +2 -0
  459. package/dist/components/paint/snice-paint.js +25 -2
  460. package/dist/components/paint/snice-paint.js.map +1 -1
  461. package/dist/components/tag/snice-tag.js +1 -1
  462. package/dist/components/tag/snice-tag.js.map +1 -1
  463. package/dist/components/tag-input/snice-tag-input.js +1 -1
  464. package/dist/components/tag-input/snice-tag-input.js.map +1 -1
  465. package/dist/components/theme/theme.css +15 -0
  466. package/dist/components/time-picker/snice-time-picker.js +1 -1
  467. package/dist/components/time-picker/snice-time-picker.js.map +1 -1
  468. package/dist/components/toast/snice-toast-container.js +4 -0
  469. package/dist/components/toast/snice-toast-container.js.map +1 -1
  470. package/dist/components/toast/snice-toast.js +2 -2
  471. package/dist/create-request-handler.d.ts +42 -0
  472. package/dist/index.cjs +106 -12
  473. package/dist/index.cjs.map +1 -1
  474. package/dist/index.d.ts +2 -0
  475. package/dist/index.esm.js +106 -13
  476. package/dist/index.esm.js.map +1 -1
  477. package/dist/index.iife.js +106 -12
  478. package/dist/index.iife.js.map +1 -1
  479. package/dist/react/SniceProvider.d.ts +71 -0
  480. package/dist/react/SniceProvider.js +49 -0
  481. package/dist/react/SniceProvider.js.map +1 -0
  482. package/dist/react/SniceRouter.d.ts +44 -0
  483. package/dist/react/SniceRouter.js +190 -0
  484. package/dist/react/SniceRouter.js.map +1 -0
  485. package/dist/react/index.d.ts +3 -0
  486. package/dist/react/index.js +14 -0
  487. package/dist/react/index.js.map +1 -0
  488. package/dist/react/matchRoute.d.ts +16 -0
  489. package/dist/react/matchRoute.js +32 -0
  490. package/dist/react/matchRoute.js.map +1 -0
  491. package/dist/react/useRequestHandler.d.ts +56 -0
  492. package/dist/react/useRequestHandler.js +103 -0
  493. package/dist/react/useRequestHandler.js.map +1 -0
  494. package/dist/symbols.cjs +1 -1
  495. package/dist/symbols.esm.js +1 -1
  496. package/dist/transitions.cjs +1 -1
  497. package/dist/transitions.esm.js +1 -1
  498. package/dist/types/guard.d.ts +4 -11
  499. package/docs/ai/DEVELOPMENT.md +1 -1
  500. package/docs/ai/README.md +7 -7
  501. package/docs/ai/components/accordion.md +46 -80
  502. package/docs/ai/components/action-bar.md +75 -0
  503. package/docs/ai/components/activity-feed.md +7 -7
  504. package/docs/ai/components/alert.md +26 -44
  505. package/docs/ai/components/app-tiles.md +34 -39
  506. package/docs/ai/components/approval-flow.md +1 -1
  507. package/docs/ai/components/audio-recorder.md +35 -67
  508. package/docs/ai/components/availability.md +13 -34
  509. package/docs/ai/components/avatar-group.md +26 -13
  510. package/docs/ai/components/avatar.md +52 -36
  511. package/docs/ai/components/badge.md +21 -32
  512. package/docs/ai/components/banner.md +21 -43
  513. package/docs/ai/components/binpack.md +89 -0
  514. package/docs/ai/components/book.md +25 -23
  515. package/docs/ai/components/booking.md +31 -36
  516. package/docs/ai/components/breadcrumbs.md +36 -11
  517. package/docs/ai/components/button.md +33 -44
  518. package/docs/ai/components/calendar.md +37 -70
  519. package/docs/ai/components/camera-annotate.md +31 -64
  520. package/docs/ai/components/camera.md +38 -120
  521. package/docs/ai/components/candlestick.md +32 -52
  522. package/docs/ai/components/card.md +20 -30
  523. package/docs/ai/components/carousel.md +32 -32
  524. package/docs/ai/components/cart.md +24 -29
  525. package/docs/ai/components/chart.md +29 -114
  526. package/docs/ai/components/chat.md +38 -75
  527. package/docs/ai/components/checkbox.md +22 -41
  528. package/docs/ai/components/chip.md +18 -54
  529. package/docs/ai/components/code-block.md +57 -178
  530. package/docs/ai/components/color-display.md +12 -32
  531. package/docs/ai/components/color-picker.md +17 -39
  532. package/docs/ai/components/command-palette.md +49 -71
  533. package/docs/ai/components/comments.md +55 -36
  534. package/docs/ai/components/countdown.md +28 -30
  535. package/docs/ai/components/cropper.md +33 -33
  536. package/docs/ai/components/data-card.md +20 -14
  537. package/docs/ai/components/date-picker.md +40 -47
  538. package/docs/ai/components/date-range-picker.md +31 -15
  539. package/docs/ai/components/date-time-picker.md +23 -46
  540. package/docs/ai/components/diff.md +30 -31
  541. package/docs/ai/components/divider.md +17 -47
  542. package/docs/ai/components/doc.md +43 -68
  543. package/docs/ai/components/draw.md +35 -87
  544. package/docs/ai/components/drawer.md +48 -77
  545. package/docs/ai/components/empty-state.md +10 -44
  546. package/docs/ai/components/estimate.md +33 -58
  547. package/docs/ai/components/file-gallery.md +48 -100
  548. package/docs/ai/components/file-upload.md +17 -53
  549. package/docs/ai/components/flip-card.md +31 -23
  550. package/docs/ai/components/flow.md +37 -65
  551. package/docs/ai/components/form-builder.md +35 -75
  552. package/docs/ai/components/form-layout.md +10 -20
  553. package/docs/ai/components/funnel.md +33 -48
  554. package/docs/ai/components/gantt.md +27 -23
  555. package/docs/ai/components/gauge.md +16 -17
  556. package/docs/ai/components/grid.md +116 -0
  557. package/docs/ai/components/heatmap.md +21 -21
  558. package/docs/ai/components/image.md +7 -13
  559. package/docs/ai/components/input.md +38 -70
  560. package/docs/ai/components/invoice.md +35 -36
  561. package/docs/ai/components/kanban.md +32 -61
  562. package/docs/ai/components/key-value.md +32 -16
  563. package/docs/ai/components/kpi.md +38 -73
  564. package/docs/ai/components/layout.md +29 -23
  565. package/docs/ai/components/leaderboard.md +28 -37
  566. package/docs/ai/components/link-preview.md +12 -18
  567. package/docs/ai/components/link.md +10 -7
  568. package/docs/ai/components/list.md +21 -5
  569. package/docs/ai/components/location.md +21 -25
  570. package/docs/ai/components/login.md +14 -9
  571. package/docs/ai/components/map.md +27 -33
  572. package/docs/ai/components/markdown.md +20 -24
  573. package/docs/ai/components/masonry.md +10 -14
  574. package/docs/ai/components/mentions.md +26 -12
  575. package/docs/ai/components/menu.md +54 -52
  576. package/docs/ai/components/message-strip.md +20 -20
  577. package/docs/ai/components/metric-table.md +14 -21
  578. package/docs/ai/components/modal.md +27 -18
  579. package/docs/ai/components/music-player.md +49 -41
  580. package/docs/ai/components/nav.md +34 -31
  581. package/docs/ai/components/network-graph.md +27 -42
  582. package/docs/ai/components/notification-center.md +31 -33
  583. package/docs/ai/components/order-tracker.md +36 -27
  584. package/docs/ai/components/org-chart.md +36 -31
  585. package/docs/ai/components/pagination.md +34 -26
  586. package/docs/ai/components/paint.md +53 -91
  587. package/docs/ai/components/pdf-viewer.md +35 -36
  588. package/docs/ai/components/permission-matrix.md +26 -31
  589. package/docs/ai/components/podcast-player.md +64 -70
  590. package/docs/ai/components/pricing-table.md +37 -48
  591. package/docs/ai/components/product-card.md +58 -41
  592. package/docs/ai/components/progress-ring.md +20 -24
  593. package/docs/ai/components/progress.md +28 -45
  594. package/docs/ai/components/qr-code.md +25 -27
  595. package/docs/ai/components/qr-reader.md +20 -23
  596. package/docs/ai/components/radio.md +17 -15
  597. package/docs/ai/components/range-slider.md +22 -11
  598. package/docs/ai/components/rating.md +29 -33
  599. package/docs/ai/components/receipt.md +50 -127
  600. package/docs/ai/components/recipe.md +44 -42
  601. package/docs/ai/components/sankey.md +21 -30
  602. package/docs/ai/components/scheduler.md +29 -41
  603. package/docs/ai/components/segmented-control.md +11 -15
  604. package/docs/ai/components/select.md +58 -102
  605. package/docs/ai/components/skeleton.md +16 -30
  606. package/docs/ai/components/slider.md +26 -20
  607. package/docs/ai/components/sortable.md +25 -27
  608. package/docs/ai/components/sparkline.md +21 -17
  609. package/docs/ai/components/spinner.md +9 -5
  610. package/docs/ai/components/split-button.md +10 -13
  611. package/docs/ai/components/split-pane.md +19 -14
  612. package/docs/ai/components/spotlight.md +31 -26
  613. package/docs/ai/components/spreadsheet.md +51 -97
  614. package/docs/ai/components/stat-group.md +9 -19
  615. package/docs/ai/components/step-input.md +17 -15
  616. package/docs/ai/components/stepper.md +14 -15
  617. package/docs/ai/components/switch.md +15 -9
  618. package/docs/ai/components/table.md +24 -84
  619. package/docs/ai/components/tabs.md +18 -10
  620. package/docs/ai/components/tag-input.md +18 -29
  621. package/docs/ai/components/tag.md +10 -22
  622. package/docs/ai/components/terminal.md +9 -9
  623. package/docs/ai/components/testimonial.md +9 -19
  624. package/docs/ai/components/textarea.md +15 -16
  625. package/docs/ai/components/theme.md +3 -3
  626. package/docs/ai/components/time-picker.md +30 -49
  627. package/docs/ai/components/time-range-picker.md +16 -15
  628. package/docs/ai/components/timeline.md +5 -4
  629. package/docs/ai/components/timer.md +8 -8
  630. package/docs/ai/components/toast.md +24 -18
  631. package/docs/ai/components/tooltip.md +11 -22
  632. package/docs/ai/components/tree.md +9 -9
  633. package/docs/ai/components/treemap.md +14 -13
  634. package/docs/ai/components/user-card.md +21 -27
  635. package/docs/ai/components/video-player.md +35 -52
  636. package/docs/ai/components/virtual-scroller.md +1 -1
  637. package/docs/ai/components/waterfall.md +17 -16
  638. package/docs/ai/components/weather.md +19 -34
  639. package/docs/ai/components/work-order.md +58 -134
  640. package/docs/ai/patterns.md +87 -0
  641. package/docs/ai/react-integration.md +97 -0
  642. package/docs/components/accordion.md +72 -151
  643. package/docs/components/action-bar.md +185 -0
  644. package/docs/components/activity-feed.md +9 -14
  645. package/docs/components/alert.md +17 -109
  646. package/docs/components/app-tiles.md +58 -43
  647. package/docs/components/approval-flow.md +8 -14
  648. package/docs/components/audio-recorder.md +45 -51
  649. package/docs/components/availability.md +30 -45
  650. package/docs/components/avatar-group.md +34 -14
  651. package/docs/components/avatar.md +20 -55
  652. package/docs/components/badge.md +53 -470
  653. package/docs/components/banner.md +44 -30
  654. package/docs/components/binpack.md +208 -0
  655. package/docs/components/book.md +78 -57
  656. package/docs/components/booking.md +35 -87
  657. package/docs/components/breadcrumbs.md +74 -448
  658. package/docs/components/button.md +72 -603
  659. package/docs/components/calendar.md +77 -261
  660. package/docs/components/camera-annotate.md +44 -96
  661. package/docs/components/camera.md +94 -333
  662. package/docs/components/candlestick.md +79 -116
  663. package/docs/components/card.md +51 -689
  664. package/docs/components/carousel.md +29 -76
  665. package/docs/components/cart.md +44 -136
  666. package/docs/components/chart.md +95 -438
  667. package/docs/components/chat.md +175 -439
  668. package/docs/components/checkbox.md +52 -609
  669. package/docs/components/chip.md +45 -574
  670. package/docs/components/code-block.md +157 -421
  671. package/docs/components/color-display.md +45 -54
  672. package/docs/components/color-picker.md +103 -36
  673. package/docs/components/command-palette.md +98 -92
  674. package/docs/components/comments.md +16 -10
  675. package/docs/components/countdown.md +15 -20
  676. package/docs/components/cropper.md +14 -16
  677. package/docs/components/data-card.md +16 -15
  678. package/docs/components/date-picker.md +45 -25
  679. package/docs/components/date-range-picker.md +140 -87
  680. package/docs/components/date-time-picker.md +25 -28
  681. package/docs/components/diff.md +22 -17
  682. package/docs/components/divider.md +18 -20
  683. package/docs/components/doc.md +105 -197
  684. package/docs/components/draw.md +117 -223
  685. package/docs/components/drawer.md +113 -478
  686. package/docs/components/empty-state.md +13 -29
  687. package/docs/components/estimate.md +58 -118
  688. package/docs/components/file-gallery.md +123 -495
  689. package/docs/components/file-upload.md +36 -123
  690. package/docs/components/flip-card.md +30 -34
  691. package/docs/components/flow.md +74 -89
  692. package/docs/components/form-builder.md +59 -86
  693. package/docs/components/form-layout.md +21 -31
  694. package/docs/components/funnel.md +21 -22
  695. package/docs/components/gantt.md +5 -5
  696. package/docs/components/gauge.md +5 -23
  697. package/docs/components/grid.md +249 -0
  698. package/docs/components/heatmap.md +13 -55
  699. package/docs/components/image.md +28 -32
  700. package/docs/components/input.md +25 -14
  701. package/docs/components/invoice.md +34 -33
  702. package/docs/components/kanban.md +99 -394
  703. package/docs/components/key-value.md +22 -12
  704. package/docs/components/kpi.md +41 -112
  705. package/docs/components/layout.md +7 -13
  706. package/docs/components/leaderboard.md +52 -76
  707. package/docs/components/link-preview.md +20 -16
  708. package/docs/components/link.md +22 -19
  709. package/docs/components/list.md +44 -26
  710. package/docs/components/location.md +9 -13
  711. package/docs/components/login.md +42 -36
  712. package/docs/components/map.md +24 -46
  713. package/docs/components/markdown.md +14 -25
  714. package/docs/components/masonry.md +15 -13
  715. package/docs/components/mentions.md +36 -25
  716. package/docs/components/menu.md +39 -46
  717. package/docs/components/message-strip.md +15 -51
  718. package/docs/components/metric-table.md +50 -72
  719. package/docs/components/modal.md +32 -43
  720. package/docs/components/music-player.md +41 -49
  721. package/docs/components/nav.md +23 -13
  722. package/docs/components/network-graph.md +14 -13
  723. package/docs/components/notification-center.md +68 -172
  724. package/docs/components/order-tracker.md +72 -117
  725. package/docs/components/org-chart.md +58 -207
  726. package/docs/components/pagination.md +67 -89
  727. package/docs/components/paint.md +86 -172
  728. package/docs/components/pdf-viewer.md +46 -151
  729. package/docs/components/permission-matrix.md +61 -112
  730. package/docs/components/podcast-player.md +41 -119
  731. package/docs/components/pricing-table.md +104 -147
  732. package/docs/components/product-card.md +94 -197
  733. package/docs/components/progress-ring.md +29 -32
  734. package/docs/components/progress.md +30 -61
  735. package/docs/components/qr-code.md +53 -61
  736. package/docs/components/qr-reader.md +53 -42
  737. package/docs/components/radio.md +42 -40
  738. package/docs/components/range-slider.md +41 -30
  739. package/docs/components/rating.md +50 -84
  740. package/docs/components/receipt.md +91 -129
  741. package/docs/components/recipe.md +107 -216
  742. package/docs/components/sankey.md +47 -83
  743. package/docs/components/scheduler.md +81 -184
  744. package/docs/components/segmented-control.md +48 -40
  745. package/docs/components/select.md +107 -129
  746. package/docs/components/skeleton.md +33 -47
  747. package/docs/components/slider.md +49 -53
  748. package/docs/components/sortable.md +43 -186
  749. package/docs/components/sparkline.md +26 -25
  750. package/docs/components/spinner.md +32 -37
  751. package/docs/components/split-button.md +43 -23
  752. package/docs/components/split-pane.md +41 -58
  753. package/docs/components/spotlight.md +53 -145
  754. package/docs/components/spreadsheet.md +84 -307
  755. package/docs/components/stat-group.md +27 -61
  756. package/docs/components/step-input.md +44 -41
  757. package/docs/components/stepper.md +55 -89
  758. package/docs/components/switch.md +39 -39
  759. package/docs/components/table.md +27 -32
  760. package/docs/components/tabs.md +36 -27
  761. package/docs/components/tag-input.md +50 -176
  762. package/docs/components/tag.md +12 -50
  763. package/docs/components/terminal.md +32 -37
  764. package/docs/components/testimonial.md +24 -81
  765. package/docs/components/textarea.md +9 -14
  766. package/docs/components/theme.md +10 -23
  767. package/docs/components/time-picker.md +48 -72
  768. package/docs/components/time-range-picker.md +22 -41
  769. package/docs/components/timeline.md +7 -14
  770. package/docs/components/timer.md +16 -32
  771. package/docs/components/toast.md +19 -45
  772. package/docs/components/tooltip.md +13 -115
  773. package/docs/components/tree.md +2 -19
  774. package/docs/components/treemap.md +19 -43
  775. package/docs/components/user-card.md +13 -22
  776. package/docs/components/video-player.md +53 -227
  777. package/docs/components/virtual-scroller.md +11 -44
  778. package/docs/components/waterfall.md +58 -137
  779. package/docs/components/weather.md +94 -153
  780. package/docs/components/work-order.md +56 -143
  781. package/docs/plans/2026-03-09-action-bar-design.md +104 -0
  782. package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
  783. package/docs/plans/2026-03-10-grid-component-design.md +138 -0
  784. package/docs/plans/2026-03-10-grid-component-plan.md +716 -0
  785. package/docs/plans/2026-03-10-react-integration-design.md +166 -0
  786. package/docs/plans/2026-03-10-react-integration-plan.md +1178 -0
  787. package/docs/react-integration.md +508 -0
  788. package/docs/request-response.md +63 -0
  789. package/package.json +1 -1
  790. package/bin/templates/base/README.md +0 -33
  791. package/bin/templates/base/global.d.ts +0 -14
  792. package/bin/templates/base/index.html +0 -13
  793. package/bin/templates/base/package.json +0 -21
  794. package/bin/templates/base/src/components/counter-button.ts +0 -88
  795. package/bin/templates/base/src/components/counter-button.types.ts +0 -7
  796. package/bin/templates/base/src/components/feature-card.ts +0 -59
  797. package/bin/templates/base/src/components/feature-card.types.ts +0 -5
  798. package/bin/templates/base/src/controllers/counter-controller.ts +0 -24
  799. package/bin/templates/base/src/main.ts +0 -24
  800. package/bin/templates/base/src/pages/about-page.ts +0 -68
  801. package/bin/templates/base/src/pages/home-page.ts +0 -105
  802. package/bin/templates/base/src/pages/not-found-page.ts +0 -55
  803. package/bin/templates/base/src/router.ts +0 -9
  804. package/bin/templates/base/src/styles/global.css +0 -27
  805. package/bin/templates/base/src/types/api-response.ts +0 -5
  806. package/bin/templates/base/src/types/status.ts +0 -1
  807. package/bin/templates/base/src/types/theme.ts +0 -1
  808. package/bin/templates/base/src/types/user.ts +0 -5
  809. package/bin/templates/base/vite.config.ts +0 -38
  810. package/bin/templates/pwa/public/vite.svg +0 -1
  811. package/bin/templates/pwa/src/router.ts +0 -20
  812. package/bin/templates/pwa/src/styles/global.css +0 -64
  813. /package/bin/templates/{pwa → default}/README.md +0 -0
  814. /package/bin/templates/{pwa → default}/global.d.ts +0 -0
  815. /package/bin/templates/{pwa → default}/package.json +0 -0
  816. /package/bin/templates/{pwa → default}/public/icons/.gitkeep +0 -0
  817. /package/bin/templates/{base → default}/public/vite.svg +0 -0
  818. /package/bin/templates/{pwa → default}/src/fetcher.ts +0 -0
  819. /package/bin/templates/{pwa → default}/src/guards/auth.ts +0 -0
  820. /package/bin/templates/{pwa → default}/src/middleware/auth.ts +0 -0
  821. /package/bin/templates/{pwa → default}/src/middleware/retry.ts +0 -0
  822. /package/bin/templates/{pwa → default}/src/services/auth.ts +0 -0
  823. /package/bin/templates/{pwa → default}/src/services/jwt.ts +0 -0
  824. /package/bin/templates/{pwa → default}/src/services/storage.ts +0 -0
  825. /package/bin/templates/{pwa → default}/src/types/auth.ts +0 -0
  826. /package/bin/templates/{pwa → default}/src/types/notifications.ts +0 -0
  827. /package/bin/templates/{pwa → default}/tests/helpers/test-utils.ts +0 -0
  828. /package/bin/templates/{pwa → default}/tests/middleware/auth.test.ts +0 -0
  829. /package/bin/templates/{pwa → default}/tests/middleware/error.test.ts +0 -0
  830. /package/bin/templates/{pwa → default}/tests/middleware/retry.test.ts +0 -0
  831. /package/bin/templates/{pwa → default}/tests/services/auth.test.ts +0 -0
  832. /package/bin/templates/{pwa → default}/tests/services/jwt.test.ts +0 -0
  833. /package/bin/templates/{pwa → default}/tests/services/storage.test.ts +0 -0
  834. /package/bin/templates/{pwa → default}/vite.config.ts +0 -0
  835. /package/bin/templates/{pwa → default}/vitest.config.ts +0 -0
@@ -1,4 +1,4 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/kpi.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/kpi.md -->
2
2
 
3
3
  # KPI Component
4
4
 
@@ -12,6 +12,7 @@ A key performance indicator display component for showing metrics with optional
12
12
  - [CSS Parts](#css-parts)
13
13
  - [Basic Usage](#basic-usage)
14
14
  - [Examples](#examples)
15
+ - [Accessibility](#accessibility)
15
16
 
16
17
  ## Properties
17
18
 
@@ -19,12 +20,12 @@ A key performance indicator display component for showing metrics with optional
19
20
  |----------|------|---------|-------------|
20
21
  | `label` | `string` | `''` | Label text (metric name) |
21
22
  | `value` | `string \| number` | `''` | Main metric value to display |
22
- | `trend-value` | `string \| number` | `undefined` | Optional trend value (e.g., "+12.5%") |
23
- | `trend-data` | `number[]` | `undefined` | Data for sparkline chart |
24
- | `sentiment` | `KpiSentiment` | `undefined` | Trend sentiment ('up', 'down', 'neutral') |
25
- | `size` | `KpiSize` | `'medium'` | Component size ('small', 'medium', 'large') |
26
- | `show-sparkline` | `boolean` | `true` | Whether to show sparkline when data is provided |
27
- | `color-value` | `boolean` | `false` | Apply sentiment color to main value |
23
+ | `trendValue` (attr: `trend-value`) | `string \| number` | `undefined` | Optional trend value (e.g., "+12.5%") |
24
+ | `trendData` | `number[]` | `undefined` | Data for sparkline chart (set via JavaScript) |
25
+ | `sentiment` | `'up' \| 'down' \| 'neutral'` | `undefined` | Trend sentiment |
26
+ | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Component size |
27
+ | `showSparkline` (attr: `show-sparkline`) | `boolean` | `true` | Whether to show sparkline when data is provided |
28
+ | `colorValue` (attr: `color-value`) | `boolean` | `false` | Apply sentiment color to main value |
28
29
 
29
30
  ## Slots
30
31
 
@@ -33,22 +34,6 @@ A key performance indicator display component for showing metrics with optional
33
34
  | `before` | Content displayed before the label/value (e.g., icons) |
34
35
  | `after` | Content displayed after sparkline (e.g., additional actions) |
35
36
 
36
- ## With Icon (Before Slot)
37
-
38
- ```html
39
- <snice-kpi
40
- label="Total Revenue"
41
- value="$45,231"
42
- trend-value="+12%"
43
- sentiment="up">
44
- <div slot="before" style="display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; background: var(--snice-color-primary-subtle); border-radius: var(--snice-border-radius-md); margin-bottom: var(--snice-spacing-xs);">
45
- <svg style="width: 1.5rem; height: 1.5rem; color: var(--snice-color-primary); fill: currentColor;" viewBox="0 0 24 24">
46
- <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/>
47
- </svg>
48
- </div>
49
- </snice-kpi>
50
- ```
51
-
52
37
  ## CSS Parts
53
38
 
54
39
  | Part | Description |
@@ -83,6 +68,10 @@ snice-kpi::part(trend) {
83
68
 
84
69
  ## Basic Usage
85
70
 
71
+ ```typescript
72
+ import 'snice/components/kpi/snice-kpi';
73
+ ```
74
+
86
75
  ```html
87
76
  <snice-kpi
88
77
  label="Total Revenue"
@@ -90,7 +79,9 @@ snice-kpi::part(trend) {
90
79
  </snice-kpi>
91
80
  ```
92
81
 
93
- ## With Trend Indicator
82
+ ## Examples
83
+
84
+ ### With Trend Indicator
94
85
 
95
86
  ```html
96
87
  <snice-kpi
@@ -101,7 +92,7 @@ snice-kpi::part(trend) {
101
92
  </snice-kpi>
102
93
  ```
103
94
 
104
- ## With Sparkline
95
+ ### With Sparkline
105
96
 
106
97
  ```html
107
98
  <snice-kpi
@@ -119,9 +110,24 @@ snice-kpi::part(trend) {
119
110
  </script>
120
111
  ```
121
112
 
122
- ## Examples
113
+ ### With Icon (Before Slot)
114
+
115
+ ```html
116
+ <snice-kpi
117
+ label="Total Revenue"
118
+ value="$45,231"
119
+ trend-value="+12%"
120
+ sentiment="up">
121
+ <div slot="before" style="display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; background: var(--snice-color-primary-subtle); border-radius: var(--snice-border-radius-md); margin-bottom: var(--snice-spacing-xs);">
122
+ <svg style="width: 1.5rem; height: 1.5rem; color: var(--snice-color-primary); fill: currentColor;" viewBox="0 0 24 24">
123
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z"/>
124
+ </svg>
125
+ </div>
126
+ </snice-kpi>
127
+ ```
123
128
 
124
129
  ### Dashboard Metrics
130
+
125
131
  ```html
126
132
  <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
127
133
  <snice-kpi
@@ -157,6 +163,7 @@ snice-kpi::part(trend) {
157
163
  ```
158
164
 
159
165
  ### Without Sparkline
166
+
160
167
  ```html
161
168
  <snice-kpi
162
169
  label="Customer Satisfaction"
@@ -167,59 +174,26 @@ snice-kpi::part(trend) {
167
174
  </snice-kpi>
168
175
  ```
169
176
 
170
- ### Complex Metrics
171
- ```html
172
- <snice-kpi
173
- id="nps"
174
- label="Net Promoter Score"
175
- value="72"
176
- trend-value="+4 pts"
177
- sentiment="up">
178
- </snice-kpi>
179
-
180
- <snice-kpi
181
- id="cac"
182
- label="Customer Acquisition Cost"
183
- value="$156"
184
- trend-value="-5.2%"
185
- sentiment="down">
186
- </snice-kpi>
187
- ```
177
+ ### Sentiment Variants
188
178
 
189
- ## Features
190
-
191
- - **Clear Value Display**: Large, prominent metric value
192
- - **Icon Support**: Optional icon slot for visual branding
193
- - **Trend Indicators**: Optional trend value with sentiment icons
194
- - **Sparkline Integration**: Built-in sparkline chart support
195
- - **Sentiment Colors**: Visual feedback with up/down/neutral states
196
- - **Multiple Sizes**: Small, medium, and large variants
197
- - **Flexible Layout**: Responsive and adaptable to different layouts
198
-
199
- ## Sentiment Variants
200
-
201
- ### Up (Positive)
202
179
  ```html
180
+ <!-- Up (Positive) -->
203
181
  <snice-kpi
204
182
  label="Profit Margin"
205
183
  value="34.2%"
206
184
  trend-value="+3.5%"
207
185
  sentiment="up">
208
186
  </snice-kpi>
209
- ```
210
187
 
211
- ### Down (Attention Needed)
212
- ```html
188
+ <!-- Down (Attention Needed) -->
213
189
  <snice-kpi
214
190
  label="Churn Rate"
215
191
  value="2.3%"
216
192
  trend-value="+0.8%"
217
193
  sentiment="down">
218
194
  </snice-kpi>
219
- ```
220
195
 
221
- ### Neutral (Stable)
222
- ```html
196
+ <!-- Neutral (Stable) -->
223
197
  <snice-kpi
224
198
  label="Market Share"
225
199
  value="28.5%"
@@ -228,50 +202,12 @@ snice-kpi::part(trend) {
228
202
  </snice-kpi>
229
203
  ```
230
204
 
231
- ## Sizes
205
+ ### Sizes
232
206
 
233
- ### Small
234
207
  ```html
235
- <snice-kpi
236
- label="Active Users"
237
- value="1,234"
238
- size="small">
239
- </snice-kpi>
240
- ```
241
-
242
- ### Medium (Default)
243
- ```html
244
- <snice-kpi
245
- label="Active Users"
246
- value="1,234"
247
- size="medium">
248
- </snice-kpi>
249
- ```
250
-
251
- ### Large
252
- ```html
253
- <snice-kpi
254
- label="Active Users"
255
- value="1,234"
256
- size="large">
257
- </snice-kpi>
258
- ```
259
-
260
- ## Theming
261
-
262
- The component uses these CSS custom properties:
263
-
264
- ```css
265
- --snice-color-background
266
- --snice-color-border
267
- --snice-color-text
268
- --snice-color-text-secondary
269
- --snice-color-success
270
- --snice-color-danger
271
- --snice-spacing-*
272
- --snice-font-size-*
273
- --snice-font-weight-*
274
- --snice-border-radius-md
208
+ <snice-kpi label="Active Users" value="1,234" size="small"></snice-kpi>
209
+ <snice-kpi label="Active Users" value="1,234" size="medium"></snice-kpi>
210
+ <snice-kpi label="Active Users" value="1,234" size="large"></snice-kpi>
275
211
  ```
276
212
 
277
213
  ## Accessibility
@@ -279,10 +215,3 @@ The component uses these CSS custom properties:
279
215
  - Labels provide context for displayed values
280
216
  - Sentiment indicators have clear visual differentiation (color + icon)
281
217
  - Sufficient color contrast for all text elements
282
-
283
- ## Performance
284
-
285
- - Lightweight component with minimal DOM
286
- - Efficient sparkline rendering via SVG
287
- - CSS containment for optimized rendering
288
- - No external dependencies beyond sparkline component
@@ -1,22 +1,16 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/layout.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/layout.md -->
2
2
 
3
3
  # Layout
4
4
  `<snice-layout>`
5
5
 
6
6
  Application layout with header navigation, main content area, and footer.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/layout/snice-layout';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-layout.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Methods](#methods)
10
+ - [Slots](#slots)
11
+ - [CSS Parts](#css-parts)
12
+ - [Basic Usage](#basic-usage)
13
+ - [Examples](#examples)
20
14
 
21
15
  ## Methods
22
16
 
@@ -1,10 +1,12 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/leaderboard.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/leaderboard.md -->
2
2
 
3
- # Leaderboard Component
3
+ # Leaderboard
4
+ `<snice-leaderboard>`
4
5
 
5
- The leaderboard component displays a ranked list of entries with optional avatars, change indicators, and podium highlighting. It supports a **dual API**: declarative child elements (`<snice-leaderboard-entry>`) and an imperative `setEntries()` method.
6
+ A ranked list of entries with optional avatars, change indicators, and podium highlighting. Supports a dual API: declarative child elements (`<snice-leaderboard-entry>`) and an imperative `setEntries()` method.
6
7
 
7
8
  ## Table of Contents
9
+ - [Components](#components)
8
10
  - [Properties](#properties)
9
11
  - [Methods](#methods)
10
12
  - [Events](#events)
@@ -12,11 +14,25 @@ The leaderboard component displays a ranked list of entries with optional avatar
12
14
  - [CSS Custom Properties](#css-custom-properties)
13
15
  - [CSS Parts](#css-parts)
14
16
  - [Basic Usage](#basic-usage)
15
- - [Declarative API (Child Elements)](#declarative-api-child-elements)
16
- - [Imperative API (setEntries)](#imperative-api-setentries)
17
- - [Variants](#variants)
17
+ - [Examples](#examples)
18
18
  - [Accessibility](#accessibility)
19
19
 
20
+ ## Components
21
+
22
+ - `<snice-leaderboard>` - The container component
23
+ - `<snice-leaderboard-entry>` - Data container child element (does not render its own shadow DOM)
24
+
25
+ ### Entry Attributes
26
+
27
+ | Attribute | Type | Default | Description |
28
+ |-----------|------|---------|-------------|
29
+ | `rank` | `number` | `0` | Position/rank number |
30
+ | `name` | `string` | `''` | Display name |
31
+ | `score` | `string` | `''` | Score to display |
32
+ | `avatar` | `string` | `''` | URL to avatar image (optional) |
33
+ | `change` | `number` | `0` | Rank change indicator (positive = up, negative = down) |
34
+ | `highlighted` | `boolean` | `false` | Highlight this entry |
35
+
20
36
  ## Properties
21
37
 
22
38
  | Property | Type | Default | Description |
@@ -27,36 +43,29 @@ The leaderboard component displays a ranked list of entries with optional avatar
27
43
 
28
44
  ## Methods
29
45
 
30
- ### `setEntries(entries: LeaderboardEntry[]): void`
46
+ | Method | Arguments | Description |
47
+ |--------|-----------|-------------|
48
+ | `setEntries()` | `entries: LeaderboardEntry[]` | Set entries imperatively. Slot children take precedence. |
31
49
 
32
- Set leaderboard entries imperatively. Each entry is an object with these fields:
50
+ ### LeaderboardEntry Interface
33
51
 
34
52
  ```typescript
35
53
  interface LeaderboardEntry {
36
- rank: number; // Position number
37
- name: string; // Display name
38
- score: number | string; // Score value
39
- avatar?: string; // Avatar image URL
40
- change?: number; // Rank change (positive = up, negative = down)
41
- highlighted?: boolean; // Highlight this entry
54
+ rank: number;
55
+ name: string;
56
+ score: number | string;
57
+ avatar?: string;
58
+ change?: number;
59
+ highlighted?: boolean;
42
60
  }
43
61
  ```
44
62
 
45
63
  ## Events
46
64
 
47
- ### `entry-click`
65
+ | Event | Detail | Description |
66
+ |-------|--------|-------------|
67
+ | `entry-click` | `{ entry: LeaderboardEntry, index: number }` | Fired when a leaderboard entry is clicked |
48
68
 
49
- Fired when a leaderboard entry is clicked.
50
-
51
- **Event Detail:**
52
- ```typescript
53
- {
54
- entry: LeaderboardEntry; // The clicked entry data
55
- index: number; // Index of the entry
56
- }
57
- ```
58
-
59
- **Example:**
60
69
  ```typescript
61
70
  leaderboard.addEventListener('entry-click', (e) => {
62
71
  console.log('Clicked:', e.detail.entry.name);
@@ -83,7 +92,7 @@ leaderboard.addEventListener('entry-click', (e) => {
83
92
  | `--leaderboard-bg-element` | Element background | `var(--snice-color-background-element)` |
84
93
  | `--leaderboard-radius` | Border radius | `var(--snice-border-radius-lg)` |
85
94
 
86
- ### CSS Parts
95
+ ## CSS Parts
87
96
 
88
97
  | Part | Description |
89
98
  |------|-------------|
@@ -94,6 +103,10 @@ leaderboard.addEventListener('entry-click', (e) => {
94
103
 
95
104
  ## Basic Usage
96
105
 
106
+ ```typescript
107
+ import 'snice/components/leaderboard/snice-leaderboard';
108
+ ```
109
+
97
110
  ```html
98
111
  <snice-leaderboard title="Top Players">
99
112
  <snice-leaderboard-entry rank="1" name="Alice" score="2500"></snice-leaderboard-entry>
@@ -101,53 +114,23 @@ leaderboard.addEventListener('entry-click', (e) => {
101
114
  </snice-leaderboard>
102
115
  ```
103
116
 
104
- ```typescript
105
- import 'snice/components/leaderboard/snice-leaderboard';
106
- ```
117
+ ## Examples
107
118
 
108
- ## Declarative API (Child Elements)
119
+ ### Declarative API (Child Elements)
109
120
 
110
- Use `<snice-leaderboard-entry>` elements as children of `<snice-leaderboard>`. Each entry is a data container that the parent reads and renders.
121
+ Use `<snice-leaderboard-entry>` elements as children. The parent reads attributes and renders the full UI.
111
122
 
112
123
  ```html
113
124
  <snice-leaderboard variant="podium" title="Season Rankings">
114
- <snice-leaderboard-entry
115
- rank="1"
116
- name="Alice"
117
- score="2,500"
118
- avatar="alice.jpg"
119
- change="3"
120
- highlighted>
121
- </snice-leaderboard-entry>
122
- <snice-leaderboard-entry
123
- rank="2"
124
- name="Bob"
125
- score="2,100"
126
- change="-1">
127
- </snice-leaderboard-entry>
128
- <snice-leaderboard-entry
129
- rank="3"
130
- name="Charlie"
131
- score="1,800"
132
- change="2">
133
- </snice-leaderboard-entry>
125
+ <snice-leaderboard-entry rank="1" name="Alice" score="2,500" avatar="alice.jpg" change="3" highlighted></snice-leaderboard-entry>
126
+ <snice-leaderboard-entry rank="2" name="Bob" score="2,100" change="-1"></snice-leaderboard-entry>
127
+ <snice-leaderboard-entry rank="3" name="Charlie" score="1,800" change="2"></snice-leaderboard-entry>
134
128
  </snice-leaderboard>
135
129
  ```
136
130
 
137
- ### Entry Attributes
131
+ ### Imperative API (setEntries)
138
132
 
139
- | Attribute | Type | Default | Description |
140
- |-----------|------|---------|-------------|
141
- | `rank` | `number` | `0` | Position/rank number |
142
- | `name` | `string` | `''` | Display name |
143
- | `score` | `string` | `''` | Score to display |
144
- | `avatar` | `string` | `''` | URL to avatar image (optional) |
145
- | `change` | `number` | `0` | Rank change indicator (positive = up, negative = down) |
146
- | `highlighted` | `boolean` | `false` | Highlight this entry |
147
-
148
- ## Imperative API (setEntries)
149
-
150
- For dynamic data (e.g., fetched from an API), use the `setEntries()` method.
133
+ For dynamic data, use the `setEntries()` method. Slot children take precedence when both are used.
151
134
 
152
135
  ```typescript
153
136
  leaderboard.setEntries([
@@ -158,30 +141,23 @@ leaderboard.setEntries([
158
141
  ]);
159
142
  ```
160
143
 
161
- ### Dual API Precedence
162
-
163
- When **both** child elements and `setEntries()` are used:
164
- - Child elements (`<snice-leaderboard-entry>`) take precedence
165
- - `setEntries()` calls are ignored while child elements are present
166
- - When all children are removed, `setEntries()` becomes active again
167
-
168
- ## Variants
144
+ ### Variants
169
145
 
170
- ### Default
146
+ #### Default
171
147
  A flat list of ranked entries.
172
148
 
173
149
  ```html
174
150
  <snice-leaderboard>...</snice-leaderboard>
175
151
  ```
176
152
 
177
- ### Podium
153
+ #### Podium
178
154
  The top 3 entries are displayed in a podium layout (2nd, 1st, 3rd). Remaining entries appear as a regular list below.
179
155
 
180
156
  ```html
181
157
  <snice-leaderboard variant="podium">...</snice-leaderboard>
182
158
  ```
183
159
 
184
- ### Compact
160
+ #### Compact
185
161
  Tighter spacing with smaller avatars, suitable for sidebars or smaller containers.
186
162
 
187
163
  ```html
@@ -1,22 +1,17 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/link-preview.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/link-preview.md -->
2
2
 
3
3
  # Link Preview
4
4
  `<snice-link-preview>`
5
5
 
6
- Displays a rich preview card for a URL with image, title, description, and site info.
6
+ Displays a rich preview card for a URL with image, title, description, and site info. Clicking the card opens the URL in a new tab.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/link-preview/snice-link-preview';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-link-preview.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Events](#events)
11
+ - [CSS Parts](#css-parts)
12
+ - [Basic Usage](#basic-usage)
13
+ - [Examples](#examples)
14
+ - [Accessibility](#accessibility)
20
15
 
21
16
  ## Properties
22
17
 
@@ -26,8 +21,8 @@ import 'snice/components/link-preview/snice-link-preview';
26
21
  | `title` | `string` | `''` | Preview title (clamped to 2 lines) |
27
22
  | `description` | `string` | `''` | Preview description (clamped to 3 lines) |
28
23
  | `image` | `string` | `''` | Preview image URL |
29
- | `siteName` (attr: `site-name`) | `string` | `''` | Site name in footer |
30
- | `favicon` | `string` | `''` | Favicon URL in footer |
24
+ | `siteName` (attr: `site-name`) | `string` | `''` | Site name shown in footer |
25
+ | `favicon` | `string` | `''` | Favicon URL shown in footer |
31
26
  | `variant` | `'vertical' \| 'horizontal'` | `'vertical'` | Card layout direction |
32
27
  | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Card size |
33
28
 
@@ -155,3 +150,12 @@ When no image is provided, a placeholder link icon is shown.
155
150
  });
156
151
  </script>
157
152
  ```
153
+
154
+ ## Accessibility
155
+
156
+ - The card has `role="article"` and `tabindex="0"` for keyboard focus
157
+ - Keyboard activation via Enter or Space keys
158
+ - Images use `loading="lazy"` and empty `alt` attributes (decorative)
159
+ - Title is clamped to 2 lines, description to 3 lines with CSS overflow
160
+ - Focus ring is visible via `:focus-visible` styling
161
+ - Click opens URL in new tab with `noopener,noreferrer`
@@ -1,22 +1,18 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/link.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/link.md -->
2
2
 
3
3
  # Link
4
4
  `<snice-link>`
5
5
 
6
6
  A customizable hyperlink component with variants, external link handling, and hash routing support.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/link/snice-link';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-link.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Events](#events)
11
+ - [Slots](#slots)
12
+ - [CSS Parts](#css-parts)
13
+ - [Basic Usage](#basic-usage)
14
+ - [Examples](#examples)
15
+ - [Accessibility](#accessibility)
20
16
 
21
17
  ## Properties
22
18
 
@@ -26,9 +22,9 @@ import 'snice/components/link/snice-link';
26
22
  | `target` | `'_self' \| '_blank' \| '_parent' \| '_top'` | `'_self'` | Link target |
27
23
  | `variant` | `'default' \| 'primary' \| 'secondary' \| 'muted'` | `'default'` | Visual style |
28
24
  | `disabled` | `boolean` | `false` | Disables the link |
29
- | `external` | `boolean` | `false` | Opens in new tab with `noopener noreferrer` |
25
+ | `external` | `boolean` | `false` | Opens in new tab with `noopener noreferrer` and shows arrow icon |
30
26
  | `underline` | `boolean` | `false` | Shows text underline |
31
- | `hash` | `boolean` | `false` | Auto-prepends `#` to href |
27
+ | `hash` | `boolean` | `false` | Auto-prepends `#` to href for SPA routing |
32
28
 
33
29
  ## Events
34
30
 
@@ -45,10 +41,10 @@ import 'snice/components/link/snice-link';
45
41
 
46
42
  ## CSS Parts
47
43
 
48
- | Part | Description |
49
- |------|-------------|
50
- | `link` | The anchor element |
51
- | `external-icon` | The external link arrow icon |
44
+ | Part | Element | Description |
45
+ |------|---------|-------------|
46
+ | `link` | `<a>` | The anchor element |
47
+ | `external-icon` | `<span>` | The external link arrow icon (visible when `external` is set) |
52
48
 
53
49
  ## Basic Usage
54
50
 
@@ -143,3 +139,10 @@ Links display inline and work naturally within text.
143
139
  <snice-link href="https://github.com" external variant="muted">GitHub</snice-link>
144
140
  </footer>
145
141
  ```
142
+
143
+ ## Accessibility
144
+
145
+ - Renders a standard `<a>` element inside shadow DOM
146
+ - External links automatically get `rel="noopener noreferrer"` and `target="_blank"`
147
+ - Disabled links prevent click events and use `pointer-events: none` with a `not-allowed` cursor
148
+ - The `navigate` event is cancelable, allowing routers to prevent default browser navigation