@vertesia/ui 1.2.0 → 1.4.0-dev.20260615.042549Z

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 (3718) hide show
  1. package/README.md +72 -0
  2. package/lib/core/components/Avatar.d.ts +16 -0
  3. package/lib/core/components/Avatar.d.ts.map +1 -0
  4. package/lib/core/components/Avatar.js +38 -0
  5. package/lib/core/components/Avatar.js.map +1 -0
  6. package/lib/core/components/Center.d.ts +8 -0
  7. package/lib/core/components/Center.d.ts.map +1 -0
  8. package/lib/core/components/Center.js +6 -0
  9. package/lib/core/components/Center.js.map +1 -0
  10. package/lib/core/components/ComboBox.d.ts +134 -0
  11. package/lib/core/components/ComboBox.d.ts.map +1 -0
  12. package/lib/core/components/ComboBox.js +385 -0
  13. package/lib/core/components/ComboBox.js.map +1 -0
  14. package/lib/core/components/Divider.d.ts +6 -0
  15. package/lib/core/components/Divider.d.ts.map +1 -0
  16. package/lib/core/components/Divider.js +6 -0
  17. package/lib/core/components/Divider.js.map +1 -0
  18. package/lib/core/components/EmptyCollection.d.ts +9 -0
  19. package/lib/core/components/EmptyCollection.d.ts.map +1 -0
  20. package/lib/core/components/EmptyCollection.js +7 -0
  21. package/lib/core/components/EmptyCollection.js.map +1 -0
  22. package/lib/core/components/FileUpload.d.ts +29 -0
  23. package/lib/core/components/FileUpload.d.ts.map +1 -0
  24. package/lib/core/components/FileUpload.js +131 -0
  25. package/lib/core/components/FileUpload.js.map +1 -0
  26. package/lib/core/components/FormItem.d.ts +30 -0
  27. package/lib/core/components/FormItem.d.ts.map +1 -0
  28. package/lib/core/components/FormItem.js +64 -0
  29. package/lib/core/components/FormItem.js.map +1 -0
  30. package/lib/core/components/InputList.d.ts +14 -0
  31. package/lib/core/components/InputList.d.ts.map +1 -0
  32. package/lib/core/components/InputList.js +75 -0
  33. package/lib/core/components/InputList.js.map +1 -0
  34. package/lib/core/components/Link.d.ts +7 -0
  35. package/lib/core/components/Link.d.ts.map +1 -0
  36. package/lib/core/components/Link.js +13 -0
  37. package/lib/core/components/Link.js.map +1 -0
  38. package/lib/core/components/MenuList.d.ts +14 -0
  39. package/lib/core/components/MenuList.d.ts.map +1 -0
  40. package/lib/core/components/MenuList.js +20 -0
  41. package/lib/core/components/MenuList.js.map +1 -0
  42. package/lib/core/components/NumberInput.d.ts +16 -0
  43. package/lib/core/components/NumberInput.d.ts.map +1 -0
  44. package/lib/core/components/NumberInput.js +48 -0
  45. package/lib/core/components/NumberInput.js.map +1 -0
  46. package/lib/core/components/Overlay.d.ts +25 -0
  47. package/lib/core/components/Overlay.d.ts.map +1 -0
  48. package/lib/core/components/Overlay.js +67 -0
  49. package/lib/core/components/Overlay.js.map +1 -0
  50. package/lib/core/components/Portal.d.ts +6 -0
  51. package/lib/core/components/Portal.d.ts.map +1 -0
  52. package/lib/core/components/Portal.js +29 -0
  53. package/lib/core/components/Portal.js.map +1 -0
  54. package/lib/core/components/SelectList.d.ts +19 -0
  55. package/lib/core/components/SelectList.d.ts.map +1 -0
  56. package/lib/core/components/SelectList.js +54 -0
  57. package/lib/core/components/SelectList.js.map +1 -0
  58. package/lib/core/components/SidePanel.d.ts +16 -0
  59. package/lib/core/components/SidePanel.d.ts.map +1 -0
  60. package/lib/core/components/SidePanel.js +48 -0
  61. package/lib/core/components/SidePanel.js.map +1 -0
  62. package/lib/core/components/Spinner.d.ts +7 -0
  63. package/lib/core/components/Spinner.d.ts.map +1 -0
  64. package/lib/core/components/Spinner.js +25 -0
  65. package/lib/core/components/Spinner.js.map +1 -0
  66. package/lib/core/components/TagsInput.d.ts +16 -0
  67. package/lib/core/components/TagsInput.d.ts.map +1 -0
  68. package/lib/core/components/TagsInput.js +199 -0
  69. package/lib/core/components/TagsInput.js.map +1 -0
  70. package/lib/core/components/index.d.ts +27 -0
  71. package/lib/core/components/index.d.ts.map +1 -0
  72. package/lib/core/components/index.js +23 -0
  73. package/lib/core/components/index.js.map +1 -0
  74. package/lib/core/components/libs/utils.d.ts +3 -0
  75. package/lib/core/components/libs/utils.d.ts.map +1 -0
  76. package/lib/core/components/libs/utils.js +6 -0
  77. package/lib/core/components/libs/utils.js.map +1 -0
  78. package/lib/core/components/libs/visuallyHidden.d.ts +7 -0
  79. package/lib/core/components/libs/visuallyHidden.d.ts.map +1 -0
  80. package/lib/core/components/libs/visuallyHidden.js +16 -0
  81. package/lib/core/components/libs/visuallyHidden.js.map +1 -0
  82. package/lib/core/components/popup/Popup.d.ts +26 -0
  83. package/lib/core/components/popup/Popup.d.ts.map +1 -0
  84. package/lib/core/components/popup/Popup.js +70 -0
  85. package/lib/core/components/popup/Popup.js.map +1 -0
  86. package/lib/core/components/popup/PopupController.d.ts +41 -0
  87. package/lib/core/components/popup/PopupController.d.ts.map +1 -0
  88. package/lib/core/components/popup/PopupController.js +153 -0
  89. package/lib/core/components/popup/PopupController.js.map +1 -0
  90. package/lib/core/components/popup/index.d.ts +4 -0
  91. package/lib/core/components/popup/index.d.ts.map +1 -0
  92. package/lib/core/components/popup/index.js +4 -0
  93. package/lib/core/components/popup/index.js.map +1 -0
  94. package/lib/core/components/popup/position.d.ts.map +1 -0
  95. package/lib/core/components/popup/position.js +240 -0
  96. package/lib/core/components/popup/position.js.map +1 -0
  97. package/lib/core/components/popup/utils.d.ts.map +1 -0
  98. package/lib/core/components/popup/utils.js +75 -0
  99. package/lib/core/components/popup/utils.js.map +1 -0
  100. package/lib/core/components/shadcn/LanguageSwitcher.d.ts +8 -0
  101. package/lib/core/components/shadcn/LanguageSwitcher.d.ts.map +1 -0
  102. package/lib/core/components/shadcn/LanguageSwitcher.js +36 -0
  103. package/lib/core/components/shadcn/LanguageSwitcher.js.map +1 -0
  104. package/lib/core/components/shadcn/MessageBox.d.ts +38 -0
  105. package/lib/core/components/shadcn/MessageBox.d.ts.map +1 -0
  106. package/lib/core/components/shadcn/MessageBox.js +67 -0
  107. package/lib/core/components/shadcn/MessageBox.js.map +1 -0
  108. package/lib/core/components/shadcn/Panel.d.ts +17 -0
  109. package/lib/core/components/shadcn/Panel.d.ts.map +1 -0
  110. package/lib/core/components/shadcn/Panel.js +21 -0
  111. package/lib/core/components/shadcn/Panel.js.map +1 -0
  112. package/lib/core/components/shadcn/badge.d.ts +21 -0
  113. package/lib/core/components/shadcn/badge.d.ts.map +1 -0
  114. package/lib/core/components/shadcn/badge.js +64 -0
  115. package/lib/core/components/shadcn/badge.js.map +1 -0
  116. package/lib/core/components/shadcn/breadcrumb.d.ts +15 -0
  117. package/lib/core/components/shadcn/breadcrumb.d.ts.map +1 -0
  118. package/lib/core/components/shadcn/breadcrumb.js +52 -0
  119. package/lib/core/components/shadcn/breadcrumb.js.map +1 -0
  120. package/lib/core/components/shadcn/button.d.ts +38 -0
  121. package/lib/core/components/shadcn/button.d.ts.map +1 -0
  122. package/lib/core/components/shadcn/button.js +106 -0
  123. package/lib/core/components/shadcn/button.js.map +1 -0
  124. package/lib/core/components/shadcn/calendar.d.ts +11 -0
  125. package/lib/core/components/shadcn/calendar.d.ts.map +1 -0
  126. package/lib/core/components/shadcn/calendar.js +13 -0
  127. package/lib/core/components/shadcn/calendar.js.map +1 -0
  128. package/lib/core/components/shadcn/card.d.ts +9 -0
  129. package/lib/core/components/shadcn/card.d.ts.map +1 -0
  130. package/lib/core/components/shadcn/card.js +17 -0
  131. package/lib/core/components/shadcn/card.js.map +1 -0
  132. package/lib/core/components/shadcn/checkbox.d.ts +5 -0
  133. package/lib/core/components/shadcn/checkbox.d.ts.map +1 -0
  134. package/lib/core/components/shadcn/checkbox.js +9 -0
  135. package/lib/core/components/shadcn/checkbox.js.map +1 -0
  136. package/lib/core/components/shadcn/collaspible.d.ts +6 -0
  137. package/lib/core/components/shadcn/collaspible.d.ts.map +1 -0
  138. package/lib/core/components/shadcn/collaspible.js +13 -0
  139. package/lib/core/components/shadcn/collaspible.js.map +1 -0
  140. package/lib/core/components/shadcn/command.d.ts +17 -0
  141. package/lib/core/components/shadcn/command.d.ts.map +1 -0
  142. package/lib/core/components/shadcn/command.js +29 -0
  143. package/lib/core/components/shadcn/command.js.map +1 -0
  144. package/lib/core/components/shadcn/dropdown.d.ts +52 -0
  145. package/lib/core/components/shadcn/dropdown.d.ts.map +1 -0
  146. package/lib/core/components/shadcn/dropdown.js +92 -0
  147. package/lib/core/components/shadcn/dropdown.js.map +1 -0
  148. package/lib/core/components/shadcn/filters/DynamicLabel.d.ts +9 -0
  149. package/lib/core/components/shadcn/filters/DynamicLabel.d.ts.map +1 -0
  150. package/lib/core/components/shadcn/filters/DynamicLabel.js +38 -0
  151. package/lib/core/components/shadcn/filters/DynamicLabel.js.map +1 -0
  152. package/lib/core/components/shadcn/filters/animateChangeInHeight.d.ts.map +1 -0
  153. package/lib/core/components/shadcn/filters/animateChangeInHeight.js +23 -0
  154. package/lib/core/components/shadcn/filters/animateChangeInHeight.js.map +1 -0
  155. package/lib/core/components/shadcn/filters/comboBox/DateCombobox.d.ts +6 -0
  156. package/lib/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +1 -0
  157. package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js +130 -0
  158. package/lib/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -0
  159. package/lib/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts +10 -0
  160. package/lib/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +1 -0
  161. package/lib/core/components/shadcn/filters/comboBox/SelectCombobox.js +53 -0
  162. package/lib/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -0
  163. package/lib/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts +6 -0
  164. package/lib/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts.map +1 -0
  165. package/lib/core/components/shadcn/filters/comboBox/StringListCombobox.js +27 -0
  166. package/lib/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -0
  167. package/lib/core/components/shadcn/filters/comboBox/TextCombobox.d.ts +6 -0
  168. package/lib/core/components/shadcn/filters/comboBox/TextCombobox.d.ts.map +1 -0
  169. package/lib/core/components/shadcn/filters/comboBox/TextCombobox.js +28 -0
  170. package/lib/core/components/shadcn/filters/comboBox/TextCombobox.js.map +1 -0
  171. package/lib/core/components/shadcn/filters/comboBox/comboBox.d.ts +5 -0
  172. package/lib/core/components/shadcn/filters/comboBox/comboBox.d.ts.map +1 -0
  173. package/lib/core/components/shadcn/filters/comboBox/comboBox.js +5 -0
  174. package/lib/core/components/shadcn/filters/comboBox/comboBox.js.map +1 -0
  175. package/lib/core/components/shadcn/filters/filter/SelectFilter.d.ts +12 -0
  176. package/lib/core/components/shadcn/filters/filter/SelectFilter.d.ts.map +1 -0
  177. package/lib/core/components/shadcn/filters/filter/SelectFilter.js +102 -0
  178. package/lib/core/components/shadcn/filters/filter/SelectFilter.js.map +1 -0
  179. package/lib/core/components/shadcn/filters/filter/StringListFilter.d.ts +11 -0
  180. package/lib/core/components/shadcn/filters/filter/StringListFilter.d.ts.map +1 -0
  181. package/lib/core/components/shadcn/filters/filter/StringListFilter.js +24 -0
  182. package/lib/core/components/shadcn/filters/filter/StringListFilter.js.map +1 -0
  183. package/lib/core/components/shadcn/filters/filter/TextFilter.d.ts +13 -0
  184. package/lib/core/components/shadcn/filters/filter/TextFilter.d.ts.map +1 -0
  185. package/lib/core/components/shadcn/filters/filter/TextFilter.js +21 -0
  186. package/lib/core/components/shadcn/filters/filter/TextFilter.js.map +1 -0
  187. package/lib/core/components/shadcn/filters/filter/dateFilter.d.ts +14 -0
  188. package/lib/core/components/shadcn/filters/filter/dateFilter.d.ts.map +1 -0
  189. package/lib/core/components/shadcn/filters/filter/dateFilter.js +163 -0
  190. package/lib/core/components/shadcn/filters/filter/dateFilter.js.map +1 -0
  191. package/lib/core/components/shadcn/filters/filter-styles.d.ts.map +1 -0
  192. package/lib/core/components/shadcn/filters/filter-styles.js.map +1 -0
  193. package/lib/core/components/shadcn/filters/filterBar.d.ts +21 -0
  194. package/lib/core/components/shadcn/filters/filterBar.d.ts.map +1 -0
  195. package/lib/core/components/shadcn/filters/filterBar.js +259 -0
  196. package/lib/core/components/shadcn/filters/filterBar.js.map +1 -0
  197. package/lib/core/components/shadcn/filters/filters.d.ts +10 -0
  198. package/lib/core/components/shadcn/filters/filters.d.ts.map +1 -0
  199. package/lib/core/components/shadcn/filters/filters.js +63 -0
  200. package/lib/core/components/shadcn/filters/filters.js.map +1 -0
  201. package/lib/core/components/shadcn/filters/index.d.ts.map +1 -0
  202. package/lib/core/components/shadcn/filters/index.js.map +1 -0
  203. package/lib/core/components/shadcn/filters/types.d.ts +35 -0
  204. package/lib/core/components/shadcn/filters/types.d.ts.map +1 -0
  205. package/lib/core/components/shadcn/filters/types.js.map +1 -0
  206. package/lib/core/components/shadcn/heading.d.ts +6 -0
  207. package/lib/core/components/shadcn/heading.d.ts.map +1 -0
  208. package/lib/core/components/shadcn/heading.js +17 -0
  209. package/lib/core/components/shadcn/heading.js.map +1 -0
  210. package/lib/core/components/shadcn/index.d.ts +31 -0
  211. package/lib/core/components/shadcn/index.d.ts.map +1 -0
  212. package/lib/core/components/shadcn/index.js +31 -0
  213. package/lib/core/components/shadcn/index.js.map +1 -0
  214. package/lib/core/components/shadcn/input.d.ts +23 -0
  215. package/lib/core/components/shadcn/input.d.ts.map +1 -0
  216. package/lib/core/components/shadcn/input.js +43 -0
  217. package/lib/core/components/shadcn/input.js.map +1 -0
  218. package/lib/core/components/shadcn/label.d.ts +10 -0
  219. package/lib/core/components/shadcn/label.d.ts.map +1 -0
  220. package/lib/core/components/shadcn/label.js +10 -0
  221. package/lib/core/components/shadcn/label.js.map +1 -0
  222. package/lib/core/components/shadcn/modal/ConfirmModal.d.ts +12 -0
  223. package/lib/core/components/shadcn/modal/ConfirmModal.d.ts.map +1 -0
  224. package/lib/core/components/shadcn/modal/ConfirmModal.js +12 -0
  225. package/lib/core/components/shadcn/modal/ConfirmModal.js.map +1 -0
  226. package/lib/core/components/shadcn/modal/DeleteModal.d.ts +11 -0
  227. package/lib/core/components/shadcn/modal/DeleteModal.d.ts.map +1 -0
  228. package/lib/core/components/shadcn/modal/DeleteModal.js +34 -0
  229. package/lib/core/components/shadcn/modal/DeleteModal.js.map +1 -0
  230. package/lib/core/components/shadcn/modal/dialog.d.ts +41 -0
  231. package/lib/core/components/shadcn/modal/dialog.d.ts.map +1 -0
  232. package/lib/core/components/shadcn/modal/dialog.js +82 -0
  233. package/lib/core/components/shadcn/modal/dialog.js.map +1 -0
  234. package/lib/core/components/shadcn/modal/index.d.ts +4 -0
  235. package/lib/core/components/shadcn/modal/index.d.ts.map +1 -0
  236. package/lib/core/components/shadcn/modal/index.js +4 -0
  237. package/lib/core/components/shadcn/modal/index.js.map +1 -0
  238. package/lib/core/components/shadcn/popover.d.ts +32 -0
  239. package/lib/core/components/shadcn/popover.d.ts.map +1 -0
  240. package/lib/core/components/shadcn/popover.js +56 -0
  241. package/lib/core/components/shadcn/popover.js.map +1 -0
  242. package/lib/core/components/shadcn/radioGroup.d.ts +24 -0
  243. package/lib/core/components/shadcn/radioGroup.d.ts.map +1 -0
  244. package/lib/core/components/shadcn/radioGroup.js +30 -0
  245. package/lib/core/components/shadcn/radioGroup.js.map +1 -0
  246. package/lib/core/components/shadcn/resizeable.d.ts +13 -0
  247. package/lib/core/components/shadcn/resizeable.d.ts.map +1 -0
  248. package/lib/core/components/shadcn/resizeable.js +18 -0
  249. package/lib/core/components/shadcn/resizeable.js.map +1 -0
  250. package/lib/core/components/shadcn/selectBox.d.ts +51 -0
  251. package/lib/core/components/shadcn/selectBox.d.ts.map +1 -0
  252. package/lib/core/components/shadcn/selectBox.js +182 -0
  253. package/lib/core/components/shadcn/selectBox.js.map +1 -0
  254. package/lib/core/components/shadcn/separator.d.ts +6 -0
  255. package/lib/core/components/shadcn/separator.d.ts.map +1 -0
  256. package/lib/core/components/shadcn/separator.js +8 -0
  257. package/lib/core/components/shadcn/separator.js.map +1 -0
  258. package/lib/core/components/shadcn/slider.d.ts +10 -0
  259. package/lib/core/components/shadcn/slider.d.ts.map +1 -0
  260. package/lib/core/components/shadcn/slider.js +13 -0
  261. package/lib/core/components/shadcn/slider.js.map +1 -0
  262. package/lib/core/components/shadcn/switch.d.ts +13 -0
  263. package/lib/core/components/shadcn/switch.d.ts.map +1 -0
  264. package/lib/core/components/shadcn/switch.js +20 -0
  265. package/lib/core/components/shadcn/switch.js.map +1 -0
  266. package/lib/core/components/shadcn/tabs.d.ts +49 -0
  267. package/lib/core/components/shadcn/tabs.d.ts.map +1 -0
  268. package/lib/core/components/shadcn/tabs.js +140 -0
  269. package/lib/core/components/shadcn/tabs.js.map +1 -0
  270. package/lib/core/components/shadcn/text.d.ts +11 -0
  271. package/lib/core/components/shadcn/text.d.ts.map +1 -0
  272. package/lib/core/components/shadcn/text.js +30 -0
  273. package/lib/core/components/shadcn/text.js.map +1 -0
  274. package/lib/core/components/shadcn/textarea.d.ts +8 -0
  275. package/lib/core/components/shadcn/textarea.d.ts.map +1 -0
  276. package/lib/core/components/shadcn/textarea.js +35 -0
  277. package/lib/core/components/shadcn/textarea.js.map +1 -0
  278. package/lib/core/components/shadcn/theme/ThemeProvider.d.ts +15 -0
  279. package/lib/core/components/shadcn/theme/ThemeProvider.d.ts.map +1 -0
  280. package/lib/core/components/shadcn/theme/ThemeProvider.js +36 -0
  281. package/lib/core/components/shadcn/theme/ThemeProvider.js.map +1 -0
  282. package/lib/core/components/shadcn/theme/ThemeSwitcher.d.ts +16 -0
  283. package/lib/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +1 -0
  284. package/lib/core/components/shadcn/theme/ThemeSwitcher.js +15 -0
  285. package/lib/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -0
  286. package/lib/core/components/shadcn/tooltip.d.ts +21 -0
  287. package/lib/core/components/shadcn/tooltip.d.ts.map +1 -0
  288. package/lib/core/components/shadcn/tooltip.js +38 -0
  289. package/lib/core/components/shadcn/tooltip.js.map +1 -0
  290. package/lib/core/components/styles.d.ts.map +1 -0
  291. package/lib/core/components/styles.js +10 -0
  292. package/lib/core/components/styles.js.map +1 -0
  293. package/lib/core/components/table/index.d.ts +43 -0
  294. package/lib/core/components/table/index.d.ts.map +1 -0
  295. package/lib/core/components/table/index.js +43 -0
  296. package/lib/core/components/table/index.js.map +1 -0
  297. package/lib/core/components/toast/NotificationPanel.d.ts +8 -0
  298. package/lib/core/components/toast/NotificationPanel.d.ts.map +1 -0
  299. package/lib/core/components/toast/NotificationPanel.js +41 -0
  300. package/lib/core/components/toast/NotificationPanel.js.map +1 -0
  301. package/lib/core/components/toast/ToastContext.d.ts +6 -0
  302. package/lib/core/components/toast/ToastContext.d.ts.map +1 -0
  303. package/lib/core/components/toast/ToastContext.js +7 -0
  304. package/lib/core/components/toast/ToastContext.js.map +1 -0
  305. package/lib/core/components/toast/ToastProps.d.ts.map +1 -0
  306. package/lib/core/components/toast/ToastProps.js.map +1 -0
  307. package/lib/core/components/toast/ToastProvider.d.ts +6 -0
  308. package/lib/core/components/toast/ToastProvider.d.ts.map +1 -0
  309. package/lib/core/components/toast/ToastProvider.js +19 -0
  310. package/lib/core/components/toast/ToastProvider.js.map +1 -0
  311. package/lib/core/components/toast/index.d.ts +3 -0
  312. package/lib/core/components/toast/index.d.ts.map +1 -0
  313. package/lib/core/components/toast/index.js +3 -0
  314. package/lib/core/components/toast/index.js.map +1 -0
  315. package/lib/core/hooks/CompositeState.d.ts +137 -0
  316. package/lib/core/hooks/CompositeState.d.ts.map +1 -0
  317. package/lib/core/hooks/CompositeState.js +256 -0
  318. package/lib/core/hooks/CompositeState.js.map +1 -0
  319. package/lib/core/hooks/PortalContainerProvider.d.ts +8 -0
  320. package/lib/core/hooks/PortalContainerProvider.d.ts.map +1 -0
  321. package/lib/core/hooks/PortalContainerProvider.js +50 -0
  322. package/lib/core/hooks/PortalContainerProvider.js.map +1 -0
  323. package/lib/core/hooks/SharedState.d.ts +10 -0
  324. package/lib/core/hooks/SharedState.d.ts.map +1 -0
  325. package/lib/core/hooks/SharedState.js +64 -0
  326. package/lib/core/hooks/SharedState.js.map +1 -0
  327. package/lib/core/hooks/index.d.ts +16 -0
  328. package/lib/core/hooks/index.d.ts.map +1 -0
  329. package/lib/core/hooks/index.js +16 -0
  330. package/lib/core/hooks/index.js.map +1 -0
  331. package/lib/core/hooks/useClickOutside.d.ts.map +1 -0
  332. package/lib/core/hooks/useClickOutside.js +30 -0
  333. package/lib/core/hooks/useClickOutside.js.map +1 -0
  334. package/lib/core/hooks/useCopyToClipboard.d.ts.map +1 -0
  335. package/lib/core/hooks/useCopyToClipboard.js.map +1 -0
  336. package/lib/core/hooks/useDarkMode.d.ts.map +1 -0
  337. package/lib/core/hooks/useDarkMode.js +11 -0
  338. package/lib/core/hooks/useDarkMode.js.map +1 -0
  339. package/lib/core/hooks/useDebounce.d.ts.map +1 -0
  340. package/lib/core/hooks/useDebounce.js +14 -0
  341. package/lib/core/hooks/useDebounce.js.map +1 -0
  342. package/lib/core/hooks/useEventSource.d.ts +11 -0
  343. package/lib/core/hooks/useEventSource.d.ts.map +1 -0
  344. package/lib/core/hooks/useEventSource.js +56 -0
  345. package/lib/core/hooks/useEventSource.js.map +1 -0
  346. package/lib/core/hooks/useFetch.d.ts +24 -0
  347. package/lib/core/hooks/useFetch.d.ts.map +1 -0
  348. package/lib/core/hooks/useFetch.js +54 -0
  349. package/lib/core/hooks/useFetch.js.map +1 -0
  350. package/lib/core/hooks/useFlag.d.ts.map +1 -0
  351. package/lib/core/hooks/useFlag.js +13 -0
  352. package/lib/core/hooks/useFlag.js.map +1 -0
  353. package/lib/core/hooks/useIntersectionObserver.d.ts +14 -0
  354. package/lib/core/hooks/useIntersectionObserver.d.ts.map +1 -0
  355. package/lib/core/hooks/useIntersectionObserver.js +40 -0
  356. package/lib/core/hooks/useIntersectionObserver.js.map +1 -0
  357. package/lib/core/hooks/useIsFistRendering.d.ts.map +1 -0
  358. package/lib/core/hooks/useIsFistRendering.js +16 -0
  359. package/lib/core/hooks/useIsFistRendering.js.map +1 -0
  360. package/lib/core/hooks/useSafeLayoutEffect.d.ts +4 -0
  361. package/lib/core/hooks/useSafeLayoutEffect.d.ts.map +1 -0
  362. package/lib/core/hooks/useSafeLayoutEffect.js +4 -0
  363. package/lib/core/hooks/useSafeLayoutEffect.js.map +1 -0
  364. package/lib/core/hooks/useScrollableSearch.d.ts +82 -0
  365. package/lib/core/hooks/useScrollableSearch.d.ts.map +1 -0
  366. package/lib/core/hooks/useScrollableSearch.js +95 -0
  367. package/lib/core/hooks/useScrollableSearch.js.map +1 -0
  368. package/lib/core/hooks/useSharedValue.d.ts +12 -0
  369. package/lib/core/hooks/useSharedValue.d.ts.map +1 -0
  370. package/lib/core/hooks/useSharedValue.js +21 -0
  371. package/lib/core/hooks/useSharedValue.js.map +1 -0
  372. package/lib/core/index.d.ts +4 -0
  373. package/lib/core/index.d.ts.map +1 -0
  374. package/lib/core/index.js +4 -0
  375. package/lib/core/index.js.map +1 -0
  376. package/lib/core/utils/a11y.d.ts +16 -0
  377. package/lib/core/utils/a11y.d.ts.map +1 -0
  378. package/lib/core/utils/a11y.js +22 -0
  379. package/lib/core/utils/a11y.js.map +1 -0
  380. package/lib/core/utils/cn.d.ts +3 -0
  381. package/lib/core/utils/cn.d.ts.map +1 -0
  382. package/lib/core/utils/cn.js +6 -0
  383. package/lib/core/utils/cn.js.map +1 -0
  384. package/lib/core/utils/errorMessage.d.ts +2 -0
  385. package/lib/core/utils/errorMessage.d.ts.map +1 -0
  386. package/lib/core/utils/errorMessage.js +16 -0
  387. package/lib/core/utils/errorMessage.js.map +1 -0
  388. package/lib/core/utils/index.d.ts +5 -0
  389. package/lib/core/utils/index.d.ts.map +1 -0
  390. package/lib/core/utils/index.js +5 -0
  391. package/lib/core/utils/index.js.map +1 -0
  392. package/lib/core/utils/textarea.d.ts +7 -0
  393. package/lib/core/utils/textarea.d.ts.map +1 -0
  394. package/lib/core/utils/textarea.js +16 -0
  395. package/lib/core/utils/textarea.js.map +1 -0
  396. package/lib/env/index.d.ts +106 -0
  397. package/lib/env/index.d.ts.map +1 -0
  398. package/lib/env/index.js +91 -0
  399. package/lib/env/index.js.map +1 -0
  400. package/lib/features/activity-doc/ActivityDoc.d.ts +14 -0
  401. package/lib/features/activity-doc/ActivityDoc.d.ts.map +1 -0
  402. package/lib/features/activity-doc/ActivityDoc.js +68 -0
  403. package/lib/features/activity-doc/ActivityDoc.js.map +1 -0
  404. package/lib/features/activity-doc/index.d.ts +2 -0
  405. package/lib/features/activity-doc/index.d.ts.map +1 -0
  406. package/lib/features/activity-doc/index.js +2 -0
  407. package/lib/features/activity-doc/index.js.map +1 -0
  408. package/lib/features/agent/PayloadBuilder.d.ts +119 -0
  409. package/lib/features/agent/PayloadBuilder.d.ts.map +1 -0
  410. package/lib/features/agent/PayloadBuilder.js +457 -0
  411. package/lib/features/agent/PayloadBuilder.js.map +1 -0
  412. package/lib/features/agent/chat/AgentChart.d.ts +34 -0
  413. package/lib/features/agent/chat/AgentChart.d.ts.map +1 -0
  414. package/lib/features/agent/chat/AgentChart.js +26 -0
  415. package/lib/features/agent/chat/AgentChart.js.map +1 -0
  416. package/lib/features/agent/chat/AgentChatFixtureReplay.d.ts +34 -0
  417. package/lib/features/agent/chat/AgentChatFixtureReplay.d.ts.map +1 -0
  418. package/lib/features/agent/chat/AgentChatFixtureReplay.js +125 -0
  419. package/lib/features/agent/chat/AgentChatFixtureReplay.js.map +1 -0
  420. package/lib/features/agent/chat/AgentChatPlaybackControls.d.ts +10 -0
  421. package/lib/features/agent/chat/AgentChatPlaybackControls.d.ts.map +1 -0
  422. package/lib/features/agent/chat/AgentChatPlaybackControls.js +87 -0
  423. package/lib/features/agent/chat/AgentChatPlaybackControls.js.map +1 -0
  424. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts +10 -0
  425. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts.map +1 -0
  426. package/lib/features/agent/chat/AgentRequestInputOverlay.js +18 -0
  427. package/lib/features/agent/chat/AgentRequestInputOverlay.js.map +1 -0
  428. package/lib/features/agent/chat/AgentRightPanel.d.ts +45 -0
  429. package/lib/features/agent/chat/AgentRightPanel.d.ts.map +1 -0
  430. package/lib/features/agent/chat/AgentRightPanel.js +224 -0
  431. package/lib/features/agent/chat/AgentRightPanel.js.map +1 -0
  432. package/lib/features/agent/chat/AnimatedThinkingDots.d.ts +38 -0
  433. package/lib/features/agent/chat/AnimatedThinkingDots.d.ts.map +1 -0
  434. package/lib/features/agent/chat/AnimatedThinkingDots.js +242 -0
  435. package/lib/features/agent/chat/AnimatedThinkingDots.js.map +1 -0
  436. package/lib/features/agent/chat/ArtifactsTab.d.ts +9 -0
  437. package/lib/features/agent/chat/ArtifactsTab.d.ts.map +1 -0
  438. package/lib/features/agent/chat/ArtifactsTab.js +159 -0
  439. package/lib/features/agent/chat/ArtifactsTab.js.map +1 -0
  440. package/lib/features/agent/chat/AskUserWidget.d.ts +88 -0
  441. package/lib/features/agent/chat/AskUserWidget.d.ts.map +1 -0
  442. package/lib/features/agent/chat/AskUserWidget.js +133 -0
  443. package/lib/features/agent/chat/AskUserWidget.js.map +1 -0
  444. package/lib/features/agent/chat/BrowserUseWidget.d.ts +24 -0
  445. package/lib/features/agent/chat/BrowserUseWidget.d.ts.map +1 -0
  446. package/lib/features/agent/chat/BrowserUseWidget.js +122 -0
  447. package/lib/features/agent/chat/BrowserUseWidget.js.map +1 -0
  448. package/lib/features/agent/chat/DocumentPanel.d.ts +16 -0
  449. package/lib/features/agent/chat/DocumentPanel.d.ts.map +1 -0
  450. package/lib/features/agent/chat/DocumentPanel.js +53 -0
  451. package/lib/features/agent/chat/DocumentPanel.js.map +1 -0
  452. package/lib/features/agent/chat/DocumentTabBar.d.ts +9 -0
  453. package/lib/features/agent/chat/DocumentTabBar.d.ts.map +1 -0
  454. package/lib/features/agent/chat/DocumentTabBar.js +9 -0
  455. package/lib/features/agent/chat/DocumentTabBar.js.map +1 -0
  456. package/lib/features/agent/chat/ImageLightbox.d.ts +18 -0
  457. package/lib/features/agent/chat/ImageLightbox.d.ts.map +1 -0
  458. package/lib/features/agent/chat/ImageLightbox.js +37 -0
  459. package/lib/features/agent/chat/ImageLightbox.js.map +1 -0
  460. package/lib/features/agent/chat/JumpingDots.d.ts +7 -0
  461. package/lib/features/agent/chat/JumpingDots.d.ts.map +1 -0
  462. package/lib/features/agent/chat/JumpingDots.js +6 -0
  463. package/lib/features/agent/chat/JumpingDots.js.map +1 -0
  464. package/lib/features/agent/chat/ModernAgentConversation.d.ts +169 -0
  465. package/lib/features/agent/chat/ModernAgentConversation.d.ts.map +1 -0
  466. package/lib/features/agent/chat/ModernAgentConversation.js +1147 -0
  467. package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -0
  468. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +86 -0
  469. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -0
  470. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +1574 -0
  471. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -0
  472. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.d.ts +38 -0
  473. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.d.ts.map +1 -0
  474. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js +201 -0
  475. package/lib/features/agent/chat/ModernAgentOutput/AttachmentPreview.js.map +1 -0
  476. package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts +26 -0
  477. package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts.map +1 -0
  478. package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +88 -0
  479. package/lib/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +1 -0
  480. package/lib/features/agent/chat/ModernAgentOutput/Header.d.ts +45 -0
  481. package/lib/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -0
  482. package/lib/features/agent/chat/ModernAgentOutput/Header.js +103 -0
  483. package/lib/features/agent/chat/ModernAgentOutput/Header.js.map +1 -0
  484. package/lib/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts +11 -0
  485. package/lib/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts.map +1 -0
  486. package/lib/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js +30 -0
  487. package/lib/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js.map +1 -0
  488. package/lib/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +18 -0
  489. package/lib/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +1 -0
  490. package/lib/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +80 -0
  491. package/lib/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +1 -0
  492. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +70 -0
  493. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -0
  494. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js +296 -0
  495. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -0
  496. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +60 -0
  497. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -0
  498. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +383 -0
  499. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -0
  500. package/lib/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts +15 -0
  501. package/lib/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts.map +1 -0
  502. package/lib/features/agent/chat/ModernAgentOutput/MessagesContainer.js +21 -0
  503. package/lib/features/agent/chat/ModernAgentOutput/MessagesContainer.js.map +1 -0
  504. package/lib/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts +9 -0
  505. package/lib/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +1 -0
  506. package/lib/features/agent/chat/ModernAgentOutput/PlanPanel.js +66 -0
  507. package/lib/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +1 -0
  508. package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts +11 -0
  509. package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts.map +1 -0
  510. package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.js +24 -0
  511. package/lib/features/agent/chat/ModernAgentOutput/SlideInPanel.js.map +1 -0
  512. package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts +9 -0
  513. package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts.map +1 -0
  514. package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.js +52 -0
  515. package/lib/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +1 -0
  516. package/lib/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts +10 -0
  517. package/lib/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +1 -0
  518. package/lib/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +85 -0
  519. package/lib/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +1 -0
  520. package/lib/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts +9 -0
  521. package/lib/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts.map +1 -0
  522. package/lib/features/agent/chat/ModernAgentOutput/StackedMessages.js +13 -0
  523. package/lib/features/agent/chat/ModernAgentOutput/StackedMessages.js.map +1 -0
  524. package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts +38 -0
  525. package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +1 -0
  526. package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.js +203 -0
  527. package/lib/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +1 -0
  528. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.d.ts +24 -0
  529. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.d.ts.map +1 -0
  530. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.js +332 -0
  531. package/lib/features/agent/chat/ModernAgentOutput/SummaryConversation.js.map +1 -0
  532. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts +34 -0
  533. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +1 -0
  534. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +643 -0
  535. package/lib/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +1 -0
  536. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts +22 -0
  537. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +1 -0
  538. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +95 -0
  539. package/lib/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +1 -0
  540. package/lib/features/agent/chat/ModernAgentOutput/processContentForMarkdown.d.ts +3 -0
  541. package/lib/features/agent/chat/ModernAgentOutput/processContentForMarkdown.d.ts.map +1 -0
  542. package/lib/features/agent/chat/ModernAgentOutput/processContentForMarkdown.js +123 -0
  543. package/lib/features/agent/chat/ModernAgentOutput/processContentForMarkdown.js.map +1 -0
  544. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts +13 -0
  545. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts.map +1 -0
  546. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js +69 -0
  547. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js.map +1 -0
  548. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts +147 -0
  549. package/lib/features/agent/chat/ModernAgentOutput/utils.d.ts.map +1 -0
  550. package/lib/features/agent/chat/ModernAgentOutput/utils.js +634 -0
  551. package/lib/features/agent/chat/ModernAgentOutput/utils.js.map +1 -0
  552. package/lib/features/agent/chat/ProposalCodeBlockHandler.d.ts +9 -0
  553. package/lib/features/agent/chat/ProposalCodeBlockHandler.d.ts.map +1 -0
  554. package/lib/features/agent/chat/ProposalCodeBlockHandler.js +55 -0
  555. package/lib/features/agent/chat/ProposalCodeBlockHandler.js.map +1 -0
  556. package/lib/features/agent/chat/SkillWidgetProvider.d.ts +11 -0
  557. package/lib/features/agent/chat/SkillWidgetProvider.d.ts.map +1 -0
  558. package/lib/features/agent/chat/SkillWidgetProvider.js +156 -0
  559. package/lib/features/agent/chat/SkillWidgetProvider.js.map +1 -0
  560. package/lib/features/agent/chat/SlidingThinkingIndicator.d.ts +18 -0
  561. package/lib/features/agent/chat/SlidingThinkingIndicator.d.ts.map +1 -0
  562. package/lib/features/agent/chat/SlidingThinkingIndicator.js +269 -0
  563. package/lib/features/agent/chat/SlidingThinkingIndicator.js.map +1 -0
  564. package/lib/features/agent/chat/VegaLiteChart.d.ts +52 -0
  565. package/lib/features/agent/chat/VegaLiteChart.d.ts.map +1 -0
  566. package/lib/features/agent/chat/VegaLiteChart.js +813 -0
  567. package/lib/features/agent/chat/VegaLiteChart.js.map +1 -0
  568. package/lib/features/agent/chat/WaitingMessages.d.ts.map +1 -0
  569. package/lib/features/agent/chat/WaitingMessages.js +60 -0
  570. package/lib/features/agent/chat/WaitingMessages.js.map +1 -0
  571. package/lib/features/agent/chat/hooks/useAgentPlans.d.ts +22 -0
  572. package/lib/features/agent/chat/hooks/useAgentPlans.d.ts.map +1 -0
  573. package/lib/features/agent/chat/hooks/useAgentPlans.js +139 -0
  574. package/lib/features/agent/chat/hooks/useAgentPlans.js.map +1 -0
  575. package/lib/features/agent/chat/hooks/useAgentStream.d.ts +50 -0
  576. package/lib/features/agent/chat/hooks/useAgentStream.d.ts.map +1 -0
  577. package/lib/features/agent/chat/hooks/useAgentStream.js +289 -0
  578. package/lib/features/agent/chat/hooks/useAgentStream.js.map +1 -0
  579. package/lib/features/agent/chat/hooks/useArtifacts.d.ts +25 -0
  580. package/lib/features/agent/chat/hooks/useArtifacts.d.ts.map +1 -0
  581. package/lib/features/agent/chat/hooks/useArtifacts.js +122 -0
  582. package/lib/features/agent/chat/hooks/useArtifacts.js.map +1 -0
  583. package/lib/features/agent/chat/hooks/useDocumentPanel.d.ts +23 -0
  584. package/lib/features/agent/chat/hooks/useDocumentPanel.d.ts.map +1 -0
  585. package/lib/features/agent/chat/hooks/useDocumentPanel.js +155 -0
  586. package/lib/features/agent/chat/hooks/useDocumentPanel.js.map +1 -0
  587. package/lib/features/agent/chat/hooks/useFileProcessing.d.ts +28 -0
  588. package/lib/features/agent/chat/hooks/useFileProcessing.d.ts.map +1 -0
  589. package/lib/features/agent/chat/hooks/useFileProcessing.js +177 -0
  590. package/lib/features/agent/chat/hooks/useFileProcessing.js.map +1 -0
  591. package/lib/features/agent/chat/index.d.ts +24 -0
  592. package/lib/features/agent/chat/index.d.ts.map +1 -0
  593. package/lib/features/agent/chat/index.js +21 -0
  594. package/lib/features/agent/chat/index.js.map +1 -0
  595. package/lib/features/agent/chat/playback.d.ts +21 -0
  596. package/lib/features/agent/chat/playback.d.ts.map +1 -0
  597. package/lib/features/agent/chat/playback.js +72 -0
  598. package/lib/features/agent/chat/playback.js.map +1 -0
  599. package/lib/features/agent/chat/types/document.d.ts.map +1 -0
  600. package/lib/features/agent/chat/types/document.js.map +1 -0
  601. package/lib/features/agent/chat/useArtifactUrlCache.d.ts +34 -0
  602. package/lib/features/agent/chat/useArtifactUrlCache.d.ts.map +1 -0
  603. package/lib/features/agent/chat/useArtifactUrlCache.js +72 -0
  604. package/lib/features/agent/chat/useArtifactUrlCache.js.map +1 -0
  605. package/lib/features/agent/chat/workstreams.d.ts +30 -0
  606. package/lib/features/agent/chat/workstreams.d.ts.map +1 -0
  607. package/lib/features/agent/chat/workstreams.js +136 -0
  608. package/lib/features/agent/chat/workstreams.js.map +1 -0
  609. package/lib/features/agent/index.d.ts +3 -0
  610. package/lib/features/agent/index.d.ts.map +1 -0
  611. package/lib/features/agent/index.js +3 -0
  612. package/lib/features/agent/index.js.map +1 -0
  613. package/lib/features/document-viewer/UniversalDocumentViewer.d.ts +73 -0
  614. package/lib/features/document-viewer/UniversalDocumentViewer.d.ts.map +1 -0
  615. package/lib/features/document-viewer/UniversalDocumentViewer.js +415 -0
  616. package/lib/features/document-viewer/UniversalDocumentViewer.js.map +1 -0
  617. package/lib/features/document-viewer/index.d.ts +2 -0
  618. package/lib/features/document-viewer/index.d.ts.map +1 -0
  619. package/lib/features/document-viewer/index.js +2 -0
  620. package/lib/features/document-viewer/index.js.map +1 -0
  621. package/lib/features/errors/PanelErrorBoundary.d.ts +5 -0
  622. package/lib/features/errors/PanelErrorBoundary.d.ts.map +1 -0
  623. package/lib/features/errors/PanelErrorBoundary.js +13 -0
  624. package/lib/features/errors/PanelErrorBoundary.js.map +1 -0
  625. package/lib/features/errors/RowErrorBoundary.d.ts +8 -0
  626. package/lib/features/errors/RowErrorBoundary.d.ts.map +1 -0
  627. package/lib/features/errors/RowErrorBoundary.js +10 -0
  628. package/lib/features/errors/RowErrorBoundary.js.map +1 -0
  629. package/lib/features/errors/VertesiaErrorBoundary.d.ts +12 -0
  630. package/lib/features/errors/VertesiaErrorBoundary.d.ts.map +1 -0
  631. package/lib/features/errors/VertesiaErrorBoundary.js +16 -0
  632. package/lib/features/errors/VertesiaErrorBoundary.js.map +1 -0
  633. package/lib/features/errors/WidgetErrorBoundary.d.ts +5 -0
  634. package/lib/features/errors/WidgetErrorBoundary.d.ts.map +1 -0
  635. package/lib/features/errors/WidgetErrorBoundary.js +11 -0
  636. package/lib/features/errors/WidgetErrorBoundary.js.map +1 -0
  637. package/lib/features/errors/index.d.ts +5 -0
  638. package/lib/features/errors/index.d.ts.map +1 -0
  639. package/lib/features/errors/index.js +5 -0
  640. package/lib/features/errors/index.js.map +1 -0
  641. package/lib/features/facets/AgentRunnerFacetsNav.d.ts +19 -0
  642. package/lib/features/facets/AgentRunnerFacetsNav.d.ts.map +1 -0
  643. package/lib/features/facets/AgentRunnerFacetsNav.js +85 -0
  644. package/lib/features/facets/AgentRunnerFacetsNav.js.map +1 -0
  645. package/lib/features/facets/CollectionsFacetsNav.d.ts +15 -0
  646. package/lib/features/facets/CollectionsFacetsNav.d.ts.map +1 -0
  647. package/lib/features/facets/CollectionsFacetsNav.js +74 -0
  648. package/lib/features/facets/CollectionsFacetsNav.js.map +1 -0
  649. package/lib/features/facets/DocumentsFacetsNav.d.ts +12 -0
  650. package/lib/features/facets/DocumentsFacetsNav.d.ts.map +1 -0
  651. package/lib/features/facets/DocumentsFacetsNav.js +137 -0
  652. package/lib/features/facets/DocumentsFacetsNav.js.map +1 -0
  653. package/lib/features/facets/EnvironmentFacet.d.ts +11 -0
  654. package/lib/features/facets/EnvironmentFacet.d.ts.map +1 -0
  655. package/lib/features/facets/EnvironmentFacet.js +42 -0
  656. package/lib/features/facets/EnvironmentFacet.js.map +1 -0
  657. package/lib/features/facets/InteractionsFacetsNav.d.ts +13 -0
  658. package/lib/features/facets/InteractionsFacetsNav.d.ts.map +1 -0
  659. package/lib/features/facets/InteractionsFacetsNav.js +73 -0
  660. package/lib/features/facets/InteractionsFacetsNav.js.map +1 -0
  661. package/lib/features/facets/ProcessDefinitionsFacetsNav.d.ts +19 -0
  662. package/lib/features/facets/ProcessDefinitionsFacetsNav.d.ts.map +1 -0
  663. package/lib/features/facets/ProcessDefinitionsFacetsNav.js +21 -0
  664. package/lib/features/facets/ProcessDefinitionsFacetsNav.js.map +1 -0
  665. package/lib/features/facets/ProcessRunsFacetsNav.d.ts +22 -0
  666. package/lib/features/facets/ProcessRunsFacetsNav.d.ts.map +1 -0
  667. package/lib/features/facets/ProcessRunsFacetsNav.js +25 -0
  668. package/lib/features/facets/ProcessRunsFacetsNav.js.map +1 -0
  669. package/lib/features/facets/PromptsFacetsNav.d.ts +16 -0
  670. package/lib/features/facets/PromptsFacetsNav.d.ts.map +1 -0
  671. package/lib/features/facets/PromptsFacetsNav.js +65 -0
  672. package/lib/features/facets/PromptsFacetsNav.js.map +1 -0
  673. package/lib/features/facets/RunsFacetsNav.d.ts +24 -0
  674. package/lib/features/facets/RunsFacetsNav.d.ts.map +1 -0
  675. package/lib/features/facets/RunsFacetsNav.js +147 -0
  676. package/lib/features/facets/RunsFacetsNav.js.map +1 -0
  677. package/lib/features/facets/WorkflowDefinitionsFacetsNav.d.ts +20 -0
  678. package/lib/features/facets/WorkflowDefinitionsFacetsNav.d.ts.map +1 -0
  679. package/lib/features/facets/WorkflowDefinitionsFacetsNav.js +21 -0
  680. package/lib/features/facets/WorkflowDefinitionsFacetsNav.js.map +1 -0
  681. package/lib/features/facets/WorkflowExecutionsFacetsNav.d.ts +15 -0
  682. package/lib/features/facets/WorkflowExecutionsFacetsNav.d.ts.map +1 -0
  683. package/lib/features/facets/WorkflowExecutionsFacetsNav.js +103 -0
  684. package/lib/features/facets/WorkflowExecutionsFacetsNav.js.map +1 -0
  685. package/lib/features/facets/WorkflowRulesFacetsNav.d.ts +20 -0
  686. package/lib/features/facets/WorkflowRulesFacetsNav.d.ts.map +1 -0
  687. package/lib/features/facets/WorkflowRulesFacetsNav.js +19 -0
  688. package/lib/features/facets/WorkflowRulesFacetsNav.js.map +1 -0
  689. package/lib/features/facets/index.d.ts +21 -0
  690. package/lib/features/facets/index.d.ts.map +1 -0
  691. package/lib/features/facets/index.js +21 -0
  692. package/lib/features/facets/index.js.map +1 -0
  693. package/lib/features/facets/utils/SearchInterface.d.ts +20 -0
  694. package/lib/features/facets/utils/SearchInterface.d.ts.map +1 -0
  695. package/lib/features/facets/utils/SearchInterface.js +20 -0
  696. package/lib/features/facets/utils/SearchInterface.js.map +1 -0
  697. package/lib/features/facets/utils/StringFacet.d.ts +12 -0
  698. package/lib/features/facets/utils/StringFacet.d.ts.map +1 -0
  699. package/lib/features/facets/utils/StringFacet.js +12 -0
  700. package/lib/features/facets/utils/StringFacet.js.map +1 -0
  701. package/lib/features/facets/utils/StringListFacet.d.ts +12 -0
  702. package/lib/features/facets/utils/StringListFacet.d.ts.map +1 -0
  703. package/lib/features/facets/utils/StringListFacet.js +11 -0
  704. package/lib/features/facets/utils/StringListFacet.js.map +1 -0
  705. package/lib/features/facets/utils/TypeFacet.d.ts +17 -0
  706. package/lib/features/facets/utils/TypeFacet.d.ts.map +1 -0
  707. package/lib/features/facets/utils/TypeFacet.js +42 -0
  708. package/lib/features/facets/utils/TypeFacet.js.map +1 -0
  709. package/lib/features/facets/utils/VEnvironmentFacet.d.ts +12 -0
  710. package/lib/features/facets/utils/VEnvironmentFacet.d.ts.map +1 -0
  711. package/lib/features/facets/utils/VEnvironmentFacet.js +25 -0
  712. package/lib/features/facets/utils/VEnvironmentFacet.js.map +1 -0
  713. package/lib/features/facets/utils/VInteractionFacet.d.ts +15 -0
  714. package/lib/features/facets/utils/VInteractionFacet.d.ts.map +1 -0
  715. package/lib/features/facets/utils/VInteractionFacet.js +45 -0
  716. package/lib/features/facets/utils/VInteractionFacet.js.map +1 -0
  717. package/lib/features/facets/utils/VStringFacet.d.ts +20 -0
  718. package/lib/features/facets/utils/VStringFacet.d.ts.map +1 -0
  719. package/lib/features/facets/utils/VStringFacet.js +20 -0
  720. package/lib/features/facets/utils/VStringFacet.js.map +1 -0
  721. package/lib/features/facets/utils/VTypeFacet.d.ts +12 -0
  722. package/lib/features/facets/utils/VTypeFacet.d.ts.map +1 -0
  723. package/lib/features/facets/utils/VTypeFacet.js +61 -0
  724. package/lib/features/facets/utils/VTypeFacet.js.map +1 -0
  725. package/lib/features/facets/utils/VUserFacet.d.ts +11 -0
  726. package/lib/features/facets/utils/VUserFacet.d.ts.map +1 -0
  727. package/lib/features/facets/utils/VUserFacet.js +31 -0
  728. package/lib/features/facets/utils/VUserFacet.js.map +1 -0
  729. package/lib/features/facets/utils/utils.d.ts +4 -0
  730. package/lib/features/facets/utils/utils.d.ts.map +1 -0
  731. package/lib/features/facets/utils/utils.js.map +1 -0
  732. package/lib/features/index.d.ts +15 -0
  733. package/lib/features/index.d.ts.map +1 -0
  734. package/lib/features/index.js +15 -0
  735. package/lib/features/index.js.map +1 -0
  736. package/lib/features/layout/GenericPageNavHeader.d.ts +19 -0
  737. package/lib/features/layout/GenericPageNavHeader.d.ts.map +1 -0
  738. package/lib/features/layout/GenericPageNavHeader.js +89 -0
  739. package/lib/features/layout/GenericPageNavHeader.js.map +1 -0
  740. package/lib/features/layout/NotFoundView.d.ts +2 -0
  741. package/lib/features/layout/NotFoundView.d.ts.map +1 -0
  742. package/lib/features/layout/NotFoundView.js +7 -0
  743. package/lib/features/layout/NotFoundView.js.map +1 -0
  744. package/lib/features/layout/index.d.ts +3 -0
  745. package/lib/features/layout/index.d.ts.map +1 -0
  746. package/lib/features/layout/index.js +3 -0
  747. package/lib/features/layout/index.js.map +1 -0
  748. package/lib/features/magic-pdf/AnnotatedImageSlider.d.ts +13 -0
  749. package/lib/features/magic-pdf/AnnotatedImageSlider.d.ts.map +1 -0
  750. package/lib/features/magic-pdf/AnnotatedImageSlider.js +277 -0
  751. package/lib/features/magic-pdf/AnnotatedImageSlider.js.map +1 -0
  752. package/lib/features/magic-pdf/DownloadPopover.d.ts +7 -0
  753. package/lib/features/magic-pdf/DownloadPopover.d.ts.map +1 -0
  754. package/lib/features/magic-pdf/DownloadPopover.js +29 -0
  755. package/lib/features/magic-pdf/DownloadPopover.js.map +1 -0
  756. package/lib/features/magic-pdf/ExtractedContentView.d.ts +8 -0
  757. package/lib/features/magic-pdf/ExtractedContentView.d.ts.map +1 -0
  758. package/lib/features/magic-pdf/ExtractedContentView.js +79 -0
  759. package/lib/features/magic-pdf/ExtractedContentView.js.map +1 -0
  760. package/lib/features/magic-pdf/MagicPdfProvider.d.ts +58 -0
  761. package/lib/features/magic-pdf/MagicPdfProvider.d.ts.map +1 -0
  762. package/lib/features/magic-pdf/MagicPdfProvider.js +241 -0
  763. package/lib/features/magic-pdf/MagicPdfProvider.js.map +1 -0
  764. package/lib/features/magic-pdf/MagicPdfView.d.ts +7 -0
  765. package/lib/features/magic-pdf/MagicPdfView.d.ts.map +1 -0
  766. package/lib/features/magic-pdf/MagicPdfView.js +64 -0
  767. package/lib/features/magic-pdf/MagicPdfView.js.map +1 -0
  768. package/lib/features/magic-pdf/index.d.ts +2 -0
  769. package/lib/features/magic-pdf/index.d.ts.map +1 -0
  770. package/lib/features/magic-pdf/index.js +2 -0
  771. package/lib/features/magic-pdf/index.js.map +1 -0
  772. package/lib/features/magic-pdf/types.d.ts +2 -0
  773. package/lib/features/magic-pdf/types.d.ts.map +1 -0
  774. package/lib/features/magic-pdf/types.js.map +1 -0
  775. package/lib/features/media-viewer/AudioPanel.d.ts +18 -0
  776. package/lib/features/media-viewer/AudioPanel.d.ts.map +1 -0
  777. package/lib/features/media-viewer/AudioPanel.js +77 -0
  778. package/lib/features/media-viewer/AudioPanel.js.map +1 -0
  779. package/lib/features/media-viewer/ImagePanel.d.ts +18 -0
  780. package/lib/features/media-viewer/ImagePanel.d.ts.map +1 -0
  781. package/lib/features/media-viewer/ImagePanel.js +74 -0
  782. package/lib/features/media-viewer/ImagePanel.js.map +1 -0
  783. package/lib/features/media-viewer/VideoPanel.d.ts +18 -0
  784. package/lib/features/media-viewer/VideoPanel.d.ts.map +1 -0
  785. package/lib/features/media-viewer/VideoPanel.js +89 -0
  786. package/lib/features/media-viewer/VideoPanel.js.map +1 -0
  787. package/lib/features/media-viewer/formats.d.ts +11 -0
  788. package/lib/features/media-viewer/formats.d.ts.map +1 -0
  789. package/lib/features/media-viewer/formats.js +34 -0
  790. package/lib/features/media-viewer/formats.js.map +1 -0
  791. package/lib/features/media-viewer/index.d.ts +5 -0
  792. package/lib/features/media-viewer/index.d.ts.map +1 -0
  793. package/lib/features/media-viewer/index.js +5 -0
  794. package/lib/features/media-viewer/index.js.map +1 -0
  795. package/lib/features/oauth/OAuthProviderConnectButton.d.ts +11 -0
  796. package/lib/features/oauth/OAuthProviderConnectButton.d.ts.map +1 -0
  797. package/lib/features/oauth/OAuthProviderConnectButton.js +85 -0
  798. package/lib/features/oauth/OAuthProviderConnectButton.js.map +1 -0
  799. package/lib/features/oauth/RemoteMcpConnectionButton.d.ts +25 -0
  800. package/lib/features/oauth/RemoteMcpConnectionButton.d.ts.map +1 -0
  801. package/lib/features/oauth/RemoteMcpConnectionButton.js +119 -0
  802. package/lib/features/oauth/RemoteMcpConnectionButton.js.map +1 -0
  803. package/lib/features/oauth/index.d.ts.map +1 -0
  804. package/lib/features/oauth/index.js.map +1 -0
  805. package/lib/features/oauth/useOAuthPopup.d.ts.map +1 -0
  806. package/lib/features/oauth/useOAuthPopup.js.map +1 -0
  807. package/lib/features/pdf-viewer/PdfPageRenderer.d.ts +83 -0
  808. package/lib/features/pdf-viewer/PdfPageRenderer.d.ts.map +1 -0
  809. package/lib/features/pdf-viewer/PdfPageRenderer.js +259 -0
  810. package/lib/features/pdf-viewer/PdfPageRenderer.js.map +1 -0
  811. package/lib/features/pdf-viewer/PdfPageSlider.d.ts +29 -0
  812. package/lib/features/pdf-viewer/PdfPageSlider.d.ts.map +1 -0
  813. package/lib/features/pdf-viewer/PdfPageSlider.js +274 -0
  814. package/lib/features/pdf-viewer/PdfPageSlider.js.map +1 -0
  815. package/lib/features/pdf-viewer/SimplePdfViewer.d.ts +19 -0
  816. package/lib/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -0
  817. package/lib/features/pdf-viewer/SimplePdfViewer.js +74 -0
  818. package/lib/features/pdf-viewer/SimplePdfViewer.js.map +1 -0
  819. package/lib/features/pdf-viewer/index.d.ts.map +1 -0
  820. package/lib/features/pdf-viewer/index.js.map +1 -0
  821. package/lib/features/permissions/SecureButton.d.ts +8 -0
  822. package/lib/features/permissions/SecureButton.d.ts.map +1 -0
  823. package/lib/features/permissions/SecureButton.js +12 -0
  824. package/lib/features/permissions/SecureButton.js.map +1 -0
  825. package/lib/features/permissions/SecureSidebarItem.d.ts +8 -0
  826. package/lib/features/permissions/SecureSidebarItem.d.ts.map +1 -0
  827. package/lib/features/permissions/SecureSidebarItem.js +14 -0
  828. package/lib/features/permissions/SecureSidebarItem.js.map +1 -0
  829. package/lib/features/permissions/UserPermissionsProvider.d.ts +20 -0
  830. package/lib/features/permissions/UserPermissionsProvider.d.ts.map +1 -0
  831. package/lib/features/permissions/UserPermissionsProvider.js +98 -0
  832. package/lib/features/permissions/UserPermissionsProvider.js.map +1 -0
  833. package/lib/features/permissions/helpers.d.ts +5 -0
  834. package/lib/features/permissions/helpers.d.ts.map +1 -0
  835. package/lib/features/permissions/helpers.js.map +1 -0
  836. package/lib/features/permissions/index.d.ts +5 -0
  837. package/lib/features/permissions/index.d.ts.map +1 -0
  838. package/lib/features/permissions/index.js +5 -0
  839. package/lib/features/permissions/index.js.map +1 -0
  840. package/lib/features/store/collections/BrowseCollectionView.d.ts +7 -0
  841. package/lib/features/store/collections/BrowseCollectionView.d.ts.map +1 -0
  842. package/lib/features/store/collections/BrowseCollectionView.js +48 -0
  843. package/lib/features/store/collections/BrowseCollectionView.js.map +1 -0
  844. package/lib/features/store/collections/CollectionsTable.d.ts +5 -0
  845. package/lib/features/store/collections/CollectionsTable.d.ts.map +1 -0
  846. package/lib/features/store/collections/CollectionsTable.js +65 -0
  847. package/lib/features/store/collections/CollectionsTable.js.map +1 -0
  848. package/lib/features/store/collections/CreateCollection.d.ts +13 -0
  849. package/lib/features/store/collections/CreateCollection.d.ts.map +1 -0
  850. package/lib/features/store/collections/CreateCollection.js +89 -0
  851. package/lib/features/store/collections/CreateCollection.js.map +1 -0
  852. package/lib/features/store/collections/EditCollectionView.d.ts +8 -0
  853. package/lib/features/store/collections/EditCollectionView.d.ts.map +1 -0
  854. package/lib/features/store/collections/EditCollectionView.js +228 -0
  855. package/lib/features/store/collections/EditCollectionView.js.map +1 -0
  856. package/lib/features/store/collections/SelectCollection.d.ts +20 -0
  857. package/lib/features/store/collections/SelectCollection.d.ts.map +1 -0
  858. package/lib/features/store/collections/SelectCollection.js +134 -0
  859. package/lib/features/store/collections/SelectCollection.js.map +1 -0
  860. package/lib/features/store/collections/SharedPropsEditor.d.ts +7 -0
  861. package/lib/features/store/collections/SharedPropsEditor.d.ts.map +1 -0
  862. package/lib/features/store/collections/SharedPropsEditor.js +44 -0
  863. package/lib/features/store/collections/SharedPropsEditor.js.map +1 -0
  864. package/lib/features/store/collections/SyncMemberHeadsToggle.d.ts +7 -0
  865. package/lib/features/store/collections/SyncMemberHeadsToggle.d.ts.map +1 -0
  866. package/lib/features/store/collections/SyncMemberHeadsToggle.js +41 -0
  867. package/lib/features/store/collections/SyncMemberHeadsToggle.js.map +1 -0
  868. package/lib/features/store/collections/index.d.ts +8 -0
  869. package/lib/features/store/collections/index.d.ts.map +1 -0
  870. package/lib/features/store/collections/index.js +8 -0
  871. package/lib/features/store/collections/index.js.map +1 -0
  872. package/lib/features/store/index.d.ts +4 -0
  873. package/lib/features/store/index.d.ts.map +1 -0
  874. package/lib/features/store/index.js +4 -0
  875. package/lib/features/store/index.js.map +1 -0
  876. package/lib/features/store/objects/DocumentPreviewPanel.d.ts +8 -0
  877. package/lib/features/store/objects/DocumentPreviewPanel.d.ts.map +1 -0
  878. package/lib/features/store/objects/DocumentPreviewPanel.js +146 -0
  879. package/lib/features/store/objects/DocumentPreviewPanel.js.map +1 -0
  880. package/lib/features/store/objects/DocumentSearchResults.d.ts +20 -0
  881. package/lib/features/store/objects/DocumentSearchResults.d.ts.map +1 -0
  882. package/lib/features/store/objects/DocumentSearchResults.js +251 -0
  883. package/lib/features/store/objects/DocumentSearchResults.js.map +1 -0
  884. package/lib/features/store/objects/DocumentSelectionProvider.d.ts +33 -0
  885. package/lib/features/store/objects/DocumentSelectionProvider.d.ts.map +1 -0
  886. package/lib/features/store/objects/DocumentSelectionProvider.js +81 -0
  887. package/lib/features/store/objects/DocumentSelectionProvider.js.map +1 -0
  888. package/lib/features/store/objects/DocumentTable.d.ts +25 -0
  889. package/lib/features/store/objects/DocumentTable.d.ts.map +1 -0
  890. package/lib/features/store/objects/DocumentTable.js +281 -0
  891. package/lib/features/store/objects/DocumentTable.js.map +1 -0
  892. package/lib/features/store/objects/ExportPropertiesModal.d.ts +12 -0
  893. package/lib/features/store/objects/ExportPropertiesModal.d.ts.map +1 -0
  894. package/lib/features/store/objects/ExportPropertiesModal.js +31 -0
  895. package/lib/features/store/objects/ExportPropertiesModal.js.map +1 -0
  896. package/lib/features/store/objects/components/ContentDispositionButton.d.ts +9 -0
  897. package/lib/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -0
  898. package/lib/features/store/objects/components/ContentDispositionButton.js +31 -0
  899. package/lib/features/store/objects/components/ContentDispositionButton.js.map +1 -0
  900. package/lib/features/store/objects/components/ContentOverview.d.ts +10 -0
  901. package/lib/features/store/objects/components/ContentOverview.d.ts.map +1 -0
  902. package/lib/features/store/objects/components/ContentOverview.js +433 -0
  903. package/lib/features/store/objects/components/ContentOverview.js.map +1 -0
  904. package/lib/features/store/objects/components/DocumentIcon.d.ts +19 -0
  905. package/lib/features/store/objects/components/DocumentIcon.d.ts.map +1 -0
  906. package/lib/features/store/objects/components/DocumentIcon.js +37 -0
  907. package/lib/features/store/objects/components/DocumentIcon.js.map +1 -0
  908. package/lib/features/store/objects/components/DocumentInput.d.ts +8 -0
  909. package/lib/features/store/objects/components/DocumentInput.d.ts.map +1 -0
  910. package/lib/features/store/objects/components/DocumentInput.js +52 -0
  911. package/lib/features/store/objects/components/DocumentInput.js.map +1 -0
  912. package/lib/features/store/objects/components/PropertiesEditorModal.d.ts +9 -0
  913. package/lib/features/store/objects/components/PropertiesEditorModal.d.ts.map +1 -0
  914. package/lib/features/store/objects/components/PropertiesEditorModal.js +161 -0
  915. package/lib/features/store/objects/components/PropertiesEditorModal.js.map +1 -0
  916. package/lib/features/store/objects/components/SaveVersionConfirmModal.d.ts +9 -0
  917. package/lib/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +1 -0
  918. package/lib/features/store/objects/components/SaveVersionConfirmModal.js +58 -0
  919. package/lib/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -0
  920. package/lib/features/store/objects/components/SelectDocument.d.ts +11 -0
  921. package/lib/features/store/objects/components/SelectDocument.d.ts.map +1 -0
  922. package/lib/features/store/objects/components/SelectDocument.js +55 -0
  923. package/lib/features/store/objects/components/SelectDocument.js.map +1 -0
  924. package/lib/features/store/objects/components/SelectDocumentModal.d.ts +9 -0
  925. package/lib/features/store/objects/components/SelectDocumentModal.d.ts.map +1 -0
  926. package/lib/features/store/objects/components/SelectDocumentModal.js +7 -0
  927. package/lib/features/store/objects/components/SelectDocumentModal.js.map +1 -0
  928. package/lib/features/store/objects/components/TextEditorPanel.d.ts +10 -0
  929. package/lib/features/store/objects/components/TextEditorPanel.d.ts.map +1 -0
  930. package/lib/features/store/objects/components/TextEditorPanel.js +99 -0
  931. package/lib/features/store/objects/components/TextEditorPanel.js.map +1 -0
  932. package/lib/features/store/objects/components/VectorSearchWidget.d.ts +12 -0
  933. package/lib/features/store/objects/components/VectorSearchWidget.d.ts.map +1 -0
  934. package/lib/features/store/objects/components/VectorSearchWidget.js +101 -0
  935. package/lib/features/store/objects/components/VectorSearchWidget.js.map +1 -0
  936. package/lib/features/store/objects/components/index.d.ts +10 -0
  937. package/lib/features/store/objects/components/index.d.ts.map +1 -0
  938. package/lib/features/store/objects/components/index.js +10 -0
  939. package/lib/features/store/objects/components/index.js.map +1 -0
  940. package/lib/features/store/objects/components/useContentPanelHooks.d.ts +30 -0
  941. package/lib/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -0
  942. package/lib/features/store/objects/components/useContentPanelHooks.js +193 -0
  943. package/lib/features/store/objects/components/useContentPanelHooks.js.map +1 -0
  944. package/lib/features/store/objects/components/useDownloadFile.d.ts +39 -0
  945. package/lib/features/store/objects/components/useDownloadFile.d.ts.map +1 -0
  946. package/lib/features/store/objects/components/useDownloadFile.js +196 -0
  947. package/lib/features/store/objects/components/useDownloadFile.js.map +1 -0
  948. package/lib/features/store/objects/index.d.ts +11 -0
  949. package/lib/features/store/objects/index.d.ts.map +1 -0
  950. package/lib/features/store/objects/index.js +11 -0
  951. package/lib/features/store/objects/index.js.map +1 -0
  952. package/lib/features/store/objects/layout/DocumentTableColumn.d.ts +18 -0
  953. package/lib/features/store/objects/layout/DocumentTableColumn.d.ts.map +1 -0
  954. package/lib/features/store/objects/layout/DocumentTableColumn.js +95 -0
  955. package/lib/features/store/objects/layout/DocumentTableColumn.js.map +1 -0
  956. package/lib/features/store/objects/layout/documentLayout.d.ts +21 -0
  957. package/lib/features/store/objects/layout/documentLayout.d.ts.map +1 -0
  958. package/lib/features/store/objects/layout/documentLayout.js +18 -0
  959. package/lib/features/store/objects/layout/documentLayout.js.map +1 -0
  960. package/lib/features/store/objects/layout/index.d.ts +3 -0
  961. package/lib/features/store/objects/layout/index.d.ts.map +1 -0
  962. package/lib/features/store/objects/layout/index.js +3 -0
  963. package/lib/features/store/objects/layout/index.js.map +1 -0
  964. package/lib/features/store/objects/layout/renderers.d.ts +3 -0
  965. package/lib/features/store/objects/layout/renderers.d.ts.map +1 -0
  966. package/lib/features/store/objects/layout/renderers.js +198 -0
  967. package/lib/features/store/objects/layout/renderers.js.map +1 -0
  968. package/lib/features/store/objects/search/DocumentSearchContext.d.ts +53 -0
  969. package/lib/features/store/objects/search/DocumentSearchContext.d.ts.map +1 -0
  970. package/lib/features/store/objects/search/DocumentSearchContext.js +190 -0
  971. package/lib/features/store/objects/search/DocumentSearchContext.js.map +1 -0
  972. package/lib/features/store/objects/search/DocumentSearchProvider.d.ts +14 -0
  973. package/lib/features/store/objects/search/DocumentSearchProvider.d.ts.map +1 -0
  974. package/lib/features/store/objects/search/DocumentSearchProvider.js +42 -0
  975. package/lib/features/store/objects/search/DocumentSearchProvider.js.map +1 -0
  976. package/lib/features/store/objects/search/index.d.ts +3 -0
  977. package/lib/features/store/objects/search/index.d.ts.map +1 -0
  978. package/lib/features/store/objects/search/index.js +3 -0
  979. package/lib/features/store/objects/search/index.js.map +1 -0
  980. package/lib/features/store/objects/selection/ObjectsActionContext.d.ts +9 -0
  981. package/lib/features/store/objects/selection/ObjectsActionContext.d.ts.map +1 -0
  982. package/lib/features/store/objects/selection/ObjectsActionContext.js +70 -0
  983. package/lib/features/store/objects/selection/ObjectsActionContext.js.map +1 -0
  984. package/lib/features/store/objects/selection/ObjectsActionContextClass.d.ts +16 -0
  985. package/lib/features/store/objects/selection/ObjectsActionContextClass.d.ts.map +1 -0
  986. package/lib/features/store/objects/selection/ObjectsActionContextClass.js +50 -0
  987. package/lib/features/store/objects/selection/ObjectsActionContextClass.js.map +1 -0
  988. package/lib/features/store/objects/selection/ObjectsActionHooks.d.ts +7 -0
  989. package/lib/features/store/objects/selection/ObjectsActionHooks.d.ts.map +1 -0
  990. package/lib/features/store/objects/selection/ObjectsActionHooks.js +27 -0
  991. package/lib/features/store/objects/selection/ObjectsActionHooks.js.map +1 -0
  992. package/lib/features/store/objects/selection/ObjectsActionSpec.d.ts +32 -0
  993. package/lib/features/store/objects/selection/ObjectsActionSpec.d.ts.map +1 -0
  994. package/lib/features/store/objects/selection/ObjectsActionSpec.js.map +1 -0
  995. package/lib/features/store/objects/selection/SelectionActions.d.ts +14 -0
  996. package/lib/features/store/objects/selection/SelectionActions.d.ts.map +1 -0
  997. package/lib/features/store/objects/selection/SelectionActions.js +96 -0
  998. package/lib/features/store/objects/selection/SelectionActions.js.map +1 -0
  999. package/lib/features/store/objects/selection/actions/AddToCollectionAction.d.ts +4 -0
  1000. package/lib/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +1 -0
  1001. package/lib/features/store/objects/selection/actions/AddToCollectionAction.js +88 -0
  1002. package/lib/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -0
  1003. package/lib/features/store/objects/selection/actions/ChangeTypeAction.d.ts +4 -0
  1004. package/lib/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +1 -0
  1005. package/lib/features/store/objects/selection/actions/ChangeTypeAction.js +59 -0
  1006. package/lib/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -0
  1007. package/lib/features/store/objects/selection/actions/ConfirmAction.d.ts +16 -0
  1008. package/lib/features/store/objects/selection/actions/ConfirmAction.d.ts.map +1 -0
  1009. package/lib/features/store/objects/selection/actions/ConfirmAction.js +32 -0
  1010. package/lib/features/store/objects/selection/actions/ConfirmAction.js.map +1 -0
  1011. package/lib/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +5 -0
  1012. package/lib/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +1 -0
  1013. package/lib/features/store/objects/selection/actions/DeleteObjectsAction.js +99 -0
  1014. package/lib/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -0
  1015. package/lib/features/store/objects/selection/actions/ExportPropertiesAction.d.ts +4 -0
  1016. package/lib/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +1 -0
  1017. package/lib/features/store/objects/selection/actions/ExportPropertiesAction.js +115 -0
  1018. package/lib/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -0
  1019. package/lib/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts +4 -0
  1020. package/lib/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +1 -0
  1021. package/lib/features/store/objects/selection/actions/RemoveFromCollectionAction.js +79 -0
  1022. package/lib/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +1 -0
  1023. package/lib/features/store/objects/selection/actions/StartWorkflowComponent.d.ts +4 -0
  1024. package/lib/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +1 -0
  1025. package/lib/features/store/objects/selection/actions/StartWorkflowComponent.js +77 -0
  1026. package/lib/features/store/objects/selection/actions/StartWorkflowComponent.js.map +1 -0
  1027. package/lib/features/store/objects/selection/actions/index.d.ts +8 -0
  1028. package/lib/features/store/objects/selection/actions/index.d.ts.map +1 -0
  1029. package/lib/features/store/objects/selection/actions/index.js +8 -0
  1030. package/lib/features/store/objects/selection/actions/index.js.map +1 -0
  1031. package/lib/features/store/objects/selection/index.d.ts +5 -0
  1032. package/lib/features/store/objects/selection/index.d.ts.map +1 -0
  1033. package/lib/features/store/objects/selection/index.js +5 -0
  1034. package/lib/features/store/objects/selection/index.js.map +1 -0
  1035. package/lib/features/store/objects/upload/DocumentUploadModal.d.ts +39 -0
  1036. package/lib/features/store/objects/upload/DocumentUploadModal.d.ts.map +1 -0
  1037. package/lib/features/store/objects/upload/DocumentUploadModal.js +525 -0
  1038. package/lib/features/store/objects/upload/DocumentUploadModal.js.map +1 -0
  1039. package/lib/features/store/objects/upload/index.d.ts +4 -0
  1040. package/lib/features/store/objects/upload/index.d.ts.map +1 -0
  1041. package/lib/features/store/objects/upload/index.js +4 -0
  1042. package/lib/features/store/objects/upload/index.js.map +1 -0
  1043. package/lib/features/store/objects/upload/useSmartFileUploadProcessing.d.ts +30 -0
  1044. package/lib/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +1 -0
  1045. package/lib/features/store/objects/upload/useSmartFileUploadProcessing.js +207 -0
  1046. package/lib/features/store/objects/upload/useSmartFileUploadProcessing.js.map +1 -0
  1047. package/lib/features/store/objects/upload/useUploadHandler.d.ts +50 -0
  1048. package/lib/features/store/objects/upload/useUploadHandler.d.ts.map +1 -0
  1049. package/lib/features/store/objects/upload/useUploadHandler.js +232 -0
  1050. package/lib/features/store/objects/upload/useUploadHandler.js.map +1 -0
  1051. package/lib/features/store/types/ContentObjectTypesSearch.d.ts +6 -0
  1052. package/lib/features/store/types/ContentObjectTypesSearch.d.ts.map +1 -0
  1053. package/lib/features/store/types/ContentObjectTypesSearch.js +83 -0
  1054. package/lib/features/store/types/ContentObjectTypesSearch.js.map +1 -0
  1055. package/lib/features/store/types/ContentObjectTypesTable.d.ts +8 -0
  1056. package/lib/features/store/types/ContentObjectTypesTable.d.ts.map +1 -0
  1057. package/lib/features/store/types/ContentObjectTypesTable.js +13 -0
  1058. package/lib/features/store/types/ContentObjectTypesTable.js.map +1 -0
  1059. package/lib/features/store/types/CreateOrUpdateTypeModal.d.ts +16 -0
  1060. package/lib/features/store/types/CreateOrUpdateTypeModal.d.ts.map +1 -0
  1061. package/lib/features/store/types/CreateOrUpdateTypeModal.js +25 -0
  1062. package/lib/features/store/types/CreateOrUpdateTypeModal.js.map +1 -0
  1063. package/lib/features/store/types/ObjectSchemaEditor.d.ts +9 -0
  1064. package/lib/features/store/types/ObjectSchemaEditor.d.ts.map +1 -0
  1065. package/lib/features/store/types/ObjectSchemaEditor.js +106 -0
  1066. package/lib/features/store/types/ObjectSchemaEditor.js.map +1 -0
  1067. package/lib/features/store/types/SelectContentType.d.ts +11 -0
  1068. package/lib/features/store/types/SelectContentType.d.ts.map +1 -0
  1069. package/lib/features/store/types/SelectContentType.js +45 -0
  1070. package/lib/features/store/types/SelectContentType.js.map +1 -0
  1071. package/lib/features/store/types/SelectContentTypeModal.d.ts +33 -0
  1072. package/lib/features/store/types/SelectContentTypeModal.d.ts.map +1 -0
  1073. package/lib/features/store/types/SelectContentTypeModal.js +32 -0
  1074. package/lib/features/store/types/SelectContentTypeModal.js.map +1 -0
  1075. package/lib/features/store/types/TableLayoutEditor.d.ts +10 -0
  1076. package/lib/features/store/types/TableLayoutEditor.d.ts.map +1 -0
  1077. package/lib/features/store/types/TableLayoutEditor.js +82 -0
  1078. package/lib/features/store/types/TableLayoutEditor.js.map +1 -0
  1079. package/lib/features/store/types/TypeRegistry.d.ts +10 -0
  1080. package/lib/features/store/types/TypeRegistry.d.ts.map +1 -0
  1081. package/lib/features/store/types/TypeRegistry.js.map +1 -0
  1082. package/lib/features/store/types/TypeRegistryProvider.d.ts +15 -0
  1083. package/lib/features/store/types/TypeRegistryProvider.d.ts.map +1 -0
  1084. package/lib/features/store/types/TypeRegistryProvider.js +57 -0
  1085. package/lib/features/store/types/TypeRegistryProvider.js.map +1 -0
  1086. package/lib/features/store/types/index.d.ts +11 -0
  1087. package/lib/features/store/types/index.d.ts.map +1 -0
  1088. package/lib/features/store/types/index.js +11 -0
  1089. package/lib/features/store/types/index.js.map +1 -0
  1090. package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts +36 -0
  1091. package/lib/features/store/types/search/ObjectTypeSearchContext.d.ts.map +1 -0
  1092. package/lib/features/store/types/search/ObjectTypeSearchContext.js +102 -0
  1093. package/lib/features/store/types/search/ObjectTypeSearchContext.js.map +1 -0
  1094. package/lib/features/store/types/search/ObjectTypeSearchProvider.d.ts +11 -0
  1095. package/lib/features/store/types/search/ObjectTypeSearchProvider.d.ts.map +1 -0
  1096. package/lib/features/store/types/search/ObjectTypeSearchProvider.js +15 -0
  1097. package/lib/features/store/types/search/ObjectTypeSearchProvider.js.map +1 -0
  1098. package/lib/features/store/types/search/index.d.ts +3 -0
  1099. package/lib/features/store/types/search/index.d.ts.map +1 -0
  1100. package/lib/features/store/types/search/index.js +3 -0
  1101. package/lib/features/store/types/search/index.js.map +1 -0
  1102. package/lib/features/user/UserAvatar.d.ts +9 -0
  1103. package/lib/features/user/UserAvatar.d.ts.map +1 -0
  1104. package/lib/features/user/UserAvatar.js +21 -0
  1105. package/lib/features/user/UserAvatar.js.map +1 -0
  1106. package/lib/features/user/UserInfo.d.ts +60 -0
  1107. package/lib/features/user/UserInfo.d.ts.map +1 -0
  1108. package/lib/features/user/UserInfo.js +229 -0
  1109. package/lib/features/user/UserInfo.js.map +1 -0
  1110. package/lib/features/user/index.d.ts +3 -0
  1111. package/lib/features/user/index.d.ts.map +1 -0
  1112. package/lib/features/user/index.js +3 -0
  1113. package/lib/features/user/index.js.map +1 -0
  1114. package/lib/features/utils/index.d.ts +6 -0
  1115. package/lib/features/utils/index.d.ts.map +1 -0
  1116. package/lib/features/utils/index.js +6 -0
  1117. package/lib/features/utils/index.js.map +1 -0
  1118. package/lib/features/utils/mimeType.d.ts.map +1 -0
  1119. package/lib/features/utils/mimeType.js.map +1 -0
  1120. package/lib/features/utils/print.d.ts.map +1 -0
  1121. package/lib/features/utils/print.js +182 -0
  1122. package/lib/features/utils/print.js.map +1 -0
  1123. package/lib/features/utils/rendition.d.ts +4 -0
  1124. package/lib/features/utils/rendition.d.ts.map +1 -0
  1125. package/lib/features/utils/rendition.js +65 -0
  1126. package/lib/features/utils/rendition.js.map +1 -0
  1127. package/lib/features/utils/text.d.ts.map +1 -0
  1128. package/lib/features/utils/text.js +10 -0
  1129. package/lib/features/utils/text.js.map +1 -0
  1130. package/lib/features/utils/workflowStatus.d.ts +10 -0
  1131. package/lib/features/utils/workflowStatus.d.ts.map +1 -0
  1132. package/lib/features/utils/workflowStatus.js +43 -0
  1133. package/lib/features/utils/workflowStatus.js.map +1 -0
  1134. package/lib/i18n/LanguageProvider.d.ts +16 -0
  1135. package/lib/i18n/LanguageProvider.d.ts.map +1 -0
  1136. package/lib/i18n/LanguageProvider.js +48 -0
  1137. package/lib/i18n/LanguageProvider.js.map +1 -0
  1138. package/lib/i18n/index.d.ts +28 -0
  1139. package/lib/i18n/index.d.ts.map +1 -0
  1140. package/lib/i18n/index.js +46 -0
  1141. package/lib/i18n/index.js.map +1 -0
  1142. package/lib/i18n/instance.d.ts.map +1 -0
  1143. package/lib/i18n/instance.js.map +1 -0
  1144. package/lib/i18n/locales/ar.json +733 -0
  1145. package/lib/i18n/locales/de.json +689 -0
  1146. package/lib/i18n/locales/en.json +704 -0
  1147. package/lib/i18n/locales/es.json +700 -0
  1148. package/lib/i18n/locales/fr.json +700 -0
  1149. package/lib/i18n/locales/it.json +700 -0
  1150. package/lib/i18n/locales/ja.json +689 -0
  1151. package/lib/i18n/locales/ko.json +689 -0
  1152. package/lib/i18n/locales/pt.json +700 -0
  1153. package/lib/i18n/locales/ru.json +711 -0
  1154. package/lib/i18n/locales/tr.json +689 -0
  1155. package/lib/i18n/locales/zh-TW.json +689 -0
  1156. package/lib/i18n/locales/zh.json +689 -0
  1157. package/lib/i18n/rtl.d.ts +27 -0
  1158. package/lib/i18n/rtl.d.ts.map +1 -0
  1159. package/lib/i18n/rtl.js +54 -0
  1160. package/lib/i18n/rtl.js.map +1 -0
  1161. package/lib/i18n/useLocaleFormat.d.ts +29 -0
  1162. package/lib/i18n/useLocaleFormat.d.ts.map +1 -0
  1163. package/lib/i18n/useLocaleFormat.js +79 -0
  1164. package/lib/i18n/useLocaleFormat.js.map +1 -0
  1165. package/lib/layout/AppLayout.d.ts +13 -0
  1166. package/lib/layout/AppLayout.d.ts.map +1 -0
  1167. package/lib/layout/AppLayout.js +47 -0
  1168. package/lib/layout/AppLayout.js.map +1 -0
  1169. package/lib/layout/ErrorPage.d.ts +9 -0
  1170. package/lib/layout/ErrorPage.d.ts.map +1 -0
  1171. package/lib/layout/ErrorPage.js +6 -0
  1172. package/lib/layout/ErrorPage.js.map +1 -0
  1173. package/lib/layout/FullHeightLayout.d.ts +27 -0
  1174. package/lib/layout/FullHeightLayout.d.ts.map +1 -0
  1175. package/lib/layout/FullHeightLayout.js +24 -0
  1176. package/lib/layout/FullHeightLayout.js.map +1 -0
  1177. package/lib/layout/Navbar.d.ts +33 -0
  1178. package/lib/layout/Navbar.d.ts.map +1 -0
  1179. package/lib/layout/Navbar.js +42 -0
  1180. package/lib/layout/Navbar.js.map +1 -0
  1181. package/lib/layout/RegionTag.d.ts +4 -0
  1182. package/lib/layout/RegionTag.d.ts.map +1 -0
  1183. package/lib/layout/RegionTag.js.map +1 -0
  1184. package/lib/layout/Sidebar.d.ts +35 -0
  1185. package/lib/layout/Sidebar.d.ts.map +1 -0
  1186. package/lib/layout/Sidebar.js +47 -0
  1187. package/lib/layout/Sidebar.js.map +1 -0
  1188. package/lib/layout/SidebarContext.d.ts.map +1 -0
  1189. package/lib/layout/SidebarContext.js +10 -0
  1190. package/lib/layout/SidebarContext.js.map +1 -0
  1191. package/lib/layout/TitleBar.d.ts +6 -0
  1192. package/lib/layout/TitleBar.d.ts.map +1 -0
  1193. package/lib/layout/TitleBar.js +5 -0
  1194. package/lib/layout/TitleBar.js.map +1 -0
  1195. package/lib/layout/index.d.ts +9 -0
  1196. package/lib/layout/index.d.ts.map +1 -0
  1197. package/lib/layout/index.js +9 -0
  1198. package/lib/layout/index.js.map +1 -0
  1199. package/lib/router/FixLinks.d.ts +7 -0
  1200. package/lib/router/FixLinks.d.ts.map +1 -0
  1201. package/lib/router/FixLinks.js +23 -0
  1202. package/lib/router/FixLinks.js.map +1 -0
  1203. package/lib/router/HistoryNavigator.d.ts +68 -0
  1204. package/lib/router/HistoryNavigator.d.ts.map +1 -0
  1205. package/lib/router/HistoryNavigator.js +220 -0
  1206. package/lib/router/HistoryNavigator.js.map +1 -0
  1207. package/lib/router/Nav.d.ts +43 -0
  1208. package/lib/router/Nav.d.ts.map +1 -0
  1209. package/lib/router/Nav.js +37 -0
  1210. package/lib/router/Nav.js.map +1 -0
  1211. package/lib/router/NestedNavigationContext.d.ts +9 -0
  1212. package/lib/router/NestedNavigationContext.d.ts.map +1 -0
  1213. package/lib/router/NestedNavigationContext.js +23 -0
  1214. package/lib/router/NestedNavigationContext.js.map +1 -0
  1215. package/lib/router/NestedRouterProvider.d.ts +14 -0
  1216. package/lib/router/NestedRouterProvider.d.ts.map +1 -0
  1217. package/lib/router/NestedRouterProvider.js +52 -0
  1218. package/lib/router/NestedRouterProvider.js.map +1 -0
  1219. package/lib/router/PathMatcher.d.ts +36 -0
  1220. package/lib/router/PathMatcher.d.ts.map +1 -0
  1221. package/lib/router/PathMatcher.js +158 -0
  1222. package/lib/router/PathMatcher.js.map +1 -0
  1223. package/lib/router/PathWithParams.d.ts.map +1 -0
  1224. package/lib/router/PathWithParams.js +34 -0
  1225. package/lib/router/PathWithParams.js.map +1 -0
  1226. package/lib/router/Route404.d.ts +4 -0
  1227. package/lib/router/Route404.d.ts.map +1 -0
  1228. package/lib/router/Route404.js +18 -0
  1229. package/lib/router/Route404.js.map +1 -0
  1230. package/lib/router/RouteComponent.d.ts +6 -0
  1231. package/lib/router/RouteComponent.d.ts.map +1 -0
  1232. package/lib/router/RouteComponent.js +32 -0
  1233. package/lib/router/RouteComponent.js.map +1 -0
  1234. package/lib/router/Router.d.ts +81 -0
  1235. package/lib/router/Router.d.ts.map +1 -0
  1236. package/lib/router/Router.js +183 -0
  1237. package/lib/router/Router.js.map +1 -0
  1238. package/lib/router/RouterProvider.d.ts +15 -0
  1239. package/lib/router/RouterProvider.d.ts.map +1 -0
  1240. package/lib/router/RouterProvider.js +40 -0
  1241. package/lib/router/RouterProvider.js.map +1 -0
  1242. package/lib/router/index.d.ts +11 -0
  1243. package/lib/router/index.d.ts.map +1 -0
  1244. package/lib/router/index.js +11 -0
  1245. package/lib/router/index.js.map +1 -0
  1246. package/lib/router/path.d.ts.map +1 -0
  1247. package/lib/router/path.js +140 -0
  1248. package/lib/router/path.js.map +1 -0
  1249. package/lib/session/UserSession.d.ts +46 -0
  1250. package/lib/session/UserSession.d.ts.map +1 -0
  1251. package/lib/session/UserSession.js +248 -0
  1252. package/lib/session/UserSession.js.map +1 -0
  1253. package/lib/session/UserSessionProvider.d.ts +8 -0
  1254. package/lib/session/UserSessionProvider.d.ts.map +1 -0
  1255. package/lib/session/UserSessionProvider.js +252 -0
  1256. package/lib/session/UserSessionProvider.js.map +1 -0
  1257. package/lib/session/auth/composable.d.ts +38 -0
  1258. package/lib/session/auth/composable.d.ts.map +1 -0
  1259. package/lib/session/auth/composable.js +325 -0
  1260. package/lib/session/auth/composable.js.map +1 -0
  1261. package/lib/session/auth/domainRouting.d.ts.map +1 -0
  1262. package/lib/session/auth/domainRouting.js.map +1 -0
  1263. package/lib/session/auth/firebase.d.ts +10 -0
  1264. package/lib/session/auth/firebase.d.ts.map +1 -0
  1265. package/lib/session/auth/firebase.js +160 -0
  1266. package/lib/session/auth/firebase.js.map +1 -0
  1267. package/lib/session/auth/useAuthState.d.ts.map +1 -0
  1268. package/lib/session/auth/useAuthState.js +46 -0
  1269. package/lib/session/auth/useAuthState.js.map +1 -0
  1270. package/lib/session/auth/useCurrentTenant.d.ts.map +1 -0
  1271. package/lib/session/auth/useCurrentTenant.js +64 -0
  1272. package/lib/session/auth/useCurrentTenant.js.map +1 -0
  1273. package/lib/session/constants.d.ts.map +1 -0
  1274. package/lib/session/constants.js.map +1 -0
  1275. package/lib/session/index.d.ts +8 -0
  1276. package/lib/session/index.d.ts.map +1 -0
  1277. package/lib/session/index.js +8 -0
  1278. package/lib/session/index.js.map +1 -0
  1279. package/lib/session/useUXTracking.d.ts +6 -0
  1280. package/lib/session/useUXTracking.d.ts.map +1 -0
  1281. package/lib/session/useUXTracking.js +29 -0
  1282. package/lib/session/useUXTracking.js.map +1 -0
  1283. package/lib/shell/SplashScreen.d.ts +7 -0
  1284. package/lib/shell/SplashScreen.d.ts.map +1 -0
  1285. package/lib/shell/SplashScreen.js +28 -0
  1286. package/lib/shell/SplashScreen.js.map +1 -0
  1287. package/lib/shell/VertesiaShell.d.ts +16 -0
  1288. package/lib/shell/VertesiaShell.d.ts.map +1 -0
  1289. package/lib/shell/VertesiaShell.js +11 -0
  1290. package/lib/shell/VertesiaShell.js.map +1 -0
  1291. package/lib/shell/apps/AppInstallationProvider.d.ts +12 -0
  1292. package/lib/shell/apps/AppInstallationProvider.d.ts.map +1 -0
  1293. package/lib/shell/apps/AppInstallationProvider.js +13 -0
  1294. package/lib/shell/apps/AppInstallationProvider.js.map +1 -0
  1295. package/lib/shell/apps/AppProjectSelector.d.ts +12 -0
  1296. package/lib/shell/apps/AppProjectSelector.d.ts.map +1 -0
  1297. package/lib/shell/apps/AppProjectSelector.js +36 -0
  1298. package/lib/shell/apps/AppProjectSelector.js.map +1 -0
  1299. package/lib/shell/apps/StandaloneApp.d.ts +23 -0
  1300. package/lib/shell/apps/StandaloneApp.d.ts.map +1 -0
  1301. package/lib/shell/apps/StandaloneApp.js +90 -0
  1302. package/lib/shell/apps/StandaloneApp.js.map +1 -0
  1303. package/lib/shell/apps/index.d.ts +4 -0
  1304. package/lib/shell/apps/index.d.ts.map +1 -0
  1305. package/lib/shell/apps/index.js +4 -0
  1306. package/lib/shell/apps/index.js.map +1 -0
  1307. package/lib/shell/index.d.ts +8 -0
  1308. package/lib/shell/index.d.ts.map +1 -0
  1309. package/lib/shell/index.js +8 -0
  1310. package/lib/shell/index.js.map +1 -0
  1311. package/lib/shell/login/InviteAcceptModal.d.ts +2 -0
  1312. package/lib/shell/login/InviteAcceptModal.d.ts.map +1 -0
  1313. package/lib/shell/login/InviteAcceptModal.js +69 -0
  1314. package/lib/shell/login/InviteAcceptModal.js.map +1 -0
  1315. package/lib/shell/login/PreviewIcon.d.ts +6 -0
  1316. package/lib/shell/login/PreviewIcon.d.ts.map +1 -0
  1317. package/lib/shell/login/PreviewIcon.js +23 -0
  1318. package/lib/shell/login/PreviewIcon.js.map +1 -0
  1319. package/lib/shell/login/SignInAuthPending.d.ts +8 -0
  1320. package/lib/shell/login/SignInAuthPending.d.ts.map +1 -0
  1321. package/lib/shell/login/SignInAuthPending.js +14 -0
  1322. package/lib/shell/login/SignInAuthPending.js.map +1 -0
  1323. package/lib/shell/login/SignInEmailStep.d.ts +9 -0
  1324. package/lib/shell/login/SignInEmailStep.d.ts.map +1 -0
  1325. package/lib/shell/login/SignInEmailStep.js +46 -0
  1326. package/lib/shell/login/SignInEmailStep.js.map +1 -0
  1327. package/lib/shell/login/SignInIcons.d.ts +14 -0
  1328. package/lib/shell/login/SignInIcons.d.ts.map +1 -0
  1329. package/lib/shell/login/SignInIcons.js +26 -0
  1330. package/lib/shell/login/SignInIcons.js.map +1 -0
  1331. package/lib/shell/login/SignInModal.d.ts +7 -0
  1332. package/lib/shell/login/SignInModal.d.ts.map +1 -0
  1333. package/lib/shell/login/SignInModal.js +7 -0
  1334. package/lib/shell/login/SignInModal.js.map +1 -0
  1335. package/lib/shell/login/SignInPrimitives.d.ts +140 -0
  1336. package/lib/shell/login/SignInPrimitives.d.ts.map +1 -0
  1337. package/lib/shell/login/SignInPrimitives.js +119 -0
  1338. package/lib/shell/login/SignInPrimitives.js.map +1 -0
  1339. package/lib/shell/login/SignInProvidersStep.d.ts +10 -0
  1340. package/lib/shell/login/SignInProvidersStep.d.ts.map +1 -0
  1341. package/lib/shell/login/SignInProvidersStep.js +14 -0
  1342. package/lib/shell/login/SignInProvidersStep.js.map +1 -0
  1343. package/lib/shell/login/SignInReturningStep.d.ts +10 -0
  1344. package/lib/shell/login/SignInReturningStep.d.ts.map +1 -0
  1345. package/lib/shell/login/SignInReturningStep.js +21 -0
  1346. package/lib/shell/login/SignInReturningStep.js.map +1 -0
  1347. package/lib/shell/login/SignInTenantBlockedStep.d.ts +9 -0
  1348. package/lib/shell/login/SignInTenantBlockedStep.d.ts.map +1 -0
  1349. package/lib/shell/login/SignInTenantBlockedStep.js +17 -0
  1350. package/lib/shell/login/SignInTenantBlockedStep.js.map +1 -0
  1351. package/lib/shell/login/SignInTenantStep.d.ts +11 -0
  1352. package/lib/shell/login/SignInTenantStep.d.ts.map +1 -0
  1353. package/lib/shell/login/SignInTenantStep.js +24 -0
  1354. package/lib/shell/login/SignInTenantStep.js.map +1 -0
  1355. package/lib/shell/login/SignInWithProviderButton.d.ts +13 -0
  1356. package/lib/shell/login/SignInWithProviderButton.d.ts.map +1 -0
  1357. package/lib/shell/login/SignInWithProviderButton.js +23 -0
  1358. package/lib/shell/login/SignInWithProviderButton.js.map +1 -0
  1359. package/lib/shell/login/SigninScreen.d.ts +11 -0
  1360. package/lib/shell/login/SigninScreen.d.ts.map +1 -0
  1361. package/lib/shell/login/SigninScreen.js +155 -0
  1362. package/lib/shell/login/SigninScreen.js.map +1 -0
  1363. package/lib/shell/login/SignupForm.d.ts +8 -0
  1364. package/lib/shell/login/SignupForm.d.ts.map +1 -0
  1365. package/lib/shell/login/SignupForm.js +91 -0
  1366. package/lib/shell/login/SignupForm.js.map +1 -0
  1367. package/lib/shell/login/TerminalLogin.d.ts +2 -0
  1368. package/lib/shell/login/TerminalLogin.d.ts.map +1 -0
  1369. package/lib/shell/login/TerminalLogin.js +216 -0
  1370. package/lib/shell/login/TerminalLogin.js.map +1 -0
  1371. package/lib/shell/login/UserInfo.d.ts +6 -0
  1372. package/lib/shell/login/UserInfo.d.ts.map +1 -0
  1373. package/lib/shell/login/UserInfo.js +44 -0
  1374. package/lib/shell/login/UserInfo.js.map +1 -0
  1375. package/lib/shell/login/UserSessionMenu.d.ts +9 -0
  1376. package/lib/shell/login/UserSessionMenu.d.ts.map +1 -0
  1377. package/lib/shell/login/UserSessionMenu.js +36 -0
  1378. package/lib/shell/login/UserSessionMenu.js.map +1 -0
  1379. package/lib/shell/login/signInUtils.d.ts +45 -0
  1380. package/lib/shell/login/signInUtils.d.ts.map +1 -0
  1381. package/lib/shell/login/signInUtils.js +205 -0
  1382. package/lib/shell/login/signInUtils.js.map +1 -0
  1383. package/lib/shell/utils.d.ts.map +1 -0
  1384. package/lib/shell/utils.js +8 -0
  1385. package/lib/shell/utils.js.map +1 -0
  1386. package/lib/vertesia-ui-core.js +1 -1
  1387. package/lib/vertesia-ui-core.js.map +1 -1
  1388. package/lib/vertesia-ui-env.js +1 -1
  1389. package/lib/vertesia-ui-env.js.map +1 -1
  1390. package/lib/vertesia-ui-features.js +1 -1
  1391. package/lib/vertesia-ui-features.js.map +1 -1
  1392. package/lib/vertesia-ui-i18n.js +1 -1
  1393. package/lib/vertesia-ui-i18n.js.map +1 -1
  1394. package/lib/vertesia-ui-layout.js +1 -1
  1395. package/lib/vertesia-ui-layout.js.map +1 -1
  1396. package/lib/vertesia-ui-router.js +1 -1
  1397. package/lib/vertesia-ui-router.js.map +1 -1
  1398. package/lib/vertesia-ui-session.js +1 -1
  1399. package/lib/vertesia-ui-session.js.map +1 -1
  1400. package/lib/vertesia-ui-shell.js +1 -1
  1401. package/lib/vertesia-ui-shell.js.map +1 -1
  1402. package/lib/vertesia-ui-widgets.js +1 -1
  1403. package/lib/vertesia-ui-widgets.js.map +1 -1
  1404. package/lib/widgets/Progress.d.ts +6 -0
  1405. package/lib/widgets/Progress.d.ts.map +1 -0
  1406. package/lib/widgets/Progress.js.map +1 -0
  1407. package/lib/widgets/SvgIcon.d.ts +7 -0
  1408. package/lib/widgets/SvgIcon.d.ts.map +1 -0
  1409. package/lib/widgets/SvgIcon.js +36 -0
  1410. package/lib/widgets/SvgIcon.js.map +1 -0
  1411. package/lib/widgets/form/Form.d.ts +22 -0
  1412. package/lib/widgets/form/Form.d.ts.map +1 -0
  1413. package/lib/widgets/form/Form.js +105 -0
  1414. package/lib/widgets/form/Form.js.map +1 -0
  1415. package/lib/widgets/form/FormContext.d.ts +21 -0
  1416. package/lib/widgets/form/FormContext.d.ts.map +1 -0
  1417. package/lib/widgets/form/FormContext.js +31 -0
  1418. package/lib/widgets/form/FormContext.js.map +1 -0
  1419. package/lib/widgets/form/ManagedObject.d.ts +81 -0
  1420. package/lib/widgets/form/ManagedObject.d.ts.map +1 -0
  1421. package/lib/widgets/form/ManagedObject.js +284 -0
  1422. package/lib/widgets/form/ManagedObject.js.map +1 -0
  1423. package/lib/widgets/form/fields.d.ts +16 -0
  1424. package/lib/widgets/form/fields.d.ts.map +1 -0
  1425. package/lib/widgets/form/fields.js +12 -0
  1426. package/lib/widgets/form/fields.js.map +1 -0
  1427. package/lib/widgets/form/index.d.ts +7 -0
  1428. package/lib/widgets/form/index.d.ts.map +1 -0
  1429. package/lib/widgets/form/index.js +7 -0
  1430. package/lib/widgets/form/index.js.map +1 -0
  1431. package/lib/widgets/form/inputs.d.ts +8 -0
  1432. package/lib/widgets/form/inputs.d.ts.map +1 -0
  1433. package/lib/widgets/form/inputs.js +38 -0
  1434. package/lib/widgets/form/inputs.js.map +1 -0
  1435. package/lib/widgets/form/schema.d.ts +47 -0
  1436. package/lib/widgets/form/schema.d.ts.map +1 -0
  1437. package/lib/widgets/form/schema.js +204 -0
  1438. package/lib/widgets/form/schema.js.map +1 -0
  1439. package/lib/widgets/index.d.ts +11 -0
  1440. package/lib/widgets/index.d.ts.map +1 -0
  1441. package/lib/widgets/index.js +11 -0
  1442. package/lib/widgets/index.js.map +1 -0
  1443. package/lib/widgets/json-view/JSONCode.d.ts +7 -0
  1444. package/lib/widgets/json-view/JSONCode.d.ts.map +1 -0
  1445. package/lib/widgets/json-view/JSONCode.js +53 -0
  1446. package/lib/widgets/json-view/JSONCode.js.map +1 -0
  1447. package/lib/widgets/json-view/JSONDisplay.d.ts +7 -0
  1448. package/lib/widgets/json-view/JSONDisplay.d.ts.map +1 -0
  1449. package/lib/widgets/json-view/JSONDisplay.js +27 -0
  1450. package/lib/widgets/json-view/JSONDisplay.js.map +1 -0
  1451. package/lib/widgets/json-view/JSONEditor.d.ts +28 -0
  1452. package/lib/widgets/json-view/JSONEditor.d.ts.map +1 -0
  1453. package/lib/widgets/json-view/JSONEditor.js +53 -0
  1454. package/lib/widgets/json-view/JSONEditor.js.map +1 -0
  1455. package/lib/widgets/json-view/JSONSwitcher.d.ts +6 -0
  1456. package/lib/widgets/json-view/JSONSwitcher.d.ts.map +1 -0
  1457. package/lib/widgets/json-view/JSONSwitcher.js +6 -0
  1458. package/lib/widgets/json-view/JSONSwitcher.js.map +1 -0
  1459. package/lib/widgets/json-view/JSONTable.d.ts +8 -0
  1460. package/lib/widgets/json-view/JSONTable.d.ts.map +1 -0
  1461. package/lib/widgets/json-view/JSONTable.js +36 -0
  1462. package/lib/widgets/json-view/JSONTable.js.map +1 -0
  1463. package/lib/widgets/json-view/JSONView.d.ts +7 -0
  1464. package/lib/widgets/json-view/JSONView.d.ts.map +1 -0
  1465. package/lib/widgets/json-view/JSONView.js +117 -0
  1466. package/lib/widgets/json-view/JSONView.js.map +1 -0
  1467. package/lib/widgets/json-view/index.d.ts +8 -0
  1468. package/lib/widgets/json-view/index.d.ts.map +1 -0
  1469. package/lib/widgets/json-view/index.js +7 -0
  1470. package/lib/widgets/json-view/index.js.map +1 -0
  1471. package/lib/widgets/json-view/types.d.ts.map +1 -0
  1472. package/lib/widgets/json-view/types.js.map +1 -0
  1473. package/lib/widgets/markdown/ArtifactContentRenderer.d.ts.map +1 -0
  1474. package/lib/widgets/markdown/ArtifactContentRenderer.js +230 -0
  1475. package/lib/widgets/markdown/ArtifactContentRenderer.js.map +1 -0
  1476. package/lib/widgets/markdown/CodeBlockContext.d.ts +21 -0
  1477. package/lib/widgets/markdown/CodeBlockContext.d.ts.map +1 -0
  1478. package/lib/widgets/markdown/CodeBlockContext.js.map +1 -0
  1479. package/lib/widgets/markdown/CodeBlockPlaceholder.d.ts +42 -0
  1480. package/lib/widgets/markdown/CodeBlockPlaceholder.d.ts.map +1 -0
  1481. package/lib/widgets/markdown/CodeBlockPlaceholder.js +57 -0
  1482. package/lib/widgets/markdown/CodeBlockPlaceholder.js.map +1 -0
  1483. package/lib/widgets/markdown/CodeBlockRendering.d.ts +23 -0
  1484. package/lib/widgets/markdown/CodeBlockRendering.d.ts.map +1 -0
  1485. package/lib/widgets/markdown/CodeBlockRendering.js +38 -0
  1486. package/lib/widgets/markdown/CodeBlockRendering.js.map +1 -0
  1487. package/lib/widgets/markdown/MarkdownFigure.d.ts +15 -0
  1488. package/lib/widgets/markdown/MarkdownFigure.d.ts.map +1 -0
  1489. package/lib/widgets/markdown/MarkdownFigure.js +40 -0
  1490. package/lib/widgets/markdown/MarkdownFigure.js.map +1 -0
  1491. package/lib/widgets/markdown/MarkdownImage.d.ts +16 -0
  1492. package/lib/widgets/markdown/MarkdownImage.d.ts.map +1 -0
  1493. package/lib/widgets/markdown/MarkdownImage.js +41 -0
  1494. package/lib/widgets/markdown/MarkdownImage.js.map +1 -0
  1495. package/lib/widgets/markdown/MarkdownLink.d.ts +17 -0
  1496. package/lib/widgets/markdown/MarkdownLink.d.ts.map +1 -0
  1497. package/lib/widgets/markdown/MarkdownLink.js +46 -0
  1498. package/lib/widgets/markdown/MarkdownLink.js.map +1 -0
  1499. package/lib/widgets/markdown/MarkdownRenderer.d.ts +30 -0
  1500. package/lib/widgets/markdown/MarkdownRenderer.d.ts.map +1 -0
  1501. package/lib/widgets/markdown/MarkdownRenderer.js +162 -0
  1502. package/lib/widgets/markdown/MarkdownRenderer.js.map +1 -0
  1503. package/lib/widgets/markdown/MermaidDiagram.d.ts +28 -0
  1504. package/lib/widgets/markdown/MermaidDiagram.d.ts.map +1 -0
  1505. package/lib/widgets/markdown/MermaidDiagram.js +150 -0
  1506. package/lib/widgets/markdown/MermaidDiagram.js.map +1 -0
  1507. package/lib/widgets/markdown/codeBlockHandlers.d.ts +58 -0
  1508. package/lib/widgets/markdown/codeBlockHandlers.d.ts.map +1 -0
  1509. package/lib/widgets/markdown/codeBlockHandlers.js +285 -0
  1510. package/lib/widgets/markdown/codeBlockHandlers.js.map +1 -0
  1511. package/lib/widgets/markdown/index.d.ts +13 -0
  1512. package/lib/widgets/markdown/index.d.ts.map +1 -0
  1513. package/lib/widgets/markdown/index.js +13 -0
  1514. package/lib/widgets/markdown/index.js.map +1 -0
  1515. package/lib/widgets/markdown/normalizeCustomSchemeLinks.d.ts.map +1 -0
  1516. package/lib/widgets/markdown/normalizeCustomSchemeLinks.js +70 -0
  1517. package/lib/widgets/markdown/normalizeCustomSchemeLinks.js.map +1 -0
  1518. package/lib/widgets/markdown/normalizeDirectives.d.ts.map +1 -0
  1519. package/lib/widgets/markdown/normalizeDirectives.js +58 -0
  1520. package/lib/widgets/markdown/normalizeDirectives.js.map +1 -0
  1521. package/lib/widgets/markdown/preprocessMathDelimiters.d.ts.map +1 -0
  1522. package/lib/widgets/markdown/preprocessMathDelimiters.js +222 -0
  1523. package/lib/widgets/markdown/preprocessMathDelimiters.js.map +1 -0
  1524. package/lib/widgets/markdown/remarkDirectiveHandler.d.ts +15 -0
  1525. package/lib/widgets/markdown/remarkDirectiveHandler.d.ts.map +1 -0
  1526. package/lib/widgets/markdown/remarkDirectiveHandler.js +96 -0
  1527. package/lib/widgets/markdown/remarkDirectiveHandler.js.map +1 -0
  1528. package/lib/widgets/markdown/useArtifactContent.d.ts.map +1 -0
  1529. package/lib/widgets/markdown/useArtifactContent.js +173 -0
  1530. package/lib/widgets/markdown/useArtifactContent.js.map +1 -0
  1531. package/lib/widgets/markdown/useResolvedUrl.d.ts.map +1 -0
  1532. package/lib/widgets/markdown/useResolvedUrl.js +181 -0
  1533. package/lib/widgets/markdown/useResolvedUrl.js.map +1 -0
  1534. package/lib/widgets/monacoEditor/MonacoEditor.d.ts +41 -0
  1535. package/lib/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -0
  1536. package/lib/widgets/monacoEditor/MonacoEditor.js +168 -0
  1537. package/lib/widgets/monacoEditor/MonacoEditor.js.map +1 -0
  1538. package/lib/widgets/monacoEditor/foldingProviders.d.ts.map +1 -0
  1539. package/lib/widgets/monacoEditor/foldingProviders.js +138 -0
  1540. package/lib/widgets/monacoEditor/foldingProviders.js.map +1 -0
  1541. package/lib/widgets/monacoEditor/index.d.ts +3 -0
  1542. package/lib/widgets/monacoEditor/index.d.ts.map +1 -0
  1543. package/lib/widgets/monacoEditor/index.js +2 -0
  1544. package/lib/widgets/monacoEditor/index.js.map +1 -0
  1545. package/lib/widgets/properties/PropertiesView.d.ts +11 -0
  1546. package/lib/widgets/properties/PropertiesView.d.ts.map +1 -0
  1547. package/lib/widgets/properties/PropertiesView.js +7 -0
  1548. package/lib/widgets/properties/PropertiesView.js.map +1 -0
  1549. package/lib/widgets/properties/index.d.ts +2 -0
  1550. package/lib/widgets/properties/index.d.ts.map +1 -0
  1551. package/lib/widgets/properties/index.js +2 -0
  1552. package/lib/widgets/properties/index.js.map +1 -0
  1553. package/lib/widgets/schema-editor/ManagedSchema.d.ts +75 -0
  1554. package/lib/widgets/schema-editor/ManagedSchema.d.ts.map +1 -0
  1555. package/lib/widgets/schema-editor/ManagedSchema.js +303 -0
  1556. package/lib/widgets/schema-editor/ManagedSchema.js.map +1 -0
  1557. package/lib/widgets/schema-editor/editor/Editable.d.ts +40 -0
  1558. package/lib/widgets/schema-editor/editor/Editable.d.ts.map +1 -0
  1559. package/lib/widgets/schema-editor/editor/Editable.js +109 -0
  1560. package/lib/widgets/schema-editor/editor/Editable.js.map +1 -0
  1561. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +8 -0
  1562. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.d.ts.map +1 -0
  1563. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.js +8 -0
  1564. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.js.map +1 -0
  1565. package/lib/widgets/schema-editor/editor/PropertyEditor.d.ts +6 -0
  1566. package/lib/widgets/schema-editor/editor/PropertyEditor.d.ts.map +1 -0
  1567. package/lib/widgets/schema-editor/editor/PropertyEditor.js +85 -0
  1568. package/lib/widgets/schema-editor/editor/PropertyEditor.js.map +1 -0
  1569. package/lib/widgets/schema-editor/editor/PropertyViewer.d.ts +4 -0
  1570. package/lib/widgets/schema-editor/editor/PropertyViewer.d.ts.map +1 -0
  1571. package/lib/widgets/schema-editor/editor/PropertyViewer.js +7 -0
  1572. package/lib/widgets/schema-editor/editor/PropertyViewer.js.map +1 -0
  1573. package/lib/widgets/schema-editor/editor/SchemaContext.d.ts +4 -0
  1574. package/lib/widgets/schema-editor/editor/SchemaContext.d.ts.map +1 -0
  1575. package/lib/widgets/schema-editor/editor/SchemaContext.js +9 -0
  1576. package/lib/widgets/schema-editor/editor/SchemaContext.js.map +1 -0
  1577. package/lib/widgets/schema-editor/editor/SchemaEditor.d.ts +9 -0
  1578. package/lib/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -0
  1579. package/lib/widgets/schema-editor/editor/SchemaEditor.js +81 -0
  1580. package/lib/widgets/schema-editor/editor/SchemaEditor.js.map +1 -0
  1581. package/lib/widgets/schema-editor/index.d.ts +7 -0
  1582. package/lib/widgets/schema-editor/index.d.ts.map +1 -0
  1583. package/lib/widgets/schema-editor/index.js +7 -0
  1584. package/lib/widgets/schema-editor/index.js.map +1 -0
  1585. package/lib/widgets/schema-editor/json-schema4-utils.d.ts +16 -0
  1586. package/lib/widgets/schema-editor/json-schema4-utils.d.ts.map +1 -0
  1587. package/lib/widgets/schema-editor/json-schema4-utils.js +188 -0
  1588. package/lib/widgets/schema-editor/json-schema4-utils.js.map +1 -0
  1589. package/lib/widgets/schema-editor/type-signature.d.ts.map +1 -0
  1590. package/lib/widgets/schema-editor/type-signature.js.map +1 -0
  1591. package/lib/widgets/upload/DropZone.d.ts +41 -0
  1592. package/lib/widgets/upload/DropZone.d.ts.map +1 -0
  1593. package/lib/widgets/upload/DropZone.js +181 -0
  1594. package/lib/widgets/upload/DropZone.js.map +1 -0
  1595. package/lib/widgets/upload/UploadResultCategory.d.ts +26 -0
  1596. package/lib/widgets/upload/UploadResultCategory.d.ts.map +1 -0
  1597. package/lib/widgets/upload/UploadResultCategory.js +22 -0
  1598. package/lib/widgets/upload/UploadResultCategory.js.map +1 -0
  1599. package/lib/widgets/upload/UploadSummary.d.ts +38 -0
  1600. package/lib/widgets/upload/UploadSummary.d.ts.map +1 -0
  1601. package/lib/widgets/upload/UploadSummary.js +32 -0
  1602. package/lib/widgets/upload/UploadSummary.js.map +1 -0
  1603. package/lib/widgets/upload/index.d.ts.map +1 -0
  1604. package/lib/widgets/upload/index.js.map +1 -0
  1605. package/lib/widgets/xml-viewer/components/Attributes/index.d.ts +6 -0
  1606. package/lib/widgets/xml-viewer/components/Attributes/index.d.ts.map +1 -0
  1607. package/lib/widgets/xml-viewer/components/Attributes/index.js.map +1 -0
  1608. package/lib/widgets/xml-viewer/components/CDataTag/index.d.ts +8 -0
  1609. package/lib/widgets/xml-viewer/components/CDataTag/index.d.ts.map +1 -0
  1610. package/lib/widgets/xml-viewer/components/CDataTag/index.js.map +1 -0
  1611. package/lib/widgets/xml-viewer/components/CollapseIcon/index.d.ts.map +1 -0
  1612. package/lib/widgets/xml-viewer/components/CollapseIcon/index.js +11 -0
  1613. package/lib/widgets/xml-viewer/components/CollapseIcon/index.js.map +1 -0
  1614. package/lib/widgets/xml-viewer/components/CommentTag/index.d.ts +9 -0
  1615. package/lib/widgets/xml-viewer/components/CommentTag/index.d.ts.map +1 -0
  1616. package/lib/widgets/xml-viewer/components/CommentTag/index.js.map +1 -0
  1617. package/lib/widgets/xml-viewer/components/DeclarationTag/index.d.ts +8 -0
  1618. package/lib/widgets/xml-viewer/components/DeclarationTag/index.d.ts.map +1 -0
  1619. package/lib/widgets/xml-viewer/components/DeclarationTag/index.js.map +1 -0
  1620. package/lib/widgets/xml-viewer/components/Elements/index.d.ts +8 -0
  1621. package/lib/widgets/xml-viewer/components/Elements/index.d.ts.map +1 -0
  1622. package/lib/widgets/xml-viewer/components/Elements/index.js.map +1 -0
  1623. package/lib/widgets/xml-viewer/components/InvalidXml/index.d.ts +2 -0
  1624. package/lib/widgets/xml-viewer/components/InvalidXml/index.d.ts.map +1 -0
  1625. package/lib/widgets/xml-viewer/components/InvalidXml/index.js.map +1 -0
  1626. package/lib/widgets/xml-viewer/components/Tag/index.d.ts +13 -0
  1627. package/lib/widgets/xml-viewer/components/Tag/index.d.ts.map +1 -0
  1628. package/lib/widgets/xml-viewer/components/Tag/index.js.map +1 -0
  1629. package/lib/widgets/xml-viewer/components/TextElement/index.d.ts +8 -0
  1630. package/lib/widgets/xml-viewer/components/TextElement/index.d.ts.map +1 -0
  1631. package/lib/widgets/xml-viewer/components/TextElement/index.js.map +1 -0
  1632. package/lib/widgets/xml-viewer/components/XMLViewer.d.ts +3 -0
  1633. package/lib/widgets/xml-viewer/components/XMLViewer.d.ts.map +1 -0
  1634. package/lib/widgets/xml-viewer/components/XMLViewer.js.map +1 -0
  1635. package/lib/widgets/xml-viewer/components/types.d.ts.map +1 -0
  1636. package/lib/widgets/xml-viewer/components/types.js.map +1 -0
  1637. package/lib/widgets/xml-viewer/constants/index.d.ts.map +1 -0
  1638. package/lib/widgets/xml-viewer/constants/index.js.map +1 -0
  1639. package/lib/widgets/xml-viewer/context/xml-viewer-context.d.ts +4 -0
  1640. package/lib/widgets/xml-viewer/context/xml-viewer-context.d.ts.map +1 -0
  1641. package/lib/widgets/xml-viewer/context/xml-viewer-context.js.map +1 -0
  1642. package/lib/widgets/xml-viewer/helpers/index.d.ts +13 -0
  1643. package/lib/widgets/xml-viewer/helpers/index.d.ts.map +1 -0
  1644. package/lib/widgets/xml-viewer/helpers/index.js +38 -0
  1645. package/lib/widgets/xml-viewer/helpers/index.js.map +1 -0
  1646. package/lib/widgets/xml-viewer/hooks/useCollapsible.d.ts.map +1 -0
  1647. package/lib/widgets/xml-viewer/hooks/useCollapsible.js.map +1 -0
  1648. package/lib/widgets/xml-viewer/hooks/useXMLViewer.d.ts.map +1 -0
  1649. package/lib/widgets/xml-viewer/hooks/useXMLViewer.js +33 -0
  1650. package/lib/widgets/xml-viewer/hooks/useXMLViewer.js.map +1 -0
  1651. package/lib/widgets/xml-viewer/index.d.ts +3 -0
  1652. package/lib/widgets/xml-viewer/index.d.ts.map +1 -0
  1653. package/lib/widgets/xml-viewer/index.js +3 -0
  1654. package/lib/widgets/xml-viewer/index.js.map +1 -0
  1655. package/lib/widgets/xml-viewer/types/index.d.ts +16 -0
  1656. package/lib/widgets/xml-viewer/types/index.d.ts.map +1 -0
  1657. package/lib/widgets/xml-viewer/types/index.js.map +1 -0
  1658. package/llms.txt +387 -484
  1659. package/package.json +96 -126
  1660. package/src/__tests__/a11y.test.tsx +398 -0
  1661. package/src/__tests__/axe-helper.ts +23 -0
  1662. package/src/__tests__/contrast.test.ts +165 -0
  1663. package/src/__tests__/setup.ts +74 -0
  1664. package/src/__tests__/test-modules.d.ts +13 -0
  1665. package/src/__tests__/test-utils.tsx +15 -0
  1666. package/src/__tests__/tsconfig.json +19 -0
  1667. package/src/__tests__/vitest-axe.d.ts +20 -0
  1668. package/src/core/components/Avatar.tsx +38 -29
  1669. package/src/core/components/Center.tsx +5 -7
  1670. package/src/core/components/ComboBox.tsx +167 -83
  1671. package/src/core/components/Divider.tsx +2 -5
  1672. package/src/core/components/EmptyCollection.tsx +5 -6
  1673. package/src/core/components/FileUpload.tsx +54 -21
  1674. package/src/core/components/FormItem.tsx +125 -16
  1675. package/src/core/components/InputList.tsx +63 -36
  1676. package/src/core/components/Link.tsx +8 -5
  1677. package/src/core/components/MenuList.tsx +29 -24
  1678. package/src/core/components/NumberInput.tsx +52 -41
  1679. package/src/core/components/Overlay.tsx +86 -77
  1680. package/src/core/components/Portal.tsx +7 -7
  1681. package/src/core/components/SelectList.tsx +44 -26
  1682. package/src/core/components/SidePanel.tsx +45 -20
  1683. package/src/core/components/Spinner.tsx +34 -21
  1684. package/src/core/components/TagsInput.tsx +54 -48
  1685. package/src/core/components/index.ts +28 -27
  1686. package/src/core/components/libs/utils.tsx +4 -4
  1687. package/src/core/components/libs/visuallyHidden.tsx +12 -12
  1688. package/src/core/components/popup/Popup.tsx +60 -29
  1689. package/src/core/components/popup/PopupController.ts +36 -37
  1690. package/src/core/components/popup/index.ts +3 -3
  1691. package/src/core/components/popup/position.ts +56 -34
  1692. package/src/core/components/popup/utils.ts +5 -3
  1693. package/src/core/components/shadcn/LanguageSwitcher.tsx +61 -0
  1694. package/src/core/components/shadcn/MessageBox.tsx +119 -57
  1695. package/src/core/components/shadcn/Panel.tsx +89 -40
  1696. package/src/core/components/shadcn/badge.tsx +74 -92
  1697. package/src/core/components/shadcn/breadcrumb.tsx +158 -180
  1698. package/src/core/components/shadcn/button.tsx +188 -143
  1699. package/src/core/components/shadcn/calendar.tsx +13 -23
  1700. package/src/core/components/shadcn/card.tsx +41 -76
  1701. package/src/core/components/shadcn/checkbox.tsx +20 -22
  1702. package/src/core/components/shadcn/collaspible.tsx +8 -24
  1703. package/src/core/components/shadcn/command.tsx +124 -157
  1704. package/src/core/components/shadcn/dropdown.tsx +283 -290
  1705. package/src/core/components/shadcn/filters/DynamicLabel.tsx +36 -35
  1706. package/src/core/components/shadcn/filters/animateChangeInHeight.tsx +5 -8
  1707. package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +28 -36
  1708. package/src/core/components/shadcn/filters/comboBox/SelectCombobox.tsx +41 -37
  1709. package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +13 -22
  1710. package/src/core/components/shadcn/filters/comboBox/TextCombobox.tsx +12 -14
  1711. package/src/core/components/shadcn/filters/comboBox/comboBox.tsx +2 -2
  1712. package/src/core/components/shadcn/filters/filter/SelectFilter.tsx +143 -139
  1713. package/src/core/components/shadcn/filters/filter/StringListFilter.tsx +48 -48
  1714. package/src/core/components/shadcn/filters/filter/TextFilter.tsx +56 -60
  1715. package/src/core/components/shadcn/filters/filter/dateFilter.tsx +235 -228
  1716. package/src/core/components/shadcn/filters/filter-styles.ts +1 -1
  1717. package/src/core/components/shadcn/filters/filterBar.tsx +347 -329
  1718. package/src/core/components/shadcn/filters/filters.tsx +62 -63
  1719. package/src/core/components/shadcn/filters/types.ts +25 -25
  1720. package/src/core/components/shadcn/heading.tsx +15 -15
  1721. package/src/core/components/shadcn/index.ts +23 -22
  1722. package/src/core/components/shadcn/input.tsx +80 -76
  1723. package/src/core/components/shadcn/label.tsx +20 -25
  1724. package/src/core/components/shadcn/modal/ConfirmModal.tsx +21 -30
  1725. package/src/core/components/shadcn/modal/DeleteModal.tsx +16 -12
  1726. package/src/core/components/shadcn/modal/dialog.tsx +73 -97
  1727. package/src/core/components/shadcn/modal/index.ts +3 -3
  1728. package/src/core/components/shadcn/popover.tsx +96 -93
  1729. package/src/core/components/shadcn/radioGroup.tsx +80 -81
  1730. package/src/core/components/shadcn/resizeable.tsx +46 -44
  1731. package/src/core/components/shadcn/selectBox.tsx +216 -121
  1732. package/src/core/components/shadcn/separator.tsx +15 -19
  1733. package/src/core/components/shadcn/slider.test.tsx +14 -0
  1734. package/src/core/components/shadcn/slider.tsx +78 -0
  1735. package/src/core/components/shadcn/switch.tsx +55 -48
  1736. package/src/core/components/shadcn/tabs.tsx +316 -292
  1737. package/src/core/components/shadcn/text.tsx +24 -24
  1738. package/src/core/components/shadcn/textarea.tsx +55 -55
  1739. package/src/core/components/shadcn/theme/ThemeProvider.tsx +52 -58
  1740. package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +45 -31
  1741. package/src/core/components/shadcn/tooltip.tsx +85 -69
  1742. package/src/core/components/styles.ts +7 -6
  1743. package/src/core/components/table/index.tsx +90 -31
  1744. package/src/core/components/toast/NotificationPanel.tsx +31 -31
  1745. package/src/core/components/toast/ToastContext.ts +3 -3
  1746. package/src/core/components/toast/ToastProps.ts +1 -1
  1747. package/src/core/components/toast/ToastProvider.tsx +20 -13
  1748. package/src/core/components/toast/index.ts +2 -2
  1749. package/src/core/hooks/CompositeState.tsx +28 -33
  1750. package/src/core/hooks/PortalContainerProvider.tsx +8 -14
  1751. package/src/core/hooks/SharedState.tsx +9 -9
  1752. package/src/core/hooks/index.ts +15 -15
  1753. package/src/core/hooks/useClickOutside.tsx +11 -7
  1754. package/src/core/hooks/useCopyToClipboard.tsx +21 -21
  1755. package/src/core/hooks/useDarkMode.ts +2 -2
  1756. package/src/core/hooks/useDebounce.tsx +1 -1
  1757. package/src/core/hooks/useEventSource.ts +40 -14
  1758. package/src/core/hooks/useFetch.ts +41 -27
  1759. package/src/core/hooks/useFlag.tsx +4 -4
  1760. package/src/core/hooks/useIntersectionObserver.tsx +22 -13
  1761. package/src/core/hooks/useIsFistRendering.ts +5 -4
  1762. package/src/core/hooks/useSafeLayoutEffect.ts +3 -3
  1763. package/src/core/hooks/useScrollableSearch.tsx +64 -47
  1764. package/src/core/hooks/useSharedValue.ts +3 -5
  1765. package/src/core/index.ts +3 -3
  1766. package/src/core/utils/a11y.ts +23 -0
  1767. package/src/core/utils/cn.ts +4 -4
  1768. package/src/core/utils/errorMessage.ts +20 -0
  1769. package/src/core/utils/index.ts +4 -1
  1770. package/src/core/utils/textarea.ts +15 -0
  1771. package/src/css/base.css +24 -24
  1772. package/src/css/color.css +129 -131
  1773. package/src/css/custom-tooltips.css +54 -47
  1774. package/src/css/theme.css +82 -84
  1775. package/src/css/typography.css +8 -7
  1776. package/src/css/utilities.css +137 -67
  1777. package/src/env/index.ts +65 -42
  1778. package/src/features/activity-doc/ActivityDoc.tsx +77 -71
  1779. package/src/features/activity-doc/index.ts +1 -1
  1780. package/src/features/agent/PayloadBuilder.tsx +98 -55
  1781. package/src/features/agent/chat/AgentChart.tsx +50 -42
  1782. package/src/features/agent/chat/AgentChatFixtureReplay.test.tsx +124 -0
  1783. package/src/features/agent/chat/AgentChatFixtureReplay.tsx +248 -0
  1784. package/src/features/agent/chat/AgentChatPlaybackControls.test.tsx +96 -0
  1785. package/src/features/agent/chat/AgentChatPlaybackControls.tsx +215 -0
  1786. package/src/features/agent/chat/AgentRequestInputOverlay.tsx +59 -0
  1787. package/src/features/agent/chat/AgentRightPanel.tsx +409 -185
  1788. package/src/features/agent/chat/AnimatedThinkingDots.tsx +91 -82
  1789. package/src/features/agent/chat/ArtifactsTab.tsx +347 -110
  1790. package/src/features/agent/chat/AskUserWidget.tsx +221 -51
  1791. package/src/features/agent/chat/BrowserUseWidget.tsx +255 -0
  1792. package/src/features/agent/chat/DocumentPanel.tsx +35 -41
  1793. package/src/features/agent/chat/DocumentTabBar.tsx +7 -4
  1794. package/src/features/agent/chat/ImageLightbox.tsx +30 -14
  1795. package/src/features/agent/chat/JumpingDots.tsx +15 -6
  1796. package/src/features/agent/chat/ModernAgentConversation.test.tsx +679 -0
  1797. package/src/features/agent/chat/ModernAgentConversation.tsx +1239 -722
  1798. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +946 -0
  1799. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +2244 -343
  1800. package/src/features/agent/chat/ModernAgentOutput/AttachmentPreview.tsx +437 -0
  1801. package/src/features/agent/chat/ModernAgentOutput/BatchProgressPanel.tsx +67 -65
  1802. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +239 -134
  1803. package/src/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.tsx +18 -14
  1804. package/src/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.tsx +197 -242
  1805. package/src/features/agent/chat/ModernAgentOutput/MessageInput.test.tsx +211 -0
  1806. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +394 -268
  1807. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +435 -291
  1808. package/src/features/agent/chat/ModernAgentOutput/MessagesContainer.tsx +12 -13
  1809. package/src/features/agent/chat/ModernAgentOutput/PlanPanel.tsx +27 -23
  1810. package/src/features/agent/chat/ModernAgentOutput/SlideInPanel.tsx +24 -22
  1811. package/src/features/agent/chat/ModernAgentOutput/SlidingMessages.tsx +18 -21
  1812. package/src/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.tsx +53 -49
  1813. package/src/features/agent/chat/ModernAgentOutput/StackedMessages.tsx +9 -9
  1814. package/src/features/agent/chat/ModernAgentOutput/StreamingMessage.tsx +42 -38
  1815. package/src/features/agent/chat/ModernAgentOutput/SummaryConversation.ts +421 -0
  1816. package/src/features/agent/chat/ModernAgentOutput/ToolCallGroup.tsx +518 -271
  1817. package/src/features/agent/chat/ModernAgentOutput/WorkstreamTabs.tsx +124 -146
  1818. package/src/features/agent/chat/ModernAgentOutput/processContentForMarkdown.test.ts +48 -0
  1819. package/src/features/agent/chat/ModernAgentOutput/processContentForMarkdown.ts +158 -0
  1820. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.ts +81 -0
  1821. package/src/features/agent/chat/ModernAgentOutput/utils.test.ts +1232 -88
  1822. package/src/features/agent/chat/ModernAgentOutput/utils.ts +190 -154
  1823. package/src/features/agent/chat/ModernAgentOutput/with-types.d.ts +7 -7
  1824. package/src/features/agent/chat/ProposalCodeBlockHandler.tsx +89 -0
  1825. package/src/features/agent/chat/SkillWidgetProvider.tsx +72 -58
  1826. package/src/features/agent/chat/SlidingThinkingIndicator.tsx +173 -165
  1827. package/src/features/agent/chat/VegaLiteChart.tsx +631 -557
  1828. package/src/features/agent/chat/WaitingMessages.ts +50 -50
  1829. package/src/features/agent/chat/applyParameterValues.test.ts +67 -69
  1830. package/src/features/agent/chat/hooks/useAgentPlans.ts +22 -27
  1831. package/src/features/agent/chat/hooks/useAgentStream.test.tsx +250 -0
  1832. package/src/features/agent/chat/hooks/useAgentStream.ts +185 -125
  1833. package/src/features/agent/chat/hooks/useArtifacts.ts +41 -16
  1834. package/src/features/agent/chat/hooks/useDocumentPanel.ts +11 -13
  1835. package/src/features/agent/chat/hooks/useFileProcessing.test.tsx +121 -0
  1836. package/src/features/agent/chat/hooks/useFileProcessing.ts +173 -72
  1837. package/src/features/agent/chat/index.ts +58 -27
  1838. package/src/features/agent/chat/playback.test.ts +70 -0
  1839. package/src/features/agent/chat/playback.ts +93 -0
  1840. package/src/features/agent/chat/useArtifactUrlCache.tsx +25 -27
  1841. package/src/features/agent/chat/workstreams.ts +182 -0
  1842. package/src/features/agent/index.ts +2 -2
  1843. package/src/features/document-viewer/UniversalDocumentViewer.test.tsx +123 -0
  1844. package/src/features/document-viewer/UniversalDocumentViewer.tsx +746 -0
  1845. package/src/features/document-viewer/index.ts +1 -0
  1846. package/src/features/errors/PanelErrorBoundary.tsx +13 -19
  1847. package/src/features/errors/RowErrorBoundary.tsx +8 -12
  1848. package/src/features/errors/VertesiaErrorBoundary.tsx +8 -7
  1849. package/src/features/errors/WidgetErrorBoundary.tsx +8 -16
  1850. package/src/features/errors/index.ts +4 -4
  1851. package/src/features/facets/AgentRunnerFacetsNav.tsx +56 -59
  1852. package/src/features/facets/CollectionsFacetsNav.tsx +24 -35
  1853. package/src/features/facets/DocumentsFacetsNav.tsx +36 -44
  1854. package/src/features/facets/EnvironmentFacet.tsx +38 -20
  1855. package/src/features/facets/InteractionsFacetsNav.tsx +18 -31
  1856. package/src/features/facets/ProcessDefinitionsFacetsNav.tsx +51 -0
  1857. package/src/features/facets/ProcessRunsFacetsNav.tsx +64 -0
  1858. package/src/features/facets/PromptsFacetsNav.tsx +22 -33
  1859. package/src/features/facets/RunsFacetsNav.tsx +52 -60
  1860. package/src/features/facets/WorkflowDefinitionsFacetsNav.tsx +51 -0
  1861. package/src/features/facets/WorkflowExecutionsFacetsNav.tsx +28 -42
  1862. package/src/features/facets/WorkflowRulesFacetsNav.tsx +49 -0
  1863. package/src/features/facets/index.ts +32 -18
  1864. package/src/features/facets/utils/SearchInterface.tsx +32 -3
  1865. package/src/features/facets/utils/StringFacet.tsx +16 -5
  1866. package/src/features/facets/utils/StringListFacet.tsx +5 -6
  1867. package/src/features/facets/utils/TypeFacet.tsx +30 -19
  1868. package/src/features/facets/utils/VEnvironmentFacet.tsx +9 -9
  1869. package/src/features/facets/utils/VInteractionFacet.tsx +18 -17
  1870. package/src/features/facets/utils/VStringFacet.tsx +19 -8
  1871. package/src/features/facets/utils/VTypeFacet.tsx +15 -15
  1872. package/src/features/facets/utils/VUserFacet.tsx +6 -6
  1873. package/src/features/facets/utils/utils.tsx +2 -2
  1874. package/src/features/index.ts +14 -12
  1875. package/src/features/layout/GenericPageNavHeader.tsx +73 -53
  1876. package/src/features/layout/NotFoundView.tsx +4 -7
  1877. package/src/features/layout/index.ts +2 -2
  1878. package/src/features/magic-pdf/AnnotatedImageSlider.tsx +59 -44
  1879. package/src/features/magic-pdf/DownloadPopover.tsx +29 -34
  1880. package/src/features/magic-pdf/ExtractedContentView.tsx +14 -21
  1881. package/src/features/magic-pdf/MagicPdfProvider.tsx +30 -45
  1882. package/src/features/magic-pdf/MagicPdfView.tsx +42 -55
  1883. package/src/features/magic-pdf/index.ts +1 -1
  1884. package/src/features/magic-pdf/types.ts +1 -1
  1885. package/src/features/media-viewer/AudioPanel.tsx +118 -0
  1886. package/src/features/media-viewer/ImagePanel.tsx +96 -0
  1887. package/src/features/media-viewer/VideoPanel.tsx +131 -0
  1888. package/src/features/media-viewer/formats.ts +38 -0
  1889. package/src/features/media-viewer/index.ts +4 -0
  1890. package/src/features/oauth/OAuthProviderConnectButton.tsx +6 -16
  1891. package/src/features/oauth/RemoteMcpConnectionButton.tsx +14 -23
  1892. package/src/features/oauth/useOAuthPopup.ts +1 -1
  1893. package/src/features/pdf-viewer/PdfPageRenderer.tsx +50 -72
  1894. package/src/features/pdf-viewer/PdfPageSlider.tsx +78 -80
  1895. package/src/features/pdf-viewer/SimplePdfViewer.tsx +22 -18
  1896. package/src/features/permissions/SecureButton.tsx +9 -8
  1897. package/src/features/permissions/SecureSidebarItem.tsx +4 -7
  1898. package/src/features/permissions/UserPermissionsProvider.tsx +70 -51
  1899. package/src/features/permissions/helpers.ts +8 -5
  1900. package/src/features/permissions/index.ts +4 -4
  1901. package/src/features/store/collections/BrowseCollectionView.tsx +25 -23
  1902. package/src/features/store/collections/CollectionsTable.tsx +50 -41
  1903. package/src/features/store/collections/CreateCollection.tsx +61 -31
  1904. package/src/features/store/collections/EditCollectionView.tsx +202 -80
  1905. package/src/features/store/collections/SelectCollection.tsx +120 -116
  1906. package/src/features/store/collections/SharedPropsEditor.tsx +38 -29
  1907. package/src/features/store/collections/SyncMemberHeadsToggle.tsx +28 -26
  1908. package/src/features/store/collections/index.ts +7 -7
  1909. package/src/features/store/index.ts +3 -3
  1910. package/src/features/store/objects/DocumentPreviewPanel.tsx +348 -376
  1911. package/src/features/store/objects/DocumentSearchResults.tsx +194 -117
  1912. package/src/features/store/objects/DocumentSelectionProvider.tsx +15 -10
  1913. package/src/features/store/objects/DocumentTable.tsx +51 -45
  1914. package/src/features/store/objects/ExportPropertiesModal.tsx +24 -26
  1915. package/src/features/store/objects/components/ContentDispositionButton.tsx +22 -27
  1916. package/src/features/store/objects/components/ContentOverview.tsx +411 -592
  1917. package/src/features/store/objects/components/DocumentIcon.tsx +95 -91
  1918. package/src/features/store/objects/components/DocumentInput.tsx +33 -26
  1919. package/src/features/store/objects/components/PropertiesEditorModal.tsx +58 -60
  1920. package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +49 -37
  1921. package/src/features/store/objects/components/SelectDocument.test.tsx +87 -0
  1922. package/src/features/store/objects/components/SelectDocument.tsx +50 -54
  1923. package/src/features/store/objects/components/SelectDocumentModal.tsx +7 -7
  1924. package/src/features/store/objects/components/TextEditorPanel.tsx +26 -22
  1925. package/src/features/store/objects/components/VectorSearchWidget.test.tsx +41 -0
  1926. package/src/features/store/objects/components/VectorSearchWidget.tsx +94 -37
  1927. package/src/features/store/objects/components/index.ts +9 -9
  1928. package/src/features/store/objects/components/useContentPanelHooks.ts +24 -19
  1929. package/src/features/store/objects/components/useDownloadFile.ts +141 -126
  1930. package/src/features/store/objects/index.ts +10 -10
  1931. package/src/features/store/objects/layout/DocumentTableColumn.tsx +28 -12
  1932. package/src/features/store/objects/layout/documentLayout.tsx +86 -43
  1933. package/src/features/store/objects/layout/index.ts +2 -2
  1934. package/src/features/store/objects/layout/renderers.tsx +107 -73
  1935. package/src/features/store/objects/search/DocumentSearchContext.test.ts +49 -0
  1936. package/src/features/store/objects/search/DocumentSearchContext.ts +63 -46
  1937. package/src/features/store/objects/search/DocumentSearchProvider.tsx +23 -16
  1938. package/src/features/store/objects/search/index.ts +2 -2
  1939. package/src/features/store/objects/selection/ObjectsActionContext.tsx +28 -21
  1940. package/src/features/store/objects/selection/ObjectsActionContextClass.ts +9 -11
  1941. package/src/features/store/objects/selection/ObjectsActionHooks.ts +5 -5
  1942. package/src/features/store/objects/selection/ObjectsActionSpec.ts +16 -16
  1943. package/src/features/store/objects/selection/SelectionActions.tsx +111 -51
  1944. package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +68 -43
  1945. package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +36 -32
  1946. package/src/features/store/objects/selection/actions/ConfirmAction.tsx +27 -20
  1947. package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +57 -46
  1948. package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +60 -65
  1949. package/src/features/store/objects/selection/actions/RemoveFromCollectionAction.tsx +42 -33
  1950. package/src/features/store/objects/selection/actions/StartWorkflowComponent.tsx +9 -10
  1951. package/src/features/store/objects/selection/actions/index.ts +7 -7
  1952. package/src/features/store/objects/selection/index.ts +4 -4
  1953. package/src/features/store/objects/upload/DocumentUploadModal.tsx +189 -183
  1954. package/src/features/store/objects/upload/index.ts +3 -3
  1955. package/src/features/store/objects/upload/useSmartFileUploadProcessing.ts +139 -132
  1956. package/src/features/store/objects/upload/useUploadHandler.ts +41 -41
  1957. package/src/features/store/types/ContentObjectTypesSearch.tsx +89 -65
  1958. package/src/features/store/types/ContentObjectTypesTable.tsx +19 -18
  1959. package/src/features/store/types/CreateOrUpdateTypeModal.tsx +26 -16
  1960. package/src/features/store/types/ObjectSchemaEditor.tsx +72 -62
  1961. package/src/features/store/types/SelectContentType.tsx +22 -16
  1962. package/src/features/store/types/SelectContentTypeModal.tsx +23 -33
  1963. package/src/features/store/types/TableLayoutEditor.tsx +54 -41
  1964. package/src/features/store/types/TypeRegistry.ts +2 -3
  1965. package/src/features/store/types/TypeRegistryProvider.tsx +76 -73
  1966. package/src/features/store/types/index.ts +10 -10
  1967. package/src/features/store/types/search/ObjectTypeSearchContext.tsx +39 -33
  1968. package/src/features/store/types/search/ObjectTypeSearchProvider.tsx +7 -8
  1969. package/src/features/store/types/search/index.ts +2 -2
  1970. package/src/features/user/UserAvatar.tsx +21 -17
  1971. package/src/features/user/UserInfo.test.tsx +88 -0
  1972. package/src/features/user/UserInfo.tsx +196 -110
  1973. package/src/features/user/index.ts +2 -2
  1974. package/src/features/utils/index.ts +5 -5
  1975. package/src/features/utils/mimeType.ts +10 -10
  1976. package/src/features/utils/print.ts +14 -12
  1977. package/src/features/utils/rendition.ts +68 -81
  1978. package/src/features/utils/text.ts +4 -4
  1979. package/src/features/utils/workflowStatus.ts +14 -14
  1980. package/src/i18n/LanguageProvider.test.tsx +172 -0
  1981. package/src/i18n/LanguageProvider.tsx +77 -0
  1982. package/src/i18n/index.tsx +30 -7
  1983. package/src/i18n/locales/ar.json +77 -21
  1984. package/src/i18n/locales/de.json +77 -21
  1985. package/src/i18n/locales/en.json +95 -24
  1986. package/src/i18n/locales/es.json +79 -23
  1987. package/src/i18n/locales/fr.json +77 -21
  1988. package/src/i18n/locales/it.json +79 -23
  1989. package/src/i18n/locales/ja.json +77 -21
  1990. package/src/i18n/locales/ko.json +77 -21
  1991. package/src/i18n/locales/pt.json +79 -23
  1992. package/src/i18n/locales/ru.json +77 -21
  1993. package/src/i18n/locales/tr.json +77 -21
  1994. package/src/i18n/locales/zh-TW.json +77 -21
  1995. package/src/i18n/locales/zh.json +77 -21
  1996. package/src/i18n/rtl.test.ts +74 -0
  1997. package/src/i18n/rtl.ts +55 -0
  1998. package/src/i18n/useLocaleFormat.test.tsx +176 -0
  1999. package/src/i18n/useLocaleFormat.ts +106 -0
  2000. package/src/layout/AppLayout.tsx +80 -70
  2001. package/src/layout/ErrorPage.tsx +32 -0
  2002. package/src/layout/FullHeightLayout.tsx +16 -70
  2003. package/src/layout/Navbar.tsx +48 -50
  2004. package/src/layout/RegionTag.tsx +1 -5
  2005. package/src/layout/Sidebar.tsx +79 -67
  2006. package/src/layout/SidebarContext.ts +1 -1
  2007. package/src/layout/TitleBar.tsx +1 -2
  2008. package/src/layout/index.ts +8 -7
  2009. package/src/router/FixLinks.tsx +11 -9
  2010. package/src/router/HistoryNavigator.ts +55 -32
  2011. package/src/router/Nav.tsx +36 -10
  2012. package/src/router/NestedNavigationContext.tsx +23 -22
  2013. package/src/router/NestedRouterProvider.tsx +52 -46
  2014. package/src/router/PathMatcher.ts +42 -36
  2015. package/src/router/PathWithParams.ts +1 -2
  2016. package/src/router/Route404.tsx +6 -6
  2017. package/src/router/RouteComponent.tsx +7 -9
  2018. package/src/router/Router.tsx +32 -22
  2019. package/src/router/RouterProvider.tsx +24 -22
  2020. package/src/router/index.ts +10 -10
  2021. package/src/router/path.ts +4 -3
  2022. package/src/session/UserSession.ts +96 -64
  2023. package/src/session/UserSessionProvider.tsx +173 -87
  2024. package/src/session/auth/composable.test.ts +79 -0
  2025. package/src/session/auth/composable.ts +108 -33
  2026. package/src/session/auth/domainRouting.test.ts +8 -8
  2027. package/src/session/auth/firebase.ts +25 -24
  2028. package/src/session/auth/useAuthState.ts +5 -8
  2029. package/src/session/auth/useCurrentTenant.ts +10 -11
  2030. package/src/session/constants.ts +1 -1
  2031. package/src/session/index.ts +7 -7
  2032. package/src/session/useUXTracking.tsx +11 -15
  2033. package/src/shell/SplashScreen.tsx +22 -13
  2034. package/src/shell/VertesiaShell.tsx +38 -16
  2035. package/src/shell/apps/AppInstallationProvider.tsx +10 -11
  2036. package/src/shell/apps/AppProjectSelector.tsx +34 -20
  2037. package/src/shell/apps/StandaloneApp.tsx +40 -37
  2038. package/src/shell/apps/index.ts +3 -3
  2039. package/src/shell/index.tsx +5 -5
  2040. package/src/shell/login/InviteAcceptModal.tsx +65 -56
  2041. package/src/shell/login/PreviewIcon.tsx +3 -6
  2042. package/src/shell/login/SignInAuthPending.tsx +43 -0
  2043. package/src/shell/login/SignInEmailStep.tsx +83 -0
  2044. package/src/shell/login/SignInIcons.tsx +66 -0
  2045. package/src/shell/login/SignInModal.tsx +10 -14
  2046. package/src/shell/login/SignInPrimitives.tsx +414 -0
  2047. package/src/shell/login/SignInProvidersStep.tsx +50 -0
  2048. package/src/shell/login/SignInReturningStep.tsx +90 -0
  2049. package/src/shell/login/SignInTenantBlockedStep.tsx +41 -0
  2050. package/src/shell/login/SignInTenantStep.tsx +78 -0
  2051. package/src/shell/login/SignInWithProviderButton.tsx +40 -0
  2052. package/src/shell/login/SigninScreen.tsx +231 -134
  2053. package/src/shell/login/SignupForm.tsx +28 -33
  2054. package/src/shell/login/TerminalLogin.tsx +188 -156
  2055. package/src/shell/login/UserInfo.tsx +41 -26
  2056. package/src/shell/login/UserSessionMenu.tsx +50 -35
  2057. package/src/shell/login/signInUtils.test.ts +41 -0
  2058. package/src/shell/login/signInUtils.ts +241 -0
  2059. package/src/shell/utils.tsx +5 -5
  2060. package/src/widgets/Progress.tsx +2 -2
  2061. package/src/widgets/SvgIcon.tsx +4 -4
  2062. package/src/widgets/form/Form.tsx +71 -59
  2063. package/src/widgets/form/FormContext.ts +9 -7
  2064. package/src/widgets/form/ManagedObject.ts +50 -40
  2065. package/src/widgets/form/fields.tsx +3 -11
  2066. package/src/widgets/form/index.ts +6 -6
  2067. package/src/widgets/form/inputs.tsx +55 -35
  2068. package/src/widgets/form/schema.ts +22 -15
  2069. package/src/widgets/index.ts +10 -10
  2070. package/src/widgets/json-view/JSONCode.test.tsx +52 -0
  2071. package/src/widgets/json-view/JSONCode.tsx +64 -19
  2072. package/src/widgets/json-view/JSONDisplay.tsx +30 -14
  2073. package/src/widgets/json-view/JSONEditor.tsx +89 -0
  2074. package/src/widgets/json-view/JSONSwitcher.tsx +13 -5
  2075. package/src/widgets/json-view/JSONTable.tsx +80 -0
  2076. package/src/widgets/json-view/JSONView.tsx +122 -82
  2077. package/src/widgets/json-view/index.ts +7 -5
  2078. package/src/widgets/markdown/ArtifactContentRenderer.tsx +20 -36
  2079. package/src/widgets/markdown/CodeBlockContext.tsx +1 -1
  2080. package/src/widgets/markdown/CodeBlockPlaceholder.test.tsx +2 -2
  2081. package/src/widgets/markdown/CodeBlockPlaceholder.tsx +21 -19
  2082. package/src/widgets/markdown/CodeBlockRendering.tsx +3 -8
  2083. package/src/widgets/markdown/MarkdownFigure.tsx +5 -21
  2084. package/src/widgets/markdown/MarkdownImage.tsx +7 -29
  2085. package/src/widgets/markdown/MarkdownLink.tsx +7 -30
  2086. package/src/widgets/markdown/MarkdownRenderer.tsx +45 -42
  2087. package/src/widgets/markdown/MermaidDiagram.test.ts +40 -0
  2088. package/src/widgets/markdown/MermaidDiagram.tsx +9 -8
  2089. package/src/widgets/markdown/codeBlockHandlers.test.tsx +12 -15
  2090. package/src/widgets/markdown/codeBlockHandlers.tsx +40 -155
  2091. package/src/widgets/markdown/index.ts +23 -14
  2092. package/src/widgets/markdown/normalizeCustomSchemeLinks.test.ts +21 -6
  2093. package/src/widgets/markdown/normalizeCustomSchemeLinks.ts +9 -16
  2094. package/src/widgets/markdown/normalizeDirectives.test.ts +57 -0
  2095. package/src/widgets/markdown/normalizeDirectives.ts +24 -14
  2096. package/src/widgets/markdown/preprocessMathDelimiters.test.ts +59 -54
  2097. package/src/widgets/markdown/preprocessMathDelimiters.ts +36 -32
  2098. package/src/widgets/markdown/remarkDirectiveHandler.ts +10 -12
  2099. package/src/widgets/markdown/useArtifactContent.ts +9 -22
  2100. package/src/widgets/markdown/useResolvedUrl.test.ts +25 -2
  2101. package/src/widgets/markdown/useResolvedUrl.ts +25 -24
  2102. package/src/widgets/monacoEditor/MonacoEditor.tsx +93 -81
  2103. package/src/widgets/monacoEditor/foldingProviders.ts +33 -7
  2104. package/src/widgets/monacoEditor/index.ts +2 -3
  2105. package/src/widgets/properties/PropertiesView.tsx +19 -25
  2106. package/src/widgets/properties/index.ts +1 -1
  2107. package/src/widgets/schema-editor/ManagedSchema.ts +47 -39
  2108. package/src/widgets/schema-editor/editor/Editable.tsx +94 -74
  2109. package/src/widgets/schema-editor/editor/EditableSchemaProperty.tsx +4 -4
  2110. package/src/widgets/schema-editor/editor/PropertyEditor.tsx +49 -34
  2111. package/src/widgets/schema-editor/editor/PropertyViewer.tsx +6 -9
  2112. package/src/widgets/schema-editor/editor/SchemaContext.tsx +9 -6
  2113. package/src/widgets/schema-editor/editor/SchemaEditor.test.ts +5 -5
  2114. package/src/widgets/schema-editor/editor/SchemaEditor.tsx +56 -50
  2115. package/src/widgets/schema-editor/index.ts +6 -6
  2116. package/src/widgets/schema-editor/json-schema4-utils.ts +36 -34
  2117. package/src/widgets/schema-editor/type-signature.ts +16 -18
  2118. package/src/widgets/upload/DropZone.tsx +68 -47
  2119. package/src/widgets/upload/UploadResultCategory.tsx +24 -20
  2120. package/src/widgets/upload/UploadSummary.tsx +24 -24
  2121. package/src/widgets/upload/index.ts +1 -1
  2122. package/src/widgets/xml-viewer/components/Attributes/index.tsx +17 -17
  2123. package/src/widgets/xml-viewer/components/CDataTag/index.tsx +13 -13
  2124. package/src/widgets/xml-viewer/components/CollapseIcon/index.tsx +20 -22
  2125. package/src/widgets/xml-viewer/components/CommentTag/index.tsx +20 -20
  2126. package/src/widgets/xml-viewer/components/DeclarationTag/index.tsx +14 -14
  2127. package/src/widgets/xml-viewer/components/Elements/index.tsx +67 -67
  2128. package/src/widgets/xml-viewer/components/InvalidXml/index.tsx +1 -1
  2129. package/src/widgets/xml-viewer/components/Tag/index.tsx +36 -35
  2130. package/src/widgets/xml-viewer/components/TextElement/index.tsx +20 -19
  2131. package/src/widgets/xml-viewer/components/XMLViewer.tsx +50 -50
  2132. package/src/widgets/xml-viewer/components/types.ts +99 -99
  2133. package/src/widgets/xml-viewer/constants/index.ts +16 -16
  2134. package/src/widgets/xml-viewer/context/xml-viewer-context.ts +4 -4
  2135. package/src/widgets/xml-viewer/helpers/index.ts +32 -34
  2136. package/src/widgets/xml-viewer/hooks/useCollapsible.ts +18 -20
  2137. package/src/widgets/xml-viewer/hooks/useXMLViewer.ts +25 -23
  2138. package/src/widgets/xml-viewer/index.ts +1 -1
  2139. package/src/widgets/xml-viewer/types/index.ts +6 -6
  2140. package/tsconfig.dist.json +3 -2
  2141. package/lib/esm/core/components/Avatar.js +0 -31
  2142. package/lib/esm/core/components/Avatar.js.map +0 -1
  2143. package/lib/esm/core/components/Center.js +0 -6
  2144. package/lib/esm/core/components/Center.js.map +0 -1
  2145. package/lib/esm/core/components/ComboBox.js +0 -355
  2146. package/lib/esm/core/components/ComboBox.js.map +0 -1
  2147. package/lib/esm/core/components/Divider.js +0 -6
  2148. package/lib/esm/core/components/Divider.js.map +0 -1
  2149. package/lib/esm/core/components/EmptyCollection.js +0 -7
  2150. package/lib/esm/core/components/EmptyCollection.js.map +0 -1
  2151. package/lib/esm/core/components/FileUpload.js +0 -119
  2152. package/lib/esm/core/components/FileUpload.js.map +0 -1
  2153. package/lib/esm/core/components/FormItem.js +0 -9
  2154. package/lib/esm/core/components/FormItem.js.map +0 -1
  2155. package/lib/esm/core/components/InputList.js +0 -61
  2156. package/lib/esm/core/components/InputList.js.map +0 -1
  2157. package/lib/esm/core/components/Link.js +0 -13
  2158. package/lib/esm/core/components/Link.js.map +0 -1
  2159. package/lib/esm/core/components/MenuList.js +0 -20
  2160. package/lib/esm/core/components/MenuList.js.map +0 -1
  2161. package/lib/esm/core/components/NumberInput.js +0 -43
  2162. package/lib/esm/core/components/NumberInput.js.map +0 -1
  2163. package/lib/esm/core/components/Overlay.js +0 -57
  2164. package/lib/esm/core/components/Overlay.js.map +0 -1
  2165. package/lib/esm/core/components/Portal.js +0 -28
  2166. package/lib/esm/core/components/Portal.js.map +0 -1
  2167. package/lib/esm/core/components/SelectList.js +0 -54
  2168. package/lib/esm/core/components/SelectList.js.map +0 -1
  2169. package/lib/esm/core/components/SidePanel.js +0 -39
  2170. package/lib/esm/core/components/SidePanel.js.map +0 -1
  2171. package/lib/esm/core/components/Spinner.js +0 -18
  2172. package/lib/esm/core/components/Spinner.js.map +0 -1
  2173. package/lib/esm/core/components/TagsInput.js +0 -194
  2174. package/lib/esm/core/components/TagsInput.js.map +0 -1
  2175. package/lib/esm/core/components/index.js +0 -23
  2176. package/lib/esm/core/components/index.js.map +0 -1
  2177. package/lib/esm/core/components/libs/utils.js +0 -6
  2178. package/lib/esm/core/components/libs/utils.js.map +0 -1
  2179. package/lib/esm/core/components/libs/visuallyHidden.js +0 -16
  2180. package/lib/esm/core/components/libs/visuallyHidden.js.map +0 -1
  2181. package/lib/esm/core/components/popup/Popup.js +0 -60
  2182. package/lib/esm/core/components/popup/Popup.js.map +0 -1
  2183. package/lib/esm/core/components/popup/PopupController.js +0 -149
  2184. package/lib/esm/core/components/popup/PopupController.js.map +0 -1
  2185. package/lib/esm/core/components/popup/index.js +0 -4
  2186. package/lib/esm/core/components/popup/index.js.map +0 -1
  2187. package/lib/esm/core/components/popup/position.js +0 -221
  2188. package/lib/esm/core/components/popup/position.js.map +0 -1
  2189. package/lib/esm/core/components/popup/utils.js +0 -74
  2190. package/lib/esm/core/components/popup/utils.js.map +0 -1
  2191. package/lib/esm/core/components/shadcn/MessageBox.js +0 -66
  2192. package/lib/esm/core/components/shadcn/MessageBox.js.map +0 -1
  2193. package/lib/esm/core/components/shadcn/Panel.js +0 -13
  2194. package/lib/esm/core/components/shadcn/Panel.js.map +0 -1
  2195. package/lib/esm/core/components/shadcn/badge.js +0 -62
  2196. package/lib/esm/core/components/shadcn/badge.js.map +0 -1
  2197. package/lib/esm/core/components/shadcn/breadcrumb.js +0 -55
  2198. package/lib/esm/core/components/shadcn/breadcrumb.js.map +0 -1
  2199. package/lib/esm/core/components/shadcn/button.js +0 -78
  2200. package/lib/esm/core/components/shadcn/button.js.map +0 -1
  2201. package/lib/esm/core/components/shadcn/calendar.js +0 -13
  2202. package/lib/esm/core/components/shadcn/calendar.js.map +0 -1
  2203. package/lib/esm/core/components/shadcn/card.js +0 -17
  2204. package/lib/esm/core/components/shadcn/card.js.map +0 -1
  2205. package/lib/esm/core/components/shadcn/checkbox.js +0 -9
  2206. package/lib/esm/core/components/shadcn/checkbox.js.map +0 -1
  2207. package/lib/esm/core/components/shadcn/collaspible.js +0 -13
  2208. package/lib/esm/core/components/shadcn/collaspible.js.map +0 -1
  2209. package/lib/esm/core/components/shadcn/command.js +0 -29
  2210. package/lib/esm/core/components/shadcn/command.js.map +0 -1
  2211. package/lib/esm/core/components/shadcn/dropdown.js +0 -86
  2212. package/lib/esm/core/components/shadcn/dropdown.js.map +0 -1
  2213. package/lib/esm/core/components/shadcn/filters/DynamicLabel.js +0 -38
  2214. package/lib/esm/core/components/shadcn/filters/DynamicLabel.js.map +0 -1
  2215. package/lib/esm/core/components/shadcn/filters/animateChangeInHeight.js +0 -23
  2216. package/lib/esm/core/components/shadcn/filters/animateChangeInHeight.js.map +0 -1
  2217. package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +0 -131
  2218. package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +0 -1
  2219. package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +0 -49
  2220. package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +0 -1
  2221. package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +0 -23
  2222. package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +0 -1
  2223. package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js +0 -28
  2224. package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js.map +0 -1
  2225. package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js +0 -5
  2226. package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js.map +0 -1
  2227. package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js +0 -98
  2228. package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js.map +0 -1
  2229. package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js +0 -24
  2230. package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +0 -1
  2231. package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js +0 -21
  2232. package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js.map +0 -1
  2233. package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +0 -163
  2234. package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +0 -1
  2235. package/lib/esm/core/components/shadcn/filters/filter-styles.js.map +0 -1
  2236. package/lib/esm/core/components/shadcn/filters/filterBar.js +0 -237
  2237. package/lib/esm/core/components/shadcn/filters/filterBar.js.map +0 -1
  2238. package/lib/esm/core/components/shadcn/filters/filters.js +0 -57
  2239. package/lib/esm/core/components/shadcn/filters/filters.js.map +0 -1
  2240. package/lib/esm/core/components/shadcn/filters/index.js.map +0 -1
  2241. package/lib/esm/core/components/shadcn/filters/types.js.map +0 -1
  2242. package/lib/esm/core/components/shadcn/heading.js +0 -17
  2243. package/lib/esm/core/components/shadcn/heading.js.map +0 -1
  2244. package/lib/esm/core/components/shadcn/index.js +0 -29
  2245. package/lib/esm/core/components/shadcn/index.js.map +0 -1
  2246. package/lib/esm/core/components/shadcn/input.js +0 -41
  2247. package/lib/esm/core/components/shadcn/input.js.map +0 -1
  2248. package/lib/esm/core/components/shadcn/label.js +0 -10
  2249. package/lib/esm/core/components/shadcn/label.js.map +0 -1
  2250. package/lib/esm/core/components/shadcn/modal/ConfirmModal.js +0 -12
  2251. package/lib/esm/core/components/shadcn/modal/ConfirmModal.js.map +0 -1
  2252. package/lib/esm/core/components/shadcn/modal/DeleteModal.js +0 -30
  2253. package/lib/esm/core/components/shadcn/modal/DeleteModal.js.map +0 -1
  2254. package/lib/esm/core/components/shadcn/modal/dialog.js +0 -78
  2255. package/lib/esm/core/components/shadcn/modal/dialog.js.map +0 -1
  2256. package/lib/esm/core/components/shadcn/modal/index.js +0 -4
  2257. package/lib/esm/core/components/shadcn/modal/index.js.map +0 -1
  2258. package/lib/esm/core/components/shadcn/popover.js +0 -56
  2259. package/lib/esm/core/components/shadcn/popover.js.map +0 -1
  2260. package/lib/esm/core/components/shadcn/radioGroup.js +0 -28
  2261. package/lib/esm/core/components/shadcn/radioGroup.js.map +0 -1
  2262. package/lib/esm/core/components/shadcn/resizeable.js +0 -15
  2263. package/lib/esm/core/components/shadcn/resizeable.js.map +0 -1
  2264. package/lib/esm/core/components/shadcn/selectBox.js +0 -156
  2265. package/lib/esm/core/components/shadcn/selectBox.js.map +0 -1
  2266. package/lib/esm/core/components/shadcn/separator.js +0 -8
  2267. package/lib/esm/core/components/shadcn/separator.js.map +0 -1
  2268. package/lib/esm/core/components/shadcn/switch.js +0 -18
  2269. package/lib/esm/core/components/shadcn/switch.js.map +0 -1
  2270. package/lib/esm/core/components/shadcn/tabs.js +0 -134
  2271. package/lib/esm/core/components/shadcn/tabs.js.map +0 -1
  2272. package/lib/esm/core/components/shadcn/text.js +0 -30
  2273. package/lib/esm/core/components/shadcn/text.js.map +0 -1
  2274. package/lib/esm/core/components/shadcn/textarea.js +0 -35
  2275. package/lib/esm/core/components/shadcn/textarea.js.map +0 -1
  2276. package/lib/esm/core/components/shadcn/theme/ThemeProvider.js +0 -39
  2277. package/lib/esm/core/components/shadcn/theme/ThemeProvider.js.map +0 -1
  2278. package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js +0 -15
  2279. package/lib/esm/core/components/shadcn/theme/ThemeSwitcher.js.map +0 -1
  2280. package/lib/esm/core/components/shadcn/tooltip.js +0 -34
  2281. package/lib/esm/core/components/shadcn/tooltip.js.map +0 -1
  2282. package/lib/esm/core/components/styles.js +0 -10
  2283. package/lib/esm/core/components/styles.js.map +0 -1
  2284. package/lib/esm/core/components/table/index.js +0 -24
  2285. package/lib/esm/core/components/table/index.js.map +0 -1
  2286. package/lib/esm/core/components/toast/NotificationPanel.js +0 -43
  2287. package/lib/esm/core/components/toast/NotificationPanel.js.map +0 -1
  2288. package/lib/esm/core/components/toast/ToastContext.js +0 -7
  2289. package/lib/esm/core/components/toast/ToastContext.js.map +0 -1
  2290. package/lib/esm/core/components/toast/ToastProps.js.map +0 -1
  2291. package/lib/esm/core/components/toast/ToastProvider.js +0 -13
  2292. package/lib/esm/core/components/toast/ToastProvider.js.map +0 -1
  2293. package/lib/esm/core/components/toast/index.js +0 -3
  2294. package/lib/esm/core/components/toast/index.js.map +0 -1
  2295. package/lib/esm/core/hooks/CompositeState.js +0 -256
  2296. package/lib/esm/core/hooks/CompositeState.js.map +0 -1
  2297. package/lib/esm/core/hooks/PortalContainerProvider.js +0 -50
  2298. package/lib/esm/core/hooks/PortalContainerProvider.js.map +0 -1
  2299. package/lib/esm/core/hooks/SharedState.js +0 -64
  2300. package/lib/esm/core/hooks/SharedState.js.map +0 -1
  2301. package/lib/esm/core/hooks/index.js +0 -16
  2302. package/lib/esm/core/hooks/index.js.map +0 -1
  2303. package/lib/esm/core/hooks/useClickOutside.js +0 -29
  2304. package/lib/esm/core/hooks/useClickOutside.js.map +0 -1
  2305. package/lib/esm/core/hooks/useCopyToClipboard.js.map +0 -1
  2306. package/lib/esm/core/hooks/useDarkMode.js +0 -11
  2307. package/lib/esm/core/hooks/useDarkMode.js.map +0 -1
  2308. package/lib/esm/core/hooks/useDebounce.js +0 -14
  2309. package/lib/esm/core/hooks/useDebounce.js.map +0 -1
  2310. package/lib/esm/core/hooks/useEventSource.js +0 -31
  2311. package/lib/esm/core/hooks/useEventSource.js.map +0 -1
  2312. package/lib/esm/core/hooks/useFetch.js +0 -40
  2313. package/lib/esm/core/hooks/useFetch.js.map +0 -1
  2314. package/lib/esm/core/hooks/useFlag.js +0 -13
  2315. package/lib/esm/core/hooks/useFlag.js.map +0 -1
  2316. package/lib/esm/core/hooks/useIntersectionObserver.js +0 -34
  2317. package/lib/esm/core/hooks/useIntersectionObserver.js.map +0 -1
  2318. package/lib/esm/core/hooks/useIsFistRendering.js +0 -14
  2319. package/lib/esm/core/hooks/useIsFistRendering.js.map +0 -1
  2320. package/lib/esm/core/hooks/useSafeLayoutEffect.js +0 -4
  2321. package/lib/esm/core/hooks/useSafeLayoutEffect.js.map +0 -1
  2322. package/lib/esm/core/hooks/useScrollableSearch.js +0 -92
  2323. package/lib/esm/core/hooks/useScrollableSearch.js.map +0 -1
  2324. package/lib/esm/core/hooks/useSharedValue.js +0 -21
  2325. package/lib/esm/core/hooks/useSharedValue.js.map +0 -1
  2326. package/lib/esm/core/index.js +0 -4
  2327. package/lib/esm/core/index.js.map +0 -1
  2328. package/lib/esm/core/utils/cn.js +0 -6
  2329. package/lib/esm/core/utils/cn.js.map +0 -1
  2330. package/lib/esm/core/utils/index.js +0 -2
  2331. package/lib/esm/core/utils/index.js.map +0 -1
  2332. package/lib/esm/env/index.js +0 -85
  2333. package/lib/esm/env/index.js.map +0 -1
  2334. package/lib/esm/features/activity-doc/ActivityDoc.js +0 -71
  2335. package/lib/esm/features/activity-doc/ActivityDoc.js.map +0 -1
  2336. package/lib/esm/features/activity-doc/index.js +0 -2
  2337. package/lib/esm/features/activity-doc/index.js.map +0 -1
  2338. package/lib/esm/features/agent/PayloadBuilder.js +0 -421
  2339. package/lib/esm/features/agent/PayloadBuilder.js.map +0 -1
  2340. package/lib/esm/features/agent/chat/AgentChart.js +0 -26
  2341. package/lib/esm/features/agent/chat/AgentChart.js.map +0 -1
  2342. package/lib/esm/features/agent/chat/AgentRightPanel.js +0 -169
  2343. package/lib/esm/features/agent/chat/AgentRightPanel.js.map +0 -1
  2344. package/lib/esm/features/agent/chat/AnimatedThinkingDots.js +0 -243
  2345. package/lib/esm/features/agent/chat/AnimatedThinkingDots.js.map +0 -1
  2346. package/lib/esm/features/agent/chat/ArtifactsTab.js +0 -69
  2347. package/lib/esm/features/agent/chat/ArtifactsTab.js.map +0 -1
  2348. package/lib/esm/features/agent/chat/AskUserWidget.js +0 -116
  2349. package/lib/esm/features/agent/chat/AskUserWidget.js.map +0 -1
  2350. package/lib/esm/features/agent/chat/DocumentPanel.js +0 -52
  2351. package/lib/esm/features/agent/chat/DocumentPanel.js.map +0 -1
  2352. package/lib/esm/features/agent/chat/DocumentTabBar.js +0 -9
  2353. package/lib/esm/features/agent/chat/DocumentTabBar.js.map +0 -1
  2354. package/lib/esm/features/agent/chat/ImageLightbox.js +0 -35
  2355. package/lib/esm/features/agent/chat/ImageLightbox.js.map +0 -1
  2356. package/lib/esm/features/agent/chat/JumpingDots.js +0 -6
  2357. package/lib/esm/features/agent/chat/JumpingDots.js.map +0 -1
  2358. package/lib/esm/features/agent/chat/ModernAgentConversation.js +0 -878
  2359. package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +0 -1
  2360. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +0 -488
  2361. package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +0 -1
  2362. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js +0 -90
  2363. package/lib/esm/features/agent/chat/ModernAgentOutput/BatchProgressPanel.js.map +0 -1
  2364. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js +0 -114
  2365. package/lib/esm/features/agent/chat/ModernAgentOutput/Header.js.map +0 -1
  2366. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js +0 -29
  2367. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.js.map +0 -1
  2368. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js +0 -94
  2369. package/lib/esm/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.js.map +0 -1
  2370. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js +0 -202
  2371. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageInput.js.map +0 -1
  2372. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +0 -322
  2373. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +0 -1
  2374. package/lib/esm/features/agent/chat/ModernAgentOutput/MessagesContainer.js +0 -20
  2375. package/lib/esm/features/agent/chat/ModernAgentOutput/MessagesContainer.js.map +0 -1
  2376. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js +0 -65
  2377. package/lib/esm/features/agent/chat/ModernAgentOutput/PlanPanel.js.map +0 -1
  2378. package/lib/esm/features/agent/chat/ModernAgentOutput/SlideInPanel.js +0 -23
  2379. package/lib/esm/features/agent/chat/ModernAgentOutput/SlideInPanel.js.map +0 -1
  2380. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js +0 -52
  2381. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +0 -1
  2382. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js +0 -84
  2383. package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.js.map +0 -1
  2384. package/lib/esm/features/agent/chat/ModernAgentOutput/StackedMessages.js +0 -13
  2385. package/lib/esm/features/agent/chat/ModernAgentOutput/StackedMessages.js.map +0 -1
  2386. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js +0 -203
  2387. package/lib/esm/features/agent/chat/ModernAgentOutput/StreamingMessage.js.map +0 -1
  2388. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js +0 -556
  2389. package/lib/esm/features/agent/chat/ModernAgentOutput/ToolCallGroup.js.map +0 -1
  2390. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js +0 -108
  2391. package/lib/esm/features/agent/chat/ModernAgentOutput/WorkstreamTabs.js.map +0 -1
  2392. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +0 -614
  2393. package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +0 -1
  2394. package/lib/esm/features/agent/chat/SkillWidgetProvider.js +0 -145
  2395. package/lib/esm/features/agent/chat/SkillWidgetProvider.js.map +0 -1
  2396. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js +0 -262
  2397. package/lib/esm/features/agent/chat/SlidingThinkingIndicator.js.map +0 -1
  2398. package/lib/esm/features/agent/chat/VegaLiteChart.js +0 -793
  2399. package/lib/esm/features/agent/chat/VegaLiteChart.js.map +0 -1
  2400. package/lib/esm/features/agent/chat/WaitingMessages.js +0 -60
  2401. package/lib/esm/features/agent/chat/WaitingMessages.js.map +0 -1
  2402. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js +0 -141
  2403. package/lib/esm/features/agent/chat/hooks/useAgentPlans.js.map +0 -1
  2404. package/lib/esm/features/agent/chat/hooks/useAgentStream.js +0 -243
  2405. package/lib/esm/features/agent/chat/hooks/useAgentStream.js.map +0 -1
  2406. package/lib/esm/features/agent/chat/hooks/useArtifacts.js +0 -108
  2407. package/lib/esm/features/agent/chat/hooks/useArtifacts.js.map +0 -1
  2408. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js +0 -155
  2409. package/lib/esm/features/agent/chat/hooks/useDocumentPanel.js.map +0 -1
  2410. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js +0 -92
  2411. package/lib/esm/features/agent/chat/hooks/useFileProcessing.js.map +0 -1
  2412. package/lib/esm/features/agent/chat/index.js +0 -18
  2413. package/lib/esm/features/agent/chat/index.js.map +0 -1
  2414. package/lib/esm/features/agent/chat/types/document.js.map +0 -1
  2415. package/lib/esm/features/agent/chat/useArtifactUrlCache.js +0 -62
  2416. package/lib/esm/features/agent/chat/useArtifactUrlCache.js.map +0 -1
  2417. package/lib/esm/features/agent/index.js +0 -3
  2418. package/lib/esm/features/agent/index.js.map +0 -1
  2419. package/lib/esm/features/errors/PanelErrorBoundary.js +0 -13
  2420. package/lib/esm/features/errors/PanelErrorBoundary.js.map +0 -1
  2421. package/lib/esm/features/errors/RowErrorBoundary.js +0 -9
  2422. package/lib/esm/features/errors/RowErrorBoundary.js.map +0 -1
  2423. package/lib/esm/features/errors/VertesiaErrorBoundary.js +0 -15
  2424. package/lib/esm/features/errors/VertesiaErrorBoundary.js.map +0 -1
  2425. package/lib/esm/features/errors/WidgetErrorBoundary.js +0 -11
  2426. package/lib/esm/features/errors/WidgetErrorBoundary.js.map +0 -1
  2427. package/lib/esm/features/errors/index.js +0 -5
  2428. package/lib/esm/features/errors/index.js.map +0 -1
  2429. package/lib/esm/features/facets/AgentRunnerFacetsNav.js +0 -98
  2430. package/lib/esm/features/facets/AgentRunnerFacetsNav.js.map +0 -1
  2431. package/lib/esm/features/facets/CollectionsFacetsNav.js +0 -89
  2432. package/lib/esm/features/facets/CollectionsFacetsNav.js.map +0 -1
  2433. package/lib/esm/features/facets/DocumentsFacetsNav.js +0 -151
  2434. package/lib/esm/features/facets/DocumentsFacetsNav.js.map +0 -1
  2435. package/lib/esm/features/facets/EnvironmentFacet.js +0 -39
  2436. package/lib/esm/features/facets/EnvironmentFacet.js.map +0 -1
  2437. package/lib/esm/features/facets/InteractionsFacetsNav.js +0 -88
  2438. package/lib/esm/features/facets/InteractionsFacetsNav.js.map +0 -1
  2439. package/lib/esm/features/facets/PromptsFacetsNav.js +0 -80
  2440. package/lib/esm/features/facets/PromptsFacetsNav.js.map +0 -1
  2441. package/lib/esm/features/facets/RunsFacetsNav.js +0 -164
  2442. package/lib/esm/features/facets/RunsFacetsNav.js.map +0 -1
  2443. package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js +0 -119
  2444. package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js.map +0 -1
  2445. package/lib/esm/features/facets/index.js +0 -17
  2446. package/lib/esm/features/facets/index.js.map +0 -1
  2447. package/lib/esm/features/facets/utils/SearchInterface.js +0 -2
  2448. package/lib/esm/features/facets/utils/SearchInterface.js.map +0 -1
  2449. package/lib/esm/features/facets/utils/StringFacet.js +0 -12
  2450. package/lib/esm/features/facets/utils/StringFacet.js.map +0 -1
  2451. package/lib/esm/features/facets/utils/StringListFacet.js +0 -11
  2452. package/lib/esm/features/facets/utils/StringListFacet.js.map +0 -1
  2453. package/lib/esm/features/facets/utils/TypeFacet.js +0 -42
  2454. package/lib/esm/features/facets/utils/TypeFacet.js.map +0 -1
  2455. package/lib/esm/features/facets/utils/VEnvironmentFacet.js +0 -25
  2456. package/lib/esm/features/facets/utils/VEnvironmentFacet.js.map +0 -1
  2457. package/lib/esm/features/facets/utils/VInteractionFacet.js +0 -45
  2458. package/lib/esm/features/facets/utils/VInteractionFacet.js.map +0 -1
  2459. package/lib/esm/features/facets/utils/VStringFacet.js +0 -20
  2460. package/lib/esm/features/facets/utils/VStringFacet.js.map +0 -1
  2461. package/lib/esm/features/facets/utils/VTypeFacet.js +0 -61
  2462. package/lib/esm/features/facets/utils/VTypeFacet.js.map +0 -1
  2463. package/lib/esm/features/facets/utils/VUserFacet.js +0 -31
  2464. package/lib/esm/features/facets/utils/VUserFacet.js.map +0 -1
  2465. package/lib/esm/features/facets/utils/utils.js.map +0 -1
  2466. package/lib/esm/features/index.js +0 -13
  2467. package/lib/esm/features/index.js.map +0 -1
  2468. package/lib/esm/features/layout/GenericPageNavHeader.js +0 -86
  2469. package/lib/esm/features/layout/GenericPageNavHeader.js.map +0 -1
  2470. package/lib/esm/features/layout/NotFoundView.js +0 -7
  2471. package/lib/esm/features/layout/NotFoundView.js.map +0 -1
  2472. package/lib/esm/features/layout/index.js +0 -3
  2473. package/lib/esm/features/layout/index.js.map +0 -1
  2474. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js +0 -272
  2475. package/lib/esm/features/magic-pdf/AnnotatedImageSlider.js.map +0 -1
  2476. package/lib/esm/features/magic-pdf/DownloadPopover.js +0 -29
  2477. package/lib/esm/features/magic-pdf/DownloadPopover.js.map +0 -1
  2478. package/lib/esm/features/magic-pdf/ExtractedContentView.js +0 -77
  2479. package/lib/esm/features/magic-pdf/ExtractedContentView.js.map +0 -1
  2480. package/lib/esm/features/magic-pdf/MagicPdfProvider.js +0 -242
  2481. package/lib/esm/features/magic-pdf/MagicPdfProvider.js.map +0 -1
  2482. package/lib/esm/features/magic-pdf/MagicPdfView.js +0 -64
  2483. package/lib/esm/features/magic-pdf/MagicPdfView.js.map +0 -1
  2484. package/lib/esm/features/magic-pdf/index.js +0 -2
  2485. package/lib/esm/features/magic-pdf/index.js.map +0 -1
  2486. package/lib/esm/features/magic-pdf/types.js.map +0 -1
  2487. package/lib/esm/features/oauth/OAuthProviderConnectButton.js +0 -85
  2488. package/lib/esm/features/oauth/OAuthProviderConnectButton.js.map +0 -1
  2489. package/lib/esm/features/oauth/RemoteMcpConnectionButton.js +0 -119
  2490. package/lib/esm/features/oauth/RemoteMcpConnectionButton.js.map +0 -1
  2491. package/lib/esm/features/oauth/index.js.map +0 -1
  2492. package/lib/esm/features/oauth/useOAuthPopup.js.map +0 -1
  2493. package/lib/esm/features/pdf-viewer/PdfPageRenderer.js +0 -261
  2494. package/lib/esm/features/pdf-viewer/PdfPageRenderer.js.map +0 -1
  2495. package/lib/esm/features/pdf-viewer/PdfPageSlider.js +0 -280
  2496. package/lib/esm/features/pdf-viewer/PdfPageSlider.js.map +0 -1
  2497. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js +0 -73
  2498. package/lib/esm/features/pdf-viewer/SimplePdfViewer.js.map +0 -1
  2499. package/lib/esm/features/pdf-viewer/index.js.map +0 -1
  2500. package/lib/esm/features/permissions/SecureButton.js +0 -13
  2501. package/lib/esm/features/permissions/SecureButton.js.map +0 -1
  2502. package/lib/esm/features/permissions/SecureSidebarItem.js +0 -14
  2503. package/lib/esm/features/permissions/SecureSidebarItem.js.map +0 -1
  2504. package/lib/esm/features/permissions/UserPermissionsProvider.js +0 -89
  2505. package/lib/esm/features/permissions/UserPermissionsProvider.js.map +0 -1
  2506. package/lib/esm/features/permissions/helpers.js.map +0 -1
  2507. package/lib/esm/features/permissions/index.js +0 -5
  2508. package/lib/esm/features/permissions/index.js.map +0 -1
  2509. package/lib/esm/features/store/collections/BrowseCollectionView.js +0 -48
  2510. package/lib/esm/features/store/collections/BrowseCollectionView.js.map +0 -1
  2511. package/lib/esm/features/store/collections/CollectionsTable.js +0 -71
  2512. package/lib/esm/features/store/collections/CollectionsTable.js.map +0 -1
  2513. package/lib/esm/features/store/collections/CreateCollection.js +0 -90
  2514. package/lib/esm/features/store/collections/CreateCollection.js.map +0 -1
  2515. package/lib/esm/features/store/collections/EditCollectionView.js +0 -192
  2516. package/lib/esm/features/store/collections/EditCollectionView.js.map +0 -1
  2517. package/lib/esm/features/store/collections/SelectCollection.js +0 -134
  2518. package/lib/esm/features/store/collections/SelectCollection.js.map +0 -1
  2519. package/lib/esm/features/store/collections/SharedPropsEditor.js +0 -41
  2520. package/lib/esm/features/store/collections/SharedPropsEditor.js.map +0 -1
  2521. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js +0 -37
  2522. package/lib/esm/features/store/collections/SyncMemberHeadsToggle.js.map +0 -1
  2523. package/lib/esm/features/store/collections/index.js +0 -8
  2524. package/lib/esm/features/store/collections/index.js.map +0 -1
  2525. package/lib/esm/features/store/index.js +0 -4
  2526. package/lib/esm/features/store/index.js.map +0 -1
  2527. package/lib/esm/features/store/objects/DocumentPreviewPanel.js +0 -149
  2528. package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +0 -1
  2529. package/lib/esm/features/store/objects/DocumentSearchResults.js +0 -216
  2530. package/lib/esm/features/store/objects/DocumentSearchResults.js.map +0 -1
  2531. package/lib/esm/features/store/objects/DocumentSelectionProvider.js +0 -81
  2532. package/lib/esm/features/store/objects/DocumentSelectionProvider.js.map +0 -1
  2533. package/lib/esm/features/store/objects/DocumentTable.js +0 -281
  2534. package/lib/esm/features/store/objects/DocumentTable.js.map +0 -1
  2535. package/lib/esm/features/store/objects/ExportPropertiesModal.js +0 -34
  2536. package/lib/esm/features/store/objects/ExportPropertiesModal.js.map +0 -1
  2537. package/lib/esm/features/store/objects/components/ContentDispositionButton.js +0 -33
  2538. package/lib/esm/features/store/objects/components/ContentDispositionButton.js.map +0 -1
  2539. package/lib/esm/features/store/objects/components/ContentOverview.js +0 -555
  2540. package/lib/esm/features/store/objects/components/ContentOverview.js.map +0 -1
  2541. package/lib/esm/features/store/objects/components/DocumentIcon.js +0 -34
  2542. package/lib/esm/features/store/objects/components/DocumentIcon.js.map +0 -1
  2543. package/lib/esm/features/store/objects/components/DocumentInput.js +0 -51
  2544. package/lib/esm/features/store/objects/components/DocumentInput.js.map +0 -1
  2545. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +0 -159
  2546. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +0 -1
  2547. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +0 -50
  2548. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +0 -1
  2549. package/lib/esm/features/store/objects/components/SelectDocument.js +0 -58
  2550. package/lib/esm/features/store/objects/components/SelectDocument.js.map +0 -1
  2551. package/lib/esm/features/store/objects/components/SelectDocumentModal.js +0 -7
  2552. package/lib/esm/features/store/objects/components/SelectDocumentModal.js.map +0 -1
  2553. package/lib/esm/features/store/objects/components/TextEditorPanel.js +0 -97
  2554. package/lib/esm/features/store/objects/components/TextEditorPanel.js.map +0 -1
  2555. package/lib/esm/features/store/objects/components/VectorSearchWidget.js +0 -92
  2556. package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +0 -1
  2557. package/lib/esm/features/store/objects/components/index.js +0 -10
  2558. package/lib/esm/features/store/objects/components/index.js.map +0 -1
  2559. package/lib/esm/features/store/objects/components/useContentPanelHooks.js +0 -191
  2560. package/lib/esm/features/store/objects/components/useContentPanelHooks.js.map +0 -1
  2561. package/lib/esm/features/store/objects/components/useDownloadFile.js +0 -194
  2562. package/lib/esm/features/store/objects/components/useDownloadFile.js.map +0 -1
  2563. package/lib/esm/features/store/objects/index.js +0 -11
  2564. package/lib/esm/features/store/objects/index.js.map +0 -1
  2565. package/lib/esm/features/store/objects/layout/DocumentTableColumn.js +0 -86
  2566. package/lib/esm/features/store/objects/layout/DocumentTableColumn.js.map +0 -1
  2567. package/lib/esm/features/store/objects/layout/documentLayout.js +0 -19
  2568. package/lib/esm/features/store/objects/layout/documentLayout.js.map +0 -1
  2569. package/lib/esm/features/store/objects/layout/index.js +0 -3
  2570. package/lib/esm/features/store/objects/layout/index.js.map +0 -1
  2571. package/lib/esm/features/store/objects/layout/renderers.js +0 -166
  2572. package/lib/esm/features/store/objects/layout/renderers.js.map +0 -1
  2573. package/lib/esm/features/store/objects/search/DocumentSearchContext.js +0 -181
  2574. package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +0 -1
  2575. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js +0 -42
  2576. package/lib/esm/features/store/objects/search/DocumentSearchProvider.js.map +0 -1
  2577. package/lib/esm/features/store/objects/search/index.js +0 -3
  2578. package/lib/esm/features/store/objects/search/index.js.map +0 -1
  2579. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js +0 -63
  2580. package/lib/esm/features/store/objects/selection/ObjectsActionContext.js.map +0 -1
  2581. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js +0 -50
  2582. package/lib/esm/features/store/objects/selection/ObjectsActionContextClass.js.map +0 -1
  2583. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js +0 -27
  2584. package/lib/esm/features/store/objects/selection/ObjectsActionHooks.js.map +0 -1
  2585. package/lib/esm/features/store/objects/selection/ObjectsActionSpec.js.map +0 -1
  2586. package/lib/esm/features/store/objects/selection/SelectionActions.js +0 -71
  2587. package/lib/esm/features/store/objects/selection/SelectionActions.js.map +0 -1
  2588. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +0 -86
  2589. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +0 -1
  2590. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +0 -57
  2591. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +0 -1
  2592. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js +0 -32
  2593. package/lib/esm/features/store/objects/selection/actions/ConfirmAction.js.map +0 -1
  2594. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +0 -85
  2595. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +0 -1
  2596. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +0 -119
  2597. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +0 -1
  2598. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +0 -68
  2599. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +0 -1
  2600. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js +0 -78
  2601. package/lib/esm/features/store/objects/selection/actions/StartWorkflowComponent.js.map +0 -1
  2602. package/lib/esm/features/store/objects/selection/actions/index.js +0 -8
  2603. package/lib/esm/features/store/objects/selection/actions/index.js.map +0 -1
  2604. package/lib/esm/features/store/objects/selection/index.js +0 -5
  2605. package/lib/esm/features/store/objects/selection/index.js.map +0 -1
  2606. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +0 -520
  2607. package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +0 -1
  2608. package/lib/esm/features/store/objects/upload/index.js +0 -4
  2609. package/lib/esm/features/store/objects/upload/index.js.map +0 -1
  2610. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js +0 -204
  2611. package/lib/esm/features/store/objects/upload/useSmartFileUploadProcessing.js.map +0 -1
  2612. package/lib/esm/features/store/objects/upload/useUploadHandler.js +0 -232
  2613. package/lib/esm/features/store/objects/upload/useUploadHandler.js.map +0 -1
  2614. package/lib/esm/features/store/types/ContentObjectTypesSearch.js +0 -84
  2615. package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +0 -1
  2616. package/lib/esm/features/store/types/ContentObjectTypesTable.js +0 -13
  2617. package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +0 -1
  2618. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +0 -25
  2619. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +0 -1
  2620. package/lib/esm/features/store/types/ObjectSchemaEditor.js +0 -104
  2621. package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +0 -1
  2622. package/lib/esm/features/store/types/SelectContentType.js +0 -45
  2623. package/lib/esm/features/store/types/SelectContentType.js.map +0 -1
  2624. package/lib/esm/features/store/types/SelectContentTypeModal.js +0 -32
  2625. package/lib/esm/features/store/types/SelectContentTypeModal.js.map +0 -1
  2626. package/lib/esm/features/store/types/TableLayoutEditor.js +0 -78
  2627. package/lib/esm/features/store/types/TableLayoutEditor.js.map +0 -1
  2628. package/lib/esm/features/store/types/TypeRegistry.js.map +0 -1
  2629. package/lib/esm/features/store/types/TypeRegistryProvider.js +0 -53
  2630. package/lib/esm/features/store/types/TypeRegistryProvider.js.map +0 -1
  2631. package/lib/esm/features/store/types/index.js +0 -11
  2632. package/lib/esm/features/store/types/index.js.map +0 -1
  2633. package/lib/esm/features/store/types/search/ObjectTypeSearchContext.js +0 -98
  2634. package/lib/esm/features/store/types/search/ObjectTypeSearchContext.js.map +0 -1
  2635. package/lib/esm/features/store/types/search/ObjectTypeSearchProvider.js +0 -15
  2636. package/lib/esm/features/store/types/search/ObjectTypeSearchProvider.js.map +0 -1
  2637. package/lib/esm/features/store/types/search/index.js +0 -3
  2638. package/lib/esm/features/store/types/search/index.js.map +0 -1
  2639. package/lib/esm/features/user/UserAvatar.js +0 -18
  2640. package/lib/esm/features/user/UserAvatar.js.map +0 -1
  2641. package/lib/esm/features/user/UserInfo.js +0 -198
  2642. package/lib/esm/features/user/UserInfo.js.map +0 -1
  2643. package/lib/esm/features/user/index.js +0 -3
  2644. package/lib/esm/features/user/index.js.map +0 -1
  2645. package/lib/esm/features/utils/index.js +0 -6
  2646. package/lib/esm/features/utils/index.js.map +0 -1
  2647. package/lib/esm/features/utils/mimeType.js.map +0 -1
  2648. package/lib/esm/features/utils/print.js +0 -180
  2649. package/lib/esm/features/utils/print.js.map +0 -1
  2650. package/lib/esm/features/utils/rendition.js +0 -67
  2651. package/lib/esm/features/utils/rendition.js.map +0 -1
  2652. package/lib/esm/features/utils/text.js +0 -10
  2653. package/lib/esm/features/utils/text.js.map +0 -1
  2654. package/lib/esm/features/utils/workflowStatus.js +0 -43
  2655. package/lib/esm/features/utils/workflowStatus.js.map +0 -1
  2656. package/lib/esm/i18n/index.js +0 -31
  2657. package/lib/esm/i18n/index.js.map +0 -1
  2658. package/lib/esm/i18n/instance.js.map +0 -1
  2659. package/lib/esm/i18n/locales/ar.json +0 -677
  2660. package/lib/esm/i18n/locales/de.json +0 -633
  2661. package/lib/esm/i18n/locales/en.json +0 -633
  2662. package/lib/esm/i18n/locales/es.json +0 -644
  2663. package/lib/esm/i18n/locales/fr.json +0 -644
  2664. package/lib/esm/i18n/locales/it.json +0 -644
  2665. package/lib/esm/i18n/locales/ja.json +0 -633
  2666. package/lib/esm/i18n/locales/ko.json +0 -633
  2667. package/lib/esm/i18n/locales/pt.json +0 -644
  2668. package/lib/esm/i18n/locales/ru.json +0 -655
  2669. package/lib/esm/i18n/locales/tr.json +0 -633
  2670. package/lib/esm/i18n/locales/zh-TW.json +0 -633
  2671. package/lib/esm/i18n/locales/zh.json +0 -633
  2672. package/lib/esm/layout/AppLayout.js +0 -45
  2673. package/lib/esm/layout/AppLayout.js.map +0 -1
  2674. package/lib/esm/layout/FullHeightLayout.js +0 -24
  2675. package/lib/esm/layout/FullHeightLayout.js.map +0 -1
  2676. package/lib/esm/layout/Navbar.js +0 -42
  2677. package/lib/esm/layout/Navbar.js.map +0 -1
  2678. package/lib/esm/layout/RegionTag.js.map +0 -1
  2679. package/lib/esm/layout/Sidebar.js +0 -45
  2680. package/lib/esm/layout/Sidebar.js.map +0 -1
  2681. package/lib/esm/layout/SidebarContext.js +0 -10
  2682. package/lib/esm/layout/SidebarContext.js.map +0 -1
  2683. package/lib/esm/layout/TitleBar.js +0 -5
  2684. package/lib/esm/layout/TitleBar.js.map +0 -1
  2685. package/lib/esm/layout/index.js +0 -8
  2686. package/lib/esm/layout/index.js.map +0 -1
  2687. package/lib/esm/router/FixLinks.js +0 -23
  2688. package/lib/esm/router/FixLinks.js.map +0 -1
  2689. package/lib/esm/router/HistoryNavigator.js +0 -198
  2690. package/lib/esm/router/HistoryNavigator.js.map +0 -1
  2691. package/lib/esm/router/Nav.js +0 -28
  2692. package/lib/esm/router/Nav.js.map +0 -1
  2693. package/lib/esm/router/NestedNavigationContext.js +0 -23
  2694. package/lib/esm/router/NestedNavigationContext.js.map +0 -1
  2695. package/lib/esm/router/NestedRouterProvider.js +0 -46
  2696. package/lib/esm/router/NestedRouterProvider.js.map +0 -1
  2697. package/lib/esm/router/PathMatcher.js +0 -159
  2698. package/lib/esm/router/PathMatcher.js.map +0 -1
  2699. package/lib/esm/router/PathWithParams.js +0 -34
  2700. package/lib/esm/router/PathWithParams.js.map +0 -1
  2701. package/lib/esm/router/Route404.js +0 -18
  2702. package/lib/esm/router/Route404.js.map +0 -1
  2703. package/lib/esm/router/RouteComponent.js +0 -32
  2704. package/lib/esm/router/RouteComponent.js.map +0 -1
  2705. package/lib/esm/router/Router.js +0 -176
  2706. package/lib/esm/router/Router.js.map +0 -1
  2707. package/lib/esm/router/RouterProvider.js +0 -41
  2708. package/lib/esm/router/RouterProvider.js.map +0 -1
  2709. package/lib/esm/router/index.js +0 -11
  2710. package/lib/esm/router/index.js.map +0 -1
  2711. package/lib/esm/router/path.js +0 -140
  2712. package/lib/esm/router/path.js.map +0 -1
  2713. package/lib/esm/session/UserSession.js +0 -221
  2714. package/lib/esm/session/UserSession.js.map +0 -1
  2715. package/lib/esm/session/UserSessionProvider.js +0 -189
  2716. package/lib/esm/session/UserSessionProvider.js.map +0 -1
  2717. package/lib/esm/session/auth/composable.js +0 -273
  2718. package/lib/esm/session/auth/composable.js.map +0 -1
  2719. package/lib/esm/session/auth/domainRouting.js.map +0 -1
  2720. package/lib/esm/session/auth/firebase.js +0 -158
  2721. package/lib/esm/session/auth/firebase.js.map +0 -1
  2722. package/lib/esm/session/auth/useAuthState.js +0 -46
  2723. package/lib/esm/session/auth/useAuthState.js.map +0 -1
  2724. package/lib/esm/session/auth/useCurrentTenant.js +0 -65
  2725. package/lib/esm/session/auth/useCurrentTenant.js.map +0 -1
  2726. package/lib/esm/session/constants.js.map +0 -1
  2727. package/lib/esm/session/index.js +0 -8
  2728. package/lib/esm/session/index.js.map +0 -1
  2729. package/lib/esm/session/useUXTracking.js +0 -29
  2730. package/lib/esm/session/useUXTracking.js.map +0 -1
  2731. package/lib/esm/shell/SplashScreen.js +0 -22
  2732. package/lib/esm/shell/SplashScreen.js.map +0 -1
  2733. package/lib/esm/shell/VertesiaShell.js +0 -10
  2734. package/lib/esm/shell/VertesiaShell.js.map +0 -1
  2735. package/lib/esm/shell/apps/AppInstallationProvider.js +0 -13
  2736. package/lib/esm/shell/apps/AppInstallationProvider.js.map +0 -1
  2737. package/lib/esm/shell/apps/AppProjectSelector.js +0 -36
  2738. package/lib/esm/shell/apps/AppProjectSelector.js.map +0 -1
  2739. package/lib/esm/shell/apps/StandaloneApp.js +0 -90
  2740. package/lib/esm/shell/apps/StandaloneApp.js.map +0 -1
  2741. package/lib/esm/shell/apps/index.js +0 -4
  2742. package/lib/esm/shell/apps/index.js.map +0 -1
  2743. package/lib/esm/shell/index.js +0 -8
  2744. package/lib/esm/shell/index.js.map +0 -1
  2745. package/lib/esm/shell/login/EnterpriseSigninButton.js +0 -86
  2746. package/lib/esm/shell/login/EnterpriseSigninButton.js.map +0 -1
  2747. package/lib/esm/shell/login/GitHubSignInButton.js +0 -20
  2748. package/lib/esm/shell/login/GitHubSignInButton.js.map +0 -1
  2749. package/lib/esm/shell/login/GoogleSignInButton.js +0 -27
  2750. package/lib/esm/shell/login/GoogleSignInButton.js.map +0 -1
  2751. package/lib/esm/shell/login/InviteAcceptModal.js +0 -66
  2752. package/lib/esm/shell/login/InviteAcceptModal.js.map +0 -1
  2753. package/lib/esm/shell/login/MicrosoftSigninButton.js +0 -17
  2754. package/lib/esm/shell/login/MicrosoftSigninButton.js.map +0 -1
  2755. package/lib/esm/shell/login/PreviewIcon.js +0 -23
  2756. package/lib/esm/shell/login/PreviewIcon.js.map +0 -1
  2757. package/lib/esm/shell/login/SignInModal.js +0 -9
  2758. package/lib/esm/shell/login/SignInModal.js.map +0 -1
  2759. package/lib/esm/shell/login/SigninScreen.js +0 -68
  2760. package/lib/esm/shell/login/SigninScreen.js.map +0 -1
  2761. package/lib/esm/shell/login/SignupForm.js +0 -93
  2762. package/lib/esm/shell/login/SignupForm.js.map +0 -1
  2763. package/lib/esm/shell/login/TerminalLogin.js +0 -215
  2764. package/lib/esm/shell/login/TerminalLogin.js.map +0 -1
  2765. package/lib/esm/shell/login/UserInfo.js +0 -43
  2766. package/lib/esm/shell/login/UserInfo.js.map +0 -1
  2767. package/lib/esm/shell/login/UserSessionMenu.js +0 -36
  2768. package/lib/esm/shell/login/UserSessionMenu.js.map +0 -1
  2769. package/lib/esm/shell/utils.js +0 -6
  2770. package/lib/esm/shell/utils.js.map +0 -1
  2771. package/lib/esm/widgets/Progress.js.map +0 -1
  2772. package/lib/esm/widgets/SvgIcon.js +0 -36
  2773. package/lib/esm/widgets/SvgIcon.js.map +0 -1
  2774. package/lib/esm/widgets/form/Form.js +0 -100
  2775. package/lib/esm/widgets/form/Form.js.map +0 -1
  2776. package/lib/esm/widgets/form/FormContext.js +0 -31
  2777. package/lib/esm/widgets/form/FormContext.js.map +0 -1
  2778. package/lib/esm/widgets/form/ManagedObject.js +0 -287
  2779. package/lib/esm/widgets/form/ManagedObject.js.map +0 -1
  2780. package/lib/esm/widgets/form/fields.js +0 -12
  2781. package/lib/esm/widgets/form/fields.js.map +0 -1
  2782. package/lib/esm/widgets/form/index.js +0 -7
  2783. package/lib/esm/widgets/form/index.js.map +0 -1
  2784. package/lib/esm/widgets/form/inputs.js +0 -38
  2785. package/lib/esm/widgets/form/inputs.js.map +0 -1
  2786. package/lib/esm/widgets/form/schema.js +0 -199
  2787. package/lib/esm/widgets/form/schema.js.map +0 -1
  2788. package/lib/esm/widgets/index.js +0 -11
  2789. package/lib/esm/widgets/index.js.map +0 -1
  2790. package/lib/esm/widgets/json-view/JSONCode.js +0 -22
  2791. package/lib/esm/widgets/json-view/JSONCode.js.map +0 -1
  2792. package/lib/esm/widgets/json-view/JSONDisplay.js +0 -14
  2793. package/lib/esm/widgets/json-view/JSONDisplay.js.map +0 -1
  2794. package/lib/esm/widgets/json-view/JSONSwitcher.js +0 -6
  2795. package/lib/esm/widgets/json-view/JSONSwitcher.js.map +0 -1
  2796. package/lib/esm/widgets/json-view/JSONView.js +0 -106
  2797. package/lib/esm/widgets/json-view/JSONView.js.map +0 -1
  2798. package/lib/esm/widgets/json-view/index.js +0 -5
  2799. package/lib/esm/widgets/json-view/index.js.map +0 -1
  2800. package/lib/esm/widgets/json-view/types.js.map +0 -1
  2801. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js +0 -229
  2802. package/lib/esm/widgets/markdown/ArtifactContentRenderer.js.map +0 -1
  2803. package/lib/esm/widgets/markdown/CodeBlockContext.js.map +0 -1
  2804. package/lib/esm/widgets/markdown/CodeBlockPlaceholder.js +0 -56
  2805. package/lib/esm/widgets/markdown/CodeBlockPlaceholder.js.map +0 -1
  2806. package/lib/esm/widgets/markdown/CodeBlockPlaceholder.test.js +0 -50
  2807. package/lib/esm/widgets/markdown/CodeBlockPlaceholder.test.js.map +0 -1
  2808. package/lib/esm/widgets/markdown/CodeBlockRendering.js +0 -38
  2809. package/lib/esm/widgets/markdown/CodeBlockRendering.js.map +0 -1
  2810. package/lib/esm/widgets/markdown/MarkdownFigure.js +0 -40
  2811. package/lib/esm/widgets/markdown/MarkdownFigure.js.map +0 -1
  2812. package/lib/esm/widgets/markdown/MarkdownImage.js +0 -41
  2813. package/lib/esm/widgets/markdown/MarkdownImage.js.map +0 -1
  2814. package/lib/esm/widgets/markdown/MarkdownLink.js +0 -46
  2815. package/lib/esm/widgets/markdown/MarkdownLink.js.map +0 -1
  2816. package/lib/esm/widgets/markdown/MarkdownRenderer.js +0 -163
  2817. package/lib/esm/widgets/markdown/MarkdownRenderer.js.map +0 -1
  2818. package/lib/esm/widgets/markdown/MermaidDiagram.js +0 -148
  2819. package/lib/esm/widgets/markdown/MermaidDiagram.js.map +0 -1
  2820. package/lib/esm/widgets/markdown/codeBlockHandlers.js +0 -329
  2821. package/lib/esm/widgets/markdown/codeBlockHandlers.js.map +0 -1
  2822. package/lib/esm/widgets/markdown/codeBlockHandlers.test.js +0 -179
  2823. package/lib/esm/widgets/markdown/codeBlockHandlers.test.js.map +0 -1
  2824. package/lib/esm/widgets/markdown/index.js +0 -13
  2825. package/lib/esm/widgets/markdown/index.js.map +0 -1
  2826. package/lib/esm/widgets/markdown/normalizeCustomSchemeLinks.js +0 -77
  2827. package/lib/esm/widgets/markdown/normalizeCustomSchemeLinks.js.map +0 -1
  2828. package/lib/esm/widgets/markdown/normalizeDirectives.js +0 -45
  2829. package/lib/esm/widgets/markdown/normalizeDirectives.js.map +0 -1
  2830. package/lib/esm/widgets/markdown/preprocessMathDelimiters.js +0 -226
  2831. package/lib/esm/widgets/markdown/preprocessMathDelimiters.js.map +0 -1
  2832. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js +0 -95
  2833. package/lib/esm/widgets/markdown/remarkDirectiveHandler.js.map +0 -1
  2834. package/lib/esm/widgets/markdown/useArtifactContent.js +0 -174
  2835. package/lib/esm/widgets/markdown/useArtifactContent.js.map +0 -1
  2836. package/lib/esm/widgets/markdown/useResolvedUrl.js +0 -175
  2837. package/lib/esm/widgets/markdown/useResolvedUrl.js.map +0 -1
  2838. package/lib/esm/widgets/monacoEditor/MonacoEditor.js +0 -169
  2839. package/lib/esm/widgets/monacoEditor/MonacoEditor.js.map +0 -1
  2840. package/lib/esm/widgets/monacoEditor/foldingProviders.js +0 -132
  2841. package/lib/esm/widgets/monacoEditor/foldingProviders.js.map +0 -1
  2842. package/lib/esm/widgets/monacoEditor/index.js +0 -2
  2843. package/lib/esm/widgets/monacoEditor/index.js.map +0 -1
  2844. package/lib/esm/widgets/properties/PropertiesView.js +0 -8
  2845. package/lib/esm/widgets/properties/PropertiesView.js.map +0 -1
  2846. package/lib/esm/widgets/properties/index.js +0 -2
  2847. package/lib/esm/widgets/properties/index.js.map +0 -1
  2848. package/lib/esm/widgets/schema-editor/ManagedSchema.js +0 -301
  2849. package/lib/esm/widgets/schema-editor/ManagedSchema.js.map +0 -1
  2850. package/lib/esm/widgets/schema-editor/editor/Editable.js +0 -110
  2851. package/lib/esm/widgets/schema-editor/editor/Editable.js.map +0 -1
  2852. package/lib/esm/widgets/schema-editor/editor/EditableSchemaProperty.js +0 -8
  2853. package/lib/esm/widgets/schema-editor/editor/EditableSchemaProperty.js.map +0 -1
  2854. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js +0 -85
  2855. package/lib/esm/widgets/schema-editor/editor/PropertyEditor.js.map +0 -1
  2856. package/lib/esm/widgets/schema-editor/editor/PropertyViewer.js +0 -7
  2857. package/lib/esm/widgets/schema-editor/editor/PropertyViewer.js.map +0 -1
  2858. package/lib/esm/widgets/schema-editor/editor/SchemaContext.js +0 -9
  2859. package/lib/esm/widgets/schema-editor/editor/SchemaContext.js.map +0 -1
  2860. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +0 -86
  2861. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +0 -1
  2862. package/lib/esm/widgets/schema-editor/index.js +0 -7
  2863. package/lib/esm/widgets/schema-editor/index.js.map +0 -1
  2864. package/lib/esm/widgets/schema-editor/json-schema4-utils.js +0 -188
  2865. package/lib/esm/widgets/schema-editor/json-schema4-utils.js.map +0 -1
  2866. package/lib/esm/widgets/schema-editor/type-signature.js.map +0 -1
  2867. package/lib/esm/widgets/upload/DropZone.js +0 -173
  2868. package/lib/esm/widgets/upload/DropZone.js.map +0 -1
  2869. package/lib/esm/widgets/upload/UploadResultCategory.js +0 -21
  2870. package/lib/esm/widgets/upload/UploadResultCategory.js.map +0 -1
  2871. package/lib/esm/widgets/upload/UploadSummary.js +0 -32
  2872. package/lib/esm/widgets/upload/UploadSummary.js.map +0 -1
  2873. package/lib/esm/widgets/upload/index.js.map +0 -1
  2874. package/lib/esm/widgets/xml-viewer/components/Attributes/index.js.map +0 -1
  2875. package/lib/esm/widgets/xml-viewer/components/CDataTag/index.js.map +0 -1
  2876. package/lib/esm/widgets/xml-viewer/components/CollapseIcon/index.js +0 -11
  2877. package/lib/esm/widgets/xml-viewer/components/CollapseIcon/index.js.map +0 -1
  2878. package/lib/esm/widgets/xml-viewer/components/CommentTag/index.js.map +0 -1
  2879. package/lib/esm/widgets/xml-viewer/components/DeclarationTag/index.js.map +0 -1
  2880. package/lib/esm/widgets/xml-viewer/components/Elements/index.js.map +0 -1
  2881. package/lib/esm/widgets/xml-viewer/components/InvalidXml/index.js.map +0 -1
  2882. package/lib/esm/widgets/xml-viewer/components/Tag/index.js.map +0 -1
  2883. package/lib/esm/widgets/xml-viewer/components/TextElement/index.js.map +0 -1
  2884. package/lib/esm/widgets/xml-viewer/components/XMLViewer.js.map +0 -1
  2885. package/lib/esm/widgets/xml-viewer/components/types.js.map +0 -1
  2886. package/lib/esm/widgets/xml-viewer/constants/index.js.map +0 -1
  2887. package/lib/esm/widgets/xml-viewer/context/xml-viewer-context.js.map +0 -1
  2888. package/lib/esm/widgets/xml-viewer/helpers/index.js +0 -40
  2889. package/lib/esm/widgets/xml-viewer/helpers/index.js.map +0 -1
  2890. package/lib/esm/widgets/xml-viewer/hooks/useCollapsible.js.map +0 -1
  2891. package/lib/esm/widgets/xml-viewer/hooks/useXMLViewer.js +0 -31
  2892. package/lib/esm/widgets/xml-viewer/hooks/useXMLViewer.js.map +0 -1
  2893. package/lib/esm/widgets/xml-viewer/index.js +0 -3
  2894. package/lib/esm/widgets/xml-viewer/index.js.map +0 -1
  2895. package/lib/esm/widgets/xml-viewer/types/index.js.map +0 -1
  2896. package/lib/tsconfig.tsbuildinfo +0 -1
  2897. package/lib/types/core/components/Avatar.d.ts +0 -16
  2898. package/lib/types/core/components/Avatar.d.ts.map +0 -1
  2899. package/lib/types/core/components/Center.d.ts +0 -8
  2900. package/lib/types/core/components/Center.d.ts.map +0 -1
  2901. package/lib/types/core/components/ComboBox.d.ts +0 -134
  2902. package/lib/types/core/components/ComboBox.d.ts.map +0 -1
  2903. package/lib/types/core/components/Divider.d.ts +0 -6
  2904. package/lib/types/core/components/Divider.d.ts.map +0 -1
  2905. package/lib/types/core/components/EmptyCollection.d.ts +0 -9
  2906. package/lib/types/core/components/EmptyCollection.d.ts.map +0 -1
  2907. package/lib/types/core/components/FileUpload.d.ts +0 -29
  2908. package/lib/types/core/components/FileUpload.d.ts.map +0 -1
  2909. package/lib/types/core/components/FormItem.d.ts +0 -16
  2910. package/lib/types/core/components/FormItem.d.ts.map +0 -1
  2911. package/lib/types/core/components/InputList.d.ts +0 -12
  2912. package/lib/types/core/components/InputList.d.ts.map +0 -1
  2913. package/lib/types/core/components/Link.d.ts +0 -7
  2914. package/lib/types/core/components/Link.d.ts.map +0 -1
  2915. package/lib/types/core/components/MenuList.d.ts +0 -14
  2916. package/lib/types/core/components/MenuList.d.ts.map +0 -1
  2917. package/lib/types/core/components/NumberInput.d.ts +0 -16
  2918. package/lib/types/core/components/NumberInput.d.ts.map +0 -1
  2919. package/lib/types/core/components/Overlay.d.ts +0 -25
  2920. package/lib/types/core/components/Overlay.d.ts.map +0 -1
  2921. package/lib/types/core/components/Portal.d.ts +0 -6
  2922. package/lib/types/core/components/Portal.d.ts.map +0 -1
  2923. package/lib/types/core/components/SelectList.d.ts +0 -19
  2924. package/lib/types/core/components/SelectList.d.ts.map +0 -1
  2925. package/lib/types/core/components/SidePanel.d.ts +0 -16
  2926. package/lib/types/core/components/SidePanel.d.ts.map +0 -1
  2927. package/lib/types/core/components/Spinner.d.ts +0 -7
  2928. package/lib/types/core/components/Spinner.d.ts.map +0 -1
  2929. package/lib/types/core/components/TagsInput.d.ts +0 -16
  2930. package/lib/types/core/components/TagsInput.d.ts.map +0 -1
  2931. package/lib/types/core/components/index.d.ts +0 -27
  2932. package/lib/types/core/components/index.d.ts.map +0 -1
  2933. package/lib/types/core/components/libs/utils.d.ts +0 -3
  2934. package/lib/types/core/components/libs/utils.d.ts.map +0 -1
  2935. package/lib/types/core/components/libs/visuallyHidden.d.ts +0 -7
  2936. package/lib/types/core/components/libs/visuallyHidden.d.ts.map +0 -1
  2937. package/lib/types/core/components/popup/Popup.d.ts +0 -26
  2938. package/lib/types/core/components/popup/Popup.d.ts.map +0 -1
  2939. package/lib/types/core/components/popup/PopupController.d.ts +0 -41
  2940. package/lib/types/core/components/popup/PopupController.d.ts.map +0 -1
  2941. package/lib/types/core/components/popup/index.d.ts +0 -4
  2942. package/lib/types/core/components/popup/index.d.ts.map +0 -1
  2943. package/lib/types/core/components/popup/position.d.ts.map +0 -1
  2944. package/lib/types/core/components/popup/utils.d.ts.map +0 -1
  2945. package/lib/types/core/components/shadcn/MessageBox.d.ts +0 -36
  2946. package/lib/types/core/components/shadcn/MessageBox.d.ts.map +0 -1
  2947. package/lib/types/core/components/shadcn/Panel.d.ts +0 -13
  2948. package/lib/types/core/components/shadcn/Panel.d.ts.map +0 -1
  2949. package/lib/types/core/components/shadcn/badge.d.ts +0 -21
  2950. package/lib/types/core/components/shadcn/badge.d.ts.map +0 -1
  2951. package/lib/types/core/components/shadcn/breadcrumb.d.ts +0 -15
  2952. package/lib/types/core/components/shadcn/breadcrumb.d.ts.map +0 -1
  2953. package/lib/types/core/components/shadcn/button.d.ts +0 -27
  2954. package/lib/types/core/components/shadcn/button.d.ts.map +0 -1
  2955. package/lib/types/core/components/shadcn/calendar.d.ts +0 -11
  2956. package/lib/types/core/components/shadcn/calendar.d.ts.map +0 -1
  2957. package/lib/types/core/components/shadcn/card.d.ts +0 -9
  2958. package/lib/types/core/components/shadcn/card.d.ts.map +0 -1
  2959. package/lib/types/core/components/shadcn/checkbox.d.ts +0 -5
  2960. package/lib/types/core/components/shadcn/checkbox.d.ts.map +0 -1
  2961. package/lib/types/core/components/shadcn/collaspible.d.ts +0 -6
  2962. package/lib/types/core/components/shadcn/collaspible.d.ts.map +0 -1
  2963. package/lib/types/core/components/shadcn/command.d.ts +0 -17
  2964. package/lib/types/core/components/shadcn/command.d.ts.map +0 -1
  2965. package/lib/types/core/components/shadcn/dropdown.d.ts +0 -52
  2966. package/lib/types/core/components/shadcn/dropdown.d.ts.map +0 -1
  2967. package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts +0 -9
  2968. package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts.map +0 -1
  2969. package/lib/types/core/components/shadcn/filters/animateChangeInHeight.d.ts.map +0 -1
  2970. package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts +0 -6
  2971. package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts.map +0 -1
  2972. package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts +0 -10
  2973. package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts.map +0 -1
  2974. package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts +0 -6
  2975. package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts.map +0 -1
  2976. package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts +0 -6
  2977. package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts.map +0 -1
  2978. package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts +0 -5
  2979. package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts.map +0 -1
  2980. package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts +0 -12
  2981. package/lib/types/core/components/shadcn/filters/filter/SelectFilter.d.ts.map +0 -1
  2982. package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts +0 -11
  2983. package/lib/types/core/components/shadcn/filters/filter/StringListFilter.d.ts.map +0 -1
  2984. package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts +0 -13
  2985. package/lib/types/core/components/shadcn/filters/filter/TextFilter.d.ts.map +0 -1
  2986. package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts +0 -14
  2987. package/lib/types/core/components/shadcn/filters/filter/dateFilter.d.ts.map +0 -1
  2988. package/lib/types/core/components/shadcn/filters/filter-styles.d.ts.map +0 -1
  2989. package/lib/types/core/components/shadcn/filters/filterBar.d.ts +0 -21
  2990. package/lib/types/core/components/shadcn/filters/filterBar.d.ts.map +0 -1
  2991. package/lib/types/core/components/shadcn/filters/filters.d.ts +0 -10
  2992. package/lib/types/core/components/shadcn/filters/filters.d.ts.map +0 -1
  2993. package/lib/types/core/components/shadcn/filters/index.d.ts.map +0 -1
  2994. package/lib/types/core/components/shadcn/filters/types.d.ts +0 -35
  2995. package/lib/types/core/components/shadcn/filters/types.d.ts.map +0 -1
  2996. package/lib/types/core/components/shadcn/heading.d.ts +0 -6
  2997. package/lib/types/core/components/shadcn/heading.d.ts.map +0 -1
  2998. package/lib/types/core/components/shadcn/index.d.ts +0 -29
  2999. package/lib/types/core/components/shadcn/index.d.ts.map +0 -1
  3000. package/lib/types/core/components/shadcn/input.d.ts +0 -17
  3001. package/lib/types/core/components/shadcn/input.d.ts.map +0 -1
  3002. package/lib/types/core/components/shadcn/label.d.ts +0 -10
  3003. package/lib/types/core/components/shadcn/label.d.ts.map +0 -1
  3004. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts +0 -12
  3005. package/lib/types/core/components/shadcn/modal/ConfirmModal.d.ts.map +0 -1
  3006. package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts +0 -11
  3007. package/lib/types/core/components/shadcn/modal/DeleteModal.d.ts.map +0 -1
  3008. package/lib/types/core/components/shadcn/modal/dialog.d.ts +0 -41
  3009. package/lib/types/core/components/shadcn/modal/dialog.d.ts.map +0 -1
  3010. package/lib/types/core/components/shadcn/modal/index.d.ts +0 -4
  3011. package/lib/types/core/components/shadcn/modal/index.d.ts.map +0 -1
  3012. package/lib/types/core/components/shadcn/popover.d.ts +0 -32
  3013. package/lib/types/core/components/shadcn/popover.d.ts.map +0 -1
  3014. package/lib/types/core/components/shadcn/radioGroup.d.ts +0 -26
  3015. package/lib/types/core/components/shadcn/radioGroup.d.ts.map +0 -1
  3016. package/lib/types/core/components/shadcn/resizeable.d.ts +0 -9
  3017. package/lib/types/core/components/shadcn/resizeable.d.ts.map +0 -1
  3018. package/lib/types/core/components/shadcn/selectBox.d.ts +0 -40
  3019. package/lib/types/core/components/shadcn/selectBox.d.ts.map +0 -1
  3020. package/lib/types/core/components/shadcn/separator.d.ts +0 -6
  3021. package/lib/types/core/components/shadcn/separator.d.ts.map +0 -1
  3022. package/lib/types/core/components/shadcn/switch.d.ts +0 -12
  3023. package/lib/types/core/components/shadcn/switch.d.ts.map +0 -1
  3024. package/lib/types/core/components/shadcn/tabs.d.ts +0 -49
  3025. package/lib/types/core/components/shadcn/tabs.d.ts.map +0 -1
  3026. package/lib/types/core/components/shadcn/text.d.ts +0 -11
  3027. package/lib/types/core/components/shadcn/text.d.ts.map +0 -1
  3028. package/lib/types/core/components/shadcn/textarea.d.ts +0 -8
  3029. package/lib/types/core/components/shadcn/textarea.d.ts.map +0 -1
  3030. package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts +0 -15
  3031. package/lib/types/core/components/shadcn/theme/ThemeProvider.d.ts.map +0 -1
  3032. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts +0 -16
  3033. package/lib/types/core/components/shadcn/theme/ThemeSwitcher.d.ts.map +0 -1
  3034. package/lib/types/core/components/shadcn/tooltip.d.ts +0 -21
  3035. package/lib/types/core/components/shadcn/tooltip.d.ts.map +0 -1
  3036. package/lib/types/core/components/styles.d.ts.map +0 -1
  3037. package/lib/types/core/components/table/index.d.ts +0 -19
  3038. package/lib/types/core/components/table/index.d.ts.map +0 -1
  3039. package/lib/types/core/components/toast/NotificationPanel.d.ts +0 -8
  3040. package/lib/types/core/components/toast/NotificationPanel.d.ts.map +0 -1
  3041. package/lib/types/core/components/toast/ToastContext.d.ts +0 -6
  3042. package/lib/types/core/components/toast/ToastContext.d.ts.map +0 -1
  3043. package/lib/types/core/components/toast/ToastProps.d.ts.map +0 -1
  3044. package/lib/types/core/components/toast/ToastProvider.d.ts +0 -6
  3045. package/lib/types/core/components/toast/ToastProvider.d.ts.map +0 -1
  3046. package/lib/types/core/components/toast/index.d.ts +0 -3
  3047. package/lib/types/core/components/toast/index.d.ts.map +0 -1
  3048. package/lib/types/core/hooks/CompositeState.d.ts +0 -137
  3049. package/lib/types/core/hooks/CompositeState.d.ts.map +0 -1
  3050. package/lib/types/core/hooks/PortalContainerProvider.d.ts +0 -8
  3051. package/lib/types/core/hooks/PortalContainerProvider.d.ts.map +0 -1
  3052. package/lib/types/core/hooks/SharedState.d.ts +0 -10
  3053. package/lib/types/core/hooks/SharedState.d.ts.map +0 -1
  3054. package/lib/types/core/hooks/index.d.ts +0 -16
  3055. package/lib/types/core/hooks/index.d.ts.map +0 -1
  3056. package/lib/types/core/hooks/useClickOutside.d.ts.map +0 -1
  3057. package/lib/types/core/hooks/useCopyToClipboard.d.ts.map +0 -1
  3058. package/lib/types/core/hooks/useDarkMode.d.ts.map +0 -1
  3059. package/lib/types/core/hooks/useDebounce.d.ts.map +0 -1
  3060. package/lib/types/core/hooks/useEventSource.d.ts +0 -2
  3061. package/lib/types/core/hooks/useEventSource.d.ts.map +0 -1
  3062. package/lib/types/core/hooks/useFetch.d.ts +0 -24
  3063. package/lib/types/core/hooks/useFetch.d.ts.map +0 -1
  3064. package/lib/types/core/hooks/useFlag.d.ts.map +0 -1
  3065. package/lib/types/core/hooks/useIntersectionObserver.d.ts +0 -14
  3066. package/lib/types/core/hooks/useIntersectionObserver.d.ts.map +0 -1
  3067. package/lib/types/core/hooks/useIsFistRendering.d.ts.map +0 -1
  3068. package/lib/types/core/hooks/useSafeLayoutEffect.d.ts +0 -4
  3069. package/lib/types/core/hooks/useSafeLayoutEffect.d.ts.map +0 -1
  3070. package/lib/types/core/hooks/useScrollableSearch.d.ts +0 -82
  3071. package/lib/types/core/hooks/useScrollableSearch.d.ts.map +0 -1
  3072. package/lib/types/core/hooks/useSharedValue.d.ts +0 -12
  3073. package/lib/types/core/hooks/useSharedValue.d.ts.map +0 -1
  3074. package/lib/types/core/index.d.ts +0 -4
  3075. package/lib/types/core/index.d.ts.map +0 -1
  3076. package/lib/types/core/utils/cn.d.ts +0 -3
  3077. package/lib/types/core/utils/cn.d.ts.map +0 -1
  3078. package/lib/types/core/utils/index.d.ts +0 -2
  3079. package/lib/types/core/utils/index.d.ts.map +0 -1
  3080. package/lib/types/env/index.d.ts +0 -85
  3081. package/lib/types/env/index.d.ts.map +0 -1
  3082. package/lib/types/features/activity-doc/ActivityDoc.d.ts +0 -14
  3083. package/lib/types/features/activity-doc/ActivityDoc.d.ts.map +0 -1
  3084. package/lib/types/features/activity-doc/index.d.ts +0 -2
  3085. package/lib/types/features/activity-doc/index.d.ts.map +0 -1
  3086. package/lib/types/features/agent/PayloadBuilder.d.ts +0 -120
  3087. package/lib/types/features/agent/PayloadBuilder.d.ts.map +0 -1
  3088. package/lib/types/features/agent/chat/AgentChart.d.ts +0 -34
  3089. package/lib/types/features/agent/chat/AgentChart.d.ts.map +0 -1
  3090. package/lib/types/features/agent/chat/AgentRightPanel.d.ts +0 -55
  3091. package/lib/types/features/agent/chat/AgentRightPanel.d.ts.map +0 -1
  3092. package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts +0 -38
  3093. package/lib/types/features/agent/chat/AnimatedThinkingDots.d.ts.map +0 -1
  3094. package/lib/types/features/agent/chat/ArtifactsTab.d.ts +0 -9
  3095. package/lib/types/features/agent/chat/ArtifactsTab.d.ts.map +0 -1
  3096. package/lib/types/features/agent/chat/AskUserWidget.d.ts +0 -84
  3097. package/lib/types/features/agent/chat/AskUserWidget.d.ts.map +0 -1
  3098. package/lib/types/features/agent/chat/DocumentPanel.d.ts +0 -16
  3099. package/lib/types/features/agent/chat/DocumentPanel.d.ts.map +0 -1
  3100. package/lib/types/features/agent/chat/DocumentTabBar.d.ts +0 -9
  3101. package/lib/types/features/agent/chat/DocumentTabBar.d.ts.map +0 -1
  3102. package/lib/types/features/agent/chat/ImageLightbox.d.ts +0 -18
  3103. package/lib/types/features/agent/chat/ImageLightbox.d.ts.map +0 -1
  3104. package/lib/types/features/agent/chat/JumpingDots.d.ts +0 -7
  3105. package/lib/types/features/agent/chat/JumpingDots.d.ts.map +0 -1
  3106. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts +0 -147
  3107. package/lib/types/features/agent/chat/ModernAgentConversation.d.ts.map +0 -1
  3108. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts +0 -68
  3109. package/lib/types/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +0 -1
  3110. package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts +0 -26
  3111. package/lib/types/features/agent/chat/ModernAgentOutput/BatchProgressPanel.d.ts.map +0 -1
  3112. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts +0 -33
  3113. package/lib/types/features/agent/chat/ModernAgentOutput/Header.d.ts.map +0 -1
  3114. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts +0 -11
  3115. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlideInPanel.d.ts.map +0 -1
  3116. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts +0 -18
  3117. package/lib/types/features/agent/chat/ModernAgentOutput/InlineSlidingPlanPanel.d.ts.map +0 -1
  3118. package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts +0 -62
  3119. package/lib/types/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +0 -1
  3120. package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts +0 -58
  3121. package/lib/types/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +0 -1
  3122. package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts +0 -15
  3123. package/lib/types/features/agent/chat/ModernAgentOutput/MessagesContainer.d.ts.map +0 -1
  3124. package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts +0 -9
  3125. package/lib/types/features/agent/chat/ModernAgentOutput/PlanPanel.d.ts.map +0 -1
  3126. package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts +0 -11
  3127. package/lib/types/features/agent/chat/ModernAgentOutput/SlideInPanel.d.ts.map +0 -1
  3128. package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts +0 -8
  3129. package/lib/types/features/agent/chat/ModernAgentOutput/SlidingMessages.d.ts.map +0 -1
  3130. package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts +0 -10
  3131. package/lib/types/features/agent/chat/ModernAgentOutput/SlidingPlanPanel.d.ts.map +0 -1
  3132. package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts +0 -8
  3133. package/lib/types/features/agent/chat/ModernAgentOutput/StackedMessages.d.ts.map +0 -1
  3134. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts +0 -38
  3135. package/lib/types/features/agent/chat/ModernAgentOutput/StreamingMessage.d.ts.map +0 -1
  3136. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts +0 -34
  3137. package/lib/types/features/agent/chat/ModernAgentOutput/ToolCallGroup.d.ts.map +0 -1
  3138. package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts +0 -22
  3139. package/lib/types/features/agent/chat/ModernAgentOutput/WorkstreamTabs.d.ts.map +0 -1
  3140. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +0 -139
  3141. package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts.map +0 -1
  3142. package/lib/types/features/agent/chat/SkillWidgetProvider.d.ts +0 -11
  3143. package/lib/types/features/agent/chat/SkillWidgetProvider.d.ts.map +0 -1
  3144. package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts +0 -18
  3145. package/lib/types/features/agent/chat/SlidingThinkingIndicator.d.ts.map +0 -1
  3146. package/lib/types/features/agent/chat/VegaLiteChart.d.ts +0 -18
  3147. package/lib/types/features/agent/chat/VegaLiteChart.d.ts.map +0 -1
  3148. package/lib/types/features/agent/chat/WaitingMessages.d.ts.map +0 -1
  3149. package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts +0 -22
  3150. package/lib/types/features/agent/chat/hooks/useAgentPlans.d.ts.map +0 -1
  3151. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts +0 -44
  3152. package/lib/types/features/agent/chat/hooks/useAgentStream.d.ts.map +0 -1
  3153. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts +0 -18
  3154. package/lib/types/features/agent/chat/hooks/useArtifacts.d.ts.map +0 -1
  3155. package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts +0 -23
  3156. package/lib/types/features/agent/chat/hooks/useDocumentPanel.d.ts.map +0 -1
  3157. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts +0 -27
  3158. package/lib/types/features/agent/chat/hooks/useFileProcessing.d.ts.map +0 -1
  3159. package/lib/types/features/agent/chat/index.d.ts +0 -21
  3160. package/lib/types/features/agent/chat/index.d.ts.map +0 -1
  3161. package/lib/types/features/agent/chat/types/document.d.ts.map +0 -1
  3162. package/lib/types/features/agent/chat/useArtifactUrlCache.d.ts +0 -28
  3163. package/lib/types/features/agent/chat/useArtifactUrlCache.d.ts.map +0 -1
  3164. package/lib/types/features/agent/index.d.ts +0 -3
  3165. package/lib/types/features/agent/index.d.ts.map +0 -1
  3166. package/lib/types/features/errors/PanelErrorBoundary.d.ts +0 -5
  3167. package/lib/types/features/errors/PanelErrorBoundary.d.ts.map +0 -1
  3168. package/lib/types/features/errors/RowErrorBoundary.d.ts +0 -8
  3169. package/lib/types/features/errors/RowErrorBoundary.d.ts.map +0 -1
  3170. package/lib/types/features/errors/VertesiaErrorBoundary.d.ts +0 -12
  3171. package/lib/types/features/errors/VertesiaErrorBoundary.d.ts.map +0 -1
  3172. package/lib/types/features/errors/WidgetErrorBoundary.d.ts +0 -5
  3173. package/lib/types/features/errors/WidgetErrorBoundary.d.ts.map +0 -1
  3174. package/lib/types/features/errors/index.d.ts +0 -5
  3175. package/lib/types/features/errors/index.d.ts.map +0 -1
  3176. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts +0 -17
  3177. package/lib/types/features/facets/AgentRunnerFacetsNav.d.ts.map +0 -1
  3178. package/lib/types/features/facets/CollectionsFacetsNav.d.ts +0 -14
  3179. package/lib/types/features/facets/CollectionsFacetsNav.d.ts.map +0 -1
  3180. package/lib/types/features/facets/DocumentsFacetsNav.d.ts +0 -12
  3181. package/lib/types/features/facets/DocumentsFacetsNav.d.ts.map +0 -1
  3182. package/lib/types/features/facets/EnvironmentFacet.d.ts +0 -10
  3183. package/lib/types/features/facets/EnvironmentFacet.d.ts.map +0 -1
  3184. package/lib/types/features/facets/InteractionsFacetsNav.d.ts +0 -13
  3185. package/lib/types/features/facets/InteractionsFacetsNav.d.ts.map +0 -1
  3186. package/lib/types/features/facets/PromptsFacetsNav.d.ts +0 -15
  3187. package/lib/types/features/facets/PromptsFacetsNav.d.ts.map +0 -1
  3188. package/lib/types/features/facets/RunsFacetsNav.d.ts +0 -22
  3189. package/lib/types/features/facets/RunsFacetsNav.d.ts.map +0 -1
  3190. package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts +0 -14
  3191. package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts.map +0 -1
  3192. package/lib/types/features/facets/index.d.ts +0 -17
  3193. package/lib/types/features/facets/index.d.ts.map +0 -1
  3194. package/lib/types/features/facets/utils/SearchInterface.d.ts +0 -16
  3195. package/lib/types/features/facets/utils/SearchInterface.d.ts.map +0 -1
  3196. package/lib/types/features/facets/utils/StringFacet.d.ts +0 -11
  3197. package/lib/types/features/facets/utils/StringFacet.d.ts.map +0 -1
  3198. package/lib/types/features/facets/utils/StringListFacet.d.ts +0 -11
  3199. package/lib/types/features/facets/utils/StringListFacet.d.ts.map +0 -1
  3200. package/lib/types/features/facets/utils/TypeFacet.d.ts +0 -16
  3201. package/lib/types/features/facets/utils/TypeFacet.d.ts.map +0 -1
  3202. package/lib/types/features/facets/utils/VEnvironmentFacet.d.ts +0 -12
  3203. package/lib/types/features/facets/utils/VEnvironmentFacet.d.ts.map +0 -1
  3204. package/lib/types/features/facets/utils/VInteractionFacet.d.ts +0 -15
  3205. package/lib/types/features/facets/utils/VInteractionFacet.d.ts.map +0 -1
  3206. package/lib/types/features/facets/utils/VStringFacet.d.ts +0 -21
  3207. package/lib/types/features/facets/utils/VStringFacet.d.ts.map +0 -1
  3208. package/lib/types/features/facets/utils/VTypeFacet.d.ts +0 -12
  3209. package/lib/types/features/facets/utils/VTypeFacet.d.ts.map +0 -1
  3210. package/lib/types/features/facets/utils/VUserFacet.d.ts +0 -11
  3211. package/lib/types/features/facets/utils/VUserFacet.d.ts.map +0 -1
  3212. package/lib/types/features/facets/utils/utils.d.ts +0 -4
  3213. package/lib/types/features/facets/utils/utils.d.ts.map +0 -1
  3214. package/lib/types/features/index.d.ts +0 -13
  3215. package/lib/types/features/index.d.ts.map +0 -1
  3216. package/lib/types/features/layout/GenericPageNavHeader.d.ts +0 -14
  3217. package/lib/types/features/layout/GenericPageNavHeader.d.ts.map +0 -1
  3218. package/lib/types/features/layout/NotFoundView.d.ts +0 -5
  3219. package/lib/types/features/layout/NotFoundView.d.ts.map +0 -1
  3220. package/lib/types/features/layout/index.d.ts +0 -3
  3221. package/lib/types/features/layout/index.d.ts.map +0 -1
  3222. package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts +0 -13
  3223. package/lib/types/features/magic-pdf/AnnotatedImageSlider.d.ts.map +0 -1
  3224. package/lib/types/features/magic-pdf/DownloadPopover.d.ts +0 -7
  3225. package/lib/types/features/magic-pdf/DownloadPopover.d.ts.map +0 -1
  3226. package/lib/types/features/magic-pdf/ExtractedContentView.d.ts +0 -8
  3227. package/lib/types/features/magic-pdf/ExtractedContentView.d.ts.map +0 -1
  3228. package/lib/types/features/magic-pdf/MagicPdfProvider.d.ts +0 -58
  3229. package/lib/types/features/magic-pdf/MagicPdfProvider.d.ts.map +0 -1
  3230. package/lib/types/features/magic-pdf/MagicPdfView.d.ts +0 -7
  3231. package/lib/types/features/magic-pdf/MagicPdfView.d.ts.map +0 -1
  3232. package/lib/types/features/magic-pdf/index.d.ts +0 -2
  3233. package/lib/types/features/magic-pdf/index.d.ts.map +0 -1
  3234. package/lib/types/features/magic-pdf/types.d.ts +0 -2
  3235. package/lib/types/features/magic-pdf/types.d.ts.map +0 -1
  3236. package/lib/types/features/oauth/OAuthProviderConnectButton.d.ts +0 -11
  3237. package/lib/types/features/oauth/OAuthProviderConnectButton.d.ts.map +0 -1
  3238. package/lib/types/features/oauth/RemoteMcpConnectionButton.d.ts +0 -25
  3239. package/lib/types/features/oauth/RemoteMcpConnectionButton.d.ts.map +0 -1
  3240. package/lib/types/features/oauth/index.d.ts.map +0 -1
  3241. package/lib/types/features/oauth/useOAuthPopup.d.ts.map +0 -1
  3242. package/lib/types/features/pdf-viewer/PdfPageRenderer.d.ts +0 -83
  3243. package/lib/types/features/pdf-viewer/PdfPageRenderer.d.ts.map +0 -1
  3244. package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts +0 -29
  3245. package/lib/types/features/pdf-viewer/PdfPageSlider.d.ts.map +0 -1
  3246. package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts +0 -19
  3247. package/lib/types/features/pdf-viewer/SimplePdfViewer.d.ts.map +0 -1
  3248. package/lib/types/features/pdf-viewer/index.d.ts.map +0 -1
  3249. package/lib/types/features/permissions/SecureButton.d.ts +0 -8
  3250. package/lib/types/features/permissions/SecureButton.d.ts.map +0 -1
  3251. package/lib/types/features/permissions/SecureSidebarItem.d.ts +0 -8
  3252. package/lib/types/features/permissions/SecureSidebarItem.d.ts.map +0 -1
  3253. package/lib/types/features/permissions/UserPermissionsProvider.d.ts +0 -21
  3254. package/lib/types/features/permissions/UserPermissionsProvider.d.ts.map +0 -1
  3255. package/lib/types/features/permissions/helpers.d.ts +0 -5
  3256. package/lib/types/features/permissions/helpers.d.ts.map +0 -1
  3257. package/lib/types/features/permissions/index.d.ts +0 -5
  3258. package/lib/types/features/permissions/index.d.ts.map +0 -1
  3259. package/lib/types/features/store/collections/BrowseCollectionView.d.ts +0 -7
  3260. package/lib/types/features/store/collections/BrowseCollectionView.d.ts.map +0 -1
  3261. package/lib/types/features/store/collections/CollectionsTable.d.ts +0 -10
  3262. package/lib/types/features/store/collections/CollectionsTable.d.ts.map +0 -1
  3263. package/lib/types/features/store/collections/CreateCollection.d.ts +0 -13
  3264. package/lib/types/features/store/collections/CreateCollection.d.ts.map +0 -1
  3265. package/lib/types/features/store/collections/EditCollectionView.d.ts +0 -8
  3266. package/lib/types/features/store/collections/EditCollectionView.d.ts.map +0 -1
  3267. package/lib/types/features/store/collections/SelectCollection.d.ts +0 -20
  3268. package/lib/types/features/store/collections/SelectCollection.d.ts.map +0 -1
  3269. package/lib/types/features/store/collections/SharedPropsEditor.d.ts +0 -7
  3270. package/lib/types/features/store/collections/SharedPropsEditor.d.ts.map +0 -1
  3271. package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts +0 -7
  3272. package/lib/types/features/store/collections/SyncMemberHeadsToggle.d.ts.map +0 -1
  3273. package/lib/types/features/store/collections/index.d.ts +0 -8
  3274. package/lib/types/features/store/collections/index.d.ts.map +0 -1
  3275. package/lib/types/features/store/index.d.ts +0 -4
  3276. package/lib/types/features/store/index.d.ts.map +0 -1
  3277. package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts +0 -8
  3278. package/lib/types/features/store/objects/DocumentPreviewPanel.d.ts.map +0 -1
  3279. package/lib/types/features/store/objects/DocumentSearchResults.d.ts +0 -20
  3280. package/lib/types/features/store/objects/DocumentSearchResults.d.ts.map +0 -1
  3281. package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts +0 -33
  3282. package/lib/types/features/store/objects/DocumentSelectionProvider.d.ts.map +0 -1
  3283. package/lib/types/features/store/objects/DocumentTable.d.ts +0 -25
  3284. package/lib/types/features/store/objects/DocumentTable.d.ts.map +0 -1
  3285. package/lib/types/features/store/objects/ExportPropertiesModal.d.ts +0 -12
  3286. package/lib/types/features/store/objects/ExportPropertiesModal.d.ts.map +0 -1
  3287. package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts +0 -9
  3288. package/lib/types/features/store/objects/components/ContentDispositionButton.d.ts.map +0 -1
  3289. package/lib/types/features/store/objects/components/ContentOverview.d.ts +0 -9
  3290. package/lib/types/features/store/objects/components/ContentOverview.d.ts.map +0 -1
  3291. package/lib/types/features/store/objects/components/DocumentIcon.d.ts +0 -19
  3292. package/lib/types/features/store/objects/components/DocumentIcon.d.ts.map +0 -1
  3293. package/lib/types/features/store/objects/components/DocumentInput.d.ts +0 -8
  3294. package/lib/types/features/store/objects/components/DocumentInput.d.ts.map +0 -1
  3295. package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts +0 -9
  3296. package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts.map +0 -1
  3297. package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts +0 -9
  3298. package/lib/types/features/store/objects/components/SaveVersionConfirmModal.d.ts.map +0 -1
  3299. package/lib/types/features/store/objects/components/SelectDocument.d.ts +0 -11
  3300. package/lib/types/features/store/objects/components/SelectDocument.d.ts.map +0 -1
  3301. package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts +0 -9
  3302. package/lib/types/features/store/objects/components/SelectDocumentModal.d.ts.map +0 -1
  3303. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts +0 -10
  3304. package/lib/types/features/store/objects/components/TextEditorPanel.d.ts.map +0 -1
  3305. package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts +0 -12
  3306. package/lib/types/features/store/objects/components/VectorSearchWidget.d.ts.map +0 -1
  3307. package/lib/types/features/store/objects/components/index.d.ts +0 -10
  3308. package/lib/types/features/store/objects/components/index.d.ts.map +0 -1
  3309. package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts +0 -30
  3310. package/lib/types/features/store/objects/components/useContentPanelHooks.d.ts.map +0 -1
  3311. package/lib/types/features/store/objects/components/useDownloadFile.d.ts +0 -35
  3312. package/lib/types/features/store/objects/components/useDownloadFile.d.ts.map +0 -1
  3313. package/lib/types/features/store/objects/index.d.ts +0 -11
  3314. package/lib/types/features/store/objects/index.d.ts.map +0 -1
  3315. package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts +0 -18
  3316. package/lib/types/features/store/objects/layout/DocumentTableColumn.d.ts.map +0 -1
  3317. package/lib/types/features/store/objects/layout/documentLayout.d.ts +0 -21
  3318. package/lib/types/features/store/objects/layout/documentLayout.d.ts.map +0 -1
  3319. package/lib/types/features/store/objects/layout/index.d.ts +0 -3
  3320. package/lib/types/features/store/objects/layout/index.d.ts.map +0 -1
  3321. package/lib/types/features/store/objects/layout/renderers.d.ts +0 -3
  3322. package/lib/types/features/store/objects/layout/renderers.d.ts.map +0 -1
  3323. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts +0 -52
  3324. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts.map +0 -1
  3325. package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts +0 -14
  3326. package/lib/types/features/store/objects/search/DocumentSearchProvider.d.ts.map +0 -1
  3327. package/lib/types/features/store/objects/search/index.d.ts +0 -3
  3328. package/lib/types/features/store/objects/search/index.d.ts.map +0 -1
  3329. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts +0 -9
  3330. package/lib/types/features/store/objects/selection/ObjectsActionContext.d.ts.map +0 -1
  3331. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts +0 -16
  3332. package/lib/types/features/store/objects/selection/ObjectsActionContextClass.d.ts.map +0 -1
  3333. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts +0 -7
  3334. package/lib/types/features/store/objects/selection/ObjectsActionHooks.d.ts.map +0 -1
  3335. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts +0 -32
  3336. package/lib/types/features/store/objects/selection/ObjectsActionSpec.d.ts.map +0 -1
  3337. package/lib/types/features/store/objects/selection/SelectionActions.d.ts +0 -11
  3338. package/lib/types/features/store/objects/selection/SelectionActions.d.ts.map +0 -1
  3339. package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts +0 -4
  3340. package/lib/types/features/store/objects/selection/actions/AddToCollectionAction.d.ts.map +0 -1
  3341. package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts +0 -4
  3342. package/lib/types/features/store/objects/selection/actions/ChangeTypeAction.d.ts.map +0 -1
  3343. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts +0 -16
  3344. package/lib/types/features/store/objects/selection/actions/ConfirmAction.d.ts.map +0 -1
  3345. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +0 -5
  3346. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts.map +0 -1
  3347. package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts +0 -4
  3348. package/lib/types/features/store/objects/selection/actions/ExportPropertiesAction.d.ts.map +0 -1
  3349. package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts +0 -4
  3350. package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts.map +0 -1
  3351. package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts +0 -4
  3352. package/lib/types/features/store/objects/selection/actions/StartWorkflowComponent.d.ts.map +0 -1
  3353. package/lib/types/features/store/objects/selection/actions/index.d.ts +0 -8
  3354. package/lib/types/features/store/objects/selection/actions/index.d.ts.map +0 -1
  3355. package/lib/types/features/store/objects/selection/index.d.ts +0 -5
  3356. package/lib/types/features/store/objects/selection/index.d.ts.map +0 -1
  3357. package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts +0 -39
  3358. package/lib/types/features/store/objects/upload/DocumentUploadModal.d.ts.map +0 -1
  3359. package/lib/types/features/store/objects/upload/index.d.ts +0 -4
  3360. package/lib/types/features/store/objects/upload/index.d.ts.map +0 -1
  3361. package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts +0 -30
  3362. package/lib/types/features/store/objects/upload/useSmartFileUploadProcessing.d.ts.map +0 -1
  3363. package/lib/types/features/store/objects/upload/useUploadHandler.d.ts +0 -50
  3364. package/lib/types/features/store/objects/upload/useUploadHandler.d.ts.map +0 -1
  3365. package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts +0 -6
  3366. package/lib/types/features/store/types/ContentObjectTypesSearch.d.ts.map +0 -1
  3367. package/lib/types/features/store/types/ContentObjectTypesTable.d.ts +0 -8
  3368. package/lib/types/features/store/types/ContentObjectTypesTable.d.ts.map +0 -1
  3369. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts +0 -16
  3370. package/lib/types/features/store/types/CreateOrUpdateTypeModal.d.ts.map +0 -1
  3371. package/lib/types/features/store/types/ObjectSchemaEditor.d.ts +0 -9
  3372. package/lib/types/features/store/types/ObjectSchemaEditor.d.ts.map +0 -1
  3373. package/lib/types/features/store/types/SelectContentType.d.ts +0 -11
  3374. package/lib/types/features/store/types/SelectContentType.d.ts.map +0 -1
  3375. package/lib/types/features/store/types/SelectContentTypeModal.d.ts +0 -33
  3376. package/lib/types/features/store/types/SelectContentTypeModal.d.ts.map +0 -1
  3377. package/lib/types/features/store/types/TableLayoutEditor.d.ts +0 -10
  3378. package/lib/types/features/store/types/TableLayoutEditor.d.ts.map +0 -1
  3379. package/lib/types/features/store/types/TypeRegistry.d.ts +0 -10
  3380. package/lib/types/features/store/types/TypeRegistry.d.ts.map +0 -1
  3381. package/lib/types/features/store/types/TypeRegistryProvider.d.ts +0 -15
  3382. package/lib/types/features/store/types/TypeRegistryProvider.d.ts.map +0 -1
  3383. package/lib/types/features/store/types/index.d.ts +0 -11
  3384. package/lib/types/features/store/types/index.d.ts.map +0 -1
  3385. package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts +0 -36
  3386. package/lib/types/features/store/types/search/ObjectTypeSearchContext.d.ts.map +0 -1
  3387. package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts +0 -11
  3388. package/lib/types/features/store/types/search/ObjectTypeSearchProvider.d.ts.map +0 -1
  3389. package/lib/types/features/store/types/search/index.d.ts +0 -3
  3390. package/lib/types/features/store/types/search/index.d.ts.map +0 -1
  3391. package/lib/types/features/user/UserAvatar.d.ts +0 -9
  3392. package/lib/types/features/user/UserAvatar.d.ts.map +0 -1
  3393. package/lib/types/features/user/UserInfo.d.ts +0 -60
  3394. package/lib/types/features/user/UserInfo.d.ts.map +0 -1
  3395. package/lib/types/features/user/index.d.ts +0 -3
  3396. package/lib/types/features/user/index.d.ts.map +0 -1
  3397. package/lib/types/features/utils/index.d.ts +0 -6
  3398. package/lib/types/features/utils/index.d.ts.map +0 -1
  3399. package/lib/types/features/utils/mimeType.d.ts.map +0 -1
  3400. package/lib/types/features/utils/print.d.ts.map +0 -1
  3401. package/lib/types/features/utils/rendition.d.ts +0 -4
  3402. package/lib/types/features/utils/rendition.d.ts.map +0 -1
  3403. package/lib/types/features/utils/text.d.ts.map +0 -1
  3404. package/lib/types/features/utils/workflowStatus.d.ts +0 -10
  3405. package/lib/types/features/utils/workflowStatus.d.ts.map +0 -1
  3406. package/lib/types/i18n/index.d.ts +0 -14
  3407. package/lib/types/i18n/index.d.ts.map +0 -1
  3408. package/lib/types/i18n/instance.d.ts.map +0 -1
  3409. package/lib/types/layout/AppLayout.d.ts +0 -13
  3410. package/lib/types/layout/AppLayout.d.ts.map +0 -1
  3411. package/lib/types/layout/FullHeightLayout.d.ts +0 -31
  3412. package/lib/types/layout/FullHeightLayout.d.ts.map +0 -1
  3413. package/lib/types/layout/Navbar.d.ts +0 -33
  3414. package/lib/types/layout/Navbar.d.ts.map +0 -1
  3415. package/lib/types/layout/RegionTag.d.ts +0 -4
  3416. package/lib/types/layout/RegionTag.d.ts.map +0 -1
  3417. package/lib/types/layout/Sidebar.d.ts +0 -34
  3418. package/lib/types/layout/Sidebar.d.ts.map +0 -1
  3419. package/lib/types/layout/SidebarContext.d.ts.map +0 -1
  3420. package/lib/types/layout/TitleBar.d.ts +0 -6
  3421. package/lib/types/layout/TitleBar.d.ts.map +0 -1
  3422. package/lib/types/layout/index.d.ts +0 -8
  3423. package/lib/types/layout/index.d.ts.map +0 -1
  3424. package/lib/types/router/FixLinks.d.ts +0 -7
  3425. package/lib/types/router/FixLinks.d.ts.map +0 -1
  3426. package/lib/types/router/HistoryNavigator.d.ts +0 -59
  3427. package/lib/types/router/HistoryNavigator.d.ts.map +0 -1
  3428. package/lib/types/router/Nav.d.ts +0 -39
  3429. package/lib/types/router/Nav.d.ts.map +0 -1
  3430. package/lib/types/router/NestedNavigationContext.d.ts +0 -9
  3431. package/lib/types/router/NestedNavigationContext.d.ts.map +0 -1
  3432. package/lib/types/router/NestedRouterProvider.d.ts +0 -14
  3433. package/lib/types/router/NestedRouterProvider.d.ts.map +0 -1
  3434. package/lib/types/router/PathMatcher.d.ts +0 -36
  3435. package/lib/types/router/PathMatcher.d.ts.map +0 -1
  3436. package/lib/types/router/PathWithParams.d.ts.map +0 -1
  3437. package/lib/types/router/Route404.d.ts +0 -4
  3438. package/lib/types/router/Route404.d.ts.map +0 -1
  3439. package/lib/types/router/RouteComponent.d.ts +0 -6
  3440. package/lib/types/router/RouteComponent.d.ts.map +0 -1
  3441. package/lib/types/router/Router.d.ts +0 -76
  3442. package/lib/types/router/Router.d.ts.map +0 -1
  3443. package/lib/types/router/RouterProvider.d.ts +0 -15
  3444. package/lib/types/router/RouterProvider.d.ts.map +0 -1
  3445. package/lib/types/router/index.d.ts +0 -11
  3446. package/lib/types/router/index.d.ts.map +0 -1
  3447. package/lib/types/router/path.d.ts.map +0 -1
  3448. package/lib/types/session/UserSession.d.ts +0 -37
  3449. package/lib/types/session/UserSession.d.ts.map +0 -1
  3450. package/lib/types/session/UserSessionProvider.d.ts +0 -7
  3451. package/lib/types/session/UserSessionProvider.d.ts.map +0 -1
  3452. package/lib/types/session/auth/composable.d.ts +0 -30
  3453. package/lib/types/session/auth/composable.d.ts.map +0 -1
  3454. package/lib/types/session/auth/domainRouting.d.ts.map +0 -1
  3455. package/lib/types/session/auth/firebase.d.ts +0 -10
  3456. package/lib/types/session/auth/firebase.d.ts.map +0 -1
  3457. package/lib/types/session/auth/useAuthState.d.ts.map +0 -1
  3458. package/lib/types/session/auth/useCurrentTenant.d.ts.map +0 -1
  3459. package/lib/types/session/constants.d.ts.map +0 -1
  3460. package/lib/types/session/index.d.ts +0 -8
  3461. package/lib/types/session/index.d.ts.map +0 -1
  3462. package/lib/types/session/useUXTracking.d.ts +0 -6
  3463. package/lib/types/session/useUXTracking.d.ts.map +0 -1
  3464. package/lib/types/shell/SplashScreen.d.ts +0 -7
  3465. package/lib/types/shell/SplashScreen.d.ts.map +0 -1
  3466. package/lib/types/shell/VertesiaShell.d.ts +0 -10
  3467. package/lib/types/shell/VertesiaShell.d.ts.map +0 -1
  3468. package/lib/types/shell/apps/AppInstallationProvider.d.ts +0 -12
  3469. package/lib/types/shell/apps/AppInstallationProvider.d.ts.map +0 -1
  3470. package/lib/types/shell/apps/AppProjectSelector.d.ts +0 -12
  3471. package/lib/types/shell/apps/AppProjectSelector.d.ts.map +0 -1
  3472. package/lib/types/shell/apps/StandaloneApp.d.ts +0 -23
  3473. package/lib/types/shell/apps/StandaloneApp.d.ts.map +0 -1
  3474. package/lib/types/shell/apps/index.d.ts +0 -4
  3475. package/lib/types/shell/apps/index.d.ts.map +0 -1
  3476. package/lib/types/shell/index.d.ts +0 -8
  3477. package/lib/types/shell/index.d.ts.map +0 -1
  3478. package/lib/types/shell/login/EnterpriseSigninButton.d.ts +0 -6
  3479. package/lib/types/shell/login/EnterpriseSigninButton.d.ts.map +0 -1
  3480. package/lib/types/shell/login/GitHubSignInButton.d.ts +0 -6
  3481. package/lib/types/shell/login/GitHubSignInButton.d.ts.map +0 -1
  3482. package/lib/types/shell/login/GoogleSignInButton.d.ts +0 -6
  3483. package/lib/types/shell/login/GoogleSignInButton.d.ts.map +0 -1
  3484. package/lib/types/shell/login/InviteAcceptModal.d.ts +0 -2
  3485. package/lib/types/shell/login/InviteAcceptModal.d.ts.map +0 -1
  3486. package/lib/types/shell/login/MicrosoftSigninButton.d.ts +0 -6
  3487. package/lib/types/shell/login/MicrosoftSigninButton.d.ts.map +0 -1
  3488. package/lib/types/shell/login/PreviewIcon.d.ts +0 -6
  3489. package/lib/types/shell/login/PreviewIcon.d.ts.map +0 -1
  3490. package/lib/types/shell/login/SignInModal.d.ts +0 -7
  3491. package/lib/types/shell/login/SignInModal.d.ts.map +0 -1
  3492. package/lib/types/shell/login/SigninScreen.d.ts +0 -9
  3493. package/lib/types/shell/login/SigninScreen.d.ts.map +0 -1
  3494. package/lib/types/shell/login/SignupForm.d.ts +0 -8
  3495. package/lib/types/shell/login/SignupForm.d.ts.map +0 -1
  3496. package/lib/types/shell/login/TerminalLogin.d.ts +0 -2
  3497. package/lib/types/shell/login/TerminalLogin.d.ts.map +0 -1
  3498. package/lib/types/shell/login/UserInfo.d.ts +0 -6
  3499. package/lib/types/shell/login/UserInfo.d.ts.map +0 -1
  3500. package/lib/types/shell/login/UserSessionMenu.d.ts +0 -9
  3501. package/lib/types/shell/login/UserSessionMenu.d.ts.map +0 -1
  3502. package/lib/types/shell/utils.d.ts.map +0 -1
  3503. package/lib/types/widgets/Progress.d.ts +0 -6
  3504. package/lib/types/widgets/Progress.d.ts.map +0 -1
  3505. package/lib/types/widgets/SvgIcon.d.ts +0 -7
  3506. package/lib/types/widgets/SvgIcon.d.ts.map +0 -1
  3507. package/lib/types/widgets/form/Form.d.ts +0 -22
  3508. package/lib/types/widgets/form/Form.d.ts.map +0 -1
  3509. package/lib/types/widgets/form/FormContext.d.ts +0 -20
  3510. package/lib/types/widgets/form/FormContext.d.ts.map +0 -1
  3511. package/lib/types/widgets/form/ManagedObject.d.ts +0 -82
  3512. package/lib/types/widgets/form/ManagedObject.d.ts.map +0 -1
  3513. package/lib/types/widgets/form/fields.d.ts +0 -16
  3514. package/lib/types/widgets/form/fields.d.ts.map +0 -1
  3515. package/lib/types/widgets/form/index.d.ts +0 -7
  3516. package/lib/types/widgets/form/index.d.ts.map +0 -1
  3517. package/lib/types/widgets/form/inputs.d.ts +0 -8
  3518. package/lib/types/widgets/form/inputs.d.ts.map +0 -1
  3519. package/lib/types/widgets/form/schema.d.ts +0 -47
  3520. package/lib/types/widgets/form/schema.d.ts.map +0 -1
  3521. package/lib/types/widgets/index.d.ts +0 -11
  3522. package/lib/types/widgets/index.d.ts.map +0 -1
  3523. package/lib/types/widgets/json-view/JSONCode.d.ts +0 -5
  3524. package/lib/types/widgets/json-view/JSONCode.d.ts.map +0 -1
  3525. package/lib/types/widgets/json-view/JSONDisplay.d.ts +0 -8
  3526. package/lib/types/widgets/json-view/JSONDisplay.d.ts.map +0 -1
  3527. package/lib/types/widgets/json-view/JSONSwitcher.d.ts +0 -6
  3528. package/lib/types/widgets/json-view/JSONSwitcher.d.ts.map +0 -1
  3529. package/lib/types/widgets/json-view/JSONView.d.ts +0 -7
  3530. package/lib/types/widgets/json-view/JSONView.d.ts.map +0 -1
  3531. package/lib/types/widgets/json-view/index.d.ts +0 -6
  3532. package/lib/types/widgets/json-view/index.d.ts.map +0 -1
  3533. package/lib/types/widgets/json-view/types.d.ts.map +0 -1
  3534. package/lib/types/widgets/markdown/ArtifactContentRenderer.d.ts.map +0 -1
  3535. package/lib/types/widgets/markdown/CodeBlockContext.d.ts +0 -21
  3536. package/lib/types/widgets/markdown/CodeBlockContext.d.ts.map +0 -1
  3537. package/lib/types/widgets/markdown/CodeBlockPlaceholder.d.ts +0 -42
  3538. package/lib/types/widgets/markdown/CodeBlockPlaceholder.d.ts.map +0 -1
  3539. package/lib/types/widgets/markdown/CodeBlockPlaceholder.test.d.ts +0 -2
  3540. package/lib/types/widgets/markdown/CodeBlockPlaceholder.test.d.ts.map +0 -1
  3541. package/lib/types/widgets/markdown/CodeBlockRendering.d.ts +0 -23
  3542. package/lib/types/widgets/markdown/CodeBlockRendering.d.ts.map +0 -1
  3543. package/lib/types/widgets/markdown/MarkdownFigure.d.ts +0 -15
  3544. package/lib/types/widgets/markdown/MarkdownFigure.d.ts.map +0 -1
  3545. package/lib/types/widgets/markdown/MarkdownImage.d.ts +0 -16
  3546. package/lib/types/widgets/markdown/MarkdownImage.d.ts.map +0 -1
  3547. package/lib/types/widgets/markdown/MarkdownLink.d.ts +0 -17
  3548. package/lib/types/widgets/markdown/MarkdownLink.d.ts.map +0 -1
  3549. package/lib/types/widgets/markdown/MarkdownRenderer.d.ts +0 -26
  3550. package/lib/types/widgets/markdown/MarkdownRenderer.d.ts.map +0 -1
  3551. package/lib/types/widgets/markdown/MermaidDiagram.d.ts +0 -23
  3552. package/lib/types/widgets/markdown/MermaidDiagram.d.ts.map +0 -1
  3553. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts +0 -57
  3554. package/lib/types/widgets/markdown/codeBlockHandlers.d.ts.map +0 -1
  3555. package/lib/types/widgets/markdown/codeBlockHandlers.test.d.ts +0 -2
  3556. package/lib/types/widgets/markdown/codeBlockHandlers.test.d.ts.map +0 -1
  3557. package/lib/types/widgets/markdown/index.d.ts +0 -13
  3558. package/lib/types/widgets/markdown/index.d.ts.map +0 -1
  3559. package/lib/types/widgets/markdown/normalizeCustomSchemeLinks.d.ts.map +0 -1
  3560. package/lib/types/widgets/markdown/normalizeDirectives.d.ts.map +0 -1
  3561. package/lib/types/widgets/markdown/preprocessMathDelimiters.d.ts.map +0 -1
  3562. package/lib/types/widgets/markdown/remarkDirectiveHandler.d.ts +0 -2
  3563. package/lib/types/widgets/markdown/remarkDirectiveHandler.d.ts.map +0 -1
  3564. package/lib/types/widgets/markdown/useArtifactContent.d.ts.map +0 -1
  3565. package/lib/types/widgets/markdown/useResolvedUrl.d.ts.map +0 -1
  3566. package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts +0 -40
  3567. package/lib/types/widgets/monacoEditor/MonacoEditor.d.ts.map +0 -1
  3568. package/lib/types/widgets/monacoEditor/foldingProviders.d.ts.map +0 -1
  3569. package/lib/types/widgets/monacoEditor/index.d.ts +0 -3
  3570. package/lib/types/widgets/monacoEditor/index.d.ts.map +0 -1
  3571. package/lib/types/widgets/properties/PropertiesView.d.ts +0 -11
  3572. package/lib/types/widgets/properties/PropertiesView.d.ts.map +0 -1
  3573. package/lib/types/widgets/properties/index.d.ts +0 -2
  3574. package/lib/types/widgets/properties/index.d.ts.map +0 -1
  3575. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts +0 -75
  3576. package/lib/types/widgets/schema-editor/ManagedSchema.d.ts.map +0 -1
  3577. package/lib/types/widgets/schema-editor/editor/Editable.d.ts +0 -40
  3578. package/lib/types/widgets/schema-editor/editor/Editable.d.ts.map +0 -1
  3579. package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +0 -8
  3580. package/lib/types/widgets/schema-editor/editor/EditableSchemaProperty.d.ts.map +0 -1
  3581. package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts +0 -5
  3582. package/lib/types/widgets/schema-editor/editor/PropertyEditor.d.ts.map +0 -1
  3583. package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts +0 -4
  3584. package/lib/types/widgets/schema-editor/editor/PropertyViewer.d.ts.map +0 -1
  3585. package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts +0 -3
  3586. package/lib/types/widgets/schema-editor/editor/SchemaContext.d.ts.map +0 -1
  3587. package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts +0 -9
  3588. package/lib/types/widgets/schema-editor/editor/SchemaEditor.d.ts.map +0 -1
  3589. package/lib/types/widgets/schema-editor/index.d.ts +0 -7
  3590. package/lib/types/widgets/schema-editor/index.d.ts.map +0 -1
  3591. package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts +0 -16
  3592. package/lib/types/widgets/schema-editor/json-schema4-utils.d.ts.map +0 -1
  3593. package/lib/types/widgets/schema-editor/type-signature.d.ts.map +0 -1
  3594. package/lib/types/widgets/upload/DropZone.d.ts +0 -41
  3595. package/lib/types/widgets/upload/DropZone.d.ts.map +0 -1
  3596. package/lib/types/widgets/upload/UploadResultCategory.d.ts +0 -26
  3597. package/lib/types/widgets/upload/UploadResultCategory.d.ts.map +0 -1
  3598. package/lib/types/widgets/upload/UploadSummary.d.ts +0 -38
  3599. package/lib/types/widgets/upload/UploadSummary.d.ts.map +0 -1
  3600. package/lib/types/widgets/upload/index.d.ts.map +0 -1
  3601. package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts +0 -6
  3602. package/lib/types/widgets/xml-viewer/components/Attributes/index.d.ts.map +0 -1
  3603. package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts +0 -8
  3604. package/lib/types/widgets/xml-viewer/components/CDataTag/index.d.ts.map +0 -1
  3605. package/lib/types/widgets/xml-viewer/components/CollapseIcon/index.d.ts.map +0 -1
  3606. package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts +0 -9
  3607. package/lib/types/widgets/xml-viewer/components/CommentTag/index.d.ts.map +0 -1
  3608. package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts +0 -8
  3609. package/lib/types/widgets/xml-viewer/components/DeclarationTag/index.d.ts.map +0 -1
  3610. package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts +0 -8
  3611. package/lib/types/widgets/xml-viewer/components/Elements/index.d.ts.map +0 -1
  3612. package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts +0 -2
  3613. package/lib/types/widgets/xml-viewer/components/InvalidXml/index.d.ts.map +0 -1
  3614. package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts +0 -13
  3615. package/lib/types/widgets/xml-viewer/components/Tag/index.d.ts.map +0 -1
  3616. package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts +0 -8
  3617. package/lib/types/widgets/xml-viewer/components/TextElement/index.d.ts.map +0 -1
  3618. package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts +0 -3
  3619. package/lib/types/widgets/xml-viewer/components/XMLViewer.d.ts.map +0 -1
  3620. package/lib/types/widgets/xml-viewer/components/types.d.ts.map +0 -1
  3621. package/lib/types/widgets/xml-viewer/constants/index.d.ts.map +0 -1
  3622. package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts +0 -4
  3623. package/lib/types/widgets/xml-viewer/context/xml-viewer-context.d.ts.map +0 -1
  3624. package/lib/types/widgets/xml-viewer/helpers/index.d.ts +0 -13
  3625. package/lib/types/widgets/xml-viewer/helpers/index.d.ts.map +0 -1
  3626. package/lib/types/widgets/xml-viewer/hooks/useCollapsible.d.ts.map +0 -1
  3627. package/lib/types/widgets/xml-viewer/hooks/useXMLViewer.d.ts.map +0 -1
  3628. package/lib/types/widgets/xml-viewer/index.d.ts +0 -3
  3629. package/lib/types/widgets/xml-viewer/index.d.ts.map +0 -1
  3630. package/lib/types/widgets/xml-viewer/types/index.d.ts +0 -16
  3631. package/lib/types/widgets/xml-viewer/types/index.d.ts.map +0 -1
  3632. package/src/shell/login/EnterpriseSigninButton.tsx +0 -111
  3633. package/src/shell/login/GitHubSignInButton.tsx +0 -36
  3634. package/src/shell/login/GoogleSignInButton.tsx +0 -38
  3635. package/src/shell/login/MicrosoftSigninButton.tsx +0 -28
  3636. /package/lib/{types/core → core}/components/popup/position.d.ts +0 -0
  3637. /package/lib/{types/core → core}/components/popup/utils.d.ts +0 -0
  3638. /package/lib/{types/core → core}/components/shadcn/filters/animateChangeInHeight.d.ts +0 -0
  3639. /package/lib/{types/core → core}/components/shadcn/filters/filter-styles.d.ts +0 -0
  3640. /package/lib/{esm/core → core}/components/shadcn/filters/filter-styles.js +0 -0
  3641. /package/lib/{types/core → core}/components/shadcn/filters/index.d.ts +0 -0
  3642. /package/lib/{esm/core → core}/components/shadcn/filters/index.js +0 -0
  3643. /package/lib/{esm/core → core}/components/shadcn/filters/types.js +0 -0
  3644. /package/lib/{types/core → core}/components/styles.d.ts +0 -0
  3645. /package/lib/{types/core → core}/components/toast/ToastProps.d.ts +0 -0
  3646. /package/lib/{esm/core → core}/components/toast/ToastProps.js +0 -0
  3647. /package/lib/{types/core → core}/hooks/useClickOutside.d.ts +0 -0
  3648. /package/lib/{types/core → core}/hooks/useCopyToClipboard.d.ts +0 -0
  3649. /package/lib/{esm/core → core}/hooks/useCopyToClipboard.js +0 -0
  3650. /package/lib/{types/core → core}/hooks/useDarkMode.d.ts +0 -0
  3651. /package/lib/{types/core → core}/hooks/useDebounce.d.ts +0 -0
  3652. /package/lib/{types/core → core}/hooks/useFlag.d.ts +0 -0
  3653. /package/lib/{types/core → core}/hooks/useIsFistRendering.d.ts +0 -0
  3654. /package/lib/{types/features → features}/agent/chat/WaitingMessages.d.ts +0 -0
  3655. /package/lib/{types/features → features}/agent/chat/types/document.d.ts +0 -0
  3656. /package/lib/{esm/features → features}/agent/chat/types/document.js +0 -0
  3657. /package/lib/{esm/features → features}/facets/utils/utils.js +0 -0
  3658. /package/lib/{esm/features → features}/magic-pdf/types.js +0 -0
  3659. /package/lib/{types/features → features}/oauth/index.d.ts +0 -0
  3660. /package/lib/{esm/features → features}/oauth/index.js +0 -0
  3661. /package/lib/{types/features → features}/oauth/useOAuthPopup.d.ts +0 -0
  3662. /package/lib/{esm/features → features}/oauth/useOAuthPopup.js +0 -0
  3663. /package/lib/{types/features → features}/pdf-viewer/index.d.ts +0 -0
  3664. /package/lib/{esm/features → features}/pdf-viewer/index.js +0 -0
  3665. /package/lib/{esm/features → features}/permissions/helpers.js +0 -0
  3666. /package/lib/{esm/features → features}/store/objects/selection/ObjectsActionSpec.js +0 -0
  3667. /package/lib/{esm/features → features}/store/types/TypeRegistry.js +0 -0
  3668. /package/lib/{types/features → features}/utils/mimeType.d.ts +0 -0
  3669. /package/lib/{esm/features → features}/utils/mimeType.js +0 -0
  3670. /package/lib/{types/features → features}/utils/print.d.ts +0 -0
  3671. /package/lib/{types/features → features}/utils/text.d.ts +0 -0
  3672. /package/lib/{types/i18n → i18n}/instance.d.ts +0 -0
  3673. /package/lib/{esm/i18n → i18n}/instance.js +0 -0
  3674. /package/lib/{esm/layout → layout}/RegionTag.js +0 -0
  3675. /package/lib/{types/layout → layout}/SidebarContext.d.ts +0 -0
  3676. /package/lib/{types/router → router}/PathWithParams.d.ts +0 -0
  3677. /package/lib/{types/router → router}/path.d.ts +0 -0
  3678. /package/lib/{types/session → session}/auth/domainRouting.d.ts +0 -0
  3679. /package/lib/{esm/session → session}/auth/domainRouting.js +0 -0
  3680. /package/lib/{types/session → session}/auth/useAuthState.d.ts +0 -0
  3681. /package/lib/{types/session → session}/auth/useCurrentTenant.d.ts +0 -0
  3682. /package/lib/{types/session → session}/constants.d.ts +0 -0
  3683. /package/lib/{esm/session → session}/constants.js +0 -0
  3684. /package/lib/{types/shell → shell}/utils.d.ts +0 -0
  3685. /package/lib/{esm/widgets → widgets}/Progress.js +0 -0
  3686. /package/lib/{types/widgets → widgets}/json-view/types.d.ts +0 -0
  3687. /package/lib/{esm/widgets → widgets}/json-view/types.js +0 -0
  3688. /package/lib/{types/widgets → widgets}/markdown/ArtifactContentRenderer.d.ts +0 -0
  3689. /package/lib/{esm/widgets → widgets}/markdown/CodeBlockContext.js +0 -0
  3690. /package/lib/{types/widgets → widgets}/markdown/normalizeCustomSchemeLinks.d.ts +0 -0
  3691. /package/lib/{types/widgets → widgets}/markdown/normalizeDirectives.d.ts +0 -0
  3692. /package/lib/{types/widgets → widgets}/markdown/preprocessMathDelimiters.d.ts +0 -0
  3693. /package/lib/{types/widgets → widgets}/markdown/useArtifactContent.d.ts +0 -0
  3694. /package/lib/{types/widgets → widgets}/markdown/useResolvedUrl.d.ts +0 -0
  3695. /package/lib/{types/widgets → widgets}/monacoEditor/foldingProviders.d.ts +0 -0
  3696. /package/lib/{types/widgets → widgets}/schema-editor/type-signature.d.ts +0 -0
  3697. /package/lib/{esm/widgets → widgets}/schema-editor/type-signature.js +0 -0
  3698. /package/lib/{types/widgets → widgets}/upload/index.d.ts +0 -0
  3699. /package/lib/{esm/widgets → widgets}/upload/index.js +0 -0
  3700. /package/lib/{esm/widgets → widgets}/xml-viewer/components/Attributes/index.js +0 -0
  3701. /package/lib/{esm/widgets → widgets}/xml-viewer/components/CDataTag/index.js +0 -0
  3702. /package/lib/{types/widgets → widgets}/xml-viewer/components/CollapseIcon/index.d.ts +0 -0
  3703. /package/lib/{esm/widgets → widgets}/xml-viewer/components/CommentTag/index.js +0 -0
  3704. /package/lib/{esm/widgets → widgets}/xml-viewer/components/DeclarationTag/index.js +0 -0
  3705. /package/lib/{esm/widgets → widgets}/xml-viewer/components/Elements/index.js +0 -0
  3706. /package/lib/{esm/widgets → widgets}/xml-viewer/components/InvalidXml/index.js +0 -0
  3707. /package/lib/{esm/widgets → widgets}/xml-viewer/components/Tag/index.js +0 -0
  3708. /package/lib/{esm/widgets → widgets}/xml-viewer/components/TextElement/index.js +0 -0
  3709. /package/lib/{esm/widgets → widgets}/xml-viewer/components/XMLViewer.js +0 -0
  3710. /package/lib/{types/widgets → widgets}/xml-viewer/components/types.d.ts +0 -0
  3711. /package/lib/{esm/widgets → widgets}/xml-viewer/components/types.js +0 -0
  3712. /package/lib/{types/widgets → widgets}/xml-viewer/constants/index.d.ts +0 -0
  3713. /package/lib/{esm/widgets → widgets}/xml-viewer/constants/index.js +0 -0
  3714. /package/lib/{esm/widgets → widgets}/xml-viewer/context/xml-viewer-context.js +0 -0
  3715. /package/lib/{types/widgets → widgets}/xml-viewer/hooks/useCollapsible.d.ts +0 -0
  3716. /package/lib/{esm/widgets → widgets}/xml-viewer/hooks/useCollapsible.js +0 -0
  3717. /package/lib/{types/widgets → widgets}/xml-viewer/hooks/useXMLViewer.d.ts +0 -0
  3718. /package/lib/{esm/widgets → widgets}/xml-viewer/types/index.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"vertesia-ui-core.js","sources":["esm/core/components/Avatar.js","esm/core/components/Center.js","esm/core/components/popup/position.js","esm/core/components/popup/utils.js","esm/core/components/popup/PopupController.js","esm/core/components/popup/Popup.js","esm/core/components/ComboBox.js","esm/core/components/Divider.js","esm/core/components/EmptyCollection.js","esm/core/components/FileUpload.js","esm/core/components/libs/utils.js","esm/core/hooks/PortalContainerProvider.js","esm/core/components/shadcn/tooltip.js","esm/core/components/FormItem.js","esm/core/components/shadcn/badge.js","esm/core/components/shadcn/input.js","esm/core/components/InputList.js","esm/core/components/Link.js","esm/core/components/MenuList.js","esm/core/components/styles.js","esm/core/components/NumberInput.js","esm/i18n/instance.js","esm/core/components/shadcn/button.js","esm/core/components/Overlay.js","esm/core/components/Portal.js","esm/core/components/shadcn/theme/ThemeProvider.js","esm/i18n/index.js","esm/core/components/shadcn/theme/ThemeSwitcher.js","esm/core/components/shadcn/card.js","esm/core/components/libs/visuallyHidden.js","esm/core/components/shadcn/modal/dialog.js","esm/core/components/shadcn/modal/ConfirmModal.js","esm/core/components/toast/ToastContext.js","esm/core/components/toast/NotificationPanel.js","esm/core/components/toast/ToastProvider.js","esm/core/components/shadcn/modal/DeleteModal.js","esm/core/components/shadcn/separator.js","esm/core/components/shadcn/popover.js","esm/core/components/shadcn/command.js","esm/core/components/shadcn/selectBox.js","esm/core/components/shadcn/tabs.js","esm/core/components/shadcn/label.js","esm/core/components/shadcn/breadcrumb.js","esm/core/components/shadcn/filters/animateChangeInHeight.js","esm/core/components/shadcn/checkbox.js","esm/core/components/shadcn/filters/DynamicLabel.js","esm/core/components/shadcn/filters/comboBox/SelectCombobox.js","esm/core/components/shadcn/filters/filter-styles.js","esm/core/components/shadcn/filters/comboBox/DateCombobox.js","esm/core/components/shadcn/filters/comboBox/TextCombobox.js","esm/core/components/shadcn/filters/comboBox/StringListCombobox.js","esm/core/components/shadcn/filters/filters.js","esm/core/components/shadcn/filters/filter/TextFilter.js","esm/core/components/shadcn/filters/filter/dateFilter.js","esm/core/components/shadcn/filters/filter/SelectFilter.js","esm/core/components/shadcn/filters/filter/StringListFilter.js","esm/core/components/shadcn/filters/filterBar.js","esm/core/components/shadcn/filters/types.js","esm/core/components/shadcn/heading.js","esm/core/components/shadcn/text.js","esm/core/components/shadcn/resizeable.js","esm/core/components/shadcn/textarea.js","esm/core/components/shadcn/MessageBox.js","esm/core/components/shadcn/Panel.js","esm/core/components/shadcn/switch.js","esm/core/components/shadcn/radioGroup.js","esm/core/components/shadcn/collaspible.js","esm/core/components/shadcn/dropdown.js","esm/core/components/SelectList.js","esm/core/components/SidePanel.js","esm/core/components/Spinner.js","esm/core/components/table/index.js","esm/core/components/TagsInput.js","esm/core/hooks/CompositeState.js","esm/core/hooks/SharedState.js","esm/core/hooks/useClickOutside.js","esm/core/hooks/useCopyToClipboard.js","esm/core/hooks/useDarkMode.js","esm/core/hooks/useDebounce.js","esm/core/hooks/useEventSource.js","esm/core/hooks/useFetch.js","esm/core/hooks/useFlag.js","esm/core/hooks/useIntersectionObserver.js","esm/core/hooks/useIsFistRendering.js","esm/core/hooks/useSafeLayoutEffect.js","esm/core/hooks/useScrollableSearch.js","esm/core/hooks/useSharedValue.js","esm/core/utils/cn.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getRealSize(size) {\n switch (size) {\n case 'xs': return 'size-4';\n case 'sm': return 'size-6';\n case 'md': return 'size-8';\n case 'lg': return 'size-10';\n case 'xl': return 'size-12';\n case '2xl': return 'size-14';\n default: throw new Error('Unexpected size: ' + size);\n }\n}\nexport function Avatar({ size, src, name, shape = \"circle\", color = 'bg-gray-500', className }) {\n const rounded = shape === 'circle' ? 'rounded-full' : 'rounded-md';\n const sizeClass = getRealSize(size || 'md');\n if (src) {\n return (_jsx(\"img\", { className: `inline-block ${sizeClass} ${rounded} ${color} ${className}`, src: src, alt: name || src, title: name }));\n }\n if (name) {\n const [first, second] = name.split(' ');\n let text = second ? `${first[0]}${second[0]}` : `${first[0]}${first[1]}`;\n return (_jsx(\"span\", { className: `inline-flex ${sizeClass} items-center justify-center ${rounded} ${color} ${className}`, title: name, children: _jsx(\"span\", { className: `${(size != 'xs') ? 'text-xs' : 'text-[0.6rem]'} font-medium leading-none text-white`, children: text }) }));\n }\n return (_jsx(\"span\", { className: `inline-block ${sizeClass} overflow-hidden ${rounded} ${color}`, children: _jsx(\"svg\", { className: \"h-full w-full text-gray-300\", fill: \"currentColor\", viewBox: \"0 0 24 24\", children: _jsx(\"path\", { d: \"M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z\" }) }) }));\n}\nexport function SvgAvatar({ size, shape = \"circle\", color = 'bg-gray-500', className, children }) {\n const rounded = shape === 'circle' ? 'rounded-full' : 'rounded-md';\n const sizeClass = getRealSize(size || 'md');\n return (_jsx(\"span\", { className: `inline-block ${sizeClass} overflow-hidden ${rounded} ${color} ${className}`, children: children }));\n}\n//# sourceMappingURL=Avatar.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nexport function Center({ className, children }) {\n return (_jsx(\"div\", { className: clsx('flex items-center justify-center', className), children: children }));\n}\n//# sourceMappingURL=Center.js.map","function flipPos(position) {\n switch (position) {\n case \"top\": return \"bottom\";\n case \"bottom\": return \"top\";\n case \"left\": return \"right\";\n case \"right\": return \"left\";\n case \"ne\": return \"sw\";\n case \"nw\": return \"se\";\n case \"se\": return \"nw\";\n case \"sw\": return \"ne\";\n default: return position;\n }\n}\nfunction flipAlign(align) {\n switch (align) {\n case \"start\": return \"end\";\n case \"end\": return \"start\";\n default: return align;\n }\n}\nclass PositionResolver {\n /**\n * The computed left coordinate (i.e. x)\n */\n left;\n /**\n * The computed top coordinate (i.e. y)\n */\n top;\n /**\n * The computed width constraint. If undefined it means that the width is not constrained.\n */\n width;\n /**\n * The computed height constraint. If undefined it means that the height is not constrained.\n */\n height;\n /**\n * Alignment axis. The axis is computed from the position constraints.\n * If no axis is found - no alignment will be done\n */\n alignAxis;\n /**\n * A gap size between the anchor element and the target element.\n */\n gap;\n constructor(gap = 0) {\n this.gap = gap;\n }\n position(pos, anchorRect, elemRect) {\n switch (pos) {\n case \"top\": {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.alignAxis = 'x';\n break;\n }\n case \"bottom\": {\n this.top = anchorRect.bottom + this.gap;\n this.alignAxis = 'x';\n break;\n }\n case \"left\": {\n this.left = anchorRect.left - elemRect.width - this.gap;\n this.alignAxis = 'y';\n break;\n }\n case \"right\": {\n this.left = anchorRect.right + this.gap;\n this.alignAxis = 'y';\n break;\n }\n case \"ne\": {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.left = anchorRect.right + this.gap;\n break;\n }\n case \"nw\": {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.left = anchorRect.left - elemRect.width - this.gap;\n break;\n }\n case \"se\": {\n this.top = anchorRect.bottom + this.gap;\n this.left = anchorRect.right + this.gap;\n break;\n }\n case \"sw\": {\n this.top = anchorRect.bottom + this.gap;\n this.left = anchorRect.left - elemRect.width - this.gap;\n break;\n }\n }\n }\n align(align, anchorRect, elemRect) {\n if (!this.alignAxis)\n return; // no alignment axis\n switch (align) {\n case 'start': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left;\n }\n else {\n this.top = anchorRect.top;\n }\n break;\n }\n case 'end': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.right - elemRect.width;\n }\n else {\n this.top = anchorRect.bottom - elemRect.height;\n }\n break;\n }\n case 'center': {\n // centering depend on the final value of the width / height\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left + anchorRect.width / 2 - elemRect.width / 2;\n }\n else {\n this.top = anchorRect.top + anchorRect.height / 2 - elemRect.height / 2;\n }\n break;\n }\n case 'fill': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left;\n this.width = anchorRect.right - anchorRect.left;\n }\n else {\n this.top = anchorRect.top;\n this.height = anchorRect.bottom - anchorRect.top;\n }\n break;\n }\n }\n }\n computePosition(constraints, elemRect, anchorRect) {\n this.position(constraints.position, anchorRect, elemRect);\n constraints.align && this.align(constraints.align, anchorRect, elemRect);\n if (!this.left && !this.top) {\n throw new Error(\"Invalid position. Cannot compute x,y coordinates\");\n }\n const constrainWidth = this.width != null;\n const constrainHeight = this.height != null;\n const width = constrainWidth ? this.width : elemRect.width;\n const height = constrainHeight ? this.height : elemRect.height;\n return {\n rect: new DOMRect(this.left, this.top, width, height),\n constrainWidth,\n constrainHeight,\n position: constraints.position,\n align: constraints.align\n };\n }\n flipAxis(constraints, axis) {\n if (this.alignAxis === axis) { // flip alignment\n if (constraints.align) {\n const newAlign = flipAlign(constraints.align);\n if (newAlign !== constraints.align) {\n return { ...constraints, align: newAlign };\n }\n }\n }\n else { // flip positioning\n const newPos = flipPos(constraints.position);\n if (newPos !== constraints.position) {\n return { ...constraints, position: newPos };\n }\n }\n return null; // nothing to do\n }\n}\nfunction isElementVisible(elemRect, clientRect) {\n return elemRect.left >= clientRect.left && elemRect.right <= clientRect.right\n &&\n elemRect.top >= clientRect.top && elemRect.bottom <= clientRect.bottom;\n}\nfunction isElementVisibleOnAxis(elemRect, clientRect, axis) {\n if (axis === 'x') {\n return elemRect.left >= clientRect.left && elemRect.right <= clientRect.right;\n }\n else {\n return elemRect.top >= clientRect.top && elemRect.bottom <= clientRect.bottom;\n }\n}\n/**\n * Compute the position by trying to adjust the constraints until the computed position fits into the client area.\n * Returns the best position that fits the constraints.\n * @param constraints\n * @param elemRect\n * @param anchorRect\n * @param clientRect\n * @returns null if the element cannot be positioned otherwise returns a position object\n */\nexport function computePosition(constraints, elemRect, anchorRect, clientRect) {\n const resolver = new PositionResolver(constraints.gap);\n let computedPos = resolver.computePosition(constraints, elemRect, anchorRect);\n const isVisibleOnXAxis = isElementVisibleOnAxis(computedPos.rect, clientRect, 'x');\n const isVisibleOnYAxis = isElementVisibleOnAxis(computedPos.rect, clientRect, 'y');\n if (isVisibleOnXAxis && isVisibleOnYAxis) {\n return computedPos; // the element is visible on both axis\n }\n let newConstraints = null;\n if (!isVisibleOnXAxis) {\n newConstraints = resolver.flipAxis(constraints, 'x');\n }\n if (!isVisibleOnYAxis) {\n newConstraints = resolver.flipAxis(newConstraints || constraints, 'y');\n }\n if (!newConstraints) {\n return null; // cannot find a better position\n }\n computedPos = new PositionResolver(resolver.gap).computePosition(newConstraints, elemRect, anchorRect);\n if (isElementVisible(computedPos.rect, clientRect)) {\n return computedPos;\n }\n return null; // cannot find a better position\n}\n//# sourceMappingURL=position.js.map","/**\n * Compute the intersection of the two given rects.\n * @param rect1\n * @param rect2\n * @returns\n */\nexport function intersectRects(rect1, rect2) {\n const x1 = Math.max(rect1.left, rect2.left);\n const y1 = Math.max(rect1.top, rect2.top);\n const x2 = Math.min(rect1.right, rect2.right);\n const y2 = Math.min(rect1.bottom, rect2.bottom);\n if (x2 <= x1 || y2 <= y1) {\n return null; // No intersection\n }\n return new DOMRect(x1, y1, x2 - x1, y2 - y1);\n}\n/**\n * Compute the visible rectangle of the scrollable parents.\n * @param scrollableParents\n * @returns\n */\nexport function computeVisibleClientRect(scrollableParents) {\n if (scrollableParents.length === 0)\n return null;\n // Initialize the rect as the bounding rect of the first scrollable parent\n let rect = scrollableParents[0].getBoundingClientRect();\n // Iterate over the remaining scrollable parents to compute the intersection\n for (let i = 1, l = scrollableParents.length; i < l; i++) {\n const parentRect = scrollableParents[i].getBoundingClientRect();\n rect = intersectRects(parentRect, rect);\n // If there is no intersection, exit early\n if (!rect) {\n return null;\n }\n }\n return rect;\n}\n/**\n * Tests whether the given element is scrollable in any direction.\n * @param element\n * @returns\n */\nexport function isScrollable(element) {\n const hasScrollY = element.scrollHeight > element.clientHeight;\n const hasScrollX = element.scrollWidth > element.clientWidth;\n if (hasScrollY || hasScrollX) {\n const style = getComputedStyle(element);\n if ((hasScrollY && style.overflowY !== 'visible') || (hasScrollX && style.overflowX !== 'visible')) {\n return true;\n }\n }\n return false;\n}\n/**\n * Get the list of scrollable parents of the given element. The list always include the root parent at the end.\n * The root parent is either the document.documentElement or the given root element.\n * To iterate the list from top to down you need to iterate from the end to the start of the list,\n * since the root parent is always the last element and the nearest scrollable parent is the first element.\n * @param element\n * @param root\n * @returns\n */\nexport function getScrollableParents(element, root = document.documentElement) {\n const parents = [];\n let parent = element.parentElement;\n while (parent && parent !== root) {\n isScrollable(parent) && parents.push(parent);\n parent = parent.parentElement;\n }\n // Always push the root element\n parents.push(root);\n return parents;\n}\n//# sourceMappingURL=utils.js.map","import { computePosition } from \"./position\";\nimport { computeVisibleClientRect, getScrollableParents } from \"./utils\";\nexport class PopupController {\n options;\n root;\n scrollableParents;\n visibleClientRect;\n context;\n constructor(options) {\n this.options = options;\n this.root = options.root || document.documentElement;\n this.scrollableParents = getScrollableParents(this.anchor, this.root);\n this.visibleClientRect = computeVisibleClientRect(this.scrollableParents);\n }\n get anchor() {\n return this.options.anchor;\n }\n registerListeners(element) {\n const parents = this.scrollableParents;\n const updateHandler = () => {\n this.update();\n };\n // add a window resize listener\n window.addEventListener('resize', updateHandler);\n //TODO do we add scroll listeners to the window?\n // add scroll listeners to all scrollable parents\n for (const parent of parents) {\n parent.addEventListener('scroll', updateHandler);\n }\n let closeOnClick;\n if (this.options.closeOnClick) {\n closeOnClick = (ev) => {\n if (!element.contains(ev.target)) {\n this.tryClose();\n }\n };\n // register in the next event loop cycle since the current one\n // is may be triggered by a click event\n window.setTimeout(function () {\n closeOnClick && document.addEventListener('click', closeOnClick);\n }, 0);\n }\n let closeOnEsc;\n if (this.options.closeOnEsc) {\n closeOnEsc = (ev) => {\n if (ev.key === 'Escape') {\n this.tryClose();\n }\n };\n window.setTimeout(function () {\n closeOnEsc && document.addEventListener('keydown', closeOnEsc);\n }, 0);\n }\n const blockPageScroll = this.options.blockPageScroll;\n if (blockPageScroll) {\n document.body.style.overflow = \"hidden\";\n document.body.style.height = \"100%\";\n }\n return () => {\n window.removeEventListener('resize', updateHandler);\n for (const parent of parents) {\n parent.removeEventListener('scroll', updateHandler);\n }\n closeOnClick && document.removeEventListener('click', closeOnClick);\n closeOnEsc && document.removeEventListener('keydown', closeOnEsc);\n if (blockPageScroll) {\n document.body.style.overflow = \"\";\n document.body.style.height = \"\";\n }\n };\n }\n open(element, constraints) {\n if (this.context) {\n throw new Error(\"The popup controller is already bound to an element\");\n }\n this.tryOpen(element, constraints);\n }\n tryOpen(element, constraints) {\n if (this.context) {\n return; // do nothing if the popup is already open\n }\n this.context = {\n element,\n constraints,\n cleanup: this.registerListeners(element)\n };\n element.style.display = \"\";\n element.style.visibility = \"hidden\";\n // update the popup position\n this.update();\n this.options.onOpen && this.options.onOpen(this);\n }\n close() {\n if (!this.context) {\n throw new Error(\"The popup controller is not bound to an element\");\n }\n this.tryClose();\n }\n tryClose() {\n if (!this.context) {\n return; // do nothing if the popup is not open\n }\n this.options.onClose && this.options.onClose(this);\n this.context.cleanup();\n //TODO\n this.context.element.style.display = \"none\";\n this.context = undefined;\n }\n get isOpen() {\n return !!this.context;\n }\n update() {\n if (!this.context)\n return; // do nothing if the popup is not open\n // update the position of the popup\n const element = this.context.element;\n const constraints = this.context.constraints;\n const elemRect = element.getBoundingClientRect();\n const anchorRect = this.anchor.getBoundingClientRect();\n const clientRect = this.visibleClientRect;\n if (!clientRect) {\n // the popup is not visible\n return;\n }\n const position = computePosition(constraints, elemRect, anchorRect, clientRect);\n this.context.position = position || undefined;\n if (position) {\n if (position.constrainHeight) {\n element.style.height = position.rect.height + 'px';\n }\n if (position.constrainWidth) {\n element.style.width = position.rect.width + 'px';\n }\n element.style.left = position.rect.left + 'px';\n element.style.top = position.rect.top + 'px';\n element.style.visibility = \"visible\";\n }\n }\n createPopupElement() {\n const popup = document.createElement('div');\n popup.style.margin = \"0\";\n popup.style.padding = \"0\";\n popup.style.border = \"none\";\n popup.style.background = \"transparent\";\n popup.className = \"composable-Popup\";\n return popup;\n }\n}\n//# sourceMappingURL=PopupController.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createContext, useContext, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { PopupController } from \"./PopupController\";\nconst PopupContext = createContext(undefined);\nexport function usePopupController() {\n const ctrl = useContext(PopupContext);\n if (!ctrl)\n throw new Error(\"usePopupController must be used inside a Popup component\");\n return ctrl;\n}\nexport function DOMPopup({ ctrlRef, id, constraints, isOpen, children, className, onClose, zIndex, position, ...props }) {\n const popupRef = useRef(null);\n const [ctrl, setCtrl] = useState();\n useEffect(() => {\n if (!props.anchor)\n throw new Error(\"Anchor element is required\");\n const _ctrl = new PopupController({\n ...props,\n onClose\n });\n setCtrl(_ctrl);\n return () => {\n _ctrl.tryClose();\n };\n }, []);\n useEffect(() => {\n if (ctrlRef) {\n ctrlRef.current = ctrl;\n }\n }, [ctrl]);\n // effect to open / close the popup\n useEffect(() => {\n if (ctrl && popupRef.current) {\n if (ctrl.isOpen !== isOpen) {\n if (isOpen) {\n ctrl.open(popupRef.current, constraints);\n }\n else {\n ctrl.close();\n }\n }\n }\n else if (ctrl?.isOpen && !isOpen) {\n // close the popup - happens when isOpen becomes false but the ctrl is still open\n // and the popupRef was destroyed by the isOpen && below\n ctrl.close();\n }\n }, [isOpen, ctrl, popupRef.current]);\n return (_jsx(PopupContext.Provider, { value: ctrl, children: isOpen && createPortal(_jsx(\"div\", { id: id, style: {\n //display: isOpen ? 'block' : 'none',\n visibility: 'hidden',\n position: position || 'absolute',\n zIndex: zIndex || 100,\n }, ref: popupRef, className: className, children: children }), document.body) }));\n}\nexport function Popup({ anchor, root, children, ...others }) {\n return anchor.current && (!root || root.current) ? (_jsx(DOMPopup, { anchor: anchor.current, root: root?.current || undefined, ...others, children: children })) : null;\n}\n//# sourceMappingURL=Popup.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ChevronDownIcon, ChevronUpIcon, XIcon } from 'lucide-react';\nimport clsx from 'clsx';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Popup } from \"./popup/index\";\nconst INPUT_UNSTYLED = \"block m-0 p-0 border-0 focus:outline-none focus:ring-0\";\nconst INPUT_NO_PADDING = \"block sm:text-sm sm:leading-6 bg-muted rounded-md border-0 shadow-sm ring-1 ring-inset ring-muted placeholder:text-muted focus:ring-2 focus:ring-inset focus:ring-primary\";\nconst INPUT = INPUT_NO_PADDING + \" py-1.5\";\nconst COMBOBOX_POPUP = \"combobox-popup\";\nfunction genComboboxPopupId() {\n return `combobox-popup-${Math.floor(Math.random() * 1000000)}`;\n}\nexport class OptionAdapter {\n filter(items, text) {\n const lcText = text.toLowerCase();\n return items.filter((item) => this.valueOf(item).toLowerCase().includes(lcText));\n }\n renderOption(item) {\n return this.valueOf(item);\n }\n findById(items, id) {\n return items.find(item => this.idOf(item) === id);\n }\n // override to support creating new items\n createItem(_value) {\n return null; // default is no new item\n }\n}\nexport class StringOptionAdapter extends OptionAdapter {\n valueOf(item) {\n return String(item);\n }\n idOf(item) {\n return String(item);\n }\n static instance = new StringOptionAdapter();\n}\nexport class StringOptionAdapterWithCreate extends StringOptionAdapter {\n createItem(value) {\n return value;\n }\n static instance = new StringOptionAdapterWithCreate();\n}\nexport function getDefaultComboBoxLayout(fullWidth, unstyledInput) {\n return {\n buttonRight: 4,\n buttonWidth: 24,\n maxMenuHeight: 240,\n menuClass: \"w-72 mt-1 border-popover bg-popover text-popover-foreground shadow-md overflow-auto p-0 z-10\",\n inputClass: clsx(unstyledInput ? INPUT_UNSTYLED : INPUT, fullWidth ? \"w-full\" : \"!w-auto\"),\n optionClass: \"py-2 px-3 shadow-sm flex flex-col [&.option-selected]:font-semibold [&.option-highlighted]:bg-blue-300\",\n Input: (ComboInput),\n Menu: (ComboMenu),\n Toggle: (ComboToggle),\n };\n}\nexport function ComboBox({ menuAlign = \"fill\", menuGap, focusOnMount, onSelect, value, zIndex, unstyledInput, fullWidth, api, layout: layoutOpts, adapter, items, placeholder, clearable, noMatchMessage, openOnFocus }) {\n const [popupId] = useState(genComboboxPopupId());\n const popupCtrl = useRef(undefined);\n const inputRef = useRef(null);\n const layout = layoutOpts ? Object.assign(getDefaultComboBoxLayout(fullWidth, unstyledInput), layoutOpts) : getDefaultComboBoxLayout(fullWidth, unstyledInput);\n const inputBoxRef = React.useRef(null);\n const ctrl = useComboboxCtrl({\n adapter,\n items,\n value,\n popupId\n });\n useEffect(() => {\n if (inputRef.current) {\n focusOnMount && inputRef.current.focus();\n }\n }, [inputRef.current]);\n // the onSelect callback may change so we need to refresh it.\n useEffect(() => {\n ctrl.onSelect = onSelect;\n ctrl.popupCtrl = popupCtrl.current;\n }, [onSelect, popupCtrl.current]);\n useEffect(() => {\n if (api && ctrl && inputRef.current) {\n api.current = {\n open: () => ctrl.openMenu(),\n close: () => ctrl.closeMenu(),\n toggle: () => ctrl.toggleMenu(),\n setInputValue: (value) => ctrl.inputText = value,\n inputValue: ctrl.inputText || '',\n selectedItem: ctrl.selectedItem,\n focus: () => inputRef.current?.focus()\n };\n return () => {\n api.current = null;\n };\n }\n }, [api, ctrl, inputRef.current]);\n const showMenu = ctrl.isMenuOpen && (ctrl.filteredItems.length > 0 || !!noMatchMessage);\n return (_jsxs(_Fragment, { children: [_jsx(layout.Input, { boxRef: inputBoxRef, inputRef: inputRef, ctrl: ctrl, layout: layout, placeholder: placeholder, clearable: clearable, openOnFocus: openOnFocus }), _jsx(Popup, { id: popupId, ctrlRef: popupCtrl, className: COMBOBOX_POPUP, closeOnClick: true, closeOnEsc: true, onClose: () => ctrl.closeMenu(), isOpen: showMenu, anchor: inputBoxRef, zIndex: zIndex, constraints: {\n position: \"bottom\",\n align: menuAlign,\n gap: menuGap != null ? menuGap : 4\n }, children: _jsx(layout.Menu, { fillWidth: menuAlign === \"fill\", items: ctrl.filteredItems, ctrl: ctrl, layout: layout, adapter: adapter, noMatchMessage: noMatchMessage }) })] }));\n}\nfunction ComboInput({ inputRef, placeholder, boxRef, ctrl, layout, clearable, openOnFocus }) {\n const Toggle = layout.Toggle;\n const showClear = clearable && ctrl.selectedItem != null;\n const buttonCount = (Toggle ? 1 : 0) + (showClear ? 1 : 0);\n const style = buttonCount > 0 ? { paddingRight: `${layout.buttonWidth * buttonCount + layout.buttonRight}px` } : undefined;\n return (_jsxs(\"div\", { className: \"relative\", ref: boxRef, children: [_jsx(\"input\", { ref: inputRef, placeholder: placeholder, ...ctrl.getInputProps(), onFocus: openOnFocus ? () => ctrl.openMenu() : undefined, style: style, className: layout.inputClass }), _jsxs(\"div\", { style: { position: 'absolute', right: `${layout.buttonRight}px`, top: 0, bottom: 0, display: 'flex', alignItems: 'center', gap: '2px' }, children: [showClear && (_jsx(\"button\", { style: { border: 'none', padding: 0, margin: 0, backgroundColor: 'transparent', cursor: 'pointer', display: 'flex', alignItems: 'center', width: `${layout.buttonWidth}px` }, onClick: () => { ctrl.selectedItem = null; }, children: _jsx(XIcon, { className: \"w-4 h-4\" }) })), Toggle && (_jsx(\"button\", { style: { width: `${layout.buttonWidth}px`, border: 'none', padding: 0, margin: 0, backgroundColor: 'transparent', display: 'flex', alignItems: 'center', justifyContent: 'center' }, ...ctrl.getToggleButtonProps(), children: _jsx(Toggle, { ctrl: ctrl, layout: layout }) }))] })] }));\n}\nfunction ComboToggle({ ctrl }) {\n return ctrl.isMenuOpen ? _jsx(ChevronUpIcon, { className: \"w-4 h-4\" }) : _jsx(ChevronDownIcon, { className: \"w-4 h-4\" });\n}\nfunction ComboMenu({ fillWidth, items, layout, ctrl, adapter, noMatchMessage }) {\n const { highlightedIndex, selectedItem } = ctrl;\n if (items.length === 0) {\n return noMatchMessage\n ? _jsx(\"div\", { style: { width: fillWidth ? '100%' : undefined }, className: layout.menuClass, children: noMatchMessage })\n : null;\n }\n return (_jsx(\"ul\", { style: { width: fillWidth ? \"100%\" : undefined, maxHeight: layout.maxMenuHeight ? `${layout.maxMenuHeight}px` : '240px' }, className: layout.menuClass, ...ctrl.getMenuProps(), children: items.map((item, index) => (_jsx(\"li\", { \"data-index\": index, className: clsx(layout.optionClass, highlightedIndex === index && \"option-highlighted\", selectedItem === item && \"option-selected\"), ...ctrl.getItemProps(item, index), children: adapter.renderOption(item) }, adapter.idOf(item)))) }));\n}\nexport function useComboboxCtrl(props) {\n const [ctrl, setCtrl] = useState(new ComboboxController(props));\n useEffect(() => {\n ctrl?.withState(setCtrl);\n }, []);\n return ctrl;\n}\nclass ComboboxController {\n popupId;\n items;\n adapter;\n onSelect;\n setState;\n _selectedItem = null;\n _filteredItems;\n _inputText = \"\";\n _highlightedIndex = null;\n _isMenuOpen = false;\n popupCtrl;\n constructor({ adapter, items, value, popupId }) {\n this.adapter = adapter;\n this.items = items;\n this.popupId = popupId;\n if (typeof value === \"string\") {\n this._inputText = value;\n }\n else if (value) {\n this._selectedItem = adapter.findById(items, adapter.idOf(value)) || null;\n if (this._selectedItem) {\n this._inputText = adapter.valueOf(value);\n }\n }\n if (this._inputText) {\n this._filteredItems = this.adapter.filter(this.items, this._inputText);\n }\n else {\n this._filteredItems = this.items;\n }\n }\n withState(setState) {\n this.setState = setState;\n return this;\n }\n clone() {\n const clone = new ComboboxController({ adapter: this.adapter, items: this.items, popupId: this.popupId });\n clone.setState = this.setState;\n clone.onSelect = this.onSelect;\n clone._inputText = this._inputText;\n clone._highlightedIndex = this._highlightedIndex;\n clone._selectedItem = this._selectedItem;\n clone._isMenuOpen = this._isMenuOpen;\n clone._filteredItems = this._filteredItems;\n clone.popupCtrl = this.popupCtrl;\n return clone;\n }\n updateState() {\n this.setState?.(this.clone());\n }\n get filteredItems() {\n if (this._inputText) {\n return this.adapter.filter(this.items, this._inputText);\n }\n else {\n return this.items;\n }\n }\n get selectedItem() {\n return this._selectedItem;\n }\n set selectedItem(item) {\n this._selectedItem = item;\n this._inputText = item ? this.adapter.valueOf(item) : \"\";\n this._filteredItems = this._inputText ?\n this.adapter.filter(this.items, this._inputText)\n : this.items;\n this.updateState();\n this.onSelect?.(item);\n }\n get isMenuOpen() {\n return this._isMenuOpen;\n }\n set inputText(inputText) {\n this._inputText = inputText;\n if (inputText) {\n this._filteredItems = this.adapter.filter(this.items, inputText);\n }\n else {\n this._filteredItems = this.items;\n }\n this._highlightedIndex = null;\n this._selectedItem = null;\n this.updateState();\n // TODO -- experimental - it works but it's not perfect\n // we need to update if the popup is on top and the filtered items changed\n if (this.isMenuOpen && this.popupCtrl) {\n const popupCtrl = this.popupCtrl;\n const popupPosition = popupCtrl.context?.position?.position;\n if (popupPosition && popupPosition === \"top\") {\n window.setTimeout(() => {\n popupCtrl.update();\n }, 100);\n }\n }\n }\n get inputText() {\n return this._inputText;\n }\n set highlightedIndex(index) {\n this._highlightedIndex = index;\n this.updateState();\n }\n get highlightedIndex() {\n return this._highlightedIndex;\n }\n openMenu() {\n if (this._filteredItems.length > 0) {\n this._isMenuOpen = true;\n //this._highlightedIndex = 0;\n this.updateState();\n }\n else {\n // TODO nothing to show.\n // display a create value option?\n }\n }\n closeMenu(_item) {\n if (this._isMenuOpen) {\n this._highlightedIndex = null;\n this._isMenuOpen = false;\n this.updateState();\n }\n }\n toggleMenu() {\n if (this._isMenuOpen) {\n this.closeMenu();\n }\n else {\n this.openMenu();\n }\n }\n highlightIndex(index, navigateToTop = false) {\n this.highlightedIndex = index;\n const popup = document.getElementById(this.popupId);\n if (popup) {\n popup.querySelector(`li[data-index=\"${index}\"]`)?.scrollIntoView(navigateToTop);\n }\n }\n getMenuProps() {\n return {};\n }\n getToggleButtonProps() {\n return {\n onClick: () => {\n this._isMenuOpen = !this._isMenuOpen;\n this.updateState();\n }\n };\n }\n getItemProps(item, index) {\n return {\n \"aria-selected\": this._highlightedIndex === index,\n onClick: () => {\n this.selectedItem = item;\n this.closeMenu();\n },\n onMouseEnter: () => {\n if (this.highlightedIndex !== index) {\n this.highlightedIndex = index;\n }\n },\n onMouseLeave: () => {\n if (this.highlightedIndex === index) {\n this.highlightedIndex = null;\n }\n }\n };\n }\n getInputProps() {\n const items = this._filteredItems;\n return {\n onClick: () => {\n this.openMenu();\n },\n onChange: (ev) => {\n const value = ev.target.value;\n this.inputText = value;\n this.openMenu();\n },\n value: this.inputText,\n onKeyDown: (ev) => {\n const key = ev.key;\n if (key === \"Enter\") {\n if (this.highlightedIndex != null) {\n this.selectedItem = items[this.highlightedIndex || 0];\n }\n else {\n // create new value?\n if (this.inputText) {\n const item = this.adapter.createItem(this.inputText);\n if (item) {\n this.items.push(item);\n this.selectedItem = item;\n }\n }\n }\n this.closeMenu();\n }\n else if (key === \"ArrowDown\") {\n if (this.isMenuOpen) {\n this.highlightIndex(this.highlightedIndex === null ? 0 : incrModulo(this.highlightedIndex, items.length), false);\n }\n else {\n this.openMenu();\n }\n }\n else if (key === \"ArrowUp\") {\n if (this.isMenuOpen) {\n this.highlightIndex(this.highlightedIndex === null ? 0 : decrModulo(this.highlightedIndex, items.length), true);\n }\n }\n }\n };\n }\n}\nfunction incrModulo(value, max) {\n return (value + 1) % max;\n}\nfunction decrModulo(value, max) {\n return (value - 1 + max) % max;\n}\nexport function SimpleCombobox({ options, creatable, ...rest }) {\n const adapter = creatable ? StringOptionAdapterWithCreate.instance : StringOptionAdapter.instance;\n return _jsx(ComboBox, { adapter: adapter, items: options, ...rest });\n}\n//# sourceMappingURL=ComboBox.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nexport function Divider({ className }) {\n return (_jsx(\"hr\", { className: clsx(\"w-full h-0.5 border-t-0 bg-border\", className) }));\n}\n//# sourceMappingURL=Divider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Plus } from \"lucide-react\";\nimport { Button } from \"@vertesia/ui/core\";\nexport function EmptyCollection({ buttonLabel, title, children, onClick }) {\n return (_jsx(\"div\", { className: \"flex items-center justify-center h-full text-center\", children: _jsxs(\"div\", { className: \"py-12\", children: [_jsx(\"svg\", { className: \"mx-auto size-12\", fill: \"none\", viewBox: \"0 0 24 24\", stroke: \"currentColor\", \"aria-hidden\": \"true\", children: _jsx(\"path\", { vectorEffect: \"non-scaling-stroke\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 2, d: \"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" }) }), _jsx(\"h3\", { className: \"mt-2 text-sm font-semibold\", children: title }), _jsx(\"p\", { className: \"mt-1 text-sm text-muted\", children: children }), _jsx(\"div\", { className: \"mt-6\", children: _jsxs(Button, { onClick: onClick, children: [_jsx(Plus, { className: \"-ml-0.5 mr-1.5 size-5\", \"aria-hidden\": \"true\" }), buttonLabel] }) })] }) }));\n}\n//# sourceMappingURL=EmptyCollection.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useRef } from \"react\";\n/**\n * TODO: TS complains that:\n * Type 'FileList' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\n * So as a quick fix aI use a for loop to convert FileList to File[]\n * @param files\n * @returns\n */\nfunction fileListToArray(files) {\n const ar = [];\n for (let i = 0, l = files.length; i < l; i++) {\n ar.push(files[i]);\n }\n return ar;\n}\nexport function FileUploadInput({ children, onUpload }) {\n const inputRef = useRef(null);\n const _onUpload = () => {\n if (inputRef.current?.files) {\n onUpload(fileListToArray(inputRef.current.files));\n }\n };\n return (_jsxs(\"label\", { style: { cursor: \"pointer\" }, children: [children, _jsx(\"input\", { ref: inputRef, type: \"file\", style: { display: \"none\" }, onChange: _onUpload })] }));\n}\n//TODO implement using tailwind\nexport function DropZone({ onUpload }) {\n const dropZoneProps = useDropZone({ onUpload });\n return (_jsx(\"div\", { ...dropZoneProps, className: \"flex items-center justify-center w-full h-64 border-2 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600\", children: _jsxs(\"label\", { htmlFor: \"dropzone-file\", className: \"flex flex-col items-center justify-center w-full h-full\", children: [_jsxs(\"div\", { className: \"flex flex-col items-center justify-center pt-5 pb-6\", children: [_jsx(\"svg\", { className: \"w-8 h-8 mb-4 text-gray-500 dark:text-gray-400\", \"aria-hidden\": \"true\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", viewBox: \"0 0 20 16\", children: _jsx(\"path\", { stroke: \"currentColor\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"stroke-width\": \"2\", d: \"M13 13h3a3 3 0 0 0 0-6h-.025A5.56 5.56 0 0 0 16 6.5 5.5 5.5 0 0 0 5.207 5.021C5.137 5.017 5.071 5 5 5a4 4 0 0 0 0 8h2.167M10 15V6m0 0L8 8m2-2 2 2\" }) }), _jsxs(\"p\", { className: \"mb-2 text-sm text-gray-500 dark:text-gray-400\", children: [_jsx(\"span\", { className: \"font-semibold\", children: \"Click to upload\" }), \" or drag and drop\"] }), _jsx(\"p\", { className: \"text-xs text-gray-500 dark:text-gray-400\", children: \"SVG, PNG, JPG or GIF (MAX. 800x400px)\" })] }), _jsx(\"input\", { id: \"dropzone-file\", type: \"file\", className: \"hidden\" })] }) }));\n}\nfunction _onDragEnter(el) {\n let cnt = el.__dragOver_cnt__ || 0;\n el.__dragOver_cnt__ = cnt + 1;\n return !cnt; // true if first drag o ver false if dragover already recorded\n}\nfunction _onDragLeave(el) {\n let cnt = el.__dragOver_cnt__;\n if (!cnt)\n return false;\n el.__dragOver_cnt__ = cnt - 1;\n return cnt === 1; // true if leave false if not\n}\nfunction _onDrop(el) {\n delete el.__dragOver_cnt__;\n}\nexport function useDropZone({ onUpload, dragOverClass = \"is-drag-over-on\", dropEffect = \"copy\", }) {\n const ref = useRef(null);\n const onDrop = (ev) => {\n ev.preventDefault();\n _onDrop(ref.current);\n ref.current?.classList.remove(dragOverClass);\n const items = ev.dataTransfer.items;\n if (items) {\n const promises = [];\n const traverseFileTree = (item, path = \"\") => {\n return new Promise((resolve) => {\n if (item.isFile) {\n item.file((file) => {\n Object.defineProperty(file, \"webkitRelativePath\", { value: path + file.name });\n resolve([file]);\n });\n }\n else if (item.isDirectory) {\n const dirReader = item.createReader();\n const entries = [];\n const readEntries = () => {\n dirReader.readEntries((results) => {\n if (!results.length) {\n Promise.all(entries).then((filesArrays) => resolve(filesArrays.flat()));\n }\n else {\n for (const entry of results) {\n entries.push(traverseFileTree(entry, path + item.name + \"/\"));\n }\n readEntries();\n }\n });\n };\n readEntries();\n }\n });\n };\n for (let i = 0; i < items.length; i++) {\n const entry = items[i].webkitGetAsEntry();\n if (entry) {\n promises.push(traverseFileTree(entry));\n }\n }\n Promise.all(promises).then((filesArrays) => {\n const allFiles = filesArrays.flat();\n if (allFiles.length) {\n onUpload(allFiles);\n }\n });\n }\n };\n const onDragOver = (ev) => {\n ev.preventDefault();\n ev.dataTransfer.dropEffect = dropEffect;\n };\n const onDragEnter = () => {\n if (_onDragEnter(ref.current)) {\n ref.current?.classList.add(dragOverClass);\n }\n };\n const onDragLeave = () => {\n if (_onDragLeave(ref.current)) {\n ref.current?.classList.remove(dragOverClass);\n }\n };\n return {\n onDrop,\n onDragOver,\n onDragEnter,\n onDragLeave,\n ref,\n };\n}\n//# sourceMappingURL=FileUpload.js.map","import { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nexport function cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n//# sourceMappingURL=utils.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from \"react\";\nexport const PortalContainerContext = React.createContext(undefined);\nfunction findOrCreatePortalContainer(root, id = \"plugin-portal-container\") {\n // Determine the actual parent element to search and append to\n const parentElement = root instanceof Document ? root.body : root;\n // look only at direct children\n for (const child of Array.from(parentElement.children)) {\n if (child instanceof HTMLElement && child.id === id) {\n return child;\n }\n }\n // not found → create\n const container = document.createElement(\"div\");\n container.id = id;\n parentElement.appendChild(container);\n return container;\n}\nexport function PortalContainerProvider({ children, id = \"plugin-portal-container\", }) {\n const inherited = React.useContext(PortalContainerContext);\n const ref = React.useRef(null);\n const [container, setContainer] = React.useState(inherited || undefined);\n React.useEffect(() => {\n // If a parent already provides a portal container, inherit it\n if (inherited) {\n setContainer(inherited);\n return;\n }\n if (ref.current) {\n const root = ref.current.getRootNode();\n if (root instanceof ShadowRoot || root instanceof Document) {\n const container = findOrCreatePortalContainer(root, id);\n setContainer(container);\n }\n else {\n setContainer(null);\n }\n }\n }, [id, inherited]);\n // If container not discovered yet → render hidden marker only\n if (container === undefined) {\n return _jsx(\"div\", { ref: ref, style: { display: \"none\" } });\n }\n // Once container is resolved (null or HTMLElement) → provide it\n return (_jsx(PortalContainerContext.Provider, { value: container || undefined, children: children }));\n}\nexport function usePortalContainer() {\n return React.useContext(PortalContainerContext);\n}\n//# sourceMappingURL=PortalContainerProvider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../libs/utils\";\nimport { usePortalContainer } from \"../../hooks/PortalContainerProvider\";\nconst TooltipProvider = TooltipPrimitive.Provider;\nconst Tooltip = TooltipPrimitive.Root;\nconst TooltipTrigger = TooltipPrimitive.Trigger;\nconst TooltipContent = React.forwardRef(({ className, sideOffset = 4, side = \"top\", ...props }, ref) => {\n const container = usePortalContainer();\n return (_jsx(TooltipPrimitive.Portal, { container: container, children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, side: side, style: { zIndex: 100 }, className: cn(\"max-w-[90vw]\", \"z-50 overflow-hidden rounded-md bg-tooltips border border-border px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className), ...props }) }));\n});\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\nexport function VTooltip({ description, children, size = 'sm', placement = 'top', className, asChild }) {\n const [open, setOpen] = React.useState(false);\n const suppressRef = React.useRef(false);\n React.useEffect(() => {\n const suppress = () => {\n setOpen(false);\n suppressRef.current = true;\n requestAnimationFrame(() => { suppressRef.current = false; });\n };\n window.addEventListener('blur', suppress);\n document.addEventListener('visibilitychange', suppress);\n return () => {\n window.removeEventListener('blur', suppress);\n document.removeEventListener('visibilitychange', suppress);\n };\n }, []);\n return (_jsx(TooltipProvider, { delayDuration: 0, children: _jsxs(Tooltip, { open: open, onOpenChange: (v) => { if (!suppressRef.current)\n setOpen(v); }, children: [_jsx(TooltipTrigger, { className: \"cursor-pointer\", asChild: asChild, children: children }), _jsx(TooltipContent, { side: placement, className: `px-3 py-1.5 max-w-${size} text-${size} px-3 ${className}`, children: description })] }) }));\n}\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n//# sourceMappingURL=tooltip.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { VTooltip } from './shadcn/tooltip';\nimport { Info } from 'lucide-react';\nexport function FormItem({ description, required, label, className, direction = \"column\", children, disabled = false, fullWidthLabel = false, childrenId }) {\n return (_jsxs(\"div\", { className: clsx(\"flex w-full space-y-1\", className, direction === \"row\" ? \"flex-row justify-between items-center gap-2\" : direction === \"row-reverse\" ? \"flex-row-reverse justify-between items-center gap-2\" : \"flex-col\"), children: [_jsxs(\"div\", { className: clsx('flex items-center gap-1 mb-0', fullWidthLabel && 'w-full'), children: [_jsxs(\"label\", { htmlFor: childrenId, className: `text-sm font-medium mb-1 ${disabled ? \"text-muted\" : \"\"} ${fullWidthLabel && \"flex-1\"}`, children: [label, required ? _jsx(\"span\", { className: 'text-destructive -mt-4 ml-1', children: \"*\" }) : \"\"] }), description &&\n _jsx(\"div\", { className: 'mx-2 flex w-4 items-center', children: _jsx(VTooltip, { description: description, children: _jsx(Info, { className: \"size-3 text-muted\" }) }) })] }), children] }));\n}\n//# sourceMappingURL=FormItem.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../libs/utils\";\n// Base badge variants\nconst badgeVariants = cva(\"inline-flex items-center rounded-md px-2 py-1 text-xs font-medium\", {\n variants: {\n variant: {\n default: \"text-foreground bg-muted\",\n secondary: \"bg-secondary text-primary\",\n destructive: \"bg-destructive text-destructive\",\n attention: \"bg-attention text-attention\",\n success: \"bg-success text-success\",\n info: \"bg-info text-info\",\n done: \"bg-done text-done\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n// Base Badge component\nexport function Badge({ className, variant, children, onClick, ...props }) {\n return (_jsx(\"span\", { className: cn(badgeVariants({ variant }), className), onClick: onClick, ...props, children: children }));\n}\nconst dotBadgeVariants = cva(\n// Base styles\n\"inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-border\", {\n variants: {\n variant: {\n default: \"\",\n success: \"\",\n destructive: \"\",\n attention: \"\",\n done: \"\",\n info: \"\",\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n});\n// Separate dot variants to allow className overrides\nconst dotVariants = cva(\"h-1.5 w-1.5\", {\n variants: {\n variant: {\n default: \"fill-foreground\",\n success: \"fill-success\",\n destructive: \"fill-destructive\",\n attention: \"fill-attention\",\n done: \"fill-done\",\n info: \"fill-info\",\n }\n },\n defaultVariants: {\n variant: \"default\"\n }\n});\nexport function DotBadge({ variant, className, dotClassName, // New prop for dot-specific classes\nchildren, ...props }) {\n return (_jsxs(\"span\", { className: cn(dotBadgeVariants({ variant }), className), ...props, children: [_jsx(\"div\", { className: \"flex-shrink-0\", children: _jsx(\"svg\", { className: cn(dotVariants({ variant }), dotClassName), viewBox: \"0 0 6 6\", \"aria-hidden\": \"true\", children: _jsx(\"circle\", { cx: 3, cy: 3, r: 3 }) }) }), _jsx(\"span\", { className: \"truncate\", children: children })] }));\n}\n//# sourceMappingURL=badge.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../libs/utils\";\nimport { X } from \"lucide-react\";\nimport { Button } from \"@vertesia/ui/core\";\nconst variants = cva(\"\", {\n variants: {\n size: {\n xs: \"rounded py-1 text-xs rounded-xs\",\n sm: \"rounded text-xs rounded-sm\",\n md: \"rounded-md py-2 text-sm\",\n lg: \"rounded-md text-base\",\n xl: \"rounded-md py-2.5 text-lg\",\n },\n variant: {\n default: \"flex w-full rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n unstyled: \"block m-0 p-0 w-full border-0 focus:outline-hidden focus:ring-0 bg-transparent\",\n noPadding: \"block rounded-md border-0 bg-background shadow-2xs ring-1 ring-inset ring-ring placeholder:text-muted-foreground focus:ring-2 focus:ring-inset focus:ring-ring ring-offset-background\",\n legacy: \"py-1.5 block rounded-md border-0 bg-background shadow-2xs ring-1 ring-inset ring-ring placeholder:text-muted-foreground focus:ring-2 focus:ring-inset focus:ring-ring ring-offset-background\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n});\nconst Input = React.forwardRef(({ className, type, size = \"md\", variant = \"default\", clearable = true, onChange, value, ...props }, ref) => {\n const _onClear = () => {\n onChange && onChange('');\n };\n const _onChange = (ev) => {\n onChange && onChange(ev.target.value);\n };\n return (_jsxs(\"div\", { className: \"w-full relative inline-block [&:hover_.clear-button]:opacity-100\", children: [_jsx(\"input\", { type: type, className: cn(variants({ size, variant }), className, clearable && value ? \"pr-8\" : \"\"), ref: ref, value: value == null ? '' : value, onChange: _onChange, ...props }), clearable && value && !props.readOnly && !props.disabled && (_jsx(Button, { variant: \"link\", size: \"icon\", type: \"button\", onClick: _onClear, className: `clear-button opacity-0 transition-opacity duration-200\n absolute top-1/2 -translate-y-1/2 text-muted !hover:text-destructive cursor-pointer\n flex items-center justify-center size-6 rounded right-2`, alt: \"Clear input\", children: _jsx(X, { size: 16 }) }))] }));\n});\nInput.displayName = \"Input\";\nexport { Input, };\n//# sourceMappingURL=input.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { useState } from 'react';\nimport { Badge } from './shadcn/badge';\nimport { Input } from './shadcn/input';\nimport { VTooltip } from '@vertesia/ui/core';\nexport function InputList({ value = [], onChange, className, delimiters = \", \", placeholder, autoFocus }) {\n const [text, setText] = useState('');\n const onBlur = (ev) => {\n const v = ev.target.value;\n if (v && v.trim()) {\n onChange([...value, v.trim()]);\n setText('');\n }\n };\n const onKeyDown = (ev) => {\n const v = ev.target.value;\n const isEmpty = !v.trim();\n const key = ev.key;\n if (key === 'Enter' || delimiters.indexOf(key) > -1) {\n ev.preventDefault();\n if (value && !isEmpty) {\n onChange([...value, v.trim()]);\n setText('');\n }\n }\n else if (key === 'Backspace' && isEmpty) {\n if (value && value.length > 0) {\n value.pop();\n onChange([...value]);\n }\n }\n };\n const onPaste = (ev) => {\n const pastedText = ev.clipboardData.getData('text');\n if (pastedText) {\n ev.preventDefault();\n // Create a regex pattern from delimiters\n const delimiterPattern = delimiters.split('').map((char) => char === ' ' ? '\\\\s' : char.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|');\n const regex = new RegExp(`[${delimiterPattern}]+`);\n // Split the pasted text by delimiters and filter out empty values\n const newValues = pastedText\n .split(regex)\n .map((item) => item.trim())\n .filter((item) => item.length > 0);\n if (newValues.length > 0) {\n onChange([...value, ...newValues]);\n }\n setText('');\n }\n };\n const _onClick = (index) => {\n if (value && value.length > 0) {\n value.splice(index, 1);\n onChange([...value]);\n }\n };\n return (_jsxs(\"div\", { className: clsx(className, 'w-full flex flex-wrap items-center gap-1 p-2 py-1.5', 'rounded-md text-sm rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50'), children: [value && value.length > 0 &&\n (value.map((v, index) => _jsx(VTooltip, { description: 'click to remove', children: _jsx(Badge, { variant: \"secondary\", onClick: () => _onClick(index), className: 'cursor-pointer flex-shrink-0 hover:bg-destructive hover:text-destructive transition-colors', title: v, children: _jsx(\"span\", { className: 'break-all', children: v }) }, index) }, index))), _jsx(Input, { clearable: false, className: 'placeholder:text-muted px-1 flex-1 min-w-[120px]', variant: 'unstyled', type: 'text', value: text, onBlur: onBlur, onKeyDown: onKeyDown, onPaste: onPaste, onChange: setText, placeholder: !value || value.length === 0 ? placeholder : '', autoFocus: autoFocus })] }));\n}\n//# sourceMappingURL=InputList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nexport function Link({ underline = 'always', className, children, ...others }) {\n let underlineClass;\n if (underline === 'always') {\n underlineClass = 'underline';\n }\n else if (underline === 'hover') {\n underlineClass = 'hover:underline';\n }\n return _jsx(\"a\", { className: clsx(\"text-indigo-800 dark:text-indigo-300\", className, underlineClass), ...others, children: children });\n}\n//# sourceMappingURL=Link.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nimport { forwardRef } from \"react\";\nexport function MenuList({ className, children }) {\n return (_jsx(\"ul\", { className: `${className} space-y-1 flex flex-col items-start`, children: children }));\n}\nconst MenuListItem = forwardRef(function _MenuListItem(props, ref) {\n const { current, children, className, href = '#', onClick, ...others } = props;\n return (_jsx(\"li\", { className: clsx(className, current ? 'bg-muted' : '', 'w-full p-2 pl-3 text-sm leading-6 font-semibold hover:bg-muted'), children: _jsx(\"a\", { ref: ref, href: href, onClick: (e) => {\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n else if (href === '#') {\n e.preventDefault();\n }\n }, className: 'w-full flex items-center gap-x-3', ...others, children: children }) }));\n});\nMenuList.Item = MenuListItem;\n//# sourceMappingURL=MenuList.js.map","const INPUT_UNSTYLED = \"block m-0 p-0 w-full border-0 focus:outline-hidden focus:ring-0 bg-transparent\";\nconst INPUT_NO_PADDING = \"rounded-md text-sm flex w-full rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\";\nconst INPUT = INPUT_NO_PADDING + \" py-1.5\";\nconst Styles = {\n INPUT_UNSTYLED,\n INPUT_NO_PADDING,\n INPUT\n};\nexport { Styles };\n//# sourceMappingURL=styles.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\nimport { Styles } from \"./styles.js\";\nfunction numberToString(value) {\n if (value == null || isNaN(value)) {\n return '';\n }\n else {\n return value.toString();\n }\n}\n/**\n * The value of this input is always a number. It can be undefined or NaN. If NaN the input value will not be updated with the NaN one.\n * If undefined the input will be updated to be empty.\n * The onChange callback is called whenever the value changes. If the input cannot be parsed as a number\n * it will be returned as NaN.\n */\nconst NumberInput = React.forwardRef(({ value, onChange, className, noScroll = false, noSpinners = false, ...others }, ref) => {\n // we need to store the state here in string\n const [textValue, setTextValue] = React.useState(numberToString(value));\n const _onChange = (ev) => {\n const value = ev.target.value;\n setTextValue(value);\n if (value === '') {\n onChange && onChange(undefined, value);\n }\n else {\n const num = parseFloat(value);\n onChange && onChange(num, value);\n }\n };\n useEffect(() => {\n // we do not update if not empty and NaN\n if (value == null || !isNaN(value)) {\n const text = numberToString(value);\n setTextValue(text);\n }\n }, [value]);\n return (_jsx(\"input\", { onWheel: noScroll ? event => { event.target.blur(); } : others.onWheel, type: 'number', value: textValue, onChange: _onChange, className: clsx(className, Styles.INPUT, { \"no-spinners\": noSpinners }, noSpinners && \"[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\"), ref: ref, ...others }));\n});\nexport { NumberInput };\n//# sourceMappingURL=NumberInput.js.map","import i18next from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport ar from './locales/ar.json';\nimport de from './locales/de.json';\nimport en from './locales/en.json';\nimport es from './locales/es.json';\nimport fr from './locales/fr.json';\nimport it from './locales/it.json';\nimport ja from './locales/ja.json';\nimport ko from './locales/ko.json';\nimport pt from './locales/pt.json';\nimport ru from './locales/ru.json';\nimport tr from './locales/tr.json';\nimport zh from './locales/zh.json';\nimport zhTW from './locales/zh-TW.json';\nexport const NAMESPACE = 'vertesia.ui';\n// Scoped instance — does NOT touch the global i18next singleton\nconst i18nInstance = i18next.createInstance();\nvoid i18nInstance.use(initReactI18next).init({\n resources: {\n ar: { [NAMESPACE]: ar },\n de: { [NAMESPACE]: de },\n en: { [NAMESPACE]: en },\n es: { [NAMESPACE]: es },\n fr: { [NAMESPACE]: fr },\n it: { [NAMESPACE]: it },\n ja: { [NAMESPACE]: ja },\n ko: { [NAMESPACE]: ko },\n pt: { [NAMESPACE]: pt },\n ru: { [NAMESPACE]: ru },\n tr: { [NAMESPACE]: tr },\n zh: { [NAMESPACE]: zh },\n 'zh-TW': { [NAMESPACE]: zhTW },\n },\n fallbackLng: 'en',\n ns: [NAMESPACE],\n defaultNS: NAMESPACE,\n interpolation: {\n escapeValue: false, // React already escapes\n },\n react: {\n useSuspense: false, // Translations are bundled, no async loading\n },\n});\nexport { i18nInstance };\n//# sourceMappingURL=instance.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport { VTooltip } from \"@vertesia/ui/core\";\nimport { cn } from \"../libs/utils\";\nimport { Check, CopyIcon, Loader2 } from \"lucide-react\";\nimport clsx from \"clsx\";\nimport { useState } from \"react\";\nimport { i18nInstance, NAMESPACE } from '../../../i18n/instance.js';\nconst buttonVariants = cva(\"hover:cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", {\n variants: {\n variant: {\n destructive: \"bg-destructive dark:bg-destructive/10 text-destructive ring-1 ring-inset ring-destructive-muted/50 dark:ring-destructive-muted/50 shadow-xs hover:bg-destructive/50\",\n outline: \"border border-input bg-background shadow-xs hover:bg-muted ring-inset\",\n secondary: \"bg-primary/5 dark:bg-primary/10 text-primary shadow-xs hover:bg-primary/10 dark:hover:bg-primary/20 ring-inset\",\n ghost: \"hover:bg-muted/50 dark:hover:bg-muted/20 ring-inset\",\n link: \"text-foreground underline-offset-4 hover:underline ring-inset\",\n primary: \"bg-primary text-white shadow-xs hover:bg-primary/90 ring-inset\",\n unstyled: \"\"\n },\n size: {\n xs: 'h-7 rounded px-2 py-1 text-xs gap-x-1',\n sm: \"h-8 rounded px-3 text-xs\",\n md: \"h-9 rounded-md px-4 py-2\",\n lg: \"h-10 rounded-md px-3\",\n xl: 'rounded-md px-3.5 py-2.5 text-sm gap-x-2',\n icon: \"p-0 m-0 rounded-full\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n});\nconst Button = React.forwardRef(({ className, variant, size, asChild = false, alt, isDisabled, isLoading, title, onClick, type, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n const buttonElement = (_jsxs(Comp, { className: clsx(cn(buttonVariants({ variant, size })), className), disabled: isDisabled || isLoading || props.disabled, ref: ref, onClick: onClick, type: type, autoFocus: false, ...props, children: [isLoading && _jsx(Loader2, { className: \"animate-spin\" }), props.children] }));\n if (alt || title) {\n return (_jsx(VTooltip, { description: alt || title, asChild: true, className: \"cursor-pointer\", size: \"xs\", placement: \"top\", children: buttonElement }));\n }\n return buttonElement;\n});\nButton.displayName = \"Button\";\nconst CopyButton = React.forwardRef(({ size, content, toast, className, alt, ...props }, ref) => {\n const [isCopied, setIsCopied] = useState(false);\n const t = i18nInstance.getFixedT(null, NAMESPACE);\n const handleCopy = (e) => {\n e.stopPropagation();\n navigator.clipboard.writeText(content).then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n if (!toast || !toast.toast) {\n return;\n }\n toast.toast({\n status: \"success\",\n title: toast.message || t('misc.copiedToClipboard'),\n duration: 2000,\n });\n }).catch((err) => {\n console.error(\"Failed to copy text: \", err);\n if (toast && toast.toast)\n toast.toast({\n status: \"error\",\n title: t('misc.failedToCopy'),\n duration: 2000,\n });\n });\n };\n return (_jsx(Button, { ref: ref, className: cn(className), variant: \"unstyled\", size: size || \"sm\", onClick: handleCopy, ...props, alt: alt ?? t('misc.copy'), children: isCopied ?\n _jsx(Check, { className: \"text-success\" })\n :\n _jsx(CopyIcon, { className: \"size-4\" }) }));\n});\nCopyButton.displayName = \"CopyButton\";\nexport { Button, CopyButton, buttonVariants };\n//# sourceMappingURL=button.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { motion } from \"framer-motion\";\nimport { X } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"./shadcn/button\";\nexport function Overlay({ children, overlayContent, className = \"\", overlayClassName = \"\", position = 'right', width, height, showCloseButton = true, onOpen, onClose, triggerClassName = \"\", backdropClassName = \"\", animationConfig = { type: \"spring\", stiffness: 300, damping: 30 } }) {\n const [isOpen, setIsOpen] = useState(false);\n const handleOpen = () => {\n setIsOpen(true);\n onOpen?.();\n };\n const handleClose = () => {\n setIsOpen(false);\n onClose?.();\n };\n const animationProps = getAnimationProps(position);\n const positionClasses = getPositionClasses(position, width, height);\n return (_jsxs(\"div\", { className: `flex items-center justify-center w-full ${className}`, children: [_jsx(\"div\", { onClick: handleOpen, className: `w-full align-left cursor-pointer ${triggerClassName}`, children: children }), isOpen && (_jsx(\"div\", { className: `z-45 fixed inset-0 bg-black bg-opacity-50 ${backdropClassName}`, children: _jsxs(motion.div, { ...animationProps, transition: animationConfig, className: `${positionClasses} ${overlayClassName}`, children: [showCloseButton && (_jsx(\"div\", { className: \"absolute top-2 right-2 z-10\", children: _jsx(Button, { onClick: handleClose, variant: \"primary\", children: _jsx(X, {}) }) })), _jsx(\"div\", { className: showCloseButton ? \"mt-8\" : \"\", children: overlayContent })] }) }))] }));\n}\nfunction getAnimationProps(position) {\n switch (position) {\n case 'left':\n return { initial: { x: \"-100%\" }, animate: { x: 0 }, exit: { x: \"-100%\" } };\n case 'right':\n return { initial: { x: \"100%\" }, animate: { x: 0 }, exit: { x: \"100%\" } };\n case 'top':\n return { initial: { y: \"-100%\" }, animate: { y: 0 }, exit: { y: \"-100%\" } };\n case 'bottom':\n return { initial: { y: \"100%\" }, animate: { y: 0 }, exit: { y: \"100%\" } };\n case 'center':\n return {\n initial: { opacity: 0, scale: 0.8 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.8 }\n };\n default:\n return { initial: { x: \"100%\" }, animate: { x: 0 }, exit: { x: \"100%\" } };\n }\n}\nfunction getPositionClasses(position, width, height) {\n const baseClasses = \"fixed bg-white shadow-lg p-4 relative\";\n switch (position) {\n case 'left':\n return `${baseClasses} left-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n case 'right':\n return `${baseClasses} right-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n case 'top':\n return `${baseClasses} top-[var(--header-height)] left-0 right-0 ${height || 'h-80'}`;\n case 'bottom':\n return `${baseClasses} bottom-0 left-0 right-0 ${height || 'h-80'}`;\n case 'center':\n return `${baseClasses} top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 ${width || 'w-96'} ${height || 'max-h-96'}`;\n default:\n return `${baseClasses} right-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n }\n}\n//# sourceMappingURL=Overlay.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nconst PORTAL_ID = '--tailwind-portal';\nexport function Portal({ children }) {\n const tempNode = useRef(null);\n const [portalEl, setPortalEl] = useState(null);\n // hack to have the Portal not generating hydration errors (content mismatch) on SSR / CSR\n useEffect(() => {\n if (tempNode.current) { // we are on the browser -> we an use the portal\n const doc = tempNode.current.ownerDocument;\n let portalEl = doc.getElementById(PORTAL_ID);\n if (!portalEl) {\n portalEl = doc.createElement('DIV');\n portalEl.id = PORTAL_ID;\n doc.body.appendChild(portalEl);\n }\n setPortalEl(portalEl);\n }\n }, [tempNode.current]);\n if (portalEl) {\n return createPortal(children, portalEl);\n }\n else {\n return _jsx(\"span\", { ref: tempNode });\n }\n}\n//# sourceMappingURL=Portal.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createContext, useContext, useEffect, useState } from \"react\";\nconst initialState = {\n theme: \"system\",\n setTheme: () => null,\n};\nconst ThemeProviderContext = createContext(initialState);\nexport { ThemeProviderContext };\nexport function ThemeProvider({ children, defaultTheme = \"system\", storageKey = \"vite-ui-theme\", ...props }) {\n const [theme, setTheme] = useState(() => localStorage.getItem(storageKey) || defaultTheme);\n useEffect(() => {\n const root = window.document.documentElement;\n root.classList.remove(\"light\", \"dark\");\n if (theme === \"system\") {\n const systemTheme = window.matchMedia(\"(prefers-color-scheme: dark)\")\n .matches\n ? \"dark\"\n : \"light\";\n root.classList.add(systemTheme);\n return;\n }\n root.classList.add(theme);\n }, [theme]);\n const value = {\n theme,\n setTheme: (theme) => {\n localStorage.setItem(storageKey, theme);\n setTheme(theme);\n },\n };\n return (_jsx(ThemeProviderContext.Provider, { ...props, value: value, children: children }));\n}\nexport const useTheme = () => {\n const context = useContext(ThemeProviderContext);\n if (context === undefined)\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n return context;\n};\n//# sourceMappingURL=ThemeProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect } from 'react';\nimport { I18nextProvider, useTranslation } from 'react-i18next';\nimport { i18nInstance, NAMESPACE } from './instance.js';\nfunction detectLanguage(lng) {\n return lng ?? navigator.language?.split('-')[0] ?? 'en';\n}\nexport function I18nProvider({ lng, children }) {\n // Set language synchronously on first render to avoid flash of wrong language\n const language = detectLanguage(lng);\n if (i18nInstance.language !== language) {\n void i18nInstance.changeLanguage(language);\n }\n // Also react to prop changes\n useEffect(() => {\n const lang = detectLanguage(lng);\n if (i18nInstance.language !== lang) {\n void i18nInstance.changeLanguage(lang);\n }\n }, [lng]);\n return (_jsx(I18nextProvider, { i18n: i18nInstance, children: children }));\n}\n/**\n * Hook for components inside @vertesia/ui to get translation functions.\n * Always binds to the 'vertesia.ui' namespace on the scoped instance.\n */\nexport function useUITranslation() {\n return useTranslation(NAMESPACE, { i18n: i18nInstance });\n}\nexport { i18nInstance, NAMESPACE } from './instance.js';\n//# sourceMappingURL=index.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Computer, Moon, Sun } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport { useTheme } from \"./ThemeProvider\";\nimport { useUITranslation } from \"../../../../i18n/index.js\";\nexport function ModeOption({ option, current, setTheme, icon, alt }) {\n return (_jsx(Button, { variant: current === option ? \"secondary\" : \"outline\", size: \"sm\", onClick: () => setTheme(option), alt: alt, children: icon }));\n}\nexport function ModeToggle({ label, className } = {}) {\n const { setTheme, theme } = useTheme();\n const { t } = useUITranslation();\n const resolvedLabel = label === false ? false : (label ?? t('theme.label'));\n return (_jsxs(\"div\", { className: className ?? (resolvedLabel ? \"flex justify-between px-2 items-center\" : \"flex items-center gap-1\"), children: [resolvedLabel && _jsx(\"p\", { className: \"text-sm font-semibold\", children: resolvedLabel }), _jsxs(\"div\", { className: \"flex gap-2\", children: [_jsx(ModeOption, { current: theme, option: \"system\", setTheme: setTheme, icon: _jsx(Computer, {}), alt: t('theme.system') }), _jsx(ModeOption, { current: theme, option: \"light\", setTheme: setTheme, icon: _jsx(Sun, {}), alt: t('theme.light') }), _jsx(ModeOption, { current: theme, option: \"dark\", setTheme: setTheme, icon: _jsx(Moon, {}), alt: t('theme.dark') })] })] }));\n}\n//# sourceMappingURL=ThemeSwitcher.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport { cn } from \"../libs/utils\";\nconst Card = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"rounded-xl border bg-card text-card-foreground shadow\", className), ...props })));\nCard.displayName = \"Card\";\nconst CardHeader = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"flex flex-col p-6\", className), ...props })));\nCardHeader.displayName = \"CardHeader\";\nconst CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"font-semibold leading-none tracking-tight\", className), ...props })));\nCardTitle.displayName = \"CardTitle\";\nconst CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"text-sm text-muted-foreground\", className), ...props })));\nCardDescription.displayName = \"CardDescription\";\nconst CardContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"p-6 pt-0\", className), ...props })));\nCardContent.displayName = \"CardContent\";\nconst CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn(\"flex items-center p-6 pt-0\", className), ...props })));\nCardFooter.displayName = \"CardFooter\";\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n//# sourceMappingURL=card.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function VisuallyHidden({ children }) {\n return (_jsx(\"span\", { style: {\n border: 0,\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: 0,\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\",\n }, children: children }));\n}\n//# sourceMappingURL=visuallyHidden.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { cn } from \"../../libs/utils\";\nimport { X } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport { VisuallyHidden } from \"../../libs/visuallyHidden\";\nimport { createContext, useContext } from \"react\";\nimport { usePortalContainer } from \"../../../hooks/PortalContainerProvider\";\nconst ModalContext = createContext(false);\nexport function useIsInModal() {\n return !!useContext(ModalContext);\n}\nexport function ModalContextProvider({ children }) {\n return _jsx(ModalContext.Provider, { value: true, children: children });\n}\nexport function Modal({ className, children, isOpen, onClose, description = \"Modal Description\", noCloseButton = false, allowOverflow = false, disableCloseOnClickOutside = false, size = \"md\", action }) {\n const handleOpenChange = (open) => {\n if (!open) {\n onClose();\n }\n };\n function getSizeClasses() {\n switch (size) {\n case \"sm\":\n return \"max-w-[20vw]\";\n case \"md\":\n return \"max-w-[60vw] lg:max-w-[40vw]\";\n case \"lg\":\n return \"max-w-[80vw] md:max-w-[60vw]\";\n case \"xl\":\n return \"max-w-[95vw] lg:max-w-[80vw]\";\n default:\n return \"max-w-[60vw] lg:max-w-[40vw]\";\n }\n }\n return (_jsxs(Dialog, { open: isOpen, onOpenChange: (open) => {\n if (!disableCloseOnClickOutside || open) {\n handleOpenChange(open);\n }\n }, children: [allowOverflow && _jsx(DialogOverlay, { className: \"z-50 fixed inset-0 bg-black/80\" }), _jsx(VisuallyHidden, { children: _jsx(DialogDescription, { children: description }) }), _jsxs(DialogContent, { className: cn(\"min-h-20 p-4\", \"fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] border bg-background shadow-lg duration-200 sm:rounded-lg\", getSizeClasses(), className), children: [_jsx(\"div\", { className: \"top-4 right-4 absolute\", children: _jsxs(\"div\", { className: \"flex gap-2\", children: [action && (_jsx(_Fragment, { children: action })), !noCloseButton && (_jsx(DialogClose, { onClick: () => handleOpenChange(false), asChild: true, autoFocus: false, children: _jsx(Button, { variant: \"outline\", alt: \"Close\", className: \"data-[state=open]:bg-accent opacity-70 hover:opacity-100 rounded-sm focus:outline-none focus:ring-2 focus:ring-ring ring-offset-background focus:ring-offset-2 data-[state=open]:text-muted-foreground transition-opacity disabled:pointer-events-none\", children: _jsx(X, { className: \"size-4\" }) }) }))] }) }), _jsx(ModalContextProvider, { children: children })] })] }));\n}\nexport const ModalTitle = ({ children, show = true, className, description, showDivider = false, ...props }) => {\n if (!show) {\n return (_jsxs(VisuallyHidden, { children: [_jsx(DialogTitle, { children: children }), description && _jsx(DialogDescription, { children: description })] }));\n }\n return (_jsx(_Fragment, { children: _jsxs(DialogTitle, { className: cn(showDivider ? \"border-b-solid border-b border-b-1 pb-2 mb-4\" : \"\", \"text-lg font-semibold leading-6 tracking-tight\", { 'py-2': !description }, className), ...props, children: [children, description && (_jsx(DialogDescription, { className: \"text-sm !font-normal text-muted-foreground pb-2\", children: description }))] }) }));\n};\nexport const ModalBody = ({ children, className, ...props }) => {\n return (_jsx(\"div\", { className: cn(\"text-sm max-h-[80vh] overflow-y-auto\", className), ...props, children: children }));\n};\nexport const ModalFooter = ({ align = \"right\", children, className, ...props }) => {\n const alignClass = {\n left: \"justify-start\",\n center: \"justify-center\",\n right: \"justify-end\",\n };\n return (_jsx(\"div\", { className: cn(\"w-full flex py-3 sm:py-2 sm:flex sm:flex-row-reverse sm:flex-row sm:justify-end sm:space-x-2\", alignClass[align], className), ...props, children: children }));\n};\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogPortal = DialogPrimitive.Portal;\nconst DialogClose = DialogPrimitive.Close;\nconst DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn(\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\", className), ...props })));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\nconst DialogContent = React.forwardRef(({ className, children, ...props }, ref) => {\n const container = usePortalContainer();\n return (_jsxs(DialogPortal, { container: container, children: [_jsx(DialogOverlay, {}), _jsx(DialogPrimitive.Content, { ref: ref, autoFocus: false, onOpenAutoFocus: (event) => {\n event.preventDefault();\n }, className: cn(\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] border bg-background shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\", className), ...props, children: children })] }));\n});\nDialogContent.displayName = DialogPrimitive.Content.displayName;\nconst DialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Description, { ref: ref, className: cn(\"text-sm text-muted\", className), ...props })));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\nconst DialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Title, { ref: ref, className: cn(\"text-lg font-semibold leading-none tracking-tight\", className), ...props })));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\nexport { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogTitle, DialogDescription, };\n//# sourceMappingURL=dialog.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TriangleAlert } from \"lucide-react\";\nimport { useRef } from \"react\";\nimport { useUITranslation } from \"@vertesia/ui/i18n\";\nimport { Modal, ModalTitle, ModalFooter } from \"./dialog\";\nimport { Button } from \"../button\";\nexport function ConfirmModal({ title, content, onConfirm, onCancel, isOpen, isLoading }) {\n const { t } = useUITranslation();\n const cancelButtonRef = useRef(null);\n return (_jsxs(Modal, { isOpen: isOpen, onClose: onCancel, description: \"Confirm Modal\", children: [_jsxs(\"div\", { className: \"sm:flex sm:items-start p-2\", children: [_jsx(\"div\", { className: \"mx-auto flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10\", children: _jsx(TriangleAlert, { className: \"size-6 text-red-600\", \"aria-hidden\": \"true\" }) }), _jsxs(\"div\", { className: \"mt-3 text-center sm:ml-4 sm:mt-0 sm:text-left\", children: [_jsx(ModalTitle, { className: \"leading-6\", show: true, children: title }), _jsx(\"div\", { className: \"mt-2\", children: _jsx(\"div\", { className: \"prose text-sm text-gray-500\", children: content }) })] })] }), _jsxs(ModalFooter, { align: \"right\", children: [_jsx(Button, { variant: \"destructive\", onClick: onConfirm, isLoading: isLoading, children: t('modal.confirm') }), _jsx(Button, { variant: \"outline\", onClick: onCancel, ref: cancelButtonRef, children: t('modal.cancel') })] })] }));\n}\n//# sourceMappingURL=ConfirmModal.js.map","import { createContext, useContext } from \"react\";\nexport function useToast() {\n return useContext(ToastContext);\n}\nconst ToastContext = createContext(() => { });\nexport { ToastContext };\n//# sourceMappingURL=ToastContext.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { CircleCheck, AlertTriangle, Info, CircleX, X } from \"lucide-react\";\nimport { useEffect, useState, useRef } from \"react\";\nconst icons = {\n success: CircleCheck,\n error: CircleX,\n warning: AlertTriangle,\n info: Info\n};\nconst colors = {\n success: 'text-success',\n error: 'text-destructive',\n warning: 'text-attention',\n info: 'text-info'\n};\nexport function NotificationPanel({ data, onClose }) {\n const [show, setShow] = useState(true);\n const timeoutRef = useRef(null);\n const resetTimeout = () => {\n if (timeoutRef.current) {\n globalThis.clearTimeout(timeoutRef.current);\n }\n if (data.duration) {\n timeoutRef.current = setTimeout(() => setShow(false), data.duration);\n }\n };\n const clearCurrentTimeout = () => {\n if (timeoutRef.current) {\n globalThis.clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n useEffect(() => {\n resetTimeout();\n return clearCurrentTimeout;\n }, [data.duration]);\n const Icon = icons[data.status] || Info;\n const color = colors[data.status] || 'text-info';\n // Global notification live region, render this permanently at the end of the document\n return (_jsx(\"div\", { \"aria-live\": \"assertive\", className: \"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6 z-100\", children: _jsx(\"div\", { className: \"flex w-full flex-col items-center space-y-4 sm:items-end\", children: _jsx(AnimatePresence, { onExitComplete: onClose, children: show && (_jsx(motion.div, { className: \"pointer-events-auto w-full max-w-md overflow-hidden rounded-lg bg-muted shadow-lg ring-1 ring-border\", initial: { opacity: 0, x: 8 }, animate: { opacity: 1, x: 0, transition: { ease: 'easeOut', duration: 0.7 } }, exit: { opacity: 0, transition: { ease: 'easeIn', duration: 0.3 } }, onMouseEnter: clearCurrentTimeout, onMouseLeave: resetTimeout, children: _jsx(\"div\", { className: \"p-5\", children: _jsxs(\"div\", { className: \"flex items-start\", children: [_jsx(\"div\", { className: \"shrink-0\", children: _jsx(Icon, { className: `size-6 ${color}`, \"aria-hidden\": \"true\" }) }), _jsxs(\"div\", { className: \"ml-3 flex-1 pt-0.5 min-w-0\", children: [_jsx(\"p\", { className: \"text-sm font-semibold text-foreground break-words\", children: data.title }), data.description && (_jsx(\"p\", { className: \"mt-2 text-sm text-muted break-words whitespace-pre-wrap leading-relaxed\", children: data.description }))] }), _jsx(\"div\", { className: \"ml-4 flex shrink-0\", children: _jsxs(\"button\", { type: \"button\", className: \"inline-flex rounded-md bg-muted text-muted hover:text-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background\", onClick: () => setShow(false), children: [_jsx(\"span\", { className: \"sr-only\", children: \"Close\" }), _jsx(X, { className: \"size-5\", \"aria-hidden\": \"true\" })] }) })] }) }) })) }) }) }));\n}\n//# sourceMappingURL=NotificationPanel.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { Portal } from \"../Portal.js\";\nimport { NotificationPanel } from \"./NotificationPanel.js\";\nimport { ToastContext } from \"./ToastContext.js\";\nexport function ToastProvider({ children }) {\n const [data, setData] = useState(null);\n const toast = (data) => {\n setData(data);\n };\n return (_jsxs(_Fragment, { children: [_jsx(ToastContext.Provider, { value: toast, children: children }), data && _jsx(Portal, { children: _jsx(NotificationPanel, { data: data, onClose: () => toast(null) }) })] }));\n}\n//# sourceMappingURL=ToastProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useUITranslation } from \"@vertesia/ui/i18n\";\nimport { ConfirmModal } from \"./ConfirmModal.js\";\nimport { useToast } from \"../../toast/index.js\";\nexport function DeleteModal({ idToDelete, title, content, setIdToDelete, deleteApi }) {\n const { t } = useUITranslation();\n const toast = useToast();\n const doDelete = async () => {\n if (!idToDelete) {\n return;\n }\n return deleteApi(idToDelete)\n .then(() => {\n toast({\n title: t('modal.delete.succeeded'),\n status: 'success'\n });\n }).catch((err) => {\n toast({\n title: t('modal.delete.failed'),\n description: err.message ?? t('modal.delete.error'),\n status: 'error'\n });\n }).finally(() => {\n setIdToDelete(undefined);\n });\n };\n return (_jsx(ConfirmModal, { title: title, content: content, isOpen: !!idToDelete, onConfirm: doDelete, onCancel: () => { setIdToDelete(undefined); } }));\n}\n//# sourceMappingURL=DeleteModal.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../libs/utils\";\nconst Separator = React.forwardRef(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (_jsx(SeparatorPrimitive.Root, { ref: ref, decorative: decorative, orientation: orientation, className: cn(\"shrink-0 bg-border\", orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\", className), ...props })));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\nexport { Separator };\n//# sourceMappingURL=separator.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport * as React from \"react\";\nimport { usePortalContainer } from \"../../hooks/PortalContainerProvider\";\nimport { cn } from \"../libs/utils\";\nexport const PopoverContext = React.createContext(null);\nconst Popover = ({ hover = false, click = false, modal, children, _open, onOpenChange }) => {\n const [open, setOpen] = React.useState(_open || false);\n const handleOpenChange = (open) => {\n setOpen(open);\n if (onOpenChange) {\n onOpenChange(open);\n }\n };\n return (_jsx(PopoverContext.Provider, { value: { open, setOpen, hover, click }, children: _jsx(PopoverPrimitive.Root, { open: open, onOpenChange: handleOpenChange, modal: modal, children: children }) }));\n};\nfunction handleHover(hover = false, setOpen = () => { }, type) {\n if (hover) {\n setOpen(type === \"enter\");\n }\n}\nconst PopoverTrigger = React.forwardRef(({ children, ...props }, ref) => {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error(\"PopoverTrigger must be used within a Popover\");\n }\n const { setOpen, hover, click } = context;\n return (_jsx(PopoverPrimitive.Trigger, { ref: ref, asChild: true, onMouseEnter: () => handleHover(hover, setOpen, \"enter\"), onMouseLeave: () => handleHover(hover, setOpen, \"leave\"), onClick: () => {\n if (click)\n setOpen((prev) => !prev);\n }, ...props, children: children }));\n});\nPopoverTrigger.displayName = PopoverPrimitive.Trigger.displayName;\nconst PopoverAnchor = PopoverPrimitive.Anchor;\nconst PopoverContent = React.forwardRef(({ className, align = \"center\", side = \"bottom\", ...props }, ref) => {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error(\"PopoverContent must be used within a Popover\");\n }\n const { setOpen, hover } = context;\n const container = usePortalContainer();\n return (_jsx(PopoverPrimitive.Portal, { container: container, children: _jsx(PopoverPrimitive.Content, { ref: ref, align: align, side: side, onMouseEnter: () => handleHover(hover, setOpen, \"enter\"), onMouseLeave: () => handleHover(hover, setOpen, \"leave\"), \n // onClick={() => {setOpen(false)}}\n className: cn(\"z-50 w-72 rounded-md border-popover bg-popover text-popover-foreground ring-1 ring-gray-200 dark:ring-slate-700 shadow-md focus:outline-none animate-in\", \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\", className), ...props }) }));\n});\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\nconst PopoverClose = PopoverPrimitive.Close;\nPopoverClose.displayName = PopoverPrimitive.Close.displayName;\nexport function usePopoverContext() {\n const ctx = React.useContext(PopoverContext);\n if (!ctx)\n throw new Error('usePopoverContext must be used within a Popover');\n return { ...ctx, close: () => ctx.setOpen(false) };\n}\nexport { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };\n//# sourceMappingURL=popover.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"../libs/utils\";\nimport { Dialog, DialogContent } from \"./modal/dialog\";\nconst Command = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive, { ref: ref, className: cn(\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\", className), ...props })));\nCommand.displayName = CommandPrimitive.displayName;\nconst CommandDialog = ({ children, ...props }) => {\n return (_jsx(Dialog, { ...props, children: _jsx(DialogContent, { className: \"shadow-lg p-0 overflow-hidden\", children: _jsx(Command, { className: \"[&_[cmdk-group]]:px-2 [&_[cmdk-item]]:px-2 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-item]_svg]:w-5 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\", children: children }) }) }));\n};\nconst CommandInput = React.forwardRef(({ className, ...props }, ref) => (_jsxs(\"div\", { className: \"flex items-center px-3 border-b\", \"cmdk-input-wrapper\": \"\", children: [_jsx(Search, { className: \"opacity-50 size-4 shrink-0\" }), _jsx(CommandPrimitive.Input, { ref: ref, className: cn(\"focus:ring-0\", \"border-0 flex h-8 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\", className), ...props })] })));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\nconst CommandList = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.List, { ref: ref, className: cn(\"overflow-y-auto overflow-x-hidden\", className), ...props })));\nCommandList.displayName = CommandPrimitive.List.displayName;\nconst CommandEmpty = React.forwardRef((props, ref) => (_jsx(CommandPrimitive.Empty, { ref: ref, className: \"py-2 text-sm text-center\", ...props })));\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\nconst CommandGroup = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Group, { ref: ref, className: cn(\"overflow-y-auto overflow-x-hidden p-1 text-foreground\", \"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\", className), ...props })));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\nconst CommandSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Separator, { ref: ref, className: cn(\"-mx-1 h-px bg-border\", className), ...props })));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\nconst CommandItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Item, { ref: ref, className: cn(\"hover:bg-muted cursor-pointer relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", className), ...props })));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\nconst CommandShortcut = ({ className, ...props }) => {\n return (_jsx(\"span\", { className: cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className), ...props }));\n};\nCommandShortcut.displayName = \"CommandShortcut\";\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };\n//# sourceMappingURL=command.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { isEqual } from 'lodash-es';\nimport { AlertTriangle, Check, ChevronsUpDown, LoaderCircle, SearchIcon, SquarePlus, X } from 'lucide-react';\nimport { useState, useEffect, useRef, useMemo } from 'react';\nimport { Popover, PopoverContent, PopoverTrigger, PopoverClose } from './popover';\nimport { Command, CommandEmpty, CommandGroup, CommandItem, CommandList } from './command';\nimport { Input } from './input';\nimport { Button } from './button';\nimport { VTooltip } from './tooltip';\nexport function SelectBox({ options, optionLabel, value, onChange, addNew, addNewLabel, disabled, filterBy, label, placeholder, className, popupClass, isClearable, border = true, multiple = false, by, inline = false, isLoading = false, warnOnMissingValue = true, missingValueWarning = \"Value not in options list, may not be valid\", clearIcon, clearTitle }) {\n const triggerRef = useRef(null);\n const [open, setOpen] = useState(false);\n const [width, setWidth] = useState(0);\n const [filterValue, setFilterValue] = useState('');\n // Check if value is in options list (for single select only)\n const isMissingValue = useMemo(() => {\n if (!warnOnMissingValue || multiple || value == null || !options)\n return false;\n // Use the isOptionsEqual helper which respects the 'by' comparator\n return !options.some(opt => {\n if (typeof by === 'string') {\n return opt[by] === value[by];\n }\n else if (typeof by === 'function') {\n return by(opt, value);\n }\n else {\n return isEqual(opt, value);\n }\n });\n }, [warnOnMissingValue, multiple, value, options, by]);\n useEffect(() => {\n const element = triggerRef.current;\n if (!element) {\n return;\n }\n const updateWidth = () => {\n const contentWidth = element.getBoundingClientRect().width;\n setWidth(contentWidth);\n };\n const resizeObserver = new ResizeObserver(() => {\n updateWidth();\n });\n updateWidth();\n resizeObserver.observe(element);\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n const handleTriggerClick = (e) => {\n if (disabled || isLoading) {\n e.preventDefault();\n return;\n }\n setOpen(!open);\n };\n const _onClick = (opt) => {\n if (multiple) {\n const currentValues = Array.isArray(value) ? value : [];\n const isSelected = isOptionSelected(opt, currentValues);\n if (isSelected) {\n // Remove from selection\n const newValues = currentValues.filter(v => !isOptionsEqual(v, opt));\n onChange(newValues);\n }\n else {\n // Add to selection\n onChange([...currentValues, opt]);\n }\n // Don't close the popover in multiple mode\n }\n else {\n setOpen(false);\n onChange(opt);\n }\n };\n // Helper function to check if an option is selected\n const isOptionSelected = (option, selectedValues) => {\n if (!selectedValues || selectedValues.length === 0)\n return false;\n return selectedValues.some(v => isOptionsEqual(v, option));\n };\n // Helper function to compare options for equality\n const isOptionsEqual = (a, b) => {\n // Handle null/undefined values\n if (a == null || b == null) {\n return a === b;\n }\n if (typeof by === 'string') {\n return a[by] === b[by];\n }\n else if (typeof by === 'function') {\n return by(a, b);\n }\n else {\n return isEqual(a, b);\n }\n };\n let filteredOptions = options || [];\n function getFilterByFn(filterBy) {\n if (!filterBy) {\n return (o) => String(o).toLowerCase();\n }\n else if (typeof filterBy === 'string') {\n return (o) => String(o[filterBy]).toLowerCase();\n }\n else {\n return filterBy;\n }\n }\n const filterLc = filterValue.toLowerCase();\n const filterFn = getFilterByFn(filterBy);\n filteredOptions = filteredOptions.filter(o => filterFn(o).includes(filterLc));\n const renderSingleValue = () => {\n if (!value || (Array.isArray(value) && value.length === 0)) {\n return _jsx(\"span\", { className: \"text-muted\", children: placeholder });\n }\n const singleValue = Array.isArray(value) ? value[0] : value;\n return optionLabel ? optionLabel(singleValue) : singleValue;\n };\n const renderMultipleValue = () => {\n const arrayValue = Array.isArray(value) ? value : (value ? [value] : []);\n if (arrayValue.length === 0) {\n return _jsx(\"span\", { className: \"text-muted\", children: placeholder });\n }\n if (arrayValue.length === 1) {\n return optionLabel ? optionLabel(arrayValue[0]) : arrayValue[0];\n }\n return (_jsxs(\"div\", { className: \"flex flex-wrap gap-1\", children: [arrayValue.slice(0, 1).map((item, index) => (_jsx(\"span\", { className: \"inline-flex items-center gap-1 px-2 py-1 text-xs bg-muted rounded\", children: optionLabel ? optionLabel(item) : item }, index))), arrayValue.length > 1 && (_jsxs(\"span\", { className: \"inline-flex items-center px-2 py-1 text-xs bg-muted rounded\", children: [\"+\", arrayValue.length - 1, \" more\"] }))] }));\n };\n // Render the options list content\n const renderOptionsContent = () => (_jsxs(_Fragment, { children: [filterBy && (_jsxs(\"div\", { className: 'flex justify-start items-center mb-1', children: [_jsx(\"div\", { className: 'mx-2', children: _jsx(SearchIcon, { className: \"size-4\" }) }), _jsx(Input, { variant: 'unstyled', value: filterValue, onChange: setFilterValue, className: \"w-full p-1 rounded-md\", placeholder: \"Search...\" })] })), _jsx(Command, { className: \"overflow-hidden\", children: _jsxs(CommandList, { className: inline ? \"max-h-full overflow-y-auto\" : \"max-h-[200px] overflow-y-auto\", onWheel: (e) => { e.currentTarget.scrollTop += e.deltaY; }, children: [_jsx(CommandEmpty, { children: \"No result found.\" }), _jsx(CommandGroup, { children: filteredOptions?.map((opt, index) => {\n const isSelected = multiple\n ? isOptionSelected(opt, Array.isArray(value) ? value : [])\n : value != null ? isOptionsEqual(value, opt) : false;\n return (_jsx(CommandItem, { onSelect: () => _onClick(opt), className: \"w-full\", children: multiple || inline ? (_jsxs(\"div\", { className: 'w-full flex justify-between items-center cursor-pointer', children: [_jsx(\"div\", { className: 'w-full truncate text-left', children: optionLabel ? optionLabel(opt) : opt }), isSelected && _jsx(Check, { className: \"size-4\" })] })) : (_jsxs(PopoverClose, { className: 'w-full flex justify-between items-center', children: [_jsx(\"div\", { className: 'w-full truncate text-left', children: optionLabel ? optionLabel(opt) : opt }), isSelected && _jsx(Check, { className: \"size-4\" })] })) }, index));\n }) })] }) }), addNew && (_jsx(\"div\", { className: 'p-1', children: _jsxs(\"a\", { onClick: addNew, className: clsx('gap-x-2 px-2 py-1.5 truncate group flex rounded-md items-center text-sm cursor-pointer hover:bg-accent'), children: [_jsx(SquarePlus, { size: 16, strokeWidth: 1.25, absoluteStrokeWidth: true }), addNewLabel] }) }))] }));\n if (inline) {\n return (_jsx(\"div\", { className: clsx(className, border && 'border border-border rounded-md', \"bg-popover p-1\", popupClass), children: isLoading\n ? _jsx(\"div\", { className: \"flex justify-center items-center p-2 text-muted text-sm\", children: _jsx(LoaderCircle, { className: \"size-4 animate-spin\" }) })\n : renderOptionsContent() }));\n }\n return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(\"div\", { ref: triggerRef, onClick: handleTriggerClick, className: clsx(className, isLoading\n ? 'flex justify-center items-center gap-2 border border-border rounded-md p-2 text-muted text-sm'\n : clsx(border && (isMissingValue ? 'border border-destructive' : 'border border-border'), 'flex flex-row gap-2 items-center justify-between p-2 rounded-md group relative [&:hover_.clear-button]:opacity-100', !disabled ? \"cursor-pointer hover:bg-muted\" : \"cursor-not-allowed text-muted\")), children: isLoading ? (_jsx(LoaderCircle, { className: \"size-4 animate-spin\" })) : (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: clsx(\"flex flex-col w-full rounded-md text-sm min-h-6 items-center justify-center truncate\", !disabled && \"\", isClearable && value && (Array.isArray(value) ? value.length > 0 : true) && \"pr-2\"), children: [label && _jsx(\"div\", { className: 'w-full text-left text-xs font-semibold', children: label }), _jsxs(\"div\", { className: clsx('w-full text-left ', !disabled && '', isMissingValue && 'text-destructive'), children: [isMissingValue && (_jsx(VTooltip, { description: missingValueWarning, placement: \"top\", asChild: true, children: _jsx(AlertTriangle, { className: \"inline-block size-4 mr-1 -mt-0.5 cursor-help\" }) })), multiple ? renderMultipleValue() : renderSingleValue()] })] }), _jsxs(\"div\", { className: \"flex items-center gap-1 group\", children: [isClearable && value && (Array.isArray(value) ? value.length > 0 : true) && (_jsx(Button, { variant: \"link\", size: \"icon\", disabled: disabled, alt: clearTitle || \"Clear selection\", onClick: (e) => {\n e.stopPropagation();\n if (multiple) {\n onChange([]);\n }\n else {\n onChange(undefined);\n }\n }, className: \"cursor-pointer hover:bg-muted/20 clear-button opacity-0 transition-opacity duration-200 rounded p-1\", children: clearIcon ? clearIcon : _jsx(X, { className: \"size-4\" }) })), !disabled && (_jsx(ChevronsUpDown, { className: \"size-4 opacity-50\" }))] })] })) }) }), _jsx(PopoverContent, { style: { width: `${width}px`, zIndex: 1000000 }, className: clsx(\"min-w-[8rem] w-64 bg-popover p-1 border shadow\", \"divide-y divide-border\", popupClass), children: renderOptionsContent() })] }));\n}\n//# sourceMappingURL=selectBox.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../libs/utils\";\nimport { SelectBox } from \"./selectBox\";\nconst TabsContext = React.createContext({\n size: undefined,\n tabs: undefined,\n current: undefined,\n setTab: undefined,\n responsive: false,\n variant: \"tabs\",\n updateHash: true\n});\nconst Tabs = ({ tabs, defaultValue, current, className, fullWidth, fullHeight, children, onTabChange, responsive = false, variant = \"tabs\", updateHash = true }) => {\n // Filter tabs based on is_allowed (undefined or true means visible)\n const visibleTabs = React.useMemo(() => tabs.filter(tab => tab.is_allowed === undefined || tab.is_allowed === true), [tabs]);\n // Initialize value\n const [value, setValue] = React.useState(() => {\n // First check if current is provided\n const currentValue = typeof current === 'function' ? current() : current;\n if (currentValue) {\n return currentValue;\n }\n // Then check hash\n const hash = window.location.hash;\n const currentTab = hash ? hash.substring(1) : undefined;\n // Check if the tab from hash exists in visible tabs\n if (currentTab && visibleTabs.some(tab => tab.name === currentTab)) {\n return currentTab;\n }\n // Fall back to default or first visible tab\n return defaultValue || visibleTabs[0]?.name;\n });\n // Update when current prop changes (but don't create a loop)\n React.useEffect(() => {\n const currentValue = typeof current === 'function' ? current() : current;\n if (currentValue && currentValue !== value) {\n setValue(currentValue);\n }\n }, [current]);\n // Listen to hash changes only when there's no current prop being controlled externally\n React.useEffect(() => {\n if (current)\n return; // Skip hash handling if controlled by parent\n const handleHashChange = () => {\n const hash = window.location.hash;\n const currentTab = hash ? hash.substring(1) : undefined;\n // Only update if the tab exists in visible tabs\n if (currentTab && visibleTabs.some(tab => tab.name === currentTab)) {\n setValue(currentTab);\n }\n else if (!hash && defaultValue) {\n // If no hash, fall back to default\n setValue(defaultValue);\n }\n };\n // Check initial hash\n handleHashChange();\n window.addEventListener('hashchange', handleHashChange);\n return () => window.removeEventListener('hashchange', handleHashChange);\n }, [current, visibleTabs, defaultValue]);\n const handleValueChange = (newValue) => {\n setValue(newValue);\n // Update the URL hash when tab changes (only if updateHash is true and not controlled by parent)\n if (updateHash && !current) {\n // Preserve existing history state when changing hash\n const currentState = window.history.state;\n const newUrl = window.location.pathname + window.location.search + '#' + newValue;\n window.history.pushState(currentState, '', newUrl);\n }\n if (onTabChange) {\n onTabChange(newValue);\n }\n };\n const setTab = React.useCallback((tabName) => {\n handleValueChange(tabName);\n }, [handleValueChange]);\n return (_jsx(TabsContext.Provider, { value: { tabs: visibleTabs, size: fullWidth ? visibleTabs.length : 0, current: value, setTab, responsive: responsive, variant, updateHash }, children: _jsx(TabsPrimitive.Root, { defaultValue: value || visibleTabs[0]?.name, value: value, onValueChange: handleValueChange, className: cn(\"flex-1 flex flex-col min-h-0 px-2\", fullHeight && \"h-full\", className), children: children }) }));\n};\nconst TabsBar = ({ className, sticky, direction }) => {\n const { tabs, size, current, setTab, responsive, variant, updateHash } = React.useContext(TabsContext);\n const fullWidth = size !== 0;\n const handleTabChange = React.useCallback((tabName) => {\n if (!tabs || !setTab)\n return;\n const tab = tabs.find(t => t.name === tabName);\n if (tab?.href && updateHash) {\n // Preserve existing history state when changing tabs\n const currentState = window.history.state;\n window.history.pushState(currentState, '', tab.href);\n }\n setTab(tabName);\n }, [tabs, setTab, updateHash]);\n if (!tabs || !setTab) {\n console.warn(\"TabsBar: No tabs provided or setTab not available\");\n return null;\n }\n return (_jsxs(_Fragment, { children: [responsive && (_jsx(\"div\", { className: \"px-2 block lg:hidden\", children: _jsx(SelectBox, { label: \"Tab\", className: cn(sticky && \"sticky top-0 bg-background z-10\", className), options: tabs, optionLabel: (tab) => typeof tab.label === 'string' ? tab.label : String(tab.label), value: tabs.find(tab => tab.name === current), onChange: (tab) => {\n handleTabChange(tab.name);\n } }) })), _jsx(TabsList, { size: size, variant: variant, className: cn((fullWidth ? \"w-full\" : \"\"), sticky && \"sticky top-0 bg-background z-10\", direction === \"vertical\" ? \"flex-col items-start\" : \"flex-row\", responsive ? \"hidden lg:flex\" : \"\", className), children: tabs.map((tab) => (_jsx(TabsTrigger, { className: cn(direction === \"vertical\" ? \"w-full text-left\" : \"\"), value: tab.name, disabled: tab.disabled, href: tab.href, variant: variant, onClick: () => handleTabChange(tab.name), children: tab.label }, tab.name))) })] }));\n};\nconst TabsPanel = ({ className }) => {\n const { tabs } = React.useContext(TabsContext);\n if (!tabs)\n return null;\n return (_jsx(_Fragment, { children: tabs.map((tab) => (_jsx(TabsContent, { value: tab.name, className: className, children: tab.content }, tab.name))) }));\n};\nconst TabsList = React.forwardRef(({ className, size, variant = \"tabs\", ...props }, ref) => (_jsx(TabsContext.Provider, { value: { size, variant }, children: _jsx(TabsPrimitive.List, { ref: ref, className: cn(variant === \"tabs\"\n ? \"border-b -mb-px flex space-x-4\"\n : \"flex space-x-2 p-1 rounded-md\", className), ...props }) })));\nTabsList.displayName = TabsPrimitive.List.displayName;\nconst TabsTrigger = React.forwardRef(({ className, href, variant = \"tabs\", ...props }, ref) => {\n const { size } = React.useContext(TabsContext);\n const handleClick = React.useCallback((event) => {\n if (href) {\n event.preventDefault();\n // Preserve existing history state when changing tabs\n const currentState = window.history.state;\n window.history.pushState(currentState, '', href);\n }\n if (props.onClick) {\n props.onClick(event);\n }\n }, [href, props.onClick]);\n return (_jsx(TabsPrimitive.Trigger, { ref: ref, className: cn(variant === \"tabs\"\n ? cn(\"border-b-2 px-2 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer\", \"border-transparent text-muted-foreground hover:border-border hover:text-foreground\", \"data-[state=active]:border-primary data-[state=active]:text-primary\", \"disabled:pointer-events-none disabled:opacity-50\")\n : cn(\"px-3 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer rounded-sm transition-colors\", \"tborder border-input bg-muted shadow-xs hover:bg-muted ring-inset\", \"data-[state=active]:bg-primary data-[state=active]:text-white data-[state=active]:shadow-sm\", \"disabled:pointer-events-none disabled:opacity-50\"), className, size ? `w-1/${size}` : \"\"), onClick: handleClick, ...props }));\n});\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\nconst TabsContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Content, { ref: ref, className: cn(\"focus-visible:outline-none\", \"flex-1 overflow-y-auto min-h-0 pt-2 pb-4\", className), ...props })));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\nexport { Tabs, TabsBar, TabsPanel, TabsList, TabsTrigger, TabsContent };\n//# sourceMappingURL=tabs.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../libs/utils\";\nconst labelVariants = cva(\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\");\nconst Label = React.forwardRef(({ className, required, ...props }, ref) => (_jsxs(LabelPrimitive.Root, { ref: ref, className: cn(labelVariants(), className), ...props, children: [props.children, required && _jsx(\"span\", { className: \"text-destructive-foreground ml-1\", children: \"*\" })] })));\nLabel.displayName = LabelPrimitive.Root.displayName;\nexport { Label };\n//# sourceMappingURL=label.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { cn } from \"../libs/utils\";\nimport { Button } from \"./button\";\nexport function Breadcrumbs({ path, maxItems = 3, className, separator }) {\n const items = path || [];\n const renderBreadcrumbItem = (item) => {\n const shortenedLabel = typeof item.label === \"string\" && item.label.length > 20\n ? item.label.slice(0, 17) + \"...\"\n : item.label;\n if (item.onClick) {\n return _jsx(BreadcrumbButton, { onClick: item.onClick, href: item.href, title: typeof item.label === 'string' ? item.label : undefined, children: shortenedLabel });\n }\n else if (item.href) {\n return _jsx(BreadcrumbButton, { href: item.href, title: typeof item.label === 'string' ? item.label : undefined, children: shortenedLabel });\n }\n else {\n return _jsx(BreadcrumbPage, { children: shortenedLabel });\n }\n };\n if (items.length <= maxItems) {\n return (_jsx(Breadcrumb, { className: cn(\"w-full flex items-center\", className), children: _jsx(BreadcrumbList, { children: items.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: renderBreadcrumbItem(item) }), index < items.length - 1 &&\n _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) })] }, index))) }) }));\n }\n const lastThreeItems = items.slice(-(maxItems - 1));\n return (_jsx(Breadcrumb, { className: cn(\"w-full flex items-center\", className), children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbEllipsis, {}) }), _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) }), lastThreeItems.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: renderBreadcrumbItem(item) }), index < lastThreeItems.length - 1 && _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, {}) })] }, index)))] }) }));\n}\nconst Breadcrumb = React.forwardRef(({ ...props }, ref) => _jsx(\"nav\", { ref: ref, \"aria-label\": \"breadcrumb\", ...props }));\nBreadcrumb.displayName = \"Breadcrumb\";\nconst BreadcrumbList = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"ol\", { ref: ref, className: cn(\"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted sm:gap-2.5\", className), ...props })));\nBreadcrumbList.displayName = \"BreadcrumbList\";\nconst BreadcrumbItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"li\", { ref: ref, className: cn(\"inline-flex items-center gap-1.5 text-muted\", className), ...props })));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\nconst BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {\n return (_jsx(\"a\", { ref: ref, className: cn(\"transition-colors hover:text-muted\", className), ...props }));\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\nconst BreadcrumbButton = React.forwardRef(({ className, href, onClick, ...props }, ref) => {\n const handleClick = (e) => {\n e.preventDefault();\n if (onClick) {\n onClick(e);\n }\n };\n return (_jsx(Button, { variant: \"ghost\", size: \"md\", ref: ref, className: cn(\"p-0! hover:underline! hover:bg-background!\", className), onClick: handleClick, ...props }));\n});\nBreadcrumbButton.displayName = \"BreadcrumbButton\";\nconst BreadcrumbPage = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"span\", { ref: ref, role: \"link\", \"aria-disabled\": \"true\", \"aria-current\": \"page\", className: cn(\"font-normal text-foreground\", className), ...props })));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\nconst BreadcrumbSeparator = ({ children, className, ...props }) => (_jsx(\"li\", { role: \"presentation\", \"aria-hidden\": \"true\", className: cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className), ...props, children: children ?? _jsx(ChevronRight, {}) }));\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\nconst BreadcrumbEllipsis = ({ className, ...props }) => (_jsxs(\"span\", { role: \"presentation\", \"aria-hidden\": \"true\", className: cn(\"flex h-9 w-9 items-center justify-center\", className), ...props, children: [_jsx(MoreHorizontal, { className: \"h-4 w-4\" }), _jsx(\"span\", { className: \"sr-only\", children: \"More\" })] }));\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n//# sourceMappingURL=breadcrumb.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cn } from \"../../libs/utils\";\nimport { useEffect, useRef, useState } from \"react\";\nexport const AnimateChangeInHeight = ({ children, className, }) => {\n const containerRef = useRef(null);\n const [height, setHeight] = useState(\"auto\");\n useEffect(() => {\n if (containerRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n // We only have one entry, so we can use entries[0].\n const observedHeight = entries[0].contentRect.height;\n setHeight(observedHeight);\n });\n resizeObserver.observe(containerRef.current);\n return () => {\n // Cleanup the observer when the component is unmounted\n resizeObserver.disconnect();\n };\n }\n }, []);\n return (_jsx(\"div\", { className: cn(className, \"overflow-hidden transition-all duration-100 ease-in\"), style: { height }, children: _jsx(\"div\", { ref: containerRef, children: children }) }));\n};\n//# sourceMappingURL=animateChangeInHeight.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../libs/utils\";\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (_jsx(CheckboxPrimitive.Root, { ref: ref, className: cn(\"peer size-4 shrink-0 rounded-sm border border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-white\", className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { className: cn(\"flex items-center justify-center text-current\"), children: _jsx(Check, { className: \"size-4\" }) }) })));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\nexport { Checkbox };\n//# sourceMappingURL=checkbox.js.map","import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useEffect, useState } from 'react';\nexport function DynamicLabel({ value, labelRenderer, fallbackLabel }) {\n const [label, setLabel] = useState(fallbackLabel || value);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n if (!labelRenderer) {\n setLabel(fallbackLabel || value);\n return;\n }\n const renderLabel = async () => {\n setIsLoading(true);\n try {\n const result = labelRenderer(value);\n if (result instanceof Promise) {\n const resolvedLabel = await result;\n setLabel(resolvedLabel);\n }\n else {\n setLabel(result);\n }\n }\n catch (error) {\n console.error('Error rendering label:', error);\n setLabel(fallbackLabel || value);\n }\n finally {\n setIsLoading(false);\n }\n };\n renderLabel();\n }, [value, labelRenderer, fallbackLabel]);\n if (isLoading) {\n return _jsx(\"span\", { className: \"text-muted-foreground\", children: \"Loading...\" });\n }\n return _jsx(_Fragment, { children: label });\n}\n//# sourceMappingURL=DynamicLabel.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useRef, useState } from \"react\";\nimport { Checkbox } from \"../../checkbox\";\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from \"../../command\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nimport { AnimateChangeInHeight } from \"../animateChangeInHeight\";\nimport { DynamicLabel } from \"../DynamicLabel\";\nimport { useUITranslation } from '../../../../../i18n/index.js';\nexport const SelectionCombobox = ({ filterType, filterValues, setFilterValues, options, labelRenderer, multiple = true, }) => {\n const [open, setOpen] = useState(false);\n const [commandInput, setCommandInput] = useState(\"\");\n const commandInputRef = useRef(null);\n const { t } = useUITranslation();\n const nonSelectedFilterValues = options?.filter((option) => !filterValues.some(filter => filter.value === option.value));\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open) {\n setTimeout(() => {\n setCommandInput(\"\");\n }, 200);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 transition text-muted hover:text-primary shrink-0\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValues?.length === 1 ? ((() => {\n const option = filterValues[0];\n return (_jsx(DynamicLabel, { value: option.value || '', labelRenderer: labelRenderer, fallbackLabel: option.label }));\n })()) : (`${filterValues?.length} selected`) }) }), _jsx(PopoverContent, { className: \"w-[300px] p-0\", children: _jsx(AnimateChangeInHeight, { children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: filterType, className: \"h-9\", value: commandInput, onInputCapture: (e) => {\n setCommandInput(e.currentTarget.value);\n }, ref: commandInputRef }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: t('filter.noResultsFound') }), _jsx(CommandGroup, { children: filterValues.map((value) => {\n return (_jsxs(CommandItem, { className: \"group flex gap-2 items-center\", onSelect: () => {\n setFilterValues(filterValues.filter((v) => v.value !== value.value));\n setTimeout(() => {\n setCommandInput(\"\");\n }, 200);\n setOpen(false);\n }, children: [multiple && (_jsx(\"input\", { type: \"checkbox\", checked: true, onChange: () => { } })), _jsx(DynamicLabel, { value: value.value || '', labelRenderer: labelRenderer, fallbackLabel: value.label })] }, value.value));\n }) }), nonSelectedFilterValues?.length > 0 && (_jsxs(_Fragment, { children: [_jsx(CommandSeparator, {}), _jsx(CommandGroup, { children: nonSelectedFilterValues\n .filter(option => String(option.label || option.value).toLowerCase().includes(commandInput.toLowerCase()))\n .map((filter) => (_jsxs(CommandItem, { className: \"group flex gap-2 items-center\", value: String(filter.label || filter.value), onSelect: () => {\n const next = {\n value: filter.value,\n label: filter.label\n };\n setFilterValues(multiple ? [...filterValues, next] : [next]);\n setTimeout(() => {\n setCommandInput(\"\");\n }, 200);\n setOpen(false);\n }, children: [multiple && (_jsx(Checkbox, { checked: false, className: \"opacity-0 group-data-[selected=true]:opacity-100\" })), _jsx(\"span\", { className: \"text-muted\", children: _jsx(DynamicLabel, { value: filter.value || '', labelRenderer: filter.labelRenderer || labelRenderer, fallbackLabel: filter.label }) })] }, filter.value))) })] }))] })] }) }) })] }));\n};\n//# sourceMappingURL=SelectCombobox.js.map","export const calendarStyles = `\n.calendar-wrapper .react-calendar__navigation {\n display: flex !important;\n justify-content: space-between !important;\n align-items: center !important;\n gap: 8px !important;\n padding: 8px !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__label {\n flex: 1 !important;\n text-align: center !important;\n font-weight: 500 !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__arrow {\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n min-width: 32px !important;\n height: 32px !important;\n border-radius: 4px !important;\n border: 1px solid hsl(var(--border)) !important;\n background: hsl(var(--background)) !important;\n color: hsl(var(--foreground)) !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__arrow:hover {\n background: oklch(var(--muted)) !important;\n}\n\n.calendar-wrapper .react-calendar__tile {\n cursor: pointer !important;\n width: 0.5rem !important;\n font-size: 0.875rem !important;\n}\n\n.calendar-wrapper .react-calendar__tile:hover,\n.calendar-wrapper .react-calendar__month-view__days__day:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year:hover,\n.calendar-wrapper .react-calendar__year-view__months__month:hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile:not(.react-calendar__tile--active):hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile--hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile--disabled,\n.calendar-wrapper .react-calendar__tile:disabled,\n.calendar-wrapper .react-calendar__month-view__days__day--disabled,\n.calendar-wrapper .react-calendar__month-view__days__day:disabled,\n.calendar-wrapper .react-calendar__year-view__months__month--disabled,\n.calendar-wrapper .react-calendar__year-view__months__month:disabled,\n.calendar-wrapper .react-calendar__decade-view__years__year--disabled,\n.calendar-wrapper .react-calendar__decade-view__years__year:disabled {\n cursor: not-allowed !important;\n color: #9ca3af !important;\n}\n\n.calendar-wrapper .react-calendar__tile--disabled:hover,\n.calendar-wrapper .react-calendar__tile:disabled:hover,\n.calendar-wrapper .react-calendar__month-view__days__day--disabled:hover,\n.calendar-wrapper .react-calendar__month-view__days__day:disabled:hover,\n.calendar-wrapper .react-calendar__year-view__months__month--disabled:hover,\n.calendar-wrapper .react-calendar__year-view__months__month:disabled:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year--disabled:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year:disabled:hover {\n background: transparent !important;\n}\n\n\n.calendar-wrapper .react-calendar__month-view__weekdays {\n font-size: 0.75rem !important;\n}\n\n.calendar-wrapper .react-calendar__month-view__weekdays__weekday {\n width: 0.75rem !important;\n font-size: 0.75rem !important;\n text-align: center !important;\n}\n \n`;\n//# sourceMappingURL=filter-styles.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useState, useEffect } from \"react\";\nimport dayjs from \"dayjs\";\nimport ReactCalendar from \"react-calendar\";\nimport { Button } from \"../../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nimport { calendarStyles } from \"../filter-styles\";\nimport { useUITranslation } from '../../../../../i18n/index.js';\nexport const DateCombobox = ({ filterValues, setFilterValues, isRange = false, }) => {\n const [open, setOpen] = useState(false);\n const [localDateRange, setLocalDateRange] = useState([null, null]);\n const { t } = useUITranslation();\n // Parse with dayjs to interpret bare YYYY-MM-DD as local time (to match UI).\n const selectedDate = filterValues[0] ? dayjs(filterValues[0]).toDate() : undefined;\n // For date range - use local state for immediate feedback, fall back to filter values\n const dateRange = isRange ? [\n localDateRange[0] || (filterValues[0] ? dayjs(filterValues[0]).toDate() : null),\n localDateRange[1] || (filterValues[1] ? dayjs(filterValues[1]).toDate() : null)\n ] : [null, null];\n // Update local state when filter values change\n useEffect(() => {\n if (isRange) {\n setLocalDateRange([\n filterValues[0] ? dayjs(filterValues[0]).toDate() : null,\n filterValues[1] ? dayjs(filterValues[1]).toDate() : null\n ]);\n }\n }, [filterValues, isRange]);\n const getDisplayText = () => {\n if (isRange) {\n if (dateRange[0] && dateRange[1]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-1.5\", children: [_jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted-foreground\", children: \"-\" }), _jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[1]).format(\"MMMM DD, YYYY\") })] }));\n }\n else if (dateRange[0]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-1.5\", children: [_jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted-foreground\", children: \"- Select end\" })] }));\n }\n else {\n return _jsx(\"span\", { className: \"text-muted-foreground\", children: t('filter.selectRange') });\n }\n }\n else {\n return selectedDate ? dayjs(selectedDate).format(\"MMMM DD, YYYY\") : \"Pick a date\";\n }\n };\n const handleDateChange = (date) => {\n if (isRange) {\n // Update local state immediately for visual feedback\n if (Array.isArray(date)) {\n setLocalDateRange([date[0], date[1]]);\n // Update filter values\n if (date[0] && date[1]) {\n setFilterValues([\n dayjs(date[0]).format(\"YYYY-MM-DD\"),\n dayjs(date[1]).format(\"YYYY-MM-DD\")\n ]);\n }\n else if (date[0]) {\n setFilterValues([dayjs(date[0]).format(\"YYYY-MM-DD\")]);\n }\n }\n }\n else {\n if (date) {\n const actualDate = Array.isArray(date) ? date[0] : date;\n if (actualDate) {\n setFilterValues([dayjs(actualDate).format(\"YYYY-MM-DD\")]);\n setOpen(false);\n }\n }\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center min-h-[20px]\", children: getDisplayText() }) }), _jsx(PopoverContent, { className: \"w-auto p-0\", align: \"start\", side: \"bottom\", alignOffset: -4, sideOffset: 6, children: _jsx(\"div\", { className: \"p-2\", children: isRange ? (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(ReactCalendar, { value: dateRange, onChange: handleDateChange, selectRange: true, returnValue: \"range\", maxDate: (() => {\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n return maxDate;\n })(), className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (dateRange[0]) {\n const startDate = dateRange[0].getTime();\n if (dateRange[1]) {\n // Both dates selected\n const endDate = dateRange[1].getTime();\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-l-md font-semibold';\n }\n if (currentDate === endDate) {\n return 'bg-primary text-primary-foreground rounded-r-md font-semibold';\n }\n if (currentDate > startDate && currentDate < endDate) {\n return 'bg-primary/20 text-primary font-medium';\n }\n }\n else {\n // Only start date selected\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n }\n }\n return '';\n } })] }), dateRange[0] && dateRange[1] && (_jsx(\"div\", { className: \"border-t pt-2\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: () => setOpen(false), children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: () => setOpen(false), children: \"Apply\" })] }) }))] })) : (_jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(ReactCalendar, { value: selectedDate, onChange: handleDateChange, selectRange: false, maxDate: (() => {\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n return maxDate;\n })(), className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (selectedDate && currentDate === selectedDate.getTime()) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n return '';\n } })] })) }) })] }));\n};\n//# sourceMappingURL=DateCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { Button } from \"../../button\";\nimport { Input } from \"../../input\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nexport const TextCombobox = ({ filterType, filterValue, setFilterValue, }) => {\n const [open, setOpen] = useState(false);\n const [inputValue, setInputValue] = useState(filterValue);\n const handleKeyDown = (event) => {\n if (event.key === \"Enter\") {\n setFilterValue(inputValue);\n setOpen(false);\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open && inputValue !== filterValue) {\n setInputValue(filterValue);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValue || \"Enter text...\" }) }), _jsx(PopoverContent, { className: \"w-[300px] p-3\", children: _jsxs(\"div\", { className: \"flex flex-col gap-1\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterType }) }), _jsx(Input, { autoFocus: true, type: \"text\", size: \"sm\", value: inputValue, onChange: setInputValue, onKeyDown: handleKeyDown, placeholder: \"Enter text...\" }), _jsx(\"div\", { className: \"mt-2 p-2 border-t\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: () => {\n setInputValue(filterValue);\n setOpen(false);\n }, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: () => {\n setFilterValue(inputValue);\n setOpen(false);\n }, children: \"Apply\" })] }) })] }) })] }));\n};\n//# sourceMappingURL=TextCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { InputList } from \"../../../InputList\";\nimport { Button } from \"../../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../../popover\";\nexport const StringListCombobox = ({ filterType, filterValues, setFilterValues, }) => {\n const [open, setOpen] = useState(false);\n const [tags, setTags] = useState(filterValues);\n const handleApply = () => {\n setFilterValues(tags);\n setOpen(false);\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open && JSON.stringify(tags) !== JSON.stringify(filterValues)) {\n setTags(filterValues);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValues.length > 0 ? (filterValues.length === 1 ? filterValues[0] : `${filterValues.length} tags`) : (\"Add tags...\") }) }), _jsx(PopoverContent, { className: \"w-[300px] p-3\", children: _jsxs(\"div\", { className: \"flex flex-col gap-3\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterType }) }), _jsx(InputList, { value: tags, onChange: setTags, placeholder: `Add ${filterType.toLowerCase()}...` }), _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { size: \"sm\", variant: \"ghost\", onClick: () => {\n setTags(filterValues);\n setOpen(false);\n }, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, children: \"Apply\" })] })] }) })] }));\n};\n//# sourceMappingURL=StringListCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { X } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport { DateCombobox, SelectionCombobox, TextCombobox, StringListCombobox } from \"./comboBox/comboBox\";\nimport dayjs from \"dayjs\";\nfunction generateComboboxOptions(filter, setFilters, filterGroups) {\n switch (filter.type) {\n case \"date\":\n return (_jsx(DateCombobox, { filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'object' ? filter.value.map((v) => v.value || '') : [], isRange: filter.multiple, setFilterValues: (filterValues) => {\n setFilters((prev) => prev.map((f) => f === filter ? {\n ...f,\n value: filterValues.length > 0 ?\n filterValues.map(dateValue => ({\n value: dateValue,\n label: dayjs(dateValue).format(\"LLL dd, y\"),\n })) : []\n } : f));\n } }));\n case \"text\":\n return (_jsx(TextCombobox, { filterType: filter.placeholder || filter.name, filterValue: Array.isArray(filter.value) && filter.value[0] && typeof filter.value[0] === 'object' ? filter.value[0].value || \"\" : \"\", setFilterValue: (textValue) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? {\n ...f,\n value: [\n {\n value: textValue,\n label: textValue,\n },\n ],\n }\n : f));\n } }));\n case \"stringList\":\n return (_jsx(StringListCombobox, { filterType: filter.placeholder || filter.name, filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'string' ? filter.value : [], setFilterValues: (values) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? { ...f, value: values }\n : f));\n } }));\n case 'select':\n default: {\n const filterGroup = filterGroups.find(group => group.name === filter.name);\n return (_jsx(SelectionCombobox, { filterType: filter.placeholder || filter.name, filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'object' ? filter.value : [], setFilterValues: (filterValues) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? { ...f, value: filterValues }\n : f));\n }, options: filterGroup?.options || [], labelRenderer: filterGroup?.labelRenderer, multiple: filter.multiple ?? filterGroup?.multiple }));\n }\n }\n}\nexport default function Filters({ filters, setFilters, filterGroups, }) {\n return (_jsx(\"div\", { className: \"flex gap-2 flex-wrap justify-start\", children: filters\n .filter((filter) => filter.value?.length > 0)\n .map((filter) => (_jsxs(\"div\", { className: \"flex gap-[1px] items-center text-sm\", children: [_jsx(\"div\", { className: \"flex gap-1.5 shrink-0 rounded-l bg-muted p-1.5 h-8 items-center\", children: filter.placeholder || filter.name }), generateComboboxOptions(filter, setFilters, filterGroups), _jsx(Button, { variant: \"ghost\", size: \"icon\", onClick: () => {\n setFilters((prev) => prev.filter((f) => f !== filter));\n }, className: \"bg-muted rounded-l-none rounded-r-sm size-8 hover:text-primary hover:bg-muted/50 transition shrink-0\", children: _jsx(X, { className: \"size-6\" }) })] }, filter.name + '-' + (filter.type == 'date' ? 'date' : filter.type === 'stringList' && typeof filter.value[0] === 'string' ? filter.value.join(',') : Array.isArray(filter.value) ? filter.value.map((v) => v.value).join(',') : '')))) }));\n}\n//# sourceMappingURL=filters.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button } from \"../../button\";\nimport { Input } from \"../../input\";\nexport default function TextFilter({ selectedView, textValue, setTextValue, setFilters, handleClose, filterGroups, }) {\n const handleTextFilterAdd = () => {\n setFilters((prev) => {\n return [\n ...prev,\n {\n name: selectedView || \"\",\n placeholder: filterGroups.find(group => group.name === selectedView)?.placeholder,\n value: [{ value: textValue, label: textValue }],\n type: \"text\",\n }\n ];\n });\n handleClose();\n };\n return (_jsxs(\"div\", { className: \"p-2 flex flex-col gap-1\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterGroups.find(group => group.name === selectedView)?.placeholder }) }), _jsx(Input, { autoFocus: true, type: \"text\", size: \"sm\", value: textValue, onChange: setTextValue, onKeyDown: (e) => e.key === \"Enter\" && handleTextFilterAdd(), placeholder: \"Enter text...\" }), _jsx(\"div\", { className: \"mt-2 p-2 border-t\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleTextFilterAdd, disabled: !textValue.trim(), children: \"Apply\" })] }) })] }));\n}\n//# sourceMappingURL=TextFilter.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport dayjs from \"dayjs\";\nimport { useState } from \"react\";\nimport Calendar from \"react-calendar\";\nimport { Button } from \"../../button\";\nimport { calendarStyles } from \"../filter-styles\";\nimport { useUITranslation } from '../../../../../i18n/index.js';\nexport default function DateFilter({ selectedView, selectedDate, setSelectedDate, setFilters, filters, handleClose, filterGroups, }) {\n const { t } = useUITranslation();\n const [dateRange, setDateRange] = useState([null, null]);\n const [localDateRange, setLocalDateRange] = useState([null, null]);\n const selectedGroup = filterGroups.find(g => g.name === selectedView);\n const isDateRange = selectedGroup?.multiple;\n // Create maxDate set to end of today to ensure today is selectable\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n // Use local state for immediate feedback, fall back to dateRange\n const effectiveDateRange = [\n localDateRange[0] || dateRange[0],\n localDateRange[1] || dateRange[1]\n ];\n const handleDateChange = (value) => {\n if (isDateRange) {\n // Handle date range selection\n if (Array.isArray(value)) {\n // Update local state immediately for visual feedback\n setLocalDateRange([value[0], value[1]]);\n // Also update the main dateRange state\n setDateRange([value[0], value[1]]);\n }\n else {\n // Single date in range mode\n setLocalDateRange([value, null]);\n setDateRange([value, null]);\n }\n }\n else {\n // Handle single date selection\n const date = Array.isArray(value) ? value[0] : value;\n setSelectedDate(date || undefined);\n if (date) {\n // Set date to start of day (00:00)\n const selectedDateStart = new Date(date);\n selectedDateStart.setHours(0, 0, 0, 0);\n setFilters([\n ...filters,\n {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder,\n value: [\n {\n value: selectedDateStart.toISOString(),\n label: dayjs(selectedDateStart).format(\"LLL dd, y\"),\n }\n ],\n type: selectedGroup?.type || \"date\",\n multiple: selectedGroup?.multiple || false,\n },\n ]);\n handleClose();\n }\n }\n };\n const handleApplyDateRange = () => {\n if (dateRange[0]) {\n const startDate = new Date(dateRange[0]);\n const endDate = dateRange[1] ? new Date(dateRange[1]) : new Date(dateRange[0]);\n // Set start date to beginning of day\n startDate.setHours(0, 0, 0, 0);\n // Set end date to end of day\n endDate.setHours(23, 59, 59, 999);\n const filterValue = [];\n filterValue.push({\n value: startDate.toISOString(),\n label: dayjs(startDate).format(\"LLL dd, y\"),\n });\n if (dateRange[1] && dateRange[0].getTime() !== dateRange[1].getTime()) {\n filterValue.push({\n value: endDate.toISOString(),\n label: dayjs(endDate).format(\"LLL dd, y\"),\n });\n }\n setFilters([\n ...filters,\n {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder,\n value: filterValue,\n type: selectedGroup?.type || \"date\",\n multiple: selectedGroup?.multiple || false,\n },\n ]);\n handleClose();\n }\n };\n const getDisplayText = () => {\n if (isDateRange) {\n if (effectiveDateRange[0] && effectiveDateRange[1]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-2\", children: [_jsx(\"span\", { className: \"text-xs text-muted\", children: t('filter.from') }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted\", children: t('filter.to') }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[1]).format(\"MMMM DD, YYYY\") })] }));\n }\n else if (effectiveDateRange[0]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-2\", children: [_jsx(\"span\", { className: \"text-xs text-muted\", children: t('filter.from') }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[0]).format(\"MMMM DD, YYYY\") }), _jsx(\"span\", { className: \"text-xs text-muted\", children: \"\\u2192 Select end date\" })] }));\n }\n else {\n return _jsx(\"span\", { className: \"text-muted text-xs\", children: selectedGroup?.placeholder || selectedGroup?.name || selectedView || \"Select date range\" });\n }\n }\n else {\n return selectedDate ? dayjs(selectedDate).format(\"MMMM DD, YYYY\") : \"Pick a date\";\n }\n };\n return (_jsx(\"div\", { className: \"p-2\", children: isDateRange ? (_jsxs(_Fragment, { children: [_jsx(\"div\", { children: getDisplayText() }), _jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(Calendar, { value: effectiveDateRange, onChange: handleDateChange, selectRange: true, returnValue: \"range\", maxDate: maxDate, className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (effectiveDateRange[0]) {\n const startDate = effectiveDateRange[0].getTime();\n if (effectiveDateRange[1]) {\n // Both dates selected\n const endDate = effectiveDateRange[1].getTime();\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-l-md font-semibold';\n }\n if (currentDate === endDate) {\n return 'bg-primary text-primary-foreground rounded-r-md font-semibold';\n }\n if (currentDate > startDate && currentDate < endDate) {\n return 'bg-primary/20 text-primary font-medium';\n }\n }\n else {\n // Only start date selected\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n }\n }\n return '';\n } }, `${effectiveDateRange[0]?.getTime()}-${effectiveDateRange[1]?.getTime()}`)] }), _jsx(\"div\", { className: \"border-t pt-2\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApplyDateRange, disabled: !effectiveDateRange[0], children: \"Apply\" })] }) })] })) : (_jsx(_Fragment, { children: _jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(Calendar, { value: selectedDate, onChange: handleDateChange, selectRange: false, maxDate: maxDate, className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (selectedDate && currentDate === selectedDate.getTime()) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n return '';\n } })] }) })) }));\n}\n//# sourceMappingURL=dateFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { CommandItem } from \"../../command\";\nimport { Button } from \"../../button\";\nimport { DynamicLabel } from \"../DynamicLabel\";\nexport default function SelectFilter({ selectedView, commandInput, setFilters, handleClose, filterGroups, }) {\n const [selectedOptions, setSelectedOptions] = useState([]);\n const getFilteredOptions = (groupName) => {\n const group = filterGroups.find(g => g.name === groupName);\n if (!group) {\n return [];\n }\n let filteredOptions = group.options || [];\n if (!commandInput.trim()) {\n return filteredOptions;\n }\n if (group.filterBy) {\n const filterLc = commandInput.toLowerCase();\n const results = filteredOptions.filter(option => {\n if (option.value === undefined)\n return false;\n return group.filterBy(option.value, filterLc);\n });\n return results;\n }\n const filterLc = commandInput.toLowerCase();\n return filteredOptions.filter(option => {\n const optionValue = String(option.value || '').toLowerCase();\n return optionValue.includes(filterLc);\n });\n };\n if (!selectedView) {\n return null;\n }\n const options = getFilteredOptions(selectedView);\n const selectedGroup = filterGroups.find(g => g.name === selectedView);\n const groupTitle = selectedGroup?.placeholder || selectedGroup?.name;\n const handleApply = () => {\n if (selectedOptions.length > 0) {\n setFilters(prev => [\n ...prev.filter(f => f.name !== selectedView),\n {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder || \"\",\n value: selectedOptions,\n type: selectedGroup?.type || \"select\",\n multiple: selectedGroup?.multiple || false,\n }\n ]);\n }\n handleClose();\n };\n const handleOptionToggle = (option) => {\n const filterOption = {\n value: option.value,\n label: option.label\n };\n if (selectedGroup?.multiple) {\n // For multiple selection, toggle the option\n const isSelected = selectedOptions.some(opt => opt.value === option.value);\n if (isSelected) {\n setSelectedOptions(prev => prev.filter(opt => opt.value !== option.value));\n }\n else {\n setSelectedOptions(prev => [...prev, filterOption]);\n }\n }\n else {\n // For single selection, apply immediately\n setFilters((prev) => {\n const existingFilterIndex = prev.findIndex(f => f.name === selectedView);\n if (existingFilterIndex >= 0) {\n const updatedFilters = [...prev];\n updatedFilters[existingFilterIndex] = {\n ...updatedFilters[existingFilterIndex],\n value: [filterOption]\n };\n return updatedFilters;\n }\n else {\n return [...prev, {\n name: selectedView || \"\",\n placeholder: selectedGroup?.placeholder || \"\",\n value: [filterOption],\n type: selectedGroup?.type || \"select\",\n multiple: selectedGroup?.multiple || false,\n }];\n }\n });\n handleClose();\n }\n };\n return (_jsxs(\"div\", { className: \"flex flex-col h-full\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted shrink-0\", children: _jsx(\"span\", { children: groupTitle }) }), _jsx(\"div\", { className: \"flex-1 overflow-hidden min-h-0\", children: _jsx(\"div\", { className: \"max-h-[200px] overflow-y-auto\", children: options.length > 0 && (options.map((option) => {\n const isSelected = selectedOptions.some(opt => opt.value === option.value);\n return (_jsxs(CommandItem, { className: `group flex gap-2 items-center w-full hover:bg-muted ${selectedGroup?.multiple && isSelected ? 'bg-muted' : ''}`, onSelect: () => handleOptionToggle(option), children: [_jsx(DynamicLabel, { value: option.value || '', labelRenderer: option.labelRenderer || selectedGroup?.labelRenderer, fallbackLabel: option.label }), selectedGroup?.multiple && isSelected && (_jsx(\"span\", { className: \"ml-auto text-xs text-success\", children: \"\\u2713\" }))] }, option.value || `option-${Math.random()}`));\n })) }) }), selectedGroup?.multiple && (_jsx(\"div\", { className: \"p-2 border-t shrink-0\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, disabled: selectedOptions.length === 0, children: \"Apply\" })] }) }))] }));\n}\n//# sourceMappingURL=SelectFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { InputList } from \"../../../InputList\";\nimport { Button } from \"../../button\";\nexport default function StringListFilter({ selectedView, setFilters, handleClose, filterGroups, }) {\n const [tags, setTags] = useState([]);\n const selectedGroup = filterGroups.find(g => g.name === selectedView);\n const handleApply = () => {\n if (tags.length > 0) {\n setFilters(prev => [\n ...prev.filter(f => f.name !== selectedView),\n {\n name: selectedView,\n placeholder: selectedGroup?.placeholder,\n value: tags,\n type: \"stringList\"\n }\n ]);\n }\n handleClose();\n };\n return (_jsxs(\"div\", { className: \"p-2 space-y-3\", children: [_jsx(\"div\", { className: \"space-y-2\", children: _jsx(InputList, { value: tags, onChange: setTags, placeholder: selectedGroup?.placeholder || `Add ${selectedView}...`, autoFocus: true }) }), _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, disabled: tags.length === 0, children: \"Apply\" })] })] }));\n}\n//# sourceMappingURL=StringListFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useEffect } from \"react\";\nimport { cn } from \"../../libs/utils\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverTrigger, PopoverContent } from \"../popover\";\nimport { Command, CommandInput, CommandList, CommandGroup, CommandItem, CommandEmpty } from \"../command\";\nimport { ListFilter } from \"lucide-react\";\nimport Filters from \"./filters\";\nimport TextFilter from \"./filter/TextFilter\";\nimport DateFilter from \"./filter/dateFilter\";\nimport SelectFilter from \"./filter/SelectFilter\";\nimport StringListFilter from \"./filter/StringListFilter\";\nimport { useUITranslation } from '../../../../i18n/index.js';\nconst FilterContext = React.createContext({});\n// Syncs filters ↔ URL. On mount, captures the initial URL param and restores matching filters\n// incrementally as filterGroups loads. URL writes are blocked until the first filterGroups load\n// so the address bar doesn't flicker. Filters not matching any filterGroup are silently dropped\n// (prevents cross-page URL contamination, e.g. a modal inheriting a parent page's filters).\n// Parse format with array indicators: filterName:value or filterName:[value1,value2]\nconst FilterProvider = ({ filters, setFilters, filterGroups, children, inModal }) => {\n const url = new URL(window.location.href);\n const searchParams = url.searchParams;\n const [initialFiltersParam] = React.useState(() => new URLSearchParams(window.location.search).get('filters'));\n const processedUrlFilters = React.useRef(new Set());\n const hasRestoredFromUrl = React.useRef(inModal || !initialFiltersParam);\n useEffect(() => {\n if (inModal)\n return;\n if (!hasRestoredFromUrl.current)\n return;\n try {\n const params = new URLSearchParams(searchParams.toString());\n if (filters.length > 0) {\n const filterString = filters.map(filter => {\n let values;\n if (filter.type === 'stringList' && Array.isArray(filter.value) && typeof filter.value[0] === 'string') {\n values = `[${filter.value.map(item => encodeURIComponent(item)).join(',')}]`;\n }\n else if (Array.isArray(filter.value)) {\n if (filter.multiple) {\n values = `[${filter.value.map((item) => encodeURIComponent(item.value || item || '')).join(',')}]`;\n }\n else if (filter.value.length > 1) {\n values = `[${filter.value.map((item) => encodeURIComponent(item.value || item || '')).join(',')}]`;\n }\n else {\n const firstValue = filter.value[0];\n if (typeof firstValue === 'string') {\n values = encodeURIComponent(firstValue);\n }\n else if (typeof firstValue === 'object' && firstValue?.value !== undefined) {\n values = encodeURIComponent(String(firstValue.value));\n }\n else {\n values = encodeURIComponent(String(firstValue || ''));\n }\n }\n }\n else {\n values = encodeURIComponent(filter.value || '');\n }\n return `${encodeURIComponent(filter.name)}:${values}`;\n }).join(';');\n params.set('filters', filterString);\n }\n else {\n params.delete('filters');\n }\n const newUrl = `${window.location.pathname}?${params.toString()}${window.location.hash}`;\n window.history.replaceState(window.history.state || {}, '', newUrl);\n }\n catch (error) {\n console.error(\"Failed to update URL with filters:\", error);\n }\n }, [filters]);\n useEffect(() => {\n if (inModal || !initialFiltersParam || filterGroups.length === 0)\n return;\n try {\n const filterPairs = initialFiltersParam.split(';');\n const newFilters = [];\n for (const pair of filterPairs) {\n const [encodedName, valuesString] = pair.split(':');\n const name = decodeURIComponent(encodedName);\n if (processedUrlFilters.current.has(name))\n continue;\n const group = filterGroups.find(g => g.name === name);\n if (!group)\n continue;\n processedUrlFilters.current.add(name);\n let values;\n if (valuesString.startsWith('[') && valuesString.endsWith(']')) {\n const arrayContent = valuesString.slice(1, -1);\n values = arrayContent ? arrayContent.split(',').map(encodedValue => decodeURIComponent(encodedValue)) : [];\n }\n else {\n values = [decodeURIComponent(valuesString)];\n }\n let filterValue;\n if (group.type === 'stringList') {\n filterValue = values;\n }\n else if (group.type === 'text') {\n filterValue = values.length === 1 ? [{ value: values[0], label: values[0] }] :\n values.map(value => ({ value, label: value }));\n }\n else {\n filterValue = values.map(value => {\n const matchingOption = group.options?.find(opt => opt.value === value);\n let label = value;\n if (matchingOption?.label) {\n label = String(matchingOption.label);\n }\n else if (matchingOption?.labelRenderer) {\n label = String(matchingOption.labelRenderer(value));\n }\n else if (group.labelRenderer) {\n label = String(group.labelRenderer(value));\n }\n return { value, label };\n });\n }\n if (group.multiple && !valuesString.startsWith('[') && !valuesString.endsWith(']')) {\n if (group.type === 'stringList') {\n filterValue = values;\n }\n else if (!Array.isArray(filterValue)) {\n filterValue = [filterValue];\n }\n }\n newFilters.push({\n name,\n type: group.type,\n placeholder: group.placeholder,\n value: filterValue,\n multiple: group.multiple,\n });\n }\n if (newFilters.length > 0) {\n setFilters(prev => [...prev, ...newFilters]);\n }\n hasRestoredFromUrl.current = true;\n }\n catch (_error) {\n // ignore parse errors\n }\n }, [filterGroups, initialFiltersParam]);\n return (_jsx(FilterContext.Provider, { value: { filters, setFilters, filterGroups }, children: children }));\n};\nconst FilterBtn = ({ className }) => {\n const { filters, setFilters, filterGroups } = React.useContext(FilterContext);\n const { t } = useUITranslation();\n const [open, setOpen] = React.useState(false);\n const [selectedView, setSelectedView] = React.useState(null);\n const [commandInput, setCommandInput] = React.useState(\"\");\n const commandInputRef = React.useRef(null);\n const [selectedDate, setSelectedDate] = React.useState();\n const [textValue, setTextValue] = React.useState(\"\");\n const handleSelect = (groupName) => {\n setSelectedView(groupName);\n setCommandInput(\"\");\n commandInputRef.current?.focus();\n };\n const getAvailableFilterGroups = () => {\n let options = filterGroups.map(group => ({\n ...group,\n options: (group.options ?? []).filter(option => !filters.some(filter => {\n if (filter.type === \"date\") {\n return filter.name === group.name;\n }\n return filter.name === group.name &&\n (Array.isArray(filter.value) && typeof filter.value[0] === 'string'\n ? filter.value.some(val => val === option.value)\n : filter.value.some(val => val.value === option.value));\n }))\n })).filter(group => ((group.options ?? []).length > 0) ||\n (group.type === \"date\" && !filters.some(filter => filter.name === group.name)) ||\n (group.type === \"text\" && !filters.some(filter => filter.name === group.name)) ||\n (group.type === \"stringList\" && !filters.some(filter => filter.name === group.name)));\n if (options.length === 0) {\n return _jsx(CommandEmpty, { children: t('filter.noAvailableFilters') });\n }\n return options.map((group, index) => (_jsx(CommandItem, { onSelect: () => handleSelect(group.name), className: \"group flex gap-2 items-center hover:bg-muted\", children: _jsx(\"span\", { children: group.placeholder ?? group.name }) }, index)));\n };\n const handleClose = () => {\n setOpen(false);\n setTimeout(() => {\n setSelectedView(null);\n setCommandInput(\"\");\n setSelectedDate(undefined);\n }, 200);\n };\n const handleOpen = (open) => {\n setOpen(open);\n if (!open) {\n setTimeout(() => {\n setSelectedView(null);\n setCommandInput(\"\");\n setTextValue(\"\");\n }, 200);\n }\n };\n const renderFilterOptions = () => {\n if (!selectedView) {\n return null;\n }\n const selectedGroupType = filterGroups.find(g => g.name === selectedView)?.type;\n switch (selectedGroupType) {\n case \"date\":\n return (_jsx(DateFilter, { selectedView: selectedView, selectedDate: selectedDate, setSelectedDate: setSelectedDate, setFilters: setFilters, filters: filters, handleClose: handleClose, filterGroups: filterGroups }));\n case \"text\":\n return (_jsx(TextFilter, { selectedView: selectedView, textValue: textValue, setTextValue: setTextValue, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n case \"stringList\":\n return (_jsx(StringListFilter, { selectedView: selectedView, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n default:\n return (_jsx(SelectFilter, { selectedView: selectedView, commandInput: commandInput, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: handleOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: \"outline\", role: \"combobox\", \"aria-expanded\": open, size: \"md\", className: cn(\"transition group flex gap-1.5\", className), children: [_jsx(ListFilter, { className: \"size-4 shrink-0 transition-all text-muted\" }), t('filter.filter')] }) }), _jsx(PopoverContent, { className: \"w-[300px] p-0\", align: \"start\", sideOffset: 4, children: _jsxs(Command, { children: [filterGroups.find(group => group.name === selectedView)?.type === \"select\" && (_jsx(CommandInput, { placeholder: selectedView ? t('filter.filterBy', { view: selectedView }) : t('filter.filterPlaceholder'), className: \"h-9 ring-0\", value: commandInput, onValueChange: (value) => {\n setCommandInput(value);\n }, ref: commandInputRef, autoFocus: true })), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: t('filter.noMatchingFilters') }), _jsx(CommandGroup, { children: !selectedView ? getAvailableFilterGroups() : renderFilterOptions() })] })] }) })] }));\n};\nconst FilterBar = ({ className }) => {\n const { filters, setFilters, filterGroups } = React.useContext(FilterContext);\n return (_jsx(\"div\", { className: cn(className), children: _jsx(Filters, { filters: filters, setFilters: setFilters, filterGroups: filterGroups }) }));\n};\nconst FilterClear = ({ className }) => {\n const { filters, setFilters } = React.useContext(FilterContext);\n const { t } = useUITranslation();\n const hasActiveFilters = filters.filter((filter) => filter.value?.length > 0).length > 0;\n if (!hasActiveFilters) {\n return null;\n }\n return (_jsx(Button, { variant: \"outline\", size: \"xs\", className: cn(\"transition group\", className), onClick: () => setFilters([]), children: t('filter.clearAll') }));\n};\nexport { FilterProvider, FilterBtn, FilterBar, FilterClear };\n//# sourceMappingURL=filterBar.js.map","export var FilterOperator;\n(function (FilterOperator) {\n FilterOperator[\"IS\"] = \"is\";\n FilterOperator[\"IS_NOT\"] = \"is_not\";\n FilterOperator[\"CONTAINS\"] = \"contains\";\n FilterOperator[\"BEFORE\"] = \"before\";\n FilterOperator[\"AFTER\"] = \"after\";\n FilterOperator[\"IS_ANY_OF\"] = \"is_any_of\";\n})(FilterOperator || (FilterOperator = {}));\n//# sourceMappingURL=types.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cn } from \"../libs/utils\";\nimport { forwardRef } from \"react\";\nexport const Heading = forwardRef(({ className, level = 3, ...props }, ref) => {\n const Component = `h${level}`;\n const styles = {\n h1: \"text-2xl font-medium tracking-tight\",\n h2: \"text-xl font-medium tracking-tight\",\n h3: \"text-lg font-medium\",\n h4: \"text-base font-medium\",\n h5: \"text-sm font-medium\",\n h6: \"text-xs font-medium\",\n };\n return _jsx(Component, { ref: ref, className: cn(styles[`h${level}`], 'mb-2', className), ...props });\n});\nHeading.displayName = \"Heading\";\n//# sourceMappingURL=heading.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cn } from \"../libs/utils\";\nimport { cva } from \"class-variance-authority\";\nimport { forwardRef } from \"react\";\n// Update the text variants to match the new sizing requirements\nconst textVariants = cva(\"text-foreground\", {\n variants: {\n size: {\n xl: \"text-base md:text-lg leading-relaxed\",\n lg: \"text-base leading-relaxed\",\n default: \"text-sm leading-normal\",\n sm: \"text-sm leading-normal\",\n xs: \"text-xs leading-normal\",\n },\n weight: {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n },\n },\n defaultVariants: {\n size: \"default\",\n weight: \"normal\",\n },\n});\nexport const Text = forwardRef(({ className, size, weight, ...props }, ref) => {\n return _jsx(\"p\", { ref: ref, className: cn(textVariants({ size, weight, className })), ...props });\n});\nText.displayName = \"Text\";\n//# sourceMappingURL=text.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Minus } from \"lucide-react\";\nimport * as ResizablePrimitive from \"react-resizable-panels\";\nimport { cn } from \"../libs/utils\";\nfunction ResizablePanelGroup({ className, ...props }) {\n return (_jsx(ResizablePrimitive.PanelGroup, { \"data-slot\": \"resizable-panel-group\", className: cn(\"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\", className), ...props }));\n}\nfunction ResizablePanel({ ...props }) {\n return _jsx(ResizablePrimitive.Panel, { \"data-slot\": \"resizable-panel\", ...props });\n}\nfunction ResizableHandle({ withHandle, className, ...props }) {\n return (_jsx(ResizablePrimitive.PanelResizeHandle, { \"data-slot\": \"resizable-handle\", className: cn(\"bg-muted focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90\", className), ...props, children: withHandle && (_jsx(\"div\", { className: \"z-10 flex size-4 items-center justify-center rounded-xs font-semibold\", children: _jsx(Minus, { className: \"size-4 rotate-90\" }) })) }));\n}\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n//# sourceMappingURL=resizeable.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useLayoutEffect, useRef, useCallback } from \"react\";\nimport { cn } from \"../libs/utils\";\nfunction Textarea({ className, minLines, maxLines, value, ...props }) {\n const textareaRef = useRef(null);\n const growing = minLines !== undefined || maxLines !== undefined;\n const resize = useCallback(() => {\n const el = textareaRef.current;\n if (!el)\n return;\n const style = getComputedStyle(el);\n const lineHeight = parseFloat(style.lineHeight) || parseFloat(style.fontSize) * 1.5;\n const paddingTop = parseFloat(style.paddingTop) || 0;\n const paddingBottom = parseFloat(style.paddingBottom) || 0;\n const paddingY = paddingTop + paddingBottom;\n const borderTop = parseFloat(style.borderTopWidth) || 0;\n const borderBottom = parseFloat(style.borderBottomWidth) || 0;\n const borderY = borderTop + borderBottom;\n const effectiveMin = minLines ?? 1;\n const effectiveMax = maxLines ?? Infinity;\n const minHeight = effectiveMin * lineHeight + paddingY + borderY;\n const maxHeight = effectiveMax === Infinity ? Infinity : effectiveMax * lineHeight + paddingY + borderY;\n el.style.height = \"auto\";\n const contentHeight = Math.min(Math.max(el.scrollHeight, minHeight), maxHeight);\n el.style.height = `${contentHeight}px`;\n el.style.overflowY = maxHeight !== Infinity && el.scrollHeight > maxHeight ? \"auto\" : \"hidden\";\n }, [minLines, maxLines]);\n useLayoutEffect(() => {\n if (growing)\n resize();\n }, [value, growing, resize]);\n return (_jsx(\"textarea\", { ref: textareaRef, \"data-slot\": \"textarea\", value: value, className: cn(\"py-2 text-sm\", \"flex w-full rounded-md border border-input bg-background ring-offset-background\", \"placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring\", \"disabled:cursor-not-allowed disabled:opacity-50\", growing && \"resize-none\", className), ...props }));\n}\nexport { Textarea };\n//# sourceMappingURL=textarea.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { CircleX, CircleCheck, AlertTriangle, Info } from 'lucide-react';\nexport function MessageBox({ icon, status, title, children, className }) {\n let defaultIcon, titleColor, textColor, bgColor;\n switch (status) {\n case 'error': {\n defaultIcon = _jsx(CircleX, { className: \"size-5 text-destructive\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-destructive border border-destructive\";\n break;\n }\n case 'warning': {\n defaultIcon = _jsx(AlertTriangle, { className: \"size-5 text-attention\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-attention border border-attention\";\n break;\n }\n case 'success': {\n defaultIcon = _jsx(CircleCheck, { className: \"size-5 text-success\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-success border border-success\";\n break;\n }\n case 'info': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-info\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-info border border-info\";\n break;\n }\n case 'default': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-muted\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-muted border border-muted\";\n break;\n }\n case 'done': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-done\", \"aria-hidden\": \"true\" });\n titleColor = \"\";\n textColor = \"text-foreground\";\n bgColor = \"bg-done border border-done\";\n break;\n }\n }\n return (_jsx(\"div\", { className: `rounded-md p-4 ${bgColor} ${className}`, children: _jsxs(\"div\", { className: \"flex\", children: [_jsx(\"div\", { className: \"shrink-0\", children: icon ?? defaultIcon }), _jsxs(\"div\", { className: \"w-full ml-2 px-1\", children: [title && _jsx(\"h3\", { className: `text-sm font-medium mb-2 ${titleColor}`, children: title }), _jsx(\"div\", { className: `text-sm ${textColor} break-words`, children: children })] })] }) }));\n}\nexport function ErrorBox({ title, className, children }) {\n return (_jsx(MessageBox, { status: \"error\", title: title, className: className, children: _jsx(\"pre\", { className: \"whitespace-pre-wrap break-words\", children: children }) }));\n}\nexport function InfoBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"info\", title: title, className: className, children: children });\n}\nexport function WarningBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"warning\", title: title, className: className, children: children });\n}\nexport function SuccessBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"success\", title: title, className: className, children: children });\n}\nexport function DefaultBox({ title, className, children }) {\n return _jsx(MessageBox, { status: \"default\", title: title, className: className, children: children });\n}\n//# sourceMappingURL=MessageBox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from \"react\";\nimport { VTooltip } from \"./tooltip\";\nimport { ChevronDown, ChevronUp, Info } from \"lucide-react\";\nimport { Button } from \"./button\";\nexport function Panel({ children, action, title, description, footer, className, collapsible, defaultCollapsed = false }) {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n return (_jsxs(\"div\", { className: `p-4 flex flex-col gap-2 rounded-sm border bg-card ${className}`, children: [_jsxs(\"div\", { className: \"flex items-center justify-between\", children: [_jsxs(\"div\", { className: \"flex items-center gap-2\", children: [_jsx(\"div\", { className: \"font-semibold text-lg\", children: title }), description && _jsx(VTooltip, { description: description, children: _jsx(Info, { className: \"size-4 text-muted\" }) })] }), _jsxs(\"div\", { className: \"flex gap-2 items-center\", children: [action, collapsible && (_jsx(Button, { variant: \"ghost\", size: \"icon\", onClick: () => setIsCollapsed(!isCollapsed), children: isCollapsed ?\n _jsx(ChevronDown, { className: \"size-4\" }) :\n _jsx(ChevronUp, { className: \"size-4\" }) }))] })] }), !isCollapsed && children, footer &&\n _jsx(\"div\", { className: \"border-t border-muted flex flex-col-2 text-sm pt-4\", children: footer })] }));\n}\n//# sourceMappingURL=Panel.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport { cn } from \"../libs/utils\";\nconst sizes = {\n 'sm': ['h-5 w-8', 'size-3', 'translate-x-4'],\n 'md': ['h-6 w-11', 'size-4', 'translate-x-6'],\n 'lg': ['h-8 w-16', 'size-6', 'translate-x-9'],\n};\nfunction Switch({ className, size = 'md', value, onChange, children, disabled }) {\n const [trackSize, thumbSize, thumbTranslate] = sizes[size];\n const switchEl = (_jsx(SwitchPrimitive.Root, { \"data-slot\": \"switch\", checked: value, onCheckedChange: onChange, disabled: disabled, className: cn(\"data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 shrink-0 rounded-full border focus-visible:ring-3 aria-invalid:ring-3 peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50\", trackSize, !children && className), children: _jsx(SwitchPrimitive.Thumb, { \"data-slot\": \"switch-thumb\", className: cn(\"bg-white rounded-full pointer-events-none block ring-0 transition-transform\", thumbSize, value ? thumbTranslate : 'translate-x-1') }) }));\n if (children) {\n return (_jsxs(\"div\", { className: cn(\"flex items-center\", className), children: [switchEl, _jsx(\"span\", { className: \"px-2\", children: children })] }));\n }\n return switchEl;\n}\nexport { Switch };\n//# sourceMappingURL=switch.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { cn } from \"../libs/utils\";\nfunction RadioGroupItem({ className, ...props }) {\n return (_jsx(RadioGroupPrimitive.Item, { \"data-slot\": \"radio-group-item\", className: cn(\"border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 flex size-4 rounded-full focus-visible:ring-3 aria-invalid:ring-3 group/radio-group-item peer relative aspect-square shrink-0 border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50\", className), ...props, children: _jsx(RadioGroupPrimitive.Indicator, { \"data-slot\": \"radio-group-indicator\", className: \"flex size-4 items-center justify-center\", children: _jsx(\"span\", { className: \"bg-primary-foreground absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full\" }) }) }));\n}\nexport class RadioGroupAdapter {\n descriptionOf(_item) { return undefined; }\n selectedClassName(_item) { return 'border-accent-foreground'; }\n}\nfunction RadioGroup({ onSelect, selected, options, adapter }) {\n const getId = (o) => adapter ? adapter.idOf(o) : o.id;\n const getLabel = (o) => adapter ? adapter.labelOf(o) : o.label;\n const getDescription = (o) => adapter ? adapter.descriptionOf(o) : o.description;\n const getSelectedClass = (o) => adapter ? adapter.selectedClassName(o) : 'border-primary';\n return (_jsx(RadioGroupPrimitive.Root, { \"data-slot\": \"radio-group\", value: selected ? getId(selected) : undefined, onValueChange: (id) => {\n const option = options.find((o) => getId(o) === id);\n if (option)\n onSelect(option);\n }, className: \"space-y-4\", children: options.map((option) => {\n const isSelected = selected ? getId(selected) === getId(option) : false;\n return (_jsx(RadioGroupPrimitive.Item, { value: getId(option), className: cn('relative block w-full cursor-pointer rounded-lg border border-border bg-accent px-6 py-4 shadow-2xs text-left', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'sm:flex sm:justify-between', isSelected && getSelectedClass(option)), children: _jsx(\"span\", { className: \"flex items-center\", children: _jsxs(\"span\", { className: \"flex flex-col text-sm\", children: [_jsx(\"span\", { className: \"font-medium text-text\", children: getLabel(option) }), getDescription(option) && (_jsx(\"span\", { className: \"text-muted-foreground\", children: getDescription(option) }))] }) }) }, getId(option)));\n }) }));\n}\n/** @deprecated use RadioGroupAdapter */\nexport const RadioOptionAdapter = RadioGroupAdapter;\nexport { RadioGroup, RadioGroupItem };\n//# sourceMappingURL=radioGroup.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nfunction Collapsible({ ...props }) {\n return _jsx(CollapsiblePrimitive.Root, { \"data-slot\": \"collapsible\", ...props });\n}\nfunction CollapsibleTrigger({ ...props }) {\n return (_jsx(CollapsiblePrimitive.Trigger, { \"data-slot\": \"collapsible-trigger\", ...props }));\n}\nfunction CollapsibleContent({ ...props }) {\n return (_jsx(CollapsiblePrimitive.Content, { \"data-slot\": \"collapsible-content\", ...props }));\n}\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n//# sourceMappingURL=collaspible.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"../libs/utils\";\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\";\nconst HoverMenuContext = React.createContext(false);\nfunction DropdownMenu({ ...props }) {\n return _jsx(DropdownMenuPrimitive.Root, { \"data-slot\": \"dropdown-menu\", ...props });\n}\nfunction DropdownMenuPortal({ ...props }) {\n return (_jsx(DropdownMenuPrimitive.Portal, { \"data-slot\": \"dropdown-menu-portal\", ...props }));\n}\nfunction DropdownMenuTrigger({ ...props }) {\n return (_jsx(DropdownMenuPrimitive.Trigger, { \"data-slot\": \"dropdown-menu-trigger\", ...props }));\n}\nfunction DropdownMenuContent({ className, align = \"start\", sideOffset = 4, ...props }) {\n return (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { \"data-slot\": \"dropdown-menu-content\", sideOffset: sideOffset, align: align, className: cn(\"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto data-[state=closed]:overflow-hidden\", className), ...props }) }));\n}\nfunction DropdownMenuGroup({ ...props }) {\n return (_jsx(DropdownMenuPrimitive.Group, { \"data-slot\": \"dropdown-menu-group\", ...props }));\n}\nfunction DropdownMenuItem({ className, inset, variant = \"default\", ...props }) {\n return (_jsx(DropdownMenuPrimitive.Item, { \"data-slot\": \"dropdown-menu-item\", \"data-inset\": inset, \"data-variant\": variant, className: cn(\"hover:bg-muted focus:bg-muted data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive gap-2 rounded-md px-1.5 py-1 text-sm data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), ...props }));\n}\nfunction DropdownMenuCheckboxItem({ className, children, checked, inset, ...props }) {\n return (_jsxs(DropdownMenuPrimitive.CheckboxItem, { \"data-slot\": \"dropdown-menu-checkbox-item\", \"data-inset\": inset, className: cn(\"focus:bg-muted focus:text-muted focus:**:text-muted gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), checked: checked, ...props, children: [_jsx(\"span\", { className: \"absolute right-2 flex items-center justify-center pointer-events-none\", \"data-slot\": \"dropdown-menu-checkbox-item-indicator\", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));\n}\nfunction DropdownMenuRadioGroup({ ...props }) {\n return (_jsx(DropdownMenuPrimitive.RadioGroup, { \"data-slot\": \"dropdown-menu-radio-group\", ...props }));\n}\nfunction DropdownMenuRadioItem({ className, children, inset, ...props }) {\n return (_jsxs(DropdownMenuPrimitive.RadioItem, { \"data-slot\": \"dropdown-menu-radio-item\", \"data-inset\": inset, className: cn(\"focus:bg-muted focus:text-muted focus:**:text-muted gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), ...props, children: [_jsx(\"span\", { className: \"absolute right-2 flex items-center justify-center pointer-events-none\", \"data-slot\": \"dropdown-menu-radio-item-indicator\", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));\n}\nfunction DropdownMenuLabel({ className, inset, ...props }) {\n return (_jsx(DropdownMenuPrimitive.Label, { \"data-slot\": \"dropdown-menu-label\", \"data-inset\": inset, className: cn(\"text-muted px-1.5 py-1 text-xs font-medium data-inset:pl-7\", className), ...props }));\n}\nfunction DropdownMenuSeparator({ className, ...props }) {\n return (_jsx(DropdownMenuPrimitive.Separator, { \"data-slot\": \"dropdown-menu-separator\", className: cn(\"bg-border -mx-1 my-1 h-px\", className), ...props }));\n}\nfunction DropdownMenuShortcut({ className, ...props }) {\n return (_jsx(\"span\", { \"data-slot\": \"dropdown-menu-shortcut\", className: cn(\"text-muted group-focus/dropdown-menu-item:text-muted ml-auto text-xs tracking-widest\", className), ...props }));\n}\nfunction DropdownMenuSub({ ...props }) {\n return _jsx(DropdownMenuPrimitive.Sub, { \"data-slot\": \"dropdown-menu-sub\", ...props });\n}\nfunction DropdownMenuSubTrigger({ className, inset, children, ...props }) {\n return (_jsxs(DropdownMenuPrimitive.SubTrigger, { \"data-slot\": \"dropdown-menu-sub-trigger\", \"data-inset\": inset, className: cn(\"focus:bg-muted focus:text-muted data-open:bg-muted data-open:text-muted not-data-[variant=destructive]:focus:**:text-muted gap-2 rounded-md px-1.5 py-1 text-sm data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), ...props, children: [children, _jsx(ChevronRightIcon, { className: \"cn-rtl-flip ml-auto\" })] }));\n}\nfunction DropdownMenuSubContent({ className, ...props }) {\n return (_jsx(DropdownMenuPrimitive.SubContent, { \"data-slot\": \"dropdown-menu-sub-content\", className: cn(\"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-lg p-1 shadow-lg ring-1 duration-100 z-50 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden\", className), ...props }));\n}\nexport { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };\n// High-level convenience components\nconst alignMap = { left: 'start', center: 'center', right: 'end' };\nexport function Dropdown({ trigger, children, align = 'right', hover }) {\n const [open, setOpen] = React.useState(false);\n const closeTimer = React.useRef(null);\n if (hover) {\n const onEnter = () => {\n if (closeTimer.current)\n clearTimeout(closeTimer.current);\n setOpen(true);\n };\n const onLeave = () => {\n closeTimer.current = setTimeout(() => setOpen(false), 80);\n };\n const alignClass = align === 'right' ? 'right-0' : align === 'center' ? 'left-1/2 -translate-x-1/2' : 'left-0';\n return (_jsxs(\"div\", { className: \"relative inline-flex\", onMouseEnter: onEnter, onMouseLeave: onLeave, children: [trigger, open && (_jsx(\"div\", { className: cn('absolute top-full pt-1 z-50', alignClass), children: _jsx(\"div\", { className: \"min-w-32 rounded-lg p-1 shadow-md ring-1 ring-foreground/10 bg-popover text-popover-foreground\", children: _jsx(HoverMenuContext.Provider, { value: true, children: children }) }) }))] }));\n }\n return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(\"span\", { className: \"-m-1.5 flex items-center p-1.5\", children: trigger }) }), _jsx(DropdownMenuContent, { align: alignMap[align], className: \"w-max\", children: children })] }));\n}\nexport function MenuGroup({ children, label }) {\n return (_jsxs(DropdownMenuGroup, { children: [label && _jsx(DropdownMenuLabel, { children: label }), children] }));\n}\nexport function MenuItem({ children, href, onClick, isDisabled = false, variant = \"default\", className }) {\n const isHoverMenu = React.useContext(HoverMenuContext);\n const baseClass = cn(\"w-full gap-2 rounded-md px-1.5 py-1 text-sm text-nowrap [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center select-none [&_svg]:pointer-events-none [&_svg]:shrink-0\", variant === 'destructive' ? 'text-destructive' : '', isDisabled ? 'pointer-events-none opacity-50' : 'hover:bg-muted focus:bg-muted', className);\n if (isHoverMenu) {\n const handleClick = (e) => { e.stopPropagation(); onClick?.(e); };\n return href\n ? _jsx(\"a\", { href: href, className: baseClass, children: children })\n : _jsx(\"button\", { className: baseClass, disabled: isDisabled, onClick: handleClick, children: children });\n }\n return (_jsx(DropdownMenuItem, { className: cn(\"data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-nowrap\", className), disabled: isDisabled, variant: variant, onClick: (e) => { e.stopPropagation(); onClick?.(e); }, asChild: !!href, children: href ? _jsx(\"a\", { href: href, children: children }) : _jsx(_Fragment, { children: children }) }));\n}\n//# sourceMappingURL=dropdown.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Check } from \"lucide-react\";\nimport clsx from \"clsx\";\nimport { useMemo, useState } from \"react\";\nimport { useUITranslation } from \"@vertesia/ui/i18n\";\nimport { Input } from \"./shadcn\";\nconst Default_Option_Style = \"flex-1 px-2 py-2 hover:bg-accent nowrap\";\nfunction defaultOptionLayout(option, isSelected) {\n return {\n label: String(option),\n check: isSelected ? _jsx(Check, { className: 'size-4' }) : _jsx(\"div\", { className: \"size-4\" }),\n reverse: false,\n className: Default_Option_Style,\n };\n}\nexport function SelectList({ value, options, onChange, className, optionLayout, by, noCheck, filterBy }) {\n const { t } = useUITranslation();\n const [selected, setSelected] = useState(value);\n const [filterValue, setFilterValue] = useState(\"\");\n const onSelect = (option) => {\n setSelected(option);\n onChange(option);\n };\n const optionEquals = useMemo(() => {\n if (typeof by === 'string') {\n return (o1, o2) => o1[by] === o2[by];\n }\n else if (!by) {\n return (o1, o2) => o1 === o2;\n }\n else {\n return by;\n }\n }, [by]);\n return (_jsxs(\"div\", { className: clsx(\"\", className), children: [filterBy && (_jsx(Input, { type: \"text\", placeholder: t('form.filter'), value: filterValue, onChange: (value) => setFilterValue(value) })), options.map((option, i) => {\n if (filterBy && !filterBy(filterValue)(option)) {\n return null;\n }\n const isSelected = selected ? optionEquals(selected, option) : false;\n let layout;\n if (optionLayout) {\n layout = optionLayout(option, isSelected);\n layout = Object.assign(defaultOptionLayout(option, isSelected), layout);\n }\n else {\n layout = defaultOptionLayout(option, isSelected);\n }\n return (_jsx(SelectListOption, { option: option, onSelect: onSelect, layout: layout, noCheck: noCheck }, i));\n })] }));\n}\nfunction SelectListOption({ option, onSelect, layout, noCheck }) {\n return (_jsxs(\"div\", { className: clsx('group flex items-center cursor-pointer gap-x-2 hover:bg-muted', layout.reverse && 'flex-row-reverse', layout.className), onClick: () => onSelect(option), children: [noCheck ? null : _jsx(\"div\", { className: \"\", children: layout.check }), _jsx(\"div\", { className: 'flex-1', children: layout.label })] }));\n}\n//# sourceMappingURL=SelectList.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Minus, X } from 'lucide-react';\nimport { Button } from './shadcn/button';\nexport function SidePanel({ isOpen, title, onClose, children, panelWidth = 768, backdrop = false, side = 'right', resizable = true, className, contentClassName }) {\n const [_panelWidth, setPanelWidth] = useState(panelWidth);\n const handleDragStart = (e) => {\n e.preventDefault();\n let isDragging = true;\n const startX = e.pageX;\n const startWidth = _panelWidth;\n const handleMouseMove = (e) => {\n if (isDragging) {\n const deltaX = startX - e.pageX;\n const newWidth = Math.max(startWidth + deltaX, 480);\n setPanelWidth(newWidth);\n }\n };\n const handleMouseUp = () => {\n isDragging = false;\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n };\n const isLeft = side === 'left';\n const positionClass = isLeft ? 'left-0' : 'right-0';\n const paddingClass = isLeft ? 'pr-10 sm:pr-16' : 'pl-10 sm:pl-16';\n const borderClass = isLeft ? 'border-r' : 'border-l';\n const dragHandleClass = isLeft ? '-right-1' : '-left-1';\n const initialX = isLeft ? \"-100%\" : \"100%\";\n return (_jsx(AnimatePresence, { children: isOpen && (_jsxs(\"div\", { className: \"relative z-20\", children: [backdrop && (_jsx(motion.div, { className: \"fixed inset-0 bg-black/70\", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: onClose })), _jsx(\"div\", { className: `fixed inset-y-0 ${positionClass} overflow-hidden`, children: _jsx(\"div\", { className: \"absolute inset-0 overflow-hidden\", children: _jsx(\"div\", { className: `pointer-events-none fixed inset-y-0 ${positionClass} flex max-w-full ${paddingClass}`, children: _jsx(motion.div, { className: `pointer-events-auto ${borderClass}`, style: { width: `${_panelWidth}px` }, initial: { x: initialX }, animate: { x: 0 }, exit: { x: initialX }, transition: { type: \"spring\", stiffness: 300, damping: 30 }, children: _jsxs(\"div\", { className: \"relative flex h-full\", children: [resizable && (_jsx(\"div\", { className: `absolute ${dragHandleClass} top-0 bottom-0 w-3 cursor-ew-resize hover:bg-indigo-500 transition-colors flex items-center justify-center`, onMouseDown: handleDragStart, children: _jsx(Minus, { className: \"rotate-90 font-semibold\", strokeWidth: 4 }) })), _jsxs(\"div\", { className: `flex-1 min-w-0 flex flex-col bg-background shadow-xl ${className}`, children: [title && (_jsx(\"div\", { className: \"sticky top-0 z-10 bg-background px-2 sm:px-4 py-2 border-b\", children: _jsxs(\"div\", { className: \"flex items-start justify-between\", children: [_jsx(\"h2\", { className: \"w-full text-base font-semibold leading-6\", children: _jsx(\"div\", { className: \"text-2xl\", children: title ?? \"\" }) }), _jsx(\"div\", { className: \"ml-3 flex h-7 items-center\", children: _jsx(CloseButton, { onClose: onClose }) })] }) })), _jsx(\"div\", { className: contentClassName ?? \"flex-1 overflow-auto px-2 sm:px-4 py-4\", children: _jsx(\"div\", { className: 'w-full h-full flex-1 flex flex-col', children: children }) })] })] }) }) }) }) })] })) }));\n}\nfunction CloseButton({ onClose }) {\n return (_jsx(Button, { alt: \"Close panel\", variant: \"ghost\", onClick: onClose, children: _jsx(X, { className: \"size-6\", \"aria-hidden\": \"true\" }) }));\n}\n//# sourceMappingURL=SidePanel.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nfunction getRealSize(size) {\n switch (size) {\n case 'xs': return 'size-2';\n case 'sm': return 'size-3';\n case 'md': return 'size-4';\n case 'lg': return 'size-5';\n case 'xl': return 'size-7';\n case '2xl': return 'size-10';\n default: throw new Error('Unexpected size: ' + size);\n }\n}\nexport function Spinner({ size, className }) {\n const sizeClass = getRealSize(size || 'md');\n return (_jsx(_Fragment, { children: _jsxs(\"svg\", { className: clsx(\"animate-[spin_0.8s_linear_infinite] text-indigo-500\", sizeClass, className), xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", viewBox: \"0 0 24 24\", children: [_jsx(\"circle\", { className: \"opacity-25\", cx: \"12\", cy: \"12\", r: \"10\", stroke: \"currentColor\", strokeWidth: \"4\" }), _jsx(\"path\", { className: \"opacity-75\", fill: \"currentColor\", d: \"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" })] }) }));\n}\n//# sourceMappingURL=Spinner.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from \"clsx\";\nconst defaultTableCass = `\ndivide-y divide-border\n[&>tbody]:divide-y [&>tbody]:divide-border\n[&_th]:text-left [&_th]:px-3 [&_th]:py-3.5 [&_th]:text-sm [&_th]:font-normal [&_th]:text-muted-foreground\n[&_td]:px-3 [&_td]:py-4 [&_td]:text-sm\n`;\nexport function Table({ className, children, ...others }) {\n return (_jsx(\"table\", { className: clsx(defaultTableCass, className), ...others, children: children }));\n}\nexport function THead({ children }) {\n return (_jsx(\"thead\", { className: \"sticky top-0 bg-background z-10 after:absolute after:bottom-0 after:left-0 after:w-full after:h-px after:bg-muted/20\", children: children }));\n}\nexport function RowSkeleton({ columns }) {\n return (_jsx(\"tr\", { className: \"hover:bg-muted\", children: Array(columns).fill(0).map((_, index) => _jsx(\"td\", { children: _jsx(\"div\", { className: \"animate-pulse rounded-xs h-5 bg-muted\" }) }, index)) }));\n}\nexport function TBody({ isLoading = false, columns, rows = 3, children }) {\n return (_jsx(\"tbody\", { children: (isLoading) ? (Array(rows).fill(0).map((_, index) => _jsx(RowSkeleton, { columns: columns }, index))) : (children) }));\n}\nexport function TR({ className, children, ...others }) {\n return (_jsx(\"tr\", { className: clsx(\"hover:bg-muted hover:cursor-pointer\", className), ...others, children: children }));\n}\n//# sourceMappingURL=index.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { X } from 'lucide-react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { Popover, PopoverContent, PopoverContext, PopoverTrigger } from './shadcn/popover';\nfunction TagsInputContent({ options, value, onChange, onOptionsChange, placeholder, className, disabled, layout = 'horizontal', creatable = false, createText = 'Create \"%value%\"', maxDropdownHeight = 200 }) {\n const popoverContext = useContext(PopoverContext);\n const [searchTerm, setSearchTerm] = useState('');\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n const [width, setWidth] = useState(0);\n const [pendingDeleteIndex, setPendingDeleteIndex] = useState(null);\n const inputRef = useRef(null);\n const triggerRef = useRef(null);\n const dropdownRef = useRef(null);\n const highlightedItemRef = useRef(null);\n const isOpen = popoverContext?.open ?? false;\n const setIsOpen = popoverContext?.setOpen ?? (() => { });\n // Measure trigger width for popover\n useEffect(() => {\n const element = triggerRef.current;\n if (!element)\n return;\n const updateWidth = () => {\n const contentWidth = element.getBoundingClientRect().width;\n setWidth(contentWidth);\n };\n const resizeObserver = new ResizeObserver(() => {\n updateWidth();\n });\n updateWidth();\n resizeObserver.observe(element);\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n // Filter options based on search term and exclude already selected\n const filteredOptions = options.filter(option => !value.includes(option) &&\n option.toLowerCase().includes(searchTerm.toLowerCase()));\n // Check if create option should be shown\n const showCreateOption = creatable && searchTerm && !value.includes(searchTerm) && !options.includes(searchTerm);\n // Total number of items (filtered options + create option if shown)\n const totalItems = filteredOptions.length + (showCreateOption ? 1 : 0);\n // Reset highlighted index when filtered options change\n useEffect(() => {\n setHighlightedIndex(0);\n }, [searchTerm, showCreateOption]);\n // Clear pending delete when user starts typing\n useEffect(() => {\n if (searchTerm !== '') {\n setPendingDeleteIndex(null);\n }\n }, [searchTerm]);\n // Scroll highlighted item into view\n useEffect(() => {\n if (isOpen && highlightedItemRef.current && dropdownRef.current) {\n highlightedItemRef.current.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, [highlightedIndex, isOpen]);\n // Clear search term when popover closes and refocus input when it opens\n useEffect(() => {\n if (!isOpen) {\n setSearchTerm('');\n }\n else {\n // Ensure input stays focused when popover opens\n inputRef.current?.focus();\n }\n }, [isOpen]);\n const handleSelect = (option) => {\n onChange([...value, option]);\n setSearchTerm('');\n setIsOpen(false);\n setHighlightedIndex(0);\n setPendingDeleteIndex(null);\n };\n const handleCreate = (newTag) => {\n // Add to value\n onChange([...value, newTag]);\n // Add to options if callback provided\n if (onOptionsChange && !options.includes(newTag)) {\n onOptionsChange([...options, newTag]);\n }\n setSearchTerm('');\n setIsOpen(false);\n setHighlightedIndex(0);\n setPendingDeleteIndex(null);\n };\n const handleRemove = (option, e) => {\n e.stopPropagation();\n onChange(value.filter(v => v !== option));\n setPendingDeleteIndex(null);\n };\n const handleKeyDown = (e) => {\n // Handle special keys\n if (e.key === 'Enter' && isOpen && totalItems > 0) {\n e.preventDefault();\n e.stopPropagation();\n // Check if we're selecting the create option\n if (highlightedIndex === filteredOptions.length && showCreateOption) {\n handleCreate(searchTerm);\n }\n else if (highlightedIndex < filteredOptions.length) {\n handleSelect(filteredOptions[highlightedIndex]);\n }\n return;\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopPropagation();\n if (!isOpen) {\n setIsOpen(true);\n }\n else {\n setHighlightedIndex(prev => prev < totalItems - 1 ? prev + 1 : prev);\n }\n return;\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopPropagation();\n if (!isOpen) {\n setIsOpen(true);\n }\n else {\n setHighlightedIndex(prev => (prev > 0 ? prev - 1 : 0));\n }\n return;\n }\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setIsOpen(false);\n return;\n }\n if (e.key === 'Backspace' && searchTerm === '' && value.length > 0) {\n // Two-step deletion: first backspace marks for deletion, second backspace deletes\n e.stopPropagation();\n const lastIndex = value.length - 1;\n if (pendingDeleteIndex === lastIndex) {\n // Second backspace: actually delete the item\n onChange(value.slice(0, -1));\n setPendingDeleteIndex(null);\n }\n else {\n // First backspace: mark for deletion\n setPendingDeleteIndex(lastIndex);\n }\n return;\n }\n // For any other key (typing characters), open dropdown\n if (!isOpen && e.key.length === 1) {\n setIsOpen(true);\n }\n };\n const handleInputClick = (e) => {\n e.stopPropagation();\n if (!disabled) {\n setIsOpen(true);\n }\n };\n const handleInputFocus = () => {\n if (!disabled) {\n setIsOpen(true);\n }\n };\n const handleContainerClick = () => {\n if (!disabled) {\n inputRef.current?.focus();\n }\n };\n return (_jsxs(\"div\", { className: clsx('relative', className), children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(\"div\", { ref: triggerRef, className: clsx('min-h-[40px] w-full rounded-md border border-input bg-background px-3 py-2', 'flex items-center gap-1', layout === 'horizontal' ? 'flex-wrap' : 'flex-col items-stretch', 'cursor-text', 'ring-offset-background', disabled && 'opacity-50 cursor-not-allowed', isOpen ? 'ring-1 ring-inset ring-ring' : ''), onClick: handleContainerClick, children: [layout === 'vertical' && value.length > 0 && (_jsx(\"div\", { className: \"flex flex-col gap-1 w-full\", children: value.map((item, index) => (_jsxs(\"span\", { className: clsx(\"inline-flex items-center justify-between gap-2 px-2 py-1 text-sm bg-primary/10 text-primary rounded-md w-full transition-all\", pendingDeleteIndex === index && \"ring-2 ring-red-300 shadow-[0_0_8px_rgba(252,165,165,0.5)]\"), children: [_jsx(\"span\", { className: \"truncate\", children: item }), _jsx(\"button\", { type: \"button\", onClick: (e) => handleRemove(item, e), disabled: disabled, className: \"hover:bg-primary/20 rounded-sm transition-colors flex-shrink-0\", children: _jsx(X, { className: \"h-3 w-3\" }) })] }, item))) })), layout === 'horizontal' && value.map((item, index) => (_jsxs(\"span\", { className: clsx(\"inline-flex items-center gap-1 px-2 py-1 text-sm bg-primary/10 text-primary rounded-md transition-all\", pendingDeleteIndex === index && \"ring-2 ring-red-300 shadow-[0_0_8px_rgba(252,165,165,0.5)]\"), children: [item, _jsx(\"button\", { type: \"button\", onClick: (e) => handleRemove(item, e), disabled: disabled, className: \"hover:bg-primary/20 rounded-sm transition-colors\", children: _jsx(X, { className: \"h-3 w-3\" }) })] }, item))), _jsx(\"input\", { ref: inputRef, type: \"text\", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), onKeyDown: handleKeyDown, onClick: handleInputClick, onFocus: handleInputFocus, disabled: disabled, placeholder: value.length === 0 ? placeholder : '', className: clsx('flex-1 min-w-[120px] bg-transparent text-sm', 'placeholder:text-muted-foreground', 'border-none outline-none focus:outline-none focus:ring-0 p-0 m-0', layout === 'vertical' && 'w-full') })] }) }), _jsx(PopoverContent, { style: { width: `${width}px` }, className: \"p-0 bg-popover border border-border shadow-lg\", align: \"start\", side: \"bottom\", onOpenAutoFocus: (e) => {\n // Prevent the popover from stealing focus from the input\n e.preventDefault();\n }, children: _jsx(\"div\", { ref: dropdownRef, className: \"overflow-y-auto\", style: { maxHeight: `${maxDropdownHeight}px` }, children: filteredOptions.length === 0 && !showCreateOption ? (_jsx(\"div\", { className: \"px-3 py-2 text-sm text-muted-foreground\", children: searchTerm ? 'No options found' : 'No more options available' })) : (_jsxs(_Fragment, { children: [filteredOptions.length > 0 && (_jsx(\"ul\", { className: \"py-1\", children: filteredOptions.map((option, index) => (_jsx(\"li\", { ref: (el) => {\n if (index === highlightedIndex) {\n highlightedItemRef.current = el;\n }\n }, onClick: () => handleSelect(option), onMouseEnter: () => setHighlightedIndex(index), className: clsx('px-3 py-2 text-sm cursor-pointer transition-colors', index === highlightedIndex\n ? 'bg-blue-500/20 text-foreground'\n : 'hover:bg-accent/50'), children: option }, option))) })), showCreateOption && (_jsxs(_Fragment, { children: [filteredOptions.length > 0 && (_jsx(\"div\", { className: \"border-t border-border\" })), _jsx(\"div\", { ref: (el) => {\n if (highlightedIndex === filteredOptions.length) {\n highlightedItemRef.current = el;\n }\n }, onClick: () => handleCreate(searchTerm), onMouseEnter: () => setHighlightedIndex(filteredOptions.length), className: clsx('px-3 py-2 text-sm cursor-pointer transition-colors text-primary', highlightedIndex === filteredOptions.length\n ? 'bg-blue-500/20'\n : 'hover:bg-accent/50'), children: createText.replace('%value%', searchTerm) })] }))] })) }) })] }));\n}\nexport function TagsInput(props) {\n return (_jsx(Popover, { click: true, children: _jsx(TagsInputContent, { ...props }) }));\n}\n//# sourceMappingURL=TagsInput.js.map","import React, { useContext, useEffect, useState } from \"react\";\n//type KeysOfType<T, V> = { [K in keyof T]-?: T[K] extends V ? K : never }[keyof T];\n//type KeysNotOfType<T, V> = { [K in keyof T]-?: T[K] extends V ? never : K }[keyof T];\nexport class Property {\n _value;\n watchers = [];\n /**\n * Optional name for debugging purposes.\n * When provided, changes to this property will be logged to the console in development mode,\n * making it easier to track state changes and debug reactive updates.\n *\n * Example: new Property<string>('', 'streamingText')\n * Will log: [CompositeState] streamingText: \"\" → \"new value\"\n */\n name;\n constructor(value, name) {\n this._value = value;\n this.name = name;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n if (value !== this._value) {\n this._value = value;\n for (const watcher of this.watchers) {\n watcher(value);\n }\n }\n }\n watch(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter(w => w !== watcher);\n };\n }\n}\nexport function createCompositeStateProvider(StateClass) {\n const context = React.createContext(undefined);\n StateClass.Context = context;\n return context.Provider;\n}\nexport class Slot {\n consume = undefined;\n _current;\n constructor(content) {\n this._current = content;\n }\n set current(content) {\n if (content !== this._current) {\n this._current = content;\n this.consume?.(content);\n }\n }\n get current() {\n return this._current;\n }\n withConsumer(consume) {\n this.consume = consume;\n consume && consume(this.current);\n return this;\n }\n}\nexport function useCompositeState(StateClass) {\n const context = StateClass.Context;\n if (!context) {\n throw new Error(\"Context not defined for \" + StateClass.name);\n }\n return useContext(context);\n}\nexport function useGetCompositeStateProperty(property) {\n const [value, setValue] = useState(property.value);\n useEffect(() => {\n return property.watch((value) => {\n if (typeof value === 'function') {\n setValue(() => value); // cannot directly store functions\n }\n else {\n setValue(value);\n }\n });\n }, [property]);\n return value;\n}\n// use memo on value to avoid re-computations if needed\nexport function useSetCompositeStateProperty(property, value) {\n useEffect(() => {\n property.value = value;\n return () => {\n property.value = undefined;\n };\n }, [property, value]);\n return value;\n}\n// use memo on watcher to avoid re-computations if needed\nexport function useWatchCompositeStateProperty(property, watcher) {\n useEffect(() => {\n return property.watch(watcher);\n }, [property, watcher]);\n}\nexport function useSlot(slot) {\n const [value, setValue] = useState(slot.current);\n useEffect(() => {\n slot.withConsumer(setValue);\n return () => {\n slot.withConsumer(undefined);\n };\n }, [slot]);\n return value;\n}\nexport function useWatchSlot(slot, watcher) {\n useEffect(() => {\n slot.withConsumer(watcher);\n return () => {\n slot.withConsumer(undefined);\n };\n }, [slot, watcher]);\n}\n// use memo for value if needed\nexport function useDefineSlot(slot, value) {\n useEffect(() => {\n slot.current = value;\n return () => {\n slot.current = undefined;\n };\n }, [slot, value]);\n}\n/**\n * Computed property that derives its value from other properties.\n * Automatically recalculates when any of its dependencies change.\n *\n * Think of it like a spreadsheet formula: if cell A1 = 5 and A2 = 10,\n * then A3 = A1 + A2 will automatically update to 15. If A1 changes to 7,\n * A3 automatically becomes 17.\n *\n * @example Basic usage\n * ```typescript\n * class MyState {\n * count = new Property(0, 'count');\n * multiplier = new Property(2, 'multiplier');\n *\n * // Automatically recalculates when count or multiplier changes\n * result = new ComputedProperty(\n * () => (this.count.value || 0) * (this.multiplier.value || 0),\n * [this.count, this.multiplier],\n * 'result'\n * );\n * }\n *\n * state.count.value = 5; // result automatically becomes 10\n * state.multiplier.value = 3; // result automatically becomes 15\n * ```\n *\n * @example Derived state\n * ```typescript\n * class EditorState {\n * workingCopy = new Property<Interaction>();\n * sourceInteraction = new Property<Interaction>();\n *\n * // Automatically true when workingCopy differs from source\n * isDirty = new ComputedProperty(\n * () => JSON.stringify(this.workingCopy.value) !==\n * JSON.stringify(this.sourceInteraction.value),\n * [this.workingCopy, this.sourceInteraction],\n * 'isDirty'\n * );\n * }\n * ```\n *\n * @example Cascading computed properties\n * ```typescript\n * class State {\n * a = new Property(1);\n * b = new Property(2);\n * sum = new ComputedProperty(() => a.value + b.value, [a, b]);\n * doubled = new ComputedProperty(() => sum.value * 2, [sum]);\n * }\n * ```\n *\n * Benefits:\n * - ✅ Automatic updates when dependencies change\n * - ✅ Memoization - only recalculates when needed\n * - ✅ Composable - can depend on other ComputedProperties\n * - ✅ Type-safe with full TypeScript support\n *\n * When to use:\n * - ✅ For derived state (values calculated from other values)\n * - ✅ When dependencies are other Properties or ComputedProperties\n * - ❌ NOT for async operations (use regular methods instead)\n * - ❌ NOT if compute function has side effects\n *\n * @important Remember to call dispose() when the ComputedProperty is no longer needed\n * to prevent memory leaks by unsubscribing from all dependencies.\n */\nexport class ComputedProperty {\n compute;\n _value;\n watchers = [];\n unsubscribers = [];\n /**\n * Optional name for debugging purposes.\n * When provided, recalculations will be logged to the console in development mode.\n */\n name;\n /**\n * @param compute - Function that calculates the derived value\n * @param dependencies - Array of Properties this computed value depends on\n * @param name - Optional name for debugging\n */\n constructor(compute, dependencies, name) {\n this.compute = compute;\n this.name = name;\n this.recalculate();\n // Watch all dependencies - when any changes, recalculate\n for (const dep of dependencies) {\n this.unsubscribers.push(dep.watch(() => this.recalculate()));\n }\n }\n recalculate() {\n const newValue = this.compute();\n if (newValue !== this._value) {\n this._value = newValue;\n for (const watcher of this.watchers) {\n watcher(newValue);\n }\n }\n }\n get value() {\n return this._value;\n }\n watch(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter(w => w !== watcher);\n };\n }\n /**\n * Dispose of this ComputedProperty by unsubscribing from all dependencies.\n * Call this when the ComputedProperty is no longer needed to prevent memory leaks.\n *\n * @example\n * ```typescript\n * const computed = new ComputedProperty(...);\n *\n * // Later, when cleaning up:\n * computed.dispose();\n * ```\n */\n dispose() {\n for (const unsub of this.unsubscribers) {\n unsub();\n }\n this.watchers = [];\n }\n}\n//# sourceMappingURL=CompositeState.js.map","import { useEffect, useState } from \"react\";\nexport class SharedState {\n _value;\n watchers = [];\n constructor(value) {\n this._value = value;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n if (value !== this._value) {\n this._value = value;\n for (const watcher of this.watchers) {\n watcher(value);\n }\n }\n }\n addWatcher(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter(w => w !== watcher);\n };\n }\n}\nexport function useWatchSharedState(state) {\n const [value, setValue] = useState(state.value);\n useEffect(() => {\n return state.addWatcher((value) => {\n if (typeof value === 'function') {\n setValue(() => value); // cannot directly store functions\n }\n else {\n setValue(value);\n }\n });\n }, [state]);\n return value;\n}\n// export function createSharedStateContext<T>(initialValue: T) {\n// const Context = React.createContext<SharedState<T>>(undefined as any);\n// function SharedStateProvider({ value = initialValue, children }: {\n// value?: T,\n// children: React.ReactNode\n// }) {\n// const state = useMemo(() => {\n// return new SharedState(value);\n// }, []);\n// return <Context.Provider value={state}>{children}</Context.Provider>\n// }\n// const useSharedState = () => {\n// return React.useContext(Context);\n// }\n// return {\n// Context,\n// Provider: SharedStateProvider,\n// useSharedState,\n// useWatchSharedState: () => {\n// const state = useSharedState();\n// return state ? useWatchSharedState(state) : undefined;\n// }\n// }\n// }\n//# sourceMappingURL=SharedState.js.map","import { useEffect, useRef } from \"react\";\n/**\n *\n * @param callback\n * @param skipFn an optional function to skip the callback if the event matches some condition. Return true to skip\n * @returns\n */\nexport function useClickOutside(callback, skipFn) {\n const ref = useRef(null);\n useEffect(() => {\n const handleClick = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n if (!skipFn || !skipFn(e)) {\n callback(e);\n }\n }\n };\n // add te listener just after the render to avoid the callback to be called on the current click\n // if you are in a click context\n window.setTimeout(() => {\n document.addEventListener('click', handleClick);\n }, 0);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n return ref;\n}\n//# sourceMappingURL=useClickOutside.js.map","import { useState } from 'react';\nexport function useCopyToClipboard() {\n const [copiedText, setCopiedText] = useState(null);\n const copy = async (text) => {\n if (!navigator?.clipboard) {\n console.warn('Clipboard not supported');\n return false;\n }\n // Try to save to clipboard then save it in the state if worked\n try {\n await navigator.clipboard.writeText(text);\n setCopiedText(text);\n return true;\n }\n catch (error) {\n console.warn('Copy failed', error);\n setCopiedText(null);\n return false;\n }\n };\n return [copiedText, copy];\n}\n//# sourceMappingURL=useCopyToClipboard.js.map","import { useEffect } from \"react\";\nexport function useDarkMode(cb) {\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const _cb = (e) => cb(e.matches);\n mediaQuery.addEventListener('change', _cb);\n cb(mediaQuery.matches);\n return () => mediaQuery.removeEventListener('change', _cb);\n }, []);\n}\n//# sourceMappingURL=useDarkMode.js.map","import { useEffect, useState } from \"react\";\nexport function useDebounce(value, delay) {\n const [debounceValue, setDebounceValue] = useState(value);\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebounceValue(value);\n }, delay);\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n return debounceValue;\n}\n//# sourceMappingURL=useDebounce.js.map","import { useEffect } from \"react\";\nfunction startSse(url, onMessage, onCompleted) {\n const chunks = [];\n const sse = new EventSource(url);\n sse.addEventListener(\"message\", ev => {\n const data = JSON.parse(ev.data);\n if (data) {\n chunks.push(data);\n onMessage(chunks.join(''));\n }\n });\n sse.addEventListener(\"close\", (ev) => {\n sse.close();\n const msg = JSON.parse(ev.data);\n onCompleted(msg);\n });\n return () => {\n sse.close();\n };\n}\nexport function useEventSource(url, onMessage, onCompleted) {\n useEffect(() => {\n if (typeof url === 'function') {\n url().then(url => startSse(url, onMessage, onCompleted));\n }\n else {\n startSse(url, onMessage, onCompleted);\n }\n }, [url]);\n}\n//# sourceMappingURL=useEventSource.js.map","import { useEffect, useState } from \"react\";\nexport function useFetch(fetcher, opts) {\n if (Array.isArray(opts)) {\n opts = { deps: opts };\n }\n const options = (opts || {});\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [data, setData] = useState(options.defaultValue);\n const fetch = () => {\n options.start && options.start();\n setIsLoading(true);\n return fetcher().then((result) => {\n setData(result);\n options.onSuccess && options.onSuccess(result);\n }).catch(error => {\n setError(error);\n options.onError && options.onError(error);\n }).finally(() => {\n setIsLoading(false);\n options.end && options.end();\n });\n };\n useEffect(() => {\n if (!options.condition || options.condition()) {\n fetch();\n }\n }, options.deps);\n return { data, isLoading, error, setData, refetch: fetch };\n}\nexport function useFetchOnce(fetcher, opts) {\n if (!opts || Array.isArray(opts)) {\n opts = { deps: [] };\n }\n else if (opts) {\n opts.deps = [];\n }\n return useFetch(fetcher, opts);\n}\n//# sourceMappingURL=useFetch.js.map","import { useState } from \"react\";\nexport function useFlag(isOn = false) {\n const [state, setState] = useState(isOn);\n return {\n isOn: state,\n isOff: !state,\n set: (value) => setState(value),\n on: () => setState(true),\n off: () => setState(false),\n toggle: () => setState(!state)\n };\n}\n//# sourceMappingURL=useFlag.js.map","import { useEffect } from \"react\";\n/**\n * if leave option is true then callback will be called when the target leaves the viewport\n * otherwise when it enters the viewport\n * @param target\n * @param cb\n * @param opts\n */\nexport function useIntersectionObserver(target, cb, opts = {}) {\n useEffect(() => {\n const observer = new IntersectionObserver(entries => {\n const isEntering = entries[0].isIntersecting;\n if (opts.leave) {\n if (!isEntering) {\n cb(entries[0]);\n }\n }\n else {\n if (isEntering) {\n cb(entries[0]);\n }\n }\n }, { threshold: opts.threshold || 1 });\n if (target.current) {\n observer.observe(target.current);\n }\n return () => {\n if (target.current) {\n observer.unobserve(target.current);\n }\n };\n }, opts.deps ? opts.deps.concat(target) : [target]);\n}\n//# sourceMappingURL=useIntersectionObserver.js.map","import { useEffect, useRef } from \"react\";\nexport function useIsFirstRendering() {\n const isFirstRender = useRef(true);\n useEffect((cb) => {\n if (cb && isFirstRender.current) {\n cb();\n }\n isFirstRender.current = false;\n // ---> StrictMode: The following is REQUIRED to reset/cleanup:\n return () => { isFirstRender.current = true; };\n }, []);\n return isFirstRender.current;\n}\n//# sourceMappingURL=useIsFistRendering.js.map","import { useEffect, useLayoutEffect } from \"react\";\nconst useSafeLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\nexport { useSafeLayoutEffect };\n//# sourceMappingURL=useSafeLayoutEffect.js.map","import { useIntersectionObserver } from \"@vertesia/ui/core\";\nimport { useEffect, useRef, useState } from \"react\";\n/**\n * A hook that provides paginated search functionality with infinite scrolling support.\n */\nexport function useScrollableSearch(opts, dependencies = []) {\n const pageSize = opts.pageSize || 50;\n const [page, setPage] = useState(null);\n const [lastPayload, setLastPayload] = useState(opts.payload);\n const [error, setError] = useState(null);\n const [results, setResults] = useState([]);\n const [nextPage, setNextPage] = useState(null);\n const [isSearching, setIsSearching] = useState(false);\n // Track current request to prevent stale results\n const requestIdRef = useRef(0);\n const search = (payload) => {\n setPage(null);\n setResults([]); // Clear old results immediately\n setNextPage(null);\n setLastPayload(payload);\n };\n const searchMore = () => {\n if (nextPage !== null) {\n setPage(nextPage);\n }\n };\n useEffect(() => {\n // Increment request ID to mark previous requests as stale\n requestIdRef.current += 1;\n const currentRequestId = requestIdRef.current;\n setIsSearching(true);\n opts.search(lastPayload, page, pageSize).then(r => {\n // Only update state if this is still the current request\n if (currentRequestId !== requestIdRef.current) {\n return; // Stale request, ignore results\n }\n // If page is null, it's a new search - replace results\n // Otherwise, it's loading more - append results\n if (page === null) {\n setResults(r.result);\n }\n else {\n setResults(prev => [...prev, ...r.result]);\n }\n setNextPage(r.nextPage);\n setError(null);\n }).catch(error => {\n // Only update error if this is still the current request\n if (currentRequestId !== requestIdRef.current) {\n return; // Stale request, ignore error\n }\n setError(error);\n }).finally(() => {\n // Only update isSearching if this is still the current request\n if (currentRequestId === requestIdRef.current) {\n setIsSearching(false);\n }\n });\n }, [...dependencies, lastPayload, page]);\n // Intersection observer for infinite scrolling\n useIntersectionObserver(opts.nextPageTrigger, () => {\n if (!isSearching && nextPage) {\n searchMore();\n }\n }, { threshold: 0.1, deps: [nextPage, isSearching] });\n return {\n search,\n refresh: () => search(lastPayload),\n searchMore,\n result: results,\n page,\n hasMore: nextPage !== null,\n error,\n isSearching,\n };\n}\nexport function useDefaultScrollableSearch(opts, dependencies = []) {\n const actualOpts = {\n ...opts,\n async search(payload, page, pageSize) {\n const currentPage = page ?? 0;\n const offset = currentPage * pageSize;\n const result = await opts.search(payload, offset, pageSize);\n return {\n result,\n nextPage: result.length === 0 ? null : currentPage + 1\n };\n }\n };\n return useScrollableSearch(actualOpts, dependencies);\n}\n//# sourceMappingURL=useScrollableSearch.js.map","import { useState } from \"react\";\nexport class SharedValue {\n state;\n constructor(state) {\n this.state = state;\n }\n get() {\n return this.state[0];\n }\n set(value) {\n this.state[1](value);\n }\n}\n/**\n * Share a stateful value\n */\nexport function useSharedValue(initialValue) {\n const state = useState(initialValue);\n return new SharedValue(state);\n}\n//# sourceMappingURL=useSharedValue.js.map","import { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nexport function cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n//# sourceMappingURL=cn.js.map"],"names":["getRealSize","size","Error","Avatar","src","name","shape","color","className","rounded","sizeClass","_jsx","alt","title","first","second","split","text","children","fill","viewBox","d","SvgAvatar","Center","clsx","PositionResolver","left","top","width","height","alignAxis","gap","constructor","this","position","pos","anchorRect","elemRect","bottom","right","align","computePosition","constraints","constrainWidth","constrainHeight","rect","DOMRect","flipAxis","axis","newAlign","flipAlign","newPos","flipPos","isElementVisibleOnAxis","clientRect","resolver","computedPos","isVisibleOnXAxis","isVisibleOnYAxis","newConstraints","isElementVisible","intersectRects","rect1","rect2","x1","Math","max","y1","x2","min","y2","isScrollable","element","hasScrollY","scrollHeight","clientHeight","hasScrollX","scrollWidth","clientWidth","style","getComputedStyle","overflowY","overflowX","PopupController","options","root","scrollableParents","visibleClientRect","context","document","documentElement","parents","parent","parentElement","push","getScrollableParents","anchor","length","getBoundingClientRect","i","l","computeVisibleClientRect","registerListeners","updateHandler","update","window","addEventListener","closeOnClick","closeOnEsc","ev","contains","target","tryClose","setTimeout","key","blockPageScroll","body","overflow","removeEventListener","open","tryOpen","cleanup","display","visibility","onOpen","close","onClose","undefined","isOpen","createPopupElement","popup","createElement","margin","padding","border","background","PopupContext","createContext","usePopupController","ctrl","useContext","DOMPopup","ctrlRef","id","zIndex","props","popupRef","useRef","setCtrl","useState","useEffect","_ctrl","current","Provider","value","createPortal","ref","Popup","others","OptionAdapter","filter","items","lcText","toLowerCase","item","valueOf","includes","renderOption","findById","find","idOf","createItem","_value","StringOptionAdapter","String","static","StringOptionAdapterWithCreate","getDefaultComboBoxLayout","fullWidth","unstyledInput","buttonRight","buttonWidth","maxMenuHeight","menuClass","inputClass","INPUT_NO_PADDING","optionClass","Input","Menu","Toggle","ComboBox","menuAlign","menuGap","focusOnMount","onSelect","api","layout","layoutOpts","adapter","placeholder","clearable","noMatchMessage","openOnFocus","popupId","floor","random","popupCtrl","inputRef","Object","assign","inputBoxRef","React","useComboboxCtrl","focus","openMenu","closeMenu","toggle","toggleMenu","setInputValue","inputText","inputValue","selectedItem","showMenu","isMenuOpen","filteredItems","_jsxs","_Fragment","boxRef","fillWidth","ComboInput","showClear","buttonCount","paddingRight","getInputProps","onFocus","alignItems","backgroundColor","cursor","onClick","XIcon","justifyContent","getToggleButtonProps","ComboToggle","ChevronUpIcon","ChevronDownIcon","ComboMenu","highlightedIndex","maxHeight","getMenuProps","map","index","getItemProps","ComboboxController","withState","setState","_selectedItem","_filteredItems","_inputText","_highlightedIndex","_isMenuOpen","clone","updateState","popupPosition","_item","highlightIndex","navigateToTop","getElementById","querySelector","scrollIntoView","onMouseEnter","onMouseLeave","onChange","onKeyDown","decrModulo","SimpleCombobox","creatable","rest","instance","Divider","EmptyCollection","buttonLabel","stroke","vectorEffect","strokeLinecap","strokeLinejoin","strokeWidth","Button","Plus","FileUploadInput","onUpload","type","files","ar","fileListToArray","DropZone","dropZoneProps","useDropZone","htmlFor","xmlns","dragOverClass","dropEffect","onDrop","preventDefault","__dragOver_cnt__","classList","remove","dataTransfer","promises","traverseFileTree","path","Promise","resolve","isFile","file","defineProperty","isDirectory","dirReader","createReader","entries","readEntries","results","entry","all","then","filesArrays","flat","webkitGetAsEntry","allFiles","onDragOver","onDragEnter","el","cnt","_onDragEnter","add","onDragLeave","_onDragLeave","cn","inputs","twMerge","PortalContainerContext","PortalContainerProvider","inherited","container","setContainer","getRootNode","ShadowRoot","Document","child","Array","from","HTMLElement","appendChild","findOrCreatePortalContainer","usePortalContainer","TooltipProvider","TooltipPrimitive","Tooltip","Root","TooltipTrigger","Trigger","TooltipContent","forwardRef","sideOffset","side","Portal","Content","VTooltip","description","placement","asChild","setOpen","suppressRef","suppress","requestAnimationFrame","delayDuration","onOpenChange","v","FormItem","required","label","direction","disabled","fullWidthLabel","childrenId","Info","displayName","badgeVariants","cva","variants","variant","default","secondary","destructive","attention","success","info","done","defaultVariants","Badge","dotBadgeVariants","dotVariants","DotBadge","dotClassName","cx","cy","r","xs","sm","md","lg","xl","unstyled","noPadding","legacy","readOnly","X","InputList","delimiters","autoFocus","setText","splice","_onClick","onBlur","trim","isEmpty","indexOf","pop","onPaste","pastedText","clipboardData","getData","delimiterPattern","char","replace","join","regex","RegExp","newValues","Link","underline","underlineClass","MenuList","MenuListItem","href","e","Item","Styles","INPUT_UNSTYLED","INPUT","numberToString","isNaN","toString","NumberInput","noScroll","noSpinners","textValue","setTextValue","onWheel","event","blur","num","parseFloat","NAMESPACE","i18nInstance","i18next","createInstance","use","initReactI18next","init","resources","de","en","es","fr","it","ja","ko","pt","ru","tr","zh","fallbackLng","ns","defaultNS","interpolation","escapeValue","react","useSuspense","buttonVariants","outline","ghost","link","primary","icon","isDisabled","isLoading","buttonElement","Slot","Loader2","CopyButton","content","toast","isCopied","setIsCopied","t","getFixedT","stopPropagation","navigator","clipboard","writeText","status","message","duration","catch","err","console","error","Check","CopyIcon","Overlay","overlayContent","overlayClassName","showCloseButton","triggerClassName","backdropClassName","animationConfig","stiffness","damping","setIsOpen","animationProps","initial","x","animate","exit","y","opacity","scale","getAnimationProps","positionClasses","baseClasses","getPositionClasses","motion","div","transition","PORTAL_ID","tempNode","portalEl","setPortalEl","doc","ownerDocument","ThemeProviderContext","theme","setTheme","ThemeProvider","defaultTheme","storageKey","localStorage","getItem","systemTheme","matchMedia","matches","setItem","useTheme","useUITranslation","useTranslation","i18n","ModeOption","option","ModeToggle","resolvedLabel","Computer","Sun","Moon","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","VisuallyHidden","clip","whiteSpace","wordWrap","ModalContext","useIsInModal","ModalContextProvider","Modal","noCloseButton","allowOverflow","disableCloseOnClickOutside","action","handleOpenChange","Dialog","DialogOverlay","DialogDescription","DialogContent","getSizeClasses","DialogClose","ModalTitle","show","showDivider","DialogTitle","ModalBody","ModalFooter","center","DialogPrimitive","DialogTrigger","DialogPortal","Close","onOpenAutoFocus","Description","Title","ConfirmModal","onConfirm","onCancel","cancelButtonRef","TriangleAlert","useToast","ToastContext","icons","CircleCheck","CircleX","warning","AlertTriangle","colors","NotificationPanel","data","setShow","timeoutRef","resetTimeout","globalThis","clearTimeout","clearCurrentTimeout","Icon","AnimatePresence","onExitComplete","ease","ToastProvider","setData","DeleteModal","idToDelete","setIdToDelete","deleteApi","async","finally","Separator","orientation","decorative","SeparatorPrimitive","PopoverContext","Popover","hover","click","modal","_open","PopoverPrimitive","handleHover","PopoverTrigger","prev","PopoverAnchor","Anchor","PopoverContent","PopoverClose","usePopoverContext","ctx","Command","CommandPrimitive","CommandDialog","CommandInput","Search","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","CommandItem","CommandShortcut","SelectBox","optionLabel","addNew","addNewLabel","filterBy","popupClass","isClearable","multiple","by","inline","warnOnMissingValue","missingValueWarning","clearIcon","clearTitle","triggerRef","setWidth","filterValue","setFilterValue","isMissingValue","useMemo","some","opt","isEqual","updateWidth","contentWidth","resizeObserver","ResizeObserver","observe","disconnect","isOptionSelected","selectedValues","isOptionsEqual","a","b","filteredOptions","filterLc","filterFn","o","getFilterByFn","renderOptionsContent","SearchIcon","currentTarget","scrollTop","deltaY","isSelected","isArray","currentValues","SquarePlus","absoluteStrokeWidth","LoaderCircle","arrayValue","slice","renderMultipleValue","singleValue","renderSingleValue","ChevronsUpDown","TabsContext","tabs","setTab","responsive","updateHash","Tabs","defaultValue","fullHeight","onTabChange","visibleTabs","tab","is_allowed","setValue","currentValue","hash","location","currentTab","substring","handleHashChange","handleValueChange","newValue","currentState","history","state","newUrl","pathname","search","pushState","useCallback","tabName","TabsPrimitive","onValueChange","TabsBar","sticky","handleTabChange","TabsList","TabsTrigger","warn","TabsPanel","TabsContent","handleClick","labelVariants","Label","LabelPrimitive","Breadcrumbs","maxItems","separator","renderBreadcrumbItem","shortenedLabel","BreadcrumbButton","BreadcrumbPage","Breadcrumb","BreadcrumbList","Fragment","BreadcrumbItem","BreadcrumbSeparator","ChevronRight","lastThreeItems","BreadcrumbEllipsis","role","MoreHorizontal","AnimateChangeInHeight","containerRef","setHeight","observedHeight","contentRect","Checkbox","CheckboxPrimitive","Indicator","DynamicLabel","labelRenderer","fallbackLabel","setLabel","setIsLoading","result","renderLabel","SelectionCombobox","filterType","filterValues","setFilterValues","commandInput","setCommandInput","commandInputRef","nonSelectedFilterValues","onInputCapture","checked","next","calendarStyles","DateCombobox","isRange","localDateRange","setLocalDateRange","selectedDate","dayjs","toDate","dateRange","handleDateChange","date","format","actualDate","alignOffset","ReactCalendar","selectRange","returnValue","maxDate","Date","setHours","tileClassName","view","currentDate","getTime","today","startDate","endDate","TextCombobox","StringListCombobox","tags","setTags","JSON","stringify","generateComboboxOptions","setFilters","filterGroups","f","dateValue","values","filterGroup","group","Filters","filters","TextFilter","selectedView","handleClose","handleTextFilterAdd","DateFilter","setSelectedDate","setDateRange","selectedGroup","g","isDateRange","effectiveDateRange","selectedDateStart","toISOString","Calendar","SelectFilter","selectedOptions","setSelectedOptions","groupName","getFilteredOptions","filterOption","existingFilterIndex","findIndex","updatedFilters","handleOptionToggle","StringListFilter","FilterContext","FilterProvider","inModal","searchParams","URL","initialFiltersParam","URLSearchParams","get","processedUrlFilters","Set","hasRestoredFromUrl","params","filterString","encodeURIComponent","firstValue","set","delete","replaceState","filterPairs","newFilters","pair","encodedName","valuesString","decodeURIComponent","has","startsWith","endsWith","arrayContent","encodedValue","matchingOption","_error","FilterBtn","setSelectedView","ListFilter","selectedGroupType","renderFilterOptions","val","handleSelect","getAvailableFilterGroups","FilterBar","FilterClear","FilterOperator","Heading","level","h1","h2","h3","h4","h5","h6","textVariants","weight","normal","medium","semibold","Text","ResizablePanelGroup","ResizablePrimitive","PanelGroup","ResizablePanel","Panel","ResizableHandle","withHandle","PanelResizeHandle","Minus","Textarea","minLines","maxLines","textareaRef","growing","resize","lineHeight","fontSize","paddingY","paddingTop","paddingBottom","borderY","borderTopWidth","borderBottomWidth","effectiveMax","Infinity","minHeight","contentHeight","useLayoutEffect","MessageBox","defaultIcon","titleColor","textColor","bgColor","ErrorBox","InfoBox","WarningBox","SuccessBox","DefaultBox","footer","collapsible","defaultCollapsed","isCollapsed","setIsCollapsed","ChevronDown","ChevronUp","sizes","Switch","trackSize","thumbSize","thumbTranslate","switchEl","SwitchPrimitive","onCheckedChange","Thumb","RadioGroupItem","RadioGroupPrimitive","RadioGroupAdapter","descriptionOf","selectedClassName","RadioGroup","selected","getId","getLabel","labelOf","getDescription","RadioOptionAdapter","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","HoverMenuContext","DropdownMenu","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","inset","DropdownMenuCheckboxItem","CheckboxItem","ItemIndicator","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","RadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","Sub","DropdownMenuSubTrigger","SubTrigger","ChevronRightIcon","DropdownMenuSubContent","SubContent","alignMap","Dropdown","trigger","closeTimer","MenuGroup","MenuItem","isHoverMenu","baseClass","defaultOptionLayout","check","reverse","SelectList","optionLayout","noCheck","setSelected","optionEquals","o1","o2","SelectListOption","SidePanel","panelWidth","backdrop","resizable","contentClassName","_panelWidth","setPanelWidth","isLeft","positionClass","paddingClass","borderClass","dragHandleClass","initialX","onMouseDown","isDragging","startX","pageX","startWidth","handleMouseMove","deltaX","newWidth","handleMouseUp","CloseButton","Spinner","Table","THead","RowSkeleton","columns","_","TBody","rows","TR","TagsInputContent","onOptionsChange","createText","maxDropdownHeight","popoverContext","searchTerm","setSearchTerm","setHighlightedIndex","pendingDeleteIndex","setPendingDeleteIndex","dropdownRef","highlightedItemRef","showCreateOption","totalItems","block","behavior","handleCreate","newTag","handleRemove","lastIndex","TagsInput","Property","watchers","watcher","watch","w","createCompositeStateProvider","StateClass","Context","consume","_current","withConsumer","useCompositeState","useGetCompositeStateProperty","property","useSetCompositeStateProperty","useWatchCompositeStateProperty","useSlot","slot","useWatchSlot","useDefineSlot","ComputedProperty","compute","unsubscribers","dependencies","recalculate","dep","dispose","unsub","SharedState","addWatcher","useWatchSharedState","useClickOutside","callback","skipFn","useCopyToClipboard","copiedText","setCopiedText","useDarkMode","cb","mediaQuery","_cb","useDebounce","delay","debounceValue","setDebounceValue","handler","startSse","url","onMessage","onCompleted","chunks","sse","EventSource","parse","msg","useEventSource","useFetch","fetcher","opts","deps","setError","fetch","start","onSuccess","onError","end","condition","refetch","useFetchOnce","useFlag","isOn","isOff","on","off","useIntersectionObserver","observer","IntersectionObserver","isEntering","isIntersecting","leave","threshold","unobserve","concat","useIsFirstRendering","isFirstRender","useSafeLayoutEffect","useScrollableSearch","pageSize","page","setPage","lastPayload","setLastPayload","payload","setResults","nextPage","setNextPage","isSearching","setIsSearching","requestIdRef","searchMore","currentRequestId","nextPageTrigger","refresh","hasMore","useDefaultScrollableSearch","currentPage","offset","SharedValue","useSharedValue","initialValue"],"mappings":"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"}
1
+ {"version":3,"file":"vertesia-ui-core.js","sources":["core/components/Avatar.js","core/components/Center.js","core/components/popup/position.js","core/components/popup/utils.js","core/components/popup/PopupController.js","core/components/popup/Popup.js","core/components/ComboBox.js","core/components/Divider.js","core/components/libs/utils.js","core/hooks/PortalContainerProvider.js","core/components/shadcn/tooltip.js","core/components/shadcn/button.js","core/components/EmptyCollection.js","core/components/FileUpload.js","core/components/FormItem.js","core/utils/a11y.js","core/components/shadcn/badge.js","core/components/shadcn/input.js","core/components/InputList.js","core/components/Link.js","core/components/MenuList.js","core/components/styles.js","core/components/NumberInput.js","core/components/Overlay.js","core/components/Portal.js","core/components/shadcn/breadcrumb.js","core/components/shadcn/card.js","core/components/shadcn/checkbox.js","core/components/shadcn/collaspible.js","core/components/libs/visuallyHidden.js","core/components/shadcn/modal/dialog.js","core/components/shadcn/command.js","core/components/shadcn/dropdown.js","core/components/shadcn/filters/animateChangeInHeight.js","core/components/shadcn/popover.js","core/components/shadcn/filters/filter-styles.js","core/components/shadcn/filters/comboBox/DateCombobox.js","core/components/shadcn/filters/DynamicLabel.js","core/components/shadcn/filters/comboBox/SelectCombobox.js","core/components/shadcn/filters/comboBox/StringListCombobox.js","core/components/shadcn/filters/comboBox/TextCombobox.js","core/components/shadcn/filters/filter/dateFilter.js","core/components/shadcn/filters/filter/SelectFilter.js","core/components/shadcn/filters/filter/StringListFilter.js","core/components/shadcn/filters/filter/TextFilter.js","core/components/shadcn/filters/filters.js","core/components/shadcn/filters/filterBar.js","core/components/shadcn/filters/types.js","core/components/shadcn/heading.js","core/components/shadcn/selectBox.js","core/components/shadcn/LanguageSwitcher.js","core/components/shadcn/label.js","core/components/shadcn/MessageBox.js","core/components/shadcn/modal/ConfirmModal.js","core/components/toast/ToastContext.js","core/components/toast/NotificationPanel.js","core/components/toast/ToastProvider.js","core/components/shadcn/modal/DeleteModal.js","core/components/shadcn/Panel.js","core/components/shadcn/radioGroup.js","core/components/shadcn/resizeable.js","core/components/shadcn/separator.js","core/components/shadcn/slider.js","core/components/shadcn/switch.js","core/components/shadcn/tabs.js","core/components/shadcn/text.js","core/components/shadcn/textarea.js","core/components/shadcn/theme/ThemeProvider.js","core/components/shadcn/theme/ThemeSwitcher.js","core/components/SelectList.js","core/components/SidePanel.js","core/components/Spinner.js","core/components/TagsInput.js","core/components/table/index.js","core/hooks/CompositeState.js","core/hooks/SharedState.js","core/hooks/useClickOutside.js","core/hooks/useCopyToClipboard.js","core/hooks/useDarkMode.js","core/hooks/useDebounce.js","core/hooks/useEventSource.js","core/hooks/useFetch.js","core/hooks/useFlag.js","core/hooks/useIntersectionObserver.js","core/hooks/useIsFistRendering.js","core/hooks/useSafeLayoutEffect.js","core/hooks/useScrollableSearch.js","core/hooks/useSharedValue.js","core/utils/cn.js","core/utils/errorMessage.js","core/utils/textarea.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getRealSize(size) {\n switch (size) {\n case 'xs':\n return 'size-4';\n case 'sm':\n return 'size-6';\n case 'md':\n return 'size-8';\n case 'lg':\n return 'size-10';\n case 'xl':\n return 'size-12';\n case '2xl':\n return 'size-14';\n default:\n throw new Error(`Unexpected size: ${size}`);\n }\n}\nexport function Avatar({ size, src, name, shape = 'circle', color = 'bg-gray-500', className }) {\n const rounded = shape === 'circle' ? 'rounded-full' : 'rounded-md';\n const sizeClass = getRealSize(size || 'md');\n if (src) {\n return (_jsx(\"img\", { className: `inline-block ${sizeClass} ${rounded} ${color} ${className}`, src: src, alt: name || src, title: name }));\n }\n if (name) {\n const [first, second] = name.split(' ');\n const text = second ? `${first[0]}${second[0]}` : `${first[0]}${first[1]}`;\n return (_jsx(\"span\", { className: `inline-flex ${sizeClass} items-center justify-center ${rounded} ${color} ${className}`, title: name, children: _jsx(\"span\", { className: `${size !== 'xs' ? 'text-xs' : 'text-[0.6rem]'} font-medium leading-none text-white`, children: text }) }));\n }\n return (_jsx(\"span\", { className: `inline-block ${sizeClass} overflow-hidden ${rounded} ${color}`, children: _jsx(\"svg\", { className: \"h-full w-full text-gray-300\", fill: \"currentColor\", viewBox: \"0 0 24 24\", \"aria-hidden\": \"true\", children: _jsx(\"path\", { d: \"M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z\" }) }) }));\n}\nexport function SvgAvatar({ size, shape = 'circle', color = 'bg-gray-500', className, children }) {\n const rounded = shape === 'circle' ? 'rounded-full' : 'rounded-md';\n const sizeClass = getRealSize(size || 'md');\n return (_jsx(\"span\", { className: `inline-block ${sizeClass} overflow-hidden ${rounded} ${color} ${className}`, children: children }));\n}\n//# sourceMappingURL=Avatar.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nexport function Center({ className, children }) {\n return _jsx(\"div\", { className: clsx('flex items-center justify-center', className), children: children });\n}\n//# sourceMappingURL=Center.js.map","function flipPos(position) {\n switch (position) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n case 'ne':\n return 'sw';\n case 'nw':\n return 'se';\n case 'se':\n return 'nw';\n case 'sw':\n return 'ne';\n default:\n return position;\n }\n}\nfunction flipAlign(align) {\n switch (align) {\n case 'start':\n return 'end';\n case 'end':\n return 'start';\n default:\n return align;\n }\n}\nclass PositionResolver {\n /**\n * The computed left coordinate (i.e. x)\n */\n left;\n /**\n * The computed top coordinate (i.e. y)\n */\n top;\n /**\n * The computed width constraint. If undefined it means that the width is not constrained.\n */\n width;\n /**\n * The computed height constraint. If undefined it means that the height is not constrained.\n */\n height;\n /**\n * Alignment axis. The axis is computed from the position constraints.\n * If no axis is found - no alignment will be done\n */\n alignAxis;\n /**\n * A gap size between the anchor element and the target element.\n */\n gap;\n constructor(gap = 0) {\n this.gap = gap;\n }\n position(pos, anchorRect, elemRect) {\n switch (pos) {\n case 'top': {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.alignAxis = 'x';\n break;\n }\n case 'bottom': {\n this.top = anchorRect.bottom + this.gap;\n this.alignAxis = 'x';\n break;\n }\n case 'left': {\n this.left = anchorRect.left - elemRect.width - this.gap;\n this.alignAxis = 'y';\n break;\n }\n case 'right': {\n this.left = anchorRect.right + this.gap;\n this.alignAxis = 'y';\n break;\n }\n case 'ne': {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.left = anchorRect.right + this.gap;\n break;\n }\n case 'nw': {\n this.top = anchorRect.top - elemRect.height - this.gap;\n this.left = anchorRect.left - elemRect.width - this.gap;\n break;\n }\n case 'se': {\n this.top = anchorRect.bottom + this.gap;\n this.left = anchorRect.right + this.gap;\n break;\n }\n case 'sw': {\n this.top = anchorRect.bottom + this.gap;\n this.left = anchorRect.left - elemRect.width - this.gap;\n break;\n }\n }\n }\n align(align, anchorRect, elemRect) {\n if (!this.alignAxis)\n return; // no alignment axis\n switch (align) {\n case 'start': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left;\n }\n else {\n this.top = anchorRect.top;\n }\n break;\n }\n case 'end': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.right - elemRect.width;\n }\n else {\n this.top = anchorRect.bottom - elemRect.height;\n }\n break;\n }\n case 'center': {\n // centering depend on the final value of the width / height\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left + anchorRect.width / 2 - elemRect.width / 2;\n }\n else {\n this.top = anchorRect.top + anchorRect.height / 2 - elemRect.height / 2;\n }\n break;\n }\n case 'fill': {\n if (this.alignAxis === 'x') {\n this.left = anchorRect.left;\n this.width = anchorRect.right - anchorRect.left;\n }\n else {\n this.top = anchorRect.top;\n this.height = anchorRect.bottom - anchorRect.top;\n }\n break;\n }\n }\n }\n computePosition(constraints, elemRect, anchorRect) {\n this.position(constraints.position, anchorRect, elemRect);\n if (constraints.align)\n this.align(constraints.align, anchorRect, elemRect);\n if (!this.left && !this.top) {\n throw new Error('Invalid position. Cannot compute x,y coordinates');\n }\n const constrainWidth = this.width != null;\n const constrainHeight = this.height != null;\n // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here\n const width = constrainWidth ? this.width : elemRect.width;\n // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here\n const height = constrainHeight ? this.height : elemRect.height;\n return {\n // biome-ignore lint/style/noNonNullAssertion: intentional non-null assertion; TS can't prove narrowing here\n rect: new DOMRect(this.left, this.top, width, height),\n constrainWidth,\n constrainHeight,\n position: constraints.position,\n align: constraints.align,\n };\n }\n flipAxis(constraints, axis) {\n if (this.alignAxis === axis) {\n // flip alignment\n if (constraints.align) {\n const newAlign = flipAlign(constraints.align);\n if (newAlign !== constraints.align) {\n return { ...constraints, align: newAlign };\n }\n }\n }\n else {\n // flip positioning\n const newPos = flipPos(constraints.position);\n if (newPos !== constraints.position) {\n return { ...constraints, position: newPos };\n }\n }\n return null; // nothing to do\n }\n}\nfunction isElementVisible(elemRect, clientRect) {\n return (elemRect.left >= clientRect.left &&\n elemRect.right <= clientRect.right &&\n elemRect.top >= clientRect.top &&\n elemRect.bottom <= clientRect.bottom);\n}\nfunction isElementVisibleOnAxis(elemRect, clientRect, axis) {\n if (axis === 'x') {\n return elemRect.left >= clientRect.left && elemRect.right <= clientRect.right;\n }\n else {\n return elemRect.top >= clientRect.top && elemRect.bottom <= clientRect.bottom;\n }\n}\n/**\n * Compute the position by trying to adjust the constraints until the computed position fits into the client area.\n * Returns the best position that fits the constraints.\n * @param constraints\n * @param elemRect\n * @param anchorRect\n * @param clientRect\n * @returns null if the element cannot be positioned otherwise returns a position object\n */\nexport function computePosition(constraints, elemRect, anchorRect, clientRect) {\n const resolver = new PositionResolver(constraints.gap);\n let computedPos = resolver.computePosition(constraints, elemRect, anchorRect);\n const isVisibleOnXAxis = isElementVisibleOnAxis(computedPos.rect, clientRect, 'x');\n const isVisibleOnYAxis = isElementVisibleOnAxis(computedPos.rect, clientRect, 'y');\n if (isVisibleOnXAxis && isVisibleOnYAxis) {\n return computedPos; // the element is visible on both axis\n }\n let newConstraints = null;\n if (!isVisibleOnXAxis) {\n newConstraints = resolver.flipAxis(constraints, 'x');\n }\n if (!isVisibleOnYAxis) {\n newConstraints = resolver.flipAxis(newConstraints || constraints, 'y');\n }\n if (!newConstraints) {\n return null; // cannot find a better position\n }\n computedPos = new PositionResolver(resolver.gap).computePosition(newConstraints, elemRect, anchorRect);\n if (isElementVisible(computedPos.rect, clientRect)) {\n return computedPos;\n }\n return null; // cannot find a better position\n}\n//# sourceMappingURL=position.js.map","/**\n * Compute the intersection of the two given rects.\n * @param rect1\n * @param rect2\n * @returns\n */\nexport function intersectRects(rect1, rect2) {\n const x1 = Math.max(rect1.left, rect2.left);\n const y1 = Math.max(rect1.top, rect2.top);\n const x2 = Math.min(rect1.right, rect2.right);\n const y2 = Math.min(rect1.bottom, rect2.bottom);\n if (x2 <= x1 || y2 <= y1) {\n return null; // No intersection\n }\n return new DOMRect(x1, y1, x2 - x1, y2 - y1);\n}\n/**\n * Compute the visible rectangle of the scrollable parents.\n * @param scrollableParents\n * @returns\n */\nexport function computeVisibleClientRect(scrollableParents) {\n if (scrollableParents.length === 0)\n return null;\n // Initialize the rect as the bounding rect of the first scrollable parent\n let rect = scrollableParents[0].getBoundingClientRect();\n // Iterate over the remaining scrollable parents to compute the intersection\n for (let i = 1, l = scrollableParents.length; i < l; i++) {\n const parentRect = scrollableParents[i].getBoundingClientRect();\n rect = intersectRects(parentRect, rect);\n // If there is no intersection, exit early\n if (!rect) {\n return null;\n }\n }\n return rect;\n}\n/**\n * Tests whether the given element is scrollable in any direction.\n * @param element\n * @returns\n */\nexport function isScrollable(element) {\n const hasScrollY = element.scrollHeight > element.clientHeight;\n const hasScrollX = element.scrollWidth > element.clientWidth;\n if (hasScrollY || hasScrollX) {\n const style = getComputedStyle(element);\n if ((hasScrollY && style.overflowY !== 'visible') || (hasScrollX && style.overflowX !== 'visible')) {\n return true;\n }\n }\n return false;\n}\n/**\n * Get the list of scrollable parents of the given element. The list always include the root parent at the end.\n * The root parent is either the document.documentElement or the given root element.\n * To iterate the list from top to down you need to iterate from the end to the start of the list,\n * since the root parent is always the last element and the nearest scrollable parent is the first element.\n * @param element\n * @param root\n * @returns\n */\nexport function getScrollableParents(element, root = document.documentElement) {\n const parents = [];\n let parent = element.parentElement;\n while (parent && parent !== root) {\n if (isScrollable(parent))\n parents.push(parent);\n parent = parent.parentElement;\n }\n // Always push the root element\n parents.push(root);\n return parents;\n}\n//# sourceMappingURL=utils.js.map","import { computePosition } from './position';\nimport { computeVisibleClientRect, getScrollableParents } from './utils';\nexport class PopupController {\n options;\n root;\n scrollableParents;\n visibleClientRect;\n context;\n constructor(options) {\n this.options = options;\n this.root = options.root || document.documentElement;\n this.scrollableParents = getScrollableParents(this.anchor, this.root);\n this.visibleClientRect = computeVisibleClientRect(this.scrollableParents);\n }\n get anchor() {\n return this.options.anchor;\n }\n registerListeners(element) {\n const parents = this.scrollableParents;\n const updateHandler = () => {\n this.update();\n };\n // add a window resize listener\n window.addEventListener('resize', updateHandler);\n //TODO do we add scroll listeners to the window?\n // add scroll listeners to all scrollable parents\n for (const parent of parents) {\n parent.addEventListener('scroll', updateHandler);\n }\n let closeOnClick;\n if (this.options.closeOnClick) {\n closeOnClick = (ev) => {\n if (!element.contains(ev.target)) {\n this.tryClose();\n }\n };\n // register in the next event loop cycle since the current one\n // is may be triggered by a click event\n window.setTimeout(() => {\n if (closeOnClick)\n document.addEventListener('click', closeOnClick);\n }, 0);\n }\n let closeOnEsc;\n if (this.options.closeOnEsc) {\n closeOnEsc = (ev) => {\n if (ev.key === 'Escape') {\n this.tryClose();\n }\n };\n window.setTimeout(() => {\n if (closeOnEsc)\n document.addEventListener('keydown', closeOnEsc);\n }, 0);\n }\n const blockPageScroll = this.options.blockPageScroll;\n if (blockPageScroll) {\n document.body.style.overflow = 'hidden';\n document.body.style.height = '100%';\n }\n return () => {\n window.removeEventListener('resize', updateHandler);\n for (const parent of parents) {\n parent.removeEventListener('scroll', updateHandler);\n }\n if (closeOnClick)\n document.removeEventListener('click', closeOnClick);\n if (closeOnEsc)\n document.removeEventListener('keydown', closeOnEsc);\n if (blockPageScroll) {\n document.body.style.overflow = '';\n document.body.style.height = '';\n }\n };\n }\n open(element, constraints) {\n if (this.context) {\n throw new Error('The popup controller is already bound to an element');\n }\n this.tryOpen(element, constraints);\n }\n tryOpen(element, constraints) {\n if (this.context) {\n return; // do nothing if the popup is already open\n }\n this.context = {\n element,\n constraints,\n cleanup: this.registerListeners(element),\n };\n element.style.display = '';\n element.style.visibility = 'hidden';\n // update the popup position\n this.update();\n this.options.onOpen?.(this);\n }\n close() {\n if (!this.context) {\n throw new Error('The popup controller is not bound to an element');\n }\n this.tryClose();\n }\n tryClose() {\n if (!this.context) {\n return; // do nothing if the popup is not open\n }\n this.options.onClose?.(this);\n this.context.cleanup();\n //TODO\n this.context.element.style.display = 'none';\n this.context = undefined;\n }\n get isOpen() {\n return !!this.context;\n }\n update() {\n if (!this.context)\n return; // do nothing if the popup is not open\n // update the position of the popup\n const element = this.context.element;\n const constraints = this.context.constraints;\n const elemRect = element.getBoundingClientRect();\n const anchorRect = this.anchor.getBoundingClientRect();\n const clientRect = this.visibleClientRect;\n if (!clientRect) {\n // the popup is not visible\n return;\n }\n const position = computePosition(constraints, elemRect, anchorRect, clientRect);\n this.context.position = position || undefined;\n if (position) {\n if (position.constrainHeight) {\n element.style.height = `${position.rect.height}px`;\n }\n if (position.constrainWidth) {\n element.style.width = `${position.rect.width}px`;\n }\n element.style.left = `${position.rect.left}px`;\n element.style.top = `${position.rect.top}px`;\n element.style.visibility = 'visible';\n }\n }\n createPopupElement() {\n const popup = document.createElement('div');\n popup.style.margin = '0';\n popup.style.padding = '0';\n popup.style.border = 'none';\n popup.style.background = 'transparent';\n popup.className = 'composable-Popup';\n return popup;\n }\n}\n//# sourceMappingURL=PopupController.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createContext, useContext, useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { PopupController } from './PopupController';\nconst PopupContext = createContext(undefined);\nexport function usePopupController() {\n const ctrl = useContext(PopupContext);\n if (!ctrl)\n throw new Error('usePopupController must be used inside a Popup component');\n return ctrl;\n}\nexport function DOMPopup({ ctrlRef, id, constraints, isOpen, children, className, onClose, onOpen, zIndex, position, anchor, root, closeOnClick, closeOnEsc, blockPageScroll, }) {\n const popupRef = useRef(null);\n const [ctrl, setCtrl] = useState();\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n useEffect(() => {\n if (!anchor)\n throw new Error('Anchor element is required');\n const _ctrl = new PopupController({\n anchor,\n root,\n closeOnClick,\n closeOnEsc,\n blockPageScroll,\n onClose: () => onCloseRef.current?.(),\n onOpen: () => onOpenRef.current?.(),\n });\n setCtrl(_ctrl);\n return () => {\n _ctrl.tryClose();\n };\n }, [anchor, blockPageScroll, closeOnClick, closeOnEsc, root]);\n useEffect(() => {\n if (ctrlRef) {\n ctrlRef.current = ctrl;\n }\n }, [ctrl, ctrlRef]);\n // effect to open / close the popup\n useEffect(() => {\n if (ctrl && popupRef.current) {\n if (ctrl.isOpen !== isOpen) {\n if (isOpen) {\n ctrl.open(popupRef.current, constraints);\n }\n else {\n ctrl.close();\n }\n }\n }\n else if (ctrl?.isOpen && !isOpen) {\n // close the popup - happens when isOpen becomes false but the ctrl is still open\n // and the popupRef was destroyed by the isOpen && below\n ctrl.close();\n }\n }, [constraints, isOpen, ctrl]);\n return (_jsx(PopupContext.Provider, { value: ctrl, children: isOpen &&\n createPortal(_jsx(\"div\", { id: id, style: {\n //display: isOpen ? 'block' : 'none',\n visibility: 'hidden',\n position: position || 'absolute',\n zIndex: zIndex || 100,\n }, ref: popupRef, className: className, children: children }), document.body) }));\n}\nexport function Popup({ anchor, root, children, ...others }) {\n return anchor.current && (!root || root.current) ? (_jsx(DOMPopup, { anchor: anchor.current, root: root?.current || undefined, ...others, children: children })) : null;\n}\n//# sourceMappingURL=Popup.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { ChevronDownIcon, ChevronUpIcon, XIcon } from 'lucide-react';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Popup } from './popup/index';\nconst INPUT_UNSTYLED = 'block m-0 p-0 border-0 focus:outline-none focus:ring-0';\nconst INPUT_NO_PADDING = 'block sm:text-sm sm:leading-6 bg-muted rounded-md border-0 shadow-sm ring-1 ring-inset ring-muted placeholder:text-muted focus:ring-2 focus:ring-inset focus:ring-primary';\nconst INPUT = `${INPUT_NO_PADDING} py-1.5`;\nconst COMBOBOX_POPUP = 'combobox-popup';\nfunction genComboboxPopupId() {\n return `combobox-popup-${Math.floor(Math.random() * 1000000)}`;\n}\nexport class OptionAdapter {\n filter(items, text) {\n const lcText = text.toLowerCase();\n return items.filter((item) => this.valueOf(item).toLowerCase().includes(lcText));\n }\n renderOption(item) {\n return this.valueOf(item);\n }\n findById(items, id) {\n return items.find((item) => this.idOf(item) === id);\n }\n // override to support creating new items\n createItem(_value) {\n return null; // default is no new item\n }\n}\nexport class StringOptionAdapter extends OptionAdapter {\n valueOf(item) {\n return String(item);\n }\n idOf(item) {\n return String(item);\n }\n static instance = new StringOptionAdapter();\n}\nexport class StringOptionAdapterWithCreate extends StringOptionAdapter {\n createItem(value) {\n return value;\n }\n static instance = new StringOptionAdapterWithCreate();\n}\nexport function getDefaultComboBoxLayout(fullWidth, unstyledInput) {\n return {\n buttonRight: 4,\n buttonWidth: 24,\n maxMenuHeight: 240,\n menuClass: 'w-72 mt-1 border-popover bg-popover text-popover-foreground shadow-md overflow-auto p-0 z-10',\n inputClass: clsx(unstyledInput ? INPUT_UNSTYLED : INPUT, fullWidth ? 'w-full' : '!w-auto'),\n optionClass: 'py-2 px-3 shadow-sm flex flex-col [&.option-selected]:font-semibold [&.option-highlighted]:bg-blue-300',\n Input: (ComboInput),\n Menu: (ComboMenu),\n Toggle: (ComboToggle),\n };\n}\nexport function ComboBox({ menuAlign = 'fill', menuGap, focusOnMount, onSelect, value, zIndex, unstyledInput, fullWidth, api, layout: layoutOpts, adapter, items, placeholder, clearable, noMatchMessage, openOnFocus, }) {\n const [popupId] = useState(genComboboxPopupId());\n const popupCtrl = useRef(undefined);\n const inputRef = useRef(null);\n const layout = layoutOpts\n ? Object.assign(getDefaultComboBoxLayout(fullWidth, unstyledInput), layoutOpts)\n : getDefaultComboBoxLayout(fullWidth, unstyledInput);\n const inputBoxRef = React.useRef(null);\n const ctrl = useComboboxCtrl({\n adapter,\n items,\n value,\n popupId,\n });\n useEffect(() => {\n if (inputRef.current) {\n if (focusOnMount)\n inputRef.current.focus();\n }\n }, [focusOnMount]);\n // the onSelect callback may change so we need to refresh it.\n useEffect(() => {\n ctrl.onSelect = onSelect;\n ctrl.popupCtrl = popupCtrl.current;\n }, [ctrl, onSelect]);\n useEffect(() => {\n if (api && ctrl && inputRef.current) {\n api.current = {\n open: () => ctrl.openMenu(),\n close: () => ctrl.closeMenu(),\n toggle: () => ctrl.toggleMenu(),\n setInputValue: (value) => (ctrl.inputText = value),\n inputValue: ctrl.inputText || '',\n selectedItem: ctrl.selectedItem,\n focus: () => inputRef.current?.focus(),\n };\n return () => {\n api.current = null;\n };\n }\n }, [api, ctrl]);\n const showMenu = ctrl.isMenuOpen && (ctrl.filteredItems.length > 0 || !!noMatchMessage);\n return (_jsxs(_Fragment, { children: [_jsx(layout.Input, { boxRef: inputBoxRef, inputRef: inputRef, ctrl: ctrl, layout: layout, placeholder: placeholder, clearable: clearable, openOnFocus: openOnFocus }), _jsx(Popup, { id: popupId, ctrlRef: popupCtrl, className: COMBOBOX_POPUP, closeOnClick: true, closeOnEsc: true, onClose: () => ctrl.closeMenu(), isOpen: showMenu, anchor: inputBoxRef, zIndex: zIndex, constraints: {\n position: 'bottom',\n align: menuAlign,\n gap: menuGap != null ? menuGap : 4,\n }, children: _jsx(layout.Menu, { fillWidth: menuAlign === 'fill', items: ctrl.filteredItems, ctrl: ctrl, layout: layout, adapter: adapter, noMatchMessage: noMatchMessage }) })] }));\n}\nfunction ComboInput({ inputRef, placeholder, boxRef, ctrl, layout, clearable, openOnFocus }) {\n const Toggle = layout.Toggle;\n const showClear = clearable && ctrl.selectedItem != null;\n const buttonCount = (Toggle ? 1 : 0) + (showClear ? 1 : 0);\n const style = buttonCount > 0 ? { paddingRight: `${layout.buttonWidth * buttonCount + layout.buttonRight}px` } : undefined;\n return (_jsxs(\"div\", { className: \"relative\", ref: boxRef, children: [_jsx(\"input\", { ref: inputRef, placeholder: placeholder, ...ctrl.getInputProps(), onFocus: openOnFocus ? () => ctrl.openMenu() : undefined, style: style, className: layout.inputClass }), _jsxs(\"div\", { style: {\n position: 'absolute',\n right: `${layout.buttonRight}px`,\n top: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n gap: '2px',\n }, children: [showClear && (_jsx(\"button\", { type: \"button\", style: {\n border: 'none',\n padding: 0,\n margin: 0,\n backgroundColor: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n width: `${layout.buttonWidth}px`,\n }, onClick: () => {\n ctrl.selectedItem = null;\n }, children: _jsx(XIcon, { className: \"w-4 h-4\" }) })), Toggle && (_jsx(\"button\", { type: \"button\", style: {\n width: `${layout.buttonWidth}px`,\n border: 'none',\n padding: 0,\n margin: 0,\n backgroundColor: 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }, ...ctrl.getToggleButtonProps(), children: _jsx(Toggle, { ctrl: ctrl, layout: layout }) }))] })] }));\n}\nfunction ComboToggle({ ctrl }) {\n return ctrl.isMenuOpen ? _jsx(ChevronUpIcon, { className: \"w-4 h-4\" }) : _jsx(ChevronDownIcon, { className: \"w-4 h-4\" });\n}\nfunction ComboMenu({ fillWidth, items, layout, ctrl, adapter, noMatchMessage }) {\n const { highlightedIndex, selectedItem } = ctrl;\n if (items.length === 0) {\n return noMatchMessage ? (_jsx(\"div\", { style: { width: fillWidth ? '100%' : undefined }, className: layout.menuClass, children: noMatchMessage })) : null;\n }\n return (_jsx(\"ul\", { style: {\n width: fillWidth ? '100%' : undefined,\n maxHeight: layout.maxMenuHeight ? `${layout.maxMenuHeight}px` : '240px',\n }, className: layout.menuClass, ...ctrl.getMenuProps(), children: items.map((item, index) => (_jsx(\"li\", { \"data-index\": index, className: clsx(layout.optionClass, highlightedIndex === index && 'option-highlighted', selectedItem === item && 'option-selected'), ...ctrl.getItemProps(item, index), children: adapter.renderOption(item) }, adapter.idOf(item)))) }));\n}\nexport function useComboboxCtrl(props) {\n const [ctrl, setCtrl] = useState(new ComboboxController(props));\n useEffect(() => {\n ctrl?.withState(setCtrl);\n }, [ctrl]);\n return ctrl;\n}\nclass ComboboxController {\n popupId;\n items;\n adapter;\n onSelect;\n setState;\n _selectedItem = null;\n _filteredItems;\n _inputText = '';\n _highlightedIndex = null;\n _isMenuOpen = false;\n popupCtrl;\n constructor({ adapter, items, value, popupId }) {\n this.adapter = adapter;\n this.items = items;\n this.popupId = popupId;\n if (typeof value === 'string') {\n this._inputText = value;\n }\n else if (value) {\n this._selectedItem = adapter.findById(items, adapter.idOf(value)) || null;\n if (this._selectedItem) {\n this._inputText = adapter.valueOf(value);\n }\n }\n if (this._inputText) {\n this._filteredItems = this.adapter.filter(this.items, this._inputText);\n }\n else {\n this._filteredItems = this.items;\n }\n }\n withState(setState) {\n this.setState = setState;\n return this;\n }\n clone() {\n const clone = new ComboboxController({ adapter: this.adapter, items: this.items, popupId: this.popupId });\n clone.setState = this.setState;\n clone.onSelect = this.onSelect;\n clone._inputText = this._inputText;\n clone._highlightedIndex = this._highlightedIndex;\n clone._selectedItem = this._selectedItem;\n clone._isMenuOpen = this._isMenuOpen;\n clone._filteredItems = this._filteredItems;\n clone.popupCtrl = this.popupCtrl;\n return clone;\n }\n updateState() {\n this.setState?.(this.clone());\n }\n get filteredItems() {\n if (this._inputText) {\n return this.adapter.filter(this.items, this._inputText);\n }\n else {\n return this.items;\n }\n }\n get selectedItem() {\n return this._selectedItem;\n }\n set selectedItem(item) {\n this._selectedItem = item;\n this._inputText = item ? this.adapter.valueOf(item) : '';\n this._filteredItems = this._inputText ? this.adapter.filter(this.items, this._inputText) : this.items;\n this.updateState();\n this.onSelect?.(item);\n }\n get isMenuOpen() {\n return this._isMenuOpen;\n }\n set inputText(inputText) {\n this._inputText = inputText;\n if (inputText) {\n this._filteredItems = this.adapter.filter(this.items, inputText);\n }\n else {\n this._filteredItems = this.items;\n }\n this._highlightedIndex = null;\n this._selectedItem = null;\n this.updateState();\n // TODO -- experimental - it works but it's not perfect\n // we need to update if the popup is on top and the filtered items changed\n if (this.isMenuOpen && this.popupCtrl) {\n const popupCtrl = this.popupCtrl;\n const popupPosition = popupCtrl.context?.position?.position;\n if (popupPosition && popupPosition === 'top') {\n window.setTimeout(() => {\n popupCtrl.update();\n }, 100);\n }\n }\n }\n get inputText() {\n return this._inputText;\n }\n set highlightedIndex(index) {\n this._highlightedIndex = index;\n this.updateState();\n }\n get highlightedIndex() {\n return this._highlightedIndex;\n }\n openMenu() {\n if (this._filteredItems.length > 0) {\n this._isMenuOpen = true;\n //this._highlightedIndex = 0;\n this.updateState();\n }\n else {\n // TODO nothing to show.\n // display a create value option?\n }\n }\n closeMenu(_item) {\n if (this._isMenuOpen) {\n this._highlightedIndex = null;\n this._isMenuOpen = false;\n this.updateState();\n }\n }\n toggleMenu() {\n if (this._isMenuOpen) {\n this.closeMenu();\n }\n else {\n this.openMenu();\n }\n }\n highlightIndex(index, navigateToTop = false) {\n this.highlightedIndex = index;\n const popup = document.getElementById(this.popupId);\n if (popup) {\n popup.querySelector(`li[data-index=\"${index}\"]`)?.scrollIntoView(navigateToTop);\n }\n }\n getMenuProps() {\n return {};\n }\n getToggleButtonProps() {\n return {\n onClick: () => {\n this._isMenuOpen = !this._isMenuOpen;\n this.updateState();\n },\n };\n }\n getItemProps(item, index) {\n return {\n 'aria-selected': this._highlightedIndex === index,\n onClick: () => {\n this.selectedItem = item;\n this.closeMenu();\n },\n onMouseEnter: () => {\n if (this.highlightedIndex !== index) {\n this.highlightedIndex = index;\n }\n },\n onMouseLeave: () => {\n if (this.highlightedIndex === index) {\n this.highlightedIndex = null;\n }\n },\n };\n }\n getInputProps() {\n const items = this._filteredItems;\n return {\n onClick: () => {\n this.openMenu();\n },\n onChange: (ev) => {\n const value = ev.target.value;\n this.inputText = value;\n this.openMenu();\n },\n value: this.inputText,\n onKeyDown: (ev) => {\n const key = ev.key;\n if (key === 'Enter') {\n if (this.highlightedIndex != null) {\n this.selectedItem = items[this.highlightedIndex || 0];\n }\n else {\n // create new value?\n if (this.inputText) {\n const item = this.adapter.createItem(this.inputText);\n if (item) {\n this.items.push(item);\n this.selectedItem = item;\n }\n }\n }\n this.closeMenu();\n }\n else if (key === 'ArrowDown') {\n if (this.isMenuOpen) {\n this.highlightIndex(this.highlightedIndex === null ? 0 : incrModulo(this.highlightedIndex, items.length), false);\n }\n else {\n this.openMenu();\n }\n }\n else if (key === 'ArrowUp') {\n if (this.isMenuOpen) {\n this.highlightIndex(this.highlightedIndex === null ? 0 : decrModulo(this.highlightedIndex, items.length), true);\n }\n }\n },\n };\n }\n}\nfunction incrModulo(value, max) {\n return (value + 1) % max;\n}\nfunction decrModulo(value, max) {\n return (value - 1 + max) % max;\n}\nexport function SimpleCombobox({ options, creatable, ...rest }) {\n const adapter = creatable ? StringOptionAdapterWithCreate.instance : StringOptionAdapter.instance;\n return _jsx(ComboBox, { adapter: adapter, items: options, ...rest });\n}\n//# sourceMappingURL=ComboBox.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nexport function Divider({ className }) {\n return _jsx(\"hr\", { className: clsx('w-full h-0.5 border-t-0 bg-border', className) });\n}\n//# sourceMappingURL=Divider.js.map","import { clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nexport function cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n//# sourceMappingURL=utils.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport React from 'react';\nexport const PortalContainerContext = React.createContext(undefined);\nfunction findOrCreatePortalContainer(root, id = 'plugin-portal-container') {\n // Determine the actual parent element to search and append to\n const parentElement = root instanceof Document ? root.body : root;\n // look only at direct children\n for (const child of Array.from(parentElement.children)) {\n if (child instanceof HTMLElement && child.id === id) {\n return child;\n }\n }\n // not found → create\n const container = document.createElement('div');\n container.id = id;\n parentElement.appendChild(container);\n return container;\n}\nexport function PortalContainerProvider({ children, id = 'plugin-portal-container', }) {\n const inherited = React.useContext(PortalContainerContext);\n const ref = React.useRef(null);\n const [container, setContainer] = React.useState(inherited || undefined);\n React.useEffect(() => {\n // If a parent already provides a portal container, inherit it\n if (inherited) {\n setContainer(inherited);\n return;\n }\n if (ref.current) {\n const root = ref.current.getRootNode();\n if (root instanceof ShadowRoot || root instanceof Document) {\n const container = findOrCreatePortalContainer(root, id);\n setContainer(container);\n }\n else {\n setContainer(null);\n }\n }\n }, [id, inherited]);\n // If container not discovered yet → render hidden marker only\n if (container === undefined) {\n return _jsx(\"div\", { ref: ref, style: { display: 'none' } });\n }\n // Once container is resolved (null or HTMLElement) → provide it\n return _jsx(PortalContainerContext.Provider, { value: container || undefined, children: children });\n}\nexport function usePortalContainer() {\n return React.useContext(PortalContainerContext);\n}\n//# sourceMappingURL=PortalContainerProvider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport * as React from 'react';\nimport { usePortalContainer } from '../../hooks/PortalContainerProvider';\nimport { cn } from '../libs/utils';\nconst TooltipProvider = TooltipPrimitive.Provider;\nconst Tooltip = TooltipPrimitive.Root;\nconst TooltipTrigger = TooltipPrimitive.Trigger;\nconst TooltipContent = React.forwardRef(({ className, sideOffset = 4, side = 'top', ...props }, ref) => {\n const container = usePortalContainer();\n return (_jsx(TooltipPrimitive.Portal, { container: container, children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, side: side, style: { zIndex: 100 }, className: cn('max-w-[90vw]', 'z-50 overflow-hidden rounded-md bg-tooltips border border-border px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className), ...props }) }));\n});\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\nexport function VTooltip({ description, children, size = 'sm', placement = 'top', className, asChild, }) {\n const [open, setOpen] = React.useState(false);\n const suppressRef = React.useRef(false);\n React.useEffect(() => {\n const suppress = () => {\n setOpen(false);\n suppressRef.current = true;\n requestAnimationFrame(() => {\n suppressRef.current = false;\n });\n };\n window.addEventListener('blur', suppress);\n document.addEventListener('visibilitychange', suppress);\n return () => {\n window.removeEventListener('blur', suppress);\n document.removeEventListener('visibilitychange', suppress);\n };\n }, []);\n return (_jsx(TooltipProvider, { delayDuration: 0, children: _jsxs(Tooltip, { open: open, onOpenChange: (v) => {\n if (!suppressRef.current)\n setOpen(v);\n }, children: [_jsx(TooltipTrigger, { className: \"cursor-pointer\", asChild: asChild, children: children }), _jsx(TooltipContent, { side: placement, className: `px-3 py-1.5 max-w-${size} text-${size} px-3 ${className}`, children: description })] }) }));\n}\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n//# sourceMappingURL=tooltip.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Slot } from '@radix-ui/react-slot';\n// IMPORTANT: must import via the @vertesia/ui/i18n subpath (not relative)\n// so Rollup externalizes it. A relative path bundles the i18n module — and\n// its i18nInstance — into vertesia-ui-core.js, creating a copy that stays\n// pinned to the fallback language regardless of LanguageProvider changes.\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport { cva } from 'class-variance-authority';\nimport clsx from 'clsx';\nimport { Check, CopyIcon, Loader2 } from 'lucide-react';\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { cn } from '../libs/utils';\nimport { VTooltip } from './tooltip';\n// Deduped per-session deprecation warnings. Keyed by prop path so each is logged once.\nconst warnedDeprecatedProps = new Set();\nfunction useDeprecationWarning(propName, isUsed, message) {\n useEffect(() => {\n if (isUsed && !warnedDeprecatedProps.has(propName)) {\n warnedDeprecatedProps.add(propName);\n console.warn(`[@vertesia/ui] ${propName} is deprecated: ${message}`);\n }\n }, [isUsed, message, propName]);\n}\nconst buttonVariants = cva('hover:cursor-pointer inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', {\n variants: {\n variant: {\n destructive: 'bg-destructive dark:bg-destructive/10 text-destructive ring-1 ring-inset ring-destructive-muted/50 dark:ring-destructive-muted/50 shadow-xs hover:bg-destructive/50',\n outline: 'border border-input bg-background shadow-xs hover:bg-muted ring-inset',\n secondary: 'bg-primary/5 dark:bg-primary/10 text-primary shadow-xs hover:bg-primary/10 dark:hover:bg-primary/20 ring-inset',\n ghost: 'hover:bg-muted/50 dark:hover:bg-muted/20 ring-inset',\n link: 'text-foreground underline-offset-4 hover:underline ring-inset',\n primary: 'bg-primary text-white shadow-xs hover:bg-primary/90 ring-inset',\n unstyled: '',\n },\n size: {\n xs: 'h-7 rounded px-2 py-1 text-xs gap-x-1',\n sm: 'h-8 rounded px-3 text-xs',\n md: 'h-9 rounded-md px-4 py-2',\n lg: 'h-10 rounded-md px-3',\n xl: 'rounded-md px-3.5 py-2.5 text-sm gap-x-2',\n icon: 'p-0 m-0 rounded-full',\n none: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n});\nconst Button = React.forwardRef(({ className, variant, size, asChild = false, alt, isDisabled, isLoading, title, onClick, type, ...props }, ref) => {\n useDeprecationWarning('Button.alt', alt !== undefined, 'use aria-label for the accessible name and wrap in <VTooltip> for a visual tooltip. ' +\n '`alt` is forwarded to both for one release.');\n const Comp = asChild ? Slot : 'button';\n // Default type=\"button\" only when rendering an actual <button>. With asChild,\n // the rendered element may be an <a> or other tag where injecting `type` is wrong.\n const resolvedType = asChild ? type : (type ?? 'button');\n // Back-fill aria-label from alt during the deprecation window so existing call\n // sites keep their accessible name without code changes.\n const ariaLabel = props['aria-label'] ?? alt;\n // asChild renders via Radix Slot, which requires exactly one React child.\n // Skip the loader wrap in that case — Slot would reject the multi-child array.\n const content = asChild ? (props.children) : (_jsxs(_Fragment, { children: [isLoading && _jsx(Loader2, { className: \"animate-spin\" }), props.children] }));\n const buttonElement = (_jsx(Comp, { className: clsx(cn(buttonVariants({ variant, size })), className), disabled: isDisabled || isLoading || props.disabled, ref: ref, onClick: onClick, type: resolvedType, autoFocus: false, ...props, \"aria-label\": ariaLabel, children: content }));\n if (alt || title) {\n return (_jsx(VTooltip, { description: alt || title, asChild: true, className: \"cursor-pointer\", size: \"xs\", placement: \"top\", children: buttonElement }));\n }\n return buttonElement;\n});\nButton.displayName = 'Button';\nconst CopyButton = React.forwardRef(({ size, content, toast, className, alt, 'aria-label': ariaLabel, ...props }, ref) => {\n const [isCopied, setIsCopied] = useState(false);\n const { t } = useUITranslation();\n useDeprecationWarning('CopyButton.alt', alt !== undefined, 'use aria-label for the accessible name. ' + '`alt` is forwarded for one release.');\n const handleCopy = (e) => {\n e.stopPropagation();\n navigator.clipboard\n .writeText(content)\n .then(() => {\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n if (!toast?.toast) {\n return;\n }\n toast.toast({\n status: 'success',\n title: toast.message || t('misc.copiedToClipboard'),\n duration: 2000,\n });\n })\n .catch((err) => {\n console.error('Failed to copy text: ', err);\n if (toast?.toast)\n toast.toast({\n status: 'error',\n title: t('misc.failedToCopy'),\n duration: 2000,\n });\n });\n };\n const label = ariaLabel ?? alt ?? t('misc.copy');\n return (_jsx(Button, { ref: ref, className: cn(className), variant: 'unstyled', size: size || 'sm', onClick: handleCopy, ...props, \"aria-label\": label, title: label, children: isCopied ? _jsx(Check, { className: \"text-success\" }) : _jsx(CopyIcon, { className: \"size-4\" }) }));\n});\nCopyButton.displayName = 'CopyButton';\nexport { Button, buttonVariants, CopyButton };\n//# sourceMappingURL=button.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Plus } from 'lucide-react';\nimport { Button } from './shadcn/button';\nexport function EmptyCollection({ buttonLabel, title, children, onClick }) {\n return (_jsx(\"div\", { className: \"flex items-center justify-center h-full text-center\", children: _jsxs(\"div\", { className: \"py-12\", children: [_jsx(\"svg\", { className: \"mx-auto size-12\", fill: \"none\", viewBox: \"0 0 24 24\", stroke: \"currentColor\", \"aria-hidden\": \"true\", children: _jsx(\"path\", { vectorEffect: \"non-scaling-stroke\", strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 2, d: \"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" }) }), _jsx(\"h3\", { className: \"mt-2 text-sm font-semibold\", children: title }), _jsx(\"p\", { className: \"mt-1 text-sm text-muted\", children: children }), _jsx(\"div\", { className: \"mt-6\", children: _jsxs(Button, { onClick: onClick, children: [_jsx(Plus, { className: \"-ms-0.5 me-1.5 size-5\", \"aria-hidden\": \"true\" }), buttonLabel] }) })] }) }));\n}\n//# sourceMappingURL=EmptyCollection.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useRef } from 'react';\nfunction isFileEntry(entry) {\n return entry.isFile;\n}\nfunction isDirectoryEntry(entry) {\n return entry.isDirectory;\n}\n/**\n * TODO: TS complains that:\n * Type 'FileList' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\n * So as a quick fix aI use a for loop to convert FileList to File[]\n * @param files\n * @returns\n */\nfunction fileListToArray(files) {\n const ar = [];\n for (let i = 0, l = files.length; i < l; i++) {\n ar.push(files[i]);\n }\n return ar;\n}\nexport function FileUploadInput({ children, onUpload }) {\n const inputRef = useRef(null);\n const _onUpload = () => {\n if (inputRef.current?.files) {\n onUpload(fileListToArray(inputRef.current.files));\n }\n };\n return (_jsxs(\"label\", { style: { cursor: 'pointer' }, children: [children, _jsx(\"input\", { ref: inputRef, type: \"file\", style: { display: 'none' }, onChange: _onUpload })] }));\n}\n//TODO implement using tailwind\nexport function DropZone({ onUpload }) {\n const dropZoneProps = useDropZone({ onUpload });\n return (_jsx(\"div\", { ...dropZoneProps, className: \"flex items-center justify-center w-full h-64 border-2 border-dashed rounded-lg cursor-pointer bg-gray-50 dark:hover:bg-bray-800 dark:bg-gray-700 hover:bg-gray-100 dark:border-gray-600 dark:hover:border-gray-500 dark:hover:bg-gray-600\", children: _jsxs(\"label\", { htmlFor: \"dropzone-file\", className: \"flex flex-col items-center justify-center w-full h-full\", children: [_jsxs(\"div\", { className: \"flex flex-col items-center justify-center pt-5 pb-6\", children: [_jsx(\"svg\", { className: \"w-8 h-8 mb-4 text-gray-500 dark:text-gray-400\", \"aria-hidden\": \"true\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", viewBox: \"0 0 20 16\", children: _jsx(\"path\", { stroke: \"currentColor\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\", \"stroke-width\": \"2\", d: \"M13 13h3a3 3 0 0 0 0-6h-.025A5.56 5.56 0 0 0 16 6.5 5.5 5.5 0 0 0 5.207 5.021C5.137 5.017 5.071 5 5 5a4 4 0 0 0 0 8h2.167M10 15V6m0 0L8 8m2-2 2 2\" }) }), _jsxs(\"p\", { className: \"mb-2 text-sm text-gray-500 dark:text-gray-400\", children: [_jsx(\"span\", { className: \"font-semibold\", children: \"Click to upload\" }), \" or drag and drop\"] }), _jsx(\"p\", { className: \"text-xs text-gray-500 dark:text-gray-400\", children: \"SVG, PNG, JPG or GIF (MAX. 800x400px)\" })] }), _jsx(\"input\", { id: \"dropzone-file\", type: \"file\", className: \"hidden\" })] }) }));\n}\nfunction _onDragEnter(el) {\n if (!el)\n return false;\n const cnt = el.__dragOver_cnt__ || 0;\n el.__dragOver_cnt__ = cnt + 1;\n return !cnt; // true if first drag o ver false if dragover already recorded\n}\nfunction _onDragLeave(el) {\n if (!el)\n return false;\n const cnt = el.__dragOver_cnt__;\n if (!cnt)\n return false;\n el.__dragOver_cnt__ = cnt - 1;\n return cnt === 1; // true if leave false if not\n}\nfunction _onDrop(el) {\n if (!el)\n return;\n delete el.__dragOver_cnt__;\n}\nexport function useDropZone({ onUpload, dragOverClass = 'is-drag-over-on', dropEffect = 'copy', }) {\n const ref = useRef(null);\n const onDrop = (ev) => {\n ev.preventDefault();\n _onDrop(ref.current);\n ref.current?.classList.remove(dragOverClass);\n const items = ev.dataTransfer.items;\n if (items) {\n const promises = [];\n const traverseFileTree = (item, path = '') => {\n return new Promise((resolve) => {\n if (isFileEntry(item)) {\n item.file((file) => {\n Object.defineProperty(file, 'webkitRelativePath', { value: path + file.name });\n resolve([file]);\n });\n }\n else if (isDirectoryEntry(item)) {\n const dirReader = item.createReader();\n const entries = [];\n const readEntries = () => {\n dirReader.readEntries((results) => {\n if (!results.length) {\n void Promise.all(entries).then((filesArrays) => resolve(filesArrays.flat()));\n }\n else {\n for (const entry of results) {\n entries.push(traverseFileTree(entry, `${path + item.name}/`));\n }\n readEntries();\n }\n });\n };\n readEntries();\n }\n });\n };\n for (let i = 0; i < items.length; i++) {\n const entry = items[i].webkitGetAsEntry();\n if (entry) {\n promises.push(traverseFileTree(entry));\n }\n }\n void Promise.all(promises).then((filesArrays) => {\n const allFiles = filesArrays.flat();\n if (allFiles.length) {\n onUpload(allFiles);\n }\n });\n }\n };\n const onDragOver = (ev) => {\n ev.preventDefault();\n ev.dataTransfer.dropEffect = dropEffect;\n };\n const onDragEnter = () => {\n if (_onDragEnter(ref.current)) {\n ref.current?.classList.add(dragOverClass);\n }\n };\n const onDragLeave = () => {\n if (_onDragLeave(ref.current)) {\n ref.current?.classList.remove(dragOverClass);\n }\n };\n return {\n onDrop,\n onDragOver,\n onDragEnter,\n onDragLeave,\n ref,\n };\n}\n//# sourceMappingURL=FileUpload.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Env } from '@vertesia/ui/env';\nimport clsx from 'clsx';\nimport { Info } from 'lucide-react';\nimport { Children, cloneElement, Fragment, isValidElement, useId, useRef } from 'react';\nimport { VTooltip } from './shadcn/tooltip';\nfunction joinIds(...ids) {\n const filtered = ids.filter((id) => typeof id === 'string' && id.length > 0);\n return filtered.length > 0 ? filtered.join(' ') : undefined;\n}\nfunction canShowDevWarning() {\n try {\n return Env.isDev;\n }\n catch {\n return false;\n }\n}\nexport function FormItem({ description, helpText, error, required, label, className, direction = 'column', children, disabled = false, fullWidthLabel = false, childrenId, }) {\n const generatedId = useId();\n const helpTextId = useId();\n const errorId = useId();\n const inputId = childrenId ?? generatedId;\n const hasWarnedRef = useRef(false);\n // A single valid element child is the auto-wire target. Children.toArray flattens\n // nested arrays and fragments-of-elements, but a *single* element whose `type` is\n // Fragment is still counted as one element by React — cloning it would add props\n // to the Fragment (which ignores them), not to the input inside. Exclude that case.\n const validChildren = Children.toArray(children).filter(isValidElement);\n const singleChild = validChildren.length === 1 ? validChildren[0] : undefined;\n const isSingleFragment = singleChild?.type === Fragment;\n const canWireChild = !!singleChild && !isSingleFragment;\n let wired = false;\n let renderedChildren = children;\n if (canWireChild && singleChild) {\n const child = singleChild;\n const childProps = child.props ?? {};\n const mergedDescribedBy = joinIds(childProps['aria-describedby'], helpText ? helpTextId : undefined, error ? errorId : undefined);\n const ariaInvalid = childProps['aria-invalid'] ?? (error ? true : undefined);\n renderedChildren = cloneElement(child, {\n id: childProps.id ?? inputId,\n 'aria-describedby': mergedDescribedBy,\n 'aria-invalid': ariaInvalid,\n });\n wired = true;\n }\n else if (canShowDevWarning() && !hasWarnedRef.current && (helpText || error || childrenId === undefined)) {\n hasWarnedRef.current = true;\n // eslint-disable-next-line no-console\n console.warn('[@vertesia/ui] FormItem received zero, multiple, or a fragment as element children. ARIA wiring skipped. ' +\n 'Pass `childrenId` and set `id` / `aria-describedby` / `aria-invalid` on your input manually, ' +\n 'or wrap the input in a single non-fragment element.');\n }\n // Only set htmlFor when the label actually points at a real control:\n // either we wired the child (so it received `inputId`) or the consumer\n // provided `childrenId` and wired their input themselves.\n const labelHtmlFor = wired || childrenId ? inputId : undefined;\n return (_jsxs(\"div\", { className: clsx('flex w-full space-y-1', className, direction === 'row'\n ? 'flex-row justify-between items-center gap-2'\n : direction === 'row-reverse'\n ? 'flex-row-reverse justify-between items-center gap-2'\n : 'flex-col'), children: [_jsxs(\"div\", { className: clsx('flex items-center gap-1 mb-0', fullWidthLabel && 'w-full'), children: [_jsxs(\"label\", { htmlFor: labelHtmlFor, className: `text-sm font-medium mb-1 ${disabled ? 'text-muted' : ''} ${fullWidthLabel && 'flex-1'}`, children: [label, required ? _jsx(\"span\", { className: \"text-destructive -mt-4 ms-1\", children: \"*\" }) : ''] }), description && (_jsx(\"div\", { className: \"mx-2 flex w-4 items-center\", children: _jsx(VTooltip, { description: description, children: _jsx(Info, { className: \"size-3 text-muted\" }) }) }))] }), renderedChildren, helpText && (_jsx(\"p\", { id: helpTextId, className: \"text-xs text-muted\", children: helpText })), error && (_jsx(\"p\", { id: errorId, className: \"text-xs text-destructive\", children: error }))] }));\n}\n//# sourceMappingURL=FormItem.js.map","/**\n * Returns an `onKeyDown` handler that fires the given callback when the user presses\n * Enter or Space. Use on non-button elements that have an `onClick` handler to satisfy\n * keyboard accessibility (pairs with `role=\"button\"` and `tabIndex={0}`).\n *\n * @example\n * <div\n * role=\"button\"\n * tabIndex={0}\n * onClick={handler}\n * onKeyDown={onActivateKey(handler)}\n * />\n */\nexport function onActivateKey(callback) {\n return (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n callback(event);\n }\n };\n}\n//# sourceMappingURL=a11y.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { cva } from 'class-variance-authority';\nimport { onActivateKey } from '../../utils/a11y.js';\nimport { cn } from '../libs/utils';\n// Base badge variants\nconst badgeVariants = cva('inline-flex items-center rounded-md px-2 py-1 text-xs font-medium', {\n variants: {\n variant: {\n default: 'text-foreground bg-muted',\n secondary: 'bg-secondary text-primary',\n destructive: 'bg-destructive text-destructive',\n attention: 'bg-attention text-attention',\n success: 'bg-success text-success',\n info: 'bg-info text-info',\n done: 'bg-done text-done',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n// Base Badge component\nexport function Badge({ className, variant, children, onClick, ...props }) {\n const interactiveProps = onClick ? { role: 'button', tabIndex: 0, onClick, onKeyDown: onActivateKey(onClick) } : {};\n return (_jsx(\"span\", { className: cn(badgeVariants({ variant }), className), ...interactiveProps, ...props, children: children }));\n}\nconst dotBadgeVariants = cva(\n// Base styles\n'inline-flex items-center gap-x-1.5 rounded-md px-2 py-1 text-xs font-medium ring-1 ring-inset ring-border', {\n variants: {\n variant: {\n default: '',\n success: '',\n destructive: '',\n attention: '',\n done: '',\n info: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n// Separate dot variants to allow className overrides\nconst dotVariants = cva('h-1.5 w-1.5', {\n variants: {\n variant: {\n default: 'fill-foreground',\n success: 'fill-success',\n destructive: 'fill-destructive',\n attention: 'fill-attention',\n done: 'fill-done',\n info: 'fill-info',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\nexport function DotBadge({ variant, className, dotClassName, // New prop for dot-specific classes\nchildren, ...props }) {\n return (_jsxs(\"span\", { className: cn(dotBadgeVariants({ variant }), className), ...props, children: [_jsx(\"div\", { className: \"flex-shrink-0\", children: _jsx(\"svg\", { className: cn(dotVariants({ variant }), dotClassName), viewBox: \"0 0 6 6\", \"aria-hidden\": \"true\", children: _jsx(\"circle\", { cx: 3, cy: 3, r: 3 }) }) }), _jsx(\"span\", { className: \"truncate\", children: children })] }));\n}\n//# sourceMappingURL=badge.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { cva } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nimport { Button } from './button';\nconst variants = cva('', {\n variants: {\n size: {\n xs: 'rounded py-1 text-xs rounded-xs',\n sm: 'rounded text-xs rounded-sm',\n md: 'rounded-md py-2 text-sm',\n lg: 'rounded-md text-base',\n xl: 'rounded-md py-2.5 text-lg',\n },\n variant: {\n default: 'flex w-full rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',\n unstyled: 'block m-0 p-0 w-full border-0 focus:outline-hidden focus:ring-0 bg-transparent',\n noPadding: 'block rounded-md border-0 bg-background shadow-2xs ring-1 ring-inset ring-ring placeholder:text-muted-foreground focus:ring-2 focus:ring-inset focus:ring-ring ring-offset-background',\n legacy: 'py-1.5 block rounded-md border-0 bg-background shadow-2xs ring-1 ring-inset ring-ring placeholder:text-muted-foreground focus:ring-2 focus:ring-inset focus:ring-ring ring-offset-background',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n});\nconst Input = React.forwardRef(({ className, type, size = 'md', variant = 'default', clearable = true, onChange, value, invalid, ...props }, ref) => {\n const _onClear = () => {\n onChange?.('');\n };\n const _onChange = (ev) => {\n onChange?.(ev.target.value);\n };\n // Map `invalid` to aria-invalid unless the consumer already set it explicitly.\n const ariaInvalid = props['aria-invalid'] ?? (invalid ? true : undefined);\n return (_jsxs(\"div\", { className: \"w-full relative inline-block [&:hover_.clear-button]:opacity-100\", children: [_jsx(\"input\", { type: type, className: cn(variants({ size, variant }), className, clearable && value ? 'pe-8' : ''), ref: ref, value: value == null ? '' : value, onChange: _onChange, ...props, \"aria-invalid\": ariaInvalid }), clearable && value && !props.readOnly && !props.disabled && (_jsx(Button, { variant: 'link', size: 'icon', type: \"button\", onClick: _onClear, className: `clear-button opacity-0 transition-opacity duration-200\n absolute top-1/2 -translate-y-1/2 text-muted !hover:text-destructive cursor-pointer\n flex items-center justify-center size-6 rounded end-2`, \"aria-label\": \"Clear input\", children: _jsx(X, { size: 16 }) }))] }));\n});\nInput.displayName = 'Input';\nexport { Input };\n//# sourceMappingURL=input.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { useState } from 'react';\nimport { Badge } from './shadcn/badge';\nimport { Input } from './shadcn/input';\nimport { VTooltip } from './shadcn/tooltip';\nexport function InputList({ value = [], onChange, className, delimiters = ', ', placeholder, autoFocus, disabled = false, }) {\n const [text, setText] = useState('');\n const onBlur = (ev) => {\n if (disabled)\n return;\n const v = ev.currentTarget.value;\n if (v?.trim()) {\n onChange([...value, v.trim()]);\n setText('');\n }\n };\n const onKeyDown = (ev) => {\n if (disabled)\n return;\n const v = ev.currentTarget.value;\n const isEmpty = !v.trim();\n const key = ev.key;\n if (key === 'Enter' || delimiters.indexOf(key) > -1) {\n ev.preventDefault();\n if (value && !isEmpty) {\n onChange([...value, v.trim()]);\n setText('');\n }\n }\n else if (key === 'Backspace' && isEmpty) {\n if (value && value.length > 0) {\n value.pop();\n onChange([...value]);\n }\n }\n };\n const onPaste = (ev) => {\n if (disabled)\n return;\n const pastedText = ev.clipboardData.getData('text');\n if (pastedText) {\n ev.preventDefault();\n // Create a regex pattern from delimiters\n const delimiterPattern = delimiters\n .split('')\n .map((char) => (char === ' ' ? '\\\\s' : char.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')))\n .join('|');\n const regex = new RegExp(`[${delimiterPattern}]+`);\n // Split the pasted text by delimiters and filter out empty values\n const newValues = pastedText\n .split(regex)\n .map((item) => item.trim())\n .filter((item) => item.length > 0);\n if (newValues.length > 0) {\n onChange([...value, ...newValues]);\n }\n setText('');\n }\n };\n const _onClick = (index) => {\n if (disabled)\n return;\n if (value && value.length > 0) {\n value.splice(index, 1);\n onChange([...value]);\n }\n };\n return (_jsxs(\"div\", { className: clsx(className, 'w-full flex flex-wrap items-center gap-1 p-2 py-1.5', 'rounded-md text-sm rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50', disabled && 'opacity-50 cursor-not-allowed'), children: [value &&\n value.length > 0 &&\n value.map((v, index) => (_jsx(VTooltip, { description: 'click to remove', children: _jsx(Badge, { variant: 'secondary', onClick: () => _onClick(index), className: clsx('flex-shrink-0 transition-colors', disabled\n ? 'cursor-not-allowed'\n : 'cursor-pointer hover:bg-destructive hover:text-destructive'), title: v, children: _jsx(\"span\", { className: \"break-all\", children: v }) }, index) }, index))), _jsx(Input, { clearable: false, className: \"placeholder:text-muted px-1 flex-1 min-w-[120px]\", variant: \"unstyled\", type: \"text\", value: text, onBlur: onBlur, onKeyDown: onKeyDown, onPaste: onPaste, onChange: setText, placeholder: !value || value.length === 0 ? placeholder : '', autoFocus: autoFocus, disabled: disabled })] }));\n}\n//# sourceMappingURL=InputList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nexport function Link({ underline = 'always', className, children, ...others }) {\n let underlineClass;\n if (underline === 'always') {\n underlineClass = 'underline';\n }\n else if (underline === 'hover') {\n underlineClass = 'hover:underline';\n }\n return (_jsx(\"a\", { className: clsx('text-indigo-800 dark:text-indigo-300', className, underlineClass), ...others, children: children }));\n}\n//# sourceMappingURL=Link.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { forwardRef } from 'react';\nexport function MenuList({ className, children }) {\n return _jsx(\"ul\", { className: `${className} space-y-1 flex flex-col items-start`, children: children });\n}\nconst MenuListItem = forwardRef(function _MenuListItem(props, ref) {\n const { current, children, className, href = '#', onClick, ...others } = props;\n return (_jsx(\"li\", { className: clsx(className, current ? 'bg-muted' : '', 'w-full p-2 ps-3 text-sm leading-6 font-semibold hover:bg-muted'), children: _jsx(\"a\", { ref: ref, href: href, onClick: (e) => {\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n else if (href === '#') {\n e.preventDefault();\n }\n }, className: \"w-full flex items-center gap-x-3\", ...others, children: children }) }));\n});\nMenuList.Item = MenuListItem;\n//# sourceMappingURL=MenuList.js.map","const INPUT_UNSTYLED = 'block m-0 p-0 w-full border-0 focus:outline-hidden focus:ring-0 bg-transparent';\nconst INPUT_NO_PADDING = 'rounded-md text-sm flex w-full rounded-md border border-input bg-background ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50';\nconst INPUT = `${INPUT_NO_PADDING} py-1.5`;\nconst Styles = {\n INPUT_UNSTYLED,\n INPUT_NO_PADDING,\n INPUT,\n};\nexport { Styles };\n//# sourceMappingURL=styles.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport React, { useEffect } from 'react';\nimport { Styles } from './styles.js';\nfunction numberToString(value) {\n if (value == null || Number.isNaN(value)) {\n return '';\n }\n else {\n return value.toString();\n }\n}\n/**\n * The value of this input is always a number. It can be undefined or NaN. If NaN the input value will not be updated with the NaN one.\n * If undefined the input will be updated to be empty.\n * The onChange callback is called whenever the value changes. If the input cannot be parsed as a number\n * it will be returned as NaN.\n */\nconst NumberInput = React.forwardRef(({ value, onChange, className, noScroll = false, noSpinners = false, ...others }, ref) => {\n // we need to store the state here in string\n const [textValue, setTextValue] = React.useState(numberToString(value));\n const _onChange = (ev) => {\n const value = ev.target.value;\n setTextValue(value);\n if (value === '') {\n onChange?.(undefined, value);\n }\n else {\n const num = parseFloat(value);\n onChange?.(num, value);\n }\n };\n useEffect(() => {\n // we do not update if not empty and NaN\n if (value == null || !Number.isNaN(value)) {\n const text = numberToString(value);\n setTextValue(text);\n }\n }, [value]);\n return (_jsx(\"input\", { onWheel: noScroll\n ? (event) => {\n event.currentTarget.blur();\n }\n : others.onWheel, type: \"number\", value: textValue, onChange: _onChange, className: clsx(className, Styles.INPUT, { 'no-spinners': noSpinners }, noSpinners &&\n '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none'), ref: ref, ...others }));\n});\nexport { NumberInput };\n//# sourceMappingURL=NumberInput.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { motion } from 'framer-motion';\nimport { X } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from './shadcn/button';\nexport function Overlay({ children, overlayContent, className = '', overlayClassName = '', position = 'right', width, height, showCloseButton = true, onOpen, onClose, triggerClassName = '', backdropClassName = '', animationConfig = { type: 'spring', stiffness: 300, damping: 30 }, }) {\n const [isOpen, setIsOpen] = useState(false);\n const handleOpen = () => {\n setIsOpen(true);\n onOpen?.();\n };\n const handleClose = () => {\n setIsOpen(false);\n onClose?.();\n };\n const animationProps = getAnimationProps(position);\n const positionClasses = getPositionClasses(position, width, height);\n return (_jsxs(\"div\", { className: `flex items-center justify-center w-full ${className}`, children: [_jsx(Button, { variant: \"unstyled\", size: \"none\", onClick: handleOpen, className: `w-full align-left cursor-pointer ${triggerClassName}`, children: children }), isOpen && (_jsx(\"div\", { className: `z-45 fixed inset-0 bg-black bg-opacity-50 ${backdropClassName}`, children: _jsxs(motion.div, { ...animationProps, transition: animationConfig, className: `${positionClasses} ${overlayClassName}`, children: [showCloseButton && (_jsx(\"div\", { className: \"absolute top-2 end-2 z-10\", children: _jsx(Button, { onClick: handleClose, variant: \"primary\", children: _jsx(X, {}) }) })), _jsx(\"div\", { className: showCloseButton ? 'mt-8' : '', children: overlayContent })] }) }))] }));\n}\nfunction getAnimationProps(position) {\n switch (position) {\n case 'left':\n return { initial: { x: '-100%' }, animate: { x: 0 }, exit: { x: '-100%' } };\n case 'right':\n return { initial: { x: '100%' }, animate: { x: 0 }, exit: { x: '100%' } };\n case 'top':\n return { initial: { y: '-100%' }, animate: { y: 0 }, exit: { y: '-100%' } };\n case 'bottom':\n return { initial: { y: '100%' }, animate: { y: 0 }, exit: { y: '100%' } };\n case 'center':\n return {\n initial: { opacity: 0, scale: 0.8 },\n animate: { opacity: 1, scale: 1 },\n exit: { opacity: 0, scale: 0.8 },\n };\n default:\n return { initial: { x: '100%' }, animate: { x: 0 }, exit: { x: '100%' } };\n }\n}\nfunction getPositionClasses(position, width, height) {\n const baseClasses = 'fixed bg-white shadow-lg p-4 relative';\n // `position` is a PHYSICAL prop ('left' | 'right' | 'top' | 'bottom' |\n // 'center'), and the framer-motion animation x/y values above use physical\n // axes, so the matching CSS positioning is intentionally physical too.\n // Callers that want logical (start/end) behavior should choose 'left' or\n // 'right' based on the active direction (see AppLayout.tsx for the\n // pattern).\n switch (position) {\n case 'left':\n // rtl-ok: physical position prop -> physical CSS\n return `${baseClasses} left-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n case 'right':\n // rtl-ok: physical position prop -> physical CSS\n return `${baseClasses} right-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n case 'top':\n return `${baseClasses} top-[var(--header-height)] start-0 end-0 ${height || 'h-80'}`;\n case 'bottom':\n return `${baseClasses} bottom-0 start-0 end-0 ${height || 'h-80'}`;\n case 'center':\n // rtl-ok: symmetric centering — paired with -translate-x-1/2 which works the same way in both directions\n return `${baseClasses} top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 ${width || 'w-96'} ${height || 'max-h-96'}`;\n default:\n // rtl-ok: physical default\n return `${baseClasses} right-0 top-[var(--header-height)] h-full ${width || 'w-80'}`;\n }\n}\n//# sourceMappingURL=Overlay.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nconst PORTAL_ID = '--tailwind-portal';\nexport function Portal({ children }) {\n const tempNode = useRef(null);\n const [portalEl, setPortalEl] = useState(null);\n // hack to have the Portal not generating hydration errors (content mismatch) on SSR / CSR\n useEffect(() => {\n if (tempNode.current) {\n // we are on the browser -> we an use the portal\n const doc = tempNode.current.ownerDocument;\n let portalEl = doc.getElementById(PORTAL_ID);\n if (!portalEl) {\n portalEl = doc.createElement('DIV');\n portalEl.id = PORTAL_ID;\n doc.body.appendChild(portalEl);\n }\n setPortalEl(portalEl);\n }\n }, []);\n if (portalEl) {\n return createPortal(children, portalEl);\n }\n else {\n return _jsx(\"span\", { ref: tempNode });\n }\n}\n//# sourceMappingURL=Portal.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nimport { Button } from './button';\nexport function Breadcrumbs({ path, maxItems = 3, className, separator }) {\n const items = path || [];\n const renderBreadcrumbItem = (item) => {\n const shortenedLabel = typeof item.label === 'string' && item.label.length > 20 ? `${item.label.slice(0, 17)}...` : item.label;\n if (item.onClick) {\n return (_jsx(BreadcrumbButton, { onClick: item.onClick, href: item.href, title: typeof item.label === 'string' ? item.label : undefined, children: shortenedLabel }));\n }\n else if (item.href) {\n return (_jsx(BreadcrumbButton, { href: item.href, title: typeof item.label === 'string' ? item.label : undefined, children: shortenedLabel }));\n }\n else {\n return _jsx(BreadcrumbPage, { children: shortenedLabel });\n }\n };\n if (items.length <= maxItems) {\n return (_jsx(Breadcrumb, { className: cn('w-full flex items-center', className), children: _jsx(BreadcrumbList, { children: items.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: renderBreadcrumbItem(item) }), index < items.length - 1 && (_jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, { className: \"cn-rtl-flip\" }) }))] }, index))) }) }));\n }\n const lastThreeItems = items.slice(-(maxItems - 1));\n return (_jsx(Breadcrumb, { className: cn('w-full flex items-center', className), children: _jsxs(BreadcrumbList, { children: [_jsx(BreadcrumbItem, { children: _jsx(BreadcrumbEllipsis, {}) }), _jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, { className: \"cn-rtl-flip\" }) }), lastThreeItems.map((item, index) => (_jsxs(React.Fragment, { children: [_jsx(BreadcrumbItem, { children: renderBreadcrumbItem(item) }), index < lastThreeItems.length - 1 && (_jsx(BreadcrumbSeparator, { children: separator ?? _jsx(ChevronRight, { className: \"cn-rtl-flip\" }) }))] }, index)))] }) }));\n}\nconst Breadcrumb = React.forwardRef(({ ...props }, ref) => _jsx(\"nav\", { ref: ref, \"aria-label\": \"breadcrumb\", ...props }));\nBreadcrumb.displayName = 'Breadcrumb';\nconst BreadcrumbList = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"ol\", { ref: ref, className: cn('flex flex-wrap items-center gap-1.5 break-words text-sm text-muted sm:gap-2.5', className), ...props })));\nBreadcrumbList.displayName = 'BreadcrumbList';\nconst BreadcrumbItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"li\", { ref: ref, className: cn('inline-flex items-center gap-1.5 text-muted', className), ...props })));\nBreadcrumbItem.displayName = 'BreadcrumbItem';\nconst BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {\n return _jsx(\"a\", { ref: ref, className: cn('transition-colors hover:text-muted', className), ...props });\n});\nBreadcrumbLink.displayName = 'BreadcrumbLink';\nconst BreadcrumbButton = React.forwardRef(({ className, href, onClick, ...props }, ref) => {\n const handleClick = (e) => {\n e.preventDefault();\n if (onClick) {\n onClick(e);\n }\n };\n return (_jsx(Button, { variant: \"ghost\", size: 'md', ref: ref, className: cn('p-0! hover:underline! hover:bg-background!', className), onClick: handleClick, ...props }));\n});\nBreadcrumbButton.displayName = 'BreadcrumbButton';\nconst BreadcrumbPage = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"span\", { ref: ref, \"aria-current\": \"page\", className: cn('font-normal text-foreground', className), ...props })));\nBreadcrumbPage.displayName = 'BreadcrumbPage';\nconst BreadcrumbSeparator = ({ children, className, ...props }) => (_jsx(\"li\", { role: \"presentation\", \"aria-hidden\": \"true\", className: cn('[&>svg]:w-3.5 [&>svg]:h-3.5', className), ...props, children: children ?? _jsx(ChevronRight, { className: \"cn-rtl-flip\" }) }));\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\nconst BreadcrumbEllipsis = ({ className, ...props }) => (_jsxs(\"span\", { role: \"presentation\", \"aria-hidden\": \"true\", className: cn('flex h-9 w-9 items-center justify-center', className), ...props, children: [_jsx(MoreHorizontal, { className: \"h-4 w-4\" }), _jsx(\"span\", { className: \"sr-only\", children: \"More\" })] }));\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\n//# sourceMappingURL=breadcrumb.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nconst Card = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn('rounded-xl border bg-card text-card-foreground shadow', className), ...props })));\nCard.displayName = 'Card';\nconst CardHeader = React.forwardRef(({ className, ...props }, ref) => _jsx(\"div\", { ref: ref, className: cn('flex flex-col p-6', className), ...props }));\nCardHeader.displayName = 'CardHeader';\nconst CardTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn('font-semibold leading-none tracking-tight', className), ...props })));\nCardTitle.displayName = 'CardTitle';\nconst CardDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn('text-sm text-muted-foreground', className), ...props })));\nCardDescription.displayName = 'CardDescription';\nconst CardContent = React.forwardRef(({ className, ...props }, ref) => _jsx(\"div\", { ref: ref, className: cn('p-6 pt-0', className), ...props }));\nCardContent.displayName = 'CardContent';\nconst CardFooter = React.forwardRef(({ className, ...props }, ref) => (_jsx(\"div\", { ref: ref, className: cn('flex items-center p-6 pt-0', className), ...props })));\nCardFooter.displayName = 'CardFooter';\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n//# sourceMappingURL=card.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nconst Checkbox = React.forwardRef(({ className, ...props }, ref) => (_jsx(CheckboxPrimitive.Root, { ref: ref, className: cn('peer size-4 shrink-0 rounded-sm border border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-white', className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { className: cn('flex items-center justify-center text-current'), children: _jsx(Check, { className: \"size-4\" }) }) })));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\nexport { Checkbox };\n//# sourceMappingURL=checkbox.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\nfunction Collapsible({ ...props }) {\n return _jsx(CollapsiblePrimitive.Root, { \"data-slot\": \"collapsible\", ...props });\n}\nfunction CollapsibleTrigger({ ...props }) {\n return _jsx(CollapsiblePrimitive.Trigger, { \"data-slot\": \"collapsible-trigger\", ...props });\n}\nfunction CollapsibleContent({ ...props }) {\n return _jsx(CollapsiblePrimitive.Content, { \"data-slot\": \"collapsible-content\", ...props });\n}\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger };\n//# sourceMappingURL=collaspible.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function VisuallyHidden({ children }) {\n return (_jsx(\"span\", { style: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n width: '1px',\n whiteSpace: 'nowrap',\n wordWrap: 'normal',\n }, children: children }));\n}\n//# sourceMappingURL=visuallyHidden.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\nimport { createContext, useContext } from 'react';\nimport { usePortalContainer } from '../../../hooks/PortalContainerProvider';\nimport { cn } from '../../libs/utils';\nimport { VisuallyHidden } from '../../libs/visuallyHidden';\nimport { Button } from '../button';\nconst ModalContext = createContext(false);\nexport function useIsInModal() {\n return !!useContext(ModalContext);\n}\nexport function ModalContextProvider({ children }) {\n return _jsx(ModalContext.Provider, { value: true, children: children });\n}\nexport function Modal({ className, children, isOpen, onClose, description = 'Modal Description', noCloseButton = false, allowOverflow = false, disableCloseOnClickOutside = false, size = 'md', action, }) {\n const handleOpenChange = (open) => {\n if (!open) {\n onClose();\n }\n };\n function getSizeClasses() {\n switch (size) {\n case 'sm':\n return 'max-w-[20vw]';\n case 'md':\n return 'max-w-[60vw] lg:max-w-[40vw]';\n case 'lg':\n return 'max-w-[80vw] md:max-w-[60vw]';\n case 'xl':\n return 'max-w-[95vw] lg:max-w-[80vw]';\n default:\n return 'max-w-[60vw] lg:max-w-[40vw]';\n }\n }\n return (_jsxs(Dialog, { open: isOpen, onOpenChange: (open) => {\n if (!disableCloseOnClickOutside || open) {\n handleOpenChange(open);\n }\n }, children: [allowOverflow && _jsx(DialogOverlay, { className: \"z-50 fixed inset-0 bg-black/80\" }), _jsx(VisuallyHidden, { children: _jsx(DialogDescription, { children: description }) }), _jsxs(DialogContent, { className: cn('min-h-20 p-4', \n // rtl-ok: symmetric centering — left-[50%] + translate-x-[-50%] works in both LTR and RTL\n 'fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] border bg-background shadow-lg duration-200 sm:rounded-lg', getSizeClasses(), className), children: [_jsx(\"div\", { className: \"top-4 end-4 absolute\", children: _jsxs(\"div\", { className: \"flex gap-2\", children: [action && action, !noCloseButton && (_jsx(DialogClose, { onClick: () => handleOpenChange(false), asChild: true, autoFocus: false, children: _jsx(Button, { variant: \"outline\", alt: \"Close\", className: \"data-[state=open]:bg-accent opacity-70 hover:opacity-100 rounded-sm focus:outline-none focus:ring-2 focus:ring-ring ring-offset-background focus:ring-offset-2 data-[state=open]:text-muted-foreground transition-opacity disabled:pointer-events-none\", children: _jsx(X, { className: \"size-4\" }) }) }))] }) }), _jsx(ModalContextProvider, { children: children })] })] }));\n}\nexport const ModalTitle = ({ children, show = true, className, description, showDivider = false, ...props }) => {\n if (!show) {\n return (_jsxs(VisuallyHidden, { children: [_jsx(DialogTitle, { children: children }), description && _jsx(DialogDescription, { children: description })] }));\n }\n return (_jsxs(DialogTitle, { className: cn(showDivider ? 'border-b-solid border-b border-b-1 pb-2 mb-4' : '', 'text-lg font-semibold leading-6 tracking-tight', { 'py-2': !description }, className), ...props, children: [children, description && (_jsx(DialogDescription, { className: \"text-sm !font-normal text-muted-foreground pb-2\", children: description }))] }));\n};\nexport const ModalBody = ({ children, className, ...props }) => {\n return (_jsx(\"div\", { className: cn('text-sm max-h-[80vh] overflow-y-auto', className), ...props, children: children }));\n};\nexport const ModalFooter = ({ align = 'right', children, className, ...props }) => {\n const alignClass = {\n left: 'justify-start',\n center: 'justify-center',\n right: 'justify-end',\n };\n return (_jsx(\"div\", { className: cn('w-full flex py-3 sm:py-2 sm:flex sm:flex-row-reverse sm:flex-row sm:justify-end sm:space-x-2', alignClass[align], className), ...props, children: children }));\n};\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogPortal = DialogPrimitive.Portal;\nconst DialogClose = DialogPrimitive.Close;\nconst DialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: cn('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props })));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\nconst DialogContent = React.forwardRef(({ className, children, ...props }, ref) => {\n const container = usePortalContainer();\n return (_jsxs(DialogPortal, { container: container, children: [_jsx(DialogOverlay, {}), _jsx(DialogPrimitive.Content, { ref: ref, autoFocus: false, onOpenAutoFocus: (event) => {\n event.preventDefault();\n }, className: cn(\n // rtl-ok: symmetric centering + slide animations from Radix — left-[50%]/translate-x-[-50%] are mirror-safe\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] border bg-background shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props, children: children })] }));\n});\nDialogContent.displayName = DialogPrimitive.Content.displayName;\nconst DialogDescription = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Description, { ref: ref, className: cn('text-sm text-muted', className), ...props })));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\nconst DialogTitle = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Title, { ref: ref, className: cn('text-lg font-semibold leading-none tracking-tight', className), ...props })));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };\n//# sourceMappingURL=dialog.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { Search } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nimport { Dialog, DialogContent } from './modal/dialog';\nconst Command = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive, { ref: ref, className: cn('flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground', className), ...props })));\nCommand.displayName = CommandPrimitive.displayName;\nconst CommandDialog = ({ children, ...props }) => {\n return (_jsx(Dialog, { ...props, children: _jsx(DialogContent, { className: \"shadow-lg p-0 overflow-hidden\", children: _jsx(Command, { className: \"[&_[cmdk-group]]:px-2 [&_[cmdk-item]]:px-2 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-item]_svg]:w-5 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\", children: children }) }) }));\n};\nconst CommandInput = React.forwardRef(({ className, ...props }, ref) => (_jsxs(\"div\", { className: \"flex items-center px-3 border-b\", \"cmdk-input-wrapper\": \"\", children: [_jsx(Search, { className: \"opacity-50 size-4 shrink-0\" }), _jsx(CommandPrimitive.Input, { ref: ref, className: cn('focus:ring-0', 'border-0 flex h-8 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50', className), ...props })] })));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\nconst CommandList = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.List, { ref: ref, className: cn('overflow-y-auto overflow-x-hidden', className), ...props })));\nCommandList.displayName = CommandPrimitive.List.displayName;\nconst CommandEmpty = React.forwardRef((props, ref) => (_jsx(CommandPrimitive.Empty, { ref: ref, className: \"py-2 text-sm text-center\", ...props })));\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\nconst CommandGroup = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Group, { ref: ref, className: cn('overflow-y-auto overflow-x-hidden p-1 text-foreground', '[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground', className), ...props })));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\nconst CommandSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Separator, { ref: ref, className: cn('-mx-1 h-px bg-border', className), ...props })));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\nconst CommandItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Item, { ref: ref, className: cn(\"hover:bg-muted cursor-pointer relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\", className), ...props })));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\nconst CommandShortcut = ({ className, ...props }) => {\n return _jsx(\"span\", { className: cn('ms-auto text-xs tracking-widest text-muted-foreground', className), ...props });\n};\nCommandShortcut.displayName = 'CommandShortcut';\nexport { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, };\n//# sourceMappingURL=command.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nconst HoverMenuContext = React.createContext(false);\nfunction DropdownMenu({ ...props }) {\n return _jsx(DropdownMenuPrimitive.Root, { \"data-slot\": \"dropdown-menu\", ...props });\n}\nfunction DropdownMenuPortal({ ...props }) {\n return _jsx(DropdownMenuPrimitive.Portal, { \"data-slot\": \"dropdown-menu-portal\", ...props });\n}\nfunction DropdownMenuTrigger({ ...props }) {\n return _jsx(DropdownMenuPrimitive.Trigger, { \"data-slot\": \"dropdown-menu-trigger\", ...props });\n}\nfunction DropdownMenuContent({ className, align = 'start', sideOffset = 4, ...props }) {\n return (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { \"data-slot\": \"dropdown-menu-content\", sideOffset: sideOffset, align: align, className: cn('data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto data-[state=closed]:overflow-hidden', className), ...props }) }));\n}\nfunction DropdownMenuGroup({ ...props }) {\n return _jsx(DropdownMenuPrimitive.Group, { \"data-slot\": \"dropdown-menu-group\", ...props });\n}\nfunction DropdownMenuItem({ className, inset, variant = 'default', ...props }) {\n return (_jsx(DropdownMenuPrimitive.Item, { \"data-slot\": \"dropdown-menu-item\", \"data-inset\": inset, \"data-variant\": variant, className: cn(\"hover:bg-muted focus:bg-muted data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive gap-2 rounded-md px-1.5 py-1 text-sm data-inset:ps-7 [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), ...props }));\n}\nfunction DropdownMenuCheckboxItem({ className, children, checked, inset, ...props }) {\n return (_jsxs(DropdownMenuPrimitive.CheckboxItem, { \"data-slot\": \"dropdown-menu-checkbox-item\", \"data-inset\": inset, className: cn(\"focus:bg-muted focus:text-muted focus:**:text-muted gap-2 rounded-md py-1 pe-8 ps-1.5 text-sm data-inset:ps-7 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), checked: checked, ...props, children: [_jsx(\"span\", { className: \"absolute end-2 flex items-center justify-center pointer-events-none\", \"data-slot\": \"dropdown-menu-checkbox-item-indicator\", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));\n}\nfunction DropdownMenuRadioGroup({ ...props }) {\n return _jsx(DropdownMenuPrimitive.RadioGroup, { \"data-slot\": \"dropdown-menu-radio-group\", ...props });\n}\nfunction DropdownMenuRadioItem({ className, children, inset, ...props }) {\n return (_jsxs(DropdownMenuPrimitive.RadioItem, { \"data-slot\": \"dropdown-menu-radio-item\", \"data-inset\": inset, className: cn(\"focus:bg-muted focus:text-muted focus:**:text-muted gap-2 rounded-md py-1 pe-8 ps-1.5 text-sm data-inset:ps-7 [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), ...props, children: [_jsx(\"span\", { className: \"absolute end-2 flex items-center justify-center pointer-events-none\", \"data-slot\": \"dropdown-menu-radio-item-indicator\", children: _jsx(DropdownMenuPrimitive.ItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));\n}\nfunction DropdownMenuLabel({ className, inset, ...props }) {\n return (_jsx(DropdownMenuPrimitive.Label, { \"data-slot\": \"dropdown-menu-label\", \"data-inset\": inset, className: cn('text-muted px-1.5 py-1 text-xs font-medium data-inset:ps-7', className), ...props }));\n}\nfunction DropdownMenuSeparator({ className, ...props }) {\n return (_jsx(DropdownMenuPrimitive.Separator, { \"data-slot\": \"dropdown-menu-separator\", className: cn('bg-border -mx-1 my-1 h-px', className), ...props }));\n}\nfunction DropdownMenuShortcut({ className, ...props }) {\n return (_jsx(\"span\", { \"data-slot\": \"dropdown-menu-shortcut\", className: cn('text-muted group-focus/dropdown-menu-item:text-muted ms-auto text-xs tracking-widest', className), ...props }));\n}\nfunction DropdownMenuSub({ ...props }) {\n return _jsx(DropdownMenuPrimitive.Sub, { \"data-slot\": \"dropdown-menu-sub\", ...props });\n}\nfunction DropdownMenuSubTrigger({ className, inset, children, ...props }) {\n return (_jsxs(DropdownMenuPrimitive.SubTrigger, { \"data-slot\": \"dropdown-menu-sub-trigger\", \"data-inset\": inset, className: cn(\"focus:bg-muted focus:text-muted data-open:bg-muted data-open:text-muted not-data-[variant=destructive]:focus:**:text-muted gap-2 rounded-md px-1.5 py-1 text-sm data-inset:ps-7 [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0\", className), ...props, children: [children, _jsx(ChevronRightIcon, { className: \"cn-rtl-flip ms-auto\" })] }));\n}\nfunction DropdownMenuSubContent({ className, ...props }) {\n return (_jsx(DropdownMenuPrimitive.SubContent, { \"data-slot\": \"dropdown-menu-sub-content\", className: cn('data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-lg p-1 shadow-lg ring-1 duration-100 z-50 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden', className), ...props }));\n}\nexport { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, };\n// High-level convenience components\nconst alignMap = { left: 'start', center: 'center', right: 'end' };\nexport function Dropdown({ trigger, children, align = 'right', hover }) {\n const [open, setOpen] = React.useState(false);\n const closeTimer = React.useRef(null);\n if (hover) {\n const onEnter = () => {\n if (closeTimer.current)\n clearTimeout(closeTimer.current);\n setOpen(true);\n };\n const onLeave = () => {\n closeTimer.current = setTimeout(() => setOpen(false), 80);\n };\n // rtl-ok: 'center' uses symmetric left-1/2 + -translate-x-1/2 (same in LTR/RTL)\n const alignClass = align === 'right' ? 'end-0' : align === 'center' ? 'left-1/2 -translate-x-1/2' : 'start-0';\n return (_jsxs(\"div\", { className: \"relative inline-flex\", onMouseEnter: onEnter, onMouseLeave: onLeave, children: [trigger, open && (_jsx(\"div\", { className: cn('absolute top-full pt-1 z-50', alignClass), children: _jsx(\"div\", { className: \"min-w-32 rounded-lg p-1 shadow-md ring-1 ring-foreground/10 bg-popover text-popover-foreground\", children: _jsx(HoverMenuContext.Provider, { value: true, children: children }) }) }))] }));\n }\n return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(\"span\", { className: \"-m-1.5 flex items-center p-1.5\", children: trigger }) }), _jsx(DropdownMenuContent, { align: alignMap[align], className: \"w-max\", children: children })] }));\n}\nexport function MenuGroup({ children, label }) {\n return (_jsxs(DropdownMenuGroup, { children: [label && _jsx(DropdownMenuLabel, { children: label }), children] }));\n}\nexport function MenuItem({ children, href, onClick, isDisabled = false, variant = 'default', className, }) {\n const isHoverMenu = React.useContext(HoverMenuContext);\n const baseClass = cn(\"w-full gap-2 rounded-md px-1.5 py-1 text-sm text-nowrap [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center select-none [&_svg]:pointer-events-none [&_svg]:shrink-0\", variant === 'destructive' ? 'text-destructive' : '', isDisabled ? 'pointer-events-none opacity-50' : 'hover:bg-muted focus:bg-muted', className);\n if (isHoverMenu) {\n const handleClick = (e) => {\n e.stopPropagation();\n onClick?.(e);\n };\n // Raw <button> — hover-menu fallback for a dropdown item; Button would apply wrong (button) focus/hover on top of menu-item semantics.\n return href ? (_jsx(\"a\", { href: href, className: baseClass, children: children })) : (_jsx(\"button\", { type: \"button\", className: baseClass, disabled: isDisabled, onClick: handleClick, children: children }));\n }\n return (_jsx(DropdownMenuItem, { className: cn('data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-nowrap', className), disabled: isDisabled, variant: variant, onClick: (e) => {\n e.stopPropagation();\n onClick?.(e);\n }, asChild: !!href, children: href ? _jsx(\"a\", { href: href, children: children }) : children }));\n}\n//# sourceMappingURL=dropdown.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, useRef, useState } from 'react';\nimport { cn } from '../../libs/utils';\nexport const AnimateChangeInHeight = ({ children, className, }) => {\n const containerRef = useRef(null);\n const [height, setHeight] = useState('auto');\n useEffect(() => {\n if (containerRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n // We only have one entry, so we can use entries[0].\n const observedHeight = entries[0].contentRect.height;\n setHeight(observedHeight);\n });\n resizeObserver.observe(containerRef.current);\n return () => {\n // Cleanup the observer when the component is unmounted\n resizeObserver.disconnect();\n };\n }\n }, []);\n return (_jsx(\"div\", { className: cn(className, 'overflow-hidden transition-all duration-100 ease-in'), style: { height }, children: _jsx(\"div\", { ref: containerRef, children: children }) }));\n};\n//# sourceMappingURL=animateChangeInHeight.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as React from 'react';\nimport { usePortalContainer } from '../../hooks/PortalContainerProvider';\nimport { cn } from '../libs/utils';\nexport const PopoverContext = React.createContext(null);\nconst Popover = ({ hover = false, click = false, modal, children, _open, onOpenChange }) => {\n const [open, setOpen] = React.useState(_open || false);\n const handleOpenChange = (open) => {\n setOpen(open);\n if (onOpenChange) {\n onOpenChange(open);\n }\n };\n return (_jsx(PopoverContext.Provider, { value: { open, setOpen, hover, click }, children: _jsx(PopoverPrimitive.Root, { open: open, onOpenChange: handleOpenChange, modal: modal, children: children }) }));\n};\nfunction handleHover(hover = false, setOpen = () => { }, type) {\n if (hover) {\n setOpen(type === 'enter');\n }\n}\nconst PopoverTrigger = React.forwardRef(({ children, ...props }, ref) => {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error('PopoverTrigger must be used within a Popover');\n }\n const { setOpen, hover, click } = context;\n return (_jsx(PopoverPrimitive.Trigger, { ref: ref, asChild: true, onMouseEnter: () => handleHover(hover, setOpen, 'enter'), onMouseLeave: () => handleHover(hover, setOpen, 'leave'), onClick: () => {\n if (click)\n setOpen((prev) => !prev);\n }, ...props, children: children }));\n});\nPopoverTrigger.displayName = PopoverPrimitive.Trigger.displayName;\nconst PopoverAnchor = PopoverPrimitive.Anchor;\nconst PopoverContent = React.forwardRef(({ className, align = 'center', side = 'bottom', ...props }, ref) => {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error('PopoverContent must be used within a Popover');\n }\n const { setOpen, hover } = context;\n const container = usePortalContainer();\n return (_jsx(PopoverPrimitive.Portal, { container: container, children: _jsx(PopoverPrimitive.Content, { ref: ref, align: align, side: side, onMouseEnter: () => handleHover(hover, setOpen, 'enter'), onMouseLeave: () => handleHover(hover, setOpen, 'leave'), \n // onClick={() => {setOpen(false)}}\n className: cn('z-50 w-72 rounded-md border-popover bg-popover text-popover-foreground ring-1 ring-gray-200 dark:ring-slate-700 shadow-md focus:outline-none animate-in', 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2', className), ...props }) }));\n});\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\nconst PopoverClose = PopoverPrimitive.Close;\nPopoverClose.displayName = PopoverPrimitive.Close.displayName;\nexport function usePopoverContext() {\n const ctx = React.useContext(PopoverContext);\n if (!ctx)\n throw new Error('usePopoverContext must be used within a Popover');\n return { ...ctx, close: () => ctx.setOpen(false) };\n}\nexport { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };\n//# sourceMappingURL=popover.js.map","export const calendarStyles = `\n.calendar-wrapper .react-calendar__navigation {\n display: flex !important;\n justify-content: space-between !important;\n align-items: center !important;\n gap: 8px !important;\n padding: 8px !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__label {\n flex: 1 !important;\n text-align: center !important;\n font-weight: 500 !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__arrow {\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n min-width: 32px !important;\n height: 32px !important;\n border-radius: 4px !important;\n border: 1px solid hsl(var(--border)) !important;\n background: hsl(var(--background)) !important;\n color: hsl(var(--foreground)) !important;\n}\n\n.calendar-wrapper .react-calendar__navigation__arrow:hover {\n background: oklch(var(--muted)) !important;\n}\n\n.calendar-wrapper .react-calendar__tile {\n cursor: pointer !important;\n width: 0.5rem !important;\n font-size: 0.875rem !important;\n}\n\n.calendar-wrapper .react-calendar__tile:hover,\n.calendar-wrapper .react-calendar__month-view__days__day:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year:hover,\n.calendar-wrapper .react-calendar__year-view__months__month:hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile:not(.react-calendar__tile--active):hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile--hover {\n background: #b5b5b580 !important;\n}\n\n.calendar-wrapper .react-calendar__tile--disabled,\n.calendar-wrapper .react-calendar__tile:disabled,\n.calendar-wrapper .react-calendar__month-view__days__day--disabled,\n.calendar-wrapper .react-calendar__month-view__days__day:disabled,\n.calendar-wrapper .react-calendar__year-view__months__month--disabled,\n.calendar-wrapper .react-calendar__year-view__months__month:disabled,\n.calendar-wrapper .react-calendar__decade-view__years__year--disabled,\n.calendar-wrapper .react-calendar__decade-view__years__year:disabled {\n cursor: not-allowed !important;\n color: #9ca3af !important;\n}\n\n.calendar-wrapper .react-calendar__tile--disabled:hover,\n.calendar-wrapper .react-calendar__tile:disabled:hover,\n.calendar-wrapper .react-calendar__month-view__days__day--disabled:hover,\n.calendar-wrapper .react-calendar__month-view__days__day:disabled:hover,\n.calendar-wrapper .react-calendar__year-view__months__month--disabled:hover,\n.calendar-wrapper .react-calendar__year-view__months__month:disabled:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year--disabled:hover,\n.calendar-wrapper .react-calendar__decade-view__years__year:disabled:hover {\n background: transparent !important;\n}\n\n\n.calendar-wrapper .react-calendar__month-view__weekdays {\n font-size: 0.75rem !important;\n}\n\n.calendar-wrapper .react-calendar__month-view__weekdays__weekday {\n width: 0.75rem !important;\n font-size: 0.75rem !important;\n text-align: center !important;\n}\n \n`;\n//# sourceMappingURL=filter-styles.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport dayjs from 'dayjs';\nimport { useEffect, useState } from 'react';\nimport ReactCalendar from 'react-calendar';\nimport { Button } from '../../button';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\nimport { calendarStyles } from '../filter-styles';\nexport const DateCombobox = ({ filterValues, setFilterValues, isRange = false, }) => {\n const [open, setOpen] = useState(false);\n const [localDateRange, setLocalDateRange] = useState([null, null]);\n const { t } = useUITranslation();\n // Parse with dayjs to interpret bare YYYY-MM-DD as local time (to match UI).\n const selectedDate = filterValues[0] ? dayjs(filterValues[0]).toDate() : undefined;\n // For date range - use local state for immediate feedback, fall back to filter values\n const dateRange = isRange\n ? [\n localDateRange[0] || (filterValues[0] ? dayjs(filterValues[0]).toDate() : null),\n localDateRange[1] || (filterValues[1] ? dayjs(filterValues[1]).toDate() : null),\n ]\n : [null, null];\n // Update local state when filter values change\n useEffect(() => {\n if (isRange) {\n setLocalDateRange([\n filterValues[0] ? dayjs(filterValues[0]).toDate() : null,\n filterValues[1] ? dayjs(filterValues[1]).toDate() : null,\n ]);\n }\n }, [filterValues, isRange]);\n const getDisplayText = () => {\n if (isRange) {\n if (dateRange[0] && dateRange[1]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-1.5\", children: [_jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[0]).format('MMMM DD, YYYY') }), _jsx(\"span\", { className: \"text-xs text-muted-foreground\", children: \"-\" }), _jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[1]).format('MMMM DD, YYYY') })] }));\n }\n else if (dateRange[0]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-1.5\", children: [_jsx(\"span\", { className: \"font-medium\", children: dayjs(dateRange[0]).format('MMMM DD, YYYY') }), _jsx(\"span\", { className: \"text-xs text-muted-foreground\", children: \"- Select end\" })] }));\n }\n else {\n return _jsx(\"span\", { className: \"text-muted-foreground\", children: t('filter.selectRange') });\n }\n }\n else {\n return selectedDate ? dayjs(selectedDate).format('MMMM DD, YYYY') : 'Pick a date';\n }\n };\n const handleDateChange = (date) => {\n if (isRange) {\n // Update local state immediately for visual feedback\n if (Array.isArray(date)) {\n setLocalDateRange([date[0], date[1]]);\n // Update filter values\n if (date[0] && date[1]) {\n setFilterValues([dayjs(date[0]).format('YYYY-MM-DD'), dayjs(date[1]).format('YYYY-MM-DD')]);\n }\n else if (date[0]) {\n setFilterValues([dayjs(date[0]).format('YYYY-MM-DD')]);\n }\n }\n }\n else {\n if (date) {\n const actualDate = Array.isArray(date) ? date[0] : date;\n if (actualDate) {\n setFilterValues([dayjs(actualDate).format('YYYY-MM-DD')]);\n setOpen(false);\n }\n }\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center min-h-[20px]\", children: getDisplayText() }) }), _jsx(PopoverContent, { className: \"w-auto p-0\", align: \"start\", side: \"bottom\", alignOffset: -4, sideOffset: 6, children: _jsx(\"div\", { className: \"p-2\", children: isRange ? (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(ReactCalendar, { value: dateRange, onChange: handleDateChange, selectRange: true, returnValue: \"range\", maxDate: (() => {\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n return maxDate;\n })(), className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (dateRange[0]) {\n const startDate = dateRange[0].getTime();\n if (dateRange[1]) {\n // Both dates selected\n const endDate = dateRange[1].getTime();\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-s-md font-semibold';\n }\n if (currentDate === endDate) {\n return 'bg-primary text-primary-foreground rounded-e-md font-semibold';\n }\n if (currentDate > startDate && currentDate < endDate) {\n return 'bg-primary/20 text-primary font-medium';\n }\n }\n else {\n // Only start date selected\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n }\n }\n return '';\n } })] }), dateRange[0] && dateRange[1] && (_jsx(\"div\", { className: \"border-t pt-2\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: () => setOpen(false), children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: () => setOpen(false), children: \"Apply\" })] }) }))] })) : (_jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(ReactCalendar, { value: selectedDate, onChange: handleDateChange, selectRange: false, maxDate: (() => {\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n return maxDate;\n })(), className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (selectedDate && currentDate === selectedDate.getTime()) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n return '';\n } })] })) }) })] }));\n};\n//# sourceMappingURL=DateCombobox.js.map","import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useEffect, useState } from 'react';\nexport function DynamicLabel({ value, labelRenderer, fallbackLabel }) {\n const [label, setLabel] = useState(fallbackLabel || value);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n if (!labelRenderer) {\n setLabel(fallbackLabel || value);\n return;\n }\n const renderLabel = async () => {\n setIsLoading(true);\n try {\n const result = labelRenderer(value);\n if (result instanceof Promise) {\n const resolvedLabel = await result;\n setLabel(resolvedLabel);\n }\n else {\n setLabel(result);\n }\n }\n catch (error) {\n console.error('Error rendering label:', error);\n setLabel(fallbackLabel || value);\n }\n finally {\n setIsLoading(false);\n }\n };\n void renderLabel();\n }, [value, labelRenderer, fallbackLabel]);\n if (isLoading) {\n return _jsx(\"span\", { className: \"text-muted-foreground\", children: \"Loading...\" });\n }\n return _jsx(_Fragment, { children: label });\n}\n//# sourceMappingURL=DynamicLabel.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport { useRef, useState } from 'react';\nimport { Checkbox } from '../../checkbox';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, } from '../../command';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\nimport { AnimateChangeInHeight } from '../animateChangeInHeight';\nimport { DynamicLabel } from '../DynamicLabel';\nexport const SelectionCombobox = ({ filterType, filterValues, setFilterValues, options, labelRenderer, multiple = true, }) => {\n const [open, setOpen] = useState(false);\n const [commandInput, setCommandInput] = useState('');\n const commandInputRef = useRef(null);\n const { t } = useUITranslation();\n const nonSelectedFilterValues = options?.filter((option) => !filterValues.some((filter) => filter.value === option.value));\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open) {\n setTimeout(() => {\n setCommandInput('');\n }, 200);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 transition text-muted hover:text-primary shrink-0\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValues?.length === 1\n ? (() => {\n const option = filterValues[0];\n return (_jsx(DynamicLabel, { value: option.value || '', labelRenderer: labelRenderer, fallbackLabel: option.label }));\n })()\n : `${filterValues?.length} selected` }) }), _jsx(PopoverContent, { className: \"w-[300px] p-0\", children: _jsx(AnimateChangeInHeight, { children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: filterType, className: \"h-9\", value: commandInput, onInputCapture: (e) => {\n setCommandInput(e.currentTarget.value);\n }, ref: commandInputRef }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: t('filter.noResultsFound') }), _jsx(CommandGroup, { children: filterValues.map((value) => {\n return (_jsxs(CommandItem, { className: \"group flex gap-2 items-center\", onSelect: () => {\n setFilterValues(filterValues.filter((v) => v.value !== value.value));\n setTimeout(() => {\n setCommandInput('');\n }, 200);\n setOpen(false);\n }, children: [multiple && _jsx(\"input\", { type: \"checkbox\", checked: true, onChange: () => { } }), _jsx(DynamicLabel, { value: value.value || '', labelRenderer: labelRenderer, fallbackLabel: value.label })] }, value.value));\n }) }), nonSelectedFilterValues?.length > 0 && (_jsxs(_Fragment, { children: [_jsx(CommandSeparator, {}), _jsx(CommandGroup, { children: nonSelectedFilterValues\n .filter((option) => String(option.label || option.value)\n .toLowerCase()\n .includes(commandInput.toLowerCase()))\n .map((filter) => (_jsxs(CommandItem, { className: \"group flex gap-2 items-center\", value: String(filter.label || filter.value), onSelect: () => {\n const next = {\n value: filter.value,\n label: filter.label,\n };\n setFilterValues(multiple ? [...filterValues, next] : [next]);\n setTimeout(() => {\n setCommandInput('');\n }, 200);\n setOpen(false);\n }, children: [multiple && (_jsx(Checkbox, { checked: false, className: \"opacity-0 group-data-[selected=true]:opacity-100\" })), _jsx(\"span\", { className: \"text-muted\", children: _jsx(DynamicLabel, { value: filter.value || '', labelRenderer: filter.labelRenderer || labelRenderer, fallbackLabel: filter.label }) })] }, filter.value))) })] }))] })] }) }) })] }));\n};\n//# sourceMappingURL=SelectCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { InputList } from '../../../InputList';\nimport { Button } from '../../button';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\nexport const StringListCombobox = ({ filterType, filterValues, setFilterValues, }) => {\n const [open, setOpen] = useState(false);\n const [tags, setTags] = useState(filterValues);\n const handleApply = () => {\n setFilterValues(tags);\n setOpen(false);\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open && JSON.stringify(tags) !== JSON.stringify(filterValues)) {\n setTags(filterValues);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValues.length > 0\n ? filterValues.length === 1\n ? filterValues[0]\n : `${filterValues.length} tags`\n : 'Add tags...' }) }), _jsx(PopoverContent, { className: \"w-[300px] p-3\", children: _jsxs(\"div\", { className: \"flex flex-col gap-3\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterType }) }), _jsx(InputList, { value: tags, onChange: setTags, placeholder: `Add ${filterType.toLowerCase()}...` }), _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { size: \"sm\", variant: \"ghost\", onClick: () => {\n setTags(filterValues);\n setOpen(false);\n }, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, children: \"Apply\" })] })] }) })] }));\n};\n//# sourceMappingURL=StringListCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { Button } from '../../button';\nimport { Input } from '../../input';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\nexport const TextCombobox = ({ filterType, filterValue, setFilterValue, }) => {\n const [open, setOpen] = useState(false);\n const [inputValue, setInputValue] = useState(filterValue);\n const handleKeyDown = (event) => {\n if (event.key === 'Enter') {\n setFilterValue(inputValue);\n setOpen(false);\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: (open) => {\n setOpen(open);\n if (!open && inputValue !== filterValue) {\n setInputValue(filterValue);\n }\n }, children: [_jsx(PopoverTrigger, { className: \"rounded-none p-1 h-8 bg-muted hover:bg-muted/50 text-muted hover:text-primary shrink-0 transition\", children: _jsx(\"div\", { className: \"flex gap-1.5 items-center\", children: filterValue || 'Enter text...' }) }), _jsx(PopoverContent, { className: \"w-[300px] p-3\", children: _jsxs(\"div\", { className: \"flex flex-col gap-1\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterType }) }), _jsx(Input, { autoFocus: true, type: \"text\", size: 'sm', value: inputValue, onChange: setInputValue, onKeyDown: handleKeyDown, placeholder: \"Enter text...\" }), _jsx(\"div\", { className: \"mt-2 p-2 border-t\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: () => {\n setInputValue(filterValue);\n setOpen(false);\n }, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: () => {\n setFilterValue(inputValue);\n setOpen(false);\n }, children: \"Apply\" })] }) })] }) })] }));\n};\n//# sourceMappingURL=TextCombobox.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport dayjs from 'dayjs';\nimport { useState } from 'react';\nimport Calendar from 'react-calendar';\nimport { Button } from '../../button';\nimport { calendarStyles } from '../filter-styles';\nexport default function DateFilter({ selectedView, selectedDate, setSelectedDate, setFilters, filters, handleClose, filterGroups, }) {\n const { t } = useUITranslation();\n const [dateRange, setDateRange] = useState([null, null]);\n const [localDateRange, setLocalDateRange] = useState([null, null]);\n const selectedGroup = filterGroups.find((g) => g.name === selectedView);\n const isDateRange = selectedGroup?.multiple;\n // Create maxDate set to end of today to ensure today is selectable\n const maxDate = new Date();\n maxDate.setHours(23, 59, 59, 999);\n // Use local state for immediate feedback, fall back to dateRange\n const effectiveDateRange = [\n localDateRange[0] || dateRange[0],\n localDateRange[1] || dateRange[1],\n ];\n const handleDateChange = (value) => {\n if (isDateRange) {\n // Handle date range selection\n if (Array.isArray(value)) {\n // Update local state immediately for visual feedback\n setLocalDateRange([value[0], value[1]]);\n // Also update the main dateRange state\n setDateRange([value[0], value[1]]);\n }\n else {\n // Single date in range mode\n setLocalDateRange([value, null]);\n setDateRange([value, null]);\n }\n }\n else {\n // Handle single date selection\n const date = Array.isArray(value) ? value[0] : value;\n setSelectedDate(date || undefined);\n if (date) {\n // Set date to start of day (00:00)\n const selectedDateStart = new Date(date);\n selectedDateStart.setHours(0, 0, 0, 0);\n setFilters([\n ...filters,\n {\n name: selectedView || '',\n placeholder: selectedGroup?.placeholder,\n value: [\n {\n value: selectedDateStart.toISOString(),\n label: dayjs(selectedDateStart).format('LLL dd, y'),\n },\n ],\n type: selectedGroup?.type || 'date',\n multiple: selectedGroup?.multiple || false,\n },\n ]);\n handleClose();\n }\n }\n };\n const handleApplyDateRange = () => {\n if (dateRange[0]) {\n const startDate = new Date(dateRange[0]);\n const endDate = dateRange[1] ? new Date(dateRange[1]) : new Date(dateRange[0]);\n // Set start date to beginning of day\n startDate.setHours(0, 0, 0, 0);\n // Set end date to end of day\n endDate.setHours(23, 59, 59, 999);\n const filterValue = [];\n filterValue.push({\n value: startDate.toISOString(),\n label: dayjs(startDate).format('LLL dd, y'),\n });\n if (dateRange[1] && dateRange[0].getTime() !== dateRange[1].getTime()) {\n filterValue.push({\n value: endDate.toISOString(),\n label: dayjs(endDate).format('LLL dd, y'),\n });\n }\n setFilters([\n ...filters,\n {\n name: selectedView || '',\n placeholder: selectedGroup?.placeholder,\n value: filterValue,\n type: selectedGroup?.type || 'date',\n multiple: selectedGroup?.multiple || false,\n },\n ]);\n handleClose();\n }\n };\n const getDisplayText = () => {\n if (isDateRange) {\n if (effectiveDateRange[0] && effectiveDateRange[1]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-2\", children: [_jsx(\"span\", { className: \"text-xs text-muted\", children: t('filter.from') }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[0]).format('MMMM DD, YYYY') }), _jsx(\"span\", { className: \"text-xs text-muted\", children: t('filter.to') }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[1]).format('MMMM DD, YYYY') })] }));\n }\n else if (effectiveDateRange[0]) {\n return (_jsxs(\"span\", { className: \"flex items-center gap-2\", children: [_jsx(\"span\", { className: \"text-xs text-muted\", children: t('filter.from') }), _jsx(\"span\", { className: \"text-xs font-medium\", children: dayjs(effectiveDateRange[0]).format('MMMM DD, YYYY') }), _jsx(\"span\", { className: \"text-xs text-muted\", children: \"\\u2192 Select end date\" })] }));\n }\n else {\n return (_jsx(\"span\", { className: \"text-muted text-xs\", children: selectedGroup?.placeholder || selectedGroup?.name || selectedView || 'Select date range' }));\n }\n }\n else {\n return selectedDate ? dayjs(selectedDate).format('MMMM DD, YYYY') : 'Pick a date';\n }\n };\n return (_jsx(\"div\", { className: \"p-2\", children: isDateRange ? (_jsxs(_Fragment, { children: [_jsx(\"div\", { children: getDisplayText() }), _jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(Calendar, { value: effectiveDateRange, onChange: handleDateChange, selectRange: true, returnValue: \"range\", maxDate: maxDate, className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (effectiveDateRange[0]) {\n const startDate = effectiveDateRange[0].getTime();\n if (effectiveDateRange[1]) {\n // Both dates selected\n const endDate = effectiveDateRange[1].getTime();\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-s-md font-semibold';\n }\n if (currentDate === endDate) {\n return 'bg-primary text-primary-foreground rounded-e-md font-semibold';\n }\n if (currentDate > startDate && currentDate < endDate) {\n return 'bg-primary/20 text-primary font-medium';\n }\n }\n else {\n // Only start date selected\n if (currentDate === startDate) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n }\n }\n return '';\n } }, `${effectiveDateRange[0]?.getTime()}-${effectiveDateRange[1]?.getTime()}`)] }), _jsx(\"div\", { className: \"border-t pt-2\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApplyDateRange, disabled: !effectiveDateRange[0], children: \"Apply\" })] }) })] })) : (_jsxs(\"div\", { className: \"calendar-wrapper\", children: [_jsx(\"style\", { children: calendarStyles }), _jsx(Calendar, { value: selectedDate, onChange: handleDateChange, selectRange: false, maxDate: maxDate, className: \"mb-2 border-0\", tileClassName: ({ date, view }) => {\n if (view === 'month') {\n const currentDate = date.getTime();\n const today = new Date();\n today.setHours(23, 59, 59, 999);\n // Check if date is disabled (future date)\n if (currentDate > today.getTime()) {\n return 'text-muted/20 cursor-not-allowed';\n }\n // Handle selected date styling\n if (selectedDate && currentDate === selectedDate.getTime()) {\n return 'bg-primary text-primary-foreground rounded-md font-semibold';\n }\n }\n return '';\n } })] })) }));\n}\n//# sourceMappingURL=dateFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { Button } from '../../button';\nimport { CommandItem } from '../../command';\nimport { DynamicLabel } from '../DynamicLabel';\nexport default function SelectFilter({ selectedView, commandInput, setFilters, handleClose, filterGroups, }) {\n const [selectedOptions, setSelectedOptions] = useState([]);\n const getFilteredOptions = (groupName) => {\n const group = filterGroups.find((g) => g.name === groupName);\n if (!group) {\n return [];\n }\n const filteredOptions = group.options || [];\n if (!commandInput.trim()) {\n return filteredOptions;\n }\n if (group.filterBy) {\n const filterLc = commandInput.toLowerCase();\n const results = filteredOptions.filter((option) => {\n if (option.value === undefined)\n return false;\n return group.filterBy?.(option.value, filterLc);\n });\n return results;\n }\n const filterLc = commandInput.toLowerCase();\n return filteredOptions.filter((option) => {\n const optionValue = String(option.value || '').toLowerCase();\n return optionValue.includes(filterLc);\n });\n };\n if (!selectedView) {\n return null;\n }\n const options = getFilteredOptions(selectedView);\n const selectedGroup = filterGroups.find((g) => g.name === selectedView);\n const groupTitle = selectedGroup?.placeholder || selectedGroup?.name;\n const handleApply = () => {\n if (selectedOptions.length > 0) {\n setFilters((prev) => [\n ...prev.filter((f) => f.name !== selectedView),\n {\n name: selectedView || '',\n placeholder: selectedGroup?.placeholder || '',\n value: selectedOptions,\n type: selectedGroup?.type || 'select',\n multiple: selectedGroup?.multiple || false,\n },\n ]);\n }\n handleClose();\n };\n const handleOptionToggle = (option) => {\n const filterOption = {\n value: option.value,\n label: option.label,\n };\n if (selectedGroup?.multiple) {\n // For multiple selection, toggle the option\n const isSelected = selectedOptions.some((opt) => opt.value === option.value);\n if (isSelected) {\n setSelectedOptions((prev) => prev.filter((opt) => opt.value !== option.value));\n }\n else {\n setSelectedOptions((prev) => [...prev, filterOption]);\n }\n }\n else {\n // For single selection, apply immediately\n setFilters((prev) => {\n const existingFilterIndex = prev.findIndex((f) => f.name === selectedView);\n if (existingFilterIndex >= 0) {\n const updatedFilters = [...prev];\n updatedFilters[existingFilterIndex] = {\n ...updatedFilters[existingFilterIndex],\n value: [filterOption],\n };\n return updatedFilters;\n }\n else {\n return [\n ...prev,\n {\n name: selectedView || '',\n placeholder: selectedGroup?.placeholder || '',\n value: [filterOption],\n type: selectedGroup?.type || 'select',\n multiple: selectedGroup?.multiple || false,\n },\n ];\n }\n });\n handleClose();\n }\n };\n return (_jsxs(\"div\", { className: \"flex flex-col h-full\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted shrink-0\", children: _jsx(\"span\", { children: groupTitle }) }), _jsx(\"div\", { className: \"flex-1 overflow-hidden min-h-0\", children: _jsx(\"div\", { className: \"max-h-[200px] overflow-y-auto\", children: options.length > 0 &&\n options.map((option) => {\n const isSelected = selectedOptions.some((opt) => opt.value === option.value);\n return (_jsxs(CommandItem, { className: `group flex gap-2 items-center w-full hover:bg-muted ${selectedGroup?.multiple && isSelected ? 'bg-muted' : ''}`, onSelect: () => handleOptionToggle(option), children: [_jsx(DynamicLabel, { value: option.value || '', labelRenderer: option.labelRenderer || selectedGroup?.labelRenderer, fallbackLabel: option.label }), selectedGroup?.multiple && isSelected && (_jsx(\"span\", { className: \"ms-auto text-xs text-success\", children: \"\\u2713\" }))] }, option.value || `option-${Math.random()}`));\n }) }) }), selectedGroup?.multiple && (_jsx(\"div\", { className: \"p-2 border-t shrink-0\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, disabled: selectedOptions.length === 0, children: \"Apply\" })] }) }))] }));\n}\n//# sourceMappingURL=SelectFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState } from 'react';\nimport { InputList } from '../../../InputList';\nimport { Button } from '../../button';\nexport default function StringListFilter({ selectedView, setFilters, handleClose, filterGroups, }) {\n const [tags, setTags] = useState([]);\n const selectedGroup = filterGroups.find((g) => g.name === selectedView);\n const handleApply = () => {\n if (tags.length > 0) {\n setFilters((prev) => [\n ...prev.filter((f) => f.name !== selectedView),\n {\n name: selectedView,\n placeholder: selectedGroup?.placeholder,\n value: tags,\n type: 'stringList',\n },\n ]);\n }\n handleClose();\n };\n return (_jsxs(\"div\", { className: \"p-2 space-y-3\", children: [_jsx(\"div\", { className: \"space-y-2\", children: _jsx(InputList, { value: tags, onChange: setTags, placeholder: selectedGroup?.placeholder || `Add ${selectedView}...`, autoFocus: true }) }), _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleApply, disabled: tags.length === 0, children: \"Apply\" })] })] }));\n}\n//# sourceMappingURL=StringListFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Button } from '../../button';\nimport { Input } from '../../input';\nexport default function TextFilter({ selectedView, textValue, setTextValue, setFilters, handleClose, filterGroups, }) {\n const handleTextFilterAdd = () => {\n setFilters((prev) => {\n return [\n ...prev,\n {\n name: selectedView || '',\n placeholder: filterGroups.find((group) => group.name === selectedView)?.placeholder,\n value: [{ value: textValue, label: textValue }],\n type: 'text',\n },\n ];\n });\n handleClose();\n };\n return (_jsxs(\"div\", { className: \"p-2 flex flex-col gap-1\", children: [_jsx(\"div\", { className: \"flex items-center p-1.5 text-xs text-muted\", children: _jsx(\"span\", { children: filterGroups.find((group) => group.name === selectedView)?.placeholder }) }), _jsx(Input, { autoFocus: true, type: \"text\", size: \"sm\", value: textValue, onChange: setTextValue, onKeyDown: (e) => e.key === 'Enter' && handleTextFilterAdd(), placeholder: \"Enter text...\" }), _jsx(\"div\", { className: \"mt-2 p-2 border-t\", children: _jsxs(\"div\", { className: \"flex gap-2 justify-end\", children: [_jsx(Button, { variant: \"ghost\", size: \"sm\", onClick: handleClose, children: \"Cancel\" }), _jsx(Button, { size: \"sm\", onClick: handleTextFilterAdd, disabled: !textValue.trim(), children: \"Apply\" })] }) })] }));\n}\n//# sourceMappingURL=TextFilter.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport dayjs from 'dayjs';\nimport { X } from 'lucide-react';\nimport { Button } from '../button';\nimport { DateCombobox, SelectionCombobox, StringListCombobox, TextCombobox } from './comboBox/comboBox';\nfunction generateComboboxOptions(filter, setFilters, filterGroups) {\n switch (filter.type) {\n case 'date':\n return (_jsx(DateCombobox, { filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'object'\n ? filter.value.map((v) => v.value || '')\n : [], isRange: filter.multiple, setFilterValues: (filterValues) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? {\n ...f,\n value: filterValues.length > 0\n ? filterValues.map((dateValue) => ({\n value: dateValue,\n label: dayjs(dateValue).format('LLL dd, y'),\n }))\n : [],\n }\n : f));\n } }));\n case 'text':\n return (_jsx(TextCombobox, { filterType: filter.placeholder || filter.name, filterValue: Array.isArray(filter.value) && filter.value[0] && typeof filter.value[0] === 'object'\n ? filter.value[0].value || ''\n : '', setFilterValue: (textValue) => {\n setFilters((prev) => prev.map((f) => f === filter\n ? {\n ...f,\n value: [\n {\n value: textValue,\n label: textValue,\n },\n ],\n }\n : f));\n } }));\n case 'stringList':\n return (_jsx(StringListCombobox, { filterType: filter.placeholder || filter.name, filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'string'\n ? filter.value\n : [], setFilterValues: (values) => {\n setFilters((prev) => prev.map((f) => (f === filter ? { ...f, value: values } : f)));\n } }));\n default: {\n const filterGroup = filterGroups.find((group) => group.name === filter.name);\n return (_jsx(SelectionCombobox, { filterType: filter.placeholder || filter.name, filterValues: Array.isArray(filter.value) && typeof filter.value[0] === 'object'\n ? filter.value\n : [], setFilterValues: (filterValues) => {\n setFilters((prev) => prev.map((f) => (f === filter ? { ...f, value: filterValues } : f)));\n }, options: filterGroup?.options || [], labelRenderer: filterGroup?.labelRenderer, multiple: filter.multiple ?? filterGroup?.multiple }));\n }\n }\n}\nexport default function Filters({ filters, setFilters, filterGroups }) {\n return (_jsx(\"div\", { className: \"flex gap-2 flex-wrap justify-start\", children: filters\n .filter((filter) => filter.value?.length > 0)\n .map((filter) => (_jsxs(\"div\", { className: \"flex gap-[1px] items-center text-sm\", children: [_jsx(\"div\", { className: \"flex gap-1.5 shrink-0 rounded-s bg-muted p-1.5 h-8 items-center\", children: filter.placeholder || filter.name }), generateComboboxOptions(filter, setFilters, filterGroups), _jsx(Button, { variant: \"ghost\", size: \"icon\", onClick: () => {\n setFilters((prev) => prev.filter((f) => f !== filter));\n }, className: \"bg-muted rounded-s-none rounded-e-sm size-8 hover:text-primary hover:bg-muted/50 transition shrink-0\", children: _jsx(X, { className: \"size-6\" }) })] }, `${filter.name}-${filter.type === 'date' ? 'date' : filter.type === 'stringList' && typeof filter.value[0] === 'string' ? filter.value.join(',') : Array.isArray(filter.value) ? filter.value.map((v) => v.value).join(',') : ''}`))) }));\n}\n//# sourceMappingURL=filters.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport { ListFilter } from 'lucide-react';\nimport React, { useEffect } from 'react';\nimport { cn } from '../../libs/utils';\nimport { Button } from '../button';\nimport { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../command';\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover';\nimport DateFilter from './filter/dateFilter';\nimport SelectFilter from './filter/SelectFilter';\nimport StringListFilter from './filter/StringListFilter';\nimport TextFilter from './filter/TextFilter';\nimport Filters from './filters';\nconst FilterContext = React.createContext({\n filters: [],\n setFilters: () => undefined,\n filterGroups: [],\n});\n// Syncs filters ↔ URL. On mount, captures the initial URL param and restores matching filters\n// incrementally as filterGroups loads. URL writes are blocked until the first filterGroups load\n// so the address bar doesn't flicker. Filters not matching any filterGroup are silently dropped\n// (prevents cross-page URL contamination, e.g. a modal inheriting a parent page's filters).\n// Parse format with array indicators: filterName:value or filterName:[value1,value2]\nconst FilterProvider = ({ filters, setFilters, filterGroups, children, inModal }) => {\n const url = new URL(window.location.href);\n const searchParams = url.searchParams;\n const searchParamsString = searchParams.toString();\n const [initialFiltersParam] = React.useState(() => new URLSearchParams(window.location.search).get('filters'));\n const processedUrlFilters = React.useRef(new Set());\n const hasRestoredFromUrl = React.useRef(inModal || !initialFiltersParam);\n useEffect(() => {\n if (inModal)\n return;\n if (!hasRestoredFromUrl.current)\n return;\n try {\n const params = new URLSearchParams(searchParamsString);\n if (filters.length > 0) {\n const filterString = filters\n .map((filter) => {\n let values;\n if (filter.type === 'stringList' &&\n Array.isArray(filter.value) &&\n typeof filter.value[0] === 'string') {\n values = `[${filter.value.map((item) => encodeURIComponent(item)).join(',')}]`;\n }\n else if (Array.isArray(filter.value)) {\n if (filter.multiple) {\n values = `[${filter.value.map((item) => encodeURIComponent(readFilterValue(item))).join(',')}]`;\n }\n else if (filter.value.length > 1) {\n values = `[${filter.value.map((item) => encodeURIComponent(readFilterValue(item))).join(',')}]`;\n }\n else {\n const firstValue = filter.value[0];\n if (typeof firstValue === 'string') {\n values = encodeURIComponent(firstValue);\n }\n else if (typeof firstValue === 'object' && firstValue?.value !== undefined) {\n values = encodeURIComponent(String(firstValue.value));\n }\n else {\n values = encodeURIComponent(String(firstValue || ''));\n }\n }\n }\n else {\n values = encodeURIComponent(filter.value || '');\n }\n return `${encodeURIComponent(filter.name)}:${values}`;\n })\n .join(';');\n params.set('filters', filterString);\n }\n else {\n params.delete('filters');\n }\n const newUrl = `${window.location.pathname}?${params.toString()}${window.location.hash}`;\n window.history.replaceState(window.history.state || {}, '', newUrl);\n }\n catch (error) {\n console.error('Failed to update URL with filters:', error);\n }\n }, [filters, inModal, searchParamsString]);\n useEffect(() => {\n if (inModal || !initialFiltersParam || filterGroups.length === 0)\n return;\n try {\n const filterPairs = initialFiltersParam.split(';');\n const newFilters = [];\n for (const pair of filterPairs) {\n const [encodedName, valuesString] = pair.split(':');\n const name = decodeURIComponent(encodedName);\n if (processedUrlFilters.current.has(name))\n continue;\n const group = filterGroups.find((g) => g.name === name);\n if (!group)\n continue;\n processedUrlFilters.current.add(name);\n let values;\n if (valuesString.startsWith('[') && valuesString.endsWith(']')) {\n const arrayContent = valuesString.slice(1, -1);\n values = arrayContent\n ? arrayContent.split(',').map((encodedValue) => decodeURIComponent(encodedValue))\n : [];\n }\n else {\n values = [decodeURIComponent(valuesString)];\n }\n let filterValue;\n if (group.type === 'stringList') {\n filterValue = values;\n }\n else if (group.type === 'text') {\n filterValue =\n values.length === 1\n ? [{ value: values[0], label: values[0] }]\n : values.map((value) => ({ value, label: value }));\n }\n else {\n filterValue = values.map((value) => {\n const matchingOption = group.options?.find((opt) => opt.value === value);\n let label = value;\n if (matchingOption?.label) {\n label = String(matchingOption.label);\n }\n else if (matchingOption?.labelRenderer) {\n label = String(matchingOption.labelRenderer(value));\n }\n else if (group.labelRenderer) {\n label = String(group.labelRenderer(value));\n }\n return { value, label };\n });\n }\n if (group.multiple && !valuesString.startsWith('[') && !valuesString.endsWith(']')) {\n if (group.type === 'stringList') {\n filterValue = values;\n }\n else if (!Array.isArray(filterValue)) {\n filterValue = [filterValue];\n }\n }\n newFilters.push({\n name,\n type: group.type,\n placeholder: group.placeholder,\n value: filterValue,\n multiple: group.multiple,\n });\n }\n if (newFilters.length > 0) {\n setFilters((prev) => [...prev, ...newFilters]);\n }\n hasRestoredFromUrl.current = true;\n }\n catch (_error) {\n // ignore parse errors\n }\n }, [filterGroups, inModal, initialFiltersParam, setFilters]);\n return _jsx(FilterContext.Provider, { value: { filters, setFilters, filterGroups }, children: children });\n};\nconst FilterBtn = ({ className }) => {\n const { filters, setFilters, filterGroups } = React.useContext(FilterContext);\n const { t } = useUITranslation();\n const [open, setOpen] = React.useState(false);\n const [selectedView, setSelectedView] = React.useState(null);\n const [commandInput, setCommandInput] = React.useState('');\n const commandInputRef = React.useRef(null);\n const [selectedDate, setSelectedDate] = React.useState();\n const [textValue, setTextValue] = React.useState('');\n const handleSelect = (groupName) => {\n setSelectedView(groupName);\n setCommandInput('');\n commandInputRef.current?.focus();\n };\n const getAvailableFilterGroups = () => {\n const options = filterGroups\n .map((group) => ({\n ...group,\n options: (group.options ?? []).filter((option) => !filters.some((filter) => {\n if (filter.type === 'date') {\n return filter.name === group.name;\n }\n return (filter.name === group.name &&\n (Array.isArray(filter.value) && typeof filter.value[0] === 'string'\n ? filter.value.some((val) => val === option.value)\n : filter.value.some((val) => readFilterValue(val) === option.value)));\n })),\n }))\n .filter((group) => (group.options ?? []).length > 0 ||\n (group.type === 'date' && !filters.some((filter) => filter.name === group.name)) ||\n (group.type === 'text' && !filters.some((filter) => filter.name === group.name)) ||\n (group.type === 'stringList' && !filters.some((filter) => filter.name === group.name)));\n if (options.length === 0) {\n return _jsx(CommandEmpty, { children: t('filter.noAvailableFilters') });\n }\n return options.map((group, index) => (_jsx(CommandItem\n // biome-ignore lint/suspicious/noArrayIndexKey: list order is stable for this render\n , { onSelect: () => handleSelect(group.name), className: \"group flex gap-2 items-center hover:bg-muted\", children: _jsx(\"span\", { children: group.placeholder ?? group.name }) }, index)));\n };\n const handleClose = () => {\n setOpen(false);\n setTimeout(() => {\n setSelectedView(null);\n setCommandInput('');\n setSelectedDate(undefined);\n }, 200);\n };\n const handleOpen = (open) => {\n setOpen(open);\n if (!open) {\n setTimeout(() => {\n setSelectedView(null);\n setCommandInput('');\n setTextValue('');\n }, 200);\n }\n };\n const renderFilterOptions = () => {\n if (!selectedView) {\n return null;\n }\n const selectedGroupType = filterGroups.find((g) => g.name === selectedView)?.type;\n switch (selectedGroupType) {\n case 'date':\n return (_jsx(DateFilter, { selectedView: selectedView, selectedDate: selectedDate, setSelectedDate: setSelectedDate, setFilters: setFilters, filters: filters, handleClose: handleClose, filterGroups: filterGroups }));\n case 'text':\n return (_jsx(TextFilter, { selectedView: selectedView, textValue: textValue, setTextValue: setTextValue, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n case 'stringList':\n return (_jsx(StringListFilter, { selectedView: selectedView, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n default:\n return (_jsx(SelectFilter, { selectedView: selectedView, commandInput: commandInput, setFilters: setFilters, handleClose: handleClose, filterGroups: filterGroups }));\n }\n };\n return (_jsxs(Popover, { _open: open, onOpenChange: handleOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: \"outline\", role: \"combobox\", \"aria-expanded\": open, size: \"md\", className: cn('transition group flex gap-1.5', className), children: [_jsx(ListFilter, { className: \"size-4 shrink-0 transition-all text-muted\" }), t('filter.filter')] }) }), _jsx(PopoverContent, { className: \"w-[300px] p-0\", align: \"start\", sideOffset: 4, children: _jsxs(Command, { children: [filterGroups.find((group) => group.name === selectedView)?.type === 'select' && (_jsx(CommandInput, { placeholder: selectedView\n ? t('filter.filterBy', { view: selectedView })\n : t('filter.filterPlaceholder'), className: \"h-9 ring-0\", value: commandInput, onValueChange: (value) => {\n setCommandInput(value);\n }, ref: commandInputRef, autoFocus: true })), _jsx(CommandList, { children: _jsx(CommandGroup, { children: !selectedView ? getAvailableFilterGroups() : renderFilterOptions() }) })] }) })] }));\n};\nconst FilterBar = ({ className }) => {\n const { filters, setFilters, filterGroups } = React.useContext(FilterContext);\n return (_jsx(\"div\", { className: cn(className), children: _jsx(Filters, { filters: filters, setFilters: setFilters, filterGroups: filterGroups }) }));\n};\nconst FilterClear = ({ className }) => {\n const { filters, setFilters } = React.useContext(FilterContext);\n const { t } = useUITranslation();\n const hasActiveFilters = filters.filter((filter) => filter.value?.length > 0).length > 0;\n if (!hasActiveFilters) {\n return null;\n }\n return (_jsx(Button, { variant: \"outline\", size: \"md\", className: cn('transition group', className), onClick: () => setFilters([]), children: t('filter.clearAll') }));\n};\nfunction readFilterValue(item) {\n return typeof item === 'string' ? item : item.value || '';\n}\nexport { FilterBar, FilterBtn, FilterClear, FilterProvider };\n//# sourceMappingURL=filterBar.js.map","export var FilterOperator;\n(function (FilterOperator) {\n FilterOperator[\"IS\"] = \"is\";\n FilterOperator[\"IS_NOT\"] = \"is_not\";\n FilterOperator[\"CONTAINS\"] = \"contains\";\n FilterOperator[\"BEFORE\"] = \"before\";\n FilterOperator[\"AFTER\"] = \"after\";\n FilterOperator[\"IS_ANY_OF\"] = \"is_any_of\";\n})(FilterOperator || (FilterOperator = {}));\n//# sourceMappingURL=types.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from 'react';\nimport { cn } from '../libs/utils';\nexport const Heading = forwardRef(({ className, level = 3, ...props }, ref) => {\n const Component = `h${level}`;\n const styles = {\n h1: 'text-2xl font-medium tracking-tight',\n h2: 'text-xl font-medium tracking-tight',\n h3: 'text-lg font-medium',\n h4: 'text-base font-medium',\n h5: 'text-sm font-medium',\n h6: 'text-xs font-medium',\n };\n return _jsx(Component, { ref: ref, className: cn(styles[`h${level}`], 'mb-2', className), ...props });\n});\nHeading.displayName = 'Heading';\n//# sourceMappingURL=heading.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { isEqual } from 'lodash-es';\nimport { AlertTriangle, Check, ChevronsUpDown, LoaderCircle, SearchIcon, SquarePlus, X } from 'lucide-react';\nimport { useEffect, useId, useMemo, useRef, useState } from 'react';\nimport { Button } from './button';\nimport { Command, CommandEmpty, CommandGroup, CommandItem, CommandList } from './command';\nimport { Input } from './input';\nimport { Popover, PopoverClose, PopoverContent, PopoverTrigger } from './popover';\nimport { VTooltip } from './tooltip';\nexport function SelectBox({ options, optionLabel, value, onChange, addNew, addNewLabel, disabled, filterBy, label, placeholder, className, popupClass, isClearable, border = true, multiple = false, by, inline = false, isLoading = false, warnOnMissingValue = true, missingValueWarning = 'Value not in options list, may not be valid', clearIcon, clearTitle, 'aria-label': ariaLabelProp, 'aria-labelledby': ariaLabelledByProp, id: idProp, 'aria-describedby': ariaDescribedByProp, 'aria-invalid': ariaInvalidProp, }) {\n const wrapperRef = useRef(null);\n const [open, setOpen] = useState(false);\n const [width, setWidth] = useState(0);\n const [filterValue, setFilterValue] = useState('');\n const popupId = useId();\n const labelId = useId();\n // Check if value is in options list (for single select only)\n const isMissingValue = useMemo(() => {\n if (!warnOnMissingValue || multiple || value == null || !options)\n return false;\n // Use the isOptionsEqual helper which respects the 'by' comparator\n return !options.some((opt) => {\n if (typeof by === 'string') {\n return getProperty(opt, by) === getProperty(value, by);\n }\n else if (typeof by === 'function') {\n return by(opt, value);\n }\n else {\n return isEqual(opt, value);\n }\n });\n }, [warnOnMissingValue, multiple, value, options, by]);\n useEffect(() => {\n const element = wrapperRef.current;\n if (!element) {\n return;\n }\n const updateWidth = () => {\n const contentWidth = element.getBoundingClientRect().width;\n setWidth(contentWidth);\n };\n const resizeObserver = new ResizeObserver(() => {\n updateWidth();\n });\n updateWidth();\n resizeObserver.observe(element);\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n const _onClick = (opt) => {\n if (multiple) {\n const currentValues = Array.isArray(value) ? value : [];\n const isSelected = isOptionSelected(opt, currentValues);\n if (isSelected) {\n // Remove from selection\n const newValues = currentValues.filter((v) => !isOptionsEqual(v, opt));\n onChange(newValues);\n }\n else {\n // Add to selection\n onChange([...currentValues, opt]);\n }\n // Don't close the popover in multiple mode\n }\n else {\n // Single-select non-inline: PopoverClose (in the rendered CommandItem) dispatches\n // the close to Radix, which calls onOpenChange and updates our `open` mirror.\n onChange(opt);\n }\n };\n // Helper function to check if an option is selected\n const isOptionSelected = (option, selectedValues) => {\n if (!selectedValues || selectedValues.length === 0)\n return false;\n return selectedValues.some((v) => isOptionsEqual(v, option));\n };\n // Helper function to compare options for equality\n const isOptionsEqual = (a, b) => {\n // Handle null/undefined values\n if (a == null || b == null) {\n return a === b;\n }\n if (typeof by === 'string') {\n return getProperty(a, by) === getProperty(b, by);\n }\n else if (typeof by === 'function') {\n return by(a, b);\n }\n else {\n return isEqual(a, b);\n }\n };\n let filteredOptions = options || [];\n function getFilterByFn(filterBy) {\n if (!filterBy) {\n return (o) => String(o).toLowerCase();\n }\n else if (typeof filterBy === 'string') {\n return (o) => String(getProperty(o, filterBy)).toLowerCase();\n }\n else {\n return filterBy;\n }\n }\n const filterLc = filterValue.toLowerCase();\n const filterFn = getFilterByFn(filterBy);\n filteredOptions = filteredOptions.filter((o) => filterFn(o).includes(filterLc));\n const renderSingleValue = () => {\n if (!value || (Array.isArray(value) && value.length === 0)) {\n return _jsx(\"span\", { className: \"text-muted\", children: placeholder });\n }\n const singleValue = Array.isArray(value) ? value[0] : value;\n return optionLabel ? optionLabel(singleValue) : singleValue;\n };\n const renderMultipleValue = () => {\n const arrayValue = Array.isArray(value) ? value : value ? [value] : [];\n if (arrayValue.length === 0) {\n return _jsx(\"span\", { className: \"text-muted\", children: placeholder });\n }\n if (arrayValue.length === 1) {\n return optionLabel ? optionLabel(arrayValue[0]) : arrayValue[0];\n }\n return (_jsxs(\"div\", { className: \"flex flex-wrap gap-1\", children: [arrayValue.slice(0, 1).map((item, index) => (_jsx(\"span\", { className: \"inline-flex items-center gap-1 px-2 py-1 text-xs bg-muted rounded\", children: optionLabel ? optionLabel(item) : item }, index))), arrayValue.length > 1 && (_jsxs(\"span\", { className: \"inline-flex items-center px-2 py-1 text-xs bg-muted rounded\", children: [\"+\", arrayValue.length - 1, \" more\"] }))] }));\n };\n // Render the options list content\n const renderOptionsContent = () => (_jsxs(_Fragment, { children: [filterBy && (_jsxs(\"div\", { className: \"flex justify-start items-center mb-1\", children: [_jsx(\"div\", { className: \"mx-2\", children: _jsx(SearchIcon, { className: \"size-4\" }) }), _jsx(Input, { variant: \"unstyled\", value: filterValue, onChange: setFilterValue, className: \"w-full p-1 rounded-md\", placeholder: \"Search...\" })] })), _jsx(Command, { className: \"overflow-hidden\", children: _jsxs(CommandList, { className: inline ? 'max-h-full overflow-y-auto' : 'max-h-[200px] overflow-y-auto', onWheel: (e) => {\n e.currentTarget.scrollTop += e.deltaY;\n }, children: [_jsx(CommandEmpty, { children: \"No result found.\" }), _jsx(CommandGroup, { children: filteredOptions?.map((opt, index) => {\n const isSelected = multiple\n ? isOptionSelected(opt, Array.isArray(value) ? value : [])\n : value != null\n ? isOptionsEqual(value, opt)\n : false;\n return (_jsx(CommandItem\n // biome-ignore lint/suspicious/noArrayIndexKey: list order is stable for this render\n , { onSelect: () => _onClick(opt), className: \"w-full\", children: multiple || inline ? (_jsxs(\"div\", { className: \"w-full flex justify-between items-center cursor-pointer\", children: [_jsx(\"div\", { className: \"w-full truncate text-start\", children: optionLabel ? optionLabel(opt) : opt }), isSelected && _jsx(Check, { className: \"size-4\" })] })) : (_jsxs(PopoverClose, { className: \"w-full flex justify-between items-center\", children: [_jsx(\"div\", { className: \"w-full truncate text-start\", children: optionLabel ? optionLabel(opt) : opt }), isSelected && _jsx(Check, { className: \"size-4\" })] })) }, index));\n }) })] }) }), addNew && (_jsx(\"div\", { className: \"p-1\", children: _jsxs(\"button\", { type: \"button\", onClick: addNew, className: clsx('w-full text-start gap-x-2 px-2 py-1.5 truncate group flex rounded-md items-center text-sm cursor-pointer hover:bg-accent bg-transparent border-0'), children: [_jsx(SquarePlus, { size: 16, strokeWidth: 1.25, absoluteStrokeWidth: true }), addNewLabel] }) }))] }));\n if (inline) {\n return (_jsx(\"div\", { className: clsx(className, border && 'border border-border rounded-md', 'bg-popover p-1', popupClass), children: isLoading ? (_jsx(\"div\", { className: \"flex justify-center items-center p-2 text-muted text-sm\", children: _jsx(LoaderCircle, { className: \"size-4 animate-spin\" }) })) : (renderOptionsContent()) }));\n }\n // Accessible name resolution: explicit aria-label > visual label text > none.\n // When `label` is set we also expose it via aria-labelledby pointing at the\n // visible label element rendered inside the trigger.\n const hasVisualLabel = !!label;\n const ariaLabel = ariaLabelProp ?? (hasVisualLabel ? undefined : typeof placeholder === 'string' ? placeholder : undefined);\n const ariaLabelledBy = ariaLabelledByProp ?? (hasVisualLabel ? labelId : undefined);\n const showClear = !!isClearable && !!value && (Array.isArray(value) ? value.length > 0 : true);\n // aria-invalid resolves to true if either the consumer set it or the\n // internal missing-value check fires. Either truthy yields \"true\".\n const ariaInvalid = ariaInvalidProp === true || ariaInvalidProp === 'true' || isMissingValue\n ? true\n : ariaInvalidProp === false || ariaInvalidProp === 'false'\n ? false\n : undefined;\n return (_jsxs(Popover, { onOpenChange: setOpen, children: [_jsxs(\"div\", { ref: wrapperRef, className: clsx('relative', className), children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(\"button\", { type: \"button\", id: idProp, disabled: disabled || isLoading, \"aria-haspopup\": \"dialog\", \"aria-expanded\": open, \"aria-controls\": popupId, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedByProp, \"aria-invalid\": ariaInvalid, className: clsx(isLoading\n ? 'flex w-full justify-center items-center gap-2 border border-border rounded-md p-2 text-muted text-sm bg-transparent'\n : clsx(border &&\n (isMissingValue || ariaInvalid\n ? 'border border-destructive'\n : 'border border-border'), 'flex w-full flex-row gap-2 items-center justify-between p-2 rounded-md group bg-transparent text-inherit text-start', 'focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring', !disabled ? 'cursor-pointer hover:bg-muted' : 'cursor-not-allowed text-muted', \n // Leave room for the absolutely-positioned clear button on the right.\n showClear && 'pe-10')), children: isLoading ? (_jsx(LoaderCircle, { className: \"size-4 animate-spin\" })) : (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: clsx('flex flex-col w-full rounded-md text-sm min-h-6 items-center justify-center truncate'), children: [label && (_jsx(\"div\", { id: labelId, className: \"w-full text-start text-xs font-semibold\", children: label })), _jsxs(\"div\", { className: clsx('w-full text-start ', isMissingValue && 'text-destructive'), children: [isMissingValue && (_jsx(VTooltip, { description: missingValueWarning, placement: \"top\", asChild: true, children: _jsx(AlertTriangle, { className: \"inline-block size-4 me-1 -mt-0.5 cursor-help\" }) })), multiple ? renderMultipleValue() : renderSingleValue()] })] }), !disabled && (_jsx(ChevronsUpDown, { className: \"size-4 opacity-50 shrink-0\", \"aria-hidden\": \"true\" }))] })) }) }), showClear && !isLoading && (_jsx(Button, { variant: \"link\", size: \"icon\", disabled: disabled, \"aria-label\": clearTitle || 'Clear selection', onClick: (e) => {\n e.stopPropagation();\n if (multiple) {\n onChange([]);\n }\n else {\n onChange(undefined);\n }\n }, onKeyDown: (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n }\n }, className: \"absolute end-8 top-1/2 -translate-y-1/2 hover:bg-muted/20 rounded p-1\", children: clearIcon ? clearIcon : _jsx(X, { className: \"size-4\" }) }))] }), _jsx(PopoverContent, { id: popupId, style: { width: `${width}px`, zIndex: 1000000 }, className: clsx('min-w-[8rem] w-64 bg-popover p-1 border shadow', 'divide-y divide-border', popupClass), children: renderOptionsContent() })] }));\n}\nfunction getProperty(value, key) {\n return typeof value === 'object' && value !== null ? value[key] : undefined;\n}\n//# sourceMappingURL=selectBox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n// IMPORTANT: this MUST import via the @vertesia/ui/i18n subpath, not a\n// relative path. The Rollup config externalizes @vertesia/ui/* subpaths via\n// regex; a relative `../../../i18n/index.js` would bundle the entire i18n\n// module (including LanguageProviderContext) into vertesia-ui-core.js,\n// creating a private context separate from the one the shell mounts.\n// setLanguage would then no-op.\nimport { SUPPORTED_LANGUAGES, useLanguage, useUITranslation } from '@vertesia/ui/i18n';\nimport { SelectBox } from './selectBox';\n/**\n * Endonyms (a language's name written in itself). Kept as plain strings — they\n * intentionally do NOT go through i18n, since each label should render in its\n * own script regardless of the active locale.\n */\nconst ENDONYMS = {\n ar: 'العربية',\n de: 'Deutsch',\n en: 'English',\n es: 'Español',\n fr: 'Français',\n it: 'Italiano',\n ja: '日本語',\n ko: '한국어',\n pt: 'Português',\n ru: 'Русский',\n tr: 'Türkçe',\n zh: '中文',\n 'zh-TW': '繁體中文',\n};\nexport function LanguageSwitcher({ label, className } = {}) {\n const { language, setLanguage } = useLanguage();\n const { t } = useUITranslation();\n const resolvedLabel = label === false ? false : (label ?? t('language.label'));\n return (_jsxs(\"div\", { className: className ?? (resolvedLabel ? 'flex justify-between px-2 items-center gap-3' : 'flex items-center'), children: [resolvedLabel && _jsx(\"p\", { className: \"text-sm font-semibold\", children: resolvedLabel }), _jsx(SelectBox, { options: SUPPORTED_LANGUAGES, value: language, onChange: (next) => setLanguage(next), optionLabel: (option) => ENDONYMS[option], placeholder: t('language.placeholder'), isClearable: false, warnOnMissingValue: false, className: \"min-w-40\" })] }));\n}\n//# sourceMappingURL=LanguageSwitcher.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva } from 'class-variance-authority';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nconst labelVariants = cva('text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70');\nconst Label = React.forwardRef(({ className, required, ...props }, ref) => (_jsxs(LabelPrimitive.Root, { ref: ref, className: cn(labelVariants(), className), ...props, children: [props.children, required && _jsx(\"span\", { className: \"text-destructive-foreground ms-1\", children: \"*\" })] })));\nLabel.displayName = LabelPrimitive.Root.displayName;\nexport { Label };\n//# sourceMappingURL=label.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AlertTriangle, CircleCheck, CircleX, Info } from 'lucide-react';\nimport { Button } from './button';\nexport function MessageBox({ icon, status, title, children, className }) {\n let defaultIcon, titleColor, textColor, bgColor;\n switch (status) {\n case 'error': {\n defaultIcon = _jsx(CircleX, { className: \"size-5 text-destructive\", \"aria-hidden\": \"true\" });\n titleColor = 'text-destructive';\n textColor = 'text-foreground';\n bgColor = 'bg-destructive border border-destructive';\n break;\n }\n case 'warning': {\n defaultIcon = _jsx(AlertTriangle, { className: \"size-5 text-attention\", \"aria-hidden\": \"true\" });\n titleColor = '';\n textColor = 'text-foreground';\n bgColor = 'bg-attention border border-attention';\n break;\n }\n case 'success': {\n defaultIcon = _jsx(CircleCheck, { className: \"size-5 text-success\", \"aria-hidden\": \"true\" });\n titleColor = '';\n textColor = 'text-foreground';\n bgColor = 'bg-success border border-success';\n break;\n }\n case 'info': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-info\", \"aria-hidden\": \"true\" });\n titleColor = '';\n textColor = 'text-foreground';\n bgColor = 'bg-info border border-info';\n break;\n }\n case 'default': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-muted\", \"aria-hidden\": \"true\" });\n titleColor = '';\n textColor = 'text-foreground';\n bgColor = 'bg-muted border border-muted';\n break;\n }\n case 'done': {\n defaultIcon = _jsx(Info, { className: \"size-5 text-done\", \"aria-hidden\": \"true\" });\n titleColor = '';\n textColor = 'text-foreground';\n bgColor = 'bg-done border border-done';\n break;\n }\n }\n return (_jsx(\"div\", { className: `rounded-md p-4 ${bgColor} ${className}`, children: _jsxs(\"div\", { className: \"flex\", children: [_jsx(\"div\", { className: \"shrink-0\", children: icon ?? defaultIcon }), _jsxs(\"div\", { className: \"w-full ms-2 px-1\", children: [title && _jsx(\"h3\", { className: `text-md font-medium mb-2 ${titleColor}`, children: title }), _jsx(\"div\", { className: `text-sm ${textColor} break-words`, children: children })] })] }) }));\n}\nexport function ErrorBox({ title, className, children, action, actionLabel, }) {\n return (_jsxs(MessageBox, { status: \"error\", title: title, className: `${className} flex flex-col items-center justify-center text-center`, children: [_jsx(\"pre\", { className: \"whitespace-pre-wrap break-words\", children: children }), action && actionLabel && (_jsx(Button, { onClick: action, variant: \"ghost\", size: \"sm\", className: \"mt-4\", children: actionLabel }))] }));\n}\nexport function InfoBox({ title, className, children, }) {\n return (_jsx(MessageBox, { status: \"info\", title: title, className: className, children: children }));\n}\nexport function WarningBox({ title, className, children, }) {\n return (_jsx(MessageBox, { status: \"warning\", title: title, className: className, children: children }));\n}\nexport function SuccessBox({ title, className, children, }) {\n return (_jsx(MessageBox, { status: \"success\", title: title, className: className, children: children }));\n}\nexport function DefaultBox({ title, className, children, }) {\n return (_jsx(MessageBox, { status: \"default\", title: title, className: className, children: children }));\n}\n//# sourceMappingURL=MessageBox.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport { TriangleAlert } from 'lucide-react';\nimport { useRef } from 'react';\nimport { Button } from '../button';\nimport { Modal, ModalFooter, ModalTitle } from './dialog';\nexport function ConfirmModal({ title, content, onConfirm, onCancel, isOpen, isLoading }) {\n const { t } = useUITranslation();\n const cancelButtonRef = useRef(null);\n return (_jsxs(Modal, { isOpen: isOpen, onClose: onCancel, description: \"Confirm Modal\", children: [_jsxs(\"div\", { className: \"sm:flex sm:items-start p-2\", children: [_jsx(\"div\", { className: \"mx-auto flex h-12 w-12 shrink-0 items-center justify-center rounded-full bg-red-100 sm:mx-0 sm:h-10 sm:w-10\", children: _jsx(TriangleAlert, { className: \"size-6 text-red-600\", \"aria-hidden\": \"true\" }) }), _jsxs(\"div\", { className: \"mt-3 text-center sm:ms-4 sm:mt-0 sm:text-start\", children: [_jsx(ModalTitle, { className: \"leading-6\", show: true, children: title }), _jsx(\"div\", { className: \"mt-2\", children: _jsx(\"div\", { className: \"prose text-sm text-gray-500\", children: content }) })] })] }), _jsxs(ModalFooter, { align: \"right\", children: [_jsx(Button, { variant: \"destructive\", onClick: onConfirm, isLoading: isLoading, children: t('modal.confirm') }), _jsx(Button, { variant: \"outline\", onClick: onCancel, ref: cancelButtonRef, children: t('modal.cancel') })] })] }));\n}\n//# sourceMappingURL=ConfirmModal.js.map","import { createContext, useContext } from 'react';\nexport function useToast() {\n return useContext(ToastContext);\n}\nconst ToastContext = createContext(() => { });\nexport { ToastContext };\n//# sourceMappingURL=ToastContext.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { AlertTriangle, CircleCheck, CircleX, Info, X } from 'lucide-react';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nconst icons = {\n success: CircleCheck,\n error: CircleX,\n warning: AlertTriangle,\n info: Info,\n};\nconst colors = {\n success: 'text-success',\n error: 'text-destructive',\n warning: 'text-attention',\n info: 'text-info',\n};\nexport function NotificationPanel({ data, onClose }) {\n const [show, setShow] = useState(true);\n const timeoutRef = useRef(null);\n const clearCurrentTimeout = useCallback(() => {\n if (timeoutRef.current) {\n globalThis.clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n }, []);\n const resetTimeout = useCallback(() => {\n clearCurrentTimeout();\n if (data.duration) {\n timeoutRef.current = setTimeout(() => setShow(false), data.duration);\n }\n }, [clearCurrentTimeout, data.duration]);\n useEffect(() => {\n resetTimeout();\n return clearCurrentTimeout;\n }, [clearCurrentTimeout, resetTimeout]);\n const Icon = icons[data.status] || Info;\n const color = colors[data.status] || 'text-info';\n // Global notification live region, render this permanently at the end of the document\n return (_jsx(\"div\", { \"aria-live\": \"assertive\", className: \"pointer-events-none fixed inset-0 flex items-end px-4 py-6 sm:items-start sm:p-6 z-100\", children: _jsx(\"div\", { className: \"flex w-full flex-col items-center space-y-4 sm:items-end\", children: _jsx(AnimatePresence, { onExitComplete: onClose, children: show && (_jsx(motion.div, { className: \"pointer-events-auto w-full max-w-md overflow-hidden rounded-lg bg-muted shadow-lg ring-1 ring-border\", initial: { opacity: 0, x: 8 }, animate: { opacity: 1, x: 0, transition: { ease: 'easeOut', duration: 0.7 } }, exit: { opacity: 0, transition: { ease: 'easeIn', duration: 0.3 } }, onMouseEnter: clearCurrentTimeout, onMouseLeave: resetTimeout, children: _jsx(\"div\", { className: \"p-5\", children: _jsxs(\"div\", { className: \"flex items-start\", children: [_jsx(\"div\", { className: \"shrink-0\", children: _jsx(Icon, { className: `size-6 ${color}`, \"aria-hidden\": \"true\" }) }), _jsxs(\"div\", { className: \"ms-3 flex-1 pt-0.5 min-w-0\", children: [_jsx(\"p\", { className: \"text-sm font-semibold text-foreground break-words\", children: data.title }), data.description && (_jsx(\"p\", { className: \"mt-2 text-sm text-muted break-words whitespace-pre-wrap leading-relaxed\", children: data.description }))] }), _jsx(\"div\", { className: \"ms-4 flex shrink-0\", children: _jsxs(\"button\", { type: \"button\", className: \"inline-flex rounded-md bg-muted text-muted hover:text-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background\", onClick: () => setShow(false), children: [_jsx(\"span\", { className: \"sr-only\", children: \"Close\" }), _jsx(X, { className: \"size-5\", \"aria-hidden\": \"true\" })] }) })] }) }) })) }) }) }));\n}\n//# sourceMappingURL=NotificationPanel.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useState } from 'react';\nimport { Portal } from '../Portal.js';\nimport { NotificationPanel } from './NotificationPanel.js';\nimport { ToastContext } from './ToastContext.js';\nexport function ToastProvider({ children }) {\n const [data, setData] = useState(null);\n // Stable reference: consumers (`useToast`) place this fn in useEffect /\n // useCallback dep arrays. Without useCallback, ToastProvider re-renders\n // (e.g. after setData fires from a `toast(...)` call) produce a NEW fn\n // identity, cascading into broken-effect loops in callers — most notably\n // DocumentUploadModal's `processFiles` useCallback, which would re-fire\n // its open-effect on every toast, looping POST /api/v1/objects/find.\n const toast = useCallback((next) => {\n setData(next);\n }, []);\n return (_jsxs(_Fragment, { children: [_jsx(ToastContext.Provider, { value: toast, children: children }), data && (_jsx(Portal, { children: _jsx(NotificationPanel, { data: data, onClose: () => toast(null) }) }))] }));\n}\n//# sourceMappingURL=ToastProvider.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport { useToast } from '../../toast/index.js';\nimport { ConfirmModal } from './ConfirmModal.js';\nexport function DeleteModal({ idToDelete, title, content, setIdToDelete, deleteApi }) {\n const { t } = useUITranslation();\n const toast = useToast();\n const doDelete = async () => {\n if (!idToDelete) {\n return;\n }\n return deleteApi(idToDelete)\n .then(() => {\n toast({\n title: t('modal.delete.succeeded'),\n status: 'success',\n });\n })\n .catch((err) => {\n toast({\n title: t('modal.delete.failed'),\n description: err instanceof Error ? err.message : t('modal.delete.error'),\n status: 'error',\n });\n })\n .finally(() => {\n setIdToDelete(undefined);\n });\n };\n return (_jsx(ConfirmModal, { title: title, content: content, isOpen: !!idToDelete, onConfirm: doDelete, onCancel: () => {\n setIdToDelete(undefined);\n } }));\n}\n//# sourceMappingURL=DeleteModal.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { ChevronDown, ChevronUp, Info } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from './button';\nimport { VTooltip } from './tooltip';\nexport function Panel({ children, action, title, description, footer, className, collapsible, defaultCollapsed = false, size = 'md', clickableHeader = false, }) {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n const useClickableHeader = collapsible && clickableHeader;\n const isSmall = size === 'sm';\n // When compact or using a clickable header, manage padding per-section so\n // the header button can be flush with the card edge.\n const sectioned = isSmall || useClickableHeader;\n const chevron = isCollapsed ? (_jsx(ChevronDown, { className: \"size-4 text-muted\" })) : (_jsx(ChevronUp, { className: \"size-4 text-muted\" }));\n const headerInner = (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: \"flex items-center gap-2\", children: [_jsx(\"div\", { className: `font-semibold ${isSmall ? 'text-sm' : 'text-lg'}`, children: title }), description && (_jsx(VTooltip, { description: description, children: _jsx(Info, { className: \"size-4 text-muted\" }) }))] }), _jsxs(\"div\", { className: \"flex gap-2 items-center\", children: [action, collapsible &&\n (useClickableHeader ? (chevron) : (_jsx(Button, { variant: \"ghost\", size: \"icon\", onClick: () => setIsCollapsed(!isCollapsed), children: chevron })))] })] }));\n const headerPadding = isSmall ? 'px-4 py-2' : 'px-4 py-3';\n const contentPadding = isSmall ? 'px-4 pt-3 pb-3' : 'p-4';\n const footerPadding = isSmall ? 'px-4 pb-3' : 'px-4 pb-4';\n return (_jsxs(\"div\", { className: `flex flex-col ${sectioned ? '' : 'p-4 gap-2'} rounded-sm border bg-card ${useClickableHeader ? 'overflow-hidden' : ''} ${className ?? ''}`, children: [useClickableHeader ? (_jsx(\"button\", { type: \"button\", className: `w-full flex items-center justify-between ${headerPadding} hover:bg-muted/50 transition-colors`, onClick: () => setIsCollapsed(!isCollapsed), children: headerInner })) : (_jsx(\"div\", { className: `flex items-center justify-between ${sectioned ? headerPadding : ''}`, children: headerInner })), !isCollapsed && (sectioned ? _jsx(\"div\", { className: contentPadding, children: children }) : children), footer && (_jsx(\"div\", { className: `border-t border-muted flex flex-col-2 text-sm pt-4 ${sectioned ? footerPadding : ''}`, children: footer }))] }));\n}\n//# sourceMappingURL=Panel.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { cn } from '../libs/utils';\nfunction RadioGroupItem({ className, ...props }) {\n return (_jsx(RadioGroupPrimitive.Item, { \"data-slot\": \"radio-group-item\", className: cn('border-input dark:bg-input/30 data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 flex size-4 rounded-full focus-visible:ring-3 aria-invalid:ring-3 group/radio-group-item peer relative aspect-square shrink-0 border outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50', className), ...props, children: _jsx(RadioGroupPrimitive.Indicator, { \"data-slot\": \"radio-group-indicator\", className: \"flex size-4 items-center justify-center\", children: _jsx(\"span\", { className: \"bg-primary-foreground absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full\" }) }) }));\n}\nexport class RadioGroupAdapter {\n descriptionOf(_item) {\n return undefined;\n }\n selectedClassName(_item) {\n return 'border-accent-foreground';\n }\n}\nfunction RadioGroup({ onSelect, selected, options, adapter }) {\n const getId = (o) => (adapter ? adapter.idOf(o) : o.id);\n const getLabel = (o) => (adapter ? adapter.labelOf(o) : o.label);\n const getDescription = (o) => adapter ? adapter.descriptionOf(o) : o.description;\n const getSelectedClass = (o) => (adapter ? adapter.selectedClassName(o) : 'border-primary');\n return (_jsx(RadioGroupPrimitive.Root, { \"data-slot\": \"radio-group\", value: selected ? getId(selected) : undefined, onValueChange: (id) => {\n const option = options.find((o) => getId(o) === id);\n if (option)\n onSelect(option);\n }, className: \"space-y-4\", children: options.map((option) => {\n const isSelected = selected ? getId(selected) === getId(option) : false;\n return (_jsx(RadioGroupPrimitive.Item, { value: getId(option), className: cn('relative block w-full cursor-pointer rounded-lg border border-border bg-accent px-6 py-4 shadow-2xs text-start', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'sm:flex sm:justify-between', isSelected && getSelectedClass(option)), children: _jsx(\"span\", { className: \"flex items-center\", children: _jsxs(\"span\", { className: \"flex flex-col text-sm\", children: [_jsx(\"span\", { className: \"font-medium text-text\", children: getLabel(option) }), getDescription(option) && (_jsx(\"span\", { className: \"text-muted-foreground\", children: getDescription(option) }))] }) }) }, getId(option)));\n }) }));\n}\nexport { RadioGroup, RadioGroupItem };\n//# sourceMappingURL=radioGroup.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Minus } from 'lucide-react';\nimport * as ResizablePrimitive from 'react-resizable-panels';\nimport { cn } from '../libs/utils';\nfunction ResizablePanelGroup({ className, direction = 'horizontal', orientation, ...props }) {\n const resolvedOrientation = orientation ?? direction;\n return (_jsx(ResizablePrimitive.Group, { \"data-slot\": \"resizable-panel-group\", \"data-panel-group-direction\": resolvedOrientation, orientation: resolvedOrientation, className: cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', className), ...props }));\n}\nfunction ResizablePanel({ ...props }) {\n return _jsx(ResizablePrimitive.Panel, { \"data-slot\": \"resizable-panel\", ...props });\n}\nfunction ResizableHandle({ withHandle, className, ...props }) {\n return (_jsx(ResizablePrimitive.Separator, { \"data-slot\": \"resizable-handle\", className: cn(\n // rtl-ok: after:left-1/2 + after:-translate-x-1/2 is symmetric centering\n 'bg-muted focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:start-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90', className), ...props, children: withHandle && (_jsx(\"div\", { className: \"z-10 flex size-4 items-center justify-center rounded-xs font-semibold\", children: _jsx(Minus, { className: \"size-4 rotate-90\" }) })) }));\n}\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n//# sourceMappingURL=resizeable.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nconst Separator = React.forwardRef(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (_jsx(SeparatorPrimitive.Root, { ref: ref, decorative: decorative, orientation: orientation, className: cn('shrink-0 bg-border', orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]', className), ...props })));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\nexport { Separator };\n//# sourceMappingURL=separator.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as SliderPrimitive from '@radix-ui/react-slider';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nconst Slider = React.forwardRef(({ className, trackClassName, rangeClassName, thumbClassName, value, defaultValue, min = 0, max = 100, 'aria-label': ariaLabel, ...props }, ref) => {\n const id = React.useId();\n const thumbCount = Array.isArray(value) ? value.length : Array.isArray(defaultValue) ? defaultValue.length : 1;\n const thumbKeys = React.useMemo(() => Array.from({ length: Math.max(1, thumbCount) }, (_, thumbIndex) => `${id}-thumb-${thumbIndex}`), [id, thumbCount]);\n return (_jsxs(SliderPrimitive.Root, { ref: ref, \"data-slot\": \"slider\", value: value, defaultValue: defaultValue, min: min, max: max, ...props, className: cn('relative flex w-full touch-none select-none items-center data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col', className), children: [_jsx(SliderPrimitive.Track, { \"data-slot\": \"slider-track\", className: cn('relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5', trackClassName), children: _jsx(SliderPrimitive.Range, { \"data-slot\": \"slider-range\", className: cn('absolute h-full bg-primary data-[orientation=vertical]:w-full', rangeClassName) }) }), thumbKeys.map((thumbKey) => (_jsx(SliderPrimitive.Thumb, { \"data-slot\": \"slider-thumb\", \"aria-label\": ariaLabel, className: cn('block size-3.5 rounded-full border border-primary bg-background shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', thumbClassName) }, thumbKey)))] }));\n});\nSlider.displayName = SliderPrimitive.Root.displayName;\nexport { Slider };\n//# sourceMappingURL=slider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\nimport { cn } from '../libs/utils';\n// Thumb slide distance — physical translate-x in LTR, mirrored in RTL so the\n// thumb slides toward the start of the track in both directions.\nconst sizes = {\n sm: ['h-5 w-8', 'size-3', 'translate-x-4 rtl:-translate-x-4'],\n md: ['h-6 w-11', 'size-4', 'translate-x-6 rtl:-translate-x-6'],\n lg: ['h-8 w-16', 'size-6', 'translate-x-9 rtl:-translate-x-9'],\n};\nfunction Switch({ className, size = 'md', value, onChange, children, disabled, ...ariaProps }) {\n const [trackSize, thumbSize, thumbTranslate] = sizes[size];\n const switchEl = (_jsx(SwitchPrimitive.Root, { \"data-slot\": \"switch\", checked: value, onCheckedChange: onChange, disabled: disabled, ...ariaProps, className: cn('data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 shrink-0 rounded-full border focus-visible:ring-3 aria-invalid:ring-3 peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50', trackSize, !children && className), children: _jsx(SwitchPrimitive.Thumb, { \"data-slot\": \"switch-thumb\", className: cn('bg-white rounded-full pointer-events-none block ring-0 transition-transform', thumbSize, value ? thumbTranslate : 'translate-x-1 rtl:-translate-x-1') }) }));\n if (children) {\n return (_jsxs(\"div\", { className: cn('flex items-center', className), children: [switchEl, _jsx(\"span\", { className: \"px-2\", children: children })] }));\n }\n return switchEl;\n}\nexport { Switch };\n//# sourceMappingURL=switch.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport * as React from 'react';\nimport { cn } from '../libs/utils';\nimport { SelectBox } from './selectBox';\nconst TabsContext = React.createContext({\n size: undefined,\n tabs: undefined,\n current: undefined,\n setTab: undefined,\n responsive: false,\n variant: 'tabs',\n updateHash: true,\n});\nconst Tabs = ({ tabs, defaultValue, current, className, fullWidth, fullHeight, children, onTabChange, responsive = false, variant = 'tabs', updateHash = true, }) => {\n // Filter tabs based on is_allowed (undefined or true means visible)\n const visibleTabs = React.useMemo(() => tabs.filter((tab) => tab.is_allowed === undefined || tab.is_allowed === true), [tabs]);\n // Initialize value\n const [value, setValue] = React.useState(() => {\n // First check if current is provided\n const currentValue = typeof current === 'function' ? current() : current;\n if (currentValue) {\n return currentValue;\n }\n // Then check hash\n const hash = window.location.hash;\n const currentTab = hash ? hash.substring(1) : undefined;\n // Check if the tab from hash exists in visible tabs\n if (currentTab && visibleTabs.some((tab) => tab.name === currentTab)) {\n return currentTab;\n }\n // Fall back to default or first visible tab\n return defaultValue || visibleTabs[0]?.name;\n });\n // Update when current prop changes (but don't create a loop)\n React.useEffect(() => {\n const currentValue = typeof current === 'function' ? current() : current;\n if (currentValue && currentValue !== value) {\n setValue(currentValue);\n }\n }, [current, value]);\n // Listen to hash changes only when there's no current prop being controlled externally\n React.useEffect(() => {\n if (current)\n return; // Skip hash handling if controlled by parent\n const handleHashChange = () => {\n const hash = window.location.hash;\n const currentTab = hash ? hash.substring(1) : undefined;\n // Only update if the tab exists in visible tabs\n if (currentTab && visibleTabs.some((tab) => tab.name === currentTab)) {\n setValue(currentTab);\n }\n else if (!hash && defaultValue) {\n // If no hash, fall back to default\n setValue(defaultValue);\n }\n };\n // Check initial hash\n handleHashChange();\n window.addEventListener('hashchange', handleHashChange);\n return () => window.removeEventListener('hashchange', handleHashChange);\n }, [current, visibleTabs, defaultValue]);\n const handleValueChange = React.useCallback((newValue) => {\n setValue(newValue);\n // Update the URL hash when tab changes (only if updateHash is true and not controlled by parent)\n if (updateHash && !current) {\n // Preserve existing history state when changing hash\n const currentState = window.history.state;\n const newUrl = `${window.location.pathname + window.location.search}#${newValue}`;\n window.history.pushState(currentState, '', newUrl);\n }\n if (onTabChange) {\n onTabChange(newValue);\n }\n }, [current, onTabChange, updateHash]);\n const setTab = React.useCallback((tabName) => {\n handleValueChange(tabName);\n }, [handleValueChange]);\n return (_jsx(TabsContext.Provider, { value: {\n tabs: visibleTabs,\n size: fullWidth ? visibleTabs.length : 0,\n current: value,\n setTab,\n responsive: responsive,\n variant,\n updateHash,\n }, children: _jsx(TabsPrimitive.Root, { defaultValue: value || visibleTabs[0]?.name, value: value, onValueChange: handleValueChange, className: cn('flex-1 flex flex-col min-h-0 px-2', fullHeight && 'h-full', className), children: children }) }));\n};\nconst TabsBar = ({ className, sticky, direction }) => {\n const { tabs, size, current, setTab, responsive, variant, updateHash } = React.useContext(TabsContext);\n const fullWidth = size !== 0;\n const handleTabChange = React.useCallback((tabName) => {\n if (!tabs || !setTab)\n return;\n const tab = tabs.find((t) => t.name === tabName);\n if (tab?.href && updateHash) {\n // Preserve existing history state when changing tabs\n const currentState = window.history.state;\n window.history.pushState(currentState, '', tab.href);\n }\n setTab(tabName);\n }, [tabs, setTab, updateHash]);\n if (!tabs || !setTab) {\n console.warn('TabsBar: No tabs provided or setTab not available');\n return null;\n }\n return (_jsxs(_Fragment, { children: [responsive && (_jsx(\"div\", { className: \"px-2 block lg:hidden\", children: _jsx(SelectBox, { label: \"Tab\", className: cn(sticky && 'sticky top-0 bg-background z-10', className), options: tabs, optionLabel: (tab) => (typeof tab.label === 'string' ? tab.label : String(tab.label)), value: tabs.find((tab) => tab.name === current), onChange: (tab) => {\n handleTabChange(tab.name);\n } }) })), _jsx(TabsList, { size: size, variant: variant, className: cn(fullWidth ? 'w-full' : '', sticky && 'sticky top-0 bg-background z-10', direction === 'vertical' ? 'flex-col items-start' : 'flex-row', responsive ? 'hidden lg:flex' : '', className), children: tabs.map((tab) => (_jsx(TabsTrigger, { className: cn(direction === 'vertical' ? 'w-full text-start' : ''), value: tab.name, disabled: tab.disabled, href: tab.href, variant: variant, onClick: () => handleTabChange(tab.name), children: tab.label }, tab.name))) })] }));\n};\nconst TabsPanel = ({ className }) => {\n const { tabs } = React.useContext(TabsContext);\n if (!tabs)\n return null;\n return (_jsx(_Fragment, { children: tabs.map((tab) => (_jsx(TabsContent, { value: tab.name, className: className, children: tab.content }, tab.name))) }));\n};\nconst TabsList = React.forwardRef(({ className, size, variant = 'tabs', ...props }, ref) => (_jsx(TabsContext.Provider, { value: { size, variant }, children: _jsx(TabsPrimitive.List, { ref: ref, className: cn(variant === 'tabs' ? 'border-b -mb-px flex space-x-4' : 'flex space-x-2 p-1 rounded-md', className), ...props }) })));\nTabsList.displayName = TabsPrimitive.List.displayName;\nconst TabsTrigger = React.forwardRef(({ className, href, variant = 'tabs', ...props }, ref) => {\n const { size } = React.useContext(TabsContext);\n const handleClick = React.useCallback((event) => {\n if (href) {\n event.preventDefault();\n // Preserve existing history state when changing tabs\n const currentState = window.history.state;\n window.history.pushState(currentState, '', href);\n }\n if (props.onClick) {\n props.onClick(event);\n }\n }, [href, props.onClick]);\n return (_jsx(TabsPrimitive.Trigger, { ref: ref, className: cn(variant === 'tabs'\n ? cn('border-b-2 px-2 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer', 'border-transparent text-muted-foreground hover:border-border hover:text-foreground', 'data-[state=active]:border-primary data-[state=active]:text-primary', 'disabled:pointer-events-none disabled:opacity-50')\n : cn('px-3 py-1.5 text-sm font-medium whitespace-nowrap cursor-pointer rounded-sm transition-colors', 'tborder border-input bg-muted shadow-xs hover:bg-muted ring-inset', 'data-[state=active]:bg-primary data-[state=active]:text-white data-[state=active]:shadow-sm', 'disabled:pointer-events-none disabled:opacity-50'), className, size ? `w-1/${size}` : ''), onClick: handleClick, ...props }));\n});\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\nconst TabsContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(TabsPrimitive.Content, { ref: ref, className: cn('focus-visible:outline-none', 'flex-1 overflow-y-auto min-h-0 pt-2 pb-4', className), ...props })));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\nexport { Tabs, TabsBar, TabsContent, TabsList, TabsPanel, TabsTrigger };\n//# sourceMappingURL=tabs.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { cva } from 'class-variance-authority';\nimport { forwardRef } from 'react';\nimport { cn } from '../libs/utils';\n// Update the text variants to match the new sizing requirements\nconst textVariants = cva('text-foreground', {\n variants: {\n size: {\n xl: 'text-base md:text-lg leading-relaxed',\n lg: 'text-base leading-relaxed',\n default: 'text-sm leading-normal',\n sm: 'text-sm leading-normal',\n xs: 'text-xs leading-normal',\n },\n weight: {\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n },\n },\n defaultVariants: {\n size: 'default',\n weight: 'normal',\n },\n});\nexport const Text = forwardRef(({ className, size, weight, ...props }, ref) => {\n return _jsx(\"p\", { ref: ref, className: cn(textVariants({ size, weight, className })), ...props });\n});\nText.displayName = 'Text';\n//# sourceMappingURL=text.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useLayoutEffect, useRef } from 'react';\nimport { cn } from '../libs/utils';\nfunction Textarea({ className, minLines, maxLines, value, ...props }) {\n const textareaRef = useRef(null);\n const growing = minLines !== undefined || maxLines !== undefined;\n const resize = useCallback(() => {\n const el = textareaRef.current;\n if (!el)\n return;\n const style = getComputedStyle(el);\n const lineHeight = parseFloat(style.lineHeight) || parseFloat(style.fontSize) * 1.5;\n const paddingTop = parseFloat(style.paddingTop) || 0;\n const paddingBottom = parseFloat(style.paddingBottom) || 0;\n const paddingY = paddingTop + paddingBottom;\n const borderTop = parseFloat(style.borderTopWidth) || 0;\n const borderBottom = parseFloat(style.borderBottomWidth) || 0;\n const borderY = borderTop + borderBottom;\n const effectiveMin = minLines ?? 1;\n const effectiveMax = maxLines ?? Infinity;\n const minHeight = effectiveMin * lineHeight + paddingY + borderY;\n const maxHeight = effectiveMax === Infinity ? Infinity : effectiveMax * lineHeight + paddingY + borderY;\n el.style.height = 'auto';\n const contentHeight = Math.min(Math.max(el.scrollHeight, minHeight), maxHeight);\n el.style.height = `${contentHeight}px`;\n el.style.overflowY = maxHeight !== Infinity && el.scrollHeight > maxHeight ? 'auto' : 'hidden';\n }, [minLines, maxLines]);\n useLayoutEffect(() => {\n if (growing)\n resize();\n });\n return (_jsx(\"textarea\", { ref: textareaRef, \"data-slot\": \"textarea\", value: value, className: cn('py-2 text-sm', 'flex w-full rounded-md border border-input bg-background ring-offset-background', 'placeholder:text-muted focus-visible:outline-none focus-visible:ring-1 ring-inset focus-visible:ring-ring', 'disabled:cursor-not-allowed disabled:opacity-50', growing && 'resize-none', className), ...props }));\n}\nexport { Textarea };\n//# sourceMappingURL=textarea.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createContext, useContext, useEffect, useState } from 'react';\nconst initialState = {\n theme: 'system',\n setTheme: () => null,\n};\nconst ThemeProviderContext = createContext(initialState);\nexport { ThemeProviderContext };\nexport function ThemeProvider({ children, defaultTheme = 'system', storageKey = 'vite-ui-theme', ...props }) {\n const [theme, setTheme] = useState(() => localStorage.getItem(storageKey) || defaultTheme);\n useEffect(() => {\n const root = window.document.documentElement;\n root.classList.remove('light', 'dark');\n if (theme === 'system') {\n const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n root.classList.add(systemTheme);\n return;\n }\n root.classList.add(theme);\n }, [theme]);\n const value = {\n theme,\n setTheme: (theme) => {\n localStorage.setItem(storageKey, theme);\n setTheme(theme);\n },\n };\n return (_jsx(ThemeProviderContext.Provider, { ...props, value: value, children: children }));\n}\nexport const useTheme = () => {\n const context = useContext(ThemeProviderContext);\n if (context === undefined)\n throw new Error('useTheme must be used within a ThemeProvider');\n return context;\n};\n//# sourceMappingURL=ThemeProvider.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport { Computer, Moon, Sun } from 'lucide-react';\nimport { Button } from '../button';\nimport { useTheme } from './ThemeProvider';\nexport function ModeOption({ option, current, setTheme, icon, alt }) {\n return (_jsx(Button, { variant: current === option ? 'secondary' : 'outline', size: \"sm\", onClick: () => setTheme(option), alt: alt, children: icon }));\n}\nexport function ModeToggle({ label, className } = {}) {\n const { setTheme, theme } = useTheme();\n const { t } = useUITranslation();\n const resolvedLabel = label === false ? false : (label ?? t('theme.label'));\n return (_jsxs(\"div\", { className: className ?? (resolvedLabel ? 'flex justify-between px-2 items-center' : 'flex items-center gap-1'), children: [resolvedLabel && _jsx(\"p\", { className: \"text-sm font-semibold\", children: resolvedLabel }), _jsxs(\"div\", { className: \"flex gap-2\", children: [_jsx(ModeOption, { current: theme, option: \"system\", setTheme: setTheme, icon: _jsx(Computer, {}), alt: t('theme.system') }), _jsx(ModeOption, { current: theme, option: \"light\", setTheme: setTheme, icon: _jsx(Sun, {}), alt: t('theme.light') }), _jsx(ModeOption, { current: theme, option: \"dark\", setTheme: setTheme, icon: _jsx(Moon, {}), alt: t('theme.dark') })] })] }));\n}\n//# sourceMappingURL=ThemeSwitcher.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useUITranslation } from '@vertesia/ui/i18n';\nimport clsx from 'clsx';\nimport { Check } from 'lucide-react';\nimport { useMemo, useState } from 'react';\nimport { Button, Input } from './shadcn';\nconst Default_Option_Style = 'flex-1 px-2 py-2 hover:bg-accent nowrap';\nfunction defaultOptionLayout(option, isSelected) {\n return {\n label: String(option),\n check: isSelected ? _jsx(Check, { className: \"size-4\" }) : _jsx(\"div\", { className: \"size-4\" }),\n reverse: false,\n className: Default_Option_Style,\n };\n}\nexport function SelectList({ value, options, onChange, className, optionLayout, by, noCheck, filterBy, }) {\n const { t } = useUITranslation();\n const [selected, setSelected] = useState(value);\n const [filterValue, setFilterValue] = useState('');\n const onSelect = (option) => {\n setSelected(option);\n onChange(option);\n };\n const optionEquals = useMemo(() => {\n if (typeof by === 'string') {\n return (o1, o2) => o1[by] === o2[by];\n }\n else if (!by) {\n return (o1, o2) => o1 === o2;\n }\n else {\n return by;\n }\n }, [by]);\n return (_jsxs(\"div\", { className: clsx('', className), children: [filterBy && (_jsx(Input, { type: \"text\", placeholder: t('form.filter'), value: filterValue, onChange: (value) => setFilterValue(value) })), options.map((option, i) => {\n if (filterBy && !filterBy(filterValue)(option)) {\n return null;\n }\n const isSelected = selected ? optionEquals(selected, option) : false;\n let layout;\n if (optionLayout) {\n layout = optionLayout(option, isSelected);\n layout = Object.assign(defaultOptionLayout(option, isSelected), layout);\n }\n else {\n layout = defaultOptionLayout(option, isSelected);\n }\n return (_jsx(SelectListOption, { option: option, onSelect: onSelect, layout: layout, noCheck: noCheck }, i));\n })] }));\n}\nfunction SelectListOption({ option, onSelect, layout, noCheck }) {\n return (_jsxs(Button, { variant: \"unstyled\", size: \"none\", className: clsx('group !flex w-full items-center cursor-pointer gap-x-2 hover:bg-muted', layout.reverse && 'flex-row-reverse', layout.className), onClick: () => onSelect(option), children: [noCheck ? null : _jsx(\"div\", { className: \"\", children: layout.check }), _jsx(\"div\", { className: \"flex-1\", children: layout.label })] }));\n}\n//# sourceMappingURL=SelectList.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { Minus, X } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from './shadcn/button';\nexport function SidePanel({ isOpen, title, onClose, children, panelWidth = 768, backdrop = false, side = 'right', resizable = true, className, contentClassName, }) {\n const [_panelWidth, setPanelWidth] = useState(panelWidth);\n const handleDragStart = (e) => {\n e.preventDefault();\n let isDragging = true;\n const startX = e.pageX;\n const startWidth = _panelWidth;\n const handleMouseMove = (e) => {\n if (isDragging) {\n const deltaX = startX - e.pageX;\n const newWidth = Math.max(startWidth + deltaX, 480);\n setPanelWidth(newWidth);\n }\n };\n const handleMouseUp = () => {\n isDragging = false;\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n };\n // The `side` prop is PHYSICAL ('left' | 'right') — the panel anchors to\n // that physical edge regardless of dir. Callers that want a logical\n // start-anchored panel in RTL should pass `side='right'` explicitly (see\n // AppLayout.tsx). Using physical classes here keeps the contract honest;\n // the codemod (and inventory in strict mode) is exempted via rtl-ok.\n const isLeft = side === 'left';\n // rtl-ok: physical-side prop maps 1:1 to physical CSS\n const positionClass = isLeft ? 'left-0' : 'right-0';\n // rtl-ok: padding/border/drag-handle mirror the physical side of the panel\n const paddingClass = isLeft ? 'pr-10 sm:pr-16' : 'pl-10 sm:pl-16';\n // rtl-ok: see above\n const borderClass = isLeft ? 'border-r' : 'border-l';\n // rtl-ok: see above\n const dragHandleClass = isLeft ? '-right-1' : '-left-1';\n const initialX = isLeft ? '-100%' : '100%';\n return (_jsx(AnimatePresence, { children: isOpen && (_jsxs(\"div\", { className: \"relative z-20\", children: [backdrop && (_jsx(motion.div, { className: \"fixed inset-0 bg-black/70\", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: onClose })), _jsx(\"div\", { className: `fixed inset-y-0 ${positionClass} overflow-hidden`, children: _jsx(\"div\", { className: \"absolute inset-0 overflow-hidden\", children: _jsx(\"div\", { className: `pointer-events-none fixed inset-y-0 ${positionClass} flex max-w-full ${paddingClass}`, children: _jsx(motion.div, { className: `pointer-events-auto ${borderClass}`, style: { width: `${_panelWidth}px` }, initial: { x: initialX }, animate: { x: 0 }, exit: { x: initialX }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: _jsxs(\"div\", { className: \"relative flex h-full\", children: [resizable && (_jsx(\"div\", { \"aria-label\": \"Resize panel\", className: `absolute ${dragHandleClass} top-0 bottom-0 w-3 z-25 cursor-ew-resize hover:bg-indigo-500 transition-colors flex items-center justify-center`, onMouseDown: handleDragStart, children: _jsx(Minus, { className: \"rotate-90 font-semibold\", strokeWidth: 4 }) })), _jsxs(\"div\", { className: `flex-1 min-w-0 flex flex-col bg-background shadow-xl ${className}`, children: [title && (_jsx(\"div\", { className: \"sticky top-0 z-10 bg-background px-2 sm:px-4 py-2 border-b\", children: _jsxs(\"div\", { className: \"flex items-start justify-between\", children: [_jsx(\"h2\", { className: \"w-full text-base font-semibold leading-6\", children: _jsx(\"div\", { className: \"text-2xl\", children: title ?? '' }) }), _jsx(\"div\", { className: \"ms-3 flex h-7 items-center\", children: _jsx(CloseButton, { onClose: onClose }) })] }) })), _jsx(\"div\", { className: contentClassName ?? 'flex-1 overflow-auto px-2 sm:px-4 py-4', children: _jsx(\"div\", { className: \"w-full h-full flex-1 flex flex-col\", children: children }) })] })] }) }) }) }) })] })) }));\n}\nfunction CloseButton({ onClose }) {\n return (_jsx(Button, { alt: \"Close panel\", variant: \"ghost\", onClick: onClose, children: _jsx(X, { className: \"size-6\", \"aria-hidden\": \"true\" }) }));\n}\n//# sourceMappingURL=SidePanel.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nfunction getRealSize(size) {\n switch (size) {\n case 'xs':\n return 'size-2';\n case 'sm':\n return 'size-3';\n case 'md':\n return 'size-4';\n case 'lg':\n return 'size-5';\n case 'xl':\n return 'size-7';\n case '2xl':\n return 'size-10';\n default:\n throw new Error(`Unexpected size: ${size}`);\n }\n}\nexport function Spinner({ size, className }) {\n const sizeClass = getRealSize(size || 'md');\n return (_jsxs(\"svg\", { className: clsx('animate-[spin_0.8s_linear_infinite] text-indigo-500', sizeClass, className), xmlns: \"http://www.w3.org/2000/svg\", fill: \"none\", viewBox: \"0 0 24 24\", role: \"img\", \"aria-label\": \"Loading\", children: [_jsx(\"title\", { children: \"Loading\" }), _jsx(\"circle\", { className: \"opacity-25\", cx: \"12\", cy: \"12\", r: \"10\", stroke: \"currentColor\", strokeWidth: \"4\" }), _jsx(\"path\", { className: \"opacity-75\", fill: \"currentColor\", d: \"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" })] }));\n}\n//# sourceMappingURL=Spinner.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nimport { X } from 'lucide-react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { onActivateKey } from '../utils/a11y.js';\nimport { Button } from './shadcn/button';\nimport { Popover, PopoverContent, PopoverContext, PopoverTrigger } from './shadcn/popover';\nfunction TagsInputContent({ options, value, onChange, onOptionsChange, placeholder, className, disabled, layout = 'horizontal', creatable = false, createText = 'Create \"%value%\"', maxDropdownHeight = 200, }) {\n const popoverContext = useContext(PopoverContext);\n const [searchTerm, setSearchTerm] = useState('');\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n const [width, setWidth] = useState(0);\n const [pendingDeleteIndex, setPendingDeleteIndex] = useState(null);\n const inputRef = useRef(null);\n const triggerRef = useRef(null);\n const dropdownRef = useRef(null);\n const highlightedItemRef = useRef(null);\n const isOpen = popoverContext?.open ?? false;\n const setIsOpen = popoverContext?.setOpen ?? (() => { });\n // Measure trigger width for popover\n useEffect(() => {\n const element = triggerRef.current;\n if (!element)\n return;\n const updateWidth = () => {\n const contentWidth = element.getBoundingClientRect().width;\n setWidth(contentWidth);\n };\n const resizeObserver = new ResizeObserver(() => {\n updateWidth();\n });\n updateWidth();\n resizeObserver.observe(element);\n return () => {\n resizeObserver.disconnect();\n };\n }, []);\n // Filter options based on search term and exclude already selected\n const filteredOptions = options.filter((option) => !value.includes(option) && option.toLowerCase().includes(searchTerm.toLowerCase()));\n // Check if create option should be shown\n const showCreateOption = creatable && searchTerm && !value.includes(searchTerm) && !options.includes(searchTerm);\n // Total number of items (filtered options + create option if shown)\n const totalItems = filteredOptions.length + (showCreateOption ? 1 : 0);\n // Clear pending delete when user starts typing\n useEffect(() => {\n if (searchTerm !== '') {\n setPendingDeleteIndex(null);\n }\n }, [searchTerm]);\n // Scroll highlighted item into view\n useEffect(() => {\n if (isOpen && highlightedIndex >= 0 && highlightedItemRef.current && dropdownRef.current) {\n highlightedItemRef.current.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n });\n }\n }, [highlightedIndex, isOpen]);\n // Clear search term when popover closes and refocus input when it opens\n useEffect(() => {\n if (!isOpen) {\n setSearchTerm('');\n }\n else {\n // Ensure input stays focused when popover opens\n inputRef.current?.focus();\n }\n }, [isOpen]);\n const handleSelect = (option) => {\n onChange([...value, option]);\n setSearchTerm('');\n setIsOpen(false);\n setHighlightedIndex(0);\n setPendingDeleteIndex(null);\n };\n const handleCreate = (newTag) => {\n // Add to value\n onChange([...value, newTag]);\n // Add to options if callback provided\n if (onOptionsChange && !options.includes(newTag)) {\n onOptionsChange([...options, newTag]);\n }\n setSearchTerm('');\n setIsOpen(false);\n setHighlightedIndex(0);\n setPendingDeleteIndex(null);\n };\n const handleRemove = (option, e) => {\n e.stopPropagation();\n onChange(value.filter((v) => v !== option));\n setPendingDeleteIndex(null);\n };\n const handleKeyDown = (e) => {\n // Handle special keys\n if (e.key === 'Enter' && isOpen && totalItems > 0) {\n e.preventDefault();\n e.stopPropagation();\n // Check if we're selecting the create option\n if (highlightedIndex === filteredOptions.length && showCreateOption) {\n handleCreate(searchTerm);\n }\n else if (highlightedIndex < filteredOptions.length) {\n handleSelect(filteredOptions[highlightedIndex]);\n }\n return;\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n e.stopPropagation();\n if (!isOpen) {\n setIsOpen(true);\n }\n else {\n setHighlightedIndex((prev) => (prev < totalItems - 1 ? prev + 1 : prev));\n }\n return;\n }\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n e.stopPropagation();\n if (!isOpen) {\n setIsOpen(true);\n }\n else {\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : 0));\n }\n return;\n }\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setIsOpen(false);\n return;\n }\n if (e.key === 'Backspace' && searchTerm === '' && value.length > 0) {\n // Two-step deletion: first backspace marks for deletion, second backspace deletes\n e.stopPropagation();\n const lastIndex = value.length - 1;\n if (pendingDeleteIndex === lastIndex) {\n // Second backspace: actually delete the item\n onChange(value.slice(0, -1));\n setPendingDeleteIndex(null);\n }\n else {\n // First backspace: mark for deletion\n setPendingDeleteIndex(lastIndex);\n }\n return;\n }\n // For any other key (typing characters), open dropdown\n if (!isOpen && e.key.length === 1) {\n setIsOpen(true);\n }\n };\n const handleInputClick = (e) => {\n e.stopPropagation();\n if (!disabled) {\n setIsOpen(true);\n }\n };\n const handleInputFocus = () => {\n if (!disabled) {\n setIsOpen(true);\n }\n };\n const handleContainerClick = () => {\n if (!disabled) {\n inputRef.current?.focus();\n }\n };\n return (_jsxs(\"div\", { className: clsx('relative', className), children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(\"div\", { ref: triggerRef, className: clsx('min-h-[40px] w-full rounded-md border border-input bg-background px-3 py-2', 'flex items-center gap-1', layout === 'horizontal' ? 'flex-wrap' : 'flex-col items-stretch', 'cursor-text', 'ring-offset-background', disabled && 'opacity-50 cursor-not-allowed', isOpen ? 'ring-1 ring-inset ring-ring' : ''), onClick: handleContainerClick, children: [layout === 'vertical' && value.length > 0 && (_jsx(\"div\", { className: \"flex flex-col gap-1 w-full\", children: value.map((item, index) => (_jsxs(\"span\", { className: clsx('inline-flex items-center justify-between gap-2 px-2 py-1 text-sm bg-primary/10 text-primary rounded-md w-full transition-all', pendingDeleteIndex === index &&\n 'ring-2 ring-red-300 shadow-[0_0_8px_rgba(252,165,165,0.5)]'), children: [_jsx(\"span\", { className: \"truncate\", children: item }), _jsx(\"button\", { type: \"button\", onClick: (e) => handleRemove(item, e), disabled: disabled, className: \"hover:bg-primary/20 rounded-sm transition-colors flex-shrink-0\", children: _jsx(X, { className: \"h-3 w-3\" }) })] }, item))) })), layout === 'horizontal' &&\n value.map((item, index) => (_jsxs(\"span\", { className: clsx('inline-flex items-center gap-1 px-2 py-1 text-sm bg-primary/10 text-primary rounded-md transition-all', pendingDeleteIndex === index &&\n 'ring-2 ring-red-300 shadow-[0_0_8px_rgba(252,165,165,0.5)]'), children: [item, _jsx(\"button\", { type: \"button\", onClick: (e) => handleRemove(item, e), disabled: disabled, className: \"hover:bg-primary/20 rounded-sm transition-colors\", children: _jsx(X, { className: \"h-3 w-3\" }) })] }, item))), _jsx(\"input\", { ref: inputRef, type: \"text\", value: searchTerm, onChange: (e) => {\n setSearchTerm(e.target.value);\n setHighlightedIndex(0);\n }, onKeyDown: handleKeyDown, onClick: handleInputClick, onFocus: handleInputFocus, disabled: disabled, placeholder: value.length === 0 ? placeholder : '', className: clsx('flex-1 min-w-[120px] bg-transparent text-sm', 'placeholder:text-muted-foreground', 'border-none outline-none focus:outline-none focus:ring-0 p-0 m-0', layout === 'vertical' && 'w-full') })] }) }), _jsx(PopoverContent, { style: { width: `${width}px` }, className: \"p-0 bg-popover border border-border shadow-lg\", align: \"start\", side: \"bottom\", onOpenAutoFocus: (e) => {\n // Prevent the popover from stealing focus from the input\n e.preventDefault();\n }, children: _jsx(\"div\", { ref: dropdownRef, className: \"overflow-y-auto\", style: { maxHeight: `${maxDropdownHeight}px` }, children: filteredOptions.length === 0 && !showCreateOption ? (_jsx(\"div\", { className: \"px-3 py-2 text-sm text-muted-foreground\", children: searchTerm ? 'No options found' : 'No more options available' })) : (_jsxs(_Fragment, { children: [filteredOptions.length > 0 && (_jsx(\"ul\", { className: \"py-1\", children: filteredOptions.map((option, index) => (_jsx(\"li\", { ref: (el) => {\n if (index === highlightedIndex) {\n highlightedItemRef.current = el;\n }\n }, \n // biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: ARIA listbox pattern uses <li role=\"option\"> for combobox suggestions\n role: \"option\", \"aria-selected\": index === highlightedIndex, tabIndex: 0, onClick: () => handleSelect(option), onKeyDown: onActivateKey(() => handleSelect(option)), onMouseEnter: () => setHighlightedIndex(index), className: clsx('px-3 py-2 text-sm cursor-pointer transition-colors', index === highlightedIndex\n ? 'bg-blue-500/20 text-foreground'\n : 'hover:bg-accent/50'), children: option }, option))) })), showCreateOption && (_jsxs(_Fragment, { children: [filteredOptions.length > 0 && _jsx(\"div\", { className: \"border-t border-border\" }), _jsx(Button, { ref: (el) => {\n if (highlightedIndex === filteredOptions.length) {\n highlightedItemRef.current = el;\n }\n }, variant: \"unstyled\", size: \"none\", onClick: () => handleCreate(searchTerm), onMouseEnter: () => setHighlightedIndex(filteredOptions.length), className: clsx('!flex w-full justify-start px-3 py-2 text-sm cursor-pointer transition-colors text-primary', highlightedIndex === filteredOptions.length\n ? 'bg-blue-500/20'\n : 'hover:bg-accent/50'), children: createText.replace('%value%', searchTerm) })] }))] })) }) })] }));\n}\nexport function TagsInput(props) {\n return (_jsx(Popover, { click: true, children: _jsx(TagsInputContent, { ...props }) }));\n}\n//# sourceMappingURL=TagsInput.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport clsx from 'clsx';\nconst defaultTableCass = `\ndivide-y divide-border\n[&>tbody]:divide-y [&>tbody]:divide-border\n[&_th]:text-start [&_th]:px-3 [&_th]:py-3.5 [&_th]:text-sm [&_th]:font-normal [&_th]:text-muted-foreground\n[&_td]:px-3 [&_td]:py-4 [&_td]:text-sm\n`;\nexport function Table({ className, children, ...others }) {\n return (_jsx(\"table\", { className: clsx(defaultTableCass, className), ...others, children: children }));\n}\nexport function THead({ children }) {\n return (_jsx(\"thead\", { className: \"sticky top-0 bg-background z-10 after:absolute after:bottom-0 after:start-0 after:w-full after:h-px after:bg-muted/20\", children: children }));\n}\nexport function RowSkeleton({ columns }) {\n return (_jsx(\"tr\", { className: \"hover:bg-muted\", children: Array(columns)\n .fill(0)\n .map((_, index) => (_jsx(\"td\", { children: _jsx(\"div\", { className: \"animate-pulse rounded-xs h-5 bg-muted\" }) }, index))) }));\n}\nexport function TBody({ isLoading = false, columns, rows = 3, children }) {\n const skeletonRows = Array.from({ length: rows }, (_, index) => `skeleton-row-${index}`);\n return (_jsx(\"tbody\", { children: isLoading ? skeletonRows.map((key) => _jsx(RowSkeleton, { columns: columns }, key)) : children }));\n}\nexport function TR({ className, children, ...others }) {\n return (_jsx(\"tr\", { className: clsx('hover:bg-muted hover:cursor-pointer', className), ...others, children: children }));\n}\n/**\n * Header cell. Defaults to scope=\"col\" so screen readers associate column\n * cells with their header. Pass scope=\"row\" for row headers.\n */\nexport function TableHeaderCell({ scope = 'col', children, ...others }) {\n return (_jsx(\"th\", { scope: scope, ...others, children: children }));\n}\n/**\n * Sortable header cell. Renders the trigger as a real <button> inside the\n * <th> and exposes the current sort direction via aria-sort on the <th>\n * (the WAI-ARIA-recommended pattern). The button is keyboard-operable\n * automatically — no onKeyDown plumbing required.\n */\nexport function SortableTableHeaderCell({ sortDirection = 'none', onSort, sortIndicator, disabled = false, children, className, scope = 'col', ...others }) {\n return (_jsx(\"th\", { scope: scope, \"aria-sort\": sortDirection, className: className, ...others, children: disabled ? (_jsxs(\"span\", { className: \"inline-flex items-center gap-1\", children: [children, sortIndicator?.(sortDirection)] })) : (_jsxs(\"button\", { type: \"button\", onClick: onSort, className: \"inline-flex items-center gap-1 bg-transparent border-0 p-0 m-0 text-inherit font-inherit cursor-pointer hover:underline focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring rounded-sm\", children: [children, sortIndicator?.(sortDirection)] })) }));\n}\n//# sourceMappingURL=index.js.map","import React, { useContext, useEffect, useState } from 'react';\n//type KeysOfType<T, V> = { [K in keyof T]-?: T[K] extends V ? K : never }[keyof T];\n//type KeysNotOfType<T, V> = { [K in keyof T]-?: T[K] extends V ? never : K }[keyof T];\nexport class Property {\n _value;\n watchers = [];\n /**\n * Optional name for debugging purposes.\n * When provided, changes to this property will be logged to the console in development mode,\n * making it easier to track state changes and debug reactive updates.\n *\n * Example: new Property<string>('', 'streamingText')\n * Will log: [CompositeState] streamingText: \"\" → \"new value\"\n */\n name;\n constructor(value, name) {\n this._value = value;\n this.name = name;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n if (value !== this._value) {\n this._value = value;\n for (const watcher of this.watchers) {\n watcher(value);\n }\n }\n }\n watch(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter((w) => w !== watcher);\n };\n }\n}\nexport function createCompositeStateProvider(StateClass) {\n const context = React.createContext(undefined);\n StateClass.Context = context;\n return context.Provider;\n}\nexport class Slot {\n consume = undefined;\n _current;\n constructor(content) {\n this._current = content;\n }\n set current(content) {\n if (content !== this._current) {\n this._current = content;\n this.consume?.(content);\n }\n }\n get current() {\n return this._current;\n }\n withConsumer(consume) {\n this.consume = consume;\n consume?.(this.current);\n return this;\n }\n}\nexport function useCompositeState(StateClass) {\n const context = StateClass.Context;\n if (!context) {\n throw new Error(`Context not defined for ${StateClass.name}`);\n }\n return useContext(context);\n}\nexport function useGetCompositeStateProperty(property) {\n const [value, setValue] = useState(property.value);\n useEffect(() => {\n return property.watch((value) => {\n if (typeof value === 'function') {\n setValue(() => value); // cannot directly store functions\n }\n else {\n setValue(value);\n }\n });\n }, [property]);\n return value;\n}\n// use memo on value to avoid re-computations if needed\nexport function useSetCompositeStateProperty(property, value) {\n useEffect(() => {\n property.value = value;\n return () => {\n property.value = undefined;\n };\n }, [property, value]);\n return value;\n}\n// use memo on watcher to avoid re-computations if needed\nexport function useWatchCompositeStateProperty(property, watcher) {\n useEffect(() => {\n return property.watch(watcher);\n }, [property, watcher]);\n}\nexport function useSlot(slot) {\n const [value, setValue] = useState(slot.current);\n useEffect(() => {\n slot.withConsumer(setValue);\n return () => {\n slot.withConsumer(undefined);\n };\n }, [slot]);\n return value;\n}\nexport function useWatchSlot(slot, watcher) {\n useEffect(() => {\n slot.withConsumer(watcher);\n return () => {\n slot.withConsumer(undefined);\n };\n }, [slot, watcher]);\n}\n// use memo for value if needed\nexport function useDefineSlot(slot, value) {\n useEffect(() => {\n slot.current = value;\n return () => {\n slot.current = undefined;\n };\n }, [slot, value]);\n}\n/**\n * Computed property that derives its value from other properties.\n * Automatically recalculates when any of its dependencies change.\n *\n * Think of it like a spreadsheet formula: if cell A1 = 5 and A2 = 10,\n * then A3 = A1 + A2 will automatically update to 15. If A1 changes to 7,\n * A3 automatically becomes 17.\n *\n * @example Basic usage\n * ```typescript\n * class MyState {\n * count = new Property(0, 'count');\n * multiplier = new Property(2, 'multiplier');\n *\n * // Automatically recalculates when count or multiplier changes\n * result = new ComputedProperty(\n * () => (this.count.value || 0) * (this.multiplier.value || 0),\n * [this.count, this.multiplier],\n * 'result'\n * );\n * }\n *\n * state.count.value = 5; // result automatically becomes 10\n * state.multiplier.value = 3; // result automatically becomes 15\n * ```\n *\n * @example Derived state\n * ```typescript\n * class EditorState {\n * workingCopy = new Property<Interaction>();\n * sourceInteraction = new Property<Interaction>();\n *\n * // Automatically true when workingCopy differs from source\n * isDirty = new ComputedProperty(\n * () => JSON.stringify(this.workingCopy.value) !==\n * JSON.stringify(this.sourceInteraction.value),\n * [this.workingCopy, this.sourceInteraction],\n * 'isDirty'\n * );\n * }\n * ```\n *\n * @example Cascading computed properties\n * ```typescript\n * class State {\n * a = new Property(1);\n * b = new Property(2);\n * sum = new ComputedProperty(() => a.value + b.value, [a, b]);\n * doubled = new ComputedProperty(() => sum.value * 2, [sum]);\n * }\n * ```\n *\n * Benefits:\n * - ✅ Automatic updates when dependencies change\n * - ✅ Memoization - only recalculates when needed\n * - ✅ Composable - can depend on other ComputedProperties\n * - ✅ Type-safe with full TypeScript support\n *\n * When to use:\n * - ✅ For derived state (values calculated from other values)\n * - ✅ When dependencies are other Properties or ComputedProperties\n * - ❌ NOT for async operations (use regular methods instead)\n * - ❌ NOT if compute function has side effects\n *\n * @important Remember to call dispose() when the ComputedProperty is no longer needed\n * to prevent memory leaks by unsubscribing from all dependencies.\n */\nexport class ComputedProperty {\n compute;\n _value;\n watchers = [];\n unsubscribers = [];\n /**\n * Optional name for debugging purposes.\n * When provided, recalculations will be logged to the console in development mode.\n */\n name;\n /**\n * @param compute - Function that calculates the derived value\n * @param dependencies - Array of Properties this computed value depends on\n * @param name - Optional name for debugging\n */\n constructor(compute, dependencies, name) {\n this.compute = compute;\n this.name = name;\n this.recalculate();\n // Watch all dependencies - when any changes, recalculate\n for (const dep of dependencies) {\n this.unsubscribers.push(dep.watch(() => this.recalculate()));\n }\n }\n recalculate() {\n const newValue = this.compute();\n if (newValue !== this._value) {\n this._value = newValue;\n for (const watcher of this.watchers) {\n watcher(newValue);\n }\n }\n }\n get value() {\n return this._value;\n }\n watch(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter((w) => w !== watcher);\n };\n }\n /**\n * Dispose of this ComputedProperty by unsubscribing from all dependencies.\n * Call this when the ComputedProperty is no longer needed to prevent memory leaks.\n *\n * @example\n * ```typescript\n * const computed = new ComputedProperty(...);\n *\n * // Later, when cleaning up:\n * computed.dispose();\n * ```\n */\n dispose() {\n for (const unsub of this.unsubscribers) {\n unsub();\n }\n this.watchers = [];\n }\n}\n//# sourceMappingURL=CompositeState.js.map","import { useEffect, useState } from 'react';\nexport class SharedState {\n _value;\n watchers = [];\n constructor(value) {\n this._value = value;\n }\n get value() {\n return this._value;\n }\n set value(value) {\n if (value !== this._value) {\n this._value = value;\n for (const watcher of this.watchers) {\n watcher(value);\n }\n }\n }\n addWatcher(watcher) {\n this.watchers.push(watcher);\n return () => {\n this.watchers = this.watchers.filter((w) => w !== watcher);\n };\n }\n}\nexport function useWatchSharedState(state) {\n const [value, setValue] = useState(state.value);\n useEffect(() => {\n return state.addWatcher((value) => {\n if (typeof value === 'function') {\n setValue(() => value); // cannot directly store functions\n }\n else {\n setValue(value);\n }\n });\n }, [state]);\n return value;\n}\n// export function createSharedStateContext<T>(initialValue: T) {\n// const Context = React.createContext<SharedState<T>>(undefined as any);\n// function SharedStateProvider({ value = initialValue, children }: {\n// value?: T,\n// children: React.ReactNode\n// }) {\n// const state = useMemo(() => {\n// return new SharedState(value);\n// }, []);\n// return <Context.Provider value={state}>{children}</Context.Provider>\n// }\n// const useSharedState = () => {\n// return React.useContext(Context);\n// }\n// return {\n// Context,\n// Provider: SharedStateProvider,\n// useSharedState,\n// useWatchSharedState: () => {\n// const state = useSharedState();\n// return state ? useWatchSharedState(state) : undefined;\n// }\n// }\n// }\n//# sourceMappingURL=SharedState.js.map","import { useEffect, useRef } from 'react';\n/**\n *\n * @param callback\n * @param skipFn an optional function to skip the callback if the event matches some condition. Return true to skip\n * @returns\n */\nexport function useClickOutside(callback, skipFn) {\n const ref = useRef(null);\n useEffect(() => {\n const handleClick = (e) => {\n if (ref.current && !ref.current.contains(e.target)) {\n if (!skipFn?.(e)) {\n callback(e);\n }\n }\n };\n // add te listener just after the render to avoid the callback to be called on the current click\n // if you are in a click context\n const timeoutId = window.setTimeout(() => {\n document.addEventListener('click', handleClick);\n }, 0);\n return () => {\n window.clearTimeout(timeoutId);\n document.removeEventListener('click', handleClick);\n };\n }, [callback, skipFn]);\n return ref;\n}\n//# sourceMappingURL=useClickOutside.js.map","import { useState } from 'react';\nexport function useCopyToClipboard() {\n const [copiedText, setCopiedText] = useState(null);\n const copy = async (text) => {\n if (!navigator?.clipboard) {\n console.warn('Clipboard not supported');\n return false;\n }\n // Try to save to clipboard then save it in the state if worked\n try {\n await navigator.clipboard.writeText(text);\n setCopiedText(text);\n return true;\n }\n catch (error) {\n console.warn('Copy failed', error);\n setCopiedText(null);\n return false;\n }\n };\n return [copiedText, copy];\n}\n//# sourceMappingURL=useCopyToClipboard.js.map","import { useEffect } from 'react';\nexport function useDarkMode(cb) {\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const _cb = (e) => cb(e.matches);\n mediaQuery.addEventListener('change', _cb);\n cb(mediaQuery.matches);\n return () => mediaQuery.removeEventListener('change', _cb);\n }, [cb]);\n}\n//# sourceMappingURL=useDarkMode.js.map","import { useEffect, useState } from 'react';\nexport function useDebounce(value, delay) {\n const [debounceValue, setDebounceValue] = useState(value);\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebounceValue(value);\n }, delay);\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n return debounceValue;\n}\n//# sourceMappingURL=useDebounce.js.map","import { useEffect, useRef } from 'react';\nfunction startSse(url, onMessage, onCompleted) {\n const chunks = [];\n const sse = new EventSource(url);\n sse.addEventListener('message', (ev) => {\n const data = JSON.parse(ev.data);\n if (data) {\n chunks.push(data);\n onMessage(chunks.join(''));\n }\n });\n sse.addEventListener('close', (ev) => {\n sse.close();\n const msg = JSON.parse(ev.data);\n onCompleted(msg);\n });\n return () => {\n sse.close();\n };\n}\n/**\n * Opens an EventSource to `url` and routes events to `onMessage` / `onCompleted`.\n *\n * Callbacks are read through refs, so callers don't have to memoize them —\n * the EventSource is only re-created when the URL itself changes. Previously,\n * an inline `onMessage` that called `setState` would trigger a re-render →\n * new callback identity → effect re-fire → close-and-reopen the EventSource\n * after every chunk, which the server side sees as a torn-down response.\n */\nexport function useEventSource(url, onMessage, onCompleted) {\n const onMessageRef = useRef(onMessage);\n const onCompletedRef = useRef(onCompleted);\n onMessageRef.current = onMessage;\n onCompletedRef.current = onCompleted;\n useEffect(() => {\n let stop;\n let cancelled = false;\n const dispatchMessage = (content) => onMessageRef.current(content);\n const dispatchCompleted = (payload) => onCompletedRef.current(payload);\n if (typeof url === 'function') {\n void url().then((resolvedUrl) => {\n if (!cancelled) {\n stop = startSse(resolvedUrl, dispatchMessage, dispatchCompleted);\n }\n });\n }\n else {\n stop = startSse(url, dispatchMessage, dispatchCompleted);\n }\n return () => {\n cancelled = true;\n stop?.();\n };\n }, [url]);\n}\n//# sourceMappingURL=useEventSource.js.map","import { useCallback, useEffect, useRef, useState } from 'react';\nfunction toError(error) {\n return error instanceof Error ? error : new Error(String(error));\n}\nexport function useFetch(fetcher, opts) {\n if (Array.isArray(opts)) {\n opts = { deps: opts };\n }\n const options = (opts || {});\n const [error, setError] = useState(undefined);\n const [isLoading, setIsLoading] = useState(false);\n const [data, setData] = useState(options.defaultValue);\n const fetcherRef = useRef(fetcher);\n fetcherRef.current = fetcher;\n const optionsRef = useRef(options);\n optionsRef.current = options;\n const fetch = useCallback(() => {\n const currentOptions = optionsRef.current;\n currentOptions.start?.();\n setIsLoading(true);\n return fetcherRef\n .current()\n .then((result) => {\n setData(result);\n currentOptions.onSuccess?.(result);\n })\n .catch((error) => {\n const err = toError(error);\n setError(err);\n currentOptions.onError?.(err);\n })\n .finally(() => {\n setIsLoading(false);\n currentOptions.end?.();\n });\n }, []);\n useEffect(() => {\n const currentOptions = optionsRef.current;\n if (!currentOptions.condition || currentOptions.condition()) {\n fetch();\n }\n }, [fetch, ...(options.deps ?? [])]);\n return { data, isLoading, error, setData, refetch: fetch };\n}\nexport function useFetchOnce(fetcher, opts) {\n if (!opts || Array.isArray(opts)) {\n opts = { deps: [] };\n }\n else if (opts) {\n opts.deps = [];\n }\n return useFetch(fetcher, opts);\n}\n//# sourceMappingURL=useFetch.js.map","import { useState } from 'react';\nexport function useFlag(isOn = false) {\n const [state, setState] = useState(isOn);\n return {\n isOn: state,\n isOff: !state,\n set: (value) => setState(value),\n on: () => setState(true),\n off: () => setState(false),\n toggle: () => setState(!state),\n };\n}\n//# sourceMappingURL=useFlag.js.map","import { useEffect, useRef } from 'react';\n/**\n * if leave option is true then callback will be called when the target leaves the viewport\n * otherwise when it enters the viewport\n * @param target\n * @param cb\n * @param opts\n */\nexport function useIntersectionObserver(target, cb, opts = {}) {\n const cbRef = useRef(cb);\n cbRef.current = cb;\n const optsRef = useRef(opts);\n optsRef.current = opts;\n const threshold = opts.threshold || 1;\n useEffect(() => {\n const element = target.current;\n const observer = new IntersectionObserver((entries) => {\n const isEntering = entries[0].isIntersecting;\n if (optsRef.current.leave) {\n if (!isEntering) {\n cbRef.current(entries[0]);\n }\n }\n else {\n if (isEntering) {\n cbRef.current(entries[0]);\n }\n }\n }, { threshold });\n if (element) {\n observer.observe(element);\n }\n return () => {\n if (element) {\n observer.unobserve(element);\n }\n };\n }, [target, threshold]);\n}\n//# sourceMappingURL=useIntersectionObserver.js.map","import { useEffect, useRef } from 'react';\nexport function useIsFirstRendering() {\n const isFirstRender = useRef(true);\n useEffect((cb) => {\n if (cb && isFirstRender.current) {\n cb();\n }\n isFirstRender.current = false;\n // ---> StrictMode: The following is REQUIRED to reset/cleanup:\n return () => {\n isFirstRender.current = true;\n };\n }, []);\n return isFirstRender.current;\n}\n//# sourceMappingURL=useIsFistRendering.js.map","import { useEffect, useLayoutEffect } from 'react';\nconst useSafeLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport { useSafeLayoutEffect };\n//# sourceMappingURL=useSafeLayoutEffect.js.map","import { useEffect, useRef, useState } from 'react';\nimport { useIntersectionObserver } from './useIntersectionObserver';\n/**\n * A hook that provides paginated search functionality with infinite scrolling support.\n */\nexport function useScrollableSearch(opts, dependencies = []) {\n const pageSize = opts.pageSize || 50;\n const [page, setPage] = useState(null);\n const [lastPayload, setLastPayload] = useState(opts.payload);\n const [error, setError] = useState(null);\n const [results, setResults] = useState([]);\n const [nextPage, setNextPage] = useState(null);\n const [isSearching, setIsSearching] = useState(false);\n // Track current request to prevent stale results\n const requestIdRef = useRef(0);\n const search = (payload) => {\n setPage(null);\n setResults([]); // Clear old results immediately\n setNextPage(null);\n setLastPayload(payload);\n };\n const searchMore = () => {\n if (nextPage !== null) {\n setPage(nextPage);\n }\n };\n useEffect(() => {\n // Increment request ID to mark previous requests as stale\n requestIdRef.current += 1;\n const currentRequestId = requestIdRef.current;\n setIsSearching(true);\n opts.search(lastPayload, page, pageSize)\n .then((r) => {\n // Only update state if this is still the current request\n if (currentRequestId !== requestIdRef.current) {\n return; // Stale request, ignore results\n }\n // If page is null, it's a new search - replace results\n // Otherwise, it's loading more - append results\n if (page === null) {\n setResults(r.result);\n }\n else {\n setResults((prev) => [...prev, ...r.result]);\n }\n setNextPage(r.nextPage);\n setError(null);\n })\n .catch((error) => {\n // Only update error if this is still the current request\n if (currentRequestId !== requestIdRef.current) {\n return; // Stale request, ignore error\n }\n setError(error);\n })\n .finally(() => {\n // Only update isSearching if this is still the current request\n if (currentRequestId === requestIdRef.current) {\n setIsSearching(false);\n }\n });\n }, [...dependencies, lastPayload, opts.search, page, pageSize]);\n // Intersection observer for infinite scrolling\n useIntersectionObserver(opts.nextPageTrigger, () => {\n if (!isSearching && nextPage) {\n searchMore();\n }\n }, { threshold: 0.1, deps: [nextPage, isSearching] });\n return {\n search,\n refresh: () => search(lastPayload),\n searchMore,\n result: results,\n page,\n hasMore: nextPage !== null,\n error,\n isSearching,\n };\n}\nexport function useDefaultScrollableSearch(opts, dependencies = []) {\n const actualOpts = {\n ...opts,\n async search(payload, page, pageSize) {\n const currentPage = page ?? 0;\n const offset = currentPage * pageSize;\n const result = await opts.search(payload, offset, pageSize);\n return {\n result,\n nextPage: result.length === 0 ? null : currentPage + 1,\n };\n },\n };\n return useScrollableSearch(actualOpts, dependencies);\n}\n//# sourceMappingURL=useScrollableSearch.js.map","import { useState } from 'react';\nexport class SharedValue {\n state;\n constructor(state) {\n this.state = state;\n }\n get() {\n return this.state[0];\n }\n set(value) {\n this.state[1](value);\n }\n}\n/**\n * Share a stateful value\n */\nexport function useSharedValue(initialValue) {\n const state = useState(initialValue);\n return new SharedValue(state);\n}\n//# sourceMappingURL=useSharedValue.js.map","import { clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nexport function cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n//# sourceMappingURL=cn.js.map","function hasMessage(error) {\n return typeof error === 'object' && error !== null && 'message' in error;\n}\nexport function errorMessage(error, fallback = 'An error occurred') {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === 'string') {\n return error;\n }\n if (hasMessage(error) && typeof error.message === 'string') {\n return error.message;\n }\n return fallback;\n}\n//# sourceMappingURL=errorMessage.js.map","/**\n * Splice \"\\n\" at the caret in a controlled textarea, then restore the caret\n * position after React re-renders with the new value. Used for the modifier+Enter\n * combos (Cmd/Ctrl/Alt+Enter) that browsers don't natively turn into a newline.\n */\nexport function insertNewlineAtCursor(textarea, onChange) {\n const start = textarea.selectionStart;\n const end = textarea.selectionEnd;\n const value = textarea.value;\n const next = `${value.slice(0, start)}\\n${value.slice(end)}`;\n onChange?.(next);\n requestAnimationFrame(() => {\n textarea.selectionStart = textarea.selectionEnd = start + 1;\n });\n}\n//# sourceMappingURL=textarea.js.map"],"names":["getRealSize","size","Error","Avatar","src","name","shape","color","className","rounded","sizeClass","_jsx","alt","title","first","second","split","text","children","fill","viewBox","d","SvgAvatar","Center","clsx","PositionResolver","left","top","width","height","alignAxis","gap","constructor","this","position","pos","anchorRect","elemRect","bottom","right","align","computePosition","constraints","constrainWidth","constrainHeight","rect","DOMRect","flipAxis","axis","newAlign","flipAlign","newPos","flipPos","isElementVisibleOnAxis","clientRect","resolver","computedPos","isVisibleOnXAxis","isVisibleOnYAxis","newConstraints","isElementVisible","intersectRects","rect1","rect2","x1","Math","max","y1","x2","min","y2","isScrollable","element","hasScrollY","scrollHeight","clientHeight","hasScrollX","scrollWidth","clientWidth","style","getComputedStyle","overflowY","overflowX","PopupController","options","root","scrollableParents","visibleClientRect","context","document","documentElement","parents","parent","parentElement","push","getScrollableParents","anchor","length","getBoundingClientRect","i","l","computeVisibleClientRect","registerListeners","updateHandler","update","window","addEventListener","closeOnClick","closeOnEsc","ev","contains","target","tryClose","setTimeout","key","blockPageScroll","body","overflow","removeEventListener","open","tryOpen","cleanup","display","visibility","onOpen","close","onClose","undefined","isOpen","createPopupElement","popup","createElement","margin","padding","border","background","PopupContext","createContext","usePopupController","ctrl","useContext","DOMPopup","ctrlRef","id","zIndex","popupRef","useRef","setCtrl","useState","onCloseRef","onOpenRef","current","useEffect","_ctrl","Provider","value","createPortal","ref","Popup","others","OptionAdapter","filter","items","lcText","toLowerCase","item","valueOf","includes","renderOption","findById","find","idOf","createItem","_value","StringOptionAdapter","String","static","StringOptionAdapterWithCreate","getDefaultComboBoxLayout","fullWidth","unstyledInput","buttonRight","buttonWidth","maxMenuHeight","menuClass","inputClass","optionClass","Input","Menu","Toggle","ComboBox","menuAlign","menuGap","focusOnMount","onSelect","api","layout","layoutOpts","adapter","placeholder","clearable","noMatchMessage","openOnFocus","popupId","floor","random","popupCtrl","inputRef","Object","assign","inputBoxRef","React","useComboboxCtrl","focus","openMenu","closeMenu","toggle","toggleMenu","setInputValue","inputText","inputValue","selectedItem","showMenu","isMenuOpen","filteredItems","_jsxs","_Fragment","boxRef","fillWidth","ComboInput","showClear","buttonCount","paddingRight","getInputProps","onFocus","alignItems","type","backgroundColor","cursor","onClick","XIcon","justifyContent","getToggleButtonProps","ComboToggle","ChevronUpIcon","ChevronDownIcon","ComboMenu","highlightedIndex","maxHeight","getMenuProps","map","index","getItemProps","props","ComboboxController","withState","setState","_selectedItem","_filteredItems","_inputText","_highlightedIndex","_isMenuOpen","clone","updateState","popupPosition","_item","highlightIndex","navigateToTop","getElementById","querySelector","scrollIntoView","onMouseEnter","onMouseLeave","onChange","onKeyDown","decrModulo","SimpleCombobox","creatable","rest","instance","Divider","cn","inputs","twMerge","PortalContainerContext","PortalContainerProvider","inherited","container","setContainer","getRootNode","ShadowRoot","Document","child","Array","from","HTMLElement","appendChild","findOrCreatePortalContainer","usePortalContainer","TooltipProvider","TooltipPrimitive","Tooltip","Root","TooltipTrigger","Trigger","TooltipContent","forwardRef","sideOffset","side","Portal","Content","VTooltip","description","placement","asChild","setOpen","suppressRef","suppress","requestAnimationFrame","delayDuration","onOpenChange","v","displayName","warnedDeprecatedProps","Set","useDeprecationWarning","propName","isUsed","message","has","add","console","warn","buttonVariants","cva","variants","variant","destructive","outline","secondary","ghost","link","primary","unstyled","xs","sm","md","lg","xl","icon","none","defaultVariants","Button","isDisabled","isLoading","Comp","Slot","resolvedType","ariaLabel","content","Loader2","buttonElement","disabled","autoFocus","CopyButton","toast","isCopied","setIsCopied","t","useUITranslation","label","e","stopPropagation","navigator","clipboard","writeText","then","status","duration","catch","err","error","Check","CopyIcon","EmptyCollection","buttonLabel","stroke","vectorEffect","strokeLinecap","strokeLinejoin","strokeWidth","Plus","FileUploadInput","onUpload","files","ar","fileListToArray","DropZone","dropZoneProps","useDropZone","htmlFor","xmlns","dragOverClass","dropEffect","onDrop","el","preventDefault","__dragOver_cnt__","classList","remove","dataTransfer","promises","traverseFileTree","path","Promise","resolve","isFile","file","defineProperty","entry","isDirectory","isDirectoryEntry","dirReader","createReader","entries","readEntries","results","all","filesArrays","flat","webkitGetAsEntry","allFiles","onDragOver","onDragEnter","cnt","_onDragEnter","onDragLeave","_onDragLeave","FormItem","helpText","required","direction","fullWidthLabel","childrenId","generatedId","useId","helpTextId","errorId","inputId","hasWarnedRef","validChildren","Children","toArray","isValidElement","singleChild","wired","renderedChildren","Fragment","childProps","mergedDescribedBy","ids","filtered","join","joinIds","ariaInvalid","cloneElement","Env","isDev","canShowDevWarning","labelHtmlFor","Info","onActivateKey","callback","event","badgeVariants","default","attention","success","info","done","Badge","interactiveProps","role","tabIndex","dotBadgeVariants","dotVariants","DotBadge","dotClassName","cx","cy","r","noPadding","legacy","invalid","readOnly","X","InputList","delimiters","setText","splice","_onClick","onBlur","currentTarget","trim","isEmpty","indexOf","pop","onPaste","pastedText","clipboardData","getData","delimiterPattern","char","replace","regex","RegExp","newValues","Link","underline","underlineClass","MenuList","MenuListItem","href","Item","INPUT_NO_PADDING","Styles","INPUT_UNSTYLED","INPUT","numberToString","Number","isNaN","toString","NumberInput","noScroll","noSpinners","textValue","setTextValue","onWheel","blur","num","parseFloat","Overlay","overlayContent","overlayClassName","showCloseButton","triggerClassName","backdropClassName","animationConfig","stiffness","damping","setIsOpen","animationProps","initial","x","animate","exit","y","opacity","scale","getAnimationProps","positionClasses","baseClasses","getPositionClasses","motion","div","transition","PORTAL_ID","tempNode","portalEl","setPortalEl","doc","ownerDocument","Breadcrumbs","maxItems","separator","renderBreadcrumbItem","shortenedLabel","slice","BreadcrumbButton","BreadcrumbPage","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbSeparator","ChevronRight","lastThreeItems","BreadcrumbEllipsis","MoreHorizontal","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","Checkbox","CheckboxPrimitive","Indicator","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","VisuallyHidden","clip","whiteSpace","wordWrap","ModalContext","useIsInModal","ModalContextProvider","Modal","noCloseButton","allowOverflow","disableCloseOnClickOutside","action","handleOpenChange","Dialog","DialogOverlay","DialogDescription","DialogContent","getSizeClasses","DialogClose","ModalTitle","show","showDivider","DialogTitle","ModalBody","ModalFooter","center","DialogPrimitive","DialogTrigger","DialogPortal","Close","onOpenAutoFocus","Description","Title","Command","CommandPrimitive","CommandDialog","CommandInput","Search","CommandList","List","CommandEmpty","Empty","CommandGroup","Group","CommandSeparator","Separator","CommandItem","CommandShortcut","HoverMenuContext","DropdownMenu","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuGroup","DropdownMenuItem","inset","DropdownMenuCheckboxItem","checked","CheckboxItem","ItemIndicator","CheckIcon","DropdownMenuRadioGroup","RadioGroup","DropdownMenuRadioItem","RadioItem","DropdownMenuLabel","Label","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","Sub","DropdownMenuSubTrigger","SubTrigger","ChevronRightIcon","DropdownMenuSubContent","SubContent","alignMap","Dropdown","trigger","hover","closeTimer","clearTimeout","MenuGroup","MenuItem","isHoverMenu","baseClass","handleClick","AnimateChangeInHeight","containerRef","setHeight","resizeObserver","ResizeObserver","observedHeight","contentRect","observe","disconnect","PopoverContext","Popover","click","modal","_open","PopoverPrimitive","handleHover","PopoverTrigger","prev","PopoverAnchor","Anchor","PopoverContent","PopoverClose","usePopoverContext","ctx","calendarStyles","DateCombobox","filterValues","setFilterValues","isRange","localDateRange","setLocalDateRange","selectedDate","dayjs","toDate","dateRange","handleDateChange","date","isArray","format","actualDate","alignOffset","ReactCalendar","selectRange","returnValue","maxDate","Date","setHours","tileClassName","view","currentDate","getTime","today","startDate","endDate","DynamicLabel","labelRenderer","fallbackLabel","setLabel","setIsLoading","async","result","resolvedLabel","renderLabel","SelectionCombobox","filterType","multiple","commandInput","setCommandInput","commandInputRef","nonSelectedFilterValues","option","some","onInputCapture","next","StringListCombobox","tags","setTags","JSON","stringify","TextCombobox","filterValue","setFilterValue","DateFilter","selectedView","setSelectedDate","setFilters","filters","handleClose","filterGroups","setDateRange","selectedGroup","g","isDateRange","effectiveDateRange","selectedDateStart","toISOString","Calendar","SelectFilter","selectedOptions","setSelectedOptions","groupName","group","filteredOptions","filterBy","filterLc","getFilteredOptions","isSelected","opt","filterOption","existingFilterIndex","findIndex","f","updatedFilters","handleOptionToggle","StringListFilter","TextFilter","handleTextFilterAdd","generateComboboxOptions","dateValue","values","filterGroup","Filters","FilterContext","FilterProvider","inModal","searchParamsString","URL","location","searchParams","initialFiltersParam","URLSearchParams","search","get","processedUrlFilters","hasRestoredFromUrl","params","filterString","encodeURIComponent","readFilterValue","firstValue","set","delete","newUrl","pathname","hash","history","replaceState","state","filterPairs","newFilters","pair","encodedName","valuesString","decodeURIComponent","startsWith","endsWith","arrayContent","encodedValue","matchingOption","_error","FilterBtn","setSelectedView","ListFilter","onValueChange","selectedGroupType","renderFilterOptions","val","handleSelect","getAvailableFilterGroups","FilterBar","FilterClear","FilterOperator","Heading","level","h1","h2","h3","h4","h5","h6","SelectBox","optionLabel","addNew","addNewLabel","popupClass","isClearable","by","inline","warnOnMissingValue","missingValueWarning","clearIcon","clearTitle","ariaLabelProp","ariaLabelledByProp","idProp","ariaDescribedByProp","ariaInvalidProp","wrapperRef","setWidth","labelId","isMissingValue","useMemo","getProperty","isEqual","updateWidth","contentWidth","isOptionSelected","selectedValues","isOptionsEqual","a","b","filterFn","o","getFilterByFn","renderOptionsContent","SearchIcon","scrollTop","deltaY","currentValues","SquarePlus","absoluteStrokeWidth","LoaderCircle","hasVisualLabel","ariaLabelledBy","AlertTriangle","arrayValue","renderMultipleValue","singleValue","renderSingleValue","ChevronsUpDown","ENDONYMS","de","en","es","fr","it","ja","ko","pt","ru","tr","zh","LanguageSwitcher","language","setLanguage","useLanguage","SUPPORTED_LANGUAGES","labelVariants","LabelPrimitive","MessageBox","defaultIcon","titleColor","textColor","bgColor","CircleX","CircleCheck","ErrorBox","actionLabel","InfoBox","WarningBox","SuccessBox","DefaultBox","ConfirmModal","onConfirm","onCancel","cancelButtonRef","TriangleAlert","useToast","ToastContext","icons","warning","colors","NotificationPanel","data","setShow","timeoutRef","clearCurrentTimeout","useCallback","globalThis","resetTimeout","Icon","AnimatePresence","onExitComplete","ease","ToastProvider","setData","DeleteModal","idToDelete","setIdToDelete","deleteApi","finally","Panel","footer","collapsible","defaultCollapsed","clickableHeader","isCollapsed","setIsCollapsed","useClickableHeader","isSmall","sectioned","chevron","ChevronDown","ChevronUp","headerInner","headerPadding","contentPadding","footerPadding","RadioGroupItem","RadioGroupPrimitive","RadioGroupAdapter","descriptionOf","selectedClassName","selected","getId","getLabel","labelOf","getDescription","ResizablePanelGroup","orientation","resolvedOrientation","ResizablePrimitive","ResizablePanel","ResizableHandle","withHandle","Minus","decorative","SeparatorPrimitive","Slider","trackClassName","rangeClassName","thumbClassName","defaultValue","thumbCount","thumbKeys","_","thumbIndex","SliderPrimitive","Track","Range","thumbKey","Thumb","sizes","Switch","ariaProps","trackSize","thumbSize","thumbTranslate","switchEl","SwitchPrimitive","onCheckedChange","TabsContext","tabs","setTab","responsive","updateHash","Tabs","fullHeight","onTabChange","visibleTabs","tab","is_allowed","setValue","currentValue","currentTab","substring","handleHashChange","handleValueChange","newValue","currentState","pushState","tabName","TabsPrimitive","TabsBar","sticky","handleTabChange","TabsList","TabsTrigger","TabsPanel","TabsContent","textVariants","weight","normal","medium","semibold","Text","Textarea","minLines","maxLines","textareaRef","growing","resize","lineHeight","fontSize","paddingY","paddingTop","paddingBottom","borderY","borderTopWidth","borderBottomWidth","effectiveMax","Infinity","minHeight","contentHeight","useLayoutEffect","ThemeProviderContext","theme","setTheme","ThemeProvider","defaultTheme","storageKey","localStorage","getItem","systemTheme","matchMedia","matches","setItem","useTheme","ModeOption","ModeToggle","Computer","Sun","Moon","defaultOptionLayout","check","reverse","SelectList","optionLayout","noCheck","setSelected","optionEquals","o1","o2","SelectListOption","SidePanel","panelWidth","backdrop","resizable","contentClassName","_panelWidth","setPanelWidth","isLeft","positionClass","paddingClass","borderClass","dragHandleClass","initialX","onMouseDown","isDragging","startX","pageX","startWidth","handleMouseMove","deltaX","newWidth","handleMouseUp","CloseButton","Spinner","TagsInputContent","onOptionsChange","createText","maxDropdownHeight","popoverContext","searchTerm","setSearchTerm","setHighlightedIndex","pendingDeleteIndex","setPendingDeleteIndex","triggerRef","dropdownRef","highlightedItemRef","showCreateOption","totalItems","block","behavior","handleCreate","newTag","handleRemove","lastIndex","TagsInput","Table","THead","RowSkeleton","columns","TBody","rows","skeletonRows","TR","TableHeaderCell","scope","SortableTableHeaderCell","sortDirection","onSort","sortIndicator","Property","watchers","watcher","watch","w","createCompositeStateProvider","StateClass","Context","consume","_current","withConsumer","useCompositeState","useGetCompositeStateProperty","property","useSetCompositeStateProperty","useWatchCompositeStateProperty","useSlot","slot","useWatchSlot","useDefineSlot","ComputedProperty","compute","unsubscribers","dependencies","recalculate","dep","dispose","unsub","SharedState","addWatcher","useWatchSharedState","useClickOutside","skipFn","timeoutId","useCopyToClipboard","copiedText","setCopiedText","useDarkMode","cb","mediaQuery","_cb","useDebounce","delay","debounceValue","setDebounceValue","handler","startSse","url","onMessage","onCompleted","chunks","sse","EventSource","parse","msg","useEventSource","onMessageRef","onCompletedRef","stop","cancelled","dispatchMessage","dispatchCompleted","payload","resolvedUrl","useFetch","fetcher","opts","deps","setError","fetcherRef","optionsRef","fetch","currentOptions","start","onSuccess","toError","onError","end","condition","refetch","useFetchOnce","useFlag","isOn","isOff","on","off","useIntersectionObserver","cbRef","optsRef","threshold","observer","IntersectionObserver","isEntering","isIntersecting","leave","unobserve","useIsFirstRendering","isFirstRender","useSafeLayoutEffect","useScrollableSearch","pageSize","page","setPage","lastPayload","setLastPayload","setResults","nextPage","setNextPage","isSearching","setIsSearching","requestIdRef","searchMore","currentRequestId","nextPageTrigger","refresh","hasMore","useDefaultScrollableSearch","currentPage","offset","SharedValue","useSharedValue","initialValue","errorMessage","fallback","hasMessage","insertNewlineAtCursor","textarea","selectionStart","selectionEnd"],"mappings":"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"}