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,16 +1,18 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/rating.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/rating.md -->
2
2
 
3
- # Rating Component
3
+ # Rating
4
4
 
5
- The rating component provides an interactive star rating input with configurable precision (full or half stars), custom icons, multiple sizes, and full keyboard navigation.
5
+ An interactive star rating input with configurable precision, custom icons, and keyboard navigation.
6
6
 
7
7
  ## Table of Contents
8
+
8
9
  - [Properties](#properties)
9
10
  - [Events](#events)
10
11
  - [CSS Custom Properties](#css-custom-properties)
11
12
  - [CSS Parts](#css-parts)
12
13
  - [Basic Usage](#basic-usage)
13
14
  - [Examples](#examples)
15
+ - [Keyboard Navigation](#keyboard-navigation)
14
16
  - [Accessibility](#accessibility)
15
17
 
16
18
  ## Properties
@@ -19,81 +21,50 @@ The rating component provides an interactive star rating input with configurable
19
21
  |----------|------|---------|-------------|
20
22
  | `value` | `number` | `0` | Current rating value |
21
23
  | `max` | `number` | `5` | Maximum number of stars |
22
- | `icon` | `string` | `'\u2605'` (filled star) | Character used for each rating item |
24
+ | `icon` | `string` | `''` | Character used for each rating item |
23
25
  | `size` | `'small' \| 'medium' \| 'large'` | `'medium'` | Display size |
24
26
  | `readonly` | `boolean` | `false` | Disable user interaction |
25
- | `precision` | `'full' \| 'half'` | `'full'` | Click precision (full star or half star increments) |
27
+ | `precision` | `'full' \| 'half'` | `'full'` | Click precision (full or half star increments) |
26
28
 
27
29
  ## Events
28
30
 
29
- #### `rating-change`
30
- Fired when the rating value changes.
31
-
32
- **Event Detail:**
33
- ```typescript
34
- {
35
- value: number; // The new rating value
36
- }
37
- ```
31
+ | Event | Detail | Description |
32
+ |-------|--------|-------------|
33
+ | `rating-change` | `{ value: number }` | Fired when the rating value changes |
38
34
 
39
35
  ## CSS Custom Properties
40
36
 
41
37
  | Property | Description | Default |
42
38
  |----------|-------------|---------|
43
- | `--rating-color` | Filled star color | `var(--snice-color-warning)` |
44
- | `--rating-color-empty` | Empty star color | `var(--snice-color-border)` |
45
- | `--rating-size` | Star size (set automatically by `size` property) | `1.5rem` (medium) |
39
+ | `--rating-color` | Filled star color | `var(--snice-color-warning, rgb(234 179 8))` |
40
+ | `--rating-color-empty` | Empty star color | `var(--snice-color-border, rgb(226 226 226))` |
41
+ | `--rating-size` | Star size (set automatically by `size` property) | `1.5rem` |
46
42
 
47
43
  ## CSS Parts
48
44
 
49
- Style internal elements from outside the shadow DOM using `::part()`.
50
-
51
- | Part | Element | Description |
52
- |------|---------|-------------|
53
- | `base` | `<div>` | Outer rating container |
54
- | `star` | `<span>` | Individual star/icon element |
55
-
56
- ```css
57
- snice-rating::part(star) {
58
- transition: transform 0.2s ease;
59
- }
60
-
61
- snice-rating::part(star):hover {
62
- transform: scale(1.2);
63
- }
64
-
65
- snice-rating::part(base) {
66
- gap: 0.25rem;
67
- }
68
- ```
45
+ | Part | Description |
46
+ |------|-------------|
47
+ | `base` | The outer rating container |
48
+ | `star` | Individual star/icon element |
69
49
 
70
50
  ## Basic Usage
71
51
 
72
- ```html
73
- <snice-rating value="3" max="5"></snice-rating>
74
- ```
75
-
76
52
  ```typescript
77
53
  import 'snice/components/rating/snice-rating';
78
54
  ```
79
55
 
80
- ## Examples
81
-
82
- ### Basic Rating
83
-
84
56
  ```html
85
- <snice-rating value="3"></snice-rating>
86
- <snice-rating value="4" max="5"></snice-rating>
87
- <snice-rating value="0"></snice-rating>
57
+ <snice-rating value="3" max="5"></snice-rating>
88
58
  ```
89
59
 
60
+ ## Examples
61
+
90
62
  ### Half-Star Precision
91
63
 
92
- Use the `precision="half"` attribute to allow half-star selections.
64
+ Use `precision="half"` to allow half-star selections.
93
65
 
94
66
  ```html
95
67
  <snice-rating value="3.5" precision="half"></snice-rating>
96
- <snice-rating value="2.5" precision="half" max="5"></snice-rating>
97
68
  ```
98
69
 
99
70
  ### Sizes
@@ -111,44 +82,21 @@ Use the `size` attribute to adjust the display size.
111
82
  Use the `icon` attribute to replace the default star with any character or emoji.
112
83
 
113
84
  ```html
114
- <!-- Heart rating -->
115
- <snice-rating value="3" icon="&#x2764;" max="5"></snice-rating>
116
-
117
- <!-- Thumbs up rating -->
118
- <snice-rating value="7" icon="&#x1F44D;" max="10"></snice-rating>
119
-
120
- <!-- Circle rating -->
121
- <snice-rating value="2" icon="&#x25CF;" max="4"></snice-rating>
85
+ <snice-rating value="3" icon="❤" max="5"></snice-rating>
86
+ <snice-rating value="7" icon="👍" max="10"></snice-rating>
122
87
  ```
123
88
 
124
89
  ### Readonly Display
125
90
 
126
- Use the `readonly` attribute to display a rating without allowing interaction.
91
+ Use `readonly` to display a rating without allowing interaction.
127
92
 
128
93
  ```html
129
94
  <snice-rating value="4.5" precision="half" readonly></snice-rating>
130
- <snice-rating value="3" readonly></snice-rating>
131
95
  ```
132
96
 
133
- ### Handling Rating Changes
97
+ ### Custom Colors
134
98
 
135
- ```html
136
- <snice-rating id="product-rating" value="0" max="5"></snice-rating>
137
- <p id="rating-label">No rating selected</p>
138
-
139
- <script type="module">
140
- import 'snice/components/rating/snice-rating';
141
-
142
- const rating = document.getElementById('product-rating');
143
- const label = document.getElementById('rating-label');
144
-
145
- rating.addEventListener('rating-change', (e) => {
146
- label.textContent = `You rated: ${e.detail.value} out of 5`;
147
- });
148
- </script>
149
- ```
150
-
151
- ### Custom Styled Rating
99
+ Override CSS custom properties to customize the colors.
152
100
 
153
101
  ```html
154
102
  <style>
@@ -157,14 +105,32 @@ Use the `readonly` attribute to display a rating without allowing interaction.
157
105
  --rating-color-empty: #f8bbd0;
158
106
  }
159
107
  </style>
108
+ <snice-rating class="custom-rating" value="3" icon="❤" max="5"></snice-rating>
109
+ ```
110
+
111
+ ### Event Handling
112
+
113
+ Listen to `rating-change` to respond to user input.
160
114
 
161
- <snice-rating class="custom-rating" value="3" icon="&#x2764;" max="5"></snice-rating>
115
+ ```typescript
116
+ rating.addEventListener('rating-change', (e) => {
117
+ console.log('You rated:', e.detail.value);
118
+ });
162
119
  ```
163
120
 
121
+ ## Keyboard Navigation
122
+
123
+ | Key | Action |
124
+ |-----|--------|
125
+ | `ArrowRight` / `ArrowUp` | Increase rating by one step |
126
+ | `ArrowLeft` / `ArrowDown` | Decrease rating by one step |
127
+
128
+ Step size is 1 for `'full'` precision and 0.5 for `'half'` precision.
129
+
164
130
  ## Accessibility
165
131
 
166
- - **ARIA role**: Uses `role="radiogroup"` for the container with individual `role="radio"` per star
167
- - **Keyboard support**: Arrow keys (Left/Down to decrease, Right/Up to increase) navigate the rating; step size matches precision (1 for full, 0.5 for half)
168
- - **Focus indicators**: Clear focus ring on the active star
169
- - **Readonly mode**: When `readonly` is set, the component is not focusable or interactive
170
- - **Screen readers**: Current value and maximum are announced
132
+ - Uses `role="radiogroup"` for the container with `role="radio"` per star
133
+ - Arrow keys navigate the rating value
134
+ - Focus ring shown on keyboard navigation
135
+ - When `readonly` is set, the component is not focusable
136
+ - Each star announces its position (e.g., "3 of 5")
@@ -1,50 +1,48 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/receipt.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/receipt.md -->
2
2
 
3
- # Receipt Component
3
+ # Receipt
4
4
 
5
5
  A transaction receipt component for displaying purchase details with merchant info, line items, totals, and payment method. Supports multiple visual variants including thermal printer style.
6
6
 
7
- ## Importing
7
+ ## Table of Contents
8
8
 
9
- **ESM (bundler)**
10
- ```typescript
11
- import 'snice/components/receipt/snice-receipt';
12
- ```
13
-
14
- **CDN**
15
- ```html
16
- <script src="snice-runtime.min.js"></script>
17
- <script src="snice-receipt.min.js"></script>
18
- ```
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Slots](#slots)
12
+ - [CSS Custom Properties](#css-custom-properties)
13
+ - [CSS Parts](#css-parts)
14
+ - [Basic Usage](#basic-usage)
15
+ - [Examples](#examples)
16
+ - [Accessibility](#accessibility)
19
17
 
20
18
  ## Properties
21
19
 
22
20
  | Property | Type | Default | Description |
23
21
  |----------|------|---------|-------------|
24
- | `receiptNumber` | `string` | `''` | Receipt identifier |
22
+ | `receiptNumber` (attr: `receipt-number`) | `string` | `''` | Receipt identifier |
25
23
  | `date` | `string` | `''` | Receipt date/time (displayed as-is) |
26
- | `currency` | `string` | `'USD'` | Currency code for formatting |
27
- | `locale` | `string` | `''` | Locale for currency formatting |
28
- | `merchant` | `ReceiptMerchant` | `{ name: '' }` | Merchant/store information |
29
- | `items` | `ReceiptItem[]` | `[]` | Line items |
30
- | `tax` | `number` | `0` | Tax amount (single tax) |
31
- | `taxes` | `ReceiptTaxLine[]` | `[]` | Multiple tax lines |
32
- | `subtotal` | `number` | `0` | Pre-tax subtotal (auto-calculated if 0) |
24
+ | `currency` | `string` | `'USD'` | ISO 4217 currency code for formatting |
25
+ | `locale` | `string` | `''` | Locale for `Intl.NumberFormat` currency formatting |
26
+ | `merchant` | `ReceiptMerchant` | `{ name: '' }` | Merchant/store information (JS only) |
27
+ | `items` | `ReceiptItem[]` | `[]` | Line items (JS only) |
28
+ | `tax` | `number` | `0` | Single tax amount |
29
+ | `taxes` | `ReceiptTaxLine[]` | `[]` | Multiple tax lines (overrides `tax`, JS only) |
30
+ | `subtotal` | `number` | `0` | Pre-tax subtotal (auto-calculated from items if 0) |
33
31
  | `total` | `number` | `0` | Grand total (auto-calculated if 0) |
34
32
  | `tip` | `number` | `0` | Tip/gratuity amount |
35
33
  | `discount` | `number` | `0` | Discount amount |
36
- | `discountLabel` | `string` | `'Discount'` | Label for discount line |
37
- | `paymentMethod` | `string` | `''` | Payment method displayed |
38
- | `paymentDetails` | `string` | `''` | Additional payment info |
34
+ | `discountLabel` (attr: `discount-label`) | `string` | `'Discount'` | Label for discount line |
35
+ | `paymentMethod` (attr: `payment-method`) | `string` | `''` | Payment method text |
36
+ | `paymentDetails` (attr: `payment-details`) | `string` | `''` | Additional payment info |
39
37
  | `variant` | `'standard' \| 'thermal' \| 'modern' \| 'minimal' \| 'detailed'` | `'standard'` | Visual style variant |
40
- | `showQr` | `boolean` | `false` | Show QR code placeholder |
41
- | `qrData` | `string` | `''` | QR code data |
42
- | `qrPosition` | `'top' \| 'bottom' \| 'footer'` | `'bottom'` | QR code placement |
43
- | `thankYou` | `string` | `'Thank you for your purchase!'` | Footer message |
38
+ | `showQr` (attr: `show-qr`) | `boolean` | `false` | Show QR code slot |
39
+ | `qrData` (attr: `qr-data`) | `string` | `''` | QR code data |
40
+ | `qrPosition` (attr: `qr-position`) | `'top' \| 'bottom' \| 'footer'` | `'bottom'` | QR code placement |
41
+ | `thankYou` (attr: `thank-you`) | `string` | `'Thank you for your purchase!'` | Footer message |
44
42
  | `cashier` | `string` | `''` | Cashier name |
45
- | `terminalId` | `string` | `''` | Terminal/register identifier |
43
+ | `terminalId` (attr: `terminal-id`) | `string` | `''` | Terminal/register identifier |
46
44
 
47
- ### ReceiptMerchant Interface
45
+ ### Type Interfaces
48
46
 
49
47
  ```typescript
50
48
  interface ReceiptMerchant {
@@ -56,11 +54,7 @@ interface ReceiptMerchant {
56
54
  website?: string;
57
55
  taxId?: string;
58
56
  }
59
- ```
60
-
61
- ### ReceiptItem Interface
62
57
 
63
- ```typescript
64
58
  interface ReceiptItem {
65
59
  name: string;
66
60
  quantity: number;
@@ -69,11 +63,7 @@ interface ReceiptItem {
69
63
  discount?: number;
70
64
  note?: string;
71
65
  }
72
- ```
73
-
74
- ### ReceiptTaxLine Interface
75
66
 
76
- ```typescript
77
67
  interface ReceiptTaxLine {
78
68
  label: string;
79
69
  rate?: number;
@@ -83,59 +73,59 @@ interface ReceiptTaxLine {
83
73
 
84
74
  ## Methods
85
75
 
86
- | Method | Returns | Description |
87
- |--------|---------|-------------|
88
- | `print()` | `void` | Open print dialog with receipt styles |
76
+ | Method | Arguments | Description |
77
+ |--------|-----------|-------------|
78
+ | `print()` | | Open print dialog with receipt styles |
89
79
 
90
80
  ## Slots
91
81
 
92
- | Slot Name | Description |
93
- |-----------|-------------|
94
- | `qr` | QR code content |
95
- | `barcode` | Barcode content (displayed near footer) |
96
- | (default) | Additional content in footer |
82
+ | Name | Description |
83
+ |------|-------------|
84
+ | (default) | Additional footer content below thank-you message |
85
+ | `qr` | QR code content (shown when `show-qr` is set) |
86
+ | `barcode` | Barcode content displayed near the footer |
97
87
 
98
88
  ## CSS Custom Properties
99
89
 
100
- | Property | Default | Description |
101
- |----------|---------|-------------|
102
- | `--receipt-max-width` | `22rem` | Maximum width |
103
- | `--receipt-padding` | `1.5rem` | Internal padding |
104
- | `--receipt-bg` | `white` | Background color |
105
- | `--receipt-text` | `rgb(23 23 23)` | Text color |
106
- | `--receipt-text-secondary` | `rgb(82 82 82)` | Secondary text |
107
- | `--receipt-border` | `rgb(226 226 226)` | Border color |
108
- | `--receipt-border-radius` | `8px` | Border radius |
109
- | `--receipt-divider-style` | `dashed` | Divider line style |
110
- | `--receipt-merchant-font-size` | `1.25rem` | Merchant name size |
111
- | `--receipt-total-font-size` | `1.125rem` | Total amount size |
112
- | `--receipt-total-font-weight` | `700` | Total weight |
113
- | `--receipt-thermal-font` | `'Courier New', monospace` | Thermal variant font |
114
- | `--receipt-thermal-width` | `18rem` | Thermal variant width |
115
- | `--receipt-thermal-bg` | `rgb(255 255 248)` | Thermal variant background |
116
- | `--receipt-modern-radius` | `12px` | Modern variant radius |
117
- | `--receipt-modern-shadow` | `0 4px 24px rgb(0 0 0 / 0.08)` | Modern variant shadow |
118
- | `--receipt-qr-size` | `6rem` | QR code size |
90
+ | Property | Description | Default |
91
+ |----------|-------------|---------|
92
+ | `--receipt-max-width` | Maximum width | `22rem` |
93
+ | `--receipt-padding` | Internal padding | `1.5rem` |
94
+ | `--receipt-bg` | Background color | `white` |
95
+ | `--receipt-text` | Text color | `rgb(23 23 23)` |
96
+ | `--receipt-text-secondary` | Secondary text | `rgb(82 82 82)` |
97
+ | `--receipt-border` | Border color | `rgb(226 226 226)` |
98
+ | `--receipt-border-radius` | Border radius | `8px` |
99
+ | `--receipt-divider-style` | Divider line style | `dashed` |
100
+ | `--receipt-merchant-font-size` | Merchant name size | `1.25rem` |
101
+ | `--receipt-total-font-size` | Total amount size | `1.125rem` |
102
+ | `--receipt-total-font-weight` | Total weight | `700` |
103
+ | `--receipt-thermal-font` | Thermal variant font | `'Courier New', monospace` |
104
+ | `--receipt-thermal-width` | Thermal variant width | `18rem` |
105
+ | `--receipt-thermal-bg` | Thermal variant background | `rgb(255 255 248)` |
106
+ | `--receipt-modern-radius` | Modern variant radius | `12px` |
107
+ | `--receipt-modern-shadow` | Modern variant shadow | `0 4px 24px rgb(0 0 0 / 0.08)` |
108
+ | `--receipt-qr-size` | QR code size | `6rem` |
119
109
 
120
110
  ## CSS Parts
121
111
 
122
112
  | Part | Description |
123
113
  |------|-------------|
124
114
  | `base` | Root container |
115
+ | `divider` | Section dividers |
125
116
  | `header` | Merchant header section |
126
117
  | `logo` | Merchant logo image |
127
118
  | `merchant-name` | Merchant name |
128
119
  | `merchant-address` | Merchant address |
129
120
  | `merchant-contact` | Contact info line |
130
- | `divider` | Horizontal dividers |
131
- | `meta` | Receipt metadata (number, date, etc.) |
132
- | `receipt-number` | Receipt number |
133
- | `date` | Receipt date |
134
- | `items-header` | Items section header |
121
+ | `meta` | Receipt metadata section |
122
+ | `receipt-number` | Receipt number value |
123
+ | `date` | Date value |
124
+ | `items-header` | Items column header row |
135
125
  | `items` | Items container |
136
126
  | `item` | Individual item row |
137
127
  | `item-name` | Item name |
138
- | `item-sku` | Item SKU |
128
+ | `item-sku` | Item SKU (detailed variant) |
139
129
  | `item-qty` | Item quantity |
140
130
  | `item-price` | Item price |
141
131
  | `totals` | Totals section |
@@ -154,6 +144,10 @@ interface ReceiptTaxLine {
154
144
 
155
145
  ## Basic Usage
156
146
 
147
+ ```typescript
148
+ import 'snice/components/receipt/snice-receipt';
149
+ ```
150
+
157
151
  ```html
158
152
  <snice-receipt
159
153
  receipt-number="RCT-48291"
@@ -165,8 +159,9 @@ interface ReceiptTaxLine {
165
159
  ```
166
160
 
167
161
  ```typescript
168
- rcpt.merchant = { name: 'Coffee Shop', address: '789 Main St' };
169
- rcpt.items = [
162
+ const receipt = document.querySelector('snice-receipt');
163
+ receipt.merchant = { name: 'Coffee Shop', address: '789 Main St' };
164
+ receipt.items = [
170
165
  { name: 'Latte', quantity: 2, price: 5.50 },
171
166
  { name: 'Muffin', quantity: 1, price: 3.95 }
172
167
  ];
@@ -174,43 +169,23 @@ rcpt.items = [
174
169
 
175
170
  ## Examples
176
171
 
177
- ### Standard Receipt
178
-
179
- ```html
180
- <snice-receipt
181
- receipt-number="RCT-001"
182
- date="2026-03-01 2:30 PM"
183
- payment-method="Credit Card">
184
- </snice-receipt>
185
- ```
186
-
187
- ```typescript
188
- receipt.merchant = {
189
- name: 'My Store',
190
- address: '123 Main St',
191
- phone: '(555) 123-4567'
192
- };
193
- receipt.items = [
194
- { name: 'Item 1', quantity: 1, price: 19.99 },
195
- { name: 'Item 2', quantity: 2, price: 9.99 }
196
- ];
197
- ```
198
-
199
172
  ### Thermal Printer Style
200
173
 
174
+ Use `variant="thermal"` for a monospace, narrow-width thermal printer aesthetic.
175
+
201
176
  ```html
202
177
  <snice-receipt
203
178
  variant="thermal"
204
179
  receipt-number="00847"
205
180
  date="03/01/2026 14:30"
206
- currency="USD"
207
- tax="2.10"
208
181
  payment-method="Cash">
209
182
  </snice-receipt>
210
183
  ```
211
184
 
212
185
  ### Modern Variant
213
186
 
187
+ Use `variant="modern"` for a card-based style with rounded sections and shadows.
188
+
214
189
  ```html
215
190
  <snice-receipt
216
191
  variant="modern"
@@ -220,18 +195,11 @@ receipt.items = [
220
195
  </snice-receipt>
221
196
  ```
222
197
 
223
- ### With Multiple Taxes
198
+ ### Multiple Tax Lines
224
199
 
225
- ```html
226
- <snice-receipt
227
- receipt-number="RCT-003"
228
- currency="CAD">
229
- </snice-receipt>
230
- ```
200
+ Set `taxes` for multi-line tax breakdowns (overrides single `tax` property).
231
201
 
232
202
  ```typescript
233
- receipt.merchant = { name: 'Canadian Store' };
234
- receipt.items = [{ name: 'Product', quantity: 1, price: 100 }];
235
203
  receipt.taxes = [
236
204
  { label: 'GST', rate: 5, amount: 5.00 },
237
205
  { label: 'PST', rate: 7, amount: 7.00 }
@@ -240,54 +208,48 @@ receipt.taxes = [
240
208
 
241
209
  ### With Tip
242
210
 
243
- ```html
244
- <snice-receipt
245
- receipt-number="T-128"
246
- date="2026-03-01"
247
- payment-method="Visa •••• 4242">
248
- </snice-receipt>
249
- ```
211
+ Set `tip` for restaurant-style receipts with gratuity.
250
212
 
251
213
  ```typescript
252
- receipt.merchant = { name: 'Bistro Restaurant' };
253
214
  receipt.items = [
254
215
  { name: 'Steak Dinner', quantity: 2, price: 32.00 },
255
216
  { name: 'Wine', quantity: 1, price: 45.00 }
256
217
  ];
257
- receipt.subtotal = 109.00;
258
218
  receipt.tax = 10.90;
259
- receipt.tip = 22.00; // 20% tip
260
- receipt.total = 141.90;
219
+ receipt.tip = 22.00;
261
220
  ```
262
221
 
263
222
  ### With QR Code
264
223
 
224
+ Set `show-qr` and use the `qr` slot for QR code content.
225
+
265
226
  ```html
266
- <snice-receipt
267
- receipt-number="RCT-004"
268
- show-qr
269
- qr-position="top">
227
+ <snice-receipt show-qr qr-position="bottom">
270
228
  <img slot="qr" src="/loyalty-qr.svg" alt="Loyalty QR" />
271
229
  </snice-receipt>
272
230
  ```
273
231
 
274
232
  ### With Barcode
275
233
 
234
+ Use the `barcode` slot for barcode content.
235
+
276
236
  ```html
277
237
  <snice-receipt receipt-number="RCT-005">
278
- <svg slot="barcode" viewBox="0 0 100 30">
279
- <!-- Barcode SVG -->
280
- </svg>
238
+ <svg slot="barcode" viewBox="0 0 100 30"><!-- barcode SVG --></svg>
281
239
  </snice-receipt>
282
240
  ```
283
241
 
284
- ### Print Receipt
242
+ ### Print
285
243
 
286
- ```html
287
- <snice-receipt></snice-receipt>
288
- <button>Print Receipt</button>
289
- ```
244
+ Use `print()` to open a print dialog with receipt styles.
290
245
 
291
246
  ```typescript
292
247
  receipt.print();
293
248
  ```
249
+
250
+ ## Accessibility
251
+
252
+ - Semantic HTML structure with logical content order
253
+ - Print styles included for all variants
254
+ - Currency formatted using `Intl.NumberFormat` for locale-appropriate display
255
+ - Subtotal auto-calculated from items if not set; total auto-calculated as subtotal + tax - discount + tip