@steedos/webapp 3.0.13 → 3.0.14-beta.10

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.
@@ -1,4 +1,4 @@
1
- import { c as commonjsGlobal, g as getDefaultExportFromCjs } from "./index-DDjfnPPy.js";
1
+ import { c as commonjsGlobal, g as getDefaultExportFromCjs } from "./index-Ct6XMqeI.js";
2
2
  function _mergeNamespaces(n, m) {
3
3
  for (var i = 0; i < m.length; i++) {
4
4
  const e = m[i];
@@ -34718,7 +34718,7 @@ const LoggedIn = ({ children }) => {
34718
34718
  window.location.origin
34719
34719
  );
34720
34720
  if (!currentUser) {
34721
- navigate("/login?redirect_uri=" + encodeURIComponent(window.location.pathname));
34721
+ navigate("/login?redirect_uri=" + encodeURIComponent(window.location.pathname + window.location.search));
34722
34722
  return;
34723
34723
  }
34724
34724
  if (!currentSpaceId2) {
@@ -40473,9 +40473,10 @@ class Card extends reactExports.Component {
40473
40473
  }
40474
40474
  render() {
40475
40475
  const { platform: platform2 = {} } = this.props.settings;
40476
+ const isOem = platform2.is_oem === true || platform2.is_oem === "true";
40476
40477
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex sm:items-center justify-center mx-auto overflow-auto md:p-10 h-full", children: [
40477
40478
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative rounded p-10 sm:shadow-md bg-white w-screen max-w-md steedos-auth-card", children: this.props.children }),
40478
- platform2.is_oem != true && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute bottom-0 left-0 right-0 text-center pb-6 text-gray-400 text-xs tracking-wide", children: [
40479
+ !isOem && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute bottom-0 left-0 right-0 text-center pb-6 text-gray-400 text-xs tracking-wide", children: [
40479
40480
  /* @__PURE__ */ jsxRuntimeExports.jsx(
40480
40481
  FormattedMessage,
40481
40482
  {
@@ -40488,6 +40489,7 @@ class Card extends reactExports.Component {
40488
40489
  "a",
40489
40490
  {
40490
40491
  className: "text-xs text-gray-400 hover:text-gray-600 hover:underline transition-colors duration-200",
40492
+ title: "privacy",
40491
40493
  href: "javascript:void(0)",
40492
40494
  onClick: this.openPrivacyPage,
40493
40495
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -40514,16 +40516,22 @@ function mapStateToProps$d(state) {
40514
40516
  };
40515
40517
  }
40516
40518
  const Card$1 = connect(mapStateToProps$d)(Card);
40517
- const Logo = ({ tenant, location: location2 }) => {
40519
+ const Logo = ({ tenant, settings: settings2 }) => {
40520
+ const platform2 = settings2?.platform || {};
40521
+ const isOem = platform2?.is_oem === true || platform2?.is_oem === "true";
40522
+ const tenantConfig = settings2?.tenant || {};
40518
40523
  let logoUrl = `${localizeMessage("accounts.logoURL")}`;
40519
- if (tenant.logo_url) {
40524
+ if (isOem && (tenant?.logo_url || tenantConfig?.logo_url)) {
40525
+ logoUrl = tenant?.logo_url || tenantConfig?.logo_url;
40526
+ } else if (tenant?.logo_url) {
40520
40527
  logoUrl = tenant.logo_url;
40521
40528
  }
40522
- return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: logoUrl, className: "h-10" }) });
40529
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: logoUrl, className: "h-10", alt: "logo" }) });
40523
40530
  };
40524
40531
  function mapStateToProps$c(state) {
40525
40532
  return {
40526
- tenant: getTenant(state)
40533
+ tenant: getTenant(state),
40534
+ settings: getSettings(state)
40527
40535
  };
40528
40536
  }
40529
40537
  const Logo$1 = connect(mapStateToProps$c)(Logo);
@@ -48882,7 +48890,7 @@ function finishSignin(currentUser, tenant, location2, navigate) {
48882
48890
  }
48883
48891
  let redirect_uri = new URLSearchParams(location2 ? location2.search : "").get("redirect_uri");
48884
48892
  if (redirect_uri) {
48885
- navigate("/home?redirect_uri=" + redirect_uri);
48893
+ navigate("/home?redirect_uri=" + encodeURIComponent(redirect_uri));
48886
48894
  } else {
48887
48895
  navigate("/home");
48888
48896
  }
@@ -49072,7 +49080,9 @@ class Signup extends React$1.Component {
49072
49080
  this.mobileInput = React$1.createRef();
49073
49081
  this.passwordInput = React$1.createRef();
49074
49082
  window.browserHistory = this.props.history;
49075
- document.title = localizeMessage("accounts.signup") + ` | ${this.props.tenant.name}`;
49083
+ const isOem = this.props.settings?.platform?.is_oem === true || this.props.settings?.platform?.is_oem === "true";
49084
+ const brandName = isOem && this.props.settings?.platform?.licensed_to ? this.props.settings.platform.licensed_to : this.props.tenant.name;
49085
+ document.title = localizeMessage("accounts.signup") + ` | ${brandName}`;
49076
49086
  }
49077
49087
  createLoginPlaceholder = () => {
49078
49088
  let inputLabel = "";
@@ -49584,7 +49594,9 @@ class Login extends React$1.Component {
49584
49594
  this.mobileInput = React$1.createRef();
49585
49595
  this.passwordInput = React$1.createRef();
49586
49596
  window.browserHistory = this.props.history;
49587
- document.title = localizeMessage("accounts.signin") + ` | ${this.props.tenant.name}`;
49597
+ const isOem = this.props.settings?.platform?.is_oem === true || this.props.settings?.platform?.is_oem === "true";
49598
+ const brandName = isOem && this.props.settings?.platform?.licensed_to ? this.props.settings.platform.licensed_to : this.props.tenant.name;
49599
+ document.title = localizeMessage("accounts.signin") + ` | ${brandName}`;
49588
49600
  }
49589
49601
  createLoginPlaceholder = () => {
49590
49602
  let inputLabel = "";
@@ -49831,6 +49843,23 @@ class Login extends React$1.Component {
49831
49843
  };
49832
49844
  componentDidMount() {
49833
49845
  this.initGeetest();
49846
+ const platform2 = this.props.settings?.platform || {};
49847
+ const tenant = this.props.tenant || {};
49848
+ const isOem = platform2.is_oem === true || platform2.is_oem === "true";
49849
+ const faviconUrl = tenant.favicon_url || this.props.settings?.tenant?.favicon_url;
49850
+ if (isOem && faviconUrl) {
49851
+ const faviconLink = document.querySelector('link[rel*="icon"], link[rel*="shortcut"]');
49852
+ if (faviconLink) {
49853
+ if (faviconLink.href !== faviconUrl) {
49854
+ faviconLink.href = faviconUrl;
49855
+ }
49856
+ } else {
49857
+ const newFaviconLink = document.createElement("link");
49858
+ newFaviconLink.rel = "icon";
49859
+ newFaviconLink.href = faviconUrl;
49860
+ document.head.appendChild(newFaviconLink);
49861
+ }
49862
+ }
49834
49863
  }
49835
49864
  render() {
49836
49865
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
@@ -50050,14 +50079,16 @@ const getRedirectUrl = () => {
50050
50079
  };
50051
50080
  const goResetPassword = (navigate) => {
50052
50081
  const redirect2 = getRedirectUrl();
50053
- navigate("/update-password?redirect_uri=" + redirect2);
50082
+ navigate("/update-password?redirect_uri=" + encodeURIComponent(redirect2));
50054
50083
  };
50055
50084
  const Home = () => {
50056
50085
  const navigate = useNavigate();
50057
50086
  const dispatch2 = useDispatch();
50058
50087
  const currentUser = useSelector(getCurrentUser);
50059
50088
  const currentSpace = useSelector(getCurrentSpace);
50060
- document.title = `Steedos`;
50089
+ const isOem = Builder.settings?.platform?.is_oem === true || Builder.settings?.platform?.is_oem === "true";
50090
+ const licensedTo = Builder.settings?.platform?.licensed_to;
50091
+ document.title = isOem && licensedTo ? licensedTo : `Steedos`;
50061
50092
  reactExports.useEffect(() => {
50062
50093
  if (!currentUser) {
50063
50094
  navigate("/login");
@@ -50095,7 +50126,9 @@ class UpdatePassword extends React$1.Component {
50095
50126
  loading: false
50096
50127
  };
50097
50128
  window.browserHistory = this.props.history;
50098
- document.title = localizeMessage("accounts.title.updatePassword") + ` | ${this.props.tenant.name}`;
50129
+ const isOem = this.props.settings?.platform?.is_oem === true || this.props.settings?.platform?.is_oem === "true";
50130
+ const brandName = isOem && this.props.settings?.platform?.licensed_to ? this.props.settings.platform.licensed_to : this.props.tenant.name;
50131
+ document.title = localizeMessage("accounts.title.updatePassword") + ` | ${brandName}`;
50099
50132
  }
50100
50133
  handleOldPasswordChange = (e) => {
50101
50134
  this.setState({
@@ -50970,7 +51003,9 @@ class VerifyEmail extends React$1.Component {
50970
51003
  loading: false
50971
51004
  };
50972
51005
  window.browserHistory = this.props.history;
50973
- document.title = localizeMessage(`accounts.verify_${verifyBy}`) + ` | ${this.props.tenant.name}`;
51006
+ const isOem = this.props.settings?.platform?.is_oem === true || this.props.settings?.platform?.is_oem === "true";
51007
+ const brandName = isOem && this.props.settings?.platform?.licensed_to ? this.props.settings.platform.licensed_to : this.props.tenant.name;
51008
+ document.title = localizeMessage(`accounts.verify_${verifyBy}`) + ` | ${brandName}`;
50974
51009
  }
50975
51010
  handleEmailChange = (e) => {
50976
51011
  this.setState({
@@ -51257,7 +51292,9 @@ class VerifyMobile extends React$1.Component {
51257
51292
  disabledSendVerificationstate: this.props.settings.tenant.enable_open_geetest || false
51258
51293
  };
51259
51294
  window.browserHistory = this.props.history;
51260
- document.title = localizeMessage(`accounts.verify_${verifyBy}`) + ` | ${this.props.tenant.name}`;
51295
+ const isOem = this.props.settings?.platform?.is_oem === true || this.props.settings?.platform?.is_oem === "true";
51296
+ const brandName = isOem && this.props.settings?.platform?.licensed_to ? this.props.settings.platform.licensed_to : this.props.tenant.name;
51297
+ document.title = localizeMessage(`accounts.verify_${verifyBy}`) + ` | ${brandName}`;
51261
51298
  }
51262
51299
  handleEmailChange = (e) => {
51263
51300
  this.setState({
@@ -51542,6 +51579,39 @@ const withRouter = (props) => {
51542
51579
  return /* @__PURE__ */ jsxRuntimeExports.jsx(VerifyMobile, { ...props, location: location2, navigate });
51543
51580
  };
51544
51581
  const VerifyMobile$1 = connect(mapStateToProps$2, mapDispatchToProps$2)(withRouter);
51582
+ function recordIfGridListUrl() {
51583
+ try {
51584
+ const pathname = window.location.pathname;
51585
+ if (/^\/app\/[^/]+\/[^/]+\/grid\/[^/]+/.test(pathname)) {
51586
+ sessionStorage.setItem("steedos_last_list_url", pathname + window.location.search);
51587
+ return;
51588
+ }
51589
+ const objMatch = pathname.match(/^\/app\/[^/]+\/[^/]+(\/(view|grid)\/([^/?#]+))?/);
51590
+ const isThreePaneList = objMatch && objMatch[2] === "view" && objMatch[3] === "none";
51591
+ const isOutsideObjectPage = !objMatch || !objMatch[1];
51592
+ if (isThreePaneList || isOutsideObjectPage) {
51593
+ sessionStorage.removeItem("steedos_last_list_url");
51594
+ }
51595
+ } catch (e) {
51596
+ }
51597
+ }
51598
+ if (typeof window !== "undefined" && !window.__steedosLastListUrlPatched) {
51599
+ window.__steedosLastListUrlPatched = true;
51600
+ const _push = history.pushState;
51601
+ const _replace = history.replaceState;
51602
+ history.pushState = function() {
51603
+ const r2 = _push.apply(this, arguments);
51604
+ recordIfGridListUrl();
51605
+ return r2;
51606
+ };
51607
+ history.replaceState = function() {
51608
+ const r2 = _replace.apply(this, arguments);
51609
+ recordIfGridListUrl();
51610
+ return r2;
51611
+ };
51612
+ window.addEventListener("popstate", recordIfGridListUrl);
51613
+ recordIfGridListUrl();
51614
+ }
51545
51615
  const normalizeLink = (to, location2 = window.location) => {
51546
51616
  to = to || "";
51547
51617
  if (to && to[0] === "#") {
@@ -51582,14 +51652,37 @@ const AmisRender = function({ schema = {}, data: data2 = {}, env: env2 = {} }) {
51582
51652
  if (window._appNavCount > 0) {
51583
51653
  window._appNavCount--;
51584
51654
  navigate(-1);
51585
- } else {
51586
- const pathname = window.location.pathname;
51587
- const match2 = pathname.match(/^(\/app\/[^/]+\/[^/]+)(\/view\/.*)?$/);
51588
- if (match2 && match2[2]) {
51589
- navigate(match2[1]);
51590
- } else {
51591
- navigate(-1);
51655
+ return;
51656
+ }
51657
+ const pathname = window.location.pathname;
51658
+ const objMatch = pathname.match(/^(\/app\/[^/]+\/[^/]+)(\/(view|grid)\/.*)?$/);
51659
+ try {
51660
+ const lastListUrl = sessionStorage.getItem("steedos_last_list_url");
51661
+ if (lastListUrl && objMatch && lastListUrl.startsWith(objMatch[1] + "/grid/")) {
51662
+ sessionStorage.removeItem("steedos_last_list_url");
51663
+ navigate(lastListUrl);
51664
+ return;
51665
+ }
51666
+ } catch (e) {
51667
+ }
51668
+ try {
51669
+ const appMatch = pathname.match(/^\/app\/([^/]+)\//);
51670
+ if (appMatch) {
51671
+ const raw = sessionStorage.getItem(`steedos_last_active_tab:${appMatch[1]}`);
51672
+ if (raw) {
51673
+ const rec = JSON.parse(raw);
51674
+ if (rec && rec.path && rec.path !== pathname) {
51675
+ navigate(rec.path);
51676
+ return;
51677
+ }
51678
+ }
51592
51679
  }
51680
+ } catch (e) {
51681
+ }
51682
+ if (objMatch && objMatch[2]) {
51683
+ navigate(objMatch[1]);
51684
+ } else {
51685
+ navigate(-1);
51593
51686
  }
51594
51687
  };
51595
51688
  }
@@ -51627,6 +51720,33 @@ const AmisRender = function({ schema = {}, data: data2 = {}, env: env2 = {} }) {
51627
51720
  linkPathname = link2.substring(0, idx);
51628
51721
  linkSearch = link2.substring(idx);
51629
51722
  }
51723
+ const decodedPathname = decodeURI(pathname);
51724
+ const decodedLink = decodeURI(linkPathname);
51725
+ const _navPaths = window._steedosNavPaths || [];
51726
+ const hasExactNavLinkForCurrentPath = _navPaths.some((p) => {
51727
+ try {
51728
+ return decodeURI(p) === decodedPathname;
51729
+ } catch (e) {
51730
+ return p === pathname;
51731
+ }
51732
+ });
51733
+ const detailMatch = pathname.match(/^\/app\/([^/]+)\/[^/]+\/view\/([^/?#]+)/);
51734
+ if (!hasExactNavLinkForCurrentPath && detailMatch && detailMatch[2] !== "none") {
51735
+ try {
51736
+ const raw = sessionStorage.getItem(`steedos_last_active_tab:${detailMatch[1]}`);
51737
+ if (raw) {
51738
+ const rec = JSON.parse(raw);
51739
+ if (rec && rec.path && rec.tabId) {
51740
+ const recPathOnly = String(rec.path).split("?")[0].split("#")[0];
51741
+ if (decodedLink === decodeURI(recPathOnly)) {
51742
+ return true;
51743
+ }
51744
+ return false;
51745
+ }
51746
+ }
51747
+ } catch (e) {
51748
+ }
51749
+ }
51630
51750
  if (linkSearch) {
51631
51751
  if (linkPathname !== pathname) {
51632
51752
  return false;
@@ -51645,8 +51765,6 @@ const AmisRender = function({ schema = {}, data: data2 = {}, env: env2 = {} }) {
51645
51765
  });
51646
51766
  return allMatch;
51647
51767
  }
51648
- const decodedPathname = decodeURI(pathname);
51649
- const decodedLink = decodeURI(linkPathname);
51650
51768
  if (decodedPathname === decodedLink) {
51651
51769
  return true;
51652
51770
  }
@@ -54622,6 +54740,23 @@ const AppView = () => {
54622
54740
  }, [appId, navigate]);
54623
54741
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {});
54624
54742
  };
54743
+ const isTrueValue = (value2) => value2 === true || value2 === "true";
54744
+ const setBrowserFavicon = (faviconUrl) => {
54745
+ if (!faviconUrl) {
54746
+ return;
54747
+ }
54748
+ const faviconLink = document.querySelector('link[rel*="icon"], link[rel*="shortcut"]');
54749
+ if (faviconLink) {
54750
+ if (faviconLink.href !== faviconUrl) {
54751
+ faviconLink.href = faviconUrl;
54752
+ }
54753
+ return;
54754
+ }
54755
+ const newFaviconLink = document.createElement("link");
54756
+ newFaviconLink.rel = "icon";
54757
+ newFaviconLink.href = faviconUrl;
54758
+ document.head.appendChild(newFaviconLink);
54759
+ };
54625
54760
  const getHeaderSchema = (props) => {
54626
54761
  const { logoSrc, customButtons, className } = props;
54627
54762
  const isMobile = window.innerWidth <= 768;
@@ -54787,9 +54922,24 @@ const AppHeader = () => {
54787
54922
  const location2 = useLocation();
54788
54923
  const searchParams = new URLSearchParams(location2.search);
54789
54924
  const params = useParams();
54790
- let { appId = null, objectName } = params;
54925
+ let { appId = null } = params;
54791
54926
  const isMobile = window.innerWidth < 1024;
54792
54927
  let [app, setApp] = reactExports.useState(null);
54928
+ const isOem = isTrueValue(Builder$1.settings?.platform?.is_oem);
54929
+ const oemSpaceAvatar = Builder$1.settings?.context?.user?.space?.avatar;
54930
+ const oemSpaceFavicon = Builder$1.settings?.context?.user?.space?.favicon;
54931
+ reactExports.useEffect(() => {
54932
+ if (isOem) {
54933
+ document.body.classList.add("is-oem");
54934
+ } else {
54935
+ document.body.classList.remove("is-oem");
54936
+ }
54937
+ }, [isOem]);
54938
+ reactExports.useEffect(() => {
54939
+ if (isOem && oemSpaceFavicon) {
54940
+ setBrowserFavicon(`/api/v6/files/cfs.avatars.filerecord/${oemSpaceFavicon}`);
54941
+ }
54942
+ }, [isOem, oemSpaceFavicon]);
54793
54943
  reactExports.useEffect(() => {
54794
54944
  const fetchApp = async () => {
54795
54945
  if (appId === "-" || appId == null) {
@@ -54862,21 +55012,8 @@ const AppHeader = () => {
54862
55012
  return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {});
54863
55013
  }
54864
55014
  let logoSrc = "/images/logo.svg";
54865
- if (Builder$1.settings?.platform?.is_oem && Builder$1.settings?.context?.user?.space?.avatar) {
54866
- logoSrc = "/api/v6/files/cfs.avatars.filerecord/" + Builder$1.settings.context.user.space.avatar;
54867
- }
54868
- const faviconLink = document.querySelector('link[rel*="icon"], link[rel*="shortcut"]');
54869
- let favicon = "/images/logo.svg";
54870
- if (Builder$1.settings?.platform?.is_oem && Builder$1.settings?.context?.user?.space?.favicon) {
54871
- favicon = "/api/v6/files/cfs.avatars.filerecord/" + Builder$1.settings.context.user.space.favicon;
54872
- }
54873
- if (faviconLink) {
54874
- faviconLink.href = favicon;
54875
- } else {
54876
- const newFaviconLink = document.createElement("link");
54877
- newFaviconLink.rel = "icon";
54878
- newFaviconLink.href = favicon;
54879
- document.head.appendChild(newFaviconLink);
55015
+ if (isOem && oemSpaceAvatar) {
55016
+ logoSrc = "/api/v6/files/cfs.avatars.filerecord/" + oemSpaceAvatar;
54880
55017
  }
54881
55018
  const headerSchema = getHeaderSchema({ logoSrc });
54882
55019
  const schema = {
@@ -55118,6 +55255,26 @@ const ObjectDetail = () => {
55118
55255
  }, env: {} });
55119
55256
  };
55120
55257
  const isString = (val) => typeof val === "string";
55258
+ const RUNTIME_CONTEXT_KEYS = [
55259
+ "appId",
55260
+ "app",
55261
+ "app_id",
55262
+ "recordId",
55263
+ "record_id",
55264
+ "objectName",
55265
+ "object_name",
55266
+ "context"
55267
+ ];
55268
+ const stripRuntimeContext = (schema) => {
55269
+ if (schema && typeof schema === "object" && schema.data && typeof schema.data === "object") {
55270
+ for (const key2 of RUNTIME_CONTEXT_KEYS) {
55271
+ if (key2 in schema.data) {
55272
+ delete schema.data[key2];
55273
+ }
55274
+ }
55275
+ }
55276
+ return schema;
55277
+ };
55121
55278
  function injectServerCss(cssString) {
55122
55279
  const oldStyle = document.getElementById("dynamic-page-styles");
55123
55280
  if (oldStyle) {
@@ -55165,6 +55322,7 @@ const PageView = () => {
55165
55322
  console.error("Schema parse failed", e);
55166
55323
  }
55167
55324
  }
55325
+ finalSchema = stripRuntimeContext(finalSchema);
55168
55326
  setSchema(finalSchema);
55169
55327
  } catch (err) {
55170
55328
  console.error("Fetch schema failed", err);
@@ -80670,6 +80828,22 @@ if (_window["Steedos"]) {
80670
80828
  }
80671
80829
  const Root = (props) => {
80672
80830
  const [configLoaded, setConfigLoaded] = reactExports.useState(false);
80831
+ const setBrowserFavicon2 = (faviconUrl) => {
80832
+ if (!faviconUrl) {
80833
+ return;
80834
+ }
80835
+ const faviconLink = document.querySelector('link[rel*="icon"], link[rel*="shortcut"]');
80836
+ if (faviconLink) {
80837
+ if (faviconLink.href !== faviconUrl) {
80838
+ faviconLink.href = faviconUrl;
80839
+ }
80840
+ return;
80841
+ }
80842
+ const newFaviconLink = document.createElement("link");
80843
+ newFaviconLink.rel = "icon";
80844
+ newFaviconLink.href = faviconUrl;
80845
+ document.head.appendChild(newFaviconLink);
80846
+ };
80673
80847
  reactExports.useEffect(() => {
80674
80848
  const uid2 = new URLSearchParams(window.location.search).get("uid");
80675
80849
  if (uid2) {
@@ -80688,12 +80862,23 @@ const Root = (props) => {
80688
80862
  }, []);
80689
80863
  reactExports.useEffect(() => {
80690
80864
  if (props.tenant && props.tenant.favicon_url) {
80691
- const faviconLink = document.querySelector('link[rel="shortcut icon"]');
80692
- if (faviconLink) {
80693
- faviconLink.href = props.tenant.favicon_url;
80865
+ setBrowserFavicon2(props.tenant.favicon_url);
80866
+ try {
80867
+ localStorage.setItem("steedos_favicon_url", props.tenant.favicon_url);
80868
+ } catch (e) {
80694
80869
  }
80695
80870
  }
80696
- }, [props.tenant]);
80871
+ const isOem = props.settings?.platform?.is_oem === true || props.settings?.platform?.is_oem === "true";
80872
+ if (isOem) {
80873
+ document.body.classList.add("is-oem");
80874
+ const licensedTo = Builder$1.settings?.platform?.licensed_to;
80875
+ if (licensedTo) {
80876
+ document.title = licensedTo;
80877
+ }
80878
+ } else {
80879
+ document.body.classList.remove("is-oem");
80880
+ }
80881
+ }, [props.tenant, props.settings]);
80697
80882
  if (!configLoaded) {
80698
80883
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", {});
80699
80884
  }
@@ -81383,7 +81568,7 @@ if (typeof ActiveXObject === "function") {
81383
81568
  if (typeof fetchApi !== "function") fetchApi = void 0;
81384
81569
  if (!fetchApi && !XmlHttpRequestApi && !ActiveXObjectApi) {
81385
81570
  try {
81386
- __vitePreload(() => import("./browser-ponyfill-DV3aC_wh.js").then((n) => n.b), true ? [] : void 0).then(function(mod) {
81571
+ __vitePreload(() => import("./browser-ponyfill-CGATudUg.js").then((n) => n.b), true ? [] : void 0).then(function(mod) {
81387
81572
  fetchApi = mod.default;
81388
81573
  }).catch(function() {
81389
81574
  });
@@ -949,9 +949,6 @@ video {
949
949
  .prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
950
950
  margin-bottom: 0;
951
951
  }
952
- .pointer-events-none {
953
- pointer-events: none;
954
- }
955
952
  .visible {
956
953
  visibility: visible;
957
954
  }
@@ -986,9 +983,6 @@ video {
986
983
  left: 0px;
987
984
  right: 0px;
988
985
  }
989
- .-bottom-32 {
990
- bottom: -8rem;
991
- }
992
986
  .bottom-0 {
993
987
  bottom: 0px;
994
988
  }
@@ -998,9 +992,6 @@ video {
998
992
  .left-0 {
999
993
  left: 0px;
1000
994
  }
1001
- .left-20 {
1002
- left: 5rem;
1003
- }
1004
995
  .right-0 {
1005
996
  right: 0px;
1006
997
  }
@@ -1185,11 +1176,11 @@ video {
1185
1176
  .mt-auto {
1186
1177
  margin-top: auto;
1187
1178
  }
1188
- .line-clamp-1 {
1179
+ .line-clamp-2 {
1189
1180
  overflow: hidden;
1190
1181
  display: -webkit-box;
1191
1182
  -webkit-box-orient: vertical;
1192
- -webkit-line-clamp: 1;
1183
+ -webkit-line-clamp: 2;
1193
1184
  }
1194
1185
  .line-clamp-3 {
1195
1186
  overflow: hidden;
@@ -1230,15 +1221,9 @@ video {
1230
1221
  .\!h-10 {
1231
1222
  height: 2.5rem !important;
1232
1223
  }
1233
- .h-1\/2 {
1234
- height: 50%;
1235
- }
1236
1224
  .h-10 {
1237
1225
  height: 2.5rem;
1238
1226
  }
1239
- .h-11 {
1240
- height: 2.75rem;
1241
- }
1242
1227
  .h-12 {
1243
1228
  height: 3rem;
1244
1229
  }
@@ -1248,9 +1233,6 @@ video {
1248
1233
  .h-16 {
1249
1234
  height: 4rem;
1250
1235
  }
1251
- .h-20 {
1252
- height: 5rem;
1253
- }
1254
1236
  .h-3 {
1255
1237
  height: 0.75rem;
1256
1238
  }
@@ -1284,9 +1266,6 @@ video {
1284
1266
  .h-\[260px\] {
1285
1267
  height: 260px;
1286
1268
  }
1287
- .h-\[500px\] {
1288
- height: 500px;
1289
- }
1290
1269
  .h-\[64px\] {
1291
1270
  height: 64px;
1292
1271
  }
@@ -1323,9 +1302,6 @@ video {
1323
1302
  .w-10 {
1324
1303
  width: 2.5rem;
1325
1304
  }
1326
- .w-11 {
1327
- width: 2.75rem;
1328
- }
1329
1305
  .w-12 {
1330
1306
  width: 3rem;
1331
1307
  }
@@ -1335,9 +1311,6 @@ video {
1335
1311
  .w-16 {
1336
1312
  width: 4rem;
1337
1313
  }
1338
- .w-20 {
1339
- width: 5rem;
1340
- }
1341
1314
  .w-3 {
1342
1315
  width: 0.75rem;
1343
1316
  }
@@ -1380,9 +1353,6 @@ video {
1380
1353
  .w-\[24rem\] {
1381
1354
  width: 24rem;
1382
1355
  }
1383
- .w-\[500px\] {
1384
- width: 500px;
1385
- }
1386
1356
  .w-auto {
1387
1357
  width: auto;
1388
1358
  }
@@ -1413,8 +1383,8 @@ video {
1413
1383
  .min-w-\[460px\] {
1414
1384
  min-width: 460px;
1415
1385
  }
1416
- .max-w-6xl {
1417
- max-width: 72rem;
1386
+ .max-w-5xl {
1387
+ max-width: 64rem;
1418
1388
  }
1419
1389
  .max-w-7xl {
1420
1390
  max-width: 80rem;
@@ -1559,12 +1529,16 @@ video {
1559
1529
  .gap-6 {
1560
1530
  gap: 1.5rem;
1561
1531
  }
1532
+ .gap-x-5 {
1533
+ -moz-column-gap: 1.25rem;
1534
+ column-gap: 1.25rem;
1535
+ }
1562
1536
  .gap-x-6 {
1563
1537
  -moz-column-gap: 1.5rem;
1564
1538
  column-gap: 1.5rem;
1565
1539
  }
1566
- .gap-y-10 {
1567
- row-gap: 2.5rem;
1540
+ .gap-y-8 {
1541
+ row-gap: 2rem;
1568
1542
  }
1569
1543
  .space-x-1 > :not([hidden]) ~ :not([hidden]) {
1570
1544
  --tw-space-x-reverse: 0;
@@ -1638,9 +1612,6 @@ video {
1638
1612
  .rounded-2xl {
1639
1613
  border-radius: 1rem;
1640
1614
  }
1641
- .rounded-\[1\.6rem\] {
1642
- border-radius: 1.6rem;
1643
- }
1644
1615
  .rounded-full {
1645
1616
  border-radius: 9999px;
1646
1617
  }
@@ -1663,10 +1634,6 @@ video {
1663
1634
  border-bottom-right-radius: 0.375rem;
1664
1635
  border-bottom-left-radius: 0.375rem;
1665
1636
  }
1666
- .rounded-t-\[1\.6rem\] {
1667
- border-top-left-radius: 1.6rem;
1668
- border-top-right-radius: 1.6rem;
1669
- }
1670
1637
  .rounded-t-md {
1671
1638
  border-top-left-radius: 0.375rem;
1672
1639
  border-top-right-radius: 0.375rem;
@@ -1766,6 +1733,10 @@ video {
1766
1733
  --tw-border-opacity: 1;
1767
1734
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
1768
1735
  }
1736
+ .border-neutral-300 {
1737
+ --tw-border-opacity: 1;
1738
+ border-color: rgb(212 212 212 / var(--tw-border-opacity, 1));
1739
+ }
1769
1740
  .border-orange-200 {
1770
1741
  --tw-border-opacity: 1;
1771
1742
  border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));
@@ -1782,10 +1753,6 @@ video {
1782
1753
  --tw-border-opacity: 1;
1783
1754
  border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
1784
1755
  }
1785
- .border-slate-300 {
1786
- --tw-border-opacity: 1;
1787
- border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
1788
- }
1789
1756
  .border-slate-50 {
1790
1757
  --tw-border-opacity: 1;
1791
1758
  border-color: rgb(248 250 252 / var(--tw-border-opacity, 1));
@@ -1796,17 +1763,14 @@ video {
1796
1763
  .\!bg-transparent {
1797
1764
  background-color: transparent !important;
1798
1765
  }
1799
- .bg-\[\#F5F7FA\] {
1766
+ .bg-amber-500 {
1800
1767
  --tw-bg-opacity: 1;
1801
- background-color: rgb(245 247 250 / var(--tw-bg-opacity, 1));
1768
+ background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
1802
1769
  }
1803
1770
  .bg-blue-100 {
1804
1771
  --tw-bg-opacity: 1;
1805
1772
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
1806
1773
  }
1807
- .bg-blue-300\/30 {
1808
- background-color: rgb(147 197 253 / 0.3);
1809
- }
1810
1774
  .bg-blue-50 {
1811
1775
  --tw-bg-opacity: 1;
1812
1776
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
@@ -1819,10 +1783,18 @@ video {
1819
1783
  --tw-bg-opacity: 1;
1820
1784
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
1821
1785
  }
1786
+ .bg-cyan-500 {
1787
+ --tw-bg-opacity: 1;
1788
+ background-color: rgb(6 182 212 / var(--tw-bg-opacity, 1));
1789
+ }
1822
1790
  .bg-cyan-600 {
1823
1791
  --tw-bg-opacity: 1;
1824
1792
  background-color: rgb(8 145 178 / var(--tw-bg-opacity, 1));
1825
1793
  }
1794
+ .bg-emerald-500 {
1795
+ --tw-bg-opacity: 1;
1796
+ background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
1797
+ }
1826
1798
  .bg-gray-100 {
1827
1799
  --tw-bg-opacity: 1;
1828
1800
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
@@ -1855,24 +1827,34 @@ video {
1855
1827
  --tw-bg-opacity: 1;
1856
1828
  background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
1857
1829
  }
1830
+ .bg-neutral-100 {
1831
+ --tw-bg-opacity: 1;
1832
+ background-color: rgb(245 245 245 / var(--tw-bg-opacity, 1));
1833
+ }
1834
+ .bg-neutral-500 {
1835
+ --tw-bg-opacity: 1;
1836
+ background-color: rgb(115 115 115 / var(--tw-bg-opacity, 1));
1837
+ }
1858
1838
  .bg-orange-100 {
1859
1839
  --tw-bg-opacity: 1;
1860
1840
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
1861
1841
  }
1842
+ .bg-orange-500 {
1843
+ --tw-bg-opacity: 1;
1844
+ background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));
1845
+ }
1862
1846
  .bg-orange-600 {
1863
1847
  --tw-bg-opacity: 1;
1864
1848
  background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1));
1865
1849
  }
1866
- .bg-pink-300\/30 {
1867
- background-color: rgb(249 168 212 / 0.3);
1850
+ .bg-pink-500 {
1851
+ --tw-bg-opacity: 1;
1852
+ background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1));
1868
1853
  }
1869
1854
  .bg-pink-600 {
1870
1855
  --tw-bg-opacity: 1;
1871
1856
  background-color: rgb(219 39 119 / var(--tw-bg-opacity, 1));
1872
1857
  }
1873
- .bg-purple-300\/30 {
1874
- background-color: rgb(216 180 254 / 0.3);
1875
- }
1876
1858
  .bg-purple-600 {
1877
1859
  --tw-bg-opacity: 1;
1878
1860
  background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
@@ -1885,10 +1867,18 @@ video {
1885
1867
  --tw-bg-opacity: 1;
1886
1868
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
1887
1869
  }
1870
+ .bg-red-500 {
1871
+ --tw-bg-opacity: 1;
1872
+ background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
1873
+ }
1888
1874
  .bg-red-600 {
1889
1875
  --tw-bg-opacity: 1;
1890
1876
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
1891
1877
  }
1878
+ .bg-sky-500 {
1879
+ --tw-bg-opacity: 1;
1880
+ background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));
1881
+ }
1892
1882
  .bg-sky-600 {
1893
1883
  --tw-bg-opacity: 1;
1894
1884
  background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));
@@ -1905,27 +1895,26 @@ video {
1905
1895
  --tw-bg-opacity: 1;
1906
1896
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
1907
1897
  }
1898
+ .bg-teal-500 {
1899
+ --tw-bg-opacity: 1;
1900
+ background-color: rgb(20 184 166 / var(--tw-bg-opacity, 1));
1901
+ }
1908
1902
  .bg-teal-600 {
1909
1903
  --tw-bg-opacity: 1;
1910
1904
  background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1));
1911
1905
  }
1906
+ .bg-violet-500 {
1907
+ --tw-bg-opacity: 1;
1908
+ background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
1909
+ }
1912
1910
  .bg-white {
1913
1911
  --tw-bg-opacity: 1;
1914
1912
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1915
1913
  }
1916
- .bg-white\/50 {
1917
- background-color: rgb(255 255 255 / 0.5);
1918
- }
1919
1914
  .bg-yellow-600 {
1920
1915
  --tw-bg-opacity: 1;
1921
1916
  background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));
1922
1917
  }
1923
- .bg-gradient-to-b {
1924
- background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
1925
- }
1926
- .bg-gradient-to-br {
1927
- background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
1928
- }
1929
1918
  .bg-gradient-to-r {
1930
1919
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
1931
1920
  }
@@ -1935,107 +1924,23 @@ video {
1935
1924
  .bg-none {
1936
1925
  background-image: none;
1937
1926
  }
1938
- .from-amber-400 {
1939
- --tw-gradient-from: #fbbf24 var(--tw-gradient-from-position);
1940
- --tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position);
1941
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1942
- }
1943
- .from-blue-400 {
1944
- --tw-gradient-from: #60a5fa var(--tw-gradient-from-position);
1945
- --tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position);
1946
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1947
- }
1948
1927
  .from-blue-600 {
1949
1928
  --tw-gradient-from: #2563eb var(--tw-gradient-from-position);
1950
1929
  --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);
1951
1930
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1952
1931
  }
1953
- .from-cyan-400 {
1954
- --tw-gradient-from: #22d3ee var(--tw-gradient-from-position);
1955
- --tw-gradient-to: rgb(34 211 238 / 0) var(--tw-gradient-to-position);
1956
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1957
- }
1958
- .from-green-400 {
1959
- --tw-gradient-from: #4ade80 var(--tw-gradient-from-position);
1960
- --tw-gradient-to: rgb(74 222 128 / 0) var(--tw-gradient-to-position);
1961
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1962
- }
1963
- .from-orange-400 {
1964
- --tw-gradient-from: #fb923c var(--tw-gradient-from-position);
1965
- --tw-gradient-to: rgb(251 146 60 / 0) var(--tw-gradient-to-position);
1966
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1967
- }
1968
- .from-pink-400 {
1969
- --tw-gradient-from: #f472b6 var(--tw-gradient-from-position);
1970
- --tw-gradient-to: rgb(244 114 182 / 0) var(--tw-gradient-to-position);
1971
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1972
- }
1973
- .from-red-400 {
1974
- --tw-gradient-from: #f87171 var(--tw-gradient-from-position);
1975
- --tw-gradient-to: rgb(248 113 113 / 0) var(--tw-gradient-to-position);
1976
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1977
- }
1978
- .from-sky-400 {
1979
- --tw-gradient-from: #38bdf8 var(--tw-gradient-from-position);
1980
- --tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);
1981
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1982
- }
1983
- .from-slate-500 {
1984
- --tw-gradient-from: #64748b var(--tw-gradient-from-position);
1985
- --tw-gradient-to: rgb(100 116 139 / 0) var(--tw-gradient-to-position);
1986
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1987
- }
1988
- .from-teal-400 {
1989
- --tw-gradient-from: #2dd4bf var(--tw-gradient-from-position);
1990
- --tw-gradient-to: rgb(45 212 191 / 0) var(--tw-gradient-to-position);
1991
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1992
- }
1993
- .from-violet-400 {
1994
- --tw-gradient-from: #a78bfa var(--tw-gradient-from-position);
1995
- --tw-gradient-to: rgb(167 139 250 / 0) var(--tw-gradient-to-position);
1996
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1997
- }
1998
1932
  .from-white {
1999
1933
  --tw-gradient-from: #fff var(--tw-gradient-from-position);
2000
1934
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
2001
1935
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
2002
1936
  }
2003
- .from-white\/20 {
2004
- --tw-gradient-from: rgb(255 255 255 / 0.2) var(--tw-gradient-from-position);
2005
- --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
2006
- --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
2007
- }
2008
1937
  .via-white\/95 {
2009
1938
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
2010
1939
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.95) var(--tw-gradient-via-position), var(--tw-gradient-to);
2011
1940
  }
2012
- .to-blue-500 {
2013
- --tw-gradient-to: #3b82f6 var(--tw-gradient-to-position);
2014
- }
2015
- .to-emerald-600 {
2016
- --tw-gradient-to: #059669 var(--tw-gradient-to-position);
2017
- }
2018
1941
  .to-indigo-600 {
2019
1942
  --tw-gradient-to: #4f46e5 var(--tw-gradient-to-position);
2020
1943
  }
2021
- .to-orange-500 {
2022
- --tw-gradient-to: #f97316 var(--tw-gradient-to-position);
2023
- }
2024
- .to-purple-600 {
2025
- --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
2026
- }
2027
- .to-red-500 {
2028
- --tw-gradient-to: #ef4444 var(--tw-gradient-to-position);
2029
- }
2030
- .to-rose-600 {
2031
- --tw-gradient-to: #e11d48 var(--tw-gradient-to-position);
2032
- }
2033
- .to-slate-700 {
2034
- --tw-gradient-to: #334155 var(--tw-gradient-to-position);
2035
- }
2036
- .to-teal-600 {
2037
- --tw-gradient-to: #0d9488 var(--tw-gradient-to-position);
2038
- }
2039
1944
  .to-transparent {
2040
1945
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
2041
1946
  }
@@ -2215,12 +2120,12 @@ video {
2215
2120
  .pt-2 {
2216
2121
  padding-top: 0.5rem;
2217
2122
  }
2123
+ .pt-24 {
2124
+ padding-top: 6rem;
2125
+ }
2218
2126
  .pt-3 {
2219
2127
  padding-top: 0.75rem;
2220
2128
  }
2221
- .pt-32 {
2222
- padding-top: 8rem;
2223
- }
2224
2129
  .pt-4 {
2225
2130
  padding-top: 1rem;
2226
2131
  }
@@ -2397,6 +2302,22 @@ video {
2397
2302
  --tw-text-opacity: 1;
2398
2303
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
2399
2304
  }
2305
+ .text-neutral-300 {
2306
+ --tw-text-opacity: 1;
2307
+ color: rgb(212 212 212 / var(--tw-text-opacity, 1));
2308
+ }
2309
+ .text-neutral-400 {
2310
+ --tw-text-opacity: 1;
2311
+ color: rgb(163 163 163 / var(--tw-text-opacity, 1));
2312
+ }
2313
+ .text-neutral-500 {
2314
+ --tw-text-opacity: 1;
2315
+ color: rgb(115 115 115 / var(--tw-text-opacity, 1));
2316
+ }
2317
+ .text-neutral-800 {
2318
+ --tw-text-opacity: 1;
2319
+ color: rgb(38 38 38 / var(--tw-text-opacity, 1));
2320
+ }
2400
2321
  .text-orange-600 {
2401
2322
  --tw-text-opacity: 1;
2402
2323
  color: rgb(234 88 12 / var(--tw-text-opacity, 1));
@@ -2480,8 +2401,8 @@ video {
2480
2401
  .opacity-50 {
2481
2402
  opacity: 0.5;
2482
2403
  }
2483
- .opacity-70 {
2484
- opacity: 0.7;
2404
+ .opacity-60 {
2405
+ opacity: 0.6;
2485
2406
  }
2486
2407
  .opacity-75 {
2487
2408
  opacity: 0.75;
@@ -2489,9 +2410,6 @@ video {
2489
2410
  .opacity-90 {
2490
2411
  opacity: 0.9;
2491
2412
  }
2492
- .mix-blend-multiply {
2493
- mix-blend-mode: multiply;
2494
- }
2495
2413
  .shadow {
2496
2414
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
2497
2415
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
@@ -2522,14 +2440,6 @@ video {
2522
2440
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
2523
2441
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
2524
2442
  }
2525
- .shadow-amber-500\/20 {
2526
- --tw-shadow-color: rgb(245 158 11 / 0.2);
2527
- --tw-shadow: var(--tw-shadow-colored);
2528
- }
2529
- .shadow-blue-500\/20 {
2530
- --tw-shadow-color: rgb(59 130 246 / 0.2);
2531
- --tw-shadow: var(--tw-shadow-colored);
2532
- }
2533
2443
  .shadow-blue-500\/30 {
2534
2444
  --tw-shadow-color: rgb(59 130 246 / 0.3);
2535
2445
  --tw-shadow: var(--tw-shadow-colored);
@@ -2538,42 +2448,6 @@ video {
2538
2448
  --tw-shadow-color: rgb(30 58 138 / 0.1);
2539
2449
  --tw-shadow: var(--tw-shadow-colored);
2540
2450
  }
2541
- .shadow-cyan-500\/20 {
2542
- --tw-shadow-color: rgb(6 182 212 / 0.2);
2543
- --tw-shadow: var(--tw-shadow-colored);
2544
- }
2545
- .shadow-green-500\/20 {
2546
- --tw-shadow-color: rgb(34 197 94 / 0.2);
2547
- --tw-shadow: var(--tw-shadow-colored);
2548
- }
2549
- .shadow-orange-500\/20 {
2550
- --tw-shadow-color: rgb(249 115 22 / 0.2);
2551
- --tw-shadow: var(--tw-shadow-colored);
2552
- }
2553
- .shadow-pink-500\/20 {
2554
- --tw-shadow-color: rgb(236 72 153 / 0.2);
2555
- --tw-shadow: var(--tw-shadow-colored);
2556
- }
2557
- .shadow-red-500\/20 {
2558
- --tw-shadow-color: rgb(239 68 68 / 0.2);
2559
- --tw-shadow: var(--tw-shadow-colored);
2560
- }
2561
- .shadow-sky-500\/20 {
2562
- --tw-shadow-color: rgb(14 165 233 / 0.2);
2563
- --tw-shadow: var(--tw-shadow-colored);
2564
- }
2565
- .shadow-slate-500\/20 {
2566
- --tw-shadow-color: rgb(100 116 139 / 0.2);
2567
- --tw-shadow: var(--tw-shadow-colored);
2568
- }
2569
- .shadow-teal-500\/20 {
2570
- --tw-shadow-color: rgb(20 184 166 / 0.2);
2571
- --tw-shadow: var(--tw-shadow-colored);
2572
- }
2573
- .shadow-violet-500\/20 {
2574
- --tw-shadow-color: rgb(139 92 246 / 0.2);
2575
- --tw-shadow: var(--tw-shadow-colored);
2576
- }
2577
2451
  .blur {
2578
2452
  --tw-blur: blur(8px);
2579
2453
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
@@ -2582,14 +2456,6 @@ video {
2582
2456
  --tw-blur: blur(64px);
2583
2457
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2584
2458
  }
2585
- .blur-\[80px\] {
2586
- --tw-blur: blur(80px);
2587
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2588
- }
2589
- .drop-shadow-sm {
2590
- --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
2591
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2592
- }
2593
2459
  .grayscale {
2594
2460
  --tw-grayscale: grayscale(100%);
2595
2461
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
@@ -2597,10 +2463,6 @@ video {
2597
2463
  .filter {
2598
2464
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
2599
2465
  }
2600
- .backdrop-blur-sm {
2601
- --tw-backdrop-blur: blur(4px);
2602
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
2603
- }
2604
2466
  .transition {
2605
2467
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
2606
2468
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -3065,9 +2927,9 @@ video {
3065
2927
  --tw-translate-y: 0px;
3066
2928
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
3067
2929
  }
3068
- .group:hover .group-hover\:text-slate-900 {
2930
+ .group:hover .group-hover\:text-neutral-800 {
3069
2931
  --tw-text-opacity: 1;
3070
- color: rgb(15 23 42 / var(--tw-text-opacity, 1));
2932
+ color: rgb(38 38 38 / var(--tw-text-opacity, 1));
3071
2933
  }
3072
2934
  @media (min-width: 640px) {
3073
2935
 
@@ -3238,20 +3100,28 @@ video {
3238
3100
  display: block;
3239
3101
  }
3240
3102
 
3241
- .md\:h-14 {
3242
- height: 3.5rem;
3103
+ .md\:h-10 {
3104
+ height: 2.5rem;
3105
+ }
3106
+
3107
+ .md\:h-9 {
3108
+ height: 2.25rem;
3243
3109
  }
3244
3110
 
3245
- .md\:h-24 {
3246
- height: 6rem;
3111
+ .md\:h-\[72px\] {
3112
+ height: 72px;
3247
3113
  }
3248
3114
 
3249
- .md\:w-14 {
3250
- width: 3.5rem;
3115
+ .md\:w-10 {
3116
+ width: 2.5rem;
3251
3117
  }
3252
3118
 
3253
- .md\:w-24 {
3254
- width: 6rem;
3119
+ .md\:w-9 {
3120
+ width: 2.25rem;
3121
+ }
3122
+
3123
+ .md\:w-\[72px\] {
3124
+ width: 72px;
3255
3125
  }
3256
3126
 
3257
3127
  .md\:grid-cols-5 {
@@ -3271,9 +3141,9 @@ video {
3271
3141
  line-height: 2rem;
3272
3142
  }
3273
3143
 
3274
- .md\:text-sm {
3275
- font-size: 0.875rem;
3276
- line-height: 1.25rem;
3144
+ .md\:text-xs {
3145
+ font-size: 0.75rem;
3146
+ line-height: 1rem;
3277
3147
  }
3278
3148
  }
3279
3149
  @media (min-width: 1024px) {
@@ -3345,6 +3215,10 @@ video {
3345
3215
  .xl\:grid-cols-5 {
3346
3216
  grid-template-columns: repeat(5, minmax(0, 1fr));
3347
3217
  }
3218
+
3219
+ .xl\:grid-cols-8 {
3220
+ grid-template-columns: repeat(8, minmax(0, 1fr));
3221
+ }
3348
3222
  }
3349
3223
  @media (min-width: 1536px) {
3350
3224
 
@@ -29,6 +29,18 @@ html {
29
29
  display: none;
30
30
  }
31
31
 
32
+ /* OEM 模式下隐藏右上角“关于/帮助”入口 */
33
+ body.is-oem [data-item-id="about"],
34
+ body.is-oem [data-item-id="help"],
35
+ body.is-oem [data-key="about"],
36
+ body.is-oem [data-key="help"],
37
+ body.is-oem [title="关于"],
38
+ body.is-oem [title="帮助"],
39
+ body.is-oem [title="About"],
40
+ body.is-oem [title="Help"] {
41
+ display: none !important;
42
+ }
43
+
32
44
  /* :root {
33
45
  --body-bg: rgb(225, 239, 254);
34
46
  } */
package/dist/index.html CHANGED
@@ -3,6 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <link rel="shortcut icon" href="/images/logo.svg" />
6
+ <script>try{var f=localStorage.getItem('steedos_favicon_url');if(f){document.querySelector('link[rel*="icon"]').href=f;}}catch(e){}</script>
6
7
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
8
  <title>Steedos</title>
8
9
 
@@ -65,8 +66,8 @@
65
66
  <link rel="stylesheet" href="https://unpkg.com/@steedos-widgets/amis@6.3.0-patch.8/lib/themes/antd.css">
66
67
  <link rel="stylesheet" href="https://unpkg.com/@steedos-widgets/amis@6.3.0-patch.8/lib/helper.css">
67
68
  <link rel="stylesheet" href="https://unpkg.com/@steedos-widgets/amis@6.3.0-patch.8/sdk/iconfont.css">
68
- <script type="module" crossorigin src="/assets/index-DDjfnPPy.js"></script>
69
- <link rel="stylesheet" crossorigin href="/assets/index-Np5NzHbA.css">
69
+ <script type="module" crossorigin src="/assets/index-Ct6XMqeI.js"></script>
70
+ <link rel="stylesheet" crossorigin href="/assets/index-DR9C1Zsh.css">
70
71
  </head>
71
72
  <body class="skin-blue-light fixed steedos sidebar-mini three-columns" >
72
73
  <div id="root" class="steedos skin-blue-light creator h-full flex flex-col relative overflow-hidden bg-slate-50"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/webapp",
3
- "version": "3.0.13",
3
+ "version": "3.0.14-beta.10",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -75,9 +75,9 @@
75
75
  "access": "public"
76
76
  },
77
77
  "repository": "https://github.com/steedos/app-builder/tree/master/apps/accounts",
78
- "gitHead": "a71381a476ebd1183cd2c7096005b7d99820e21c",
78
+ "gitHead": "f508d51da8f6f0436fba72aab808563dbadcb6ba",
79
79
  "dependencies": {
80
- "@steedos-widgets/amis-object": "^6.10.52",
80
+ "@steedos-widgets/amis-object": "^6.10.53-beta.6",
81
81
  "autoprefixer": "^10.4.23"
82
82
  }
83
83
  }