@realiizlabs/admin 0.15.4 → 0.15.5
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 +132 -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 +131 -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
|
+
.rz-sidebar__nav, .rz-sidebar__pinned { display: flex; flex: 1; padding: 0; overflow: visible; border-top: 0; }
|
|
530
|
+
.rz-sidebar__pinned { flex: 0 0 auto; }
|
|
531
|
+
.rz-sidebar__item { flex: 1; justify-content: center; padding: 0; min-width: 56px; 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.5" ;
|
|
720
737
|
|
|
721
738
|
// src/studio-ui/css.ts
|
|
722
739
|
var STUDIO_CSS = `
|
|
@@ -759,9 +776,21 @@ 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 { display: block; padding: 0; border: 0; white-space: normal; overflow: visible; }
|
|
788
|
+
.rz-admin .rz-table--posts .rz-title-cell { flex: 1 1 100%; min-width: 0; margin-bottom: .15rem; }
|
|
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 .rz-table--posts td.rz-fit { font-size: .85rem; }
|
|
793
|
+
.rz-admin .rz-table--posts td.rz-fit:last-child { margin-left: auto; }
|
|
765
794
|
}
|
|
766
795
|
|
|
767
796
|
/* Dashboard card for a section that isn't built yet: the real card, faded, buttons disabled. */
|
|
@@ -773,6 +802,9 @@ var STUDIO_CSS = `
|
|
|
773
802
|
.rz-admin .acct-card { display: flex; flex-direction: column; gap: .9rem; }
|
|
774
803
|
.rz-admin .acct-title { font-size: 1rem; font-weight: 600; margin: 0; color: var(--text-primary); }
|
|
775
804
|
.rz-admin .acct-blurb { font-size: .875rem; color: var(--text-secondary); margin: -.4rem 0 0; line-height: 1.5; }
|
|
805
|
+
.rz-admin .acct-blurb--link { margin-top: .6rem; }
|
|
806
|
+
.rz-admin .acct-blurb a { color: var(--signal); text-decoration: underline; text-underline-offset: 3px; }
|
|
807
|
+
.rz-admin .acct-blurb a:hover { color: var(--text-primary); }
|
|
776
808
|
.rz-admin .acct-field { display: flex; flex-direction: column; gap: .35rem; }
|
|
777
809
|
.rz-admin .acct-label { font-size: .85rem; font-weight: 500; color: var(--text-primary); }
|
|
778
810
|
.rz-admin .acct-hint { font-size: .78rem; color: var(--text-muted); }
|
|
@@ -964,11 +996,64 @@ function useDeployed(active, mergedSha) {
|
|
|
964
996
|
}, [active, mergedSha]);
|
|
965
997
|
return state;
|
|
966
998
|
}
|
|
999
|
+
var KEY = "rz-update-installing";
|
|
1000
|
+
function readInstalling() {
|
|
1001
|
+
try {
|
|
1002
|
+
const raw = sessionStorage.getItem(KEY);
|
|
1003
|
+
if (!raw) return null;
|
|
1004
|
+
const v = JSON.parse(raw);
|
|
1005
|
+
return typeof v.version === "string" ? v : null;
|
|
1006
|
+
} catch {
|
|
1007
|
+
return null;
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
function writeInstalling(i) {
|
|
1011
|
+
try {
|
|
1012
|
+
if (i) sessionStorage.setItem(KEY, JSON.stringify(i));
|
|
1013
|
+
else sessionStorage.removeItem(KEY);
|
|
1014
|
+
} catch {
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
function useInstalling() {
|
|
1018
|
+
const [installing, set] = react.useState(null);
|
|
1019
|
+
react.useEffect(() => {
|
|
1020
|
+
const i = readInstalling();
|
|
1021
|
+
if (i && i.version === ADMIN_VERSION) {
|
|
1022
|
+
writeInstalling(null);
|
|
1023
|
+
return;
|
|
1024
|
+
}
|
|
1025
|
+
set(i);
|
|
1026
|
+
}, []);
|
|
1027
|
+
const update = (i) => {
|
|
1028
|
+
writeInstalling(i);
|
|
1029
|
+
set(i);
|
|
1030
|
+
};
|
|
1031
|
+
return [installing, update];
|
|
1032
|
+
}
|
|
1033
|
+
function InstallTracker({ installing, compact = false }) {
|
|
1034
|
+
const deploy = useDeployed(true, installing.sha);
|
|
1035
|
+
const live = deploy === "live";
|
|
1036
|
+
const steps = [
|
|
1037
|
+
{ label: "Updated", state: "done", note: `Studio ${installing.version}` },
|
|
1038
|
+
{ label: "Live", state: live ? "done" : "active", note: live ? "On the site now" : deploy === "slow" ? "Taking longer than usual" : "Rebuilding, about two minutes" }
|
|
1039
|
+
];
|
|
1040
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `rz-update${compact ? " rz-update--strip" : ""}`, role: "status", children: [
|
|
1041
|
+
/* @__PURE__ */ jsxRuntime.jsx(Steps, { steps }),
|
|
1042
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rz-update__done", children: live ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1043
|
+
"Studio ",
|
|
1044
|
+
installing.version,
|
|
1045
|
+
" is live. ",
|
|
1046
|
+
/* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", className: "rz-update__link", onClick: () => window.location.reload(), children: "Reload Studio" }),
|
|
1047
|
+
" to start using it \u2014 the version at the foot of the sidebar will change."
|
|
1048
|
+
] }) : "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." })
|
|
1049
|
+
] });
|
|
1050
|
+
}
|
|
967
1051
|
var HIDE_KEY = "rz-update-later";
|
|
968
1052
|
function canSeeUpdates(role) {
|
|
969
1053
|
return role === "owner" || role === "staff";
|
|
970
1054
|
}
|
|
971
1055
|
function UpdateStrip({ update, role }) {
|
|
1056
|
+
const [installing, setInstalling] = useInstalling();
|
|
972
1057
|
const [hidden, setHidden] = react.useState(true);
|
|
973
1058
|
react.useEffect(() => {
|
|
974
1059
|
try {
|
|
@@ -977,7 +1062,9 @@ function UpdateStrip({ update, role }) {
|
|
|
977
1062
|
setHidden(false);
|
|
978
1063
|
}
|
|
979
1064
|
}, [update?.version]);
|
|
980
|
-
if (!
|
|
1065
|
+
if (!canSeeUpdates(role)) return null;
|
|
1066
|
+
if (installing) return /* @__PURE__ */ jsxRuntime.jsx(InstallTracker, { installing, compact: true });
|
|
1067
|
+
if (!update || update.state !== "ready" || hidden) return null;
|
|
981
1068
|
const later = () => {
|
|
982
1069
|
try {
|
|
983
1070
|
sessionStorage.setItem(HIDE_KEY, update.version);
|
|
@@ -985,41 +1072,24 @@ function UpdateStrip({ update, role }) {
|
|
|
985
1072
|
}
|
|
986
1073
|
setHidden(true);
|
|
987
1074
|
};
|
|
988
|
-
return /* @__PURE__ */ jsxRuntime.jsx(UpdateBody, { update, onLater: later, compact: true });
|
|
1075
|
+
return /* @__PURE__ */ jsxRuntime.jsx(UpdateBody, { update, onLater: later, onMerged: setInstalling, compact: true });
|
|
989
1076
|
}
|
|
990
|
-
function UpdateBody({ update, onLater, compact = false }) {
|
|
1077
|
+
function UpdateBody({ update, onLater, onMerged, compact = false }) {
|
|
991
1078
|
const { actions } = useStudio();
|
|
992
1079
|
const [showNotes, setShowNotes] = react.useState(!compact);
|
|
993
1080
|
const [busy, setBusy] = react.useState(false);
|
|
994
1081
|
const [outcome, setOutcome] = react.useState(null);
|
|
995
|
-
const merged = outcome?.state === "merged";
|
|
996
|
-
const deploy = useDeployed(merged, merged ? outcome.sha : null);
|
|
997
1082
|
const run = async () => {
|
|
998
1083
|
setBusy(true);
|
|
999
1084
|
try {
|
|
1000
|
-
|
|
1085
|
+
const result = await actions.updateStudio(update.number);
|
|
1086
|
+
setOutcome(result);
|
|
1087
|
+
if (result.state === "merged") onMerged({ version: update.version, sha: result.sha });
|
|
1001
1088
|
} finally {
|
|
1002
1089
|
setBusy(false);
|
|
1003
1090
|
}
|
|
1004
1091
|
};
|
|
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;
|
|
1092
|
+
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
1093
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `rz-update${compact ? " rz-update--strip" : ""}`, role: "status", children: [
|
|
1024
1094
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rz-update__row", children: [
|
|
1025
1095
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "rz-update__title", children: [
|
|
@@ -3961,25 +4031,28 @@ function BusinessTab({ initial }) {
|
|
|
3961
4031
|
}
|
|
3962
4032
|
function StudioTab({ update, version, role }) {
|
|
3963
4033
|
const { supportName } = useStudio();
|
|
4034
|
+
const [installing, setInstalling] = useInstalling();
|
|
3964
4035
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "acct-stack", children: [
|
|
3965
4036
|
/* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "acct-card", children: [
|
|
3966
4037
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "acct-title", children: [
|
|
3967
4038
|
"Studio ",
|
|
3968
4039
|
version
|
|
3969
4040
|
] }),
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
"
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
"
|
|
3978
|
-
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
4041
|
+
installing ? /* @__PURE__ */ jsxRuntime.jsx(InstallTracker, { installing }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
4042
|
+
!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." }),
|
|
4043
|
+
update?.state === "checking" && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb", children: [
|
|
4044
|
+
"Studio ",
|
|
4045
|
+
update.version,
|
|
4046
|
+
" is on its way \u2014 the checks are still running. Come back in a couple of minutes."
|
|
4047
|
+
] }),
|
|
4048
|
+
update?.state === "failed" && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb", children: [
|
|
4049
|
+
"Studio ",
|
|
4050
|
+
update.version,
|
|
4051
|
+
" is available, but its checks failed, so it can\u2019t be installed yet.",
|
|
4052
|
+
role === "staff" && update.failingCheck ? ` Failing check: ${update.failingCheck}.` : ` ${supportName} has been able to see this and will sort it out.`
|
|
4053
|
+
] }),
|
|
4054
|
+
update?.state === "ready" && /* @__PURE__ */ jsxRuntime.jsx(UpdateBody, { update, onMerged: setInstalling })
|
|
4055
|
+
] })
|
|
3983
4056
|
] }),
|
|
3984
4057
|
/* @__PURE__ */ jsxRuntime.jsxs(Card, { className: "acct-card", children: [
|
|
3985
4058
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "acct-title", children: "How updates work" }),
|
|
@@ -3990,7 +4063,7 @@ function StudioTab({ update, version, role }) {
|
|
|
3990
4063
|
/* @__PURE__ */ jsxRuntime.jsx("b", { children: "Update" }),
|
|
3991
4064
|
". If the update would break anything, the button never unlocks. Your site looks for new versions once a week, on Monday morning."
|
|
3992
4065
|
] }),
|
|
3993
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb
|
|
4066
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "acct-blurb acct-blurb--link", children: [
|
|
3994
4067
|
/* @__PURE__ */ jsxRuntime.jsx("a", { href: "/admin/help#s-updates", children: "Everything about updates, in the Help center" }),
|
|
3995
4068
|
" \u2014 when they arrive, what they can and can\u2019t change, and what to do if one fails."
|
|
3996
4069
|
] })
|
|
@@ -4099,7 +4172,7 @@ Open the avatar menu (top right) and choose **Sign out**.
|
|
|
4099
4172
|
|
|
4100
4173
|
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
4174
|
|
|
4102
|
-
|
|
4175
|
+
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
4176
|
|
|
4104
4177
|
## A list page
|
|
4105
4178
|
|
|
@@ -5113,7 +5186,7 @@ Not from Studio. It's rarely needed, because an update can't touch your content,
|
|
|
5113
5186
|
|
|
5114
5187
|
## I pressed Update and nothing seems different
|
|
5115
5188
|
|
|
5116
|
-
|
|
5189
|
+
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
5190
|
|
|
5118
5191
|
## I pressed Update twice
|
|
5119
5192
|
|
|
@@ -5622,6 +5695,7 @@ exports.ContentEditor = ContentEditor;
|
|
|
5622
5695
|
exports.GLOSSARY = GLOSSARY;
|
|
5623
5696
|
exports.HELP_ARTICLES = HELP_ARTICLES;
|
|
5624
5697
|
exports.HELP_SECTIONS = HELP_SECTIONS;
|
|
5698
|
+
exports.InstallTracker = InstallTracker;
|
|
5625
5699
|
exports.Jargon = Jargon;
|
|
5626
5700
|
exports.PublishPanel = PublishPanel;
|
|
5627
5701
|
exports.RemoveItem = RemoveItem;
|
|
@@ -5651,6 +5725,7 @@ exports.joinTypes = joinTypes;
|
|
|
5651
5725
|
exports.publicDirOf = publicDirOf;
|
|
5652
5726
|
exports.searchHelp = searchHelp;
|
|
5653
5727
|
exports.useEntry = useEntry;
|
|
5728
|
+
exports.useInstalling = useInstalling;
|
|
5654
5729
|
exports.useStudio = useStudio;
|
|
5655
5730
|
//# sourceMappingURL=index.cjs.map
|
|
5656
5731
|
//# sourceMappingURL=index.cjs.map
|