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,174 +1,129 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/order-tracker.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/order-tracker.md -->
2
2
 
3
- # Order Tracker Component
3
+ # Order Tracker
4
+ `<snice-order-tracker>`
4
5
 
5
- The order tracker component displays an order status timeline with step indicators, tracking information, timestamps, and descriptions. Supports horizontal and vertical layouts.
6
+ An order status timeline with step indicators, tracking info, timestamps, and descriptions.
6
7
 
7
8
  ## Table of Contents
8
- - [Importing](#importing)
9
9
  - [Properties](#properties)
10
10
  - [Events](#events)
11
11
  - [CSS Parts](#css-parts)
12
12
  - [Basic Usage](#basic-usage)
13
13
  - [Examples](#examples)
14
14
  - [Accessibility](#accessibility)
15
-
16
- ## Importing
17
-
18
- **ESM (bundler)**
19
- ```typescript
20
- import 'snice/components/order-tracker/snice-order-tracker';
21
- ```
22
-
23
- **CDN**
24
- ```html
25
- <script src="snice-runtime.min.js"></script>
26
- <script src="snice-order-tracker.min.js"></script>
27
- ```
15
+ - [Data Types](#data-types)
28
16
 
29
17
  ## Properties
30
18
 
31
- | Property | Attribute | Type | Default | Description |
32
- |----------|-----------|------|---------|-------------|
33
- | `steps` | — | `OrderStep[]` | `[]` | Timeline steps |
34
- | `trackingNumber` | `tracking-number` | `string` | `''` | Tracking number |
35
- | `carrier` | `carrier` | `string` | `''` | Carrier name (e.g. UPS, FedEx) |
36
- | `variant` | `variant` | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout orientation |
37
-
38
- ### OrderStep Interface
39
-
40
- ```typescript
41
- interface OrderStep {
42
- label: string; // Step label
43
- status: 'pending' | 'active' | 'completed'; // Step status
44
- timestamp?: string; // When the step occurred
45
- description?: string; // Additional details
46
- icon?: string; // Custom icon (reserved for future use)
47
- }
48
- ```
19
+ | Property | Type | Default | Description |
20
+ |----------|------|---------|-------------|
21
+ | `steps` | `OrderStep[]` | `[]` | Timeline steps (set via JS) |
22
+ | `trackingNumber` (attr: `tracking-number`) | `string` | `''` | Tracking number |
23
+ | `carrier` | `string` | `''` | Carrier name (e.g. UPS, FedEx) |
24
+ | `variant` | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout orientation |
49
25
 
50
26
  ## Events
51
27
 
52
- #### `step-click`
53
- Fired when a step is clicked.
54
-
55
- **Event Detail:**
56
- ```typescript
57
- {
58
- step: OrderStep; // The clicked step
59
- index: number; // Step index (0-based)
60
- }
61
- ```
28
+ | Event | Detail | Description |
29
+ |-------|--------|-------------|
30
+ | `step-click` | `{ step: OrderStep, index: number }` | Fired when a step is clicked |
62
31
 
63
32
  ## CSS Parts
64
33
 
65
- | Part | Description |
66
- |------|-------------|
67
- | `base` | The outer tracker container |
68
- | `info` | Tracking info section |
69
- | `steps` | Steps container |
70
- | `step` | Individual step |
71
- | `step-indicator` | Step circle indicator |
72
- | `step-content` | Step label and details |
34
+ Style internal elements from outside the shadow DOM using `::part()`.
73
35
 
74
- ## Basic Usage
36
+ | Part | Element | Description |
37
+ |------|---------|-------------|
38
+ | `base` | `<div>` | The outer tracker container |
39
+ | `info` | `<div>` | Tracking info section (carrier, tracking number) |
40
+ | `steps` | `<div>` | The steps container |
41
+ | `step` | `<div>` | An individual step |
42
+ | `step-indicator` | `<div>` | Step number or check icon |
43
+ | `step-content` | `<div>` | Step label, timestamp, and description |
75
44
 
76
- ```html
77
- <snice-order-tracker></snice-order-tracker>
78
- ```
45
+ ## Basic Usage
79
46
 
80
47
  ```typescript
81
48
  import 'snice/components/order-tracker/snice-order-tracker';
82
49
  ```
83
50
 
84
- ## Examples
85
-
86
- ### Order In Transit
87
-
88
- A typical order tracking timeline with the shipment in transit.
89
-
90
51
  ```html
91
- <snice-order-tracker
92
- id="tracker"
93
- tracking-number="1Z999AA10123456784"
94
- carrier="UPS">
95
- </snice-order-tracker>
52
+ <snice-order-tracker id="tracker" tracking-number="1Z999AA10123456784" carrier="UPS"></snice-order-tracker>
96
53
 
97
54
  <script type="module">
98
- import 'snice/components/order-tracker/snice-order-tracker';
99
-
100
55
  const tracker = document.getElementById('tracker');
101
56
  tracker.steps = [
102
- { label: 'Ordered', status: 'completed', timestamp: 'Feb 20, 2026 9:15 AM', description: 'Order placed successfully' },
103
- { label: 'Confirmed', status: 'completed', timestamp: 'Feb 20, 2026 9:30 AM' },
104
- { label: 'Shipped', status: 'active', timestamp: 'Feb 22, 2026 2:00 PM', description: 'Package left the warehouse' },
57
+ { label: 'Ordered', status: 'completed', timestamp: 'Feb 20, 2026' },
58
+ { label: 'Confirmed', status: 'completed', timestamp: 'Feb 20, 2026' },
59
+ { label: 'Shipped', status: 'active', timestamp: 'Feb 22, 2026', description: 'Package left the warehouse' },
105
60
  { label: 'Out for Delivery', status: 'pending' },
106
61
  { label: 'Delivered', status: 'pending' }
107
62
  ];
108
63
  </script>
109
64
  ```
110
65
 
111
- ### Delivered Order
66
+ ## Examples
112
67
 
113
- All steps completed indicates the order has been delivered.
68
+ ### Vertical Layout
69
+
70
+ Use `variant="vertical"` for a top-to-bottom timeline.
114
71
 
115
72
  ```html
116
- <snice-order-tracker id="delivered-tracker"></snice-order-tracker>
73
+ <snice-order-tracker id="tracker" variant="vertical"></snice-order-tracker>
117
74
 
118
75
  <script type="module">
119
- const tracker = document.getElementById('delivered-tracker');
76
+ const tracker = document.getElementById('tracker');
120
77
  tracker.steps = [
121
- { label: 'Ordered', status: 'completed', timestamp: 'Feb 15, 2026' },
122
- { label: 'Confirmed', status: 'completed', timestamp: 'Feb 15, 2026' },
123
- { label: 'Shipped', status: 'completed', timestamp: 'Feb 17, 2026' },
124
- { label: 'Out for Delivery', status: 'completed', timestamp: 'Feb 19, 2026' },
125
- { label: 'Delivered', status: 'completed', timestamp: 'Feb 19, 2026', description: 'Left at front door' }
78
+ { label: 'Order Placed', status: 'completed', timestamp: 'Feb 24, 2026', description: 'Your order has been received' },
79
+ { label: 'Payment Confirmed', status: 'completed', timestamp: 'Feb 24, 2026' },
80
+ { label: 'Preparing Order', status: 'active', timestamp: 'Feb 24, 2026', description: 'Your items are being packed' },
81
+ { label: 'Ready for Pickup', status: 'pending' }
126
82
  ];
127
83
  </script>
128
84
  ```
129
85
 
130
- ### Vertical Layout
131
-
132
- Use `variant="vertical"` for a top-to-bottom timeline, ideal for sidebars or detailed tracking.
86
+ ### Delivered Order
133
87
 
134
- ```html
135
- <snice-order-tracker id="vertical-tracker" variant="vertical"></snice-order-tracker>
88
+ All steps completed indicates the order has been delivered.
136
89
 
137
- <script type="module">
138
- const tracker = document.getElementById('vertical-tracker');
139
- tracker.steps = [
140
- { label: 'Order Placed', status: 'completed', timestamp: 'Feb 24, 2026 10:00 AM', description: 'Your order has been received' },
141
- { label: 'Payment Confirmed', status: 'completed', timestamp: 'Feb 24, 2026 10:05 AM', description: 'Payment processed successfully' },
142
- { label: 'Preparing Order', status: 'active', timestamp: 'Feb 24, 2026 11:30 AM', description: 'Your items are being packed' },
143
- { label: 'Ready for Pickup', status: 'pending' },
144
- { label: 'Picked Up', status: 'pending' }
145
- ];
146
- </script>
90
+ ```typescript
91
+ tracker.steps = [
92
+ { label: 'Ordered', status: 'completed', timestamp: 'Feb 15, 2026' },
93
+ { label: 'Shipped', status: 'completed', timestamp: 'Feb 17, 2026' },
94
+ { label: 'Delivered', status: 'completed', timestamp: 'Feb 19, 2026', description: 'Left at front door' }
95
+ ];
147
96
  ```
148
97
 
149
- ### Step Click Handling
150
-
151
- ```html
152
- <snice-order-tracker id="clickable-tracker"></snice-order-tracker>
98
+ ### Event Handling
153
99
 
154
- <script type="module">
155
- const tracker = document.getElementById('clickable-tracker');
156
- tracker.steps = [
157
- { label: 'Ordered', status: 'completed', timestamp: 'Feb 20, 2026' },
158
- { label: 'Shipped', status: 'active', timestamp: 'Feb 22, 2026' },
159
- { label: 'Delivered', status: 'pending' }
160
- ];
100
+ Listen for `step-click` to handle step interactions.
161
101
 
162
- tracker.addEventListener('step-click', (e) => {
163
- const { step, index } = e.detail;
164
- console.log(`Clicked step ${index}: ${step.label} (${step.status})`);
165
- });
166
- </script>
102
+ ```typescript
103
+ tracker.addEventListener('step-click', (e) => {
104
+ const { step, index } = e.detail;
105
+ console.log(`Clicked step ${index}: ${step.label} (${step.status})`);
106
+ });
167
107
  ```
168
108
 
169
109
  ## Accessibility
170
110
 
171
- - **Semantic structure**: Steps are rendered as a list with `role="list"` and `role="listitem"`
172
- - **Keyboard navigation**: Each step is focusable and activatable with Enter or Space
173
- - **Visual indicators**: Completed steps show a checkmark, active steps are highlighted with a ring, pending steps show their number
174
- - **Status communication**: Step status is conveyed through color and iconography, not color alone
111
+ - Steps are rendered as a list with `role="list"` and `role="listitem"`
112
+ - Each step is focusable with `tabindex="0"` and activatable with Enter or Space
113
+ - Completed steps show a checkmark icon
114
+ - Active steps are highlighted with a ring indicator
115
+ - Status is conveyed through color and iconography
116
+
117
+ ## Data Types
118
+
119
+ ```typescript
120
+ type OrderStepStatus = 'pending' | 'active' | 'completed';
121
+
122
+ interface OrderStep {
123
+ label: string; // Step label text
124
+ status: OrderStepStatus; // Current step status
125
+ timestamp?: string; // Display timestamp
126
+ description?: string; // Additional description text
127
+ icon?: string; // Custom icon
128
+ }
129
+ ```
@@ -1,57 +1,42 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/org-chart.md instead -->
2
-
3
- # Org Chart Component
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/org-chart.md -->
4
2
 
3
+ # Org Chart
5
4
  `<snice-org-chart>`
6
5
 
7
- A hierarchical organizational chart that renders tree-structured data with node cards, connecting lines, avatars, and expand/collapse functionality. Supports both top-down and left-right layout directions.
6
+ A hierarchical organizational chart with expand/collapse functionality, avatars, and two layout directions.
8
7
 
9
8
  ## Table of Contents
10
- - [Importing](#importing)
11
9
  - [Properties](#properties)
12
10
  - [Methods](#methods)
13
11
  - [Events](#events)
14
12
  - [CSS Parts](#css-parts)
15
13
  - [Basic Usage](#basic-usage)
16
14
  - [Examples](#examples)
17
- - [Types](#types)
18
15
  - [Accessibility](#accessibility)
19
-
20
- ## Importing
21
-
22
- **ESM (bundler)**
23
- ```typescript
24
- import 'snice/components/org-chart/snice-org-chart';
25
- ```
26
-
27
- **CDN**
28
- ```html
29
- <script src="snice-runtime.min.js"></script>
30
- <script src="snice-org-chart.min.js"></script>
31
- ```
16
+ - [Data Types](#data-types)
32
17
 
33
18
  ## Properties
34
19
 
35
20
  | Property | Type | Default | Description |
36
21
  |----------|------|---------|-------------|
37
- | `data` | `OrgChartNode \| null` | `null` | Root node of the organizational tree (set via JavaScript) |
38
- | `direction` | `'top-down' \| 'left-right'` | `'top-down'` | Layout direction for the chart |
39
- | `compact` | `boolean` | `false` | Use compact node display with smaller cards |
22
+ | `data` | `OrgChartNode \| null` | `null` | Root node of the tree (set via JS) |
23
+ | `direction` | `'top-down' \| 'left-right'` | `'top-down'` | Layout direction |
24
+ | `compact` | `boolean` | `false` | Compact node display |
40
25
 
41
26
  ## Methods
42
27
 
43
28
  | Method | Arguments | Description |
44
29
  |--------|-----------|-------------|
45
- | `collapseNode()` | `id: string` | Collapse a specific node, hiding its children |
46
- | `expandNode()` | `id: string` | Expand a specific node, showing its children |
47
- | `expandAll()` | -- | Expand all nodes in the chart |
48
- | `collapseAll()` | -- | Collapse all nodes in the chart |
30
+ | `collapseNode()` | `id: string` | Collapse a specific node by ID |
31
+ | `expandNode()` | `id: string` | Expand a specific node by ID |
32
+ | `expandAll()` | -- | Expand all nodes in the tree |
33
+ | `collapseAll()` | -- | Collapse all nodes in the tree |
49
34
 
50
35
  ## Events
51
36
 
52
37
  | Event | Detail | Description |
53
38
  |-------|--------|-------------|
54
- | `node-click` | `{ node: OrgChartNode }` | Fired when a node card is clicked |
39
+ | `node-click` | `{ node: OrgChartNode }` | Fired when a node is clicked |
55
40
  | `node-expand` | `{ node: OrgChartNode }` | Fired when a node is expanded |
56
41
  | `node-collapse` | `{ node: OrgChartNode }` | Fired when a node is collapsed |
57
42
 
@@ -62,15 +47,10 @@ Style internal elements from outside the shadow DOM using `::part()`.
62
47
  | Part | Element | Description |
63
48
  |------|---------|-------------|
64
49
  | `base` | `<div>` | The outer chart container |
65
- | `tree` | `<div>` | The tree layout wrapper with connecting lines |
66
- | `node` | `<div>` | Individual node cards (repeated for each node) |
50
+ | `tree` | `<div>` | The tree layout wrapper |
51
+ | `node` | `<div>` | Individual node cards |
67
52
 
68
53
  ```css
69
- snice-org-chart::part(base) {
70
- padding: 2rem;
71
- overflow: auto;
72
- }
73
-
74
54
  snice-org-chart::part(node) {
75
55
  border-radius: 12px;
76
56
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
@@ -84,216 +64,87 @@ import 'snice/components/org-chart/snice-org-chart';
84
64
  ```
85
65
 
86
66
  ```html
87
- <snice-org-chart direction="top-down"></snice-org-chart>
88
- ```
89
-
90
- ## Examples
91
-
92
- ### Basic Org Chart
93
-
94
- Provide a tree data structure to render a top-down organizational chart.
95
-
96
- ```html
97
- <snice-org-chart id="org" direction="top-down"></snice-org-chart>
67
+ <snice-org-chart id="chart" direction="top-down"></snice-org-chart>
98
68
 
99
69
  <script type="module">
100
- import 'snice/components/org-chart/snice-org-chart';
101
-
102
- const chart = document.getElementById('org');
70
+ const chart = document.getElementById('chart');
103
71
  chart.data = {
104
72
  id: 'ceo',
105
73
  name: 'Jane Smith',
106
74
  title: 'CEO',
107
75
  avatar: '/avatars/jane.jpg',
108
76
  children: [
109
- {
110
- id: 'cto',
111
- name: 'Bob Jones',
112
- title: 'CTO',
113
- children: [
114
- { id: 'dev1', name: 'Alice Chen', title: 'Senior Engineer' },
115
- { id: 'dev2', name: 'David Park', title: 'Engineer' }
116
- ]
117
- },
118
- {
119
- id: 'cfo',
120
- name: 'Carol White',
121
- title: 'CFO',
122
- children: [
123
- { id: 'acc1', name: 'Eve Brown', title: 'Accountant' }
124
- ]
125
- }
77
+ { id: 'cto', name: 'Bob Jones', title: 'CTO', children: [
78
+ { id: 'dev1', name: 'Alice Chen', title: 'Senior Engineer' },
79
+ { id: 'dev2', name: 'David Park', title: 'Engineer' }
80
+ ]},
81
+ { id: 'cfo', name: 'Carol White', title: 'CFO' }
126
82
  ]
127
83
  };
128
84
  </script>
129
85
  ```
130
86
 
131
- ### Left-to-Right Layout
132
-
133
- Use `direction="left-right"` for a horizontal chart layout.
134
-
135
- ```html
136
- <snice-org-chart id="horizontal-org" direction="left-right"></snice-org-chart>
137
-
138
- <script type="module">
139
- import 'snice/components/org-chart/snice-org-chart';
140
-
141
- const chart = document.getElementById('horizontal-org');
142
- chart.data = {
143
- id: 'root',
144
- name: 'Engineering',
145
- title: 'Department',
146
- children: [
147
- {
148
- id: 'frontend',
149
- name: 'Frontend Team',
150
- title: 'Team Lead: Maria',
151
- children: [
152
- { id: 'fe1', name: 'Tom', title: 'React Developer' },
153
- { id: 'fe2', name: 'Lisa', title: 'UI Engineer' }
154
- ]
155
- },
156
- {
157
- id: 'backend',
158
- name: 'Backend Team',
159
- title: 'Team Lead: James',
160
- children: [
161
- { id: 'be1', name: 'Sam', title: 'API Engineer' },
162
- { id: 'be2', name: 'Nina', title: 'Database Admin' }
163
- ]
164
- }
165
- ]
166
- };
167
- </script>
168
- ```
87
+ ## Examples
169
88
 
170
- ### Compact Mode
89
+ ### Left-Right Layout
171
90
 
172
- Set the `compact` attribute for smaller node cards, useful for large organizations.
91
+ Use `direction="left-right"` for a horizontal tree layout.
173
92
 
174
93
  ```html
175
- <snice-org-chart id="compact-org" compact></snice-org-chart>
176
-
177
- <script type="module">
178
- import 'snice/components/org-chart/snice-org-chart';
179
-
180
- const chart = document.getElementById('compact-org');
181
- chart.data = {
182
- id: 'ceo',
183
- name: 'Jane Smith',
184
- title: 'CEO',
185
- children: [
186
- { id: 'vp1', name: 'VP Engineering', title: 'VP' },
187
- { id: 'vp2', name: 'VP Sales', title: 'VP' },
188
- { id: 'vp3', name: 'VP Marketing', title: 'VP' },
189
- { id: 'vp4', name: 'VP Operations', title: 'VP' }
190
- ]
191
- };
192
- </script>
94
+ <snice-org-chart direction="left-right"></snice-org-chart>
193
95
  ```
194
96
 
195
- ### Interactive Node Selection
97
+ ### Compact Mode
196
98
 
197
- Listen for `node-click` events to display details or navigate when a node is selected.
99
+ Use the `compact` attribute for smaller node cards.
198
100
 
199
101
  ```html
200
- <snice-org-chart id="interactive-org"></snice-org-chart>
201
- <div id="selected-info" style="margin-top: 1rem;"></div>
202
-
203
- <script type="module">
204
- import 'snice/components/org-chart/snice-org-chart';
205
-
206
- const chart = document.getElementById('interactive-org');
207
- const info = document.getElementById('selected-info');
208
-
209
- chart.data = {
210
- id: 'ceo',
211
- name: 'Jane Smith',
212
- title: 'CEO',
213
- avatar: '/avatars/jane.jpg',
214
- children: [
215
- { id: 'cto', name: 'Bob Jones', title: 'CTO', avatar: '/avatars/bob.jpg' },
216
- { id: 'cfo', name: 'Carol White', title: 'CFO', avatar: '/avatars/carol.jpg' }
217
- ]
218
- };
219
-
220
- chart.addEventListener('node-click', (e) => {
221
- const node = e.detail.node;
222
- info.textContent = `Selected: ${node.name} (${node.title || 'No title'})`;
223
- });
224
- </script>
102
+ <snice-org-chart compact></snice-org-chart>
225
103
  ```
226
104
 
227
105
  ### Programmatic Expand/Collapse
228
106
 
229
- Use methods to control which branches of the tree are visible.
107
+ Use methods to control the tree programmatically.
230
108
 
231
- ```html
232
- <snice-org-chart id="controlled-org"></snice-org-chart>
233
- <button id="expand-all">Expand All</button>
234
- <button id="collapse-all">Collapse All</button>
235
-
236
- <script type="module">
237
- import 'snice/components/org-chart/snice-org-chart';
238
-
239
- const chart = document.getElementById('controlled-org');
240
- chart.data = {
241
- id: 'root',
242
- name: 'Company',
243
- title: 'Organization',
244
- children: [
245
- {
246
- id: 'dept1',
247
- name: 'Engineering',
248
- title: 'Department',
249
- children: [
250
- { id: 'team1', name: 'Frontend', title: 'Team' },
251
- { id: 'team2', name: 'Backend', title: 'Team' }
252
- ]
253
- },
254
- {
255
- id: 'dept2',
256
- name: 'Marketing',
257
- title: 'Department',
258
- children: [
259
- { id: 'team3', name: 'Content', title: 'Team' },
260
- { id: 'team4', name: 'Growth', title: 'Team' }
261
- ]
262
- }
263
- ]
264
- };
265
-
266
- document.getElementById('expand-all').addEventListener('click', () => chart.expandAll());
267
- document.getElementById('collapse-all').addEventListener('click', () => chart.collapseAll());
109
+ ```typescript
110
+ chart.collapseAll();
111
+ chart.expandNode('cto');
268
112
 
269
- chart.addEventListener('node-expand', (e) => {
270
- console.log('Expanded:', e.detail.node.name);
271
- });
113
+ chart.addEventListener('node-expand', (e) => {
114
+ console.log('Expanded:', e.detail.node.name);
115
+ });
272
116
 
273
- chart.addEventListener('node-collapse', (e) => {
274
- console.log('Collapsed:', e.detail.node.name);
275
- });
276
- </script>
117
+ chart.addEventListener('node-collapse', (e) => {
118
+ console.log('Collapsed:', e.detail.node.name);
119
+ });
277
120
  ```
278
121
 
279
- ## Types
122
+ ### Interactive Node Selection
280
123
 
281
- ### OrgChartNode
124
+ Listen for `node-click` events to display details or navigate.
282
125
 
283
126
  ```typescript
284
- interface OrgChartNode {
285
- id: string; // Unique identifier for the node
286
- name: string; // Person's name displayed on the card
287
- title?: string; // Job title or role
288
- avatar?: string; // Avatar image URL
289
- children?: OrgChartNode[]; // Child nodes in the hierarchy
290
- }
127
+ chart.addEventListener('node-click', (e) => {
128
+ const node = e.detail.node;
129
+ console.log(`Selected: ${node.name} (${node.title || 'No title'})`);
130
+ });
291
131
  ```
292
132
 
293
133
  ## Accessibility
294
134
 
295
135
  - Node cards are interactive and clickable
296
- - Expand/collapse controls are accessible for toggling subtree visibility
297
- - The chart uses connecting lines to visually represent the hierarchy
136
+ - Expand/collapse toggle buttons are accessible
137
+ - Avatar placeholders display name initials when no image is provided
298
138
  - Nodes display name, title, and optional avatar for clear identification
299
- - Keyboard users can interact with node cards to trigger click events
139
+
140
+ ## Data Types
141
+
142
+ ```typescript
143
+ interface OrgChartNode {
144
+ id: string; // Unique identifier
145
+ name: string; // Person's name
146
+ title?: string; // Job title or role
147
+ avatar?: string; // Avatar image URL
148
+ children?: OrgChartNode[]; // Child nodes
149
+ }
150
+ ```