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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Key-value pair editor for HTTP headers, env vars, config entries. Dual API: declarative `<snice-kv-pair>` children or imperative `setItems()`.
4
4
 
5
- ## Elements
5
+ ## Components
6
6
 
7
7
  - `snice-key-value` — Container/editor
8
8
  - `snice-kv-pair` — Data container child (no shadow DOM)
@@ -22,7 +22,7 @@ readonly: boolean = false;
22
22
  name: string = '';
23
23
  variant: 'default'|'compact' = 'default';
24
24
  mode: 'edit'|'view' = 'edit'; // view = read-only display
25
- showCopy: boolean = false; // attr: show-copy — copy button in header
25
+ showCopy: boolean = false; // attr: show-copy
26
26
  value: string; // readonly getter — JSON string of items
27
27
  ```
28
28
 
@@ -34,13 +34,6 @@ value: string = '';
34
34
  description: string = '';
35
35
  ```
36
36
 
37
- ## Events
38
-
39
- - `kv-add` → `{ item: KeyValueItem, index: number }`
40
- - `kv-remove` → `{ item: KeyValueItem, index: number }`
41
- - `kv-change` → `{ items: KeyValueItem[] }`
42
- - `kv-copy` → `{ items: KeyValueItem[] }`
43
-
44
37
  ## Methods
45
38
 
46
39
  - `setItems(items)` - Set items imperatively (ignored in slot mode)
@@ -50,7 +43,26 @@ description: string = '';
50
43
  - `getItems()` - Returns non-empty items
51
44
  - `focus()` - Focus first key input
52
45
 
53
- ## Usage
46
+ ## Events
47
+
48
+ - `kv-add` → `{ item: KeyValueItem, index: number }`
49
+ - `kv-remove` → `{ item: KeyValueItem, index: number }`
50
+ - `kv-change` → `{ items: KeyValueItem[] }`
51
+ - `kv-copy` → `{ items: KeyValueItem[] }`
52
+
53
+ ## Slots
54
+
55
+ - `(default)` - `<snice-kv-pair>` child elements
56
+
57
+ ## CSS Parts
58
+
59
+ `base`, `title`, `copy-button`, `rows`, `row`, `key-input`, `value-input`, `description-input`, `delete-button`, `view-row`, `view-key`, `view-value`, `view-desc`, `empty`
60
+
61
+ ## Basic Usage
62
+
63
+ ```typescript
64
+ import 'snice/components/key-value/snice-key-value';
65
+ ```
54
66
 
55
67
  ```html
56
68
  <!-- Declarative -->
@@ -77,14 +89,18 @@ kv.addEventListener('kv-change', e => console.log(e.detail.items));
77
89
 
78
90
  <!-- Compact with descriptions -->
79
91
  <snice-key-value variant="compact" show-description></snice-key-value>
92
+
93
+ <!-- View mode -->
94
+ <snice-key-value mode="view" label="Response Headers">
95
+ <snice-kv-pair key="Content-Type" value="application/json"></snice-kv-pair>
96
+ </snice-key-value>
80
97
  ```
81
98
 
82
99
  ## Behavior
83
100
 
84
- - **Auto-expand** (default): last row non-empty new empty row appended
85
- - **Fixed rows**: `rows="5"` exactly 5, no delete buttons, no auto-expand
101
+ - **Auto-expand** (default): last row non-empty -> new empty row appended
102
+ - **Fixed rows**: `rows="5"` -> exactly 5, no delete buttons, no auto-expand
86
103
  - **Slot precedence**: `<snice-kv-pair>` children override `setItems()`
87
- - **View mode**: `mode="view"` renders as read-only text (no inputs), empty items hidden
88
- - **Copy button**: `show-copy` adds clipboard button in header, copies JSON
89
- - **Form associated**: `value` getter returns `JSON.stringify({key:value,...})`, `setFormValue()` called on every change
90
- - Delete all rows → one empty row remains
104
+ - **View mode**: `mode="view"` renders as read-only text, empty items hidden
105
+ - **Copy button**: `show-copy` adds clipboard button, copies JSON
106
+ - **Form associated**: `value` getter returns JSON string, `setFormValue()` on every change
@@ -2,39 +2,48 @@
2
2
 
3
3
  Key performance indicator display with value, label, trend, sparkline, and sentiment.
4
4
 
5
- > **Note**: `snice-stat` component has been merged into `snice-kpi`.
5
+ > `snice-stat` has been merged into `snice-kpi`.
6
6
 
7
7
  ## Properties
8
8
 
9
9
  ```typescript
10
- label: string = '' // Metric label/name
11
- value: string | number = '' // Main metric value
12
- trendValue?: string | number // attribute: trend-value
13
- trendData?: number[] // Sparkline data array (JS only)
14
- sentiment?: KpiSentiment // 'up' | 'down' | 'neutral'
15
- size: KpiSize = 'medium' // 'small' | 'medium' | 'large'
16
- showSparkline: boolean = true // attribute: show-sparkline
17
- colorValue: boolean = false // attribute: color-value
10
+ label: string = '';
11
+ value: string | number = '';
12
+ trendValue?: string | number; // attr: trend-value
13
+ trendData?: number[]; // Sparkline data array (JS only, attribute: false)
14
+ sentiment?: KpiSentiment; // 'up' | 'down' | 'neutral'
15
+ size: KpiSize = 'medium'; // 'small' | 'medium' | 'large'
16
+ showSparkline: boolean = true; // attr: show-sparkline
17
+ colorValue: boolean = false; // attr: color-value — apply sentiment color to value
18
18
  ```
19
19
 
20
20
  ## Slots
21
21
 
22
+ - `before` - Content before label/value (e.g., icons)
23
+ - `after` - Content after sparkline (e.g., actions)
24
+
25
+ ## CSS Parts
26
+
27
+ - `container` - Main container
28
+ - `header` - Header section
29
+ - `main` - Main content (label + value)
30
+ - `label` - Label text
31
+ - `value` - Value text
32
+ - `trend` - Trend container
33
+ - `trend-icon` - Trend icon (up/down/neutral arrow)
34
+ - `trend-value` - Trend value text
35
+ - `sparkline` - Sparkline container
36
+
37
+ ## Basic Usage
38
+
22
39
  ```typescript
23
- before // Content before label/value (e.g., icons)
24
- after // Content after sparkline (e.g., actions)
40
+ import 'snice/components/kpi/snice-kpi';
25
41
  ```
26
42
 
27
- ## Usage
28
-
29
43
  ```html
30
44
  <!-- Basic -->
31
45
  <snice-kpi label="Revenue" value="$45,231"></snice-kpi>
32
46
 
33
- <!-- With icon (before slot) -->
34
- <snice-kpi label="Revenue" value="$45,231">
35
- <div slot="before">🏆</div>
36
- </snice-kpi>
37
-
38
47
  <!-- With trend -->
39
48
  <snice-kpi
40
49
  label="Monthly Revenue"
@@ -59,9 +68,9 @@ sales.trendData = [20, 25, 22, 30, 28, 35, 32];
59
68
 
60
69
  ```html
61
70
  <!-- Sentiments -->
62
- <snice-kpi sentiment="up"></snice-kpi> <!-- Green, -->
63
- <snice-kpi sentiment="down"></snice-kpi> <!-- Red, -->
64
- <snice-kpi sentiment="neutral"></snice-kpi> <!-- Gray, -->
71
+ <snice-kpi sentiment="up"></snice-kpi> <!-- Green, arrow up -->
72
+ <snice-kpi sentiment="down"></snice-kpi> <!-- Red, arrow down -->
73
+ <snice-kpi sentiment="neutral"></snice-kpi> <!-- Gray, arrow right -->
65
74
 
66
75
  <!-- Sizes -->
67
76
  <snice-kpi size="small"></snice-kpi>
@@ -71,58 +80,14 @@ sales.trendData = [20, 25, 22, 30, 28, 35, 32];
71
80
  <!-- Without sparkline -->
72
81
  <snice-kpi show-sparkline="false"></snice-kpi>
73
82
 
74
- <!-- Dashboard grid -->
75
- <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;">
76
- <snice-kpi
77
- id="mrr"
78
- label="MRR"
79
- value="$127K"
80
- trend-value="+22%"
81
- sentiment="up">
82
- </snice-kpi>
83
-
84
- <snice-kpi
85
- id="users"
86
- label="Active Users"
87
- value="2,345"
88
- trend-value="+8.7%"
89
- sentiment="up">
90
- </snice-kpi>
91
-
92
- <snice-kpi
93
- id="churn"
94
- label="Churn"
95
- value="2.3%"
96
- trend-value="+0.8%"
97
- sentiment="down">
98
- </snice-kpi>
99
- </div>
100
- ```
101
-
102
- ```typescript
103
- mrr.trendData = [100, 110, 105, 120, 115, 130, 127];
104
- users.trendData = [2000, 2100, 2200, 2250, 2300, 2345];
105
- churn.trendData = [1.5, 1.8, 2.0, 2.2, 2.1, 2.3];
106
- ```
107
-
108
- ## CSS Parts
109
-
110
- ```css
111
- ::part(container) /* Main container */
112
- ::part(header) /* Header section */
113
- ::part(main) /* Main content (label + value) */
114
- ::part(label) /* Label text */
115
- ::part(value) /* Value text */
116
- ::part(trend) /* Trend container */
117
- ::part(trend-icon) /* Trend icon (↑↓→) */
118
- ::part(trend-value) /* Trend value text */
119
- ::part(sparkline) /* Sparkline container */
83
+ <!-- With icon slot -->
84
+ <snice-kpi label="Revenue" value="$45,231">
85
+ <div slot="before">icon here</div>
86
+ </snice-kpi>
120
87
  ```
121
88
 
122
- ## Notes
89
+ ## Accessibility
123
90
 
124
- - Sparkline automatically uses sentiment color (success/danger/muted)
125
- - Sentiment icons: up=↑, down=↓, neutral=→
126
- - trendData array automatically renders sparkline
127
- - Value can be string or number for formatting flexibility
128
- - showSparkline=false hides sparkline even if data provided
91
+ - Labels provide context for values
92
+ - Sentiment: color + icon differentiation
93
+ - Sufficient color contrast
@@ -2,42 +2,48 @@
2
2
 
3
3
  Application layout with header navigation, main content area, and footer.
4
4
 
5
+ ## Methods
6
+
7
+ - `update(appContext, placards, currentRoute, routeParams)` - Update layout navigation from router state
8
+
5
9
  ## Slots
6
10
 
7
11
  - `brand` - Logo/brand in header
8
12
  - `page` - Main page content
9
13
  - `footer` - Footer content
10
14
 
11
- ## Methods
15
+ ## CSS Parts
12
16
 
13
- - `update(appContext, placards, currentRoute, routeParams)` - Update layout navigation from router state
17
+ - `base` - Outer layout container div
18
+ - `header` - Header element with navigation
19
+ - `brand` - Brand/logo area within header
20
+ - `main` - Main content area
21
+ - `footer` - Footer element
14
22
 
15
- ## Usage
23
+ ## Basic Usage
24
+
25
+ ```typescript
26
+ import 'snice/components/layout/snice-layout';
27
+ ```
16
28
 
17
29
  ```html
18
30
  <snice-layout>
19
- <div slot="brand">
20
- <h1>My App</h1>
21
- </div>
22
- <div slot="page">
23
- <!-- Page content -->
24
- </div>
25
- <div slot="footer">
26
- <p>&copy; 2025 My Company</p>
27
- </div>
31
+ <div slot="brand"><h1>My App</h1></div>
32
+ <div slot="page">Page content</div>
33
+ <div slot="footer"><p>&copy; 2025 My Company</p></div>
28
34
  </snice-layout>
29
35
  ```
30
36
 
31
- **CSS Parts:**
32
- - `base` - Outer layout container div
33
- - `header` - Header element with navigation
34
- - `brand` - Brand/logo area within header
35
- - `main` - Main content area
36
- - `footer` - Footer element
37
+ ## Examples
37
38
 
38
- ## Features
39
+ ```html
40
+ <!-- Router integration -->
41
+ <snice-layout id="app-layout">
42
+ <img slot="brand" src="/logo.svg" alt="Logo" />
43
+ <div slot="page"></div>
44
+ </snice-layout>
45
+ ```
39
46
 
40
- - Grid layout: header, main, footer
41
- - Integrated `snice-nav` in header
42
- - Router integration via `update()` method
43
- - Slotted brand, page, and footer areas
47
+ ```typescript
48
+ layout.update(appContext, placards, currentRoute, routeParams);
49
+ ```
@@ -2,21 +2,22 @@
2
2
 
3
3
  Ranked list with podium variant, avatars, change indicators. Dual API: declarative children or imperative setter.
4
4
 
5
+ ## Components
6
+
7
+ - `<snice-leaderboard>` - Container
8
+ - `<snice-leaderboard-entry>` - Data container child (attrs: `rank`, `name`, `score`, `avatar`, `change`, `highlighted`)
9
+
5
10
  ## Properties
6
11
 
7
12
  ```ts
8
- variant: 'default' | 'podium' | 'compact' // Display variant (default: 'default')
9
- size: 'small' | 'medium' | 'large' // Size (default: 'medium')
10
- title: string // Optional header title (default: '')
13
+ variant: 'default'|'podium'|'compact' = 'default';
14
+ size: 'small'|'medium'|'large' = 'medium';
15
+ title: string = '';
11
16
  ```
12
17
 
13
18
  ## Methods
14
19
 
15
- ```ts
16
- setEntries(entries: LeaderboardEntry[]): void // Set entries imperatively
17
- ```
18
-
19
- ### LeaderboardEntry
20
+ - `setEntries(entries: LeaderboardEntry[]): void` - Set entries imperatively (slot children take precedence)
20
21
 
21
22
  ```ts
22
23
  interface LeaderboardEntry {
@@ -29,48 +30,38 @@ interface LeaderboardEntry {
29
30
  }
30
31
  ```
31
32
 
32
- ## Slots
33
-
34
- - `(default)` - `<snice-leaderboard-entry>` child elements for declarative API
35
-
36
- ## Child Elements
37
-
38
- ### `<snice-leaderboard-entry>`
39
-
40
- Data container element. Attributes: `rank` (Number), `name` (String), `score` (String), `avatar` (String, optional), `change` (Number, optional), `highlighted` (Boolean).
41
-
42
- **Slot children take precedence over `setEntries()`.** When all children removed, falls back to imperative mode.
43
-
44
33
  ## Events
45
34
 
46
- - `entry-click` -> `{ entry: LeaderboardEntry, index: number }` -- Entry clicked
35
+ - `entry-click` `{ entry: LeaderboardEntry, index: number }`
47
36
 
48
- ## Variants
37
+ ## Slots
49
38
 
50
- - `default` -- Flat list
51
- - `podium` -- Top 3 shown as podium, rest as list
52
- - `compact` -- Tighter spacing, smaller avatars
39
+ - `(default)` - `<snice-leaderboard-entry>` child elements for declarative API
53
40
 
54
41
  ## CSS Custom Properties
55
42
 
56
43
  ```css
57
- --leaderboard-bg /* Background (default: --snice-color-background) */
58
- --leaderboard-text /* Text color (default: --snice-color-text) */
59
- --leaderboard-text-secondary /* Secondary text (default: --snice-color-text-secondary) */
60
- --leaderboard-border /* Border color (default: --snice-color-border) */
61
- --leaderboard-primary /* Primary accent (default: --snice-color-primary) */
62
- --leaderboard-success /* Up change color (default: --snice-color-success) */
63
- --leaderboard-danger /* Down change color (default: --snice-color-danger) */
64
- --leaderboard-bg-element /* Element background (default: --snice-color-background-element) */
65
- --leaderboard-radius /* Border radius (default: --snice-border-radius-lg) */
44
+ --leaderboard-bg /* var(--snice-color-background) */
45
+ --leaderboard-text /* var(--snice-color-text) */
46
+ --leaderboard-text-secondary /* var(--snice-color-text-secondary) */
47
+ --leaderboard-border /* var(--snice-color-border) */
48
+ --leaderboard-primary /* var(--snice-color-primary) */
49
+ --leaderboard-success /* var(--snice-color-success) */
50
+ --leaderboard-danger /* var(--snice-color-danger) */
51
+ --leaderboard-bg-element /* var(--snice-color-background-element) */
52
+ --leaderboard-radius /* var(--snice-border-radius-lg) */
66
53
  ```
67
54
 
68
- **CSS Parts:** `base`, `title`, `list`, `empty`
55
+ ## CSS Parts
56
+
57
+ - `base` - Outer container
58
+ - `title` - Title heading
59
+ - `list` - Entries list
60
+ - `empty` - Empty state
69
61
 
70
- ## Usage
62
+ ## Basic Usage
71
63
 
72
64
  ```html
73
- <!-- Declarative -->
74
65
  <snice-leaderboard variant="podium" title="Top Players">
75
66
  <snice-leaderboard-entry rank="1" name="Alice" score="2500" change="3" highlighted></snice-leaderboard-entry>
76
67
  <snice-leaderboard-entry rank="2" name="Bob" score="2100" change="-1"></snice-leaderboard-entry>
@@ -4,7 +4,7 @@ Rich URL preview card with image, title, description, and site info.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```typescript
7
+ ```ts
8
8
  url: string = '';
9
9
  title: string = '';
10
10
  description: string = '';
@@ -19,7 +19,17 @@ size: 'small'|'medium'|'large' = 'medium';
19
19
 
20
20
  - `link-click` → `{ url: string }`
21
21
 
22
- ## Usage
22
+ ## CSS Parts
23
+
24
+ - `base` - Outer preview card container
25
+ - `content` - Text content area (title, description, footer)
26
+ - `title` - Title text element
27
+
28
+ ## Basic Usage
29
+
30
+ ```typescript
31
+ import 'snice/components/link-preview/snice-link-preview';
32
+ ```
23
33
 
24
34
  ```html
25
35
  <!-- Vertical (default) -->
@@ -37,19 +47,3 @@ size: 'small'|'medium'|'large' = 'medium';
37
47
  url="https://example.com" title="Quick Link" description="Short.">
38
48
  </snice-link-preview>
39
49
  ```
40
-
41
- ## CSS Parts
42
-
43
- - `base` - The outer preview card container
44
- - `content` - The text content area (title, description, footer)
45
- - `title` - The title text element
46
-
47
- ## Features
48
-
49
- - Vertical (image top) and horizontal (image left) layouts
50
- - 3 sizes: small, medium, large
51
- - Placeholder icon when no image
52
- - Title clamped to 2 lines, description to 3
53
- - Domain extracted from URL
54
- - Click opens URL in new tab (noopener, noreferrer)
55
- - Keyboard accessible (Enter/Space)
@@ -4,7 +4,7 @@ Hyperlink component with variants, external link handling, and hash routing.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```typescript
7
+ ```ts
8
8
  href: string = '';
9
9
  target: '_self'|'_blank'|'_parent'|'_top' = '_self';
10
10
  variant: 'default'|'primary'|'secondary'|'muted' = 'default';
@@ -14,24 +14,27 @@ underline: boolean = false;
14
14
  hash: boolean = false; // auto-prepend # to href
15
15
  ```
16
16
 
17
- ## Slots
18
-
19
- - `(default)` - Link text content
20
-
21
17
  ## Events
22
18
 
23
19
  - `click` → `MouseEvent` (prevented when disabled)
24
20
  - `navigate` → `{ href: string }` (hash links only, cancelable)
25
21
 
22
+ ## Slots
23
+
24
+ - `(default)` - Link text content
25
+
26
26
  ## CSS Parts
27
27
 
28
28
  - `link` - Anchor element
29
29
  - `external-icon` - External arrow icon
30
30
 
31
- ## Usage
31
+ ## Basic Usage
32
+
33
+ ```typescript
34
+ import 'snice/components/link/snice-link';
35
+ ```
32
36
 
33
37
  ```html
34
- <!-- Basic -->
35
38
  <snice-link href="/about">About</snice-link>
36
39
 
37
40
  <!-- Variants -->
@@ -2,9 +2,14 @@
2
2
 
3
3
  List container with search, infinite scroll, and composable list items.
4
4
 
5
+ ## Components
6
+
7
+ - `<snice-list>` - Container with search, infinite scroll, loading
8
+ - `<snice-list-item>` - Individual item with heading, description, slots
9
+
5
10
  ## Properties
6
11
 
7
- ```typescript
12
+ ```ts
8
13
  // snice-list
9
14
  dividers: boolean = false;
10
15
  searchable: boolean = false;
@@ -22,6 +27,11 @@ selected: boolean = false;
22
27
  disabled: boolean = false;
23
28
  ```
24
29
 
30
+ ## Requests
31
+
32
+ - `list/search` → `{ query, list }` - Handle search (debounced 300ms)
33
+ - `list/load-more` → `{ page, list }` - Infinite scroll pagination
34
+
25
35
  ## Slots (snice-list)
26
36
 
27
37
  - `(default)` - List items
@@ -36,12 +46,18 @@ disabled: boolean = false;
36
46
  - `before` - Icon/avatar area
37
47
  - `after` - Badge/metadata area
38
48
 
39
- ## Requests
49
+ ## CSS Parts (snice-list)
50
+
51
+ - `container` - Outer list container
52
+ - `search` - Search input wrapper
53
+ - `loading` - Loading skeletons wrapper
54
+ - `sentinel` - Infinite scroll sentinel
40
55
 
41
- - `list/search` → `{ query, list }` - Handle search
42
- - `list/load-more` → `{ page, list }` - Infinite scroll
56
+ ## Basic Usage
43
57
 
44
- ## Usage
58
+ ```typescript
59
+ import 'snice/components/list/snice-list';
60
+ ```
45
61
 
46
62
  ```html
47
63
  <!-- Basic with dividers -->
@@ -4,7 +4,7 @@ Display location information with addresses, coordinates, and maps.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```typescript
7
+ ```ts
8
8
  mode: 'full'|'compact'|'coordinates'|'address' = 'full';
9
9
  name: string = '';
10
10
  address: string = '';
@@ -22,22 +22,33 @@ mapUrl: string = ''; // attr: map-url
22
22
  clickable: boolean = false;
23
23
  ```
24
24
 
25
+ ## Methods
26
+
27
+ - `getData()` → `LocationData`
28
+ - `getCoordinates()` → `{ latitude, longitude } | null`
29
+ - `getFullAddress()` → `string`
30
+ - `openMap()` → Opens location in maps (new tab)
31
+
32
+ ## Events
33
+
34
+ - `location-click` → `LocationData` (when clickable)
35
+
25
36
  ## Slots
26
37
 
27
38
  - `icon` - Custom icon content (overrides `icon`/`iconImage` properties)
28
39
 
29
- ## Methods
40
+ ## CSS Parts
30
41
 
31
- - `getData()` - Returns LocationData object
32
- - `getCoordinates()` - Returns `{ latitude, longitude }` or null
33
- - `getFullAddress()` - Returns formatted address string
34
- - `openMap()` - Opens location in maps app (new tab)
42
+ - `base` - Outer location container
43
+ - `icon` - Icon container
44
+ - `content` - Content area (name, address, coordinates)
45
+ - `map` - Embedded map container
35
46
 
36
- ## Events
37
-
38
- - `location-click` → `LocationData` - Clicked (when clickable)
47
+ ## Basic Usage
39
48
 
40
- ## Usage
49
+ ```typescript
50
+ import 'snice/components/location/snice-location';
51
+ ```
41
52
 
42
53
  ```html
43
54
  <snice-location
@@ -61,18 +72,3 @@ clickable: boolean = false;
61
72
  <span slot="icon" class="material-symbols-outlined">business</span>
62
73
  </snice-location>
63
74
  ```
64
-
65
- **CSS Parts:**
66
- - `base` - The outer location container
67
- - `icon` - The icon container
68
- - `content` - The content area with name, address, coordinates
69
- - `map` - The embedded map container
70
-
71
- ## Features
72
-
73
- - 4 display modes (full/compact/coordinates/address)
74
- - Embedded Google Maps support
75
- - Custom icons (emoji, URL, image). Use slot for icon fonts.
76
- - Clickable to open in maps app
77
- - Custom map URL support
78
- - Complete address formatting
@@ -4,7 +4,7 @@ Login form with username/password using @request/@respond pattern.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```typescript
7
+ ```ts
8
8
  variant: 'default'|'card'|'minimal' = 'default';
9
9
  size: 'small'|'medium'|'large' = 'medium';
10
10
  title: string = 'Sign In';
@@ -17,11 +17,11 @@ actionText: string = 'Sign In'; // attr: action-text
17
17
 
18
18
  ## Methods
19
19
 
20
- - `login(credentials?)` - Trigger login via @request (async)
21
- - `setCredentials({username?, password?, remember?})` - Set form values
22
- - `reset()` - Clear form, alert, loading
23
- - `setError(message)` - Show error alert
24
- - `clearError()` - Clear alert
20
+ - `login(credentials?)` Trigger login via @request (async)
21
+ - `setCredentials({username?, password?, remember?})` Set form values
22
+ - `reset()` Clear form, alert, loading
23
+ - `setError(message)` Show error alert
24
+ - `clearError()` Clear alert
25
25
 
26
26
  ## Requests
27
27
 
@@ -29,7 +29,7 @@ actionText: string = 'Sign In'; // attr: action-text
29
29
 
30
30
  ## Types
31
31
 
32
- ```typescript
32
+ ```ts
33
33
  interface LoginCredentials {
34
34
  username: string;
35
35
  password: string;
@@ -60,14 +60,19 @@ interface LoginResult {
60
60
  - `before-submit`, `after-submit` - Around button
61
61
  - `footer` - Footer content
62
62
 
63
- **CSS Parts:**
63
+ ## CSS Parts
64
+
64
65
  - `base` - Outer login container
65
66
  - `header` - Header section
66
67
  - `title` - H1 title element
67
68
  - `form` - The login form
68
69
  - `footer` - Footer section
69
70
 
70
- ## Usage
71
+ ## Basic Usage
72
+
73
+ ```typescript
74
+ import 'snice/components/login/snice-login';
75
+ ```
71
76
 
72
77
  ```html
73
78
  <!-- With controller -->