@discourser/design-system 0.24.0 → 0.25.1
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 +420 -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 +61 -0
- package/src/components/SettingsPopover/SettingsPopover.figma.tsx +17 -0
- package/src/components/Slider.figma.tsx +66 -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 +49 -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,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Figma MCP — get_design_context result
|
|
3
|
+
* Node: 38:8232 "Discourser Accordion"
|
|
4
|
+
* File: GaHmFfmvO4loUzuZS4TgEz (Discourser.AI--V1)
|
|
5
|
+
* Fetched: 2026-03-27
|
|
6
|
+
*
|
|
7
|
+
* Raw reference output from figma-remote MCP.
|
|
8
|
+
* Do NOT ship this file — it is a design-to-token mapping artifact.
|
|
9
|
+
* Asset URLs expire after 7 days.
|
|
10
|
+
*
|
|
11
|
+
* ── Design tokens observed ──────────────────────────────────────────────────
|
|
12
|
+
* Primary/700 #6B7A1F → primary.7 / slider range fill
|
|
13
|
+
* Primary/500 #C5D24D → switch (toggled-on bg)
|
|
14
|
+
* Primary/Beginner/40% #C0D15C → badge bg (rgba 40%) → inversePrimary
|
|
15
|
+
* Black/Neutral/600 #363636 → onSurface
|
|
16
|
+
* Black/Neutral/700 #2E2E2E → onSurface.strong
|
|
17
|
+
* Stone/60%/500 #F5F1EB → surface.container / divider
|
|
18
|
+
* Accent/500 #B8A9C9 → slider thumb bg → tertiary.7-ish
|
|
19
|
+
* Accent/400 #CFC4DB → slider thumb border → tertiary.6
|
|
20
|
+
* Gray/Neutral/500 #E0DCD5 → slider track bg → surface.container.high
|
|
21
|
+
* Neutral/99 #FDFCF5 → root bg → neutral.1
|
|
22
|
+
* Secondary/50 #6C7D56 → "Beginner" button bg → secondary.7
|
|
23
|
+
* ────────────────────────────────────────────────────────────────────────────
|
|
24
|
+
*
|
|
25
|
+
* ── Sections in this frame ───────────────────────────────────────────────────
|
|
26
|
+
* 1. Scenario Settings (38:8233) — info panel, scenario metadata, 4 setting badges, Beginner button
|
|
27
|
+
* 2. Audio Output (38:8234) — header + horizontal slider (volume)
|
|
28
|
+
* 3. Microphone Output (38:8235) — header + EQ waveform image + horizontal slider (mic gain)
|
|
29
|
+
* 4. A/V Recording (855:5501 + 38:8236) — radio group: "Record just audio" | "Record video & audio"
|
|
30
|
+
* 5. Display timer (38:8237) — label text + switch toggle (off state)
|
|
31
|
+
* 6. Hide Interviewers (38:8238) — label text + switch toggle (on state / #C5D24D)
|
|
32
|
+
* ────────────────────────────────────────────────────────────────────────────
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
// ── Asset URLs (expire 7 days from fetch) ────────────────────────────────────
|
|
36
|
+
const imgSwitch = "https://www.figma.com/api/mcp/asset/0ad2e446-bd71-4fa0-a52b-728a7b7c7702"; // switch thumb off
|
|
37
|
+
const imgSwitch1 = "https://www.figma.com/api/mcp/asset/926a02cc-5061-4a9f-8244-a9c2e9da45ae"; // switch thumb on
|
|
38
|
+
const imgVector = "https://www.figma.com/api/mcp/asset/6f36a7cc-ee48-428b-a5aa-ba978ee56447"; // settings icon path 1
|
|
39
|
+
const imgVector1 = "https://www.figma.com/api/mcp/asset/7e70f9ac-f7ec-418c-8f7c-aaf946b63a5e"; // settings icon path 2
|
|
40
|
+
const imgVector2 = "https://www.figma.com/api/mcp/asset/169703cd-faa9-4938-a391-8978c3c3a979"; // settings icon path 3
|
|
41
|
+
const imgVector3 = "https://www.figma.com/api/mcp/asset/685d0bb2-782e-4db2-9aba-cb1f45729a70"; // settings icon path 4
|
|
42
|
+
const imgVector4 = "https://www.figma.com/api/mcp/asset/41f6f9f5-8cea-4dd0-a457-8a9de226ca74"; // chevron-down
|
|
43
|
+
const imgVector5 = "https://www.figma.com/api/mcp/asset/ee0ad121-06c4-4cc5-9e8a-2165e35ba545"; // expand icon
|
|
44
|
+
const imgIcon = "https://www.figma.com/api/mcp/asset/cea740af-b24e-479b-be68-7f710c43a752"; // audio output icon
|
|
45
|
+
const imgVector6 = "https://www.figma.com/api/mcp/asset/18b02bed-7a3e-46f0-a8bf-cece9cc7ddfb"; // stretch-horizontal (slider handle)
|
|
46
|
+
const imgIcon1 = "https://www.figma.com/api/mcp/asset/0ded2560-8390-4614-8c6c-317acf0624a7"; // microphone icon
|
|
47
|
+
const imgOutPutEq = "https://www.figma.com/api/mcp/asset/1ad57072-a794-4e83-91e8-64b75aa5e01d"; // EQ waveform
|
|
48
|
+
const imgSvgRepoIconCarrier = "https://www.figma.com/api/mcp/asset/115171e8-478c-4fd4-b430-b0d7d4a30e8b"; // record icon
|
|
49
|
+
const imgSvgRepoIconCarrier1 = "https://www.figma.com/api/mcp/asset/82ce3d19-76f5-4167-a246-93578a7fe913"; // timer icon
|
|
50
|
+
const imgSwitch2 = "https://www.figma.com/api/mcp/asset/34a69f9a-b025-4d5c-9c8b-4d7c71a639e7"; // switch thumb (display timer, off)
|
|
51
|
+
const imgSvgRepoIconCarrier2 = "https://www.figma.com/api/mcp/asset/6f9e3426-69be-48b5-bec5-c7a98d37f351"; // screen-view icon
|
|
52
|
+
|
|
53
|
+
// ── Raw generated code (Tailwind/React — reference only, adapt to DDS) ───────
|
|
54
|
+
|
|
55
|
+
type DiscourserAiSwitchToggleProps = {
|
|
56
|
+
className?: string;
|
|
57
|
+
state?: "Default";
|
|
58
|
+
toggled?: boolean;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
function DiscourserAiSwitchToggle({ className, state = "Default", toggled = false }: DiscourserAiSwitchToggleProps) {
|
|
62
|
+
const isToggledAndDefault = toggled && state === "Default";
|
|
63
|
+
return (
|
|
64
|
+
<div
|
|
65
|
+
className={
|
|
66
|
+
className ||
|
|
67
|
+
`content-stretch flex h-[var(--height/h-5,20px)] items-center p-[var(--p-0\\,5,2px)] relative rounded-[var(--radius/rounded-full,9999px)] shadow-[...] w-[var(--width/w-9,36px)] ${
|
|
68
|
+
isToggledAndDefault ? "bg-[#c5d24d] justify-end" : "bg-[rgba(192,209,92,0.4)]"
|
|
69
|
+
}`
|
|
70
|
+
}
|
|
71
|
+
id={isToggledAndDefault ? "node-38_8126" : "node-38_8122"}
|
|
72
|
+
>
|
|
73
|
+
<div className="relative shrink-0 size-[16px]" data-name="Switch" id={isToggledAndDefault ? "node-38_8127" : "node-38_8123"}>
|
|
74
|
+
<div className="absolute inset-[-6.25%_-12.5%_-18.75%_-12.5%]">
|
|
75
|
+
<img alt="" className="block max-w-none size-full" src={isToggledAndDefault ? imgSwitch1 : imgSwitch} />
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export default function DiscourserAccordion({ className }: { className?: string }) {
|
|
83
|
+
return (
|
|
84
|
+
<div
|
|
85
|
+
className={className || "bg-[var(--neutral\\/99,#fdfcf5)] content-stretch cursor-pointer flex flex-col h-[1695px] items-start relative w-[350px]"}
|
|
86
|
+
data-name="Discourser Accordion"
|
|
87
|
+
data-node-id="38:8232"
|
|
88
|
+
>
|
|
89
|
+
{/* ── Section 1: Scenario Settings ──────────────────────────────────── */}
|
|
90
|
+
<button
|
|
91
|
+
className="border-[#f5f1eb] border-b border-solid content-stretch flex flex-col gap-[var(--p-0,0px)] items-center justify-center relative shrink-0 w-full"
|
|
92
|
+
data-name="Discourse Accordion Item (Info Panel)"
|
|
93
|
+
data-node-id="38:8233"
|
|
94
|
+
>
|
|
95
|
+
{/* AccordionTrigger */}
|
|
96
|
+
<div className="content-stretch flex gap-[var(--p-4,16px)] items-center justify-center px-[20px] py-[var(--p-4,16px)] relative shrink-0 w-full" data-node-id="I38:8233;38:8141">
|
|
97
|
+
{/* icon- Configure Settings (40×40 multi-vector) */}
|
|
98
|
+
<div className="overflow-clip relative shrink-0 size-[40px]" data-node-id="I38:8233;38:8142">
|
|
99
|
+
<div className="absolute bottom-3/4 left-[33.33%] right-[33.33%] top-[8.33%]"><div className="absolute inset-[-18.75%_-9.38%]"><img alt="" className="block max-w-none size-full" src={imgVector} /></div></div>
|
|
100
|
+
<div className="absolute inset-[16.67%_16.67%_8.33%_16.67%]"><div className="absolute inset-[-3.33%_-3.75%]"><img alt="" className="block max-w-none size-full" src={imgVector1} /></div></div>
|
|
101
|
+
<div className="absolute bottom-[54.17%] left-1/2 right-[33.33%] top-[45.83%]"><div className="absolute inset-[-1px_-15%]"><img alt="" className="block max-w-none size-full" src={imgVector2} /></div></div>
|
|
102
|
+
<div className="absolute bottom-[33.33%] left-1/2 right-[33.33%] top-[66.67%]"><div className="absolute inset-[-1px_-15%]"><img alt="" className="block max-w-none size-full" src={imgVector2} /></div></div>
|
|
103
|
+
<div className="absolute inset-[45.83%_66.62%_54.17%_33.33%]"><div className="absolute inset-[-1px_-5999.86%]"><img alt="" className="block max-w-none size-full" src={imgVector3} /></div></div>
|
|
104
|
+
<div className="absolute inset-[66.67%_66.62%_33.33%_33.33%]"><div className="absolute inset-[-1px_-5999.86%]"><img alt="" className="block max-w-none size-full" src={imgVector3} /></div></div>
|
|
105
|
+
</div>
|
|
106
|
+
<p className="flex-[1_0_0] font-medium leading-normal not-italic overflow-hidden relative text-[#363636] text-[20px] text-ellipsis text-left whitespace-nowrap">Scenario Settings</p>
|
|
107
|
+
<div className="overflow-clip relative shrink-0 size-[24px]"><div className="absolute bottom-[37.5%] left-1/4 right-1/4 top-[37.5%]"><div className="absolute inset-[-20.83%_-10.42%]"><img alt="" className="block max-w-none size-full" src={imgVector4} /></div></div></div>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
{/* panel- Information Slot Contents */}
|
|
111
|
+
<div className="bg-[#fffdfa] border border-[#e5e7eb] border-solid flex flex-col gap-[26px] items-start p-[20px] rounded-[6px]" data-node-id="I38:8233;38:8145">
|
|
112
|
+
{/* Scenario type: name + focus */}
|
|
113
|
+
<div className="flex flex-col gap-[8px] items-start" data-node-id="I38:8233;38:8145;38:8208">
|
|
114
|
+
<p className="font-medium text-[#363636] text-[20px]">UX Interview Practice</p>
|
|
115
|
+
<p className="font-normal text-[#4a5565] text-[0px]">
|
|
116
|
+
<span className="font-medium text-[#2e2e2e] text-[18px]">Focus</span>
|
|
117
|
+
<span className="text-[#363636] text-[18px]">: Technical Communication</span>
|
|
118
|
+
</p>
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
{/* Scenario Settings heading + badge grid */}
|
|
122
|
+
<div className="flex flex-col gap-[16px]" data-node-id="I38:8233;38:8145;38:8213">
|
|
123
|
+
<p className="font-medium text-[#363636] text-[20px]">Scenario Settings</p>
|
|
124
|
+
{/* Interviewer Settings — stone bg, 4 rows of label + badge */}
|
|
125
|
+
<div className="bg-[#f5f1eb] flex flex-col items-center justify-center px-[20px] py-[10px] rounded-[8px]" data-node-id="I38:8233;38:8145;38:8216">
|
|
126
|
+
<div className="flex flex-col gap-[10px] items-start" data-node-id="I38:8233;38:8145;38:8217">
|
|
127
|
+
{[
|
|
128
|
+
{ label: "Conversation Flow:", nodeId: "I38:8233;38:8145;38:8218" },
|
|
129
|
+
{ label: "Question Complexity:", nodeId: "I38:8233;38:8145;38:8221" },
|
|
130
|
+
{ label: "Response Pacing:", nodeId: "I38:8233;38:8145;38:8224" },
|
|
131
|
+
{ label: "Interview Tone:", nodeId: "I38:8233;38:8145;38:8227" },
|
|
132
|
+
].map(({ label, nodeId }) => (
|
|
133
|
+
<div key={nodeId} className="flex gap-[2px] items-center w-full" data-node-id={nodeId}>
|
|
134
|
+
<p className="flex-1 font-medium text-[#363636] text-[16px]">{label} </p>
|
|
135
|
+
{/* Badge: bg rgba(192,209,92,0.4) ≈ inversePrimary @40% */}
|
|
136
|
+
<div className="bg-[rgba(192,209,92,0.4)] flex gap-[4px] items-center justify-center overflow-clip px-[10px] py-[4px] rounded-[8px]">
|
|
137
|
+
<p className="font-normal text-[#2e2e2e] text-[14px]">Beginner</p>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
))}
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
{/* Control bar — "Beginner" button */}
|
|
146
|
+
<div className="flex items-center justify-end w-full" data-node-id="I38:8233;38:8145;38:8230">
|
|
147
|
+
{/* bg secondary/50 ≈ secondary.7 */}
|
|
148
|
+
<div className="bg-[#6c7d56] flex gap-[8px] items-end justify-end px-[16px] py-[8px] rounded-[8px] shadow-sm" data-node-id="I38:8233;38:8145;38:8231">
|
|
149
|
+
<div className="overflow-clip shrink-0 size-[20px]">
|
|
150
|
+
<div className="absolute inset-[12.5%]"><div className="absolute inset-[-4.43%]"><img alt="" className="block max-w-none size-full" src={imgVector5} /></div></div>
|
|
151
|
+
</div>
|
|
152
|
+
<p className="font-medium text-[18px] text-white">Beginner</p>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
</button>
|
|
157
|
+
|
|
158
|
+
{/* ── Section 2: Audio Output ────────────────────────────────────────── */}
|
|
159
|
+
<button
|
|
160
|
+
className="border-[#f5f1eb] border-b border-solid flex flex-col gap-0 items-start shrink-0 w-full"
|
|
161
|
+
data-name="Discourse Accordion Item ( Audio Output Panel)"
|
|
162
|
+
data-node-id="38:8234"
|
|
163
|
+
>
|
|
164
|
+
<div className="flex gap-[16px] items-center justify-center px-[20px] py-[16px] w-full" data-node-id="I38:8234;38:8153">
|
|
165
|
+
{/* icon- Audio Output — flipped speaker */}
|
|
166
|
+
<div className="-scale-y-100 rotate-180 flex items-center justify-center shrink-0">
|
|
167
|
+
<img alt="" className="size-[35px]" src={imgIcon} />
|
|
168
|
+
</div>
|
|
169
|
+
<p className="flex-1 font-medium text-[#363636] text-[20px]">Audio Output</p>
|
|
170
|
+
<div className="overflow-clip shrink-0 size-[24px]"><div className="absolute bottom-[37.5%] left-1/4 right-1/4 top-[37.5%]"><div className="absolute inset-[-20.83%_-10.42%]"><img alt="" className="block max-w-none size-full" src={imgVector4} /></div></div></div>
|
|
171
|
+
</div>
|
|
172
|
+
{/* panel- Audio Output controls — horizontal slider */}
|
|
173
|
+
<div className="flex flex-col items-center py-[20px] w-[350px]" data-node-id="I38:8234;38:8157">
|
|
174
|
+
<div className="flex flex-col h-[66px] items-center justify-between px-[20px] py-[40px] w-[334px]" data-node-id="I38:8234;38:8157;38:8308">
|
|
175
|
+
<div className="flex flex-col items-start w-full" data-node-id="I38:8234;38:8157;38:8309">
|
|
176
|
+
<div className="h-[6px] relative w-[314px]" data-node-id="I38:8234;38:8157;38:8310">
|
|
177
|
+
{/* track: bg #E0DCD5 (surface.container.high) */}
|
|
178
|
+
<div className="absolute bg-[#e0dcd5] flex h-6px items-center left-[5px] rounded-full top-0 w-[290px]" data-node-id="I38:8234;38:8157;38:8311">
|
|
179
|
+
{/* range fill: bg #6B7A1F (primary.7) at ~69% */}
|
|
180
|
+
<div className="bg-[#6b7a1f] h-[6px] rounded-full w-[201px]" />
|
|
181
|
+
{/* thumb: bg #B8A9C9 (accent/500 ≈ tertiary), border #CFC4DB */}
|
|
182
|
+
<div className="absolute h-[35px] left-[183px] top-[-14.5px] w-[34px]">
|
|
183
|
+
<div className="-translate-x-1/2 absolute bg-[#b8a9c9] border-2 border-[#cfc4db] h-[35px] left-1/2 rounded-full shadow-md top-0 w-[34px]" />
|
|
184
|
+
<div className="absolute h-[19px] left-[8px] overflow-clip top-[8px] w-[18px]">
|
|
185
|
+
<div className="absolute inset-[16.67%_8.33%]"><div className="absolute inset-[-3.95%_-3.33%]"><img alt="" className="block max-w-none size-full" src={imgVector6} /></div></div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
</button>
|
|
194
|
+
|
|
195
|
+
{/* ── Section 3: Microphone Output ──────────────────────────────────── */}
|
|
196
|
+
<button
|
|
197
|
+
className="border-[#f5f1eb] border-b border-solid flex flex-col gap-0 h-[245px] items-start shrink-0 w-full"
|
|
198
|
+
data-name="Discourse Accordion Item ( EQ & Slider container"
|
|
199
|
+
data-node-id="38:8235"
|
|
200
|
+
>
|
|
201
|
+
<div className="flex gap-[16px] items-center justify-center px-[20px] py-[16px] w-full" data-node-id="I38:8235;38:8165">
|
|
202
|
+
<div className="flex flex-col items-start pt-[4px] shrink-0 size-[40px]">
|
|
203
|
+
<img alt="" className="absolute size-full" src={imgIcon1} />
|
|
204
|
+
</div>
|
|
205
|
+
<p className="flex-1 font-medium text-[#363636] text-[20px]">Microphone Output</p>
|
|
206
|
+
<div className="overflow-clip shrink-0 size-[24px]"><div className="absolute bottom-[37.5%] left-1/4 right-1/4 top-[37.5%]"><div className="absolute inset-[-20.83%_-10.42%]"><img alt="" className="block max-w-none size-full" src={imgVector4} /></div></div></div>
|
|
207
|
+
</div>
|
|
208
|
+
{/* panel- Eq & Slide container */}
|
|
209
|
+
<div className="flex flex-col gap-[37px] items-center py-[20px] w-full" data-node-id="I38:8235;38:8169">
|
|
210
|
+
{/* EQ waveform image */}
|
|
211
|
+
<div className="h-[24px] relative w-[289px]" data-node-id="I38:8235;38:8169;38:8315">
|
|
212
|
+
<div className="absolute inset-[-7.73%_-0.8%_-7.71%_-0.64%]"><img alt="" className="block max-w-none size-full" src={imgOutPutEq} /></div>
|
|
213
|
+
</div>
|
|
214
|
+
{/* Mic gain slider — identical structure to Audio Output slider */}
|
|
215
|
+
<div className="flex flex-col h-[48px] items-center justify-center w-[305px]" data-node-id="I38:8235;38:8169;38:8317">
|
|
216
|
+
<div className="flex flex-col items-start w-full">
|
|
217
|
+
<div className="h-[6px] relative w-[314px]">
|
|
218
|
+
<div className="absolute bg-[#e0dcd5] flex h-[6px] items-center left-[5px] rounded-full top-0 w-[290px]">
|
|
219
|
+
<div className="bg-[#6b7a1f] h-[6px] rounded-full w-[201px]" />
|
|
220
|
+
<div className="absolute h-[35px] left-[183px] top-[-14.5px] w-[34px]">
|
|
221
|
+
<div className="-translate-x-1/2 absolute bg-[#b8a9c9] border-2 border-[#cfc4db] h-[35px] left-1/2 rounded-full shadow-md top-0 w-[34px]" />
|
|
222
|
+
<div className="absolute h-[19px] left-[8px] overflow-clip top-[8px] w-[18px]">
|
|
223
|
+
<div className="absolute inset-[16.67%_8.33%]"><div className="absolute inset-[-3.95%_-3.33%]"><img alt="" className="block max-w-none size-full" src={imgVector6} /></div></div>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
</div>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
</button>
|
|
232
|
+
|
|
233
|
+
{/* ── Section 4a: A/V Recording (855:5501 — radio unselected) ──────── */}
|
|
234
|
+
<button
|
|
235
|
+
className="border-[#f5f1eb] border-b border-solid flex flex-col gap-0 items-center justify-center shrink-0 w-full"
|
|
236
|
+
data-name="Discourse Accordion Item ( A/V Record )"
|
|
237
|
+
data-node-id="855:5501"
|
|
238
|
+
>
|
|
239
|
+
<div className="flex gap-[16px] items-center justify-center px-[20px] py-[16px] w-full" data-node-id="I855:5501;38:8177">
|
|
240
|
+
<div className="flex flex-col h-[40px] items-center justify-center p-[3px] shrink-0">
|
|
241
|
+
<div className="relative shrink-0 size-[29.167px]"><div className="absolute inset-[-3.43%]"><img alt="" className="block max-w-none size-full" src={imgSvgRepoIconCarrier} /></div></div>
|
|
242
|
+
</div>
|
|
243
|
+
<p className="flex-1 font-medium text-[#363636] text-[20px]">A/V Recording</p>
|
|
244
|
+
<div className="overflow-clip shrink-0 size-[24px]"><div className="absolute bottom-[37.5%] left-1/4 right-1/4 top-[37.5%]"><div className="absolute inset-[-20.83%_-10.42%]"><img alt="" className="block max-w-none size-full" src={imgVector4} /></div></div></div>
|
|
245
|
+
</div>
|
|
246
|
+
<div className="flex flex-col items-center p-[20px] w-full" data-node-id="I855:5501;38:8181">
|
|
247
|
+
<div className="cursor-pointer flex flex-col gap-[12px] items-start w-[280px]" data-node-id="I855:5501;38:8181;38:8324">
|
|
248
|
+
{/* Radio item 1 — unselected: border #64A104 (primary.7) */}
|
|
249
|
+
<div className="flex gap-[8px] items-start w-full" role="button" tabIndex={0}>
|
|
250
|
+
<div className="flex flex-1 flex-col gap-[6px] items-start pt-px">
|
|
251
|
+
<p className="font-normal leading-[30px] text-[#363636] text-[18px] w-full">Record just audio</p>
|
|
252
|
+
</div>
|
|
253
|
+
<div className="relative shadow-xs shrink-0 size-[16px]">
|
|
254
|
+
{/* unselected: outline only, border primary.7 */}
|
|
255
|
+
<div className="absolute border-[3px] border-[#64a104] left-0 rounded-full size-[16px] top-0" />
|
|
256
|
+
</div>
|
|
257
|
+
</div>
|
|
258
|
+
{/* Radio item 2 — selected: bg #C5D24D, border #B8A9C9 (accent) */}
|
|
259
|
+
<div className="flex gap-[8px] items-start w-full" role="button" tabIndex={0}>
|
|
260
|
+
<div className="flex flex-1 flex-col gap-[6px] items-start pt-px">
|
|
261
|
+
<p className="font-normal leading-[30px] text-[#363636] text-[18px] w-full">Record video & audio</p>
|
|
262
|
+
</div>
|
|
263
|
+
<div className="relative shadow-xs shrink-0 size-[16px]">
|
|
264
|
+
{/* selected: filled primary green */}
|
|
265
|
+
<div className="absolute bg-[#c5d24d] border border-[#b8a9c9] left-0 rounded-full size-[16px] top-0" />
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
</button>
|
|
271
|
+
|
|
272
|
+
{/* ── Section 5: Display Timer ──────────────────────────────────────── */}
|
|
273
|
+
<button
|
|
274
|
+
className="border-[#f5f1eb] border-b border-solid flex flex-col gap-0 items-start shrink-0 w-full"
|
|
275
|
+
data-name="Discourse Accordion Item ( Show Timer )"
|
|
276
|
+
data-node-id="38:8237"
|
|
277
|
+
>
|
|
278
|
+
<div className="flex gap-[16px] items-center justify-center px-[20px] py-[16px] w-full" data-node-id="I38:8237;38:8190">
|
|
279
|
+
<div className="flex flex-col items-center justify-center overflow-clip p-[5px] shrink-0 size-[40px]">
|
|
280
|
+
<div className="relative shrink-0 size-[27px]"><div className="absolute inset-[-4.63%]"><img alt="" className="block max-w-none size-full" src={imgSvgRepoIconCarrier1} /></div></div>
|
|
281
|
+
</div>
|
|
282
|
+
<p className="flex-1 font-medium text-[#363636] text-[20px]">Display timer</p>
|
|
283
|
+
<div className="overflow-clip shrink-0 size-[24px]"><div className="absolute bottom-[37.5%] left-1/4 right-1/4 top-[37.5%]"><div className="absolute inset-[-20.83%_-10.42%]"><img alt="" className="block max-w-none size-full" src={imgVector4} /></div></div></div>
|
|
284
|
+
</div>
|
|
285
|
+
{/* panel — description text + switch (OFF = rgba(192,209,92,0.4)) */}
|
|
286
|
+
<div className="flex gap-[10px] h-[128px] items-center justify-center p-[20px] w-full" data-node-id="I38:8237;38:8194">
|
|
287
|
+
<p className="font-normal leading-[30px] text-[#363636] text-[18px] whitespace-pre-wrap w-[260.713px]">
|
|
288
|
+
{`Hide timer to create more \nrealistic interview`}
|
|
289
|
+
</p>
|
|
290
|
+
{/* switch off: bg rgba(192,209,92,0.4) */}
|
|
291
|
+
<div className="bg-[rgba(192,209,92,0.4)] flex h-[20px] items-center p-[2px] rounded-full shadow-2xs w-[36px]">
|
|
292
|
+
<div className="relative shrink-0 size-[16px]">
|
|
293
|
+
<div className="absolute inset-[-6.25%_-12.5%_-18.75%_-12.5%]"><img alt="" className="block max-w-none size-full" src={imgSwitch2} /></div>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
</button>
|
|
298
|
+
|
|
299
|
+
{/* ── Section 6: Hide Interviewers ──────────────────────────────────── */}
|
|
300
|
+
<button
|
|
301
|
+
className="border-[#f5f1eb] border-b border-solid flex flex-col gap-0 items-center justify-center shrink-0 w-full"
|
|
302
|
+
data-name="Discourse Accordion Item ( Hide Interview )"
|
|
303
|
+
data-node-id="38:8238"
|
|
304
|
+
>
|
|
305
|
+
<div className="flex gap-[16px] items-center justify-center px-[20px] py-[16px] w-full" data-node-id="I38:8238;38:8202">
|
|
306
|
+
<div className="flex flex-col items-center justify-center overflow-clip p-px shrink-0 size-[40px]">
|
|
307
|
+
<div className="relative shrink-0 size-[24.891px]"><img alt="" className="absolute size-full" src={imgSvgRepoIconCarrier2} /></div>
|
|
308
|
+
</div>
|
|
309
|
+
<p className="flex-1 font-medium text-[#363636] text-[20px]">Hide Interviewers</p>
|
|
310
|
+
<div className="overflow-clip shrink-0 size-[24px]"><div className="absolute bottom-[37.5%] left-1/4 right-1/4 top-[37.5%]"><div className="absolute inset-[-20.83%_-10.42%]"><img alt="" className="block max-w-none size-full" src={imgVector4} /></div></div></div>
|
|
311
|
+
</div>
|
|
312
|
+
{/* panel — description text + switch (ON = #C5D24D) */}
|
|
313
|
+
<div className="flex gap-[10px] items-center justify-center py-[20px]" data-node-id="I38:8238;38:8206">
|
|
314
|
+
<p className="font-normal leading-[30px] text-[#363636] text-[18px] whitespace-pre-wrap w-[244.007px]">
|
|
315
|
+
{`Switch to off to hide video of interviewers if it is too \ndistracting`}
|
|
316
|
+
</p>
|
|
317
|
+
{/* switch on: bg #C5D24D, thumb right-aligned */}
|
|
318
|
+
<DiscourserAiSwitchToggle
|
|
319
|
+
className="bg-[#c5d24d] flex h-[20px] items-center justify-end p-[2px] rounded-full shadow-2xs w-[36px]"
|
|
320
|
+
toggled
|
|
321
|
+
/>
|
|
322
|
+
</div>
|
|
323
|
+
</button>
|
|
324
|
+
</div>
|
|
325
|
+
);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* ── DDS Token Mapping Notes ───────────────────────────────────────────────────
|
|
330
|
+
*
|
|
331
|
+
* For the v2 implementation, map Figma values → DDS semantic tokens:
|
|
332
|
+
*
|
|
333
|
+
* Figma hex / var DDS token Where used
|
|
334
|
+
* ─────────────────────────────────────────────────────────────────────────────
|
|
335
|
+
* #FDFCF5 (neutral/99) neutral.1 root bg
|
|
336
|
+
* #F5F1EB (stone/60%/500) surface.container section divider, info bg
|
|
337
|
+
* #FFFDFA neutral.1 / surface info card bg
|
|
338
|
+
* #E5E7EB outline.variant info card border
|
|
339
|
+
* #363636 (black/600) onSurface body text
|
|
340
|
+
* #2E2E2E (black/700) onSurface (strong) bold labels
|
|
341
|
+
* #4A5565 onSurface.variant subtitle text
|
|
342
|
+
* rgba(192,209,92,0.4) inversePrimary (40%) badge bg, switch-off bg
|
|
343
|
+
* #C5D24D (primary/500) primary.5 switch-on bg
|
|
344
|
+
* #6B7A1F (primary/700) primary.7 slider range fill
|
|
345
|
+
* #6C7D56 (secondary/50) secondary.7 "Beginner" button bg
|
|
346
|
+
* #E0DCD5 (gray/neutral/500) surface.container.high slider track bg
|
|
347
|
+
* #B8A9C9 (accent/500) tertiary.5 / accent slider thumb bg
|
|
348
|
+
* #CFC4DB (accent/400) tertiary.4 slider thumb border
|
|
349
|
+
* #64A104 (primary/60%) primary.7 (@ 60%) radio unselected border
|
|
350
|
+
*/
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// Figma Design Context — Discourser Accordion (node-id: 38:8232)
|
|
2
|
+
// File: GaHmFfmvO4loUzuZS4TgEz / Discourser.AI--V1
|
|
3
|
+
// Fetched: 2026-03-27
|
|
4
|
+
//
|
|
5
|
+
// Design tokens referenced:
|
|
6
|
+
// Primary/700: #6B7A1F
|
|
7
|
+
// Primary/500: #C5D24D
|
|
8
|
+
// Primary/400/60%: #C0D15C
|
|
9
|
+
// Primary/Beginner/40%: #C0D15C
|
|
10
|
+
// Black/Neutral/30%/600: #363636
|
|
11
|
+
// Black/Neutral/30%/700: #2E2E2E
|
|
12
|
+
// Stone/60%/500: #F5F1EB
|
|
13
|
+
// Gray/Neutral/30%/500: #E0DCD5
|
|
14
|
+
// Accent/300: #E5DFEC
|
|
15
|
+
// Accent/400: #CFC4DB
|
|
16
|
+
// Accent/500: #B8A9C9
|
|
17
|
+
// Accent/600: #8D7EA3
|
|
18
|
+
// Accent/700: #6B5A7D
|
|
19
|
+
//
|
|
20
|
+
// Typography:
|
|
21
|
+
// Dsktp/Inter/BodyP/Medium/20: Inter Medium 500 20px lh:100%
|
|
22
|
+
// Dsktp/Inter/Button/Regular/18: Inter Regular 400 18px lh:30
|
|
23
|
+
// Dsktp/Inter/Button/Medium/18px: Inter Medium 500 18px lh:100%
|
|
24
|
+
// Dsktp/Inter/Link/Medium/16: Inter Medium 500 16px lh:100%
|
|
25
|
+
// Dsktp/Mobile/Inter/Button/Regular/14: Inter Regular 400 14px lh:100%
|
|
26
|
+
//
|
|
27
|
+
// Sections:
|
|
28
|
+
// 1. Scenario Settings (info panel)
|
|
29
|
+
// 2. Audio Output (volume slider)
|
|
30
|
+
// 3. Microphone Output (EQ + gain slider)
|
|
31
|
+
// 4. A/V Recording (radio group: audio only | video+audio)
|
|
32
|
+
// 5. Display timer (toggle)
|
|
33
|
+
// 6. Hide Interviewers (toggle)
|
|
34
|
+
//
|
|
35
|
+
// Component docs:
|
|
36
|
+
// Accordion: https://ui.shadcn.com/docs/components/accordion
|
|
37
|
+
// Badge: https://ui.shadcn.com/docs/components/badge
|
|
38
|
+
// Radio Group: https://ui.shadcn.com/docs/components/radio-group
|
|
39
|
+
|
|
40
|
+
const imgSwitch = "https://www.figma.com/api/mcp/asset/6af50d67-6c4e-4ee1-85de-66baf8535487";
|
|
41
|
+
const imgSwitch1 = "https://www.figma.com/api/mcp/asset/46a551ce-7a48-4a03-a0d4-f50f4f554e9b";
|
|
42
|
+
const imgVector = "https://www.figma.com/api/mcp/asset/50458ebc-f32a-49e0-b0e5-03b5393f077b";
|
|
43
|
+
const imgVector1 = "https://www.figma.com/api/mcp/asset/7860a7d6-3665-40f1-b70e-fa293a24026d";
|
|
44
|
+
const imgVector2 = "https://www.figma.com/api/mcp/asset/7507174d-be1a-495b-a903-f958dee54c6c";
|
|
45
|
+
const imgVector3 = "https://www.figma.com/api/mcp/asset/ad2a2392-acc7-4a68-9907-0040ff4cd8e2";
|
|
46
|
+
const imgVector4 = "https://www.figma.com/api/mcp/asset/303639f5-6952-4f6e-b8a0-3177b95521ce";
|
|
47
|
+
const imgVector5 = "https://www.figma.com/api/mcp/asset/318eb54a-c998-4829-a27a-402d6d14bf30";
|
|
48
|
+
const imgIcon = "https://www.figma.com/api/mcp/asset/bde5d849-f0ec-4724-b933-f021166312ce";
|
|
49
|
+
const imgVector6 = "https://www.figma.com/api/mcp/asset/acd8d2f6-fdc0-4787-add4-3813f3c103cf";
|
|
50
|
+
const imgIcon1 = "https://www.figma.com/api/mcp/asset/90a59a80-c14a-4e37-947c-39eaa07704c5";
|
|
51
|
+
const imgOutPutEq = "https://www.figma.com/api/mcp/asset/c36c3468-c437-4a01-b736-5b51a7cbd53e";
|
|
52
|
+
const imgSvgRepoIconCarrier = "https://www.figma.com/api/mcp/asset/93a52f90-1a70-4807-a4e3-330e0762a41a";
|
|
53
|
+
const imgSvgRepoIconCarrier1 = "https://www.figma.com/api/mcp/asset/6933376f-762e-4f71-82dd-d2b0c77050ca";
|
|
54
|
+
const imgSwitch2 = "https://www.figma.com/api/mcp/asset/892c4606-49a2-4682-b3f8-7581c129d2e8";
|
|
55
|
+
const imgSvgRepoIconCarrier2 = "https://www.figma.com/api/mcp/asset/d4547c2b-03e6-41d0-b72b-21d1494b878c";
|
|
56
|
+
type DiscourserAiSwitchToggleProps = {
|
|
57
|
+
className?: string;
|
|
58
|
+
state?: "Default";
|
|
59
|
+
toggled?: boolean;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
function DiscourserAiSwitchToggle({ className, state = "Default", toggled = false }: DiscourserAiSwitchToggleProps) {
|
|
63
|
+
const isToggledAndDefault = toggled && state === "Default";
|
|
64
|
+
return (
|
|
65
|
+
<div className={className || `content-stretch flex h-[var(--height/h-5,20px)] items-center p-[var(--p-0\\,5,2px)] relative rounded-[var(--radius/rounded-full,9999px)] shadow-[var(--shadow/2xs/layer-1/x,0px)_var(--shadow/2xs/layer-1/y,1px)_var(--shadow/2xs/layer-1/blur,2px)_0px_var(--shadow/2xs,rgba(26,26,26,0.05))] w-[var(--width/w-9,36px)] `}${isToggledAndDefault ? "bg-[#c5d24d] justify-end" : "bg-[rgba(192,209,92,0.4)]"}`} id={isToggledAndDefault ? "node-38_8126" : "node-38_8122"}>
|
|
66
|
+
<div className="relative shrink-0 size-[16px]" data-name="Switch" id={isToggledAndDefault ? "node-38_8127" : "node-38_8123"}>
|
|
67
|
+
<div className="absolute inset-[-6.25%_-12.5%_-18.75%_-12.5%]">
|
|
68
|
+
<img alt="" className="block max-w-none size-full" src={isToggledAndDefault ? imgSwitch1 : imgSwitch} />
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export default function DiscourserAccordion({ className }: { className?: string }) {
|
|
76
|
+
return (
|
|
77
|
+
<div className={className || "content-stretch cursor-pointer flex flex-col h-[1695px] items-start relative w-[350px]"} data-name="Discourser Accordion" data-node-id="38:8232">
|
|
78
|
+
<button className="border-[#f5f1eb] border-b border-solid content-stretch flex flex-col gap-[var(--p-0,0px)] items-center justify-center relative shrink-0 w-full" data-name="Discourse Accordion Item (Info Panel)" data-node-id="38:8233">
|
|
79
|
+
<div className="content-stretch flex gap-[var(--p-4,16px)] items-center justify-center px-[20px] py-[var(--p-4,16px)] relative shrink-0 w-full" data-name="AccordionTrigger" data-node-id="I38:8233;38:8141">
|
|
80
|
+
<div className="overflow-clip relative shrink-0 size-[40px]" data-name="icon- Configure Settings" data-node-id="I38:8233;38:8142">
|
|
81
|
+
<div className="absolute bottom-3/4 left-[33.33%] right-[33.33%] top-[8.33%]" data-name="Vector" data-node-id="I38:8233;38:8142;38:9805">
|
|
82
|
+
<div className="absolute inset-[-18.75%_-9.38%]">
|
|
83
|
+
<img alt="" className="block max-w-none size-full" src={imgVector} />
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
<div className="absolute inset-[16.67%_16.67%_8.33%_16.67%]" data-name="Vector" data-node-id="I38:8233;38:8142;38:9806">
|
|
87
|
+
<div className="absolute inset-[-3.33%_-3.75%]">
|
|
88
|
+
<img alt="" className="block max-w-none size-full" src={imgVector1} />
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
<div className="absolute bottom-[54.17%] left-1/2 right-[33.33%] top-[45.83%]" data-name="Vector" data-node-id="I38:8233;38:8142;38:9807">
|
|
92
|
+
<div className="absolute inset-[-1px_-15%]">
|
|
93
|
+
<img alt="" className="block max-w-none size-full" src={imgVector2} />
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
<div className="absolute bottom-[33.33%] left-1/2 right-[33.33%] top-[66.67%]" data-name="Vector" data-node-id="I38:8233;38:8142;38:9808">
|
|
97
|
+
<div className="absolute inset-[-1px_-15%]">
|
|
98
|
+
<img alt="" className="block max-w-none size-full" src={imgVector2} />
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
<div className="absolute inset-[45.83%_66.62%_54.17%_33.33%]" data-name="Vector" data-node-id="I38:8233;38:8142;38:9809">
|
|
102
|
+
<div className="absolute inset-[-1px_-5999.86%]">
|
|
103
|
+
<img alt="" className="block max-w-none size-full" src={imgVector3} />
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
<div className="absolute inset-[66.67%_66.62%_33.33%_33.33%]" data-name="Vector" data-node-id="I38:8233;38:8142;38:9810">
|
|
107
|
+
<div className="absolute inset-[-1px_-5999.86%]">
|
|
108
|
+
<img alt="" className="block max-w-none size-full" src={imgVector3} />
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
<p className="flex-[1_0_0] font-[family-name:var(--font/family/font-sans,'Inter:Medium',sans-serif)] font-[var(--font/weight/font-medium,500)] leading-[normal] min-h-px min-w-px not-italic overflow-hidden relative text-[#363636] text-[20px] text-ellipsis text-left whitespace-nowrap" data-node-id="I38:8233;38:8143">
|
|
113
|
+
Scenario Settings
|
|
114
|
+
</p>
|
|
115
|
+
<div className="overflow-clip relative shrink-0 size-[24px]" data-name="Lucide Icons / chevron-down" data-node-id="I38:8233;38:8144">
|
|
116
|
+
<div className="absolute bottom-[37.5%] left-1/4 right-1/4 top-[37.5%]" data-name="Vector" data-node-id="I38:8233;38:8144;2706:13883">
|
|
117
|
+
<div className="absolute inset-[-20.83%_-10.42%]">
|
|
118
|
+
<img alt="" className="block max-w-none size-full" src={imgVector4} />
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
<div className="bg-[#fffdfa] border border-[#e5e7eb] border-solid content-stretch flex flex-col gap-[26px] items-start p-[20px] relative rounded-[6px] shrink-0" data-name="panel- Information Slot Contents" data-node-id="I38:8233;38:8145">
|
|
124
|
+
{/* ... panel contents ... */}
|
|
125
|
+
</div>
|
|
126
|
+
</button>
|
|
127
|
+
{/* ... remaining accordion items ... */}
|
|
128
|
+
</div>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<symbol id="38:8232" name="Discourser Accordion" x="5653" y="2125.1240234375" width="350" height="1695" />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<symbol id="38:8232" name="Discourser Accordion" x="5653" y="2125.1240234375" width="350" height="1695" />
|