@instructure/platform-block-content-editor 2.0.0 → 3.0.0

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 (87) hide show
  1. package/dist/components/blocks/Banner/Banner.d.ts +5 -2
  2. package/dist/components/blocks/Banner/Banner.d.ts.map +1 -1
  3. package/dist/components/blocks/Banner/bannerPropsSchema.d.ts +41 -4
  4. package/dist/components/blocks/Banner/bannerPropsSchema.d.ts.map +1 -1
  5. package/dist/components/blocks/Banner/bannerTranslations.d.ts +4 -0
  6. package/dist/components/blocks/Banner/bannerTranslations.d.ts.map +1 -1
  7. package/dist/components/blocks/Banner/createBannerBlock.d.ts +8 -1
  8. package/dist/components/blocks/Banner/createBannerBlock.d.ts.map +1 -1
  9. package/dist/components/blocks/Banner/getBannerViewProps.d.ts +48 -2
  10. package/dist/components/blocks/Banner/getBannerViewProps.d.ts.map +1 -1
  11. package/dist/components/blocks/KnowledgeCheck/createKnowledgeCheckBlock.d.ts +1 -1
  12. package/dist/components/blocks/KnowledgeCheck/knowledgeCheckPropsSchema.d.ts +3 -3
  13. package/dist/components/blocks/Quote/Quote.d.ts +1 -1
  14. package/dist/components/blocks/Quote/Quote.d.ts.map +1 -1
  15. package/dist/components/blocks/Quote/createQuoteBlock.d.ts +4 -1
  16. package/dist/components/blocks/Quote/createQuoteBlock.d.ts.map +1 -1
  17. package/dist/components/blocks/Quote/getQuoteViewProps.d.ts +16 -2
  18. package/dist/components/blocks/Quote/getQuoteViewProps.d.ts.map +1 -1
  19. package/dist/components/blocks/Quote/quotePropsSchema.d.ts +25 -5
  20. package/dist/components/blocks/Quote/quotePropsSchema.d.ts.map +1 -1
  21. package/dist/components/blocks/Text/getTextViewProps.d.ts.map +1 -1
  22. package/dist/components/blocks/TwoColumn/createTwoColumnBlock.d.ts.map +1 -1
  23. package/dist/components/blocks/TwoColumn/twoColumnStyles.d.ts.map +1 -1
  24. package/dist/components/blocks/brandTheming.d.ts +11 -0
  25. package/dist/components/blocks/brandTheming.d.ts.map +1 -1
  26. package/dist/components/blocks/commonSchemas.d.ts +2 -2
  27. package/dist/components/blocks/commonSchemas.d.ts.map +1 -1
  28. package/dist/components/blocks/commonViewProps.d.ts +19 -1
  29. package/dist/components/blocks/commonViewProps.d.ts.map +1 -1
  30. package/dist/editor/BlockContentEditor.d.ts.map +1 -1
  31. package/dist/editor/ai/BlockAIMenu.d.ts +25 -1
  32. package/dist/editor/ai/BlockAIMenu.d.ts.map +1 -1
  33. package/dist/editor/ai/BlockAIMenuContent.d.ts +5 -1
  34. package/dist/editor/ai/BlockAIMenuContent.d.ts.map +1 -1
  35. package/dist/editor/ai/PanelAIMenu.d.ts +30 -0
  36. package/dist/editor/ai/PanelAIMenu.d.ts.map +1 -0
  37. package/dist/editor/ai/PreviewBlockModal.d.ts.map +1 -1
  38. package/dist/editor/ai/aiMenuStyles.d.ts +39 -2
  39. package/dist/editor/ai/aiMenuStyles.d.ts.map +1 -1
  40. package/dist/editor/ai/aiTranslations.d.ts +6 -2
  41. package/dist/editor/ai/aiTranslations.d.ts.map +1 -1
  42. package/dist/editor/ai/constants.d.ts +17 -0
  43. package/dist/editor/ai/constants.d.ts.map +1 -1
  44. package/dist/editor/ai/isBlockEmpty.d.ts +10 -0
  45. package/dist/editor/ai/isBlockEmpty.d.ts.map +1 -0
  46. package/dist/editor/ai/isBlockEmpty.test.d.ts +2 -0
  47. package/dist/editor/ai/isBlockEmpty.test.d.ts.map +1 -0
  48. package/dist/editor/ai/isItemEmpty.d.ts +18 -0
  49. package/dist/editor/ai/isItemEmpty.d.ts.map +1 -0
  50. package/dist/editor/ai/isItemEmpty.test.d.ts +2 -0
  51. package/dist/editor/ai/isItemEmpty.test.d.ts.map +1 -0
  52. package/dist/editor/ai/useBlockAIPopover.d.ts +7 -1
  53. package/dist/editor/ai/useBlockAIPopover.d.ts.map +1 -1
  54. package/dist/editor/canvas/GridItemChild.d.ts +2 -2
  55. package/dist/editor/canvas/GridItemChild.d.ts.map +1 -1
  56. package/dist/editor/canvas/canvasTranslations.d.ts +1 -5
  57. package/dist/editor/canvas/canvasTranslations.d.ts.map +1 -1
  58. package/dist/editor/sidebar/form/ComponentEditorForm.d.ts.map +1 -1
  59. package/dist/editor/sidebar/panel/DesignerSideBar.d.ts +2 -0
  60. package/dist/editor/sidebar/panel/DesignerSideBar.d.ts.map +1 -1
  61. package/dist/editor/sidebar/panel/ToolContentContainer.d.ts +5 -3
  62. package/dist/editor/sidebar/panel/ToolContentContainer.d.ts.map +1 -1
  63. package/dist/editor/sidebar/panel/ToolHeader.d.ts +2 -1
  64. package/dist/editor/sidebar/panel/ToolHeader.d.ts.map +1 -1
  65. package/dist/editor/sidebar/panel/ToolHeaderActionsContext.d.ts +6 -0
  66. package/dist/editor/sidebar/panel/ToolHeaderActionsContext.d.ts.map +1 -1
  67. package/dist/editor/sidebar/useDesignerSelectionFocus.d.ts.map +1 -1
  68. package/dist/index.js +6738 -6172
  69. package/dist/registry/blockRegistry.d.ts +11 -7
  70. package/dist/registry/blockRegistry.d.ts.map +1 -1
  71. package/dist/registry/defineBlock.d.ts +1 -1
  72. package/dist/registry/defineBlock.d.ts.map +1 -1
  73. package/dist/registry/index.d.ts +1 -1
  74. package/dist/registry/index.d.ts.map +1 -1
  75. package/dist/schema/index.d.ts +1 -0
  76. package/dist/schema/index.d.ts.map +1 -1
  77. package/dist/schema/schemaRegistry.d.ts +176 -0
  78. package/dist/schema/schemaRegistry.d.ts.map +1 -0
  79. package/dist/schema/schemaRegistry.test.d.ts +2 -0
  80. package/dist/schema/schemaRegistry.test.d.ts.map +1 -0
  81. package/dist/schema/zodUtils.d.ts +2 -1
  82. package/dist/schema/zodUtils.d.ts.map +1 -1
  83. package/dist/utils/colorVariants/index.d.ts +1 -1
  84. package/dist/utils/colorVariants/index.d.ts.map +1 -1
  85. package/dist/viewer/Viewer.d.ts.map +1 -1
  86. package/locales/en.json +6 -4
  87. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewBlockModal.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/PreviewBlockModal.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAS9F,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,YAAY,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,UAAU,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,kFAAkF;IAClF,iBAAiB,EAAE,aAAa,CAAA;IAChC,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;CACrD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,qKAa/B,sBAAsB,4CA4KxB,CAAA"}
1
+ {"version":3,"file":"PreviewBlockModal.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/PreviewBlockModal.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAS9F,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,YAAY,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,UAAU,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,kFAAkF;IAClF,iBAAiB,EAAE,aAAa,CAAA;IAChC,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;CACrD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,qKAa/B,sBAAsB,4CAgLxB,CAAA"}
@@ -3,9 +3,22 @@
3
3
  * (hover/focus/disabled) and the free-text prompt row. None of it is expressible in InstUI
4
4
  * props — it needs `:hover`/`:focus-visible`/`:disabled` states and a borderless input — so it
5
5
  * is injected once as a global stylesheet keyed by stable class names, the same way the canvas
6
- * and preview chrome are. The source's `theme.gradients.igniteAI` branding is neutralized to
7
- * plain InstUI surface tokens; the AI accent lives in the colored AI icon on the trigger.
6
+ * and preview chrome are. The card and rows use plain InstUI surface tokens; the AI accent is the
7
+ * colored AI icon on the trigger plus the gradient clipped to the prompt-header title below.
8
8
  */
9
+ /**
10
+ * Card and send-button radius: 12px, matching canvas-horizon's `radiusSmallMedium`. A literal,
11
+ * not a `borders.*` token, because the two hosts' scales collide on names — `radiusLarge` is 8px
12
+ * on InstUI's canvas theme and 32px on horizon's — and canvas has no 12px step at all, so no
13
+ * token name means 12px in both.
14
+ */
15
+ export declare const AI_MENU_RADIUS = "0.75rem";
16
+ /**
17
+ * The menu trigger's open-state radius: 8px, for the same reason as {@link AI_MENU_RADIUS} — a
18
+ * literal, because `borders.radiusLarge` is 8px on InstUI's canvas theme but 32px on horizon's,
19
+ * which would round the trigger into a pill on one host and a square on the other.
20
+ */
21
+ export declare const AI_TRIGGER_RADIUS = "0.5rem";
9
22
  export declare const AI_CLASS: {
10
23
  readonly root: "bce-ai-menu-root";
11
24
  readonly card: "bce-ai-menu-card";
@@ -13,11 +26,35 @@ export declare const AI_CLASS: {
13
26
  readonly item: "bce-ai-menu-item";
14
27
  readonly itemLabel: "bce-ai-menu-item-label";
15
28
  readonly subHeader: "bce-ai-menu-subheader";
29
+ readonly gradientTitle: "bce-ai-menu-gradient-title";
30
+ readonly promptHeader: "bce-ai-menu-prompt-header";
31
+ readonly charCount: "bce-ai-menu-char-count";
16
32
  readonly input: "bce-ai-menu-input";
17
33
  readonly footer: "bce-ai-menu-footer";
18
34
  readonly thinkingBody: "bce-ai-menu-thinking";
19
35
  readonly thinkingStatus: "bce-ai-menu-thinking-status";
36
+ /** Wrapper around the menu trigger when it sits on a light surface (the sidebar panel header). */
37
+ readonly lightTrigger: "bce-ai-menu-light-trigger";
38
+ readonly lightTriggerOpen: "bce-ai-menu-light-trigger-open";
20
39
  };
21
40
  /** Mounts the AI menu chrome stylesheet once, under the menu popover. */
22
41
  export declare function AIMenuStyles(): import("react/jsx-runtime").JSX.Element;
42
+ /**
43
+ * The menu trigger on a light surface — the sidebar panel header. Closed, it is the bare
44
+ * gradient icon; open, that icon sits in a rounded square outlined in the same violet→sea
45
+ * gradient over a light tint of it. The icon itself is unchanged between the two states — the
46
+ * highlight is what moves.
47
+ *
48
+ * The canvas item toolbar's trigger needs none of this: it sits on a dark bar that already
49
+ * reads as a container, so it swaps a monochrome icon for a colored one instead.
50
+ *
51
+ * Separate from `AIMenuStyles` because that stylesheet mounts with the *open* popover's content,
52
+ * and this has to be present while the trigger is merely rendered. Kept out of `AIMenuStyles`
53
+ * rather than hoisting that component so a canvas full of blocks does not mount one copy of the
54
+ * whole menu stylesheet per block.
55
+ *
56
+ * `withBackground={false}` on the InstUI IconButton leaves the button transparent, so the
57
+ * selectors below only have to add paint, never undo any.
58
+ */
59
+ export declare function AITriggerStyles(): import("react/jsx-runtime").JSX.Element;
23
60
  //# sourceMappingURL=aiMenuStyles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aiMenuStyles.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/aiMenuStyles.tsx"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;CAWX,CAAA;AAmBV,yEAAyE;AACzE,wBAAgB,YAAY,4CA+G3B"}
1
+ {"version":3,"file":"aiMenuStyles.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/aiMenuStyles.tsx"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YAAY,CAAA;AAEvC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,WAAW,CAAA;AAEzC,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;IAcnB,kGAAkG;;;CAG1F,CAAA;AAyBV,yEAAyE;AACzE,wBAAgB,YAAY,4CA8J3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,4CAgD9B"}
@@ -18,8 +18,10 @@ export interface DesignerAITranslations {
18
18
  aiActions: string;
19
19
  /** Back link from a submenu to the root menu. */
20
20
  backToMenu: string;
21
- /** Root action + prompt-view header: open a free-text regenerate prompt. */
22
- regenerateWithPrompt: string;
21
+ /** Root action + prompt-view header: open the free-text generate prompt. */
22
+ generateWithIdea: string;
23
+ /** Closes the menu from the prompt-view header, when there is no root menu to go back to. */
24
+ closeAiActions: string;
23
25
  /** Root action: open the tone submenu. */
24
26
  changeTone: string;
25
27
  /** Root action: open the length submenu. */
@@ -41,6 +43,8 @@ export interface DesignerAITranslations {
41
43
  readingAdvanced: string;
42
44
  /** Prompt input label/placeholder. */
43
45
  promptPlaceholder: string;
46
+ /** Live character count on the prompt. `%{count}` of `%{max}`. */
47
+ promptCharacterCount: string;
44
48
  /** Toggle: show the before/after preview before applying. */
45
49
  previewFirst: string;
46
50
  /** Send the prompt. */
@@ -1 +1 @@
1
- {"version":3,"file":"aiTranslations.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/aiTranslations.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,oBAAoB,EAAE,MAAM,CAAA;IAC5B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,CAAA;IACzB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAA;IACpB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,CAAA;IACxB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kFAAkF;IAClF,qBAAqB,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,EAAE,sBAuC/B,CAAA"}
1
+ {"version":3,"file":"aiTranslations.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/aiTranslations.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,iGAAiG;IACjG,WAAW,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAA;IACxB,6FAA6F;IAC7F,cAAc,EAAE,MAAM,CAAA;IACtB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,yCAAyC;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,EAAE,MAAM,CAAA;IACvB,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,CAAA;IACzB,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAA;IACpB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,oFAAoF;IACpF,gBAAgB,EAAE,MAAM,CAAA;IACxB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kFAAkF;IAClF,qBAAqB,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,EAAE,sBAyC/B,CAAA"}
@@ -5,4 +5,21 @@ export declare const PREVIEW_BLOCK_VIEWS: {
5
5
  readonly BEFORE: "before";
6
6
  };
7
7
  export type PreviewBlockView = (typeof PREVIEW_BLOCK_VIEWS)[keyof typeof PREVIEW_BLOCK_VIEWS];
8
+ /** Cap on the free-text generate prompt, matching the character counter shown beside it. */
9
+ export declare const PROMPT_MAX_LENGTH = 100;
10
+ /**
11
+ * Marks a portaled AI surface — the menu card and the before/after preview — so the designer's
12
+ * canvas↔panel selection coordination can tell "focus moved into one of our own overlays" from
13
+ * "focus left the editor entirely" and deselected the block.
14
+ *
15
+ * A DOM marker rather than a callback because a portal renders outside both the canvas and the
16
+ * tool panel, so neither side can reach it through the React tree; `useDesignerSelectionFocus`
17
+ * already reads the canvas's equivalent marker class the same way. Sniffed document-wide, so it
18
+ * only has to be present *somewhere* inside the overlay.
19
+ */
20
+ export declare const DESIGNER_OVERLAY_ATTR: {
21
+ readonly 'data-designer-overlay': "true";
22
+ };
23
+ /** Matches {@link DESIGNER_OVERLAY_ATTR}. */
24
+ export declare const DESIGNER_OVERLAY_SELECTOR = "[data-designer-overlay]";
8
25
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/constants.ts"],"names":[],"mappings":"AAkBA,iEAAiE;AACjE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/constants.ts"],"names":[],"mappings":"AAkBA,iEAAiE;AACjE,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAA;AAE7F,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,MAAM,CAAA;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;CAA+C,CAAA;AAEjF,6CAA6C;AAC7C,eAAO,MAAM,yBAAyB,4BAA4B,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { BlockRegistry } from '../../registry';
2
+ /**
3
+ * True when a block still holds exactly what it was registered with. Drives which AI menu it
4
+ * gets: an untouched block opens on the generate prompt, having nothing yet to change the tone,
5
+ * length, or reading level of. Editing content or styling counts as touching it; moving does not.
6
+ *
7
+ * Internal by choice — it reads the registry, but no host has asked for it.
8
+ */
9
+ export declare function isBlockEmpty(registry: BlockRegistry, componentName: string, componentData: Record<string, unknown>): boolean;
10
+ //# sourceMappingURL=isBlockEmpty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBlockEmpty.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/isBlockEmpty.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,gBAAgB,CAAA;AAoBtE;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CA0BT"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isBlockEmpty.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBlockEmpty.test.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/isBlockEmpty.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { FormFieldMetadata } from '../../schema';
2
+ /**
3
+ * True when a sub-block (one entry of an object-array field, e.g. an Accordion section or a
4
+ * flash card) still holds exactly what it was created with. The sub-block twin of
5
+ * `isBlockEmpty`, and it drives the same decision: an untouched sub-block opens the AI menu on
6
+ * the generate prompt, having nothing yet to change the tone, length, or reading level of.
7
+ *
8
+ * A block's registered defaults can already contain blank items — an Accordion ships with three —
9
+ * so this reads the field's `itemProperties`, not the block's `defaultProps`.
10
+ */
11
+ export declare function isItemEmpty(itemProperties: Record<string, FormFieldMetadata>, item: Record<string, unknown> | undefined): boolean;
12
+ /**
13
+ * True when a sub-block has at least one prose property. Gates whether its panel offers AI at
14
+ * all — the menu's four actions all rewrite text, so an item made only of enums and colors has
15
+ * nothing for them to do.
16
+ */
17
+ export declare function itemHasTextFields(itemProperties: Record<string, FormFieldMetadata>): boolean;
18
+ //# sourceMappingURL=isItemEmpty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isItemEmpty.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/isItemEmpty.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,KAAK,iBAAiB,EAAiB,MAAM,cAAc,CAAA;AA6CpE;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACjD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,OAAO,CAE5F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=isItemEmpty.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isItemEmpty.test.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/isItemEmpty.test.ts"],"names":[],"mappings":""}
@@ -2,6 +2,12 @@ interface UseBlockAIPopoverProps {
2
2
  componentType: string;
3
3
  componentData: Record<string, unknown>;
4
4
  componentId?: string;
5
+ /**
6
+ * Names the sub-block the menu was opened on (e.g. `Accordion 1`), when it was opened from a
7
+ * sub-block panel rather than the block itself. The request still carries the whole block —
8
+ * the agent needs the siblings for context — so this is what tells it which part to rewrite.
9
+ */
10
+ instructionScope?: string;
5
11
  onApply: (newProps: Record<string, unknown>) => void;
6
12
  onClose: () => void;
7
13
  }
@@ -11,7 +17,7 @@ interface UseBlockAIPopoverProps {
11
17
  * `useAIAction()` seam (the host closes over course/chat context) and preserves the abort signal
12
18
  * for `handleStop`. If no seam is provided it is inert.
13
19
  */
14
- export declare const useBlockAIPopover: ({ componentType, componentData, componentId, onApply, onClose, }: UseBlockAIPopoverProps) => {
20
+ export declare const useBlockAIPopover: ({ componentType, componentData, componentId, instructionScope, onApply, onClose, }: UseBlockAIPopoverProps) => {
15
21
  prompt: string;
16
22
  setPrompt: import('react').Dispatch<import('react').SetStateAction<string>>;
17
23
  isThinking: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"useBlockAIPopover.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/useBlockAIPopover.ts"],"names":[],"mappings":"AAyBA,UAAU,sBAAsB;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACpD,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,kEAM/B,sBAAsB;;;;;;;;;+BAoDiB,MAAM;;uCAwBE,MAAM;;;CAgDvD,CAAA"}
1
+ {"version":3,"file":"useBlockAIPopover.d.ts","sourceRoot":"","sources":["../../../src/editor/ai/useBlockAIPopover.ts"],"names":[],"mappings":"AAyBA,UAAU,sBAAsB;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACpD,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,oFAO/B,sBAAsB;;;;;;;;;+BA2DiB,MAAM;;uCAwBE,MAAM;;;CAgDvD,CAAA"}
@@ -25,8 +25,8 @@ export interface DesignerItemUIProps {
25
25
  onAIApply?: (newProps: Record<string, unknown>) => void;
26
26
  /** Composed by the host — passed to the AI menu to render the before/after preview + resolve. */
27
27
  componentRegistry?: BlockRegistry;
28
- /** Callback when delete is confirmed via the popover. */
29
- onDeleteConfirm?: () => void;
28
+ /** Callback when the delete action is clicked. */
29
+ onDeleteClick?: () => void;
30
30
  /** Ref and props for the drag handle (from `useSortable`). */
31
31
  dragHandleProps?: Record<string, unknown>;
32
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GridItemChild.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/GridItemChild.tsx"],"names":[],"mappings":"AAmCA,OAAO,EAAc,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAA;AAGzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAInE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,CAAC,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,IAAI,CAAA;IACzD,gBAAgB,EAAE,CAAC,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,IAAI,CAAA;IAC9D,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,wDAAwD;IACxD,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACvD,iGAAiG;IACjG,iBAAiB,CAAC,EAAE,aAAa,CAAA;IACjC,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC;;;OAGG;IACH,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACpC,mFAAmF;IACnF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,cAAc,gHA2L1B,CAAA;AAID,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"GridItemChild.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/GridItemChild.tsx"],"names":[],"mappings":"AA+BA,OAAO,EAAc,KAAK,SAAS,EAAY,MAAM,OAAO,CAAA;AAG5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAInE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,CAAC,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,IAAI,CAAA;IACzD,gBAAgB,EAAE,CAAC,CAAC,EAAE;QAAE,eAAe,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,IAAI,CAAA;IAC9D,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,wDAAwD;IACxD,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IACvD,iGAAiG;IACjG,iBAAiB,CAAC,EAAE,aAAa,CAAA;IACjC,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACzC;;;OAGG;IACH,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACpC,mFAAmF;IACnF,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,eAAO,MAAM,cAAc,gHA+I1B,CAAA;AAID,eAAe,cAAc,CAAA"}
@@ -42,12 +42,8 @@ export interface DesignerChromeTranslations {
42
42
  duplicate: string;
43
43
  /** Delete button screen-reader label. */
44
44
  deleteComponent: string;
45
- /** Delete button tooltip and confirm action. */
45
+ /** Delete button tooltip. */
46
46
  delete: string;
47
- /** Delete confirmation prompt. */
48
- deleteConfirmation: string;
49
- /** Cancel button in the delete confirmation. */
50
- cancel: string;
51
47
  /** Component overlay `aria-label` opening the settings for a block. */
52
48
  editComponent: string;
53
49
  /** `aria-label` for the group wrapping a block on the canvas. */
@@ -1 +1 @@
1
- {"version":3,"file":"canvasTranslations.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/canvasTranslations.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACzC,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAA;IACvB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAA;IAClB,sFAAsF;IACtF,oBAAoB,EAAE,MAAM,CAAA;IAC5B,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAA;IACxB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,EAAE,0BA2BnC,CAAA"}
1
+ {"version":3,"file":"canvasTranslations.d.ts","sourceRoot":"","sources":["../../../src/editor/canvas/canvasTranslations.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,MAAM,WAAW,0BAA0B;IACzC,2FAA2F;IAC3F,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,eAAe,EAAE,MAAM,CAAA;IACvB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAA;IAClB,sFAAsF;IACtF,oBAAoB,EAAE,MAAM,CAAA;IAC5B,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAA;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,gBAAgB,EAAE,MAAM,CAAA;IACxB,uCAAuC;IACvC,aAAa,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,eAAe,EAAE,MAAM,CAAA;IACvB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAA;IACrB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAA;IACtB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAA;IACxB,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,EAAE,0BAyBnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentEditorForm.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/form/ComponentEditorForm.tsx"],"names":[],"mappings":"AAiCA,OAAO,EAEL,KAAK,YAAY,EAKlB,MAAM,OAAO,CAAA;AAYd,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,mBAAmB,CAAA;AA2KzE,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnE,sEAAsE;IACtE,QAAQ,EAAE,aAAa,CAAA;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,cAAc,EACd,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,EAAE,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAoKhD"}
1
+ {"version":3,"file":"ComponentEditorForm.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/form/ComponentEditorForm.tsx"],"names":[],"mappings":"AAiCA,OAAO,EAEL,KAAK,YAAY,EAMlB,MAAM,OAAO,CAAA;AAYd,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,mBAAmB,CAAA;AA8PzE,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACnE,sEAAsE;IACtE,QAAQ,EAAE,aAAa,CAAA;CACxB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,cAAc,EACd,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,EAAE,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAwPhD"}
@@ -1,5 +1,7 @@
1
1
  import { Ref } from 'react';
2
2
  import { DesignerSideBarProps, ToolPanelHandle } from './types';
3
+ /** True when the viewport is below the medium breakpoint (mobile layout active). */
4
+ export declare function useIsCompactLayout(enabled?: boolean): boolean;
3
5
  /**
4
6
  * The designer sidebar: a collapsible tool panel on desktop (icon rail + resizable content)
5
7
  * and a slide-up overlay + bottom toolbar on mobile. Built-in trays and any host tools are
@@ -1 +1 @@
1
- {"version":3,"file":"DesignerSideBar.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/DesignerSideBar.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAIL,KAAK,GAAG,EAQT,MAAM,OAAO,CAAA;AAYd,OAAO,KAAK,EAAE,oBAAoB,EAAQ,eAAe,EAAE,MAAM,SAAS,CAAA;AA6C1E;;;;;GAKG;AACH,iBAAS,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAC7C,EACE,KAAK,EAAE,aAAa,EACpB,qBAAqB,EACrB,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,oBAA2B,EAC3B,cAAc,EAAE,wBAAwB,EACxC,sBAAsB,EACtB,IAAI,EACJ,YAAY,EACZ,+BAAsC,EACtC,uBAAuB,EACvB,UAAU,EACV,MAAM,GACP,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,2CA0W9B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAuC,CAAC,EAAE,SAAS,MAAM,EACnF,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,KACjE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
1
+ {"version":3,"file":"DesignerSideBar.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/DesignerSideBar.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAIL,KAAK,GAAG,EAQT,MAAM,OAAO,CAAA;AAYd,OAAO,KAAK,EAAE,oBAAoB,EAAQ,eAAe,EAAE,MAAM,SAAS,CAAA;AAuB1E,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,OAAO,UAAO,GAAG,OAAO,CAmB1D;AAED;;;;;GAKG;AACH,iBAAS,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAC7C,EACE,KAAK,EAAE,aAAa,EACpB,qBAAqB,EACrB,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,oBAA2B,EAC3B,cAAc,EAAE,wBAAwB,EACxC,sBAAsB,EACtB,IAAI,EACJ,YAAY,EACZ,+BAAsC,EACtC,uBAAuB,EACvB,UAAU,EACV,MAAM,GACP,EAAE,oBAAoB,CAAC,EAAE,CAAC,EAC3B,GAAG,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,2CA2W9B;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAuC,CAAC,EAAE,SAAS,MAAM,EACnF,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,KACjE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
@@ -7,6 +7,7 @@ interface ToolContentContainerProps {
7
7
  title: string;
8
8
  variant?: ToolVariant;
9
9
  onClose?: () => void;
10
+ showCloseButton?: boolean;
10
11
  onBack?: () => void;
11
12
  onToggleFullWidth?: () => void;
12
13
  isFullWidth?: boolean;
@@ -19,9 +20,10 @@ interface ToolContentContainerProps {
19
20
  /**
20
21
  * Wraps a tool's content with the header and scrollable body, and owns focus lifecycle:
21
22
  * focus the close button on open (or the container when there is none), the back button on
22
- * forward navigation, the close button on backward navigation. Escape closes the tool
23
- * (ignoring Escape bubbling up from portaled descendants like popovers).
23
+ * forward navigation, the close button on backward navigation (falling back to the container
24
+ * when there is no close button, e.g. the desktop panel). Escape closes the tool (ignoring
25
+ * Escape bubbling up from portaled descendants like popovers).
24
26
  */
25
- export declare function ToolContentContainer({ id, headingId, icon, title, variant, onClose, onBack, onToggleFullWidth, isFullWidth, isFullScreen, toolStyle, skipInitialFocus, onAfterInitialFocus, children, }: ToolContentContainerProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function ToolContentContainer({ id, headingId, icon, title, variant, onClose, showCloseButton, onBack, onToggleFullWidth, isFullWidth, isFullScreen, toolStyle, skipInitialFocus, onAfterInitialFocus, children, }: ToolContentContainerProps): import("react/jsx-runtime").JSX.Element;
26
28
  export {};
27
29
  //# sourceMappingURL=ToolContentContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolContentContainer.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/ToolContentContainer.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAA;AAMtE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErD,UAAU,yBAAyB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,EAAE,EACF,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAmB,EACnB,OAAO,EACP,MAAM,EACN,iBAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,SAAS,EACT,gBAAwB,EACxB,mBAAmB,EACnB,QAAQ,GACT,EAAE,yBAAyB,2CA+G3B"}
1
+ {"version":3,"file":"ToolContentContainer.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/ToolContentContainer.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAA;AAMtE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErD,UAAU,yBAAyB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,EAAE,EACF,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAmB,EACnB,OAAO,EACP,eAAsB,EACtB,MAAM,EACN,iBAAiB,EACjB,WAAmB,EACnB,YAAoB,EACpB,SAAS,EACT,gBAAwB,EACxB,mBAAmB,EACnB,QAAQ,GACT,EAAE,yBAAyB,2CAoI3B"}
@@ -7,6 +7,7 @@ interface ToolHeaderProps {
7
7
  showBackButton?: boolean;
8
8
  onBack?: () => void;
9
9
  onClose?: () => void;
10
+ showCloseButton?: boolean;
10
11
  onToggleFullWidth?: () => void;
11
12
  isFullWidth?: boolean;
12
13
  headerActions?: ReactNode;
@@ -19,6 +20,6 @@ interface ToolHeaderProps {
19
20
  * of host-injected `headerActions`, the full-width toggle, and the close button. The title
20
21
  * shows `subtitle` when navigated into a sub-view, otherwise the tool `title`.
21
22
  */
22
- export declare function ToolHeader({ headingId, icon, title, subtitle, showBackButton, onBack, onClose, onToggleFullWidth, isFullWidth, headerActions, darkSurface, closeButtonElementRef, backButtonElementRef, }: ToolHeaderProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function ToolHeader({ headingId, icon, title, subtitle, showBackButton, onBack, onClose, showCloseButton, onToggleFullWidth, isFullWidth, headerActions, darkSurface, closeButtonElementRef, backButtonElementRef, }: ToolHeaderProps): import("react/jsx-runtime").JSX.Element;
23
24
  export {};
24
25
  //# sourceMappingURL=ToolHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolHeader.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/ToolHeader.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAYrD,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;IACpD,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACpD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,cAAc,EACd,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,WAAmB,EACnB,aAAa,EACb,WAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,eAAe,2CA2EjB"}
1
+ {"version":3,"file":"ToolHeader.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/ToolHeader.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAYrD,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qBAAqB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;IACpD,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACpD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,cAAc,EACd,MAAM,EACN,OAAO,EACP,eAAsB,EACtB,iBAAiB,EACjB,WAAmB,EACnB,aAAa,EACb,WAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,EAAE,eAAe,2CA2EjB"}
@@ -5,4 +5,10 @@ export declare function ToolHeaderActionsProvider({ children }: {
5
5
  }): import("react/jsx-runtime").JSX.Element;
6
6
  /** Access the header-action slot. Throws outside a `ToolHeaderActionsProvider`. */
7
7
  export declare function useToolHeaderActions(): ToolHeaderActionsContextValue;
8
+ /**
9
+ * Access the header-action slot, or `undefined` when there is no header to fill. For content
10
+ * that a host can legitimately render outside the sidebar — `ComponentEditorForm` is exported
11
+ * on its own — where contributing a header action is an enhancement, not a requirement.
12
+ */
13
+ export declare function useOptionalToolHeaderActions(): ToolHeaderActionsContextValue | undefined;
8
14
  //# sourceMappingURL=ToolHeaderActionsContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolHeaderActionsContext.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/ToolHeaderActionsContext.tsx"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAiC,MAAM,OAAO,CAAA;AACpF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;AAI5D,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAS9E;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,IAAI,6BAA6B,CAMpE"}
1
+ {"version":3,"file":"ToolHeaderActionsContext.d.ts","sourceRoot":"","sources":["../../../../src/editor/sidebar/panel/ToolHeaderActionsContext.tsx"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAiC,MAAM,OAAO,CAAA;AACpF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA;AAI5D,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAS9E;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,IAAI,6BAA6B,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,IAAI,6BAA6B,GAAG,SAAS,CAExF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDesignerSelectionFocus.d.ts","sourceRoot":"","sources":["../../../src/editor/sidebar/useDesignerSelectionFocus.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAA;AAGvF;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE;QACX,cAAc,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;QACvC,aAAa,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACvC,CAAA;IACD,UAAU,EAAE;QACV,aAAa,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;QACtC,iBAAiB,EAAE,MAAM,CAAA;KAC1B,CAAA;IACD;;;;;;;;;OASG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAA;CACjC;AAED,UAAU,OAAO;IACf,4EAA4E;IAC5E,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACxC,6FAA6F;IAC7F,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAKD,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,UAAU,GACX,EAAE,OAAO,GAAG,8BAA8B,CAiJ1C"}
1
+ {"version":3,"file":"useDesignerSelectionFocus.d.ts","sourceRoot":"","sources":["../../../src/editor/sidebar/useDesignerSelectionFocus.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAA;AAIvF;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,8BAA8B;IAC7C,WAAW,EAAE;QACX,cAAc,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;QACvC,aAAa,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACvC,CAAA;IACD,UAAU,EAAE;QACV,aAAa,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;QACtC,iBAAiB,EAAE,MAAM,CAAA;KAC1B,CAAA;IACD;;;;;;;;;OASG;IACH,oBAAoB,EAAE,MAAM,IAAI,CAAA;CACjC;AAED,UAAU,OAAO;IACf,4EAA4E;IAC5E,SAAS,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACxC,6FAA6F;IAC7F,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAkBD,wBAAgB,yBAAyB,CAAC,EACxC,SAAS,EACT,UAAU,GACX,EAAE,OAAO,GAAG,8BAA8B,CA2J1C"}