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,778 @@
1
+ # Card Component
2
+
3
+ The card component provides a container for grouped content with support for headers, footers, different visual styles, interactive states, and responsive sizing.
4
+
5
+ ## Table of Contents
6
+ - [Basic Usage](#basic-usage)
7
+ - [Properties](#properties)
8
+ - [Slots](#slots)
9
+ - [Events](#events)
10
+ - [Examples](#examples)
11
+
12
+ ## Basic Usage
13
+
14
+ ```html
15
+ <snice-card>
16
+ <p>Card content goes here</p>
17
+ </snice-card>
18
+ ```
19
+
20
+ ```typescript
21
+ import 'snice/components/card/snice-card';
22
+ ```
23
+
24
+ ## Properties
25
+
26
+ | Property | Type | Default | Description |
27
+ |----------|------|---------|-------------|
28
+ | `variant` | `'elevated' \| 'bordered' \| 'flat'` | `'elevated'` | Visual style variant |
29
+ | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Padding size |
30
+ | `clickable` | `boolean` | `false` | Enable hover and click states |
31
+ | `selected` | `boolean` | `false` | Show selected state |
32
+ | `disabled` | `boolean` | `false` | Disable interactions |
33
+
34
+ ## Slots
35
+
36
+ ### `header` (named slot)
37
+ Content for the card header section.
38
+
39
+ ```html
40
+ <snice-card>
41
+ <div slot="header">Card Title</div>
42
+ <p>Body content</p>
43
+ </snice-card>
44
+ ```
45
+
46
+ ### Default slot
47
+ Main body content of the card.
48
+
49
+ ```html
50
+ <snice-card>
51
+ <p>This is the body content</p>
52
+ </snice-card>
53
+ ```
54
+
55
+ ### `footer` (named slot)
56
+ Content for the card footer section.
57
+
58
+ ```html
59
+ <snice-card>
60
+ <p>Body content</p>
61
+ <div slot="footer">
62
+ <button>Action</button>
63
+ </div>
64
+ </snice-card>
65
+ ```
66
+
67
+ ## Events
68
+
69
+ #### `card-click`
70
+ Fired when a clickable card is clicked.
71
+
72
+ **Event Detail:**
73
+ ```typescript
74
+ {
75
+ selected: boolean;
76
+ disabled: boolean;
77
+ }
78
+ ```
79
+
80
+ **Usage:**
81
+ ```typescript
82
+ card.addEventListener('card-click', (e) => {
83
+ console.log('Card clicked, selected:', e.detail.selected);
84
+ });
85
+ ```
86
+
87
+ ## Examples
88
+
89
+ ### Basic Cards
90
+
91
+ ```html
92
+ <!-- Simple card -->
93
+ <snice-card>
94
+ <p>This is a basic card with default settings.</p>
95
+ </snice-card>
96
+
97
+ <!-- Card with text content -->
98
+ <snice-card>
99
+ <h3>Card Title</h3>
100
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
101
+ </snice-card>
102
+ ```
103
+
104
+ ### Card with Header and Footer
105
+
106
+ ```html
107
+ <snice-card>
108
+ <div slot="header">
109
+ <h3 style="margin: 0;">User Profile</h3>
110
+ </div>
111
+
112
+ <div>
113
+ <p><strong>Name:</strong> John Doe</p>
114
+ <p><strong>Email:</strong> john@example.com</p>
115
+ <p><strong>Role:</strong> Administrator</p>
116
+ </div>
117
+
118
+ <div slot="footer" style="display: flex; gap: 0.5rem; justify-content: flex-end;">
119
+ <button>Edit</button>
120
+ <button>Delete</button>
121
+ </div>
122
+ </snice-card>
123
+ ```
124
+
125
+ ### Card Variants
126
+
127
+ ```html
128
+ <!-- Elevated card (default) -->
129
+ <snice-card variant="elevated">
130
+ <p>Elevated card with shadow</p>
131
+ </snice-card>
132
+
133
+ <!-- Bordered card -->
134
+ <snice-card variant="bordered">
135
+ <p>Bordered card with no shadow</p>
136
+ </snice-card>
137
+
138
+ <!-- Flat card -->
139
+ <snice-card variant="flat">
140
+ <p>Flat card with minimal styling</p>
141
+ </snice-card>
142
+ ```
143
+
144
+ ### Card Sizes
145
+
146
+ ```html
147
+ <!-- Small card -->
148
+ <snice-card size="small">
149
+ <p>Small padding</p>
150
+ </snice-card>
151
+
152
+ <!-- Medium card (default) -->
153
+ <snice-card size="medium">
154
+ <p>Medium padding</p>
155
+ </snice-card>
156
+
157
+ <!-- Large card -->
158
+ <snice-card size="large">
159
+ <p>Large padding</p>
160
+ </snice-card>
161
+ ```
162
+
163
+ ### Clickable Cards
164
+
165
+ ```html
166
+ <snice-card clickable>
167
+ <h3>Interactive Card</h3>
168
+ <p>Click me to see the hover effect</p>
169
+ </snice-card>
170
+
171
+ <snice-card clickable selected>
172
+ <h3>Selected Card</h3>
173
+ <p>This card is in the selected state</p>
174
+ </snice-card>
175
+
176
+ <snice-card clickable disabled>
177
+ <h3>Disabled Card</h3>
178
+ <p>This card cannot be clicked</p>
179
+ </snice-card>
180
+ ```
181
+
182
+ ### Product Cards
183
+
184
+ ```html
185
+ <style>
186
+ .product-grid {
187
+ display: grid;
188
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
189
+ gap: 1.5rem;
190
+ }
191
+
192
+ .product-image {
193
+ width: 100%;
194
+ height: 200px;
195
+ object-fit: cover;
196
+ border-radius: 0.375rem;
197
+ }
198
+
199
+ .product-title {
200
+ margin: 0.5rem 0;
201
+ font-size: 1.125rem;
202
+ font-weight: 600;
203
+ }
204
+
205
+ .product-price {
206
+ font-size: 1.25rem;
207
+ font-weight: 700;
208
+ color: #3b82f6;
209
+ }
210
+ </style>
211
+
212
+ <div class="product-grid">
213
+ <snice-card clickable>
214
+ <img class="product-image" src="/products/laptop.jpg" alt="Laptop">
215
+ <h3 class="product-title">Professional Laptop</h3>
216
+ <p>High-performance laptop for work and play</p>
217
+ <div class="product-price">$999</div>
218
+ </snice-card>
219
+
220
+ <snice-card clickable>
221
+ <img class="product-image" src="/products/phone.jpg" alt="Phone">
222
+ <h3 class="product-title">Smartphone</h3>
223
+ <p>Latest model with advanced features</p>
224
+ <div class="product-price">$699</div>
225
+ </snice-card>
226
+
227
+ <snice-card clickable>
228
+ <img class="product-image" src="/products/tablet.jpg" alt="Tablet">
229
+ <h3 class="product-title">Tablet Pro</h3>
230
+ <p>Perfect for creativity and productivity</p>
231
+ <div class="product-price">$449</div>
232
+ </snice-card>
233
+ </div>
234
+ ```
235
+
236
+ ### User Profile Cards
237
+
238
+ ```html
239
+ <style>
240
+ .profile-card {
241
+ text-align: center;
242
+ }
243
+
244
+ .profile-avatar {
245
+ width: 80px;
246
+ height: 80px;
247
+ border-radius: 50%;
248
+ margin: 0 auto;
249
+ }
250
+
251
+ .profile-name {
252
+ margin: 1rem 0 0.25rem;
253
+ font-size: 1.25rem;
254
+ font-weight: 600;
255
+ }
256
+
257
+ .profile-role {
258
+ color: #6b7280;
259
+ margin: 0;
260
+ }
261
+
262
+ .profile-stats {
263
+ display: flex;
264
+ justify-content: space-around;
265
+ margin-top: 1rem;
266
+ padding-top: 1rem;
267
+ border-top: 1px solid #e5e7eb;
268
+ }
269
+
270
+ .stat {
271
+ text-align: center;
272
+ }
273
+
274
+ .stat-value {
275
+ font-size: 1.5rem;
276
+ font-weight: 700;
277
+ color: #3b82f6;
278
+ }
279
+
280
+ .stat-label {
281
+ font-size: 0.875rem;
282
+ color: #6b7280;
283
+ }
284
+ </style>
285
+
286
+ <snice-card class="profile-card">
287
+ <img class="profile-avatar" src="/avatars/user1.jpg" alt="User">
288
+ <h3 class="profile-name">Sarah Johnson</h3>
289
+ <p class="profile-role">Software Engineer</p>
290
+
291
+ <div class="profile-stats">
292
+ <div class="stat">
293
+ <div class="stat-value">142</div>
294
+ <div class="stat-label">Projects</div>
295
+ </div>
296
+ <div class="stat">
297
+ <div class="stat-value">1.2K</div>
298
+ <div class="stat-label">Followers</div>
299
+ </div>
300
+ <div class="stat">
301
+ <div class="stat-value">89</div>
302
+ <div class="stat-label">Following</div>
303
+ </div>
304
+ </div>
305
+
306
+ <div slot="footer">
307
+ <button style="width: 100%; padding: 0.5rem;">Follow</button>
308
+ </div>
309
+ </snice-card>
310
+ ```
311
+
312
+ ### Pricing Cards
313
+
314
+ ```html
315
+ <style>
316
+ .pricing-grid {
317
+ display: grid;
318
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
319
+ gap: 2rem;
320
+ max-width: 900px;
321
+ }
322
+
323
+ .plan-name {
324
+ margin: 0;
325
+ font-size: 1.5rem;
326
+ font-weight: 700;
327
+ }
328
+
329
+ .plan-price {
330
+ margin: 1rem 0;
331
+ font-size: 2.5rem;
332
+ font-weight: 700;
333
+ color: #3b82f6;
334
+ }
335
+
336
+ .plan-price span {
337
+ font-size: 1rem;
338
+ color: #6b7280;
339
+ }
340
+
341
+ .plan-features {
342
+ list-style: none;
343
+ padding: 0;
344
+ margin: 1.5rem 0;
345
+ }
346
+
347
+ .plan-features li {
348
+ padding: 0.5rem 0;
349
+ border-bottom: 1px solid #f3f4f6;
350
+ }
351
+
352
+ .plan-features li:before {
353
+ content: "✓ ";
354
+ color: #10b981;
355
+ font-weight: bold;
356
+ }
357
+ </style>
358
+
359
+ <div class="pricing-grid">
360
+ <snice-card variant="bordered">
361
+ <div slot="header">
362
+ <h3 class="plan-name">Basic</h3>
363
+ </div>
364
+
365
+ <div class="plan-price">
366
+ $9
367
+ <span>/month</span>
368
+ </div>
369
+
370
+ <ul class="plan-features">
371
+ <li>Up to 5 projects</li>
372
+ <li>1 GB storage</li>
373
+ <li>Email support</li>
374
+ <li>Basic analytics</li>
375
+ </ul>
376
+
377
+ <div slot="footer">
378
+ <button style="width: 100%; padding: 0.75rem;">Choose Plan</button>
379
+ </div>
380
+ </snice-card>
381
+
382
+ <snice-card variant="elevated" selected>
383
+ <div slot="header">
384
+ <h3 class="plan-name">Pro</h3>
385
+ <span style="background: #3b82f6; color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem;">POPULAR</span>
386
+ </div>
387
+
388
+ <div class="plan-price">
389
+ $29
390
+ <span>/month</span>
391
+ </div>
392
+
393
+ <ul class="plan-features">
394
+ <li>Unlimited projects</li>
395
+ <li>10 GB storage</li>
396
+ <li>Priority support</li>
397
+ <li>Advanced analytics</li>
398
+ <li>API access</li>
399
+ </ul>
400
+
401
+ <div slot="footer">
402
+ <button style="width: 100%; padding: 0.75rem; background: #3b82f6; color: white; border: none; border-radius: 0.375rem;">Choose Plan</button>
403
+ </div>
404
+ </snice-card>
405
+
406
+ <snice-card variant="bordered">
407
+ <div slot="header">
408
+ <h3 class="plan-name">Enterprise</h3>
409
+ </div>
410
+
411
+ <div class="plan-price">
412
+ $99
413
+ <span>/month</span>
414
+ </div>
415
+
416
+ <ul class="plan-features">
417
+ <li>Unlimited everything</li>
418
+ <li>100 GB storage</li>
419
+ <li>24/7 phone support</li>
420
+ <li>Custom analytics</li>
421
+ <li>Dedicated account manager</li>
422
+ </ul>
423
+
424
+ <div slot="footer">
425
+ <button style="width: 100%; padding: 0.75rem;">Contact Sales</button>
426
+ </div>
427
+ </snice-card>
428
+ </div>
429
+ ```
430
+
431
+ ### Dashboard Stat Cards
432
+
433
+ ```html
434
+ <style>
435
+ .stat-cards {
436
+ display: grid;
437
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
438
+ gap: 1rem;
439
+ }
440
+
441
+ .stat-card-content {
442
+ display: flex;
443
+ justify-content: space-between;
444
+ align-items: center;
445
+ }
446
+
447
+ .stat-info h4 {
448
+ margin: 0;
449
+ font-size: 0.875rem;
450
+ color: #6b7280;
451
+ font-weight: 500;
452
+ }
453
+
454
+ .stat-info .value {
455
+ margin: 0.5rem 0 0;
456
+ font-size: 2rem;
457
+ font-weight: 700;
458
+ }
459
+
460
+ .stat-icon {
461
+ font-size: 2.5rem;
462
+ }
463
+
464
+ .stat-change {
465
+ margin-top: 0.5rem;
466
+ font-size: 0.875rem;
467
+ }
468
+
469
+ .stat-change.positive {
470
+ color: #10b981;
471
+ }
472
+
473
+ .stat-change.negative {
474
+ color: #ef4444;
475
+ }
476
+ </style>
477
+
478
+ <div class="stat-cards">
479
+ <snice-card>
480
+ <div class="stat-card-content">
481
+ <div class="stat-info">
482
+ <h4>Total Revenue</h4>
483
+ <div class="value">$45,231</div>
484
+ <div class="stat-change positive">↑ 12.5% from last month</div>
485
+ </div>
486
+ <div class="stat-icon">💰</div>
487
+ </div>
488
+ </snice-card>
489
+
490
+ <snice-card>
491
+ <div class="stat-card-content">
492
+ <div class="stat-info">
493
+ <h4>New Users</h4>
494
+ <div class="value">1,234</div>
495
+ <div class="stat-change positive">↑ 8.2% from last month</div>
496
+ </div>
497
+ <div class="stat-icon">👥</div>
498
+ </div>
499
+ </snice-card>
500
+
501
+ <snice-card>
502
+ <div class="stat-card-content">
503
+ <div class="stat-info">
504
+ <h4>Active Sessions</h4>
505
+ <div class="value">852</div>
506
+ <div class="stat-change negative">↓ 3.1% from last month</div>
507
+ </div>
508
+ <div class="stat-icon">📊</div>
509
+ </div>
510
+ </snice-card>
511
+
512
+ <snice-card>
513
+ <div class="stat-card-content">
514
+ <div class="stat-info">
515
+ <h4>Support Tickets</h4>
516
+ <div class="value">23</div>
517
+ <div class="stat-change positive">↓ 45.2% from last month</div>
518
+ </div>
519
+ <div class="stat-icon">🎫</div>
520
+ </div>
521
+ </snice-card>
522
+ </div>
523
+ ```
524
+
525
+ ### Interactive Selection Cards
526
+
527
+ ```html
528
+ <style>
529
+ .selection-grid {
530
+ display: grid;
531
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
532
+ gap: 1rem;
533
+ }
534
+
535
+ .option-card {
536
+ text-align: center;
537
+ padding: 1.5rem;
538
+ }
539
+
540
+ .option-icon {
541
+ font-size: 3rem;
542
+ margin-bottom: 0.5rem;
543
+ }
544
+
545
+ .option-title {
546
+ font-weight: 600;
547
+ margin: 0.5rem 0;
548
+ }
549
+ </style>
550
+
551
+ <div class="selection-grid">
552
+ <snice-card id="card-1" clickable class="option-card">
553
+ <div class="option-icon">💳</div>
554
+ <h4 class="option-title">Credit Card</h4>
555
+ <p style="font-size: 0.875rem; color: #6b7280; margin: 0;">Pay with card</p>
556
+ </snice-card>
557
+
558
+ <snice-card id="card-2" clickable class="option-card">
559
+ <div class="option-icon">🏦</div>
560
+ <h4 class="option-title">Bank Transfer</h4>
561
+ <p style="font-size: 0.875rem; color: #6b7280; margin: 0;">Direct transfer</p>
562
+ </snice-card>
563
+
564
+ <snice-card id="card-3" clickable class="option-card">
565
+ <div class="option-icon">📱</div>
566
+ <h4 class="option-title">Mobile Payment</h4>
567
+ <p style="font-size: 0.875rem; color: #6b7280; margin: 0;">Apple/Google Pay</p>
568
+ </snice-card>
569
+ </div>
570
+
571
+ <script type="module">
572
+ import type { SniceCardElement } from 'snice/components/card/snice-card.types';
573
+
574
+ const cards = ['card-1', 'card-2', 'card-3'].map(id =>
575
+ document.getElementById(id) as SniceCardElement
576
+ );
577
+
578
+ cards.forEach(card => {
579
+ card.addEventListener('card-click', () => {
580
+ // Deselect all other cards
581
+ cards.forEach(c => c.selected = false);
582
+ // Select clicked card
583
+ card.selected = true;
584
+ console.log('Selected payment method:', card.querySelector('.option-title').textContent);
585
+ });
586
+ });
587
+ </script>
588
+ ```
589
+
590
+ ### Blog Post Cards
591
+
592
+ ```html
593
+ <style>
594
+ .blog-card-image {
595
+ width: 100%;
596
+ height: 200px;
597
+ object-fit: cover;
598
+ border-radius: 0.375rem 0.375rem 0 0;
599
+ margin: -1rem -1rem 1rem;
600
+ }
601
+
602
+ .blog-meta {
603
+ display: flex;
604
+ gap: 1rem;
605
+ font-size: 0.875rem;
606
+ color: #6b7280;
607
+ margin-bottom: 0.5rem;
608
+ }
609
+
610
+ .blog-title {
611
+ margin: 0 0 0.5rem;
612
+ font-size: 1.25rem;
613
+ font-weight: 600;
614
+ }
615
+
616
+ .blog-excerpt {
617
+ color: #4b5563;
618
+ line-height: 1.6;
619
+ }
620
+ </style>
621
+
622
+ <snice-card clickable>
623
+ <img class="blog-card-image" src="/blog/post1.jpg" alt="Blog post">
624
+
625
+ <div class="blog-meta">
626
+ <span>📅 March 15, 2025</span>
627
+ <span>👤 John Doe</span>
628
+ </div>
629
+
630
+ <h3 class="blog-title">Getting Started with Web Components</h3>
631
+
632
+ <p class="blog-excerpt">
633
+ Learn how to build reusable, encapsulated components using modern web standards.
634
+ This comprehensive guide covers everything from basics to advanced patterns.
635
+ </p>
636
+
637
+ <div slot="footer">
638
+ <a href="/blog/post-1" style="color: #3b82f6; text-decoration: none; font-weight: 600;">
639
+ Read more →
640
+ </a>
641
+ </div>
642
+ </snice-card>
643
+ ```
644
+
645
+ ### Notification Cards
646
+
647
+ ```html
648
+ <style>
649
+ .notification-card {
650
+ display: flex;
651
+ gap: 1rem;
652
+ align-items: start;
653
+ }
654
+
655
+ .notification-icon {
656
+ font-size: 2rem;
657
+ flex-shrink: 0;
658
+ }
659
+
660
+ .notification-content {
661
+ flex: 1;
662
+ }
663
+
664
+ .notification-title {
665
+ margin: 0 0 0.25rem;
666
+ font-weight: 600;
667
+ }
668
+
669
+ .notification-time {
670
+ font-size: 0.875rem;
671
+ color: #6b7280;
672
+ margin-top: 0.5rem;
673
+ }
674
+ </style>
675
+
676
+ <div style="display: flex; flex-direction: column; gap: 1rem; max-width: 400px;">
677
+ <snice-card clickable size="small">
678
+ <div class="notification-card">
679
+ <div class="notification-icon">✉️</div>
680
+ <div class="notification-content">
681
+ <h4 class="notification-title">New message from Alice</h4>
682
+ <p style="margin: 0;">Hey, are you available for a quick call?</p>
683
+ <div class="notification-time">5 minutes ago</div>
684
+ </div>
685
+ </div>
686
+ </snice-card>
687
+
688
+ <snice-card clickable size="small">
689
+ <div class="notification-card">
690
+ <div class="notification-icon">🔔</div>
691
+ <div class="notification-content">
692
+ <h4 class="notification-title">System update available</h4>
693
+ <p style="margin: 0;">Version 2.0 is ready to install</p>
694
+ <div class="notification-time">1 hour ago</div>
695
+ </div>
696
+ </div>
697
+ </snice-card>
698
+
699
+ <snice-card clickable size="small">
700
+ <div class="notification-card">
701
+ <div class="notification-icon">✅</div>
702
+ <div class="notification-content">
703
+ <h4 class="notification-title">Task completed</h4>
704
+ <p style="margin: 0;">Your export is ready to download</p>
705
+ <div class="notification-time">2 hours ago</div>
706
+ </div>
707
+ </div>
708
+ </snice-card>
709
+ </div>
710
+ ```
711
+
712
+ ## Accessibility
713
+
714
+ - **Keyboard support**: Clickable cards are fully keyboard accessible
715
+ - **ARIA attributes**: Proper roles and states for interactive cards
716
+ - **Focus indicators**: Clear focus states for keyboard navigation
717
+ - **Screen reader friendly**: Content structure is semantic and accessible
718
+
719
+ ## Browser Support
720
+
721
+ - Modern browsers (Chrome, Firefox, Safari, Edge)
722
+ - Requires Custom Elements v1 and Shadow DOM support
723
+
724
+ ## Best Practices
725
+
726
+ 1. **Use appropriate variants**: Choose styles that match your design system
727
+ 2. **Keep content focused**: Cards should contain related information
728
+ 3. **Use headers wisely**: Headers help organize card content
729
+ 4. **Make clickable cards obvious**: Use hover states to indicate interactivity
730
+ 5. **Don't overload cards**: Keep content concise and scannable
731
+ 6. **Group related cards**: Use grids or lists for multiple cards
732
+ 7. **Use footers for actions**: Place buttons and links in the footer
733
+ 8. **Consider mobile**: Ensure cards stack well on smaller screens
734
+ 9. **Test keyboard navigation**: Ensure clickable cards work without a mouse
735
+ 10. **Provide feedback**: Show selected or active states clearly
736
+
737
+ ## Common Patterns
738
+
739
+ ### Content Container
740
+ ```html
741
+ <snice-card>
742
+ <h3>Section Title</h3>
743
+ <p>Content goes here</p>
744
+ </snice-card>
745
+ ```
746
+
747
+ ### Selectable Option
748
+ ```html
749
+ <snice-card clickable selected>
750
+ <h4>Selected Option</h4>
751
+ </snice-card>
752
+ ```
753
+
754
+ ### Information Display
755
+ ```html
756
+ <snice-card>
757
+ <div slot="header">Stats</div>
758
+ <p>Metric: 123</p>
759
+ </snice-card>
760
+ ```
761
+
762
+ ### Action Card
763
+ ```html
764
+ <snice-card>
765
+ <p>Content</p>
766
+ <div slot="footer">
767
+ <button>Action</button>
768
+ </div>
769
+ </snice-card>
770
+ ```
771
+
772
+ ## Variant Styles
773
+
774
+ | Variant | Appearance | Use Case |
775
+ |---------|------------|----------|
776
+ | `elevated` | Shadow | Cards that float above the page |
777
+ | `bordered` | Border, no shadow | Subtle separation within content |
778
+ | `flat` | Minimal styling | Lightweight content containers |