@discourser/design-system 0.24.0 → 0.25.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.
- package/dist/{chunk-KIJKNZ73.cjs → chunk-QNCZYFUJ.cjs} +46 -11
- package/dist/chunk-QNCZYFUJ.cjs.map +1 -0
- package/dist/{chunk-VOH2QELR.cjs → chunk-TBLDQATQ.cjs} +377 -12
- package/dist/chunk-TBLDQATQ.cjs.map +1 -0
- package/dist/{chunk-VN2QX6S7.js → chunk-UHSL4N44.js} +378 -14
- package/dist/chunk-UHSL4N44.js.map +1 -0
- package/dist/{chunk-HN2IHIMR.js → chunk-ZPECW4N2.js} +46 -11
- package/dist/chunk-ZPECW4N2.js.map +1 -0
- package/dist/components/Badge.figma.d.ts +2 -0
- package/dist/components/Badge.figma.d.ts.map +1 -0
- package/dist/components/Button.figma.d.ts +2 -0
- package/dist/components/Button.figma.d.ts.map +1 -0
- package/dist/components/Card.figma.d.ts +2 -0
- package/dist/components/Card.figma.d.ts.map +1 -0
- package/dist/components/Icons/AudienceIcon.d.ts.map +1 -1
- package/dist/components/Input.figma.d.ts +2 -0
- package/dist/components/Input.figma.d.ts.map +1 -0
- package/dist/components/RadioGroup.figma.d.ts +2 -0
- package/dist/components/RadioGroup.figma.d.ts.map +1 -0
- package/dist/components/SettingsPopover/SettingsPopover.figma.d.ts +2 -0
- package/dist/components/SettingsPopover/SettingsPopover.figma.d.ts.map +1 -0
- package/dist/components/Slider.figma.d.ts +2 -0
- package/dist/components/Slider.figma.d.ts.map +1 -0
- package/dist/components/Stepper/Stepper.figma.d.ts +2 -0
- package/dist/components/Stepper/Stepper.figma.d.ts.map +1 -0
- package/dist/components/StudioControls/StudioControls.d.ts +3 -0
- package/dist/components/StudioControls/StudioControls.d.ts.map +1 -0
- package/dist/components/StudioControls/StudioControls.figma.d.ts +2 -0
- package/dist/components/StudioControls/StudioControls.figma.d.ts.map +1 -0
- package/dist/components/StudioControls/index.d.ts +3 -0
- package/dist/components/StudioControls/index.d.ts.map +1 -0
- package/dist/components/StudioControls/types.d.ts +17 -0
- package/dist/components/StudioControls/types.d.ts.map +1 -0
- package/dist/components/Switch.figma.d.ts +2 -0
- package/dist/components/Switch.figma.d.ts.map +1 -0
- package/dist/components/index.cjs +78 -74
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/figma-codex/parser.d.ts +2 -0
- package/dist/figma-codex/parser.d.ts.map +1 -1
- package/dist/figma-codex/resolver.d.ts.map +1 -1
- package/dist/figma-codex/schema.d.ts +7 -0
- package/dist/figma-codex/schema.d.ts.map +1 -1
- package/dist/figma-codex.json +408 -2
- package/dist/index.cjs +82 -78
- package/dist/index.js +2 -2
- package/dist/preset/index.cjs +2 -2
- package/dist/preset/index.js +1 -1
- package/dist/preset/recipes/badge.d.ts.map +1 -1
- package/dist/preset/recipes/index.d.ts +1 -0
- package/dist/preset/recipes/index.d.ts.map +1 -1
- package/dist/preset/recipes/studio-controls.d.ts +2 -0
- package/dist/preset/recipes/studio-controls.d.ts.map +1 -0
- package/dist/preset/recipes/switch.d.ts.map +1 -1
- package/docs/figma-mcp-return/card-audit.json +31 -0
- package/docs/figma-mcp-return/conversation-prelaunch-audit.json +51 -0
- package/docs/figma-mcp-return/conversation_lobby-design-context.md +359 -0
- package/docs/figma-mcp-return/conversation_lobby-metadata.xml +1 -0
- package/docs/figma-mcp-return/discourser-accordion-audit.json +264 -0
- package/docs/figma-mcp-return/discourser-accordion-design-context-v2.tsx +350 -0
- package/docs/figma-mcp-return/discourser-accordion-design-context.tsx +130 -0
- package/docs/figma-mcp-return/discourser-accordion-metadata-v2.xml +1 -0
- package/docs/figma-mcp-return/discourser-accordion-metadata.xml +1 -0
- package/docs/figma-mcp-return/kai-resolution-simulation.md +181 -0
- package/docs/figma-mcp-return/prelaunch-comparison-analysis.md +126 -0
- package/docs/figma-mcp-return/prelaunch-get-design-context.md +982 -0
- package/docs/figma-mcp-return/prelaunch-get-metadata.md +7 -0
- package/docs/figma-mcp-return/prelaunch-get-metadata.xml +3 -0
- package/docs/figma-mcp-return/prelaunch-post-component-update.md +791 -0
- package/docs/figma-mcp-return/prelaunch-post-rebind-design-context.md +969 -0
- package/docs/figma-mcp-return/radio-group-audit.json +23 -0
- package/docs/figma-mcp-return/switch-audit.json +38 -0
- package/docs/session-summary-2026-03-29.md +98 -0
- package/package.json +2 -1
- package/src/components/Badge.figma.tsx +39 -0
- package/src/components/Button.figma.tsx +18 -0
- package/src/components/Card.figma.tsx +33 -0
- package/src/components/Icons/AudienceIcon.tsx +3 -1
- package/src/components/Icons/AudioSpeakerIcon.tsx +1 -1
- package/src/components/Icons/MicrophoneIcon.tsx +3 -3
- package/src/components/Icons/RecordIcon.tsx +4 -4
- package/src/components/Icons/TimerIcon.tsx +1 -1
- package/src/components/Input.figma.tsx +17 -0
- package/src/components/RadioGroup.figma.tsx +38 -0
- package/src/components/SettingsPopover/SettingsPopover.figma.tsx +17 -0
- package/src/components/Slider.figma.tsx +20 -0
- package/src/components/Stepper/Stepper.figma.tsx +19 -0
- package/src/components/StudioControls/StudioControls.figma.tsx +25 -0
- package/src/components/StudioControls/StudioControls.tsx +381 -0
- package/src/components/StudioControls/index.ts +2 -0
- package/src/components/StudioControls/types.ts +17 -0
- package/src/components/Switch.figma.tsx +32 -0
- package/src/components/index.ts +5 -0
- package/src/figma-codex/parser.ts +55 -0
- package/src/figma-codex/resolver.ts +1 -0
- package/src/figma-codex/schema.ts +9 -0
- package/src/preset/recipes/badge.ts +41 -7
- package/src/preset/recipes/index.ts +1 -0
- package/src/preset/recipes/studio-controls.ts +252 -0
- package/src/preset/recipes/switch.ts +5 -4
- package/dist/chunk-HN2IHIMR.js.map +0 -1
- package/dist/chunk-KIJKNZ73.cjs.map +0 -1
- package/dist/chunk-VN2QX6S7.js.map +0 -1
- package/dist/chunk-VOH2QELR.cjs.map +0 -1
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# Conversation Lobby — Pre-launch Screen
|
|
2
|
+
|
|
3
|
+
**Figma node:** `66:2739`
|
|
4
|
+
**Frame name:** `Scenario/Studio Conversation/ Prelaunch`
|
|
5
|
+
**Dimensions:** 1728 × 1095px
|
|
6
|
+
|
|
7
|
+
## Screenshot
|
|
8
|
+
|
|
9
|
+
See Figma file: https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=66-2739
|
|
10
|
+
|
|
11
|
+
## Layout Overview
|
|
12
|
+
|
|
13
|
+
Three-column layout:
|
|
14
|
+
- **Left Side Nav** (285px) — logo, navigation menu (Dashboard, MyNotebook, Scenarios expanded, Help, Account), settings popover at bottom
|
|
15
|
+
- **Stage** (1089px) — dark background with centered Instructions Container (892×832px light card) + masthead breadcrumb (top-left) + clock (bottom-right)
|
|
16
|
+
- **Right Control Panel** (354px) — Studio Controls accordion (Scenario Settings, Audio Output, Microphone Output, A/V Recording, Display Timer, Hide Interviewers)
|
|
17
|
+
|
|
18
|
+
## Design Tokens Referenced
|
|
19
|
+
|
|
20
|
+
| Token | Value |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `--surfacecontainerhigh` | `#e8e9de` |
|
|
23
|
+
| `--neutral/90` | `#e3e3db` |
|
|
24
|
+
| `--neutral/99` | `#fdfcf5` |
|
|
25
|
+
| `--neutral/30` | `#464742` |
|
|
26
|
+
| `--neutral/0` (black) | `#000000` |
|
|
27
|
+
| `--secondary/50` | `#6c7d56` |
|
|
28
|
+
| `--secondary/80` | `#bbcda1` |
|
|
29
|
+
| `--primary/80` | `#97d945` |
|
|
30
|
+
| `--primary/99` | `#f9ffe9` |
|
|
31
|
+
| `--primary/10` | `#102000` |
|
|
32
|
+
| `--neutralvariant/95` | `#eff2e3` |
|
|
33
|
+
| `--surfacecontainer` | `#eeefe3` |
|
|
34
|
+
| Primary/500 | `#c5d24d` |
|
|
35
|
+
| Primary/Beginner/40% | `#c0d15c` (rgba 192,209,92 @ 0.4) |
|
|
36
|
+
| Accent/500 | `#b8a9c9` |
|
|
37
|
+
| Stone/60%/500 | `#f5f1eb` |
|
|
38
|
+
| Stone/60%/400 | `#faf8f5` |
|
|
39
|
+
|
|
40
|
+
## Typography
|
|
41
|
+
|
|
42
|
+
| Style | Font | Size | Weight |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| `headlineMedium` | Fraunces Regular | 28px | 400 |
|
|
45
|
+
| `bodyLarge` | Poppins Medium | 18px | 500 |
|
|
46
|
+
| `bodyLargeReg` | Poppins Regular | 18px | 400 |
|
|
47
|
+
| `bodyLargeSemiBold` | Poppins SemiBold | 18px | 600 |
|
|
48
|
+
| `bodyMedium` | Poppins Regular | 14px | 400 |
|
|
49
|
+
| Nav labels | Inter Regular | 18px | 400 |
|
|
50
|
+
| Nav active | Inter Medium | 18px | 500 |
|
|
51
|
+
| Accordion triggers | Inter Medium | 20px | 500 |
|
|
52
|
+
| H4 / Studio Controls heading | Georgia Bold | 24px | 700 |
|
|
53
|
+
|
|
54
|
+
## Reference Code (React + Tailwind — adapt to DDS stack)
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
const imgSwitch = "https://www.figma.com/api/mcp/asset/5ba7c547-f5a4-4f17-8f09-e04a275909ff";
|
|
58
|
+
const imgSwitch1 = "https://www.figma.com/api/mcp/asset/28ff3368-e259-43ac-a7ad-bbc059c90ba5";
|
|
59
|
+
const imgSvgRepoIconCarrier = "https://www.figma.com/api/mcp/asset/c069de08-e6c2-4996-b8be-5176345743a8";
|
|
60
|
+
const imgSvgRepoIconCarrier1 = "https://www.figma.com/api/mcp/asset/1de0753d-a69f-4d3f-a69b-6a6d8bcb8372";
|
|
61
|
+
const imgImage1 = "https://www.figma.com/api/mcp/asset/e170483c-7243-4701-99b4-8cf16ee9c681";
|
|
62
|
+
const imgIon = "https://www.figma.com/api/mcp/asset/8ab99acc-d215-48b8-9eb4-fd8fae010d51";
|
|
63
|
+
const imgDiscourser = "https://www.figma.com/api/mcp/asset/e9dfdce9-959f-4696-8151-64b8d246d279";
|
|
64
|
+
const imgVector = "https://www.figma.com/api/mcp/asset/7b8e41e2-39e6-4c64-99da-2a1bedaa74d4";
|
|
65
|
+
const imgVector1 = "https://www.figma.com/api/mcp/asset/85931475-fa2c-492d-9f40-782b0ea66b59";
|
|
66
|
+
const imgVector2 = "https://www.figma.com/api/mcp/asset/e2b3e34c-da79-4843-bf40-e27c6c383c4a";
|
|
67
|
+
const imgVector3 = "https://www.figma.com/api/mcp/asset/1ca19ae5-c371-4f13-96e5-87357a4e4bfa";
|
|
68
|
+
const imgVector4 = "https://www.figma.com/api/mcp/asset/8cf17490-bac2-47e8-91e1-5f13f2ad81d9";
|
|
69
|
+
const imgVector5 = "https://www.figma.com/api/mcp/asset/7652bd19-0771-4023-89cb-d922f3798001";
|
|
70
|
+
const imgGroup4890 = "https://www.figma.com/api/mcp/asset/cdd76732-2131-410c-8b07-869c0c3506f2";
|
|
71
|
+
const imgVector6 = "https://www.figma.com/api/mcp/asset/9f7fcde2-3767-4fdd-bfb4-cd8208f6a084";
|
|
72
|
+
const imgGroup4891 = "https://www.figma.com/api/mcp/asset/d83634da-5472-4cd8-823b-551dd00b299b";
|
|
73
|
+
const imgLucideIconsIterationCcw = "https://www.figma.com/api/mcp/asset/dff04cc2-e37a-4d16-bfee-b776ee8ad8e7";
|
|
74
|
+
const imgVector7 = "https://www.figma.com/api/mcp/asset/bc33d3a2-c3bf-47f6-b660-8c3be8c9739e";
|
|
75
|
+
const imgSlash = "https://www.figma.com/api/mcp/asset/7550709e-77c8-4cb1-99d2-4123a6aeec76";
|
|
76
|
+
const imgSlash1 = "https://www.figma.com/api/mcp/asset/4df9d906-bed0-40f0-8217-22b78869bb11";
|
|
77
|
+
const imgVector8 = "https://www.figma.com/api/mcp/asset/c8b8560d-f1a3-4aa1-9dc1-30e4d1552030";
|
|
78
|
+
const imgVector9 = "https://www.figma.com/api/mcp/asset/7607d809-5743-4a24-8f6e-3d36bf0e3798";
|
|
79
|
+
const imgVector10 = "https://www.figma.com/api/mcp/asset/bbbba732-154e-4eb7-b3ed-79a3f7c361ae";
|
|
80
|
+
const imgVector11 = "https://www.figma.com/api/mcp/asset/7284e075-60a7-4d59-a7e6-a4aa58a10536";
|
|
81
|
+
const imgVector12 = "https://www.figma.com/api/mcp/asset/27328160-56bd-4eb4-8124-556132f77e3b";
|
|
82
|
+
const imgVector13 = "https://www.figma.com/api/mcp/asset/73b441a5-4a96-44aa-9b3a-247bb6c0019d";
|
|
83
|
+
const imgIcon = "https://www.figma.com/api/mcp/asset/f2b6805c-8293-48ca-b6df-cd260a0b5689";
|
|
84
|
+
const imgVector14 = "https://www.figma.com/api/mcp/asset/3ef7f274-91a2-4b84-b90a-5bd2e8511b67";
|
|
85
|
+
const imgIcon1 = "https://www.figma.com/api/mcp/asset/6ce2a5c5-cfc2-4c69-af46-72bd18599be3";
|
|
86
|
+
const imgOutPutEq = "https://www.figma.com/api/mcp/asset/a4de206e-c3cb-49fc-a498-a2e198e0c2fa";
|
|
87
|
+
const imgSvgRepoIconCarrier2 = "https://www.figma.com/api/mcp/asset/e4ccc26d-912c-4377-abc9-7aadd9d8a654";
|
|
88
|
+
const imgSvgRepoIconCarrier3 = "https://www.figma.com/api/mcp/asset/38743fd0-a883-4c50-98bb-3852377798e6";
|
|
89
|
+
const imgSwitch2 = "https://www.figma.com/api/mcp/asset/f9afe819-5304-4b78-bec1-c86dfb69aedf";
|
|
90
|
+
const imgSvgRepoIconCarrier4 = "https://www.figma.com/api/mcp/asset/020ea92c-4738-454a-a669-6c9f25675ea0";
|
|
91
|
+
|
|
92
|
+
// NOTE: Asset URLs expire after 7 days from capture date (2026-03-27).
|
|
93
|
+
|
|
94
|
+
type DiscourserAiSwitchToggleProps = {
|
|
95
|
+
className?: string;
|
|
96
|
+
state?: "Default";
|
|
97
|
+
toggled?: boolean;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
function DiscourserAiSwitchToggle({ className, state = "Default", toggled = false }: DiscourserAiSwitchToggleProps) {
|
|
101
|
+
const isToggledAndDefault = toggled && state === "Default";
|
|
102
|
+
return (
|
|
103
|
+
<div className={className || `content-stretch flex h-[20px] items-center p-[2px] relative rounded-full shadow-sm w-[36px] ${isToggledAndDefault ? "bg-[#c5d24d] justify-end" : "bg-[rgba(192,209,92,0.4)]"}`}>
|
|
104
|
+
<div className="relative shrink-0 size-[16px]">
|
|
105
|
+
<div className="absolute inset-[-6.25%_-12.5%_-18.75%_-12.5%]">
|
|
106
|
+
<img alt="" className="block max-w-none size-full" src={isToggledAndDefault ? imgSwitch1 : imgSwitch} />
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function PopOver({ className }: { className?: string }) {
|
|
114
|
+
return (
|
|
115
|
+
<div className={className || "overflow-clip relative size-[40px]"}>
|
|
116
|
+
<div className="absolute inset-[12.96%_17.82%]">
|
|
117
|
+
<img alt="" className="absolute block max-w-none size-full" src={imgSvgRepoIconCarrier} />
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function SettingsPopover({ className }: { className?: string }) {
|
|
124
|
+
return (
|
|
125
|
+
<div className={className || "bg-[#eff2e3] border-[#e3e3db] border-solid border-t content-stretch flex flex-col items-start justify-center overflow-clip py-[6px] relative w-[285px]"}>
|
|
126
|
+
<div className="content-stretch flex gap-[12px] h-[55px] items-center px-[10px] relative shrink-0 w-[283px]">
|
|
127
|
+
<div className="bg-[#e3e3db] overflow-clip relative rounded-full shrink-0 size-[44px]">
|
|
128
|
+
{/* Avatar image */}
|
|
129
|
+
<img alt="" className="absolute block max-w-none size-full" src={imgSvgRepoIconCarrier1} />
|
|
130
|
+
</div>
|
|
131
|
+
<div className="content-stretch flex flex-col items-start leading-none relative shrink-0 w-[161px]">
|
|
132
|
+
<p className="font-medium text-[18px] text-[#30312c]">Will Streeter</p>
|
|
133
|
+
<p className="text-[14px] text-[#5e5f59]">Free Trial</p>
|
|
134
|
+
</div>
|
|
135
|
+
<PopOver className="overflow-clip relative shrink-0 size-[40px]" />
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export default function ScenarioStudioConversationPrelaunch({ className }: { className?: string }) {
|
|
142
|
+
return (
|
|
143
|
+
<div className={className || "bg-white h-[1095px] overflow-clip relative w-[1728px]"}>
|
|
144
|
+
<div className="absolute content-stretch flex h-[1095px] items-start left-0 overflow-clip top-0 w-[1728px]">
|
|
145
|
+
|
|
146
|
+
{/* ── Left Side Nav (285px) ─────────────────────────────────────────── */}
|
|
147
|
+
<div className="bg-[#e8e9de] border-[#e3e3db] border-r border-solid content-stretch flex flex-col h-full items-start overflow-clip relative shadow-md shrink-0 w-[285px]">
|
|
148
|
+
{/* Logo */}
|
|
149
|
+
<div className="content-stretch flex h-[92px] items-center justify-center py-[15px] relative shrink-0 w-full">
|
|
150
|
+
<div className="content-stretch flex h-[45px] items-center relative shrink-0 w-[262px]">
|
|
151
|
+
<img alt="ion" className="h-[34px] relative shrink-0 w-[19px]" src={imgIon} />
|
|
152
|
+
<img alt="Discourser" className="h-[34px] relative shrink-0 w-[235px]" src={imgDiscourser} />
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
{/* Navigation Menu */}
|
|
157
|
+
<div className="content-stretch cursor-pointer flex flex-col gap-px h-full items-start overflow-clip relative shrink-0 w-[283px]">
|
|
158
|
+
{/* Dashboard */}
|
|
159
|
+
<button className="content-stretch flex flex-col items-start overflow-clip p-[10px] relative shrink-0 w-full">
|
|
160
|
+
<div className="content-stretch flex items-center justify-between p-[5px] relative rounded-[8px] shrink-0 w-full">
|
|
161
|
+
<div className="content-stretch flex gap-[10px] items-center relative shrink-0">
|
|
162
|
+
<img alt="" className="size-[20px]" src={imgVector} />
|
|
163
|
+
<span className="text-[#363636] text-[18px]">Dashboard</span>
|
|
164
|
+
</div>
|
|
165
|
+
<img alt="" className="size-[24px]" src={imgVector1} />
|
|
166
|
+
</div>
|
|
167
|
+
</button>
|
|
168
|
+
|
|
169
|
+
{/* MyNotebook */}
|
|
170
|
+
<button className="content-stretch flex flex-col items-start overflow-clip p-[10px] relative shrink-0 w-full">
|
|
171
|
+
<div className="content-stretch flex items-center justify-between p-[5px] relative rounded-[8px] shrink-0 w-full">
|
|
172
|
+
<div className="content-stretch flex gap-[10px] items-center relative shrink-0">
|
|
173
|
+
<img alt="" className="size-[20px]" src={imgVector2} />
|
|
174
|
+
<span className="text-[#363636] text-[18px]">MyNotebook</span>
|
|
175
|
+
</div>
|
|
176
|
+
<img alt="" className="size-[24px]" src={imgVector1} />
|
|
177
|
+
</div>
|
|
178
|
+
</button>
|
|
179
|
+
|
|
180
|
+
{/* Scenarios (expanded, active) */}
|
|
181
|
+
<button className="content-stretch flex flex-col gap-[10px] items-start overflow-clip p-[10px] relative shrink-0 w-full">
|
|
182
|
+
<div className="bg-[#eeefe3] content-stretch flex items-center justify-between p-[5px] relative rounded-[8px] shrink-0 w-full">
|
|
183
|
+
<div className="content-stretch flex gap-[10px] items-center relative shrink-0">
|
|
184
|
+
<img alt="" className="size-[20px]" src={imgVector3} />
|
|
185
|
+
<span className="font-medium text-[#363636] text-[18px]">Scenarios</span>
|
|
186
|
+
</div>
|
|
187
|
+
{/* Chevron rotated 90deg = expanded */}
|
|
188
|
+
<div className="rotate-90"><img alt="" className="size-[24px]" src={imgVector1} /></div>
|
|
189
|
+
</div>
|
|
190
|
+
{/* Sub-items */}
|
|
191
|
+
<div className="pl-[30px] pr-[5px] py-[5px] rounded-[8px] w-[241px]">
|
|
192
|
+
<span className="font-medium text-[#363636] text-[16px]">MyQueue</span>
|
|
193
|
+
</div>
|
|
194
|
+
{/* Active sub-item */}
|
|
195
|
+
<div className="bg-[#bbcda1] pl-[30px] pr-[5px] py-[5px] rounded-[8px] w-[241px]">
|
|
196
|
+
<span className="font-medium text-[#363636] text-[16px]">Conversation Studio</span>
|
|
197
|
+
</div>
|
|
198
|
+
<div className="pl-[30px] pr-[5px] py-[5px] rounded-[8px] w-[241px]">
|
|
199
|
+
<span className="font-medium text-[#363636] text-[16px]">Studio Setup</span>
|
|
200
|
+
</div>
|
|
201
|
+
<div className="pl-[30px] pr-[5px] py-[5px] rounded-[8px] w-[241px]">
|
|
202
|
+
<span className="font-medium text-[#363636] text-[16px]">By Level</span>
|
|
203
|
+
</div>
|
|
204
|
+
<div className="pl-[30px] pr-[5px] py-[5px] rounded-[8px] w-[241px]">
|
|
205
|
+
<span className="font-medium text-[#363636] text-[16px]">By Skill</span>
|
|
206
|
+
</div>
|
|
207
|
+
</button>
|
|
208
|
+
|
|
209
|
+
{/* Help */}
|
|
210
|
+
<button className="content-stretch flex flex-col items-start overflow-clip p-[10px] relative shrink-0 w-full">
|
|
211
|
+
<div className="content-stretch flex items-center justify-between p-[5px] relative rounded-[8px] shrink-0 w-full">
|
|
212
|
+
<div className="content-stretch flex gap-[10px] items-center relative shrink-0">
|
|
213
|
+
<img alt="" className="size-[20px]" src={imgVector4} />
|
|
214
|
+
<span className="text-[#363636] text-[18px]">Help</span>
|
|
215
|
+
</div>
|
|
216
|
+
<img alt="" className="size-[24px]" src={imgVector1} />
|
|
217
|
+
</div>
|
|
218
|
+
</button>
|
|
219
|
+
|
|
220
|
+
{/* Account */}
|
|
221
|
+
<button className="content-stretch flex flex-col items-start overflow-clip p-[10px] relative shrink-0 w-full">
|
|
222
|
+
<div className="content-stretch flex items-center justify-between p-[5px] relative rounded-[8px] shrink-0 w-full">
|
|
223
|
+
<div className="content-stretch flex gap-[10px] items-center relative shrink-0">
|
|
224
|
+
<img alt="" className="size-[20px]" src={imgVector5} />
|
|
225
|
+
<span className="text-[#363636] text-[18px]">Account</span>
|
|
226
|
+
</div>
|
|
227
|
+
<img alt="" className="size-[24px]" src={imgVector1} />
|
|
228
|
+
</div>
|
|
229
|
+
</button>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
{/* Settings Popover — pinned to bottom */}
|
|
233
|
+
<SettingsPopover className="absolute bg-[#eff2e3] border-[#e3e3db] border-solid border-t content-stretch flex flex-col h-[67px] items-start justify-center left-0 overflow-clip py-[6px] top-[1025px] w-[285px]" />
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
{/* ── Stage (1089px) ───────────────────────────────────────────────── */}
|
|
237
|
+
<div className="bg-[#faf8f5] content-stretch flex flex-col gap-[10px] h-[1095px] items-start overflow-clip pb-[10px] pt-[100px] px-[100px] relative shrink-0 w-[1089px]">
|
|
238
|
+
{/* Dark background overlay */}
|
|
239
|
+
<div className="absolute bg-black h-[1095px] left-[-284px] top-0 w-[1723px]">
|
|
240
|
+
<div className="absolute h-[1162px] left-0 opacity-0 top-[-21px] w-[1728px]">
|
|
241
|
+
<img alt="" className="absolute inset-0 max-w-none object-cover size-full" src={imgImage1} />
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
{/* Instructions Container — centered light card */}
|
|
245
|
+
<div className="-translate-x-1/2 -translate-y-1/2 absolute bg-[#fdfcf5] border border-[#abaca5] border-solid content-stretch flex flex-col gap-[52px] h-[832px] items-center justify-center left-[calc(50%-28.72px)] overflow-clip px-[32px] py-[48px] rounded-[16px] top-[calc(50%+21.5px)] w-[892px]">
|
|
246
|
+
|
|
247
|
+
{/* Before You Start */}
|
|
248
|
+
<div className="content-stretch flex flex-col gap-[40px] items-start relative shrink-0 w-full">
|
|
249
|
+
<p className="font-['Fraunces'] font-normal text-[28px] text-[#1b1c18]">Before You Start:</p>
|
|
250
|
+
<ul className="flex flex-col gap-[30px] px-[10px] text-[#2e2e2e] text-[18px] list-disc pl-[27px]">
|
|
251
|
+
<li>Find a quiet space</li>
|
|
252
|
+
<li>Speak at normal volume and use headphones for best quality.</li>
|
|
253
|
+
<li>If you have not set up the audio output and microphone input, use the right panel to do so before you start</li>
|
|
254
|
+
</ul>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
{/* Once the Conversation Starts */}
|
|
258
|
+
<div className="content-stretch flex flex-col gap-[40px] items-start relative shrink-0 w-full">
|
|
259
|
+
<p className="font-['Fraunces'] font-normal text-[28px] text-[#191d14]">Once the Conversation Starts:</p>
|
|
260
|
+
<div className="content-stretch flex flex-col gap-[30px] items-start px-[10px]">
|
|
261
|
+
<div className="content-stretch flex gap-[10px] items-center">
|
|
262
|
+
<div className="bg-[#6c7d56] flex items-center justify-center p-[9px] rounded-full shrink-0 size-[47px]">
|
|
263
|
+
<img alt="pause" className="size-[28px]" src={imgGroup4890} />
|
|
264
|
+
</div>
|
|
265
|
+
<p className="text-[18px] text-[#30312c]">Tap pause on the bottom right panel if you feel compelled to stop for a moment</p>
|
|
266
|
+
</div>
|
|
267
|
+
<div className="content-stretch flex items-center">
|
|
268
|
+
<div className="bg-[#6c7d56] flex flex-col items-center justify-center rounded-full shrink-0 size-[47px]">
|
|
269
|
+
<img alt="exit" className="size-[28px]" src={imgGroup4891} />
|
|
270
|
+
</div>
|
|
271
|
+
<p className="text-[18px] text-[#30312c] ml-[10px]">Use the exit button to leave the conversation abruptly</p>
|
|
272
|
+
</div>
|
|
273
|
+
<div className="content-stretch flex items-center">
|
|
274
|
+
<button className="bg-[#6c7d56] block cursor-pointer rounded-full shrink-0 size-[47px] flex items-center justify-center">
|
|
275
|
+
<img alt="rewind" className="size-[37px]" src={imgLucideIconsIterationCcw} />
|
|
276
|
+
</button>
|
|
277
|
+
<p className="text-[18px] text-[#30312c] ml-[10px]">Use replay on the bottom right to hear the previous statement from your conversation partner</p>
|
|
278
|
+
</div>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
281
|
+
|
|
282
|
+
{/* CTA */}
|
|
283
|
+
<a className="bg-[#6c7d56] content-stretch cursor-pointer flex gap-[8px] h-[52px] items-center justify-center px-[16px] py-[8px] relative rounded-[8px] shadow-sm shrink-0 w-[352px]">
|
|
284
|
+
<span className="font-medium text-[18px] text-[#f9faef]">Start Scenario Conversation</span>
|
|
285
|
+
<img alt="" className="size-[20px]" src={imgVector7} />
|
|
286
|
+
</a>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
|
|
290
|
+
{/* Masthead / Breadcrumb — top-left */}
|
|
291
|
+
<div className="absolute bg-[#464742] border border-[#c7c7c0] border-solid content-stretch flex flex-col items-start left-[28.5px] p-[20px] rounded-[12px] top-[20px]">
|
|
292
|
+
<div className="content-stretch flex flex-col gap-[10px] items-start justify-center relative shrink-0 w-[417px]">
|
|
293
|
+
{/* Static breadcrumb */}
|
|
294
|
+
<div className="content-stretch flex items-start overflow-clip relative shrink-0">
|
|
295
|
+
<div className="content-stretch flex gap-[6px] items-center pl-[6px]">
|
|
296
|
+
<span className="text-[14px] text-[#f2f1e9]">Scenarios</span>
|
|
297
|
+
<img alt="/" className="h-[11px] w-[4px]" src={imgSlash} />
|
|
298
|
+
</div>
|
|
299
|
+
<div className="content-stretch flex gap-[6px] items-center px-[6px]">
|
|
300
|
+
<span className="text-[14px] text-[#fdfcf5]">Conversation Studio</span>
|
|
301
|
+
<img alt="/" className="h-[11px] w-[4px]" src={imgSlash1} />
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
{/* Dynamic breadcrumb — current page */}
|
|
305
|
+
<div className="content-stretch flex items-center overflow-clip">
|
|
306
|
+
<div className="flex gap-[2px] h-[36px] items-center pl-[6px] py-[6px] rounded-[4px]">
|
|
307
|
+
<span className="font-semibold text-[18px] text-[#97d945]">Level Setting</span>
|
|
308
|
+
</div>
|
|
309
|
+
<div className="flex gap-[2px] h-[36px] items-center p-[6px] rounded-[4px]">
|
|
310
|
+
<span className="font-semibold text-[18px] text-[#97d945]">Lobby</span>
|
|
311
|
+
</div>
|
|
312
|
+
<div className="flex gap-[2px] h-[36px] items-center pl-[6px] py-[6px] rounded-[4px]">
|
|
313
|
+
<span className="font-semibold text-[18px] text-[#f9ffe9]">Pre-conversation</span>
|
|
314
|
+
</div>
|
|
315
|
+
</div>
|
|
316
|
+
</div>
|
|
317
|
+
</div>
|
|
318
|
+
|
|
319
|
+
{/* Clock — bottom right of stage */}
|
|
320
|
+
<div className="absolute bg-[#102000] border border-black border-solid content-stretch flex items-center justify-center left-[950px] overflow-clip p-[16px] rounded-[12px] top-[1000px]">
|
|
321
|
+
<span className="font-semibold text-[18px] text-[#97d945] text-center w-[89px]">15:00</span>
|
|
322
|
+
</div>
|
|
323
|
+
</div>
|
|
324
|
+
|
|
325
|
+
{/* ── Right Control Panel (354px) ──────────────────────────────────── */}
|
|
326
|
+
<a className="bg-[#fdfcf5] border-[#e5e7eb] border-l border-solid content-stretch cursor-pointer flex flex-col h-full items-start overflow-clip pl-px relative rounded-[8px] shrink-0 w-[354px]">
|
|
327
|
+
{/* Header */}
|
|
328
|
+
<div className="border-[#e0dcd5] border-b border-solid h-[78px] shrink-0 sticky top-0 w-[353px]">
|
|
329
|
+
<div className="content-stretch flex items-center justify-between pb-px px-[24px] relative size-full">
|
|
330
|
+
<h2 className="font-['Georgia'] font-bold text-[24px] text-[#363636] text-center">Studio Controls</h2>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
{/* Accordion — Studio Controls sections */}
|
|
335
|
+
{/* NOTE: In the DDS implementation, use <StudioControls> component instead */}
|
|
336
|
+
<div className="bg-[#fdfcf5] relative shrink-0 w-[350px]">
|
|
337
|
+
{/* Scenario Settings accordion item */}
|
|
338
|
+
{/* Audio Output accordion item */}
|
|
339
|
+
{/* Microphone Output accordion item (note: DDS renames to "Microphone Input") */}
|
|
340
|
+
{/* A/V Recording accordion item */}
|
|
341
|
+
{/* Display Timer accordion item */}
|
|
342
|
+
{/* Hide Interviewers accordion item */}
|
|
343
|
+
{/* See StudioControls component for full implementation */}
|
|
344
|
+
</div>
|
|
345
|
+
</a>
|
|
346
|
+
|
|
347
|
+
</div>
|
|
348
|
+
</div>
|
|
349
|
+
);
|
|
350
|
+
}
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
## Notes for DDS Implementation
|
|
354
|
+
|
|
355
|
+
- The right panel maps 1:1 to `<StudioControls>` component
|
|
356
|
+
- Badge style for scenario complexity = `variant="rating"` with colorPalette primary/secondary/tertiary
|
|
357
|
+
- Slider thumb color in Figma is `#b8a9c9` (Accent/500) — not yet implemented in DDS slider
|
|
358
|
+
- Stage background image (`imgImage1`) has `opacity: 0` in design — intentionally hidden
|
|
359
|
+
- "Microphone Output" label in Figma is renamed to "Microphone Input" in DDS code
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<symbol id="66:2739" name="Scenario/Studio Conversation/ Prelaunch" x="4414" y="-1935" width="1728" height="1095" />
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
{
|
|
2
|
+
"auditTarget": "38:8232",
|
|
3
|
+
"auditNodeName": "Discourser Accordion",
|
|
4
|
+
"figmaFile": "GaHmFfmvO4loUzuZS4TgEz",
|
|
5
|
+
"auditDate": "2026-03-27",
|
|
6
|
+
"auditMethod": "derived-from-figma-mcp",
|
|
7
|
+
"auditNote": "The skill's audit script requires figma.getNodeByIdAsync() which only runs inside a Figma plugin sandbox — not accessible from Chrome DevTools console or any available MCP tool. This audit was derived from two sources: (1) mcp__figma-remote__get_variable_defs for the full variable binding inventory of the subtree, and (2) mcp__figma-remote__get_design_context for resolved hex values and CSS variable references. When get_design_context emits var(--varName, fallback) the fill is bound; when it emits a raw hex the fill may be unbound OR bound to a variable whose name Figma does not export as a CSS custom property (typically PascalCase/legacy names). Per-node binding detail is approximate; a Plugin-API run would give exact node-level boundVariables.",
|
|
8
|
+
|
|
9
|
+
"summary": {
|
|
10
|
+
"totalVariablesInSubtree": 47,
|
|
11
|
+
"confirmedDdsVariables": 5,
|
|
12
|
+
"confirmedNonDdsVariables": 13,
|
|
13
|
+
"confirmedUnboundColors": 4,
|
|
14
|
+
"confirmedNonDdsSpacingVariables": 9,
|
|
15
|
+
"confirmedNonDdsRadiiVariables": 2
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
"variableInventory": {
|
|
19
|
+
"note": "Full output of get_variable_defs for node 38:8232. Variables whose names match DDS Semantic / Primitives / Spacing & Shape conventions are marked ddsStatus=LIKELY_DDS. All others are LEGACY.",
|
|
20
|
+
"colors": [
|
|
21
|
+
{ "varName": "onprimary", "resolvedHex": "#ffffff", "ddsStatus": "LIKELY_DDS", "ddsCollection": "Semantic", "ddsMapping": "onPrimary" },
|
|
22
|
+
{ "varName": "primary/50", "resolvedHex": "#518500", "ddsStatus": "LIKELY_DDS", "ddsCollection": "Primitives", "ddsMapping": "primary/50" },
|
|
23
|
+
{ "varName": "primary/60", "resolvedHex": "#64a104", "ddsStatus": "LIKELY_DDS", "ddsCollection": "Primitives", "ddsMapping": "primary/60" },
|
|
24
|
+
{ "varName": "secondary/50", "resolvedHex": "#6c7d56", "ddsStatus": "LIKELY_DDS", "ddsCollection": "Primitives", "ddsMapping": "secondary/50" },
|
|
25
|
+
{ "varName": "neutral/99", "resolvedHex": "#fdfcf5", "ddsStatus": "LIKELY_DDS", "ddsCollection": "Primitives", "ddsMapping": "neutral/99" },
|
|
26
|
+
|
|
27
|
+
{ "varName": "Primary/700", "resolvedHex": "#6B7A1F", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/primary or Primitives/primary/70" },
|
|
28
|
+
{ "varName": "Primary/500", "resolvedHex": "#C5D24D", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/primaryContainer or Primitives/primary/50" },
|
|
29
|
+
{ "varName": "Primary/Beginner/40%", "resolvedHex": "#C0D15C", "ddsStatus": "LEGACY", "suggestedDdsVar": "Primitives/primary/40 (no opacity variant in DDS)" },
|
|
30
|
+
{ "varName": "Primary/400/60%", "resolvedHex": "#C0D15C", "ddsStatus": "LEGACY", "suggestedDdsVar": "Primitives/primary/40 (no opacity variant in DDS)" },
|
|
31
|
+
{ "varName": "Black/Neutral/30%/600","resolvedHex": "#363636", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/onSurface" },
|
|
32
|
+
{ "varName": "Black/Neutral/30%/700","resolvedHex": "#2E2E2E", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/onBackground" },
|
|
33
|
+
{ "varName": "Stone/60%/500", "resolvedHex": "#F5F1EB", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/outline/variant or Semantic/surfaceVariant" },
|
|
34
|
+
{ "varName": "Gray/Neutral/30%/500", "resolvedHex": "#E0DCD5", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/surfaceVariant" },
|
|
35
|
+
{ "varName": "Accent/500", "resolvedHex": "#B8A9C9", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/tertiary" },
|
|
36
|
+
{ "varName": "Accent/400", "resolvedHex": "#CFC4DB", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/tertiaryContainer" },
|
|
37
|
+
{ "varName": "Accent/600", "resolvedHex": "#8D7EA3", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/onTertiaryContainer" },
|
|
38
|
+
{ "varName": "Accent/300", "resolvedHex": "#E5DFEC", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/tertiary/container (light)" },
|
|
39
|
+
{ "varName": "Accent/700", "resolvedHex": "#6B5A7D", "ddsStatus": "LEGACY", "suggestedDdsVar": "Semantic/onTertiary" }
|
|
40
|
+
],
|
|
41
|
+
"spacing": [
|
|
42
|
+
{ "varName": "p-0", "resolvedPx": 0, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/none" },
|
|
43
|
+
{ "varName": "p-0,5", "resolvedPx": 2, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/xxs" },
|
|
44
|
+
{ "varName": "p-1", "resolvedPx": 4, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/xs" },
|
|
45
|
+
{ "varName": "p-1,5", "resolvedPx": 6, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/xs (closest)" },
|
|
46
|
+
{ "varName": "p-2", "resolvedPx": 8, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/sm" },
|
|
47
|
+
{ "varName": "p-2,5", "resolvedPx": 10, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/sm (closest, no 10px DDS token)" },
|
|
48
|
+
{ "varName": "p-3", "resolvedPx": 12, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/sm (closest)" },
|
|
49
|
+
{ "varName": "p-4", "resolvedPx": 16, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/md" },
|
|
50
|
+
{ "varName": "p-4", "resolvedPx": 16, "ddsStatus": "LEGACY", "suggestedDdsVar": "spacing/md" }
|
|
51
|
+
],
|
|
52
|
+
"radii": [
|
|
53
|
+
{ "varName": "calc(var(--radius) - 2px)", "resolvedPx": 8, "ddsStatus": "LEGACY", "suggestedDdsVar": "radii/extraSmall (6px) or radii/small — no 8px DDS radii token" },
|
|
54
|
+
{ "varName": "radius/rounded-full", "resolvedPx": 9999, "ddsStatus": "LIKELY_DDS", "suggestedDdsVar": "radii/full" }
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
"unboundColors": {
|
|
59
|
+
"note": "Hex values seen in get_design_context output that do NOT appear in get_variable_defs. These are fully unbound — no variable binding at all.",
|
|
60
|
+
"items": [
|
|
61
|
+
{
|
|
62
|
+
"hex": "#fffdfa",
|
|
63
|
+
"opacity": 1,
|
|
64
|
+
"context": "Fill on panel bg inside Info Panel (node I38:8233;38:8145)",
|
|
65
|
+
"usedAs": "background",
|
|
66
|
+
"suggestedDdsVar": "Semantic/surface or Semantic/background"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"hex": "#e5e7eb",
|
|
70
|
+
"opacity": 1,
|
|
71
|
+
"context": "Stroke/border on Info Panel content container (node I38:8233;38:8145)",
|
|
72
|
+
"usedAs": "stroke",
|
|
73
|
+
"suggestedDdsVar": "Semantic/outline/variant"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"hex": "#4a5565",
|
|
77
|
+
"opacity": 1,
|
|
78
|
+
"context": "Text fill on secondary body text inside Info Panel (node I38:8233;38:8145;38:8212)",
|
|
79
|
+
"usedAs": "text-fill",
|
|
80
|
+
"suggestedDdsVar": "Semantic/onSurfaceVariant"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"hex": "rgba(26,26,26,0.05)",
|
|
84
|
+
"opacity": 0.05,
|
|
85
|
+
"context": "Shadow color on Slider thumb, Discourser Button, Switch (shadow/2xs and shadow/md effects)",
|
|
86
|
+
"usedAs": "drop-shadow-color",
|
|
87
|
+
"note": "Shadow effects — not a fill. shadow/2xs and shadow/md variables exist but the shadow color itself (#1a1a1a) is not bound to a variable.",
|
|
88
|
+
"suggestedDdsVar": "No current DDS shadow color token — use Semantic/shadow or define one"
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
"flagged": [
|
|
94
|
+
{
|
|
95
|
+
"id": "38:8233",
|
|
96
|
+
"name": "Discourse Accordion Item (Info Panel)",
|
|
97
|
+
"type": "FRAME",
|
|
98
|
+
"unboundFills": [
|
|
99
|
+
{ "index": 0, "hex": "#fffdfa", "opacity": 1, "location": "panel bg (node I38:8233;38:8145)", "note": "Truly unbound — not in variable_defs" }
|
|
100
|
+
],
|
|
101
|
+
"unboundStrokes": [
|
|
102
|
+
{ "index": 0, "hex": "#e5e7eb", "location": "panel border (node I38:8233;38:8145)", "note": "Truly unbound — not in variable_defs" },
|
|
103
|
+
{ "index": 0, "hex": "#f5f1eb", "location": "accordion item bottom border", "note": "Bound to LEGACY var Stone/60%/500 — rebind to Semantic/outline/variant" }
|
|
104
|
+
],
|
|
105
|
+
"unboundText": {
|
|
106
|
+
"content": "Focus: Technical Communication",
|
|
107
|
+
"colorHex": "#4a5565",
|
|
108
|
+
"note": "Truly unbound — not in variable_defs. Suggested: Semantic/onSurfaceVariant"
|
|
109
|
+
},
|
|
110
|
+
"nonDdsBoundFills": [
|
|
111
|
+
{ "varName": "Black/Neutral/30%/600", "hex": "#363636", "location": "trigger label + body text", "suggestedDdsVar": "Semantic/onSurface" },
|
|
112
|
+
{ "varName": "Black/Neutral/30%/700", "hex": "#2E2E2E", "location": "badge text labels", "suggestedDdsVar": "Semantic/onBackground" },
|
|
113
|
+
{ "varName": "Stone/60%/500", "hex": "#F5F1EB", "location": "settings list container bg + item divider border", "suggestedDdsVar": "Semantic/surfaceVariant" },
|
|
114
|
+
{ "varName": "Primary/Beginner/40%", "hex": "#C0D15C", "location": "badge backgrounds (4 badges)", "suggestedDdsVar": "Primitives/primary/40 (no opacity in DDS — may need new token)" }
|
|
115
|
+
],
|
|
116
|
+
"unboundCornerRadius": null,
|
|
117
|
+
"unboundSpacing": {
|
|
118
|
+
"paddingTop": 16, "paddingBottom": 16, "paddingLeft": 20, "paddingRight": 20,
|
|
119
|
+
"note": "Bound to LEGACY p-4 (16px) and custom 20px. p-4 → spacing/md; 20px has no DDS token"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "38:8234",
|
|
124
|
+
"name": "Discourse Accordion Item (Audio Output Panel)",
|
|
125
|
+
"type": "FRAME",
|
|
126
|
+
"unboundFills": [],
|
|
127
|
+
"unboundStrokes": [
|
|
128
|
+
{ "index": 0, "hex": "#f5f1eb", "location": "accordion item bottom border", "note": "Bound to LEGACY var Stone/60%/500 — rebind to Semantic/outline/variant" }
|
|
129
|
+
],
|
|
130
|
+
"unboundText": null,
|
|
131
|
+
"nonDdsBoundFills": [
|
|
132
|
+
{ "varName": "Black/Neutral/30%/600", "hex": "#363636", "location": "trigger label text", "suggestedDdsVar": "Semantic/onSurface" },
|
|
133
|
+
{ "varName": "Gray/Neutral/30%/500", "hex": "#E0DCD5", "location": "slider track background", "suggestedDdsVar": "Semantic/surfaceVariant" },
|
|
134
|
+
{ "varName": "Primary/700", "hex": "#6B7A1F", "location": "slider range fill", "suggestedDdsVar": "Semantic/primary" },
|
|
135
|
+
{ "varName": "Accent/500", "hex": "#B8A9C9", "location": "slider thumb background", "suggestedDdsVar": "Semantic/tertiary" },
|
|
136
|
+
{ "varName": "Accent/400", "hex": "#CFC4DB", "location": "slider thumb border", "suggestedDdsVar": "Semantic/tertiaryContainer" }
|
|
137
|
+
],
|
|
138
|
+
"unboundCornerRadius": null,
|
|
139
|
+
"unboundSpacing": {
|
|
140
|
+
"paddingTop": 20, "paddingBottom": 20,
|
|
141
|
+
"note": "20px padding has no DDS spacing token. Closest: spacing/lg or define spacing/xl"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "38:8235",
|
|
146
|
+
"name": "Discourse Accordion Item (EQ & Slider container)",
|
|
147
|
+
"type": "FRAME",
|
|
148
|
+
"unboundFills": [],
|
|
149
|
+
"unboundStrokes": [
|
|
150
|
+
{ "index": 0, "hex": "#f5f1eb", "location": "accordion item bottom border", "note": "Bound to LEGACY var Stone/60%/500 — rebind to Semantic/outline/variant" }
|
|
151
|
+
],
|
|
152
|
+
"unboundText": null,
|
|
153
|
+
"nonDdsBoundFills": [
|
|
154
|
+
{ "varName": "Black/Neutral/30%/600", "hex": "#363636", "location": "trigger label text", "suggestedDdsVar": "Semantic/onSurface" },
|
|
155
|
+
{ "varName": "Gray/Neutral/30%/500", "hex": "#E0DCD5", "location": "mic gain slider track", "suggestedDdsVar": "Semantic/surfaceVariant" },
|
|
156
|
+
{ "varName": "Primary/700", "hex": "#6B7A1F", "location": "mic gain slider range fill", "suggestedDdsVar": "Semantic/primary" },
|
|
157
|
+
{ "varName": "Accent/500", "hex": "#B8A9C9", "location": "mic gain slider thumb background", "suggestedDdsVar": "Semantic/tertiary" },
|
|
158
|
+
{ "varName": "Accent/400", "hex": "#CFC4DB", "location": "mic gain slider thumb border", "suggestedDdsVar": "Semantic/tertiaryContainer" }
|
|
159
|
+
],
|
|
160
|
+
"unboundCornerRadius": null,
|
|
161
|
+
"unboundSpacing": null
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "38:8236",
|
|
165
|
+
"name": "Discourse Accordion Item (A/V Record)",
|
|
166
|
+
"type": "FRAME",
|
|
167
|
+
"unboundFills": [],
|
|
168
|
+
"unboundStrokes": [
|
|
169
|
+
{ "index": 0, "hex": "#f5f1eb", "location": "accordion item bottom border", "note": "Bound to LEGACY var Stone/60%/500 — rebind to Semantic/outline/variant" }
|
|
170
|
+
],
|
|
171
|
+
"unboundText": null,
|
|
172
|
+
"nonDdsBoundFills": [
|
|
173
|
+
{ "varName": "Black/Neutral/30%/600", "hex": "#363636", "location": "trigger label + radio item labels", "suggestedDdsVar": "Semantic/onSurface" },
|
|
174
|
+
{ "varName": "Primary/500", "hex": "#C5D24D", "location": "radio button selected fill", "suggestedDdsVar": "Semantic/primary or Semantic/primaryContainer" },
|
|
175
|
+
{ "varName": "Accent/500", "hex": "#B8A9C9", "location": "radio button selected border", "suggestedDdsVar": "Semantic/tertiary" }
|
|
176
|
+
],
|
|
177
|
+
"unboundCornerRadius": null,
|
|
178
|
+
"unboundSpacing": null
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"id": "38:8237",
|
|
182
|
+
"name": "Discourse Accordion Item (Show Timer)",
|
|
183
|
+
"type": "FRAME",
|
|
184
|
+
"unboundFills": [],
|
|
185
|
+
"unboundStrokes": [
|
|
186
|
+
{ "index": 0, "hex": "#f5f1eb", "location": "accordion item bottom border", "note": "Bound to LEGACY var Stone/60%/500 — rebind to Semantic/outline/variant" }
|
|
187
|
+
],
|
|
188
|
+
"unboundText": null,
|
|
189
|
+
"nonDdsBoundFills": [
|
|
190
|
+
{ "varName": "Black/Neutral/30%/600", "hex": "#363636", "location": "trigger label + description text", "suggestedDdsVar": "Semantic/onSurface" },
|
|
191
|
+
{ "varName": "Primary/Beginner/40%", "hex": "#C0D15C", "location": "switch track (OFF state bg)", "suggestedDdsVar": "Semantic/primaryContainer (no opacity variant in DDS)" }
|
|
192
|
+
],
|
|
193
|
+
"unboundCornerRadius": null,
|
|
194
|
+
"unboundSpacing": null
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"id": "38:8238",
|
|
198
|
+
"name": "Discourse Accordion Item (Hide Interview)",
|
|
199
|
+
"type": "FRAME",
|
|
200
|
+
"unboundFills": [],
|
|
201
|
+
"unboundStrokes": [
|
|
202
|
+
{ "index": 0, "hex": "#f5f1eb", "location": "accordion item bottom border", "note": "Bound to LEGACY var Stone/60%/500 — rebind to Semantic/outline/variant" }
|
|
203
|
+
],
|
|
204
|
+
"unboundText": null,
|
|
205
|
+
"nonDdsBoundFills": [
|
|
206
|
+
{ "varName": "Black/Neutral/30%/600", "hex": "#363636", "location": "trigger label + description text", "suggestedDdsVar": "Semantic/onSurface" },
|
|
207
|
+
{ "varName": "Primary/500", "hex": "#C5D24D", "location": "switch track (ON state bg)", "suggestedDdsVar": "Semantic/primary" }
|
|
208
|
+
],
|
|
209
|
+
"unboundCornerRadius": null,
|
|
210
|
+
"unboundSpacing": null
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
|
|
214
|
+
"sharedFindings": {
|
|
215
|
+
"triggerChevronIcon": {
|
|
216
|
+
"nodePattern": "I38:82XX;38:81XX;2706:13883",
|
|
217
|
+
"vectorStrokeHex": "#363636",
|
|
218
|
+
"varName": "Black/Neutral/30%/600",
|
|
219
|
+
"ddsStatus": "LEGACY",
|
|
220
|
+
"suggestedDdsVar": "Semantic/onSurface",
|
|
221
|
+
"appearsIn": "all 6 accordion triggers"
|
|
222
|
+
},
|
|
223
|
+
"actionButtons": {
|
|
224
|
+
"infoPanel": {
|
|
225
|
+
"bgVarName": "secondary/50",
|
|
226
|
+
"bgHex": "#6c7d56",
|
|
227
|
+
"textVarName": "onprimary",
|
|
228
|
+
"textHex": "#ffffff",
|
|
229
|
+
"ddsStatus": "LIKELY_DDS",
|
|
230
|
+
"note": "CSS var syntax confirmed in design context — possibly already DDS-bound"
|
|
231
|
+
},
|
|
232
|
+
"audioMicrophoneSliders": {
|
|
233
|
+
"bgVarName": "primary/50",
|
|
234
|
+
"bgHex": "#518500",
|
|
235
|
+
"textVarName": "onprimary",
|
|
236
|
+
"textHex": "#ffffff",
|
|
237
|
+
"ddsStatus": "LIKELY_DDS",
|
|
238
|
+
"note": "CSS var syntax confirmed in design context — possibly already DDS-bound"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
|
|
243
|
+
"tokenGapFindings": {
|
|
244
|
+
"note": "Colors/values used in this frame that have no direct DDS token equivalent. These require either a new DDS token definition or a design decision to substitute the nearest existing token.",
|
|
245
|
+
"items": [
|
|
246
|
+
{
|
|
247
|
+
"value": "rgba(192, 209, 92, 0.4)",
|
|
248
|
+
"usedFor": "Badge bg, Switch OFF track",
|
|
249
|
+
"currentVar": "Primary/Beginner/40% / Primary/400/60%",
|
|
250
|
+
"gap": "DDS has no semi-transparent primary tint token. Options: (1) Add Semantic/primaryContainer, (2) add a new Primitives tint token, (3) use primaryContainer and accept different opacity"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"value": "20px padding",
|
|
254
|
+
"usedFor": "Panel horizontal padding across all items",
|
|
255
|
+
"gap": "DDS Spacing & Shape has spacing/md=16px and spacing/lg — no 20px token. Either add spacing/lg=20px or accept spacing/md."
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"value": "6px border-radius (on accordion item panel card)",
|
|
259
|
+
"usedFor": "Info panel card radius",
|
|
260
|
+
"gap": "DDS has radii/extraSmall=6px — this token EXISTS and should be used."
|
|
261
|
+
}
|
|
262
|
+
]
|
|
263
|
+
}
|
|
264
|
+
}
|