@drawnagency/primitives 0.1.118 → 0.1.120

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 (279) hide show
  1. package/dist/{chunk-O37AV27P.js → chunk-5JYHTHVR.js} +28 -0
  2. package/dist/{chunk-W72BPGR3.js → chunk-BZKHHUIN.js} +44 -8
  3. package/dist/{chunk-4NSOKEA7.js → chunk-HFHM4MNK.js} +12 -7
  4. package/dist/{chunk-CEFFP3CH.js → chunk-HZTPF6OK.js} +304 -83
  5. package/dist/{chunk-RIITGTV3.js → chunk-LQHBC7C6.js} +37 -2
  6. package/dist/{chunk-VY3IFGE3.js → chunk-QAMAIDXZ.js} +1 -1
  7. package/dist/{chunk-HRX3XJBU.js → chunk-RIN2QCYJ.js} +9 -11
  8. package/dist/{chunk-ZOTRHHUB.js → chunk-UNFPATDE.js} +8 -10
  9. package/dist/{chunk-ERLIL4RU.js → chunk-UZBFVVTC.js} +35 -37
  10. package/dist/{chunk-67P34WNW.js → chunk-ZKVQMIMJ.js} +3 -20
  11. package/dist/collab/rebase.js +4 -5
  12. package/dist/components/chat/ChatComposer.d.ts +0 -4
  13. package/dist/components/chat/ChatComposer.d.ts.map +1 -1
  14. package/dist/components/chat/ChatPanel.d.ts +2 -3
  15. package/dist/components/chat/ChatPanel.d.ts.map +1 -1
  16. package/dist/components/chat/markdown.d.ts +2 -3
  17. package/dist/components/chat/markdown.d.ts.map +1 -1
  18. package/dist/components/editor/AudienceIndicator.d.ts +3 -1
  19. package/dist/components/editor/AudienceIndicator.d.ts.map +1 -1
  20. package/dist/components/editor/IndicatorPill.d.ts +3 -1
  21. package/dist/components/editor/IndicatorPill.d.ts.map +1 -1
  22. package/dist/components/editor/PagesModal.d.ts +0 -2
  23. package/dist/components/editor/PagesModal.d.ts.map +1 -1
  24. package/dist/components/editor/SectionBulkEditModal.d.ts +25 -0
  25. package/dist/components/editor/SectionBulkEditModal.d.ts.map +1 -0
  26. package/dist/components/editor/StatusIndicator.d.ts +3 -1
  27. package/dist/components/editor/StatusIndicator.d.ts.map +1 -1
  28. package/dist/components/editor/index.js +28 -26
  29. package/dist/components/primitives/index.js +11 -15
  30. package/dist/components/sections/brand-guide.js +10 -13
  31. package/dist/components/sections/register-schemas.js +16 -21
  32. package/dist/components/sections/register.js +16 -21
  33. package/dist/components/shared/Popover.d.ts +1 -1
  34. package/dist/components/shared/Popover.d.ts.map +1 -1
  35. package/dist/components/shared/SectionSummaryRow.d.ts +1 -1
  36. package/dist/components/shell/AudienceChips.d.ts +1 -3
  37. package/dist/components/shell/AudienceChips.d.ts.map +1 -1
  38. package/dist/components/shell/EditorModal.d.ts.map +1 -1
  39. package/dist/components/shell/EditorShell.d.ts +0 -34
  40. package/dist/components/shell/EditorShell.d.ts.map +1 -1
  41. package/dist/components/shell/SiteSettingsModal.d.ts.map +1 -1
  42. package/dist/hooks/useSortableNavRow.d.ts +1 -1
  43. package/dist/hooks/useSortableRow.d.ts +1 -1
  44. package/dist/index.js +83 -90
  45. package/dist/lib/index-ops.js +5 -6
  46. package/dist/lib/index.js +27 -32
  47. package/dist/lib/pages.d.ts +0 -2
  48. package/dist/lib/pages.d.ts.map +1 -1
  49. package/dist/lib/sidecars.js +2 -2
  50. package/dist/lib/site-validation.js +13 -14
  51. package/dist/lib/storage-tier.js +4 -4
  52. package/dist/schemas/index.js +42 -45
  53. package/dist/schemas/site-config.d.ts +1 -277
  54. package/dist/schemas/site-config.d.ts.map +1 -1
  55. package/package.json +2 -42
  56. package/src/components/chat/ChatComposer.tsx +0 -4
  57. package/src/components/chat/ChatPanel.tsx +2 -3
  58. package/src/components/chat/markdown.ts +2 -3
  59. package/src/components/editor/AudienceIndicator.tsx +8 -4
  60. package/src/components/editor/IndicatorPill.tsx +4 -0
  61. package/src/components/editor/PagesModal.tsx +1 -15
  62. package/src/components/editor/SectionBulkEditModal.tsx +328 -0
  63. package/src/components/editor/StatusIndicator.tsx +7 -6
  64. package/src/components/shared/Popover.tsx +17 -4
  65. package/src/components/shared/SectionSummaryRow.tsx +1 -1
  66. package/src/components/shell/AudienceChips.tsx +1 -3
  67. package/src/components/shell/EditorModal.tsx +5 -2
  68. package/src/components/shell/EditorShell.tsx +15 -119
  69. package/src/components/shell/SiteSettingsModal.tsx +0 -11
  70. package/src/lib/pages.ts +0 -22
  71. package/src/schemas/index.ts +0 -4
  72. package/src/schemas/site-config.ts +4 -32
  73. package/dist/chunk-4TZJZU2T.js +0 -92
  74. package/dist/chunk-DIMDRBFK.js +0 -11
  75. package/dist/chunk-FV7JQRCN.js +0 -94
  76. package/dist/chunk-IIDKW7AV.js +0 -41
  77. package/dist/chunk-JCDZAFX2.js +0 -224
  78. package/dist/chunk-MM7KZS5C.js +0 -30
  79. package/dist/chunk-QQ3S3P5P.js +0 -38
  80. package/dist/chunk-TEOAKGZA.js +0 -784
  81. package/dist/chunk-VAYZJKVR.js +0 -209
  82. package/dist/components/editor/SectionOrderingModal.d.ts +0 -10
  83. package/dist/components/editor/SectionOrderingModal.d.ts.map +0 -1
  84. package/dist/components/shell/DocInspector.d.ts +0 -18
  85. package/dist/components/shell/DocInspector.d.ts.map +0 -1
  86. package/dist/components/shell/DocumentEditorOverlay.d.ts +0 -29
  87. package/dist/components/shell/DocumentEditorOverlay.d.ts.map +0 -1
  88. package/dist/components/shell/DocumentPresentOverlay.d.ts +0 -30
  89. package/dist/components/shell/DocumentPresentOverlay.d.ts.map +0 -1
  90. package/dist/components/shell/SiteSettingsDecks.d.ts +0 -13
  91. package/dist/components/shell/SiteSettingsDecks.d.ts.map +0 -1
  92. package/dist/deck/DeckComponentView.d.ts +0 -13
  93. package/dist/deck/DeckComponentView.d.ts.map +0 -1
  94. package/dist/deck/DeckPlayer.d.ts +0 -26
  95. package/dist/deck/DeckPlayer.d.ts.map +0 -1
  96. package/dist/deck/DeckSlideView.d.ts +0 -17
  97. package/dist/deck/DeckSlideView.d.ts.map +0 -1
  98. package/dist/deck/DeckStage.d.ts +0 -16
  99. package/dist/deck/DeckStage.d.ts.map +0 -1
  100. package/dist/deck/components/DeckImage.d.ts +0 -14
  101. package/dist/deck/components/DeckImage.d.ts.map +0 -1
  102. package/dist/deck/components/DeckImageGrid.d.ts +0 -27
  103. package/dist/deck/components/DeckImageGrid.d.ts.map +0 -1
  104. package/dist/deck/components/DeckRichText.d.ts +0 -22
  105. package/dist/deck/components/DeckRichText.d.ts.map +0 -1
  106. package/dist/deck/components/DeckVideo.d.ts +0 -15
  107. package/dist/deck/components/DeckVideo.d.ts.map +0 -1
  108. package/dist/deck/editing.d.ts +0 -50
  109. package/dist/deck/editing.d.ts.map +0 -1
  110. package/dist/deck/flip.d.ts +0 -11
  111. package/dist/deck/flip.d.ts.map +0 -1
  112. package/dist/deck/index.d.ts +0 -24
  113. package/dist/deck/index.d.ts.map +0 -1
  114. package/dist/deck/index.js +0 -51
  115. package/dist/deck/layouts/CenteredTextLayout.d.ts +0 -12
  116. package/dist/deck/layouts/CenteredTextLayout.d.ts.map +0 -1
  117. package/dist/deck/layouts/ColumnSplitLayout.d.ts +0 -14
  118. package/dist/deck/layouts/ColumnSplitLayout.d.ts.map +0 -1
  119. package/dist/deck/layouts/FullBleedImageLayout.d.ts +0 -14
  120. package/dist/deck/layouts/FullBleedImageLayout.d.ts.map +0 -1
  121. package/dist/deck/media.d.ts +0 -33
  122. package/dist/deck/media.d.ts.map +0 -1
  123. package/dist/deck/tokens.d.ts +0 -22
  124. package/dist/deck/tokens.d.ts.map +0 -1
  125. package/dist/deck/useStageScale.d.ts +0 -10
  126. package/dist/deck/useStageScale.d.ts.map +0 -1
  127. package/dist/deck-builder/DeckBuilderApp.d.ts +0 -30
  128. package/dist/deck-builder/DeckBuilderApp.d.ts.map +0 -1
  129. package/dist/deck-builder/DeckBuilderTopBar.d.ts +0 -24
  130. package/dist/deck-builder/DeckBuilderTopBar.d.ts.map +0 -1
  131. package/dist/deck-builder/DeckChatPanel.d.ts +0 -45
  132. package/dist/deck-builder/DeckChatPanel.d.ts.map +0 -1
  133. package/dist/deck-builder/DeckEditor.d.ts +0 -37
  134. package/dist/deck-builder/DeckEditor.d.ts.map +0 -1
  135. package/dist/deck-builder/DeckLibrary.d.ts +0 -22
  136. package/dist/deck-builder/DeckLibrary.d.ts.map +0 -1
  137. package/dist/deck-builder/DeckSlideSurface.d.ts +0 -31
  138. package/dist/deck-builder/DeckSlideSurface.d.ts.map +0 -1
  139. package/dist/deck-builder/deck-api.d.ts +0 -76
  140. package/dist/deck-builder/deck-api.d.ts.map +0 -1
  141. package/dist/deck-builder/deck-chat-client.d.ts +0 -44
  142. package/dist/deck-builder/deck-chat-client.d.ts.map +0 -1
  143. package/dist/deck-builder/deck-chat-history.d.ts +0 -10
  144. package/dist/deck-builder/deck-chat-history.d.ts.map +0 -1
  145. package/dist/deck-builder/index.d.ts +0 -13
  146. package/dist/deck-builder/index.d.ts.map +0 -1
  147. package/dist/deck-builder/index.js +0 -1498
  148. package/dist/deck-builder/starter-deck.d.ts +0 -23
  149. package/dist/deck-builder/starter-deck.d.ts.map +0 -1
  150. package/dist/deck-builder/types.d.ts +0 -29
  151. package/dist/deck-builder/types.d.ts.map +0 -1
  152. package/dist/deck-builder/useSortableSlide.d.ts +0 -29
  153. package/dist/deck-builder/useSortableSlide.d.ts.map +0 -1
  154. package/dist/document/assets/fonts/albra-grotesk-bold.woff +0 -0
  155. package/dist/document/assets/fonts/albra-grotesk-regular.woff +0 -0
  156. package/dist/document/assets/fonts/kapra-neue-expanded-medium.woff +0 -0
  157. package/dist/document/assets/fonts/kapra-neue-expanded-regular.woff +0 -0
  158. package/dist/document/components/DocCoverPage.d.ts +0 -11
  159. package/dist/document/components/DocCoverPage.d.ts.map +0 -1
  160. package/dist/document/components/DocPage.d.ts +0 -10
  161. package/dist/document/components/DocPage.d.ts.map +0 -1
  162. package/dist/document/components/DocRail.d.ts +0 -28
  163. package/dist/document/components/DocRail.d.ts.map +0 -1
  164. package/dist/document/components/DocSectionPage.d.ts +0 -12
  165. package/dist/document/components/DocSectionPage.d.ts.map +0 -1
  166. package/dist/document/components/DocViewer.d.ts +0 -21
  167. package/dist/document/components/DocViewer.d.ts.map +0 -1
  168. package/dist/document/components/Wordmark.d.ts +0 -4
  169. package/dist/document/components/Wordmark.d.ts.map +0 -1
  170. package/dist/document/components/measure.d.ts +0 -7
  171. package/dist/document/components/measure.d.ts.map +0 -1
  172. package/dist/document/components/useDocPages.d.ts +0 -12
  173. package/dist/document/components/useDocPages.d.ts.map +0 -1
  174. package/dist/document/engine/blocks.d.ts +0 -2
  175. package/dist/document/engine/blocks.d.ts.map +0 -1
  176. package/dist/document/engine/harvest.d.ts +0 -3
  177. package/dist/document/engine/harvest.d.ts.map +0 -1
  178. package/dist/document/engine/masonry.d.ts +0 -26
  179. package/dist/document/engine/masonry.d.ts.map +0 -1
  180. package/dist/document/engine/paginate.d.ts +0 -43
  181. package/dist/document/engine/paginate.d.ts.map +0 -1
  182. package/dist/document/engine/settings.d.ts +0 -91
  183. package/dist/document/engine/settings.d.ts.map +0 -1
  184. package/dist/document/engine/types.d.ts +0 -44
  185. package/dist/document/engine/types.d.ts.map +0 -1
  186. package/dist/document/index.d.ts +0 -13
  187. package/dist/document/index.d.ts.map +0 -1
  188. package/dist/document/index.js +0 -1030
  189. package/dist/document/styles/document.css +0 -217
  190. package/dist/lib/deck-access.d.ts +0 -86
  191. package/dist/lib/deck-access.d.ts.map +0 -1
  192. package/dist/lib/deck-access.js +0 -58
  193. package/dist/lib/deck-dexie.d.ts +0 -88
  194. package/dist/lib/deck-dexie.d.ts.map +0 -1
  195. package/dist/lib/deck-dexie.js +0 -22
  196. package/dist/lib/deck-edit.d.ts +0 -67
  197. package/dist/lib/deck-edit.d.ts.map +0 -1
  198. package/dist/lib/deck-media-assets.d.ts +0 -27
  199. package/dist/lib/deck-media-assets.d.ts.map +0 -1
  200. package/dist/lib/deck-media-assets.js +0 -25
  201. package/dist/lib/deck-media-refs.d.ts +0 -35
  202. package/dist/lib/deck-media-refs.d.ts.map +0 -1
  203. package/dist/lib/deck-media-refs.js +0 -36
  204. package/dist/lib/deck-tool.d.ts +0 -25
  205. package/dist/lib/deck-tool.d.ts.map +0 -1
  206. package/dist/lib/deck-tool.js +0 -58
  207. package/dist/lib/document-input.d.ts +0 -25
  208. package/dist/lib/document-input.d.ts.map +0 -1
  209. package/dist/schemas/deck-meta.d.ts +0 -85
  210. package/dist/schemas/deck-meta.d.ts.map +0 -1
  211. package/dist/schemas/deck-meta.js +0 -64
  212. package/dist/schemas/deck.d.ts +0 -954
  213. package/dist/schemas/deck.d.ts.map +0 -1
  214. package/dist/schemas/deck.js +0 -65
  215. package/src/components/editor/SectionOrderingModal.tsx +0 -80
  216. package/src/components/shell/DocInspector.tsx +0 -314
  217. package/src/components/shell/DocumentEditorOverlay.tsx +0 -179
  218. package/src/components/shell/DocumentPresentOverlay.tsx +0 -87
  219. package/src/components/shell/SiteSettingsDecks.tsx +0 -41
  220. package/src/deck/DeckComponentView.tsx +0 -28
  221. package/src/deck/DeckPlayer.tsx +0 -166
  222. package/src/deck/DeckSlideView.tsx +0 -38
  223. package/src/deck/DeckStage.tsx +0 -39
  224. package/src/deck/components/DeckImage.tsx +0 -38
  225. package/src/deck/components/DeckImageGrid.tsx +0 -254
  226. package/src/deck/components/DeckRichText.tsx +0 -111
  227. package/src/deck/components/DeckVideo.tsx +0 -81
  228. package/src/deck/editing.tsx +0 -201
  229. package/src/deck/flip.ts +0 -70
  230. package/src/deck/index.ts +0 -30
  231. package/src/deck/layouts/CenteredTextLayout.tsx +0 -29
  232. package/src/deck/layouts/ColumnSplitLayout.tsx +0 -69
  233. package/src/deck/layouts/FullBleedImageLayout.tsx +0 -58
  234. package/src/deck/media.tsx +0 -46
  235. package/src/deck/tokens.ts +0 -57
  236. package/src/deck/useStageScale.ts +0 -44
  237. package/src/deck-builder/DeckBuilderApp.tsx +0 -572
  238. package/src/deck-builder/DeckBuilderTopBar.tsx +0 -62
  239. package/src/deck-builder/DeckChatPanel.tsx +0 -334
  240. package/src/deck-builder/DeckEditor.tsx +0 -258
  241. package/src/deck-builder/DeckLibrary.tsx +0 -195
  242. package/src/deck-builder/DeckSlideSurface.tsx +0 -55
  243. package/src/deck-builder/deck-api.ts +0 -177
  244. package/src/deck-builder/deck-chat-client.ts +0 -129
  245. package/src/deck-builder/deck-chat-history.ts +0 -62
  246. package/src/deck-builder/index.ts +0 -12
  247. package/src/deck-builder/starter-deck.ts +0 -86
  248. package/src/deck-builder/types.ts +0 -24
  249. package/src/deck-builder/useSortableSlide.ts +0 -102
  250. package/src/document/assets/fonts/albra-grotesk-bold.woff +0 -0
  251. package/src/document/assets/fonts/albra-grotesk-regular.woff +0 -0
  252. package/src/document/assets/fonts/kapra-neue-expanded-medium.woff +0 -0
  253. package/src/document/assets/fonts/kapra-neue-expanded-regular.woff +0 -0
  254. package/src/document/components/DocCoverPage.tsx +0 -45
  255. package/src/document/components/DocPage.tsx +0 -40
  256. package/src/document/components/DocRail.tsx +0 -189
  257. package/src/document/components/DocSectionPage.tsx +0 -48
  258. package/src/document/components/DocViewer.tsx +0 -313
  259. package/src/document/components/Wordmark.tsx +0 -18
  260. package/src/document/components/measure.tsx +0 -133
  261. package/src/document/components/useDocPages.ts +0 -95
  262. package/src/document/engine/blocks.ts +0 -116
  263. package/src/document/engine/harvest.ts +0 -95
  264. package/src/document/engine/masonry.ts +0 -158
  265. package/src/document/engine/paginate.ts +0 -232
  266. package/src/document/engine/settings.ts +0 -125
  267. package/src/document/engine/types.ts +0 -64
  268. package/src/document/index.ts +0 -18
  269. package/src/document/styles/document.css +0 -217
  270. package/src/lib/deck-access.ts +0 -132
  271. package/src/lib/deck-dexie.ts +0 -190
  272. package/src/lib/deck-edit.ts +0 -196
  273. package/src/lib/deck-media-assets.ts +0 -57
  274. package/src/lib/deck-media-refs.ts +0 -67
  275. package/src/lib/deck-tool.ts +0 -95
  276. package/src/lib/document-input.ts +0 -57
  277. package/src/schemas/deck-meta.ts +0 -88
  278. package/src/schemas/deck.ts +0 -478
  279. package/dist/{chunk-DJABADOO.js → chunk-AJ2QOAZI.js} +3 -3
@@ -18,7 +18,7 @@ export declare const SectionMetaSchema: z.ZodObject<{
18
18
  access: z.ZodArray<z.ZodString>;
19
19
  }, z.core.$strip>;
20
20
  export type SectionMeta = z.infer<typeof SectionMetaSchema>;
21
- export declare const RESERVED_SLUGS: readonly ["edit", "api", "login", "set-password", "404", "present", "print", "audiences", "decks"];
21
+ export declare const RESERVED_SLUGS: readonly ["edit", "api", "login", "set-password", "404", "audiences"];
22
22
  export declare const PageStatusSchema: z.ZodEnum<{
23
23
  live: "live";
24
24
  archived: "archived";
@@ -35,55 +35,6 @@ export declare const PageSchema: z.ZodObject<{
35
35
  }>;
36
36
  access: z.ZodArray<z.ZodString>;
37
37
  order: z.ZodArray<z.ZodString>;
38
- document: z.ZodOptional<z.ZodObject<{
39
- enabled: z.ZodDefault<z.ZodBoolean>;
40
- meta: z.ZodDefault<z.ZodObject<{
41
- client: z.ZodDefault<z.ZodString>;
42
- project: z.ZodDefault<z.ZodString>;
43
- dateLabel: z.ZodDefault<z.ZodString>;
44
- }, z.core.$strip>>;
45
- cover: z.ZodDefault<z.ZodObject<{
46
- bgColor: z.ZodDefault<z.ZodString>;
47
- accentColor: z.ZodDefault<z.ZodString>;
48
- title: z.ZodDefault<z.ZodString>;
49
- label: z.ZodDefault<z.ZodString>;
50
- date: z.ZodDefault<z.ZodString>;
51
- imageId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
52
- }, z.core.$strip>>;
53
- sections: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
54
- excluded: z.ZodDefault<z.ZodBoolean>;
55
- textPlacement: z.ZodDefault<z.ZodEnum<{
56
- top: "top";
57
- leftColumn: "leftColumn";
58
- }>>;
59
- imagePlacement: z.ZodDefault<z.ZodEnum<{
60
- fullWidth: "fullWidth";
61
- right: "right";
62
- }>>;
63
- dropTextOverflow: z.ZodDefault<z.ZodBoolean>;
64
- splitAt: z.ZodDefault<z.ZodEnum<{
65
- none: "none";
66
- sub_heading: "sub_heading";
67
- }>>;
68
- imageLayout: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
69
- mode: z.ZodLiteral<"grid">;
70
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
71
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
72
- fit: z.ZodDefault<z.ZodEnum<{
73
- cover: "cover";
74
- contain: "contain";
75
- }>>;
76
- }, z.core.$strip>, z.ZodObject<{
77
- mode: z.ZodLiteral<"masonry">;
78
- flow: z.ZodDefault<z.ZodEnum<{
79
- rows: "rows";
80
- columns: "columns";
81
- }>>;
82
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>]>>;
83
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
84
- }, z.core.$strip>], "mode">>;
85
- }, z.core.$strip>>>;
86
- }, z.core.$strip>>;
87
38
  }, z.core.$strip>;
88
39
  export type Page = z.infer<typeof PageSchema>;
89
40
  export declare const SLUG_RE: RegExp;
@@ -101,55 +52,6 @@ declare const CanonicalIndexSchema: z.ZodObject<{
101
52
  }>;
102
53
  access: z.ZodArray<z.ZodString>;
103
54
  order: z.ZodArray<z.ZodString>;
104
- document: z.ZodOptional<z.ZodObject<{
105
- enabled: z.ZodDefault<z.ZodBoolean>;
106
- meta: z.ZodDefault<z.ZodObject<{
107
- client: z.ZodDefault<z.ZodString>;
108
- project: z.ZodDefault<z.ZodString>;
109
- dateLabel: z.ZodDefault<z.ZodString>;
110
- }, z.core.$strip>>;
111
- cover: z.ZodDefault<z.ZodObject<{
112
- bgColor: z.ZodDefault<z.ZodString>;
113
- accentColor: z.ZodDefault<z.ZodString>;
114
- title: z.ZodDefault<z.ZodString>;
115
- label: z.ZodDefault<z.ZodString>;
116
- date: z.ZodDefault<z.ZodString>;
117
- imageId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
118
- }, z.core.$strip>>;
119
- sections: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
120
- excluded: z.ZodDefault<z.ZodBoolean>;
121
- textPlacement: z.ZodDefault<z.ZodEnum<{
122
- top: "top";
123
- leftColumn: "leftColumn";
124
- }>>;
125
- imagePlacement: z.ZodDefault<z.ZodEnum<{
126
- fullWidth: "fullWidth";
127
- right: "right";
128
- }>>;
129
- dropTextOverflow: z.ZodDefault<z.ZodBoolean>;
130
- splitAt: z.ZodDefault<z.ZodEnum<{
131
- none: "none";
132
- sub_heading: "sub_heading";
133
- }>>;
134
- imageLayout: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
135
- mode: z.ZodLiteral<"grid">;
136
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
137
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
138
- fit: z.ZodDefault<z.ZodEnum<{
139
- cover: "cover";
140
- contain: "contain";
141
- }>>;
142
- }, z.core.$strip>, z.ZodObject<{
143
- mode: z.ZodLiteral<"masonry">;
144
- flow: z.ZodDefault<z.ZodEnum<{
145
- rows: "rows";
146
- columns: "columns";
147
- }>>;
148
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>]>>;
149
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
150
- }, z.core.$strip>], "mode">>;
151
- }, z.core.$strip>>>;
152
- }, z.core.$strip>>;
153
55
  }, z.core.$strip>>;
154
56
  sections: z.ZodRecord<z.ZodString, z.ZodObject<{
155
57
  type: z.ZodString;
@@ -178,55 +80,6 @@ export declare const IndexSchema: z.ZodPipe<z.ZodPipe<z.ZodObject<{
178
80
  }>;
179
81
  access: z.ZodArray<z.ZodString>;
180
82
  order: z.ZodArray<z.ZodString>;
181
- document: z.ZodOptional<z.ZodObject<{
182
- enabled: z.ZodDefault<z.ZodBoolean>;
183
- meta: z.ZodDefault<z.ZodObject<{
184
- client: z.ZodDefault<z.ZodString>;
185
- project: z.ZodDefault<z.ZodString>;
186
- dateLabel: z.ZodDefault<z.ZodString>;
187
- }, z.core.$strip>>;
188
- cover: z.ZodDefault<z.ZodObject<{
189
- bgColor: z.ZodDefault<z.ZodString>;
190
- accentColor: z.ZodDefault<z.ZodString>;
191
- title: z.ZodDefault<z.ZodString>;
192
- label: z.ZodDefault<z.ZodString>;
193
- date: z.ZodDefault<z.ZodString>;
194
- imageId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
195
- }, z.core.$strip>>;
196
- sections: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
197
- excluded: z.ZodDefault<z.ZodBoolean>;
198
- textPlacement: z.ZodDefault<z.ZodEnum<{
199
- top: "top";
200
- leftColumn: "leftColumn";
201
- }>>;
202
- imagePlacement: z.ZodDefault<z.ZodEnum<{
203
- fullWidth: "fullWidth";
204
- right: "right";
205
- }>>;
206
- dropTextOverflow: z.ZodDefault<z.ZodBoolean>;
207
- splitAt: z.ZodDefault<z.ZodEnum<{
208
- none: "none";
209
- sub_heading: "sub_heading";
210
- }>>;
211
- imageLayout: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
212
- mode: z.ZodLiteral<"grid">;
213
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
214
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
215
- fit: z.ZodDefault<z.ZodEnum<{
216
- cover: "cover";
217
- contain: "contain";
218
- }>>;
219
- }, z.core.$strip>, z.ZodObject<{
220
- mode: z.ZodLiteral<"masonry">;
221
- flow: z.ZodDefault<z.ZodEnum<{
222
- rows: "rows";
223
- columns: "columns";
224
- }>>;
225
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>]>>;
226
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
227
- }, z.core.$strip>], "mode">>;
228
- }, z.core.$strip>>>;
229
- }, z.core.$strip>>;
230
83
  }, z.core.$strip>>>;
231
84
  sections: z.ZodRecord<z.ZodString, z.ZodObject<{
232
85
  type: z.ZodString;
@@ -250,40 +103,6 @@ export declare const IndexSchema: z.ZodPipe<z.ZodPipe<z.ZodObject<{
250
103
  status: "live" | "archived";
251
104
  access: string[];
252
105
  order: string[];
253
- document?: {
254
- enabled?: boolean | undefined;
255
- meta?: {
256
- client?: string | undefined;
257
- project?: string | undefined;
258
- dateLabel?: string | undefined;
259
- } | undefined;
260
- cover?: {
261
- bgColor?: string | undefined;
262
- accentColor?: string | undefined;
263
- title?: string | undefined;
264
- label?: string | undefined;
265
- date?: string | undefined;
266
- imageId?: string | null | undefined;
267
- } | undefined;
268
- sections?: Record<string, {
269
- excluded?: boolean | undefined;
270
- textPlacement?: "top" | "leftColumn" | undefined;
271
- imagePlacement?: "fullWidth" | "right" | undefined;
272
- dropTextOverflow?: boolean | undefined;
273
- splitAt?: "none" | "sub_heading" | undefined;
274
- imageLayout?: {
275
- mode: "grid";
276
- rows?: 2 | 1 | 3 | undefined;
277
- columns?: 2 | 4 | 3 | undefined;
278
- fit?: "cover" | "contain" | undefined;
279
- } | {
280
- mode: "masonry";
281
- flow?: "rows" | "columns" | undefined;
282
- columns?: 2 | 4 | 3 | 5 | 6 | undefined;
283
- rows?: 2 | 4 | 1 | 3 | "auto" | undefined;
284
- } | undefined;
285
- }> | undefined;
286
- } | undefined;
287
106
  }[];
288
107
  sections: Record<string, {
289
108
  type: string;
@@ -308,40 +127,6 @@ export declare const IndexSchema: z.ZodPipe<z.ZodPipe<z.ZodObject<{
308
127
  status: "live" | "archived";
309
128
  access: string[];
310
129
  order: string[];
311
- document?: {
312
- enabled: boolean;
313
- meta: {
314
- client: string;
315
- project: string;
316
- dateLabel: string;
317
- };
318
- cover: {
319
- bgColor: string;
320
- accentColor: string;
321
- title: string;
322
- label: string;
323
- date: string;
324
- imageId: string | null;
325
- };
326
- sections: Record<string, {
327
- excluded: boolean;
328
- textPlacement: "top" | "leftColumn";
329
- imagePlacement: "fullWidth" | "right";
330
- dropTextOverflow: boolean;
331
- splitAt: "none" | "sub_heading";
332
- imageLayout: {
333
- mode: "grid";
334
- rows: 2 | 1 | 3;
335
- columns: 2 | 4 | 3;
336
- fit: "cover" | "contain";
337
- } | {
338
- mode: "masonry";
339
- flow: "rows" | "columns";
340
- columns: 2 | 4 | 3 | 5 | 6;
341
- rows: 2 | 4 | 1 | 3 | "auto";
342
- };
343
- }>;
344
- } | undefined;
345
130
  }[] | undefined;
346
131
  lastModified?: string | null | undefined;
347
132
  }>>, z.ZodObject<{
@@ -358,55 +143,6 @@ export declare const IndexSchema: z.ZodPipe<z.ZodPipe<z.ZodObject<{
358
143
  }>;
359
144
  access: z.ZodArray<z.ZodString>;
360
145
  order: z.ZodArray<z.ZodString>;
361
- document: z.ZodOptional<z.ZodObject<{
362
- enabled: z.ZodDefault<z.ZodBoolean>;
363
- meta: z.ZodDefault<z.ZodObject<{
364
- client: z.ZodDefault<z.ZodString>;
365
- project: z.ZodDefault<z.ZodString>;
366
- dateLabel: z.ZodDefault<z.ZodString>;
367
- }, z.core.$strip>>;
368
- cover: z.ZodDefault<z.ZodObject<{
369
- bgColor: z.ZodDefault<z.ZodString>;
370
- accentColor: z.ZodDefault<z.ZodString>;
371
- title: z.ZodDefault<z.ZodString>;
372
- label: z.ZodDefault<z.ZodString>;
373
- date: z.ZodDefault<z.ZodString>;
374
- imageId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
375
- }, z.core.$strip>>;
376
- sections: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
377
- excluded: z.ZodDefault<z.ZodBoolean>;
378
- textPlacement: z.ZodDefault<z.ZodEnum<{
379
- top: "top";
380
- leftColumn: "leftColumn";
381
- }>>;
382
- imagePlacement: z.ZodDefault<z.ZodEnum<{
383
- fullWidth: "fullWidth";
384
- right: "right";
385
- }>>;
386
- dropTextOverflow: z.ZodDefault<z.ZodBoolean>;
387
- splitAt: z.ZodDefault<z.ZodEnum<{
388
- none: "none";
389
- sub_heading: "sub_heading";
390
- }>>;
391
- imageLayout: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
392
- mode: z.ZodLiteral<"grid">;
393
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>>;
394
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
395
- fit: z.ZodDefault<z.ZodEnum<{
396
- cover: "cover";
397
- contain: "contain";
398
- }>>;
399
- }, z.core.$strip>, z.ZodObject<{
400
- mode: z.ZodLiteral<"masonry">;
401
- flow: z.ZodDefault<z.ZodEnum<{
402
- rows: "rows";
403
- columns: "columns";
404
- }>>;
405
- columns: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>]>>;
406
- rows: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"auto">, z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>, z.ZodLiteral<4>]>>;
407
- }, z.core.$strip>], "mode">>;
408
- }, z.core.$strip>>>;
409
- }, z.core.$strip>>;
410
146
  }, z.core.$strip>>;
411
147
  sections: z.ZodRecord<z.ZodString, z.ZodObject<{
412
148
  type: z.ZodString;
@@ -460,15 +196,6 @@ export declare const ChatbotConfigSchema: z.ZodObject<{
460
196
  }, z.core.$strip>>>;
461
197
  }, z.core.$strip>;
462
198
  export type ChatbotConfig = z.infer<typeof ChatbotConfigSchema>;
463
- /**
464
- * Deck Builder config (ADR 0001/0002). An OBJECT rather than a bare audience
465
- * array because `publicSharing` (#37) lands beside `audiences` — the same shape
466
- * ChatbotConfigSchema has, for the same reason.
467
- */
468
- export declare const DeckBuilderConfigSchema: z.ZodObject<{
469
- audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
470
- }, z.core.$strip>;
471
- export type DeckBuilderConfig = z.infer<typeof DeckBuilderConfigSchema>;
472
199
  export declare const SiteConfigSchema: z.ZodObject<{
473
200
  siteName: z.ZodDefault<z.ZodString>;
474
201
  primaryColor: z.ZodDefault<z.ZodString>;
@@ -532,9 +259,6 @@ export declare const SiteConfigSchema: z.ZodObject<{
532
259
  access: z.ZodDefault<z.ZodArray<z.ZodString>>;
533
260
  }, z.core.$strip>>>;
534
261
  }, z.core.$strip>>;
535
- deckBuilder: z.ZodDefault<z.ZodObject<{
536
- audiences: z.ZodDefault<z.ZodArray<z.ZodString>>;
537
- }, z.core.$strip>>;
538
262
  }, z.core.$strip>;
539
263
  export type SiteConfig = z.infer<typeof SiteConfigSchema>;
540
264
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,eAAO,MAAM,YAAY;;;;;+FAExB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAQ5D,eAAO,MAAM,cAAc,oGAAqG,CAAC;AAWjI,eAAO,MAAM,gBAAgB;;;EAA+B,CAAC;AAE7D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAI9C,eAAO,MAAM,OAAO,QAA+B,CAAC;AAwCpD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuEtB,CAAC;AAEL,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyE,CAAC;AAElG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC;AAEvG,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAE1D;AAMD,eAAO,MAAM,iBAAiB;;;;;iBAM5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAiC5B,CAAC;AACL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;iBAWlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyE3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../src/schemas/site-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,eAAO,MAAM,YAAY;;;;;+FAExB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;iBAI5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAQ5D,eAAO,MAAM,cAAc,uEAAwE,CAAC;AAWpG,eAAO,MAAM,gBAAgB;;;EAA+B,CAAC;AAE7D,eAAO,MAAM,UAAU;;;;;;;;;;;;iBASrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAI9C,eAAO,MAAM,OAAO,QAA+B,CAAC;AAwCpD,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuEtB,CAAC;AAEL,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAyE,CAAC;AAElG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC;AAEvG,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAE1D;AAMD,eAAO,MAAM,iBAAiB;;;;;iBAM5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAiC5B,CAAC;AACL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsE3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@drawnagency/primitives",
3
- "version": "0.1.118",
4
- "description": "Browser-safe foundation of the Brand Portal framework: Zod schemas, section components, editor shell, hooks, pure libs, collab contract, document engine.",
3
+ "version": "0.1.120",
4
+ "description": "Browser-safe foundation of the Brand Portal framework: Zod schemas, section components, editor shell, hooks, pure libs, collab contract.",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./package.json": "./package.json",
@@ -33,14 +33,6 @@
33
33
  "types": "./dist/schemas/documents.d.ts",
34
34
  "default": "./dist/schemas/documents.js"
35
35
  },
36
- "./schemas/deck": {
37
- "types": "./dist/schemas/deck.d.ts",
38
- "default": "./dist/schemas/deck.js"
39
- },
40
- "./schemas/deck-meta": {
41
- "types": "./dist/schemas/deck-meta.d.ts",
42
- "default": "./dist/schemas/deck-meta.js"
43
- },
44
36
  "./lib": {
45
37
  "types": "./dist/lib/index.d.ts",
46
38
  "default": "./dist/lib/index.js"
@@ -117,26 +109,6 @@
117
109
  "types": "./dist/lib/document-refs.d.ts",
118
110
  "default": "./dist/lib/document-refs.js"
119
111
  },
120
- "./lib/deck-access": {
121
- "types": "./dist/lib/deck-access.d.ts",
122
- "default": "./dist/lib/deck-access.js"
123
- },
124
- "./lib/deck-media-refs": {
125
- "types": "./dist/lib/deck-media-refs.d.ts",
126
- "default": "./dist/lib/deck-media-refs.js"
127
- },
128
- "./lib/deck-tool": {
129
- "types": "./dist/lib/deck-tool.d.ts",
130
- "default": "./dist/lib/deck-tool.js"
131
- },
132
- "./lib/deck-dexie": {
133
- "types": "./dist/lib/deck-dexie.d.ts",
134
- "default": "./dist/lib/deck-dexie.js"
135
- },
136
- "./lib/deck-media-assets": {
137
- "types": "./dist/lib/deck-media-assets.d.ts",
138
- "default": "./dist/lib/deck-media-assets.js"
139
- },
140
112
  "./lib/pdfjs-assets": {
141
113
  "types": "./dist/lib/pdfjs-assets.d.ts",
142
114
  "default": "./dist/lib/pdfjs-assets.js"
@@ -169,18 +141,6 @@
169
141
  "types": "./dist/components/primitives/index.d.ts",
170
142
  "default": "./dist/components/primitives/index.js"
171
143
  },
172
- "./document": {
173
- "types": "./dist/document/index.d.ts",
174
- "default": "./dist/document/index.js"
175
- },
176
- "./deck": {
177
- "types": "./dist/deck/index.d.ts",
178
- "default": "./dist/deck/index.js"
179
- },
180
- "./deck-builder": {
181
- "types": "./dist/deck-builder/index.d.ts",
182
- "default": "./dist/deck-builder/index.js"
183
- },
184
144
  "./auth": {
185
145
  "types": "./dist/auth/index.d.ts",
186
146
  "default": "./dist/auth/index.js"
@@ -6,10 +6,6 @@ import { cn } from "../../lib/cn";
6
6
  * The composer every chat surface shares: an autosizing textarea, Enter-to-send
7
7
  * with Shift+Enter for a newline, and a send button that becomes a stop button
8
8
  * while a turn is in flight.
9
- *
10
- * Extracted for the Deck Builder's docked assistant (#35). Rendering it twice
11
- * from one component is what keeps "Enter sends" from meaning two things on two
12
- * panes of the same product.
13
9
  */
14
10
  export function ChatComposer({
15
11
  value,
@@ -63,9 +63,8 @@ const ERROR_COPY: Record<string, string> = {
63
63
  };
64
64
  const RETRYABLE = new Set(["rate_limited", "upstream_error"]);
65
65
 
66
- /** Re-exported from ./markdown, where the rendering rules now live so the deck
67
- * assistant shares them. Kept here because tests and callers import it from
68
- * this module. */
66
+ /** Re-exported from ./markdown, where the rendering rules live. Kept here
67
+ * because tests and callers import it from this module. */
69
68
  export { assistantHtml };
70
69
 
71
70
  /** Parse our /api/chat SSE frames out of a fetch body. Exported for tests. */
@@ -2,9 +2,8 @@ import { marked } from "marked";
2
2
  import { sanitizeHtml } from "../../lib/sanitize";
3
3
 
4
4
  /**
5
- * The assistant-message treatment, shared by every chat surface (brand chat's
6
- * ChatPanel and the Deck Builder's docked assistant). Extracted so a second
7
- * chat pane is a second CALLER, not a second copy of the rendering rules —
5
+ * The assistant-message treatment, shared by every chat surface. A new chat
6
+ * pane is a second CALLER, not a second copy of the rendering rules —
8
7
  * particularly the sanitizer gate below, which is a security property.
9
8
  */
10
9
 
@@ -1,4 +1,4 @@
1
- import { Check } from "lucide-react";
1
+ import { Check, Minus } from "lucide-react";
2
2
  import { cn } from "../../lib/cn";
3
3
  import { IndicatorPill } from "./IndicatorPill";
4
4
  import { PopoverItem } from "../shared/PopoverItem";
@@ -8,9 +8,11 @@ interface AudienceChecklistProps {
8
8
  access: string[];
9
9
  audiences: Audience[];
10
10
  onToggle: (name: string) => void;
11
+ /** Bulk edit: audiences only some of the selected sections have. */
12
+ partial?: string[];
11
13
  }
12
14
 
13
- export function AudienceChecklist({ access, audiences, onToggle }: AudienceChecklistProps) {
15
+ export function AudienceChecklist({ access, audiences, onToggle, partial = [] }: AudienceChecklistProps) {
14
16
  if (audiences.length === 0) {
15
17
  return (
16
18
  <div className="px-3 py-2 text-xs text-base-contrast-light whitespace-nowrap">
@@ -22,23 +24,25 @@ export function AudienceChecklist({ access, audiences, onToggle }: AudienceCheck
22
24
  <ul role="list" className="w-full overflow-hidden py-1">
23
25
  {audiences.map((a) => {
24
26
  const checked = access.includes(a.name);
27
+ const mixed = !checked && partial.includes(a.name);
25
28
  return (
26
29
  <li key={a.name}>
27
30
  <PopoverItem
28
31
  role="checkbox"
29
- aria-checked={checked}
32
+ aria-checked={mixed ? "mixed" : checked}
30
33
  onClick={() => onToggle(a.name)}
31
34
  >
32
35
  <span
33
36
  aria-hidden="true"
34
37
  className={cn(
35
38
  "flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors",
36
- checked
39
+ checked || mixed
37
40
  ? "border-primary bg-primary text-primary-contrast"
38
41
  : "border-base-300 bg-base",
39
42
  )}
40
43
  >
41
44
  {checked && <Check size={14} strokeWidth={3} />}
45
+ {mixed && <Minus size={14} strokeWidth={3} />}
42
46
  </span>
43
47
  <span
44
48
  className="h-3 w-3 shrink-0 rounded-full border border-base-200"
@@ -19,6 +19,8 @@ interface IndicatorPillProps {
19
19
  /** Display-only mode: dots/label still render but the popovers never open
20
20
  * (e.g. while another editor holds the section lock). */
21
21
  disabled?: boolean;
22
+ /** Open the click popover above the pill — for pills in a bottom-pinned bar. */
23
+ placement?: "bottom" | "top";
22
24
  }
23
25
 
24
26
  export function IndicatorPill({
@@ -30,6 +32,7 @@ export function IndicatorPill({
30
32
  buttonClassName,
31
33
  ariaLabel,
32
34
  disabled,
35
+ placement = "bottom",
33
36
  }: IndicatorPillProps) {
34
37
  const [hoverOpen, setHoverOpen] = useState(false);
35
38
  const [clickOpen, setClickOpen] = useState(false);
@@ -123,6 +126,7 @@ export function IndicatorPill({
123
126
  isOpen={clickOpen}
124
127
  onClose={handleClickClose}
125
128
  anchorRef={buttonRef}
129
+ placement={placement}
126
130
  className="min-w-full max-w-xs"
127
131
  >
128
132
  {typeof clickContent === "function" ? clickContent(handleClickClose) : clickContent}
@@ -2,10 +2,6 @@ import { useCallback, useState, useEffect, useId } from "react";
2
2
  import { Check, ChevronDown, ChevronUp, Home } from "lucide-react";
3
3
  import type { SiteIndex, Page } from "../../schemas/site-config";
4
4
  import type { Audience } from "../../auth/types";
5
- // Sanctioned outside->inside import: document/ is a sealed subtree, but the
6
- // Document mode toggle needs the patch shape it edits (mirrors the same
7
- // sanctioned import in schemas/site-config.ts and lib/pages.ts).
8
- import type { DocumentOptions } from "../../document/engine/settings";
9
5
  import { Button } from "../shared/Button";
10
6
  import { ConfirmDialog } from "../shared/ConfirmDialog";
11
7
  import { IconButton } from "../shared/IconButton";
@@ -37,7 +33,6 @@ export interface PagesModalProps {
37
33
  onSetArchived: (pageId: string, archived: boolean) => void;
38
34
  onSetFields: (pageId: string, patch: Partial<Pick<Page, "title" | "slug" | "showInNav">>) => void;
39
35
  onSetAudience: (pageId: string, access: string[]) => void;
40
- onSetDocument: (pageId: string, patch: Partial<DocumentOptions>) => void;
41
36
  onConfirmDelete: (pageId: string) => void;
42
37
  }
43
38
 
@@ -114,7 +109,6 @@ export function PagesModal(props: PagesModalProps) {
114
109
  }}
115
110
  onSetFields={(patch) => props.onSetFields(page.id, patch)}
116
111
  onSetAudience={(access) => props.onSetAudience(page.id, access)}
117
- onSetDocument={(patch) => props.onSetDocument(page.id, patch)}
118
112
  onRequestDelete={() =>
119
113
  page.order.length === 0 ? props.onConfirmDelete(page.id) : setDeletingId(page.id)
120
114
  }
@@ -222,7 +216,7 @@ export function PagesModal(props: PagesModalProps) {
222
216
  }
223
217
 
224
218
  function PageRow({
225
- page, audiences, expanded, isNew, otherSlugs, location, entryIndex, liveSiblingRawIndexes, onMove, onToggleExpand, onSetHome, onSetArchived, onSetFields, onSetAudience, onSetDocument, onRequestDelete,
219
+ page, audiences, expanded, isNew, otherSlugs, location, entryIndex, liveSiblingRawIndexes, onMove, onToggleExpand, onSetHome, onSetArchived, onSetFields, onSetAudience, onRequestDelete,
226
220
  }: {
227
221
  page: Page; audiences: Audience[]; expanded: boolean;
228
222
  isNew: boolean; otherSlugs: string[];
@@ -236,7 +230,6 @@ function PageRow({
236
230
  onToggleExpand: () => void; onSetHome: () => void; onSetArchived: (v: boolean) => void;
237
231
  onSetFields: (patch: Partial<Pick<Page, "title" | "slug" | "showInNav">>) => void;
238
232
  onSetAudience: (access: string[]) => void;
239
- onSetDocument: (patch: Partial<DocumentOptions>) => void;
240
233
  onRequestDelete: () => void;
241
234
  }) {
242
235
  const draggable = location !== undefined;
@@ -433,13 +426,6 @@ function PageRow({
433
426
  </div>
434
427
  <Toggle label="Show in menu" checked={page.showInNav} onChange={(v) => onSetFields({ showInNav: v })} />
435
428
  </div>
436
- <div className="flex items-center justify-between gap-4 px-3 py-2.5">
437
- <div className="min-w-0">
438
- <div className="text-sm text-base-contrast">Document mode</div>
439
- <div className="text-xs text-base-contrast/70">Adds a presentation view of this page.</div>
440
- </div>
441
- <Toggle label="Document mode" checked={page.document?.enabled ?? false} onChange={(enabled) => onSetDocument({ enabled })} />
442
- </div>
443
429
  </div>
444
430
  </div>
445
431
  <div className="flex items-center gap-2">