@realiizlabs/admin 0.15.4 → 0.15.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/shell/index.cjs +31 -14
- package/dist/shell/index.cjs.map +1 -1
- package/dist/shell/index.d.cts +1 -1
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +31 -14
- package/dist/shell/index.js.map +1 -1
- package/dist/studio/index.cjs +1 -1
- package/dist/studio/index.js +1 -1
- package/dist/studio-ui/index.cjs +133 -57
- package/dist/studio-ui/index.cjs.map +1 -1
- package/dist/studio-ui/index.d.cts +16 -4
- package/dist/studio-ui/index.d.ts +16 -4
- package/dist/studio-ui/index.js +132 -58
- package/dist/studio-ui/index.js.map +1 -1
- package/package.json +2 -2
package/dist/studio/index.cjs
CHANGED
package/dist/studio/index.js
CHANGED
package/dist/studio-ui/index.cjs
CHANGED
|
@@ -495,7 +495,7 @@ var SHELL_CSS = `
|
|
|
495
495
|
/* ---- account menu --------------------------------------------------- */
|
|
496
496
|
.rz-avatar__img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
|
|
497
497
|
.rz-tabs { display: flex; gap: .25rem; border-bottom: 1px solid var(--border); margin: 0 0 1.5rem; flex-wrap: wrap; }
|
|
498
|
-
.rz-tabs__tab { padding: .55rem .9rem; font: inherit; font-size: .88rem; color: var(--text-secondary); background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; }
|
|
498
|
+
.rz-tabs__tab { padding: .55rem .9rem; font: inherit; font-size: .88rem; color: var(--text-secondary); background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; white-space: nowrap; }
|
|
499
499
|
.rz-tabs__tab:hover { color: var(--text-primary); }
|
|
500
500
|
.rz-tabs__tab[aria-selected="true"] { color: var(--text-primary); border-bottom-color: var(--signal); font-weight: 600; }
|
|
501
501
|
.rz-tabs__tab:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; border-radius: 4px; }
|
|
@@ -516,22 +516,33 @@ var SHELL_CSS = `
|
|
|
516
516
|
.rz-seg button { font: inherit; font-size: .75rem; padding: .15rem .55rem; line-height: 1.3; background: transparent; color: var(--text-secondary); border: 0; cursor: pointer; }
|
|
517
517
|
.rz-seg button[aria-pressed="true"] { background: var(--surface-3); color: var(--text-primary); }
|
|
518
518
|
|
|
519
|
-
/* ---- mobile: sidebar becomes a
|
|
519
|
+
/* ---- mobile: the sidebar becomes a fixed bottom bar, icons only ------- */
|
|
520
520
|
@media (max-width: 720px) {
|
|
521
|
+
.rz-admin { --rz-bottombar: calc(56px + env(safe-area-inset-bottom, 0px)); }
|
|
521
522
|
.rz-body { flex-direction: column; }
|
|
522
|
-
.rz-sidebar, .rz-sidebar--collapsed {
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
523
|
+
.rz-sidebar, .rz-sidebar--collapsed {
|
|
524
|
+
position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 30;
|
|
525
|
+
width: 100%; height: var(--rz-bottombar); padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
526
|
+
flex-direction: row; align-items: stretch;
|
|
527
|
+
border-right: 0; border-top: 1px solid var(--border); box-shadow: 0 -6px 16px rgba(14,23,38,.06);
|
|
528
|
+
}
|
|
529
|
+
/* Both nav groups dissolve into the bar so every icon gets an equal share of the width. */
|
|
530
|
+
.rz-sidebar__nav, .rz-sidebar__pinned { display: contents; }
|
|
531
|
+
.rz-sidebar__item { flex: 1 1 0; justify-content: center; padding: 0; min-width: 0; border-radius: 0; }
|
|
532
|
+
.rz-sidebar__item svg { width: 22px; height: 22px; }
|
|
533
|
+
.rz-sidebar__item--active { background: transparent; box-shadow: inset 0 2px 0 var(--signal); }
|
|
534
|
+
/* Labels stay in the accessibility tree but not on screen. */
|
|
535
|
+
.rz-sidebar__label, .rz-sidebar--collapsed .rz-sidebar__label { display: block; position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
|
|
536
|
+
.rz-sidebar__collapse, .rz-sidebar__version, .rz-sidebar__item--disabled { display: none; }
|
|
528
537
|
.rz-topbar__greeting { display: none; }
|
|
529
|
-
.rz-content { padding: 18px 14px
|
|
530
|
-
/*
|
|
531
|
-
|
|
532
|
-
.rz-
|
|
533
|
-
|
|
534
|
-
.rz-
|
|
538
|
+
.rz-content { padding: 18px 14px calc(var(--rz-bottombar) + 24px); }
|
|
539
|
+
/* Section tabs: one row that scrolls sideways (bleeding to the screen edges), scrollbar hidden,
|
|
540
|
+
a fade on the right so it's clear there's more; the active tab is scrolled into view. */
|
|
541
|
+
.rz-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; margin-left: -14px; margin-right: -14px; padding: 0 14px; -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 2.5rem), transparent); }
|
|
542
|
+
.rz-tabs::-webkit-scrollbar { display: none; }
|
|
543
|
+
.rz-tabs__tab { flex: 0 0 auto; scroll-snap-align: center; }
|
|
544
|
+
/* Save bar: sits just above the bottom bar; bleed matches the narrower content padding; stack status above the buttons. */
|
|
545
|
+
.rz-content .realiiz-form__bar { bottom: var(--rz-bottombar); margin: 18px -14px calc(-1 * (var(--rz-bottombar) + 24px)); padding: 10px 14px; flex-wrap: wrap; }
|
|
535
546
|
.rz-content .realiiz-form__status { flex-basis: 100%; margin-right: 0; font-size: .8rem; }
|
|
536
547
|
/* Editor toolbar wraps; the Insert group drops its label and left rule to save width. */
|
|
537
548
|
.rz-admin .realiiz-md__head { padding: 5px; }
|
|
@@ -678,6 +689,12 @@ function Steps({ steps }) {
|
|
|
678
689
|
}
|
|
679
690
|
function Tabs({ options, value, onChange, label = "Sections" }) {
|
|
680
691
|
const list = react.useRef(null);
|
|
692
|
+
react.useEffect(() => {
|
|
693
|
+
const el = list.current;
|
|
694
|
+
if (!el || el.scrollWidth <= el.clientWidth) return;
|
|
695
|
+
const i = options.findIndex((o) => o.value === value);
|
|
696
|
+
el.children[i]?.scrollIntoView?.({ inline: "center", block: "nearest" });
|
|
697
|
+
}, [options, value]);
|
|
681
698
|
const onKey = (e) => {
|
|
682
699
|
const i = options.findIndex((o) => o.value === value);
|
|
683
700
|
if (i < 0) return;
|
|
@@ -716,7 +733,7 @@ function Tabs({ options, value, onChange, label = "Sections" }) {
|
|
|
716
733
|
}
|
|
717
734
|
|
|
718
735
|
// src/version.ts
|
|
719
|
-
var ADMIN_VERSION = "0.15.
|
|
736
|
+
var ADMIN_VERSION = "0.15.6" ;
|
|
720
737
|
|
|
721
738
|
// src/studio-ui/css.ts
|
|
722
739
|
var STUDIO_CSS = `
|
|
@@ -759,9 +776,22 @@ var STUDIO_CSS = `
|
|
|
759
776
|
.rz-admin .rz-title-link .rz-arrow { opacity: 0; }
|
|
760
777
|
.rz-admin .rz-title-link:hover { color: var(--signal); }
|
|
761
778
|
.rz-admin .rz-title-link:hover .rz-arrow { opacity: 1; }
|
|
779
|
+
/* Phones: the four columns can't share the width, so each row becomes a small card \u2014
|
|
780
|
+
the title on its own line (wrapping to two), the address under it, then date \xB7 status \xB7
|
|
781
|
+
actions on one row. Same markup; only the display changes. */
|
|
762
782
|
@media (max-width: 720px) {
|
|
763
|
-
.rz-admin .rz-
|
|
764
|
-
.rz-admin .rz-
|
|
783
|
+
.rz-admin .rz-table--posts, .rz-admin .rz-table--posts tbody { display: block; }
|
|
784
|
+
.rz-admin .rz-table--posts colgroup, .rz-admin .rz-table--posts thead { display: none; }
|
|
785
|
+
.rz-admin .rz-table--posts tr { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .9rem; padding: .8rem .9rem; border-bottom: 1px solid var(--separator); }
|
|
786
|
+
.rz-admin .rz-table--posts tr:last-child { border-bottom: 0; }
|
|
787
|
+
.rz-admin .rz-table--posts td, .rz-admin .rz-table--posts td.rz-fit { display: block; width: auto; padding: 0; border: 0; white-space: nowrap; overflow: visible; }
|
|
788
|
+
.rz-admin .rz-table--posts .rz-title-cell { flex: 1 1 100%; min-width: 0; margin-bottom: .15rem; white-space: normal; }
|
|
789
|
+
.rz-admin .rz-table--posts .rz-title-cell .rz-title-text { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-weight: 500; color: var(--text-primary); }
|
|
790
|
+
.rz-admin .rz-table--posts .rz-title-link { display: inline; }
|
|
791
|
+
.rz-admin .rz-table--posts .rz-slug { font-weight: 400; color: var(--text-muted); overflow-wrap: anywhere; -webkit-line-clamp: 1; }
|
|
792
|
+
.rz-admin [data-slugs="off"] .rz-table--posts .rz-slug { display: none; }
|
|
793
|
+
.rz-admin .rz-table--posts td.rz-fit { font-size: .85rem; }
|
|
794
|
+
.rz-admin .rz-table--posts td.rz-fit:last-child { margin-left: auto; }
|
|
765
795
|
}
|
|
766
796
|
|
|
767
797
|
/* Dashboard card for a section that isn't built yet: the real card, faded, buttons disabled. */
|
|
@@ -773,6 +803,9 @@ var STUDIO_CSS = `
|
|
|
773
803
|
.rz-admin .acct-card { display: flex; flex-direction: column; gap: .9rem; }
|
|
774
804
|
.rz-admin .acct-title { font-size: 1rem; font-weight: 600; margin: 0; color: var(--text-primary); }
|
|
775
805
|
.rz-admin .acct-blurb { font-size: .875rem; color: var(--text-secondary); margin: -.4rem 0 0; line-height: 1.5; }
|
|
806
|
+
.rz-admin .acct-blurb--link { margin-top: .6rem; }
|
|
807
|
+
.rz-admin .acct-blurb a { color: var(--signal); text-decoration: underline; text-underline-offset: 3px; }
|
|
808
|
+
.rz-admin .acct-blurb a:hover { color: var(--text-primary); }
|
|
776
809
|
.rz-admin .acct-field { display: flex; flex-direction: column; gap: .35rem; }
|
|
777
810
|
.rz-admin .acct-label { font-size: .85rem; font-weight: 500; color: var(--text-primary); }
|
|
778
811
|
.rz-admin .acct-hint { font-size: .78rem; color: var(--text-muted); }
|
|
@@ -964,11 +997,64 @@ function useDeployed(active, mergedSha) {
|
|
|
964
997
|
}, [active, mergedSha]);
|
|
965
998
|
return state;
|
|
966
999
|
}
|
|
1000
|
+
var KEY = "rz-update-installing";
|
|
1001
|
+
function readInstalling() {
|
|
1002
|
+
try {
|
|
1003
|
+
const raw = sessionStorage.getItem(KEY);
|
|
1004
|
+
if (!raw) return null;
|
|
1005
|
+
const v = JSON.parse(raw);
|
|
1006
|
+
return typeof v.version === "string" ? v : null;
|
|
1007
|
+
} catch {
|
|
1008
|
+
return null;
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
function writeInstalling(i) {
|
|
1012
|
+
try {
|
|
1013
|
+
if (i) sessionStorage.setItem(KEY, JSON.stringify(i));
|
|
1014
|
+
else sessionStorage.removeItem(KEY);
|
|
1015
|
+
} catch {
|
|
1016
|
+
}
|
|
1017
|
+
}
|
|
1018
|
+
function useInstalling() {
|
|
1019
|
+
const [installing, set] = react.useState(null);
|
|
1020
|
+
react.useEffect(() => {
|
|
1021
|
+
const i = readInstalling();
|
|
1022
|
+
if (i && i.version === ADMIN_VERSION) {
|
|
1023
|
+
writeInstalling(null);
|
|
1024
|
+
return;
|
|
1025
|
+
}
|
|
1026
|
+
set(i);
|
|
1027
|
+
}, []);
|
|
1028
|
+
const update = (i) => {
|
|
1029
|
+
writeInstalling(i);
|
|
1030
|
+
set(i);
|
|
1031
|
+
};
|
|
1032
|
+
return [installing, update];
|
|
1033
|
+
}
|
|
1034
|
+
function InstallTracker({ installing, compact = false }) {
|
|
1035
|
+
const deploy = useDeployed(true, installing.sha);
|
|
1036
|
+
const live = deploy === "live";
|
|
1037
|
+
const steps = [
|
|
1038
|
+
{ label: "Updated", state: "done", note: `Studio ${installing.version}` },
|
|
1039
|
+
{ label: "Live", state: live ? "done" : "active", note: live ? "On the site now" : deploy === "slow" ? "Taking longer than usual" : "Rebuilding, about two minutes" }
|
|
1040
|
+
];
|
|
1041
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `rz-update${compact ? " rz-update--strip" : ""}`, role: "status", children: [
|
|
1042
|
+
/* @__PURE__ */ jsxRuntime.jsx(Steps, { steps }),
|
|
1043
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rz-update__done", children: live ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1044
|
+
"Studio ",
|
|
1045
|
+
installing.version,
|
|
1046
|
+
" is live. ",
|
|
1047
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "rz-update__link", onClick: () => window.location.reload(), children: "Reload Studio" }),
|
|
1048
|
+
" to start using it \u2014 the version at the foot of the sidebar will change."
|
|
1049
|
+
] }) : "Update accepted. Nothing to do meanwhile \u2014 keep working. The website is rebuilding with the new Studio; this turns green when it's done, in about two minutes." })
|
|
1050
|
+
] });
|
|
1051
|
+
}
|
|
967
1052
|
var HIDE_KEY = "rz-update-later";
|
|
968
1053
|
function canSeeUpdates(role) {
|
|
969
1054
|
return role === "owner" || role === "staff";
|
|
970
1055
|
}
|
|
971
1056
|
function UpdateStrip({ update, role }) {
|
|
1057
|
+
const [installing, setInstalling] = useInstalling();
|
|
972
1058
|
const [hidden, setHidden] = react.useState(true);
|
|
973
1059
|
react.useEffect(() => {
|
|
974
1060
|
try {
|
|
@@ -977,7 +1063,9 @@ function UpdateStrip({ update, role }) {
|
|
|
977
1063
|
setHidden(false);
|
|
978
1064
|
}
|
|
979
1065
|
}, [update?.version]);
|
|
980
|
-
if (!
|
|
1066
|
+
if (!canSeeUpdates(role)) return null;
|
|
1067
|
+
if (installing) return /* @__PURE__ */ jsxRuntime.jsx(InstallTracker, { installing, compact: true });
|
|
1068
|
+
if (!update || update.state !== "ready" || hidden) return null;
|
|
981
1069
|
const later = () => {
|
|
982
1070
|
try {
|
|
983
1071
|
sessionStorage.setItem(HIDE_KEY, update.version);
|
|
@@ -985,41 +1073,24 @@ function UpdateStrip({ update, role }) {
|
|
|
985
1073
|
}
|
|
986
1074
|
setHidden(true);
|
|
987
1075
|
};
|
|
988
|
-
return /* @__PURE__ */ jsxRuntime.jsx(UpdateBody, { update, onLater: later, compact: true });
|
|
1076
|
+
return /* @__PURE__ */ jsxRuntime.jsx(UpdateBody, { update, onLater: later, onMerged: setInstalling, compact: true });
|
|
989
1077
|
}
|
|
990
|
-
function UpdateBody({ update, onLater, compact = false }) {
|
|
1078
|
+
function UpdateBody({ update, onLater, onMerged, compact = false }) {
|
|
991
1079
|
const { actions } = useStudio();
|
|
992
1080
|
const [showNotes, setShowNotes] = react.useState(!compact);
|
|
993
1081
|
const [busy, setBusy] = react.useState(false);
|
|
994
1082
|
const [outcome, setOutcome] = react.useState(null);
|
|
995
|
-
const merged = outcome?.state === "merged";
|
|
996
|
-
const deploy = useDeployed(merged, merged ? outcome.sha : null);
|
|
997
1083
|
const run = async () => {
|
|
998
1084
|
setBusy(true);
|
|
999
1085
|
try {
|
|
1000
|
-
|
|
1086
|
+
const result = await actions.updateStudio(update.number);
|
|
1087
|
+
setOutcome(result);
|
|
1088
|
+
if (result.state === "merged") onMerged({ version: update.version, sha: result.sha });
|
|
1001
1089
|
} finally {
|
|
1002
1090
|
setBusy(false);
|
|
1003
1091
|
}
|
|
1004
1092
|
};
|
|
1005
|
-
|
|
1006
|
-
const live = deploy === "live";
|
|
1007
|
-
const steps = [
|
|
1008
|
-
{ label: "Updated", state: "done", note: `Studio ${update.version}` },
|
|
1009
|
-
{ label: "Live", state: live ? "done" : "active", note: live ? "On the site now" : deploy === "slow" ? "Taking longer than usual" : "Rebuilding, about two minutes" }
|
|
1010
|
-
];
|
|
1011
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `rz-update${compact ? " rz-update--strip" : ""}`, role: "status", children: [
|
|
1012
|
-
/* @__PURE__ */ jsxRuntime.jsx(Steps, { steps }),
|
|
1013
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rz-update__done", children: live ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1014
|
-
"Studio ",
|
|
1015
|
-
update.version,
|
|
1016
|
-
" is live. ",
|
|
1017
|
-
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "rz-update__link", onClick: () => window.location.reload(), children: "Reload Studio" }),
|
|
1018
|
-
" to start using it \u2014 the version at the foot of the sidebar will change."
|
|
1019
|
-
] }) : "Nothing to do meanwhile \u2014 keep working. The website is rebuilding with the new Studio; the version at the foot of the sidebar changes when it's done, in about two minutes." })
|
|
1020
|
-
] });
|
|
1021
|
-
}
|
|
1022
|
-
const problem = outcome && outcome.state !== "pending" ? outcome.state === "stale" ? "The site changed since the checks ran. Try again in a minute." : outcome.state === "red" ? `The checks failed${outcome.failingCheck ? ` (${outcome.failingCheck})` : ""}. Your web team has been able to see this.` : outcome.state === "error" ? outcome.message : null : null;
|
|
1093
|
+
const problem = outcome && outcome.state !== "pending" && outcome.state !== "merged" ? outcome.state === "stale" ? "The site changed since the checks ran. Try again in a minute." : outcome.state === "red" ? `The checks failed${outcome.failingCheck ? ` (${outcome.failingCheck})` : ""}. Your web team has been able to see this.` : outcome.state === "error" ? outcome.message : null : null;
|
|
1023
1094
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `rz-update${compact ? " rz-update--strip" : ""}`, role: "status", children: [
|
|
1024
1095
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rz-update__row", children: [
|
|
1025
1096
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "rz-update__title", children: [
|
|
@@ -3961,25 +4032,28 @@ function BusinessTab({ initial }) {
|
|
|
3961
4032
|
}
|
|
3962
4033
|
function StudioTab({ update, version, role }) {
|
|
3963
4034
|
const { supportName } = useStudio();
|
|
4035
|
+
const [installing, setInstalling] = useInstalling();
|
|
3964
4036
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "acct-stack", children: [
|
|
3965
4037
|
/* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "acct-card", children: [
|
|
3966
4038
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "acct-title", children: [
|
|
3967
4039
|
"Studio ",
|
|
3968
4040
|
version
|
|
3969
4041
|
] }),
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
"
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
"
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
4042
|
+
installing ? /* @__PURE__ */ jsxRuntime.jsx(InstallTracker, { installing }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4043
|
+
!update && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "acct-blurb", children: "You\u2019re up to date. When a new version comes out, it appears here and as a strip at the top of every Studio page." }),
|
|
4044
|
+
update?.state === "checking" && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb", children: [
|
|
4045
|
+
"Studio ",
|
|
4046
|
+
update.version,
|
|
4047
|
+
" is on its way \u2014 the checks are still running. Come back in a couple of minutes."
|
|
4048
|
+
] }),
|
|
4049
|
+
update?.state === "failed" && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb", children: [
|
|
4050
|
+
"Studio ",
|
|
4051
|
+
update.version,
|
|
4052
|
+
" is available, but its checks failed, so it can\u2019t be installed yet.",
|
|
4053
|
+
role === "staff" && update.failingCheck ? ` Failing check: ${update.failingCheck}.` : ` ${supportName} has been able to see this and will sort it out.`
|
|
4054
|
+
] }),
|
|
4055
|
+
update?.state === "ready" && /* @__PURE__ */ jsxRuntime.jsx(UpdateBody, { update, onMerged: setInstalling })
|
|
4056
|
+
] })
|
|
3983
4057
|
] }),
|
|
3984
4058
|
/* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "acct-card", children: [
|
|
3985
4059
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "acct-title", children: "How updates work" }),
|
|
@@ -3990,7 +4064,7 @@ function StudioTab({ update, version, role }) {
|
|
|
3990
4064
|
/* @__PURE__ */ jsxRuntime.jsx("b", { children: "Update" }),
|
|
3991
4065
|
". If the update would break anything, the button never unlocks. Your site looks for new versions once a week, on Monday morning."
|
|
3992
4066
|
] }),
|
|
3993
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb
|
|
4067
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb acct-blurb--link", children: [
|
|
3994
4068
|
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/admin/help#s-updates", children: "Everything about updates, in the Help center" }),
|
|
3995
4069
|
" \u2014 when they arrive, what they can and can\u2019t change, and what to do if one fails."
|
|
3996
4070
|
] })
|
|
@@ -4099,7 +4173,7 @@ Open the avatar menu (top right) and choose **Sign out**.
|
|
|
4099
4173
|
|
|
4100
4174
|
One item per kind of content this site publishes \u2014 on {siteName} that's {types}. Each opens a list of everything of that kind with its status. **Dashboard** at the top shows one card per kind with a count and how many changes are waiting. **Settings** at the bottom opens your account.
|
|
4101
4175
|
|
|
4102
|
-
|
|
4176
|
+
Press **Collapse** at the bottom to shrink the sidebar to icons. On a phone, the same items sit in a bar of icons along the bottom of the screen \u2014 Dashboard, each kind of content, Settings.
|
|
4103
4177
|
|
|
4104
4178
|
## A list page
|
|
4105
4179
|
|
|
@@ -5113,7 +5187,7 @@ Not from Studio. It's rarely needed, because an update can't touch your content,
|
|
|
5113
5187
|
|
|
5114
5188
|
## I pressed Update and nothing seems different
|
|
5115
5189
|
|
|
5116
|
-
|
|
5190
|
+
That's expected for the first couple of minutes. The strip turns into a tracker: **Updated** means the update was accepted; **Live** means the website has finished rebuilding, which takes about two minutes. The tracker stays on screen (even if you move around Studio or reload) until it's live, then offers a **Reload Studio** button. Until you reload, you're still using the old version and the number at the bottom of the sidebar hasn't changed \u2014 that's normal, not a failure.
|
|
5117
5191
|
|
|
5118
5192
|
## I pressed Update twice
|
|
5119
5193
|
|
|
@@ -5622,6 +5696,7 @@ exports.ContentEditor = ContentEditor;
|
|
|
5622
5696
|
exports.GLOSSARY = GLOSSARY;
|
|
5623
5697
|
exports.HELP_ARTICLES = HELP_ARTICLES;
|
|
5624
5698
|
exports.HELP_SECTIONS = HELP_SECTIONS;
|
|
5699
|
+
exports.InstallTracker = InstallTracker;
|
|
5625
5700
|
exports.Jargon = Jargon;
|
|
5626
5701
|
exports.PublishPanel = PublishPanel;
|
|
5627
5702
|
exports.RemoveItem = RemoveItem;
|
|
@@ -5651,6 +5726,7 @@ exports.joinTypes = joinTypes;
|
|
|
5651
5726
|
exports.publicDirOf = publicDirOf;
|
|
5652
5727
|
exports.searchHelp = searchHelp;
|
|
5653
5728
|
exports.useEntry = useEntry;
|
|
5729
|
+
exports.useInstalling = useInstalling;
|
|
5654
5730
|
exports.useStudio = useStudio;
|
|
5655
5731
|
//# sourceMappingURL=index.cjs.map
|
|
5656
5732
|
//# sourceMappingURL=index.cjs.map
|