@digital2analogue2/parsimony-components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/custom-elements.json +3751 -0
  2. package/dist/alert/alert.d.ts +36 -0
  3. package/dist/alert/alert.d.ts.map +1 -0
  4. package/dist/alert/alert.js +179 -0
  5. package/dist/alert/alert.js.map +1 -0
  6. package/dist/alert/alert.stories.d.ts +12 -0
  7. package/dist/alert/alert.stories.d.ts.map +1 -0
  8. package/dist/alert/alert.stories.js +59 -0
  9. package/dist/alert/alert.stories.js.map +1 -0
  10. package/dist/avatar/avatar.d.ts +37 -0
  11. package/dist/avatar/avatar.d.ts.map +1 -0
  12. package/dist/avatar/avatar.js +150 -0
  13. package/dist/avatar/avatar.js.map +1 -0
  14. package/dist/avatar/avatar.stories.d.ts +10 -0
  15. package/dist/avatar/avatar.stories.d.ts.map +1 -0
  16. package/dist/avatar/avatar.stories.js +56 -0
  17. package/dist/avatar/avatar.stories.js.map +1 -0
  18. package/dist/badge/badge.d.ts +31 -0
  19. package/dist/badge/badge.d.ts.map +1 -0
  20. package/dist/badge/badge.js +104 -0
  21. package/dist/badge/badge.js.map +1 -0
  22. package/dist/badge/badge.stories.d.ts +9 -0
  23. package/dist/badge/badge.stories.d.ts.map +1 -0
  24. package/dist/badge/badge.stories.js +35 -0
  25. package/dist/badge/badge.stories.js.map +1 -0
  26. package/dist/button/button.d.ts +50 -0
  27. package/dist/button/button.d.ts.map +1 -0
  28. package/dist/button/button.js +237 -0
  29. package/dist/button/button.js.map +1 -0
  30. package/dist/button/button.stories.d.ts +12 -0
  31. package/dist/button/button.stories.d.ts.map +1 -0
  32. package/dist/button/button.stories.js +44 -0
  33. package/dist/button/button.stories.js.map +1 -0
  34. package/dist/card/card.d.ts +32 -0
  35. package/dist/card/card.d.ts.map +1 -0
  36. package/dist/card/card.js +107 -0
  37. package/dist/card/card.js.map +1 -0
  38. package/dist/card/card.stories.d.ts +9 -0
  39. package/dist/card/card.stories.d.ts.map +1 -0
  40. package/dist/card/card.stories.js +39 -0
  41. package/dist/card/card.stories.js.map +1 -0
  42. package/dist/checkbox/checkbox.d.ts +44 -0
  43. package/dist/checkbox/checkbox.d.ts.map +1 -0
  44. package/dist/checkbox/checkbox.js +201 -0
  45. package/dist/checkbox/checkbox.js.map +1 -0
  46. package/dist/checkbox/checkbox.stories.d.ts +10 -0
  47. package/dist/checkbox/checkbox.stories.d.ts.map +1 -0
  48. package/dist/checkbox/checkbox.stories.js +38 -0
  49. package/dist/checkbox/checkbox.stories.js.map +1 -0
  50. package/dist/dialog/dialog.d.ts +51 -0
  51. package/dist/dialog/dialog.d.ts.map +1 -0
  52. package/dist/dialog/dialog.js +234 -0
  53. package/dist/dialog/dialog.js.map +1 -0
  54. package/dist/dialog/dialog.stories.d.ts +7 -0
  55. package/dist/dialog/dialog.stories.d.ts.map +1 -0
  56. package/dist/dialog/dialog.stories.js +30 -0
  57. package/dist/dialog/dialog.stories.js.map +1 -0
  58. package/dist/icon/icon.d.ts +40 -0
  59. package/dist/icon/icon.d.ts.map +1 -0
  60. package/dist/icon/icon.js +99 -0
  61. package/dist/icon/icon.js.map +1 -0
  62. package/dist/icon/icon.stories.d.ts +9 -0
  63. package/dist/icon/icon.stories.d.ts.map +1 -0
  64. package/dist/icon/icon.stories.js +41 -0
  65. package/dist/icon/icon.stories.js.map +1 -0
  66. package/dist/index.d.ts +22 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +22 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/input/input.d.ts +61 -0
  71. package/dist/input/input.d.ts.map +1 -0
  72. package/dist/input/input.js +233 -0
  73. package/dist/input/input.js.map +1 -0
  74. package/dist/input/input.stories.d.ts +10 -0
  75. package/dist/input/input.stories.d.ts.map +1 -0
  76. package/dist/input/input.stories.js +48 -0
  77. package/dist/input/input.stories.js.map +1 -0
  78. package/dist/link/link.d.ts +39 -0
  79. package/dist/link/link.d.ts.map +1 -0
  80. package/dist/link/link.js +112 -0
  81. package/dist/link/link.js.map +1 -0
  82. package/dist/link/link.stories.d.ts +9 -0
  83. package/dist/link/link.stories.d.ts.map +1 -0
  84. package/dist/link/link.stories.js +44 -0
  85. package/dist/link/link.stories.js.map +1 -0
  86. package/dist/progress/progress.d.ts +35 -0
  87. package/dist/progress/progress.d.ts.map +1 -0
  88. package/dist/progress/progress.js +116 -0
  89. package/dist/progress/progress.js.map +1 -0
  90. package/dist/progress/progress.stories.d.ts +10 -0
  91. package/dist/progress/progress.stories.d.ts.map +1 -0
  92. package/dist/progress/progress.stories.js +32 -0
  93. package/dist/progress/progress.stories.js.map +1 -0
  94. package/dist/radio/radio-group.d.ts +53 -0
  95. package/dist/radio/radio-group.d.ts.map +1 -0
  96. package/dist/radio/radio-group.js +183 -0
  97. package/dist/radio/radio-group.js.map +1 -0
  98. package/dist/radio/radio-group.stories.d.ts +9 -0
  99. package/dist/radio/radio-group.stories.d.ts.map +1 -0
  100. package/dist/radio/radio-group.stories.js +44 -0
  101. package/dist/radio/radio-group.stories.js.map +1 -0
  102. package/dist/radio/radio.d.ts +29 -0
  103. package/dist/radio/radio.d.ts.map +1 -0
  104. package/dist/radio/radio.js +166 -0
  105. package/dist/radio/radio.js.map +1 -0
  106. package/dist/radio/radio.stories.d.ts +13 -0
  107. package/dist/radio/radio.stories.d.ts.map +1 -0
  108. package/dist/radio/radio.stories.js +28 -0
  109. package/dist/radio/radio.stories.js.map +1 -0
  110. package/dist/select/select.d.ts +63 -0
  111. package/dist/select/select.d.ts.map +1 -0
  112. package/dist/select/select.js +258 -0
  113. package/dist/select/select.js.map +1 -0
  114. package/dist/select/select.stories.d.ts +9 -0
  115. package/dist/select/select.stories.d.ts.map +1 -0
  116. package/dist/select/select.stories.js +46 -0
  117. package/dist/select/select.stories.js.map +1 -0
  118. package/dist/skeleton/skeleton.d.ts +39 -0
  119. package/dist/skeleton/skeleton.d.ts.map +1 -0
  120. package/dist/skeleton/skeleton.js +111 -0
  121. package/dist/skeleton/skeleton.js.map +1 -0
  122. package/dist/skeleton/skeleton.stories.d.ts +9 -0
  123. package/dist/skeleton/skeleton.stories.d.ts.map +1 -0
  124. package/dist/skeleton/skeleton.stories.js +36 -0
  125. package/dist/skeleton/skeleton.stories.js.map +1 -0
  126. package/dist/spinner/spinner.d.ts +29 -0
  127. package/dist/spinner/spinner.d.ts.map +1 -0
  128. package/dist/spinner/spinner.js +131 -0
  129. package/dist/spinner/spinner.js.map +1 -0
  130. package/dist/spinner/spinner.stories.d.ts +8 -0
  131. package/dist/spinner/spinner.stories.d.ts.map +1 -0
  132. package/dist/spinner/spinner.stories.js +29 -0
  133. package/dist/spinner/spinner.stories.js.map +1 -0
  134. package/dist/tabs/tab-list.d.ts +45 -0
  135. package/dist/tabs/tab-list.d.ts.map +1 -0
  136. package/dist/tabs/tab-list.js +150 -0
  137. package/dist/tabs/tab-list.js.map +1 -0
  138. package/dist/tabs/tab-list.stories.d.ts +7 -0
  139. package/dist/tabs/tab-list.stories.d.ts.map +1 -0
  140. package/dist/tabs/tab-list.stories.js +27 -0
  141. package/dist/tabs/tab-list.stories.js.map +1 -0
  142. package/dist/tabs/tab.d.ts +40 -0
  143. package/dist/tabs/tab.d.ts.map +1 -0
  144. package/dist/tabs/tab.js +114 -0
  145. package/dist/tabs/tab.js.map +1 -0
  146. package/dist/tabs/tab.stories.d.ts +13 -0
  147. package/dist/tabs/tab.stories.d.ts.map +1 -0
  148. package/dist/tabs/tab.stories.js +28 -0
  149. package/dist/tabs/tab.stories.js.map +1 -0
  150. package/dist/tag/tag.d.ts +38 -0
  151. package/dist/tag/tag.d.ts.map +1 -0
  152. package/dist/tag/tag.js +71 -0
  153. package/dist/tag/tag.js.map +1 -0
  154. package/dist/tag/tag.stories.d.ts +10 -0
  155. package/dist/tag/tag.stories.d.ts.map +1 -0
  156. package/dist/tag/tag.stories.js +43 -0
  157. package/dist/tag/tag.stories.js.map +1 -0
  158. package/dist/test-setup.d.ts +2 -0
  159. package/dist/test-setup.d.ts.map +1 -0
  160. package/dist/test-setup.js +2 -0
  161. package/dist/test-setup.js.map +1 -0
  162. package/dist/textarea/textarea.d.ts +60 -0
  163. package/dist/textarea/textarea.d.ts.map +1 -0
  164. package/dist/textarea/textarea.js +232 -0
  165. package/dist/textarea/textarea.js.map +1 -0
  166. package/dist/textarea/textarea.stories.d.ts +10 -0
  167. package/dist/textarea/textarea.stories.d.ts.map +1 -0
  168. package/dist/textarea/textarea.stories.js +47 -0
  169. package/dist/textarea/textarea.stories.js.map +1 -0
  170. package/dist/toggle/toggle.d.ts +43 -0
  171. package/dist/toggle/toggle.d.ts.map +1 -0
  172. package/dist/toggle/toggle.js +189 -0
  173. package/dist/toggle/toggle.js.map +1 -0
  174. package/dist/toggle/toggle.stories.d.ts +9 -0
  175. package/dist/toggle/toggle.stories.d.ts.map +1 -0
  176. package/dist/toggle/toggle.stories.js +34 -0
  177. package/dist/toggle/toggle.stories.js.map +1 -0
  178. package/package.json +65 -0
  179. package/src/react.d.ts +199 -0
@@ -0,0 +1,3751 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "src/alert/alert.figma.ts",
8
+ "declarations": [],
9
+ "exports": []
10
+ },
11
+ {
12
+ "kind": "javascript-module",
13
+ "path": "src/alert/alert.ts",
14
+ "declarations": [
15
+ {
16
+ "kind": "class",
17
+ "description": "An inline notification banner for success, warning, danger, and info messages.\n\nUse for form-level feedback, async status messages, and system notifications.\nFor field-level validation errors, use `<rr-input error-text=\"...\">` instead.",
18
+ "name": "RrAlert",
19
+ "cssParts": [
20
+ {
21
+ "description": "The root alert element",
22
+ "name": "alert"
23
+ },
24
+ {
25
+ "description": "The heading text element",
26
+ "name": "heading"
27
+ },
28
+ {
29
+ "description": "The content slot wrapper",
30
+ "name": "content"
31
+ },
32
+ {
33
+ "description": "The dismiss button",
34
+ "name": "dismiss"
35
+ }
36
+ ],
37
+ "slots": [
38
+ {
39
+ "description": "Alert body content",
40
+ "name": ""
41
+ },
42
+ {
43
+ "description": "Optional icon in front of the heading (use <rr-icon>)",
44
+ "name": "icon"
45
+ }
46
+ ],
47
+ "members": [
48
+ {
49
+ "kind": "field",
50
+ "name": "variant",
51
+ "type": {
52
+ "text": "AlertVariant"
53
+ },
54
+ "default": "'success'",
55
+ "description": "Visual variant and semantic role.",
56
+ "attribute": "variant",
57
+ "reflects": true
58
+ },
59
+ {
60
+ "kind": "field",
61
+ "name": "heading",
62
+ "type": {
63
+ "text": "string"
64
+ },
65
+ "default": "''",
66
+ "description": "Optional bold heading rendered above the body content.",
67
+ "attribute": "heading"
68
+ },
69
+ {
70
+ "kind": "field",
71
+ "name": "dismissible",
72
+ "type": {
73
+ "text": "boolean"
74
+ },
75
+ "default": "false",
76
+ "description": "When true, renders a dismiss button that hides the alert and fires close.",
77
+ "attribute": "dismissible",
78
+ "reflects": true
79
+ },
80
+ {
81
+ "kind": "field",
82
+ "name": "_dismissed",
83
+ "type": {
84
+ "text": "boolean"
85
+ },
86
+ "privacy": "private",
87
+ "default": "false"
88
+ },
89
+ {
90
+ "kind": "method",
91
+ "name": "_dismiss",
92
+ "privacy": "private"
93
+ },
94
+ {
95
+ "kind": "method",
96
+ "name": "show",
97
+ "description": "Reshow the alert after it has been dismissed."
98
+ }
99
+ ],
100
+ "events": [
101
+ {
102
+ "name": "close",
103
+ "type": {
104
+ "text": "Event"
105
+ },
106
+ "description": "When the dismiss button is clicked (only fires when dismissible)"
107
+ }
108
+ ],
109
+ "attributes": [
110
+ {
111
+ "name": "variant",
112
+ "type": {
113
+ "text": "AlertVariant"
114
+ },
115
+ "default": "'success'",
116
+ "description": "Visual variant and semantic role.",
117
+ "fieldName": "variant"
118
+ },
119
+ {
120
+ "name": "heading",
121
+ "type": {
122
+ "text": "string"
123
+ },
124
+ "default": "''",
125
+ "description": "Optional bold heading rendered above the body content.",
126
+ "fieldName": "heading"
127
+ },
128
+ {
129
+ "name": "dismissible",
130
+ "type": {
131
+ "text": "boolean"
132
+ },
133
+ "default": "false",
134
+ "description": "When true, renders a dismiss button that hides the alert and fires close.",
135
+ "fieldName": "dismissible"
136
+ }
137
+ ],
138
+ "superclass": {
139
+ "name": "LitElement",
140
+ "package": "lit"
141
+ },
142
+ "tagName": "rr-alert",
143
+ "customElement": true
144
+ }
145
+ ],
146
+ "exports": [
147
+ {
148
+ "kind": "js",
149
+ "name": "RrAlert",
150
+ "declaration": {
151
+ "name": "RrAlert",
152
+ "module": "src/alert/alert.ts"
153
+ }
154
+ },
155
+ {
156
+ "kind": "custom-element-definition",
157
+ "name": "rr-alert",
158
+ "declaration": {
159
+ "name": "RrAlert",
160
+ "module": "src/alert/alert.ts"
161
+ }
162
+ }
163
+ ]
164
+ },
165
+ {
166
+ "kind": "javascript-module",
167
+ "path": "src/avatar/avatar.figma.ts",
168
+ "declarations": [],
169
+ "exports": []
170
+ },
171
+ {
172
+ "kind": "javascript-module",
173
+ "path": "src/avatar/avatar.ts",
174
+ "declarations": [
175
+ {
176
+ "kind": "class",
177
+ "description": "A circular identity surface showing initials or an image.\n\nWhen `src` is provided an `<img>` fills the circle. When omitted, up to two\ninitials are derived from `name` (first letter of each word, max two words).\nColorized variants use the accent-bold fill tier with matching on-* foreground\ntokens — all pairs are WCAG AA verified.",
178
+ "name": "RrAvatar",
179
+ "cssParts": [
180
+ {
181
+ "description": "The root circle element",
182
+ "name": "avatar"
183
+ },
184
+ {
185
+ "description": "The img element (only when src is set)",
186
+ "name": "img"
187
+ },
188
+ {
189
+ "description": "The initials text element",
190
+ "name": "initials"
191
+ }
192
+ ],
193
+ "slots": [
194
+ {
195
+ "description": "Optional custom content to replace initials (e.g. an icon)",
196
+ "name": ""
197
+ }
198
+ ],
199
+ "members": [
200
+ {
201
+ "kind": "field",
202
+ "name": "size",
203
+ "type": {
204
+ "text": "AvatarSize"
205
+ },
206
+ "default": "'md'",
207
+ "description": "Circle diameter.",
208
+ "attribute": "size",
209
+ "reflects": true
210
+ },
211
+ {
212
+ "kind": "field",
213
+ "name": "color",
214
+ "type": {
215
+ "text": "AvatarColor"
216
+ },
217
+ "default": "'default'",
218
+ "description": "Accent-bold color variant for the initials surface.",
219
+ "attribute": "color",
220
+ "reflects": true
221
+ },
222
+ {
223
+ "kind": "field",
224
+ "name": "name",
225
+ "type": {
226
+ "text": "string"
227
+ },
228
+ "default": "''",
229
+ "description": "Full name used to derive up to two initials and the accessible label.",
230
+ "attribute": "name"
231
+ },
232
+ {
233
+ "kind": "field",
234
+ "name": "src",
235
+ "type": {
236
+ "text": "string"
237
+ },
238
+ "default": "''",
239
+ "description": "Image URL. When set, an img fills the circle instead of initials.",
240
+ "attribute": "src"
241
+ },
242
+ {
243
+ "kind": "field",
244
+ "name": "imgAlt",
245
+ "type": {
246
+ "text": "string"
247
+ },
248
+ "default": "''",
249
+ "description": "Alt text for the image; falls back to name when omitted.",
250
+ "attribute": "alt"
251
+ },
252
+ {
253
+ "kind": "field",
254
+ "name": "_initials",
255
+ "type": {
256
+ "text": "string"
257
+ },
258
+ "privacy": "private",
259
+ "readonly": true
260
+ }
261
+ ],
262
+ "attributes": [
263
+ {
264
+ "name": "size",
265
+ "type": {
266
+ "text": "AvatarSize"
267
+ },
268
+ "default": "'md'",
269
+ "description": "Circle diameter.",
270
+ "fieldName": "size"
271
+ },
272
+ {
273
+ "name": "color",
274
+ "type": {
275
+ "text": "AvatarColor"
276
+ },
277
+ "default": "'default'",
278
+ "description": "Accent-bold color variant for the initials surface.",
279
+ "fieldName": "color"
280
+ },
281
+ {
282
+ "name": "name",
283
+ "type": {
284
+ "text": "string"
285
+ },
286
+ "default": "''",
287
+ "description": "Full name used to derive up to two initials and the accessible label.",
288
+ "fieldName": "name"
289
+ },
290
+ {
291
+ "name": "src",
292
+ "type": {
293
+ "text": "string"
294
+ },
295
+ "default": "''",
296
+ "description": "Image URL. When set, an img fills the circle instead of initials.",
297
+ "fieldName": "src"
298
+ },
299
+ {
300
+ "name": "alt",
301
+ "type": {
302
+ "text": "string"
303
+ },
304
+ "default": "''",
305
+ "description": "Alt text for the image; falls back to name when omitted.",
306
+ "fieldName": "imgAlt"
307
+ }
308
+ ],
309
+ "superclass": {
310
+ "name": "LitElement",
311
+ "package": "lit"
312
+ },
313
+ "tagName": "rr-avatar",
314
+ "customElement": true
315
+ }
316
+ ],
317
+ "exports": [
318
+ {
319
+ "kind": "js",
320
+ "name": "RrAvatar",
321
+ "declaration": {
322
+ "name": "RrAvatar",
323
+ "module": "src/avatar/avatar.ts"
324
+ }
325
+ },
326
+ {
327
+ "kind": "custom-element-definition",
328
+ "name": "rr-avatar",
329
+ "declaration": {
330
+ "name": "RrAvatar",
331
+ "module": "src/avatar/avatar.ts"
332
+ }
333
+ }
334
+ ]
335
+ },
336
+ {
337
+ "kind": "javascript-module",
338
+ "path": "src/badge/badge.figma.ts",
339
+ "declarations": [],
340
+ "exports": []
341
+ },
342
+ {
343
+ "kind": "javascript-module",
344
+ "path": "src/badge/badge.ts",
345
+ "declarations": [
346
+ {
347
+ "kind": "class",
348
+ "description": "A status badge / chip component.\n\nUses component-level design tokens for all visual properties.\nBrand theming cascades automatically via CSS custom properties on `:root`.",
349
+ "name": "RrBadge",
350
+ "cssProperties": [
351
+ {
352
+ "name": "--component-badge-{variant}-background"
353
+ },
354
+ {
355
+ "name": "--component-badge-{variant}-foreground"
356
+ },
357
+ {
358
+ "name": "--component-badge-{variant}-border"
359
+ },
360
+ {
361
+ "name": "--component-badge-radius"
362
+ },
363
+ {
364
+ "name": "--component-badge-padding-x"
365
+ },
366
+ {
367
+ "name": "--component-badge-padding-y"
368
+ }
369
+ ],
370
+ "slots": [
371
+ {
372
+ "description": "Badge label text",
373
+ "name": ""
374
+ }
375
+ ],
376
+ "members": [
377
+ {
378
+ "kind": "field",
379
+ "name": "variant",
380
+ "type": {
381
+ "text": "BadgeVariant"
382
+ },
383
+ "default": "'default'",
384
+ "description": "Visual variant. Status variants (success, warning, danger, info) convey\nsemantic meaning. Accent variants are decorative emphasis tags.",
385
+ "attribute": "variant",
386
+ "reflects": true
387
+ }
388
+ ],
389
+ "attributes": [
390
+ {
391
+ "name": "variant",
392
+ "type": {
393
+ "text": "BadgeVariant"
394
+ },
395
+ "default": "'default'",
396
+ "description": "Visual variant. Status variants (success, warning, danger, info) convey\nsemantic meaning. Accent variants are decorative emphasis tags.",
397
+ "fieldName": "variant"
398
+ }
399
+ ],
400
+ "superclass": {
401
+ "name": "LitElement",
402
+ "package": "lit"
403
+ },
404
+ "tagName": "rr-badge",
405
+ "customElement": true
406
+ }
407
+ ],
408
+ "exports": [
409
+ {
410
+ "kind": "js",
411
+ "name": "RrBadge",
412
+ "declaration": {
413
+ "name": "RrBadge",
414
+ "module": "src/badge/badge.ts"
415
+ }
416
+ },
417
+ {
418
+ "kind": "custom-element-definition",
419
+ "name": "rr-badge",
420
+ "declaration": {
421
+ "name": "RrBadge",
422
+ "module": "src/badge/badge.ts"
423
+ }
424
+ }
425
+ ]
426
+ },
427
+ {
428
+ "kind": "javascript-module",
429
+ "path": "src/button/button.figma.ts",
430
+ "declarations": [],
431
+ "exports": []
432
+ },
433
+ {
434
+ "kind": "javascript-module",
435
+ "path": "src/button/button.ts",
436
+ "declarations": [
437
+ {
438
+ "kind": "class",
439
+ "description": "A button with variant, size, loading, and disabled states.\n\nRenders a native `<button>` inside its shadow root for full\nkeyboard and form semantics. Uses `delegatesFocus` so the host\nforwards focus to the inner button.",
440
+ "name": "RrButton",
441
+ "cssParts": [
442
+ {
443
+ "description": "The inner <button> element",
444
+ "name": "button"
445
+ }
446
+ ],
447
+ "slots": [
448
+ {
449
+ "description": "Button label text",
450
+ "name": ""
451
+ },
452
+ {
453
+ "description": "Icon or element before the label",
454
+ "name": "prefix"
455
+ },
456
+ {
457
+ "description": "Icon or element after the label",
458
+ "name": "suffix"
459
+ }
460
+ ],
461
+ "members": [
462
+ {
463
+ "kind": "field",
464
+ "name": "formAssociated",
465
+ "type": {
466
+ "text": "boolean"
467
+ },
468
+ "static": true,
469
+ "default": "true"
470
+ },
471
+ {
472
+ "kind": "field",
473
+ "name": "shadowRootOptions",
474
+ "type": {
475
+ "text": "object"
476
+ },
477
+ "static": true,
478
+ "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
479
+ },
480
+ {
481
+ "kind": "field",
482
+ "name": "variant",
483
+ "type": {
484
+ "text": "ButtonVariant"
485
+ },
486
+ "default": "'primary'",
487
+ "description": "Visual variant: primary (filled CTA), secondary (outlined), danger (destructive), ghost (text-only, quiet).",
488
+ "attribute": "variant",
489
+ "reflects": true
490
+ },
491
+ {
492
+ "kind": "field",
493
+ "name": "size",
494
+ "type": {
495
+ "text": "ButtonSize"
496
+ },
497
+ "default": "'md'",
498
+ "description": "Size: sm, md, lg. Controls padding and font size.",
499
+ "attribute": "size",
500
+ "reflects": true
501
+ },
502
+ {
503
+ "kind": "field",
504
+ "name": "disabled",
505
+ "type": {
506
+ "text": "boolean"
507
+ },
508
+ "default": "false",
509
+ "description": "Disables the button. Prevents click and removes from tab order.",
510
+ "attribute": "disabled",
511
+ "reflects": true
512
+ },
513
+ {
514
+ "kind": "field",
515
+ "name": "loading",
516
+ "type": {
517
+ "text": "boolean"
518
+ },
519
+ "default": "false",
520
+ "description": "Shows a spinner and sets aria-busy. Click suppressed while loading.",
521
+ "attribute": "loading",
522
+ "reflects": true
523
+ },
524
+ {
525
+ "kind": "field",
526
+ "name": "type",
527
+ "type": {
528
+ "text": "'button' | 'submit' | 'reset'"
529
+ },
530
+ "default": "'button'",
531
+ "description": "Button type attribute: button, submit, or reset.",
532
+ "attribute": "type"
533
+ },
534
+ {
535
+ "kind": "field",
536
+ "name": "ariaLabel",
537
+ "type": {
538
+ "text": "string | null"
539
+ },
540
+ "default": "null",
541
+ "description": "Accessible label. Required for icon-only buttons.",
542
+ "attribute": "aria-label"
543
+ },
544
+ {
545
+ "kind": "field",
546
+ "name": "_internals",
547
+ "type": {
548
+ "text": "ElementInternals"
549
+ },
550
+ "privacy": "private"
551
+ },
552
+ {
553
+ "kind": "method",
554
+ "name": "_handleClick",
555
+ "privacy": "private",
556
+ "parameters": [
557
+ {
558
+ "name": "e",
559
+ "type": {
560
+ "text": "Event"
561
+ }
562
+ }
563
+ ]
564
+ }
565
+ ],
566
+ "events": [
567
+ {
568
+ "description": "Native click (suppressed when disabled or loading)",
569
+ "name": "click"
570
+ }
571
+ ],
572
+ "attributes": [
573
+ {
574
+ "name": "variant",
575
+ "type": {
576
+ "text": "ButtonVariant"
577
+ },
578
+ "default": "'primary'",
579
+ "description": "Visual variant: primary (filled CTA), secondary (outlined), danger (destructive), ghost (text-only, quiet).",
580
+ "fieldName": "variant"
581
+ },
582
+ {
583
+ "name": "size",
584
+ "type": {
585
+ "text": "ButtonSize"
586
+ },
587
+ "default": "'md'",
588
+ "description": "Size: sm, md, lg. Controls padding and font size.",
589
+ "fieldName": "size"
590
+ },
591
+ {
592
+ "name": "disabled",
593
+ "type": {
594
+ "text": "boolean"
595
+ },
596
+ "default": "false",
597
+ "description": "Disables the button. Prevents click and removes from tab order.",
598
+ "fieldName": "disabled"
599
+ },
600
+ {
601
+ "name": "loading",
602
+ "type": {
603
+ "text": "boolean"
604
+ },
605
+ "default": "false",
606
+ "description": "Shows a spinner and sets aria-busy. Click suppressed while loading.",
607
+ "fieldName": "loading"
608
+ },
609
+ {
610
+ "name": "type",
611
+ "type": {
612
+ "text": "'button' | 'submit' | 'reset'"
613
+ },
614
+ "default": "'button'",
615
+ "description": "Button type attribute: button, submit, or reset.",
616
+ "fieldName": "type"
617
+ },
618
+ {
619
+ "name": "aria-label",
620
+ "type": {
621
+ "text": "string | null"
622
+ },
623
+ "default": "null",
624
+ "description": "Accessible label. Required for icon-only buttons.",
625
+ "fieldName": "ariaLabel"
626
+ }
627
+ ],
628
+ "superclass": {
629
+ "name": "LitElement",
630
+ "package": "lit"
631
+ },
632
+ "tagName": "rr-button",
633
+ "customElement": true
634
+ }
635
+ ],
636
+ "exports": [
637
+ {
638
+ "kind": "js",
639
+ "name": "RrButton",
640
+ "declaration": {
641
+ "name": "RrButton",
642
+ "module": "src/button/button.ts"
643
+ }
644
+ },
645
+ {
646
+ "kind": "custom-element-definition",
647
+ "name": "rr-button",
648
+ "declaration": {
649
+ "name": "RrButton",
650
+ "module": "src/button/button.ts"
651
+ }
652
+ }
653
+ ]
654
+ },
655
+ {
656
+ "kind": "javascript-module",
657
+ "path": "src/card/card.figma.ts",
658
+ "declarations": [],
659
+ "exports": []
660
+ },
661
+ {
662
+ "kind": "javascript-module",
663
+ "path": "src/card/card.ts",
664
+ "declarations": [
665
+ {
666
+ "kind": "class",
667
+ "description": "A surface container using the elevated background tier.\n\nRenders on `background.alt` with `border.default` and `radius.lg`.\nComposed of three optional slots — header, default body, footer —\nseparated by hairline borders when adjacent content is present.",
668
+ "name": "RrCard",
669
+ "cssProperties": [
670
+ {
671
+ "name": "--color-background-alt"
672
+ },
673
+ {
674
+ "name": "--color-border-default"
675
+ },
676
+ {
677
+ "name": "--radius-lg"
678
+ }
679
+ ],
680
+ "slots": [
681
+ {
682
+ "description": "Card heading row (title, actions, avatar).",
683
+ "name": "header"
684
+ },
685
+ {
686
+ "description": "Card body content.",
687
+ "name": ""
688
+ },
689
+ {
690
+ "description": "Card footer row (secondary actions, metadata).",
691
+ "name": "footer"
692
+ }
693
+ ],
694
+ "members": [
695
+ {
696
+ "kind": "field",
697
+ "name": "padding",
698
+ "type": {
699
+ "text": "CardPadding"
700
+ },
701
+ "default": "'md'",
702
+ "description": "Internal padding around the body slot.\nHeader and footer padding is always fixed at `tight/element`.",
703
+ "attribute": "padding",
704
+ "reflects": true
705
+ }
706
+ ],
707
+ "attributes": [
708
+ {
709
+ "name": "padding",
710
+ "type": {
711
+ "text": "CardPadding"
712
+ },
713
+ "default": "'md'",
714
+ "description": "Internal padding around the body slot.\nHeader and footer padding is always fixed at `tight/element`.",
715
+ "fieldName": "padding"
716
+ }
717
+ ],
718
+ "superclass": {
719
+ "name": "LitElement",
720
+ "package": "lit"
721
+ },
722
+ "tagName": "rr-card",
723
+ "customElement": true
724
+ }
725
+ ],
726
+ "exports": [
727
+ {
728
+ "kind": "js",
729
+ "name": "RrCard",
730
+ "declaration": {
731
+ "name": "RrCard",
732
+ "module": "src/card/card.ts"
733
+ }
734
+ },
735
+ {
736
+ "kind": "custom-element-definition",
737
+ "name": "rr-card",
738
+ "declaration": {
739
+ "name": "RrCard",
740
+ "module": "src/card/card.ts"
741
+ }
742
+ }
743
+ ]
744
+ },
745
+ {
746
+ "kind": "javascript-module",
747
+ "path": "src/checkbox/checkbox.figma.ts",
748
+ "declarations": [],
749
+ "exports": []
750
+ },
751
+ {
752
+ "kind": "javascript-module",
753
+ "path": "src/checkbox/checkbox.ts",
754
+ "declarations": [
755
+ {
756
+ "kind": "class",
757
+ "description": "A form-associated checkbox with checked, indeterminate, and disabled states.\n\nThe visual control is rendered in shadow DOM; the hidden native\n`<input type=\"checkbox\">` provides focus, keyboard, and label-click semantics.\n`ElementInternals` handles form participation.\n\nUsage:\n <rr-checkbox name=\"agree\" label=\"I agree to the terms\" checked></rr-checkbox>\n <rr-checkbox name=\"notify\">Send me notifications</rr-checkbox>",
758
+ "name": "RrCheckbox",
759
+ "cssParts": [
760
+ {
761
+ "description": "The visual checkbox square",
762
+ "name": "box"
763
+ },
764
+ {
765
+ "description": "The label text element",
766
+ "name": "label"
767
+ }
768
+ ],
769
+ "slots": [
770
+ {
771
+ "description": "Label text (alternative to the `label` property)",
772
+ "name": ""
773
+ }
774
+ ],
775
+ "members": [
776
+ {
777
+ "kind": "field",
778
+ "name": "formAssociated",
779
+ "type": {
780
+ "text": "boolean"
781
+ },
782
+ "static": true,
783
+ "default": "true"
784
+ },
785
+ {
786
+ "kind": "field",
787
+ "name": "checked",
788
+ "type": {
789
+ "text": "boolean"
790
+ },
791
+ "default": "false",
792
+ "description": "Whether the checkbox is checked.",
793
+ "attribute": "checked",
794
+ "reflects": true
795
+ },
796
+ {
797
+ "kind": "field",
798
+ "name": "indeterminate",
799
+ "type": {
800
+ "text": "boolean"
801
+ },
802
+ "default": "false",
803
+ "description": "Mixed state; cleared when the user toggles the checkbox.",
804
+ "attribute": "indeterminate",
805
+ "reflects": true
806
+ },
807
+ {
808
+ "kind": "field",
809
+ "name": "disabled",
810
+ "type": {
811
+ "text": "boolean"
812
+ },
813
+ "default": "false",
814
+ "description": "Disables interaction and form participation.",
815
+ "attribute": "disabled",
816
+ "reflects": true
817
+ },
818
+ {
819
+ "kind": "field",
820
+ "name": "value",
821
+ "type": {
822
+ "text": "string"
823
+ },
824
+ "default": "'on'",
825
+ "description": "Form value submitted when checked.",
826
+ "attribute": "value"
827
+ },
828
+ {
829
+ "kind": "field",
830
+ "name": "name",
831
+ "type": {
832
+ "text": "string"
833
+ },
834
+ "default": "''",
835
+ "description": "Form field name.",
836
+ "attribute": "name"
837
+ },
838
+ {
839
+ "kind": "field",
840
+ "name": "label",
841
+ "type": {
842
+ "text": "string"
843
+ },
844
+ "default": "''",
845
+ "description": "Label text; falls back to slotted content when empty.",
846
+ "attribute": "label"
847
+ },
848
+ {
849
+ "kind": "field",
850
+ "name": "_internals",
851
+ "type": {
852
+ "text": "ElementInternals"
853
+ },
854
+ "privacy": "private"
855
+ },
856
+ {
857
+ "kind": "method",
858
+ "name": "_onChange",
859
+ "privacy": "private"
860
+ }
861
+ ],
862
+ "events": [
863
+ {
864
+ "name": "change",
865
+ "type": {
866
+ "text": "Event"
867
+ },
868
+ "description": "When the checked state changes"
869
+ }
870
+ ],
871
+ "attributes": [
872
+ {
873
+ "name": "checked",
874
+ "type": {
875
+ "text": "boolean"
876
+ },
877
+ "default": "false",
878
+ "description": "Whether the checkbox is checked.",
879
+ "fieldName": "checked"
880
+ },
881
+ {
882
+ "name": "indeterminate",
883
+ "type": {
884
+ "text": "boolean"
885
+ },
886
+ "default": "false",
887
+ "description": "Mixed state; cleared when the user toggles the checkbox.",
888
+ "fieldName": "indeterminate"
889
+ },
890
+ {
891
+ "name": "disabled",
892
+ "type": {
893
+ "text": "boolean"
894
+ },
895
+ "default": "false",
896
+ "description": "Disables interaction and form participation.",
897
+ "fieldName": "disabled"
898
+ },
899
+ {
900
+ "name": "value",
901
+ "type": {
902
+ "text": "string"
903
+ },
904
+ "default": "'on'",
905
+ "description": "Form value submitted when checked.",
906
+ "fieldName": "value"
907
+ },
908
+ {
909
+ "name": "name",
910
+ "type": {
911
+ "text": "string"
912
+ },
913
+ "default": "''",
914
+ "description": "Form field name.",
915
+ "fieldName": "name"
916
+ },
917
+ {
918
+ "name": "label",
919
+ "type": {
920
+ "text": "string"
921
+ },
922
+ "default": "''",
923
+ "description": "Label text; falls back to slotted content when empty.",
924
+ "fieldName": "label"
925
+ }
926
+ ],
927
+ "superclass": {
928
+ "name": "LitElement",
929
+ "package": "lit"
930
+ },
931
+ "tagName": "rr-checkbox",
932
+ "customElement": true
933
+ }
934
+ ],
935
+ "exports": [
936
+ {
937
+ "kind": "js",
938
+ "name": "RrCheckbox",
939
+ "declaration": {
940
+ "name": "RrCheckbox",
941
+ "module": "src/checkbox/checkbox.ts"
942
+ }
943
+ },
944
+ {
945
+ "kind": "custom-element-definition",
946
+ "name": "rr-checkbox",
947
+ "declaration": {
948
+ "name": "RrCheckbox",
949
+ "module": "src/checkbox/checkbox.ts"
950
+ }
951
+ }
952
+ ]
953
+ },
954
+ {
955
+ "kind": "javascript-module",
956
+ "path": "src/dialog/dialog.figma.ts",
957
+ "declarations": [],
958
+ "exports": []
959
+ },
960
+ {
961
+ "kind": "javascript-module",
962
+ "path": "src/dialog/dialog.ts",
963
+ "declarations": [
964
+ {
965
+ "kind": "class",
966
+ "description": "`<rr-dialog>` — modal dialog using the native `<dialog>` element.\n\nLeverages native focus trap, Escape-to-close, and `::backdrop`.\nProgrammatic control via `show()` / `close()` methods, or bind the\n`open` property/attribute.",
967
+ "name": "RrDialog",
968
+ "slots": [
969
+ {
970
+ "description": "Dialog body content",
971
+ "name": "—"
972
+ },
973
+ {
974
+ "description": "— Action buttons (displayed in a right-aligned footer row)",
975
+ "name": "footer"
976
+ }
977
+ ],
978
+ "members": [
979
+ {
980
+ "kind": "field",
981
+ "name": "heading",
982
+ "type": {
983
+ "text": "string"
984
+ },
985
+ "default": "''",
986
+ "description": "Dialog title text rendered in the header.",
987
+ "attribute": "heading"
988
+ },
989
+ {
990
+ "kind": "field",
991
+ "name": "open",
992
+ "type": {
993
+ "text": "boolean"
994
+ },
995
+ "default": "false",
996
+ "description": "Whether the dialog is open. Reflected to an attribute.",
997
+ "attribute": "open",
998
+ "reflects": true
999
+ },
1000
+ {
1001
+ "kind": "field",
1002
+ "name": "closeOnBackdrop",
1003
+ "type": {
1004
+ "text": "boolean"
1005
+ },
1006
+ "default": "true",
1007
+ "description": "Close the dialog when the backdrop is clicked.",
1008
+ "attribute": "close-on-backdrop"
1009
+ },
1010
+ {
1011
+ "kind": "field",
1012
+ "name": "_dialog",
1013
+ "type": {
1014
+ "text": "HTMLDialogElement"
1015
+ },
1016
+ "privacy": "private"
1017
+ },
1018
+ {
1019
+ "kind": "method",
1020
+ "name": "show",
1021
+ "description": "Open the dialog as a modal."
1022
+ },
1023
+ {
1024
+ "kind": "method",
1025
+ "name": "close",
1026
+ "description": "Close the dialog. Single source of truth — always dispatches `rr-dialog-close`.\nAlso called internally when Escape is pressed (via native `close` event)."
1027
+ },
1028
+ {
1029
+ "kind": "method",
1030
+ "name": "_onBackdropClick",
1031
+ "privacy": "private",
1032
+ "parameters": [
1033
+ {
1034
+ "name": "e",
1035
+ "type": {
1036
+ "text": "MouseEvent"
1037
+ }
1038
+ }
1039
+ ]
1040
+ },
1041
+ {
1042
+ "kind": "method",
1043
+ "name": "_onNativeClose",
1044
+ "privacy": "private"
1045
+ }
1046
+ ],
1047
+ "events": [
1048
+ {
1049
+ "name": "rr-dialog-close",
1050
+ "type": {
1051
+ "text": "CustomEvent"
1052
+ },
1053
+ "description": "Fired whenever the dialog closes (Escape, close button, or programmatic)"
1054
+ }
1055
+ ],
1056
+ "attributes": [
1057
+ {
1058
+ "description": "Dialog title text rendered in the header.",
1059
+ "name": "heading",
1060
+ "type": {
1061
+ "text": "string"
1062
+ },
1063
+ "default": "''",
1064
+ "fieldName": "heading"
1065
+ },
1066
+ {
1067
+ "type": {
1068
+ "text": "boolean"
1069
+ },
1070
+ "description": "Whether the dialog is open. Reflected to an attribute.",
1071
+ "name": "open",
1072
+ "default": "false",
1073
+ "fieldName": "open"
1074
+ },
1075
+ {
1076
+ "type": {
1077
+ "text": "boolean"
1078
+ },
1079
+ "description": "Close the dialog when the backdrop is clicked.",
1080
+ "name": "close-on-backdrop",
1081
+ "default": "true",
1082
+ "fieldName": "closeOnBackdrop"
1083
+ }
1084
+ ],
1085
+ "superclass": {
1086
+ "name": "LitElement",
1087
+ "package": "lit"
1088
+ },
1089
+ "tagName": "rr-dialog",
1090
+ "customElement": true
1091
+ }
1092
+ ],
1093
+ "exports": [
1094
+ {
1095
+ "kind": "js",
1096
+ "name": "RrDialog",
1097
+ "declaration": {
1098
+ "name": "RrDialog",
1099
+ "module": "src/dialog/dialog.ts"
1100
+ }
1101
+ },
1102
+ {
1103
+ "kind": "custom-element-definition",
1104
+ "name": "rr-dialog",
1105
+ "declaration": {
1106
+ "name": "RrDialog",
1107
+ "module": "src/dialog/dialog.ts"
1108
+ }
1109
+ }
1110
+ ]
1111
+ },
1112
+ {
1113
+ "kind": "javascript-module",
1114
+ "path": "src/icon/icon.figma.ts",
1115
+ "declarations": [],
1116
+ "exports": []
1117
+ },
1118
+ {
1119
+ "kind": "javascript-module",
1120
+ "path": "src/icon/icon.ts",
1121
+ "declarations": [
1122
+ {
1123
+ "kind": "class",
1124
+ "description": "A sized, accessible wrapper for inline SVG icons.\n\nSlot any SVG icon inside — the component handles sizing via icon-size\ntokens and accessibility attributes. By default the icon is decorative\n(aria-hidden=\"true\"). Set `aria-label` to make it a meaningful image.",
1125
+ "name": "RrIcon",
1126
+ "cssProperties": [
1127
+ {
1128
+ "description": "16px",
1129
+ "name": "--icon-size-compact"
1130
+ },
1131
+ {
1132
+ "description": "20px",
1133
+ "name": "--icon-size-default"
1134
+ },
1135
+ {
1136
+ "description": "24px",
1137
+ "name": "--icon-size-large"
1138
+ },
1139
+ {
1140
+ "description": "32px",
1141
+ "name": "--icon-size-xl"
1142
+ }
1143
+ ],
1144
+ "slots": [
1145
+ {
1146
+ "description": "The SVG icon element.",
1147
+ "name": ""
1148
+ }
1149
+ ],
1150
+ "members": [
1151
+ {
1152
+ "kind": "field",
1153
+ "name": "size",
1154
+ "type": {
1155
+ "text": "IconSize"
1156
+ },
1157
+ "default": "'default'",
1158
+ "description": "Icon size, mapped to the icon-size design tokens. Reflected to an attribute.",
1159
+ "attribute": "size",
1160
+ "reflects": true
1161
+ },
1162
+ {
1163
+ "kind": "field",
1164
+ "name": "ariaLabel",
1165
+ "type": {
1166
+ "text": "string | null"
1167
+ },
1168
+ "default": "null",
1169
+ "description": "Accessible label. When set, the host gets role=\"img\"; otherwise it is aria-hidden=\"true\" (decorative).",
1170
+ "attribute": "aria-label"
1171
+ }
1172
+ ],
1173
+ "attributes": [
1174
+ {
1175
+ "name": "size",
1176
+ "type": {
1177
+ "text": "IconSize"
1178
+ },
1179
+ "default": "'default'",
1180
+ "description": "Icon size, mapped to the icon-size design tokens. Reflected to an attribute.",
1181
+ "fieldName": "size"
1182
+ },
1183
+ {
1184
+ "name": "aria-label",
1185
+ "type": {
1186
+ "text": "string | null"
1187
+ },
1188
+ "default": "null",
1189
+ "description": "Accessible label. When set, the host gets role=\"img\"; otherwise it is aria-hidden=\"true\" (decorative).",
1190
+ "fieldName": "ariaLabel"
1191
+ }
1192
+ ],
1193
+ "superclass": {
1194
+ "name": "LitElement",
1195
+ "package": "lit"
1196
+ },
1197
+ "tagName": "rr-icon",
1198
+ "customElement": true
1199
+ }
1200
+ ],
1201
+ "exports": [
1202
+ {
1203
+ "kind": "js",
1204
+ "name": "RrIcon",
1205
+ "declaration": {
1206
+ "name": "RrIcon",
1207
+ "module": "src/icon/icon.ts"
1208
+ }
1209
+ },
1210
+ {
1211
+ "kind": "custom-element-definition",
1212
+ "name": "rr-icon",
1213
+ "declaration": {
1214
+ "name": "RrIcon",
1215
+ "module": "src/icon/icon.ts"
1216
+ }
1217
+ }
1218
+ ]
1219
+ },
1220
+ {
1221
+ "kind": "javascript-module",
1222
+ "path": "src/index.ts",
1223
+ "declarations": [],
1224
+ "exports": [
1225
+ {
1226
+ "kind": "js",
1227
+ "name": "RrAlert",
1228
+ "declaration": {
1229
+ "name": "RrAlert",
1230
+ "module": "./alert/alert.js"
1231
+ }
1232
+ },
1233
+ {
1234
+ "kind": "js",
1235
+ "name": "RrAvatar",
1236
+ "declaration": {
1237
+ "name": "RrAvatar",
1238
+ "module": "./avatar/avatar.js"
1239
+ }
1240
+ },
1241
+ {
1242
+ "kind": "js",
1243
+ "name": "RrBadge",
1244
+ "declaration": {
1245
+ "name": "RrBadge",
1246
+ "module": "./badge/badge.js"
1247
+ }
1248
+ },
1249
+ {
1250
+ "kind": "js",
1251
+ "name": "RrButton",
1252
+ "declaration": {
1253
+ "name": "RrButton",
1254
+ "module": "./button/button.js"
1255
+ }
1256
+ },
1257
+ {
1258
+ "kind": "js",
1259
+ "name": "RrCard",
1260
+ "declaration": {
1261
+ "name": "RrCard",
1262
+ "module": "./card/card.js"
1263
+ }
1264
+ },
1265
+ {
1266
+ "kind": "js",
1267
+ "name": "RrCheckbox",
1268
+ "declaration": {
1269
+ "name": "RrCheckbox",
1270
+ "module": "./checkbox/checkbox.js"
1271
+ }
1272
+ },
1273
+ {
1274
+ "kind": "js",
1275
+ "name": "RrDialog",
1276
+ "declaration": {
1277
+ "name": "RrDialog",
1278
+ "module": "./dialog/dialog.js"
1279
+ }
1280
+ },
1281
+ {
1282
+ "kind": "js",
1283
+ "name": "RrIcon",
1284
+ "declaration": {
1285
+ "name": "RrIcon",
1286
+ "module": "./icon/icon.js"
1287
+ }
1288
+ },
1289
+ {
1290
+ "kind": "js",
1291
+ "name": "RrInput",
1292
+ "declaration": {
1293
+ "name": "RrInput",
1294
+ "module": "./input/input.js"
1295
+ }
1296
+ },
1297
+ {
1298
+ "kind": "js",
1299
+ "name": "RrLink",
1300
+ "declaration": {
1301
+ "name": "RrLink",
1302
+ "module": "./link/link.js"
1303
+ }
1304
+ },
1305
+ {
1306
+ "kind": "js",
1307
+ "name": "RrProgress",
1308
+ "declaration": {
1309
+ "name": "RrProgress",
1310
+ "module": "./progress/progress.js"
1311
+ }
1312
+ },
1313
+ {
1314
+ "kind": "js",
1315
+ "name": "RrRadio",
1316
+ "declaration": {
1317
+ "name": "RrRadio",
1318
+ "module": "./radio/radio.js"
1319
+ }
1320
+ },
1321
+ {
1322
+ "kind": "js",
1323
+ "name": "RrRadioGroup",
1324
+ "declaration": {
1325
+ "name": "RrRadioGroup",
1326
+ "module": "./radio/radio-group.js"
1327
+ }
1328
+ },
1329
+ {
1330
+ "kind": "js",
1331
+ "name": "RrSelect",
1332
+ "declaration": {
1333
+ "name": "RrSelect",
1334
+ "module": "./select/select.js"
1335
+ }
1336
+ },
1337
+ {
1338
+ "kind": "js",
1339
+ "name": "RrSkeleton",
1340
+ "declaration": {
1341
+ "name": "RrSkeleton",
1342
+ "module": "./skeleton/skeleton.js"
1343
+ }
1344
+ },
1345
+ {
1346
+ "kind": "js",
1347
+ "name": "RrSpinner",
1348
+ "declaration": {
1349
+ "name": "RrSpinner",
1350
+ "module": "./spinner/spinner.js"
1351
+ }
1352
+ },
1353
+ {
1354
+ "kind": "js",
1355
+ "name": "RrTab",
1356
+ "declaration": {
1357
+ "name": "RrTab",
1358
+ "module": "./tabs/tab.js"
1359
+ }
1360
+ },
1361
+ {
1362
+ "kind": "js",
1363
+ "name": "RrTabList",
1364
+ "declaration": {
1365
+ "name": "RrTabList",
1366
+ "module": "./tabs/tab-list.js"
1367
+ }
1368
+ },
1369
+ {
1370
+ "kind": "js",
1371
+ "name": "RrTag",
1372
+ "declaration": {
1373
+ "name": "RrTag",
1374
+ "module": "./tag/tag.js"
1375
+ }
1376
+ },
1377
+ {
1378
+ "kind": "js",
1379
+ "name": "RrTextarea",
1380
+ "declaration": {
1381
+ "name": "RrTextarea",
1382
+ "module": "./textarea/textarea.js"
1383
+ }
1384
+ },
1385
+ {
1386
+ "kind": "js",
1387
+ "name": "RrToggle",
1388
+ "declaration": {
1389
+ "name": "RrToggle",
1390
+ "module": "./toggle/toggle.js"
1391
+ }
1392
+ }
1393
+ ]
1394
+ },
1395
+ {
1396
+ "kind": "javascript-module",
1397
+ "path": "src/input/input.figma.ts",
1398
+ "declarations": [],
1399
+ "exports": []
1400
+ },
1401
+ {
1402
+ "kind": "javascript-module",
1403
+ "path": "src/input/input.ts",
1404
+ "declarations": [
1405
+ {
1406
+ "kind": "class",
1407
+ "description": "A form-associated text input with label, helper text, and error state.\n\nUses `ElementInternals` for native form participation and\n`delegatesFocus` so the host forwards focus to the inner `<input>`.",
1408
+ "name": "RrInput",
1409
+ "cssParts": [
1410
+ {
1411
+ "description": "The label element",
1412
+ "name": "label"
1413
+ },
1414
+ {
1415
+ "description": "The inner input element",
1416
+ "name": "input"
1417
+ },
1418
+ {
1419
+ "description": "The helper text container",
1420
+ "name": "helper"
1421
+ },
1422
+ {
1423
+ "description": "The error message container",
1424
+ "name": "error"
1425
+ }
1426
+ ],
1427
+ "slots": [
1428
+ {
1429
+ "description": "Optional override for the label text",
1430
+ "name": "label"
1431
+ }
1432
+ ],
1433
+ "members": [
1434
+ {
1435
+ "kind": "field",
1436
+ "name": "formAssociated",
1437
+ "type": {
1438
+ "text": "boolean"
1439
+ },
1440
+ "static": true,
1441
+ "default": "true"
1442
+ },
1443
+ {
1444
+ "kind": "field",
1445
+ "name": "shadowRootOptions",
1446
+ "type": {
1447
+ "text": "object"
1448
+ },
1449
+ "static": true,
1450
+ "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
1451
+ },
1452
+ {
1453
+ "kind": "field",
1454
+ "name": "type",
1455
+ "type": {
1456
+ "text": "string"
1457
+ },
1458
+ "default": "'text'",
1459
+ "description": "Input type attribute (text, email, password, etc.).",
1460
+ "attribute": "type"
1461
+ },
1462
+ {
1463
+ "kind": "field",
1464
+ "name": "name",
1465
+ "type": {
1466
+ "text": "string"
1467
+ },
1468
+ "default": "''",
1469
+ "description": "Form field name for submission.",
1470
+ "attribute": "name"
1471
+ },
1472
+ {
1473
+ "kind": "field",
1474
+ "name": "value",
1475
+ "type": {
1476
+ "text": "string"
1477
+ },
1478
+ "default": "''",
1479
+ "description": "Current input value.",
1480
+ "attribute": "value"
1481
+ },
1482
+ {
1483
+ "kind": "field",
1484
+ "name": "placeholder",
1485
+ "type": {
1486
+ "text": "string"
1487
+ },
1488
+ "default": "''",
1489
+ "description": "Placeholder text shown when empty.",
1490
+ "attribute": "placeholder"
1491
+ },
1492
+ {
1493
+ "kind": "field",
1494
+ "name": "label",
1495
+ "type": {
1496
+ "text": "string"
1497
+ },
1498
+ "default": "''",
1499
+ "description": "Visible label text above the input.",
1500
+ "attribute": "label"
1501
+ },
1502
+ {
1503
+ "kind": "field",
1504
+ "name": "helperText",
1505
+ "type": {
1506
+ "text": "string"
1507
+ },
1508
+ "default": "''",
1509
+ "description": "Helper text below the input. Hidden when error-text is set.",
1510
+ "attribute": "helper-text"
1511
+ },
1512
+ {
1513
+ "kind": "field",
1514
+ "name": "errorText",
1515
+ "type": {
1516
+ "text": "string"
1517
+ },
1518
+ "default": "''",
1519
+ "description": "Error message below the input. Sets aria-invalid and replaces helper text.",
1520
+ "attribute": "error-text"
1521
+ },
1522
+ {
1523
+ "kind": "field",
1524
+ "name": "required",
1525
+ "type": {
1526
+ "text": "boolean"
1527
+ },
1528
+ "default": "false",
1529
+ "description": "Marks the field as required. Shows asterisk and sets aria-required.",
1530
+ "attribute": "required",
1531
+ "reflects": true
1532
+ },
1533
+ {
1534
+ "kind": "field",
1535
+ "name": "disabled",
1536
+ "type": {
1537
+ "text": "boolean"
1538
+ },
1539
+ "default": "false",
1540
+ "description": "Disables the input.",
1541
+ "attribute": "disabled",
1542
+ "reflects": true
1543
+ },
1544
+ {
1545
+ "kind": "field",
1546
+ "name": "autoComplete",
1547
+ "type": {
1548
+ "text": "string"
1549
+ },
1550
+ "default": "''",
1551
+ "description": "Autocomplete hint for browser autofill.",
1552
+ "attribute": "autocomplete"
1553
+ },
1554
+ {
1555
+ "kind": "field",
1556
+ "name": "_input",
1557
+ "type": {
1558
+ "text": "HTMLInputElement"
1559
+ },
1560
+ "privacy": "private"
1561
+ },
1562
+ {
1563
+ "kind": "field",
1564
+ "name": "_internals",
1565
+ "type": {
1566
+ "text": "ElementInternals"
1567
+ },
1568
+ "privacy": "private"
1569
+ },
1570
+ {
1571
+ "kind": "field",
1572
+ "name": "_isInvalid",
1573
+ "type": {
1574
+ "text": "boolean"
1575
+ },
1576
+ "privacy": "private",
1577
+ "readonly": true
1578
+ },
1579
+ {
1580
+ "kind": "method",
1581
+ "name": "_onInput",
1582
+ "privacy": "private",
1583
+ "parameters": [
1584
+ {
1585
+ "name": "e",
1586
+ "type": {
1587
+ "text": "Event"
1588
+ }
1589
+ }
1590
+ ]
1591
+ },
1592
+ {
1593
+ "kind": "method",
1594
+ "name": "_onChange",
1595
+ "privacy": "private",
1596
+ "parameters": [
1597
+ {
1598
+ "name": "e",
1599
+ "type": {
1600
+ "text": "Event"
1601
+ }
1602
+ }
1603
+ ]
1604
+ }
1605
+ ],
1606
+ "events": [
1607
+ {
1608
+ "name": "input",
1609
+ "type": {
1610
+ "text": "Event"
1611
+ },
1612
+ "description": "When the input value changes (mirrors native input event)"
1613
+ },
1614
+ {
1615
+ "name": "change",
1616
+ "type": {
1617
+ "text": "Event"
1618
+ },
1619
+ "description": "When the input value is committed (mirrors native change event)"
1620
+ }
1621
+ ],
1622
+ "attributes": [
1623
+ {
1624
+ "name": "type",
1625
+ "type": {
1626
+ "text": "string"
1627
+ },
1628
+ "default": "'text'",
1629
+ "description": "Input type attribute (text, email, password, etc.).",
1630
+ "fieldName": "type"
1631
+ },
1632
+ {
1633
+ "name": "name",
1634
+ "type": {
1635
+ "text": "string"
1636
+ },
1637
+ "default": "''",
1638
+ "description": "Form field name for submission.",
1639
+ "fieldName": "name"
1640
+ },
1641
+ {
1642
+ "name": "value",
1643
+ "type": {
1644
+ "text": "string"
1645
+ },
1646
+ "default": "''",
1647
+ "description": "Current input value.",
1648
+ "fieldName": "value"
1649
+ },
1650
+ {
1651
+ "name": "placeholder",
1652
+ "type": {
1653
+ "text": "string"
1654
+ },
1655
+ "default": "''",
1656
+ "description": "Placeholder text shown when empty.",
1657
+ "fieldName": "placeholder"
1658
+ },
1659
+ {
1660
+ "name": "label",
1661
+ "type": {
1662
+ "text": "string"
1663
+ },
1664
+ "default": "''",
1665
+ "description": "Visible label text above the input.",
1666
+ "fieldName": "label"
1667
+ },
1668
+ {
1669
+ "name": "helper-text",
1670
+ "type": {
1671
+ "text": "string"
1672
+ },
1673
+ "default": "''",
1674
+ "description": "Helper text below the input. Hidden when error-text is set.",
1675
+ "fieldName": "helperText"
1676
+ },
1677
+ {
1678
+ "name": "error-text",
1679
+ "type": {
1680
+ "text": "string"
1681
+ },
1682
+ "default": "''",
1683
+ "description": "Error message below the input. Sets aria-invalid and replaces helper text.",
1684
+ "fieldName": "errorText"
1685
+ },
1686
+ {
1687
+ "name": "required",
1688
+ "type": {
1689
+ "text": "boolean"
1690
+ },
1691
+ "default": "false",
1692
+ "description": "Marks the field as required. Shows asterisk and sets aria-required.",
1693
+ "fieldName": "required"
1694
+ },
1695
+ {
1696
+ "name": "disabled",
1697
+ "type": {
1698
+ "text": "boolean"
1699
+ },
1700
+ "default": "false",
1701
+ "description": "Disables the input.",
1702
+ "fieldName": "disabled"
1703
+ },
1704
+ {
1705
+ "name": "autocomplete",
1706
+ "type": {
1707
+ "text": "string"
1708
+ },
1709
+ "default": "''",
1710
+ "description": "Autocomplete hint for browser autofill.",
1711
+ "fieldName": "autoComplete"
1712
+ }
1713
+ ],
1714
+ "superclass": {
1715
+ "name": "LitElement",
1716
+ "package": "lit"
1717
+ },
1718
+ "tagName": "rr-input",
1719
+ "customElement": true
1720
+ }
1721
+ ],
1722
+ "exports": [
1723
+ {
1724
+ "kind": "js",
1725
+ "name": "RrInput",
1726
+ "declaration": {
1727
+ "name": "RrInput",
1728
+ "module": "src/input/input.ts"
1729
+ }
1730
+ },
1731
+ {
1732
+ "kind": "custom-element-definition",
1733
+ "name": "rr-input",
1734
+ "declaration": {
1735
+ "name": "RrInput",
1736
+ "module": "src/input/input.ts"
1737
+ }
1738
+ }
1739
+ ]
1740
+ },
1741
+ {
1742
+ "kind": "javascript-module",
1743
+ "path": "src/link/link.figma.ts",
1744
+ "declarations": [],
1745
+ "exports": []
1746
+ },
1747
+ {
1748
+ "kind": "javascript-module",
1749
+ "path": "src/link/link.ts",
1750
+ "declarations": [
1751
+ {
1752
+ "kind": "class",
1753
+ "description": "An anchor element that enforces the design system link style.\n\nGlobal rule: links are underlined by default and lose the underline on hover.\nThis component encapsulates that behaviour so it applies consistently across\nshadow-DOM boundaries.\n\nFor external links (`target=\"_blank\"`), `rel=\"noopener noreferrer\"` is added\nautomatically unless overridden.",
1754
+ "name": "RrLink",
1755
+ "cssProperties": [
1756
+ {
1757
+ "description": "default link colour",
1758
+ "name": "--color-foreground-action"
1759
+ },
1760
+ {
1761
+ "description": "muted variant",
1762
+ "name": "--color-foreground-alt"
1763
+ },
1764
+ {
1765
+ "description": "subtle variant",
1766
+ "name": "--color-foreground-muted"
1767
+ }
1768
+ ],
1769
+ "slots": [
1770
+ {
1771
+ "description": "Link label content.",
1772
+ "name": ""
1773
+ }
1774
+ ],
1775
+ "members": [
1776
+ {
1777
+ "kind": "field",
1778
+ "name": "href",
1779
+ "type": {
1780
+ "text": "string"
1781
+ },
1782
+ "default": "''",
1783
+ "description": "Link destination.",
1784
+ "attribute": "href"
1785
+ },
1786
+ {
1787
+ "kind": "field",
1788
+ "name": "target",
1789
+ "type": {
1790
+ "text": "'_self' | '_blank' | '_parent' | '_top'"
1791
+ },
1792
+ "default": "'_self'",
1793
+ "description": "Browsing context. Use \"_blank\" to open in a new tab.",
1794
+ "attribute": "target"
1795
+ },
1796
+ {
1797
+ "kind": "field",
1798
+ "name": "rel",
1799
+ "type": {
1800
+ "text": "string"
1801
+ },
1802
+ "default": "''",
1803
+ "description": "rel attribute. Defaults to \"noopener noreferrer\" when target=\"_blank\" unless overridden.",
1804
+ "attribute": "rel"
1805
+ },
1806
+ {
1807
+ "kind": "field",
1808
+ "name": "variant",
1809
+ "type": {
1810
+ "text": "LinkVariant"
1811
+ },
1812
+ "default": "'default'",
1813
+ "description": "Colour variant. Reflected to an attribute.",
1814
+ "attribute": "variant",
1815
+ "reflects": true
1816
+ },
1817
+ {
1818
+ "kind": "field",
1819
+ "name": "ariaLabel",
1820
+ "type": {
1821
+ "text": "string | null"
1822
+ },
1823
+ "default": "null",
1824
+ "description": "Accessible label forwarded to the anchor when link text alone is insufficient.",
1825
+ "attribute": "aria-label"
1826
+ },
1827
+ {
1828
+ "kind": "field",
1829
+ "name": "_rel",
1830
+ "type": {
1831
+ "text": "string"
1832
+ },
1833
+ "privacy": "private",
1834
+ "readonly": true
1835
+ }
1836
+ ],
1837
+ "attributes": [
1838
+ {
1839
+ "name": "href",
1840
+ "type": {
1841
+ "text": "string"
1842
+ },
1843
+ "default": "''",
1844
+ "description": "Link destination.",
1845
+ "fieldName": "href"
1846
+ },
1847
+ {
1848
+ "name": "target",
1849
+ "type": {
1850
+ "text": "'_self' | '_blank' | '_parent' | '_top'"
1851
+ },
1852
+ "default": "'_self'",
1853
+ "description": "Browsing context. Use \"_blank\" to open in a new tab.",
1854
+ "fieldName": "target"
1855
+ },
1856
+ {
1857
+ "name": "rel",
1858
+ "type": {
1859
+ "text": "string"
1860
+ },
1861
+ "default": "''",
1862
+ "description": "rel attribute. Defaults to \"noopener noreferrer\" when target=\"_blank\" unless overridden.",
1863
+ "fieldName": "rel"
1864
+ },
1865
+ {
1866
+ "name": "variant",
1867
+ "type": {
1868
+ "text": "LinkVariant"
1869
+ },
1870
+ "default": "'default'",
1871
+ "description": "Colour variant. Reflected to an attribute.",
1872
+ "fieldName": "variant"
1873
+ },
1874
+ {
1875
+ "name": "aria-label",
1876
+ "type": {
1877
+ "text": "string | null"
1878
+ },
1879
+ "default": "null",
1880
+ "description": "Accessible label forwarded to the anchor when link text alone is insufficient.",
1881
+ "fieldName": "ariaLabel"
1882
+ }
1883
+ ],
1884
+ "superclass": {
1885
+ "name": "LitElement",
1886
+ "package": "lit"
1887
+ },
1888
+ "tagName": "rr-link",
1889
+ "customElement": true
1890
+ }
1891
+ ],
1892
+ "exports": [
1893
+ {
1894
+ "kind": "js",
1895
+ "name": "RrLink",
1896
+ "declaration": {
1897
+ "name": "RrLink",
1898
+ "module": "src/link/link.ts"
1899
+ }
1900
+ },
1901
+ {
1902
+ "kind": "custom-element-definition",
1903
+ "name": "rr-link",
1904
+ "declaration": {
1905
+ "name": "RrLink",
1906
+ "module": "src/link/link.ts"
1907
+ }
1908
+ }
1909
+ ]
1910
+ },
1911
+ {
1912
+ "kind": "javascript-module",
1913
+ "path": "src/progress/progress.figma.ts",
1914
+ "declarations": [],
1915
+ "exports": []
1916
+ },
1917
+ {
1918
+ "kind": "javascript-module",
1919
+ "path": "src/progress/progress.ts",
1920
+ "declarations": [
1921
+ {
1922
+ "kind": "class",
1923
+ "description": "`<rr-progress>` — horizontal progress bar.\n\nSupports determinate (0–max) and indeterminate (animated) modes.\nFully accessible via native `role=\"progressbar\"` ARIA attributes.",
1924
+ "name": "RrProgress",
1925
+ "members": [
1926
+ {
1927
+ "kind": "field",
1928
+ "name": "value",
1929
+ "type": {
1930
+ "text": "number"
1931
+ },
1932
+ "default": "0",
1933
+ "description": "Current value (0–max). Ignored when indeterminate.",
1934
+ "attribute": "value"
1935
+ },
1936
+ {
1937
+ "kind": "field",
1938
+ "name": "max",
1939
+ "type": {
1940
+ "text": "number"
1941
+ },
1942
+ "default": "100",
1943
+ "description": "Maximum value.",
1944
+ "attribute": "max"
1945
+ },
1946
+ {
1947
+ "kind": "field",
1948
+ "name": "indeterminate",
1949
+ "type": {
1950
+ "text": "boolean"
1951
+ },
1952
+ "default": "false",
1953
+ "description": "Show an animated indeterminate state instead of a fixed value. Reflected to an attribute.",
1954
+ "attribute": "indeterminate",
1955
+ "reflects": true
1956
+ },
1957
+ {
1958
+ "kind": "field",
1959
+ "name": "label",
1960
+ "type": {
1961
+ "text": "string"
1962
+ },
1963
+ "default": "''",
1964
+ "description": "Accessible label, applied as aria-label. Required when no visible label is nearby.",
1965
+ "attribute": "label"
1966
+ },
1967
+ {
1968
+ "kind": "field",
1969
+ "name": "_pct",
1970
+ "type": {
1971
+ "text": "number"
1972
+ },
1973
+ "privacy": "private",
1974
+ "readonly": true
1975
+ }
1976
+ ],
1977
+ "attributes": [
1978
+ {
1979
+ "type": {
1980
+ "text": "number"
1981
+ },
1982
+ "description": "Current value (0–max). Ignored when indeterminate.",
1983
+ "name": "value",
1984
+ "default": "0",
1985
+ "fieldName": "value"
1986
+ },
1987
+ {
1988
+ "type": {
1989
+ "text": "number"
1990
+ },
1991
+ "description": "Maximum value.",
1992
+ "name": "max",
1993
+ "default": "100",
1994
+ "fieldName": "max"
1995
+ },
1996
+ {
1997
+ "description": "Show an animated indeterminate state instead of a fixed value. Reflected to an attribute.",
1998
+ "name": "indeterminate",
1999
+ "type": {
2000
+ "text": "boolean"
2001
+ },
2002
+ "default": "false",
2003
+ "fieldName": "indeterminate"
2004
+ },
2005
+ {
2006
+ "description": "Accessible label, applied as aria-label. Required when no visible label is nearby.",
2007
+ "name": "label",
2008
+ "type": {
2009
+ "text": "string"
2010
+ },
2011
+ "default": "''",
2012
+ "fieldName": "label"
2013
+ }
2014
+ ],
2015
+ "superclass": {
2016
+ "name": "LitElement",
2017
+ "package": "lit"
2018
+ },
2019
+ "tagName": "rr-progress",
2020
+ "customElement": true
2021
+ }
2022
+ ],
2023
+ "exports": [
2024
+ {
2025
+ "kind": "js",
2026
+ "name": "RrProgress",
2027
+ "declaration": {
2028
+ "name": "RrProgress",
2029
+ "module": "src/progress/progress.ts"
2030
+ }
2031
+ },
2032
+ {
2033
+ "kind": "custom-element-definition",
2034
+ "name": "rr-progress",
2035
+ "declaration": {
2036
+ "name": "RrProgress",
2037
+ "module": "src/progress/progress.ts"
2038
+ }
2039
+ }
2040
+ ]
2041
+ },
2042
+ {
2043
+ "kind": "javascript-module",
2044
+ "path": "src/radio/radio-group.ts",
2045
+ "declarations": [
2046
+ {
2047
+ "kind": "class",
2048
+ "description": "A form-associated group of radio buttons.\n\nManages selection state and form participation for its `<rr-radio>` children.\nRenders a `<fieldset>` + `<legend>` for accessible grouping.\n\nUsage:\n <rr-radio-group name=\"size\" label=\"Size\" value=\"md\">\n <rr-radio value=\"sm\">Small</rr-radio>\n <rr-radio value=\"md\">Medium</rr-radio>\n <rr-radio value=\"lg\">Large</rr-radio>\n </rr-radio-group>",
2049
+ "name": "RrRadioGroup",
2050
+ "cssParts": [
2051
+ {
2052
+ "description": "The outer fieldset element",
2053
+ "name": "fieldset"
2054
+ },
2055
+ {
2056
+ "description": "The legend / label element",
2057
+ "name": "legend"
2058
+ }
2059
+ ],
2060
+ "slots": [
2061
+ {
2062
+ "description": "rr-radio elements",
2063
+ "name": ""
2064
+ }
2065
+ ],
2066
+ "members": [
2067
+ {
2068
+ "kind": "field",
2069
+ "name": "formAssociated",
2070
+ "type": {
2071
+ "text": "boolean"
2072
+ },
2073
+ "static": true,
2074
+ "default": "true"
2075
+ },
2076
+ {
2077
+ "kind": "field",
2078
+ "name": "name",
2079
+ "type": {
2080
+ "text": "string"
2081
+ },
2082
+ "default": "''",
2083
+ "description": "Form field name submitted with the selected value.",
2084
+ "attribute": "name"
2085
+ },
2086
+ {
2087
+ "kind": "field",
2088
+ "name": "value",
2089
+ "type": {
2090
+ "text": "string"
2091
+ },
2092
+ "default": "''",
2093
+ "description": "Selected radio value. Syncs the checked state of child radios.",
2094
+ "attribute": "value",
2095
+ "reflects": true
2096
+ },
2097
+ {
2098
+ "kind": "field",
2099
+ "name": "label",
2100
+ "type": {
2101
+ "text": "string"
2102
+ },
2103
+ "default": "''",
2104
+ "description": "Group label rendered as the legend.",
2105
+ "attribute": "label"
2106
+ },
2107
+ {
2108
+ "kind": "field",
2109
+ "name": "errorText",
2110
+ "type": {
2111
+ "text": "string"
2112
+ },
2113
+ "default": "''",
2114
+ "description": "Error message; sets data-invalid and a custom validity. Maps to attribute error-text.",
2115
+ "attribute": "error-text"
2116
+ },
2117
+ {
2118
+ "kind": "field",
2119
+ "name": "required",
2120
+ "type": {
2121
+ "text": "boolean"
2122
+ },
2123
+ "default": "false",
2124
+ "description": "Marks the group as required.",
2125
+ "attribute": "required",
2126
+ "reflects": true
2127
+ },
2128
+ {
2129
+ "kind": "field",
2130
+ "name": "disabled",
2131
+ "type": {
2132
+ "text": "boolean"
2133
+ },
2134
+ "default": "false",
2135
+ "description": "Disables the group and all child radios.",
2136
+ "attribute": "disabled",
2137
+ "reflects": true
2138
+ },
2139
+ {
2140
+ "kind": "field",
2141
+ "name": "orientation",
2142
+ "type": {
2143
+ "text": "'vertical' | 'horizontal'"
2144
+ },
2145
+ "default": "'vertical'",
2146
+ "description": "Layout direction of the radio options.",
2147
+ "attribute": "orientation",
2148
+ "reflects": true
2149
+ },
2150
+ {
2151
+ "kind": "field",
2152
+ "name": "_internals",
2153
+ "type": {
2154
+ "text": "ElementInternals"
2155
+ },
2156
+ "privacy": "private"
2157
+ },
2158
+ {
2159
+ "kind": "method",
2160
+ "name": "_syncRadios",
2161
+ "privacy": "private"
2162
+ },
2163
+ {
2164
+ "kind": "field",
2165
+ "name": "_radios",
2166
+ "type": {
2167
+ "text": "RrRadio[]"
2168
+ },
2169
+ "privacy": "private",
2170
+ "readonly": true
2171
+ },
2172
+ {
2173
+ "kind": "field",
2174
+ "name": "_onRadioChange",
2175
+ "privacy": "private"
2176
+ }
2177
+ ],
2178
+ "events": [
2179
+ {
2180
+ "description": "When the selected value changes",
2181
+ "name": "change"
2182
+ }
2183
+ ],
2184
+ "attributes": [
2185
+ {
2186
+ "name": "name",
2187
+ "type": {
2188
+ "text": "string"
2189
+ },
2190
+ "default": "''",
2191
+ "description": "Form field name submitted with the selected value.",
2192
+ "fieldName": "name"
2193
+ },
2194
+ {
2195
+ "name": "value",
2196
+ "type": {
2197
+ "text": "string"
2198
+ },
2199
+ "default": "''",
2200
+ "description": "Selected radio value. Syncs the checked state of child radios.",
2201
+ "fieldName": "value"
2202
+ },
2203
+ {
2204
+ "name": "label",
2205
+ "type": {
2206
+ "text": "string"
2207
+ },
2208
+ "default": "''",
2209
+ "description": "Group label rendered as the legend.",
2210
+ "fieldName": "label"
2211
+ },
2212
+ {
2213
+ "name": "error-text",
2214
+ "type": {
2215
+ "text": "string"
2216
+ },
2217
+ "default": "''",
2218
+ "description": "Error message; sets data-invalid and a custom validity. Maps to attribute error-text.",
2219
+ "fieldName": "errorText"
2220
+ },
2221
+ {
2222
+ "name": "required",
2223
+ "type": {
2224
+ "text": "boolean"
2225
+ },
2226
+ "default": "false",
2227
+ "description": "Marks the group as required.",
2228
+ "fieldName": "required"
2229
+ },
2230
+ {
2231
+ "name": "disabled",
2232
+ "type": {
2233
+ "text": "boolean"
2234
+ },
2235
+ "default": "false",
2236
+ "description": "Disables the group and all child radios.",
2237
+ "fieldName": "disabled"
2238
+ },
2239
+ {
2240
+ "name": "orientation",
2241
+ "type": {
2242
+ "text": "'vertical' | 'horizontal'"
2243
+ },
2244
+ "default": "'vertical'",
2245
+ "description": "Layout direction of the radio options.",
2246
+ "fieldName": "orientation"
2247
+ }
2248
+ ],
2249
+ "superclass": {
2250
+ "name": "LitElement",
2251
+ "package": "lit"
2252
+ },
2253
+ "tagName": "rr-radio-group",
2254
+ "customElement": true
2255
+ }
2256
+ ],
2257
+ "exports": [
2258
+ {
2259
+ "kind": "js",
2260
+ "name": "RrRadioGroup",
2261
+ "declaration": {
2262
+ "name": "RrRadioGroup",
2263
+ "module": "src/radio/radio-group.ts"
2264
+ }
2265
+ },
2266
+ {
2267
+ "kind": "custom-element-definition",
2268
+ "name": "rr-radio-group",
2269
+ "declaration": {
2270
+ "name": "RrRadioGroup",
2271
+ "module": "src/radio/radio-group.ts"
2272
+ }
2273
+ }
2274
+ ]
2275
+ },
2276
+ {
2277
+ "kind": "javascript-module",
2278
+ "path": "src/radio/radio.figma.ts",
2279
+ "declarations": [],
2280
+ "exports": []
2281
+ },
2282
+ {
2283
+ "kind": "javascript-module",
2284
+ "path": "src/radio/radio.ts",
2285
+ "declarations": [
2286
+ {
2287
+ "kind": "class",
2288
+ "description": "An individual radio button. Must be used inside `<rr-radio-group>`.\n\nThe group manages the name, form value, and selection state — individual\nradios only hold their own `value` prop and visual `checked` state.",
2289
+ "name": "RrRadio",
2290
+ "cssParts": [
2291
+ {
2292
+ "description": "The visual radio circle element",
2293
+ "name": "circle"
2294
+ },
2295
+ {
2296
+ "description": "The label text element",
2297
+ "name": "label"
2298
+ }
2299
+ ],
2300
+ "slots": [
2301
+ {
2302
+ "description": "Label text",
2303
+ "name": ""
2304
+ }
2305
+ ],
2306
+ "members": [
2307
+ {
2308
+ "kind": "field",
2309
+ "name": "value",
2310
+ "type": {
2311
+ "text": "string"
2312
+ },
2313
+ "default": "''",
2314
+ "description": "The value this radio contributes to the group when selected.",
2315
+ "attribute": "value",
2316
+ "reflects": true
2317
+ },
2318
+ {
2319
+ "kind": "field",
2320
+ "name": "checked",
2321
+ "type": {
2322
+ "text": "boolean"
2323
+ },
2324
+ "default": "false",
2325
+ "description": "Visual checked state. Managed by the parent rr-radio-group.",
2326
+ "attribute": "checked",
2327
+ "reflects": true
2328
+ },
2329
+ {
2330
+ "kind": "field",
2331
+ "name": "disabled",
2332
+ "type": {
2333
+ "text": "boolean"
2334
+ },
2335
+ "default": "false",
2336
+ "description": "Disables the radio.",
2337
+ "attribute": "disabled",
2338
+ "reflects": true
2339
+ },
2340
+ {
2341
+ "kind": "method",
2342
+ "name": "_onChange",
2343
+ "privacy": "private"
2344
+ }
2345
+ ],
2346
+ "events": [
2347
+ {
2348
+ "name": "rr-radio-change",
2349
+ "type": {
2350
+ "text": "CustomEvent"
2351
+ },
2352
+ "description": "Bubbles to the parent rr-radio-group when selected"
2353
+ }
2354
+ ],
2355
+ "attributes": [
2356
+ {
2357
+ "name": "value",
2358
+ "type": {
2359
+ "text": "string"
2360
+ },
2361
+ "default": "''",
2362
+ "description": "The value this radio contributes to the group when selected.",
2363
+ "fieldName": "value"
2364
+ },
2365
+ {
2366
+ "name": "checked",
2367
+ "type": {
2368
+ "text": "boolean"
2369
+ },
2370
+ "default": "false",
2371
+ "description": "Visual checked state. Managed by the parent rr-radio-group.",
2372
+ "fieldName": "checked"
2373
+ },
2374
+ {
2375
+ "name": "disabled",
2376
+ "type": {
2377
+ "text": "boolean"
2378
+ },
2379
+ "default": "false",
2380
+ "description": "Disables the radio.",
2381
+ "fieldName": "disabled"
2382
+ }
2383
+ ],
2384
+ "superclass": {
2385
+ "name": "LitElement",
2386
+ "package": "lit"
2387
+ },
2388
+ "tagName": "rr-radio",
2389
+ "customElement": true
2390
+ }
2391
+ ],
2392
+ "exports": [
2393
+ {
2394
+ "kind": "js",
2395
+ "name": "RrRadio",
2396
+ "declaration": {
2397
+ "name": "RrRadio",
2398
+ "module": "src/radio/radio.ts"
2399
+ }
2400
+ },
2401
+ {
2402
+ "kind": "custom-element-definition",
2403
+ "name": "rr-radio",
2404
+ "declaration": {
2405
+ "name": "RrRadio",
2406
+ "module": "src/radio/radio.ts"
2407
+ }
2408
+ }
2409
+ ]
2410
+ },
2411
+ {
2412
+ "kind": "javascript-module",
2413
+ "path": "src/select/select.figma.ts",
2414
+ "declarations": [],
2415
+ "exports": []
2416
+ },
2417
+ {
2418
+ "kind": "javascript-module",
2419
+ "path": "src/select/select.ts",
2420
+ "declarations": [
2421
+ {
2422
+ "kind": "class",
2423
+ "description": "A form-associated select dropdown with label, helper text, and error state.\n\nPass options via the `options` property (array of `{ value, label, disabled? }`).\nUses `ElementInternals` for native form participation and `delegatesFocus`\nso the host forwards focus to the inner `<select>`.\n\nReuses `--component-input-*` tokens — the input token set covers\ntext input, textarea, and select (see tokens/components/input.tokens.json).",
2424
+ "name": "RrSelect",
2425
+ "cssParts": [
2426
+ {
2427
+ "description": "The label element",
2428
+ "name": "label"
2429
+ },
2430
+ {
2431
+ "description": "The inner select element",
2432
+ "name": "select"
2433
+ },
2434
+ {
2435
+ "description": "The helper text container",
2436
+ "name": "helper"
2437
+ },
2438
+ {
2439
+ "description": "The error message container",
2440
+ "name": "error"
2441
+ }
2442
+ ],
2443
+ "members": [
2444
+ {
2445
+ "kind": "field",
2446
+ "name": "formAssociated",
2447
+ "type": {
2448
+ "text": "boolean"
2449
+ },
2450
+ "static": true,
2451
+ "default": "true"
2452
+ },
2453
+ {
2454
+ "kind": "field",
2455
+ "name": "shadowRootOptions",
2456
+ "type": {
2457
+ "text": "object"
2458
+ },
2459
+ "static": true,
2460
+ "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
2461
+ },
2462
+ {
2463
+ "kind": "field",
2464
+ "name": "name",
2465
+ "type": {
2466
+ "text": "string"
2467
+ },
2468
+ "default": "''",
2469
+ "description": "Form field name submitted with the selected value.",
2470
+ "attribute": "name"
2471
+ },
2472
+ {
2473
+ "kind": "field",
2474
+ "name": "value",
2475
+ "type": {
2476
+ "text": "string"
2477
+ },
2478
+ "default": "''",
2479
+ "description": "Selected option value.",
2480
+ "attribute": "value",
2481
+ "reflects": true
2482
+ },
2483
+ {
2484
+ "kind": "field",
2485
+ "name": "label",
2486
+ "type": {
2487
+ "text": "string"
2488
+ },
2489
+ "default": "''",
2490
+ "description": "Field label rendered above the select.",
2491
+ "attribute": "label"
2492
+ },
2493
+ {
2494
+ "kind": "field",
2495
+ "name": "helperText",
2496
+ "type": {
2497
+ "text": "string"
2498
+ },
2499
+ "default": "''",
2500
+ "description": "Helper text shown when there is no error. Maps to attribute helper-text.",
2501
+ "attribute": "helper-text"
2502
+ },
2503
+ {
2504
+ "kind": "field",
2505
+ "name": "errorText",
2506
+ "type": {
2507
+ "text": "string"
2508
+ },
2509
+ "default": "''",
2510
+ "description": "Error message; sets data-invalid and a custom validity. Maps to attribute error-text.",
2511
+ "attribute": "error-text"
2512
+ },
2513
+ {
2514
+ "kind": "field",
2515
+ "name": "required",
2516
+ "type": {
2517
+ "text": "boolean"
2518
+ },
2519
+ "default": "false",
2520
+ "description": "Marks the field as required and shows an asterisk.",
2521
+ "attribute": "required",
2522
+ "reflects": true
2523
+ },
2524
+ {
2525
+ "kind": "field",
2526
+ "name": "disabled",
2527
+ "type": {
2528
+ "text": "boolean"
2529
+ },
2530
+ "default": "false",
2531
+ "description": "Disables the select.",
2532
+ "attribute": "disabled",
2533
+ "reflects": true
2534
+ },
2535
+ {
2536
+ "kind": "field",
2537
+ "name": "options",
2538
+ "type": {
2539
+ "text": "SelectOption[]"
2540
+ },
2541
+ "default": "[]",
2542
+ "description": "Options to render: array of { value: string; label: string; disabled?: boolean }.",
2543
+ "attribute": "options"
2544
+ },
2545
+ {
2546
+ "kind": "field",
2547
+ "name": "_select",
2548
+ "type": {
2549
+ "text": "HTMLSelectElement"
2550
+ },
2551
+ "privacy": "private"
2552
+ },
2553
+ {
2554
+ "kind": "field",
2555
+ "name": "_internals",
2556
+ "type": {
2557
+ "text": "ElementInternals"
2558
+ },
2559
+ "privacy": "private"
2560
+ },
2561
+ {
2562
+ "kind": "field",
2563
+ "name": "_isInvalid",
2564
+ "type": {
2565
+ "text": "boolean"
2566
+ },
2567
+ "privacy": "private",
2568
+ "readonly": true
2569
+ },
2570
+ {
2571
+ "kind": "method",
2572
+ "name": "_onChange",
2573
+ "privacy": "private",
2574
+ "parameters": [
2575
+ {
2576
+ "name": "e",
2577
+ "type": {
2578
+ "text": "Event"
2579
+ }
2580
+ }
2581
+ ]
2582
+ }
2583
+ ],
2584
+ "events": [
2585
+ {
2586
+ "name": "change",
2587
+ "type": {
2588
+ "text": "Event"
2589
+ },
2590
+ "description": "When the selected value changes"
2591
+ }
2592
+ ],
2593
+ "attributes": [
2594
+ {
2595
+ "name": "name",
2596
+ "type": {
2597
+ "text": "string"
2598
+ },
2599
+ "default": "''",
2600
+ "description": "Form field name submitted with the selected value.",
2601
+ "fieldName": "name"
2602
+ },
2603
+ {
2604
+ "name": "value",
2605
+ "type": {
2606
+ "text": "string"
2607
+ },
2608
+ "default": "''",
2609
+ "description": "Selected option value.",
2610
+ "fieldName": "value"
2611
+ },
2612
+ {
2613
+ "name": "label",
2614
+ "type": {
2615
+ "text": "string"
2616
+ },
2617
+ "default": "''",
2618
+ "description": "Field label rendered above the select.",
2619
+ "fieldName": "label"
2620
+ },
2621
+ {
2622
+ "name": "helper-text",
2623
+ "type": {
2624
+ "text": "string"
2625
+ },
2626
+ "default": "''",
2627
+ "description": "Helper text shown when there is no error. Maps to attribute helper-text.",
2628
+ "fieldName": "helperText"
2629
+ },
2630
+ {
2631
+ "name": "error-text",
2632
+ "type": {
2633
+ "text": "string"
2634
+ },
2635
+ "default": "''",
2636
+ "description": "Error message; sets data-invalid and a custom validity. Maps to attribute error-text.",
2637
+ "fieldName": "errorText"
2638
+ },
2639
+ {
2640
+ "name": "required",
2641
+ "type": {
2642
+ "text": "boolean"
2643
+ },
2644
+ "default": "false",
2645
+ "description": "Marks the field as required and shows an asterisk.",
2646
+ "fieldName": "required"
2647
+ },
2648
+ {
2649
+ "name": "disabled",
2650
+ "type": {
2651
+ "text": "boolean"
2652
+ },
2653
+ "default": "false",
2654
+ "description": "Disables the select.",
2655
+ "fieldName": "disabled"
2656
+ },
2657
+ {
2658
+ "name": "options",
2659
+ "type": {
2660
+ "text": "SelectOption[]"
2661
+ },
2662
+ "default": "[]",
2663
+ "description": "Options to render: array of { value: string; label: string; disabled?: boolean }.",
2664
+ "fieldName": "options"
2665
+ }
2666
+ ],
2667
+ "superclass": {
2668
+ "name": "LitElement",
2669
+ "package": "lit"
2670
+ },
2671
+ "tagName": "rr-select",
2672
+ "customElement": true
2673
+ }
2674
+ ],
2675
+ "exports": [
2676
+ {
2677
+ "kind": "js",
2678
+ "name": "RrSelect",
2679
+ "declaration": {
2680
+ "name": "RrSelect",
2681
+ "module": "src/select/select.ts"
2682
+ }
2683
+ },
2684
+ {
2685
+ "kind": "custom-element-definition",
2686
+ "name": "rr-select",
2687
+ "declaration": {
2688
+ "name": "RrSelect",
2689
+ "module": "src/select/select.ts"
2690
+ }
2691
+ }
2692
+ ]
2693
+ },
2694
+ {
2695
+ "kind": "javascript-module",
2696
+ "path": "src/skeleton/skeleton.figma.ts",
2697
+ "declarations": [],
2698
+ "exports": []
2699
+ },
2700
+ {
2701
+ "kind": "javascript-module",
2702
+ "path": "src/skeleton/skeleton.ts",
2703
+ "declarations": [
2704
+ {
2705
+ "kind": "class",
2706
+ "description": "`<rr-skeleton>` — animated shimmer placeholder for loading states.\n\nUse in place of content while data is being fetched. Three shape\nvariants match common content types: text lines, avatars, and image blocks.",
2707
+ "name": "RrSkeleton",
2708
+ "members": [
2709
+ {
2710
+ "kind": "field",
2711
+ "name": "variant",
2712
+ "type": {
2713
+ "text": "SkeletonVariant"
2714
+ },
2715
+ "default": "'text'",
2716
+ "description": "Shape of the skeleton.",
2717
+ "attribute": "variant",
2718
+ "reflects": true
2719
+ },
2720
+ {
2721
+ "kind": "field",
2722
+ "name": "width",
2723
+ "type": {
2724
+ "text": "string"
2725
+ },
2726
+ "default": "''",
2727
+ "description": "CSS width value. Defaults to 40px for circular, otherwise 100%.",
2728
+ "attribute": "width"
2729
+ },
2730
+ {
2731
+ "kind": "field",
2732
+ "name": "height",
2733
+ "type": {
2734
+ "text": "string"
2735
+ },
2736
+ "default": "''",
2737
+ "description": "CSS height value. Defaults to 40px for circular, otherwise 1em.",
2738
+ "attribute": "height"
2739
+ },
2740
+ {
2741
+ "kind": "field",
2742
+ "name": "_style",
2743
+ "type": {
2744
+ "text": "string"
2745
+ },
2746
+ "privacy": "private",
2747
+ "readonly": true
2748
+ }
2749
+ ],
2750
+ "attributes": [
2751
+ {
2752
+ "type": {
2753
+ "text": "SkeletonVariant"
2754
+ },
2755
+ "description": "Shape of the skeleton.",
2756
+ "name": "variant",
2757
+ "default": "'text'",
2758
+ "fieldName": "variant"
2759
+ },
2760
+ {
2761
+ "description": "CSS width value. Defaults to 40px for circular, otherwise 100%.",
2762
+ "name": "width",
2763
+ "type": {
2764
+ "text": "string"
2765
+ },
2766
+ "default": "''",
2767
+ "fieldName": "width"
2768
+ },
2769
+ {
2770
+ "description": "CSS height value. Defaults to 40px for circular, otherwise 1em.",
2771
+ "name": "height",
2772
+ "type": {
2773
+ "text": "string"
2774
+ },
2775
+ "default": "''",
2776
+ "fieldName": "height"
2777
+ }
2778
+ ],
2779
+ "superclass": {
2780
+ "name": "LitElement",
2781
+ "package": "lit"
2782
+ },
2783
+ "tagName": "rr-skeleton",
2784
+ "customElement": true
2785
+ }
2786
+ ],
2787
+ "exports": [
2788
+ {
2789
+ "kind": "js",
2790
+ "name": "RrSkeleton",
2791
+ "declaration": {
2792
+ "name": "RrSkeleton",
2793
+ "module": "src/skeleton/skeleton.ts"
2794
+ }
2795
+ },
2796
+ {
2797
+ "kind": "custom-element-definition",
2798
+ "name": "rr-skeleton",
2799
+ "declaration": {
2800
+ "name": "RrSkeleton",
2801
+ "module": "src/skeleton/skeleton.ts"
2802
+ }
2803
+ }
2804
+ ]
2805
+ },
2806
+ {
2807
+ "kind": "javascript-module",
2808
+ "path": "src/spinner/spinner.figma.ts",
2809
+ "declarations": [],
2810
+ "exports": []
2811
+ },
2812
+ {
2813
+ "kind": "javascript-module",
2814
+ "path": "src/spinner/spinner.ts",
2815
+ "declarations": [
2816
+ {
2817
+ "kind": "class",
2818
+ "description": "`<rr-spinner>` — animated loading indicator.\n\nRenders a circular SVG spinner using the action color token.\nAnnounces to screen readers via an `aria-live` region.",
2819
+ "name": "RrSpinner",
2820
+ "members": [
2821
+ {
2822
+ "kind": "field",
2823
+ "name": "size",
2824
+ "type": {
2825
+ "text": "SpinnerSize"
2826
+ },
2827
+ "default": "'md'",
2828
+ "description": "Visual size of the spinner. Reflected to the size attribute.",
2829
+ "attribute": "size",
2830
+ "reflects": true
2831
+ },
2832
+ {
2833
+ "kind": "field",
2834
+ "name": "label",
2835
+ "type": {
2836
+ "text": "string"
2837
+ },
2838
+ "default": "'Loading'",
2839
+ "description": "Accessible label announced to screen readers via the status region.",
2840
+ "attribute": "label"
2841
+ }
2842
+ ],
2843
+ "attributes": [
2844
+ {
2845
+ "type": {
2846
+ "text": "SpinnerSize"
2847
+ },
2848
+ "description": "Visual size of the spinner. Reflected to the size attribute.",
2849
+ "name": "size",
2850
+ "default": "'md'",
2851
+ "fieldName": "size"
2852
+ },
2853
+ {
2854
+ "description": "Accessible label announced to screen readers via the status region.",
2855
+ "name": "label",
2856
+ "type": {
2857
+ "text": "string"
2858
+ },
2859
+ "default": "'Loading'",
2860
+ "fieldName": "label"
2861
+ }
2862
+ ],
2863
+ "superclass": {
2864
+ "name": "LitElement",
2865
+ "package": "lit"
2866
+ },
2867
+ "tagName": "rr-spinner",
2868
+ "customElement": true
2869
+ }
2870
+ ],
2871
+ "exports": [
2872
+ {
2873
+ "kind": "js",
2874
+ "name": "RrSpinner",
2875
+ "declaration": {
2876
+ "name": "RrSpinner",
2877
+ "module": "src/spinner/spinner.ts"
2878
+ }
2879
+ },
2880
+ {
2881
+ "kind": "custom-element-definition",
2882
+ "name": "rr-spinner",
2883
+ "declaration": {
2884
+ "name": "RrSpinner",
2885
+ "module": "src/spinner/spinner.ts"
2886
+ }
2887
+ }
2888
+ ]
2889
+ },
2890
+ {
2891
+ "kind": "javascript-module",
2892
+ "path": "src/tabs/tab-list.ts",
2893
+ "declarations": [
2894
+ {
2895
+ "kind": "class",
2896
+ "description": "`<rr-tab-list>` — the accessible tab strip container.\n\nWraps `<rr-tab>` elements and manages selection state, keyboard navigation\n(left/right arrows, Home, End), and ARIA attributes.\n\nThe tab panels are managed by the consuming app — listen for the `change`\nevent and show/hide content accordingly.",
2897
+ "name": "RrTabList",
2898
+ "slots": [
2899
+ {
2900
+ "description": "Place `<rr-tab>` elements here",
2901
+ "name": ""
2902
+ }
2903
+ ],
2904
+ "members": [
2905
+ {
2906
+ "kind": "field",
2907
+ "name": "label",
2908
+ "type": {
2909
+ "text": "string"
2910
+ },
2911
+ "default": "''",
2912
+ "description": "Accessible label for the tablist (required); sets aria-label on the role=tablist element.",
2913
+ "attribute": "label"
2914
+ },
2915
+ {
2916
+ "kind": "field",
2917
+ "name": "value",
2918
+ "type": {
2919
+ "text": "string"
2920
+ },
2921
+ "default": "''",
2922
+ "description": "Currently selected tab value. Reflected; syncs the matching rr-tab child's selected state.",
2923
+ "attribute": "value",
2924
+ "reflects": true
2925
+ },
2926
+ {
2927
+ "kind": "method",
2928
+ "name": "_getTabs",
2929
+ "privacy": "private",
2930
+ "return": {
2931
+ "type": {
2932
+ "text": "RrTab[]"
2933
+ }
2934
+ }
2935
+ },
2936
+ {
2937
+ "kind": "method",
2938
+ "name": "_syncTabs",
2939
+ "privacy": "private"
2940
+ },
2941
+ {
2942
+ "kind": "field",
2943
+ "name": "_onTabSelect",
2944
+ "privacy": "private"
2945
+ },
2946
+ {
2947
+ "kind": "field",
2948
+ "name": "_onKeyDown",
2949
+ "privacy": "private"
2950
+ }
2951
+ ],
2952
+ "events": [
2953
+ {
2954
+ "description": "When a tab is selected; detail: { value: string }",
2955
+ "name": "change"
2956
+ }
2957
+ ],
2958
+ "attributes": [
2959
+ {
2960
+ "description": "Accessible label for the tablist (required); sets aria-label on the role=tablist element.",
2961
+ "name": "label",
2962
+ "type": {
2963
+ "text": "string"
2964
+ },
2965
+ "default": "''",
2966
+ "fieldName": "label"
2967
+ },
2968
+ {
2969
+ "description": "Currently selected tab value. Reflected; syncs the matching rr-tab child's selected state.",
2970
+ "name": "value",
2971
+ "type": {
2972
+ "text": "string"
2973
+ },
2974
+ "default": "''",
2975
+ "fieldName": "value"
2976
+ }
2977
+ ],
2978
+ "superclass": {
2979
+ "name": "LitElement",
2980
+ "package": "lit"
2981
+ },
2982
+ "tagName": "rr-tab-list",
2983
+ "customElement": true
2984
+ }
2985
+ ],
2986
+ "exports": [
2987
+ {
2988
+ "kind": "js",
2989
+ "name": "RrTabList",
2990
+ "declaration": {
2991
+ "name": "RrTabList",
2992
+ "module": "src/tabs/tab-list.ts"
2993
+ }
2994
+ },
2995
+ {
2996
+ "kind": "custom-element-definition",
2997
+ "name": "rr-tab-list",
2998
+ "declaration": {
2999
+ "name": "RrTabList",
3000
+ "module": "src/tabs/tab-list.ts"
3001
+ }
3002
+ }
3003
+ ]
3004
+ },
3005
+ {
3006
+ "kind": "javascript-module",
3007
+ "path": "src/tabs/tab.ts",
3008
+ "declarations": [
3009
+ {
3010
+ "kind": "class",
3011
+ "description": "`<rr-tab>` — a single tab button, used inside `<rr-tab-list>`.\n\nSelection state is managed by the parent `<rr-tab-list>`. Do not set\n`selected` directly — use `rr-tab-list[value]` to control which tab is active.",
3012
+ "name": "RrTab",
3013
+ "slots": [
3014
+ {
3015
+ "description": "Tab label text (and optional icon)",
3016
+ "name": ""
3017
+ }
3018
+ ],
3019
+ "members": [
3020
+ {
3021
+ "kind": "field",
3022
+ "name": "shadowRootOptions",
3023
+ "type": {
3024
+ "text": "object"
3025
+ },
3026
+ "static": true,
3027
+ "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true }"
3028
+ },
3029
+ {
3030
+ "kind": "field",
3031
+ "name": "value",
3032
+ "type": {
3033
+ "text": "string"
3034
+ },
3035
+ "default": "''",
3036
+ "description": "Unique identifier for this tab; must match the value rr-tab-list uses for selection. Reflected.",
3037
+ "attribute": "value",
3038
+ "reflects": true
3039
+ },
3040
+ {
3041
+ "kind": "field",
3042
+ "name": "selected",
3043
+ "type": {
3044
+ "text": "boolean"
3045
+ },
3046
+ "default": "false",
3047
+ "description": "Marks the active tab. Set by the parent rr-tab-list — do not set directly. Reflected.",
3048
+ "attribute": "selected",
3049
+ "reflects": true
3050
+ },
3051
+ {
3052
+ "kind": "field",
3053
+ "name": "disabled",
3054
+ "type": {
3055
+ "text": "boolean"
3056
+ },
3057
+ "default": "false",
3058
+ "description": "Prevents selection. Reflected.",
3059
+ "attribute": "disabled",
3060
+ "reflects": true
3061
+ },
3062
+ {
3063
+ "kind": "method",
3064
+ "name": "_handleClick",
3065
+ "privacy": "private"
3066
+ }
3067
+ ],
3068
+ "events": [
3069
+ {
3070
+ "name": "rr-tab-select",
3071
+ "type": {
3072
+ "text": "CustomEvent"
3073
+ },
3074
+ "description": "Bubbles up to rr-tab-list when clicked"
3075
+ }
3076
+ ],
3077
+ "attributes": [
3078
+ {
3079
+ "description": "Unique identifier for this tab; must match the value rr-tab-list uses for selection. Reflected.",
3080
+ "name": "value",
3081
+ "type": {
3082
+ "text": "string"
3083
+ },
3084
+ "default": "''",
3085
+ "fieldName": "value"
3086
+ },
3087
+ {
3088
+ "description": "Marks the active tab. Set by the parent rr-tab-list — do not set directly. Reflected.",
3089
+ "name": "selected",
3090
+ "type": {
3091
+ "text": "boolean"
3092
+ },
3093
+ "default": "false",
3094
+ "fieldName": "selected"
3095
+ },
3096
+ {
3097
+ "description": "Prevents selection. Reflected.",
3098
+ "name": "disabled",
3099
+ "type": {
3100
+ "text": "boolean"
3101
+ },
3102
+ "default": "false",
3103
+ "fieldName": "disabled"
3104
+ }
3105
+ ],
3106
+ "superclass": {
3107
+ "name": "LitElement",
3108
+ "package": "lit"
3109
+ },
3110
+ "tagName": "rr-tab",
3111
+ "customElement": true
3112
+ }
3113
+ ],
3114
+ "exports": [
3115
+ {
3116
+ "kind": "js",
3117
+ "name": "RrTab",
3118
+ "declaration": {
3119
+ "name": "RrTab",
3120
+ "module": "src/tabs/tab.ts"
3121
+ }
3122
+ },
3123
+ {
3124
+ "kind": "custom-element-definition",
3125
+ "name": "rr-tab",
3126
+ "declaration": {
3127
+ "name": "RrTab",
3128
+ "module": "src/tabs/tab.ts"
3129
+ }
3130
+ }
3131
+ ]
3132
+ },
3133
+ {
3134
+ "kind": "javascript-module",
3135
+ "path": "src/tabs/tabs.figma.ts",
3136
+ "declarations": [],
3137
+ "exports": []
3138
+ },
3139
+ {
3140
+ "kind": "javascript-module",
3141
+ "path": "src/tag/tag.ts",
3142
+ "declarations": [
3143
+ {
3144
+ "kind": "class",
3145
+ "description": "An outlined, uppercase tag / chip component.\n\nThe deliberate inverse of `<rr-badge>`: where the badge is a filled pill for\nstatus, the tag is a square-cornered (radius.sm), transparent-filled, bordered\nlabel for skills, categories, and metadata. Content is rendered UPPERCASE with\nall-caps letter-spacing, so authors pass normal-case text.\n\nUses component-level design tokens for all visual properties. Brand theming\ncascades automatically via CSS custom properties on `:root`.",
3146
+ "name": "RrTag",
3147
+ "cssProperties": [
3148
+ {
3149
+ "name": "--component-tag-{variant}-background"
3150
+ },
3151
+ {
3152
+ "name": "--component-tag-{variant}-foreground"
3153
+ },
3154
+ {
3155
+ "name": "--component-tag-{variant}-border"
3156
+ },
3157
+ {
3158
+ "name": "--component-tag-radius"
3159
+ },
3160
+ {
3161
+ "name": "--component-tag-padding-x"
3162
+ },
3163
+ {
3164
+ "name": "--component-tag-padding-y"
3165
+ }
3166
+ ],
3167
+ "slots": [
3168
+ {
3169
+ "description": "Tag label text",
3170
+ "name": ""
3171
+ }
3172
+ ],
3173
+ "members": [
3174
+ {
3175
+ "kind": "field",
3176
+ "name": "variant",
3177
+ "type": {
3178
+ "text": "TagVariant"
3179
+ },
3180
+ "default": "'default'",
3181
+ "description": "Emphasis level. `default` is the standard visible outline (alt text,\nmuted-foreground border) that reads correctly standalone — use it for skill\ntags and most labels. `subtle` is a quieter treatment (muted text,\nelevated-border) for dense or secondary contexts.",
3182
+ "attribute": "variant",
3183
+ "reflects": true
3184
+ }
3185
+ ],
3186
+ "attributes": [
3187
+ {
3188
+ "name": "variant",
3189
+ "type": {
3190
+ "text": "TagVariant"
3191
+ },
3192
+ "default": "'default'",
3193
+ "description": "Emphasis level. `default` is the standard visible outline (alt text,\nmuted-foreground border) that reads correctly standalone — use it for skill\ntags and most labels. `subtle` is a quieter treatment (muted text,\nelevated-border) for dense or secondary contexts.",
3194
+ "fieldName": "variant"
3195
+ }
3196
+ ],
3197
+ "superclass": {
3198
+ "name": "LitElement",
3199
+ "package": "lit"
3200
+ },
3201
+ "tagName": "rr-tag",
3202
+ "customElement": true
3203
+ }
3204
+ ],
3205
+ "exports": [
3206
+ {
3207
+ "kind": "js",
3208
+ "name": "RrTag",
3209
+ "declaration": {
3210
+ "name": "RrTag",
3211
+ "module": "src/tag/tag.ts"
3212
+ }
3213
+ },
3214
+ {
3215
+ "kind": "custom-element-definition",
3216
+ "name": "rr-tag",
3217
+ "declaration": {
3218
+ "name": "RrTag",
3219
+ "module": "src/tag/tag.ts"
3220
+ }
3221
+ }
3222
+ ]
3223
+ },
3224
+ {
3225
+ "kind": "javascript-module",
3226
+ "path": "src/test-setup.ts",
3227
+ "declarations": [],
3228
+ "exports": []
3229
+ },
3230
+ {
3231
+ "kind": "javascript-module",
3232
+ "path": "src/textarea/textarea.figma.ts",
3233
+ "declarations": [],
3234
+ "exports": []
3235
+ },
3236
+ {
3237
+ "kind": "javascript-module",
3238
+ "path": "src/textarea/textarea.ts",
3239
+ "declarations": [
3240
+ {
3241
+ "kind": "class",
3242
+ "description": "A form-associated multi-line text area with label, helper text, and error state.\n\nMirrors `<rr-input>` in API and token usage. Uses `ElementInternals` for\nnative form participation and `delegatesFocus` so the host forwards focus\nto the inner `<textarea>`.",
3243
+ "name": "RrTextarea",
3244
+ "cssParts": [
3245
+ {
3246
+ "description": "The label element",
3247
+ "name": "label"
3248
+ },
3249
+ {
3250
+ "description": "The inner textarea element",
3251
+ "name": "textarea"
3252
+ },
3253
+ {
3254
+ "description": "The helper text container",
3255
+ "name": "helper"
3256
+ },
3257
+ {
3258
+ "description": "The error message container",
3259
+ "name": "error"
3260
+ }
3261
+ ],
3262
+ "slots": [
3263
+ {
3264
+ "description": "Optional override for the label text",
3265
+ "name": "label"
3266
+ }
3267
+ ],
3268
+ "members": [
3269
+ {
3270
+ "kind": "field",
3271
+ "name": "formAssociated",
3272
+ "type": {
3273
+ "text": "boolean"
3274
+ },
3275
+ "static": true,
3276
+ "default": "true"
3277
+ },
3278
+ {
3279
+ "kind": "field",
3280
+ "name": "shadowRootOptions",
3281
+ "type": {
3282
+ "text": "object"
3283
+ },
3284
+ "static": true,
3285
+ "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
3286
+ },
3287
+ {
3288
+ "kind": "field",
3289
+ "name": "name",
3290
+ "type": {
3291
+ "text": "string"
3292
+ },
3293
+ "default": "''",
3294
+ "description": "Form field name submitted with the form value.",
3295
+ "attribute": "name"
3296
+ },
3297
+ {
3298
+ "kind": "field",
3299
+ "name": "value",
3300
+ "type": {
3301
+ "text": "string"
3302
+ },
3303
+ "default": "''",
3304
+ "description": "Current text value; set as the form value via ElementInternals.",
3305
+ "attribute": "value"
3306
+ },
3307
+ {
3308
+ "kind": "field",
3309
+ "name": "placeholder",
3310
+ "type": {
3311
+ "text": "string"
3312
+ },
3313
+ "default": "''",
3314
+ "description": "Placeholder text shown when empty.",
3315
+ "attribute": "placeholder"
3316
+ },
3317
+ {
3318
+ "kind": "field",
3319
+ "name": "label",
3320
+ "type": {
3321
+ "text": "string"
3322
+ },
3323
+ "default": "''",
3324
+ "description": "Label text; renders a label element when non-empty.",
3325
+ "attribute": "label"
3326
+ },
3327
+ {
3328
+ "kind": "field",
3329
+ "name": "helperText",
3330
+ "type": {
3331
+ "text": "string"
3332
+ },
3333
+ "default": "''",
3334
+ "description": "Helper text shown below the field (attribute: helper-text). Hidden when an error is present.",
3335
+ "attribute": "helper-text"
3336
+ },
3337
+ {
3338
+ "kind": "field",
3339
+ "name": "errorText",
3340
+ "type": {
3341
+ "text": "string"
3342
+ },
3343
+ "default": "''",
3344
+ "description": "Error message (attribute: error-text); when set, marks the field invalid and replaces the helper text.",
3345
+ "attribute": "error-text"
3346
+ },
3347
+ {
3348
+ "kind": "field",
3349
+ "name": "rows",
3350
+ "type": {
3351
+ "text": "number"
3352
+ },
3353
+ "default": "3",
3354
+ "description": "Number of visible text rows on the inner textarea.",
3355
+ "attribute": "rows"
3356
+ },
3357
+ {
3358
+ "kind": "field",
3359
+ "name": "required",
3360
+ "type": {
3361
+ "text": "boolean"
3362
+ },
3363
+ "default": "false",
3364
+ "description": "Marks the field required; shows a required indicator. Reflected.",
3365
+ "attribute": "required",
3366
+ "reflects": true
3367
+ },
3368
+ {
3369
+ "kind": "field",
3370
+ "name": "disabled",
3371
+ "type": {
3372
+ "text": "boolean"
3373
+ },
3374
+ "default": "false",
3375
+ "description": "Disables the field. Reflected.",
3376
+ "attribute": "disabled",
3377
+ "reflects": true
3378
+ },
3379
+ {
3380
+ "kind": "field",
3381
+ "name": "_textarea",
3382
+ "type": {
3383
+ "text": "HTMLTextAreaElement"
3384
+ },
3385
+ "privacy": "private"
3386
+ },
3387
+ {
3388
+ "kind": "field",
3389
+ "name": "_internals",
3390
+ "type": {
3391
+ "text": "ElementInternals"
3392
+ },
3393
+ "privacy": "private"
3394
+ },
3395
+ {
3396
+ "kind": "field",
3397
+ "name": "_isInvalid",
3398
+ "type": {
3399
+ "text": "boolean"
3400
+ },
3401
+ "privacy": "private",
3402
+ "readonly": true
3403
+ },
3404
+ {
3405
+ "kind": "method",
3406
+ "name": "_onInput",
3407
+ "privacy": "private",
3408
+ "parameters": [
3409
+ {
3410
+ "name": "e",
3411
+ "type": {
3412
+ "text": "Event"
3413
+ }
3414
+ }
3415
+ ]
3416
+ },
3417
+ {
3418
+ "kind": "method",
3419
+ "name": "_onChange",
3420
+ "privacy": "private",
3421
+ "parameters": [
3422
+ {
3423
+ "name": "e",
3424
+ "type": {
3425
+ "text": "Event"
3426
+ }
3427
+ }
3428
+ ]
3429
+ }
3430
+ ],
3431
+ "events": [
3432
+ {
3433
+ "name": "input",
3434
+ "type": {
3435
+ "text": "Event"
3436
+ },
3437
+ "description": "When the value changes (mirrors native input event)"
3438
+ },
3439
+ {
3440
+ "name": "change",
3441
+ "type": {
3442
+ "text": "Event"
3443
+ },
3444
+ "description": "When the value is committed (mirrors native change event)"
3445
+ }
3446
+ ],
3447
+ "attributes": [
3448
+ {
3449
+ "name": "name",
3450
+ "type": {
3451
+ "text": "string"
3452
+ },
3453
+ "default": "''",
3454
+ "description": "Form field name submitted with the form value.",
3455
+ "fieldName": "name"
3456
+ },
3457
+ {
3458
+ "name": "value",
3459
+ "type": {
3460
+ "text": "string"
3461
+ },
3462
+ "default": "''",
3463
+ "description": "Current text value; set as the form value via ElementInternals.",
3464
+ "fieldName": "value"
3465
+ },
3466
+ {
3467
+ "name": "placeholder",
3468
+ "type": {
3469
+ "text": "string"
3470
+ },
3471
+ "default": "''",
3472
+ "description": "Placeholder text shown when empty.",
3473
+ "fieldName": "placeholder"
3474
+ },
3475
+ {
3476
+ "name": "label",
3477
+ "type": {
3478
+ "text": "string"
3479
+ },
3480
+ "default": "''",
3481
+ "description": "Label text; renders a label element when non-empty.",
3482
+ "fieldName": "label"
3483
+ },
3484
+ {
3485
+ "name": "helper-text",
3486
+ "type": {
3487
+ "text": "string"
3488
+ },
3489
+ "default": "''",
3490
+ "description": "Helper text shown below the field (attribute: helper-text). Hidden when an error is present.",
3491
+ "fieldName": "helperText"
3492
+ },
3493
+ {
3494
+ "name": "error-text",
3495
+ "type": {
3496
+ "text": "string"
3497
+ },
3498
+ "default": "''",
3499
+ "description": "Error message (attribute: error-text); when set, marks the field invalid and replaces the helper text.",
3500
+ "fieldName": "errorText"
3501
+ },
3502
+ {
3503
+ "name": "rows",
3504
+ "type": {
3505
+ "text": "number"
3506
+ },
3507
+ "default": "3",
3508
+ "description": "Number of visible text rows on the inner textarea.",
3509
+ "fieldName": "rows"
3510
+ },
3511
+ {
3512
+ "name": "required",
3513
+ "type": {
3514
+ "text": "boolean"
3515
+ },
3516
+ "default": "false",
3517
+ "description": "Marks the field required; shows a required indicator. Reflected.",
3518
+ "fieldName": "required"
3519
+ },
3520
+ {
3521
+ "name": "disabled",
3522
+ "type": {
3523
+ "text": "boolean"
3524
+ },
3525
+ "default": "false",
3526
+ "description": "Disables the field. Reflected.",
3527
+ "fieldName": "disabled"
3528
+ }
3529
+ ],
3530
+ "superclass": {
3531
+ "name": "LitElement",
3532
+ "package": "lit"
3533
+ },
3534
+ "tagName": "rr-textarea",
3535
+ "customElement": true
3536
+ }
3537
+ ],
3538
+ "exports": [
3539
+ {
3540
+ "kind": "js",
3541
+ "name": "RrTextarea",
3542
+ "declaration": {
3543
+ "name": "RrTextarea",
3544
+ "module": "src/textarea/textarea.ts"
3545
+ }
3546
+ },
3547
+ {
3548
+ "kind": "custom-element-definition",
3549
+ "name": "rr-textarea",
3550
+ "declaration": {
3551
+ "name": "RrTextarea",
3552
+ "module": "src/textarea/textarea.ts"
3553
+ }
3554
+ }
3555
+ ]
3556
+ },
3557
+ {
3558
+ "kind": "javascript-module",
3559
+ "path": "src/toggle/toggle.figma.ts",
3560
+ "declarations": [],
3561
+ "exports": []
3562
+ },
3563
+ {
3564
+ "kind": "javascript-module",
3565
+ "path": "src/toggle/toggle.ts",
3566
+ "declarations": [
3567
+ {
3568
+ "kind": "class",
3569
+ "description": "A form-associated toggle switch for binary on/off settings.\n\nThe pill-shaped track and sliding knob are rendered in shadow DOM;\nthe hidden native `<input type=\"checkbox\">` provides focus, keyboard,\nand label-click semantics. `ElementInternals` handles form participation.\n\nUsage:\n <rr-toggle name=\"darkMode\" label=\"Dark mode\" checked></rr-toggle>\n <rr-toggle name=\"notify\">Email notifications</rr-toggle>",
3570
+ "name": "RrToggle",
3571
+ "cssParts": [
3572
+ {
3573
+ "description": "The pill-shaped track element",
3574
+ "name": "track"
3575
+ },
3576
+ {
3577
+ "description": "The sliding knob element",
3578
+ "name": "knob"
3579
+ },
3580
+ {
3581
+ "description": "The label text element",
3582
+ "name": "label"
3583
+ }
3584
+ ],
3585
+ "slots": [
3586
+ {
3587
+ "description": "Label text (alternative to the `label` property)",
3588
+ "name": ""
3589
+ }
3590
+ ],
3591
+ "members": [
3592
+ {
3593
+ "kind": "field",
3594
+ "name": "formAssociated",
3595
+ "type": {
3596
+ "text": "boolean"
3597
+ },
3598
+ "static": true,
3599
+ "default": "true"
3600
+ },
3601
+ {
3602
+ "kind": "field",
3603
+ "name": "checked",
3604
+ "type": {
3605
+ "text": "boolean"
3606
+ },
3607
+ "default": "false",
3608
+ "description": "On/off state. Reflected.",
3609
+ "attribute": "checked",
3610
+ "reflects": true
3611
+ },
3612
+ {
3613
+ "kind": "field",
3614
+ "name": "disabled",
3615
+ "type": {
3616
+ "text": "boolean"
3617
+ },
3618
+ "default": "false",
3619
+ "description": "Disables the toggle. Reflected.",
3620
+ "attribute": "disabled",
3621
+ "reflects": true
3622
+ },
3623
+ {
3624
+ "kind": "field",
3625
+ "name": "value",
3626
+ "type": {
3627
+ "text": "string"
3628
+ },
3629
+ "default": "'on'",
3630
+ "description": "Form value submitted when the toggle is on.",
3631
+ "attribute": "value"
3632
+ },
3633
+ {
3634
+ "kind": "field",
3635
+ "name": "name",
3636
+ "type": {
3637
+ "text": "string"
3638
+ },
3639
+ "default": "''",
3640
+ "description": "Form field name submitted with the form value.",
3641
+ "attribute": "name"
3642
+ },
3643
+ {
3644
+ "kind": "field",
3645
+ "name": "label",
3646
+ "type": {
3647
+ "text": "string"
3648
+ },
3649
+ "default": "''",
3650
+ "description": "Label text; falls back to slotted content when empty.",
3651
+ "attribute": "label"
3652
+ },
3653
+ {
3654
+ "kind": "field",
3655
+ "name": "_internals",
3656
+ "type": {
3657
+ "text": "ElementInternals"
3658
+ },
3659
+ "privacy": "private"
3660
+ },
3661
+ {
3662
+ "kind": "method",
3663
+ "name": "_onChange",
3664
+ "privacy": "private"
3665
+ }
3666
+ ],
3667
+ "events": [
3668
+ {
3669
+ "name": "change",
3670
+ "type": {
3671
+ "text": "Event"
3672
+ },
3673
+ "description": "When the toggle state changes"
3674
+ }
3675
+ ],
3676
+ "attributes": [
3677
+ {
3678
+ "name": "checked",
3679
+ "type": {
3680
+ "text": "boolean"
3681
+ },
3682
+ "default": "false",
3683
+ "description": "On/off state. Reflected.",
3684
+ "fieldName": "checked"
3685
+ },
3686
+ {
3687
+ "name": "disabled",
3688
+ "type": {
3689
+ "text": "boolean"
3690
+ },
3691
+ "default": "false",
3692
+ "description": "Disables the toggle. Reflected.",
3693
+ "fieldName": "disabled"
3694
+ },
3695
+ {
3696
+ "name": "value",
3697
+ "type": {
3698
+ "text": "string"
3699
+ },
3700
+ "default": "'on'",
3701
+ "description": "Form value submitted when the toggle is on.",
3702
+ "fieldName": "value"
3703
+ },
3704
+ {
3705
+ "name": "name",
3706
+ "type": {
3707
+ "text": "string"
3708
+ },
3709
+ "default": "''",
3710
+ "description": "Form field name submitted with the form value.",
3711
+ "fieldName": "name"
3712
+ },
3713
+ {
3714
+ "name": "label",
3715
+ "type": {
3716
+ "text": "string"
3717
+ },
3718
+ "default": "''",
3719
+ "description": "Label text; falls back to slotted content when empty.",
3720
+ "fieldName": "label"
3721
+ }
3722
+ ],
3723
+ "superclass": {
3724
+ "name": "LitElement",
3725
+ "package": "lit"
3726
+ },
3727
+ "tagName": "rr-toggle",
3728
+ "customElement": true
3729
+ }
3730
+ ],
3731
+ "exports": [
3732
+ {
3733
+ "kind": "js",
3734
+ "name": "RrToggle",
3735
+ "declaration": {
3736
+ "name": "RrToggle",
3737
+ "module": "src/toggle/toggle.ts"
3738
+ }
3739
+ },
3740
+ {
3741
+ "kind": "custom-element-definition",
3742
+ "name": "rr-toggle",
3743
+ "declaration": {
3744
+ "name": "RrToggle",
3745
+ "module": "src/toggle/toggle.ts"
3746
+ }
3747
+ }
3748
+ ]
3749
+ }
3750
+ ]
3751
+ }