@pantheon-systems/puck-css 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/data/dal/init.d.ts.map +1 -1
  2. package/dist/data/dal/init.js +10 -0
  3. package/dist/data/dal/init.js.map +1 -1
  4. package/dist/data/dal/p1-store.d.ts +12 -0
  5. package/dist/data/dal/p1-store.d.ts.map +1 -1
  6. package/dist/data/dal/p1-store.js +14 -1
  7. package/dist/data/dal/p1-store.js.map +1 -1
  8. package/dist/editor/components/merge-preview/MergePreviewRenderer.d.ts.map +1 -1
  9. package/dist/editor/components/merge-preview/MergePreviewRenderer.js +17 -6
  10. package/dist/editor/components/merge-preview/MergePreviewRenderer.js.map +1 -1
  11. package/dist/editor/plugin/P1Plugin.d.ts +6 -0
  12. package/dist/editor/plugin/P1Plugin.d.ts.map +1 -1
  13. package/dist/editor/plugin/P1Plugin.js +41 -19
  14. package/dist/editor/plugin/P1Plugin.js.map +1 -1
  15. package/dist/editor/useP1Editor.d.ts.map +1 -1
  16. package/dist/editor/useP1Editor.js +1 -0
  17. package/dist/editor/useP1Editor.js.map +1 -1
  18. package/dist/editor/useP1Plugin.d.ts +4 -0
  19. package/dist/editor/useP1Plugin.d.ts.map +1 -1
  20. package/dist/editor/useP1Plugin.js +2 -0
  21. package/dist/editor/useP1Plugin.js.map +1 -1
  22. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.d.ts.map +1 -1
  23. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js +19 -7
  24. package/dist/merge/components/merge-resolution/CherryPickVisualPanel.js.map +1 -1
  25. package/dist/merge/utils/namespacePuckData.d.ts +10 -0
  26. package/dist/merge/utils/namespacePuckData.d.ts.map +1 -0
  27. package/dist/merge/utils/namespacePuckData.js +19 -0
  28. package/dist/merge/utils/namespacePuckData.js.map +1 -0
  29. package/dist/p1/editor/editor-preview-resolve.d.ts +4 -1
  30. package/dist/p1/editor/editor-preview-resolve.d.ts.map +1 -1
  31. package/dist/p1/editor/editor-preview-resolve.js +18 -17
  32. package/dist/p1/editor/editor-preview-resolve.js.map +1 -1
  33. package/dist/pds/components/AgentChip.d.ts +2 -0
  34. package/dist/pds/components/AgentChip.d.ts.map +1 -1
  35. package/dist/pds/components/AgentChip.js +4 -1
  36. package/dist/pds/components/AgentChip.js.map +1 -1
  37. package/dist/pds/components/P1EditorHeader.d.ts +3 -8
  38. package/dist/pds/components/P1EditorHeader.d.ts.map +1 -1
  39. package/dist/pds/components/P1EditorHeader.js +16 -51
  40. package/dist/pds/components/P1EditorHeader.js.map +1 -1
  41. package/dist/pds/components/P1EditorHeader.module.css +43 -17
  42. package/dist/pds/components/P1EditorSubheader.d.ts +13 -1
  43. package/dist/pds/components/P1EditorSubheader.d.ts.map +1 -1
  44. package/dist/pds/components/P1EditorSubheader.js +5 -3
  45. package/dist/pds/components/P1EditorSubheader.js.map +1 -1
  46. package/dist/pds/components/P1EditorSubheader.module.css +31 -2
  47. package/dist/pds/components/PublishControl.d.ts +4 -1
  48. package/dist/pds/components/PublishControl.d.ts.map +1 -1
  49. package/dist/pds/components/PublishControl.js +27 -10
  50. package/dist/pds/components/PublishControl.js.map +1 -1
  51. package/dist/pds/components/WorkstreamSwitcher.d.ts.map +1 -1
  52. package/dist/pds/components/WorkstreamSwitcher.js +8 -3
  53. package/dist/pds/components/WorkstreamSwitcher.js.map +1 -1
  54. package/dist/pds/components/WorkstreamSwitcher.module.css +12 -2
  55. package/package.json +8 -3
  56. package/src/styles.css +33 -0
@@ -35,6 +35,23 @@
35
35
  The PDS component defaults to 3.052rem icon height; we scale it down
36
36
  to fit the compact 52px editor header. */
37
37
 
38
+ .logoLink {
39
+ flex-shrink: 0;
40
+ text-decoration: none;
41
+ display: inline-flex;
42
+ align-items: center;
43
+ cursor: pointer;
44
+ transition: opacity 0.2s cubic-bezier(0.2, 0, 0, 1);
45
+ }
46
+
47
+ .logoLink:hover {
48
+ opacity: 0.7;
49
+ }
50
+
51
+ .logoLink .logo {
52
+ cursor: pointer;
53
+ }
54
+
38
55
  .logo {
39
56
  flex-shrink: 0;
40
57
  user-select: none;
@@ -52,30 +69,21 @@
52
69
  padding-inline-end: 0;
53
70
  }
54
71
 
55
- /* ── Site selector button ───────────────────────────────────────────── */
72
+ /* ── Site label ───────────────────────────────────────────── */
56
73
 
57
- .siteSelector {
74
+ .siteLabel {
58
75
  display: inline-flex;
59
76
  align-items: center;
60
- gap: 0.41rem;
61
77
  padding: 0.41rem 0.64rem;
62
- background: transparent;
63
- border: 1px solid var(--pds-color-border-default, oklch(0.9401 0 0));
64
- border-radius: var(--pds-border-radius-default, 0.188rem);
65
78
  font-family: var(--pds-typography-ff-default, 'Inter', sans-serif);
66
79
  font-size: var(--pds-typography-size-s, 0.875rem);
80
+ font-weight: var(--pds-typography-fw-medium, 500);
67
81
  color: var(--pds-color-fg-default, oklch(0.2046 0 0));
68
- cursor: pointer;
69
82
  white-space: nowrap;
70
83
  line-height: 1;
71
84
  flex-shrink: 0;
72
85
  }
73
86
 
74
- .siteSelector:hover {
75
- background: var(--pds-color-button-secondary-background-hover, oklch(0.96 0 0));
76
- border-color: var(--pds-color-button-secondary-border-hover, oklch(0.75 0 0));
77
- }
78
-
79
87
  /* ── Vertical divider between site selector and workstream switcher ── */
80
88
  /* Prototype: <div style={{ width: 1, height: 20, background: c.borderSubtle }} /> */
81
89
 
@@ -95,6 +103,14 @@
95
103
  position: relative;
96
104
  }
97
105
 
106
+ /* ── Page selector button group ────────────────────────────────────────────── */
107
+
108
+ .pageSelectorGroup {
109
+ display: inline-flex;
110
+ align-items: center;
111
+ flex-shrink: 0;
112
+ }
113
+
98
114
  /* ── Page selector button ────────────────────────────────────────────── */
99
115
  /* Mirrors the WorkstreamSwitcher trigger styling */
100
116
 
@@ -105,8 +121,8 @@
105
121
  height: 2rem;
106
122
  padding: 0.5rem 0.64rem;
107
123
  background: transparent;
108
- border: 1px solid oklch(0.96 0 0); /* borderSubtle */
109
- border-radius: var(--pds-border-radius-default, 0.188rem);
124
+ border: 1px solid var(--pds-color-border-input, oklch(0.8853 0 0));
125
+ border-radius: var(--pds-border-radius-button, 3.5rem);
110
126
  font-family: var(--pds-typography-ff-default, 'Inter', sans-serif);
111
127
  font-size: var(--pds-typography-size-s, 0.875rem);
112
128
  font-weight: var(--pds-typography-fw-medium, 500);
@@ -128,6 +144,12 @@
128
144
  border-color: oklch(0.75 0 0); /* borderStrong */
129
145
  }
130
146
 
147
+ /* When external link button follows page selector, create button group */
148
+ .pageSelector:has(+ .externalLinkButton) {
149
+ border-top-right-radius: 0;
150
+ border-bottom-right-radius: 0;
151
+ }
152
+
131
153
  /* ── External link button ──────────────────────────────────────────────── */
132
154
 
133
155
  .externalLinkButton {
@@ -138,8 +160,10 @@
138
160
  height: 2rem;
139
161
  padding: 0.5rem;
140
162
  background: transparent;
141
- border: 1px solid oklch(0.96 0 0); /* borderSubtle */
142
- border-radius: var(--pds-border-radius-default, 0.188rem);
163
+ border: 1px solid var(--pds-color-border-input, oklch(0.8853 0 0));
164
+ border-radius: var(--pds-border-radius-button, 3.5rem);
165
+ border-top-left-radius: 0;
166
+ border-bottom-left-radius: 0;
143
167
  color: var(--pds-color-fg-default, oklch(0.2046 0 0));
144
168
  cursor: pointer;
145
169
  text-decoration: none;
@@ -147,12 +171,14 @@
147
171
  background 0.2s cubic-bezier(0.2, 0, 0, 1),
148
172
  border-color 0.2s cubic-bezier(0.2, 0, 0, 1);
149
173
  flex-shrink: 0;
150
- margin-left: 0.5rem;
174
+ margin-left: -1px;
151
175
  }
152
176
 
153
177
  .externalLinkButton:hover {
154
178
  background: oklch(0.96 0 0); /* bgSubtle */
155
179
  border-color: oklch(0.75 0 0); /* borderStrong */
180
+ position: relative;
181
+ z-index: 1; /* Bring to front on hover so border is visible */
156
182
  }
157
183
 
158
184
  /* ── Spacer ──────────────────────────────────────────────────────────── */
@@ -9,6 +9,7 @@
9
9
  * bar (P1EditorHeader), shown only when not on the live workstream.
10
10
  */
11
11
  import React from 'react';
12
+ import type { Branch } from '@pantheon-systems/css-client';
12
13
  import type { DocState } from '../types.js';
13
14
  export interface SubheaderActor {
14
15
  id: string;
@@ -16,6 +17,9 @@ export interface SubheaderActor {
16
17
  avatar?: string;
17
18
  isAgent?: boolean;
18
19
  intent?: string;
20
+ /** Reserved for future use (e.g. linking to user profile). Not passed to AgentChip. */
21
+ requestedById?: string;
22
+ requestedByName?: string;
19
23
  }
20
24
  export interface P1EditorSubheaderProps {
21
25
  puckActions: React.ReactNode;
@@ -27,6 +31,7 @@ export interface P1EditorSubheaderProps {
27
31
  onStopAgent: (id: string) => void;
28
32
  onPublish?: () => Promise<void> | void;
29
33
  onReviewAndPublish?: () => void;
34
+ onReviewWorkstream?: () => void;
30
35
  onCreateWorkstream?: () => void;
31
36
  onDeleteDocument?: () => Promise<void> | void;
32
37
  hasPast: boolean;
@@ -35,8 +40,15 @@ export interface P1EditorSubheaderProps {
35
40
  onRedo: () => void;
36
41
  leftPanelVisible?: boolean;
37
42
  rightPanelVisible?: boolean;
43
+ pluginRailVisible?: boolean;
38
44
  onToggleLeftPanel?: () => void;
39
45
  onToggleRightPanel?: () => void;
46
+ onTogglePluginRail?: () => void;
47
+ branches: Branch[];
48
+ currentBranch: Branch | null;
49
+ onSwitchBranch: (id: string) => void;
50
+ onCompareWithLive: () => void;
51
+ onCreateBranch?: (name: string) => Promise<void>;
40
52
  }
41
- export declare function P1EditorSubheader({ puckActions, docState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, onToggleLeftPanel, onToggleRightPanel, }: P1EditorSubheaderProps): React.ReactElement;
53
+ export declare function P1EditorSubheader({ puckActions, docState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, pluginRailVisible, onToggleLeftPanel, onToggleRightPanel, onTogglePluginRail, branches, currentBranch, onSwitchBranch, onCompareWithLive, onCreateBranch, }: P1EditorSubheaderProps): React.ReactElement;
42
54
  //# sourceMappingURL=P1EditorSubheader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"P1EditorSubheader.d.ts","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CA2G7C"}
1
+ {"version":3,"file":"P1EditorSubheader.d.ts","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEhC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CA8I7C"}
@@ -3,15 +3,17 @@ import { IconButton } from '@pantheon-systems/pds-toolkit-react';
3
3
  import { AgentChip } from './AgentChip.js';
4
4
  import { PresenceStack } from './PresenceStack.js';
5
5
  import { PublishControl } from './PublishControl.js';
6
+ import { WorkstreamSwitcher } from './WorkstreamSwitcher.js';
6
7
  import styles from './P1EditorSubheader.module.css';
7
- export function P1EditorSubheader({ puckActions, docState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, onToggleLeftPanel, onToggleRightPanel, }) {
8
- return (_jsxs("div", { "data-testid": "p1-editor-subheader", className: styles.subheader, children: [_jsxs("div", { "data-testid": "panel-toggles", className: styles.panelToggles, children: [_jsx(IconButton, { ariaLabel: "Toggle left panel", iconName: "tableRows", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": leftPanelVisible, onClick: onToggleLeftPanel }), _jsx(IconButton, { ariaLabel: "Toggle right panel", iconName: "penField", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": rightPanelVisible, onClick: onToggleRightPanel })] }), puckActions, _jsxs("div", { "data-testid": "device-selector", className: styles.historyGroup, children: [_jsx(IconButton, { "data-testid": "undo-btn", ariaLabel: "Undo", iconName: "rotateLeft", size: "s", disabled: !hasPast, onClick: onUndo, hasTooltip: false, hasBorder: false }), _jsx(IconButton, { "data-testid": "redo-btn", ariaLabel: "Redo", iconName: "rotateRight", size: "s", disabled: !hasFuture, onClick: onRedo, hasTooltip: false, hasBorder: false })] }), _jsx("div", { className: styles.spacer }), _jsxs("div", { className: styles.actorsArea, children: [agents.map((actor) => (_jsx(AgentChip, { id: actor.id, agent: {
8
+ export function P1EditorSubheader({ puckActions, docState, hasDrift, context, agents, humanActors, onStopAgent, onPublish, onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, hasPast, hasFuture, onUndo, onRedo, leftPanelVisible, rightPanelVisible, pluginRailVisible, onToggleLeftPanel, onToggleRightPanel, onTogglePluginRail, branches, currentBranch, onSwitchBranch, onCompareWithLive, onCreateBranch, }) {
9
+ return (_jsxs("div", { "data-testid": "p1-editor-subheader", className: styles.subheader, children: [_jsxs("div", { "data-testid": "panel-toggles", className: styles.panelToggles, children: [_jsx(IconButton, { ariaLabel: "Toggle plugin rail", iconName: pluginRailVisible ? "angleRight" : "angleLeft", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": pluginRailVisible, onClick: onTogglePluginRail }), _jsx(IconButton, { ariaLabel: "Toggle left panel", iconName: "tableRows", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": leftPanelVisible, onClick: onToggleLeftPanel }), _jsx(IconButton, { ariaLabel: "Toggle right panel", iconName: "tableRows", size: "s", hasTooltip: false, hasBorder: false, "aria-pressed": rightPanelVisible, onClick: onToggleRightPanel, className: styles.rightPanelToggle })] }), puckActions, _jsxs("div", { "data-testid": "device-selector", className: styles.historyGroup, children: [_jsx(IconButton, { "data-testid": "undo-btn", ariaLabel: "Undo", iconName: "rotateLeft", size: "s", disabled: !hasPast, onClick: onUndo, hasTooltip: false, hasBorder: false }), _jsx(IconButton, { "data-testid": "redo-btn", ariaLabel: "Redo", iconName: "rotateRight", size: "s", disabled: !hasFuture, onClick: onRedo, hasTooltip: false, hasBorder: false })] }), _jsx("div", { className: styles.spacer }), _jsxs("div", { className: styles.actorsArea, children: [agents.map((actor) => (_jsx(AgentChip, { id: actor.id, agent: {
9
10
  id: actor.id,
10
11
  name: actor.name,
11
12
  initials: actor.name[0] ?? '',
12
13
  gradient: '',
13
14
  intent: actor.intent ?? '',
14
15
  workstream: '',
16
+ requestedByName: actor.requestedByName,
15
17
  }, currentWorkstream: "", onStop: () => onStopAgent(actor.id) }, actor.id))), humanActors.length > 0 && (_jsx(PresenceStack, { actors: humanActors.map((a) => ({
16
18
  id: a.id,
17
19
  actorId: a.id,
@@ -22,6 +24,6 @@ export function P1EditorSubheader({ puckActions, docState, hasDrift, context, ag
22
24
  state: 'active',
23
25
  lastActivityAt: new Date().toISOString(),
24
26
  joinedAt: new Date().toISOString(),
25
- })), maxVisible: 3 }))] }), _jsx("div", { className: styles.divider }), _jsx(PublishControl, { docState: docState, hasDrift: hasDrift, context: context, onPublish: onPublish, onReviewAndPublish: onReviewAndPublish, onCreateWorkstream: onCreateWorkstream, onDeleteDocument: onDeleteDocument })] }));
27
+ })), maxVisible: 3 }))] }), _jsx(PublishControl, { docState: docState, hasDrift: hasDrift, context: context, onPublish: onPublish, onReviewAndPublish: onReviewAndPublish, onReviewWorkstream: onReviewWorkstream, onCreateWorkstream: onCreateWorkstream, onDeleteDocument: onDeleteDocument, renderBadgeOnly: true }), _jsxs("div", { className: styles.workstreamPublishGroup, children: [_jsx(WorkstreamSwitcher, { branches: branches, currentBranch: currentBranch, onSwitch: onSwitchBranch, onCompareWithLive: onCompareWithLive, hideCompareButton: true, onCreateBranch: onCreateBranch }), _jsx(PublishControl, { docState: docState, hasDrift: hasDrift, context: context, onPublish: onPublish, onReviewAndPublish: onReviewAndPublish, onReviewWorkstream: onReviewWorkstream, onCreateWorkstream: onCreateWorkstream, onDeleteDocument: onDeleteDocument, renderButtonOnly: true })] })] }));
26
28
  }
27
29
  //# sourceMappingURL=P1EditorSubheader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"P1EditorSubheader.js","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"P1EditorSubheader.js","sourceRoot":"","sources":["../../../src/pds/components/P1EditorSubheader.tsx"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@
2
2
 
3
3
  .subheader {
4
4
  height: 48px;
5
- background: var(--pds-color-bg-default-secondary, oklch(0.9702 0 0));
6
- border-bottom: 1px solid var(--pds-color-border-separator, oklch(0.85 0 0));
5
+ background: var(--pds-color-bg-default, oklch(1 0 0));
6
+ border-top: 1px solid oklch(0.96 0 0); /* borderSubtle */
7
+ border-bottom: 1px solid oklch(0.96 0 0); /* borderSubtle */
7
8
  display: flex;
8
9
  align-items: center;
9
10
  padding: 0 var(--pds-spacing-m, 1rem);
@@ -67,6 +68,34 @@
67
68
  display: none;
68
69
  }
69
70
 
71
+ /* ── Right panel toggle rotation ─────────────────────────────────────── */
72
+
73
+ .rightPanelToggle :global(.pds-icon) {
74
+ transform: rotate(180deg);
75
+ }
76
+
77
+ /* ── Workstream + Publish button group ────────────────────────────────── */
78
+
79
+ .workstreamPublishGroup {
80
+ display: inline-flex;
81
+ align-items: center;
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ /* Remove rounded corners and right border on workstream switcher when grouped */
86
+ .workstreamPublishGroup :global(.WorkstreamSwitcher-module__vbDGzq__trigger) {
87
+ border-top-right-radius: 0;
88
+ border-bottom-right-radius: 0;
89
+ border-right: none;
90
+ }
91
+
92
+ /* Remove rounded corners on the left side of publish button when grouped */
93
+ .workstreamPublishGroup :global(.pds-split-button),
94
+ .workstreamPublishGroup :global(.pds-button) {
95
+ border-top-left-radius: 0;
96
+ border-bottom-left-radius: 0;
97
+ }
98
+
70
99
  /* ── Compact mobile layout (< 768px) ────────────────────────────────── */
71
100
 
72
101
  @media (max-width: 767px) {
@@ -6,10 +6,13 @@ interface PublishControlProps {
6
6
  context: 'branch' | 'main';
7
7
  onPublish?: () => Promise<void> | void;
8
8
  onReviewAndPublish?: () => void;
9
+ onReviewWorkstream?: () => void;
9
10
  onCreateWorkstream?: () => void;
10
11
  onSchedulePublish?: () => void;
11
12
  onDeleteDocument?: () => Promise<void> | void;
13
+ renderBadgeOnly?: boolean;
14
+ renderButtonOnly?: boolean;
12
15
  }
13
- export declare function PublishControl({ docState, hasDrift, context, onPublish, onReviewAndPublish, onCreateWorkstream, onDeleteDocument, }: PublishControlProps): React.ReactElement;
16
+ export declare function PublishControl({ docState, hasDrift, context, onPublish, onReviewAndPublish: _onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, renderBadgeOnly, renderButtonOnly, }: PublishControlProps): React.ReactElement;
14
17
  export {};
15
18
  //# sourceMappingURL=PublishControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublishControl.d.ts","sourceRoot":"","sources":["../../../src/pds/components/PublishControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/C;AAgCD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAgB,EAChB,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CAsF1C"}
1
+ {"version":3,"file":"PublishControl.d.ts","sourceRoot":"","sources":["../../../src/pds/components/PublishControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAyCD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAgB,EAChB,OAAO,EACP,SAAS,EACT,kBAAkB,EAAE,mBAAmB,EACvC,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAuB,EACvB,gBAAwB,GACzB,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CA6G1C"}
@@ -1,18 +1,26 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useCallback } from 'react';
3
3
  import { SplitButton, Button, useToast, ToastType } from '@pantheon-systems/pds-toolkit-react';
4
4
  import { DocStateBadge } from './DocStateBadge.js';
5
5
  import styles from './PublishControl.module.css';
6
6
  const PUBLISH_CONFIRM_TOAST_ID = 'publish-confirm';
7
7
  const DELETE_CONFIRM_TOAST_ID = 'delete-confirm';
8
- function buildActionItems(docState, hasDrift, context, onRequestPublish, onReviewAndPublish, onCreateWorkstream, onRequestDelete) {
8
+ function buildActionItems(docState, hasDrift, context, onRequestPublish, onReviewWorkstream, onCreateWorkstream, onRequestDelete) {
9
9
  const items = [];
10
- if (docState === 'modified' && !hasDrift) {
11
- items.push({ label: 'Publish to live', callback: () => onRequestPublish?.() });
12
- items.push({ label: 'Schedule publish', callback: () => { }, disabled: true });
13
- }
14
- else if (docState === 'modified' && hasDrift) {
15
- items.push({ label: 'Review & publish', callback: () => onReviewAndPublish?.() });
10
+ if (docState === 'modified') {
11
+ // When on a branch, always show "Review" regardless of drift
12
+ if (context === 'branch') {
13
+ items.push({ label: 'Review', callback: () => onReviewWorkstream?.() });
14
+ // Add "Publish this page to Live" with drift warning if needed
15
+ const publishLabel = hasDrift
16
+ ? 'Publish this page to Live\n⚠️ Page changed since you edited'
17
+ : 'Publish this page to Live';
18
+ items.push({ label: publishLabel, callback: () => onRequestPublish?.() });
19
+ }
20
+ else {
21
+ // On main, keep existing behavior
22
+ items.push({ label: 'Publish to live', callback: () => onRequestPublish?.() });
23
+ }
16
24
  items.push({ label: 'Schedule publish', callback: () => { }, disabled: true });
17
25
  }
18
26
  else if (docState === 'unpublished' && context === 'main') {
@@ -25,7 +33,7 @@ function buildActionItems(docState, hasDrift, context, onRequestPublish, onRevie
25
33
  }
26
34
  return items;
27
35
  }
28
- export function PublishControl({ docState, hasDrift = false, context, onPublish, onReviewAndPublish, onCreateWorkstream, onDeleteDocument, }) {
36
+ export function PublishControl({ docState, hasDrift = false, context, onPublish, onReviewAndPublish: _onReviewAndPublish, onReviewWorkstream, onCreateWorkstream, onDeleteDocument, renderBadgeOnly = false, renderButtonOnly = false, }) {
29
37
  const [addToast, toastApi] = useToast();
30
38
  const handlePublishRequest = useCallback(() => {
31
39
  addToast(ToastType.Warning, _jsxs("div", { className: styles.confirmContent, children: [_jsx("span", { children: "Publish directly to live site?" }), _jsxs("div", { className: "pds-button-group", children: [_jsx(Button, { label: "Confirm", onClick: () => {
@@ -39,8 +47,17 @@ export function PublishControl({ docState, hasDrift = false, context, onPublish,
39
47
  void onDeleteDocument?.();
40
48
  }, size: "sm", variant: "reverse" }), _jsx(Button, { label: "Cancel", onClick: () => toastApi.dismiss(DELETE_CONFIRM_TOAST_ID), size: "sm", variant: "reverse-secondary" })] })] }), { toastId: DELETE_CONFIRM_TOAST_ID });
41
49
  }, [addToast, toastApi, onDeleteDocument]);
42
- const actionItems = buildActionItems(docState, hasDrift, context, handlePublishRequest, onReviewAndPublish, onCreateWorkstream, onDeleteDocument ? handleDeleteRequest : undefined);
50
+ const actionItems = buildActionItems(docState, hasDrift, context, handlePublishRequest, onReviewWorkstream, onCreateWorkstream, onDeleteDocument ? handleDeleteRequest : undefined);
43
51
  const hasActions = actionItems.length > 0;
52
+ // Render only the badge
53
+ if (renderBadgeOnly) {
54
+ return (_jsx("span", { className: styles.stateBadge, children: _jsx(DocStateBadge, { docState: docState, hasDrift: hasDrift }) }));
55
+ }
56
+ // Render only the button
57
+ if (renderButtonOnly) {
58
+ return hasActions ? (_jsx(SplitButton, { id: "publish-split-button", "data-testid": "publish-split-button", actionItems: actionItems, size: "s", variant: "primary" })) : _jsx(_Fragment, {});
59
+ }
60
+ // Render both (default)
44
61
  return (_jsxs("div", { className: styles.container, "data-testid": "publish-control", children: [_jsx("span", { className: styles.stateBadge, children: _jsx(DocStateBadge, { docState: docState, hasDrift: hasDrift }) }), hasActions && (_jsx(SplitButton, { id: "publish-split-button", "data-testid": "publish-split-button", actionItems: actionItems, size: "s", variant: "primary" }))] }));
45
62
  }
46
63
  //# sourceMappingURL=PublishControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PublishControl.js","sourceRoot":"","sources":["../../../src/pds/components/PublishControl.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublishControl.js","sourceRoot":"","sources":["../../../src/pds/components/PublishControl.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkstreamSwitcher.d.ts","sourceRoot":"","sources":["../../../src/pds/components/WorkstreamSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAI3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,iBAAyB,EACzB,cAAc,GACf,EAAE,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiQ7C"}
1
+ {"version":3,"file":"WorkstreamSwitcher.d.ts","sourceRoot":"","sources":["../../../src/pds/components/WorkstreamSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAkE,MAAM,OAAO,CAAC;AAEvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAI3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,iBAAyB,EACzB,cAAc,GACf,EAAE,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA8Q7C"}
@@ -11,7 +11,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  * overflow:hidden or z-index constraints on ancestor elements (e.g. Puck's
12
12
  * header container or sidebar panels).
13
13
  */
14
- import { useState, useRef, useEffect, useCallback } from 'react';
14
+ import { useState, useRef, useEffect, useCallback, useTransition } from 'react';
15
15
  import { createPortal } from 'react-dom';
16
16
  import { Icon, Button, StatusIndicator } from '@pantheon-systems/pds-toolkit-react';
17
17
  import styles from './WorkstreamSwitcher.module.css';
@@ -24,6 +24,8 @@ export function WorkstreamSwitcher({ branches, currentBranch, onSwitch, onCompar
24
24
  const [createError, setCreateError] = useState(null);
25
25
  const triggerRef = useRef(null);
26
26
  const dropdownRef = useRef(null);
27
+ // Use transition to keep old UI visible while switching branches
28
+ const [isPending, startTransition] = useTransition();
27
29
  const triggerLabel = currentBranch?.isMain ? 'Live' : (currentBranch?.name ?? 'Select branch');
28
30
  const isOnMain = currentBranch?.isMain ?? false;
29
31
  const matched = query
@@ -80,7 +82,10 @@ export function WorkstreamSwitcher({ branches, currentBranch, onSwitch, onCompar
80
82
  function handleBranchClick(branch) {
81
83
  if (currentBranch && branch.id === currentBranch.id)
82
84
  return;
83
- onSwitch(branch.id);
85
+ // Wrap the branch switch in a transition to keep old UI visible
86
+ startTransition(() => {
87
+ onSwitch(branch.id);
88
+ });
84
89
  closeDropdown();
85
90
  }
86
91
  const handleCreate = useCallback(async (e) => {
@@ -128,7 +133,7 @@ export function WorkstreamSwitcher({ branches, currentBranch, onSwitch, onCompar
128
133
  window.removeEventListener('resize', updatePosition);
129
134
  };
130
135
  }, [open, updatePosition]);
131
- return (_jsxs("div", { className: styles.root, children: [_jsxs("button", { ref: triggerRef, type: "button", "data-testid": "workstream-trigger", className: `${styles.trigger}${open ? ` ${styles.triggerOpen}` : ''}`, onClick: handleTrigger, "aria-haspopup": "listbox", "aria-expanded": open, children: [_jsx(Icon, { iconName: "codeBranch", iconSize: "s", "aria-hidden": "true" }), _jsxs("span", { className: styles.labelText, children: [triggerLabel, _jsx(Icon, { iconName: "angleDown", iconSize: "s", "aria-hidden": "true" })] })] }), !isOnMain && !hideCompareButton && (_jsx(Button, { "data-testid": "compare-with-live", label: "Compare with Live", variant: "secondary", size: "sm", onClick: onCompareWithLive, buttonType: "button" })), open &&
136
+ return (_jsxs("div", { className: styles.root, children: [_jsxs("button", { ref: triggerRef, type: "button", "data-testid": "workstream-trigger", className: `${styles.trigger}${open ? ` ${styles.triggerOpen}` : ''}${isPending ? ` ${styles.triggerLoading}` : ''}`, onClick: handleTrigger, "aria-haspopup": "listbox", "aria-expanded": open, disabled: isPending, children: [_jsx(Icon, { iconName: "codeBranch", iconSize: "s", "aria-hidden": "true" }), _jsxs("span", { className: styles.labelText, children: [isPending ? 'Switching...' : triggerLabel, isPending ? (_jsx(Icon, { iconName: "spinner", iconSize: "s", "aria-hidden": "true" })) : (_jsx(Icon, { iconName: "angleDown", iconSize: "s", "aria-hidden": "true" }))] })] }), !isOnMain && !hideCompareButton && (_jsx(Button, { "data-testid": "compare-with-live", label: "Compare with Live", variant: "secondary", size: "sm", onClick: onCompareWithLive, buttonType: "button" })), open &&
132
137
  createPortal(_jsxs("div", { ref: dropdownRef, "data-testid": "workstream-dropdown", className: styles.dropdown, role: "listbox", style: dropdownStyle, children: [_jsxs("div", { className: styles.header, children: [_jsx("input", { autoFocus: true, type: "text", "data-testid": "workstream-search", className: styles.search, placeholder: "Search workstreams\u2026", value: query, onChange: (e) => setQuery(e.target.value) }), _jsx("button", { type: "button", "data-testid": "workstream-close", className: styles.closeButton, onClick: closeDropdown, "aria-label": "Close", children: "\u00D7" })] }), _jsx("ul", { "data-testid": "workstream-list", className: styles.list, children: filtered.map((branch) => (_jsx("li", { className: styles.item, children: _jsx("button", { type: "button", className: styles.branchButton, onClick: () => handleBranchClick(branch), "aria-selected": currentBranch ? branch.id === currentBranch.id : false, children: branch.isMain ? (_jsx(StatusIndicator, { "data-testid": "workstream-live-label", type: "discovery", label: "Live", size: "s", className: styles.liveIndicator })) : (branch.name) }) }, branch.id))) }), _jsx("div", { className: styles.footer, children: isCreating ? (_jsxs("form", { "data-testid": "workstream-create-form", className: styles.createForm, onSubmit: handleCreate, children: [_jsx("input", { autoFocus: true, type: "text", "data-testid": "workstream-create-input", className: styles.createInput, placeholder: "workstream-name", value: newName, onChange: (e) => setNewName(e.target.value) }), _jsxs("div", { className: styles.createActions, children: [_jsx("button", { type: "submit", className: styles.createSubmit, children: "Create" }), _jsx("button", { type: "button", "data-testid": "workstream-create-cancel", className: styles.createCancel, onClick: () => { setIsCreating(false); setNewName(''); setCreateError(null); }, children: "Cancel" })] }), createError && (_jsx("div", { "data-testid": "workstream-create-error", className: styles.createError, children: createError }))] })) : (_jsx("button", { type: "button", "data-testid": "workstream-new", className: styles.newButton, onClick: onCreateBranch ? () => setIsCreating(true) : undefined, children: "+ New workstream" })) })] }), document.body)] }));
133
138
  }
134
139
  //# sourceMappingURL=WorkstreamSwitcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkstreamSwitcher.js","sourceRoot":"","sources":["../../../src/pds/components/WorkstreamSwitcher.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkstreamSwitcher.js","sourceRoot":"","sources":["../../../src/pds/components/WorkstreamSwitcher.tsx"],"names":[],"mappings":"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"}
@@ -27,8 +27,8 @@
27
27
  height: 2rem;
28
28
  padding: 0.5rem 0.64rem;
29
29
  background: transparent;
30
- border: 1px solid oklch(0.96 0 0); /* borderSubtle */
31
- border-radius: var(--pds-border-radius-default, 0.188rem);
30
+ border: 1px solid var(--pds-color-border-input, oklch(0.8853 0 0));
31
+ border-radius: var(--pds-border-radius-button, 3.5rem);
32
32
  font-family: var(--pds-typography-ff-default, 'Inter', sans-serif);
33
33
  font-size: var(--pds-typography-size-s, 0.875rem);
34
34
  font-weight: var(--pds-typography-fw-medium, 500);
@@ -51,6 +51,16 @@
51
51
  border-color: oklch(0.75 0 0); /* borderStrong */
52
52
  }
53
53
 
54
+ .triggerLoading {
55
+ opacity: 0.7;
56
+ cursor: wait;
57
+ }
58
+
59
+ .triggerLoading:hover {
60
+ background: transparent;
61
+ border-color: oklch(0.96 0 0);
62
+ }
63
+
54
64
  /* ------------------------------------------------------------------
55
65
  * Dropdown panel — portal-rendered, positioned with inline style
56
66
  * Width min 400px, elevation-overlay shadow, container border-radius.
package/package.json CHANGED
@@ -1,7 +1,12 @@
1
1
  {
2
2
  "name": "@pantheon-systems/puck-css",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "Puck editor integration with Collaborative State System",
5
+ "publishConfig": {
6
+ "access": "public",
7
+ "registry": "https://registry.npmjs.org/",
8
+ "provenance": false
9
+ },
5
10
  "repository": {
6
11
  "type": "git",
7
12
  "url": "https://github.com/pantheon-systems/puck-css-integration.git",
@@ -71,7 +76,7 @@
71
76
  "fast-json-patch": "^3.1.1",
72
77
  "jsep": "^1.4.0",
73
78
  "yjs": "^13.6.29",
74
- "@pantheon-systems/css-client": "0.4.0"
79
+ "@pantheon-systems/css-client": "0.4.2"
75
80
  },
76
81
  "devDependencies": {
77
82
  "@floating-ui/react": "^0.27.19",
@@ -86,7 +91,7 @@
86
91
  "jsdom": "^24.1.3",
87
92
  "react-toastify": "^11.0.5",
88
93
  "typescript": "^5.9.3",
89
- "vite": "^6.4.2",
94
+ "vite": "^6.4.3",
90
95
  "vitest": "^4.1.5",
91
96
  "@pantheon-systems/eslint-config": "0.1.0"
92
97
  },
package/src/styles.css CHANGED
@@ -11,6 +11,39 @@
11
11
  * Styles for version comparison and other UI components.
12
12
  */
13
13
 
14
+ /* ============================================
15
+ Plugin Rail Toggle
16
+ ============================================ */
17
+
18
+ /* Hide the plugin rail (left navigation with Blocks/Outline/History/etc.) */
19
+ .p1-hide-plugin-rail [class*='_PuckLayout-nav_'] {
20
+ display: none;
21
+ }
22
+
23
+ /* Reclaim the space - set the side nav width to 0 so grid collapses that column */
24
+ .p1-hide-plugin-rail [class*='_PuckLayout-inner_'] {
25
+ --puck-side-nav-width: 0;
26
+ }
27
+
28
+ /* ============================================
29
+ Sidebar Background Matching
30
+ ============================================ */
31
+
32
+ /* Match plugin rail, blocks plugin, and sidebars background to header */
33
+ [class*='_PuckLayout-nav_'],
34
+ [class*='_BlocksPlugin_'],
35
+ [class*='_Sidebar--left_'],
36
+ [class*='_Sidebar--right_'] {
37
+ background: var(--pds-color-bg-default, oklch(1 0 0)) !important;
38
+ }
39
+
40
+ /* Override all nested backgrounds in right sidebar */
41
+ [class*='_Sidebar--right_'] [class*='_SidebarSection'],
42
+ [class*='_Sidebar--right_'] [class*='_Breadcrumbs_'],
43
+ [class*='_Sidebar--right_'] [class*='_Heading_'] {
44
+ background: transparent !important;
45
+ }
46
+
14
47
  /* ============================================
15
48
  CSS Variables
16
49
  ============================================ */