@drawnagency/primitives 0.1.88 → 0.1.90

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 (124) hide show
  1. package/dist/{chunk-75P6HWPN.js → chunk-5BM2Y3NJ.js} +5 -3
  2. package/dist/{chunk-OEL57NYV.js → chunk-AGWE2LJG.js} +26 -2
  3. package/dist/{chunk-DRCPDOW3.js → chunk-CZ3YXGK5.js} +59 -0
  4. package/dist/{chunk-PTVY3Q7P.js → chunk-KBQNJZUX.js} +1 -1
  5. package/dist/{chunk-XPUBUR64.js → chunk-KMQZYORS.js} +28 -2
  6. package/dist/{chunk-WA3HFN54.js → chunk-MK7YB2A4.js} +1 -1
  7. package/dist/{chunk-EO7K45GV.js → chunk-NV4R6VHN.js} +1 -1
  8. package/dist/{chunk-XDG2K6UT.js → chunk-SIYQ37QY.js} +13 -5
  9. package/dist/{chunk-NEDOJHHR.js → chunk-XKRQMTE4.js} +11 -2
  10. package/dist/{chunk-SK6GGTTO.js → chunk-XUIJHYKI.js} +3 -3
  11. package/dist/{chunk-H2FENAQH.js → chunk-ZLG7S54V.js} +242 -83
  12. package/dist/components/chat/ChatPanel.d.ts +20 -3
  13. package/dist/components/chat/ChatPanel.d.ts.map +1 -1
  14. package/dist/components/chat/ChatWidget.d.ts +7 -1
  15. package/dist/components/chat/ChatWidget.d.ts.map +1 -1
  16. package/dist/components/chat/chat-history.d.ts +24 -0
  17. package/dist/components/chat/chat-history.d.ts.map +1 -0
  18. package/dist/components/editor/AudienceIndicator.d.ts +6 -0
  19. package/dist/components/editor/AudienceIndicator.d.ts.map +1 -1
  20. package/dist/components/editor/ChildBlockWrapper.d.ts.map +1 -1
  21. package/dist/components/editor/ColSpanControl.d.ts.map +1 -1
  22. package/dist/components/editor/DragHandle.d.ts +3 -1
  23. package/dist/components/editor/DragHandle.d.ts.map +1 -1
  24. package/dist/components/editor/SectionWrapper.d.ts.map +1 -1
  25. package/dist/components/editor/StatusIndicator.d.ts +7 -0
  26. package/dist/components/editor/StatusIndicator.d.ts.map +1 -1
  27. package/dist/components/editor/index.js +100 -78
  28. package/dist/components/primitives/index.js +5 -5
  29. package/dist/components/sections/Container/Container.d.ts +3 -2
  30. package/dist/components/sections/Container/Container.d.ts.map +1 -1
  31. package/dist/components/sections/Container/ContainerSettingsForm.d.ts +4 -2
  32. package/dist/components/sections/Container/ContainerSettingsForm.d.ts.map +1 -1
  33. package/dist/components/sections/Container/index.d.ts +8 -2
  34. package/dist/components/sections/Container/index.d.ts.map +1 -1
  35. package/dist/components/sections/SectionLayout.d.ts +3 -1
  36. package/dist/components/sections/SectionLayout.d.ts.map +1 -1
  37. package/dist/components/sections/ViewRenderer.d.ts +3 -1
  38. package/dist/components/sections/ViewRenderer.d.ts.map +1 -1
  39. package/dist/components/sections/all-sections.d.ts +8 -2
  40. package/dist/components/sections/all-sections.d.ts.map +1 -1
  41. package/dist/components/sections/brand-guide.js +5 -5
  42. package/dist/components/sections/core-sections.d.ts +8 -2
  43. package/dist/components/sections/core-sections.d.ts.map +1 -1
  44. package/dist/components/sections/register-schemas.js +8 -8
  45. package/dist/components/sections/register.js +8 -8
  46. package/dist/components/shared/Navigation.d.ts +6 -1
  47. package/dist/components/shared/Navigation.d.ts.map +1 -1
  48. package/dist/components/shared/Tooltip.d.ts +8 -1
  49. package/dist/components/shared/Tooltip.d.ts.map +1 -1
  50. package/dist/components/shell/AudiencePreviewMenu.d.ts +7 -0
  51. package/dist/components/shell/AudiencePreviewMenu.d.ts.map +1 -0
  52. package/dist/components/shell/AuthoringDefaultsMenu.d.ts +10 -0
  53. package/dist/components/shell/AuthoringDefaultsMenu.d.ts.map +1 -0
  54. package/dist/components/shell/EditorContext.d.ts +3 -0
  55. package/dist/components/shell/EditorContext.d.ts.map +1 -1
  56. package/dist/components/shell/EditorShell.d.ts.map +1 -1
  57. package/dist/components/shell/MediaLibraryContext.d.ts +3 -1
  58. package/dist/components/shell/MediaLibraryContext.d.ts.map +1 -1
  59. package/dist/components/shell/SiteSettingsChatbot.d.ts.map +1 -1
  60. package/dist/hooks/useBuildStatus.d.ts.map +1 -1
  61. package/dist/hooks/useMediaPipeline.d.ts +5 -1
  62. package/dist/hooks/useMediaPipeline.d.ts.map +1 -1
  63. package/dist/index.js +17 -5
  64. package/dist/lib/authoring-defaults.d.ts +17 -0
  65. package/dist/lib/authoring-defaults.d.ts.map +1 -0
  66. package/dist/lib/chatbot.d.ts +10 -0
  67. package/dist/lib/chatbot.d.ts.map +1 -0
  68. package/dist/lib/container-grid.d.ts +6 -0
  69. package/dist/lib/container-grid.d.ts.map +1 -1
  70. package/dist/lib/contrast.d.ts +5 -0
  71. package/dist/lib/contrast.d.ts.map +1 -1
  72. package/dist/lib/index.d.ts +2 -1
  73. package/dist/lib/index.d.ts.map +1 -1
  74. package/dist/lib/index.js +11 -3
  75. package/dist/lib/migrate-sections-transform.js +1 -1
  76. package/dist/media/compose-preview.d.ts +23 -0
  77. package/dist/media/compose-preview.d.ts.map +1 -0
  78. package/dist/media/index.d.ts +1 -0
  79. package/dist/media/index.d.ts.map +1 -1
  80. package/dist/media/index.js +4 -2
  81. package/dist/media/preview-inputs.d.ts +31 -0
  82. package/dist/media/preview-inputs.d.ts.map +1 -0
  83. package/dist/schemas/index.js +4 -2
  84. package/dist/schemas/media.d.ts +2 -0
  85. package/dist/schemas/media.d.ts.map +1 -1
  86. package/dist/schemas/site-config.d.ts +18 -0
  87. package/dist/schemas/site-config.d.ts.map +1 -1
  88. package/package.json +1 -1
  89. package/src/components/chat/ChatPanel.tsx +437 -65
  90. package/src/components/chat/ChatWidget.tsx +90 -32
  91. package/src/components/chat/chat-history.ts +105 -0
  92. package/src/components/editor/AudienceIndicator.tsx +50 -37
  93. package/src/components/editor/ChildBlockWrapper.tsx +8 -7
  94. package/src/components/editor/ColSpanControl.tsx +14 -11
  95. package/src/components/editor/DragHandle.tsx +5 -2
  96. package/src/components/editor/PagesModal.tsx +10 -10
  97. package/src/components/editor/SectionWrapper.tsx +32 -21
  98. package/src/components/editor/StatusIndicator.tsx +37 -24
  99. package/src/components/sections/Container/Container.tsx +185 -43
  100. package/src/components/sections/Container/ContainerSettingsForm.tsx +64 -24
  101. package/src/components/sections/Container/index.tsx +45 -20
  102. package/src/components/sections/SectionLayout.tsx +13 -3
  103. package/src/components/sections/ViewRenderer.tsx +11 -2
  104. package/src/components/shared/Navigation.tsx +18 -5
  105. package/src/components/shared/Tooltip.tsx +18 -2
  106. package/src/components/shell/AudiencePreviewMenu.tsx +73 -0
  107. package/src/components/shell/AuthoringDefaultsMenu.tsx +54 -0
  108. package/src/components/shell/EditorContext.tsx +5 -1
  109. package/src/components/shell/EditorShell.tsx +130 -13
  110. package/src/components/shell/MediaLibraryContext.tsx +1 -1
  111. package/src/components/shell/SiteSettingsChatbot.tsx +49 -1
  112. package/src/hooks/useBuildStatus.ts +35 -4
  113. package/src/hooks/useMediaPipeline.ts +7 -3
  114. package/src/lib/authoring-defaults.ts +42 -0
  115. package/src/lib/chatbot.ts +30 -0
  116. package/src/lib/container-grid.ts +14 -0
  117. package/src/lib/contrast.ts +12 -0
  118. package/src/lib/index.ts +2 -1
  119. package/src/lib/migrate-sections-transform.ts +5 -3
  120. package/src/media/compose-preview.ts +90 -0
  121. package/src/media/index.ts +1 -0
  122. package/src/media/preview-inputs.ts +77 -0
  123. package/src/schemas/media.ts +3 -0
  124. package/src/schemas/site-config.ts +27 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ChildBlockWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/editor/ChildBlockWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uDAAuD,CAAC;AAQlF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,mHAyF7B,CAAC"}
1
+ {"version":3,"file":"ChildBlockWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/editor/ChildBlockWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uDAAuD,CAAC;AASlF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,iBAAiB,mHAyF7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColSpanControl.d.ts","sourceRoot":"","sources":["../../../src/components/editor/ColSpanControl.tsx"],"names":[],"mappings":"AAMA,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,mBAAmB,kDA0CjF"}
1
+ {"version":3,"file":"ColSpanControl.d.ts","sourceRoot":"","sources":["../../../src/components/editor/ColSpanControl.tsx"],"names":[],"mappings":"AAOA,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,mBAAmB,kDA4CjF"}
@@ -1,2 +1,4 @@
1
- export declare const DragHandle: import("react").ForwardRefExoticComponent<import("react").RefAttributes<HTMLButtonElement>>;
1
+ export declare const DragHandle: import("react").ForwardRefExoticComponent<{
2
+ tooltipSide?: "bottom" | "right";
3
+ } & import("react").RefAttributes<HTMLButtonElement>>;
2
4
  //# sourceMappingURL=DragHandle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DragHandle.d.ts","sourceRoot":"","sources":["../../../src/components/editor/DragHandle.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,6FAYrB,CAAC"}
1
+ {"version":3,"file":"DragHandle.d.ts","sourceRoot":"","sources":["../../../src/components/editor/DragHandle.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU;kBAAiD,QAAQ,GAAG,OAAO;qDAexF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/editor/SectionWrapper.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,WAAW,EACX,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,YAAY,2CAgVd"}
1
+ {"version":3,"file":"SectionWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/editor/SectionWrapper.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,WAAW,EACX,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,SAAS,EACT,MAAM,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,YAAY,2CAyVd"}
@@ -15,6 +15,13 @@ interface DeriveResult {
15
15
  description: string;
16
16
  }
17
17
  export declare function deriveStatusDisplay({ mainStatus, savedStatus, contentDiffers, isLocalOnly }: DeriveInput): DeriveResult;
18
+ interface StatusRadioListProps {
19
+ status: Status;
20
+ onChange: (status: Status) => void;
21
+ onClose?: () => void;
22
+ ariaLabel?: string;
23
+ }
24
+ export declare function StatusRadioList({ status, onChange, onClose, ariaLabel }: StatusRadioListProps): import("react/jsx-runtime").JSX.Element;
18
25
  interface StatusIndicatorProps {
19
26
  mainStatus: string | null;
20
27
  savedStatus: string;
@@ -1 +1 @@
1
- {"version":3,"file":"StatusIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/editor/StatusIndicator.tsx"],"names":[],"mappings":"AAKA,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAC9D,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5C,UAAU,MAAM;IACd,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,WAAW,GAAG,YAAY,CAkCvH;AAYD,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,oBAAoB,2CA6CtB"}
1
+ {"version":3,"file":"StatusIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/editor/StatusIndicator.tsx"],"names":[],"mappings":"AAKA,KAAK,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;AAC9D,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAE5C,UAAU,MAAM;IACd,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,WAAW,GAAG,YAAY,CAkCvH;AAYD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAA4B,EAAE,EAAE,oBAAoB,2CA2BhH;AAED,UAAU,oBAAoB;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE,oBAAoB,2CAsBtB"}
@@ -11,20 +11,20 @@ import {
11
11
  buildBlockDropData,
12
12
  canDropBlock,
13
13
  isBlockDragData
14
- } from "../../chunk-XDG2K6UT.js";
14
+ } from "../../chunk-SIYQ37QY.js";
15
15
  import "../../chunk-5THS4K5D.js";
16
16
  import "../../chunk-ZSPCE6MZ.js";
17
17
  import {
18
18
  AddIcon,
19
19
  IconButton
20
- } from "../../chunk-EO7K45GV.js";
21
- import "../../chunk-DRCPDOW3.js";
20
+ } from "../../chunk-NV4R6VHN.js";
21
+ import "../../chunk-CZ3YXGK5.js";
22
22
  import "../../chunk-677NTHAZ.js";
23
23
  import {
24
24
  cn
25
25
  } from "../../chunk-7EOSDFS3.js";
26
26
  import "../../chunk-YBVK254P.js";
27
- import "../../chunk-XPUBUR64.js";
27
+ import "../../chunk-KMQZYORS.js";
28
28
  import "../../chunk-FM4M4Q2W.js";
29
29
  import "../../chunk-JSBRDJBE.js";
30
30
 
@@ -203,6 +203,33 @@ var dotColorClasses = {
203
203
  modified: "bg-orange-400"
204
204
  };
205
205
  var STATUSES = ["draft", "live", "archived"];
206
+ function StatusRadioList({ status, onChange, onClose, ariaLabel = "Section status" }) {
207
+ return /* @__PURE__ */ jsx3("ul", { role: "radiogroup", "aria-label": ariaLabel, className: "w-full overflow-hidden py-1", children: STATUSES.map((s) => {
208
+ const checked = s === status;
209
+ return /* @__PURE__ */ jsx3("li", { children: /* @__PURE__ */ jsxs3(
210
+ PopoverItem,
211
+ {
212
+ role: "radio",
213
+ "aria-checked": checked,
214
+ onClick: () => {
215
+ if (s !== status) onChange(s);
216
+ onClose?.();
217
+ },
218
+ children: [
219
+ /* @__PURE__ */ jsx3(
220
+ "span",
221
+ {
222
+ "aria-hidden": "true",
223
+ className: cn("h-3 w-3 shrink-0 rounded-full border border-base-200", dotColorClasses[s])
224
+ }
225
+ ),
226
+ /* @__PURE__ */ jsx3("span", { className: "flex-1 font-medium capitalize text-base-contrast", children: s }),
227
+ checked && /* @__PURE__ */ jsx3(Check, { size: 14, strokeWidth: 3, className: "text-primary" })
228
+ ]
229
+ }
230
+ ) }, s);
231
+ }) });
232
+ }
206
233
  function StatusIndicator({
207
234
  mainStatus,
208
235
  savedStatus,
@@ -227,31 +254,7 @@ function StatusIndicator({
227
254
  ariaLabel: display.description,
228
255
  buttonClassName: "text-base-contrast-light",
229
256
  disabled,
230
- clickContent: (onClose) => /* @__PURE__ */ jsx3("ul", { role: "radiogroup", "aria-label": "Section status", className: "w-full overflow-hidden py-1", children: STATUSES.map((s) => {
231
- const checked = s === status;
232
- return /* @__PURE__ */ jsx3("li", { children: /* @__PURE__ */ jsxs3(
233
- PopoverItem,
234
- {
235
- role: "radio",
236
- "aria-checked": checked,
237
- onClick: () => {
238
- if (s !== status) onChange(s);
239
- onClose();
240
- },
241
- children: [
242
- /* @__PURE__ */ jsx3(
243
- "span",
244
- {
245
- "aria-hidden": "true",
246
- className: cn("h-3 w-3 shrink-0 rounded-full border border-base-200", dotColorClasses[s])
247
- }
248
- ),
249
- /* @__PURE__ */ jsx3("span", { className: "flex-1 font-medium capitalize text-base-contrast", children: s }),
250
- checked && /* @__PURE__ */ jsx3(Check, { size: 14, strokeWidth: 3, className: "text-primary" })
251
- ]
252
- }
253
- ) }, s);
254
- }) })
257
+ clickContent: (onClose) => /* @__PURE__ */ jsx3(StatusRadioList, { status, onChange, onClose })
255
258
  }
256
259
  );
257
260
  }
@@ -259,6 +262,43 @@ function StatusIndicator({
259
262
  // src/components/editor/AudienceIndicator.tsx
260
263
  import { Check as Check2 } from "lucide-react";
261
264
  import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
265
+ function AudienceChecklist({ access, audiences, onToggle }) {
266
+ if (audiences.length === 0) {
267
+ return /* @__PURE__ */ jsx4("div", { className: "px-3 py-2 text-xs text-base-contrast-light whitespace-nowrap", children: "No audiences configured. Add audiences in Site Settings \u2192 Viewer Access." });
268
+ }
269
+ return /* @__PURE__ */ jsx4("ul", { role: "list", className: "w-full overflow-hidden py-1", children: audiences.map((a) => {
270
+ const checked = access.includes(a.name);
271
+ return /* @__PURE__ */ jsx4("li", { children: /* @__PURE__ */ jsxs4(
272
+ PopoverItem,
273
+ {
274
+ role: "checkbox",
275
+ "aria-checked": checked,
276
+ onClick: () => onToggle(a.name),
277
+ children: [
278
+ /* @__PURE__ */ jsx4(
279
+ "span",
280
+ {
281
+ "aria-hidden": "true",
282
+ className: cn(
283
+ "flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors",
284
+ checked ? "border-primary bg-primary text-primary-contrast" : "border-base-300 bg-base"
285
+ ),
286
+ children: checked && /* @__PURE__ */ jsx4(Check2, { size: 14, strokeWidth: 3 })
287
+ }
288
+ ),
289
+ /* @__PURE__ */ jsx4(
290
+ "span",
291
+ {
292
+ className: "h-3 w-3 shrink-0 rounded-full border border-base-200",
293
+ style: { backgroundColor: a.color ?? "#9ca3af" }
294
+ }
295
+ ),
296
+ /* @__PURE__ */ jsx4("span", { className: "font-medium text-base-contrast whitespace-nowrap", children: a.displayName })
297
+ ]
298
+ }
299
+ ) }, a.name);
300
+ }) });
301
+ }
262
302
  function AudienceIndicator({ access, audiences, onChange, disabled }) {
263
303
  const selected = audiences.filter((a) => access.includes(a.name));
264
304
  const visibleDots = selected.slice(0, 3);
@@ -280,38 +320,7 @@ function AudienceIndicator({ access, audiences, onChange, disabled }) {
280
320
  label: labelText,
281
321
  buttonClassName: selected.length === 0 ? "text-base-contrast-light" : void 0,
282
322
  disabled,
283
- clickContent: audiences.length === 0 ? /* @__PURE__ */ jsx4("div", { className: "px-3 py-2 text-xs text-base-contrast-light whitespace-nowrap", children: "No audiences configured. Add audiences in Site Settings \u2192 Viewer Access." }) : /* @__PURE__ */ jsx4("ul", { role: "list", className: "w-full overflow-hidden py-1", children: audiences.map((a) => {
284
- const checked = access.includes(a.name);
285
- return /* @__PURE__ */ jsx4("li", { children: /* @__PURE__ */ jsxs4(
286
- PopoverItem,
287
- {
288
- role: "checkbox",
289
- "aria-checked": checked,
290
- onClick: () => toggle(a.name),
291
- children: [
292
- /* @__PURE__ */ jsx4(
293
- "span",
294
- {
295
- "aria-hidden": "true",
296
- className: cn(
297
- "flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors",
298
- checked ? "border-primary bg-primary text-primary-contrast" : "border-base-300 bg-base"
299
- ),
300
- children: checked && /* @__PURE__ */ jsx4(Check2, { size: 14, strokeWidth: 3 })
301
- }
302
- ),
303
- /* @__PURE__ */ jsx4(
304
- "span",
305
- {
306
- className: "h-3 w-3 shrink-0 rounded-full border border-base-200",
307
- style: { backgroundColor: a.color ?? "#9ca3af" }
308
- }
309
- ),
310
- /* @__PURE__ */ jsx4("span", { className: "font-medium text-base-contrast", children: a.displayName })
311
- ]
312
- }
313
- ) }, a.name);
314
- }) })
323
+ clickContent: /* @__PURE__ */ jsx4(AudienceChecklist, { access, audiences, onToggle: toggle })
315
324
  }
316
325
  );
317
326
  }
@@ -609,7 +618,10 @@ function SectionWrapper({
609
618
  "div",
610
619
  {
611
620
  className: cn(
612
- "pointer-events-none absolute right-0 bottom-full z-30 mb-1 flex items-center gap-2 transition-opacity",
621
+ // When a selector inside this cluster is open (Popover renders role="dialog"),
622
+ // lift the whole cluster above sibling sections' chrome (z-30, hover:z-[60]) and
623
+ // the inline type picker (z-50) so the open dropdown isn't overlapped.
624
+ "pointer-events-none absolute right-0 bottom-full z-30 has-[[role=dialog]]:z-[70] mb-1 flex items-center gap-2 transition-opacity",
613
625
  // A lock is important state — keep the cluster visible without hover.
614
626
  alwaysShow || isLocked ? "opacity-100" : "opacity-0 group-hover:opacity-100"
615
627
  ),
@@ -637,28 +649,38 @@ function SectionWrapper({
637
649
  onChange: (newAccess) => onAccessChange?.(newAccess)
638
650
  }
639
651
  ) }),
640
- !isLocked && onAddChild && /* @__PURE__ */ jsx8(
641
- "button",
652
+ !isLocked && onAddChild && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: /* @__PURE__ */ jsxs6(Fragment2, { children: [
653
+ /* @__PURE__ */ jsx8(Kbd, { children: "Add" }),
654
+ " a block"
655
+ ] }), children: /* @__PURE__ */ jsx8(
656
+ IconButton,
642
657
  {
643
- type: "button",
658
+ icon: /* @__PURE__ */ jsx8(Plus, { size: 16 }),
659
+ label: "Add block",
644
660
  onClick: onAddChild,
645
- "aria-label": "Add block",
646
- className: "pointer-events-auto cursor-pointer rounded p-1 text-base-contrast-light hover:text-primary",
647
- children: /* @__PURE__ */ jsx8(Plus, { size: 16 })
661
+ className: "pointer-events-auto hover:text-primary"
648
662
  }
649
- ),
650
- !isLocked && hasSettings && /* @__PURE__ */ jsx8(SettingsButton, { onClick: handleSettingsClick }),
651
- !isLocked && onMoveSection && /* @__PURE__ */ jsx8(
652
- "button",
663
+ ) }),
664
+ !isLocked && onMoveSection && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: /* @__PURE__ */ jsxs6(Fragment2, { children: [
665
+ /* @__PURE__ */ jsx8(Kbd, { children: "Move" }),
666
+ " to page"
667
+ ] }), children: /* @__PURE__ */ jsx8(
668
+ IconButton,
653
669
  {
654
- type: "button",
670
+ icon: /* @__PURE__ */ jsx8(ArrowRightLeft, { size: 16 }),
671
+ label: "Move to page",
655
672
  onClick: onMoveSection,
656
- "aria-label": "Move to page",
657
- className: "pointer-events-auto cursor-pointer rounded p-1 text-base-contrast-light hover:text-primary",
658
- children: /* @__PURE__ */ jsx8(ArrowRightLeft, { size: 16 })
673
+ className: "pointer-events-auto hover:text-primary"
659
674
  }
660
- ),
661
- !isLocked && onDelete && /* @__PURE__ */ jsx8(DeleteButton, { onDelete })
675
+ ) }),
676
+ !isLocked && hasSettings && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: /* @__PURE__ */ jsxs6(Fragment2, { children: [
677
+ /* @__PURE__ */ jsx8(Kbd, { children: "Edit" }),
678
+ " settings"
679
+ ] }), children: /* @__PURE__ */ jsx8(SettingsButton, { onClick: handleSettingsClick }) }),
680
+ !isLocked && onDelete && /* @__PURE__ */ jsx8(Tooltip, { className: "pointer-events-auto", content: /* @__PURE__ */ jsxs6(Fragment2, { children: [
681
+ /* @__PURE__ */ jsx8(Kbd, { children: "Delete" }),
682
+ " section"
683
+ ] }), children: /* @__PURE__ */ jsx8(DeleteButton, { onDelete }) })
662
684
  ]
663
685
  }
664
686
  ),
@@ -2,7 +2,7 @@ import {
2
2
  EditableRichText,
3
3
  LinkPopover,
4
4
  defineHeadingSection
5
- } from "../../chunk-PTVY3Q7P.js";
5
+ } from "../../chunk-KBQNJZUX.js";
6
6
  import {
7
7
  EditableGrid,
8
8
  EditablePlainText,
@@ -10,20 +10,20 @@ import {
10
10
  MediaBlock,
11
11
  ResolvedMedia,
12
12
  useEditableCollection
13
- } from "../../chunk-NEDOJHHR.js";
13
+ } from "../../chunk-XKRQMTE4.js";
14
14
  import "../../chunk-ZSPCE6MZ.js";
15
15
  import {
16
16
  DeleteIcon,
17
17
  DragHandle,
18
18
  IconButton
19
- } from "../../chunk-EO7K45GV.js";
20
- import "../../chunk-DRCPDOW3.js";
19
+ } from "../../chunk-NV4R6VHN.js";
20
+ import "../../chunk-CZ3YXGK5.js";
21
21
  import "../../chunk-53DKVAB6.js";
22
22
  import {
23
23
  cn
24
24
  } from "../../chunk-7EOSDFS3.js";
25
25
  import "../../chunk-YBVK254P.js";
26
- import "../../chunk-XPUBUR64.js";
26
+ import "../../chunk-KMQZYORS.js";
27
27
  import "../../chunk-VKAGMEKE.js";
28
28
  import "../../chunk-FM4M4Q2W.js";
29
29
  import "../../chunk-JSBRDJBE.js";
@@ -1,8 +1,9 @@
1
1
  import { type ReactNode } from "react";
2
2
  import type { Section } from "../../../schemas/sections";
3
3
  interface ContainerContent {
4
+ layout: "grid" | "masonry";
4
5
  columns: number;
5
- flow: string;
6
+ equalizeRowHeight: boolean;
6
7
  childDefaults?: Record<string, unknown>;
7
8
  children: Section[];
8
9
  }
@@ -15,6 +16,6 @@ export interface ContainerProps {
15
16
  onChange?: (content: unknown) => void;
16
17
  openModal?: (title: string, content: ReactNode) => void;
17
18
  }
18
- export declare function Container({ content, isEditMode, onChange, openModal }: ContainerProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function Container({ content, isEditMode, onChange, openModal }: ContainerProps): import("react/jsx-runtime").JSX.Element | null;
19
20
  export {};
20
21
  //# sourceMappingURL=Container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Container/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgB3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAyGzD,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;CACzD;AAkDD,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,2CAyLrF"}
1
+ {"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Container/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgB3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AA4GzD,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,gBAAgB,CAAA;KAAE,CAAC;IACpD,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;CACzD;AAwFD,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,kDA6RrF"}
@@ -2,9 +2,11 @@ interface ChildLike {
2
2
  type: string;
3
3
  options?: Record<string, unknown>;
4
4
  }
5
+ type ContainerLayout = "grid" | "masonry";
5
6
  interface ContainerSettingsFormProps {
6
7
  columns?: number;
7
- flow?: string;
8
+ layout?: ContainerLayout;
9
+ equalizeRowHeight?: boolean;
8
10
  childDefaults?: Record<string, unknown>;
9
11
  children?: ChildLike[];
10
12
  onChange: (result: {
@@ -12,6 +14,6 @@ interface ContainerSettingsFormProps {
12
14
  options: Record<string, unknown>;
13
15
  }) => void;
14
16
  }
15
- export declare function ContainerSettingsForm({ columns, flow, childDefaults, children, onChange, }: ContainerSettingsFormProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function ContainerSettingsForm({ columns, layout: layoutProp, equalizeRowHeight, childDefaults, children, onChange, }: ContainerSettingsFormProps): import("react/jsx-runtime").JSX.Element;
16
18
  export {};
17
19
  //# sourceMappingURL=ContainerSettingsForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerSettingsForm.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Container/ContainerSettingsForm.tsx"],"names":[],"mappings":"AAMA,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,UAAU,0BAA0B;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CACpG;AAgBD,wBAAgB,qBAAqB,CAAC,EACpC,OAAW,EACX,IAAY,EACZ,aAAkB,EAClB,QAAa,EACb,QAAQ,GACT,EAAE,0BAA0B,2CAyE5B"}
1
+ {"version":3,"file":"ContainerSettingsForm.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Container/ContainerSettingsForm.tsx"],"names":[],"mappings":"AAMA,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,KAAK,eAAe,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,UAAU,0BAA0B;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CACpG;AAsBD,wBAAgB,qBAAqB,CAAC,EACpC,OAAW,EACX,MAAM,EAAE,UAAmB,EAC3B,iBAAyB,EACzB,aAAkB,EAClB,QAAa,EACb,QAAQ,GACT,EAAE,0BAA0B,2CAuG5B"}
@@ -1,9 +1,15 @@
1
1
  declare const _default: import("../../..").SectionDefinition<{
2
2
  type: "container";
3
3
  content: {
4
- children: import("../../..").Section<Record<string, unknown>>[];
4
+ children: {
5
+ id: string;
6
+ type: string;
7
+ content: Record<string, unknown>;
8
+ options?: Record<string, unknown>;
9
+ }[];
10
+ layout: "grid" | "masonry";
5
11
  columns: number;
6
- flow: "row" | "column";
12
+ equalizeRowHeight: boolean;
7
13
  childDefaults?: Record<string, unknown> | undefined;
8
14
  };
9
15
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Container/index.tsx"],"names":[],"mappings":";;;;;;;;;AAgDA,wBAgBG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sections/Container/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAmEA,wBAsBG"}
@@ -4,8 +4,10 @@ interface Props {
4
4
  type: string;
5
5
  status?: string;
6
6
  dimNonPublished?: boolean;
7
+ /** Unconditional dim, e.g. audience preview: the selected audience can't see this section. */
8
+ dimmed?: boolean;
7
9
  children: ReactNode;
8
10
  }
9
- export declare function SectionLayout({ type, status, dimNonPublished, children }: Props): import("react/jsx-runtime").JSX.Element;
11
+ export declare function SectionLayout({ type, status, dimNonPublished, dimmed, children }: Props): import("react/jsx-runtime").JSX.Element;
10
12
  export { getSectionCategory };
11
13
  //# sourceMappingURL=SectionLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SectionLayout.d.ts","sourceRoot":"","sources":["../../../src/components/sections/SectionLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAQ/E;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"SectionLayout.d.ts","sourceRoot":"","sources":["../../../src/components/sections/SectionLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8FAA8F;IAC9F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAgBvF;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import type { LoadedSection } from "../../lib/loader";
2
2
  interface Props {
3
3
  sections: LoadedSection[];
4
+ /** Audience-preview mode: dim sections this audience can't access. */
5
+ previewAudience?: string | null;
4
6
  }
5
- export default function ViewRenderer({ sections }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export default function ViewRenderer({ sections, previewAudience }: Props): import("react/jsx-runtime").JSX.Element;
6
8
  export {};
7
9
  //# sourceMappingURL=ViewRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/sections/ViewRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,UAAU,KAAK;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAmBvD"}
1
+ {"version":3,"file":"ViewRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/sections/ViewRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,UAAU,KAAK;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAE,eAAsB,EAAE,EAAE,KAAK,2CAyB/E"}
@@ -112,9 +112,15 @@ export declare const allSectionDefs: (import("../..").SectionDefinition<{
112
112
  }> | import("../..").SectionDefinition<{
113
113
  type: "container";
114
114
  content: {
115
- children: import("../..").Section<Record<string, unknown>>[];
115
+ children: {
116
+ id: string;
117
+ type: string;
118
+ content: Record<string, unknown>;
119
+ options?: Record<string, unknown>;
120
+ }[];
121
+ layout: "grid" | "masonry";
116
122
  columns: number;
117
- flow: "row" | "column";
123
+ equalizeRowHeight: boolean;
118
124
  childDefaults?: Record<string, unknown> | undefined;
119
125
  };
120
126
  }> | import("../..").SectionDefinition<{
@@ -1 +1 @@
1
- {"version":3,"file":"all-sections.d.ts","sourceRoot":"","sources":["../../../src/components/sections/all-sections.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAiD,CAAC"}
1
+ {"version":3,"file":"all-sections.d.ts","sourceRoot":"","sources":["../../../src/components/sections/all-sections.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAiD,CAAC"}
@@ -2,16 +2,16 @@ import {
2
2
  ColorItemSchema,
3
3
  ColorSpaceSchema,
4
4
  brandGuideSectionDefs
5
- } from "../../chunk-SK6GGTTO.js";
5
+ } from "../../chunk-XUIJHYKI.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-NEDOJHHR.js";
8
- import "../../chunk-EO7K45GV.js";
9
- import "../../chunk-DRCPDOW3.js";
7
+ import "../../chunk-XKRQMTE4.js";
8
+ import "../../chunk-NV4R6VHN.js";
9
+ import "../../chunk-CZ3YXGK5.js";
10
10
  import "../../chunk-PZJL2S3Z.js";
11
11
  import "../../chunk-WDSVHKAH.js";
12
12
  import "../../chunk-7EOSDFS3.js";
13
13
  import "../../chunk-YBVK254P.js";
14
- import "../../chunk-XPUBUR64.js";
14
+ import "../../chunk-KMQZYORS.js";
15
15
  import "../../chunk-VKAGMEKE.js";
16
16
  import "../../chunk-FM4M4Q2W.js";
17
17
  import "../../chunk-JSBRDJBE.js";
@@ -107,9 +107,15 @@ export declare const coreSectionDefs: (import("../..").SectionDefinition<{
107
107
  }> | import("../..").SectionDefinition<{
108
108
  type: "container";
109
109
  content: {
110
- children: import("../..").Section<Record<string, unknown>>[];
110
+ children: {
111
+ id: string;
112
+ type: string;
113
+ content: Record<string, unknown>;
114
+ options?: Record<string, unknown>;
115
+ }[];
116
+ layout: "grid" | "masonry";
111
117
  columns: number;
112
- flow: "row" | "column";
118
+ equalizeRowHeight: boolean;
113
119
  childDefaults?: Record<string, unknown> | undefined;
114
120
  };
115
121
  }> | import("../..").SectionDefinition<{
@@ -1 +1 @@
1
- {"version":3,"file":"core-sections.d.ts","sourceRoot":"","sources":["../../../src/components/sections/core-sections.ts"],"names":[],"mappings":"AAUA;;+BAE+B;AAK/B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAU3B,CAAC"}
1
+ {"version":3,"file":"core-sections.d.ts","sourceRoot":"","sources":["../../../src/components/sections/core-sections.ts"],"names":[],"mappings":"AAUA;;+BAE+B;AAK/B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAU3B,CAAC"}
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  allSectionDefs
3
- } from "../../chunk-H2FENAQH.js";
4
- import "../../chunk-SK6GGTTO.js";
5
- import "../../chunk-XDG2K6UT.js";
3
+ } from "../../chunk-ZLG7S54V.js";
4
+ import "../../chunk-XUIJHYKI.js";
5
+ import "../../chunk-SIYQ37QY.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-PTVY3Q7P.js";
8
- import "../../chunk-NEDOJHHR.js";
7
+ import "../../chunk-KBQNJZUX.js";
8
+ import "../../chunk-XKRQMTE4.js";
9
9
  import "../../chunk-ZSPCE6MZ.js";
10
- import "../../chunk-EO7K45GV.js";
10
+ import "../../chunk-NV4R6VHN.js";
11
11
  import "../../chunk-Y4JQGO6G.js";
12
- import "../../chunk-DRCPDOW3.js";
12
+ import "../../chunk-CZ3YXGK5.js";
13
13
  import "../../chunk-PZJL2S3Z.js";
14
14
  import "../../chunk-WDSVHKAH.js";
15
15
  import "../../chunk-53DKVAB6.js";
16
16
  import "../../chunk-7EOSDFS3.js";
17
17
  import "../../chunk-YBVK254P.js";
18
18
  import "../../chunk-TZQPOR5A.js";
19
- import "../../chunk-XPUBUR64.js";
19
+ import "../../chunk-KMQZYORS.js";
20
20
  import {
21
21
  registerRichText,
22
22
  registerSchema
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  allSectionDefs
3
- } from "../../chunk-H2FENAQH.js";
4
- import "../../chunk-SK6GGTTO.js";
5
- import "../../chunk-XDG2K6UT.js";
3
+ } from "../../chunk-ZLG7S54V.js";
4
+ import "../../chunk-XUIJHYKI.js";
5
+ import "../../chunk-SIYQ37QY.js";
6
6
  import "../../chunk-5THS4K5D.js";
7
- import "../../chunk-PTVY3Q7P.js";
8
- import "../../chunk-NEDOJHHR.js";
7
+ import "../../chunk-KBQNJZUX.js";
8
+ import "../../chunk-XKRQMTE4.js";
9
9
  import "../../chunk-ZSPCE6MZ.js";
10
- import "../../chunk-EO7K45GV.js";
10
+ import "../../chunk-NV4R6VHN.js";
11
11
  import "../../chunk-Y4JQGO6G.js";
12
- import "../../chunk-DRCPDOW3.js";
12
+ import "../../chunk-CZ3YXGK5.js";
13
13
  import "../../chunk-PZJL2S3Z.js";
14
14
  import "../../chunk-WDSVHKAH.js";
15
15
  import "../../chunk-53DKVAB6.js";
16
16
  import "../../chunk-7EOSDFS3.js";
17
17
  import "../../chunk-YBVK254P.js";
18
18
  import "../../chunk-TZQPOR5A.js";
19
- import "../../chunk-XPUBUR64.js";
19
+ import "../../chunk-KMQZYORS.js";
20
20
  import {
21
21
  registerSection
22
22
  } from "../../chunk-VKAGMEKE.js";
@@ -10,7 +10,12 @@ interface Props {
10
10
  invertInDark: boolean;
11
11
  } | null;
12
12
  onPageSelect?: (pageId: string) => void;
13
+ /** Viewport width where the drawer becomes a fixed sidebar. Pages that dock
14
+ * the chat sidebar pass "xl" so tablet widths keep the hamburger and give
15
+ * the freed column to chat. Static per page render — deliberately keyed to
16
+ * chat being ENABLED, not open, so the nav never flaps when chat toggles. */
17
+ desktopBreakpoint?: "lg" | "xl";
13
18
  }
14
- export default function Navigation({ siteNav: initialNav, siteName, darkMode, lastUpdated, logo, onPageSelect }: Props): import("react/jsx-runtime").JSX.Element;
19
+ export default function Navigation({ siteNav: initialNav, siteName, darkMode, lastUpdated, logo, onPageSelect, desktopBreakpoint }: Props): import("react/jsx-runtime").JSX.Element;
15
20
  export {};
16
21
  //# sourceMappingURL=Navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../src/components/shared/Navigation.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AAOtD,UAAU,KAAK;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAGlF,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,2CAyPrH"}
1
+ {"version":3,"file":"Navigation.d.ts","sourceRoot":"","sources":["../../../src/components/shared/Navigation.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,eAAe,CAAC;AAOtD,UAAU,KAAK;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAGlF,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC;;;kFAG8E;IAC9E,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACjC;AAQD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAwB,EAAE,EAAE,KAAK,2CA2P/I"}
@@ -3,8 +3,15 @@ interface TooltipProps {
3
3
  content: ReactNode;
4
4
  children: ReactNode;
5
5
  className?: string;
6
+ /** Where the bubble sits relative to the trigger:
7
+ * - "bottom" (default): below, centered.
8
+ * - "right": to the right (used by the container child rail, a narrow left gutter).
9
+ * - "bottom-clamp": below, centered on wide viewports but right-aligned under `xl`
10
+ * (where the top toolbar hits the viewport width) so a far-right button's bubble
11
+ * can't overflow off the right edge of the screen. */
12
+ side?: "bottom" | "right" | "bottom-clamp";
6
13
  }
7
- export declare function Tooltip({ content, children, className }: TooltipProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Tooltip({ content, children, className, side }: TooltipProps): import("react/jsx-runtime").JSX.Element;
8
15
  export declare function Kbd({ children }: {
9
16
  children: ReactNode;
10
17
  }): import("react/jsx-runtime").JSX.Element;