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
@@ -4,60 +4,63 @@ Product display card with image gallery, pricing, ratings, variant selectors, an
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- name: string = ''; // Product name
9
- price: number = 0; // Regular price
10
- salePrice: number | null = null; // Sale price (attr: sale-price)
11
- currency: string = '$'; // Currency symbol
12
- images: string[] = []; // Image URLs (gallery if multiple)
13
- rating: number = 0; // Star rating (0-5)
14
- reviewCount: number = 0; // Review count (attr: review-count)
15
- variants: ProductVariant[] = []; // Variant selectors
16
- inStock: boolean = true; // In-stock status (attr: in-stock)
17
- variant: 'vertical' | 'horizontal' | 'compact' | 'featured' | 'minimal' | 'grid' = 'vertical';
18
- badge: string = ''; // Badge text (e.g. "SALE", "NEW")
19
- badgeVariant: 'sale' | 'new' | 'featured' = 'sale'; // Badge style (attr: badge-variant)
20
- loading: boolean = false; // Shows skeleton loading state
21
- favorite: boolean = false; // Favorite/heart state
22
- stockCount: number = -1; // Stock count (-1=hidden, <5=urgency) (attr: stock-count)
23
- ```
24
-
25
- ### Types
26
-
27
- ```ts
28
- interface ProductVariant {
29
- type: string; // e.g. 'Size', 'Color'
30
- options: string[]; // e.g. ['S','M','L'] or ['#000','#fff']
31
- }
7
+ ```typescript
8
+ name: string = '';
9
+ price: number = 0;
10
+ salePrice: number | null = null; // attr: sale-price
11
+ currency: string = '$';
12
+ images: string[] = []; // attr: none (JS only)
13
+ rating: number = 0; // 0-5, supports half stars
14
+ reviewCount: number = 0; // attr: review-count
15
+ variants: ProductVariant[] = []; // attr: none (JS only)
16
+ inStock: boolean = true; // attr: in-stock
17
+ variant: 'vertical'|'horizontal'|'compact'|'featured'|'minimal'|'grid' = 'vertical';
18
+ badge: string = ''; // Badge text (e.g. "SALE", "NEW")
19
+ badgeVariant: 'sale'|'new'|'featured' = 'sale'; // attr: badge-variant
20
+ loading: boolean = false; // Skeleton loading state
21
+ favorite: boolean = false; // Heart toggle state
22
+ stockCount: number = -1; // attr: stock-count, -1=hidden, <5=urgency
32
23
  ```
33
24
 
34
25
  ## Events
35
26
 
36
- - `add-to-cart` -> `{ name: string; price: number; salePrice: number | null; selectedVariants: Record<string, string> }`
37
- - `variant-select` -> `{ type: string; value: string }`
38
- - `image-click` -> `{ index: number; src: string }`
39
- - `favorite` -> `{ favorited: boolean }`
40
- - `quick-view` -> `void`
27
+ - `add-to-cart` `{ name, price, salePrice, selectedVariants: Record<string, string> }`
28
+ - `variant-select` `{ type: string, value: string }`
29
+ - `image-click` `{ index: number, src: string }`
30
+ - `favorite` `{ favorited: boolean }`
31
+ - `quick-view` `void`
41
32
 
42
33
  ## CSS Parts
43
34
 
44
- `base`, `gallery`, `body`, `title`, `rating`, `stars`, `price`, `price-current`, `price-original`, `discount`, `stock`, `variants`, `variant-group`, `variant-option`, `cta`, `badge`, `favorite-btn`, `image`
35
+ - `base` - Outer card container
36
+ - `gallery` - Image gallery area
37
+ - `body` - Card body content
38
+ - `title` - Product name heading
39
+ - `rating` - Star rating area
40
+ - `stars` - Star rating container
41
+ - `price` - Price display area
42
+ - `price-current` - Current price
43
+ - `price-original` - Original price (strikethrough on sale)
44
+ - `discount` - Discount percentage badge
45
+ - `stock` - Stock status indicator
46
+ - `variants` - Variant selectors area
47
+ - `variant-group` - Variant selector group
48
+ - `variant-option` - Individual variant option button
49
+ - `cta` - Add-to-cart button
50
+ - `badge` - Product badge
51
+ - `favorite-btn` - Favorite/heart button
52
+ - `image` - Gallery image element
45
53
 
46
- ## Usage
54
+ ## Basic Usage
47
55
 
48
56
  ```html
49
- <snice-product-card
50
- name="Running Shoes"
51
- price="129.99"
52
- sale-price="89.99"
53
- rating="4.5"
54
- review-count="342"
55
- in-stock>
56
- </snice-product-card>
57
+ <snice-product-card name="Running Shoes" price="129.99" rating="4.5" review-count="342" in-stock></snice-product-card>
57
58
  ```
58
59
 
59
60
  ```typescript
60
- card.images = ['shoe1.jpg', 'shoe2.jpg', 'shoe3.jpg'];
61
+ import 'snice/components/product-card/snice-product-card';
62
+
63
+ card.images = ['shoe1.jpg', 'shoe2.jpg'];
61
64
  card.variants = [
62
65
  { type: 'Size', options: ['S', 'M', 'L', 'XL'] },
63
66
  { type: 'Color', options: ['#1a1a2e', '#e94560', '#0f3460'] }
@@ -67,3 +70,17 @@ card.addEventListener('add-to-cart', (e) => {
67
70
  console.log(e.detail.name, e.detail.selectedVariants);
68
71
  });
69
72
  ```
73
+
74
+ ## Accessibility
75
+
76
+ - Star rating has `aria-label` with numeric rating
77
+ - Variant selectors use `role="radiogroup"` / `role="radio"` with `aria-checked`
78
+ - Gallery navigation buttons have `aria-label`
79
+ - Favorite button has descriptive `aria-label`
80
+ - Out-of-stock disables CTA button
81
+
82
+ ## Types
83
+
84
+ ```typescript
85
+ interface ProductVariant { type: string; options: string[]; }
86
+ ```
@@ -5,18 +5,18 @@ Determinate circular progress indicator with animated SVG ring fill and optional
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- value: number = 0; // 0 to max
8
+ value: number = 0; // 0 to max
9
9
  max: number = 100;
10
10
  size: 'small'|'medium'|'large' = 'medium';
11
- thickness: number = 4; // ring stroke width
12
- color: string = ''; // custom ring color (CSS value)
13
- showValue: boolean = false; // attr: show-value, show percentage in center
14
- label: string = ''; // custom center text
11
+ thickness: number = 4; // Ring stroke width
12
+ color: string = ''; // Custom ring color (CSS value)
13
+ showValue: boolean = false; // attr: show-value, show percentage in center
14
+ label: string = ''; // Custom center text
15
15
  ```
16
16
 
17
17
  ## Events
18
18
 
19
- - `progress-complete` → `{ value, max, component }`
19
+ - `progress-complete` → `{ value, max, component }` - Value reached max
20
20
 
21
21
  ## CSS Parts
22
22
 
@@ -27,28 +27,24 @@ label: string = ''; // custom center text
27
27
  - `value` - Percentage text
28
28
  - `label` - Label text
29
29
 
30
- ## Usage
30
+ ## Basic Usage
31
31
 
32
32
  ```html
33
- <!-- Basic -->
34
- <snice-progress-ring value="75"></snice-progress-ring>
35
-
36
- <!-- With percentage display -->
37
- <snice-progress-ring value="42" show-value></snice-progress-ring>
38
-
39
- <!-- With label -->
33
+ <snice-progress-ring value="75" show-value></snice-progress-ring>
40
34
  <snice-progress-ring value="60" label="CPU"></snice-progress-ring>
41
-
42
- <!-- Custom color -->
43
35
  <snice-progress-ring value="80" color="#10b981" show-value></snice-progress-ring>
36
+ <snice-progress-ring value="50" size="large" thickness="6" show-value></snice-progress-ring>
37
+ ```
44
38
 
45
- <!-- Sizes -->
46
- <snice-progress-ring value="50" size="small"></snice-progress-ring>
47
- <snice-progress-ring value="50" size="large" show-value></snice-progress-ring>
48
-
49
- <!-- Custom thickness -->
50
- <snice-progress-ring value="65" thickness="6" show-value></snice-progress-ring>
39
+ ```typescript
40
+ import 'snice/components/progress-ring/snice-progress-ring';
51
41
 
52
- <!-- Custom max -->
53
- <snice-progress-ring value="150" max="200" show-value></snice-progress-ring>
42
+ ring.addEventListener('progress-complete', () => {
43
+ console.log('Complete!');
44
+ });
54
45
  ```
46
+
47
+ ## Accessibility
48
+
49
+ - Uses `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, `aria-valuemax`
50
+ - Label or percentage used as `aria-label`
@@ -1,6 +1,6 @@
1
1
  # snice-progress
2
2
 
3
- Progress indicator with linear or circular display.
3
+ Progress indicator with linear or circular display, indeterminate mode, striped/animated styles, and labels.
4
4
 
5
5
  ## Properties
6
6
 
@@ -8,75 +8,58 @@ Progress indicator with linear or circular display.
8
8
  value: number = 0;
9
9
  max: number = 100;
10
10
  variant: 'linear'|'circular' = 'linear';
11
- indeterminate: boolean = false;
12
11
  size: 'small'|'medium'|'large'|'xl'|'xxl'|'xxxl' = 'medium';
13
12
  color: 'primary'|'success'|'warning'|'error'|'info'|string = 'primary';
14
- showLabel: boolean = false; // attr: show-label
15
- label: string = '';
13
+ indeterminate: boolean = false;
14
+ showLabel: boolean = false; // attr: show-label
15
+ label: string = ''; // Custom label text
16
16
  striped: boolean = false;
17
17
  animated: boolean = false;
18
- thickness: number = 4; // Stroke width for circular variant
18
+ thickness: number = 4; // Circular stroke width
19
19
  ```
20
20
 
21
21
  ## Methods
22
22
 
23
- - `setProgress(value, max?)` - Set progress value
23
+ - `setProgress(value: number, max?: number)` - Set progress value
24
24
  - `getPercentage()` - Get calculated percentage (0-100)
25
25
 
26
26
  ## Events
27
27
 
28
- - `progress-change` → `{ value, max, percentage, indeterminate }`
28
+ - `progress-change` → `{ value, max, percentage, indeterminate }` - Value changed
29
+
30
+ ## CSS Parts
31
+
32
+ Linear: `base`, `bar`, `label`
33
+ Circular: `base`, `circle`, `circle-bg`, `circle-bar`, `label`
34
+
35
+ ## CSS Custom Properties
36
+
37
+ ```css
38
+ --progress-height: 0.5rem;
39
+ --progress-radius: 4px;
40
+ --progress-bg: var(--snice-color-border, rgb(226 226 226));
41
+ --progress-color: var(--snice-color-primary, rgb(37 99 235));
42
+ --progress-animation-duration: 1.5s;
43
+ ```
29
44
 
30
- ## Usage
45
+ ## Basic Usage
31
46
 
32
47
  ```html
33
- <!-- Linear -->
34
48
  <snice-progress value="50"></snice-progress>
35
-
36
- <!-- Circular -->
37
49
  <snice-progress variant="circular" value="75" size="xl"></snice-progress>
38
-
39
- <!-- Indeterminate -->
40
50
  <snice-progress indeterminate></snice-progress>
41
-
42
- <!-- With label -->
43
51
  <snice-progress value="60" show-label></snice-progress>
44
- <snice-progress value="60" label="Uploading..."></snice-progress>
45
-
46
- <!-- Striped and animated -->
47
52
  <snice-progress value="70" striped animated></snice-progress>
48
-
49
- <!-- Colors -->
50
53
  <snice-progress value="80" color="success"></snice-progress>
51
- <snice-progress value="80" color="#3b82f6"></snice-progress>
52
-
53
- <!-- Custom max -->
54
- <snice-progress value="3" max="10"></snice-progress>
55
54
  ```
56
55
 
57
56
  ```typescript
57
+ import 'snice/components/progress/snice-progress';
58
58
  progress.setProgress(75);
59
- progress.setProgress(3, 10);
60
59
  console.log(progress.getPercentage());
61
60
  ```
62
61
 
63
- **CSS Parts (linear):**
64
- - `base` - Outer progress container
65
- - `bar` - The progress bar fill
66
- - `label` - Percentage or custom label text
67
-
68
- **CSS Parts (circular):**
69
- - `base` - Outer progress container
70
- - `circle` - The SVG element
71
- - `circle-bg` - Background circle stroke
72
- - `circle-bar` - Foreground progress arc
73
- - `label` - Percentage or custom label text
74
-
75
- ## Features
76
-
77
- - Linear and circular variants
78
- - Indeterminate mode for unknown progress
79
- - Optional percentage or custom label
80
- - Striped and animated styles
81
- - 5 semantic + custom CSS colors
82
- - 6 sizes (small through xxxl)
62
+ ## Accessibility
63
+
64
+ - Uses `role="progressbar"` with `aria-valuenow`, `aria-valuemin`, `aria-valuemax`
65
+ - Label text used as `aria-label`
@@ -1,6 +1,6 @@
1
1
  # snice-qr-code
2
2
 
3
- QR code generator with customizable styling and export.
3
+ QR code generator with customizable styling, center overlays, and export.
4
4
 
5
5
  ## Properties
6
6
 
@@ -8,7 +8,7 @@ QR code generator with customizable styling and export.
8
8
  value: string = '';
9
9
  size: number = 200;
10
10
  errorCorrectionLevel: 'L'|'M'|'Q'|'H' = 'M'; // attr: error-correction-level
11
- renderMode: 'canvas'|'svg' = 'canvas'; // attr: render-mode
11
+ renderMode: 'canvas'|'svg' = 'canvas'; // attr: render-mode
12
12
  dotStyle: 'square'|'rounded'|'dots' = 'square'; // attr: dot-style
13
13
  margin: number = 4;
14
14
  fgColor: string = '#000000'; // attr: fg-color
@@ -24,50 +24,48 @@ textOutlineColor: string = '#ffffff'; // attr: text-outline-color
24
24
 
25
25
  ## Methods
26
26
 
27
- - `toSVGString()` - Export as SVG markup string (sync, only when renderMode='svg')
27
+ - `toSVGString()` - SVG markup string (sync, only when renderMode='svg')
28
28
  - `toDataURL(type?, quality?)` - Export as data URL (async)
29
29
  - `toBlob(type?, quality?)` - Export as Blob (async)
30
30
  - `download(filename?)` - Download as image file
31
31
 
32
32
  ## CSS Custom Properties
33
33
 
34
- - `--qr-bg` - Container background
35
- - `--qr-border-radius` - Container border radius
36
- - `--qr-padding` - Container padding
34
+ - `--qr-bg` - Container background (`hsl(0 0% 100%)`)
35
+ - `--qr-border-radius` - Container border radius (`0`)
36
+ - `--qr-padding` - Container padding (`0`)
37
37
 
38
- ## Usage
38
+ ## CSS Parts
39
+
40
+ - `base` - QR code container div
41
+
42
+ ## Basic Usage
39
43
 
40
44
  ```html
41
- <snice-qr-code value="https://example.com" size="250"></snice-qr-code>
45
+ <snice-qr-code value="https://example.com"></snice-qr-code>
42
46
 
43
- <!-- Custom colors -->
44
- <snice-qr-code value="https://example.com" fg-color="#2196f3" bg-color="#e3f2fd"></snice-qr-code>
47
+ <!-- Custom colors + dot style -->
48
+ <snice-qr-code value="https://example.com" fg-color="#2196f3" dot-style="rounded"></snice-qr-code>
45
49
 
46
- <!-- With center image -->
50
+ <!-- Center image overlay (use high error correction) -->
47
51
  <snice-qr-code value="https://example.com" include-image image-url="/logo.png" error-correction-level="H"></snice-qr-code>
48
52
 
49
- <!-- Dot styles -->
50
- <snice-qr-code value="https://example.com" dot-style="rounded"></snice-qr-code>
53
+ <!-- Center text overlay -->
54
+ <snice-qr-code value="https://example.com" center-text="SCAN" error-correction-level="H"></snice-qr-code>
55
+
56
+ <!-- SVG render mode -->
57
+ <snice-qr-code value="https://example.com" render-mode="svg"></snice-qr-code>
51
58
  ```
52
59
 
53
60
  ```typescript
54
- qr.value = 'https://example.com';
61
+ const qr = document.querySelector('snice-qr-code');
55
62
  const url = await qr.toDataURL('image/png');
56
63
  const blob = await qr.toBlob('image/png');
57
64
  qr.download('qr-code.png');
65
+ const svg = qr.toSVGString(); // only when renderMode='svg'
58
66
  ```
59
67
 
60
- **CSS Parts:**
61
- - `base` - QR code container div
62
-
63
- ## Common Data Formats
68
+ ## Accessibility
64
69
 
65
- ```typescript
66
- // URL: 'https://example.com'
67
- // Email: 'mailto:name@example.com'
68
- // Phone: 'tel:+1234567890'
69
- // SMS: 'sms:+1234567890?body=Hello'
70
- // WiFi: 'WIFI:T:WPA;S:NetworkName;P:password;;'
71
- // Geo: 'geo:37.7749,-122.4194'
72
- // vCard: 'BEGIN:VCARD\nVERSION:3.0\nFN:Name\nEND:VCARD'
73
- ```
70
+ - Purely visual output, no interactive elements
71
+ - Provide adjacent text or wrapper `aria-label` for screen readers
@@ -1,6 +1,6 @@
1
1
  # snice-qr-reader
2
2
 
3
- QR code scanner using device camera and ZXing WASM decoder.
3
+ QR code scanner using device camera with real-time detection.
4
4
 
5
5
  ## Properties
6
6
 
@@ -15,10 +15,10 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
15
15
 
16
16
  ## Methods
17
17
 
18
- - `start()` - Start camera and scanning
18
+ - `start()` - Start camera and scanning (async)
19
19
  - `stop()` - Stop scanning and release camera
20
- - `snap()` - Take snapshot (manual-snap mode), returns QR data or null
21
- - `scanImage(file: File)` - Scan QR code from image file
20
+ - `snap()` - Take snapshot, returns QR data string or null (async)
21
+ - `scanImage(file: File)` - Scan QR code from image file (async)
22
22
  - `switchCamera()` - Toggle front/back camera
23
23
 
24
24
  ## Events
@@ -28,7 +28,15 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
28
28
  - `camera-ready` → `{ reader }`
29
29
  - `camera-error` → `{ error: any, reader }`
30
30
 
31
- ## Usage
31
+ ## CSS Custom Properties
32
+
33
+ - `--qr-reader-bg` - Container background (`rgb(0 0 0)`)
34
+ - `--qr-reader-overlay` - Overlay/gradient color (`rgb(0 0 0 / 0.7)`)
35
+ - `--qr-reader-controls-color` - Button icon/text color (`rgb(255 255 255)`)
36
+ - `--qr-reader-btn-bg` - Button background (`rgb(0 0 0 / 0.4)`)
37
+ - `--qr-reader-btn-hover-bg` - Button hover background (`rgb(0 0 0 / 0.6)`)
38
+
39
+ ## Basic Usage
32
40
 
33
41
  ```html
34
42
  <!-- Auto-start continuous scanning -->
@@ -46,28 +54,17 @@ tapStart: boolean = false; // attr: tap-start, tap viewport to start/st
46
54
 
47
55
  ```typescript
48
56
  reader.addEventListener('qr-scan', (e) => console.log(e.detail.data));
49
- reader.start();
57
+ await reader.start();
50
58
 
51
59
  // Manual snap
52
60
  const result = await reader.snap();
61
+
62
+ // Scan from file
63
+ const data = await reader.scanImage(file);
53
64
  ```
54
65
 
55
- ## CSS Custom Properties
66
+ ## Accessibility
56
67
 
57
- - `--qr-reader-bg` - Container background (default: `rgb(0 0 0)`)
58
- - `--qr-reader-overlay` - Overlay/gradient color (default: `rgb(0 0 0 / 0.7)`)
59
- - `--qr-reader-controls-color` - Button icon/text color (default: `rgb(255 255 255)`)
60
- - `--qr-reader-btn-bg` - Button background (default: `rgb(0 0 0 / 0.4)`)
61
- - `--qr-reader-btn-hover-bg` - Button hover background (default: `rgb(0 0 0 / 0.6)`)
62
-
63
- ## Features
64
-
65
- - ZXing WASM decoder (Apache 2.0 + MIT)
66
- - Web Worker for non-blocking detection
67
- - Front/back camera switching
68
- - Configurable scan speed (1-10)
69
- - Pick-first mode (max speed, auto-stop)
70
- - Manual snapshot mode
71
- - Tap-to-start interaction
68
+ - Requires HTTPS for mobile camera access
69
+ - Built-in control buttons with icon labels
72
70
  - Camera released on stop/dispose
73
- - HTTPS required for mobile
@@ -1,6 +1,6 @@
1
1
  # snice-radio
2
2
 
3
- Form radio button input with automatic group management.
3
+ Form radio button input with automatic group management by name.
4
4
 
5
5
  ## Properties
6
6
 
@@ -15,19 +15,19 @@ size: 'small'|'medium'|'large' = 'medium';
15
15
  name: string = ''; // Group name for mutual exclusion
16
16
  value: string = '';
17
17
  label: string = '';
18
- description: string = ''; // Subtitle text (block variant)
18
+ description: string = ''; // Subtitle text (block variant only)
19
19
  ```
20
20
 
21
21
  ## Methods
22
22
 
23
- - `focus()` - Focus radio
23
+ - `focus()` - Focus radio input
24
24
  - `blur()` - Remove focus
25
25
  - `click()` - Programmatic click
26
26
  - `select()` - Select and fire change event
27
27
 
28
28
  ## Events
29
29
 
30
- - `radio-change` → `{ checked, value, radio }`
30
+ - `radio-change` → `{ checked: boolean, value: string, radio: SniceRadioElement }`
31
31
 
32
32
  ## Slots
33
33
 
@@ -35,15 +35,15 @@ description: string = ''; // Subtitle text (block variant)
35
35
 
36
36
  ## CSS Parts
37
37
 
38
- - `input` - Hidden radio input
38
+ - `input` - Hidden native radio input
39
39
  - `radio` - Radio circle container
40
40
  - `dot` - Inner dot indicator
41
41
  - `spinner` - Loading spinner
42
- - `label` - Label text
43
42
  - `content` - Content wrapper (block variant)
43
+ - `label` - Label text
44
44
  - `description` - Description text (block variant)
45
45
 
46
- ## Usage
46
+ ## Basic Usage
47
47
 
48
48
  ```html
49
49
  <!-- Radio group -->
@@ -59,7 +59,6 @@ description: string = ''; // Subtitle text (block variant)
59
59
  <snice-radio label="Disabled" disabled></snice-radio>
60
60
  <snice-radio label="Loading" loading></snice-radio>
61
61
  <snice-radio label="Invalid" invalid></snice-radio>
62
- <snice-radio label="Required" required></snice-radio>
63
62
 
64
63
  <!-- Block variant (card-style) -->
65
64
  <snice-radio variant="block" name="plan" value="free" label="Free" description="For individuals" checked>
@@ -76,11 +75,14 @@ radio.addEventListener('radio-change', (e) => {
76
75
  });
77
76
  ```
78
77
 
79
- ## Features
78
+ ## Keyboard Navigation
79
+
80
+ - Arrow keys navigate within group (wraps around)
81
+ - Focused radio is auto-selected
82
+
83
+ ## Accessibility
80
84
 
81
- - Automatic radio group management by name
82
- - 3 sizes
83
- - Block variant: card-style layout with description + suffix slot
84
- - Loading state with spinner
85
- - Keyboard accessible (arrow keys navigate group, wraps around)
86
- - Contains native `<input type="radio">` for form participation
85
+ - Native `<input type="radio">` for form participation
86
+ - `aria-invalid` when invalid
87
+ - Focus ring on keyboard navigation
88
+ - Required indicator on label
@@ -18,35 +18,46 @@ orientation: 'horizontal'|'vertical' = 'horizontal';
18
18
 
19
19
  ## Events
20
20
 
21
- - `range-change` -> `{ valueLow: number, valueHigh: number, component: SniceRangeSliderElement }`
21
+ - `range-change` `{ valueLow: number, valueHigh: number, component: SniceRangeSliderElement }`
22
22
 
23
23
  ## CSS Parts
24
24
 
25
25
  - `track` - The slider track
26
- - `range` - The highlighted range between thumbs
26
+ - `range` - Highlighted range between thumbs
27
27
  - `thumb-low` - Low value thumb
28
28
  - `thumb-high` - High value thumb
29
29
  - `label-min` - Min label text
30
30
  - `label-max` - Max label text
31
31
 
32
- ## Usage
32
+ ## Basic Usage
33
33
 
34
34
  ```html
35
- <!-- Basic -->
36
35
  <snice-range-slider value-low="20" value-high="80"></snice-range-slider>
37
36
 
38
- <!-- With tooltips -->
39
- <snice-range-slider show-tooltip value-low="25" value-high="75"></snice-range-slider>
40
-
41
- <!-- With labels -->
42
- <snice-range-slider show-labels min="0" max="1000"></snice-range-slider>
37
+ <!-- With tooltips and labels -->
38
+ <snice-range-slider show-tooltip show-labels min="0" max="1000" value-low="200" value-high="800"></snice-range-slider>
43
39
 
44
40
  <!-- Custom step -->
45
41
  <snice-range-slider min="0" max="100" step="5"></snice-range-slider>
46
42
 
47
43
  <!-- Vertical -->
48
44
  <snice-range-slider orientation="vertical" value-low="30" value-high="70"></snice-range-slider>
45
+ ```
49
46
 
50
- <!-- Disabled -->
51
- <snice-range-slider disabled value-low="20" value-high="60"></snice-range-slider>
47
+ ```typescript
48
+ slider.addEventListener('range-change', (e) => {
49
+ console.log(e.detail.valueLow, e.detail.valueHigh);
50
+ });
52
51
  ```
52
+
53
+ ## Keyboard Navigation
54
+
55
+ - Arrow keys adjust focused thumb by step
56
+ - Home/End move to min/max bounds
57
+ - Each thumb independently focusable
58
+
59
+ ## Accessibility
60
+
61
+ - `role="slider"` on each thumb with aria-valuenow/min/max
62
+ - Focus ring on keyboard navigation
63
+ - Track click moves nearest thumb