@solidxai/core-ui 0.1.12-beta.1 → 0.1.12-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 (157) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +15 -19
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +26 -20
  5. package/dist/components/common/BackButton.js +1 -1
  6. package/dist/components/common/BackButton.js.map +1 -1
  7. package/dist/components/common/BackButton.tsx +1 -1
  8. package/dist/components/common/CancelButton.js +1 -1
  9. package/dist/components/common/CancelButton.js.map +1 -1
  10. package/dist/components/common/CancelButton.tsx +1 -1
  11. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  12. package/dist/components/common/GeneralSettings.js +6 -33
  13. package/dist/components/common/GeneralSettings.js.map +1 -1
  14. package/dist/components/common/GeneralSettings.tsx +20 -57
  15. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  16. package/dist/components/common/SettingsComponent.js +1 -9
  17. package/dist/components/common/SettingsComponent.js.map +1 -1
  18. package/dist/components/common/SettingsComponent.tsx +1 -8
  19. package/dist/components/common/SolidBreadcrumb.js +1 -1
  20. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  21. package/dist/components/common/SolidBreadcrumb.tsx +2 -2
  22. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -1
  23. package/dist/components/common/SolidFaviconProvider.js +1 -8
  24. package/dist/components/common/SolidFaviconProvider.js.map +1 -1
  25. package/dist/components/common/SolidFaviconProvider.tsx +1 -7
  26. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  27. package/dist/components/core/card/CardItem.js +3 -4
  28. package/dist/components/core/card/CardItem.js.map +1 -1
  29. package/dist/components/core/card/CardItem.tsx +3 -4
  30. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  31. package/dist/components/core/card/SolidCardView.js +6 -1
  32. package/dist/components/core/card/SolidCardView.js.map +1 -1
  33. package/dist/components/core/card/SolidCardView.tsx +6 -1
  34. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  35. package/dist/components/core/card/SolidCardViewConfigure.js +4 -1
  36. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  37. package/dist/components/core/card/SolidCardViewConfigure.tsx +4 -1
  38. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  39. package/dist/components/core/common/SolidCreateButton.js +2 -13
  40. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  41. package/dist/components/core/common/SolidCreateButton.tsx +2 -15
  42. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  43. package/dist/components/core/common/SolidGlobalSearchElement.js +34 -15
  44. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  45. package/dist/components/core/common/SolidGlobalSearchElement.tsx +37 -17
  46. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +15 -13
  47. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  48. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +4 -4
  49. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +6 -5
  50. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  51. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +1 -1
  52. package/dist/components/core/form/SolidFormFooter.d.ts +2 -1
  53. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  54. package/dist/components/core/form/SolidFormFooter.js +48 -14
  55. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  56. package/dist/components/core/form/SolidFormFooter.tsx +50 -4
  57. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  58. package/dist/components/core/form/SolidFormView.js +52 -50
  59. package/dist/components/core/form/SolidFormView.js.map +1 -1
  60. package/dist/components/core/form/SolidFormView.tsx +16 -9
  61. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  62. package/dist/components/core/kanban/KanbanCard.js +2 -10
  63. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  64. package/dist/components/core/kanban/KanbanCard.tsx +2 -10
  65. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  66. package/dist/components/core/kanban/SolidKanbanView.js +11 -4
  67. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  68. package/dist/components/core/kanban/SolidKanbanView.tsx +13 -5
  69. package/dist/components/core/list/SolidListView.d.ts +2 -0
  70. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  71. package/dist/components/core/list/SolidListView.js +195 -111
  72. package/dist/components/core/list/SolidListView.js.map +1 -1
  73. package/dist/components/core/list/SolidListView.tsx +136 -39
  74. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  75. package/dist/components/core/list/SolidListViewConfigure.js +2 -0
  76. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  77. package/dist/components/core/list/SolidListViewConfigure.tsx +2 -0
  78. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  79. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +16 -19
  80. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  81. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +16 -22
  82. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  83. package/dist/components/core/locales/SolidChatterLocaleTabView.js +9 -8
  84. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  85. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +4 -1
  86. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  87. package/dist/components/core/locales/SolidLocale.js +1 -2
  88. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  89. package/dist/components/core/locales/SolidLocale.tsx +1 -2
  90. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  91. package/dist/components/core/model/CreateModel.js +1 -1
  92. package/dist/components/core/model/CreateModel.js.map +1 -1
  93. package/dist/components/core/model/CreateModel.tsx +0 -1
  94. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  95. package/dist/components/core/model/ModelMetaData.js +1 -2
  96. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  97. package/dist/components/core/model/ModelMetaData.tsx +1 -3
  98. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  99. package/dist/components/core/tree/SolidTreeView.js +47 -26
  100. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  101. package/dist/components/core/tree/SolidTreeView.tsx +55 -23
  102. package/dist/components/layout/AdminTopHeader.js +2 -3
  103. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  104. package/dist/components/layout/AdminTopHeader.tsx +2 -2
  105. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  106. package/dist/components/layout/AppSidebar.js +5 -2
  107. package/dist/components/layout/AppSidebar.js.map +1 -1
  108. package/dist/components/layout/AppSidebar.tsx +7 -4
  109. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  110. package/dist/components/layout/navbar-two-menu.js +6 -4
  111. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  112. package/dist/components/layout/navbar-two-menu.tsx +4 -2
  113. package/dist/constants/error-messages.d.ts +1 -0
  114. package/dist/constants/error-messages.d.ts.map +1 -1
  115. package/dist/constants/error-messages.js +1 -0
  116. package/dist/constants/error-messages.js.map +1 -1
  117. package/dist/constants/error-messages.ts +1 -0
  118. package/dist/helpers/assetUrl.d.ts +3 -0
  119. package/dist/helpers/assetUrl.d.ts.map +1 -0
  120. package/dist/helpers/assetUrl.js +22 -0
  121. package/dist/helpers/assetUrl.js.map +1 -0
  122. package/dist/helpers/assetUrl.ts +26 -0
  123. package/dist/helpers/modelViewPersistence.d.ts +5 -0
  124. package/dist/helpers/modelViewPersistence.d.ts.map +1 -0
  125. package/dist/helpers/modelViewPersistence.js +168 -0
  126. package/dist/helpers/modelViewPersistence.js.map +1 -0
  127. package/dist/helpers/modelViewPersistence.ts +201 -0
  128. package/dist/helpers/routePaths.d.ts +6 -0
  129. package/dist/helpers/routePaths.d.ts.map +1 -1
  130. package/dist/helpers/routePaths.js +13 -0
  131. package/dist/helpers/routePaths.js.map +1 -1
  132. package/dist/helpers/routePaths.ts +25 -0
  133. package/dist/redux/api/solidServiceApi.d.ts +10 -2
  134. package/dist/redux/api/solidServiceApi.d.ts.map +1 -1
  135. package/dist/redux/api/solidServiceApi.js +2 -4
  136. package/dist/redux/api/solidServiceApi.js.map +1 -1
  137. package/dist/redux/api/solidServiceApi.ts +4 -6
  138. package/dist/redux/store/defaultStoreConfig.d.ts +5 -1
  139. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  140. package/dist/resources/solid-custom.css +3 -0
  141. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -1
  142. package/dist/routes/pages/admin/core/CardPage.js +11 -0
  143. package/dist/routes/pages/admin/core/CardPage.js.map +1 -1
  144. package/dist/routes/pages/admin/core/CardPage.tsx +13 -0
  145. package/dist/routes/pages/admin/core/KanbanPage.d.ts.map +1 -1
  146. package/dist/routes/pages/admin/core/KanbanPage.js +11 -0
  147. package/dist/routes/pages/admin/core/KanbanPage.js.map +1 -1
  148. package/dist/routes/pages/admin/core/KanbanPage.tsx +13 -0
  149. package/dist/routes/pages/admin/core/ListPage.d.ts.map +1 -1
  150. package/dist/routes/pages/admin/core/ListPage.js +25 -2
  151. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  152. package/dist/routes/pages/admin/core/ListPage.tsx +29 -2
  153. package/dist/routes/pages/admin/core/TreePage.d.ts.map +1 -1
  154. package/dist/routes/pages/admin/core/TreePage.js +10 -2
  155. package/dist/routes/pages/admin/core/TreePage.js.map +1 -1
  156. package/dist/routes/pages/admin/core/TreePage.tsx +11 -2
  157. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU;cAA8B,MAAM,SAAS;6CAuOnE,CAAA"}
1
+ {"version":3,"file":"AuthLayout.d.ts","sourceRoot":"","sources":["../../../src/components/auth/AuthLayout.tsx"],"names":[],"mappings":"AAiBA,eAAO,MAAM,UAAU;cAA8B,MAAM,SAAS;6CA6OnE,CAAA"}
@@ -42,11 +42,11 @@ import { useCallback, useContext, useEffect, useMemo, useState } from "react";
42
42
  import Image from "../common/Image";
43
43
  import SolidLogo from '../../resources/images/SolidXLogo.svg';
44
44
  import AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';
45
- import { env } from "../../adapters/env";
46
45
  import { SolidButton, SolidDialog, SolidDivider } from "../shad-cn-ui";
47
46
  import { LayoutContext } from "../layout/context/layoutcontext";
48
47
  import { solidGet } from "../../http/solidHttp";
49
48
  import { AuthSettingsContext } from "./AuthSettingsContext";
49
+ import { normalizeAssetUrl, toCssBackgroundImage } from "../../helpers/assetUrl";
50
50
  import { toLegacySettingsShape } from "../../helpers/settingsPayload";
51
51
  import { SolidToastProvider } from "../common/SolidToastProvider";
52
52
  var SHADCN_PLACEHOLDER_IMAGE = "https://ui.shadcn.com/placeholder.svg";
@@ -116,7 +116,7 @@ export var AuthLayout = function (_a) {
116
116
  };
117
117
  var solidSideBanner = function () {
118
118
  var _a, _b, _c, _d;
119
- var layout = (_a = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _a === void 0 ? void 0 : _a.authPagesLayout;
119
+ var layout = ((_a = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _a === void 0 ? void 0 : _a.authPagesLayout) || "center";
120
120
  var src = '';
121
121
  if (layout === 'left') {
122
122
  src = ((_b = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _b === void 0 ? void 0 : _b.authScreenLeftBackgroundImage) || SHADCN_PLACEHOLDER_IMAGE;
@@ -127,22 +127,10 @@ export var AuthLayout = function (_a) {
127
127
  else if (layout === 'center') {
128
128
  src = ((_d = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _d === void 0 ? void 0 : _d.authScreenCenterBackgroundImage) || AuthScreenCenterBackgroundImage.src || AuthScreenCenterBackgroundImage;
129
129
  }
130
- // Normalize image path if coming from API
131
- var isBlobOrAbsolute = (src === null || src === void 0 ? void 0 : src.startsWith("blob:")) || (src === null || src === void 0 ? void 0 : src.startsWith("http"));
132
- if (!isBlobOrAbsolute && !(src === null || src === void 0 ? void 0 : src.startsWith("/"))) {
133
- src = "".concat(env("API_URL"), "/").concat(src);
134
- }
135
- return src;
136
- };
137
- var normalizeAssetUrl = function (src) {
138
- if (!src)
139
- return "";
140
- var isBlobOrAbsolute = src.startsWith("blob:") || src.startsWith("http");
141
- if (isBlobOrAbsolute || src.startsWith("/"))
142
- return src;
143
- return "".concat(env("API_URL"), "/").concat(src);
130
+ return normalizeAssetUrl(src);
144
131
  };
145
132
  var authLogoSrc = normalizeAssetUrl(((_b = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _b === void 0 ? void 0 : _b.appLogo) || "");
133
+ var authBackgroundSrc = solidSideBanner();
146
134
  var appTitle = ((_c = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _c === void 0 ? void 0 : _c.appTitle) || "";
147
135
  var appSubtitle = ((_d = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _d === void 0 ? void 0 : _d.appSubtitle) || "";
148
136
  var appDescription = ((_e = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _e === void 0 ? void 0 : _e.appDescription) || "";
@@ -165,10 +153,18 @@ export var AuthLayout = function (_a) {
165
153
  reloadAuthSettings: loadAuthSettings,
166
154
  }); }, [solidSettingsData, isLoadingAuthSettings, loadAuthSettings]);
167
155
  var formPane = (_jsx("div", { className: "solid-auth-form-pane solid-login-dark-bg", children: _jsxs("div", { className: "solid-auth-form-pane-inner", children: [renderBrand("start"), authChildren] }) }));
168
- 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: "url(".concat(solidSideBanner(), ")") }, children: [((_h = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _h === void 0 ? void 0 : _h.appLogoPosition) === "in_image_view" &&
169
- _jsx("div", { className: "solid-logo flex items-center gap-4 ".concat((_j = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _j === void 0 ? void 0 : _j.appLogoPosition), children: _jsx(Image, { alt: "solid logo", src: ((_k = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _k === void 0 ? void 0 : _k.appLogo) || SolidLogo, className: "relative", fill: true }) }), showAuthContent &&
156
+ 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: [((_h = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _h === void 0 ? void 0 : _h.appLogoPosition) === "in_image_view" &&
157
+ _jsx("div", { className: "solid-logo flex items-center gap-4 ".concat((_j = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _j === void 0 ? void 0 : _j.appLogoPosition), children: _jsx(Image, { alt: "solid logo", src: normalizeAssetUrl((_k = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _k === void 0 ? void 0 : _k.appLogo) || SolidLogo, className: "relative", fill: true }) }), showAuthContent &&
170
158
  _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: [((_l = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _l === void 0 ? void 0 : _l.appSubtitle) && _jsx("h1", { className: "solid-auth-image-subtitle m-0", children: (_m = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _m === void 0 ? void 0 : _m.appSubtitle }), ((_o = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _o === void 0 ? void 0 : _o.appTitle) && _jsx("h1", { className: "solid-auth-image-title mt-0", children: (_p = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _p === void 0 ? void 0 : _p.appTitle }), ((_q = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _q === void 0 ? void 0 : _q.appDescription) && _jsx("p", { className: "solid-auth-image-helper-text", children: (_r = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _r === void 0 ? void 0 : _r.appDescription })] }) }) })] }));
171
- return (_jsx(AuthSettingsContext.Provider, { value: authSettingsContextValue, children: _jsxs("div", { className: "solid-auth-theme-wrapper ".concat(authLayout, " auth-theme-").concat(authTheme), "data-auth-theme": authTheme, children: [_jsx(SolidToastProvider, {}), !isCenter && (_jsxs("div", { className: "solid-auth-split", children: [isLeft && formPane, imagePane, isRight && formPane] })), isCenter && _jsx("div", { className: "solid-center-layout", children: _jsxs("div", { className: "solid-auth-center-stack", children: [renderBrand("center"), showAuthContent &&
159
+ 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: {
160
+ position: "absolute",
161
+ inset: 0,
162
+ zIndex: 0,
163
+ backgroundImage: toCssBackgroundImage(authBackgroundSrc),
164
+ backgroundPosition: "center",
165
+ backgroundRepeat: "no-repeat",
166
+ backgroundSize: "cover",
167
+ } })) : null, _jsx(SolidToastProvider, {}), !isCenter && (_jsxs("div", { className: "solid-auth-split", children: [isLeft && formPane, imagePane, isRight && formPane] })), isCenter && _jsx("div", { className: "solid-center-layout", style: { position: "relative", zIndex: 1 }, children: _jsxs("div", { className: "solid-auth-center-stack", children: [renderBrand("center"), showAuthContent &&
172
168
  _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] }) }), _jsxs("div", { className: "absolute hidden md:flex ".concat(((_s = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _s === void 0 ? void 0 : _s.authPagesLayout) === 'center' ? 'solid-auth-footer flex flex-col sm:flex-row items-center justify-between' : 'solid-auth-footer-2 grid'), children: [((_t = solidSettingsData === null || solidSettingsData === void 0 ? void 0 : solidSettingsData.data) === null || _t === void 0 ? void 0 : _t.authPagesLayout) !== 'left' &&
173
169
  _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 &&
174
170
  _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) !== "" &&
@@ -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 { env } from \"../../adapters/env\";\nimport { SolidButton, SolidDialog, SolidDivider } from \"../shad-cn-ui\";\nimport { LayoutContext } from \"../layout/context/layoutcontext\";\nimport { solidGet } from \"../../http/solidHttp\";\nimport { AuthSettingsContext } from \"./AuthSettingsContext\";\nimport { toLegacySettingsShape } from \"../../helpers/settingsPayload\";\nimport { SolidToastProvider } from \"../common/SolidToastProvider\";\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 authChildren =\n pathname !== \"/auth/register\" || allowRegistration !== false || isLoadingAuthSettings\n ? children\n : null;\n const handleRegistration = () => {\n router.push(\"/auth/login\");\n setIsRestricted(false);\n }\n\n const solidSideBanner = () => {\n const layout = solidSettingsData?.data?.authPagesLayout;\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 || (AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage;\n }\n\n // Normalize image path if coming from API\n const isBlobOrAbsolute = src?.startsWith(\"blob:\") || src?.startsWith(\"http\");\n if (!isBlobOrAbsolute && !src?.startsWith(\"/\")) {\n src = `${env(\"API_URL\")}/${src}`;\n }\n\n return src;\n };\n\n const normalizeAssetUrl = (src?: string) => {\n if (!src) return \"\";\n const isBlobOrAbsolute = src.startsWith(\"blob:\") || src.startsWith(\"http\");\n if (isBlobOrAbsolute || src.startsWith(\"/\")) return src;\n return `${env(\"API_URL\")}/${src}`;\n };\n\n const authLogoSrc = normalizeAssetUrl(solidSettingsData?.data?.appLogo || \"\");\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 authTheme = layoutContext?.themeMode === \"dark\" ? \"dark\" : \"light\";\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: `url(${solidSideBanner()})` }}\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={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 className={`solid-auth-theme-wrapper ${authLayout} auth-theme-${authTheme}`} data-auth-theme={authTheme}>\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\">\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\";\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 authChildren =\n pathname !== \"/auth/register\" || allowRegistration !== false || isLoadingAuthSettings\n ? children\n : null;\n const handleRegistration = () => {\n router.push(\"/auth/login\");\n setIsRestricted(false);\n }\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 || (AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage;\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 authTheme = layoutContext?.themeMode === \"dark\" ? \"dark\" : \"light\";\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"]}
@@ -5,11 +5,11 @@ import { useCallback, useContext, useEffect, useMemo, useState } from "react";
5
5
  import Image from "../common/Image";
6
6
  import SolidLogo from '../../resources/images/SolidXLogo.svg'
7
7
  import AuthScreenCenterBackgroundImage from '../../resources/images/auth/solid-login-light.png';
8
- import { env } from "../../adapters/env";
9
8
  import { SolidButton, SolidDialog, SolidDivider } from "../shad-cn-ui";
10
9
  import { LayoutContext } from "../layout/context/layoutcontext";
11
10
  import { solidGet } from "../../http/solidHttp";
12
11
  import { AuthSettingsContext } from "./AuthSettingsContext";
12
+ import { normalizeAssetUrl, toCssBackgroundImage } from "../../helpers/assetUrl";
13
13
  import { toLegacySettingsShape } from "../../helpers/settingsPayload";
14
14
  import { SolidToastProvider } from "../common/SolidToastProvider";
15
15
 
@@ -67,7 +67,7 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
67
67
  }
68
68
 
69
69
  const solidSideBanner = () => {
70
- const layout = solidSettingsData?.data?.authPagesLayout;
70
+ const layout = solidSettingsData?.data?.authPagesLayout || "center";
71
71
 
72
72
  let src = '';
73
73
 
@@ -79,23 +79,11 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
79
79
  src = solidSettingsData?.data?.authScreenCenterBackgroundImage || (AuthScreenCenterBackgroundImage as any).src || AuthScreenCenterBackgroundImage;
80
80
  }
81
81
 
82
- // Normalize image path if coming from API
83
- const isBlobOrAbsolute = src?.startsWith("blob:") || src?.startsWith("http");
84
- if (!isBlobOrAbsolute && !src?.startsWith("/")) {
85
- src = `${env("API_URL")}/${src}`;
86
- }
87
-
88
- return src;
89
- };
90
-
91
- const normalizeAssetUrl = (src?: string) => {
92
- if (!src) return "";
93
- const isBlobOrAbsolute = src.startsWith("blob:") || src.startsWith("http");
94
- if (isBlobOrAbsolute || src.startsWith("/")) return src;
95
- return `${env("API_URL")}/${src}`;
82
+ return normalizeAssetUrl(src);
96
83
  };
97
84
 
98
85
  const authLogoSrc = normalizeAssetUrl(solidSettingsData?.data?.appLogo || "");
86
+ const authBackgroundSrc = solidSideBanner();
99
87
  const appTitle = solidSettingsData?.data?.appTitle || "";
100
88
  const appSubtitle = solidSettingsData?.data?.appSubtitle || "";
101
89
  const appDescription = solidSettingsData?.data?.appDescription || "";
@@ -144,13 +132,13 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
144
132
  const imagePane = (
145
133
  <div
146
134
  className={`solid-auth-image-pane position-relative ${isLeft ? "solid-left-layout pane-on-right" : "solid-right-layout pane-on-left"}`.trim()}
147
- style={{ backgroundImage: `url(${solidSideBanner()})` }}
135
+ style={{ backgroundImage: toCssBackgroundImage(authBackgroundSrc) }}
148
136
  >
149
137
  {solidSettingsData?.data?.appLogoPosition === "in_image_view" &&
150
138
  <div className={`solid-logo flex items-center gap-4 ${solidSettingsData?.data?.appLogoPosition}`}>
151
139
  <Image
152
140
  alt="solid logo"
153
- src={solidSettingsData?.data?.appLogo || SolidLogo}
141
+ src={normalizeAssetUrl(solidSettingsData?.data?.appLogo) || SolidLogo}
154
142
  className="relative"
155
143
  fill
156
144
  />
@@ -172,7 +160,25 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
172
160
 
173
161
  return (
174
162
  <AuthSettingsContext.Provider value={authSettingsContextValue}>
175
- <div className={`solid-auth-theme-wrapper ${authLayout} auth-theme-${authTheme}`} data-auth-theme={authTheme}>
163
+ <div
164
+ className={`solid-auth-theme-wrapper ${authLayout} auth-theme-${authTheme}`}
165
+ data-auth-theme={authTheme}
166
+ style={isCenter ? { position: "relative" } : undefined}
167
+ >
168
+ {isCenter && authBackgroundSrc ? (
169
+ <div
170
+ aria-hidden="true"
171
+ style={{
172
+ position: "absolute",
173
+ inset: 0,
174
+ zIndex: 0,
175
+ backgroundImage: toCssBackgroundImage(authBackgroundSrc),
176
+ backgroundPosition: "center",
177
+ backgroundRepeat: "no-repeat",
178
+ backgroundSize: "cover",
179
+ }}
180
+ />
181
+ ) : null}
176
182
  <SolidToastProvider />
177
183
  {!isCenter && (
178
184
  <div className="solid-auth-split">
@@ -181,7 +187,7 @@ export const AuthLayout = ({ children }: { children: React.ReactNode }) => {
181
187
  {isRight && formPane}
182
188
  </div>
183
189
  )}
184
- {isCenter && <div className="solid-center-layout">
190
+ {isCenter && <div className="solid-center-layout" style={{ position: "relative", zIndex: 1 }}>
185
191
  <div className="solid-auth-center-stack">
186
192
  {renderBrand("center")}
187
193
  {showAuthContent &&
@@ -40,7 +40,7 @@ export var BackButton = function () {
40
40
  }
41
41
  var storedView = sessionStorage.getItem("fromView");
42
42
  var fromView = "list";
43
- if (storedView === "list" || storedView === "kanban" || storedView === "card") {
43
+ if (storedView === "list" || storedView === "kanban" || storedView === "card" || storedView === "tree") {
44
44
  fromView = storedView;
45
45
  }
46
46
  var targetView = fromView || "list";
@@ -1 +1 @@
1
- {"version":3,"file":"BackButton.js","sourceRoot":"","sources":["../../../src/components/common/BackButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,MAAM,CAAC,IAAM,UAAU,GAAG;IACtB,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErD,+BAA+B;IAC/B,0CAA0C;IAC1C,qDAAqD;IACrD,sBAAsB;IACtB,iCAAiC;IACjC,eAAe;IACf,6CAA6C;IAC7C,yBAAyB;IACzB,QAAQ;IACR,KAAK;IAGL,4EAA4E;IAE5E,oBAAoB;IACpB,2CAA2C;IAC3C,iEAAiE;IACjE,kEAAkE;IAClE,uCAAuC;IACvC,YAAY;IACZ,QAAQ;IACR,UAAU;IAEV,IAAM,YAAY,GAAG;QACjB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3E,IAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,+FAA+F;YAC/F,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBAC/B,IAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC5D,IAAI,aAAa,EAAE;oBACf,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3B,OAAO;iBACV;aACJ;YAED,IAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,QAAQ,GAAG,MAAM,CAAA;YACrB,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,MAAM,EAAE;gBAC3E,QAAQ,GAAG,UAAU,CAAC;aACzB;YACD,IAAM,UAAU,GAAG,QAAQ,IAAI,MAAM,CAAC;YACtC,IAAM,SAAS,GAAG,sBAAe,UAAU,cAAI,SAAS,cAAI,UAAU,CAAE,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1B;aAAM;YACH,kCAAkC;YAClC,MAAM,CAAC,IAAI,EAAE,CAAC;SACjB;IACL,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,WAAW,IACR,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EACjC,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,QAAQ,gBACF,MAAM,EACjB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,wEAAwE,GACpF,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["\n\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { ArrowLeft } from \"lucide-react\";\nimport { SolidButton } from \"../shad-cn-ui\";\nexport const BackButton = () => {\n const router = useRouter();\n const pathname = usePathname();\n const segments = pathname.split(\"/\").filter(Boolean);\n\n // const handleGoBack = () => {\n // let fromView: string | null = null;\n // fromView = sessionStorage.getItem(\"fromView\");\n // if (fromView) {\n // router.push(fromView);\n // } else {\n // // fallback if path is not matched\n // router.back();\n // }\n // };\n\n\n // const [fromView, setFromView] = useState<\"list\" | \"kanban\" | null>(null);\n\n // useEffect(() => {\n // if (typeof window !== \"undefined\") {\n // const storedView = sessionStorage.getItem(\"fromView\");\n // if (storedView === \"list\" || storedView === \"kanban\") {\n // setFromView(storedView);\n // }\n // }\n // }, []);\n\n const handleGoBack = () => {\n if (segments.length >= 4 && segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n // Prefer a fully qualified stored return URL (preserves query params like actionId/actionName)\n if (typeof window !== \"undefined\") {\n const storedFullUrl = sessionStorage.getItem(\"fromViewUrl\");\n if (storedFullUrl) {\n router.push(storedFullUrl);\n return;\n }\n }\n\n const storedView = sessionStorage.getItem(\"fromView\");\n let fromView = \"list\"\n if (storedView === \"list\" || storedView === \"kanban\" || storedView === \"card\") {\n fromView = storedView;\n }\n const targetView = fromView || \"list\";\n const targetUrl = `/admin/core/${moduleName}/${modelName}/${targetView}`;\n router.push(targetUrl);\n } else {\n // fallback if path is not matched\n router.back();\n }\n };\n\n return (\n <SolidButton\n variant=\"ghost\"\n leftIcon={<ArrowLeft size={14} />}\n size=\"small\"\n type=\"button\"\n aria-label=\"Back\"\n onClick={handleGoBack}\n className='max-w-2rem bg-[var(--primary-color-text)] text-color solid-icon-button'\n />\n )\n}\n"]}
1
+ {"version":3,"file":"BackButton.js","sourceRoot":"","sources":["../../../src/components/common/BackButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,MAAM,CAAC,IAAM,UAAU,GAAG;IACtB,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErD,+BAA+B;IAC/B,0CAA0C;IAC1C,qDAAqD;IACrD,sBAAsB;IACtB,iCAAiC;IACjC,eAAe;IACf,6CAA6C;IAC7C,yBAAyB;IACzB,QAAQ;IACR,KAAK;IAGL,4EAA4E;IAE5E,oBAAoB;IACpB,2CAA2C;IAC3C,iEAAiE;IACjE,kEAAkE;IAClE,uCAAuC;IACvC,YAAY;IACZ,QAAQ;IACR,UAAU;IAEV,IAAM,YAAY,GAAG;QACjB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;YAC3E,IAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,+FAA+F;YAC/F,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBAC/B,IAAM,aAAa,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC5D,IAAI,aAAa,EAAE;oBACf,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC3B,OAAO;iBACV;aACJ;YAED,IAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,QAAQ,GAAG,MAAM,CAAA;YACrB,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,EAAE;gBACpG,QAAQ,GAAG,UAAU,CAAC;aACzB;YACD,IAAM,UAAU,GAAG,QAAQ,IAAI,MAAM,CAAC;YACtC,IAAM,SAAS,GAAG,sBAAe,UAAU,cAAI,SAAS,cAAI,UAAU,CAAE,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1B;aAAM;YACH,kCAAkC;YAClC,MAAM,CAAC,IAAI,EAAE,CAAC;SACjB;IACL,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,WAAW,IACR,OAAO,EAAC,OAAO,EACf,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EACjC,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,QAAQ,gBACF,MAAM,EACjB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,wEAAwE,GACpF,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["\n\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { ArrowLeft } from \"lucide-react\";\nimport { SolidButton } from \"../shad-cn-ui\";\nexport const BackButton = () => {\n const router = useRouter();\n const pathname = usePathname();\n const segments = pathname.split(\"/\").filter(Boolean);\n\n // const handleGoBack = () => {\n // let fromView: string | null = null;\n // fromView = sessionStorage.getItem(\"fromView\");\n // if (fromView) {\n // router.push(fromView);\n // } else {\n // // fallback if path is not matched\n // router.back();\n // }\n // };\n\n\n // const [fromView, setFromView] = useState<\"list\" | \"kanban\" | null>(null);\n\n // useEffect(() => {\n // if (typeof window !== \"undefined\") {\n // const storedView = sessionStorage.getItem(\"fromView\");\n // if (storedView === \"list\" || storedView === \"kanban\") {\n // setFromView(storedView);\n // }\n // }\n // }, []);\n\n const handleGoBack = () => {\n if (segments.length >= 4 && segments[0] === \"admin\" && segments[1] === \"core\") {\n const moduleName = segments[2];\n const modelName = segments[3];\n // Prefer a fully qualified stored return URL (preserves query params like actionId/actionName)\n if (typeof window !== \"undefined\") {\n const storedFullUrl = sessionStorage.getItem(\"fromViewUrl\");\n if (storedFullUrl) {\n router.push(storedFullUrl);\n return;\n }\n }\n\n const storedView = sessionStorage.getItem(\"fromView\");\n let fromView = \"list\"\n if (storedView === \"list\" || storedView === \"kanban\" || storedView === \"card\" || storedView === \"tree\") {\n fromView = storedView;\n }\n const targetView = fromView || \"list\";\n const targetUrl = `/admin/core/${moduleName}/${modelName}/${targetView}`;\n router.push(targetUrl);\n } else {\n // fallback if path is not matched\n router.back();\n }\n };\n\n return (\n <SolidButton\n variant=\"ghost\"\n leftIcon={<ArrowLeft size={14} />}\n size=\"small\"\n type=\"button\"\n aria-label=\"Back\"\n onClick={handleGoBack}\n className='max-w-2rem bg-[var(--primary-color-text)] text-color solid-icon-button'\n />\n )\n}\n"]}
@@ -47,7 +47,7 @@ export const BackButton = () => {
47
47
 
48
48
  const storedView = sessionStorage.getItem("fromView");
49
49
  let fromView = "list"
50
- if (storedView === "list" || storedView === "kanban" || storedView === "card") {
50
+ if (storedView === "list" || storedView === "kanban" || storedView === "card" || storedView === "tree") {
51
51
  fromView = storedView;
52
52
  }
53
53
  const targetView = fromView || "list";
@@ -25,7 +25,7 @@ export var SolidCancelButton = function () {
25
25
  fromView = sessionStorage.getItem("fromView");
26
26
  }
27
27
  // Default to 'list' if not available
28
- var view = fromView === "kanban" || fromView === "card" ? fromView : "list";
28
+ var view = fromView === "kanban" || fromView === "card" || fromView === "tree" ? fromView : "list";
29
29
  // Navigate back to the previous path with the appropriate view type
30
30
  var newPath = pathname.replace(/\/form\/[^/]+$/, "/".concat(view));
31
31
  router.push(newPath);
@@ -1 +1 @@
1
- {"version":3,"file":"CancelButton.js","sourceRoot":"","sources":["../../../src/components/common/CancelButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,IAAM,YAAY,GAAG;IACxB,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC,CAAC,uBAAuB;IAEvD,IAAM,YAAY,GAAG;QACjB,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;QACxF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,wGAAwG;YACxG,gFAAgF;YAChF,MAAM,CAAC,IAAI,EAAE,CAAA;SAChB;IACL,CAAC,CAAC;IACF,OAAO,CACH,wBACI,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,gCAAgC,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,sBAErI,GACZ,CACT,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAC7B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC,CAAC,uBAAuB;IAEvD,IAAM,YAAY,GAAG;QACjB,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC/B,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACjD;QAED,qCAAqC;QACrC,IAAM,IAAI,GAAG,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAE9E,oEAAoE;QACpE,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAI,IAAI,CAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,iDAAiD;QACjD,kBAAkB;QAClB,6BAA6B;QAC7B,WAAW;QACX,yCAAyC;QACzC,qBAAqB;QACrB,IAAI;IACR,CAAC,CAAC;IACF,OAAO,CACH,8BAGI,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,+CAA+C,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,sBAEpJ,EAGd,KAAC,WAAW,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,iEAAiE,GAAG,IACzK,CACN,CAAA;AACL,CAAC,CAAA","sourcesContent":["\n\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { X } from \"lucide-react\";\nimport { SolidButton } from \"../shad-cn-ui\";\n\n\nexport const CancelButton = () => {\n const router = useRouter();\n const pathname = usePathname(); // Get the current path\n\n const handleGoBack = () => {\n const segments = pathname.split('/').filter(Boolean); // Split and filter empty segments\n if (segments.length > 1) {\n // const newPath = '/' + segments.slice(0, -1).join('/') + '/all'; // Remove last segment and add \"/all\"\n // router.push(newPath); // Navigate to the parent route with \"/all\" \n router.back()\n }\n };\n return (\n <div>\n <SolidButton variant=\"outline\" size=\"small\" type=\"button\" onClick={handleGoBack} className='bg-[var(--primary-color-text)]' style={{ minWidth: 66 }}>\n Close\n </SolidButton>\n </div>\n )\n}\n\nexport const SolidCancelButton = () => {\n const router = useRouter();\n const pathname = usePathname(); // Get the current path\n\n const handleGoBack = () => {\n let fromView: string | null = null;\n if (typeof window !== \"undefined\") {\n fromView = sessionStorage.getItem(\"fromView\");\n }\n\n // Default to 'list' if not available\n const view = fromView === \"kanban\" || fromView === \"card\" ? fromView : \"list\";\n\n // Navigate back to the previous path with the appropriate view type\n const newPath = pathname.replace(/\\/form\\/[^/]+$/, `/${view}`);\n router.push(newPath);\n // fromView = sessionStorage.getItem(\"fromView\");\n // if (fromView) {\n // router.push(fromView);\n // } else {\n // // fallback if path is not matched\n // router.back();\n // }\n };\n return (\n <>\n {/* <div className=\"hidden lg:flex\"> */}\n {/* <div> */}\n <SolidButton variant=\"outline\" size=\"small\" type=\"button\" onClick={handleGoBack} className='hidden bg-[var(--primary-color-text)] lg:flex' style={{ minWidth: 66 }}>\n Close\n </SolidButton>\n {/* </div> */}\n {/* </div> */}\n <SolidButton size=\"small\" type=\"button\" leftIcon={<X size={14} />} onClick={handleGoBack} className='solid-icon-button flex bg-[var(--primary-color-text)] lg:hidden' />\n </>\n )\n}\n"]}
1
+ {"version":3,"file":"CancelButton.js","sourceRoot":"","sources":["../../../src/components/common/CancelButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,CAAC,IAAM,YAAY,GAAG;IACxB,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC,CAAC,uBAAuB;IAEvD,IAAM,YAAY,GAAG;QACjB,IAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;QACxF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,wGAAwG;YACxG,gFAAgF;YAChF,MAAM,CAAC,IAAI,EAAE,CAAA;SAChB;IACL,CAAC,CAAC;IACF,OAAO,CACH,wBACI,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,gCAAgC,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,sBAErI,GACZ,CACT,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAC7B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC,CAAC,uBAAuB;IAEvD,IAAM,YAAY,GAAG;QACjB,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC/B,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACjD;QAED,qCAAqC;QACrC,IAAM,IAAI,GAAG,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAC,MAAM,CAAC;QAEpG,oEAAoE;QACpE,IAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAI,IAAI,CAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,iDAAiD;QACjD,kBAAkB;QAClB,6BAA6B;QAC7B,WAAW;QACX,yCAAyC;QACzC,qBAAqB;QACrB,IAAI;IACR,CAAC,CAAC;IACF,OAAO,CACH,8BAGI,KAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,+CAA+C,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,sBAEpJ,EAGd,KAAC,WAAW,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,iEAAiE,GAAG,IACzK,CACN,CAAA;AACL,CAAC,CAAA","sourcesContent":["\n\nimport { usePathname } from \"../../hooks/usePathname\";\nimport { useRouter } from \"../../hooks/useRouter\";\nimport { X } from \"lucide-react\";\nimport { SolidButton } from \"../shad-cn-ui\";\n\n\nexport const CancelButton = () => {\n const router = useRouter();\n const pathname = usePathname(); // Get the current path\n\n const handleGoBack = () => {\n const segments = pathname.split('/').filter(Boolean); // Split and filter empty segments\n if (segments.length > 1) {\n // const newPath = '/' + segments.slice(0, -1).join('/') + '/all'; // Remove last segment and add \"/all\"\n // router.push(newPath); // Navigate to the parent route with \"/all\" \n router.back()\n }\n };\n return (\n <div>\n <SolidButton variant=\"outline\" size=\"small\" type=\"button\" onClick={handleGoBack} className='bg-[var(--primary-color-text)]' style={{ minWidth: 66 }}>\n Close\n </SolidButton>\n </div>\n )\n}\n\nexport const SolidCancelButton = () => {\n const router = useRouter();\n const pathname = usePathname(); // Get the current path\n\n const handleGoBack = () => {\n let fromView: string | null = null;\n if (typeof window !== \"undefined\") {\n fromView = sessionStorage.getItem(\"fromView\");\n }\n\n // Default to 'list' if not available\n const view = fromView === \"kanban\" || fromView === \"card\" || fromView === \"tree\" ? fromView: \"list\";\n\n // Navigate back to the previous path with the appropriate view type\n const newPath = pathname.replace(/\\/form\\/[^/]+$/, `/${view}`);\n router.push(newPath);\n // fromView = sessionStorage.getItem(\"fromView\");\n // if (fromView) {\n // router.push(fromView);\n // } else {\n // // fallback if path is not matched\n // router.back();\n // }\n };\n return (\n <>\n {/* <div className=\"hidden lg:flex\"> */}\n {/* <div> */}\n <SolidButton variant=\"outline\" size=\"small\" type=\"button\" onClick={handleGoBack} className='hidden bg-[var(--primary-color-text)] lg:flex' style={{ minWidth: 66 }}>\n Close\n </SolidButton>\n {/* </div> */}\n {/* </div> */}\n <SolidButton size=\"small\" type=\"button\" leftIcon={<X size={14} />} onClick={handleGoBack} className='solid-icon-button flex bg-[var(--primary-color-text)] lg:hidden' />\n </>\n )\n}\n"]}
@@ -38,7 +38,7 @@ export const SolidCancelButton = () => {
38
38
  }
39
39
 
40
40
  // Default to 'list' if not available
41
- const view = fromView === "kanban" || fromView === "card" ? fromView : "list";
41
+ const view = fromView === "kanban" || fromView === "card" || fromView === "tree" ? fromView: "list";
42
42
 
43
43
  // Navigate back to the previous path with the appropriate view type
44
44
  const newPath = pathname.replace(/\/form\/[^/]+$/, `/${view}`);
@@ -1 +1 @@
1
- {"version":3,"file":"GeneralSettings.d.ts","sourceRoot":"","sources":["../../../src/components/common/GeneralSettings.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,eAAe,+CA4zC3B,CAAA"}
1
+ {"version":3,"file":"GeneralSettings.d.ts","sourceRoot":"","sources":["../../../src/components/common/GeneralSettings.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,eAAe,+CAuxC3B,CAAA"}
@@ -63,8 +63,8 @@ import { SettingsImageRemoveButton } from './SolidSettings/SettingsImageRemoveBu
63
63
  import { ModelConfigTab, ProvidersTab, ensureBuiltInProviders } from './SolidSettings/LlmSettings/AiModelConfigTab';
64
64
  import { useDispatch } from 'react-redux';
65
65
  import { ERROR_MESSAGES } from '../../constants/error-messages';
66
+ import { normalizeAssetUrl } from '../../helpers/assetUrl';
66
67
  import { useBulkUpdateSolidSettingsMutation, useLazyGetSolidSettingsQuery } from '../../redux/api/solidSettingsApi';
67
- import { env } from "../../adapters/env";
68
68
  import { showToast } from "../../redux/features/toastSlice";
69
69
  export var GeneralSettings = function () {
70
70
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50;
@@ -417,12 +417,7 @@ export var GeneralSettings = function () {
417
417
  : formik.values.appLogo
418
418
  ? formik.values.appLogo
419
419
  : logoSrc;
420
- var isBlobOrAbsolute = (src === null || src === void 0 ? void 0 : src.startsWith("blob:")) ||
421
- (src === null || src === void 0 ? void 0 : src.startsWith("http"));
422
- if (!isBlobOrAbsolute && !src.startsWith("/")) {
423
- src = "".concat(env("API_URL"), "/").concat(src);
424
- }
425
- return (_jsx(SolidUploadedImage, { src: src, className: "solid-app-logo" }));
420
+ return (_jsx(SolidUploadedImage, { src: normalizeAssetUrl(src), className: "solid-app-logo" }));
426
421
  })() }), formik.values.appLogo && (_jsx(SettingsImageRemoveButton, { onClick: removeAppLogo }))] })] }), _jsxs("div", { className: "w-full md:w-1/2 px-2 pt-2", children: [_jsx("p", { className: "solid-settings-subheading", children: "Company Logo" }), _jsxs("div", { children: [_jsxs("div", __assign({}, getCompanyLogoRootProps(), { className: "solid-dropzone-wrapper", style: { borderRadius: 8 }, children: [_jsx("input", __assign({}, getCompanyLogoInputProps())), _jsx(SettingDropzoneActivePlaceholder, {})] })), _jsx("div", { className: "mt-2", children: (function () {
427
422
  var logoSrc = SolidLogo.src || SolidLogo;
428
423
  var src = companyLogoPreview
@@ -430,12 +425,7 @@ export var GeneralSettings = function () {
430
425
  : formik.values.companylogo
431
426
  ? formik.values.companylogo
432
427
  : logoSrc;
433
- var isBlobOrAbsolute = (src === null || src === void 0 ? void 0 : src.startsWith("blob:")) ||
434
- (src === null || src === void 0 ? void 0 : src.startsWith("http"));
435
- if (!isBlobOrAbsolute && !src.startsWith("/")) {
436
- src = "".concat(env("API_URL"), "/").concat(src);
437
- }
438
- return (_jsx(SolidUploadedImage, { src: src, className: "solid-compony-logo" }));
428
+ return (_jsx(SolidUploadedImage, { src: normalizeAssetUrl(src), className: "solid-compony-logo" }));
439
429
  })() }), formik.values.companylogo && (_jsx(SettingsImageRemoveButton, { onClick: removeCompanyLogo }))] })] })] }) }) }), _jsx("p", { className: "solid-settings-heading", children: "App Logo Position" }), _jsx("div", { className: "flex flex-wrap -mx-2 -mt-2", children: _jsx("div", { className: "w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2", children: _jsx("div", { className: "flex", children: _jsx(SolidSegmentedControl, { className: "solid-settings-segmented", value: formik.values.appLogoPosition, options: [
440
430
  { value: "in_form_view", label: "In Form View" },
441
431
  { value: "in_image_view", label: "In Image View" },
@@ -494,13 +484,7 @@ export var GeneralSettings = function () {
494
484
  ? formik.values
495
485
  .authScreenLeftBackgroundImage
496
486
  : logoSrc;
497
- var isBlobOrAbsolute = (src === null || src === void 0 ? void 0 : src.startsWith("blob:")) ||
498
- (src === null || src === void 0 ? void 0 : src.startsWith("http"));
499
- if (!isBlobOrAbsolute &&
500
- !src.startsWith("/")) {
501
- src = "".concat(env("API_URL"), "/").concat(src);
502
- }
503
- return (_jsx(SolidUploadedImage, { src: src, height: 400, width: 400, maxHeight: 400 }));
487
+ return (_jsx(SolidUploadedImage, { src: normalizeAssetUrl(src), height: 400, width: 400, maxHeight: 400 }));
504
488
  })() }), formik.values.authScreenLeftBackgroundImage && (_jsx(SettingsImageRemoveButton, { onClick: removeAuthScreenLeftBackgroundImage }))] })), formik.values.authPagesLayout === "right" && (_jsxs("div", { children: [_jsxs("div", __assign({}, getAuthScreenRightBackgroundImageRootProps(), { className: "solid-dropzone-wrapper", style: { borderRadius: 8 }, children: [_jsx("input", __assign({}, getAuthScreenRightBackgroundImageInputProps())), _jsx(SettingDropzoneActivePlaceholder, { note: "Recommended: 724×724px | Aspect ratio: 1:1" })] })), _jsx("div", { className: "mt-2", children: (function () {
505
489
  var logoSrc = AuthScreenRightBackgroundImage
506
490
  .src || AuthScreenRightBackgroundImage;
@@ -511,13 +495,7 @@ export var GeneralSettings = function () {
511
495
  ? formik.values
512
496
  .authScreenRightBackgroundImage
513
497
  : logoSrc;
514
- var isBlobOrAbsolute = (src === null || src === void 0 ? void 0 : src.startsWith("blob:")) ||
515
- (src === null || src === void 0 ? void 0 : src.startsWith("http"));
516
- if (!isBlobOrAbsolute &&
517
- !src.startsWith("/")) {
518
- src = "".concat(env("API_URL"), "/").concat(src);
519
- }
520
- return (_jsx(SolidUploadedImage, { src: src, height: 400, width: 400, maxHeight: 400 }));
498
+ return (_jsx(SolidUploadedImage, { src: normalizeAssetUrl(src), height: 400, width: 400, maxHeight: 400 }));
521
499
  })() }), formik.values.authScreenRightBackgroundImage && (_jsx(SettingsImageRemoveButton, { onClick: removeAuthScreenRightBackgroundImage }))] })), formik.values.authPagesLayout === "center" && (_jsxs("div", { children: [_jsxs("div", __assign({}, getAuthScreenCenterBackgroundImageRootProps(), { className: "solid-dropzone-wrapper", style: { borderRadius: 8 }, children: [_jsx("input", __assign({}, getAuthScreenCenterBackgroundImageInputProps())), _jsx(SettingDropzoneActivePlaceholder, { note: "Recommended: 1440px × 724px | Aspect ratio: 2:1" })] })), _jsx("div", { className: "mt-2", children: (function () {
522
500
  var logoSrc = AuthScreenCenterBackgroundImage
523
501
  .src || AuthScreenCenterBackgroundImage;
@@ -528,12 +506,7 @@ export var GeneralSettings = function () {
528
506
  ? formik.values
529
507
  .authScreenCenterBackgroundImage
530
508
  : logoSrc;
531
- var isBlobOrAbsolute = (src === null || src === void 0 ? void 0 : src.startsWith("blob:")) ||
532
- (src === null || src === void 0 ? void 0 : src.startsWith("http"));
533
- if (!isBlobOrAbsolute && !src.startsWith("/")) {
534
- src = "".concat(env("API_URL"), "/").concat(src);
535
- }
536
- return (_jsx(SolidUploadedImage, { src: src, height: 300, width: 600, maxHeight: 300 }));
509
+ return (_jsx(SolidUploadedImage, { src: normalizeAssetUrl(src), height: 300, width: 600, maxHeight: 300 }));
537
510
  })() }), formik.values.authScreenCenterBackgroundImage && (_jsx(SettingsImageRemoveButton, { onClick: removeAuthScreenCenterBackgroundImage }))] }))] }) }) }) }), _jsx(SolidDivider, { className: "my-6" })] })), pathname.includes("misc-settings") && (_jsxs(_Fragment, { children: [_jsx("p", { className: "solid-settings-heading", children: "Contact Support" }), _jsx("div", { className: 'flex flex-wrap -mx-2 -mt-2', children: _jsx("div", { className: "w-full lg:w-[83.333333%] xl:w-[66.666667%] px-2 pt-2", children: _jsxs("div", { className: 'flex flex-wrap -mx-2 -mt-2', children: [_jsx("div", { className: "w-full md:w-1/2 px-2 pt-2 pb-4 md:pb-0", children: _jsxs("div", { className: "flex flex-wrap items-center -mx-2 -mt-2", children: [_jsx("div", { className: "w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0", children: _jsx("label", { className: "form-field-label", children: "Contact Support Email" }) }), _jsx("div", { className: "w-full md:w-[58.333333%] px-2 pt-2", children: _jsx(SolidInput, { type: "text", id: "contactSupportEmail", name: "contactSupportEmail", onChange: formik.handleChange, value: (_46 = formik.values.contactSupportEmail) !== null && _46 !== void 0 ? _46 : '', className: 'w-full' }) })] }) }), _jsx("div", { className: "w-full md:w-1/2 px-2 pt-2", children: _jsxs("div", { className: "flex flex-wrap items-center -mx-2 -mt-2", children: [_jsx("div", { className: "w-full md:w-[41.666667%] px-2 pt-2 pb-2 md:pb-0", children: _jsx("label", { className: "form-field-label", children: "Display Name" }) }), _jsx("div", { className: "w-full md:w-[58.333333%] px-2 pt-2", children: _jsx(SolidInput, { type: "text", id: "contactSupportDisplayName", name: "contactSupportDisplayName", onChange: formik.handleChange, value: (_47 = formik.values.contactSupportDisplayName) !== null && _47 !== void 0 ? _47 : '', className: 'w-full' }) })] }) })] }) }) })] })), pathname.includes("ai-settings") &&
538
511
  _jsx(AiSettingsSection, { aiConfig: formik.values.solidXGenAiCodeBuilderConfig, onAiConfigChange: handleAiConfigChange }), pathname.includes("api-keys") && ((_48 = session === null || session === void 0 ? void 0 : session.user) === null || _48 === void 0 ? void 0 : _48.id) &&
539
512
  _jsx(ApiKeysTab, { userId: session.user.id, canCreate: (_50 = (_49 = session === null || session === void 0 ? void 0 : session.user) === null || _49 === void 0 ? void 0 : _49.isAllowedToGenerateApiKeys) !== null && _50 !== void 0 ? _50 : false })] })] }) }) }) }));