@webstudio-is/sdk-components-react-radix 0.95.0 → 0.97.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 (63) hide show
  1. package/lib/components.js +278 -35
  2. package/lib/hooks.js +475 -11
  3. package/lib/metas.js +4616 -58
  4. package/lib/props.js +23280 -57
  5. package/lib/types/theme/tailwind-classes.d.ts +4 -4
  6. package/package.json +9 -9
  7. package/lib/__generated__/accordion.props.js +0 -2619
  8. package/lib/__generated__/checkbox.props.js +0 -1080
  9. package/lib/__generated__/collapsible.props.js +0 -1026
  10. package/lib/__generated__/dialog.props.js +0 -2595
  11. package/lib/__generated__/label.props.js +0 -519
  12. package/lib/__generated__/navigation-menu.props.js +0 -2557
  13. package/lib/__generated__/popover.props.js +0 -558
  14. package/lib/__generated__/radio-group.props.js +0 -1623
  15. package/lib/__generated__/select.props.js +0 -3674
  16. package/lib/__generated__/sheet.props.js +0 -2614
  17. package/lib/__generated__/switch.props.js +0 -1080
  18. package/lib/__generated__/tabs.props.js +0 -2119
  19. package/lib/__generated__/tooltip.props.js +0 -569
  20. package/lib/accordion.js +0 -51
  21. package/lib/accordion.stories.js +0 -18
  22. package/lib/accordion.ws.js +0 -259
  23. package/lib/checkbox.js +0 -10
  24. package/lib/checkbox.stories.js +0 -19
  25. package/lib/checkbox.ws.js +0 -148
  26. package/lib/collapsible.js +0 -31
  27. package/lib/collapsible.stories.js +0 -18
  28. package/lib/collapsible.ws.js +0 -103
  29. package/lib/dialog.js +0 -53
  30. package/lib/dialog.stories.js +0 -18
  31. package/lib/dialog.ws.js +0 -289
  32. package/lib/label.js +0 -7
  33. package/lib/label.stories.js +0 -19
  34. package/lib/label.ws.js +0 -44
  35. package/lib/navigation-menu.js +0 -76
  36. package/lib/navigation-menu.stories.js +0 -18
  37. package/lib/navigation-menu.ws.js +0 -486
  38. package/lib/popover.js +0 -58
  39. package/lib/popover.stories.js +0 -18
  40. package/lib/popover.ws.js +0 -110
  41. package/lib/props-descriptions.js +0 -34
  42. package/lib/radio-group.js +0 -7
  43. package/lib/radio-group.stories.js +0 -19
  44. package/lib/radio-group.ws.js +0 -166
  45. package/lib/select.js +0 -65
  46. package/lib/select.stories.js +0 -18
  47. package/lib/select.ws.js +0 -321
  48. package/lib/sheet.js +0 -59
  49. package/lib/sheet.stories.js +0 -18
  50. package/lib/sheet.ws.js +0 -225
  51. package/lib/switch.js +0 -4
  52. package/lib/switch.stories.js +0 -19
  53. package/lib/switch.ws.js +0 -140
  54. package/lib/tabs.js +0 -38
  55. package/lib/tabs.stories.js +0 -18
  56. package/lib/tabs.ws.js +0 -169
  57. package/lib/theme/__generated__/tailwind-theme.js +0 -517
  58. package/lib/theme/styles.js +0 -63
  59. package/lib/theme/tailwind-classes.js +0 -651
  60. package/lib/theme/tailwind-colors.js +0 -23
  61. package/lib/tooltip.js +0 -55
  62. package/lib/tooltip.stories.js +0 -18
  63. package/lib/tooltip.ws.js +0 -111
package/lib/metas.js CHANGED
@@ -1,72 +1,4630 @@
1
- "use strict";
1
+ // src/collapsible.ws.ts
2
+ import {
3
+ CollapsibleIcon,
4
+ TriggerIcon,
5
+ ContentIcon
6
+ } from "@webstudio-is/icons/svg";
7
+ import { div } from "@webstudio-is/react-sdk/css-normalize";
8
+
9
+ // src/__generated__/collapsible.props.ts
10
+ var propsCollapsible = {
11
+ about: { required: false, control: "text", type: "string" },
12
+ accessKey: {
13
+ required: false,
14
+ control: "text",
15
+ type: "string",
16
+ description: "Keyboard shortcut to activate or add focus to the element."
17
+ },
18
+ "aria-activedescendant": {
19
+ description: "Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.",
20
+ required: false,
21
+ control: "text",
22
+ type: "string"
23
+ },
24
+ "aria-atomic": {
25
+ description: "Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.",
26
+ required: false,
27
+ control: "boolean",
28
+ type: "boolean"
29
+ },
30
+ "aria-autocomplete": {
31
+ description: "Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be\npresented if they are made.",
32
+ required: false,
33
+ control: "select",
34
+ type: "string",
35
+ options: ["list", "none", "inline", "both"]
36
+ },
37
+ "aria-braillelabel": {
38
+ description: "Defines a string value that labels the current element, which is intended to be converted into Braille.\n@see aria-label.",
39
+ required: false,
40
+ control: "text",
41
+ type: "string"
42
+ },
43
+ "aria-brailleroledescription": {
44
+ description: "Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille.\n@see aria-roledescription.",
45
+ required: false,
46
+ control: "text",
47
+ type: "string"
48
+ },
49
+ "aria-busy": { required: false, control: "boolean", type: "boolean" },
50
+ "aria-checked": {
51
+ description: 'Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.\n@see aria-pressed\n@see aria-selected.',
52
+ required: false,
53
+ control: "text",
54
+ type: "string"
55
+ },
56
+ "aria-colcount": {
57
+ description: "Defines the total number of columns in a table, grid, or treegrid.\n@see aria-colindex.",
58
+ required: false,
59
+ control: "number",
60
+ type: "number"
61
+ },
62
+ "aria-colindex": {
63
+ description: "Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.\n@see aria-colcount\n@see aria-colspan.",
64
+ required: false,
65
+ control: "number",
66
+ type: "number"
67
+ },
68
+ "aria-colindextext": {
69
+ description: "Defines a human readable text alternative of aria-colindex.\n@see aria-rowindextext.",
70
+ required: false,
71
+ control: "text",
72
+ type: "string"
73
+ },
74
+ "aria-colspan": {
75
+ description: "Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.\n@see aria-colindex\n@see aria-rowspan.",
76
+ required: false,
77
+ control: "number",
78
+ type: "number"
79
+ },
80
+ "aria-controls": {
81
+ description: "Identifies the element (or elements) whose contents or presence are controlled by the current element.\n@see aria-owns.",
82
+ required: false,
83
+ control: "text",
84
+ type: "string"
85
+ },
86
+ "aria-current": {
87
+ description: "Indicates the element that represents the current item within a container or set of related elements.",
88
+ required: false,
89
+ control: "text",
90
+ type: "string"
91
+ },
92
+ "aria-describedby": {
93
+ description: "Identifies the element (or elements) that describes the object.\n@see aria-labelledby",
94
+ required: false,
95
+ control: "text",
96
+ type: "string"
97
+ },
98
+ "aria-description": {
99
+ description: "Defines a string value that describes or annotates the current element.\n@see related aria-describedby.",
100
+ required: false,
101
+ control: "text",
102
+ type: "string"
103
+ },
104
+ "aria-details": {
105
+ description: "Identifies the element that provides a detailed, extended description for the object.\n@see aria-describedby.",
106
+ required: false,
107
+ control: "text",
108
+ type: "string"
109
+ },
110
+ "aria-disabled": {
111
+ description: "Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.\n@see aria-hidden\n@see aria-readonly.",
112
+ required: false,
113
+ control: "boolean",
114
+ type: "boolean"
115
+ },
116
+ "aria-dropeffect": {
117
+ description: "Indicates what functions can be performed when a dragged object is released on the drop target.\n@deprecated in ARIA 1.1",
118
+ required: false,
119
+ control: "select",
120
+ type: "string",
121
+ options: ["link", "none", "copy", "execute", "move", "popup"]
122
+ },
123
+ "aria-errormessage": {
124
+ description: "Identifies the element that provides an error message for the object.\n@see aria-invalid\n@see aria-describedby.",
125
+ required: false,
126
+ control: "text",
127
+ type: "string"
128
+ },
129
+ "aria-expanded": {
130
+ description: "Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.",
131
+ required: false,
132
+ control: "boolean",
133
+ type: "boolean"
134
+ },
135
+ "aria-flowto": {
136
+ description: "Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,\nallows assistive technology to override the general default of reading in document source order.",
137
+ required: false,
138
+ control: "text",
139
+ type: "string"
140
+ },
141
+ "aria-grabbed": {
142
+ description: `Indicates an element's "grabbed" state in a drag-and-drop operation.
143
+ @deprecated in ARIA 1.1`,
144
+ required: false,
145
+ control: "boolean",
146
+ type: "boolean"
147
+ },
148
+ "aria-haspopup": {
149
+ description: "Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.",
150
+ required: false,
151
+ control: "text",
152
+ type: "string"
153
+ },
154
+ "aria-hidden": {
155
+ description: "Indicates whether the element is exposed to an accessibility API.\n@see aria-disabled.",
156
+ required: false,
157
+ control: "boolean",
158
+ type: "boolean"
159
+ },
160
+ "aria-invalid": {
161
+ description: "Indicates the entered value does not conform to the format expected by the application.\n@see aria-errormessage.",
162
+ required: false,
163
+ control: "text",
164
+ type: "string"
165
+ },
166
+ "aria-keyshortcuts": {
167
+ description: "Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.",
168
+ required: false,
169
+ control: "text",
170
+ type: "string"
171
+ },
172
+ "aria-label": {
173
+ description: "Provides the accessible name that describes an interactive element if no other accessible name exists, for example in a button that contains an image with no text.",
174
+ required: false,
175
+ control: "text",
176
+ type: "string"
177
+ },
178
+ "aria-labelledby": {
179
+ description: "Identifies the element (or elements) that labels the current element.\n@see aria-describedby.",
180
+ required: false,
181
+ control: "text",
182
+ type: "string"
183
+ },
184
+ "aria-level": {
185
+ description: "Defines the hierarchical level of an element within a structure.",
186
+ required: false,
187
+ control: "number",
188
+ type: "number"
189
+ },
190
+ "aria-live": {
191
+ description: "Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.",
192
+ required: false,
193
+ control: "radio",
194
+ type: "string",
195
+ options: ["off", "assertive", "polite"]
196
+ },
197
+ "aria-modal": {
198
+ description: "Indicates whether an element is modal when displayed.",
199
+ required: false,
200
+ control: "boolean",
201
+ type: "boolean"
202
+ },
203
+ "aria-multiline": {
204
+ description: "Indicates whether a text box accepts multiple lines of input or only a single line.",
205
+ required: false,
206
+ control: "boolean",
207
+ type: "boolean"
208
+ },
209
+ "aria-multiselectable": {
210
+ description: "Indicates that the user may select more than one item from the current selectable descendants.",
211
+ required: false,
212
+ control: "boolean",
213
+ type: "boolean"
214
+ },
215
+ "aria-orientation": {
216
+ description: "Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.",
217
+ required: false,
218
+ control: "radio",
219
+ type: "string",
220
+ options: ["horizontal", "vertical"]
221
+ },
222
+ "aria-owns": {
223
+ description: "Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship\nbetween DOM elements where the DOM hierarchy cannot be used to represent the relationship.\n@see aria-controls.",
224
+ required: false,
225
+ control: "text",
226
+ type: "string"
227
+ },
228
+ "aria-placeholder": {
229
+ description: "Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.\nA hint could be a sample value or a brief description of the expected format.",
230
+ required: false,
231
+ control: "text",
232
+ type: "string"
233
+ },
234
+ "aria-posinset": {
235
+ description: "Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.\n@see aria-setsize.",
236
+ required: false,
237
+ control: "number",
238
+ type: "number"
239
+ },
240
+ "aria-pressed": {
241
+ description: 'Indicates the current "pressed" state of toggle buttons.\n@see aria-checked\n@see aria-selected.',
242
+ required: false,
243
+ control: "text",
244
+ type: "string"
245
+ },
246
+ "aria-readonly": {
247
+ description: "Indicates that the element is not editable, but is otherwise operable.\n@see aria-disabled.",
248
+ required: false,
249
+ control: "boolean",
250
+ type: "boolean"
251
+ },
252
+ "aria-relevant": {
253
+ description: "Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.\n@see aria-atomic.",
254
+ required: false,
255
+ control: "select",
256
+ type: "string",
257
+ options: [
258
+ "text",
259
+ "additions",
260
+ "additions removals",
261
+ "additions text",
262
+ "all",
263
+ "removals",
264
+ "removals additions",
265
+ "removals text",
266
+ "text additions",
267
+ "text removals"
268
+ ]
269
+ },
270
+ "aria-required": {
271
+ description: "Indicates that user input is required on the element before a form may be submitted.",
272
+ required: false,
273
+ control: "boolean",
274
+ type: "boolean"
275
+ },
276
+ "aria-roledescription": {
277
+ description: "Defines a human-readable, author-localized description for the role of an element.",
278
+ required: false,
279
+ control: "text",
280
+ type: "string"
281
+ },
282
+ "aria-rowcount": {
283
+ description: "Defines the total number of rows in a table, grid, or treegrid.\n@see aria-rowindex.",
284
+ required: false,
285
+ control: "number",
286
+ type: "number"
287
+ },
288
+ "aria-rowindex": {
289
+ description: "Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.\n@see aria-rowcount\n@see aria-rowspan.",
290
+ required: false,
291
+ control: "number",
292
+ type: "number"
293
+ },
294
+ "aria-rowindextext": {
295
+ description: "Defines a human readable text alternative of aria-rowindex.\n@see aria-colindextext.",
296
+ required: false,
297
+ control: "text",
298
+ type: "string"
299
+ },
300
+ "aria-rowspan": {
301
+ description: "Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.\n@see aria-rowindex\n@see aria-colspan.",
302
+ required: false,
303
+ control: "number",
304
+ type: "number"
305
+ },
306
+ "aria-selected": {
307
+ description: 'Indicates the current "selected" state of various widgets.\n@see aria-checked\n@see aria-pressed.',
308
+ required: false,
309
+ control: "boolean",
310
+ type: "boolean"
311
+ },
312
+ "aria-setsize": {
313
+ description: "Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.\n@see aria-posinset.",
314
+ required: false,
315
+ control: "number",
316
+ type: "number"
317
+ },
318
+ "aria-sort": {
319
+ description: "Indicates if items in a table or grid are sorted in ascending or descending order.",
320
+ required: false,
321
+ control: "select",
322
+ type: "string",
323
+ options: ["none", "ascending", "descending", "other"]
324
+ },
325
+ "aria-valuemax": {
326
+ description: "Defines the maximum allowed value for a range widget.",
327
+ required: false,
328
+ control: "number",
329
+ type: "number"
330
+ },
331
+ "aria-valuemin": {
332
+ description: "Defines the minimum allowed value for a range widget.",
333
+ required: false,
334
+ control: "number",
335
+ type: "number"
336
+ },
337
+ "aria-valuenow": {
338
+ description: "Defines the current value for a range widget.\n@see aria-valuetext.",
339
+ required: false,
340
+ control: "number",
341
+ type: "number"
342
+ },
343
+ "aria-valuetext": {
344
+ description: "Defines the human readable text alternative of aria-valuenow for a range widget.",
345
+ required: false,
346
+ control: "text",
347
+ type: "string"
348
+ },
349
+ autoCapitalize: {
350
+ required: false,
351
+ control: "text",
352
+ type: "string",
353
+ description: "Sets whether input is automatically capitalized when entered by user."
354
+ },
355
+ autoCorrect: { required: false, control: "text", type: "string" },
356
+ autoFocus: {
357
+ required: false,
358
+ control: "boolean",
359
+ type: "boolean",
360
+ description: "Indicates that an element should be focused on page load, or when its parent dialog is displayed."
361
+ },
362
+ autoSave: { required: false, control: "text", type: "string" },
363
+ className: { required: false, control: "text", type: "string" },
364
+ color: {
365
+ required: false,
366
+ control: "color",
367
+ type: "string",
368
+ description: "This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format. Note: This is a legacy attribute. Please use the CSS color property instead."
369
+ },
370
+ content: {
371
+ required: false,
372
+ control: "text",
373
+ type: "string",
374
+ description: "A value associated with http-equiv orname depending on the context."
375
+ },
376
+ contextMenu: {
377
+ required: false,
378
+ control: "text",
379
+ type: "string",
380
+ description: "Defines the ID of a menu element which willserve as the element's context menu."
381
+ },
382
+ datatype: { required: false, control: "text", type: "string" },
383
+ dir: {
384
+ required: false,
385
+ control: "text",
386
+ type: "string",
387
+ description: "Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)"
388
+ },
389
+ disabled: {
390
+ required: false,
391
+ control: "boolean",
392
+ type: "boolean",
393
+ description: "Indicates whether the user can interact with the element."
394
+ },
395
+ draggable: {
396
+ required: false,
397
+ control: "boolean",
398
+ type: "boolean",
399
+ description: "Defines whether the element can be dragged."
400
+ },
401
+ hidden: {
402
+ required: false,
403
+ control: "boolean",
404
+ type: "boolean",
405
+ description: "Prevents rendering of given element, while keeping child elements, e.g. script elements, active."
406
+ },
407
+ id: {
408
+ required: false,
409
+ control: "text",
410
+ type: "string",
411
+ description: "Often used with CSS to style a specific element. The value of this attribute must be unique."
412
+ },
413
+ inputMode: {
414
+ description: "Hints at the type of data that might be entered by the user while editing the element or its contents\n@see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute",
415
+ required: false,
416
+ control: "select",
417
+ type: "string",
418
+ options: [
419
+ "search",
420
+ "text",
421
+ "none",
422
+ "tel",
423
+ "url",
424
+ "email",
425
+ "numeric",
426
+ "decimal"
427
+ ]
428
+ },
429
+ is: {
430
+ description: "Specify that a standard HTML element should behave like a defined custom built-in element\n@see https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is",
431
+ required: false,
432
+ control: "text",
433
+ type: "string"
434
+ },
435
+ itemID: { required: false, control: "text", type: "string" },
436
+ itemProp: { required: false, control: "text", type: "string" },
437
+ itemRef: { required: false, control: "text", type: "string" },
438
+ itemScope: { required: false, control: "boolean", type: "boolean" },
439
+ itemType: { required: false, control: "text", type: "string" },
440
+ lang: {
441
+ required: false,
442
+ control: "text",
443
+ type: "string",
444
+ description: "Defines the language used in the element."
445
+ },
446
+ nonce: { required: false, control: "text", type: "string" },
447
+ open: {
448
+ required: false,
449
+ control: "boolean",
450
+ type: "boolean",
451
+ description: "Show or hide the content of this component on the canvas. This will not affect the initial state of the component."
452
+ },
453
+ placeholder: {
454
+ required: false,
455
+ control: "text",
456
+ type: "string",
457
+ description: "Provides a hint to the user of what can be entered in the field."
458
+ },
459
+ prefix: { required: false, control: "text", type: "string" },
460
+ property: { required: false, control: "text", type: "string" },
461
+ radioGroup: { required: false, control: "text", type: "string" },
462
+ rel: {
463
+ required: false,
464
+ control: "text",
465
+ type: "string",
466
+ description: "Specifies the relationship of the target object to the link object."
467
+ },
468
+ resource: { required: false, control: "text", type: "string" },
469
+ results: { required: false, control: "number", type: "number" },
470
+ rev: { required: false, control: "text", type: "string" },
471
+ role: {
472
+ required: false,
473
+ control: "text",
474
+ type: "string",
475
+ description: "Defines an explicit role for an element for use by assistive technologies."
476
+ },
477
+ security: { required: false, control: "text", type: "string" },
478
+ slot: {
479
+ required: false,
480
+ control: "text",
481
+ type: "string",
482
+ description: "Assigns a slot in a shadow DOM shadow tree to an element."
483
+ },
484
+ spellCheck: {
485
+ required: false,
486
+ control: "boolean",
487
+ type: "boolean",
488
+ description: "Indicates whether spell checking is allowed for the element."
489
+ },
490
+ suppressContentEditableWarning: {
491
+ required: false,
492
+ control: "boolean",
493
+ type: "boolean"
494
+ },
495
+ suppressHydrationWarning: {
496
+ required: false,
497
+ control: "boolean",
498
+ type: "boolean"
499
+ },
500
+ tabIndex: {
501
+ required: false,
502
+ control: "number",
503
+ type: "number",
504
+ description: "Overrides the browser's default tab order and follows the one specified instead."
505
+ },
506
+ title: {
507
+ required: false,
508
+ control: "text",
509
+ type: "string",
510
+ description: "Text to be displayed in a tooltip when hovering over the element."
511
+ },
512
+ translate: {
513
+ required: false,
514
+ control: "radio",
515
+ type: "string",
516
+ options: ["yes", "no"],
517
+ description: "Specify whether an element's attribute values and the values of its text node children are to be translated when the page is localized, or whether to leave them unchanged."
518
+ },
519
+ typeof: { required: false, control: "text", type: "string" },
520
+ unselectable: {
521
+ required: false,
522
+ control: "radio",
523
+ type: "string",
524
+ options: ["on", "off"]
525
+ },
526
+ vocab: { required: false, control: "text", type: "string" }
527
+ };
528
+
529
+ // src/theme/__generated__/tailwind-theme.ts
530
+ var spacing = {
531
+ "0": { type: "unit", unit: "px", value: 0 },
532
+ "1": { type: "unit", unit: "rem", value: 0.25 },
533
+ "2": { type: "unit", unit: "rem", value: 0.5 },
534
+ "3": { type: "unit", unit: "rem", value: 0.75 },
535
+ "4": { type: "unit", unit: "rem", value: 1 },
536
+ "5": { type: "unit", unit: "rem", value: 1.25 },
537
+ "6": { type: "unit", unit: "rem", value: 1.5 },
538
+ "7": { type: "unit", unit: "rem", value: 1.75 },
539
+ "8": { type: "unit", unit: "rem", value: 2 },
540
+ "9": { type: "unit", unit: "rem", value: 2.25 },
541
+ "10": { type: "unit", unit: "rem", value: 2.5 },
542
+ "11": { type: "unit", unit: "rem", value: 2.75 },
543
+ "12": { type: "unit", unit: "rem", value: 3 },
544
+ "14": { type: "unit", unit: "rem", value: 3.5 },
545
+ "16": { type: "unit", unit: "rem", value: 4 },
546
+ "20": { type: "unit", unit: "rem", value: 5 },
547
+ "24": { type: "unit", unit: "rem", value: 6 },
548
+ "28": { type: "unit", unit: "rem", value: 7 },
549
+ "32": { type: "unit", unit: "rem", value: 8 },
550
+ "36": { type: "unit", unit: "rem", value: 9 },
551
+ "40": { type: "unit", unit: "rem", value: 10 },
552
+ "44": { type: "unit", unit: "rem", value: 11 },
553
+ "48": { type: "unit", unit: "rem", value: 12 },
554
+ "52": { type: "unit", unit: "rem", value: 13 },
555
+ "56": { type: "unit", unit: "rem", value: 14 },
556
+ "60": { type: "unit", unit: "rem", value: 15 },
557
+ "64": { type: "unit", unit: "rem", value: 16 },
558
+ "72": { type: "unit", unit: "rem", value: 18 },
559
+ "80": { type: "unit", unit: "rem", value: 20 },
560
+ "96": { type: "unit", unit: "rem", value: 24 },
561
+ px: { type: "unit", unit: "px", value: 1 },
562
+ "0.5": { type: "unit", unit: "rem", value: 0.125 },
563
+ "1.5": { type: "unit", unit: "rem", value: 0.375 },
564
+ "2.5": { type: "unit", unit: "rem", value: 0.625 },
565
+ "3.5": { type: "unit", unit: "rem", value: 0.875 }
566
+ };
567
+ var padding = {
568
+ ...spacing
569
+ };
570
+ var margin = {
571
+ ...spacing,
572
+ auto: { type: "keyword", value: "auto" }
573
+ };
574
+ var width = {
575
+ ...spacing,
576
+ auto: { type: "keyword", value: "auto" },
577
+ "1/2": { type: "unit", unit: "%", value: 50 },
578
+ "1/3": { type: "unit", unit: "%", value: 33.333333 },
579
+ "2/3": { type: "unit", unit: "%", value: 66.666667 },
580
+ "1/4": { type: "unit", unit: "%", value: 25 },
581
+ "2/4": { type: "unit", unit: "%", value: 50 },
582
+ "3/4": { type: "unit", unit: "%", value: 75 },
583
+ "1/5": { type: "unit", unit: "%", value: 20 },
584
+ "2/5": { type: "unit", unit: "%", value: 40 },
585
+ "3/5": { type: "unit", unit: "%", value: 60 },
586
+ "4/5": { type: "unit", unit: "%", value: 80 },
587
+ "1/6": { type: "unit", unit: "%", value: 16.666667 },
588
+ "2/6": { type: "unit", unit: "%", value: 33.333333 },
589
+ "3/6": { type: "unit", unit: "%", value: 50 },
590
+ "4/6": { type: "unit", unit: "%", value: 66.666667 },
591
+ "5/6": { type: "unit", unit: "%", value: 83.333333 },
592
+ "1/12": { type: "unit", unit: "%", value: 8.333333 },
593
+ "2/12": { type: "unit", unit: "%", value: 16.666667 },
594
+ "3/12": { type: "unit", unit: "%", value: 25 },
595
+ "4/12": { type: "unit", unit: "%", value: 33.333333 },
596
+ "5/12": { type: "unit", unit: "%", value: 41.666667 },
597
+ "6/12": { type: "unit", unit: "%", value: 50 },
598
+ "7/12": { type: "unit", unit: "%", value: 58.333333 },
599
+ "8/12": { type: "unit", unit: "%", value: 66.666667 },
600
+ "9/12": { type: "unit", unit: "%", value: 75 },
601
+ "10/12": { type: "unit", unit: "%", value: 83.333333 },
602
+ "11/12": { type: "unit", unit: "%", value: 91.666667 },
603
+ full: { type: "unit", unit: "%", value: 100 },
604
+ screen: { type: "unit", unit: "vw", value: 100 },
605
+ min: { type: "keyword", value: "min-content" },
606
+ max: { type: "keyword", value: "max-content" },
607
+ fit: { type: "keyword", value: "fit-content" }
608
+ };
609
+ var maxWidth = {
610
+ "0": { type: "unit", unit: "rem", value: 0 },
611
+ none: { type: "keyword", value: "none" },
612
+ xs: { type: "unit", unit: "rem", value: 20 },
613
+ sm: { type: "unit", unit: "rem", value: 24 },
614
+ md: { type: "unit", unit: "rem", value: 28 },
615
+ lg: { type: "unit", unit: "rem", value: 32 },
616
+ xl: { type: "unit", unit: "rem", value: 36 },
617
+ "2xl": { type: "unit", unit: "rem", value: 42 },
618
+ "3xl": { type: "unit", unit: "rem", value: 48 },
619
+ "4xl": { type: "unit", unit: "rem", value: 56 },
620
+ "5xl": { type: "unit", unit: "rem", value: 64 },
621
+ "6xl": { type: "unit", unit: "rem", value: 72 },
622
+ "7xl": { type: "unit", unit: "rem", value: 80 },
623
+ full: { type: "unit", unit: "%", value: 100 },
624
+ min: { type: "keyword", value: "min-content" },
625
+ max: { type: "keyword", value: "max-content" },
626
+ fit: { type: "keyword", value: "fit-content" },
627
+ prose: { type: "unit", unit: "ch", value: 65 }
628
+ };
629
+ var height = {
630
+ ...spacing,
631
+ auto: { type: "keyword", value: "auto" },
632
+ "1/2": { type: "unit", unit: "%", value: 50 },
633
+ "1/3": { type: "unit", unit: "%", value: 33.333333 },
634
+ "2/3": { type: "unit", unit: "%", value: 66.666667 },
635
+ "1/4": { type: "unit", unit: "%", value: 25 },
636
+ "2/4": { type: "unit", unit: "%", value: 50 },
637
+ "3/4": { type: "unit", unit: "%", value: 75 },
638
+ "1/5": { type: "unit", unit: "%", value: 20 },
639
+ "2/5": { type: "unit", unit: "%", value: 40 },
640
+ "3/5": { type: "unit", unit: "%", value: 60 },
641
+ "4/5": { type: "unit", unit: "%", value: 80 },
642
+ "1/6": { type: "unit", unit: "%", value: 16.666667 },
643
+ "2/6": { type: "unit", unit: "%", value: 33.333333 },
644
+ "3/6": { type: "unit", unit: "%", value: 50 },
645
+ "4/6": { type: "unit", unit: "%", value: 66.666667 },
646
+ "5/6": { type: "unit", unit: "%", value: 83.333333 },
647
+ full: { type: "unit", unit: "%", value: 100 },
648
+ screen: { type: "unit", unit: "vh", value: 100 },
649
+ min: { type: "keyword", value: "min-content" },
650
+ max: { type: "keyword", value: "max-content" },
651
+ fit: { type: "keyword", value: "fit-content" }
652
+ };
653
+ var inset = {
654
+ ...spacing,
655
+ auto: { type: "keyword", value: "auto" },
656
+ "1/2": { type: "unit", unit: "%", value: 50 },
657
+ "1/3": { type: "unit", unit: "%", value: 33.333333 },
658
+ "2/3": { type: "unit", unit: "%", value: 66.666667 },
659
+ "1/4": { type: "unit", unit: "%", value: 25 },
660
+ "2/4": { type: "unit", unit: "%", value: 50 },
661
+ "3/4": { type: "unit", unit: "%", value: 75 },
662
+ full: { type: "unit", unit: "%", value: 100 }
663
+ };
664
+ var borderWidth = {
665
+ "0": { type: "unit", unit: "px", value: 0 },
666
+ "2": { type: "unit", unit: "px", value: 2 },
667
+ "4": { type: "unit", unit: "px", value: 4 },
668
+ "8": { type: "unit", unit: "px", value: 8 },
669
+ DEFAULT: { type: "unit", unit: "px", value: 1 }
670
+ };
671
+ var borderRadius = {
672
+ none: { type: "unit", unit: "px", value: 0 },
673
+ sm: { type: "unit", unit: "rem", value: 0.125 },
674
+ DEFAULT: { type: "unit", unit: "rem", value: 0.5 },
675
+ md: { type: "unit", unit: "rem", value: 0.375 },
676
+ lg: { type: "unit", unit: "rem", value: 0.5 },
677
+ xl: { type: "unit", unit: "rem", value: 0.75 },
678
+ "2xl": { type: "unit", unit: "rem", value: 1 },
679
+ "3xl": { type: "unit", unit: "rem", value: 1.5 },
680
+ full: { type: "unit", unit: "px", value: 9999 }
681
+ };
682
+ var colors = {
683
+ transparent: { type: "keyword", value: "transparent" },
684
+ current: { type: "keyword", value: "currentColor" },
685
+ inherit: { type: "keyword", value: "inherit" },
686
+ popover: { type: "rgb", alpha: 1, r: 255, g: 255, b: 255 },
687
+ popoverForeground: { type: "rgb", alpha: 1, r: 2, g: 8, b: 23 },
688
+ border: { type: "rgb", alpha: 1, r: 226, g: 232, b: 240 },
689
+ background: { type: "rgb", alpha: 1, r: 255, g: 255, b: 255 },
690
+ foreground: { type: "rgb", alpha: 1, r: 2, g: 8, b: 23 },
691
+ ring: { type: "rgb", alpha: 1, r: 148, g: 163, b: 184 },
692
+ mutedForeground: { type: "rgb", alpha: 1, r: 100, g: 116, b: 139 },
693
+ muted: { type: "rgb", alpha: 1, r: 241, g: 245, b: 249 },
694
+ primary: { type: "rgb", alpha: 1, r: 15, g: 23, b: 42 },
695
+ primaryForeground: { type: "rgb", alpha: 1, r: 248, g: 250, b: 252 },
696
+ destructive: { type: "rgb", alpha: 1, r: 239, g: 68, b: 68 },
697
+ destructiveForeground: { type: "rgb", alpha: 1, r: 248, g: 250, b: 252 },
698
+ accent: { type: "rgb", alpha: 1, r: 241, g: 245, b: 249 },
699
+ accentForeground: { type: "rgb", alpha: 1, r: 15, g: 23, b: 42 },
700
+ input: { type: "rgb", alpha: 1, r: 226, g: 232, b: 240 },
701
+ secondary: { type: "rgb", alpha: 1, r: 241, g: 245, b: 249 },
702
+ secondaryForeground: { type: "rgb", alpha: 1, r: 15, g: 23, b: 42 }
703
+ };
704
+ var zIndex = {
705
+ "0": { type: "unit", unit: "number", value: 0 },
706
+ "10": { type: "unit", unit: "number", value: 10 },
707
+ "20": { type: "unit", unit: "number", value: 20 },
708
+ "30": { type: "unit", unit: "number", value: 30 },
709
+ "40": { type: "unit", unit: "number", value: 40 },
710
+ "50": { type: "unit", unit: "number", value: 50 },
711
+ auto: { type: "keyword", value: "auto" }
712
+ };
713
+ var opacity = {
714
+ "0": { type: "unit", unit: "number", value: 0 },
715
+ "5": { type: "unit", unit: "number", value: 0.05 },
716
+ "10": { type: "unit", unit: "number", value: 0.1 },
717
+ "20": { type: "unit", unit: "number", value: 0.2 },
718
+ "25": { type: "unit", unit: "number", value: 0.25 },
719
+ "30": { type: "unit", unit: "number", value: 0.3 },
720
+ "40": { type: "unit", unit: "number", value: 0.4 },
721
+ "50": { type: "unit", unit: "number", value: 0.5 },
722
+ "60": { type: "unit", unit: "number", value: 0.6 },
723
+ "70": { type: "unit", unit: "number", value: 0.7 },
724
+ "75": { type: "unit", unit: "number", value: 0.75 },
725
+ "80": { type: "unit", unit: "number", value: 0.8 },
726
+ "90": { type: "unit", unit: "number", value: 0.9 },
727
+ "95": { type: "unit", unit: "number", value: 0.95 },
728
+ "100": { type: "unit", unit: "number", value: 1 }
729
+ };
730
+ var cursor = {
731
+ auto: { type: "keyword", value: "auto" },
732
+ default: { type: "keyword", value: "default" },
733
+ pointer: { type: "keyword", value: "pointer" },
734
+ wait: { type: "keyword", value: "wait" },
735
+ text: { type: "keyword", value: "text" },
736
+ move: { type: "keyword", value: "move" },
737
+ help: { type: "keyword", value: "help" },
738
+ "not-allowed": { type: "keyword", value: "not-allowed" },
739
+ none: { type: "keyword", value: "none" },
740
+ "context-menu": { type: "keyword", value: "context-menu" },
741
+ progress: { type: "keyword", value: "progress" },
742
+ cell: { type: "keyword", value: "cell" },
743
+ crosshair: { type: "keyword", value: "crosshair" },
744
+ "vertical-text": { type: "keyword", value: "vertical-text" },
745
+ alias: { type: "keyword", value: "alias" },
746
+ copy: { type: "keyword", value: "copy" },
747
+ "no-drop": { type: "keyword", value: "no-drop" },
748
+ grab: { type: "keyword", value: "grab" },
749
+ grabbing: { type: "keyword", value: "grabbing" },
750
+ "all-scroll": { type: "keyword", value: "all-scroll" },
751
+ "col-resize": { type: "keyword", value: "col-resize" },
752
+ "row-resize": { type: "keyword", value: "row-resize" },
753
+ "n-resize": { type: "keyword", value: "n-resize" },
754
+ "e-resize": { type: "keyword", value: "e-resize" },
755
+ "s-resize": { type: "keyword", value: "s-resize" },
756
+ "w-resize": { type: "keyword", value: "w-resize" },
757
+ "ne-resize": { type: "keyword", value: "ne-resize" },
758
+ "nw-resize": { type: "keyword", value: "nw-resize" },
759
+ "se-resize": { type: "keyword", value: "se-resize" },
760
+ "sw-resize": { type: "keyword", value: "sw-resize" },
761
+ "ew-resize": { type: "keyword", value: "ew-resize" },
762
+ "ns-resize": { type: "keyword", value: "ns-resize" },
763
+ "nesw-resize": { type: "keyword", value: "nesw-resize" },
764
+ "nwse-resize": { type: "keyword", value: "nwse-resize" },
765
+ "zoom-in": { type: "keyword", value: "zoom-in" },
766
+ "zoom-out": { type: "keyword", value: "zoom-out" }
767
+ };
768
+ var lineHeight = {
769
+ "3": { type: "unit", unit: "rem", value: 0.75 },
770
+ "4": { type: "unit", unit: "rem", value: 1 },
771
+ "5": { type: "unit", unit: "rem", value: 1.25 },
772
+ "6": { type: "unit", unit: "rem", value: 1.5 },
773
+ "7": { type: "unit", unit: "rem", value: 1.75 },
774
+ "8": { type: "unit", unit: "rem", value: 2 },
775
+ "9": { type: "unit", unit: "rem", value: 2.25 },
776
+ "10": { type: "unit", unit: "rem", value: 2.5 },
777
+ none: { type: "unit", unit: "number", value: 1 },
778
+ tight: { type: "unit", unit: "number", value: 1.25 },
779
+ snug: { type: "unit", unit: "number", value: 1.375 },
780
+ normal: { type: "unit", unit: "number", value: 1.5 },
781
+ relaxed: { type: "unit", unit: "number", value: 1.625 },
782
+ loose: { type: "unit", unit: "number", value: 2 }
783
+ };
784
+ var letterSpacing = {
785
+ tighter: { type: "unit", unit: "em", value: -0.05 },
786
+ tight: { type: "unit", unit: "em", value: -0.025 },
787
+ normal: { type: "unit", unit: "em", value: 0 },
788
+ wide: { type: "unit", unit: "em", value: 0.025 },
789
+ wider: { type: "unit", unit: "em", value: 0.05 },
790
+ widest: { type: "unit", unit: "em", value: 0.1 }
791
+ };
792
+ var listStyleType = {
793
+ none: { type: "keyword", value: "none" },
794
+ disc: { type: "keyword", value: "disc" },
795
+ decimal: { type: "keyword", value: "decimal" }
796
+ };
797
+ var lineClamp = {
798
+ "1": { type: "unit", unit: "number", value: 1 },
799
+ "2": { type: "unit", unit: "number", value: 2 },
800
+ "3": { type: "unit", unit: "number", value: 3 },
801
+ "4": { type: "unit", unit: "number", value: 4 },
802
+ "5": { type: "unit", unit: "number", value: 5 },
803
+ "6": { type: "unit", unit: "number", value: 6 }
804
+ };
805
+ var ringWidth = {
806
+ "0": { type: "unit", unit: "px", value: 0 },
807
+ "1": { type: "unit", unit: "px", value: 1 },
808
+ "2": { type: "unit", unit: "px", value: 2 },
809
+ "4": { type: "unit", unit: "px", value: 4 },
810
+ "8": { type: "unit", unit: "px", value: 8 },
811
+ DEFAULT: { type: "unit", unit: "px", value: 3 }
812
+ };
813
+ var ringOffsetWidth = {
814
+ "0": { type: "unit", unit: "px", value: 0 },
815
+ "1": { type: "unit", unit: "px", value: 1 },
816
+ "2": { type: "unit", unit: "px", value: 2 },
817
+ "4": { type: "unit", unit: "px", value: 4 },
818
+ "8": { type: "unit", unit: "px", value: 8 }
819
+ };
820
+ var boxShadow = {
821
+ sm: {
822
+ type: "layers",
823
+ value: [
824
+ {
825
+ type: "tuple",
826
+ value: [
827
+ { type: "unit", value: 0, unit: "number" },
828
+ { type: "unit", value: 1, unit: "px" },
829
+ { type: "unit", value: 2, unit: "px" },
830
+ { type: "unit", value: 0, unit: "number" },
831
+ { type: "rgb", alpha: 0.05, r: 0, g: 0, b: 0 }
832
+ ]
833
+ }
834
+ ]
835
+ },
836
+ DEFAULT: {
837
+ type: "layers",
838
+ value: [
839
+ {
840
+ type: "tuple",
841
+ value: [
842
+ { type: "unit", value: 0, unit: "number" },
843
+ { type: "unit", value: 1, unit: "px" },
844
+ { type: "unit", value: 3, unit: "px" },
845
+ { type: "unit", value: 0, unit: "number" },
846
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
847
+ ]
848
+ },
849
+ {
850
+ type: "tuple",
851
+ value: [
852
+ { type: "unit", value: 0, unit: "number" },
853
+ { type: "unit", value: 1, unit: "px" },
854
+ { type: "unit", value: 2, unit: "px" },
855
+ { type: "unit", value: -1, unit: "px" },
856
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
857
+ ]
858
+ }
859
+ ]
860
+ },
861
+ md: {
862
+ type: "layers",
863
+ value: [
864
+ {
865
+ type: "tuple",
866
+ value: [
867
+ { type: "unit", value: 0, unit: "number" },
868
+ { type: "unit", value: 4, unit: "px" },
869
+ { type: "unit", value: 6, unit: "px" },
870
+ { type: "unit", value: -1, unit: "px" },
871
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
872
+ ]
873
+ },
874
+ {
875
+ type: "tuple",
876
+ value: [
877
+ { type: "unit", value: 0, unit: "number" },
878
+ { type: "unit", value: 2, unit: "px" },
879
+ { type: "unit", value: 4, unit: "px" },
880
+ { type: "unit", value: -2, unit: "px" },
881
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
882
+ ]
883
+ }
884
+ ]
885
+ },
886
+ lg: {
887
+ type: "layers",
888
+ value: [
889
+ {
890
+ type: "tuple",
891
+ value: [
892
+ { type: "unit", value: 0, unit: "number" },
893
+ { type: "unit", value: 10, unit: "px" },
894
+ { type: "unit", value: 15, unit: "px" },
895
+ { type: "unit", value: -3, unit: "px" },
896
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
897
+ ]
898
+ },
899
+ {
900
+ type: "tuple",
901
+ value: [
902
+ { type: "unit", value: 0, unit: "number" },
903
+ { type: "unit", value: 4, unit: "px" },
904
+ { type: "unit", value: 6, unit: "px" },
905
+ { type: "unit", value: -4, unit: "px" },
906
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
907
+ ]
908
+ }
909
+ ]
910
+ },
911
+ xl: {
912
+ type: "layers",
913
+ value: [
914
+ {
915
+ type: "tuple",
916
+ value: [
917
+ { type: "unit", value: 0, unit: "number" },
918
+ { type: "unit", value: 20, unit: "px" },
919
+ { type: "unit", value: 25, unit: "px" },
920
+ { type: "unit", value: -5, unit: "px" },
921
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
922
+ ]
923
+ },
924
+ {
925
+ type: "tuple",
926
+ value: [
927
+ { type: "unit", value: 0, unit: "number" },
928
+ { type: "unit", value: 8, unit: "px" },
929
+ { type: "unit", value: 10, unit: "px" },
930
+ { type: "unit", value: -6, unit: "px" },
931
+ { type: "rgb", alpha: 0.1, r: 0, g: 0, b: 0 }
932
+ ]
933
+ }
934
+ ]
935
+ },
936
+ "2xl": {
937
+ type: "layers",
938
+ value: [
939
+ {
940
+ type: "tuple",
941
+ value: [
942
+ { type: "unit", value: 0, unit: "number" },
943
+ { type: "unit", value: 25, unit: "px" },
944
+ { type: "unit", value: 50, unit: "px" },
945
+ { type: "unit", value: -12, unit: "px" },
946
+ { type: "rgb", alpha: 0.25, r: 0, g: 0, b: 0 }
947
+ ]
948
+ }
949
+ ]
950
+ },
951
+ inner: {
952
+ type: "layers",
953
+ value: [
954
+ {
955
+ type: "tuple",
956
+ value: [
957
+ { type: "keyword", value: "inset" },
958
+ { type: "unit", value: 0, unit: "number" },
959
+ { type: "unit", value: 2, unit: "px" },
960
+ { type: "unit", value: 4, unit: "px" },
961
+ { type: "unit", value: 0, unit: "number" },
962
+ { type: "rgb", alpha: 0.05, r: 0, g: 0, b: 0 }
963
+ ]
964
+ }
965
+ ]
966
+ },
967
+ none: {
968
+ type: "layers",
969
+ value: [{ type: "tuple", value: [{ type: "keyword", value: "none" }] }]
970
+ }
971
+ };
972
+ var blur = {
973
+ sm: { type: "unparsed", value: "blur(0 1px 2px 0 rgb(0 0 0 / 0.05))" },
974
+ DEFAULT: {
975
+ type: "unparsed",
976
+ value: "blur(0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1))"
977
+ },
978
+ md: {
979
+ type: "unparsed",
980
+ value: "blur(0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1))"
981
+ },
982
+ lg: {
983
+ type: "unparsed",
984
+ value: "blur(0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1))"
985
+ },
986
+ xl: {
987
+ type: "unparsed",
988
+ value: "blur(0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1))"
989
+ },
990
+ "2xl": {
991
+ type: "unparsed",
992
+ value: "blur(0 25px 50px -12px rgb(0 0 0 / 0.25))"
993
+ },
994
+ inner: {
995
+ type: "unparsed",
996
+ value: "blur(inset 0 2px 4px 0 rgb(0 0 0 / 0.05))"
997
+ },
998
+ none: { type: "unparsed", value: "blur(none)" }
999
+ };
1000
+ var fontSize = {
1001
+ xs: { type: "unit", unit: "rem", value: 0.75 },
1002
+ sm: { type: "unit", unit: "rem", value: 0.875 },
1003
+ base: { type: "unit", unit: "rem", value: 1 },
1004
+ lg: { type: "unit", unit: "rem", value: 1.125 },
1005
+ xl: { type: "unit", unit: "rem", value: 1.25 },
1006
+ "2xl": { type: "unit", unit: "rem", value: 1.5 },
1007
+ "3xl": { type: "unit", unit: "rem", value: 1.875 },
1008
+ "4xl": { type: "unit", unit: "rem", value: 2.25 },
1009
+ "5xl": { type: "unit", unit: "rem", value: 3 },
1010
+ "6xl": { type: "unit", unit: "rem", value: 3.75 },
1011
+ "7xl": { type: "unit", unit: "rem", value: 4.5 },
1012
+ "8xl": { type: "unit", unit: "rem", value: 6 },
1013
+ "9xl": { type: "unit", unit: "rem", value: 8 }
1014
+ };
1015
+ var fontSizeLineHeight = {
1016
+ xs: { type: "unit", unit: "rem", value: 1 },
1017
+ sm: { type: "unit", unit: "rem", value: 1.25 },
1018
+ base: { type: "unit", unit: "rem", value: 1.5 },
1019
+ lg: { type: "unit", unit: "rem", value: 1.75 },
1020
+ xl: { type: "unit", unit: "rem", value: 1.75 },
1021
+ "2xl": { type: "unit", unit: "rem", value: 2 },
1022
+ "3xl": { type: "unit", unit: "rem", value: 2.25 },
1023
+ "4xl": { type: "unit", unit: "rem", value: 2.5 },
1024
+ "5xl": { type: "unit", unit: "number", value: 1 },
1025
+ "6xl": { type: "unit", unit: "number", value: 1 },
1026
+ "7xl": { type: "unit", unit: "number", value: 1 },
1027
+ "8xl": { type: "unit", unit: "number", value: 1 },
1028
+ "9xl": { type: "unit", unit: "number", value: 1 }
1029
+ };
1030
+
1031
+ // src/theme/tailwind-classes.ts
1032
+ var property = (property2, value) => {
1033
+ if (value.startsWith("--")) {
1034
+ return {
1035
+ property: property2,
1036
+ value: { type: "var", value: value.slice(2), fallbacks: [] }
1037
+ };
1038
+ }
1039
+ return {
1040
+ property: property2,
1041
+ value: { type: "unparsed", value }
1042
+ };
1043
+ };
1044
+ var preflight = () => {
1045
+ const borderColorValue = colors.border;
1046
+ return [
1047
+ {
1048
+ property: "borderTopStyle",
1049
+ value: { type: "keyword", value: "solid" }
1050
+ },
1051
+ {
1052
+ property: "borderRightStyle",
1053
+ value: { type: "keyword", value: "solid" }
1054
+ },
1055
+ {
1056
+ property: "borderBottomStyle",
1057
+ value: { type: "keyword", value: "solid" }
1058
+ },
1059
+ {
1060
+ property: "borderLeftStyle",
1061
+ value: { type: "keyword", value: "solid" }
1062
+ },
1063
+ {
1064
+ property: "borderTopColor",
1065
+ value: borderColorValue
1066
+ },
1067
+ {
1068
+ property: "borderRightColor",
1069
+ value: borderColorValue
1070
+ },
1071
+ {
1072
+ property: "borderBottomColor",
1073
+ value: borderColorValue
1074
+ },
1075
+ {
1076
+ property: "borderLeftColor",
1077
+ value: borderColorValue
1078
+ }
1079
+ ];
1080
+ };
1081
+ var z = (value) => {
1082
+ return [
1083
+ {
1084
+ property: "zIndex",
1085
+ value: zIndex[value]
1086
+ }
1087
+ ];
1088
+ };
1089
+ var overflow = (value) => [
1090
+ {
1091
+ property: "overflow",
1092
+ value: { type: "keyword", value }
1093
+ }
1094
+ ];
1095
+ var rounded = (value = "DEFAULT") => {
1096
+ const styleValue = borderRadius[value];
1097
+ return [
1098
+ { property: "borderTopLeftRadius", value: styleValue },
1099
+ { property: "borderTopRightRadius", value: styleValue },
1100
+ { property: "borderBottomRightRadius", value: styleValue },
1101
+ { property: "borderBottomLeftRadius", value: styleValue }
1102
+ ];
1103
+ };
1104
+ var border = (borderWidthOrColor) => {
1105
+ if (typeof borderWidthOrColor === "number" || borderWidthOrColor === void 0) {
1106
+ const styleValue2 = borderWidth[borderWidthOrColor ?? "DEFAULT"];
1107
+ return [
1108
+ ...preflight(),
1109
+ { property: "borderTopWidth", value: styleValue2 },
1110
+ { property: "borderRightWidth", value: styleValue2 },
1111
+ { property: "borderBottomWidth", value: styleValue2 },
1112
+ { property: "borderLeftWidth", value: styleValue2 }
1113
+ ];
1114
+ }
1115
+ const styleValue = colors[borderWidthOrColor];
1116
+ return [
1117
+ { property: "borderTopColor", value: styleValue },
1118
+ { property: "borderRightColor", value: styleValue },
1119
+ { property: "borderBottomColor", value: styleValue },
1120
+ { property: "borderLeftColor", value: styleValue }
1121
+ ];
1122
+ };
1123
+ var borderB = (borderWidthOrColor) => {
1124
+ let widthValue = { type: "unit", value: 1, unit: "number" };
1125
+ let colorValue = colors.border;
1126
+ if (typeof borderWidthOrColor === "number" || borderWidthOrColor === void 0) {
1127
+ widthValue = borderWidth[borderWidthOrColor ?? "DEFAULT"];
1128
+ } else {
1129
+ colorValue = colors[borderWidthOrColor];
1130
+ }
1131
+ return [
1132
+ {
1133
+ property: "borderBottomWidth",
1134
+ value: widthValue
1135
+ },
1136
+ {
1137
+ property: "borderBottomStyle",
1138
+ value: { type: "keyword", value: "solid" }
1139
+ },
1140
+ {
1141
+ property: "borderBottomColor",
1142
+ value: colorValue
1143
+ }
1144
+ ];
1145
+ };
1146
+ var paddingProperty = (property2) => (padding2) => {
1147
+ return [{ property: property2, value: padding[padding2] }];
1148
+ };
1149
+ var pt = (padding2) => {
1150
+ return paddingProperty("paddingTop")(padding2);
1151
+ };
1152
+ var pb = (padding2) => {
1153
+ return paddingProperty("paddingBottom")(padding2);
1154
+ };
1155
+ var pl = (padding2) => {
1156
+ return paddingProperty("paddingLeft")(padding2);
1157
+ };
1158
+ var pr = (padding2) => {
1159
+ return paddingProperty("paddingRight")(padding2);
1160
+ };
1161
+ var px = (padding2) => {
1162
+ return [pl(padding2), pr(padding2)].flat();
1163
+ };
1164
+ var py = (padding2) => {
1165
+ return [pt(padding2), pb(padding2)].flat();
1166
+ };
1167
+ var p = (padding2) => {
1168
+ return [px(padding2), py(padding2)].flat();
1169
+ };
1170
+ var marginProperty = (property2) => (margin2) => {
1171
+ return [{ property: property2, value: margin[margin2] }];
1172
+ };
1173
+ var ml = (margin2) => {
1174
+ return marginProperty("marginLeft")(margin2);
1175
+ };
1176
+ var mr = (margin2) => {
1177
+ return marginProperty("marginRight")(margin2);
1178
+ };
1179
+ var mt = (margin2) => {
1180
+ return marginProperty("marginTop")(margin2);
1181
+ };
1182
+ var mb = (margin2) => {
1183
+ return marginProperty("marginBottom")(margin2);
1184
+ };
1185
+ var mx = (margin2) => {
1186
+ return [ml(margin2), mr(margin2)].flat();
1187
+ };
1188
+ var my = (margin2) => {
1189
+ return [mt(margin2), mb(margin2)].flat();
1190
+ };
1191
+ var m = (margin2) => {
1192
+ return [mx(margin2), my(margin2)].flat();
1193
+ };
1194
+ var w = (spacing2) => {
1195
+ return [{ property: "width", value: width[spacing2] }];
1196
+ };
1197
+ var h = (spacing2) => {
1198
+ return [{ property: "height", value: height[spacing2] }];
1199
+ };
1200
+ var opacity2 = (opacity3) => {
1201
+ return [
1202
+ {
1203
+ property: "opacity",
1204
+ value: opacity[opacity3]
1205
+ }
1206
+ ];
1207
+ };
1208
+ var cursor2 = (cursor3) => {
1209
+ return [
1210
+ {
1211
+ property: "cursor",
1212
+ value: cursor[cursor3]
1213
+ }
1214
+ ];
1215
+ };
1216
+ var maxW = (spacing2) => {
1217
+ return [{ property: "maxWidth", value: maxWidth[spacing2] }];
1218
+ };
1219
+ var positionStyle = (property2, spacing2) => {
1220
+ return { property: property2, value: inset[spacing2] };
1221
+ };
1222
+ var top = (spacing2) => [positionStyle("top", spacing2)];
1223
+ var right = (spacing2) => [positionStyle("right", spacing2)];
1224
+ var left = (spacing2) => [positionStyle("left", spacing2)];
1225
+ var inset2 = (spacing2) => [
1226
+ positionStyle("left", spacing2),
1227
+ positionStyle("right", spacing2),
1228
+ positionStyle("top", spacing2),
1229
+ positionStyle("bottom", spacing2)
1230
+ ];
1231
+ var aspect = (value) => {
1232
+ let unparsed = value;
1233
+ if (value === "square") {
1234
+ unparsed = "1 / 1";
1235
+ }
1236
+ if (value === "video") {
1237
+ unparsed = "16 / 9";
1238
+ }
1239
+ return [
1240
+ {
1241
+ property: "aspectRatio",
1242
+ value: { type: "unparsed", value: unparsed }
1243
+ }
1244
+ ];
1245
+ };
1246
+ var backdropBlur = (blur2) => {
1247
+ return [{ property: "backdropFilter", value: blur[blur2] }];
1248
+ };
1249
+ var list = (listStyle) => {
1250
+ return [{ property: "listStyleType", value: listStyleType[listStyle] }];
1251
+ };
1252
+ var select = (_selectValue) => {
1253
+ return [
1254
+ {
1255
+ property: "userSelect",
1256
+ value: {
1257
+ type: "keyword",
1258
+ value: "none"
1259
+ }
1260
+ }
1261
+ ];
1262
+ };
1263
+ var bg = (color, alpha) => {
1264
+ const value = colors[color];
1265
+ if (alpha !== void 0 && value.type === "rgb") {
1266
+ value.alpha = alpha / 100;
1267
+ }
1268
+ return [
1269
+ {
1270
+ property: "backgroundColor",
1271
+ value
1272
+ }
1273
+ ];
1274
+ };
1275
+ var fixed = () => {
1276
+ return [{ property: "position", value: { type: "keyword", value: "fixed" } }];
1277
+ };
1278
+ var relative = () => {
1279
+ return [
1280
+ { property: "position", value: { type: "keyword", value: "relative" } }
1281
+ ];
1282
+ };
1283
+ var absolute = () => {
1284
+ return [
1285
+ { property: "position", value: { type: "keyword", value: "absolute" } }
1286
+ ];
1287
+ };
1288
+ var alignItems = {
1289
+ start: "flex-start",
1290
+ end: "flex-end",
1291
+ center: "center",
1292
+ baseline: "baseline",
1293
+ stretch: "stretch"
1294
+ };
1295
+ var items = (alignItemsParam) => {
1296
+ return [
1297
+ {
1298
+ property: "alignItems",
1299
+ value: {
1300
+ type: "keyword",
1301
+ value: alignItems[alignItemsParam]
1302
+ }
1303
+ }
1304
+ ];
1305
+ };
1306
+ var justifyContent = {
1307
+ start: "flex-start",
1308
+ end: "flex-end",
1309
+ center: "center",
1310
+ between: "space-between",
1311
+ around: "space-around",
1312
+ evenly: "space-evenly",
1313
+ stretch: "stretch"
1314
+ };
1315
+ var justify = (justifyContentParam) => {
1316
+ return [
1317
+ {
1318
+ property: "justifyContent",
1319
+ value: {
1320
+ type: "keyword",
1321
+ value: justifyContent[justifyContentParam]
1322
+ }
1323
+ }
1324
+ ];
1325
+ };
1326
+ var inlineFlex = () => {
1327
+ return [
1328
+ { property: "display", value: { type: "keyword", value: "inline-flex" } }
1329
+ ];
1330
+ };
1331
+ var block = () => {
1332
+ return [{ property: "display", value: { type: "keyword", value: "block" } }];
1333
+ };
1334
+ var flexDirection = { row: "row", col: "column" };
1335
+ var flex = (flexParam) => {
1336
+ if (flexParam === void 0) {
1337
+ return [{ property: "display", value: { type: "keyword", value: "flex" } }];
1338
+ }
1339
+ if (flexParam === 1) {
1340
+ return [
1341
+ {
1342
+ property: "flexGrow",
1343
+ value: { type: "unit", value: 1, unit: "number" }
1344
+ },
1345
+ {
1346
+ property: "flexShrink",
1347
+ value: { type: "unit", value: 1, unit: "number" }
1348
+ },
1349
+ {
1350
+ property: "flexBasis",
1351
+ value: { type: "unit", value: 0, unit: "%" }
1352
+ }
1353
+ ];
1354
+ }
1355
+ if (flexParam === "auto") {
1356
+ return [
1357
+ {
1358
+ property: "flexGrow",
1359
+ value: { type: "unit", value: 1, unit: "number" }
1360
+ },
1361
+ {
1362
+ property: "flexShrink",
1363
+ value: { type: "unit", value: 1, unit: "number" }
1364
+ },
1365
+ {
1366
+ property: "flexBasis",
1367
+ value: { type: "keyword", value: "auto" }
1368
+ }
1369
+ ];
1370
+ }
1371
+ if (flexParam === "initial") {
1372
+ return [
1373
+ {
1374
+ property: "flexGrow",
1375
+ value: { type: "unit", value: 0, unit: "number" }
1376
+ },
1377
+ {
1378
+ property: "flexShrink",
1379
+ value: { type: "unit", value: 1, unit: "number" }
1380
+ },
1381
+ {
1382
+ property: "flexBasis",
1383
+ value: { type: "keyword", value: "auto" }
1384
+ }
1385
+ ];
1386
+ }
1387
+ if (flexParam === "none") {
1388
+ return [
1389
+ {
1390
+ property: "flexGrow",
1391
+ value: { type: "unit", value: 0, unit: "number" }
1392
+ },
1393
+ {
1394
+ property: "flexShrink",
1395
+ value: { type: "unit", value: 0, unit: "number" }
1396
+ },
1397
+ {
1398
+ property: "flexBasis",
1399
+ value: { type: "keyword", value: "auto" }
1400
+ }
1401
+ ];
1402
+ }
1403
+ return [
1404
+ {
1405
+ property: "flexDirection",
1406
+ value: {
1407
+ type: "keyword",
1408
+ value: flexDirection[flexParam]
1409
+ }
1410
+ }
1411
+ ];
1412
+ };
1413
+ var grow = () => {
1414
+ return [
1415
+ {
1416
+ property: "flexGrow",
1417
+ value: { type: "unit", value: 1, unit: "number" }
1418
+ }
1419
+ ];
1420
+ };
1421
+ var shrink = (value) => {
1422
+ return [
1423
+ {
1424
+ property: "flexGrow",
1425
+ value: { type: "unit", value, unit: "number" }
1426
+ }
1427
+ ];
1428
+ };
1429
+ var gap = (gapValue) => {
1430
+ const value = spacing[gapValue];
1431
+ return [
1432
+ { property: "rowGap", value },
1433
+ { property: "columnGap", value }
1434
+ ];
1435
+ };
1436
+ var lineClamp2 = (lineClampValue) => {
1437
+ return [
1438
+ {
1439
+ property: "overflow",
1440
+ value: {
1441
+ type: "keyword",
1442
+ value: "hidden"
1443
+ }
1444
+ },
1445
+ {
1446
+ property: "display",
1447
+ value: {
1448
+ type: "keyword",
1449
+ value: "-webkit-box"
1450
+ }
1451
+ },
1452
+ {
1453
+ property: "-webkit-box-orient",
1454
+ value: {
1455
+ type: "keyword",
1456
+ value: "vertical"
1457
+ }
1458
+ },
1459
+ {
1460
+ property: "-webkit-line-clamp",
1461
+ value: lineClamp[lineClampValue]
1462
+ }
1463
+ ];
1464
+ };
1465
+ var leading = (lineHeight2) => {
1466
+ return [{ property: "lineHeight", value: lineHeight[lineHeight2] }];
1467
+ };
1468
+ var tracking = (letterSpacing2) => {
1469
+ return [
1470
+ { property: "letterSpacing", value: letterSpacing[letterSpacing2] }
1471
+ ];
1472
+ };
1473
+ var outline = (_value) => {
1474
+ return [
1475
+ {
1476
+ property: "outlineWidth",
1477
+ value: { type: "unit", value: 2, unit: "px" }
1478
+ },
1479
+ {
1480
+ property: "outlineStyle",
1481
+ value: { type: "keyword", value: "solid" }
1482
+ },
1483
+ {
1484
+ property: "outlineColor",
1485
+ value: { type: "keyword", value: "transparent" }
1486
+ },
1487
+ {
1488
+ property: "outlineOffset",
1489
+ value: { type: "unit", value: 2, unit: "px" }
1490
+ }
1491
+ ];
1492
+ };
1493
+ var textSizes = Object.keys(fontSize);
1494
+ var isTextSize = (value) => textSizes.includes(value);
1495
+ var text = (sizeOrColor) => {
1496
+ if (isTextSize(sizeOrColor)) {
1497
+ return [
1498
+ { property: "fontSize", value: fontSize[sizeOrColor] },
1499
+ { property: "lineHeight", value: fontSizeLineHeight[sizeOrColor] }
1500
+ ];
1501
+ }
1502
+ return [
1503
+ {
1504
+ property: "color",
1505
+ value: colors[sizeOrColor]
1506
+ }
1507
+ ];
1508
+ };
1509
+ var noUnderline = () => {
1510
+ return [
1511
+ {
1512
+ property: "textDecorationLine",
1513
+ value: { type: "keyword", value: "none" }
1514
+ }
1515
+ ];
1516
+ };
1517
+ var underline = () => {
1518
+ return [
1519
+ {
1520
+ property: "textDecorationLine",
1521
+ value: { type: "keyword", value: "underline" }
1522
+ }
1523
+ ];
1524
+ };
1525
+ var weights = {
1526
+ thin: "100",
1527
+ extralight: "200",
1528
+ light: "300",
1529
+ normal: "400",
1530
+ medium: "500",
1531
+ semibold: "600",
1532
+ bold: "700",
1533
+ extrabold: "800",
1534
+ black: "900"
1535
+ };
1536
+ var font = (weight) => {
1537
+ return [
1538
+ {
1539
+ property: "fontWeight",
1540
+ value: { type: "keyword", value: weights[weight] }
1541
+ }
1542
+ ];
1543
+ };
1544
+ var whitespace = (value) => {
1545
+ return [
1546
+ {
1547
+ property: "whiteSpace",
1548
+ value: { type: "keyword", value }
1549
+ }
1550
+ ];
1551
+ };
1552
+ var shadow = (shadowSize) => {
1553
+ return [
1554
+ {
1555
+ property: "boxShadow",
1556
+ value: boxShadow[shadowSize]
1557
+ }
1558
+ ];
1559
+ };
1560
+ var ring = (ringColor, ringWidth2, ringOffsetColor = "background", ringOffsetWidth2 = 0) => {
1561
+ const ringWidthStyleValue = ringWidth[ringWidth2];
1562
+ const ringOffsetWidthStyleValue = ringOffsetWidth[ringOffsetWidth2];
1563
+ const ringColorStyleValue = colors[ringColor];
1564
+ const ringOffsetColorStyleValue = colors[ringOffsetColor];
1565
+ const ringOffsetShadow = {
1566
+ type: "tuple",
1567
+ value: [
1568
+ { type: "unit", value: 0, unit: "number" },
1569
+ { type: "unit", value: 0, unit: "number" },
1570
+ { type: "unit", value: 0, unit: "number" },
1571
+ ringOffsetWidthStyleValue,
1572
+ ringOffsetColorStyleValue
1573
+ ]
1574
+ };
1575
+ const ringWidthValue = ringWidthStyleValue.type === "unit" ? ringWidthStyleValue.value : 0;
1576
+ const ringOffsetWidthValue = ringOffsetWidthStyleValue.type === "unit" ? ringOffsetWidthStyleValue.value : 0;
1577
+ const ringShadow = {
1578
+ type: "tuple",
1579
+ value: [
1580
+ { type: "unit", value: 0, unit: "number" },
1581
+ { type: "unit", value: 0, unit: "number" },
1582
+ { type: "unit", value: 0, unit: "number" },
1583
+ {
1584
+ type: "unit",
1585
+ value: ringWidthValue + ringOffsetWidthValue,
1586
+ unit: ringWidthStyleValue.type === "unit" ? ringWidthStyleValue.unit : "number"
1587
+ },
1588
+ ringColorStyleValue
1589
+ ]
1590
+ };
1591
+ return [
1592
+ {
1593
+ property: "boxShadow",
1594
+ value: {
1595
+ type: "layers",
1596
+ value: [ringOffsetShadow, ringShadow]
1597
+ }
1598
+ }
1599
+ ];
1600
+ };
1601
+ var pointerEvents = (value) => {
1602
+ return [{ property: "pointerEvents", value: { type: "keyword", value } }];
1603
+ };
1604
+ var transition = (value) => {
1605
+ if (value === "none") {
1606
+ return [
1607
+ {
1608
+ property: "transitionProperty",
1609
+ value: { type: "keyword", value: "all" }
1610
+ }
1611
+ ];
1612
+ }
1613
+ return [
1614
+ {
1615
+ property: "transitionProperty",
1616
+ value: { type: "keyword", value }
1617
+ },
1618
+ {
1619
+ property: "transitionTimingFunction",
1620
+ value: { type: "unparsed", value: "cubic-bezier(0.4, 0, 0.2, 1)" }
1621
+ },
1622
+ {
1623
+ property: "transitionDuration",
1624
+ value: { type: "unparsed", value: "150ms" }
1625
+ }
1626
+ ];
1627
+ };
1628
+ var duration = (ms) => {
1629
+ return [
1630
+ {
1631
+ property: "transitionDuration",
1632
+ value: { type: "unit", value: ms, unit: "ms" }
1633
+ }
1634
+ ];
1635
+ };
1636
+ var hover = (value) => {
1637
+ return value.map((decl) => ({
1638
+ ...decl,
1639
+ state: ":hover"
1640
+ }));
1641
+ };
1642
+ var focus = (value) => {
1643
+ return value.map((decl) => ({
1644
+ ...decl,
1645
+ state: ":focus"
1646
+ }));
1647
+ };
1648
+ var focusVisible = (value) => {
1649
+ return value.map((decl) => ({
1650
+ ...decl,
1651
+ state: ":focus-visible"
1652
+ }));
1653
+ };
1654
+ var disabled = (value) => {
1655
+ return value.map((decl) => ({
1656
+ ...decl,
1657
+ state: ":disabled"
1658
+ }));
1659
+ };
1660
+ var state = (value, state2) => {
1661
+ return value.map((decl) => ({
1662
+ ...decl,
1663
+ state: state2
1664
+ }));
1665
+ };
1666
+
1667
+ // src/theme/styles.ts
1668
+ var getButtonStyles = (variant, size = "default") => {
1669
+ const styles = [
1670
+ // 'inline-flex items-center justify-center rounded-md text-sm font-medium
1671
+ // ring-offset-background transition-colors
1672
+ // focus-visible:outline-none focus-visible:ring-2
1673
+ // focus-visible:ring-ring focus-visible:ring-offset-2
1674
+ // disabled:pointer-events-none disabled:opacity-50'
1675
+ border(0),
1676
+ bg("transparent"),
1677
+ inlineFlex(),
1678
+ items("center"),
1679
+ justify("center"),
1680
+ rounded("md"),
1681
+ text("sm"),
1682
+ font("medium"),
1683
+ focusVisible(
1684
+ [outline("none"), ring("ring", 2, "background", 2)].flat()
1685
+ ),
1686
+ state([pointerEvents("none"), opacity2(50)].flat(), ":disabled")
1687
+ ].flat();
1688
+ let variantStyles = [];
1689
+ if (variant === "ghost") {
1690
+ variantStyles = [
1691
+ state([bg("accent"), text("accentForeground")].flat(), ":hover")
1692
+ ].flat();
1693
+ }
1694
+ if (variant === "outline") {
1695
+ variantStyles = [
1696
+ border(),
1697
+ border("input"),
1698
+ bg("background"),
1699
+ state(
1700
+ [bg("accent", 90), text("accentForeground")].flat(),
1701
+ ":hover"
1702
+ )
1703
+ ].flat();
1704
+ }
1705
+ let sizeStyles = [];
1706
+ if (size === "icon") {
1707
+ sizeStyles = [h(10), w(10)].flat();
1708
+ }
1709
+ if (size === "sm") {
1710
+ sizeStyles = [h(10), px(3)].flat();
1711
+ }
1712
+ if (size === "default") {
1713
+ sizeStyles = [h(10), px(4), py(2)].flat();
1714
+ }
1715
+ return [...styles, ...variantStyles, ...sizeStyles];
1716
+ };
1717
+ var buttonReset = [
1718
+ {
1719
+ property: "backgroundColor",
1720
+ value: { type: "keyword", value: "transparent" }
1721
+ },
1722
+ {
1723
+ property: "backgroundImage",
1724
+ value: { type: "keyword", value: "none" }
1725
+ },
1726
+ border(0),
1727
+ p(0)
1728
+ ].flat();
1729
+
1730
+ // src/collapsible.ws.ts
1731
+ var presetStyle = {
1732
+ div
1733
+ };
1734
+ var metaCollapsible = {
1735
+ category: "radix",
1736
+ order: 5,
1737
+ type: "container",
1738
+ presetStyle,
1739
+ icon: CollapsibleIcon,
1740
+ description: "An interactive component which expands and collapses some content, triggered by a button.",
1741
+ template: [
1742
+ {
1743
+ type: "instance",
1744
+ component: "Collapsible",
1745
+ dataSources: {
1746
+ collapsibleOpen: { type: "variable", initialValue: false }
1747
+ },
1748
+ props: [
1749
+ {
1750
+ type: "dataSource",
1751
+ name: "open",
1752
+ dataSourceName: "collapsibleOpen"
1753
+ },
1754
+ {
1755
+ name: "onOpenChange",
1756
+ type: "action",
1757
+ value: [
1758
+ { type: "execute", args: ["open"], code: `collapsibleOpen = open` }
1759
+ ]
1760
+ }
1761
+ ],
1762
+ children: [
1763
+ {
1764
+ type: "instance",
1765
+ component: "CollapsibleTrigger",
1766
+ children: [
1767
+ {
1768
+ type: "instance",
1769
+ component: "Button",
1770
+ styles: getButtonStyles("outline"),
1771
+ children: [{ type: "text", value: "Click to toggle content" }]
1772
+ }
1773
+ ]
1774
+ },
1775
+ {
1776
+ type: "instance",
1777
+ component: "CollapsibleContent",
1778
+ children: [
1779
+ {
1780
+ type: "instance",
1781
+ component: "Text",
1782
+ children: [{ type: "text", value: "Collapsible Content" }]
1783
+ }
1784
+ ]
1785
+ }
1786
+ ]
1787
+ }
1788
+ ]
1789
+ };
1790
+ var metaCollapsibleTrigger = {
1791
+ category: "hidden",
1792
+ type: "container",
1793
+ icon: TriggerIcon,
1794
+ stylable: false,
1795
+ detachable: false
1796
+ };
1797
+ var metaCollapsibleContent = {
1798
+ category: "hidden",
1799
+ type: "container",
1800
+ presetStyle,
1801
+ icon: ContentIcon,
1802
+ detachable: false
1803
+ };
1804
+ var propsMetaCollapsible = {
1805
+ props: {
1806
+ ...propsCollapsible,
1807
+ onOpenChange: {
1808
+ type: "action",
1809
+ control: "action",
1810
+ required: false
1811
+ }
1812
+ },
1813
+ initialProps: ["open", "onOpenChange"]
1814
+ };
1815
+
1816
+ // src/dialog.ws.tsx
1817
+ import {
1818
+ DialogIcon,
1819
+ TriggerIcon as TriggerIcon2,
1820
+ ContentIcon as ContentIcon2,
1821
+ OverlayIcon,
1822
+ HeadingIcon,
1823
+ TextIcon,
1824
+ ButtonElementIcon,
1825
+ LargeXIcon
1826
+ } from "@webstudio-is/icons/svg";
1827
+ import {
1828
+ defaultStates
1829
+ } from "@webstudio-is/react-sdk";
1830
+ import { div as div2, button, h2, p as p2 } from "@webstudio-is/react-sdk/css-normalize";
1831
+ var presetStyle2 = {
1832
+ div: div2
1833
+ };
1834
+ var titlePresetStyle = {
1835
+ h2
1836
+ };
1837
+ var descriptionPresetStyle = {
1838
+ p: p2
1839
+ };
1840
+ var metaDialogTrigger = {
1841
+ category: "hidden",
1842
+ type: "container",
1843
+ icon: TriggerIcon2,
1844
+ stylable: false,
1845
+ detachable: false
1846
+ };
1847
+ var metaDialogContent = {
1848
+ category: "hidden",
1849
+ type: "container",
1850
+ presetStyle: presetStyle2,
1851
+ icon: ContentIcon2,
1852
+ detachable: false
1853
+ };
1854
+ var metaDialogOverlay = {
1855
+ category: "hidden",
1856
+ type: "container",
1857
+ presetStyle: presetStyle2,
1858
+ icon: OverlayIcon,
1859
+ detachable: false
1860
+ };
1861
+ var metaDialogTitle = {
1862
+ category: "hidden",
1863
+ type: "container",
1864
+ presetStyle: titlePresetStyle,
1865
+ icon: HeadingIcon
1866
+ };
1867
+ var metaDialogDescription = {
1868
+ category: "hidden",
1869
+ type: "container",
1870
+ presetStyle: descriptionPresetStyle,
1871
+ icon: TextIcon
1872
+ };
1873
+ var metaDialogClose = {
1874
+ category: "hidden",
1875
+ type: "container",
1876
+ presetStyle: {
1877
+ button: [buttonReset, button].flat()
1878
+ },
1879
+ states: defaultStates,
1880
+ icon: ButtonElementIcon,
1881
+ label: "Close Button"
1882
+ };
1883
+ var metaDialog = {
1884
+ category: "radix",
1885
+ order: 4,
1886
+ type: "container",
1887
+ icon: DialogIcon,
1888
+ stylable: false,
1889
+ description: "Displays content with an overlay that covers the window, triggered by a button. Clicking the overlay will close the dialog.",
1890
+ template: [
1891
+ {
1892
+ type: "instance",
1893
+ component: "Dialog",
1894
+ dataSources: {
1895
+ dialogOpen: { type: "variable", initialValue: false }
1896
+ },
1897
+ props: [
1898
+ {
1899
+ type: "dataSource",
1900
+ name: "open",
1901
+ dataSourceName: "dialogOpen"
1902
+ },
1903
+ {
1904
+ name: "onOpenChange",
1905
+ type: "action",
1906
+ value: [
1907
+ { type: "execute", args: ["open"], code: `dialogOpen = open` }
1908
+ ]
1909
+ }
1910
+ ],
1911
+ children: [
1912
+ {
1913
+ type: "instance",
1914
+ component: "DialogTrigger",
1915
+ children: [
1916
+ {
1917
+ type: "instance",
1918
+ component: "Button",
1919
+ styles: getButtonStyles("outline"),
1920
+ children: [{ type: "text", value: "Button" }]
1921
+ }
1922
+ ]
1923
+ },
1924
+ {
1925
+ type: "instance",
1926
+ component: "DialogOverlay",
1927
+ /**
1928
+ * fixed inset-0 z-50 bg-background/80 backdrop-blur-sm
1929
+ * flex
1930
+ **/
1931
+ styles: [
1932
+ fixed(),
1933
+ inset2(0),
1934
+ z(50),
1935
+ bg("background", 80),
1936
+ backdropBlur("sm"),
1937
+ // To allow positioning Content
1938
+ flex(),
1939
+ overflow("auto")
1940
+ ].flat(),
1941
+ children: [
1942
+ {
1943
+ type: "instance",
1944
+ component: "DialogContent",
1945
+ /**
1946
+ * fixed w-full z-50
1947
+ * grid gap-4 max-w-lg
1948
+ * m-auto
1949
+ * border bg-background p-6 shadow-lg
1950
+ **/
1951
+ styles: [
1952
+ w("full"),
1953
+ z(50),
1954
+ flex(),
1955
+ flex("col"),
1956
+ gap(4),
1957
+ m("auto"),
1958
+ maxW("lg"),
1959
+ border(),
1960
+ bg("background"),
1961
+ p(6),
1962
+ shadow("lg"),
1963
+ relative()
1964
+ ].flat(),
1965
+ children: [
1966
+ {
1967
+ type: "instance",
1968
+ component: "Box",
1969
+ label: "Dialog Header",
1970
+ styles: [flex(), flex("col"), gap(1)].flat(),
1971
+ children: [
1972
+ {
1973
+ type: "instance",
1974
+ component: "DialogTitle",
1975
+ /**
1976
+ * text-lg leading-none tracking-tight
1977
+ **/
1978
+ styles: [
1979
+ my(0),
1980
+ leading("none"),
1981
+ text("lg"),
1982
+ tracking("tight")
1983
+ ].flat(),
1984
+ children: [
1985
+ {
1986
+ type: "text",
1987
+ value: "Dialog Title"
1988
+ }
1989
+ ]
1990
+ },
1991
+ {
1992
+ type: "instance",
1993
+ component: "DialogDescription",
1994
+ /**
1995
+ * text-sm text-muted-foreground
1996
+ **/
1997
+ styles: [
1998
+ my(0),
1999
+ text("sm"),
2000
+ text("mutedForeground")
2001
+ ].flat(),
2002
+ children: [
2003
+ {
2004
+ type: "text",
2005
+ value: "Dialog description text you can edit"
2006
+ }
2007
+ ]
2008
+ }
2009
+ ]
2010
+ },
2011
+ {
2012
+ type: "instance",
2013
+ component: "Text",
2014
+ children: [{ type: "text", value: "The text you can edit" }]
2015
+ },
2016
+ {
2017
+ type: "instance",
2018
+ component: "DialogClose",
2019
+ /**
2020
+ * absolute right-4 top-4
2021
+ * rounded-sm opacity-70
2022
+ * ring-offset-background
2023
+ * hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2
2024
+ * flex items-center justify-center h-4 w-4
2025
+ **/
2026
+ styles: [
2027
+ absolute(),
2028
+ right(4),
2029
+ top(4),
2030
+ rounded("sm"),
2031
+ opacity2(70),
2032
+ flex(),
2033
+ items("center"),
2034
+ justify("center"),
2035
+ h(4),
2036
+ w(4),
2037
+ border(0),
2038
+ bg("transparent"),
2039
+ outline("none"),
2040
+ hover(opacity2(100)),
2041
+ focus(ring("ring", 2, "background", 2))
2042
+ ].flat(),
2043
+ children: [
2044
+ {
2045
+ type: "instance",
2046
+ component: "HtmlEmbed",
2047
+ label: "Close Icon",
2048
+ props: [
2049
+ {
2050
+ type: "string",
2051
+ name: "code",
2052
+ value: LargeXIcon
2053
+ }
2054
+ ],
2055
+ children: []
2056
+ }
2057
+ ]
2058
+ }
2059
+ ]
2060
+ }
2061
+ ]
2062
+ }
2063
+ ]
2064
+ }
2065
+ ]
2066
+ };
2067
+
2068
+ // src/sheet.ws.tsx
2069
+ import { HamburgerMenuIcon, LargeXIcon as LargeXIcon2 } from "@webstudio-is/icons/svg";
2070
+ var meta = {
2071
+ category: "radix",
2072
+ order: 1,
2073
+ type: "container",
2074
+ icon: HamburgerMenuIcon,
2075
+ stylable: false,
2076
+ description: "Displays content in a menu that slides out from the side of the screen, triggered by a button. Use this component for a typical mobile hamburger menu.",
2077
+ template: [
2078
+ {
2079
+ type: "instance",
2080
+ component: "Dialog",
2081
+ label: "Sheet",
2082
+ dataSources: {
2083
+ sheetOpen: { type: "variable", initialValue: false }
2084
+ },
2085
+ props: [
2086
+ {
2087
+ type: "dataSource",
2088
+ name: "open",
2089
+ dataSourceName: "sheetOpen"
2090
+ },
2091
+ {
2092
+ name: "onOpenChange",
2093
+ type: "action",
2094
+ value: [
2095
+ { type: "execute", args: ["open"], code: `sheetOpen = open` }
2096
+ ]
2097
+ }
2098
+ ],
2099
+ children: [
2100
+ {
2101
+ type: "instance",
2102
+ component: "DialogTrigger",
2103
+ label: "Sheet Trigger",
2104
+ children: [
2105
+ {
2106
+ type: "instance",
2107
+ component: "Button",
2108
+ styles: getButtonStyles("ghost", "icon"),
2109
+ children: [
2110
+ {
2111
+ type: "instance",
2112
+ component: "HtmlEmbed",
2113
+ label: "Hamburger Menu Svg",
2114
+ props: [
2115
+ {
2116
+ type: "string",
2117
+ name: "code",
2118
+ value: HamburgerMenuIcon
2119
+ }
2120
+ ],
2121
+ children: []
2122
+ }
2123
+ ]
2124
+ }
2125
+ ]
2126
+ },
2127
+ {
2128
+ type: "instance",
2129
+ component: "DialogOverlay",
2130
+ label: "Sheet Overlay",
2131
+ /**
2132
+ * fixed inset-0 z-50 bg-background/80 backdrop-blur-sm
2133
+ * flex
2134
+ **/
2135
+ styles: [
2136
+ fixed(),
2137
+ inset2(0),
2138
+ z(50),
2139
+ bg("background", 80),
2140
+ backdropBlur("sm"),
2141
+ // To allow positioning Content
2142
+ flex(),
2143
+ flex("col"),
2144
+ overflow("auto")
2145
+ ].flat(),
2146
+ children: [
2147
+ {
2148
+ type: "instance",
2149
+ component: "DialogContent",
2150
+ label: "Sheet Content",
2151
+ /**
2152
+ * fixed w-full z-50
2153
+ * grid gap-4 max-w-lg
2154
+ * m-auto
2155
+ * border bg-background p-6 shadow-lg
2156
+ **/
2157
+ styles: [
2158
+ w("full"),
2159
+ z(50),
2160
+ flex(),
2161
+ flex("col"),
2162
+ gap(4),
2163
+ border(),
2164
+ bg("background"),
2165
+ p(6),
2166
+ shadow("lg"),
2167
+ relative(),
2168
+ // side=left
2169
+ mr("auto"),
2170
+ maxW("sm"),
2171
+ grow()
2172
+ ].flat(),
2173
+ children: [
2174
+ {
2175
+ type: "instance",
2176
+ component: "Box",
2177
+ label: "Navigation",
2178
+ props: [
2179
+ { name: "tag", type: "string", value: "nav" },
2180
+ { name: "role", type: "string", value: "navigation" }
2181
+ ],
2182
+ children: [
2183
+ {
2184
+ type: "instance",
2185
+ component: "Box",
2186
+ label: "Sheet Header",
2187
+ styles: [flex(), flex("col"), gap(1)].flat(),
2188
+ children: [
2189
+ {
2190
+ type: "instance",
2191
+ component: "DialogTitle",
2192
+ label: "Sheet Title",
2193
+ /**
2194
+ * text-lg leading-none tracking-tight
2195
+ **/
2196
+ styles: [
2197
+ my(0),
2198
+ leading("none"),
2199
+ text("lg"),
2200
+ tracking("tight")
2201
+ ].flat(),
2202
+ children: [
2203
+ {
2204
+ type: "text",
2205
+ value: "Sheet Title"
2206
+ }
2207
+ ]
2208
+ },
2209
+ {
2210
+ type: "instance",
2211
+ component: "DialogDescription",
2212
+ label: "Sheet Description",
2213
+ /**
2214
+ * text-sm text-muted-foreground
2215
+ **/
2216
+ styles: [
2217
+ my(0),
2218
+ text("sm"),
2219
+ text("mutedForeground")
2220
+ ].flat(),
2221
+ children: [
2222
+ {
2223
+ type: "text",
2224
+ value: "Sheet description text you can edit"
2225
+ }
2226
+ ]
2227
+ }
2228
+ ]
2229
+ },
2230
+ {
2231
+ type: "instance",
2232
+ component: "Text",
2233
+ children: [
2234
+ { type: "text", value: "The text you can edit" }
2235
+ ]
2236
+ }
2237
+ ]
2238
+ },
2239
+ {
2240
+ type: "instance",
2241
+ component: "DialogClose",
2242
+ label: "Close Button",
2243
+ /**
2244
+ * absolute right-4 top-4
2245
+ * rounded-sm opacity-70
2246
+ * ring-offset-background
2247
+ * hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2
2248
+ * flex items-center justify-center h-4 w-4
2249
+ **/
2250
+ styles: [
2251
+ absolute(),
2252
+ right(4),
2253
+ top(4),
2254
+ rounded("sm"),
2255
+ opacity2(70),
2256
+ flex(),
2257
+ items("center"),
2258
+ justify("center"),
2259
+ h(4),
2260
+ w(4),
2261
+ border(0),
2262
+ bg("transparent"),
2263
+ outline("none"),
2264
+ hover(opacity2(100)),
2265
+ focus(ring("ring", 2, "background", 2))
2266
+ ].flat(),
2267
+ children: [
2268
+ {
2269
+ type: "instance",
2270
+ component: "HtmlEmbed",
2271
+ label: "Close Icon",
2272
+ props: [
2273
+ {
2274
+ type: "string",
2275
+ name: "code",
2276
+ value: LargeXIcon2
2277
+ }
2278
+ ],
2279
+ children: []
2280
+ }
2281
+ ]
2282
+ }
2283
+ ]
2284
+ }
2285
+ ]
2286
+ }
2287
+ ]
2288
+ }
2289
+ ]
2290
+ };
2291
+
2292
+ // src/popover.ws.tsx
2293
+ import { PopoverIcon, TriggerIcon as TriggerIcon3, ContentIcon as ContentIcon3 } from "@webstudio-is/icons/svg";
2294
+ import "@webstudio-is/react-sdk";
2295
+ import { div as div3 } from "@webstudio-is/react-sdk/css-normalize";
2296
+ var presetStyle3 = {
2297
+ div: div3
2298
+ };
2299
+ var metaPopoverTrigger = {
2300
+ category: "hidden",
2301
+ type: "container",
2302
+ icon: TriggerIcon3,
2303
+ stylable: false,
2304
+ detachable: false
2305
+ };
2306
+ var metaPopoverContent = {
2307
+ category: "hidden",
2308
+ type: "container",
2309
+ presetStyle: presetStyle3,
2310
+ icon: ContentIcon3,
2311
+ detachable: false
2312
+ };
2313
+ var metaPopover = {
2314
+ category: "radix",
2315
+ order: 6,
2316
+ type: "container",
2317
+ icon: PopoverIcon,
2318
+ stylable: false,
2319
+ description: "Displays rich content in a portal, triggered by a button.",
2320
+ template: [
2321
+ {
2322
+ type: "instance",
2323
+ component: "Popover",
2324
+ dataSources: {
2325
+ popoverOpen: { type: "variable", initialValue: false }
2326
+ },
2327
+ props: [
2328
+ {
2329
+ type: "dataSource",
2330
+ name: "open",
2331
+ dataSourceName: "popoverOpen"
2332
+ },
2333
+ {
2334
+ name: "onOpenChange",
2335
+ type: "action",
2336
+ value: [
2337
+ { type: "execute", args: ["open"], code: `popoverOpen = open` }
2338
+ ]
2339
+ }
2340
+ ],
2341
+ children: [
2342
+ {
2343
+ type: "instance",
2344
+ component: "PopoverTrigger",
2345
+ children: [
2346
+ {
2347
+ type: "instance",
2348
+ component: "Button",
2349
+ styles: getButtonStyles("outline"),
2350
+ children: [{ type: "text", value: "Button" }]
2351
+ }
2352
+ ]
2353
+ },
2354
+ {
2355
+ type: "instance",
2356
+ component: "PopoverContent",
2357
+ /**
2358
+ * z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none
2359
+ **/
2360
+ styles: [
2361
+ z(50),
2362
+ w(72),
2363
+ rounded("md"),
2364
+ border(),
2365
+ bg("popover"),
2366
+ p(4),
2367
+ text("popoverForeground"),
2368
+ shadow("md"),
2369
+ outline("none")
2370
+ ].flat(),
2371
+ children: [
2372
+ {
2373
+ type: "instance",
2374
+ component: "Text",
2375
+ children: [{ type: "text", value: "The text you can edit" }]
2376
+ }
2377
+ ]
2378
+ }
2379
+ ]
2380
+ }
2381
+ ]
2382
+ };
2383
+
2384
+ // src/tooltip.ws.tsx
2385
+ import { TooltipIcon, TriggerIcon as TriggerIcon4, ContentIcon as ContentIcon4 } from "@webstudio-is/icons/svg";
2386
+ import "@webstudio-is/react-sdk";
2387
+ import { div as div4 } from "@webstudio-is/react-sdk/css-normalize";
2388
+ var presetStyle4 = {
2389
+ div: div4
2390
+ };
2391
+ var metaTooltipTrigger = {
2392
+ category: "hidden",
2393
+ detachable: false,
2394
+ type: "container",
2395
+ icon: TriggerIcon4,
2396
+ stylable: false
2397
+ };
2398
+ var metaTooltipContent = {
2399
+ category: "hidden",
2400
+ detachable: false,
2401
+ type: "container",
2402
+ presetStyle: presetStyle4,
2403
+ icon: ContentIcon4
2404
+ };
2405
+ var metaTooltip = {
2406
+ category: "radix",
2407
+ order: 7,
2408
+ type: "container",
2409
+ icon: TooltipIcon,
2410
+ stylable: false,
2411
+ description: "Displays content that is related to the trigger, when the trigger is hovered with the mouse or focused with the keyboard. You are reading an example of a tooltip right now.",
2412
+ template: [
2413
+ {
2414
+ type: "instance",
2415
+ component: "Tooltip",
2416
+ dataSources: {
2417
+ tooltipOpen: { type: "variable", initialValue: false }
2418
+ },
2419
+ props: [
2420
+ {
2421
+ type: "dataSource",
2422
+ name: "open",
2423
+ dataSourceName: "tooltipOpen"
2424
+ },
2425
+ {
2426
+ name: "onOpenChange",
2427
+ type: "action",
2428
+ value: [
2429
+ { type: "execute", args: ["open"], code: `tooltipOpen = open` }
2430
+ ]
2431
+ }
2432
+ ],
2433
+ children: [
2434
+ {
2435
+ type: "instance",
2436
+ component: "TooltipTrigger",
2437
+ children: [
2438
+ {
2439
+ type: "instance",
2440
+ component: "Button",
2441
+ styles: getButtonStyles("outline"),
2442
+ children: [{ type: "text", value: "Button" }]
2443
+ }
2444
+ ]
2445
+ },
2446
+ {
2447
+ type: "instance",
2448
+ component: "TooltipContent",
2449
+ /**
2450
+ * z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md
2451
+ **/
2452
+ styles: [
2453
+ z(50),
2454
+ overflow("hidden"),
2455
+ rounded("md"),
2456
+ border(),
2457
+ bg("popover"),
2458
+ px(3),
2459
+ py(1.5),
2460
+ text("sm"),
2461
+ text("popoverForeground"),
2462
+ shadow("md")
2463
+ ].flat(),
2464
+ children: [
2465
+ {
2466
+ type: "instance",
2467
+ component: "Text",
2468
+ children: [{ type: "text", value: "The text you can edit" }]
2469
+ }
2470
+ ]
2471
+ }
2472
+ ]
2473
+ }
2474
+ ]
2475
+ };
2476
+
2477
+ // src/tabs.ws.ts
2478
+ import {
2479
+ ContentIcon as ContentIcon5,
2480
+ HeaderIcon,
2481
+ TabsIcon,
2482
+ TriggerIcon as TriggerIcon5
2483
+ } from "@webstudio-is/icons/svg";
2484
+ import {
2485
+ defaultStates as defaultStates2
2486
+ } from "@webstudio-is/react-sdk";
2487
+ import { button as button2, div as div5 } from "@webstudio-is/react-sdk/css-normalize";
2488
+ var presetStyle5 = {
2489
+ div: div5
2490
+ };
2491
+ var tabsTriggerStyles = [
2492
+ inlineFlex(),
2493
+ items("center"),
2494
+ justify("center"),
2495
+ whitespace("nowrap"),
2496
+ rounded("md"),
2497
+ px(3),
2498
+ py(1.5),
2499
+ text("sm"),
2500
+ font("medium"),
2501
+ transition("all"),
2502
+ focusVisible(
2503
+ [outline("none"), ring("ring", 2, "background", 2)].flat()
2504
+ ),
2505
+ disabled([pointerEvents("none"), opacity2(50)].flat()),
2506
+ state(
2507
+ [bg("background"), text("foreground"), shadow("sm")].flat(),
2508
+ "[data-state=active]"
2509
+ )
2510
+ ].flat();
2511
+ var tabsContentStyles = [
2512
+ mt(2),
2513
+ focusVisible(
2514
+ [outline("none"), ring("ring", 2, "background", 2)].flat()
2515
+ )
2516
+ ].flat();
2517
+ var metaTabs = {
2518
+ category: "radix",
2519
+ order: 2,
2520
+ type: "container",
2521
+ icon: TabsIcon,
2522
+ presetStyle: presetStyle5,
2523
+ description: "A set of panels with content that are displayed one at a time. Duplicate both a tab trigger and tab content to add more tabs. Triggers and content are connected according to their order in the Navigator.",
2524
+ template: [
2525
+ {
2526
+ type: "instance",
2527
+ component: "Tabs",
2528
+ dataSources: {
2529
+ tabsValue: { type: "variable", initialValue: "0" }
2530
+ },
2531
+ props: [
2532
+ { type: "dataSource", name: "value", dataSourceName: "tabsValue" },
2533
+ {
2534
+ name: "onValueChange",
2535
+ type: "action",
2536
+ value: [
2537
+ { type: "execute", args: ["value"], code: `tabsValue = value` }
2538
+ ]
2539
+ }
2540
+ ],
2541
+ children: [
2542
+ {
2543
+ type: "instance",
2544
+ component: "TabsList",
2545
+ // inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground
2546
+ styles: [
2547
+ inlineFlex(),
2548
+ h(10),
2549
+ items("center"),
2550
+ justify("center"),
2551
+ rounded("md"),
2552
+ bg("muted"),
2553
+ p(1),
2554
+ text("mutedForeground")
2555
+ ].flat(),
2556
+ children: [
2557
+ {
2558
+ type: "instance",
2559
+ component: "TabsTrigger",
2560
+ styles: tabsTriggerStyles,
2561
+ children: [{ type: "text", value: "Account" }]
2562
+ },
2563
+ {
2564
+ type: "instance",
2565
+ component: "TabsTrigger",
2566
+ styles: tabsTriggerStyles,
2567
+ children: [{ type: "text", value: "Password" }]
2568
+ }
2569
+ ]
2570
+ },
2571
+ {
2572
+ type: "instance",
2573
+ component: "TabsContent",
2574
+ styles: tabsContentStyles,
2575
+ children: [
2576
+ { type: "text", value: "Make changes to your account here." }
2577
+ ]
2578
+ },
2579
+ {
2580
+ type: "instance",
2581
+ component: "TabsContent",
2582
+ styles: tabsContentStyles,
2583
+ children: [{ type: "text", value: "Change your password here." }]
2584
+ }
2585
+ ]
2586
+ }
2587
+ ]
2588
+ };
2589
+ var metaTabsList = {
2590
+ category: "hidden",
2591
+ detachable: false,
2592
+ type: "container",
2593
+ icon: HeaderIcon,
2594
+ requiredAncestors: ["Tabs"],
2595
+ presetStyle: presetStyle5
2596
+ };
2597
+ var metaTabsTrigger = {
2598
+ category: "hidden",
2599
+ type: "container",
2600
+ icon: TriggerIcon5,
2601
+ requiredAncestors: ["TabsList"],
2602
+ invalidAncestors: ["TabsTrigger"],
2603
+ indexWithinAncestor: "Tabs",
2604
+ label: "Tab Trigger",
2605
+ states: [
2606
+ ...defaultStates2,
2607
+ {
2608
+ category: "component-states",
2609
+ label: "Active",
2610
+ selector: "[data-state=active]"
2611
+ }
2612
+ ],
2613
+ presetStyle: {
2614
+ button: [button2, buttonReset].flat()
2615
+ }
2616
+ };
2617
+ var metaTabsContent = {
2618
+ category: "hidden",
2619
+ type: "container",
2620
+ label: "Tab Content",
2621
+ icon: ContentIcon5,
2622
+ requiredAncestors: ["Tabs"],
2623
+ indexWithinAncestor: "Tabs",
2624
+ presetStyle: presetStyle5
2625
+ };
2626
+
2627
+ // src/label.ws.ts
2628
+ import { LabelIcon } from "@webstudio-is/icons/svg";
2629
+ import {
2630
+ defaultStates as defaultStates3
2631
+ } from "@webstudio-is/react-sdk";
2632
+ import { label } from "@webstudio-is/react-sdk/css-normalize";
2633
+
2634
+ // src/__generated__/label.props.ts
2635
+ var props = {
2636
+ about: { required: false, control: "text", type: "string" },
2637
+ accessKey: {
2638
+ required: false,
2639
+ control: "text",
2640
+ type: "string",
2641
+ description: "Keyboard shortcut to activate or add focus to the element."
2642
+ },
2643
+ "aria-activedescendant": {
2644
+ description: "Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application.",
2645
+ required: false,
2646
+ control: "text",
2647
+ type: "string"
2648
+ },
2649
+ "aria-atomic": {
2650
+ description: "Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute.",
2651
+ required: false,
2652
+ control: "boolean",
2653
+ type: "boolean"
2654
+ },
2655
+ "aria-autocomplete": {
2656
+ description: "Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be\npresented if they are made.",
2657
+ required: false,
2658
+ control: "select",
2659
+ type: "string",
2660
+ options: ["list", "none", "inline", "both"]
2661
+ },
2662
+ "aria-braillelabel": {
2663
+ description: "Defines a string value that labels the current element, which is intended to be converted into Braille.\n@see aria-label.",
2664
+ required: false,
2665
+ control: "text",
2666
+ type: "string"
2667
+ },
2668
+ "aria-brailleroledescription": {
2669
+ description: "Defines a human-readable, author-localized abbreviated description for the role of an element, which is intended to be converted into Braille.\n@see aria-roledescription.",
2670
+ required: false,
2671
+ control: "text",
2672
+ type: "string"
2673
+ },
2674
+ "aria-busy": { required: false, control: "boolean", type: "boolean" },
2675
+ "aria-checked": {
2676
+ description: 'Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.\n@see aria-pressed\n@see aria-selected.',
2677
+ required: false,
2678
+ control: "text",
2679
+ type: "string"
2680
+ },
2681
+ "aria-colcount": {
2682
+ description: "Defines the total number of columns in a table, grid, or treegrid.\n@see aria-colindex.",
2683
+ required: false,
2684
+ control: "number",
2685
+ type: "number"
2686
+ },
2687
+ "aria-colindex": {
2688
+ description: "Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.\n@see aria-colcount\n@see aria-colspan.",
2689
+ required: false,
2690
+ control: "number",
2691
+ type: "number"
2692
+ },
2693
+ "aria-colindextext": {
2694
+ description: "Defines a human readable text alternative of aria-colindex.\n@see aria-rowindextext.",
2695
+ required: false,
2696
+ control: "text",
2697
+ type: "string"
2698
+ },
2699
+ "aria-colspan": {
2700
+ description: "Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.\n@see aria-colindex\n@see aria-rowspan.",
2701
+ required: false,
2702
+ control: "number",
2703
+ type: "number"
2704
+ },
2705
+ "aria-controls": {
2706
+ description: "Identifies the element (or elements) whose contents or presence are controlled by the current element.\n@see aria-owns.",
2707
+ required: false,
2708
+ control: "text",
2709
+ type: "string"
2710
+ },
2711
+ "aria-current": {
2712
+ description: "Indicates the element that represents the current item within a container or set of related elements.",
2713
+ required: false,
2714
+ control: "text",
2715
+ type: "string"
2716
+ },
2717
+ "aria-describedby": {
2718
+ description: "Identifies the element (or elements) that describes the object.\n@see aria-labelledby",
2719
+ required: false,
2720
+ control: "text",
2721
+ type: "string"
2722
+ },
2723
+ "aria-description": {
2724
+ description: "Defines a string value that describes or annotates the current element.\n@see related aria-describedby.",
2725
+ required: false,
2726
+ control: "text",
2727
+ type: "string"
2728
+ },
2729
+ "aria-details": {
2730
+ description: "Identifies the element that provides a detailed, extended description for the object.\n@see aria-describedby.",
2731
+ required: false,
2732
+ control: "text",
2733
+ type: "string"
2734
+ },
2735
+ "aria-disabled": {
2736
+ description: "Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.\n@see aria-hidden\n@see aria-readonly.",
2737
+ required: false,
2738
+ control: "boolean",
2739
+ type: "boolean"
2740
+ },
2741
+ "aria-dropeffect": {
2742
+ description: "Indicates what functions can be performed when a dragged object is released on the drop target.\n@deprecated in ARIA 1.1",
2743
+ required: false,
2744
+ control: "select",
2745
+ type: "string",
2746
+ options: ["link", "none", "copy", "execute", "move", "popup"]
2747
+ },
2748
+ "aria-errormessage": {
2749
+ description: "Identifies the element that provides an error message for the object.\n@see aria-invalid\n@see aria-describedby.",
2750
+ required: false,
2751
+ control: "text",
2752
+ type: "string"
2753
+ },
2754
+ "aria-expanded": {
2755
+ description: "Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.",
2756
+ required: false,
2757
+ control: "boolean",
2758
+ type: "boolean"
2759
+ },
2760
+ "aria-flowto": {
2761
+ description: "Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,\nallows assistive technology to override the general default of reading in document source order.",
2762
+ required: false,
2763
+ control: "text",
2764
+ type: "string"
2765
+ },
2766
+ "aria-grabbed": {
2767
+ description: `Indicates an element's "grabbed" state in a drag-and-drop operation.
2768
+ @deprecated in ARIA 1.1`,
2769
+ required: false,
2770
+ control: "boolean",
2771
+ type: "boolean"
2772
+ },
2773
+ "aria-haspopup": {
2774
+ description: "Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.",
2775
+ required: false,
2776
+ control: "text",
2777
+ type: "string"
2778
+ },
2779
+ "aria-hidden": {
2780
+ description: "Indicates whether the element is exposed to an accessibility API.\n@see aria-disabled.",
2781
+ required: false,
2782
+ control: "boolean",
2783
+ type: "boolean"
2784
+ },
2785
+ "aria-invalid": {
2786
+ description: "Indicates the entered value does not conform to the format expected by the application.\n@see aria-errormessage.",
2787
+ required: false,
2788
+ control: "text",
2789
+ type: "string"
2790
+ },
2791
+ "aria-keyshortcuts": {
2792
+ description: "Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element.",
2793
+ required: false,
2794
+ control: "text",
2795
+ type: "string"
2796
+ },
2797
+ "aria-label": {
2798
+ description: "Provides the accessible name that describes an interactive element if no other accessible name exists, for example in a button that contains an image with no text.",
2799
+ required: false,
2800
+ control: "text",
2801
+ type: "string"
2802
+ },
2803
+ "aria-labelledby": {
2804
+ description: "Identifies the element (or elements) that labels the current element.\n@see aria-describedby.",
2805
+ required: false,
2806
+ control: "text",
2807
+ type: "string"
2808
+ },
2809
+ "aria-level": {
2810
+ description: "Defines the hierarchical level of an element within a structure.",
2811
+ required: false,
2812
+ control: "number",
2813
+ type: "number"
2814
+ },
2815
+ "aria-live": {
2816
+ description: "Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region.",
2817
+ required: false,
2818
+ control: "radio",
2819
+ type: "string",
2820
+ options: ["off", "assertive", "polite"]
2821
+ },
2822
+ "aria-modal": {
2823
+ description: "Indicates whether an element is modal when displayed.",
2824
+ required: false,
2825
+ control: "boolean",
2826
+ type: "boolean"
2827
+ },
2828
+ "aria-multiline": {
2829
+ description: "Indicates whether a text box accepts multiple lines of input or only a single line.",
2830
+ required: false,
2831
+ control: "boolean",
2832
+ type: "boolean"
2833
+ },
2834
+ "aria-multiselectable": {
2835
+ description: "Indicates that the user may select more than one item from the current selectable descendants.",
2836
+ required: false,
2837
+ control: "boolean",
2838
+ type: "boolean"
2839
+ },
2840
+ "aria-orientation": {
2841
+ description: "Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous.",
2842
+ required: false,
2843
+ control: "radio",
2844
+ type: "string",
2845
+ options: ["horizontal", "vertical"]
2846
+ },
2847
+ "aria-owns": {
2848
+ description: "Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship\nbetween DOM elements where the DOM hierarchy cannot be used to represent the relationship.\n@see aria-controls.",
2849
+ required: false,
2850
+ control: "text",
2851
+ type: "string"
2852
+ },
2853
+ "aria-placeholder": {
2854
+ description: "Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.\nA hint could be a sample value or a brief description of the expected format.",
2855
+ required: false,
2856
+ control: "text",
2857
+ type: "string"
2858
+ },
2859
+ "aria-posinset": {
2860
+ description: "Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.\n@see aria-setsize.",
2861
+ required: false,
2862
+ control: "number",
2863
+ type: "number"
2864
+ },
2865
+ "aria-pressed": {
2866
+ description: 'Indicates the current "pressed" state of toggle buttons.\n@see aria-checked\n@see aria-selected.',
2867
+ required: false,
2868
+ control: "text",
2869
+ type: "string"
2870
+ },
2871
+ "aria-readonly": {
2872
+ description: "Indicates that the element is not editable, but is otherwise operable.\n@see aria-disabled.",
2873
+ required: false,
2874
+ control: "boolean",
2875
+ type: "boolean"
2876
+ },
2877
+ "aria-relevant": {
2878
+ description: "Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.\n@see aria-atomic.",
2879
+ required: false,
2880
+ control: "select",
2881
+ type: "string",
2882
+ options: [
2883
+ "text",
2884
+ "additions",
2885
+ "additions removals",
2886
+ "additions text",
2887
+ "all",
2888
+ "removals",
2889
+ "removals additions",
2890
+ "removals text",
2891
+ "text additions",
2892
+ "text removals"
2893
+ ]
2894
+ },
2895
+ "aria-required": {
2896
+ description: "Indicates that user input is required on the element before a form may be submitted.",
2897
+ required: false,
2898
+ control: "boolean",
2899
+ type: "boolean"
2900
+ },
2901
+ "aria-roledescription": {
2902
+ description: "Defines a human-readable, author-localized description for the role of an element.",
2903
+ required: false,
2904
+ control: "text",
2905
+ type: "string"
2906
+ },
2907
+ "aria-rowcount": {
2908
+ description: "Defines the total number of rows in a table, grid, or treegrid.\n@see aria-rowindex.",
2909
+ required: false,
2910
+ control: "number",
2911
+ type: "number"
2912
+ },
2913
+ "aria-rowindex": {
2914
+ description: "Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.\n@see aria-rowcount\n@see aria-rowspan.",
2915
+ required: false,
2916
+ control: "number",
2917
+ type: "number"
2918
+ },
2919
+ "aria-rowindextext": {
2920
+ description: "Defines a human readable text alternative of aria-rowindex.\n@see aria-colindextext.",
2921
+ required: false,
2922
+ control: "text",
2923
+ type: "string"
2924
+ },
2925
+ "aria-rowspan": {
2926
+ description: "Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.\n@see aria-rowindex\n@see aria-colspan.",
2927
+ required: false,
2928
+ control: "number",
2929
+ type: "number"
2930
+ },
2931
+ "aria-selected": {
2932
+ description: 'Indicates the current "selected" state of various widgets.\n@see aria-checked\n@see aria-pressed.',
2933
+ required: false,
2934
+ control: "boolean",
2935
+ type: "boolean"
2936
+ },
2937
+ "aria-setsize": {
2938
+ description: "Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.\n@see aria-posinset.",
2939
+ required: false,
2940
+ control: "number",
2941
+ type: "number"
2942
+ },
2943
+ "aria-sort": {
2944
+ description: "Indicates if items in a table or grid are sorted in ascending or descending order.",
2945
+ required: false,
2946
+ control: "select",
2947
+ type: "string",
2948
+ options: ["none", "ascending", "descending", "other"]
2949
+ },
2950
+ "aria-valuemax": {
2951
+ description: "Defines the maximum allowed value for a range widget.",
2952
+ required: false,
2953
+ control: "number",
2954
+ type: "number"
2955
+ },
2956
+ "aria-valuemin": {
2957
+ description: "Defines the minimum allowed value for a range widget.",
2958
+ required: false,
2959
+ control: "number",
2960
+ type: "number"
2961
+ },
2962
+ "aria-valuenow": {
2963
+ description: "Defines the current value for a range widget.\n@see aria-valuetext.",
2964
+ required: false,
2965
+ control: "number",
2966
+ type: "number"
2967
+ },
2968
+ "aria-valuetext": {
2969
+ description: "Defines the human readable text alternative of aria-valuenow for a range widget.",
2970
+ required: false,
2971
+ control: "text",
2972
+ type: "string"
2973
+ },
2974
+ autoCapitalize: {
2975
+ required: false,
2976
+ control: "text",
2977
+ type: "string",
2978
+ description: "Sets whether input is automatically capitalized when entered by user."
2979
+ },
2980
+ autoCorrect: { required: false, control: "text", type: "string" },
2981
+ autoFocus: {
2982
+ required: false,
2983
+ control: "boolean",
2984
+ type: "boolean",
2985
+ description: "Indicates that an element should be focused on page load, or when its parent dialog is displayed."
2986
+ },
2987
+ autoSave: { required: false, control: "text", type: "string" },
2988
+ className: { required: false, control: "text", type: "string" },
2989
+ color: {
2990
+ required: false,
2991
+ control: "color",
2992
+ type: "string",
2993
+ description: "This attribute sets the text color using either a named color or a color specified in the hexadecimal #RRGGBB format. Note: This is a legacy attribute. Please use the CSS color property instead."
2994
+ },
2995
+ content: {
2996
+ required: false,
2997
+ control: "text",
2998
+ type: "string",
2999
+ description: "A value associated with http-equiv orname depending on the context."
3000
+ },
3001
+ contextMenu: {
3002
+ required: false,
3003
+ control: "text",
3004
+ type: "string",
3005
+ description: "Defines the ID of a menu element which willserve as the element's context menu."
3006
+ },
3007
+ datatype: { required: false, control: "text", type: "string" },
3008
+ dir: {
3009
+ required: false,
3010
+ control: "text",
3011
+ type: "string",
3012
+ description: "Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl (Right-To-Left)"
3013
+ },
3014
+ draggable: {
3015
+ required: false,
3016
+ control: "boolean",
3017
+ type: "boolean",
3018
+ description: "Defines whether the element can be dragged."
3019
+ },
3020
+ form: {
3021
+ required: false,
3022
+ control: "text",
3023
+ type: "string",
3024
+ description: "Indicates the form that is the owner of the element."
3025
+ },
3026
+ hidden: {
3027
+ required: false,
3028
+ control: "boolean",
3029
+ type: "boolean",
3030
+ description: "Prevents rendering of given element, while keeping child elements, e.g. script elements, active."
3031
+ },
3032
+ htmlFor: {
3033
+ required: false,
3034
+ control: "text",
3035
+ type: "string",
3036
+ description: "Associates this Label with an Input. The value of the \u201CFor\u201D attribute should match the ID attribute of the corresponding Input element"
3037
+ },
3038
+ id: {
3039
+ required: false,
3040
+ control: "text",
3041
+ type: "string",
3042
+ description: "Often used with CSS to style a specific element. The value of this attribute must be unique."
3043
+ },
3044
+ inputMode: {
3045
+ description: "Hints at the type of data that might be entered by the user while editing the element or its contents\n@see https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute",
3046
+ required: false,
3047
+ control: "select",
3048
+ type: "string",
3049
+ options: [
3050
+ "search",
3051
+ "text",
3052
+ "none",
3053
+ "tel",
3054
+ "url",
3055
+ "email",
3056
+ "numeric",
3057
+ "decimal"
3058
+ ]
3059
+ },
3060
+ is: {
3061
+ description: "Specify that a standard HTML element should behave like a defined custom built-in element\n@see https://html.spec.whatwg.org/multipage/custom-elements.html#attr-is",
3062
+ required: false,
3063
+ control: "text",
3064
+ type: "string"
3065
+ },
3066
+ itemID: { required: false, control: "text", type: "string" },
3067
+ itemProp: { required: false, control: "text", type: "string" },
3068
+ itemRef: { required: false, control: "text", type: "string" },
3069
+ itemScope: { required: false, control: "boolean", type: "boolean" },
3070
+ itemType: { required: false, control: "text", type: "string" },
3071
+ lang: {
3072
+ required: false,
3073
+ control: "text",
3074
+ type: "string",
3075
+ description: "Defines the language used in the element."
3076
+ },
3077
+ nonce: { required: false, control: "text", type: "string" },
3078
+ placeholder: {
3079
+ required: false,
3080
+ control: "text",
3081
+ type: "string",
3082
+ description: "Provides a hint to the user of what can be entered in the field."
3083
+ },
3084
+ prefix: { required: false, control: "text", type: "string" },
3085
+ property: { required: false, control: "text", type: "string" },
3086
+ radioGroup: { required: false, control: "text", type: "string" },
3087
+ rel: {
3088
+ required: false,
3089
+ control: "text",
3090
+ type: "string",
3091
+ description: "Specifies the relationship of the target object to the link object."
3092
+ },
3093
+ resource: { required: false, control: "text", type: "string" },
3094
+ results: { required: false, control: "number", type: "number" },
3095
+ rev: { required: false, control: "text", type: "string" },
3096
+ role: {
3097
+ required: false,
3098
+ control: "text",
3099
+ type: "string",
3100
+ description: "Defines an explicit role for an element for use by assistive technologies."
3101
+ },
3102
+ security: { required: false, control: "text", type: "string" },
3103
+ slot: {
3104
+ required: false,
3105
+ control: "text",
3106
+ type: "string",
3107
+ description: "Assigns a slot in a shadow DOM shadow tree to an element."
3108
+ },
3109
+ spellCheck: {
3110
+ required: false,
3111
+ control: "boolean",
3112
+ type: "boolean",
3113
+ description: "Indicates whether spell checking is allowed for the element."
3114
+ },
3115
+ suppressContentEditableWarning: {
3116
+ required: false,
3117
+ control: "boolean",
3118
+ type: "boolean"
3119
+ },
3120
+ suppressHydrationWarning: {
3121
+ required: false,
3122
+ control: "boolean",
3123
+ type: "boolean"
3124
+ },
3125
+ tabIndex: {
3126
+ required: false,
3127
+ control: "number",
3128
+ type: "number",
3129
+ description: "Overrides the browser's default tab order and follows the one specified instead."
3130
+ },
3131
+ title: {
3132
+ required: false,
3133
+ control: "text",
3134
+ type: "string",
3135
+ description: "Text to be displayed in a tooltip when hovering over the element."
3136
+ },
3137
+ translate: {
3138
+ required: false,
3139
+ control: "radio",
3140
+ type: "string",
3141
+ options: ["yes", "no"],
3142
+ description: "Specify whether an element's attribute values and the values of its text node children are to be translated when the page is localized, or whether to leave them unchanged."
3143
+ },
3144
+ typeof: { required: false, control: "text", type: "string" },
3145
+ unselectable: {
3146
+ required: false,
3147
+ control: "radio",
3148
+ type: "string",
3149
+ options: ["on", "off"]
3150
+ },
3151
+ vocab: { required: false, control: "text", type: "string" }
3152
+ };
3153
+
3154
+ // src/label.ws.ts
3155
+ var presetStyle6 = {
3156
+ label
3157
+ };
3158
+ var meta2 = {
3159
+ category: "radix",
3160
+ order: 102,
3161
+ type: "container",
3162
+ icon: LabelIcon,
3163
+ presetStyle: presetStyle6,
3164
+ states: defaultStates3,
3165
+ description: "An accessible label to describe the purpose of an input. Match the \u201CFor\u201D property on the label with the \u201CID\u201D of the input to connect them.",
3166
+ template: [
3167
+ {
3168
+ type: "instance",
3169
+ component: "Label",
3170
+ styles: [
3171
+ // text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70
3172
+ text("sm"),
3173
+ font("medium"),
3174
+ leading("none")
3175
+ // We are not supporting peer like styles yet
3176
+ ].flat(),
3177
+ children: [{ type: "text", value: "Form Label" }]
3178
+ }
3179
+ ]
3180
+ };
3181
+ var propsMeta = {
3182
+ props: {
3183
+ ...props,
3184
+ htmlFor: {
3185
+ ...props.htmlFor,
3186
+ label: "For"
3187
+ }
3188
+ },
3189
+ initialProps: ["id", "htmlFor"]
3190
+ };
3191
+
3192
+ // src/accordion.ws.ts
3193
+ import {
3194
+ AccordionIcon,
3195
+ ItemIcon,
3196
+ HeaderIcon as HeaderIcon2,
3197
+ TriggerIcon as TriggerIcon6,
3198
+ ContentIcon as ContentIcon6,
3199
+ ChevronDownIcon
3200
+ } from "@webstudio-is/icons/svg";
3201
+ import {
3202
+ defaultStates as defaultStates4
3203
+ } from "@webstudio-is/react-sdk";
3204
+ import { div as div6, h3, button as button3 } from "@webstudio-is/react-sdk/css-normalize";
3205
+ var presetStyle7 = {
3206
+ div: div6
3207
+ };
3208
+ var accordionItemStyles = [borderB()].flat();
3209
+ var createAccordionTrigger = ({
3210
+ children
3211
+ }) => ({
3212
+ type: "instance",
3213
+ component: "AccordionHeader",
3214
+ // flex
3215
+ styles: [flex()].flat(),
3216
+ children: [
3217
+ {
3218
+ type: "instance",
3219
+ component: "AccordionTrigger",
3220
+ // flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180
3221
+ styles: [
3222
+ flex(),
3223
+ flex(1),
3224
+ items("center"),
3225
+ justify("between"),
3226
+ py(4),
3227
+ font("medium"),
3228
+ hover([underline()].flat()),
3229
+ property("--accordion-trigger-icon-transform", "0deg"),
3230
+ state(
3231
+ [property("--accordion-trigger-icon-transform", "180deg")],
3232
+ "[data-state=open]"
3233
+ )
3234
+ ].flat(),
3235
+ children: [
3236
+ {
3237
+ type: "instance",
3238
+ component: "Text",
3239
+ children
3240
+ },
3241
+ {
3242
+ type: "instance",
3243
+ component: "Box",
3244
+ label: "Icon Container",
3245
+ // h-4 w-4 shrink-0 transition-transform duration-200
3246
+ styles: [
3247
+ property("rotate", "--accordion-trigger-icon-transform"),
3248
+ h(4),
3249
+ w(4),
3250
+ shrink(0),
3251
+ transition("all"),
3252
+ duration(200)
3253
+ ].flat(),
3254
+ children: [
3255
+ {
3256
+ type: "instance",
3257
+ component: "HtmlEmbed",
3258
+ label: "Chevron Icon",
3259
+ props: [
3260
+ {
3261
+ type: "string",
3262
+ name: "code",
3263
+ value: ChevronDownIcon
3264
+ }
3265
+ ],
3266
+ children: []
3267
+ }
3268
+ ]
3269
+ }
3270
+ ]
3271
+ }
3272
+ ]
3273
+ });
3274
+ var accordionContentStyles = [
3275
+ overflow("hidden"),
3276
+ text("sm"),
3277
+ // transition does not work with display: none
3278
+ // tc.transition("all"),
3279
+ pb(4)
3280
+ ].flat();
3281
+ var metaAccordion = {
3282
+ category: "radix",
3283
+ order: 3,
3284
+ type: "container",
3285
+ icon: AccordionIcon,
3286
+ presetStyle: presetStyle7,
3287
+ description: "A vertically stacked set of interactive headings that each reveal an associated section of content. Clicking on the heading will open the item and close other items.",
3288
+ template: [
3289
+ {
3290
+ type: "instance",
3291
+ component: "Accordion",
3292
+ dataSources: {
3293
+ accordionValue: { type: "variable", initialValue: "0" }
3294
+ },
3295
+ props: [
3296
+ { type: "boolean", name: "collapsible", value: true },
3297
+ { type: "dataSource", name: "value", dataSourceName: "accordionValue" },
3298
+ {
3299
+ name: "onValueChange",
3300
+ type: "action",
3301
+ value: [
3302
+ {
3303
+ type: "execute",
3304
+ args: ["value"],
3305
+ code: `accordionValue = value`
3306
+ }
3307
+ ]
3308
+ }
3309
+ ],
3310
+ children: [
3311
+ {
3312
+ type: "instance",
3313
+ component: "AccordionItem",
3314
+ styles: accordionItemStyles,
3315
+ children: [
3316
+ createAccordionTrigger({
3317
+ children: [{ type: "text", value: "Is it accessible?" }]
3318
+ }),
3319
+ {
3320
+ type: "instance",
3321
+ component: "AccordionContent",
3322
+ styles: accordionContentStyles,
3323
+ children: [
3324
+ {
3325
+ type: "text",
3326
+ value: "Yes. It adheres to the WAI-ARIA design pattern."
3327
+ }
3328
+ ]
3329
+ }
3330
+ ]
3331
+ },
3332
+ {
3333
+ type: "instance",
3334
+ component: "AccordionItem",
3335
+ styles: accordionItemStyles,
3336
+ children: [
3337
+ createAccordionTrigger({
3338
+ children: [{ type: "text", value: "Is it styled?" }]
3339
+ }),
3340
+ {
3341
+ type: "instance",
3342
+ component: "AccordionContent",
3343
+ styles: accordionContentStyles,
3344
+ children: [
3345
+ {
3346
+ type: "text",
3347
+ value: "Yes. It comes with default styles that matches the other components' aesthetic."
3348
+ }
3349
+ ]
3350
+ }
3351
+ ]
3352
+ },
3353
+ {
3354
+ type: "instance",
3355
+ component: "AccordionItem",
3356
+ styles: accordionItemStyles,
3357
+ children: [
3358
+ createAccordionTrigger({
3359
+ children: [{ type: "text", value: "Is it animated?" }]
3360
+ }),
3361
+ {
3362
+ type: "instance",
3363
+ component: "AccordionContent",
3364
+ styles: accordionContentStyles,
3365
+ children: [
3366
+ {
3367
+ type: "text",
3368
+ value: "Yes. It's animated by default, but you can disable it if you prefer."
3369
+ }
3370
+ ]
3371
+ }
3372
+ ]
3373
+ }
3374
+ ]
3375
+ }
3376
+ ]
3377
+ };
3378
+ var metaAccordionItem = {
3379
+ category: "hidden",
3380
+ type: "container",
3381
+ label: "Item",
3382
+ icon: ItemIcon,
3383
+ requiredAncestors: ["Accordion"],
3384
+ indexWithinAncestor: "Accordion",
3385
+ presetStyle: presetStyle7
3386
+ };
3387
+ var metaAccordionHeader = {
3388
+ category: "hidden",
3389
+ type: "container",
3390
+ label: "Item Header",
3391
+ icon: HeaderIcon2,
3392
+ requiredAncestors: ["AccordionItem"],
3393
+ detachable: false,
3394
+ presetStyle: {
3395
+ h3: [h3, my(0)].flat()
3396
+ }
3397
+ };
3398
+ var metaAccordionTrigger = {
3399
+ category: "hidden",
3400
+ type: "container",
3401
+ label: "Item Trigger",
3402
+ icon: TriggerIcon6,
3403
+ requiredAncestors: ["AccordionHeader"],
3404
+ detachable: false,
3405
+ states: [
3406
+ ...defaultStates4,
3407
+ {
3408
+ category: "component-states",
3409
+ label: "Open",
3410
+ selector: "[data-state=open]"
3411
+ }
3412
+ ],
3413
+ presetStyle: {
3414
+ button: [button3, buttonReset].flat()
3415
+ }
3416
+ };
3417
+ var metaAccordionContent = {
3418
+ category: "hidden",
3419
+ type: "container",
3420
+ label: "Item Content",
3421
+ icon: ContentIcon6,
3422
+ requiredAncestors: ["AccordionItem"],
3423
+ detachable: false,
3424
+ presetStyle: presetStyle7
3425
+ };
3426
+
3427
+ // src/navigation-menu.ws.ts
3428
+ import {
3429
+ ContentIcon as ContentIcon7,
3430
+ ListIcon,
3431
+ ListItemIcon,
3432
+ TriggerIcon as TriggerIcon7,
3433
+ BoxIcon,
3434
+ ChevronDownIcon as ChevronDownIcon2,
3435
+ ViewportIcon,
3436
+ NavigationMenuIcon
3437
+ } from "@webstudio-is/icons/svg";
3438
+ import { div as div7 } from "@webstudio-is/react-sdk/css-normalize";
3439
+ var presetStyle8 = {
3440
+ div: div7
3441
+ };
3442
+ var components = [
3443
+ {
3444
+ title: "Sheet",
3445
+ href: "/docs/components/sheet",
3446
+ description: "Extends the Dialog component to display content that complements the main content of the screen."
3447
+ },
3448
+ {
3449
+ title: "Navigation Menu",
3450
+ href: "/docs/components/navigation-menu",
3451
+ description: "A collection of links for navigating websites."
3452
+ },
3453
+ {
3454
+ title: "Tabs",
3455
+ href: "/docs/components/tabs",
3456
+ description: "A set of layered sections of content\u2014known as tab panels\u2014that are displayed one at a time."
3457
+ },
3458
+ {
3459
+ title: "Accordion",
3460
+ href: "/docs/components/accordion",
3461
+ description: "A vertically stacked set of interactive headings that each reveal a section of content."
3462
+ },
3463
+ {
3464
+ title: "Dialog",
3465
+ href: "/docs/components/dialog",
3466
+ description: "A window overlaid on either the primary window or another dialog window, rendering the content underneath inert."
3467
+ },
3468
+ {
3469
+ title: "Collapsible",
3470
+ href: "/docs/components/collapsible",
3471
+ description: "An interactive component which expands/collapses a panel."
3472
+ },
3473
+ {
3474
+ title: "Popover",
3475
+ href: "/docs/components/popover",
3476
+ description: "Displays rich content in a portal, triggered by a button."
3477
+ },
3478
+ {
3479
+ title: "Tooltip",
3480
+ href: "/docs/components/tooltip",
3481
+ description: "A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it."
3482
+ },
3483
+ {
3484
+ title: "Button",
3485
+ href: "/docs/components/button",
3486
+ description: "Displays a button or a component that looks like a button."
3487
+ }
3488
+ ];
3489
+ var navItem = (props2) => [
3490
+ {
3491
+ type: "instance",
3492
+ component: "NavigationMenuLink",
3493
+ children: [
3494
+ {
3495
+ type: "instance",
3496
+ component: "Link",
3497
+ // block select-none space-y-1 rounded-md p-3 leading-none
3498
+ // no-underline outline-none transition-colors
3499
+ // hover:bg-accent hover:text-accent-foreground
3500
+ // focus:bg-accent focus:text-accent-foreground
3501
+ styles: [
3502
+ text("inherit"),
3503
+ flex(),
3504
+ flex("col"),
3505
+ select("none"),
3506
+ gap(1),
3507
+ rounded("md"),
3508
+ p(3),
3509
+ leading("none"),
3510
+ noUnderline(),
3511
+ outline("none"),
3512
+ hover([bg("accent"), text("accentForeground")].flat()),
3513
+ focus([bg("accent"), text("accentForeground")].flat())
3514
+ ].flat(),
3515
+ props: [
3516
+ {
3517
+ name: "href",
3518
+ type: "string",
3519
+ value: `https://ui.shadcn.com${props2.href}`
3520
+ }
3521
+ ],
3522
+ children: [
3523
+ {
3524
+ type: "instance",
3525
+ component: "Text",
3526
+ // text-sm font-medium leading-none
3527
+ styles: [
3528
+ text("sm"),
3529
+ font("medium"),
3530
+ leading("none")
3531
+ ].flat(),
3532
+ children: [
3533
+ {
3534
+ type: "text",
3535
+ value: props2.title
3536
+ }
3537
+ ]
3538
+ },
3539
+ {
3540
+ type: "instance",
3541
+ component: "Paragraph",
3542
+ // line-clamp-2 text-sm leading-snug text-muted-foreground
3543
+ styles: [
3544
+ m(0),
3545
+ lineClamp2(2),
3546
+ text("sm"),
3547
+ leading("snug"),
3548
+ text("mutedForeground")
3549
+ ].flat(),
3550
+ children: [
3551
+ {
3552
+ type: "text",
3553
+ value: props2.description
3554
+ }
3555
+ ]
3556
+ }
3557
+ ]
3558
+ }
3559
+ ]
3560
+ }
3561
+ ];
3562
+ var navItemsList = (props2) => [
3563
+ {
3564
+ type: "instance",
3565
+ component: "Box",
3566
+ label: "Flex Column",
3567
+ styles: [w(64), flex(), gap(4), flex("col")].flat(),
3568
+ children: Array.from(
3569
+ Array(props2.count),
3570
+ (_, index) => navItem(components[index + props2.offset])
3571
+ ).flat()
3572
+ }
3573
+ ];
3574
+ var menuItemLink = (props2) => [
3575
+ {
3576
+ type: "instance",
3577
+ component: "NavigationMenuItem",
3578
+ children: [
3579
+ {
3580
+ type: "instance",
3581
+ component: "NavigationMenuLink",
3582
+ children: [
3583
+ {
3584
+ type: "instance",
3585
+ component: "Link",
3586
+ styles: [
3587
+ getButtonStyles("ghost", "sm"),
3588
+ noUnderline(),
3589
+ text("current")
3590
+ ].flat(),
3591
+ children: [{ type: "text", value: props2.title }]
3592
+ }
3593
+ ]
3594
+ }
3595
+ ]
3596
+ }
3597
+ ];
3598
+ var menuItem = (props2) => [
3599
+ {
3600
+ type: "instance",
3601
+ component: "NavigationMenuItem",
3602
+ children: [
3603
+ {
3604
+ type: "instance",
3605
+ component: "NavigationMenuTrigger",
3606
+ children: [
3607
+ {
3608
+ type: "instance",
3609
+ component: "Button",
3610
+ styles: [
3611
+ getButtonStyles("ghost", "sm"),
3612
+ property("--navigation-menu-trigger-icon-transform", "0deg"),
3613
+ state(
3614
+ [
3615
+ property(
3616
+ "--navigation-menu-trigger-icon-transform",
3617
+ "180deg"
3618
+ )
3619
+ ],
3620
+ "[data-state=open]"
3621
+ )
3622
+ ].flat(),
3623
+ children: [
3624
+ {
3625
+ type: "instance",
3626
+ component: "Text",
3627
+ children: [{ type: "text", value: props2.title }]
3628
+ },
3629
+ {
3630
+ type: "instance",
3631
+ component: "Box",
3632
+ label: "Icon Container",
3633
+ // h-4 w-4 shrink-0 transition-transform duration-200
3634
+ styles: [
3635
+ ml(1),
3636
+ property(
3637
+ "rotate",
3638
+ "--navigation-menu-trigger-icon-transform"
3639
+ ),
3640
+ h(4),
3641
+ w(4),
3642
+ shrink(0),
3643
+ transition("all"),
3644
+ duration(200)
3645
+ ].flat(),
3646
+ children: [
3647
+ {
3648
+ type: "instance",
3649
+ component: "HtmlEmbed",
3650
+ label: "Chevron Icon",
3651
+ props: [
3652
+ {
3653
+ type: "string",
3654
+ name: "code",
3655
+ value: ChevronDownIcon2
3656
+ }
3657
+ ],
3658
+ children: []
3659
+ }
3660
+ ]
3661
+ }
3662
+ ]
3663
+ }
3664
+ ]
3665
+ },
3666
+ {
3667
+ type: "instance",
3668
+ component: "NavigationMenuContent",
3669
+ // left-0 top-0 absolute w-max
3670
+ styles: [
3671
+ left(0),
3672
+ top(0),
3673
+ absolute(),
3674
+ w("max"),
3675
+ p(4)
3676
+ ].flat(),
3677
+ children: [
3678
+ {
3679
+ type: "instance",
3680
+ component: "Box",
3681
+ label: "Content",
3682
+ styles: [flex(), gap(4), p(props2.padding)].flat(),
3683
+ children: props2.children
3684
+ }
3685
+ ]
3686
+ }
3687
+ ]
3688
+ }
3689
+ ];
3690
+ var metaNavigationMenu = {
3691
+ category: "radix",
3692
+ order: 2,
3693
+ type: "container",
3694
+ description: "A collection of links for navigating websites.",
3695
+ icon: NavigationMenuIcon,
3696
+ presetStyle: presetStyle8,
3697
+ template: [
3698
+ {
3699
+ type: "instance",
3700
+ component: "NavigationMenu",
3701
+ dataSources: {
3702
+ menuValue: { type: "variable", initialValue: "" }
3703
+ },
3704
+ props: [
3705
+ { type: "dataSource", name: "value", dataSourceName: "menuValue" },
3706
+ {
3707
+ name: "onValueChange",
3708
+ type: "action",
3709
+ value: [
3710
+ {
3711
+ type: "execute",
3712
+ args: ["value"],
3713
+ code: `menuValue = value`
3714
+ }
3715
+ ]
3716
+ }
3717
+ ],
3718
+ // relative
3719
+ // Omiting this: z-10 flex max-w-max flex-1 items-center justify-center
3720
+ styles: [relative(), maxW("max")].flat(),
3721
+ children: [
3722
+ {
3723
+ type: "instance",
3724
+ component: "NavigationMenuList",
3725
+ styles: [
3726
+ // ul defaults in tailwind
3727
+ p(0),
3728
+ m(0),
3729
+ // shadcdn styles
3730
+ flex(),
3731
+ flex(1),
3732
+ list("none"),
3733
+ items("center"),
3734
+ justify("center"),
3735
+ gap(1)
3736
+ ].flat(),
3737
+ children: [
3738
+ ...menuItem({
3739
+ title: "About",
3740
+ padding: 2,
3741
+ children: [
3742
+ {
3743
+ type: "instance",
3744
+ component: "Box",
3745
+ styles: [
3746
+ bg("border"),
3747
+ p(4),
3748
+ w(48),
3749
+ rounded("md")
3750
+ ].flat(),
3751
+ children: [
3752
+ {
3753
+ type: "text",
3754
+ value: ""
3755
+ }
3756
+ ]
3757
+ },
3758
+ ...navItemsList({ count: 3, offset: 0 })
3759
+ ]
3760
+ }),
3761
+ ...menuItem({
3762
+ title: "Components",
3763
+ padding: 0,
3764
+ children: [
3765
+ ...navItemsList({ count: 3, offset: 3 }),
3766
+ ...navItemsList({ count: 3, offset: 6 })
3767
+ ]
3768
+ }),
3769
+ ...menuItemLink({ title: "Standalone" })
3770
+ ]
3771
+ },
3772
+ {
3773
+ type: "instance",
3774
+ component: "Box",
3775
+ label: "Viewport Container",
3776
+ // absolute left-0 top-full flex justify-center
3777
+ styles: [
3778
+ absolute(),
3779
+ left(0),
3780
+ top("full"),
3781
+ flex(),
3782
+ justify("center")
3783
+ ].flat(),
3784
+ children: [
3785
+ {
3786
+ type: "instance",
3787
+ component: "NavigationMenuViewport",
3788
+ /*
3789
+ origin-top-center relative mt-1.5 w-full
3790
+ overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg
3791
+ h-[var(--radix-navigation-menu-viewport-height)]
3792
+ w-[var(--radix-navigation-menu-viewport-width)]
3793
+ // anims
3794
+ [animation-duration:150ms!important] [transition-duration:150ms!important]
3795
+ data-[state=open]:animate-in data-[state=closed]:animate-out
3796
+ data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90
3797
+ */
3798
+ styles: [
3799
+ relative(),
3800
+ mt(1.5),
3801
+ overflow("hidden"),
3802
+ rounded("md"),
3803
+ border(),
3804
+ bg("popover"),
3805
+ text("popoverForeground"),
3806
+ shadow("lg"),
3807
+ property(
3808
+ "height",
3809
+ "--radix-navigation-menu-viewport-height"
3810
+ ),
3811
+ property("width", "--radix-navigation-menu-viewport-width")
3812
+ ].flat(),
3813
+ children: []
3814
+ }
3815
+ ]
3816
+ }
3817
+ ]
3818
+ }
3819
+ ]
3820
+ };
3821
+ var metaNavigationMenuList = {
3822
+ category: "hidden",
3823
+ detachable: false,
3824
+ type: "container",
3825
+ icon: ListIcon,
3826
+ requiredAncestors: ["NavigationMenu"],
3827
+ presetStyle: presetStyle8,
3828
+ label: "Menu List"
3829
+ };
3830
+ var metaNavigationMenuItem = {
3831
+ category: "hidden",
3832
+ type: "container",
3833
+ icon: ListItemIcon,
3834
+ requiredAncestors: ["NavigationMenu"],
3835
+ presetStyle: presetStyle8,
3836
+ indexWithinAncestor: "NavigationMenu",
3837
+ label: "Menu Item"
3838
+ };
3839
+ var metaNavigationMenuTrigger = {
3840
+ category: "hidden",
3841
+ detachable: false,
3842
+ stylable: false,
3843
+ type: "container",
3844
+ icon: TriggerIcon7,
3845
+ requiredAncestors: ["NavigationMenuItem"],
3846
+ presetStyle: presetStyle8,
3847
+ label: "Menu Trigger"
3848
+ };
3849
+ var metaNavigationMenuContent = {
3850
+ category: "hidden",
3851
+ detachable: false,
3852
+ type: "container",
3853
+ icon: ContentIcon7,
3854
+ requiredAncestors: ["NavigationMenuItem"],
3855
+ indexWithinAncestor: "NavigationMenu",
3856
+ presetStyle: presetStyle8,
3857
+ label: "Menu Content"
3858
+ };
3859
+ var metaNavigationMenuLink = {
3860
+ category: "hidden",
3861
+ detachable: true,
3862
+ type: "container",
3863
+ stylable: false,
3864
+ icon: BoxIcon,
3865
+ // https://github.com/webstudio-is/webstudio/issues/2193
3866
+ // requiredAncestors: ["NavigationMenuContent", "NavigationMenuItem"],
3867
+ // Temporary restrict to NavigationMenu
3868
+ requiredAncestors: ["NavigationMenu"],
3869
+ presetStyle: presetStyle8,
3870
+ label: "Accessible Link Wrapper"
3871
+ };
3872
+ var metaNavigationMenuViewport = {
3873
+ category: "hidden",
3874
+ detachable: true,
3875
+ type: "container",
3876
+ icon: ViewportIcon,
3877
+ requiredAncestors: ["NavigationMenu"],
3878
+ presetStyle: presetStyle8,
3879
+ label: "Menu Viewport"
3880
+ };
3881
+
3882
+ // src/select.ws.ts
3883
+ import {
3884
+ SelectIcon,
3885
+ TriggerIcon as TriggerIcon8,
3886
+ FormTextFieldIcon,
3887
+ ContentIcon as ContentIcon8,
3888
+ ItemIcon as ItemIcon2,
3889
+ ViewportIcon as ViewportIcon2,
3890
+ TextIcon as TextIcon2,
3891
+ CheckMarkIcon
3892
+ } from "@webstudio-is/icons/svg";
3893
+ import { button as button4, div as div8, span } from "@webstudio-is/react-sdk/css-normalize";
3894
+ var presetStyle9 = {
3895
+ div: div8
3896
+ };
3897
+ var createSelectItem = ({
3898
+ props: props2,
3899
+ children
3900
+ }) => ({
3901
+ type: "instance",
3902
+ component: "SelectItem",
3903
+ props: props2,
3904
+ // relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none
3905
+ // focus:bg-accent focus:text-accent-foreground
3906
+ // data-[disabled]:pointer-events-none data-[disabled]:opacity-50
3907
+ styles: [
3908
+ relative(),
3909
+ flex(),
3910
+ w("full"),
3911
+ cursor2("default"),
3912
+ select("none"),
3913
+ items("center"),
3914
+ rounded("md"),
3915
+ py(1.5),
3916
+ pl(8),
3917
+ pr(2),
3918
+ text("sm"),
3919
+ outline("none"),
3920
+ focus([bg("accent"), text("accentForeground")].flat()),
3921
+ state(
3922
+ [pointerEvents("none"), opacity2(50)].flat(),
3923
+ "[data-disabled]"
3924
+ )
3925
+ ].flat(),
3926
+ children: [
3927
+ {
3928
+ type: "instance",
3929
+ component: "SelectItemIndicator",
3930
+ // absolute left-2 flex h-3.5 w-3.5 items-center justify-center
3931
+ styles: [
3932
+ absolute(),
3933
+ left(2),
3934
+ flex(),
3935
+ h(3.5),
3936
+ w(3.5),
3937
+ items("center"),
3938
+ justify("center")
3939
+ ].flat(),
3940
+ children: [
3941
+ {
3942
+ type: "instance",
3943
+ component: "HtmlEmbed",
3944
+ label: "Indicator Icon",
3945
+ props: [
3946
+ {
3947
+ type: "string",
3948
+ name: "code",
3949
+ value: CheckMarkIcon
3950
+ }
3951
+ ],
3952
+ children: []
3953
+ }
3954
+ ]
3955
+ },
3956
+ {
3957
+ type: "instance",
3958
+ component: "SelectItemText",
3959
+ children
3960
+ }
3961
+ ]
3962
+ });
3963
+ var metaSelect = {
3964
+ category: "radix",
3965
+ order: 10,
3966
+ type: "container",
3967
+ icon: SelectIcon,
3968
+ stylable: false,
3969
+ description: "Use within a form to give your users a list of options to choose from.",
3970
+ template: [
3971
+ {
3972
+ type: "instance",
3973
+ component: "Select",
3974
+ dataSources: {
3975
+ selectValue: { type: "variable", initialValue: "" },
3976
+ selectOpen: { type: "variable", initialValue: false }
3977
+ },
3978
+ props: [
3979
+ {
3980
+ name: "value",
3981
+ type: "dataSource",
3982
+ dataSourceName: "selectValue"
3983
+ },
3984
+ {
3985
+ name: "onValueChange",
3986
+ type: "action",
3987
+ value: [
3988
+ { type: "execute", args: ["value"], code: `selectValue = value` }
3989
+ ]
3990
+ },
3991
+ {
3992
+ name: "open",
3993
+ type: "dataSource",
3994
+ dataSourceName: "selectOpen"
3995
+ },
3996
+ {
3997
+ name: "onOpenChange",
3998
+ type: "action",
3999
+ value: [
4000
+ { type: "execute", args: ["open"], code: `selectOpen = open` }
4001
+ ]
4002
+ }
4003
+ ],
4004
+ children: [
4005
+ {
4006
+ type: "instance",
4007
+ component: "SelectTrigger",
4008
+ // flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background
4009
+ // placeholder:text-muted-foreground
4010
+ // focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2
4011
+ // disabled:cursor-not-allowed disabled:opacity-50
4012
+ styles: [
4013
+ flex(),
4014
+ h(10),
4015
+ w("full"),
4016
+ items("center"),
4017
+ justify("between"),
4018
+ rounded("md"),
4019
+ border(),
4020
+ border("input"),
4021
+ bg("background"),
4022
+ px(3),
4023
+ py(2),
4024
+ text("sm"),
4025
+ state([text("mutedForeground")].flat(), "::placeholder"),
4026
+ focus(
4027
+ [outline("none"), ring("ring", 2, "background", 2)].flat()
4028
+ ),
4029
+ disabled([cursor2("not-allowed"), opacity2(50)].flat())
4030
+ ].flat(),
4031
+ children: [
4032
+ {
4033
+ type: "instance",
4034
+ component: "SelectValue",
4035
+ props: [{ name: "placeholder", type: "string", value: "Theme" }],
4036
+ children: []
4037
+ }
4038
+ ]
4039
+ },
4040
+ {
4041
+ type: "instance",
4042
+ component: "SelectContent",
4043
+ // relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md
4044
+ // data-[state=open]:animate-in
4045
+ // data-[state=closed]:animate-out data-[state=closed]:fade-out-0
4046
+ // data-[state=open]:fade-in-0
4047
+ // data-[state=closed]:zoom-out-95
4048
+ // data-[state=open]:zoom-in-95
4049
+ // data-[side=bottom]:slide-in-from-top-2
4050
+ // data-[side=left]:slide-in-from-right-2
4051
+ // data-[side=right]:slide-in-from-left-2
4052
+ // data-[side=top]:slide-in-from-bottom-2
4053
+ // position=popper
4054
+ // data-[side=bottom]:translate-y-1
4055
+ // data-[side=left]:-translate-x-1
4056
+ // data-[side=right]:translate-x-1
4057
+ // data-[side=top]:-translate-y-1
4058
+ styles: [
4059
+ relative(),
4060
+ z(50),
4061
+ property("minWidth", "8rem"),
4062
+ overflow("hidden"),
4063
+ rounded("md"),
4064
+ border(),
4065
+ bg("popover"),
4066
+ text("popoverForeground"),
4067
+ shadow("md")
4068
+ ].flat(),
4069
+ children: [
4070
+ {
4071
+ type: "instance",
4072
+ component: "SelectViewport",
4073
+ // p-1
4074
+ // position=popper
4075
+ // h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]
4076
+ styles: [
4077
+ p(1),
4078
+ property("height", "--radix-select-trigger-height"),
4079
+ w("full"),
4080
+ property("minWidth", "--radix-select-trigger-width")
4081
+ ].flat(),
4082
+ children: [
4083
+ createSelectItem({
4084
+ props: [{ name: "value", type: "string", value: "light" }],
4085
+ children: [{ type: "text", value: "Light" }]
4086
+ }),
4087
+ createSelectItem({
4088
+ props: [{ name: "value", type: "string", value: "dark" }],
4089
+ children: [{ type: "text", value: "Dark" }]
4090
+ }),
4091
+ createSelectItem({
4092
+ props: [{ name: "value", type: "string", value: "system" }],
4093
+ children: [{ type: "text", value: "System" }]
4094
+ })
4095
+ ]
4096
+ }
4097
+ ]
4098
+ }
4099
+ ]
4100
+ }
4101
+ ]
4102
+ };
4103
+ var metaSelectTrigger = {
4104
+ category: "hidden",
4105
+ type: "container",
4106
+ icon: TriggerIcon8,
4107
+ detachable: false,
4108
+ presetStyle: {
4109
+ button: button4
4110
+ }
4111
+ };
4112
+ var metaSelectValue = {
4113
+ category: "hidden",
4114
+ type: "container",
4115
+ label: "Value",
4116
+ icon: FormTextFieldIcon,
4117
+ detachable: false,
4118
+ presetStyle: {
4119
+ span
4120
+ }
4121
+ };
4122
+ var metaSelectContent = {
4123
+ category: "hidden",
4124
+ type: "container",
4125
+ icon: ContentIcon8,
4126
+ detachable: false,
4127
+ presetStyle: presetStyle9
4128
+ };
4129
+ var metaSelectViewport = {
4130
+ category: "hidden",
4131
+ type: "container",
4132
+ icon: ViewportIcon2,
4133
+ detachable: false,
4134
+ presetStyle: presetStyle9
4135
+ };
4136
+ var metaSelectItem = {
4137
+ category: "hidden",
4138
+ type: "container",
4139
+ icon: ItemIcon2,
4140
+ requiredAncestors: ["SelectViewport"],
4141
+ presetStyle: presetStyle9
4142
+ };
4143
+ var metaSelectItemIndicator = {
4144
+ category: "hidden",
4145
+ type: "container",
4146
+ label: "Indicator",
4147
+ icon: CheckMarkIcon,
4148
+ detachable: false,
4149
+ requiredAncestors: ["SelectItem"],
4150
+ presetStyle: {
4151
+ span
4152
+ }
4153
+ };
4154
+ var metaSelectItemText = {
4155
+ category: "hidden",
4156
+ type: "container",
4157
+ label: "Item Text",
4158
+ icon: TextIcon2,
4159
+ detachable: false,
4160
+ requiredAncestors: ["SelectItem"],
4161
+ presetStyle: {
4162
+ span
4163
+ }
4164
+ };
4165
+
4166
+ // src/switch.ws.ts
4167
+ import { SwitchIcon, TriggerIcon as TriggerIcon9 } from "@webstudio-is/icons/svg";
4168
+ import {
4169
+ defaultStates as defaultStates5
4170
+ } from "@webstudio-is/react-sdk";
4171
+ import { button as button5, span as span2 } from "@webstudio-is/react-sdk/css-normalize";
4172
+ var metaSwitch = {
4173
+ category: "radix",
4174
+ order: 11,
4175
+ type: "container",
4176
+ description: "A control that allows the user to toggle between checked and not checked.",
4177
+ icon: SwitchIcon,
4178
+ states: [
4179
+ ...defaultStates5,
4180
+ {
4181
+ label: "Checked",
4182
+ selector: "[data-state=checked]",
4183
+ category: "component-states"
4184
+ },
4185
+ {
4186
+ label: "Unchecked",
4187
+ selector: "[data-state=unchecked]",
4188
+ category: "component-states"
4189
+ }
4190
+ ],
4191
+ presetStyle: {
4192
+ button: [button5, buttonReset].flat()
4193
+ },
4194
+ template: [
4195
+ {
4196
+ type: "instance",
4197
+ component: "Switch",
4198
+ dataSources: {
4199
+ switchChecked: { type: "variable", initialValue: false }
4200
+ },
4201
+ props: [
4202
+ {
4203
+ name: "checked",
4204
+ type: "dataSource",
4205
+ dataSourceName: "switchChecked"
4206
+ },
4207
+ {
4208
+ name: "onCheckedChange",
4209
+ type: "action",
4210
+ value: [
4211
+ {
4212
+ type: "execute",
4213
+ args: ["checked"],
4214
+ code: `switchChecked = checked`
4215
+ }
4216
+ ]
4217
+ }
4218
+ ],
4219
+ // peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors
4220
+ // focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background
4221
+ // disabled:cursor-not-allowed disabled:opacity-50
4222
+ // data-[state=checked]:bg-primary
4223
+ // data-[state=unchecked]:bg-input
4224
+ styles: [
4225
+ // We are not supporting peer like styles yet
4226
+ inlineFlex(),
4227
+ property("height", "24px"),
4228
+ property("width", "44px"),
4229
+ shrink(0),
4230
+ cursor2("pointer"),
4231
+ items("center"),
4232
+ rounded("full"),
4233
+ border(2),
4234
+ border("transparent"),
4235
+ transition("all"),
4236
+ focusVisible(
4237
+ [outline("none"), ring("ring", 2, "background", 2)].flat()
4238
+ ),
4239
+ disabled([cursor2("not-allowed"), opacity2(50)].flat()),
4240
+ state([bg("primary")].flat(), "[data-state=checked]"),
4241
+ state([bg("input")].flat(), "[data-state=unchecked]")
4242
+ ].flat(),
4243
+ children: [
4244
+ {
4245
+ type: "instance",
4246
+ component: "SwitchThumb",
4247
+ // pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform
4248
+ // data-[state=checked]:translate-x-5
4249
+ // data-[state=unchecked]:translate-x-0
4250
+ styles: [
4251
+ pointerEvents("none"),
4252
+ block(),
4253
+ h(5),
4254
+ w(5),
4255
+ rounded("full"),
4256
+ bg("background"),
4257
+ shadow("lg"),
4258
+ transition("transform"),
4259
+ state(
4260
+ [property("transform", "translateX(20px)")].flat(),
4261
+ "[data-state=checked]"
4262
+ ),
4263
+ state(
4264
+ [property("transform", "translateX(0px)")].flat(),
4265
+ "[data-state=unchecked]"
4266
+ )
4267
+ ].flat(),
4268
+ children: []
4269
+ }
4270
+ ]
4271
+ }
4272
+ ]
4273
+ };
4274
+ var metaSwitchThumb = {
4275
+ category: "hidden",
4276
+ type: "container",
4277
+ detachable: false,
4278
+ icon: TriggerIcon9,
4279
+ states: [
4280
+ ...defaultStates5,
4281
+ {
4282
+ label: "Checked",
4283
+ selector: "[data-state=checked]",
4284
+ category: "component-states"
4285
+ },
4286
+ {
4287
+ label: "Unchecked",
4288
+ selector: "[data-state=unchecked]",
4289
+ category: "component-states"
4290
+ }
4291
+ ],
4292
+ presetStyle: {
4293
+ span: span2
4294
+ }
4295
+ };
4296
+
4297
+ // src/checkbox.ws.ts
4298
+ import {
4299
+ CheckMarkIcon as CheckMarkIcon2,
4300
+ CheckboxCheckedIcon,
4301
+ TriggerIcon as TriggerIcon10
4302
+ } from "@webstudio-is/icons/svg";
4303
+ import {
4304
+ defaultStates as defaultStates6
4305
+ } from "@webstudio-is/react-sdk";
4306
+ import { button as button6, span as span3 } from "@webstudio-is/react-sdk/css-normalize";
4307
+ var metaCheckbox = {
4308
+ category: "radix",
4309
+ order: 101,
4310
+ type: "container",
4311
+ icon: CheckboxCheckedIcon,
4312
+ description: "Use within a form to allow your users to toggle between checked and not checked. Group checkboxes by matching their \u201CName\u201D properties. Unlike radios, any number of checkboxes in a group can be checked.",
4313
+ states: [
4314
+ ...defaultStates6,
4315
+ {
4316
+ label: "Checked",
4317
+ selector: "[data-state=checked]",
4318
+ category: "component-states"
4319
+ },
4320
+ {
4321
+ label: "Unchecked",
4322
+ selector: "[data-state=unchecked]",
4323
+ category: "component-states"
4324
+ }
4325
+ ],
4326
+ presetStyle: {
4327
+ button: [button6, buttonReset].flat()
4328
+ },
4329
+ template: [
4330
+ {
4331
+ type: "instance",
4332
+ component: "Label",
4333
+ label: "Checkbox Field",
4334
+ styles: [flex(), gap(2), items("center")].flat(),
4335
+ children: [
4336
+ {
4337
+ type: "instance",
4338
+ component: "Checkbox",
4339
+ dataSources: {
4340
+ checkboxChecked: { type: "variable", initialValue: false }
4341
+ },
4342
+ props: [
4343
+ {
4344
+ name: "checked",
4345
+ type: "dataSource",
4346
+ dataSourceName: "checkboxChecked"
4347
+ },
4348
+ {
4349
+ name: "onCheckedChange",
4350
+ type: "action",
4351
+ value: [
4352
+ {
4353
+ type: "execute",
4354
+ args: ["checked"],
4355
+ code: `checkboxChecked = checked`
4356
+ }
4357
+ ]
4358
+ }
4359
+ ],
4360
+ // peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background
4361
+ // focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
4362
+ // disabled:cursor-not-allowed disabled:opacity-50
4363
+ // data-[state=checked]:bg-primary
4364
+ // data-[state=checked]:text-primary-foreground",
4365
+ styles: [
4366
+ // We are not supporting peer like styles yet
4367
+ h(4),
4368
+ w(4),
4369
+ shrink(0),
4370
+ rounded("sm"),
4371
+ border(),
4372
+ border("primary"),
4373
+ focusVisible(
4374
+ [outline("none"), ring("ring", 2, "background", 2)].flat()
4375
+ ),
4376
+ disabled([cursor2("not-allowed"), opacity2(50)].flat()),
4377
+ state(
4378
+ [bg("primary"), text("primaryForeground")].flat(),
4379
+ "[data-state=checked]"
4380
+ )
4381
+ ].flat(),
4382
+ children: [
4383
+ {
4384
+ type: "instance",
4385
+ component: "CheckboxIndicator",
4386
+ // flex items-center justify-center text-current
4387
+ styles: [
4388
+ flex(),
4389
+ items("center"),
4390
+ justify("center"),
4391
+ text("current")
4392
+ ].flat(),
4393
+ children: [
4394
+ {
4395
+ type: "instance",
4396
+ component: "HtmlEmbed",
4397
+ label: "Indicator Icon",
4398
+ props: [
4399
+ {
4400
+ type: "string",
4401
+ name: "code",
4402
+ value: CheckMarkIcon2
4403
+ }
4404
+ ],
4405
+ children: []
4406
+ }
4407
+ ]
4408
+ }
4409
+ ]
4410
+ },
4411
+ {
4412
+ type: "instance",
4413
+ component: "Text",
4414
+ label: "Checkbox Label",
4415
+ props: [{ name: "tag", type: "string", value: "span" }],
4416
+ children: [{ type: "text", value: "Checkbox" }]
4417
+ }
4418
+ ]
4419
+ }
4420
+ ]
4421
+ };
4422
+ var metaCheckboxIndicator = {
4423
+ category: "hidden",
4424
+ type: "container",
4425
+ detachable: false,
4426
+ icon: TriggerIcon10,
4427
+ states: defaultStates6,
4428
+ presetStyle: {
4429
+ span: span3
4430
+ }
4431
+ };
4432
+
4433
+ // src/radio-group.ws.ts
4434
+ import {
4435
+ ItemIcon as ItemIcon3,
4436
+ RadioCheckedIcon,
4437
+ RadioDotIcon,
4438
+ TriggerIcon as TriggerIcon11
4439
+ } from "@webstudio-is/icons/svg";
4440
+ import {
4441
+ defaultStates as defaultStates7
4442
+ } from "@webstudio-is/react-sdk";
4443
+ import { button as button7, div as div9, span as span4 } from "@webstudio-is/react-sdk/css-normalize";
4444
+ var createRadioGroupItem = ({
4445
+ value,
4446
+ label: label2
4447
+ }) => ({
4448
+ type: "instance",
4449
+ component: "Label",
4450
+ // flex items-center space-x-2
4451
+ styles: [flex(), items("center"), gap(2)].flat(),
4452
+ children: [
4453
+ {
4454
+ type: "instance",
4455
+ component: "RadioGroupItem",
4456
+ props: [{ name: "value", type: "string", value }],
4457
+ // aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background
4458
+ // focus:outline-none
4459
+ // focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
4460
+ // disabled:cursor-not-allowed disabled:opacity-50
4461
+ styles: [
4462
+ aspect("square"),
4463
+ h(4),
4464
+ w(4),
4465
+ rounded("full"),
4466
+ border(),
4467
+ border("primary"),
4468
+ text("primary"),
4469
+ focusVisible(
4470
+ [outline("none"), ring("ring", 2, "background", 2)].flat()
4471
+ ),
4472
+ disabled([cursor2("not-allowed"), opacity2(50)].flat())
4473
+ ].flat(),
4474
+ children: [
4475
+ {
4476
+ type: "instance",
4477
+ component: "RadioGroupIndicator",
4478
+ children: [
4479
+ {
4480
+ type: "instance",
4481
+ component: "HtmlEmbed",
4482
+ label: "Indicator Icon",
4483
+ props: [
4484
+ {
4485
+ type: "string",
4486
+ name: "code",
4487
+ value: RadioDotIcon
4488
+ }
4489
+ ],
4490
+ children: []
4491
+ }
4492
+ ]
4493
+ }
4494
+ ]
4495
+ },
4496
+ {
4497
+ type: "instance",
4498
+ component: "Text",
4499
+ children: [{ type: "text", value: label2 }]
4500
+ }
4501
+ ]
4502
+ });
4503
+ var metaRadioGroup = {
4504
+ category: "radix",
4505
+ order: 100,
4506
+ type: "container",
4507
+ description: "A set of checkable buttons\u2014known as radio buttons\u2014where no more than one of the buttons can be checked at a time.",
4508
+ icon: RadioCheckedIcon,
4509
+ states: [
4510
+ ...defaultStates7,
4511
+ {
4512
+ label: "Checked",
4513
+ selector: "[data-state=checked]",
4514
+ category: "component-states"
4515
+ },
4516
+ {
4517
+ label: "Unchecked",
4518
+ selector: "[data-state=unchecked]",
4519
+ category: "component-states"
4520
+ }
4521
+ ],
4522
+ presetStyle: {
4523
+ div: div9
4524
+ },
4525
+ template: [
4526
+ {
4527
+ type: "instance",
4528
+ component: "RadioGroup",
4529
+ dataSources: {
4530
+ radioGroupValue: { type: "variable", initialValue: "" }
4531
+ },
4532
+ // grid gap-2
4533
+ styles: [flex(), flex("col"), gap(2)].flat(),
4534
+ props: [
4535
+ {
4536
+ type: "dataSource",
4537
+ name: "value",
4538
+ dataSourceName: "radioGroupValue"
4539
+ },
4540
+ {
4541
+ name: "onValueChange",
4542
+ type: "action",
4543
+ value: [
4544
+ {
4545
+ type: "execute",
4546
+ args: ["value"],
4547
+ code: `radioGroupValue = value`
4548
+ }
4549
+ ]
4550
+ }
4551
+ ],
4552
+ children: [
4553
+ createRadioGroupItem({ value: "default", label: "Default" }),
4554
+ createRadioGroupItem({ value: "comfortable", label: "Comfortable" }),
4555
+ createRadioGroupItem({ value: "compact", label: "Compact" })
4556
+ ]
4557
+ }
4558
+ ]
4559
+ };
4560
+ var metaRadioGroupItem = {
4561
+ category: "hidden",
4562
+ type: "container",
4563
+ requiredAncestors: ["RadioGroup"],
4564
+ icon: ItemIcon3,
4565
+ states: defaultStates7,
4566
+ presetStyle: {
4567
+ button: [button7, buttonReset].flat()
4568
+ }
4569
+ };
4570
+ var metaRadioGroupIndicator = {
4571
+ category: "hidden",
4572
+ type: "container",
4573
+ detachable: false,
4574
+ icon: TriggerIcon11,
4575
+ states: defaultStates7,
4576
+ presetStyle: {
4577
+ span: span4
4578
+ }
4579
+ };
2
4580
  export {
4581
+ metaAccordion as Accordion,
4582
+ metaAccordionContent as AccordionContent,
4583
+ metaAccordionHeader as AccordionHeader,
4584
+ metaAccordionItem as AccordionItem,
4585
+ metaAccordionTrigger as AccordionTrigger,
4586
+ metaCheckbox as Checkbox,
4587
+ metaCheckboxIndicator as CheckboxIndicator,
3
4588
  metaCollapsible as Collapsible,
4589
+ metaCollapsibleContent as CollapsibleContent,
4
4590
  metaCollapsibleTrigger as CollapsibleTrigger,
5
- metaCollapsibleContent as CollapsibleContent
6
- } from "./collapsible.ws";
7
- export {
8
4591
  metaDialog as Dialog,
9
- metaDialogTrigger as DialogTrigger,
10
- metaDialogOverlay as DialogOverlay,
11
- metaDialogContent as DialogContent,
12
4592
  metaDialogClose as DialogClose,
4593
+ metaDialogContent as DialogContent,
4594
+ metaDialogDescription as DialogDescription,
4595
+ metaDialogOverlay as DialogOverlay,
13
4596
  metaDialogTitle as DialogTitle,
14
- metaDialogDescription as DialogDescription
15
- } from "./dialog.ws";
16
- export { meta as Sheet } from "./sheet.ws";
17
- export {
18
- metaPopover as Popover,
19
- metaPopoverTrigger as PopoverTrigger,
20
- metaPopoverContent as PopoverContent
21
- } from "./popover.ws";
22
- export {
23
- metaTooltip as Tooltip,
24
- metaTooltipTrigger as TooltipTrigger,
25
- metaTooltipContent as TooltipContent
26
- } from "./tooltip.ws";
27
- export {
28
- metaTabs as Tabs,
29
- metaTabsList as TabsList,
30
- metaTabsTrigger as TabsTrigger,
31
- metaTabsContent as TabsContent
32
- } from "./tabs.ws";
33
- export { meta as Label } from "./label.ws";
34
- export {
35
- metaAccordion as Accordion,
36
- metaAccordionItem as AccordionItem,
37
- metaAccordionHeader as AccordionHeader,
38
- metaAccordionTrigger as AccordionTrigger,
39
- metaAccordionContent as AccordionContent
40
- } from "./accordion.ws";
41
- export {
4597
+ metaDialogTrigger as DialogTrigger,
4598
+ meta2 as Label,
42
4599
  metaNavigationMenu as NavigationMenu,
43
- metaNavigationMenuList as NavigationMenuList,
44
- metaNavigationMenuItem as NavigationMenuItem,
45
- metaNavigationMenuTrigger as NavigationMenuTrigger,
46
4600
  metaNavigationMenuContent as NavigationMenuContent,
4601
+ metaNavigationMenuItem as NavigationMenuItem,
47
4602
  metaNavigationMenuLink as NavigationMenuLink,
48
- metaNavigationMenuViewport as NavigationMenuViewport
49
- } from "./navigation-menu.ws";
50
- export {
4603
+ metaNavigationMenuList as NavigationMenuList,
4604
+ metaNavigationMenuTrigger as NavigationMenuTrigger,
4605
+ metaNavigationMenuViewport as NavigationMenuViewport,
4606
+ metaPopover as Popover,
4607
+ metaPopoverContent as PopoverContent,
4608
+ metaPopoverTrigger as PopoverTrigger,
4609
+ metaRadioGroup as RadioGroup,
4610
+ metaRadioGroupIndicator as RadioGroupIndicator,
4611
+ metaRadioGroupItem as RadioGroupItem,
51
4612
  metaSelect as Select,
52
- metaSelectTrigger as SelectTrigger,
53
- metaSelectValue as SelectValue,
54
- metaSelectViewport as SelectViewport,
55
4613
  metaSelectContent as SelectContent,
56
4614
  metaSelectItem as SelectItem,
57
4615
  metaSelectItemIndicator as SelectItemIndicator,
58
- metaSelectItemText as SelectItemText
59
- } from "./select.ws";
60
- export {
4616
+ metaSelectItemText as SelectItemText,
4617
+ metaSelectTrigger as SelectTrigger,
4618
+ metaSelectValue as SelectValue,
4619
+ metaSelectViewport as SelectViewport,
4620
+ meta as Sheet,
61
4621
  metaSwitch as Switch,
62
- metaSwitchThumb as SwitchThumb
63
- } from "./switch.ws";
64
- export {
65
- metaCheckbox as Checkbox,
66
- metaCheckboxIndicator as CheckboxIndicator
67
- } from "./checkbox.ws";
68
- export {
69
- metaRadioGroup as RadioGroup,
70
- metaRadioGroupItem as RadioGroupItem,
71
- metaRadioGroupIndicator as RadioGroupIndicator
72
- } from "./radio-group.ws";
4622
+ metaSwitchThumb as SwitchThumb,
4623
+ metaTabs as Tabs,
4624
+ metaTabsContent as TabsContent,
4625
+ metaTabsList as TabsList,
4626
+ metaTabsTrigger as TabsTrigger,
4627
+ metaTooltip as Tooltip,
4628
+ metaTooltipContent as TooltipContent,
4629
+ metaTooltipTrigger as TooltipTrigger
4630
+ };