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
@@ -0,0 +1,540 @@
1
+ # Alert Component
2
+
3
+ The alert component displays notification messages to provide user feedback for informational, success, warning, or error states. It supports customizable variants, sizes, titles, icons, and optional dismissal.
4
+
5
+ ## Table of Contents
6
+ - [Basic Usage](#basic-usage)
7
+ - [Properties](#properties)
8
+ - [Methods](#methods)
9
+ - [Events](#events)
10
+ - [Examples](#examples)
11
+
12
+ ## Basic Usage
13
+
14
+ ```html
15
+ <snice-alert>
16
+ This is a basic alert message.
17
+ </snice-alert>
18
+ ```
19
+
20
+ ```typescript
21
+ import 'snice/components/alert/snice-alert';
22
+ ```
23
+
24
+ ## Properties
25
+
26
+ | Property | Type | Default | Description |
27
+ |----------|------|---------|-------------|
28
+ | `variant` | `'info' \| 'success' \| 'warning' \| 'error'` | `'info'` | Visual style variant |
29
+ | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Alert size |
30
+ | `title` | `string` | `''` | Optional title text |
31
+ | `dismissible` | `boolean` | `false` | Show dismiss button |
32
+ | `icon` | `string` | `''` | Custom icon (or `'none'` to hide default icon) |
33
+
34
+ ## Methods
35
+
36
+ #### `show(): void`
37
+ Display the alert (if previously hidden).
38
+
39
+ ```typescript
40
+ alert.show();
41
+ ```
42
+
43
+ #### `hide(): void`
44
+ Hide the alert with animation.
45
+
46
+ ```typescript
47
+ alert.hide();
48
+ ```
49
+
50
+ ## Events
51
+
52
+ #### `alert-dismiss`
53
+ Fired when the dismiss button is clicked.
54
+
55
+ **Event Detail:**
56
+ ```typescript
57
+ {
58
+ variant: AlertVariant;
59
+ title: string;
60
+ }
61
+ ```
62
+
63
+ **Usage:**
64
+ ```typescript
65
+ alert.addEventListener('alert-dismiss', (e) => {
66
+ console.log('Alert dismissed:', e.detail.variant);
67
+ });
68
+ ```
69
+
70
+ #### `alert-hidden`
71
+ Fired when the alert is fully hidden (after animation).
72
+
73
+ **Event Detail:**
74
+ ```typescript
75
+ {
76
+ variant: AlertVariant;
77
+ title: string;
78
+ }
79
+ ```
80
+
81
+ #### `alert-shown`
82
+ Fired when the alert is shown.
83
+
84
+ **Event Detail:**
85
+ ```typescript
86
+ {
87
+ variant: AlertVariant;
88
+ title: string;
89
+ }
90
+ ```
91
+
92
+ ## Examples
93
+
94
+ ### Basic Alerts
95
+
96
+ ```html
97
+ <!-- Info alert (default) -->
98
+ <snice-alert>
99
+ This is an informational message.
100
+ </snice-alert>
101
+
102
+ <!-- Success alert -->
103
+ <snice-alert variant="success">
104
+ Operation completed successfully!
105
+ </snice-alert>
106
+
107
+ <!-- Warning alert -->
108
+ <snice-alert variant="warning">
109
+ Please review your input before continuing.
110
+ </snice-alert>
111
+
112
+ <!-- Error alert -->
113
+ <snice-alert variant="error">
114
+ An error occurred while processing your request.
115
+ </snice-alert>
116
+ ```
117
+
118
+ ### Alert with Title
119
+
120
+ ```html
121
+ <snice-alert variant="info" title="Did you know?">
122
+ You can customize alerts with titles to provide better context for your messages.
123
+ </snice-alert>
124
+
125
+ <snice-alert variant="success" title="Success!">
126
+ Your profile has been updated successfully.
127
+ </snice-alert>
128
+
129
+ <snice-alert variant="warning" title="Warning">
130
+ Your session will expire in 5 minutes.
131
+ </snice-alert>
132
+
133
+ <snice-alert variant="error" title="Error">
134
+ Unable to connect to the server. Please try again.
135
+ </snice-alert>
136
+ ```
137
+
138
+ ### Dismissible Alerts
139
+
140
+ ```html
141
+ <snice-alert variant="info" dismissible>
142
+ This alert can be dismissed by clicking the X button.
143
+ </snice-alert>
144
+
145
+ <snice-alert variant="success" title="Account Created" dismissible>
146
+ Your account has been created successfully. Check your email to verify.
147
+ </snice-alert>
148
+ ```
149
+
150
+ ### Different Sizes
151
+
152
+ ```html
153
+ <snice-alert size="small" variant="info">
154
+ Small alert message
155
+ </snice-alert>
156
+
157
+ <snice-alert size="medium" variant="success">
158
+ Medium alert message (default)
159
+ </snice-alert>
160
+
161
+ <snice-alert size="large" variant="warning">
162
+ Large alert message
163
+ </snice-alert>
164
+ ```
165
+
166
+ ### Custom Icons
167
+
168
+ ```html
169
+ <!-- Custom emoji icon -->
170
+ <snice-alert variant="success" icon="🎉">
171
+ Congratulations! You've unlocked a new achievement!
172
+ </snice-alert>
173
+
174
+ <!-- Custom emoji icon -->
175
+ <snice-alert variant="info" icon="💡">
176
+ Pro tip: Save time by using keyboard shortcuts.
177
+ </snice-alert>
178
+
179
+ <!-- No icon -->
180
+ <snice-alert variant="warning" icon="none">
181
+ This alert has no icon.
182
+ </snice-alert>
183
+ ```
184
+
185
+ ### Form Validation Alerts
186
+
187
+ ```html
188
+ <form id="signup-form">
189
+ <snice-alert variant="error" title="Validation Error" id="form-error" style="display: none;">
190
+ <ul id="error-list"></ul>
191
+ </snice-alert>
192
+
193
+ <label>
194
+ Email:
195
+ <input type="email" name="email" required>
196
+ </label>
197
+
198
+ <label>
199
+ Password:
200
+ <input type="password" name="password" required>
201
+ </label>
202
+
203
+ <button type="submit">Sign Up</button>
204
+ </form>
205
+
206
+ <script type="module">
207
+ import 'snice/components/alert/snice-alert';
208
+
209
+ const form = document.getElementById('signup-form');
210
+ const errorAlert = document.getElementById('form-error');
211
+ const errorList = document.getElementById('error-list');
212
+
213
+ form.addEventListener('submit', (e) => {
214
+ e.preventDefault();
215
+ const errors = [];
216
+
217
+ const email = form.email.value;
218
+ const password = form.password.value;
219
+
220
+ if (!email.includes('@')) {
221
+ errors.push('Invalid email address');
222
+ }
223
+
224
+ if (password.length < 8) {
225
+ errors.push('Password must be at least 8 characters');
226
+ }
227
+
228
+ if (errors.length > 0) {
229
+ errorList.innerHTML = errors.map(err => `<li>${err}</li>`).join('');
230
+ errorAlert.style.display = 'block';
231
+ errorAlert.show();
232
+ } else {
233
+ errorAlert.style.display = 'none';
234
+ // Submit form
235
+ }
236
+ });
237
+ </script>
238
+ ```
239
+
240
+ ### Dynamic Alerts
241
+
242
+ ```html
243
+ <div id="alert-container"></div>
244
+
245
+ <button onclick="showSuccessAlert()">Show Success</button>
246
+ <button onclick="showErrorAlert()">Show Error</button>
247
+
248
+ <script type="module">
249
+ import 'snice/components/alert/snice-alert';
250
+
251
+ window.showSuccessAlert = () => {
252
+ const container = document.getElementById('alert-container');
253
+ const alert = document.createElement('snice-alert');
254
+ alert.variant = 'success';
255
+ alert.title = 'Success!';
256
+ alert.dismissible = true;
257
+ alert.textContent = 'Operation completed successfully.';
258
+
259
+ container.appendChild(alert);
260
+
261
+ alert.addEventListener('alert-hidden', () => {
262
+ alert.remove();
263
+ });
264
+ };
265
+
266
+ window.showErrorAlert = () => {
267
+ const container = document.getElementById('alert-container');
268
+ const alert = document.createElement('snice-alert');
269
+ alert.variant = 'error';
270
+ alert.title = 'Error';
271
+ alert.dismissible = true;
272
+ alert.textContent = 'Something went wrong. Please try again.';
273
+
274
+ container.appendChild(alert);
275
+
276
+ alert.addEventListener('alert-hidden', () => {
277
+ alert.remove();
278
+ });
279
+ };
280
+ </script>
281
+ ```
282
+
283
+ ### Auto-Dismiss Alert
284
+
285
+ ```html
286
+ <snice-alert id="auto-dismiss" variant="success" title="Saved!">
287
+ Your changes have been saved.
288
+ </snice-alert>
289
+
290
+ <script type="module">
291
+ import 'snice/components/alert/snice-alert';
292
+
293
+ const alert = document.getElementById('auto-dismiss');
294
+
295
+ // Auto-dismiss after 5 seconds
296
+ setTimeout(() => {
297
+ alert.hide();
298
+ }, 5000);
299
+
300
+ alert.addEventListener('alert-hidden', () => {
301
+ console.log('Alert was auto-dismissed');
302
+ });
303
+ </script>
304
+ ```
305
+
306
+ ### Alert with Links
307
+
308
+ ```html
309
+ <snice-alert variant="info" title="Update Available">
310
+ A new version of the application is available.
311
+ <a href="/updates" style="text-decoration: underline; font-weight: 600;">
312
+ View update details
313
+ </a>
314
+ </snice-alert>
315
+
316
+ <snice-alert variant="warning" title="Action Required">
317
+ Your payment method is expiring soon.
318
+ <a href="/billing" style="text-decoration: underline; font-weight: 600;">
319
+ Update payment method
320
+ </a>
321
+ </snice-alert>
322
+ ```
323
+
324
+ ### Alert with Rich Content
325
+
326
+ ```html
327
+ <snice-alert variant="success" title="Welcome!">
328
+ <p>Thank you for joining our platform. Here's what you can do next:</p>
329
+ <ul style="margin: 0.5rem 0; padding-left: 1.5rem;">
330
+ <li>Complete your profile</li>
331
+ <li>Explore available features</li>
332
+ <li>Connect with other users</li>
333
+ </ul>
334
+ </snice-alert>
335
+ ```
336
+
337
+ ### Notification Center
338
+
339
+ ```html
340
+ <div id="notifications" style="position: fixed; top: 1rem; right: 1rem; width: 20rem; z-index: 1000;">
341
+ <!-- Notifications will be added here -->
342
+ </div>
343
+
344
+ <button onclick="notify('info', 'New message received')">Info</button>
345
+ <button onclick="notify('success', 'File uploaded successfully')">Success</button>
346
+ <button onclick="notify('warning', 'Low disk space')">Warning</button>
347
+ <button onclick="notify('error', 'Connection lost')">Error</button>
348
+
349
+ <script type="module">
350
+ import 'snice/components/alert/snice-alert';
351
+
352
+ window.notify = (variant, message) => {
353
+ const container = document.getElementById('notifications');
354
+ const alert = document.createElement('snice-alert');
355
+
356
+ alert.variant = variant;
357
+ alert.dismissible = true;
358
+ alert.textContent = message;
359
+ alert.style.marginBottom = '0.5rem';
360
+
361
+ container.appendChild(alert);
362
+
363
+ // Auto-dismiss after 4 seconds
364
+ setTimeout(() => {
365
+ alert.hide();
366
+ }, 4000);
367
+
368
+ alert.addEventListener('alert-hidden', () => {
369
+ alert.remove();
370
+ });
371
+ };
372
+ </script>
373
+ ```
374
+
375
+ ### Alert Stack
376
+
377
+ ```html
378
+ <style>
379
+ .alert-stack {
380
+ display: flex;
381
+ flex-direction: column;
382
+ gap: 0.75rem;
383
+ max-width: 40rem;
384
+ }
385
+ </style>
386
+
387
+ <div class="alert-stack">
388
+ <snice-alert variant="info" title="System Maintenance" dismissible>
389
+ Scheduled maintenance is planned for tonight at 11 PM EST.
390
+ </snice-alert>
391
+
392
+ <snice-alert variant="warning" title="Limited Availability" dismissible>
393
+ Some features may be temporarily unavailable during the maintenance window.
394
+ </snice-alert>
395
+
396
+ <snice-alert variant="success" title="New Feature Released" dismissible>
397
+ Check out our new dashboard analytics feature!
398
+ </snice-alert>
399
+ </div>
400
+ ```
401
+
402
+ ### Event Handling
403
+
404
+ ```typescript
405
+ import type { SniceAlertElement } from 'snice/components/alert/snice-alert.types';
406
+
407
+ const alert = document.querySelector<SniceAlertElement>('snice-alert');
408
+
409
+ alert.addEventListener('alert-dismiss', (e) => {
410
+ console.log('User dismissed alert:', e.detail);
411
+ // Track analytics
412
+ analytics.track('alert_dismissed', {
413
+ variant: e.detail.variant,
414
+ title: e.detail.title
415
+ });
416
+ });
417
+
418
+ alert.addEventListener('alert-shown', () => {
419
+ console.log('Alert is now visible');
420
+ });
421
+
422
+ alert.addEventListener('alert-hidden', () => {
423
+ console.log('Alert is now hidden');
424
+ // Clean up or remove from DOM
425
+ alert.remove();
426
+ });
427
+ ```
428
+
429
+ ### API Response Alerts
430
+
431
+ ```html
432
+ <snice-alert id="api-alert" style="display: none;"></snice-alert>
433
+
434
+ <button onclick="makeApiCall()">Make API Call</button>
435
+
436
+ <script type="module">
437
+ import type { SniceAlertElement } from 'snice/components/alert/snice-alert.types';
438
+
439
+ window.makeApiCall = async () => {
440
+ const alert = document.getElementById('api-alert') as SniceAlertElement;
441
+
442
+ try {
443
+ const response = await fetch('/api/data');
444
+
445
+ if (!response.ok) {
446
+ throw new Error(`HTTP error! status: ${response.status}`);
447
+ }
448
+
449
+ const data = await response.json();
450
+
451
+ alert.variant = 'success';
452
+ alert.title = 'Success!';
453
+ alert.textContent = 'Data loaded successfully.';
454
+ alert.dismissible = true;
455
+ alert.style.display = 'block';
456
+ alert.show();
457
+
458
+ } catch (error) {
459
+ alert.variant = 'error';
460
+ alert.title = 'Error';
461
+ alert.textContent = `Failed to load data: ${error.message}`;
462
+ alert.dismissible = true;
463
+ alert.style.display = 'block';
464
+ alert.show();
465
+ }
466
+ };
467
+ </script>
468
+ ```
469
+
470
+ ## Accessibility
471
+
472
+ - **ARIA role**: `alert` role with `aria-live="polite"` for screen reader announcements
473
+ - **Keyboard support**: Dismiss button is keyboard accessible
474
+ - **Color contrast**: All variants meet WCAG AA standards
475
+ - **Screen reader friendly**: Content is properly announced
476
+ - **Focus management**: Dismiss button receives proper focus
477
+
478
+ ## Browser Support
479
+
480
+ - Modern browsers (Chrome, Firefox, Safari, Edge)
481
+ - Requires Custom Elements v1 and Shadow DOM support
482
+
483
+ ## Best Practices
484
+
485
+ 1. **Choose appropriate variants**: Use semantic variants that match the message type
486
+ 2. **Keep messages concise**: Short, clear messages are more effective
487
+ 3. **Use titles for context**: Titles help users quickly understand the alert type
488
+ 4. **Make important alerts dismissible**: Allow users to close alerts they've read
489
+ 5. **Auto-dismiss when appropriate**: Consider auto-dismissing success messages
490
+ 6. **Position alerts appropriately**: Place alerts near related content or in a notification area
491
+ 7. **Don't overuse**: Too many alerts can overwhelm users
492
+ 8. **Provide actionable information**: Include next steps or actions when relevant
493
+ 9. **Test with screen readers**: Ensure alerts are announced properly
494
+ 10. **Handle multiple alerts**: Stack or queue alerts to avoid overwhelming users
495
+
496
+ ## Common Patterns
497
+
498
+ ### Success Pattern
499
+ ```html
500
+ <snice-alert variant="success" title="Success!" dismissible>
501
+ Your changes have been saved.
502
+ </snice-alert>
503
+ ```
504
+
505
+ ### Error Pattern
506
+ ```html
507
+ <snice-alert variant="error" title="Error" dismissible>
508
+ Unable to save changes. Please try again.
509
+ </snice-alert>
510
+ ```
511
+
512
+ ### Warning Pattern
513
+ ```html
514
+ <snice-alert variant="warning" title="Warning">
515
+ This action cannot be undone.
516
+ </snice-alert>
517
+ ```
518
+
519
+ ### Info Pattern
520
+ ```html
521
+ <snice-alert variant="info" title="Information">
522
+ New features are available in this update.
523
+ </snice-alert>
524
+ ```
525
+
526
+ ### Inline Form Validation
527
+ ```html
528
+ <snice-alert variant="error" size="small">
529
+ Please enter a valid email address.
530
+ </snice-alert>
531
+ ```
532
+
533
+ ## Variant Colors
534
+
535
+ | Variant | Color Scheme | Use Case |
536
+ |---------|-------------|----------|
537
+ | `info` | Blue | General information, tips, updates |
538
+ | `success` | Green | Successful operations, confirmations |
539
+ | `warning` | Orange | Cautions, important notices |
540
+ | `error` | Red | Errors, failed operations, critical issues |
@@ -0,0 +1,152 @@
1
+ # Audio Recorder Component
2
+
3
+ Record audio with visualization, pause/resume, and playback.
4
+
5
+ ## Basic Usage
6
+
7
+ ```html
8
+ <snice-audio-recorder id="recorder"></snice-audio-recorder>
9
+
10
+ <script>
11
+ const recorder = document.getElementById('recorder');
12
+
13
+ // Listen for stop event
14
+ recorder.addEventListener('@snice/recorder-stop', async () => {
15
+ // Recording complete
16
+ });
17
+ </script>
18
+ ```
19
+
20
+ ## Properties
21
+
22
+ | Property | Type | Default | Description |
23
+ |----------|------|---------|-------------|
24
+ | `autoStart` | `boolean` | `false` | Auto-start recording |
25
+ | `format` | `AudioFormat` | `'audio/webm'` | Output format |
26
+ | `bitrate` | `number` | `128000` | Audio bitrate (bps) |
27
+ | `showControls` | `boolean` | `true` | Show control buttons |
28
+ | `showVisualizer` | `boolean` | `true` | Show frequency visualizer |
29
+ | `maxDuration` | `number` | `0` | Max duration (seconds, 0=unlimited) |
30
+ | `showTimer` | `boolean` | `true` | Show recording timer |
31
+
32
+ ## Audio Formats
33
+
34
+ - `'audio/webm'` - WebM (default)
35
+ - `'audio/ogg'` - Ogg Vorbis
36
+ - `'audio/mp4'` - MP4/AAC
37
+ - `'audio/wav'` - WAV (uncompressed)
38
+
39
+ ## Methods
40
+
41
+ ### `start(): Promise<void>`
42
+ Start recording.
43
+
44
+ ### `stop(): Promise<AudioRecording>`
45
+ Stop and return recording.
46
+
47
+ ### `pause(): void`
48
+ Pause recording.
49
+
50
+ ### `resume(): void`
51
+ Resume paused recording.
52
+
53
+ ### `cancel(): void`
54
+ Cancel and discard recording.
55
+
56
+ ### `getState(): RecorderState`
57
+ Get current state ('inactive', 'recording', 'paused').
58
+
59
+ ### `getDuration(): number`
60
+ Get recording duration in seconds.
61
+
62
+ ### `isRecording(): boolean`
63
+ Check if currently recording.
64
+
65
+ ### `download(filename?): void`
66
+ Download recorded audio.
67
+
68
+ ## Events
69
+
70
+ - `@snice/recorder-start` - Recording started
71
+ - `@snice/recorder-stop` - Recording stopped
72
+ - `@snice/recorder-pause` - Recording paused
73
+ - `@snice/recorder-resume` - Recording resumed
74
+ - `@snice/recorder-cancel` - Recording cancelled
75
+ - `@snice/recorder-error` - Error occurred
76
+
77
+ ## Examples
78
+
79
+ ### Basic Recording
80
+
81
+ ```javascript
82
+ const recorder = document.querySelector('snice-audio-recorder');
83
+
84
+ // Start
85
+ await recorder.start();
86
+
87
+ // Stop and get recording
88
+ const recording = await recorder.stop();
89
+ console.log(recording.url, recording.duration, recording.size);
90
+ ```
91
+
92
+ ### Auto-start
93
+
94
+ ```html
95
+ <snice-audio-recorder auto-start></snice-audio-recorder>
96
+ ```
97
+
98
+ ### Custom Format
99
+
100
+ ```html
101
+ <snice-audio-recorder
102
+ format="audio/mp4"
103
+ bitrate="256000">
104
+ </snice-audio-recorder>
105
+ ```
106
+
107
+ ### Max Duration
108
+
109
+ ```html
110
+ <snice-audio-recorder max-duration="60"></snice-audio-recorder>
111
+ ```
112
+
113
+ ### Download Recording
114
+
115
+ ```javascript
116
+ const recording = await recorder.stop();
117
+ recorder.download('my-recording.webm');
118
+ ```
119
+
120
+ ### Upload to Server
121
+
122
+ ```javascript
123
+ const recording = await recorder.stop();
124
+
125
+ const formData = new FormData();
126
+ formData.append('audio', recording.blob, 'recording.webm');
127
+ await fetch('/upload', { method: 'POST', body: formData });
128
+ ```
129
+
130
+ ## AudioRecording Interface
131
+
132
+ ```typescript
133
+ interface AudioRecording {
134
+ blob: Blob;
135
+ url: string;
136
+ duration: number;
137
+ size: number;
138
+ format: string;
139
+ timestamp: number;
140
+ }
141
+ ```
142
+
143
+ ## Security
144
+
145
+ - Requires HTTPS (or localhost)
146
+ - Requires user permission
147
+ - Permission prompts are browser-controlled
148
+
149
+ ## Browser Support
150
+
151
+ - Modern browsers with MediaRecorder API
152
+ - Requires microphone hardware