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
@@ -5,9 +5,9 @@ Interactive Gantt chart with draggable/resizable task bars, zoom levels, task gr
5
5
  ## Properties
6
6
 
7
7
  ```ts
8
- tasks: GanttTask[] = [] // Task data array (set via JS)
9
- zoom: GanttZoom = 'week' // attr: zoom — 'day' | 'week' | 'month'
10
- showDependencies: boolean = true // attr: show-dependencies — Render dependency arrows
8
+ tasks: GanttTask[] = [] // Task data array (set via JS, attribute: false)
9
+ zoom: GanttZoom = 'week' // 'day' | 'week' | 'month'
10
+ showDependencies: boolean = true // attr: show-dependencies
11
11
  ```
12
12
 
13
13
  ## Types
@@ -18,26 +18,27 @@ interface GanttTask {
18
18
  name: string;
19
19
  start: string; // ISO date (YYYY-MM-DD)
20
20
  end: string; // ISO date (YYYY-MM-DD)
21
- progress?: number; // 0-100 completion percentage
22
- dependencies?: string[];// IDs of prerequisite tasks
23
- color?: string; // Bar color override
24
- group?: string; // Group name for task grouping
21
+ progress?: number; // 0-100
22
+ dependencies?: string[];// task IDs
23
+ color?: string; // bar color override
24
+ group?: string; // group name
25
25
  }
26
26
  ```
27
27
 
28
- ## Events
29
-
30
- - `task-click` -> `{ task: GanttTask }` — Task bar or name clicked
31
- - `task-resize` -> `{ task: GanttTask, start: string, end: string }` — Task resized via drag handles
32
- - `task-move` -> `{ task: GanttTask, start: string, end: string }` — Task moved via drag
33
- - `task-link` -> `{ source: string, target: string }` — Dependency link created
34
-
35
28
  ## Methods
36
29
 
37
30
  - `scrollToDate(date: string): void` — Scroll timeline to center on a date
38
31
  - `scrollToTask(id: string): void` — Scroll to a task's start date
39
32
 
40
- **CSS Parts:**
33
+ ## Events
34
+
35
+ - `task-click` → `{ task: GanttTask }` — Task bar or name clicked
36
+ - `task-resize` → `{ task: GanttTask, start: string, end: string }` — Task resized via drag handles
37
+ - `task-move` → `{ task: GanttTask, start: string, end: string }` — Task moved via drag
38
+ - `task-link` → `{ source: string, target: string }` — Dependency link created
39
+
40
+ ## CSS Parts
41
+
41
42
  - `base` - Outer Gantt container div
42
43
  - `header` - Top header bar with zoom controls
43
44
  - `controls` - Zoom toggle button group
@@ -45,15 +46,11 @@ interface GanttTask {
45
46
  - `task-list` - Left sidebar with task names
46
47
  - `timeline` - Right scrollable timeline area
47
48
 
48
- ## Behavior
49
+ ## Basic Usage
49
50
 
50
- - Left sidebar shows task names (grouped if `group` set)
51
- - Timeline auto-calculates range from task dates with padding
52
- - Bars are draggable (move) and resizable (left/right handles)
53
- - Today line shown as red vertical indicator
54
- - Zoom toggle buttons in header (Day/Week/Month)
55
-
56
- ## Usage
51
+ ```typescript
52
+ import 'snice/components/gantt/snice-gantt';
53
+ ```
57
54
 
58
55
  ```html
59
56
  <snice-gantt zoom="week" show-dependencies></snice-gantt>
@@ -68,3 +65,10 @@ gantt.tasks = [
68
65
  gantt.addEventListener('task-move', e => console.log(e.detail));
69
66
  gantt.scrollToDate('2026-03-01');
70
67
  ```
68
+
69
+ ## Accessibility
70
+
71
+ - Bars draggable (move) and resizable (left/right handles)
72
+ - Today line as red vertical indicator
73
+ - Zoom toggle buttons in header (Day/Week/Month)
74
+ - role/aria not explicitly set on task bars
@@ -11,11 +11,21 @@ max: number = 100;
11
11
  label: string = '';
12
12
  variant: 'default'|'primary'|'success'|'warning'|'error'|'info' = 'default';
13
13
  size: 'small'|'medium'|'large' = 'medium';
14
- showValue: boolean = true; // attribute: show-value
14
+ showValue: boolean = true;
15
15
  thickness: number = 8;
16
16
  ```
17
17
 
18
- ## Usage
18
+ ## CSS Parts
19
+
20
+ - `base` - Outer gauge container div with role="meter"
21
+ - `value` - Numeric value text span
22
+ - `label` - Label text span below the gauge
23
+
24
+ ## Basic Usage
25
+
26
+ ```typescript
27
+ import 'snice/components/gauge/snice-gauge';
28
+ ```
19
29
 
20
30
  ```html
21
31
  <!-- Basic -->
@@ -44,19 +54,8 @@ thickness: number = 8;
44
54
  <snice-gauge value="50" showValue="false"></snice-gauge>
45
55
  ```
46
56
 
47
- **CSS Parts:**
48
- - `base` - Outer gauge container div with role="meter"
49
- - `value` - Numeric value text span
50
- - `label` - Label text span below the gauge
57
+ ## Accessibility
51
58
 
52
- ## Features
53
-
54
- - SVG semicircle arc with animated fill
55
- - 6 color variants
56
- - 3 sizes (small 80px, medium 120px, large 160px)
57
- - Custom min/max range
58
- - Configurable stroke thickness
59
- - Optional value display and label
60
- - Accessible: role="meter" with aria-valuenow/min/max
61
- - Smooth CSS transitions
62
- - Works without theme (CSS fallbacks)
59
+ - role="meter" with aria-valuenow/min/max
60
+ - aria-label from `label` prop or fallback "Gauge: {value}"
61
+ - Smooth CSS transitions respect prefers-reduced-motion
@@ -5,12 +5,12 @@ GitHub-style calendar heatmap visualization.
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- data: HeatmapDataPoint[] = []; // Array of { date: string, value: number }
9
- colorScheme: 'green'|'blue'|'purple'|'orange'|'red' = 'green'; // attribute: color-scheme
10
- showLabels: boolean = true; // attribute: show-labels
11
- cellSize: number = 12; // attribute: cell-size, px
12
- cellGap: number = 3; // attribute: cell-gap, px
13
- showTooltip: boolean = true; // attribute: show-tooltip
8
+ data: HeatmapDataPoint[] = []; // Array of { date: string, value: number } (attribute: false)
9
+ colorScheme: 'green'|'blue'|'purple'|'orange'|'red' = 'green'; // attr: color-scheme
10
+ showLabels: boolean = true; // attr: show-labels
11
+ cellSize: number = 12; // attr: cell-size, px
12
+ cellGap: number = 3; // attr: cell-gap, px
13
+ showTooltip: boolean = true; // attr: show-tooltip
14
14
  weeks: number = 52; // Number of weeks to display
15
15
  ```
16
16
 
@@ -18,7 +18,18 @@ weeks: number = 52; // Number of weeks to display
18
18
 
19
19
  - `cell-click` → `{ date: string; value: number }` — fired when a cell is clicked
20
20
 
21
- ## Usage
21
+ ## CSS Parts
22
+
23
+ - `base` - Outer heatmap container div
24
+ - `grid-area` - Grid area with labels and cells
25
+ - `grid` - Cell grid container
26
+ - `tooltip` - Hover tooltip element
27
+
28
+ ## Basic Usage
29
+
30
+ ```typescript
31
+ import 'snice/components/heatmap/snice-heatmap';
32
+ ```
22
33
 
23
34
  ```html
24
35
  <snice-heatmap color-scheme="green"></snice-heatmap>
@@ -35,19 +46,8 @@ heatmap.addEventListener('cell-click', (e) => {
35
46
  });
36
47
  ```
37
48
 
38
- **CSS Parts:**
39
- - `base` - Outer heatmap container div
40
- - `grid-area` - Grid area with labels and cells
41
- - `grid` - Cell grid container
42
- - `tooltip` - Hover tooltip element
43
-
44
- ## Features
49
+ ## Accessibility
45
50
 
46
- - 5 color schemes (green, blue, purple, orange, red)
47
- - 5 intensity levels (empty, low, medium, high, very-high)
48
- - Day labels (Mon, Wed, Fri) on left
49
- - Month labels on top
51
+ - aria-labels on all cells with date and value
52
+ - Cells are focusable buttons
50
53
  - Tooltip on hover with date and value
51
- - Cell click events
52
- - Configurable cell size, gap, and week count
53
- - Accessible: aria-labels on all cells
@@ -25,7 +25,11 @@ height: string = '';
25
25
  - `image` - The img element
26
26
  - `placeholder` - Placeholder element (shown when loading or no src)
27
27
 
28
- ## Usage
28
+ ## Basic Usage
29
+
30
+ ```typescript
31
+ import 'snice/components/image/snice-image';
32
+ ```
29
33
 
30
34
  ```html
31
35
  <!-- Basic -->
@@ -51,19 +55,9 @@ height: string = '';
51
55
  <!-- Custom dimensions -->
52
56
  <snice-image src="image.jpg" width="300px" height="200px"></snice-image>
53
57
 
54
- <!-- Lazy loading -->
58
+ <!-- Eager loading -->
55
59
  <snice-image src="image.jpg" lazy="false"></snice-image>
56
60
 
57
- <!-- Placeholder -->
61
+ <!-- Placeholder (no src) -->
58
62
  <snice-image size="medium" variant="circle"></snice-image>
59
63
  ```
60
-
61
- ## Features
62
-
63
- - 3 size presets (small: 48px, medium: 96px, large: 192px)
64
- - 3 shape variants (rounded, square, circle)
65
- - 5 object-fit options
66
- - Lazy loading (default on)
67
- - Fallback image support
68
- - Placeholder for missing images
69
- - Custom width/height
@@ -1,6 +1,6 @@
1
1
  # snice-input
2
2
 
3
- Text input field with validation and icons.
3
+ Text input field with validation, icons, and form association.
4
4
 
5
5
  ## Properties
6
6
 
@@ -18,10 +18,10 @@ clearable: boolean = false;
18
18
  loading: boolean = false;
19
19
  password: boolean = false;
20
20
  label: string = '';
21
- helperText: string = ''; // attribute: helper-text
22
- errorText: string = ''; // attribute: error-text
23
- prefixIcon: string = ''; // attribute: prefix-icon
24
- suffixIcon: string = ''; // attribute: suffix-icon
21
+ helperText: string = ''; // attr: helper-text
22
+ errorText: string = ''; // attr: error-text
23
+ prefixIcon: string = ''; // attr: prefix-icon
24
+ suffixIcon: string = ''; // attr: suffix-icon
25
25
  min: string = '';
26
26
  max: string = '';
27
27
  step: string = '';
@@ -31,15 +31,10 @@ pattern: string = '';
31
31
  autocomplete: string = '';
32
32
  name: string = '';
33
33
  align: 'top'|'center'|'bottom'|'' = ''; // vertical alignment when host has explicit height
34
- labelAlign: 'left'|'center'|'right' = 'left'; // attribute: label-align — label text alignment
34
+ labelAlign: 'left'|'center'|'right' = 'left'; // attr: label-align
35
35
  stretch: boolean = false; // input fills full host height
36
36
  ```
37
37
 
38
- ## Slots
39
-
40
- - `prefix-icon` - Custom prefix icon (overrides `prefixIcon` property)
41
- - `suffix-icon` - Custom suffix icon (overrides `suffixIcon` property)
42
-
43
38
  ## Methods
44
39
 
45
40
  - `focus()` - Focus input
@@ -52,13 +47,26 @@ stretch: boolean = false; // input fills full host height
52
47
 
53
48
  ## Events
54
49
 
55
- - `input-input` - {value, input}
56
- - `input-change` - {value, input}
57
- - `input-focus` - {input}
58
- - `input-blur` - {input}
59
- - `input-clear` - {input}
50
+ - `input-input` `{ value, input }` — each keystroke
51
+ - `input-change` `{ value, input }` — value commit
52
+ - `input-focus` `{ input }` — focus
53
+ - `input-blur` `{ input }` — blur
54
+ - `input-clear` `{ input }` — cleared
55
+
56
+ ## Slots
57
+
58
+ - `prefix-icon` - Custom prefix icon (overrides `prefixIcon` property)
59
+ - `suffix-icon` - Custom suffix icon (overrides `suffixIcon` property)
60
+
61
+ ## CSS Parts
62
+
63
+ `wrapper`, `label`, `container`, `input`, `prefix-icon`, `suffix-icon`, `clear`, `spinner`, `password-toggle`, `helper-text`, `error-text`
64
+
65
+ ## Basic Usage
60
66
 
61
- ## Usage
67
+ ```typescript
68
+ import 'snice/components/input/snice-input';
69
+ ```
62
70
 
63
71
  ```html
64
72
  <!-- Basic -->
@@ -69,29 +77,13 @@ stretch: boolean = false; // input fills full host height
69
77
  <snice-input variant="filled"></snice-input>
70
78
  <snice-input variant="underlined"></snice-input>
71
79
 
72
- <!-- Input types -->
73
- <snice-input type="email" label="Email"></snice-input>
74
- <snice-input type="password" label="Password"></snice-input>
75
- <snice-input type="number" label="Age"></snice-input>
76
-
77
- <!-- ⚠️ prefix-icon="search" renders as PLAIN TEXT. Use slots for icon fonts. -->
78
-
79
80
  <!-- Icon SLOTS — for Material Symbols, Font Awesome, SVGs -->
80
81
  <snice-input placeholder="Search">
81
82
  <span slot="prefix-icon" class="material-symbols-outlined">search</span>
82
83
  </snice-input>
83
- <snice-input placeholder="Email">
84
- <span slot="suffix-icon" class="material-symbols-outlined">mail</span>
85
- </snice-input>
86
- <snice-input placeholder="Search users">
87
- <i slot="prefix-icon" class="fa-solid fa-magnifying-glass"></i>
88
- <span slot="suffix-icon" class="material-symbols-outlined">person</span>
89
- </snice-input>
90
84
 
91
85
  <!-- Icon ATTRIBUTES — for emoji, URLs, image files only -->
92
86
  <snice-input prefix-icon="🔍" placeholder="Search"></snice-input>
93
- <snice-input suffix-icon="✉️" type="email"></snice-input>
94
- <snice-input prefix-icon="/icons/search.svg" placeholder="Search"></snice-input>
95
87
 
96
88
  <!-- Password toggle -->
97
89
  <snice-input type="password" password label="Password"></snice-input>
@@ -99,25 +91,17 @@ stretch: boolean = false; // input fills full host height
99
91
  <!-- Clearable -->
100
92
  <snice-input value="Text" clearable></snice-input>
101
93
 
102
- <!-- Helper text -->
103
- <snice-input label="Username" helper-text="Must be unique"></snice-input>
104
-
105
94
  <!-- Error state -->
106
95
  <snice-input label="Email" invalid error-text="Invalid email"></snice-input>
107
96
 
108
- <!-- Validation -->
109
- <snice-input type="email" required minlength="5" maxlength="50"></snice-input>
110
-
111
- <!-- Sizes -->
112
- <snice-input size="small"></snice-input>
113
- <snice-input size="medium"></snice-input>
114
- <snice-input size="large"></snice-input>
115
-
116
97
  <!-- Form integration -->
117
98
  <snice-input name="username" required></snice-input>
118
99
 
119
- <!-- Events -->
120
- <snice-input id="inp"></snice-input>
100
+ <!-- Vertical alignment (when host has explicit height) -->
101
+ <snice-input style="height:200px" align="center"></snice-input>
102
+
103
+ <!-- Stretch input to fill height -->
104
+ <snice-input style="height:200px" stretch></snice-input>
121
105
  ```
122
106
 
123
107
  ```typescript
@@ -125,30 +109,14 @@ inp.addEventListener('input-input', (e) => console.log('Input:', e.detail.value)
125
109
  inp.addEventListener('input-change', (e) => console.log('Change:', e.detail.value));
126
110
  ```
127
111
 
128
- ```html
112
+ ## Keyboard Navigation
129
113
 
130
- <!-- Vertical alignment (when host has explicit height) -->
131
- <snice-input style="height:200px" align="top"></snice-input>
132
- <snice-input style="height:200px" align="center"></snice-input>
133
- <snice-input style="height:200px" align="bottom"></snice-input>
114
+ - Tab to focus/unfocus
115
+ - Standard native input keyboard behavior
134
116
 
135
- <!-- Stretch input to fill height -->
136
- <snice-input style="height:200px" stretch></snice-input>
137
- ```
138
-
139
- ## CSS Parts
140
-
141
- `wrapper`, `label`, `container`, `input`, `prefix-icon`, `suffix-icon`, `clear`, `spinner`, `password-toggle`, `helper-text`, `error-text`
117
+ ## Accessibility
142
118
 
143
- ## Features
144
-
145
- - Form-associated custom element
146
- - 10 input types
147
- - 3 visual variants
148
- - Prefix/suffix icons (URL, image files, emoji). Use slots for icon fonts.
149
- - Password visibility toggle
150
- - Clearable with X button
151
- - Helper and error text
152
- - Validation (min/max/pattern/length)
153
- - 3 sizes
154
- - Keyboard accessible
119
+ - Form-associated custom element (ElementInternals)
120
+ - aria-invalid set when invalid
121
+ - Required indicator shown
122
+ - Clear button and password toggle have aria-label
@@ -5,21 +5,21 @@ Professional invoice document with 5 variants, deep theming, QR support, and pri
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- invoiceNumber: string = '' // attribute: invoice-number
9
- date: string = '' // Invoice date
10
- dueDate: string = '' // attribute: due-date
8
+ invoiceNumber: string = '' // attr: invoice-number
9
+ date: string = ''
10
+ dueDate: string = '' // attr: due-date
11
11
  status: InvoiceStatus = 'draft' // 'draft' | 'sent' | 'paid' | 'overdue' | 'cancelled'
12
12
  currency: string = 'USD' // ISO 4217 currency code
13
- taxRate: number = 0 // attribute: tax-rate — percentage (e.g., 10 = 10%)
14
- discount: number = 0 // Discount percentage
15
- from: InvoiceParty = { name: '' } // Sender info
16
- to: InvoiceParty = { name: '' } // Recipient info
17
- items: InvoiceItem[] = [] // Line items
18
- notes: string = '' // Footer notes/terms
13
+ taxRate: number = 0 // attr: tax-rate — percentage
14
+ discount: number = 0 // percentage
15
+ from: InvoiceParty = { name: '' } // attribute: false
16
+ to: InvoiceParty = { name: '' } // attribute: false
17
+ items: InvoiceItem[] = [] // attribute: false
18
+ notes: string = ''
19
19
  variant: InvoiceVariant = 'standard' // 'standard' | 'modern' | 'classic' | 'minimal' | 'detailed'
20
- showQr: boolean = false // attribute: show-qr — show QR code area
21
- qrData: string = '' // attribute: qr-data — data to encode
22
- qrPosition: QrPosition = 'bottom-right' // attribute: qr-position — 'top-right' | 'bottom-right' | 'bottom-left' | 'footer'
20
+ showQr: boolean = false // attr: show-qr
21
+ qrData: string = ''
22
+ qrPosition: QrPosition = 'bottom-right' // 'top-right' | 'bottom-right' | 'bottom-left' | 'footer'
23
23
  ```
24
24
 
25
25
  ## Types
@@ -33,42 +33,33 @@ interface InvoiceItem {
33
33
  }
34
34
  ```
35
35
 
36
- ## Variants
37
-
38
- - `standard` — Clean corporate grid layout
39
- - `modern` — Bold accent header stripe, card sections, shadow
40
- - `classic` — Serif typography, ruled lines, formal borders
41
- - `minimal` — Ultra-clean whitespace, thin type, no borders
42
- - `detailed` — Dense accounting-style, line numbers, striped rows
43
-
44
- ## Slots
36
+ ## Methods
45
37
 
46
- - `qr` - Custom QR code content (shown when show-qr is set)
47
- - `(default)` - Footer content
38
+ - `print()` - Triggers window.print() with @media print styles
39
+ - `toJSON()` - Returns full invoice data with computed totals
48
40
 
49
41
  ## Events
50
42
 
51
- - `invoice-item-change` -> `{ items: InvoiceItem[], subtotal: number, tax: number, total: number }`
52
- - `invoice-status-change` -> `{ oldStatus: InvoiceStatus, newStatus: InvoiceStatus }`
43
+ - `invoice-item-change` `{ items: InvoiceItem[], subtotal: number, tax: number, total: number }`
44
+ - `invoice-status-change` `{ oldStatus: InvoiceStatus, newStatus: InvoiceStatus }`
53
45
 
54
- ## Methods
46
+ ## Slots
55
47
 
56
- - `print()` - Triggers window.print() with @media print styles
57
- - `toJSON()` - Returns full invoice data with computed totals
48
+ - `qr` - Custom QR code content (shown when show-qr is set)
49
+ - `(default)` - Footer content
58
50
 
59
51
  ## CSS Parts
60
52
 
61
53
  `base`, `header`, `title`, `status`, `logo`, `meta`, `parties`, `party`, `party-label`, `party-name`, `party-detail`, `table`, `table-header`, `table-row`, `table-cell`, `summary`, `summary-row`, `summary-label`, `summary-value`, `discount-row`, `tax-row`, `total`, `notes`, `notes-label`, `notes-content`, `qr`, `qr-container`, `footer`
62
54
 
63
- ## Usage
55
+ ## CSS Custom Properties
56
+
57
+ `--invoice-max-width`, `--invoice-padding`, `--invoice-bg`, `--invoice-text`, `--invoice-text-secondary`, `--invoice-accent`, `--invoice-border`, `--invoice-border-radius`, `--invoice-shadow`, `--invoice-table-header-bg`, `--invoice-summary-width`, `--invoice-qr-size`
58
+
59
+ ## Basic Usage
64
60
 
65
61
  ```typescript
66
- inv.from = { name: 'Acme Corp', address: '123 Main St', email: 'billing@acme.com' };
67
- inv.to = { name: 'Client Inc', address: '456 Oak Ave' };
68
- inv.items = [
69
- { description: 'Web Development', quantity: 40, unitPrice: 150 },
70
- { description: 'Design Services', quantity: 10, unitPrice: 120 }
71
- ];
62
+ import 'snice/components/invoice/snice-invoice';
72
63
  ```
73
64
 
74
65
  ```html
@@ -82,6 +73,15 @@ inv.items = [
82
73
  </snice-invoice>
83
74
  ```
84
75
 
76
+ ```typescript
77
+ inv.from = { name: 'Acme Corp', address: '123 Main St', email: 'billing@acme.com' };
78
+ inv.to = { name: 'Client Inc', address: '456 Oak Ave' };
79
+ inv.items = [
80
+ { description: 'Web Development', quantity: 40, unitPrice: 150 },
81
+ { description: 'Design Services', quantity: 10, unitPrice: 120 }
82
+ ];
83
+ ```
84
+
85
85
  ## Notes
86
86
 
87
87
  - `amount` on item overrides `quantity * unitPrice` calculation
@@ -89,4 +89,3 @@ inv.items = [
89
89
  - Currency formatting via `Intl.NumberFormat`
90
90
  - `detailed` variant shows line numbers and per-item tax
91
91
  - Print styles: high contrast, no shadows/backgrounds, page break management
92
- - QR `<slot name="qr">` renders placeholder box when no content slotted
@@ -5,12 +5,12 @@ Drag-and-drop kanban board.
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
- columns: KanbanColumn[] = [];
9
- allowDragDrop: boolean = true; // attribute: allow-drag-drop
10
- showCardCount: boolean = true; // attribute: show-card-count
8
+ columns: KanbanColumn[] = []; // attribute: false
9
+ allowDragDrop: boolean = true; // attr: allow-drag-drop
10
+ showCardCount: boolean = true; // attr: show-card-count
11
11
  ```
12
12
 
13
- ## Interfaces
13
+ ## Types
14
14
 
15
15
  ```typescript
16
16
  interface KanbanLabel {
@@ -43,87 +43,58 @@ interface KanbanCard {
43
43
 
44
44
  ## Methods
45
45
 
46
- ```typescript
47
- addColumn(column: KanbanColumn): void
48
- removeColumn(id: string | number): void
49
- addCard(columnId: string | number, card: KanbanCard): void
50
- removeCard(cardId: string | number): void
51
- moveCard(cardId: string | number, targetColumnId: string | number, targetIndex?: number): void
52
- getColumn(id: string | number): KanbanColumn | undefined
53
- getCard(id: string | number): KanbanCard | undefined
54
- filterByLabels(labels: string[]): void
55
- search(query: string): void
56
- clearFilters(): void
57
- ```
46
+ - `addColumn(column: KanbanColumn): void`
47
+ - `removeColumn(id: string | number): void`
48
+ - `addCard(columnId: string | number, card: KanbanCard): void`
49
+ - `removeCard(cardId: string | number): void`
50
+ - `moveCard(cardId: string | number, targetColumnId: string | number, targetIndex?: number): void`
51
+ - `getColumn(id: string | number): KanbanColumn | undefined`
52
+ - `getCard(id: string | number): KanbanCard | undefined`
53
+ - `filterByLabels(labels: string[]): void`
54
+ - `search(query: string): void`
55
+ - `clearFilters(): void`
58
56
 
59
57
  ## Events
60
58
 
61
- - `kanban-card-move` - Card moved (detail: { card, fromColumn, toColumn, kanban })
62
- - `kanban-card-click` - Card clicked (detail: { card, kanban })
59
+ - `kanban-card-move` `{ card, fromColumn, toColumn, kanban }`
60
+ - `kanban-card-click` `{ card, kanban }`
61
+
62
+ ## CSS Parts
63
+
64
+ - `base` - Outer kanban board container div
65
+ - `column-header` - Column header with title and card count
66
+ - `column-cards` - Card list area within a column
67
+
68
+ ## Basic Usage
63
69
 
64
- ## Usage
70
+ ```typescript
71
+ import 'snice/components/kanban/snice-kanban';
72
+ ```
65
73
 
66
74
  ```javascript
67
75
  kanban.columns = [
68
76
  {
69
- id: 'todo',
70
- title: 'To Do',
71
- color: '#f44336',
77
+ id: 'todo', title: 'To Do', color: '#f44336',
72
78
  cards: [
73
- {
74
- id: 1,
75
- title: 'Task',
76
- description: 'Details',
77
- assignee: 'Alice',
78
- labels: [
79
- 'bug',
80
- { text: 'urgent', color: '#dc2626', background: '#fee2e2', icon: '🔥', iconPosition: 'left' }
81
- ],
82
- color: '#f44336'
83
- }
79
+ { id: 1, title: 'Task', description: 'Details', assignee: 'Alice',
80
+ labels: ['bug', { text: 'urgent', color: '#dc2626', background: '#fee2e2', icon: '🔥' }],
81
+ color: '#f44336' }
84
82
  ]
85
83
  },
86
84
  { id: 'done', title: 'Done', cards: [] }
87
85
  ];
88
86
 
89
- // Add/remove/move
90
87
  kanban.addCard('todo', { id: 2, title: 'New Task' });
91
88
  kanban.moveCard(1, 'done');
92
- kanban.removeCard(2);
93
-
94
- // Filter/search
95
- kanban.filterByLabels(['bug', 'high-priority']);
89
+ kanban.filterByLabels(['bug']);
96
90
  kanban.search('landing page');
97
91
  kanban.clearFilters();
98
92
 
99
- // Events
100
93
  kanban.addEventListener('kanban-card-move', (e) => {
101
94
  console.log(`Moved ${e.detail.card.title}`);
102
95
  });
103
96
  ```
104
97
 
105
98
  ```html
106
- <!-- Disable drag/drop -->
107
99
  <snice-kanban allow-drag-drop="false"></snice-kanban>
108
100
  ```
109
-
110
- **CSS Parts:**
111
- - `base` - Outer kanban board container div
112
- - `column-header` - Column header with title and card count
113
- - `column-cards` - Card list area within a column
114
-
115
- ## Features
116
-
117
- - Drag and drop cards between columns and within same column
118
- - Custom labels with colors, backgrounds, and icons
119
- - Label icon positioning (left/right)
120
- - Filter by labels
121
- - Search by title/description
122
- - Card assignees
123
- - Color-coded cards and columns
124
- - Card counts
125
- - Click handling
126
- - Programmatic card movement with positioning
127
- - Column management
128
- - Event dispatching
129
- - View Transitions API animations