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,49 @@
1
+ # snice-carousel
2
+
3
+ Image/content carousel with autoplay, loop, navigation.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ activeIndex: number = 0;
9
+ autoplay: boolean = false;
10
+ autoplayInterval: number = 3000;
11
+ autoplayDirection: 'forward'|'backward' = 'forward';
12
+ loop: boolean = true;
13
+ showControls: boolean = true;
14
+ showIndicators: boolean = true;
15
+ slidesPerView: number = 1;
16
+ spaceBetween: number = 0;
17
+ ```
18
+
19
+ ## Methods
20
+
21
+ - `next()`, `prev()`, `goToSlide(index)`
22
+ - `play()`, `pause()`
23
+
24
+ ## Events
25
+
26
+ - `@snice/carousel-slide-change` (detail: { activeIndex, previousIndex, carousel })
27
+
28
+ ## Usage
29
+
30
+ ```html
31
+ <!-- Basic -->
32
+ <snice-carousel>
33
+ <div>Slide 1</div>
34
+ <div>Slide 2</div>
35
+ </snice-carousel>
36
+
37
+ <!-- Autoplay -->
38
+ <snice-carousel autoplay autoplay-interval="2000">
39
+ <div>Auto 1</div>
40
+ <div>Auto 2</div>
41
+ </snice-carousel>
42
+
43
+ <!-- Multiple slides -->
44
+ <snice-carousel slides-per-view="3" space-between="20">
45
+ <div>1</div>
46
+ <div>2</div>
47
+ <div>3</div>
48
+ </snice-carousel>
49
+ ```
@@ -0,0 +1,160 @@
1
+ # snice-chart
2
+
3
+ General-purpose chart component with multiple types and animations.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ type: 'line'|'bar'|'horizontal-bar'|'area'|'pie'|'donut'|'scatter'|'bubble'|'radar'|'mixed' = 'line';
9
+ datasets: ChartDataset[] = [];
10
+ labels: string[] = [];
11
+ options: ChartOptions = {};
12
+ width: number = 0;
13
+ height: number = 0;
14
+ ```
15
+
16
+ ## ChartDataset
17
+
18
+ ```typescript
19
+ interface ChartDataset {
20
+ label: string;
21
+ data: (number | ChartDataPoint)[];
22
+ type?: ChartType; // for mixed charts
23
+ backgroundColor?: string | string[];
24
+ borderColor?: string;
25
+ borderWidth?: number;
26
+ fill?: boolean;
27
+ tension?: number; // 0-1
28
+ pointRadius?: number;
29
+ pointHoverRadius?: number;
30
+ hidden?: boolean;
31
+ }
32
+ ```
33
+
34
+ ## ChartDataPoint
35
+
36
+ ```typescript
37
+ interface ChartDataPoint {
38
+ x?: number | string | Date;
39
+ y?: number;
40
+ r?: number; // bubble radius
41
+ label?: string;
42
+ }
43
+ ```
44
+
45
+ ## ChartOptions
46
+
47
+ ```typescript
48
+ interface ChartOptions {
49
+ responsive?: boolean;
50
+ maintainAspectRatio?: boolean;
51
+ aspectRatio?: number;
52
+ legend?: { position?: 'top'|'bottom'|'left'|'right'|'none'; clickable?: boolean };
53
+ tooltip?: { trigger?: 'hover'|'click'|'none'; format?: (value, datasetIndex, pointIndex) => string };
54
+ animation?: { enabled?: boolean; duration?: number; easing?: 'linear'|'ease-in'|'ease-out'|'ease-in-out' };
55
+ xAxis?: { title?: string; min?: number; max?: number; ticks?: number; grid?: boolean; labels?: string[] };
56
+ yAxis?: { title?: string; min?: number; max?: number; ticks?: number; grid?: boolean; labels?: string[] };
57
+ }
58
+ ```
59
+
60
+ ## Methods
61
+
62
+ ```typescript
63
+ refresh(): void
64
+ update(datasets: ChartDataset[]): void
65
+ addDataset(dataset: ChartDataset): void
66
+ removeDataset(index: number): void
67
+ toggleDataset(index: number): void
68
+ exportImage(format?: 'png'|'svg'): string
69
+ getData(): { datasets: ChartDataset[]; labels: string[] }
70
+ ```
71
+
72
+ ## Usage
73
+
74
+ ```javascript
75
+ // Line chart
76
+ chart.type = 'line';
77
+ chart.datasets = [{
78
+ label: 'Sales',
79
+ data: [12, 19, 15, 25, 22, 30],
80
+ borderColor: '#2196f3',
81
+ tension: 0.4
82
+ }];
83
+ chart.labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];
84
+
85
+ // Bar chart
86
+ chart.type = 'bar';
87
+ chart.datasets = [{
88
+ label: 'Revenue',
89
+ data: [65, 59, 80, 81, 56],
90
+ backgroundColor: ['#ff6384', '#36a2eb', '#ffce56', '#4bc0c0', '#9966ff']
91
+ }];
92
+
93
+ // Pie chart
94
+ chart.type = 'pie';
95
+ chart.datasets = [{
96
+ label: 'Market Share',
97
+ data: [30, 25, 20, 15, 10],
98
+ backgroundColor: ['#ff6384', '#36a2eb', '#ffce56', '#4bc0c0', '#9966ff']
99
+ }];
100
+ chart.labels = ['A', 'B', 'C', 'D', 'E'];
101
+
102
+ // Scatter plot
103
+ chart.type = 'scatter';
104
+ chart.datasets = [{
105
+ label: 'Dataset 1',
106
+ data: [
107
+ { x: 10, y: 20 },
108
+ { x: 15, y: 25 },
109
+ { x: 20, y: 22 }
110
+ ],
111
+ backgroundColor: '#2196f3'
112
+ }];
113
+
114
+ // Radar chart
115
+ chart.type = 'radar';
116
+ chart.datasets = [
117
+ { label: 'Team A', data: [80, 90, 70, 85, 75], borderColor: '#2196f3' },
118
+ { label: 'Team B', data: [70, 85, 80, 75, 85], borderColor: '#4caf50' }
119
+ ];
120
+ chart.labels = ['Speed', 'Strength', 'Agility', 'Defense', 'Skill'];
121
+
122
+ // Mixed chart
123
+ chart.type = 'mixed';
124
+ chart.datasets = [
125
+ { label: 'Bar', type: 'bar', data: [10, 20, 30], backgroundColor: '#2196f3' },
126
+ { label: 'Line', type: 'line', data: [15, 25, 20], borderColor: '#4caf50' }
127
+ ];
128
+
129
+ // Options
130
+ chart.options = {
131
+ legend: { position: 'bottom', clickable: true },
132
+ tooltip: {
133
+ trigger: 'hover',
134
+ format: (value, datasetIndex, pointIndex) => `Value: ${value}`
135
+ },
136
+ animation: { enabled: true, duration: 1000 },
137
+ yAxis: { min: 0, max: 100, ticks: 5, grid: true }
138
+ };
139
+
140
+ // Methods
141
+ chart.addDataset({ label: 'New', data: [1, 2, 3] });
142
+ chart.toggleDataset(0);
143
+ const svg = chart.exportImage('svg');
144
+ ```
145
+
146
+ ```html
147
+ <snice-chart type="line" height="400"></snice-chart>
148
+ ```
149
+
150
+ ## Features
151
+
152
+ - 10 chart types (line, bar, area, pie, donut, scatter, bubble, radar, horizontal-bar, mixed)
153
+ - Multiple datasets
154
+ - Interactive legend
155
+ - Hover tooltips
156
+ - Animations
157
+ - SVG rendering
158
+ - Custom colors
159
+ - Grid/axes
160
+ - Export capability
@@ -0,0 +1,189 @@
1
+ # snice-chat
2
+
3
+ Slack-style chat interface with messages, typing indicators, reactions, and file attachments.
4
+
5
+ ## Usage
6
+
7
+ ```html
8
+ <snice-chat current-user="You"></snice-chat>
9
+ ```
10
+
11
+ ## Properties
12
+
13
+ - `messages: ChatMessage[]` - Messages array (property only)
14
+ - `currentUser: string` - Current user name (default: `"You"`)
15
+ - `currentAvatar: string` - Current user avatar URL (default: `""`)
16
+ - `placeholder: string` - Input placeholder (default: `"Type a message..."`)
17
+ - `allowFiles: boolean` - Enable file uploads (default: `true`)
18
+ - `showTyping: boolean` - Show typing indicators (default: `true`)
19
+ - `showAvatars: boolean` - Show user avatars (default: `true`)
20
+ - `showTimestamps: boolean` - Show timestamps (default: `true`)
21
+
22
+ ## Methods
23
+
24
+ - `addMessage(message: Omit<ChatMessage, 'id'>): void` - Add message
25
+ - `updateMessage(messageId: string, updates: Partial<ChatMessage>): void` - Update message
26
+ - `deleteMessage(messageId: string): void` - Delete message
27
+ - `addTypingIndicator(user: string): void` - Add typing indicator
28
+ - `removeTypingIndicator(user: string): void` - Remove typing indicator
29
+ - `clear(): void` - Clear messages
30
+ - `scrollToBottom(): void` - Scroll to bottom
31
+ - `scrollToMessage(messageId: string): void` - Scroll to message
32
+
33
+ ## Events
34
+
35
+ - `message-send: CustomEvent<{ message: string; attachments?: File[] }>` - Message sent
36
+ - `message-edit: CustomEvent<{ messageId: string; newContent: string }>` - Message edited
37
+ - `message-delete: CustomEvent<{ messageId: string }>` - Message deleted
38
+ - `message-react: CustomEvent<{ messageId: string; emoji: string }>` - Reaction added
39
+ - `message-thread: CustomEvent<{ messageId: string }>` - Thread started
40
+ - `typing-start: CustomEvent<{}>` - User started typing
41
+ - `typing-stop: CustomEvent<{}>` - User stopped typing
42
+
43
+ ## Message Types
44
+
45
+ - `text` - Text message
46
+ - `image` - Image attachment
47
+ - `file` - File attachment
48
+ - `system` - System notification
49
+
50
+ ## CSS Variables
51
+
52
+ ```css
53
+ --snice-chat-height
54
+ --snice-chat-border-radius
55
+ --snice-chat-text-color
56
+ --snice-chat-background
57
+ --snice-chat-border-color
58
+ --snice-chat-author-color
59
+ --snice-chat-timestamp-color
60
+ --snice-chat-system-color
61
+ --snice-chat-placeholder-color
62
+ --snice-chat-scrollbar-color
63
+ --snice-chat-scrollbar-hover-color
64
+ --snice-chat-avatar-background
65
+ --snice-chat-avatar-text-color
66
+ --snice-chat-attachment-border
67
+ --snice-chat-attachment-background
68
+ --snice-chat-attachment-icon-background
69
+ --snice-chat-attachment-icon-color
70
+ --snice-chat-reaction-background
71
+ --snice-chat-reaction-border
72
+ --snice-chat-reaction-hover-background
73
+ --snice-chat-reaction-active-background
74
+ --snice-chat-reaction-active-color
75
+ --snice-chat-reaction-active-border
76
+ --snice-chat-actions-background
77
+ --snice-chat-action-color
78
+ --snice-chat-action-hover-background
79
+ --snice-chat-typing-color
80
+ --snice-chat-typing-dot-color
81
+ --snice-chat-input-background
82
+ --snice-chat-input-container-background
83
+ --snice-chat-input-border
84
+ --snice-chat-input-focus-border
85
+ --snice-chat-button-color
86
+ --snice-chat-button-hover-background
87
+ --snice-chat-send-color
88
+ --snice-chat-send-background
89
+ --snice-chat-send-hover-background
90
+ --snice-chat-empty-color
91
+ ```
92
+
93
+ ## Types
94
+
95
+ ```typescript
96
+ type MessageType = 'text' | 'file' | 'image' | 'system';
97
+
98
+ interface ChatMessage {
99
+ id: string;
100
+ type: MessageType;
101
+ content: string;
102
+ author: string;
103
+ avatar?: string;
104
+ timestamp: Date;
105
+ edited?: boolean;
106
+ reactions?: MessageReaction[];
107
+ thread?: ChatMessage[];
108
+ attachment?: MessageAttachment;
109
+ }
110
+
111
+ interface MessageAttachment {
112
+ type: 'image' | 'file';
113
+ url: string;
114
+ name: string;
115
+ size?: number;
116
+ thumbnailUrl?: string;
117
+ }
118
+
119
+ interface MessageReaction {
120
+ emoji: string;
121
+ count: number;
122
+ users: string[];
123
+ }
124
+ ```
125
+
126
+ ## Example
127
+
128
+ ```javascript
129
+ const chat = document.querySelector('snice-chat');
130
+
131
+ // Add message
132
+ chat.addMessage({
133
+ type: 'text',
134
+ content: 'Hello!',
135
+ author: 'Alice',
136
+ avatar: 'https://example.com/alice.jpg',
137
+ timestamp: new Date(),
138
+ formats: [],
139
+ });
140
+
141
+ // Add image
142
+ chat.addMessage({
143
+ type: 'image',
144
+ content: '',
145
+ author: 'Bob',
146
+ timestamp: new Date(),
147
+ formats: [],
148
+ attachment: {
149
+ type: 'image',
150
+ url: 'https://example.com/image.jpg',
151
+ name: 'photo.jpg',
152
+ },
153
+ });
154
+
155
+ // Add reaction
156
+ chat.addEventListener('message-react', (e) => {
157
+ const message = chat.messages.find((m) => m.id === e.detail.messageId);
158
+ const reactions = message.reactions || [];
159
+ reactions.push({ emoji: e.detail.emoji, count: 1, users: [chat.currentUser] });
160
+ chat.updateMessage(e.detail.messageId, { reactions });
161
+ });
162
+
163
+ // Typing indicator
164
+ chat.addTypingIndicator('Alice');
165
+ setTimeout(() => chat.removeTypingIndicator('Alice'), 2000);
166
+
167
+ // Send message
168
+ chat.addEventListener('message-send', (e) => {
169
+ chat.addMessage({
170
+ type: 'text',
171
+ content: e.detail.message,
172
+ author: 'You',
173
+ timestamp: new Date(),
174
+ formats: [],
175
+ });
176
+ });
177
+ ```
178
+
179
+ ## Features
180
+
181
+ - Text, image, file, system messages
182
+ - Edit, delete, react to messages
183
+ - Typing indicators
184
+ - User avatars with initials fallback
185
+ - Timestamps
186
+ - Auto-scroll to new messages
187
+ - File upload support
188
+ - Emoji reactions with counts
189
+ - Message actions (edit, delete)
@@ -0,0 +1,32 @@
1
+ # snice-code-block
2
+
3
+ Code display with syntax highlighting, line numbers, copy.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ code: string = '';
9
+ language: 'javascript'|'typescript'|'html'|'css'|'json'|'python'|'bash'|'plaintext' = 'plaintext';
10
+ showLineNumbers: boolean = false;
11
+ startLine: number = 1;
12
+ highlightLines: number[] = [];
13
+ copyable: boolean = true;
14
+ filename: string = '';
15
+ ```
16
+
17
+ ## Methods
18
+
19
+ - `copy()` - Copy code to clipboard
20
+
21
+ ## Events
22
+
23
+ - `@snice/code-copy` (detail: { code, codeBlock })
24
+
25
+ ## Usage
26
+
27
+ ```html
28
+ <snice-code-block id="code" language="javascript" show-line-numbers filename="app.js"></snice-code-block>
29
+ <script>
30
+ document.getElementById('code').code = `console.log('hello');`;
31
+ </script>
32
+ ```
@@ -0,0 +1,117 @@
1
+ # snice-command-palette
2
+
3
+ Searchable command palette overlay (⌘K) for quick command access.
4
+
5
+ ## Properties
6
+
7
+ ```typescript
8
+ open: boolean = false;
9
+ commands: CommandItem[] = [];
10
+ placeholder: string = 'Type a command or search...';
11
+ noResultsText: string = 'No results found';
12
+ maxResults: number = 50;
13
+ showRecentCommands: boolean = true;
14
+ recentCommandsLimit: number = 5;
15
+ caseSensitive: boolean = false;
16
+ ```
17
+
18
+ ## CommandItem Interface
19
+
20
+ ```typescript
21
+ interface CommandItem {
22
+ id: string;
23
+ label: string;
24
+ description?: string;
25
+ icon?: string;
26
+ iconImage?: string;
27
+ shortcut?: string;
28
+ category?: string;
29
+ disabled?: boolean;
30
+ action?: () => void | Promise<void>;
31
+ data?: any;
32
+ }
33
+ ```
34
+
35
+ ## Methods
36
+
37
+ - `show()` - Open palette
38
+ - `close()` - Close palette
39
+ - `toggle()` - Toggle visibility
40
+ - `addCommand(command: CommandItem)` - Add command
41
+ - `removeCommand(id: string)` - Remove command
42
+ - `executeCommand(id: string)` - Execute by ID
43
+ - `clearSearch()` - Clear search
44
+ - `focus()` - Focus input
45
+
46
+ ## Events
47
+
48
+ - `@snice/command-palette-open` - Opened (detail: { palette })
49
+ - `@snice/command-palette-close` - Closed (detail: { palette })
50
+ - `@snice/command-select` - Command selected (detail: { command, palette })
51
+ - `@snice/command-execute` - Command executed (detail: { command, palette })
52
+ - `@snice/command-search` - Search changed (detail: { query, results, palette })
53
+
54
+ ## Usage
55
+
56
+ ```html
57
+ <!-- Basic -->
58
+ <snice-command-palette id="pal"></snice-command-palette>
59
+ <script>
60
+ document.getElementById('pal').commands = [
61
+ {
62
+ id: 'new',
63
+ label: 'New File',
64
+ description: 'Create a new file',
65
+ icon: '📄',
66
+ shortcut: '⌘N',
67
+ category: 'File',
68
+ action: () => console.log('New file')
69
+ },
70
+ {
71
+ id: 'save',
72
+ label: 'Save',
73
+ icon: '💾',
74
+ shortcut: '⌘S',
75
+ category: 'File',
76
+ action: () => console.log('Saved')
77
+ }
78
+ ];
79
+ </script>
80
+
81
+ <!-- Opens with ⌘K or Ctrl+K -->
82
+
83
+ <!-- Manual trigger -->
84
+ <button onclick="palette.show()">Open</button>
85
+
86
+ <!-- With async actions -->
87
+ <script>
88
+ palette.commands = [{
89
+ id: 'logout',
90
+ label: 'Logout',
91
+ action: async () => {
92
+ await fetch('/api/logout', { method: 'POST' });
93
+ location.href = '/login';
94
+ }
95
+ }];
96
+ </script>
97
+
98
+ <!-- Events -->
99
+ <script>
100
+ palette.addEventListener('@snice/command-execute', (e) => {
101
+ console.log('Executed:', e.detail.command.label);
102
+ });
103
+ </script>
104
+ ```
105
+
106
+ ## Features
107
+
108
+ - ⌘K/Ctrl+K keyboard shortcut
109
+ - Arrow key navigation
110
+ - Fuzzy search filtering
111
+ - Command categories/grouping
112
+ - Recent commands tracking
113
+ - Icons and keyboard shortcuts display
114
+ - Async action support
115
+ - Focus trap when open
116
+ - Backdrop click to close
117
+ - Escape to close
@@ -0,0 +1,154 @@
1
+ # snice-doc
2
+
3
+ Notion-like document editor with block-based editing.
4
+
5
+ ## Usage
6
+
7
+ ```html
8
+ <snice-doc></snice-doc>
9
+ ```
10
+
11
+ ## Properties
12
+
13
+ - `blocks: DocBlock[]` - Document blocks (property only)
14
+ - `placeholder: string` - Placeholder text (default: `"Type '/' for commands..."`)
15
+ - `readonly: boolean` - Readonly mode (default: `false`)
16
+
17
+ ## Methods
18
+
19
+ - `getBlocks(): DocBlock[]` - Get blocks copy
20
+ - `setBlocks(blocks: DocBlock[]): void` - Set blocks
21
+ - `toJSON(): string` - Export as JSON
22
+ - `fromJSON(json: string): void` - Import from JSON
23
+ - `toMarkdown(): string` - Export as Markdown
24
+ - `toHTML(): string` - Export as HTML
25
+ - `focus(): void` - Focus editor
26
+ - `clear(): void` - Clear all content
27
+
28
+ ## Events
29
+
30
+ - `doc-change: CustomEvent<{ blocks: DocBlock[] }>` - Content changed
31
+ - `doc-focus: CustomEvent<{ blockId: string }>` - Block focused
32
+ - `doc-blur: CustomEvent<{ blockId: string }>` - Block blurred
33
+
34
+ ## Block Types
35
+
36
+ - `paragraph` - Text paragraph
37
+ - `heading-1` - H1 heading
38
+ - `heading-2` - H2 heading
39
+ - `heading-3` - H3 heading
40
+ - `bulleted-list` - Bulleted list item
41
+ - `numbered-list` - Numbered list item
42
+ - `todo` - To-do with checkbox
43
+ - `code` - Code block
44
+ - `quote` - Blockquote
45
+ - `divider` - Horizontal rule
46
+
47
+ ## Keyboard Shortcuts
48
+
49
+ - **/** - Open block menu
50
+ - **Enter** - New block
51
+ - **Backspace** (empty) - Delete block
52
+ - **Ctrl/Cmd+B** - Bold (planned)
53
+ - **Ctrl/Cmd+I** - Italic (planned)
54
+ - **Ctrl/Cmd+U** - Underline (planned)
55
+
56
+ ## Block Menu
57
+
58
+ - **ArrowDown/Up** - Navigate
59
+ - **Enter** - Select
60
+ - **Escape** - Close
61
+
62
+ ## CSS Variables
63
+
64
+ ```css
65
+ --snice-doc-text-color
66
+ --snice-doc-background
67
+ --snice-doc-muted-color
68
+ --snice-doc-placeholder-color
69
+ --snice-doc-primary-color
70
+ --snice-doc-link-color
71
+ --snice-doc-code-background
72
+ --snice-doc-code-border
73
+ --snice-doc-inline-code-background
74
+ --snice-doc-quote-border
75
+ --snice-doc-divider-color
76
+ --snice-doc-menu-background
77
+ --snice-doc-menu-border
78
+ --snice-doc-menu-hover
79
+ --snice-doc-toolbar-background
80
+ --snice-doc-toolbar-text
81
+ --snice-doc-toolbar-hover
82
+ --snice-doc-toolbar-active
83
+ --snice-doc-padding
84
+ --snice-doc-min-height
85
+ --snice-doc-max-width
86
+ ```
87
+
88
+ ## Types
89
+
90
+ ```typescript
91
+ type BlockType =
92
+ | 'paragraph'
93
+ | 'heading-1'
94
+ | 'heading-2'
95
+ | 'heading-3'
96
+ | 'bulleted-list'
97
+ | 'numbered-list'
98
+ | 'todo'
99
+ | 'code'
100
+ | 'quote'
101
+ | 'divider';
102
+
103
+ interface DocBlock {
104
+ id: string;
105
+ type: BlockType;
106
+ content: string;
107
+ formats: TextRange[];
108
+ checked?: boolean;
109
+ indent?: number;
110
+ }
111
+
112
+ interface TextRange {
113
+ start: number;
114
+ end: number;
115
+ format: InlineFormat;
116
+ value?: string;
117
+ }
118
+
119
+ type InlineFormat = 'bold' | 'italic' | 'underline' | 'strikethrough' | 'code' | 'link';
120
+ ```
121
+
122
+ ## Example
123
+
124
+ ```javascript
125
+ const doc = document.querySelector('snice-doc');
126
+
127
+ doc.setBlocks([
128
+ { id: '1', type: 'heading-1', content: 'Title', formats: [] },
129
+ { id: '2', type: 'paragraph', content: 'Content', formats: [] },
130
+ { id: '3', type: 'todo', content: 'Task', formats: [], checked: false },
131
+ ]);
132
+
133
+ doc.addEventListener('doc-change', (e) => {
134
+ console.log(e.detail.blocks);
135
+ });
136
+
137
+ // Export
138
+ const json = doc.toJSON();
139
+ const markdown = doc.toMarkdown();
140
+ const html = doc.toHTML();
141
+ ```
142
+
143
+ ## Features
144
+
145
+ - Block-based editing
146
+ - Type `/` for block menu
147
+ - Drag to reorder
148
+ - Export JSON/Markdown/HTML
149
+ - Readonly mode
150
+ - Keyboard shortcuts
151
+ - To-do lists with checkboxes
152
+ - Code blocks
153
+ - Quotes
154
+ - Dividers