@solidxai/core-ui 0.1.12-beta.3 → 0.1.12-beta.6

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 (86) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +12 -5
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +15 -4
  5. package/dist/components/auth/AuthSettingsContext.js +1 -1
  6. package/dist/components/auth/AuthSettingsContext.js.map +1 -1
  7. package/dist/components/auth/AuthSettingsContext.tsx +1 -1
  8. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  9. package/dist/components/core/chatter/SolidChatterHeader.js +18 -4
  10. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  11. package/dist/components/core/chatter/SolidChatterHeader.tsx +17 -3
  12. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  13. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +12 -2
  14. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  15. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +12 -1
  16. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +2 -0
  17. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -1
  18. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +4 -2
  19. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -1
  20. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +11 -3
  21. package/dist/components/core/form/SolidFormView.js +1 -1
  22. package/dist/components/core/form/SolidFormView.js.map +1 -1
  23. package/dist/components/core/form/SolidFormView.tsx +1 -1
  24. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
  25. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +11 -1
  26. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
  27. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +26 -19
  28. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  29. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +13 -5
  30. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  31. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +16 -9
  32. package/dist/components/core/json/SolidJsonEditor.css +7 -0
  33. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  34. package/dist/components/core/list/SolidDataTable.js +2 -2
  35. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  36. package/dist/components/core/list/SolidDataTable.tsx +2 -1
  37. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  38. package/dist/components/core/list/SolidListView.js +58 -58
  39. package/dist/components/core/list/SolidListView.js.map +1 -1
  40. package/dist/components/core/list/SolidListView.tsx +5 -4
  41. package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
  42. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  43. package/dist/components/core/model/FieldMetaDataForm.js +119 -102
  44. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  45. package/dist/components/core/model/FieldMetaDataForm.tsx +82 -39
  46. package/dist/components/core/model/FieldSelector.d.ts +5 -1
  47. package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
  48. package/dist/components/core/model/FieldSelector.js +25 -6
  49. package/dist/components/core/model/FieldSelector.js.map +1 -1
  50. package/dist/components/core/model/FieldSelector.tsx +50 -5
  51. package/dist/components/core/module/CreateModule.css +60 -6
  52. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  53. package/dist/components/core/module/CreateModule.js +2 -2
  54. package/dist/components/core/module/CreateModule.js.map +1 -1
  55. package/dist/components/core/module/CreateModule.tsx +56 -37
  56. package/dist/components/layout/AdminTopHeader.js +1 -1
  57. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  58. package/dist/components/layout/AdminTopHeader.tsx +2 -2
  59. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  60. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  61. package/dist/components/shad-cn-ui/SolidSelect.js +12 -4
  62. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  63. package/dist/components/shad-cn-ui/SolidSelect.tsx +13 -1
  64. package/dist/helpers/modelViewPersistence.d.ts.map +1 -1
  65. package/dist/helpers/modelViewPersistence.js +3 -2
  66. package/dist/helpers/modelViewPersistence.js.map +1 -1
  67. package/dist/helpers/modelViewPersistence.ts +3 -2
  68. package/dist/redux/api/datasourceIntrospectionApi.d.ts +43 -1
  69. package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
  70. package/dist/redux/api/datasourceIntrospectionApi.js +34 -1
  71. package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
  72. package/dist/redux/api/datasourceIntrospectionApi.ts +61 -0
  73. package/dist/redux/store/defaultStoreConfig.d.ts +11 -0
  74. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  75. package/dist/resources/solid-custom.css +3 -86
  76. package/dist/resources/solid-tailwind-generated.css +1 -1
  77. package/dist/resources/themes/solid-dark-purple/theme-variables.css +226 -0
  78. package/dist/resources/themes/solid-dark-purple/theme.css +1 -185
  79. package/dist/resources/themes/solid-light-purple/theme-variables.css +237 -0
  80. package/dist/resources/themes/solid-light-purple/theme.css +1 -206
  81. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +396 -31
  82. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  83. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +680 -152
  84. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  85. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1358 -441
  86. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"modelViewPersistence.d.ts","sourceRoot":"","sources":["../../src/helpers/modelViewPersistence.ts"],"names":[],"mappings":"AAuHA,eAAO,MAAM,yBAAyB,WAAY,MAAM,SAkBvD,CAAC;AAIF,eAAO,MAAM,8BAA8B,WAAY,MAAM,KAAG,MAAM,GAAG,IA0BxE,CAAC;AAIF,eAAO,MAAM,6BAA6B,WAAY,MAAM,KAAG,MAM9D,CAAC;AAIF,eAAO,MAAM,4BAA4B,YAAa,MAAM,SAmB3D,CAAC"}
1
+ {"version":3,"file":"modelViewPersistence.d.ts","sourceRoot":"","sources":["../../src/helpers/modelViewPersistence.ts"],"names":[],"mappings":"AAuHA,eAAO,MAAM,yBAAyB,WAAY,MAAM,SAkBvD,CAAC;AAIF,eAAO,MAAM,8BAA8B,WAAY,MAAM,KAAG,MAAM,GAAG,IA2BxE,CAAC;AAIF,eAAO,MAAM,6BAA6B,WAAY,MAAM,KAAG,MAM9D,CAAC;AAIF,eAAO,MAAM,4BAA4B,YAAa,MAAM,SAmB3D,CAAC"}
@@ -118,10 +118,11 @@ export var getPersistedLastModelViewRoute = function (target) {
118
118
  if (!route)
119
119
  return null;
120
120
  var stored = readStoredModelViews();
121
+ var hasMenuScope = Boolean(route.menuItemId || route.actionId);
121
122
  var candidateKeys = [
122
- Boolean(route.menuItemId || route.actionId) ? getScopedStorageKey(route) : null,
123
+ hasMenuScope ? getScopedStorageKey(route) : null,
123
124
  route.menuItemId ? getMenuStorageKey(route) : null,
124
- getModelStorageKey(route),
125
+ hasMenuScope ? null : getModelStorageKey(route),
125
126
  ].filter(Boolean);
126
127
  var bestMatch = null;
127
128
  for (var priority = 0; priority < candidateKeys.length; priority += 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"modelViewPersistence.js","sourceRoot":"","sources":["../../src/helpers/modelViewPersistence.ts"],"names":[],"mappings":"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","sourcesContent":["const MODEL_VIEW_STORAGE_KEY = \"solidx.model.last-view\";\n\nconst MODEL_VIEW_ROUTE_REGEX =\n /^\\/admin\\/core\\/([^/]+)\\/([^/]+)\\/(list|tree|kanban|card)$/;\n\ntype ParsedModelViewRoute = {\n actionId: string;\n fullPath: string;\n menuItemId: string;\n modelName: string;\n moduleName: string;\n pathname: string;\n viewType: \"list\" | \"tree\" | \"kanban\" | \"card\";\n};\n\ntype StoredModelViewEntry = {\n path: string;\n updatedAt: number;\n};\n\ntype StoredModelViewMap = Record<string, StoredModelViewEntry | string>;\n\nconst getRouteParsingBase = () => {\n if (typeof window !== \"undefined\" && window.location?.origin) {\n return window.location.origin;\n }\n\n};\n\n// Normalize a list/tree/kanban/card URL into a shape we can store and compare.\n// We keep the full query string because menu/action params are part of the return route.\nconst parseModelViewRoute = (target: string): ParsedModelViewRoute | null => {\n if (!target) return null;\n\n try {\n const url = new URL(target, getRouteParsingBase());\n const match = url.pathname.match(MODEL_VIEW_ROUTE_REGEX);\n\n if (!match) return null;\n\n const [, moduleName, modelName, viewType] = match;\n const menuItemId = url.searchParams.get(\"menuItemId\") || \"\";\n const actionId = url.searchParams.get(\"actionId\") || \"\";\n\n return {\n actionId,\n fullPath: `${url.pathname}${url.search}`,\n menuItemId,\n modelName,\n moduleName,\n pathname: url.pathname,\n viewType: viewType as ParsedModelViewRoute[\"viewType\"],\n };\n } catch (error) {\n return null;\n }\n};\n\nconst getScopedStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}:menu:${route.menuItemId}:action:${route.actionId}`;\n\nconst getMenuStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}:menu:${route.menuItemId}`;\n\nconst getModelStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}`;\n\n// Older saved values may exist as plain strings from previous implementations.\n// Convert everything into one consistent shape before comparing timestamps.\nconst normalizeStoredEntry = (value: StoredModelViewEntry | string | undefined | null): StoredModelViewEntry | null => {\n if (!value) return null;\n\n if (typeof value === \"string\") {\n return {\n path: value,\n updatedAt: 0,\n };\n }\n\n if (typeof value.path !== \"string\" || !value.path) {\n return null;\n }\n\n return {\n path: value.path,\n updatedAt: Number(value.updatedAt) || 0,\n };\n};\n\nconst readStoredModelViews = (): StoredModelViewMap => {\n if (typeof window === \"undefined\") return {};\n\n try {\n const raw = window.localStorage.getItem(MODEL_VIEW_STORAGE_KEY);\n if (!raw) return {};\n\n const parsed = JSON.parse(raw);\n return parsed && typeof parsed === \"object\" ? parsed : {};\n } catch (error) {\n return {};\n }\n};\n\nconst writeStoredModelViews = (next: StoredModelViewMap) => {\n if (typeof window === \"undefined\") return;\n\n try {\n window.localStorage.setItem(MODEL_VIEW_STORAGE_KEY, JSON.stringify(next));\n } catch (error) {\n // Ignore storage write failures and keep navigation working.\n }\n};\n\n// Save the current route at three scopes:\n// 1. exact model + menu + action\n// 2. model + menu\n// 3. model\n// This lets us reopen the most useful last-selected view even when the user\n// returns through a slightly different sidebar/menu link.\nexport const persistLastModelViewRoute = (target: string) => {\n if (typeof window === \"undefined\") return;\n\n const route = parseModelViewRoute(target);\n if (!route) return;\n\n const next = readStoredModelViews();\n const entry: StoredModelViewEntry = {\n path: route.fullPath,\n updatedAt: Date.now(),\n };\n\n next[getScopedStorageKey(route)] = entry;\n if (route.menuItemId) {\n next[getMenuStorageKey(route)] = entry;\n }\n next[getModelStorageKey(route)] = entry;\n writeStoredModelViews(next);\n};\n\n// Resolve the best saved route for the current model context.\n// We prefer the newest entry and use scope priority as a tie-breaker.\nexport const getPersistedLastModelViewRoute = (target: string): string | null => {\n if (typeof window === \"undefined\") return null;\n\n const route = parseModelViewRoute(target);\n if (!route) return null;\n\n const stored = readStoredModelViews();\n const candidateKeys = [\n Boolean(route.menuItemId || route.actionId) ? getScopedStorageKey(route) : null,\n route.menuItemId ? getMenuStorageKey(route) : null,\n getModelStorageKey(route),\n ].filter(Boolean) as string[];\n\n let bestMatch: { entry: StoredModelViewEntry; priority: number } | null = null;\n\n for (let priority = 0; priority < candidateKeys.length; priority += 1) {\n const key = candidateKeys[priority];\n const entry = normalizeStoredEntry(stored[key]);\n if (!entry) continue;\n\n if (!bestMatch || entry.updatedAt > bestMatch.entry.updatedAt || (entry.updatedAt === bestMatch.entry.updatedAt && priority < bestMatch.priority)) {\n bestMatch = { entry, priority };\n }\n }\n\n return bestMatch ? bestMatch.entry.path : null;\n};\n\n// Sidebar and menu links often point to `/list` by default.\n// If we have a retained non-list view for the same model context, reopen that instead.\nexport const resolveRetainedModelViewRoute = (target: string): string => {\n const route = parseModelViewRoute(target);\n if (!route || route.viewType !== \"list\") return target;\n\n const storedRoute = getPersistedLastModelViewRoute(target);\n return storedRoute || target;\n};\n\n// Keep short-lived \"back to previous view\" state in sessionStorage and also\n// refresh the longer-lived localStorage route retention in one call.\nexport const storeCurrentModelViewContext = (target?: string) => {\n if (typeof window === \"undefined\") return;\n\n const fallbackTarget = `${window.location.pathname}${window.location.search}`;\n const nextTarget = target || fallbackTarget;\n const route = parseModelViewRoute(nextTarget);\n\n try {\n if (route?.viewType) {\n sessionStorage.setItem(\"fromView\", route.viewType);\n }\n sessionStorage.setItem(\"fromViewUrl\", route?.fullPath || nextTarget);\n } catch (error) {\n // Ignore storage failures so navigation can still continue.\n }\n\n if (route) {\n persistLastModelViewRoute(route.fullPath);\n }\n};\n"]}
1
+ {"version":3,"file":"modelViewPersistence.js","sourceRoot":"","sources":["../../src/helpers/modelViewPersistence.ts"],"names":[],"mappings":"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","sourcesContent":["const MODEL_VIEW_STORAGE_KEY = \"solidx.model.last-view\";\n\nconst MODEL_VIEW_ROUTE_REGEX =\n /^\\/admin\\/core\\/([^/]+)\\/([^/]+)\\/(list|tree|kanban|card)$/;\n\ntype ParsedModelViewRoute = {\n actionId: string;\n fullPath: string;\n menuItemId: string;\n modelName: string;\n moduleName: string;\n pathname: string;\n viewType: \"list\" | \"tree\" | \"kanban\" | \"card\";\n};\n\ntype StoredModelViewEntry = {\n path: string;\n updatedAt: number;\n};\n\ntype StoredModelViewMap = Record<string, StoredModelViewEntry | string>;\n\nconst getRouteParsingBase = () => {\n if (typeof window !== \"undefined\" && window.location?.origin) {\n return window.location.origin;\n }\n\n};\n\n// Normalize a list/tree/kanban/card URL into a shape we can store and compare.\n// We keep the full query string because menu/action params are part of the return route.\nconst parseModelViewRoute = (target: string): ParsedModelViewRoute | null => {\n if (!target) return null;\n\n try {\n const url = new URL(target, getRouteParsingBase());\n const match = url.pathname.match(MODEL_VIEW_ROUTE_REGEX);\n\n if (!match) return null;\n\n const [, moduleName, modelName, viewType] = match;\n const menuItemId = url.searchParams.get(\"menuItemId\") || \"\";\n const actionId = url.searchParams.get(\"actionId\") || \"\";\n\n return {\n actionId,\n fullPath: `${url.pathname}${url.search}`,\n menuItemId,\n modelName,\n moduleName,\n pathname: url.pathname,\n viewType: viewType as ParsedModelViewRoute[\"viewType\"],\n };\n } catch (error) {\n return null;\n }\n};\n\nconst getScopedStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}:menu:${route.menuItemId}:action:${route.actionId}`;\n\nconst getMenuStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}:menu:${route.menuItemId}`;\n\nconst getModelStorageKey = (route: ParsedModelViewRoute) =>\n `model:${route.moduleName}:${route.modelName}`;\n\n// Older saved values may exist as plain strings from previous implementations.\n// Convert everything into one consistent shape before comparing timestamps.\nconst normalizeStoredEntry = (value: StoredModelViewEntry | string | undefined | null): StoredModelViewEntry | null => {\n if (!value) return null;\n\n if (typeof value === \"string\") {\n return {\n path: value,\n updatedAt: 0,\n };\n }\n\n if (typeof value.path !== \"string\" || !value.path) {\n return null;\n }\n\n return {\n path: value.path,\n updatedAt: Number(value.updatedAt) || 0,\n };\n};\n\nconst readStoredModelViews = (): StoredModelViewMap => {\n if (typeof window === \"undefined\") return {};\n\n try {\n const raw = window.localStorage.getItem(MODEL_VIEW_STORAGE_KEY);\n if (!raw) return {};\n\n const parsed = JSON.parse(raw);\n return parsed && typeof parsed === \"object\" ? parsed : {};\n } catch (error) {\n return {};\n }\n};\n\nconst writeStoredModelViews = (next: StoredModelViewMap) => {\n if (typeof window === \"undefined\") return;\n\n try {\n window.localStorage.setItem(MODEL_VIEW_STORAGE_KEY, JSON.stringify(next));\n } catch (error) {\n // Ignore storage write failures and keep navigation working.\n }\n};\n\n// Save the current route at three scopes:\n// 1. exact model + menu + action\n// 2. model + menu\n// 3. model\n// This lets us reopen the most useful last-selected view even when the user\n// returns through a slightly different sidebar/menu link.\nexport const persistLastModelViewRoute = (target: string) => {\n if (typeof window === \"undefined\") return;\n\n const route = parseModelViewRoute(target);\n if (!route) return;\n\n const next = readStoredModelViews();\n const entry: StoredModelViewEntry = {\n path: route.fullPath,\n updatedAt: Date.now(),\n };\n\n next[getScopedStorageKey(route)] = entry;\n if (route.menuItemId) {\n next[getMenuStorageKey(route)] = entry;\n }\n next[getModelStorageKey(route)] = entry;\n writeStoredModelViews(next);\n};\n\n// Resolve the best saved route for the current model context.\n// We prefer the newest entry and use scope priority as a tie-breaker.\nexport const getPersistedLastModelViewRoute = (target: string): string | null => {\n if (typeof window === \"undefined\") return null;\n\n const route = parseModelViewRoute(target);\n if (!route) return null;\n\n const stored = readStoredModelViews();\n const hasMenuScope = Boolean(route.menuItemId || route.actionId);\n const candidateKeys = [\n hasMenuScope ? getScopedStorageKey(route) : null,\n route.menuItemId ? getMenuStorageKey(route) : null,\n hasMenuScope ? null : getModelStorageKey(route),\n ].filter(Boolean) as string[];\n\n let bestMatch: { entry: StoredModelViewEntry; priority: number } | null = null;\n\n for (let priority = 0; priority < candidateKeys.length; priority += 1) {\n const key = candidateKeys[priority];\n const entry = normalizeStoredEntry(stored[key]);\n if (!entry) continue;\n\n if (!bestMatch || entry.updatedAt > bestMatch.entry.updatedAt || (entry.updatedAt === bestMatch.entry.updatedAt && priority < bestMatch.priority)) {\n bestMatch = { entry, priority };\n }\n }\n\n return bestMatch ? bestMatch.entry.path : null;\n};\n\n// Sidebar and menu links often point to `/list` by default.\n// If we have a retained non-list view for the same model context, reopen that instead.\nexport const resolveRetainedModelViewRoute = (target: string): string => {\n const route = parseModelViewRoute(target);\n if (!route || route.viewType !== \"list\") return target;\n\n const storedRoute = getPersistedLastModelViewRoute(target);\n return storedRoute || target;\n};\n\n// Keep short-lived \"back to previous view\" state in sessionStorage and also\n// refresh the longer-lived localStorage route retention in one call.\nexport const storeCurrentModelViewContext = (target?: string) => {\n if (typeof window === \"undefined\") return;\n\n const fallbackTarget = `${window.location.pathname}${window.location.search}`;\n const nextTarget = target || fallbackTarget;\n const route = parseModelViewRoute(nextTarget);\n\n try {\n if (route?.viewType) {\n sessionStorage.setItem(\"fromView\", route.viewType);\n }\n sessionStorage.setItem(\"fromViewUrl\", route?.fullPath || nextTarget);\n } catch (error) {\n // Ignore storage failures so navigation can still continue.\n }\n\n if (route) {\n persistLastModelViewRoute(route.fullPath);\n }\n};\n"]}
@@ -146,10 +146,11 @@ export const getPersistedLastModelViewRoute = (target: string): string | null =>
146
146
  if (!route) return null;
147
147
 
148
148
  const stored = readStoredModelViews();
149
+ const hasMenuScope = Boolean(route.menuItemId || route.actionId);
149
150
  const candidateKeys = [
150
- Boolean(route.menuItemId || route.actionId) ? getScopedStorageKey(route) : null,
151
+ hasMenuScope ? getScopedStorageKey(route) : null,
151
152
  route.menuItemId ? getMenuStorageKey(route) : null,
152
- getModelStorageKey(route),
153
+ hasMenuScope ? null : getModelStorageKey(route),
153
154
  ].filter(Boolean) as string[];
154
155
 
155
156
  let bestMatch: { entry: StoredModelViewEntry; priority: number } | null = null;
@@ -53,6 +53,7 @@ export type DatasourceIntrospectionTableDetail = {
53
53
  columns: Array<{
54
54
  columnName: string;
55
55
  fieldName: string;
56
+ displayName: string;
56
57
  dataType: string;
57
58
  solidFieldType: string;
58
59
  ormType: string;
@@ -63,6 +64,7 @@ export type DatasourceIntrospectionTableDetail = {
63
64
  numericScale: number | null;
64
65
  ordinalPosition: number | null;
65
66
  isAutoGenerated: boolean;
67
+ isPrimaryKey: boolean;
66
68
  handledBySuperclass: boolean;
67
69
  superclassFieldName: string | null;
68
70
  }>;
@@ -95,6 +97,7 @@ export type DatasourceIntrospectionTableDetail = {
95
97
  export type DatasourceIntrospectionMappingColumn = {
96
98
  columnName: string;
97
99
  fieldName: string;
100
+ displayName: string;
98
101
  dataType: string;
99
102
  solidFieldType: string;
100
103
  ormType: string;
@@ -111,6 +114,7 @@ export type DatasourceIntrospectionMappingColumn = {
111
114
  include: boolean;
112
115
  matched: boolean;
113
116
  isPrimaryKey: boolean;
117
+ fieldConfig?: Record<string, any> | null;
114
118
  };
115
119
  export type DatasourceIntrospectionMappingRequest = {
116
120
  mapped: boolean;
@@ -160,9 +164,28 @@ export type DatasourceIntrospectionMappingPreview = {
160
164
  };
161
165
  export type DatasourceIntrospectionApplyResponse = DatasourceIntrospectionMappingPreview & {
162
166
  modelId: number | null;
167
+ };
168
+ export type DatasourceIntrospectionCreateMigrationResponse = {
169
+ modelId: number | null;
170
+ operation: "create" | "update";
171
+ datasourceFile: {
172
+ filePath: string;
173
+ created: boolean;
174
+ updated: boolean;
175
+ entityRegistered: boolean;
176
+ migrationGlobRegistered: boolean;
177
+ };
163
178
  migration: DatasourceIntrospectionMappingPreview["migration"] & {
164
179
  written: boolean;
165
180
  };
181
+ summary: DatasourceIntrospectionMappingPreview["summary"];
182
+ };
183
+ export type DatasourceIntrospectionCommandResponse = {
184
+ moduleId: number;
185
+ datasource?: string;
186
+ command?: string;
187
+ output: string;
188
+ message: string;
166
189
  };
167
190
  export declare const datasourceIntrospectionApi: import("@reduxjs/toolkit/query/react").Api<import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, {
168
191
  getDatasourceIntrospectionBootstrap: import("@reduxjs/toolkit/query/react").QueryDefinition<number, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionBootstrap, "datasourceIntrospectionApi">;
@@ -184,6 +207,17 @@ export declare const datasourceIntrospectionApi: import("@reduxjs/toolkit/query/
184
207
  moduleId: number;
185
208
  payload: DatasourceIntrospectionMappingRequest;
186
209
  }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionApplyResponse, "datasourceIntrospectionApi">;
210
+ createDatasourceIntrospectionMigrationArtifacts: import("@reduxjs/toolkit/query/react").MutationDefinition<{
211
+ moduleId: number;
212
+ payload: DatasourceIntrospectionMappingRequest;
213
+ }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionCreateMigrationResponse, "datasourceIntrospectionApi">;
214
+ generateDatasourceIntrospectionCode: import("@reduxjs/toolkit/query/react").MutationDefinition<{
215
+ moduleId: number;
216
+ }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionCommandResponse, "datasourceIntrospectionApi">;
217
+ runDatasourceIntrospectionMigration: import("@reduxjs/toolkit/query/react").MutationDefinition<{
218
+ moduleId: number;
219
+ datasource: string;
220
+ }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionCommandResponse, "datasourceIntrospectionApi">;
187
221
  }, "datasourceIntrospectionApi", "DatasourceIntrospection", typeof import("@reduxjs/toolkit/query/react").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName>;
188
222
  export declare const useGetDatasourceIntrospectionBootstrapQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query/react").QueryDefinition<number, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionBootstrap, "datasourceIntrospectionApi">>, useGetDatasourceIntrospectionTablesQuery: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseQuery<import("@reduxjs/toolkit/query/react").QueryDefinition<{
189
223
  moduleId: number;
@@ -199,5 +233,13 @@ export declare const useGetDatasourceIntrospectionBootstrapQuery: import("@redux
199
233
  }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionMappingPreview, "datasourceIntrospectionApi">>, useApplyDatasourceIntrospectionMappingMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
200
234
  moduleId: number;
201
235
  payload: DatasourceIntrospectionMappingRequest;
202
- }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionApplyResponse, "datasourceIntrospectionApi">>;
236
+ }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionApplyResponse, "datasourceIntrospectionApi">>, useCreateDatasourceIntrospectionMigrationArtifactsMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
237
+ moduleId: number;
238
+ payload: DatasourceIntrospectionMappingRequest;
239
+ }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionCreateMigrationResponse, "datasourceIntrospectionApi">>, useGenerateDatasourceIntrospectionCodeMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
240
+ moduleId: number;
241
+ }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionCommandResponse, "datasourceIntrospectionApi">>, useRunDatasourceIntrospectionMigrationMutation: import("@reduxjs/toolkit/dist/query/react/buildHooks").UseMutation<import("@reduxjs/toolkit/query/react").MutationDefinition<{
242
+ moduleId: number;
243
+ datasource: string;
244
+ }, import("@reduxjs/toolkit/query/react").BaseQueryFn<string | import("@reduxjs/toolkit/query/react").FetchArgs, unknown, import("@reduxjs/toolkit/query/react").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query/react").FetchBaseQueryMeta>, "DatasourceIntrospection", DatasourceIntrospectionCommandResponse, "datasourceIntrospectionApi">>;
203
245
  //# sourceMappingURL=datasourceIntrospectionApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasourceIntrospectionApi.d.ts","sourceRoot":"","sources":["../../../src/redux/api/datasourceIntrospectionApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasourceIntrospectionApi.d.ts","sourceRoot":"","sources":["../../../src/redux/api/datasourceIntrospectionApi.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,40 @@ export var datasourceIntrospectionApi = createApi({
65
65
  invalidatesTags: ["DatasourceIntrospection"],
66
66
  transformResponse: function (response) { return unwrapEnvelope(response); },
67
67
  }),
68
+ createDatasourceIntrospectionMigrationArtifacts: builder.mutation({
69
+ query: function (_a) {
70
+ var moduleId = _a.moduleId, payload = _a.payload;
71
+ return ({
72
+ url: "/datasource-introspection/modules/".concat(moduleId, "/create-migration-artifacts"),
73
+ method: "POST",
74
+ body: payload,
75
+ });
76
+ },
77
+ invalidatesTags: ["DatasourceIntrospection"],
78
+ transformResponse: function (response) { return unwrapEnvelope(response); },
79
+ }),
80
+ generateDatasourceIntrospectionCode: builder.mutation({
81
+ query: function (_a) {
82
+ var moduleId = _a.moduleId;
83
+ return ({
84
+ url: "/datasource-introspection/modules/".concat(moduleId, "/generate-code"),
85
+ method: "POST",
86
+ });
87
+ },
88
+ transformResponse: function (response) { return unwrapEnvelope(response); },
89
+ }),
90
+ runDatasourceIntrospectionMigration: builder.mutation({
91
+ query: function (_a) {
92
+ var moduleId = _a.moduleId, datasource = _a.datasource;
93
+ return ({
94
+ url: "/datasource-introspection/modules/".concat(moduleId, "/run-migration"),
95
+ method: "POST",
96
+ body: { datasource: datasource },
97
+ });
98
+ },
99
+ transformResponse: function (response) { return unwrapEnvelope(response); },
100
+ }),
68
101
  }); },
69
102
  });
70
- export var useGetDatasourceIntrospectionBootstrapQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionBootstrapQuery, useGetDatasourceIntrospectionTablesQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionTablesQuery, useGetDatasourceIntrospectionTableDetailQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionTableDetailQuery, usePreviewDatasourceIntrospectionMappingMutation = datasourceIntrospectionApi.usePreviewDatasourceIntrospectionMappingMutation, useApplyDatasourceIntrospectionMappingMutation = datasourceIntrospectionApi.useApplyDatasourceIntrospectionMappingMutation;
103
+ export var useGetDatasourceIntrospectionBootstrapQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionBootstrapQuery, useGetDatasourceIntrospectionTablesQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionTablesQuery, useGetDatasourceIntrospectionTableDetailQuery = datasourceIntrospectionApi.useGetDatasourceIntrospectionTableDetailQuery, usePreviewDatasourceIntrospectionMappingMutation = datasourceIntrospectionApi.usePreviewDatasourceIntrospectionMappingMutation, useApplyDatasourceIntrospectionMappingMutation = datasourceIntrospectionApi.useApplyDatasourceIntrospectionMappingMutation, useCreateDatasourceIntrospectionMigrationArtifactsMutation = datasourceIntrospectionApi.useCreateDatasourceIntrospectionMigrationArtifactsMutation, useGenerateDatasourceIntrospectionCodeMutation = datasourceIntrospectionApi.useGenerateDatasourceIntrospectionCodeMutation, useRunDatasourceIntrospectionMigrationMutation = datasourceIntrospectionApi.useRunDatasourceIntrospectionMigrationMutation;
71
104
  //# sourceMappingURL=datasourceIntrospectionApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datasourceIntrospectionApi.js","sourceRoot":"","sources":["../../../src/redux/api/datasourceIntrospectionApi.ts"],"names":[],"mappings":"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","sourcesContent":["import { createApi } from \"@reduxjs/toolkit/query/react\";\nimport { baseQueryWithAuth } from \"./fetchBaseQuery\";\n\nexport type DatasourceIntrospectionBootstrap = {\n module: {\n id: number;\n name: string;\n displayName: string;\n description: string;\n defaultDataSource: string;\n };\n datasources: Array<{\n name: string;\n displayName: string;\n type: string;\n envPrefix: string;\n isDefault: boolean;\n synchronize: boolean | null;\n host: string;\n port: number | null;\n database: string;\n }>;\n recommendedDatasourceName: string | null;\n};\n\nexport type DatasourceIntrospectionTableRecord = {\n schema: string | null;\n tableName: string;\n mapped: boolean;\n mappedModelId: number | null;\n mappedModelSingularName: string | null;\n mappedModelDisplayName: string | null;\n mappedModuleId: number | null;\n mappedModuleName: string | null;\n mappedModuleDisplayName: string | null;\n suggestedLegacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n suggestedBaseClassName: string;\n suggestedIdColumnName: string | null;\n suggestedUserKeyField: string;\n columnCount: number;\n physicalColumnCount: number;\n};\n\nexport type DatasourceIntrospectionTablesResponse = {\n module: DatasourceIntrospectionBootstrap[\"module\"];\n datasource: DatasourceIntrospectionBootstrap[\"datasources\"][number];\n synchronizeBlocked: boolean;\n synchronizeMessage: string | null;\n records: DatasourceIntrospectionTableRecord[];\n meta: {\n totalRecords: number;\n };\n};\n\nexport type DatasourceIntrospectionTableDetail = {\n module: DatasourceIntrospectionBootstrap[\"module\"];\n datasource: DatasourceIntrospectionBootstrap[\"datasources\"][number];\n table: DatasourceIntrospectionTableRecord;\n columns: Array<{\n columnName: string;\n fieldName: string;\n dataType: string;\n solidFieldType: string;\n ormType: string;\n nullable: boolean;\n defaultValue: string | null;\n characterMaximumLength: number | null;\n numericPrecision: number | null;\n numericScale: number | null;\n ordinalPosition: number | null;\n isAutoGenerated: boolean;\n handledBySuperclass: boolean;\n superclassFieldName: string | null;\n }>;\n rawDdl: {\n statement: string | null;\n available: boolean;\n note: string | null;\n };\n userKeyCandidates: Array<{\n name: string;\n label: string;\n score: number;\n reason: string;\n isDefault: boolean;\n }>;\n suggestedMetadata: {\n singularName: string;\n pluralName: string;\n displayName: string;\n tableName: string;\n schema: string | null;\n dataSource: string;\n dataSourceType: string;\n legacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n baseClassName: string;\n userKeyField: string;\n synchronize: false;\n };\n};\n\nexport type DatasourceIntrospectionMappingColumn = {\n columnName: string;\n fieldName: string;\n dataType: string;\n solidFieldType: string;\n ormType: string;\n nullable: boolean;\n defaultValue: string | null;\n characterMaximumLength: number | null;\n numericPrecision: number | null;\n numericScale: number | null;\n ordinalPosition: number | null;\n isAutoGenerated: boolean;\n handledBySuperclass: boolean;\n superclassFieldName: string | null;\n fieldId: number | null;\n include: boolean;\n matched: boolean;\n isPrimaryKey: boolean;\n};\n\nexport type DatasourceIntrospectionMappingRequest = {\n mapped: boolean;\n modelId: number | null;\n singularName: string;\n pluralName: string;\n displayName: string;\n description: string;\n tableName: string;\n schema: string | null;\n dataSource: string;\n dataSourceType: string;\n legacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n baseClassName: string;\n userKeyField: string;\n enableAuditTracking: boolean;\n enableSoftDelete: boolean;\n draftPublishWorkflow: boolean;\n internationalisation: boolean;\n plannedMigrationTimestamp?: number | null;\n columns: DatasourceIntrospectionMappingColumn[];\n reviewedModel?: Record<string, any>;\n};\n\nexport type DatasourceIntrospectionMappingPreview = {\n operation: \"create\" | \"update\";\n mappedModelId: number | null;\n metadataJson: {\n filePath: string;\n model: Record<string, any>;\n };\n migration: {\n willGenerate: boolean;\n filePath: string | null;\n fileName: string | null;\n className: string | null;\n timestamp: number | null;\n content: string | null;\n note: string;\n missingSystemColumns: string[];\n };\n summary: {\n includedColumnNames: string[];\n removedColumnNames: string[];\n missingSystemColumns: string[];\n generatedSystemColumnCount: number;\n };\n};\n\nexport type DatasourceIntrospectionApplyResponse = DatasourceIntrospectionMappingPreview & {\n modelId: number | null;\n migration: DatasourceIntrospectionMappingPreview[\"migration\"] & {\n written: boolean;\n };\n};\n\nfunction unwrapEnvelope<T = any>(payload: any): T {\n let current = payload;\n\n while (\n current\n && typeof current === \"object\"\n && \"data\" in current\n && current.data !== undefined\n ) {\n current = current.data;\n }\n\n return current as T;\n}\n\nexport const datasourceIntrospectionApi = createApi({\n reducerPath: \"datasourceIntrospectionApi\",\n baseQuery: baseQueryWithAuth,\n tagTypes: [\"DatasourceIntrospection\"],\n endpoints: (builder) => ({\n getDatasourceIntrospectionBootstrap: builder.query<DatasourceIntrospectionBootstrap, number>({\n query: (moduleId) => `/datasource-introspection/modules/${moduleId}/bootstrap`,\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionBootstrap>(response),\n }),\n getDatasourceIntrospectionTables: builder.query<\n DatasourceIntrospectionTablesResponse,\n { moduleId: number; datasource: string }\n >({\n query: ({ moduleId, datasource }) =>\n `/datasource-introspection/modules/${moduleId}/tables?datasource=${encodeURIComponent(datasource)}`,\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTablesResponse>(response),\n }),\n getDatasourceIntrospectionTableDetail: builder.query<\n DatasourceIntrospectionTableDetail,\n { moduleId: number; datasource: string; table: string; schema?: string | null }\n >({\n query: ({ moduleId, datasource, table, schema }) => {\n const searchParams = new URLSearchParams();\n searchParams.set(\"datasource\", datasource);\n searchParams.set(\"table\", table);\n if (schema) {\n searchParams.set(\"schema\", schema);\n }\n\n return `/datasource-introspection/modules/${moduleId}/table-detail?${searchParams.toString()}`;\n },\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTableDetail>(response),\n }),\n previewDatasourceIntrospectionMapping: builder.mutation<\n DatasourceIntrospectionMappingPreview,\n { moduleId: number; payload: DatasourceIntrospectionMappingRequest }\n >({\n query: ({ moduleId, payload }) => ({\n url: `/datasource-introspection/modules/${moduleId}/mapping-preview`,\n method: \"POST\",\n body: payload,\n }),\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionMappingPreview>(response),\n }),\n applyDatasourceIntrospectionMapping: builder.mutation<\n DatasourceIntrospectionApplyResponse,\n { moduleId: number; payload: DatasourceIntrospectionMappingRequest }\n >({\n query: ({ moduleId, payload }) => ({\n url: `/datasource-introspection/modules/${moduleId}/apply-mapping`,\n method: \"POST\",\n body: payload,\n }),\n invalidatesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionApplyResponse>(response),\n }),\n }),\n});\n\nexport const {\n useGetDatasourceIntrospectionBootstrapQuery,\n useGetDatasourceIntrospectionTablesQuery,\n useGetDatasourceIntrospectionTableDetailQuery,\n usePreviewDatasourceIntrospectionMappingMutation,\n useApplyDatasourceIntrospectionMappingMutation,\n} = datasourceIntrospectionApi;\n"]}
1
+ {"version":3,"file":"datasourceIntrospectionApi.js","sourceRoot":"","sources":["../../../src/redux/api/datasourceIntrospectionApi.ts"],"names":[],"mappings":"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","sourcesContent":["import { createApi } from \"@reduxjs/toolkit/query/react\";\nimport { baseQueryWithAuth } from \"./fetchBaseQuery\";\n\nexport type DatasourceIntrospectionBootstrap = {\n module: {\n id: number;\n name: string;\n displayName: string;\n description: string;\n defaultDataSource: string;\n };\n datasources: Array<{\n name: string;\n displayName: string;\n type: string;\n envPrefix: string;\n isDefault: boolean;\n synchronize: boolean | null;\n host: string;\n port: number | null;\n database: string;\n }>;\n recommendedDatasourceName: string | null;\n};\n\nexport type DatasourceIntrospectionTableRecord = {\n schema: string | null;\n tableName: string;\n mapped: boolean;\n mappedModelId: number | null;\n mappedModelSingularName: string | null;\n mappedModelDisplayName: string | null;\n mappedModuleId: number | null;\n mappedModuleName: string | null;\n mappedModuleDisplayName: string | null;\n suggestedLegacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n suggestedBaseClassName: string;\n suggestedIdColumnName: string | null;\n suggestedUserKeyField: string;\n columnCount: number;\n physicalColumnCount: number;\n};\n\nexport type DatasourceIntrospectionTablesResponse = {\n module: DatasourceIntrospectionBootstrap[\"module\"];\n datasource: DatasourceIntrospectionBootstrap[\"datasources\"][number];\n synchronizeBlocked: boolean;\n synchronizeMessage: string | null;\n records: DatasourceIntrospectionTableRecord[];\n meta: {\n totalRecords: number;\n };\n};\n\nexport type DatasourceIntrospectionTableDetail = {\n module: DatasourceIntrospectionBootstrap[\"module\"];\n datasource: DatasourceIntrospectionBootstrap[\"datasources\"][number];\n table: DatasourceIntrospectionTableRecord;\n columns: Array<{\n columnName: string;\n fieldName: string;\n displayName: string;\n dataType: string;\n solidFieldType: string;\n ormType: string;\n nullable: boolean;\n defaultValue: string | null;\n characterMaximumLength: number | null;\n numericPrecision: number | null;\n numericScale: number | null;\n ordinalPosition: number | null;\n isAutoGenerated: boolean;\n isPrimaryKey: boolean;\n handledBySuperclass: boolean;\n superclassFieldName: string | null;\n }>;\n rawDdl: {\n statement: string | null;\n available: boolean;\n note: string | null;\n };\n userKeyCandidates: Array<{\n name: string;\n label: string;\n score: number;\n reason: string;\n isDefault: boolean;\n }>;\n suggestedMetadata: {\n singularName: string;\n pluralName: string;\n displayName: string;\n tableName: string;\n schema: string | null;\n dataSource: string;\n dataSourceType: string;\n legacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n baseClassName: string;\n userKeyField: string;\n synchronize: false;\n };\n};\n\nexport type DatasourceIntrospectionMappingColumn = {\n columnName: string;\n fieldName: string;\n displayName: string;\n dataType: string;\n solidFieldType: string;\n ormType: string;\n nullable: boolean;\n defaultValue: string | null;\n characterMaximumLength: number | null;\n numericPrecision: number | null;\n numericScale: number | null;\n ordinalPosition: number | null;\n isAutoGenerated: boolean;\n handledBySuperclass: boolean;\n superclassFieldName: string | null;\n fieldId: number | null;\n include: boolean;\n matched: boolean;\n isPrimaryKey: boolean;\n fieldConfig?: Record<string, any> | null;\n};\n\nexport type DatasourceIntrospectionMappingRequest = {\n mapped: boolean;\n modelId: number | null;\n singularName: string;\n pluralName: string;\n displayName: string;\n description: string;\n tableName: string;\n schema: string | null;\n dataSource: string;\n dataSourceType: string;\n legacyTableType: \"none\" | \"existing_id\" | \"generated_id\";\n baseClassName: string;\n userKeyField: string;\n enableAuditTracking: boolean;\n enableSoftDelete: boolean;\n draftPublishWorkflow: boolean;\n internationalisation: boolean;\n plannedMigrationTimestamp?: number | null;\n columns: DatasourceIntrospectionMappingColumn[];\n reviewedModel?: Record<string, any>;\n};\n\nexport type DatasourceIntrospectionMappingPreview = {\n operation: \"create\" | \"update\";\n mappedModelId: number | null;\n metadataJson: {\n filePath: string;\n model: Record<string, any>;\n };\n migration: {\n willGenerate: boolean;\n filePath: string | null;\n fileName: string | null;\n className: string | null;\n timestamp: number | null;\n content: string | null;\n note: string;\n missingSystemColumns: string[];\n };\n summary: {\n includedColumnNames: string[];\n removedColumnNames: string[];\n missingSystemColumns: string[];\n generatedSystemColumnCount: number;\n };\n};\n\nexport type DatasourceIntrospectionApplyResponse = DatasourceIntrospectionMappingPreview & {\n modelId: number | null;\n};\n\nexport type DatasourceIntrospectionCreateMigrationResponse = {\n modelId: number | null;\n operation: \"create\" | \"update\";\n datasourceFile: {\n filePath: string;\n created: boolean;\n updated: boolean;\n entityRegistered: boolean;\n migrationGlobRegistered: boolean;\n };\n migration: DatasourceIntrospectionMappingPreview[\"migration\"] & {\n written: boolean;\n };\n summary: DatasourceIntrospectionMappingPreview[\"summary\"];\n};\n\nexport type DatasourceIntrospectionCommandResponse = {\n moduleId: number;\n datasource?: string;\n command?: string;\n output: string;\n message: string;\n};\n\nfunction unwrapEnvelope<T = any>(payload: any): T {\n let current = payload;\n\n while (\n current\n && typeof current === \"object\"\n && \"data\" in current\n && current.data !== undefined\n ) {\n current = current.data;\n }\n\n return current as T;\n}\n\nexport const datasourceIntrospectionApi = createApi({\n reducerPath: \"datasourceIntrospectionApi\",\n baseQuery: baseQueryWithAuth,\n tagTypes: [\"DatasourceIntrospection\"],\n endpoints: (builder) => ({\n getDatasourceIntrospectionBootstrap: builder.query<DatasourceIntrospectionBootstrap, number>({\n query: (moduleId) => `/datasource-introspection/modules/${moduleId}/bootstrap`,\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionBootstrap>(response),\n }),\n getDatasourceIntrospectionTables: builder.query<\n DatasourceIntrospectionTablesResponse,\n { moduleId: number; datasource: string }\n >({\n query: ({ moduleId, datasource }) =>\n `/datasource-introspection/modules/${moduleId}/tables?datasource=${encodeURIComponent(datasource)}`,\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTablesResponse>(response),\n }),\n getDatasourceIntrospectionTableDetail: builder.query<\n DatasourceIntrospectionTableDetail,\n { moduleId: number; datasource: string; table: string; schema?: string | null }\n >({\n query: ({ moduleId, datasource, table, schema }) => {\n const searchParams = new URLSearchParams();\n searchParams.set(\"datasource\", datasource);\n searchParams.set(\"table\", table);\n if (schema) {\n searchParams.set(\"schema\", schema);\n }\n\n return `/datasource-introspection/modules/${moduleId}/table-detail?${searchParams.toString()}`;\n },\n providesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionTableDetail>(response),\n }),\n previewDatasourceIntrospectionMapping: builder.mutation<\n DatasourceIntrospectionMappingPreview,\n { moduleId: number; payload: DatasourceIntrospectionMappingRequest }\n >({\n query: ({ moduleId, payload }) => ({\n url: `/datasource-introspection/modules/${moduleId}/mapping-preview`,\n method: \"POST\",\n body: payload,\n }),\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionMappingPreview>(response),\n }),\n applyDatasourceIntrospectionMapping: builder.mutation<\n DatasourceIntrospectionApplyResponse,\n { moduleId: number; payload: DatasourceIntrospectionMappingRequest }\n >({\n query: ({ moduleId, payload }) => ({\n url: `/datasource-introspection/modules/${moduleId}/apply-mapping`,\n method: \"POST\",\n body: payload,\n }),\n invalidatesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionApplyResponse>(response),\n }),\n createDatasourceIntrospectionMigrationArtifacts: builder.mutation<\n DatasourceIntrospectionCreateMigrationResponse,\n { moduleId: number; payload: DatasourceIntrospectionMappingRequest }\n >({\n query: ({ moduleId, payload }) => ({\n url: `/datasource-introspection/modules/${moduleId}/create-migration-artifacts`,\n method: \"POST\",\n body: payload,\n }),\n invalidatesTags: [\"DatasourceIntrospection\"],\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionCreateMigrationResponse>(response),\n }),\n generateDatasourceIntrospectionCode: builder.mutation<\n DatasourceIntrospectionCommandResponse,\n { moduleId: number }\n >({\n query: ({ moduleId }) => ({\n url: `/datasource-introspection/modules/${moduleId}/generate-code`,\n method: \"POST\",\n }),\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionCommandResponse>(response),\n }),\n runDatasourceIntrospectionMigration: builder.mutation<\n DatasourceIntrospectionCommandResponse,\n { moduleId: number; datasource: string }\n >({\n query: ({ moduleId, datasource }) => ({\n url: `/datasource-introspection/modules/${moduleId}/run-migration`,\n method: \"POST\",\n body: { datasource },\n }),\n transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionCommandResponse>(response),\n }),\n }),\n});\n\nexport const {\n useGetDatasourceIntrospectionBootstrapQuery,\n useGetDatasourceIntrospectionTablesQuery,\n useGetDatasourceIntrospectionTableDetailQuery,\n usePreviewDatasourceIntrospectionMappingMutation,\n useApplyDatasourceIntrospectionMappingMutation,\n useCreateDatasourceIntrospectionMigrationArtifactsMutation,\n useGenerateDatasourceIntrospectionCodeMutation,\n useRunDatasourceIntrospectionMigrationMutation,\n} = datasourceIntrospectionApi;\n"]}
@@ -59,6 +59,7 @@ export type DatasourceIntrospectionTableDetail = {
59
59
  columns: Array<{
60
60
  columnName: string;
61
61
  fieldName: string;
62
+ displayName: string;
62
63
  dataType: string;
63
64
  solidFieldType: string;
64
65
  ormType: string;
@@ -69,6 +70,7 @@ export type DatasourceIntrospectionTableDetail = {
69
70
  numericScale: number | null;
70
71
  ordinalPosition: number | null;
71
72
  isAutoGenerated: boolean;
73
+ isPrimaryKey: boolean;
72
74
  handledBySuperclass: boolean;
73
75
  superclassFieldName: string | null;
74
76
  }>;
@@ -102,6 +104,7 @@ export type DatasourceIntrospectionTableDetail = {
102
104
  export type DatasourceIntrospectionMappingColumn = {
103
105
  columnName: string;
104
106
  fieldName: string;
107
+ displayName: string;
105
108
  dataType: string;
106
109
  solidFieldType: string;
107
110
  ormType: string;
@@ -118,6 +121,7 @@ export type DatasourceIntrospectionMappingColumn = {
118
121
  include: boolean;
119
122
  matched: boolean;
120
123
  isPrimaryKey: boolean;
124
+ fieldConfig?: Record<string, any> | null;
121
125
  };
122
126
 
123
127
  export type DatasourceIntrospectionMappingRequest = {
@@ -170,9 +174,30 @@ export type DatasourceIntrospectionMappingPreview = {
170
174
 
171
175
  export type DatasourceIntrospectionApplyResponse = DatasourceIntrospectionMappingPreview & {
172
176
  modelId: number | null;
177
+ };
178
+
179
+ export type DatasourceIntrospectionCreateMigrationResponse = {
180
+ modelId: number | null;
181
+ operation: "create" | "update";
182
+ datasourceFile: {
183
+ filePath: string;
184
+ created: boolean;
185
+ updated: boolean;
186
+ entityRegistered: boolean;
187
+ migrationGlobRegistered: boolean;
188
+ };
173
189
  migration: DatasourceIntrospectionMappingPreview["migration"] & {
174
190
  written: boolean;
175
191
  };
192
+ summary: DatasourceIntrospectionMappingPreview["summary"];
193
+ };
194
+
195
+ export type DatasourceIntrospectionCommandResponse = {
196
+ moduleId: number;
197
+ datasource?: string;
198
+ command?: string;
199
+ output: string;
200
+ message: string;
176
201
  };
177
202
 
178
203
  function unwrapEnvelope<T = any>(payload: any): T {
@@ -249,6 +274,39 @@ export const datasourceIntrospectionApi = createApi({
249
274
  invalidatesTags: ["DatasourceIntrospection"],
250
275
  transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionApplyResponse>(response),
251
276
  }),
277
+ createDatasourceIntrospectionMigrationArtifacts: builder.mutation<
278
+ DatasourceIntrospectionCreateMigrationResponse,
279
+ { moduleId: number; payload: DatasourceIntrospectionMappingRequest }
280
+ >({
281
+ query: ({ moduleId, payload }) => ({
282
+ url: `/datasource-introspection/modules/${moduleId}/create-migration-artifacts`,
283
+ method: "POST",
284
+ body: payload,
285
+ }),
286
+ invalidatesTags: ["DatasourceIntrospection"],
287
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionCreateMigrationResponse>(response),
288
+ }),
289
+ generateDatasourceIntrospectionCode: builder.mutation<
290
+ DatasourceIntrospectionCommandResponse,
291
+ { moduleId: number }
292
+ >({
293
+ query: ({ moduleId }) => ({
294
+ url: `/datasource-introspection/modules/${moduleId}/generate-code`,
295
+ method: "POST",
296
+ }),
297
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionCommandResponse>(response),
298
+ }),
299
+ runDatasourceIntrospectionMigration: builder.mutation<
300
+ DatasourceIntrospectionCommandResponse,
301
+ { moduleId: number; datasource: string }
302
+ >({
303
+ query: ({ moduleId, datasource }) => ({
304
+ url: `/datasource-introspection/modules/${moduleId}/run-migration`,
305
+ method: "POST",
306
+ body: { datasource },
307
+ }),
308
+ transformResponse: (response: any) => unwrapEnvelope<DatasourceIntrospectionCommandResponse>(response),
309
+ }),
252
310
  }),
253
311
  });
254
312
 
@@ -258,4 +316,7 @@ export const {
258
316
  useGetDatasourceIntrospectionTableDetailQuery,
259
317
  usePreviewDatasourceIntrospectionMappingMutation,
260
318
  useApplyDatasourceIntrospectionMappingMutation,
319
+ useCreateDatasourceIntrospectionMigrationArtifactsMutation,
320
+ useGenerateDatasourceIntrospectionCodeMutation,
321
+ useRunDatasourceIntrospectionMigrationMutation,
261
322
  } = datasourceIntrospectionApi;
@@ -206,6 +206,17 @@ export declare const solidApiSlices: (import("@reduxjs/toolkit/query").Api<impor
206
206
  moduleId: number;
207
207
  payload: import("../api/datasourceIntrospectionApi").DatasourceIntrospectionMappingRequest;
208
208
  }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionApplyResponse, "datasourceIntrospectionApi">;
209
+ createDatasourceIntrospectionMigrationArtifacts: import("@reduxjs/toolkit/query").MutationDefinition<{
210
+ moduleId: number;
211
+ payload: import("../api/datasourceIntrospectionApi").DatasourceIntrospectionMappingRequest;
212
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionCreateMigrationResponse, "datasourceIntrospectionApi">;
213
+ generateDatasourceIntrospectionCode: import("@reduxjs/toolkit/query").MutationDefinition<{
214
+ moduleId: number;
215
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionCommandResponse, "datasourceIntrospectionApi">;
216
+ runDatasourceIntrospectionMigration: import("@reduxjs/toolkit/query").MutationDefinition<{
217
+ moduleId: number;
218
+ datasource: string;
219
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, "DatasourceIntrospection", import("../api/datasourceIntrospectionApi").DatasourceIntrospectionCommandResponse, "datasourceIntrospectionApi">;
209
220
  }, "datasourceIntrospectionApi", "DatasourceIntrospection", typeof import("@reduxjs/toolkit/query").coreModuleName | typeof import("@reduxjs/toolkit/query/react").reactHooksModuleName> | import("@reduxjs/toolkit/query").Api<import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, {
210
221
  getroles: import("@reduxjs/toolkit/query").QueryDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "roleApi">;
211
222
  getroleById: import("@reduxjs/toolkit/query").QueryDefinition<any, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("@reduxjs/toolkit/query").FetchArgs, unknown, import("@reduxjs/toolkit/query").FetchBaseQueryError, {}, import("@reduxjs/toolkit/query").FetchBaseQueryMeta>, never, any, "roleApi">;
@@ -1 +1 @@
1
- {"version":3,"file":"defaultStoreConfig.d.ts","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJAsB1B,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CASzB,CAAC"}
1
+ {"version":3,"file":"defaultStoreConfig.d.ts","sourceRoot":"","sources":["../../../src/redux/store/defaultStoreConfig.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJAsB1B,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;CASzB,CAAC"}
@@ -1,88 +1,3 @@
1
- :root {
2
- --solid-surface-0: #f6f8fc;
3
- --solid-surface-1: #ffffff;
4
- --solid-surface-2: #eef2ff;
5
- --solid-surface-3: #f8fafc;
6
- --solid-surface-elevated: #ffffff;
7
- --solid-text-primary: #0f172a;
8
- --solid-text-secondary: #475569;
9
- --solid-text-muted: #64748b;
10
- --solid-border-default: #e2e8f0;
11
- --solid-border-strong: #cbd5e1;
12
- --solid-interactive-bg: #722ED1;
13
- --solid-interactive-fg: #ffffff;
14
- --solid-focus-ring: rgba(114, 46, 209, 0.35);
15
- --background: #f6f8fc;
16
- --foreground: #0f172a;
17
- --card: #ffffff;
18
- --card-foreground: #0f172a;
19
- --border: #e2e8f0;
20
- --muted: #64748b;
21
- --muted-foreground: #475569;
22
- --accent: #eef2ff;
23
- --accent-foreground: #3730a3;
24
- --primary: #722ED1;
25
- --primary-foreground: #ffffff;
26
- --destructive: #ef4444;
27
- --destructive-foreground: #ffffff;
28
- --ring: rgba(114, 46, 209, 0.35);
29
- --sidebar-background: #f8fafc;
30
- --sidebar-foreground: #0f172a;
31
- --sidebar-border: #e2e8f0;
32
- --sidebar-accent: #f1f5f9;
33
- --sidebar-accent-foreground: #0f172a;
34
- --sidebar-primary: #722ED1;
35
- --sidebar-primary-foreground: #ffffff;
36
- --sidebar-width: 272px;
37
- --sidebar-width-collapsed: 76px;
38
- --solid-sidebar-width: 272px;
39
- --solid-studio-header-height: 0px;
40
- --shadow-soft: 0 12px 28px rgba(15, 23, 42, 0.1);
41
- --z-app: 1;
42
- --z-overlay: 1000;
43
- --z-studio: 9999;
44
- --solid-danger: var(--destructive);
45
- }
46
-
47
- html.dark,
48
- [data-theme="dark"] {
49
- --solid-surface-0: #090f1d;
50
- --solid-surface-1: #111827;
51
- --solid-surface-2: #172554;
52
- --solid-surface-3: #020817;
53
- --solid-surface-elevated: #111827;
54
- --solid-text-primary: #f8fafc;
55
- --solid-text-secondary: #cbd5e1;
56
- --solid-text-muted: #94a3b8;
57
- --solid-border-default: #1f2937;
58
- --solid-border-strong: #374151;
59
- --solid-interactive-bg: #b37feb;
60
- --solid-interactive-fg: #0b1220;
61
- --solid-focus-ring: rgba(179, 127, 235, 0.35);
62
- --background: #090f1d;
63
- --foreground: #e5e7eb;
64
- --card: #111827;
65
- --card-foreground: #f8fafc;
66
- --border: #1f2937;
67
- --muted: #94a3b8;
68
- --muted-foreground: #cbd5e1;
69
- --accent: #172554;
70
- --accent-foreground: #dbeafe;
71
- --primary: #b37feb;
72
- --primary-foreground: #0b1220;
73
- --destructive: #f87171;
74
- --destructive-foreground: #ffffff;
75
- --ring: rgba(179, 127, 235, 0.35);
76
- --sidebar-background: #020817;
77
- --sidebar-foreground: #e2e8f0;
78
- --sidebar-border: #111827;
79
- --sidebar-accent: #0f172a;
80
- --sidebar-accent-foreground: #f8fafc;
81
- --sidebar-primary: #531dab;
82
- --sidebar-primary-foreground: #f5f0ff;
83
- --shadow-soft: 0 18px 30px rgba(2, 6, 23, 0.6);
84
- }
85
-
86
1
  html,
87
2
  body {
88
3
  background: var(--background);
@@ -534,6 +449,7 @@ body {
534
449
  height: 100%;
535
450
  padding: 0;
536
451
  cursor: pointer;
452
+ font-family: inherit;
537
453
  }
538
454
 
539
455
  .solid-sidebar-tree-label {
@@ -4373,6 +4289,7 @@ html.dark .solid-paginator-btn:hover:not(:disabled),
4373
4289
  font-weight: 500;
4374
4290
  padding: 0;
4375
4291
  cursor: pointer;
4292
+ font-family: inherit;
4376
4293
  }
4377
4294
 
4378
4295
  .solid-list-external-link:hover {
@@ -6617,6 +6534,6 @@ html.dark .solid-paginator-btn:hover:not(:disabled),
6617
6534
 
6618
6535
  .solid-list-toolbar-row {
6619
6536
  padding: 5px 15px 0 10px;
6620
- padding-left: 2.4rem;
6537
+ padding-left: 1rem;
6621
6538
 
6622
6539
  }