snice 4.28.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 (618) 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 +1 -1
  43. package/dist/cdn/badge/snice-badge.min.js +1 -1
  44. package/dist/cdn/banner/snice-banner.js +1 -1
  45. package/dist/cdn/banner/snice-banner.min.js +1 -1
  46. package/dist/cdn/binpack/README.md +27 -0
  47. package/dist/cdn/binpack/snice-binpack.js +1037 -0
  48. package/dist/cdn/binpack/snice-binpack.js.map +1 -0
  49. package/dist/cdn/binpack/snice-binpack.min.js +13 -0
  50. package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
  51. package/dist/cdn/book/snice-book.js +1 -1
  52. package/dist/cdn/book/snice-book.min.js +1 -1
  53. package/dist/cdn/booking/snice-booking.js +1 -1
  54. package/dist/cdn/booking/snice-booking.min.js +1 -1
  55. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  56. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  57. package/dist/cdn/button/README.md +1 -1
  58. package/dist/cdn/button/snice-button.js +2 -2
  59. package/dist/cdn/button/snice-button.js.map +1 -1
  60. package/dist/cdn/button/snice-button.min.js +2 -2
  61. package/dist/cdn/button/snice-button.min.js.map +1 -1
  62. package/dist/cdn/calendar/snice-calendar.js +1 -1
  63. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  64. package/dist/cdn/camera/snice-camera.js +1 -1
  65. package/dist/cdn/camera/snice-camera.min.js +1 -1
  66. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  67. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  68. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  69. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  70. package/dist/cdn/card/snice-card.js +1 -1
  71. package/dist/cdn/card/snice-card.min.js +1 -1
  72. package/dist/cdn/carousel/snice-carousel.js +1 -1
  73. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  74. package/dist/cdn/cart/snice-cart.js +1 -1
  75. package/dist/cdn/cart/snice-cart.min.js +1 -1
  76. package/dist/cdn/chart/snice-chart.js +1 -1
  77. package/dist/cdn/chart/snice-chart.min.js +1 -1
  78. package/dist/cdn/chat/snice-chat.js +1 -1
  79. package/dist/cdn/chat/snice-chat.min.js +1 -1
  80. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  81. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  82. package/dist/cdn/chip/snice-chip.js +1 -1
  83. package/dist/cdn/chip/snice-chip.min.js +1 -1
  84. package/dist/cdn/code-block/snice-code-block.js +1 -1
  85. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  86. package/dist/cdn/color-display/snice-color-display.js +1 -1
  87. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  88. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  89. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  90. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  91. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  92. package/dist/cdn/comments/snice-comments.js +1 -1
  93. package/dist/cdn/comments/snice-comments.min.js +1 -1
  94. package/dist/cdn/countdown/snice-countdown.js +1 -1
  95. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  96. package/dist/cdn/cropper/snice-cropper.js +1 -1
  97. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  98. package/dist/cdn/data-card/snice-data-card.js +1 -1
  99. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  100. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  101. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  102. package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
  103. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
  104. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  105. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
  106. package/dist/cdn/diff/snice-diff.js +1 -1
  107. package/dist/cdn/diff/snice-diff.min.js +1 -1
  108. package/dist/cdn/divider/snice-divider.js +1 -1
  109. package/dist/cdn/divider/snice-divider.min.js +1 -1
  110. package/dist/cdn/doc/snice-doc.js +1 -1
  111. package/dist/cdn/doc/snice-doc.min.js +1 -1
  112. package/dist/cdn/draw/snice-draw.js +1 -1
  113. package/dist/cdn/draw/snice-draw.min.js +1 -1
  114. package/dist/cdn/drawer/snice-drawer.js +1 -1
  115. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  116. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  117. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  118. package/dist/cdn/estimate/snice-estimate.js +1 -1
  119. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  120. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  121. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  122. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  123. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  124. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  125. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  126. package/dist/cdn/flow/snice-flow.js +1 -1
  127. package/dist/cdn/flow/snice-flow.min.js +1 -1
  128. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  129. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  130. package/dist/cdn/funnel/snice-funnel.js +1 -1
  131. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  132. package/dist/cdn/gantt/snice-gantt.js +1 -1
  133. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  134. package/dist/cdn/gauge/snice-gauge.js +1 -1
  135. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  136. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  137. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  138. package/dist/cdn/image/snice-image.js +1 -1
  139. package/dist/cdn/image/snice-image.min.js +1 -1
  140. package/dist/cdn/input/snice-input.js +1 -1
  141. package/dist/cdn/input/snice-input.min.js +1 -1
  142. package/dist/cdn/invoice/snice-invoice.js +1 -1
  143. package/dist/cdn/invoice/snice-invoice.min.js +1 -1
  144. package/dist/cdn/kanban/snice-kanban.js +1 -1
  145. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  146. package/dist/cdn/key-value/snice-key-value.js +1 -1
  147. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  148. package/dist/cdn/kpi/snice-kpi.js +1 -1
  149. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  150. package/dist/cdn/layout/snice-layout.js +1 -1
  151. package/dist/cdn/layout/snice-layout.min.js +1 -1
  152. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  153. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  154. package/dist/cdn/link/snice-link.js +1 -1
  155. package/dist/cdn/link/snice-link.min.js +1 -1
  156. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  157. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  158. package/dist/cdn/list/snice-list.js +1 -1
  159. package/dist/cdn/list/snice-list.min.js +1 -1
  160. package/dist/cdn/location/snice-location.js +1 -1
  161. package/dist/cdn/location/snice-location.min.js +1 -1
  162. package/dist/cdn/login/README.md +2 -2
  163. package/dist/cdn/login/snice-login.js +2 -2
  164. package/dist/cdn/login/snice-login.js.map +1 -1
  165. package/dist/cdn/login/snice-login.min.js +2 -2
  166. package/dist/cdn/login/snice-login.min.js.map +1 -1
  167. package/dist/cdn/map/snice-map.js +1 -1
  168. package/dist/cdn/map/snice-map.min.js +1 -1
  169. package/dist/cdn/markdown/snice-markdown.js +1 -1
  170. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  171. package/dist/cdn/masonry/snice-masonry.js +1 -1
  172. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  173. package/dist/cdn/menu/snice-menu.js +1 -1
  174. package/dist/cdn/menu/snice-menu.min.js +1 -1
  175. package/dist/cdn/message-strip/snice-message-strip.js +1 -1
  176. package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
  177. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  178. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  179. package/dist/cdn/modal/snice-modal.js +1 -1
  180. package/dist/cdn/modal/snice-modal.min.js +1 -1
  181. package/dist/cdn/music-player/snice-music-player.js +1 -1
  182. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  183. package/dist/cdn/nav/snice-nav.js +1 -1
  184. package/dist/cdn/nav/snice-nav.min.js +1 -1
  185. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  186. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  187. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  188. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  189. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  190. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  191. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  192. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  193. package/dist/cdn/pagination/snice-pagination.js +1 -1
  194. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  195. package/dist/cdn/paint/snice-paint.js +1 -1
  196. package/dist/cdn/paint/snice-paint.min.js +1 -1
  197. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  198. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  199. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  200. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  201. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  202. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  203. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  204. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  205. package/dist/cdn/product-card/snice-product-card.js +1 -1
  206. package/dist/cdn/product-card/snice-product-card.min.js +1 -1
  207. package/dist/cdn/progress/snice-progress.js +1 -1
  208. package/dist/cdn/progress/snice-progress.min.js +1 -1
  209. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  210. package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
  211. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  212. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  213. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  214. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  215. package/dist/cdn/radio/snice-radio.js +1 -1
  216. package/dist/cdn/radio/snice-radio.min.js +1 -1
  217. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  218. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  219. package/dist/cdn/rating/snice-rating.js +1 -1
  220. package/dist/cdn/rating/snice-rating.min.js +1 -1
  221. package/dist/cdn/receipt/snice-receipt.js +1 -1
  222. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  223. package/dist/cdn/recipe/snice-recipe.js +1 -1
  224. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  225. package/dist/cdn/runtime/README.md +2 -2
  226. package/dist/cdn/runtime/snice-runtime.esm.js +73 -5
  227. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  228. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  229. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  230. package/dist/cdn/runtime/snice-runtime.js +73 -4
  231. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  232. package/dist/cdn/runtime/snice-runtime.min.js +7 -7
  233. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  234. package/dist/cdn/sankey/snice-sankey.js +1 -1
  235. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  236. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  237. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  238. package/dist/cdn/select/snice-select.js +1 -1
  239. package/dist/cdn/select/snice-select.min.js +1 -1
  240. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  241. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  242. package/dist/cdn/slider/snice-slider.js +1 -1
  243. package/dist/cdn/slider/snice-slider.min.js +1 -1
  244. package/dist/cdn/sortable/snice-sortable.js +1 -1
  245. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  246. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  247. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  248. package/dist/cdn/spinner/snice-spinner.js +1 -1
  249. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  250. package/dist/cdn/split-button/snice-split-button.js +1 -1
  251. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  252. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  253. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  254. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  255. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  256. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  257. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  258. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  259. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  260. package/dist/cdn/step-input/snice-step-input.js +1 -1
  261. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  262. package/dist/cdn/stepper/snice-stepper.js +1 -1
  263. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  264. package/dist/cdn/switch/snice-switch.js +1 -1
  265. package/dist/cdn/switch/snice-switch.min.js +1 -1
  266. package/dist/cdn/table/README.md +1 -1
  267. package/dist/cdn/table/snice-table.js +2 -2
  268. package/dist/cdn/table/snice-table.js.map +1 -1
  269. package/dist/cdn/table/snice-table.min.js +2 -2
  270. package/dist/cdn/table/snice-table.min.js.map +1 -1
  271. package/dist/cdn/tabs/snice-tabs.js +1 -1
  272. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  273. package/dist/cdn/tag/snice-tag.js +1 -1
  274. package/dist/cdn/tag/snice-tag.min.js +1 -1
  275. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  276. package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
  277. package/dist/cdn/terminal/snice-terminal.js +1 -1
  278. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  279. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  280. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  281. package/dist/cdn/textarea/snice-textarea.js +1 -1
  282. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  283. package/dist/cdn/time-picker/snice-time-picker.js +1 -1
  284. package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
  285. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  286. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  287. package/dist/cdn/timeline/snice-timeline.js +1 -1
  288. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  289. package/dist/cdn/timer/snice-timer.js +1 -1
  290. package/dist/cdn/timer/snice-timer.min.js +1 -1
  291. package/dist/cdn/toast/snice-toast.js +1 -1
  292. package/dist/cdn/toast/snice-toast.min.js +1 -1
  293. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  294. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  295. package/dist/cdn/tree/snice-tree.js +1 -1
  296. package/dist/cdn/tree/snice-tree.min.js +1 -1
  297. package/dist/cdn/treemap/snice-treemap.js +1 -1
  298. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  299. package/dist/cdn/user-card/snice-user-card.js +1 -1
  300. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  301. package/dist/cdn/video-player/snice-video-player.js +1 -1
  302. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  303. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  304. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  305. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  306. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  307. package/dist/cdn/weather/snice-weather.js +1 -1
  308. package/dist/cdn/weather/snice-weather.min.js +1 -1
  309. package/dist/cdn/work-order/snice-work-order.js +1 -1
  310. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  311. package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
  312. package/dist/components/action-bar/snice-action-bar.js +182 -0
  313. package/dist/components/action-bar/snice-action-bar.js.map +1 -0
  314. package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
  315. package/dist/components/binpack/snice-binpack.d.ts +82 -0
  316. package/dist/components/binpack/snice-binpack.js +970 -0
  317. package/dist/components/binpack/snice-binpack.js.map +1 -0
  318. package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
  319. package/dist/components/button/snice-button.js +1 -1
  320. package/dist/components/button/snice-button.js.map +1 -1
  321. package/dist/create-request-handler.d.ts +42 -0
  322. package/dist/index.cjs +70 -1
  323. package/dist/index.cjs.map +1 -1
  324. package/dist/index.d.ts +2 -0
  325. package/dist/index.esm.js +70 -2
  326. package/dist/index.esm.js.map +1 -1
  327. package/dist/index.iife.js +70 -1
  328. package/dist/index.iife.js.map +1 -1
  329. package/dist/react/useRequestHandler.d.ts +56 -0
  330. package/dist/react/useRequestHandler.js +103 -0
  331. package/dist/react/useRequestHandler.js.map +1 -0
  332. package/dist/symbols.cjs +1 -1
  333. package/dist/symbols.esm.js +1 -1
  334. package/dist/transitions.cjs +1 -1
  335. package/dist/transitions.esm.js +1 -1
  336. package/docs/ai/DEVELOPMENT.md +1 -1
  337. package/docs/ai/components/accordion.md +46 -80
  338. package/docs/ai/components/action-bar.md +75 -0
  339. package/docs/ai/components/activity-feed.md +7 -7
  340. package/docs/ai/components/alert.md +26 -44
  341. package/docs/ai/components/app-tiles.md +34 -39
  342. package/docs/ai/components/approval-flow.md +1 -1
  343. package/docs/ai/components/audio-recorder.md +35 -67
  344. package/docs/ai/components/availability.md +13 -34
  345. package/docs/ai/components/avatar-group.md +26 -13
  346. package/docs/ai/components/avatar.md +52 -36
  347. package/docs/ai/components/badge.md +21 -32
  348. package/docs/ai/components/banner.md +21 -43
  349. package/docs/ai/components/binpack.md +89 -0
  350. package/docs/ai/components/book.md +25 -23
  351. package/docs/ai/components/booking.md +31 -36
  352. package/docs/ai/components/breadcrumbs.md +36 -11
  353. package/docs/ai/components/button.md +33 -44
  354. package/docs/ai/components/calendar.md +37 -70
  355. package/docs/ai/components/camera-annotate.md +31 -64
  356. package/docs/ai/components/camera.md +38 -120
  357. package/docs/ai/components/candlestick.md +32 -52
  358. package/docs/ai/components/card.md +20 -30
  359. package/docs/ai/components/carousel.md +32 -32
  360. package/docs/ai/components/cart.md +24 -29
  361. package/docs/ai/components/chart.md +29 -114
  362. package/docs/ai/components/chat.md +38 -75
  363. package/docs/ai/components/checkbox.md +22 -41
  364. package/docs/ai/components/chip.md +18 -54
  365. package/docs/ai/components/code-block.md +57 -178
  366. package/docs/ai/components/color-display.md +12 -32
  367. package/docs/ai/components/color-picker.md +17 -39
  368. package/docs/ai/components/command-palette.md +49 -71
  369. package/docs/ai/components/comments.md +55 -36
  370. package/docs/ai/components/countdown.md +28 -30
  371. package/docs/ai/components/cropper.md +33 -33
  372. package/docs/ai/components/data-card.md +20 -14
  373. package/docs/ai/components/date-picker.md +40 -47
  374. package/docs/ai/components/date-range-picker.md +31 -15
  375. package/docs/ai/components/date-time-picker.md +23 -46
  376. package/docs/ai/components/diff.md +30 -31
  377. package/docs/ai/components/divider.md +17 -47
  378. package/docs/ai/components/doc.md +43 -68
  379. package/docs/ai/components/draw.md +35 -87
  380. package/docs/ai/components/drawer.md +48 -77
  381. package/docs/ai/components/empty-state.md +10 -44
  382. package/docs/ai/components/estimate.md +33 -58
  383. package/docs/ai/components/file-gallery.md +48 -100
  384. package/docs/ai/components/file-upload.md +17 -53
  385. package/docs/ai/components/flip-card.md +31 -23
  386. package/docs/ai/components/flow.md +37 -65
  387. package/docs/ai/components/form-builder.md +35 -75
  388. package/docs/ai/components/form-layout.md +10 -20
  389. package/docs/ai/components/funnel.md +33 -48
  390. package/docs/ai/components/gantt.md +27 -23
  391. package/docs/ai/components/gauge.md +16 -17
  392. package/docs/ai/components/heatmap.md +21 -21
  393. package/docs/ai/components/image.md +7 -13
  394. package/docs/ai/components/input.md +38 -70
  395. package/docs/ai/components/invoice.md +35 -36
  396. package/docs/ai/components/kanban.md +32 -61
  397. package/docs/ai/components/key-value.md +32 -16
  398. package/docs/ai/components/kpi.md +38 -73
  399. package/docs/ai/components/layout.md +29 -23
  400. package/docs/ai/components/leaderboard.md +28 -37
  401. package/docs/ai/components/link-preview.md +12 -18
  402. package/docs/ai/components/link.md +10 -7
  403. package/docs/ai/components/list.md +21 -5
  404. package/docs/ai/components/location.md +21 -25
  405. package/docs/ai/components/login.md +14 -9
  406. package/docs/ai/components/map.md +27 -33
  407. package/docs/ai/components/markdown.md +20 -24
  408. package/docs/ai/components/masonry.md +10 -14
  409. package/docs/ai/components/mentions.md +26 -12
  410. package/docs/ai/components/menu.md +54 -52
  411. package/docs/ai/components/message-strip.md +20 -20
  412. package/docs/ai/components/metric-table.md +14 -21
  413. package/docs/ai/components/modal.md +27 -18
  414. package/docs/ai/components/music-player.md +49 -41
  415. package/docs/ai/components/nav.md +34 -31
  416. package/docs/ai/components/network-graph.md +27 -42
  417. package/docs/ai/components/notification-center.md +31 -33
  418. package/docs/ai/components/order-tracker.md +36 -27
  419. package/docs/ai/components/org-chart.md +36 -31
  420. package/docs/ai/components/pagination.md +34 -26
  421. package/docs/ai/components/paint.md +53 -91
  422. package/docs/ai/components/pdf-viewer.md +35 -36
  423. package/docs/ai/components/permission-matrix.md +26 -31
  424. package/docs/ai/components/podcast-player.md +64 -70
  425. package/docs/ai/components/pricing-table.md +37 -48
  426. package/docs/ai/components/product-card.md +58 -41
  427. package/docs/ai/components/progress-ring.md +20 -24
  428. package/docs/ai/components/progress.md +28 -45
  429. package/docs/ai/components/qr-code.md +25 -27
  430. package/docs/ai/components/qr-reader.md +20 -23
  431. package/docs/ai/components/radio.md +17 -15
  432. package/docs/ai/components/range-slider.md +22 -11
  433. package/docs/ai/components/rating.md +29 -33
  434. package/docs/ai/components/receipt.md +50 -127
  435. package/docs/ai/components/recipe.md +44 -42
  436. package/docs/ai/components/sankey.md +21 -30
  437. package/docs/ai/components/scheduler.md +29 -41
  438. package/docs/ai/components/segmented-control.md +11 -15
  439. package/docs/ai/components/select.md +58 -102
  440. package/docs/ai/components/skeleton.md +16 -30
  441. package/docs/ai/components/slider.md +26 -20
  442. package/docs/ai/components/sortable.md +25 -27
  443. package/docs/ai/components/sparkline.md +21 -17
  444. package/docs/ai/components/spinner.md +9 -5
  445. package/docs/ai/components/split-button.md +10 -13
  446. package/docs/ai/components/split-pane.md +19 -14
  447. package/docs/ai/components/spotlight.md +31 -26
  448. package/docs/ai/components/spreadsheet.md +51 -97
  449. package/docs/ai/components/stat-group.md +9 -19
  450. package/docs/ai/components/step-input.md +17 -15
  451. package/docs/ai/components/stepper.md +14 -15
  452. package/docs/ai/components/switch.md +15 -9
  453. package/docs/ai/components/table.md +24 -84
  454. package/docs/ai/components/tabs.md +18 -10
  455. package/docs/ai/components/tag-input.md +18 -29
  456. package/docs/ai/components/tag.md +10 -22
  457. package/docs/ai/components/terminal.md +9 -9
  458. package/docs/ai/components/testimonial.md +9 -19
  459. package/docs/ai/components/textarea.md +15 -16
  460. package/docs/ai/components/theme.md +3 -3
  461. package/docs/ai/components/time-picker.md +30 -49
  462. package/docs/ai/components/time-range-picker.md +16 -15
  463. package/docs/ai/components/timeline.md +5 -4
  464. package/docs/ai/components/timer.md +8 -8
  465. package/docs/ai/components/toast.md +24 -18
  466. package/docs/ai/components/tooltip.md +11 -22
  467. package/docs/ai/components/tree.md +9 -9
  468. package/docs/ai/components/treemap.md +14 -13
  469. package/docs/ai/components/user-card.md +21 -27
  470. package/docs/ai/components/video-player.md +35 -52
  471. package/docs/ai/components/virtual-scroller.md +1 -1
  472. package/docs/ai/components/waterfall.md +17 -16
  473. package/docs/ai/components/weather.md +19 -34
  474. package/docs/ai/components/work-order.md +58 -134
  475. package/docs/ai/patterns.md +63 -0
  476. package/docs/components/accordion.md +72 -151
  477. package/docs/components/action-bar.md +185 -0
  478. package/docs/components/activity-feed.md +9 -14
  479. package/docs/components/alert.md +17 -109
  480. package/docs/components/app-tiles.md +58 -43
  481. package/docs/components/approval-flow.md +8 -14
  482. package/docs/components/audio-recorder.md +45 -51
  483. package/docs/components/availability.md +30 -45
  484. package/docs/components/avatar-group.md +34 -14
  485. package/docs/components/avatar.md +20 -55
  486. package/docs/components/badge.md +53 -470
  487. package/docs/components/banner.md +44 -30
  488. package/docs/components/binpack.md +208 -0
  489. package/docs/components/book.md +78 -57
  490. package/docs/components/booking.md +35 -87
  491. package/docs/components/breadcrumbs.md +74 -448
  492. package/docs/components/button.md +72 -603
  493. package/docs/components/calendar.md +77 -261
  494. package/docs/components/camera-annotate.md +44 -96
  495. package/docs/components/camera.md +94 -333
  496. package/docs/components/candlestick.md +79 -116
  497. package/docs/components/card.md +51 -689
  498. package/docs/components/carousel.md +29 -76
  499. package/docs/components/cart.md +44 -136
  500. package/docs/components/chart.md +95 -438
  501. package/docs/components/chat.md +175 -439
  502. package/docs/components/checkbox.md +52 -609
  503. package/docs/components/chip.md +45 -574
  504. package/docs/components/code-block.md +157 -421
  505. package/docs/components/color-display.md +45 -54
  506. package/docs/components/color-picker.md +103 -36
  507. package/docs/components/command-palette.md +98 -92
  508. package/docs/components/comments.md +16 -10
  509. package/docs/components/countdown.md +15 -20
  510. package/docs/components/cropper.md +14 -16
  511. package/docs/components/data-card.md +16 -15
  512. package/docs/components/date-picker.md +45 -25
  513. package/docs/components/date-range-picker.md +140 -87
  514. package/docs/components/date-time-picker.md +25 -28
  515. package/docs/components/diff.md +22 -17
  516. package/docs/components/divider.md +18 -20
  517. package/docs/components/doc.md +105 -197
  518. package/docs/components/draw.md +117 -223
  519. package/docs/components/drawer.md +113 -478
  520. package/docs/components/empty-state.md +13 -29
  521. package/docs/components/estimate.md +58 -118
  522. package/docs/components/file-gallery.md +123 -495
  523. package/docs/components/file-upload.md +36 -123
  524. package/docs/components/flip-card.md +30 -34
  525. package/docs/components/flow.md +74 -89
  526. package/docs/components/form-builder.md +59 -86
  527. package/docs/components/form-layout.md +21 -31
  528. package/docs/components/funnel.md +21 -22
  529. package/docs/components/gantt.md +5 -5
  530. package/docs/components/gauge.md +5 -23
  531. package/docs/components/heatmap.md +13 -55
  532. package/docs/components/image.md +28 -32
  533. package/docs/components/input.md +25 -14
  534. package/docs/components/invoice.md +34 -33
  535. package/docs/components/kanban.md +99 -394
  536. package/docs/components/key-value.md +22 -12
  537. package/docs/components/kpi.md +41 -112
  538. package/docs/components/layout.md +7 -13
  539. package/docs/components/leaderboard.md +52 -76
  540. package/docs/components/link-preview.md +20 -16
  541. package/docs/components/link.md +22 -19
  542. package/docs/components/list.md +44 -26
  543. package/docs/components/location.md +9 -13
  544. package/docs/components/login.md +42 -36
  545. package/docs/components/map.md +24 -46
  546. package/docs/components/markdown.md +14 -25
  547. package/docs/components/masonry.md +15 -13
  548. package/docs/components/mentions.md +36 -25
  549. package/docs/components/menu.md +39 -46
  550. package/docs/components/message-strip.md +15 -51
  551. package/docs/components/metric-table.md +50 -72
  552. package/docs/components/modal.md +32 -43
  553. package/docs/components/music-player.md +41 -49
  554. package/docs/components/nav.md +23 -13
  555. package/docs/components/network-graph.md +14 -13
  556. package/docs/components/notification-center.md +68 -172
  557. package/docs/components/order-tracker.md +72 -117
  558. package/docs/components/org-chart.md +58 -207
  559. package/docs/components/pagination.md +67 -89
  560. package/docs/components/paint.md +86 -172
  561. package/docs/components/pdf-viewer.md +46 -151
  562. package/docs/components/permission-matrix.md +61 -112
  563. package/docs/components/podcast-player.md +41 -119
  564. package/docs/components/pricing-table.md +104 -147
  565. package/docs/components/product-card.md +94 -197
  566. package/docs/components/progress-ring.md +29 -32
  567. package/docs/components/progress.md +30 -61
  568. package/docs/components/qr-code.md +53 -61
  569. package/docs/components/qr-reader.md +53 -42
  570. package/docs/components/radio.md +42 -40
  571. package/docs/components/range-slider.md +41 -30
  572. package/docs/components/rating.md +50 -84
  573. package/docs/components/receipt.md +91 -129
  574. package/docs/components/recipe.md +107 -216
  575. package/docs/components/sankey.md +47 -83
  576. package/docs/components/scheduler.md +81 -184
  577. package/docs/components/segmented-control.md +48 -40
  578. package/docs/components/select.md +107 -129
  579. package/docs/components/skeleton.md +33 -47
  580. package/docs/components/slider.md +49 -53
  581. package/docs/components/sortable.md +43 -186
  582. package/docs/components/sparkline.md +26 -25
  583. package/docs/components/spinner.md +32 -37
  584. package/docs/components/split-button.md +43 -23
  585. package/docs/components/split-pane.md +41 -58
  586. package/docs/components/spotlight.md +53 -145
  587. package/docs/components/spreadsheet.md +84 -307
  588. package/docs/components/stat-group.md +27 -61
  589. package/docs/components/step-input.md +44 -41
  590. package/docs/components/stepper.md +55 -89
  591. package/docs/components/switch.md +39 -39
  592. package/docs/components/table.md +27 -32
  593. package/docs/components/tabs.md +36 -27
  594. package/docs/components/tag-input.md +50 -176
  595. package/docs/components/tag.md +12 -50
  596. package/docs/components/terminal.md +32 -37
  597. package/docs/components/testimonial.md +24 -81
  598. package/docs/components/textarea.md +9 -14
  599. package/docs/components/theme.md +10 -23
  600. package/docs/components/time-picker.md +48 -72
  601. package/docs/components/time-range-picker.md +22 -41
  602. package/docs/components/timeline.md +7 -14
  603. package/docs/components/timer.md +16 -32
  604. package/docs/components/toast.md +19 -45
  605. package/docs/components/tooltip.md +13 -115
  606. package/docs/components/tree.md +2 -19
  607. package/docs/components/treemap.md +19 -43
  608. package/docs/components/user-card.md +13 -22
  609. package/docs/components/video-player.md +53 -227
  610. package/docs/components/virtual-scroller.md +11 -44
  611. package/docs/components/waterfall.md +58 -137
  612. package/docs/components/weather.md +94 -153
  613. package/docs/components/work-order.md +56 -143
  614. package/docs/plans/2026-03-09-action-bar-design.md +104 -0
  615. package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
  616. package/docs/plans/2026-03-10-react-integration-design.md +166 -0
  617. package/docs/request-response.md +77 -0
  618. package/package.json +1 -1
@@ -6,42 +6,38 @@ Multi-option switcher with sliding indicator. One selected at a time.
6
6
 
7
7
  ```typescript
8
8
  value: string = '';
9
- options: SegmentedControlOption[] = []; // { value, label, icon?, disabled? }
9
+ options: SegmentedControlOption[] = []; // JS only: { value, label, icon?, disabled? }
10
10
  size: 'small'|'medium'|'large' = 'medium';
11
11
  disabled: boolean = false;
12
12
  ```
13
13
 
14
+ ## Events
15
+
16
+ - `value-change` → `{ value: string, previousValue: string, option: SegmentedControlOption, control }`
17
+
14
18
  ## CSS Parts
15
19
 
16
20
  - `base` - Root container
17
21
  - `indicator` - Sliding selection indicator
18
22
  - `segment` - Individual option button
19
23
 
20
- ## Events
21
-
22
- - `value-change` → `{ value, previousValue, option, control }`
23
-
24
- ## Usage
24
+ ## Basic Usage
25
25
 
26
26
  ```html
27
- <snice-segmented-control></snice-segmented-control>
27
+ <snice-segmented-control value="week"></snice-segmented-control>
28
28
  ```
29
29
 
30
30
  ```typescript
31
31
  control.options = [
32
32
  { value: 'day', label: 'Day' },
33
33
  { value: 'week', label: 'Week' },
34
- { value: 'month', label: 'Month' },
34
+ { value: 'month', label: 'Month' }
35
35
  ];
36
- control.value = 'week';
37
36
  control.addEventListener('value-change', (e) => console.log(e.detail.value));
38
37
  ```
39
38
 
40
- ## Notes
39
+ ## Accessibility
41
40
 
42
- - Options set via JS property (array), not child elements
41
+ - ARIA radiogroup/radio roles
43
42
  - Sliding indicator animates between selections
44
- - If no value set, first non-disabled option is selected
45
- - ARIA radiogroup/radio roles for accessibility
46
- - Diff from tabs: no content panes, just a value selector
47
- - Diff from switch: more than two options
43
+ - First non-disabled option selected if no value set
@@ -1,142 +1,98 @@
1
1
  # snice-select
2
2
 
3
- Customizable dropdown selection with single/multiple selection, search, editable input, and icons.
3
+ Customizable dropdown selection with single/multiple, search, editable input, and icons.
4
4
 
5
5
  ## Components
6
6
 
7
- ### snice-select (Container)
7
+ - `snice-select` - Container with trigger, dropdown, form integration
8
+ - `snice-option` - Declarative option elements
9
+
10
+ ## Properties
11
+
12
+ ### snice-select
8
13
 
9
14
  ```typescript
10
- value: string = ''; // Selected value (comma-separated for multiple)
11
- disabled: boolean = false; // Disabled state
12
- required: boolean = false; // Required for form validation
13
- invalid: boolean = false; // Invalid state styling
14
- readonly: boolean = false; // Readonly state
15
- multiple: boolean = false; // Allow multiple selection
16
- searchable: boolean = false; // Show search input in dropdown
17
- clearable: boolean = false; // Show clear button
18
- editable: boolean = false; // Editable text input trigger (replaces button)
19
- allowFreeText: boolean = false; // attr: allow-free-text allow values not in options
15
+ value: string = ''; // Comma-separated for multiple
16
+ disabled: boolean = false;
17
+ required: boolean = false;
18
+ invalid: boolean = false;
19
+ readonly: boolean = false;
20
+ loading: boolean = false;
21
+ multiple: boolean = false;
22
+ searchable: boolean = false;
23
+ clearable: boolean = false;
24
+ editable: boolean = false; // Text input trigger instead of button
25
+ allowFreeText: boolean = false; // attr: allow-free-text
20
26
  remote: boolean = false; // Remote search via @request('select/search')
21
- searchDebounce: number = 300; // attr: search-debounce — debounce ms for remote search
22
- open: boolean = false; // Dropdown open state
23
- loading: boolean = false; // Loading state (shows spinner)
27
+ searchDebounce: number = 300; // attr: search-debounce
28
+ open: boolean = false;
24
29
  size: 'small'|'medium'|'large' = 'medium';
25
- name: string = ''; // Form field name
26
- label: string = ''; // Label text
30
+ name: string = '';
31
+ label: string = '';
27
32
  placeholder: string = 'Select an option';
28
- maxHeight: string = '200px'; // Max dropdown height
29
- options: SelectOption[] = []; // Programmatic options (works alongside <snice-option> children)
33
+ maxHeight: string = '200px'; // attr: max-height
34
+ options: SelectOption[] = []; // JS only, works alongside <snice-option> children
30
35
  ```
31
36
 
32
- **Methods:**
33
- ```typescript
34
- selectOption(value: string) // Select option by value
35
- clear() // Clear selection
36
- openDropdown() // Open dropdown
37
- closeDropdown() // Close dropdown
38
- toggleDropdown() // Toggle dropdown
39
- focus() // Focus trigger (or input in editable mode)
40
- blur() // Blur and close
41
- ```
37
+ ### snice-option
42
38
 
43
- **Events:**
44
39
  ```typescript
45
- 'select-change' // { value, option, select }
46
- 'select-open' // { select }
47
- 'select-close' // { select }
40
+ value: string = ''; // Falls back to label
41
+ label: string = ''; // Falls back to textContent
42
+ disabled: boolean = false;
43
+ selected: boolean = false;
44
+ icon: string = ''; // Icon URL
48
45
  ```
49
46
 
50
- ### snice-option (Option Item)
47
+ ## Methods
51
48
 
52
- ```typescript
53
- value: string = ''; // Option value (defaults to label)
54
- label: string = ''; // Option label (defaults to textContent)
55
- disabled: boolean = false; // Disabled state
56
- selected: boolean = false; // Initially selected
57
- icon: string = ''; // Icon URL
58
- ```
49
+ - `focus()` / `blur()` - Focus/blur trigger
50
+ - `clear()` - Clear selection
51
+ - `openDropdown()` / `closeDropdown()` / `toggleDropdown()` - Dropdown control
52
+ - `selectOption(value)` - Select by value
59
53
 
60
- **Getter:**
61
- ```typescript
62
- optionData // { value, label, disabled, selected, icon }
63
- ```
54
+ ## Events
55
+
56
+ - `select-change` → `{ value: string | string[], option?, select }`
57
+ - `select-open` → `{ select }`
58
+ - `select-close` → `{ select }`
59
+
60
+ ## CSS Parts
64
61
 
65
- ## Usage
62
+ - `label`, `trigger`, `value`, `input`, `arrow`, `spinner`
63
+ - `dropdown`, `search`, `search-input`, `options`, `option`
64
+
65
+ ## Basic Usage
66
66
 
67
67
  ```html
68
- <!-- Standard button-trigger select -->
68
+ <!-- Declarative options -->
69
69
  <snice-select label="Choose" name="choice">
70
70
  <snice-option value="1">Option 1</snice-option>
71
71
  <snice-option value="2">Option 2</snice-option>
72
72
  </snice-select>
73
73
 
74
- <!-- Editable input-trigger select -->
74
+ <!-- Editable input mode -->
75
75
  <snice-select editable label="Fruit" placeholder="Type or select..."></snice-select>
76
76
  ```
77
77
 
78
78
  ```typescript
79
- // Programmatic options (required for editable mode or in addition to children)
80
79
  select.options = [
81
80
  { value: 'apple', label: 'Apple' },
82
- { value: 'banana', label: 'Banana', icon: '/icons/banana.svg' },
83
- { value: 'cherry', label: 'Cherry', disabled: true },
81
+ { value: 'banana', label: 'Banana', icon: '/icons/banana.svg' }
84
82
  ];
85
-
86
- select.addEventListener('select-change', (e) => {
87
- console.log(e.detail.value);
88
- });
89
-
90
- select.selectOption('1');
83
+ select.addEventListener('select-change', (e) => console.log(e.detail.value));
91
84
  ```
92
85
 
93
86
  ## Editable Mode
94
87
 
95
- When `editable` is set:
96
- - Renders a text `<input>` instead of a `<button>` trigger
97
- - Typing filters options in the dropdown
98
- - Focus opens the dropdown
99
- - Blur commits the value and closes
100
- - If no match and `allow-free-text` is set, accepts custom value
101
- - If no match and no `allow-free-text`, reverts to last valid value
102
- - Options set via JS `options` property (array), child `<snice-option>` elements, or both (merged)
103
-
104
- ## Remote Search (@request/@respond)
105
-
106
- When `remote` is set with `searchable` or `editable`:
107
- - Typing fires `@request('select/search')` with `{ query, select }` after debounce
108
- - Controller `@respond('select/search')` returns `SelectOption[]`
109
- - Dropdown shows spinner while waiting, then refreshes with results
110
- - Opening dropdown triggers initial search with current query
111
- - `loading` property no longer closes dropdown when `remote` is true
112
-
113
- ```typescript
114
- // Controller
115
- @respond('select/search')
116
- async handleSearch(req, respond) {
117
- const results = await fetch(`/api/users?q=${req.query}`).then(r => r.json());
118
- respond(results.map(u => ({ value: u.id, label: u.name })));
119
- }
120
- ```
121
-
122
- ## Features
123
-
124
- - Single and multiple selection
125
- - Search filtering (in-dropdown or editable input)
126
- - Remote async search via @request/@respond
127
- - Editable text input mode (replaces combobox)
128
- - Keyboard navigation
129
- - Form integration
130
- - Icons in options
131
- - Clearable selection
132
- - Disabled options
133
- - Programmatic options array (works alongside child elements)
88
+ - `editable` renders text input instead of button
89
+ - Typing filters options; blur commits value
90
+ - `allow-free-text` accepts values not in options list
91
+ - `remote` + `editable` enables async search via @request/@respond
134
92
 
135
- ## Notes
93
+ ## Accessibility
136
94
 
137
- - Options can be nested (uses querySelectorAll, not just direct children)
138
- - Multiple selection values are comma-separated
139
- - Hidden native select for form submission
95
+ - Hidden native `<select>` for form submission
96
+ - Arrow keys, Enter, Escape for keyboard navigation
140
97
  - Dropdown closes on outside click
141
- - Search shows in dropdown when open (non-editable mode)
142
- - Child `<snice-option>` elements take precedence when both children and programmatic options are provided
98
+ - Children take precedence over `options` array
@@ -13,41 +13,27 @@ count: number = 1;
13
13
  spacing: string = '8px';
14
14
  ```
15
15
 
16
- **CSS Parts:**
17
- - `base` - Outer skeleton container
18
- - `bone` - Individual skeleton placeholder element
16
+ ## CSS Custom Properties
19
17
 
20
- ## Usage
18
+ - `--skeleton-bg` - Background color
19
+ - `--skeleton-highlight` - Wave highlight color
20
+ - `--skeleton-duration` - Animation duration (`1.5s`)
21
21
 
22
- ```html
23
- <!-- Text placeholder -->
24
- <snice-skeleton variant="text"></snice-skeleton>
25
- <snice-skeleton variant="text" width="200px"></snice-skeleton>
22
+ ## CSS Parts
26
23
 
27
- <!-- Circular (avatar) -->
28
- <snice-skeleton variant="circular" width="40px" height="40px"></snice-skeleton>
24
+ - `base` - Outer container
25
+ - `bone` - Individual placeholder element
29
26
 
30
- <!-- Rectangular -->
31
- <snice-skeleton variant="rectangular" width="100%" height="200px"></snice-skeleton>
27
+ ## Basic Usage
32
28
 
33
- <!-- Rounded (card) -->
34
- <snice-skeleton variant="rounded" width="300px" height="150px"></snice-skeleton>
35
-
36
- <!-- Multiple lines -->
29
+ ```html
37
30
  <snice-skeleton variant="text" count="3"></snice-skeleton>
38
- <snice-skeleton variant="text" count="5" spacing="12px"></snice-skeleton>
39
-
40
- <!-- Animation types -->
31
+ <snice-skeleton variant="circular" width="48px" height="48px"></snice-skeleton>
32
+ <snice-skeleton variant="rectangular" width="100%" height="200px"></snice-skeleton>
33
+ <snice-skeleton variant="rounded" width="300px" height="150px"></snice-skeleton>
41
34
  <snice-skeleton animation="pulse"></snice-skeleton>
42
- <snice-skeleton animation="wave"></snice-skeleton>
43
- <snice-skeleton animation="none"></snice-skeleton>
44
-
45
- <!-- Complex layout -->
46
- <div style="display: flex; gap: 16px;">
47
- <snice-skeleton variant="circular" width="48px" height="48px"></snice-skeleton>
48
- <div style="flex: 1;">
49
- <snice-skeleton variant="text" width="40%"></snice-skeleton>
50
- <snice-skeleton variant="text" width="60%"></snice-skeleton>
51
- </div>
52
- </div>
53
35
  ```
36
+
37
+ ## Accessibility
38
+
39
+ - Decorative only; use `aria-busy="true"` on container while loading
@@ -15,6 +15,7 @@ disabled: boolean = false;
15
15
  required: boolean = false;
16
16
  invalid: boolean = false;
17
17
  readonly: boolean = false;
18
+ loading: boolean = false;
18
19
  label: string = '';
19
20
  helperText: string = ''; // attr: helper-text
20
21
  errorText: string = ''; // attr: error-text
@@ -22,37 +23,42 @@ name: string = '';
22
23
  showValue: boolean = false; // attr: show-value
23
24
  showTicks: boolean = false; // attr: show-ticks
24
25
  vertical: boolean = false;
25
- loading: boolean = false;
26
- // form-align: CSS-only attribute (no JS property). Gives the slider track area
27
- // min-height: 2.5rem (40px) so it aligns with input/select fields in form rows.
26
+ // form-align: CSS-only attribute, aligns with inputs in form rows
28
27
  ```
29
28
 
29
+ ## Methods
30
+
31
+ - `focus()` / `blur()` - Focus/blur thumb
32
+ - `checkValidity()` - Returns boolean
33
+ - `reportValidity()` - Returns boolean
34
+ - `setCustomValidity(message)` - Set validation message
35
+
30
36
  ## Events
31
37
 
32
- - `slider-input` → `{ value, slider }` - During drag
33
- - `slider-change` → `{ value, slider }` - After drag complete
38
+ - `slider-input` → `{ value: number, slider }` - During drag
39
+ - `slider-change` → `{ value: number, slider }` - After commit
34
40
 
35
- ## Methods
41
+ ## CSS Parts
36
42
 
37
- - `focus()` - Focus slider thumb
38
- - `blur()` - Blur slider thumb
39
- - `checkValidity()` - Check validation, returns `boolean`
40
- - `reportValidity()` - Report validation to user, returns `boolean`
41
- - `setCustomValidity(message)` - Set custom validation message
43
+ - `track`, `fill`, `thumb`, `spinner`, `error-text`, `helper-text`
42
44
 
43
- ## Usage
45
+ ## Basic Usage
44
46
 
45
47
  ```html
46
- <snice-slider label="Volume" min="0" max="100"></snice-slider>
47
- <snice-slider show-value value="50"></snice-slider>
48
+ <snice-slider label="Volume" min="0" max="100" value="50" show-value></snice-slider>
48
49
  <snice-slider show-ticks min="0" max="10" step="1"></snice-slider>
49
- <snice-slider variant="primary"></snice-slider>
50
- <snice-slider size="small"></snice-slider>
50
+ <snice-slider variant="primary" size="large"></snice-slider>
51
51
  <snice-slider vertical></snice-slider>
52
- <snice-slider label="Qty" form-align></snice-slider> <!-- aligns with inputs in form rows -->
53
- <snice-slider min="0" max="100" step="5" value="50"></snice-slider>
52
+ <snice-slider label="Qty" form-align></snice-slider>
54
53
  ```
55
54
 
56
- ## CSS Parts
55
+ ## Keyboard Navigation
56
+
57
+ - Arrow keys: adjust by step
58
+ - Home/End: min/max
59
+
60
+ ## Accessibility
57
61
 
58
- `track`, `fill`, `thumb`, `spinner`, `error-text`, `helper-text`
62
+ - Form-associated via ElementInternals
63
+ - `role="slider"` with aria-valuenow/min/max
64
+ - Validation via checkValidity/reportValidity/setCustomValidity
@@ -4,42 +4,30 @@ Drag-and-drop sortable container for reordering child elements.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- direction: 'vertical' | 'horizontal' = 'vertical'
9
- handle: string = '' // CSS selector for drag handle within items
10
- disabled: boolean = false
11
- group: string = '' // group name for cross-container sorting
7
+ ```typescript
8
+ direction: 'vertical'|'horizontal' = 'vertical';
9
+ handle: string = ''; // CSS selector for drag handle
10
+ disabled: boolean = false;
11
+ group: string = ''; // Group name for cross-container sorting
12
12
  ```
13
13
 
14
- ## Slots
15
-
16
- - `default` - Items to be sortable (automatically set to `draggable`)
17
-
18
14
  ## Events
19
15
 
20
- - `sort-start` -> `{ index: number; item: HTMLElement }`
21
- - `sort-end` -> `{ oldIndex: number; newIndex: number; item: HTMLElement }`
22
- - `sort-change` -> `{ oldIndex: number; newIndex: number; item: HTMLElement }`
23
-
24
- ## CSS Parts
25
-
26
- - `base` - The outer sortable container
16
+ - `sort-start` `{ index: number, item: HTMLElement }`
17
+ - `sort-end` `{ oldIndex: number, newIndex: number, item: HTMLElement }`
18
+ - `sort-change` `{ oldIndex: number, newIndex: number, item: HTMLElement }`
27
19
 
28
- ## CSS Custom Properties
20
+ ## Slots
29
21
 
30
- - `--snice-spacing-xs` - Gap between items (default: `0.5rem`)
31
- - `--snice-transition-fast` - Drag transition speed (default: `150ms`)
32
- - `--snice-color-primary` - Ghost outline color (default: `rgb(37 99 235)`)
22
+ - `(default)` - Items to be sortable (auto set `draggable`)
33
23
 
34
- ## CSS Classes on Items
24
+ ## CSS Parts
35
25
 
36
- - `.sortable-dragging` - Added to item being dragged (opacity: 0.4)
37
- - `.sortable-ghost` - Dashed outline placeholder
26
+ - `base` - Outer sortable container
38
27
 
39
- ## Usage
28
+ ## Basic Usage
40
29
 
41
30
  ```html
42
- <!-- Vertical sortable list -->
43
31
  <snice-sortable>
44
32
  <div>Item 1</div>
45
33
  <div>Item 2</div>
@@ -48,9 +36,13 @@ group: string = '' // group name for cross-container sorting
48
36
 
49
37
  <!-- Horizontal with drag handle -->
50
38
  <snice-sortable direction="horizontal" handle=".drag-handle">
51
- <div><span class="drag-handle">&#9776;</span> Item A</div>
52
- <div><span class="drag-handle">&#9776;</span> Item B</div>
39
+ <div><span class="drag-handle">☰</span> Item A</div>
40
+ <div><span class="drag-handle">☰</span> Item B</div>
53
41
  </snice-sortable>
42
+
43
+ <!-- Cross-container sorting -->
44
+ <snice-sortable group="tasks">...</snice-sortable>
45
+ <snice-sortable group="tasks">...</snice-sortable>
54
46
  ```
55
47
 
56
48
  ```typescript
@@ -58,3 +50,9 @@ sortable.addEventListener('sort-change', (e) => {
58
50
  console.log(`Moved from ${e.detail.oldIndex} to ${e.detail.newIndex}`);
59
51
  });
60
52
  ```
53
+
54
+ ## Accessibility
55
+
56
+ - Items auto `draggable="true"`
57
+ - Ghost placeholder with dashed outline
58
+ - `.sortable-dragging` / `.sortable-ghost` classes during drag
@@ -8,34 +8,33 @@ Compact inline chart for visualizing trends and patterns.
8
8
  data: number[] = [];
9
9
  type: 'line'|'bar'|'area' = 'line';
10
10
  color: 'primary'|'success'|'warning'|'danger'|'muted' = 'primary';
11
- customColor: string = ''; // attr: custom-color, overrides color
11
+ customColor?: string; // attr: custom-color, overrides color
12
12
  width: number = 100;
13
13
  height: number = 30;
14
- strokeWidth: number = 2; // attr: stroke-width
15
- showDots: boolean = false; // attr: show-dots
16
- showArea: boolean = false; // attr: show-area
14
+ strokeWidth: number = 2; // attr: stroke-width
15
+ showDots: boolean = false; // attr: show-dots
16
+ showArea: boolean = false; // attr: show-area
17
17
  smooth: boolean = false;
18
- min?: number;
19
- max?: number;
18
+ min?: number; // auto-calculated if unset
19
+ max?: number; // auto-calculated if unset
20
20
  ```
21
21
 
22
22
  ## CSS Parts
23
23
 
24
- - `container` - Container div
24
+ - `container` - Outer container
25
25
  - `svg` - SVG element
26
- - `line` - Line/path element
27
- - `area` - Area polygon/path
28
- - `bar` - Bar rect
29
- - `dot` - Dot circle
26
+ - `line` - Line path
27
+ - `area` - Area fill path
28
+ - `dot` - Data point circle
29
+ - `bar` - Bar rectangle
30
30
 
31
- ## Usage
31
+ ## Basic Usage
32
32
 
33
33
  ```html
34
- <snice-sparkline></snice-sparkline>
35
- ```
36
-
37
- ```typescript
38
- sparkline.data = [10, 20, 15, 25, 30];
34
+ <snice-sparkline id="chart"></snice-sparkline>
35
+ <script>
36
+ document.getElementById('chart').data = [10, 20, 15, 25, 30];
37
+ </script>
39
38
  ```
40
39
 
41
40
  ```html
@@ -45,3 +44,8 @@ sparkline.data = [10, 20, 15, 25, 30];
45
44
  <snice-sparkline custom-color="#9333ea"></snice-sparkline>
46
45
  <snice-sparkline min="0" max="100"></snice-sparkline>
47
46
  ```
47
+
48
+ ## Accessibility
49
+
50
+ - Decorative; use `aria-busy="true"` on container while loading
51
+ - Add `aria-label` to describe the trend for screen readers
@@ -13,11 +13,11 @@ thickness: number = 4;
13
13
 
14
14
  ## CSS Parts
15
15
 
16
- - `base` - The outer spinner container
17
- - `circle` - The SVG spinner circle
18
- - `label` - The label text element
16
+ - `base` - Outer spinner container
17
+ - `circle` - SVG spinner circle
18
+ - `label` - Label text element
19
19
 
20
- ## Usage
20
+ ## Basic Usage
21
21
 
22
22
  ```html
23
23
  <snice-spinner></snice-spinner>
@@ -25,8 +25,12 @@ thickness: number = 4;
25
25
  <snice-spinner size="large"></snice-spinner>
26
26
  <snice-spinner size="xl"></snice-spinner>
27
27
  <snice-spinner color="success"></snice-spinner>
28
- <snice-spinner color="warning"></snice-spinner>
29
28
  <snice-spinner color="error"></snice-spinner>
30
29
  <snice-spinner label="Loading..."></snice-spinner>
31
30
  <snice-spinner thickness="6"></snice-spinner>
32
31
  ```
32
+
33
+ ## Accessibility
34
+
35
+ - `role="status"` with `aria-label`
36
+ - `label` property provides visible descriptive text
@@ -13,10 +13,15 @@ disabled: boolean = false;
13
13
  loading: boolean = false;
14
14
  outline: boolean = false;
15
15
  pill: boolean = false;
16
- icon: string = ''; // Icon (URL, image file, emoji)
17
- iconPlacement: 'start'|'end' = 'start';
16
+ icon: string = ''; // URL, image file, or emoji
17
+ iconPlacement: 'start'|'end' = 'start'; // attr: icon-placement
18
18
  ```
19
19
 
20
+ ## Events
21
+
22
+ - `primary-click` → `{ button }`
23
+ - `action-click` → `{ value, action, button }`
24
+
20
25
  ## CSS Parts
21
26
 
22
27
  - `base` - Root container
@@ -27,12 +32,7 @@ iconPlacement: 'start'|'end' = 'start';
27
32
  - `menu-items` - Menu items wrapper
28
33
  - `action` - Individual action button
29
34
 
30
- ## Events
31
-
32
- - `primary-click` → `{ button }`
33
- - `action-click` → `{ value, action, button }`
34
-
35
- ## Usage
35
+ ## Basic Usage
36
36
 
37
37
  ```html
38
38
  <snice-split-button label="Save" variant="primary"></snice-split-button>
@@ -49,10 +49,7 @@ btn.addEventListener('primary-click', () => console.log('Save clicked'));
49
49
  btn.addEventListener('action-click', (e) => console.log(e.detail.value));
50
50
  ```
51
51
 
52
- ## Notes
52
+ ## Accessibility
53
53
 
54
- - Main button triggers `primary-click`
55
- - Chevron dropdown triggers menu of alternative actions
56
- - Menu closes after action click or outside click
57
- - Escape key closes menu
54
+ - Menu closes on action click, outside click, or Escape key
58
55
  - Actions set via JS property (array), not child elements
@@ -1,6 +1,6 @@
1
1
  # snice-split-pane
2
2
 
3
- Resizable split pane layout.
3
+ Resizable split pane layout with draggable divider.
4
4
 
5
5
  ## Properties
6
6
 
@@ -13,30 +13,30 @@ snapSize: number = 0; // attr: snap-size, percentage, 0 = no snap
13
13
  disabled: boolean = false;
14
14
  ```
15
15
 
16
- ## Slots
16
+ ## Methods
17
17
 
18
- - `primary` - Primary pane content
19
- - `secondary` - Secondary pane content
18
+ - `getPrimarySize()` → `number` - Get primary pane percentage
19
+ - `getSecondarySize()` → `number` - Get secondary pane percentage
20
+ - `setPrimarySize(size)` - Set primary pane percentage
21
+ - `reset()` - Reset to 50/50
20
22
 
21
23
  ## Events
22
24
 
23
25
  - `pane-resize` → `{ primarySize, secondarySize, splitPane }`
24
26
 
25
- ## Methods
27
+ ## Slots
26
28
 
27
- - `getPrimarySize()` - Get primary pane percentage
28
- - `getSecondarySize()` - Get secondary pane percentage
29
- - `setPrimarySize(size)` - Set primary pane percentage
30
- - `reset()` - Reset to 50/50
29
+ - `primary` - Primary pane content (left or top)
30
+ - `secondary` - Secondary pane content (right or bottom)
31
31
 
32
32
  ## CSS Parts
33
33
 
34
- - `primary` - The primary pane container
35
- - `divider` - The draggable divider bar
36
- - `handle` - The visual handle inside the divider
37
- - `secondary` - The secondary pane container
34
+ - `primary` - Primary pane container
35
+ - `divider` - Draggable divider bar
36
+ - `handle` - Visual handle inside divider
37
+ - `secondary` - Secondary pane container
38
38
 
39
- ## Usage
39
+ ## Basic Usage
40
40
 
41
41
  ```html
42
42
  <snice-split-pane style="height: 400px;">
@@ -54,3 +54,8 @@ disabled: boolean = false;
54
54
  <div slot="secondary">70%</div>
55
55
  </snice-split-pane>
56
56
  ```
57
+
58
+ ## Accessibility
59
+
60
+ - Divider keyboard-accessible with arrow keys
61
+ - Mouse, touch, and keyboard input supported