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,108 +1,93 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/chart.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/chart.md -->
2
2
 
3
3
  # Chart Component
4
4
 
5
- General-purpose charting component supporting multiple chart types with animations and interactivity.
5
+ General-purpose charting component supporting 10 chart types with animations, interactive legends, tooltips, and SVG rendering.
6
+
7
+ ## Table of Contents
8
+ - [Properties](#properties)
9
+ - [Methods](#methods)
10
+ - [CSS Parts](#css-parts)
11
+ - [Basic Usage](#basic-usage)
12
+ - [Examples](#examples)
13
+ - [Accessibility](#accessibility)
6
14
 
7
15
  ## Properties
8
16
 
9
17
  | Property | Type | Default | Description |
10
18
  |----------|------|---------|-------------|
11
- | `type` | `ChartType` | `'line'` | Chart type |
12
- | `datasets` | `ChartDataset[]` | `[]` | Chart datasets |
13
- | `labels` | `string[]` | `[]` | X-axis labels |
14
- | `options` | `ChartOptions` | `{}` | Chart options |
19
+ | `type` | `ChartType` | `'line'` | Chart type: `'line'`, `'bar'`, `'horizontal-bar'`, `'area'`, `'pie'`, `'donut'`, `'scatter'`, `'bubble'`, `'radar'`, `'mixed'` |
20
+ | `datasets` | `ChartDataset[]` | `[]` | Chart datasets (property only) |
21
+ | `labels` | `string[]` | `[]` | X-axis labels (property only) |
22
+ | `options` | `ChartOptions` | `{}` | Chart options (property only) |
15
23
  | `width` | `number` | `0` | Chart width (0 = auto) |
16
24
  | `height` | `number` | `0` | Chart height (0 = auto) |
17
25
 
18
- ## Methods
19
-
20
- ### `refresh(): void`
21
- Refresh the chart display.
22
-
23
- ```javascript
24
- chart.refresh();
25
- ```
26
-
27
- ### `update(datasets: ChartDataset[]): void`
28
- Update all datasets.
29
-
30
- ```javascript
31
- chart.update([
32
- { label: 'New Data', data: [10, 20, 30] }
33
- ]);
34
- ```
35
-
36
- ### `addDataset(dataset: ChartDataset): void`
37
- Add a new dataset.
26
+ ### ChartDataset Interface
38
27
 
39
- ```javascript
40
- chart.addDataset({
41
- label: 'Series 3',
42
- data: [15, 25, 35]
43
- });
44
- ```
45
-
46
- ### `removeDataset(index: number): void`
47
- Remove dataset by index.
48
-
49
- ```javascript
50
- chart.removeDataset(0);
51
- ```
52
-
53
- ### `toggleDataset(index: number): void`
54
- Toggle dataset visibility.
55
-
56
- ```javascript
57
- chart.toggleDataset(0);
28
+ ```typescript
29
+ interface ChartDataset {
30
+ label: string;
31
+ data: (number | ChartDataPoint)[];
32
+ type?: ChartType; // for mixed charts
33
+ backgroundColor?: string | string[];
34
+ borderColor?: string;
35
+ borderWidth?: number;
36
+ fill?: boolean;
37
+ tension?: number; // 0-1 for line smoothing
38
+ pointRadius?: number;
39
+ pointHoverRadius?: number;
40
+ hidden?: boolean;
41
+ }
58
42
  ```
59
43
 
60
- ### `exportImage(format?: 'png' | 'svg'): string`
61
- Export chart as a data URL string. Defaults to `'svg'`.
44
+ ### ChartOptions Interface
62
45
 
63
- ```javascript
64
- const svg = chart.exportImage('svg');
46
+ ```typescript
47
+ interface ChartOptions {
48
+ responsive?: boolean;
49
+ maintainAspectRatio?: boolean;
50
+ aspectRatio?: number;
51
+ legend?: { position?: 'top'|'bottom'|'left'|'right'|'none'; clickable?: boolean };
52
+ tooltip?: { trigger?: 'hover'|'click'|'none'; format?: (value, datasetIndex, pointIndex) => string };
53
+ animation?: { enabled?: boolean; duration?: number; easing?: 'linear'|'ease-in'|'ease-out'|'ease-in-out' };
54
+ xAxis?: { title?: string; min?: number; max?: number; ticks?: number; grid?: boolean; labels?: string[] };
55
+ yAxis?: { title?: string; min?: number; max?: number; ticks?: number; grid?: boolean; labels?: string[] };
56
+ }
65
57
  ```
66
58
 
67
- ### `getData(): { datasets, labels }`
68
- Get current chart data.
59
+ ## Methods
69
60
 
70
- ```javascript
71
- const data = chart.getData();
72
- console.log(data.datasets, data.labels);
73
- ```
61
+ | Method | Arguments | Returns | Description |
62
+ |--------|-----------|---------|-------------|
63
+ | `refresh()` | -- | `void` | Re-render the chart |
64
+ | `update()` | `datasets: ChartDataset[]` | `void` | Replace all datasets |
65
+ | `addDataset()` | `dataset: ChartDataset` | `void` | Append a dataset |
66
+ | `removeDataset()` | `index: number` | `void` | Remove dataset by index |
67
+ | `toggleDataset()` | `index: number` | `void` | Toggle dataset visibility |
68
+ | `exportImage()` | `format?: 'png' \| 'svg'` | `string` | Export as data URL (default: `'svg'`) |
69
+ | `getData()` | -- | `{ datasets: ChartDataset[]; labels: string[] }` | Get current chart data |
74
70
 
75
71
  ## CSS Parts
76
72
 
77
- Style internal elements from outside the shadow DOM using `::part()`.
78
-
79
- | Part | Element | Description |
80
- |------|---------|-------------|
81
- | `base` | `<div>` | Outer chart container |
82
- | `canvas` | `<div>` | Chart canvas rendering area |
83
- | `legend` | `<div>` | Legend container |
73
+ | Part | Description |
74
+ |------|-------------|
75
+ | `base` | Outer chart container |
76
+ | `canvas` | Chart canvas rendering area |
77
+ | `legend` | Legend container |
84
78
 
85
- ```css
86
- snice-chart::part(base) {
87
- border: 1px solid #e2e2e2;
88
- border-radius: 8px;
89
- }
79
+ ## Basic Usage
90
80
 
91
- snice-chart::part(legend) {
92
- padding: 0.5rem;
93
- }
81
+ ```html
82
+ <snice-chart id="chart"></snice-chart>
94
83
  ```
95
84
 
96
- ## Basic Usage
97
-
98
85
  ```typescript
86
+ import 'snice/components/chart/snice-chart';
87
+
99
88
  chart.type = 'line';
100
89
  chart.datasets = [
101
- {
102
- label: 'Sales',
103
- data: [12, 19, 15, 25, 22, 30],
104
- borderColor: '#2196f3'
105
- }
90
+ { label: 'Sales', data: [12, 19, 15, 25, 22, 30], borderColor: '#2196f3' }
106
91
  ];
107
92
  chart.labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];
108
93
  ```
@@ -111,433 +96,105 @@ chart.labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];
111
96
 
112
97
  ### Line Chart
113
98
 
99
+ Use `type="line"` with `tension` for smooth curves.
100
+
114
101
  ```javascript
115
102
  chart.type = 'line';
116
103
  chart.datasets = [
117
- {
118
- label: 'Temperature',
119
- data: [20, 22, 19, 25, 27, 24, 23],
120
- borderColor: '#2196f3',
121
- tension: 0.4 // Smooth line
122
- }
104
+ { label: 'Temperature', data: [20, 22, 19, 25, 27, 24, 23], borderColor: '#2196f3', tension: 0.4 }
123
105
  ];
124
106
  chart.labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
125
107
  ```
126
108
 
127
109
  ### Bar Chart
128
110
 
111
+ Use `type="bar"` with `backgroundColor` for colored bars.
112
+
129
113
  ```javascript
130
114
  chart.type = 'bar';
131
115
  chart.datasets = [
132
- {
133
- label: 'Revenue',
134
- data: [65, 59, 80, 81, 56, 55, 40],
135
- backgroundColor: [
136
- '#ff6384', '#36a2eb', '#ffce56', '#4bc0c0',
137
- '#9966ff', '#ff9f40', '#ffcd56'
138
- ]
139
- }
116
+ { label: 'Revenue', data: [65, 59, 80, 81, 56, 55, 40], backgroundColor: ['#ff6384', '#36a2eb', '#ffce56', '#4bc0c0', '#9966ff', '#ff9f40', '#ffcd56'] }
140
117
  ];
141
118
  chart.labels = ['Q1', 'Q2', 'Q3', 'Q4', 'Q5', 'Q6', 'Q7'];
142
119
  ```
143
120
 
144
- ### Area Chart
145
-
146
- ```javascript
147
- chart.type = 'area';
148
- chart.datasets = [
149
- {
150
- label: 'Users',
151
- data: [30, 40, 35, 50, 49, 60, 70],
152
- borderColor: '#4caf50',
153
- backgroundColor: '#4caf50',
154
- fill: true
155
- }
156
- ];
157
- chart.labels = ['Week 1', 'Week 2', 'Week 3', 'Week 4', 'Week 5', 'Week 6', 'Week 7'];
158
- ```
159
-
160
121
  ### Pie Chart
161
122
 
123
+ Use `type="pie"` for proportional data.
124
+
162
125
  ```javascript
163
126
  chart.type = 'pie';
164
127
  chart.datasets = [
165
- {
166
- label: 'Market Share',
167
- data: [30, 25, 20, 15, 10],
168
- backgroundColor: [
169
- '#ff6384', '#36a2eb', '#ffce56', '#4bc0c0', '#9966ff'
170
- ]
171
- }
128
+ { label: 'Market Share', data: [30, 25, 20, 15, 10], backgroundColor: ['#ff6384', '#36a2eb', '#ffce56', '#4bc0c0', '#9966ff'] }
172
129
  ];
173
130
  chart.labels = ['Product A', 'Product B', 'Product C', 'Product D', 'Product E'];
174
131
  ```
175
132
 
176
- ### Donut Chart
177
-
178
- ```javascript
179
- chart.type = 'donut';
180
- chart.datasets = [
181
- {
182
- label: 'Sales',
183
- data: [300, 250, 200, 150],
184
- backgroundColor: ['#2196f3', '#4caf50', '#ff9800', '#f44336']
185
- }
186
- ];
187
- chart.labels = ['North', 'South', 'East', 'West'];
188
- ```
189
-
190
133
  ### Scatter Plot
191
134
 
192
- ```javascript
193
- chart.type = 'scatter';
194
- chart.datasets = [
195
- {
196
- label: 'Dataset 1',
197
- data: [
198
- { x: 10, y: 20 },
199
- { x: 15, y: 25 },
200
- { x: 20, y: 22 },
201
- { x: 25, y: 30 }
202
- ],
203
- backgroundColor: '#2196f3',
204
- pointRadius: 5
205
- }
206
- ];
207
- ```
208
-
209
- ### Bubble Chart
135
+ Use `type="scatter"` with `{ x, y }` data points.
210
136
 
211
137
  ```javascript
212
- chart.type = 'bubble';
138
+ chart.type = 'scatter';
213
139
  chart.datasets = [
214
- {
215
- label: 'Bubble Data',
216
- data: [
217
- { x: 10, y: 20, r: 15 },
218
- { x: 15, y: 25, r: 25 },
219
- { x: 20, y: 22, r: 10 }
220
- ],
221
- backgroundColor: '#ff9800'
222
- }
140
+ { label: 'Dataset 1', data: [{ x: 10, y: 20 }, { x: 15, y: 25 }, { x: 20, y: 22 }], backgroundColor: '#2196f3', pointRadius: 5 }
223
141
  ];
224
142
  ```
225
143
 
226
144
  ### Radar Chart
227
145
 
146
+ Use `type="radar"` for multi-dimensional comparison.
147
+
228
148
  ```javascript
229
149
  chart.type = 'radar';
230
150
  chart.datasets = [
231
- {
232
- label: 'Team A',
233
- data: [80, 90, 70, 85, 75],
234
- borderColor: '#2196f3',
235
- backgroundColor: '#2196f3'
236
- },
237
- {
238
- label: 'Team B',
239
- data: [70, 85, 80, 75, 85],
240
- borderColor: '#4caf50',
241
- backgroundColor: '#4caf50'
242
- }
151
+ { label: 'Team A', data: [80, 90, 70, 85, 75], borderColor: '#2196f3', backgroundColor: '#2196f3' },
152
+ { label: 'Team B', data: [70, 85, 80, 75, 85], borderColor: '#4caf50', backgroundColor: '#4caf50' }
243
153
  ];
244
154
  chart.labels = ['Speed', 'Strength', 'Agility', 'Defense', 'Skill'];
245
155
  ```
246
156
 
247
157
  ### Mixed Chart
248
158
 
159
+ Use `type="mixed"` and set `type` on each dataset.
160
+
249
161
  ```javascript
250
162
  chart.type = 'mixed';
251
163
  chart.datasets = [
252
- {
253
- label: 'Bar Data',
254
- type: 'bar',
255
- data: [10, 20, 30, 40, 50],
256
- backgroundColor: '#2196f3'
257
- },
258
- {
259
- label: 'Line Data',
260
- type: 'line',
261
- data: [15, 25, 20, 35, 30],
262
- borderColor: '#4caf50'
263
- }
164
+ { label: 'Bar Data', type: 'bar', data: [10, 20, 30, 40, 50], backgroundColor: '#2196f3' },
165
+ { label: 'Line Data', type: 'line', data: [15, 25, 20, 35, 30], borderColor: '#4caf50' }
264
166
  ];
265
167
  chart.labels = ['A', 'B', 'C', 'D', 'E'];
266
168
  ```
267
169
 
268
- ### Multiple Datasets
269
-
270
- ```javascript
271
- chart.type = 'line';
272
- chart.datasets = [
273
- {
274
- label: 'Sales 2023',
275
- data: [12, 19, 15, 25, 22, 30],
276
- borderColor: '#2196f3'
277
- },
278
- {
279
- label: 'Sales 2024',
280
- data: [15, 22, 18, 28, 25, 33],
281
- borderColor: '#4caf50'
282
- }
283
- ];
284
- chart.labels = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'];
285
- ```
286
-
287
170
  ### Custom Options
288
171
 
289
- ```javascript
290
- chart.type = 'bar';
291
- chart.datasets = [{ label: 'Data', data: [10, 20, 30] }];
292
- chart.labels = ['A', 'B', 'C'];
293
-
294
- chart.options = {
295
- responsive: true,
296
- legend: {
297
- position: 'bottom',
298
- clickable: true
299
- },
300
- tooltip: {
301
- trigger: 'hover',
302
- format: (value, datasetIndex, pointIndex) => {
303
- return `Value: ${value}`;
304
- }
305
- },
306
- animation: {
307
- enabled: true,
308
- duration: 1000,
309
- easing: 'ease-in-out'
310
- },
311
- xAxis: {
312
- title: 'Categories',
313
- grid: true
314
- },
315
- yAxis: {
316
- title: 'Values',
317
- min: 0,
318
- max: 100,
319
- ticks: 5,
320
- grid: true
321
- }
322
- };
323
- ```
324
-
325
- ### Dynamic Updates
326
-
327
- ```javascript
328
- // Add data point
329
- function addData(label, value) {
330
- chart.labels = [...chart.labels, label];
331
- chart.datasets = chart.datasets.map(dataset => ({
332
- ...dataset,
333
- data: [...dataset.data, value]
334
- }));
335
- chart.refresh();
336
- }
337
-
338
- // Remove data point
339
- function removeData() {
340
- chart.labels = chart.labels.slice(0, -1);
341
- chart.datasets = chart.datasets.map(dataset => ({
342
- ...dataset,
343
- data: dataset.data.slice(0, -1)
344
- }));
345
- chart.refresh();
346
- }
347
-
348
- // Update data
349
- function updateData(index, newValue) {
350
- chart.datasets = chart.datasets.map(dataset => {
351
- const newData = [...dataset.data];
352
- newData[index] = newValue;
353
- return { ...dataset, data: newData };
354
- });
355
- chart.refresh();
356
- }
357
- ```
358
-
359
- ### Legend Interaction
172
+ Configure legend, tooltip, animation, and axes.
360
173
 
361
174
  ```javascript
362
175
  chart.options = {
363
- legend: {
364
- position: 'top',
365
- clickable: true // Allow hiding datasets by clicking legend
366
- }
367
- };
368
-
369
- // Programmatically toggle dataset
370
- chart.toggleDataset(0); // Hide/show first dataset
371
- ```
372
-
373
- ### Tooltips
374
-
375
- ```javascript
376
- chart.options = {
377
- tooltip: {
378
- trigger: 'hover', // or 'click', 'none'
379
- format: (value, datasetIndex, pointIndex) => {
380
- const dataset = chart.datasets[datasetIndex];
381
- const label = chart.labels[pointIndex];
382
- return `${dataset.label} at ${label}: ${value}`;
383
- }
384
- }
176
+ legend: { position: 'bottom', clickable: true },
177
+ tooltip: { trigger: 'hover', format: (value) => `Value: ${value}` },
178
+ animation: { enabled: true, duration: 1000, easing: 'ease-in-out' },
179
+ yAxis: { title: 'Values', min: 0, max: 100, ticks: 5, grid: true }
385
180
  };
386
181
  ```
387
182
 
388
183
  ### Export Chart
389
184
 
390
- ```javascript
391
- // Export as SVG
392
- const svg = chart.exportImage('svg');
393
- console.log(svg);
394
-
395
- // Download as SVG
396
- function downloadChart() {
397
- const svg = chart.exportImage('svg');
398
- const blob = new Blob([svg], { type: 'image/svg+xml' });
399
- const url = URL.createObjectURL(blob);
400
- const a = document.createElement('a');
401
- a.href = url;
402
- a.download = 'chart.svg';
403
- a.click();
404
- }
405
- ```
406
-
407
- ### Real-time Data
408
-
409
- ```javascript
410
- let dataPoints = [10, 20, 30, 40, 50];
411
-
412
- setInterval(() => {
413
- // Add new point
414
- dataPoints.push(Math.random() * 100);
415
-
416
- // Keep last 20 points
417
- if (dataPoints.length > 20) {
418
- dataPoints.shift();
419
- }
420
-
421
- chart.datasets = [{
422
- label: 'Live Data',
423
- data: dataPoints,
424
- borderColor: '#2196f3'
425
- }];
426
-
427
- chart.labels = dataPoints.map((_, i) => i);
428
- chart.refresh();
429
- }, 1000);
430
- ```
431
-
432
- ### Responsive Chart
433
-
434
- ```html
435
- <snice-chart></snice-chart>
436
- ```
437
-
438
- ```typescript
439
- chart.options = {
440
- responsive: true,
441
- maintainAspectRatio: true,
442
- aspectRatio: 2 // 2:1 ratio
443
- };
444
- ```
445
-
446
- ### Financial Chart
185
+ Use `exportImage()` to save the chart as SVG or PNG.
447
186
 
448
187
  ```javascript
449
- // Candlestick-style using bar chart with custom colors
450
- chart.type = 'bar';
451
- chart.datasets = [{
452
- label: 'Stock Price',
453
- data: [100, 110, 95, 120, 115, 130, 125],
454
- backgroundColor: [
455
- '#4caf50', '#4caf50', '#f44336', '#4caf50',
456
- '#f44336', '#4caf50', '#f44336'
457
- ]
458
- }];
459
- chart.labels = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
460
- ```
461
-
462
- ### Comparison Chart
463
-
464
- ```javascript
465
- chart.type = 'bar';
466
- chart.datasets = [
467
- {
468
- label: 'Last Year',
469
- data: [30, 40, 35, 50, 45],
470
- backgroundColor: '#e0e0e0'
471
- },
472
- {
473
- label: 'This Year',
474
- data: [35, 45, 40, 55, 50],
475
- backgroundColor: '#2196f3'
476
- }
477
- ];
478
- chart.labels = ['Q1', 'Q2', 'Q3', 'Q4', 'Q5'];
479
- ```
480
-
481
- ## Performance Tips
482
-
483
- - Limit data points for smooth animations (< 100 points recommended)
484
- - Disable animations for large datasets
485
- - Use debouncing for real-time updates
486
- - Consider data aggregation for time-series data
487
-
488
- ## Chart Types
489
-
490
- - `'line'` - Line chart
491
- - `'bar'` - Vertical bar chart
492
- - `'horizontal-bar'` - Horizontal bar chart
493
- - `'area'` - Area chart (filled line)
494
- - `'pie'` - Pie chart
495
- - `'donut'` - Donut chart
496
- - `'scatter'` - Scatter plot
497
- - `'bubble'` - Bubble chart
498
- - `'radar'` - Radar/spider chart
499
- - `'mixed'` - Mixed chart types
500
-
501
- ## ChartDataset Interface
502
-
503
- ```typescript
504
- interface ChartDataset {
505
- label: string;
506
- data: (number | ChartDataPoint)[];
507
- type?: ChartType; // for mixed charts
508
- backgroundColor?: string | string[];
509
- borderColor?: string;
510
- borderWidth?: number;
511
- fill?: boolean;
512
- tension?: number; // 0-1 for line smoothing
513
- pointRadius?: number;
514
- pointHoverRadius?: number;
515
- hidden?: boolean;
516
- }
517
- ```
518
-
519
- ## ChartOptions Interface
520
-
521
- ```typescript
522
- interface ChartOptions {
523
- responsive?: boolean;
524
- maintainAspectRatio?: boolean;
525
- aspectRatio?: number;
526
- legend?: ChartLegend;
527
- tooltip?: ChartTooltip;
528
- animation?: ChartAnimation;
529
- xAxis?: ChartAxis;
530
- yAxis?: ChartAxis;
531
- }
188
+ const svg = chart.exportImage('svg');
189
+ const blob = new Blob([svg], { type: 'image/svg+xml' });
190
+ const url = URL.createObjectURL(blob);
191
+ const a = document.createElement('a');
192
+ a.href = url;
193
+ a.download = 'chart.svg';
194
+ a.click();
532
195
  ```
533
196
 
534
197
  ## Accessibility
535
198
 
536
199
  - Legend items are clickable to toggle dataset visibility
537
200
  - Tooltip shows data values on hover
538
-
539
- ## Browser Support
540
-
541
- - Modern browsers with Custom Elements v1 support
542
- - SVG rendering support
543
- - Responsive and touch-friendly