@rebasepro/studio 0.0.1-canary.4d4fb3e

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 (2509) hide show
  1. package/LICENSE +114 -0
  2. package/README.md +159 -0
  3. package/dist/common/src/collections/CollectionRegistry.d.ts +48 -0
  4. package/dist/common/src/collections/index.d.ts +1 -0
  5. package/dist/common/src/data/buildRebaseData.d.ts +14 -0
  6. package/dist/common/src/index.d.ts +3 -0
  7. package/dist/common/src/util/builders.d.ts +57 -0
  8. package/dist/common/src/util/callbacks.d.ts +6 -0
  9. package/dist/common/src/util/collections.d.ts +11 -0
  10. package/dist/common/src/util/common.d.ts +2 -0
  11. package/dist/common/src/util/conditions.d.ts +26 -0
  12. package/dist/common/src/util/entities.d.ts +36 -0
  13. package/dist/common/src/util/enums.d.ts +3 -0
  14. package/dist/common/src/util/index.d.ts +16 -0
  15. package/dist/common/src/util/navigation_from_path.d.ts +34 -0
  16. package/dist/common/src/util/navigation_utils.d.ts +20 -0
  17. package/dist/common/src/util/parent_references_from_path.d.ts +6 -0
  18. package/dist/common/src/util/paths.d.ts +14 -0
  19. package/dist/common/src/util/permissions.d.ts +5 -0
  20. package/dist/common/src/util/references.d.ts +2 -0
  21. package/dist/common/src/util/relations.d.ts +12 -0
  22. package/dist/common/src/util/resolutions.d.ts +72 -0
  23. package/dist/common/src/util/storage.d.ts +24 -0
  24. package/dist/core/src/components/AIIcon.d.ts +16 -0
  25. package/dist/core/src/components/ConfirmationDialog.d.ts +9 -0
  26. package/dist/core/src/components/Debug/UIReferenceView.d.ts +1 -0
  27. package/dist/core/src/components/Debug/UIStyleGuide.d.ts +1 -0
  28. package/dist/core/src/components/ErrorTooltip.d.ts +2 -0
  29. package/dist/core/src/components/ErrorView.d.ts +21 -0
  30. package/dist/core/src/components/LanguageToggle.d.ts +1 -0
  31. package/dist/core/src/components/LoginView/LoginView.d.ts +68 -0
  32. package/dist/core/src/components/LoginView/index.d.ts +2 -0
  33. package/dist/core/src/components/NotFoundPage.d.ts +1 -0
  34. package/dist/core/src/components/RebaseAuth.d.ts +10 -0
  35. package/dist/core/src/components/RebaseLogo.d.ts +7 -0
  36. package/dist/core/src/components/UnsavedChangesDialog.d.ts +9 -0
  37. package/dist/core/src/components/UserDisplay.d.ts +7 -0
  38. package/dist/core/src/components/UserSelectPopover.d.ts +62 -0
  39. package/dist/core/src/components/UserSettingsView.d.ts +1 -0
  40. package/dist/core/src/components/common/index.d.ts +6 -0
  41. package/dist/core/src/components/common/table_height.d.ts +5 -0
  42. package/dist/core/src/components/common/types.d.ts +59 -0
  43. package/dist/core/src/components/common/useColumnsIds.d.ts +9 -0
  44. package/dist/core/src/components/common/useDataTableController.d.ts +45 -0
  45. package/dist/core/src/components/common/useDebouncedData.d.ts +9 -0
  46. package/dist/core/src/components/common/useScrollRestoration.d.ts +14 -0
  47. package/dist/core/src/components/index.d.ts +16 -0
  48. package/dist/core/src/contexts/AdminModeController.d.ts +4 -0
  49. package/dist/core/src/contexts/AnalyticsContext.d.ts +3 -0
  50. package/dist/core/src/contexts/AuthControllerContext.d.ts +3 -0
  51. package/dist/core/src/contexts/CustomizationControllerContext.d.ts +3 -0
  52. package/dist/core/src/contexts/DataDriverContext.d.ts +3 -0
  53. package/dist/core/src/contexts/DatabaseAdminContext.d.ts +3 -0
  54. package/dist/core/src/contexts/DialogsProvider.d.ts +4 -0
  55. package/dist/core/src/contexts/EffectiveRoleController.d.ts +4 -0
  56. package/dist/core/src/contexts/InternalUserManagementContext.d.ts +3 -0
  57. package/dist/core/src/contexts/ModeController.d.ts +4 -0
  58. package/dist/core/src/contexts/RebaseClientInstanceContext.d.ts +6 -0
  59. package/dist/core/src/contexts/RebaseDataContext.d.ts +3 -0
  60. package/dist/core/src/contexts/SnackbarProvider.d.ts +2 -0
  61. package/dist/core/src/contexts/StorageSourceContext.d.ts +3 -0
  62. package/dist/core/src/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  63. package/dist/core/src/contexts/index.d.ts +13 -0
  64. package/dist/core/src/core/PluginLifecycleManager.d.ts +17 -0
  65. package/dist/core/src/core/PluginProviderStack.d.ts +21 -0
  66. package/dist/core/src/core/Rebase.d.ts +14 -0
  67. package/dist/core/src/core/RebaseProps.d.ts +136 -0
  68. package/dist/core/src/core/RebaseRouter.d.ts +4 -0
  69. package/dist/core/src/core/RebaseRoutes.d.ts +17 -0
  70. package/dist/core/src/core/index.d.ts +4 -0
  71. package/dist/core/src/hooks/ApiConfigContext.d.ts +24 -0
  72. package/dist/core/src/hooks/data/delete.d.ts +31 -0
  73. package/dist/core/src/hooks/data/save.d.ts +34 -0
  74. package/dist/core/src/hooks/data/useCollectionFetch.d.ts +51 -0
  75. package/dist/core/src/hooks/data/useData.d.ts +13 -0
  76. package/dist/core/src/hooks/data/useDataOrder.d.ts +12 -0
  77. package/dist/core/src/hooks/data/useEntityFetch.d.ts +30 -0
  78. package/dist/core/src/hooks/data/useRelationSelector.d.ts +52 -0
  79. package/dist/core/src/hooks/index.d.ts +36 -0
  80. package/dist/core/src/hooks/useAdminModeController.d.ts +19 -0
  81. package/dist/core/src/hooks/useAnalyticsController.d.ts +5 -0
  82. package/dist/core/src/hooks/useAuthController.d.ts +11 -0
  83. package/dist/core/src/hooks/useAuthSubscription.d.ts +2 -0
  84. package/dist/core/src/hooks/useBackendStorageSource.d.ts +30 -0
  85. package/dist/core/src/hooks/useBridgeRegistration.d.ts +18 -0
  86. package/dist/core/src/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  87. package/dist/core/src/hooks/useBuildAdminModeController.d.ts +6 -0
  88. package/dist/core/src/hooks/useBuildEffectiveRoleController.d.ts +8 -0
  89. package/dist/core/src/hooks/useBuildLocalConfigurationPersistence.d.ts +2 -0
  90. package/dist/core/src/hooks/useBuildModeController.d.ts +6 -0
  91. package/dist/core/src/hooks/useClipboard.d.ts +57 -0
  92. package/dist/core/src/hooks/useCollapsedGroups.d.ts +12 -0
  93. package/dist/core/src/hooks/useCustomizationController.d.ts +11 -0
  94. package/dist/core/src/hooks/useDialogsController.d.ts +11 -0
  95. package/dist/core/src/hooks/useEffectiveRoleController.d.ts +7 -0
  96. package/dist/core/src/hooks/useInternalUserManagementController.d.ts +12 -0
  97. package/dist/core/src/hooks/useLargeLayout.d.ts +1 -0
  98. package/dist/core/src/hooks/useModeController.d.ts +19 -0
  99. package/dist/core/src/hooks/usePermissions.d.ts +12 -0
  100. package/dist/core/src/hooks/useRebaseClient.d.ts +5 -0
  101. package/dist/core/src/hooks/useRebaseContext.d.ts +11 -0
  102. package/dist/core/src/hooks/useRebaseRegistry.d.ts +34 -0
  103. package/dist/core/src/hooks/useSlot.d.ts +18 -0
  104. package/dist/core/src/hooks/useSnackbarController.d.ts +20 -0
  105. package/dist/core/src/hooks/useStorageSource.d.ts +7 -0
  106. package/dist/core/src/hooks/useStudioBridge.d.ts +91 -0
  107. package/dist/core/src/hooks/useTranslation.d.ts +17 -0
  108. package/dist/core/src/hooks/useUnsavedChangesDialog.d.ts +12 -0
  109. package/dist/core/src/hooks/useUserConfigurationPersistence.d.ts +8 -0
  110. package/dist/core/src/hooks/useValidateAuthenticator.d.ts +21 -0
  111. package/dist/core/src/i18n/RebaseI18nProvider.d.ts +33 -0
  112. package/dist/core/src/index.d.ts +15 -0
  113. package/dist/core/src/internal/common.d.ts +3 -0
  114. package/dist/core/src/internal/useRestoreScroll.d.ts +6 -0
  115. package/dist/core/src/locales/de.d.ts +2 -0
  116. package/dist/core/src/locales/en.d.ts +10 -0
  117. package/dist/core/src/locales/es.d.ts +10 -0
  118. package/dist/core/src/locales/fr.d.ts +2 -0
  119. package/dist/core/src/locales/hi.d.ts +2 -0
  120. package/dist/core/src/locales/it.d.ts +2 -0
  121. package/dist/core/src/locales/pt.d.ts +7 -0
  122. package/dist/core/src/util/createFormexStub.d.ts +2 -0
  123. package/dist/core/src/util/entity_cache.d.ts +27 -0
  124. package/dist/core/src/util/enums.d.ts +5 -0
  125. package/dist/core/src/util/icon_list.d.ts +5 -0
  126. package/dist/core/src/util/icon_synonyms.d.ts +1853 -0
  127. package/dist/core/src/util/icons.d.ts +16 -0
  128. package/dist/core/src/util/index.d.ts +9 -0
  129. package/dist/core/src/util/previews.d.ts +4 -0
  130. package/dist/core/src/util/useStorageUploadController.d.ts +38 -0
  131. package/dist/core/src/util/useTraceUpdate.d.ts +2 -0
  132. package/dist/formex/src/Field.d.ts +52 -0
  133. package/dist/formex/src/Formex.d.ts +7 -0
  134. package/dist/formex/src/index.d.ts +5 -0
  135. package/dist/formex/src/types.d.ts +40 -0
  136. package/dist/formex/src/useCreateFormex.d.ts +14 -0
  137. package/dist/formex/src/utils.d.ts +16 -0
  138. package/dist/index.es.js +6430 -0
  139. package/dist/index.es.js.map +1 -0
  140. package/dist/index.umd.js +6443 -0
  141. package/dist/index.umd.js.map +1 -0
  142. package/dist/studio/src/components/JSEditor/JSEditor.d.ts +1 -0
  143. package/dist/studio/src/components/JSEditor/JSEditorSidebar.d.ts +21 -0
  144. package/dist/studio/src/components/JSEditor/JSMonacoEditor.d.ts +18 -0
  145. package/dist/studio/src/components/RLSEditor/PolicyEditor.d.ts +9 -0
  146. package/dist/studio/src/components/RLSEditor/RLSEditor.d.ts +19 -0
  147. package/dist/studio/src/components/RLSEditor/index.d.ts +1 -0
  148. package/dist/studio/src/components/RebaseStudio.d.ts +10 -0
  149. package/dist/studio/src/components/SQLEditor/ExplainVisualizer.d.ts +24 -0
  150. package/dist/studio/src/components/SQLEditor/MonacoEditor.d.ts +17 -0
  151. package/dist/studio/src/components/SQLEditor/SQLEditor.d.ts +11 -0
  152. package/dist/studio/src/components/SQLEditor/SQLEditorSidebar.d.ts +21 -0
  153. package/dist/studio/src/components/SQLEditor/SchemaBrowser.d.ts +8 -0
  154. package/dist/studio/src/components/StorageView/StorageView.d.ts +1 -0
  155. package/dist/studio/src/components/StudioHomePage.d.ts +9 -0
  156. package/dist/studio/src/index.d.ts +10 -0
  157. package/dist/studio/src/utils/arrays.d.ts +1 -0
  158. package/dist/studio/src/utils/entities.d.ts +0 -0
  159. package/dist/studio/src/utils/pgColumnToProperty.d.ts +6 -0
  160. package/dist/studio/src/utils/sql_utils.d.ts +52 -0
  161. package/dist/types/src/controllers/analytics_controller.d.ts +7 -0
  162. package/dist/types/src/controllers/auth.d.ts +117 -0
  163. package/dist/types/src/controllers/client.d.ts +58 -0
  164. package/dist/types/src/controllers/collection_registry.d.ts +44 -0
  165. package/dist/types/src/controllers/customization_controller.d.ts +54 -0
  166. package/dist/types/src/controllers/data.d.ts +141 -0
  167. package/dist/types/src/controllers/data_driver.d.ts +168 -0
  168. package/dist/types/src/controllers/database_admin.d.ts +11 -0
  169. package/dist/types/src/controllers/dialogs_controller.d.ts +36 -0
  170. package/dist/types/src/controllers/effective_role.d.ts +4 -0
  171. package/dist/types/src/controllers/index.d.ts +17 -0
  172. package/dist/types/src/controllers/local_config_persistence.d.ts +20 -0
  173. package/dist/types/src/controllers/navigation.d.ts +213 -0
  174. package/dist/types/src/controllers/registry.d.ts +51 -0
  175. package/dist/types/src/controllers/side_dialogs_controller.d.ts +67 -0
  176. package/dist/types/src/controllers/side_entity_controller.d.ts +89 -0
  177. package/dist/types/src/controllers/snackbar.d.ts +24 -0
  178. package/dist/types/src/controllers/storage.d.ts +173 -0
  179. package/dist/types/src/index.d.ts +4 -0
  180. package/dist/types/src/rebase_context.d.ts +101 -0
  181. package/dist/types/src/types/backend.d.ts +533 -0
  182. package/dist/types/src/types/builders.d.ts +14 -0
  183. package/dist/types/src/types/chips.d.ts +5 -0
  184. package/dist/types/src/types/collections.d.ts +812 -0
  185. package/dist/types/src/types/data_source.d.ts +64 -0
  186. package/dist/types/src/types/entities.d.ts +145 -0
  187. package/dist/types/src/types/entity_actions.d.ts +98 -0
  188. package/dist/types/src/types/entity_callbacks.d.ts +173 -0
  189. package/dist/types/src/types/entity_link_builder.d.ts +7 -0
  190. package/dist/types/src/types/entity_overrides.d.ts +9 -0
  191. package/dist/types/src/types/entity_views.d.ts +61 -0
  192. package/dist/types/src/types/export_import.d.ts +21 -0
  193. package/dist/types/src/types/index.d.ts +22 -0
  194. package/dist/types/src/types/locales.d.ts +4 -0
  195. package/dist/types/src/types/modify_collections.d.ts +5 -0
  196. package/dist/types/src/types/plugins.d.ts +225 -0
  197. package/dist/types/src/types/properties.d.ts +1091 -0
  198. package/dist/types/src/types/property_config.d.ts +70 -0
  199. package/dist/types/src/types/relations.d.ts +336 -0
  200. package/dist/types/src/types/slots.d.ts +228 -0
  201. package/dist/types/src/types/translations.d.ts +826 -0
  202. package/dist/types/src/types/user_management_delegate.d.ts +120 -0
  203. package/dist/types/src/types/websockets.d.ts +78 -0
  204. package/dist/types/src/users/index.d.ts +2 -0
  205. package/dist/types/src/users/roles.d.ts +22 -0
  206. package/dist/types/src/users/user.d.ts +46 -0
  207. package/dist/ui/src/components/Alert.d.ts +12 -0
  208. package/dist/ui/src/components/Autocomplete.d.ts +21 -0
  209. package/dist/ui/src/components/Avatar.d.ts +11 -0
  210. package/dist/ui/src/components/Badge.d.ts +8 -0
  211. package/dist/ui/src/components/BooleanSwitch.d.ts +14 -0
  212. package/dist/ui/src/components/BooleanSwitchWithLabel.d.ts +17 -0
  213. package/dist/ui/src/components/Button.d.ts +14 -0
  214. package/dist/ui/src/components/Card.d.ts +9 -0
  215. package/dist/ui/src/components/CenteredView.d.ts +9 -0
  216. package/dist/ui/src/components/Checkbox.d.ts +12 -0
  217. package/dist/ui/src/components/Chip.d.ts +22 -0
  218. package/dist/ui/src/components/CircularProgress.d.ts +5 -0
  219. package/dist/ui/src/components/CircularProgressCenter.d.ts +11 -0
  220. package/dist/ui/src/components/Collapse.d.ts +9 -0
  221. package/dist/ui/src/components/ColorPicker.d.ts +30 -0
  222. package/dist/ui/src/components/Container.d.ts +8 -0
  223. package/dist/ui/src/components/DateTimeField.d.ts +24 -0
  224. package/dist/ui/src/components/DebouncedTextField.d.ts +2 -0
  225. package/dist/ui/src/components/Dialog.d.ts +39 -0
  226. package/dist/ui/src/components/DialogActions.d.ts +7 -0
  227. package/dist/ui/src/components/DialogContent.d.ts +7 -0
  228. package/dist/ui/src/components/DialogTitle.d.ts +10 -0
  229. package/dist/ui/src/components/ErrorBoundary.d.ts +11 -0
  230. package/dist/ui/src/components/ExpandablePanel.d.ts +12 -0
  231. package/dist/ui/src/components/FileUpload.d.ts +23 -0
  232. package/dist/ui/src/components/IconButton.d.ts +11 -0
  233. package/dist/ui/src/components/InfoLabel.d.ts +5 -0
  234. package/dist/ui/src/components/InputLabel.d.ts +11 -0
  235. package/dist/ui/src/components/Label.d.ts +7 -0
  236. package/dist/ui/src/components/LoadingButton.d.ts +7 -0
  237. package/dist/ui/src/components/Markdown.d.ts +10 -0
  238. package/dist/ui/src/components/Menu.d.ts +23 -0
  239. package/dist/ui/src/components/Menubar.d.ts +80 -0
  240. package/dist/ui/src/components/MultiSelect.d.ts +48 -0
  241. package/dist/ui/src/components/Paper.d.ts +6 -0
  242. package/dist/ui/src/components/Popover.d.ts +22 -0
  243. package/dist/ui/src/components/RadioGroup.d.ts +28 -0
  244. package/dist/ui/src/components/ResizablePanels.d.ts +16 -0
  245. package/dist/ui/src/components/SearchBar.d.ts +22 -0
  246. package/dist/ui/src/components/Select.d.ts +43 -0
  247. package/dist/ui/src/components/Separator.d.ts +5 -0
  248. package/dist/ui/src/components/Sheet.d.ts +22 -0
  249. package/dist/ui/src/components/Skeleton.d.ts +6 -0
  250. package/dist/ui/src/components/Slider.d.ts +21 -0
  251. package/dist/ui/src/components/Table.d.ts +34 -0
  252. package/dist/ui/src/components/Tabs.d.ts +19 -0
  253. package/dist/ui/src/components/TextField.d.ts +58 -0
  254. package/dist/ui/src/components/TextareaAutosize.d.ts +43 -0
  255. package/dist/ui/src/components/ToggleButtonGroup.d.ts +30 -0
  256. package/dist/ui/src/components/Tooltip.d.ts +19 -0
  257. package/dist/ui/src/components/Typography.d.ts +36 -0
  258. package/dist/ui/src/components/VirtualTable/VirtualTable.d.ts +11 -0
  259. package/dist/ui/src/components/VirtualTable/VirtualTableCell.d.ts +20 -0
  260. package/dist/ui/src/components/VirtualTable/VirtualTableHeader.d.ts +29 -0
  261. package/dist/ui/src/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  262. package/dist/ui/src/components/VirtualTable/VirtualTableProps.d.ts +238 -0
  263. package/dist/ui/src/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  264. package/dist/ui/src/components/VirtualTable/index.d.ts +3 -0
  265. package/dist/ui/src/components/VirtualTable/types.d.ts +37 -0
  266. package/dist/ui/src/components/common/SelectInputLabel.d.ts +5 -0
  267. package/dist/ui/src/components/index.d.ts +53 -0
  268. package/dist/ui/src/hooks/PortalContainerContext.d.ts +31 -0
  269. package/dist/ui/src/hooks/index.d.ts +7 -0
  270. package/dist/ui/src/hooks/useDebounceCallback.d.ts +1 -0
  271. package/dist/ui/src/hooks/useDebounceValue.d.ts +1 -0
  272. package/dist/ui/src/hooks/useDebouncedCallback.d.ts +1 -0
  273. package/dist/ui/src/hooks/useIconStyles.d.ts +7 -0
  274. package/dist/ui/src/hooks/useInjectStyles.d.ts +7 -0
  275. package/dist/ui/src/hooks/useOutsideAlerter.d.ts +5 -0
  276. package/dist/ui/src/icons/GitHubIcon.d.ts +2 -0
  277. package/dist/ui/src/icons/HandleIcon.d.ts +1 -0
  278. package/dist/ui/src/icons/Icon.d.ts +13 -0
  279. package/dist/ui/src/icons/components/AbcIcon.d.ts +6 -0
  280. package/dist/ui/src/icons/components/AcUnitIcon.d.ts +6 -0
  281. package/dist/ui/src/icons/components/AccessAlarmIcon.d.ts +6 -0
  282. package/dist/ui/src/icons/components/AccessAlarmsIcon.d.ts +6 -0
  283. package/dist/ui/src/icons/components/AccessTimeFilledIcon.d.ts +6 -0
  284. package/dist/ui/src/icons/components/AccessTimeIcon.d.ts +6 -0
  285. package/dist/ui/src/icons/components/AccessibilityIcon.d.ts +6 -0
  286. package/dist/ui/src/icons/components/AccessibilityNewIcon.d.ts +6 -0
  287. package/dist/ui/src/icons/components/AccessibleForwardIcon.d.ts +6 -0
  288. package/dist/ui/src/icons/components/AccessibleIcon.d.ts +6 -0
  289. package/dist/ui/src/icons/components/AccountBalanceIcon.d.ts +6 -0
  290. package/dist/ui/src/icons/components/AccountBalanceWalletIcon.d.ts +6 -0
  291. package/dist/ui/src/icons/components/AccountBoxIcon.d.ts +6 -0
  292. package/dist/ui/src/icons/components/AccountCircleIcon.d.ts +6 -0
  293. package/dist/ui/src/icons/components/AccountTreeIcon.d.ts +6 -0
  294. package/dist/ui/src/icons/components/AdUnitsIcon.d.ts +6 -0
  295. package/dist/ui/src/icons/components/AdbIcon.d.ts +6 -0
  296. package/dist/ui/src/icons/components/AddAPhotoIcon.d.ts +6 -0
  297. package/dist/ui/src/icons/components/AddAlarmIcon.d.ts +6 -0
  298. package/dist/ui/src/icons/components/AddAlertIcon.d.ts +6 -0
  299. package/dist/ui/src/icons/components/AddBoxIcon.d.ts +6 -0
  300. package/dist/ui/src/icons/components/AddBusinessIcon.d.ts +6 -0
  301. package/dist/ui/src/icons/components/AddCardIcon.d.ts +6 -0
  302. package/dist/ui/src/icons/components/AddChartIcon.d.ts +6 -0
  303. package/dist/ui/src/icons/components/AddCircleIcon.d.ts +6 -0
  304. package/dist/ui/src/icons/components/AddCircleOutlineIcon.d.ts +6 -0
  305. package/dist/ui/src/icons/components/AddCommentIcon.d.ts +6 -0
  306. package/dist/ui/src/icons/components/AddHomeIcon.d.ts +6 -0
  307. package/dist/ui/src/icons/components/AddHomeWorkIcon.d.ts +6 -0
  308. package/dist/ui/src/icons/components/AddIcCallIcon.d.ts +6 -0
  309. package/dist/ui/src/icons/components/AddIcon.d.ts +6 -0
  310. package/dist/ui/src/icons/components/AddLinkIcon.d.ts +6 -0
  311. package/dist/ui/src/icons/components/AddLocationAltIcon.d.ts +6 -0
  312. package/dist/ui/src/icons/components/AddLocationIcon.d.ts +6 -0
  313. package/dist/ui/src/icons/components/AddModeratorIcon.d.ts +6 -0
  314. package/dist/ui/src/icons/components/AddPhotoAlternateIcon.d.ts +6 -0
  315. package/dist/ui/src/icons/components/AddReactionIcon.d.ts +6 -0
  316. package/dist/ui/src/icons/components/AddRoadIcon.d.ts +6 -0
  317. package/dist/ui/src/icons/components/AddShoppingCartIcon.d.ts +6 -0
  318. package/dist/ui/src/icons/components/AddTaskIcon.d.ts +6 -0
  319. package/dist/ui/src/icons/components/AddToDriveIcon.d.ts +6 -0
  320. package/dist/ui/src/icons/components/AddToHomeScreenIcon.d.ts +6 -0
  321. package/dist/ui/src/icons/components/AddToPhotosIcon.d.ts +6 -0
  322. package/dist/ui/src/icons/components/AddToQueueIcon.d.ts +6 -0
  323. package/dist/ui/src/icons/components/AdfScannerIcon.d.ts +6 -0
  324. package/dist/ui/src/icons/components/AdjustIcon.d.ts +6 -0
  325. package/dist/ui/src/icons/components/AdminPanelSettingsIcon.d.ts +6 -0
  326. package/dist/ui/src/icons/components/AdobeIcon.d.ts +6 -0
  327. package/dist/ui/src/icons/components/AdsClickIcon.d.ts +6 -0
  328. package/dist/ui/src/icons/components/AgricultureIcon.d.ts +6 -0
  329. package/dist/ui/src/icons/components/AirIcon.d.ts +6 -0
  330. package/dist/ui/src/icons/components/AirlineSeatFlatAngledIcon.d.ts +6 -0
  331. package/dist/ui/src/icons/components/AirlineSeatFlatIcon.d.ts +6 -0
  332. package/dist/ui/src/icons/components/AirlineSeatIndividualSuiteIcon.d.ts +6 -0
  333. package/dist/ui/src/icons/components/AirlineSeatLegroomExtraIcon.d.ts +6 -0
  334. package/dist/ui/src/icons/components/AirlineSeatLegroomNormalIcon.d.ts +6 -0
  335. package/dist/ui/src/icons/components/AirlineSeatLegroomReducedIcon.d.ts +6 -0
  336. package/dist/ui/src/icons/components/AirlineSeatReclineExtraIcon.d.ts +6 -0
  337. package/dist/ui/src/icons/components/AirlineSeatReclineNormalIcon.d.ts +6 -0
  338. package/dist/ui/src/icons/components/AirlineStopsIcon.d.ts +6 -0
  339. package/dist/ui/src/icons/components/AirlinesIcon.d.ts +6 -0
  340. package/dist/ui/src/icons/components/AirplaneTicketIcon.d.ts +6 -0
  341. package/dist/ui/src/icons/components/AirplanemodeActiveIcon.d.ts +6 -0
  342. package/dist/ui/src/icons/components/AirplanemodeInactiveIcon.d.ts +6 -0
  343. package/dist/ui/src/icons/components/AirplanemodeOffIcon.d.ts +6 -0
  344. package/dist/ui/src/icons/components/AirplanemodeOnIcon.d.ts +6 -0
  345. package/dist/ui/src/icons/components/AirplayIcon.d.ts +6 -0
  346. package/dist/ui/src/icons/components/AirportShuttleIcon.d.ts +6 -0
  347. package/dist/ui/src/icons/components/AlarmAddIcon.d.ts +6 -0
  348. package/dist/ui/src/icons/components/AlarmIcon.d.ts +6 -0
  349. package/dist/ui/src/icons/components/AlarmOffIcon.d.ts +6 -0
  350. package/dist/ui/src/icons/components/AlarmOnIcon.d.ts +6 -0
  351. package/dist/ui/src/icons/components/AlbumIcon.d.ts +6 -0
  352. package/dist/ui/src/icons/components/AlignHorizontalCenterIcon.d.ts +6 -0
  353. package/dist/ui/src/icons/components/AlignHorizontalLeftIcon.d.ts +6 -0
  354. package/dist/ui/src/icons/components/AlignHorizontalRightIcon.d.ts +6 -0
  355. package/dist/ui/src/icons/components/AlignVerticalBottomIcon.d.ts +6 -0
  356. package/dist/ui/src/icons/components/AlignVerticalCenterIcon.d.ts +6 -0
  357. package/dist/ui/src/icons/components/AlignVerticalTopIcon.d.ts +6 -0
  358. package/dist/ui/src/icons/components/AllInboxIcon.d.ts +6 -0
  359. package/dist/ui/src/icons/components/AllInclusiveIcon.d.ts +6 -0
  360. package/dist/ui/src/icons/components/AllOutIcon.d.ts +6 -0
  361. package/dist/ui/src/icons/components/AltRouteIcon.d.ts +6 -0
  362. package/dist/ui/src/icons/components/AlternateEmailIcon.d.ts +6 -0
  363. package/dist/ui/src/icons/components/AmpStoriesIcon.d.ts +6 -0
  364. package/dist/ui/src/icons/components/AnalyticsIcon.d.ts +6 -0
  365. package/dist/ui/src/icons/components/AnchorIcon.d.ts +6 -0
  366. package/dist/ui/src/icons/components/AndroidIcon.d.ts +6 -0
  367. package/dist/ui/src/icons/components/AnimationIcon.d.ts +6 -0
  368. package/dist/ui/src/icons/components/AnnouncementIcon.d.ts +6 -0
  369. package/dist/ui/src/icons/components/AodIcon.d.ts +6 -0
  370. package/dist/ui/src/icons/components/ApartmentIcon.d.ts +6 -0
  371. package/dist/ui/src/icons/components/ApiIcon.d.ts +6 -0
  372. package/dist/ui/src/icons/components/AppBlockingIcon.d.ts +6 -0
  373. package/dist/ui/src/icons/components/AppRegistrationIcon.d.ts +6 -0
  374. package/dist/ui/src/icons/components/AppSettingsAltIcon.d.ts +6 -0
  375. package/dist/ui/src/icons/components/AppShortcutIcon.d.ts +6 -0
  376. package/dist/ui/src/icons/components/AppleIcon.d.ts +6 -0
  377. package/dist/ui/src/icons/components/ApprovalIcon.d.ts +6 -0
  378. package/dist/ui/src/icons/components/AppsIcon.d.ts +6 -0
  379. package/dist/ui/src/icons/components/AppsOutageIcon.d.ts +6 -0
  380. package/dist/ui/src/icons/components/ArchitectureIcon.d.ts +6 -0
  381. package/dist/ui/src/icons/components/ArchiveIcon.d.ts +6 -0
  382. package/dist/ui/src/icons/components/AreaChartIcon.d.ts +6 -0
  383. package/dist/ui/src/icons/components/ArrowBackIcon.d.ts +6 -0
  384. package/dist/ui/src/icons/components/ArrowBackIosIcon.d.ts +6 -0
  385. package/dist/ui/src/icons/components/ArrowBackIosNewIcon.d.ts +6 -0
  386. package/dist/ui/src/icons/components/ArrowCircleDownIcon.d.ts +6 -0
  387. package/dist/ui/src/icons/components/ArrowCircleLeftIcon.d.ts +6 -0
  388. package/dist/ui/src/icons/components/ArrowCircleRightIcon.d.ts +6 -0
  389. package/dist/ui/src/icons/components/ArrowCircleUpIcon.d.ts +6 -0
  390. package/dist/ui/src/icons/components/ArrowDownwardIcon.d.ts +6 -0
  391. package/dist/ui/src/icons/components/ArrowDropDownCircleIcon.d.ts +6 -0
  392. package/dist/ui/src/icons/components/ArrowDropDownIcon.d.ts +6 -0
  393. package/dist/ui/src/icons/components/ArrowDropUpIcon.d.ts +6 -0
  394. package/dist/ui/src/icons/components/ArrowForwardIcon.d.ts +6 -0
  395. package/dist/ui/src/icons/components/ArrowForwardIosIcon.d.ts +6 -0
  396. package/dist/ui/src/icons/components/ArrowLeftIcon.d.ts +6 -0
  397. package/dist/ui/src/icons/components/ArrowOutwardIcon.d.ts +6 -0
  398. package/dist/ui/src/icons/components/ArrowRightAltIcon.d.ts +6 -0
  399. package/dist/ui/src/icons/components/ArrowRightIcon.d.ts +6 -0
  400. package/dist/ui/src/icons/components/ArrowUpwardIcon.d.ts +6 -0
  401. package/dist/ui/src/icons/components/ArtTrackIcon.d.ts +6 -0
  402. package/dist/ui/src/icons/components/ArticleIcon.d.ts +6 -0
  403. package/dist/ui/src/icons/components/AspectRatioIcon.d.ts +6 -0
  404. package/dist/ui/src/icons/components/AssessmentIcon.d.ts +6 -0
  405. package/dist/ui/src/icons/components/AssignmentIcon.d.ts +6 -0
  406. package/dist/ui/src/icons/components/AssignmentIndIcon.d.ts +6 -0
  407. package/dist/ui/src/icons/components/AssignmentLateIcon.d.ts +6 -0
  408. package/dist/ui/src/icons/components/AssignmentReturnIcon.d.ts +6 -0
  409. package/dist/ui/src/icons/components/AssignmentReturnedIcon.d.ts +6 -0
  410. package/dist/ui/src/icons/components/AssignmentTurnedInIcon.d.ts +6 -0
  411. package/dist/ui/src/icons/components/AssistWalkerIcon.d.ts +6 -0
  412. package/dist/ui/src/icons/components/AssistantDirectionIcon.d.ts +6 -0
  413. package/dist/ui/src/icons/components/AssistantIcon.d.ts +6 -0
  414. package/dist/ui/src/icons/components/AssistantPhotoIcon.d.ts +6 -0
  415. package/dist/ui/src/icons/components/AssuredWorkloadIcon.d.ts +6 -0
  416. package/dist/ui/src/icons/components/AtmIcon.d.ts +6 -0
  417. package/dist/ui/src/icons/components/AttachEmailIcon.d.ts +6 -0
  418. package/dist/ui/src/icons/components/AttachFileIcon.d.ts +6 -0
  419. package/dist/ui/src/icons/components/AttachMoneyIcon.d.ts +6 -0
  420. package/dist/ui/src/icons/components/AttachmentIcon.d.ts +6 -0
  421. package/dist/ui/src/icons/components/AttractionsIcon.d.ts +6 -0
  422. package/dist/ui/src/icons/components/AttributionIcon.d.ts +6 -0
  423. package/dist/ui/src/icons/components/AudioFileIcon.d.ts +6 -0
  424. package/dist/ui/src/icons/components/AudiotrackIcon.d.ts +6 -0
  425. package/dist/ui/src/icons/components/AutoAwesomeIcon.d.ts +6 -0
  426. package/dist/ui/src/icons/components/AutoAwesomeMosaicIcon.d.ts +6 -0
  427. package/dist/ui/src/icons/components/AutoAwesomeMotionIcon.d.ts +6 -0
  428. package/dist/ui/src/icons/components/AutoDeleteIcon.d.ts +6 -0
  429. package/dist/ui/src/icons/components/AutoFixHighIcon.d.ts +6 -0
  430. package/dist/ui/src/icons/components/AutoFixNormalIcon.d.ts +6 -0
  431. package/dist/ui/src/icons/components/AutoFixOffIcon.d.ts +6 -0
  432. package/dist/ui/src/icons/components/AutoGraphIcon.d.ts +6 -0
  433. package/dist/ui/src/icons/components/AutoModeIcon.d.ts +6 -0
  434. package/dist/ui/src/icons/components/AutoStoriesIcon.d.ts +6 -0
  435. package/dist/ui/src/icons/components/AutofpsSelectIcon.d.ts +6 -0
  436. package/dist/ui/src/icons/components/AutorenewIcon.d.ts +6 -0
  437. package/dist/ui/src/icons/components/AvTimerIcon.d.ts +6 -0
  438. package/dist/ui/src/icons/components/BabyChangingStationIcon.d.ts +6 -0
  439. package/dist/ui/src/icons/components/BackHandIcon.d.ts +6 -0
  440. package/dist/ui/src/icons/components/BackpackIcon.d.ts +6 -0
  441. package/dist/ui/src/icons/components/BackspaceIcon.d.ts +6 -0
  442. package/dist/ui/src/icons/components/BackupIcon.d.ts +6 -0
  443. package/dist/ui/src/icons/components/BackupTableIcon.d.ts +6 -0
  444. package/dist/ui/src/icons/components/BadgeIcon.d.ts +6 -0
  445. package/dist/ui/src/icons/components/BakeryDiningIcon.d.ts +6 -0
  446. package/dist/ui/src/icons/components/BalanceIcon.d.ts +6 -0
  447. package/dist/ui/src/icons/components/BalconyIcon.d.ts +6 -0
  448. package/dist/ui/src/icons/components/BallotIcon.d.ts +6 -0
  449. package/dist/ui/src/icons/components/BarChartIcon.d.ts +6 -0
  450. package/dist/ui/src/icons/components/BatchPredictionIcon.d.ts +6 -0
  451. package/dist/ui/src/icons/components/BathroomIcon.d.ts +6 -0
  452. package/dist/ui/src/icons/components/BathtubIcon.d.ts +6 -0
  453. package/dist/ui/src/icons/components/Battery0BarIcon.d.ts +6 -0
  454. package/dist/ui/src/icons/components/Battery1BarIcon.d.ts +6 -0
  455. package/dist/ui/src/icons/components/Battery2BarIcon.d.ts +6 -0
  456. package/dist/ui/src/icons/components/Battery3BarIcon.d.ts +6 -0
  457. package/dist/ui/src/icons/components/Battery4BarIcon.d.ts +6 -0
  458. package/dist/ui/src/icons/components/Battery5BarIcon.d.ts +6 -0
  459. package/dist/ui/src/icons/components/Battery6BarIcon.d.ts +6 -0
  460. package/dist/ui/src/icons/components/BatteryAlertIcon.d.ts +6 -0
  461. package/dist/ui/src/icons/components/BatteryChargingFullIcon.d.ts +6 -0
  462. package/dist/ui/src/icons/components/BatteryFullIcon.d.ts +6 -0
  463. package/dist/ui/src/icons/components/BatterySaverIcon.d.ts +6 -0
  464. package/dist/ui/src/icons/components/BatteryStdIcon.d.ts +6 -0
  465. package/dist/ui/src/icons/components/BatteryUnknownIcon.d.ts +6 -0
  466. package/dist/ui/src/icons/components/BeachAccessIcon.d.ts +6 -0
  467. package/dist/ui/src/icons/components/BedIcon.d.ts +6 -0
  468. package/dist/ui/src/icons/components/BedroomBabyIcon.d.ts +6 -0
  469. package/dist/ui/src/icons/components/BedroomChildIcon.d.ts +6 -0
  470. package/dist/ui/src/icons/components/BedroomParentIcon.d.ts +6 -0
  471. package/dist/ui/src/icons/components/BedtimeIcon.d.ts +6 -0
  472. package/dist/ui/src/icons/components/BedtimeOffIcon.d.ts +6 -0
  473. package/dist/ui/src/icons/components/BeenhereIcon.d.ts +6 -0
  474. package/dist/ui/src/icons/components/BentoIcon.d.ts +6 -0
  475. package/dist/ui/src/icons/components/BikeScooterIcon.d.ts +6 -0
  476. package/dist/ui/src/icons/components/BiotechIcon.d.ts +6 -0
  477. package/dist/ui/src/icons/components/BlenderIcon.d.ts +6 -0
  478. package/dist/ui/src/icons/components/BlindIcon.d.ts +6 -0
  479. package/dist/ui/src/icons/components/BlindsClosedIcon.d.ts +6 -0
  480. package/dist/ui/src/icons/components/BlindsIcon.d.ts +6 -0
  481. package/dist/ui/src/icons/components/BlockIcon.d.ts +6 -0
  482. package/dist/ui/src/icons/components/BloodtypeIcon.d.ts +6 -0
  483. package/dist/ui/src/icons/components/BluetoothAudioIcon.d.ts +6 -0
  484. package/dist/ui/src/icons/components/BluetoothConnectedIcon.d.ts +6 -0
  485. package/dist/ui/src/icons/components/BluetoothDisabledIcon.d.ts +6 -0
  486. package/dist/ui/src/icons/components/BluetoothDriveIcon.d.ts +6 -0
  487. package/dist/ui/src/icons/components/BluetoothIcon.d.ts +6 -0
  488. package/dist/ui/src/icons/components/BluetoothSearchingIcon.d.ts +6 -0
  489. package/dist/ui/src/icons/components/BlurCircularIcon.d.ts +6 -0
  490. package/dist/ui/src/icons/components/BlurLinearIcon.d.ts +6 -0
  491. package/dist/ui/src/icons/components/BlurOffIcon.d.ts +6 -0
  492. package/dist/ui/src/icons/components/BlurOnIcon.d.ts +6 -0
  493. package/dist/ui/src/icons/components/BoltIcon.d.ts +6 -0
  494. package/dist/ui/src/icons/components/BookIcon.d.ts +6 -0
  495. package/dist/ui/src/icons/components/BookOnlineIcon.d.ts +6 -0
  496. package/dist/ui/src/icons/components/BookmarkAddIcon.d.ts +6 -0
  497. package/dist/ui/src/icons/components/BookmarkAddedIcon.d.ts +6 -0
  498. package/dist/ui/src/icons/components/BookmarkBorderIcon.d.ts +6 -0
  499. package/dist/ui/src/icons/components/BookmarkIcon.d.ts +6 -0
  500. package/dist/ui/src/icons/components/BookmarkOutlineIcon.d.ts +6 -0
  501. package/dist/ui/src/icons/components/BookmarkRemoveIcon.d.ts +6 -0
  502. package/dist/ui/src/icons/components/BookmarksIcon.d.ts +6 -0
  503. package/dist/ui/src/icons/components/BorderAllIcon.d.ts +6 -0
  504. package/dist/ui/src/icons/components/BorderBottomIcon.d.ts +6 -0
  505. package/dist/ui/src/icons/components/BorderClearIcon.d.ts +6 -0
  506. package/dist/ui/src/icons/components/BorderColorIcon.d.ts +6 -0
  507. package/dist/ui/src/icons/components/BorderHorizontalIcon.d.ts +6 -0
  508. package/dist/ui/src/icons/components/BorderInnerIcon.d.ts +6 -0
  509. package/dist/ui/src/icons/components/BorderLeftIcon.d.ts +6 -0
  510. package/dist/ui/src/icons/components/BorderOuterIcon.d.ts +6 -0
  511. package/dist/ui/src/icons/components/BorderRightIcon.d.ts +6 -0
  512. package/dist/ui/src/icons/components/BorderStyleIcon.d.ts +6 -0
  513. package/dist/ui/src/icons/components/BorderTopIcon.d.ts +6 -0
  514. package/dist/ui/src/icons/components/BorderVerticalIcon.d.ts +6 -0
  515. package/dist/ui/src/icons/components/BoyIcon.d.ts +6 -0
  516. package/dist/ui/src/icons/components/BrandingWatermarkIcon.d.ts +6 -0
  517. package/dist/ui/src/icons/components/BreakfastDiningIcon.d.ts +6 -0
  518. package/dist/ui/src/icons/components/Brightness1Icon.d.ts +6 -0
  519. package/dist/ui/src/icons/components/Brightness2Icon.d.ts +6 -0
  520. package/dist/ui/src/icons/components/Brightness3Icon.d.ts +6 -0
  521. package/dist/ui/src/icons/components/Brightness4Icon.d.ts +6 -0
  522. package/dist/ui/src/icons/components/Brightness5Icon.d.ts +6 -0
  523. package/dist/ui/src/icons/components/Brightness6Icon.d.ts +6 -0
  524. package/dist/ui/src/icons/components/Brightness7Icon.d.ts +6 -0
  525. package/dist/ui/src/icons/components/BrightnessAutoIcon.d.ts +6 -0
  526. package/dist/ui/src/icons/components/BrightnessHighIcon.d.ts +6 -0
  527. package/dist/ui/src/icons/components/BrightnessLowIcon.d.ts +6 -0
  528. package/dist/ui/src/icons/components/BrightnessMediumIcon.d.ts +6 -0
  529. package/dist/ui/src/icons/components/BroadcastOnHomeIcon.d.ts +6 -0
  530. package/dist/ui/src/icons/components/BroadcastOnPersonalIcon.d.ts +6 -0
  531. package/dist/ui/src/icons/components/BrokenImageIcon.d.ts +6 -0
  532. package/dist/ui/src/icons/components/BrowseGalleryIcon.d.ts +6 -0
  533. package/dist/ui/src/icons/components/BrowserNotSupportedIcon.d.ts +6 -0
  534. package/dist/ui/src/icons/components/BrowserUpdatedIcon.d.ts +6 -0
  535. package/dist/ui/src/icons/components/BrunchDiningIcon.d.ts +6 -0
  536. package/dist/ui/src/icons/components/BrushIcon.d.ts +6 -0
  537. package/dist/ui/src/icons/components/BubbleChartIcon.d.ts +6 -0
  538. package/dist/ui/src/icons/components/BugReportIcon.d.ts +6 -0
  539. package/dist/ui/src/icons/components/BuildCircleIcon.d.ts +6 -0
  540. package/dist/ui/src/icons/components/BuildIcon.d.ts +6 -0
  541. package/dist/ui/src/icons/components/BungalowIcon.d.ts +6 -0
  542. package/dist/ui/src/icons/components/BurstModeIcon.d.ts +6 -0
  543. package/dist/ui/src/icons/components/BusAlertIcon.d.ts +6 -0
  544. package/dist/ui/src/icons/components/BusinessCenterIcon.d.ts +6 -0
  545. package/dist/ui/src/icons/components/BusinessIcon.d.ts +6 -0
  546. package/dist/ui/src/icons/components/CabinIcon.d.ts +6 -0
  547. package/dist/ui/src/icons/components/CableIcon.d.ts +6 -0
  548. package/dist/ui/src/icons/components/CachedIcon.d.ts +6 -0
  549. package/dist/ui/src/icons/components/CakeIcon.d.ts +6 -0
  550. package/dist/ui/src/icons/components/CalculateIcon.d.ts +6 -0
  551. package/dist/ui/src/icons/components/CalendarMonthIcon.d.ts +6 -0
  552. package/dist/ui/src/icons/components/CalendarTodayIcon.d.ts +6 -0
  553. package/dist/ui/src/icons/components/CalendarViewDayIcon.d.ts +6 -0
  554. package/dist/ui/src/icons/components/CalendarViewMonthIcon.d.ts +6 -0
  555. package/dist/ui/src/icons/components/CalendarViewWeekIcon.d.ts +6 -0
  556. package/dist/ui/src/icons/components/CallEndIcon.d.ts +6 -0
  557. package/dist/ui/src/icons/components/CallIcon.d.ts +6 -0
  558. package/dist/ui/src/icons/components/CallMadeIcon.d.ts +6 -0
  559. package/dist/ui/src/icons/components/CallMergeIcon.d.ts +6 -0
  560. package/dist/ui/src/icons/components/CallMissedIcon.d.ts +6 -0
  561. package/dist/ui/src/icons/components/CallMissedOutgoingIcon.d.ts +6 -0
  562. package/dist/ui/src/icons/components/CallReceivedIcon.d.ts +6 -0
  563. package/dist/ui/src/icons/components/CallSplitIcon.d.ts +6 -0
  564. package/dist/ui/src/icons/components/CallToActionIcon.d.ts +6 -0
  565. package/dist/ui/src/icons/components/CameraAltIcon.d.ts +6 -0
  566. package/dist/ui/src/icons/components/CameraEnhanceIcon.d.ts +6 -0
  567. package/dist/ui/src/icons/components/CameraFrontIcon.d.ts +6 -0
  568. package/dist/ui/src/icons/components/CameraIcon.d.ts +6 -0
  569. package/dist/ui/src/icons/components/CameraIndoorIcon.d.ts +6 -0
  570. package/dist/ui/src/icons/components/CameraOutdoorIcon.d.ts +6 -0
  571. package/dist/ui/src/icons/components/CameraRearIcon.d.ts +6 -0
  572. package/dist/ui/src/icons/components/CameraRollIcon.d.ts +6 -0
  573. package/dist/ui/src/icons/components/CameraswitchIcon.d.ts +6 -0
  574. package/dist/ui/src/icons/components/CampaignIcon.d.ts +6 -0
  575. package/dist/ui/src/icons/components/CancelIcon.d.ts +6 -0
  576. package/dist/ui/src/icons/components/CancelPresentationIcon.d.ts +6 -0
  577. package/dist/ui/src/icons/components/CancelScheduleSendIcon.d.ts +6 -0
  578. package/dist/ui/src/icons/components/CandlestickChartIcon.d.ts +6 -0
  579. package/dist/ui/src/icons/components/CarCrashIcon.d.ts +6 -0
  580. package/dist/ui/src/icons/components/CarRentalIcon.d.ts +6 -0
  581. package/dist/ui/src/icons/components/CarRepairIcon.d.ts +6 -0
  582. package/dist/ui/src/icons/components/CardGiftcardIcon.d.ts +6 -0
  583. package/dist/ui/src/icons/components/CardMembershipIcon.d.ts +6 -0
  584. package/dist/ui/src/icons/components/CardTravelIcon.d.ts +6 -0
  585. package/dist/ui/src/icons/components/CarpenterIcon.d.ts +6 -0
  586. package/dist/ui/src/icons/components/CasesIcon.d.ts +6 -0
  587. package/dist/ui/src/icons/components/CasinoIcon.d.ts +6 -0
  588. package/dist/ui/src/icons/components/CastConnectedIcon.d.ts +6 -0
  589. package/dist/ui/src/icons/components/CastForEducationIcon.d.ts +6 -0
  590. package/dist/ui/src/icons/components/CastIcon.d.ts +6 -0
  591. package/dist/ui/src/icons/components/CastleIcon.d.ts +6 -0
  592. package/dist/ui/src/icons/components/CatchingPokemonIcon.d.ts +6 -0
  593. package/dist/ui/src/icons/components/CategoryIcon.d.ts +6 -0
  594. package/dist/ui/src/icons/components/CelebrationIcon.d.ts +6 -0
  595. package/dist/ui/src/icons/components/CellTowerIcon.d.ts +6 -0
  596. package/dist/ui/src/icons/components/CellWifiIcon.d.ts +6 -0
  597. package/dist/ui/src/icons/components/CenterFocusStrongIcon.d.ts +6 -0
  598. package/dist/ui/src/icons/components/CenterFocusWeakIcon.d.ts +6 -0
  599. package/dist/ui/src/icons/components/ChairAltIcon.d.ts +6 -0
  600. package/dist/ui/src/icons/components/ChairIcon.d.ts +6 -0
  601. package/dist/ui/src/icons/components/ChaletIcon.d.ts +6 -0
  602. package/dist/ui/src/icons/components/ChangeCircleIcon.d.ts +6 -0
  603. package/dist/ui/src/icons/components/ChangeHistoryIcon.d.ts +6 -0
  604. package/dist/ui/src/icons/components/ChargingStationIcon.d.ts +6 -0
  605. package/dist/ui/src/icons/components/ChatBubbleIcon.d.ts +6 -0
  606. package/dist/ui/src/icons/components/ChatBubbleOutlineIcon.d.ts +6 -0
  607. package/dist/ui/src/icons/components/ChatIcon.d.ts +6 -0
  608. package/dist/ui/src/icons/components/CheckBoxIcon.d.ts +6 -0
  609. package/dist/ui/src/icons/components/CheckBoxOutlineBlankIcon.d.ts +6 -0
  610. package/dist/ui/src/icons/components/CheckCircleIcon.d.ts +6 -0
  611. package/dist/ui/src/icons/components/CheckCircleOutlineIcon.d.ts +6 -0
  612. package/dist/ui/src/icons/components/CheckIcon.d.ts +6 -0
  613. package/dist/ui/src/icons/components/ChecklistIcon.d.ts +6 -0
  614. package/dist/ui/src/icons/components/ChecklistRtlIcon.d.ts +6 -0
  615. package/dist/ui/src/icons/components/CheckroomIcon.d.ts +6 -0
  616. package/dist/ui/src/icons/components/ChevronLeftIcon.d.ts +6 -0
  617. package/dist/ui/src/icons/components/ChevronRightIcon.d.ts +6 -0
  618. package/dist/ui/src/icons/components/ChildCareIcon.d.ts +6 -0
  619. package/dist/ui/src/icons/components/ChildFriendlyIcon.d.ts +6 -0
  620. package/dist/ui/src/icons/components/ChromeReaderModeIcon.d.ts +6 -0
  621. package/dist/ui/src/icons/components/ChurchIcon.d.ts +6 -0
  622. package/dist/ui/src/icons/components/CircleIcon.d.ts +6 -0
  623. package/dist/ui/src/icons/components/CircleNotificationsIcon.d.ts +6 -0
  624. package/dist/ui/src/icons/components/ClassIcon.d.ts +6 -0
  625. package/dist/ui/src/icons/components/CleanHandsIcon.d.ts +6 -0
  626. package/dist/ui/src/icons/components/CleaningServicesIcon.d.ts +6 -0
  627. package/dist/ui/src/icons/components/ClearAllIcon.d.ts +6 -0
  628. package/dist/ui/src/icons/components/ClearIcon.d.ts +6 -0
  629. package/dist/ui/src/icons/components/CloseFullscreenIcon.d.ts +6 -0
  630. package/dist/ui/src/icons/components/CloseIcon.d.ts +6 -0
  631. package/dist/ui/src/icons/components/ClosedCaptionDisabledIcon.d.ts +6 -0
  632. package/dist/ui/src/icons/components/ClosedCaptionIcon.d.ts +6 -0
  633. package/dist/ui/src/icons/components/ClosedCaptionOffIcon.d.ts +6 -0
  634. package/dist/ui/src/icons/components/CloudCircleIcon.d.ts +6 -0
  635. package/dist/ui/src/icons/components/CloudDoneIcon.d.ts +6 -0
  636. package/dist/ui/src/icons/components/CloudDownloadIcon.d.ts +6 -0
  637. package/dist/ui/src/icons/components/CloudIcon.d.ts +6 -0
  638. package/dist/ui/src/icons/components/CloudOffIcon.d.ts +6 -0
  639. package/dist/ui/src/icons/components/CloudQueueIcon.d.ts +6 -0
  640. package/dist/ui/src/icons/components/CloudSyncIcon.d.ts +6 -0
  641. package/dist/ui/src/icons/components/CloudUploadIcon.d.ts +6 -0
  642. package/dist/ui/src/icons/components/Co2Icon.d.ts +6 -0
  643. package/dist/ui/src/icons/components/CoPresentIcon.d.ts +6 -0
  644. package/dist/ui/src/icons/components/CodeIcon.d.ts +6 -0
  645. package/dist/ui/src/icons/components/CodeOffIcon.d.ts +6 -0
  646. package/dist/ui/src/icons/components/CoffeeIcon.d.ts +6 -0
  647. package/dist/ui/src/icons/components/CoffeeMakerIcon.d.ts +6 -0
  648. package/dist/ui/src/icons/components/CollectionsBookmarkIcon.d.ts +6 -0
  649. package/dist/ui/src/icons/components/CollectionsIcon.d.ts +6 -0
  650. package/dist/ui/src/icons/components/ColorLensIcon.d.ts +6 -0
  651. package/dist/ui/src/icons/components/ColorizeIcon.d.ts +6 -0
  652. package/dist/ui/src/icons/components/CommentBankIcon.d.ts +6 -0
  653. package/dist/ui/src/icons/components/CommentIcon.d.ts +6 -0
  654. package/dist/ui/src/icons/components/CommentsDisabledIcon.d.ts +6 -0
  655. package/dist/ui/src/icons/components/CommitIcon.d.ts +6 -0
  656. package/dist/ui/src/icons/components/CommuteIcon.d.ts +6 -0
  657. package/dist/ui/src/icons/components/CompareArrowsIcon.d.ts +6 -0
  658. package/dist/ui/src/icons/components/CompareIcon.d.ts +6 -0
  659. package/dist/ui/src/icons/components/CompassCalibrationIcon.d.ts +6 -0
  660. package/dist/ui/src/icons/components/CompostIcon.d.ts +6 -0
  661. package/dist/ui/src/icons/components/CompressIcon.d.ts +6 -0
  662. package/dist/ui/src/icons/components/ComputerIcon.d.ts +6 -0
  663. package/dist/ui/src/icons/components/ConfirmationNumIcon.d.ts +6 -0
  664. package/dist/ui/src/icons/components/ConfirmationNumberIcon.d.ts +6 -0
  665. package/dist/ui/src/icons/components/ConnectWithoutContactIcon.d.ts +6 -0
  666. package/dist/ui/src/icons/components/ConnectedTvIcon.d.ts +6 -0
  667. package/dist/ui/src/icons/components/ConnectingAirportsIcon.d.ts +6 -0
  668. package/dist/ui/src/icons/components/ConstructionIcon.d.ts +6 -0
  669. package/dist/ui/src/icons/components/ContactEmergencyIcon.d.ts +6 -0
  670. package/dist/ui/src/icons/components/ContactMailIcon.d.ts +6 -0
  671. package/dist/ui/src/icons/components/ContactPageIcon.d.ts +6 -0
  672. package/dist/ui/src/icons/components/ContactPhoneIcon.d.ts +6 -0
  673. package/dist/ui/src/icons/components/ContactSupportIcon.d.ts +6 -0
  674. package/dist/ui/src/icons/components/ContactlessIcon.d.ts +6 -0
  675. package/dist/ui/src/icons/components/ContactsIcon.d.ts +6 -0
  676. package/dist/ui/src/icons/components/ContentCopyIcon.d.ts +6 -0
  677. package/dist/ui/src/icons/components/ContentCutIcon.d.ts +6 -0
  678. package/dist/ui/src/icons/components/ContentPasteGoIcon.d.ts +6 -0
  679. package/dist/ui/src/icons/components/ContentPasteIcon.d.ts +6 -0
  680. package/dist/ui/src/icons/components/ContentPasteOffIcon.d.ts +6 -0
  681. package/dist/ui/src/icons/components/ContentPasteSearchIcon.d.ts +6 -0
  682. package/dist/ui/src/icons/components/ContrastIcon.d.ts +6 -0
  683. package/dist/ui/src/icons/components/ControlCameraIcon.d.ts +6 -0
  684. package/dist/ui/src/icons/components/ControlPointDuplicateIcon.d.ts +6 -0
  685. package/dist/ui/src/icons/components/ControlPointIcon.d.ts +6 -0
  686. package/dist/ui/src/icons/components/CookieIcon.d.ts +6 -0
  687. package/dist/ui/src/icons/components/CopyAllIcon.d.ts +6 -0
  688. package/dist/ui/src/icons/components/CopyIcon.d.ts +6 -0
  689. package/dist/ui/src/icons/components/CopyrightIcon.d.ts +6 -0
  690. package/dist/ui/src/icons/components/CoronavirusIcon.d.ts +6 -0
  691. package/dist/ui/src/icons/components/CorporateFareIcon.d.ts +6 -0
  692. package/dist/ui/src/icons/components/CottageIcon.d.ts +6 -0
  693. package/dist/ui/src/icons/components/CountertopsIcon.d.ts +6 -0
  694. package/dist/ui/src/icons/components/CreateIcon.d.ts +6 -0
  695. package/dist/ui/src/icons/components/CreateNewFolderIcon.d.ts +6 -0
  696. package/dist/ui/src/icons/components/CreditCardIcon.d.ts +6 -0
  697. package/dist/ui/src/icons/components/CreditCardOffIcon.d.ts +6 -0
  698. package/dist/ui/src/icons/components/CreditScoreIcon.d.ts +6 -0
  699. package/dist/ui/src/icons/components/CribIcon.d.ts +6 -0
  700. package/dist/ui/src/icons/components/CrisisAlertIcon.d.ts +6 -0
  701. package/dist/ui/src/icons/components/Crop169Icon.d.ts +6 -0
  702. package/dist/ui/src/icons/components/Crop32Icon.d.ts +6 -0
  703. package/dist/ui/src/icons/components/Crop54Icon.d.ts +6 -0
  704. package/dist/ui/src/icons/components/Crop75Icon.d.ts +6 -0
  705. package/dist/ui/src/icons/components/CropDinIcon.d.ts +6 -0
  706. package/dist/ui/src/icons/components/CropFreeIcon.d.ts +6 -0
  707. package/dist/ui/src/icons/components/CropIcon.d.ts +6 -0
  708. package/dist/ui/src/icons/components/CropLandscapeIcon.d.ts +6 -0
  709. package/dist/ui/src/icons/components/CropOriginalIcon.d.ts +6 -0
  710. package/dist/ui/src/icons/components/CropPortraitIcon.d.ts +6 -0
  711. package/dist/ui/src/icons/components/CropRotateIcon.d.ts +6 -0
  712. package/dist/ui/src/icons/components/CropSquareIcon.d.ts +6 -0
  713. package/dist/ui/src/icons/components/CrueltyFreeIcon.d.ts +6 -0
  714. package/dist/ui/src/icons/components/CssIcon.d.ts +6 -0
  715. package/dist/ui/src/icons/components/CurrencyBitcoinIcon.d.ts +6 -0
  716. package/dist/ui/src/icons/components/CurrencyExchangeIcon.d.ts +6 -0
  717. package/dist/ui/src/icons/components/CurrencyFrancIcon.d.ts +6 -0
  718. package/dist/ui/src/icons/components/CurrencyLiraIcon.d.ts +6 -0
  719. package/dist/ui/src/icons/components/CurrencyPoundIcon.d.ts +6 -0
  720. package/dist/ui/src/icons/components/CurrencyRubleIcon.d.ts +6 -0
  721. package/dist/ui/src/icons/components/CurrencyRupeeIcon.d.ts +6 -0
  722. package/dist/ui/src/icons/components/CurrencyYenIcon.d.ts +6 -0
  723. package/dist/ui/src/icons/components/CurrencyYuanIcon.d.ts +6 -0
  724. package/dist/ui/src/icons/components/CurtainsClosedIcon.d.ts +6 -0
  725. package/dist/ui/src/icons/components/CurtainsIcon.d.ts +6 -0
  726. package/dist/ui/src/icons/components/CutIcon.d.ts +6 -0
  727. package/dist/ui/src/icons/components/CycloneIcon.d.ts +6 -0
  728. package/dist/ui/src/icons/components/DangerousIcon.d.ts +6 -0
  729. package/dist/ui/src/icons/components/DarkModeIcon.d.ts +6 -0
  730. package/dist/ui/src/icons/components/DashboardCustomizeIcon.d.ts +6 -0
  731. package/dist/ui/src/icons/components/DashboardIcon.d.ts +6 -0
  732. package/dist/ui/src/icons/components/DataArrayIcon.d.ts +6 -0
  733. package/dist/ui/src/icons/components/DataExplorationIcon.d.ts +6 -0
  734. package/dist/ui/src/icons/components/DataObjectIcon.d.ts +6 -0
  735. package/dist/ui/src/icons/components/DataSaverOffIcon.d.ts +6 -0
  736. package/dist/ui/src/icons/components/DataSaverOnIcon.d.ts +6 -0
  737. package/dist/ui/src/icons/components/DataThresholdingIcon.d.ts +6 -0
  738. package/dist/ui/src/icons/components/DataUsageIcon.d.ts +6 -0
  739. package/dist/ui/src/icons/components/DatasetIcon.d.ts +6 -0
  740. package/dist/ui/src/icons/components/DatasetLinkedIcon.d.ts +6 -0
  741. package/dist/ui/src/icons/components/DateRangeIcon.d.ts +6 -0
  742. package/dist/ui/src/icons/components/DeblurIcon.d.ts +6 -0
  743. package/dist/ui/src/icons/components/DeckIcon.d.ts +6 -0
  744. package/dist/ui/src/icons/components/DehazeIcon.d.ts +6 -0
  745. package/dist/ui/src/icons/components/DeleteForeverIcon.d.ts +6 -0
  746. package/dist/ui/src/icons/components/DeleteIcon.d.ts +6 -0
  747. package/dist/ui/src/icons/components/DeleteOutlineIcon.d.ts +6 -0
  748. package/dist/ui/src/icons/components/DeleteSweepIcon.d.ts +6 -0
  749. package/dist/ui/src/icons/components/DeliveryDiningIcon.d.ts +6 -0
  750. package/dist/ui/src/icons/components/DensityLargeIcon.d.ts +6 -0
  751. package/dist/ui/src/icons/components/DensityMediumIcon.d.ts +6 -0
  752. package/dist/ui/src/icons/components/DensitySmallIcon.d.ts +6 -0
  753. package/dist/ui/src/icons/components/DepartureBoardIcon.d.ts +6 -0
  754. package/dist/ui/src/icons/components/DescriptionIcon.d.ts +6 -0
  755. package/dist/ui/src/icons/components/DeselectIcon.d.ts +6 -0
  756. package/dist/ui/src/icons/components/DesignServicesIcon.d.ts +6 -0
  757. package/dist/ui/src/icons/components/DeskIcon.d.ts +6 -0
  758. package/dist/ui/src/icons/components/DesktopAccessDisabledIcon.d.ts +6 -0
  759. package/dist/ui/src/icons/components/DesktopMacIcon.d.ts +6 -0
  760. package/dist/ui/src/icons/components/DesktopWindowsIcon.d.ts +6 -0
  761. package/dist/ui/src/icons/components/DetailsIcon.d.ts +6 -0
  762. package/dist/ui/src/icons/components/DeveloperBoardIcon.d.ts +6 -0
  763. package/dist/ui/src/icons/components/DeveloperBoardOffIcon.d.ts +6 -0
  764. package/dist/ui/src/icons/components/DeveloperModeIcon.d.ts +6 -0
  765. package/dist/ui/src/icons/components/DeviceHubIcon.d.ts +6 -0
  766. package/dist/ui/src/icons/components/DeviceThermostatIcon.d.ts +6 -0
  767. package/dist/ui/src/icons/components/DeviceUnknownIcon.d.ts +6 -0
  768. package/dist/ui/src/icons/components/DevicesFoldIcon.d.ts +6 -0
  769. package/dist/ui/src/icons/components/DevicesIcon.d.ts +6 -0
  770. package/dist/ui/src/icons/components/DevicesOtherIcon.d.ts +6 -0
  771. package/dist/ui/src/icons/components/DialerSipIcon.d.ts +6 -0
  772. package/dist/ui/src/icons/components/DialpadIcon.d.ts +6 -0
  773. package/dist/ui/src/icons/components/DiamondIcon.d.ts +6 -0
  774. package/dist/ui/src/icons/components/DifferenceIcon.d.ts +6 -0
  775. package/dist/ui/src/icons/components/DiningIcon.d.ts +6 -0
  776. package/dist/ui/src/icons/components/DinnerDiningIcon.d.ts +6 -0
  777. package/dist/ui/src/icons/components/DirectionsBikeIcon.d.ts +6 -0
  778. package/dist/ui/src/icons/components/DirectionsBoatFilledIcon.d.ts +6 -0
  779. package/dist/ui/src/icons/components/DirectionsBoatIcon.d.ts +6 -0
  780. package/dist/ui/src/icons/components/DirectionsBusFilledIcon.d.ts +6 -0
  781. package/dist/ui/src/icons/components/DirectionsBusIcon.d.ts +6 -0
  782. package/dist/ui/src/icons/components/DirectionsCarFilledIcon.d.ts +6 -0
  783. package/dist/ui/src/icons/components/DirectionsCarIcon.d.ts +6 -0
  784. package/dist/ui/src/icons/components/DirectionsFerryIcon.d.ts +6 -0
  785. package/dist/ui/src/icons/components/DirectionsIcon.d.ts +6 -0
  786. package/dist/ui/src/icons/components/DirectionsOffIcon.d.ts +6 -0
  787. package/dist/ui/src/icons/components/DirectionsRailwayFilledIcon.d.ts +6 -0
  788. package/dist/ui/src/icons/components/DirectionsRailwayIcon.d.ts +6 -0
  789. package/dist/ui/src/icons/components/DirectionsRunIcon.d.ts +6 -0
  790. package/dist/ui/src/icons/components/DirectionsSubwayFilledIcon.d.ts +6 -0
  791. package/dist/ui/src/icons/components/DirectionsSubwayIcon.d.ts +6 -0
  792. package/dist/ui/src/icons/components/DirectionsTrainIcon.d.ts +6 -0
  793. package/dist/ui/src/icons/components/DirectionsTransitFilledIcon.d.ts +6 -0
  794. package/dist/ui/src/icons/components/DirectionsTransitIcon.d.ts +6 -0
  795. package/dist/ui/src/icons/components/DirectionsWalkIcon.d.ts +6 -0
  796. package/dist/ui/src/icons/components/DirtyLensIcon.d.ts +6 -0
  797. package/dist/ui/src/icons/components/DisabledByDefaultIcon.d.ts +6 -0
  798. package/dist/ui/src/icons/components/DisabledVisibleIcon.d.ts +6 -0
  799. package/dist/ui/src/icons/components/DiscFullIcon.d.ts +6 -0
  800. package/dist/ui/src/icons/components/DiscordIcon.d.ts +6 -0
  801. package/dist/ui/src/icons/components/DiscountIcon.d.ts +6 -0
  802. package/dist/ui/src/icons/components/DisplaySettingsIcon.d.ts +6 -0
  803. package/dist/ui/src/icons/components/Diversity1Icon.d.ts +6 -0
  804. package/dist/ui/src/icons/components/Diversity2Icon.d.ts +6 -0
  805. package/dist/ui/src/icons/components/Diversity3Icon.d.ts +6 -0
  806. package/dist/ui/src/icons/components/DndForwardslashIcon.d.ts +6 -0
  807. package/dist/ui/src/icons/components/DnsIcon.d.ts +6 -0
  808. package/dist/ui/src/icons/components/DoDisturbAltIcon.d.ts +6 -0
  809. package/dist/ui/src/icons/components/DoDisturbIcon.d.ts +6 -0
  810. package/dist/ui/src/icons/components/DoDisturbOffIcon.d.ts +6 -0
  811. package/dist/ui/src/icons/components/DoDisturbOnIcon.d.ts +6 -0
  812. package/dist/ui/src/icons/components/DoNotDisturbAltIcon.d.ts +6 -0
  813. package/dist/ui/src/icons/components/DoNotDisturbIcon.d.ts +6 -0
  814. package/dist/ui/src/icons/components/DoNotDisturbOffIcon.d.ts +6 -0
  815. package/dist/ui/src/icons/components/DoNotDisturbOnIcon.d.ts +6 -0
  816. package/dist/ui/src/icons/components/DoNotDisturbOnTotalSilenceIcon.d.ts +6 -0
  817. package/dist/ui/src/icons/components/DoNotStepIcon.d.ts +6 -0
  818. package/dist/ui/src/icons/components/DoNotTouchIcon.d.ts +6 -0
  819. package/dist/ui/src/icons/components/DockIcon.d.ts +6 -0
  820. package/dist/ui/src/icons/components/DocumentScannerIcon.d.ts +6 -0
  821. package/dist/ui/src/icons/components/DomainAddIcon.d.ts +6 -0
  822. package/dist/ui/src/icons/components/DomainDisabledIcon.d.ts +6 -0
  823. package/dist/ui/src/icons/components/DomainIcon.d.ts +6 -0
  824. package/dist/ui/src/icons/components/DomainVerificationIcon.d.ts +6 -0
  825. package/dist/ui/src/icons/components/DoneAllIcon.d.ts +6 -0
  826. package/dist/ui/src/icons/components/DoneIcon.d.ts +6 -0
  827. package/dist/ui/src/icons/components/DoneOutlineIcon.d.ts +6 -0
  828. package/dist/ui/src/icons/components/DonutLargeIcon.d.ts +6 -0
  829. package/dist/ui/src/icons/components/DonutSmallIcon.d.ts +6 -0
  830. package/dist/ui/src/icons/components/DoorBackIcon.d.ts +6 -0
  831. package/dist/ui/src/icons/components/DoorFrontIcon.d.ts +6 -0
  832. package/dist/ui/src/icons/components/DoorSlidingIcon.d.ts +6 -0
  833. package/dist/ui/src/icons/components/DoorbellIcon.d.ts +6 -0
  834. package/dist/ui/src/icons/components/DoubleArrowIcon.d.ts +6 -0
  835. package/dist/ui/src/icons/components/DownhillSkiingIcon.d.ts +6 -0
  836. package/dist/ui/src/icons/components/DownloadDoneIcon.d.ts +6 -0
  837. package/dist/ui/src/icons/components/DownloadForOfflineIcon.d.ts +6 -0
  838. package/dist/ui/src/icons/components/DownloadIcon.d.ts +6 -0
  839. package/dist/ui/src/icons/components/DownloadingIcon.d.ts +6 -0
  840. package/dist/ui/src/icons/components/DraftsIcon.d.ts +6 -0
  841. package/dist/ui/src/icons/components/DragHandleIcon.d.ts +6 -0
  842. package/dist/ui/src/icons/components/DragIndicatorIcon.d.ts +6 -0
  843. package/dist/ui/src/icons/components/DrawIcon.d.ts +6 -0
  844. package/dist/ui/src/icons/components/DriveEtaIcon.d.ts +6 -0
  845. package/dist/ui/src/icons/components/DriveFileMoveIcon.d.ts +6 -0
  846. package/dist/ui/src/icons/components/DriveFileMoveRtlIcon.d.ts +6 -0
  847. package/dist/ui/src/icons/components/DriveFileRenameOutlineIcon.d.ts +6 -0
  848. package/dist/ui/src/icons/components/DriveFolderUploadIcon.d.ts +6 -0
  849. package/dist/ui/src/icons/components/DryCleaningIcon.d.ts +6 -0
  850. package/dist/ui/src/icons/components/DryIcon.d.ts +6 -0
  851. package/dist/ui/src/icons/components/DuoIcon.d.ts +6 -0
  852. package/dist/ui/src/icons/components/DvrIcon.d.ts +6 -0
  853. package/dist/ui/src/icons/components/DynamicFeedIcon.d.ts +6 -0
  854. package/dist/ui/src/icons/components/DynamicFormIcon.d.ts +6 -0
  855. package/dist/ui/src/icons/components/EMobiledataIcon.d.ts +6 -0
  856. package/dist/ui/src/icons/components/EarbudsBatteryIcon.d.ts +6 -0
  857. package/dist/ui/src/icons/components/EarbudsIcon.d.ts +6 -0
  858. package/dist/ui/src/icons/components/EastIcon.d.ts +6 -0
  859. package/dist/ui/src/icons/components/EcoIcon.d.ts +6 -0
  860. package/dist/ui/src/icons/components/EdgesensorHighIcon.d.ts +6 -0
  861. package/dist/ui/src/icons/components/EdgesensorLowIcon.d.ts +6 -0
  862. package/dist/ui/src/icons/components/EditAttributesIcon.d.ts +6 -0
  863. package/dist/ui/src/icons/components/EditCalendarIcon.d.ts +6 -0
  864. package/dist/ui/src/icons/components/EditIcon.d.ts +6 -0
  865. package/dist/ui/src/icons/components/EditLocationAltIcon.d.ts +6 -0
  866. package/dist/ui/src/icons/components/EditLocationIcon.d.ts +6 -0
  867. package/dist/ui/src/icons/components/EditNoteIcon.d.ts +6 -0
  868. package/dist/ui/src/icons/components/EditNotificationsIcon.d.ts +6 -0
  869. package/dist/ui/src/icons/components/EditOffIcon.d.ts +6 -0
  870. package/dist/ui/src/icons/components/EditRoadIcon.d.ts +6 -0
  871. package/dist/ui/src/icons/components/EggAltIcon.d.ts +6 -0
  872. package/dist/ui/src/icons/components/EggIcon.d.ts +6 -0
  873. package/dist/ui/src/icons/components/EjectIcon.d.ts +6 -0
  874. package/dist/ui/src/icons/components/ElderlyIcon.d.ts +6 -0
  875. package/dist/ui/src/icons/components/ElderlyWomanIcon.d.ts +6 -0
  876. package/dist/ui/src/icons/components/ElectricBikeIcon.d.ts +6 -0
  877. package/dist/ui/src/icons/components/ElectricBoltIcon.d.ts +6 -0
  878. package/dist/ui/src/icons/components/ElectricCarIcon.d.ts +6 -0
  879. package/dist/ui/src/icons/components/ElectricMeterIcon.d.ts +6 -0
  880. package/dist/ui/src/icons/components/ElectricMopedIcon.d.ts +6 -0
  881. package/dist/ui/src/icons/components/ElectricRickshawIcon.d.ts +6 -0
  882. package/dist/ui/src/icons/components/ElectricScooterIcon.d.ts +6 -0
  883. package/dist/ui/src/icons/components/ElectricalServicesIcon.d.ts +6 -0
  884. package/dist/ui/src/icons/components/ElevatorIcon.d.ts +6 -0
  885. package/dist/ui/src/icons/components/EmailIcon.d.ts +6 -0
  886. package/dist/ui/src/icons/components/EmergencyIcon.d.ts +6 -0
  887. package/dist/ui/src/icons/components/EmergencyRecordingIcon.d.ts +6 -0
  888. package/dist/ui/src/icons/components/EmergencyShareIcon.d.ts +6 -0
  889. package/dist/ui/src/icons/components/EmojiEmotionsIcon.d.ts +6 -0
  890. package/dist/ui/src/icons/components/EmojiEventsIcon.d.ts +6 -0
  891. package/dist/ui/src/icons/components/EmojiFlagsIcon.d.ts +6 -0
  892. package/dist/ui/src/icons/components/EmojiFoodBeverageIcon.d.ts +6 -0
  893. package/dist/ui/src/icons/components/EmojiNatureIcon.d.ts +6 -0
  894. package/dist/ui/src/icons/components/EmojiObjectsIcon.d.ts +6 -0
  895. package/dist/ui/src/icons/components/EmojiPeopleIcon.d.ts +6 -0
  896. package/dist/ui/src/icons/components/EmojiSymbolsIcon.d.ts +6 -0
  897. package/dist/ui/src/icons/components/EmojiTransportationIcon.d.ts +6 -0
  898. package/dist/ui/src/icons/components/EnergySavingsLeafIcon.d.ts +6 -0
  899. package/dist/ui/src/icons/components/EngineeringIcon.d.ts +6 -0
  900. package/dist/ui/src/icons/components/EnhancePhotoTranslateIcon.d.ts +6 -0
  901. package/dist/ui/src/icons/components/EnhancedEncryptionIcon.d.ts +6 -0
  902. package/dist/ui/src/icons/components/EqualizerIcon.d.ts +6 -0
  903. package/dist/ui/src/icons/components/ErrorIcon.d.ts +6 -0
  904. package/dist/ui/src/icons/components/ErrorOutlineIcon.d.ts +6 -0
  905. package/dist/ui/src/icons/components/EscalatorIcon.d.ts +6 -0
  906. package/dist/ui/src/icons/components/EscalatorWarningIcon.d.ts +6 -0
  907. package/dist/ui/src/icons/components/EuroIcon.d.ts +6 -0
  908. package/dist/ui/src/icons/components/EuroSymbolIcon.d.ts +6 -0
  909. package/dist/ui/src/icons/components/EvStationIcon.d.ts +6 -0
  910. package/dist/ui/src/icons/components/EventAvailableIcon.d.ts +6 -0
  911. package/dist/ui/src/icons/components/EventBusyIcon.d.ts +6 -0
  912. package/dist/ui/src/icons/components/EventIcon.d.ts +6 -0
  913. package/dist/ui/src/icons/components/EventNoteIcon.d.ts +6 -0
  914. package/dist/ui/src/icons/components/EventRepeatIcon.d.ts +6 -0
  915. package/dist/ui/src/icons/components/EventSeatIcon.d.ts +6 -0
  916. package/dist/ui/src/icons/components/ExitToAppIcon.d.ts +6 -0
  917. package/dist/ui/src/icons/components/ExpandCircleDownIcon.d.ts +6 -0
  918. package/dist/ui/src/icons/components/ExpandIcon.d.ts +6 -0
  919. package/dist/ui/src/icons/components/ExpandLessIcon.d.ts +6 -0
  920. package/dist/ui/src/icons/components/ExpandMoreIcon.d.ts +6 -0
  921. package/dist/ui/src/icons/components/ExplicitIcon.d.ts +6 -0
  922. package/dist/ui/src/icons/components/ExploreIcon.d.ts +6 -0
  923. package/dist/ui/src/icons/components/ExploreOffIcon.d.ts +6 -0
  924. package/dist/ui/src/icons/components/ExposureIcon.d.ts +6 -0
  925. package/dist/ui/src/icons/components/ExposureMinus1Icon.d.ts +6 -0
  926. package/dist/ui/src/icons/components/ExposureMinus2Icon.d.ts +6 -0
  927. package/dist/ui/src/icons/components/ExposureNeg1Icon.d.ts +6 -0
  928. package/dist/ui/src/icons/components/ExposureNeg2Icon.d.ts +6 -0
  929. package/dist/ui/src/icons/components/ExposurePlus1Icon.d.ts +6 -0
  930. package/dist/ui/src/icons/components/ExposurePlus2Icon.d.ts +6 -0
  931. package/dist/ui/src/icons/components/ExposureZeroIcon.d.ts +6 -0
  932. package/dist/ui/src/icons/components/ExtensionIcon.d.ts +6 -0
  933. package/dist/ui/src/icons/components/ExtensionOffIcon.d.ts +6 -0
  934. package/dist/ui/src/icons/components/Face2Icon.d.ts +6 -0
  935. package/dist/ui/src/icons/components/Face3Icon.d.ts +6 -0
  936. package/dist/ui/src/icons/components/Face4Icon.d.ts +6 -0
  937. package/dist/ui/src/icons/components/Face5Icon.d.ts +6 -0
  938. package/dist/ui/src/icons/components/Face6Icon.d.ts +6 -0
  939. package/dist/ui/src/icons/components/FaceIcon.d.ts +6 -0
  940. package/dist/ui/src/icons/components/FaceRetouchingNaturalIcon.d.ts +6 -0
  941. package/dist/ui/src/icons/components/FaceRetouchingOffIcon.d.ts +6 -0
  942. package/dist/ui/src/icons/components/FaceUnlockIcon.d.ts +6 -0
  943. package/dist/ui/src/icons/components/FacebookIcon.d.ts +6 -0
  944. package/dist/ui/src/icons/components/FactCheckIcon.d.ts +6 -0
  945. package/dist/ui/src/icons/components/FactoryIcon.d.ts +6 -0
  946. package/dist/ui/src/icons/components/FamilyRestroomIcon.d.ts +6 -0
  947. package/dist/ui/src/icons/components/FastForwardIcon.d.ts +6 -0
  948. package/dist/ui/src/icons/components/FastRewindIcon.d.ts +6 -0
  949. package/dist/ui/src/icons/components/FastfoodIcon.d.ts +6 -0
  950. package/dist/ui/src/icons/components/FavoriteBorderIcon.d.ts +6 -0
  951. package/dist/ui/src/icons/components/FavoriteIcon.d.ts +6 -0
  952. package/dist/ui/src/icons/components/FavoriteOutlineIcon.d.ts +6 -0
  953. package/dist/ui/src/icons/components/FaxIcon.d.ts +6 -0
  954. package/dist/ui/src/icons/components/FeaturedPlayListIcon.d.ts +6 -0
  955. package/dist/ui/src/icons/components/FeaturedVideoIcon.d.ts +6 -0
  956. package/dist/ui/src/icons/components/FeedIcon.d.ts +6 -0
  957. package/dist/ui/src/icons/components/FeedbackIcon.d.ts +6 -0
  958. package/dist/ui/src/icons/components/FemaleIcon.d.ts +6 -0
  959. package/dist/ui/src/icons/components/FenceIcon.d.ts +6 -0
  960. package/dist/ui/src/icons/components/FestivalIcon.d.ts +6 -0
  961. package/dist/ui/src/icons/components/FiberDvrIcon.d.ts +6 -0
  962. package/dist/ui/src/icons/components/FiberManualRecordIcon.d.ts +6 -0
  963. package/dist/ui/src/icons/components/FiberNewIcon.d.ts +6 -0
  964. package/dist/ui/src/icons/components/FiberPinIcon.d.ts +6 -0
  965. package/dist/ui/src/icons/components/FiberSmartRecordIcon.d.ts +6 -0
  966. package/dist/ui/src/icons/components/FileCopyIcon.d.ts +6 -0
  967. package/dist/ui/src/icons/components/FileDownloadDoneIcon.d.ts +6 -0
  968. package/dist/ui/src/icons/components/FileDownloadIcon.d.ts +6 -0
  969. package/dist/ui/src/icons/components/FileDownloadOffIcon.d.ts +6 -0
  970. package/dist/ui/src/icons/components/FileOpenIcon.d.ts +6 -0
  971. package/dist/ui/src/icons/components/FilePresentIcon.d.ts +6 -0
  972. package/dist/ui/src/icons/components/FileUploadIcon.d.ts +6 -0
  973. package/dist/ui/src/icons/components/Filter1Icon.d.ts +6 -0
  974. package/dist/ui/src/icons/components/Filter2Icon.d.ts +6 -0
  975. package/dist/ui/src/icons/components/Filter3Icon.d.ts +6 -0
  976. package/dist/ui/src/icons/components/Filter4Icon.d.ts +6 -0
  977. package/dist/ui/src/icons/components/Filter5Icon.d.ts +6 -0
  978. package/dist/ui/src/icons/components/Filter6Icon.d.ts +6 -0
  979. package/dist/ui/src/icons/components/Filter7Icon.d.ts +6 -0
  980. package/dist/ui/src/icons/components/Filter8Icon.d.ts +6 -0
  981. package/dist/ui/src/icons/components/Filter9Icon.d.ts +6 -0
  982. package/dist/ui/src/icons/components/Filter9PlusIcon.d.ts +6 -0
  983. package/dist/ui/src/icons/components/FilterAltIcon.d.ts +6 -0
  984. package/dist/ui/src/icons/components/FilterAltOffIcon.d.ts +6 -0
  985. package/dist/ui/src/icons/components/FilterBAndWIcon.d.ts +6 -0
  986. package/dist/ui/src/icons/components/FilterCenterFocusIcon.d.ts +6 -0
  987. package/dist/ui/src/icons/components/FilterDramaIcon.d.ts +6 -0
  988. package/dist/ui/src/icons/components/FilterFramesIcon.d.ts +6 -0
  989. package/dist/ui/src/icons/components/FilterHdrIcon.d.ts +6 -0
  990. package/dist/ui/src/icons/components/FilterIcon.d.ts +6 -0
  991. package/dist/ui/src/icons/components/FilterListIcon.d.ts +6 -0
  992. package/dist/ui/src/icons/components/FilterListOffIcon.d.ts +6 -0
  993. package/dist/ui/src/icons/components/FilterNoneIcon.d.ts +6 -0
  994. package/dist/ui/src/icons/components/FilterTiltShiftIcon.d.ts +6 -0
  995. package/dist/ui/src/icons/components/FilterVintageIcon.d.ts +6 -0
  996. package/dist/ui/src/icons/components/FindInPageIcon.d.ts +6 -0
  997. package/dist/ui/src/icons/components/FindReplaceIcon.d.ts +6 -0
  998. package/dist/ui/src/icons/components/FingerprintIcon.d.ts +6 -0
  999. package/dist/ui/src/icons/components/FireExtinguisherIcon.d.ts +6 -0
  1000. package/dist/ui/src/icons/components/FireHydrantAltIcon.d.ts +6 -0
  1001. package/dist/ui/src/icons/components/FireTruckIcon.d.ts +6 -0
  1002. package/dist/ui/src/icons/components/FireplaceIcon.d.ts +6 -0
  1003. package/dist/ui/src/icons/components/FirstPageIcon.d.ts +6 -0
  1004. package/dist/ui/src/icons/components/FitScreenIcon.d.ts +6 -0
  1005. package/dist/ui/src/icons/components/FitbitIcon.d.ts +6 -0
  1006. package/dist/ui/src/icons/components/FitnessCenterIcon.d.ts +6 -0
  1007. package/dist/ui/src/icons/components/FlagCircleIcon.d.ts +6 -0
  1008. package/dist/ui/src/icons/components/FlagIcon.d.ts +6 -0
  1009. package/dist/ui/src/icons/components/FlakyIcon.d.ts +6 -0
  1010. package/dist/ui/src/icons/components/FlareIcon.d.ts +6 -0
  1011. package/dist/ui/src/icons/components/FlashAutoIcon.d.ts +6 -0
  1012. package/dist/ui/src/icons/components/FlashOffIcon.d.ts +6 -0
  1013. package/dist/ui/src/icons/components/FlashOnIcon.d.ts +6 -0
  1014. package/dist/ui/src/icons/components/FlashlightOffIcon.d.ts +6 -0
  1015. package/dist/ui/src/icons/components/FlashlightOnIcon.d.ts +6 -0
  1016. package/dist/ui/src/icons/components/FlatwareIcon.d.ts +6 -0
  1017. package/dist/ui/src/icons/components/FlightClassIcon.d.ts +6 -0
  1018. package/dist/ui/src/icons/components/FlightIcon.d.ts +6 -0
  1019. package/dist/ui/src/icons/components/FlightLandIcon.d.ts +6 -0
  1020. package/dist/ui/src/icons/components/FlightTakeoffIcon.d.ts +6 -0
  1021. package/dist/ui/src/icons/components/FlipCameraAndroidIcon.d.ts +6 -0
  1022. package/dist/ui/src/icons/components/FlipCameraIosIcon.d.ts +6 -0
  1023. package/dist/ui/src/icons/components/FlipIcon.d.ts +6 -0
  1024. package/dist/ui/src/icons/components/FlipToBackIcon.d.ts +6 -0
  1025. package/dist/ui/src/icons/components/FlipToFrontIcon.d.ts +6 -0
  1026. package/dist/ui/src/icons/components/FloodIcon.d.ts +6 -0
  1027. package/dist/ui/src/icons/components/FlourescentIcon.d.ts +6 -0
  1028. package/dist/ui/src/icons/components/FluorescentIcon.d.ts +6 -0
  1029. package/dist/ui/src/icons/components/FlutterDashIcon.d.ts +6 -0
  1030. package/dist/ui/src/icons/components/FmdBadIcon.d.ts +6 -0
  1031. package/dist/ui/src/icons/components/FmdGoodIcon.d.ts +6 -0
  1032. package/dist/ui/src/icons/components/FolderCopyIcon.d.ts +6 -0
  1033. package/dist/ui/src/icons/components/FolderDeleteIcon.d.ts +6 -0
  1034. package/dist/ui/src/icons/components/FolderIcon.d.ts +6 -0
  1035. package/dist/ui/src/icons/components/FolderOffIcon.d.ts +6 -0
  1036. package/dist/ui/src/icons/components/FolderOpenIcon.d.ts +6 -0
  1037. package/dist/ui/src/icons/components/FolderSharedIcon.d.ts +6 -0
  1038. package/dist/ui/src/icons/components/FolderSpecialIcon.d.ts +6 -0
  1039. package/dist/ui/src/icons/components/FolderZipIcon.d.ts +6 -0
  1040. package/dist/ui/src/icons/components/FollowTheSignsIcon.d.ts +6 -0
  1041. package/dist/ui/src/icons/components/FontDownloadIcon.d.ts +6 -0
  1042. package/dist/ui/src/icons/components/FontDownloadOffIcon.d.ts +6 -0
  1043. package/dist/ui/src/icons/components/FoodBankIcon.d.ts +6 -0
  1044. package/dist/ui/src/icons/components/ForestIcon.d.ts +6 -0
  1045. package/dist/ui/src/icons/components/ForkLeftIcon.d.ts +6 -0
  1046. package/dist/ui/src/icons/components/ForkRightIcon.d.ts +6 -0
  1047. package/dist/ui/src/icons/components/FormatAlignCenterIcon.d.ts +6 -0
  1048. package/dist/ui/src/icons/components/FormatAlignJustifyIcon.d.ts +6 -0
  1049. package/dist/ui/src/icons/components/FormatAlignLeftIcon.d.ts +6 -0
  1050. package/dist/ui/src/icons/components/FormatAlignRightIcon.d.ts +6 -0
  1051. package/dist/ui/src/icons/components/FormatBoldIcon.d.ts +6 -0
  1052. package/dist/ui/src/icons/components/FormatClearIcon.d.ts +6 -0
  1053. package/dist/ui/src/icons/components/FormatColorFillIcon.d.ts +6 -0
  1054. package/dist/ui/src/icons/components/FormatColorResetIcon.d.ts +6 -0
  1055. package/dist/ui/src/icons/components/FormatColorTextIcon.d.ts +6 -0
  1056. package/dist/ui/src/icons/components/FormatIndentDecreaseIcon.d.ts +6 -0
  1057. package/dist/ui/src/icons/components/FormatIndentIncreaseIcon.d.ts +6 -0
  1058. package/dist/ui/src/icons/components/FormatItalicIcon.d.ts +6 -0
  1059. package/dist/ui/src/icons/components/FormatLineSpacingIcon.d.ts +6 -0
  1060. package/dist/ui/src/icons/components/FormatListBulletedIcon.d.ts +6 -0
  1061. package/dist/ui/src/icons/components/FormatListNumberedIcon.d.ts +6 -0
  1062. package/dist/ui/src/icons/components/FormatListNumberedRtlIcon.d.ts +6 -0
  1063. package/dist/ui/src/icons/components/FormatOverlineIcon.d.ts +6 -0
  1064. package/dist/ui/src/icons/components/FormatPaintIcon.d.ts +6 -0
  1065. package/dist/ui/src/icons/components/FormatQuoteIcon.d.ts +6 -0
  1066. package/dist/ui/src/icons/components/FormatShapesIcon.d.ts +6 -0
  1067. package/dist/ui/src/icons/components/FormatSizeIcon.d.ts +6 -0
  1068. package/dist/ui/src/icons/components/FormatStrikethroughIcon.d.ts +6 -0
  1069. package/dist/ui/src/icons/components/FormatTextdirectionLToRIcon.d.ts +6 -0
  1070. package/dist/ui/src/icons/components/FormatTextdirectionRToLIcon.d.ts +6 -0
  1071. package/dist/ui/src/icons/components/FormatUnderlineIcon.d.ts +6 -0
  1072. package/dist/ui/src/icons/components/FormatUnderlinedIcon.d.ts +6 -0
  1073. package/dist/ui/src/icons/components/FortIcon.d.ts +6 -0
  1074. package/dist/ui/src/icons/components/ForumIcon.d.ts +6 -0
  1075. package/dist/ui/src/icons/components/Forward10Icon.d.ts +6 -0
  1076. package/dist/ui/src/icons/components/Forward30Icon.d.ts +6 -0
  1077. package/dist/ui/src/icons/components/Forward5Icon.d.ts +6 -0
  1078. package/dist/ui/src/icons/components/ForwardIcon.d.ts +6 -0
  1079. package/dist/ui/src/icons/components/ForwardToInboxIcon.d.ts +6 -0
  1080. package/dist/ui/src/icons/components/FoundationIcon.d.ts +6 -0
  1081. package/dist/ui/src/icons/components/FreeBreakfastIcon.d.ts +6 -0
  1082. package/dist/ui/src/icons/components/FreeCancellationIcon.d.ts +6 -0
  1083. package/dist/ui/src/icons/components/FrontHandIcon.d.ts +6 -0
  1084. package/dist/ui/src/icons/components/FullscreenExitIcon.d.ts +6 -0
  1085. package/dist/ui/src/icons/components/FullscreenIcon.d.ts +6 -0
  1086. package/dist/ui/src/icons/components/FunctionsIcon.d.ts +6 -0
  1087. package/dist/ui/src/icons/components/GMobiledataIcon.d.ts +6 -0
  1088. package/dist/ui/src/icons/components/GTranslateIcon.d.ts +6 -0
  1089. package/dist/ui/src/icons/components/GamepadIcon.d.ts +6 -0
  1090. package/dist/ui/src/icons/components/GamesIcon.d.ts +6 -0
  1091. package/dist/ui/src/icons/components/GarageIcon.d.ts +6 -0
  1092. package/dist/ui/src/icons/components/GasMeterIcon.d.ts +6 -0
  1093. package/dist/ui/src/icons/components/GavelIcon.d.ts +6 -0
  1094. package/dist/ui/src/icons/components/GeneratingTokensIcon.d.ts +6 -0
  1095. package/dist/ui/src/icons/components/GestureIcon.d.ts +6 -0
  1096. package/dist/ui/src/icons/components/GetAppIcon.d.ts +6 -0
  1097. package/dist/ui/src/icons/components/GifBoxIcon.d.ts +6 -0
  1098. package/dist/ui/src/icons/components/GifIcon.d.ts +6 -0
  1099. package/dist/ui/src/icons/components/GirlIcon.d.ts +6 -0
  1100. package/dist/ui/src/icons/components/GiteIcon.d.ts +6 -0
  1101. package/dist/ui/src/icons/components/GolfCourseIcon.d.ts +6 -0
  1102. package/dist/ui/src/icons/components/GppBadIcon.d.ts +6 -0
  1103. package/dist/ui/src/icons/components/GppGoodIcon.d.ts +6 -0
  1104. package/dist/ui/src/icons/components/GppMaybeIcon.d.ts +6 -0
  1105. package/dist/ui/src/icons/components/GpsFixedIcon.d.ts +6 -0
  1106. package/dist/ui/src/icons/components/GpsNotFixedIcon.d.ts +6 -0
  1107. package/dist/ui/src/icons/components/GpsOffIcon.d.ts +6 -0
  1108. package/dist/ui/src/icons/components/GradeIcon.d.ts +6 -0
  1109. package/dist/ui/src/icons/components/GradientIcon.d.ts +6 -0
  1110. package/dist/ui/src/icons/components/GradingIcon.d.ts +6 -0
  1111. package/dist/ui/src/icons/components/GrainIcon.d.ts +6 -0
  1112. package/dist/ui/src/icons/components/GraphicEqIcon.d.ts +6 -0
  1113. package/dist/ui/src/icons/components/GrassIcon.d.ts +6 -0
  1114. package/dist/ui/src/icons/components/Grid3x3Icon.d.ts +6 -0
  1115. package/dist/ui/src/icons/components/Grid4x4Icon.d.ts +6 -0
  1116. package/dist/ui/src/icons/components/GridGoldenratioIcon.d.ts +6 -0
  1117. package/dist/ui/src/icons/components/GridOffIcon.d.ts +6 -0
  1118. package/dist/ui/src/icons/components/GridOnIcon.d.ts +6 -0
  1119. package/dist/ui/src/icons/components/GridViewIcon.d.ts +6 -0
  1120. package/dist/ui/src/icons/components/GroupAddIcon.d.ts +6 -0
  1121. package/dist/ui/src/icons/components/GroupIcon.d.ts +6 -0
  1122. package/dist/ui/src/icons/components/GroupOffIcon.d.ts +6 -0
  1123. package/dist/ui/src/icons/components/GroupRemoveIcon.d.ts +6 -0
  1124. package/dist/ui/src/icons/components/GroupWorkIcon.d.ts +6 -0
  1125. package/dist/ui/src/icons/components/Groups2Icon.d.ts +6 -0
  1126. package/dist/ui/src/icons/components/Groups3Icon.d.ts +6 -0
  1127. package/dist/ui/src/icons/components/GroupsIcon.d.ts +6 -0
  1128. package/dist/ui/src/icons/components/HMobiledataIcon.d.ts +6 -0
  1129. package/dist/ui/src/icons/components/HPlusMobiledataIcon.d.ts +6 -0
  1130. package/dist/ui/src/icons/components/HailIcon.d.ts +6 -0
  1131. package/dist/ui/src/icons/components/HandshakeIcon.d.ts +6 -0
  1132. package/dist/ui/src/icons/components/HandymanIcon.d.ts +6 -0
  1133. package/dist/ui/src/icons/components/HardwareIcon.d.ts +6 -0
  1134. package/dist/ui/src/icons/components/HdIcon.d.ts +6 -0
  1135. package/dist/ui/src/icons/components/HdrAutoIcon.d.ts +6 -0
  1136. package/dist/ui/src/icons/components/HdrAutoSelectIcon.d.ts +6 -0
  1137. package/dist/ui/src/icons/components/HdrEnhancedSelectIcon.d.ts +6 -0
  1138. package/dist/ui/src/icons/components/HdrOffIcon.d.ts +6 -0
  1139. package/dist/ui/src/icons/components/HdrOffSelectIcon.d.ts +6 -0
  1140. package/dist/ui/src/icons/components/HdrOnIcon.d.ts +6 -0
  1141. package/dist/ui/src/icons/components/HdrOnSelectIcon.d.ts +6 -0
  1142. package/dist/ui/src/icons/components/HdrPlusIcon.d.ts +6 -0
  1143. package/dist/ui/src/icons/components/HdrStrongIcon.d.ts +6 -0
  1144. package/dist/ui/src/icons/components/HdrWeakIcon.d.ts +6 -0
  1145. package/dist/ui/src/icons/components/HeadphonesBatteryIcon.d.ts +6 -0
  1146. package/dist/ui/src/icons/components/HeadphonesIcon.d.ts +6 -0
  1147. package/dist/ui/src/icons/components/HeadsetIcon.d.ts +6 -0
  1148. package/dist/ui/src/icons/components/HeadsetMicIcon.d.ts +6 -0
  1149. package/dist/ui/src/icons/components/HeadsetOffIcon.d.ts +6 -0
  1150. package/dist/ui/src/icons/components/HealingIcon.d.ts +6 -0
  1151. package/dist/ui/src/icons/components/HealthAndSafetyIcon.d.ts +6 -0
  1152. package/dist/ui/src/icons/components/HearingDisabledIcon.d.ts +6 -0
  1153. package/dist/ui/src/icons/components/HearingIcon.d.ts +6 -0
  1154. package/dist/ui/src/icons/components/HeartBrokenIcon.d.ts +6 -0
  1155. package/dist/ui/src/icons/components/HeatPumpIcon.d.ts +6 -0
  1156. package/dist/ui/src/icons/components/HeightIcon.d.ts +6 -0
  1157. package/dist/ui/src/icons/components/HelpCenterIcon.d.ts +6 -0
  1158. package/dist/ui/src/icons/components/HelpIcon.d.ts +6 -0
  1159. package/dist/ui/src/icons/components/HelpOutlineIcon.d.ts +6 -0
  1160. package/dist/ui/src/icons/components/HevcIcon.d.ts +6 -0
  1161. package/dist/ui/src/icons/components/HexagonIcon.d.ts +6 -0
  1162. package/dist/ui/src/icons/components/HideImageIcon.d.ts +6 -0
  1163. package/dist/ui/src/icons/components/HideSourceIcon.d.ts +6 -0
  1164. package/dist/ui/src/icons/components/HighQualityIcon.d.ts +6 -0
  1165. package/dist/ui/src/icons/components/HighlightAltIcon.d.ts +6 -0
  1166. package/dist/ui/src/icons/components/HighlightIcon.d.ts +6 -0
  1167. package/dist/ui/src/icons/components/HighlightOffIcon.d.ts +6 -0
  1168. package/dist/ui/src/icons/components/HighlightRemoveIcon.d.ts +6 -0
  1169. package/dist/ui/src/icons/components/HikingIcon.d.ts +6 -0
  1170. package/dist/ui/src/icons/components/HistoryEduIcon.d.ts +6 -0
  1171. package/dist/ui/src/icons/components/HistoryIcon.d.ts +6 -0
  1172. package/dist/ui/src/icons/components/HistoryToggleOffIcon.d.ts +6 -0
  1173. package/dist/ui/src/icons/components/HiveIcon.d.ts +6 -0
  1174. package/dist/ui/src/icons/components/HlsIcon.d.ts +6 -0
  1175. package/dist/ui/src/icons/components/HlsOffIcon.d.ts +6 -0
  1176. package/dist/ui/src/icons/components/HolidayVillageIcon.d.ts +6 -0
  1177. package/dist/ui/src/icons/components/HomeIcon.d.ts +6 -0
  1178. package/dist/ui/src/icons/components/HomeMaxIcon.d.ts +6 -0
  1179. package/dist/ui/src/icons/components/HomeMiniIcon.d.ts +6 -0
  1180. package/dist/ui/src/icons/components/HomeRepairServiceIcon.d.ts +6 -0
  1181. package/dist/ui/src/icons/components/HomeWorkIcon.d.ts +6 -0
  1182. package/dist/ui/src/icons/components/HorizontalDistributeIcon.d.ts +6 -0
  1183. package/dist/ui/src/icons/components/HorizontalRuleIcon.d.ts +6 -0
  1184. package/dist/ui/src/icons/components/HorizontalSplitIcon.d.ts +6 -0
  1185. package/dist/ui/src/icons/components/HotTubIcon.d.ts +6 -0
  1186. package/dist/ui/src/icons/components/HotelClassIcon.d.ts +6 -0
  1187. package/dist/ui/src/icons/components/HotelIcon.d.ts +6 -0
  1188. package/dist/ui/src/icons/components/HourglassBottomIcon.d.ts +6 -0
  1189. package/dist/ui/src/icons/components/HourglassDisabledIcon.d.ts +6 -0
  1190. package/dist/ui/src/icons/components/HourglassEmptyIcon.d.ts +6 -0
  1191. package/dist/ui/src/icons/components/HourglassFullIcon.d.ts +6 -0
  1192. package/dist/ui/src/icons/components/HourglassTopIcon.d.ts +6 -0
  1193. package/dist/ui/src/icons/components/HouseIcon.d.ts +6 -0
  1194. package/dist/ui/src/icons/components/HouseSidingIcon.d.ts +6 -0
  1195. package/dist/ui/src/icons/components/HouseboatIcon.d.ts +6 -0
  1196. package/dist/ui/src/icons/components/HowToRegIcon.d.ts +6 -0
  1197. package/dist/ui/src/icons/components/HowToVoteIcon.d.ts +6 -0
  1198. package/dist/ui/src/icons/components/HtmlIcon.d.ts +6 -0
  1199. package/dist/ui/src/icons/components/HttpIcon.d.ts +6 -0
  1200. package/dist/ui/src/icons/components/HttpsIcon.d.ts +6 -0
  1201. package/dist/ui/src/icons/components/HubIcon.d.ts +6 -0
  1202. package/dist/ui/src/icons/components/HvacIcon.d.ts +6 -0
  1203. package/dist/ui/src/icons/components/IceSkatingIcon.d.ts +6 -0
  1204. package/dist/ui/src/icons/components/IcecreamIcon.d.ts +6 -0
  1205. package/dist/ui/src/icons/components/ImageAspectRatioIcon.d.ts +6 -0
  1206. package/dist/ui/src/icons/components/ImageIcon.d.ts +6 -0
  1207. package/dist/ui/src/icons/components/ImageNotSupportedIcon.d.ts +6 -0
  1208. package/dist/ui/src/icons/components/ImageSearchIcon.d.ts +6 -0
  1209. package/dist/ui/src/icons/components/ImagesearchRollerIcon.d.ts +6 -0
  1210. package/dist/ui/src/icons/components/ImportContactsIcon.d.ts +6 -0
  1211. package/dist/ui/src/icons/components/ImportExportIcon.d.ts +6 -0
  1212. package/dist/ui/src/icons/components/ImportantDevicesIcon.d.ts +6 -0
  1213. package/dist/ui/src/icons/components/InboxIcon.d.ts +6 -0
  1214. package/dist/ui/src/icons/components/IncompleteCircleIcon.d.ts +6 -0
  1215. package/dist/ui/src/icons/components/IndeterminateCheckBoxIcon.d.ts +6 -0
  1216. package/dist/ui/src/icons/components/InfoIcon.d.ts +6 -0
  1217. package/dist/ui/src/icons/components/InfoOutlineIcon.d.ts +6 -0
  1218. package/dist/ui/src/icons/components/InputIcon.d.ts +6 -0
  1219. package/dist/ui/src/icons/components/InsertChartIcon.d.ts +6 -0
  1220. package/dist/ui/src/icons/components/InsertChartOutlinedIcon.d.ts +6 -0
  1221. package/dist/ui/src/icons/components/InsertCommentIcon.d.ts +6 -0
  1222. package/dist/ui/src/icons/components/InsertDriveFileIcon.d.ts +6 -0
  1223. package/dist/ui/src/icons/components/InsertEmoticonIcon.d.ts +6 -0
  1224. package/dist/ui/src/icons/components/InsertInvitationIcon.d.ts +6 -0
  1225. package/dist/ui/src/icons/components/InsertLinkIcon.d.ts +6 -0
  1226. package/dist/ui/src/icons/components/InsertPageBreakIcon.d.ts +6 -0
  1227. package/dist/ui/src/icons/components/InsertPhotoIcon.d.ts +6 -0
  1228. package/dist/ui/src/icons/components/InsightsIcon.d.ts +6 -0
  1229. package/dist/ui/src/icons/components/InstallDesktopIcon.d.ts +6 -0
  1230. package/dist/ui/src/icons/components/InstallMobileIcon.d.ts +6 -0
  1231. package/dist/ui/src/icons/components/IntegrationInstructionsIcon.d.ts +6 -0
  1232. package/dist/ui/src/icons/components/InterestsIcon.d.ts +6 -0
  1233. package/dist/ui/src/icons/components/InterpreterModeIcon.d.ts +6 -0
  1234. package/dist/ui/src/icons/components/Inventory2Icon.d.ts +6 -0
  1235. package/dist/ui/src/icons/components/InventoryIcon.d.ts +6 -0
  1236. package/dist/ui/src/icons/components/InvertColorsIcon.d.ts +6 -0
  1237. package/dist/ui/src/icons/components/InvertColorsOffIcon.d.ts +6 -0
  1238. package/dist/ui/src/icons/components/InvertColorsOnIcon.d.ts +6 -0
  1239. package/dist/ui/src/icons/components/IosShareIcon.d.ts +6 -0
  1240. package/dist/ui/src/icons/components/IronIcon.d.ts +6 -0
  1241. package/dist/ui/src/icons/components/IsoIcon.d.ts +6 -0
  1242. package/dist/ui/src/icons/components/JavascriptIcon.d.ts +6 -0
  1243. package/dist/ui/src/icons/components/JoinFullIcon.d.ts +6 -0
  1244. package/dist/ui/src/icons/components/JoinInnerIcon.d.ts +6 -0
  1245. package/dist/ui/src/icons/components/JoinLeftIcon.d.ts +6 -0
  1246. package/dist/ui/src/icons/components/JoinRightIcon.d.ts +6 -0
  1247. package/dist/ui/src/icons/components/KayakingIcon.d.ts +6 -0
  1248. package/dist/ui/src/icons/components/KebabDiningIcon.d.ts +6 -0
  1249. package/dist/ui/src/icons/components/KeyIcon.d.ts +6 -0
  1250. package/dist/ui/src/icons/components/KeyOffIcon.d.ts +6 -0
  1251. package/dist/ui/src/icons/components/KeyboardAltIcon.d.ts +6 -0
  1252. package/dist/ui/src/icons/components/KeyboardArrowDownIcon.d.ts +6 -0
  1253. package/dist/ui/src/icons/components/KeyboardArrowLeftIcon.d.ts +6 -0
  1254. package/dist/ui/src/icons/components/KeyboardArrowRightIcon.d.ts +6 -0
  1255. package/dist/ui/src/icons/components/KeyboardArrowUpIcon.d.ts +6 -0
  1256. package/dist/ui/src/icons/components/KeyboardBackspaceIcon.d.ts +6 -0
  1257. package/dist/ui/src/icons/components/KeyboardCapslockIcon.d.ts +6 -0
  1258. package/dist/ui/src/icons/components/KeyboardCommandKeyIcon.d.ts +6 -0
  1259. package/dist/ui/src/icons/components/KeyboardControlIcon.d.ts +6 -0
  1260. package/dist/ui/src/icons/components/KeyboardControlKeyIcon.d.ts +6 -0
  1261. package/dist/ui/src/icons/components/KeyboardDoubleArrowDownIcon.d.ts +6 -0
  1262. package/dist/ui/src/icons/components/KeyboardDoubleArrowLeftIcon.d.ts +6 -0
  1263. package/dist/ui/src/icons/components/KeyboardDoubleArrowRightIcon.d.ts +6 -0
  1264. package/dist/ui/src/icons/components/KeyboardDoubleArrowUpIcon.d.ts +6 -0
  1265. package/dist/ui/src/icons/components/KeyboardHideIcon.d.ts +6 -0
  1266. package/dist/ui/src/icons/components/KeyboardIcon.d.ts +6 -0
  1267. package/dist/ui/src/icons/components/KeyboardOptionKeyIcon.d.ts +6 -0
  1268. package/dist/ui/src/icons/components/KeyboardReturnIcon.d.ts +6 -0
  1269. package/dist/ui/src/icons/components/KeyboardTabIcon.d.ts +6 -0
  1270. package/dist/ui/src/icons/components/KeyboardVoiceIcon.d.ts +6 -0
  1271. package/dist/ui/src/icons/components/KingBedIcon.d.ts +6 -0
  1272. package/dist/ui/src/icons/components/KitchenIcon.d.ts +6 -0
  1273. package/dist/ui/src/icons/components/KitesurfingIcon.d.ts +6 -0
  1274. package/dist/ui/src/icons/components/LabelIcon.d.ts +6 -0
  1275. package/dist/ui/src/icons/components/LabelImportantIcon.d.ts +6 -0
  1276. package/dist/ui/src/icons/components/LabelImportantOutlineIcon.d.ts +6 -0
  1277. package/dist/ui/src/icons/components/LabelOffIcon.d.ts +6 -0
  1278. package/dist/ui/src/icons/components/LabelOutlineIcon.d.ts +6 -0
  1279. package/dist/ui/src/icons/components/LanIcon.d.ts +6 -0
  1280. package/dist/ui/src/icons/components/LandscapeIcon.d.ts +6 -0
  1281. package/dist/ui/src/icons/components/LandslideIcon.d.ts +6 -0
  1282. package/dist/ui/src/icons/components/LanguageIcon.d.ts +6 -0
  1283. package/dist/ui/src/icons/components/LaptopChromebookIcon.d.ts +6 -0
  1284. package/dist/ui/src/icons/components/LaptopIcon.d.ts +6 -0
  1285. package/dist/ui/src/icons/components/LaptopMacIcon.d.ts +6 -0
  1286. package/dist/ui/src/icons/components/LaptopWindowsIcon.d.ts +6 -0
  1287. package/dist/ui/src/icons/components/LastPageIcon.d.ts +6 -0
  1288. package/dist/ui/src/icons/components/LaunchIcon.d.ts +6 -0
  1289. package/dist/ui/src/icons/components/LayersClearIcon.d.ts +6 -0
  1290. package/dist/ui/src/icons/components/LayersIcon.d.ts +6 -0
  1291. package/dist/ui/src/icons/components/LeaderboardIcon.d.ts +6 -0
  1292. package/dist/ui/src/icons/components/LeakAddIcon.d.ts +6 -0
  1293. package/dist/ui/src/icons/components/LeakRemoveIcon.d.ts +6 -0
  1294. package/dist/ui/src/icons/components/LeaveBagsAtHomeIcon.d.ts +6 -0
  1295. package/dist/ui/src/icons/components/LegendToggleIcon.d.ts +6 -0
  1296. package/dist/ui/src/icons/components/LensBlurIcon.d.ts +6 -0
  1297. package/dist/ui/src/icons/components/LensIcon.d.ts +6 -0
  1298. package/dist/ui/src/icons/components/LibraryAddCheckIcon.d.ts +6 -0
  1299. package/dist/ui/src/icons/components/LibraryAddIcon.d.ts +6 -0
  1300. package/dist/ui/src/icons/components/LibraryBooksIcon.d.ts +6 -0
  1301. package/dist/ui/src/icons/components/LibraryMusicIcon.d.ts +6 -0
  1302. package/dist/ui/src/icons/components/LightIcon.d.ts +6 -0
  1303. package/dist/ui/src/icons/components/LightModeIcon.d.ts +6 -0
  1304. package/dist/ui/src/icons/components/LightbulbCircleIcon.d.ts +6 -0
  1305. package/dist/ui/src/icons/components/LightbulbIcon.d.ts +6 -0
  1306. package/dist/ui/src/icons/components/LightbulbOutlineIcon.d.ts +6 -0
  1307. package/dist/ui/src/icons/components/LineAxisIcon.d.ts +6 -0
  1308. package/dist/ui/src/icons/components/LineStyleIcon.d.ts +6 -0
  1309. package/dist/ui/src/icons/components/LineWeightIcon.d.ts +6 -0
  1310. package/dist/ui/src/icons/components/LinearScaleIcon.d.ts +6 -0
  1311. package/dist/ui/src/icons/components/LinkIcon.d.ts +6 -0
  1312. package/dist/ui/src/icons/components/LinkOffIcon.d.ts +6 -0
  1313. package/dist/ui/src/icons/components/LinkedCameraIcon.d.ts +6 -0
  1314. package/dist/ui/src/icons/components/LiquorIcon.d.ts +6 -0
  1315. package/dist/ui/src/icons/components/ListAltIcon.d.ts +6 -0
  1316. package/dist/ui/src/icons/components/ListIcon.d.ts +6 -0
  1317. package/dist/ui/src/icons/components/LiveHelpIcon.d.ts +6 -0
  1318. package/dist/ui/src/icons/components/LiveTvIcon.d.ts +6 -0
  1319. package/dist/ui/src/icons/components/LivingIcon.d.ts +6 -0
  1320. package/dist/ui/src/icons/components/LocalActivityIcon.d.ts +6 -0
  1321. package/dist/ui/src/icons/components/LocalAirportIcon.d.ts +6 -0
  1322. package/dist/ui/src/icons/components/LocalAtmIcon.d.ts +6 -0
  1323. package/dist/ui/src/icons/components/LocalAttractionIcon.d.ts +6 -0
  1324. package/dist/ui/src/icons/components/LocalBarIcon.d.ts +6 -0
  1325. package/dist/ui/src/icons/components/LocalCafeIcon.d.ts +6 -0
  1326. package/dist/ui/src/icons/components/LocalCarWashIcon.d.ts +6 -0
  1327. package/dist/ui/src/icons/components/LocalConvenienceStoreIcon.d.ts +6 -0
  1328. package/dist/ui/src/icons/components/LocalDiningIcon.d.ts +6 -0
  1329. package/dist/ui/src/icons/components/LocalDrinkIcon.d.ts +6 -0
  1330. package/dist/ui/src/icons/components/LocalFireDepartmentIcon.d.ts +6 -0
  1331. package/dist/ui/src/icons/components/LocalFloristIcon.d.ts +6 -0
  1332. package/dist/ui/src/icons/components/LocalGasStationIcon.d.ts +6 -0
  1333. package/dist/ui/src/icons/components/LocalGroceryStoreIcon.d.ts +6 -0
  1334. package/dist/ui/src/icons/components/LocalHospitalIcon.d.ts +6 -0
  1335. package/dist/ui/src/icons/components/LocalHotelIcon.d.ts +6 -0
  1336. package/dist/ui/src/icons/components/LocalLaundryServiceIcon.d.ts +6 -0
  1337. package/dist/ui/src/icons/components/LocalLibraryIcon.d.ts +6 -0
  1338. package/dist/ui/src/icons/components/LocalMallIcon.d.ts +6 -0
  1339. package/dist/ui/src/icons/components/LocalMoviesIcon.d.ts +6 -0
  1340. package/dist/ui/src/icons/components/LocalOfferIcon.d.ts +6 -0
  1341. package/dist/ui/src/icons/components/LocalParkingIcon.d.ts +6 -0
  1342. package/dist/ui/src/icons/components/LocalPharmacyIcon.d.ts +6 -0
  1343. package/dist/ui/src/icons/components/LocalPhoneIcon.d.ts +6 -0
  1344. package/dist/ui/src/icons/components/LocalPizzaIcon.d.ts +6 -0
  1345. package/dist/ui/src/icons/components/LocalPlayIcon.d.ts +6 -0
  1346. package/dist/ui/src/icons/components/LocalPoliceIcon.d.ts +6 -0
  1347. package/dist/ui/src/icons/components/LocalPostOfficeIcon.d.ts +6 -0
  1348. package/dist/ui/src/icons/components/LocalPrintShopIcon.d.ts +6 -0
  1349. package/dist/ui/src/icons/components/LocalRestaurantIcon.d.ts +6 -0
  1350. package/dist/ui/src/icons/components/LocalSeeIcon.d.ts +6 -0
  1351. package/dist/ui/src/icons/components/LocalShippingIcon.d.ts +6 -0
  1352. package/dist/ui/src/icons/components/LocalTaxiIcon.d.ts +6 -0
  1353. package/dist/ui/src/icons/components/LocationCityIcon.d.ts +6 -0
  1354. package/dist/ui/src/icons/components/LocationDisabledIcon.d.ts +6 -0
  1355. package/dist/ui/src/icons/components/LocationHistoryIcon.d.ts +6 -0
  1356. package/dist/ui/src/icons/components/LocationOffIcon.d.ts +6 -0
  1357. package/dist/ui/src/icons/components/LocationOnIcon.d.ts +6 -0
  1358. package/dist/ui/src/icons/components/LocationSearchingIcon.d.ts +6 -0
  1359. package/dist/ui/src/icons/components/LockClockIcon.d.ts +6 -0
  1360. package/dist/ui/src/icons/components/LockIcon.d.ts +6 -0
  1361. package/dist/ui/src/icons/components/LockOpenIcon.d.ts +6 -0
  1362. package/dist/ui/src/icons/components/LockOutlineIcon.d.ts +6 -0
  1363. package/dist/ui/src/icons/components/LockPersonIcon.d.ts +6 -0
  1364. package/dist/ui/src/icons/components/LockResetIcon.d.ts +6 -0
  1365. package/dist/ui/src/icons/components/LoginIcon.d.ts +6 -0
  1366. package/dist/ui/src/icons/components/LogoDevIcon.d.ts +6 -0
  1367. package/dist/ui/src/icons/components/LogoutIcon.d.ts +6 -0
  1368. package/dist/ui/src/icons/components/Looks3Icon.d.ts +6 -0
  1369. package/dist/ui/src/icons/components/Looks4Icon.d.ts +6 -0
  1370. package/dist/ui/src/icons/components/Looks5Icon.d.ts +6 -0
  1371. package/dist/ui/src/icons/components/Looks6Icon.d.ts +6 -0
  1372. package/dist/ui/src/icons/components/LooksIcon.d.ts +6 -0
  1373. package/dist/ui/src/icons/components/LooksOneIcon.d.ts +6 -0
  1374. package/dist/ui/src/icons/components/LooksTwoIcon.d.ts +6 -0
  1375. package/dist/ui/src/icons/components/LoopIcon.d.ts +6 -0
  1376. package/dist/ui/src/icons/components/LoupeIcon.d.ts +6 -0
  1377. package/dist/ui/src/icons/components/LowPriorityIcon.d.ts +6 -0
  1378. package/dist/ui/src/icons/components/LoyaltyIcon.d.ts +6 -0
  1379. package/dist/ui/src/icons/components/LteMobiledataIcon.d.ts +6 -0
  1380. package/dist/ui/src/icons/components/LtePlusMobiledataIcon.d.ts +6 -0
  1381. package/dist/ui/src/icons/components/LuggageIcon.d.ts +6 -0
  1382. package/dist/ui/src/icons/components/LunchDiningIcon.d.ts +6 -0
  1383. package/dist/ui/src/icons/components/LyricsIcon.d.ts +6 -0
  1384. package/dist/ui/src/icons/components/MacroOffIcon.d.ts +6 -0
  1385. package/dist/ui/src/icons/components/MailIcon.d.ts +6 -0
  1386. package/dist/ui/src/icons/components/MailLockIcon.d.ts +6 -0
  1387. package/dist/ui/src/icons/components/MailOutlineIcon.d.ts +6 -0
  1388. package/dist/ui/src/icons/components/MaleIcon.d.ts +6 -0
  1389. package/dist/ui/src/icons/components/Man2Icon.d.ts +6 -0
  1390. package/dist/ui/src/icons/components/Man3Icon.d.ts +6 -0
  1391. package/dist/ui/src/icons/components/Man4Icon.d.ts +6 -0
  1392. package/dist/ui/src/icons/components/ManIcon.d.ts +6 -0
  1393. package/dist/ui/src/icons/components/ManageAccountsIcon.d.ts +6 -0
  1394. package/dist/ui/src/icons/components/ManageHistoryIcon.d.ts +6 -0
  1395. package/dist/ui/src/icons/components/ManageSearchIcon.d.ts +6 -0
  1396. package/dist/ui/src/icons/components/MapIcon.d.ts +6 -0
  1397. package/dist/ui/src/icons/components/MapsHomeWorkIcon.d.ts +6 -0
  1398. package/dist/ui/src/icons/components/MapsUgcIcon.d.ts +6 -0
  1399. package/dist/ui/src/icons/components/MarginIcon.d.ts +6 -0
  1400. package/dist/ui/src/icons/components/MarkAsUnreadIcon.d.ts +6 -0
  1401. package/dist/ui/src/icons/components/MarkChatReadIcon.d.ts +6 -0
  1402. package/dist/ui/src/icons/components/MarkChatUnreadIcon.d.ts +6 -0
  1403. package/dist/ui/src/icons/components/MarkEmailReadIcon.d.ts +6 -0
  1404. package/dist/ui/src/icons/components/MarkEmailUnreadIcon.d.ts +6 -0
  1405. package/dist/ui/src/icons/components/MarkUnreadChatAltIcon.d.ts +6 -0
  1406. package/dist/ui/src/icons/components/MarkunreadIcon.d.ts +6 -0
  1407. package/dist/ui/src/icons/components/MarkunreadMailboxIcon.d.ts +6 -0
  1408. package/dist/ui/src/icons/components/MasksIcon.d.ts +6 -0
  1409. package/dist/ui/src/icons/components/MaximizeIcon.d.ts +6 -0
  1410. package/dist/ui/src/icons/components/MediaBluetoothOffIcon.d.ts +6 -0
  1411. package/dist/ui/src/icons/components/MediaBluetoothOnIcon.d.ts +6 -0
  1412. package/dist/ui/src/icons/components/MediationIcon.d.ts +6 -0
  1413. package/dist/ui/src/icons/components/MedicalInformationIcon.d.ts +6 -0
  1414. package/dist/ui/src/icons/components/MedicalServicesIcon.d.ts +6 -0
  1415. package/dist/ui/src/icons/components/MedicationIcon.d.ts +6 -0
  1416. package/dist/ui/src/icons/components/MedicationLiquidIcon.d.ts +6 -0
  1417. package/dist/ui/src/icons/components/MeetingRoomIcon.d.ts +6 -0
  1418. package/dist/ui/src/icons/components/MemoryIcon.d.ts +6 -0
  1419. package/dist/ui/src/icons/components/MenuBookIcon.d.ts +6 -0
  1420. package/dist/ui/src/icons/components/MenuIcon.d.ts +6 -0
  1421. package/dist/ui/src/icons/components/MenuOpenIcon.d.ts +6 -0
  1422. package/dist/ui/src/icons/components/MergeIcon.d.ts +6 -0
  1423. package/dist/ui/src/icons/components/MergeTypeIcon.d.ts +6 -0
  1424. package/dist/ui/src/icons/components/MessageIcon.d.ts +6 -0
  1425. package/dist/ui/src/icons/components/MessengerIcon.d.ts +6 -0
  1426. package/dist/ui/src/icons/components/MessengerOutlineIcon.d.ts +6 -0
  1427. package/dist/ui/src/icons/components/MicExternalOffIcon.d.ts +6 -0
  1428. package/dist/ui/src/icons/components/MicExternalOnIcon.d.ts +6 -0
  1429. package/dist/ui/src/icons/components/MicIcon.d.ts +6 -0
  1430. package/dist/ui/src/icons/components/MicNoneIcon.d.ts +6 -0
  1431. package/dist/ui/src/icons/components/MicOffIcon.d.ts +6 -0
  1432. package/dist/ui/src/icons/components/MicrowaveIcon.d.ts +6 -0
  1433. package/dist/ui/src/icons/components/MilitaryTechIcon.d.ts +6 -0
  1434. package/dist/ui/src/icons/components/MinimizeIcon.d.ts +6 -0
  1435. package/dist/ui/src/icons/components/MinorCrashIcon.d.ts +6 -0
  1436. package/dist/ui/src/icons/components/MiscellaneousServicesIcon.d.ts +6 -0
  1437. package/dist/ui/src/icons/components/MissedVideoCallIcon.d.ts +6 -0
  1438. package/dist/ui/src/icons/components/MmsIcon.d.ts +6 -0
  1439. package/dist/ui/src/icons/components/MobileFriendlyIcon.d.ts +6 -0
  1440. package/dist/ui/src/icons/components/MobileOffIcon.d.ts +6 -0
  1441. package/dist/ui/src/icons/components/MobileScreenShareIcon.d.ts +6 -0
  1442. package/dist/ui/src/icons/components/MobiledataOffIcon.d.ts +6 -0
  1443. package/dist/ui/src/icons/components/ModeCommentIcon.d.ts +6 -0
  1444. package/dist/ui/src/icons/components/ModeEditIcon.d.ts +6 -0
  1445. package/dist/ui/src/icons/components/ModeEditOutlineIcon.d.ts +6 -0
  1446. package/dist/ui/src/icons/components/ModeFanOffIcon.d.ts +6 -0
  1447. package/dist/ui/src/icons/components/ModeIcon.d.ts +6 -0
  1448. package/dist/ui/src/icons/components/ModeNightIcon.d.ts +6 -0
  1449. package/dist/ui/src/icons/components/ModeOfTravelIcon.d.ts +6 -0
  1450. package/dist/ui/src/icons/components/ModeStandbyIcon.d.ts +6 -0
  1451. package/dist/ui/src/icons/components/ModelTrainingIcon.d.ts +6 -0
  1452. package/dist/ui/src/icons/components/MonetizationOnIcon.d.ts +6 -0
  1453. package/dist/ui/src/icons/components/MoneyIcon.d.ts +6 -0
  1454. package/dist/ui/src/icons/components/MoneyOffCsredIcon.d.ts +6 -0
  1455. package/dist/ui/src/icons/components/MoneyOffIcon.d.ts +6 -0
  1456. package/dist/ui/src/icons/components/MonitorHeartIcon.d.ts +6 -0
  1457. package/dist/ui/src/icons/components/MonitorIcon.d.ts +6 -0
  1458. package/dist/ui/src/icons/components/MonitorWeightIcon.d.ts +6 -0
  1459. package/dist/ui/src/icons/components/MonochromePhotosIcon.d.ts +6 -0
  1460. package/dist/ui/src/icons/components/MoodBadIcon.d.ts +6 -0
  1461. package/dist/ui/src/icons/components/MoodIcon.d.ts +6 -0
  1462. package/dist/ui/src/icons/components/MopedIcon.d.ts +6 -0
  1463. package/dist/ui/src/icons/components/MoreHorizIcon.d.ts +6 -0
  1464. package/dist/ui/src/icons/components/MoreIcon.d.ts +6 -0
  1465. package/dist/ui/src/icons/components/MoreTimeIcon.d.ts +6 -0
  1466. package/dist/ui/src/icons/components/MoreVertIcon.d.ts +6 -0
  1467. package/dist/ui/src/icons/components/MosqueIcon.d.ts +6 -0
  1468. package/dist/ui/src/icons/components/MotionPhotosAutoIcon.d.ts +6 -0
  1469. package/dist/ui/src/icons/components/MotionPhotosOffIcon.d.ts +6 -0
  1470. package/dist/ui/src/icons/components/MotionPhotosOnIcon.d.ts +6 -0
  1471. package/dist/ui/src/icons/components/MotionPhotosPauseIcon.d.ts +6 -0
  1472. package/dist/ui/src/icons/components/MotionPhotosPausedIcon.d.ts +6 -0
  1473. package/dist/ui/src/icons/components/MotorcycleIcon.d.ts +6 -0
  1474. package/dist/ui/src/icons/components/MouseIcon.d.ts +6 -0
  1475. package/dist/ui/src/icons/components/MoveDownIcon.d.ts +6 -0
  1476. package/dist/ui/src/icons/components/MoveToInboxIcon.d.ts +6 -0
  1477. package/dist/ui/src/icons/components/MoveUpIcon.d.ts +6 -0
  1478. package/dist/ui/src/icons/components/MovieCreationIcon.d.ts +6 -0
  1479. package/dist/ui/src/icons/components/MovieFilterIcon.d.ts +6 -0
  1480. package/dist/ui/src/icons/components/MovieIcon.d.ts +6 -0
  1481. package/dist/ui/src/icons/components/MovingIcon.d.ts +6 -0
  1482. package/dist/ui/src/icons/components/MpIcon.d.ts +6 -0
  1483. package/dist/ui/src/icons/components/MultilineChartIcon.d.ts +6 -0
  1484. package/dist/ui/src/icons/components/MultipleStopIcon.d.ts +6 -0
  1485. package/dist/ui/src/icons/components/MultitrackAudioIcon.d.ts +6 -0
  1486. package/dist/ui/src/icons/components/MuseumIcon.d.ts +6 -0
  1487. package/dist/ui/src/icons/components/MusicNoteIcon.d.ts +6 -0
  1488. package/dist/ui/src/icons/components/MusicOffIcon.d.ts +6 -0
  1489. package/dist/ui/src/icons/components/MusicVideoIcon.d.ts +6 -0
  1490. package/dist/ui/src/icons/components/MyLibraryAddIcon.d.ts +6 -0
  1491. package/dist/ui/src/icons/components/MyLibraryBooksIcon.d.ts +6 -0
  1492. package/dist/ui/src/icons/components/MyLibraryMusicIcon.d.ts +6 -0
  1493. package/dist/ui/src/icons/components/MyLocationIcon.d.ts +6 -0
  1494. package/dist/ui/src/icons/components/NatIcon.d.ts +6 -0
  1495. package/dist/ui/src/icons/components/NatureIcon.d.ts +6 -0
  1496. package/dist/ui/src/icons/components/NaturePeopleIcon.d.ts +6 -0
  1497. package/dist/ui/src/icons/components/NavigateBeforeIcon.d.ts +6 -0
  1498. package/dist/ui/src/icons/components/NavigateNextIcon.d.ts +6 -0
  1499. package/dist/ui/src/icons/components/NavigationIcon.d.ts +6 -0
  1500. package/dist/ui/src/icons/components/NearMeDisabledIcon.d.ts +6 -0
  1501. package/dist/ui/src/icons/components/NearMeIcon.d.ts +6 -0
  1502. package/dist/ui/src/icons/components/NearbyErrorIcon.d.ts +6 -0
  1503. package/dist/ui/src/icons/components/NearbyOffIcon.d.ts +6 -0
  1504. package/dist/ui/src/icons/components/NestCamWiredStandIcon.d.ts +6 -0
  1505. package/dist/ui/src/icons/components/NetworkCellIcon.d.ts +6 -0
  1506. package/dist/ui/src/icons/components/NetworkCheckIcon.d.ts +6 -0
  1507. package/dist/ui/src/icons/components/NetworkLockedIcon.d.ts +6 -0
  1508. package/dist/ui/src/icons/components/NetworkPingIcon.d.ts +6 -0
  1509. package/dist/ui/src/icons/components/NetworkWifi1BarIcon.d.ts +6 -0
  1510. package/dist/ui/src/icons/components/NetworkWifi2BarIcon.d.ts +6 -0
  1511. package/dist/ui/src/icons/components/NetworkWifi3BarIcon.d.ts +6 -0
  1512. package/dist/ui/src/icons/components/NetworkWifiIcon.d.ts +6 -0
  1513. package/dist/ui/src/icons/components/NewLabelIcon.d.ts +6 -0
  1514. package/dist/ui/src/icons/components/NewReleasesIcon.d.ts +6 -0
  1515. package/dist/ui/src/icons/components/NewspaperIcon.d.ts +6 -0
  1516. package/dist/ui/src/icons/components/NextPlanIcon.d.ts +6 -0
  1517. package/dist/ui/src/icons/components/NextWeekIcon.d.ts +6 -0
  1518. package/dist/ui/src/icons/components/NfcIcon.d.ts +6 -0
  1519. package/dist/ui/src/icons/components/NightShelterIcon.d.ts +6 -0
  1520. package/dist/ui/src/icons/components/NightlifeIcon.d.ts +6 -0
  1521. package/dist/ui/src/icons/components/NightlightIcon.d.ts +6 -0
  1522. package/dist/ui/src/icons/components/NightlightRoundIcon.d.ts +6 -0
  1523. package/dist/ui/src/icons/components/NightsStayIcon.d.ts +6 -0
  1524. package/dist/ui/src/icons/components/NoAccountsIcon.d.ts +6 -0
  1525. package/dist/ui/src/icons/components/NoAdultContentIcon.d.ts +6 -0
  1526. package/dist/ui/src/icons/components/NoBackpackIcon.d.ts +6 -0
  1527. package/dist/ui/src/icons/components/NoCellIcon.d.ts +6 -0
  1528. package/dist/ui/src/icons/components/NoCrashIcon.d.ts +6 -0
  1529. package/dist/ui/src/icons/components/NoDrinksIcon.d.ts +6 -0
  1530. package/dist/ui/src/icons/components/NoEncryptionGmailerrorredIcon.d.ts +6 -0
  1531. package/dist/ui/src/icons/components/NoEncryptionIcon.d.ts +6 -0
  1532. package/dist/ui/src/icons/components/NoFlashIcon.d.ts +6 -0
  1533. package/dist/ui/src/icons/components/NoFoodIcon.d.ts +6 -0
  1534. package/dist/ui/src/icons/components/NoLuggageIcon.d.ts +6 -0
  1535. package/dist/ui/src/icons/components/NoMealsIcon.d.ts +6 -0
  1536. package/dist/ui/src/icons/components/NoMeetingRoomIcon.d.ts +6 -0
  1537. package/dist/ui/src/icons/components/NoPhotographyIcon.d.ts +6 -0
  1538. package/dist/ui/src/icons/components/NoSimIcon.d.ts +6 -0
  1539. package/dist/ui/src/icons/components/NoStrollerIcon.d.ts +6 -0
  1540. package/dist/ui/src/icons/components/NoTransferIcon.d.ts +6 -0
  1541. package/dist/ui/src/icons/components/NoiseAwareIcon.d.ts +6 -0
  1542. package/dist/ui/src/icons/components/NoiseControlOffIcon.d.ts +6 -0
  1543. package/dist/ui/src/icons/components/NordicWalkingIcon.d.ts +6 -0
  1544. package/dist/ui/src/icons/components/NorthEastIcon.d.ts +6 -0
  1545. package/dist/ui/src/icons/components/NorthIcon.d.ts +6 -0
  1546. package/dist/ui/src/icons/components/NorthWestIcon.d.ts +6 -0
  1547. package/dist/ui/src/icons/components/NotAccessibleIcon.d.ts +6 -0
  1548. package/dist/ui/src/icons/components/NotInterestedIcon.d.ts +6 -0
  1549. package/dist/ui/src/icons/components/NotListedLocationIcon.d.ts +6 -0
  1550. package/dist/ui/src/icons/components/NotStartedIcon.d.ts +6 -0
  1551. package/dist/ui/src/icons/components/NoteAddIcon.d.ts +6 -0
  1552. package/dist/ui/src/icons/components/NoteAltIcon.d.ts +6 -0
  1553. package/dist/ui/src/icons/components/NoteIcon.d.ts +6 -0
  1554. package/dist/ui/src/icons/components/NotesIcon.d.ts +6 -0
  1555. package/dist/ui/src/icons/components/NotificationAddIcon.d.ts +6 -0
  1556. package/dist/ui/src/icons/components/NotificationImportantIcon.d.ts +6 -0
  1557. package/dist/ui/src/icons/components/NotificationsActiveIcon.d.ts +6 -0
  1558. package/dist/ui/src/icons/components/NotificationsIcon.d.ts +6 -0
  1559. package/dist/ui/src/icons/components/NotificationsNoneIcon.d.ts +6 -0
  1560. package/dist/ui/src/icons/components/NotificationsOffIcon.d.ts +6 -0
  1561. package/dist/ui/src/icons/components/NotificationsOnIcon.d.ts +6 -0
  1562. package/dist/ui/src/icons/components/NotificationsPausedIcon.d.ts +6 -0
  1563. package/dist/ui/src/icons/components/NowWallpaperIcon.d.ts +6 -0
  1564. package/dist/ui/src/icons/components/NowWidgetsIcon.d.ts +6 -0
  1565. package/dist/ui/src/icons/components/NumbersIcon.d.ts +6 -0
  1566. package/dist/ui/src/icons/components/OfflineBoltIcon.d.ts +6 -0
  1567. package/dist/ui/src/icons/components/OfflinePinIcon.d.ts +6 -0
  1568. package/dist/ui/src/icons/components/OfflineShareIcon.d.ts +6 -0
  1569. package/dist/ui/src/icons/components/OilBarrelIcon.d.ts +6 -0
  1570. package/dist/ui/src/icons/components/OnDeviceTrainingIcon.d.ts +6 -0
  1571. package/dist/ui/src/icons/components/OndemandVideoIcon.d.ts +6 -0
  1572. package/dist/ui/src/icons/components/OnlinePredictionIcon.d.ts +6 -0
  1573. package/dist/ui/src/icons/components/OpacityIcon.d.ts +6 -0
  1574. package/dist/ui/src/icons/components/OpenInBrowserIcon.d.ts +6 -0
  1575. package/dist/ui/src/icons/components/OpenInFullIcon.d.ts +6 -0
  1576. package/dist/ui/src/icons/components/OpenInNewIcon.d.ts +6 -0
  1577. package/dist/ui/src/icons/components/OpenInNewOffIcon.d.ts +6 -0
  1578. package/dist/ui/src/icons/components/OpenWithIcon.d.ts +6 -0
  1579. package/dist/ui/src/icons/components/OtherHousesIcon.d.ts +6 -0
  1580. package/dist/ui/src/icons/components/OutbondIcon.d.ts +6 -0
  1581. package/dist/ui/src/icons/components/OutboundIcon.d.ts +6 -0
  1582. package/dist/ui/src/icons/components/OutboxIcon.d.ts +6 -0
  1583. package/dist/ui/src/icons/components/OutdoorGrillIcon.d.ts +6 -0
  1584. package/dist/ui/src/icons/components/OutletIcon.d.ts +6 -0
  1585. package/dist/ui/src/icons/components/OutlinedFlagIcon.d.ts +6 -0
  1586. package/dist/ui/src/icons/components/OutputIcon.d.ts +6 -0
  1587. package/dist/ui/src/icons/components/PaddingIcon.d.ts +6 -0
  1588. package/dist/ui/src/icons/components/PagesIcon.d.ts +6 -0
  1589. package/dist/ui/src/icons/components/PageviewIcon.d.ts +6 -0
  1590. package/dist/ui/src/icons/components/PaidIcon.d.ts +6 -0
  1591. package/dist/ui/src/icons/components/PaletteIcon.d.ts +6 -0
  1592. package/dist/ui/src/icons/components/PanToolAltIcon.d.ts +6 -0
  1593. package/dist/ui/src/icons/components/PanToolIcon.d.ts +6 -0
  1594. package/dist/ui/src/icons/components/PanoramaFishEyeIcon.d.ts +6 -0
  1595. package/dist/ui/src/icons/components/PanoramaHorizontalIcon.d.ts +6 -0
  1596. package/dist/ui/src/icons/components/PanoramaHorizontalSelectIcon.d.ts +6 -0
  1597. package/dist/ui/src/icons/components/PanoramaIcon.d.ts +6 -0
  1598. package/dist/ui/src/icons/components/PanoramaPhotosphereIcon.d.ts +6 -0
  1599. package/dist/ui/src/icons/components/PanoramaPhotosphereSelectIcon.d.ts +6 -0
  1600. package/dist/ui/src/icons/components/PanoramaVerticalIcon.d.ts +6 -0
  1601. package/dist/ui/src/icons/components/PanoramaVerticalSelectIcon.d.ts +6 -0
  1602. package/dist/ui/src/icons/components/PanoramaWideAngleIcon.d.ts +6 -0
  1603. package/dist/ui/src/icons/components/PanoramaWideAngleSelectIcon.d.ts +6 -0
  1604. package/dist/ui/src/icons/components/ParaglidingIcon.d.ts +6 -0
  1605. package/dist/ui/src/icons/components/ParkIcon.d.ts +6 -0
  1606. package/dist/ui/src/icons/components/PartyModeIcon.d.ts +6 -0
  1607. package/dist/ui/src/icons/components/PasswordIcon.d.ts +6 -0
  1608. package/dist/ui/src/icons/components/PasteIcon.d.ts +6 -0
  1609. package/dist/ui/src/icons/components/PatternIcon.d.ts +6 -0
  1610. package/dist/ui/src/icons/components/PauseCircleFilledIcon.d.ts +6 -0
  1611. package/dist/ui/src/icons/components/PauseCircleIcon.d.ts +6 -0
  1612. package/dist/ui/src/icons/components/PauseCircleOutlineIcon.d.ts +6 -0
  1613. package/dist/ui/src/icons/components/PauseIcon.d.ts +6 -0
  1614. package/dist/ui/src/icons/components/PausePresentationIcon.d.ts +6 -0
  1615. package/dist/ui/src/icons/components/PaymentIcon.d.ts +6 -0
  1616. package/dist/ui/src/icons/components/PaymentsIcon.d.ts +6 -0
  1617. package/dist/ui/src/icons/components/PaypalIcon.d.ts +6 -0
  1618. package/dist/ui/src/icons/components/PedalBikeIcon.d.ts +6 -0
  1619. package/dist/ui/src/icons/components/PendingActionsIcon.d.ts +6 -0
  1620. package/dist/ui/src/icons/components/PendingIcon.d.ts +6 -0
  1621. package/dist/ui/src/icons/components/PentagonIcon.d.ts +6 -0
  1622. package/dist/ui/src/icons/components/PeopleAltIcon.d.ts +6 -0
  1623. package/dist/ui/src/icons/components/PeopleIcon.d.ts +6 -0
  1624. package/dist/ui/src/icons/components/PeopleOutlineIcon.d.ts +6 -0
  1625. package/dist/ui/src/icons/components/PercentIcon.d.ts +6 -0
  1626. package/dist/ui/src/icons/components/PermCameraMicIcon.d.ts +6 -0
  1627. package/dist/ui/src/icons/components/PermContactCalIcon.d.ts +6 -0
  1628. package/dist/ui/src/icons/components/PermContactCalendarIcon.d.ts +6 -0
  1629. package/dist/ui/src/icons/components/PermDataSettingIcon.d.ts +6 -0
  1630. package/dist/ui/src/icons/components/PermDeviceInfoIcon.d.ts +6 -0
  1631. package/dist/ui/src/icons/components/PermDeviceInformationIcon.d.ts +6 -0
  1632. package/dist/ui/src/icons/components/PermIdentityIcon.d.ts +6 -0
  1633. package/dist/ui/src/icons/components/PermMediaIcon.d.ts +6 -0
  1634. package/dist/ui/src/icons/components/PermPhoneMsgIcon.d.ts +6 -0
  1635. package/dist/ui/src/icons/components/PermScanWifiIcon.d.ts +6 -0
  1636. package/dist/ui/src/icons/components/Person2Icon.d.ts +6 -0
  1637. package/dist/ui/src/icons/components/Person3Icon.d.ts +6 -0
  1638. package/dist/ui/src/icons/components/Person4Icon.d.ts +6 -0
  1639. package/dist/ui/src/icons/components/PersonAddAlt1Icon.d.ts +6 -0
  1640. package/dist/ui/src/icons/components/PersonAddAltIcon.d.ts +6 -0
  1641. package/dist/ui/src/icons/components/PersonAddDisabledIcon.d.ts +6 -0
  1642. package/dist/ui/src/icons/components/PersonAddIcon.d.ts +6 -0
  1643. package/dist/ui/src/icons/components/PersonIcon.d.ts +6 -0
  1644. package/dist/ui/src/icons/components/PersonOffIcon.d.ts +6 -0
  1645. package/dist/ui/src/icons/components/PersonOutlineIcon.d.ts +6 -0
  1646. package/dist/ui/src/icons/components/PersonPinCircleIcon.d.ts +6 -0
  1647. package/dist/ui/src/icons/components/PersonPinIcon.d.ts +6 -0
  1648. package/dist/ui/src/icons/components/PersonRemoveAlt1Icon.d.ts +6 -0
  1649. package/dist/ui/src/icons/components/PersonRemoveIcon.d.ts +6 -0
  1650. package/dist/ui/src/icons/components/PersonSearchIcon.d.ts +6 -0
  1651. package/dist/ui/src/icons/components/PersonalInjuryIcon.d.ts +6 -0
  1652. package/dist/ui/src/icons/components/PersonalVideoIcon.d.ts +6 -0
  1653. package/dist/ui/src/icons/components/PestControlIcon.d.ts +6 -0
  1654. package/dist/ui/src/icons/components/PestControlRodentIcon.d.ts +6 -0
  1655. package/dist/ui/src/icons/components/PetsIcon.d.ts +6 -0
  1656. package/dist/ui/src/icons/components/PhishingIcon.d.ts +6 -0
  1657. package/dist/ui/src/icons/components/PhoneAndroidIcon.d.ts +6 -0
  1658. package/dist/ui/src/icons/components/PhoneBluetoothSpeakerIcon.d.ts +6 -0
  1659. package/dist/ui/src/icons/components/PhoneCallbackIcon.d.ts +6 -0
  1660. package/dist/ui/src/icons/components/PhoneDisabledIcon.d.ts +6 -0
  1661. package/dist/ui/src/icons/components/PhoneEnabledIcon.d.ts +6 -0
  1662. package/dist/ui/src/icons/components/PhoneForwardedIcon.d.ts +6 -0
  1663. package/dist/ui/src/icons/components/PhoneIcon.d.ts +6 -0
  1664. package/dist/ui/src/icons/components/PhoneInTalkIcon.d.ts +6 -0
  1665. package/dist/ui/src/icons/components/PhoneIphoneIcon.d.ts +6 -0
  1666. package/dist/ui/src/icons/components/PhoneLockedIcon.d.ts +6 -0
  1667. package/dist/ui/src/icons/components/PhoneMissedIcon.d.ts +6 -0
  1668. package/dist/ui/src/icons/components/PhonePausedIcon.d.ts +6 -0
  1669. package/dist/ui/src/icons/components/PhonelinkEraseIcon.d.ts +6 -0
  1670. package/dist/ui/src/icons/components/PhonelinkIcon.d.ts +6 -0
  1671. package/dist/ui/src/icons/components/PhonelinkLockIcon.d.ts +6 -0
  1672. package/dist/ui/src/icons/components/PhonelinkOffIcon.d.ts +6 -0
  1673. package/dist/ui/src/icons/components/PhonelinkRingIcon.d.ts +6 -0
  1674. package/dist/ui/src/icons/components/PhonelinkSetupIcon.d.ts +6 -0
  1675. package/dist/ui/src/icons/components/PhotoAlbumIcon.d.ts +6 -0
  1676. package/dist/ui/src/icons/components/PhotoCameraBackIcon.d.ts +6 -0
  1677. package/dist/ui/src/icons/components/PhotoCameraFrontIcon.d.ts +6 -0
  1678. package/dist/ui/src/icons/components/PhotoCameraIcon.d.ts +6 -0
  1679. package/dist/ui/src/icons/components/PhotoFilterIcon.d.ts +6 -0
  1680. package/dist/ui/src/icons/components/PhotoIcon.d.ts +6 -0
  1681. package/dist/ui/src/icons/components/PhotoLibraryIcon.d.ts +6 -0
  1682. package/dist/ui/src/icons/components/PhotoSizeSelectActualIcon.d.ts +6 -0
  1683. package/dist/ui/src/icons/components/PhotoSizeSelectLargeIcon.d.ts +6 -0
  1684. package/dist/ui/src/icons/components/PhotoSizeSelectSmallIcon.d.ts +6 -0
  1685. package/dist/ui/src/icons/components/PhpIcon.d.ts +6 -0
  1686. package/dist/ui/src/icons/components/PianoIcon.d.ts +6 -0
  1687. package/dist/ui/src/icons/components/PianoOffIcon.d.ts +6 -0
  1688. package/dist/ui/src/icons/components/PictureAsPdfIcon.d.ts +6 -0
  1689. package/dist/ui/src/icons/components/PictureInPictureAltIcon.d.ts +6 -0
  1690. package/dist/ui/src/icons/components/PictureInPictureIcon.d.ts +6 -0
  1691. package/dist/ui/src/icons/components/PieChartIcon.d.ts +6 -0
  1692. package/dist/ui/src/icons/components/PieChartOutlineIcon.d.ts +6 -0
  1693. package/dist/ui/src/icons/components/PinDropIcon.d.ts +6 -0
  1694. package/dist/ui/src/icons/components/PinEndIcon.d.ts +6 -0
  1695. package/dist/ui/src/icons/components/PinIcon.d.ts +6 -0
  1696. package/dist/ui/src/icons/components/PinInvokeIcon.d.ts +6 -0
  1697. package/dist/ui/src/icons/components/PinchIcon.d.ts +6 -0
  1698. package/dist/ui/src/icons/components/PivotTableChartIcon.d.ts +6 -0
  1699. package/dist/ui/src/icons/components/PixIcon.d.ts +6 -0
  1700. package/dist/ui/src/icons/components/PlaceIcon.d.ts +6 -0
  1701. package/dist/ui/src/icons/components/PlagiarismIcon.d.ts +6 -0
  1702. package/dist/ui/src/icons/components/PlayArrowIcon.d.ts +6 -0
  1703. package/dist/ui/src/icons/components/PlayCircleFillIcon.d.ts +6 -0
  1704. package/dist/ui/src/icons/components/PlayCircleFilledIcon.d.ts +6 -0
  1705. package/dist/ui/src/icons/components/PlayCircleIcon.d.ts +6 -0
  1706. package/dist/ui/src/icons/components/PlayCircleOutlineIcon.d.ts +6 -0
  1707. package/dist/ui/src/icons/components/PlayDisabledIcon.d.ts +6 -0
  1708. package/dist/ui/src/icons/components/PlayForWorkIcon.d.ts +6 -0
  1709. package/dist/ui/src/icons/components/PlayLessonIcon.d.ts +6 -0
  1710. package/dist/ui/src/icons/components/PlaylistAddCheckCircleIcon.d.ts +6 -0
  1711. package/dist/ui/src/icons/components/PlaylistAddCheckIcon.d.ts +6 -0
  1712. package/dist/ui/src/icons/components/PlaylistAddCircleIcon.d.ts +6 -0
  1713. package/dist/ui/src/icons/components/PlaylistAddIcon.d.ts +6 -0
  1714. package/dist/ui/src/icons/components/PlaylistPlayIcon.d.ts +6 -0
  1715. package/dist/ui/src/icons/components/PlaylistRemoveIcon.d.ts +6 -0
  1716. package/dist/ui/src/icons/components/PlumbingIcon.d.ts +6 -0
  1717. package/dist/ui/src/icons/components/PlusOneIcon.d.ts +6 -0
  1718. package/dist/ui/src/icons/components/PodcastsIcon.d.ts +6 -0
  1719. package/dist/ui/src/icons/components/PointOfSaleIcon.d.ts +6 -0
  1720. package/dist/ui/src/icons/components/PolicyIcon.d.ts +6 -0
  1721. package/dist/ui/src/icons/components/PollIcon.d.ts +6 -0
  1722. package/dist/ui/src/icons/components/PolylineIcon.d.ts +6 -0
  1723. package/dist/ui/src/icons/components/PolymerIcon.d.ts +6 -0
  1724. package/dist/ui/src/icons/components/PoolIcon.d.ts +6 -0
  1725. package/dist/ui/src/icons/components/PortableWifiOffIcon.d.ts +6 -0
  1726. package/dist/ui/src/icons/components/PortraitIcon.d.ts +6 -0
  1727. package/dist/ui/src/icons/components/PostAddIcon.d.ts +6 -0
  1728. package/dist/ui/src/icons/components/PowerIcon.d.ts +6 -0
  1729. package/dist/ui/src/icons/components/PowerInputIcon.d.ts +6 -0
  1730. package/dist/ui/src/icons/components/PowerOffIcon.d.ts +6 -0
  1731. package/dist/ui/src/icons/components/PowerSettingsNewIcon.d.ts +6 -0
  1732. package/dist/ui/src/icons/components/PrecisionManufacturingIcon.d.ts +6 -0
  1733. package/dist/ui/src/icons/components/PregnantWomanIcon.d.ts +6 -0
  1734. package/dist/ui/src/icons/components/PresentToAllIcon.d.ts +6 -0
  1735. package/dist/ui/src/icons/components/PreviewIcon.d.ts +6 -0
  1736. package/dist/ui/src/icons/components/PriceChangeIcon.d.ts +6 -0
  1737. package/dist/ui/src/icons/components/PriceCheckIcon.d.ts +6 -0
  1738. package/dist/ui/src/icons/components/PrintDisabledIcon.d.ts +6 -0
  1739. package/dist/ui/src/icons/components/PrintIcon.d.ts +6 -0
  1740. package/dist/ui/src/icons/components/PriorityHighIcon.d.ts +6 -0
  1741. package/dist/ui/src/icons/components/PrivacyTipIcon.d.ts +6 -0
  1742. package/dist/ui/src/icons/components/PrivateConnectivityIcon.d.ts +6 -0
  1743. package/dist/ui/src/icons/components/ProductionQuantityLimitsIcon.d.ts +6 -0
  1744. package/dist/ui/src/icons/components/PropaneIcon.d.ts +6 -0
  1745. package/dist/ui/src/icons/components/PropaneTankIcon.d.ts +6 -0
  1746. package/dist/ui/src/icons/components/PsychologyAltIcon.d.ts +6 -0
  1747. package/dist/ui/src/icons/components/PsychologyIcon.d.ts +6 -0
  1748. package/dist/ui/src/icons/components/PublicIcon.d.ts +6 -0
  1749. package/dist/ui/src/icons/components/PublicOffIcon.d.ts +6 -0
  1750. package/dist/ui/src/icons/components/PublishIcon.d.ts +6 -0
  1751. package/dist/ui/src/icons/components/PublishedWithChangesIcon.d.ts +6 -0
  1752. package/dist/ui/src/icons/components/PunchClockIcon.d.ts +6 -0
  1753. package/dist/ui/src/icons/components/PushPinIcon.d.ts +6 -0
  1754. package/dist/ui/src/icons/components/QrCode2Icon.d.ts +6 -0
  1755. package/dist/ui/src/icons/components/QrCodeIcon.d.ts +6 -0
  1756. package/dist/ui/src/icons/components/QrCodeScannerIcon.d.ts +6 -0
  1757. package/dist/ui/src/icons/components/QueryBuilderIcon.d.ts +6 -0
  1758. package/dist/ui/src/icons/components/QueryStatsIcon.d.ts +6 -0
  1759. package/dist/ui/src/icons/components/QuestionAnswerIcon.d.ts +6 -0
  1760. package/dist/ui/src/icons/components/QuestionMarkIcon.d.ts +6 -0
  1761. package/dist/ui/src/icons/components/QueueIcon.d.ts +6 -0
  1762. package/dist/ui/src/icons/components/QueueMusicIcon.d.ts +6 -0
  1763. package/dist/ui/src/icons/components/QueuePlayNextIcon.d.ts +6 -0
  1764. package/dist/ui/src/icons/components/QuickContactsDialerIcon.d.ts +6 -0
  1765. package/dist/ui/src/icons/components/QuickContactsMailIcon.d.ts +6 -0
  1766. package/dist/ui/src/icons/components/QuickreplyIcon.d.ts +6 -0
  1767. package/dist/ui/src/icons/components/QuizIcon.d.ts +6 -0
  1768. package/dist/ui/src/icons/components/QuoraIcon.d.ts +6 -0
  1769. package/dist/ui/src/icons/components/RMobiledataIcon.d.ts +6 -0
  1770. package/dist/ui/src/icons/components/RadarIcon.d.ts +6 -0
  1771. package/dist/ui/src/icons/components/RadioButtonCheckedIcon.d.ts +6 -0
  1772. package/dist/ui/src/icons/components/RadioButtonOffIcon.d.ts +6 -0
  1773. package/dist/ui/src/icons/components/RadioButtonOnIcon.d.ts +6 -0
  1774. package/dist/ui/src/icons/components/RadioButtonUncheckedIcon.d.ts +6 -0
  1775. package/dist/ui/src/icons/components/RadioIcon.d.ts +6 -0
  1776. package/dist/ui/src/icons/components/RailwayAlertIcon.d.ts +6 -0
  1777. package/dist/ui/src/icons/components/RamenDiningIcon.d.ts +6 -0
  1778. package/dist/ui/src/icons/components/RampLeftIcon.d.ts +6 -0
  1779. package/dist/ui/src/icons/components/RampRightIcon.d.ts +6 -0
  1780. package/dist/ui/src/icons/components/RateReviewIcon.d.ts +6 -0
  1781. package/dist/ui/src/icons/components/RawOffIcon.d.ts +6 -0
  1782. package/dist/ui/src/icons/components/RawOnIcon.d.ts +6 -0
  1783. package/dist/ui/src/icons/components/ReadMoreIcon.d.ts +6 -0
  1784. package/dist/ui/src/icons/components/RealEstateAgentIcon.d.ts +6 -0
  1785. package/dist/ui/src/icons/components/ReceiptIcon.d.ts +6 -0
  1786. package/dist/ui/src/icons/components/ReceiptLongIcon.d.ts +6 -0
  1787. package/dist/ui/src/icons/components/RecentActorsIcon.d.ts +6 -0
  1788. package/dist/ui/src/icons/components/RecommendIcon.d.ts +6 -0
  1789. package/dist/ui/src/icons/components/RecordVoiceOverIcon.d.ts +6 -0
  1790. package/dist/ui/src/icons/components/RectangleIcon.d.ts +6 -0
  1791. package/dist/ui/src/icons/components/RecyclingIcon.d.ts +6 -0
  1792. package/dist/ui/src/icons/components/RedditIcon.d.ts +6 -0
  1793. package/dist/ui/src/icons/components/RedeemIcon.d.ts +6 -0
  1794. package/dist/ui/src/icons/components/RedoIcon.d.ts +6 -0
  1795. package/dist/ui/src/icons/components/ReduceCapacityIcon.d.ts +6 -0
  1796. package/dist/ui/src/icons/components/RefreshIcon.d.ts +6 -0
  1797. package/dist/ui/src/icons/components/RememberMeIcon.d.ts +6 -0
  1798. package/dist/ui/src/icons/components/RemoveCircleIcon.d.ts +6 -0
  1799. package/dist/ui/src/icons/components/RemoveCircleOutlineIcon.d.ts +6 -0
  1800. package/dist/ui/src/icons/components/RemoveDoneIcon.d.ts +6 -0
  1801. package/dist/ui/src/icons/components/RemoveFromQueueIcon.d.ts +6 -0
  1802. package/dist/ui/src/icons/components/RemoveIcon.d.ts +6 -0
  1803. package/dist/ui/src/icons/components/RemoveModeratorIcon.d.ts +6 -0
  1804. package/dist/ui/src/icons/components/RemoveRedEyeIcon.d.ts +6 -0
  1805. package/dist/ui/src/icons/components/RemoveRoadIcon.d.ts +6 -0
  1806. package/dist/ui/src/icons/components/RemoveShoppingCartIcon.d.ts +6 -0
  1807. package/dist/ui/src/icons/components/ReorderIcon.d.ts +6 -0
  1808. package/dist/ui/src/icons/components/RepartitionIcon.d.ts +6 -0
  1809. package/dist/ui/src/icons/components/RepeatIcon.d.ts +6 -0
  1810. package/dist/ui/src/icons/components/RepeatOnIcon.d.ts +6 -0
  1811. package/dist/ui/src/icons/components/RepeatOneIcon.d.ts +6 -0
  1812. package/dist/ui/src/icons/components/RepeatOneOnIcon.d.ts +6 -0
  1813. package/dist/ui/src/icons/components/Replay10Icon.d.ts +6 -0
  1814. package/dist/ui/src/icons/components/Replay30Icon.d.ts +6 -0
  1815. package/dist/ui/src/icons/components/Replay5Icon.d.ts +6 -0
  1816. package/dist/ui/src/icons/components/ReplayCircleFilledIcon.d.ts +6 -0
  1817. package/dist/ui/src/icons/components/ReplayIcon.d.ts +6 -0
  1818. package/dist/ui/src/icons/components/ReplyAllIcon.d.ts +6 -0
  1819. package/dist/ui/src/icons/components/ReplyIcon.d.ts +6 -0
  1820. package/dist/ui/src/icons/components/ReportGmailerrorredIcon.d.ts +6 -0
  1821. package/dist/ui/src/icons/components/ReportIcon.d.ts +6 -0
  1822. package/dist/ui/src/icons/components/ReportOffIcon.d.ts +6 -0
  1823. package/dist/ui/src/icons/components/ReportProblemIcon.d.ts +6 -0
  1824. package/dist/ui/src/icons/components/RequestPageIcon.d.ts +6 -0
  1825. package/dist/ui/src/icons/components/RequestQuoteIcon.d.ts +6 -0
  1826. package/dist/ui/src/icons/components/ResetTvIcon.d.ts +6 -0
  1827. package/dist/ui/src/icons/components/RestartAltIcon.d.ts +6 -0
  1828. package/dist/ui/src/icons/components/RestaurantIcon.d.ts +6 -0
  1829. package/dist/ui/src/icons/components/RestaurantMenuIcon.d.ts +6 -0
  1830. package/dist/ui/src/icons/components/RestoreFromTrashIcon.d.ts +6 -0
  1831. package/dist/ui/src/icons/components/RestoreIcon.d.ts +6 -0
  1832. package/dist/ui/src/icons/components/RestorePageIcon.d.ts +6 -0
  1833. package/dist/ui/src/icons/components/ReviewsIcon.d.ts +6 -0
  1834. package/dist/ui/src/icons/components/RiceBowlIcon.d.ts +6 -0
  1835. package/dist/ui/src/icons/components/RingVolumeIcon.d.ts +6 -0
  1836. package/dist/ui/src/icons/components/RocketIcon.d.ts +6 -0
  1837. package/dist/ui/src/icons/components/RocketLaunchIcon.d.ts +6 -0
  1838. package/dist/ui/src/icons/components/RollerShadesClosedIcon.d.ts +6 -0
  1839. package/dist/ui/src/icons/components/RollerShadesIcon.d.ts +6 -0
  1840. package/dist/ui/src/icons/components/RollerSkatingIcon.d.ts +6 -0
  1841. package/dist/ui/src/icons/components/RoofingIcon.d.ts +6 -0
  1842. package/dist/ui/src/icons/components/RoomIcon.d.ts +6 -0
  1843. package/dist/ui/src/icons/components/RoomPreferencesIcon.d.ts +6 -0
  1844. package/dist/ui/src/icons/components/RoomServiceIcon.d.ts +6 -0
  1845. package/dist/ui/src/icons/components/Rotate90DegreesCcwIcon.d.ts +6 -0
  1846. package/dist/ui/src/icons/components/Rotate90DegreesCwIcon.d.ts +6 -0
  1847. package/dist/ui/src/icons/components/RotateLeftIcon.d.ts +6 -0
  1848. package/dist/ui/src/icons/components/RotateRightIcon.d.ts +6 -0
  1849. package/dist/ui/src/icons/components/RoundaboutLeftIcon.d.ts +6 -0
  1850. package/dist/ui/src/icons/components/RoundaboutRightIcon.d.ts +6 -0
  1851. package/dist/ui/src/icons/components/RoundedCornerIcon.d.ts +6 -0
  1852. package/dist/ui/src/icons/components/RouteIcon.d.ts +6 -0
  1853. package/dist/ui/src/icons/components/RouterIcon.d.ts +6 -0
  1854. package/dist/ui/src/icons/components/RowingIcon.d.ts +6 -0
  1855. package/dist/ui/src/icons/components/RssFeedIcon.d.ts +6 -0
  1856. package/dist/ui/src/icons/components/RsvpIcon.d.ts +6 -0
  1857. package/dist/ui/src/icons/components/RttIcon.d.ts +6 -0
  1858. package/dist/ui/src/icons/components/RuleFolderIcon.d.ts +6 -0
  1859. package/dist/ui/src/icons/components/RuleIcon.d.ts +6 -0
  1860. package/dist/ui/src/icons/components/RunCircleIcon.d.ts +6 -0
  1861. package/dist/ui/src/icons/components/RunningWithErrorsIcon.d.ts +6 -0
  1862. package/dist/ui/src/icons/components/RvHookupIcon.d.ts +6 -0
  1863. package/dist/ui/src/icons/components/SafetyCheckIcon.d.ts +6 -0
  1864. package/dist/ui/src/icons/components/SafetyDividerIcon.d.ts +6 -0
  1865. package/dist/ui/src/icons/components/SailingIcon.d.ts +6 -0
  1866. package/dist/ui/src/icons/components/SanitizerIcon.d.ts +6 -0
  1867. package/dist/ui/src/icons/components/SatelliteAltIcon.d.ts +6 -0
  1868. package/dist/ui/src/icons/components/SatelliteIcon.d.ts +6 -0
  1869. package/dist/ui/src/icons/components/SaveAltIcon.d.ts +6 -0
  1870. package/dist/ui/src/icons/components/SaveAsIcon.d.ts +6 -0
  1871. package/dist/ui/src/icons/components/SaveIcon.d.ts +6 -0
  1872. package/dist/ui/src/icons/components/SavedSearchIcon.d.ts +6 -0
  1873. package/dist/ui/src/icons/components/SavingsIcon.d.ts +6 -0
  1874. package/dist/ui/src/icons/components/ScaleIcon.d.ts +6 -0
  1875. package/dist/ui/src/icons/components/ScannerIcon.d.ts +6 -0
  1876. package/dist/ui/src/icons/components/ScatterPlotIcon.d.ts +6 -0
  1877. package/dist/ui/src/icons/components/ScheduleIcon.d.ts +6 -0
  1878. package/dist/ui/src/icons/components/ScheduleSendIcon.d.ts +6 -0
  1879. package/dist/ui/src/icons/components/SchemaIcon.d.ts +6 -0
  1880. package/dist/ui/src/icons/components/SchoolIcon.d.ts +6 -0
  1881. package/dist/ui/src/icons/components/ScienceIcon.d.ts +6 -0
  1882. package/dist/ui/src/icons/components/ScoreIcon.d.ts +6 -0
  1883. package/dist/ui/src/icons/components/ScoreboardIcon.d.ts +6 -0
  1884. package/dist/ui/src/icons/components/ScreenLockLandscapeIcon.d.ts +6 -0
  1885. package/dist/ui/src/icons/components/ScreenLockPortraitIcon.d.ts +6 -0
  1886. package/dist/ui/src/icons/components/ScreenLockRotationIcon.d.ts +6 -0
  1887. package/dist/ui/src/icons/components/ScreenRotationAltIcon.d.ts +6 -0
  1888. package/dist/ui/src/icons/components/ScreenRotationIcon.d.ts +6 -0
  1889. package/dist/ui/src/icons/components/ScreenSearchDesktopIcon.d.ts +6 -0
  1890. package/dist/ui/src/icons/components/ScreenShareIcon.d.ts +6 -0
  1891. package/dist/ui/src/icons/components/ScreenshotIcon.d.ts +6 -0
  1892. package/dist/ui/src/icons/components/ScreenshotMonitorIcon.d.ts +6 -0
  1893. package/dist/ui/src/icons/components/ScubaDivingIcon.d.ts +6 -0
  1894. package/dist/ui/src/icons/components/SdCardAlertIcon.d.ts +6 -0
  1895. package/dist/ui/src/icons/components/SdCardIcon.d.ts +6 -0
  1896. package/dist/ui/src/icons/components/SdIcon.d.ts +6 -0
  1897. package/dist/ui/src/icons/components/SdStorageIcon.d.ts +6 -0
  1898. package/dist/ui/src/icons/components/SearchIcon.d.ts +6 -0
  1899. package/dist/ui/src/icons/components/SearchOffIcon.d.ts +6 -0
  1900. package/dist/ui/src/icons/components/SecurityIcon.d.ts +6 -0
  1901. package/dist/ui/src/icons/components/SecurityUpdateGoodIcon.d.ts +6 -0
  1902. package/dist/ui/src/icons/components/SecurityUpdateIcon.d.ts +6 -0
  1903. package/dist/ui/src/icons/components/SecurityUpdateWarningIcon.d.ts +6 -0
  1904. package/dist/ui/src/icons/components/SegmentIcon.d.ts +6 -0
  1905. package/dist/ui/src/icons/components/SelectAllIcon.d.ts +6 -0
  1906. package/dist/ui/src/icons/components/SelfImprovementIcon.d.ts +6 -0
  1907. package/dist/ui/src/icons/components/SellIcon.d.ts +6 -0
  1908. package/dist/ui/src/icons/components/SendAndArchiveIcon.d.ts +6 -0
  1909. package/dist/ui/src/icons/components/SendIcon.d.ts +6 -0
  1910. package/dist/ui/src/icons/components/SendTimeExtensionIcon.d.ts +6 -0
  1911. package/dist/ui/src/icons/components/SendToMobileIcon.d.ts +6 -0
  1912. package/dist/ui/src/icons/components/SensorDoorIcon.d.ts +6 -0
  1913. package/dist/ui/src/icons/components/SensorOccupiedIcon.d.ts +6 -0
  1914. package/dist/ui/src/icons/components/SensorWindowIcon.d.ts +6 -0
  1915. package/dist/ui/src/icons/components/SensorsIcon.d.ts +6 -0
  1916. package/dist/ui/src/icons/components/SensorsOffIcon.d.ts +6 -0
  1917. package/dist/ui/src/icons/components/SentimentDissatisfiedIcon.d.ts +6 -0
  1918. package/dist/ui/src/icons/components/SentimentNeutralIcon.d.ts +6 -0
  1919. package/dist/ui/src/icons/components/SentimentSatisfiedAltIcon.d.ts +6 -0
  1920. package/dist/ui/src/icons/components/SentimentSatisfiedIcon.d.ts +6 -0
  1921. package/dist/ui/src/icons/components/SentimentVeryDissatisfiedIcon.d.ts +6 -0
  1922. package/dist/ui/src/icons/components/SentimentVerySatisfiedIcon.d.ts +6 -0
  1923. package/dist/ui/src/icons/components/SetMealIcon.d.ts +6 -0
  1924. package/dist/ui/src/icons/components/SettingsAccessibilityIcon.d.ts +6 -0
  1925. package/dist/ui/src/icons/components/SettingsApplicationsIcon.d.ts +6 -0
  1926. package/dist/ui/src/icons/components/SettingsBackupRestoreIcon.d.ts +6 -0
  1927. package/dist/ui/src/icons/components/SettingsBluetoothIcon.d.ts +6 -0
  1928. package/dist/ui/src/icons/components/SettingsBrightnessIcon.d.ts +6 -0
  1929. package/dist/ui/src/icons/components/SettingsCellIcon.d.ts +6 -0
  1930. package/dist/ui/src/icons/components/SettingsDisplayIcon.d.ts +6 -0
  1931. package/dist/ui/src/icons/components/SettingsEthernetIcon.d.ts +6 -0
  1932. package/dist/ui/src/icons/components/SettingsIcon.d.ts +6 -0
  1933. package/dist/ui/src/icons/components/SettingsInputAntennaIcon.d.ts +6 -0
  1934. package/dist/ui/src/icons/components/SettingsInputComponentIcon.d.ts +6 -0
  1935. package/dist/ui/src/icons/components/SettingsInputCompositeIcon.d.ts +6 -0
  1936. package/dist/ui/src/icons/components/SettingsInputHdmiIcon.d.ts +6 -0
  1937. package/dist/ui/src/icons/components/SettingsInputSvideoIcon.d.ts +6 -0
  1938. package/dist/ui/src/icons/components/SettingsOverscanIcon.d.ts +6 -0
  1939. package/dist/ui/src/icons/components/SettingsPhoneIcon.d.ts +6 -0
  1940. package/dist/ui/src/icons/components/SettingsPowerIcon.d.ts +6 -0
  1941. package/dist/ui/src/icons/components/SettingsRemoteIcon.d.ts +6 -0
  1942. package/dist/ui/src/icons/components/SettingsSuggestIcon.d.ts +6 -0
  1943. package/dist/ui/src/icons/components/SettingsSystemDaydreamIcon.d.ts +6 -0
  1944. package/dist/ui/src/icons/components/SettingsVoiceIcon.d.ts +6 -0
  1945. package/dist/ui/src/icons/components/SevereColdIcon.d.ts +6 -0
  1946. package/dist/ui/src/icons/components/ShapeLineIcon.d.ts +6 -0
  1947. package/dist/ui/src/icons/components/ShareArrivalTimeIcon.d.ts +6 -0
  1948. package/dist/ui/src/icons/components/ShareIcon.d.ts +6 -0
  1949. package/dist/ui/src/icons/components/ShareLocationIcon.d.ts +6 -0
  1950. package/dist/ui/src/icons/components/ShieldIcon.d.ts +6 -0
  1951. package/dist/ui/src/icons/components/ShieldMoonIcon.d.ts +6 -0
  1952. package/dist/ui/src/icons/components/Shop2Icon.d.ts +6 -0
  1953. package/dist/ui/src/icons/components/ShopIcon.d.ts +6 -0
  1954. package/dist/ui/src/icons/components/ShopTwoIcon.d.ts +6 -0
  1955. package/dist/ui/src/icons/components/ShopifyIcon.d.ts +6 -0
  1956. package/dist/ui/src/icons/components/ShoppingBagIcon.d.ts +6 -0
  1957. package/dist/ui/src/icons/components/ShoppingBasketIcon.d.ts +6 -0
  1958. package/dist/ui/src/icons/components/ShoppingCartCheckoutIcon.d.ts +6 -0
  1959. package/dist/ui/src/icons/components/ShoppingCartIcon.d.ts +6 -0
  1960. package/dist/ui/src/icons/components/ShortTextIcon.d.ts +6 -0
  1961. package/dist/ui/src/icons/components/ShortcutIcon.d.ts +6 -0
  1962. package/dist/ui/src/icons/components/ShowChartIcon.d.ts +6 -0
  1963. package/dist/ui/src/icons/components/ShowerIcon.d.ts +6 -0
  1964. package/dist/ui/src/icons/components/ShuffleIcon.d.ts +6 -0
  1965. package/dist/ui/src/icons/components/ShuffleOnIcon.d.ts +6 -0
  1966. package/dist/ui/src/icons/components/ShutterSpeedIcon.d.ts +6 -0
  1967. package/dist/ui/src/icons/components/SickIcon.d.ts +6 -0
  1968. package/dist/ui/src/icons/components/SignLanguageIcon.d.ts +6 -0
  1969. package/dist/ui/src/icons/components/SignalCellular0BarIcon.d.ts +6 -0
  1970. package/dist/ui/src/icons/components/SignalCellular4BarIcon.d.ts +6 -0
  1971. package/dist/ui/src/icons/components/SignalCellularAlt1BarIcon.d.ts +6 -0
  1972. package/dist/ui/src/icons/components/SignalCellularAlt2BarIcon.d.ts +6 -0
  1973. package/dist/ui/src/icons/components/SignalCellularAltIcon.d.ts +6 -0
  1974. package/dist/ui/src/icons/components/SignalCellularConnectedNoInternet0BarIcon.d.ts +6 -0
  1975. package/dist/ui/src/icons/components/SignalCellularConnectedNoInternet4BarIcon.d.ts +6 -0
  1976. package/dist/ui/src/icons/components/SignalCellularNoSimIcon.d.ts +6 -0
  1977. package/dist/ui/src/icons/components/SignalCellularNodataIcon.d.ts +6 -0
  1978. package/dist/ui/src/icons/components/SignalCellularNullIcon.d.ts +6 -0
  1979. package/dist/ui/src/icons/components/SignalCellularOffIcon.d.ts +6 -0
  1980. package/dist/ui/src/icons/components/SignalWifi0BarIcon.d.ts +6 -0
  1981. package/dist/ui/src/icons/components/SignalWifi4BarIcon.d.ts +6 -0
  1982. package/dist/ui/src/icons/components/SignalWifi4BarLockIcon.d.ts +6 -0
  1983. package/dist/ui/src/icons/components/SignalWifiBadIcon.d.ts +6 -0
  1984. package/dist/ui/src/icons/components/SignalWifiConnectedNoInternet4Icon.d.ts +6 -0
  1985. package/dist/ui/src/icons/components/SignalWifiOffIcon.d.ts +6 -0
  1986. package/dist/ui/src/icons/components/SignalWifiStatusbar4BarIcon.d.ts +6 -0
  1987. package/dist/ui/src/icons/components/SignalWifiStatusbarConnectedNoInternet4Icon.d.ts +6 -0
  1988. package/dist/ui/src/icons/components/SignalWifiStatusbarNullIcon.d.ts +6 -0
  1989. package/dist/ui/src/icons/components/SignpostIcon.d.ts +6 -0
  1990. package/dist/ui/src/icons/components/SimCardAlertIcon.d.ts +6 -0
  1991. package/dist/ui/src/icons/components/SimCardDownloadIcon.d.ts +6 -0
  1992. package/dist/ui/src/icons/components/SimCardIcon.d.ts +6 -0
  1993. package/dist/ui/src/icons/components/SingleBedIcon.d.ts +6 -0
  1994. package/dist/ui/src/icons/components/SipIcon.d.ts +6 -0
  1995. package/dist/ui/src/icons/components/SkateboardingIcon.d.ts +6 -0
  1996. package/dist/ui/src/icons/components/SkipNextIcon.d.ts +6 -0
  1997. package/dist/ui/src/icons/components/SkipPreviousIcon.d.ts +6 -0
  1998. package/dist/ui/src/icons/components/SleddingIcon.d.ts +6 -0
  1999. package/dist/ui/src/icons/components/SlideshowIcon.d.ts +6 -0
  2000. package/dist/ui/src/icons/components/SlowMotionVideoIcon.d.ts +6 -0
  2001. package/dist/ui/src/icons/components/SmartButtonIcon.d.ts +6 -0
  2002. package/dist/ui/src/icons/components/SmartDisplayIcon.d.ts +6 -0
  2003. package/dist/ui/src/icons/components/SmartScreenIcon.d.ts +6 -0
  2004. package/dist/ui/src/icons/components/SmartToyIcon.d.ts +6 -0
  2005. package/dist/ui/src/icons/components/SmartphoneIcon.d.ts +6 -0
  2006. package/dist/ui/src/icons/components/SmokeFreeIcon.d.ts +6 -0
  2007. package/dist/ui/src/icons/components/SmokingRoomsIcon.d.ts +6 -0
  2008. package/dist/ui/src/icons/components/SmsFailedIcon.d.ts +6 -0
  2009. package/dist/ui/src/icons/components/SmsIcon.d.ts +6 -0
  2010. package/dist/ui/src/icons/components/SnapchatIcon.d.ts +6 -0
  2011. package/dist/ui/src/icons/components/SnippetFolderIcon.d.ts +6 -0
  2012. package/dist/ui/src/icons/components/SnoozeIcon.d.ts +6 -0
  2013. package/dist/ui/src/icons/components/SnowboardingIcon.d.ts +6 -0
  2014. package/dist/ui/src/icons/components/SnowmobileIcon.d.ts +6 -0
  2015. package/dist/ui/src/icons/components/SnowshoeingIcon.d.ts +6 -0
  2016. package/dist/ui/src/icons/components/SoapIcon.d.ts +6 -0
  2017. package/dist/ui/src/icons/components/SocialDistanceIcon.d.ts +6 -0
  2018. package/dist/ui/src/icons/components/SolarPowerIcon.d.ts +6 -0
  2019. package/dist/ui/src/icons/components/SortByAlphaIcon.d.ts +6 -0
  2020. package/dist/ui/src/icons/components/SortIcon.d.ts +6 -0
  2021. package/dist/ui/src/icons/components/SosIcon.d.ts +6 -0
  2022. package/dist/ui/src/icons/components/SoupKitchenIcon.d.ts +6 -0
  2023. package/dist/ui/src/icons/components/SourceIcon.d.ts +6 -0
  2024. package/dist/ui/src/icons/components/SouthAmericaIcon.d.ts +6 -0
  2025. package/dist/ui/src/icons/components/SouthEastIcon.d.ts +6 -0
  2026. package/dist/ui/src/icons/components/SouthIcon.d.ts +6 -0
  2027. package/dist/ui/src/icons/components/SouthWestIcon.d.ts +6 -0
  2028. package/dist/ui/src/icons/components/SpaIcon.d.ts +6 -0
  2029. package/dist/ui/src/icons/components/SpaceBarIcon.d.ts +6 -0
  2030. package/dist/ui/src/icons/components/SpaceDashboardIcon.d.ts +6 -0
  2031. package/dist/ui/src/icons/components/SpatialAudioIcon.d.ts +6 -0
  2032. package/dist/ui/src/icons/components/SpatialAudioOffIcon.d.ts +6 -0
  2033. package/dist/ui/src/icons/components/SpatialTrackingIcon.d.ts +6 -0
  2034. package/dist/ui/src/icons/components/SpeakerGroupIcon.d.ts +6 -0
  2035. package/dist/ui/src/icons/components/SpeakerIcon.d.ts +6 -0
  2036. package/dist/ui/src/icons/components/SpeakerNotesIcon.d.ts +6 -0
  2037. package/dist/ui/src/icons/components/SpeakerNotesOffIcon.d.ts +6 -0
  2038. package/dist/ui/src/icons/components/SpeakerPhoneIcon.d.ts +6 -0
  2039. package/dist/ui/src/icons/components/SpeedIcon.d.ts +6 -0
  2040. package/dist/ui/src/icons/components/SpellcheckIcon.d.ts +6 -0
  2041. package/dist/ui/src/icons/components/SplitscreenIcon.d.ts +6 -0
  2042. package/dist/ui/src/icons/components/SpokeIcon.d.ts +6 -0
  2043. package/dist/ui/src/icons/components/SportsBarIcon.d.ts +6 -0
  2044. package/dist/ui/src/icons/components/SportsBaseballIcon.d.ts +6 -0
  2045. package/dist/ui/src/icons/components/SportsBasketballIcon.d.ts +6 -0
  2046. package/dist/ui/src/icons/components/SportsCricketIcon.d.ts +6 -0
  2047. package/dist/ui/src/icons/components/SportsEsportsIcon.d.ts +6 -0
  2048. package/dist/ui/src/icons/components/SportsFootballIcon.d.ts +6 -0
  2049. package/dist/ui/src/icons/components/SportsGolfIcon.d.ts +6 -0
  2050. package/dist/ui/src/icons/components/SportsGymnasticsIcon.d.ts +6 -0
  2051. package/dist/ui/src/icons/components/SportsHandballIcon.d.ts +6 -0
  2052. package/dist/ui/src/icons/components/SportsHockeyIcon.d.ts +6 -0
  2053. package/dist/ui/src/icons/components/SportsIcon.d.ts +6 -0
  2054. package/dist/ui/src/icons/components/SportsKabaddiIcon.d.ts +6 -0
  2055. package/dist/ui/src/icons/components/SportsMartialArtsIcon.d.ts +6 -0
  2056. package/dist/ui/src/icons/components/SportsMmaIcon.d.ts +6 -0
  2057. package/dist/ui/src/icons/components/SportsMotorsportsIcon.d.ts +6 -0
  2058. package/dist/ui/src/icons/components/SportsRugbyIcon.d.ts +6 -0
  2059. package/dist/ui/src/icons/components/SportsScoreIcon.d.ts +6 -0
  2060. package/dist/ui/src/icons/components/SportsSoccerIcon.d.ts +6 -0
  2061. package/dist/ui/src/icons/components/SportsTennisIcon.d.ts +6 -0
  2062. package/dist/ui/src/icons/components/SportsVolleyballIcon.d.ts +6 -0
  2063. package/dist/ui/src/icons/components/SquareFootIcon.d.ts +6 -0
  2064. package/dist/ui/src/icons/components/SquareIcon.d.ts +6 -0
  2065. package/dist/ui/src/icons/components/SsidChartIcon.d.ts +6 -0
  2066. package/dist/ui/src/icons/components/StackedBarChartIcon.d.ts +6 -0
  2067. package/dist/ui/src/icons/components/StackedLineChartIcon.d.ts +6 -0
  2068. package/dist/ui/src/icons/components/StadiumIcon.d.ts +6 -0
  2069. package/dist/ui/src/icons/components/StairsIcon.d.ts +6 -0
  2070. package/dist/ui/src/icons/components/StarBorderIcon.d.ts +6 -0
  2071. package/dist/ui/src/icons/components/StarBorderPurple500Icon.d.ts +6 -0
  2072. package/dist/ui/src/icons/components/StarHalfIcon.d.ts +6 -0
  2073. package/dist/ui/src/icons/components/StarIcon.d.ts +6 -0
  2074. package/dist/ui/src/icons/components/StarOutlineIcon.d.ts +6 -0
  2075. package/dist/ui/src/icons/components/StarPurple500Icon.d.ts +6 -0
  2076. package/dist/ui/src/icons/components/StarRateIcon.d.ts +6 -0
  2077. package/dist/ui/src/icons/components/StarsIcon.d.ts +6 -0
  2078. package/dist/ui/src/icons/components/StartIcon.d.ts +6 -0
  2079. package/dist/ui/src/icons/components/StayCurrentLandscapeIcon.d.ts +6 -0
  2080. package/dist/ui/src/icons/components/StayCurrentPortraitIcon.d.ts +6 -0
  2081. package/dist/ui/src/icons/components/StayPrimaryLandscapeIcon.d.ts +6 -0
  2082. package/dist/ui/src/icons/components/StayPrimaryPortraitIcon.d.ts +6 -0
  2083. package/dist/ui/src/icons/components/StickyNote2Icon.d.ts +6 -0
  2084. package/dist/ui/src/icons/components/StopCircleIcon.d.ts +6 -0
  2085. package/dist/ui/src/icons/components/StopIcon.d.ts +6 -0
  2086. package/dist/ui/src/icons/components/StopScreenShareIcon.d.ts +6 -0
  2087. package/dist/ui/src/icons/components/StorageIcon.d.ts +6 -0
  2088. package/dist/ui/src/icons/components/StoreIcon.d.ts +6 -0
  2089. package/dist/ui/src/icons/components/StoreMallDirectoryIcon.d.ts +6 -0
  2090. package/dist/ui/src/icons/components/StorefrontIcon.d.ts +6 -0
  2091. package/dist/ui/src/icons/components/StormIcon.d.ts +6 -0
  2092. package/dist/ui/src/icons/components/StraightIcon.d.ts +6 -0
  2093. package/dist/ui/src/icons/components/StraightenIcon.d.ts +6 -0
  2094. package/dist/ui/src/icons/components/StreamIcon.d.ts +6 -0
  2095. package/dist/ui/src/icons/components/StreetviewIcon.d.ts +6 -0
  2096. package/dist/ui/src/icons/components/StrikethroughSIcon.d.ts +6 -0
  2097. package/dist/ui/src/icons/components/StrollerIcon.d.ts +6 -0
  2098. package/dist/ui/src/icons/components/StyleIcon.d.ts +6 -0
  2099. package/dist/ui/src/icons/components/SubdirectoryArrowLeftIcon.d.ts +6 -0
  2100. package/dist/ui/src/icons/components/SubdirectoryArrowRightIcon.d.ts +6 -0
  2101. package/dist/ui/src/icons/components/SubjectIcon.d.ts +6 -0
  2102. package/dist/ui/src/icons/components/SubscriptIcon.d.ts +6 -0
  2103. package/dist/ui/src/icons/components/SubscriptionsIcon.d.ts +6 -0
  2104. package/dist/ui/src/icons/components/SubtitlesIcon.d.ts +6 -0
  2105. package/dist/ui/src/icons/components/SubtitlesOffIcon.d.ts +6 -0
  2106. package/dist/ui/src/icons/components/SubwayIcon.d.ts +6 -0
  2107. package/dist/ui/src/icons/components/SummarizeIcon.d.ts +6 -0
  2108. package/dist/ui/src/icons/components/SuperscriptIcon.d.ts +6 -0
  2109. package/dist/ui/src/icons/components/SupervisedUserCircleIcon.d.ts +6 -0
  2110. package/dist/ui/src/icons/components/SupervisorAccountIcon.d.ts +6 -0
  2111. package/dist/ui/src/icons/components/SupportAgentIcon.d.ts +6 -0
  2112. package/dist/ui/src/icons/components/SupportIcon.d.ts +6 -0
  2113. package/dist/ui/src/icons/components/SurfingIcon.d.ts +6 -0
  2114. package/dist/ui/src/icons/components/SurroundSoundIcon.d.ts +6 -0
  2115. package/dist/ui/src/icons/components/SwapCallsIcon.d.ts +6 -0
  2116. package/dist/ui/src/icons/components/SwapHorizIcon.d.ts +6 -0
  2117. package/dist/ui/src/icons/components/SwapHorizontalCircleIcon.d.ts +6 -0
  2118. package/dist/ui/src/icons/components/SwapVertCircleIcon.d.ts +6 -0
  2119. package/dist/ui/src/icons/components/SwapVertIcon.d.ts +6 -0
  2120. package/dist/ui/src/icons/components/SwapVerticalCircleIcon.d.ts +6 -0
  2121. package/dist/ui/src/icons/components/SwipeDownAltIcon.d.ts +6 -0
  2122. package/dist/ui/src/icons/components/SwipeDownIcon.d.ts +6 -0
  2123. package/dist/ui/src/icons/components/SwipeIcon.d.ts +6 -0
  2124. package/dist/ui/src/icons/components/SwipeLeftAltIcon.d.ts +6 -0
  2125. package/dist/ui/src/icons/components/SwipeLeftIcon.d.ts +6 -0
  2126. package/dist/ui/src/icons/components/SwipeRightAltIcon.d.ts +6 -0
  2127. package/dist/ui/src/icons/components/SwipeRightIcon.d.ts +6 -0
  2128. package/dist/ui/src/icons/components/SwipeUpAltIcon.d.ts +6 -0
  2129. package/dist/ui/src/icons/components/SwipeUpIcon.d.ts +6 -0
  2130. package/dist/ui/src/icons/components/SwipeVerticalIcon.d.ts +6 -0
  2131. package/dist/ui/src/icons/components/SwitchAccessShortcutAddIcon.d.ts +6 -0
  2132. package/dist/ui/src/icons/components/SwitchAccessShortcutIcon.d.ts +6 -0
  2133. package/dist/ui/src/icons/components/SwitchAccountIcon.d.ts +6 -0
  2134. package/dist/ui/src/icons/components/SwitchCameraIcon.d.ts +6 -0
  2135. package/dist/ui/src/icons/components/SwitchLeftIcon.d.ts +6 -0
  2136. package/dist/ui/src/icons/components/SwitchRightIcon.d.ts +6 -0
  2137. package/dist/ui/src/icons/components/SwitchVideoIcon.d.ts +6 -0
  2138. package/dist/ui/src/icons/components/SynagogueIcon.d.ts +6 -0
  2139. package/dist/ui/src/icons/components/SyncAltIcon.d.ts +6 -0
  2140. package/dist/ui/src/icons/components/SyncDisabledIcon.d.ts +6 -0
  2141. package/dist/ui/src/icons/components/SyncIcon.d.ts +6 -0
  2142. package/dist/ui/src/icons/components/SyncLockIcon.d.ts +6 -0
  2143. package/dist/ui/src/icons/components/SyncProblemIcon.d.ts +6 -0
  2144. package/dist/ui/src/icons/components/SystemSecurityUpdateGoodIcon.d.ts +6 -0
  2145. package/dist/ui/src/icons/components/SystemSecurityUpdateIcon.d.ts +6 -0
  2146. package/dist/ui/src/icons/components/SystemSecurityUpdateWarningIcon.d.ts +6 -0
  2147. package/dist/ui/src/icons/components/SystemUpdateAltIcon.d.ts +6 -0
  2148. package/dist/ui/src/icons/components/SystemUpdateIcon.d.ts +6 -0
  2149. package/dist/ui/src/icons/components/SystemUpdateTvIcon.d.ts +6 -0
  2150. package/dist/ui/src/icons/components/TabIcon.d.ts +6 -0
  2151. package/dist/ui/src/icons/components/TabUnselectedIcon.d.ts +6 -0
  2152. package/dist/ui/src/icons/components/TableBarIcon.d.ts +6 -0
  2153. package/dist/ui/src/icons/components/TableChartIcon.d.ts +6 -0
  2154. package/dist/ui/src/icons/components/TableRestaurantIcon.d.ts +6 -0
  2155. package/dist/ui/src/icons/components/TableRowsIcon.d.ts +6 -0
  2156. package/dist/ui/src/icons/components/TableViewIcon.d.ts +6 -0
  2157. package/dist/ui/src/icons/components/TabletAndroidIcon.d.ts +6 -0
  2158. package/dist/ui/src/icons/components/TabletIcon.d.ts +6 -0
  2159. package/dist/ui/src/icons/components/TabletMacIcon.d.ts +6 -0
  2160. package/dist/ui/src/icons/components/TagFacesIcon.d.ts +6 -0
  2161. package/dist/ui/src/icons/components/TagIcon.d.ts +6 -0
  2162. package/dist/ui/src/icons/components/TakeoutDiningIcon.d.ts +6 -0
  2163. package/dist/ui/src/icons/components/TapAndPlayIcon.d.ts +6 -0
  2164. package/dist/ui/src/icons/components/TapasIcon.d.ts +6 -0
  2165. package/dist/ui/src/icons/components/TaskAltIcon.d.ts +6 -0
  2166. package/dist/ui/src/icons/components/TaskIcon.d.ts +6 -0
  2167. package/dist/ui/src/icons/components/TaxiAlertIcon.d.ts +6 -0
  2168. package/dist/ui/src/icons/components/TelegramIcon.d.ts +6 -0
  2169. package/dist/ui/src/icons/components/TempleBuddhistIcon.d.ts +6 -0
  2170. package/dist/ui/src/icons/components/TempleHinduIcon.d.ts +6 -0
  2171. package/dist/ui/src/icons/components/TerminalIcon.d.ts +6 -0
  2172. package/dist/ui/src/icons/components/TerrainIcon.d.ts +6 -0
  2173. package/dist/ui/src/icons/components/TextDecreaseIcon.d.ts +6 -0
  2174. package/dist/ui/src/icons/components/TextFieldsIcon.d.ts +6 -0
  2175. package/dist/ui/src/icons/components/TextFormatIcon.d.ts +6 -0
  2176. package/dist/ui/src/icons/components/TextIncreaseIcon.d.ts +6 -0
  2177. package/dist/ui/src/icons/components/TextRotateUpIcon.d.ts +6 -0
  2178. package/dist/ui/src/icons/components/TextRotateVerticalIcon.d.ts +6 -0
  2179. package/dist/ui/src/icons/components/TextRotationAngledownIcon.d.ts +6 -0
  2180. package/dist/ui/src/icons/components/TextRotationAngleupIcon.d.ts +6 -0
  2181. package/dist/ui/src/icons/components/TextRotationDownIcon.d.ts +6 -0
  2182. package/dist/ui/src/icons/components/TextRotationNoneIcon.d.ts +6 -0
  2183. package/dist/ui/src/icons/components/TextSnippetIcon.d.ts +6 -0
  2184. package/dist/ui/src/icons/components/TextsmsIcon.d.ts +6 -0
  2185. package/dist/ui/src/icons/components/TextureIcon.d.ts +6 -0
  2186. package/dist/ui/src/icons/components/TheaterComedyIcon.d.ts +6 -0
  2187. package/dist/ui/src/icons/components/TheatersIcon.d.ts +6 -0
  2188. package/dist/ui/src/icons/components/ThermostatAutoIcon.d.ts +6 -0
  2189. package/dist/ui/src/icons/components/ThermostatIcon.d.ts +6 -0
  2190. package/dist/ui/src/icons/components/ThumbDownAltIcon.d.ts +6 -0
  2191. package/dist/ui/src/icons/components/ThumbDownIcon.d.ts +6 -0
  2192. package/dist/ui/src/icons/components/ThumbDownOffAltIcon.d.ts +6 -0
  2193. package/dist/ui/src/icons/components/ThumbUpAltIcon.d.ts +6 -0
  2194. package/dist/ui/src/icons/components/ThumbUpIcon.d.ts +6 -0
  2195. package/dist/ui/src/icons/components/ThumbUpOffAltIcon.d.ts +6 -0
  2196. package/dist/ui/src/icons/components/ThumbsUpDownIcon.d.ts +6 -0
  2197. package/dist/ui/src/icons/components/ThunderstormIcon.d.ts +6 -0
  2198. package/dist/ui/src/icons/components/TiktokIcon.d.ts +6 -0
  2199. package/dist/ui/src/icons/components/TimeToLeaveIcon.d.ts +6 -0
  2200. package/dist/ui/src/icons/components/TimelapseIcon.d.ts +6 -0
  2201. package/dist/ui/src/icons/components/TimelineIcon.d.ts +6 -0
  2202. package/dist/ui/src/icons/components/Timer10Icon.d.ts +6 -0
  2203. package/dist/ui/src/icons/components/Timer10SelectIcon.d.ts +6 -0
  2204. package/dist/ui/src/icons/components/Timer3Icon.d.ts +6 -0
  2205. package/dist/ui/src/icons/components/Timer3SelectIcon.d.ts +6 -0
  2206. package/dist/ui/src/icons/components/TimerIcon.d.ts +6 -0
  2207. package/dist/ui/src/icons/components/TimerOffIcon.d.ts +6 -0
  2208. package/dist/ui/src/icons/components/TipsAndUpdatesIcon.d.ts +6 -0
  2209. package/dist/ui/src/icons/components/TireRepairIcon.d.ts +6 -0
  2210. package/dist/ui/src/icons/components/TitleIcon.d.ts +6 -0
  2211. package/dist/ui/src/icons/components/TocIcon.d.ts +6 -0
  2212. package/dist/ui/src/icons/components/TodayIcon.d.ts +6 -0
  2213. package/dist/ui/src/icons/components/ToggleOffIcon.d.ts +6 -0
  2214. package/dist/ui/src/icons/components/ToggleOnIcon.d.ts +6 -0
  2215. package/dist/ui/src/icons/components/TokenIcon.d.ts +6 -0
  2216. package/dist/ui/src/icons/components/TollIcon.d.ts +6 -0
  2217. package/dist/ui/src/icons/components/TonalityIcon.d.ts +6 -0
  2218. package/dist/ui/src/icons/components/TopicIcon.d.ts +6 -0
  2219. package/dist/ui/src/icons/components/TornadoIcon.d.ts +6 -0
  2220. package/dist/ui/src/icons/components/TouchAppIcon.d.ts +6 -0
  2221. package/dist/ui/src/icons/components/TourIcon.d.ts +6 -0
  2222. package/dist/ui/src/icons/components/ToysIcon.d.ts +6 -0
  2223. package/dist/ui/src/icons/components/TrackChangesIcon.d.ts +6 -0
  2224. package/dist/ui/src/icons/components/TrafficIcon.d.ts +6 -0
  2225. package/dist/ui/src/icons/components/TrainIcon.d.ts +6 -0
  2226. package/dist/ui/src/icons/components/TramIcon.d.ts +6 -0
  2227. package/dist/ui/src/icons/components/TranscribeIcon.d.ts +6 -0
  2228. package/dist/ui/src/icons/components/TransferWithinAStationIcon.d.ts +6 -0
  2229. package/dist/ui/src/icons/components/TransformIcon.d.ts +6 -0
  2230. package/dist/ui/src/icons/components/TransgenderIcon.d.ts +6 -0
  2231. package/dist/ui/src/icons/components/TransitEnterexitIcon.d.ts +6 -0
  2232. package/dist/ui/src/icons/components/TranslateIcon.d.ts +6 -0
  2233. package/dist/ui/src/icons/components/TravelExploreIcon.d.ts +6 -0
  2234. package/dist/ui/src/icons/components/TrendingDownIcon.d.ts +6 -0
  2235. package/dist/ui/src/icons/components/TrendingFlatIcon.d.ts +6 -0
  2236. package/dist/ui/src/icons/components/TrendingNeutralIcon.d.ts +6 -0
  2237. package/dist/ui/src/icons/components/TrendingUpIcon.d.ts +6 -0
  2238. package/dist/ui/src/icons/components/TripOriginIcon.d.ts +6 -0
  2239. package/dist/ui/src/icons/components/TroubleshootIcon.d.ts +6 -0
  2240. package/dist/ui/src/icons/components/TryIcon.d.ts +6 -0
  2241. package/dist/ui/src/icons/components/TsunamiIcon.d.ts +6 -0
  2242. package/dist/ui/src/icons/components/TtyIcon.d.ts +6 -0
  2243. package/dist/ui/src/icons/components/TuneIcon.d.ts +6 -0
  2244. package/dist/ui/src/icons/components/TungstenIcon.d.ts +6 -0
  2245. package/dist/ui/src/icons/components/TurnLeftIcon.d.ts +6 -0
  2246. package/dist/ui/src/icons/components/TurnRightIcon.d.ts +6 -0
  2247. package/dist/ui/src/icons/components/TurnSharpLeftIcon.d.ts +6 -0
  2248. package/dist/ui/src/icons/components/TurnSharpRightIcon.d.ts +6 -0
  2249. package/dist/ui/src/icons/components/TurnSlightLeftIcon.d.ts +6 -0
  2250. package/dist/ui/src/icons/components/TurnSlightRightIcon.d.ts +6 -0
  2251. package/dist/ui/src/icons/components/TurnedInIcon.d.ts +6 -0
  2252. package/dist/ui/src/icons/components/TurnedInNotIcon.d.ts +6 -0
  2253. package/dist/ui/src/icons/components/TvIcon.d.ts +6 -0
  2254. package/dist/ui/src/icons/components/TvOffIcon.d.ts +6 -0
  2255. package/dist/ui/src/icons/components/TwoWheelerIcon.d.ts +6 -0
  2256. package/dist/ui/src/icons/components/TypeSpecimenIcon.d.ts +6 -0
  2257. package/dist/ui/src/icons/components/UTurnLeftIcon.d.ts +6 -0
  2258. package/dist/ui/src/icons/components/UTurnRightIcon.d.ts +6 -0
  2259. package/dist/ui/src/icons/components/UmbrellaIcon.d.ts +6 -0
  2260. package/dist/ui/src/icons/components/UnarchiveIcon.d.ts +6 -0
  2261. package/dist/ui/src/icons/components/UndoIcon.d.ts +6 -0
  2262. package/dist/ui/src/icons/components/UnfoldLessDoubleIcon.d.ts +6 -0
  2263. package/dist/ui/src/icons/components/UnfoldLessIcon.d.ts +6 -0
  2264. package/dist/ui/src/icons/components/UnfoldMoreDoubleIcon.d.ts +6 -0
  2265. package/dist/ui/src/icons/components/UnfoldMoreIcon.d.ts +6 -0
  2266. package/dist/ui/src/icons/components/UnpublishedIcon.d.ts +6 -0
  2267. package/dist/ui/src/icons/components/UnsubscribeIcon.d.ts +6 -0
  2268. package/dist/ui/src/icons/components/UpcomingIcon.d.ts +6 -0
  2269. package/dist/ui/src/icons/components/UpdateDisabledIcon.d.ts +6 -0
  2270. package/dist/ui/src/icons/components/UpdateIcon.d.ts +6 -0
  2271. package/dist/ui/src/icons/components/UpgradeIcon.d.ts +6 -0
  2272. package/dist/ui/src/icons/components/UploadFileIcon.d.ts +6 -0
  2273. package/dist/ui/src/icons/components/UploadIcon.d.ts +6 -0
  2274. package/dist/ui/src/icons/components/UsbIcon.d.ts +6 -0
  2275. package/dist/ui/src/icons/components/UsbOffIcon.d.ts +6 -0
  2276. package/dist/ui/src/icons/components/VaccinesIcon.d.ts +6 -0
  2277. package/dist/ui/src/icons/components/VapeFreeIcon.d.ts +6 -0
  2278. package/dist/ui/src/icons/components/VapingRoomsIcon.d.ts +6 -0
  2279. package/dist/ui/src/icons/components/VerifiedIcon.d.ts +6 -0
  2280. package/dist/ui/src/icons/components/VerifiedUserIcon.d.ts +6 -0
  2281. package/dist/ui/src/icons/components/VerticalAlignBottomIcon.d.ts +6 -0
  2282. package/dist/ui/src/icons/components/VerticalAlignCenterIcon.d.ts +6 -0
  2283. package/dist/ui/src/icons/components/VerticalAlignTopIcon.d.ts +6 -0
  2284. package/dist/ui/src/icons/components/VerticalDistributeIcon.d.ts +6 -0
  2285. package/dist/ui/src/icons/components/VerticalShadesClosedIcon.d.ts +6 -0
  2286. package/dist/ui/src/icons/components/VerticalShadesIcon.d.ts +6 -0
  2287. package/dist/ui/src/icons/components/VerticalSplitIcon.d.ts +6 -0
  2288. package/dist/ui/src/icons/components/VibrationIcon.d.ts +6 -0
  2289. package/dist/ui/src/icons/components/VideoCallIcon.d.ts +6 -0
  2290. package/dist/ui/src/icons/components/VideoCameraBackIcon.d.ts +6 -0
  2291. package/dist/ui/src/icons/components/VideoCameraFrontIcon.d.ts +6 -0
  2292. package/dist/ui/src/icons/components/VideoChatIcon.d.ts +6 -0
  2293. package/dist/ui/src/icons/components/VideoCollectionIcon.d.ts +6 -0
  2294. package/dist/ui/src/icons/components/VideoFileIcon.d.ts +6 -0
  2295. package/dist/ui/src/icons/components/VideoLabelIcon.d.ts +6 -0
  2296. package/dist/ui/src/icons/components/VideoLibraryIcon.d.ts +6 -0
  2297. package/dist/ui/src/icons/components/VideoSettingsIcon.d.ts +6 -0
  2298. package/dist/ui/src/icons/components/VideoStableIcon.d.ts +6 -0
  2299. package/dist/ui/src/icons/components/VideocamIcon.d.ts +6 -0
  2300. package/dist/ui/src/icons/components/VideocamOffIcon.d.ts +6 -0
  2301. package/dist/ui/src/icons/components/VideogameAssetIcon.d.ts +6 -0
  2302. package/dist/ui/src/icons/components/VideogameAssetOffIcon.d.ts +6 -0
  2303. package/dist/ui/src/icons/components/ViewAgendaIcon.d.ts +6 -0
  2304. package/dist/ui/src/icons/components/ViewArrayIcon.d.ts +6 -0
  2305. package/dist/ui/src/icons/components/ViewCarouselIcon.d.ts +6 -0
  2306. package/dist/ui/src/icons/components/ViewColumnIcon.d.ts +6 -0
  2307. package/dist/ui/src/icons/components/ViewComfortableIcon.d.ts +6 -0
  2308. package/dist/ui/src/icons/components/ViewComfyAltIcon.d.ts +6 -0
  2309. package/dist/ui/src/icons/components/ViewComfyIcon.d.ts +6 -0
  2310. package/dist/ui/src/icons/components/ViewCompactAltIcon.d.ts +6 -0
  2311. package/dist/ui/src/icons/components/ViewCompactIcon.d.ts +6 -0
  2312. package/dist/ui/src/icons/components/ViewCozyIcon.d.ts +6 -0
  2313. package/dist/ui/src/icons/components/ViewDayIcon.d.ts +6 -0
  2314. package/dist/ui/src/icons/components/ViewHeadlineIcon.d.ts +6 -0
  2315. package/dist/ui/src/icons/components/ViewInArIcon.d.ts +6 -0
  2316. package/dist/ui/src/icons/components/ViewKanbanIcon.d.ts +6 -0
  2317. package/dist/ui/src/icons/components/ViewListIcon.d.ts +6 -0
  2318. package/dist/ui/src/icons/components/ViewModuleIcon.d.ts +6 -0
  2319. package/dist/ui/src/icons/components/ViewQuiltIcon.d.ts +6 -0
  2320. package/dist/ui/src/icons/components/ViewSidebarIcon.d.ts +6 -0
  2321. package/dist/ui/src/icons/components/ViewStreamIcon.d.ts +6 -0
  2322. package/dist/ui/src/icons/components/ViewTimelineIcon.d.ts +6 -0
  2323. package/dist/ui/src/icons/components/ViewWeekIcon.d.ts +6 -0
  2324. package/dist/ui/src/icons/components/VignetteIcon.d.ts +6 -0
  2325. package/dist/ui/src/icons/components/VillaIcon.d.ts +6 -0
  2326. package/dist/ui/src/icons/components/VisibilityIcon.d.ts +6 -0
  2327. package/dist/ui/src/icons/components/VisibilityOffIcon.d.ts +6 -0
  2328. package/dist/ui/src/icons/components/VoiceChatIcon.d.ts +6 -0
  2329. package/dist/ui/src/icons/components/VoiceOverOffIcon.d.ts +6 -0
  2330. package/dist/ui/src/icons/components/VoicemailIcon.d.ts +6 -0
  2331. package/dist/ui/src/icons/components/VolcanoIcon.d.ts +6 -0
  2332. package/dist/ui/src/icons/components/VolumeDownIcon.d.ts +6 -0
  2333. package/dist/ui/src/icons/components/VolumeMuteIcon.d.ts +6 -0
  2334. package/dist/ui/src/icons/components/VolumeOffIcon.d.ts +6 -0
  2335. package/dist/ui/src/icons/components/VolumeUpIcon.d.ts +6 -0
  2336. package/dist/ui/src/icons/components/VolunteerActivismIcon.d.ts +6 -0
  2337. package/dist/ui/src/icons/components/VpnKeyIcon.d.ts +6 -0
  2338. package/dist/ui/src/icons/components/VpnKeyOffIcon.d.ts +6 -0
  2339. package/dist/ui/src/icons/components/VpnLockIcon.d.ts +6 -0
  2340. package/dist/ui/src/icons/components/VrpanoIcon.d.ts +6 -0
  2341. package/dist/ui/src/icons/components/WalletGiftcardIcon.d.ts +6 -0
  2342. package/dist/ui/src/icons/components/WalletIcon.d.ts +6 -0
  2343. package/dist/ui/src/icons/components/WalletMembershipIcon.d.ts +6 -0
  2344. package/dist/ui/src/icons/components/WalletTravelIcon.d.ts +6 -0
  2345. package/dist/ui/src/icons/components/WallpaperIcon.d.ts +6 -0
  2346. package/dist/ui/src/icons/components/WarehouseIcon.d.ts +6 -0
  2347. package/dist/ui/src/icons/components/WarningAmberIcon.d.ts +6 -0
  2348. package/dist/ui/src/icons/components/WarningIcon.d.ts +6 -0
  2349. package/dist/ui/src/icons/components/WashIcon.d.ts +6 -0
  2350. package/dist/ui/src/icons/components/WatchIcon.d.ts +6 -0
  2351. package/dist/ui/src/icons/components/WatchLaterIcon.d.ts +6 -0
  2352. package/dist/ui/src/icons/components/WatchOffIcon.d.ts +6 -0
  2353. package/dist/ui/src/icons/components/WaterDamageIcon.d.ts +6 -0
  2354. package/dist/ui/src/icons/components/WaterDropIcon.d.ts +6 -0
  2355. package/dist/ui/src/icons/components/WaterIcon.d.ts +6 -0
  2356. package/dist/ui/src/icons/components/WaterfallChartIcon.d.ts +6 -0
  2357. package/dist/ui/src/icons/components/WavesIcon.d.ts +6 -0
  2358. package/dist/ui/src/icons/components/WavingHandIcon.d.ts +6 -0
  2359. package/dist/ui/src/icons/components/WbAutoIcon.d.ts +6 -0
  2360. package/dist/ui/src/icons/components/WbCloudyIcon.d.ts +6 -0
  2361. package/dist/ui/src/icons/components/WbIncandescentIcon.d.ts +6 -0
  2362. package/dist/ui/src/icons/components/WbIridescentIcon.d.ts +6 -0
  2363. package/dist/ui/src/icons/components/WbShadeIcon.d.ts +6 -0
  2364. package/dist/ui/src/icons/components/WbSunnyIcon.d.ts +6 -0
  2365. package/dist/ui/src/icons/components/WbTwilightIcon.d.ts +6 -0
  2366. package/dist/ui/src/icons/components/WcIcon.d.ts +6 -0
  2367. package/dist/ui/src/icons/components/WebAssetIcon.d.ts +6 -0
  2368. package/dist/ui/src/icons/components/WebAssetOffIcon.d.ts +6 -0
  2369. package/dist/ui/src/icons/components/WebIcon.d.ts +6 -0
  2370. package/dist/ui/src/icons/components/WebStoriesIcon.d.ts +6 -0
  2371. package/dist/ui/src/icons/components/WebhookIcon.d.ts +6 -0
  2372. package/dist/ui/src/icons/components/WechatIcon.d.ts +6 -0
  2373. package/dist/ui/src/icons/components/WeekendIcon.d.ts +6 -0
  2374. package/dist/ui/src/icons/components/WestIcon.d.ts +6 -0
  2375. package/dist/ui/src/icons/components/WhatshotIcon.d.ts +6 -0
  2376. package/dist/ui/src/icons/components/WheelchairPickupIcon.d.ts +6 -0
  2377. package/dist/ui/src/icons/components/WhereToVoteIcon.d.ts +6 -0
  2378. package/dist/ui/src/icons/components/WidgetsIcon.d.ts +6 -0
  2379. package/dist/ui/src/icons/components/WidthFullIcon.d.ts +6 -0
  2380. package/dist/ui/src/icons/components/WidthNormalIcon.d.ts +6 -0
  2381. package/dist/ui/src/icons/components/WidthWideIcon.d.ts +6 -0
  2382. package/dist/ui/src/icons/components/Wifi1BarIcon.d.ts +6 -0
  2383. package/dist/ui/src/icons/components/Wifi2BarIcon.d.ts +6 -0
  2384. package/dist/ui/src/icons/components/WifiCalling3Icon.d.ts +6 -0
  2385. package/dist/ui/src/icons/components/WifiCallingIcon.d.ts +6 -0
  2386. package/dist/ui/src/icons/components/WifiChannelIcon.d.ts +6 -0
  2387. package/dist/ui/src/icons/components/WifiFindIcon.d.ts +6 -0
  2388. package/dist/ui/src/icons/components/WifiIcon.d.ts +6 -0
  2389. package/dist/ui/src/icons/components/WifiLockIcon.d.ts +6 -0
  2390. package/dist/ui/src/icons/components/WifiOffIcon.d.ts +6 -0
  2391. package/dist/ui/src/icons/components/WifiPasswordIcon.d.ts +6 -0
  2392. package/dist/ui/src/icons/components/WifiProtectedSetupIcon.d.ts +6 -0
  2393. package/dist/ui/src/icons/components/WifiTetheringErrorIcon.d.ts +6 -0
  2394. package/dist/ui/src/icons/components/WifiTetheringErrorRoundedIcon.d.ts +6 -0
  2395. package/dist/ui/src/icons/components/WifiTetheringIcon.d.ts +6 -0
  2396. package/dist/ui/src/icons/components/WifiTetheringOffIcon.d.ts +6 -0
  2397. package/dist/ui/src/icons/components/WindPowerIcon.d.ts +6 -0
  2398. package/dist/ui/src/icons/components/WindowIcon.d.ts +6 -0
  2399. package/dist/ui/src/icons/components/WineBarIcon.d.ts +6 -0
  2400. package/dist/ui/src/icons/components/Woman2Icon.d.ts +6 -0
  2401. package/dist/ui/src/icons/components/WomanIcon.d.ts +6 -0
  2402. package/dist/ui/src/icons/components/WooCommerceIcon.d.ts +6 -0
  2403. package/dist/ui/src/icons/components/WordpressIcon.d.ts +6 -0
  2404. package/dist/ui/src/icons/components/WorkHistoryIcon.d.ts +6 -0
  2405. package/dist/ui/src/icons/components/WorkIcon.d.ts +6 -0
  2406. package/dist/ui/src/icons/components/WorkOffIcon.d.ts +6 -0
  2407. package/dist/ui/src/icons/components/WorkOutlineIcon.d.ts +6 -0
  2408. package/dist/ui/src/icons/components/WorkspacePremiumIcon.d.ts +6 -0
  2409. package/dist/ui/src/icons/components/WorkspacesIcon.d.ts +6 -0
  2410. package/dist/ui/src/icons/components/WrapTextIcon.d.ts +6 -0
  2411. package/dist/ui/src/icons/components/WrongLocationIcon.d.ts +6 -0
  2412. package/dist/ui/src/icons/components/WysiwygIcon.d.ts +6 -0
  2413. package/dist/ui/src/icons/components/YardIcon.d.ts +6 -0
  2414. package/dist/ui/src/icons/components/YoutubeSearchedForIcon.d.ts +6 -0
  2415. package/dist/ui/src/icons/components/ZoomInIcon.d.ts +6 -0
  2416. package/dist/ui/src/icons/components/ZoomInMapIcon.d.ts +6 -0
  2417. package/dist/ui/src/icons/components/ZoomOutIcon.d.ts +6 -0
  2418. package/dist/ui/src/icons/components/ZoomOutMapIcon.d.ts +6 -0
  2419. package/dist/ui/src/icons/components/_10kIcon.d.ts +6 -0
  2420. package/dist/ui/src/icons/components/_10mpIcon.d.ts +6 -0
  2421. package/dist/ui/src/icons/components/_11mpIcon.d.ts +6 -0
  2422. package/dist/ui/src/icons/components/_123Icon.d.ts +6 -0
  2423. package/dist/ui/src/icons/components/_12mpIcon.d.ts +6 -0
  2424. package/dist/ui/src/icons/components/_13mpIcon.d.ts +6 -0
  2425. package/dist/ui/src/icons/components/_14mpIcon.d.ts +6 -0
  2426. package/dist/ui/src/icons/components/_15mpIcon.d.ts +6 -0
  2427. package/dist/ui/src/icons/components/_16mpIcon.d.ts +6 -0
  2428. package/dist/ui/src/icons/components/_17mpIcon.d.ts +6 -0
  2429. package/dist/ui/src/icons/components/_18UpRatingIcon.d.ts +6 -0
  2430. package/dist/ui/src/icons/components/_18mpIcon.d.ts +6 -0
  2431. package/dist/ui/src/icons/components/_19mpIcon.d.ts +6 -0
  2432. package/dist/ui/src/icons/components/_1kIcon.d.ts +6 -0
  2433. package/dist/ui/src/icons/components/_1kPlusIcon.d.ts +6 -0
  2434. package/dist/ui/src/icons/components/_1xMobiledataIcon.d.ts +6 -0
  2435. package/dist/ui/src/icons/components/_20mpIcon.d.ts +6 -0
  2436. package/dist/ui/src/icons/components/_21mpIcon.d.ts +6 -0
  2437. package/dist/ui/src/icons/components/_22mpIcon.d.ts +6 -0
  2438. package/dist/ui/src/icons/components/_23mpIcon.d.ts +6 -0
  2439. package/dist/ui/src/icons/components/_24mpIcon.d.ts +6 -0
  2440. package/dist/ui/src/icons/components/_2kIcon.d.ts +6 -0
  2441. package/dist/ui/src/icons/components/_2kPlusIcon.d.ts +6 -0
  2442. package/dist/ui/src/icons/components/_2mpIcon.d.ts +6 -0
  2443. package/dist/ui/src/icons/components/_30fpsIcon.d.ts +6 -0
  2444. package/dist/ui/src/icons/components/_30fpsSelectIcon.d.ts +6 -0
  2445. package/dist/ui/src/icons/components/_360Icon.d.ts +6 -0
  2446. package/dist/ui/src/icons/components/_3dRotationIcon.d.ts +6 -0
  2447. package/dist/ui/src/icons/components/_3gMobiledataIcon.d.ts +6 -0
  2448. package/dist/ui/src/icons/components/_3kIcon.d.ts +6 -0
  2449. package/dist/ui/src/icons/components/_3kPlusIcon.d.ts +6 -0
  2450. package/dist/ui/src/icons/components/_3mpIcon.d.ts +6 -0
  2451. package/dist/ui/src/icons/components/_3pIcon.d.ts +6 -0
  2452. package/dist/ui/src/icons/components/_4gMobiledataIcon.d.ts +6 -0
  2453. package/dist/ui/src/icons/components/_4gPlusMobiledataIcon.d.ts +6 -0
  2454. package/dist/ui/src/icons/components/_4kIcon.d.ts +6 -0
  2455. package/dist/ui/src/icons/components/_4kPlusIcon.d.ts +6 -0
  2456. package/dist/ui/src/icons/components/_4mpIcon.d.ts +6 -0
  2457. package/dist/ui/src/icons/components/_5gIcon.d.ts +6 -0
  2458. package/dist/ui/src/icons/components/_5kIcon.d.ts +6 -0
  2459. package/dist/ui/src/icons/components/_5kPlusIcon.d.ts +6 -0
  2460. package/dist/ui/src/icons/components/_5mpIcon.d.ts +6 -0
  2461. package/dist/ui/src/icons/components/_60fpsIcon.d.ts +6 -0
  2462. package/dist/ui/src/icons/components/_60fpsSelectIcon.d.ts +6 -0
  2463. package/dist/ui/src/icons/components/_6FtApartIcon.d.ts +6 -0
  2464. package/dist/ui/src/icons/components/_6kIcon.d.ts +6 -0
  2465. package/dist/ui/src/icons/components/_6kPlusIcon.d.ts +6 -0
  2466. package/dist/ui/src/icons/components/_6mpIcon.d.ts +6 -0
  2467. package/dist/ui/src/icons/components/_7kIcon.d.ts +6 -0
  2468. package/dist/ui/src/icons/components/_7kPlusIcon.d.ts +6 -0
  2469. package/dist/ui/src/icons/components/_7mpIcon.d.ts +6 -0
  2470. package/dist/ui/src/icons/components/_8kIcon.d.ts +6 -0
  2471. package/dist/ui/src/icons/components/_8kPlusIcon.d.ts +6 -0
  2472. package/dist/ui/src/icons/components/_8mpIcon.d.ts +6 -0
  2473. package/dist/ui/src/icons/components/_9kIcon.d.ts +6 -0
  2474. package/dist/ui/src/icons/components/_9kPlusIcon.d.ts +6 -0
  2475. package/dist/ui/src/icons/components/_9mpIcon.d.ts +6 -0
  2476. package/dist/ui/src/icons/cool_icon_keys.d.ts +1 -0
  2477. package/dist/ui/src/icons/icon_keys.d.ts +1 -0
  2478. package/dist/ui/src/icons/index.d.ts +2202 -0
  2479. package/dist/ui/src/index.d.ts +5 -0
  2480. package/dist/ui/src/styles.d.ts +12 -0
  2481. package/dist/ui/src/util/chip_colors.d.ts +4 -0
  2482. package/dist/ui/src/util/cls.d.ts +2 -0
  2483. package/dist/ui/src/util/debounce.d.ts +10 -0
  2484. package/dist/ui/src/util/hash.d.ts +1 -0
  2485. package/dist/ui/src/util/index.d.ts +4 -0
  2486. package/dist/ui/src/util/key_to_icon_component.d.ts +1 -0
  2487. package/package.json +81 -0
  2488. package/src/components/JSEditor/JSEditor.tsx +1036 -0
  2489. package/src/components/JSEditor/JSEditorSidebar.tsx +348 -0
  2490. package/src/components/JSEditor/JSMonacoEditor.tsx +388 -0
  2491. package/src/components/RLSEditor/PolicyEditor.tsx +459 -0
  2492. package/src/components/RLSEditor/RLSEditor.tsx +697 -0
  2493. package/src/components/RLSEditor/index.ts +1 -0
  2494. package/src/components/RebaseStudio.tsx +49 -0
  2495. package/src/components/SQLEditor/ExplainVisualizer.tsx +128 -0
  2496. package/src/components/SQLEditor/MonacoEditor.tsx +203 -0
  2497. package/src/components/SQLEditor/SQLEditor.tsx +1343 -0
  2498. package/src/components/SQLEditor/SQLEditorSidebar.tsx +180 -0
  2499. package/src/components/SQLEditor/SchemaBrowser.tsx +166 -0
  2500. package/src/components/StorageView/StorageView.tsx +1055 -0
  2501. package/src/components/StudioHomePage.tsx +339 -0
  2502. package/src/index.ts +28 -0
  2503. package/src/utils/arrays.ts +3 -0
  2504. package/src/utils/entities.ts +2 -0
  2505. package/src/utils/pgColumnToProperty.test.ts +258 -0
  2506. package/src/utils/pgColumnToProperty.ts +274 -0
  2507. package/src/utils/sql_utils.test.ts +227 -0
  2508. package/src/utils/sql_utils.ts +297 -0
  2509. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../src/components/SQLEditor/MonacoEditor.tsx","../src/components/SQLEditor/SchemaBrowser.tsx","../src/components/SQLEditor/SQLEditorSidebar.tsx","../src/utils/sql_utils.ts","../src/components/SQLEditor/ExplainVisualizer.tsx","../src/components/SQLEditor/SQLEditor.tsx","../src/components/JSEditor/JSMonacoEditor.tsx","../src/components/JSEditor/JSEditorSidebar.tsx","../src/components/JSEditor/JSEditor.tsx","../src/components/RLSEditor/PolicyEditor.tsx","../src/components/RLSEditor/RLSEditor.tsx","../src/components/StorageView/StorageView.tsx","../src/components/StudioHomePage.tsx","../src/components/RebaseStudio.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport Editor, { Monaco, OnMount } from \"@monaco-editor/react\";\nimport type { editor, Position, IRange } from \"monaco-editor\";\nimport { cls, defaultBorderMixin } from \"@rebasepro/ui\";\nimport { useModeController } from \"@rebasepro/core\";\n\nexport type MonacoEditorProps = {\n value: string;\n onChange: (value: string | undefined) => void;\n onRun?: (selectedText?: string) => void;\n className?: string;\n readOnly?: boolean;\n autoFocus?: boolean;\n schemas?: Record<string, { schemaName: string, tableName: string, columns: { name: string, dataType: string }[] }[]>;\n};\n\nexport const MonacoEditor = ({\n value,\n onChange,\n onRun,\n className,\n readOnly = false,\n autoFocus = true,\n schemas\n}: MonacoEditorProps) => {\n const { mode } = useModeController();\n const editorRef = useRef<editor.IStandaloneCodeEditor | null>(null);\n const monacoRef = useRef<Monaco | null>(null);\n const onRunRef = useRef(onRun);\n onRunRef.current = onRun;\n\n const schemasRef = useRef(schemas);\n schemasRef.current = schemas;\n\n const handleEditorOnMount: OnMount = (editor, monaco) => {\n editorRef.current = editor;\n monacoRef.current = monaco;\n\n editor.addAction({\n id: \"run-query\",\n label: \"Run Query\",\n keybindings: [monaco.KeyMod.CtrlCmd + monaco.KeyCode.Enter],\n contextMenuGroupId: \"operation\",\n contextMenuOrder: 0,\n run: () => {\n if (onRunRef.current) {\n const selection = editor.getSelection();\n let selectedText: string | undefined = undefined;\n if (selection && !selection.isEmpty()) {\n selectedText = editor.getModel()?.getValueInRange(selection)?.trim();\n }\n onRunRef.current(selectedText || undefined);\n }\n },\n });\n\n // Register custom autocomplete for tables, columns, and SQL keywords\n const sqlKeywords = [\n \"SELECT\", \"FROM\", \"WHERE\", \"INSERT INTO\", \"VALUES\", \"UPDATE\", \"SET\",\n \"DELETE FROM\", \"JOIN\", \"INNER JOIN\", \"LEFT JOIN\", \"RIGHT JOIN\", \"FULL JOIN\",\n \"ON\", \"GROUP BY\", \"HAVING\", \"ORDER BY\", \"ASC\", \"DESC\", \"LIMIT\", \"OFFSET\",\n \"AS\", \"AND\", \"OR\", \"NOT\", \"IN\", \"BETWEEN\", \"LIKE\", \"IS NULL\", \"IS NOT NULL\",\n \"CREATE TABLE\", \"ALTER TABLE\", \"DROP TABLE\", \"PRIMARY KEY\", \"FOREIGN KEY\",\n \"COUNT\", \"SUM\", \"AVG\", \"MIN\", \"MAX\", \"DISTINCT\", \"UNION\", \"ALL\", \"EXISTS\",\n \"CASE\", \"WHEN\", \"THEN\", \"ELSE\", \"END\", \"CAST\", \"COALESCE\"\n ];\n\n monaco.languages.registerCompletionItemProvider(\"pgsql\", {\n triggerCharacters: [\".\", \" \", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\"],\n provideCompletionItems: (model: editor.ITextModel, position: Position) => {\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const textUntilPosition = model.getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: 1,\n endLineNumber: position.lineNumber,\n endColumn: position.column\n });\n\n // Check if user is typing `tableName.`\n const match = textUntilPosition.match(/([a-zA-Z0-9_]+)\\.$/);\n const tableNameMatch = match ? match[1] : null;\n\n const suggestions: { label: string; kind: number; insertText: string; range: IRange; detail: string; sortText: string }[] = [];\n const allSchemas = schemasRef.current || {};\n\n if (tableNameMatch) {\n // Provide columns for the matched table\n for (const [, tables] of Object.entries(allSchemas)) {\n const table = tables.find(t => t.tableName === tableNameMatch);\n if (table) {\n table.columns.forEach(col => {\n suggestions.push({\n label: col.name,\n kind: monaco.languages.CompletionItemKind.Field,\n insertText: col.name,\n range,\n detail: `Column`,\n sortText: \"1\"\n });\n });\n }\n }\n } else {\n // Provide table names\n for (const [sName, tables] of Object.entries(allSchemas)) {\n tables.forEach(table => {\n suggestions.push({\n label: table.tableName,\n kind: monaco.languages.CompletionItemKind.Class,\n insertText: table.tableName,\n range,\n detail: `Table (${sName})`,\n sortText: \"2\"\n });\n });\n }\n\n // Provide SQL keywords\n sqlKeywords.forEach(keyword => {\n suggestions.push({\n label: keyword,\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: keyword + \" \",\n range,\n detail: \"SQL Keyword\",\n sortText: \"3\"\n });\n });\n\n // Heuristic: Suggest columns for tables that are mentioned in the current editor text\n const fullText = model.getValue();\n const activeTables = new Set<string>();\n for (const [, tables] of Object.entries(allSchemas)) {\n tables.forEach(table => {\n const regex = new RegExp(`\\\\b${table.tableName}\\\\b`, 'i');\n if (regex.test(fullText)) {\n activeTables.add(table.tableName);\n }\n });\n }\n\n const addedColumns = new Set<string>();\n for (const [, tables] of Object.entries(allSchemas)) {\n tables.forEach(table => {\n if (activeTables.has(table.tableName)) {\n table.columns.forEach(col => {\n if (!addedColumns.has(col.name)) {\n addedColumns.add(col.name);\n suggestions.push({\n label: col.name,\n kind: monaco.languages.CompletionItemKind.Field,\n insertText: col.name,\n range,\n detail: `Column (${table.tableName})`,\n sortText: \"1\" // Prioritize columns from active tables\n });\n }\n });\n }\n });\n }\n }\n\n return { suggestions };\n\n }\n });\n\n if (autoFocus) {\n editor.focus();\n }\n };\n\n return (\n <div className={cls(\"relative w-full h-full overflow-hidden\", className)}>\n <Editor\n height=\"100%\"\n defaultLanguage=\"pgsql\"\n value={value}\n onChange={onChange}\n onMount={handleEditorOnMount}\n theme={mode === \"dark\" ? \"vs-dark\" : \"vs\"}\n options={{\n minimap: { enabled: false },\n fontSize: 14,\n lineNumbers: \"on\",\n scrollBeyondLastLine: false,\n automaticLayout: true,\n readOnly,\n tabSize: 2,\n wordWrap: \"on\",\n }}\n />\n </div>\n );\n};\n","import React, { useState } from \"react\";\nimport {\n Typography,\n CircularProgress,\n cls,\n IconButton,\n defaultBorderMixin,\n Menu,\n MenuItem,\n Button,\n ContentCopyIcon,\n MoreVertIcon,\n RefreshIcon\n} from \"@rebasepro/ui\";\nimport { TableInfo } from \"./SQLEditor\";\nimport { ErrorView, useTranslation } from \"@rebasepro/core\";\n\nexport const SchemaBrowser = ({\n onTableClick,\n schemas,\n isSchemaLoading,\n schemaError,\n onRetrySchema\n}: {\n onTableClick?: (tableName: string) => void,\n schemas: Record<string, TableInfo[]>,\n isSchemaLoading: boolean,\n schemaError: string | null,\n onRetrySchema: () => void\n}) => {\n const [expandedSchemas, setExpandedSchemas] = useState<Record<string, boolean>>({ public: true });\n const [expandedTables, setExpandedTables] = useState<Record<string, boolean>>({});\n const { t } = useTranslation();\n\n if (isSchemaLoading) return <div className=\"p-4 flex justify-center\"><CircularProgress size=\"small\" /></div>;\n if (schemaError) return (\n <div className=\"p-2\">\n <ErrorView error={schemaError} onRetry={onRetrySchema} />\n </div>\n );\n\n return (\n <div className=\"flex flex-col h-full overflow-hidden\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_schema_tables\")}</Typography>\n <IconButton size=\"small\" onClick={onRetrySchema} title=\"Refresh schema\">\n <RefreshIcon size=\"small\" />\n </IconButton>\n </div>\n\n <div className=\"flex-grow overflow-y-auto no-scrollbar p-1\">\n {Object.keys(schemas).length === 0 ? (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark italic\">{t(\"studio_schema_no_tables\")}</Typography>\n </div>\n ) : Object.entries(schemas).map(([schemaName, tables]) => (\n <div key={schemaName} className=\"mb-2\">\n <div\n className=\"flex items-center p-1 cursor-pointer hover:bg-surface-100 dark:hover:bg-surface-800 rounded transition-colors\"\n onClick={() => setExpandedSchemas(prev => ({ ...prev, [schemaName]: !prev[schemaName] }))}\n >\n <svg className={cls(\"w-3 h-3 mr-1 transition-transform\", expandedSchemas[schemaName] ? \"rotate-90\" : \"\")} fill=\"currentColor\" viewBox=\"0 0 20 20\"><path d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" /></svg>\n <Typography variant=\"body2\" className=\"text-text-primary dark:text-text-primary-dark font-medium text-xs truncate flex-grow\">{schemaName}</Typography>\n </div>\n\n {expandedSchemas[schemaName] && (\n <div className=\"ml-3 mt-1 space-y-1\">\n {tables.map(table => (\n <div key={table.tableName}>\n <div\n className=\"flex items-center p-1 cursor-pointer hover:bg-surface-100 dark:hover:bg-surface-800 rounded transition-colors group relative\"\n onClick={() => setExpandedTables(prev => ({ ...prev, [`${schemaName}.${table.tableName}`]: !prev[`${schemaName}.${table.tableName}`] }))}\n >\n <svg className={cls(\"w-3 h-3 mr-1 transition-transform shrink-0\", expandedTables[`${schemaName}.${table.tableName}`] ? \"rotate-90\" : \"\")} fill=\"currentColor\" viewBox=\"0 0 20 20\"><path d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" /></svg>\n <svg className=\"w-3.5 h-3.5 mr-1 shrink-0 text-text-disabled dark:text-text-disabled-dark\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\" /></svg>\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark text-xs truncate flex-1 min-w-0\">{table.tableName}</Typography>\n\n <div className=\"flex opacity-0 group-hover:opacity-100 focus-within:opacity-100 absolute right-1 items-center bg-surface-100 dark:bg-surface-800 px-1 gap-1 rounded transition-opacity\">\n <IconButton\n size=\"smallest\"\n className=\"transition-colors text-text-secondary hover:text-text-primary pointer-events-auto\"\n onClick={(e) => {\n e.stopPropagation();\n navigator.clipboard.writeText(table.tableName);\n }}\n title=\"Copy table name\"\n >\n <ContentCopyIcon size=\"smallest\" />\n </IconButton>\n\n <Menu\n trigger={\n <IconButton\n size=\"smallest\"\n className=\"transition-colors text-text-secondary hover:text-text-primary pointer-events-auto\"\n onClick={(e) => e.stopPropagation()}\n title=\"Generate SQL templates\"\n >\n <MoreVertIcon size=\"smallest\" />\n </IconButton>\n }\n >\n <MenuItem dense className=\"text-xs\" onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n onTableClick?.(`SELECT * FROM ${schemaName !== 'public' ? `${schemaName}.` : ''}${table.tableName} LIMIT 100;`);\n }}>SELECT (Top 100)</MenuItem>\n <MenuItem dense className=\"text-xs\" onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n onTableClick?.(`SELECT \\n ${table.columns.map(c => c.name).join(\",\\n \")}\\nFROM ${schemaName !== 'public' ? `${schemaName}.` : ''}${table.tableName};`);\n }}>SELECT (All columns)</MenuItem>\n <MenuItem dense className=\"text-xs\" onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n onTableClick?.(`INSERT INTO ${schemaName !== 'public' ? `${schemaName}.` : ''}${table.tableName} (\\n ${table.columns.map(c => c.name).join(\",\\n \")}\\n) VALUES (\\n ${table.columns.map(() => '?').join(\",\\n \")}\\n);`);\n }}>INSERT statement</MenuItem>\n <MenuItem dense className=\"text-xs\" onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n onTableClick?.(`UPDATE ${schemaName !== 'public' ? `${schemaName}.` : ''}${table.tableName} \\nSET \\n ${table.columns.map(c => `${c.name} = ?`).join(\",\\n \")}\\nWHERE id = ?;`);\n }}>UPDATE statement</MenuItem>\n </Menu>\n\n <Button\n variant=\"text\"\n size=\"small\"\n className=\"text-[10px] text-primary uppercase min-h-0 py-0.5 px-1 font-medium ml-1 flex-shrink-0 leading-none h-[22px]\"\n onClick={(e) => {\n e.stopPropagation();\n onTableClick?.(`SELECT * FROM ${schemaName !== 'public' ? `${schemaName}.` : ''}${table.tableName} LIMIT 100;`);\n }}\n >\n SELECT\n </Button>\n </div>\n </div>\n\n {expandedTables[`${schemaName}.${table.tableName}`] && (\n <div className={cls(\"ml-5 mt-1 space-y-0.5 border-l\", defaultBorderMixin)}>\n {table.columns.map(col => (\n <div key={col.name} className=\"flex items-center p-1 group pl-2 hover:bg-surface-50 dark:hover:bg-surface-800 rounded-r relative min-h-[28px]\">\n <svg className=\"w-3 h-3 mr-1.5 text-text-disabled dark:text-text-disabled-dark shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1.5} d=\"M9 4.5v15m6-15v15m-10.5-1.5h15c.621 0 1.125-.504 1.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125h-15c-.621 0-1.125.504-1.125 1.125v12.75c0 .621.504 1.125 1.125 1.125Z\" /></svg>\n <Typography variant=\"caption\" className=\"text-text-primary dark:text-text-primary-dark text-[11px] truncate flex-grow mr-2\">{col.name}</Typography>\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark text-[9px] truncate mr-1 uppercase shrink-0\" title={col.dataType}>{col.dataType}</Typography>\n <IconButton\n size=\"smallest\"\n className=\"opacity-0 group-hover:opacity-100 absolute right-1 bg-surface-50 dark:bg-surface-800 transition-colors pointer-events-auto\"\n onClick={(e) => {\n e.stopPropagation();\n navigator.clipboard.writeText(col.name);\n }}\n title=\"Copy column name\"\n >\n <ContentCopyIcon size=\"smallest\" />\n </IconButton>\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import React, { useState } from \"react\";\nimport {\n Typography,\n cls,\n defaultBorderMixin,\n Tabs,\n Tab,\n IconButton,\n DeleteIcon\n} from \"@rebasepro/ui\";\nimport { useTranslation } from \"@rebasepro/core\";\nimport { SchemaBrowser } from \"./SchemaBrowser\";\nimport { TableInfo } from \"./SQLEditor\";\n\nexport interface Snippet {\n id: string;\n name: string;\n sql: string;\n createdAt: number;\n isFavorite?: boolean;\n}\n\ninterface SQLEditorSidebarProps {\n onSelectSnippet: (sql: string) => void;\n onTableClick: (tableName: string) => void;\n snippets: Snippet[];\n history: string[];\n onDeleteSnippet: (id: string) => void;\n schemas: Record<string, TableInfo[]>;\n isSchemaLoading: boolean;\n schemaError: string | null;\n onRetrySchema: () => void;\n}\n\nexport const SQLEditorSidebar = ({\n onSelectSnippet,\n onTableClick,\n snippets,\n history,\n onDeleteSnippet,\n schemas,\n isSchemaLoading,\n schemaError,\n onRetrySchema\n}: SQLEditorSidebarProps) => {\n const [activeTab, setActiveTab] = useState<\"schema\" | \"snippets\" | \"history\">(\"schema\");\n const { t } = useTranslation();\n\n return (\n <div className={cls(\"flex flex-col h-full w-full bg-white dark:bg-surface-950 border-r\", defaultBorderMixin)}>\n <Tabs value={activeTab} onValueChange={(v) => setActiveTab(v as \"schema\" | \"snippets\" | \"history\")} variant=\"boxy\" className=\"border-b border-surface-200 dark:border-surface-800\">\n <Tab value=\"schema\">{t(\"studio_sql_sidebar_schema\")}</Tab>\n <Tab value=\"snippets\">{t(\"studio_sql_sidebar_snippets\")}</Tab>\n <Tab value=\"history\">{t(\"studio_sql_sidebar_history\")}</Tab>\n </Tabs>\n\n <div className=\"flex-grow overflow-hidden relative\">\n {activeTab === \"schema\" && (\n <SchemaBrowser\n onTableClick={onTableClick}\n schemas={schemas}\n isSchemaLoading={isSchemaLoading}\n schemaError={schemaError}\n onRetrySchema={onRetrySchema}\n />\n )}\n\n {activeTab === \"snippets\" && (() => {\n const favorites = snippets.filter(s => s.isFavorite);\n const others = snippets.filter(s => !s.isFavorite);\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_sql_sidebar_snippets\")}</Typography>\n </div>\n <div className=\"flex-grow overflow-y-auto p-2 space-y-2 no-scrollbar\">\n {snippets.length === 0 ? (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_sql_sidebar_no_snippets\")}</Typography>\n </div>\n ) : (\n <>\n {favorites.length > 0 && (\n <div className=\"mb-4\">\n <Typography variant=\"caption\" className=\"text-[10px] font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark mb-2 px-1 flex items-center\">\n <svg className=\"w-3 h-3 mr-1 text-red-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\"><path fillRule=\"evenodd\" d=\"M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z\" clipRule=\"evenodd\" /></svg>\n Favorites\n </Typography>\n <div className=\"space-y-2\">\n {favorites.map(snippet => (\n <div\n key={snippet.id}\n className={cls(\"group p-2 rounded border hover:border-surface-400 dark:hover:border-surface-600 bg-white dark:bg-surface-900 transition-all cursor-pointer relative\", defaultBorderMixin)}\n onClick={() => onSelectSnippet(snippet.sql)}\n >\n <Typography variant=\"body2\" className=\"text-text-primary dark:text-text-primary-dark font-medium text-[13px] truncate pr-6\">{snippet.name}</Typography>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[10px] block mt-1 truncate\">{snippet.sql}</Typography>\n <IconButton\n size=\"smallest\"\n className=\"absolute right-1 top-1 opacity-0 group-hover:opacity-100 text-text-disabled hover:text-red-500 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n onDeleteSnippet(snippet.id);\n }}\n >\n <DeleteIcon size=\"smallest\" />\n </IconButton>\n </div>\n ))}\n </div>\n </div>\n )}\n {others.length > 0 && (\n <div>\n {favorites.length > 0 && (\n <Typography variant=\"caption\" className=\"text-[10px] font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark mb-2 px-1 mt-4\">\n Others\n </Typography>\n )}\n <div className=\"space-y-2\">\n {others.map(snippet => (\n <div\n key={snippet.id}\n className={cls(\"group p-2 rounded border hover:border-surface-400 dark:hover:border-surface-600 bg-white dark:bg-surface-900 transition-all cursor-pointer relative\", defaultBorderMixin)}\n onClick={() => onSelectSnippet(snippet.sql)}\n >\n <Typography variant=\"body2\" className=\"text-text-primary dark:text-text-primary-dark font-medium text-[13px] truncate pr-6\">{snippet.name}</Typography>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[10px] block mt-1 truncate\">{snippet.sql}</Typography>\n <IconButton\n size=\"smallest\"\n className=\"absolute right-1 top-1 opacity-0 group-hover:opacity-100 text-text-disabled hover:text-red-500 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n onDeleteSnippet(snippet.id);\n }}\n >\n <DeleteIcon size=\"smallest\" />\n </IconButton>\n </div>\n ))}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n );\n })()}\n\n {activeTab === \"history\" && (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_sql_sidebar_history\")}</Typography>\n </div>\n <div className=\"flex-grow overflow-y-auto p-1 space-y-1 no-scrollbar\">\n {history.length === 0 ? (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_sql_sidebar_no_history\")}</Typography>\n </div>\n ) : (\n [...history].reverse().map((sql, i) => (\n <div\n key={i}\n className=\"p-2 py-1.5 rounded hover:bg-surface-100 dark:hover:bg-surface-800 cursor-pointer group transition-colors flex items-start\"\n onClick={() => onSelectSnippet(sql)}\n >\n <svg className=\"w-3 h-3 mt-1 mr-2 text-text-disabled dark:text-text-disabled-dark group-hover:text-primary transition-colors flex-shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\" /></svg>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark group-hover:text-text-primary dark:group-hover:text-text-primary-dark text-[11px] line-clamp-2 leading-tight flex-grow\">{sql}</Typography>\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import { parseFirst } from \"pgsql-ast-parser\";\nimport { TableInfo } from \"../components/SQLEditor/SQLEditor\";\nimport { EntityCollection } from \"@rebasepro/types\";\n\n/**\n * A table extracted from a SQL query's FROM/JOIN clauses.\n */\nexport interface ExtractedTable {\n name: string;\n alias?: string;\n}\n\n/**\n * A collection matched to a table in a SQL query.\n */\nexport interface ResolvedQueryCollection {\n /** DB table name from the SQL AST (e.g. \"blog_posts\") */\n tableName: string;\n /** SQL alias if present (e.g. \"bp\") */\n tableAlias?: string;\n /** The matched collection */\n collection: EntityCollection;\n /** Columns from this table that are present in the result set */\n columns: string[];\n /** The result column name that holds the primary key for this table (e.g. \"id\", \"author_id\") */\n pkColumn?: string;\n}\n\n/**\n * Extract all tables referenced in a SQL query's FROM and JOIN clauses.\n * Returns an empty array for non-SELECT queries or parse failures.\n */\nexport function extractTablesFromQuery(sqlString: string): ExtractedTable[] {\n try {\n const ast = parseFirst(sqlString);\n if (ast.type !== \"select\") return [];\n\n const tables: ExtractedTable[] = [];\n\n // pgsql-ast-parser From items — tables and joins with left/right branches\n type FromNode = { type: string; name?: { name: string; alias?: string }; left?: FromNode; right?: FromNode };\n const processFrom = (fromItems: FromNode[]) => {\n for (const item of fromItems) {\n if (item.type === \"table\" && item.name) {\n tables.push({ name: item.name.name, alias: item.name.alias });\n }\n if (item.type === \"join\") {\n if (item.left) processFrom([item.left]);\n if (item.right) processFrom([item.right]);\n }\n }\n };\n\n if (ast.from) {\n processFrom(ast.from);\n }\n\n return tables;\n } catch {\n return [];\n }\n}\n\n/**\n * Convert a slug like \"blogPosts\" or \"blog-posts\" to snake_case \"blog_posts\".\n */\nfunction slugToSnakeCase(slug: string): string {\n return slug\n .replace(/([a-z])([A-Z])/g, \"$1_$2\")\n .replace(/[-\\s]+/g, \"_\")\n .toLowerCase();\n}\n\n/**\n * Resolve which collections are referenced by a SQL query.\n *\n * Parses the SQL, extracts table names, and matches each against\n * registered collections via `collection.table` (falling back to\n * snake_case of `collection.slug`).\n *\n * For each matched collection, determines which result columns\n * belong to that table using the database schema information.\n */\nexport function resolveQueryCollections(\n sqlString: string,\n schemas: Record<string, TableInfo[]>,\n collections: EntityCollection[],\n resultColumns?: string[]\n): ResolvedQueryCollection[] {\n const tables = extractTablesFromQuery(sqlString);\n if (tables.length === 0) return [];\n\n // Parse the AST to resolve SELECT column aliases\n let selectColumns: { table?: string; column: string; alias?: string }[] = [];\n try {\n const ast = parseFirst(sqlString);\n if (ast.type === \"select\" && ast.columns) {\n for (const col of ast.columns) {\n if (col.expr?.type === \"ref\") {\n selectColumns.push({\n table: col.expr.table?.name,\n column: col.expr.name,\n alias: col.alias?.name\n });\n }\n }\n }\n } catch { /* parse failure is ok, we'll fall back */ }\n\n const results: ResolvedQueryCollection[] = [];\n\n for (const table of tables) {\n // Match table name against collection table or slug->snake_case\n const matched = collections.find(c => {\n const tableName = (c as any).table || slugToSnakeCase(c.slug);\n return tableName === table.name;\n });\n\n if (!matched) continue;\n\n // Find columns belonging to this table from the schema\n const tableColumns: string[] = [];\n for (const schemaEntries of Object.values(schemas)) {\n const tableInfo = schemaEntries.find(t => t.tableName === table.name);\n if (tableInfo) {\n tableColumns.push(...tableInfo.columns.map(c => c.name));\n break;\n }\n }\n\n // Determine which result column holds the PK (\"id\") for this table.\n // 1. Check parsed SELECT columns for an explicit \"id\" column from this table (by name or alias)\n // 2. Fall back to checking if result columns contain \"id\"\n let pkColumn: string | undefined;\n\n // Look in the AST select columns for `table.id` or `alias.id`\n const tableRef = table.alias || table.name;\n const idSelectCol = selectColumns.find(\n sc => sc.column === \"id\" && (!sc.table || sc.table === tableRef || sc.table === table.name)\n );\n if (idSelectCol) {\n pkColumn = idSelectCol.alias || idSelectCol.column; // use alias if present\n }\n\n // If we didn't find it from the AST (e.g. SELECT *), check if result columns have \"id\"\n if (!pkColumn && resultColumns) {\n if (resultColumns.includes(\"id\")) {\n pkColumn = \"id\";\n }\n }\n\n // If still not found, fall back to checking tableColumns\n if (!pkColumn && tableColumns.includes(\"id\")) {\n pkColumn = \"id\";\n }\n\n results.push({\n tableName: table.name,\n tableAlias: table.alias,\n collection: matched,\n columns: tableColumns,\n pkColumn\n });\n }\n\n return results;\n}\n\nexport interface PKMapping {\n /** The actual column name in the database table */\n dbColumn: string;\n /** The column name as it appears in the query result set (may be aliased) */\n resultColumn: string;\n}\n\nexport interface TableAndPKResult {\n tableName?: string;\n primaryKeys?: PKMapping[];\n error?: string;\n}\n\nexport function determineTableAndPK(sqlString: string, columnKey: string, schemas: Record<string, TableInfo[]>): TableAndPKResult {\n try {\n const tables = extractTablesFromQuery(sqlString);\n\n const ast = parseFirst(sqlString);\n if (ast.type !== \"select\") {\n return { error: \"Inline editing is only supported for SELECT queries.\" };\n }\n\n if (tables.length === 0) {\n return { error: \"Could not find any tables in the query.\" };\n }\n\n // Parse SELECT columns to resolve aliases\n const selectColumns: { table?: string; column: string; alias?: string }[] = [];\n if (ast.columns) {\n for (const col of ast.columns) {\n if (col.expr?.type === \"ref\") {\n selectColumns.push({\n table: col.expr.table?.name,\n column: col.expr.name,\n alias: col.alias?.name\n });\n }\n }\n }\n\n // Resolve which DB column `columnKey` refers to (it might be aliased)\n const resolvedColumn = selectColumns.find(\n sc => (sc.alias === columnKey) || (!sc.alias && sc.column === columnKey)\n );\n const actualDbColumnName = resolvedColumn?.column ?? columnKey;\n const columnTableRef = resolvedColumn?.table; // e.g. \"p\" or \"posts\"\n\n // Resolve the table for the edited column\n let resolvedTableName: string | null = null;\n\n if (tables.length === 1) {\n resolvedTableName = tables[0].name;\n } else {\n // If the AST tells us which table, use that\n if (columnTableRef) {\n const matchedTable = tables.find(\n t => t.alias === columnTableRef || t.name === columnTableRef\n );\n if (matchedTable) {\n resolvedTableName = matchedTable.name;\n }\n }\n\n // Otherwise, look up which schema table has this column\n if (!resolvedTableName) {\n const matchedTables = tables.filter(t => {\n for (const schema of Object.values(schemas)) {\n const tableInfo = schema.find(ti => ti.tableName === t.name);\n if (tableInfo && tableInfo.columns.some(c => c.name === actualDbColumnName)) {\n return true;\n }\n }\n return false;\n });\n\n if (matchedTables.length === 1) {\n resolvedTableName = matchedTables[0].name;\n } else if (matchedTables.length > 1) {\n return { error: `Ambiguous column \"${columnKey}\": Found in multiple queried tables.` };\n } else {\n return { error: `Could not find column \"${columnKey}\" in the queried tables.` };\n }\n }\n }\n\n if (!resolvedTableName) {\n return { error: \"Could not resolve the target table.\" };\n }\n\n // Find the table's actual primary key columns from the schema\n let pkDbColumns: string[] = [];\n for (const schema of Object.values(schemas)) {\n const tableInfo = schema.find(t => t.tableName === resolvedTableName);\n if (tableInfo) {\n pkDbColumns = tableInfo.columns\n .filter(c => c.isPrimaryKey)\n .map(c => c.name);\n break;\n }\n }\n\n if (pkDbColumns.length === 0) {\n return { error: `Table \"${resolvedTableName}\" has no primary key defined.` };\n }\n\n // Find the table's alias in the query (for resolving PK result column names)\n const tableEntry = tables.find(t => t.name === resolvedTableName);\n const tableAlias = tableEntry?.alias;\n\n // Map each PK db column to its result column name (resolving aliases)\n const primaryKeys: PKMapping[] = pkDbColumns.map(dbCol => {\n // Find the SELECT column for this PK\n const selectCol = selectColumns.find(\n sc => sc.column === dbCol &&\n (!sc.table || sc.table === (tableAlias || resolvedTableName))\n );\n return {\n dbColumn: dbCol,\n resultColumn: selectCol?.alias || selectCol?.column || dbCol\n };\n });\n\n return { tableName: resolvedTableName, primaryKeys };\n } catch (e: unknown) {\n console.warn(\"Failed to parse SQL AST:\", e);\n const message = e instanceof Error ? e.message : String(e);\n return { error: `Could not safely parse query for inline editing: ${message}` };\n }\n}\n","import React, { useState } from \"react\";\nimport { Typography, cls, defaultBorderMixin, Collapse } from \"@rebasepro/ui\";\n\nexport interface ExplainPlanNode {\n \"Node Type\": string;\n \"Relation Name\"?: string;\n \"Alias\"?: string;\n \"Startup Cost\": number;\n \"Total Cost\": number;\n \"Plan Rows\": number;\n \"Plan Width\": number;\n \"Actual Startup Time\"?: number;\n \"Actual Total Time\"?: number;\n \"Actual Rows\"?: number;\n \"Actual Loops\"?: number;\n \"Filter\"?: string;\n \"Index Cond\"?: string;\n \"Hash Cond\"?: string;\n \"Plans\"?: ExplainPlanNode[];\n [key: string]: unknown;\n}\n\nexport interface ExplainVisualizerProps {\n plan: ExplainPlanNode;\n isRoot?: boolean;\n}\n\nexport const ExplainVisualizer: React.FC<ExplainVisualizerProps> = ({ plan, isRoot = true }) => {\n const [expanded, setExpanded] = useState(true);\n\n const hasChildren = plan.Plans && plan.Plans.length > 0;\n\n // Determine color based on cost\n const cost = plan[\"Total Cost\"];\n let costColor = \"text-green-500 dark:text-green-400\";\n if (cost > 1000) costColor = \"text-red-500 dark:text-red-400\";\n else if (cost > 100) costColor = \"text-orange-500 dark:text-orange-400\";\n\n return (\n <div className={cls(\"flex flex-col\", isRoot ? \"p-4\" : \"pl-6 mt-2 relative\")}>\n {/* Tree branch line */}\n {!isRoot && (\n <div className=\"absolute left-2.5 top-0 bottom-0 w-px bg-surface-200 dark:bg-surface-800 -z-10\"></div>\n )}\n {!isRoot && (\n <div className=\"absolute left-2.5 top-5 w-3 h-px bg-surface-200 dark:bg-surface-800 -z-10\"></div>\n )}\n\n <div className={cls(\"border rounded-md bg-white dark:bg-surface-900 text-text-primary dark:text-text-primary-dark shadow-xs relative z-10 w-[420px] max-w-full\", defaultBorderMixin)}>\n <div\n className={cls(\"px-4 py-3 flex justify-between items-center cursor-pointer select-none\")}\n onClick={() => setExpanded(!expanded)}\n >\n <div className=\"flex items-center space-x-2\">\n {hasChildren ? (\n <svg className={cls(\"w-4 h-4 text-text-secondary transition-transform\", !expanded ? \"-rotate-90\" : \"\")} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" /></svg>\n ) : (\n <div className=\"w-4 h-4\"></div>\n )}\n\n <Typography variant=\"body1\" className=\"flex items-center\">\n {plan[\"Node Type\"]}\n </Typography>\n\n {plan[\"Relation Name\"] && (\n <span className=\"font-mono text-[11px] text-text-secondary dark:text-text-secondary-dark px-2 py-0.5 rounded bg-surface-200 dark:bg-surface-800 ml-2\">\n on {plan[\"Relation Name\"]} {plan.Alias && plan.Alias !== plan[\"Relation Name\"] ? `(${plan.Alias})` : \"\"}\n </span>\n )}\n </div>\n\n <div className=\"flex space-x-6 items-center\">\n <div className=\"flex flex-col text-right\">\n <span className=\"text-[10px] uppercase text-text-disabled dark:text-text-disabled-dark font-semibold tracking-wide leading-tight mb-0.5\">Cost</span>\n <span className={cls(\"font-mono font-medium text-[13px] leading-none\", costColor)}>{cost.toFixed(2)}</span>\n </div>\n <div className=\"flex flex-col text-right\">\n <span className=\"text-[10px] uppercase text-text-disabled dark:text-text-disabled-dark font-semibold tracking-wide leading-tight mb-0.5\">Rows</span>\n <span className=\"font-mono text-[13px] text-text-secondary dark:text-text-secondary-dark leading-none\">{plan[\"Plan Rows\"]}</span>\n </div>\n </div>\n </div>\n\n <Collapse in={expanded}>\n <div className=\"px-4 py-3 border-t border-surface-200 dark:border-surface-800 text-[13px] flex flex-col gap-2\">\n <div className=\"flex items-center space-x-6\">\n <div className=\"flex items-center space-x-2\">\n <span className=\"text-text-disabled dark:text-text-disabled-dark\">Startup Cost:</span>\n <span className=\"font-mono font-medium\">{plan[\"Startup Cost\"].toFixed(2)}</span>\n </div>\n <div className=\"flex items-center space-x-2\">\n <span className=\"text-text-disabled dark:text-text-disabled-dark\">Width:</span>\n <span className=\"font-mono font-medium\">{plan[\"Plan Width\"]} bytes</span>\n </div>\n </div>\n\n {plan.Filter && (\n <div className=\"mt-1\">\n <span className=\"text-text-disabled dark:text-text-disabled-dark block mb-1\">Filter:</span>\n <code className=\"block w-full p-2 bg-surface-50 dark:bg-surface-950 border dark:border-surface-800 rounded font-mono text-[12px] truncate\">{plan.Filter}</code>\n </div>\n )}\n {plan[\"Index Cond\"] && (\n <div className=\"mt-1\">\n <span className=\"text-text-disabled dark:text-text-disabled-dark block mb-1\">Index Cond:</span>\n <code className=\"block w-full p-2 bg-surface-50 dark:bg-surface-950 border dark:border-surface-800 rounded font-mono text-[12px] truncate\">{plan[\"Index Cond\"]}</code>\n </div>\n )}\n {plan[\"Hash Cond\"] && (\n <div className=\"mt-1\">\n <span className=\"text-text-disabled dark:text-text-disabled-dark block mb-1\">Hash Cond:</span>\n <code className=\"block w-full p-2 bg-surface-50 dark:bg-surface-950 border dark:border-surface-800 rounded font-mono text-[12px] truncate\">{plan[\"Hash Cond\"]}</code>\n </div>\n )}\n </div>\n </Collapse>\n </div>\n\n {expanded && hasChildren && (\n <div className=\"flex flex-col space-y-2 mt-[-4px]\">\n {plan.Plans!.map((childPlan, idx) => (\n <ExplainVisualizer key={idx} plan={childPlan} isRoot={false} />\n ))}\n </div>\n )}\n </div>\n );\n};\n","import { IconForView } from \"@rebasepro/core\";\nimport { useStudioCollectionRegistry, useStudioSideEntityController } from \"@rebasepro/core\";\nimport React, { useState, useEffect, useCallback, useRef, useMemo } from \"react\";\nimport {\n Button,\n Paper,\n Typography,\n CircularProgress,\n cls,\n IconButton,\n InputLabel,\n Dialog,\n DialogContent,\n DialogActions,\n DialogTitle,\n TextField,\n Tooltip,\n Alert,\n Tabs,\n Tab,\n defaultBorderMixin,\n Select,\n SelectItem,\n Menu,\n MenuItem,\n ResizablePanels,\n Chip,\n CloseIcon,\n AddIcon,\n StorageIcon,\n TerminalIcon,\n EditIcon,\n MoreVertIcon,\n NotesIcon,\n PlayArrowIcon,\n VirtualTable,\n VirtualTableColumn,\n} from \"@rebasepro/ui\";\n// VirtualTableInput is conditionally loaded from CMS when available\nlet VirtualTableInput: React.ComponentType<any> | null = null;\ntry {\n // @ts-ignore — optional peer dependency\n const cms = require(\"@rebasepro/cms\");\n VirtualTableInput = cms.VirtualTableInput;\n} catch { /* CMS not available */ }\nimport { useRebaseContext, useSnackbarController, ConfirmationDialog, ErrorView, useTranslation } from \"@rebasepro/core\";\nimport { MonacoEditor } from \"./MonacoEditor\";\nimport { SQLEditorSidebar, Snippet } from \"./SQLEditorSidebar\";\nimport { parseFirst } from \"pgsql-ast-parser\";\nimport { determineTableAndPK, resolveQueryCollections, ResolvedQueryCollection } from \"../../utils/sql_utils\";\nimport { ExplainVisualizer } from \"./ExplainVisualizer\";\n\nexport interface SQLEditorColumnInfo {\n name: string;\n dataType: string;\n isPrimaryKey: boolean;\n}\n\nexport interface TableInfo {\n schemaName: string;\n tableName: string;\n columns: SQLEditorColumnInfo[];\n}\n\nconst QueryLoadingView = () => {\n const [elapsed, setElapsed] = useState(0);\n\n useEffect(() => {\n const start = Date.now();\n const interval = setInterval(() => {\n setElapsed(Date.now() - start);\n }, 100);\n return () => clearInterval(interval);\n }, []);\n\n return (\n <div className=\"flex-grow flex items-center justify-center\">\n <div className=\"text-center\">\n <CircularProgress size=\"medium\" />\n <Typography variant=\"body2\" className=\"mt-4 text-text-secondary dark:text-text-secondary-dark font-mono tracking-tight animate-pulse\">\n EXECUTING QUERY...\n </Typography>\n <div className=\"mt-2 text-xs font-mono text-text-disabled dark:text-text-disabled-dark\">\n {(elapsed / 1000).toFixed(1)}s elapsed\n </div>\n </div>\n </div>\n );\n};\n\nconst STORAGE_KEY_TABS = \"rebase_sql_tabs\";\nconst STORAGE_KEY_ACTIVE_TAB = \"rebase_sql_active_tab\";\n\nexport const SQLEditor = () => {\n const { databaseAdmin } = useRebaseContext();\n const sideEntityController = useStudioSideEntityController();\n const snackbarController = useSnackbarController();\n const collectionRegistry = useStudioCollectionRegistry();\n\n const { t } = useTranslation();\n\n // Schema state\n const [schemas, setSchemas] = useState<Record<string, TableInfo[]>>({});\n const [isSchemaLoading, setIsSchemaLoading] = useState(true);\n const schemaFetchedRef = useRef(false);\n const [schemaError, setSchemaError] = useState<string | null>(null);\n\n // Connection state\n const [selectedDatabase, setSelectedDatabase] = useState<string | undefined>(() => {\n return localStorage.getItem(\"rebase_sql_selected_db\") || undefined;\n });\n const [selectedRole, setSelectedRole] = useState<string | undefined>(() => {\n return localStorage.getItem(\"rebase_sql_selected_role\") || undefined;\n });\n\n const [availableDatabases, setAvailableDatabases] = useState<string[]>([]);\n const [availableRoles, setAvailableRoles] = useState<string[]>([]);\n const [isLoadingConfig, setIsLoadingConfig] = useState(true);\n const [connectionConfigError, setConnectionConfigError] = useState<string | null>(null);\n\n // Tabbed interface state\n const [tabs, setTabs] = useState<Array<{\n id: string,\n name: string,\n sql: string,\n database?: string,\n role?: string,\n results: Record<string, unknown>[] | null,\n loading: boolean,\n error: string | null,\n execTime: number | null,\n lastExecutedSql: string | null\n }>>(() => {\n const saved = localStorage.getItem(STORAGE_KEY_TABS);\n if (saved) {\n const parsed = JSON.parse(saved);\n return parsed.map((t: Record<string, unknown>) => ({\n ...t,\n results: null,\n loading: false,\n error: null,\n execTime: null,\n lastExecutedSql: null\n }));\n }\n return [{\n id: \"1\",\n name: \"Query 1\",\n sql: \"SELECT * FROM \",\n database: localStorage.getItem(\"rebase_sql_selected_db\") || undefined,\n role: localStorage.getItem(\"rebase_sql_selected_role\") || undefined,\n results: null,\n loading: false,\n error: null,\n execTime: null,\n lastExecutedSql: null\n }];\n });\n const [activeTabId, setActiveTabId] = useState<string>(() => {\n return localStorage.getItem(STORAGE_KEY_ACTIVE_TAB) || \"1\";\n });\n\n const activeTab = tabs.find(t => t.id === activeTabId) || tabs[0];\n\n // Helper to update active tab state\n const updateActiveTab = useCallback((update: Partial<typeof activeTab>) => {\n setTabs(prev => prev.map(t => t.id === activeTabId ? { ...t, ...update } : t));\n }, [activeTabId]);\n\n const sql = activeTab.sql;\n const results = activeTab.results;\n const loading = activeTab.loading;\n const error = activeTab.error;\n const execTime = activeTab.execTime;\n\n const setSql = (newSql: string) => updateActiveTab({ sql: newSql });\n const setResults = (newResults: Record<string, unknown>[] | null) => updateActiveTab({ results: newResults });\n const setLoading = (newLoading: boolean) => updateActiveTab({ loading: newLoading });\n const setError = (newError: string | null) => updateActiveTab({ error: newError });\n\n useEffect(() => {\n let mounted = true;\n const fetchConnectionConfig = async () => {\n if (!databaseAdmin?.fetchAvailableDatabases || !databaseAdmin?.fetchAvailableRoles) {\n setConnectionConfigError(t(\"studio_sql_sql_not_supported\"));\n setIsLoadingConfig(false);\n return;\n }\n\n try {\n const [dbs, roles, currentDbFromApi] = await Promise.all([\n databaseAdmin.fetchAvailableDatabases(),\n databaseAdmin.fetchAvailableRoles(),\n typeof databaseAdmin?.fetchCurrentDatabase === \"function\" ? databaseAdmin.fetchCurrentDatabase() : Promise.resolve(undefined)\n ]);\n\n if (mounted) {\n setAvailableDatabases(dbs);\n setAvailableRoles(roles);\n\n const loadedDb = localStorage.getItem(\"rebase_sql_selected_db\") || undefined;\n const loadedRole = localStorage.getItem(\"rebase_sql_selected_role\") || undefined;\n\n let initialActiveTabId = localStorage.getItem(STORAGE_KEY_ACTIVE_TAB) || \"1\";\n let initialTabs: any[] = [];\n try {\n const savedTabs = localStorage.getItem(STORAGE_KEY_TABS);\n if (savedTabs) initialTabs = JSON.parse(savedTabs);\n } catch (e) {}\n const currentActiveTab = initialTabs.find(t => t.id === initialActiveTabId);\n\n let actualDb = currentActiveTab?.database || loadedDb;\n if (actualDb && !dbs.includes(actualDb)) actualDb = undefined;\n if (!actualDb && dbs.length > 0) {\n actualDb = currentDbFromApi && dbs.includes(currentDbFromApi) ? currentDbFromApi : dbs[0];\n }\n\n if (actualDb) {\n setSelectedDatabase(actualDb);\n localStorage.setItem(\"rebase_sql_selected_db\", actualDb);\n setTabs(prev => prev.map(t => t.id === initialActiveTabId && !t.database ? { ...t, database: actualDb } : t));\n }\n\n let actualRole = currentActiveTab?.role || loadedRole;\n if (actualRole && !roles.includes(actualRole)) actualRole = undefined;\n if (!actualRole && roles.length > 0) {\n actualRole = roles.includes(\"postgres\") ? \"postgres\" : roles[0];\n }\n\n if (actualRole) {\n setSelectedRole(actualRole);\n localStorage.setItem(\"rebase_sql_selected_role\", actualRole);\n setTabs(prev => prev.map(t => t.id === initialActiveTabId && !t.role ? { ...t, role: actualRole } : t));\n }\n }\n } catch (err: unknown) {\n console.error(\"Failed to fetch databases or roles:\", err);\n if (mounted) {\n const message = err instanceof Error ? err.message : String(err);\n setConnectionConfigError(t(\"studio_sql_fetch_error\", { message }));\n }\n } finally {\n if (mounted) {\n setIsLoadingConfig(false);\n }\n }\n };\n\n fetchConnectionConfig();\n\n return () => { mounted = false; };\n }, [databaseAdmin]);\n\n const handleDatabaseChange = (db: string, tabId?: string) => {\n setSelectedDatabase(db);\n localStorage.setItem(\"rebase_sql_selected_db\", db);\n setTabs(prev => prev.map(t => t.id === (tabId || activeTabId) ? { ...t, database: db } : t));\n // Reset so the schema will be re-fetched for the new database\n schemaFetchedRef.current = false;\n };\n\n const handleRoleChange = (role: string, tabId?: string) => {\n setSelectedRole(role);\n localStorage.setItem(\"rebase_sql_selected_role\", role);\n setTabs(prev => prev.map(t => t.id === (tabId || activeTabId) ? { ...t, role } : t));\n };\n\n const handleTabChange = useCallback((newTabId: string) => {\n setActiveTabId(newTabId);\n const newTab = tabs.find(t => t.id === newTabId);\n if (newTab) {\n if (newTab.database && newTab.database !== selectedDatabase) {\n setSelectedDatabase(newTab.database);\n localStorage.setItem(\"rebase_sql_selected_db\", newTab.database);\n schemaFetchedRef.current = false;\n } else if (!newTab.database && selectedDatabase) {\n setTabs(prev => prev.map(t => t.id === newTabId ? { ...t, database: selectedDatabase } : t));\n }\n\n if (newTab.role && newTab.role !== selectedRole) {\n setSelectedRole(newTab.role);\n localStorage.setItem(\"rebase_sql_selected_role\", newTab.role);\n } else if (!newTab.role && selectedRole) {\n setTabs(prev => prev.map(t => t.id === newTabId ? { ...t, role: selectedRole } : t));\n }\n }\n }, [tabs, selectedDatabase, selectedRole]);\n\n const fetchSchema = useCallback(async () => {\n if (!databaseAdmin?.executeSql) {\n setSchemaError(t(\"studio_sql_sql_not_supported\"));\n setIsSchemaLoading(false);\n return;\n }\n\n setIsSchemaLoading(true);\n setSchemaError(null);\n try {\n const sql = `\n SELECT \n c.table_schema as schema, \n c.table_name as \"table\", \n c.column_name as \"column\",\n c.data_type as \"data_type\",\n CASE WHEN kcu.column_name IS NOT NULL THEN true ELSE false END as \"is_pk\"\n FROM \n information_schema.columns c\n LEFT JOIN information_schema.table_constraints tc\n ON tc.table_schema = c.table_schema \n AND tc.table_name = c.table_name \n AND tc.constraint_type = 'PRIMARY KEY'\n LEFT JOIN information_schema.key_column_usage kcu\n ON kcu.constraint_name = tc.constraint_name\n AND kcu.table_schema = tc.table_schema\n AND kcu.table_name = tc.table_name\n AND kcu.column_name = c.column_name\n WHERE \n c.table_schema NOT IN ('information_schema', 'pg_catalog')\n ORDER BY \n c.table_schema, c.table_name, c.ordinal_position;\n `;\n // Pass the selected database so schema introspection targets the right DB.\n const result = await databaseAdmin!.executeSql!(sql, { database: selectedDatabase });\n\n const processGrouped = (data: Record<string, unknown>[]) => {\n const grouped = data.reduce((acc: Record<string, TableInfo[]>, curr: Record<string, unknown>) => {\n const schema = (curr.schema || curr.SCHEMA || curr.table_schema || \"public\") as string;\n const table = (curr.table || curr.TABLE || curr.table_name) as string;\n const column = (curr.column || curr.COLUMN || curr.column_name) as string;\n const dataType = (curr.data_type || curr.DATA_TYPE || \"\") as string;\n const isPrimaryKey = curr.is_pk === true || curr.is_pk === \"true\";\n\n if (!acc[schema]) acc[schema] = [];\n let tableInfo = acc[schema].find(t => t.tableName === table);\n if (!tableInfo) {\n tableInfo = { schemaName: schema, tableName: table, columns: [] };\n acc[schema].push(tableInfo);\n }\n tableInfo.columns.push({ name: column, dataType, isPrimaryKey });\n return acc;\n }, {});\n setSchemas(grouped);\n };\n\n if (!result || !Array.isArray(result)) {\n if (result && typeof result === \"object\" && \"rows\" in result && Array.isArray((result as { rows: Record<string, unknown>[] }).rows)) {\n processGrouped((result as { rows: Record<string, unknown>[] }).rows);\n } else {\n setSchemaError(t(\"studio_sql_unexpected_format\", { type: typeof result }));\n setSchemas({});\n }\n } else if (result.length === 0) {\n setSchemas({});\n setSchemaError(t(\"studio_sql_no_tables\"));\n } else {\n processGrouped(result);\n }\n\n schemaFetchedRef.current = true;\n } catch (e: unknown) {\n console.error(\"Schema fetch error:\", e);\n const message = e instanceof Error ? e.message : String(e);\n setSchemaError(t(\"studio_sql_schema_fetch_error\", { message }));\n } finally {\n setIsSchemaLoading(false);\n }\n }, [databaseAdmin, selectedDatabase]);\n\n useEffect(() => {\n // Fetch schema after config finishes loading, and re-fetch when the selected database changes.\n if (!isLoadingConfig && !schemaFetchedRef.current) {\n fetchSchema();\n }\n }, [fetchSchema, isLoadingConfig, selectedDatabase]);\n\n\n\n const [autoLimit, setAutoLimit] = useState(true);\n const [isConfirmDialogOpen, setIsConfirmDialogOpen] = useState(false);\n const [pendingAction, setPendingAction] = useState<(() => void) | null>(null);\n\n // Inline editing state\n const [editingCell, setEditingCell] = useState<{ rowIndex: number, columnKey: string, initialValue: unknown } | null>(null);\n\n const handleDoubleClick = useCallback((rowIndex: number, columnKey: string, initialValue: unknown, rowData: Record<string, unknown>) => {\n if (!activeTab.lastExecutedSql) {\n snackbarController.open({\n type: \"error\",\n message: t(\"studio_sql_cannot_edit_missing_query\")\n });\n return;\n }\n\n const resolution = determineTableAndPK(activeTab.lastExecutedSql, columnKey, schemas);\n\n if (resolution.error || !resolution.primaryKeys || resolution.primaryKeys.length === 0) {\n snackbarController.open({\n type: \"error\",\n message: resolution.error || t(\"studio_sql_cannot_resolve_table\")\n });\n return;\n }\n\n // Check all PK values are present in the row\n const missingPKs = resolution.primaryKeys.filter(\n pk => rowData[pk.resultColumn] === undefined || rowData[pk.resultColumn] === null\n );\n if (missingPKs.length > 0) {\n snackbarController.open({\n type: \"error\",\n message: t(\"studio_sql_missing_pk\", { columns: missingPKs.map(pk => `\"${pk.resultColumn}\"`).join(\", \") })\n });\n return;\n }\n\n setEditingCell({ rowIndex, columnKey, initialValue });\n }, [activeTab.lastExecutedSql, schemas, snackbarController]);\n\n const handleCellSave = useCallback(async (newValue: string | null, rowData: Record<string, unknown>, columnKey: string, rowIndex: number) => {\n if (!editingCell || !activeTab.lastExecutedSql) return;\n\n setEditingCell(null); // Optimistically close\n\n if (newValue === editingCell.initialValue) return;\n\n const resolution = determineTableAndPK(activeTab.lastExecutedSql, columnKey, schemas);\n if (resolution.error || !resolution.tableName || !resolution.primaryKeys || resolution.primaryKeys.length === 0) {\n snackbarController.open({ type: \"error\", message: resolution.error || \"Resolution failed.\" });\n return;\n }\n\n const tableName = resolution.tableName;\n\n const formatValue = (val: unknown) => {\n if (val === null || val === undefined) return \"NULL\";\n if (typeof val === \"number\") return val;\n if (typeof val === \"boolean\") return val ? \"TRUE\" : \"FALSE\";\n return `'${String(val).replace(/'/g, \"''\")}'`;\n };\n\n // Resolve the actual DB column name for the edited column (may differ from the result alias)\n // e.g. if the query has `a.name AS author_name`, columnKey = \"author_name\" but DB column = \"name\"\n const resolveDbColumnName = (resultColKey: string): string => {\n try {\n const ast = parseFirst(activeTab.lastExecutedSql!);\n if (ast.type === \"select\" && ast.columns) {\n for (const col of ast.columns) {\n if (col.expr?.type === \"ref\") {\n const alias = col.alias?.name;\n const colName = col.expr.name;\n if (alias === resultColKey || (!alias && colName === resultColKey)) {\n return colName;\n }\n }\n }\n }\n } catch { /* fall back to columnKey */ }\n return resultColKey;\n };\n\n const dbColumnName = resolveDbColumnName(columnKey);\n\n // Build composite WHERE clause\n const whereConditions = resolution.primaryKeys.map(\n pk => `\"${pk.dbColumn}\" = ${formatValue(rowData[pk.resultColumn])}`\n ).join(\" AND \");\n\n const updateSql = `UPDATE \"${tableName}\" SET \"${dbColumnName}\" = ${formatValue(newValue)} WHERE ${whereConditions};`;\n\n try {\n if (databaseAdmin?.executeSql) {\n await databaseAdmin.executeSql(updateSql, { database: selectedDatabase, role: selectedRole });\n\n const newResults = [...(activeTab.results || [])];\n if (newResults[rowIndex]) {\n newResults[rowIndex] = { ...newResults[rowIndex], [columnKey]: newValue };\n }\n updateActiveTab({ results: newResults });\n\n snackbarController.open({\n type: \"success\",\n message: t(\"studio_sql_row_updated\")\n });\n }\n } catch (e: unknown) {\n snackbarController.open({\n type: \"error\",\n message: t(\"studio_sql_update_failed\", { message: e instanceof Error ? e.message : String(e) })\n });\n }\n }, [editingCell, schemas, activeTab.lastExecutedSql, activeTab.results, databaseAdmin, updateActiveTab, snackbarController, selectedDatabase, selectedRole]);\n\n const [columnWidths, setColumnWidths] = useState<Record<string, Record<string, number>>>(() => {\n const saved = localStorage.getItem(\"rebase_sql_column_widths\");\n return saved ? JSON.parse(saved) : {};\n });\n const [snippets, setSnippets] = useState<Snippet[]>([]);\n const [history, setHistory] = useState<string[]>([]);\n const [isSaveDialogOpen, setIsSaveDialogOpen] = useState(false);\n const [newSnippetName, setNewSnippetName] = useState(\"\");\n\n // Load from local storage\n useEffect(() => {\n const savedSnippets = localStorage.getItem(\"rebase_sql_snippets\");\n if (savedSnippets) setSnippets(JSON.parse(savedSnippets));\n\n const savedHistory = localStorage.getItem(\"rebase_sql_history\");\n if (savedHistory) setHistory(JSON.parse(savedHistory));\n }, []);\n\n // Save tabs and active tab to local storage\n useEffect(() => {\n const sanitizedTabs = tabs.map(t => ({\n id: t.id,\n name: t.name,\n sql: t.sql,\n database: t.database,\n role: t.role,\n }));\n localStorage.setItem(STORAGE_KEY_TABS, JSON.stringify(sanitizedTabs));\n }, [tabs]);\n\n useEffect(() => {\n localStorage.setItem(STORAGE_KEY_ACTIVE_TAB, activeTabId);\n }, [activeTabId]);\n\n const saveSnippets = (newSnippets: Snippet[]) => {\n setSnippets(newSnippets);\n localStorage.setItem(\"rebase_sql_snippets\", JSON.stringify(newSnippets));\n };\n\n const saveHistory = (newHistory: string[]) => {\n setHistory(newHistory);\n localStorage.setItem(\"rebase_sql_history\", JSON.stringify(newHistory.slice(-50)));\n };\n\n const handleDeleteSnippet = (id: string) => {\n saveSnippets(snippets.filter(s => s.id !== id));\n };\n\n const handleAddTab = () => {\n const newId = Math.random().toString(36).substring(2, 9);\n\n // Find the next available query number\n let maxNumber = 0;\n tabs.forEach(tab => {\n const match = tab.name.match(/^Query (\\d+)$/);\n if (match) {\n const num = parseInt(match[1], 10);\n if (num > maxNumber) maxNumber = num;\n }\n });\n const name = `Query ${maxNumber + 1}`;\n setTabs(prev => [...prev, {\n id: newId,\n name,\n sql: \"SELECT * FROM \",\n database: selectedDatabase,\n role: selectedRole,\n results: null,\n loading: false,\n error: null,\n execTime: null,\n lastExecutedSql: null\n }]);\n setActiveTabId(newId);\n };\n\n const handleCloseTab = (id: string, e: React.MouseEvent) => {\n e.stopPropagation();\n if (tabs.length === 1) return;\n\n const tabIndex = tabs.findIndex(t => t.id === id);\n const newTabs = tabs.filter(t => t.id !== id);\n setTabs(newTabs);\n\n if (activeTabId === id) {\n // Find a new active tab: the one at the same index, or the last one if we closed the last\n const nextIndex = Math.min(tabIndex, newTabs.length - 1);\n if (newTabs[nextIndex]) {\n setActiveTabId(newTabs[nextIndex].id);\n }\n }\n };\n\n const handleColumnResize = useCallback(({ key, width }: { key: string, width: number }) => {\n setColumnWidths(prev => {\n const newWidths = {\n ...prev,\n [activeTab.sql]: {\n ...(prev[activeTab.sql] || {}),\n [key]: width\n }\n };\n localStorage.setItem(\"rebase_sql_column_widths\", JSON.stringify(newWidths));\n return newWidths;\n });\n }, [activeTab.sql]);\n\n const handlePrettify = () => {\n // Simple formatting for now\n const formatted = activeTab.sql\n .replace(/\\s+/g, \" \")\n .replace(/\\s?,\\s?/g, \", \")\n .replace(/\\s?=\\s?/g, \" = \")\n .trim();\n setSql(formatted);\n };\n\n const handleExplain = async () => {\n const explainSql = `EXPLAIN (FORMAT JSON, ANALYZE) ${activeTab.sql}`;\n updateActiveTab({ loading: true, error: null, results: null });\n const start = performance.now();\n try {\n if (databaseAdmin?.executeSql) {\n const result = await databaseAdmin.executeSql(explainSql, { database: selectedDatabase, role: selectedRole });\n updateActiveTab({ results: result, execTime: Math.round(performance.now() - start) });\n }\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : String(e);\n updateActiveTab({ error: message || t(\"studio_sql_error_explaining\") });\n } finally {\n updateActiveTab({ loading: false });\n }\n };\n\n const executeRun = useCallback(async (sqlOverride?: string) => {\n let sqlToRun = sqlOverride || activeTab.sql;\n if (autoLimit && sqlToRun.toUpperCase().includes(\"SELECT\") && !sqlToRun.toUpperCase().includes(\"LIMIT\")) {\n sqlToRun = `${sqlToRun.trim()} LIMIT 1000`;\n }\n\n updateActiveTab({ loading: true, error: null, results: null });\n const start = performance.now();\n\n try {\n if (databaseAdmin?.executeSql) {\n const result = await databaseAdmin.executeSql(sqlToRun, { database: selectedDatabase, role: selectedRole });\n updateActiveTab({\n results: result,\n execTime: Math.round(performance.now() - start),\n lastExecutedSql: sqlToRun\n });\n\n if (history[history.length - 1] !== activeTab.sql) {\n saveHistory([...history, activeTab.sql]);\n }\n } else {\n updateActiveTab({ error: t(\"studio_sql_execution_not_supported\") });\n }\n } catch (e: unknown) {\n const message = e instanceof Error ? e.message : String(e);\n updateActiveTab({ error: message || t(\"studio_sql_error_executing\") });\n } finally {\n updateActiveTab({ loading: false });\n }\n }, [activeTab.sql, autoLimit, databaseAdmin, history, updateActiveTab]);\n\n const handleRun = useCallback(async (selectedText?: string) => {\n const sqlTarget = selectedText || activeTab.sql;\n if (!sqlTarget.trim()) return;\n\n // Destructive operation check\n const destructiveKeywords = [\"DELETE\", \"DROP\", \"TRUNCATE\", \"UPDATE\"];\n const hasDestructive = destructiveKeywords.some(kw => sqlTarget.toUpperCase().includes(kw));\n const hasWhere = sqlTarget.toUpperCase().includes(\"WHERE\");\n\n if (hasDestructive && (!hasWhere || sqlTarget.toUpperCase().includes(\"DROP\") || sqlTarget.toUpperCase().includes(\"TRUNCATE\"))) {\n setPendingAction(() => () => executeRun(selectedText));\n setIsConfirmDialogOpen(true);\n return;\n }\n\n executeRun(selectedText);\n }, [activeTab.sql, executeRun]);\n\n // Global keybindings\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if ((e.metaKey || e.ctrlKey) && e.key === \"Enter\") {\n // If we are in an input or textarea (except the code editor which handles its own), we might not want to run\n const activeElement = document.activeElement;\n const isInput = activeElement?.tagName === \"INPUT\" || activeElement?.tagName === \"TEXTAREA\";\n // If it's the monaco editor textarea, it's fine, let's trigger handleRun\n // Actually the monaco editor already has its own action, so we don't need a global one IF focused in monaco.\n // But wait, if we have both, it might run twice.\n // Let's check if we're focused in monaco.\n const isMonaco = activeElement?.className?.includes(\"monaco-mouse-cursor-text\");\n\n if (!isMonaco && !isInput) {\n e.preventDefault();\n handleRun();\n }\n }\n };\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [handleRun]);\n\n const handleSaveSnippet = () => {\n if (!newSnippetName.trim() || !sql.trim()) return;\n\n const newSnippet: Snippet = {\n id: Math.random().toString(36).substring(2, 9),\n name: newSnippetName,\n sql: sql,\n createdAt: Date.now()\n };\n\n saveSnippets([...snippets, newSnippet]);\n setNewSnippetName(\"\");\n setIsSaveDialogOpen(false);\n snackbarController.open({\n type: \"success\",\n message: t(\"studio_sql_snippet_saved\", { name: newSnippetName })\n });\n };\n\n const handleExportCSV = () => {\n if (!results || results.length === 0) return;\n\n const headers = Object.keys(results[0]).join(\",\");\n const rows = results.map(row =>\n Object.values(row).map(val => {\n const str = String(val);\n return str.includes(\",\") ? `\"${str}\"` : str;\n }).join(\",\")\n );\n const csv = [headers, ...rows].join(\"\\n\");\n const blob = new Blob([csv], { type: \"text/csv\" });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `query_results_${new Date().toISOString().slice(0, 19)}.csv`;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n\n const handleExportJSON = () => {\n if (!results || results.length === 0) return;\n\n const json = JSON.stringify(results, null, 2);\n const blob = new Blob([json], { type: \"application/json\" });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `query_results_${new Date().toISOString().slice(0, 19)}.json`;\n a.click();\n window.URL.revokeObjectURL(url);\n };\n\n const handleExportMarkdown = () => {\n if (!results || results.length === 0) return;\n\n const headers = Object.keys(results[0]);\n const headerRow = `| ${headers.join(\" | \")} |`;\n const dividerRow = `| ${headers.map(() => \"---\").join(\" | \")} |`;\n const dataRows = results.map(row =>\n `| ${headers.map(header => {\n const val = row[header];\n if (val === null) return \"null\";\n if (val === undefined) return \"\";\n // Replace pipes and newlines to avoid breaking the markdown table\n return String(val).replace(/\\|/g, \"\\\\|\").replace(/\\n/g, \" \");\n }).join(\" | \")} |`\n );\n\n const markdown = [headerRow, dividerRow, ...dataRows].join(\"\\n\");\n navigator.clipboard.writeText(markdown).then(() => {\n snackbarController.open({\n type: \"success\",\n message: t(\"studio_sql_markdown_copied\")\n });\n }).catch(() => {\n snackbarController.open({\n type: \"error\",\n message: t(\"studio_sql_markdown_copy_failed\")\n });\n });\n };\n\n const renderResults = () => {\n if (loading) {\n return (\n <div className=\"flex-grow flex items-center justify-center\">\n <div className=\"text-center\">\n <CircularProgress size=\"medium\" />\n <Typography variant=\"body2\" className=\"mt-4 text-text-secondary dark:text-text-secondary-dark font-mono tracking-tight animate-pulse\">{t(\"studio_sql_executing_query\")}</Typography>\n </div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"flex-grow flex items-center justify-center p-6 overflow-auto\">\n <ErrorView title={t(\"studio_sql_query_error\")} error={error} />\n </div>\n );\n }\n\n if (!results) {\n return (\n <div className=\"flex-grow flex items-center justify-center text-text-disabled dark:text-text-disabled-dark\">\n <div className=\"text-center\">\n <svg className=\"w-12 h-12 mx-auto mb-4 opacity-50\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1} d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" /></svg>\n <Typography variant=\"body2\">{t(\"studio_sql_run_query_placeholder\")}</Typography>\n </div>\n </div>\n );\n }\n\n // Check for EXPLAIN (FORMAT JSON) response\n if (results.length === 1 && results[0][\"QUERY PLAN\"] && Array.isArray(results[0][\"QUERY PLAN\"])) {\n try {\n const plan = results[0][\"QUERY PLAN\"][0].Plan;\n if (plan) {\n return (\n <div className=\"flex-grow overflow-auto p-4 bg-surface-50 dark:bg-surface-900 flex flex-col items-start\">\n <Typography variant=\"caption\" className=\"font-bold text-text-secondary mb-4 tracking-wider uppercase\">{t(\"studio_sql_visual_execution_plan\")}</Typography>\n <div className=\"pb-12\">\n <ExplainVisualizer plan={plan} />\n </div>\n </div>\n );\n }\n } catch (e) {\n console.warn(\"Failed to parse EXPLAIN JSON output:\", e);\n }\n }\n\n if (results.length === 0) {\n return (\n <div className=\"flex-grow p-6 flex flex-col items-center justify-center\">\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark font-mono border-b border-surface-200 dark:border-surface-800 pb-2 mb-2\">{t(\"studio_sql_success\")}</Typography>\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_sql_no_results\")}</Typography>\n </div>\n );\n }\n\n const savedWidths = columnWidths[activeTab.sql] || {};\n const resultColumnKeys = Object.keys(results[0]);\n\n // Compute matched collections for this query, including PK column detection\n const matchedCollections: ResolvedQueryCollection[] = (() => {\n if (!activeTab.lastExecutedSql || !collectionRegistry.collections) return [];\n try {\n return resolveQueryCollections(activeTab.lastExecutedSql, schemas, collectionRegistry.collections, resultColumnKeys);\n } catch {\n return [];\n }\n })();\n\n // Only collections that have a PK column in the result set can be opened\n const actionableCollections = matchedCollections.filter(mc => mc.pkColumn && resultColumnKeys.includes(mc.pkColumn));\n\n // For each row, determine which entities can be opened\n const getRowEntityActions = (rowData: Record<string, unknown>): { collection: ResolvedQueryCollection, entityId: string | number }[] => {\n if (!rowData) return [];\n return actionableCollections\n .filter(mc => rowData[mc.pkColumn!] != null)\n .map(mc => ({\n collection: mc,\n entityId: rowData[mc.pkColumn!] as string | number\n }));\n };\n\n // Build the columns array. If we have actionable collections, prepend a dedicated action column.\n const dataColumns: VirtualTableColumn[] = resultColumnKeys.map(key => ({\n key,\n title: key,\n width: savedWidths[key] ?? 150,\n sortable: false,\n resizable: true\n }));\n\n const columns: VirtualTableColumn[] = actionableCollections.length > 0\n ? [{ key: \"__cms_action__\", title: \"\", width: 36, sortable: false, resizable: false }, ...dataColumns]\n : dataColumns;\n\n return (\n <div className=\"flex-grow flex flex-col overflow-hidden min-h-0\">\n {/* Collection Badges Bar */}\n {actionableCollections.length > 0 && (\n <div className={cls(\"px-4 py-1.5 border-b flex items-center gap-2 shrink-0 bg-surface-50 dark:bg-surface-900\", defaultBorderMixin)}>\n <Tooltip title={t(\"studio_sql_cms_collections_tooltip\")}>\n <Typography variant=\"caption\" className=\"text-[10px] font-bold uppercase tracking-widest text-text-disabled dark:text-text-disabled-dark mr-1 shrink-0 cursor-help\">{t(\"studio_sql_cms\")}</Typography>\n </Tooltip>\n <div className=\"flex items-center gap-1.5 overflow-x-auto no-scrollbar\">\n {actionableCollections.map(mc => (\n <Tooltip key={mc.tableName} title={`Table \"${mc.tableName}\" → ${mc.collection.name} (PK: ${mc.pkColumn})`}>\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-primary/10 dark:bg-primary-dark/15 text-primary dark:text-primary-dark whitespace-nowrap border border-primary/20 dark:border-primary-dark/20\">\n {typeof mc.collection.icon === \"string\" && (\n <IconForView collectionOrView={mc.collection} className=\"text-[12px]\" />\n )}\n {mc.collection.name}\n </span>\n </Tooltip>\n ))}\n </div>\n </div>\n )}\n <div className=\"flex-grow relative h-full min-h-0 min-w-0\">\n <VirtualTable\n data={results}\n columns={columns}\n rowHeight={32}\n headerHeight={32}\n onColumnResizeEnd={handleColumnResize}\n cellRenderer={({ rowData, column, rowIndex }) => {\n // Dedicated collection action column\n if (column.key === \"__cms_action__\") {\n const rowActions = getRowEntityActions(rowData);\n if (rowActions.length === 0) {\n return <div className=\"h-full w-full\" />;\n }\n if (rowActions.length === 1) {\n const ra = rowActions[0];\n return (\n <div className=\"h-full flex items-center justify-center\">\n <Tooltip title={t(\"studio_sql_edit_entity\", { name: ra.collection.collection.name, id: String(ra.entityId) })}>\n <IconButton\n size=\"small\"\n className=\"text-surface-400 dark:text-surface-500 hover:text-surface-600 dark:hover:text-surface-300 transition-colors\"\n onClick={(e) => {\n e.stopPropagation();\n sideEntityController?.open({\n path: ra.collection.collection.slug,\n entityId: ra.entityId,\n collection: ra.collection.collection,\n updateUrl: false\n });\n }}\n >\n <EditIcon size=\"small\" />\n </IconButton>\n </Tooltip>\n </div>\n );\n }\n // Multiple matched collections (JOIN) — show a dropdown\n return (\n <div className=\"h-full flex items-center justify-center\">\n <Menu\n trigger={\n <IconButton\n size=\"small\"\n className=\"text-surface-400 dark:text-surface-500 hover:text-surface-600 dark:hover:text-surface-300 transition-colors\"\n onClick={(e) => e.stopPropagation()}\n >\n <MoreVertIcon size=\"small\" />\n </IconButton>\n }\n >\n {rowActions.map(ra => (\n <MenuItem\n key={ra.collection.tableName}\n dense\n onClick={() => {\n sideEntityController?.open({\n path: ra.collection.collection.slug,\n entityId: ra.entityId,\n collection: ra.collection.collection,\n updateUrl: false\n });\n }}\n >\n {t(\"studio_sql_edit_entity\", { name: ra.collection.collection.name, id: String(ra.entityId) })}\n </MenuItem>\n ))}\n </Menu>\n </div>\n );\n }\n\n // Regular data cell\n const isEditing = editingCell?.rowIndex === rowIndex && editingCell?.columnKey === column.key;\n const value = rowData ? rowData[column.key] : null;\n const displayValue = typeof value === \"object\" && value !== null ? JSON.stringify(value) : String(value ?? \"\");\n\n if (isEditing) {\n return (\n <div className=\"absolute inset-x-0 -inset-y-0.5 z-10 bg-surface-50 dark:bg-surface-900 border border-primary dark:border-primary-dark shadow-md overflow-y-auto max-h-[200px] flex px-2 py-1 items-start text-[13px] font-mono\">\n {VirtualTableInput ? (\n <VirtualTableInput\n error={undefined}\n value={displayValue}\n multiline={true}\n focused={true}\n disabled={false}\n updateValue={(newValue: string | null) => {\n handleCellSave(newValue, rowData, column.key, rowIndex);\n }}\n onBlur={() => setEditingCell(null)}\n />\n ) : (\n <input\n className=\"w-full bg-transparent outline-none font-mono text-[13px]\"\n defaultValue={displayValue}\n autoFocus\n onBlur={(e) => {\n handleCellSave(e.target.value || null, rowData, column.key, rowIndex);\n setEditingCell(null);\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleCellSave((e.target as HTMLInputElement).value || null, rowData, column.key, rowIndex);\n setEditingCell(null);\n }\n if (e.key === \"Escape\") setEditingCell(null);\n }}\n />\n )}\n </div>\n );\n }\n\n return (\n <div\n className=\"px-4 py-1.5 h-full flex items-center whitespace-nowrap text-[13px] text-text-primary dark:text-text-primary-dark font-mono cursor-text group/cell\"\n onDoubleClick={() => handleDoubleClick(rowIndex, column.key, displayValue, rowData)}\n >\n <div className=\"truncate flex-grow\" title={displayValue}>\n {displayValue === \"\" ? <span className=\"text-text-disabled dark:text-text-disabled-dark italic text-[11px]\">NULL</span> : displayValue}\n </div>\n </div>\n );\n }}\n />\n </div>\n\n <div className={cls(\"p-2 px-4 border-t bg-surface-50 dark:bg-surface-900 flex justify-between items-center shrink-0\", defaultBorderMixin)}>\n <div className=\"flex space-x-4\">\n <div className=\"flex items-center text-[11px]\">\n <span className=\"font-bold text-text-disabled dark:text-text-disabled-dark mr-2 uppercase tracking-tighter\">{t(\"studio_sql_rows\")}</span>\n <span className=\"font-mono text-text-secondary dark:text-text-secondary-dark\">{results.length}</span>\n </div>\n <div className=\"flex items-center text-[11px]\">\n <span className=\"font-bold text-text-disabled dark:text-text-disabled-dark mr-2 uppercase tracking-tighter\">{t(\"studio_sql_time\")}</span>\n <span className=\"font-mono text-text-secondary dark:text-text-secondary-dark\">{execTime}ms</span>\n </div>\n </div>\n <div className=\"flex gap-2 overflow-x-auto no-scrollbar items-center px-2\">\n <Button\n size=\"small\"\n variant=\"text\"\n className=\"text-[10px] uppercase font-bold text-text-secondary dark:text-text-secondary-dark whitespace-nowrap\"\n onClick={handleExportMarkdown}\n >\n {t(\"studio_sql_copy_markdown\")}\n </Button>\n <Button\n size=\"small\"\n variant=\"text\"\n className=\"text-[10px] uppercase font-bold text-text-secondary dark:text-text-secondary-dark whitespace-nowrap\"\n onClick={handleExportJSON}\n >\n {t(\"studio_sql_export_json\")}\n </Button>\n <Button\n size=\"small\"\n variant=\"text\"\n className=\"text-[10px] uppercase font-bold text-text-secondary dark:text-text-secondary-dark whitespace-nowrap\"\n onClick={handleExportCSV}\n >\n {t(\"studio_sql_export_csv\")}\n </Button>\n </div>\n </div>\n </div>\n );\n };\n\n const [sidebarSize, setSidebarSize] = useState(() => {\n try {\n const saved = localStorage.getItem(\"rebase_sql_editor_sidebar_size\");\n return saved !== null ? parseFloat(saved) : 20;\n } catch (e) {\n return 20;\n }\n });\n const [editorHeight, setEditorHeight] = useState(() => {\n try {\n const saved = localStorage.getItem(\"rebase_sql_editor_height\");\n return saved !== null ? parseFloat(saved) : 50;\n } catch (e) {\n return 50;\n }\n });\n\n useEffect(() => {\n try {\n localStorage.setItem(\"rebase_sql_editor_sidebar_size\", sidebarSize.toString());\n } catch (e) { }\n }, [sidebarSize]);\n\n useEffect(() => {\n try {\n localStorage.setItem(\"rebase_sql_editor_height\", editorHeight.toString());\n } catch (e) { }\n }, [editorHeight]);\n\n const activeSnippet = snippets.find(s => s.sql === activeTab.sql);\n const isFavorite = activeSnippet?.isFavorite || false;\n\n return (\n <div className=\"flex h-full w-full bg-white dark:bg-surface-950 overflow-hidden text-text-primary dark:text-text-primary-dark\">\n <ResizablePanels\n orientation=\"horizontal\"\n panelSizePercent={sidebarSize}\n onPanelSizeChange={setSidebarSize}\n minPanelSizePx={220}\n firstPanel={\n <SQLEditorSidebar\n snippets={snippets}\n history={history}\n onSelectSnippet={setSql}\n onTableClick={setSql}\n onDeleteSnippet={handleDeleteSnippet}\n schemas={schemas}\n isSchemaLoading={isSchemaLoading}\n schemaError={schemaError}\n onRetrySchema={fetchSchema}\n />\n }\n secondPanel={\n <div className=\"flex-grow flex flex-col min-w-0 h-full w-full\">\n {/* Toolbar */}\n <div className={cls(\"flex items-center justify-between pr-2 border-b bg-white dark:bg-surface-950\", defaultBorderMixin)}>\n <div className=\"flex items-center flex-grow overflow-hidden mr-4\">\n <div className=\"flex items-center no-scrollbar overflow-x-auto min-w-0\">\n <Tabs value={activeTabId} onValueChange={handleTabChange} variant=\"boxy\" className=\"w-[unset] flex-shrink-0\" innerClassName=\"bg-white dark:bg-surface-950\">\n {tabs.map(tab => (\n <Tab key={tab.id} value={tab.id} className=\"flex items-center justify-between group max-w-[200px]\">\n <TerminalIcon size=\"smallest\" className=\"text-blue-500 mr-1.5 flex-shrink-0\" />\n <span className=\"truncate\">{tab.name}</span>\n {tabs.length > 1 && (\n <IconButton\n size=\"smallest\"\n onClick={(e) => handleCloseTab(tab.id, e)}\n className=\"ml-1 !p-0.5 opacity-0 group-hover:opacity-100 hover:text-red-500 transition-opacity\"\n >\n <CloseIcon size=\"smallest\" />\n </IconButton>\n )}\n </Tab>\n ))}\n </Tabs>\n <IconButton\n size=\"small\"\n onClick={handleAddTab}\n className=\"ml-2 flex-shrink-0\"\n >\n <AddIcon size=\"small\" />\n </IconButton>\n </div>\n </div>\n <div className=\"flex shrink-0 items-center justify-end pr-2 gap-1.5\">\n <Tooltip title={t(\"studio_sql_format_sql\")}>\n <IconButton size=\"small\" onClick={handlePrettify} className=\"text-text-secondary hover:text-text-primary transition-colors\">\n <NotesIcon size=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Button\n variant=\"text\"\n size=\"small\"\n onClick={handleExplain}\n disabled={loading}\n >\n {t(\"studio_sql_explain\")}\n </Button>\n\n <div className=\"h-4 w-px bg-surface-200 dark:bg-surface-800 mx-1\"></div>\n\n <div className=\"flex items-center space-x-2 px-2 cursor-pointer\" onClick={() => setAutoLimit(!autoLimit)}>\n <Typography variant=\"caption\" className=\"text-[11px] text-text-secondary cursor-pointer select-none\">{t(\"studio_sql_limit_1000\")}</Typography>\n <input\n type=\"checkbox\"\n checked={autoLimit}\n onChange={(e) => setAutoLimit(e.target.checked)}\n onClick={(e) => e.stopPropagation()}\n className=\"w-3.5 h-3.5 rounded border-surface-300 text-primary focus:ring-primary cursor-pointer\"\n />\n </div>\n\n <div className=\"h-4 w-px bg-surface-200 dark:bg-surface-800 mx-1\"></div>\n\n <Tooltip title={isFavorite ? t(\"studio_sql_remove_from_favorites\") : t(\"studio_sql_add_to_favorites\")}>\n <IconButton\n size=\"small\"\n onClick={() => {\n if (!activeSnippet) {\n snackbarController.open({\n type: \"info\",\n message: t(\"studio_sql_save_first_to_favorite\")\n });\n return;\n }\n saveSnippets(snippets.map(s => s.id === activeSnippet.id ? { ...s, isFavorite: !s.isFavorite } : s));\n }}\n >\n <svg className={`w-4 h-4 ${isFavorite ? 'text-red-500 fill-current' : 'text-text-disabled dark:text-text-disabled-dark hover:text-text-primary'}`} fill={isFavorite ? \"currentColor\" : \"none\"} stroke=\"currentColor\" strokeWidth={2} viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\" /></svg>\n </IconButton>\n </Tooltip>\n\n <Button\n variant=\"text\"\n size=\"small\"\n onClick={() => setIsSaveDialogOpen(true)}\n >\n {t(\"studio_sql_save\")}\n </Button>\n\n <div className=\"h-4 w-px bg-surface-200 dark:bg-surface-800 mx-1\"></div>\n\n <Menu\n trigger={\n <Button\n size=\"small\"\n variant=\"outlined\"\n className=\"text-text-secondary dark:text-text-secondary-dark font-medium mr-2\"\n >\n <StorageIcon size=\"small\" className=\"mr-1.5 text-text-disabled dark:text-text-disabled-dark\" />\n <span className=\"max-w-[80px] truncate\">{isLoadingConfig ? \"...\" : (selectedDatabase || t(\"studio_sql_select_db\"))}</span>\n </Button>\n }\n >\n <div className=\"max-h-64 overflow-y-auto\">\n <div className=\"px-3 py-1.5 border-b border-surface-200 dark:border-surface-800 mb-1\">\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-[9px] text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_sql_database\")}</Typography>\n </div>\n {isLoadingConfig ? (\n <div className=\"flex items-center justify-center p-4\">\n <CircularProgress size=\"small\" />\n </div>\n ) : connectionConfigError ? (\n <div className=\"px-3 py-2 text-xs text-red-500 dark:text-red-400 max-w-[200px] break-words\">\n {connectionConfigError}\n </div>\n ) : (\n <>\n {availableDatabases.map(db => (\n <MenuItem key={db} dense onClick={() => handleDatabaseChange(db)} className={cls(\"text-xs\", selectedDatabase === db && \"text-primary dark:text-primary-dark\")}>\n {db}\n </MenuItem>\n ))}\n\n <div className=\"px-3 py-1.5 border-y border-surface-200 dark:border-surface-800 mb-1 mt-1\">\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-[9px] text-text-disabled dark:text-text-disabled-dark\">{t(\"studio_sql_role\")}</Typography>\n </div>\n {availableRoles.map(role => (\n <MenuItem key={role} dense onClick={() => handleRoleChange(role)} className={cls(\"text-xs\", selectedRole === role && \"text-primary dark:text-primary-dark\")}>\n {role}{role === \"postgres\" ? \" \" + t(\"studio_sql_admin\") : \"\"}\n </MenuItem>\n ))}\n </>\n )}\n </div>\n </Menu>\n\n <Button\n onClick={() => handleRun()}\n disabled={loading}\n size=\"small\"\n color=\"primary\"\n >\n {loading ? <CircularProgress size=\"smallest\" className=\"mr-2\" /> : <PlayArrowIcon size=\"small\" className=\"mr-2\" />}\n {t(\"studio_sql_run\")}\n </Button>\n </div>\n </div>\n\n <ResizablePanels\n orientation=\"vertical\"\n panelSizePercent={editorHeight}\n onPanelSizeChange={setEditorHeight}\n minPanelSizePx={100}\n firstPanel={\n <div className=\"h-full w-full relative flex flex-col min-h-0\">\n <MonacoEditor\n value={sql}\n onChange={(v) => setSql(v || \"\")}\n onRun={handleRun}\n schemas={schemas}\n />\n </div>\n }\n secondPanel={\n <div className=\"h-full w-full flex flex-col bg-surface-50 dark:bg-surface-950 overflow-hidden min-h-0\">\n <div className={cls(\"p-2 px-4 bg-surface-100 dark:bg-surface-900 border-b shrink-0 flex items-center\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold text-text-disabled dark:text-text-disabled-dark uppercase tracking-widest text-[10px]\">{t(\"studio_sql_query_results\")}</Typography>\n </div>\n <div className=\"flex-grow flex flex-col min-h-0 overflow-hidden\">\n {renderResults()}\n </div>\n </div>\n }\n />\n\n </div>\n }\n />\n\n <Dialog open={isSaveDialogOpen} onOpenChange={setIsSaveDialogOpen}>\n <DialogTitle>{t(\"studio_sql_save_snippet\")}</DialogTitle>\n <DialogContent>\n <div className=\"py-4 flex flex-col gap-4\">\n <TextField\n label={t(\"studio_sql_snippet_name\")}\n autoFocus\n placeholder={t(\"studio_sql_snippet_name_placeholder\")}\n value={newSnippetName}\n onChange={(e) => setNewSnippetName(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleSaveSnippet();\n }\n }}\n />\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark block\">{t(\"studio_sql_snippet_saved_local\")}</Typography>\n </div>\n </DialogContent>\n <DialogActions>\n <Button variant=\"text\" onClick={() => setIsSaveDialogOpen(false)}>{t(\"studio_sql_cancel\")}</Button>\n <Button onClick={handleSaveSnippet} color=\"primary\" disabled={!newSnippetName.trim()}>{t(\"studio_sql_save\")}</Button>\n </DialogActions>\n </Dialog>\n {/* Confirmation Dialog */}\n <ConfirmationDialog\n open={isConfirmDialogOpen}\n onCancel={() => setIsConfirmDialogOpen(false)}\n title={t(\"studio_sql_dangerous_operation\")}\n body={t(\"studio_sql_dangerous_operation_body\")}\n onAccept={() => {\n if (pendingAction) pendingAction();\n setIsConfirmDialogOpen(false);\n }}\n />\n </div>\n );\n};\n","import React, { useRef, useEffect } from \"react\";\nimport Editor, { Monaco, OnMount } from \"@monaco-editor/react\";\nimport type { editor } from \"monaco-editor\";\nimport { cls, defaultBorderMixin } from \"@rebasepro/ui\";\nimport { useModeController } from \"@rebasepro/core\";\n\n/** Ambient type definitions for the Rebase client SDK injected into Monaco. */\nconst REBASE_CLIENT_TYPES = `\n// ─── Rebase Client SDK Type Definitions ─────────────────────────────\n\ninterface Entity<M extends Record<string, any> = any> {\n id: string | number;\n path: string;\n values: M;\n}\n\ninterface FindParams {\n limit?: number;\n offset?: number;\n page?: number;\n where?: Record<string, string>;\n orderBy?: string;\n include?: string[];\n searchString?: string;\n}\n\ninterface FindResponse<M extends Record<string, any> = any> {\n data: Entity<M>[];\n meta: {\n total: number;\n limit: number;\n offset: number;\n hasMore: boolean;\n };\n}\n\ntype FilterOperator = \"=\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"in\" | \"not-in\" | \"array-contains\" | \"array-contains-any\" | \"is\" | \"is_not\" | \"like\" | \"ilike\";\n\ninterface QueryBuilder<M extends Record<string, any> = any> {\n where(column: keyof M & string, operator: FilterOperator, value: any): QueryBuilder<M>;\n orderBy(column: keyof M & string, direction?: \"asc\" | \"desc\"): QueryBuilder<M>;\n limit(count: number): QueryBuilder<M>;\n offset(count: number): QueryBuilder<M>;\n search(searchString: string): QueryBuilder<M>;\n find(): Promise<FindResponse<M>>;\n findOne(): Promise<Entity<M> | undefined>;\n count(): Promise<number>;\n}\n\ninterface CollectionClient<M extends Record<string, any> = any> {\n find(params?: FindParams): Promise<FindResponse<M>>;\n findById(id: string | number): Promise<Entity<M> | undefined>;\n create(data: Partial<M>, id?: string | number): Promise<Entity<M>>;\n update(id: string | number, data: Partial<M>): Promise<Entity<M>>;\n delete(id: string | number): Promise<void>;\n where(column: keyof M & string, operator: FilterOperator, value: any): QueryBuilder<M>;\n orderBy(column: keyof M & string, direction?: \"asc\" | \"desc\"): QueryBuilder<M>;\n limit(count: number): QueryBuilder<M>;\n offset(count: number): QueryBuilder<M>;\n search(searchString: string): QueryBuilder<M>;\n listen?(params: FindParams | undefined, onUpdate: (response: FindResponse<M>) => void, onError?: (error: Error) => void): () => void;\n listenById?(id: string | number, onUpdate: (entity: Entity<M> | undefined) => void, onError?: (error: Error) => void): () => void;\n count?(params?: FindParams): Promise<number>;\n}\n\ninterface RebaseUser {\n uid: string;\n email: string | null;\n displayName: string | null;\n photoURL: string | null;\n emailVerified?: boolean;\n roles?: string[];\n providerId: string;\n isAnonymous: boolean;\n}\n\ninterface RebaseSession {\n accessToken: string;\n refreshToken: string;\n expiresAt: number;\n user: RebaseUser;\n}\n\ntype AuthChangeEvent = 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED';\n\ninterface RebaseAuth {\n signInWithEmail(email: string, password: string): Promise<{ user: RebaseUser; accessToken: string; refreshToken: string }>;\n signUp(email: string, password: string, displayName?: string): Promise<{ user: RebaseUser; accessToken: string; refreshToken: string }>;\n signInWithGoogle(idToken: string): Promise<{ user: RebaseUser; accessToken: string; refreshToken: string }>;\n signOut(): Promise<void>;\n refreshSession(): Promise<RebaseSession>;\n getUser(): Promise<RebaseUser>;\n updateUser(updates: { displayName?: string; photoURL?: string }): Promise<RebaseUser>;\n resetPasswordForEmail(email: string): Promise<{ success: boolean; message: string }>;\n resetPassword(token: string, password: string): Promise<{ success: boolean; message: string }>;\n changePassword(oldPassword: string, newPassword: string): Promise<{ success: boolean; message: string }>;\n sendVerificationEmail(): Promise<{ success: boolean; message: string }>;\n verifyEmail(token: string): Promise<{ success: boolean; message: string }>;\n getSessions(): Promise<any[]>;\n revokeSession(sessionId: string): Promise<{ success: boolean }>;\n revokeAllSessions(): Promise<{ success: boolean }>;\n getSession(): RebaseSession | null;\n onAuthStateChange(callback: (event: AuthChangeEvent, session: RebaseSession | null) => void): () => void;\n}\n\ninterface AdminUser {\n uid: string;\n email: string;\n displayName: string | null;\n photoURL: string | null;\n provider: string;\n roles: string[];\n createdAt: string;\n updatedAt: string;\n}\n\ninterface RebaseRole {\n id: string;\n name: string;\n isAdmin: boolean;\n defaultPermissions: Record<string, any> | null;\n config: Record<string, any> | null;\n}\n\ninterface RebaseAdmin {\n listUsers(): Promise<{ users: AdminUser[] }>;\n getUser(userId: string): Promise<{ user: AdminUser }>;\n createUser(data: { email: string; displayName?: string; password?: string; roles?: string[] }): Promise<{ user: AdminUser }>;\n updateUser(userId: string, data: { email?: string; displayName?: string; password?: string; roles?: string[] }): Promise<{ user: AdminUser }>;\n deleteUser(userId: string): Promise<{ success: boolean }>;\n listRoles(): Promise<{ roles: RebaseRole[] }>;\n getRole(roleId: string): Promise<{ role: RebaseRole }>;\n createRole(data: { id: string; name: string; isAdmin?: boolean; defaultPermissions?: any; config?: any }): Promise<{ role: RebaseRole }>;\n updateRole(roleId: string, data: { name?: string; isAdmin?: boolean; defaultPermissions?: any; config?: any }): Promise<{ role: RebaseRole }>;\n deleteRole(roleId: string): Promise<{ success: boolean }>;\n bootstrap(): Promise<{ success: boolean; message: string; user: { uid: string; roles: string[] } }>;\n}\n\ninterface UploadFileProps {\n file: File;\n fileName?: string;\n path?: string;\n metadata?: Record<string, any>;\n bucket?: string;\n}\n\ninterface UploadFileResult {\n path: string;\n bucket?: string;\n downloadUrl?: string;\n}\n\ninterface DownloadConfig {\n url: string | null;\n fileNotFound?: boolean;\n metadata?: any;\n}\n\ninterface StorageSource {\n uploadFile(props: UploadFileProps): Promise<UploadFileResult>;\n getDownloadURL(pathOrUrl: string, bucket?: string): Promise<DownloadConfig>;\n getFile(path: string, bucket?: string): Promise<File | null>;\n deleteFile(path: string, bucket?: string): Promise<void>;\n list(path: string, options?: { bucket?: string; maxResults?: number; pageToken?: string }): Promise<any>;\n}\n\ntype RebaseData = {\n /** Look up a collection by slug. */\n collection(slug: string): CollectionClient;\n} & {\n /** Dynamic collection access — e.g. client.data.authors */\n [collectionSlug: string]: CollectionClient;\n};\n\n/**\n * The Rebase client instance. Use \\`client.data\\`, \\`client.auth\\`, \\`client.admin\\`,\n * \\`client.storage\\`, and \\`client.call()\\` to interact with your Rebase backend.\n *\n * @example\n * // Query a collection\n * const result = await client.data.products.find({ limit: 10 });\n *\n * // Create a record\n * await client.data.products.create({ name: \"Camera\", price: 299 });\n *\n * // Fluent query\n * const expensive = await client.data.products.where(\"price\", \">\", 100).orderBy(\"price\", \"desc\").limit(5).find();\n *\n * // Auth\n * const session = client.auth.getSession();\n *\n * // Admin\n * const { users } = await client.admin.listUsers();\n *\n * // Custom endpoint\n * const result = await client.call(\"/my-endpoint\", { myData: 123 });\n */\ninterface RebaseClient {\n /** Data access — dynamic collection accessors */\n data: RebaseData;\n /** Authentication methods */\n auth: RebaseAuth;\n /** User/role admin methods */\n admin: RebaseAdmin;\n /** Storage operations */\n storage?: StorageSource;\n /** Call a custom server-side endpoint */\n call<T = any>(endpoint: string, payload?: any): Promise<T>;\n /** Direct collection access (shorthand) */\n [collectionSlug: string]: any;\n}\n\n/** The pre-configured client instance. Already authenticated with the current user session. */\ndeclare const client: RebaseClient;\n\n/** Execution context with user and collection information. */\ninterface JSEditorContext {\n /** The user the script is running as. */\n user: {\n uid: string;\n displayName: string | null;\n email: string | null;\n roles?: string[];\n } | null;\n /** Registered collections with their property names. */\n collections: Array<{\n slug: string;\n name: string;\n properties: string[];\n }>;\n}\n\n/** Execution context — contains info about the selected user and registered collections. */\ndeclare const context: JSEditorContext;\n`;\n\nexport type CollectionInfo = {\n slug: string;\n name: string;\n properties: string[];\n};\n\nexport type JSMonacoEditorProps = {\n value: string;\n onChange: (value: string | undefined) => void;\n onRun?: (selectedText?: string) => void;\n className?: string;\n readOnly?: boolean;\n autoFocus?: boolean;\n /** Collection slugs for basic autocomplete */\n collectionSlugs?: string[];\n /** Full collection info with property names for richer type generation */\n collections?: CollectionInfo[];\n};\n\nexport const JSMonacoEditor = ({\n value,\n onChange,\n onRun,\n className,\n readOnly = false,\n autoFocus = true,\n collectionSlugs = [],\n collections = []\n}: JSMonacoEditorProps) => {\n const { mode } = useModeController();\n const editorRef = useRef<editor.IStandaloneCodeEditor | null>(null);\n const monacoRef = useRef<Monaco | null>(null);\n const onRunRef = useRef(onRun);\n onRunRef.current = onRun;\n const typesRegisteredRef = useRef(false);\n\n const handleEditorOnMount: OnMount = (editorInstance, monaco) => {\n editorRef.current = editorInstance;\n monacoRef.current = monaco;\n\n // Register Cmd/Ctrl+Enter to run\n editorInstance.addAction({\n id: \"run-script\",\n label: \"Run Script\",\n keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter],\n contextMenuGroupId: \"operation\",\n contextMenuOrder: 0,\n run: () => {\n if (onRunRef.current) {\n const selection = editorInstance.getSelection();\n let selectedText: string | undefined;\n if (selection && !selection.isEmpty()) {\n selectedText = editorInstance.getModel()?.getValueInRange(selection)?.trim();\n }\n onRunRef.current(selectedText || undefined);\n }\n },\n });\n\n // Configure TypeScript/JavaScript defaults for richer completion\n if (!typesRegisteredRef.current) {\n typesRegisteredRef.current = true;\n\n // Configure TS compiler for modern JS with top-level await\n // Note: cast through `any` because the bundled type stubs mark\n // `monaco.languages.typescript` as deprecated while the runtime\n // API is fully functional.\n const ts = (monaco.languages as any).typescript;\n ts.typescriptDefaults.setCompilerOptions({\n target: ts.ScriptTarget.ESNext,\n module: ts.ModuleKind.ESNext,\n allowJs: true,\n checkJs: false,\n strict: false,\n noEmit: true,\n allowNonTsExtensions: true,\n });\n\n // Suppress diagnostics that don't apply to our script context.\n // Scripts are executed inside `new AsyncFunction(...)` at runtime,\n // so top-level `await` (1375) and `return` (1108) are valid.\n ts.typescriptDefaults.setDiagnosticsOptions({\n diagnosticCodesToIgnore: [1375, 1108],\n });\n\n // Inject the Rebase Client SDK type definitions\n ts.typescriptDefaults.addExtraLib(\n REBASE_CLIENT_TYPES,\n \"ts:rebase-client.d.ts\"\n );\n\n // Generate collection-specific types from registered collections\n if (collections.length > 0) {\n const lines: string[] = [];\n for (const col of collections) {\n // Generate a typed interface for each collection\n const ifaceName = col.slug.replace(/[^a-zA-Z0-9_]/g, '_');\n const propsType = col.properties.length > 0\n ? `{ ${col.properties.map(p => `${p}: any`).join('; ')} }`\n : 'Record<string, any>';\n lines.push(`/** Collection: ${col.name} (${col.slug}) */`);\n lines.push(`interface ${ifaceName}_Row ${propsType}`);\n lines.push(`declare namespace client.data { const ${col.slug}: CollectionClient<${ifaceName}_Row>; }`);\n }\n ts.typescriptDefaults.addExtraLib(\n lines.join('\\n'),\n 'ts:rebase-collections.d.ts'\n );\n } else if (collectionSlugs.length > 0) {\n // Fallback: just slug names without property info\n const collectionHints = collectionSlugs.map(slug =>\n `/** Collection: ${slug} */\\ndeclare namespace client.data { const ${slug}: CollectionClient; }`\n ).join('\\n');\n ts.typescriptDefaults.addExtraLib(\n collectionHints,\n 'ts:rebase-collections.d.ts'\n );\n }\n }\n\n if (autoFocus) {\n editorInstance.focus();\n }\n };\n\n return (\n <div className={cls(\"relative w-full h-full overflow-hidden\", className)}>\n <Editor\n height=\"100%\"\n defaultLanguage=\"typescript\"\n path=\"rebase-script.ts\"\n value={value}\n onChange={onChange}\n onMount={handleEditorOnMount}\n theme={mode === \"dark\" ? \"vs-dark\" : \"vs\"}\n options={{\n minimap: { enabled: false },\n fontSize: 14,\n lineNumbers: \"on\",\n scrollBeyondLastLine: false,\n automaticLayout: true,\n readOnly,\n tabSize: 2,\n wordWrap: \"on\",\n suggestOnTriggerCharacters: true,\n quickSuggestions: true,\n parameterHints: { enabled: true },\n }}\n />\n </div>\n );\n};\n","import React, { useState } from \"react\";\nimport {\n Typography,\n cls,\n defaultBorderMixin,\n Tabs,\n Tab,\n Tooltip,\n IconButton,\n AddIcon,\n DeleteIcon\n} from \"@rebasepro/ui\";\n\nexport interface JSSnippet {\n id: string;\n name: string;\n code: string;\n createdAt: number;\n isFavorite?: boolean;\n}\n\ninterface CollectionInfo {\n slug: string;\n properties: string[];\n}\n\ninterface JSEditorSidebarProps {\n collections: CollectionInfo[];\n snippets: JSSnippet[];\n history: string[];\n onSelectSnippet: (code: string) => void;\n onDeleteSnippet: (id: string) => void;\n onInsertCode: (code: string) => void;\n}\n\nconst QUICK_REFERENCE: { label: string; code: string; description: string }[] = [\n {\n label: \"Find all\",\n code: `const result = await client.data.collection(\"COLLECTION\").find({ limit: 20 });\\nreturn result;`,\n description: \"Fetch records with pagination\"\n },\n {\n label: \"Find by ID\",\n code: `const item = await client.data.collection(\"COLLECTION\").findById(\"ID\");\\nreturn item;`,\n description: \"Fetch a single record\"\n },\n {\n label: \"Create\",\n code: `const created = await client.data.collection(\"COLLECTION\").create({\\n // your fields here\\n});\\nreturn created;`,\n description: \"Insert a new record\"\n },\n {\n label: \"Update\",\n code: `const updated = await client.data.collection(\"COLLECTION\").update(\"ID\", {\\n // fields to update\\n});\\nreturn updated;`,\n description: \"Update an existing record\"\n },\n {\n label: \"Delete\",\n code: `await client.data.collection(\"COLLECTION\").delete(\"ID\");\\nreturn { success: true };`,\n description: \"Delete a record\"\n },\n {\n label: \"Fluent query\",\n code: `const result = await client.data.collection(\"COLLECTION\")\\n .where(\"field\", \">\", value)\\n .orderBy(\"field\", \"desc\")\\n .limit(10)\\n .find();\\nreturn result;`,\n description: \"Chained query builder\"\n },\n {\n label: \"Auth: Current session\",\n code: `const session = client.auth.getSession();\\nreturn session;`,\n description: \"Get current auth session\"\n },\n {\n label: \"Admin: List users\",\n code: `const { users } = await client.admin.listUsers();\\nreturn users;`,\n description: \"List all registered users\"\n },\n {\n label: \"Custom endpoint\",\n code: `const result = await client.call(\"/my-endpoint\", { key: \"value\" });\\nreturn result;`,\n description: \"Call a custom API endpoint\"\n }\n];\n\nexport const JSEditorSidebar = ({\n collections,\n snippets,\n history,\n onSelectSnippet,\n onDeleteSnippet,\n onInsertCode,\n}: JSEditorSidebarProps) => {\n const [activeTab, setActiveTab] = useState<\"collections\" | \"snippets\" | \"history\" | \"reference\">(\"collections\");\n\n return (\n <div className={cls(\"flex flex-col h-full w-full bg-white dark:bg-surface-950 border-r\", defaultBorderMixin)}>\n <Tabs value={activeTab} onValueChange={(v) => setActiveTab(v as \"collections\" | \"snippets\" | \"history\" | \"reference\")} variant=\"boxy\" className=\"border-b border-surface-200 dark:border-surface-800\">\n <Tab value=\"collections\">\n <Tooltip title=\"Browse collections\">\n <span className=\"text-xs\">Collections</span>\n </Tooltip>\n </Tab>\n <Tab value=\"reference\">\n <Tooltip title=\"SDK quick reference\">\n <span className=\"text-xs\">Reference</span>\n </Tooltip>\n </Tab>\n <Tab value=\"snippets\">\n <span className=\"text-xs\">Snippets</span>\n </Tab>\n <Tab value=\"history\">\n <span className=\"text-xs\">History</span>\n </Tab>\n </Tabs>\n\n <div className=\"flex-grow overflow-hidden relative\">\n {/* Collections browser */}\n {activeTab === \"collections\" && (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">\n Collections\n </Typography>\n </div>\n <div className=\"flex-grow overflow-y-auto p-1 space-y-1 no-scrollbar\">\n {collections.length === 0 ? (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">\n No collections found\n </Typography>\n </div>\n ) : (\n collections.map(col => (\n <CollectionItem\n key={col.slug}\n collection={col}\n onInsertCode={onInsertCode}\n />\n ))\n )}\n </div>\n </div>\n )}\n\n {/* Quick reference */}\n {activeTab === \"reference\" && (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">\n SDK Reference\n </Typography>\n </div>\n <div className=\"flex-grow overflow-y-auto p-2 space-y-2 no-scrollbar\">\n {QUICK_REFERENCE.map((ref, i) => (\n <div\n key={i}\n className={cls(\n \"group p-2.5 rounded-lg border hover:border-primary/40 dark:hover:border-primary/40\",\n \"bg-white dark:bg-surface-900 transition-all cursor-pointer\",\n defaultBorderMixin\n )}\n onClick={() => onInsertCode(ref.code)}\n >\n <div className=\"flex items-center justify-between mb-1\">\n <Typography variant=\"body2\" className=\"text-text-primary dark:text-text-primary-dark font-semibold text-[13px]\">\n {ref.label}\n </Typography>\n <svg className=\"w-3.5 h-3.5 text-text-disabled group-hover:text-primary transition-colors\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" />\n </svg>\n </div>\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark text-[10px] leading-tight\">\n {ref.description}\n </Typography>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Snippets */}\n {activeTab === \"snippets\" && (() => {\n const favorites = snippets.filter(s => s.isFavorite);\n const others = snippets.filter(s => !s.isFavorite);\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">Snippets</Typography>\n </div>\n <div className=\"flex-grow overflow-y-auto p-2 space-y-2 no-scrollbar\">\n {snippets.length === 0 ? (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">\n No saved snippets yet. Use the save button to store reusable code.\n </Typography>\n </div>\n ) : (\n <>\n {favorites.length > 0 && (\n <div className=\"mb-3\">\n <Typography variant=\"caption\" className=\"text-[10px] font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark mb-2 px-1 flex items-center\">\n <svg className=\"w-3 h-3 mr-1 text-amber-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\"><path d=\"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z\" /></svg>\n Favorites\n </Typography>\n <div className=\"space-y-2\">\n {favorites.map(snippet => (\n <SnippetItem key={snippet.id} snippet={snippet} onSelect={onSelectSnippet} onDelete={onDeleteSnippet} />\n ))}\n </div>\n </div>\n )}\n {others.length > 0 && (\n <div>\n {favorites.length > 0 && (\n <Typography variant=\"caption\" className=\"text-[10px] font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark mb-2 px-1\">\n Others\n </Typography>\n )}\n <div className=\"space-y-2\">\n {others.map(snippet => (\n <SnippetItem key={snippet.id} snippet={snippet} onSelect={onSelectSnippet} onDelete={onDeleteSnippet} />\n ))}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n );\n })()}\n\n {/* History */}\n {activeTab === \"history\" && (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">History</Typography>\n </div>\n <div className=\"flex-grow overflow-y-auto p-1 space-y-1 no-scrollbar\">\n {history.length === 0 ? (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">\n No execution history yet\n </Typography>\n </div>\n ) : (\n [...history].reverse().map((code, i) => (\n <div\n key={i}\n className=\"p-2 py-1.5 rounded hover:bg-surface-100 dark:hover:bg-surface-800 cursor-pointer group transition-colors flex items-start\"\n onClick={() => onSelectSnippet(code)}\n >\n <svg className=\"w-3 h-3 mt-1 mr-2 text-text-disabled dark:text-text-disabled-dark group-hover:text-primary transition-colors flex-shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark group-hover:text-text-primary dark:group-hover:text-text-primary-dark text-[11px] line-clamp-2 leading-tight flex-grow font-mono\">\n {code.length > 120 ? code.substring(0, 120) + \"…\" : code}\n </Typography>\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\n// ─── Sub-components ──────────────────────────────────────────────────\n\nfunction CollectionItem({ collection, onInsertCode }: { collection: CollectionInfo; onInsertCode: (code: string) => void }) {\n const [expanded, setExpanded] = useState(false);\n\n return (\n <div>\n <div\n className=\"flex items-center p-1 cursor-pointer hover:bg-surface-100 dark:hover:bg-surface-800 rounded transition-colors group relative\"\n onClick={() => setExpanded(!expanded)}\n >\n <svg\n className={cls(\"w-3 h-3 mr-1 transition-transform\", expanded && \"rotate-90\")}\n fill=\"currentColor\" viewBox=\"0 0 20 20\"\n >\n <path d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" />\n </svg>\n <svg className=\"w-3.5 h-3.5 mr-1 shrink-0 text-text-disabled dark:text-text-disabled-dark\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4\" />\n </svg>\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark text-xs truncate flex-1 min-w-0\">\n {collection.slug}\n </Typography>\n <Tooltip title=\"Insert find() snippet\">\n <IconButton\n size=\"smallest\"\n className=\"opacity-0 group-hover:opacity-100 text-text-disabled hover:text-primary transition-all\"\n onClick={(e) => {\n e.stopPropagation();\n onInsertCode(`const result = await client.data.${collection.slug}.find({ limit: 20 });\\nreturn result;`);\n }}\n >\n <AddIcon size=\"smallest\" />\n </IconButton>\n </Tooltip>\n </div>\n {expanded && collection.properties.length > 0 && (\n <div className={cls(\"ml-5 mt-1 space-y-0.5 border-l\", defaultBorderMixin)}>\n {collection.properties.map(prop => (\n <div\n key={prop}\n className=\"flex items-center p-1 pl-2 hover:bg-surface-50 dark:hover:bg-surface-800 rounded-r cursor-pointer transition-colors group/prop relative min-h-[28px]\"\n onClick={() => onInsertCode(`\"${prop}\"`)}\n >\n <svg className=\"w-3 h-3 mr-1.5 text-text-disabled dark:text-text-disabled-dark shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1.5} d=\"M9 4.5v15m6-15v15m-10.5-1.5h15c.621 0 1.125-.504 1.125-1.125V5.625c0-.621-.504-1.125-1.125-1.125h-15c-.621 0-1.125.504-1.125 1.125v12.75c0 .621.504 1.125 1.125 1.125Z\" /></svg>\n <Typography variant=\"caption\" className=\"text-text-primary dark:text-text-primary-dark text-[11px] truncate flex-grow font-mono\">{prop}</Typography>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n\nfunction SnippetItem({ snippet, onSelect, onDelete }: { snippet: JSSnippet; onSelect: (code: string) => void; onDelete: (id: string) => void }) {\n return (\n <div\n className={cls(\"group p-2 rounded border hover:border-surface-400 dark:hover:border-surface-600 bg-white dark:bg-surface-900 transition-all cursor-pointer relative\", defaultBorderMixin)}\n onClick={() => onSelect(snippet.code)}\n >\n <Typography variant=\"body2\" className=\"text-text-primary dark:text-text-primary-dark font-medium text-[13px] truncate pr-6\">\n {snippet.name}\n </Typography>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[10px] block mt-1 truncate font-mono\">\n {snippet.code}\n </Typography>\n <IconButton\n size=\"smallest\"\n className=\"absolute right-1 top-1 opacity-0 group-hover:opacity-100 text-text-disabled hover:text-red-500 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n onDelete(snippet.id);\n }}\n >\n <DeleteIcon size=\"smallest\" />\n </IconButton>\n </div>\n );\n}\n","import React, { useState, useEffect, useCallback, useRef, useMemo } from \"react\";\nimport { Highlight, themes } from \"prism-react-renderer\";\nimport {\n Button,\n Typography,\n CircularProgress,\n cls,\n IconButton,\n Dialog,\n DialogContent,\n DialogActions,\n DialogTitle,\n TextField,\n Tooltip,\n defaultBorderMixin,\n ResizablePanels,\n Chip,\n Menu,\n MenuItem,\n Tabs,\n Tab,\n TerminalIcon,\n CloseIcon,\n AddIcon,\n SaveIcon,\n DownloadIcon,\n PlayArrowIcon,\n MoreVertIcon,\n EditIcon,\n VirtualTable,\n VirtualTableColumn,\n CellRendererParams,\n} from \"@rebasepro/ui\";\nimport { useStudioUrlController, useStudioCollectionRegistry, useStudioSideEntityController } from \"@rebasepro/core\";\nimport { useRebaseContext, useRebaseClient, useSnackbarController, useApiConfig, useTranslation, useModeController, ErrorView, UserSelectPopover, SelectableUser, IconForView } from \"@rebasepro/core\";\nimport { EntityCollection } from \"@rebasepro/types\";\nimport { createRebaseClient } from \"@rebasepro/client\";\nimport { JSMonacoEditor } from \"./JSMonacoEditor\";\nimport { JSEditorSidebar, JSSnippet } from \"./JSEditorSidebar\";\n\n// ─── Types ───────────────────────────────────────────────────────────\n\ninterface ConsoleEntry {\n type: \"log\" | \"warn\" | \"error\" | \"info\";\n args: any[];\n timestamp: number;\n}\n\ninterface ExecutionResult {\n value: any;\n console: ConsoleEntry[];\n duration: number;\n error?: string;\n timestamp: number;\n}\n\ninterface EditorTab {\n id: string;\n name: string;\n code: string;\n}\n\n// SelectedUser is now SelectableUser from @rebasepro/core\n\n// ─── Constants ───────────────────────────────────────────────────────\n\nconst STORAGE_PREFIX = \"rebase_js_\";\nconst MAX_HISTORY = 50;\n\nconst DEFAULT_CODE = `// Available: client (RebaseClient)\n// Press Cmd+Enter (Ctrl+Enter) to run\n//\n// Examples:\n// const result = await client.data.collection(\"your_collection\").find({ limit: 10 });\n// const users = await client.admin.listUsers();\n// const session = client.auth.getSession();\n\nconst result = await client.data.collection(\"your_collection\").find({ limit: 10 });\nreturn result;\n`;\n\n// ─── Helpers ─────────────────────────────────────────────────────────\n\nfunction loadFromStorage<T>(key: string, fallback: T): T {\n try {\n const raw = localStorage.getItem(STORAGE_PREFIX + key);\n return raw ? JSON.parse(raw) : fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction saveToStorage<T>(key: string, value: T) {\n try {\n localStorage.setItem(STORAGE_PREFIX + key, JSON.stringify(value));\n } catch { /* quota */ }\n}\n\nfunction formatJSON(value: any): string {\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\n// ─── Helpers: Collection matching for JS results ────────────────────\n\ninterface MatchedJSCollection {\n collectionSlug: string;\n collection: EntityCollection;\n pkColumn: string;\n}\n\n/**\n * Slugs may be camelCase or kebab-case while table/slug data may also be snake_case.\n * Normalise to lowercase with underscores for comparison.\n */\nfunction normaliseSlug(slug: string): string {\n return slug\n .replace(/([a-z])([A-Z])/g, \"$1_$2\")\n .replace(/[-\\s]+/g, \"_\")\n .toLowerCase();\n}\n\n/**\n * Given the raw SDK result, try to detect which collections are present.\n * JS SDK results typically come back as `{ data: [{ id, values }] }` or plain arrays.\n * The heuristic: if the executed code contains `collection(\"<slug>\")` or `client.data.<slug>`,\n * and the result has rows with an \"id\" column, we match those slugs.\n */\nfunction detectCollectionsInResult(\n code: string,\n resultValue: any,\n collections: EntityCollection[]\n): MatchedJSCollection[] {\n if (!resultValue || !collections?.length) return [];\n\n // Extract collection slugs mentioned in the code\n const mentionedSlugs = new Set<string>();\n\n // Match: collection(\"slug\") or collection('slug')\n const collectionCallRegex = /\\.collection\\([\"']([^\"']+)[\"']\\)/g;\n let m: RegExpExecArray | null;\n while ((m = collectionCallRegex.exec(code)) !== null) {\n mentionedSlugs.add(m[1]);\n }\n\n // Match: client.data.<slug>. (dot-access pattern)\n const dotAccessRegex = /client\\.data\\.([a-zA-Z_][a-zA-Z0-9_]*)\\./g;\n while ((m = dotAccessRegex.exec(code)) !== null) {\n if (![\"collection\", \"find\", \"findById\", \"create\", \"update\", \"delete\"].includes(m[1])) {\n mentionedSlugs.add(m[1]);\n }\n }\n\n if (mentionedSlugs.size === 0) return [];\n\n // Check if result has rows with an \"id\" field\n let rows: any[] = [];\n if (resultValue?.data && Array.isArray(resultValue.data)) {\n rows = resultValue.data;\n } else if (Array.isArray(resultValue)) {\n rows = resultValue;\n }\n\n const hasId = rows.length > 0 && rows.some(r => r?.id != null);\n if (!hasId) return [];\n\n const matched: MatchedJSCollection[] = [];\n for (const slug of mentionedSlugs) {\n const normalised = normaliseSlug(slug);\n const col = collections.find(c => {\n const tableName = (c as any).table || normaliseSlug(c.slug);\n return c.slug === slug || tableName === normalised || normaliseSlug(c.slug) === normalised;\n });\n if (col) {\n matched.push({\n collectionSlug: col.slug,\n collection: col,\n pkColumn: \"id\",\n });\n }\n }\n\n return matched;\n}\n\n// ─── Main Component ─────────────────────────────────────────────────\n\nexport function JSEditor() {\n // Contexts\n const rebaseContext = useRebaseContext();\n const rebaseClient = useRebaseClient();\n const apiConfig = useApiConfig();\n const snackbar = useSnackbarController();\n const collectionRegistry = useStudioCollectionRegistry();\n const sideEntityController = useStudioSideEntityController();\n const { t } = useTranslation();\n\n // User management for the \"Run as\" picker\n const userManagement = rebaseContext.userManagement;\n const currentUser = rebaseContext.authController?.user;\n\n // State\n const [tabs, setTabs] = useState<EditorTab[]>(() =>\n loadFromStorage(\"tabs\", [{ id: \"1\", name: \"Script 1\", code: DEFAULT_CODE }])\n );\n const [activeTabId, setActiveTabId] = useState<string>(() =>\n loadFromStorage(\"activeTab\", \"1\")\n );\n const [result, setResult] = useState<ExecutionResult | null>(null);\n const [isRunning, setIsRunning] = useState(false);\n const [snippets, setSnippets] = useState<JSSnippet[]>(() =>\n loadFromStorage(\"snippets\", [])\n );\n const [history, setHistory] = useState<string[]>(() =>\n loadFromStorage(\"history\", [])\n );\n const [showSaveDialog, setShowSaveDialog] = useState(false);\n const [snippetName, setSnippetName] = useState(\"\");\n const [resultView, setResultView] = useState<\"json\" | \"table\" | \"console\">(\"json\");\n\n // \"Run as\" user state — null means \"self\" (current admin)\n const [selectedUser, setSelectedUser] = useState<SelectableUser | null>(null);\n\n const [sidebarSize, setSidebarSize] = useState<number>(() => {\n try {\n const stored = localStorage.getItem(STORAGE_PREFIX + \"sidebar_size\");\n return stored ? Number(stored) : 18;\n } catch { return 18; }\n });\n const [editorHeight, setEditorHeight] = useState<number>(() => {\n try {\n const stored = localStorage.getItem(STORAGE_PREFIX + \"editor_height\");\n return stored ? Number(stored) : 55;\n } catch { return 55; }\n });\n\n // Derived\n const activeTab = tabs.find(t => t.id === activeTabId) ?? tabs[0];\n\n // Collection info for the sidebar and Monaco\n const collectionInfos = useMemo(() => {\n const collections = collectionRegistry?.collections ?? [];\n return collections.map(col => ({\n slug: col.slug,\n name: col.name,\n properties: Object.keys(col.properties ?? {}),\n }));\n }, [collectionRegistry?.collections]);\n\n const collectionSlugs = useMemo(() => collectionInfos.map(c => c.slug), [collectionInfos]);\n\n // Users list for the picker — mapped to SelectableUser shape\n const users = useMemo((): SelectableUser[] => {\n const managed = (userManagement?.users ?? []).map(u => ({\n uid: u.uid,\n displayName: u.displayName,\n email: u.email,\n photoURL: u.photoURL,\n roles: u.roles,\n }));\n // Ensure the current user is in the list\n if (currentUser && !managed.some(u => u.uid === currentUser.uid)) {\n managed.unshift({\n uid: currentUser.uid,\n displayName: currentUser.displayName,\n email: currentUser.email,\n photoURL: currentUser.photoURL,\n roles: currentUser.roles,\n });\n }\n return managed;\n }, [userManagement?.users, currentUser]);\n\n // Current user as SelectableUser for the popover\n const currentSelectableUser = useMemo((): SelectableUser | null => {\n if (!currentUser) return null;\n return {\n uid: currentUser.uid,\n displayName: currentUser.displayName,\n email: currentUser.email,\n photoURL: currentUser.photoURL,\n roles: currentUser.roles,\n };\n }, [currentUser]);\n\n // ─── Persistence ─────────────────────────────────────────────\n\n useEffect(() => { saveToStorage(\"tabs\", tabs); }, [tabs]);\n useEffect(() => { saveToStorage(\"activeTab\", activeTabId); }, [activeTabId]);\n useEffect(() => { saveToStorage(\"snippets\", snippets); }, [snippets]);\n useEffect(() => { saveToStorage(\"history\", history); }, [history]);\n\n useEffect(() => {\n try { localStorage.setItem(STORAGE_PREFIX + \"sidebar_size\", sidebarSize.toString()); } catch { }\n }, [sidebarSize]);\n\n useEffect(() => {\n try { localStorage.setItem(STORAGE_PREFIX + \"editor_height\", editorHeight.toString()); } catch { }\n }, [editorHeight]);\n\n // ─── Tab management ──────────────────────────────────────────\n\n const updateActiveCode = useCallback((code: string | undefined) => {\n setTabs(prev => prev.map(t => t.id === activeTabId ? { ...t, code: code ?? \"\" } : t));\n }, [activeTabId]);\n\n const addTab = useCallback(() => {\n const id = String(Date.now());\n const newTab: EditorTab = { id, name: `Script ${tabs.length + 1}`, code: DEFAULT_CODE };\n setTabs(prev => [...prev, newTab]);\n setActiveTabId(id);\n }, [tabs.length]);\n\n const closeTab = useCallback((tabId: string) => {\n setTabs(prev => {\n const filtered = prev.filter(t => t.id !== tabId);\n if (filtered.length === 0) {\n const fresh = { id: String(Date.now()), name: \"Script 1\", code: DEFAULT_CODE };\n setActiveTabId(fresh.id);\n return [fresh];\n }\n if (activeTabId === tabId) {\n setActiveTabId(filtered[filtered.length - 1].id);\n }\n return filtered;\n });\n }, [activeTabId]);\n\n // ─── Create an authenticated client for execution ────────────\n\n const buildClient = useCallback(async () => {\n // If not running as another user safely reuse the application's global client.\n if (!selectedUser || (currentUser && selectedUser.uid === currentUser.uid)) {\n if (!rebaseClient) {\n throw new Error(\"Application client is not initialized.\");\n }\n return { client: rebaseClient, isScoped: false };\n }\n\n const apiUrl = apiConfig?.apiUrl;\n const getAuthToken = apiConfig?.getAuthToken;\n\n if (!apiUrl) {\n throw new Error(\"API URL not configured. Make sure apiUrl is set.\");\n }\n\n // Get the current auth token\n let token: string | undefined;\n if (getAuthToken) {\n token = (await getAuthToken()) ?? undefined;\n }\n\n if (!token) {\n throw new Error(\"No auth token available. Please sign in first.\");\n }\n\n // Create a fresh 'scoped' client. This enables us to attach custom auth later for this specific execution\n // without mutating the global client.\n const client = createRebaseClient({\n baseUrl: apiUrl,\n token,\n });\n\n return { client, isScoped: true };\n }, [apiConfig, rebaseClient, selectedUser, currentUser]);\n\n // ─── Execution engine ────────────────────────────────────────\n\n const executeCode = useCallback(async (codeOverride?: string) => {\n const code = codeOverride ?? activeTab?.code ?? \"\";\n if (!code.trim()) return;\n\n setIsRunning(true);\n setResult(null);\n\n // Add to history\n setHistory(prev => {\n const deduped = prev.filter(h => h !== code);\n return [...deduped, code].slice(-MAX_HISTORY);\n });\n\n const consoleEntries: ConsoleEntry[] = [];\n const startTime = performance.now();\n let scopedClientToCleanUp: any = null;\n\n // Capture console methods\n const originalConsole = {\n log: console.log,\n warn: console.warn,\n error: console.error,\n info: console.info,\n };\n\n const captureConsole = (type: ConsoleEntry[\"type\"]) => (...args: any[]) => {\n consoleEntries.push({ type, args, timestamp: Date.now() });\n originalConsole[type](...args);\n };\n\n try {\n console.log = captureConsole(\"log\");\n console.warn = captureConsole(\"warn\");\n console.error = captureConsole(\"error\");\n console.info = captureConsole(\"info\");\n\n // Build an authenticated client\n const { client, isScoped } = await buildClient();\n if (isScoped) {\n scopedClientToCleanUp = client;\n }\n\n // Build context object with useful info about selected user\n const context = {\n user: selectedUser ?? (currentUser ? {\n uid: currentUser.uid,\n displayName: currentUser.displayName,\n email: currentUser.email,\n roles: currentUser.roles,\n } : null),\n collections: collectionInfos,\n };\n\n // Create async function with `client` and `context` injected\n // eslint-disable-next-line no-new-func\n const AsyncFunction = Object.getPrototypeOf(async function () { }).constructor;\n const fn = new AsyncFunction(\"client\", \"context\", code);\n\n const value = await fn(client, context);\n const duration = performance.now() - startTime;\n\n setResult({\n value,\n console: consoleEntries,\n duration,\n timestamp: Date.now(),\n });\n\n // Auto-detect best view\n if (value?.data && Array.isArray(value.data)) {\n setResultView(\"table\");\n } else if (consoleEntries.length > 0 && value === undefined) {\n setResultView(\"console\");\n } else {\n setResultView(\"json\");\n }\n } catch (err: any) {\n const duration = performance.now() - startTime;\n setResult({\n value: undefined,\n console: consoleEntries,\n duration,\n error: err?.message || String(err),\n timestamp: Date.now(),\n });\n setResultView(\"json\");\n } finally {\n console.log = originalConsole.log;\n console.warn = originalConsole.warn;\n console.error = originalConsole.error;\n console.info = originalConsole.info;\n setIsRunning(false);\n\n if (scopedClientToCleanUp) {\n // Ensure we disconnect WebSockets to prevent leaking connections\n scopedClientToCleanUp.ws?.disconnect();\n }\n }\n }, [activeTab?.code, buildClient, selectedUser, currentUser, collectionInfos]);\n\n // ─── Snippet management ──────────────────────────────────────\n\n const saveSnippet = useCallback(() => {\n if (!snippetName.trim() || !activeTab?.code.trim()) return;\n const snippet: JSSnippet = {\n id: String(Date.now()),\n name: snippetName.trim(),\n code: activeTab.code,\n createdAt: Date.now(),\n };\n setSnippets(prev => [snippet, ...prev]);\n setShowSaveDialog(false);\n setSnippetName(\"\");\n snackbar.open({ type: \"success\", message: \"Snippet saved\" });\n }, [snippetName, activeTab?.code, snackbar]);\n\n const deleteSnippet = useCallback((id: string) => {\n setSnippets(prev => prev.filter(s => s.id !== id));\n }, []);\n\n // ─── Export ──────────────────────────────────────────────────\n\n const exportResult = useCallback(() => {\n if (!result?.value) return;\n const blob = new Blob([formatJSON(result.value)], { type: \"application/json\" });\n const url = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `rebase-result-${Date.now()}.json`;\n a.click();\n URL.revokeObjectURL(url);\n }, [result]);\n\n // ─── Table columns for array data ────────────────────────────\n\n const tableData = useMemo(() => {\n if (!result?.value) return { columns: [] as VirtualTableColumn[], data: [] as Record<string, unknown>[] };\n\n let rows: any[] = [];\n if (result.value?.data && Array.isArray(result.value.data)) {\n rows = result.value.data.map((entity: any) => ({\n id: entity.id,\n ...entity.values,\n ...(entity.values ? {} : entity),\n }));\n } else if (Array.isArray(result.value)) {\n rows = result.value;\n }\n\n if (rows.length === 0) return { columns: [] as VirtualTableColumn[], data: [] as Record<string, unknown>[] };\n\n const keys = new Set<string>();\n rows.slice(0, 20).forEach(row => {\n if (row && typeof row === \"object\") {\n Object.keys(row).forEach(k => keys.add(k));\n }\n });\n\n const columns: VirtualTableColumn[] = Array.from(keys).map(key => ({\n key,\n title: key,\n width: key === \"id\" ? 100 : 200,\n }));\n\n return { columns, data: rows };\n }, [result]);\n\n // ─── Matched collections for entity actions ──────────────────\n\n const matchedCollections = useMemo(() => {\n if (!result?.value || result.error) return [];\n return detectCollectionsInResult(\n activeTab?.code ?? \"\",\n result.value,\n collectionRegistry?.collections ?? []\n );\n }, [result, activeTab?.code, collectionRegistry?.collections]);\n\n const getRowEntityActions = useCallback((rowData: any): { collection: MatchedJSCollection; entityId: string | number }[] => {\n if (!rowData || matchedCollections.length === 0) return [];\n return matchedCollections\n .filter(mc => rowData[mc.pkColumn] != null)\n .map(mc => ({\n collection: mc,\n entityId: rowData[mc.pkColumn],\n }));\n }, [matchedCollections]);\n\n // ─── Export handlers ─────────────────────────────────────────\n\n const handleExportCSV = useCallback(() => {\n if (tableData.data.length === 0) return;\n const headers = tableData.columns.map(c => c.key).join(\",\");\n const rows = tableData.data.map(row =>\n tableData.columns.map(c => {\n const val = row[c.key];\n const str = val === null || val === undefined ? \"\" : String(val);\n return str.includes(\",\") ? `\"${str}\"` : str;\n }).join(\",\")\n );\n const csv = [headers, ...rows].join(\"\\n\");\n const blob = new Blob([csv], { type: \"text/csv\" });\n const url = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `js_results_${new Date().toISOString().slice(0, 19)}.csv`;\n a.click();\n URL.revokeObjectURL(url);\n }, [tableData]);\n\n const handleExportMarkdown = useCallback(() => {\n if (tableData.data.length === 0) return;\n const headers = tableData.columns.map(c => c.key);\n const headerRow = `| ${headers.join(\" | \")} |`;\n const dividerRow = `| ${headers.map(() => \"---\").join(\" | \")} |`;\n const dataRows = tableData.data.map(row =>\n `| ${headers.map(h => {\n const val = row[h];\n if (val === null || val === undefined) return \"\";\n return String(val).replace(/\\|/g, \"\\\\|\").replace(/\\n/g, \" \");\n }).join(\" | \")} |`\n );\n const markdown = [headerRow, dividerRow, ...dataRows].join(\"\\n\");\n navigator.clipboard.writeText(markdown).then(() => {\n snackbar.open({ type: \"success\", message: t(\"studio_sql_markdown_copied\") });\n }).catch(() => {\n snackbar.open({ type: \"error\", message: t(\"studio_sql_markdown_copy_failed\") });\n });\n }, [tableData, snackbar, t]);\n\n // ─── Render ──────────────────────────────────────────────────\n\n return (\n <div className=\"flex flex-col h-full w-full\">\n {/* Main content */}\n <div className=\"flex-grow overflow-hidden\">\n <ResizablePanels\n orientation=\"horizontal\"\n panelSizePercent={sidebarSize}\n onPanelSizeChange={setSidebarSize}\n minPanelSizePx={200}\n firstPanel={\n <JSEditorSidebar\n collections={collectionInfos}\n snippets={snippets}\n history={history}\n onSelectSnippet={(code) => updateActiveCode(code)}\n onDeleteSnippet={deleteSnippet}\n onInsertCode={(code) => updateActiveCode(code)}\n />\n }\n secondPanel={\n <div className=\"flex flex-col h-full overflow-hidden\">\n {/* Toolbar: matching SQL Editor layout */}\n <div className={cls(\"flex items-center justify-between pr-2 border-b bg-white dark:bg-surface-950\", defaultBorderMixin)}>\n <div className=\"flex items-center flex-grow overflow-hidden mr-4\">\n <div className=\"flex items-center no-scrollbar overflow-x-auto min-w-0\">\n <Tabs value={activeTabId} onValueChange={setActiveTabId} variant=\"boxy\" className=\"w-[unset] flex-shrink-0\" innerClassName=\"bg-white dark:bg-surface-950\">\n {tabs.map(tab => (\n <Tab key={tab.id} value={tab.id} className=\"flex items-center justify-between group max-w-[200px]\">\n <TerminalIcon size=\"smallest\" className=\"text-amber-500 mr-1.5 flex-shrink-0\" />\n <span className=\"truncate\">{tab.name}</span>\n {tabs.length > 1 && (\n <IconButton\n size=\"smallest\"\n onClick={(e) => { e.stopPropagation(); closeTab(tab.id); }}\n className=\"ml-1 !p-0.5 opacity-0 group-hover:opacity-100 hover:text-red-500 transition-opacity\"\n >\n <CloseIcon size=\"smallest\" />\n </IconButton>\n )}\n </Tab>\n ))}\n </Tabs>\n <IconButton\n size=\"small\"\n onClick={addTab}\n className=\"ml-2 flex-shrink-0\"\n >\n <AddIcon size=\"small\" />\n </IconButton>\n </div>\n </div>\n <div className=\"flex shrink-0 items-center justify-end gap-1.5\">\n {/* \"Run as\" user picker */}\n <UserSelectPopover\n selectedUser={selectedUser}\n onUserSelected={setSelectedUser}\n users={users}\n loading={userManagement?.loading}\n currentUser={currentSelectableUser}\n className=\"mr-2\"\n />\n\n <div className=\"h-4 w-px bg-surface-200 dark:bg-surface-800 mx-1\" />\n\n <Tooltip title=\"Save as snippet\">\n <IconButton\n size=\"small\"\n onClick={() => {\n setSnippetName(\"\");\n setShowSaveDialog(true);\n }}\n disabled={!activeTab?.code.trim()}\n >\n <SaveIcon size=\"small\" />\n </IconButton>\n </Tooltip>\n\n {result?.value && (\n <Tooltip title=\"Export result as JSON\">\n <IconButton size=\"small\" onClick={exportResult}>\n <DownloadIcon size=\"small\" />\n </IconButton>\n </Tooltip>\n )}\n\n <Button\n size=\"small\"\n color=\"primary\"\n disabled={isRunning || !activeTab?.code.trim()}\n onClick={() => executeCode()}\n >\n {isRunning ? <CircularProgress size=\"smallest\" className=\"mr-2\" /> : <PlayArrowIcon size=\"small\" className=\"mr-2\" />}\n Run\n </Button>\n </div>\n </div>\n\n {/* Editor + Results split */}\n <div className=\"flex-grow overflow-hidden\">\n <ResizablePanels\n orientation=\"vertical\"\n panelSizePercent={editorHeight}\n onPanelSizeChange={setEditorHeight}\n minPanelSizePx={100}\n firstPanel={\n <div className=\"h-full w-full overflow-hidden\">\n <JSMonacoEditor\n value={activeTab?.code ?? \"\"}\n onChange={updateActiveCode}\n onRun={(selectedText) => executeCode(selectedText)}\n collectionSlugs={collectionSlugs}\n collections={collectionInfos}\n autoFocus\n />\n </div>\n }\n secondPanel={\n <div className=\"h-full w-full flex flex-col bg-surface-50 dark:bg-surface-950 overflow-hidden min-h-0\">\n {/* Result header — matches SQL editor */}\n <div className={cls(\"p-2 px-4 bg-surface-100 dark:bg-surface-900 border-b shrink-0 flex items-center\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold text-text-disabled dark:text-text-disabled-dark uppercase tracking-widest text-[10px]\">\n {t(\"studio_sql_query_results\")}\n </Typography>\n\n {result && (\n <>\n <div className=\"flex-grow\" />\n\n <Tabs value={resultView} onValueChange={(val) => setResultView(val as \"json\" | \"table\" | \"console\")} variant=\"pill\" className=\"w-[unset] mr-2\">\n <Tab value=\"json\">JSON</Tab>\n {tableData.data.length > 0 && <Tab value=\"table\">Table</Tab>}\n {result.console.length > 0 && <Tab value=\"console\">Console ({result.console.length})</Tab>}\n </Tabs>\n\n <Chip size=\"smallest\" colorScheme={result.error ? \"redDarker\" : \"greenDarker\"}>\n {result.error ? \"Error\" : `${result.duration.toFixed(0)}ms`}\n </Chip>\n </>\n )}\n </div>\n\n {/* Result content */}\n <div className=\"flex-grow flex flex-col min-h-0 overflow-hidden\">\n {isRunning && (\n <div className=\"flex-grow flex items-center justify-center\">\n <div className=\"text-center\">\n <CircularProgress size=\"medium\" />\n <Typography variant=\"body2\" className=\"mt-4 text-text-secondary dark:text-text-secondary-dark font-mono tracking-tight animate-pulse\">\n EXECUTING SCRIPT...\n </Typography>\n </div>\n </div>\n )}\n\n {!isRunning && !result && (\n <div className=\"flex-grow flex items-center justify-center text-text-disabled dark:text-text-disabled-dark\">\n <div className=\"text-center\">\n <svg className=\"w-12 h-12 mx-auto mb-4 opacity-50\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1} d=\"M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z\" /></svg>\n <Typography variant=\"body2\">Write JavaScript and press <kbd className=\"px-1.5 py-0.5 rounded bg-surface-200 dark:bg-surface-700 text-[11px] font-mono\">⌘ Enter</kbd> to run</Typography>\n </div>\n </div>\n )}\n\n {!isRunning && result?.error && (\n <div className=\"flex-grow flex items-center justify-center p-6 overflow-auto\">\n <ErrorView\n title=\"Execution Error\"\n error={result.error}\n />\n </div>\n )}\n\n {!isRunning && result && !result.error && resultView === \"json\" && (\n <pre className=\"flex-grow overflow-auto p-4 text-[13px] font-mono leading-relaxed text-text-primary dark:text-text-primary-dark whitespace-pre-wrap break-words\">\n {result.value === undefined ? (\n <span className=\"text-text-disabled italic\">undefined (no return value)</span>\n ) : (\n <JSONHighlight value={result.value} />\n )}\n </pre>\n )}\n\n {!isRunning && result && !result.error && resultView === \"table\" && tableData.data.length > 0 && (\n <div className=\"flex-grow flex flex-col overflow-hidden min-h-0\">\n {/* Collection badges bar — matching SQL editor */}\n {matchedCollections.length > 0 && (\n <div className={cls(\"px-4 py-1.5 border-b flex items-center gap-2 shrink-0 bg-surface-50 dark:bg-surface-900\", defaultBorderMixin)}>\n <Tooltip title={t(\"studio_sql_cms_collections_tooltip\")}>\n <Typography variant=\"caption\" className=\"text-[10px] font-bold uppercase tracking-widest text-text-disabled dark:text-text-disabled-dark mr-1 shrink-0 cursor-help\">{t(\"studio_sql_cms\")}</Typography>\n </Tooltip>\n <div className=\"flex items-center gap-1.5 overflow-x-auto no-scrollbar\">\n {matchedCollections.map(mc => (\n <Tooltip key={mc.collectionSlug} title={`${mc.collection.name} (${mc.collectionSlug})`}>\n <span className=\"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium bg-primary/10 dark:bg-primary-dark/15 text-primary dark:text-primary-dark whitespace-nowrap border border-primary/20 dark:border-primary-dark/20\">\n {typeof mc.collection.icon === \"string\" && (\n <IconForView collectionOrView={{ icon: mc.collection.icon } as never} className=\"text-[12px]\" />\n )}\n {mc.collection.name}\n </span>\n </Tooltip>\n ))}\n </div>\n </div>\n )}\n <div className=\"flex-grow relative h-full min-h-0 min-w-0\">\n <VirtualTable\n data={tableData.data}\n columns={\n matchedCollections.length > 0\n ? [{ key: \"__entity_action__\", title: \"\", width: 36, sortable: false, resizable: false }, ...tableData.columns]\n : tableData.columns\n }\n rowHeight={32}\n headerHeight={32}\n cellRenderer={({ rowData, column, rowIndex }: CellRendererParams<Record<string, unknown>>) => {\n // Entity action column\n if (column.key === \"__entity_action__\") {\n const rowActions = getRowEntityActions(rowData);\n if (rowActions.length === 0) return <div className=\"h-full w-full\" />;\n if (rowActions.length === 1) {\n const ra = rowActions[0];\n return (\n <div className=\"h-full flex items-center justify-center\">\n <Tooltip title={t(\"studio_sql_edit_entity\", { name: ra.collection.collection.name, id: String(ra.entityId) })}>\n <IconButton\n size=\"small\"\n className=\"text-surface-400 dark:text-surface-500 hover:text-surface-600 dark:hover:text-surface-300\"\n onClick={(e) => {\n e.stopPropagation();\n sideEntityController.open({\n path: ra.collection.collectionSlug,\n entityId: ra.entityId,\n collection: ra.collection.collection,\n updateUrl: false\n });\n }}\n >\n <EditIcon size=\"small\" />\n </IconButton>\n </Tooltip>\n </div>\n );\n }\n // Multiple matched collections\n return (\n <div className=\"h-full flex items-center justify-center\">\n <Menu\n trigger={\n <IconButton\n size=\"small\"\n className=\"text-surface-400 dark:text-surface-500 hover:text-surface-600 dark:hover:text-surface-300\"\n onClick={(e) => e.stopPropagation()}\n >\n <MoreVertIcon size=\"small\" />\n </IconButton>\n }\n >\n {rowActions.map(ra => (\n <MenuItem\n key={ra.collection.collectionSlug}\n dense\n onClick={() => {\n sideEntityController.open({\n path: ra.collection.collectionSlug,\n entityId: ra.entityId,\n collection: ra.collection.collection,\n updateUrl: false\n });\n }}\n >\n {t(\"studio_sql_edit_entity\", { name: ra.collection.collection.name, id: String(ra.entityId) })}\n </MenuItem>\n ))}\n </Menu>\n </div>\n );\n }\n\n // Regular data cell\n if (!rowData) return null;\n const val = rowData[column.key];\n const displayValue = typeof val === \"object\" && val !== null ? JSON.stringify(val) : String(val ?? \"\");\n return (\n <div className=\"px-4 py-1.5 h-full flex items-center whitespace-nowrap text-[13px] text-text-primary dark:text-text-primary-dark font-mono\">\n <div className=\"truncate flex-grow\" title={displayValue}>\n {displayValue === \"\" ? <span className=\"text-text-disabled dark:text-text-disabled-dark italic text-[11px]\">NULL</span> : displayValue}\n </div>\n </div>\n );\n }}\n />\n </div>\n </div>\n )}\n\n {!isRunning && result && resultView === \"console\" && (\n <div className=\"flex-grow overflow-auto p-2 space-y-1 font-mono text-[12px]\">\n {result.console.length === 0 ? (\n <Typography variant=\"caption\" className=\"text-text-disabled p-2\">No console output</Typography>\n ) : (\n result.console.map((entry, i) => (\n <div\n key={i}\n className={cls(\n \"px-2 py-1 rounded flex items-start gap-2\",\n entry.type === \"error\" && \"bg-red-50 dark:bg-red-950/30 text-red-700 dark:text-red-400\",\n entry.type === \"warn\" && \"bg-amber-50 dark:bg-amber-950/30 text-amber-700 dark:text-amber-400\",\n entry.type === \"log\" && \"text-text-primary dark:text-text-primary-dark\",\n entry.type === \"info\" && \"text-blue-700 dark:text-blue-400\",\n )}\n >\n <span className=\"text-[10px] opacity-50 flex-shrink-0 mt-0.5\">\n {entry.type === \"error\" ? \"❌\" : entry.type === \"warn\" ? \"⚠️\" : entry.type === \"info\" ? \"ℹ️\" : \"›\"}\n </span>\n <span className=\"whitespace-pre-wrap break-words\">\n {entry.args.map(a => typeof a === \"object\" ? JSON.stringify(a, null, 2) : String(a)).join(\" \")}\n </span>\n </div>\n ))\n )}\n\n {result.value !== undefined && (\n <div className={cls(\"px-2 py-1 mt-2 border-t pt-2\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"text-text-disabled text-[10px] uppercase tracking-wider mb-1 block\">Return Value</Typography>\n <pre className=\"text-text-primary dark:text-text-primary-dark whitespace-pre-wrap break-words text-[12px]\">\n {formatJSON(result.value)}\n </pre>\n </div>\n )}\n </div>\n )}\n </div>\n\n {/* Footer bar — matching SQL editor */}\n {!isRunning && result && !result.error && resultView === \"table\" && tableData.data.length > 0 && (\n <div className={cls(\"p-2 px-4 border-t bg-surface-50 dark:bg-surface-900 flex justify-between items-center shrink-0\", defaultBorderMixin)}>\n <div className=\"flex space-x-4\">\n <div className=\"flex items-center text-[11px]\">\n <span className=\"font-bold text-text-disabled dark:text-text-disabled-dark mr-2 uppercase tracking-tighter\">{t(\"studio_sql_rows\")}</span>\n <span className=\"font-mono text-text-secondary dark:text-text-secondary-dark\">{tableData.data.length}</span>\n </div>\n <div className=\"flex items-center text-[11px]\">\n <span className=\"font-bold text-text-disabled dark:text-text-disabled-dark mr-2 uppercase tracking-tighter\">{t(\"studio_sql_time\")}</span>\n <span className=\"font-mono text-text-secondary dark:text-text-secondary-dark\">{result.duration.toFixed(0)}ms</span>\n </div>\n </div>\n <div className=\"flex gap-2 overflow-x-auto no-scrollbar items-center px-2\">\n <Button\n size=\"small\"\n variant=\"text\"\n className=\"text-[10px] uppercase font-bold text-text-secondary dark:text-text-secondary-dark whitespace-nowrap\"\n onClick={handleExportMarkdown}\n >\n {t(\"studio_sql_copy_markdown\")}\n </Button>\n <Button\n size=\"small\"\n variant=\"text\"\n className=\"text-[10px] uppercase font-bold text-text-secondary dark:text-text-secondary-dark whitespace-nowrap\"\n onClick={exportResult}\n >\n {t(\"studio_sql_export_json\")}\n </Button>\n <Button\n size=\"small\"\n variant=\"text\"\n className=\"text-[10px] uppercase font-bold text-text-secondary dark:text-text-secondary-dark whitespace-nowrap\"\n onClick={handleExportCSV}\n >\n {t(\"studio_sql_export_csv\")}\n </Button>\n </div>\n </div>\n )}\n </div>\n }\n />\n </div>\n </div>\n }\n />\n </div>\n\n {/* Save snippet dialog */}\n <Dialog open={showSaveDialog} onOpenChange={setShowSaveDialog}>\n <DialogTitle>Save Snippet</DialogTitle>\n <DialogContent>\n <TextField\n label=\"Snippet name\"\n value={snippetName}\n onChange={(e) => setSnippetName(e.target.value)}\n placeholder=\"e.g. List all products\"\n autoFocus\n onKeyDown={(e) => {\n if (e.key === \"Enter\") saveSnippet();\n }}\n />\n </DialogContent>\n <DialogActions>\n <Button variant=\"text\" onClick={() => setShowSaveDialog(false)}>Cancel</Button>\n <Button variant=\"filled\" color=\"primary\" onClick={saveSnippet} disabled={!snippetName.trim()}>Save</Button>\n </DialogActions>\n </Dialog>\n </div>\n );\n}\n\n// ─── JSON Syntax Highlighting ────────────────────────────────────────\n\nfunction JSONHighlight({ value }: { value: any }) {\n const json = formatJSON(value);\n const { mode } = useModeController();\n\n return (\n <Highlight\n theme={mode === \"dark\" ? themes.vsDark : themes.github}\n code={json}\n language=\"json\"\n >\n {({ style, tokens, getLineProps, getTokenProps }) => (\n <span style={{ ...style, backgroundColor: \"transparent\" }}>\n {tokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </div>\n ))}\n </span>\n )}\n </Highlight>\n );\n}\n","import React, { useState, useEffect } from \"react\";\nimport {\n Button,\n Paper,\n Typography,\n TextField,\n Select,\n SelectItem,\n MultiSelect,\n MultiSelectItem,\n cls,\n defaultBorderMixin,\n IconButton,\n HelpOutlineIcon,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions\n} from \"@rebasepro/ui\";\nimport { useTranslation } from \"@rebasepro/core\";\nimport { MonacoEditor } from \"../SQLEditor/MonacoEditor\";\nimport { PostgresPolicy } from \"./RLSEditor\";\n\nexport interface PolicyEditorProps {\n policy?: PostgresPolicy;\n schema: string;\n table: string;\n onSave: (policyData: Partial<PostgresPolicy>) => void;\n onCancel: () => void;\n}\n\ntype PolicyCommand = \"ALL\" | \"SELECT\" | \"INSERT\" | \"UPDATE\" | \"DELETE\";\nconst COMMAND_OPTIONS: PolicyCommand[] = [\"ALL\", \"SELECT\", \"INSERT\", \"UPDATE\", \"DELETE\"];\nconst ROLE_OPTIONS = [\"public\", \"authenticated\", \"anon\", \"admin\"];\n\ninterface PolicyPreset {\n id: string;\n label: string;\n description: string;\n policyname: string;\n cmd: PolicyCommand;\n permissive: \"PERMISSIVE\" | \"RESTRICTIVE\";\n roles: string[];\n qual: string;\n with_check: string;\n}\n\nconst POLICY_PRESETS: PolicyPreset[] = [\n {\n id: \"public_read\",\n label: \"Enable read access to everyone\",\n description: \"Anyone can read data, regardless of authentication status.\",\n policyname: \"Enable read access for all users\",\n cmd: \"SELECT\",\n permissive: \"PERMISSIVE\",\n roles: [\"public\"],\n qual: \"true\",\n with_check: \"\"\n },\n {\n id: \"auth_read\",\n label: \"Enable read access for authenticated users only\",\n description: \"Only logged-in users are allowed to read data.\",\n policyname: \"Enable read access for authenticated users\",\n cmd: \"SELECT\",\n permissive: \"PERMISSIVE\",\n roles: [\"authenticated\"],\n qual: \"true\",\n with_check: \"\"\n },\n {\n id: \"auth_insert\",\n label: \"Enable insert for authenticated users only\",\n description: \"Only logged-in users are allowed to insert new data.\",\n policyname: \"Enable insert for authenticated users only\",\n cmd: \"INSERT\",\n permissive: \"PERMISSIVE\",\n roles: [\"authenticated\"],\n qual: \"\",\n with_check: \"true\"\n },\n {\n id: \"user_select_own\",\n label: \"Users can read their own rows\",\n description: \"Users can only read rows where the user_id matches their auth.uid()\",\n policyname: \"Users can select their own data\",\n cmd: \"SELECT\",\n permissive: \"PERMISSIVE\",\n roles: [\"authenticated\"],\n qual: \"auth.uid() = user_id\",\n with_check: \"\"\n },\n {\n id: \"user_update_own\",\n label: \"Users can update their own rows\",\n description: \"Users can only update rows where the user_id matches their auth.uid()\",\n policyname: \"Users can update their own data\",\n cmd: \"UPDATE\",\n permissive: \"PERMISSIVE\",\n roles: [\"authenticated\"],\n qual: \"auth.uid() = user_id\",\n with_check: \"auth.uid() = user_id\"\n },\n {\n id: \"user_delete_own\",\n label: \"Users can delete their own rows\",\n description: \"Users can only delete rows where the user_id matches their auth.uid()\",\n policyname: \"Users can delete their own data\",\n cmd: \"DELETE\",\n permissive: \"PERMISSIVE\",\n roles: [\"authenticated\"],\n qual: \"auth.uid() = user_id\",\n with_check: \"\"\n }\n];\n\nexport const PolicyEditor = ({\n policy,\n schema,\n table,\n onSave,\n onCancel\n}: PolicyEditorProps) => {\n\n const { t } = useTranslation();\n const [name, setName] = useState(\"\");\n const [helpOpen, setHelpOpen] = useState(false);\n const [behavior, setBehavior] = useState<\"PERMISSIVE\" | \"RESTRICTIVE\">(\"PERMISSIVE\");\n const [command, setCommand] = useState<PolicyCommand>(\"ALL\");\n const [roles, setRoles] = useState<string[]>([\"public\"]);\n const [usingExpr, setUsingExpr] = useState<string>(\"\");\n const [checkExpr, setCheckExpr] = useState<string>(\"\");\n\n const [selectedPreset, setSelectedPreset] = useState<string>(\"\");\n\n useEffect(() => {\n if (policy) {\n setName(policy.policyname || \"\");\n setBehavior(policy.permissive || \"PERMISSIVE\");\n setCommand((policy.cmd as PolicyCommand) || \"ALL\");\n\n const initialRoles = policy.roles\n ? (Array.isArray(policy.roles) ? policy.roles : [policy.roles])\n : [\"public\"];\n setRoles(initialRoles as string[]);\n\n setUsingExpr(policy.qual || \"\");\n setCheckExpr(policy.with_check || \"\");\n } else {\n setName(\"\");\n setBehavior(\"PERMISSIVE\");\n setCommand(\"ALL\");\n setRoles([\"public\"]);\n setUsingExpr(\"\");\n setCheckExpr(\"\");\n setSelectedPreset(\"\");\n }\n }, [policy]);\n\n const handlePresetChange = (presetId: string) => {\n const preset = POLICY_PRESETS.find(p => p.id === presetId);\n if (!preset) return;\n\n setSelectedPreset(presetId);\n setName(preset.policyname);\n setBehavior(preset.permissive);\n setCommand(preset.cmd);\n setRoles(preset.roles);\n setUsingExpr(preset.qual);\n setCheckExpr(preset.with_check);\n };\n\n const showCheck = command === \"ALL\" || command === \"INSERT\" || command === \"UPDATE\";\n\n const handleSave = () => {\n onSave({\n policyname: name,\n permissive: behavior,\n cmd: command,\n roles: roles,\n qual: usingExpr,\n with_check: showCheck ? checkExpr : null\n });\n };\n\n return (\n <>\n <DialogTitle className=\"flex justify-between items-center w-full\" variant=\"h6\">\n <div>\n <div>{policy ? t(\"studio_policy_edit\") : t(\"studio_policy_create\")}</div>\n <div className=\"text-sm font-normal text-text-secondary dark:text-text-secondary-dark tracking-wide mt-1\">\n {t(\"studio_policy_defining_rules\")} <span className=\"font-mono text-primary bg-primary-bg dark:bg-primary-bg-dark px-1 py-0.5 rounded\">{schema}.{table}</span>\n </div>\n </div>\n <IconButton size=\"small\" onClick={() => setHelpOpen(true)}>\n <HelpOutlineIcon size=\"small\" />\n </IconButton>\n </DialogTitle>\n\n <DialogContent className=\"p-4 md:p-6 border-t dark:border-surface-800 bg-surface-50 dark:bg-surface-950\" includeMargin={false}>\n <div className=\"max-w-4xl mx-auto\">\n <Paper className={cls(\"p-4 md:p-6 flex flex-col gap-6 bg-white dark:bg-surface-900 border-none sm:border-solid rounded-none sm:rounded-xl\", defaultBorderMixin)}>\n\n {/* Presets - only for new policies */}\n {!policy && (\n <div className=\"flex flex-col gap-1.5 bg-primary/5 dark:bg-primary-bg-dark/20 p-3 sm:p-4 rounded-lg border border-primary/10 dark:border-primary/20\">\n <Typography variant=\"caption\" className=\"text-primary dark:text-primary-light uppercase tracking-wider\">{t(\"studio_policy_template\")}</Typography>\n <Select\n size=\"small\"\n value={selectedPreset}\n onValueChange={handlePresetChange}\n position=\"item-aligned\"\n placeholder={t(\"studio_policy_select_template\")}\n className=\"bg-white dark:bg-surface-950\"\n >\n {POLICY_PRESETS.map((preset) => (\n <SelectItem key={preset.id} value={preset.id}>\n <div className=\"flex flex-col text-left\">\n <span className=\"text-sm\">{preset.label}</span>\n <span className=\"text-xs text-text-secondary dark:text-text-secondary-dark\">{preset.description}</span>\n </div>\n </SelectItem>\n ))}\n </Select>\n </div>\n )}\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 sm:gap-6\">\n {/* Policy Name */}\n <div className=\"flex flex-col gap-1.5\">\n <Typography variant=\"caption\" className=\"uppercase tracking-wider text-text-secondary\">{t(\"studio_policy_name\")}</Typography>\n <TextField\n // @ts-ignore\n value={name}\n onChange={(e) => setName(e.target.value)}\n placeholder={t(\"studio_policy_name_placeholder\")}\n className=\"w-full\"\n />\n </div>\n\n {/* Behavior */}\n <div className=\"flex flex-col gap-1.5\">\n <Typography variant=\"caption\" className=\"uppercase tracking-wider text-text-secondary\">\n {t(\"studio_policy_behavior\")} <code className=\"text-[10px] bg-surface-200 dark:bg-surface-800 text-text-secondary dark:text-text-secondary-dark px-1 py-0.5 rounded ml-1\">AS</code>\n </Typography>\n <Select\n value={behavior}\n onValueChange={(val) => setBehavior(val as \"PERMISSIVE\" | \"RESTRICTIVE\")}\n position=\"item-aligned\"\n >\n <SelectItem value=\"PERMISSIVE\">\n <div className=\"flex flex-col text-left\">\n <span className=\"\">{t(\"studio_policy_permissive\")}</span>\n <span className=\"text-xs text-text-secondary dark:text-text-secondary-dark\">{t(\"studio_policy_permissive_desc\")}</span>\n </div>\n </SelectItem>\n <SelectItem value=\"RESTRICTIVE\">\n <div className=\"flex flex-col text-left\">\n <span className=\"\">{t(\"studio_policy_restrictive\")}</span>\n <span className=\"text-xs text-text-secondary dark:text-text-secondary-dark\">{t(\"studio_policy_restrictive_desc\")}</span>\n </div>\n </SelectItem>\n </Select>\n </div>\n </div>\n\n {/* Command */}\n <div className=\"flex flex-col gap-1.5\">\n <Typography variant=\"caption\" className=\"uppercase tracking-wider text-text-secondary\">\n {t(\"studio_policy_command\")} <code className=\"text-[10px] bg-surface-200 dark:bg-surface-800 text-text-secondary dark:text-text-secondary-dark px-1 py-0.5 rounded ml-1\">FOR</code>\n </Typography>\n <div className=\"flex flex-wrap gap-1.5\">\n {COMMAND_OPTIONS.map(cmd => (\n <Button\n key={cmd}\n size=\"small\"\n variant={command === cmd ? \"filled\" : \"text\"}\n color=\"neutral\"\n onClick={() => setCommand(cmd)}\n className=\"min-w-[80px]\"\n >\n {cmd}\n </Button>\n ))}\n </div>\n </div>\n\n {/* Roles */}\n <div className=\"flex flex-col gap-1.5\">\n <Typography variant=\"caption\" className=\"uppercase tracking-wider text-text-secondary\">\n {t(\"studio_policy_target_roles\")} <code className=\"text-[10px] bg-surface-200 dark:bg-surface-800 text-text-secondary dark:text-text-secondary-dark px-1 py-0.5 rounded ml-1\">TO</code>\n </Typography>\n <MultiSelect\n size=\"small\"\n value={roles}\n onValueChange={setRoles}\n placeholder={t(\"studio_policy_roles_placeholder\")}\n >\n {ROLE_OPTIONS.map(role => (\n <MultiSelectItem key={role} value={role}>\n {role}\n </MultiSelectItem>\n ))}\n </MultiSelect>\n </div>\n\n </Paper>\n\n <div className=\"mt-8 flex flex-col gap-4\">\n {/* USING Expression */}\n {command !== \"INSERT\" && (\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex flex-col gap-0.5\">\n <Typography variant=\"caption\" className=\"uppercase tracking-wider text-text-secondary\">{t(\"studio_policy_using_expr\")}</Typography>\n <Typography variant=\"caption\" className=\"text-text-secondary opacity-70\">{t(\"studio_policy_using_expr_desc\")}</Typography>\n </div>\n <div className={cls(\"h-32 border rounded-md overflow-hidden bg-white dark:bg-[#1e1e1e]\", defaultBorderMixin)}>\n <MonacoEditor\n value={usingExpr}\n onChange={(v) => setUsingExpr(v || \"\")}\n readOnly={false}\n autoFocus={true}\n />\n </div>\n </div>\n )}\n\n {/* WITH CHECK Expression */}\n {showCheck && (\n <div className=\"flex flex-col gap-1.5 mt-2\">\n <div className=\"flex flex-col gap-0.5\">\n <Typography variant=\"caption\" className=\"uppercase tracking-wider text-text-secondary\">{t(\"studio_policy_check_expr\")}</Typography>\n <Typography variant=\"caption\" className=\"text-text-secondary opacity-70\">{t(\"studio_policy_check_expr_desc\")}</Typography>\n </div>\n <div className={cls(\"h-32 border rounded-md overflow-hidden bg-white dark:bg-[#1e1e1e]\", defaultBorderMixin)}>\n <MonacoEditor\n value={checkExpr}\n onChange={(v) => setCheckExpr(v || \"\")}\n readOnly={false}\n autoFocus={command === \"INSERT\"}\n />\n </div>\n </div>\n )}\n </div>\n\n </div>\n </DialogContent>\n\n <DialogActions>\n <Button size=\"small\" variant=\"text\" color=\"neutral\" onClick={onCancel}>\n {t(\"studio_policy_cancel\")}\n </Button>\n <Button size=\"small\" variant=\"filled\" color=\"primary\" onClick={handleSave} disabled={!name}>\n {t(\"studio_policy_save\")}\n </Button>\n </DialogActions>\n\n <Dialog open={helpOpen} onOpenChange={setHelpOpen} maxWidth=\"3xl\">\n <DialogContent className=\"p-4 sm:p-6 lg:p-8 flex flex-col gap-6\">\n <div>\n <Typography variant=\"h5\" className=\"mb-2\">{t(\"studio_policy_help_title\")}</Typography>\n <Typography className=\"text-text-secondary dark:text-text-secondary-dark\">\n {t(\"studio_policy_help_intro\")}\n </Typography>\n </div>\n \n <div className=\"flex flex-col gap-4\">\n <Paper className={cls(\"p-4 sm:p-5 flex flex-col gap-1\", defaultBorderMixin)}>\n <Typography variant=\"subtitle2\" className=\"text-primary dark:text-primary-light font-medium\">{t(\"studio_policy_help_step1_title\")}</Typography>\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark\">\n {t(\"studio_policy_help_step1_desc\")}\n </Typography>\n </Paper>\n \n <Paper className={cls(\"p-4 sm:p-5 flex flex-col gap-1\", defaultBorderMixin)}>\n <Typography variant=\"subtitle2\" className=\"text-primary dark:text-primary-light font-medium\">{t(\"studio_policy_help_step2_title\")}</Typography>\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark mb-1\">\n {t(\"studio_policy_help_step2_desc\")}\n </Typography>\n <ul className=\"list-disc pl-5 space-y-1 text-sm text-text-secondary dark:text-text-secondary-dark\">\n <li><strong>public</strong>: {t(\"studio_policy_help_role_public\")}</li>\n <li><strong>authenticated</strong>: {t(\"studio_policy_help_role_authenticated\")}</li>\n <li><strong>anon</strong>: {t(\"studio_policy_help_role_anon\")}</li>\n </ul>\n </Paper>\n\n <Paper className={cls(\"p-4 sm:p-5 flex flex-col gap-1\", defaultBorderMixin)}>\n <Typography variant=\"subtitle2\" className=\"text-primary dark:text-primary-light font-medium\">{t(\"studio_policy_help_step3_title\")}</Typography>\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark mb-1\">\n {t(\"studio_policy_help_step3_desc\")}\n </Typography>\n <div className={cls(\"bg-surface-100 dark:bg-surface-800 px-3 py-2 rounded-md font-mono text-sm my-2\", defaultBorderMixin)}>\n Example: auth.uid() = user_id\n </div>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark\">\n {t(\"studio_policy_help_step3_example\")}\n </Typography>\n </Paper>\n\n <Paper className={cls(\"p-4 sm:p-5 flex flex-col gap-1\", defaultBorderMixin)}>\n <Typography variant=\"subtitle2\" className=\"text-primary dark:text-primary-light font-medium\">{t(\"studio_policy_help_step4_title\")}</Typography>\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark mb-1\">\n {t(\"studio_policy_help_step4_desc\")}\n </Typography>\n <div className={cls(\"bg-surface-100 dark:bg-surface-800 px-3 py-2 rounded-md font-mono text-sm my-2\", defaultBorderMixin)}>\n Example: auth.uid() = user_id\n </div>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark\">\n {t(\"studio_policy_help_step4_example\")}\n </Typography>\n </Paper>\n\n <Paper className={cls(\"p-4 sm:p-5 flex flex-col gap-2 bg-primary/5 dark:bg-primary-bg-dark/10\", defaultBorderMixin)}>\n <Typography variant=\"subtitle2\" className=\"text-primary dark:text-primary-light font-medium\">{t(\"studio_policy_help_auth_vars_title\")}</Typography>\n <Typography variant=\"body2\" className=\"text-text-secondary dark:text-text-secondary-dark\">\n {t(\"studio_policy_help_auth_vars_desc\")}\n </Typography>\n <ul className=\"list-disc pl-5 space-y-2 text-sm text-text-secondary dark:text-text-secondary-dark font-normal\">\n <li>\n <code className=\"bg-surface-100 dark:bg-surface-800 px-1.5 py-0.5 rounded mr-1 whitespace-nowrap\">auth.uid()</code>\n <span className=\"block mt-0.5\">Returns the current user's ID as text. Example: <code className=\"bg-surface-100 dark:bg-surface-800 px-1 py-0.5 rounded text-[11px]\">auth.uid() = user_id</code></span>\n </li>\n <li>\n <code className=\"bg-surface-100 dark:bg-surface-800 px-1.5 py-0.5 rounded mr-1 whitespace-nowrap\">auth.jwt()</code>\n <span className=\"block mt-0.5\">Returns the full JWT payload as JSONB so you can check custom claims. Example: <code className=\"bg-surface-100 dark:bg-surface-800 px-1 py-0.5 rounded text-[11px]\">auth.jwt() -&gt;&gt; 'email' = 'admin@example.com'</code></span>\n </li>\n <li>\n <code className=\"bg-surface-100 dark:bg-surface-800 px-1.5 py-0.5 rounded mr-1 whitespace-nowrap\">auth.roles()</code>\n <span className=\"block mt-0.5\">Returns the user's role IDs as a comma-separated string. Best used with: <code className=\"bg-surface-100 dark:bg-surface-800 px-1 py-0.5 rounded text-[11px]\">string_to_array(auth.roles(), ',') @&gt; ARRAY['admin']</code></span>\n </li>\n </ul>\n </Paper>\n </div>\n\n <div className={cls(\"mt-2 flex flex-col sm:flex-row justify-between items-start sm:items-center bg-primary/5 dark:bg-primary-bg-dark/10 p-4 rounded-xl border border-primary/10 dark:border-primary/20\", defaultBorderMixin)}>\n <Typography variant=\"body2\" className=\"text-primary dark:text-primary-light mb-4 sm:mb-0 max-w-md\">\n {t(\"studio_policy_help_docs_cta\")}\n </Typography>\n <Button \n component=\"a\" \n href=\"https://www.postgresql.org/docs/current/sql-createpolicy.html\" \n target=\"_blank\" \n variant=\"outlined\" \n color=\"primary\" \n size=\"small\"\n className=\"whitespace-nowrap flex-shrink-0\"\n >\n {t(\"studio_policy_help_read_docs\")}\n </Button>\n </div>\n </DialogContent>\n <DialogActions className=\"p-4 sm:px-6 sm:pb-6 pt-0 border-t-0\">\n <Button onClick={() => setHelpOpen(false)} variant=\"filled\" color=\"primary\">{t(\"studio_policy_help_got_it\")}</Button>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n","import { useStudioCollectionRegistry } from \"@rebasepro/core\";\nimport React, { useState, useEffect, useCallback, useMemo } from \"react\";\nimport {\n Paper,\n Typography,\n CircularProgress,\n cls,\n Alert,\n defaultBorderMixin,\n Card,\n Chip,\n Button,\n Tooltip,\n ResizablePanels,\n SecurityIcon,\n RefreshIcon,\n WarningIcon,\n KeyIcon,\n DeleteIcon,\n IconButton,\n Tabs,\n Tab\n} from \"@rebasepro/ui\";\nimport { useRebaseContext, useSnackbarController, ErrorView, useTranslation } from \"@rebasepro/core\";\nimport { isPostgresCollection } from \"@rebasepro/types\";\nimport { PolicyEditor } from \"./PolicyEditor\";\n\nexport interface PostgresPolicy {\n policyname: string;\n tablename: string;\n permissive: \"PERMISSIVE\" | \"RESTRICTIVE\";\n roles: string[];\n cmd: \"SELECT\" | \"INSERT\" | \"UPDATE\" | \"DELETE\" | \"ALL\";\n qual: string | null; // USING clause\n with_check: string | null; // WITH CHECK clause\n status?: \"live\" | \"code_only\" | \"both\";\n}\n\nexport interface TableRLSStatus {\n schemaName: string;\n tableName: string;\n rlsEnabled: boolean;\n policies: PostgresPolicy[];\n}\n\nexport const RLSEditor = ({ apiUrl = \"\" }: { apiUrl?: string }) => {\n const { databaseAdmin } = useRebaseContext();\n const snackbarController = useSnackbarController();\n const collectionRegistry = useStudioCollectionRegistry();\n const { t } = useTranslation();\n\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n const [tables, setTables] = useState<TableRLSStatus[]>([]);\n const [selectedTable, setSelectedTable] = useState<string | null>(null);\n const [activeTab, setActiveTab] = useState(0);\n\n const [editingPolicy, setEditingPolicy] = useState<PostgresPolicy | \"new\" | null>(null);\n\n const [sidebarSize, setSidebarSize] = useState(() => {\n try {\n const saved = localStorage.getItem(\"rebase_rls_editor_sidebar_size\");\n return saved !== null ? parseFloat(saved) : 20;\n } catch (e) {\n return 20;\n }\n });\n\n const [expandedSchemas, setExpandedSchemas] = useState<Record<string, boolean>>({ public: true });\n\n // Sidebar tab: \"tables\" or \"info\"\n const [sidebarTab, setSidebarTab] = useState<\"tables\" | \"info\">(\"tables\");\n\n useEffect(() => {\n try {\n localStorage.setItem(\"rebase_rls_editor_sidebar_size\", sidebarSize.toString());\n } catch (e) { }\n }, [sidebarSize]);\n\n const fetchRLSData = useCallback(async () => {\n if (!databaseAdmin?.executeSql) {\n setError(t(\"studio_sql_sql_not_supported\"));\n setIsLoading(false);\n return;\n }\n\n setIsLoading(true);\n setError(null);\n try {\n // 1. Fetch tables and whether RLS is enabled\n const tablesSql = `\n SELECT \n schemaname, \n tablename, \n rowsecurity \n FROM pg_tables \n WHERE schemaname NOT IN ('information_schema', 'pg_catalog')\n ORDER BY schemaname, tablename;\n `;\n const tablesResult = await databaseAdmin!.executeSql!(tablesSql);\n\n // 2. Fetch all policies\n const policiesSql = `\n SELECT \n schemaname,\n tablename,\n policyname,\n permissive,\n roles,\n cmd,\n qual,\n with_check\n FROM pg_policies\n WHERE schemaname NOT IN ('information_schema', 'pg_catalog');\n `;\n const policiesResult = await databaseAdmin!.executeSql!(policiesSql);\n\n const extractRows = (result: unknown): Record<string, unknown>[] => {\n if (result && typeof result === \"object\" && \"rows\" in result && Array.isArray((result as { rows: Record<string, unknown>[] }).rows)) {\n return (result as { rows: Record<string, unknown>[] }).rows;\n }\n if (Array.isArray(result)) return result as Record<string, unknown>[];\n return [];\n };\n\n const tRows = extractRows(tablesResult);\n const pRows = extractRows(policiesResult);\n\n const tableMap: Record<string, TableRLSStatus> = {};\n\n tRows.forEach((tRow: Record<string, unknown>) => {\n const t = tRow as { schemaname?: string, SCHEMANAME?: string, tablename?: string, TABLENAME?: string, rowsecurity?: boolean, ROWSECURITY?: boolean };\n const schema = t.schemaname || t.SCHEMANAME || \"public\";\n const table = t.tablename || t.TABLENAME || \"\";\n const rlsEnabled = t.rowsecurity || t.ROWSECURITY || false;\n\n const key = `${schema}.${table}`;\n tableMap[key] = {\n schemaName: schema,\n tableName: table,\n rlsEnabled: rlsEnabled,\n policies: []\n };\n });\n\n pRows.forEach((pRow: Record<string, unknown>) => {\n const p = pRow as { schemaname?: string, SCHEMANAME?: string, tablename?: string, TABLENAME?: string, roles?: string | string[], ROLES?: string | string[], policyname?: string, POLICYNAME?: string, permissive?: \"PERMISSIVE\" | \"RESTRICTIVE\", PERMISSIVE?: \"PERMISSIVE\" | \"RESTRICTIVE\", cmd?: \"SELECT\" | \"INSERT\" | \"UPDATE\" | \"DELETE\" | \"ALL\", CMD?: \"SELECT\" | \"INSERT\" | \"UPDATE\" | \"DELETE\" | \"ALL\", qual?: string | null, QUAL?: string | null, with_check?: string | null, WITH_CHECK?: string | null };\n const schema = p.schemaname || p.SCHEMANAME || \"public\";\n const table = p.tablename || p.TABLENAME || \"\";\n const key = `${schema}.${table}`;\n\n if (tableMap[key]) {\n // Postgres roles come back as an array string like \"{public}\" or literal array\n let parsedRoles: string[] = [];\n const r = p.roles || p.ROLES;\n if (Array.isArray(r)) {\n parsedRoles = r;\n } else if (typeof r === \"string\") {\n parsedRoles = r.replace(/^{|}$/g, \"\").split(\",\").map(s => s.trim());\n }\n\n tableMap[key].policies.push({\n policyname: p.policyname || p.POLICYNAME || \"\",\n tablename: table,\n permissive: p.permissive || p.PERMISSIVE || \"PERMISSIVE\",\n roles: parsedRoles,\n cmd: p.cmd || p.CMD || \"ALL\",\n qual: p.qual || p.QUAL || null,\n with_check: p.with_check || p.WITH_CHECK || null\n });\n }\n });\n\n const sortedTables = Object.values(tableMap).sort((a, b) => a.tableName.localeCompare(b.tableName));\n setTables(sortedTables);\n\n if (sortedTables.length > 0 && !selectedTable) {\n setSelectedTable(`${sortedTables[0].schemaName}.${sortedTables[0].tableName}`);\n }\n\n } catch (e: unknown) {\n console.error(\"RLS fetch error:\", e);\n setError(\"Failed to fetch RLS policies: \" + (e instanceof Error ? e.message : String(e)));\n } finally {\n setIsLoading(false);\n }\n }, [databaseAdmin, selectedTable]);\n\n useEffect(() => {\n setEditingPolicy(null);\n }, [selectedTable]);\n\n useEffect(() => {\n fetchRLSData();\n }, [fetchRLSData]);\n\n const activeTableData = useMemo(() => {\n if (!selectedTable) return null;\n return tables.find(t => `${t.schemaName}.${t.tableName}` === selectedTable) || null;\n }, [selectedTable, tables]);\n\n const groupedTables = useMemo(() => {\n const groups: Record<string, TableRLSStatus[]> = {};\n tables.forEach(table => {\n if (!groups[table.schemaName]) {\n groups[table.schemaName] = [];\n }\n groups[table.schemaName].push(table);\n });\n return groups;\n }, [tables]);\n\n const activeCollection = useMemo(() => {\n if (!activeTableData) return null;\n return collectionRegistry.collections?.find((c: { id?: string, path?: string, table?: string, slug?: string, collectionId?: string }) =>\n c.id === activeTableData.tableName ||\n c.path === activeTableData.tableName ||\n c.table === activeTableData.tableName ||\n c.slug === activeTableData.tableName ||\n c.collectionId === activeTableData.tableName\n ) || null;\n }, [activeTableData, collectionRegistry.collections]);\n\n const mergedPolicies = useMemo(() => {\n if (!activeTableData) return [];\n\n const policiesMap: Record<string, PostgresPolicy> = {};\n\n // Load live policies\n (activeTableData.policies || []).forEach(p => {\n policiesMap[p.policyname] = { ...p, status: \"live\" };\n });\n\n // Merge code-based policies\n if (activeCollection && isPostgresCollection(activeCollection) && activeCollection.securityRules) {\n activeCollection.securityRules.forEach((rule: { name?: string, mode?: string, operation?: string, roles?: string[], using?: string, withCheck?: string }) => {\n const ruleName = rule.name;\n if (!ruleName) return;\n\n if (policiesMap[ruleName]) {\n // It exists in Postgres, but we have a code definition (potentially edited)\n policiesMap[ruleName] = {\n policyname: ruleName,\n tablename: activeTableData.tableName,\n permissive: (rule.mode || \"permissive\").toUpperCase() as PostgresPolicy[\"permissive\"],\n cmd: (rule.operation || \"ALL\").toUpperCase() as PostgresPolicy[\"cmd\"],\n roles: rule.roles || [\"public\"],\n qual: rule.using || null,\n with_check: rule.withCheck || null,\n status: \"both\"\n };\n } else {\n policiesMap[ruleName] = {\n policyname: ruleName,\n tablename: activeTableData.tableName,\n permissive: (rule.mode || \"permissive\").toUpperCase() as PostgresPolicy[\"permissive\"],\n cmd: (rule.operation || \"ALL\").toUpperCase() as PostgresPolicy[\"cmd\"],\n roles: rule.roles || [\"public\"],\n qual: rule.using || null,\n with_check: rule.withCheck || null,\n status: \"code_only\"\n };\n }\n });\n }\n\n return Object.values(policiesMap).sort((a, b) => a.policyname.localeCompare(b.policyname));\n }, [activeTableData, activeCollection]);\n\n // Stats for the info tab\n const rlsStats = useMemo(() => {\n const total = tables.length;\n const enabled = tables.filter(t => t.rlsEnabled).length;\n const withPolicies = tables.filter(t => t.policies.length > 0).length;\n const totalPolicies = tables.reduce((sum, t) => sum + t.policies.length, 0);\n return { total, enabled, withPolicies, totalPolicies };\n }, [tables]);\n\n const renderPolicyTag = (label: string, value: string) => {\n return (\n <div className=\"flex items-center gap-1.5 px-2 py-1 rounded-md bg-surface-100 dark:bg-surface-800 border border-surface-200 dark:border-surface-700/50\">\n <span className=\"text-[10px] uppercase text-text-secondary dark:text-text-secondary-dark font-medium tracking-wider\">\n {label}:\n </span>\n <span className=\"font-mono text-xs text-text-primary dark:text-text-primary-dark break-all\">\n {value}\n </span>\n </div>\n );\n };\n\n return (\n <div className=\"flex h-full w-full bg-white dark:bg-surface-950 overflow-hidden text-text-primary dark:text-text-primary-dark\">\n <ResizablePanels\n orientation=\"horizontal\"\n panelSizePercent={sidebarSize}\n onPanelSizeChange={setSidebarSize}\n minPanelSizePx={220}\n firstPanel={\n <div className={cls(\"flex flex-col h-full w-full bg-white dark:bg-surface-950 border-r\", defaultBorderMixin)}>\n <Tabs value={sidebarTab} onValueChange={(v) => setSidebarTab(v as \"tables\" | \"info\")} variant=\"boxy\" className=\"border-b border-surface-200 dark:border-surface-800\">\n <Tab value=\"tables\">Tables</Tab>\n <Tab value=\"info\">Info</Tab>\n </Tabs>\n\n <div className=\"flex-grow overflow-hidden relative\">\n {sidebarTab === \"tables\" && (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">\n {t(\"studio_schema_tables\")}\n </Typography>\n <IconButton size=\"small\" onClick={fetchRLSData} title=\"Refresh\">\n <RefreshIcon size=\"small\" />\n </IconButton>\n </div>\n <div className=\"flex-grow overflow-y-auto no-scrollbar p-1\">\n {isLoading && tables.length === 0 ? (\n <div className=\"flex justify-center p-4\"><CircularProgress size=\"small\" /></div>\n ) : Object.keys(groupedTables).length === 0 ? (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark italic\">{t(\"studio_rls_no_tables\")}</Typography>\n </div>\n ) : (\n Object.entries(groupedTables).map(([schemaName, schemaTables]) => (\n <div key={schemaName} className=\"mb-2\">\n <div\n className=\"flex items-center p-1 cursor-pointer hover:bg-surface-100 dark:hover:bg-surface-800 rounded transition-colors\"\n onClick={() => setExpandedSchemas(prev => ({ ...prev, [schemaName]: !prev[schemaName] }))}\n >\n <svg className={cls(\"w-3 h-3 mr-1 transition-transform\", expandedSchemas[schemaName] ? \"rotate-90\" : \"\")} fill=\"currentColor\" viewBox=\"0 0 20 20\"><path d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" /></svg>\n <Typography variant=\"body2\" className=\"text-text-primary dark:text-text-primary-dark font-medium text-xs truncate flex-grow\">{schemaName}</Typography>\n </div>\n\n {expandedSchemas[schemaName] && (\n <div className=\"ml-3 mt-1 space-y-0.5\">\n {schemaTables.map(table => {\n const key = `${table.schemaName}.${table.tableName}`;\n const isSelected = selectedTable === key;\n return (\n <div\n key={key}\n onClick={() => setSelectedTable(key)}\n className={cls(\n \"flex items-center p-1 cursor-pointer rounded transition-colors group relative\",\n isSelected\n ? \"bg-primary/10 text-primary dark:bg-primary/20 dark:text-primary-light\"\n : \"hover:bg-surface-100 dark:hover:bg-surface-800 text-text-secondary dark:text-text-secondary-dark\"\n )}\n >\n <svg className=\"w-3.5 h-3.5 mr-1 shrink-0 text-text-disabled dark:text-text-disabled-dark\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\" /></svg>\n <Typography variant=\"body2\" className=\"text-xs truncate flex-1 min-w-0\">{table.tableName}</Typography>\n <div className=\"flex items-center gap-1.5 shrink-0 ml-2\">\n {table.rlsEnabled ? (\n <Tooltip title={t(\"studio_rls_enabled\")}>\n <div className=\"w-1.5 h-1.5 rounded-full bg-green-500\" />\n </Tooltip>\n ) : (\n <Tooltip title={t(\"studio_rls_disabled\")}>\n <div className=\"w-1.5 h-1.5 rounded-full bg-orange-400 opacity-50\" />\n </Tooltip>\n )}\n <span className=\"text-[10px] opacity-40 group-hover:opacity-100 min-w-[1.2rem] text-right font-medium\">\n {table.policies.length}\n </span>\n </div>\n </div>\n );\n })}\n </div>\n )}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n\n {sidebarTab === \"info\" && (\n <div className=\"flex flex-col h-full\">\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">\n Overview\n </Typography>\n </div>\n <div className=\"flex-grow overflow-y-auto p-3 space-y-3 no-scrollbar\">\n <div className={cls(\"p-3 rounded-lg border bg-white dark:bg-surface-900\", defaultBorderMixin)}>\n <div className=\"flex items-center gap-2 mb-2\">\n <SecurityIcon size=\"small\" className=\"text-primary\" />\n <Typography variant=\"body2\" className=\"font-semibold text-[13px]\">RLS Studio</Typography>\n </div>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[11px] leading-relaxed block\">\n Manage Row Level Security policies for your PostgreSQL tables. Enable RLS and create fine-grained access policies.\n </Typography>\n </div>\n\n <div className=\"space-y-2\">\n <div className={cls(\"p-2.5 rounded border bg-white dark:bg-surface-900 flex items-center justify-between\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[11px]\">Total tables</Typography>\n <Typography variant=\"body2\" className=\"font-mono text-[13px] font-medium\">{rlsStats.total}</Typography>\n </div>\n <div className={cls(\"p-2.5 rounded border bg-white dark:bg-surface-900 flex items-center justify-between\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[11px]\">RLS enabled</Typography>\n <div className=\"flex items-center gap-1.5\">\n <div className=\"w-1.5 h-1.5 rounded-full bg-green-500\" />\n <Typography variant=\"body2\" className=\"font-mono text-[13px] font-medium\">{rlsStats.enabled}</Typography>\n </div>\n </div>\n <div className={cls(\"p-2.5 rounded border bg-white dark:bg-surface-900 flex items-center justify-between\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[11px]\">Tables with policies</Typography>\n <Typography variant=\"body2\" className=\"font-mono text-[13px] font-medium\">{rlsStats.withPolicies}</Typography>\n </div>\n <div className={cls(\"p-2.5 rounded border bg-white dark:bg-surface-900 flex items-center justify-between\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark text-[11px]\">Total policies</Typography>\n <Typography variant=\"body2\" className=\"font-mono text-[13px] font-medium\">{rlsStats.totalPolicies}</Typography>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n }\n secondPanel={\n <div className=\"flex-grow flex flex-col min-w-0 h-full w-full bg-white dark:bg-surface-950\">\n {/* Toolbar Header matching SQL/JS Editor style */}\n <div className={cls(\"flex items-center justify-between pr-2 border-b bg-white dark:bg-surface-950 min-h-[46px]\", defaultBorderMixin)}>\n <div className=\"flex items-center flex-grow overflow-hidden px-4\">\n <Typography variant=\"subtitle2\" className=\"font-mono text-text-secondary dark:text-text-secondary-dark truncate\">\n {activeTableData ? `${activeTableData.schemaName}.${activeTableData.tableName}` : t(\"studio_rls_select_table\")}\n </Typography>\n {activeTableData && (\n <div className=\"ml-3\">\n {activeTableData.rlsEnabled ? (\n <Chip size=\"smallest\" className=\"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400 border-green-200 dark:border-green-800\">{t(\"studio_rls_enabled\")}</Chip>\n ) : (\n <Chip size=\"smallest\" className=\"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400 border-yellow-200 dark:border-yellow-800\">{t(\"studio_rls_disabled\")}</Chip>\n )}\n </div>\n )}\n </div>\n <div className=\"flex shrink-0 items-center justify-end gap-1.5\">\n {activeTableData && (\n <>\n <Button\n variant=\"text\"\n size=\"small\"\n onClick={async () => {\n const table = activeTableData.tableName;\n const action = activeTableData.rlsEnabled ? \"DISABLE\" : \"ENABLE\";\n if (!confirm(`Are you sure you want to ${action.toLowerCase()} Row Level Security on \"${table}\"?`)) return;\n try {\n await databaseAdmin!.executeSql!(`ALTER TABLE \"${table}\" ${action} ROW LEVEL SECURITY`);\n snackbarController.open({ type: \"success\", message: `RLS ${action.toLowerCase()}d on ${table}` });\n fetchRLSData();\n } catch (e: unknown) {\n snackbarController.open({ type: \"error\", message: e instanceof Error ? e.message : String(e) });\n }\n }}\n >\n {activeTableData.rlsEnabled ? t(\"studio_rls_disable_rls\") : t(\"studio_rls_enable_rls\")}\n </Button>\n\n <div className=\"h-4 w-px bg-surface-200 dark:bg-surface-800 mx-1\" />\n\n <Button\n variant=\"text\"\n size=\"small\"\n onClick={fetchRLSData}\n startIcon={<RefreshIcon size=\"smallest\" />}\n >\n Refresh\n </Button>\n\n <div className=\"h-4 w-px bg-surface-200 dark:bg-surface-800 mx-1\" />\n\n <Button\n size=\"small\"\n color=\"primary\"\n disabled={!activeCollection}\n onClick={() => setEditingPolicy(\"new\")}\n >\n {t(\"studio_rls_create_policy\")}\n </Button>\n </>\n )}\n </div>\n </div>\n\n {error ? (\n <div className=\"p-6 h-full flex items-center justify-center\">\n <ErrorView title={t(\"studio_rls_error\")} error={error} onRetry={fetchRLSData} />\n </div>\n ) : !activeTableData ? (\n <div className=\"flex-grow flex items-center justify-center text-text-disabled h-full\">\n <div className=\"text-center\">\n <svg className=\"w-12 h-12 mx-auto mb-4 opacity-50\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1} d=\"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z\" /></svg>\n <Typography variant=\"body2\">{t(\"studio_rls_select_table\")}</Typography>\n </div>\n </div>\n ) : editingPolicy ? (\n <PolicyEditor\n policy={editingPolicy === \"new\" ? undefined : editingPolicy}\n schema={activeTableData.schemaName}\n table={activeTableData.tableName}\n onSave={async (newPolicy) => {\n if (!activeCollection) return;\n const rule: Record<string, unknown> = {\n name: newPolicy.policyname,\n operation: newPolicy.cmd?.toLowerCase(),\n mode: newPolicy.permissive?.toLowerCase(),\n using: newPolicy.qual || undefined,\n withCheck: newPolicy.with_check || undefined,\n roles: newPolicy.roles\n };\n\n const existingRules = (isPostgresCollection(activeCollection) ? activeCollection.securityRules : undefined) || [];\n let newRules;\n if (editingPolicy === \"new\") {\n newRules = [...existingRules, rule];\n } else {\n newRules = existingRules.map((r: { name?: string }) => r.name === editingPolicy.policyname ? rule : r);\n }\n\n try {\n const response = await fetch(`${apiUrl}/api/schema-editor/collection/save`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n collectionId: (activeCollection as { id?: string, path?: string, alias?: string }).id || (activeCollection as { id?: string, path?: string, alias?: string }).path || (activeCollection as { id?: string, path?: string, alias?: string }).alias || activeTableData.tableName,\n collectionData: { securityRules: newRules }\n })\n });\n if (!response.ok) throw new Error(\"Failed to save policy\");\n\n snackbarController.open({ type: \"success\", message: \"Policy saved successfully\" });\n setEditingPolicy(null);\n fetchRLSData();\n } catch (e: unknown) {\n snackbarController.open({ type: \"error\", message: e instanceof Error ? e.message : String(e) });\n }\n }}\n onCancel={() => setEditingPolicy(null)}\n />\n ) : (\n <div className=\"flex-grow flex flex-col overflow-hidden\">\n <div className=\"p-6 pt-4 flex-grow overflow-auto bg-surface-50 dark:bg-surface-900\">\n <div className=\"max-w-4xl mx-auto flex flex-col gap-6\">\n {activeTableData && !activeCollection && (\n <Alert\n color=\"warning\"\n >\n <Typography variant=\"body2\" className=\"mb-1\">\n Table not managed by Rebase\n </Typography>\n <Typography variant=\"caption\" className=\"opacity-80\">\n This table is not mapped to a Rebase Schema via code. To edit security policies visually, you must first import this table into a Schema configuration file.\n </Typography>\n </Alert>\n )}\n\n {activeTableData && !activeTableData.rlsEnabled && (\n <div className={cls(\"p-4 sm:p-5 bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-900/50 rounded-lg flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between\", defaultBorderMixin)}>\n <div className=\"flex gap-3 items-start\">\n <div className=\"mt-1 bg-yellow-100 dark:bg-yellow-900/50 p-1.5 rounded-md shrink-0 flex items-center justify-center\">\n <WarningIcon size=\"small\" />\n </div>\n <div>\n <Typography variant=\"subtitle2\" className=\"text-yellow-800 dark:text-yellow-500\">\n Row Level Security (RLS) is disabled\n </Typography>\n <Typography variant=\"body2\" className=\"text-yellow-700 dark:text-yellow-600/90 mt-1 max-w-2xl\">\n Your table is completely readable and writable by anyone with access privileges. Enable RLS to create policies that restrict access to specific rows.\n </Typography>\n </div>\n </div>\n <Button\n size=\"medium\"\n variant=\"filled\"\n color=\"neutral\"\n onClick={() => setEditingPolicy(\"new\")}\n className=\"shrink-0 whitespace-nowrap\"\n disabled={!activeCollection}\n >\n {t(\"studio_rls_create_policy\")}\n </Button>\n </div>\n )}\n\n {activeTableData && mergedPolicies && mergedPolicies.length > 0 && (\n <div className=\"flex flex-col gap-3\">\n <Typography variant=\"subtitle2\" className=\"text-text-secondary dark:text-text-secondary-dark uppercase tracking-wider mb-1\">{t(\"studio_rls_policies\")}</Typography>\n {mergedPolicies.map(policy => (\n <Paper key={policy.policyname} className={cls(\"p-3 sm:px-4 sm:py-3 flex flex-col sm:flex-row sm:items-center justify-between gap-4 border rounded-lg\", defaultBorderMixin)}>\n <div className=\"flex flex-col gap-2 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <KeyIcon size=\"small\" className=\"text-text-secondary dark:text-text-secondary-dark shrink-0\" />\n <Typography variant=\"body2\" className=\"truncate\">{policy.policyname}</Typography>\n {policy.status === \"code_only\" && (\n <Tooltip title=\"This policy is defined in your code but hasn't been applied to the database yet.\">\n <div className=\"px-1.5 py-0.5 rounded text-[10px] uppercase bg-primary/10 text-primary border border-primary/20 shrink-0\">\n Unapplied\n </div>\n </Tooltip>\n )}\n {policy.status === \"live\" && (\n <Tooltip title=\"This policy is live in the database but missing from your codebase schema.\">\n <div className=\"px-1.5 py-0.5 rounded text-[10px] uppercase bg-orange-500/10 text-orange-600 border border-orange-500/20 shrink-0\">\n DB Only\n </div>\n </Tooltip>\n )}\n </div>\n <div className=\"flex flex-wrap gap-1.5 text-sm\">\n {renderPolicyTag(\"Action\", policy.cmd)}\n {renderPolicyTag(\"Roles\", Array.isArray(policy.roles) ? policy.roles.join(\", \") : policy.roles)}\n </div>\n </div>\n <div className=\"flex gap-2 shrink-0 items-center\">\n {policy.status === \"live\" && activeCollection && (\n <Button\n size=\"small\"\n variant=\"outlined\"\n color=\"primary\"\n onClick={async () => {\n const rule: Record<string, unknown> = {\n name: policy.policyname,\n operation: policy.cmd?.toLowerCase(),\n mode: policy.permissive?.toLowerCase(),\n using: policy.qual || undefined,\n withCheck: policy.with_check || undefined,\n roles: policy.roles\n };\n\n const existingRules = (isPostgresCollection(activeCollection) ? activeCollection.securityRules : undefined) || [];\n const newRules = [...existingRules, rule];\n\n try {\n const response = await fetch(`${apiUrl}/api/schema-editor/collection/save`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n collectionId: (activeCollection as { id?: string, path?: string, alias?: string }).id || (activeCollection as { id?: string, path?: string, alias?: string }).path || (activeCollection as { id?: string, path?: string, alias?: string }).alias || activeTableData!.tableName,\n collectionData: { securityRules: newRules }\n })\n });\n if (!response.ok) throw new Error(\"Failed to save policy\");\n\n snackbarController.open({ type: \"success\", message: \"Policy imported successfully\" });\n fetchRLSData();\n } catch (e: unknown) {\n snackbarController.open({ type: \"error\", message: e instanceof Error ? e.message : String(e) });\n }\n }}\n >\n Import to codebase\n </Button>\n )}\n <Button size=\"small\" variant=\"text\" color=\"primary\" onClick={() => setEditingPolicy(policy)} disabled={!activeCollection}>\n {t(\"studio_rls_edit\")}\n </Button>\n {policy.status !== \"code_only\" && (\n <Tooltip title={t(\"studio_rls_delete\")} asChild={true}>\n <IconButton\n size=\"small\"\n onClick={async () => {\n const table = activeTableData!.tableName;\n if (!confirm(`Drop policy \"${policy.policyname}\" from table \"${table}\"?`)) return;\n try {\n await databaseAdmin!.executeSql!(`DROP POLICY \"${policy.policyname}\" ON \"${table}\"`);\n snackbarController.open({ type: \"success\", message: `Policy \"${policy.policyname}\" dropped` });\n fetchRLSData();\n } catch (e: unknown) {\n snackbarController.open({ type: \"error\", message: e instanceof Error ? e.message : String(e) });\n }\n }}\n >\n <DeleteIcon size=\"small\" />\n </IconButton>\n </Tooltip>\n )}\n </div>\n </Paper>\n ))}\n </div>\n )}\n\n </div>\n </div>\n </div>\n )}\n </div>\n }\n />\n </div>\n );\n};\n","import React, { useState, useEffect, useCallback, useMemo } from \"react\";\nimport {\n Typography,\n cls,\n defaultBorderMixin,\n Button,\n IconButton,\n Tooltip,\n CircularProgress,\n ResizablePanels,\n Chip,\n Dialog,\n DialogContent,\n DialogActions,\n RefreshIcon,\n DeleteIcon,\n CloseIcon,\n AddIcon,\n DownloadIcon,\n CloudUploadIcon,\n FolderIcon,\n DescriptionIcon,\n ImageIcon,\n VideoLibraryIcon,\n AudiotrackIcon,\n ArrowBackIcon,\n Icon,\n FileUpload\n} from \"@rebasepro/ui\";\nimport { useStorageSource, useSnackbarController, ErrorView } from \"@rebasepro/core\";\nimport type { StorageListResult } from \"@rebasepro/types\";\n\n// ──────────────────────────────────────────────\n// Types\n// ──────────────────────────────────────────────\n\ninterface StorageFile {\n name: string;\n fullPath: string;\n isFolder: boolean;\n /** Only populated when metadata is fetched */\n size?: number;\n contentType?: string;\n downloadUrl?: string;\n}\n\n// ──────────────────────────────────────────────\n// Helpers\n// ──────────────────────────────────────────────\n\nfunction formatFileSize(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`;\n}\n\nfunction getFileIcon(contentType?: string) {\n if (!contentType) return DescriptionIcon;\n if (contentType.startsWith(\"image/\")) return ImageIcon;\n if (contentType.startsWith(\"video/\")) return VideoLibraryIcon;\n if (contentType.startsWith(\"audio/\")) return AudiotrackIcon;\n return DescriptionIcon;\n}\n\nfunction getExtension(name: string): string {\n const parts = name.split(\".\");\n return parts.length > 1 ? parts[parts.length - 1].toUpperCase() : \"\";\n}\n\nfunction breadcrumbSegments(path: string): { label: string; path: string }[] {\n if (!path || path === \"/\") return [{ label: \"Root\", path: \"\" }];\n const parts = path.split(\"/\").filter(Boolean);\n const segments = [{ label: \"Root\", path: \"\" }];\n let accumulated = \"\";\n for (const part of parts) {\n accumulated = accumulated ? `${accumulated}/${part}` : part;\n segments.push({ label: part, path: accumulated });\n }\n return segments;\n}\n\n// ──────────────────────────────────────────────\n// Upload Dialog\n// ──────────────────────────────────────────────\n\nfunction UploadDialog({\n open,\n currentPath,\n onClose,\n onUpload\n}: {\n open: boolean;\n currentPath: string;\n onClose: () => void;\n onUpload: (files: File[]) => Promise<void>;\n}) {\n const [uploading, setUploading] = useState(false);\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n const [error, setError] = useState<string | null>(null);\n\n const handleFilesAdded = useCallback((files: File[]) => {\n setSelectedFiles(prev => [...prev, ...files]);\n }, []);\n\n const handleRemoveFile = useCallback((index: number) => {\n setSelectedFiles(prev => prev.filter((_, i) => i !== index));\n }, []);\n\n const handleUpload = useCallback(async () => {\n if (selectedFiles.length === 0) return;\n setUploading(true);\n setError(null);\n try {\n await onUpload(selectedFiles);\n setSelectedFiles([]);\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : \"Upload failed\");\n } finally {\n setUploading(false);\n }\n }, [selectedFiles, onUpload, onClose]);\n\n const handleClose = useCallback(() => {\n if (!uploading) {\n setSelectedFiles([]);\n setError(null);\n onClose();\n }\n }, [uploading, onClose]);\n\n return (\n <Dialog open={open} onOpenChange={(o) => !o && handleClose()} maxWidth=\"md\">\n <DialogContent className=\"p-0\">\n <div className=\"p-4 border-b border-surface-accent-200 dark:border-surface-accent-700\">\n <Typography variant=\"h6\">Upload Files</Typography>\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark mt-1 block\">\n to <span className=\"font-mono text-primary\">/{currentPath || \"root\"}</span>\n </Typography>\n </div>\n\n <div className=\"p-4\">\n {/* Drop Zone */}\n <FileUpload\n accept={{} as Record<string, string[]>}\n onFilesAdded={handleFilesAdded}\n size=\"large\"\n uploadDescription={\n <div className=\"flex flex-col items-center justify-center pointer-events-none mt-2\">\n <CloudUploadIcon className=\"text-surface-accent-400 mb-2 w-8 h-8\" />\n <Typography variant=\"h6\" className=\"font-bold\">\n Drop files here or click to browse\n </Typography>\n <Typography variant=\"caption\" className=\"text-surface-accent-500 font-medium\">\n Any file type supported\n </Typography>\n </div>\n }\n />\n\n {error && (\n <Typography variant=\"caption\" className=\"text-red-500 mt-2 block whitespace-pre-line\">\n {error}\n </Typography>\n )}\n\n {selectedFiles.length > 0 && (\n <div className=\"mt-4 space-y-2\">\n <Typography variant=\"caption\" className=\"text-surface-accent-500\">\n Selected files ({selectedFiles.length})\n </Typography>\n <div className=\"max-h-40 overflow-auto space-y-1\">\n {selectedFiles.map((file, index) => (\n <div\n key={`${file.name}-${index}`}\n className={cls(\n \"flex items-center justify-between p-2 rounded\",\n \"bg-surface-accent-50 dark:bg-surface-accent-800\"\n )}\n >\n <div className=\"flex-1 min-w-0 mr-2\">\n <Typography variant=\"body2\" className=\"truncate\">\n {file.name}\n </Typography>\n <Typography variant=\"caption\" className=\"text-surface-accent-500\">\n {formatFileSize(file.size)}\n </Typography>\n </div>\n <Button\n variant=\"text\"\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n handleRemoveFile(index);\n }}\n disabled={uploading}\n >\n Remove\n </Button>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n </DialogContent>\n\n <DialogActions>\n <Button variant=\"text\" onClick={handleClose} disabled={uploading}>\n Cancel\n </Button>\n <Button\n variant=\"filled\"\n onClick={handleUpload}\n disabled={selectedFiles.length === 0 || uploading}\n >\n {uploading ? (\n <>\n <CircularProgress size=\"smallest\" />\n Uploading...\n </>\n ) : (\n `Upload ${selectedFiles.length > 0 ? `(${selectedFiles.length})` : \"\"}`\n )}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n\n// ──────────────────────────────────────────────\n// File preview panel\n// ──────────────────────────────────────────────\n\nfunction FilePreviewPanel({\n file,\n onClose,\n onDelete,\n downloadUrl\n}: {\n file: StorageFile;\n onClose: () => void;\n onDelete: () => void;\n downloadUrl: string | null;\n}) {\n const isImage = file.contentType?.startsWith(\"image/\");\n const isVideo = file.contentType?.startsWith(\"video/\");\n const isAudio = file.contentType?.startsWith(\"audio/\");\n const FileIconComponent = getFileIcon(file.contentType);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n\n return (\n <>\n <div className={cls(\n \"flex flex-col h-full border-l\",\n defaultBorderMixin,\n \"bg-white dark:bg-surface-950\"\n )}>\n {/* Header */}\n <div className={cls(\"flex items-center justify-between p-3 border-b shrink-0\", defaultBorderMixin)}>\n <Typography variant=\"body2\" className=\"font-medium truncate flex-1 mr-2\">\n {file.name}\n </Typography>\n <div className=\"flex items-center gap-0.5\">\n {downloadUrl && (\n <Tooltip title=\"Download\">\n <IconButton\n size=\"small\"\n onClick={() => window.open(downloadUrl, \"_blank\")}\n >\n <DownloadIcon size=\"smallest\" />\n </IconButton>\n </Tooltip>\n )}\n <Tooltip title=\"Delete\">\n <IconButton\n size=\"small\"\n onClick={() => setDeleteDialogOpen(true)}\n className=\"text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20\"\n >\n <DeleteIcon size=\"smallest\" />\n </IconButton>\n </Tooltip>\n <IconButton size=\"small\" onClick={onClose}>\n <CloseIcon size=\"smallest\" />\n </IconButton>\n </div>\n </div>\n\n {/* Preview */}\n <div className=\"flex-1 overflow-auto\">\n <div className=\"flex flex-col items-center justify-center min-h-[200px] p-4 bg-surface-50 dark:bg-surface-900 border-b border-surface-accent-200 dark:border-surface-accent-700\">\n {(() => {\n const ext = getExtension(file.name)?.toLowerCase() || \"\";\n const isImage = file.contentType?.startsWith(\"image/\") || [\"jpg\", \"jpeg\", \"png\", \"gif\", \"webp\", \"svg\"].includes(ext);\n const isVideo = file.contentType?.startsWith(\"video/\") || [\"mp4\", \"webm\", \"ogg\", \"mov\"].includes(ext);\n const isAudio = file.contentType?.startsWith(\"audio/\") || [\"mp3\", \"wav\", \"ogg\", \"m4a\"].includes(ext);\n const downloadUrl = file.downloadUrl;\n\n if (isImage && downloadUrl) {\n return (\n <img\n src={downloadUrl}\n alt={file.name}\n className=\"max-w-full max-h-[400px] object-contain rounded-md shadow-sm\"\n />\n );\n } else if (isVideo && downloadUrl) {\n return (\n <video\n src={downloadUrl}\n className=\"max-w-full max-h-[400px] rounded-md\"\n controls\n />\n );\n } else if (isAudio && downloadUrl) {\n return (\n <div className=\"flex flex-col items-center gap-4\">\n <AudiotrackIcon className=\"text-surface-accent-400 w-10 h-10\" />\n <audio src={downloadUrl} controls className=\"w-full max-w-xs\" />\n </div>\n );\n } else {\n return (\n <div className=\"flex flex-col items-center gap-3 text-surface-accent-400\">\n <FileIconComponent className=\"w-10 h-10\" />\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">\n No preview available\n </Typography>\n </div>\n );\n }\n })()}\n </div>\n </div>\n\n {/* Metadata */}\n <div className=\"p-4 space-y-3\">\n <div>\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark text-[10px] uppercase tracking-wider font-bold mb-1 block\">\n File Info\n </Typography>\n </div>\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <Typography variant=\"caption\" className=\"text-surface-accent-500 text-[11px]\">\n Name\n </Typography>\n <Typography variant=\"body2\" className=\"text-[13px] break-all\">\n {file.name}\n </Typography>\n </div>\n <div>\n <Typography variant=\"caption\" className=\"text-surface-accent-500 text-[11px]\">\n Type\n </Typography>\n <Typography variant=\"body2\" className=\"text-[13px]\">\n {file.contentType || \"Unknown\"}\n </Typography>\n </div>\n {file.size !== undefined && (\n <div>\n <Typography variant=\"caption\" className=\"text-surface-accent-500 text-[11px]\">\n Size\n </Typography>\n <Typography variant=\"body2\" className=\"text-[13px]\">\n {formatFileSize(file.size)}\n </Typography>\n </div>\n )}\n <div>\n <Typography variant=\"caption\" className=\"text-surface-accent-500 text-[11px]\">\n Extension\n </Typography>\n <Typography variant=\"body2\" className=\"text-[13px] font-mono\">\n {getExtension(file.name) || \"—\"}\n </Typography>\n </div>\n <div className=\"col-span-2\">\n <Typography variant=\"caption\" className=\"text-surface-accent-500 text-[11px]\">\n Path\n </Typography>\n <Typography variant=\"body2\" className=\"text-[13px] font-mono break-all\">\n {file.fullPath}\n </Typography>\n </div>\n </div>\n\n {downloadUrl && (\n <div className=\"pt-2\">\n <Typography variant=\"caption\" className=\"text-surface-accent-500 text-[11px] block mb-1\">\n URL\n </Typography>\n <div\n className=\"p-2 rounded bg-surface-100 dark:bg-surface-800 cursor-pointer hover:bg-surface-200 dark:hover:bg-surface-700 transition-colors\"\n onClick={() => {\n navigator.clipboard.writeText(downloadUrl);\n }}\n >\n <Typography variant=\"caption\" className=\"font-mono text-[11px] break-all text-primary\">\n {downloadUrl}\n </Typography>\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark text-[10px] block mt-1\">\n Click to copy\n </Typography>\n </div>\n </div>\n )}\n </div>\n </div>\n\n {/* Delete Confirmation */}\n <Dialog open={deleteDialogOpen} onOpenChange={setDeleteDialogOpen}>\n <DialogContent>\n <Typography variant=\"subtitle1\" className=\"mb-2\">\n Delete File?\n </Typography>\n <Typography className=\"text-surface-accent-600 dark:text-surface-accent-400\">\n Are you sure you want to delete &quot;{file.name}&quot;?\n This action cannot be undone.\n </Typography>\n </DialogContent>\n <DialogActions>\n <Button variant=\"text\" onClick={() => setDeleteDialogOpen(false)}>\n Cancel\n </Button>\n <Button\n variant=\"filled\"\n color=\"error\"\n onClick={() => {\n setDeleteDialogOpen(false);\n onDelete();\n }}\n >\n Delete\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n}\n\n// ──────────────────────────────────────────────\n// Sidebar (folder tree)\n// ──────────────────────────────────────────────\n\nfunction StorageSidebar({\n folders,\n currentPath,\n onNavigate,\n loading\n}: {\n folders: StorageFile[];\n currentPath: string;\n onNavigate: (path: string) => void;\n loading: boolean;\n}) {\n const segments = breadcrumbSegments(currentPath);\n\n return (\n <div className={cls(\"flex flex-col h-full w-full bg-white dark:bg-surface-950 border-r\", defaultBorderMixin)}>\n <div className={cls(\"p-3 border-b flex justify-between items-center bg-surface-50 dark:bg-surface-900 shrink-0\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-bold uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\">\n Folders\n </Typography>\n </div>\n\n <div className=\"flex-grow overflow-y-auto no-scrollbar p-1\">\n {/* Folder tree */}\n <div\n className={cls(\n \"flex items-center p-1.5 cursor-pointer rounded transition-colors\",\n currentPath === \"\" || !currentPath\n ? \"bg-primary/10 text-primary dark:bg-primary/20 dark:text-primary-light\"\n : \"hover:bg-surface-100 dark:hover:bg-surface-800 text-text-secondary dark:text-text-secondary-dark\"\n )}\n onClick={() => onNavigate(\"\")}\n >\n <Icon iconKey=\"home\" size=\"smallest\" className=\"mr-1.5 shrink-0\" />\n <Typography variant=\"body2\" className=\"text-xs truncate\">Root</Typography>\n </div>\n\n {loading && folders.length === 0 ? (\n <div className=\"flex justify-center p-4\">\n <CircularProgress size=\"small\" />\n </div>\n ) : (\n <div className=\"mt-1 space-y-0.5\">\n {folders.map(folder => {\n const isSelected = currentPath === folder.fullPath;\n return (\n <div\n key={folder.fullPath}\n className={cls(\n \"flex items-center p-1.5 cursor-pointer rounded transition-colors group\",\n isSelected\n ? \"bg-primary/10 text-primary dark:bg-primary/20 dark:text-primary-light\"\n : \"hover:bg-surface-100 dark:hover:bg-surface-800 text-text-secondary dark:text-text-secondary-dark\"\n )}\n onClick={() => onNavigate(folder.fullPath)}\n >\n <FolderIcon size=\"smallest\" className=\"mr-1.5 shrink-0 text-amber-500 dark:text-amber-400\" />\n <Typography variant=\"body2\" className=\"text-xs truncate flex-1 min-w-0\">\n {folder.name}\n </Typography>\n </div>\n );\n })}\n </div>\n )}\n </div>\n </div>\n );\n}\n\n// ──────────────────────────────────────────────\n// Main StorageView Export\n// ──────────────────────────────────────────────\n\nexport const StorageView = () => {\n const storageSource = useStorageSource();\n const snackbarController = useSnackbarController();\n\n // Navigation\n const [currentPath, setCurrentPath] = useState(\"\");\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n // Contents\n const [folders, setFolders] = useState<StorageFile[]>([]);\n const [files, setFiles] = useState<StorageFile[]>([]);\n\n // Selection and preview\n const [selectedFile, setSelectedFile] = useState<StorageFile | null>(null);\n const [selectedDownloadUrl, setSelectedDownloadUrl] = useState<string | null>(null);\n\n // Upload\n const [uploadDialogOpen, setUploadDialogOpen] = useState(false);\n\n // View mode\n const [viewMode, setViewMode] = useState<\"grid\" | \"list\">(\"grid\");\n\n // Resizable panels\n\n // Resizable panels\n const [sidebarSize, setSidebarSize] = useState(() => {\n try {\n const saved = localStorage.getItem(\"rebase_storage_sidebar_size\");\n return saved !== null ? parseFloat(saved) : 18;\n } catch {\n return 18;\n }\n });\n\n useEffect(() => {\n try {\n localStorage.setItem(\"rebase_storage_sidebar_size\", sidebarSize.toString());\n } catch { /* noop */ }\n }, [sidebarSize]);\n\n // ── Fetch directory contents ──\n const fetchContents = useCallback(async (path: string) => {\n setLoading(true);\n setError(null);\n try {\n const result: StorageListResult = await storageSource.list(path);\n\n const folderItems: StorageFile[] = (result.prefixes ?? []).map(ref => ({\n name: ref.name,\n fullPath: ref.fullPath,\n isFolder: true\n }));\n\n // Build file items and fetch metadata for each\n const fileItems: StorageFile[] = await Promise.all(\n (result.items ?? []).map(async (ref) => {\n try {\n const downloadConfig = await storageSource.getDownloadURL(ref.fullPath);\n return {\n name: ref.name,\n fullPath: ref.fullPath,\n isFolder: false,\n size: downloadConfig.metadata?.size,\n contentType: downloadConfig.metadata?.contentType,\n downloadUrl: downloadConfig.url ?? undefined\n };\n } catch {\n return {\n name: ref.name,\n fullPath: ref.fullPath,\n isFolder: false\n };\n }\n })\n );\n\n setFolders(folderItems);\n setFiles(fileItems);\n } catch (e) {\n console.error(\"Storage list error:\", e);\n setError(e instanceof Error ? e.message : String(e));\n } finally {\n setLoading(false);\n }\n }, [storageSource]);\n\n useEffect(() => {\n fetchContents(currentPath);\n }, [currentPath, fetchContents]);\n\n // Navigate to path\n const handleNavigate = useCallback((path: string) => {\n setCurrentPath(path);\n setSelectedFile(null);\n setSelectedDownloadUrl(null);\n }, []);\n\n // Navigate up one level\n const handleNavigateUp = useCallback(() => {\n const parts = currentPath.split(\"/\").filter(Boolean);\n parts.pop();\n handleNavigate(parts.join(\"/\"));\n }, [currentPath, handleNavigate]);\n\n // Select a file for preview\n const handleSelectFile = useCallback(async (file: StorageFile) => {\n setSelectedFile(file);\n if (file.downloadUrl) {\n setSelectedDownloadUrl(file.downloadUrl);\n } else {\n try {\n const config = await storageSource.getDownloadURL(file.fullPath);\n setSelectedDownloadUrl(config.url);\n } catch {\n setSelectedDownloadUrl(null);\n }\n }\n }, [storageSource]);\n\n // Upload files\n const handleUpload = useCallback(async (uploadFiles: File[]) => {\n for (const file of uploadFiles) {\n await storageSource.uploadFile({\n file,\n fileName: file.name,\n path: currentPath || undefined\n });\n }\n snackbarController.open({\n type: \"success\",\n message: `${uploadFiles.length} file${uploadFiles.length > 1 ? \"s\" : \"\"} uploaded successfully`\n });\n fetchContents(currentPath);\n }, [storageSource, currentPath, snackbarController, fetchContents]);\n\n // Delete a file\n const handleDeleteFile = useCallback(async (file: StorageFile) => {\n try {\n await storageSource.deleteFile(file.fullPath);\n snackbarController.open({ type: \"success\", message: `\"${file.name}\" deleted` });\n setSelectedFile(null);\n setSelectedDownloadUrl(null);\n fetchContents(currentPath);\n } catch (e) {\n snackbarController.open({ type: \"error\", message: e instanceof Error ? e.message : String(e) });\n }\n }, [storageSource, currentPath, snackbarController, fetchContents]);\n\n // Handle refresh\n const handleRefresh = useCallback(() => {\n fetchContents(currentPath);\n }, [currentPath, fetchContents]);\n\n const segments = breadcrumbSegments(currentPath);\n\n // ── Render file grid/list ──\n const renderContents = () => {\n if (loading) {\n return (\n <div className=\"flex-grow flex items-center justify-center\">\n <div className=\"text-center\">\n <CircularProgress size=\"medium\" />\n <Typography variant=\"body2\" className=\"mt-4 text-text-secondary dark:text-text-secondary-dark font-mono tracking-tight animate-pulse\">\n Loading...\n </Typography>\n </div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"flex-grow flex items-center justify-center p-6 overflow-auto\">\n <ErrorView title=\"Error loading storage\" error={error} onRetry={handleRefresh} />\n </div>\n );\n }\n\n const allItems = [...folders, ...files];\n\n if (allItems.length === 0) {\n return (\n <div className=\"flex-grow flex items-center justify-center text-text-disabled dark:text-text-disabled-dark\">\n <div className=\"text-center\">\n <svg className=\"w-12 h-12 mx-auto mb-4 opacity-50\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1} d=\"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z\" />\n </svg>\n <Typography variant=\"body2\">\n This folder is empty\n </Typography>\n <Button className=\"mt-3\" onClick={() => setUploadDialogOpen(true)}>\n <AddIcon size=\"small\" />\n Upload files\n </Button>\n </div>\n </div>\n );\n }\n\n if (viewMode === \"list\") {\n return (\n <div className=\"flex-grow overflow-auto\">\n <table className=\"w-full\">\n <thead>\n <tr className={cls(\"border-b text-left text-[10px] uppercase tracking-wider text-text-disabled dark:text-text-disabled-dark\", defaultBorderMixin)}>\n <th className=\"px-4 py-2 font-bold\">Name</th>\n <th className=\"px-4 py-2 font-bold w-24\">Type</th>\n <th className=\"px-4 py-2 font-bold w-24 text-right\">Size</th>\n </tr>\n </thead>\n <tbody>\n {folders.map(folder => (\n <tr\n key={folder.fullPath}\n className=\"hover:bg-surface-100 dark:hover:bg-surface-800 cursor-pointer transition-colors border-b border-surface-100 dark:border-surface-800/50\"\n onClick={() => handleNavigate(folder.fullPath)}\n >\n <td className=\"px-4 py-2.5\">\n <div className=\"flex items-center gap-2\">\n <FolderIcon size=\"smallest\" className=\"text-amber-500 dark:text-amber-400 shrink-0\" />\n <Typography variant=\"body2\" className=\"text-[13px] font-medium truncate\">\n {folder.name}\n </Typography>\n </div>\n </td>\n <td className=\"px-4 py-2.5\">\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark\">\n Folder\n </Typography>\n </td>\n <td className=\"px-4 py-2.5 text-right\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark\">\n —\n </Typography>\n </td>\n </tr>\n ))}\n {files.map(file => {\n const FileIconComp = getFileIcon(file.contentType);\n const isSelected = selectedFile?.fullPath === file.fullPath;\n return (\n <tr\n key={file.fullPath}\n className={cls(\n \"cursor-pointer transition-colors border-b border-surface-100 dark:border-surface-800/50\",\n isSelected\n ? \"bg-primary/5 dark:bg-primary/10\"\n : \"hover:bg-surface-100 dark:hover:bg-surface-800\"\n )}\n onClick={() => handleSelectFile(file)}\n >\n <td className=\"px-4 py-2.5\">\n <div className=\"flex items-center gap-2\">\n <FileIconComp size=\"smallest\" className=\"text-surface-accent-400 shrink-0\" />\n <Typography variant=\"body2\" className=\"text-[13px] truncate\">\n {file.name}\n </Typography>\n </div>\n </td>\n <td className=\"px-4 py-2.5\">\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark\">\n {getExtension(file.name) || file.contentType?.split(\"/\")[1]?.toUpperCase() || \"—\"}\n </Typography>\n </td>\n <td className=\"px-4 py-2.5 text-right\">\n <Typography variant=\"caption\" className=\"text-text-secondary dark:text-text-secondary-dark font-mono text-[11px]\">\n {file.size !== undefined ? formatFileSize(file.size) : \"—\"}\n </Typography>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n }\n\n // Grid view\n return (\n <div className=\"flex-grow overflow-auto p-4\">\n {/* Folder cards */}\n {folders.length > 0 && (\n <div className=\"mb-4\">\n <Typography variant=\"caption\" className=\"text-[10px] uppercase tracking-wider font-bold text-text-disabled dark:text-text-disabled-dark mb-2 block\">\n Folders\n </Typography>\n <div className=\"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-3\">\n {folders.map(folder => (\n <div\n key={folder.fullPath}\n className={cls(\n \"rounded-lg p-3 cursor-pointer transition-all duration-150 border\",\n defaultBorderMixin,\n \"hover:bg-surface-100 dark:hover:bg-surface-800 hover:shadow-sm\",\n \"flex items-center gap-2\"\n )}\n onClick={() => handleNavigate(folder.fullPath)}\n >\n <FolderIcon size=\"small\" className=\"text-amber-500 dark:text-amber-400 shrink-0\" />\n <Typography variant=\"body2\" className=\"text-[13px] font-medium truncate\">\n {folder.name}\n </Typography>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* File cards */}\n {files.length > 0 && (\n <div>\n <Typography variant=\"caption\" className=\"text-[10px] uppercase tracking-wider font-bold text-text-disabled dark:text-text-disabled-dark mb-2 block\">\n Files ({files.length})\n </Typography>\n <div className=\"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-3\">\n {files.map(file => {\n const FileIconComp = getFileIcon(file.contentType);\n const ext = getExtension(file.name)?.toLowerCase() || \"\";\n const isImage = file.contentType?.startsWith(\"image/\") || [\"jpg\", \"jpeg\", \"png\", \"gif\", \"webp\", \"svg\"].includes(ext);\n const isSelected = selectedFile?.fullPath === file.fullPath;\n\n return (\n <div\n key={file.fullPath}\n className={cls(\n \"rounded-lg overflow-hidden cursor-pointer transition-all duration-150 border group\",\n defaultBorderMixin,\n \"hover:shadow-md hover:-translate-y-0.5\",\n isSelected && \"ring-2 ring-primary\"\n )}\n onClick={() => handleSelectFile(file)}\n >\n {/* Thumbnail or icon */}\n <div className=\"aspect-square relative overflow-hidden bg-surface-100 dark:bg-surface-800 flex items-center justify-center\">\n {isImage && file.downloadUrl ? (\n <img\n src={file.downloadUrl}\n alt={file.name}\n className=\"w-full h-full object-cover transition-transform duration-200 group-hover:scale-105\"\n loading=\"lazy\"\n />\n ) : (\n <FileIconComp className=\"text-surface-accent-400 dark:text-surface-accent-500 w-8 h-8\" />\n )}\n\n {/* Extension badge */}\n {getExtension(file.name) && (\n <div className=\"absolute bottom-1.5 right-1.5 px-1.5 py-0.5 rounded text-[9px] font-bold uppercase bg-black/50 text-white backdrop-blur-sm\">\n {getExtension(file.name)}\n </div>\n )}\n\n {/* Hover overlay */}\n <div className={cls(\n \"absolute inset-0 bg-black/0 group-hover:bg-black/10\",\n \"transition-colors duration-200\"\n )} />\n </div>\n\n {/* Name & size */}\n <div className=\"p-2.5\">\n <Typography variant=\"body2\" className=\"text-[12px] font-medium truncate text-surface-900 dark:text-white\">\n {file.name}\n </Typography>\n <Typography variant=\"caption\" color=\"secondary\" className=\"truncate block mt-0.5 text-[11px]\">\n {file.size !== undefined ? formatFileSize(file.size) : \"—\"}\n </Typography>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div className=\"flex h-full w-full bg-white dark:bg-surface-950 overflow-hidden text-text-primary dark:text-text-primary-dark\">\n <ResizablePanels\n orientation=\"horizontal\"\n panelSizePercent={sidebarSize}\n onPanelSizeChange={setSidebarSize}\n minPanelSizePx={180}\n firstPanel={\n <StorageSidebar\n folders={folders}\n currentPath={currentPath}\n onNavigate={handleNavigate}\n loading={loading}\n />\n }\n secondPanel={\n <div className=\"flex h-full w-full\">\n {/* Main content */}\n <div className=\"flex-grow flex flex-col min-w-0 h-full\">\n {/* Toolbar */}\n <div className={cls(\"flex items-center justify-between pr-2 border-b bg-white dark:bg-surface-950 shrink-0\", defaultBorderMixin)}>\n <div className=\"flex items-center gap-1.5 flex-grow overflow-hidden px-3 py-2\">\n {/* Breadcrumbs */}\n {currentPath && (\n <Tooltip title=\"Go up\">\n <IconButton size=\"small\" onClick={handleNavigateUp}>\n <ArrowBackIcon size=\"smallest\" />\n </IconButton>\n </Tooltip>\n )}\n <div className=\"flex items-center gap-0.5 overflow-x-auto no-scrollbar\">\n {segments.map((seg, i) => (\n <React.Fragment key={seg.path}>\n {i > 0 && (\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark mx-0.5\">/</Typography>\n )}\n <Button\n variant=\"text\"\n size=\"small\"\n className={cls(\n \"px-1.5 py-0.5 min-h-0 min-w-0 h-6 text-xs whitespace-nowrap normal-case font-normal\",\n i === segments.length - 1\n ? \"text-text-primary dark:text-text-primary-dark font-medium\"\n : \"text-text-secondary dark:text-text-secondary-dark\"\n )}\n onClick={() => handleNavigate(seg.path)}\n >\n {seg.label}\n </Button>\n </React.Fragment>\n ))}\n </div>\n\n <div className=\"flex-1\" />\n\n {/* File count */}\n {!loading && (\n <Chip size=\"small\" className=\"shrink-0 text-[10px]\">\n {files.length} file{files.length !== 1 ? \"s\" : \"\"}\n {folders.length > 0 ? `, ${folders.length} folder${folders.length !== 1 ? \"s\" : \"\"}` : \"\"}\n </Chip>\n )}\n </div>\n\n <div className=\"flex shrink-0 items-center justify-end gap-1.5 pr-1\">\n\n <Tooltip title=\"Grid view\">\n <IconButton\n size=\"small\"\n onClick={() => setViewMode(\"grid\")}\n className={cls(viewMode === \"grid\" && \"bg-surface-100 dark:bg-surface-800\")}\n >\n <Icon iconKey=\"apps\" size=\"smallest\" />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"List view\">\n <IconButton\n size=\"small\"\n onClick={() => setViewMode(\"list\")}\n className={cls(viewMode === \"list\" && \"bg-surface-100 dark:bg-surface-800\")}\n >\n <Icon iconKey=\"list\" size=\"smallest\" />\n </IconButton>\n </Tooltip>\n\n <div className=\"h-4 w-px bg-surface-200 dark:bg-surface-800 mx-0.5\" />\n\n <Tooltip title=\"Refresh\">\n <IconButton size=\"small\" onClick={handleRefresh} disabled={loading}>\n <RefreshIcon size=\"smallest\" />\n </IconButton>\n </Tooltip>\n\n <Button\n size=\"small\"\n color=\"primary\"\n onClick={() => setUploadDialogOpen(true)}\n >\n <CloudUploadIcon size=\"smallest\" className=\"mr-1\" />\n Upload\n </Button>\n </div>\n </div>\n\n {/* File grid / list */}\n <div className=\"flex-grow flex flex-col overflow-hidden min-h-0\">\n {renderContents()}\n </div>\n\n {/* Status bar */}\n <div className={cls(\"px-4 py-1.5 border-t bg-surface-50 dark:bg-surface-900 flex items-center justify-between shrink-0\", defaultBorderMixin)}>\n <div className=\"flex items-center gap-4 text-[11px]\">\n <span className=\"text-text-disabled dark:text-text-disabled-dark font-bold uppercase tracking-tighter\">\n Path\n </span>\n <span className=\"font-mono text-text-secondary dark:text-text-secondary-dark\">\n /{currentPath || \"\"}\n </span>\n </div>\n {selectedFile && (\n <div className=\"text-[11px] text-text-secondary dark:text-text-secondary-dark\">\n Selected: <span className=\"font-mono\">{selectedFile.name}</span>\n </div>\n )}\n </div>\n </div>\n\n {/* Preview panel */}\n {selectedFile && (\n <div className=\"w-80 lg:w-96 shrink-0\">\n <FilePreviewPanel\n file={selectedFile}\n downloadUrl={selectedDownloadUrl}\n onClose={() => {\n setSelectedFile(null);\n setSelectedDownloadUrl(null);\n }}\n onDelete={() => handleDeleteFile(selectedFile)}\n />\n </div>\n )}\n </div>\n }\n />\n\n {/* Upload Dialog */}\n <UploadDialog\n open={uploadDialogOpen}\n currentPath={currentPath}\n onClose={() => setUploadDialogOpen(false)}\n onUpload={handleUpload}\n />\n </div>\n );\n};\n","import type { HomePageSection, PluginGenericProps } from \"@rebasepro/types\";\nimport React, { useEffect } from \"react\";\nimport { ArrowForwardIcon, Card, cls, Container, Typography } from \"@rebasepro/ui\";\nimport { IconForView, useRebaseContext, useRestoreScroll, useSlot } from \"@rebasepro/core\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useStudioBreadcrumbs } from \"@rebasepro/core\";\n\n/* ═══════════════════════════════════════════════════════════════\n Static studio tool definitions\n ═══════════════════════════════════════════════════════════════ */\n\ninterface StudioTool {\n path: string;\n name: string;\n description: string;\n icon: string;\n}\n\ninterface StudioSection {\n label: string;\n dotColor: string;\n iconColor: string;\n tools: StudioTool[];\n}\n\nconst SECTIONS: StudioSection[] = [\n {\n label: \"Database\",\n dotColor: \"bg-blue-400\",\n iconColor: \"text-blue-400\",\n tools: [\n { path: \"/sql\", name: \"SQL Console\", description: \"Execute raw SQL queries directly against your database\", icon: \"terminal\" },\n { path: \"/js\", name: \"JS Console\", description: \"Run JavaScript with the Rebase SDK in a live sandbox\", icon: \"code\" },\n { path: \"/rls\", name: \"RLS Policies\", description: \"Configure Row Level Security for fine-grained data access\", icon: \"security\" },\n { path: \"/branches\", name: \"Database Branching\", description: \"Create instant, isolated database copies for dev, staging, and testing\", icon: \"account_tree\" },\n ],\n },\n {\n label: \"Schema & Data\",\n dotColor: \"bg-violet-400\",\n iconColor: \"text-violet-400\",\n tools: [\n { path: \"/schema\", name: \"Collections\", description: \"Define and manage your data model and collection schemas\", icon: \"view_list\" },\n { path: \"/storage\", name: \"Storage\", description: \"Browse, upload, and manage files in your storage bucket\", icon: \"cloud\" },\n ],\n },\n {\n label: \"Administration\",\n dotColor: \"bg-amber-400\",\n iconColor: \"text-amber-400\",\n tools: [\n { path: \"/users\", name: \"Users\", description: \"Manage developers and assign roles in your workspace\", icon: \"group\" },\n { path: \"/roles\", name: \"Roles\", description: \"Create and configure fine-grained access permissions\", icon: \"admin_panel_settings\" },\n ],\n },\n];\n\n/* ═══════════════════════════════════════════════════════════════ */\n\nexport function StudioHomePage({\n additionalActions,\n additionalChildrenStart,\n additionalChildrenEnd,\n sections,\n hiddenGroups,\n}: {\n additionalActions?: React.ReactNode;\n additionalChildrenStart?: React.ReactNode;\n additionalChildrenEnd?: React.ReactNode;\n sections?: HomePageSection[];\n hiddenGroups?: string[];\n}) {\n const context = useRebaseContext();\n const breadcrumbs = useStudioBreadcrumbs();\n const navigate = useNavigate();\n\n useEffect(() => {\n breadcrumbs.set({ breadcrumbs: [] });\n }, [breadcrumbs.set]);\n\n const { containerRef } = useRestoreScroll();\n\n const sectionProps: PluginGenericProps = { context };\n const pluginChildrenStart = useSlot(\"home.children.start\", sectionProps);\n const pluginChildrenEnd = useSlot(\"home.children.end\", sectionProps);\n const pluginActions = useSlot(\"home.actions\", sectionProps);\n\n return (\n <div ref={containerRef} className=\"py-2 overflow-auto h-full w-full\">\n <Container maxWidth=\"6xl\">\n\n {(additionalActions || pluginActions) && (\n <div className=\"w-full sticky py-4 transition-all duration-400 ease-in-out top-0 z-10 flex flex-row gap-4 justify-end\">\n {additionalActions}\n {pluginActions}\n </div>\n )}\n\n {additionalChildrenStart}\n {pluginChildrenStart}\n\n {/* ── Tool sections ── */}\n <div className=\"flex flex-col gap-8 pt-2\">\n {SECTIONS.map((section) => (\n <section key={section.label} aria-label={section.label}>\n {/* Section header */}\n <Typography\n variant=\"caption\"\n component=\"h2\"\n color=\"secondary\"\n className=\"py-2 font-medium uppercase text-sm text-surface-600 dark:text-surface-400\"\n >\n {section.label}\n </Typography>\n\n {/* Card grid */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 mt-2\">\n {section.tools.map((tool) => (\n <Card\n key={tool.path}\n onClick={() => {\n navigate(tool.path);\n context.analyticsController?.onAnalyticsEvent?.(\n \"home_navigate_to_view\",\n { path: tool.path }\n );\n }}\n className={cls(\n \"h-full px-4 py-2.5 cursor-pointer transition-all duration-200 ease-in-out\",\n \"hover:-translate-y-0.5 hover:shadow-md hover:shadow-primary/5\"\n )}\n >\n <div className=\"flex flex-col items-start h-full\">\n <div className=\"grow w-full\">\n {/* Icon */}\n <div className={cls(\"h-6 flex items-center\", section.iconColor)}>\n <IconForView\n collectionOrView={{ slug: tool.path, name: tool.name, icon: tool.icon }}\n size=\"small\"\n />\n </div>\n\n {/* Title */}\n <Typography\n gutterBottom\n variant=\"subtitle1\"\n className=\"mt-1 font-semibold\"\n component=\"h2\"\n >\n {tool.name}\n </Typography>\n\n {/* Description */}\n <Typography variant=\"caption\" color=\"secondary\" component=\"div\">\n {tool.description}\n </Typography>\n </div>\n\n {/* Arrow */}\n <div style={{ alignSelf: \"flex-end\" }}>\n <div className=\"p-2\">\n <ArrowForwardIcon className=\"text-primary\" size=\"small\" />\n </div>\n </div>\n </div>\n </Card>\n ))}\n </div>\n </section>\n ))}\n </div>\n\n {/* ── SDK Quick Start ── */}\n <div className=\"mt-10 mb-6\">\n <div className=\"flex items-center mb-1\">\n <Typography\n variant=\"caption\"\n component=\"h2\"\n color=\"secondary\"\n className=\"py-2 font-medium uppercase text-sm text-surface-600 dark:text-surface-400\"\n >\n Quick Start\n </Typography>\n </div>\n\n <Typography variant=\"body2\" color=\"secondary\" className=\"mb-4 max-w-2xl\">\n Generate a fully-typed SDK from your collections with{\" \"}\n <code className=\"text-emerald-400 font-mono text-xs bg-emerald-400/10 px-1.5 py-0.5 rounded\">\n npx rebase generate-sdk\n </code>\n {\" \"}and start querying your data with full TypeScript autocompletion.\n </Typography>\n\n <div className=\"rounded-lg border border-surface-200/40 dark:border-surface-700/40 bg-white dark:bg-surface-950 overflow-hidden\">\n {/* Title bar */}\n <div className=\"flex items-center justify-between px-4 py-2.5 border-b border-surface-200/40 dark:border-surface-700/40 bg-surface-50 dark:bg-surface-900/80\">\n <div className=\"flex items-center gap-2.5\">\n <div className=\"flex gap-1.5\">\n <span className=\"w-2.5 h-2.5 rounded-full bg-red-400/60\" />\n <span className=\"w-2.5 h-2.5 rounded-full bg-amber-400/60\" />\n <span className=\"w-2.5 h-2.5 rounded-full bg-emerald-400/60\" />\n </div>\n <span className=\"text-xs font-mono text-surface-400 dark:text-surface-500 ml-1\">\n app.ts\n </span>\n </div>\n <span className=\"text-xs font-mono text-surface-400 dark:text-surface-500\">\n TypeScript\n </span>\n </div>\n\n {/* Syntax-highlighted code */}\n <div className=\"px-5 py-4 overflow-x-auto text-[13px] leading-6 font-mono\">\n <SyntaxHighlightedSnippet />\n </div>\n </div>\n </div>\n\n {/* ── Extra sections from props ── */}\n {sections?.map((s) => (\n <div key={s.key} className=\"my-10\">\n <Typography\n variant=\"caption\"\n component=\"h2\"\n color=\"secondary\"\n className=\"p-4 py-2 rounded font-medium uppercase text-sm text-surface-600 dark:text-surface-400\"\n >\n {s.title}\n </Typography>\n <div className=\"mt-4\">{s.children}</div>\n </div>\n ))}\n\n {pluginChildrenEnd}\n {additionalChildrenEnd}\n </Container>\n </div>\n );\n}\n\n/* ═══════════════════════════════════════════════════════════════\n Hand-crafted syntax-highlighted code snippet.\n Uses inline spans with Tailwind color classes to avoid\n pulling in a syntax highlighting library.\n ═══════════════════════════════════════════════════════════════ */\n\nfunction SyntaxHighlightedSnippet() {\n const kw = \"text-violet-400\"; // keywords\n const str = \"text-emerald-400\"; // strings\n const typ = \"text-amber-300\"; // types\n const fn = \"text-blue-400\"; // functions\n const cm = \"text-surface-500 italic\"; // comments\n const op = \"text-surface-400\"; // operators / punctuation\n const tx = \"text-surface-200\"; // plain text\n\n return (\n <pre className=\"m-0 whitespace-pre\">\n <span className={kw}>import</span>\n <span className={tx}>{\" { \"}</span>\n <span className={fn}>createRebaseClient</span>\n <span className={tx}>{\" } \"}</span>\n <span className={kw}>from</span>\n <span className={tx}> </span>\n <span className={str}>'@rebasepro/client'</span>\n <span className={op}>;</span>\n {\"\\n\"}\n\n <span className={kw}>import</span>\n <span className={tx}> </span>\n <span className={kw}>type</span>\n <span className={tx}>{\" { \"}</span>\n <span className={typ}>Database</span>\n <span className={tx}>{\" } \"}</span>\n <span className={kw}>from</span>\n <span className={tx}> </span>\n <span className={str}>'./database.types'</span>\n <span className={op}>;</span>\n {\"\\n\\n\"}\n\n <span className={kw}>const</span>\n <span className={tx}> rebase </span>\n <span className={op}>= </span>\n <span className={fn}>createRebaseClient</span>\n <span className={op}>{\"<\"}</span>\n <span className={typ}>Database</span>\n <span className={op}>{\">(\"}</span>\n <span className={tx}>{\"{\"}</span>\n {\"\\n\"}\n <span className={tx}>{\" baseUrl\"}</span>\n <span className={op}>: </span>\n <span className={str}>'http://localhost:3001'</span>\n <span className={op}>,</span>\n {\"\\n\"}\n <span className={tx}>{\"}\"}</span>\n <span className={op}>);</span>\n {\"\\n\\n\"}\n\n <span className={cm}>{\"// Fully typed — autocompletion for tables and columns\"}</span>\n {\"\\n\"}\n <span className={kw}>const</span>\n <span className={tx}>{\" { \"}</span>\n <span className={tx}>data</span>\n <span className={op}>: </span>\n <span className={tx}>users</span>\n <span className={tx}>{\" } \"}</span>\n <span className={op}>= </span>\n <span className={kw}>await</span>\n <span className={tx}> rebase</span>\n <span className={op}>.</span>\n <span className={tx}>data</span>\n <span className={op}>.</span>\n <span className={tx}>users</span>\n <span className={op}>.</span>\n <span className={fn}>find</span>\n <span className={op}>();</span>\n {\"\\n\"}\n\n <span className={kw}>const</span>\n <span className={tx}>{\" { \"}</span>\n <span className={tx}>data</span>\n <span className={op}>: </span>\n <span className={tx}>posts</span>\n <span className={tx}>{\" } \"}</span>\n <span className={op}>= </span>\n <span className={kw}>await</span>\n <span className={tx}> rebase</span>\n <span className={op}>.</span>\n <span className={tx}>data</span>\n <span className={op}>.</span>\n <span className={fn}>collection</span>\n <span className={op}>(</span>\n <span className={str}>'posts'</span>\n <span className={op}>)</span>\n <span className={op}>.</span>\n <span className={fn}>find</span>\n <span className={op}>();</span>\n </pre>\n );\n}\n","import React, { useLayoutEffect, useMemo } from \"react\";\nimport { useRebaseRegistryDispatch } from \"@rebasepro/core\";\nimport type { RebaseStudioConfig, AppView } from \"@rebasepro/types\";\n\nimport { SQLEditor } from \"./SQLEditor/SQLEditor\";\nimport { JSEditor } from \"./JSEditor/JSEditor\";\nimport { RLSEditor } from \"./RLSEditor/RLSEditor\";\nimport { StorageView } from \"./StorageView/StorageView\";\nimport { StudioHomePage } from \"./StudioHomePage\";\n\n/**\n * Declarative component to configure the Studio in Rebase.\n * Renders nothing — purely registers config into the RebaseRegistry.\n *\n * The \"schema\" tool (collection editor view) is now a built-in CMS feature.\n * When `<RebaseCMS collectionEditor={...}>` is used, the schema view is\n * automatically injected into Studio — no manual wiring needed.\n */\nexport function RebaseStudio({ tools, homePage = <StudioHomePage /> }: RebaseStudioConfig) {\n const dispatch = useRebaseRegistryDispatch();\n \n const devViews: AppView[] = useMemo(() => {\n const views: AppView[] = [];\n const activeTools = tools ?? [\"sql\", \"js\", \"rls\", \"storage\"];\n \n if (activeTools.includes(\"sql\")) {\n views.push({ slug: \"sql\", name: \"SQL Console\", group: \"Database\", icon: \"terminal\", description: \"Execute SQL queries\", view: <SQLEditor /> });\n }\n if (activeTools.includes(\"js\")) {\n views.push({ slug: \"js\", name: \"JS Console\", group: \"Database\", icon: \"code\", description: \"Execute JavaScript\", view: <JSEditor /> });\n }\n if (activeTools.includes(\"rls\")) {\n views.push({ slug: \"rls\", name: \"RLS Policies\", group: \"Database\", icon: \"security\", description: \"Row Level Security\", view: <RLSEditor /> });\n }\n if (activeTools.includes(\"storage\")) {\n views.push({ slug: \"storage\", name: \"Storage\", group: \"Storage\", icon: \"cloud\", description: \"Manage storage files\", view: <StorageView /> });\n }\n // Note: \"schema\" tool is auto-injected by RebaseShell when collectionEditor is enabled.\n // It is NOT registered here anymore.\n return views;\n }, [tools]);\n\n useLayoutEffect(() => {\n dispatch.registerStudio({ tools, homePage, devViews });\n return () => dispatch.unregisterStudio();\n }, [dispatch, tools, homePage, devViews]);\n\n return null;\n}\n"],"names":["MonacoEditor","value","onChange","onRun","className","readOnly","autoFocus","schemas","mode","useModeController","editorRef","useRef","monacoRef","onRunRef","current","schemasRef","handleEditorOnMount","editor","monaco","addAction","id","label","keybindings","KeyMod","CtrlCmd","KeyCode","Enter","contextMenuGroupId","contextMenuOrder","run","selection","getSelection","selectedText","undefined","isEmpty","getModel","getValueInRange","trim","sqlKeywords","languages","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","model","position","word","getWordUntilPosition","range","startLineNumber","lineNumber","endLineNumber","startColumn","endColumn","textUntilPosition","column","match","tableNameMatch","suggestions","allSchemas","tables","Object","entries","table","find","t","tableName","columns","forEach","col","push","name","kind","CompletionItemKind","Field","insertText","detail","sortText","sName","Class","keyword","Keyword","fullText","getValue","activeTables","Set","regex","RegExp","test","add","addedColumns","has","focus","cls","minimap","enabled","fontSize","lineNumbers","scrollBeyondLastLine","automaticLayout","tabSize","wordWrap","SchemaBrowser","onTableClick","isSchemaLoading","schemaError","onRetrySchema","expandedSchemas","setExpandedSchemas","useState","public","expandedTables","setExpandedTables","useTranslation","defaultBorderMixin","keys","length","map","schemaName","prev","e","stopPropagation","navigator","clipboard","writeText","c","join","dataType","SQLEditorSidebar","onSelectSnippet","snippets","history","onDeleteSnippet","activeTab","setActiveTab","v","favorites","filter","s","isFavorite","others","snippet","sql","reverse","i","extractTablesFromQuery","sqlString","ast","parseFirst","type","processFrom","fromItems","item","alias","left","right","from","slugToSnakeCase","slug","replace","toLowerCase","resolveQueryCollections","collections","resultColumns","selectColumns","expr","results","matched","tableColumns","schemaEntries","values","tableInfo","pkColumn","tableRef","idSelectCol","sc","includes","tableAlias","collection","determineTableAndPK","columnKey","error","resolvedColumn","actualDbColumnName","columnTableRef","resolvedTableName","matchedTable","matchedTables","schema","ti","some","pkDbColumns","isPrimaryKey","tableEntry","primaryKeys","dbCol","selectCol","dbColumn","resultColumn","console","warn","message","Error","String","ExplainVisualizer","t0","$","_c","plan","isRoot","t1","expanded","setExpanded","hasChildren","Plans","cost","costColor","t2","t3","t4","t5","t6","t7","Symbol","for","t8","t9","t10","t11","t12","Alias","t13","t14","t15","t16","toFixed","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","t31","Filter","t32","t33","t34","t35","t36","t37","_temp","t38","childPlan","idx","VirtualTableInput","cms","require","STORAGE_KEY_TABS","STORAGE_KEY_ACTIVE_TAB","SQLEditor","databaseAdmin","useRebaseContext","sideEntityController","useStudioSideEntityController","snackbarController","useSnackbarController","collectionRegistry","useStudioCollectionRegistry","setSchemas","setIsSchemaLoading","schemaFetchedRef","setSchemaError","selectedDatabase","setSelectedDatabase","localStorage","getItem","selectedRole","setSelectedRole","availableDatabases","setAvailableDatabases","availableRoles","setAvailableRoles","isLoadingConfig","setIsLoadingConfig","connectionConfigError","setConnectionConfigError","tabs","setTabs","saved","parsed","JSON","parse","loading","execTime","lastExecutedSql","database","role","activeTabId","setActiveTabId","updateActiveTab","useCallback","update","setSql","newSql","useEffect","mounted","fetchConnectionConfig","fetchAvailableDatabases","fetchAvailableRoles","dbs","roles","currentDbFromApi","Promise","all","fetchCurrentDatabase","resolve","loadedDb","loadedRole","initialActiveTabId","initialTabs","savedTabs","currentActiveTab","actualDb","setItem","actualRole","err","handleDatabaseChange","db","tabId","handleRoleChange","handleTabChange","newTabId","newTab","fetchSchema","executeSql","result","processGrouped","data","grouped","reduce","acc","curr","SCHEMA","table_schema","TABLE","table_name","COLUMN","column_name","data_type","DATA_TYPE","is_pk","Array","isArray","rows","autoLimit","setAutoLimit","isConfirmDialogOpen","setIsConfirmDialogOpen","pendingAction","setPendingAction","editingCell","setEditingCell","handleDoubleClick","rowIndex","initialValue","rowData","open","resolution","missingPKs","pk","handleCellSave","newValue","formatValue","val","resolveDbColumnName","resultColKey","colName","dbColumnName","whereConditions","updateSql","newResults","columnWidths","setColumnWidths","setSnippets","setHistory","isSaveDialogOpen","setIsSaveDialogOpen","newSnippetName","setNewSnippetName","savedSnippets","savedHistory","sanitizedTabs","stringify","saveSnippets","newSnippets","saveHistory","newHistory","slice","handleDeleteSnippet","handleAddTab","newId","Math","random","toString","substring","maxNumber","tab","num","parseInt","handleCloseTab","tabIndex","findIndex","newTabs","nextIndex","min","handleColumnResize","key","width","newWidths","handlePrettify","formatted","handleExplain","explainSql","start","performance","now","round","executeRun","sqlOverride","sqlToRun","toUpperCase","handleRun","sqlTarget","destructiveKeywords","hasDestructive","kw","hasWhere","handleKeyDown","metaKey","ctrlKey","activeElement","document","isInput","tagName","isMonaco","preventDefault","window","addEventListener","removeEventListener","handleSaveSnippet","newSnippet","createdAt","Date","handleExportCSV","headers","row","str","csv","blob","Blob","url","URL","createObjectURL","a","createElement","href","download","toISOString","click","revokeObjectURL","handleExportJSON","json","handleExportMarkdown","headerRow","dividerRow","dataRows","header","markdown","then","catch","renderResults","Plan","savedWidths","resultColumnKeys","matchedCollections","actionableCollections","mc","getRowEntityActions","entityId","dataColumns","title","sortable","resizable","icon","rowActions","ra","path","updateUrl","isEditing","displayValue","target","sidebarSize","setSidebarSize","parseFloat","editorHeight","setEditorHeight","activeSnippet","checked","REBASE_CLIENT_TYPES","JSMonacoEditor","collectionSlugs","typesRegisteredRef","editorInstance","ts","typescript","typescriptDefaults","setCompilerOptions","ScriptTarget","ESNext","module","ModuleKind","allowJs","checkJs","strict","noEmit","allowNonTsExtensions","setDiagnosticsOptions","diagnosticCodesToIgnore","addExtraLib","lines","ifaceName","propsType","properties","p","collectionHints","suggestOnTriggerCharacters","quickSuggestions","parameterHints","QUICK_REFERENCE","code","description","JSEditorSidebar","onInsertCode","ref","CollectionItem","prop","SnippetItem","onSelect","onDelete","STORAGE_PREFIX","DEFAULT_CODE","loadFromStorage","fallback","raw","saveToStorage","formatJSON","normaliseSlug","detectCollectionsInResult","resultValue","mentionedSlugs","collectionCallRegex","m","exec","dotAccessRegex","size","hasId","r","normalised","collectionSlug","JSEditor","rebaseContext","rebaseClient","useRebaseClient","apiConfig","useApiConfig","snackbar","userManagement","currentUser","authController","user","setResult","isRunning","setIsRunning","showSaveDialog","setShowSaveDialog","snippetName","setSnippetName","resultView","setResultView","selectedUser","setSelectedUser","stored","Number","collectionInfos","useMemo","users","managed","u","uid","displayName","email","photoURL","unshift","currentSelectableUser","updateActiveCode","addTab","closeTab","filtered","fresh","buildClient","client","isScoped","apiUrl","getAuthToken","token","createRebaseClient","baseUrl","executeCode","codeOverride","deduped","h","consoleEntries","startTime","scopedClientToCleanUp","originalConsole","log","info","captureConsole","args","timestamp","context","AsyncFunction","getPrototypeOf","constructor","fn","duration","ws","disconnect","saveSnippet","deleteSnippet","exportResult","tableData","entity","k","entry","JSONHighlight","themes","vsDark","github","style","tokens","getLineProps","getTokenProps","backgroundColor","line","COMMAND_OPTIONS","ROLE_OPTIONS","POLICY_PRESETS","policyname","cmd","permissive","qual","with_check","PolicyEditor","policy","onSave","onCancel","setName","helpOpen","setHelpOpen","behavior","setBehavior","command","setCommand","setRoles","usingExpr","setUsingExpr","checkExpr","setCheckExpr","selectedPreset","setSelectedPreset","initialRoles","presetId","preset","handlePresetChange","showCheck","handleSave","t39","t40","t41","t42","t43","t44","t45","t46","t47","t48","t49","_temp2","t50","t51","t52","t53","t54","v_0","t55","t56","t57","t58","t59","t60","t61","t62","t63","t64","t65","t66","t67","t68","t69","t70","t71","t72","t73","t74","t75","t76","t77","t78","t79","t80","t81","t82","t83","t84","t85","t86","t87","t88","t89","t90","t91","t92","t93","t94","t95","t96","t97","t98","t99","t100","t101","t102","t103","t104","t105","t106","t107","t108","t109","t110","t111","t112","t113","t114","t115","t116","t117","t118","t119","t120","t121","t122","t123","t124","t125","t126","t127","t128","t129","t130","t131","t132","preset_0","RLSEditor","isLoading","setIsLoading","setError","setTables","selectedTable","setSelectedTable","editingPolicy","setEditingPolicy","sidebarTab","setSidebarTab","fetchRLSData","tablesSql","tablesResult","policiesSql","policiesResult","extractRows","tRows","pRows","tableMap","tRow","schemaname","SCHEMANAME","tablename","TABLENAME","rlsEnabled","rowsecurity","ROWSECURITY","policies","pRow","parsedRoles","ROLES","split","POLICYNAME","PERMISSIVE","CMD","QUAL","WITH_CHECK","sortedTables","sort","b","localeCompare","activeTableData","groupedTables","groups","activeCollection","collectionId","mergedPolicies","policiesMap","status","isPostgresCollection","securityRules","rule","ruleName","operation","using","withCheck","rlsStats","total","withPolicies","totalPolicies","sum","renderPolicyTag","schemaTables","isSelected","action","confirm","newPolicy","existingRules","newRules","response","fetch","method","body","collectionData","ok","formatFileSize","bytes","getFileIcon","contentType","DescriptionIcon","startsWith","ImageIcon","VideoLibraryIcon","AudiotrackIcon","getExtension","parts","breadcrumbSegments","Boolean","segments","accumulated","part","UploadDialog","currentPath","onClose","onUpload","uploading","setUploading","selectedFiles","setSelectedFiles","handleFilesAdded","files","handleRemoveFile","index","_","handleUpload","handleClose","o","file","FilePreviewPanel","downloadUrl","FileIconComponent","deleteDialogOpen","setDeleteDialogOpen","ext","isImage_0","isVideo_0","isAudio_0","downloadUrl_0","isImage","isVideo","isAudio","fullPath","StorageSidebar","folders","onNavigate","folder","StorageView","storageSource","useStorageSource","setCurrentPath","setLoading","setFolders","setFiles","selectedFile","setSelectedFile","selectedDownloadUrl","setSelectedDownloadUrl","uploadDialogOpen","setUploadDialogOpen","viewMode","setViewMode","fetchContents","list","folderItems","prefixes","isFolder","fileItems","items","downloadConfig","getDownloadURL","metadata","handleNavigate","handleNavigateUp","pop","handleSelectFile","config","uploadFiles","uploadFile","fileName","handleDeleteFile","deleteFile","handleRefresh","renderContents","allItems","FileIconComp","seg","SECTIONS","dotColor","iconColor","tools","StudioHomePage","additionalActions","additionalChildrenStart","additionalChildrenEnd","sections","breadcrumbs","useStudioBreadcrumbs","navigate","useNavigate","set","containerRef","useRestoreScroll","sectionProps","pluginChildrenStart","useSlot","pluginChildrenEnd","pluginActions","section","tool","analyticsController","onAnalyticsEvent","alignSelf","children","SyntaxHighlightedSnippet","tx","op","typ","cm","RebaseStudio","homePage","dispatch","useRebaseRegistryDispatch","devViews","views","activeTools","group","view","useLayoutEffect","registerStudio","unregisterStudio"],"mappings":"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"}