@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.
Files changed (105) hide show
  1. package/dist/{chunk-KIJKNZ73.cjs → chunk-QNCZYFUJ.cjs} +46 -11
  2. package/dist/chunk-QNCZYFUJ.cjs.map +1 -0
  3. package/dist/{chunk-VOH2QELR.cjs → chunk-TBLDQATQ.cjs} +377 -12
  4. package/dist/chunk-TBLDQATQ.cjs.map +1 -0
  5. package/dist/{chunk-VN2QX6S7.js → chunk-UHSL4N44.js} +378 -14
  6. package/dist/chunk-UHSL4N44.js.map +1 -0
  7. package/dist/{chunk-HN2IHIMR.js → chunk-ZPECW4N2.js} +46 -11
  8. package/dist/chunk-ZPECW4N2.js.map +1 -0
  9. package/dist/components/Badge.figma.d.ts +2 -0
  10. package/dist/components/Badge.figma.d.ts.map +1 -0
  11. package/dist/components/Button.figma.d.ts +2 -0
  12. package/dist/components/Button.figma.d.ts.map +1 -0
  13. package/dist/components/Card.figma.d.ts +2 -0
  14. package/dist/components/Card.figma.d.ts.map +1 -0
  15. package/dist/components/Icons/AudienceIcon.d.ts.map +1 -1
  16. package/dist/components/Input.figma.d.ts +2 -0
  17. package/dist/components/Input.figma.d.ts.map +1 -0
  18. package/dist/components/RadioGroup.figma.d.ts +2 -0
  19. package/dist/components/RadioGroup.figma.d.ts.map +1 -0
  20. package/dist/components/SettingsPopover/SettingsPopover.figma.d.ts +2 -0
  21. package/dist/components/SettingsPopover/SettingsPopover.figma.d.ts.map +1 -0
  22. package/dist/components/Slider.figma.d.ts +2 -0
  23. package/dist/components/Slider.figma.d.ts.map +1 -0
  24. package/dist/components/Stepper/Stepper.figma.d.ts +2 -0
  25. package/dist/components/Stepper/Stepper.figma.d.ts.map +1 -0
  26. package/dist/components/StudioControls/StudioControls.d.ts +3 -0
  27. package/dist/components/StudioControls/StudioControls.d.ts.map +1 -0
  28. package/dist/components/StudioControls/StudioControls.figma.d.ts +2 -0
  29. package/dist/components/StudioControls/StudioControls.figma.d.ts.map +1 -0
  30. package/dist/components/StudioControls/index.d.ts +3 -0
  31. package/dist/components/StudioControls/index.d.ts.map +1 -0
  32. package/dist/components/StudioControls/types.d.ts +17 -0
  33. package/dist/components/StudioControls/types.d.ts.map +1 -0
  34. package/dist/components/Switch.figma.d.ts +2 -0
  35. package/dist/components/Switch.figma.d.ts.map +1 -0
  36. package/dist/components/index.cjs +78 -74
  37. package/dist/components/index.d.ts +1 -0
  38. package/dist/components/index.d.ts.map +1 -1
  39. package/dist/components/index.js +1 -1
  40. package/dist/figma-codex/parser.d.ts +2 -0
  41. package/dist/figma-codex/parser.d.ts.map +1 -1
  42. package/dist/figma-codex/resolver.d.ts.map +1 -1
  43. package/dist/figma-codex/schema.d.ts +7 -0
  44. package/dist/figma-codex/schema.d.ts.map +1 -1
  45. package/dist/figma-codex.json +420 -2
  46. package/dist/index.cjs +82 -78
  47. package/dist/index.js +2 -2
  48. package/dist/preset/index.cjs +2 -2
  49. package/dist/preset/index.js +1 -1
  50. package/dist/preset/recipes/badge.d.ts.map +1 -1
  51. package/dist/preset/recipes/index.d.ts +1 -0
  52. package/dist/preset/recipes/index.d.ts.map +1 -1
  53. package/dist/preset/recipes/studio-controls.d.ts +2 -0
  54. package/dist/preset/recipes/studio-controls.d.ts.map +1 -0
  55. package/dist/preset/recipes/switch.d.ts.map +1 -1
  56. package/docs/figma-mcp-return/card-audit.json +31 -0
  57. package/docs/figma-mcp-return/conversation-prelaunch-audit.json +51 -0
  58. package/docs/figma-mcp-return/conversation_lobby-design-context.md +359 -0
  59. package/docs/figma-mcp-return/conversation_lobby-metadata.xml +1 -0
  60. package/docs/figma-mcp-return/discourser-accordion-audit.json +264 -0
  61. package/docs/figma-mcp-return/discourser-accordion-design-context-v2.tsx +350 -0
  62. package/docs/figma-mcp-return/discourser-accordion-design-context.tsx +130 -0
  63. package/docs/figma-mcp-return/discourser-accordion-metadata-v2.xml +1 -0
  64. package/docs/figma-mcp-return/discourser-accordion-metadata.xml +1 -0
  65. package/docs/figma-mcp-return/kai-resolution-simulation.md +181 -0
  66. package/docs/figma-mcp-return/prelaunch-comparison-analysis.md +126 -0
  67. package/docs/figma-mcp-return/prelaunch-get-design-context.md +982 -0
  68. package/docs/figma-mcp-return/prelaunch-get-metadata.md +7 -0
  69. package/docs/figma-mcp-return/prelaunch-get-metadata.xml +3 -0
  70. package/docs/figma-mcp-return/prelaunch-post-component-update.md +791 -0
  71. package/docs/figma-mcp-return/prelaunch-post-rebind-design-context.md +969 -0
  72. package/docs/figma-mcp-return/radio-group-audit.json +23 -0
  73. package/docs/figma-mcp-return/switch-audit.json +38 -0
  74. package/docs/session-summary-2026-03-29.md +98 -0
  75. package/package.json +2 -1
  76. package/src/components/Badge.figma.tsx +39 -0
  77. package/src/components/Button.figma.tsx +18 -0
  78. package/src/components/Card.figma.tsx +33 -0
  79. package/src/components/Icons/AudienceIcon.tsx +3 -1
  80. package/src/components/Icons/AudioSpeakerIcon.tsx +1 -1
  81. package/src/components/Icons/MicrophoneIcon.tsx +3 -3
  82. package/src/components/Icons/RecordIcon.tsx +4 -4
  83. package/src/components/Icons/TimerIcon.tsx +1 -1
  84. package/src/components/Input.figma.tsx +17 -0
  85. package/src/components/RadioGroup.figma.tsx +61 -0
  86. package/src/components/SettingsPopover/SettingsPopover.figma.tsx +17 -0
  87. package/src/components/Slider.figma.tsx +66 -0
  88. package/src/components/Stepper/Stepper.figma.tsx +19 -0
  89. package/src/components/StudioControls/StudioControls.figma.tsx +25 -0
  90. package/src/components/StudioControls/StudioControls.tsx +381 -0
  91. package/src/components/StudioControls/index.ts +2 -0
  92. package/src/components/StudioControls/types.ts +17 -0
  93. package/src/components/Switch.figma.tsx +49 -0
  94. package/src/components/index.ts +5 -0
  95. package/src/figma-codex/parser.ts +55 -0
  96. package/src/figma-codex/resolver.ts +1 -0
  97. package/src/figma-codex/schema.ts +9 -0
  98. package/src/preset/recipes/badge.ts +41 -7
  99. package/src/preset/recipes/index.ts +1 -0
  100. package/src/preset/recipes/studio-controls.ts +252 -0
  101. package/src/preset/recipes/switch.ts +5 -4
  102. package/dist/chunk-HN2IHIMR.js.map +0 -1
  103. package/dist/chunk-KIJKNZ73.cjs.map +0 -1
  104. package/dist/chunk-VN2QX6S7.js.map +0 -1
  105. package/dist/chunk-VOH2QELR.cjs.map +0 -1
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "version": "1.0.0",
3
3
  "packageName": "@discourser/design-system",
4
- "generatedAt": "2026-03-26T21:20:11.648Z",
5
- "gitHash": "2a91da10",
4
+ "generatedAt": "2026-03-31T14:38:15.806Z",
5
+ "gitHash": "e47e7ec5",
6
6
  "figmaFiles": {
7
7
  "GaHmFfmvO4loUzuZS4TgEz": {
8
8
  "fileKey": "GaHmFfmvO4loUzuZS4TgEz"
@@ -34,6 +34,38 @@
34
34
  "example": "<Accordion.Root collapsible>\n <Accordion.Item value=\"item-1\">\n <Accordion.ItemTrigger>\n <span>Trigger</span>\n <Accordion.ItemIndicator />\n </Accordion.ItemTrigger>\n <Accordion.ItemContent>Content</Accordion.ItemContent>\n </Accordion.Item>\n </Accordion.Root>",
35
35
  "sourcePath": "src/components/Accordion.tsx"
36
36
  },
37
+ "Badge": {
38
+ "name": "Badge",
39
+ "type": "simple",
40
+ "figma": {
41
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
42
+ "nodeId": "930:1972",
43
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=930-1972"
44
+ },
45
+ "imports": {
46
+ "primary": "import { Badge } from '@discourser/design-system/Badge'",
47
+ "namedExports": [
48
+ "Badge"
49
+ ],
50
+ "subpath": "@discourser/design-system/Badge"
51
+ },
52
+ "props": [],
53
+ "example": "<Badge variant={variant} colorPalette={colorPalette}>\n Label\n </Badge>",
54
+ "sourcePath": "src/components/Badge.tsx",
55
+ "tokens": {
56
+ "recipe": "badge",
57
+ "variantProps": [
58
+ "variant",
59
+ "size",
60
+ "colorPalette"
61
+ ],
62
+ "figmaPropToRecipeProp": {
63
+ "Variant": "variant",
64
+ "Size": "size",
65
+ "Color": "colorPalette"
66
+ }
67
+ }
68
+ },
37
69
  "Breadcrumb": {
38
70
  "name": "Breadcrumb",
39
71
  "type": "compound",
@@ -90,6 +122,109 @@
90
122
  "example": "<Breadcrumb.Root>\n <Breadcrumb.List>\n <Breadcrumb.Item>\n <Breadcrumb.Link href=\"#\">Home</Breadcrumb.Link>\n </Breadcrumb.Item>\n <Breadcrumb.Separator />\n <Breadcrumb.Item>\n <Breadcrumb.CurrentLink>Current</Breadcrumb.CurrentLink>\n </Breadcrumb.Item>\n </Breadcrumb.List>\n </Breadcrumb.Root>",
91
123
  "sourcePath": "src/components/Breadcrumb.tsx"
92
124
  },
125
+ "Button": {
126
+ "name": "Button",
127
+ "type": "simple",
128
+ "figma": {
129
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
130
+ "nodeId": "38:7993",
131
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-7993"
132
+ },
133
+ "imports": {
134
+ "primary": "import { Button } from '@discourser/design-system/Button'",
135
+ "namedExports": [
136
+ "Button"
137
+ ],
138
+ "subpath": "@discourser/design-system/Button"
139
+ },
140
+ "props": [
141
+ {
142
+ "name": "loading",
143
+ "type": "boolean | undefined",
144
+ "required": false,
145
+ "description": "* If `true`, the button will show a loading spinner. @default false"
146
+ },
147
+ {
148
+ "name": "loadingText",
149
+ "type": "React.ReactNode | undefined",
150
+ "required": false,
151
+ "description": "* The text to show while loading."
152
+ },
153
+ {
154
+ "name": "spinner",
155
+ "type": "React.ReactNode | undefined",
156
+ "required": false,
157
+ "description": "* The spinner to show while loading."
158
+ },
159
+ {
160
+ "name": "spinnerPlacement",
161
+ "type": "'start' | 'end' | undefined",
162
+ "required": false,
163
+ "description": "* The placement of the spinner @default \"start\""
164
+ }
165
+ ],
166
+ "example": "<Button variant={variant}>Label</Button>",
167
+ "sourcePath": "src/components/Button.tsx"
168
+ },
169
+ "Card": {
170
+ "name": "Card",
171
+ "type": "compound",
172
+ "figma": {
173
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
174
+ "nodeId": "950:1681",
175
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=950-1681"
176
+ },
177
+ "imports": {
178
+ "primary": "import * as Card from '@discourser/design-system/Card'",
179
+ "namedExports": [
180
+ "Card.Root",
181
+ "Card.Header",
182
+ "Card.Body",
183
+ "Card.Footer",
184
+ "Card.Title",
185
+ "Card.Description"
186
+ ],
187
+ "subpath": "@discourser/design-system/Card"
188
+ },
189
+ "props": [],
190
+ "subComponents": [
191
+ {
192
+ "name": "Root",
193
+ "element": "div"
194
+ },
195
+ {
196
+ "name": "Header",
197
+ "element": "div"
198
+ },
199
+ {
200
+ "name": "Body",
201
+ "element": "div"
202
+ },
203
+ {
204
+ "name": "Footer",
205
+ "element": "div"
206
+ },
207
+ {
208
+ "name": "Title",
209
+ "element": "h3"
210
+ },
211
+ {
212
+ "name": "Description",
213
+ "element": "div"
214
+ }
215
+ ],
216
+ "example": "<Card.Root variant={variant}>\n <Card.Header>\n <Card.Title>Card Title</Card.Title>\n <Card.Description>Card description</Card.Description>\n </Card.Header>\n <Card.Body>Content goes here</Card.Body>\n <Card.Footer>{/* Footer actions */}</Card.Footer>\n </Card.Root>",
217
+ "sourcePath": "src/components/Card.tsx",
218
+ "tokens": {
219
+ "recipe": "card",
220
+ "variantProps": [
221
+ "variant"
222
+ ],
223
+ "figmaPropToRecipeProp": {
224
+ "Variant": "variant"
225
+ }
226
+ }
227
+ },
93
228
  "ContentCard": {
94
229
  "name": "ContentCard",
95
230
  "type": "compound",
@@ -502,6 +637,25 @@
502
637
  "example": "<UserProfileIcon />",
503
638
  "sourcePath": "src/components/Icons/UserProfileIcon.tsx"
504
639
  },
640
+ "Input": {
641
+ "name": "Input",
642
+ "type": "simple",
643
+ "figma": {
644
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
645
+ "nodeId": "38:8909",
646
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8909"
647
+ },
648
+ "imports": {
649
+ "primary": "import { Input } from '@discourser/design-system/Input'",
650
+ "namedExports": [
651
+ "Input"
652
+ ],
653
+ "subpath": "@discourser/design-system/Input"
654
+ },
655
+ "props": [],
656
+ "example": "<Input type={type} placeholder=\"Enter value\" />",
657
+ "sourcePath": "src/components/Input.tsx"
658
+ },
505
659
  "NavigationMenu": {
506
660
  "name": "NavigationMenu",
507
661
  "type": "composite",
@@ -552,6 +706,35 @@
552
706
  "example": "<NavigationMenu\n sections={[\n {\n value: 'dashboard',\n title: 'Dashboard',\n icon: null,\n items: [\n { label: 'Quick Start', href: '/dashboard/quick-start' },\n { label: 'Progress', href: '/dashboard/progress' },\n ],\n },\n ]}\n defaultOpenSections={['dashboard']}\n activeHref=\"/dashboard/quick-start\"\n />",
553
707
  "sourcePath": "src/components/NavigationMenu/NavigationMenu.tsx"
554
708
  },
709
+ "RadioGroup": {
710
+ "name": "RadioGroup",
711
+ "type": "compound",
712
+ "figma": {
713
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
714
+ "nodeId": "38:8893",
715
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8893"
716
+ },
717
+ "imports": {
718
+ "primary": "import * as RadioGroup from '@discourser/design-system/RadioGroup'",
719
+ "namedExports": [],
720
+ "subpath": "@discourser/design-system/RadioGroup"
721
+ },
722
+ "props": [],
723
+ "subComponents": [],
724
+ "example": "<RadioGroup.Root defaultValue=\"option-1\">\n <RadioGroup.Item value=\"option-1\">\n <RadioGroup.ItemControl />\n <RadioGroup.ItemText>Option 1</RadioGroup.ItemText>\n </RadioGroup.Item>\n <RadioGroup.Item value=\"option-2\">\n <RadioGroup.ItemControl />\n <RadioGroup.ItemText>Option 2</RadioGroup.ItemText>\n </RadioGroup.Item>\n <RadioGroup.Item value=\"option-3\">\n <RadioGroup.ItemControl />\n <RadioGroup.ItemText>Option 3</RadioGroup.ItemText>\n </RadioGroup.Item>\n </RadioGroup.Root>",
725
+ "sourcePath": "src/components/RadioGroup.tsx",
726
+ "tokens": {
727
+ "recipe": "radioGroup",
728
+ "variantProps": [
729
+ "variant",
730
+ "size"
731
+ ],
732
+ "figmaPropToRecipeProp": {
733
+ "Checked": "checked",
734
+ "State": "state"
735
+ }
736
+ }
737
+ },
555
738
  "ScenarioQueue": {
556
739
  "name": "ScenarioQueue",
557
740
  "type": "composite",
@@ -675,6 +858,241 @@
675
858
  ],
676
859
  "example": "<ScenarioSettings\n defaultValue={['duration', 'number-of-questions']}\n defaultDuration=\"standard\"\n defaultQuestionCount=\"standard\"\n />",
677
860
  "sourcePath": "src/components/ScenarioSettings/index.ts"
861
+ },
862
+ "SettingsPopover": {
863
+ "name": "SettingsPopover",
864
+ "type": "composite",
865
+ "figma": {
866
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
867
+ "nodeId": "810:5398",
868
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=810-5398"
869
+ },
870
+ "imports": {
871
+ "primary": "import { SettingsPopover } from '@discourser/design-system/SettingsPopover'",
872
+ "namedExports": [
873
+ "SettingsPopover"
874
+ ],
875
+ "subpath": "@discourser/design-system/SettingsPopover"
876
+ },
877
+ "props": [
878
+ {
879
+ "name": "userName",
880
+ "type": "string",
881
+ "required": true,
882
+ "description": "User's display name (shown on the trigger)"
883
+ },
884
+ {
885
+ "name": "userTier",
886
+ "type": "string",
887
+ "required": true,
888
+ "description": "User's subscription tier label (shown below the name, e.g. \"Free Trial\")"
889
+ },
890
+ {
891
+ "name": "userEmail",
892
+ "type": "string",
893
+ "required": true,
894
+ "description": "User's email address (shown inside the popover card)"
895
+ },
896
+ {
897
+ "name": "avatarFallback",
898
+ "type": "React.ReactNode",
899
+ "required": false,
900
+ "description": "Avatar fallback content — defaults to LoginIcon if not provided"
901
+ },
902
+ {
903
+ "name": "avatarSrc",
904
+ "type": "string",
905
+ "required": false,
906
+ "description": "Avatar image src — if provided, shows photo instead of fallback"
907
+ },
908
+ {
909
+ "name": "actions",
910
+ "type": "SettingsPopoverAction[]",
911
+ "required": true,
912
+ "description": "List of action items to display in the popover card"
913
+ },
914
+ {
915
+ "name": "ariaLabel",
916
+ "type": "string",
917
+ "required": false,
918
+ "description": "Optional aria-label for the trigger button (default: 'User settings')"
919
+ }
920
+ ],
921
+ "example": "<SettingsPopover\n userName={'value'}\n userTier={'value'}\n userEmail={'value'}\n actions={[]}\n />",
922
+ "sourcePath": "src/components/SettingsPopover/SettingsPopover.tsx"
923
+ },
924
+ "Slider": {
925
+ "name": "Slider",
926
+ "type": "compound",
927
+ "figma": {
928
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
929
+ "nodeId": "38:7988",
930
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-7988"
931
+ },
932
+ "imports": {
933
+ "primary": "import * as Slider from '@discourser/design-system/Slider'",
934
+ "namedExports": [],
935
+ "subpath": "@discourser/design-system/Slider"
936
+ },
937
+ "props": [],
938
+ "subComponents": [],
939
+ "example": "<Slider.Root defaultValue={[50]} orientation={orientation}>\n <Slider.Label>Volume</Slider.Label>\n <Slider.Control>\n <Slider.Track>\n <Slider.Range />\n </Slider.Track>\n <Slider.Thumbs />\n </Slider.Control>\n </Slider.Root>",
940
+ "sourcePath": "src/components/Slider.tsx",
941
+ "tokens": {
942
+ "recipe": "slider",
943
+ "variantProps": [
944
+ "orientation",
945
+ "size",
946
+ "variant"
947
+ ],
948
+ "figmaPropToRecipeProp": {
949
+ "Orientation": "orientation",
950
+ "Size": "size"
951
+ }
952
+ }
953
+ },
954
+ "Stepper": {
955
+ "name": "Stepper",
956
+ "type": "simple",
957
+ "figma": {
958
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
959
+ "nodeId": "38:8520",
960
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8520"
961
+ },
962
+ "imports": {
963
+ "primary": "import { Stepper } from '@discourser/design-system/Stepper'",
964
+ "namedExports": [
965
+ "Stepper"
966
+ ],
967
+ "subpath": "@discourser/design-system/Stepper"
968
+ },
969
+ "props": [
970
+ {
971
+ "name": "index",
972
+ "type": "number",
973
+ "required": true
974
+ },
975
+ {
976
+ "name": "className",
977
+ "type": "string",
978
+ "required": false
979
+ }
980
+ ],
981
+ "example": "<Stepper\n steps={[\n { value: 'step1', title: 'Step 1' },\n { value: 'step2', title: 'Step 2' },\n { value: 'step3', title: 'Step 3' },\n ]}\n defaultStep={0}\n />",
982
+ "sourcePath": "src/components/Stepper/Stepper.tsx"
983
+ },
984
+ "StudioControls": {
985
+ "name": "StudioControls",
986
+ "type": "composite",
987
+ "figma": {
988
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
989
+ "nodeId": "38:8232",
990
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8232"
991
+ },
992
+ "imports": {
993
+ "primary": "import { StudioControls } from '@discourser/design-system/StudioControls'",
994
+ "namedExports": [
995
+ "StudioControls"
996
+ ]
997
+ },
998
+ "props": [
999
+ {
1000
+ "name": "scenarioName",
1001
+ "type": "string",
1002
+ "required": true
1003
+ },
1004
+ {
1005
+ "name": "scenarioFocus",
1006
+ "type": "string",
1007
+ "required": true
1008
+ },
1009
+ {
1010
+ "name": "scenarioLevel",
1011
+ "type": "'beginner' | 'intermediate' | 'advanced'",
1012
+ "required": true
1013
+ },
1014
+ {
1015
+ "name": "defaultAudioLevel",
1016
+ "type": "number",
1017
+ "required": false
1018
+ },
1019
+ {
1020
+ "name": "defaultMicLevel",
1021
+ "type": "number",
1022
+ "required": false
1023
+ },
1024
+ {
1025
+ "name": "defaultRecordingMode",
1026
+ "type": "RecordingMode",
1027
+ "required": false
1028
+ },
1029
+ {
1030
+ "name": "defaultShowTimer",
1031
+ "type": "boolean",
1032
+ "required": false
1033
+ },
1034
+ {
1035
+ "name": "defaultHideInterviewers",
1036
+ "type": "boolean",
1037
+ "required": false
1038
+ },
1039
+ {
1040
+ "name": "onAudioLevelChange",
1041
+ "type": "(value: number) => void",
1042
+ "required": false
1043
+ },
1044
+ {
1045
+ "name": "onMicLevelChange",
1046
+ "type": "(value: number) => void",
1047
+ "required": false
1048
+ },
1049
+ {
1050
+ "name": "onRecordingModeChange",
1051
+ "type": "(mode: RecordingMode) => void",
1052
+ "required": false
1053
+ },
1054
+ {
1055
+ "name": "onTimerChange",
1056
+ "type": "(show: boolean) => void",
1057
+ "required": false
1058
+ },
1059
+ {
1060
+ "name": "onInterviewersChange",
1061
+ "type": "(hide: boolean) => void",
1062
+ "required": false
1063
+ }
1064
+ ],
1065
+ "example": "<StudioControls\n scenarioName={scenarioName}\n scenarioFocus={scenarioFocus}\n scenarioLevel={scenarioLevel}\n />",
1066
+ "sourcePath": "src/components/StudioControls/index.ts"
1067
+ },
1068
+ "Switch": {
1069
+ "name": "Switch",
1070
+ "type": "compound",
1071
+ "figma": {
1072
+ "fileKey": "GaHmFfmvO4loUzuZS4TgEz",
1073
+ "nodeId": "38:8121",
1074
+ "url": "https://www.figma.com/design/GaHmFfmvO4loUzuZS4TgEz/Discourser.AI--V1?node-id=38-8121"
1075
+ },
1076
+ "imports": {
1077
+ "primary": "import * as Switch from '@discourser/design-system/Switch'",
1078
+ "namedExports": [],
1079
+ "subpath": "@discourser/design-system/Switch"
1080
+ },
1081
+ "props": [],
1082
+ "subComponents": [],
1083
+ "example": "<Switch.Root defaultChecked={checked}>\n <Switch.Control />\n <Switch.Label>Toggle</Switch.Label>\n </Switch.Root>",
1084
+ "sourcePath": "src/components/Switch.tsx",
1085
+ "tokens": {
1086
+ "recipe": "switchComponent",
1087
+ "variantProps": [
1088
+ "variant",
1089
+ "size"
1090
+ ],
1091
+ "figmaPropToRecipeProp": {
1092
+ "Toggled": "checked",
1093
+ "State": "state"
1094
+ }
1095
+ }
678
1096
  }
679
1097
  }
680
1098
  }