@solidxai/core-ui 0.1.12-beta.7 → 0.1.12-beta.8
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.
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +19 -17
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +59 -34
- package/dist/components/common/BackendReconnectIndicator.d.ts +6 -0
- package/dist/components/common/BackendReconnectIndicator.d.ts.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.js +25 -0
- package/dist/components/common/BackendReconnectIndicator.js.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.tsx +45 -0
- package/dist/components/common/SettingsComponent.d.ts.map +1 -1
- package/dist/components/common/SettingsComponent.js +7 -3
- package/dist/components/common/SettingsComponent.js.map +1 -1
- package/dist/components/common/SettingsComponent.module.css +144 -12
- package/dist/components/common/SettingsComponent.tsx +22 -3
- package/dist/components/common/SolidAdmin.d.ts.map +1 -1
- package/dist/components/common/SolidAdmin.js +7 -2
- package/dist/components/common/SolidAdmin.js.map +1 -1
- package/dist/components/common/SolidAdmin.tsx +7 -2
- package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
- package/dist/components/common/SolidBreadcrumb.js +1 -6
- package/dist/components/common/SolidBreadcrumb.js.map +1 -1
- package/dist/components/common/SolidBreadcrumb.tsx +1 -8
- package/dist/components/common/SolidMaterialSymbol.d.ts +10 -0
- package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.js +69 -0
- package/dist/components/common/SolidMaterialSymbol.js.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.tsx +96 -0
- package/dist/components/common/SolidToastProvider.d.ts.map +1 -1
- package/dist/components/common/SolidToastProvider.js +14 -1
- package/dist/components/common/SolidToastProvider.js.map +1 -1
- package/dist/components/common/SolidToastProvider.tsx +19 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +3 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +3 -2
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +14 -18
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +43 -16
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +24 -2
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +1 -1
- package/dist/components/core/form/SolidFormLayouts.js +1 -1
- package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.tsx +2 -2
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +120 -56
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +63 -50
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +115 -37
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +36 -35
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +67 -4
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +89 -7
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts +3 -0
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js +30 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.ts +45 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +3 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +22 -23
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +13 -7
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +16 -11
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +32 -18
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js +3 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +11 -5
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +3 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +3 -2
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +11 -5
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +15 -8
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +1 -0
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +1 -0
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +7 -2
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.tsx +7 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +5 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +5 -2
- package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
- package/dist/components/core/locales/SolidLocale.js +1 -1
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +1 -0
- package/dist/components/core/model/CreateModel.css +26 -0
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +21 -3
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +45 -4
- package/dist/components/core/model/FieldMetaDataForm.css +82 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +246 -235
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +46 -34
- package/dist/components/core/model/FieldSelector.js +1 -1
- package/dist/components/core/model/FieldSelector.js.map +1 -1
- package/dist/components/core/model/FieldSelector.tsx +1 -1
- package/dist/components/core/model/ModelMetaData.js +1 -1
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +1 -1
- package/dist/components/core/module/CreateModule.css +55 -2
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +2 -2
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +3 -2
- package/dist/components/core/module/ModuleMetadataExplorer.css +27 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -0
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +6 -1
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +7 -1
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +10 -9
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +2 -0
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +2 -1
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +12 -5
- package/dist/components/layout/SolidMenuItemIcon.d.ts +9 -0
- package/dist/components/layout/SolidMenuItemIcon.d.ts.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.js +20 -0
- package/dist/components/layout/SolidMenuItemIcon.js.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.tsx +45 -0
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +6 -7
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +4 -12
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +30 -2
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -1
- package/dist/helpers/backendHealthMonitor.d.ts +39 -0
- package/dist/helpers/backendHealthMonitor.d.ts.map +1 -0
- package/dist/helpers/backendHealthMonitor.js +255 -0
- package/dist/helpers/backendHealthMonitor.js.map +1 -0
- package/dist/helpers/backendHealthMonitor.ts +177 -0
- package/dist/helpers/helpers.d.ts +1 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +9 -0
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +11 -1
- package/dist/helpers/menuItemIcons.d.ts +34 -0
- package/dist/helpers/menuItemIcons.d.ts.map +1 -0
- package/dist/helpers/menuItemIcons.js +144 -0
- package/dist/helpers/menuItemIcons.js.map +1 -0
- package/dist/helpers/menuItemIcons.ts +191 -0
- package/dist/helpers/relationDisplay.d.ts +3 -0
- package/dist/helpers/relationDisplay.d.ts.map +1 -0
- package/dist/helpers/relationDisplay.js +92 -0
- package/dist/helpers/relationDisplay.js.map +1 -0
- package/dist/helpers/relationDisplay.ts +101 -0
- package/dist/helpers/settingsPayload.d.ts +1 -0
- package/dist/helpers/settingsPayload.d.ts.map +1 -1
- package/dist/helpers/settingsPayload.js.map +1 -1
- package/dist/helpers/settingsPayload.ts +1 -0
- package/dist/helpers/solidIcons.d.ts +2 -0
- package/dist/helpers/solidIcons.d.ts.map +1 -1
- package/dist/helpers/solidIcons.js +8 -0
- package/dist/helpers/solidIcons.js.map +1 -1
- package/dist/helpers/solidIcons.tsx +10 -1
- package/dist/helpers/waitForBackendAvailability.d.ts +1 -0
- package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -1
- package/dist/helpers/waitForBackendAvailability.js +35 -22
- package/dist/helpers/waitForBackendAvailability.js.map +1 -1
- package/dist/helpers/waitForBackendAvailability.ts +18 -12
- package/dist/http/solidHttp.d.ts.map +1 -1
- package/dist/http/solidHttp.js +10 -4
- package/dist/http/solidHttp.js.map +1 -1
- package/dist/http/solidHttp.ts +9 -4
- package/dist/redux/api/datasourceIntrospectionApi.d.ts +4 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.ts +4 -0
- package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
- package/dist/redux/api/fetchBaseQuery.js +9 -3
- package/dist/redux/api/fetchBaseQuery.js.map +1 -1
- package/dist/redux/api/fetchBaseQuery.tsx +9 -3
- package/dist/redux/store/StoreProvider.d.ts.map +1 -1
- package/dist/redux/store/StoreProvider.js +4 -3
- package/dist/redux/store/StoreProvider.js.map +1 -1
- package/dist/redux/store/StoreProvider.tsx +4 -3
- package/dist/resources/globals.css +341 -49
- package/dist/resources/solid-custom.css +410 -12
- package/dist/resources/solid-responsive.css +27 -16
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/AppEventListener.d.ts.map +1 -1
- package/dist/routes/AppEventListener.js +23 -0
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +29 -0
- package/dist/routes/pages/admin/core/DashboardPage.module.css +12 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +306 -3
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +745 -393
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1074 -420
- package/dist/routes/pages/admin/core/DatasourcesPage.css +15 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.js +7 -188
- package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.tsx +3 -393
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,UAAU;cAA8B,MAAM,SAAS;6CA+QnE,CAAA"}
|
|
@@ -50,15 +50,16 @@ import { normalizeAssetUrl, toCssBackgroundImage } from "../../helpers/assetUrl"
|
|
|
50
50
|
import { toLegacySettingsShape } from "../../helpers/settingsPayload";
|
|
51
51
|
import { SolidToastProvider } from "../common/SolidToastProvider";
|
|
52
52
|
import { SolidSpinner } from "../shad-cn-ui";
|
|
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, _v;
|
|
56
57
|
var children = _a.children;
|
|
57
58
|
var layoutContext = useContext(LayoutContext);
|
|
58
|
-
var
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
var
|
|
59
|
+
var _w = useState(null), solidSettingsData = _w[0], setSolidSettingsData = _w[1];
|
|
60
|
+
var _x = useState(true), isLoadingAuthSettings = _x[0], setIsLoadingAuthSettings = _x[1];
|
|
61
|
+
var _y = useState(null), allowRegistration = _y[0], setAllowRegistration = _y[1];
|
|
62
|
+
var _z = useState(false), isRestricted = _z[0], setIsRestricted = _z[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 () {
|
|
@@ -143,6 +144,10 @@ export var AuthLayout = function (_a) {
|
|
|
143
144
|
var appSubtitle = ((_d = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _d === void 0 ? void 0 : _d.appSubtitle) || "";
|
|
144
145
|
var appDescription = ((_e = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _e === void 0 ? void 0 : _e.appDescription) || "";
|
|
145
146
|
var showAuthContent = ((_f = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _f === void 0 ? void 0 : _f.showAuthContent) === true;
|
|
147
|
+
var showLegalLinks = ((_g = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _g === void 0 ? void 0 : _g.showLegalLinks) === true;
|
|
148
|
+
var appTnc = ((_h = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _h === void 0 ? void 0 : _h.appTnc) || "";
|
|
149
|
+
var appPrivacyPolicy = ((_j = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _j === void 0 ? void 0 : _j.appPrivacyPolicy) || "";
|
|
150
|
+
var copyright = ((_k = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _k === void 0 ? void 0 : _k.copyright) || "";
|
|
146
151
|
var renderBrand = function (align) {
|
|
147
152
|
if (align === void 0) { align = "start"; }
|
|
148
153
|
if (!authLogoSrc && !appTitle)
|
|
@@ -150,19 +155,21 @@ export var AuthLayout = function (_a) {
|
|
|
150
155
|
var brandLabel = appTitle || "Application logo";
|
|
151
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] }));
|
|
152
157
|
};
|
|
153
|
-
var authLayout = ((
|
|
158
|
+
var authLayout = ((_l = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _l === void 0 ? void 0 : _l.authPagesLayout) || "center";
|
|
154
159
|
var isCenter = authLayout === "center";
|
|
155
160
|
var isLeft = authLayout === "left";
|
|
156
161
|
var isRight = authLayout === "right";
|
|
162
|
+
var shouldRenderFooter = showLegalLinks || Boolean(copyright);
|
|
157
163
|
var authSettingsContextValue = useMemo(function () { return ({
|
|
158
164
|
solidSettingsData: solidSettingsData,
|
|
159
165
|
isLoadingAuthSettings: isLoadingAuthSettings,
|
|
160
166
|
reloadAuthSettings: loadAuthSettings,
|
|
161
167
|
}); }, [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]);
|
|
162
|
-
var
|
|
163
|
-
var
|
|
164
|
-
|
|
165
|
-
_jsx("div", { className: "
|
|
168
|
+
var legalFooter = shouldRenderFooter ? (_jsx("div", { className: "solid-auth-legal-footer hidden md:flex", children: _jsxs("div", { className: "solid-auth-legal-footer-row", children: [showLegalLinks ? (_jsxs("p", { className: "solid-auth-legal-copy", children: [_jsx("span", { children: "Made with" }), _jsx("svg", { "aria-hidden": "true", className: "solid-auth-legal-heart", width: "12", height: "12", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { 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", fill: "#ff0000" }) }), _jsx("span", { children: "in Mumbai" })] })) : null, (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 })] }) }) })] }));
|
|
166
173
|
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: {
|
|
167
174
|
position: "absolute",
|
|
168
175
|
inset: 0,
|
|
@@ -171,12 +178,7 @@ export var AuthLayout = function (_a) {
|
|
|
171
178
|
backgroundPosition: "center",
|
|
172
179
|
backgroundRepeat: "no-repeat",
|
|
173
180
|
backgroundSize: "cover",
|
|
174
|
-
} })) : null, _jsx(SolidToastProvider, {}), !isCenter && (_jsxs("div", { className: "solid-auth-split", children: [isLeft && formPane, imagePane, isRight && formPane] })), isCenter &&
|
|
175
|
-
|
|
176
|
-
_jsx("div", { className: ((_u = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _u === void 0 ? void 0 : _u.authPagesLayout) !== 'center' ? 'w-1/2 px-2 pt-2 flex justify-center' : '', children: ((_v = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _v === void 0 ? void 0 : _v.showLegalLinks) === true &&
|
|
177
|
-
_jsxs("p", { className: "solid-auth-input-label text-sm m-0 ".concat((_w = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _w === void 0 ? void 0 : _w.authPagesLayout), children: ["Made with ", _jsxs("svg", { className: "mx-1", width: "12px", height: "12px", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("g", { id: "SVGRepo_bgCarrier", "stroke-width": "0" }), _jsx("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }), _jsxs("g", { id: "SVGRepo_iconCarrier", children: [" ", _jsx("path", { 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", fill: "#ff0000" }), " "] })] }), " in Mumbai"] }) }), _jsxs("div", { className: ((_x = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _x === void 0 ? void 0 : _x.authPagesLayout) !== 'center' ? 'col-6 flex justify-center' : '', children: [((_y = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _y === void 0 ? void 0 : _y.showLegalLinks) === true && _jsxs("div", { className: "flex flex-col sm:flex-row items-center gap-1 sm:gap-5 solid-auth-subtitle mr-3 ".concat(((_z = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _z === void 0 ? void 0 : _z.authPagesLayout) === 'left' ? 'left' : ''), children: [((_0 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _0 === void 0 ? void 0 : _0.appTnc) !== "" && _jsxs("p", { className: "m-0 ", children: [" ", _jsx(Link, { className: "text-sm no-underline font-normal", href: (_1 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _1 === void 0 ? void 0 : _1.appTnc, children: "Terms of Service" })] }), ((_2 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _2 === void 0 ? void 0 : _2.appPrivacyPolicy) !== "" && _jsxs("p", { className: "m-0 ", children: [" ", _jsx(Link, { className: "text-sm no-underline font-normal", href: (_3 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _3 === void 0 ? void 0 : _3.appPrivacyPolicy, children: "Privacy Policy." })] })] }), ((_4 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _4 === void 0 ? void 0 : _4.copyright) !== "" &&
|
|
178
|
-
_jsx("div", { className: "mt-1", children: _jsx("p", { className: "m-0 text-sm font-normal", children: (_5 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _5 === void 0 ? void 0 : _5.copyright }) })] }), ((_6 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _6 === void 0 ? void 0 : _6.authPagesLayout) === 'left' &&
|
|
179
|
-
_jsx("div", { className: ((_7 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _7 === void 0 ? void 0 : _7.authPagesLayout) !== 'center' ? 'w-1/2 lg:w-[41.666667%] xl:w-1/2 px-2 pt-2 flex justify-center' : '', children: ((_8 = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _8 === void 0 ? void 0 : _8.showLegalLinks) === true &&
|
|
180
|
-
_jsxs("p", { className: "solid-auth-input-label text-sm m-0 right", children: ["Made with ", _jsxs("svg", { className: "mx-1", width: "12px", height: "12px", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("g", { id: "SVGRepo_bgCarrier", "stroke-width": "0" }), _jsx("g", { id: "SVGRepo_tracerCarrier", strokeLinecap: "round", strokeLinejoin: "round" }), _jsxs("g", { id: "SVGRepo_iconCarrier", children: [" ", _jsx("path", { 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", fill: "#ff0000" }), " "] })] }), " in Mumbai"] }) })] }), _jsxs(SolidDialog, { visible: isRestricted, onHide: handleRegistration, header: "Access Restricted", headerClassName: "py-2", contentClassName: "px-0 pb-0", className: "solid-confirm-dialog", footer: _jsx("div", { className: "flex items-center justify-start", children: _jsx(SolidButton, { size: "sm", onClick: handleRegistration, children: "Close" }) }), children: [_jsx(SolidDivider, { className: "m-0" }), _jsx("div", { className: "p-6", children: _jsx("p", { children: "Sign-up is not available. Please contact the admin." }) })] })] }) }));
|
|
181
|
+
} })) : null, _jsx(SolidToastProvider, {}), _jsx(BackendReconnectIndicator, { variant: "floating" }), !isCenter && (_jsxs("div", { className: "solid-auth-split", children: [isLeft && formPane, imagePane, isRight && formPane] })), isCenter && _jsxs("div", { className: "solid-center-layout", style: { position: "relative", zIndex: 1 }, children: [_jsxs("div", { className: "solid-auth-center-stack", children: [renderBrand("center"), showAuthContent &&
|
|
182
|
+
_jsxs("div", { className: "solid-auth-center-details", children: [appSubtitle ? _jsx("p", { className: "solid-auth-center-subtitle", children: appSubtitle }) : null, appDescription ? _jsx("p", { className: "solid-auth-center-description", children: appDescription }) : null] }), authChildren] }), legalFooter] }), _jsxs(SolidDialog, { visible: isRestricted, onHide: handleRegistration, header: "Access Restricted", headerClassName: "py-2", contentClassName: "px-0 pb-0", className: "solid-confirm-dialog", footer: _jsx("div", { className: "flex items-center justify-start", children: _jsx(SolidButton, { size: "sm", onClick: handleRegistration, children: "Close" }) }), children: [_jsx(SolidDivider, { className: "m-0" }), _jsx("div", { className: "p-6", children: _jsx("p", { children: "Sign-up is not available. Please contact the admin." }) })] })] }) }));
|
|
181
183
|
};
|
|
182
184
|
//# sourceMappingURL=AuthLayout.js.map
|
|
@@ -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 { SolidSpinner } from \"../shad-cn-ui\";\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 const authLoadingContent = (\n <div className=\"flex items-center justify-center min-h-[240px]\" aria-busy=\"true\" aria-live=\"polite\">\n <SolidSpinner size={32} />\n </div>\n );\n const authChildren = isLoadingAuthSettings\n ? authLoadingContent\n : 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\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 authSettingsContextValue = useMemo(\n () => ({\n solidSettingsData,\n isLoadingAuthSettings,\n reloadAuthSettings: loadAuthSettings,\n }),\n [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]\n );\n\n const formPane = (\n <div className=\"solid-auth-form-pane solid-login-dark-bg\">\n <div className=\"solid-auth-form-pane-inner\">\n {renderBrand(\"start\")}\n {authChildren}\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 {!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 </div>}\n {/* {solidSettingsData?.data?.showLegalLinks === true && */}\n <div className={`absolute hidden md:flex ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'solid-auth-footer flex flex-col sm:flex-row items-center justify-between' : 'solid-auth-footer-2 grid'}`}>\n {solidSettingsData?.data?.authPagesLayout !== 'left' &&\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'w-1/2 px-2 pt-2 flex justify-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true &&\n <p className={`solid-auth-input-label text-sm m-0 ${solidSettingsData?.data?.authPagesLayout}`}>Made with <svg className=\"mx-1\" width=\"12px\" height=\"12px\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" strokeLinecap=\"round\" strokeLinejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <path 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\" fill=\"#ff0000\"></path> </g></svg> in Mumbai</p>\n }\n </div>\n }\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 flex justify-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true && <div className={`flex flex-col sm:flex-row items-center gap-1 sm:gap-5 solid-auth-subtitle mr-3 ${solidSettingsData?.data?.authPagesLayout === 'left' ? 'left' : ''}`}>\n {solidSettingsData?.data?.appTnc !== \"\" && <p className=\"m-0 \"> <Link className=\"text-sm no-underline font-normal\" href={solidSettingsData?.data?.appTnc}>Terms of Service</Link></p>}\n {solidSettingsData?.data?.appPrivacyPolicy !== \"\" && <p className=\"m-0 \"> <Link className=\"text-sm no-underline font-normal\" href={solidSettingsData?.data?.appPrivacyPolicy}>Privacy Policy.</Link></p>}\n </div>\n }\n {solidSettingsData?.data?.copyright !== \"\" &&\n <div className=\"mt-1\">\n <p className=\"m-0 text-sm font-normal\">{solidSettingsData?.data?.copyright}</p>\n </div>\n }\n </div>\n {\n solidSettingsData?.data?.authPagesLayout === 'left' &&\n <div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'w-1/2 lg:w-[41.666667%] xl:w-1/2 px-2 pt-2 flex justify-center' : ''}>\n {solidSettingsData?.data?.showLegalLinks === true &&\n <p className={`solid-auth-input-label text-sm m-0 right`}>Made with <svg className=\"mx-1\" width=\"12px\" height=\"12px\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g id=\"SVGRepo_bgCarrier\" stroke-width=\"0\"></g><g id=\"SVGRepo_tracerCarrier\" strokeLinecap=\"round\" strokeLinejoin=\"round\"></g><g id=\"SVGRepo_iconCarrier\"> <path 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\" fill=\"#ff0000\"></path> </g></svg> in Mumbai</p>\n }\n </div>\n }\n </div >\n\n {/* } */}\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 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 { SolidSpinner } from \"../shad-cn-ui\";\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 const authLoadingContent = (\n <div className=\"flex items-center justify-center min-h-[240px]\" aria-busy=\"true\" aria-live=\"polite\">\n <SolidSpinner size={32} />\n </div>\n );\n const authChildren = isLoadingAuthSettings\n ? authLoadingContent\n : 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"]}
|
|
@@ -13,6 +13,7 @@ import { normalizeAssetUrl, toCssBackgroundImage } from "../../helpers/assetUrl"
|
|
|
13
13
|
import { toLegacySettingsShape } from "../../helpers/settingsPayload";
|
|
14
14
|
import { SolidToastProvider } from "../common/SolidToastProvider";
|
|
15
15
|
import { SolidSpinner } from "../shad-cn-ui";
|
|
16
|
+
import { BackendReconnectIndicator } from "../common/BackendReconnectIndicator";
|
|
16
17
|
|
|
17
18
|
const SHADCN_PLACEHOLDER_IMAGE = "https://ui.shadcn.com/placeholder.svg";
|
|
18
19
|
|
|
@@ -100,6 +101,10 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
|
|
|
100
101
|
const appSubtitle = solidSettingsData?.data?.appSubtitle || "";
|
|
101
102
|
const appDescription = solidSettingsData?.data?.appDescription || "";
|
|
102
103
|
const showAuthContent = solidSettingsData?.data?.showAuthContent === true;
|
|
104
|
+
const showLegalLinks = solidSettingsData?.data?.showLegalLinks === true;
|
|
105
|
+
const appTnc = solidSettingsData?.data?.appTnc || "";
|
|
106
|
+
const appPrivacyPolicy = solidSettingsData?.data?.appPrivacyPolicy || "";
|
|
107
|
+
const copyright = solidSettingsData?.data?.copyright || "";
|
|
103
108
|
|
|
104
109
|
const renderBrand = (align: "center" | "start" = "start") => {
|
|
105
110
|
if (!authLogoSrc && !appTitle) return null;
|
|
@@ -122,6 +127,7 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
|
|
|
122
127
|
const isCenter = authLayout === "center";
|
|
123
128
|
const isLeft = authLayout === "left";
|
|
124
129
|
const isRight = authLayout === "right";
|
|
130
|
+
const shouldRenderFooter = showLegalLinks || Boolean(copyright);
|
|
125
131
|
const authSettingsContextValue = useMemo(
|
|
126
132
|
() => ({
|
|
127
133
|
solidSettingsData,
|
|
@@ -131,11 +137,60 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
|
|
|
131
137
|
[solidSettingsData, isLoadingAuthSettings, loadAuthSettings]
|
|
132
138
|
);
|
|
133
139
|
|
|
140
|
+
const legalFooter = shouldRenderFooter ? (
|
|
141
|
+
<div className="solid-auth-legal-footer hidden md:flex">
|
|
142
|
+
<div className="solid-auth-legal-footer-row">
|
|
143
|
+
{showLegalLinks ? (
|
|
144
|
+
<p className="solid-auth-legal-copy">
|
|
145
|
+
<span>Made with</span>
|
|
146
|
+
<svg
|
|
147
|
+
aria-hidden="true"
|
|
148
|
+
className="solid-auth-legal-heart"
|
|
149
|
+
width="12"
|
|
150
|
+
height="12"
|
|
151
|
+
viewBox="0 0 16 16"
|
|
152
|
+
fill="none"
|
|
153
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
154
|
+
>
|
|
155
|
+
<path
|
|
156
|
+
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"
|
|
157
|
+
fill="#ff0000"
|
|
158
|
+
/>
|
|
159
|
+
</svg>
|
|
160
|
+
<span>in Mumbai</span>
|
|
161
|
+
</p>
|
|
162
|
+
) : null}
|
|
163
|
+
{(appTnc || appPrivacyPolicy) && (
|
|
164
|
+
<div className="solid-auth-legal-links">
|
|
165
|
+
{appTnc ? (
|
|
166
|
+
<Link className="solid-auth-legal-link" href={appTnc}>
|
|
167
|
+
Terms of Service
|
|
168
|
+
</Link>
|
|
169
|
+
) : null}
|
|
170
|
+
{appPrivacyPolicy ? (
|
|
171
|
+
<Link className="solid-auth-legal-link" href={appPrivacyPolicy}>
|
|
172
|
+
Privacy Policy
|
|
173
|
+
</Link>
|
|
174
|
+
) : null}
|
|
175
|
+
</div>
|
|
176
|
+
)}
|
|
177
|
+
{copyright ? (
|
|
178
|
+
<p className="solid-auth-legal-copy solid-auth-legal-copy--muted">{copyright}</p>
|
|
179
|
+
) : null}
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
) : null;
|
|
183
|
+
|
|
134
184
|
const formPane = (
|
|
135
185
|
<div className="solid-auth-form-pane solid-login-dark-bg">
|
|
136
186
|
<div className="solid-auth-form-pane-inner">
|
|
137
|
-
|
|
138
|
-
|
|
187
|
+
<div className="solid-auth-form-pane-brand">
|
|
188
|
+
{renderBrand("start")}
|
|
189
|
+
</div>
|
|
190
|
+
<div className="solid-auth-form-pane-content">
|
|
191
|
+
{authChildren}
|
|
192
|
+
</div>
|
|
193
|
+
{legalFooter}
|
|
139
194
|
</div>
|
|
140
195
|
</div>
|
|
141
196
|
);
|
|
@@ -191,6 +246,7 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
|
|
|
191
246
|
/>
|
|
192
247
|
) : null}
|
|
193
248
|
<SolidToastProvider />
|
|
249
|
+
<BackendReconnectIndicator variant="floating" />
|
|
194
250
|
{!isCenter && (
|
|
195
251
|
<div className="solid-auth-split">
|
|
196
252
|
{isLeft && formPane}
|
|
@@ -210,39 +266,8 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
|
|
|
210
266
|
}
|
|
211
267
|
{authChildren}
|
|
212
268
|
</div>
|
|
269
|
+
{legalFooter}
|
|
213
270
|
</div>}
|
|
214
|
-
{/* {solidSettingsData?.data?.showLegalLinks === true && */}
|
|
215
|
-
<div className={`absolute hidden md:flex ${solidSettingsData?.data?.authPagesLayout === 'center' ? 'solid-auth-footer flex flex-col sm:flex-row items-center justify-between' : 'solid-auth-footer-2 grid'}`}>
|
|
216
|
-
{solidSettingsData?.data?.authPagesLayout !== 'left' &&
|
|
217
|
-
<div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'w-1/2 px-2 pt-2 flex justify-center' : ''}>
|
|
218
|
-
{solidSettingsData?.data?.showLegalLinks === true &&
|
|
219
|
-
<p className={`solid-auth-input-label text-sm m-0 ${solidSettingsData?.data?.authPagesLayout}`}>Made with <svg className="mx-1" width="12px" height="12px" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" strokeLinecap="round" strokeLinejoin="round"></g><g id="SVGRepo_iconCarrier"> <path 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" fill="#ff0000"></path> </g></svg> in Mumbai</p>
|
|
220
|
-
}
|
|
221
|
-
</div>
|
|
222
|
-
}
|
|
223
|
-
<div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'col-6 flex justify-center' : ''}>
|
|
224
|
-
{solidSettingsData?.data?.showLegalLinks === true && <div className={`flex flex-col sm:flex-row items-center gap-1 sm:gap-5 solid-auth-subtitle mr-3 ${solidSettingsData?.data?.authPagesLayout === 'left' ? 'left' : ''}`}>
|
|
225
|
-
{solidSettingsData?.data?.appTnc !== "" && <p className="m-0 "> <Link className="text-sm no-underline font-normal" href={solidSettingsData?.data?.appTnc}>Terms of Service</Link></p>}
|
|
226
|
-
{solidSettingsData?.data?.appPrivacyPolicy !== "" && <p className="m-0 "> <Link className="text-sm no-underline font-normal" href={solidSettingsData?.data?.appPrivacyPolicy}>Privacy Policy.</Link></p>}
|
|
227
|
-
</div>
|
|
228
|
-
}
|
|
229
|
-
{solidSettingsData?.data?.copyright !== "" &&
|
|
230
|
-
<div className="mt-1">
|
|
231
|
-
<p className="m-0 text-sm font-normal">{solidSettingsData?.data?.copyright}</p>
|
|
232
|
-
</div>
|
|
233
|
-
}
|
|
234
|
-
</div>
|
|
235
|
-
{
|
|
236
|
-
solidSettingsData?.data?.authPagesLayout === 'left' &&
|
|
237
|
-
<div className={solidSettingsData?.data?.authPagesLayout !== 'center' ? 'w-1/2 lg:w-[41.666667%] xl:w-1/2 px-2 pt-2 flex justify-center' : ''}>
|
|
238
|
-
{solidSettingsData?.data?.showLegalLinks === true &&
|
|
239
|
-
<p className={`solid-auth-input-label text-sm m-0 right`}>Made with <svg className="mx-1" width="12px" height="12px" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" strokeLinecap="round" strokeLinejoin="round"></g><g id="SVGRepo_iconCarrier"> <path 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" fill="#ff0000"></path> </g></svg> in Mumbai</p>
|
|
240
|
-
}
|
|
241
|
-
</div>
|
|
242
|
-
}
|
|
243
|
-
</div >
|
|
244
|
-
|
|
245
|
-
{/* } */}
|
|
246
271
|
<SolidDialog
|
|
247
272
|
visible={isRestricted}
|
|
248
273
|
onHide={handleRegistration}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
type BackendReconnectIndicatorProps = {
|
|
2
|
+
variant?: "header" | "floating";
|
|
3
|
+
};
|
|
4
|
+
export declare function BackendReconnectIndicator({ variant }: BackendReconnectIndicatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=BackendReconnectIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackendReconnectIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/common/BackendReconnectIndicator.tsx"],"names":[],"mappings":"AAIA,KAAK,8BAA8B,GAAG;IACpC,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CACjC,CAAC;AAUF,wBAAgB,yBAAyB,CAAC,EAAE,OAAkB,EAAE,EAAE,8BAA8B,kDA2B/F"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { backendHealthMonitor } from "../../helpers/backendHealthMonitor";
|
|
4
|
+
import { SolidSpinner } from "../shad-cn-ui";
|
|
5
|
+
function buildStatusLabel(state) {
|
|
6
|
+
if (state.status === "offline") {
|
|
7
|
+
return "Server unavailable";
|
|
8
|
+
}
|
|
9
|
+
return "Reconnecting...";
|
|
10
|
+
}
|
|
11
|
+
export function BackendReconnectIndicator(_a) {
|
|
12
|
+
var _b = _a.variant, variant = _b === void 0 ? "header" : _b;
|
|
13
|
+
var _c = useState(backendHealthMonitor.getState()), state = _c[0], setState = _c[1];
|
|
14
|
+
useEffect(function () { return backendHealthMonitor.subscribe(setState); }, []);
|
|
15
|
+
if (state.status === "online") {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
var className = variant === "floating"
|
|
19
|
+
? "solid-backend-indicator solid-backend-indicator--floating"
|
|
20
|
+
: "solid-backend-indicator";
|
|
21
|
+
return (_jsxs("div", { className: className, role: "status", "aria-live": "polite", "data-status": state.status, title: state.status === "offline"
|
|
22
|
+
? "The app is still trying to reconnect to the backend."
|
|
23
|
+
: "The app is checking whether the backend is back online.", children: [_jsx(SolidSpinner, { size: 14, className: "solid-backend-indicator-spinner" }), _jsx("span", { className: "solid-backend-indicator-text", children: buildStatusLabel(state) })] }));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=BackendReconnectIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackendReconnectIndicator.js","sourceRoot":"","sources":["../../../src/components/common/BackendReconnectIndicator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAA2B,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAM7C,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;QAC9B,OAAO,oBAAoB,CAAC;KAC7B;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EAAsD;QAApD,eAAkB,EAAlB,OAAO,mBAAG,QAAQ,KAAA;IACtD,IAAA,KAAoB,QAAQ,CAAqB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,EAAhF,KAAK,QAAA,EAAE,QAAQ,QAAiE,CAAC;IAExF,SAAS,CAAC,cAAM,OAAA,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAxC,CAAwC,EAAE,EAAE,CAAC,CAAC;IAE9D,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE;QAC7B,OAAO,IAAI,CAAC;KACb;IAED,IAAM,SAAS,GAAG,OAAO,KAAK,UAAU;QACtC,CAAC,CAAC,2DAA2D;QAC7D,CAAC,CAAC,yBAAyB,CAAC;IAE9B,OAAO,CACL,eACE,SAAS,EAAE,SAAS,EACpB,IAAI,EAAC,QAAQ,eACH,QAAQ,iBACL,KAAK,CAAC,MAAM,EACzB,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS;YAC/B,CAAC,CAAC,sDAAsD;YACxD,CAAC,CAAC,yDAAyD,aAE7D,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,iCAAiC,GAAG,EACtE,eAAM,SAAS,EAAC,8BAA8B,YAAE,gBAAgB,CAAC,KAAK,CAAC,GAAQ,IAC3E,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useState } from \"react\";\nimport { backendHealthMonitor, type BackendHealthState } from \"../../helpers/backendHealthMonitor\";\nimport { SolidSpinner } from \"../shad-cn-ui\";\n\ntype BackendReconnectIndicatorProps = {\n variant?: \"header\" | \"floating\";\n};\n\nfunction buildStatusLabel(state: BackendHealthState) {\n if (state.status === \"offline\") {\n return \"Server unavailable\";\n }\n\n return \"Reconnecting...\";\n}\n\nexport function BackendReconnectIndicator({ variant = \"header\" }: BackendReconnectIndicatorProps) {\n const [state, setState] = useState<BackendHealthState>(backendHealthMonitor.getState());\n\n useEffect(() => backendHealthMonitor.subscribe(setState), []);\n\n if (state.status === \"online\") {\n return null;\n }\n\n const className = variant === \"floating\"\n ? \"solid-backend-indicator solid-backend-indicator--floating\"\n : \"solid-backend-indicator\";\n\n return (\n <div\n className={className}\n role=\"status\"\n aria-live=\"polite\"\n data-status={state.status}\n title={state.status === \"offline\"\n ? \"The app is still trying to reconnect to the backend.\"\n : \"The app is checking whether the backend is back online.\"}\n >\n <SolidSpinner size={14} className=\"solid-backend-indicator-spinner\" />\n <span className=\"solid-backend-indicator-text\">{buildStatusLabel(state)}</span>\n </div>\n );\n}\n\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
import { backendHealthMonitor, type BackendHealthState } from "../../helpers/backendHealthMonitor";
|
|
3
|
+
import { SolidSpinner } from "../shad-cn-ui";
|
|
4
|
+
|
|
5
|
+
type BackendReconnectIndicatorProps = {
|
|
6
|
+
variant?: "header" | "floating";
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
function buildStatusLabel(state: BackendHealthState) {
|
|
10
|
+
if (state.status === "offline") {
|
|
11
|
+
return "Server unavailable";
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return "Reconnecting...";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function BackendReconnectIndicator({ variant = "header" }: BackendReconnectIndicatorProps) {
|
|
18
|
+
const [state, setState] = useState<BackendHealthState>(backendHealthMonitor.getState());
|
|
19
|
+
|
|
20
|
+
useEffect(() => backendHealthMonitor.subscribe(setState), []);
|
|
21
|
+
|
|
22
|
+
if (state.status === "online") {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const className = variant === "floating"
|
|
27
|
+
? "solid-backend-indicator solid-backend-indicator--floating"
|
|
28
|
+
: "solid-backend-indicator";
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<div
|
|
32
|
+
className={className}
|
|
33
|
+
role="status"
|
|
34
|
+
aria-live="polite"
|
|
35
|
+
data-status={state.status}
|
|
36
|
+
title={state.status === "offline"
|
|
37
|
+
? "The app is still trying to reconnect to the backend."
|
|
38
|
+
: "The app is checking whether the backend is back online."}
|
|
39
|
+
>
|
|
40
|
+
<SolidSpinner size={14} className="solid-backend-indicator-spinner" />
|
|
41
|
+
<span className="solid-backend-indicator-text">{buildStatusLabel(state)}</span>
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsComponent.d.ts","sourceRoot":"","sources":["../../../src/components/common/SettingsComponent.tsx"],"names":[],"mappings":"AAmGA,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"SettingsComponent.d.ts","sourceRoot":"","sources":["../../../src/components/common/SettingsComponent.tsx"],"names":[],"mappings":"AAmGA,wBAAgB,iBAAiB,4CAifhC"}
|
|
@@ -47,7 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
};
|
|
48
48
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
49
49
|
import { useEffect, useMemo, useState } from "react";
|
|
50
|
-
import { Search } from "lucide-react";
|
|
50
|
+
import { CircleHelp, Search } from "lucide-react";
|
|
51
51
|
import { useDispatch } from "react-redux";
|
|
52
52
|
import { ERROR_MESSAGES } from "../../constants/error-messages";
|
|
53
53
|
import { normalizeAssetUrl } from "../../helpers/assetUrl";
|
|
@@ -151,6 +151,7 @@ export function SettingsComponent() {
|
|
|
151
151
|
setting.key,
|
|
152
152
|
setting.label,
|
|
153
153
|
setting.description,
|
|
154
|
+
setting.helpText,
|
|
154
155
|
(_a = setting.options) === null || _a === void 0 ? void 0 : _a.map(function (option) { return "".concat(option.label, " ").concat(option.value); }).join(" "),
|
|
155
156
|
]
|
|
156
157
|
.filter(Boolean)
|
|
@@ -319,7 +320,10 @@ export function SettingsComponent() {
|
|
|
319
320
|
value: entry.moduleName,
|
|
320
321
|
label: (_jsxs("span", { className: styles.moduleTab, children: [_jsx("span", { className: styles.moduleTabBadge, children: entry.badge }), _jsxs("span", { className: styles.moduleTabText, children: [_jsx("span", { className: styles.moduleTabLabel, children: entry.label }), _jsxs("span", { className: styles.moduleTabMeta, children: [entry.settings.length, " settings"] })] })] })),
|
|
321
322
|
content: (_jsx("div", { children: groupedModuleSettings.length ? (groupedModuleSettings.map(function (group) { return (_jsx("section", { className: styles.groupSection, children: _jsxs("div", { className: styles.groupCard, children: [_jsx("div", { className: styles.groupHeader, children: _jsxs("div", { children: [_jsx("h3", { className: styles.groupTitle, children: group.label }), _jsxs("div", { className: styles.groupMeta, children: [group.settings.length, " item", group.settings.length === 1 ? "" : "s"] })] }) }), _jsx("div", { className: styles.groupBody, children: group.settings.map(function (setting) {
|
|
323
|
+
var _a;
|
|
322
324
|
var value = formValues[setting.key];
|
|
325
|
+
var settingName = setting.label || humanizeSettingToken(setting.key);
|
|
326
|
+
var settingHelpText = ((_a = setting.helpText) === null || _a === void 0 ? void 0 : _a.trim()) || "";
|
|
323
327
|
var settingsWidgetName = getSettingsWidgetName(setting);
|
|
324
328
|
var SettingsWidget = settingsWidgetName ? getExtensionComponent(settingsWidgetName) : null;
|
|
325
329
|
var customWidgetErrorText = getCustomWidgetErrorText(setting, settingsWidgetName, SettingsWidget);
|
|
@@ -332,7 +336,7 @@ export function SettingsComponent() {
|
|
|
332
336
|
updateValue: updateValue,
|
|
333
337
|
updateFileValue: updateFileValue,
|
|
334
338
|
};
|
|
335
|
-
return (_jsxs("div", { className: styles.settingRow, children: [_jsxs("div", { className: styles.settingLabelWrap, children: [_jsxs("div", { className: styles.settingLabelLine, children: [_jsx("p", { className: styles.settingLabel, children:
|
|
339
|
+
return (_jsxs("div", { className: styles.settingRow, children: [_jsxs("div", { className: styles.settingLabelWrap, children: [_jsxs("div", { className: styles.settingLabelLine, children: [_jsx("p", { className: styles.settingLabel, children: settingName }), settingHelpText ? (_jsxs(SolidTooltip, { children: [_jsx(SolidTooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", className: styles.settingHelpButton, "aria-label": "Show help for ".concat(settingName), children: _jsx(CircleHelp, { size: 14, "aria-hidden": true }) }) }), _jsx(SolidTooltipContent, { align: "start", className: styles.settingHelpTooltip, children: settingHelpText })] })) : null, !setting.editable ? (_jsxs(SolidTooltip, { children: [_jsx(SolidTooltipTrigger, { asChild: true, children: _jsx("span", { children: _jsx(SolidTag, { tone: "warn", children: "Read only" }) }) }), _jsx(SolidTooltipContent, { children: "This value comes from system configuration and cannot be changed from the admin UI." })] })) : null] }), setting.description ? _jsx("p", { className: styles.settingDescription, children: setting.description }) : null] }), !setting.editable ? (setting.controlType === "custom" ? (customWidgetErrorText ? (_jsx("div", { className: styles.readonlyValue, children: _jsx("span", { className: styles.customWidgetError, children: customWidgetErrorText }) })) : SettingsWidget ? ((function () {
|
|
336
340
|
var ResolvedSettingsWidget = SettingsWidget;
|
|
337
341
|
return _jsx(ResolvedSettingsWidget, __assign({}, settingsWidgetProps));
|
|
338
342
|
})()) : null) : setting.controlType === "mediaSingle" && value ? (_jsx("div", { className: styles.mediaPreview, children: _jsx(SolidUploadedImage, { src: normalizeAssetUrl(String(value)) }) })) : (_jsx("div", { className: styles.readonlyValue, children: _jsx("span", { className: value === null || value === undefined || value === "" ? styles.emptyValue : undefined, children: formatReadonlyValue(setting, value) }) }))) : (_jsxs("div", { className: "".concat(styles.controlStack, " ").concat(setting.controlType === "custom" ? styles.customControlStack : ""), children: [setting.controlType === "boolean" ? (_jsxs("div", { className: styles.boolRow, children: [_jsx(SolidSwitch, { checked: Boolean(value), onChange: function (checked) { return updateValue(setting.key, checked); } }), _jsx("span", { className: styles.boolText, children: value ? "Enabled" : "Disabled" })] })) : null, setting.controlType === "shortText" ? (_jsx(SolidInput, { type: "text", value: value == null ? "" : String(value), placeholder: setting.placeholder || setting.label, onChange: function (event) { return updateValue(setting.key, event.target.value); } })) : null, setting.controlType === "longText" ? (_jsx(SolidTextarea, { rows: 4, value: value == null ? "" : typeof value === "string" ? value : JSON.stringify(value, null, 2), placeholder: setting.placeholder || setting.label, onChange: function (event) { return updateValue(setting.key, event.target.value); } })) : null, setting.controlType === "numeric" ? (_jsx(SolidInput, { type: "number", value: value == null ? "" : String(value), placeholder: setting.placeholder || setting.label, onChange: function (event) { return updateValue(setting.key, event.target.value === "" ? null : Number(event.target.value)); } })) : null, setting.controlType === "selectionStatic" ? (_jsx(SolidSelect, { value: value, options: setting.options || [], placeholder: setting.placeholder || "Select", onChange: function (event) { return updateValue(setting.key, event.value); } })) : null, setting.controlType === "date" || setting.controlType === "datetime" ? (_jsx(SolidDatePicker, { selected: value ? new Date(String(value)) : null, showTimeSelect: setting.controlType === "datetime", dateFormat: setting.controlType === "datetime" ? "yyyy-MM-dd HH:mm:ss" : "yyyy-MM-dd", onChange: function (date) { return updateValue(setting.key, date instanceof Date ? date.toISOString() : null); } })) : null, setting.controlType === "mediaSingle" ? (_jsxs("div", { className: styles.mediaField, children: [_jsxs("div", { className: styles.mediaComposer, children: [_jsxs("label", { className: styles.mediaDropzone, children: [_jsx("input", { className: styles.mediaInput, type: "file", accept: ".png,.jpg,.jpeg,.svg,.webp", onChange: function (event) { var _a, _b; return updateFileValue(setting.key, (_b = (_a = event.target.files) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null); } }), _jsx(SettingDropzoneActivePlaceholder, { note: "PNG, JPG, JPEG, SVG, WEBP | Max size: 2 MB" })] }), (filePreviews[setting.key] || value) ? (_jsx("div", { className: styles.mediaPreview, children: _jsx(SolidUploadedImage, { src: filePreviews[setting.key] || normalizeAssetUrl(String(value)) }) })) : (_jsx("div", { className: styles.mediaEmptyState, children: "Preview appears here after upload" }))] }), (filePreviews[setting.key] || value) ? (_jsx(SettingsImageRemoveButton, { onClick: function () { return updateFileValue(setting.key, null); } })) : null] })) : null, setting.controlType === "custom" ? (customWidgetErrorText ? (_jsx("div", { className: styles.readonlyValue, children: _jsx("span", { className: styles.customWidgetError, children: customWidgetErrorText }) })) : SettingsWidget ? ((function () {
|
|
@@ -341,6 +345,6 @@ export function SettingsComponent() {
|
|
|
341
345
|
})()) : null) : null] }))] }, setting.key));
|
|
342
346
|
}) })] }) }, group.key)); })) : (_jsx("div", { className: styles.emptyState, children: "No settings match the current filter." })) })),
|
|
343
347
|
}); });
|
|
344
|
-
return (_jsxs("div", { className: styles.page, children: [_jsxs("div", { className: "page-header
|
|
348
|
+
return (_jsxs("div", { className: styles.page, children: [_jsxs("div", { className: "page-header ".concat(styles.pageHeader), children: [_jsxs("div", { className: styles.headerIntro, children: [_jsx("div", { className: "form-wrapper-title", children: "Settings" }), _jsx("div", { className: styles.subtitle, children: "Manage platform configuration across modules from a single workspace." }), _jsxs("div", { className: styles.summaryChips, children: [_jsxs("span", { className: styles.summaryChip, children: [moduleEntries.length, " module", moduleEntries.length === 1 ? "" : "s"] }), _jsxs("span", { className: styles.summaryChip, children: [totalSettingsCount, " setting", totalSettingsCount === 1 ? "" : "s"] }), _jsxs("button", { type: "button", className: "".concat(styles.summaryChip, " ").concat(styles.summaryChipButton, " ").concat(filterMode === "editable" ? styles.summaryChipActive : ""), "aria-pressed": filterMode === "editable", onClick: function () { return setFilterMode(function (current) { return (current === "editable" ? "all" : "editable"); }); }, children: [editableSettingsCount, " editable"] })] })] }), _jsxs("div", { className: styles.headerSearch, children: [_jsxs("div", { className: styles.searchIcon, children: [_jsx(Search, { size: 16 }), _jsx(SolidInput, { className: styles.searchInput, value: searchTerm, placeholder: "Search settings, groups, or modules", onChange: function (event) { return setSearchTerm(event.target.value); } })] }), searchTerm ? (_jsxs("span", { className: styles.resultsMeta, children: [filteredSettings.length, " result", filteredSettings.length === 1 ? "" : "s"] })) : null] }), _jsxs("div", { className: styles.toolbarActions, children: [_jsxs("div", { className: styles.legend, children: [_jsx("button", { type: "button", className: "".concat(styles.readonlyFilterButton, " ").concat(filterMode === "read-only" ? styles.readonlyFilterButtonActive : ""), "aria-pressed": filterMode === "read-only", "aria-label": filterMode === "read-only" ? "Disable read-only filter" : "Enable read-only filter", onClick: function () { return setFilterMode(function (current) { return (current === "read-only" ? "all" : "read-only"); }); }, children: _jsx(SolidTag, { tone: "warn", children: "Read only" }) }), _jsx("span", { className: filterMode === "read-only" ? styles.legendLabelActive : undefined, children: filterMode === "read-only" ? "Read-only filter active" : "System-managed value" }), _jsxs(SolidTooltip, { children: [_jsx(SolidTooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", className: styles.legendButton, "aria-label": "Read-only legend details", children: "i" }) }), _jsx(SolidTooltipContent, { children: "Read-only settings are visible here for context, but can only be changed through environment or backend configuration." })] })] }), _jsx(SolidButton, { size: "sm", type: "button", loading: false, onClick: handleSave, disabled: !hasChanges, children: "Save" })] })] }), _jsx("div", { className: styles.workspace, children: moduleTabs.length ? (_jsx(SolidTabGroup, { tabs: moduleTabs, value: activeModule, onValueChange: setActiveModule, className: styles.tabGroup, listClassName: styles.tabList, panelClassName: styles.tabPanel, orientation: "vertical" })) : (_jsx("div", { className: styles.emptyState, children: "No settings are available." })) })] }));
|
|
345
349
|
}
|
|
346
350
|
//# sourceMappingURL=SettingsComponent.js.map
|