@discourser/design-system 0.15.0 → 0.17.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 (229) hide show
  1. package/dist/chunk-2P7Z5PVP.cjs +2151 -0
  2. package/dist/chunk-2P7Z5PVP.cjs.map +1 -0
  3. package/dist/{chunk-QC44JPCA.cjs → chunk-PFWU7QSM.cjs} +777 -15
  4. package/dist/chunk-PFWU7QSM.cjs.map +1 -0
  5. package/dist/chunk-QC7LGFM3.js +2099 -0
  6. package/dist/chunk-QC7LGFM3.js.map +1 -0
  7. package/dist/{chunk-M7J7WKJY.js → chunk-SNUJBT5R.js} +778 -16
  8. package/dist/chunk-SNUJBT5R.js.map +1 -0
  9. package/dist/components/Accordion.figma.d.ts +2 -0
  10. package/dist/components/Accordion.figma.d.ts.map +1 -0
  11. package/dist/components/Breadcrumb.d.ts +11 -0
  12. package/dist/components/Breadcrumb.d.ts.map +1 -0
  13. package/dist/components/Breadcrumb.figma.d.ts +2 -0
  14. package/dist/components/Breadcrumb.figma.d.ts.map +1 -0
  15. package/dist/components/Checkbox.d.ts +6 -6
  16. package/dist/components/ContentCard/ContentCard.d.ts +13 -0
  17. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -0
  18. package/dist/components/ContentCard/ContentCard.figma.d.ts +2 -0
  19. package/dist/components/ContentCard/ContentCard.figma.d.ts.map +1 -0
  20. package/dist/components/ContentCard/index.d.ts +2 -0
  21. package/dist/components/ContentCard/index.d.ts.map +1 -0
  22. package/dist/components/{Heading.d.ts → Header.d.ts} +3 -3
  23. package/dist/components/Header.d.ts.map +1 -0
  24. package/dist/components/Header.figma.d.ts +2 -0
  25. package/dist/components/Header.figma.d.ts.map +1 -0
  26. package/dist/components/Icons/AccountIcon.d.ts +6 -0
  27. package/dist/components/Icons/AccountIcon.d.ts.map +1 -0
  28. package/dist/components/Icons/ChevronUpIcon.d.ts +6 -0
  29. package/dist/components/Icons/ChevronUpIcon.d.ts.map +1 -0
  30. package/dist/components/Icons/ClockIcon.d.ts +6 -0
  31. package/dist/components/Icons/ClockIcon.d.ts.map +1 -0
  32. package/dist/components/Icons/DashboardIcon.d.ts +6 -0
  33. package/dist/components/Icons/DashboardIcon.d.ts.map +1 -0
  34. package/dist/components/Icons/DiscourserLogo.d.ts +6 -0
  35. package/dist/components/Icons/DiscourserLogo.d.ts.map +1 -0
  36. package/dist/components/Icons/DiscourserLogo.figma.d.ts +2 -0
  37. package/dist/components/Icons/DiscourserLogo.figma.d.ts.map +1 -0
  38. package/dist/components/Icons/GripDotsVerticalIcon.d.ts +6 -0
  39. package/dist/components/Icons/GripDotsVerticalIcon.d.ts.map +1 -0
  40. package/dist/components/Icons/HelpIcon.d.ts +6 -0
  41. package/dist/components/Icons/HelpIcon.d.ts.map +1 -0
  42. package/dist/components/Icons/NotebookIcon.d.ts +6 -0
  43. package/dist/components/Icons/NotebookIcon.d.ts.map +1 -0
  44. package/dist/components/Icons/RightArrowIcon.d.ts +6 -0
  45. package/dist/components/Icons/RightArrowIcon.d.ts.map +1 -0
  46. package/dist/components/Icons/ScenarioIcon.d.ts +6 -0
  47. package/dist/components/Icons/ScenarioIcon.d.ts.map +1 -0
  48. package/dist/components/Icons/index.d.ts +11 -0
  49. package/dist/components/Icons/index.d.ts.map +1 -0
  50. package/dist/components/NavigationMenu/NavigationMenu.d.ts +3 -0
  51. package/dist/components/NavigationMenu/NavigationMenu.d.ts.map +1 -0
  52. package/dist/components/NavigationMenu/NavigationMenu.figma.d.ts +2 -0
  53. package/dist/components/NavigationMenu/NavigationMenu.figma.d.ts.map +1 -0
  54. package/dist/components/NavigationMenu/index.d.ts +3 -0
  55. package/dist/components/NavigationMenu/index.d.ts.map +1 -0
  56. package/dist/components/NavigationMenu/types.d.ts +25 -0
  57. package/dist/components/NavigationMenu/types.d.ts.map +1 -0
  58. package/dist/components/QuickStartPage/QuickStartPage.d.ts +21 -0
  59. package/dist/components/QuickStartPage/QuickStartPage.d.ts.map +1 -0
  60. package/dist/components/QuickStartPage/index.d.ts +3 -0
  61. package/dist/components/QuickStartPage/index.d.ts.map +1 -0
  62. package/dist/components/ScenarioQueue/AddScenarioDialog.d.ts +16 -0
  63. package/dist/components/ScenarioQueue/AddScenarioDialog.d.ts.map +1 -0
  64. package/dist/components/ScenarioQueue/ScenarioCard.d.ts +10 -0
  65. package/dist/components/ScenarioQueue/ScenarioCard.d.ts.map +1 -0
  66. package/dist/components/ScenarioQueue/ScenarioCardDraggable.d.ts +15 -0
  67. package/dist/components/ScenarioQueue/ScenarioCardDraggable.d.ts.map +1 -0
  68. package/dist/components/ScenarioQueue/ScenarioQueue.d.ts +3 -0
  69. package/dist/components/ScenarioQueue/ScenarioQueue.d.ts.map +1 -0
  70. package/dist/components/ScenarioQueue/ScenarioQueue.figma.d.ts +2 -0
  71. package/dist/components/ScenarioQueue/ScenarioQueue.figma.d.ts.map +1 -0
  72. package/dist/components/ScenarioQueue/index.d.ts +6 -0
  73. package/dist/components/ScenarioQueue/index.d.ts.map +1 -0
  74. package/dist/components/ScenarioQueue/types.d.ts +56 -0
  75. package/dist/components/ScenarioQueue/types.d.ts.map +1 -0
  76. package/dist/components/ScenarioSettings/ScenarioSettings.d.ts +3 -0
  77. package/dist/components/ScenarioSettings/ScenarioSettings.d.ts.map +1 -0
  78. package/dist/components/ScenarioSettings/ScenarioSettings.figma.d.ts +2 -0
  79. package/dist/components/ScenarioSettings/ScenarioSettings.figma.d.ts.map +1 -0
  80. package/dist/components/ScenarioSettings/index.d.ts +3 -0
  81. package/dist/components/ScenarioSettings/index.d.ts.map +1 -0
  82. package/dist/components/ScenarioSettings/types.d.ts +54 -0
  83. package/dist/components/ScenarioSettings/types.d.ts.map +1 -0
  84. package/dist/components/index.cjs +110 -34
  85. package/dist/components/index.d.ts +16 -1
  86. package/dist/components/index.d.ts.map +1 -1
  87. package/dist/components/index.js +1 -1
  88. package/dist/figma-codex/config.d.ts +8 -0
  89. package/dist/figma-codex/config.d.ts.map +1 -0
  90. package/dist/figma-codex/fixtures/CompoundComponent/CompoundComponent.d.ts +6 -0
  91. package/dist/figma-codex/fixtures/CompoundComponent/CompoundComponent.d.ts.map +1 -0
  92. package/dist/figma-codex/fixtures/CompoundComponent/index.d.ts +2 -0
  93. package/dist/figma-codex/fixtures/CompoundComponent/index.d.ts.map +1 -0
  94. package/dist/figma-codex/fixtures/CompoundComponent.figma.d.ts +2 -0
  95. package/dist/figma-codex/fixtures/CompoundComponent.figma.d.ts.map +1 -0
  96. package/dist/figma-codex/fixtures/SimpleComponent.d.ts +8 -0
  97. package/dist/figma-codex/fixtures/SimpleComponent.d.ts.map +1 -0
  98. package/dist/figma-codex/fixtures/SimpleComponent.figma.d.ts +2 -0
  99. package/dist/figma-codex/fixtures/SimpleComponent.figma.d.ts.map +1 -0
  100. package/dist/figma-codex/generate.d.ts +6 -0
  101. package/dist/figma-codex/generate.d.ts.map +1 -0
  102. package/dist/figma-codex/parser.d.ts +18 -0
  103. package/dist/figma-codex/parser.d.ts.map +1 -0
  104. package/dist/figma-codex/resolver.d.ts +5 -0
  105. package/dist/figma-codex/resolver.d.ts.map +1 -0
  106. package/dist/figma-codex/schema.d.ts +60 -0
  107. package/dist/figma-codex/schema.d.ts.map +1 -0
  108. package/dist/figma-codex/writer.d.ts +8 -0
  109. package/dist/figma-codex/writer.d.ts.map +1 -0
  110. package/dist/figma-codex.json +373 -0
  111. package/dist/index.cjs +114 -38
  112. package/dist/index.js +2 -2
  113. package/dist/preset/index.cjs +2 -2
  114. package/dist/preset/index.d.ts.map +1 -1
  115. package/dist/preset/index.js +1 -1
  116. package/dist/preset/recipes/accordion.d.ts.map +1 -1
  117. package/dist/preset/recipes/avatar.d.ts.map +1 -1
  118. package/dist/preset/recipes/breadcrumb.d.ts +2 -0
  119. package/dist/preset/recipes/breadcrumb.d.ts.map +1 -0
  120. package/dist/preset/recipes/checkbox.d.ts.map +1 -1
  121. package/dist/preset/recipes/content-card.d.ts +2 -0
  122. package/dist/preset/recipes/content-card.d.ts.map +1 -0
  123. package/dist/preset/recipes/field.d.ts.map +1 -1
  124. package/dist/preset/recipes/index.d.ts +7 -0
  125. package/dist/preset/recipes/index.d.ts.map +1 -1
  126. package/dist/preset/recipes/navigation-menu.d.ts +2 -0
  127. package/dist/preset/recipes/navigation-menu.d.ts.map +1 -0
  128. package/dist/preset/recipes/progress.d.ts.map +1 -1
  129. package/dist/preset/recipes/radio-group.d.ts.map +1 -1
  130. package/dist/preset/recipes/scenario-card.d.ts +2 -0
  131. package/dist/preset/recipes/scenario-card.d.ts.map +1 -0
  132. package/dist/preset/recipes/scenario-queue.d.ts +2 -0
  133. package/dist/preset/recipes/scenario-queue.d.ts.map +1 -0
  134. package/dist/preset/recipes/scenario-settings.d.ts +2 -0
  135. package/dist/preset/recipes/scenario-settings.d.ts.map +1 -0
  136. package/dist/preset/recipes/steps.d.ts.map +1 -1
  137. package/dist/preset/recipes/toast.d.ts.map +1 -1
  138. package/dist/preset/recipes/tooltip.d.ts.map +1 -1
  139. package/dist/preset/semantic-tokens.d.ts +12 -0
  140. package/dist/preset/semantic-tokens.d.ts.map +1 -1
  141. package/package.json +35 -2
  142. package/src/components/Accordion.figma.tsx +20 -0
  143. package/src/components/Breadcrumb.figma.tsx +18 -0
  144. package/src/components/Breadcrumb.tsx +52 -0
  145. package/src/components/ContentCard/ContentCard.figma.tsx +21 -0
  146. package/src/components/ContentCard/ContentCard.test.tsx +197 -0
  147. package/src/components/ContentCard/ContentCard.tsx +19 -0
  148. package/src/components/ContentCard/index.ts +13 -0
  149. package/src/components/Header.figma.tsx +25 -0
  150. package/src/components/{Heading.tsx → Header.tsx} +2 -2
  151. package/src/components/Icons/AccountIcon.tsx +26 -0
  152. package/src/components/Icons/ChevronUpIcon.tsx +24 -0
  153. package/src/components/Icons/ClockIcon.tsx +40 -0
  154. package/src/components/Icons/DashboardIcon.tsx +47 -0
  155. package/src/components/Icons/Discourser-Logo.svg +14 -0
  156. package/src/components/Icons/DiscourserLogo.figma.tsx +10 -0
  157. package/src/components/Icons/DiscourserLogo.tsx +72 -0
  158. package/src/components/Icons/GripDotsVerticalIcon.tsx +26 -0
  159. package/src/components/Icons/HelpIcon.tsx +26 -0
  160. package/src/components/Icons/NotebookIcon.tsx +26 -0
  161. package/src/components/Icons/RightArrowIcon.tsx +23 -0
  162. package/src/components/Icons/ScenarioIcon.tsx +26 -0
  163. package/src/components/Icons/index.ts +13 -0
  164. package/src/components/NavigationMenu/NavigationMenu.figma.tsx +26 -0
  165. package/src/components/NavigationMenu/NavigationMenu.test.tsx +524 -0
  166. package/src/components/NavigationMenu/NavigationMenu.tsx +102 -0
  167. package/src/components/NavigationMenu/index.ts +2 -0
  168. package/src/components/NavigationMenu/types.ts +27 -0
  169. package/src/components/QuickStartPage/QuickStartPage.tsx +627 -0
  170. package/src/components/QuickStartPage/index.ts +2 -0
  171. package/src/components/ScenarioQueue/AddScenarioDialog.tsx +137 -0
  172. package/src/components/ScenarioQueue/ScenarioCard.tsx +120 -0
  173. package/src/components/ScenarioQueue/ScenarioCardDraggable.tsx +41 -0
  174. package/src/components/ScenarioQueue/ScenarioQueue.figma.tsx +37 -0
  175. package/src/components/ScenarioQueue/ScenarioQueue.test.tsx +398 -0
  176. package/src/components/ScenarioQueue/ScenarioQueue.tsx +162 -0
  177. package/src/components/ScenarioQueue/index.ts +11 -0
  178. package/src/components/ScenarioQueue/types.ts +86 -0
  179. package/src/components/ScenarioSettings/ScenarioSettings.figma.tsx +12 -0
  180. package/src/components/ScenarioSettings/ScenarioSettings.test.tsx +406 -0
  181. package/src/components/ScenarioSettings/ScenarioSettings.tsx +386 -0
  182. package/src/components/ScenarioSettings/index.ts +11 -0
  183. package/src/components/ScenarioSettings/types.ts +70 -0
  184. package/src/components/__tests__/Breadcrumb.test.tsx +94 -0
  185. package/src/components/index.ts +54 -1
  186. package/src/figma-codex/README.md +186 -0
  187. package/src/figma-codex/__tests__/config.test.ts +63 -0
  188. package/src/figma-codex/__tests__/generate.test.ts +78 -0
  189. package/src/figma-codex/__tests__/parser.test.ts +138 -0
  190. package/src/figma-codex/__tests__/resolver.test.ts +196 -0
  191. package/src/figma-codex/__tests__/writer.test.ts +111 -0
  192. package/src/figma-codex/config.ts +42 -0
  193. package/src/figma-codex/fixtures/CompoundComponent/CompoundComponent.tsx +17 -0
  194. package/src/figma-codex/fixtures/CompoundComponent/index.ts +1 -0
  195. package/src/figma-codex/fixtures/CompoundComponent.figma.tsx +14 -0
  196. package/src/figma-codex/fixtures/SimpleComponent.figma.tsx +10 -0
  197. package/src/figma-codex/fixtures/SimpleComponent.tsx +10 -0
  198. package/src/figma-codex/fixtures/expected-output.json +78 -0
  199. package/src/figma-codex/generate.ts +106 -0
  200. package/src/figma-codex/parser.ts +138 -0
  201. package/src/figma-codex/resolver.ts +280 -0
  202. package/src/figma-codex/schema.ts +79 -0
  203. package/src/figma-codex/writer.ts +54 -0
  204. package/src/preset/index.ts +15 -0
  205. package/src/preset/recipes/accordion.ts +8 -5
  206. package/src/preset/recipes/avatar.ts +1 -2
  207. package/src/preset/recipes/breadcrumb.ts +109 -0
  208. package/src/preset/recipes/checkbox.ts +1 -2
  209. package/src/preset/recipes/content-card.ts +124 -0
  210. package/src/preset/recipes/field.ts +1 -2
  211. package/src/preset/recipes/index.ts +11 -0
  212. package/src/preset/recipes/navigation-menu.ts +97 -0
  213. package/src/preset/recipes/progress.ts +1 -2
  214. package/src/preset/recipes/radio-group.ts +1 -2
  215. package/src/preset/recipes/scenario-card.ts +151 -0
  216. package/src/preset/recipes/scenario-queue.ts +99 -0
  217. package/src/preset/recipes/scenario-settings.ts +182 -0
  218. package/src/preset/recipes/steps.ts +1 -2
  219. package/src/preset/recipes/toast.ts +1 -2
  220. package/src/preset/recipes/tooltip.ts +1 -2
  221. package/src/preset/semantic-tokens.ts +4 -0
  222. package/src/test/setup.ts +15 -0
  223. package/dist/chunk-F7LHARS4.js +0 -869
  224. package/dist/chunk-F7LHARS4.js.map +0 -1
  225. package/dist/chunk-M7J7WKJY.js.map +0 -1
  226. package/dist/chunk-QC44JPCA.cjs.map +0 -1
  227. package/dist/chunk-QP4EJI3G.cjs +0 -902
  228. package/dist/chunk-QP4EJI3G.cjs.map +0 -1
  229. package/dist/components/Heading.d.ts.map +0 -1
@@ -0,0 +1,2 @@
1
+ export { Root, Header, Body, type RootProps } from './CompoundComponent';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/figma-codex/fixtures/CompoundComponent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CompoundComponent.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompoundComponent.figma.d.ts","sourceRoot":"","sources":["../../../src/figma-codex/fixtures/CompoundComponent.figma.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export interface SimpleComponentProps {
2
+ /** The display label */
3
+ label: string;
4
+ /** Optional size variant */
5
+ size?: 'sm' | 'md' | 'lg';
6
+ }
7
+ export declare const SimpleComponent: (props: SimpleComponentProps) => import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=SimpleComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleComponent.d.ts","sourceRoot":"","sources":["../../../src/figma-codex/fixtures/SimpleComponent.tsx"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,4CAE1D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SimpleComponent.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleComponent.figma.d.ts","sourceRoot":"","sources":["../../../src/figma-codex/fixtures/SimpleComponent.figma.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { type FigmaCodexConfig } from './config';
2
+ export interface GenerateOptions extends FigmaCodexConfig {
3
+ projectRoot?: string;
4
+ }
5
+ export declare function generate(options: GenerateOptions): void;
6
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/figma-codex/generate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA0B7D,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAyDvD"}
@@ -0,0 +1,18 @@
1
+ export declare class ParseError extends Error {
2
+ readonly filePath: string;
3
+ constructor(message: string, filePath: string);
4
+ }
5
+ export interface ParsedFigmaFile {
6
+ filePath: string;
7
+ importStyle: 'named' | 'namespace';
8
+ componentName: string;
9
+ importSource: string;
10
+ connectSubComponent?: string;
11
+ figmaUrl: string;
12
+ figmaFileKey: string;
13
+ figmaNodeId: string;
14
+ example: string;
15
+ propsMapping: Record<string, string>;
16
+ }
17
+ export declare function parseFigmaFile(content: string, filePath: string): ParsedFigmaFile;
18
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/figma-codex/parser.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;aAGjB,QAAQ,EAAE,MAAM;gBADhC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM;CAKnC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,GAAG,WAAW,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AA0DD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,eAAe,CAuDjB"}
@@ -0,0 +1,5 @@
1
+ import type { ParsedFigmaFile } from './parser';
2
+ import type { FigmaCodexConfig } from './config';
3
+ import type { ComponentEntry } from './schema';
4
+ export declare function resolveComponent(parsed: ParsedFigmaFile, config: FigmaCodexConfig): ComponentEntry;
5
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/figma-codex/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,UAAU,CAAC;AAoMlB,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,gBAAgB,GACvB,cAAc,CAwEhB"}
@@ -0,0 +1,60 @@
1
+ export interface FigmaCodex {
2
+ /** Schema version for forward compatibility */
3
+ version: '1.0.0';
4
+ /** Package name of the design system */
5
+ packageName: string;
6
+ /** ISO timestamp of generation */
7
+ generatedAt: string;
8
+ /** Git commit hash (if available) */
9
+ gitHash?: string;
10
+ /** Source Figma file(s) referenced */
11
+ figmaFiles: Record<string, {
12
+ fileKey: string;
13
+ fileName?: string;
14
+ }>;
15
+ /** The component registry */
16
+ components: Record<string, ComponentEntry>;
17
+ }
18
+ export interface ComponentEntry {
19
+ /** Human-readable component name */
20
+ name: string;
21
+ /** Component type classification */
22
+ type: 'simple' | 'compound' | 'composite';
23
+ /** Figma reference */
24
+ figma: {
25
+ fileKey: string;
26
+ nodeId: string;
27
+ nodeName?: string;
28
+ url: string;
29
+ };
30
+ /** Import information */
31
+ imports: {
32
+ /** Primary import statement */
33
+ primary: string;
34
+ /** Named exports available */
35
+ namedExports: string[];
36
+ /** Package subpath, e.g. '@discourser/design-system/Breadcrumb' */
37
+ subpath?: string;
38
+ };
39
+ /** Prop interface (extracted from TypeScript source) */
40
+ props: PropDefinition[];
41
+ /** Sub-components for compound components */
42
+ subComponents?: SubComponentEntry[];
43
+ /** Example JSX from .figma.tsx */
44
+ example: string;
45
+ /** Source file path relative to project root */
46
+ sourcePath: string;
47
+ }
48
+ export interface PropDefinition {
49
+ name: string;
50
+ type: string;
51
+ required: boolean;
52
+ description?: string;
53
+ defaultValue?: string;
54
+ }
55
+ export interface SubComponentEntry {
56
+ name: string;
57
+ element: string;
58
+ description?: string;
59
+ }
60
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/figma-codex/schema.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IAEjB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IAEpB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CACF,CAAC;IAEF,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,oCAAoC;IACpC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;IAE1C,sBAAsB;IACtB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IAEF,yBAAyB;IACzB,OAAO,EAAE;QACP,+BAA+B;QAC/B,OAAO,EAAE,MAAM,CAAC;QAChB,8BAA8B;QAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,mEAAmE;QACnE,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,wDAAwD;IACxD,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEpC,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,8 @@
1
+ import type { ComponentEntry } from './schema';
2
+ interface WriteOptions {
3
+ packageName: string;
4
+ outputPath: string;
5
+ }
6
+ export declare function writeManifest(components: Record<string, ComponentEntry>, options: WriteOptions, projectRoot: string): void;
7
+ export {};
8
+ //# sourceMappingURL=writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/figma-codex/writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,UAAU,CAAC;AAE3D,UAAU,YAAY;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAeD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1C,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,GAClB,IAAI,CA0BN"}
@@ -0,0 +1,373 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "packageName": "@discourser/design-system",
4
+ "generatedAt": "2026-02-27T23:54:31.947Z",
5
+ "gitHash": "7d3dad6e",
6
+ "figmaFiles": {
7
+ "GaHmFfmvO4loUzuZS4TgEz": {
8
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz"
9
+ }
10
+ },
11
+ "components": {
12
+ "Accordion": {
13
+ "name": "Accordion",
14
+ "type": "compound",
15
+ "figma": {
16
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
17
+ "nodeId": "38:8232",
18
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8232"
19
+ },
20
+ "imports": {
21
+ "primary": "import * as Accordion from '@discourser/design-system/Accordion'",
22
+ "namedExports": [
23
+ "Accordion.ItemBody"
24
+ ],
25
+ "subpath": "@discourser/design-system/Accordion"
26
+ },
27
+ "props": [],
28
+ "subComponents": [
29
+ {
30
+ "name": "ItemBody",
31
+ "element": "div"
32
+ }
33
+ ],
34
+ "example": "<Accordion.Root collapsible>\n <Accordion.Item value=\"item-1\">\n <Accordion.ItemTrigger>\n <span>Trigger</span>\n <Accordion.ItemIndicator />\n </Accordion.ItemTrigger>\n <Accordion.ItemContent>Content</Accordion.ItemContent>\n </Accordion.Item>\n </Accordion.Root>",
35
+ "sourcePath": "src/components/Accordion.tsx"
36
+ },
37
+ "Breadcrumb": {
38
+ "name": "Breadcrumb",
39
+ "type": "compound",
40
+ "figma": {
41
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
42
+ "nodeId": "38:7978",
43
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-7978"
44
+ },
45
+ "imports": {
46
+ "primary": "import * as Breadcrumb from '@discourser/design-system/Breadcrumb'",
47
+ "namedExports": [
48
+ "Breadcrumb.Root",
49
+ "Breadcrumb.List",
50
+ "Breadcrumb.Item",
51
+ "Breadcrumb.Link",
52
+ "Breadcrumb.Ellipsis",
53
+ "Breadcrumb.Separator",
54
+ "Breadcrumb.CurrentLink"
55
+ ],
56
+ "subpath": "@discourser/design-system/Breadcrumb"
57
+ },
58
+ "props": [],
59
+ "subComponents": [
60
+ {
61
+ "name": "Root",
62
+ "element": "nav"
63
+ },
64
+ {
65
+ "name": "List",
66
+ "element": "ol"
67
+ },
68
+ {
69
+ "name": "Item",
70
+ "element": "li"
71
+ },
72
+ {
73
+ "name": "Link",
74
+ "element": "a"
75
+ },
76
+ {
77
+ "name": "Ellipsis",
78
+ "element": "li"
79
+ },
80
+ {
81
+ "name": "Separator",
82
+ "element": "li"
83
+ },
84
+ {
85
+ "name": "CurrentLink",
86
+ "element": "span"
87
+ }
88
+ ],
89
+ "example": "<Breadcrumb.Root>\n <Breadcrumb.List>\n <Breadcrumb.Item>\n <Breadcrumb.Link href=\"#\">Home</Breadcrumb.Link>\n </Breadcrumb.Item>\n <Breadcrumb.Separator />\n <Breadcrumb.Item>\n <Breadcrumb.CurrentLink>Current</Breadcrumb.CurrentLink>\n </Breadcrumb.Item>\n </Breadcrumb.List>\n </Breadcrumb.Root>",
90
+ "sourcePath": "src/components/Breadcrumb.tsx"
91
+ },
92
+ "ContentCard": {
93
+ "name": "ContentCard",
94
+ "type": "compound",
95
+ "figma": {
96
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
97
+ "nodeId": "478:5957",
98
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=478-5957"
99
+ },
100
+ "imports": {
101
+ "primary": "import * as ContentCard from '@discourser/design-system/ContentCard'",
102
+ "namedExports": [
103
+ "ContentCard.Root",
104
+ "ContentCard.Header",
105
+ "ContentCard.Title",
106
+ "ContentCard.BadgeBar",
107
+ "ContentCard.Body",
108
+ "ContentCard.Section",
109
+ "ContentCard.SectionTitle",
110
+ "ContentCard.Separator",
111
+ "ContentCard.List",
112
+ "ContentCard.ListItem"
113
+ ],
114
+ "subpath": "@discourser/design-system/ContentCard"
115
+ },
116
+ "props": [],
117
+ "subComponents": [
118
+ {
119
+ "name": "Root",
120
+ "element": "div"
121
+ },
122
+ {
123
+ "name": "Header",
124
+ "element": "div"
125
+ },
126
+ {
127
+ "name": "Title",
128
+ "element": "h2"
129
+ },
130
+ {
131
+ "name": "BadgeBar",
132
+ "element": "div"
133
+ },
134
+ {
135
+ "name": "Body",
136
+ "element": "div"
137
+ },
138
+ {
139
+ "name": "Section",
140
+ "element": "section"
141
+ },
142
+ {
143
+ "name": "SectionTitle",
144
+ "element": "h3"
145
+ },
146
+ {
147
+ "name": "Separator",
148
+ "element": "hr"
149
+ },
150
+ {
151
+ "name": "List",
152
+ "element": "ul"
153
+ },
154
+ {
155
+ "name": "ListItem",
156
+ "element": "li"
157
+ }
158
+ ],
159
+ "example": "<ContentCard.Root>\n <ContentCard.Header>\n <ContentCard.Title>Title</ContentCard.Title>\n <ContentCard.BadgeBar>badges</ContentCard.BadgeBar>\n </ContentCard.Header>\n <ContentCard.Body>Content</ContentCard.Body>\n <ContentCard.Separator />\n <ContentCard.Section>\n <ContentCard.SectionTitle>Section</ContentCard.SectionTitle>\n <ContentCard.List>\n <ContentCard.ListItem>Item</ContentCard.ListItem>\n </ContentCard.List>\n </ContentCard.Section>\n </ContentCard.Root>",
160
+ "sourcePath": "src/components/ContentCard/index.ts"
161
+ },
162
+ "Header": {
163
+ "name": "Header",
164
+ "type": "simple",
165
+ "figma": {
166
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
167
+ "nodeId": "485:4697",
168
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=485-4697"
169
+ },
170
+ "imports": {
171
+ "primary": "import { Header } from '@discourser/design-system/Header'",
172
+ "namedExports": [
173
+ "Header"
174
+ ]
175
+ },
176
+ "props": [],
177
+ "example": "<Header size={size}>Heading Text</Header>",
178
+ "sourcePath": "src/components/Header.tsx"
179
+ },
180
+ "DiscourserLogo": {
181
+ "name": "DiscourserLogo",
182
+ "type": "simple",
183
+ "figma": {
184
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
185
+ "nodeId": "491:4933",
186
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=491-4933"
187
+ },
188
+ "imports": {
189
+ "primary": "import { DiscourserLogo } from '@discourser/design-system/DiscourserLogo'",
190
+ "namedExports": [
191
+ "DiscourserLogo"
192
+ ]
193
+ },
194
+ "props": [],
195
+ "example": "<DiscourserLogo />",
196
+ "sourcePath": "src/components/Icons/DiscourserLogo.tsx"
197
+ },
198
+ "NavigationMenu": {
199
+ "name": "NavigationMenu",
200
+ "type": "composite",
201
+ "figma": {
202
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
203
+ "nodeId": "38:8485",
204
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8485"
205
+ },
206
+ "imports": {
207
+ "primary": "import { NavigationMenu } from '@discourser/design-system/NavigationMenu'",
208
+ "namedExports": [
209
+ "NavigationMenu"
210
+ ],
211
+ "subpath": "@discourser/design-system/NavigationMenu"
212
+ },
213
+ "props": [
214
+ {
215
+ "name": "sections",
216
+ "type": "NavSection[]",
217
+ "required": true
218
+ },
219
+ {
220
+ "name": "activeHref",
221
+ "type": "string",
222
+ "required": false
223
+ },
224
+ {
225
+ "name": "defaultOpenSections",
226
+ "type": "string[]",
227
+ "required": false
228
+ },
229
+ {
230
+ "name": "onNavigate",
231
+ "type": "(href: string) => void",
232
+ "required": false
233
+ },
234
+ {
235
+ "name": "renderLink",
236
+ "type": "(props: { href: string; children: React.ReactNode; isActive: boolean; className: string; }) => React.ReactNode",
237
+ "required": false
238
+ },
239
+ {
240
+ "name": "ariaLabel",
241
+ "type": "string",
242
+ "required": false
243
+ }
244
+ ],
245
+ "example": "<NavigationMenu\n sections={[\n {\n value: 'dashboard',\n title: 'Dashboard',\n icon: null,\n items: [\n { label: 'Quick Start', href: '/dashboard/quick-start' },\n { label: 'Progress', href: '/dashboard/progress' },\n ],\n },\n ]}\n defaultOpenSections={['dashboard']}\n activeHref=\"/dashboard/quick-start\"\n />",
246
+ "sourcePath": "src/components/NavigationMenu/NavigationMenu.tsx"
247
+ },
248
+ "ScenarioQueue": {
249
+ "name": "ScenarioQueue",
250
+ "type": "composite",
251
+ "figma": {
252
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
253
+ "nodeId": "478:5757",
254
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=478-5757"
255
+ },
256
+ "imports": {
257
+ "primary": "import { ScenarioQueue } from '@discourser/design-system/ScenarioQueue'",
258
+ "namedExports": [
259
+ "ScenarioQueue"
260
+ ],
261
+ "subpath": "@discourser/design-system/ScenarioQueue"
262
+ },
263
+ "props": [
264
+ {
265
+ "name": "scenarios",
266
+ "type": "Scenario[]",
267
+ "required": true,
268
+ "description": "All scenarios — the component splits them by status internally"
269
+ },
270
+ {
271
+ "name": "onReorder",
272
+ "type": "(reorderedIds: string[]) => void",
273
+ "required": false,
274
+ "description": "Called when user reorders cards in the \"In Queue\" tab"
275
+ },
276
+ {
277
+ "name": "onRequeue",
278
+ "type": "(scenarioId: string) => void",
279
+ "required": false,
280
+ "description": "Called when user toggles a completed scenario back to the queue"
281
+ },
282
+ {
283
+ "name": "onRemove",
284
+ "type": "(scenarioId: string) => void",
285
+ "required": false,
286
+ "description": "Called when user removes a scenario from the queue"
287
+ },
288
+ {
289
+ "name": "renderAddScenarioContent",
290
+ "type": "(props: { onClose: () => void }) => ReactNode",
291
+ "required": false,
292
+ "description": "* Render prop / slot for the Add Scenario modal body. The design system provides the Dialog shell; the consumer (discourser.ai) provides the collection content. * Receives `onClose` to allow the consumer to close the modal after selection."
293
+ },
294
+ {
295
+ "name": "onBrowseMore",
296
+ "type": "() => void",
297
+ "required": false,
298
+ "description": "Called when user clicks \"Browse More Scenarios\" link inside the modal"
299
+ },
300
+ {
301
+ "name": "onBuildCustom",
302
+ "type": "() => void",
303
+ "required": false,
304
+ "description": "Called when user clicks \"Build Custom Scenario\" link inside the modal"
305
+ }
306
+ ],
307
+ "example": "<ScenarioQueue scenarios={scenarios} />",
308
+ "sourcePath": "src/components/ScenarioQueue/ScenarioQueue.tsx"
309
+ },
310
+ "ScenarioSettings": {
311
+ "name": "ScenarioSettings",
312
+ "type": "composite",
313
+ "figma": {
314
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
315
+ "nodeId": "38:8240",
316
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8240"
317
+ },
318
+ "imports": {
319
+ "primary": "import { ScenarioSettings } from '@discourser/design-system/ScenarioSettings'",
320
+ "namedExports": [
321
+ "ScenarioSettings"
322
+ ],
323
+ "subpath": "@discourser/design-system/ScenarioSettings"
324
+ },
325
+ "props": [
326
+ {
327
+ "name": "defaultValue",
328
+ "type": "string[]",
329
+ "required": false,
330
+ "description": "* Section IDs that start expanded. Defaults to all six sections, or ['conversation-flow'] when singleOpen is true."
331
+ },
332
+ {
333
+ "name": "singleOpen",
334
+ "type": "boolean",
335
+ "required": false,
336
+ "description": "* When true, only one accordion section can be open at a time. @default false"
337
+ },
338
+ {
339
+ "name": "adjustmentDialogContent",
340
+ "type": "Partial<Record<AdjustableSectionId, ReactNode>>",
341
+ "required": false,
342
+ "description": "* ReactNode content to render inside each adjustable section's dialog. Keyed by section ID. Falls back to a placeholder when not provided."
343
+ },
344
+ {
345
+ "name": "renderAdjustmentDialog",
346
+ "type": "(sectionId: AdjustableSectionId) => ReactNode",
347
+ "required": false,
348
+ "description": "* Alternative render-function API for dialog content. Takes precedence over adjustmentDialogContent when both are provided."
349
+ },
350
+ {
351
+ "name": "defaultDuration",
352
+ "type": "DurationValue",
353
+ "required": false,
354
+ "description": "* Default selected value for the Duration radio group. @default 'quick'"
355
+ },
356
+ {
357
+ "name": "defaultQuestionCount",
358
+ "type": "QuestionCountValue",
359
+ "required": false,
360
+ "description": "* Default selected value for the Number of Questions radio group. @default 'brief'"
361
+ },
362
+ {
363
+ "name": "onSelectionChange",
364
+ "type": "(sectionId: RadioSectionId, value: string) => void",
365
+ "required": false,
366
+ "description": "* Called when a radio group selection changes. @param sectionId - 'duration' or 'number-of-questions' @param value - the selected radio value"
367
+ }
368
+ ],
369
+ "example": "<ScenarioSettings\n defaultValue={['duration', 'number-of-questions']}\n defaultDuration=\"standard\"\n defaultQuestionCount=\"standard\"\n />",
370
+ "sourcePath": "src/components/ScenarioSettings/index.ts"
371
+ }
372
+ }
373
+ }