@solidxai/core-ui 0.1.16 → 0.1.17-beta.2

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 (100) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +15 -14
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +35 -34
  5. package/dist/components/common/SettingsComponent.module.css +89 -0
  6. package/dist/components/common/SolidAdmin.js +2 -2
  7. package/dist/components/common/SolidAdmin.js.map +1 -1
  8. package/dist/components/common/SolidAdmin.tsx +2 -2
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +1 -1
  10. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  11. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +2 -2
  12. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  13. package/dist/components/core/card/CardItem.js +1 -1
  14. package/dist/components/core/card/CardItem.js.map +1 -1
  15. package/dist/components/core/card/CardItem.tsx +4 -1
  16. package/dist/components/core/card/SolidCardView.d.ts +1 -0
  17. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  18. package/dist/components/core/card/SolidCardView.js +2 -2
  19. package/dist/components/core/card/SolidCardView.js.map +1 -1
  20. package/dist/components/core/card/SolidCardView.tsx +4 -1
  21. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  22. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  23. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  24. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  25. package/dist/components/core/common/SolidGlobalSearchElement.js +342 -114
  26. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  27. package/dist/components/core/common/SolidGlobalSearchElement.tsx +285 -47
  28. package/dist/components/core/json/SolidJsonEditor.css +89 -0
  29. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  30. package/dist/components/core/kanban/KanbanCard.js +2 -2
  31. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  32. package/dist/components/core/kanban/KanbanCard.tsx +5 -2
  33. package/dist/components/core/kanban/SolidKanbanView.d.ts +1 -0
  34. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  35. package/dist/components/core/kanban/SolidKanbanView.js +3 -1
  36. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  37. package/dist/components/core/kanban/SolidKanbanView.tsx +5 -2
  38. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  39. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  40. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  41. package/dist/components/core/list/SolidListView.d.ts +1 -0
  42. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  43. package/dist/components/core/list/SolidListView.js +7 -6
  44. package/dist/components/core/list/SolidListView.js.map +1 -1
  45. package/dist/components/core/list/SolidListView.tsx +7 -4
  46. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  47. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  48. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  49. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  50. package/dist/components/core/locales/SolidLocale.js +1 -1
  51. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  52. package/dist/components/core/locales/SolidLocale.tsx +1 -0
  53. package/dist/components/core/locales/solid-locale.css +9 -0
  54. package/dist/components/core/model/FieldMetaData.js +1 -1
  55. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  56. package/dist/components/core/model/FieldMetaData.tsx +1 -1
  57. package/dist/components/core/model/FieldMetaDataForm.css +60 -0
  58. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  59. package/dist/components/core/model/FieldMetaDataForm.js +47 -36
  60. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  61. package/dist/components/core/model/FieldMetaDataForm.tsx +59 -40
  62. package/dist/components/core/model/ModelMetaData.js +1 -1
  63. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  64. package/dist/components/core/model/ModelMetaData.tsx +1 -1
  65. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  66. package/dist/components/core/module/CreateModule.js +34 -21
  67. package/dist/components/core/module/CreateModule.js.map +1 -1
  68. package/dist/components/core/module/CreateModule.tsx +59 -21
  69. package/dist/components/core/module/ModuleMetadataExplorer.css +72 -2
  70. package/dist/components/core/tree/SolidTreeView.d.ts +3 -0
  71. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  72. package/dist/components/core/tree/SolidTreeView.js +8 -2
  73. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  74. package/dist/components/core/tree/SolidTreeView.tsx +12 -2
  75. package/dist/components/core/users/CreateUserRole.js +1 -1
  76. package/dist/components/core/users/CreateUserRole.js.map +1 -1
  77. package/dist/components/core/users/CreateUserRole.tsx +1 -1
  78. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  79. package/dist/components/layout/AdminTopHeader.js +2 -1
  80. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  81. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  82. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  83. package/dist/components/layout/AppSidebar.js +16 -1
  84. package/dist/components/layout/AppSidebar.js.map +1 -1
  85. package/dist/components/layout/AppSidebar.tsx +37 -9
  86. package/dist/constants/error-messages.d.ts +4 -0
  87. package/dist/constants/error-messages.d.ts.map +1 -1
  88. package/dist/constants/error-messages.js +4 -0
  89. package/dist/constants/error-messages.js.map +1 -1
  90. package/dist/constants/error-messages.ts +4 -0
  91. package/dist/resources/images/solidx-logo/solidx-logo-dark.png +0 -0
  92. package/dist/resources/images/solidx-logo/solidx-logo-light.png +0 -0
  93. package/dist/resources/solid-custom.css +55 -43
  94. package/dist/resources/solid-tailwind-generated.css +1 -1
  95. package/dist/resources/themes/solid-dark-enterprise/theme.css +6 -483
  96. package/dist/resources/themes/solid-dark-modern/theme.css +3 -169
  97. package/dist/resources/themes/solid-light-enterprise/theme.css +6 -488
  98. package/dist/resources/themes/solid-light-modern/theme.css +9 -206
  99. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +290 -1
  100. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"AAkBA,eAAO,MAAM,UAAU;cAA8B,MAAM,SAAS;6CA4QnE,CAAA"}
1
+ {"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,UAAU;cAA8B,MAAM,SAAS;6CA4QnE,CAAA"}
@@ -40,7 +40,8 @@ import { usePathname } from "../../hooks/usePathname";
40
40
  import { useRouter } from "../../hooks/useRouter";
41
41
  import { useCallback, useContext, useEffect, useMemo, useState } from "react";
42
42
  import Image from "../common/Image";
43
- import SolidLogo from '../../resources/images/SolidXLogo.svg';
43
+ import SolidLogoLight from '../../resources/images/solidx-logo/solidx-logo-light.png';
44
+ import SolidLogoDark from '../../resources/images/solidx-logo/solidx-logo-dark.png';
44
45
  import AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';
45
46
  import { SolidButton, SolidDialog, SolidDivider } from "../shad-cn-ui";
46
47
  import { LayoutContext } from "../layout/context/layoutcontext";
@@ -52,13 +53,13 @@ import { SolidToastProvider } from "../common/SolidToastProvider";
52
53
  import { BackendReconnectIndicator } from "../common/BackendReconnectIndicator";
53
54
  var SHADCN_PLACEHOLDER_IMAGE = "https://ui.shadcn.com/placeholder.svg";
54
55
  export var AuthLayout = function (_a) {
55
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
56
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
56
57
  var children = _a.children;
57
58
  var layoutContext = useContext(LayoutContext);
58
- var _w = useState(null), solidSettingsData = _w[0], setSolidSettingsData = _w[1];
59
- var _x = useState(true), isLoadingAuthSettings = _x[0], setIsLoadingAuthSettings = _x[1];
60
- var _y = useState(null), allowRegistration = _y[0], setAllowRegistration = _y[1];
61
- var _z = useState(false), isRestricted = _z[0], setIsRestricted = _z[1];
59
+ var _v = useState(null), solidSettingsData = _v[0], setSolidSettingsData = _v[1];
60
+ var _w = useState(true), isLoadingAuthSettings = _w[0], setIsLoadingAuthSettings = _w[1];
61
+ var _x = useState(null), allowRegistration = _x[0], setAllowRegistration = _x[1];
62
+ var _y = useState(false), isRestricted = _y[0], setIsRestricted = _y[1];
62
63
  var pathname = usePathname();
63
64
  var router = useRouter();
64
65
  var loadAuthSettings = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -139,6 +140,7 @@ export var AuthLayout = function (_a) {
139
140
  return normalizeAssetUrl(src);
140
141
  };
141
142
  var authLogoSrc = normalizeAssetUrl(((_b = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _b === void 0 ? void 0 : _b.appLogo) || "");
143
+ var fallbackLogoSrc = authTheme === "light" ? SolidLogoDark : SolidLogoLight;
142
144
  var authBackgroundSrc = solidSideBanner();
143
145
  var appTitle = ((_c = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _c === void 0 ? void 0 : _c.appTitle) || "";
144
146
  var appSubtitle = ((_d = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _d === void 0 ? void 0 : _d.appSubtitle) || "";
@@ -150,12 +152,11 @@ export var AuthLayout = function (_a) {
150
152
  var copyright = ((_k = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _k === void 0 ? void 0 : _k.copyright) || "";
151
153
  var renderBrand = function (align) {
152
154
  if (align === void 0) { align = "start"; }
153
- if (!authLogoSrc && !appTitle)
154
- return null;
155
- var brandLabel = appTitle || "Application logo";
156
- return (_jsxs("div", { className: "solid-auth-brand ".concat(align === "center" ? "is-center" : ""), "aria-label": brandLabel, children: [authLogoSrc ? (_jsx("span", { className: "solid-auth-brand-logo", children: _jsx("img", { src: authLogoSrc, alt: brandLabel }) })) : null, appTitle ? _jsx("span", { className: "solid-auth-brand-text", children: appTitle }) : null] }));
155
+ var brandLabel = appTitle || "SolidX logo";
156
+ return (_jsxs("div", { className: "solid-auth-brand ".concat(align === "center" ? "is-center" : ""), "aria-label": brandLabel, children: [_jsx("span", { className: "solid-auth-brand-logo", children: _jsx("img", { src: authLogoSrc || fallbackLogoSrc, alt: brandLabel }) }), authLogoSrc && appTitle ? _jsx("span", { className: "solid-auth-brand-text", children: appTitle }) : null] }));
157
157
  };
158
158
  var authLayout = ((_l = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _l === void 0 ? void 0 : _l.authPagesLayout) || "center";
159
+ var appLogoPosition = ((_m = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _m === void 0 ? void 0 : _m.appLogoPosition) || "in_form_view";
159
160
  var isCenter = authLayout === "center";
160
161
  var isLeft = authLayout === "left";
161
162
  var isRight = authLayout === "right";
@@ -166,10 +167,10 @@ export var AuthLayout = function (_a) {
166
167
  reloadAuthSettings: loadAuthSettings,
167
168
  }); }, [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]);
168
169
  var legalFooter = shouldRenderFooter ? (_jsx("div", { className: "solid-auth-legal-footer hidden md:flex", children: _jsxs("div", { className: "solid-auth-legal-footer-row", children: [(appTnc || appPrivacyPolicy) && (_jsxs("div", { className: "solid-auth-legal-links", children: [appTnc ? (_jsx(Link, { className: "solid-auth-legal-link", href: appTnc, children: "Terms of Service" })) : null, appPrivacyPolicy ? (_jsx(Link, { className: "solid-auth-legal-link", href: appPrivacyPolicy, children: "Privacy Policy" })) : null] })), copyright ? (_jsx("p", { className: "solid-auth-legal-copy solid-auth-legal-copy--muted", children: copyright })) : null] }) })) : null;
169
- var formPane = (_jsx("div", { className: "solid-auth-form-pane solid-login-dark-bg", children: _jsxs("div", { className: "solid-auth-form-pane-inner", children: [_jsx("div", { className: "solid-auth-form-pane-brand", children: renderBrand("start") }), _jsx("div", { className: "solid-auth-form-pane-content", children: authChildren }), legalFooter] }) }));
170
- var imagePane = (_jsxs("div", { className: "solid-auth-image-pane position-relative ".concat(isLeft ? "solid-left-layout pane-on-right" : "solid-right-layout pane-on-left").trim(), style: { backgroundImage: toCssBackgroundImage(authBackgroundSrc) }, children: [((_m = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _m === void 0 ? void 0 : _m.appLogoPosition) === "in_image_view" &&
171
- _jsx("div", { className: "solid-logo flex items-center gap-4 ".concat((_o = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _o === void 0 ? void 0 : _o.appLogoPosition), children: _jsx(Image, { alt: "solid logo", src: normalizeAssetUrl((_p = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _p === void 0 ? void 0 : _p.appLogo) || SolidLogo, className: "relative", fill: true }) }), showAuthContent &&
172
- _jsx("div", { className: "w-full", style: { zIndex: 1 }, children: _jsx("div", { className: "flex flex-wrap -mx-2 -mt-2", children: _jsxs("div", { className: "w-[66.666667%] px-2 pt-2 mx-auto", children: [((_q = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _q === void 0 ? void 0 : _q.appSubtitle) && _jsx("h1", { className: "solid-auth-image-subtitle m-0", children: (_r = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _r === void 0 ? void 0 : _r.appSubtitle }), ((_s = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _s === void 0 ? void 0 : _s.appTitle) && _jsx("h1", { className: "solid-auth-image-title mt-0", children: (_t = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _t === void 0 ? void 0 : _t.appTitle }), ((_u = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _u === void 0 ? void 0 : _u.appDescription) && _jsx("p", { className: "solid-auth-image-helper-text", children: (_v = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _v === void 0 ? void 0 : _v.appDescription })] }) }) })] }));
170
+ var formPane = (_jsx("div", { className: "solid-auth-form-pane solid-login-dark-bg", children: _jsxs("div", { className: "solid-auth-form-pane-inner", children: [appLogoPosition === "in_form_view" && (_jsx("div", { className: "solid-auth-form-pane-brand", children: renderBrand("start") })), _jsx("div", { className: "solid-auth-form-pane-content", children: authChildren }), legalFooter] }) }));
171
+ var imagePane = (_jsxs("div", { className: "solid-auth-image-pane position-relative ".concat(isLeft ? "solid-left-layout pane-on-right" : "solid-right-layout pane-on-left").trim(), style: { backgroundImage: toCssBackgroundImage(authBackgroundSrc) }, children: [appLogoPosition === "in_image_view" &&
172
+ _jsx("div", { className: "solid-logo flex items-center gap-4 ".concat(appLogoPosition), children: _jsx(Image, { alt: "solid logo", src: normalizeAssetUrl((_o = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _o === void 0 ? void 0 : _o.appLogo) || fallbackLogoSrc, className: "relative", fill: true }) }), showAuthContent &&
173
+ _jsx("div", { className: "w-full", style: { zIndex: 1 }, children: _jsx("div", { className: "flex flex-wrap -mx-2 -mt-2", children: _jsxs("div", { className: "w-[66.666667%] px-2 pt-2 mx-auto", children: [((_p = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _p === void 0 ? void 0 : _p.appSubtitle) && _jsx("h1", { className: "solid-auth-image-subtitle m-0", children: (_q = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _q === void 0 ? void 0 : _q.appSubtitle }), ((_r = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _r === void 0 ? void 0 : _r.appTitle) && _jsx("h1", { className: "solid-auth-image-title mt-0", children: (_s = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _s === void 0 ? void 0 : _s.appTitle }), ((_t = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _t === void 0 ? void 0 : _t.appDescription) && _jsx("p", { className: "solid-auth-image-helper-text", children: (_u = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _u === void 0 ? void 0 : _u.appDescription })] }) }) })] }));
173
174
  return (_jsx(AuthSettingsContext.Provider, { value: authSettingsContextValue, children: _jsxs("div", { className: "solid-auth-theme-wrapper ".concat(authLayout, " auth-theme-").concat(authTheme), "data-auth-theme": authTheme, style: isCenter ? { position: "relative" } : undefined, children: [isCenter && authBackgroundSrc ? (_jsx("div", { "aria-hidden": "true", style: {
174
175
  position: "absolute",
175
176
  inset: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLayout.js","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport Image from \"../common/Image\";\nimport SolidLogo from '../../resources/images/SolidXLogo.svg'\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { SolidButton, SolidDialog, SolidDivider } from \"../shad-cn-ui\";\nimport { LayoutContext } from \"../layout/context/layoutcontext\";\nimport { solidGet } from \"../../http/solidHttp\";\nimport { AuthSettingsContext } from \"./AuthSettingsContext\";\nimport { normalizeAssetUrl, toCssBackgroundImage } from \"../../helpers/assetUrl\";\nimport { toLegacySettingsShape } from \"../../helpers/settingsPayload\";\nimport { SolidToastProvider } from \"../common/SolidToastProvider\";\nimport { BackendReconnectIndicator } from \"../common/BackendReconnectIndicator\";\n\nconst SHADCN_PLACEHOLDER_IMAGE = \"https://ui.shadcn.com/placeholder.svg\";\n\nexport const AuthLayout = ({ children }: { children: React.ReactNode }) => {\n const layoutContext = useContext(LayoutContext);\n const [solidSettingsData, setSolidSettingsData] = useState<any>(null);\n const [isLoadingAuthSettings, setIsLoadingAuthSettings] = useState(true);\n\n const [allowRegistration, setAllowRegistration] = useState<boolean | null>(null);\n const [isRestricted, setIsRestricted] = useState(false);\n const pathname = usePathname();\n const router = useRouter();\n\n const loadAuthSettings = useCallback(async () => {\n setIsLoadingAuthSettings(true);\n try {\n const response = await solidGet(\"/setting/wrapped\");\n setSolidSettingsData(toLegacySettingsShape(response?.data ?? null));\n } catch (error) {\n console.error(\"Failed to load auth settings\", error);\n setSolidSettingsData(null);\n } finally {\n setIsLoadingAuthSettings(false);\n }\n }, []);\n\n useEffect(() => {\n loadAuthSettings();\n }, [loadAuthSettings]);\n\n useEffect(() => {\n const allowPublicRegistration = solidSettingsData?.data?.allowPublicRegistration;\n if (allowPublicRegistration === false) {\n setAllowRegistration(false);\n if (pathname === \"/auth/register\") {\n setIsRestricted(true);\n } else {\n setIsRestricted(false);\n }\n } else if (allowPublicRegistration === true) {\n setAllowRegistration(true);\n setIsRestricted(false);\n }\n }, [solidSettingsData, pathname]);\n\n // Auth pages own their auth-settings loading state. A parent full-page\n // spinner mounts once during logout navigation and again after the hard\n // redirect, which creates the duplicate spinner around StoreProvider's\n // workspace loader.\n const authChildren = pathname !== \"/auth/register\" || allowRegistration !== false\n ? children\n : null;\n const handleRegistration = () => {\n router.push(\"/auth/login\");\n setIsRestricted(false);\n }\n\n const authTheme = layoutContext?.themeMode === \"dark\" ? \"dark\" : \"light\";\n\n const solidSideBanner = () => {\n const layout = solidSettingsData?.data?.authPagesLayout || \"center\";\n\n let src = '';\n\n if (layout === 'left') {\n src = solidSettingsData?.data?.authScreenLeftBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'right') {\n src = solidSettingsData?.data?.authScreenRightBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'center') {\n src = solidSettingsData?.data?.authScreenCenterBackgroundImage\n || (authTheme === \"light\"\n ? ((AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage)\n : \"\");\n }\n\n return normalizeAssetUrl(src);\n };\n\n const authLogoSrc = normalizeAssetUrl(solidSettingsData?.data?.appLogo || \"\");\n const authBackgroundSrc = solidSideBanner();\n const appTitle = solidSettingsData?.data?.appTitle || \"\";\n const appSubtitle = solidSettingsData?.data?.appSubtitle || \"\";\n const appDescription = solidSettingsData?.data?.appDescription || \"\";\n const showAuthContent = solidSettingsData?.data?.showAuthContent === true;\n const showLegalLinks = solidSettingsData?.data?.showLegalLinks === true;\n const appTnc = solidSettingsData?.data?.appTnc || \"\";\n const appPrivacyPolicy = solidSettingsData?.data?.appPrivacyPolicy || \"\";\n const copyright = solidSettingsData?.data?.copyright || \"\";\n\n const renderBrand = (align: \"center\" | \"start\" = \"start\") => {\n if (!authLogoSrc && !appTitle) return null;\n\n const brandLabel = appTitle || \"Application logo\";\n\n return (\n <div className={`solid-auth-brand ${align === \"center\" ? \"is-center\" : \"\"}`} aria-label={brandLabel}>\n {authLogoSrc ? (\n <span className=\"solid-auth-brand-logo\">\n <img src={authLogoSrc} alt={brandLabel} />\n </span>\n ) : null}\n {appTitle ? <span className=\"solid-auth-brand-text\">{appTitle}</span> : null}\n </div>\n );\n };\n\n const authLayout = solidSettingsData?.data?.authPagesLayout || \"center\";\n const isCenter = authLayout === \"center\";\n const isLeft = authLayout === \"left\";\n const isRight = authLayout === \"right\";\n const shouldRenderFooter = showLegalLinks || Boolean(copyright);\n const authSettingsContextValue = useMemo(\n () => ({\n solidSettingsData,\n isLoadingAuthSettings,\n reloadAuthSettings: loadAuthSettings,\n }),\n [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]\n );\n\n const legalFooter = shouldRenderFooter ? (\n <div className=\"solid-auth-legal-footer hidden md:flex\">\n <div className=\"solid-auth-legal-footer-row\">\n {/* {showLegalLinks ? (\n <p className=\"solid-auth-legal-copy\">\n <span>Made with</span>\n <svg\n aria-hidden=\"true\"\n className=\"solid-auth-legal-heart\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.24264 8.24264L8 15L14.7574 8.24264C15.553 7.44699 16 6.36786 16 5.24264V5.05234C16 2.8143 14.1857 1 11.9477 1C10.7166 1 9.55233 1.55959 8.78331 2.52086L8 3.5L7.21669 2.52086C6.44767 1.55959 5.28338 1 4.05234 1C1.8143 1 0 2.8143 0 5.05234V5.24264C0 6.36786 0.44699 7.44699 1.24264 8.24264Z\"\n fill=\"#ff0000\"\n />\n </svg>\n <span>in Mumbai</span>\n </p>\n ) : null} */}\n {(appTnc || appPrivacyPolicy) && (\n <div className=\"solid-auth-legal-links\">\n {appTnc ? (\n <Link className=\"solid-auth-legal-link\" href={appTnc}>\n Terms of Service\n </Link>\n ) : null}\n {appPrivacyPolicy ? (\n <Link className=\"solid-auth-legal-link\" href={appPrivacyPolicy}>\n Privacy Policy\n </Link>\n ) : null}\n </div>\n )}\n {copyright ? (\n <p className=\"solid-auth-legal-copy solid-auth-legal-copy--muted\">{copyright}</p>\n ) : null}\n </div>\n </div>\n ) : null;\n\n const formPane = (\n <div className=\"solid-auth-form-pane solid-login-dark-bg\">\n <div className=\"solid-auth-form-pane-inner\">\n <div className=\"solid-auth-form-pane-brand\">\n {renderBrand(\"start\")}\n </div>\n <div className=\"solid-auth-form-pane-content\">\n {authChildren}\n </div>\n {legalFooter}\n </div>\n </div>\n );\n\n const imagePane = (\n <div\n className={`solid-auth-image-pane position-relative ${isLeft ? \"solid-left-layout pane-on-right\" : \"solid-right-layout pane-on-left\"}`.trim()}\n style={{ backgroundImage: toCssBackgroundImage(authBackgroundSrc) }}\n >\n {solidSettingsData?.data?.appLogoPosition === \"in_image_view\" &&\n <div className={`solid-logo flex items-center gap-4 ${solidSettingsData?.data?.appLogoPosition}`}>\n <Image\n alt=\"solid logo\"\n src={normalizeAssetUrl(solidSettingsData?.data?.appLogo) || SolidLogo}\n className=\"relative\"\n fill\n />\n </div>\n }\n {showAuthContent &&\n <div className=\"w-full\" style={{ zIndex: 1 }}>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-[66.666667%] px-2 pt-2 mx-auto\">\n {solidSettingsData?.data?.appSubtitle && <h1 className=\"solid-auth-image-subtitle m-0\">{solidSettingsData?.data?.appSubtitle}</h1>}\n {solidSettingsData?.data?.appTitle && <h1 className=\"solid-auth-image-title mt-0\">{solidSettingsData?.data?.appTitle}</h1>}\n {solidSettingsData?.data?.appDescription && <p className=\"solid-auth-image-helper-text\">{solidSettingsData?.data?.appDescription}</p>}\n </div>\n </div>\n </div>\n }\n </div>\n );\n\n return (\n <AuthSettingsContext.Provider value={authSettingsContextValue}>\n <div\n className={`solid-auth-theme-wrapper ${authLayout} auth-theme-${authTheme}`}\n data-auth-theme={authTheme}\n style={isCenter ? { position: \"relative\" } : undefined}\n >\n {isCenter && authBackgroundSrc ? (\n <div\n aria-hidden=\"true\"\n style={{\n position: \"absolute\",\n inset: 0,\n zIndex: 0,\n backgroundImage: toCssBackgroundImage(authBackgroundSrc),\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n }}\n />\n ) : null}\n <SolidToastProvider />\n <BackendReconnectIndicator variant=\"floating\" />\n {!isCenter && (\n <div className=\"solid-auth-split\">\n {isLeft && formPane}\n {imagePane}\n {isRight && formPane}\n </div>\n )}\n {isCenter && <div className=\"solid-center-layout\" style={{ position: \"relative\", zIndex: 1 }}>\n <div className=\"solid-auth-center-stack\">\n {renderBrand(\"center\")}\n {showAuthContent &&\n <div className=\"solid-auth-center-details\">\n {appSubtitle ? <p className=\"solid-auth-center-subtitle\">{appSubtitle}</p> : null}\n {/* {appTitle ? <h1 className=\"solid-auth-center-title\">{appTitle}</h1> : null} */}\n {appDescription ? <p className=\"solid-auth-center-description\">{appDescription}</p> : null}\n </div>\n }\n {authChildren}\n </div>\n {legalFooter}\n </div>}\n <SolidDialog\n visible={isRestricted}\n onHide={handleRegistration}\n header=\"Access Restricted\"\n headerClassName=\"py-2\" contentClassName=\"px-0 pb-0\"\n className=\"solid-confirm-dialog\"\n footer={\n <div className=\"flex items-center justify-start\">\n <SolidButton size=\"sm\" onClick={handleRegistration}>Close</SolidButton>\n </div>\n }\n >\n <SolidDivider className=\"m-0\" />\n <div className=\"p-6\">\n <p>Sign-up is not available. Please contact the admin.</p>\n </div>\n </SolidDialog>\n </div>\n </AuthSettingsContext.Provider>\n )\n}\n"]}
1
+ {"version":3,"file":"AuthLayout.js","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["import Link from \"../common/Link\";\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { useCallback, useContext, useEffect, useMemo, useState } from \"react\";\nimport Image from \"../common/Image\";\nimport SolidLogoLight from '../../resources/images/solidx-logo/solidx-logo-light.png'\nimport SolidLogoDark from '../../resources/images/solidx-logo/solidx-logo-dark.png'\nimport AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';\nimport { SolidButton, SolidDialog, SolidDivider } from \"../shad-cn-ui\";\nimport { LayoutContext } from \"../layout/context/layoutcontext\";\nimport { solidGet } from \"../../http/solidHttp\";\nimport { AuthSettingsContext } from \"./AuthSettingsContext\";\nimport { normalizeAssetUrl, toCssBackgroundImage } from \"../../helpers/assetUrl\";\nimport { toLegacySettingsShape } from \"../../helpers/settingsPayload\";\nimport { SolidToastProvider } from \"../common/SolidToastProvider\";\nimport { BackendReconnectIndicator } from \"../common/BackendReconnectIndicator\";\n\nconst SHADCN_PLACEHOLDER_IMAGE = \"https://ui.shadcn.com/placeholder.svg\";\n\nexport const AuthLayout = ({ children }: { children: React.ReactNode }) => {\n const layoutContext = useContext(LayoutContext);\n const [solidSettingsData, setSolidSettingsData] = useState<any>(null);\n const [isLoadingAuthSettings, setIsLoadingAuthSettings] = useState(true);\n\n const [allowRegistration, setAllowRegistration] = useState<boolean | null>(null);\n const [isRestricted, setIsRestricted] = useState(false);\n const pathname = usePathname();\n const router = useRouter();\n\n const loadAuthSettings = useCallback(async () => {\n setIsLoadingAuthSettings(true);\n try {\n const response = await solidGet(\"/setting/wrapped\");\n setSolidSettingsData(toLegacySettingsShape(response?.data ?? null));\n } catch (error) {\n console.error(\"Failed to load auth settings\", error);\n setSolidSettingsData(null);\n } finally {\n setIsLoadingAuthSettings(false);\n }\n }, []);\n\n useEffect(() => {\n loadAuthSettings();\n }, [loadAuthSettings]);\n\n useEffect(() => {\n const allowPublicRegistration = solidSettingsData?.data?.allowPublicRegistration;\n if (allowPublicRegistration === false) {\n setAllowRegistration(false);\n if (pathname === \"/auth/register\") {\n setIsRestricted(true);\n } else {\n setIsRestricted(false);\n }\n } else if (allowPublicRegistration === true) {\n setAllowRegistration(true);\n setIsRestricted(false);\n }\n }, [solidSettingsData, pathname]);\n\n // Auth pages own their auth-settings loading state. A parent full-page\n // spinner mounts once during logout navigation and again after the hard\n // redirect, which creates the duplicate spinner around StoreProvider's\n // workspace loader.\n const authChildren = pathname !== \"/auth/register\" || allowRegistration !== false\n ? children\n : null;\n const handleRegistration = () => {\n router.push(\"/auth/login\");\n setIsRestricted(false);\n }\n\n const authTheme = layoutContext?.themeMode === \"dark\" ? \"dark\" : \"light\";\n\n const solidSideBanner = () => {\n const layout = solidSettingsData?.data?.authPagesLayout || \"center\";\n\n let src = '';\n\n if (layout === 'left') {\n src = solidSettingsData?.data?.authScreenLeftBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'right') {\n src = solidSettingsData?.data?.authScreenRightBackgroundImage || SHADCN_PLACEHOLDER_IMAGE;\n } else if (layout === 'center') {\n src = solidSettingsData?.data?.authScreenCenterBackgroundImage\n || (authTheme === \"light\"\n ? ((AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage)\n : \"\");\n }\n\n return normalizeAssetUrl(src);\n };\n\n const authLogoSrc = normalizeAssetUrl(solidSettingsData?.data?.appLogo || \"\");\n const fallbackLogoSrc = authTheme === \"light\" ? SolidLogoDark : SolidLogoLight;\n const authBackgroundSrc = solidSideBanner();\n const appTitle = solidSettingsData?.data?.appTitle || \"\";\n const appSubtitle = solidSettingsData?.data?.appSubtitle || \"\";\n const appDescription = solidSettingsData?.data?.appDescription || \"\";\n const showAuthContent = solidSettingsData?.data?.showAuthContent === true;\n const showLegalLinks = solidSettingsData?.data?.showLegalLinks === true;\n const appTnc = solidSettingsData?.data?.appTnc || \"\";\n const appPrivacyPolicy = solidSettingsData?.data?.appPrivacyPolicy || \"\";\n const copyright = solidSettingsData?.data?.copyright || \"\";\n\n const renderBrand = (align: \"center\" | \"start\" = \"start\") => {\n const brandLabel = appTitle || \"SolidX logo\";\n\n return (\n <div className={`solid-auth-brand ${align === \"center\" ? \"is-center\" : \"\"}`} aria-label={brandLabel}>\n <span className=\"solid-auth-brand-logo\">\n <img src={authLogoSrc || fallbackLogoSrc} alt={brandLabel} />\n </span>\n {authLogoSrc && appTitle ? <span className=\"solid-auth-brand-text\">{appTitle}</span> : null}\n </div>\n );\n };\n\n const authLayout = solidSettingsData?.data?.authPagesLayout || \"center\";\n const appLogoPosition = solidSettingsData?.data?.appLogoPosition || \"in_form_view\";\n const isCenter = authLayout === \"center\";\n const isLeft = authLayout === \"left\";\n const isRight = authLayout === \"right\";\n const shouldRenderFooter = showLegalLinks || Boolean(copyright);\n const authSettingsContextValue = useMemo(\n () => ({\n solidSettingsData,\n isLoadingAuthSettings,\n reloadAuthSettings: loadAuthSettings,\n }),\n [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]\n );\n\n const legalFooter = shouldRenderFooter ? (\n <div className=\"solid-auth-legal-footer hidden md:flex\">\n <div className=\"solid-auth-legal-footer-row\">\n {/* {showLegalLinks ? (\n <p className=\"solid-auth-legal-copy\">\n <span>Made with</span>\n <svg\n aria-hidden=\"true\"\n className=\"solid-auth-legal-heart\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.24264 8.24264L8 15L14.7574 8.24264C15.553 7.44699 16 6.36786 16 5.24264V5.05234C16 2.8143 14.1857 1 11.9477 1C10.7166 1 9.55233 1.55959 8.78331 2.52086L8 3.5L7.21669 2.52086C6.44767 1.55959 5.28338 1 4.05234 1C1.8143 1 0 2.8143 0 5.05234V5.24264C0 6.36786 0.44699 7.44699 1.24264 8.24264Z\"\n fill=\"#ff0000\"\n />\n </svg>\n <span>in Mumbai</span>\n </p>\n ) : null} */}\n {(appTnc || appPrivacyPolicy) && (\n <div className=\"solid-auth-legal-links\">\n {appTnc ? (\n <Link className=\"solid-auth-legal-link\" href={appTnc}>\n Terms of Service\n </Link>\n ) : null}\n {appPrivacyPolicy ? (\n <Link className=\"solid-auth-legal-link\" href={appPrivacyPolicy}>\n Privacy Policy\n </Link>\n ) : null}\n </div>\n )}\n {copyright ? (\n <p className=\"solid-auth-legal-copy solid-auth-legal-copy--muted\">{copyright}</p>\n ) : null}\n </div>\n </div>\n ) : null;\n\n const formPane = (\n <div className=\"solid-auth-form-pane solid-login-dark-bg\">\n <div className=\"solid-auth-form-pane-inner\">\n {appLogoPosition === \"in_form_view\" && (\n <div className=\"solid-auth-form-pane-brand\">\n {renderBrand(\"start\")}\n </div>\n )}\n <div className=\"solid-auth-form-pane-content\">\n {authChildren}\n </div>\n {legalFooter}\n </div>\n </div>\n );\n\n const imagePane = (\n <div\n className={`solid-auth-image-pane position-relative ${isLeft ? \"solid-left-layout pane-on-right\" : \"solid-right-layout pane-on-left\"}`.trim()}\n style={{ backgroundImage: toCssBackgroundImage(authBackgroundSrc) }}\n >\n {appLogoPosition === \"in_image_view\" &&\n <div className={`solid-logo flex items-center gap-4 ${appLogoPosition}`}>\n <Image\n alt=\"solid logo\"\n src={normalizeAssetUrl(solidSettingsData?.data?.appLogo) || fallbackLogoSrc}\n className=\"relative\"\n fill\n />\n </div>\n }\n {showAuthContent &&\n <div className=\"w-full\" style={{ zIndex: 1 }}>\n <div className=\"flex flex-wrap -mx-2 -mt-2\">\n <div className=\"w-[66.666667%] px-2 pt-2 mx-auto\">\n {solidSettingsData?.data?.appSubtitle && <h1 className=\"solid-auth-image-subtitle m-0\">{solidSettingsData?.data?.appSubtitle}</h1>}\n {solidSettingsData?.data?.appTitle && <h1 className=\"solid-auth-image-title mt-0\">{solidSettingsData?.data?.appTitle}</h1>}\n {solidSettingsData?.data?.appDescription && <p className=\"solid-auth-image-helper-text\">{solidSettingsData?.data?.appDescription}</p>}\n </div>\n </div>\n </div>\n }\n </div>\n );\n\n return (\n <AuthSettingsContext.Provider value={authSettingsContextValue}>\n <div\n className={`solid-auth-theme-wrapper ${authLayout} auth-theme-${authTheme}`}\n data-auth-theme={authTheme}\n style={isCenter ? { position: \"relative\" } : undefined}\n >\n {isCenter && authBackgroundSrc ? (\n <div\n aria-hidden=\"true\"\n style={{\n position: \"absolute\",\n inset: 0,\n zIndex: 0,\n backgroundImage: toCssBackgroundImage(authBackgroundSrc),\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n backgroundSize: \"cover\",\n }}\n />\n ) : null}\n <SolidToastProvider />\n <BackendReconnectIndicator variant=\"floating\" />\n {!isCenter && (\n <div className=\"solid-auth-split\">\n {isLeft && formPane}\n {imagePane}\n {isRight && formPane}\n </div>\n )}\n {isCenter && <div className=\"solid-center-layout\" style={{ position: \"relative\", zIndex: 1 }}>\n <div className=\"solid-auth-center-stack\">\n {renderBrand(\"center\")}\n {showAuthContent &&\n <div className=\"solid-auth-center-details\">\n {appSubtitle ? <p className=\"solid-auth-center-subtitle\">{appSubtitle}</p> : null}\n {/* {appTitle ? <h1 className=\"solid-auth-center-title\">{appTitle}</h1> : null} */}\n {appDescription ? <p className=\"solid-auth-center-description\">{appDescription}</p> : null}\n </div>\n }\n {authChildren}\n </div>\n {legalFooter}\n </div>}\n <SolidDialog\n visible={isRestricted}\n onHide={handleRegistration}\n header=\"Access Restricted\"\n headerClassName=\"py-2\" contentClassName=\"px-0 pb-0\"\n className=\"solid-confirm-dialog\"\n footer={\n <div className=\"flex items-center justify-start\">\n <SolidButton size=\"sm\" onClick={handleRegistration}>Close</SolidButton>\n </div>\n }\n >\n <SolidDivider className=\"m-0\" />\n <div className=\"p-6\">\n <p>Sign-up is not available. Please contact the admin.</p>\n </div>\n </SolidDialog>\n </div>\n </AuthSettingsContext.Provider>\n )\n}\n"]}
@@ -3,7 +3,8 @@ import { usePathname } from "../../hooks/usePathname";
3
3
  import { useRouter } from "../../hooks/useRouter";
4
4
  import { useCallback, useContext, useEffect, useMemo, useState } from "react";
5
5
  import Image from "../common/Image";
6
- import SolidLogo from '../../resources/images/SolidXLogo.svg'
6
+ import SolidLogoLight from '../../resources/images/solidx-logo/solidx-logo-light.png'
7
+ import SolidLogoDark from '../../resources/images/solidx-logo/solidx-logo-dark.png'
7
8
  import AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';
8
9
  import { SolidButton, SolidDialog, SolidDivider } from "../shad-cn-ui";
9
10
  import { LayoutContext } from "../layout/context/layoutcontext";
@@ -92,6 +93,7 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
92
93
  };
93
94
 
94
95
  const authLogoSrc = normalizeAssetUrl(solidSettingsData?.data?.appLogo || "");
96
+ const fallbackLogoSrc = authTheme === "light" ? SolidLogoDark : SolidLogoLight;
95
97
  const authBackgroundSrc = solidSideBanner();
96
98
  const appTitle = solidSettingsData?.data?.appTitle || "";
97
99
  const appSubtitle = solidSettingsData?.data?.appSubtitle || "";
@@ -103,23 +105,20 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
103
105
  const copyright = solidSettingsData?.data?.copyright || "";
104
106
 
105
107
  const renderBrand = (align: "center" | "start" = "start") => {
106
- if (!authLogoSrc && !appTitle) return null;
107
-
108
- const brandLabel = appTitle || "Application logo";
108
+ const brandLabel = appTitle || "SolidX logo";
109
109
 
110
110
  return (
111
111
  <div className={`solid-auth-brand ${align === "center" ? "is-center" : ""}`} aria-label={brandLabel}>
112
- {authLogoSrc ? (
113
- <span className="solid-auth-brand-logo">
114
- <img src={authLogoSrc} alt={brandLabel} />
115
- </span>
116
- ) : null}
117
- {appTitle ? <span className="solid-auth-brand-text">{appTitle}</span> : null}
112
+ <span className="solid-auth-brand-logo">
113
+ <img src={authLogoSrc || fallbackLogoSrc} alt={brandLabel} />
114
+ </span>
115
+ {authLogoSrc && appTitle ? <span className="solid-auth-brand-text">{appTitle}</span> : null}
118
116
  </div>
119
117
  );
120
118
  };
121
119
 
122
120
  const authLayout = solidSettingsData?.data?.authPagesLayout || "center";
121
+ const appLogoPosition = solidSettingsData?.data?.appLogoPosition || "in_form_view";
123
122
  const isCenter = authLayout === "center";
124
123
  const isLeft = authLayout === "left";
125
124
  const isRight = authLayout === "right";
@@ -180,9 +179,11 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
180
179
  const formPane = (
181
180
  <div className="solid-auth-form-pane solid-login-dark-bg">
182
181
  <div className="solid-auth-form-pane-inner">
183
- <div className="solid-auth-form-pane-brand">
184
- {renderBrand("start")}
185
- </div>
182
+ {appLogoPosition === "in_form_view" && (
183
+ <div className="solid-auth-form-pane-brand">
184
+ {renderBrand("start")}
185
+ </div>
186
+ )}
186
187
  <div className="solid-auth-form-pane-content">
187
188
  {authChildren}
188
189
  </div>
@@ -196,11 +197,11 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
196
197
  className={`solid-auth-image-pane position-relative ${isLeft ? "solid-left-layout pane-on-right" : "solid-right-layout pane-on-left"}`.trim()}
197
198
  style={{ backgroundImage: toCssBackgroundImage(authBackgroundSrc) }}
198
199
  >
199
- {solidSettingsData?.data?.appLogoPosition === "in_image_view" &&
200
- <div className={`solid-logo flex items-center gap-4 ${solidSettingsData?.data?.appLogoPosition}`}>
200
+ {appLogoPosition === "in_image_view" &&
201
+ <div className={`solid-logo flex items-center gap-4 ${appLogoPosition}`}>
201
202
  <Image
202
203
  alt="solid logo"
203
- src={normalizeAssetUrl(solidSettingsData?.data?.appLogo) || SolidLogo}
204
+ src={normalizeAssetUrl(solidSettingsData?.data?.appLogo) || fallbackLogoSrc}
204
205
  className="relative"
205
206
  fill
206
207
  />
@@ -252,7 +253,7 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
252
253
  )}
253
254
  {isCenter && <div className="solid-center-layout" style={{ position: "relative", zIndex: 1 }}>
254
255
  <div className="solid-auth-center-stack">
255
- {renderBrand("center")}
256
+ {renderBrand("center")}
256
257
  {showAuthContent &&
257
258
  <div className="solid-auth-center-details">
258
259
  {appSubtitle ? <p className="solid-auth-center-subtitle">{appSubtitle}</p> : null}
@@ -264,24 +265,24 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
264
265
  </div>
265
266
  {legalFooter}
266
267
  </div>}
267
- <SolidDialog
268
- visible={isRestricted}
269
- onHide={handleRegistration}
270
- header="Access Restricted"
271
- headerClassName="py-2" contentClassName="px-0 pb-0"
272
- className="solid-confirm-dialog"
273
- footer={
274
- <div className="flex items-center justify-start">
275
- <SolidButton size="sm" onClick={handleRegistration}>Close</SolidButton>
268
+ <SolidDialog
269
+ visible={isRestricted}
270
+ onHide={handleRegistration}
271
+ header="Access Restricted"
272
+ headerClassName="py-2" contentClassName="px-0 pb-0"
273
+ className="solid-confirm-dialog"
274
+ footer={
275
+ <div className="flex items-center justify-start">
276
+ <SolidButton size="sm" onClick={handleRegistration}>Close</SolidButton>
277
+ </div>
278
+ }
279
+ >
280
+ <SolidDivider className="m-0" />
281
+ <div className="p-6">
282
+ <p>Sign-up is not available. Please contact the admin.</p>
276
283
  </div>
277
- }
278
- >
279
- <SolidDivider className="m-0" />
280
- <div className="p-6">
281
- <p>Sign-up is not available. Please contact the admin.</p>
282
- </div>
283
- </SolidDialog>
284
- </div>
284
+ </SolidDialog>
285
+ </div>
285
286
  </AuthSettingsContext.Provider>
286
287
  )
287
288
  }
@@ -201,6 +201,7 @@
201
201
  padding: 0.85rem 0.95rem 1rem;
202
202
  overflow-y: auto;
203
203
  min-height: 0;
204
+ overflow-x: hidden;
204
205
  }
205
206
 
206
207
  .moduleTab {
@@ -209,6 +210,7 @@
209
210
  gap: 0.75rem;
210
211
  text-align: left;
211
212
  width: 100%;
213
+ min-width: 0;
212
214
  }
213
215
 
214
216
  .moduleTabBadge {
@@ -230,6 +232,7 @@
230
232
  flex-direction: column;
231
233
  gap: 0.15rem;
232
234
  min-width: 0;
235
+ overflow: hidden;
233
236
  }
234
237
 
235
238
  .moduleTabLabel {
@@ -243,6 +246,14 @@
243
246
  color: var(--muted-foreground);
244
247
  }
245
248
 
249
+ .moduleTabLabel,
250
+ .moduleTabMeta {
251
+ max-width: 100%;
252
+ overflow: hidden;
253
+ text-overflow: ellipsis;
254
+ white-space: nowrap;
255
+ }
256
+
246
257
  .groupSection + .groupSection {
247
258
  margin-top: 0.85rem;
248
259
  }
@@ -354,6 +365,7 @@
354
365
 
355
366
  .readonlyValue {
356
367
  min-height: 2.45rem;
368
+ max-width: 100%;
357
369
  display: flex;
358
370
  align-items: center;
359
371
  color: var(--foreground);
@@ -362,6 +374,8 @@
362
374
  border-radius: 0.9rem;
363
375
  border: 1px solid color-mix(in srgb, var(--border) 72%, transparent);
364
376
  background: color-mix(in srgb, var(--surface-ground, var(--card)) 78%, var(--card) 22%);
377
+ overflow-wrap: anywhere;
378
+ word-break: break-word;
365
379
  }
366
380
 
367
381
  .emptyValue {
@@ -459,6 +473,75 @@
459
473
  color: var(--muted-foreground);
460
474
  }
461
475
 
476
+ /* Keep the settings workspace within the mobile viewport. The desktop layout
477
+ intentionally uses a fixed vertical module rail, but that rail leaves too
478
+ little room for nested AI settings tabs and their provider table on phones. */
479
+ @media (max-width: 767px) {
480
+ .page {
481
+ height: auto;
482
+ min-height: calc(100dvh - 46px);
483
+ overflow-x: hidden;
484
+ }
485
+
486
+ .pageHeader {
487
+ grid-template-columns: minmax(0, 1fr);
488
+ align-items: stretch;
489
+ }
490
+
491
+ .headerSearch,
492
+ .searchIcon {
493
+ width: 100%;
494
+ max-width: none;
495
+ }
496
+
497
+ .toolbarActions {
498
+ justify-content: space-between;
499
+ }
500
+
501
+ .tabGroup {
502
+ display: flex;
503
+ flex-direction: column;
504
+ width: 100%;
505
+ }
506
+
507
+ .tabList {
508
+ flex: 0 0 auto;
509
+ flex-direction: row;
510
+ overflow-x: auto;
511
+ overflow-y: hidden;
512
+ border-right: 0;
513
+ border-bottom: 1px solid color-mix(in srgb, var(--border) 86%, transparent);
514
+ }
515
+
516
+ .tabPanel {
517
+ width: 100%;
518
+ min-width: 0;
519
+ overflow-x: auto;
520
+ padding: 0.75rem 0.65rem 1rem;
521
+ }
522
+
523
+ .settingRow {
524
+ grid-template-columns: minmax(0, 1fr);
525
+ }
526
+
527
+ .customControlStack,
528
+ .customControlStack :global(.solid-notebook),
529
+ .customControlStack :global(.solid-notebook-content) {
530
+ width: 100%;
531
+ min-width: 0;
532
+ max-width: 100%;
533
+ }
534
+
535
+ .customControlStack :global(.solid-notebook-tablist) {
536
+ max-width: 100%;
537
+ overflow-x: auto;
538
+ }
539
+
540
+ .customControlStack :global(.solid-ai-model-config-card) {
541
+ width: 100% !important;
542
+ }
543
+ }
544
+
462
545
  .pageHeader :global(.form-wrapper-title) {
463
546
  color: var(--foreground) !important;
464
547
  }
@@ -491,6 +574,12 @@
491
574
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary) 24%, transparent);
492
575
  }
493
576
 
577
+ .workspace :global(.solid-notebook-tablist.solid-tabs-list) {
578
+ width: 100% !important;
579
+ max-width: 100%;
580
+ min-width: 0;
581
+ }
582
+
494
583
  :global(html.dark) .pageHeader,
495
584
  :global([data-theme="dark"]) .pageHeader {
496
585
  background:
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { env } from "../../adapters/env";
3
3
  import { useContext } from "react";
4
- import SolidLogoDark from '../../resources/images/SolidXLogo-dark.svg';
5
- import SolidLogoLight from '../../resources/images/SolidXLogo-light.svg';
4
+ import SolidLogoDark from '../../resources/images/solidx-logo/solidx-logo-dark.png';
5
+ import SolidLogoLight from '../../resources/images/solidx-logo/solidx-logo-light.png';
6
6
  import { ChatIcon } from "../layout/SolidAiStudioLayout";
7
7
  import { LayoutContext } from "../layout/context/layoutcontext";
8
8
  export var SolidAdmin = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidAdmin.js","sourceRoot":"","sources":["../../../src/components/common/SolidAdmin.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,aAAa,MAAM,4CAA4C,CAAA;AACtE,OAAO,cAAc,MAAM,6CAA6C,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,MAAM,CAAC,IAAM,UAAU,GAAG;IACxB,IAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAChD,IAAM,WAAW,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC1D,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,IAAM,SAAS,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC5C,IAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,IAAM,SAAS,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,MAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvF,IAAM,gBAAgB,GAAG;QACvB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,0BAAQ,ukFAyGP,GAAS,EAEV,cAAK,SAAS,EAAC,eAAe,YAE5B,eAAK,SAAS,EAAC,gCAAgC,aAE7C,eAAK,SAAS,EAAC,qBAAqB,aAClC,cACE,GAAG,EAAC,YAAY,EAChB,GAAG,EAAE,SAAS,EACd,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GACvB,EAEF,cAAK,SAAS,EAAC,yBAAyB,8BAAoB,EAE5D,aAAI,SAAS,EAAC,eAAe,kCAExB,IACD,EAEN,eAAK,SAAS,EAAC,sBAAsB,aACnC,YAAG,SAAS,EAAC,cAAc,yJAIvB,EAEJ,cAAK,SAAS,EAAC,cAAc,YAC1B,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CACxE,eAAkB,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAC5G,KAAK,IADG,KAAK,CAET,CACR,EAJyE,CAIzE,CAAC,GACE,EAEN,eAAK,SAAS,EAAC,WAAW,aACxB,0EAAsD,EACtD,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,aAAa,EACvB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,CAAC,WAAW,gBACX,qBAAqB,aAEhC,KAAC,QAAQ,KAAG,EACZ,0CAAyB,IAClB,EACT,YAAG,SAAS,EAAC,MAAM,0DAEf,IACA,IACF,IAEF,GAEF,IACL,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { env } from \"../../adapters/env\";\nimport { useContext } from \"react\";\nimport SolidLogoDark from '../../resources/images/SolidXLogo-dark.svg'\nimport SolidLogoLight from '../../resources/images/SolidXLogo-light.svg'\nimport { ChatIcon } from \"../layout/SolidAiStudioLayout\";\nimport { LayoutContext } from \"../layout/context/layoutcontext\";\n\nexport const SolidAdmin = () => {\n const layoutContext = useContext(LayoutContext);\n const redirectUrl = env(\"NEXT_PUBLIC_LOGIN_REDIRECT_URL\");\n const hasRedirect = Boolean(redirectUrl);\n const aiChatUrl = env(\"VITE_SOLIDX_AI_URL\");\n const canOpenChat = Boolean(aiChatUrl);\n const solidLogo = layoutContext?.themeMode === \"dark\" ? SolidLogoLight : SolidLogoDark;\n\n const handleChatLaunch = () => {\n if (!aiChatUrl) return;\n window.open(aiChatUrl, \"_blank\");\n };\n\n return (\n <>\n <style>{`\n .solid-welcome {\n min-height: 100vh;\n background: var(--background);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n }\n\n .welcome-card {\n text-align: center;\n max-width: 480px;\n width: 100%;\n background-color: var(--card);\n border: 1px solid var(--border);\n border-radius: 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .welcome-card-header {\n padding: 32px 32px 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n }\n\n .welcome-card-content {\n padding: 0 32px 16px;\n }\n\n .welcome-title {\n font-size: 24px;\n font-weight: 500;\n color: var(--foreground);\n line-height: 1.2;\n margin: 0;\n letter-spacing: 0em;\n }\n\n .welcome-desc {\n font-size: 14px;\n color: var(--muted-foreground);\n line-height: 1.6;\n margin-bottom: 12px;\n }\n\n .features-row {\n display: flex;\n justify-content: center;\n gap: 0px;\n flex-wrap: wrap;\n margin-bottom: 12px;\n }\n\n .chat-hint {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--border);\n }\n\n .chat-hint p {\n margin: 0;\n font-size: 13px;\n color: var(--muted-foreground);\n }\n\n .hint {\n font-size: 12px;\n color: var(--muted-foreground);\n opacity: 0.8;\n }\n\n .chat-button {\n border: none;\n background: #111827;\n color: #fff;\n border-radius: 999px;\n padding: 0.5rem 1.25rem;\n font-size: 14px;\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n }\n\n .chat-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .chat-button:not(:disabled):hover {\n transform: translateY(-1px);\n opacity: 0.9;\n }\n `}</style>\n\n <div className=\"solid-welcome\">\n\n <div className=\"solid-studio-card welcome-card\">\n\n <div className=\"welcome-card-header\">\n <img\n alt=\"solid logo\"\n src={solidLogo}\n className=\"mb-2 w-4rem flex-shrink-0\"\n style={{ opacity: 0.9 }}\n />\n\n <div className=\"solid-studio-home-badge\">Admin Console</div>\n\n <h1 className=\"welcome-title\">\n Welcome to SolidX\n </h1>\n </div>\n\n <div className=\"welcome-card-content\">\n <p className=\"welcome-desc\">\n Manage modules, models, views, and permissions\n from one place. Use the navigation on the left to\n explore and configure your application.\n </p>\n\n <div className=\"features-row\">\n {[\"Modules\", \"Models\", \"Views\", \"Permissions\", \"Settings\"].map((label) => (\n <span key={label} className=\"solid-studio-home-badge\" style={{ textTransform: 'none', letterSpacing: 'normal' }}>\n {label}\n </span>\n ))}\n </div>\n\n <div className=\"chat-hint\">\n <p>Need help scaffolding? Ask the SolidX AI Agent.</p>\n <button\n type=\"button\"\n className=\"chat-button\"\n onClick={handleChatLaunch}\n disabled={!canOpenChat}\n aria-label=\"Open SolidX AI chat\"\n >\n <ChatIcon />\n <span>Open AI Chat</span>\n </button>\n <p className=\"hint\">\n Or select a section from the left sidebar\n </p>\n </div>\n </div>\n\n </div>\n\n </div>\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidAdmin.js","sourceRoot":"","sources":["../../../src/components/common/SolidAdmin.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,aAAa,MAAM,yDAAyD,CAAA;AACnF,OAAO,cAAc,MAAM,0DAA0D,CAAA;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,MAAM,CAAC,IAAM,UAAU,GAAG;IACxB,IAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAChD,IAAM,WAAW,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC1D,IAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,IAAM,SAAS,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC5C,IAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,IAAM,SAAS,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,MAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvF,IAAM,gBAAgB,GAAG;QACvB,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,0BAAQ,ukFAyGP,GAAS,EAEV,cAAK,SAAS,EAAC,eAAe,YAE5B,eAAK,SAAS,EAAC,gCAAgC,aAE7C,eAAK,SAAS,EAAC,qBAAqB,aAClC,cACE,GAAG,EAAC,YAAY,EAChB,GAAG,EAAE,SAAS,EACd,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GACvB,EAEF,cAAK,SAAS,EAAC,yBAAyB,8BAAoB,EAE5D,aAAI,SAAS,EAAC,eAAe,kCAExB,IACD,EAEN,eAAK,SAAS,EAAC,sBAAsB,aACnC,YAAG,SAAS,EAAC,cAAc,yJAIvB,EAEJ,cAAK,SAAS,EAAC,cAAc,YAC1B,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CACxE,eAAkB,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,YAC5G,KAAK,IADG,KAAK,CAET,CACR,EAJyE,CAIzE,CAAC,GACE,EAEN,eAAK,SAAS,EAAC,WAAW,aACxB,0EAAsD,EACtD,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,aAAa,EACvB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,CAAC,WAAW,gBACX,qBAAqB,aAEhC,KAAC,QAAQ,KAAG,EACZ,0CAAyB,IAClB,EACT,YAAG,SAAS,EAAC,MAAM,0DAEf,IACA,IACF,IAEF,GAEF,IACL,CACJ,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { env } from \"../../adapters/env\";\nimport { useContext } from \"react\";\nimport SolidLogoDark from '../../resources/images/solidx-logo/solidx-logo-dark.png'\nimport SolidLogoLight from '../../resources/images/solidx-logo/solidx-logo-light.png'\nimport { ChatIcon } from \"../layout/SolidAiStudioLayout\";\nimport { LayoutContext } from \"../layout/context/layoutcontext\";\n\nexport const SolidAdmin = () => {\n const layoutContext = useContext(LayoutContext);\n const redirectUrl = env(\"NEXT_PUBLIC_LOGIN_REDIRECT_URL\");\n const hasRedirect = Boolean(redirectUrl);\n const aiChatUrl = env(\"VITE_SOLIDX_AI_URL\");\n const canOpenChat = Boolean(aiChatUrl);\n const solidLogo = layoutContext?.themeMode === \"dark\" ? SolidLogoLight : SolidLogoDark;\n\n const handleChatLaunch = () => {\n if (!aiChatUrl) return;\n window.open(aiChatUrl, \"_blank\");\n };\n\n return (\n <>\n <style>{`\n .solid-welcome {\n min-height: 100vh;\n background: var(--background);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n }\n\n .welcome-card {\n text-align: center;\n max-width: 480px;\n width: 100%;\n background-color: var(--card);\n border: 1px solid var(--border);\n border-radius: 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .welcome-card-header {\n padding: 32px 32px 16px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n }\n\n .welcome-card-content {\n padding: 0 32px 16px;\n }\n\n .welcome-title {\n font-size: 24px;\n font-weight: 500;\n color: var(--foreground);\n line-height: 1.2;\n margin: 0;\n letter-spacing: 0em;\n }\n\n .welcome-desc {\n font-size: 14px;\n color: var(--muted-foreground);\n line-height: 1.6;\n margin-bottom: 12px;\n }\n\n .features-row {\n display: flex;\n justify-content: center;\n gap: 0px;\n flex-wrap: wrap;\n margin-bottom: 12px;\n }\n\n .chat-hint {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--border);\n }\n\n .chat-hint p {\n margin: 0;\n font-size: 13px;\n color: var(--muted-foreground);\n }\n\n .hint {\n font-size: 12px;\n color: var(--muted-foreground);\n opacity: 0.8;\n }\n\n .chat-button {\n border: none;\n background: #111827;\n color: #fff;\n border-radius: 999px;\n padding: 0.5rem 1.25rem;\n font-size: 14px;\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n transition: transform 0.15s ease, box-shadow 0.15s ease;\n }\n\n .chat-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n }\n\n .chat-button:not(:disabled):hover {\n transform: translateY(-1px);\n opacity: 0.9;\n }\n `}</style>\n\n <div className=\"solid-welcome\">\n\n <div className=\"solid-studio-card welcome-card\">\n\n <div className=\"welcome-card-header\">\n <img\n alt=\"solid logo\"\n src={solidLogo}\n className=\"mb-2 w-4rem flex-shrink-0\"\n style={{ opacity: 0.9 }}\n />\n\n <div className=\"solid-studio-home-badge\">Admin Console</div>\n\n <h1 className=\"welcome-title\">\n Welcome to SolidX\n </h1>\n </div>\n\n <div className=\"welcome-card-content\">\n <p className=\"welcome-desc\">\n Manage modules, models, views, and permissions\n from one place. Use the navigation on the left to\n explore and configure your application.\n </p>\n\n <div className=\"features-row\">\n {[\"Modules\", \"Models\", \"Views\", \"Permissions\", \"Settings\"].map((label) => (\n <span key={label} className=\"solid-studio-home-badge\" style={{ textTransform: 'none', letterSpacing: 'normal' }}>\n {label}\n </span>\n ))}\n </div>\n\n <div className=\"chat-hint\">\n <p>Need help scaffolding? Ask the SolidX AI Agent.</p>\n <button\n type=\"button\"\n className=\"chat-button\"\n onClick={handleChatLaunch}\n disabled={!canOpenChat}\n aria-label=\"Open SolidX AI chat\"\n >\n <ChatIcon />\n <span>Open AI Chat</span>\n </button>\n <p className=\"hint\">\n Or select a section from the left sidebar\n </p>\n </div>\n </div>\n\n </div>\n\n </div>\n </>\n );\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { env } from "../../adapters/env";
2
2
  import { useContext } from "react";
3
- import SolidLogoDark from '../../resources/images/SolidXLogo-dark.svg'
4
- import SolidLogoLight from '../../resources/images/SolidXLogo-light.svg'
3
+ import SolidLogoDark from '../../resources/images/solidx-logo/solidx-logo-dark.png'
4
+ import SolidLogoLight from '../../resources/images/solidx-logo/solidx-logo-light.png'
5
5
  import { ChatIcon } from "../layout/SolidAiStudioLayout";
6
6
  import { LayoutContext } from "../layout/context/layoutcontext";
7
7
 
@@ -143,7 +143,7 @@ export var ModelConfigTab = function (_a) {
143
143
  var label = BUILT_IN_TYPES.includes(key) ? typeLabel : "".concat(key, " (").concat(typeLabel, ")");
144
144
  return { label: label, value: key };
145
145
  });
146
- return (_jsxs("div", { className: "flex flex-col gap-6", children: [_jsxs("div", { style: __assign(__assign({}, cardStyle), { width: "50%" }), children: [_jsx("p", { className: "solid-settings-subheading", children: "Model Config" }), _jsxs("div", { className: "flex flex-col gap-4 mt-4", children: [_jsxs("div", { children: [_jsx("label", { className: "form-field-label", children: "Provider" }), _jsx(SolidSelect, { className: "w-full", value: modelEntry.providerId, options: providerOptions, native: false, onChange: function (e) { return onModelEntryChange(__assign(__assign({}, modelEntry), { providerId: e.value })); }, placeholder: "Select Provider" })] }), _jsxs("div", { children: [_jsx("label", { className: "form-field-label", children: "Model" }), _jsx(SolidInput, { placeholder: "e.g. gpt-4o-mini", value: modelEntry.model || "", onChange: function (e) { return onModelEntryChange(__assign(__assign({}, modelEntry), { model: e.target.value })); }, className: "w-full" })] })] })] }), _jsxs("div", { style: __assign(__assign({}, cardStyle), { width: "50%" }), children: [_jsx("p", { className: "solid-settings-subheading", children: "Behavior" }), _jsxs("div", { className: "flex flex-col gap-4 mt-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SolidSwitch, { checked: modelEntry.behavior.streaming, onChange: function (val) {
146
+ return (_jsxs("div", { className: "flex flex-col gap-6", children: [_jsxs("div", { className: "solid-ai-model-config-card", style: __assign(__assign({}, cardStyle), { width: "50%" }), children: [_jsx("p", { className: "solid-settings-subheading", children: "Model Config" }), _jsxs("div", { className: "flex flex-col gap-4 mt-4", children: [_jsxs("div", { children: [_jsx("label", { className: "form-field-label", children: "Provider" }), _jsx(SolidSelect, { className: "w-full", value: modelEntry.providerId, options: providerOptions, native: false, onChange: function (e) { return onModelEntryChange(__assign(__assign({}, modelEntry), { providerId: e.value })); }, placeholder: "Select Provider" })] }), _jsxs("div", { children: [_jsx("label", { className: "form-field-label", children: "Model" }), _jsx(SolidInput, { placeholder: "e.g. gpt-4o-mini", value: modelEntry.model || "", onChange: function (e) { return onModelEntryChange(__assign(__assign({}, modelEntry), { model: e.target.value })); }, className: "w-full" })] })] })] }), _jsxs("div", { className: "solid-ai-model-config-card", style: __assign(__assign({}, cardStyle), { width: "50%" }), children: [_jsx("p", { className: "solid-settings-subheading", children: "Behavior" }), _jsxs("div", { className: "flex flex-col gap-4 mt-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(SolidSwitch, { checked: modelEntry.behavior.streaming, onChange: function (val) {
147
147
  return onModelEntryChange(__assign(__assign({}, modelEntry), { behavior: __assign(__assign({}, modelEntry.behavior), { streaming: val }) }));
148
148
  } }), _jsx("label", { className: "form-field-label", style: { marginBottom: 0 }, children: "Streaming" })] }), _jsxs("div", { children: [_jsx("label", { className: "form-field-label", children: "Custom Params (JSON)" }), _jsx(SolidTextarea, { value: modelEntry.behavior.custom, onChange: function (e) {
149
149
  return onModelEntryChange(__assign(__assign({}, modelEntry), { behavior: __assign(__assign({}, modelEntry.behavior), { custom: e.target.value }) }));