snice 4.27.0 → 4.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/adapters/react/action-bar.d.ts +30 -0
  2. package/adapters/react/action-bar.d.ts.map +1 -0
  3. package/adapters/react/action-bar.js +24 -0
  4. package/adapters/react/action-bar.js.map +1 -0
  5. package/adapters/react/action-bar.tsx +38 -0
  6. package/adapters/react/binpack.d.ts +35 -0
  7. package/adapters/react/binpack.d.ts.map +1 -0
  8. package/adapters/react/binpack.js +24 -0
  9. package/adapters/react/binpack.js.map +1 -0
  10. package/adapters/react/binpack.tsx +43 -0
  11. package/adapters/react/components.d.ts +4 -0
  12. package/adapters/react/components.d.ts.map +1 -1
  13. package/adapters/react/components.js +2 -0
  14. package/adapters/react/components.js.map +1 -1
  15. package/adapters/react/components.ts +4 -0
  16. package/adapters/react/useRequestHandler.d.ts +56 -0
  17. package/adapters/react/useRequestHandler.js +103 -0
  18. package/adapters/react/useRequestHandler.js.map +1 -0
  19. package/dist/cdn/accordion/snice-accordion.js +1 -1
  20. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  21. package/dist/cdn/action-bar/README.md +27 -0
  22. package/dist/cdn/action-bar/snice-action-bar.js +249 -0
  23. package/dist/cdn/action-bar/snice-action-bar.js.map +1 -0
  24. package/dist/cdn/action-bar/snice-action-bar.min.js +12 -0
  25. package/dist/cdn/action-bar/snice-action-bar.min.js.map +1 -0
  26. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  27. package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
  28. package/dist/cdn/alert/snice-alert.js +1 -1
  29. package/dist/cdn/alert/snice-alert.min.js +1 -1
  30. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  31. package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
  32. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  33. package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
  34. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  35. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  36. package/dist/cdn/availability/snice-availability.js +1 -1
  37. package/dist/cdn/availability/snice-availability.min.js +1 -1
  38. package/dist/cdn/avatar/snice-avatar.js +1 -1
  39. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  40. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  41. package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
  42. package/dist/cdn/badge/snice-badge.js +2 -2
  43. package/dist/cdn/badge/snice-badge.js.map +1 -1
  44. package/dist/cdn/badge/snice-badge.min.js +2 -2
  45. package/dist/cdn/badge/snice-badge.min.js.map +1 -1
  46. package/dist/cdn/banner/snice-banner.js +1 -1
  47. package/dist/cdn/banner/snice-banner.min.js +1 -1
  48. package/dist/cdn/binpack/README.md +27 -0
  49. package/dist/cdn/binpack/snice-binpack.js +1037 -0
  50. package/dist/cdn/binpack/snice-binpack.js.map +1 -0
  51. package/dist/cdn/binpack/snice-binpack.min.js +13 -0
  52. package/dist/cdn/binpack/snice-binpack.min.js.map +1 -0
  53. package/dist/cdn/book/snice-book.js +1 -1
  54. package/dist/cdn/book/snice-book.min.js +1 -1
  55. package/dist/cdn/booking/snice-booking.js +1 -1
  56. package/dist/cdn/booking/snice-booking.min.js +1 -1
  57. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  58. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  59. package/dist/cdn/button/README.md +1 -1
  60. package/dist/cdn/button/snice-button.js +11 -10
  61. package/dist/cdn/button/snice-button.js.map +1 -1
  62. package/dist/cdn/button/snice-button.min.js +3 -3
  63. package/dist/cdn/button/snice-button.min.js.map +1 -1
  64. package/dist/cdn/calendar/snice-calendar.js +1 -1
  65. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  66. package/dist/cdn/camera/snice-camera.js +1 -1
  67. package/dist/cdn/camera/snice-camera.min.js +1 -1
  68. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  69. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  70. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  71. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  72. package/dist/cdn/card/snice-card.js +1 -1
  73. package/dist/cdn/card/snice-card.min.js +1 -1
  74. package/dist/cdn/carousel/snice-carousel.js +1 -1
  75. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  76. package/dist/cdn/cart/snice-cart.js +1 -1
  77. package/dist/cdn/cart/snice-cart.min.js +1 -1
  78. package/dist/cdn/chart/snice-chart.js +1 -1
  79. package/dist/cdn/chart/snice-chart.min.js +1 -1
  80. package/dist/cdn/chat/snice-chat.js +1 -1
  81. package/dist/cdn/chat/snice-chat.min.js +1 -1
  82. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  83. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  84. package/dist/cdn/chip/snice-chip.js +1 -1
  85. package/dist/cdn/chip/snice-chip.min.js +1 -1
  86. package/dist/cdn/code-block/snice-code-block.js +1 -1
  87. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  88. package/dist/cdn/color-display/snice-color-display.js +1 -1
  89. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  90. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  91. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  92. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  93. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  94. package/dist/cdn/comments/snice-comments.js +1 -1
  95. package/dist/cdn/comments/snice-comments.min.js +1 -1
  96. package/dist/cdn/countdown/snice-countdown.js +1 -1
  97. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  98. package/dist/cdn/cropper/snice-cropper.js +1 -1
  99. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  100. package/dist/cdn/data-card/snice-data-card.js +1 -1
  101. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  102. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  103. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  104. package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
  105. package/dist/cdn/date-range-picker/snice-date-range-picker.min.js +1 -1
  106. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  107. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
  108. package/dist/cdn/diff/snice-diff.js +1 -1
  109. package/dist/cdn/diff/snice-diff.min.js +1 -1
  110. package/dist/cdn/divider/snice-divider.js +1 -1
  111. package/dist/cdn/divider/snice-divider.min.js +1 -1
  112. package/dist/cdn/doc/snice-doc.js +1 -1
  113. package/dist/cdn/doc/snice-doc.min.js +1 -1
  114. package/dist/cdn/draw/snice-draw.js +1 -1
  115. package/dist/cdn/draw/snice-draw.min.js +1 -1
  116. package/dist/cdn/drawer/snice-drawer.js +1 -1
  117. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  118. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  119. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  120. package/dist/cdn/estimate/snice-estimate.js +1 -1
  121. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  122. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  123. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  124. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  125. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  126. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  127. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  128. package/dist/cdn/flow/snice-flow.js +1 -1
  129. package/dist/cdn/flow/snice-flow.min.js +1 -1
  130. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  131. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  132. package/dist/cdn/funnel/snice-funnel.js +1 -1
  133. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  134. package/dist/cdn/gantt/snice-gantt.js +1 -1
  135. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  136. package/dist/cdn/gauge/snice-gauge.js +1 -1
  137. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  138. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  139. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  140. package/dist/cdn/image/snice-image.js +1 -1
  141. package/dist/cdn/image/snice-image.min.js +1 -1
  142. package/dist/cdn/input/snice-input.js +1 -1
  143. package/dist/cdn/input/snice-input.min.js +1 -1
  144. package/dist/cdn/invoice/snice-invoice.js +1 -1
  145. package/dist/cdn/invoice/snice-invoice.min.js +1 -1
  146. package/dist/cdn/kanban/snice-kanban.js +1 -1
  147. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  148. package/dist/cdn/key-value/snice-key-value.js +1 -1
  149. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  150. package/dist/cdn/kpi/snice-kpi.js +1 -1
  151. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  152. package/dist/cdn/layout/snice-layout.js +1 -1
  153. package/dist/cdn/layout/snice-layout.min.js +1 -1
  154. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  155. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  156. package/dist/cdn/link/snice-link.js +1 -1
  157. package/dist/cdn/link/snice-link.min.js +1 -1
  158. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  159. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  160. package/dist/cdn/list/snice-list.js +1 -1
  161. package/dist/cdn/list/snice-list.min.js +1 -1
  162. package/dist/cdn/location/snice-location.js +1 -1
  163. package/dist/cdn/location/snice-location.min.js +1 -1
  164. package/dist/cdn/login/README.md +2 -2
  165. package/dist/cdn/login/snice-login.js +11 -10
  166. package/dist/cdn/login/snice-login.js.map +1 -1
  167. package/dist/cdn/login/snice-login.min.js +5 -5
  168. package/dist/cdn/login/snice-login.min.js.map +1 -1
  169. package/dist/cdn/map/snice-map.js +1 -1
  170. package/dist/cdn/map/snice-map.min.js +1 -1
  171. package/dist/cdn/markdown/snice-markdown.js +1 -1
  172. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  173. package/dist/cdn/masonry/snice-masonry.js +1 -1
  174. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  175. package/dist/cdn/menu/snice-menu.js +1 -1
  176. package/dist/cdn/menu/snice-menu.min.js +1 -1
  177. package/dist/cdn/message-strip/snice-message-strip.js +1 -1
  178. package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
  179. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  180. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  181. package/dist/cdn/modal/snice-modal.js +1 -1
  182. package/dist/cdn/modal/snice-modal.min.js +1 -1
  183. package/dist/cdn/music-player/snice-music-player.js +1 -1
  184. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  185. package/dist/cdn/nav/snice-nav.js +1 -1
  186. package/dist/cdn/nav/snice-nav.min.js +1 -1
  187. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  188. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  189. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  190. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  191. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  192. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  193. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  194. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  195. package/dist/cdn/pagination/snice-pagination.js +1 -1
  196. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  197. package/dist/cdn/paint/snice-paint.js +1 -1
  198. package/dist/cdn/paint/snice-paint.min.js +1 -1
  199. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  200. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  201. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  202. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  203. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  204. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  205. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  206. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  207. package/dist/cdn/product-card/snice-product-card.js +1 -1
  208. package/dist/cdn/product-card/snice-product-card.min.js +1 -1
  209. package/dist/cdn/progress/snice-progress.js +1 -1
  210. package/dist/cdn/progress/snice-progress.min.js +1 -1
  211. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  212. package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
  213. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  214. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  215. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  216. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  217. package/dist/cdn/radio/snice-radio.js +1 -1
  218. package/dist/cdn/radio/snice-radio.min.js +1 -1
  219. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  220. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  221. package/dist/cdn/rating/snice-rating.js +1 -1
  222. package/dist/cdn/rating/snice-rating.min.js +1 -1
  223. package/dist/cdn/receipt/snice-receipt.js +1 -1
  224. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  225. package/dist/cdn/recipe/snice-recipe.js +1 -1
  226. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  227. package/dist/cdn/runtime/README.md +2 -2
  228. package/dist/cdn/runtime/snice-runtime.esm.js +152 -62
  229. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  230. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  231. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  232. package/dist/cdn/runtime/snice-runtime.js +152 -61
  233. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  234. package/dist/cdn/runtime/snice-runtime.min.js +8 -8
  235. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  236. package/dist/cdn/sankey/snice-sankey.js +1 -1
  237. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  238. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  239. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  240. package/dist/cdn/select/snice-select.js +1 -1
  241. package/dist/cdn/select/snice-select.min.js +1 -1
  242. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  243. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  244. package/dist/cdn/slider/snice-slider.js +1 -1
  245. package/dist/cdn/slider/snice-slider.min.js +1 -1
  246. package/dist/cdn/sortable/snice-sortable.js +1 -1
  247. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  248. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  249. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  250. package/dist/cdn/spinner/snice-spinner.js +1 -1
  251. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  252. package/dist/cdn/split-button/snice-split-button.js +1 -1
  253. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  254. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  255. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  256. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  257. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  258. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  259. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  260. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  261. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  262. package/dist/cdn/step-input/snice-step-input.js +1 -1
  263. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  264. package/dist/cdn/stepper/snice-stepper.js +1 -1
  265. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  266. package/dist/cdn/switch/snice-switch.js +1 -1
  267. package/dist/cdn/switch/snice-switch.min.js +1 -1
  268. package/dist/cdn/table/README.md +1 -1
  269. package/dist/cdn/table/snice-table.js +11 -10
  270. package/dist/cdn/table/snice-table.js.map +1 -1
  271. package/dist/cdn/table/snice-table.min.js +73 -73
  272. package/dist/cdn/table/snice-table.min.js.map +1 -1
  273. package/dist/cdn/tabs/snice-tabs.js +1 -1
  274. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  275. package/dist/cdn/tag/snice-tag.js +1 -1
  276. package/dist/cdn/tag/snice-tag.min.js +1 -1
  277. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  278. package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
  279. package/dist/cdn/terminal/snice-terminal.js +1 -1
  280. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  281. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  282. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  283. package/dist/cdn/textarea/snice-textarea.js +1 -1
  284. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  285. package/dist/cdn/time-picker/snice-time-picker.js +1 -1
  286. package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
  287. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  288. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  289. package/dist/cdn/timeline/snice-timeline.js +1 -1
  290. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  291. package/dist/cdn/timer/snice-timer.js +1 -1
  292. package/dist/cdn/timer/snice-timer.min.js +1 -1
  293. package/dist/cdn/toast/snice-toast.js +1 -1
  294. package/dist/cdn/toast/snice-toast.min.js +1 -1
  295. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  296. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  297. package/dist/cdn/tree/snice-tree.js +1 -1
  298. package/dist/cdn/tree/snice-tree.min.js +1 -1
  299. package/dist/cdn/treemap/snice-treemap.js +1 -1
  300. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  301. package/dist/cdn/user-card/snice-user-card.js +1 -1
  302. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  303. package/dist/cdn/video-player/snice-video-player.js +1 -1
  304. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  305. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  306. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  307. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  308. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  309. package/dist/cdn/weather/snice-weather.js +1 -1
  310. package/dist/cdn/weather/snice-weather.min.js +1 -1
  311. package/dist/cdn/work-order/snice-work-order.js +1 -1
  312. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  313. package/dist/components/action-bar/snice-action-bar.d.ts +22 -0
  314. package/dist/components/action-bar/snice-action-bar.js +182 -0
  315. package/dist/components/action-bar/snice-action-bar.js.map +1 -0
  316. package/dist/components/action-bar/snice-action-bar.types.d.ts +17 -0
  317. package/dist/components/badge/snice-badge.js +1 -1
  318. package/dist/components/badge/snice-badge.js.map +1 -1
  319. package/dist/components/binpack/snice-binpack.d.ts +82 -0
  320. package/dist/components/binpack/snice-binpack.js +970 -0
  321. package/dist/components/binpack/snice-binpack.js.map +1 -0
  322. package/dist/components/binpack/snice-binpack.types.d.ts +52 -0
  323. package/dist/components/button/snice-button.d.ts +2 -2
  324. package/dist/components/button/snice-button.js +11 -10
  325. package/dist/components/button/snice-button.js.map +1 -1
  326. package/dist/create-request-handler.d.ts +42 -0
  327. package/dist/index.cjs +149 -58
  328. package/dist/index.cjs.map +1 -1
  329. package/dist/index.d.ts +2 -0
  330. package/dist/index.esm.js +149 -59
  331. package/dist/index.esm.js.map +1 -1
  332. package/dist/index.iife.js +149 -58
  333. package/dist/index.iife.js.map +1 -1
  334. package/dist/parts.d.ts +9 -7
  335. package/dist/react/useRequestHandler.d.ts +56 -0
  336. package/dist/react/useRequestHandler.js +103 -0
  337. package/dist/react/useRequestHandler.js.map +1 -0
  338. package/dist/symbols.cjs +1 -1
  339. package/dist/symbols.esm.js +1 -1
  340. package/dist/transitions.cjs +1 -1
  341. package/dist/transitions.esm.js +1 -1
  342. package/docs/ai/DEVELOPMENT.md +1 -1
  343. package/docs/ai/components/accordion.md +46 -80
  344. package/docs/ai/components/action-bar.md +75 -0
  345. package/docs/ai/components/activity-feed.md +7 -7
  346. package/docs/ai/components/alert.md +26 -44
  347. package/docs/ai/components/app-tiles.md +34 -39
  348. package/docs/ai/components/approval-flow.md +1 -1
  349. package/docs/ai/components/audio-recorder.md +35 -67
  350. package/docs/ai/components/availability.md +13 -34
  351. package/docs/ai/components/avatar-group.md +26 -13
  352. package/docs/ai/components/avatar.md +52 -36
  353. package/docs/ai/components/badge.md +21 -32
  354. package/docs/ai/components/banner.md +21 -43
  355. package/docs/ai/components/binpack.md +89 -0
  356. package/docs/ai/components/book.md +25 -23
  357. package/docs/ai/components/booking.md +31 -36
  358. package/docs/ai/components/breadcrumbs.md +36 -11
  359. package/docs/ai/components/button.md +33 -44
  360. package/docs/ai/components/calendar.md +37 -70
  361. package/docs/ai/components/camera-annotate.md +31 -64
  362. package/docs/ai/components/camera.md +38 -120
  363. package/docs/ai/components/candlestick.md +32 -52
  364. package/docs/ai/components/card.md +20 -30
  365. package/docs/ai/components/carousel.md +32 -32
  366. package/docs/ai/components/cart.md +24 -29
  367. package/docs/ai/components/chart.md +29 -114
  368. package/docs/ai/components/chat.md +38 -75
  369. package/docs/ai/components/checkbox.md +22 -41
  370. package/docs/ai/components/chip.md +18 -54
  371. package/docs/ai/components/code-block.md +57 -178
  372. package/docs/ai/components/color-display.md +12 -32
  373. package/docs/ai/components/color-picker.md +17 -39
  374. package/docs/ai/components/command-palette.md +49 -71
  375. package/docs/ai/components/comments.md +55 -36
  376. package/docs/ai/components/countdown.md +28 -30
  377. package/docs/ai/components/cropper.md +33 -33
  378. package/docs/ai/components/data-card.md +20 -14
  379. package/docs/ai/components/date-picker.md +40 -47
  380. package/docs/ai/components/date-range-picker.md +31 -15
  381. package/docs/ai/components/date-time-picker.md +23 -46
  382. package/docs/ai/components/diff.md +30 -31
  383. package/docs/ai/components/divider.md +17 -47
  384. package/docs/ai/components/doc.md +43 -68
  385. package/docs/ai/components/draw.md +35 -87
  386. package/docs/ai/components/drawer.md +48 -77
  387. package/docs/ai/components/empty-state.md +10 -44
  388. package/docs/ai/components/estimate.md +33 -58
  389. package/docs/ai/components/file-gallery.md +48 -100
  390. package/docs/ai/components/file-upload.md +17 -53
  391. package/docs/ai/components/flip-card.md +31 -23
  392. package/docs/ai/components/flow.md +37 -65
  393. package/docs/ai/components/form-builder.md +35 -75
  394. package/docs/ai/components/form-layout.md +10 -20
  395. package/docs/ai/components/funnel.md +33 -48
  396. package/docs/ai/components/gantt.md +27 -23
  397. package/docs/ai/components/gauge.md +16 -17
  398. package/docs/ai/components/heatmap.md +21 -21
  399. package/docs/ai/components/image.md +7 -13
  400. package/docs/ai/components/input.md +38 -70
  401. package/docs/ai/components/invoice.md +35 -36
  402. package/docs/ai/components/kanban.md +32 -61
  403. package/docs/ai/components/key-value.md +32 -16
  404. package/docs/ai/components/kpi.md +38 -73
  405. package/docs/ai/components/layout.md +29 -23
  406. package/docs/ai/components/leaderboard.md +28 -37
  407. package/docs/ai/components/link-preview.md +12 -18
  408. package/docs/ai/components/link.md +10 -7
  409. package/docs/ai/components/list.md +21 -5
  410. package/docs/ai/components/location.md +21 -25
  411. package/docs/ai/components/login.md +14 -9
  412. package/docs/ai/components/map.md +27 -33
  413. package/docs/ai/components/markdown.md +20 -24
  414. package/docs/ai/components/masonry.md +10 -14
  415. package/docs/ai/components/mentions.md +26 -12
  416. package/docs/ai/components/menu.md +54 -52
  417. package/docs/ai/components/message-strip.md +20 -20
  418. package/docs/ai/components/metric-table.md +14 -21
  419. package/docs/ai/components/modal.md +27 -18
  420. package/docs/ai/components/music-player.md +49 -41
  421. package/docs/ai/components/nav.md +34 -31
  422. package/docs/ai/components/network-graph.md +27 -42
  423. package/docs/ai/components/notification-center.md +31 -33
  424. package/docs/ai/components/order-tracker.md +36 -27
  425. package/docs/ai/components/org-chart.md +36 -31
  426. package/docs/ai/components/pagination.md +34 -26
  427. package/docs/ai/components/paint.md +53 -91
  428. package/docs/ai/components/pdf-viewer.md +35 -36
  429. package/docs/ai/components/permission-matrix.md +26 -31
  430. package/docs/ai/components/podcast-player.md +64 -70
  431. package/docs/ai/components/pricing-table.md +37 -48
  432. package/docs/ai/components/product-card.md +58 -41
  433. package/docs/ai/components/progress-ring.md +20 -24
  434. package/docs/ai/components/progress.md +28 -45
  435. package/docs/ai/components/qr-code.md +25 -27
  436. package/docs/ai/components/qr-reader.md +20 -23
  437. package/docs/ai/components/radio.md +17 -15
  438. package/docs/ai/components/range-slider.md +22 -11
  439. package/docs/ai/components/rating.md +29 -33
  440. package/docs/ai/components/receipt.md +50 -127
  441. package/docs/ai/components/recipe.md +44 -42
  442. package/docs/ai/components/sankey.md +21 -30
  443. package/docs/ai/components/scheduler.md +29 -41
  444. package/docs/ai/components/segmented-control.md +11 -15
  445. package/docs/ai/components/select.md +58 -102
  446. package/docs/ai/components/skeleton.md +16 -30
  447. package/docs/ai/components/slider.md +26 -20
  448. package/docs/ai/components/sortable.md +25 -27
  449. package/docs/ai/components/sparkline.md +21 -17
  450. package/docs/ai/components/spinner.md +9 -5
  451. package/docs/ai/components/split-button.md +10 -13
  452. package/docs/ai/components/split-pane.md +19 -14
  453. package/docs/ai/components/spotlight.md +31 -26
  454. package/docs/ai/components/spreadsheet.md +51 -97
  455. package/docs/ai/components/stat-group.md +9 -19
  456. package/docs/ai/components/step-input.md +17 -15
  457. package/docs/ai/components/stepper.md +14 -15
  458. package/docs/ai/components/switch.md +15 -9
  459. package/docs/ai/components/table.md +24 -84
  460. package/docs/ai/components/tabs.md +18 -10
  461. package/docs/ai/components/tag-input.md +18 -29
  462. package/docs/ai/components/tag.md +10 -22
  463. package/docs/ai/components/terminal.md +9 -9
  464. package/docs/ai/components/testimonial.md +9 -19
  465. package/docs/ai/components/textarea.md +15 -16
  466. package/docs/ai/components/theme.md +3 -3
  467. package/docs/ai/components/time-picker.md +30 -49
  468. package/docs/ai/components/time-range-picker.md +16 -15
  469. package/docs/ai/components/timeline.md +5 -4
  470. package/docs/ai/components/timer.md +8 -8
  471. package/docs/ai/components/toast.md +24 -18
  472. package/docs/ai/components/tooltip.md +11 -22
  473. package/docs/ai/components/tree.md +9 -9
  474. package/docs/ai/components/treemap.md +14 -13
  475. package/docs/ai/components/user-card.md +21 -27
  476. package/docs/ai/components/video-player.md +35 -52
  477. package/docs/ai/components/virtual-scroller.md +1 -1
  478. package/docs/ai/components/waterfall.md +17 -16
  479. package/docs/ai/components/weather.md +19 -34
  480. package/docs/ai/components/work-order.md +58 -134
  481. package/docs/ai/patterns.md +63 -0
  482. package/docs/components/accordion.md +72 -151
  483. package/docs/components/action-bar.md +185 -0
  484. package/docs/components/activity-feed.md +9 -14
  485. package/docs/components/alert.md +17 -109
  486. package/docs/components/app-tiles.md +58 -43
  487. package/docs/components/approval-flow.md +8 -14
  488. package/docs/components/audio-recorder.md +45 -51
  489. package/docs/components/availability.md +30 -45
  490. package/docs/components/avatar-group.md +34 -14
  491. package/docs/components/avatar.md +20 -55
  492. package/docs/components/badge.md +53 -470
  493. package/docs/components/banner.md +44 -30
  494. package/docs/components/binpack.md +208 -0
  495. package/docs/components/book.md +78 -57
  496. package/docs/components/booking.md +35 -87
  497. package/docs/components/breadcrumbs.md +74 -448
  498. package/docs/components/button.md +72 -603
  499. package/docs/components/calendar.md +77 -261
  500. package/docs/components/camera-annotate.md +44 -96
  501. package/docs/components/camera.md +94 -333
  502. package/docs/components/candlestick.md +79 -116
  503. package/docs/components/card.md +51 -689
  504. package/docs/components/carousel.md +29 -76
  505. package/docs/components/cart.md +44 -136
  506. package/docs/components/chart.md +95 -438
  507. package/docs/components/chat.md +175 -439
  508. package/docs/components/checkbox.md +52 -609
  509. package/docs/components/chip.md +45 -574
  510. package/docs/components/code-block.md +157 -421
  511. package/docs/components/color-display.md +45 -54
  512. package/docs/components/color-picker.md +103 -36
  513. package/docs/components/command-palette.md +98 -92
  514. package/docs/components/comments.md +16 -10
  515. package/docs/components/countdown.md +15 -20
  516. package/docs/components/cropper.md +14 -16
  517. package/docs/components/data-card.md +16 -15
  518. package/docs/components/date-picker.md +45 -25
  519. package/docs/components/date-range-picker.md +140 -87
  520. package/docs/components/date-time-picker.md +25 -28
  521. package/docs/components/diff.md +22 -17
  522. package/docs/components/divider.md +18 -20
  523. package/docs/components/doc.md +105 -197
  524. package/docs/components/draw.md +117 -223
  525. package/docs/components/drawer.md +113 -478
  526. package/docs/components/empty-state.md +13 -29
  527. package/docs/components/estimate.md +58 -118
  528. package/docs/components/file-gallery.md +123 -495
  529. package/docs/components/file-upload.md +36 -123
  530. package/docs/components/flip-card.md +30 -34
  531. package/docs/components/flow.md +74 -89
  532. package/docs/components/form-builder.md +59 -86
  533. package/docs/components/form-layout.md +21 -31
  534. package/docs/components/funnel.md +21 -22
  535. package/docs/components/gantt.md +5 -5
  536. package/docs/components/gauge.md +5 -23
  537. package/docs/components/heatmap.md +13 -55
  538. package/docs/components/image.md +28 -32
  539. package/docs/components/input.md +25 -14
  540. package/docs/components/invoice.md +34 -33
  541. package/docs/components/kanban.md +99 -394
  542. package/docs/components/key-value.md +22 -12
  543. package/docs/components/kpi.md +41 -112
  544. package/docs/components/layout.md +7 -13
  545. package/docs/components/leaderboard.md +52 -76
  546. package/docs/components/link-preview.md +20 -16
  547. package/docs/components/link.md +22 -19
  548. package/docs/components/list.md +44 -26
  549. package/docs/components/location.md +9 -13
  550. package/docs/components/login.md +42 -36
  551. package/docs/components/map.md +24 -46
  552. package/docs/components/markdown.md +14 -25
  553. package/docs/components/masonry.md +15 -13
  554. package/docs/components/mentions.md +36 -25
  555. package/docs/components/menu.md +39 -46
  556. package/docs/components/message-strip.md +15 -51
  557. package/docs/components/metric-table.md +50 -72
  558. package/docs/components/modal.md +32 -43
  559. package/docs/components/music-player.md +41 -49
  560. package/docs/components/nav.md +23 -13
  561. package/docs/components/network-graph.md +14 -13
  562. package/docs/components/notification-center.md +68 -172
  563. package/docs/components/order-tracker.md +72 -117
  564. package/docs/components/org-chart.md +58 -207
  565. package/docs/components/pagination.md +67 -89
  566. package/docs/components/paint.md +86 -172
  567. package/docs/components/pdf-viewer.md +46 -151
  568. package/docs/components/permission-matrix.md +61 -112
  569. package/docs/components/podcast-player.md +41 -119
  570. package/docs/components/pricing-table.md +104 -147
  571. package/docs/components/product-card.md +94 -197
  572. package/docs/components/progress-ring.md +29 -32
  573. package/docs/components/progress.md +30 -61
  574. package/docs/components/qr-code.md +53 -61
  575. package/docs/components/qr-reader.md +53 -42
  576. package/docs/components/radio.md +42 -40
  577. package/docs/components/range-slider.md +41 -30
  578. package/docs/components/rating.md +50 -84
  579. package/docs/components/receipt.md +91 -129
  580. package/docs/components/recipe.md +107 -216
  581. package/docs/components/sankey.md +47 -83
  582. package/docs/components/scheduler.md +81 -184
  583. package/docs/components/segmented-control.md +48 -40
  584. package/docs/components/select.md +107 -129
  585. package/docs/components/skeleton.md +33 -47
  586. package/docs/components/slider.md +49 -53
  587. package/docs/components/sortable.md +43 -186
  588. package/docs/components/sparkline.md +26 -25
  589. package/docs/components/spinner.md +32 -37
  590. package/docs/components/split-button.md +43 -23
  591. package/docs/components/split-pane.md +41 -58
  592. package/docs/components/spotlight.md +53 -145
  593. package/docs/components/spreadsheet.md +84 -307
  594. package/docs/components/stat-group.md +27 -61
  595. package/docs/components/step-input.md +44 -41
  596. package/docs/components/stepper.md +55 -89
  597. package/docs/components/switch.md +39 -39
  598. package/docs/components/table.md +27 -32
  599. package/docs/components/tabs.md +36 -27
  600. package/docs/components/tag-input.md +50 -176
  601. package/docs/components/tag.md +12 -50
  602. package/docs/components/terminal.md +32 -37
  603. package/docs/components/testimonial.md +24 -81
  604. package/docs/components/textarea.md +9 -14
  605. package/docs/components/theme.md +10 -23
  606. package/docs/components/time-picker.md +48 -72
  607. package/docs/components/time-range-picker.md +22 -41
  608. package/docs/components/timeline.md +7 -14
  609. package/docs/components/timer.md +16 -32
  610. package/docs/components/toast.md +19 -45
  611. package/docs/components/tooltip.md +13 -115
  612. package/docs/components/tree.md +2 -19
  613. package/docs/components/treemap.md +19 -43
  614. package/docs/components/user-card.md +13 -22
  615. package/docs/components/video-player.md +53 -227
  616. package/docs/components/virtual-scroller.md +11 -44
  617. package/docs/components/waterfall.md +58 -137
  618. package/docs/components/weather.md +94 -153
  619. package/docs/components/work-order.md +56 -143
  620. package/docs/plans/2026-03-09-action-bar-design.md +104 -0
  621. package/docs/plans/2026-03-09-action-bar-plan.md +676 -0
  622. package/docs/plans/2026-03-10-react-integration-design.md +166 -0
  623. package/docs/request-response.md +77 -0
  624. package/package.json +20 -10
@@ -1,46 +1,46 @@
1
1
  # snice-spotlight
2
2
 
3
- Guided tour / onboarding spotlight that highlights elements with step-by-step popover instructions.
3
+ Guided tour / onboarding spotlight with cutout overlay and step-by-step popovers.
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- steps: SpotlightStep[] = []
7
+ ```typescript
8
+ steps: SpotlightStep[] = [];
9
9
 
10
10
  interface SpotlightStep {
11
- target: string // CSS selector for target element
12
- title: string
13
- description: string
14
- position?: 'top' | 'bottom' | 'left' | 'right' | 'auto'
11
+ target: string; // CSS selector for target element
12
+ title: string;
13
+ description: string;
14
+ position?: 'top'|'bottom'|'left'|'right'|'auto';
15
15
  }
16
16
  ```
17
17
 
18
18
  ## Methods
19
19
 
20
- - `start()` - Begin the spotlight tour from step 0
20
+ - `start()` - Begin tour from step 0
21
21
  - `next()` - Advance to next step (ends tour if on last step)
22
22
  - `prev()` - Go back to previous step
23
- - `goToStep(index: number)` - Jump to specific step
23
+ - `goToStep(index)` - Jump to specific step
24
24
  - `end()` - End the tour
25
25
 
26
26
  ## Events
27
27
 
28
- - `spotlight-start` -> `void`
29
- - `spotlight-step` -> `{ index: number; step: SpotlightStep }`
30
- - `spotlight-end` -> `void`
31
- - `spotlight-skip` -> `{ index: number }`
28
+ - `spotlight-start` `void`
29
+ - `spotlight-step` `{ index, step }`
30
+ - `spotlight-end` `void`
31
+ - `spotlight-skip` `{ index }`
32
32
 
33
33
  ## CSS Custom Properties
34
34
 
35
- - `--snice-transition-medium` - Cutout transition speed (default: `250ms`)
36
- - `--snice-color-background` - Popover background (default: `rgb(255 255 255)`)
37
- - `--snice-color-border` - Popover border (default: `rgb(226 226 226)`)
38
- - `--snice-color-text` - Popover text color (default: `rgb(23 23 23)`)
39
- - `--snice-color-primary` - Primary button color (default: `rgb(37 99 235)`)
35
+ - `--snice-transition-medium` - Cutout transition speed (`250ms`)
36
+ - `--snice-color-background` - Popover background (`rgb(255 255 255)`)
37
+ - `--snice-color-border` - Popover border (`rgb(226 226 226)`)
38
+ - `--snice-color-text` - Popover text (`rgb(23 23 23)`)
39
+ - `--snice-color-primary` - Primary button (`rgb(37 99 235)`)
40
40
  - `--snice-shadow-lg` - Popover shadow
41
- - `--snice-border-radius-lg` - Popover border radius (default: `0.5rem`)
41
+ - `--snice-border-radius-lg` - Popover border radius (`0.5rem`)
42
42
 
43
- ## Usage
43
+ ## Basic Usage
44
44
 
45
45
  ```html
46
46
  <snice-spotlight></snice-spotlight>
@@ -48,13 +48,18 @@ interface SpotlightStep {
48
48
 
49
49
  ```typescript
50
50
  spotlight.steps = [
51
- { target: '#step1', title: 'Welcome', description: 'This is the first step', position: 'bottom' },
52
- { target: '#step2', title: 'Next', description: 'Click here to continue', position: 'right' },
53
- { target: '#step3', title: 'Done', description: 'All set!', position: 'top' }
51
+ { target: '#step1', title: 'Welcome', description: 'First step', position: 'bottom' },
52
+ { target: '#step2', title: 'Next', description: 'Continue here', position: 'right' },
54
53
  ];
55
54
  spotlight.start();
56
55
 
57
- spotlight.addEventListener('spotlight-end', () => {
58
- console.log('Tour completed');
59
- });
56
+ spotlight.addEventListener('spotlight-end', () => console.log('Tour completed'));
57
+ spotlight.addEventListener('spotlight-skip', (e) => console.log(`Skipped at ${e.detail.index}`));
60
58
  ```
59
+
60
+ ## Accessibility
61
+
62
+ - Keyboard-accessible navigation buttons
63
+ - Focus moves to popover on each step
64
+ - Escape key ends tour
65
+ - Respects `prefers-reduced-motion`
@@ -4,122 +4,57 @@ Excel-like spreadsheet with formulas, multi-cell selection, undo/redo, column re
4
4
 
5
5
  ## Properties
6
6
 
7
- ```ts
8
- data: any[][] = []
9
- columns: SpreadsheetColumn[] = []
10
- readonly: boolean = false
7
+ ```typescript
8
+ data: any[][] = [];
9
+ columns: SpreadsheetColumn[] = [];
10
+ readonly: boolean = false;
11
11
 
12
12
  interface SpreadsheetColumn {
13
- header: string
14
- type?: 'text' | 'number' | 'date' | 'boolean' | 'select'
15
- width?: number
16
- options?: string[] // for 'select' type
17
- }
18
-
19
- interface CellPosition {
20
- row: number
21
- col: number
22
- }
23
-
24
- interface CellRange {
25
- start: CellPosition
26
- end: CellPosition
27
- }
28
-
29
- interface UndoEntry {
30
- row: number
31
- col: number
32
- oldValue: any
33
- newValue: any
13
+ header: string;
14
+ type?: 'text'|'number'|'date'|'boolean'|'select';
15
+ width?: number;
16
+ options?: string[]; // for 'select' type
34
17
  }
35
18
  ```
36
19
 
37
20
  ## Methods
38
21
 
39
- - `getCell(row: number, col: number)` - Get resolved cell value
40
- - `setCell(row: number, col: number, value: any)` - Set cell value (auto-expands data, adds to undo stack)
41
- - `getData()` - Get copy of all data
42
- - `setData(data: any[][])` - Replace all data
22
+ - `getCell(row, col)` → `any` - Get resolved cell value (formulas return computed result)
23
+ - `setCell(row, col, value)` - Set cell value (auto-expands, adds to undo stack)
24
+ - `getData()` → `any[][]` - Get copy of all data
25
+ - `setData(data)` - Replace all data
43
26
 
44
27
  ## Events
45
28
 
46
- - `cell-change` -> `{ row: number; col: number; value: any; oldValue: any }`
47
- - `cell-select` -> `{ row: number; col: number }`
48
- - `row-select` -> `{ row: number }`
49
- - `column-sort` -> `{ col: number; direction: 'asc' | 'desc' }`
50
-
51
- ## Formula Support
52
-
53
- Cells starting with `=` are evaluated. Supported functions:
54
- - `=SUM(A1:B3)`, `=AVG(A1:A5)`, `=AVERAGE(A1:A5)`
55
- - `=COUNT(A1:A10)`, `=MIN(A1:A5)`, `=MAX(A1:A5)`
56
-
57
- ## Keyboard Shortcuts
58
-
59
- - Arrow keys: Navigate cells
60
- - Shift+Arrow: Extend selection range
61
- - Shift+Click: Extend selection to clicked cell
62
- - Enter/F2: Edit selected cell
63
- - Tab/Shift+Tab: Move to next/previous cell (commits edit, auto-expands grid)
64
- - Escape: Cancel edit
65
- - Delete/Backspace: Clear selected cell(s)
66
- - Ctrl+C/Ctrl+V: Copy/paste (supports tab-separated multi-cell)
67
- - Ctrl+Z: Undo (up to 100 entries)
68
- - Ctrl+Y / Ctrl+Shift+Z: Redo
69
- - Any printable key: Start editing with that character (type-to-edit)
70
-
71
- ## Multi-Cell Selection
72
-
73
- - Click+drag to select range
74
- - Shift+click extends from anchor
75
- - Shift+arrow keys grow selection
76
- - Selected range: light blue fill; anchor cell: 2px blue border
77
- - Status bar shows COUNT, SUM, AVG of numeric cells in selection
78
-
79
- ## Column Resizing
29
+ - `cell-change` `{ row, col, value, oldValue }`
30
+ - `cell-select` `{ row, col }`
31
+ - `row-select` `{ row }`
32
+ - `column-sort` `{ col, direction: 'asc'|'desc' }`
80
33
 
81
- - Drag right edge of column header to resize
82
- - Min width: 40px
83
- - Widths stored in internal map
34
+ ## CSS Parts
84
35
 
85
- ## Context Menu (Right-Click)
86
-
87
- Items: Cut, Copy, Paste, Insert Row Above/Below, Delete Row, Insert Column Left/Right, Delete Column, Clear Cell(s)
88
-
89
- ## Row/Column Add Buttons
90
-
91
- - "+" row at bottom: appends empty row
92
- - "+" column at right: appends empty column
93
- - Auto-expand on Tab (last col) or Enter (last row)
94
-
95
- ## Empty State
96
-
97
- When data is empty, shows "Double-click or start typing to add data"
98
-
99
- ## Frozen Headers
100
-
101
- - Row numbers: sticky left (visible during horizontal scroll)
102
- - Column headers: sticky top
103
- - Corner cell (top-left): sticky both directions
104
-
105
- **CSS Parts:**
106
- - `formula-bar` - The formula bar with cell reference and input
107
- - `base` - The main spreadsheet grid area
108
- - `status-bar` - The bottom status bar showing selection stats
109
- - `context-menu` - The right-click context menu
36
+ - `formula-bar` - Formula bar with cell reference and input
37
+ - `base` - Main spreadsheet grid area
38
+ - `status-bar` - Bottom status bar (selection stats)
39
+ - `context-menu` - Right-click context menu
110
40
 
111
41
  ## CSS Custom Properties
112
42
 
113
- - `--snice-color-border` - Grid lines (default: `rgb(226 226 226)`)
114
- - `--snice-color-background` - Cell background (default: `rgb(255 255 255)`)
43
+ - `--snice-color-border` - Grid lines (`rgb(226 226 226)`)
44
+ - `--snice-color-background` - Cell background (`rgb(255 255 255)`)
115
45
  - `--snice-color-background-element` - Header/row-number background
116
- - `--snice-color-primary` - Selected cell border (default: `rgb(37 99 235)`)
117
- - `--snice-color-primary-subtle` - Range selection fill / header highlight
118
- - `--snice-color-text` - Cell text color
46
+ - `--snice-color-background-hover` - Row/header hover
47
+ - `--snice-color-primary` - Selected cell border (`rgb(37 99 235)`)
48
+ - `--snice-color-primary-subtle` - Range selection fill
49
+ - `--snice-color-text` - Cell text
119
50
  - `--snice-color-text-secondary` - Formula bar cell ref
120
51
  - `--snice-color-text-tertiary` - Row numbers, status bar labels
121
52
 
122
- ## Usage
53
+ ## Formula Support
54
+
55
+ Cells starting with `=` are evaluated: `SUM`, `AVG`/`AVERAGE`, `COUNT`, `MIN`, `MAX`. Cell refs use A1 notation.
56
+
57
+ ## Basic Usage
123
58
 
124
59
  ```html
125
60
  <snice-spreadsheet></snice-spreadsheet>
@@ -141,3 +76,22 @@ sheet.addEventListener('cell-change', (e) => {
141
76
  console.log(`Cell [${e.detail.row},${e.detail.col}] changed to ${e.detail.value}`);
142
77
  });
143
78
  ```
79
+
80
+ ## Keyboard Navigation
81
+
82
+ - Arrow keys: navigate cells
83
+ - Shift+Arrow: extend selection range
84
+ - Enter/F2: edit cell; Escape: cancel
85
+ - Tab/Shift+Tab: next/prev cell (commits edit, auto-expands)
86
+ - Delete/Backspace: clear cell(s)
87
+ - Ctrl+C/V: copy/paste (tab-separated multi-cell)
88
+ - Ctrl+Z: undo; Ctrl+Y: redo (up to 100 entries)
89
+ - Any printable key: type-to-edit
90
+
91
+ ## Accessibility
92
+
93
+ - Full keyboard navigation and editing
94
+ - Visible focus indicator on selected cell
95
+ - Frozen row numbers (sticky left) and column headers (sticky top)
96
+ - Context menu: Cut, Copy, Paste, Insert/Delete Row/Column, Clear
97
+ - Auto-expanding grid via "+" buttons and Tab/Enter at edges
@@ -6,17 +6,13 @@ Coordinated row of KPI cards with trend indicators and responsive grid layout.
6
6
 
7
7
  ```typescript
8
8
  stats: StatItem[] = [];
9
- columns: number = 0; // 0 = auto-fit
9
+ columns: number = 0; // 0 = auto-fit
10
10
  variant: 'card'|'minimal'|'bordered' = 'card';
11
- ```
12
-
13
- ## Types
14
11
 
15
- ```typescript
16
12
  interface StatItem {
17
13
  label: string;
18
14
  value: string | number;
19
- trend?: 'up' | 'down' | 'neutral';
15
+ trend?: 'up'|'down'|'neutral';
20
16
  trendValue?: string;
21
17
  icon?: string;
22
18
  color?: string;
@@ -25,14 +21,14 @@ interface StatItem {
25
21
 
26
22
  ## Events
27
23
 
28
- - `stat-click` -> `{ stat: StatItem, index: number }`
24
+ - `stat-click` `{ stat, index }`
29
25
 
30
26
  ## CSS Parts
31
27
 
32
28
  - `base` - Grid container
33
29
  - `stat` - Individual stat card
34
30
 
35
- ## Usage
31
+ ## Basic Usage
36
32
 
37
33
  ```html
38
34
  <snice-stat-group></snice-stat-group>
@@ -43,16 +39,12 @@ el.stats = [
43
39
  { label: 'Revenue', value: '$45,231', trend: 'up', trendValue: '+12.5%' },
44
40
  { label: 'Users', value: '2,338', trend: 'up', trendValue: '+8.2%' },
45
41
  { label: 'Orders', value: '1,245', trend: 'down', trendValue: '-3.1%' },
46
- { label: 'Bounce', value: '3.24%', trend: 'neutral', trendValue: '0.0%' }
47
42
  ];
48
43
  ```
49
44
 
50
45
  ```html
51
- <!-- Variants -->
52
46
  <snice-stat-group variant="minimal"></snice-stat-group>
53
47
  <snice-stat-group variant="bordered"></snice-stat-group>
54
-
55
- <!-- Fixed columns -->
56
48
  <snice-stat-group columns="2"></snice-stat-group>
57
49
  ```
58
50
 
@@ -61,13 +53,11 @@ el.stats = [
61
53
  el.stats = [
62
54
  { label: 'Revenue', value: '$45K', icon: '$', color: 'rgb(22 163 74)', trend: 'up', trendValue: '+12%' }
63
55
  ];
56
+
57
+ el.addEventListener('stat-click', (e) => console.log(e.detail.stat.label));
64
58
  ```
65
59
 
66
- ## Features
60
+ ## Accessibility
67
61
 
68
- - 3 visual variants: card, minimal, bordered
69
- - Auto-fit responsive grid (wraps on narrow viewports)
70
- - Fixed column count option
71
- - Trend indicators (up/down/neutral) with color coding
72
- - Icon and color customization per stat
73
- - Keyboard accessible (Enter/Space to click)
62
+ - Stat cards have `role="button"`, keyboard accessible (Enter/Space)
63
+ - Trend indicators use semantic color coding
@@ -15,10 +15,6 @@ size: 'small'|'medium'|'large' = 'medium';
15
15
  wrap: boolean = false; // wrap around at min/max boundaries
16
16
  ```
17
17
 
18
- ## Events
19
-
20
- - `value-change` -> `{ value: number, oldValue: number, component: SniceStepInputElement }`
21
-
22
18
  ## Methods
23
19
 
24
20
  - `increment()` - Increase value by step
@@ -26,29 +22,35 @@ wrap: boolean = false; // wrap around at min/max boundaries
26
22
  - `focus()` - Focus the input
27
23
  - `blur()` - Remove focus
28
24
 
25
+ ## Events
26
+
27
+ - `value-change` → `{ value, oldValue, component }`
28
+
29
29
  ## CSS Parts
30
30
 
31
31
  - `base` - Outer container
32
32
  - `decrement-button` - Minus button
33
33
  - `increment-button` - Plus button
34
- - `input` - The number input
34
+ - `input` - Number input field
35
35
 
36
- ## Usage
36
+ ## Basic Usage
37
37
 
38
38
  ```html
39
- <!-- Basic -->
40
39
  <snice-step-input value="5"></snice-step-input>
41
-
42
- <!-- With min/max -->
43
40
  <snice-step-input min="0" max="10" value="5" step="1"></snice-step-input>
44
-
45
- <!-- Wrap around -->
46
41
  <snice-step-input min="1" max="12" value="1" wrap></snice-step-input>
47
-
48
- <!-- Sizes -->
49
42
  <snice-step-input size="small"></snice-step-input>
50
43
  <snice-step-input size="large"></snice-step-input>
51
-
52
- <!-- Disabled -->
53
44
  <snice-step-input value="3" disabled></snice-step-input>
54
45
  ```
46
+
47
+ ## Keyboard Navigation
48
+
49
+ - ArrowUp: increment by step
50
+ - ArrowDown: decrement by step
51
+
52
+ ## Accessibility
53
+
54
+ - Buttons keyboard accessible with focus indicators
55
+ - Direct keyboard entry in input field
56
+ - Buttons disabled at min/max (unless `wrap` is set)
@@ -10,41 +10,35 @@ currentStep: number = 0; // attr: current-step
10
10
  orientation: 'horizontal'|'vertical' = 'horizontal';
11
11
  clickable: boolean = false;
12
12
 
13
- // Step object:
14
13
  interface Step {
15
14
  label: string;
16
15
  description?: string;
17
- status?: 'pending'|'active'|'completed'|'error'; // auto-computed if not set
16
+ status?: 'pending'|'active'|'completed'|'error'; // auto-computed if not set
18
17
  }
19
18
  ```
20
19
 
21
- ## Slots
22
-
23
- - `(default)` - `<snice-stepper-panel>` elements (auto show/hide based on currentStep)
24
-
25
20
  ## Events
26
21
 
27
- - `step-change` → `{ previousStep, currentStep, step }` - Cancelable via preventDefault()
22
+ - `step-change` → `{ previousStep, currentStep, step }` - Cancelable via `preventDefault()`
28
23
 
29
- ## Methods
24
+ ## Slots
30
25
 
31
- - Navigate via `currentStep` property (increment/decrement/set)
26
+ - `(default)` - `<snice-stepper-panel>` elements (auto show/hide based on `currentStep`)
32
27
 
33
28
  ## CSS Parts
34
29
 
35
30
  - `container` - Main container
36
- - `step` - Individual step
37
- - `step-indicator` - Circular indicator
31
+ - `step` - Individual step wrapper
32
+ - `step-indicator` - Circular indicator (number/checkmark)
38
33
  - `step-content` - Label + description wrapper
39
34
  - `step-label` - Step label text
40
35
  - `step-description` - Description text
41
36
  - `step-connector` - Line between steps
42
37
  - `panels` - Panels container (wraps slotted content)
43
38
 
44
- ## Usage
39
+ ## Basic Usage
45
40
 
46
41
  ```html
47
- <!-- Basic -->
48
42
  <snice-stepper></snice-stepper>
49
43
  ```
50
44
 
@@ -66,14 +60,19 @@ stepper.currentStep = 1;
66
60
 
67
61
  <!-- Vertical with descriptions -->
68
62
  <snice-stepper orientation="vertical"></snice-stepper>
69
-
70
- <!-- Error state -->
71
63
  ```
72
64
 
73
65
  ```typescript
66
+ // Error state
74
67
  stepper.steps = [
75
68
  { label: 'Upload', status: 'completed' },
76
69
  { label: 'Validate', status: 'error' },
77
70
  { label: 'Process', status: 'pending' }
78
71
  ];
79
72
  ```
73
+
74
+ ## Accessibility
75
+
76
+ - Clickable steps are keyboard accessible (Enter/Space)
77
+ - Completed steps show checkmark; error steps use semantic color
78
+ - Navigate via `currentStep` property
@@ -1,27 +1,23 @@
1
1
  # snice-switch
2
2
 
3
- Toggle switch input for boolean selections. Form-associated.
3
+ Toggle switch input for boolean selections.
4
4
 
5
5
  ## Properties
6
6
 
7
7
  ```typescript
8
8
  checked: boolean = false;
9
9
  disabled: boolean = false;
10
+ loading: boolean = false;
10
11
  required: boolean = false;
11
12
  invalid: boolean = false;
12
13
  size: 'small'|'medium'|'large' = 'medium';
13
14
  name: string = '';
14
15
  value: string = 'on';
15
16
  label: string = '';
16
- labelOn: string = ''; // attr: label-on
17
- labelOff: string = ''; // attr: label-off
18
- loading: boolean = false;
17
+ labelOn: string = ''; // attr: label-on
18
+ labelOff: string = ''; // attr: label-off
19
19
  ```
20
20
 
21
- ## Events
22
-
23
- - `switch-change` → `{ checked, switch }`
24
-
25
21
  ## Methods
26
22
 
27
23
  - `toggle()` - Toggle switch state
@@ -29,6 +25,10 @@ loading: boolean = false;
29
25
  - `blur()` - Remove focus
30
26
  - `click()` - Programmatic click
31
27
 
28
+ ## Events
29
+
30
+ - `switch-change` → `{ checked, switch }`
31
+
32
32
  ## CSS Parts
33
33
 
34
34
  - `input` - Hidden input element
@@ -37,7 +37,7 @@ loading: boolean = false;
37
37
  - `spinner` - Loading spinner
38
38
  - `label` - Label text
39
39
 
40
- ## Usage
40
+ ## Basic Usage
41
41
 
42
42
  ```html
43
43
  <snice-switch label="Enable notifications"></snice-switch>
@@ -47,3 +47,9 @@ loading: boolean = false;
47
47
  <snice-switch loading label="Saving..."></snice-switch>
48
48
  <snice-switch disabled></snice-switch>
49
49
  ```
50
+
51
+ ## Accessibility
52
+
53
+ - `role="switch"` with `aria-checked`
54
+ - Space key to toggle
55
+ - Visible focus ring on keyboard navigation