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,128 +1,86 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/kanban.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/kanban.md -->
2
2
 
3
3
  # Kanban Component
4
4
 
5
- Drag-and-drop kanban board with columns and cards.
5
+ Drag-and-drop kanban board with columns and cards. Supports labels with custom colors and icons, filtering, search, and programmatic card management.
6
+
7
+ ## Table of Contents
8
+ - [Properties](#properties)
9
+ - [Methods](#methods)
10
+ - [Events](#events)
11
+ - [CSS Parts](#css-parts)
12
+ - [Basic Usage](#basic-usage)
13
+ - [Examples](#examples)
14
+ - [Accessibility](#accessibility)
6
15
 
7
16
  ## Properties
8
17
 
9
18
  | Property | Type | Default | Description |
10
19
  |----------|------|---------|-------------|
11
- | `columns` | `KanbanColumn[]` | `[]` | Board columns |
12
- | `allowDragDrop` | `boolean` | `true` | Enable drag and drop |
13
- | `showCardCount` | `boolean` | `true` | Show card count per column |
14
-
15
- ## Methods
16
-
17
- ### `addColumn(column: KanbanColumn): void`
18
- Add new column to board.
19
-
20
- ```javascript
21
- kanban.addColumn({
22
- id: 'review',
23
- title: 'In Review',
24
- cards: []
25
- });
26
- ```
27
-
28
- ### `removeColumn(id: string | number): void`
29
- Remove column from board.
30
-
31
- ```javascript
32
- kanban.removeColumn('review');
33
- ```
34
-
35
- ### `addCard(columnId: string | number, card: KanbanCard): void`
36
- Add card to specific column.
37
-
38
- ```javascript
39
- kanban.addCard('todo', {
40
- id: 10,
41
- title: 'New Task',
42
- assignee: 'John'
43
- });
44
- ```
45
-
46
- ### `removeCard(cardId: string | number): void`
47
- Remove card from board.
48
-
49
- ```javascript
50
- kanban.removeCard(10);
51
- ```
20
+ | `columns` | `KanbanColumn[]` | `[]` | Board columns (set via JavaScript) |
21
+ | `allowDragDrop` (attr: `allow-drag-drop`) | `boolean` | `true` | Enable drag and drop |
22
+ | `showCardCount` (attr: `show-card-count`) | `boolean` | `true` | Show card count per column |
52
23
 
53
- ### `moveCard(cardId: string | number, targetColumnId: string | number, targetIndex?: number): void`
54
- Move card to different column (and optionally specific position).
24
+ ### KanbanColumn Interface
55
25
 
56
- ```javascript
57
- // Move to different column
58
- kanban.moveCard(1, 'done');
59
-
60
- // Move to specific position in column
61
- kanban.moveCard(1, 'done', 0); // Move to top
62
- ```
63
-
64
- ### `filterByLabels(labels: string[]): void`
65
- Filter cards by labels (shows cards with ANY of the specified labels).
66
-
67
- ```javascript
68
- kanban.filterByLabels(['bug', 'high-priority']);
69
- ```
70
-
71
- ### `search(query: string): void`
72
- Search cards by title or description.
73
-
74
- ```javascript
75
- kanban.search('landing page');
26
+ ```typescript
27
+ interface KanbanColumn {
28
+ id: string | number;
29
+ title: string;
30
+ cards: KanbanCard[];
31
+ color?: string;
32
+ limit?: number;
33
+ collapsed?: boolean;
34
+ }
76
35
  ```
77
36
 
78
- ### `clearFilters(): void`
79
- Clear all active filters (labels and search).
37
+ ### KanbanCard Interface
80
38
 
81
- ```javascript
82
- kanban.clearFilters();
39
+ ```typescript
40
+ interface KanbanCard {
41
+ id: string | number;
42
+ title: string;
43
+ description?: string;
44
+ assignee?: string;
45
+ labels?: (string | KanbanLabel)[]; // String or full label object
46
+ color?: string;
47
+ data?: any;
48
+ }
83
49
  ```
84
50
 
85
- ### `getColumn(id: string | number): KanbanColumn | undefined`
86
- Get column by ID.
51
+ ### KanbanLabel Interface
87
52
 
88
- ```javascript
89
- const column = kanban.getColumn('todo');
90
- console.log(`${column.title} has ${column.cards.length} cards`);
53
+ ```typescript
54
+ interface KanbanLabel {
55
+ text: string;
56
+ color?: string; // Text color
57
+ background?: string; // Background color
58
+ icon?: string; // Emoji or text icon
59
+ iconPosition?: 'left' | 'right'; // Icon placement
60
+ }
91
61
  ```
92
62
 
93
- ### `getCard(id: string | number): KanbanCard | undefined`
94
- Get card by ID.
63
+ ## Methods
95
64
 
96
- ```javascript
97
- const card = kanban.getCard(1);
98
- console.log(card.title);
99
- ```
65
+ | Method | Arguments | Description |
66
+ |--------|-----------|-------------|
67
+ | `addColumn()` | `column: KanbanColumn` | Add new column to board |
68
+ | `removeColumn()` | `id: string \| number` | Remove column from board |
69
+ | `addCard()` | `columnId: string \| number, card: KanbanCard` | Add card to specific column |
70
+ | `removeCard()` | `cardId: string \| number` | Remove card from board |
71
+ | `moveCard()` | `cardId: string \| number, targetColumnId: string \| number, targetIndex?: number` | Move card to different column and optional position |
72
+ | `getColumn()` | `id: string \| number` | Get column by ID |
73
+ | `getCard()` | `id: string \| number` | Get card by ID |
74
+ | `filterByLabels()` | `labels: string[]` | Filter cards by labels (shows cards with ANY match) |
75
+ | `search()` | `query: string` | Search cards by title or description |
76
+ | `clearFilters()` | — | Clear all active filters |
100
77
 
101
78
  ## Events
102
79
 
103
- ### `kanban-card-move`
104
- Dispatched when card is moved between columns.
105
-
106
- ```javascript
107
- kanban.addEventListener('kanban-card-move', (e) => {
108
- console.log('Card:', e.detail.card);
109
- console.log('From:', e.detail.fromColumn);
110
- console.log('To:', e.detail.toColumn);
111
- });
112
- ```
113
-
114
- **Detail:** `{ card: KanbanCard, fromColumn: string | number, toColumn: string | number, kanban: SniceKanbanElement }`
115
-
116
- ### `kanban-card-click`
117
- Dispatched when card is clicked.
118
-
119
- ```javascript
120
- kanban.addEventListener('kanban-card-click', (e) => {
121
- showCardDetails(e.detail.card);
122
- });
123
- ```
124
-
125
- **Detail:** `{ card: KanbanCard, kanban: SniceKanbanElement }`
80
+ | Event | Detail | Description |
81
+ |-------|--------|-------------|
82
+ | `kanban-card-move` | `{ card: KanbanCard, fromColumn: string \| number, toColumn: string \| number, kanban: SniceKanbanElement }` | Fired when card is moved between columns |
83
+ | `kanban-card-click` | `{ card: KanbanCard, kanban: SniceKanbanElement }` | Fired when card is clicked |
126
84
 
127
85
  ## CSS Parts
128
86
 
@@ -148,20 +106,29 @@ snice-kanban::part(column-cards) {
148
106
  ## Basic Usage
149
107
 
150
108
  ```typescript
151
- kanban.columns = [
152
- {
153
- id: 'todo',
154
- title: 'To Do',
155
- cards: [
156
- { id: 1, title: 'Task 1', description: 'Do something' }
157
- ]
158
- },
159
- {
160
- id: 'done',
161
- title: 'Done',
162
- cards: []
163
- }
164
- ];
109
+ import 'snice/components/kanban/snice-kanban';
110
+ ```
111
+
112
+ ```html
113
+ <snice-kanban id="board"></snice-kanban>
114
+
115
+ <script>
116
+ const kanban = document.getElementById('board');
117
+ kanban.columns = [
118
+ {
119
+ id: 'todo',
120
+ title: 'To Do',
121
+ cards: [
122
+ { id: 1, title: 'Task 1', description: 'Do something' }
123
+ ]
124
+ },
125
+ {
126
+ id: 'done',
127
+ title: 'Done',
128
+ cards: []
129
+ }
130
+ ];
131
+ </script>
165
132
  ```
166
133
 
167
134
  ## Examples
@@ -180,9 +147,7 @@ kanban.columns = [
180
147
  id: 1,
181
148
  title: 'Redesign dashboard',
182
149
  labels: [
183
- // Simple string label (uses default theme styling)
184
150
  'feature',
185
- // Rich label with custom colors and icon
186
151
  {
187
152
  text: 'High Priority',
188
153
  color: '#dc2626',
@@ -191,64 +156,12 @@ kanban.columns = [
191
156
  iconPosition: 'left'
192
157
  }
193
158
  ]
194
- },
195
- {
196
- id: 2,
197
- title: 'Analytics dashboard',
198
- labels: [
199
- {
200
- text: 'Analytics',
201
- color: '#0891b2',
202
- background: '#cffafe',
203
- icon: '📊',
204
- iconPosition: 'left'
205
- },
206
- {
207
- text: 'Shipped',
208
- color: '#16a34a',
209
- background: '#dcfce7',
210
- icon: '🚀',
211
- iconPosition: 'right' // Icon on the right
212
- }
213
- ]
214
159
  }
215
160
  ]
216
161
  }
217
162
  ];
218
163
  ```
219
164
 
220
- ### Filtering and Search
221
-
222
- Filter cards by labels or search by text:
223
-
224
- ```javascript
225
- // Filter by single label
226
- kanban.filterByLabels(['bug']);
227
-
228
- // Filter by multiple labels (shows cards with ANY of these labels)
229
- kanban.filterByLabels(['bug', 'high-priority']);
230
-
231
- // Search by title or description
232
- kanban.search('landing page');
233
-
234
- // Combine filters and search (both apply)
235
- kanban.filterByLabels(['feature']);
236
- kanban.search('dashboard');
237
-
238
- // Clear all filters
239
- kanban.clearFilters();
240
- ```
241
-
242
- ### Basic Board
243
-
244
- ```javascript
245
- kanban.columns = [
246
- { id: 'todo', title: 'To Do', cards: [] },
247
- { id: 'doing', title: 'Doing', cards: [] },
248
- { id: 'done', title: 'Done', cards: [] }
249
- ];
250
- ```
251
-
252
165
  ### With Column Colors
253
166
 
254
167
  ```javascript
@@ -259,53 +172,27 @@ kanban.columns = [
259
172
  ];
260
173
  ```
261
174
 
262
- ### With WIP Limits
175
+ ### Filtering and Search
263
176
 
264
177
  ```javascript
265
- kanban.columns = [
266
- { id: 'todo', title: 'To Do', cards: [] },
267
- { id: 'doing', title: 'Doing', limit: 3, cards: [] },
268
- { id: 'done', title: 'Done', cards: [] }
269
- ];
270
- ```
178
+ // Filter by labels (shows cards with ANY of these labels)
179
+ kanban.filterByLabels(['bug', 'high-priority']);
271
180
 
272
- ### Rich Cards
181
+ // Search by title or description
182
+ kanban.search('landing page');
273
183
 
274
- ```javascript
275
- kanban.columns = [
276
- {
277
- id: 'todo',
278
- title: 'To Do',
279
- cards: [
280
- {
281
- id: 1,
282
- title: 'Design Landing Page',
283
- description: 'Create mockups and wireframes',
284
- assignee: 'Alice',
285
- labels: [
286
- 'design',
287
- { text: 'high-priority', color: '#dc2626', background: '#fee2e2', icon: '⚡' }
288
- ],
289
- color: '#f44336'
290
- }
291
- ]
292
- }
293
- ];
184
+ // Clear all filters
185
+ kanban.clearFilters();
294
186
  ```
295
187
 
296
188
  ### Event Handling
297
189
 
298
190
  ```javascript
299
191
  kanban.addEventListener('kanban-card-move', (e) => {
300
- // Update backend
301
192
  updateCardStatus(e.detail.card.id, e.detail.toColumn);
302
-
303
- // Show notification
304
- showNotification(`Moved "${e.detail.card.title}" to ${e.detail.toColumn}`);
305
193
  });
306
194
 
307
195
  kanban.addEventListener('kanban-card-click', (e) => {
308
- // Show modal with card details
309
196
  showCardModal(e.detail.card);
310
197
  });
311
198
  ```
@@ -314,149 +201,16 @@ kanban.addEventListener('kanban-card-click', (e) => {
314
201
 
315
202
  ```javascript
316
203
  // Add new card
317
- function addTask(title, columnId) {
318
- const newCard = {
319
- id: Date.now(),
320
- title,
321
- assignee: currentUser.name
322
- };
323
-
324
- kanban.addCard(columnId, newCard);
325
- }
204
+ kanban.addCard('todo', { id: Date.now(), title: 'New Task' });
326
205
 
327
206
  // Move card
328
- function completeTask(cardId) {
329
- kanban.moveCard(cardId, 'done');
330
- }
331
-
332
- // Remove card
333
- function deleteTask(cardId) {
334
- kanban.removeCard(cardId);
335
- }
336
- ```
337
-
338
- ### Project Management
339
-
340
- ```javascript
341
- kanban.columns = [
342
- {
343
- id: 'backlog',
344
- title: 'Backlog',
345
- cards: [
346
- { id: 1, title: 'Feature A', labels: ['feature'], assignee: 'John' },
347
- { id: 2, title: 'Bug Fix B', labels: ['bug'], color: '#f44336' }
348
- ]
349
- },
350
- {
351
- id: 'sprint',
352
- title: 'Current Sprint',
353
- limit: 5,
354
- color: '#ff9800',
355
- cards: [
356
- {
357
- id: 3,
358
- title: 'Implement Auth',
359
- description: 'JWT-based authentication',
360
- assignee: 'Sarah',
361
- labels: ['backend', 'security']
362
- }
363
- ]
364
- },
365
- {
366
- id: 'review',
367
- title: 'Code Review',
368
- color: '#9c27b0',
369
- cards: []
370
- },
371
- {
372
- id: 'deployed',
373
- title: 'Deployed',
374
- color: '#4caf50',
375
- cards: []
376
- }
377
- ];
378
- ```
379
-
380
- ### Personal Task Board
381
-
382
- ```javascript
383
- kanban.columns = [
384
- {
385
- id: 'today',
386
- title: 'Today',
387
- limit: 3,
388
- cards: [
389
- { id: 1, title: 'Morning workout', labels: ['health'] },
390
- { id: 2, title: 'Team meeting', labels: ['work'] }
391
- ]
392
- },
393
- {
394
- id: 'this-week',
395
- title: 'This Week',
396
- cards: []
397
- },
398
- {
399
- id: 'completed',
400
- title: 'Completed',
401
- cards: []
402
- }
403
- ];
404
- ```
405
-
406
- ### Bug Tracking
407
-
408
- ```javascript
409
- kanban.columns = [
410
- {
411
- id: 'reported',
412
- title: 'Reported',
413
- cards: bugs.map(bug => ({
414
- id: bug.id,
415
- title: bug.title,
416
- description: bug.description,
417
- assignee: bug.reporter,
418
- labels: [bug.severity, bug.priority],
419
- color: bug.severity === 'critical' ? '#f44336' : '#ff9800'
420
- }))
421
- },
422
- {
423
- id: 'investigating',
424
- title: 'Investigating',
425
- limit: 5,
426
- cards: []
427
- },
428
- {
429
- id: 'fixing',
430
- title: 'Fixing',
431
- limit: 3,
432
- cards: []
433
- },
434
- {
435
- id: 'fixed',
436
- title: 'Fixed',
437
- cards: []
438
- }
439
- ];
440
- ```
441
-
442
- ### Sales Pipeline
207
+ kanban.moveCard(1, 'done');
443
208
 
444
- ```javascript
445
- kanban.columns = [
446
- { id: 'lead', title: 'New Leads', cards: [] },
447
- { id: 'contacted', title: 'Contacted', cards: [] },
448
- { id: 'qualified', title: 'Qualified', cards: [] },
449
- { id: 'proposal', title: 'Proposal Sent', cards: [] },
450
- { id: 'closed', title: 'Closed Won', color: '#4caf50', cards: [] }
451
- ];
209
+ // Move to specific position
210
+ kanban.moveCard(1, 'done', 0); // Move to top
452
211
 
453
- // Add deal
454
- kanban.addCard('lead', {
455
- id: deal.id,
456
- title: deal.company,
457
- description: `$${deal.value}`,
458
- assignee: deal.owner
459
- });
212
+ // Remove card
213
+ kanban.removeCard(2);
460
214
  ```
461
215
 
462
216
  ### Disable Drag and Drop
@@ -479,68 +233,19 @@ kanban.addEventListener('kanban-card-move', async (e) => {
479
233
  await fetch('/api/cards/' + e.detail.card.id, {
480
234
  method: 'PATCH',
481
235
  headers: { 'Content-Type': 'application/json' },
482
- body: JSON.stringify({
483
- columnId: e.detail.toColumn
484
- })
236
+ body: JSON.stringify({ columnId: e.detail.toColumn })
485
237
  });
486
238
  } catch (error) {
487
- // Revert on error
488
239
  kanban.moveCard(e.detail.card.id, e.detail.fromColumn);
489
240
  alert('Failed to move card');
490
241
  }
491
242
  });
492
243
  ```
493
244
 
494
- ## KanbanColumn Interface
495
-
496
- ```typescript
497
- interface KanbanColumn {
498
- id: string | number;
499
- title: string;
500
- cards: KanbanCard[];
501
- color?: string;
502
- limit?: number;
503
- collapsed?: boolean;
504
- }
505
- ```
506
-
507
- ## KanbanLabel Interface
508
-
509
- ```typescript
510
- interface KanbanLabel {
511
- text: string;
512
- color?: string; // Text color
513
- background?: string; // Background color
514
- icon?: string; // Emoji or text icon
515
- iconPosition?: 'left' | 'right'; // Icon placement
516
- }
517
- ```
518
-
519
- ## KanbanCard Interface
520
-
521
- ```typescript
522
- interface KanbanCard {
523
- id: string | number;
524
- title: string;
525
- description?: string;
526
- assignee?: string;
527
- labels?: (string | KanbanLabel)[]; // String or full label object
528
- color?: string;
529
- data?: any;
530
- }
531
- ```
532
-
533
245
  ## Accessibility
534
246
 
535
247
  - Keyboard navigation for cards
536
248
  - ARIA labels for drag and drop
537
249
  - Focus management
538
250
  - Screen reader announcements
539
-
540
- ## Browser Support
541
-
542
- - Modern browsers with Custom Elements v1 support
543
- - HTML5 Drag and Drop API
544
- - View Transitions API (optional, for smooth animations)
545
- - Drag and drop between columns and within same column
546
- - Touch events for mobile (future enhancement)
251
+ - View Transitions API animations (when available)
@@ -1,22 +1,26 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/key-value.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/key-value.md -->
2
2
 
3
3
  # Key Value
4
4
  `<snice-key-value>`
5
5
 
6
6
  A key-value pair editor for building UIs like HTTP header editors, environment variable configurators, and settings panels. Supports both declarative child elements and imperative JavaScript APIs.
7
7
 
8
- ## Importing
8
+ ## Table of Contents
9
+ - [Components](#components)
10
+ - [Properties](#properties)
11
+ - [Methods](#methods)
12
+ - [Events](#events)
13
+ - [Slots](#slots)
14
+ - [CSS Parts](#css-parts)
15
+ - [Basic Usage](#basic-usage)
16
+ - [Examples](#examples)
9
17
 
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/key-value/snice-key-value';
13
- ```
18
+ ## Components
14
19
 
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-key-value.min.js"></script>
19
- ```
20
+ | Element | Description |
21
+ |---------|-------------|
22
+ | `<snice-key-value>` | Container/editor component |
23
+ | `<snice-kv-pair>` | Data container child element (no shadow DOM) |
20
24
 
21
25
  ## Properties
22
26
 
@@ -67,6 +71,12 @@ import 'snice/components/key-value/snice-key-value';
67
71
  | `kv-change` | `{ items: KeyValueItem[] }` | Fired on any change (add, remove, edit) |
68
72
  | `kv-copy` | `{ items: KeyValueItem[] }` | Fired when copy button is clicked |
69
73
 
74
+ ## Slots
75
+
76
+ | Slot Name | Description |
77
+ |-----------|-------------|
78
+ | (default) | `<snice-kv-pair>` child elements for declarative data |
79
+
70
80
  ## CSS Parts
71
81
 
72
82
  | Part | Description |
@@ -75,7 +85,7 @@ import 'snice/components/key-value/snice-key-value';
75
85
  | `title` | The title element |
76
86
  | `copy-button` | The copy button |
77
87
  | `rows` | The rows container |
78
- | `row` | An individual row |
88
+ | `row` | An individual row (edit mode) |
79
89
  | `key-input` | The key input field |
80
90
  | `value-input` | The value input field |
81
91
  | `description-input` | The description input field |