snice 4.9.0 → 4.11.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 (763) hide show
  1. package/adapters/react/app-tiles.d.ts +28 -0
  2. package/adapters/react/app-tiles.d.ts.map +1 -0
  3. package/adapters/react/app-tiles.js +24 -0
  4. package/adapters/react/app-tiles.js.map +1 -0
  5. package/adapters/react/app-tiles.tsx +36 -0
  6. package/adapters/react/book.d.ts +28 -0
  7. package/adapters/react/book.d.ts.map +1 -0
  8. package/adapters/react/book.js +24 -0
  9. package/adapters/react/book.js.map +1 -0
  10. package/adapters/react/book.tsx +36 -0
  11. package/adapters/react/carousel.d.ts +1 -0
  12. package/adapters/react/carousel.d.ts.map +1 -1
  13. package/adapters/react/carousel.js +1 -1
  14. package/adapters/react/carousel.js.map +1 -1
  15. package/adapters/react/carousel.tsx +2 -1
  16. package/adapters/react/comments.d.ts +29 -0
  17. package/adapters/react/comments.d.ts.map +1 -0
  18. package/adapters/react/comments.js +24 -0
  19. package/adapters/react/comments.js.map +1 -0
  20. package/adapters/react/comments.tsx +37 -0
  21. package/adapters/react/components.d.ts +52 -0
  22. package/adapters/react/components.d.ts.map +1 -1
  23. package/adapters/react/components.js +26 -0
  24. package/adapters/react/components.js.map +1 -1
  25. package/adapters/react/components.ts +52 -0
  26. package/adapters/react/countdown.d.ts +31 -0
  27. package/adapters/react/countdown.d.ts.map +1 -0
  28. package/adapters/react/countdown.js +24 -0
  29. package/adapters/react/countdown.js.map +1 -0
  30. package/adapters/react/countdown.tsx +39 -0
  31. package/adapters/react/cropper.d.ts +29 -0
  32. package/adapters/react/cropper.d.ts.map +1 -0
  33. package/adapters/react/cropper.js +24 -0
  34. package/adapters/react/cropper.js.map +1 -0
  35. package/adapters/react/cropper.tsx +37 -0
  36. package/adapters/react/diff.d.ts +31 -0
  37. package/adapters/react/diff.d.ts.map +1 -0
  38. package/adapters/react/diff.js +24 -0
  39. package/adapters/react/diff.js.map +1 -0
  40. package/adapters/react/diff.tsx +39 -0
  41. package/adapters/react/flip-card.d.ts +28 -0
  42. package/adapters/react/flip-card.d.ts.map +1 -0
  43. package/adapters/react/flip-card.js +24 -0
  44. package/adapters/react/flip-card.js.map +1 -0
  45. package/adapters/react/flip-card.tsx +36 -0
  46. package/adapters/react/flow.d.ts +32 -0
  47. package/adapters/react/flow.d.ts.map +1 -0
  48. package/adapters/react/flow.js +24 -0
  49. package/adapters/react/flow.js.map +1 -0
  50. package/adapters/react/flow.tsx +40 -0
  51. package/adapters/react/gantt.d.ts +27 -0
  52. package/adapters/react/gantt.d.ts.map +1 -0
  53. package/adapters/react/gantt.js +24 -0
  54. package/adapters/react/gantt.js.map +1 -0
  55. package/adapters/react/gantt.tsx +35 -0
  56. package/adapters/react/map.d.ts +30 -0
  57. package/adapters/react/map.d.ts.map +1 -0
  58. package/adapters/react/map.js +24 -0
  59. package/adapters/react/map.js.map +1 -0
  60. package/adapters/react/map.tsx +38 -0
  61. package/adapters/react/markdown.d.ts +26 -0
  62. package/adapters/react/markdown.d.ts.map +1 -0
  63. package/adapters/react/markdown.js +24 -0
  64. package/adapters/react/markdown.js.map +1 -0
  65. package/adapters/react/markdown.tsx +34 -0
  66. package/adapters/react/notification-center.d.ts +26 -0
  67. package/adapters/react/notification-center.d.ts.map +1 -0
  68. package/adapters/react/notification-center.js +24 -0
  69. package/adapters/react/notification-center.js.map +1 -0
  70. package/adapters/react/notification-center.tsx +34 -0
  71. package/adapters/react/org-chart.d.ts +28 -0
  72. package/adapters/react/org-chart.d.ts.map +1 -0
  73. package/adapters/react/org-chart.js +24 -0
  74. package/adapters/react/org-chart.js.map +1 -0
  75. package/adapters/react/org-chart.tsx +36 -0
  76. package/adapters/react/pdf-viewer.d.ts +28 -0
  77. package/adapters/react/pdf-viewer.d.ts.map +1 -0
  78. package/adapters/react/pdf-viewer.js +24 -0
  79. package/adapters/react/pdf-viewer.js.map +1 -0
  80. package/adapters/react/pdf-viewer.tsx +36 -0
  81. package/adapters/react/podcast-player.d.ts +40 -0
  82. package/adapters/react/podcast-player.d.ts.map +1 -0
  83. package/adapters/react/podcast-player.js +24 -0
  84. package/adapters/react/podcast-player.js.map +1 -0
  85. package/adapters/react/podcast-player.tsx +48 -0
  86. package/adapters/react/pricing-table.d.ts +27 -0
  87. package/adapters/react/pricing-table.d.ts.map +1 -0
  88. package/adapters/react/pricing-table.js +24 -0
  89. package/adapters/react/pricing-table.js.map +1 -0
  90. package/adapters/react/pricing-table.tsx +35 -0
  91. package/adapters/react/rating.d.ts +30 -0
  92. package/adapters/react/rating.d.ts.map +1 -0
  93. package/adapters/react/rating.js +24 -0
  94. package/adapters/react/rating.js.map +1 -0
  95. package/adapters/react/rating.tsx +38 -0
  96. package/adapters/react/recipe.d.ts +43 -0
  97. package/adapters/react/recipe.d.ts.map +1 -0
  98. package/adapters/react/recipe.js +24 -0
  99. package/adapters/react/recipe.js.map +1 -0
  100. package/adapters/react/recipe.tsx +51 -0
  101. package/adapters/react/sortable.d.ts +28 -0
  102. package/adapters/react/sortable.d.ts.map +1 -0
  103. package/adapters/react/sortable.js +24 -0
  104. package/adapters/react/sortable.js.map +1 -0
  105. package/adapters/react/sortable.tsx +36 -0
  106. package/adapters/react/spotlight.d.ts +27 -0
  107. package/adapters/react/spotlight.d.ts.map +1 -0
  108. package/adapters/react/spotlight.js +24 -0
  109. package/adapters/react/spotlight.js.map +1 -0
  110. package/adapters/react/spotlight.tsx +35 -0
  111. package/adapters/react/spreadsheet.d.ts +27 -0
  112. package/adapters/react/spreadsheet.d.ts.map +1 -0
  113. package/adapters/react/spreadsheet.js +24 -0
  114. package/adapters/react/spreadsheet.js.map +1 -0
  115. package/adapters/react/spreadsheet.tsx +35 -0
  116. package/adapters/react/tag-input.d.ts +33 -0
  117. package/adapters/react/tag-input.d.ts.map +1 -0
  118. package/adapters/react/tag-input.js +24 -0
  119. package/adapters/react/tag-input.js.map +1 -0
  120. package/adapters/react/tag-input.tsx +41 -0
  121. package/adapters/react/testimonial.d.ts +31 -0
  122. package/adapters/react/testimonial.d.ts.map +1 -0
  123. package/adapters/react/testimonial.js +24 -0
  124. package/adapters/react/testimonial.js.map +1 -0
  125. package/adapters/react/testimonial.tsx +39 -0
  126. package/adapters/react/video-player.d.ts +34 -0
  127. package/adapters/react/video-player.d.ts.map +1 -0
  128. package/adapters/react/video-player.js +24 -0
  129. package/adapters/react/video-player.js.map +1 -0
  130. package/adapters/react/video-player.tsx +42 -0
  131. package/adapters/react/waterfall.d.ts +29 -0
  132. package/adapters/react/waterfall.d.ts.map +1 -0
  133. package/adapters/react/waterfall.js +24 -0
  134. package/adapters/react/waterfall.js.map +1 -0
  135. package/adapters/react/waterfall.tsx +37 -0
  136. package/adapters/react/weather.d.ts +27 -0
  137. package/adapters/react/weather.d.ts.map +1 -0
  138. package/adapters/react/weather.js +24 -0
  139. package/adapters/react/weather.js.map +1 -0
  140. package/adapters/react/weather.tsx +35 -0
  141. package/bin/templates/CLAUDE.md +169 -113
  142. package/bin/templates/pwa/README.md +72 -94
  143. package/bin/templates/pwa/src/components/app-header.ts +218 -0
  144. package/bin/templates/pwa/src/components/notification-badge.ts +68 -0
  145. package/bin/templates/pwa/src/components/search-bar.ts +99 -0
  146. package/bin/templates/pwa/src/controllers/notification-controller.ts +42 -0
  147. package/bin/templates/pwa/src/guards/auth.ts +1 -1
  148. package/bin/templates/pwa/src/main.ts +19 -0
  149. package/bin/templates/pwa/src/pages/dashboard.ts +124 -23
  150. package/bin/templates/pwa/src/pages/data.ts +329 -0
  151. package/bin/templates/pwa/src/pages/notifications.ts +112 -30
  152. package/bin/templates/pwa/src/pages/profile.ts +86 -52
  153. package/bin/templates/pwa/src/pages/settings.ts +291 -0
  154. package/bin/templates/pwa/src/styles/global.css +12 -3
  155. package/dist/cdn/accordion/snice-accordion.js +1 -1
  156. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  157. package/dist/cdn/alert/snice-alert.js +1 -1
  158. package/dist/cdn/alert/snice-alert.min.js +1 -1
  159. package/dist/cdn/app-tiles/README.md +27 -0
  160. package/dist/cdn/app-tiles/snice-app-tiles.js +333 -0
  161. package/dist/cdn/app-tiles/snice-app-tiles.js.map +1 -0
  162. package/dist/cdn/app-tiles/snice-app-tiles.min.js +11 -0
  163. package/dist/cdn/app-tiles/snice-app-tiles.min.js.map +1 -0
  164. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  165. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  166. package/dist/cdn/avatar/snice-avatar.js +1 -1
  167. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  168. package/dist/cdn/badge/snice-badge.js +1 -1
  169. package/dist/cdn/badge/snice-badge.min.js +1 -1
  170. package/dist/cdn/banner/snice-banner.js +1 -1
  171. package/dist/cdn/banner/snice-banner.min.js +1 -1
  172. package/dist/cdn/book/README.md +27 -0
  173. package/dist/cdn/book/snice-book.js +353 -0
  174. package/dist/cdn/book/snice-book.js.map +1 -0
  175. package/dist/cdn/book/snice-book.min.js +13 -0
  176. package/dist/cdn/book/snice-book.min.js.map +1 -0
  177. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  178. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  179. package/dist/cdn/button/snice-button.js +1 -1
  180. package/dist/cdn/button/snice-button.min.js +1 -1
  181. package/dist/cdn/calendar/snice-calendar.js +1 -1
  182. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  183. package/dist/cdn/camera/README.md +1 -1
  184. package/dist/cdn/camera/snice-camera.js +1 -1
  185. package/dist/cdn/camera/snice-camera.min.js +1 -1
  186. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  187. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  188. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  189. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  190. package/dist/cdn/card/snice-card.js +1 -1
  191. package/dist/cdn/card/snice-card.min.js +1 -1
  192. package/dist/cdn/carousel/README.md +2 -2
  193. package/dist/cdn/carousel/snice-carousel.js +9 -3
  194. package/dist/cdn/carousel/snice-carousel.js.map +1 -1
  195. package/dist/cdn/carousel/snice-carousel.min.js +3 -3
  196. package/dist/cdn/carousel/snice-carousel.min.js.map +1 -1
  197. package/dist/cdn/chart/snice-chart.js +1 -1
  198. package/dist/cdn/chart/snice-chart.min.js +1 -1
  199. package/dist/cdn/chat/snice-chat.js +1 -1
  200. package/dist/cdn/chat/snice-chat.min.js +1 -1
  201. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  202. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  203. package/dist/cdn/chip/snice-chip.js +1 -1
  204. package/dist/cdn/chip/snice-chip.min.js +1 -1
  205. package/dist/cdn/code-block/snice-code-block.js +1 -1
  206. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  207. package/dist/cdn/color-display/snice-color-display.js +1 -1
  208. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  209. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  210. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  211. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  212. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  213. package/dist/cdn/comments/README.md +27 -0
  214. package/dist/cdn/comments/snice-comments.js +544 -0
  215. package/dist/cdn/comments/snice-comments.js.map +1 -0
  216. package/dist/cdn/comments/snice-comments.min.js +100 -0
  217. package/dist/cdn/comments/snice-comments.min.js.map +1 -0
  218. package/dist/cdn/countdown/README.md +27 -0
  219. package/dist/cdn/countdown/snice-countdown.js +235 -0
  220. package/dist/cdn/countdown/snice-countdown.js.map +1 -0
  221. package/dist/cdn/countdown/snice-countdown.min.js +14 -0
  222. package/dist/cdn/countdown/snice-countdown.min.js.map +1 -0
  223. package/dist/cdn/cropper/README.md +27 -0
  224. package/dist/cdn/cropper/snice-cropper.js +352 -0
  225. package/dist/cdn/cropper/snice-cropper.js.map +1 -0
  226. package/dist/cdn/cropper/snice-cropper.min.js +25 -0
  227. package/dist/cdn/cropper/snice-cropper.min.js.map +1 -0
  228. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  229. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  230. package/dist/cdn/diff/README.md +27 -0
  231. package/dist/cdn/diff/snice-diff.js +441 -0
  232. package/dist/cdn/diff/snice-diff.js.map +1 -0
  233. package/dist/cdn/diff/snice-diff.min.js +54 -0
  234. package/dist/cdn/diff/snice-diff.min.js.map +1 -0
  235. package/dist/cdn/divider/snice-divider.js +1 -1
  236. package/dist/cdn/divider/snice-divider.min.js +1 -1
  237. package/dist/cdn/doc/snice-doc.js +1 -1
  238. package/dist/cdn/doc/snice-doc.min.js +1 -1
  239. package/dist/cdn/draw/snice-draw.js +1 -1
  240. package/dist/cdn/draw/snice-draw.min.js +1 -1
  241. package/dist/cdn/drawer/snice-drawer.js +1 -1
  242. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  243. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  244. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  245. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  246. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  247. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  248. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  249. package/dist/cdn/flip-card/README.md +27 -0
  250. package/dist/cdn/flip-card/snice-flip-card.js +183 -0
  251. package/dist/cdn/flip-card/snice-flip-card.js.map +1 -0
  252. package/dist/cdn/flip-card/snice-flip-card.min.js +22 -0
  253. package/dist/cdn/flip-card/snice-flip-card.min.js.map +1 -0
  254. package/dist/cdn/flow/README.md +27 -0
  255. package/dist/cdn/flow/snice-flow.js +822 -0
  256. package/dist/cdn/flow/snice-flow.js.map +1 -0
  257. package/dist/cdn/flow/snice-flow.min.js +17 -0
  258. package/dist/cdn/flow/snice-flow.min.js.map +1 -0
  259. package/dist/cdn/funnel/snice-funnel.js +1 -1
  260. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  261. package/dist/cdn/gantt/README.md +27 -0
  262. package/dist/cdn/gantt/snice-gantt.js +436 -0
  263. package/dist/cdn/gantt/snice-gantt.js.map +1 -0
  264. package/dist/cdn/gantt/snice-gantt.min.js +60 -0
  265. package/dist/cdn/gantt/snice-gantt.min.js.map +1 -0
  266. package/dist/cdn/gauge/snice-gauge.js +1 -1
  267. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  268. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  269. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  270. package/dist/cdn/image/snice-image.js +1 -1
  271. package/dist/cdn/image/snice-image.min.js +1 -1
  272. package/dist/cdn/input/snice-input.js +1 -1
  273. package/dist/cdn/input/snice-input.min.js +1 -1
  274. package/dist/cdn/kanban/snice-kanban.js +1 -1
  275. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  276. package/dist/cdn/kpi/snice-kpi.js +1 -1
  277. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  278. package/dist/cdn/layout/snice-layout.js +1 -1
  279. package/dist/cdn/layout/snice-layout.min.js +1 -1
  280. package/dist/cdn/link/snice-link.js +1 -1
  281. package/dist/cdn/link/snice-link.min.js +1 -1
  282. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  283. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  284. package/dist/cdn/list/snice-list.js +1 -1
  285. package/dist/cdn/list/snice-list.min.js +1 -1
  286. package/dist/cdn/location/snice-location.js +1 -1
  287. package/dist/cdn/location/snice-location.min.js +1 -1
  288. package/dist/cdn/login/snice-login.js +1 -1
  289. package/dist/cdn/login/snice-login.min.js +1 -1
  290. package/dist/cdn/map/README.md +27 -0
  291. package/dist/cdn/map/snice-map.js +415 -0
  292. package/dist/cdn/map/snice-map.js.map +1 -0
  293. package/dist/cdn/map/snice-map.min.js +52 -0
  294. package/dist/cdn/map/snice-map.min.js.map +1 -0
  295. package/dist/cdn/markdown/README.md +27 -0
  296. package/dist/cdn/markdown/snice-markdown.js +317 -0
  297. package/dist/cdn/markdown/snice-markdown.js.map +1 -0
  298. package/dist/cdn/markdown/snice-markdown.min.js +11 -0
  299. package/dist/cdn/markdown/snice-markdown.min.js.map +1 -0
  300. package/dist/cdn/masonry/snice-masonry.js +1 -1
  301. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  302. package/dist/cdn/menu/snice-menu.js +1 -1
  303. package/dist/cdn/menu/snice-menu.min.js +1 -1
  304. package/dist/cdn/modal/snice-modal.js +1 -1
  305. package/dist/cdn/modal/snice-modal.min.js +1 -1
  306. package/dist/cdn/music-player/snice-music-player.js +1 -1
  307. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  308. package/dist/cdn/nav/snice-nav.js +1 -1
  309. package/dist/cdn/nav/snice-nav.min.js +1 -1
  310. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  311. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  312. package/dist/cdn/notification-center/README.md +27 -0
  313. package/dist/cdn/notification-center/snice-notification-center.js +204 -0
  314. package/dist/cdn/notification-center/snice-notification-center.js.map +1 -0
  315. package/dist/cdn/notification-center/snice-notification-center.min.js +33 -0
  316. package/dist/cdn/notification-center/snice-notification-center.min.js.map +1 -0
  317. package/dist/cdn/org-chart/README.md +27 -0
  318. package/dist/cdn/org-chart/snice-org-chart.js +294 -0
  319. package/dist/cdn/org-chart/snice-org-chart.js.map +1 -0
  320. package/dist/cdn/org-chart/snice-org-chart.min.js +32 -0
  321. package/dist/cdn/org-chart/snice-org-chart.min.js.map +1 -0
  322. package/dist/cdn/pagination/snice-pagination.js +1 -1
  323. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  324. package/dist/cdn/paint/snice-paint.js +1 -1
  325. package/dist/cdn/paint/snice-paint.min.js +1 -1
  326. package/dist/cdn/pdf-viewer/README.md +27 -0
  327. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +588 -0
  328. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js.map +1 -0
  329. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +88 -0
  330. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js.map +1 -0
  331. package/dist/cdn/podcast-player/README.md +27 -0
  332. package/dist/cdn/podcast-player/snice-podcast-player.js +835 -0
  333. package/dist/cdn/podcast-player/snice-podcast-player.js.map +1 -0
  334. package/dist/cdn/podcast-player/snice-podcast-player.min.js +209 -0
  335. package/dist/cdn/podcast-player/snice-podcast-player.min.js.map +1 -0
  336. package/dist/cdn/pricing-table/README.md +27 -0
  337. package/dist/cdn/pricing-table/snice-pricing-table.js +491 -0
  338. package/dist/cdn/pricing-table/snice-pricing-table.js.map +1 -0
  339. package/dist/cdn/pricing-table/snice-pricing-table.min.js +141 -0
  340. package/dist/cdn/pricing-table/snice-pricing-table.min.js.map +1 -0
  341. package/dist/cdn/progress/snice-progress.js +1 -1
  342. package/dist/cdn/progress/snice-progress.min.js +1 -1
  343. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  344. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  345. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  346. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  347. package/dist/cdn/radio/snice-radio.js +1 -1
  348. package/dist/cdn/radio/snice-radio.min.js +1 -1
  349. package/dist/cdn/rating/README.md +27 -0
  350. package/dist/cdn/rating/snice-rating.js +210 -0
  351. package/dist/cdn/rating/snice-rating.js.map +1 -0
  352. package/dist/cdn/rating/snice-rating.min.js +25 -0
  353. package/dist/cdn/rating/snice-rating.min.js.map +1 -0
  354. package/dist/cdn/recipe/README.md +27 -0
  355. package/dist/cdn/recipe/snice-recipe.js +619 -0
  356. package/dist/cdn/recipe/snice-recipe.js.map +1 -0
  357. package/dist/cdn/recipe/snice-recipe.min.js +185 -0
  358. package/dist/cdn/recipe/snice-recipe.min.js.map +1 -0
  359. package/dist/cdn/runtime/README.md +1 -1
  360. package/dist/cdn/runtime/snice-runtime.esm.js +10 -3
  361. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  362. package/dist/cdn/runtime/snice-runtime.esm.min.js +4 -4
  363. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  364. package/dist/cdn/runtime/snice-runtime.js +10 -3
  365. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  366. package/dist/cdn/runtime/snice-runtime.min.js +4 -4
  367. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  368. package/dist/cdn/sankey/snice-sankey.js +1 -1
  369. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  370. package/dist/cdn/select/snice-select.js +1 -1
  371. package/dist/cdn/select/snice-select.min.js +1 -1
  372. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  373. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  374. package/dist/cdn/slider/snice-slider.js +1 -1
  375. package/dist/cdn/slider/snice-slider.min.js +1 -1
  376. package/dist/cdn/sortable/README.md +27 -0
  377. package/dist/cdn/sortable/snice-sortable.js +254 -0
  378. package/dist/cdn/sortable/snice-sortable.js.map +1 -0
  379. package/dist/cdn/sortable/snice-sortable.min.js +12 -0
  380. package/dist/cdn/sortable/snice-sortable.min.js.map +1 -0
  381. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  382. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  383. package/dist/cdn/spinner/snice-spinner.js +1 -1
  384. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  385. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  386. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  387. package/dist/cdn/spotlight/README.md +27 -0
  388. package/dist/cdn/spotlight/snice-spotlight.js +397 -0
  389. package/dist/cdn/spotlight/snice-spotlight.js.map +1 -0
  390. package/dist/cdn/spotlight/snice-spotlight.min.js +8 -0
  391. package/dist/cdn/spotlight/snice-spotlight.min.js.map +1 -0
  392. package/dist/cdn/spreadsheet/README.md +27 -0
  393. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1171 -0
  394. package/dist/cdn/spreadsheet/snice-spreadsheet.js.map +1 -0
  395. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +30 -0
  396. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js.map +1 -0
  397. package/dist/cdn/stepper/snice-stepper.js +1 -1
  398. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  399. package/dist/cdn/switch/snice-switch.js +1 -1
  400. package/dist/cdn/switch/snice-switch.min.js +1 -1
  401. package/dist/cdn/table/snice-table.js +1 -1
  402. package/dist/cdn/table/snice-table.min.js +1 -1
  403. package/dist/cdn/tabs/snice-tabs.js +1 -1
  404. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  405. package/dist/cdn/tag-input/README.md +27 -0
  406. package/dist/cdn/tag-input/snice-tag-input.js +387 -0
  407. package/dist/cdn/tag-input/snice-tag-input.js.map +1 -0
  408. package/dist/cdn/tag-input/snice-tag-input.min.js +65 -0
  409. package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -0
  410. package/dist/cdn/terminal/snice-terminal.js +1 -1
  411. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  412. package/dist/cdn/testimonial/README.md +27 -0
  413. package/dist/cdn/testimonial/snice-testimonial.js +187 -0
  414. package/dist/cdn/testimonial/snice-testimonial.js.map +1 -0
  415. package/dist/cdn/testimonial/snice-testimonial.min.js +21 -0
  416. package/dist/cdn/testimonial/snice-testimonial.min.js.map +1 -0
  417. package/dist/cdn/textarea/snice-textarea.js +1 -1
  418. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  419. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  420. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  421. package/dist/cdn/timeline/snice-timeline.js +1 -1
  422. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  423. package/dist/cdn/timer/snice-timer.js +1 -1
  424. package/dist/cdn/timer/snice-timer.min.js +1 -1
  425. package/dist/cdn/toast/snice-toast.js +1 -1
  426. package/dist/cdn/toast/snice-toast.min.js +1 -1
  427. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  428. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  429. package/dist/cdn/tree/snice-tree.js +1 -1
  430. package/dist/cdn/tree/snice-tree.min.js +1 -1
  431. package/dist/cdn/treemap/snice-treemap.js +1 -1
  432. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  433. package/dist/cdn/video-player/README.md +27 -0
  434. package/dist/cdn/video-player/snice-video-player.js +721 -0
  435. package/dist/cdn/video-player/snice-video-player.js.map +1 -0
  436. package/dist/cdn/video-player/snice-video-player.min.js +153 -0
  437. package/dist/cdn/video-player/snice-video-player.min.js.map +1 -0
  438. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  439. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  440. package/dist/cdn/waterfall/README.md +27 -0
  441. package/dist/cdn/waterfall/snice-waterfall.js +292 -0
  442. package/dist/cdn/waterfall/snice-waterfall.js.map +1 -0
  443. package/dist/cdn/waterfall/snice-waterfall.min.js +12 -0
  444. package/dist/cdn/waterfall/snice-waterfall.min.js.map +1 -0
  445. package/dist/cdn/weather/README.md +27 -0
  446. package/dist/cdn/weather/snice-weather.js +194 -0
  447. package/dist/cdn/weather/snice-weather.js.map +1 -0
  448. package/dist/cdn/weather/snice-weather.min.js +42 -0
  449. package/dist/cdn/weather/snice-weather.min.js.map +1 -0
  450. package/dist/components/app-tiles/snice-app-tiles.d.ts +36 -0
  451. package/dist/components/app-tiles/snice-app-tiles.js +265 -0
  452. package/dist/components/app-tiles/snice-app-tiles.js.map +1 -0
  453. package/dist/components/app-tiles/snice-app-tiles.types.d.ts +22 -0
  454. package/dist/components/book/snice-book.d.ts +46 -0
  455. package/dist/components/book/snice-book.js +285 -0
  456. package/dist/components/book/snice-book.js.map +1 -0
  457. package/dist/components/book/snice-book.types.d.ts +21 -0
  458. package/dist/components/carousel/snice-carousel.js +8 -2
  459. package/dist/components/carousel/snice-carousel.js.map +1 -1
  460. package/dist/components/comments/snice-comments.d.ts +62 -0
  461. package/dist/components/comments/snice-comments.js +476 -0
  462. package/dist/components/comments/snice-comments.js.map +1 -0
  463. package/dist/components/comments/snice-comments.types.d.ts +64 -0
  464. package/dist/components/countdown/snice-countdown.d.ts +21 -0
  465. package/dist/components/countdown/snice-countdown.js +168 -0
  466. package/dist/components/countdown/snice-countdown.js.map +1 -0
  467. package/dist/components/countdown/snice-countdown.types.d.ts +18 -0
  468. package/dist/components/cropper/snice-cropper.d.ts +32 -0
  469. package/dist/components/cropper/snice-cropper.js +285 -0
  470. package/dist/components/cropper/snice-cropper.js.map +1 -0
  471. package/dist/components/cropper/snice-cropper.types.d.ts +26 -0
  472. package/dist/components/diff/snice-diff.d.ts +32 -0
  473. package/dist/components/diff/snice-diff.js +374 -0
  474. package/dist/components/diff/snice-diff.js.map +1 -0
  475. package/dist/components/diff/snice-diff.types.d.ts +26 -0
  476. package/dist/components/flip-card/snice-flip-card.d.ts +15 -0
  477. package/dist/components/flip-card/snice-flip-card.js +116 -0
  478. package/dist/components/flip-card/snice-flip-card.js.map +1 -0
  479. package/dist/components/flip-card/snice-flip-card.types.d.ts +16 -0
  480. package/dist/components/flow/snice-flow.d.ts +91 -0
  481. package/dist/components/flow/snice-flow.js +755 -0
  482. package/dist/components/flow/snice-flow.js.map +1 -0
  483. package/dist/components/flow/snice-flow.types.d.ts +64 -0
  484. package/dist/components/gantt/snice-gantt.d.ts +34 -0
  485. package/dist/components/gantt/snice-gantt.js +369 -0
  486. package/dist/components/gantt/snice-gantt.js.map +1 -0
  487. package/dist/components/gantt/snice-gantt.types.d.ts +37 -0
  488. package/dist/components/map/snice-map.d.ts +44 -0
  489. package/dist/components/map/snice-map.js +348 -0
  490. package/dist/components/map/snice-map.js.map +1 -0
  491. package/dist/components/map/snice-map.types.d.ts +41 -0
  492. package/dist/components/markdown/snice-markdown.d.ts +24 -0
  493. package/dist/components/markdown/snice-markdown.js +250 -0
  494. package/dist/components/markdown/snice-markdown.js.map +1 -0
  495. package/dist/components/markdown/snice-markdown.types.d.ts +16 -0
  496. package/dist/components/notification-center/snice-notification-center.d.ts +18 -0
  497. package/dist/components/notification-center/snice-notification-center.js +137 -0
  498. package/dist/components/notification-center/snice-notification-center.js.map +1 -0
  499. package/dist/components/notification-center/snice-notification-center.types.d.ts +24 -0
  500. package/dist/components/org-chart/snice-org-chart.d.ts +28 -0
  501. package/dist/components/org-chart/snice-org-chart.js +227 -0
  502. package/dist/components/org-chart/snice-org-chart.js.map +1 -0
  503. package/dist/components/org-chart/snice-org-chart.types.d.ts +28 -0
  504. package/dist/components/pdf-viewer/pdf.min.mjs +21 -0
  505. package/dist/components/pdf-viewer/pdf.worker.min.mjs +21 -0
  506. package/dist/components/pdf-viewer/snice-pdf-viewer.d.ts +60 -0
  507. package/dist/components/pdf-viewer/snice-pdf-viewer.js +521 -0
  508. package/dist/components/pdf-viewer/snice-pdf-viewer.js.map +1 -0
  509. package/dist/components/pdf-viewer/snice-pdf-viewer.types.d.ts +25 -0
  510. package/dist/components/podcast-player/snice-podcast-player.d.ts +72 -0
  511. package/dist/components/podcast-player/snice-podcast-player.js +768 -0
  512. package/dist/components/podcast-player/snice-podcast-player.js.map +1 -0
  513. package/dist/components/podcast-player/snice-podcast-player.types.d.ts +79 -0
  514. package/dist/components/pricing-table/snice-pricing-table.d.ts +51 -0
  515. package/dist/components/pricing-table/snice-pricing-table.js +422 -0
  516. package/dist/components/pricing-table/snice-pricing-table.js.map +1 -0
  517. package/dist/components/pricing-table/snice-pricing-table.types.d.ts +49 -0
  518. package/dist/components/rating/snice-rating.d.ts +15 -0
  519. package/dist/components/rating/snice-rating.js +143 -0
  520. package/dist/components/rating/snice-rating.js.map +1 -0
  521. package/dist/components/rating/snice-rating.types.d.ts +15 -0
  522. package/dist/components/recipe/snice-recipe.d.ts +53 -0
  523. package/dist/components/recipe/snice-recipe.js +552 -0
  524. package/dist/components/recipe/snice-recipe.js.map +1 -0
  525. package/dist/components/recipe/snice-recipe.types.d.ts +56 -0
  526. package/dist/components/sortable/snice-sortable.d.ts +24 -0
  527. package/dist/components/sortable/snice-sortable.js +187 -0
  528. package/dist/components/sortable/snice-sortable.js.map +1 -0
  529. package/dist/components/sortable/snice-sortable.types.d.ts +20 -0
  530. package/dist/components/spotlight/snice-spotlight.d.ts +42 -0
  531. package/dist/components/spotlight/snice-spotlight.js +330 -0
  532. package/dist/components/spotlight/snice-spotlight.js.map +1 -0
  533. package/dist/components/spotlight/snice-spotlight.types.d.ts +26 -0
  534. package/dist/components/spreadsheet/snice-spreadsheet.d.ts +102 -0
  535. package/dist/components/spreadsheet/snice-spreadsheet.js +1104 -0
  536. package/dist/components/spreadsheet/snice-spreadsheet.js.map +1 -0
  537. package/dist/components/spreadsheet/snice-spreadsheet.types.d.ts +54 -0
  538. package/dist/components/tag-input/snice-tag-input.d.ts +40 -0
  539. package/dist/components/tag-input/snice-tag-input.js +320 -0
  540. package/dist/components/tag-input/snice-tag-input.js.map +1 -0
  541. package/dist/components/tag-input/snice-tag-input.types.d.ts +29 -0
  542. package/dist/components/testimonial/snice-testimonial.d.ts +15 -0
  543. package/dist/components/testimonial/snice-testimonial.js +120 -0
  544. package/dist/components/testimonial/snice-testimonial.js.map +1 -0
  545. package/dist/components/testimonial/snice-testimonial.types.d.ts +10 -0
  546. package/dist/components/video-player/snice-video-player.d.ts +78 -0
  547. package/dist/components/video-player/snice-video-player.js +654 -0
  548. package/dist/components/video-player/snice-video-player.js.map +1 -0
  549. package/dist/components/video-player/snice-video-player.types.d.ts +47 -0
  550. package/dist/components/waterfall/snice-waterfall.d.ts +30 -0
  551. package/dist/components/waterfall/snice-waterfall.js +225 -0
  552. package/dist/components/waterfall/snice-waterfall.js.map +1 -0
  553. package/dist/components/waterfall/snice-waterfall.types.d.ts +23 -0
  554. package/dist/components/weather/snice-weather.d.ts +10 -0
  555. package/dist/components/weather/snice-weather.js +127 -0
  556. package/dist/components/weather/snice-weather.js.map +1 -0
  557. package/dist/components/weather/snice-weather.types.d.ts +22 -0
  558. package/dist/index.cjs +8 -1
  559. package/dist/index.cjs.map +1 -1
  560. package/dist/index.esm.js +8 -1
  561. package/dist/index.esm.js.map +1 -1
  562. package/dist/index.iife.js +8 -1
  563. package/dist/index.iife.js.map +1 -1
  564. package/dist/symbols.cjs +1 -1
  565. package/dist/symbols.esm.js +1 -1
  566. package/dist/transitions.cjs +1 -1
  567. package/dist/transitions.esm.js +1 -1
  568. package/docs/ai/DEVELOPMENT.md +1 -1
  569. package/docs/ai/api.md +6 -3
  570. package/docs/ai/components/accordion.md +0 -34
  571. package/docs/ai/components/app-tiles.md +77 -0
  572. package/docs/ai/components/audio-recorder.md +2 -0
  573. package/docs/ai/components/badge.md +7 -0
  574. package/docs/ai/components/book.md +78 -0
  575. package/docs/ai/components/button.md +5 -0
  576. package/docs/ai/components/chart.md +0 -24
  577. package/docs/ai/components/chat.md +7 -95
  578. package/docs/ai/components/code-block.md +3 -82
  579. package/docs/ai/components/color-display.md +3 -3
  580. package/docs/ai/components/color-picker.md +4 -4
  581. package/docs/ai/components/comments.md +75 -0
  582. package/docs/ai/components/countdown.md +54 -0
  583. package/docs/ai/components/cropper.md +57 -0
  584. package/docs/ai/components/date-picker.md +15 -9
  585. package/docs/ai/components/diff.md +66 -0
  586. package/docs/ai/components/divider.md +1 -1
  587. package/docs/ai/components/draw.md +5 -5
  588. package/docs/ai/components/drawer.md +5 -5
  589. package/docs/ai/components/empty-state.md +2 -2
  590. package/docs/ai/components/file-gallery.md +16 -87
  591. package/docs/ai/components/file-upload.md +6 -6
  592. package/docs/ai/components/flip-card.md +52 -0
  593. package/docs/ai/components/flow.md +104 -0
  594. package/docs/ai/components/funnel.md +3 -3
  595. package/docs/ai/components/gantt.md +63 -0
  596. package/docs/ai/components/gauge.md +1 -1
  597. package/docs/ai/components/heatmap.md +5 -5
  598. package/docs/ai/components/input.md +20 -18
  599. package/docs/ai/components/kanban.md +2 -2
  600. package/docs/ai/components/kpi.md +4 -53
  601. package/docs/ai/components/layout.md +10 -235
  602. package/docs/ai/components/link-preview.md +20 -29
  603. package/docs/ai/components/link.md +27 -47
  604. package/docs/ai/components/list.md +51 -31
  605. package/docs/ai/components/location.md +15 -27
  606. package/docs/ai/components/login.md +43 -94
  607. package/docs/ai/components/map.md +72 -0
  608. package/docs/ai/components/markdown.md +63 -0
  609. package/docs/ai/components/masonry.md +10 -6
  610. package/docs/ai/components/menu.md +40 -72
  611. package/docs/ai/components/modal.md +25 -42
  612. package/docs/ai/components/music-player.md +37 -89
  613. package/docs/ai/components/nav.md +25 -39
  614. package/docs/ai/components/network-graph.md +39 -43
  615. package/docs/ai/components/notification-center.md +79 -0
  616. package/docs/ai/components/org-chart.md +62 -0
  617. package/docs/ai/components/pagination.md +16 -18
  618. package/docs/ai/components/pdf-viewer.md +57 -0
  619. package/docs/ai/components/podcast-player.md +94 -0
  620. package/docs/ai/components/pricing-table.md +87 -0
  621. package/docs/ai/components/progress.md +23 -39
  622. package/docs/ai/components/qr-code.md +37 -84
  623. package/docs/ai/components/qr-reader.md +51 -61
  624. package/docs/ai/components/radio.md +27 -39
  625. package/docs/ai/components/rating.md +56 -0
  626. package/docs/ai/components/recipe.md +90 -0
  627. package/docs/ai/components/skeleton.md +0 -8
  628. package/docs/ai/components/slider.md +10 -50
  629. package/docs/ai/components/sortable.md +57 -0
  630. package/docs/ai/components/sparkline.md +26 -152
  631. package/docs/ai/components/spinner.md +0 -21
  632. package/docs/ai/components/split-pane.md +16 -38
  633. package/docs/ai/components/spotlight.md +61 -0
  634. package/docs/ai/components/spreadsheet.md +138 -0
  635. package/docs/ai/components/stepper.md +37 -183
  636. package/docs/ai/components/switch.md +28 -35
  637. package/docs/ai/components/table.md +43 -172
  638. package/docs/ai/components/tabs.md +31 -52
  639. package/docs/ai/components/tag-input.md +70 -0
  640. package/docs/ai/components/terminal.md +34 -116
  641. package/docs/ai/components/testimonial.md +56 -0
  642. package/docs/ai/components/textarea.md +11 -43
  643. package/docs/ai/components/theme.md +120 -0
  644. package/docs/ai/components/time-range-picker.md +17 -49
  645. package/docs/ai/components/timeline.md +7 -46
  646. package/docs/ai/components/timer.md +41 -37
  647. package/docs/ai/components/toast.md +19 -90
  648. package/docs/ai/components/tooltip.md +17 -104
  649. package/docs/ai/components/tree.md +38 -162
  650. package/docs/ai/components/treemap.md +23 -44
  651. package/docs/ai/components/video-player.md +91 -0
  652. package/docs/ai/components/virtual-scroller.md +23 -46
  653. package/docs/ai/components/waterfall.md +56 -0
  654. package/docs/ai/components/weather.md +78 -0
  655. package/docs/ai/decorators.md +25 -3
  656. package/docs/ai/patterns.md +18 -2
  657. package/docs/components/accordion.md +8 -6
  658. package/docs/components/alert.md +2 -0
  659. package/docs/components/app-tiles.md +162 -0
  660. package/docs/components/audio-recorder.md +6 -0
  661. package/docs/components/avatar.md +225 -0
  662. package/docs/components/badge.md +2 -0
  663. package/docs/components/banner.md +2 -0
  664. package/docs/components/book.md +184 -0
  665. package/docs/components/breadcrumbs.md +2 -0
  666. package/docs/components/button.md +15 -0
  667. package/docs/components/calendar.md +2 -0
  668. package/docs/components/camera-annotate.md +2 -0
  669. package/docs/components/camera.md +2 -0
  670. package/docs/components/candlestick.md +2 -0
  671. package/docs/components/card.md +2 -0
  672. package/docs/components/carousel.md +205 -36
  673. package/docs/components/chart.md +2 -0
  674. package/docs/components/chat.md +2 -0
  675. package/docs/components/checkbox.md +2 -0
  676. package/docs/components/chip.md +2 -0
  677. package/docs/components/code-block.md +2 -0
  678. package/docs/components/color-display.md +2 -0
  679. package/docs/components/color-picker.md +6 -4
  680. package/docs/components/command-palette.md +2 -0
  681. package/docs/components/comments.md +235 -0
  682. package/docs/components/countdown.md +121 -0
  683. package/docs/components/cropper.md +152 -0
  684. package/docs/components/date-picker.md +201 -0
  685. package/docs/components/diff.md +177 -0
  686. package/docs/components/divider.md +132 -0
  687. package/docs/components/doc.md +2 -0
  688. package/docs/components/draw.md +2 -0
  689. package/docs/components/drawer.md +2 -0
  690. package/docs/components/empty-state.md +2 -0
  691. package/docs/components/file-gallery.md +2 -0
  692. package/docs/components/file-upload.md +2 -0
  693. package/docs/components/flip-card.md +169 -0
  694. package/docs/components/flow.md +208 -0
  695. package/docs/components/funnel.md +2 -0
  696. package/docs/components/gantt.md +187 -0
  697. package/docs/components/gauge.md +2 -0
  698. package/docs/components/heatmap.md +2 -0
  699. package/docs/components/image.md +2 -0
  700. package/docs/components/input.md +242 -0
  701. package/docs/components/kanban.md +2 -0
  702. package/docs/components/kpi.md +2 -0
  703. package/docs/components/layout.md +84 -0
  704. package/docs/components/link-preview.md +66 -92
  705. package/docs/components/link.md +73 -157
  706. package/docs/components/list.md +140 -44
  707. package/docs/components/location.md +96 -283
  708. package/docs/components/login.md +131 -498
  709. package/docs/components/map.md +203 -0
  710. package/docs/components/markdown.md +220 -0
  711. package/docs/components/masonry.md +57 -102
  712. package/docs/components/menu.md +87 -494
  713. package/docs/components/modal.md +83 -436
  714. package/docs/components/music-player.md +116 -221
  715. package/docs/components/nav.md +107 -170
  716. package/docs/components/network-graph.md +83 -111
  717. package/docs/components/notification-center.md +256 -0
  718. package/docs/components/org-chart.md +275 -0
  719. package/docs/components/pagination.md +75 -218
  720. package/docs/components/paint.md +108 -73
  721. package/docs/components/pdf-viewer.md +204 -0
  722. package/docs/components/podcast-player.md +277 -0
  723. package/docs/components/pricing-table.md +249 -0
  724. package/docs/components/progress.md +169 -0
  725. package/docs/components/qr-code.md +95 -378
  726. package/docs/components/qr-reader.md +83 -258
  727. package/docs/components/radio.md +151 -0
  728. package/docs/components/rating.md +154 -0
  729. package/docs/components/recipe.md +323 -0
  730. package/docs/components/sankey.md +84 -107
  731. package/docs/components/select.md +114 -485
  732. package/docs/components/skeleton.md +96 -0
  733. package/docs/components/slider.md +92 -235
  734. package/docs/components/sortable.md +267 -0
  735. package/docs/components/sparkline.md +76 -222
  736. package/docs/components/spinner.md +37 -18
  737. package/docs/components/split-pane.md +62 -226
  738. package/docs/components/spotlight.md +240 -0
  739. package/docs/components/spreadsheet.md +405 -0
  740. package/docs/components/stepper.md +72 -306
  741. package/docs/components/switch.md +69 -293
  742. package/docs/components/table.md +250 -0
  743. package/docs/components/tabs.md +92 -471
  744. package/docs/components/tag-input.md +257 -0
  745. package/docs/components/terminal.md +87 -391
  746. package/docs/components/testimonial.md +185 -0
  747. package/docs/components/textarea.md +96 -181
  748. package/docs/components/theme.md +216 -0
  749. package/docs/components/time-range-picker.md +99 -151
  750. package/docs/components/timeline.md +67 -115
  751. package/docs/components/timer.md +44 -86
  752. package/docs/components/toast.md +93 -432
  753. package/docs/components/tooltip.md +75 -419
  754. package/docs/components/tree.md +110 -436
  755. package/docs/components/treemap.md +86 -129
  756. package/docs/components/video-player.md +336 -0
  757. package/docs/components/virtual-scroller.md +86 -226
  758. package/docs/components/waterfall.md +217 -0
  759. package/docs/components/weather.md +239 -0
  760. package/docs/routing.md +2 -2
  761. package/package.json +1 -1
  762. package/docs/ai/components/popover.md +0 -70
  763. package/docs/components/popover.md +0 -333
@@ -1,101 +1,83 @@
1
- # Treemap Component
1
+ [//]: # (AI: For a low-token version of this doc, use docs/ai/components/treemap.md instead)
2
2
 
3
- The treemap component renders hierarchical data as nested rectangles using an SVG-based squarified treemap layout algorithm. Each rectangle's area is proportional to its value, making it ideal for visualizing the relative sizes of categories within a hierarchy.
3
+ # Treemap
4
+ `<snice-treemap>`
4
5
 
5
- ## Table of Contents
6
- - [Basic Usage](#basic-usage)
7
- - [Properties](#properties)
8
- - [Methods](#methods)
9
- - [Events](#events)
10
- - [Examples](#examples)
11
- - [Accessibility](#accessibility)
12
- - [Best Practices](#best-practices)
6
+ Renders hierarchical data as nested rectangles using a squarified treemap layout. Each rectangle's area is proportional to its value.
13
7
 
14
8
  ## Basic Usage
15
9
 
16
- ```html
17
- <snice-treemap id="my-treemap" show-labels show-values></snice-treemap>
10
+ ```typescript
11
+ import 'snice/components/treemap/snice-treemap';
12
+ ```
18
13
 
19
- <script type="module">
20
- import 'snice/components/treemap/snice-treemap';
14
+ ```html
15
+ <snice-treemap id="usage" show-labels show-values style="height: 400px;"></snice-treemap>
21
16
 
22
- const treemap = document.getElementById('my-treemap');
23
- treemap.data = {
17
+ <script>
18
+ document.getElementById('usage').data = {
24
19
  label: 'Disk Usage',
25
20
  value: 0,
26
21
  children: [
27
22
  { label: 'Documents', value: 45 },
28
23
  { label: 'Photos', value: 30 },
29
24
  { label: 'Videos', value: 80 },
30
- { label: 'Music', value: 25 },
25
+ { label: 'Music', value: 25 }
31
26
  ]
32
27
  };
33
28
  </script>
34
29
  ```
35
30
 
36
- ## Properties
37
-
38
- | Property | Type | Default | Description |
39
- |----------|------|---------|-------------|
40
- | `data` | `TreemapNode` | `{ label: '', value: 0 }` | Hierarchical data to display |
41
- | `show-labels` | `boolean` | `true` | Show text labels on rectangles |
42
- | `show-values` | `boolean` | `false` | Show numeric values on rectangles |
43
- | `color-scheme` | `TreemapColorScheme` | `'default'` | Color scheme for rectangles |
44
- | `padding` | `number` | `2` | Padding between rectangles in pixels |
45
- | `animation` | `boolean` | `true` | Enable animated transitions |
46
-
47
- ### TreemapNode Interface
31
+ ## Importing
48
32
 
33
+ **ESM (bundler)**
49
34
  ```typescript
50
- interface TreemapNode {
51
- label: string; // Display name
52
- value: number; // Numeric value (leaf nodes)
53
- children?: TreemapNode[]; // Child nodes (parent value computed from children)
54
- color?: string; // Optional custom color (overrides color scheme)
55
- }
35
+ import 'snice/components/treemap/snice-treemap';
56
36
  ```
57
37
 
58
- ### Color Schemes
38
+ **CDN**
39
+ ```html
40
+ <script src="snice-runtime.min.js"></script>
41
+ <script src="snice-treemap.min.js"></script>
42
+ ```
59
43
 
60
- | Scheme | Description |
61
- |--------|-------------|
62
- | `default` | Tableau 10 categorical palette |
63
- | `blue` | Sequential blues |
64
- | `green` | Sequential greens |
65
- | `purple` | Sequential purples |
66
- | `orange` | Sequential oranges |
67
- | `warm` | Warm reds/oranges |
68
- | `cool` | Cool teals/blues |
69
- | `rainbow` | Multi-hue categorical |
44
+ ## Examples
70
45
 
71
- ## Methods
46
+ ### Color Schemes
72
47
 
73
- | Method | Signature | Description |
74
- |--------|-----------|-------------|
75
- | `drillDown` | `(node: TreemapNode) => void` | Drill into a node's children |
76
- | `drillUp` | `() => void` | Go back one level |
77
- | `drillToRoot` | `() => void` | Reset to root level |
48
+ Use the `color-scheme` attribute to change the palette.
78
49
 
79
- The `drillPath` getter returns the current drill-down path as a `TreemapNode[]`.
50
+ ```html
51
+ <snice-treemap color-scheme="blue" show-labels></snice-treemap>
52
+ <snice-treemap color-scheme="warm" show-labels></snice-treemap>
53
+ <snice-treemap color-scheme="rainbow" show-labels></snice-treemap>
54
+ ```
80
55
 
81
- ## Events
56
+ ### Custom Node Colors
82
57
 
83
- | Event | Detail | Description |
84
- |-------|--------|-------------|
85
- | `@snice/treemap-click` | `{ node: TreemapNode, depth: number }` | Fired when a rectangle is clicked |
86
- | `@snice/treemap-hover` | `{ node: TreemapNode, depth: number } \| null` | Fired on hover (null on leave) |
87
- | `@snice/treemap-drill` | `{ node: TreemapNode, path: TreemapNode[] }` | Fired when drill level changes |
58
+ Set the `color` property on individual nodes to override the scheme.
88
59
 
89
- ## Examples
60
+ ```javascript
61
+ treemap.data = {
62
+ label: 'Budget',
63
+ value: 0,
64
+ children: [
65
+ { label: 'Rent', value: 1500, color: '#e74c3c' },
66
+ { label: 'Food', value: 600, color: '#2ecc71' },
67
+ { label: 'Transport', value: 300, color: '#3498db' }
68
+ ]
69
+ };
70
+ ```
90
71
 
91
72
  ### Drillable Hierarchy
92
73
 
74
+ Click a rectangle with children to drill into it. A breadcrumb trail appears for navigation.
75
+
93
76
  ```html
94
- <snice-treemap id="org" show-labels></snice-treemap>
77
+ <snice-treemap id="org" show-labels style="height: 400px;"></snice-treemap>
95
78
 
96
- <script type="module">
97
- const treemap = document.getElementById('org');
98
- treemap.data = {
79
+ <script>
80
+ document.getElementById('org').data = {
99
81
  label: 'Company',
100
82
  value: 0,
101
83
  children: [
@@ -105,7 +87,7 @@ The `drillPath` getter returns the current drill-down path as a `TreemapNode[]`.
105
87
  children: [
106
88
  { label: 'Frontend', value: 20 },
107
89
  { label: 'Backend', value: 25 },
108
- { label: 'DevOps', value: 10 },
90
+ { label: 'DevOps', value: 10 }
109
91
  ]
110
92
  },
111
93
  {
@@ -113,86 +95,61 @@ The `drillPath` getter returns the current drill-down path as a `TreemapNode[]`.
113
95
  value: 0,
114
96
  children: [
115
97
  { label: 'Enterprise', value: 30 },
116
- { label: 'SMB', value: 15 },
98
+ { label: 'SMB', value: 15 }
117
99
  ]
118
100
  },
119
- { label: 'HR', value: 10 },
101
+ { label: 'HR', value: 10 }
120
102
  ]
121
103
  };
122
-
123
- treemap.addEventListener('@snice/treemap-drill', (e) => {
124
- console.log('Drilled to:', e.detail.path.map(n => n.label).join(' > '));
125
- });
126
104
  </script>
127
105
  ```
128
106
 
129
- Click a rectangle with children to drill in. A breadcrumb trail appears for navigation.
130
-
131
- ### Custom Colors
107
+ ### Programmatic Navigation
132
108
 
133
- ```html
134
- <snice-treemap id="budget" show-labels show-values></snice-treemap>
135
-
136
- <script type="module">
137
- document.getElementById('budget').data = {
138
- label: 'Budget',
139
- value: 0,
140
- children: [
141
- { label: 'Rent', value: 1500, color: '#e74c3c' },
142
- { label: 'Food', value: 600, color: '#2ecc71' },
143
- { label: 'Transport', value: 300, color: '#3498db' },
144
- { label: 'Savings', value: 500, color: '#1abc9c' },
145
- ]
146
- };
147
- </script>
148
- ```
149
-
150
- ### Color Schemes
151
-
152
- ```html
153
- <snice-treemap color-scheme="blue" show-labels></snice-treemap>
154
- <snice-treemap color-scheme="warm" show-labels></snice-treemap>
155
- <snice-treemap color-scheme="rainbow" show-labels></snice-treemap>
109
+ ```javascript
110
+ const treemap = document.querySelector('snice-treemap');
111
+ treemap.drillDown(node); // Drill into a node
112
+ treemap.drillUp(); // Go back one level
113
+ treemap.drillToRoot(); // Reset to root
114
+ console.log(treemap.drillPath); // Current path
156
115
  ```
157
116
 
158
- ### Listening to Events
159
-
160
- ```html
161
- <snice-treemap id="events" show-labels></snice-treemap>
117
+ ## Properties
162
118
 
163
- <script type="module">
164
- const map = document.getElementById('events');
119
+ | Property | Type | Default | Description |
120
+ |----------|------|---------|-------------|
121
+ | `data` | `TreemapNode` | `{ label: '', value: 0 }` | Hierarchical data |
122
+ | `showLabels` (attr: `show-labels`) | `boolean` | `true` | Show text labels |
123
+ | `showValues` (attr: `show-values`) | `boolean` | `false` | Show numeric values |
124
+ | `colorScheme` (attr: `color-scheme`) | `'default' \| 'blue' \| 'green' \| 'purple' \| 'orange' \| 'warm' \| 'cool' \| 'rainbow'` | `'default'` | Color scheme |
125
+ | `padding` | `number` | `2` | Padding between rectangles (px) |
126
+ | `animation` | `boolean` | `true` | Enable transitions |
165
127
 
166
- map.addEventListener('@snice/treemap-click', (e) => {
167
- console.log('Clicked:', e.detail.node.label);
168
- });
128
+ ### TreemapNode Interface
169
129
 
170
- map.addEventListener('@snice/treemap-hover', (e) => {
171
- if (e.detail) {
172
- console.log('Hovering:', e.detail.node.label);
173
- }
174
- });
175
- </script>
130
+ ```typescript
131
+ interface TreemapNode {
132
+ label: string;
133
+ value: number;
134
+ children?: TreemapNode[];
135
+ color?: string;
136
+ }
176
137
  ```
177
138
 
178
- ## Accessibility
179
-
180
- - **ARIA role**: The treemap container has `role="img"` with `aria-label` from the root data label
181
- - **Keyboard**: Breadcrumb buttons are focusable and keyboard-accessible
182
- - **Tooltips**: Hover tooltips show node label and value
139
+ ## Events
183
140
 
184
- ## Browser Support
141
+ | Event | Detail | Description |
142
+ |-------|--------|-------------|
143
+ | `treemap-click` | `{ node: TreemapNode, depth: number }` | Rectangle clicked |
144
+ | `treemap-hover` | `{ node: TreemapNode, depth: number } \| null` | Hover enter (null on leave) |
145
+ | `treemap-drill` | `{ node: TreemapNode, path: TreemapNode[] }` | Drill level changed |
185
146
 
186
- - Modern browsers (Chrome, Firefox, Safari, Edge)
187
- - Requires Custom Elements v1, Shadow DOM, and ResizeObserver support
147
+ ## Methods
188
148
 
189
- ## Best Practices
149
+ | Method | Arguments | Description |
150
+ |--------|-----------|-------------|
151
+ | `drillDown()` | `node: TreemapNode` | Drill into a node's children |
152
+ | `drillUp()` | -- | Go back one level |
153
+ | `drillToRoot()` | -- | Reset to root level |
190
154
 
191
- 1. **Provide meaningful labels**: Each node should have a descriptive label
192
- 2. **Use appropriate color schemes**: Categorical data works well with `default` or `rainbow`; sequential data with `blue`, `green`, etc.
193
- 3. **Set a fixed height**: The treemap needs a defined height on the host element (e.g., `snice-treemap { height: 400px; }`)
194
- 4. **Limit depth**: More than 2-3 levels of hierarchy can be hard to navigate; use drill-down for deep trees
195
- 5. **Balance node counts**: Very many small nodes become unreadable; consider grouping small values
196
- 6. **Custom colors**: Use the `color` property on nodes for domain-specific coloring (e.g., red for expenses, green for income)
197
- 7. **Responsive**: The treemap auto-resizes via ResizeObserver; place it in a flexible container
198
- 8. **Show values selectively**: Enable `show-values` when exact numbers matter; labels alone are often sufficient
155
+ The `drillPath` getter returns the current drill-down path as `TreemapNode[]`.
@@ -0,0 +1,336 @@
1
+ [//]: # (AI: For a low-token version of this doc, use docs/ai/components/video-player.md instead)
2
+
3
+ # Video Player Component
4
+
5
+ The video player component provides a full-featured video player with custom controls, keyboard shortcuts, picture-in-picture support, fullscreen mode, playback speed selection, and multiple visual variants. It wraps the native HTML video element with a polished, consistent UI.
6
+
7
+ ## Table of Contents
8
+ - [Basic Usage](#basic-usage)
9
+ - [Properties](#properties)
10
+ - [Slots](#slots)
11
+ - [Methods](#methods)
12
+ - [Events](#events)
13
+ - [Keyboard Shortcuts](#keyboard-shortcuts)
14
+ - [CSS Custom Properties](#css-custom-properties)
15
+ - [Examples](#examples)
16
+ - [Accessibility](#accessibility)
17
+
18
+ ## Basic Usage
19
+
20
+ ```html
21
+ <snice-video-player src="video.mp4" poster="poster.jpg"></snice-video-player>
22
+ ```
23
+
24
+ ```typescript
25
+ import 'snice/components/video-player/snice-video-player';
26
+ ```
27
+
28
+ ## Properties
29
+
30
+ | Property | Type | Default | Description |
31
+ |----------|------|---------|-------------|
32
+ | `src` | `string` | `''` | Video source URL |
33
+ | `poster` | `string` | `''` | Poster image URL shown before playback |
34
+ | `autoplay` | `boolean` | `false` | Automatically start playback |
35
+ | `muted` | `boolean` | `false` | Mute the video |
36
+ | `loop` | `boolean` | `false` | Loop playback continuously |
37
+ | `controls` | `boolean` | `true` | Show the custom control bar |
38
+ | `playbackRate` (attr: `playback-rate`) | `number` | `1` | Playback speed multiplier |
39
+ | `currentTime` (attr: `current-time`) | `number` | `0` | Current playback position in seconds |
40
+ | `volume` | `number` | `1` | Volume level from 0 (silent) to 1 (full) |
41
+ | `variant` | `'default' \| 'minimal' \| 'cinema'` | `'default'` | Visual style variant |
42
+ | `duration` | `number` | _(read-only)_ | Video duration in seconds, set from video metadata |
43
+
44
+ ### Variants
45
+
46
+ | Variant | Description |
47
+ |---------|-------------|
48
+ | `default` | Full controls with progress bar, playback speed selector, and PiP button |
49
+ | `minimal` | Simplified controls without rate or PiP buttons |
50
+ | `cinema` | Larger controls, no border radius, with box shadow for a theater-like appearance |
51
+
52
+ ## Slots
53
+
54
+ | Slot Name | Description |
55
+ |-----------|-------------|
56
+ | (default) | `<source>` elements for providing multiple video formats |
57
+
58
+ ## Methods
59
+
60
+ #### `play(): Promise<void>`
61
+ Start video playback.
62
+
63
+ ```typescript
64
+ await player.play();
65
+ ```
66
+
67
+ #### `pause(): void`
68
+ Pause video playback.
69
+
70
+ ```typescript
71
+ player.pause();
72
+ ```
73
+
74
+ #### `toggle(): void`
75
+ Toggle between play and pause.
76
+
77
+ ```typescript
78
+ player.toggle();
79
+ ```
80
+
81
+ #### `seekTo(time: number): void`
82
+ Seek to a specific time in seconds.
83
+
84
+ ```typescript
85
+ player.seekTo(30); // Jump to 30 seconds
86
+ ```
87
+
88
+ #### `requestFullscreen(): Promise<void>`
89
+ Enter fullscreen mode.
90
+
91
+ ```typescript
92
+ await player.requestFullscreen();
93
+ ```
94
+
95
+ #### `exitFullscreen(): Promise<void>`
96
+ Exit fullscreen mode.
97
+
98
+ ```typescript
99
+ await player.exitFullscreen();
100
+ ```
101
+
102
+ #### `requestPictureInPicture(): Promise<void>`
103
+ Toggle picture-in-picture mode.
104
+
105
+ ```typescript
106
+ await player.requestPictureInPicture();
107
+ ```
108
+
109
+ #### `setPlaybackRate(rate: number): void`
110
+ Set the playback speed.
111
+
112
+ ```typescript
113
+ player.setPlaybackRate(1.5); // 1.5x speed
114
+ ```
115
+
116
+ ## Events
117
+
118
+ ### `video-play`
119
+ Fired when playback starts.
120
+
121
+ **Event Detail:**
122
+ ```typescript
123
+ {
124
+ player: SniceVideoPlayerElement;
125
+ }
126
+ ```
127
+
128
+ ### `video-pause`
129
+ Fired when playback is paused.
130
+
131
+ **Event Detail:**
132
+ ```typescript
133
+ {
134
+ player: SniceVideoPlayerElement;
135
+ }
136
+ ```
137
+
138
+ ### `video-ended`
139
+ Fired when the video finishes playing.
140
+
141
+ **Event Detail:**
142
+ ```typescript
143
+ {
144
+ player: SniceVideoPlayerElement;
145
+ }
146
+ ```
147
+
148
+ ### `video-time-update`
149
+ Fired periodically during playback with current position.
150
+
151
+ **Event Detail:**
152
+ ```typescript
153
+ {
154
+ player: SniceVideoPlayerElement;
155
+ currentTime: number;
156
+ duration: number;
157
+ }
158
+ ```
159
+
160
+ ### `video-fullscreen-change`
161
+ Fired when fullscreen mode is toggled.
162
+
163
+ **Event Detail:**
164
+ ```typescript
165
+ {
166
+ player: SniceVideoPlayerElement;
167
+ fullscreen: boolean;
168
+ }
169
+ ```
170
+
171
+ ### `video-volume-change`
172
+ Fired when volume or mute state changes.
173
+
174
+ **Event Detail:**
175
+ ```typescript
176
+ {
177
+ player: SniceVideoPlayerElement;
178
+ volume: number;
179
+ muted: boolean;
180
+ }
181
+ ```
182
+
183
+ ## Keyboard Shortcuts
184
+
185
+ | Key | Action |
186
+ |-----|--------|
187
+ | Space / K | Toggle play/pause |
188
+ | F | Toggle fullscreen |
189
+ | M | Toggle mute |
190
+ | ArrowRight | Seek forward 5 seconds |
191
+ | ArrowLeft | Seek backward 5 seconds |
192
+ | ArrowUp | Volume up 10% |
193
+ | ArrowDown | Volume down 10% |
194
+
195
+ ## CSS Custom Properties
196
+
197
+ | Property | Description | Default |
198
+ |----------|-------------|---------|
199
+ | `--snice-color-primary` | Progress bar fill color | `rgb(37 99 235)` |
200
+ | `--snice-border-radius-lg` | Container border radius | `0.5rem` |
201
+ | `--snice-transition-fast` | Control button transitions | `150ms` |
202
+ | `--snice-transition-medium` | Controls bar fade transition | `250ms` |
203
+ | `--snice-shadow-lg` | Cinema variant box shadow | _(theme default)_ |
204
+ | `--snice-focus-ring-width` | Focus ring width for control buttons | _(theme default)_ |
205
+ | `--snice-focus-ring-color` | Focus ring color for control buttons | _(theme default)_ |
206
+
207
+ ## Examples
208
+
209
+ ### Basic Video Player
210
+
211
+ Play a single video file with a poster image.
212
+
213
+ ```html
214
+ <snice-video-player
215
+ src="https://example.com/video.mp4"
216
+ poster="https://example.com/poster.jpg"
217
+ ></snice-video-player>
218
+ ```
219
+
220
+ ### Multiple Sources
221
+
222
+ Provide multiple video formats for broader browser compatibility using slotted `<source>` elements.
223
+
224
+ ```html
225
+ <snice-video-player poster="poster.jpg">
226
+ <source src="video.webm" type="video/webm">
227
+ <source src="video.mp4" type="video/mp4">
228
+ </snice-video-player>
229
+ ```
230
+
231
+ ### Cinema Variant
232
+
233
+ Use the `cinema` variant for a theater-like presentation with larger controls and box shadow.
234
+
235
+ ```html
236
+ <snice-video-player
237
+ src="movie.mp4"
238
+ poster="movie-poster.jpg"
239
+ variant="cinema"
240
+ ></snice-video-player>
241
+ ```
242
+
243
+ ### Minimal Variant
244
+
245
+ Use the `minimal` variant for a cleaner player with simplified controls.
246
+
247
+ ```html
248
+ <snice-video-player
249
+ src="tutorial.mp4"
250
+ variant="minimal"
251
+ ></snice-video-player>
252
+ ```
253
+
254
+ ### Autoplay Muted
255
+
256
+ Autoplay requires the video to be muted in most browsers.
257
+
258
+ ```html
259
+ <snice-video-player
260
+ src="background-loop.mp4"
261
+ autoplay
262
+ muted
263
+ loop
264
+ ></snice-video-player>
265
+ ```
266
+
267
+ ### Event Handling
268
+
269
+ Listen for player events to build custom behavior.
270
+
271
+ ```html
272
+ <snice-video-player id="my-player" src="video.mp4"></snice-video-player>
273
+ <p id="status">Ready</p>
274
+
275
+ <script type="module">
276
+ import type { SniceVideoPlayerElement } from 'snice/components/video-player/snice-video-player.types';
277
+
278
+ const player = document.getElementById('my-player') as SniceVideoPlayerElement;
279
+ const status = document.getElementById('status');
280
+
281
+ player.addEventListener('video-play', () => {
282
+ status.textContent = 'Playing';
283
+ });
284
+
285
+ player.addEventListener('video-pause', () => {
286
+ status.textContent = 'Paused';
287
+ });
288
+
289
+ player.addEventListener('video-ended', () => {
290
+ status.textContent = 'Finished';
291
+ });
292
+
293
+ player.addEventListener('video-time-update', (e) => {
294
+ const { currentTime, duration } = e.detail;
295
+ const percent = Math.round((currentTime / duration) * 100);
296
+ status.textContent = `Playing: ${percent}%`;
297
+ });
298
+ </script>
299
+ ```
300
+
301
+ ### Programmatic Control
302
+
303
+ Control the player using JavaScript methods.
304
+
305
+ ```html
306
+ <snice-video-player id="controlled-player" src="video.mp4" controls="false"></snice-video-player>
307
+
308
+ <button onclick="document.getElementById('controlled-player').play()">Play</button>
309
+ <button onclick="document.getElementById('controlled-player').pause()">Pause</button>
310
+ <button onclick="document.getElementById('controlled-player').seekTo(0)">Restart</button>
311
+ <button onclick="document.getElementById('controlled-player').setPlaybackRate(2)">2x Speed</button>
312
+ ```
313
+
314
+ ## Accessibility
315
+
316
+ - **Keyboard support**: Full keyboard control with Space/K for play/pause, F for fullscreen, M for mute, and arrow keys for seeking and volume
317
+ - **Focus indicators**: All control buttons have visible focus rings for keyboard navigation
318
+ - **ARIA attributes**: Control buttons have appropriate ARIA labels describing their actions
319
+ - **Screen reader support**: Current time, duration, and playback state are conveyed to assistive technology
320
+ - **Reduced motion**: Transitions respect `prefers-reduced-motion` for users sensitive to animations
321
+
322
+ ## Browser Support
323
+
324
+ - Modern browsers (Chrome, Firefox, Safari, Edge)
325
+ - Requires Custom Elements v1 and Shadow DOM support
326
+ - Picture-in-Picture requires browser support (Chrome, Edge, Safari; limited in Firefox)
327
+
328
+ ## Best Practices
329
+
330
+ 1. **Provide a poster image**: Show a meaningful thumbnail before playback starts
331
+ 2. **Offer multiple sources**: Use `<source>` elements with WebM and MP4 for broad compatibility
332
+ 3. **Respect autoplay policies**: Autoplay requires `muted` in most browsers
333
+ 4. **Use appropriate variants**: Choose `minimal` for embedded tutorials, `cinema` for featured content
334
+ 5. **Add keyboard hints**: Consider showing keyboard shortcuts in a tooltip or help section
335
+ 6. **Handle playback errors**: Listen for error events and show fallback messaging
336
+ 7. **Set reasonable defaults**: Start with controls visible and volume at a comfortable level