snice 3.1.0 → 3.3.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 (464) hide show
  1. package/README.md +90 -41
  2. package/dist/components/accordion/snice-accordion-item.d.ts +2 -2
  3. package/dist/components/accordion/snice-accordion-item.js +9 -9
  4. package/dist/components/accordion/snice-accordion-item.js.map +1 -1
  5. package/dist/components/accordion/snice-accordion.d.ts +2 -2
  6. package/dist/components/accordion/snice-accordion.js +9 -9
  7. package/dist/components/accordion/snice-accordion.js.map +1 -1
  8. package/dist/components/actions/snice-actions.d.ts +28 -0
  9. package/dist/components/actions/snice-actions.js +220 -0
  10. package/dist/components/actions/snice-actions.js.map +1 -0
  11. package/dist/components/actions/snice-actions.types.d.ts +27 -0
  12. package/dist/components/alert/snice-alert.d.ts +2 -2
  13. package/dist/components/alert/snice-alert.js +9 -9
  14. package/dist/components/alert/snice-alert.js.map +1 -1
  15. package/dist/components/audio-recorder/snice-audio-recorder.d.ts +58 -0
  16. package/dist/components/audio-recorder/snice-audio-recorder.js +413 -0
  17. package/dist/components/audio-recorder/snice-audio-recorder.js.map +1 -0
  18. package/dist/components/audio-recorder/snice-audio-recorder.types.d.ts +28 -0
  19. package/dist/components/avatar/snice-avatar.d.ts +2 -2
  20. package/dist/components/avatar/snice-avatar.js +9 -9
  21. package/dist/components/avatar/snice-avatar.js.map +1 -1
  22. package/dist/components/badge/snice-badge.d.ts +2 -2
  23. package/dist/components/badge/snice-badge.js +10 -10
  24. package/dist/components/badge/snice-badge.js.map +1 -1
  25. package/dist/components/banner/snice-banner.d.ts +22 -0
  26. package/dist/components/banner/snice-banner.js +180 -0
  27. package/dist/components/banner/snice-banner.js.map +1 -0
  28. package/dist/components/banner/snice-banner.types.d.ts +14 -0
  29. package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +2 -2
  30. package/dist/components/breadcrumbs/snice-breadcrumbs.js +9 -9
  31. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  32. package/dist/components/button/snice-button.d.ts +2 -2
  33. package/dist/components/button/snice-button.js +9 -9
  34. package/dist/components/button/snice-button.js.map +1 -1
  35. package/dist/components/calendar/snice-calendar.d.ts +46 -0
  36. package/dist/components/calendar/snice-calendar.js +294 -0
  37. package/dist/components/calendar/snice-calendar.js.map +1 -0
  38. package/dist/components/calendar/snice-calendar.types.d.ts +34 -0
  39. package/dist/components/camera/snice-camera.d.ts +39 -0
  40. package/dist/components/camera/snice-camera.js +286 -0
  41. package/dist/components/camera/snice-camera.js.map +1 -0
  42. package/dist/components/camera/snice-camera.types.d.ts +28 -0
  43. package/dist/components/card/snice-card.d.ts +2 -2
  44. package/dist/components/card/snice-card.js +9 -9
  45. package/dist/components/card/snice-card.js.map +1 -1
  46. package/dist/components/carousel/snice-carousel.d.ts +32 -0
  47. package/dist/components/carousel/snice-carousel.js +279 -0
  48. package/dist/components/carousel/snice-carousel.js.map +1 -0
  49. package/dist/components/carousel/snice-carousel.types.d.ts +22 -0
  50. package/dist/components/chart/snice-chart.d.ts +73 -0
  51. package/dist/components/chart/snice-chart.js +940 -0
  52. package/dist/components/chart/snice-chart.js.map +1 -0
  53. package/dist/components/chart/snice-chart.types.d.ts +71 -0
  54. package/dist/components/chat/snice-chat.d.ts +98 -0
  55. package/dist/components/chat/snice-chat.js +589 -0
  56. package/dist/components/chat/snice-chat.js.map +1 -0
  57. package/dist/components/chat/snice-chat.types.d.ts +141 -0
  58. package/dist/components/checkbox/snice-checkbox.d.ts +2 -2
  59. package/dist/components/checkbox/snice-checkbox.js +9 -9
  60. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  61. package/dist/components/chip/snice-chip.d.ts +2 -2
  62. package/dist/components/chip/snice-chip.js +9 -9
  63. package/dist/components/chip/snice-chip.js.map +1 -1
  64. package/dist/components/code-block/snice-code-block.d.ts +15 -0
  65. package/dist/components/code-block/snice-code-block.js +141 -0
  66. package/dist/components/code-block/snice-code-block.js.map +1 -0
  67. package/dist/components/code-block/snice-code-block.types.d.ts +15 -0
  68. package/dist/components/color-display/snice-color-display.d.ts +14 -0
  69. package/dist/components/color-display/snice-color-display.js +151 -0
  70. package/dist/components/color-display/snice-color-display.js.map +1 -0
  71. package/dist/components/color-display/snice-color-display.types.d.ts +10 -0
  72. package/dist/components/color-picker/snice-color-picker.d.ts +50 -0
  73. package/dist/components/color-picker/snice-color-picker.js +489 -0
  74. package/dist/components/color-picker/snice-color-picker.js.map +1 -0
  75. package/dist/components/color-picker/snice-color-picker.types.d.ts +19 -0
  76. package/dist/components/command-palette/snice-command-palette.d.ts +47 -0
  77. package/dist/components/command-palette/snice-command-palette.js +428 -0
  78. package/dist/components/command-palette/snice-command-palette.js.map +1 -0
  79. package/dist/components/command-palette/snice-command-palette.types.d.ts +49 -0
  80. package/dist/components/date-picker/snice-date-picker.d.ts +2 -2
  81. package/dist/components/date-picker/snice-date-picker.js +10 -10
  82. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  83. package/dist/components/divider/snice-divider.d.ts +2 -2
  84. package/dist/components/divider/snice-divider.js +9 -9
  85. package/dist/components/divider/snice-divider.js.map +1 -1
  86. package/dist/components/doc/snice-doc.d.ts +93 -0
  87. package/dist/components/doc/snice-doc.js +626 -0
  88. package/dist/components/doc/snice-doc.js.map +1 -0
  89. package/dist/components/doc/snice-doc.types.d.ts +118 -0
  90. package/dist/components/draw/snice-draw.d.ts +71 -0
  91. package/dist/components/draw/snice-draw.js +709 -0
  92. package/dist/components/draw/snice-draw.js.map +1 -0
  93. package/dist/components/draw/snice-draw.types.d.ts +41 -0
  94. package/dist/components/drawer/snice-drawer.d.ts +2 -2
  95. package/dist/components/drawer/snice-drawer.js +9 -9
  96. package/dist/components/drawer/snice-drawer.js.map +1 -1
  97. package/dist/components/empty-state/snice-empty-state.d.ts +13 -0
  98. package/dist/components/empty-state/snice-empty-state.js +121 -0
  99. package/dist/components/empty-state/snice-empty-state.js.map +1 -0
  100. package/dist/components/empty-state/snice-empty-state.types.d.ts +9 -0
  101. package/dist/components/file-upload/snice-file-upload.d.ts +44 -0
  102. package/dist/components/file-upload/snice-file-upload.js +387 -0
  103. package/dist/components/file-upload/snice-file-upload.js.map +1 -0
  104. package/dist/components/file-upload/snice-file-upload.types.d.ts +22 -0
  105. package/dist/components/gantt/snice-gantt.d.ts +29 -0
  106. package/dist/components/gantt/snice-gantt.js +268 -0
  107. package/dist/components/gantt/snice-gantt.js.map +1 -0
  108. package/dist/components/gantt/snice-gantt.types.d.ts +23 -0
  109. package/dist/components/image/snice-image.d.ts +22 -0
  110. package/dist/components/image/snice-image.js +201 -0
  111. package/dist/components/image/snice-image.js.map +1 -0
  112. package/dist/components/image/snice-image.types.d.ts +17 -0
  113. package/dist/components/input/snice-input.d.ts +2 -2
  114. package/dist/components/input/snice-input.js +9 -9
  115. package/dist/components/input/snice-input.js.map +1 -1
  116. package/dist/components/kanban/snice-kanban.d.ts +31 -0
  117. package/dist/components/kanban/snice-kanban.js +243 -0
  118. package/dist/components/kanban/snice-kanban.js.map +1 -0
  119. package/dist/components/kanban/snice-kanban.types.d.ts +29 -0
  120. package/dist/components/kpi/snice-kpi.d.ts +16 -0
  121. package/dist/components/kpi/snice-kpi.js +162 -0
  122. package/dist/components/kpi/snice-kpi.js.map +1 -0
  123. package/dist/components/kpi/snice-kpi.types.d.ts +12 -0
  124. package/dist/components/layout/snice-layout-blog.d.ts +2 -2
  125. package/dist/components/layout/snice-layout-blog.js +9 -9
  126. package/dist/components/layout/snice-layout-blog.js.map +1 -1
  127. package/dist/components/layout/snice-layout-card.d.ts +2 -2
  128. package/dist/components/layout/snice-layout-card.js +9 -9
  129. package/dist/components/layout/snice-layout-card.js.map +1 -1
  130. package/dist/components/layout/snice-layout-centered.d.ts +2 -2
  131. package/dist/components/layout/snice-layout-centered.js +9 -9
  132. package/dist/components/layout/snice-layout-centered.js.map +1 -1
  133. package/dist/components/layout/snice-layout-dashboard.d.ts +2 -2
  134. package/dist/components/layout/snice-layout-dashboard.js +9 -9
  135. package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
  136. package/dist/components/layout/snice-layout-fullscreen.d.ts +2 -2
  137. package/dist/components/layout/snice-layout-fullscreen.js +9 -9
  138. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
  139. package/dist/components/layout/snice-layout-landing.d.ts +2 -2
  140. package/dist/components/layout/snice-layout-landing.js +9 -9
  141. package/dist/components/layout/snice-layout-landing.js.map +1 -1
  142. package/dist/components/layout/snice-layout-minimal.d.ts +2 -2
  143. package/dist/components/layout/snice-layout-minimal.js +9 -9
  144. package/dist/components/layout/snice-layout-minimal.js.map +1 -1
  145. package/dist/components/layout/snice-layout-sidebar.d.ts +2 -2
  146. package/dist/components/layout/snice-layout-sidebar.js +9 -9
  147. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  148. package/dist/components/layout/snice-layout-split.d.ts +2 -2
  149. package/dist/components/layout/snice-layout-split.js +9 -9
  150. package/dist/components/layout/snice-layout-split.js.map +1 -1
  151. package/dist/components/layout/snice-layout.d.ts +2 -2
  152. package/dist/components/layout/snice-layout.js +9 -9
  153. package/dist/components/layout/snice-layout.js.map +1 -1
  154. package/dist/components/link/snice-link.d.ts +13 -0
  155. package/dist/components/link/snice-link.js +137 -0
  156. package/dist/components/link/snice-link.js.map +1 -0
  157. package/dist/components/link/snice-link.types.d.ts +11 -0
  158. package/dist/components/list/snice-list-item.d.ts +6 -0
  159. package/dist/components/list/snice-list-item.js +68 -0
  160. package/dist/components/list/snice-list-item.js.map +1 -0
  161. package/dist/components/list/snice-list.d.ts +23 -0
  162. package/dist/components/list/snice-list.js +270 -0
  163. package/dist/components/list/snice-list.js.map +1 -0
  164. package/dist/components/list/snice-list.types.d.ts +28 -0
  165. package/dist/components/location/snice-location.d.ts +35 -0
  166. package/dist/components/location/snice-location.js +238 -0
  167. package/dist/components/location/snice-location.js.map +1 -0
  168. package/dist/components/location/snice-location.types.d.ts +35 -0
  169. package/dist/components/login/snice-login.d.ts +2 -2
  170. package/dist/components/login/snice-login.js +9 -9
  171. package/dist/components/login/snice-login.js.map +1 -1
  172. package/dist/components/menu/snice-menu-divider.d.ts +4 -0
  173. package/dist/components/menu/snice-menu-divider.js +53 -0
  174. package/dist/components/menu/snice-menu-divider.js.map +1 -0
  175. package/dist/components/menu/snice-menu-item.d.ts +10 -0
  176. package/dist/components/menu/snice-menu-item.js +99 -0
  177. package/dist/components/menu/snice-menu-item.js.map +1 -0
  178. package/dist/components/menu/snice-menu-item.types.d.ts +9 -0
  179. package/dist/components/menu/snice-menu.d.ts +27 -0
  180. package/dist/components/menu/snice-menu.js +199 -0
  181. package/dist/components/menu/snice-menu.js.map +1 -0
  182. package/dist/components/menu/snice-menu.types.d.ts +18 -0
  183. package/dist/components/modal/snice-modal.d.ts +2 -2
  184. package/dist/components/modal/snice-modal.js +9 -9
  185. package/dist/components/modal/snice-modal.js.map +1 -1
  186. package/dist/components/nav/snice-nav.js +1 -1
  187. package/dist/components/nav/snice-nav.js.map +1 -1
  188. package/dist/components/pagination/snice-pagination.d.ts +2 -2
  189. package/dist/components/pagination/snice-pagination.js +8 -8
  190. package/dist/components/pagination/snice-pagination.js.map +1 -1
  191. package/dist/components/progress/snice-progress.d.ts +2 -2
  192. package/dist/components/progress/snice-progress.js +9 -9
  193. package/dist/components/progress/snice-progress.js.map +1 -1
  194. package/dist/components/qr-code/qrcode.d.ts +28 -0
  195. package/dist/components/qr-code/qrcode.js +906 -0
  196. package/dist/components/qr-code/qrcode.js.map +1 -0
  197. package/dist/components/qr-code/snice-qr-code.d.ts +35 -0
  198. package/dist/components/qr-code/snice-qr-code.js +256 -0
  199. package/dist/components/qr-code/snice-qr-code.js.map +1 -0
  200. package/dist/components/qr-code/snice-qr-code.types.d.ts +33 -0
  201. package/dist/components/radio/snice-radio.d.ts +2 -2
  202. package/dist/components/radio/snice-radio.js +9 -9
  203. package/dist/components/radio/snice-radio.js.map +1 -1
  204. package/dist/components/select/snice-option.d.ts +2 -2
  205. package/dist/components/select/snice-option.js +8 -8
  206. package/dist/components/select/snice-option.js.map +1 -1
  207. package/dist/components/select/snice-select.d.ts +2 -2
  208. package/dist/components/select/snice-select.js +9 -9
  209. package/dist/components/select/snice-select.js.map +1 -1
  210. package/dist/components/skeleton/snice-skeleton.d.ts +2 -2
  211. package/dist/components/skeleton/snice-skeleton.js +9 -9
  212. package/dist/components/skeleton/snice-skeleton.js.map +1 -1
  213. package/dist/components/slider/snice-slider.d.ts +53 -0
  214. package/dist/components/slider/snice-slider.js +479 -0
  215. package/dist/components/slider/snice-slider.js.map +1 -0
  216. package/dist/components/slider/snice-slider.types.d.ts +26 -0
  217. package/dist/components/snice-cell-C0slgOpe.js +4 -0
  218. package/dist/components/snice-cell-C0slgOpe.js.map +1 -0
  219. package/dist/components/sparkline/snice-sparkline.d.ts +21 -0
  220. package/dist/components/sparkline/snice-sparkline.js +228 -0
  221. package/dist/components/sparkline/snice-sparkline.js.map +1 -0
  222. package/dist/components/sparkline/snice-sparkline.types.d.ts +16 -0
  223. package/dist/components/spinner/snice-spinner.d.ts +10 -0
  224. package/dist/components/spinner/snice-spinner.js +109 -0
  225. package/dist/components/spinner/snice-spinner.js.map +1 -0
  226. package/dist/components/spinner/snice-spinner.types.d.ts +8 -0
  227. package/dist/components/split-pane/snice-split-pane.d.ts +32 -0
  228. package/dist/components/split-pane/snice-split-pane.js +191 -0
  229. package/dist/components/split-pane/snice-split-pane.js.map +1 -0
  230. package/dist/components/split-pane/snice-split-pane.types.d.ts +19 -0
  231. package/dist/components/stat/snice-stat.d.ts +14 -0
  232. package/dist/components/stat/snice-stat.js +140 -0
  233. package/dist/components/stat/snice-stat.js.map +1 -0
  234. package/dist/components/stat/snice-stat.types.d.ts +12 -0
  235. package/dist/components/stepper/snice-stepper-panel.d.ts +8 -0
  236. package/dist/components/stepper/snice-stepper-panel.js +70 -0
  237. package/dist/components/stepper/snice-stepper-panel.js.map +1 -0
  238. package/dist/components/stepper/snice-stepper-panel.types.d.ts +4 -0
  239. package/dist/components/stepper/snice-stepper.d.ts +15 -0
  240. package/dist/components/stepper/snice-stepper.js +163 -0
  241. package/dist/components/stepper/snice-stepper.js.map +1 -0
  242. package/dist/components/stepper/snice-stepper.types.d.ts +13 -0
  243. package/dist/components/switch/snice-switch.d.ts +2 -2
  244. package/dist/components/switch/snice-switch.js +9 -9
  245. package/dist/components/switch/snice-switch.js.map +1 -1
  246. package/dist/components/table/snice-cell-actions.d.ts +2 -2
  247. package/dist/components/table/snice-cell-actions.js +9 -9
  248. package/dist/components/table/snice-cell-actions.js.map +1 -1
  249. package/dist/components/table/snice-cell-boolean.d.ts +2 -2
  250. package/dist/components/table/snice-cell-boolean.js +9 -9
  251. package/dist/components/table/snice-cell-boolean.js.map +1 -1
  252. package/dist/components/table/snice-cell-color.d.ts +2 -2
  253. package/dist/components/table/snice-cell-color.js +9 -9
  254. package/dist/components/table/snice-cell-color.js.map +1 -1
  255. package/dist/components/table/snice-cell-currency.d.ts +2 -2
  256. package/dist/components/table/snice-cell-currency.js +9 -9
  257. package/dist/components/table/snice-cell-currency.js.map +1 -1
  258. package/dist/components/table/snice-cell-date.d.ts +2 -2
  259. package/dist/components/table/snice-cell-date.js +9 -9
  260. package/dist/components/table/snice-cell-date.js.map +1 -1
  261. package/dist/components/table/snice-cell-duration.d.ts +2 -2
  262. package/dist/components/table/snice-cell-duration.js +9 -9
  263. package/dist/components/table/snice-cell-duration.js.map +1 -1
  264. package/dist/components/table/snice-cell-email.d.ts +2 -2
  265. package/dist/components/table/snice-cell-email.js +9 -9
  266. package/dist/components/table/snice-cell-email.js.map +1 -1
  267. package/dist/components/table/snice-cell-filesize.d.ts +2 -2
  268. package/dist/components/table/snice-cell-filesize.js +9 -9
  269. package/dist/components/table/snice-cell-filesize.js.map +1 -1
  270. package/dist/components/table/snice-cell-image.d.ts +2 -2
  271. package/dist/components/table/snice-cell-image.js +9 -9
  272. package/dist/components/table/snice-cell-image.js.map +1 -1
  273. package/dist/components/table/snice-cell-json.d.ts +2 -2
  274. package/dist/components/table/snice-cell-json.js +9 -9
  275. package/dist/components/table/snice-cell-json.js.map +1 -1
  276. package/dist/components/table/snice-cell-link.d.ts +2 -2
  277. package/dist/components/table/snice-cell-link.js +9 -9
  278. package/dist/components/table/snice-cell-link.js.map +1 -1
  279. package/dist/components/table/snice-cell-location.d.ts +2 -2
  280. package/dist/components/table/snice-cell-location.js +9 -9
  281. package/dist/components/table/snice-cell-location.js.map +1 -1
  282. package/dist/components/table/snice-cell-number.d.ts +2 -2
  283. package/dist/components/table/snice-cell-number.js +9 -9
  284. package/dist/components/table/snice-cell-number.js.map +1 -1
  285. package/dist/components/table/snice-cell-percentage.d.ts +2 -2
  286. package/dist/components/table/snice-cell-percentage.js +9 -9
  287. package/dist/components/table/snice-cell-percentage.js.map +1 -1
  288. package/dist/components/table/snice-cell-phone.d.ts +2 -2
  289. package/dist/components/table/snice-cell-phone.js +9 -9
  290. package/dist/components/table/snice-cell-phone.js.map +1 -1
  291. package/dist/components/table/snice-cell-progress.d.ts +2 -2
  292. package/dist/components/table/snice-cell-progress.js +9 -9
  293. package/dist/components/table/snice-cell-progress.js.map +1 -1
  294. package/dist/components/table/snice-cell-rating.d.ts +2 -2
  295. package/dist/components/table/snice-cell-rating.js +9 -9
  296. package/dist/components/table/snice-cell-rating.js.map +1 -1
  297. package/dist/components/table/snice-cell-sparkline.d.ts +2 -2
  298. package/dist/components/table/snice-cell-sparkline.js +9 -9
  299. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  300. package/dist/components/table/snice-cell-status.d.ts +2 -2
  301. package/dist/components/table/snice-cell-status.js +9 -9
  302. package/dist/components/table/snice-cell-status.js.map +1 -1
  303. package/dist/components/table/snice-cell-tag.d.ts +2 -2
  304. package/dist/components/table/snice-cell-tag.js +9 -9
  305. package/dist/components/table/snice-cell-tag.js.map +1 -1
  306. package/dist/components/table/snice-cell-text.d.ts +2 -2
  307. package/dist/components/table/snice-cell-text.js +9 -9
  308. package/dist/components/table/snice-cell-text.js.map +1 -1
  309. package/dist/components/table/snice-cell.d.ts +2 -2
  310. package/dist/components/table/snice-cell.js +9 -9
  311. package/dist/components/table/snice-cell.js.map +1 -1
  312. package/dist/components/table/snice-column.d.ts +1 -1
  313. package/dist/components/table/snice-column.js +4 -4
  314. package/dist/components/table/snice-column.js.map +1 -1
  315. package/dist/components/table/snice-header.d.ts +2 -2
  316. package/dist/components/table/snice-header.js +9 -9
  317. package/dist/components/table/snice-header.js.map +1 -1
  318. package/dist/components/table/snice-progress.d.ts +2 -2
  319. package/dist/components/table/snice-progress.js +8 -8
  320. package/dist/components/table/snice-progress.js.map +1 -1
  321. package/dist/components/table/snice-rating.d.ts +2 -2
  322. package/dist/components/table/snice-rating.js +8 -8
  323. package/dist/components/table/snice-rating.js.map +1 -1
  324. package/dist/components/table/snice-row.d.ts +2 -2
  325. package/dist/components/table/snice-row.js +10 -10
  326. package/dist/components/table/snice-row.js.map +1 -1
  327. package/dist/components/table/snice-table.d.ts +2 -3
  328. package/dist/components/table/snice-table.js +9 -14
  329. package/dist/components/table/snice-table.js.map +1 -1
  330. package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
  331. package/dist/components/tabs/snice-tab-panel.js +9 -9
  332. package/dist/components/tabs/snice-tab-panel.js.map +1 -1
  333. package/dist/components/tabs/snice-tab.d.ts +2 -2
  334. package/dist/components/tabs/snice-tab.js +9 -9
  335. package/dist/components/tabs/snice-tab.js.map +1 -1
  336. package/dist/components/tabs/snice-tabs.d.ts +2 -2
  337. package/dist/components/tabs/snice-tabs.js +9 -9
  338. package/dist/components/tabs/snice-tabs.js.map +1 -1
  339. package/dist/components/terminal/snice-terminal.types.d.ts +133 -0
  340. package/dist/components/textarea/snice-textarea.d.ts +52 -0
  341. package/dist/components/textarea/snice-textarea.js +407 -0
  342. package/dist/components/textarea/snice-textarea.js.map +1 -0
  343. package/dist/components/textarea/snice-textarea.types.d.ts +30 -0
  344. package/dist/components/timeline/snice-timeline.d.ts +11 -0
  345. package/dist/components/timeline/snice-timeline.js +112 -0
  346. package/dist/components/timeline/snice-timeline.js.map +1 -0
  347. package/dist/components/timeline/snice-timeline.types.d.ts +16 -0
  348. package/dist/components/toast/snice-toast-container.d.ts +2 -2
  349. package/dist/components/toast/snice-toast-container.js +8 -8
  350. package/dist/components/toast/snice-toast-container.js.map +1 -1
  351. package/dist/components/toast/snice-toast.d.ts +2 -2
  352. package/dist/components/toast/snice-toast.js +8 -8
  353. package/dist/components/toast/snice-toast.js.map +1 -1
  354. package/dist/components/tooltip/snice-tooltip.d.ts +2 -2
  355. package/dist/components/tooltip/snice-tooltip.js +10 -10
  356. package/dist/components/tooltip/snice-tooltip.js.map +1 -1
  357. package/dist/components/tree/snice-tree-item.d.ts +35 -0
  358. package/dist/components/tree/snice-tree-item.js +301 -0
  359. package/dist/components/tree/snice-tree-item.js.map +1 -0
  360. package/dist/components/tree/snice-tree-item.types.d.ts +30 -0
  361. package/dist/components/tree/snice-tree.d.ts +45 -0
  362. package/dist/components/tree/snice-tree.js +390 -0
  363. package/dist/components/tree/snice-tree.js.map +1 -0
  364. package/dist/components/tree/snice-tree.types.d.ts +65 -0
  365. package/dist/components/virtual-scroller/snice-virtual-scroller.d.ts +31 -0
  366. package/dist/components/virtual-scroller/snice-virtual-scroller.js +160 -0
  367. package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -0
  368. package/dist/components/virtual-scroller/snice-virtual-scroller.types.d.ts +19 -0
  369. package/dist/index.cjs +125 -158
  370. package/dist/index.cjs.map +1 -1
  371. package/dist/index.esm.js +125 -158
  372. package/dist/index.esm.js.map +1 -1
  373. package/dist/index.iife.js +125 -158
  374. package/dist/index.iife.js.map +1 -1
  375. package/dist/parts.d.ts +13 -16
  376. package/dist/symbols.cjs +1 -1
  377. package/dist/symbols.esm.js +1 -1
  378. package/dist/template.d.ts +0 -1
  379. package/dist/transitions.cjs +1 -1
  380. package/dist/transitions.esm.js +1 -1
  381. package/docs/ai/README.md +10 -1
  382. package/docs/ai/components/actions.md +81 -0
  383. package/docs/ai/components/audio-recorder.md +97 -0
  384. package/docs/ai/components/banner.md +84 -0
  385. package/docs/ai/components/calendar.md +95 -0
  386. package/docs/ai/components/camera.md +130 -0
  387. package/docs/ai/components/carousel.md +49 -0
  388. package/docs/ai/components/chart.md +160 -0
  389. package/docs/ai/components/chat.md +189 -0
  390. package/docs/ai/components/code-block.md +32 -0
  391. package/docs/ai/components/color-display.md +48 -0
  392. package/docs/ai/components/color-picker.md +75 -0
  393. package/docs/ai/components/command-palette.md +117 -0
  394. package/docs/ai/components/doc.md +154 -0
  395. package/docs/ai/components/draw.md +140 -0
  396. package/docs/ai/components/empty-state.md +72 -0
  397. package/docs/ai/components/file-upload.md +93 -0
  398. package/docs/ai/components/gantt.md +95 -0
  399. package/docs/ai/components/image.md +60 -0
  400. package/docs/ai/components/kanban.md +102 -0
  401. package/docs/ai/components/kpi.md +158 -0
  402. package/docs/ai/components/layout.md +261 -0
  403. package/docs/ai/components/link.md +77 -0
  404. package/docs/ai/components/list.md +50 -0
  405. package/docs/ai/components/location.md +75 -0
  406. package/docs/ai/components/menu.md +114 -0
  407. package/docs/ai/components/popover.md +70 -0
  408. package/docs/ai/components/qr-code.md +106 -0
  409. package/docs/ai/components/slider.md +87 -0
  410. package/docs/ai/components/sparkline.md +168 -0
  411. package/docs/ai/components/spinner.md +47 -0
  412. package/docs/ai/components/split-pane.md +71 -0
  413. package/docs/ai/components/stat.md +29 -0
  414. package/docs/ai/components/stepper.md +216 -0
  415. package/docs/ai/components/textarea.md +87 -0
  416. package/docs/ai/components/timeline.md +77 -0
  417. package/docs/ai/components/tree.md +191 -0
  418. package/docs/ai/components/virtual-scroller.md +71 -0
  419. package/docs/components/actions.md +317 -0
  420. package/docs/components/alert.md +540 -0
  421. package/docs/components/audio-recorder.md +152 -0
  422. package/docs/components/badge.md +593 -0
  423. package/docs/components/banner.md +106 -0
  424. package/docs/components/breadcrumbs.md +568 -0
  425. package/docs/components/button.md +648 -0
  426. package/docs/components/calendar.md +397 -0
  427. package/docs/components/camera.md +383 -0
  428. package/docs/components/card.md +778 -0
  429. package/docs/components/carousel.md +63 -0
  430. package/docs/components/chart.md +526 -0
  431. package/docs/components/chat.md +482 -0
  432. package/docs/components/checkbox.md +714 -0
  433. package/docs/components/chip.md +670 -0
  434. package/docs/components/code-block.md +49 -0
  435. package/docs/components/color-display.md +96 -0
  436. package/docs/components/color-picker.md +81 -0
  437. package/docs/components/command-palette.md +159 -0
  438. package/docs/components/doc.md +357 -0
  439. package/docs/components/draw.md +307 -0
  440. package/docs/components/empty-state.md +79 -0
  441. package/docs/components/file-upload.md +263 -0
  442. package/docs/components/gantt.md +347 -0
  443. package/docs/components/image.md +110 -0
  444. package/docs/components/kanban.md +410 -0
  445. package/docs/components/kpi.md +251 -0
  446. package/docs/components/link.md +229 -0
  447. package/docs/components/list.md +65 -0
  448. package/docs/components/location.md +369 -0
  449. package/docs/components/menu.md +633 -0
  450. package/docs/components/popover.md +333 -0
  451. package/docs/components/qr-code.md +464 -0
  452. package/docs/components/slider.md +297 -0
  453. package/docs/components/sparkline.md +293 -0
  454. package/docs/components/spinner.md +63 -0
  455. package/docs/components/split-pane.md +315 -0
  456. package/docs/components/stat.md +45 -0
  457. package/docs/components/stepper.md +410 -0
  458. package/docs/components/textarea.md +235 -0
  459. package/docs/components/timeline.md +192 -0
  460. package/docs/components/tree.md +536 -0
  461. package/docs/components/virtual-scroller.md +298 -0
  462. package/package.json +2 -1
  463. package/dist/components/snice-cell-BLFVdxPp.js +0 -4
  464. package/dist/components/snice-cell-BLFVdxPp.js.map +0 -1
package/dist/parts.d.ts CHANGED
@@ -1,7 +1,3 @@
1
- /**
2
- * Simplified lit-html-style template system
3
- * Based on lit-html's approach but simplified
4
- */
5
1
  import { TemplateResult } from './template';
6
2
  /**
7
3
  * A prepared template ready for rendering
@@ -12,13 +8,12 @@ declare class Template {
12
8
  constructor(result: TemplateResult, element: HTMLTemplateElement, attrNamesForParts: string[]);
13
9
  }
14
10
  interface TemplatePart {
15
- type: 'node' | 'attribute' | 'property' | 'boolean-attribute' | 'event' | 'if' | 'case';
11
+ type: 'node' | 'attribute' | 'property' | 'boolean-attribute' | 'event' | 'conditional-if' | 'conditional-case';
16
12
  index: number;
17
13
  name?: string;
18
14
  element?: Element;
19
15
  startNode?: Comment;
20
16
  endNode?: Comment;
21
- caseElement?: Element;
22
17
  attrStrings?: string[];
23
18
  }
24
19
  /**
@@ -28,6 +23,8 @@ export declare class TemplateInstance {
28
23
  template: Template;
29
24
  parts: Part[];
30
25
  fragment: DocumentFragment | null;
26
+ private conditionalParts;
27
+ private regularParts;
31
28
  constructor(result: TemplateResult);
32
29
  renderFragment(): DocumentFragment;
33
30
  render(values: readonly any[]): DocumentFragment;
@@ -100,6 +97,7 @@ export declare class EventPart extends Part {
100
97
  private listener;
101
98
  private value;
102
99
  private keyFilter;
100
+ private host;
103
101
  constructor(element: Element, eventName: string);
104
102
  commit(value: any): void;
105
103
  clear(): void;
@@ -129,29 +127,28 @@ export declare function parseKeyboardFilter(spec: string): KeyboardFilter;
129
127
  */
130
128
  export declare function matchesKeyboardFilter(event: KeyboardEvent, filter: KeyboardFilter): boolean;
131
129
  /**
132
- * IfPart handles <if> conditional rendering
133
- * Uses document fragments to actually remove/insert nodes from the DOM
134
- * instead of just hiding them with CSS
130
+ * ConditionalIfPart handles <if> conditional rendering
131
+ * Removes/inserts DOM nodes based on condition
135
132
  */
136
- export declare class IfPart extends Part {
133
+ export declare class ConditionalIfPart extends Part {
137
134
  private ifElement;
138
135
  private value;
139
136
  private fragment;
140
- private childNodes;
141
137
  constructor(ifElement: Element);
142
138
  commit(value: any): void;
143
139
  clear(): void;
144
140
  }
145
141
  /**
146
- * CasePart handles <case>/<when>/<default> conditional rendering
147
- * Uses document fragments to remove/insert <when> and <default> children
142
+ * ConditionalCasePart handles <case>/<when>/<default> conditional rendering
143
+ * Removes/inserts matching branch based on value
148
144
  */
149
- export declare class CasePart extends Part {
145
+ export declare class ConditionalCasePart extends Part {
150
146
  private caseElement;
151
147
  private value;
152
- private childrenList;
148
+ private childrenMap;
153
149
  private fragments;
154
- private attachedChildren;
150
+ private defaultChild;
151
+ private currentChild;
155
152
  constructor(caseElement: Element);
156
153
  commit(value: any): void;
157
154
  clear(): void;
package/dist/symbols.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.0.0
2
+ * snice v3.2.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.0.0
2
+ * snice v3.2.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Template system for Snice v3.0.0
3
- * Inspired by lit-html but custom implementation
4
3
  * Provides html`` and css`` tagged template processors with differential rendering
5
4
  */
6
5
  export declare const HTML_RESULT: unique symbol;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.0.0
2
+ * snice v3.2.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v3.0.0
2
+ * snice v3.2.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
package/docs/ai/README.md CHANGED
@@ -12,6 +12,15 @@ Token-efficient reference docs for AI assistants. Same content as human docs, mi
12
12
  - `api.md` - Complete API reference
13
13
  - `patterns.md` - Common usage patterns
14
14
  - `architecture.md` - System design
15
- - `components/*.md` - Component reference, if asked to build using a component
15
+ - `components/*.md` - Component reference (DO NOT read all upfront - read only as needed)
16
16
 
17
17
  Read these instead of `/docs/*.md` for faster context loading.
18
+
19
+ ## Available Components
20
+
21
+ **IMPORTANT:** Do NOT read all component docs. Only read a component's doc when you need to use or reference it.
22
+
23
+ **Implemented Components:**
24
+ - accordion, accordion-item, alert, avatar, badge, banner, breadcrumbs, button, card, checkbox, chip, color-display, color-picker, date-picker, divider, drawer, empty-state, file-upload, image, input, login, modal, nav, progress, radio, select, skeleton, slider, spinner, switch, table, tabs, tab, textarea, timeline, tooltip
25
+
26
+ **To use a component:** Read `docs/ai/components/{component-name}.md` only when needed.
@@ -0,0 +1,81 @@
1
+ # snice-actions
2
+
3
+ Action button group with overflow menu.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ actions: ActionButton[] = [];
9
+ size: 'small'|'medium'|'large' = 'medium';
10
+ variant: 'text'|'outlined'|'filled' = 'text';
11
+ showLabels: boolean = true;
12
+ maxVisible: number = 3;
13
+ moreLabel: string = 'More';
14
+ moreIcon: string = '⋯';
15
+ ```
16
+
17
+ ## ActionButton Interface
18
+
19
+ ```typescript
20
+ interface ActionButton {
21
+ id: string;
22
+ label?: string;
23
+ icon?: string;
24
+ iconImage?: string;
25
+ variant?: ActionButtonVariant;
26
+ disabled?: boolean;
27
+ danger?: boolean;
28
+ tooltip?: string;
29
+ action?: () => void | Promise<void>;
30
+ href?: string;
31
+ target?: string;
32
+ data?: any;
33
+ }
34
+ ```
35
+
36
+ ## Methods
37
+
38
+ ```typescript
39
+ triggerAction(id: string): void
40
+ getAction(id: string): ActionButton | undefined
41
+ ```
42
+
43
+ ## Events
44
+
45
+ - `@snice/action-trigger` - Dispatched when action triggered (detail: { action, actionsElement })
46
+
47
+ ## Usage
48
+
49
+ ```javascript
50
+ actions.actions = [
51
+ { id: 'edit', label: 'Edit', icon: '✏️' },
52
+ { id: 'delete', label: 'Delete', icon: '🗑️', danger: true }
53
+ ];
54
+ ```
55
+
56
+ ```html
57
+ <!-- Icon only -->
58
+ <snice-actions show-labels="false"></snice-actions>
59
+
60
+ <!-- With overflow (max 3 visible) -->
61
+ <snice-actions max-visible="3"></snice-actions>
62
+
63
+ <!-- Outlined variant -->
64
+ <snice-actions variant="outlined"></snice-actions>
65
+
66
+ <!-- Small size -->
67
+ <snice-actions size="small"></snice-actions>
68
+ ```
69
+
70
+ ## Features
71
+
72
+ - Multiple button variants (text/outlined/filled)
73
+ - Icon-only mode
74
+ - Overflow menu for many actions
75
+ - Danger styling for destructive actions
76
+ - Link support (href/target)
77
+ - Async action callbacks
78
+ - Per-action variant override
79
+ - Disabled state
80
+ - Custom tooltips
81
+ - Programmatic triggering
@@ -0,0 +1,97 @@
1
+ # snice-audio-recorder
2
+
3
+ Audio recording with visualization and playback.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ autoStart: boolean = false;
9
+ format: 'audio/webm'|'audio/ogg'|'audio/mp4'|'audio/wav' = 'audio/webm';
10
+ bitrate: number = 128000;
11
+ showControls: boolean = true;
12
+ showVisualizer: boolean = true;
13
+ maxDuration: number = 0;
14
+ showTimer: boolean = true;
15
+ ```
16
+
17
+ ## Methods
18
+
19
+ ```typescript
20
+ start(): Promise<void>
21
+ stop(): Promise<AudioRecording>
22
+ pause(): void
23
+ resume(): void
24
+ cancel(): void
25
+ getState(): 'inactive'|'recording'|'paused'
26
+ getDuration(): number
27
+ isRecording(): boolean
28
+ download(filename?: string): void
29
+ ```
30
+
31
+ ## AudioRecording
32
+
33
+ ```typescript
34
+ interface AudioRecording {
35
+ blob: Blob;
36
+ url: string;
37
+ duration: number;
38
+ size: number;
39
+ format: string;
40
+ timestamp: number;
41
+ }
42
+ ```
43
+
44
+ ## Events
45
+
46
+ - `@snice/recorder-start` - Recording started
47
+ - `@snice/recorder-stop` - Recording stopped
48
+ - `@snice/recorder-pause` - Paused
49
+ - `@snice/recorder-resume` - Resumed
50
+ - `@snice/recorder-cancel` - Cancelled
51
+ - `@snice/recorder-error` - Error
52
+
53
+ ## Usage
54
+
55
+ ```javascript
56
+ // Start
57
+ await recorder.start();
58
+
59
+ // Stop and get recording
60
+ const recording = await recorder.stop();
61
+ // { blob, url, duration, size, format, timestamp }
62
+
63
+ // Pause/resume
64
+ recorder.pause();
65
+ recorder.resume();
66
+
67
+ // Cancel
68
+ recorder.cancel();
69
+
70
+ // Download
71
+ recorder.download('recording.webm');
72
+
73
+ // Upload
74
+ const formData = new FormData();
75
+ formData.append('audio', recording.blob);
76
+ await fetch('/upload', { method: 'POST', body: formData });
77
+ ```
78
+
79
+ ```html
80
+ <snice-audio-recorder
81
+ auto-start
82
+ format="audio/mp4"
83
+ bitrate="256000"
84
+ max-duration="60">
85
+ </snice-audio-recorder>
86
+ ```
87
+
88
+ ## Features
89
+
90
+ - MediaRecorder API
91
+ - Real-time visualizer
92
+ - Pause/resume
93
+ - Timer
94
+ - Multiple formats
95
+ - Playback
96
+ - Download
97
+ - Requires HTTPS
@@ -0,0 +1,84 @@
1
+ # snice-banner
2
+
3
+ Fixed position notification banner.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ variant: 'info'|'success'|'warning'|'error' = 'info';
9
+ position: 'top'|'bottom' = 'top';
10
+ message: string = '';
11
+ dismissible: boolean = true;
12
+ icon: string = '';
13
+ actionText: string = '';
14
+ open: boolean = false;
15
+ ```
16
+
17
+ ## Methods
18
+
19
+ - `show()` - Show banner
20
+ - `hide()` - Hide banner
21
+ - `toggle()` - Toggle banner
22
+
23
+ ## Events
24
+
25
+ - `open` - {banner}
26
+ - `close` - {banner}
27
+ - `action` - {banner}
28
+
29
+ ## Usage
30
+
31
+ ```html
32
+ <!-- Basic -->
33
+ <snice-banner message="This is an info message" open></snice-banner>
34
+
35
+ <!-- Variants -->
36
+ <snice-banner variant="info" message="Info"></snice-banner>
37
+ <snice-banner variant="success" message="Success"></snice-banner>
38
+ <snice-banner variant="warning" message="Warning"></snice-banner>
39
+ <snice-banner variant="error" message="Error"></snice-banner>
40
+
41
+ <!-- Position -->
42
+ <snice-banner position="top" message="Top banner" open></snice-banner>
43
+ <snice-banner position="bottom" message="Bottom banner" open></snice-banner>
44
+
45
+ <!-- With action -->
46
+ <snice-banner
47
+ message="Update available"
48
+ action-text="Update Now"
49
+ open
50
+ ></snice-banner>
51
+
52
+ <!-- Not dismissible -->
53
+ <snice-banner
54
+ message="Important notice"
55
+ dismissible="false"
56
+ open
57
+ ></snice-banner>
58
+
59
+ <!-- Custom icon -->
60
+ <snice-banner
61
+ icon="🎉"
62
+ message="Celebration!"
63
+ open
64
+ ></snice-banner>
65
+
66
+ <!-- API -->
67
+ <snice-banner id="banner" message="Hello"></snice-banner>
68
+ <script>
69
+ const banner = document.querySelector('#banner');
70
+ banner.show();
71
+ banner.hide();
72
+ banner.toggle();
73
+ </script>
74
+ ```
75
+
76
+ ## Features
77
+
78
+ - 4 variants (info, success, warning, error)
79
+ - Top or bottom positioning
80
+ - Dismissible with close button
81
+ - Optional action button
82
+ - Smooth slide animation
83
+ - Fixed positioning
84
+ - Accessible (role=alert)
@@ -0,0 +1,95 @@
1
+ # snice-calendar
2
+
3
+ Calendar with date selection and event support.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ value: Date | string = new Date();
9
+ view: 'month'|'week'|'day' = 'month';
10
+ events: CalendarEvent[] = [];
11
+ minDate: Date | string = '';
12
+ maxDate: Date | string = '';
13
+ disabledDates: (Date | string)[] = [];
14
+ highlightToday: boolean = true;
15
+ showWeekNumbers: boolean = false;
16
+ firstDayOfWeek: number = 0; // 0=Sun, 1=Mon
17
+ locale: string = 'en-US';
18
+ ```
19
+
20
+ ## CalendarEvent
21
+
22
+ ```typescript
23
+ interface CalendarEvent {
24
+ id: string | number;
25
+ title: string;
26
+ start: Date | string;
27
+ end?: Date | string;
28
+ color?: string;
29
+ data?: any;
30
+ }
31
+ ```
32
+
33
+ ## Methods
34
+
35
+ ```typescript
36
+ goToToday(): void
37
+ goToDate(date: Date | string): void
38
+ previousMonth(): void
39
+ nextMonth(): void
40
+ previousWeek(): void
41
+ nextWeek(): void
42
+ previousDay(): void
43
+ nextDay(): void
44
+ getDisplayedMonth(): { month: number; year: number }
45
+ getEventsForDate(date: Date | string): CalendarEvent[]
46
+ ```
47
+
48
+ ## Events
49
+
50
+ - `@snice/calendar-change` - Date selected (detail: { value, calendar })
51
+ - `@snice/calendar-event-click` - Event clicked (detail: { event, calendar })
52
+
53
+ ## Usage
54
+
55
+ ```html
56
+ <snice-calendar></snice-calendar>
57
+
58
+ <!-- With events -->
59
+ <snice-calendar id="cal"></snice-calendar>
60
+ <script>
61
+ cal.events = [
62
+ { id: 1, title: 'Meeting', start: new Date(), color: '#2196f3' }
63
+ ];
64
+ </script>
65
+
66
+ <!-- With restrictions -->
67
+ <snice-calendar
68
+ min-date="2024-01-01"
69
+ max-date="2024-12-31"
70
+ first-day-of-week="1"
71
+ locale="fr-FR">
72
+ </snice-calendar>
73
+
74
+ <!-- Programmatic control -->
75
+ <script>
76
+ calendar.goToToday();
77
+ calendar.previousMonth();
78
+ calendar.nextMonth();
79
+ calendar.goToDate(new Date(2024, 5, 15));
80
+ </script>
81
+ ```
82
+
83
+ ## Features
84
+
85
+ - Month/week/day views
86
+ - Event display with colors
87
+ - Date restrictions (min/max/disabled)
88
+ - Locale support
89
+ - Week starting day configuration
90
+ - Week numbers (optional)
91
+ - Keyboard navigation
92
+ - Event click handling
93
+ - Programmatic navigation
94
+ - Multi-event days
95
+ - Today highlighting
@@ -0,0 +1,130 @@
1
+ # snice-camera
2
+
3
+ Live camera feed with built-in mobile-style controls.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ autoStart: boolean = true;
9
+ facingMode: 'user'|'environment' = 'user';
10
+ mirror: boolean = true;
11
+ controlsPosition: ControlsPosition = 'auto';
12
+ showControls: boolean = true;
13
+ width: number = 1280;
14
+ height: number = 720;
15
+ aspectRatio: string = ''; // '16:9', '4:3', '1:1', '21:9'
16
+ ```
17
+
18
+ ## ControlsPosition
19
+
20
+ ```typescript
21
+ type ControlsPosition =
22
+ | 'auto' // Auto-detect (bottom-right portrait, right landscape)
23
+ | 'bottom' | 'right' | 'left' | 'top' // Edge positions
24
+ | 'bottom-left' | 'bottom-right' // Corner positions
25
+ | 'top-left' | 'top-right';
26
+ ```
27
+
28
+ ## Methods
29
+
30
+ ```typescript
31
+ start(): Promise<void>
32
+ stop(): void
33
+ capture(): Promise<CapturedImage>
34
+ switchCamera(): Promise<void>
35
+ isActive(): boolean
36
+ getStream(): MediaStream | null
37
+ enterFullscreen(): void
38
+ exitFullscreen(): void
39
+ toggleFullscreen(): void
40
+ ```
41
+
42
+ ## CapturedImage
43
+
44
+ ```typescript
45
+ interface CapturedImage {
46
+ dataURL: string;
47
+ blob: Blob;
48
+ width: number;
49
+ height: number;
50
+ timestamp: number;
51
+ }
52
+ ```
53
+
54
+ ## Events
55
+
56
+ - `@snice/camera-start` - Camera started (detail: { stream })
57
+ - `@snice/camera-stop` - Camera stopped
58
+ - `@snice/camera-capture` - Photo captured (detail: { image })
59
+ - `@snice/camera-error` - Error occurred (detail: { error })
60
+
61
+ ## Slots
62
+
63
+ - `controls` - Custom controls overlay (full viewport, positioned absolutely)
64
+
65
+ ## Usage
66
+
67
+ ```html
68
+ <!-- Zero config -->
69
+ <snice-camera></snice-camera>
70
+
71
+ <!-- Custom position -->
72
+ <snice-camera controls-position="bottom-left"></snice-camera>
73
+
74
+ <!-- Back camera -->
75
+ <snice-camera facing-mode="environment"></snice-camera>
76
+
77
+ <!-- Custom controls overlay -->
78
+ <snice-camera>
79
+ <div slot="controls" style="position: absolute; top: 10px; left: 10px;">
80
+ LIVE
81
+ </div>
82
+ </snice-camera>
83
+
84
+ <!-- Hide built-in controls, use only custom -->
85
+ <snice-camera show-controls="false">
86
+ <div slot="controls" style="position: absolute; bottom: 20px; right: 20px;">
87
+ <button onclick="this.closest('snice-camera').capture()">📷</button>
88
+ </div>
89
+ </snice-camera>
90
+
91
+ <!-- 4K resolution -->
92
+ <snice-camera width="3840" height="2160"></snice-camera>
93
+
94
+ <!-- 16:9 aspect ratio -->
95
+ <snice-camera aspect-ratio="16:9"></snice-camera>
96
+
97
+ <!-- Square -->
98
+ <snice-camera aspect-ratio="1:1" width="1080" height="1080"></snice-camera>
99
+ ```
100
+
101
+ ```javascript
102
+ // Capture photo
103
+ const image = await camera.capture();
104
+ // { dataURL, blob, width, height, timestamp }
105
+
106
+ // Switch camera
107
+ await camera.switchCamera();
108
+
109
+ // Events
110
+ camera.addEventListener('@snice/camera-capture', (e) => {
111
+ const img = e.detail.image;
112
+ console.log(img.dataURL);
113
+ });
114
+
115
+ // Fullscreen
116
+ camera.toggleFullscreen();
117
+ ```
118
+
119
+ ## Features
120
+
121
+ - Auto-starts on load (default)
122
+ - Built-in mobile-style controls (Material Design icons)
123
+ - 720p HD quality (1280x720 hardcoded)
124
+ - Switch camera button (auto-hides if only one camera)
125
+ - Capture button with camera icon
126
+ - Auto-detect orientation for control positioning
127
+ - Corner and edge control positioning
128
+ - Mirror mode for front camera
129
+ - Slotted custom controls overlay
130
+ - Requires HTTPS
@@ -0,0 +1,49 @@
1
+ # snice-carousel
2
+
3
+ Image/content carousel with autoplay, loop, navigation.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ activeIndex: number = 0;
9
+ autoplay: boolean = false;
10
+ autoplayInterval: number = 3000;
11
+ autoplayDirection: 'forward'|'backward' = 'forward';
12
+ loop: boolean = true;
13
+ showControls: boolean = true;
14
+ showIndicators: boolean = true;
15
+ slidesPerView: number = 1;
16
+ spaceBetween: number = 0;
17
+ ```
18
+
19
+ ## Methods
20
+
21
+ - `next()`, `prev()`, `goToSlide(index)`
22
+ - `play()`, `pause()`
23
+
24
+ ## Events
25
+
26
+ - `@snice/carousel-slide-change` (detail: { activeIndex, previousIndex, carousel })
27
+
28
+ ## Usage
29
+
30
+ ```html
31
+ <!-- Basic -->
32
+ <snice-carousel>
33
+ <div>Slide 1</div>
34
+ <div>Slide 2</div>
35
+ </snice-carousel>
36
+
37
+ <!-- Autoplay -->
38
+ <snice-carousel autoplay autoplay-interval="2000">
39
+ <div>Auto 1</div>
40
+ <div>Auto 2</div>
41
+ </snice-carousel>
42
+
43
+ <!-- Multiple slides -->
44
+ <snice-carousel slides-per-view="3" space-between="20">
45
+ <div>1</div>
46
+ <div>2</div>
47
+ <div>3</div>
48
+ </snice-carousel>
49
+ ```