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