snice 3.2.0 → 3.3.1

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 (413) hide show
  1. package/bin/templates/base/src/components/counter-button.ts +2 -2
  2. package/bin/templates/base/src/pages/about-page.ts +8 -5
  3. package/bin/templates/base/src/pages/home-page.ts +9 -6
  4. package/bin/templates/base/src/pages/not-found-page.ts +7 -4
  5. package/dist/components/accordion/snice-accordion-item.d.ts +2 -2
  6. package/dist/components/accordion/snice-accordion-item.js +9 -9
  7. package/dist/components/accordion/snice-accordion-item.js.map +1 -1
  8. package/dist/components/accordion/snice-accordion.d.ts +2 -2
  9. package/dist/components/accordion/snice-accordion.js +9 -9
  10. package/dist/components/accordion/snice-accordion.js.map +1 -1
  11. package/dist/components/actions/snice-actions.d.ts +28 -0
  12. package/dist/components/actions/snice-actions.js +220 -0
  13. package/dist/components/actions/snice-actions.js.map +1 -0
  14. package/dist/components/actions/snice-actions.types.d.ts +27 -0
  15. package/dist/components/alert/snice-alert.d.ts +2 -2
  16. package/dist/components/alert/snice-alert.js +8 -8
  17. package/dist/components/alert/snice-alert.js.map +1 -1
  18. package/dist/components/audio-recorder/snice-audio-recorder.d.ts +58 -0
  19. package/dist/components/audio-recorder/snice-audio-recorder.js +413 -0
  20. package/dist/components/audio-recorder/snice-audio-recorder.js.map +1 -0
  21. package/dist/components/audio-recorder/snice-audio-recorder.types.d.ts +28 -0
  22. package/dist/components/avatar/snice-avatar.d.ts +2 -2
  23. package/dist/components/avatar/snice-avatar.js +9 -9
  24. package/dist/components/avatar/snice-avatar.js.map +1 -1
  25. package/dist/components/badge/snice-badge.d.ts +2 -2
  26. package/dist/components/badge/snice-badge.js +10 -10
  27. package/dist/components/badge/snice-badge.js.map +1 -1
  28. package/dist/components/banner/snice-banner.d.ts +2 -2
  29. package/dist/components/banner/snice-banner.js +8 -8
  30. package/dist/components/banner/snice-banner.js.map +1 -1
  31. package/dist/components/breadcrumbs/snice-breadcrumbs.d.ts +2 -2
  32. package/dist/components/breadcrumbs/snice-breadcrumbs.js +11 -11
  33. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  34. package/dist/components/button/snice-button.d.ts +2 -2
  35. package/dist/components/button/snice-button.js +8 -8
  36. package/dist/components/button/snice-button.js.map +1 -1
  37. package/dist/components/calendar/snice-calendar.d.ts +46 -0
  38. package/dist/components/calendar/snice-calendar.js +294 -0
  39. package/dist/components/calendar/snice-calendar.js.map +1 -0
  40. package/dist/components/calendar/snice-calendar.types.d.ts +34 -0
  41. package/dist/components/camera/snice-camera.d.ts +39 -0
  42. package/dist/components/camera/snice-camera.js +286 -0
  43. package/dist/components/camera/snice-camera.js.map +1 -0
  44. package/dist/components/camera/snice-camera.types.d.ts +28 -0
  45. package/dist/components/card/snice-card.d.ts +2 -2
  46. package/dist/components/card/snice-card.js +9 -9
  47. package/dist/components/card/snice-card.js.map +1 -1
  48. package/dist/components/carousel/snice-carousel.d.ts +32 -0
  49. package/dist/components/carousel/snice-carousel.js +279 -0
  50. package/dist/components/carousel/snice-carousel.js.map +1 -0
  51. package/dist/components/carousel/snice-carousel.types.d.ts +22 -0
  52. package/dist/components/chart/snice-chart.d.ts +73 -0
  53. package/dist/components/chart/snice-chart.js +946 -0
  54. package/dist/components/chart/snice-chart.js.map +1 -0
  55. package/dist/components/chart/snice-chart.types.d.ts +71 -0
  56. package/dist/components/chat/snice-chat.d.ts +98 -0
  57. package/dist/components/chat/snice-chat.js +589 -0
  58. package/dist/components/chat/snice-chat.js.map +1 -0
  59. package/dist/components/chat/snice-chat.types.d.ts +141 -0
  60. package/dist/components/checkbox/snice-checkbox.d.ts +2 -2
  61. package/dist/components/checkbox/snice-checkbox.js +8 -8
  62. package/dist/components/checkbox/snice-checkbox.js.map +1 -1
  63. package/dist/components/chip/snice-chip.d.ts +2 -2
  64. package/dist/components/chip/snice-chip.js +8 -8
  65. package/dist/components/chip/snice-chip.js.map +1 -1
  66. package/dist/components/code-block/snice-code-block.d.ts +15 -0
  67. package/dist/components/code-block/snice-code-block.js +141 -0
  68. package/dist/components/code-block/snice-code-block.js.map +1 -0
  69. package/dist/components/code-block/snice-code-block.types.d.ts +15 -0
  70. package/dist/components/color-display/snice-color-display.d.ts +2 -2
  71. package/dist/components/color-display/snice-color-display.js +10 -10
  72. package/dist/components/color-display/snice-color-display.js.map +1 -1
  73. package/dist/components/color-picker/snice-color-picker.d.ts +2 -2
  74. package/dist/components/color-picker/snice-color-picker.js +8 -8
  75. package/dist/components/color-picker/snice-color-picker.js.map +1 -1
  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 +9 -9
  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 +10 -10
  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 +2 -2
  98. package/dist/components/empty-state/snice-empty-state.js +8 -8
  99. package/dist/components/empty-state/snice-empty-state.js.map +1 -1
  100. package/dist/components/file-upload/snice-file-upload.d.ts +2 -3
  101. package/dist/components/file-upload/snice-file-upload.js +8 -15
  102. package/dist/components/file-upload/snice-file-upload.js.map +1 -1
  103. package/dist/components/gantt/snice-gantt.d.ts +29 -0
  104. package/dist/components/gantt/snice-gantt.js +268 -0
  105. package/dist/components/gantt/snice-gantt.js.map +1 -0
  106. package/dist/components/gantt/snice-gantt.types.d.ts +23 -0
  107. package/dist/components/image/snice-image.d.ts +2 -2
  108. package/dist/components/image/snice-image.js +11 -11
  109. package/dist/components/image/snice-image.js.map +1 -1
  110. package/dist/components/input/snice-input.d.ts +2 -2
  111. package/dist/components/input/snice-input.js +8 -8
  112. package/dist/components/input/snice-input.js.map +1 -1
  113. package/dist/components/kanban/snice-kanban.d.ts +31 -0
  114. package/dist/components/kanban/snice-kanban.js +243 -0
  115. package/dist/components/kanban/snice-kanban.js.map +1 -0
  116. package/dist/components/kanban/snice-kanban.types.d.ts +29 -0
  117. package/dist/components/kpi/snice-kpi.d.ts +2 -2
  118. package/dist/components/kpi/snice-kpi.js +11 -11
  119. package/dist/components/kpi/snice-kpi.js.map +1 -1
  120. package/dist/components/layout/snice-layout-blog.d.ts +2 -2
  121. package/dist/components/layout/snice-layout-blog.js +8 -8
  122. package/dist/components/layout/snice-layout-blog.js.map +1 -1
  123. package/dist/components/layout/snice-layout-card.d.ts +2 -2
  124. package/dist/components/layout/snice-layout-card.js +8 -8
  125. package/dist/components/layout/snice-layout-card.js.map +1 -1
  126. package/dist/components/layout/snice-layout-centered.d.ts +2 -2
  127. package/dist/components/layout/snice-layout-centered.js +8 -8
  128. package/dist/components/layout/snice-layout-centered.js.map +1 -1
  129. package/dist/components/layout/snice-layout-dashboard.d.ts +2 -2
  130. package/dist/components/layout/snice-layout-dashboard.js +8 -8
  131. package/dist/components/layout/snice-layout-dashboard.js.map +1 -1
  132. package/dist/components/layout/snice-layout-fullscreen.d.ts +2 -2
  133. package/dist/components/layout/snice-layout-fullscreen.js +8 -8
  134. package/dist/components/layout/snice-layout-fullscreen.js.map +1 -1
  135. package/dist/components/layout/snice-layout-landing.d.ts +2 -2
  136. package/dist/components/layout/snice-layout-landing.js +8 -8
  137. package/dist/components/layout/snice-layout-landing.js.map +1 -1
  138. package/dist/components/layout/snice-layout-minimal.d.ts +2 -2
  139. package/dist/components/layout/snice-layout-minimal.js +8 -8
  140. package/dist/components/layout/snice-layout-minimal.js.map +1 -1
  141. package/dist/components/layout/snice-layout-sidebar.d.ts +2 -2
  142. package/dist/components/layout/snice-layout-sidebar.js +8 -8
  143. package/dist/components/layout/snice-layout-sidebar.js.map +1 -1
  144. package/dist/components/layout/snice-layout-split.d.ts +2 -2
  145. package/dist/components/layout/snice-layout-split.js +8 -8
  146. package/dist/components/layout/snice-layout-split.js.map +1 -1
  147. package/dist/components/layout/snice-layout.d.ts +2 -2
  148. package/dist/components/layout/snice-layout.js +8 -8
  149. package/dist/components/layout/snice-layout.js.map +1 -1
  150. package/dist/components/link/snice-link.d.ts +2 -2
  151. package/dist/components/link/snice-link.js +10 -10
  152. package/dist/components/link/snice-link.js.map +1 -1
  153. package/dist/components/list/snice-list-item.d.ts +6 -0
  154. package/dist/components/list/snice-list-item.js +68 -0
  155. package/dist/components/list/snice-list-item.js.map +1 -0
  156. package/dist/components/list/snice-list.d.ts +23 -0
  157. package/dist/components/list/snice-list.js +276 -0
  158. package/dist/components/list/snice-list.js.map +1 -0
  159. package/dist/components/list/snice-list.types.d.ts +10 -0
  160. package/dist/components/location/snice-location.d.ts +35 -0
  161. package/dist/components/location/snice-location.js +238 -0
  162. package/dist/components/location/snice-location.js.map +1 -0
  163. package/dist/components/location/snice-location.types.d.ts +35 -0
  164. package/dist/components/login/snice-login.d.ts +2 -2
  165. package/dist/components/login/snice-login.js +8 -8
  166. package/dist/components/login/snice-login.js.map +1 -1
  167. package/dist/components/menu/snice-menu-divider.d.ts +4 -0
  168. package/dist/components/menu/snice-menu-divider.js +53 -0
  169. package/dist/components/menu/snice-menu-divider.js.map +1 -0
  170. package/dist/components/menu/snice-menu-item.d.ts +10 -0
  171. package/dist/components/menu/snice-menu-item.js +99 -0
  172. package/dist/components/menu/snice-menu-item.js.map +1 -0
  173. package/dist/components/menu/snice-menu-item.types.d.ts +9 -0
  174. package/dist/components/menu/snice-menu.d.ts +27 -0
  175. package/dist/components/menu/snice-menu.js +199 -0
  176. package/dist/components/menu/snice-menu.js.map +1 -0
  177. package/dist/components/menu/snice-menu.types.d.ts +18 -0
  178. package/dist/components/modal/snice-modal.d.ts +2 -2
  179. package/dist/components/modal/snice-modal.js +8 -8
  180. package/dist/components/modal/snice-modal.js.map +1 -1
  181. package/dist/components/nav/snice-nav.js.map +1 -1
  182. package/dist/components/pagination/snice-pagination.d.ts +2 -2
  183. package/dist/components/pagination/snice-pagination.js +8 -8
  184. package/dist/components/pagination/snice-pagination.js.map +1 -1
  185. package/dist/components/progress/snice-progress.d.ts +2 -2
  186. package/dist/components/progress/snice-progress.js +10 -10
  187. package/dist/components/progress/snice-progress.js.map +1 -1
  188. package/dist/components/qr-code/qrcode.d.ts +28 -0
  189. package/dist/components/qr-code/qrcode.js +916 -0
  190. package/dist/components/qr-code/qrcode.js.map +1 -0
  191. package/dist/components/qr-code/snice-qr-code.d.ts +35 -0
  192. package/dist/components/qr-code/snice-qr-code.js +263 -0
  193. package/dist/components/qr-code/snice-qr-code.js.map +1 -0
  194. package/dist/components/qr-code/snice-qr-code.types.d.ts +33 -0
  195. package/dist/components/radio/snice-radio.d.ts +2 -2
  196. package/dist/components/radio/snice-radio.js +8 -8
  197. package/dist/components/radio/snice-radio.js.map +1 -1
  198. package/dist/components/select/snice-option.d.ts +2 -2
  199. package/dist/components/select/snice-option.js +8 -8
  200. package/dist/components/select/snice-option.js.map +1 -1
  201. package/dist/components/select/snice-select.d.ts +2 -2
  202. package/dist/components/select/snice-select.js +9 -9
  203. package/dist/components/select/snice-select.js.map +1 -1
  204. package/dist/components/skeleton/snice-skeleton.d.ts +2 -2
  205. package/dist/components/skeleton/snice-skeleton.js +9 -9
  206. package/dist/components/skeleton/snice-skeleton.js.map +1 -1
  207. package/dist/components/slider/snice-slider.d.ts +2 -2
  208. package/dist/components/slider/snice-slider.js +8 -8
  209. package/dist/components/slider/snice-slider.js.map +1 -1
  210. package/dist/components/sparkline/snice-sparkline.d.ts +2 -2
  211. package/dist/components/sparkline/snice-sparkline.js +10 -10
  212. package/dist/components/sparkline/snice-sparkline.js.map +1 -1
  213. package/dist/components/spinner/snice-spinner.d.ts +2 -2
  214. package/dist/components/spinner/snice-spinner.js +10 -10
  215. package/dist/components/spinner/snice-spinner.js.map +1 -1
  216. package/dist/components/split-pane/snice-split-pane.d.ts +32 -0
  217. package/dist/components/split-pane/snice-split-pane.js +191 -0
  218. package/dist/components/split-pane/snice-split-pane.js.map +1 -0
  219. package/dist/components/split-pane/snice-split-pane.types.d.ts +19 -0
  220. package/dist/components/stat/snice-stat.d.ts +14 -0
  221. package/dist/components/stat/snice-stat.js +140 -0
  222. package/dist/components/stat/snice-stat.js.map +1 -0
  223. package/dist/components/stat/snice-stat.types.d.ts +12 -0
  224. package/dist/components/stepper/snice-stepper-panel.d.ts +2 -2
  225. package/dist/components/stepper/snice-stepper-panel.js +10 -10
  226. package/dist/components/stepper/snice-stepper-panel.js.map +1 -1
  227. package/dist/components/stepper/snice-stepper.d.ts +2 -2
  228. package/dist/components/stepper/snice-stepper.js +11 -11
  229. package/dist/components/stepper/snice-stepper.js.map +1 -1
  230. package/dist/components/switch/snice-switch.d.ts +2 -2
  231. package/dist/components/switch/snice-switch.js +8 -8
  232. package/dist/components/switch/snice-switch.js.map +1 -1
  233. package/dist/components/table/snice-cell-actions.d.ts +2 -2
  234. package/dist/components/table/snice-cell-actions.js +8 -8
  235. package/dist/components/table/snice-cell-actions.js.map +1 -1
  236. package/dist/components/table/snice-cell-boolean.d.ts +2 -2
  237. package/dist/components/table/snice-cell-boolean.js +8 -8
  238. package/dist/components/table/snice-cell-boolean.js.map +1 -1
  239. package/dist/components/table/snice-cell-color.d.ts +2 -2
  240. package/dist/components/table/snice-cell-color.js +8 -8
  241. package/dist/components/table/snice-cell-color.js.map +1 -1
  242. package/dist/components/table/snice-cell-currency.d.ts +2 -2
  243. package/dist/components/table/snice-cell-currency.js +8 -8
  244. package/dist/components/table/snice-cell-currency.js.map +1 -1
  245. package/dist/components/table/snice-cell-date.d.ts +2 -2
  246. package/dist/components/table/snice-cell-date.js +8 -8
  247. package/dist/components/table/snice-cell-date.js.map +1 -1
  248. package/dist/components/table/snice-cell-duration.d.ts +2 -2
  249. package/dist/components/table/snice-cell-duration.js +8 -8
  250. package/dist/components/table/snice-cell-duration.js.map +1 -1
  251. package/dist/components/table/snice-cell-email.d.ts +2 -2
  252. package/dist/components/table/snice-cell-email.js +8 -8
  253. package/dist/components/table/snice-cell-email.js.map +1 -1
  254. package/dist/components/table/snice-cell-filesize.d.ts +2 -2
  255. package/dist/components/table/snice-cell-filesize.js +8 -8
  256. package/dist/components/table/snice-cell-filesize.js.map +1 -1
  257. package/dist/components/table/snice-cell-image.d.ts +2 -2
  258. package/dist/components/table/snice-cell-image.js +8 -8
  259. package/dist/components/table/snice-cell-image.js.map +1 -1
  260. package/dist/components/table/snice-cell-json.d.ts +2 -2
  261. package/dist/components/table/snice-cell-json.js +8 -8
  262. package/dist/components/table/snice-cell-json.js.map +1 -1
  263. package/dist/components/table/snice-cell-link.d.ts +2 -2
  264. package/dist/components/table/snice-cell-link.js +8 -8
  265. package/dist/components/table/snice-cell-link.js.map +1 -1
  266. package/dist/components/table/snice-cell-location.d.ts +2 -2
  267. package/dist/components/table/snice-cell-location.js +8 -8
  268. package/dist/components/table/snice-cell-location.js.map +1 -1
  269. package/dist/components/table/snice-cell-number.d.ts +2 -2
  270. package/dist/components/table/snice-cell-number.js +8 -8
  271. package/dist/components/table/snice-cell-number.js.map +1 -1
  272. package/dist/components/table/snice-cell-percentage.d.ts +2 -2
  273. package/dist/components/table/snice-cell-percentage.js +8 -8
  274. package/dist/components/table/snice-cell-percentage.js.map +1 -1
  275. package/dist/components/table/snice-cell-phone.d.ts +2 -2
  276. package/dist/components/table/snice-cell-phone.js +8 -8
  277. package/dist/components/table/snice-cell-phone.js.map +1 -1
  278. package/dist/components/table/snice-cell-progress.d.ts +2 -2
  279. package/dist/components/table/snice-cell-progress.js +8 -8
  280. package/dist/components/table/snice-cell-progress.js.map +1 -1
  281. package/dist/components/table/snice-cell-rating.d.ts +2 -2
  282. package/dist/components/table/snice-cell-rating.js +8 -8
  283. package/dist/components/table/snice-cell-rating.js.map +1 -1
  284. package/dist/components/table/snice-cell-sparkline.d.ts +2 -2
  285. package/dist/components/table/snice-cell-sparkline.js +8 -8
  286. package/dist/components/table/snice-cell-sparkline.js.map +1 -1
  287. package/dist/components/table/snice-cell-status.d.ts +2 -2
  288. package/dist/components/table/snice-cell-status.js +8 -8
  289. package/dist/components/table/snice-cell-status.js.map +1 -1
  290. package/dist/components/table/snice-cell-tag.d.ts +2 -2
  291. package/dist/components/table/snice-cell-tag.js +8 -8
  292. package/dist/components/table/snice-cell-tag.js.map +1 -1
  293. package/dist/components/table/snice-cell-text.d.ts +2 -2
  294. package/dist/components/table/snice-cell-text.js +8 -8
  295. package/dist/components/table/snice-cell-text.js.map +1 -1
  296. package/dist/components/table/snice-cell.d.ts +2 -2
  297. package/dist/components/table/snice-cell.js +8 -8
  298. package/dist/components/table/snice-cell.js.map +1 -1
  299. package/dist/components/table/snice-column.d.ts +1 -1
  300. package/dist/components/table/snice-column.js +4 -4
  301. package/dist/components/table/snice-column.js.map +1 -1
  302. package/dist/components/table/snice-header.d.ts +2 -2
  303. package/dist/components/table/snice-header.js +8 -8
  304. package/dist/components/table/snice-header.js.map +1 -1
  305. package/dist/components/table/snice-progress.d.ts +2 -2
  306. package/dist/components/table/snice-progress.js +8 -8
  307. package/dist/components/table/snice-progress.js.map +1 -1
  308. package/dist/components/table/snice-rating.d.ts +2 -2
  309. package/dist/components/table/snice-rating.js +8 -8
  310. package/dist/components/table/snice-rating.js.map +1 -1
  311. package/dist/components/table/snice-row.d.ts +2 -2
  312. package/dist/components/table/snice-row.js +8 -8
  313. package/dist/components/table/snice-row.js.map +1 -1
  314. package/dist/components/table/snice-table.d.ts +2 -3
  315. package/dist/components/table/snice-table.js +8 -13
  316. package/dist/components/table/snice-table.js.map +1 -1
  317. package/dist/components/tabs/snice-tab-panel.d.ts +2 -2
  318. package/dist/components/tabs/snice-tab-panel.js +8 -8
  319. package/dist/components/tabs/snice-tab-panel.js.map +1 -1
  320. package/dist/components/tabs/snice-tab.d.ts +2 -2
  321. package/dist/components/tabs/snice-tab.js +8 -8
  322. package/dist/components/tabs/snice-tab.js.map +1 -1
  323. package/dist/components/tabs/snice-tabs.d.ts +2 -2
  324. package/dist/components/tabs/snice-tabs.js +8 -8
  325. package/dist/components/tabs/snice-tabs.js.map +1 -1
  326. package/dist/components/terminal/snice-terminal.types.d.ts +133 -0
  327. package/dist/components/textarea/snice-textarea.d.ts +2 -2
  328. package/dist/components/textarea/snice-textarea.js +8 -8
  329. package/dist/components/textarea/snice-textarea.js.map +1 -1
  330. package/dist/components/timeline/snice-timeline.d.ts +1 -1
  331. package/dist/components/timeline/snice-timeline.js +7 -7
  332. package/dist/components/timeline/snice-timeline.js.map +1 -1
  333. package/dist/components/toast/snice-toast-container.d.ts +2 -2
  334. package/dist/components/toast/snice-toast-container.js +8 -8
  335. package/dist/components/toast/snice-toast-container.js.map +1 -1
  336. package/dist/components/toast/snice-toast.d.ts +2 -2
  337. package/dist/components/toast/snice-toast.js +8 -8
  338. package/dist/components/toast/snice-toast.js.map +1 -1
  339. package/dist/components/tooltip/snice-tooltip.d.ts +2 -2
  340. package/dist/components/tooltip/snice-tooltip.js +8 -8
  341. package/dist/components/tooltip/snice-tooltip.js.map +1 -1
  342. package/dist/components/tree/snice-tree-item.d.ts +35 -0
  343. package/dist/components/tree/snice-tree-item.js +301 -0
  344. package/dist/components/tree/snice-tree-item.js.map +1 -0
  345. package/dist/components/tree/snice-tree-item.types.d.ts +30 -0
  346. package/dist/components/tree/snice-tree.d.ts +45 -0
  347. package/dist/components/tree/snice-tree.js +390 -0
  348. package/dist/components/tree/snice-tree.js.map +1 -0
  349. package/dist/components/tree/snice-tree.types.d.ts +65 -0
  350. package/dist/components/virtual-scroller/snice-virtual-scroller.d.ts +31 -0
  351. package/dist/components/virtual-scroller/snice-virtual-scroller.js +160 -0
  352. package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -0
  353. package/dist/components/virtual-scroller/snice-virtual-scroller.types.d.ts +19 -0
  354. package/dist/index.cjs +1 -1
  355. package/dist/index.esm.js +1 -1
  356. package/dist/index.iife.js +1 -1
  357. package/dist/symbols.cjs +1 -1
  358. package/dist/symbols.esm.js +1 -1
  359. package/dist/transitions.cjs +1 -1
  360. package/dist/transitions.esm.js +1 -1
  361. package/docs/ai/components/actions.md +81 -0
  362. package/docs/ai/components/audio-recorder.md +97 -0
  363. package/docs/ai/components/calendar.md +95 -0
  364. package/docs/ai/components/camera.md +130 -0
  365. package/docs/ai/components/carousel.md +49 -0
  366. package/docs/ai/components/chart.md +160 -0
  367. package/docs/ai/components/chat.md +189 -0
  368. package/docs/ai/components/code-block.md +32 -0
  369. package/docs/ai/components/command-palette.md +117 -0
  370. package/docs/ai/components/doc.md +154 -0
  371. package/docs/ai/components/draw.md +140 -0
  372. package/docs/ai/components/gantt.md +95 -0
  373. package/docs/ai/components/kanban.md +102 -0
  374. package/docs/ai/components/layout.md +261 -0
  375. package/docs/ai/components/list.md +50 -0
  376. package/docs/ai/components/location.md +75 -0
  377. package/docs/ai/components/menu.md +114 -0
  378. package/docs/ai/components/popover.md +70 -0
  379. package/docs/ai/components/qr-code.md +106 -0
  380. package/docs/ai/components/split-pane.md +71 -0
  381. package/docs/ai/components/stat.md +29 -0
  382. package/docs/ai/components/tree.md +191 -0
  383. package/docs/ai/components/virtual-scroller.md +71 -0
  384. package/docs/components/actions.md +317 -0
  385. package/docs/components/alert.md +540 -0
  386. package/docs/components/audio-recorder.md +152 -0
  387. package/docs/components/badge.md +593 -0
  388. package/docs/components/breadcrumbs.md +568 -0
  389. package/docs/components/button.md +648 -0
  390. package/docs/components/calendar.md +397 -0
  391. package/docs/components/camera.md +383 -0
  392. package/docs/components/card.md +778 -0
  393. package/docs/components/carousel.md +63 -0
  394. package/docs/components/chart.md +526 -0
  395. package/docs/components/chat.md +482 -0
  396. package/docs/components/checkbox.md +714 -0
  397. package/docs/components/chip.md +670 -0
  398. package/docs/components/code-block.md +49 -0
  399. package/docs/components/command-palette.md +159 -0
  400. package/docs/components/doc.md +357 -0
  401. package/docs/components/draw.md +307 -0
  402. package/docs/components/gantt.md +347 -0
  403. package/docs/components/kanban.md +410 -0
  404. package/docs/components/list.md +65 -0
  405. package/docs/components/location.md +369 -0
  406. package/docs/components/menu.md +633 -0
  407. package/docs/components/popover.md +333 -0
  408. package/docs/components/qr-code.md +464 -0
  409. package/docs/components/split-pane.md +315 -0
  410. package/docs/components/stat.md +45 -0
  411. package/docs/components/tree.md +536 -0
  412. package/docs/components/virtual-scroller.md +298 -0
  413. package/package.json +1 -1
@@ -0,0 +1,114 @@
1
+ # snice-menu
2
+
3
+ Dropdown menu with items, dividers, and configurable trigger behavior.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ open: boolean = false;
9
+ placement: 'bottom-start'|'bottom-end'|'top-start'|'top-end'|'right-start'|'right-end'|'left-start'|'left-end' = 'bottom-start';
10
+ trigger: 'click'|'hover'|'manual' = 'click';
11
+ closeOnSelect: boolean = true;
12
+ distance: number = 4;
13
+ ```
14
+
15
+ ## Methods
16
+
17
+ - `openMenu()` - Open the menu
18
+ - `closeMenu()` - Close the menu
19
+ - `toggleMenu()` - Toggle menu open/closed state
20
+
21
+ ## Slots
22
+
23
+ - `trigger` - Element that triggers the menu (required)
24
+ - Default slot - Menu items and dividers
25
+
26
+ ## Events
27
+
28
+ - `@snice/menu-open` - Fired when menu opens (detail: { menu: SniceMenuElement })
29
+ - `@snice/menu-close` - Fired when menu closes (detail: { menu: SniceMenuElement })
30
+
31
+ ## Usage
32
+
33
+ ```html
34
+ <!-- Basic menu -->
35
+ <snice-menu>
36
+ <button slot="trigger">Open Menu</button>
37
+ <snice-menu-item value="new">New File</snice-menu-item>
38
+ <snice-menu-item value="open">Open</snice-menu-item>
39
+ <snice-menu-divider></snice-menu-divider>
40
+ <snice-menu-item value="save">Save</snice-menu-item>
41
+ </snice-menu>
42
+
43
+ <!-- With icons and shortcuts -->
44
+ <snice-menu>
45
+ <button slot="trigger">Edit</button>
46
+ <snice-menu-item value="cut">
47
+ <span slot="icon">✂️</span>
48
+ Cut
49
+ <span slot="shortcut">⌘X</span>
50
+ </snice-menu-item>
51
+ <snice-menu-item value="copy">
52
+ <span slot="icon">📋</span>
53
+ Copy
54
+ <span slot="shortcut">⌘C</span>
55
+ </snice-menu-item>
56
+ <snice-menu-item value="paste">
57
+ <span slot="icon">📄</span>
58
+ Paste
59
+ <span slot="shortcut">⌘V</span>
60
+ </snice-menu-item>
61
+ </snice-menu>
62
+
63
+ <!-- Different placements -->
64
+ <snice-menu placement="top-start">...</snice-menu>
65
+ <snice-menu placement="right-start">...</snice-menu>
66
+
67
+ <!-- Hover trigger -->
68
+ <snice-menu trigger="hover">...</snice-menu>
69
+
70
+ <!-- Manual control -->
71
+ <snice-menu trigger="manual" id="my-menu">...</snice-menu>
72
+ <script>
73
+ document.getElementById('my-menu').openMenu();
74
+ </script>
75
+
76
+ <!-- Keep open on select -->
77
+ <snice-menu close-on-select="false">...</snice-menu>
78
+ ```
79
+
80
+ ## snice-menu-item
81
+
82
+ ### Properties
83
+
84
+ ```typescript
85
+ value: string = '';
86
+ disabled: boolean = false;
87
+ selected: boolean = false;
88
+ ```
89
+
90
+ ### Slots
91
+
92
+ - `icon` - Icon before label
93
+ - Default slot - Item label
94
+ - `shortcut` - Keyboard shortcut text
95
+
96
+ ### Events
97
+
98
+ - `@snice/menu-item-select` - Fired when item is clicked (detail: { item: SniceMenuItemElement, value: string })
99
+
100
+ ## snice-menu-divider
101
+
102
+ Visual separator between menu items.
103
+
104
+ ## Features
105
+
106
+ - 8 placement options
107
+ - Click, hover, or manual trigger modes
108
+ - Auto-close on item selection (configurable)
109
+ - Auto-close on outside click
110
+ - Icon and shortcut support
111
+ - Disabled state for items
112
+ - Selected state for items
113
+ - Keyboard accessible (aria roles)
114
+ - Configurable distance from trigger
@@ -0,0 +1,70 @@
1
+ # snice-popover
2
+
3
+ Floating content positioned relative to target element.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ open: boolean = false;
9
+ placement: 'top'|'bottom'|'left'|'right'|'top-start'|'top-end'|'bottom-start'|'bottom-end'|'left-start'|'left-end'|'right-start'|'right-end' = 'top';
10
+ trigger: 'click'|'hover'|'focus'|'manual' = 'click';
11
+ distance: number = 8;
12
+ showArrow: boolean = true;
13
+ closeOnClickOutside: boolean = true;
14
+ closeOnEscape: boolean = true;
15
+ hoverDelay: number = 200;
16
+ targetSelector: string = '';
17
+ ```
18
+
19
+ ## Methods
20
+
21
+ ```typescript
22
+ show(): void
23
+ hide(): void
24
+ toggle(): void
25
+ updatePosition(): void
26
+ ```
27
+
28
+ ## Events
29
+
30
+ - `@snice/popover-show` - Dispatched when shown
31
+ - `@snice/popover-hide` - Dispatched when hidden
32
+
33
+ ## Usage
34
+
35
+ ```html
36
+ <button id="btn">Click me</button>
37
+ <snice-popover target-selector="#btn">
38
+ Popover content
39
+ </snice-popover>
40
+
41
+ <!-- Hover trigger -->
42
+ <snice-popover target-selector="#btn" trigger="hover">
43
+ Appears on hover
44
+ </snice-popover>
45
+
46
+ <!-- Manual control -->
47
+ <snice-popover id="pop" trigger="manual">Content</snice-popover>
48
+ <script>
49
+ document.getElementById('pop').show();
50
+ </script>
51
+
52
+ <!-- Different placements -->
53
+ <snice-popover placement="bottom">Bottom</snice-popover>
54
+ <snice-popover placement="left-start">Left Start</snice-popover>
55
+
56
+ <!-- No arrow -->
57
+ <snice-popover show-arrow="false">No arrow</snice-popover>
58
+ ```
59
+
60
+ ## Features
61
+
62
+ - 12 placement options with start/end alignment
63
+ - Multiple triggers (click/hover/focus/manual)
64
+ - Arrow indicator (optional)
65
+ - Auto-positioning with scroll/resize
66
+ - Close on click outside or Escape
67
+ - Hover delay configuration
68
+ - Target via selector or previous sibling
69
+ - Fixed positioning overlay
70
+ - Event dispatching
@@ -0,0 +1,106 @@
1
+ # snice-qr-code
2
+
3
+ QR code generator with customizable styling and export.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ value: string = '';
9
+ size: number = 200;
10
+ errorCorrectionLevel: 'L'|'M'|'Q'|'H' = 'M';
11
+ renderMode: 'canvas'|'svg' = 'svg';
12
+ margin: number = 4;
13
+ fgColor: string = '#000000';
14
+ bgColor: string = '#ffffff';
15
+ includeImage: boolean = false;
16
+ imageUrl: string = '';
17
+ imageSize: number = 40;
18
+ ```
19
+
20
+ ## Methods
21
+
22
+ ```typescript
23
+ toDataURL(type?: 'image/png'|'image/jpeg'|'image/webp', quality?: number): Promise<string>
24
+ toBlob(type?: 'image/png'|'image/jpeg'|'image/webp', quality?: number): Promise<Blob>
25
+ download(filename?: string): void
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ```javascript
31
+ // Basic
32
+ qr.value = 'https://example.com';
33
+ qr.size = 200;
34
+
35
+ // Custom colors
36
+ qr.fgColor = '#2196f3';
37
+ qr.bgColor = '#e3f2fd';
38
+
39
+ // Error correction
40
+ qr.errorCorrectionLevel = 'H'; // L|M|Q|H
41
+
42
+ // Canvas mode
43
+ qr.renderMode = 'canvas';
44
+
45
+ // With image overlay
46
+ qr.includeImage = true;
47
+ qr.imageUrl = 'logo.png';
48
+ qr.imageSize = 50;
49
+
50
+ // Export
51
+ const dataURL = await qr.toDataURL('image/png', 0.92);
52
+ const blob = await qr.toBlob('image/png');
53
+ qr.download('qr-code.png');
54
+ ```
55
+
56
+ ```html
57
+ <snice-qr-code
58
+ value="https://example.com"
59
+ size="250"
60
+ fg-color="#000000"
61
+ bg-color="#ffffff"
62
+ error-correction-level="M"
63
+ render-mode="svg">
64
+ </snice-qr-code>
65
+ ```
66
+
67
+ ## Common Formats
68
+
69
+ ```javascript
70
+ // URL
71
+ qr.value = 'https://example.com';
72
+
73
+ // Email
74
+ qr.value = 'mailto:name@example.com';
75
+
76
+ // Phone
77
+ qr.value = 'tel:+1234567890';
78
+
79
+ // SMS
80
+ qr.value = 'sms:+1234567890?body=Hello';
81
+
82
+ // WiFi
83
+ qr.value = 'WIFI:T:WPA;S:NetworkName;P:password;;';
84
+
85
+ // vCard
86
+ qr.value = `BEGIN:VCARD
87
+ VERSION:3.0
88
+ FN:John Doe
89
+ TEL:+1234567890
90
+ EMAIL:john@example.com
91
+ END:VCARD`;
92
+
93
+ // Location
94
+ qr.value = 'geo:37.7749,-122.4194';
95
+ ```
96
+
97
+ ## Features
98
+
99
+ - SVG/Canvas rendering
100
+ - Custom colors
101
+ - Error correction levels
102
+ - Image overlay
103
+ - Export (PNG/JPEG/WebP)
104
+ - Download
105
+ - Adjustable margin
106
+ - Multiple data formats
@@ -0,0 +1,71 @@
1
+ # snice-split-pane
2
+
3
+ Resizable split pane layout.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ direction: 'horizontal'|'vertical' = 'horizontal';
9
+ primarySize: number = 50; // percentage
10
+ minPrimarySize: number = 10; // percentage
11
+ minSecondarySize: number = 10; // percentage
12
+ snapSize: number = 0; // percentage, 0 = no snap
13
+ disabled: boolean = false;
14
+ ```
15
+
16
+ ## Methods
17
+
18
+ ```typescript
19
+ getPrimarySize(): number
20
+ getSecondarySize(): number
21
+ setPrimarySize(size: number): void
22
+ reset(): void
23
+ ```
24
+
25
+ ## Events
26
+
27
+ - `@snice/resize` - Dispatched on resize (detail: { primarySize, secondarySize, splitPane })
28
+
29
+ ## Usage
30
+
31
+ ```html
32
+ <snice-split-pane style="height: 400px;">
33
+ <div slot="primary">Left pane</div>
34
+ <div slot="secondary">Right pane</div>
35
+ </snice-split-pane>
36
+
37
+ <!-- Vertical -->
38
+ <snice-split-pane direction="vertical">
39
+ <div slot="primary">Top</div>
40
+ <div slot="secondary">Bottom</div>
41
+ </snice-split-pane>
42
+
43
+ <!-- Custom size -->
44
+ <snice-split-pane primary-size="30">
45
+ <div slot="primary">30%</div>
46
+ <div slot="secondary">70%</div>
47
+ </snice-split-pane>
48
+
49
+ <!-- With snap -->
50
+ <snice-split-pane snap-size="10">
51
+ <div slot="primary">Snaps to 10%</div>
52
+ <div slot="secondary">Right</div>
53
+ </snice-split-pane>
54
+
55
+ <!-- Programmatic -->
56
+ <script>
57
+ splitPane.setPrimarySize(40);
58
+ splitPane.reset(); // 50/50
59
+ </script>
60
+ ```
61
+
62
+ ## Features
63
+
64
+ - Horizontal and vertical orientation
65
+ - Drag to resize
66
+ - Minimum sizes for both panes
67
+ - Snap to grid
68
+ - Programmatic control
69
+ - Nested layouts supported
70
+ - Disabled state
71
+ - Event dispatching
@@ -0,0 +1,29 @@
1
+ # snice-stat
2
+
3
+ Statistics display with trends and icons.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ label: string = '';
9
+ value: string | number = '';
10
+ change: string | number = '';
11
+ trend: 'up'|'down'|'neutral' = 'neutral';
12
+ size: 'small'|'medium'|'large' = 'medium';
13
+ icon: string = '';
14
+ iconImage: string = '';
15
+ colorValue: boolean = false;
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ ```html
21
+ <snice-stat
22
+ label="Revenue"
23
+ value="$45,231"
24
+ change="+12%"
25
+ trend="up"
26
+ icon="💰"
27
+ color-value>
28
+ </snice-stat>
29
+ ```
@@ -0,0 +1,191 @@
1
+ # snice-tree
2
+
3
+ Hierarchical tree view with expandable nodes, selection, checkboxes, icons, and lazy loading.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ nodes: TreeNode[] = [];
9
+ selectionMode: 'single'|'multiple'|'none' = 'single';
10
+ showCheckboxes: boolean = false;
11
+ showIcons: boolean = true;
12
+ expandOnClick: boolean = false;
13
+ selectedNodes: string[] = [];
14
+ checkedNodes: string[] = [];
15
+ ```
16
+
17
+ ## TreeNode Interface
18
+
19
+ ```typescript
20
+ interface TreeNode {
21
+ id: string; // Unique identifier
22
+ label: string; // Display text
23
+ icon?: string; // Text/emoji icon
24
+ iconImage?: string; // Icon image URL
25
+ children?: TreeNode[]; // Child nodes
26
+ disabled?: boolean; // Disable interaction
27
+ selected?: boolean; // Selection state
28
+ checked?: boolean; // Checkbox state
29
+ expanded?: boolean; // Expansion state
30
+ lazy?: boolean; // Enable lazy loading
31
+ data?: any; // Custom data
32
+ }
33
+ ```
34
+
35
+ ## Methods
36
+
37
+ ### Expand/Collapse
38
+ - `expandNode(id: string)` - Expand a node
39
+ - `collapseNode(id: string)` - Collapse a node
40
+ - `toggleNode(id: string)` - Toggle node expansion
41
+ - `expandAll()` - Expand all nodes
42
+ - `collapseAll()` - Collapse all nodes
43
+
44
+ ### Selection
45
+ - `selectNode(id: string)` - Select a node
46
+ - `deselectNode(id: string)` - Deselect a node
47
+ - `toggleSelection(id: string)` - Toggle selection
48
+
49
+ ### Checkboxes
50
+ - `checkNode(id: string)` - Check a node
51
+ - `uncheckNode(id: string)` - Uncheck a node
52
+ - `toggleCheck(id: string)` - Toggle check state
53
+
54
+ ### Getters
55
+ - `getNode(id: string): TreeNode | undefined` - Get node by ID
56
+ - `getSelectedNodes(): TreeNode[]` - Get all selected nodes
57
+ - `getCheckedNodes(): TreeNode[]` - Get all checked nodes
58
+
59
+ ## Events
60
+
61
+ - `@snice/tree-node-expand` - Node expanded (detail: { nodeId, node, tree })
62
+ - `@snice/tree-node-collapse` - Node collapsed (detail: { nodeId, node, tree })
63
+ - `@snice/tree-node-select` - Node selected (detail: { nodeId, node, selectedNodes, tree })
64
+ - `@snice/tree-node-check` - Node checked/unchecked (detail: { nodeId, node, checked, checkedNodes, tree })
65
+ - `@snice/tree-node-lazy-load` - Lazy node expanded (detail: { nodeId, node, tree })
66
+
67
+ ## Usage
68
+
69
+ ```html
70
+ <!-- Basic file tree -->
71
+ <snice-tree id="fileTree"></snice-tree>
72
+ <script>
73
+ document.getElementById('fileTree').nodes = [
74
+ {
75
+ id: 'src',
76
+ label: 'src',
77
+ icon: '📁',
78
+ expanded: true,
79
+ children: [
80
+ { id: 'index.ts', label: 'index.ts', icon: '📄' },
81
+ {
82
+ id: 'components',
83
+ label: 'components',
84
+ icon: '📁',
85
+ children: [
86
+ { id: 'header.ts', label: 'header.ts', icon: '📄' }
87
+ ]
88
+ }
89
+ ]
90
+ }
91
+ ];
92
+ </script>
93
+
94
+ <!-- Single selection -->
95
+ <snice-tree selection-mode="single"></snice-tree>
96
+
97
+ <!-- Multiple selection -->
98
+ <snice-tree selection-mode="multiple"></snice-tree>
99
+
100
+ <!-- No selection -->
101
+ <snice-tree selection-mode="none"></snice-tree>
102
+
103
+ <!-- Checkbox selection -->
104
+ <snice-tree show-checkboxes></snice-tree>
105
+
106
+ <!-- Without icons -->
107
+ <snice-tree show-icons="false"></snice-tree>
108
+
109
+ <!-- Expand/collapse programmatically -->
110
+ <button onclick="tree.expandAll()">Expand All</button>
111
+ <button onclick="tree.collapseAll()">Collapse All</button>
112
+
113
+ <!-- Selection events -->
114
+ <snice-tree id="tree"></snice-tree>
115
+ <script>
116
+ const tree = document.getElementById('tree');
117
+ tree.addEventListener('@snice/tree-node-select', (e) => {
118
+ console.log('Selected:', e.detail.node.label);
119
+ console.log('All selected:', e.detail.selectedNodes.map(n => n.label));
120
+ });
121
+ </script>
122
+
123
+ <!-- Lazy loading -->
124
+ <snice-tree id="lazyTree"></snice-tree>
125
+ <script>
126
+ const lazyTree = document.getElementById('lazyTree');
127
+ lazyTree.nodes = [
128
+ {
129
+ id: 'folder1',
130
+ label: 'Click to load...',
131
+ icon: '📁',
132
+ lazy: true,
133
+ children: []
134
+ }
135
+ ];
136
+
137
+ lazyTree.addEventListener('@snice/tree-node-lazy-load', async (e) => {
138
+ const node = e.detail.node;
139
+ const data = await fetch(`/api/nodes/${node.id}`).then(r => r.json());
140
+
141
+ node.children = data.map(item => ({
142
+ id: item.id,
143
+ label: item.name,
144
+ icon: '📄'
145
+ }));
146
+ node.lazy = false;
147
+ node.expanded = true;
148
+
149
+ // Trigger re-render
150
+ lazyTree.nodes = [...lazyTree.nodes];
151
+ });
152
+ </script>
153
+
154
+ <!-- Custom icons with images -->
155
+ <snice-tree id="imgTree"></snice-tree>
156
+ <script>
157
+ document.getElementById('imgTree').nodes = [
158
+ {
159
+ id: '1',
160
+ label: 'Images',
161
+ iconImage: '/icons/folder.png',
162
+ children: [
163
+ { id: '2', label: 'photo.jpg', iconImage: '/icons/image.png' }
164
+ ]
165
+ }
166
+ ];
167
+ </script>
168
+
169
+ <!-- Disabled nodes -->
170
+ <snice-tree id="disabledTree"></snice-tree>
171
+ <script>
172
+ document.getElementById('disabledTree').nodes = [
173
+ { id: '1', label: 'Active Node' },
174
+ { id: '2', label: 'Disabled Node', disabled: true }
175
+ ];
176
+ </script>
177
+ ```
178
+
179
+ ## Features
180
+
181
+ - Hierarchical data display
182
+ - Expand/collapse nodes
183
+ - Single/multiple/no selection modes
184
+ - Checkbox support for multi-select
185
+ - Text and image icons
186
+ - Lazy loading for large trees
187
+ - Disabled nodes
188
+ - Keyboard navigation (Arrow keys, Enter, Space, Home, End)
189
+ - Full ARIA accessibility
190
+ - Programmatic control
191
+ - Custom data storage per node
@@ -0,0 +1,71 @@
1
+ # snice-virtual-scroller
2
+
3
+ Efficiently render large lists by only displaying visible items.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ items: VirtualScrollerItem[] = [];
9
+ itemHeight: number = 50; // px
10
+ bufferSize: number = 5; // extra items outside viewport
11
+ estimatedItemHeight: number = 50;
12
+ renderItem: (item: VirtualScrollerItem, index: number) => string | HTMLElement;
13
+ ```
14
+
15
+ ## VirtualScrollerItem
16
+
17
+ ```typescript
18
+ interface VirtualScrollerItem {
19
+ id: string | number;
20
+ data: any;
21
+ height?: number; // optional custom height
22
+ }
23
+ ```
24
+
25
+ ## Methods
26
+
27
+ ```typescript
28
+ scrollToIndex(index: number): void
29
+ scrollToItem(id: string | number): void
30
+ refresh(): void
31
+ getVisibleRange(): { start: number; end: number }
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ```javascript
37
+ scroller.items = Array.from({ length: 10000 }, (_, i) => ({
38
+ id: i,
39
+ data: `Item ${i}`
40
+ }));
41
+
42
+ scroller.renderItem = (item, index) => {
43
+ return `<div>${item.data}</div>`;
44
+ };
45
+
46
+ // Scroll to item
47
+ scroller.scrollToIndex(500);
48
+
49
+ // Get visible range
50
+ const range = scroller.getVisibleRange();
51
+ ```
52
+
53
+ ```html
54
+ <snice-virtual-scroller
55
+ style="height: 400px;"
56
+ item-height="60"
57
+ buffer-size="10">
58
+ </snice-virtual-scroller>
59
+ ```
60
+
61
+ ## Features
62
+
63
+ - Only renders visible items + buffer
64
+ - Handles thousands of items efficiently
65
+ - Variable item heights supported
66
+ - Programmatic scrolling
67
+ - Dynamic updates (add/remove/update)
68
+ - Smooth 60fps scrolling
69
+ - Low memory footprint
70
+ - Search and filter support
71
+ - Infinite scroll patterns