@quillsql/admin 1.6.4 → 1.7.1

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 (357) hide show
  1. package/dist/cjs/Admin.d.ts +3 -44
  2. package/dist/cjs/Admin.d.ts.map +1 -1
  3. package/dist/cjs/Admin.js +117 -28
  4. package/dist/cjs/AdminProvider.d.ts +9 -145
  5. package/dist/cjs/AdminProvider.d.ts.map +1 -1
  6. package/dist/cjs/AdminProvider.js +176 -97
  7. package/dist/cjs/api/ConnectionClient.d.ts +7 -4
  8. package/dist/cjs/api/ConnectionClient.d.ts.map +1 -1
  9. package/dist/cjs/api/ConnectionClient.js +66 -6
  10. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  11. package/dist/cjs/assets/XIcon.d.ts.map +1 -1
  12. package/dist/cjs/components/Banner/index.js +2 -2
  13. package/dist/cjs/components/CardSection.js +2 -2
  14. package/dist/cjs/components/ClipboardButton.d.ts.map +1 -1
  15. package/dist/cjs/components/DashboardSelectPopover.d.ts.map +1 -1
  16. package/dist/cjs/components/DashboardSelectPopover.js +29 -1
  17. package/dist/cjs/components/DatabaseSelector.d.ts +1 -1
  18. package/dist/cjs/components/DatabaseSelector.d.ts.map +1 -1
  19. package/dist/cjs/components/DateRangePicker/SingleDatePicker.js +2 -2
  20. package/dist/cjs/components/DateRangePicker/YearlessDateRangePicker.js +2 -2
  21. package/dist/cjs/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  22. package/dist/cjs/components/DropDownMenuWithLabel.js +2 -2
  23. package/dist/cjs/components/DynamicBanner.d.ts +1 -1
  24. package/dist/cjs/components/DynamicBanner.d.ts.map +1 -1
  25. package/dist/cjs/components/EmptyDashboardComponent/index.js +2 -2
  26. package/dist/cjs/components/EmptyVirtualTablesComponent.js +2 -2
  27. package/dist/cjs/components/FormTooltip.js +2 -2
  28. package/dist/cjs/components/InputLabel.js +2 -2
  29. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  30. package/dist/cjs/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  31. package/dist/cjs/components/InternalDashboard/DashboardFilter.js +2 -2
  32. package/dist/cjs/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  33. package/dist/cjs/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +2 -2
  34. package/dist/cjs/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  35. package/dist/cjs/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  36. package/dist/cjs/components/InternalDashboard/InternalDashboard.js +118 -38
  37. package/dist/cjs/components/OrgSelect.d.ts.map +1 -1
  38. package/dist/cjs/components/OrgSelect.js +51 -7
  39. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +5 -1
  40. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  41. package/dist/cjs/components/QuillMultiSelectWithCombo.js +331 -152
  42. package/dist/cjs/components/QuillPopover.js +2 -2
  43. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  44. package/dist/cjs/components/QuillSelect.js +2 -2
  45. package/dist/cjs/components/QuillSelectWithCombo.d.ts +4 -3
  46. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  47. package/dist/cjs/components/QuillSelectWithCombo.js +36 -8
  48. package/dist/cjs/components/QuillToolTipPortal.d.ts.map +1 -1
  49. package/dist/cjs/components/QuillToolTipPortal.js +2 -2
  50. package/dist/cjs/components/SqlTextEditor.d.ts.map +1 -1
  51. package/dist/cjs/components/SqlTextEditor.js +15 -2
  52. package/dist/cjs/components/Tenants/EditTenant.d.ts +1 -1
  53. package/dist/cjs/components/Tenants/EditTenant.d.ts.map +1 -1
  54. package/dist/cjs/components/Tenants/EditTenant.js +52 -9
  55. package/dist/cjs/components/UiComponents.d.ts +1 -1
  56. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  57. package/dist/cjs/components/UiComponents.js +9 -8
  58. package/dist/cjs/components/VirtualTableTile.d.ts +1 -1
  59. package/dist/cjs/components/VirtualTableTile.d.ts.map +1 -1
  60. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts +1 -1
  61. package/dist/cjs/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  62. package/dist/cjs/forms/client_onboard/ConnectDatabase.js +51 -3
  63. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts +1 -1
  64. package/dist/cjs/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  65. package/dist/cjs/forms/client_onboard/ConnectSchema.js +34 -2
  66. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts +1 -8
  67. package/dist/cjs/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  68. package/dist/cjs/forms/client_onboard/CreateVirtualTables.js +24 -39
  69. package/dist/cjs/forms/client_onboard/__tests__/ConnectDatabase.test.js +2 -2
  70. package/dist/cjs/forms/client_onboard/__tests__/ConnectSchema.test.js +5 -5
  71. package/dist/cjs/forms/client_onboard/__tests__/CreateVirtualTables.test.js +5 -5
  72. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts +1 -1
  73. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  74. package/dist/cjs/forms/virtual_tables/CreateEditVirtualTable.js +98 -16
  75. package/dist/cjs/hooks/useAdmin.d.ts +16 -0
  76. package/dist/cjs/hooks/useAdmin.d.ts.map +1 -0
  77. package/dist/cjs/hooks/useAdmin.js +13 -0
  78. package/dist/cjs/hooks/useDashboardManager.js +2 -2
  79. package/dist/cjs/hooks/useDatabaseSchema.d.ts.map +1 -1
  80. package/dist/cjs/hooks/useDatabaseSchema.js +13 -2
  81. package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
  82. package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
  83. package/dist/cjs/hooks/useLongLoading.js +67 -0
  84. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  85. package/dist/cjs/hooks/useTenants.d.ts +1 -1
  86. package/dist/cjs/hooks/useTenants.d.ts.map +1 -1
  87. package/dist/cjs/hooks/useTenants.js +2 -2
  88. package/dist/cjs/hooks/useThrottle.d.ts.map +1 -1
  89. package/dist/cjs/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  90. package/dist/cjs/icons/CheckCircleIcon.d.ts.map +1 -1
  91. package/dist/cjs/icons/ExclamationFilledIcon.d.ts.map +1 -1
  92. package/dist/cjs/icons/ExteriorLinkIcon.d.ts.map +1 -1
  93. package/dist/cjs/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  94. package/dist/cjs/modals/CodePreview.d.ts.map +1 -1
  95. package/dist/cjs/modals/CodePreview.js +8 -3
  96. package/dist/cjs/modals/CreateEnvironmentModal.d.ts +5 -0
  97. package/dist/cjs/modals/CreateEnvironmentModal.d.ts.map +1 -0
  98. package/dist/cjs/modals/CreateEnvironmentModal.js +21 -0
  99. package/dist/cjs/modals/EditEnvironmentModal.d.ts.map +1 -1
  100. package/dist/cjs/modals/EditEnvironmentModal.js +68 -16
  101. package/dist/cjs/modals/EditFiltersModal.d.ts.map +1 -1
  102. package/dist/cjs/modals/EditFiltersModal.js +14 -10
  103. package/dist/cjs/modals/NewDashboardModal.d.ts.map +1 -1
  104. package/dist/cjs/modals/NewDashboardModal.js +56 -30
  105. package/dist/cjs/modals/PromoteDashboardModal.js +2 -2
  106. package/dist/cjs/modals/PromoteReportModal.d.ts.map +1 -1
  107. package/dist/cjs/modals/PromoteReportModal.js +16 -5
  108. package/dist/cjs/modals/PromoteViewModal.d.ts.map +1 -1
  109. package/dist/cjs/modals/PromoteViewModal.js +14 -3
  110. package/dist/cjs/modals/ReorderDashboardModal.js +2 -2
  111. package/dist/cjs/modals/SavedQueriesModal.js +3 -3
  112. package/dist/cjs/modals/TenantFieldModal.d.ts +9 -0
  113. package/dist/cjs/modals/TenantFieldModal.d.ts.map +1 -0
  114. package/dist/cjs/modals/TenantFieldModal.js +54 -0
  115. package/dist/cjs/models/AdminContext.d.ts +158 -0
  116. package/dist/cjs/models/AdminContext.d.ts.map +1 -0
  117. package/dist/cjs/models/AdminContext.js +5 -0
  118. package/dist/cjs/models/Provider.d.ts +45 -0
  119. package/dist/cjs/models/Provider.d.ts.map +1 -0
  120. package/dist/cjs/models/Provider.js +21 -0
  121. package/dist/cjs/models/Tenant.d.ts +39 -0
  122. package/dist/cjs/models/Tenant.d.ts.map +1 -0
  123. package/dist/cjs/models/Tenant.js +2 -0
  124. package/dist/cjs/primitives/ButtonPrimitive.d.ts +1 -1
  125. package/dist/cjs/primitives/ButtonPrimitive.d.ts.map +1 -1
  126. package/dist/cjs/primitives/ButtonPrimitive.js +2 -2
  127. package/dist/cjs/primitives/CheckboxPrimitive.d.ts.map +1 -1
  128. package/dist/cjs/primitives/CheckboxPrimitive.js +2 -0
  129. package/dist/cjs/primitives/HeaderPrimitive.d.ts +1 -1
  130. package/dist/cjs/primitives/HeaderPrimitive.d.ts.map +1 -1
  131. package/dist/cjs/primitives/HeaderPrimitive.js +2 -2
  132. package/dist/cjs/primitives/MiniButtonPrimitive.js +2 -2
  133. package/dist/cjs/primitives/PopoverPrimitive.d.ts.map +1 -1
  134. package/dist/cjs/primitives/PopoverPrimitive.js +18 -7
  135. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts +1 -1
  136. package/dist/cjs/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  137. package/dist/cjs/primitives/SecondaryButtonPrimitive.js +2 -2
  138. package/dist/cjs/primitives/TextInputPrimitive.d.ts +1 -1
  139. package/dist/cjs/primitives/TextInputPrimitive.d.ts.map +1 -1
  140. package/dist/cjs/primitives/TextInputPrimitive.js +2 -2
  141. package/dist/cjs/primitives/TogglePrimitive.d.ts.map +1 -1
  142. package/dist/cjs/public_components/ChartQueryBuilder.d.ts.map +1 -1
  143. package/dist/cjs/public_components/ChartQueryBuilder.js +11 -10
  144. package/dist/cjs/public_components/CreateEnvironment.d.ts.map +1 -1
  145. package/dist/cjs/public_components/CreateEnvironment.js +50 -17
  146. package/dist/cjs/public_components/DashboardManager.d.ts.map +1 -1
  147. package/dist/cjs/public_components/DashboardManager.js +70 -10
  148. package/dist/cjs/public_components/EnvSelectPopover.d.ts.map +1 -1
  149. package/dist/cjs/public_components/EnvSelectPopover.js +32 -4
  150. package/dist/cjs/public_components/VirtualTableManager.d.ts +0 -1
  151. package/dist/cjs/public_components/VirtualTableManager.d.ts.map +1 -1
  152. package/dist/cjs/public_components/VirtualTableManager.js +99 -25
  153. package/dist/cjs/public_components/__tests__/CreateEnvironment.test.js +43 -4
  154. package/dist/cjs/utils/astProcessing.d.ts +1 -1
  155. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  156. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  157. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  158. package/dist/cjs/utils/columnProcessing.js +23 -1
  159. package/dist/cjs/utils/dataEditor.d.ts +1 -1
  160. package/dist/cjs/utils/dataEditor.d.ts.map +1 -1
  161. package/dist/cjs/utils/dataFetcher.d.ts +1 -1
  162. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  163. package/dist/cjs/utils/databases.d.ts +6 -1
  164. package/dist/cjs/utils/databases.d.ts.map +1 -1
  165. package/dist/cjs/utils/databases.js +18 -0
  166. package/dist/cjs/utils/delay.d.ts.map +1 -1
  167. package/dist/cjs/utils/filter.d.ts +17 -21
  168. package/dist/cjs/utils/filter.d.ts.map +1 -1
  169. package/dist/cjs/utils/filter.js +6 -6
  170. package/dist/cjs/utils/report.d.ts +5 -5
  171. package/dist/cjs/utils/report.d.ts.map +1 -1
  172. package/dist/cjs/utils/schema.d.ts +8 -5
  173. package/dist/cjs/utils/schema.d.ts.map +1 -1
  174. package/dist/cjs/utils/schema.js +42 -3
  175. package/dist/cjs/utils/table.d.ts.map +1 -1
  176. package/dist/cjs/utils/tenants.d.ts +2 -39
  177. package/dist/cjs/utils/tenants.d.ts.map +1 -1
  178. package/dist/cjs/utils/ui.d.ts.map +1 -1
  179. package/dist/esm/Admin.d.ts +3 -44
  180. package/dist/esm/Admin.d.ts.map +1 -1
  181. package/dist/esm/Admin.js +116 -29
  182. package/dist/esm/AdminProvider.d.ts +9 -145
  183. package/dist/esm/AdminProvider.d.ts.map +1 -1
  184. package/dist/esm/AdminProvider.js +177 -96
  185. package/dist/esm/api/ConnectionClient.d.ts +7 -4
  186. package/dist/esm/api/ConnectionClient.d.ts.map +1 -1
  187. package/dist/esm/api/ConnectionClient.js +66 -6
  188. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  189. package/dist/esm/assets/XIcon.d.ts.map +1 -1
  190. package/dist/esm/components/Banner/index.js +1 -1
  191. package/dist/esm/components/CardSection.js +1 -1
  192. package/dist/esm/components/ClipboardButton.d.ts.map +1 -1
  193. package/dist/esm/components/DashboardSelectPopover.d.ts.map +1 -1
  194. package/dist/esm/components/DashboardSelectPopover.js +29 -1
  195. package/dist/esm/components/DatabaseSelector.d.ts +1 -1
  196. package/dist/esm/components/DatabaseSelector.d.ts.map +1 -1
  197. package/dist/esm/components/DateRangePicker/SingleDatePicker.js +1 -1
  198. package/dist/esm/components/DateRangePicker/YearlessDateRangePicker.js +1 -1
  199. package/dist/esm/components/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  200. package/dist/esm/components/DropDownMenuWithLabel.js +1 -1
  201. package/dist/esm/components/DynamicBanner.d.ts +1 -1
  202. package/dist/esm/components/DynamicBanner.d.ts.map +1 -1
  203. package/dist/esm/components/EmptyDashboardComponent/index.js +1 -1
  204. package/dist/esm/components/EmptyVirtualTablesComponent.js +1 -1
  205. package/dist/esm/components/FormTooltip.js +1 -1
  206. package/dist/esm/components/InputLabel.js +1 -1
  207. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts +1 -1
  208. package/dist/esm/components/InternalDashboard/DashboardFilter.d.ts.map +1 -1
  209. package/dist/esm/components/InternalDashboard/DashboardFilter.js +2 -2
  210. package/dist/esm/components/InternalDashboard/DashboardLoadingComponent.d.ts.map +1 -1
  211. package/dist/esm/components/InternalDashboard/DateRangePicker/QuillDateRangePicker.js +1 -1
  212. package/dist/esm/components/InternalDashboard/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  213. package/dist/esm/components/InternalDashboard/InternalDashboard.d.ts.map +1 -1
  214. package/dist/esm/components/InternalDashboard/InternalDashboard.js +116 -36
  215. package/dist/esm/components/OrgSelect.d.ts.map +1 -1
  216. package/dist/esm/components/OrgSelect.js +49 -5
  217. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +5 -1
  218. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  219. package/dist/esm/components/QuillMultiSelectWithCombo.js +329 -150
  220. package/dist/esm/components/QuillPopover.js +1 -1
  221. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  222. package/dist/esm/components/QuillSelect.js +1 -1
  223. package/dist/esm/components/QuillSelectWithCombo.d.ts +4 -3
  224. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  225. package/dist/esm/components/QuillSelectWithCombo.js +35 -7
  226. package/dist/esm/components/QuillToolTipPortal.d.ts.map +1 -1
  227. package/dist/esm/components/QuillToolTipPortal.js +1 -1
  228. package/dist/esm/components/SqlTextEditor.d.ts.map +1 -1
  229. package/dist/esm/components/SqlTextEditor.js +15 -2
  230. package/dist/esm/components/Tenants/EditTenant.d.ts +1 -1
  231. package/dist/esm/components/Tenants/EditTenant.d.ts.map +1 -1
  232. package/dist/esm/components/Tenants/EditTenant.js +52 -9
  233. package/dist/esm/components/UiComponents.d.ts +1 -1
  234. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  235. package/dist/esm/components/UiComponents.js +2 -1
  236. package/dist/esm/components/VirtualTableTile.d.ts +1 -1
  237. package/dist/esm/components/VirtualTableTile.d.ts.map +1 -1
  238. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts +1 -1
  239. package/dist/esm/forms/client_onboard/ConnectDatabase.d.ts.map +1 -1
  240. package/dist/esm/forms/client_onboard/ConnectDatabase.js +51 -3
  241. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts +1 -1
  242. package/dist/esm/forms/client_onboard/ConnectSchema.d.ts.map +1 -1
  243. package/dist/esm/forms/client_onboard/ConnectSchema.js +34 -2
  244. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts +1 -8
  245. package/dist/esm/forms/client_onboard/CreateVirtualTables.d.ts.map +1 -1
  246. package/dist/esm/forms/client_onboard/CreateVirtualTables.js +23 -37
  247. package/dist/esm/forms/client_onboard/__tests__/ConnectDatabase.test.js +1 -1
  248. package/dist/esm/forms/client_onboard/__tests__/ConnectSchema.test.js +3 -3
  249. package/dist/esm/forms/client_onboard/__tests__/CreateVirtualTables.test.js +3 -3
  250. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts +1 -1
  251. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.d.ts.map +1 -1
  252. package/dist/esm/forms/virtual_tables/CreateEditVirtualTable.js +96 -14
  253. package/dist/esm/hooks/useAdmin.d.ts +16 -0
  254. package/dist/esm/hooks/useAdmin.d.ts.map +1 -0
  255. package/dist/esm/hooks/useAdmin.js +9 -0
  256. package/dist/esm/hooks/useDashboardManager.js +1 -1
  257. package/dist/esm/hooks/useDatabaseSchema.d.ts.map +1 -1
  258. package/dist/esm/hooks/useDatabaseSchema.js +13 -2
  259. package/dist/esm/hooks/useLongLoading.d.ts +13 -0
  260. package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
  261. package/dist/esm/hooks/useLongLoading.js +64 -0
  262. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  263. package/dist/esm/hooks/useTenants.d.ts +1 -1
  264. package/dist/esm/hooks/useTenants.d.ts.map +1 -1
  265. package/dist/esm/hooks/useTenants.js +1 -1
  266. package/dist/esm/hooks/useThrottle.d.ts.map +1 -1
  267. package/dist/esm/icons/ArrowDownHeadIcon.d.ts.map +1 -1
  268. package/dist/esm/icons/CheckCircleIcon.d.ts.map +1 -1
  269. package/dist/esm/icons/ExclamationFilledIcon.d.ts.map +1 -1
  270. package/dist/esm/icons/ExteriorLinkIcon.d.ts.map +1 -1
  271. package/dist/esm/icons/QuestionMarkCircleIcon.d.ts.map +1 -1
  272. package/dist/esm/modals/CodePreview.d.ts.map +1 -1
  273. package/dist/esm/modals/CodePreview.js +8 -3
  274. package/dist/esm/modals/CreateEnvironmentModal.d.ts +5 -0
  275. package/dist/esm/modals/CreateEnvironmentModal.d.ts.map +1 -0
  276. package/dist/esm/modals/CreateEnvironmentModal.js +15 -0
  277. package/dist/esm/modals/EditEnvironmentModal.d.ts.map +1 -1
  278. package/dist/esm/modals/EditEnvironmentModal.js +68 -16
  279. package/dist/esm/modals/EditFiltersModal.d.ts.map +1 -1
  280. package/dist/esm/modals/EditFiltersModal.js +14 -10
  281. package/dist/esm/modals/NewDashboardModal.d.ts.map +1 -1
  282. package/dist/esm/modals/NewDashboardModal.js +56 -30
  283. package/dist/esm/modals/PromoteDashboardModal.js +1 -1
  284. package/dist/esm/modals/PromoteReportModal.d.ts.map +1 -1
  285. package/dist/esm/modals/PromoteReportModal.js +16 -5
  286. package/dist/esm/modals/PromoteViewModal.d.ts.map +1 -1
  287. package/dist/esm/modals/PromoteViewModal.js +14 -3
  288. package/dist/esm/modals/ReorderDashboardModal.js +1 -1
  289. package/dist/esm/modals/SavedQueriesModal.js +1 -1
  290. package/dist/esm/modals/TenantFieldModal.d.ts +9 -0
  291. package/dist/esm/modals/TenantFieldModal.d.ts.map +1 -0
  292. package/dist/esm/modals/TenantFieldModal.js +51 -0
  293. package/dist/esm/models/AdminContext.d.ts +158 -0
  294. package/dist/esm/models/AdminContext.d.ts.map +1 -0
  295. package/dist/esm/models/AdminContext.js +2 -0
  296. package/dist/esm/models/Provider.d.ts +45 -0
  297. package/dist/esm/models/Provider.d.ts.map +1 -0
  298. package/dist/esm/models/Provider.js +18 -0
  299. package/dist/esm/models/Tenant.d.ts +39 -0
  300. package/dist/esm/models/Tenant.d.ts.map +1 -0
  301. package/dist/esm/models/Tenant.js +1 -0
  302. package/dist/esm/primitives/ButtonPrimitive.d.ts +1 -1
  303. package/dist/esm/primitives/ButtonPrimitive.d.ts.map +1 -1
  304. package/dist/esm/primitives/ButtonPrimitive.js +1 -1
  305. package/dist/esm/primitives/CheckboxPrimitive.d.ts.map +1 -1
  306. package/dist/esm/primitives/CheckboxPrimitive.js +2 -0
  307. package/dist/esm/primitives/HeaderPrimitive.d.ts +1 -1
  308. package/dist/esm/primitives/HeaderPrimitive.d.ts.map +1 -1
  309. package/dist/esm/primitives/HeaderPrimitive.js +1 -1
  310. package/dist/esm/primitives/MiniButtonPrimitive.js +1 -1
  311. package/dist/esm/primitives/PopoverPrimitive.d.ts.map +1 -1
  312. package/dist/esm/primitives/PopoverPrimitive.js +17 -6
  313. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts +1 -1
  314. package/dist/esm/primitives/SecondaryButtonPrimitive.d.ts.map +1 -1
  315. package/dist/esm/primitives/SecondaryButtonPrimitive.js +1 -1
  316. package/dist/esm/primitives/TextInputPrimitive.d.ts +1 -1
  317. package/dist/esm/primitives/TextInputPrimitive.d.ts.map +1 -1
  318. package/dist/esm/primitives/TextInputPrimitive.js +1 -1
  319. package/dist/esm/primitives/TogglePrimitive.d.ts.map +1 -1
  320. package/dist/esm/public_components/ChartQueryBuilder.d.ts.map +1 -1
  321. package/dist/esm/public_components/ChartQueryBuilder.js +11 -10
  322. package/dist/esm/public_components/CreateEnvironment.d.ts.map +1 -1
  323. package/dist/esm/public_components/CreateEnvironment.js +50 -17
  324. package/dist/esm/public_components/DashboardManager.d.ts.map +1 -1
  325. package/dist/esm/public_components/DashboardManager.js +68 -8
  326. package/dist/esm/public_components/EnvSelectPopover.d.ts.map +1 -1
  327. package/dist/esm/public_components/EnvSelectPopover.js +32 -4
  328. package/dist/esm/public_components/VirtualTableManager.d.ts +0 -1
  329. package/dist/esm/public_components/VirtualTableManager.d.ts.map +1 -1
  330. package/dist/esm/public_components/VirtualTableManager.js +97 -21
  331. package/dist/esm/public_components/__tests__/CreateEnvironment.test.js +42 -3
  332. package/dist/esm/utils/astProcessing.d.ts +1 -1
  333. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  334. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  335. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  336. package/dist/esm/utils/columnProcessing.js +21 -1
  337. package/dist/esm/utils/dataEditor.d.ts +1 -1
  338. package/dist/esm/utils/dataEditor.d.ts.map +1 -1
  339. package/dist/esm/utils/dataFetcher.d.ts +1 -1
  340. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  341. package/dist/esm/utils/databases.d.ts +6 -1
  342. package/dist/esm/utils/databases.d.ts.map +1 -1
  343. package/dist/esm/utils/databases.js +18 -0
  344. package/dist/esm/utils/delay.d.ts.map +1 -1
  345. package/dist/esm/utils/filter.d.ts +17 -21
  346. package/dist/esm/utils/filter.d.ts.map +1 -1
  347. package/dist/esm/utils/filter.js +5 -5
  348. package/dist/esm/utils/report.d.ts +5 -5
  349. package/dist/esm/utils/report.d.ts.map +1 -1
  350. package/dist/esm/utils/schema.d.ts +8 -5
  351. package/dist/esm/utils/schema.d.ts.map +1 -1
  352. package/dist/esm/utils/schema.js +42 -3
  353. package/dist/esm/utils/table.d.ts.map +1 -1
  354. package/dist/esm/utils/tenants.d.ts +2 -39
  355. package/dist/esm/utils/tenants.d.ts.map +1 -1
  356. package/dist/esm/utils/ui.d.ts.map +1 -1
  357. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAClC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,EAAE,yBAAyB,2CAomB3B;AAED,eAAO,MAAM,gBAAgB,iDAM1B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,4CAkEA,CAAC"}
1
+ {"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAClC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;SAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,EAAE,yBAAyB,2CAs1B3B;AAED,eAAO,MAAM,gBAAgB,GAAI,8CAM9B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,4CAkEA,CAAC"}
@@ -2,16 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import useOnClickOutside, { getEffectiveZIndex, } from '../hooks/useOnClickOutside';
3
3
  import { LoadingSpinner } from './UiComponents';
4
4
  import React, { useEffect, useMemo, useRef, useState } from 'react';
5
- import { useAdmin } from '../AdminProvider';
5
+ import { useAdmin } from '../hooks/useAdmin';
6
6
  import { createPortal } from 'react-dom';
7
7
  import { getScrollableParent } from '../utils/ui';
8
8
  /**
9
9
  * A robust select component that implements the new minimal Select interface.
10
10
  */
11
- export function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, emptyLabel, allSelectedLabel, noneSelectedLabel, mimicReactSelect, }) {
11
+ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, value, isLoading, disabled, emptyLabel, allSelectedLabel, noneSelectedLabel, mimicReactSelect, enableSingleSelectOption, displayValue, enableSubmitButton, submitButtonText, }) {
12
12
  const { state } = useAdmin();
13
13
  const theme = state.theme;
14
14
  const [selectedOptions, setSelectedOptions] = useState([]);
15
+ const [pendingSelections, setPendingSelections] = useState([]);
15
16
  const [showModal, setShowModal] = useState(false);
16
17
  const modalRef = useRef(null);
17
18
  const buttonRef = useRef(null);
@@ -30,38 +31,48 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
30
31
  })(CheckboxState || (CheckboxState = {}));
31
32
  const optionValues = useMemo(() => new Set(options.map((opt) => opt.value)), [options]);
32
33
  const selectedOptionsLabel = useMemo(() => {
33
- if (!value || !value.length) {
34
+ const currentValue = enableSubmitButton ? pendingSelections : value;
35
+ if (!currentValue || !currentValue.length) {
34
36
  return noneSelectedLabel ?? 'Select';
35
37
  }
36
- // if (value.length === options.length) {
38
+ // if (currentValue.length === options.length) {
37
39
  // return 'All Tenants';
38
40
  // }
39
- const matchingOptions = options.filter((elem) => value.includes(elem.value));
40
- if (matchingOptions.length !== value.length) {
41
- return value.join(', ');
41
+ const matchingOptions = options.filter((elem) => currentValue.includes(elem.value));
42
+ if (matchingOptions.length !== currentValue.length) {
43
+ return currentValue.join(', ');
42
44
  }
43
45
  return matchingOptions
44
46
  .map((elem) => elem.label ?? '-')
45
47
  .join(', ');
46
- }, [options, value]);
48
+ }, [options, value, pendingSelections, enableSubmitButton]);
47
49
  const potentialOptions = useMemo(() => {
48
- return value
50
+ const currentValue = enableSubmitButton ? pendingSelections : value;
51
+ return currentValue
49
52
  .filter((opt) => !optionValues.has(opt ?? ''))
50
53
  .map((opt) => ({
51
54
  label: opt === '' ? '-' : (opt?.toString() ?? '-'),
52
55
  value: opt ?? '',
53
56
  }))
54
57
  .concat(options);
55
- }, [value, options]);
58
+ }, [value, pendingSelections, options, enableSubmitButton]);
56
59
  const selectAllCheckboxState = useMemo(() => {
57
- if (selectedOptions.length === 0) {
60
+ const currentSelections = enableSubmitButton
61
+ ? pendingSelections
62
+ : selectedOptions;
63
+ if (currentSelections.length === 0) {
58
64
  return CheckboxState.UNSELECTED;
59
65
  }
60
- if (selectedOptions.length === potentialOptions.length) {
66
+ if (currentSelections.length === potentialOptions.length) {
61
67
  return CheckboxState.SELECTED;
62
68
  }
63
69
  return CheckboxState.INDETERMINATE;
64
- }, [selectedOptions]);
70
+ }, [
71
+ selectedOptions,
72
+ pendingSelections,
73
+ potentialOptions,
74
+ enableSubmitButton,
75
+ ]);
65
76
  useEffect(() => {
66
77
  if (selectAllRef.current) {
67
78
  selectAllRef.current.indeterminate =
@@ -129,12 +140,22 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
129
140
  useEffect(() => {
130
141
  if (!value) {
131
142
  setSelectedOptions([]);
143
+ if (enableSubmitButton) {
144
+ setPendingSelections([]);
145
+ }
132
146
  }
133
147
  else {
134
148
  setSelectedOptions(value);
149
+ if (enableSubmitButton) {
150
+ setPendingSelections(value);
151
+ }
135
152
  }
136
- }, [value]);
153
+ }, [value, enableSubmitButton]);
137
154
  const debounce = (updatedChangeEvent) => {
155
+ if (enableSubmitButton) {
156
+ // When submit button is enabled, don't call onChange immediately
157
+ return;
158
+ }
138
159
  if (debounceTimeoutId.current) {
139
160
  clearTimeout(debounceTimeoutId.current);
140
161
  }
@@ -142,6 +163,13 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
142
163
  onChange(updatedChangeEvent);
143
164
  }, 200);
144
165
  };
166
+ const handleSubmit = () => {
167
+ const updatedChangeEvent = {
168
+ target: { value: pendingSelections },
169
+ };
170
+ onChange(updatedChangeEvent);
171
+ setShowModal(false);
172
+ };
145
173
  // FIXME: Hacked this to display selected options that have been filtered out, which is good
146
174
  // But they don't have their proper labels, since we haven't stored/passed in the label
147
175
  const filteredItems = React.useMemo(() => {
@@ -241,11 +269,15 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
241
269
  width: '100%',
242
270
  textAlign: 'left',
243
271
  zIndex: 1,
244
- fontWeight: value?.length || isLoading ? undefined : 300,
272
+ fontWeight: (enableSubmitButton ? pendingSelections : value)?.length ||
273
+ isLoading
274
+ ? undefined
275
+ : 300,
245
276
  }, children: isLoading
246
277
  ? 'Loading...'
247
- : value?.length
248
- ? value?.length === options?.length
278
+ : (enableSubmitButton ? pendingSelections : value)?.length
279
+ ? (enableSubmitButton ? pendingSelections : value)?.length ===
280
+ options?.length
249
281
  ? (allSelectedLabel ?? selectedOptionsLabel)
250
282
  : selectedOptionsLabel
251
283
  : emptyLabel
@@ -271,87 +303,108 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
271
303
  zIndex: z + 1,
272
304
  padding: 6,
273
305
  fontFamily: theme?.fontFamily,
274
- overflow: 'scroll',
275
306
  fontSize: 14,
276
- }, ref: modalRef, children: [!exceedsLimit && options && options.length > 20 && (_jsxs(_Fragment, { children: [_jsx(ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
277
- setSearchQuery(value);
278
- } }), _jsx("div", { style: {
279
- height: 9,
280
- width: 230,
281
- borderTop: '1px solid #e7e7e7',
282
- } })] })), !isLoading &&
283
- (!filteredItems ||
284
- filteredItems.length === 0 ||
285
- exceedsLimit) && (_jsxs("div", { style: {
307
+ }, ref: modalRef, children: [_jsxs("div", { style: {
286
308
  display: 'flex',
287
- alignItems: 'center',
288
- padding: 8,
289
- margin: 0,
290
- boxSizing: 'border-box',
291
- borderWidth: 0,
292
- fontSize: 14,
293
- borderStyle: 'solid',
294
- borderColor: theme?.borderColor,
295
- borderRadius: 4,
296
- fontFamily: theme?.fontFamily,
297
- textOverflow: 'ellipsis',
298
- whiteSpace: 'nowrap',
299
- height: 34,
300
- minHeight: 34,
301
- gap: 6,
309
+ flexDirection: 'column',
310
+ flex: 1,
302
311
  overflow: 'hidden',
303
- }, children: [_jsx("style", { children: `
312
+ minHeight: 0,
313
+ }, children: [!exceedsLimit && options && options.length > 20 && (_jsxs(_Fragment, { children: [_jsx(ListboxTextInput, { value: searchQuery, placeholder: "Search", onChange: (value) => {
314
+ setSearchQuery(value);
315
+ } }), _jsx("div", { style: {
316
+ height: 9,
317
+ width: 230,
318
+ borderTop: '1px solid #e7e7e7',
319
+ } })] })), _jsxs("div", { style: {
320
+ flex: 1,
321
+ overflow: 'auto',
322
+ minHeight: 0,
323
+ }, children: [!isLoading &&
324
+ (!filteredItems ||
325
+ filteredItems.length === 0 ||
326
+ exceedsLimit) && (_jsxs("div", { style: {
327
+ display: 'flex',
328
+ alignItems: 'center',
329
+ padding: 8,
330
+ margin: 0,
331
+ boxSizing: 'border-box',
332
+ borderWidth: 0,
333
+ fontSize: 14,
334
+ borderStyle: 'solid',
335
+ borderColor: theme?.borderColor,
336
+ borderRadius: 4,
337
+ fontFamily: theme?.fontFamily,
338
+ textOverflow: 'ellipsis',
339
+ whiteSpace: 'nowrap',
340
+ height: 34,
341
+ minHeight: 34,
342
+ gap: 6,
343
+ overflow: 'hidden',
344
+ }, children: [_jsx("style", { children: `
304
345
  .quill-option {
305
346
  background: ${theme?.backgroundColor};
306
347
  .quill-option:hover {
307
348
  background: ${theme?.hoverBackgroundColor};
308
349
  }
309
350
  ` }), _jsx("span", { style: {
310
- textOverflow: 'ellipsis',
311
- whiteSpace: 'nowrap',
312
- overflow: 'hidden',
313
- cursor: 'default',
314
- color: theme?.secondaryTextColor,
315
- }, children: exceedsLimit
316
- ? 'Too many options'
317
- : (emptyLabel ?? 'No options available') })] })), !isLoading ? (_jsxs(_Fragment, { children: [searchQuery === '' && potentialOptions.length > 0 && (_jsxs("button", { style: {
318
- display: 'flex',
319
- alignItems: 'center',
320
- padding: 8,
321
- margin: 0,
322
- boxSizing: 'border-box',
323
- borderWidth: 0,
324
- fontSize: 14,
325
- borderStyle: 'solid',
326
- borderColor: theme?.borderColor,
327
- borderRadius: 4,
328
- fontFamily: theme?.fontFamily,
329
- textOverflow: 'ellipsis',
330
- whiteSpace: 'nowrap',
331
- height: 34,
332
- minHeight: 34,
333
- gap: 6,
334
- overflow: 'hidden',
335
- }, className: "quill-option", onClick: () => {
336
- // if any are selected, deselect all
337
- if (selectAllCheckboxState === CheckboxState.SELECTED ||
338
- selectAllCheckboxState === CheckboxState.INDETERMINATE) {
339
- setSelectedOptions([]);
340
- const updatedChangeEvent = {
341
- target: { value: [] },
342
- };
343
- debounce(updatedChangeEvent);
344
- return;
345
- }
346
- // if none are selected, select all
347
- const updatedChangeEvent = {
348
- target: {
349
- value: options.map((opt) => opt.value),
350
- },
351
- };
352
- setSelectedOptions(options.map((opt) => opt.value));
353
- debounce(updatedChangeEvent);
354
- }, children: [_jsx("style", { children: `
351
+ textOverflow: 'ellipsis',
352
+ whiteSpace: 'nowrap',
353
+ overflow: 'hidden',
354
+ cursor: 'default',
355
+ color: theme?.secondaryTextColor,
356
+ }, children: exceedsLimit
357
+ ? 'Too many options'
358
+ : (emptyLabel ?? 'No options available') })] })), !isLoading ? (_jsxs(_Fragment, { children: [searchQuery === '' && potentialOptions.length > 0 && (_jsxs("button", { style: {
359
+ display: 'flex',
360
+ alignItems: 'center',
361
+ padding: 8,
362
+ margin: 0,
363
+ boxSizing: 'border-box',
364
+ borderWidth: 0,
365
+ fontSize: 14,
366
+ borderStyle: 'solid',
367
+ borderColor: theme?.borderColor,
368
+ borderRadius: 4,
369
+ fontFamily: theme?.fontFamily,
370
+ textOverflow: 'ellipsis',
371
+ whiteSpace: 'nowrap',
372
+ height: 34,
373
+ minHeight: 34,
374
+ gap: 6,
375
+ overflow: 'hidden',
376
+ width: '100%',
377
+ }, className: "quill-option", onClick: () => {
378
+ // if any are selected, deselect all
379
+ if (selectAllCheckboxState === CheckboxState.SELECTED ||
380
+ selectAllCheckboxState ===
381
+ CheckboxState.INDETERMINATE) {
382
+ if (enableSubmitButton) {
383
+ setPendingSelections([]);
384
+ }
385
+ else {
386
+ setSelectedOptions([]);
387
+ const updatedChangeEvent = {
388
+ target: { value: [] },
389
+ };
390
+ debounce(updatedChangeEvent);
391
+ }
392
+ return;
393
+ }
394
+ // if none are selected, select all
395
+ if (enableSubmitButton) {
396
+ setPendingSelections(options.map((opt) => opt.value));
397
+ }
398
+ else {
399
+ const updatedChangeEvent = {
400
+ target: {
401
+ value: options.map((opt) => opt.value),
402
+ },
403
+ };
404
+ setSelectedOptions(options.map((opt) => opt.value));
405
+ debounce(updatedChangeEvent);
406
+ }
407
+ }, children: [_jsx("style", { children: `
355
408
  .quill-option {
356
409
  background: ${theme?.backgroundColor};
357
410
  }
@@ -360,81 +413,207 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
360
413
  color: ${theme?.hoverTextColor};
361
414
  }
362
415
  ` }), _jsx("input", { ref: selectAllRef, type: "checkbox", checked: selectAllCheckboxState === CheckboxState.SELECTED, style: {
363
- width: '14px',
364
- height: '14px',
365
- margin: 'auto 0',
366
- }, readOnly: true }), _jsx("span", { style: {
367
- textOverflow: 'ellipsis',
368
- whiteSpace: 'nowrap',
369
- overflow: 'hidden',
370
- }, children: _jsx("span", { style: {
371
- fontWeight: 300,
372
- }, children: "Select all" }) })] })), filteredItems.map((option) => (_jsxs("button", { style: {
416
+ width: '14px',
417
+ height: '14px',
418
+ margin: 'auto 0',
419
+ }, readOnly: true }), _jsx("span", { style: {
420
+ textOverflow: 'ellipsis',
421
+ whiteSpace: 'nowrap',
422
+ overflow: 'hidden',
423
+ }, children: _jsx("span", { style: {
424
+ fontWeight: 300,
425
+ }, children: "Select all" }) })] })), filteredItems.map((option) => (_jsxs("button", { style: {
426
+ display: 'flex',
427
+ alignItems: 'center',
428
+ padding: 8,
429
+ margin: 0,
430
+ boxSizing: 'border-box',
431
+ borderWidth: 0,
432
+ fontSize: 14,
433
+ borderStyle: 'solid',
434
+ borderColor: theme?.borderColor,
435
+ borderRadius: 4,
436
+ fontFamily: theme?.fontFamily,
437
+ textOverflow: 'ellipsis',
438
+ whiteSpace: 'nowrap',
439
+ height: 34,
440
+ minHeight: 34,
441
+ gap: 6,
442
+ overflow: 'hidden',
443
+ position: 'relative',
444
+ width: '100%',
445
+ }, className: "quill-option", onClick: () => {
446
+ // Manually create a synthetic ChangeEvent and pass it to callback
447
+ const changeEvent = {
448
+ target: { value: option.value },
449
+ };
450
+ let updateSelectedOptions = [...selectedOptions];
451
+ let updatePendingSelections = [...pendingSelections];
452
+ if (enableSubmitButton) {
453
+ if (pendingSelections.includes(changeEvent.target.value)) {
454
+ updatePendingSelections =
455
+ pendingSelections.filter((opt) => opt !== changeEvent.target.value);
456
+ setPendingSelections(updatePendingSelections);
457
+ }
458
+ else {
459
+ updatePendingSelections = [
460
+ ...updatePendingSelections,
461
+ changeEvent.target.value,
462
+ ];
463
+ setPendingSelections(updatePendingSelections);
464
+ }
465
+ }
466
+ else {
467
+ if (selectedOptions.includes(changeEvent.target.value)) {
468
+ updateSelectedOptions = selectedOptions.filter((opt) => opt !== changeEvent.target.value);
469
+ setSelectedOptions(updateSelectedOptions);
470
+ }
471
+ else {
472
+ updateSelectedOptions = [
473
+ ...updateSelectedOptions,
474
+ changeEvent.target.value,
475
+ ];
476
+ setSelectedOptions(updateSelectedOptions);
477
+ }
478
+ const updatedChangeEvent = {
479
+ target: { value: updateSelectedOptions },
480
+ };
481
+ if (updateSelectedOptions.length === 0) {
482
+ updatedChangeEvent.target.value = [];
483
+ }
484
+ debounce(updatedChangeEvent);
485
+ }
486
+ }, children: [_jsx("style", { children: `
487
+ .quill-option {
488
+ background: ${theme?.backgroundColor};
489
+ color: ${theme?.primaryTextColor};
490
+ }
491
+ .quill-option:hover {
492
+ background: ${theme?.hoverBackgroundColor};
493
+ color: ${theme?.hoverTextColor};
494
+ }
495
+ .quill-select-only-btn {
496
+ background: transparent;
497
+ border: none;
498
+ padding: 2px 6px;
499
+ border-radius: 3px;
500
+ font-size: 11px;
501
+ color: ${theme?.secondaryTextColor};
502
+ cursor: pointer;
503
+ opacity: 0;
504
+ transition: opacity 0.2s ease;
505
+ }
506
+ .quill-option:hover .quill-select-only-btn {
507
+ opacity: 1;
508
+ }
509
+ .quill-select-only-btn:hover {
510
+ background: ${theme?.hoverBackgroundColor};
511
+ color: ${theme?.hoverTextColor};
512
+ }
513
+ ` }), _jsx("input", { type: "checkbox", checked: (enableSubmitButton
514
+ ? pendingSelections
515
+ : selectedOptions).includes(option.value), style: {
516
+ width: '14px',
517
+ height: '14px',
518
+ margin: 'auto 0',
519
+ }, readOnly: true }), _jsxs("div", { style: {
520
+ display: 'flex',
521
+ flexDirection: 'row',
522
+ flex: 1,
523
+ minWidth: 0,
524
+ overflow: 'hidden',
525
+ gap: 8,
526
+ alignItems: 'baseline',
527
+ }, children: [_jsx("span", { style: {
528
+ textOverflow: 'ellipsis',
529
+ whiteSpace: 'nowrap',
530
+ overflow: 'hidden',
531
+ fontWeight: 400,
532
+ flex: '0 1 auto',
533
+ minWidth: 0,
534
+ textAlign: 'left',
535
+ }, title: option.value !== null && option.value !== '-'
536
+ ? option.value.toString()
537
+ : undefined, children: option.label ?? nullLabel }), option.value !== null &&
538
+ option.value !== '-' &&
539
+ displayValue && (_jsx("span", { style: {
540
+ fontSize: 11,
541
+ color: theme?.secondaryTextColor,
542
+ textOverflow: 'ellipsis',
543
+ whiteSpace: 'nowrap',
544
+ overflow: 'hidden',
545
+ fontWeight: 400,
546
+ flexShrink: 1,
547
+ maxWidth: '30%',
548
+ minWidth: 0,
549
+ }, title: option.value.toString(), children: option.value.toString().length > 15
550
+ ? `${option.value.toString().substring(0, 15)}...`
551
+ : option.value.toString() }))] }), enableSingleSelectOption && (_jsx("div", { className: "quill-select-only-btn", onClick: (e) => {
552
+ e.stopPropagation();
553
+ if (enableSubmitButton) {
554
+ setPendingSelections([option.value]);
555
+ }
556
+ else {
557
+ const updatedChangeEvent = {
558
+ target: { value: [option.value] },
559
+ };
560
+ setSelectedOptions([option.value]);
561
+ debounce(updatedChangeEvent);
562
+ }
563
+ }, title: "Select only this option", role: "button", tabIndex: 0, onKeyDown: (e) => {
564
+ if (e.key === 'Enter' || e.key === ' ') {
565
+ e.preventDefault();
566
+ e.stopPropagation();
567
+ if (enableSubmitButton) {
568
+ setPendingSelections([option.value]);
569
+ }
570
+ else {
571
+ const updatedChangeEvent = {
572
+ target: { value: [option.value] },
573
+ };
574
+ setSelectedOptions([option.value]);
575
+ debounce(updatedChangeEvent);
576
+ }
577
+ }
578
+ }, children: "only" }))] }, option.value)))] })) : isLoading ? (_jsx("div", { style: {
579
+ width: '100%',
580
+ alignItems: 'center',
581
+ justifyContent: 'center',
582
+ display: 'flex',
583
+ marginLeft: 'auto',
584
+ marginRight: 'auto',
585
+ padding: 8,
586
+ }, children: _jsx(LoadingSpinner, {}) })) : null] })] }), enableSubmitButton && (_jsxs(_Fragment, { children: [_jsx("div", { style: {
587
+ height: 1,
588
+ width: '100%',
589
+ borderTop: '1px solid #e7e7e7',
590
+ marginTop: 6,
591
+ marginBottom: 6,
592
+ } }), _jsxs("button", { style: {
373
593
  display: 'flex',
374
594
  alignItems: 'center',
595
+ justifyContent: 'center',
375
596
  padding: 8,
376
597
  margin: 0,
377
598
  boxSizing: 'border-box',
378
- borderWidth: 0,
379
- fontSize: 14,
599
+ borderWidth: 1,
380
600
  borderStyle: 'solid',
381
601
  borderColor: theme?.borderColor,
602
+ fontSize: 14,
382
603
  borderRadius: 4,
383
604
  fontFamily: theme?.fontFamily,
384
- textOverflow: 'ellipsis',
385
- whiteSpace: 'nowrap',
386
605
  height: 34,
387
606
  minHeight: 34,
388
- gap: 6,
389
- overflow: 'hidden',
390
- }, className: "quill-option", onClick: () => {
391
- // Manually create a synthetic ChangeEvent and pass it to callback
392
- const changeEvent = { target: { value: option.value } };
393
- let updateSelectedOptions = [...selectedOptions];
394
- if (selectedOptions.includes(changeEvent.target.value)) {
395
- updateSelectedOptions = selectedOptions.filter((opt) => opt !== changeEvent.target.value);
396
- setSelectedOptions(updateSelectedOptions);
397
- }
398
- else {
399
- updateSelectedOptions = [
400
- ...updateSelectedOptions,
401
- changeEvent.target.value,
402
- ];
403
- setSelectedOptions(updateSelectedOptions);
404
- }
405
- const updatedChangeEvent = {
406
- target: { value: updateSelectedOptions },
407
- };
408
- if (updateSelectedOptions.length === 0) {
409
- updatedChangeEvent.target.value = [];
410
- }
411
- debounce(updatedChangeEvent);
412
- }, children: [_jsx("style", { children: `
413
- .quill-option {
414
- background: ${theme?.backgroundColor};
415
- color: ${theme?.primaryTextColor};
416
- }
417
- .quill-option:hover {
607
+ background: theme?.primaryButtonColor,
608
+ color: theme?.primaryButtonTextColor,
609
+ cursor: 'pointer',
610
+ flexShrink: 0,
611
+ }, className: "quill-submit-button", onClick: handleSubmit, children: [_jsx("style", { children: `
612
+ .quill-submit-button:hover {
418
613
  background: ${theme?.hoverBackgroundColor};
419
614
  color: ${theme?.hoverTextColor};
420
615
  }
421
- ` }), _jsx("input", { type: "checkbox", checked: selectedOptions.includes(option.value), style: {
422
- width: '14px',
423
- height: '14px',
424
- margin: 'auto 0',
425
- }, readOnly: true }), _jsx("span", { style: {
426
- textOverflow: 'ellipsis',
427
- whiteSpace: 'nowrap',
428
- overflow: 'hidden',
429
- }, children: option.label ?? nullLabel })] }, option.value)))] })) : isLoading ? (_jsx("div", { style: {
430
- width: '100%',
431
- alignItems: 'center',
432
- justifyContent: 'center',
433
- display: 'flex',
434
- marginLeft: 'auto',
435
- marginRight: 'auto',
436
- padding: 8,
437
- }, children: _jsx(LoadingSpinner, {}) })) : null] }), document.body)] }));
616
+ ` }), submitButtonText ?? 'Apply Selection'] })] }))] }), document.body)] }));
438
617
  }
439
618
  export const ListboxTextInput = ({ value, onChange, placeholder, id, width, }) => {
440
619
  const { state: { theme }, } = useAdmin();
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import useOnClickOutside, { getEffectiveZIndex, } from '../hooks/useOnClickOutside';
3
3
  import { LoadingSpinner } from './UiComponents';
4
4
  import { useEffect, useRef, useState } from 'react';
5
- import { useAdmin } from '../AdminProvider';
5
+ import { useAdmin } from '../hooks/useAdmin';
6
6
  import { createPortal } from 'react-dom';
7
7
  import { getScrollableParent } from '../utils/ui';
8
8
  export function QuillPopover({ style, popoverStyle, label, isLoading, disabled, children, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAItD,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAoB,EACpB,KAAK,EACL,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,2CA0OtB"}
1
+ {"version":3,"file":"QuillSelect.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAoB,EACpB,KAAK,EACL,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,2CA0OtB"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import useOnClickOutside from '../hooks/useOnClickOutside';
3
+ import { defaultTheme } from '../models/Provider';
3
4
  import { useEffect, useRef, useState } from 'react';
4
- import { defaultTheme } from '../Admin';
5
5
  export function QuillSelectComponent({ style, options, value, onChange, theme = defaultTheme, label, hideEmptyOption, disabled, }) {
6
6
  const [showModal, setShowModal] = useState(false);
7
7
  const modalRef = useRef(null);