@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,102 @@
1
+ 'use client';
2
+
3
+ import { Fragment } from 'react';
4
+ import * as Accordion from '../Accordion';
5
+ import { HStack } from 'styled-system/jsx';
6
+ import { navigationMenu } from 'styled-system/recipes';
7
+ import type { NavigationMenuProps } from './types';
8
+
9
+ export function NavigationMenu({
10
+ sections,
11
+ activeHref,
12
+ defaultOpenSections,
13
+ onNavigate,
14
+ renderLink,
15
+ ariaLabel = 'Navigation',
16
+ }: NavigationMenuProps) {
17
+ const styles = navigationMenu();
18
+
19
+ const defaultRenderLink: NavigationMenuProps['renderLink'] = ({
20
+ href,
21
+ children,
22
+ isActive,
23
+ className,
24
+ }) => (
25
+ <a
26
+ href={href}
27
+ aria-current={isActive ? 'page' : undefined}
28
+ data-active={isActive || undefined}
29
+ className={className}
30
+ onClick={(e) => {
31
+ e.preventDefault();
32
+ onNavigate?.(href);
33
+ }}
34
+ >
35
+ {children}
36
+ </a>
37
+ );
38
+
39
+ const resolvedRenderLink = renderLink ?? defaultRenderLink;
40
+
41
+ return (
42
+ <nav className={styles.root} aria-label={ariaLabel}>
43
+ <Accordion.Root
44
+ defaultValue={defaultOpenSections}
45
+ multiple
46
+ variant="plain"
47
+ >
48
+ {sections.map((section) => (
49
+ <Accordion.Item
50
+ key={section.value}
51
+ value={section.value}
52
+ className={styles.section}
53
+ >
54
+ <Accordion.ItemTrigger
55
+ className={styles.sectionTrigger}
56
+ css={{
57
+ // These override accordion recipe via utilities layer (same pattern as ScenarioCard)
58
+ fontSize: 'lg', // 18px — Figma spec (accordion forces 'md'/16px)
59
+ fontWeight: 'medium', // 500 — Figma spec (accordion forces semibold/600)
60
+ borderRadius: 'l3', // 8px — Figma spec (accordion forces l2/6px)
61
+ p: '2', // 8px — Figma: 5px, spacing.2 is closest
62
+ bg: 'surface.container', // Figma: #eeefe3 section header bg
63
+ color: 'onSurface', // Figma: #363636 (accordion forces fg.default)
64
+ }}
65
+ >
66
+ <HStack gap="2">
67
+ <span className={styles.sectionIcon}>{section.icon}</span>
68
+ <span className={styles.sectionTitle}>{section.title}</span>
69
+ </HStack>
70
+ <Accordion.ItemIndicator
71
+ className={styles.sectionIndicator}
72
+ css={{
73
+ color: 'primary.50', // olive green chevrons — Figma: #518500
74
+ }}
75
+ />
76
+ </Accordion.ItemTrigger>
77
+
78
+ <Accordion.ItemContent className={styles.sectionContent}>
79
+ <div className={styles.itemList}>
80
+ {section.items.map((item) => {
81
+ const isActive = activeHref === item.href;
82
+ return (
83
+ <Fragment key={item.href}>
84
+ <div className={styles.item}>
85
+ {resolvedRenderLink({
86
+ href: item.href,
87
+ children: item.label,
88
+ isActive,
89
+ className: styles.itemLink,
90
+ })}
91
+ </div>
92
+ </Fragment>
93
+ );
94
+ })}
95
+ </div>
96
+ </Accordion.ItemContent>
97
+ </Accordion.Item>
98
+ ))}
99
+ </Accordion.Root>
100
+ </nav>
101
+ );
102
+ }
@@ -0,0 +1,2 @@
1
+ export { NavigationMenu } from './NavigationMenu';
2
+ export type { NavigationMenuProps, NavSection, NavItem } from './types';
@@ -0,0 +1,27 @@
1
+ import type React from 'react';
2
+
3
+ export interface NavItem {
4
+ label: string;
5
+ href: string;
6
+ }
7
+
8
+ export interface NavSection {
9
+ value: string;
10
+ title: string;
11
+ icon: React.ReactNode;
12
+ items: NavItem[];
13
+ }
14
+
15
+ export interface NavigationMenuProps {
16
+ sections: NavSection[];
17
+ activeHref?: string;
18
+ defaultOpenSections?: string[];
19
+ onNavigate?: (href: string) => void;
20
+ renderLink?: (props: {
21
+ href: string;
22
+ children: React.ReactNode;
23
+ isActive: boolean;
24
+ className: string;
25
+ }) => React.ReactNode;
26
+ ariaLabel?: string;
27
+ }