@orion-studios/payload-studio 0.6.0-beta.4 → 0.6.0-beta.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/admin/client.d.mts +1 -0
  2. package/dist/admin/client.d.ts +1 -0
  3. package/dist/admin/client.js +3924 -1355
  4. package/dist/admin/client.mjs +4090 -1533
  5. package/dist/admin/index.d.mts +2 -3
  6. package/dist/admin/index.d.ts +2 -3
  7. package/dist/admin/index.js +141 -1522
  8. package/dist/admin/index.mjs +2 -4
  9. package/dist/admin-app/client.js +11 -4
  10. package/dist/admin-app/client.mjs +1 -1
  11. package/dist/admin-app/index.d.mts +2 -2
  12. package/dist/admin-app/index.d.ts +2 -2
  13. package/dist/admin-app/index.mjs +4 -4
  14. package/dist/admin-app/styles.css +343 -41
  15. package/dist/admin.css +18 -2
  16. package/dist/{chunk-KPIX7OSV.mjs → chunk-2XH7X34N.mjs} +11 -4
  17. package/dist/{chunk-PF3EBZXF.mjs → chunk-7ZMXZRBP.mjs} +39 -3
  18. package/dist/chunk-JC3UV74N.mjs +1033 -0
  19. package/dist/{chunk-XKUTZ7IU.mjs → chunk-OL53KHTB.mjs} +46 -2
  20. package/dist/{chunk-EHUE4LCT.mjs → chunk-RKTIFEUY.mjs} +33 -3
  21. package/dist/chunk-W2UOCJDX.mjs +32 -0
  22. package/dist/{chunk-OTHERBGX.mjs → chunk-ZADL33R6.mjs} +1 -1
  23. package/dist/{index-bbA3HSxa.d.ts → index-BV0vEGl6.d.ts} +6 -9
  24. package/dist/{index-Cv-6qnrw.d.mts → index-D5zrOdyv.d.mts} +3 -1
  25. package/dist/{index-52HdVLQq.d.ts → index-DAdN56fM.d.ts} +1 -1
  26. package/dist/{index-DEkV-sMs.d.mts → index-DLfPOqYA.d.mts} +6 -9
  27. package/dist/{index-Crx_MtPw.d.ts → index-Dv-Alx4h.d.ts} +3 -1
  28. package/dist/{index-DEQC3Dwj.d.mts → index-G_uTNffQ.d.mts} +1 -1
  29. package/dist/index.d.mts +5 -5
  30. package/dist/index.d.ts +5 -5
  31. package/dist/index.js +287 -1542
  32. package/dist/index.mjs +6 -6
  33. package/dist/nextjs/index.js +39 -3
  34. package/dist/nextjs/index.mjs +2 -2
  35. package/dist/{sitePreviewTypes-BkHCWxNW.d.mts → sitePreviewTypes-BrJwGzJj.d.mts} +1 -1
  36. package/dist/{sitePreviewTypes-BkHCWxNW.d.ts → sitePreviewTypes-BrJwGzJj.d.ts} +1 -1
  37. package/dist/studio-pages/builder.css +24 -5
  38. package/dist/studio-pages/client.js +529 -63
  39. package/dist/studio-pages/client.mjs +529 -63
  40. package/dist/studio-pages/index.d.mts +1 -1
  41. package/dist/studio-pages/index.d.ts +1 -1
  42. package/dist/studio-pages/index.js +84 -4
  43. package/dist/studio-pages/index.mjs +2 -2
  44. package/package.json +1 -1
  45. package/dist/chunk-DYXSAVUQ.mjs +0 -2372
  46. package/dist/chunk-Z6L5K5MH.mjs +0 -64
@@ -1,5 +1,4 @@
1
1
  import {
2
- AdminStudioDashboard,
3
2
  configureAdmin,
4
3
  createHeaderNavItemsField,
5
4
  createSocialMediaConnectionsField,
@@ -8,8 +7,8 @@ import {
8
7
  socialMediaConnectionsField,
9
8
  themePreferenceField,
10
9
  withTooltips
11
- } from "../chunk-DYXSAVUQ.mjs";
12
- import "../chunk-Z6L5K5MH.mjs";
10
+ } from "../chunk-JC3UV74N.mjs";
11
+ import "../chunk-W2UOCJDX.mjs";
13
12
  import {
14
13
  SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM,
15
14
  SOCIAL_MEDIA_ICON_OPTIONS,
@@ -18,7 +17,6 @@ import {
18
17
  } from "../chunk-ZTXJG4K5.mjs";
19
18
  import "../chunk-6BWS3CLP.mjs";
20
19
  export {
21
- AdminStudioDashboard,
22
20
  SOCIAL_MEDIA_DEFAULT_ICON_BY_PLATFORM,
23
21
  SOCIAL_MEDIA_ICON_OPTIONS,
24
22
  SOCIAL_MEDIA_PLATFORMS,
@@ -122,14 +122,21 @@ function AdminShellClient({
122
122
  onLogout,
123
123
  storageKey = "orion-admin-shell-collapsed"
124
124
  }) {
125
- const [collapsed, setCollapsed] = (0, import_react.useState)(false);
125
+ const [collapsed, setCollapsed] = (0, import_react.useState)(() => {
126
+ if (typeof window === "undefined") {
127
+ return true;
128
+ }
129
+ try {
130
+ return window.localStorage.getItem(storageKey) === "1";
131
+ } catch {
132
+ return false;
133
+ }
134
+ });
126
135
  const [loggingOut, setLoggingOut] = (0, import_react.useState)(false);
127
136
  (0, import_react.useEffect)(() => {
128
137
  try {
129
138
  const stored = window.localStorage.getItem(storageKey);
130
- if (stored === "1") {
131
- setCollapsed(true);
132
- }
139
+ setCollapsed(stored === "1");
133
140
  } catch {
134
141
  }
135
142
  }, [storageKey]);
@@ -8,7 +8,7 @@ import {
8
8
  MediaUploadForm,
9
9
  SiteFooterPreview,
10
10
  SiteHeaderPreview
11
- } from "../chunk-KPIX7OSV.mjs";
11
+ } from "../chunk-2XH7X34N.mjs";
12
12
  import "../chunk-ROTPP5CU.mjs";
13
13
 
14
14
  // src/admin-app/components/PageEditorFrame.tsx
@@ -1,4 +1,4 @@
1
- export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-DEQC3Dwj.mjs';
2
- export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-BkHCWxNW.mjs';
1
+ export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-G_uTNffQ.mjs';
2
+ export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-BrJwGzJj.mjs';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
@@ -1,4 +1,4 @@
1
- export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-52HdVLQq.js';
2
- export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-BkHCWxNW.js';
1
+ export { A as AdminBreadcrumbs, a as AdminNavInput, b as AdminNavLinkItem, c as AdminPage, d as AdminPageLinkOption, e as AdminPageRecord, M as MediaDetailPanelProps, f as MediaListItemProps, N as NestedNavItem, g as NestedNavItemInput, h as NestedNavTree, j as buildAdminPageLinkOptions, k as buildNestedNavTree, l as getAdminNavRows, n as normalizeAdminNavInputs, m as normalizeNestedNavItems, p as parseAdminHeaderNavFromForm } from '../index-DAdN56fM.js';
2
+ export { A as AdminBreadcrumbItem, a as AdminNavIcon, b as AdminNavItem, c as AdminRole, S as SiteFooterPreviewData, d as SiteHeaderPreviewData, e as SitePreviewLink, f as SitePreviewLocationSummary, g as SitePreviewSocialLink, n as navItemIsActive, r as roleCanAccessNav } from '../sitePreviewTypes-BrJwGzJj.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
@@ -1,17 +1,17 @@
1
1
  import {
2
+ AdminBreadcrumbs,
3
+ AdminPage,
2
4
  buildAdminPageLinkOptions,
3
5
  buildNestedNavTree,
4
6
  getAdminNavRows,
5
7
  normalizeAdminNavInputs,
6
8
  normalizeNestedNavItems,
7
9
  parseAdminHeaderNavFromForm
8
- } from "../chunk-EHUE4LCT.mjs";
10
+ } from "../chunk-RKTIFEUY.mjs";
9
11
  import {
10
- AdminBreadcrumbs,
11
- AdminPage,
12
12
  navItemIsActive,
13
13
  roleCanAccessNav
14
- } from "../chunk-Z6L5K5MH.mjs";
14
+ } from "../chunk-W2UOCJDX.mjs";
15
15
  import "../chunk-6BWS3CLP.mjs";
16
16
  export {
17
17
  AdminBreadcrumbs,
@@ -25,7 +25,17 @@
25
25
  --orion-cms-accent-border,
26
26
  var(--orion-cms-accent-border-resolved, color-mix(in srgb, var(--orion-admin-accent) 36%, transparent))
27
27
  );
28
- --orion-admin-selection-bg: color-mix(in srgb, var(--orion-admin-accent) 18%, var(--orion-admin-main-bg));
28
+ --orion-admin-selection-bg: var(
29
+ --orion-cms-selection-bg,
30
+ var(
31
+ --orion-cms-selection-bg-resolved,
32
+ color-mix(in srgb, var(--orion-admin-accent) 18%, var(--orion-admin-main-bg))
33
+ )
34
+ );
35
+ --orion-admin-selection-text: var(
36
+ --orion-cms-selection-text,
37
+ var(--orion-cms-selection-text-resolved, var(--orion-admin-text))
38
+ );
29
39
  --orion-admin-radius-xs: var(--orion-cms-radius-xs, var(--orion-cms-radius-xs-resolved, 8px));
30
40
  --orion-admin-radius-sm: var(--orion-cms-radius-sm, var(--orion-cms-radius-sm-resolved, 12px));
31
41
  --orion-admin-radius-md: var(--orion-cms-radius-md, var(--orion-cms-radius-md-resolved, 16px));
@@ -35,6 +45,11 @@
35
45
  --orion-cms-logo-radius,
36
46
  var(--orion-cms-logo-radius-resolved, var(--orion-admin-radius-md))
37
47
  );
48
+ --orion-admin-logo-bg: var(--orion-cms-logo-bg, transparent);
49
+ --orion-admin-logo-border: var(--orion-cms-logo-border, transparent);
50
+ --orion-admin-logo-shadow: var(--orion-cms-logo-shadow, none);
51
+ --orion-admin-logo-padding: var(--orion-cms-logo-padding, 0px);
52
+ --orion-admin-logo-fit: var(--orion-cms-logo-fit, contain);
38
53
  --orion-admin-control-bg: var(--orion-cms-surface, var(--orion-cms-surface-resolved, #ffffff));
39
54
  --orion-admin-control-hover-bg: color-mix(in srgb, var(--orion-admin-control-bg) 78%, white);
40
55
  --orion-admin-input-bg: var(
@@ -111,6 +126,15 @@
111
126
  .orion-admin-page ::selection,
112
127
  .orion-admin-login-shell ::selection {
113
128
  background: var(--orion-admin-selection-bg);
129
+ color: var(--orion-admin-selection-text);
130
+ }
131
+
132
+ .orion-admin-shell ::-moz-selection,
133
+ .orion-admin-main ::-moz-selection,
134
+ .orion-admin-page ::-moz-selection,
135
+ .orion-admin-login-shell ::-moz-selection {
136
+ background: var(--orion-admin-selection-bg);
137
+ color: var(--orion-admin-selection-text);
114
138
  }
115
139
 
116
140
  .orion-admin-shell {
@@ -164,19 +188,47 @@
164
188
  }
165
189
 
166
190
  .orion-admin-brand-logo {
191
+ align-items: center;
192
+ background: var(--orion-admin-logo-bg);
193
+ border: 1px solid var(--orion-admin-logo-border);
167
194
  border-radius: var(--orion-admin-logo-radius);
195
+ box-shadow: var(--orion-admin-logo-shadow);
196
+ box-sizing: border-box;
197
+ display: flex;
168
198
  flex: 0 0 auto;
169
199
  height: 48px;
200
+ justify-content: center;
170
201
  overflow: hidden;
202
+ padding: var(--orion-admin-logo-padding);
171
203
  width: 48px;
172
204
  }
173
205
 
174
206
  .orion-admin-brand-logo img {
175
207
  height: 100%;
176
- object-fit: cover;
208
+ object-fit: var(--orion-admin-logo-fit);
177
209
  width: 100%;
178
210
  }
179
211
 
212
+ .orion-admin-logo-mark {
213
+ background: var(--orion-admin-logo-bg);
214
+ border: 1px solid var(--orion-admin-logo-border);
215
+ border-radius: var(--orion-admin-logo-radius);
216
+ box-shadow: var(--orion-admin-logo-shadow);
217
+ box-sizing: border-box;
218
+ padding: var(--orion-admin-logo-padding);
219
+ }
220
+
221
+ .orion-admin-logo-image {
222
+ display: block;
223
+ height: 100%;
224
+ object-fit: var(--orion-admin-logo-fit);
225
+ width: 100%;
226
+ }
227
+
228
+ .orion-admin-logo-image--dark {
229
+ display: none;
230
+ }
231
+
180
232
  .orion-admin-brand-text {
181
233
  min-width: 0;
182
234
  }
@@ -945,12 +997,34 @@
945
997
  }
946
998
 
947
999
  .template-minimal.login .login__brand .orion-admin-logo-mark {
1000
+ --orion-admin-logo-bg: var(
1001
+ --orion-cms-logo-dark-bg,
1002
+ color-mix(in srgb, var(--orion-admin-login-panel-bg) 88%, white)
1003
+ );
1004
+ --orion-admin-logo-border: var(
1005
+ --orion-cms-logo-dark-border,
1006
+ color-mix(in srgb, var(--brand-secondary) 26%, rgba(255, 255, 255, 0.28))
1007
+ );
1008
+ --orion-admin-logo-fit: var(--orion-cms-logo-dark-fit, contain);
1009
+ --orion-admin-logo-padding: var(--orion-cms-logo-dark-padding, clamp(0.32rem, 0.8vw, 0.48rem));
1010
+ --orion-admin-logo-shadow: var(
1011
+ --orion-cms-logo-dark-shadow,
1012
+ 0 18px 36px rgba(7, 13, 24, 0.18),
1013
+ inset 0 1px 0 rgba(255, 255, 255, 0.72)
1014
+ );
948
1015
  border-radius: var(--orion-admin-logo-radius) !important;
949
- box-shadow: var(--orion-admin-shadow-card);
950
1016
  height: 58px !important;
951
1017
  width: 58px !important;
952
1018
  }
953
1019
 
1020
+ .template-minimal.login .login__brand .orion-admin-logo-mark .orion-admin-logo-image--dark {
1021
+ display: block;
1022
+ }
1023
+
1024
+ .template-minimal.login .login__brand .orion-admin-logo-mark .orion-admin-logo-image--default:not(.is-only-logo) {
1025
+ display: none;
1026
+ }
1027
+
954
1028
  .template-minimal.login .login__brand .orion-admin-logo-wordmark {
955
1029
  color: var(--orion-admin-login-hero-text) !important;
956
1030
  font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
@@ -962,7 +1036,8 @@
962
1036
  .orion-admin-login-intro {
963
1037
  color: var(--orion-admin-login-hero-text);
964
1038
  display: grid;
965
- gap: 1.15rem;
1039
+ align-content: end;
1040
+ gap: 0.95rem;
966
1041
  padding: clamp(1.6rem, 4vw, 2.75rem) clamp(2rem, 4vw, 3rem) clamp(2.2rem, 5vw, 3.25rem);
967
1042
  }
968
1043
 
@@ -984,45 +1059,29 @@
984
1059
  .orion-admin-login-intro h1 {
985
1060
  color: var(--orion-admin-login-hero-text);
986
1061
  font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
987
- font-size: clamp(2.4rem, 3.8vw, 3.6rem);
988
- letter-spacing: -0.05em;
989
- line-height: 0.98;
1062
+ font-size: clamp(2.35rem, 3.4vw, 3.25rem);
1063
+ letter-spacing: -0.045em;
1064
+ line-height: 1;
990
1065
  margin: 0;
991
- max-width: 10ch;
1066
+ max-width: 11ch;
992
1067
  }
993
1068
 
994
1069
  .orion-admin-login-intro > p {
995
1070
  color: var(--orion-admin-login-hero-muted);
996
- font-size: 1.02rem;
997
- line-height: 1.75;
1071
+ font-size: 0.98rem;
1072
+ line-height: 1.7;
998
1073
  margin: 0;
999
- max-width: 34rem;
1074
+ max-width: 28rem;
1000
1075
  }
1001
1076
 
1002
- .orion-admin-login-note-grid {
1003
- display: grid;
1004
- gap: 0.85rem;
1005
- margin-top: 0.35rem;
1006
- }
1007
-
1008
- .orion-admin-login-note {
1009
- background: color-mix(in srgb, var(--orion-admin-login-hero-text) 8%, transparent);
1010
- border: 1px solid color-mix(in srgb, var(--orion-admin-login-hero-text) 12%, transparent);
1011
- border-radius: var(--orion-admin-radius-md);
1012
- display: grid;
1013
- gap: 0.3rem;
1014
- padding: 1rem 1.05rem;
1015
- }
1016
-
1017
- .orion-admin-login-note strong {
1018
- color: var(--orion-admin-login-hero-text);
1019
- font-size: 0.96rem;
1020
- }
1021
-
1022
- .orion-admin-login-note span {
1077
+ .orion-admin-login-caption {
1078
+ border-top: 1px solid color-mix(in srgb, var(--orion-admin-login-hero-text) 14%, transparent);
1023
1079
  color: var(--orion-admin-login-hero-muted);
1024
1080
  font-size: 0.9rem;
1081
+ font-weight: 600;
1025
1082
  line-height: 1.55;
1083
+ margin-top: 0.2rem !important;
1084
+ padding-top: 1rem;
1026
1085
  }
1027
1086
 
1028
1087
  .template-minimal.login .login__form {
@@ -1042,8 +1101,8 @@
1042
1101
 
1043
1102
  .template-minimal.login .login__form::before {
1044
1103
  color: var(--brand-secondary);
1045
- content: 'Welcome back';
1046
- font-size: 0.76rem;
1104
+ content: 'Sign in';
1105
+ font-size: 0.78rem;
1047
1106
  font-weight: 800;
1048
1107
  letter-spacing: 0.18em;
1049
1108
  margin-bottom: -0.1rem;
@@ -1051,20 +1110,24 @@
1051
1110
  }
1052
1111
 
1053
1112
  .template-minimal.login .login__form::after {
1054
- color: var(--orion-admin-login-panel-text);
1055
- content: 'Sign in to continue into your studio workspace.';
1056
- font-family: var(--orion-cms-font-heading, var(--orion-cms-font-heading-resolved, Georgia, 'Times New Roman', serif));
1057
- font-size: clamp(1.6rem, 2.3vw, 2.15rem);
1058
- letter-spacing: -0.035em;
1059
- line-height: 1.1;
1060
- margin-bottom: 0.35rem;
1113
+ content: none;
1061
1114
  }
1062
1115
 
1063
1116
  .template-minimal.login .login__form__inputWrap {
1117
+ display: grid;
1064
1118
  gap: 1rem;
1065
1119
  margin-bottom: 0;
1066
1120
  }
1067
1121
 
1122
+ .template-minimal.login .login__form__inputWrap::before {
1123
+ color: var(--orion-admin-login-panel-muted);
1124
+ content: 'Use the email and password for your admin account.';
1125
+ display: block;
1126
+ font-size: 0.96rem;
1127
+ line-height: 1.55;
1128
+ margin-bottom: 0.15rem;
1129
+ }
1130
+
1068
1131
  .template-minimal.login .login__form .field-type {
1069
1132
  display: grid;
1070
1133
  gap: 0.42rem;
@@ -1564,6 +1627,245 @@
1564
1627
  gap: 0.75rem;
1565
1628
  }
1566
1629
 
1630
+ .orion-admin-workflow-editor {
1631
+ gap: 1rem;
1632
+ }
1633
+
1634
+ .orion-admin-workflow-editor-header,
1635
+ .orion-admin-field-list-header {
1636
+ align-items: flex-start;
1637
+ display: flex;
1638
+ flex-wrap: wrap;
1639
+ gap: 0.8rem;
1640
+ justify-content: space-between;
1641
+ }
1642
+
1643
+ .orion-admin-workflow-node {
1644
+ align-items: center;
1645
+ background:
1646
+ linear-gradient(180deg, color-mix(in srgb, var(--orion-admin-card-bg) 88%, white), var(--orion-admin-card-bg));
1647
+ border: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 80%, transparent);
1648
+ border-radius: var(--orion-admin-radius-md);
1649
+ display: grid;
1650
+ gap: 0.75rem;
1651
+ grid-template-columns: auto minmax(0, 1fr) auto;
1652
+ padding: 0.85rem;
1653
+ position: relative;
1654
+ }
1655
+
1656
+ .orion-admin-step-editor:not(:last-child)::after {
1657
+ background: color-mix(in srgb, var(--orion-admin-accent) 34%, var(--orion-admin-card-border));
1658
+ bottom: -0.85rem;
1659
+ content: '';
1660
+ height: 0.85rem;
1661
+ left: 1.42rem;
1662
+ position: absolute;
1663
+ width: 2px;
1664
+ }
1665
+
1666
+ .orion-admin-workflow-node-number,
1667
+ .orion-admin-step-editor-index,
1668
+ .orion-admin-field-order {
1669
+ align-items: center;
1670
+ background: var(--orion-admin-accent-subtle);
1671
+ border: 1px solid var(--orion-admin-accent-border);
1672
+ border-radius: var(--orion-admin-radius-pill);
1673
+ color: var(--orion-admin-accent);
1674
+ display: inline-flex;
1675
+ flex: 0 0 auto;
1676
+ font-size: 0.78rem;
1677
+ font-variant-numeric: tabular-nums;
1678
+ font-weight: 900;
1679
+ justify-content: center;
1680
+ line-height: 1;
1681
+ text-align: center;
1682
+ }
1683
+
1684
+ .orion-admin-workflow-node-number {
1685
+ box-sizing: border-box;
1686
+ height: 2rem;
1687
+ padding-top: 5px;
1688
+ width: 2rem;
1689
+ }
1690
+
1691
+ .orion-admin-workflow-node-body {
1692
+ display: grid;
1693
+ gap: 0.18rem;
1694
+ min-width: 0;
1695
+ }
1696
+
1697
+ .orion-admin-workflow-node-body strong,
1698
+ .orion-admin-step-editor-title,
1699
+ .orion-admin-field-editor-title {
1700
+ color: var(--orion-admin-text);
1701
+ overflow-wrap: anywhere;
1702
+ }
1703
+
1704
+ .orion-admin-workflow-node-body span,
1705
+ .orion-admin-workflow-node-destination,
1706
+ .orion-admin-step-editor-meta,
1707
+ .orion-admin-field-editor-meta,
1708
+ .orion-admin-field-list-header span {
1709
+ color: var(--orion-admin-muted);
1710
+ font-size: 0.86rem;
1711
+ }
1712
+
1713
+ .orion-admin-workflow-node-destination {
1714
+ background: color-mix(in srgb, var(--orion-admin-card-bg) 78%, white);
1715
+ border: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 72%, transparent);
1716
+ border-radius: var(--orion-admin-radius-pill);
1717
+ font-weight: 800;
1718
+ padding: 0.35rem 0.65rem;
1719
+ white-space: nowrap;
1720
+ }
1721
+
1722
+ .orion-admin-step-editor-list,
1723
+ .orion-admin-field-editor-list {
1724
+ display: grid;
1725
+ gap: 0.85rem;
1726
+ }
1727
+
1728
+ .orion-admin-step-editor,
1729
+ .orion-admin-field-editor {
1730
+ background: color-mix(in srgb, var(--orion-admin-card-bg) 92%, white);
1731
+ border: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 84%, transparent);
1732
+ border-radius: var(--orion-admin-radius-md);
1733
+ overflow: hidden;
1734
+ position: relative;
1735
+ }
1736
+
1737
+ .orion-admin-step-editor {
1738
+ background:
1739
+ linear-gradient(180deg, color-mix(in srgb, var(--orion-admin-card-bg) 97%, white), var(--orion-admin-card-bg));
1740
+ box-shadow:
1741
+ 0 1px 0 color-mix(in srgb, var(--orion-admin-card-bg) 88%, white) inset,
1742
+ 0 10px 24px color-mix(in srgb, var(--orion-admin-text) 5%, transparent);
1743
+ }
1744
+
1745
+ .orion-admin-step-editor[open] {
1746
+ background:
1747
+ linear-gradient(180deg, color-mix(in srgb, var(--orion-admin-accent-subtle) 38%, var(--orion-admin-card-bg)), var(--orion-admin-card-bg));
1748
+ border-color: color-mix(in srgb, var(--orion-admin-accent) 34%, var(--orion-admin-card-border));
1749
+ }
1750
+
1751
+ .orion-admin-step-editor[open]::before {
1752
+ background: linear-gradient(180deg, var(--orion-admin-accent), color-mix(in srgb, var(--orion-admin-accent) 46%, var(--brand-secondary)));
1753
+ bottom: 0;
1754
+ content: '';
1755
+ left: 0;
1756
+ position: absolute;
1757
+ top: 0;
1758
+ width: 4px;
1759
+ }
1760
+
1761
+ .orion-admin-step-editor-summary,
1762
+ .orion-admin-field-editor-summary {
1763
+ align-items: center;
1764
+ cursor: pointer;
1765
+ display: grid;
1766
+ gap: 0.65rem;
1767
+ grid-template-columns: auto minmax(0, 1fr) minmax(96px, auto) auto auto;
1768
+ list-style: none;
1769
+ min-height: 52px;
1770
+ padding: 0.75rem 0.9rem;
1771
+ }
1772
+
1773
+ .orion-admin-step-editor-summary {
1774
+ padding-left: 1rem;
1775
+ }
1776
+
1777
+ .orion-admin-step-editor-summary::-webkit-details-marker,
1778
+ .orion-admin-field-editor-summary::-webkit-details-marker {
1779
+ display: none;
1780
+ }
1781
+
1782
+ .orion-admin-step-editor-summary::after,
1783
+ .orion-admin-field-editor-summary::after {
1784
+ color: var(--orion-admin-muted);
1785
+ content: 'Edit';
1786
+ font-size: 0.78rem;
1787
+ font-weight: 900;
1788
+ justify-self: end;
1789
+ text-transform: uppercase;
1790
+ }
1791
+
1792
+ .orion-admin-step-editor[open] > .orion-admin-step-editor-summary::after,
1793
+ .orion-admin-field-editor[open] > .orion-admin-field-editor-summary::after {
1794
+ content: 'Hide';
1795
+ }
1796
+
1797
+ .orion-admin-step-editor-index {
1798
+ min-height: 1.8rem;
1799
+ padding: 0 0.58rem;
1800
+ }
1801
+
1802
+ .orion-admin-field-order {
1803
+ box-sizing: border-box;
1804
+ height: 1.75rem;
1805
+ padding-top: 5px;
1806
+ width: 1.75rem;
1807
+ }
1808
+
1809
+ .orion-admin-step-editor-body,
1810
+ .orion-admin-field-editor-body {
1811
+ border-top: 1px solid color-mix(in srgb, var(--orion-admin-card-border) 72%, transparent);
1812
+ display: grid;
1813
+ gap: 0.85rem;
1814
+ padding: 0.95rem;
1815
+ }
1816
+
1817
+ .orion-admin-step-editor-body {
1818
+ background: color-mix(in srgb, var(--orion-admin-card-bg) 86%, var(--orion-admin-main-bg));
1819
+ padding-left: 1.15rem;
1820
+ }
1821
+
1822
+ .orion-admin-step-editor-actions {
1823
+ display: flex;
1824
+ flex-wrap: wrap;
1825
+ gap: 0.55rem;
1826
+ }
1827
+
1828
+ .orion-admin-step-settings-grid {
1829
+ display: grid;
1830
+ gap: 0.75rem;
1831
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
1832
+ }
1833
+
1834
+ .orion-admin-field-editor {
1835
+ background: color-mix(in srgb, var(--orion-admin-main-bg) 72%, var(--orion-admin-card-bg));
1836
+ border-color: color-mix(in srgb, var(--brand-secondary) 22%, var(--orion-admin-card-border));
1837
+ border-radius: var(--orion-admin-radius-sm);
1838
+ box-shadow: none;
1839
+ }
1840
+
1841
+ .orion-admin-field-editor-summary {
1842
+ grid-template-columns: auto minmax(0, 1fr) minmax(96px, auto) auto;
1843
+ padding: 0.68rem 0.75rem;
1844
+ }
1845
+
1846
+ .orion-admin-field-editor-list {
1847
+ background:
1848
+ linear-gradient(180deg, color-mix(in srgb, var(--orion-admin-main-bg) 74%, var(--orion-admin-card-bg)), color-mix(in srgb, var(--orion-admin-main-bg) 88%, white));
1849
+ border: 1px solid color-mix(in srgb, var(--brand-secondary) 18%, var(--orion-admin-card-border));
1850
+ border-radius: var(--orion-admin-radius-md);
1851
+ padding: 0.7rem;
1852
+ }
1853
+
1854
+ .orion-admin-field-order {
1855
+ background: color-mix(in srgb, var(--brand-secondary) 10%, var(--orion-admin-card-bg));
1856
+ border-color: color-mix(in srgb, var(--brand-secondary) 32%, var(--orion-admin-card-border));
1857
+ color: color-mix(in srgb, var(--brand-secondary) 74%, var(--orion-admin-text));
1858
+ }
1859
+
1860
+ .orion-admin-field-editor-meta {
1861
+ background: color-mix(in srgb, var(--brand-secondary) 8%, var(--orion-admin-card-bg));
1862
+ border: 1px solid color-mix(in srgb, var(--brand-secondary) 18%, transparent);
1863
+ border-radius: var(--orion-admin-radius-pill);
1864
+ font-weight: 800;
1865
+ justify-self: end;
1866
+ padding: 0.28rem 0.55rem;
1867
+ }
1868
+
1567
1869
  .orion-admin-response-stack.is-scrollable {
1568
1870
  mask-image: linear-gradient(180deg, #000 0%, #000 92%, transparent 100%);
1569
1871
  max-height: 34rem;
package/dist/admin.css CHANGED
@@ -260,6 +260,8 @@ html[data-orion-brand]:not([data-theme='dark']) {
260
260
  --color-base-50: color-mix(in srgb, var(--brand-primary) 2%, rgb(245, 245, 245));
261
261
  --color-base-100: color-mix(in srgb, var(--brand-primary) 3%, rgb(235, 235, 235));
262
262
  --color-base-150: color-mix(in srgb, var(--brand-primary) 4%, rgb(221, 221, 221));
263
+ --orion-cms-selection-bg-resolved: color-mix(in srgb, var(--brand-primary) 16%, white);
264
+ --orion-cms-selection-text-resolved: var(--theme-text);
263
265
  }
264
266
 
265
267
  /* ============================================================
@@ -311,6 +313,8 @@ html[data-orion-brand][data-theme='dark'] {
311
313
  --color-base-900: color-mix(in srgb, var(--brand-primary) 4%, rgb(20, 20, 20));
312
314
  --color-base-850: color-mix(in srgb, var(--brand-primary) 3%, rgb(34, 34, 34));
313
315
  --color-base-800: color-mix(in srgb, var(--brand-primary) 2%, rgb(47, 47, 47));
316
+ --orion-cms-selection-bg-resolved: color-mix(in srgb, var(--brand-primary) 28%, var(--color-base-900));
317
+ --orion-cms-selection-text-resolved: var(--theme-text);
314
318
  }
315
319
 
316
320
  /* ============================================================
@@ -321,11 +325,23 @@ html {
321
325
  }
322
326
 
323
327
  html[data-orion-brand] ::selection {
324
- background: color-mix(in srgb, var(--brand-primary) 18%, white);
328
+ background: var(--orion-cms-selection-bg, var(--orion-cms-selection-bg-resolved));
329
+ color: var(--orion-cms-selection-text, var(--orion-cms-selection-text-resolved));
325
330
  }
326
331
 
327
332
  html[data-orion-brand][data-theme='dark'] ::selection {
328
- background: color-mix(in srgb, var(--brand-primary) 26%, black);
333
+ background: var(--orion-cms-selection-bg, var(--orion-cms-selection-bg-resolved));
334
+ color: var(--orion-cms-selection-text, var(--orion-cms-selection-text-resolved));
335
+ }
336
+
337
+ html[data-orion-brand] ::-moz-selection {
338
+ background: var(--orion-cms-selection-bg, var(--orion-cms-selection-bg-resolved));
339
+ color: var(--orion-cms-selection-text, var(--orion-cms-selection-text-resolved));
340
+ }
341
+
342
+ html[data-orion-brand][data-theme='dark'] ::-moz-selection {
343
+ background: var(--orion-cms-selection-bg, var(--orion-cms-selection-bg-resolved));
344
+ color: var(--orion-cms-selection-text, var(--orion-cms-selection-text-resolved));
329
345
  }
330
346
 
331
347
  /* ============================================================
@@ -103,14 +103,21 @@ function AdminShellClient({
103
103
  onLogout,
104
104
  storageKey = "orion-admin-shell-collapsed"
105
105
  }) {
106
- const [collapsed, setCollapsed] = useState(false);
106
+ const [collapsed, setCollapsed] = useState(() => {
107
+ if (typeof window === "undefined") {
108
+ return true;
109
+ }
110
+ try {
111
+ return window.localStorage.getItem(storageKey) === "1";
112
+ } catch {
113
+ return false;
114
+ }
115
+ });
107
116
  const [loggingOut, setLoggingOut] = useState(false);
108
117
  useEffect(() => {
109
118
  try {
110
119
  const stored = window.localStorage.getItem(storageKey);
111
- if (stored === "1") {
112
- setCollapsed(true);
113
- }
120
+ setCollapsed(stored === "1");
114
121
  } catch {
115
122
  }
116
123
  }, [storageKey]);