@epam/ai-dial-publish-panel 1.1.0-dev.101

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 (31) hide show
  1. package/components/PublishAccessRuleEditor/PublishAccessRuleEditor.d.ts +75 -0
  2. package/components/PublishAccessRuleEditor/PublishAccessRuleEditor.d.ts.map +1 -0
  3. package/components/PublishAccessRules/PublishAccessRules.d.ts +87 -0
  4. package/components/PublishAccessRules/PublishAccessRules.d.ts.map +1 -0
  5. package/components/PublishFoldersTree/PublishFoldersTree.d.ts +63 -0
  6. package/components/PublishFoldersTree/PublishFoldersTree.d.ts.map +1 -0
  7. package/components/PublishHistoryList/PublishHistoryList.d.ts +54 -0
  8. package/components/PublishHistoryList/PublishHistoryList.d.ts.map +1 -0
  9. package/components/PublishPanel/PublishFooter.d.ts +39 -0
  10. package/components/PublishPanel/PublishFooter.d.ts.map +1 -0
  11. package/components/PublishPanel/PublishPanel.d.ts +135 -0
  12. package/components/PublishPanel/PublishPanel.d.ts.map +1 -0
  13. package/components/PublishPanel/StandalonePublishPanel.d.ts +106 -0
  14. package/components/PublishPanel/StandalonePublishPanel.d.ts.map +1 -0
  15. package/index.css +2 -0
  16. package/index.d.ts +23 -0
  17. package/index.d.ts.map +1 -0
  18. package/index.js +60943 -0
  19. package/models/publish.d.ts +109 -0
  20. package/models/publish.d.ts.map +1 -0
  21. package/package.json +33 -0
  22. package/test-setup.d.ts +1 -0
  23. package/test-setup.d.ts.map +1 -0
  24. package/utils/format-published-date.d.ts +8 -0
  25. package/utils/format-published-date.d.ts.map +1 -0
  26. package/utils/publish-folder-tree.d.ts +32 -0
  27. package/utils/publish-folder-tree.d.ts.map +1 -0
  28. package/utils/publish-state.d.ts +4 -0
  29. package/utils/publish-state.d.ts.map +1 -0
  30. package/utils/use-publish-flow.d.ts +86 -0
  31. package/utils/use-publish-flow.d.ts.map +1 -0
@@ -0,0 +1,75 @@
1
+ import { FC } from 'react';
2
+ import { PublicationRule } from '../../models/publish';
3
+ /** Text overrides for all user-visible strings in {@link PublishAccessRuleEditor}. */
4
+ export interface PublishAccessRuleEditorLabels {
5
+ /** Label above the source picker. Default: `'Source'`. */
6
+ sourceLabel?: string;
7
+ /** Placeholder for the source picker. Default: `'Select...'`. */
8
+ sourcePlaceholder?: string;
9
+ /** Label above the function picker. Default: `'Function'`. */
10
+ functionLabel?: string;
11
+ /** Label for the `EQUAL` function option. Default: `'Equal'`. */
12
+ equalOptionLabel?: string;
13
+ /** Label for the `CONTAIN` function option. Default: `'Contain'`. */
14
+ containOptionLabel?: string;
15
+ /** Label for the `REGEX` function option. Default: `'Regex'`. */
16
+ regexOptionLabel?: string;
17
+ /** Label above the targets tag input (EQUAL/CONTAIN). Default: `'Targets'`. */
18
+ targetsLabel?: string;
19
+ /** Placeholder for the targets tag input. Default: `'Add a target'`. */
20
+ targetsPlaceholder?: string;
21
+ /** Label above the pattern field (REGEX). Default: `'Pattern'`. */
22
+ patternLabel?: string;
23
+ /** Placeholder for the pattern field. Default: `'Enter a regular expression'`. */
24
+ patternPlaceholder?: string;
25
+ /** Inline error shown for an invalid or empty regular expression. Default: `'Enter a valid regular expression.'`. */
26
+ invalidRegexError?: string;
27
+ /** Label for the action that saves the rule. Default: `'Save'`. */
28
+ saveLabel?: string;
29
+ /** Label for the action that discards the in-progress rule. Default: `'Cancel'`. */
30
+ cancelLabel?: string;
31
+ /** Accessible label for the editor's dialog role. Default: `'Add access rule'`. */
32
+ dialogAriaLabel?: string;
33
+ }
34
+ /** Props for {@link PublishAccessRuleEditor}. */
35
+ export interface PublishAccessRuleEditorProps {
36
+ /** Options offered in the source picker. */
37
+ sourceOptions: string[];
38
+ /** Called with the completed rule when the user saves it. */
39
+ onSave: (rule: PublicationRule) => void;
40
+ /** Called when the in-progress rule is discarded (Cancel or Escape). */
41
+ onCancel: () => void;
42
+ /** Disables every control in the editor. Default: `false`. */
43
+ disabled?: boolean;
44
+ /** Maximum number of targets allowed for an EQUAL/CONTAIN rule. Default: `20`. */
45
+ maxTargets?: number;
46
+ /** Text overrides for all user-visible strings. */
47
+ labels?: PublishAccessRuleEditorLabels;
48
+ /** Typography class for the source/function field labels. Default: `'dial-small-semi-text'`. */
49
+ labelClassName?: string;
50
+ /** Typography class for the pattern validation error. Default: `'dial-small-text'`. */
51
+ errorClassName?: string;
52
+ /** Color overrides. */
53
+ colors?: PublishAccessRuleEditorColors;
54
+ }
55
+ /** Color overrides for {@link PublishAccessRuleEditor}, applied as CSS custom properties with app theme fallbacks. */
56
+ export interface PublishAccessRuleEditorColors {
57
+ /** Background color of the full-screen mobile overlay. Fallback: `--bg-layer-1`. */
58
+ mobileBackground?: string;
59
+ /** Border color of the desktop inline panel. Fallback: `--stroke-tertiary`. */
60
+ border?: string;
61
+ /** Background color of the desktop inline panel. Fallback: `--bg-layer-sunken`. */
62
+ background?: string;
63
+ /** Text color of the source/function field labels. Fallback: `--text-primary`. */
64
+ labelText?: string;
65
+ /** Text color of the pattern validation error. Fallback: `--text-error`. */
66
+ errorText?: string;
67
+ }
68
+ /**
69
+ * Single-rule editor for the access-rules section: source and function
70
+ * pickers, plus a multi-target tag input for EQUAL/CONTAIN or a single
71
+ * pattern field for REGEX. Renders inline on desktop and as a full-screen
72
+ * step on mobile, using responsive Tailwind classes only.
73
+ */
74
+ export declare const PublishAccessRuleEditor: FC<PublishAccessRuleEditorProps>;
75
+ //# sourceMappingURL=PublishAccessRuleEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishAccessRuleEditor.d.ts","sourceRoot":"","sources":["../../../src/components/PublishAccessRuleEditor/PublishAccessRuleEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,EACL,EAAE,EAOH,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAQhF,sFAAsF;AACtF,MAAM,WAAW,6BAA6B;IAC5C,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,iDAAiD;AACjD,MAAM,WAAW,4BAA4B;IAC3C,4CAA4C;IAC5C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,6DAA6D;IAC7D,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACxC,wEAAwE;IACxE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,gGAAgG;IAChG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,6BAA6B,CAAC;CACxC;AAED,sHAAsH;AACtH,MAAM,WAAW,6BAA6B;IAC5C,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAgPpE,CAAC"}
@@ -0,0 +1,87 @@
1
+ import { FC } from 'react';
2
+ import { PublicationRule } from '../../models/publish';
3
+ import { PublishAccessRuleEditorLabels } from '../PublishAccessRuleEditor/PublishAccessRuleEditor';
4
+ /** Text overrides for all user-visible strings in {@link PublishAccessRules}. */
5
+ export interface PublishAccessRulesLabels {
6
+ /** Section heading. Default: `'Allow access if all match'`. */
7
+ heading?: string;
8
+ /** Label for the trigger that opens the single-rule editor. Default: `'Add rule'`. */
9
+ addRuleLabel?: string;
10
+ /** Label for the control that removes every rule; shown only when at least one rule exists. Default: `'Clear all'`. */
11
+ clearAllLabel?: string;
12
+ /** Separator joining a rule's targets. Default: `'Or'`. */
13
+ orSeparatorLabel?: string;
14
+ /** Accessible name template for a chip's remove control; `{source}` and `{targets}` are replaced. Default: `'Remove rule for {source}: {targets}'`. */
15
+ removeRuleAriaLabelTemplate?: string;
16
+ /** Chip label for an `EQUAL` rule. Default: `'Equal'`. */
17
+ equalFunctionLabel?: string;
18
+ /** Chip label for a `CONTAIN` rule. Default: `'Contain'`. */
19
+ containFunctionLabel?: string;
20
+ /** Chip label for a `REGEX` rule. Default: `'Regex'`. */
21
+ regexFunctionLabel?: string;
22
+ /** Shown while existing rules are being fetched for the selected folder. Default: `'Loading existing rules…'`. */
23
+ loadingLabel?: string;
24
+ /** Shown when fetching existing rules for the selected folder failed. Default: `"Couldn't load existing rules for this folder. You can still add rules manually."`. */
25
+ loadErrorLabel?: string;
26
+ /** Live-region announcement after a rule is added. Default: `'Rule added.'`. */
27
+ ruleAddedAnnouncement?: string;
28
+ /** Live-region announcement after a rule is removed. Default: `'Rule removed.'`. */
29
+ ruleRemovedAnnouncement?: string;
30
+ /** Live-region announcement after all rules are cleared. Default: `'All rules cleared.'`. */
31
+ rulesClearedAnnouncement?: string;
32
+ /** Live-region announcement after existing rules are loaded for a selected folder. Default: `'Existing rules loaded for the selected folder.'`. */
33
+ rulesLoadedAnnouncement?: string;
34
+ /** Text overrides passed through to the nested single-rule editor. */
35
+ editorLabels?: PublishAccessRuleEditorLabels;
36
+ }
37
+ /** Props for {@link PublishAccessRules}. */
38
+ export interface PublishAccessRulesProps {
39
+ /** Current access rules, combined with AND. */
40
+ rules: PublicationRule[];
41
+ /** Called with the full next rules array on add, remove, or clear. */
42
+ onRulesChange: (rules: PublicationRule[]) => void;
43
+ /** Options offered in the single-rule editor's source picker. */
44
+ sourceOptions: string[];
45
+ /** Disables every control in the section, e.g. while a publish request is in flight. Default: `false`. */
46
+ disabled?: boolean;
47
+ /** Whether existing rules are currently being fetched for the selected folder. Default: `false`. */
48
+ isLoading?: boolean;
49
+ /** Whether the most recent existing-rules fetch failed. Default: `false`. */
50
+ hasLoadError?: boolean;
51
+ /** Maximum number of rules allowed. Default: `20`. */
52
+ maxRules?: number;
53
+ /** Maximum number of targets allowed per EQUAL/CONTAIN rule. Default: `20`. */
54
+ maxTargetsPerRule?: number;
55
+ /** Text overrides for all user-visible strings. */
56
+ labels?: PublishAccessRulesLabels;
57
+ /** Typography class for the section heading. Default: `'dial-body-semi-text'`. */
58
+ headingClassName?: string;
59
+ /** Typography class for the loading message. Default: `'dial-small-text'`. */
60
+ loadingClassName?: string;
61
+ /** Typography class for each rule chip's text. Default: `'dial-small-text'`. */
62
+ ruleTextClassName?: string;
63
+ /** Color overrides. */
64
+ colors?: PublishAccessRulesColors;
65
+ }
66
+ /** Color overrides for {@link PublishAccessRules}, applied as CSS custom properties with app theme fallbacks. */
67
+ export interface PublishAccessRulesColors {
68
+ /** Rule row border color. Fallback: `--stroke-tertiary`. */
69
+ ruleBorder?: string;
70
+ /** Rule row background color. Fallback: `--bg-layer-sunken`. */
71
+ ruleBackground?: string;
72
+ /** Section heading text color. Fallback: `--text-primary`. */
73
+ headingText?: string;
74
+ /** Loading message text color. Fallback: `--text-secondary`. */
75
+ loadingText?: string;
76
+ /** Rule chip text color. Fallback: `--text-primary`. */
77
+ ruleText?: string;
78
+ }
79
+ /**
80
+ * Chip list for the access-rules section: renders each rule as a removable
81
+ * chip, an "Add rule" trigger opening {@link PublishAccessRuleEditor}, and a
82
+ * "Clear all" control shown only when rules are present. Announces add,
83
+ * remove, clear, and pre-fill-from-folder-selection through a shared
84
+ * `aria-live="polite"` status region.
85
+ */
86
+ export declare const PublishAccessRules: FC<PublishAccessRulesProps>;
87
+ //# sourceMappingURL=PublishAccessRules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishAccessRules.d.ts","sourceRoot":"","sources":["../../../src/components/PublishAccessRules/PublishAccessRules.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,EAAE,EAA+B,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAEL,6BAA6B,EAC9B,MAAM,oDAAoD,CAAC;AAK5D,iFAAiF;AACjF,MAAM,WAAW,wBAAwB;IACvC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uHAAuH;IACvH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uJAAuJ;IACvJ,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kHAAkH;IAClH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uKAAuK;IACvK,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oFAAoF;IACpF,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,6FAA6F;IAC7F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,mJAAmJ;IACnJ,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sEAAsE;IACtE,YAAY,CAAC,EAAE,6BAA6B,CAAC;CAC9C;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,sEAAsE;IACtE,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAClD,iEAAiE;IACjE,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oGAAoG;IACpG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uBAAuB;IACvB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,iHAAiH;AACjH,MAAM,WAAW,wBAAwB;IACvC,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAoM1D,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { FC } from 'react';
2
+ import { PublishFolderNode } from '../../models/publish';
3
+ /** Props for {@link PublishFoldersTree}. */
4
+ export interface PublishFoldersTreeProps {
5
+ /** Root-level folder nodes. */
6
+ items: PublishFolderNode[];
7
+ /**
8
+ * Currently selected destination folder path, outermost first.
9
+ * `undefined` means nothing is selected; `[]` means the bucket root
10
+ * itself is selected (a distinct, valid destination).
11
+ */
12
+ selectedPath?: string[];
13
+ /** Called when the user selects a folder or the root; `undefined` when deselected. */
14
+ onSelectedPathChange: (path: string[] | undefined) => void;
15
+ /**
16
+ * Called when the user confirms a new folder name. The caller owns
17
+ * persisting the new node into `items`; the tree only reports intent.
18
+ */
19
+ onCreateFolder: (parentPath: string[], name: string) => Promise<void>;
20
+ /**
21
+ * Search query used to filter the tree; owned by the host so it can render
22
+ * the search input in its own layout (e.g. above other controls).
23
+ */
24
+ searchQuery: string;
25
+ /** Whether the whole tree is disabled, e.g. while a publish request is in flight. Default: `false`. */
26
+ disabled?: boolean;
27
+ /** Label for the trailing "create new folder" trigger. Default: `'Create new folder'`. */
28
+ createFolderLabel?: string;
29
+ /** Label for the per-row context menu action that creates a folder alongside the clicked folder. Default: `'Add sibling'`. */
30
+ addSiblingFolderLabel?: string;
31
+ /** Label for the per-row context menu action that creates a folder inside the clicked folder. Default: `'Add child'`. */
32
+ addChildFolderLabel?: string;
33
+ /** Default name pre-filled for a new folder before the user edits it. Default: `'New folder'`. */
34
+ newFolderDefaultName?: string;
35
+ /** Message shown when a search query matches no folders; `{query}` is replaced. Default: `'No folders match "{query}".'`. */
36
+ noResultsLabel?: string;
37
+ /** Inline error shown while creating a folder with an empty name. Default: `'Folder name cannot be empty.'`. */
38
+ emptyFolderNameError?: string;
39
+ /** Inline error shown while creating a folder whose name contains `..` or a forbidden character. Default: `'Folder name contains invalid characters.'`. */
40
+ invalidFolderNameError?: string;
41
+ /** Inline error shown while creating a folder whose name duplicates a sibling. Default: `'A folder with this name already exists.'`. */
42
+ duplicateFolderNameError?: string;
43
+ /**
44
+ * Label for the tree node representing the bucket root itself as a
45
+ * selectable publish destination (`selectedPath: []`); rendered as the
46
+ * top-level, always-expanded node that wraps `items`. Default: `'Organization'`.
47
+ */
48
+ rootLabel?: string;
49
+ /**
50
+ * Externally-controlled set of expanded folder path keys (`path.join('/')`).
51
+ * Pass this together with `onExpandedPathsChange` when the host needs to
52
+ * know which folders were expanded (e.g. to lazily fetch their children).
53
+ * When omitted, the tree manages expand state internally.
54
+ */
55
+ expandedPaths?: Set<string>;
56
+ /** Called when the set of expanded folders changes; required to control `expandedPaths`. */
57
+ onExpandedPathsChange?: (paths: Set<string>) => void;
58
+ /** Folder path keys currently being fetched by the host; shows a loading affordance on those rows. */
59
+ loadingPaths?: Set<string>;
60
+ }
61
+ /** Destination folder tree for the Publish flow with search, folder creation (trailing button and context menu), and a disabled state. */
62
+ export declare const PublishFoldersTree: FC<PublishFoldersTreeProps>;
63
+ //# sourceMappingURL=PublishFoldersTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishFoldersTree.d.ts","sourceRoot":"","sources":["../../../src/components/PublishFoldersTree/PublishFoldersTree.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAYzD,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,+BAA+B;IAC/B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sFAAsF;IACtF,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3D;;;OAGG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8HAA8H;IAC9H,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yHAAyH;IACzH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kGAAkG;IAClG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,6HAA6H;IAC7H,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gHAAgH;IAChH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2JAA2J;IAC3J,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wIAAwI;IACxI,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,4FAA4F;IAC5F,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACrD,sGAAsG;IACtG,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,0IAA0I;AAC1I,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAiN1D,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { FC } from 'react';
2
+ import { PublishHistoryEntry } from '../../models/publish';
3
+ /** Props for {@link PublishHistoryList}. */
4
+ export interface PublishHistoryListProps {
5
+ /** Previously published versions for the selected destination folder, most recent first. Filtered by the host to just that folder. */
6
+ entries: PublishHistoryEntry[];
7
+ /**
8
+ * The entity's current version. The matching entry, if any, gets a
9
+ * "Current" badge instead of the row being highlighted.
10
+ */
11
+ currentVersion?: string;
12
+ /** When `true`, shows a loading message instead of `entries`/empty state. Default: `false`. */
13
+ isLoading?: boolean;
14
+ /** When `true` (and not `isLoading`), shows an error message instead of `entries`/empty state. Default: `false`. */
15
+ hasError?: boolean;
16
+ /** Prefix before each entry's version number. Default: `'Version'`. */
17
+ versionPrefix?: string;
18
+ /** Label for the badge on the entry matching `currentVersion`. Default: `'Current'`. */
19
+ currentBadgeLabel?: string;
20
+ /** Message shown when `entries` is empty. Default: `'Not published to this folder yet — this will be the first version here.'`. */
21
+ emptyStateLabel?: string;
22
+ /** Message shown while history is loading. Default: `'Loading history…'`. */
23
+ loadingLabel?: string;
24
+ /** Message shown when history failed to load. Default: `'Failed to load publish history.'`. */
25
+ errorLabel?: string;
26
+ /** Typography class for each entry's version line. Default: `'dial-small-text'`. */
27
+ versionClassName?: string;
28
+ /** Typography class for each entry's publish date. Default: `'dial-small-text'`. */
29
+ dateClassName?: string;
30
+ /** Typography class for the empty-state message. Default: `'dial-small-text'`. */
31
+ emptyStateClassName?: string;
32
+ /** Color overrides. */
33
+ colors?: PublishHistoryListColors;
34
+ }
35
+ /** Color overrides for {@link PublishHistoryList}, applied as CSS custom properties with app theme fallbacks. */
36
+ export interface PublishHistoryListColors {
37
+ /** Border color of the "Current" badge. Fallback: `--stroke-tertiary`. */
38
+ currentBadgeBorder?: string;
39
+ /** Background color of the "Current" badge. Fallback: `--bg-accent-primary-alpha`. */
40
+ currentBadgeBackground?: string;
41
+ /** Text color of the "Current" badge. Fallback: `--text-accent`. */
42
+ currentBadgeText?: string;
43
+ /** Text color of each entry's version line. Fallback: `--text-primary`. */
44
+ versionText?: string;
45
+ /** Text color of each entry's publish date. Fallback: `--text-secondary`. */
46
+ dateText?: string;
47
+ /** Text color of the empty-state message. Fallback: `--text-secondary`. */
48
+ emptyStateText?: string;
49
+ /** Background color of every other row (odd `index`). Fallback: `--bg-layer-sunken`. */
50
+ stripedBackground?: string;
51
+ }
52
+ /** Read-only list of previously published versions for the currently selected destination folder, with loading and empty states. */
53
+ export declare const PublishHistoryList: FC<PublishHistoryListProps>;
54
+ //# sourceMappingURL=PublishHistoryList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishHistoryList.d.ts","sourceRoot":"","sources":["../../../src/components/PublishHistoryList/PublishHistoryList.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI3D,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,sIAAsI;IACtI,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+FAA+F;IAC/F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oHAAoH;IACpH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mIAAmI;IACnI,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB;IACvB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,iHAAiH;AACjH,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sFAAsF;IACtF,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,oIAAoI;AACpI,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAqF1D,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { FC } from 'react';
2
+ /** Text overrides for all user-visible strings in {@link PublishFooter}. */
3
+ export interface PublishFooterLabels {
4
+ /** Cancel button label. Default: `'Cancel'`. */
5
+ cancelLabel?: string;
6
+ /** Submit button label when publishing a new version. Default: `'Publish'`. */
7
+ publishDefaultLabel?: string;
8
+ /** Submit button label when replacing an existing version; `{version}` is replaced. */
9
+ updateLabel?: string;
10
+ /** Submit button label while the request is in flight. Default: `'Publishing…'`. */
11
+ publishingInProgressLabel?: string;
12
+ }
13
+ /** Props for {@link PublishFooter}. */
14
+ export interface PublishFooterProps {
15
+ /** The version being published, substituted into the submit label. `undefined` for unversioned resources (e.g. a conversation) — the submit label then always reads `publishDefaultLabel`. */
16
+ version?: string;
17
+ /** Whether this publication already exists at the selected destination folder. */
18
+ hasExistingPublicationInFolder: boolean;
19
+ /** Whether the submit button should be disabled. */
20
+ isSubmitDisabled: boolean;
21
+ /** Whether the submit button should show its loading/spinner state. */
22
+ isSubmitLoading: boolean;
23
+ /** Called when the user cancels the publish flow. */
24
+ onCancel: () => void;
25
+ /** Called when the user confirms the publish/update action. */
26
+ onSubmit: () => void;
27
+ /** Text overrides for all user-visible strings. */
28
+ labels?: PublishFooterLabels;
29
+ /** Color overrides. */
30
+ colors?: PublishFooterColors;
31
+ }
32
+ /** Color overrides for {@link PublishFooter}, applied as CSS custom properties with app theme fallbacks. */
33
+ export interface PublishFooterColors {
34
+ /** Top border color. Fallback: `--stroke-tertiary`. */
35
+ border?: string;
36
+ }
37
+ /** Action row for the Publish flow: pinned Cancel and Publish/Update buttons. */
38
+ export declare const PublishFooter: FC<PublishFooterProps>;
39
+ //# sourceMappingURL=PublishFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishFooter.d.ts","sourceRoot":"","sources":["../../../src/components/PublishPanel/PublishFooter.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAG3B,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,8LAA8L;IAC9L,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,8BAA8B,EAAE,OAAO,CAAC;IACxC,oDAAoD;IACpD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,eAAe,EAAE,OAAO,CAAC;IACzB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,uBAAuB;IACvB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,4GAA4G;AAC5G,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAsDhD,CAAC"}
@@ -0,0 +1,135 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { PublicationRule, PublishFolderNode, PublishHistoryEntry, PublishResourceSummary } from '../../models/publish';
3
+ import { PublishAccessRulesLabels } from '../PublishAccessRules/PublishAccessRules';
4
+ /** Text overrides for all user-visible strings in {@link PublishPanel}. */
5
+ export interface PublishPanelLabels {
6
+ /** Label above the destination folder picker. Default: `'Publish to folder'`. */
7
+ folderLabel?: string;
8
+ /** Placeholder for the folder search input. Default: `'Search folders'`. */
9
+ searchPlaceholder?: string;
10
+ /** Accessible label for the search input's clear button. Default: `'Clear search'`. */
11
+ clearSearchAriaLabel?: string;
12
+ /** Label above the publish history list. Default: `'Versions history'`. */
13
+ historyLabel?: string;
14
+ /** Warning callout body shown when the folder already has this version; `{version}` and `{folder}` are replaced, with the folder name rendered bold. */
15
+ replaceWarning?: string;
16
+ /** Error callout body shown when the user lacks write access; `{folder}` is replaced, with the folder name rendered bold. */
17
+ noAccessError?: string;
18
+ /** Error callout body shown when the most recent submit attempt failed. */
19
+ submitError?: string;
20
+ /** Message shown when a folder search query matches no folders; `{query}` is replaced. */
21
+ folderEmptyStateLabel?: string;
22
+ /** Label for the per-row context menu action that creates a folder alongside the clicked folder. */
23
+ addSiblingFolderLabel?: string;
24
+ /** Label for the per-row context menu action that creates a folder inside the clicked folder. */
25
+ addChildFolderLabel?: string;
26
+ /** Inline error shown while creating a folder with an empty name. */
27
+ createFolderEmptyNameError?: string;
28
+ /** Inline error shown while creating a folder whose name contains `..` or a forbidden character. */
29
+ createFolderInvalidNameError?: string;
30
+ /** Inline error shown while creating a folder whose name duplicates a sibling. */
31
+ createFolderDuplicateNameError?: string;
32
+ /** Message shown while publish history is loading. */
33
+ historyLoadingLabel?: string;
34
+ /** Message shown when publish history failed to load. */
35
+ historyErrorLabel?: string;
36
+ /** Label used for the bucket root as a destination and as `{folder}` in callouts when it is selected. Default: `'Organization'`. */
37
+ rootFolderLabel?: string;
38
+ /** Text overrides for the access-rules section. */
39
+ accessRulesLabels?: PublishAccessRulesLabels;
40
+ }
41
+ /** Props for {@link PublishPanel}. */
42
+ export interface PublishPanelProps {
43
+ /**
44
+ * Display metadata for the summary row and for version-derived behavior:
45
+ * the replace-warning callout's version substitution, and whether the
46
+ * publish-history section is shown at all (only when `version` is set).
47
+ * Title-only rendering applies when `renderSummary` is absent.
48
+ */
49
+ resource?: PublishResourceSummary;
50
+ /**
51
+ * Renders a custom summary row (e.g. a full entity header with icon and
52
+ * type badge) in place of the default title-only row built from
53
+ * `resource.title`. Pass `resource` alongside this so version-derived
54
+ * behavior (callout, history section) keeps working.
55
+ */
56
+ renderSummary?: () => ReactNode;
57
+ /** Previously published entries for this item. */
58
+ history: PublishHistoryEntry[];
59
+ /** Whether `history` is currently being fetched. Default: `false`. */
60
+ isHistoryLoading?: boolean;
61
+ /** Whether the most recent history fetch failed. Default: `false`. */
62
+ hasHistoryError?: boolean;
63
+ /** Destination folders available for selection. */
64
+ folderItems: PublishFolderNode[];
65
+ /**
66
+ * Currently selected destination folder path. `undefined` means nothing
67
+ * is selected; `[]` means the bucket root itself is selected (a distinct,
68
+ * valid destination).
69
+ */
70
+ selectedFolderPath?: string[];
71
+ /** Called when the user selects a destination folder or the root; `undefined` when deselected. */
72
+ onSelectedFolderPathChange: (path: string[] | undefined) => void;
73
+ /** Called when the user confirms a new folder name. */
74
+ onCreateFolder: (parentPath: string[], name: string) => Promise<void>;
75
+ /**
76
+ * Externally-controlled set of expanded folder path keys. Pass this
77
+ * together with `onExpandedPathsChange` when the host lazily fetches a
78
+ * folder's children on expand.
79
+ */
80
+ expandedPaths?: Set<string>;
81
+ /** Called when the set of expanded folders changes; required to control `expandedPaths`. */
82
+ onExpandedPathsChange?: (paths: Set<string>) => void;
83
+ /** Folder path keys currently being fetched by the host. */
84
+ loadingPaths?: Set<string>;
85
+ /**
86
+ * Whether `selectedFolderPath` already has this publication — this exact
87
+ * version, for a versioned `resource`, or any prior entry at all, for an
88
+ * unversioned one.
89
+ */
90
+ hasExistingPublicationInFolder: boolean;
91
+ /** Whether the current user can publish to `selectedFolderPath`. */
92
+ hasWriteAccess: boolean;
93
+ /** Whether a publish request is currently in flight. */
94
+ isSubmitting: boolean;
95
+ /** Whether the most recent submit attempt failed. */
96
+ hasSubmitError?: boolean;
97
+ /**
98
+ * Whether resubmitting when `hasExistingPublicationInFolder` is true is
99
+ * allowed (catalog default) or blocked (conversations — see
100
+ * `PublishDerivationInput.allowReplace`). Default `true`.
101
+ */
102
+ allowReplace?: boolean;
103
+ /** Current access rules, combined with AND. */
104
+ rules: PublicationRule[];
105
+ /** Called with the full next rules array on add, remove, or clear. */
106
+ onRulesChange: (rules: PublicationRule[]) => void;
107
+ /** Options offered in the access-rules editor's source picker. */
108
+ ruleSourceOptions: string[];
109
+ /** Whether existing rules are currently being fetched for the selected folder. Default: `false`. */
110
+ isRulesLoading?: boolean;
111
+ /** Whether the most recent existing-rules fetch failed. Default: `false`. */
112
+ hasRulesLoadError?: boolean;
113
+ /** Text overrides for all user-visible strings. */
114
+ labels?: PublishPanelLabels;
115
+ /** Typography class for the default summary title (unused when `renderSummary` is passed). Default: `'dial-body-semi-text'`. */
116
+ summaryTitleClassName?: string;
117
+ /** Typography class for the "Publish to folder" and "Versions history" section headings. Default: `'dial-body-semi-text'`. */
118
+ headingClassName?: string;
119
+ /** Color overrides. */
120
+ colors?: PublishPanelColors;
121
+ }
122
+ /** Color overrides for {@link PublishPanel}, applied as CSS custom properties with app theme fallbacks. */
123
+ export interface PublishPanelColors {
124
+ /** Summary row border color. Fallback: `--stroke-tertiary`. */
125
+ summaryBorder?: string;
126
+ /** Summary row background color. Fallback: `--bg-layer-sunken`. */
127
+ summaryBackground?: string;
128
+ /** Default summary title text color. Fallback: `--text-primary`. */
129
+ summaryTitleText?: string;
130
+ /** Section heading text color. Fallback: `--text-primary`. */
131
+ headingText?: string;
132
+ }
133
+ /** Scrollable body of the Publish flow: entity summary, destination folder picker with callout, and publish history. */
134
+ export declare const PublishPanel: FC<PublishPanelProps>;
135
+ //# sourceMappingURL=PublishPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublishPanel.d.ts","sourceRoot":"","sources":["../../../src/components/PublishPanel/PublishPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AACzD,OAAO,EACL,eAAe,EAEf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAKlD,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wJAAwJ;IACxJ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6HAA6H;IAC7H,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oGAAoG;IACpG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iGAAiG;IACjG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oGAAoG;IACpG,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,kFAAkF;IAClF,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,sDAAsD;IACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oIAAoI;IACpI,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;CAC9C;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,SAAS,CAAC;IAChC,kDAAkD;IAClD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mDAAmD;IACnD,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kGAAkG;IAClG,0BAA0B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IACjE,uDAAuD;IACvD,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;;OAIG;IACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,4FAA4F;IAC5F,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACrD,4DAA4D;IAC5D,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B;;;;OAIG;IACH,8BAA8B,EAAE,OAAO,CAAC;IACxC,oEAAoE;IACpE,cAAc,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,sEAAsE;IACtE,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAClD,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oGAAoG;IACpG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mDAAmD;IACnD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,gIAAgI;IAChI,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,8HAA8H;IAC9H,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,2GAA2G;AAC3G,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wHAAwH;AACxH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CA6M9C,CAAC"}
@@ -0,0 +1,106 @@
1
+ import { FC, ReactNode, RefObject } from 'react';
2
+ import { PublicationRule, PublishFolderNode, PublishHistoryEntry, PublishResourceSummary } from '../../models/publish';
3
+ import { PublishFooterLabels } from './PublishFooter';
4
+ import { PublishPanelLabels } from './PublishPanel';
5
+ /** Text overrides for all user-visible strings in {@link StandalonePublishPanel} not already covered by `PublishPanelLabels`/`PublishFooterLabels`. */
6
+ export interface StandalonePublishPanelLabels {
7
+ /** Header title. Default: `'Publish'`. */
8
+ title?: string;
9
+ /** Accessible label for the panel's `role="dialog"`. Default: `'Publish'`. */
10
+ ariaLabel?: string;
11
+ /** Accessible label for the header's Close button. Default: `'Close'`. */
12
+ closeAriaLabel?: string;
13
+ }
14
+ /** Props for {@link StandalonePublishPanel}. */
15
+ export interface StandalonePublishPanelProps {
16
+ /** Whether the panel is open (controls the slide-in animation and backdrop). */
17
+ isOpen: boolean;
18
+ /**
19
+ * Display metadata for the summary row and for version-derived behavior.
20
+ * Title-only rendering applies when `renderSummary` is absent.
21
+ */
22
+ resource?: PublishResourceSummary;
23
+ /**
24
+ * Renders a custom summary row in place of the default title-only row.
25
+ * Pass `resource` alongside this so version-derived behavior keeps working.
26
+ * See `PublishPanel`'s `renderSummary` prop.
27
+ */
28
+ renderSummary?: () => ReactNode;
29
+ /** Previously published entries for this item. */
30
+ history: PublishHistoryEntry[];
31
+ /** Whether `history` is currently being fetched. Default: `false`. */
32
+ isHistoryLoading?: boolean;
33
+ /** Whether the most recent history fetch failed. Default: `false`. */
34
+ hasHistoryError?: boolean;
35
+ /** Destination folders available for selection. */
36
+ folderItems: PublishFolderNode[];
37
+ /** Currently selected destination folder path. `undefined` means nothing selected; `[]` means the bucket root. */
38
+ selectedFolderPath?: string[];
39
+ /** Called when the user selects a destination folder or the root; `undefined` when deselected. */
40
+ onSelectedFolderPathChange: (path: string[] | undefined) => void;
41
+ /** Called when the user confirms a new folder name. */
42
+ onCreateFolder: (parentPath: string[], name: string) => Promise<void>;
43
+ /** Externally-controlled set of expanded folder path keys. */
44
+ expandedPaths?: Set<string>;
45
+ /** Called when the set of expanded folders changes. */
46
+ onExpandedPathsChange?: (paths: Set<string>) => void;
47
+ /** Folder path keys currently being fetched by the host. */
48
+ loadingPaths?: Set<string>;
49
+ /** Whether `selectedFolderPath` already has this publication. */
50
+ hasExistingPublicationInFolder: boolean;
51
+ /** Whether the current user can publish to `selectedFolderPath`. */
52
+ hasWriteAccess: boolean;
53
+ /** Whether a publish request is currently in flight. */
54
+ isSubmitting: boolean;
55
+ /** Whether the most recent submit attempt failed. */
56
+ hasSubmitError?: boolean;
57
+ /**
58
+ * Whether resubmitting when `hasExistingPublicationInFolder` is true is
59
+ * allowed (catalog default) or blocked (conversations). Default `true`.
60
+ */
61
+ allowReplace?: boolean;
62
+ /** Current access rules, combined with AND. */
63
+ rules: PublicationRule[];
64
+ /** Called with the full next rules array on add, remove, or clear. */
65
+ onRulesChange: (rules: PublicationRule[]) => void;
66
+ /** Options offered in the access-rules editor's source picker. */
67
+ ruleSourceOptions: string[];
68
+ /** Whether existing rules are currently being fetched for the selected folder. Default: `false`. */
69
+ isRulesLoading?: boolean;
70
+ /** Whether the most recent existing-rules fetch failed. Default: `false`. */
71
+ hasRulesLoadError?: boolean;
72
+ /** Called when the panel should be dismissed — Close button, Cancel button, backdrop click, or Escape. */
73
+ onClose: () => void;
74
+ /** Focus target restored when an open panel closes or unmounts. */
75
+ returnFocusRef?: RefObject<HTMLElement | null>;
76
+ /** Called when the user confirms the publish action. */
77
+ onSubmit: () => void;
78
+ /** Text overrides for the panel body. */
79
+ panelLabels?: PublishPanelLabels;
80
+ /** Text overrides for the pinned footer. */
81
+ footerLabels?: PublishFooterLabels;
82
+ /** Text overrides for the header/shell. */
83
+ labels?: StandalonePublishPanelLabels;
84
+ /** Typography class for the header title. Default: `'dial-body-semi-text'`. */
85
+ titleClassName?: string;
86
+ /** Color overrides. */
87
+ colors?: StandalonePublishPanelColors;
88
+ }
89
+ /** Color overrides for {@link StandalonePublishPanel}, applied as CSS custom properties with app theme fallbacks. */
90
+ export interface StandalonePublishPanelColors {
91
+ /** Backdrop background color. Fallback: `--bg-blackout`. */
92
+ backdropBackground?: string;
93
+ /** Panel background color. Fallback: `--bg-layer-raised`. */
94
+ panelBackground?: string;
95
+ /** Panel's leading-edge border color (desktop only). Fallback: `--stroke-secondary`. */
96
+ panelBorder?: string;
97
+ /** Divider border color below the header. Fallback: `--stroke-tertiary`. */
98
+ dividerBorder?: string;
99
+ /** Scrollbar thumb color of the scrollable content area. Fallback: `--stroke-secondary`. */
100
+ scrollbarThumb?: string;
101
+ /** Header title text color. Fallback: `--text-primary`. */
102
+ titleText?: string;
103
+ }
104
+ /** Standalone end-edge slide-in panel for the Publish flow: full-screen backdrop, entity summary, folder picker, history list, and pinned footer. */
105
+ export declare const StandalonePublishPanel: FC<StandalonePublishPanelProps>;
106
+ //# sourceMappingURL=StandalonePublishPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StandalonePublishPanel.d.ts","sourceRoot":"","sources":["../../../src/components/PublishPanel/StandalonePublishPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAA8B,MAAM,OAAO,CAAC;AAC7E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAiB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGlE,uJAAuJ;AACvJ,MAAM,WAAW,4BAA4B;IAC3C,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,gDAAgD;AAChD,MAAM,WAAW,2BAA2B;IAC1C,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,SAAS,CAAC;IAChC,kDAAkD;IAClD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mDAAmD;IACnD,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,kHAAkH;IAClH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,kGAAkG;IAClG,0BAA0B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IACjE,uDAAuD;IACvD,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,8DAA8D;IAC9D,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACrD,4DAA4D;IAC5D,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,iEAAiE;IACjE,8BAA8B,EAAE,OAAO,CAAC;IACxC,oEAAoE;IACpE,cAAc,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,sEAAsE;IACtE,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAClD,kEAAkE;IAClE,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oGAAoG;IACpG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0GAA0G;IAC1G,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mEAAmE;IACnE,cAAc,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC/C,wDAAwD;IACxD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,yCAAyC;IACzC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4CAA4C;IAC5C,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,2CAA2C;IAC3C,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,CAAC,EAAE,4BAA4B,CAAC;CACvC;AAED,qHAAqH;AACrH,MAAM,WAAW,4BAA4B;IAC3C,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qJAAqJ;AACrJ,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAoMlE,CAAC"}
package/index.css ADDED
@@ -0,0 +1,2 @@
1
+ ._container_466e8_1{background-color:var(--search-bar-bg,#fff);border:1px solid #0000000d;transition:border-color .15s,box-shadow .15s}@media (hover:hover){._container_466e8_1:hover:not(:focus-within){border-color:#0000001f}}._container_466e8_1:focus-within{border-color:color-mix(in srgb, var(--stroke-info,#124ace) 50%, transparent);box-shadow:none}._icon_466e8_16{color:var(--text-tertiary,#c7cbd4)}._input_466e8_20{color:var(--text-primary,#161b2d);background-color:#0000}._input_466e8_20::placeholder{color:var(--text-tertiary,#c7cbd4)}._tabContainer_153ct_1{background-color:#0000;color:var(--text-tertiary,#c7cbd4)!important;border-color:#0000!important}._tabContainer_153ct_1:hover{background-color:#5c8dea0f;color:var(--text-secondary,#6b7280)!important}._tabContainer_153ct_1>span{text-align:center}._tabContainer_153ct_1._tabActive_153ct_13{background-color:#2764d912;color:var(--text-secondary,#6b7280)!important}._tabContainer_153ct_1._tabActive_153ct_13:hover{background-color:#5c8dea0f}.dial-input:not(.dial-input-error){transition:border-color .15s,box-shadow .15s;border-color:var(--stroke-tertiary,#e0e6f0)!important;border-radius:.75rem!important}.dial-input:not(.dial-input-error):not(:disabled):hover{border-color:var(--stroke-info,#124ace)!important}.dial-input:not(.dial-input-error):not(:disabled):active,.dial-input:not(.dial-input-error):not(:disabled):focus,.dial-input:not(.dial-input-error):not(:disabled):focus-within{border-color:var(--stroke-info,#124ace)!important;box-shadow:0 0 0 4px var(--bg-accent-primary-alpha,#7da4ff2e)!important}.dial-input-error{border-radius:.75rem!important}._dialog_v6cml_1{background:var(--pare-mobile-bg,var(--bg-layer-1,#e0e6f0))}@media (width>=769px){._dialog_v6cml_1{border-color:var(--pare-border,var(--stroke-tertiary,#e0e6f0));background:var(--pare-bg,var(--bg-layer-sunken,#eef1f7))}}._label_v6cml_11{color:var(--pare-label-text,var(--text-primary,#161b2d))}._error_v6cml_15{color:var(--pare-error-text,var(--text-error,#ae2f2f))}._ruleRow_1m4wb_1{border-color:var(--par-rule-border,var(--stroke-tertiary,#e0e6f0));background:var(--par-rule-bg,var(--bg-layer-sunken,#eef1f7))}._heading_1m4wb_6{color:var(--par-heading-text,var(--text-primary,#161b2d))}._loading_1m4wb_10{color:var(--par-loading-text,var(--text-secondary,#6b7280))}._ruleText_1m4wb_14{color:var(--par-rule-text,var(--text-primary,#161b2d))}._currentBadge_12gml_1{border-color:var(--phl-badge-border,var(--stroke-tertiary,#e0e6f0))!important;background:var(--phl-badge-bg,var(--bg-accent-primary-alpha,#7da4ff2e))!important;color:var(--phl-badge-text,var(--text-accent,#1d4ed8))!important}._version_12gml_7{color:var(--phl-version-text,var(--text-primary,#161b2d))}._date_12gml_11{color:var(--phl-date-text,var(--text-secondary,#6b7280))}._emptyState_12gml_15{color:var(--phl-empty-text,var(--text-secondary,#6b7280))}._stripedRow_12gml_19{background:var(--phl-striped-bg,var(--bg-layer-sunken,#eef1f7))}._wrapper_1uc6l_1{background:var(--sb-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--sb-border,var(--stroke-tertiary,#e0e6f0))}._header_1uc6l_6{color:var(--sb-text,var(--text-primary,#161b2d))}._divider_1uc6l_10{border-color:var(--sb-border,var(--stroke-tertiary,#e0e6f0))}._panel_1uc6l_14{border-color:var(--sb-border,var(--stroke-tertiary,#e0e6f0));border-inline-end-color:var(--sb-border-inline-end,var(--sb-border,var(--stroke-tertiary,#e0e6f0)))}@keyframes _fadeIn_1uc6l_1{0%{opacity:0}to{opacity:1}}._appear_1uc6l_27{animation:.2s ease-out forwards _fadeIn_1uc6l_1}._resizeHandler_1uc6l_31{background:var(--sb-bg-resize-handler,var(--text-info,#1d4ed8));width:4px!important;color:var(--sb-resize-handler,var(--text-info,#1d4ed8))!important}._icon_cyj30_1{color:var(--si-icon,var(--text-secondary,#6b7280))}._summaryRow_1xcyd_1{border-color:var(--pp-summary-border,var(--stroke-tertiary,#e0e6f0));background:var(--pp-summary-bg,var(--bg-layer-sunken,#eef1f7))}._summaryTitle_1xcyd_6{color:var(--pp-summary-title-text,var(--text-primary,#161b2d))}._sectionHeading_1xcyd_10{color:var(--pp-heading-text,var(--text-primary,#161b2d))}._footer_dks1v_1{border-color:var(--pf-border,var(--stroke-tertiary,#e0e6f0))}._backdrop_13yuk_1{background:var(--spp-backdrop-bg,var(--bg-blackout,#0c101d4d))}._panel_13yuk_5{background:var(--spp-panel-bg,var(--bg-layer-raised,#fcfcfc));border-inline-start-color:var(--spp-panel-border,var(--stroke-secondary,#d1dbea))}._divider_13yuk_10{border-block-end:1px solid var(--spp-divider-border,var(--stroke-tertiary,#e0e6f0))}._content_13yuk_14{scrollbar-width:thin;scrollbar-color:var(--spp-scrollbar-thumb,var(--stroke-secondary,#d1dbea)) transparent}._title_13yuk_19{color:var(--spp-title-text,var(--text-primary,#161b2d))}
2
+ /*$vite$:1*/