snice 4.9.0 → 4.10.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 (733) hide show
  1. package/adapters/react/app-tiles.d.ts +28 -0
  2. package/adapters/react/app-tiles.d.ts.map +1 -0
  3. package/adapters/react/app-tiles.js +24 -0
  4. package/adapters/react/app-tiles.js.map +1 -0
  5. package/adapters/react/app-tiles.tsx +36 -0
  6. package/adapters/react/book.d.ts +28 -0
  7. package/adapters/react/book.d.ts.map +1 -0
  8. package/adapters/react/book.js +24 -0
  9. package/adapters/react/book.js.map +1 -0
  10. package/adapters/react/book.tsx +36 -0
  11. package/adapters/react/comments.d.ts +29 -0
  12. package/adapters/react/comments.d.ts.map +1 -0
  13. package/adapters/react/comments.js +24 -0
  14. package/adapters/react/comments.js.map +1 -0
  15. package/adapters/react/comments.tsx +37 -0
  16. package/adapters/react/components.d.ts +52 -0
  17. package/adapters/react/components.d.ts.map +1 -1
  18. package/adapters/react/components.js +26 -0
  19. package/adapters/react/components.js.map +1 -1
  20. package/adapters/react/components.ts +52 -0
  21. package/adapters/react/countdown.d.ts +31 -0
  22. package/adapters/react/countdown.d.ts.map +1 -0
  23. package/adapters/react/countdown.js +24 -0
  24. package/adapters/react/countdown.js.map +1 -0
  25. package/adapters/react/countdown.tsx +39 -0
  26. package/adapters/react/cropper.d.ts +29 -0
  27. package/adapters/react/cropper.d.ts.map +1 -0
  28. package/adapters/react/cropper.js +24 -0
  29. package/adapters/react/cropper.js.map +1 -0
  30. package/adapters/react/cropper.tsx +37 -0
  31. package/adapters/react/diff.d.ts +31 -0
  32. package/adapters/react/diff.d.ts.map +1 -0
  33. package/adapters/react/diff.js +24 -0
  34. package/adapters/react/diff.js.map +1 -0
  35. package/adapters/react/diff.tsx +39 -0
  36. package/adapters/react/flip-card.d.ts +28 -0
  37. package/adapters/react/flip-card.d.ts.map +1 -0
  38. package/adapters/react/flip-card.js +24 -0
  39. package/adapters/react/flip-card.js.map +1 -0
  40. package/adapters/react/flip-card.tsx +36 -0
  41. package/adapters/react/flow.d.ts +32 -0
  42. package/adapters/react/flow.d.ts.map +1 -0
  43. package/adapters/react/flow.js +24 -0
  44. package/adapters/react/flow.js.map +1 -0
  45. package/adapters/react/flow.tsx +40 -0
  46. package/adapters/react/gantt.d.ts +27 -0
  47. package/adapters/react/gantt.d.ts.map +1 -0
  48. package/adapters/react/gantt.js +24 -0
  49. package/adapters/react/gantt.js.map +1 -0
  50. package/adapters/react/gantt.tsx +35 -0
  51. package/adapters/react/map.d.ts +30 -0
  52. package/adapters/react/map.d.ts.map +1 -0
  53. package/adapters/react/map.js +24 -0
  54. package/adapters/react/map.js.map +1 -0
  55. package/adapters/react/map.tsx +38 -0
  56. package/adapters/react/markdown.d.ts +26 -0
  57. package/adapters/react/markdown.d.ts.map +1 -0
  58. package/adapters/react/markdown.js +24 -0
  59. package/adapters/react/markdown.js.map +1 -0
  60. package/adapters/react/markdown.tsx +34 -0
  61. package/adapters/react/notification-center.d.ts +26 -0
  62. package/adapters/react/notification-center.d.ts.map +1 -0
  63. package/adapters/react/notification-center.js +24 -0
  64. package/adapters/react/notification-center.js.map +1 -0
  65. package/adapters/react/notification-center.tsx +34 -0
  66. package/adapters/react/org-chart.d.ts +28 -0
  67. package/adapters/react/org-chart.d.ts.map +1 -0
  68. package/adapters/react/org-chart.js +24 -0
  69. package/adapters/react/org-chart.js.map +1 -0
  70. package/adapters/react/org-chart.tsx +36 -0
  71. package/adapters/react/pdf-viewer.d.ts +28 -0
  72. package/adapters/react/pdf-viewer.d.ts.map +1 -0
  73. package/adapters/react/pdf-viewer.js +24 -0
  74. package/adapters/react/pdf-viewer.js.map +1 -0
  75. package/adapters/react/pdf-viewer.tsx +36 -0
  76. package/adapters/react/podcast-player.d.ts +40 -0
  77. package/adapters/react/podcast-player.d.ts.map +1 -0
  78. package/adapters/react/podcast-player.js +24 -0
  79. package/adapters/react/podcast-player.js.map +1 -0
  80. package/adapters/react/podcast-player.tsx +48 -0
  81. package/adapters/react/pricing-table.d.ts +27 -0
  82. package/adapters/react/pricing-table.d.ts.map +1 -0
  83. package/adapters/react/pricing-table.js +24 -0
  84. package/adapters/react/pricing-table.js.map +1 -0
  85. package/adapters/react/pricing-table.tsx +35 -0
  86. package/adapters/react/rating.d.ts +30 -0
  87. package/adapters/react/rating.d.ts.map +1 -0
  88. package/adapters/react/rating.js +24 -0
  89. package/adapters/react/rating.js.map +1 -0
  90. package/adapters/react/rating.tsx +38 -0
  91. package/adapters/react/recipe.d.ts +43 -0
  92. package/adapters/react/recipe.d.ts.map +1 -0
  93. package/adapters/react/recipe.js +24 -0
  94. package/adapters/react/recipe.js.map +1 -0
  95. package/adapters/react/recipe.tsx +51 -0
  96. package/adapters/react/sortable.d.ts +28 -0
  97. package/adapters/react/sortable.d.ts.map +1 -0
  98. package/adapters/react/sortable.js +24 -0
  99. package/adapters/react/sortable.js.map +1 -0
  100. package/adapters/react/sortable.tsx +36 -0
  101. package/adapters/react/spotlight.d.ts +27 -0
  102. package/adapters/react/spotlight.d.ts.map +1 -0
  103. package/adapters/react/spotlight.js +24 -0
  104. package/adapters/react/spotlight.js.map +1 -0
  105. package/adapters/react/spotlight.tsx +35 -0
  106. package/adapters/react/spreadsheet.d.ts +27 -0
  107. package/adapters/react/spreadsheet.d.ts.map +1 -0
  108. package/adapters/react/spreadsheet.js +24 -0
  109. package/adapters/react/spreadsheet.js.map +1 -0
  110. package/adapters/react/spreadsheet.tsx +35 -0
  111. package/adapters/react/tag-input.d.ts +33 -0
  112. package/adapters/react/tag-input.d.ts.map +1 -0
  113. package/adapters/react/tag-input.js +24 -0
  114. package/adapters/react/tag-input.js.map +1 -0
  115. package/adapters/react/tag-input.tsx +41 -0
  116. package/adapters/react/testimonial.d.ts +31 -0
  117. package/adapters/react/testimonial.d.ts.map +1 -0
  118. package/adapters/react/testimonial.js +24 -0
  119. package/adapters/react/testimonial.js.map +1 -0
  120. package/adapters/react/testimonial.tsx +39 -0
  121. package/adapters/react/video-player.d.ts +34 -0
  122. package/adapters/react/video-player.d.ts.map +1 -0
  123. package/adapters/react/video-player.js +24 -0
  124. package/adapters/react/video-player.js.map +1 -0
  125. package/adapters/react/video-player.tsx +42 -0
  126. package/adapters/react/waterfall.d.ts +29 -0
  127. package/adapters/react/waterfall.d.ts.map +1 -0
  128. package/adapters/react/waterfall.js +24 -0
  129. package/adapters/react/waterfall.js.map +1 -0
  130. package/adapters/react/waterfall.tsx +37 -0
  131. package/adapters/react/weather.d.ts +27 -0
  132. package/adapters/react/weather.d.ts.map +1 -0
  133. package/adapters/react/weather.js +24 -0
  134. package/adapters/react/weather.js.map +1 -0
  135. package/adapters/react/weather.tsx +35 -0
  136. package/dist/cdn/accordion/snice-accordion.js +1 -1
  137. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  138. package/dist/cdn/alert/snice-alert.js +1 -1
  139. package/dist/cdn/alert/snice-alert.min.js +1 -1
  140. package/dist/cdn/app-tiles/README.md +27 -0
  141. package/dist/cdn/app-tiles/snice-app-tiles.js +333 -0
  142. package/dist/cdn/app-tiles/snice-app-tiles.js.map +1 -0
  143. package/dist/cdn/app-tiles/snice-app-tiles.min.js +11 -0
  144. package/dist/cdn/app-tiles/snice-app-tiles.min.js.map +1 -0
  145. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  146. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  147. package/dist/cdn/avatar/snice-avatar.js +1 -1
  148. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  149. package/dist/cdn/badge/snice-badge.js +1 -1
  150. package/dist/cdn/badge/snice-badge.min.js +1 -1
  151. package/dist/cdn/banner/snice-banner.js +1 -1
  152. package/dist/cdn/banner/snice-banner.min.js +1 -1
  153. package/dist/cdn/book/README.md +27 -0
  154. package/dist/cdn/book/snice-book.js +353 -0
  155. package/dist/cdn/book/snice-book.js.map +1 -0
  156. package/dist/cdn/book/snice-book.min.js +13 -0
  157. package/dist/cdn/book/snice-book.min.js.map +1 -0
  158. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  159. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  160. package/dist/cdn/button/snice-button.js +1 -1
  161. package/dist/cdn/button/snice-button.min.js +1 -1
  162. package/dist/cdn/calendar/snice-calendar.js +1 -1
  163. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  164. package/dist/cdn/camera/snice-camera.js +1 -1
  165. package/dist/cdn/camera/snice-camera.min.js +1 -1
  166. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  167. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  168. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  169. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  170. package/dist/cdn/card/snice-card.js +1 -1
  171. package/dist/cdn/card/snice-card.min.js +1 -1
  172. package/dist/cdn/carousel/snice-carousel.js +1 -1
  173. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  174. package/dist/cdn/chart/snice-chart.js +1 -1
  175. package/dist/cdn/chart/snice-chart.min.js +1 -1
  176. package/dist/cdn/chat/snice-chat.js +1 -1
  177. package/dist/cdn/chat/snice-chat.min.js +1 -1
  178. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  179. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  180. package/dist/cdn/chip/snice-chip.js +1 -1
  181. package/dist/cdn/chip/snice-chip.min.js +1 -1
  182. package/dist/cdn/code-block/snice-code-block.js +1 -1
  183. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  184. package/dist/cdn/color-display/snice-color-display.js +1 -1
  185. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  186. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  187. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  188. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  189. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  190. package/dist/cdn/comments/README.md +27 -0
  191. package/dist/cdn/comments/snice-comments.js +544 -0
  192. package/dist/cdn/comments/snice-comments.js.map +1 -0
  193. package/dist/cdn/comments/snice-comments.min.js +100 -0
  194. package/dist/cdn/comments/snice-comments.min.js.map +1 -0
  195. package/dist/cdn/countdown/README.md +27 -0
  196. package/dist/cdn/countdown/snice-countdown.js +235 -0
  197. package/dist/cdn/countdown/snice-countdown.js.map +1 -0
  198. package/dist/cdn/countdown/snice-countdown.min.js +14 -0
  199. package/dist/cdn/countdown/snice-countdown.min.js.map +1 -0
  200. package/dist/cdn/cropper/README.md +27 -0
  201. package/dist/cdn/cropper/snice-cropper.js +352 -0
  202. package/dist/cdn/cropper/snice-cropper.js.map +1 -0
  203. package/dist/cdn/cropper/snice-cropper.min.js +25 -0
  204. package/dist/cdn/cropper/snice-cropper.min.js.map +1 -0
  205. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  206. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  207. package/dist/cdn/diff/README.md +27 -0
  208. package/dist/cdn/diff/snice-diff.js +441 -0
  209. package/dist/cdn/diff/snice-diff.js.map +1 -0
  210. package/dist/cdn/diff/snice-diff.min.js +54 -0
  211. package/dist/cdn/diff/snice-diff.min.js.map +1 -0
  212. package/dist/cdn/divider/snice-divider.js +1 -1
  213. package/dist/cdn/divider/snice-divider.min.js +1 -1
  214. package/dist/cdn/doc/snice-doc.js +1 -1
  215. package/dist/cdn/doc/snice-doc.min.js +1 -1
  216. package/dist/cdn/draw/snice-draw.js +1 -1
  217. package/dist/cdn/draw/snice-draw.min.js +1 -1
  218. package/dist/cdn/drawer/snice-drawer.js +1 -1
  219. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  220. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  221. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  222. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  223. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  224. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  225. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  226. package/dist/cdn/flip-card/README.md +27 -0
  227. package/dist/cdn/flip-card/snice-flip-card.js +183 -0
  228. package/dist/cdn/flip-card/snice-flip-card.js.map +1 -0
  229. package/dist/cdn/flip-card/snice-flip-card.min.js +22 -0
  230. package/dist/cdn/flip-card/snice-flip-card.min.js.map +1 -0
  231. package/dist/cdn/flow/README.md +27 -0
  232. package/dist/cdn/flow/snice-flow.js +822 -0
  233. package/dist/cdn/flow/snice-flow.js.map +1 -0
  234. package/dist/cdn/flow/snice-flow.min.js +17 -0
  235. package/dist/cdn/flow/snice-flow.min.js.map +1 -0
  236. package/dist/cdn/funnel/snice-funnel.js +1 -1
  237. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  238. package/dist/cdn/gantt/README.md +27 -0
  239. package/dist/cdn/gantt/snice-gantt.js +436 -0
  240. package/dist/cdn/gantt/snice-gantt.js.map +1 -0
  241. package/dist/cdn/gantt/snice-gantt.min.js +60 -0
  242. package/dist/cdn/gantt/snice-gantt.min.js.map +1 -0
  243. package/dist/cdn/gauge/snice-gauge.js +1 -1
  244. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  245. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  246. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  247. package/dist/cdn/image/snice-image.js +1 -1
  248. package/dist/cdn/image/snice-image.min.js +1 -1
  249. package/dist/cdn/input/snice-input.js +1 -1
  250. package/dist/cdn/input/snice-input.min.js +1 -1
  251. package/dist/cdn/kanban/snice-kanban.js +1 -1
  252. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  253. package/dist/cdn/kpi/snice-kpi.js +1 -1
  254. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  255. package/dist/cdn/layout/snice-layout.js +1 -1
  256. package/dist/cdn/layout/snice-layout.min.js +1 -1
  257. package/dist/cdn/link/snice-link.js +1 -1
  258. package/dist/cdn/link/snice-link.min.js +1 -1
  259. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  260. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  261. package/dist/cdn/list/snice-list.js +1 -1
  262. package/dist/cdn/list/snice-list.min.js +1 -1
  263. package/dist/cdn/location/snice-location.js +1 -1
  264. package/dist/cdn/location/snice-location.min.js +1 -1
  265. package/dist/cdn/login/snice-login.js +1 -1
  266. package/dist/cdn/login/snice-login.min.js +1 -1
  267. package/dist/cdn/map/README.md +27 -0
  268. package/dist/cdn/map/snice-map.js +415 -0
  269. package/dist/cdn/map/snice-map.js.map +1 -0
  270. package/dist/cdn/map/snice-map.min.js +52 -0
  271. package/dist/cdn/map/snice-map.min.js.map +1 -0
  272. package/dist/cdn/markdown/README.md +27 -0
  273. package/dist/cdn/markdown/snice-markdown.js +317 -0
  274. package/dist/cdn/markdown/snice-markdown.js.map +1 -0
  275. package/dist/cdn/markdown/snice-markdown.min.js +11 -0
  276. package/dist/cdn/markdown/snice-markdown.min.js.map +1 -0
  277. package/dist/cdn/masonry/snice-masonry.js +1 -1
  278. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  279. package/dist/cdn/menu/snice-menu.js +1 -1
  280. package/dist/cdn/menu/snice-menu.min.js +1 -1
  281. package/dist/cdn/modal/snice-modal.js +1 -1
  282. package/dist/cdn/modal/snice-modal.min.js +1 -1
  283. package/dist/cdn/music-player/snice-music-player.js +1 -1
  284. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  285. package/dist/cdn/nav/snice-nav.js +1 -1
  286. package/dist/cdn/nav/snice-nav.min.js +1 -1
  287. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  288. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  289. package/dist/cdn/notification-center/README.md +27 -0
  290. package/dist/cdn/notification-center/snice-notification-center.js +204 -0
  291. package/dist/cdn/notification-center/snice-notification-center.js.map +1 -0
  292. package/dist/cdn/notification-center/snice-notification-center.min.js +33 -0
  293. package/dist/cdn/notification-center/snice-notification-center.min.js.map +1 -0
  294. package/dist/cdn/org-chart/README.md +27 -0
  295. package/dist/cdn/org-chart/snice-org-chart.js +294 -0
  296. package/dist/cdn/org-chart/snice-org-chart.js.map +1 -0
  297. package/dist/cdn/org-chart/snice-org-chart.min.js +32 -0
  298. package/dist/cdn/org-chart/snice-org-chart.min.js.map +1 -0
  299. package/dist/cdn/pagination/snice-pagination.js +1 -1
  300. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  301. package/dist/cdn/paint/snice-paint.js +1 -1
  302. package/dist/cdn/paint/snice-paint.min.js +1 -1
  303. package/dist/cdn/pdf-viewer/README.md +27 -0
  304. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +594 -0
  305. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js.map +1 -0
  306. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +88 -0
  307. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js.map +1 -0
  308. package/dist/cdn/podcast-player/README.md +27 -0
  309. package/dist/cdn/podcast-player/snice-podcast-player.js +835 -0
  310. package/dist/cdn/podcast-player/snice-podcast-player.js.map +1 -0
  311. package/dist/cdn/podcast-player/snice-podcast-player.min.js +209 -0
  312. package/dist/cdn/podcast-player/snice-podcast-player.min.js.map +1 -0
  313. package/dist/cdn/pricing-table/README.md +27 -0
  314. package/dist/cdn/pricing-table/snice-pricing-table.js +491 -0
  315. package/dist/cdn/pricing-table/snice-pricing-table.js.map +1 -0
  316. package/dist/cdn/pricing-table/snice-pricing-table.min.js +141 -0
  317. package/dist/cdn/pricing-table/snice-pricing-table.min.js.map +1 -0
  318. package/dist/cdn/progress/snice-progress.js +1 -1
  319. package/dist/cdn/progress/snice-progress.min.js +1 -1
  320. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  321. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  322. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  323. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  324. package/dist/cdn/radio/snice-radio.js +1 -1
  325. package/dist/cdn/radio/snice-radio.min.js +1 -1
  326. package/dist/cdn/rating/README.md +27 -0
  327. package/dist/cdn/rating/snice-rating.js +210 -0
  328. package/dist/cdn/rating/snice-rating.js.map +1 -0
  329. package/dist/cdn/rating/snice-rating.min.js +25 -0
  330. package/dist/cdn/rating/snice-rating.min.js.map +1 -0
  331. package/dist/cdn/recipe/README.md +27 -0
  332. package/dist/cdn/recipe/snice-recipe.js +619 -0
  333. package/dist/cdn/recipe/snice-recipe.js.map +1 -0
  334. package/dist/cdn/recipe/snice-recipe.min.js +185 -0
  335. package/dist/cdn/recipe/snice-recipe.min.js.map +1 -0
  336. package/dist/cdn/runtime/snice-runtime.esm.js +3 -3
  337. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  338. package/dist/cdn/runtime/snice-runtime.esm.min.js +3 -3
  339. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  340. package/dist/cdn/runtime/snice-runtime.js +3 -3
  341. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  342. package/dist/cdn/runtime/snice-runtime.min.js +3 -3
  343. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  344. package/dist/cdn/sankey/snice-sankey.js +1 -1
  345. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  346. package/dist/cdn/select/snice-select.js +1 -1
  347. package/dist/cdn/select/snice-select.min.js +1 -1
  348. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  349. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  350. package/dist/cdn/slider/snice-slider.js +1 -1
  351. package/dist/cdn/slider/snice-slider.min.js +1 -1
  352. package/dist/cdn/sortable/README.md +27 -0
  353. package/dist/cdn/sortable/snice-sortable.js +254 -0
  354. package/dist/cdn/sortable/snice-sortable.js.map +1 -0
  355. package/dist/cdn/sortable/snice-sortable.min.js +12 -0
  356. package/dist/cdn/sortable/snice-sortable.min.js.map +1 -0
  357. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  358. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  359. package/dist/cdn/spinner/snice-spinner.js +1 -1
  360. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  361. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  362. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  363. package/dist/cdn/spotlight/README.md +27 -0
  364. package/dist/cdn/spotlight/snice-spotlight.js +397 -0
  365. package/dist/cdn/spotlight/snice-spotlight.js.map +1 -0
  366. package/dist/cdn/spotlight/snice-spotlight.min.js +8 -0
  367. package/dist/cdn/spotlight/snice-spotlight.min.js.map +1 -0
  368. package/dist/cdn/spreadsheet/README.md +27 -0
  369. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1171 -0
  370. package/dist/cdn/spreadsheet/snice-spreadsheet.js.map +1 -0
  371. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +30 -0
  372. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js.map +1 -0
  373. package/dist/cdn/stepper/snice-stepper.js +1 -1
  374. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  375. package/dist/cdn/switch/snice-switch.js +1 -1
  376. package/dist/cdn/switch/snice-switch.min.js +1 -1
  377. package/dist/cdn/table/snice-table.js +1 -1
  378. package/dist/cdn/table/snice-table.min.js +1 -1
  379. package/dist/cdn/tabs/snice-tabs.js +1 -1
  380. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  381. package/dist/cdn/tag-input/README.md +27 -0
  382. package/dist/cdn/tag-input/snice-tag-input.js +387 -0
  383. package/dist/cdn/tag-input/snice-tag-input.js.map +1 -0
  384. package/dist/cdn/tag-input/snice-tag-input.min.js +65 -0
  385. package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -0
  386. package/dist/cdn/terminal/snice-terminal.js +1 -1
  387. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  388. package/dist/cdn/testimonial/README.md +27 -0
  389. package/dist/cdn/testimonial/snice-testimonial.js +187 -0
  390. package/dist/cdn/testimonial/snice-testimonial.js.map +1 -0
  391. package/dist/cdn/testimonial/snice-testimonial.min.js +21 -0
  392. package/dist/cdn/testimonial/snice-testimonial.min.js.map +1 -0
  393. package/dist/cdn/textarea/snice-textarea.js +1 -1
  394. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  395. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  396. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  397. package/dist/cdn/timeline/snice-timeline.js +1 -1
  398. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  399. package/dist/cdn/timer/snice-timer.js +1 -1
  400. package/dist/cdn/timer/snice-timer.min.js +1 -1
  401. package/dist/cdn/toast/snice-toast.js +1 -1
  402. package/dist/cdn/toast/snice-toast.min.js +1 -1
  403. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  404. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  405. package/dist/cdn/tree/snice-tree.js +1 -1
  406. package/dist/cdn/tree/snice-tree.min.js +1 -1
  407. package/dist/cdn/treemap/snice-treemap.js +1 -1
  408. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  409. package/dist/cdn/video-player/README.md +27 -0
  410. package/dist/cdn/video-player/snice-video-player.js +721 -0
  411. package/dist/cdn/video-player/snice-video-player.js.map +1 -0
  412. package/dist/cdn/video-player/snice-video-player.min.js +153 -0
  413. package/dist/cdn/video-player/snice-video-player.min.js.map +1 -0
  414. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  415. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  416. package/dist/cdn/waterfall/README.md +27 -0
  417. package/dist/cdn/waterfall/snice-waterfall.js +292 -0
  418. package/dist/cdn/waterfall/snice-waterfall.js.map +1 -0
  419. package/dist/cdn/waterfall/snice-waterfall.min.js +12 -0
  420. package/dist/cdn/waterfall/snice-waterfall.min.js.map +1 -0
  421. package/dist/cdn/weather/README.md +27 -0
  422. package/dist/cdn/weather/snice-weather.js +194 -0
  423. package/dist/cdn/weather/snice-weather.js.map +1 -0
  424. package/dist/cdn/weather/snice-weather.min.js +42 -0
  425. package/dist/cdn/weather/snice-weather.min.js.map +1 -0
  426. package/dist/components/app-tiles/snice-app-tiles.d.ts +36 -0
  427. package/dist/components/app-tiles/snice-app-tiles.js +265 -0
  428. package/dist/components/app-tiles/snice-app-tiles.js.map +1 -0
  429. package/dist/components/app-tiles/snice-app-tiles.types.d.ts +22 -0
  430. package/dist/components/book/snice-book.d.ts +46 -0
  431. package/dist/components/book/snice-book.js +285 -0
  432. package/dist/components/book/snice-book.js.map +1 -0
  433. package/dist/components/book/snice-book.types.d.ts +21 -0
  434. package/dist/components/comments/snice-comments.d.ts +62 -0
  435. package/dist/components/comments/snice-comments.js +476 -0
  436. package/dist/components/comments/snice-comments.js.map +1 -0
  437. package/dist/components/comments/snice-comments.types.d.ts +64 -0
  438. package/dist/components/countdown/snice-countdown.d.ts +21 -0
  439. package/dist/components/countdown/snice-countdown.js +168 -0
  440. package/dist/components/countdown/snice-countdown.js.map +1 -0
  441. package/dist/components/countdown/snice-countdown.types.d.ts +18 -0
  442. package/dist/components/cropper/snice-cropper.d.ts +32 -0
  443. package/dist/components/cropper/snice-cropper.js +285 -0
  444. package/dist/components/cropper/snice-cropper.js.map +1 -0
  445. package/dist/components/cropper/snice-cropper.types.d.ts +26 -0
  446. package/dist/components/diff/snice-diff.d.ts +32 -0
  447. package/dist/components/diff/snice-diff.js +374 -0
  448. package/dist/components/diff/snice-diff.js.map +1 -0
  449. package/dist/components/diff/snice-diff.types.d.ts +26 -0
  450. package/dist/components/flip-card/snice-flip-card.d.ts +15 -0
  451. package/dist/components/flip-card/snice-flip-card.js +116 -0
  452. package/dist/components/flip-card/snice-flip-card.js.map +1 -0
  453. package/dist/components/flip-card/snice-flip-card.types.d.ts +16 -0
  454. package/dist/components/flow/snice-flow.d.ts +91 -0
  455. package/dist/components/flow/snice-flow.js +755 -0
  456. package/dist/components/flow/snice-flow.js.map +1 -0
  457. package/dist/components/flow/snice-flow.types.d.ts +64 -0
  458. package/dist/components/gantt/snice-gantt.d.ts +34 -0
  459. package/dist/components/gantt/snice-gantt.js +369 -0
  460. package/dist/components/gantt/snice-gantt.js.map +1 -0
  461. package/dist/components/gantt/snice-gantt.types.d.ts +37 -0
  462. package/dist/components/map/snice-map.d.ts +44 -0
  463. package/dist/components/map/snice-map.js +348 -0
  464. package/dist/components/map/snice-map.js.map +1 -0
  465. package/dist/components/map/snice-map.types.d.ts +41 -0
  466. package/dist/components/markdown/snice-markdown.d.ts +24 -0
  467. package/dist/components/markdown/snice-markdown.js +250 -0
  468. package/dist/components/markdown/snice-markdown.js.map +1 -0
  469. package/dist/components/markdown/snice-markdown.types.d.ts +16 -0
  470. package/dist/components/notification-center/snice-notification-center.d.ts +18 -0
  471. package/dist/components/notification-center/snice-notification-center.js +137 -0
  472. package/dist/components/notification-center/snice-notification-center.js.map +1 -0
  473. package/dist/components/notification-center/snice-notification-center.types.d.ts +24 -0
  474. package/dist/components/org-chart/snice-org-chart.d.ts +28 -0
  475. package/dist/components/org-chart/snice-org-chart.js +227 -0
  476. package/dist/components/org-chart/snice-org-chart.js.map +1 -0
  477. package/dist/components/org-chart/snice-org-chart.types.d.ts +28 -0
  478. package/dist/components/pdf-viewer/pdf.min.mjs +21 -0
  479. package/dist/components/pdf-viewer/pdf.worker.min.mjs +21 -0
  480. package/dist/components/pdf-viewer/snice-pdf-viewer.d.ts +59 -0
  481. package/dist/components/pdf-viewer/snice-pdf-viewer.js +527 -0
  482. package/dist/components/pdf-viewer/snice-pdf-viewer.js.map +1 -0
  483. package/dist/components/pdf-viewer/snice-pdf-viewer.types.d.ts +25 -0
  484. package/dist/components/podcast-player/snice-podcast-player.d.ts +72 -0
  485. package/dist/components/podcast-player/snice-podcast-player.js +768 -0
  486. package/dist/components/podcast-player/snice-podcast-player.js.map +1 -0
  487. package/dist/components/podcast-player/snice-podcast-player.types.d.ts +79 -0
  488. package/dist/components/pricing-table/snice-pricing-table.d.ts +51 -0
  489. package/dist/components/pricing-table/snice-pricing-table.js +422 -0
  490. package/dist/components/pricing-table/snice-pricing-table.js.map +1 -0
  491. package/dist/components/pricing-table/snice-pricing-table.types.d.ts +49 -0
  492. package/dist/components/rating/snice-rating.d.ts +15 -0
  493. package/dist/components/rating/snice-rating.js +143 -0
  494. package/dist/components/rating/snice-rating.js.map +1 -0
  495. package/dist/components/rating/snice-rating.types.d.ts +15 -0
  496. package/dist/components/recipe/snice-recipe.d.ts +53 -0
  497. package/dist/components/recipe/snice-recipe.js +552 -0
  498. package/dist/components/recipe/snice-recipe.js.map +1 -0
  499. package/dist/components/recipe/snice-recipe.types.d.ts +56 -0
  500. package/dist/components/sortable/snice-sortable.d.ts +24 -0
  501. package/dist/components/sortable/snice-sortable.js +187 -0
  502. package/dist/components/sortable/snice-sortable.js.map +1 -0
  503. package/dist/components/sortable/snice-sortable.types.d.ts +20 -0
  504. package/dist/components/spotlight/snice-spotlight.d.ts +42 -0
  505. package/dist/components/spotlight/snice-spotlight.js +330 -0
  506. package/dist/components/spotlight/snice-spotlight.js.map +1 -0
  507. package/dist/components/spotlight/snice-spotlight.types.d.ts +26 -0
  508. package/dist/components/spreadsheet/snice-spreadsheet.d.ts +102 -0
  509. package/dist/components/spreadsheet/snice-spreadsheet.js +1104 -0
  510. package/dist/components/spreadsheet/snice-spreadsheet.js.map +1 -0
  511. package/dist/components/spreadsheet/snice-spreadsheet.types.d.ts +54 -0
  512. package/dist/components/tag-input/snice-tag-input.d.ts +40 -0
  513. package/dist/components/tag-input/snice-tag-input.js +320 -0
  514. package/dist/components/tag-input/snice-tag-input.js.map +1 -0
  515. package/dist/components/tag-input/snice-tag-input.types.d.ts +29 -0
  516. package/dist/components/testimonial/snice-testimonial.d.ts +15 -0
  517. package/dist/components/testimonial/snice-testimonial.js +120 -0
  518. package/dist/components/testimonial/snice-testimonial.js.map +1 -0
  519. package/dist/components/testimonial/snice-testimonial.types.d.ts +10 -0
  520. package/dist/components/video-player/snice-video-player.d.ts +78 -0
  521. package/dist/components/video-player/snice-video-player.js +654 -0
  522. package/dist/components/video-player/snice-video-player.js.map +1 -0
  523. package/dist/components/video-player/snice-video-player.types.d.ts +47 -0
  524. package/dist/components/waterfall/snice-waterfall.d.ts +30 -0
  525. package/dist/components/waterfall/snice-waterfall.js +225 -0
  526. package/dist/components/waterfall/snice-waterfall.js.map +1 -0
  527. package/dist/components/waterfall/snice-waterfall.types.d.ts +23 -0
  528. package/dist/components/weather/snice-weather.d.ts +10 -0
  529. package/dist/components/weather/snice-weather.js +127 -0
  530. package/dist/components/weather/snice-weather.js.map +1 -0
  531. package/dist/components/weather/snice-weather.types.d.ts +22 -0
  532. package/dist/index.cjs +1 -1
  533. package/dist/index.esm.js +1 -1
  534. package/dist/index.iife.js +1 -1
  535. package/dist/symbols.cjs +1 -1
  536. package/dist/symbols.esm.js +1 -1
  537. package/dist/transitions.cjs +1 -1
  538. package/dist/transitions.esm.js +1 -1
  539. package/docs/ai/DEVELOPMENT.md +1 -1
  540. package/docs/ai/api.md +6 -3
  541. package/docs/ai/components/accordion.md +0 -34
  542. package/docs/ai/components/app-tiles.md +77 -0
  543. package/docs/ai/components/audio-recorder.md +2 -0
  544. package/docs/ai/components/badge.md +7 -0
  545. package/docs/ai/components/book.md +78 -0
  546. package/docs/ai/components/button.md +5 -0
  547. package/docs/ai/components/chart.md +0 -24
  548. package/docs/ai/components/chat.md +7 -95
  549. package/docs/ai/components/code-block.md +3 -82
  550. package/docs/ai/components/color-display.md +3 -3
  551. package/docs/ai/components/color-picker.md +4 -4
  552. package/docs/ai/components/comments.md +75 -0
  553. package/docs/ai/components/countdown.md +54 -0
  554. package/docs/ai/components/cropper.md +57 -0
  555. package/docs/ai/components/date-picker.md +15 -9
  556. package/docs/ai/components/diff.md +66 -0
  557. package/docs/ai/components/divider.md +1 -1
  558. package/docs/ai/components/draw.md +5 -5
  559. package/docs/ai/components/drawer.md +5 -5
  560. package/docs/ai/components/empty-state.md +2 -2
  561. package/docs/ai/components/file-gallery.md +16 -87
  562. package/docs/ai/components/file-upload.md +6 -6
  563. package/docs/ai/components/flip-card.md +52 -0
  564. package/docs/ai/components/flow.md +104 -0
  565. package/docs/ai/components/funnel.md +3 -3
  566. package/docs/ai/components/gantt.md +63 -0
  567. package/docs/ai/components/gauge.md +1 -1
  568. package/docs/ai/components/heatmap.md +5 -5
  569. package/docs/ai/components/input.md +20 -18
  570. package/docs/ai/components/kanban.md +2 -2
  571. package/docs/ai/components/kpi.md +4 -53
  572. package/docs/ai/components/layout.md +10 -235
  573. package/docs/ai/components/link-preview.md +20 -29
  574. package/docs/ai/components/link.md +27 -47
  575. package/docs/ai/components/list.md +51 -31
  576. package/docs/ai/components/location.md +15 -27
  577. package/docs/ai/components/login.md +43 -94
  578. package/docs/ai/components/map.md +72 -0
  579. package/docs/ai/components/markdown.md +63 -0
  580. package/docs/ai/components/masonry.md +10 -6
  581. package/docs/ai/components/menu.md +40 -72
  582. package/docs/ai/components/modal.md +25 -42
  583. package/docs/ai/components/music-player.md +37 -89
  584. package/docs/ai/components/nav.md +25 -39
  585. package/docs/ai/components/network-graph.md +39 -43
  586. package/docs/ai/components/notification-center.md +79 -0
  587. package/docs/ai/components/org-chart.md +62 -0
  588. package/docs/ai/components/pagination.md +16 -18
  589. package/docs/ai/components/pdf-viewer.md +57 -0
  590. package/docs/ai/components/podcast-player.md +94 -0
  591. package/docs/ai/components/pricing-table.md +87 -0
  592. package/docs/ai/components/progress.md +23 -39
  593. package/docs/ai/components/qr-code.md +37 -84
  594. package/docs/ai/components/qr-reader.md +51 -61
  595. package/docs/ai/components/radio.md +27 -39
  596. package/docs/ai/components/rating.md +56 -0
  597. package/docs/ai/components/recipe.md +90 -0
  598. package/docs/ai/components/skeleton.md +0 -8
  599. package/docs/ai/components/slider.md +10 -50
  600. package/docs/ai/components/sortable.md +57 -0
  601. package/docs/ai/components/sparkline.md +26 -152
  602. package/docs/ai/components/spinner.md +0 -21
  603. package/docs/ai/components/split-pane.md +16 -38
  604. package/docs/ai/components/spotlight.md +61 -0
  605. package/docs/ai/components/spreadsheet.md +138 -0
  606. package/docs/ai/components/stepper.md +37 -183
  607. package/docs/ai/components/switch.md +28 -35
  608. package/docs/ai/components/table.md +43 -172
  609. package/docs/ai/components/tabs.md +31 -52
  610. package/docs/ai/components/tag-input.md +70 -0
  611. package/docs/ai/components/terminal.md +34 -116
  612. package/docs/ai/components/testimonial.md +56 -0
  613. package/docs/ai/components/textarea.md +11 -43
  614. package/docs/ai/components/theme.md +120 -0
  615. package/docs/ai/components/time-range-picker.md +17 -49
  616. package/docs/ai/components/timeline.md +7 -46
  617. package/docs/ai/components/timer.md +41 -37
  618. package/docs/ai/components/toast.md +19 -90
  619. package/docs/ai/components/tooltip.md +17 -104
  620. package/docs/ai/components/tree.md +38 -162
  621. package/docs/ai/components/treemap.md +23 -44
  622. package/docs/ai/components/video-player.md +91 -0
  623. package/docs/ai/components/virtual-scroller.md +23 -46
  624. package/docs/ai/components/waterfall.md +56 -0
  625. package/docs/ai/components/weather.md +78 -0
  626. package/docs/ai/decorators.md +25 -3
  627. package/docs/ai/patterns.md +17 -1
  628. package/docs/components/accordion.md +8 -6
  629. package/docs/components/alert.md +2 -0
  630. package/docs/components/app-tiles.md +162 -0
  631. package/docs/components/audio-recorder.md +6 -0
  632. package/docs/components/avatar.md +225 -0
  633. package/docs/components/badge.md +2 -0
  634. package/docs/components/banner.md +2 -0
  635. package/docs/components/book.md +184 -0
  636. package/docs/components/breadcrumbs.md +2 -0
  637. package/docs/components/button.md +15 -0
  638. package/docs/components/calendar.md +2 -0
  639. package/docs/components/camera-annotate.md +2 -0
  640. package/docs/components/camera.md +2 -0
  641. package/docs/components/candlestick.md +2 -0
  642. package/docs/components/card.md +2 -0
  643. package/docs/components/carousel.md +205 -36
  644. package/docs/components/chart.md +2 -0
  645. package/docs/components/chat.md +2 -0
  646. package/docs/components/checkbox.md +2 -0
  647. package/docs/components/chip.md +2 -0
  648. package/docs/components/code-block.md +2 -0
  649. package/docs/components/color-display.md +2 -0
  650. package/docs/components/color-picker.md +6 -4
  651. package/docs/components/command-palette.md +2 -0
  652. package/docs/components/comments.md +235 -0
  653. package/docs/components/countdown.md +121 -0
  654. package/docs/components/cropper.md +152 -0
  655. package/docs/components/date-picker.md +201 -0
  656. package/docs/components/diff.md +177 -0
  657. package/docs/components/divider.md +132 -0
  658. package/docs/components/doc.md +2 -0
  659. package/docs/components/draw.md +2 -0
  660. package/docs/components/drawer.md +2 -0
  661. package/docs/components/empty-state.md +2 -0
  662. package/docs/components/file-gallery.md +2 -0
  663. package/docs/components/file-upload.md +2 -0
  664. package/docs/components/flip-card.md +169 -0
  665. package/docs/components/flow.md +208 -0
  666. package/docs/components/funnel.md +2 -0
  667. package/docs/components/gantt.md +187 -0
  668. package/docs/components/gauge.md +2 -0
  669. package/docs/components/heatmap.md +2 -0
  670. package/docs/components/image.md +2 -0
  671. package/docs/components/input.md +242 -0
  672. package/docs/components/kanban.md +2 -0
  673. package/docs/components/kpi.md +2 -0
  674. package/docs/components/layout.md +84 -0
  675. package/docs/components/link-preview.md +66 -92
  676. package/docs/components/link.md +73 -157
  677. package/docs/components/list.md +140 -44
  678. package/docs/components/location.md +96 -283
  679. package/docs/components/login.md +131 -498
  680. package/docs/components/map.md +203 -0
  681. package/docs/components/markdown.md +220 -0
  682. package/docs/components/masonry.md +57 -102
  683. package/docs/components/menu.md +87 -494
  684. package/docs/components/modal.md +83 -436
  685. package/docs/components/music-player.md +116 -221
  686. package/docs/components/nav.md +107 -170
  687. package/docs/components/network-graph.md +83 -111
  688. package/docs/components/notification-center.md +256 -0
  689. package/docs/components/org-chart.md +275 -0
  690. package/docs/components/pagination.md +75 -218
  691. package/docs/components/paint.md +108 -73
  692. package/docs/components/pdf-viewer.md +204 -0
  693. package/docs/components/podcast-player.md +277 -0
  694. package/docs/components/pricing-table.md +249 -0
  695. package/docs/components/progress.md +169 -0
  696. package/docs/components/qr-code.md +95 -378
  697. package/docs/components/qr-reader.md +83 -258
  698. package/docs/components/radio.md +151 -0
  699. package/docs/components/rating.md +154 -0
  700. package/docs/components/recipe.md +323 -0
  701. package/docs/components/sankey.md +84 -107
  702. package/docs/components/select.md +114 -485
  703. package/docs/components/skeleton.md +96 -0
  704. package/docs/components/slider.md +92 -235
  705. package/docs/components/sortable.md +267 -0
  706. package/docs/components/sparkline.md +76 -222
  707. package/docs/components/spinner.md +37 -18
  708. package/docs/components/split-pane.md +62 -226
  709. package/docs/components/spotlight.md +240 -0
  710. package/docs/components/spreadsheet.md +405 -0
  711. package/docs/components/stepper.md +72 -306
  712. package/docs/components/switch.md +69 -293
  713. package/docs/components/table.md +250 -0
  714. package/docs/components/tabs.md +92 -471
  715. package/docs/components/tag-input.md +257 -0
  716. package/docs/components/terminal.md +87 -391
  717. package/docs/components/testimonial.md +185 -0
  718. package/docs/components/textarea.md +96 -181
  719. package/docs/components/theme.md +216 -0
  720. package/docs/components/time-range-picker.md +99 -151
  721. package/docs/components/timeline.md +67 -115
  722. package/docs/components/timer.md +44 -86
  723. package/docs/components/toast.md +93 -432
  724. package/docs/components/tooltip.md +75 -419
  725. package/docs/components/tree.md +110 -436
  726. package/docs/components/treemap.md +86 -129
  727. package/docs/components/video-player.md +336 -0
  728. package/docs/components/virtual-scroller.md +86 -226
  729. package/docs/components/waterfall.md +217 -0
  730. package/docs/components/weather.md +239 -0
  731. package/package.json +1 -1
  732. package/docs/ai/components/popover.md +0 -70
  733. package/docs/components/popover.md +0 -333
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snice-flow.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/flow/snice-flow.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, dispatch, ready, watch, dispose, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.flow{position:relative;width:100%;height:100%;min-height:25rem;overflow:hidden;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px}.flow__grid{position:absolute;inset:0;pointer-events:none}.flow__svg{display:block;width:100%;height:100%;cursor:grab;position:absolute;inset:0}.flow__svg:active{cursor:grabbing}.flow__edge{fill:none;stroke:var(--snice-color-border,rgb(226 226 226));stroke-width:2px;cursor:pointer;transition:stroke var(--snice-transition-fast, 150ms) ease}.flow__edge:hover{stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:3px}.flow__edge--selected{stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:2px}.flow__edge--animated{stroke-dasharray:5 5;animation:.5s linear infinite flow-dash}@keyframes flow-dash{to{stroke-dashoffset:-10}}.flow__edge-label{font-size:.6875rem;fill:var(--snice-color-text-secondary,rgb(82 82 82));text-anchor:middle;pointer-events:none;dominant-baseline:central}.flow__arrow{fill:var(--snice-color-border,rgb(226 226 226))}.flow__edge-preview{fill:none;stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:2px;stroke-dasharray:6 3;pointer-events:none}.flow__nodes{position:absolute;inset:0;pointer-events:none}.flow__node{position:absolute;pointer-events:auto;background:var(--snice-color-background-element,rgb(252 251 249));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;min-width:8.75rem;box-shadow:var(--snice-shadow-sm,0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1));user-select:none;cursor:grab;transition:box-shadow var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease}.flow__node:hover{box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1))}.flow__node--selected{border-color:var(--snice-color-primary,rgb(37 99 235));box-shadow:0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.flow__node--dragging{cursor:grabbing;z-index:10;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}.flow__node-header{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border-bottom:1px solid var(--snice-color-border,rgb(226 226 226));font-size:.75rem;font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23));border-radius:3px 3px 0 0;display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.flow__node-type{font-size:.625rem;color:var(--snice-color-text-tertiary,rgb(115 115 115));font-weight:var(--snice-font-weight-medium,500);text-transform:uppercase;letter-spacing:.05em}.flow__node-body{padding:var(--snice-spacing-2xs,.25rem) 0;display:flex;justify-content:space-between;gap:var(--snice-spacing-xs,.5rem)}.flow__node-inputs,.flow__node-outputs{display:flex;flex-direction:column;gap:var(--snice-spacing-3xs,.125rem)}.flow__node-outputs{align-items:flex-end}.flow__port{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);font-size:.6875rem;color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:crosshair;position:relative}.flow__port-dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--snice-color-border,rgb(226 226 226));border:2px solid var(--snice-color-background,rgb(255 255 255));box-shadow:0 0 0 1px var(--snice-color-border,rgb(226 226 226));transition:background var(--snice-transition-fast, 150ms) ease,transform var(--snice-transition-fast, 150ms) ease;flex-shrink:0}.flow__port:hover .flow__port-dot{background:var(--snice-color-primary,rgb(37 99 235));transform:scale(1.3);box-shadow:0 0 0 1px var(--snice-color-primary,rgb(37 99 235))}.flow__port--connected .flow__port-dot{background:var(--snice-color-primary,rgb(37 99 235));box-shadow:0 0 0 1px var(--snice-color-primary,rgb(37 99 235))}.flow__port--output{flex-direction:row-reverse}.flow__minimap{position:absolute;bottom:var(--snice-spacing-xs,.5rem);right:var(--snice-spacing-xs,.5rem);width:9.375rem;height:6.25rem;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;overflow:hidden;box-shadow:var(--snice-shadow-sm,0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1));opacity:.9;z-index:20}.flow__minimap-svg{display:block;width:100%;height:100%}.flow__minimap-node{fill:var(--snice-color-primary,rgb(37 99 235));opacity:.6}.flow__minimap-edge{stroke:var(--snice-color-border,rgb(226 226 226));stroke-width:1px;fill:none}.flow__minimap-viewport{fill:var(--snice-color-primary,rgb(37 99 235));fill-opacity:0.08;stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:1px}\";\n\nconst DEFAULT_NODE_WIDTH = 160;\nconst DEFAULT_NODE_HEIGHT = 80;\nlet SniceFlow = (() => {\n let _classDecorators = [element('snice-flow')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _nodes_decorators;\n let _nodes_initializers = [];\n let _nodes_extraInitializers = [];\n let _edges_decorators;\n let _edges_initializers = [];\n let _edges_extraInitializers = [];\n let _snapToGrid_decorators;\n let _snapToGrid_initializers = [];\n let _snapToGrid_extraInitializers = [];\n let _gridSize_decorators;\n let _gridSize_initializers = [];\n let _gridSize_extraInitializers = [];\n let _zoomEnabled_decorators;\n let _zoomEnabled_initializers = [];\n let _zoomEnabled_extraInitializers = [];\n let _panEnabled_decorators;\n let _panEnabled_initializers = [];\n let _panEnabled_extraInitializers = [];\n let _minimap_decorators;\n let _minimap_initializers = [];\n let _minimap_extraInitializers = [];\n let _editable_decorators;\n let _editable_initializers = [];\n let _editable_extraInitializers = [];\n let _containerEl_decorators;\n let _containerEl_initializers = [];\n let _containerEl_extraInitializers = [];\n let _svgEl_decorators;\n let _svgEl_initializers = [];\n let _svgEl_extraInitializers = [];\n let _nodesContainerEl_decorators;\n let _nodesContainerEl_initializers = [];\n let _nodesContainerEl_extraInitializers = [];\n let _minimapSvgEl_decorators;\n let _minimapSvgEl_initializers = [];\n let _minimapSvgEl_extraInitializers = [];\n let _emitNodeDrag_decorators;\n let _emitNodeSelect_decorators;\n let _emitEdgeConnect_decorators;\n let _emitEdgeDisconnect_decorators;\n let _emitCanvasClick_decorators;\n let _init_decorators;\n let _onNodesChange_decorators;\n let _onEdgesChange_decorators;\n let _onMinimapChange_decorators;\n let _cleanup_decorators;\n let _renderContent_decorators;\n let _componentStyles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.nodes = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _nodes_initializers, []));\n this.edges = (__runInitializers(this, _nodes_extraInitializers), __runInitializers(this, _edges_initializers, []));\n this.snapToGrid = (__runInitializers(this, _edges_extraInitializers), __runInitializers(this, _snapToGrid_initializers, true));\n this.gridSize = (__runInitializers(this, _snapToGrid_extraInitializers), __runInitializers(this, _gridSize_initializers, 20));\n this.zoomEnabled = (__runInitializers(this, _gridSize_extraInitializers), __runInitializers(this, _zoomEnabled_initializers, true));\n this.panEnabled = (__runInitializers(this, _zoomEnabled_extraInitializers), __runInitializers(this, _panEnabled_initializers, true));\n this.minimap = (__runInitializers(this, _panEnabled_extraInitializers), __runInitializers(this, _minimap_initializers, true));\n this.editable = (__runInitializers(this, _minimap_extraInitializers), __runInitializers(this, _editable_initializers, true));\n this.containerEl = (__runInitializers(this, _editable_extraInitializers), __runInitializers(this, _containerEl_initializers, void 0));\n this.svgEl = (__runInitializers(this, _containerEl_extraInitializers), __runInitializers(this, _svgEl_initializers, void 0));\n this.nodesContainerEl = (__runInitializers(this, _svgEl_extraInitializers), __runInitializers(this, _nodesContainerEl_initializers, void 0));\n this.minimapSvgEl = (__runInitializers(this, _nodesContainerEl_extraInitializers), __runInitializers(this, _minimapSvgEl_initializers, void 0));\n // SVG groups (created manually for SVG namespace)\n this.transformGroupEl = __runInitializers(this, _minimapSvgEl_extraInitializers);\n // Transform state\n this.zoomScale = 1;\n this.panX = 0;\n this.panY = 0;\n // Drag state\n this.dragNode = null;\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n // Pan state\n this.isPanning = false;\n this.panStartX = 0;\n this.panStartY = 0;\n this.panStartPanX = 0;\n this.panStartPanY = 0;\n // Edge drawing state\n this.drawingEdge = false;\n this.drawSourceNodeId = '';\n this.drawSourcePortId = '';\n this.drawSourceIsOutput = true;\n this.drawEndX = 0;\n this.drawEndY = 0;\n // Selection\n this.selectedNodeId = '';\n this.selectedEdgeId = '';\n // Sizing\n this.containerWidth = 800;\n this.containerHeight = 500;\n this.resizeObserver = null;\n // Bound handlers\n this.boundMouseMove = this.handleMouseMove.bind(this);\n this.boundMouseUp = this.handleMouseUp.bind(this);\n this.initialized = false;\n this.listenersAttached = false;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _nodes_decorators = [property({ type: Array, attribute: false })];\n _edges_decorators = [property({ type: Array, attribute: false })];\n _snapToGrid_decorators = [property({ type: Boolean, attribute: 'snap-to-grid' })];\n _gridSize_decorators = [property({ type: Number, attribute: 'grid-size' })];\n _zoomEnabled_decorators = [property({ type: Boolean, attribute: 'zoom-enabled' })];\n _panEnabled_decorators = [property({ type: Boolean, attribute: 'pan-enabled' })];\n _minimap_decorators = [property({ type: Boolean })];\n _editable_decorators = [property({ type: Boolean })];\n _containerEl_decorators = [query('.flow')];\n _svgEl_decorators = [query('.flow__svg')];\n _nodesContainerEl_decorators = [query('.flow__nodes')];\n _minimapSvgEl_decorators = [query('.flow__minimap-svg')];\n _emitNodeDrag_decorators = [dispatch('node-drag', { bubbles: true, composed: true })];\n _emitNodeSelect_decorators = [dispatch('node-select', { bubbles: true, composed: true })];\n _emitEdgeConnect_decorators = [dispatch('edge-connect', { bubbles: true, composed: true })];\n _emitEdgeDisconnect_decorators = [dispatch('edge-disconnect', { bubbles: true, composed: true })];\n _emitCanvasClick_decorators = [dispatch('canvas-click', { bubbles: true, composed: true })];\n _init_decorators = [ready()];\n _onNodesChange_decorators = [watch('nodes')];\n _onEdgesChange_decorators = [watch('edges')];\n _onMinimapChange_decorators = [watch('minimap')];\n _cleanup_decorators = [dispose()];\n _renderContent_decorators = [render({ once: true })];\n _componentStyles_decorators = [styles()];\n __esDecorate(this, null, _emitNodeDrag_decorators, { kind: \"method\", name: \"emitNodeDrag\", static: false, private: false, access: { has: obj => \"emitNodeDrag\" in obj, get: obj => obj.emitNodeDrag }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitNodeSelect_decorators, { kind: \"method\", name: \"emitNodeSelect\", static: false, private: false, access: { has: obj => \"emitNodeSelect\" in obj, get: obj => obj.emitNodeSelect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEdgeConnect_decorators, { kind: \"method\", name: \"emitEdgeConnect\", static: false, private: false, access: { has: obj => \"emitEdgeConnect\" in obj, get: obj => obj.emitEdgeConnect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEdgeDisconnect_decorators, { kind: \"method\", name: \"emitEdgeDisconnect\", static: false, private: false, access: { has: obj => \"emitEdgeDisconnect\" in obj, get: obj => obj.emitEdgeDisconnect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitCanvasClick_decorators, { kind: \"method\", name: \"emitCanvasClick\", static: false, private: false, access: { has: obj => \"emitCanvasClick\" in obj, get: obj => obj.emitCanvasClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onNodesChange_decorators, { kind: \"method\", name: \"onNodesChange\", static: false, private: false, access: { has: obj => \"onNodesChange\" in obj, get: obj => obj.onNodesChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onEdgesChange_decorators, { kind: \"method\", name: \"onEdgesChange\", static: false, private: false, access: { has: obj => \"onEdgesChange\" in obj, get: obj => obj.onEdgesChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onMinimapChange_decorators, { kind: \"method\", name: \"onMinimapChange\", static: false, private: false, access: { has: obj => \"onMinimapChange\" in obj, get: obj => obj.onMinimapChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanup_decorators, { kind: \"method\", name: \"cleanup\", static: false, private: false, access: { has: obj => \"cleanup\" in obj, get: obj => obj.cleanup }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderContent_decorators, { kind: \"method\", name: \"renderContent\", static: false, private: false, access: { has: obj => \"renderContent\" in obj, get: obj => obj.renderContent }, 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, _nodes_decorators, { kind: \"field\", name: \"nodes\", static: false, private: false, access: { has: obj => \"nodes\" in obj, get: obj => obj.nodes, set: (obj, value) => { obj.nodes = value; } }, metadata: _metadata }, _nodes_initializers, _nodes_extraInitializers);\n __esDecorate(null, null, _edges_decorators, { kind: \"field\", name: \"edges\", static: false, private: false, access: { has: obj => \"edges\" in obj, get: obj => obj.edges, set: (obj, value) => { obj.edges = value; } }, metadata: _metadata }, _edges_initializers, _edges_extraInitializers);\n __esDecorate(null, null, _snapToGrid_decorators, { kind: \"field\", name: \"snapToGrid\", static: false, private: false, access: { has: obj => \"snapToGrid\" in obj, get: obj => obj.snapToGrid, set: (obj, value) => { obj.snapToGrid = value; } }, metadata: _metadata }, _snapToGrid_initializers, _snapToGrid_extraInitializers);\n __esDecorate(null, null, _gridSize_decorators, { kind: \"field\", name: \"gridSize\", static: false, private: false, access: { has: obj => \"gridSize\" in obj, get: obj => obj.gridSize, set: (obj, value) => { obj.gridSize = value; } }, metadata: _metadata }, _gridSize_initializers, _gridSize_extraInitializers);\n __esDecorate(null, null, _zoomEnabled_decorators, { kind: \"field\", name: \"zoomEnabled\", static: false, private: false, access: { has: obj => \"zoomEnabled\" in obj, get: obj => obj.zoomEnabled, set: (obj, value) => { obj.zoomEnabled = value; } }, metadata: _metadata }, _zoomEnabled_initializers, _zoomEnabled_extraInitializers);\n __esDecorate(null, null, _panEnabled_decorators, { kind: \"field\", name: \"panEnabled\", static: false, private: false, access: { has: obj => \"panEnabled\" in obj, get: obj => obj.panEnabled, set: (obj, value) => { obj.panEnabled = value; } }, metadata: _metadata }, _panEnabled_initializers, _panEnabled_extraInitializers);\n __esDecorate(null, null, _minimap_decorators, { kind: \"field\", name: \"minimap\", static: false, private: false, access: { has: obj => \"minimap\" in obj, get: obj => obj.minimap, set: (obj, value) => { obj.minimap = value; } }, metadata: _metadata }, _minimap_initializers, _minimap_extraInitializers);\n __esDecorate(null, null, _editable_decorators, { kind: \"field\", name: \"editable\", static: false, private: false, access: { has: obj => \"editable\" in obj, get: obj => obj.editable, set: (obj, value) => { obj.editable = value; } }, metadata: _metadata }, _editable_initializers, _editable_extraInitializers);\n __esDecorate(null, null, _containerEl_decorators, { kind: \"field\", name: \"containerEl\", static: false, private: false, access: { has: obj => \"containerEl\" in obj, get: obj => obj.containerEl, set: (obj, value) => { obj.containerEl = value; } }, metadata: _metadata }, _containerEl_initializers, _containerEl_extraInitializers);\n __esDecorate(null, null, _svgEl_decorators, { kind: \"field\", name: \"svgEl\", static: false, private: false, access: { has: obj => \"svgEl\" in obj, get: obj => obj.svgEl, set: (obj, value) => { obj.svgEl = value; } }, metadata: _metadata }, _svgEl_initializers, _svgEl_extraInitializers);\n __esDecorate(null, null, _nodesContainerEl_decorators, { kind: \"field\", name: \"nodesContainerEl\", static: false, private: false, access: { has: obj => \"nodesContainerEl\" in obj, get: obj => obj.nodesContainerEl, set: (obj, value) => { obj.nodesContainerEl = value; } }, metadata: _metadata }, _nodesContainerEl_initializers, _nodesContainerEl_extraInitializers);\n __esDecorate(null, null, _minimapSvgEl_decorators, { kind: \"field\", name: \"minimapSvgEl\", static: false, private: false, access: { has: obj => \"minimapSvgEl\" in obj, get: obj => obj.minimapSvgEl, set: (obj, value) => { obj.minimapSvgEl = value; } }, metadata: _metadata }, _minimapSvgEl_initializers, _minimapSvgEl_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 emitNodeDrag(node, x, y) {\n return { node, x, y };\n }\n emitNodeSelect(node) {\n return { node };\n }\n emitEdgeConnect(edge) {\n return { edge };\n }\n emitEdgeDisconnect(edge) {\n return { edge };\n }\n emitCanvasClick(x, y) {\n return { x, y };\n }\n init() {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n this.containerWidth = entry.contentRect.width || 800;\n this.containerHeight = entry.contentRect.height || 500;\n if (this.initialized)\n this.rebuild();\n }\n });\n this.resizeObserver.observe(this);\n requestAnimationFrame(() => {\n this.ensureSvgSetup();\n this.attachListeners();\n this.initialized = true;\n this.rebuild();\n });\n }\n onNodesChange() {\n if (this.initialized)\n this.rebuild();\n }\n onEdgesChange() {\n if (this.initialized)\n this.rebuild();\n }\n onMinimapChange() {\n if (this.initialized)\n this.updateMinimap();\n }\n cleanup() {\n document.removeEventListener('mousemove', this.boundMouseMove);\n document.removeEventListener('mouseup', this.boundMouseUp);\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n // --- Public API ---\n addNode(node) {\n this.nodes = [...this.nodes, node];\n }\n removeNode(id) {\n this.nodes = this.nodes.filter(n => n.id !== id);\n this.edges = this.edges.filter(e => e.source !== id && e.target !== id);\n if (this.selectedNodeId === id) {\n this.selectedNodeId = '';\n this.emitNodeSelect(null);\n }\n }\n addEdge(edge) {\n this.edges = [...this.edges, edge];\n }\n removeEdge(id) {\n const edge = this.edges.find(e => e.id === id);\n this.edges = this.edges.filter(e => e.id !== id);\n if (edge)\n this.emitEdgeDisconnect(edge);\n }\n fitView() {\n if (this.nodes.length === 0)\n return;\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n minX = Math.min(minX, node.x);\n minY = Math.min(minY, node.y);\n maxX = Math.max(maxX, node.x + w);\n maxY = Math.max(maxY, node.y + h);\n }\n const padding = 40;\n const contentW = maxX - minX + padding * 2;\n const contentH = maxY - minY + padding * 2;\n const scaleX = this.containerWidth / contentW;\n const scaleY = this.containerHeight / contentH;\n this.zoomScale = Math.min(scaleX, scaleY, 1.5);\n this.panX = (this.containerWidth - contentW * this.zoomScale) / 2 - minX * this.zoomScale + padding * this.zoomScale;\n this.panY = (this.containerHeight - contentH * this.zoomScale) / 2 - minY * this.zoomScale + padding * this.zoomScale;\n this.rebuild();\n }\n // --- SVG Setup ---\n ensureSvgSetup() {\n if (this.edgesGroupEl && this.transformGroupEl)\n return true;\n const svg = this.svgEl;\n if (!svg)\n return false;\n const ns = 'http://www.w3.org/2000/svg';\n // Defs for arrow marker\n this.defsEl = document.createElementNS(ns, 'defs');\n const marker = document.createElementNS(ns, 'marker');\n marker.setAttribute('id', 'flow-arrow');\n marker.setAttribute('viewBox', '0 0 10 10');\n marker.setAttribute('refX', '10');\n marker.setAttribute('refY', '5');\n marker.setAttribute('markerWidth', '8');\n marker.setAttribute('markerHeight', '8');\n marker.setAttribute('orient', 'auto-start-reverse');\n const path = document.createElementNS(ns, 'path');\n path.setAttribute('d', 'M 0 0 L 10 5 L 0 10 z');\n path.setAttribute('class', 'flow__arrow');\n marker.appendChild(path);\n this.defsEl.appendChild(marker);\n svg.appendChild(this.defsEl);\n // Transform group\n this.transformGroupEl = document.createElementNS(ns, 'g');\n this.edgesGroupEl = document.createElementNS(ns, 'g');\n this.previewGroupEl = document.createElementNS(ns, 'g');\n this.transformGroupEl.appendChild(this.edgesGroupEl);\n this.transformGroupEl.appendChild(this.previewGroupEl);\n svg.appendChild(this.transformGroupEl);\n return true;\n }\n attachListeners() {\n if (this.listenersAttached)\n return;\n const svg = this.svgEl;\n if (!svg)\n return;\n this.listenersAttached = true;\n svg.addEventListener('mousedown', (e) => this.handleSvgMouseDown(e));\n svg.addEventListener('wheel', (e) => this.handleWheel(e), { passive: false });\n svg.addEventListener('click', (e) => {\n // Only fire canvas click if clicking on the SVG background\n if (e.target === svg || e.target.closest('.flow__svg') === svg && !e.target.closest('.flow__edge')) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.selectedNodeId = '';\n this.selectedEdgeId = '';\n this.emitNodeSelect(null);\n this.emitCanvasClick(pos.x, pos.y);\n this.rebuild();\n }\n });\n // Edge click\n svg.addEventListener('click', (e) => {\n const edgePath = e.target.closest('.flow__edge');\n if (edgePath) {\n e.stopPropagation();\n const edgeId = edgePath.getAttribute('data-edge-id');\n if (edgeId) {\n this.selectedEdgeId = edgeId;\n this.selectedNodeId = '';\n this.rebuild();\n }\n }\n });\n }\n // --- Coordinate transforms ---\n screenToCanvas(sx, sy) {\n const svg = this.svgEl;\n if (!svg)\n return { x: sx, y: sy };\n const rect = svg.getBoundingClientRect();\n return {\n x: (sx - rect.left - this.panX) / this.zoomScale,\n y: (sy - rect.top - this.panY) / this.zoomScale,\n };\n }\n snap(v) {\n if (!this.snapToGrid)\n return v;\n return Math.round(v / this.gridSize) * this.gridSize;\n }\n // --- Port positions ---\n getPortPosition(nodeId, portId, isOutput) {\n const node = this.nodes.find(n => n.id === nodeId);\n if (!node)\n return { x: 0, y: 0 };\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n const ports = isOutput ? (node.outputs || []) : (node.inputs || []);\n const idx = ports.findIndex(p => p.id === portId);\n if (idx === -1)\n return { x: node.x, y: node.y };\n const headerHeight = 28;\n const portAreaHeight = h - headerHeight;\n const portSpacing = ports.length > 1 ? portAreaHeight / (ports.length + 1) : portAreaHeight / 2;\n const yOffset = headerHeight + portSpacing * (idx + 1);\n return {\n x: isOutput ? node.x + w : node.x,\n y: node.y + yOffset,\n };\n }\n findNearestPort(x, y, needOutput) {\n let best = null;\n let bestDist = 20; // max distance threshold\n for (const node of this.nodes) {\n const ports = needOutput ? (node.outputs || []) : (node.inputs || []);\n for (const port of ports) {\n const pos = this.getPortPosition(node.id, port.id, needOutput);\n const dx = pos.x - x;\n const dy = pos.y - y;\n const dist = Math.sqrt(dx * dx + dy * dy);\n if (dist < bestDist) {\n bestDist = dist;\n best = { nodeId: node.id, portId: port.id };\n }\n }\n }\n return best;\n }\n // --- Mouse handling ---\n handleSvgMouseDown(e) {\n if (e.button !== 0)\n return;\n // Background pan\n if (this.panEnabled) {\n e.preventDefault();\n this.isPanning = true;\n this.panStartX = e.clientX;\n this.panStartY = e.clientY;\n this.panStartPanX = this.panX;\n this.panStartPanY = this.panY;\n document.addEventListener('mousemove', this.boundMouseMove);\n document.addEventListener('mouseup', this.boundMouseUp);\n }\n }\n handleNodeMouseDown(e, nodeId) {\n e.preventDefault();\n e.stopPropagation();\n const node = this.nodes.find(n => n.id === nodeId);\n if (!node)\n return;\n // Select node\n this.selectedNodeId = nodeId;\n this.selectedEdgeId = '';\n this.emitNodeSelect(node);\n // Start drag\n this.dragNode = node;\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.dragOffsetX = pos.x - node.x;\n this.dragOffsetY = pos.y - node.y;\n document.addEventListener('mousemove', this.boundMouseMove);\n document.addEventListener('mouseup', this.boundMouseUp);\n this.rebuild();\n }\n handlePortMouseDown(e, nodeId, portId, isOutput) {\n if (!this.editable)\n return;\n e.preventDefault();\n e.stopPropagation();\n this.drawingEdge = true;\n this.drawSourceNodeId = nodeId;\n this.drawSourcePortId = portId;\n this.drawSourceIsOutput = isOutput;\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.drawEndX = pos.x;\n this.drawEndY = pos.y;\n document.addEventListener('mousemove', this.boundMouseMove);\n document.addEventListener('mouseup', this.boundMouseUp);\n }\n handleMouseMove(e) {\n if (this.dragNode) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n const newX = this.snap(pos.x - this.dragOffsetX);\n const newY = this.snap(pos.y - this.dragOffsetY);\n this.dragNode.x = newX;\n this.dragNode.y = newY;\n this.emitNodeDrag(this.dragNode, newX, newY);\n this.rebuild();\n }\n else if (this.drawingEdge) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.drawEndX = pos.x;\n this.drawEndY = pos.y;\n this.updateEdgePreview();\n }\n else if (this.isPanning) {\n const dx = e.clientX - this.panStartX;\n const dy = e.clientY - this.panStartY;\n this.panX = this.panStartPanX + dx;\n this.panY = this.panStartPanY + dy;\n this.rebuild();\n }\n }\n handleMouseUp(e) {\n if (this.drawingEdge) {\n this.finishEdgeDraw(e);\n }\n this.dragNode = null;\n this.isPanning = false;\n this.drawingEdge = false;\n document.removeEventListener('mousemove', this.boundMouseMove);\n document.removeEventListener('mouseup', this.boundMouseUp);\n this.clearEdgePreview();\n this.rebuild();\n }\n finishEdgeDraw(e) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n // If started from output, find nearest input; vice versa\n const needOutput = !this.drawSourceIsOutput;\n const target = this.findNearestPort(pos.x, pos.y, needOutput);\n if (target && target.nodeId !== this.drawSourceNodeId) {\n const sourceNodeId = this.drawSourceIsOutput ? this.drawSourceNodeId : target.nodeId;\n const sourcePortId = this.drawSourceIsOutput ? this.drawSourcePortId : target.portId;\n const targetNodeId = this.drawSourceIsOutput ? target.nodeId : this.drawSourceNodeId;\n const targetPortId = this.drawSourceIsOutput ? target.portId : this.drawSourcePortId;\n // Check for duplicate\n const exists = this.edges.some(e => e.source === sourceNodeId && e.target === targetNodeId &&\n e.sourcePort === sourcePortId && e.targetPort === targetPortId);\n if (!exists) {\n const newEdge = {\n id: `edge-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,\n source: sourceNodeId,\n target: targetNodeId,\n sourcePort: sourcePortId,\n targetPort: targetPortId,\n };\n this.edges = [...this.edges, newEdge];\n this.emitEdgeConnect(newEdge);\n }\n }\n }\n handleWheel(e) {\n if (!this.zoomEnabled)\n return;\n e.preventDefault();\n const svg = this.svgEl;\n if (!svg)\n return;\n const rect = svg.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const mouseY = e.clientY - rect.top;\n const delta = e.deltaY > 0 ? 0.9 : 1.1;\n const newScale = Math.max(0.2, Math.min(4, this.zoomScale * delta));\n this.panX = mouseX - (mouseX - this.panX) * (newScale / this.zoomScale);\n this.panY = mouseY - (mouseY - this.panY) * (newScale / this.zoomScale);\n this.zoomScale = newScale;\n this.rebuild();\n }\n // --- Bezier curves ---\n bezierPath(x1, y1, x2, y2) {\n const dx = Math.abs(x2 - x1) * 0.5;\n const cp1x = x1 + dx;\n const cp1y = y1;\n const cp2x = x2 - dx;\n const cp2y = y2;\n return `M ${x1} ${y1} C ${cp1x} ${cp1y}, ${cp2x} ${cp2y}, ${x2} ${y2}`;\n }\n // --- Edge preview ---\n updateEdgePreview() {\n if (!this.previewGroupEl)\n return;\n const sourcePos = this.getPortPosition(this.drawSourceNodeId, this.drawSourcePortId, this.drawSourceIsOutput);\n let x1, y1, x2, y2;\n if (this.drawSourceIsOutput) {\n x1 = sourcePos.x;\n y1 = sourcePos.y;\n x2 = this.drawEndX;\n y2 = this.drawEndY;\n }\n else {\n x1 = this.drawEndX;\n y1 = this.drawEndY;\n x2 = sourcePos.x;\n y2 = sourcePos.y;\n }\n const d = this.bezierPath(x1, y1, x2, y2);\n this.previewGroupEl.innerHTML = `<path class=\"flow__edge-preview\" d=\"${d}\" />`;\n }\n clearEdgePreview() {\n if (this.previewGroupEl) {\n this.previewGroupEl.innerHTML = '';\n }\n }\n // --- Grid pattern ---\n gridPatternSvg() {\n const g = this.gridSize;\n return `<svg width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\"><defs><pattern id=\"flow-grid-small\" width=\"${g}\" height=\"${g}\" patternUnits=\"userSpaceOnUse\" patternTransform=\"translate(${this.panX % (g * this.zoomScale)}, ${this.panY % (g * this.zoomScale)}) scale(${this.zoomScale})\"><circle cx=\"${g / 2}\" cy=\"${g / 2}\" r=\"0.5\" fill=\"var(--snice-color-text-tertiary, rgb(115 115 115))\" opacity=\"0.3\"/></pattern></defs><rect width=\"100%\" height=\"100%\" fill=\"url(#flow-grid-small)\"/></svg>`;\n }\n // --- Rebuild ---\n rebuild() {\n this.ensureSvgSetup();\n this.attachListeners();\n this.rebuildTransform();\n this.rebuildEdges();\n this.rebuildNodes();\n this.updateGrid();\n this.updateMinimap();\n }\n rebuildTransform() {\n if (this.transformGroupEl) {\n this.transformGroupEl.setAttribute('transform', `translate(${this.panX}, ${this.panY}) scale(${this.zoomScale})`);\n }\n }\n rebuildEdges() {\n if (!this.edgesGroupEl)\n return;\n let parts = '';\n for (const edge of this.edges) {\n const sourcePort = edge.sourcePort || (this.nodes.find(n => n.id === edge.source)?.outputs?.[0]?.id || '');\n const targetPort = edge.targetPort || (this.nodes.find(n => n.id === edge.target)?.inputs?.[0]?.id || '');\n const p1 = this.getPortPosition(edge.source, sourcePort, true);\n const p2 = this.getPortPosition(edge.target, targetPort, false);\n const d = this.bezierPath(p1.x, p1.y, p2.x, p2.y);\n const cls = ['flow__edge'];\n if (edge.id === this.selectedEdgeId)\n cls.push('flow__edge--selected');\n if (edge.animated)\n cls.push('flow__edge--animated');\n const colorAttr = edge.color ? ` stroke=\"${edge.color}\"` : '';\n parts += `<path class=\"${cls.join(' ')}\" d=\"${d}\" data-edge-id=\"${edge.id}\" marker-end=\"url(#flow-arrow)\"${colorAttr} />`;\n if (edge.label) {\n const mx = (p1.x + p2.x) / 2;\n const my = (p1.y + p2.y) / 2;\n parts += `<text class=\"flow__edge-label\" x=\"${mx}\" y=\"${my - 8}\">${edge.label}</text>`;\n }\n }\n this.edgesGroupEl.innerHTML = parts;\n }\n rebuildNodes() {\n const container = this.nodesContainerEl;\n if (!container)\n return;\n let nodesHtml = '';\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n const x = node.x * this.zoomScale + this.panX;\n const y = node.y * this.zoomScale + this.panY;\n const scaledW = w * this.zoomScale;\n h * this.zoomScale;\n const cls = ['flow__node'];\n if (node.id === this.selectedNodeId)\n cls.push('flow__node--selected');\n if (this.dragNode && this.dragNode.id === node.id)\n cls.push('flow__node--dragging');\n const headerBg = node.color ? `background:${node.color};color:white;` : '';\n nodesHtml += `<div class=\"${cls.join(' ')}\" data-node-id=\"${node.id}\" style=\"left:${x}px;top:${y}px;width:${scaledW}px;transform-origin:top left;transform:scale(1);\">`;\n nodesHtml += `<div class=\"flow__node-header\" style=\"${headerBg}\">`;\n if (node.type)\n nodesHtml += `<span class=\"flow__node-type\">${node.type}</span>`;\n nodesHtml += `<span>${node.label || node.id}</span>`;\n nodesHtml += `</div>`;\n nodesHtml += `<div class=\"flow__node-body\">`;\n // Inputs\n const inputs = node.inputs || [];\n if (inputs.length > 0) {\n nodesHtml += `<div class=\"flow__node-inputs\">`;\n for (const port of inputs) {\n const connected = this.isPortConnected(node.id, port.id, false);\n const pcls = ['flow__port', connected ? 'flow__port--connected' : ''].filter(Boolean).join(' ');\n nodesHtml += `<div class=\"${pcls}\" data-port-id=\"${port.id}\" data-port-type=\"input\" data-node-id=\"${node.id}\">`;\n nodesHtml += `<span class=\"flow__port-dot\"></span>`;\n if (port.label)\n nodesHtml += `<span>${port.label}</span>`;\n nodesHtml += `</div>`;\n }\n nodesHtml += `</div>`;\n }\n // Outputs\n const outputs = node.outputs || [];\n if (outputs.length > 0) {\n nodesHtml += `<div class=\"flow__node-outputs\">`;\n for (const port of outputs) {\n const connected = this.isPortConnected(node.id, port.id, true);\n const pcls = ['flow__port', 'flow__port--output', connected ? 'flow__port--connected' : ''].filter(Boolean).join(' ');\n nodesHtml += `<div class=\"${pcls}\" data-port-id=\"${port.id}\" data-port-type=\"output\" data-node-id=\"${node.id}\">`;\n if (port.label)\n nodesHtml += `<span>${port.label}</span>`;\n nodesHtml += `<span class=\"flow__port-dot\"></span>`;\n nodesHtml += `</div>`;\n }\n nodesHtml += `</div>`;\n }\n nodesHtml += `</div></div>`;\n }\n container.innerHTML = nodesHtml;\n // Attach event listeners to nodes and ports\n const nodeEls = container.querySelectorAll('.flow__node');\n nodeEls.forEach(el => {\n const nodeId = el.getAttribute('data-node-id');\n el.addEventListener('mousedown', (e) => this.handleNodeMouseDown(e, nodeId));\n });\n const portEls = container.querySelectorAll('.flow__port');\n portEls.forEach(el => {\n const portId = el.getAttribute('data-port-id');\n const nodeId = el.getAttribute('data-node-id');\n const isOutput = el.getAttribute('data-port-type') === 'output';\n el.addEventListener('mousedown', (e) => this.handlePortMouseDown(e, nodeId, portId, isOutput));\n });\n }\n isPortConnected(nodeId, portId, isOutput) {\n return this.edges.some(e => {\n if (isOutput) {\n return e.source === nodeId && (e.sourcePort === portId || (!e.sourcePort && portId === this.nodes.find(n => n.id === nodeId)?.outputs?.[0]?.id));\n }\n return e.target === nodeId && (e.targetPort === portId || (!e.targetPort && portId === this.nodes.find(n => n.id === nodeId)?.inputs?.[0]?.id));\n });\n }\n updateGrid() {\n const gridEl = this.containerEl?.querySelector('.flow__grid');\n if (!gridEl)\n return;\n if (this.snapToGrid) {\n gridEl.innerHTML = this.gridPatternSvg();\n gridEl.style.display = '';\n }\n else {\n gridEl.style.display = 'none';\n }\n }\n updateMinimap() {\n const svg = this.minimapSvgEl;\n if (!svg || !this.minimap)\n return;\n if (this.nodes.length === 0) {\n svg.innerHTML = '';\n return;\n }\n // Calculate bounds\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n minX = Math.min(minX, node.x);\n minY = Math.min(minY, node.y);\n maxX = Math.max(maxX, node.x + w);\n maxY = Math.max(maxY, node.y + h);\n }\n const pad = 40;\n minX -= pad;\n minY -= pad;\n maxX += pad;\n maxY += pad;\n const vb = `${minX} ${minY} ${maxX - minX} ${maxY - minY}`;\n svg.setAttribute('viewBox', vb);\n let parts = '';\n // Edges\n for (const edge of this.edges) {\n const sourcePort = edge.sourcePort || (this.nodes.find(n => n.id === edge.source)?.outputs?.[0]?.id || '');\n const targetPort = edge.targetPort || (this.nodes.find(n => n.id === edge.target)?.inputs?.[0]?.id || '');\n const p1 = this.getPortPosition(edge.source, sourcePort, true);\n const p2 = this.getPortPosition(edge.target, targetPort, false);\n parts += `<line class=\"flow__minimap-edge\" x1=\"${p1.x}\" y1=\"${p1.y}\" x2=\"${p2.x}\" y2=\"${p2.y}\" />`;\n }\n // Nodes\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n parts += `<rect class=\"flow__minimap-node\" x=\"${node.x}\" y=\"${node.y}\" width=\"${w}\" height=\"${h}\" rx=\"2\" />`;\n }\n // Viewport indicator\n const vpX = -this.panX / this.zoomScale;\n const vpY = -this.panY / this.zoomScale;\n const vpW = this.containerWidth / this.zoomScale;\n const vpH = this.containerHeight / this.zoomScale;\n parts += `<rect class=\"flow__minimap-viewport\" x=\"${vpX}\" y=\"${vpY}\" width=\"${vpW}\" height=\"${vpH}\" />`;\n svg.innerHTML = parts;\n }\n renderContent() {\n return html /*html*/ `\n <div class=\"flow\">\n <div class=\"flow__grid\"></div>\n <svg class=\"flow__svg\"></svg>\n <div class=\"flow__nodes\"></div>\n <div class=\"flow__minimap\" style=\"${this.minimap ? '' : 'display:none'}\">\n <svg class=\"flow__minimap-svg\"></svg>\n </div>\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n });\n return _classThis;\n})();\n\nexport { SniceFlow };\n//# sourceMappingURL=snice-flow.js.map\n"],"names":["element","property","query","dispatch","ready","watch","dispose","render","styles","html","css"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,17 @@
1
+ /*!
2
+ * snice v4.9.0
3
+ * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
+ * (c) 2024
5
+ * Released under the MIT License.
6
+ */
7
+ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be loaded before snice-flow.min.js");var SniceFlow=function(e,t){"use strict";function i(e,t,i,s,n,o){function r(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var a,d=s.kind,l="getter"===d?"get":"setter"===d?"set":"value",c=!t&&e?s.static?e:e.prototype:null,h=t||(c?Object.getOwnPropertyDescriptor(c,s.name):{}),p=!1,u=i.length-1;u>=0;u--){var g={};for(var m in s)g[m]="access"===m?{}:s[m];for(var m in s.access)g.access[m]=s.access[m];g.addInitializer=function(e){if(p)throw new TypeError("Cannot add initializers after decoration has completed");o.push(r(e||null))};var f=(0,i[u])("accessor"===d?{get:h.get,set:h.set}:h[l],g);if("accessor"===d){if(void 0===f)continue;if(null===f||"object"!=typeof f)throw new TypeError("Object expected");(a=r(f.get))&&(h.get=a),(a=r(f.set))&&(h.set=a),(a=r(f.init))&&n.unshift(a)}else(a=r(f))&&("field"===d?n.unshift(a):h[l]=a)}c&&Object.defineProperty(c,s.name,h),p=!0}function s(e,t,i){for(var s=arguments.length>2,n=0;n<t.length;n++)i=s?t[n].call(e,i):t[n].call(e);return s?i:void 0}"function"==typeof SuppressedError&&SuppressedError;const n=160;let o=(()=>{let e,o,r,a,d,l,c,h,p,u,g,m,f,v,b,w,_,y,x,E,S,k,z,$,M,P,C=[t.element("snice-flow")],N=[],I=HTMLElement,Y=[],X=[],L=[],O=[],T=[],G=[],A=[],D=[],H=[],j=[],B=[],U=[],q=[],W=[],R=[],F=[],V=[],J=[],K=[],Q=[],Z=[],ee=[],te=[],ie=[],se=[];return class extends I{static{o=this}constructor(){super(...arguments),this.nodes=(s(this,Y),s(this,X,[])),this.edges=(s(this,L),s(this,O,[])),this.snapToGrid=(s(this,T),s(this,G,!0)),this.gridSize=(s(this,A),s(this,D,20)),this.zoomEnabled=(s(this,H),s(this,j,!0)),this.panEnabled=(s(this,B),s(this,U,!0)),this.minimap=(s(this,q),s(this,W,!0)),this.editable=(s(this,R),s(this,F,!0)),this.containerEl=(s(this,V),s(this,J,void 0)),this.svgEl=(s(this,K),s(this,Q,void 0)),this.nodesContainerEl=(s(this,Z),s(this,ee,void 0)),this.minimapSvgEl=(s(this,te),s(this,ie,void 0)),this.transformGroupEl=s(this,se),this.zoomScale=1,this.panX=0,this.panY=0,this.dragNode=null,this.dragOffsetX=0,this.dragOffsetY=0,this.isPanning=!1,this.panStartX=0,this.panStartY=0,this.panStartPanX=0,this.panStartPanY=0,this.drawingEdge=!1,this.drawSourceNodeId="",this.drawSourcePortId="",this.drawSourceIsOutput=!0,this.drawEndX=0,this.drawEndY=0,this.selectedNodeId="",this.selectedEdgeId="",this.containerWidth=800,this.containerHeight=500,this.resizeObserver=null,this.boundMouseMove=this.handleMouseMove.bind(this),this.boundMouseUp=this.handleMouseUp.bind(this),this.initialized=!1,this.listenersAttached=!1}static{const n="function"==typeof Symbol&&Symbol.metadata?Object.create(I[Symbol.metadata]??null):void 0;r=[t.property({type:Array,attribute:!1})],a=[t.property({type:Array,attribute:!1})],d=[t.property({type:Boolean,attribute:"snap-to-grid"})],l=[t.property({type:Number,attribute:"grid-size"})],c=[t.property({type:Boolean,attribute:"zoom-enabled"})],h=[t.property({type:Boolean,attribute:"pan-enabled"})],p=[t.property({type:Boolean})],u=[t.property({type:Boolean})],g=[t.query(".flow")],m=[t.query(".flow__svg")],f=[t.query(".flow__nodes")],v=[t.query(".flow__minimap-svg")],b=[t.dispatch("node-drag",{bubbles:!0,composed:!0})],w=[t.dispatch("node-select",{bubbles:!0,composed:!0})],_=[t.dispatch("edge-connect",{bubbles:!0,composed:!0})],y=[t.dispatch("edge-disconnect",{bubbles:!0,composed:!0})],x=[t.dispatch("canvas-click",{bubbles:!0,composed:!0})],E=[t.ready()],S=[t.watch("nodes")],k=[t.watch("edges")],z=[t.watch("minimap")],$=[t.dispose()],M=[t.render({once:!0})],P=[t.styles()],i(this,null,b,{kind:"method",name:"emitNodeDrag",static:!1,private:!1,access:{has:e=>"emitNodeDrag"in e,get:e=>e.emitNodeDrag},metadata:n},null,Y),i(this,null,w,{kind:"method",name:"emitNodeSelect",static:!1,private:!1,access:{has:e=>"emitNodeSelect"in e,get:e=>e.emitNodeSelect},metadata:n},null,Y),i(this,null,_,{kind:"method",name:"emitEdgeConnect",static:!1,private:!1,access:{has:e=>"emitEdgeConnect"in e,get:e=>e.emitEdgeConnect},metadata:n},null,Y),i(this,null,y,{kind:"method",name:"emitEdgeDisconnect",static:!1,private:!1,access:{has:e=>"emitEdgeDisconnect"in e,get:e=>e.emitEdgeDisconnect},metadata:n},null,Y),i(this,null,x,{kind:"method",name:"emitCanvasClick",static:!1,private:!1,access:{has:e=>"emitCanvasClick"in e,get:e=>e.emitCanvasClick},metadata:n},null,Y),i(this,null,E,{kind:"method",name:"init",static:!1,private:!1,access:{has:e=>"init"in e,get:e=>e.init},metadata:n},null,Y),i(this,null,S,{kind:"method",name:"onNodesChange",static:!1,private:!1,access:{has:e=>"onNodesChange"in e,get:e=>e.onNodesChange},metadata:n},null,Y),i(this,null,k,{kind:"method",name:"onEdgesChange",static:!1,private:!1,access:{has:e=>"onEdgesChange"in e,get:e=>e.onEdgesChange},metadata:n},null,Y),i(this,null,z,{kind:"method",name:"onMinimapChange",static:!1,private:!1,access:{has:e=>"onMinimapChange"in e,get:e=>e.onMinimapChange},metadata:n},null,Y),i(this,null,$,{kind:"method",name:"cleanup",static:!1,private:!1,access:{has:e=>"cleanup"in e,get:e=>e.cleanup},metadata:n},null,Y),i(this,null,M,{kind:"method",name:"renderContent",static:!1,private:!1,access:{has:e=>"renderContent"in e,get:e=>e.renderContent},metadata:n},null,Y),i(this,null,P,{kind:"method",name:"componentStyles",static:!1,private:!1,access:{has:e=>"componentStyles"in e,get:e=>e.componentStyles},metadata:n},null,Y),i(null,null,r,{kind:"field",name:"nodes",static:!1,private:!1,access:{has:e=>"nodes"in e,get:e=>e.nodes,set:(e,t)=>{e.nodes=t}},metadata:n},X,L),i(null,null,a,{kind:"field",name:"edges",static:!1,private:!1,access:{has:e=>"edges"in e,get:e=>e.edges,set:(e,t)=>{e.edges=t}},metadata:n},O,T),i(null,null,d,{kind:"field",name:"snapToGrid",static:!1,private:!1,access:{has:e=>"snapToGrid"in e,get:e=>e.snapToGrid,set:(e,t)=>{e.snapToGrid=t}},metadata:n},G,A),i(null,null,l,{kind:"field",name:"gridSize",static:!1,private:!1,access:{has:e=>"gridSize"in e,get:e=>e.gridSize,set:(e,t)=>{e.gridSize=t}},metadata:n},D,H),i(null,null,c,{kind:"field",name:"zoomEnabled",static:!1,private:!1,access:{has:e=>"zoomEnabled"in e,get:e=>e.zoomEnabled,set:(e,t)=>{e.zoomEnabled=t}},metadata:n},j,B),i(null,null,h,{kind:"field",name:"panEnabled",static:!1,private:!1,access:{has:e=>"panEnabled"in e,get:e=>e.panEnabled,set:(e,t)=>{e.panEnabled=t}},metadata:n},U,q),i(null,null,p,{kind:"field",name:"minimap",static:!1,private:!1,access:{has:e=>"minimap"in e,get:e=>e.minimap,set:(e,t)=>{e.minimap=t}},metadata:n},W,R),i(null,null,u,{kind:"field",name:"editable",static:!1,private:!1,access:{has:e=>"editable"in e,get:e=>e.editable,set:(e,t)=>{e.editable=t}},metadata:n},F,V),i(null,null,g,{kind:"field",name:"containerEl",static:!1,private:!1,access:{has:e=>"containerEl"in e,get:e=>e.containerEl,set:(e,t)=>{e.containerEl=t}},metadata:n},J,K),i(null,null,m,{kind:"field",name:"svgEl",static:!1,private:!1,access:{has:e=>"svgEl"in e,get:e=>e.svgEl,set:(e,t)=>{e.svgEl=t}},metadata:n},Q,Z),i(null,null,f,{kind:"field",name:"nodesContainerEl",static:!1,private:!1,access:{has:e=>"nodesContainerEl"in e,get:e=>e.nodesContainerEl,set:(e,t)=>{e.nodesContainerEl=t}},metadata:n},ee,te),i(null,null,v,{kind:"field",name:"minimapSvgEl",static:!1,private:!1,access:{has:e=>"minimapSvgEl"in e,get:e=>e.minimapSvgEl,set:(e,t)=>{e.minimapSvgEl=t}},metadata:n},ie,se),i(null,e={value:o},C,{kind:"class",name:o.name,metadata:n},null,N),o=e.value,n&&Object.defineProperty(o,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n}),s(o,N)}emitNodeDrag(e,t,i){return{node:e,x:t,y:i}}emitNodeSelect(e){return{node:e}}emitEdgeConnect(e){return{edge:e}}emitEdgeDisconnect(e){return{edge:e}}emitCanvasClick(e,t){return{x:e,y:t}}init(){this.resizeObserver=new ResizeObserver(e=>{for(const t of e)this.containerWidth=t.contentRect.width||800,this.containerHeight=t.contentRect.height||500,this.initialized&&this.rebuild()}),this.resizeObserver.observe(this),requestAnimationFrame(()=>{this.ensureSvgSetup(),this.attachListeners(),this.initialized=!0,this.rebuild()})}onNodesChange(){this.initialized&&this.rebuild()}onEdgesChange(){this.initialized&&this.rebuild()}onMinimapChange(){this.initialized&&this.updateMinimap()}cleanup(){document.removeEventListener("mousemove",this.boundMouseMove),document.removeEventListener("mouseup",this.boundMouseUp),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}addNode(e){this.nodes=[...this.nodes,e]}removeNode(e){this.nodes=this.nodes.filter(t=>t.id!==e),this.edges=this.edges.filter(t=>t.source!==e&&t.target!==e),this.selectedNodeId===e&&(this.selectedNodeId="",this.emitNodeSelect(null))}addEdge(e){this.edges=[...this.edges,e]}removeEdge(e){const t=this.edges.find(t=>t.id===e);this.edges=this.edges.filter(t=>t.id!==e),t&&this.emitEdgeDisconnect(t)}fitView(){if(0===this.nodes.length)return;let e=1/0,t=1/0,i=-1/0,s=-1/0;for(const o of this.nodes){const r=o.width||n,a=o.height||80;e=Math.min(e,o.x),t=Math.min(t,o.y),i=Math.max(i,o.x+r),s=Math.max(s,o.y+a)}const o=i-e+80,r=s-t+80,a=this.containerWidth/o,d=this.containerHeight/r;this.zoomScale=Math.min(a,d,1.5),this.panX=(this.containerWidth-o*this.zoomScale)/2-e*this.zoomScale+40*this.zoomScale,this.panY=(this.containerHeight-r*this.zoomScale)/2-t*this.zoomScale+40*this.zoomScale,this.rebuild()}ensureSvgSetup(){if(this.edgesGroupEl&&this.transformGroupEl)return!0;const e=this.svgEl;if(!e)return!1;const t="http://www.w3.org/2000/svg";this.defsEl=document.createElementNS(t,"defs");const i=document.createElementNS(t,"marker");i.setAttribute("id","flow-arrow"),i.setAttribute("viewBox","0 0 10 10"),i.setAttribute("refX","10"),i.setAttribute("refY","5"),i.setAttribute("markerWidth","8"),i.setAttribute("markerHeight","8"),i.setAttribute("orient","auto-start-reverse");const s=document.createElementNS(t,"path");return s.setAttribute("d","M 0 0 L 10 5 L 0 10 z"),s.setAttribute("class","flow__arrow"),i.appendChild(s),this.defsEl.appendChild(i),e.appendChild(this.defsEl),this.transformGroupEl=document.createElementNS(t,"g"),this.edgesGroupEl=document.createElementNS(t,"g"),this.previewGroupEl=document.createElementNS(t,"g"),this.transformGroupEl.appendChild(this.edgesGroupEl),this.transformGroupEl.appendChild(this.previewGroupEl),e.appendChild(this.transformGroupEl),!0}attachListeners(){if(this.listenersAttached)return;const e=this.svgEl;e&&(this.listenersAttached=!0,e.addEventListener("mousedown",e=>this.handleSvgMouseDown(e)),e.addEventListener("wheel",e=>this.handleWheel(e),{passive:!1}),e.addEventListener("click",t=>{if(t.target===e||t.target.closest(".flow__svg")===e&&!t.target.closest(".flow__edge")){const e=this.screenToCanvas(t.clientX,t.clientY);this.selectedNodeId="",this.selectedEdgeId="",this.emitNodeSelect(null),this.emitCanvasClick(e.x,e.y),this.rebuild()}}),e.addEventListener("click",e=>{const t=e.target.closest(".flow__edge");if(t){e.stopPropagation();const i=t.getAttribute("data-edge-id");i&&(this.selectedEdgeId=i,this.selectedNodeId="",this.rebuild())}}))}screenToCanvas(e,t){const i=this.svgEl;if(!i)return{x:e,y:t};const s=i.getBoundingClientRect();return{x:(e-s.left-this.panX)/this.zoomScale,y:(t-s.top-this.panY)/this.zoomScale}}snap(e){return this.snapToGrid?Math.round(e/this.gridSize)*this.gridSize:e}getPortPosition(e,t,i){const s=this.nodes.find(t=>t.id===e);if(!s)return{x:0,y:0};const o=s.width||n,r=s.height||80,a=i?s.outputs||[]:s.inputs||[],d=a.findIndex(e=>e.id===t);if(-1===d)return{x:s.x,y:s.y};const l=r-28,c=28+(a.length>1?l/(a.length+1):l/2)*(d+1);return{x:i?s.x+o:s.x,y:s.y+c}}findNearestPort(e,t,i){let s=null,n=20;for(const o of this.nodes){const r=i?o.outputs||[]:o.inputs||[];for(const a of r){const r=this.getPortPosition(o.id,a.id,i),d=r.x-e,l=r.y-t,c=Math.sqrt(d*d+l*l);c<n&&(n=c,s={nodeId:o.id,portId:a.id})}}return s}handleSvgMouseDown(e){0===e.button&&this.panEnabled&&(e.preventDefault(),this.isPanning=!0,this.panStartX=e.clientX,this.panStartY=e.clientY,this.panStartPanX=this.panX,this.panStartPanY=this.panY,document.addEventListener("mousemove",this.boundMouseMove),document.addEventListener("mouseup",this.boundMouseUp))}handleNodeMouseDown(e,t){e.preventDefault(),e.stopPropagation();const i=this.nodes.find(e=>e.id===t);if(!i)return;this.selectedNodeId=t,this.selectedEdgeId="",this.emitNodeSelect(i),this.dragNode=i;const s=this.screenToCanvas(e.clientX,e.clientY);this.dragOffsetX=s.x-i.x,this.dragOffsetY=s.y-i.y,document.addEventListener("mousemove",this.boundMouseMove),document.addEventListener("mouseup",this.boundMouseUp),this.rebuild()}handlePortMouseDown(e,t,i,s){if(!this.editable)return;e.preventDefault(),e.stopPropagation(),this.drawingEdge=!0,this.drawSourceNodeId=t,this.drawSourcePortId=i,this.drawSourceIsOutput=s;const n=this.screenToCanvas(e.clientX,e.clientY);this.drawEndX=n.x,this.drawEndY=n.y,document.addEventListener("mousemove",this.boundMouseMove),document.addEventListener("mouseup",this.boundMouseUp)}handleMouseMove(e){if(this.dragNode){const t=this.screenToCanvas(e.clientX,e.clientY),i=this.snap(t.x-this.dragOffsetX),s=this.snap(t.y-this.dragOffsetY);this.dragNode.x=i,this.dragNode.y=s,this.emitNodeDrag(this.dragNode,i,s),this.rebuild()}else if(this.drawingEdge){const t=this.screenToCanvas(e.clientX,e.clientY);this.drawEndX=t.x,this.drawEndY=t.y,this.updateEdgePreview()}else if(this.isPanning){const t=e.clientX-this.panStartX,i=e.clientY-this.panStartY;this.panX=this.panStartPanX+t,this.panY=this.panStartPanY+i,this.rebuild()}}handleMouseUp(e){this.drawingEdge&&this.finishEdgeDraw(e),this.dragNode=null,this.isPanning=!1,this.drawingEdge=!1,document.removeEventListener("mousemove",this.boundMouseMove),document.removeEventListener("mouseup",this.boundMouseUp),this.clearEdgePreview(),this.rebuild()}finishEdgeDraw(e){const t=this.screenToCanvas(e.clientX,e.clientY),i=!this.drawSourceIsOutput,s=this.findNearestPort(t.x,t.y,i);if(s&&s.nodeId!==this.drawSourceNodeId){const e=this.drawSourceIsOutput?this.drawSourceNodeId:s.nodeId,t=this.drawSourceIsOutput?this.drawSourcePortId:s.portId,i=this.drawSourceIsOutput?s.nodeId:this.drawSourceNodeId,n=this.drawSourceIsOutput?s.portId:this.drawSourcePortId,o=this.edges.some(s=>s.source===e&&s.target===i&&s.sourcePort===t&&s.targetPort===n);if(!o){const s={id:`edge-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,source:e,target:i,sourcePort:t,targetPort:n};this.edges=[...this.edges,s],this.emitEdgeConnect(s)}}}handleWheel(e){if(!this.zoomEnabled)return;e.preventDefault();const t=this.svgEl;if(!t)return;const i=t.getBoundingClientRect(),s=e.clientX-i.left,n=e.clientY-i.top,o=e.deltaY>0?.9:1.1,r=Math.max(.2,Math.min(4,this.zoomScale*o));this.panX=s-(s-this.panX)*(r/this.zoomScale),this.panY=n-(n-this.panY)*(r/this.zoomScale),this.zoomScale=r,this.rebuild()}bezierPath(e,t,i,s){const n=.5*Math.abs(i-e);return`M ${e} ${t} C ${e+n} ${t}, ${i-n} ${s}, ${i} ${s}`}updateEdgePreview(){if(!this.previewGroupEl)return;const e=this.getPortPosition(this.drawSourceNodeId,this.drawSourcePortId,this.drawSourceIsOutput);let t,i,s,n;this.drawSourceIsOutput?(t=e.x,i=e.y,s=this.drawEndX,n=this.drawEndY):(t=this.drawEndX,i=this.drawEndY,s=e.x,n=e.y);const o=this.bezierPath(t,i,s,n);this.previewGroupEl.innerHTML=`<path class="flow__edge-preview" d="${o}" />`}clearEdgePreview(){this.previewGroupEl&&(this.previewGroupEl.innerHTML="")}gridPatternSvg(){const e=this.gridSize;return`<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="flow-grid-small" width="${e}" height="${e}" patternUnits="userSpaceOnUse" patternTransform="translate(${this.panX%(e*this.zoomScale)}, ${this.panY%(e*this.zoomScale)}) scale(${this.zoomScale})"><circle cx="${e/2}" cy="${e/2}" r="0.5" fill="var(--snice-color-text-tertiary, rgb(115 115 115))" opacity="0.3"/></pattern></defs><rect width="100%" height="100%" fill="url(#flow-grid-small)"/></svg>`}rebuild(){this.ensureSvgSetup(),this.attachListeners(),this.rebuildTransform(),this.rebuildEdges(),this.rebuildNodes(),this.updateGrid(),this.updateMinimap()}rebuildTransform(){this.transformGroupEl&&this.transformGroupEl.setAttribute("transform",`translate(${this.panX}, ${this.panY}) scale(${this.zoomScale})`)}rebuildEdges(){if(!this.edgesGroupEl)return;let e="";for(const t of this.edges){const i=t.sourcePort||this.nodes.find(e=>e.id===t.source)?.outputs?.[0]?.id||"",s=t.targetPort||this.nodes.find(e=>e.id===t.target)?.inputs?.[0]?.id||"",n=this.getPortPosition(t.source,i,!0),o=this.getPortPosition(t.target,s,!1),r=this.bezierPath(n.x,n.y,o.x,o.y),a=["flow__edge"];t.id===this.selectedEdgeId&&a.push("flow__edge--selected"),t.animated&&a.push("flow__edge--animated");const d=t.color?` stroke="${t.color}"`:"";if(e+=`<path class="${a.join(" ")}" d="${r}" data-edge-id="${t.id}" marker-end="url(#flow-arrow)"${d} />`,t.label){e+=`<text class="flow__edge-label" x="${(n.x+o.x)/2}" y="${(n.y+o.y)/2-8}">${t.label}</text>`}}this.edgesGroupEl.innerHTML=e}rebuildNodes(){const e=this.nodesContainerEl;if(!e)return;let t="";for(const e of this.nodes){const i=e.width||n,s=(e.height,e.x*this.zoomScale+this.panX),o=e.y*this.zoomScale+this.panY,r=i*this.zoomScale;this.zoomScale;const a=["flow__node"];e.id===this.selectedNodeId&&a.push("flow__node--selected"),this.dragNode&&this.dragNode.id===e.id&&a.push("flow__node--dragging");const d=e.color?`background:${e.color};color:white;`:"";t+=`<div class="${a.join(" ")}" data-node-id="${e.id}" style="left:${s}px;top:${o}px;width:${r}px;transform-origin:top left;transform:scale(1);">`,t+=`<div class="flow__node-header" style="${d}">`,e.type&&(t+=`<span class="flow__node-type">${e.type}</span>`),t+=`<span>${e.label||e.id}</span>`,t+="</div>",t+='<div class="flow__node-body">';const l=e.inputs||[];if(l.length>0){t+='<div class="flow__node-inputs">';for(const i of l){t+=`<div class="${["flow__port",this.isPortConnected(e.id,i.id,!1)?"flow__port--connected":""].filter(Boolean).join(" ")}" data-port-id="${i.id}" data-port-type="input" data-node-id="${e.id}">`,t+='<span class="flow__port-dot"></span>',i.label&&(t+=`<span>${i.label}</span>`),t+="</div>"}t+="</div>"}const c=e.outputs||[];if(c.length>0){t+='<div class="flow__node-outputs">';for(const i of c){t+=`<div class="${["flow__port","flow__port--output",this.isPortConnected(e.id,i.id,!0)?"flow__port--connected":""].filter(Boolean).join(" ")}" data-port-id="${i.id}" data-port-type="output" data-node-id="${e.id}">`,i.label&&(t+=`<span>${i.label}</span>`),t+='<span class="flow__port-dot"></span>',t+="</div>"}t+="</div>"}t+="</div></div>"}e.innerHTML=t;e.querySelectorAll(".flow__node").forEach(e=>{const t=e.getAttribute("data-node-id");e.addEventListener("mousedown",e=>this.handleNodeMouseDown(e,t))});e.querySelectorAll(".flow__port").forEach(e=>{const t=e.getAttribute("data-port-id"),i=e.getAttribute("data-node-id"),s="output"===e.getAttribute("data-port-type");e.addEventListener("mousedown",e=>this.handlePortMouseDown(e,i,t,s))})}isPortConnected(e,t,i){return this.edges.some(s=>i?s.source===e&&(s.sourcePort===t||!s.sourcePort&&t===this.nodes.find(t=>t.id===e)?.outputs?.[0]?.id):s.target===e&&(s.targetPort===t||!s.targetPort&&t===this.nodes.find(t=>t.id===e)?.inputs?.[0]?.id))}updateGrid(){const e=this.containerEl?.querySelector(".flow__grid");e&&(this.snapToGrid?(e.innerHTML=this.gridPatternSvg(),e.style.display=""):e.style.display="none")}updateMinimap(){const e=this.minimapSvgEl;if(!e||!this.minimap)return;if(0===this.nodes.length)return void(e.innerHTML="");let t=1/0,i=1/0,s=-1/0,o=-1/0;for(const e of this.nodes){const r=e.width||n,a=e.height||80;t=Math.min(t,e.x),i=Math.min(i,e.y),s=Math.max(s,e.x+r),o=Math.max(o,e.y+a)}t-=40,i-=40,s+=40,o+=40;const r=`${t} ${i} ${s-t} ${o-i}`;e.setAttribute("viewBox",r);let a="";for(const e of this.edges){const t=e.sourcePort||this.nodes.find(t=>t.id===e.source)?.outputs?.[0]?.id||"",i=e.targetPort||this.nodes.find(t=>t.id===e.target)?.inputs?.[0]?.id||"",s=this.getPortPosition(e.source,t,!0),n=this.getPortPosition(e.target,i,!1);a+=`<line class="flow__minimap-edge" x1="${s.x}" y1="${s.y}" x2="${n.x}" y2="${n.y}" />`}for(const e of this.nodes){const t=e.width||n,i=e.height||80;a+=`<rect class="flow__minimap-node" x="${e.x}" y="${e.y}" width="${t}" height="${i}" rx="2" />`}a+=`<rect class="flow__minimap-viewport" x="${-this.panX/this.zoomScale}" y="${-this.panY/this.zoomScale}" width="${this.containerWidth/this.zoomScale}" height="${this.containerHeight/this.zoomScale}" />`,e.innerHTML=a}renderContent(){return t.html`
8
+ <div class="flow">
9
+ <div class="flow__grid"></div>
10
+ <svg class="flow__svg"></svg>
11
+ <div class="flow__nodes"></div>
12
+ <div class="flow__minimap" style="${this.minimap?"":"display:none"}">
13
+ <svg class="flow__minimap-svg"></svg>
14
+ </div>
15
+ </div>
16
+ `}componentStyles(){return t.css`${":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.flow{position:relative;width:100%;height:100%;min-height:25rem;overflow:hidden;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px}.flow__grid{position:absolute;inset:0;pointer-events:none}.flow__svg{display:block;width:100%;height:100%;cursor:grab;position:absolute;inset:0}.flow__svg:active{cursor:grabbing}.flow__edge{fill:none;stroke:var(--snice-color-border,rgb(226 226 226));stroke-width:2px;cursor:pointer;transition:stroke var(--snice-transition-fast, 150ms) ease}.flow__edge:hover{stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:3px}.flow__edge--selected{stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:2px}.flow__edge--animated{stroke-dasharray:5 5;animation:.5s linear infinite flow-dash}@keyframes flow-dash{to{stroke-dashoffset:-10}}.flow__edge-label{font-size:.6875rem;fill:var(--snice-color-text-secondary,rgb(82 82 82));text-anchor:middle;pointer-events:none;dominant-baseline:central}.flow__arrow{fill:var(--snice-color-border,rgb(226 226 226))}.flow__edge-preview{fill:none;stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:2px;stroke-dasharray:6 3;pointer-events:none}.flow__nodes{position:absolute;inset:0;pointer-events:none}.flow__node{position:absolute;pointer-events:auto;background:var(--snice-color-background-element,rgb(252 251 249));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;min-width:8.75rem;box-shadow:var(--snice-shadow-sm,0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1));user-select:none;cursor:grab;transition:box-shadow var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease}.flow__node:hover{box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1))}.flow__node--selected{border-color:var(--snice-color-primary,rgb(37 99 235));box-shadow:0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.flow__node--dragging{cursor:grabbing;z-index:10;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}.flow__node-header{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border-bottom:1px solid var(--snice-color-border,rgb(226 226 226));font-size:.75rem;font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23));border-radius:3px 3px 0 0;display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.flow__node-type{font-size:.625rem;color:var(--snice-color-text-tertiary,rgb(115 115 115));font-weight:var(--snice-font-weight-medium,500);text-transform:uppercase;letter-spacing:.05em}.flow__node-body{padding:var(--snice-spacing-2xs,.25rem) 0;display:flex;justify-content:space-between;gap:var(--snice-spacing-xs,.5rem)}.flow__node-inputs,.flow__node-outputs{display:flex;flex-direction:column;gap:var(--snice-spacing-3xs,.125rem)}.flow__node-outputs{align-items:flex-end}.flow__port{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);font-size:.6875rem;color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:crosshair;position:relative}.flow__port-dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--snice-color-border,rgb(226 226 226));border:2px solid var(--snice-color-background,rgb(255 255 255));box-shadow:0 0 0 1px var(--snice-color-border,rgb(226 226 226));transition:background var(--snice-transition-fast, 150ms) ease,transform var(--snice-transition-fast, 150ms) ease;flex-shrink:0}.flow__port:hover .flow__port-dot{background:var(--snice-color-primary,rgb(37 99 235));transform:scale(1.3);box-shadow:0 0 0 1px var(--snice-color-primary,rgb(37 99 235))}.flow__port--connected .flow__port-dot{background:var(--snice-color-primary,rgb(37 99 235));box-shadow:0 0 0 1px var(--snice-color-primary,rgb(37 99 235))}.flow__port--output{flex-direction:row-reverse}.flow__minimap{position:absolute;bottom:var(--snice-spacing-xs,.5rem);right:var(--snice-spacing-xs,.5rem);width:9.375rem;height:6.25rem;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;overflow:hidden;box-shadow:var(--snice-shadow-sm,0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1));opacity:.9;z-index:20}.flow__minimap-svg{display:block;width:100%;height:100%}.flow__minimap-node{fill:var(--snice-color-primary,rgb(37 99 235));opacity:.6}.flow__minimap-edge{stroke:var(--snice-color-border,rgb(226 226 226));stroke-width:1px;fill:none}.flow__minimap-viewport{fill:var(--snice-color-primary,rgb(37 99 235));fill-opacity:0.08;stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:1px}"}`}},o})();return e.SniceFlow=o,e}({},Snice);
17
+ //# sourceMappingURL=snice-flow.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snice-flow.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/flow/snice-flow.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, dispatch, ready, watch, dispose, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.flow{position:relative;width:100%;height:100%;min-height:25rem;overflow:hidden;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px}.flow__grid{position:absolute;inset:0;pointer-events:none}.flow__svg{display:block;width:100%;height:100%;cursor:grab;position:absolute;inset:0}.flow__svg:active{cursor:grabbing}.flow__edge{fill:none;stroke:var(--snice-color-border,rgb(226 226 226));stroke-width:2px;cursor:pointer;transition:stroke var(--snice-transition-fast, 150ms) ease}.flow__edge:hover{stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:3px}.flow__edge--selected{stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:2px}.flow__edge--animated{stroke-dasharray:5 5;animation:.5s linear infinite flow-dash}@keyframes flow-dash{to{stroke-dashoffset:-10}}.flow__edge-label{font-size:.6875rem;fill:var(--snice-color-text-secondary,rgb(82 82 82));text-anchor:middle;pointer-events:none;dominant-baseline:central}.flow__arrow{fill:var(--snice-color-border,rgb(226 226 226))}.flow__edge-preview{fill:none;stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:2px;stroke-dasharray:6 3;pointer-events:none}.flow__nodes{position:absolute;inset:0;pointer-events:none}.flow__node{position:absolute;pointer-events:auto;background:var(--snice-color-background-element,rgb(252 251 249));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;min-width:8.75rem;box-shadow:var(--snice-shadow-sm,0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1));user-select:none;cursor:grab;transition:box-shadow var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease}.flow__node:hover{box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1))}.flow__node--selected{border-color:var(--snice-color-primary,rgb(37 99 235));box-shadow:0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.flow__node--dragging{cursor:grabbing;z-index:10;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}.flow__node-header{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border-bottom:1px solid var(--snice-color-border,rgb(226 226 226));font-size:.75rem;font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23));border-radius:3px 3px 0 0;display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.flow__node-type{font-size:.625rem;color:var(--snice-color-text-tertiary,rgb(115 115 115));font-weight:var(--snice-font-weight-medium,500);text-transform:uppercase;letter-spacing:.05em}.flow__node-body{padding:var(--snice-spacing-2xs,.25rem) 0;display:flex;justify-content:space-between;gap:var(--snice-spacing-xs,.5rem)}.flow__node-inputs,.flow__node-outputs{display:flex;flex-direction:column;gap:var(--snice-spacing-3xs,.125rem)}.flow__node-outputs{align-items:flex-end}.flow__port{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);font-size:.6875rem;color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:crosshair;position:relative}.flow__port-dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--snice-color-border,rgb(226 226 226));border:2px solid var(--snice-color-background,rgb(255 255 255));box-shadow:0 0 0 1px var(--snice-color-border,rgb(226 226 226));transition:background var(--snice-transition-fast, 150ms) ease,transform var(--snice-transition-fast, 150ms) ease;flex-shrink:0}.flow__port:hover .flow__port-dot{background:var(--snice-color-primary,rgb(37 99 235));transform:scale(1.3);box-shadow:0 0 0 1px var(--snice-color-primary,rgb(37 99 235))}.flow__port--connected .flow__port-dot{background:var(--snice-color-primary,rgb(37 99 235));box-shadow:0 0 0 1px var(--snice-color-primary,rgb(37 99 235))}.flow__port--output{flex-direction:row-reverse}.flow__minimap{position:absolute;bottom:var(--snice-spacing-xs,.5rem);right:var(--snice-spacing-xs,.5rem);width:9.375rem;height:6.25rem;background:var(--snice-color-background,rgb(255 255 255));border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:4px;overflow:hidden;box-shadow:var(--snice-shadow-sm,0 1px 3px 0 rgb(0 0 0 / .1),0 1px 2px -1px rgb(0 0 0 / .1));opacity:.9;z-index:20}.flow__minimap-svg{display:block;width:100%;height:100%}.flow__minimap-node{fill:var(--snice-color-primary,rgb(37 99 235));opacity:.6}.flow__minimap-edge{stroke:var(--snice-color-border,rgb(226 226 226));stroke-width:1px;fill:none}.flow__minimap-viewport{fill:var(--snice-color-primary,rgb(37 99 235));fill-opacity:0.08;stroke:var(--snice-color-primary,rgb(37 99 235));stroke-width:1px}\";\n\nconst DEFAULT_NODE_WIDTH = 160;\nconst DEFAULT_NODE_HEIGHT = 80;\nlet SniceFlow = (() => {\n let _classDecorators = [element('snice-flow')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _nodes_decorators;\n let _nodes_initializers = [];\n let _nodes_extraInitializers = [];\n let _edges_decorators;\n let _edges_initializers = [];\n let _edges_extraInitializers = [];\n let _snapToGrid_decorators;\n let _snapToGrid_initializers = [];\n let _snapToGrid_extraInitializers = [];\n let _gridSize_decorators;\n let _gridSize_initializers = [];\n let _gridSize_extraInitializers = [];\n let _zoomEnabled_decorators;\n let _zoomEnabled_initializers = [];\n let _zoomEnabled_extraInitializers = [];\n let _panEnabled_decorators;\n let _panEnabled_initializers = [];\n let _panEnabled_extraInitializers = [];\n let _minimap_decorators;\n let _minimap_initializers = [];\n let _minimap_extraInitializers = [];\n let _editable_decorators;\n let _editable_initializers = [];\n let _editable_extraInitializers = [];\n let _containerEl_decorators;\n let _containerEl_initializers = [];\n let _containerEl_extraInitializers = [];\n let _svgEl_decorators;\n let _svgEl_initializers = [];\n let _svgEl_extraInitializers = [];\n let _nodesContainerEl_decorators;\n let _nodesContainerEl_initializers = [];\n let _nodesContainerEl_extraInitializers = [];\n let _minimapSvgEl_decorators;\n let _minimapSvgEl_initializers = [];\n let _minimapSvgEl_extraInitializers = [];\n let _emitNodeDrag_decorators;\n let _emitNodeSelect_decorators;\n let _emitEdgeConnect_decorators;\n let _emitEdgeDisconnect_decorators;\n let _emitCanvasClick_decorators;\n let _init_decorators;\n let _onNodesChange_decorators;\n let _onEdgesChange_decorators;\n let _onMinimapChange_decorators;\n let _cleanup_decorators;\n let _renderContent_decorators;\n let _componentStyles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.nodes = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _nodes_initializers, []));\n this.edges = (__runInitializers(this, _nodes_extraInitializers), __runInitializers(this, _edges_initializers, []));\n this.snapToGrid = (__runInitializers(this, _edges_extraInitializers), __runInitializers(this, _snapToGrid_initializers, true));\n this.gridSize = (__runInitializers(this, _snapToGrid_extraInitializers), __runInitializers(this, _gridSize_initializers, 20));\n this.zoomEnabled = (__runInitializers(this, _gridSize_extraInitializers), __runInitializers(this, _zoomEnabled_initializers, true));\n this.panEnabled = (__runInitializers(this, _zoomEnabled_extraInitializers), __runInitializers(this, _panEnabled_initializers, true));\n this.minimap = (__runInitializers(this, _panEnabled_extraInitializers), __runInitializers(this, _minimap_initializers, true));\n this.editable = (__runInitializers(this, _minimap_extraInitializers), __runInitializers(this, _editable_initializers, true));\n this.containerEl = (__runInitializers(this, _editable_extraInitializers), __runInitializers(this, _containerEl_initializers, void 0));\n this.svgEl = (__runInitializers(this, _containerEl_extraInitializers), __runInitializers(this, _svgEl_initializers, void 0));\n this.nodesContainerEl = (__runInitializers(this, _svgEl_extraInitializers), __runInitializers(this, _nodesContainerEl_initializers, void 0));\n this.minimapSvgEl = (__runInitializers(this, _nodesContainerEl_extraInitializers), __runInitializers(this, _minimapSvgEl_initializers, void 0));\n // SVG groups (created manually for SVG namespace)\n this.transformGroupEl = __runInitializers(this, _minimapSvgEl_extraInitializers);\n // Transform state\n this.zoomScale = 1;\n this.panX = 0;\n this.panY = 0;\n // Drag state\n this.dragNode = null;\n this.dragOffsetX = 0;\n this.dragOffsetY = 0;\n // Pan state\n this.isPanning = false;\n this.panStartX = 0;\n this.panStartY = 0;\n this.panStartPanX = 0;\n this.panStartPanY = 0;\n // Edge drawing state\n this.drawingEdge = false;\n this.drawSourceNodeId = '';\n this.drawSourcePortId = '';\n this.drawSourceIsOutput = true;\n this.drawEndX = 0;\n this.drawEndY = 0;\n // Selection\n this.selectedNodeId = '';\n this.selectedEdgeId = '';\n // Sizing\n this.containerWidth = 800;\n this.containerHeight = 500;\n this.resizeObserver = null;\n // Bound handlers\n this.boundMouseMove = this.handleMouseMove.bind(this);\n this.boundMouseUp = this.handleMouseUp.bind(this);\n this.initialized = false;\n this.listenersAttached = false;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _nodes_decorators = [property({ type: Array, attribute: false })];\n _edges_decorators = [property({ type: Array, attribute: false })];\n _snapToGrid_decorators = [property({ type: Boolean, attribute: 'snap-to-grid' })];\n _gridSize_decorators = [property({ type: Number, attribute: 'grid-size' })];\n _zoomEnabled_decorators = [property({ type: Boolean, attribute: 'zoom-enabled' })];\n _panEnabled_decorators = [property({ type: Boolean, attribute: 'pan-enabled' })];\n _minimap_decorators = [property({ type: Boolean })];\n _editable_decorators = [property({ type: Boolean })];\n _containerEl_decorators = [query('.flow')];\n _svgEl_decorators = [query('.flow__svg')];\n _nodesContainerEl_decorators = [query('.flow__nodes')];\n _minimapSvgEl_decorators = [query('.flow__minimap-svg')];\n _emitNodeDrag_decorators = [dispatch('node-drag', { bubbles: true, composed: true })];\n _emitNodeSelect_decorators = [dispatch('node-select', { bubbles: true, composed: true })];\n _emitEdgeConnect_decorators = [dispatch('edge-connect', { bubbles: true, composed: true })];\n _emitEdgeDisconnect_decorators = [dispatch('edge-disconnect', { bubbles: true, composed: true })];\n _emitCanvasClick_decorators = [dispatch('canvas-click', { bubbles: true, composed: true })];\n _init_decorators = [ready()];\n _onNodesChange_decorators = [watch('nodes')];\n _onEdgesChange_decorators = [watch('edges')];\n _onMinimapChange_decorators = [watch('minimap')];\n _cleanup_decorators = [dispose()];\n _renderContent_decorators = [render({ once: true })];\n _componentStyles_decorators = [styles()];\n __esDecorate(this, null, _emitNodeDrag_decorators, { kind: \"method\", name: \"emitNodeDrag\", static: false, private: false, access: { has: obj => \"emitNodeDrag\" in obj, get: obj => obj.emitNodeDrag }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitNodeSelect_decorators, { kind: \"method\", name: \"emitNodeSelect\", static: false, private: false, access: { has: obj => \"emitNodeSelect\" in obj, get: obj => obj.emitNodeSelect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEdgeConnect_decorators, { kind: \"method\", name: \"emitEdgeConnect\", static: false, private: false, access: { has: obj => \"emitEdgeConnect\" in obj, get: obj => obj.emitEdgeConnect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEdgeDisconnect_decorators, { kind: \"method\", name: \"emitEdgeDisconnect\", static: false, private: false, access: { has: obj => \"emitEdgeDisconnect\" in obj, get: obj => obj.emitEdgeDisconnect }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitCanvasClick_decorators, { kind: \"method\", name: \"emitCanvasClick\", static: false, private: false, access: { has: obj => \"emitCanvasClick\" in obj, get: obj => obj.emitCanvasClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onNodesChange_decorators, { kind: \"method\", name: \"onNodesChange\", static: false, private: false, access: { has: obj => \"onNodesChange\" in obj, get: obj => obj.onNodesChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onEdgesChange_decorators, { kind: \"method\", name: \"onEdgesChange\", static: false, private: false, access: { has: obj => \"onEdgesChange\" in obj, get: obj => obj.onEdgesChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onMinimapChange_decorators, { kind: \"method\", name: \"onMinimapChange\", static: false, private: false, access: { has: obj => \"onMinimapChange\" in obj, get: obj => obj.onMinimapChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanup_decorators, { kind: \"method\", name: \"cleanup\", static: false, private: false, access: { has: obj => \"cleanup\" in obj, get: obj => obj.cleanup }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderContent_decorators, { kind: \"method\", name: \"renderContent\", static: false, private: false, access: { has: obj => \"renderContent\" in obj, get: obj => obj.renderContent }, 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, _nodes_decorators, { kind: \"field\", name: \"nodes\", static: false, private: false, access: { has: obj => \"nodes\" in obj, get: obj => obj.nodes, set: (obj, value) => { obj.nodes = value; } }, metadata: _metadata }, _nodes_initializers, _nodes_extraInitializers);\n __esDecorate(null, null, _edges_decorators, { kind: \"field\", name: \"edges\", static: false, private: false, access: { has: obj => \"edges\" in obj, get: obj => obj.edges, set: (obj, value) => { obj.edges = value; } }, metadata: _metadata }, _edges_initializers, _edges_extraInitializers);\n __esDecorate(null, null, _snapToGrid_decorators, { kind: \"field\", name: \"snapToGrid\", static: false, private: false, access: { has: obj => \"snapToGrid\" in obj, get: obj => obj.snapToGrid, set: (obj, value) => { obj.snapToGrid = value; } }, metadata: _metadata }, _snapToGrid_initializers, _snapToGrid_extraInitializers);\n __esDecorate(null, null, _gridSize_decorators, { kind: \"field\", name: \"gridSize\", static: false, private: false, access: { has: obj => \"gridSize\" in obj, get: obj => obj.gridSize, set: (obj, value) => { obj.gridSize = value; } }, metadata: _metadata }, _gridSize_initializers, _gridSize_extraInitializers);\n __esDecorate(null, null, _zoomEnabled_decorators, { kind: \"field\", name: \"zoomEnabled\", static: false, private: false, access: { has: obj => \"zoomEnabled\" in obj, get: obj => obj.zoomEnabled, set: (obj, value) => { obj.zoomEnabled = value; } }, metadata: _metadata }, _zoomEnabled_initializers, _zoomEnabled_extraInitializers);\n __esDecorate(null, null, _panEnabled_decorators, { kind: \"field\", name: \"panEnabled\", static: false, private: false, access: { has: obj => \"panEnabled\" in obj, get: obj => obj.panEnabled, set: (obj, value) => { obj.panEnabled = value; } }, metadata: _metadata }, _panEnabled_initializers, _panEnabled_extraInitializers);\n __esDecorate(null, null, _minimap_decorators, { kind: \"field\", name: \"minimap\", static: false, private: false, access: { has: obj => \"minimap\" in obj, get: obj => obj.minimap, set: (obj, value) => { obj.minimap = value; } }, metadata: _metadata }, _minimap_initializers, _minimap_extraInitializers);\n __esDecorate(null, null, _editable_decorators, { kind: \"field\", name: \"editable\", static: false, private: false, access: { has: obj => \"editable\" in obj, get: obj => obj.editable, set: (obj, value) => { obj.editable = value; } }, metadata: _metadata }, _editable_initializers, _editable_extraInitializers);\n __esDecorate(null, null, _containerEl_decorators, { kind: \"field\", name: \"containerEl\", static: false, private: false, access: { has: obj => \"containerEl\" in obj, get: obj => obj.containerEl, set: (obj, value) => { obj.containerEl = value; } }, metadata: _metadata }, _containerEl_initializers, _containerEl_extraInitializers);\n __esDecorate(null, null, _svgEl_decorators, { kind: \"field\", name: \"svgEl\", static: false, private: false, access: { has: obj => \"svgEl\" in obj, get: obj => obj.svgEl, set: (obj, value) => { obj.svgEl = value; } }, metadata: _metadata }, _svgEl_initializers, _svgEl_extraInitializers);\n __esDecorate(null, null, _nodesContainerEl_decorators, { kind: \"field\", name: \"nodesContainerEl\", static: false, private: false, access: { has: obj => \"nodesContainerEl\" in obj, get: obj => obj.nodesContainerEl, set: (obj, value) => { obj.nodesContainerEl = value; } }, metadata: _metadata }, _nodesContainerEl_initializers, _nodesContainerEl_extraInitializers);\n __esDecorate(null, null, _minimapSvgEl_decorators, { kind: \"field\", name: \"minimapSvgEl\", static: false, private: false, access: { has: obj => \"minimapSvgEl\" in obj, get: obj => obj.minimapSvgEl, set: (obj, value) => { obj.minimapSvgEl = value; } }, metadata: _metadata }, _minimapSvgEl_initializers, _minimapSvgEl_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 emitNodeDrag(node, x, y) {\n return { node, x, y };\n }\n emitNodeSelect(node) {\n return { node };\n }\n emitEdgeConnect(edge) {\n return { edge };\n }\n emitEdgeDisconnect(edge) {\n return { edge };\n }\n emitCanvasClick(x, y) {\n return { x, y };\n }\n init() {\n this.resizeObserver = new ResizeObserver(entries => {\n for (const entry of entries) {\n this.containerWidth = entry.contentRect.width || 800;\n this.containerHeight = entry.contentRect.height || 500;\n if (this.initialized)\n this.rebuild();\n }\n });\n this.resizeObserver.observe(this);\n requestAnimationFrame(() => {\n this.ensureSvgSetup();\n this.attachListeners();\n this.initialized = true;\n this.rebuild();\n });\n }\n onNodesChange() {\n if (this.initialized)\n this.rebuild();\n }\n onEdgesChange() {\n if (this.initialized)\n this.rebuild();\n }\n onMinimapChange() {\n if (this.initialized)\n this.updateMinimap();\n }\n cleanup() {\n document.removeEventListener('mousemove', this.boundMouseMove);\n document.removeEventListener('mouseup', this.boundMouseUp);\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n // --- Public API ---\n addNode(node) {\n this.nodes = [...this.nodes, node];\n }\n removeNode(id) {\n this.nodes = this.nodes.filter(n => n.id !== id);\n this.edges = this.edges.filter(e => e.source !== id && e.target !== id);\n if (this.selectedNodeId === id) {\n this.selectedNodeId = '';\n this.emitNodeSelect(null);\n }\n }\n addEdge(edge) {\n this.edges = [...this.edges, edge];\n }\n removeEdge(id) {\n const edge = this.edges.find(e => e.id === id);\n this.edges = this.edges.filter(e => e.id !== id);\n if (edge)\n this.emitEdgeDisconnect(edge);\n }\n fitView() {\n if (this.nodes.length === 0)\n return;\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n minX = Math.min(minX, node.x);\n minY = Math.min(minY, node.y);\n maxX = Math.max(maxX, node.x + w);\n maxY = Math.max(maxY, node.y + h);\n }\n const padding = 40;\n const contentW = maxX - minX + padding * 2;\n const contentH = maxY - minY + padding * 2;\n const scaleX = this.containerWidth / contentW;\n const scaleY = this.containerHeight / contentH;\n this.zoomScale = Math.min(scaleX, scaleY, 1.5);\n this.panX = (this.containerWidth - contentW * this.zoomScale) / 2 - minX * this.zoomScale + padding * this.zoomScale;\n this.panY = (this.containerHeight - contentH * this.zoomScale) / 2 - minY * this.zoomScale + padding * this.zoomScale;\n this.rebuild();\n }\n // --- SVG Setup ---\n ensureSvgSetup() {\n if (this.edgesGroupEl && this.transformGroupEl)\n return true;\n const svg = this.svgEl;\n if (!svg)\n return false;\n const ns = 'http://www.w3.org/2000/svg';\n // Defs for arrow marker\n this.defsEl = document.createElementNS(ns, 'defs');\n const marker = document.createElementNS(ns, 'marker');\n marker.setAttribute('id', 'flow-arrow');\n marker.setAttribute('viewBox', '0 0 10 10');\n marker.setAttribute('refX', '10');\n marker.setAttribute('refY', '5');\n marker.setAttribute('markerWidth', '8');\n marker.setAttribute('markerHeight', '8');\n marker.setAttribute('orient', 'auto-start-reverse');\n const path = document.createElementNS(ns, 'path');\n path.setAttribute('d', 'M 0 0 L 10 5 L 0 10 z');\n path.setAttribute('class', 'flow__arrow');\n marker.appendChild(path);\n this.defsEl.appendChild(marker);\n svg.appendChild(this.defsEl);\n // Transform group\n this.transformGroupEl = document.createElementNS(ns, 'g');\n this.edgesGroupEl = document.createElementNS(ns, 'g');\n this.previewGroupEl = document.createElementNS(ns, 'g');\n this.transformGroupEl.appendChild(this.edgesGroupEl);\n this.transformGroupEl.appendChild(this.previewGroupEl);\n svg.appendChild(this.transformGroupEl);\n return true;\n }\n attachListeners() {\n if (this.listenersAttached)\n return;\n const svg = this.svgEl;\n if (!svg)\n return;\n this.listenersAttached = true;\n svg.addEventListener('mousedown', (e) => this.handleSvgMouseDown(e));\n svg.addEventListener('wheel', (e) => this.handleWheel(e), { passive: false });\n svg.addEventListener('click', (e) => {\n // Only fire canvas click if clicking on the SVG background\n if (e.target === svg || e.target.closest('.flow__svg') === svg && !e.target.closest('.flow__edge')) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.selectedNodeId = '';\n this.selectedEdgeId = '';\n this.emitNodeSelect(null);\n this.emitCanvasClick(pos.x, pos.y);\n this.rebuild();\n }\n });\n // Edge click\n svg.addEventListener('click', (e) => {\n const edgePath = e.target.closest('.flow__edge');\n if (edgePath) {\n e.stopPropagation();\n const edgeId = edgePath.getAttribute('data-edge-id');\n if (edgeId) {\n this.selectedEdgeId = edgeId;\n this.selectedNodeId = '';\n this.rebuild();\n }\n }\n });\n }\n // --- Coordinate transforms ---\n screenToCanvas(sx, sy) {\n const svg = this.svgEl;\n if (!svg)\n return { x: sx, y: sy };\n const rect = svg.getBoundingClientRect();\n return {\n x: (sx - rect.left - this.panX) / this.zoomScale,\n y: (sy - rect.top - this.panY) / this.zoomScale,\n };\n }\n snap(v) {\n if (!this.snapToGrid)\n return v;\n return Math.round(v / this.gridSize) * this.gridSize;\n }\n // --- Port positions ---\n getPortPosition(nodeId, portId, isOutput) {\n const node = this.nodes.find(n => n.id === nodeId);\n if (!node)\n return { x: 0, y: 0 };\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n const ports = isOutput ? (node.outputs || []) : (node.inputs || []);\n const idx = ports.findIndex(p => p.id === portId);\n if (idx === -1)\n return { x: node.x, y: node.y };\n const headerHeight = 28;\n const portAreaHeight = h - headerHeight;\n const portSpacing = ports.length > 1 ? portAreaHeight / (ports.length + 1) : portAreaHeight / 2;\n const yOffset = headerHeight + portSpacing * (idx + 1);\n return {\n x: isOutput ? node.x + w : node.x,\n y: node.y + yOffset,\n };\n }\n findNearestPort(x, y, needOutput) {\n let best = null;\n let bestDist = 20; // max distance threshold\n for (const node of this.nodes) {\n const ports = needOutput ? (node.outputs || []) : (node.inputs || []);\n for (const port of ports) {\n const pos = this.getPortPosition(node.id, port.id, needOutput);\n const dx = pos.x - x;\n const dy = pos.y - y;\n const dist = Math.sqrt(dx * dx + dy * dy);\n if (dist < bestDist) {\n bestDist = dist;\n best = { nodeId: node.id, portId: port.id };\n }\n }\n }\n return best;\n }\n // --- Mouse handling ---\n handleSvgMouseDown(e) {\n if (e.button !== 0)\n return;\n // Background pan\n if (this.panEnabled) {\n e.preventDefault();\n this.isPanning = true;\n this.panStartX = e.clientX;\n this.panStartY = e.clientY;\n this.panStartPanX = this.panX;\n this.panStartPanY = this.panY;\n document.addEventListener('mousemove', this.boundMouseMove);\n document.addEventListener('mouseup', this.boundMouseUp);\n }\n }\n handleNodeMouseDown(e, nodeId) {\n e.preventDefault();\n e.stopPropagation();\n const node = this.nodes.find(n => n.id === nodeId);\n if (!node)\n return;\n // Select node\n this.selectedNodeId = nodeId;\n this.selectedEdgeId = '';\n this.emitNodeSelect(node);\n // Start drag\n this.dragNode = node;\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.dragOffsetX = pos.x - node.x;\n this.dragOffsetY = pos.y - node.y;\n document.addEventListener('mousemove', this.boundMouseMove);\n document.addEventListener('mouseup', this.boundMouseUp);\n this.rebuild();\n }\n handlePortMouseDown(e, nodeId, portId, isOutput) {\n if (!this.editable)\n return;\n e.preventDefault();\n e.stopPropagation();\n this.drawingEdge = true;\n this.drawSourceNodeId = nodeId;\n this.drawSourcePortId = portId;\n this.drawSourceIsOutput = isOutput;\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.drawEndX = pos.x;\n this.drawEndY = pos.y;\n document.addEventListener('mousemove', this.boundMouseMove);\n document.addEventListener('mouseup', this.boundMouseUp);\n }\n handleMouseMove(e) {\n if (this.dragNode) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n const newX = this.snap(pos.x - this.dragOffsetX);\n const newY = this.snap(pos.y - this.dragOffsetY);\n this.dragNode.x = newX;\n this.dragNode.y = newY;\n this.emitNodeDrag(this.dragNode, newX, newY);\n this.rebuild();\n }\n else if (this.drawingEdge) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n this.drawEndX = pos.x;\n this.drawEndY = pos.y;\n this.updateEdgePreview();\n }\n else if (this.isPanning) {\n const dx = e.clientX - this.panStartX;\n const dy = e.clientY - this.panStartY;\n this.panX = this.panStartPanX + dx;\n this.panY = this.panStartPanY + dy;\n this.rebuild();\n }\n }\n handleMouseUp(e) {\n if (this.drawingEdge) {\n this.finishEdgeDraw(e);\n }\n this.dragNode = null;\n this.isPanning = false;\n this.drawingEdge = false;\n document.removeEventListener('mousemove', this.boundMouseMove);\n document.removeEventListener('mouseup', this.boundMouseUp);\n this.clearEdgePreview();\n this.rebuild();\n }\n finishEdgeDraw(e) {\n const pos = this.screenToCanvas(e.clientX, e.clientY);\n // If started from output, find nearest input; vice versa\n const needOutput = !this.drawSourceIsOutput;\n const target = this.findNearestPort(pos.x, pos.y, needOutput);\n if (target && target.nodeId !== this.drawSourceNodeId) {\n const sourceNodeId = this.drawSourceIsOutput ? this.drawSourceNodeId : target.nodeId;\n const sourcePortId = this.drawSourceIsOutput ? this.drawSourcePortId : target.portId;\n const targetNodeId = this.drawSourceIsOutput ? target.nodeId : this.drawSourceNodeId;\n const targetPortId = this.drawSourceIsOutput ? target.portId : this.drawSourcePortId;\n // Check for duplicate\n const exists = this.edges.some(e => e.source === sourceNodeId && e.target === targetNodeId &&\n e.sourcePort === sourcePortId && e.targetPort === targetPortId);\n if (!exists) {\n const newEdge = {\n id: `edge-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,\n source: sourceNodeId,\n target: targetNodeId,\n sourcePort: sourcePortId,\n targetPort: targetPortId,\n };\n this.edges = [...this.edges, newEdge];\n this.emitEdgeConnect(newEdge);\n }\n }\n }\n handleWheel(e) {\n if (!this.zoomEnabled)\n return;\n e.preventDefault();\n const svg = this.svgEl;\n if (!svg)\n return;\n const rect = svg.getBoundingClientRect();\n const mouseX = e.clientX - rect.left;\n const mouseY = e.clientY - rect.top;\n const delta = e.deltaY > 0 ? 0.9 : 1.1;\n const newScale = Math.max(0.2, Math.min(4, this.zoomScale * delta));\n this.panX = mouseX - (mouseX - this.panX) * (newScale / this.zoomScale);\n this.panY = mouseY - (mouseY - this.panY) * (newScale / this.zoomScale);\n this.zoomScale = newScale;\n this.rebuild();\n }\n // --- Bezier curves ---\n bezierPath(x1, y1, x2, y2) {\n const dx = Math.abs(x2 - x1) * 0.5;\n const cp1x = x1 + dx;\n const cp1y = y1;\n const cp2x = x2 - dx;\n const cp2y = y2;\n return `M ${x1} ${y1} C ${cp1x} ${cp1y}, ${cp2x} ${cp2y}, ${x2} ${y2}`;\n }\n // --- Edge preview ---\n updateEdgePreview() {\n if (!this.previewGroupEl)\n return;\n const sourcePos = this.getPortPosition(this.drawSourceNodeId, this.drawSourcePortId, this.drawSourceIsOutput);\n let x1, y1, x2, y2;\n if (this.drawSourceIsOutput) {\n x1 = sourcePos.x;\n y1 = sourcePos.y;\n x2 = this.drawEndX;\n y2 = this.drawEndY;\n }\n else {\n x1 = this.drawEndX;\n y1 = this.drawEndY;\n x2 = sourcePos.x;\n y2 = sourcePos.y;\n }\n const d = this.bezierPath(x1, y1, x2, y2);\n this.previewGroupEl.innerHTML = `<path class=\"flow__edge-preview\" d=\"${d}\" />`;\n }\n clearEdgePreview() {\n if (this.previewGroupEl) {\n this.previewGroupEl.innerHTML = '';\n }\n }\n // --- Grid pattern ---\n gridPatternSvg() {\n const g = this.gridSize;\n return `<svg width=\"100%\" height=\"100%\" xmlns=\"http://www.w3.org/2000/svg\"><defs><pattern id=\"flow-grid-small\" width=\"${g}\" height=\"${g}\" patternUnits=\"userSpaceOnUse\" patternTransform=\"translate(${this.panX % (g * this.zoomScale)}, ${this.panY % (g * this.zoomScale)}) scale(${this.zoomScale})\"><circle cx=\"${g / 2}\" cy=\"${g / 2}\" r=\"0.5\" fill=\"var(--snice-color-text-tertiary, rgb(115 115 115))\" opacity=\"0.3\"/></pattern></defs><rect width=\"100%\" height=\"100%\" fill=\"url(#flow-grid-small)\"/></svg>`;\n }\n // --- Rebuild ---\n rebuild() {\n this.ensureSvgSetup();\n this.attachListeners();\n this.rebuildTransform();\n this.rebuildEdges();\n this.rebuildNodes();\n this.updateGrid();\n this.updateMinimap();\n }\n rebuildTransform() {\n if (this.transformGroupEl) {\n this.transformGroupEl.setAttribute('transform', `translate(${this.panX}, ${this.panY}) scale(${this.zoomScale})`);\n }\n }\n rebuildEdges() {\n if (!this.edgesGroupEl)\n return;\n let parts = '';\n for (const edge of this.edges) {\n const sourcePort = edge.sourcePort || (this.nodes.find(n => n.id === edge.source)?.outputs?.[0]?.id || '');\n const targetPort = edge.targetPort || (this.nodes.find(n => n.id === edge.target)?.inputs?.[0]?.id || '');\n const p1 = this.getPortPosition(edge.source, sourcePort, true);\n const p2 = this.getPortPosition(edge.target, targetPort, false);\n const d = this.bezierPath(p1.x, p1.y, p2.x, p2.y);\n const cls = ['flow__edge'];\n if (edge.id === this.selectedEdgeId)\n cls.push('flow__edge--selected');\n if (edge.animated)\n cls.push('flow__edge--animated');\n const colorAttr = edge.color ? ` stroke=\"${edge.color}\"` : '';\n parts += `<path class=\"${cls.join(' ')}\" d=\"${d}\" data-edge-id=\"${edge.id}\" marker-end=\"url(#flow-arrow)\"${colorAttr} />`;\n if (edge.label) {\n const mx = (p1.x + p2.x) / 2;\n const my = (p1.y + p2.y) / 2;\n parts += `<text class=\"flow__edge-label\" x=\"${mx}\" y=\"${my - 8}\">${edge.label}</text>`;\n }\n }\n this.edgesGroupEl.innerHTML = parts;\n }\n rebuildNodes() {\n const container = this.nodesContainerEl;\n if (!container)\n return;\n let nodesHtml = '';\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n const x = node.x * this.zoomScale + this.panX;\n const y = node.y * this.zoomScale + this.panY;\n const scaledW = w * this.zoomScale;\n h * this.zoomScale;\n const cls = ['flow__node'];\n if (node.id === this.selectedNodeId)\n cls.push('flow__node--selected');\n if (this.dragNode && this.dragNode.id === node.id)\n cls.push('flow__node--dragging');\n const headerBg = node.color ? `background:${node.color};color:white;` : '';\n nodesHtml += `<div class=\"${cls.join(' ')}\" data-node-id=\"${node.id}\" style=\"left:${x}px;top:${y}px;width:${scaledW}px;transform-origin:top left;transform:scale(1);\">`;\n nodesHtml += `<div class=\"flow__node-header\" style=\"${headerBg}\">`;\n if (node.type)\n nodesHtml += `<span class=\"flow__node-type\">${node.type}</span>`;\n nodesHtml += `<span>${node.label || node.id}</span>`;\n nodesHtml += `</div>`;\n nodesHtml += `<div class=\"flow__node-body\">`;\n // Inputs\n const inputs = node.inputs || [];\n if (inputs.length > 0) {\n nodesHtml += `<div class=\"flow__node-inputs\">`;\n for (const port of inputs) {\n const connected = this.isPortConnected(node.id, port.id, false);\n const pcls = ['flow__port', connected ? 'flow__port--connected' : ''].filter(Boolean).join(' ');\n nodesHtml += `<div class=\"${pcls}\" data-port-id=\"${port.id}\" data-port-type=\"input\" data-node-id=\"${node.id}\">`;\n nodesHtml += `<span class=\"flow__port-dot\"></span>`;\n if (port.label)\n nodesHtml += `<span>${port.label}</span>`;\n nodesHtml += `</div>`;\n }\n nodesHtml += `</div>`;\n }\n // Outputs\n const outputs = node.outputs || [];\n if (outputs.length > 0) {\n nodesHtml += `<div class=\"flow__node-outputs\">`;\n for (const port of outputs) {\n const connected = this.isPortConnected(node.id, port.id, true);\n const pcls = ['flow__port', 'flow__port--output', connected ? 'flow__port--connected' : ''].filter(Boolean).join(' ');\n nodesHtml += `<div class=\"${pcls}\" data-port-id=\"${port.id}\" data-port-type=\"output\" data-node-id=\"${node.id}\">`;\n if (port.label)\n nodesHtml += `<span>${port.label}</span>`;\n nodesHtml += `<span class=\"flow__port-dot\"></span>`;\n nodesHtml += `</div>`;\n }\n nodesHtml += `</div>`;\n }\n nodesHtml += `</div></div>`;\n }\n container.innerHTML = nodesHtml;\n // Attach event listeners to nodes and ports\n const nodeEls = container.querySelectorAll('.flow__node');\n nodeEls.forEach(el => {\n const nodeId = el.getAttribute('data-node-id');\n el.addEventListener('mousedown', (e) => this.handleNodeMouseDown(e, nodeId));\n });\n const portEls = container.querySelectorAll('.flow__port');\n portEls.forEach(el => {\n const portId = el.getAttribute('data-port-id');\n const nodeId = el.getAttribute('data-node-id');\n const isOutput = el.getAttribute('data-port-type') === 'output';\n el.addEventListener('mousedown', (e) => this.handlePortMouseDown(e, nodeId, portId, isOutput));\n });\n }\n isPortConnected(nodeId, portId, isOutput) {\n return this.edges.some(e => {\n if (isOutput) {\n return e.source === nodeId && (e.sourcePort === portId || (!e.sourcePort && portId === this.nodes.find(n => n.id === nodeId)?.outputs?.[0]?.id));\n }\n return e.target === nodeId && (e.targetPort === portId || (!e.targetPort && portId === this.nodes.find(n => n.id === nodeId)?.inputs?.[0]?.id));\n });\n }\n updateGrid() {\n const gridEl = this.containerEl?.querySelector('.flow__grid');\n if (!gridEl)\n return;\n if (this.snapToGrid) {\n gridEl.innerHTML = this.gridPatternSvg();\n gridEl.style.display = '';\n }\n else {\n gridEl.style.display = 'none';\n }\n }\n updateMinimap() {\n const svg = this.minimapSvgEl;\n if (!svg || !this.minimap)\n return;\n if (this.nodes.length === 0) {\n svg.innerHTML = '';\n return;\n }\n // Calculate bounds\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n minX = Math.min(minX, node.x);\n minY = Math.min(minY, node.y);\n maxX = Math.max(maxX, node.x + w);\n maxY = Math.max(maxY, node.y + h);\n }\n const pad = 40;\n minX -= pad;\n minY -= pad;\n maxX += pad;\n maxY += pad;\n const vb = `${minX} ${minY} ${maxX - minX} ${maxY - minY}`;\n svg.setAttribute('viewBox', vb);\n let parts = '';\n // Edges\n for (const edge of this.edges) {\n const sourcePort = edge.sourcePort || (this.nodes.find(n => n.id === edge.source)?.outputs?.[0]?.id || '');\n const targetPort = edge.targetPort || (this.nodes.find(n => n.id === edge.target)?.inputs?.[0]?.id || '');\n const p1 = this.getPortPosition(edge.source, sourcePort, true);\n const p2 = this.getPortPosition(edge.target, targetPort, false);\n parts += `<line class=\"flow__minimap-edge\" x1=\"${p1.x}\" y1=\"${p1.y}\" x2=\"${p2.x}\" y2=\"${p2.y}\" />`;\n }\n // Nodes\n for (const node of this.nodes) {\n const w = node.width || DEFAULT_NODE_WIDTH;\n const h = node.height || DEFAULT_NODE_HEIGHT;\n parts += `<rect class=\"flow__minimap-node\" x=\"${node.x}\" y=\"${node.y}\" width=\"${w}\" height=\"${h}\" rx=\"2\" />`;\n }\n // Viewport indicator\n const vpX = -this.panX / this.zoomScale;\n const vpY = -this.panY / this.zoomScale;\n const vpW = this.containerWidth / this.zoomScale;\n const vpH = this.containerHeight / this.zoomScale;\n parts += `<rect class=\"flow__minimap-viewport\" x=\"${vpX}\" y=\"${vpY}\" width=\"${vpW}\" height=\"${vpH}\" />`;\n svg.innerHTML = parts;\n }\n renderContent() {\n return html /*html*/ `\n <div class=\"flow\">\n <div class=\"flow__grid\"></div>\n <svg class=\"flow__svg\"></svg>\n <div class=\"flow__nodes\"></div>\n <div class=\"flow__minimap\" style=\"${this.minimap ? '' : 'display:none'}\">\n <svg class=\"flow__minimap-svg\"></svg>\n </div>\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n });\n return _classThis;\n})();\n\nexport { SniceFlow };\n//# sourceMappingURL=snice-flow.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","DEFAULT_NODE_WIDTH","SniceFlow","_classDescriptor","_classThis","_nodes_decorators","_edges_decorators","_snapToGrid_decorators","_gridSize_decorators","_zoomEnabled_decorators","_panEnabled_decorators","_minimap_decorators","_editable_decorators","_containerEl_decorators","_svgEl_decorators","_nodesContainerEl_decorators","_minimapSvgEl_decorators","_emitNodeDrag_decorators","_emitNodeSelect_decorators","_emitEdgeConnect_decorators","_emitEdgeDisconnect_decorators","_emitCanvasClick_decorators","_init_decorators","_onNodesChange_decorators","_onEdgesChange_decorators","_onMinimapChange_decorators","_cleanup_decorators","_renderContent_decorators","_componentStyles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_nodes_initializers","_nodes_extraInitializers","_edges_initializers","_edges_extraInitializers","_snapToGrid_initializers","_snapToGrid_extraInitializers","_gridSize_initializers","_gridSize_extraInitializers","_zoomEnabled_initializers","_zoomEnabled_extraInitializers","_panEnabled_initializers","_panEnabled_extraInitializers","_minimap_initializers","_minimap_extraInitializers","_editable_initializers","_editable_extraInitializers","_containerEl_initializers","_containerEl_extraInitializers","_svgEl_initializers","_svgEl_extraInitializers","_nodesContainerEl_initializers","_nodesContainerEl_extraInitializers","_minimapSvgEl_initializers","_minimapSvgEl_extraInitializers","this","constructor","super","nodes","edges","snapToGrid","gridSize","zoomEnabled","panEnabled","minimap","editable","containerEl","svgEl","nodesContainerEl","minimapSvgEl","transformGroupEl","zoomScale","panX","panY","dragNode","dragOffsetX","dragOffsetY","isPanning","panStartX","panStartY","panStartPanX","panStartPanY","drawingEdge","drawSourceNodeId","drawSourcePortId","drawSourceIsOutput","drawEndX","drawEndY","selectedNodeId","selectedEdgeId","containerWidth","containerHeight","resizeObserver","boundMouseMove","handleMouseMove","bind","boundMouseUp","handleMouseUp","initialized","listenersAttached","_metadata","Symbol","metadata","create","property","type","Array","attribute","Boolean","Number","query","dispatch","bubbles","composed","ready","watch","dispose","render","once","styles","static","private","has","obj","emitNodeDrag","emitNodeSelect","emitEdgeConnect","emitEdgeDisconnect","emitCanvasClick","onNodesChange","onEdgesChange","onMinimapChange","cleanup","renderContent","componentStyles","enumerable","configurable","writable","node","x","y","edge","ResizeObserver","entries","entry","contentRect","width","height","rebuild","observe","requestAnimationFrame","ensureSvgSetup","attachListeners","updateMinimap","document","removeEventListener","disconnect","addNode","removeNode","id","filter","n","e","source","addEdge","removeEdge","find","fitView","minX","Infinity","minY","maxX","maxY","w","h","Math","min","max","contentW","padding","contentH","scaleX","scaleY","edgesGroupEl","svg","ns","defsEl","createElementNS","marker","setAttribute","path","appendChild","previewGroupEl","addEventListener","handleSvgMouseDown","handleWheel","passive","closest","pos","screenToCanvas","clientX","clientY","edgePath","stopPropagation","edgeId","getAttribute","sx","sy","rect","getBoundingClientRect","left","top","snap","v","round","getPortPosition","nodeId","portId","isOutput","ports","outputs","inputs","idx","findIndex","portAreaHeight","yOffset","findNearestPort","needOutput","best","bestDist","port","dx","dy","dist","sqrt","button","preventDefault","handleNodeMouseDown","handlePortMouseDown","newX","newY","updateEdgePreview","finishEdgeDraw","clearEdgePreview","sourceNodeId","sourcePortId","targetNodeId","targetPortId","exists","some","sourcePort","targetPort","newEdge","Date","now","random","toString","slice","mouseX","mouseY","delta","deltaY","newScale","bezierPath","x1","y1","x2","y2","abs","sourcePos","d","innerHTML","gridPatternSvg","g","rebuildTransform","rebuildEdges","rebuildNodes","updateGrid","parts","p1","p2","cls","animated","colorAttr","color","join","label","container","nodesHtml","scaledW","headerBg","isPortConnected","querySelectorAll","forEach","el","gridEl","querySelector","style","display","vb","html","css"],"mappings":"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","x_google_ignoreList":[0]}