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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snice-binpack.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/binpack/snice-binpack.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, ready, dispose, watch, dispatch, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;position:relative;width:100%;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style;--binpack-gap:1rem;--binpack-transition-duration:0.4s}.binpack{position:relative;width:100%;min-height:1rem}::slotted(*){position:absolute;top:0;left:0;box-sizing:border-box}::slotted([hidden]){display:none!important}:host([ready]) ::slotted(*){transition:transform var(--binpack-transition-duration) ease}::slotted(.binpack-dragging){z-index:100;opacity:.9;transition:none!important;cursor:grabbing!important;user-select:none}::slotted(.binpack-positioning){z-index:99}:host([draggable]) ::slotted(*){cursor:grab}.binpack-drop-placeholder{position:absolute;top:0;left:0;outline:rgba(128,128,128,.5) dashed 3px;outline-offset:-6px;border-radius:4px;transition:transform .2s;pointer-events:none;display:none}.binpack-drop-placeholder.visible{display:block}\";\n\n// ---------------------------------------------------------------------------\n// Rect helpers\n// ---------------------------------------------------------------------------\nfunction rectContains(outer, inner) {\n return (inner.x >= outer.x &&\n inner.y >= outer.y &&\n inner.x + inner.width <= outer.x + outer.width &&\n inner.y + inner.height <= outer.y + outer.height);\n}\nfunction rectOverlaps(a, b) {\n return (a.x < b.x + b.width &&\n a.x + a.width > b.x &&\n a.y < b.y + b.height &&\n a.y + a.height > b.y);\n}\nfunction canFit(space, item) {\n // 1px tolerance for sub-pixel rounding errors\n return space.width >= item.width - 1 && space.height >= item.height - 1;\n}\n/**\n * After placing `placed` inside `space`, return up to 4 remaining sub-rects\n * (top, right, bottom, left strips).\n */\nfunction getMaximalFreeRects(space, placed) {\n const rects = [];\n // Top strip\n if (placed.y > space.y) {\n rects.push({ x: space.x, y: space.y, width: space.width, height: placed.y - space.y });\n }\n // Bottom strip\n const placedBottom = placed.y + placed.height;\n const spaceBottom = space.y + space.height;\n if (placedBottom < spaceBottom) {\n rects.push({ x: space.x, y: placedBottom, width: space.width, height: spaceBottom - placedBottom });\n }\n // Left strip\n if (placed.x > space.x) {\n rects.push({ x: space.x, y: space.y, width: placed.x - space.x, height: space.height });\n }\n // Right strip\n const placedRight = placed.x + placed.width;\n const spaceRight = space.x + space.width;\n if (placedRight < spaceRight) {\n rects.push({ x: placedRight, y: space.y, width: spaceRight - placedRight, height: space.height });\n }\n return rects;\n}\n// ---------------------------------------------------------------------------\n// Packer\n// ---------------------------------------------------------------------------\nclass Packer {\n constructor(width, height, horizontal) {\n this.width = width;\n this.height = height;\n this.horizontal = horizontal;\n this.spaces = [{ x: 0, y: 0, width, height }];\n }\n /**\n * Snap item dimensions to the nearest grid multiple.\n * If gridSize is set, round UP to the next (gridSize + gutter) multiple.\n */\n applyGrid(measurement, gridSize, gutter) {\n if (!gridSize)\n return measurement;\n const gridWithGutter = gridSize + gutter;\n const remainder = measurement % gridWithGutter;\n const method = remainder && remainder < 1 ? 'round' : 'ceil';\n return Math[method](measurement / gridWithGutter) * gridWithGutter;\n }\n /**\n * Find first fitting space and return the placement position.\n * If columnWidth/rowHeight are provided, snap item SIZE to grid.\n */\n pack(itemWidth, itemHeight, columnWidth, rowHeight, gutter) {\n // Snap item size to grid multiples\n const w = this.applyGrid(itemWidth, columnWidth, gutter);\n const h = this.applyGrid(itemHeight, rowHeight, gutter);\n // Clamp to packer bounds\n const item = {\n x: 0, y: 0,\n width: Math.min(w, this.width),\n height: Math.min(h, this.height),\n };\n for (const space of this.spaces) {\n if (canFit(space, item)) {\n item.x = space.x;\n item.y = space.y;\n this.placed(item);\n return { x: space.x, y: space.y };\n }\n }\n return null;\n }\n /**\n * Update free spaces after an item has been placed.\n */\n placed(placed) {\n const newSpaces = [];\n for (const space of this.spaces) {\n if (rectOverlaps(space, placed)) {\n const subs = getMaximalFreeRects(space, placed);\n newSpaces.push(...subs);\n }\n else {\n newSpaces.push(space);\n }\n }\n this.spaces = newSpaces;\n this.mergeSortSpaces();\n }\n /**\n * Remove spaces fully contained within larger ones, then sort.\n */\n mergeSortSpaces() {\n // Remove contained spaces\n this.spaces = this.spaces.filter((space, i, arr) => {\n for (let j = 0; j < arr.length; j++) {\n if (i !== j && rectContains(arr[j], space)) {\n return false;\n }\n }\n return true;\n });\n // Sort: vertical = downward-left-to-right, horizontal = rightward-top-to-bottom\n if (this.horizontal) {\n this.spaces.sort((a, b) => a.x - b.x || a.y - b.y);\n }\n else {\n this.spaces.sort((a, b) => a.y - b.y || a.x - b.x);\n }\n }\n}\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\nlet SniceBinpack = (() => {\n let _classDecorators = [element('snice-binpack')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _gap_decorators;\n let _gap_initializers = [];\n let _gap_extraInitializers = [];\n let _columnWidth_decorators;\n let _columnWidth_initializers = [];\n let _columnWidth_extraInitializers = [];\n let _rowHeight_decorators;\n let _rowHeight_initializers = [];\n let _rowHeight_extraInitializers = [];\n let _horizontal_decorators;\n let _horizontal_initializers = [];\n let _horizontal_extraInitializers = [];\n let _originLeft_decorators;\n let _originLeft_initializers = [];\n let _originLeft_extraInitializers = [];\n let _originTop_decorators;\n let _originTop_initializers = [];\n let _originTop_extraInitializers = [];\n let _transitionDuration_decorators;\n let _transitionDuration_initializers = [];\n let _transitionDuration_extraInitializers = [];\n let _stagger_decorators;\n let _stagger_initializers = [];\n let _stagger_extraInitializers = [];\n let _resize_decorators;\n let _resize_initializers = [];\n let _resize_extraInitializers = [];\n let _draggable_decorators;\n let _draggable_initializers = [];\n let _draggable_extraInitializers = [];\n let _dragThrottle_decorators;\n let _dragThrottle_initializers = [];\n let _dragThrottle_extraInitializers = [];\n let _container_decorators;\n let _container_initializers = [];\n let _container_extraInitializers = [];\n let _slotElement_decorators;\n let _slotElement_initializers = [];\n let _slotElement_extraInitializers = [];\n let _dropPlaceholder_decorators;\n let _dropPlaceholder_initializers = [];\n let _dropPlaceholder_extraInitializers = [];\n let _onReady_decorators;\n let _onDispose_decorators;\n let _onGapChange_decorators;\n let _onTransitionDurationChange_decorators;\n let _onColumnWidthChange_decorators;\n let _onRowHeightChange_decorators;\n let _onHorizontalChange_decorators;\n let _onOriginLeftChange_decorators;\n let _onOriginTopChange_decorators;\n let _onResizeChange_decorators;\n let _onDraggableChange_decorators;\n let _emitLayoutComplete_decorators;\n let _emitFitComplete_decorators;\n let _emitDragItemPositioned_decorators;\n let _template_decorators;\n let _componentStyles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.gap = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _gap_initializers, '1rem'));\n this.columnWidth = (__runInitializers(this, _gap_extraInitializers), __runInitializers(this, _columnWidth_initializers, 0));\n this.rowHeight = (__runInitializers(this, _columnWidth_extraInitializers), __runInitializers(this, _rowHeight_initializers, 0));\n this.horizontal = (__runInitializers(this, _rowHeight_extraInitializers), __runInitializers(this, _horizontal_initializers, false));\n this.originLeft = (__runInitializers(this, _horizontal_extraInitializers), __runInitializers(this, _originLeft_initializers, true));\n this.originTop = (__runInitializers(this, _originLeft_extraInitializers), __runInitializers(this, _originTop_initializers, true));\n this.transitionDuration = (__runInitializers(this, _originTop_extraInitializers), __runInitializers(this, _transitionDuration_initializers, '0.4s'));\n this.stagger = (__runInitializers(this, _transitionDuration_extraInitializers), __runInitializers(this, _stagger_initializers, 0));\n this.resize = (__runInitializers(this, _stagger_extraInitializers), __runInitializers(this, _resize_initializers, true));\n this.draggable = (__runInitializers(this, _resize_extraInitializers), __runInitializers(this, _draggable_initializers, false));\n this.dragThrottle = (__runInitializers(this, _draggable_extraInitializers), __runInitializers(this, _dragThrottle_initializers, 120));\n this.container = (__runInitializers(this, _dragThrottle_extraInitializers), __runInitializers(this, _container_initializers, void 0));\n this.slotElement = (__runInitializers(this, _container_extraInitializers), __runInitializers(this, _slotElement_initializers, void 0));\n this.dropPlaceholder = (__runInitializers(this, _slotElement_extraInitializers), __runInitializers(this, _dropPlaceholder_initializers, void 0));\n this.items = (__runInitializers(this, _dropPlaceholder_extraInitializers), []);\n this.stampedElements = new Set();\n this.resizeObserver = null;\n this.itemResizeObserver = null;\n this.layoutScheduled = false;\n // Drag state\n this.dragItemCount = 0;\n this.shiftTargets = [];\n this.shiftTargetKeys = [];\n this.dragItem = null;\n this.dragItemRect = { x: 0, y: 0, width: 0, height: 0 };\n this.dragStartX = 0;\n this.dragStartY = 0;\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n this.dragTime = 0;\n this.dragTimeoutId = null;\n this.boundPointerMove = null;\n this.boundPointerUp = null;\n this.pendingLayout = null;\n this.onPointerDown = (e) => {\n if (!this.draggable)\n return;\n // Only handle primary button\n if (e.button !== 0)\n return;\n // Find the direct child item that was clicked\n const target = e.target;\n const item = this.items.find(el => el === target || el.contains(target));\n if (!item || this.stampedElements.has(item))\n return;\n e.preventDefault();\n this.dragItemStart(item, e);\n };\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _gap_decorators = [property()];\n _columnWidth_decorators = [property({ type: Number, attribute: 'column-width' })];\n _rowHeight_decorators = [property({ type: Number, attribute: 'row-height' })];\n _horizontal_decorators = [property({ type: Boolean })];\n _originLeft_decorators = [property({ type: Boolean, attribute: 'origin-left' })];\n _originTop_decorators = [property({ type: Boolean, attribute: 'origin-top' })];\n _transitionDuration_decorators = [property({ attribute: 'transition-duration' })];\n _stagger_decorators = [property({ type: Number })];\n _resize_decorators = [property({ type: Boolean })];\n _draggable_decorators = [property({ type: Boolean })];\n _dragThrottle_decorators = [property({ type: Number, attribute: 'drag-throttle' })];\n _container_decorators = [query('.binpack')];\n _slotElement_decorators = [query('slot')];\n _dropPlaceholder_decorators = [query('.binpack-drop-placeholder')];\n _onReady_decorators = [ready()];\n _onDispose_decorators = [dispose()];\n _onGapChange_decorators = [watch('gap')];\n _onTransitionDurationChange_decorators = [watch('transitionDuration')];\n _onColumnWidthChange_decorators = [watch('columnWidth')];\n _onRowHeightChange_decorators = [watch('rowHeight')];\n _onHorizontalChange_decorators = [watch('horizontal')];\n _onOriginLeftChange_decorators = [watch('originLeft')];\n _onOriginTopChange_decorators = [watch('originTop')];\n _onResizeChange_decorators = [watch('resize')];\n _onDraggableChange_decorators = [watch('draggable')];\n _emitLayoutComplete_decorators = [dispatch('binpack-layout-complete', { bubbles: true, composed: true })];\n _emitFitComplete_decorators = [dispatch('binpack-fit-complete', { bubbles: true, composed: true })];\n _emitDragItemPositioned_decorators = [dispatch('binpack-drag-item-positioned', { bubbles: true, composed: true })];\n _template_decorators = [render()];\n _componentStyles_decorators = [styles()];\n __esDecorate(this, null, _onReady_decorators, { kind: \"method\", name: \"onReady\", static: false, private: false, access: { has: obj => \"onReady\" in obj, get: obj => obj.onReady }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onDispose_decorators, { kind: \"method\", name: \"onDispose\", static: false, private: false, access: { has: obj => \"onDispose\" in obj, get: obj => obj.onDispose }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onGapChange_decorators, { kind: \"method\", name: \"onGapChange\", static: false, private: false, access: { has: obj => \"onGapChange\" in obj, get: obj => obj.onGapChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onTransitionDurationChange_decorators, { kind: \"method\", name: \"onTransitionDurationChange\", static: false, private: false, access: { has: obj => \"onTransitionDurationChange\" in obj, get: obj => obj.onTransitionDurationChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onColumnWidthChange_decorators, { kind: \"method\", name: \"onColumnWidthChange\", static: false, private: false, access: { has: obj => \"onColumnWidthChange\" in obj, get: obj => obj.onColumnWidthChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onRowHeightChange_decorators, { kind: \"method\", name: \"onRowHeightChange\", static: false, private: false, access: { has: obj => \"onRowHeightChange\" in obj, get: obj => obj.onRowHeightChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onHorizontalChange_decorators, { kind: \"method\", name: \"onHorizontalChange\", static: false, private: false, access: { has: obj => \"onHorizontalChange\" in obj, get: obj => obj.onHorizontalChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onOriginLeftChange_decorators, { kind: \"method\", name: \"onOriginLeftChange\", static: false, private: false, access: { has: obj => \"onOriginLeftChange\" in obj, get: obj => obj.onOriginLeftChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onOriginTopChange_decorators, { kind: \"method\", name: \"onOriginTopChange\", static: false, private: false, access: { has: obj => \"onOriginTopChange\" in obj, get: obj => obj.onOriginTopChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onResizeChange_decorators, { kind: \"method\", name: \"onResizeChange\", static: false, private: false, access: { has: obj => \"onResizeChange\" in obj, get: obj => obj.onResizeChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onDraggableChange_decorators, { kind: \"method\", name: \"onDraggableChange\", static: false, private: false, access: { has: obj => \"onDraggableChange\" in obj, get: obj => obj.onDraggableChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitLayoutComplete_decorators, { kind: \"method\", name: \"emitLayoutComplete\", static: false, private: false, access: { has: obj => \"emitLayoutComplete\" in obj, get: obj => obj.emitLayoutComplete }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitFitComplete_decorators, { kind: \"method\", name: \"emitFitComplete\", static: false, private: false, access: { has: obj => \"emitFitComplete\" in obj, get: obj => obj.emitFitComplete }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitDragItemPositioned_decorators, { kind: \"method\", name: \"emitDragItemPositioned\", static: false, private: false, access: { has: obj => \"emitDragItemPositioned\" in obj, get: obj => obj.emitDragItemPositioned }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _template_decorators, { kind: \"method\", name: \"template\", static: false, private: false, access: { has: obj => \"template\" in obj, get: obj => obj.template }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _componentStyles_decorators, { kind: \"method\", name: \"componentStyles\", static: false, private: false, access: { has: obj => \"componentStyles\" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _gap_decorators, { kind: \"field\", name: \"gap\", static: false, private: false, access: { has: obj => \"gap\" in obj, get: obj => obj.gap, set: (obj, value) => { obj.gap = value; } }, metadata: _metadata }, _gap_initializers, _gap_extraInitializers);\n __esDecorate(null, null, _columnWidth_decorators, { kind: \"field\", name: \"columnWidth\", static: false, private: false, access: { has: obj => \"columnWidth\" in obj, get: obj => obj.columnWidth, set: (obj, value) => { obj.columnWidth = value; } }, metadata: _metadata }, _columnWidth_initializers, _columnWidth_extraInitializers);\n __esDecorate(null, null, _rowHeight_decorators, { kind: \"field\", name: \"rowHeight\", static: false, private: false, access: { has: obj => \"rowHeight\" in obj, get: obj => obj.rowHeight, set: (obj, value) => { obj.rowHeight = value; } }, metadata: _metadata }, _rowHeight_initializers, _rowHeight_extraInitializers);\n __esDecorate(null, null, _horizontal_decorators, { kind: \"field\", name: \"horizontal\", static: false, private: false, access: { has: obj => \"horizontal\" in obj, get: obj => obj.horizontal, set: (obj, value) => { obj.horizontal = value; } }, metadata: _metadata }, _horizontal_initializers, _horizontal_extraInitializers);\n __esDecorate(null, null, _originLeft_decorators, { kind: \"field\", name: \"originLeft\", static: false, private: false, access: { has: obj => \"originLeft\" in obj, get: obj => obj.originLeft, set: (obj, value) => { obj.originLeft = value; } }, metadata: _metadata }, _originLeft_initializers, _originLeft_extraInitializers);\n __esDecorate(null, null, _originTop_decorators, { kind: \"field\", name: \"originTop\", static: false, private: false, access: { has: obj => \"originTop\" in obj, get: obj => obj.originTop, set: (obj, value) => { obj.originTop = value; } }, metadata: _metadata }, _originTop_initializers, _originTop_extraInitializers);\n __esDecorate(null, null, _transitionDuration_decorators, { kind: \"field\", name: \"transitionDuration\", static: false, private: false, access: { has: obj => \"transitionDuration\" in obj, get: obj => obj.transitionDuration, set: (obj, value) => { obj.transitionDuration = value; } }, metadata: _metadata }, _transitionDuration_initializers, _transitionDuration_extraInitializers);\n __esDecorate(null, null, _stagger_decorators, { kind: \"field\", name: \"stagger\", static: false, private: false, access: { has: obj => \"stagger\" in obj, get: obj => obj.stagger, set: (obj, value) => { obj.stagger = value; } }, metadata: _metadata }, _stagger_initializers, _stagger_extraInitializers);\n __esDecorate(null, null, _resize_decorators, { kind: \"field\", name: \"resize\", static: false, private: false, access: { has: obj => \"resize\" in obj, get: obj => obj.resize, set: (obj, value) => { obj.resize = value; } }, metadata: _metadata }, _resize_initializers, _resize_extraInitializers);\n __esDecorate(null, null, _draggable_decorators, { kind: \"field\", name: \"draggable\", static: false, private: false, access: { has: obj => \"draggable\" in obj, get: obj => obj.draggable, set: (obj, value) => { obj.draggable = value; } }, metadata: _metadata }, _draggable_initializers, _draggable_extraInitializers);\n __esDecorate(null, null, _dragThrottle_decorators, { kind: \"field\", name: \"dragThrottle\", static: false, private: false, access: { has: obj => \"dragThrottle\" in obj, get: obj => obj.dragThrottle, set: (obj, value) => { obj.dragThrottle = value; } }, metadata: _metadata }, _dragThrottle_initializers, _dragThrottle_extraInitializers);\n __esDecorate(null, null, _container_decorators, { kind: \"field\", name: \"container\", static: false, private: false, access: { has: obj => \"container\" in obj, get: obj => obj.container, set: (obj, value) => { obj.container = value; } }, metadata: _metadata }, _container_initializers, _container_extraInitializers);\n __esDecorate(null, null, _slotElement_decorators, { kind: \"field\", name: \"slotElement\", static: false, private: false, access: { has: obj => \"slotElement\" in obj, get: obj => obj.slotElement, set: (obj, value) => { obj.slotElement = value; } }, metadata: _metadata }, _slotElement_initializers, _slotElement_extraInitializers);\n __esDecorate(null, null, _dropPlaceholder_decorators, { kind: \"field\", name: \"dropPlaceholder\", static: false, private: false, access: { has: obj => \"dropPlaceholder\" in obj, get: obj => obj.dropPlaceholder, set: (obj, value) => { obj.dropPlaceholder = value; } }, metadata: _metadata }, _dropPlaceholder_initializers, _dropPlaceholder_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n onReady() {\n this.collectItems();\n this.setupResizeObserver();\n if (this.draggable) {\n this.setAttribute('draggable', '');\n this.setupDragListeners();\n }\n this.layout();\n setTimeout(() => this.setAttribute('ready', ''), 10);\n }\n onDispose() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n this.itemResizeObserver?.disconnect();\n this.itemResizeObserver = null;\n this.teardownDragListeners();\n }\n // -- Property watchers ----------------------------------------------------\n onGapChange() {\n this.style.setProperty('--binpack-gap', this.gap);\n this.scheduleLayout();\n }\n onTransitionDurationChange() {\n this.style.setProperty('--binpack-transition-duration', this.transitionDuration);\n }\n onColumnWidthChange() {\n this.scheduleLayout();\n }\n onRowHeightChange() {\n this.scheduleLayout();\n }\n onHorizontalChange() {\n this.scheduleLayout();\n }\n onOriginLeftChange() {\n this.scheduleLayout();\n }\n onOriginTopChange() {\n this.scheduleLayout();\n }\n onResizeChange() {\n if (this.resize) {\n this.setupResizeObserver();\n }\n else {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n }\n onDraggableChange() {\n if (this.draggable) {\n this.setAttribute('draggable', '');\n this.setupDragListeners();\n }\n else {\n this.removeAttribute('draggable');\n this.teardownDragListeners();\n }\n }\n // -- Events ---------------------------------------------------------------\n emitLayoutComplete() {\n return { items: [...this.items] };\n }\n emitFitComplete(item, x, y) {\n return { item, x, y };\n }\n emitDragItemPositioned(item, x, y) {\n return { item, x, y };\n }\n // -- Public API -----------------------------------------------------------\n layout() {\n this.performLayout();\n }\n fit(element, x, y) {\n if (!this.items.includes(element))\n return;\n if (x !== undefined && y !== undefined) {\n this.positionItem(element, x, y, 0);\n }\n // Re-layout remaining items around the fitted one\n this.performLayout(element);\n const rect = element.getBoundingClientRect();\n const containerRect = this.getBoundingClientRect();\n const finalX = rect.left - containerRect.left;\n const finalY = rect.top - containerRect.top;\n this.emitFitComplete(element, finalX, finalY);\n }\n reloadItems() {\n this.collectItems();\n this.observeItems();\n this.scheduleLayout();\n }\n stamp(elements) {\n const els = Array.isArray(elements) ? elements : [elements];\n els.forEach(el => this.stampedElements.add(el));\n this.scheduleLayout();\n }\n unstamp(elements) {\n const els = Array.isArray(elements) ? elements : [elements];\n els.forEach(el => this.stampedElements.delete(el));\n this.scheduleLayout();\n }\n getItemElements() {\n return [...this.items];\n }\n getLayout() {\n const layout = {};\n const gapPx = this.getGapPixels();\n const hasGrid = this.columnWidth > 0 || this.rowHeight > 0;\n let order = 0;\n for (const item of this.items) {\n const name = item.getAttribute('name');\n if (!name)\n continue;\n const entry = { order: order++ };\n if (item.hasAttribute('hidden')) {\n entry.hidden = true;\n }\n if (hasGrid && !entry.hidden) {\n const match = item.style.transform.match(/translate\\(([^,]+)px,\\s*([^)]+)px\\)/);\n if (match) {\n const x = parseFloat(match[1]);\n const y = parseFloat(match[2]);\n if (this.columnWidth > 0) {\n entry.col = Math.round(x / (this.columnWidth + gapPx));\n }\n if (this.rowHeight > 0) {\n entry.row = Math.round(y / (this.rowHeight + gapPx));\n }\n }\n }\n layout[name] = entry;\n }\n return layout;\n }\n setLayout(layout) {\n // Store for late-arriving items\n this.pendingLayout = layout;\n this.applyPendingLayout();\n this.performLayout();\n }\n applyPendingLayout() {\n if (!this.pendingLayout)\n return;\n const layout = this.pendingLayout;\n const entries = Object.entries(layout).sort((a, b) => a[1].order - b[1].order);\n const namedItems = new Map();\n const unnamed = [];\n for (const item of this.items) {\n const name = item.getAttribute('name');\n if (name) {\n namedItems.set(name, item);\n }\n else {\n unnamed.push(item);\n }\n }\n // Reorder items: layout-ordered named items first, then unnamed in original order\n const reordered = [];\n for (const [name, entry] of entries) {\n const item = namedItems.get(name);\n if (!item)\n continue;\n namedItems.delete(name);\n // Apply hidden state\n if (entry.hidden) {\n item.setAttribute('hidden', '');\n }\n else {\n item.removeAttribute('hidden');\n }\n reordered.push(item);\n }\n // Remaining named items not in layout (new items added after save)\n for (const item of namedItems.values()) {\n item.removeAttribute('hidden');\n reordered.push(item);\n }\n // Unnamed items at the end\n reordered.push(...unnamed);\n // Reorder DOM to match\n for (const item of reordered) {\n this.appendChild(item);\n }\n this.items = reordered;\n }\n // -- Template & Styles ----------------------------------------------------\n template() {\n return html `\n <div class=\"binpack\" part=\"base\" role=\"list\">\n <slot @slotchange=\"${() => this.handleSlotChange()}\"></slot>\n <div class=\"binpack-drop-placeholder\"></div>\n </div>\n `;\n }\n componentStyles() {\n return css `${cssContent}`;\n }\n // -- Private helpers ------------------------------------------------------\n handleSlotChange() {\n this.collectItems();\n this.observeItems();\n // If a layout was explicitly set, apply ordering to any new items\n if (this.pendingLayout) {\n this.applyPendingLayout();\n }\n this.scheduleLayout();\n }\n collectItems() {\n if (!this.slotElement)\n return;\n this.items = this.slotElement.assignedElements({ flatten: true })\n .filter(el => el instanceof HTMLElement);\n }\n setupResizeObserver() {\n if (!this.resize)\n return;\n if (this.resizeObserver)\n return;\n this.resizeObserver = new ResizeObserver(() => {\n this.scheduleLayout();\n });\n this.resizeObserver.observe(this);\n this.observeItems();\n }\n observeItems() {\n this.itemResizeObserver?.disconnect();\n this.itemResizeObserver = new ResizeObserver(() => {\n this.scheduleLayout();\n });\n for (const item of this.items) {\n this.itemResizeObserver.observe(item);\n }\n }\n scheduleLayout() {\n if (this.layoutScheduled)\n return;\n this.layoutScheduled = true;\n requestAnimationFrame(() => {\n this.layoutScheduled = false;\n this.performLayout();\n });\n }\n getGapPixels() {\n // Parse gap string to pixels\n const gap = this.gap;\n // Fast path for common values\n if (gap.endsWith('px')) {\n const val = parseFloat(gap);\n if (!isNaN(val))\n return val;\n }\n if (gap.endsWith('rem')) {\n const val = parseFloat(gap);\n if (!isNaN(val)) {\n const fontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;\n return val * fontSize;\n }\n }\n // Fallback: measure via DOM\n const temp = document.createElement('div');\n temp.style.position = 'absolute';\n temp.style.visibility = 'hidden';\n temp.style.width = gap;\n document.body.appendChild(temp);\n const px = temp.getBoundingClientRect().width;\n temp.remove();\n return px;\n }\n performLayout(fittedElement) {\n const containerWidth = this.clientWidth;\n const containerHeight = this.clientHeight;\n const gapPx = this.getGapPixels();\n // Packer dimensions include one extra gutter so edge items fit.\n // Vertical: constrained by container width, infinite height.\n // Horizontal: constrained by container height, infinite width.\n const packWidth = this.horizontal ? 100000 : containerWidth + gapPx;\n const packHeight = this.horizontal ? containerHeight + gapPx : 100000;\n const packer = new Packer(packWidth, packHeight, this.horizontal);\n // Mark stamped elements as occupied in the packer\n for (const stamped of this.stampedElements) {\n let stampRect;\n if (stamped === this.dragItem) {\n // Use the computed drop position, not the cursor position\n stampRect = {\n x: this.dragItemRect.x,\n y: this.dragItemRect.y,\n width: this.dragItemRect.width + gapPx,\n height: this.dragItemRect.height + gapPx,\n };\n }\n else {\n const rect = stamped.getBoundingClientRect();\n const containerRect = this.getBoundingClientRect();\n stampRect = {\n x: rect.left - containerRect.left,\n y: rect.top - containerRect.top,\n width: rect.width + gapPx,\n height: rect.height + gapPx,\n };\n }\n packer.placed(stampRect);\n }\n // If a fitted element is specified, mark it as placed first\n if (fittedElement) {\n const rect = fittedElement.getBoundingClientRect();\n const containerRect = this.getBoundingClientRect();\n const fitRect = {\n x: rect.left - containerRect.left,\n y: rect.top - containerRect.top,\n width: rect.width + gapPx,\n height: rect.height + gapPx,\n };\n packer.placed(fitRect);\n }\n let maxExtent = 0;\n let staggerIndex = 0;\n for (const item of this.items) {\n if (this.stampedElements.has(item))\n continue;\n if (item === fittedElement)\n continue;\n if (item.hasAttribute('hidden'))\n continue;\n const itemWidth = item.offsetWidth + gapPx;\n const itemHeight = item.offsetHeight + gapPx;\n const position = packer.pack(itemWidth, itemHeight, this.columnWidth, this.rowHeight, gapPx);\n if (position) {\n let x = position.x;\n let y = position.y;\n // Handle origin direction\n if (!this.originLeft) {\n x = containerWidth - x - item.offsetWidth;\n }\n if (!this.originTop) {\n y = containerHeight - y - item.offsetHeight;\n }\n this.positionItem(item, x, y, this.stagger > 0 ? staggerIndex * this.stagger : 0);\n const extent = this.horizontal\n ? position.x + itemWidth\n : position.y + itemHeight;\n if (extent > maxExtent)\n maxExtent = extent;\n staggerIndex++;\n }\n }\n // Set container size, subtracting trailing gutter\n const containerSize = Math.max(0, maxExtent - gapPx);\n if (this.container) {\n if (this.horizontal) {\n this.container.style.width = `${containerSize}px`;\n this.container.style.height = '';\n }\n else {\n this.container.style.height = `${containerSize}px`;\n this.container.style.width = '';\n }\n }\n this.emitLayoutComplete();\n }\n positionItem(item, x, y, delay) {\n if (delay > 0) {\n item.style.transitionDelay = `${delay}ms`;\n }\n else {\n item.style.transitionDelay = '';\n }\n item.style.transform = `translate(${x}px, ${y}px)`;\n }\n // -- Drag implementation --------------------------------------------------\n setupDragListeners() {\n this.addEventListener('pointerdown', this.onPointerDown);\n }\n teardownDragListeners() {\n this.removeEventListener('pointerdown', this.onPointerDown);\n if (this.boundPointerMove) {\n document.removeEventListener('pointermove', this.boundPointerMove);\n this.boundPointerMove = null;\n }\n if (this.boundPointerUp) {\n document.removeEventListener('pointerup', this.boundPointerUp);\n this.boundPointerUp = null;\n }\n }\n dragItemStart(item, e) {\n const containerRect = this.getBoundingClientRect();\n // Get the item's current position from its transform\n const itemRect = item.getBoundingClientRect();\n const currentX = itemRect.left - containerRect.left;\n const currentY = itemRect.top - containerRect.top;\n this.dragItem = item;\n this.dragItemRect = {\n x: currentX,\n y: currentY,\n width: item.offsetWidth,\n height: item.offsetHeight,\n };\n this.dragStartX = currentX;\n this.dragStartY = currentY;\n this.dragOffsetX = e.clientX - itemRect.left;\n this.dragOffsetY = e.clientY - itemRect.top;\n // Stamp the dragged item so layout flows around it\n this.stamp(item);\n this.dragItemCount++;\n // Add dragging class\n item.classList.add('binpack-dragging');\n item.style.transition = 'none';\n // Show placeholder\n this.showPlaceholder(item);\n // Compute shift targets\n this.updateShiftTargets();\n // Bind move/up to document\n this.boundPointerMove = (ev) => this.onPointerMove(ev);\n this.boundPointerUp = (ev) => this.onPointerUp(ev);\n document.addEventListener('pointermove', this.boundPointerMove);\n document.addEventListener('pointerup', this.boundPointerUp);\n // Capture pointer for reliable tracking\n try {\n item.setPointerCapture(e.pointerId);\n }\n catch (_) { /* synthetic events */ }\n }\n onPointerMove(e) {\n if (!this.dragItem)\n return;\n const containerRect = this.getBoundingClientRect();\n const x = e.clientX - containerRect.left - this.dragOffsetX;\n const y = e.clientY - containerRect.top - this.dragOffsetY;\n // Move the dragged item directly (no transition)\n this.dragItem.style.transform = `translate(${x}px, ${y}px)`;\n // Throttled layout update\n const now = Date.now();\n const isThrottled = this.dragTime && (now - this.dragTime) < this.dragThrottle;\n const doShift = () => {\n this.shiftToNearest(x, y);\n this.positionPlaceholder();\n this.performLayout();\n };\n if (isThrottled) {\n if (this.dragTimeoutId !== null)\n clearTimeout(this.dragTimeoutId);\n this.dragTimeoutId = setTimeout(doShift, this.dragThrottle);\n }\n else {\n doShift();\n this.dragTime = now;\n }\n }\n onPointerUp(e) {\n if (!this.dragItem)\n return;\n const item = this.dragItem;\n // Clean up listeners\n if (this.boundPointerMove) {\n document.removeEventListener('pointermove', this.boundPointerMove);\n this.boundPointerMove = null;\n }\n if (this.boundPointerUp) {\n document.removeEventListener('pointerup', this.boundPointerUp);\n this.boundPointerUp = null;\n }\n if (this.dragTimeoutId !== null) {\n clearTimeout(this.dragTimeoutId);\n this.dragTimeoutId = null;\n }\n // Add positioning class, remove dragging\n item.classList.remove('binpack-dragging');\n item.classList.add('binpack-positioning');\n item.style.transition = '';\n // Animate to final position\n const finalX = this.dragItemRect.x;\n const finalY = this.dragItemRect.y;\n const onTransitionEnd = () => {\n item.removeEventListener('transitionend', onTransitionEnd);\n item.classList.remove('binpack-positioning');\n this.hidePlaceholder();\n this.emitDragItemPositioned(item, finalX, finalY);\n };\n item.addEventListener('transitionend', onTransitionEnd);\n // Move to final position (will animate because we removed transition: none)\n item.style.transform = `translate(${finalX}px, ${finalY}px)`;\n // Final layout\n this.dragItemCount = Math.max(0, this.dragItemCount - 1);\n this.unstamp(item);\n this.dragItem = null;\n // Sort items by visual position\n this.sortItemsByPosition();\n this.performLayout();\n // Safety: if no transition fires (same position), clean up after timeout\n setTimeout(() => {\n if (item.classList.contains('binpack-positioning')) {\n item.classList.remove('binpack-positioning');\n this.hidePlaceholder();\n }\n }, parseFloat(this.transitionDuration) * 1000 + 100);\n }\n updateShiftTargets() {\n if (!this.dragItem)\n return;\n const gapPx = this.getGapPixels();\n const containerWidth = this.clientWidth;\n const containerHeight = this.clientHeight;\n const packWidth = this.horizontal ? 100000 : containerWidth + gapPx;\n const packHeight = this.horizontal ? containerHeight + gapPx : 100000;\n const shiftPacker = new Packer(packWidth, packHeight, this.horizontal);\n // Pack stamped elements (except the dragged item, which is stamped but should be excluded)\n for (const stamped of this.stampedElements) {\n if (stamped === this.dragItem)\n continue;\n const rect = stamped.getBoundingClientRect();\n const containerRect = this.getBoundingClientRect();\n const stampRect = {\n x: rect.left - containerRect.left,\n y: rect.top - containerRect.top,\n width: rect.width + gapPx,\n height: rect.height + gapPx,\n };\n shiftPacker.placed(stampRect);\n }\n this.shiftTargetKeys = [];\n this.shiftTargets = [];\n const isHoriz = this.horizontal;\n const measure = isHoriz ? 'height' : 'width';\n const segment = isHoriz\n ? (this.rowHeight ? this.rowHeight + gapPx : 0)\n : (this.columnWidth ? this.columnWidth + gapPx : 0);\n const dropItemMeasure = isHoriz ? this.dragItemRect.height + gapPx : this.dragItemRect.width + gapPx;\n let boundsSize;\n if (segment) {\n const segmentSpan = Math.ceil(dropItemMeasure / segment);\n const segs = Math.floor((shiftPacker[measure] + gapPx) / segment);\n boundsSize = (segs - segmentSpan) * segment;\n for (let i = 0; i < segs; i++) {\n const ix = isHoriz ? 0 : i * segment;\n const iy = isHoriz ? i * segment : 0;\n this.addShiftTarget(ix, iy, boundsSize, isHoriz);\n }\n }\n else {\n boundsSize = (shiftPacker[measure] + gapPx) - dropItemMeasure;\n this.addShiftTarget(0, 0, boundsSize, isHoriz);\n }\n // Pack each non-dragged, non-stamped, non-hidden item and add targets at corners\n for (const item of this.items) {\n if (this.stampedElements.has(item))\n continue;\n if (item === this.dragItem)\n continue;\n if (item.hasAttribute('hidden'))\n continue;\n const itemW = item.offsetWidth + gapPx;\n const itemH = item.offsetHeight + gapPx;\n const pos = shiftPacker.pack(itemW, itemH, this.columnWidth, this.rowHeight, gapPx);\n if (pos) {\n // Top-left corner\n this.addShiftTarget(pos.x, pos.y, boundsSize, isHoriz);\n // Bottom-left (vertical) or top-right (horizontal)\n const cx = isHoriz ? pos.x + itemW : pos.x;\n const cy = isHoriz ? pos.y : pos.y + itemH;\n this.addShiftTarget(cx, cy, boundsSize, isHoriz);\n if (segment) {\n const itemMeasure = isHoriz ? itemH : itemW;\n const segSpan = Math.round(itemMeasure / segment);\n for (let i = 1; i < segSpan; i++) {\n const sx = isHoriz ? cx : pos.x + segment * i;\n const sy = isHoriz ? pos.y + segment * i : cy;\n this.addShiftTarget(sx, sy, boundsSize, isHoriz);\n }\n }\n }\n }\n }\n addShiftTarget(x, y, boundsSize, isHoriz) {\n const check = isHoriz ? y : x;\n if (check !== 0 && check > boundsSize)\n return;\n const key = `${x},${y}`;\n if (this.shiftTargetKeys.includes(key))\n return;\n this.shiftTargetKeys.push(key);\n this.shiftTargets.push({ x, y });\n }\n shiftToNearest(x, y) {\n let minDist = Infinity;\n let nearest = this.shiftTargets[0];\n for (const target of this.shiftTargets) {\n const dx = target.x - x;\n const dy = target.y - y;\n const dist = dx * dx + dy * dy; // skip sqrt, just compare\n if (dist < minDist) {\n minDist = dist;\n nearest = target;\n }\n }\n if (nearest) {\n this.dragItemRect.x = nearest.x;\n this.dragItemRect.y = nearest.y;\n }\n }\n showPlaceholder(item) {\n if (!this.dropPlaceholder)\n return;\n this.dropPlaceholder.style.width = `${item.offsetWidth}px`;\n this.dropPlaceholder.style.height = `${item.offsetHeight}px`;\n this.dropPlaceholder.classList.add('visible');\n this.positionPlaceholder();\n }\n positionPlaceholder() {\n if (!this.dropPlaceholder)\n return;\n this.dropPlaceholder.style.transform = `translate(${this.dragItemRect.x}px, ${this.dragItemRect.y}px)`;\n }\n hidePlaceholder() {\n if (!this.dropPlaceholder)\n return;\n this.dropPlaceholder.classList.remove('visible');\n }\n sortItemsByPosition() {\n const getPos = (el) => {\n const match = el.style.transform.match(/translate\\(([^,]+)px,\\s*([^)]+)px\\)/);\n if (!match)\n return { x: 0, y: 0 };\n return { x: parseFloat(match[1]), y: parseFloat(match[2]) };\n };\n if (this.horizontal) {\n this.items.sort((a, b) => {\n const pa = getPos(a);\n const pb = getPos(b);\n return pa.x - pb.x || pa.y - pb.y;\n });\n }\n else {\n this.items.sort((a, b) => {\n const pa = getPos(a);\n const pb = getPos(b);\n return pa.y - pb.y || pa.x - pb.x;\n });\n }\n }\n });\n return _classThis;\n})();\n\nexport { SniceBinpack };\n//# sourceMappingURL=snice-binpack.js.map\n"],"names":["__esDecorate","ctor","descriptorIn","decorators","contextIn","initializers","extraInitializers","accept","f","TypeError","_","kind","key","target","prototype","descriptor","Object","getOwnPropertyDescriptor","name","done","i","length","context","p","access","addInitializer","push","result","get","set","init","unshift","defineProperty","__runInitializers","thisArg","value","useValue","arguments","call","SuppressedError","rectContains","outer","inner","x","y","width","height","rectOverlaps","a","b","canFit","space","item","getMaximalFreeRects","placed","rects","placedBottom","spaceBottom","placedRight","spaceRight","Packer","constructor","horizontal","this","spaces","applyGrid","measurement","gridSize","gutter","gridWithGutter","remainder","Math","pack","itemWidth","itemHeight","columnWidth","rowHeight","w","h","min","newSpaces","subs","mergeSortSpaces","filter","arr","j","sort","SniceBinpack","_classDescriptor","_classThis","_gap_decorators","_columnWidth_decorators","_rowHeight_decorators","_horizontal_decorators","_originLeft_decorators","_originTop_decorators","_transitionDuration_decorators","_stagger_decorators","_resize_decorators","_draggable_decorators","_dragThrottle_decorators","_container_decorators","_slotElement_decorators","_dropPlaceholder_decorators","_onReady_decorators","_onDispose_decorators","_onGapChange_decorators","_onTransitionDurationChange_decorators","_onColumnWidthChange_decorators","_onRowHeightChange_decorators","_onHorizontalChange_decorators","_onOriginLeftChange_decorators","_onOriginTopChange_decorators","_onResizeChange_decorators","_onDraggableChange_decorators","_emitLayoutComplete_decorators","_emitFitComplete_decorators","_emitDragItemPositioned_decorators","_template_decorators","_componentStyles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_gap_initializers","_gap_extraInitializers","_columnWidth_initializers","_columnWidth_extraInitializers","_rowHeight_initializers","_rowHeight_extraInitializers","_horizontal_initializers","_horizontal_extraInitializers","_originLeft_initializers","_originLeft_extraInitializers","_originTop_initializers","_originTop_extraInitializers","_transitionDuration_initializers","_transitionDuration_extraInitializers","_stagger_initializers","_stagger_extraInitializers","_resize_initializers","_resize_extraInitializers","_draggable_initializers","_draggable_extraInitializers","_dragThrottle_initializers","_dragThrottle_extraInitializers","_container_initializers","_container_extraInitializers","_slotElement_initializers","_slotElement_extraInitializers","_dropPlaceholder_initializers","_dropPlaceholder_extraInitializers","super","gap","originLeft","originTop","transitionDuration","stagger","resize","draggable","dragThrottle","container","slotElement","dropPlaceholder","items","stampedElements","Set","resizeObserver","itemResizeObserver","layoutScheduled","dragItemCount","shiftTargets","shiftTargetKeys","dragItem","dragItemRect","dragStartX","dragStartY","dragOffsetX","dragOffsetY","dragTime","dragTimeoutId","boundPointerMove","boundPointerUp","pendingLayout","onPointerDown","e","button","find","el","contains","has","preventDefault","dragItemStart","_metadata","Symbol","metadata","create","property","type","Number","attribute","Boolean","query","ready","dispose","watch","dispatch","bubbles","composed","render","styles","static","private","obj","onReady","onDispose","onGapChange","onTransitionDurationChange","onColumnWidthChange","onRowHeightChange","onHorizontalChange","onOriginLeftChange","onOriginTopChange","onResizeChange","onDraggableChange","emitLayoutComplete","emitFitComplete","emitDragItemPositioned","template","componentStyles","enumerable","configurable","writable","collectItems","setupResizeObserver","setAttribute","setupDragListeners","layout","setTimeout","disconnect","teardownDragListeners","style","setProperty","scheduleLayout","removeAttribute","performLayout","fit","includes","undefined","positionItem","rect","getBoundingClientRect","containerRect","finalX","left","finalY","top","reloadItems","observeItems","stamp","elements","Array","isArray","forEach","add","unstamp","delete","getItemElements","getLayout","gapPx","getGapPixels","hasGrid","order","getAttribute","entry","hasAttribute","hidden","match","transform","parseFloat","col","round","row","setLayout","applyPendingLayout","entries","namedItems","Map","unnamed","reordered","values","appendChild","html","handleSlotChange","css","assignedElements","flatten","ResizeObserver","observe","requestAnimationFrame","endsWith","val","isNaN","getComputedStyle","document","documentElement","fontSize","temp","createElement","position","visibility","body","px","remove","fittedElement","containerWidth","clientWidth","containerHeight","clientHeight","packWidth","packHeight","packer","stamped","stampRect","fitRect","maxExtent","staggerIndex","offsetWidth","offsetHeight","extent","containerSize","max","delay","transitionDelay","addEventListener","removeEventListener","itemRect","currentX","currentY","clientX","clientY","classList","transition","showPlaceholder","updateShiftTargets","ev","onPointerMove","onPointerUp","setPointerCapture","pointerId","now","Date","doShift","shiftToNearest","positionPlaceholder","clearTimeout","onTransitionEnd","hidePlaceholder","sortItemsByPosition","shiftPacker","isHoriz","measure","segment","dropItemMeasure","boundsSize","segmentSpan","ceil","segs","floor","ix","iy","addShiftTarget","itemW","itemH","pos","cx","cy","itemMeasure","segSpan","sx","sy","check","minDist","Infinity","nearest","dx","dy","dist","getPos","pa","pb"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.27.0
2
+ * snice v4.29.0
3
3
  * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.27.0
2
+ * snice v4.29.0
3
3
  * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.27.0
2
+ * snice v4.29.0
3
3
  * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.27.0
2
+ * snice v4.29.0
3
3
  * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.27.0
2
+ * snice v4.29.0
3
3
  * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.27.0
2
+ * snice v4.29.0
3
3
  * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -11,7 +11,7 @@ CDN build of the Snice button component. Requires the Snice runtime (`snice-runt
11
11
  ```
12
12
 
13
13
  ## Size
14
- - Minified: 17.4 KB
14
+ - Minified: 17.6 KB
15
15
  - Gzipped: 4.6 KB
16
16
 
17
17
  ## Theme
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * snice v4.27.0
2
+ * snice v4.29.0
3
3
  * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
@@ -116,7 +116,7 @@ var SniceButton = (function (exports, snice) {
116
116
  return snice.html `<span class="${className}" part="icon">${icon}</span>`;
117
117
  }
118
118
 
119
- var cssContent = ":host{display:inline-block;position:relative;width:auto;cursor:pointer}:host([disabled]){cursor:not-allowed}.button{display:inline-flex;align-items:center;justify-content:center;width:100%;border:1px solid;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-medium,500);text-decoration:none;user-select:none;white-space:nowrap;vertical-align:middle;padding:0;box-shadow:var(--snice-shadow-xs,0 1px 2px 0 rgb(0 0 0 / .03));transition:color var(--snice-transition-fast, 150ms) ease,background-color var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease,box-shadow var(--snice-transition-fast, 150ms) ease,transform var(--snice-transition-fast, 150ms) cubic-bezier(.3, 0, .2, 1);cursor:inherit;position:relative}.button::before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--snice-gradient-button,none);pointer-events:none}.button:active{transition:color 50ms,background-color 50ms,border-color 50ms,box-shadow 50ms}.button:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.button--disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.button--small{font-size:var(--snice-font-size-sm, .875rem);height:1.875rem;padding:0 var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--medium{font-size:var(--snice-font-size-md, 1rem);height:2.5rem;padding:0 var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--large{font-size:var(--snice-font-size-lg, 1.125rem);height:3.125rem;padding:0 var(--snice-spacing-lg,1.5rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--default{background-color:var(--snice-color-background,rgb(255 255 255));color:var(--snice-color-text,rgb(23 23 23));border-color:var(--snice-color-border,rgb(226 226 226))}.button--default:hover:not(.button--disabled){background-color:var(--snice-color-background-secondary,rgb(250 250 250));border-color:var(--snice-color-border-hover,rgb(204 204 204));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--default:active:not(.button--disabled){background-color:var(--snice-color-background-tertiary,rgb(248 248 248));border-color:var(--snice-color-border-hover,rgb(204 204 204));box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--primary{background-color:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-primary,rgb(37 99 235))}.button--primary:hover:not(.button--disabled){background-color:var(--snice-color-primary-hover,rgb(29 78 216));border-color:var(--snice-color-primary-hover,rgb(29 78 216));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--primary:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--success{background-color:var(--snice-color-success,rgb(22 163 74));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-success,rgb(22 163 74))}.button--success:hover:not(.button--disabled){background-color:var(--snice-color-success-hover,rgb(21 128 61));border-color:var(--snice-color-success-hover,rgb(21 128 61));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--success:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-success,rgb(22 163 74)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-success,rgb(22 163 74)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--warning{background-color:var(--snice-color-warning,rgb(202 138 4));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-warning,rgb(202 138 4))}.button--warning:hover:not(.button--disabled){background-color:var(--snice-color-warning-hover,rgb(161 98 7));border-color:var(--snice-color-warning-hover,rgb(161 98 7));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--warning:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-warning,rgb(202 138 4)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-warning,rgb(202 138 4)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--danger{background-color:var(--snice-color-danger,rgb(220 38 38));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-danger,rgb(220 38 38))}.button--danger:hover:not(.button--disabled){background-color:var(--snice-color-danger-hover,rgb(185 28 28));border-color:var(--snice-color-danger-hover,rgb(185 28 28));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--danger:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-danger,rgb(220 38 38)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-danger,rgb(220 38 38)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--text{background-color:transparent;color:var(--snice-color-primary,rgb(37 99 235));border-color:transparent;box-shadow:none}.button--text::before{display:none}.button--text:hover:not(.button--disabled){background-color:var(--snice-color-primary-alpha,rgb(37 99 235 / .1));color:var(--snice-color-primary-hover,rgb(29 78 216));box-shadow:none;transform:none}.button--text:active:not(.button--disabled){background-color:var(--snice-color-primary-alpha-strong,rgb(37 99 235 / .15));box-shadow:none;transform:none}.button--outline{box-shadow:none}.button--outline::before{display:none}.button--outline.button--default{background-color:transparent;color:var(--snice-color-text,rgb(23 23 23))}.button--outline.button--primary{background-color:transparent;color:var(--snice-color-primary,rgb(37 99 235))}.button--outline.button--success{background-color:transparent;color:var(--snice-color-success,rgb(22 163 74))}.button--outline.button--warning{background-color:transparent;color:var(--snice-color-warning,rgb(202 138 4))}.button--outline.button--danger{background-color:transparent;color:var(--snice-color-danger,rgb(220 38 38))}.button--outline:hover:not(.button--disabled){background-color:var(--snice-color-border-alpha,rgb(82 82 82 / .1));box-shadow:none;transform:none}.button--outline:active:not(.button--disabled){background-color:var(--snice-color-border-alpha-strong,rgb(82 82 82 / .15));box-shadow:none;transform:none}.button--pill{border-radius:var(--snice-border-radius-pill,9999px)}.button--circle{border-radius:var(--snice-border-radius-circle,50%);width:var(--size);padding:0}.button--small.button--circle{--size:1.875rem}.button--medium.button--circle{--size:2.5rem}.button--large.button--circle{--size:3.125rem}.button--loading{position:relative;cursor:wait}.button--loading .label{visibility:hidden}.spinner{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:1em;height:1em}.button--loading .spinner{display:block}.spinner::after{content:'';display:block;width:100%;height:100%;box-sizing:border-box;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-slot{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25em;height:1.25em;line-height:1}.icon-slot:empty{display:none}.icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25em;height:1.25em;line-height:1}.icon img{width:100%;height:100%;object-fit:contain}.icon svg{width:100%;height:100%}.icon-slot ::slotted(*){display:flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;font-size:1.25em;line-height:1}.icon-slot ::slotted(svg){width:1.25em;height:1.25em}.icon-slot ::slotted(img){width:1.25em;height:1.25em;object-fit:contain}.button--icon-start .icon,.button--icon-start .icon-slot{margin-right:.5em}.button--icon-end .icon,.button--icon-end .icon-slot{margin-left:.5em}.button--circle .icon,.button--circle .icon-slot{margin:0}";
119
+ var cssContent = ":host{display:inline-block;position:relative;width:auto;cursor:pointer}:host([disabled]){cursor:not-allowed}.button{display:inline-flex;align-items:center;justify-content:center;width:100%;border:1px solid;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-medium,500);text-decoration:none;user-select:none;white-space:nowrap;vertical-align:middle;padding:0;box-shadow:var(--snice-shadow-xs,0 1px 2px 0 rgb(0 0 0 / .03));transition:color var(--snice-transition-fast, 150ms) ease,background-color var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease,box-shadow var(--snice-transition-fast, 150ms) ease,transform var(--snice-transition-fast, 150ms) cubic-bezier(.3, 0, .2, 1);cursor:inherit;position:relative}.button::before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--snice-gradient-button,none);pointer-events:none}.button:active{transition:color 50ms,background-color 50ms,border-color 50ms,box-shadow 50ms}.button:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.button--disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.button--small{font-size:var(--snice-font-size-sm, .875rem);height:1.875rem;padding:0 var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--medium{font-size:var(--snice-font-size-md, 1rem);height:2.5rem;padding:0 var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--large{font-size:var(--snice-font-size-lg, 1.125rem);height:3.125rem;padding:0 var(--snice-spacing-lg,1.5rem);border-radius:var(--snice-border-radius-md,.25rem)}.button--default{background-color:var(--snice-color-background,rgb(255 255 255));color:var(--snice-color-text,rgb(23 23 23));border-color:var(--snice-color-border,rgb(226 226 226))}.button--default:hover:not(.button--disabled){background-color:var(--snice-color-background-secondary,rgb(250 250 250));border-color:var(--snice-color-border-hover,rgb(204 204 204));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--default:active:not(.button--disabled){background-color:var(--snice-color-background-tertiary,rgb(248 248 248));border-color:var(--snice-color-border-hover,rgb(204 204 204));box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--primary{background-color:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-primary,rgb(37 99 235))}.button--primary:hover:not(.button--disabled){background-color:var(--snice-color-primary-hover,rgb(29 78 216));border-color:var(--snice-color-primary-hover,rgb(29 78 216));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--primary:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--success{background-color:var(--snice-color-success,rgb(22 163 74));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-success,rgb(22 163 74))}.button--success:hover:not(.button--disabled){background-color:var(--snice-color-success-hover,rgb(21 128 61));border-color:var(--snice-color-success-hover,rgb(21 128 61));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--success:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-success,rgb(22 163 74)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-success,rgb(22 163 74)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--warning{background-color:var(--snice-color-warning,rgb(202 138 4));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-warning,rgb(202 138 4))}.button--warning:hover:not(.button--disabled){background-color:var(--snice-color-warning-hover,rgb(161 98 7));border-color:var(--snice-color-warning-hover,rgb(161 98 7));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--warning:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-warning,rgb(202 138 4)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-warning,rgb(202 138 4)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--danger{background-color:var(--snice-color-danger,rgb(220 38 38));color:var(--snice-color-text-inverse,rgb(250 250 250));border-color:var(--snice-color-danger,rgb(220 38 38))}.button--danger:hover:not(.button--disabled){background-color:var(--snice-color-danger-hover,rgb(185 28 28));border-color:var(--snice-color-danger-hover,rgb(185 28 28));box-shadow:var(--snice-shadow-sm,0 1px 2px 0 rgb(0 0 0 / .05));transform:translateY(-1px)}.button--danger:active:not(.button--disabled){background-color:color-mix(in srgb,var(--snice-color-danger,rgb(220 38 38)) 85%,#fff);border-color:color-mix(in srgb,var(--snice-color-danger,rgb(220 38 38)) 85%,#fff);box-shadow:var(--snice-shadow-inset-sm,inset 0 1px 2px rgb(0 0 0 / .05));transform:translateY(0)}.button--text{background-color:transparent;color:var(--snice-color-primary,rgb(37 99 235));border-color:transparent;box-shadow:none}.button--text::before{display:none}.button--text:hover:not(.button--disabled){background-color:var(--snice-color-primary-alpha,rgb(37 99 235 / .1));color:var(--snice-color-primary-hover,rgb(29 78 216));box-shadow:none;transform:none}.button--text:active:not(.button--disabled){background-color:var(--snice-color-primary-alpha-strong,rgb(37 99 235 / .15));box-shadow:none;transform:none}.button--outline{box-shadow:none}.button--outline::before{display:none}.button--outline.button--default{background-color:transparent;color:var(--snice-color-text,rgb(23 23 23))}.button--outline.button--primary{background-color:transparent;color:var(--snice-color-primary,rgb(37 99 235))}.button--outline.button--success{background-color:transparent;color:var(--snice-color-success,rgb(22 163 74))}.button--outline.button--warning{background-color:transparent;color:var(--snice-color-warning,rgb(202 138 4))}.button--outline.button--danger{background-color:transparent;color:var(--snice-color-danger,rgb(220 38 38))}.button--outline:hover:not(.button--disabled){background-color:var(--snice-color-border-alpha,rgb(82 82 82 / .1));box-shadow:none;transform:none}.button--outline:active:not(.button--disabled){background-color:var(--snice-color-border-alpha-strong,rgb(82 82 82 / .15));box-shadow:none;transform:none}.button--pill{border-radius:var(--snice-border-radius-pill,9999px)}.button--circle{border-radius:var(--snice-border-radius-circle,50%);width:var(--size);padding:0}.button--small.button--circle{--size:1.875rem}.button--medium.button--circle{--size:2.5rem}.button--large.button--circle{--size:3.125rem}.button--loading{position:relative;cursor:wait}.button--loading .label{visibility:hidden}.spinner{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:1em;height:1em}.button--loading .spinner{display:block}.spinner::after{content:'';display:block;width:100%;height:100%;box-sizing:border-box;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-slot{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25em;height:1.25em;line-height:1;transform:translateY(1px)}.icon-slot:empty{display:none}.icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25em;height:1.25em;line-height:1}.icon img{width:100%;height:100%;object-fit:contain}.icon svg{width:100%;height:100%}.icon-slot ::slotted(*){display:flex;align-items:center;justify-content:center;width:1.25em;height:1.25em;font-size:1.25em;line-height:1}.icon-slot ::slotted(svg){width:1.25em;height:1.25em}.icon-slot ::slotted(img){width:1.25em;height:1.25em;object-fit:contain}.button--icon-start .icon,.button--icon-start .icon-slot{margin-right:.5em}.button--icon-end .icon,.button--icon-end .icon-slot{margin-left:.5em}.button--circle .icon,.button--circle .icon-slot{margin:0;transform:none;width:auto;height:auto}.button--circle .icon-slot ::slotted(*){width:auto;height:auto;font-size:1.25em;line-height:1;display:flex;align-items:center;justify-content:center}";
120
120
 
121
121
  let SniceButton = (() => {
122
122
  let _classDecorators = [snice.element('snice-button', { formAssociated: true })];
@@ -164,6 +164,9 @@ var SniceButton = (function (exports, snice) {
164
164
  let _iconPlacement_decorators;
165
165
  let _iconPlacement_initializers = [];
166
166
  let _iconPlacement_extraInitializers = [];
167
+ let _iconSlotChild_decorators;
168
+ let _iconSlotChild_initializers = [];
169
+ let _iconSlotChild_extraInitializers = [];
167
170
  let _button_decorators;
168
171
  let _button_initializers = [];
169
172
  let _button_extraInitializers = [];
@@ -176,7 +179,6 @@ var SniceButton = (function (exports, snice) {
176
179
  let _iconElement_decorators;
177
180
  let _iconElement_initializers = [];
178
181
  let _iconElement_extraInitializers = [];
179
- let _handleIconSlotChange_decorators;
180
182
  let _render_decorators;
181
183
  let _styles_decorators;
182
184
  (class extends _classSuper {
@@ -196,14 +198,13 @@ var SniceButton = (function (exports, snice) {
196
198
  _download_decorators = [snice.property({ type: String, })];
197
199
  _icon_decorators = [snice.property({ type: String, })];
198
200
  _iconPlacement_decorators = [snice.property({ attribute: 'icon-placement', })];
201
+ _iconSlotChild_decorators = [snice.query('[slot="icon"]', { light: true })];
199
202
  _button_decorators = [snice.query('.button')];
200
203
  _spinner_decorators = [snice.query('.spinner')];
201
204
  _label_decorators = [snice.query('.label')];
202
205
  _iconElement_decorators = [snice.query('.icon')];
203
- _handleIconSlotChange_decorators = [snice.on('slotchange', { target: 'slot[name="icon"]' })];
204
206
  _render_decorators = [snice.render()];
205
207
  _styles_decorators = [snice.styles()];
206
- __esDecorate(this, null, _handleIconSlotChange_decorators, { kind: "method", name: "handleIconSlotChange", static: false, private: false, access: { has: obj => "handleIconSlotChange" in obj, get: obj => obj.handleIconSlotChange }, metadata: _metadata }, null, _instanceExtraInitializers);
207
208
  __esDecorate(this, null, _render_decorators, { kind: "method", name: "render", static: false, private: false, access: { has: obj => "render" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);
208
209
  __esDecorate(this, null, _styles_decorators, { kind: "method", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);
209
210
  __esDecorate(null, null, _variant_decorators, { kind: "field", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
@@ -219,6 +220,7 @@ var SniceButton = (function (exports, snice) {
219
220
  __esDecorate(null, null, _download_decorators, { kind: "field", name: "download", static: false, private: false, access: { has: obj => "download" in obj, get: obj => obj.download, set: (obj, value) => { obj.download = value; } }, metadata: _metadata }, _download_initializers, _download_extraInitializers);
220
221
  __esDecorate(null, null, _icon_decorators, { kind: "field", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
221
222
  __esDecorate(null, null, _iconPlacement_decorators, { kind: "field", name: "iconPlacement", static: false, private: false, access: { has: obj => "iconPlacement" in obj, get: obj => obj.iconPlacement, set: (obj, value) => { obj.iconPlacement = value; } }, metadata: _metadata }, _iconPlacement_initializers, _iconPlacement_extraInitializers);
223
+ __esDecorate(null, null, _iconSlotChild_decorators, { kind: "field", name: "iconSlotChild", static: false, private: false, access: { has: obj => "iconSlotChild" in obj, get: obj => obj.iconSlotChild, set: (obj, value) => { obj.iconSlotChild = value; } }, metadata: _metadata }, _iconSlotChild_initializers, _iconSlotChild_extraInitializers);
222
224
  __esDecorate(null, null, _button_decorators, { kind: "field", name: "button", static: false, private: false, access: { has: obj => "button" in obj, get: obj => obj.button, set: (obj, value) => { obj.button = value; } }, metadata: _metadata }, _button_initializers, _button_extraInitializers);
223
225
  __esDecorate(null, null, _spinner_decorators, { kind: "field", name: "spinner", static: false, private: false, access: { has: obj => "spinner" in obj, get: obj => obj.spinner, set: (obj, value) => { obj.spinner = value; } }, metadata: _metadata }, _spinner_initializers, _spinner_extraInitializers);
224
226
  __esDecorate(null, null, _label_decorators, { kind: "field", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
@@ -244,8 +246,8 @@ var SniceButton = (function (exports, snice) {
244
246
  this.download = (__runInitializers(this, _target_extraInitializers), __runInitializers(this, _download_initializers, ''));
245
247
  this.icon = (__runInitializers(this, _download_extraInitializers), __runInitializers(this, _icon_initializers, ''));
246
248
  this.iconPlacement = (__runInitializers(this, _icon_extraInitializers), __runInitializers(this, _iconPlacement_initializers, 'start'));
247
- this.hasIconSlot = (__runInitializers(this, _iconPlacement_extraInitializers), false);
248
- this.button = __runInitializers(this, _button_initializers, void 0);
249
+ this.iconSlotChild = (__runInitializers(this, _iconPlacement_extraInitializers), __runInitializers(this, _iconSlotChild_initializers, void 0));
250
+ this.button = (__runInitializers(this, _iconSlotChild_extraInitializers), __runInitializers(this, _button_initializers, void 0));
249
251
  this.spinner = (__runInitializers(this, _button_extraInitializers), __runInitializers(this, _spinner_initializers, void 0));
250
252
  this.label = (__runInitializers(this, _spinner_extraInitializers), __runInitializers(this, _label_initializers, void 0));
251
253
  this.iconElement = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _iconElement_initializers, void 0));
@@ -254,9 +256,8 @@ var SniceButton = (function (exports, snice) {
254
256
  this.internals = this.attachInternals();
255
257
  }
256
258
  }
257
- handleIconSlotChange() {
258
- const slot = this.shadowRoot?.querySelector('slot[name="icon"]');
259
- this.hasIconSlot = (slot?.assignedNodes().length ?? 0) > 0;
259
+ get hasIconSlot() {
260
+ return !!this.iconSlotChild;
260
261
  }
261
262
  render() {
262
263
  const hasIcon = this.icon || this.hasIconSlot;