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,24 +1,27 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/list.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/list.md -->
2
2
 
3
3
  # List
4
4
  `<snice-list>`
5
5
 
6
6
  A list container with search, infinite scroll, loading states, and composable list items.
7
7
 
8
- ## Importing
8
+ ## Table of Contents
9
+ - [Components](#components)
10
+ - [Properties](#properties)
11
+ - [Requests](#requests)
12
+ - [Slots](#slots)
13
+ - [CSS Parts](#css-parts)
14
+ - [Basic Usage](#basic-usage)
15
+ - [Examples](#examples)
9
16
 
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/list/snice-list';
13
- ```
17
+ ## Components
14
18
 
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-list.min.js"></script>
19
- ```
19
+ - `<snice-list>` - The list container with search, infinite scroll, and loading support
20
+ - `<snice-list-item>` - Individual list item with heading, description, and slot areas
21
+
22
+ ## Properties
20
23
 
21
- ## List Properties
24
+ ### snice-list
22
25
 
23
26
  | Property | Type | Default | Description |
24
27
  |----------|------|---------|-------------|
@@ -31,7 +34,7 @@ import 'snice/components/list/snice-list';
31
34
  | `threshold` | `number` | `0.5` | Intersection threshold for infinite scroll |
32
35
  | `skeletonCount` (attr: `skeleton-count`) | `number` | `5` | Number of skeleton placeholders |
33
36
 
34
- ## List Item Properties
37
+ ### snice-list-item
35
38
 
36
39
  | Property | Type | Default | Description |
37
40
  |----------|------|---------|-------------|
@@ -40,7 +43,18 @@ import 'snice/components/list/snice-list';
40
43
  | `selected` | `boolean` | `false` | Highlights the item |
41
44
  | `disabled` | `boolean` | `false` | Disables interaction |
42
45
 
43
- ## List Slots
46
+ ## Requests
47
+
48
+ The list uses `@request`/`@respond` for controller-driven data flow.
49
+
50
+ | Request | Params | Description |
51
+ |---------|--------|-------------|
52
+ | `list/search` | `{ query: string, list }` | Handle search queries (debounced 300ms) |
53
+ | `list/load-more` | `{ page: number, list }` | Load next page for infinite scroll |
54
+
55
+ ## Slots
56
+
57
+ ### snice-list
44
58
 
45
59
  | Name | Description |
46
60
  |------|-------------|
@@ -48,15 +62,26 @@ import 'snice/components/list/snice-list';
48
62
  | `before` | Content before the list items |
49
63
  | `after` | Content after the list items |
50
64
  | `no-results` | Custom empty state (overrides default) |
51
- | `loading` | Custom loading content (overrides skeleton) |
65
+ | `loading` | Custom loading content (overrides skeletons) |
52
66
 
53
- ## List Item Slots
67
+ ### snice-list-item
54
68
 
55
69
  | Name | Description |
56
70
  |------|-------------|
57
71
  | (default) | Custom item content |
58
- | `before` | Content before the item (e.g., icon) |
59
- | `after` | Content after the item (e.g., badge) |
72
+ | `before` | Content before the item (e.g., icon, avatar) |
73
+ | `after` | Content after the item (e.g., badge, metadata) |
74
+
75
+ ## CSS Parts
76
+
77
+ ### snice-list
78
+
79
+ | Part | Element | Description |
80
+ |------|---------|-------------|
81
+ | `container` | `<div>` | The outer list container |
82
+ | `search` | `<div>` | The search input wrapper |
83
+ | `loading` | `<div>` | The loading skeletons wrapper |
84
+ | `sentinel` | `<div>` | The infinite scroll sentinel element |
60
85
 
61
86
  ## Basic Usage
62
87
 
@@ -105,7 +130,7 @@ Use the `before` and `after` slots on list items for icons and metadata.
105
130
 
106
131
  ### Searchable List
107
132
 
108
- Set the `searchable` attribute to show a search input. Handle queries with the `list/search` request.
133
+ Set the `searchable` attribute to show a search input. Handle queries with a `list/search` responder.
109
134
 
110
135
  ```html
111
136
  <snice-list searchable dividers>
@@ -152,10 +177,3 @@ Set the `no-results` attribute to show an empty state message.
152
177
  <snice-list-item heading="Enterprise" disabled></snice-list-item>
153
178
  </snice-list>
154
179
  ```
155
-
156
- ## Requests
157
-
158
- | Request | Params | Description |
159
- |---------|--------|-------------|
160
- | `list/search` | `{ query: string, list }` | Handle search queries |
161
- | `list/load-more` | `{ page: number, list }` | Load next page for infinite scroll |
@@ -1,22 +1,18 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/location.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/location.md -->
2
2
 
3
3
  # Location
4
4
  `<snice-location>`
5
5
 
6
6
  Displays location information with addresses, coordinates, maps, and custom icons.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/location/snice-location';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-location.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Events](#events)
12
+ - [Slots](#slots)
13
+ - [CSS Parts](#css-parts)
14
+ - [Basic Usage](#basic-usage)
15
+ - [Examples](#examples)
20
16
 
21
17
  ## Properties
22
18
 
@@ -1,22 +1,20 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/login.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/login.md -->
2
2
 
3
3
  # Login
4
4
  `<snice-login>`
5
5
 
6
6
  A complete authentication form with username/password fields, using Snice's @request/@respond pattern for controller communication.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/login/snice-login';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-login.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Requests](#requests)
12
+ - [Events](#events)
13
+ - [Slots](#slots)
14
+ - [CSS Parts](#css-parts)
15
+ - [Basic Usage](#basic-usage)
16
+ - [Examples](#examples)
17
+ - [Accessibility](#accessibility)
20
18
 
21
19
  ## Properties
22
20
 
@@ -35,12 +33,36 @@ import 'snice/components/login/snice-login';
35
33
 
36
34
  | Method | Arguments | Description |
37
35
  |--------|-----------|-------------|
38
- | `login()` | `credentials?: LoginCredentials` | Trigger login (uses form values if no args) |
36
+ | `login()` | `credentials?: LoginCredentials` | Trigger login via @request (uses form values if no args) |
39
37
  | `reset()` | -- | Clear form, error, and loading state |
40
38
  | `setError()` | `message: string` | Display an error message |
41
39
  | `clearError()` | -- | Remove error message |
42
40
  | `setCredentials()` | `credentials: Partial<LoginCredentials>` | Set form field values |
43
41
 
42
+ ## Requests
43
+
44
+ The login component uses `@request('login-user')` to communicate with an authentication controller.
45
+
46
+ | Request | Params | Description |
47
+ |---------|--------|-------------|
48
+ | `login-user` | `LoginCredentials` | Sent to controller on login attempt |
49
+
50
+ ### Types
51
+
52
+ ```typescript
53
+ interface LoginCredentials {
54
+ username: string;
55
+ password: string;
56
+ remember?: boolean;
57
+ }
58
+
59
+ interface LoginResult {
60
+ success: boolean;
61
+ error?: string;
62
+ data?: any;
63
+ }
64
+ ```
65
+
44
66
  ## Events
45
67
 
46
68
  | Event | Detail | Description |
@@ -154,8 +176,6 @@ Use `title` and `action-text` to customize the form text.
154
176
 
155
177
  ### Request/Respond Pattern
156
178
 
157
- The login component uses `@request('login-user')` to communicate with an authentication controller.
158
-
159
179
  ```typescript
160
180
  import { controller, respond, IController } from 'snice';
161
181
  import type { LoginCredentials, LoginResult } from 'snice/components/login/snice-login.types';
@@ -216,24 +236,10 @@ login.clearError();
216
236
  login.reset();
217
237
  ```
218
238
 
219
- ## Request/Respond Types
220
-
221
- ```typescript
222
- interface LoginCredentials {
223
- username: string;
224
- password: string;
225
- remember?: boolean;
226
- }
239
+ ## Accessibility
227
240
 
228
- interface LoginResult {
229
- success: boolean;
230
- error?: string;
231
- data?: any;
232
- }
233
- ```
234
-
235
- ## Requests
236
-
237
- | Request | Params | Description |
238
- |---------|--------|-------------|
239
- | `login-user` | `LoginCredentials` | Sent to controller on login attempt |
241
+ - Form inputs use proper `<label>` elements with `for` attributes
242
+ - Inputs have `autocomplete` attributes (`username`, `current-password`)
243
+ - Enter key on password field triggers form submission
244
+ - Loading and disabled states propagate to all form inputs and the submit button
245
+ - Required fields are marked with the `required` attribute
@@ -1,35 +1,19 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/map.md instead -->
2
-
3
- # Map Component
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/map.md -->
4
2
 
3
+ # Map
5
4
  `<snice-map>`
6
5
 
7
6
  An interactive slippy map component using OpenStreetMap tiles. Supports markers with popups, drag panning, scroll zoom, and programmatic control over the viewport.
8
7
 
9
8
  ## Table of Contents
10
- - [Importing](#importing)
11
9
  - [Properties](#properties)
12
10
  - [Methods](#methods)
13
11
  - [Events](#events)
14
12
  - [CSS Parts](#css-parts)
15
13
  - [Basic Usage](#basic-usage)
16
14
  - [Examples](#examples)
17
- - [Types](#types)
18
15
  - [Accessibility](#accessibility)
19
16
 
20
- ## Importing
21
-
22
- **ESM (bundler)**
23
- ```typescript
24
- import 'snice/components/map/snice-map';
25
- ```
26
-
27
- **CDN**
28
- ```html
29
- <script src="snice-runtime.min.js"></script>
30
- <script src="snice-map.min.js"></script>
31
- ```
32
-
33
17
  ## Properties
34
18
 
35
19
  | Property | Type | Default | Description |
@@ -41,6 +25,24 @@ import 'snice/components/map/snice-map';
41
25
  | `markers` | `MapMarker[]` | `[]` | Array of marker data (set via JavaScript) |
42
26
  | `tileUrl` (attr: `tile-url`) | `string` | `'https://tile.openstreetmap.org/{z}/{x}/{y}.png'` | Tile server URL template with `{x}`, `{y}`, `{z}` placeholders |
43
27
 
28
+ ### Types
29
+
30
+ ```typescript
31
+ interface MapCenter {
32
+ lat: number;
33
+ lng: number;
34
+ }
35
+
36
+ interface MapMarker {
37
+ id: string; // Unique identifier
38
+ lat: number; // Latitude
39
+ lng: number; // Longitude
40
+ label?: string; // Marker label text
41
+ icon?: string; // Custom icon URL
42
+ popup?: string; // Popup text shown on marker click
43
+ }
44
+ ```
45
+
44
46
  ## Methods
45
47
 
46
48
  | Method | Arguments | Description |
@@ -55,9 +57,9 @@ import 'snice/components/map/snice-map';
55
57
 
56
58
  | Event | Detail | Description |
57
59
  |-------|--------|-------------|
58
- | `map-click` | `{ lat: number; lng: number }` | Fired when the map is clicked (not on a marker) |
60
+ | `map-click` | `{ lat: number, lng: number }` | Fired when the map is clicked (not on a marker) |
59
61
  | `marker-click` | `{ marker: MapMarker }` | Fired when a marker is clicked. Also toggles the marker's popup |
60
- | `map-move` | `{ center: MapCenter; zoom: number }` | Fired after a drag pan operation completes |
62
+ | `map-move` | `{ center: MapCenter, zoom: number }` | Fired after a drag pan operation completes |
61
63
  | `map-zoom` | `{ zoom: number }` | Fired when the zoom level changes |
62
64
 
63
65
  ## CSS Parts
@@ -194,34 +196,10 @@ Use the `tile-url` attribute to load tiles from a different provider.
194
196
  ></snice-map>
195
197
  ```
196
198
 
197
- ## Types
198
-
199
- ### MapCenter
200
-
201
- ```typescript
202
- interface MapCenter {
203
- lat: number;
204
- lng: number;
205
- }
206
- ```
207
-
208
- ### MapMarker
209
-
210
- ```typescript
211
- interface MapMarker {
212
- id: string; // Unique identifier
213
- lat: number; // Latitude
214
- lng: number; // Longitude
215
- label?: string; // Marker label text
216
- icon?: string; // Custom icon URL
217
- popup?: string; // Popup text shown on marker click
218
- }
219
- ```
220
-
221
199
  ## Accessibility
222
200
 
223
- - The map supports mouse drag to pan and scroll wheel to zoom
224
- - Zoom in/out buttons are provided in the top-right corner for keyboard and pointer access
201
+ - Mouse drag to pan, scroll wheel to zoom
202
+ - Zoom in/out buttons in the top-right corner for keyboard and pointer access
225
203
  - Markers are interactive and toggle popup display on click
226
204
  - OpenStreetMap attribution is included automatically
227
205
  - For keyboard-only users, the zoom buttons provide an accessible alternative to scroll-wheel zoom
@@ -1,16 +1,15 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/markdown.md instead -->
2
-
3
- # Markdown Component
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/markdown.md -->
4
2
 
3
+ # Markdown
5
4
  `<snice-markdown>`
6
5
 
7
6
  A lightweight GFM-compatible markdown renderer that converts markdown text to styled HTML inside shadow DOM. Includes built-in sanitization to prevent XSS attacks.
8
7
 
9
8
  ## Table of Contents
10
- - [Importing](#importing)
11
9
  - [Properties](#properties)
12
10
  - [Methods](#methods)
13
11
  - [Events](#events)
12
+ - [Slots](#slots)
14
13
  - [CSS Custom Properties](#css-custom-properties)
15
14
  - [CSS Parts](#css-parts)
16
15
  - [Basic Usage](#basic-usage)
@@ -18,19 +17,6 @@ A lightweight GFM-compatible markdown renderer that converts markdown text to st
18
17
  - [Supported Syntax](#supported-syntax)
19
18
  - [Accessibility](#accessibility)
20
19
 
21
- ## Importing
22
-
23
- **ESM (bundler)**
24
- ```typescript
25
- import 'snice/components/markdown/snice-markdown';
26
- ```
27
-
28
- **CDN**
29
- ```html
30
- <script src="snice-runtime.min.js"></script>
31
- <script src="snice-markdown.min.js"></script>
32
- ```
33
-
34
20
  ## Properties
35
21
 
36
22
  | Property | Type | Default | Description |
@@ -38,18 +24,26 @@ import 'snice/components/markdown/snice-markdown';
38
24
  | `sanitize` | `boolean` | `true` | Whether to sanitize the HTML output to prevent XSS |
39
25
  | `theme` | `'default' \| 'github'` | `'default'` | Visual theme for the rendered output |
40
26
 
27
+ > **Note:** The `content` field is a plain class property, not a reactive `@property`. Use `setContent()` to update content programmatically, or provide text as slotted content.
28
+
41
29
  ## Methods
42
30
 
43
31
  | Method | Arguments | Description |
44
32
  |--------|-----------|-------------|
45
- | `setContent()` | `markdown: string` | Set the markdown source programmatically |
33
+ | `setContent()` | `markdown: string` | Set the markdown source programmatically and re-render |
46
34
 
47
35
  ## Events
48
36
 
49
37
  | Event | Detail | Description |
50
38
  |-------|--------|-------------|
51
39
  | `markdown-render` | `{ html: string }` | Fired after the markdown has been rendered to HTML |
52
- | `link-click` | `{ href: string; text: string }` | Fired when a link in the rendered content is clicked. Default navigation is prevented |
40
+ | `link-click` | `{ href: string, text: string }` | Fired when a link in the rendered content is clicked. Default navigation is prevented |
41
+
42
+ ## Slots
43
+
44
+ | Name | Description |
45
+ |------|-------------|
46
+ | (default) | Markdown source text (read on connect and slotchange) |
53
47
 
54
48
  ## CSS Custom Properties
55
49
 
@@ -155,7 +149,7 @@ Use the `theme="github"` attribute for GitHub-style markdown rendering.
155
149
 
156
150
  ### Intercepting Link Clicks
157
151
 
158
- Listen for the `link-click` event to handle navigation within your application instead of following the default link behavior.
152
+ Listen for the `link-click` event to handle navigation within your application.
159
153
 
160
154
  ```html
161
155
  <snice-markdown id="docs">Check out [the documentation](/docs) or visit [our website](https://example.com).</snice-markdown>
@@ -169,7 +163,6 @@ Listen for the `link-click` event to handle navigation within your application i
169
163
  const { href, text } = e.detail;
170
164
  console.log(`Link clicked: "${text}" -> ${href}`);
171
165
 
172
- // Handle internal navigation
173
166
  if (href.startsWith('/')) {
174
167
  window.history.pushState({}, '', href);
175
168
  } else {
@@ -181,13 +174,9 @@ Listen for the `link-click` event to handle navigation within your application i
181
174
 
182
175
  ### Code Blocks and Tables
183
176
 
184
- Render markdown that includes fenced code blocks and GFM tables.
185
-
186
177
  ```html
187
178
  <snice-markdown>## API Response
188
179
 
189
- The endpoint returns the following JSON:
190
-
191
180
  | Code | Meaning |
192
181
  |------|---------|
193
182
  | 200 | Success |
@@ -1,22 +1,17 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/masonry.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/masonry.md -->
2
2
 
3
3
  # Masonry
4
4
  `<snice-masonry>`
5
5
 
6
6
  A Pinterest-style layout that arranges items in columns with variable heights using CSS columns.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/masonry/snice-masonry';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-masonry.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Slots](#slots)
11
+ - [CSS Parts](#css-parts)
12
+ - [Basic Usage](#basic-usage)
13
+ - [Examples](#examples)
14
+ - [Accessibility](#accessibility)
20
15
 
21
16
  ## Properties
22
17
 
@@ -135,3 +130,10 @@ Use the `gap` attribute with any CSS length value.
135
130
  });
136
131
  </script>
137
132
  ```
133
+
134
+ ## Accessibility
135
+
136
+ - The masonry container has `role="list"` for screen readers
137
+ - Items flow top-to-bottom, left-to-right within CSS columns
138
+ - `break-inside: avoid` prevents items from splitting across columns
139
+ - CSS columns-based layout requires no JavaScript measurement
@@ -1,34 +1,31 @@
1
- <!-- AI: For a low-token version of this doc, use docs/ai/components/mentions.md instead -->
1
+ <!-- AI: For the AI-optimized version of this doc, see docs/ai/components/mentions.md -->
2
2
 
3
3
  # Mentions
4
4
  `<snice-mentions>`
5
5
 
6
6
  A text input with inline @mention autocomplete. Typing the trigger character shows a filtered user list dropdown, and selected mentions are stored as structured markers in the value.
7
7
 
8
- ## Importing
9
-
10
- **ESM (bundler)**
11
- ```typescript
12
- import 'snice/components/mentions/snice-mentions';
13
- ```
14
-
15
- **CDN**
16
- ```html
17
- <script src="snice-runtime.min.js"></script>
18
- <script src="snice-mentions.min.js"></script>
19
- ```
8
+ ## Table of Contents
9
+ - [Properties](#properties)
10
+ - [Methods](#methods)
11
+ - [Events](#events)
12
+ - [CSS Parts](#css-parts)
13
+ - [Basic Usage](#basic-usage)
14
+ - [Examples](#examples)
15
+ - [Keyboard Navigation](#keyboard-navigation)
16
+ - [Accessibility](#accessibility)
20
17
 
21
18
  ## Properties
22
19
 
23
20
  | Property | Type | Default | Description |
24
21
  |----------|------|---------|-------------|
25
22
  | `value` | `string` | `''` | Raw text with `@[Name](id)` mention markers |
26
- | `users` | `MentionUser[]` | `[]` | Users available for autocomplete |
23
+ | `users` | `MentionUser[]` | `[]` | Users available for autocomplete (set via JavaScript) |
27
24
  | `placeholder` | `string` | `'Type @ to mention someone...'` | Input placeholder text |
28
25
  | `readonly` | `boolean` | `false` | Prevents editing |
29
26
  | `trigger` | `string` | `'@'` | Character that triggers the autocomplete dropdown |
30
27
 
31
- ### MentionUser Interface
28
+ ### Types
32
29
 
33
30
  ```typescript
34
31
  interface MentionUser {
@@ -36,11 +33,7 @@ interface MentionUser {
36
33
  name: string;
37
34
  avatar?: string;
38
35
  }
39
- ```
40
36
 
41
- ### Mention Interface
42
-
43
- ```typescript
44
37
  interface Mention {
45
38
  id: string;
46
39
  name: string;
@@ -67,12 +60,14 @@ interface Mention {
67
60
 
68
61
  ## CSS Parts
69
62
 
70
- | Part | Description |
71
- |------|-------------|
72
- | `base` | Wrapper container |
73
- | `editor` | Editor container with border |
74
- | `textarea` | The textarea element |
75
- | `dropdown` | Autocomplete dropdown |
63
+ Style internal elements from outside the shadow DOM using `::part()`.
64
+
65
+ | Part | Element | Description |
66
+ |------|---------|-------------|
67
+ | `base` | `<div>` | Wrapper container |
68
+ | `editor` | `<div>` | Editor container with border |
69
+ | `textarea` | `<textarea>` | The textarea element |
70
+ | `dropdown` | `<div>` | Autocomplete dropdown |
76
71
 
77
72
  ## Basic Usage
78
73
 
@@ -171,3 +166,19 @@ editor.addEventListener('value-change', e => {
171
166
  console.log('Mentions:', e.detail.mentions);
172
167
  });
173
168
  ```
169
+
170
+ ## Keyboard Navigation
171
+
172
+ | Key | Action |
173
+ |-----|--------|
174
+ | Arrow Down | Move to next item in dropdown |
175
+ | Arrow Up | Move to previous item in dropdown |
176
+ | Enter / Tab | Select highlighted item |
177
+ | Escape | Close dropdown |
178
+
179
+ ## Accessibility
180
+
181
+ - The textarea has `aria-autocomplete="list"` and `aria-haspopup="listbox"`
182
+ - Dropdown items have `role="option"` with `aria-selected` for the highlighted item
183
+ - The dropdown has `role="listbox"`
184
+ - Avatar placeholders show user initials when no image is provided