magick-ui 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1224,6 +1224,3070 @@ var component_schema_default = {
1224
1224
  }
1225
1225
  },
1226
1226
  $schema: "http://json-schema.org/draft-07/schema#"
1227
+ },
1228
+ text: {
1229
+ $ref: "#/definitions/text",
1230
+ definitions: {
1231
+ text: {
1232
+ type: "object",
1233
+ properties: {
1234
+ type: {
1235
+ type: "string",
1236
+ const: "text"
1237
+ },
1238
+ props: {
1239
+ type: "object",
1240
+ properties: {
1241
+ children: {
1242
+ type: "string",
1243
+ description: "Text content"
1244
+ }
1245
+ },
1246
+ additionalProperties: false
1247
+ },
1248
+ children: {
1249
+ type: "array",
1250
+ items: {
1251
+ type: "object",
1252
+ properties: {
1253
+ type: {
1254
+ type: "string"
1255
+ },
1256
+ props: {
1257
+ type: "object",
1258
+ additionalProperties: {}
1259
+ },
1260
+ children: {
1261
+ type: "array",
1262
+ items: {}
1263
+ }
1264
+ },
1265
+ required: [
1266
+ "type"
1267
+ ],
1268
+ additionalProperties: false
1269
+ }
1270
+ }
1271
+ },
1272
+ required: [
1273
+ "type"
1274
+ ],
1275
+ additionalProperties: false,
1276
+ description: "A paragraph of text"
1277
+ }
1278
+ },
1279
+ $schema: "http://json-schema.org/draft-07/schema#"
1280
+ },
1281
+ title: {
1282
+ $ref: "#/definitions/title",
1283
+ definitions: {
1284
+ title: {
1285
+ type: "object",
1286
+ properties: {
1287
+ type: {
1288
+ type: "string",
1289
+ const: "title"
1290
+ },
1291
+ props: {
1292
+ type: "object",
1293
+ properties: {
1294
+ children: {
1295
+ type: "string",
1296
+ description: "Heading text"
1297
+ }
1298
+ },
1299
+ additionalProperties: false
1300
+ },
1301
+ children: {
1302
+ type: "array",
1303
+ items: {
1304
+ type: "object",
1305
+ properties: {
1306
+ type: {
1307
+ type: "string"
1308
+ },
1309
+ props: {
1310
+ type: "object",
1311
+ additionalProperties: {}
1312
+ },
1313
+ children: {
1314
+ type: "array",
1315
+ items: {}
1316
+ }
1317
+ },
1318
+ required: [
1319
+ "type"
1320
+ ],
1321
+ additionalProperties: false
1322
+ }
1323
+ }
1324
+ },
1325
+ required: [
1326
+ "type"
1327
+ ],
1328
+ additionalProperties: false,
1329
+ description: "A heading / title element"
1330
+ }
1331
+ },
1332
+ $schema: "http://json-schema.org/draft-07/schema#"
1333
+ },
1334
+ label: {
1335
+ $ref: "#/definitions/label",
1336
+ definitions: {
1337
+ label: {
1338
+ type: "object",
1339
+ properties: {
1340
+ type: {
1341
+ type: "string",
1342
+ const: "label"
1343
+ },
1344
+ props: {
1345
+ type: "object",
1346
+ properties: {
1347
+ children: {
1348
+ type: "string",
1349
+ description: "Label text"
1350
+ },
1351
+ htmlFor: {
1352
+ type: "string",
1353
+ description: "ID of the form element this label is for"
1354
+ }
1355
+ },
1356
+ additionalProperties: false
1357
+ },
1358
+ children: {
1359
+ type: "array",
1360
+ items: {
1361
+ type: "object",
1362
+ properties: {
1363
+ type: {
1364
+ type: "string"
1365
+ },
1366
+ props: {
1367
+ type: "object",
1368
+ additionalProperties: {}
1369
+ },
1370
+ children: {
1371
+ type: "array",
1372
+ items: {}
1373
+ }
1374
+ },
1375
+ required: [
1376
+ "type"
1377
+ ],
1378
+ additionalProperties: false
1379
+ }
1380
+ }
1381
+ },
1382
+ required: [
1383
+ "type"
1384
+ ],
1385
+ additionalProperties: false,
1386
+ description: "A form label element"
1387
+ }
1388
+ },
1389
+ $schema: "http://json-schema.org/draft-07/schema#"
1390
+ },
1391
+ badge: {
1392
+ $ref: "#/definitions/badge",
1393
+ definitions: {
1394
+ badge: {
1395
+ type: "object",
1396
+ properties: {
1397
+ type: {
1398
+ type: "string",
1399
+ const: "badge"
1400
+ },
1401
+ props: {
1402
+ type: "object",
1403
+ properties: {
1404
+ children: {
1405
+ type: "string",
1406
+ description: "Badge text"
1407
+ },
1408
+ type: {
1409
+ type: "string",
1410
+ enum: [
1411
+ "primary-hard",
1412
+ "primary-soft",
1413
+ "destructive-hard",
1414
+ "destructive-soft",
1415
+ "secondary-hard",
1416
+ "secondary-soft"
1417
+ ],
1418
+ description: "Badge style. Defaults to 'primary-hard'"
1419
+ },
1420
+ size: {
1421
+ type: "string",
1422
+ enum: [
1423
+ "sm",
1424
+ "md"
1425
+ ],
1426
+ description: "Badge size. Defaults to 'sm'"
1427
+ },
1428
+ rounded: {
1429
+ type: "boolean",
1430
+ description: "Fully rounded pill shape"
1431
+ }
1432
+ },
1433
+ additionalProperties: false
1434
+ },
1435
+ children: {
1436
+ type: "array",
1437
+ items: {
1438
+ type: "object",
1439
+ properties: {
1440
+ type: {
1441
+ type: "string"
1442
+ },
1443
+ props: {
1444
+ type: "object",
1445
+ additionalProperties: {}
1446
+ },
1447
+ children: {
1448
+ type: "array",
1449
+ items: {}
1450
+ }
1451
+ },
1452
+ required: [
1453
+ "type"
1454
+ ],
1455
+ additionalProperties: false
1456
+ }
1457
+ }
1458
+ },
1459
+ required: [
1460
+ "type"
1461
+ ],
1462
+ additionalProperties: false,
1463
+ description: "A small status badge / label"
1464
+ }
1465
+ },
1466
+ $schema: "http://json-schema.org/draft-07/schema#"
1467
+ },
1468
+ tag: {
1469
+ $ref: "#/definitions/tag",
1470
+ definitions: {
1471
+ tag: {
1472
+ type: "object",
1473
+ properties: {
1474
+ type: {
1475
+ type: "string",
1476
+ const: "tag"
1477
+ },
1478
+ props: {
1479
+ type: "object",
1480
+ properties: {
1481
+ label: {
1482
+ type: "string",
1483
+ description: "Tag text"
1484
+ },
1485
+ variant: {
1486
+ type: "string",
1487
+ enum: [
1488
+ "primary",
1489
+ "secondary",
1490
+ "destructive"
1491
+ ],
1492
+ description: "Tag color variant. Defaults to 'primary'"
1493
+ }
1494
+ },
1495
+ required: [
1496
+ "label"
1497
+ ],
1498
+ additionalProperties: false
1499
+ }
1500
+ },
1501
+ required: [
1502
+ "type",
1503
+ "props"
1504
+ ],
1505
+ additionalProperties: false,
1506
+ description: "A colored tag / pill"
1507
+ }
1508
+ },
1509
+ $schema: "http://json-schema.org/draft-07/schema#"
1510
+ },
1511
+ chip: {
1512
+ $ref: "#/definitions/chip",
1513
+ definitions: {
1514
+ chip: {
1515
+ type: "object",
1516
+ properties: {
1517
+ type: {
1518
+ type: "string",
1519
+ const: "chip"
1520
+ },
1521
+ props: {
1522
+ type: "object",
1523
+ properties: {
1524
+ label: {
1525
+ type: "string",
1526
+ description: "Chip text"
1527
+ },
1528
+ type: {
1529
+ type: "string",
1530
+ enum: [
1531
+ "rounded",
1532
+ "rectangle"
1533
+ ],
1534
+ description: "Chip shape. Defaults to 'rounded'"
1535
+ },
1536
+ color: {
1537
+ type: "string",
1538
+ enum: [
1539
+ "slate",
1540
+ "red",
1541
+ "orange",
1542
+ "amber",
1543
+ "yellow",
1544
+ "lime",
1545
+ "green",
1546
+ "emerald",
1547
+ "teal",
1548
+ "cyan",
1549
+ "sky",
1550
+ "blue",
1551
+ "indigo",
1552
+ "violet",
1553
+ "purple",
1554
+ "fuchsia",
1555
+ "pink",
1556
+ "rose"
1557
+ ],
1558
+ description: "Chip color. Defaults to 'slate'"
1559
+ },
1560
+ dot: {
1561
+ type: "boolean",
1562
+ description: "Show a colored dot indicator"
1563
+ },
1564
+ avatar: {
1565
+ type: "string",
1566
+ description: "Avatar image URL shown inside the chip"
1567
+ }
1568
+ },
1569
+ required: [
1570
+ "label"
1571
+ ],
1572
+ additionalProperties: false
1573
+ }
1574
+ },
1575
+ required: [
1576
+ "type",
1577
+ "props"
1578
+ ],
1579
+ additionalProperties: false,
1580
+ description: "A compact chip element with optional color dot or avatar"
1581
+ }
1582
+ },
1583
+ $schema: "http://json-schema.org/draft-07/schema#"
1584
+ },
1585
+ alert: {
1586
+ $ref: "#/definitions/alert",
1587
+ definitions: {
1588
+ alert: {
1589
+ type: "object",
1590
+ properties: {
1591
+ type: {
1592
+ type: "string",
1593
+ const: "alert"
1594
+ },
1595
+ props: {
1596
+ type: "object",
1597
+ properties: {
1598
+ variant: {
1599
+ type: "string",
1600
+ enum: [
1601
+ "default",
1602
+ "secondary",
1603
+ "destructive"
1604
+ ],
1605
+ description: "Alert style. Defaults to 'default'"
1606
+ },
1607
+ title: {
1608
+ type: "string",
1609
+ description: "Alert heading"
1610
+ },
1611
+ description: {
1612
+ type: "string",
1613
+ description: "Alert body text"
1614
+ }
1615
+ },
1616
+ additionalProperties: false
1617
+ },
1618
+ children: {
1619
+ type: "array",
1620
+ items: {
1621
+ type: "object",
1622
+ properties: {
1623
+ type: {
1624
+ type: "string"
1625
+ },
1626
+ props: {
1627
+ type: "object",
1628
+ additionalProperties: {}
1629
+ },
1630
+ children: {
1631
+ type: "array",
1632
+ items: {}
1633
+ }
1634
+ },
1635
+ required: [
1636
+ "type"
1637
+ ],
1638
+ additionalProperties: false
1639
+ }
1640
+ }
1641
+ },
1642
+ required: [
1643
+ "type"
1644
+ ],
1645
+ additionalProperties: false,
1646
+ description: "An alert / notice banner"
1647
+ }
1648
+ },
1649
+ $schema: "http://json-schema.org/draft-07/schema#"
1650
+ },
1651
+ skeleton: {
1652
+ $ref: "#/definitions/skeleton",
1653
+ definitions: {
1654
+ skeleton: {
1655
+ type: "object",
1656
+ properties: {
1657
+ type: {
1658
+ type: "string",
1659
+ const: "skeleton"
1660
+ },
1661
+ props: {
1662
+ type: "object",
1663
+ properties: {
1664
+ className: {
1665
+ type: "string",
1666
+ description: "Tailwind classes to control width/height, e.g. 'h-4 w-[250px]'"
1667
+ }
1668
+ },
1669
+ additionalProperties: false
1670
+ }
1671
+ },
1672
+ required: [
1673
+ "type"
1674
+ ],
1675
+ additionalProperties: false,
1676
+ description: "A loading placeholder skeleton"
1677
+ }
1678
+ },
1679
+ $schema: "http://json-schema.org/draft-07/schema#"
1680
+ },
1681
+ "progress-indicator": {
1682
+ $ref: "#/definitions/progress-indicator",
1683
+ definitions: {
1684
+ "progress-indicator": {
1685
+ type: "object",
1686
+ properties: {
1687
+ type: {
1688
+ type: "string",
1689
+ const: "progress-indicator"
1690
+ },
1691
+ props: {
1692
+ type: "object",
1693
+ properties: {
1694
+ value: {
1695
+ type: "number",
1696
+ description: "Current progress value"
1697
+ },
1698
+ max: {
1699
+ type: "number",
1700
+ description: "Maximum value. Defaults to 100"
1701
+ },
1702
+ showPercentage: {
1703
+ type: "boolean",
1704
+ description: "Show percentage text. Defaults to true"
1705
+ },
1706
+ variant: {
1707
+ type: "string",
1708
+ enum: [
1709
+ "bar",
1710
+ "circle"
1711
+ ],
1712
+ description: "Display style. Defaults to 'bar'"
1713
+ }
1714
+ },
1715
+ required: [
1716
+ "value"
1717
+ ],
1718
+ additionalProperties: false
1719
+ }
1720
+ },
1721
+ required: [
1722
+ "type",
1723
+ "props"
1724
+ ],
1725
+ additionalProperties: false,
1726
+ description: "A progress bar or circular progress indicator"
1727
+ }
1728
+ },
1729
+ $schema: "http://json-schema.org/draft-07/schema#"
1730
+ },
1731
+ avatar: {
1732
+ $ref: "#/definitions/avatar",
1733
+ definitions: {
1734
+ avatar: {
1735
+ type: "object",
1736
+ properties: {
1737
+ type: {
1738
+ type: "string",
1739
+ const: "avatar"
1740
+ },
1741
+ props: {
1742
+ type: "object",
1743
+ properties: {
1744
+ variant: {
1745
+ type: "string",
1746
+ enum: [
1747
+ "image",
1748
+ "text",
1749
+ "placeholder"
1750
+ ],
1751
+ description: "Avatar display mode"
1752
+ },
1753
+ fallback: {
1754
+ type: "string",
1755
+ description: "Fallback text (initials) when image is unavailable"
1756
+ },
1757
+ imgsrc: {
1758
+ type: "string",
1759
+ description: "Image URL (required when variant is 'image')"
1760
+ },
1761
+ size: {
1762
+ type: "string",
1763
+ enum: [
1764
+ "xs",
1765
+ "sm",
1766
+ "md",
1767
+ "lg",
1768
+ "xl",
1769
+ "2xl",
1770
+ "3xl",
1771
+ "4xl",
1772
+ "5xl"
1773
+ ],
1774
+ description: "Avatar size. Defaults to 'md'"
1775
+ },
1776
+ status: {
1777
+ type: "string",
1778
+ enum: [
1779
+ "active",
1780
+ "inactive"
1781
+ ],
1782
+ description: "Online status indicator"
1783
+ }
1784
+ },
1785
+ required: [
1786
+ "variant",
1787
+ "fallback"
1788
+ ],
1789
+ additionalProperties: false
1790
+ }
1791
+ },
1792
+ required: [
1793
+ "type",
1794
+ "props"
1795
+ ],
1796
+ additionalProperties: false,
1797
+ description: "A user avatar displaying an image, initials, or placeholder"
1798
+ }
1799
+ },
1800
+ $schema: "http://json-schema.org/draft-07/schema#"
1801
+ },
1802
+ "avatar-list-item": {
1803
+ $ref: "#/definitions/avatar-list-item",
1804
+ definitions: {
1805
+ "avatar-list-item": {
1806
+ type: "object",
1807
+ properties: {
1808
+ type: {
1809
+ type: "string",
1810
+ const: "avatar-list-item"
1811
+ },
1812
+ props: {
1813
+ type: "object",
1814
+ properties: {
1815
+ avatar: {
1816
+ type: "string",
1817
+ description: "Avatar image URL"
1818
+ },
1819
+ name: {
1820
+ type: "string",
1821
+ description: "Display name"
1822
+ },
1823
+ email: {
1824
+ type: "string",
1825
+ description: "Email address"
1826
+ },
1827
+ isMe: {
1828
+ type: "boolean",
1829
+ description: "Highlight as current user"
1830
+ }
1831
+ },
1832
+ required: [
1833
+ "avatar",
1834
+ "name",
1835
+ "email"
1836
+ ],
1837
+ additionalProperties: false
1838
+ }
1839
+ },
1840
+ required: [
1841
+ "type",
1842
+ "props"
1843
+ ],
1844
+ additionalProperties: false,
1845
+ description: "An avatar with name and email, typically used in lists"
1846
+ }
1847
+ },
1848
+ $schema: "http://json-schema.org/draft-07/schema#"
1849
+ },
1850
+ media: {
1851
+ $ref: "#/definitions/media",
1852
+ definitions: {
1853
+ media: {
1854
+ type: "object",
1855
+ properties: {
1856
+ type: {
1857
+ type: "string",
1858
+ const: "media"
1859
+ },
1860
+ props: {
1861
+ type: "object",
1862
+ properties: {
1863
+ src: {
1864
+ type: "string",
1865
+ description: "Media source URL"
1866
+ },
1867
+ alt: {
1868
+ type: "string",
1869
+ description: "Alt text for images"
1870
+ },
1871
+ type: {
1872
+ type: "string",
1873
+ enum: [
1874
+ "image",
1875
+ "video"
1876
+ ],
1877
+ description: "Media type. Defaults to 'image'"
1878
+ },
1879
+ aspectRatio: {
1880
+ type: "string",
1881
+ enum: [
1882
+ "1:1",
1883
+ "16:9",
1884
+ "9:16",
1885
+ "4:3",
1886
+ "3:4"
1887
+ ],
1888
+ description: "Fixed aspect ratio"
1889
+ },
1890
+ objectFit: {
1891
+ type: "string",
1892
+ enum: [
1893
+ "cover",
1894
+ "contain",
1895
+ "fill",
1896
+ "scale-down",
1897
+ "none"
1898
+ ],
1899
+ description: "How the media fills its container. Defaults to 'cover'"
1900
+ },
1901
+ rounded: {
1902
+ type: "string",
1903
+ enum: [
1904
+ "none",
1905
+ "sm",
1906
+ "md",
1907
+ "lg",
1908
+ "xl",
1909
+ "2xl",
1910
+ "full"
1911
+ ],
1912
+ description: "Border radius"
1913
+ },
1914
+ loading: {
1915
+ type: "string",
1916
+ enum: [
1917
+ "lazy",
1918
+ "eager"
1919
+ ],
1920
+ description: "Loading strategy. Defaults to 'lazy'"
1921
+ }
1922
+ },
1923
+ required: [
1924
+ "src"
1925
+ ],
1926
+ additionalProperties: false
1927
+ }
1928
+ },
1929
+ required: [
1930
+ "type",
1931
+ "props"
1932
+ ],
1933
+ additionalProperties: false,
1934
+ description: "An image or video media element"
1935
+ }
1936
+ },
1937
+ $schema: "http://json-schema.org/draft-07/schema#"
1938
+ },
1939
+ grid: {
1940
+ $ref: "#/definitions/grid",
1941
+ definitions: {
1942
+ grid: {
1943
+ type: "object",
1944
+ properties: {
1945
+ type: {
1946
+ type: "string",
1947
+ const: "grid"
1948
+ },
1949
+ props: {
1950
+ type: "object",
1951
+ properties: {
1952
+ className: {
1953
+ type: "string",
1954
+ description: "Tailwind grid classes, e.g. 'grid-cols-2 gap-4'"
1955
+ }
1956
+ },
1957
+ additionalProperties: false
1958
+ },
1959
+ children: {
1960
+ type: "array",
1961
+ items: {
1962
+ type: "object",
1963
+ properties: {
1964
+ type: {
1965
+ type: "string"
1966
+ },
1967
+ props: {
1968
+ type: "object",
1969
+ additionalProperties: {}
1970
+ },
1971
+ children: {
1972
+ type: "array",
1973
+ items: {}
1974
+ }
1975
+ },
1976
+ required: [
1977
+ "type"
1978
+ ],
1979
+ additionalProperties: false
1980
+ },
1981
+ description: "Grid items"
1982
+ }
1983
+ },
1984
+ required: [
1985
+ "type"
1986
+ ],
1987
+ additionalProperties: false,
1988
+ description: "A CSS grid layout container"
1989
+ }
1990
+ },
1991
+ $schema: "http://json-schema.org/draft-07/schema#"
1992
+ },
1993
+ accordion: {
1994
+ $ref: "#/definitions/accordion",
1995
+ definitions: {
1996
+ accordion: {
1997
+ type: "object",
1998
+ properties: {
1999
+ type: {
2000
+ type: "string",
2001
+ const: "accordion"
2002
+ },
2003
+ props: {
2004
+ type: "object",
2005
+ properties: {
2006
+ type: {
2007
+ type: "string",
2008
+ enum: [
2009
+ "single",
2010
+ "multiple"
2011
+ ],
2012
+ description: "Allow one or multiple items open. Defaults to 'single'"
2013
+ },
2014
+ collapsible: {
2015
+ type: "boolean",
2016
+ description: "Allow collapsing all items"
2017
+ },
2018
+ defaultValue: {
2019
+ anyOf: [
2020
+ {
2021
+ type: "string"
2022
+ },
2023
+ {
2024
+ type: "array",
2025
+ items: {
2026
+ type: "string"
2027
+ }
2028
+ }
2029
+ ],
2030
+ description: "Initially open item value(s)"
2031
+ }
2032
+ },
2033
+ additionalProperties: false
2034
+ },
2035
+ children: {
2036
+ type: "array",
2037
+ items: {
2038
+ type: "object",
2039
+ properties: {
2040
+ type: {
2041
+ type: "string"
2042
+ },
2043
+ props: {
2044
+ type: "object",
2045
+ additionalProperties: {}
2046
+ },
2047
+ children: {
2048
+ type: "array",
2049
+ items: {}
2050
+ }
2051
+ },
2052
+ required: [
2053
+ "type"
2054
+ ],
2055
+ additionalProperties: false
2056
+ },
2057
+ description: "Compose with accordion-item children"
2058
+ }
2059
+ },
2060
+ required: [
2061
+ "type"
2062
+ ],
2063
+ additionalProperties: false,
2064
+ description: "A collapsible accordion container"
2065
+ }
2066
+ },
2067
+ $schema: "http://json-schema.org/draft-07/schema#"
2068
+ },
2069
+ "accordion-item": {
2070
+ $ref: "#/definitions/accordion-item",
2071
+ definitions: {
2072
+ "accordion-item": {
2073
+ type: "object",
2074
+ properties: {
2075
+ type: {
2076
+ type: "string",
2077
+ const: "accordion-item"
2078
+ },
2079
+ props: {
2080
+ type: "object",
2081
+ properties: {
2082
+ value: {
2083
+ type: "string",
2084
+ description: "Unique item identifier"
2085
+ }
2086
+ },
2087
+ required: [
2088
+ "value"
2089
+ ],
2090
+ additionalProperties: false
2091
+ },
2092
+ children: {
2093
+ type: "array",
2094
+ items: {
2095
+ type: "object",
2096
+ properties: {
2097
+ type: {
2098
+ type: "string"
2099
+ },
2100
+ props: {
2101
+ type: "object",
2102
+ additionalProperties: {}
2103
+ },
2104
+ children: {
2105
+ type: "array",
2106
+ items: {}
2107
+ }
2108
+ },
2109
+ required: [
2110
+ "type"
2111
+ ],
2112
+ additionalProperties: false
2113
+ },
2114
+ description: "Place accordion-trigger and accordion-content inside"
2115
+ }
2116
+ },
2117
+ required: [
2118
+ "type",
2119
+ "props"
2120
+ ],
2121
+ additionalProperties: false,
2122
+ description: "A single accordion section"
2123
+ }
2124
+ },
2125
+ $schema: "http://json-schema.org/draft-07/schema#"
2126
+ },
2127
+ "accordion-trigger": {
2128
+ $ref: "#/definitions/accordion-trigger",
2129
+ definitions: {
2130
+ "accordion-trigger": {
2131
+ type: "object",
2132
+ properties: {
2133
+ type: {
2134
+ type: "string",
2135
+ const: "accordion-trigger"
2136
+ },
2137
+ props: {
2138
+ type: "object",
2139
+ properties: {
2140
+ children: {
2141
+ type: "string",
2142
+ description: "Trigger label text"
2143
+ }
2144
+ },
2145
+ additionalProperties: false
2146
+ },
2147
+ children: {
2148
+ type: "array",
2149
+ items: {
2150
+ type: "object",
2151
+ properties: {
2152
+ type: {
2153
+ type: "string"
2154
+ },
2155
+ props: {
2156
+ type: "object",
2157
+ additionalProperties: {}
2158
+ },
2159
+ children: {
2160
+ type: "array",
2161
+ items: {}
2162
+ }
2163
+ },
2164
+ required: [
2165
+ "type"
2166
+ ],
2167
+ additionalProperties: false
2168
+ }
2169
+ }
2170
+ },
2171
+ required: [
2172
+ "type"
2173
+ ],
2174
+ additionalProperties: false,
2175
+ description: "Clickable header that toggles an accordion-item"
2176
+ }
2177
+ },
2178
+ $schema: "http://json-schema.org/draft-07/schema#"
2179
+ },
2180
+ "accordion-content": {
2181
+ $ref: "#/definitions/accordion-content",
2182
+ definitions: {
2183
+ "accordion-content": {
2184
+ type: "object",
2185
+ properties: {
2186
+ type: {
2187
+ type: "string",
2188
+ const: "accordion-content"
2189
+ },
2190
+ props: {
2191
+ type: "object",
2192
+ properties: {},
2193
+ additionalProperties: false
2194
+ },
2195
+ children: {
2196
+ type: "array",
2197
+ items: {
2198
+ type: "object",
2199
+ properties: {
2200
+ type: {
2201
+ type: "string"
2202
+ },
2203
+ props: {
2204
+ type: "object",
2205
+ additionalProperties: {}
2206
+ },
2207
+ children: {
2208
+ type: "array",
2209
+ items: {}
2210
+ }
2211
+ },
2212
+ required: [
2213
+ "type"
2214
+ ],
2215
+ additionalProperties: false
2216
+ },
2217
+ description: "Content revealed when the item is open"
2218
+ }
2219
+ },
2220
+ required: [
2221
+ "type"
2222
+ ],
2223
+ additionalProperties: false,
2224
+ description: "Collapsible content area of an accordion-item"
2225
+ }
2226
+ },
2227
+ $schema: "http://json-schema.org/draft-07/schema#"
2228
+ },
2229
+ tabs: {
2230
+ $ref: "#/definitions/tabs",
2231
+ definitions: {
2232
+ tabs: {
2233
+ type: "object",
2234
+ properties: {
2235
+ type: {
2236
+ type: "string",
2237
+ const: "tabs"
2238
+ },
2239
+ props: {
2240
+ type: "object",
2241
+ properties: {
2242
+ defaultActiveTab: {
2243
+ type: "string",
2244
+ description: "Value of the initially active tab"
2245
+ },
2246
+ tabs: {
2247
+ type: "array",
2248
+ items: {
2249
+ type: "object",
2250
+ properties: {
2251
+ value: {
2252
+ type: "string",
2253
+ description: "Unique tab identifier"
2254
+ },
2255
+ label: {
2256
+ type: "string",
2257
+ description: "Tab label text"
2258
+ },
2259
+ count: {
2260
+ type: "number",
2261
+ description: "Badge count on the tab"
2262
+ },
2263
+ notification: {
2264
+ type: "boolean",
2265
+ description: "Show notification dot"
2266
+ }
2267
+ },
2268
+ required: [
2269
+ "value",
2270
+ "label"
2271
+ ],
2272
+ additionalProperties: false
2273
+ },
2274
+ description: "Tab definitions"
2275
+ },
2276
+ tabSmall: {
2277
+ type: "boolean",
2278
+ description: "Use compact tab styling"
2279
+ },
2280
+ showContent: {
2281
+ type: "boolean",
2282
+ description: "Show tab content panels. Defaults to true"
2283
+ }
2284
+ },
2285
+ required: [
2286
+ "defaultActiveTab",
2287
+ "tabs"
2288
+ ],
2289
+ additionalProperties: false
2290
+ },
2291
+ children: {
2292
+ type: "array",
2293
+ items: {
2294
+ type: "object",
2295
+ properties: {
2296
+ type: {
2297
+ type: "string"
2298
+ },
2299
+ props: {
2300
+ type: "object",
2301
+ additionalProperties: {}
2302
+ },
2303
+ children: {
2304
+ type: "array",
2305
+ items: {}
2306
+ }
2307
+ },
2308
+ required: [
2309
+ "type"
2310
+ ],
2311
+ additionalProperties: false
2312
+ },
2313
+ description: "Tab content panels (one per tab, in order)"
2314
+ }
2315
+ },
2316
+ required: [
2317
+ "type",
2318
+ "props"
2319
+ ],
2320
+ additionalProperties: false,
2321
+ description: "A tabbed interface with switchable content panels"
2322
+ }
2323
+ },
2324
+ $schema: "http://json-schema.org/draft-07/schema#"
2325
+ },
2326
+ "wrapper-card": {
2327
+ $ref: "#/definitions/wrapper-card",
2328
+ definitions: {
2329
+ "wrapper-card": {
2330
+ type: "object",
2331
+ properties: {
2332
+ type: {
2333
+ type: "string",
2334
+ const: "wrapper-card"
2335
+ },
2336
+ props: {
2337
+ type: "object",
2338
+ properties: {},
2339
+ additionalProperties: false
2340
+ },
2341
+ children: {
2342
+ type: "array",
2343
+ items: {
2344
+ type: "object",
2345
+ properties: {
2346
+ type: {
2347
+ type: "string"
2348
+ },
2349
+ props: {
2350
+ type: "object",
2351
+ additionalProperties: {}
2352
+ },
2353
+ children: {
2354
+ type: "array",
2355
+ items: {}
2356
+ }
2357
+ },
2358
+ required: [
2359
+ "type"
2360
+ ],
2361
+ additionalProperties: false
2362
+ },
2363
+ description: "Card body content"
2364
+ }
2365
+ },
2366
+ required: [
2367
+ "type"
2368
+ ],
2369
+ additionalProperties: false,
2370
+ description: "A simple card wrapper with default padding and border"
2371
+ }
2372
+ },
2373
+ $schema: "http://json-schema.org/draft-07/schema#"
2374
+ },
2375
+ "gradient-container": {
2376
+ $ref: "#/definitions/gradient-container",
2377
+ definitions: {
2378
+ "gradient-container": {
2379
+ type: "object",
2380
+ properties: {
2381
+ type: {
2382
+ type: "string",
2383
+ const: "gradient-container"
2384
+ },
2385
+ props: {
2386
+ type: "object",
2387
+ properties: {},
2388
+ additionalProperties: false
2389
+ },
2390
+ children: {
2391
+ type: "array",
2392
+ items: {
2393
+ type: "object",
2394
+ properties: {
2395
+ type: {
2396
+ type: "string"
2397
+ },
2398
+ props: {
2399
+ type: "object",
2400
+ additionalProperties: {}
2401
+ },
2402
+ children: {
2403
+ type: "array",
2404
+ items: {}
2405
+ }
2406
+ },
2407
+ required: [
2408
+ "type"
2409
+ ],
2410
+ additionalProperties: false
2411
+ },
2412
+ description: "Content inside the gradient container"
2413
+ }
2414
+ },
2415
+ required: [
2416
+ "type"
2417
+ ],
2418
+ additionalProperties: false,
2419
+ description: "A container with a gradient background"
2420
+ }
2421
+ },
2422
+ $schema: "http://json-schema.org/draft-07/schema#"
2423
+ },
2424
+ carousel: {
2425
+ $ref: "#/definitions/carousel",
2426
+ definitions: {
2427
+ carousel: {
2428
+ type: "object",
2429
+ properties: {
2430
+ type: {
2431
+ type: "string",
2432
+ const: "carousel"
2433
+ },
2434
+ props: {
2435
+ type: "object",
2436
+ properties: {
2437
+ orientation: {
2438
+ type: "string",
2439
+ enum: [
2440
+ "horizontal",
2441
+ "vertical"
2442
+ ],
2443
+ description: "Scroll direction. Defaults to 'horizontal'"
2444
+ }
2445
+ },
2446
+ additionalProperties: false
2447
+ },
2448
+ children: {
2449
+ type: "array",
2450
+ items: {
2451
+ type: "object",
2452
+ properties: {
2453
+ type: {
2454
+ type: "string"
2455
+ },
2456
+ props: {
2457
+ type: "object",
2458
+ additionalProperties: {}
2459
+ },
2460
+ children: {
2461
+ type: "array",
2462
+ items: {}
2463
+ }
2464
+ },
2465
+ required: [
2466
+ "type"
2467
+ ],
2468
+ additionalProperties: false
2469
+ },
2470
+ description: "Place a carousel-content inside"
2471
+ }
2472
+ },
2473
+ required: [
2474
+ "type"
2475
+ ],
2476
+ additionalProperties: false,
2477
+ description: "A scrollable carousel container"
2478
+ }
2479
+ },
2480
+ $schema: "http://json-schema.org/draft-07/schema#"
2481
+ },
2482
+ "carousel-content": {
2483
+ $ref: "#/definitions/carousel-content",
2484
+ definitions: {
2485
+ "carousel-content": {
2486
+ type: "object",
2487
+ properties: {
2488
+ type: {
2489
+ type: "string",
2490
+ const: "carousel-content"
2491
+ },
2492
+ props: {
2493
+ type: "object",
2494
+ properties: {},
2495
+ additionalProperties: false
2496
+ },
2497
+ children: {
2498
+ type: "array",
2499
+ items: {
2500
+ type: "object",
2501
+ properties: {
2502
+ type: {
2503
+ type: "string"
2504
+ },
2505
+ props: {
2506
+ type: "object",
2507
+ additionalProperties: {}
2508
+ },
2509
+ children: {
2510
+ type: "array",
2511
+ items: {}
2512
+ }
2513
+ },
2514
+ required: [
2515
+ "type"
2516
+ ],
2517
+ additionalProperties: false
2518
+ },
2519
+ description: "Compose with carousel-item children"
2520
+ }
2521
+ },
2522
+ required: [
2523
+ "type"
2524
+ ],
2525
+ additionalProperties: false,
2526
+ description: "Content track of a carousel"
2527
+ }
2528
+ },
2529
+ $schema: "http://json-schema.org/draft-07/schema#"
2530
+ },
2531
+ "carousel-item": {
2532
+ $ref: "#/definitions/carousel-item",
2533
+ definitions: {
2534
+ "carousel-item": {
2535
+ type: "object",
2536
+ properties: {
2537
+ type: {
2538
+ type: "string",
2539
+ const: "carousel-item"
2540
+ },
2541
+ props: {
2542
+ type: "object",
2543
+ properties: {},
2544
+ additionalProperties: false
2545
+ },
2546
+ children: {
2547
+ type: "array",
2548
+ items: {
2549
+ type: "object",
2550
+ properties: {
2551
+ type: {
2552
+ type: "string"
2553
+ },
2554
+ props: {
2555
+ type: "object",
2556
+ additionalProperties: {}
2557
+ },
2558
+ children: {
2559
+ type: "array",
2560
+ items: {}
2561
+ }
2562
+ },
2563
+ required: [
2564
+ "type"
2565
+ ],
2566
+ additionalProperties: false
2567
+ },
2568
+ description: "Content for this slide"
2569
+ }
2570
+ },
2571
+ required: [
2572
+ "type"
2573
+ ],
2574
+ additionalProperties: false,
2575
+ description: "A single slide inside a carousel"
2576
+ }
2577
+ },
2578
+ $schema: "http://json-schema.org/draft-07/schema#"
2579
+ },
2580
+ toggle: {
2581
+ $ref: "#/definitions/toggle",
2582
+ definitions: {
2583
+ toggle: {
2584
+ type: "object",
2585
+ properties: {
2586
+ type: {
2587
+ type: "string",
2588
+ const: "toggle"
2589
+ },
2590
+ props: {
2591
+ type: "object",
2592
+ properties: {
2593
+ active: {
2594
+ type: "boolean",
2595
+ description: "Whether the toggle is pressed"
2596
+ },
2597
+ shape: {
2598
+ type: "string",
2599
+ enum: [
2600
+ "rectangle",
2601
+ "rounded"
2602
+ ],
2603
+ description: "Toggle shape. Defaults to 'rectangle'"
2604
+ },
2605
+ style: {
2606
+ type: "string",
2607
+ enum: [
2608
+ "ghost",
2609
+ "outline",
2610
+ "soft"
2611
+ ],
2612
+ description: "Visual style. Defaults to 'soft'"
2613
+ },
2614
+ size: {
2615
+ type: "string",
2616
+ enum: [
2617
+ "sm",
2618
+ "md",
2619
+ "lg"
2620
+ ],
2621
+ description: "Toggle size. Defaults to 'sm'"
2622
+ },
2623
+ disabled: {
2624
+ type: "boolean"
2625
+ }
2626
+ },
2627
+ additionalProperties: false
2628
+ },
2629
+ children: {
2630
+ type: "array",
2631
+ items: {
2632
+ type: "object",
2633
+ properties: {
2634
+ type: {
2635
+ type: "string"
2636
+ },
2637
+ props: {
2638
+ type: "object",
2639
+ additionalProperties: {}
2640
+ },
2641
+ children: {
2642
+ type: "array",
2643
+ items: {}
2644
+ }
2645
+ },
2646
+ required: [
2647
+ "type"
2648
+ ],
2649
+ additionalProperties: false
2650
+ },
2651
+ description: "Toggle label / content"
2652
+ }
2653
+ },
2654
+ required: [
2655
+ "type"
2656
+ ],
2657
+ additionalProperties: false,
2658
+ description: "A pressable toggle button"
2659
+ }
2660
+ },
2661
+ $schema: "http://json-schema.org/draft-07/schema#"
2662
+ },
2663
+ slider: {
2664
+ $ref: "#/definitions/slider",
2665
+ definitions: {
2666
+ slider: {
2667
+ type: "object",
2668
+ properties: {
2669
+ type: {
2670
+ type: "string",
2671
+ const: "slider"
2672
+ },
2673
+ props: {
2674
+ type: "object",
2675
+ properties: {
2676
+ defaultValue: {
2677
+ anyOf: [
2678
+ {
2679
+ type: "number"
2680
+ },
2681
+ {
2682
+ type: "array",
2683
+ items: {
2684
+ type: "number"
2685
+ }
2686
+ }
2687
+ ],
2688
+ description: "Initial value or range [min, max]"
2689
+ },
2690
+ min: {
2691
+ type: "number",
2692
+ description: "Minimum value. Defaults to 0"
2693
+ },
2694
+ max: {
2695
+ type: "number",
2696
+ description: "Maximum value. Defaults to 100"
2697
+ },
2698
+ step: {
2699
+ type: "number",
2700
+ description: "Step increment"
2701
+ },
2702
+ disabled: {
2703
+ type: "boolean"
2704
+ }
2705
+ },
2706
+ additionalProperties: false
2707
+ }
2708
+ },
2709
+ required: [
2710
+ "type"
2711
+ ],
2712
+ additionalProperties: false,
2713
+ description: "A range slider input"
2714
+ }
2715
+ },
2716
+ $schema: "http://json-schema.org/draft-07/schema#"
2717
+ },
2718
+ "search-input": {
2719
+ $ref: "#/definitions/search-input",
2720
+ definitions: {
2721
+ "search-input": {
2722
+ type: "object",
2723
+ properties: {
2724
+ type: {
2725
+ type: "string",
2726
+ const: "search-input"
2727
+ },
2728
+ props: {
2729
+ type: "object",
2730
+ properties: {
2731
+ searchKey: {
2732
+ type: "string",
2733
+ description: "URL query param key for the search value"
2734
+ },
2735
+ placeholder: {
2736
+ type: "string",
2737
+ description: "Placeholder text. Defaults to 'Search by...'"
2738
+ },
2739
+ debounceDelay: {
2740
+ type: "number",
2741
+ description: "Debounce delay in ms. Defaults to 500"
2742
+ },
2743
+ variant: {
2744
+ type: "string",
2745
+ enum: [
2746
+ "ghost",
2747
+ "outline"
2748
+ ],
2749
+ description: "Input style variant"
2750
+ },
2751
+ disabled: {
2752
+ type: "boolean"
2753
+ }
2754
+ },
2755
+ required: [
2756
+ "searchKey"
2757
+ ],
2758
+ additionalProperties: false
2759
+ }
2760
+ },
2761
+ required: [
2762
+ "type",
2763
+ "props"
2764
+ ],
2765
+ additionalProperties: false,
2766
+ description: "A search input with debounced query param binding"
2767
+ }
2768
+ },
2769
+ $schema: "http://json-schema.org/draft-07/schema#"
2770
+ },
2771
+ "icon-button": {
2772
+ $ref: "#/definitions/icon-button",
2773
+ definitions: {
2774
+ "icon-button": {
2775
+ type: "object",
2776
+ properties: {
2777
+ type: {
2778
+ type: "string",
2779
+ const: "icon-button"
2780
+ },
2781
+ props: {
2782
+ type: "object",
2783
+ properties: {
2784
+ icon: {
2785
+ type: "string",
2786
+ description: "Icon name (resolved by the renderer)"
2787
+ },
2788
+ variant: {
2789
+ type: "string",
2790
+ enum: [
2791
+ "primary",
2792
+ "secondary",
2793
+ "destructive",
2794
+ "outline",
2795
+ "ghost",
2796
+ "soft",
2797
+ "ai-filled",
2798
+ "ai-outline",
2799
+ "glass"
2800
+ ],
2801
+ description: "Button style. Defaults to 'primary'"
2802
+ },
2803
+ size: {
2804
+ type: "string",
2805
+ enum: [
2806
+ "xs",
2807
+ "sm",
2808
+ "md",
2809
+ "lg"
2810
+ ],
2811
+ description: "Button size. Defaults to 'sm'"
2812
+ },
2813
+ active: {
2814
+ type: "boolean",
2815
+ description: "Active / pressed state"
2816
+ },
2817
+ rounded: {
2818
+ type: "boolean",
2819
+ description: "Fully round button"
2820
+ },
2821
+ disabled: {
2822
+ type: "boolean"
2823
+ }
2824
+ },
2825
+ required: [
2826
+ "icon"
2827
+ ],
2828
+ additionalProperties: false
2829
+ }
2830
+ },
2831
+ required: [
2832
+ "type",
2833
+ "props"
2834
+ ],
2835
+ additionalProperties: false,
2836
+ description: "An icon-only action button"
2837
+ }
2838
+ },
2839
+ $schema: "http://json-schema.org/draft-07/schema#"
2840
+ },
2841
+ "link-button": {
2842
+ $ref: "#/definitions/link-button",
2843
+ definitions: {
2844
+ "link-button": {
2845
+ type: "object",
2846
+ properties: {
2847
+ type: {
2848
+ type: "string",
2849
+ const: "link-button"
2850
+ },
2851
+ props: {
2852
+ type: "object",
2853
+ properties: {
2854
+ href: {
2855
+ type: "string",
2856
+ description: "Link URL"
2857
+ },
2858
+ children: {
2859
+ type: "string",
2860
+ description: "Link text"
2861
+ }
2862
+ },
2863
+ required: [
2864
+ "href"
2865
+ ],
2866
+ additionalProperties: false
2867
+ },
2868
+ children: {
2869
+ type: "array",
2870
+ items: {
2871
+ type: "object",
2872
+ properties: {
2873
+ type: {
2874
+ type: "string"
2875
+ },
2876
+ props: {
2877
+ type: "object",
2878
+ additionalProperties: {}
2879
+ },
2880
+ children: {
2881
+ type: "array",
2882
+ items: {}
2883
+ }
2884
+ },
2885
+ required: [
2886
+ "type"
2887
+ ],
2888
+ additionalProperties: false
2889
+ }
2890
+ }
2891
+ },
2892
+ required: [
2893
+ "type",
2894
+ "props"
2895
+ ],
2896
+ additionalProperties: false,
2897
+ description: "A button styled as a navigation link"
2898
+ }
2899
+ },
2900
+ $schema: "http://json-schema.org/draft-07/schema#"
2901
+ },
2902
+ "button-link": {
2903
+ $ref: "#/definitions/button-link",
2904
+ definitions: {
2905
+ "button-link": {
2906
+ type: "object",
2907
+ properties: {
2908
+ type: {
2909
+ type: "string",
2910
+ const: "button-link"
2911
+ },
2912
+ props: {
2913
+ type: "object",
2914
+ properties: {
2915
+ children: {
2916
+ type: "string",
2917
+ description: "Link text"
2918
+ },
2919
+ variant: {
2920
+ type: "string",
2921
+ enum: [
2922
+ "link",
2923
+ "text-link",
2924
+ "error"
2925
+ ],
2926
+ description: "Link style. Defaults to 'link'"
2927
+ },
2928
+ href: {
2929
+ type: "string",
2930
+ description: "Link URL"
2931
+ },
2932
+ disabled: {
2933
+ type: "boolean"
2934
+ }
2935
+ },
2936
+ additionalProperties: false
2937
+ },
2938
+ children: {
2939
+ type: "array",
2940
+ items: {
2941
+ type: "object",
2942
+ properties: {
2943
+ type: {
2944
+ type: "string"
2945
+ },
2946
+ props: {
2947
+ type: "object",
2948
+ additionalProperties: {}
2949
+ },
2950
+ children: {
2951
+ type: "array",
2952
+ items: {}
2953
+ }
2954
+ },
2955
+ required: [
2956
+ "type"
2957
+ ],
2958
+ additionalProperties: false
2959
+ }
2960
+ }
2961
+ },
2962
+ required: [
2963
+ "type"
2964
+ ],
2965
+ additionalProperties: false,
2966
+ description: "An inline text link styled as a button"
2967
+ }
2968
+ },
2969
+ $schema: "http://json-schema.org/draft-07/schema#"
2970
+ },
2971
+ "select-hover": {
2972
+ $ref: "#/definitions/select-hover",
2973
+ definitions: {
2974
+ "select-hover": {
2975
+ type: "object",
2976
+ properties: {
2977
+ type: {
2978
+ type: "string",
2979
+ const: "select-hover"
2980
+ },
2981
+ props: {
2982
+ type: "object",
2983
+ properties: {
2984
+ options: {
2985
+ type: "array",
2986
+ items: {
2987
+ type: "object",
2988
+ properties: {
2989
+ label: {
2990
+ type: "string",
2991
+ description: "Display text"
2992
+ },
2993
+ value: {
2994
+ type: "string",
2995
+ description: "Option value"
2996
+ }
2997
+ },
2998
+ required: [
2999
+ "label",
3000
+ "value"
3001
+ ],
3002
+ additionalProperties: false
3003
+ },
3004
+ description: "Array of selectable options"
3005
+ },
3006
+ placeholder: {
3007
+ type: "string",
3008
+ description: "Placeholder text. Defaults to 'Select an option'"
3009
+ },
3010
+ value: {
3011
+ type: "string",
3012
+ description: "Currently selected value"
3013
+ }
3014
+ },
3015
+ required: [
3016
+ "options"
3017
+ ],
3018
+ additionalProperties: false
3019
+ }
3020
+ },
3021
+ required: [
3022
+ "type",
3023
+ "props"
3024
+ ],
3025
+ additionalProperties: false,
3026
+ description: "A hover-activated select dropdown"
3027
+ }
3028
+ },
3029
+ $schema: "http://json-schema.org/draft-07/schema#"
3030
+ },
3031
+ breadcrumb: {
3032
+ $ref: "#/definitions/breadcrumb",
3033
+ definitions: {
3034
+ breadcrumb: {
3035
+ type: "object",
3036
+ properties: {
3037
+ type: {
3038
+ type: "string",
3039
+ const: "breadcrumb"
3040
+ },
3041
+ props: {
3042
+ type: "object",
3043
+ properties: {
3044
+ items: {
3045
+ type: "array",
3046
+ items: {
3047
+ type: "object",
3048
+ properties: {
3049
+ label: {
3050
+ type: "string",
3051
+ description: "Breadcrumb text"
3052
+ },
3053
+ href: {
3054
+ type: "string",
3055
+ description: "Navigation URL"
3056
+ },
3057
+ disabled: {
3058
+ type: "boolean"
3059
+ }
3060
+ },
3061
+ required: [
3062
+ "label"
3063
+ ],
3064
+ additionalProperties: false
3065
+ },
3066
+ description: "Ordered list of breadcrumb segments"
3067
+ }
3068
+ },
3069
+ required: [
3070
+ "items"
3071
+ ],
3072
+ additionalProperties: false
3073
+ }
3074
+ },
3075
+ required: [
3076
+ "type",
3077
+ "props"
3078
+ ],
3079
+ additionalProperties: false,
3080
+ description: "A breadcrumb navigation trail"
3081
+ }
3082
+ },
3083
+ $schema: "http://json-schema.org/draft-07/schema#"
3084
+ },
3085
+ tooltip: {
3086
+ $ref: "#/definitions/tooltip",
3087
+ definitions: {
3088
+ tooltip: {
3089
+ type: "object",
3090
+ properties: {
3091
+ type: {
3092
+ type: "string",
3093
+ const: "tooltip"
3094
+ },
3095
+ props: {
3096
+ type: "object",
3097
+ properties: {
3098
+ content: {
3099
+ type: "string",
3100
+ description: "Tooltip text"
3101
+ },
3102
+ position: {
3103
+ type: "string",
3104
+ enum: [
3105
+ "top",
3106
+ "top-center",
3107
+ "top-left",
3108
+ "top-right",
3109
+ "bottom",
3110
+ "bottom-left",
3111
+ "bottom-center",
3112
+ "bottom-right",
3113
+ "left",
3114
+ "right"
3115
+ ],
3116
+ description: "Tooltip placement"
3117
+ },
3118
+ withArrow: {
3119
+ type: "boolean",
3120
+ description: "Show an arrow pointer"
3121
+ }
3122
+ },
3123
+ required: [
3124
+ "content"
3125
+ ],
3126
+ additionalProperties: false
3127
+ },
3128
+ children: {
3129
+ type: "array",
3130
+ items: {
3131
+ type: "object",
3132
+ properties: {
3133
+ type: {
3134
+ type: "string"
3135
+ },
3136
+ props: {
3137
+ type: "object",
3138
+ additionalProperties: {}
3139
+ },
3140
+ children: {
3141
+ type: "array",
3142
+ items: {}
3143
+ }
3144
+ },
3145
+ required: [
3146
+ "type"
3147
+ ],
3148
+ additionalProperties: false
3149
+ },
3150
+ description: "The trigger element the tooltip wraps"
3151
+ }
3152
+ },
3153
+ required: [
3154
+ "type",
3155
+ "props"
3156
+ ],
3157
+ additionalProperties: false,
3158
+ description: "A tooltip that appears on hover over its child element"
3159
+ }
3160
+ },
3161
+ $schema: "http://json-schema.org/draft-07/schema#"
3162
+ },
3163
+ table: {
3164
+ $ref: "#/definitions/table",
3165
+ definitions: {
3166
+ table: {
3167
+ type: "object",
3168
+ properties: {
3169
+ type: {
3170
+ type: "string",
3171
+ const: "table"
3172
+ },
3173
+ props: {
3174
+ type: "object",
3175
+ properties: {
3176
+ columns: {
3177
+ type: "array",
3178
+ items: {
3179
+ type: "object",
3180
+ properties: {
3181
+ accessorKey: {
3182
+ type: "string",
3183
+ description: "Key in the row data object"
3184
+ },
3185
+ header: {
3186
+ type: "string",
3187
+ description: "Column header text"
3188
+ }
3189
+ },
3190
+ required: [
3191
+ "accessorKey",
3192
+ "header"
3193
+ ],
3194
+ additionalProperties: false
3195
+ },
3196
+ description: "Column definitions"
3197
+ },
3198
+ tableData: {
3199
+ type: "array",
3200
+ items: {
3201
+ type: "object",
3202
+ additionalProperties: {}
3203
+ },
3204
+ description: "Array of row data objects"
3205
+ }
3206
+ },
3207
+ required: [
3208
+ "columns",
3209
+ "tableData"
3210
+ ],
3211
+ additionalProperties: false
3212
+ }
3213
+ },
3214
+ required: [
3215
+ "type",
3216
+ "props"
3217
+ ],
3218
+ additionalProperties: false,
3219
+ description: "A data table with columns and rows"
3220
+ }
3221
+ },
3222
+ $schema: "http://json-schema.org/draft-07/schema#"
3223
+ },
3224
+ sheet: {
3225
+ $ref: "#/definitions/sheet",
3226
+ definitions: {
3227
+ sheet: {
3228
+ type: "object",
3229
+ properties: {
3230
+ type: {
3231
+ type: "string",
3232
+ const: "sheet"
3233
+ },
3234
+ props: {
3235
+ type: "object",
3236
+ properties: {},
3237
+ additionalProperties: false
3238
+ },
3239
+ children: {
3240
+ type: "array",
3241
+ items: {
3242
+ type: "object",
3243
+ properties: {
3244
+ type: {
3245
+ type: "string"
3246
+ },
3247
+ props: {
3248
+ type: "object",
3249
+ additionalProperties: {}
3250
+ },
3251
+ children: {
3252
+ type: "array",
3253
+ items: {}
3254
+ }
3255
+ },
3256
+ required: [
3257
+ "type"
3258
+ ],
3259
+ additionalProperties: false
3260
+ },
3261
+ description: "Compose with sheet-trigger and sheet-content"
3262
+ }
3263
+ },
3264
+ required: [
3265
+ "type"
3266
+ ],
3267
+ additionalProperties: false,
3268
+ description: "A slide-out panel overlay"
3269
+ }
3270
+ },
3271
+ $schema: "http://json-schema.org/draft-07/schema#"
3272
+ },
3273
+ "sheet-trigger": {
3274
+ $ref: "#/definitions/sheet-trigger",
3275
+ definitions: {
3276
+ "sheet-trigger": {
3277
+ type: "object",
3278
+ properties: {
3279
+ type: {
3280
+ type: "string",
3281
+ const: "sheet-trigger"
3282
+ },
3283
+ props: {
3284
+ type: "object",
3285
+ properties: {},
3286
+ additionalProperties: false
3287
+ },
3288
+ children: {
3289
+ type: "array",
3290
+ items: {
3291
+ type: "object",
3292
+ properties: {
3293
+ type: {
3294
+ type: "string"
3295
+ },
3296
+ props: {
3297
+ type: "object",
3298
+ additionalProperties: {}
3299
+ },
3300
+ children: {
3301
+ type: "array",
3302
+ items: {}
3303
+ }
3304
+ },
3305
+ required: [
3306
+ "type"
3307
+ ],
3308
+ additionalProperties: false
3309
+ },
3310
+ description: "The element that opens the sheet"
3311
+ }
3312
+ },
3313
+ required: [
3314
+ "type"
3315
+ ],
3316
+ additionalProperties: false,
3317
+ description: "Trigger element that opens a sheet"
3318
+ }
3319
+ },
3320
+ $schema: "http://json-schema.org/draft-07/schema#"
3321
+ },
3322
+ "sheet-content": {
3323
+ $ref: "#/definitions/sheet-content",
3324
+ definitions: {
3325
+ "sheet-content": {
3326
+ type: "object",
3327
+ properties: {
3328
+ type: {
3329
+ type: "string",
3330
+ const: "sheet-content"
3331
+ },
3332
+ props: {
3333
+ type: "object",
3334
+ properties: {
3335
+ side: {
3336
+ type: "string",
3337
+ enum: [
3338
+ "top",
3339
+ "right",
3340
+ "bottom",
3341
+ "left"
3342
+ ],
3343
+ description: "Slide-in direction. Defaults to 'right'"
3344
+ },
3345
+ showCloseButton: {
3346
+ type: "boolean",
3347
+ description: "Show close button. Defaults to true"
3348
+ }
3349
+ },
3350
+ additionalProperties: false
3351
+ },
3352
+ children: {
3353
+ type: "array",
3354
+ items: {
3355
+ type: "object",
3356
+ properties: {
3357
+ type: {
3358
+ type: "string"
3359
+ },
3360
+ props: {
3361
+ type: "object",
3362
+ additionalProperties: {}
3363
+ },
3364
+ children: {
3365
+ type: "array",
3366
+ items: {}
3367
+ }
3368
+ },
3369
+ required: [
3370
+ "type"
3371
+ ],
3372
+ additionalProperties: false
3373
+ },
3374
+ description: "Sheet body content"
3375
+ }
3376
+ },
3377
+ required: [
3378
+ "type"
3379
+ ],
3380
+ additionalProperties: false,
3381
+ description: "Content panel of a sheet"
3382
+ }
3383
+ },
3384
+ $schema: "http://json-schema.org/draft-07/schema#"
3385
+ },
3386
+ "sheet-header": {
3387
+ $ref: "#/definitions/sheet-header",
3388
+ definitions: {
3389
+ "sheet-header": {
3390
+ type: "object",
3391
+ properties: {
3392
+ type: {
3393
+ type: "string",
3394
+ const: "sheet-header"
3395
+ },
3396
+ props: {
3397
+ type: "object",
3398
+ properties: {},
3399
+ additionalProperties: false
3400
+ },
3401
+ children: {
3402
+ type: "array",
3403
+ items: {
3404
+ type: "object",
3405
+ properties: {
3406
+ type: {
3407
+ type: "string"
3408
+ },
3409
+ props: {
3410
+ type: "object",
3411
+ additionalProperties: {}
3412
+ },
3413
+ children: {
3414
+ type: "array",
3415
+ items: {}
3416
+ }
3417
+ },
3418
+ required: [
3419
+ "type"
3420
+ ],
3421
+ additionalProperties: false
3422
+ }
3423
+ }
3424
+ },
3425
+ required: [
3426
+ "type"
3427
+ ],
3428
+ additionalProperties: false,
3429
+ description: "Header section of a sheet"
3430
+ }
3431
+ },
3432
+ $schema: "http://json-schema.org/draft-07/schema#"
3433
+ },
3434
+ "sheet-footer": {
3435
+ $ref: "#/definitions/sheet-footer",
3436
+ definitions: {
3437
+ "sheet-footer": {
3438
+ type: "object",
3439
+ properties: {
3440
+ type: {
3441
+ type: "string",
3442
+ const: "sheet-footer"
3443
+ },
3444
+ props: {
3445
+ type: "object",
3446
+ properties: {},
3447
+ additionalProperties: false
3448
+ },
3449
+ children: {
3450
+ type: "array",
3451
+ items: {
3452
+ type: "object",
3453
+ properties: {
3454
+ type: {
3455
+ type: "string"
3456
+ },
3457
+ props: {
3458
+ type: "object",
3459
+ additionalProperties: {}
3460
+ },
3461
+ children: {
3462
+ type: "array",
3463
+ items: {}
3464
+ }
3465
+ },
3466
+ required: [
3467
+ "type"
3468
+ ],
3469
+ additionalProperties: false
3470
+ }
3471
+ }
3472
+ },
3473
+ required: [
3474
+ "type"
3475
+ ],
3476
+ additionalProperties: false,
3477
+ description: "Footer section of a sheet"
3478
+ }
3479
+ },
3480
+ $schema: "http://json-schema.org/draft-07/schema#"
3481
+ },
3482
+ "sheet-title": {
3483
+ $ref: "#/definitions/sheet-title",
3484
+ definitions: {
3485
+ "sheet-title": {
3486
+ type: "object",
3487
+ properties: {
3488
+ type: {
3489
+ type: "string",
3490
+ const: "sheet-title"
3491
+ },
3492
+ props: {
3493
+ type: "object",
3494
+ properties: {
3495
+ children: {
3496
+ type: "string",
3497
+ description: "Title text"
3498
+ }
3499
+ },
3500
+ additionalProperties: false
3501
+ },
3502
+ children: {
3503
+ type: "array",
3504
+ items: {
3505
+ type: "object",
3506
+ properties: {
3507
+ type: {
3508
+ type: "string"
3509
+ },
3510
+ props: {
3511
+ type: "object",
3512
+ additionalProperties: {}
3513
+ },
3514
+ children: {
3515
+ type: "array",
3516
+ items: {}
3517
+ }
3518
+ },
3519
+ required: [
3520
+ "type"
3521
+ ],
3522
+ additionalProperties: false
3523
+ }
3524
+ }
3525
+ },
3526
+ required: [
3527
+ "type"
3528
+ ],
3529
+ additionalProperties: false,
3530
+ description: "Title inside a sheet-header"
3531
+ }
3532
+ },
3533
+ $schema: "http://json-schema.org/draft-07/schema#"
3534
+ },
3535
+ "sheet-description": {
3536
+ $ref: "#/definitions/sheet-description",
3537
+ definitions: {
3538
+ "sheet-description": {
3539
+ type: "object",
3540
+ properties: {
3541
+ type: {
3542
+ type: "string",
3543
+ const: "sheet-description"
3544
+ },
3545
+ props: {
3546
+ type: "object",
3547
+ properties: {
3548
+ children: {
3549
+ type: "string",
3550
+ description: "Description text"
3551
+ }
3552
+ },
3553
+ additionalProperties: false
3554
+ },
3555
+ children: {
3556
+ type: "array",
3557
+ items: {
3558
+ type: "object",
3559
+ properties: {
3560
+ type: {
3561
+ type: "string"
3562
+ },
3563
+ props: {
3564
+ type: "object",
3565
+ additionalProperties: {}
3566
+ },
3567
+ children: {
3568
+ type: "array",
3569
+ items: {}
3570
+ }
3571
+ },
3572
+ required: [
3573
+ "type"
3574
+ ],
3575
+ additionalProperties: false
3576
+ }
3577
+ }
3578
+ },
3579
+ required: [
3580
+ "type"
3581
+ ],
3582
+ additionalProperties: false,
3583
+ description: "Description text inside a sheet-header"
3584
+ }
3585
+ },
3586
+ $schema: "http://json-schema.org/draft-07/schema#"
3587
+ },
3588
+ "dropdown-menu": {
3589
+ $ref: "#/definitions/dropdown-menu",
3590
+ definitions: {
3591
+ "dropdown-menu": {
3592
+ type: "object",
3593
+ properties: {
3594
+ type: {
3595
+ type: "string",
3596
+ const: "dropdown-menu"
3597
+ },
3598
+ props: {
3599
+ type: "object",
3600
+ properties: {},
3601
+ additionalProperties: false
3602
+ },
3603
+ children: {
3604
+ type: "array",
3605
+ items: {
3606
+ type: "object",
3607
+ properties: {
3608
+ type: {
3609
+ type: "string"
3610
+ },
3611
+ props: {
3612
+ type: "object",
3613
+ additionalProperties: {}
3614
+ },
3615
+ children: {
3616
+ type: "array",
3617
+ items: {}
3618
+ }
3619
+ },
3620
+ required: [
3621
+ "type"
3622
+ ],
3623
+ additionalProperties: false
3624
+ },
3625
+ description: "Compose with dropdown-menu-trigger and dropdown-menu-content"
3626
+ }
3627
+ },
3628
+ required: [
3629
+ "type"
3630
+ ],
3631
+ additionalProperties: false,
3632
+ description: "A dropdown menu container"
3633
+ }
3634
+ },
3635
+ $schema: "http://json-schema.org/draft-07/schema#"
3636
+ },
3637
+ "dropdown-menu-trigger": {
3638
+ $ref: "#/definitions/dropdown-menu-trigger",
3639
+ definitions: {
3640
+ "dropdown-menu-trigger": {
3641
+ type: "object",
3642
+ properties: {
3643
+ type: {
3644
+ type: "string",
3645
+ const: "dropdown-menu-trigger"
3646
+ },
3647
+ props: {
3648
+ type: "object",
3649
+ properties: {},
3650
+ additionalProperties: false
3651
+ },
3652
+ children: {
3653
+ type: "array",
3654
+ items: {
3655
+ type: "object",
3656
+ properties: {
3657
+ type: {
3658
+ type: "string"
3659
+ },
3660
+ props: {
3661
+ type: "object",
3662
+ additionalProperties: {}
3663
+ },
3664
+ children: {
3665
+ type: "array",
3666
+ items: {}
3667
+ }
3668
+ },
3669
+ required: [
3670
+ "type"
3671
+ ],
3672
+ additionalProperties: false
3673
+ },
3674
+ description: "The element that opens the dropdown"
3675
+ }
3676
+ },
3677
+ required: [
3678
+ "type"
3679
+ ],
3680
+ additionalProperties: false,
3681
+ description: "Trigger element that opens a dropdown menu"
3682
+ }
3683
+ },
3684
+ $schema: "http://json-schema.org/draft-07/schema#"
3685
+ },
3686
+ "dropdown-menu-content": {
3687
+ $ref: "#/definitions/dropdown-menu-content",
3688
+ definitions: {
3689
+ "dropdown-menu-content": {
3690
+ type: "object",
3691
+ properties: {
3692
+ type: {
3693
+ type: "string",
3694
+ const: "dropdown-menu-content"
3695
+ },
3696
+ props: {
3697
+ type: "object",
3698
+ properties: {
3699
+ side: {
3700
+ type: "string",
3701
+ enum: [
3702
+ "top",
3703
+ "right",
3704
+ "bottom",
3705
+ "left"
3706
+ ]
3707
+ },
3708
+ align: {
3709
+ type: "string",
3710
+ enum: [
3711
+ "start",
3712
+ "center",
3713
+ "end"
3714
+ ]
3715
+ }
3716
+ },
3717
+ additionalProperties: false
3718
+ },
3719
+ children: {
3720
+ type: "array",
3721
+ items: {
3722
+ type: "object",
3723
+ properties: {
3724
+ type: {
3725
+ type: "string"
3726
+ },
3727
+ props: {
3728
+ type: "object",
3729
+ additionalProperties: {}
3730
+ },
3731
+ children: {
3732
+ type: "array",
3733
+ items: {}
3734
+ }
3735
+ },
3736
+ required: [
3737
+ "type"
3738
+ ],
3739
+ additionalProperties: false
3740
+ },
3741
+ description: "Menu items"
3742
+ }
3743
+ },
3744
+ required: [
3745
+ "type"
3746
+ ],
3747
+ additionalProperties: false,
3748
+ description: "Content panel of a dropdown menu"
3749
+ }
3750
+ },
3751
+ $schema: "http://json-schema.org/draft-07/schema#"
3752
+ },
3753
+ "dropdown-menu-item": {
3754
+ $ref: "#/definitions/dropdown-menu-item",
3755
+ definitions: {
3756
+ "dropdown-menu-item": {
3757
+ type: "object",
3758
+ properties: {
3759
+ type: {
3760
+ type: "string",
3761
+ const: "dropdown-menu-item"
3762
+ },
3763
+ props: {
3764
+ type: "object",
3765
+ properties: {
3766
+ children: {
3767
+ type: "string",
3768
+ description: "Menu item text"
3769
+ },
3770
+ variant: {
3771
+ type: "string",
3772
+ enum: [
3773
+ "default",
3774
+ "destructive"
3775
+ ],
3776
+ description: "Item style. Defaults to 'default'"
3777
+ },
3778
+ disabled: {
3779
+ type: "boolean"
3780
+ }
3781
+ },
3782
+ additionalProperties: false
3783
+ },
3784
+ children: {
3785
+ type: "array",
3786
+ items: {
3787
+ type: "object",
3788
+ properties: {
3789
+ type: {
3790
+ type: "string"
3791
+ },
3792
+ props: {
3793
+ type: "object",
3794
+ additionalProperties: {}
3795
+ },
3796
+ children: {
3797
+ type: "array",
3798
+ items: {}
3799
+ }
3800
+ },
3801
+ required: [
3802
+ "type"
3803
+ ],
3804
+ additionalProperties: false
3805
+ }
3806
+ }
3807
+ },
3808
+ required: [
3809
+ "type"
3810
+ ],
3811
+ additionalProperties: false,
3812
+ description: "A single item inside a dropdown menu"
3813
+ }
3814
+ },
3815
+ $schema: "http://json-schema.org/draft-07/schema#"
3816
+ },
3817
+ "dropdown-menu-separator": {
3818
+ $ref: "#/definitions/dropdown-menu-separator",
3819
+ definitions: {
3820
+ "dropdown-menu-separator": {
3821
+ type: "object",
3822
+ properties: {
3823
+ type: {
3824
+ type: "string",
3825
+ const: "dropdown-menu-separator"
3826
+ },
3827
+ props: {
3828
+ type: "object",
3829
+ properties: {},
3830
+ additionalProperties: false
3831
+ }
3832
+ },
3833
+ required: [
3834
+ "type"
3835
+ ],
3836
+ additionalProperties: false,
3837
+ description: "A visual separator between dropdown menu items"
3838
+ }
3839
+ },
3840
+ $schema: "http://json-schema.org/draft-07/schema#"
3841
+ },
3842
+ "dropdown-menu-label": {
3843
+ $ref: "#/definitions/dropdown-menu-label",
3844
+ definitions: {
3845
+ "dropdown-menu-label": {
3846
+ type: "object",
3847
+ properties: {
3848
+ type: {
3849
+ type: "string",
3850
+ const: "dropdown-menu-label"
3851
+ },
3852
+ props: {
3853
+ type: "object",
3854
+ properties: {
3855
+ children: {
3856
+ type: "string",
3857
+ description: "Label text"
3858
+ }
3859
+ },
3860
+ additionalProperties: false
3861
+ },
3862
+ children: {
3863
+ type: "array",
3864
+ items: {
3865
+ type: "object",
3866
+ properties: {
3867
+ type: {
3868
+ type: "string"
3869
+ },
3870
+ props: {
3871
+ type: "object",
3872
+ additionalProperties: {}
3873
+ },
3874
+ children: {
3875
+ type: "array",
3876
+ items: {}
3877
+ }
3878
+ },
3879
+ required: [
3880
+ "type"
3881
+ ],
3882
+ additionalProperties: false
3883
+ }
3884
+ }
3885
+ },
3886
+ required: [
3887
+ "type"
3888
+ ],
3889
+ additionalProperties: false,
3890
+ description: "A non-interactive label inside a dropdown menu"
3891
+ }
3892
+ },
3893
+ $schema: "http://json-schema.org/draft-07/schema#"
3894
+ },
3895
+ popover: {
3896
+ $ref: "#/definitions/popover",
3897
+ definitions: {
3898
+ popover: {
3899
+ type: "object",
3900
+ properties: {
3901
+ type: {
3902
+ type: "string",
3903
+ const: "popover"
3904
+ },
3905
+ props: {
3906
+ type: "object",
3907
+ properties: {},
3908
+ additionalProperties: false
3909
+ },
3910
+ children: {
3911
+ type: "array",
3912
+ items: {
3913
+ type: "object",
3914
+ properties: {
3915
+ type: {
3916
+ type: "string"
3917
+ },
3918
+ props: {
3919
+ type: "object",
3920
+ additionalProperties: {}
3921
+ },
3922
+ children: {
3923
+ type: "array",
3924
+ items: {}
3925
+ }
3926
+ },
3927
+ required: [
3928
+ "type"
3929
+ ],
3930
+ additionalProperties: false
3931
+ },
3932
+ description: "Compose with popover-trigger and popover-content"
3933
+ }
3934
+ },
3935
+ required: [
3936
+ "type"
3937
+ ],
3938
+ additionalProperties: false,
3939
+ description: "A popover overlay container"
3940
+ }
3941
+ },
3942
+ $schema: "http://json-schema.org/draft-07/schema#"
3943
+ },
3944
+ "popover-trigger": {
3945
+ $ref: "#/definitions/popover-trigger",
3946
+ definitions: {
3947
+ "popover-trigger": {
3948
+ type: "object",
3949
+ properties: {
3950
+ type: {
3951
+ type: "string",
3952
+ const: "popover-trigger"
3953
+ },
3954
+ props: {
3955
+ type: "object",
3956
+ properties: {},
3957
+ additionalProperties: false
3958
+ },
3959
+ children: {
3960
+ type: "array",
3961
+ items: {
3962
+ type: "object",
3963
+ properties: {
3964
+ type: {
3965
+ type: "string"
3966
+ },
3967
+ props: {
3968
+ type: "object",
3969
+ additionalProperties: {}
3970
+ },
3971
+ children: {
3972
+ type: "array",
3973
+ items: {}
3974
+ }
3975
+ },
3976
+ required: [
3977
+ "type"
3978
+ ],
3979
+ additionalProperties: false
3980
+ },
3981
+ description: "The element that opens the popover"
3982
+ }
3983
+ },
3984
+ required: [
3985
+ "type"
3986
+ ],
3987
+ additionalProperties: false,
3988
+ description: "Trigger element that opens a popover"
3989
+ }
3990
+ },
3991
+ $schema: "http://json-schema.org/draft-07/schema#"
3992
+ },
3993
+ "popover-content": {
3994
+ $ref: "#/definitions/popover-content",
3995
+ definitions: {
3996
+ "popover-content": {
3997
+ type: "object",
3998
+ properties: {
3999
+ type: {
4000
+ type: "string",
4001
+ const: "popover-content"
4002
+ },
4003
+ props: {
4004
+ type: "object",
4005
+ properties: {
4006
+ align: {
4007
+ type: "string",
4008
+ enum: [
4009
+ "start",
4010
+ "center",
4011
+ "end"
4012
+ ],
4013
+ description: "Alignment relative to trigger. Defaults to 'center'"
4014
+ },
4015
+ sideOffset: {
4016
+ type: "number",
4017
+ description: "Offset from trigger in px. Defaults to 4"
4018
+ }
4019
+ },
4020
+ additionalProperties: false
4021
+ },
4022
+ children: {
4023
+ type: "array",
4024
+ items: {
4025
+ type: "object",
4026
+ properties: {
4027
+ type: {
4028
+ type: "string"
4029
+ },
4030
+ props: {
4031
+ type: "object",
4032
+ additionalProperties: {}
4033
+ },
4034
+ children: {
4035
+ type: "array",
4036
+ items: {}
4037
+ }
4038
+ },
4039
+ required: [
4040
+ "type"
4041
+ ],
4042
+ additionalProperties: false
4043
+ },
4044
+ description: "Popover body content"
4045
+ }
4046
+ },
4047
+ required: [
4048
+ "type"
4049
+ ],
4050
+ additionalProperties: false,
4051
+ description: "Content panel of a popover"
4052
+ }
4053
+ },
4054
+ $schema: "http://json-schema.org/draft-07/schema#"
4055
+ },
4056
+ "context-menu": {
4057
+ $ref: "#/definitions/context-menu",
4058
+ definitions: {
4059
+ "context-menu": {
4060
+ type: "object",
4061
+ properties: {
4062
+ type: {
4063
+ type: "string",
4064
+ const: "context-menu"
4065
+ },
4066
+ props: {
4067
+ type: "object",
4068
+ properties: {},
4069
+ additionalProperties: false
4070
+ },
4071
+ children: {
4072
+ type: "array",
4073
+ items: {
4074
+ type: "object",
4075
+ properties: {
4076
+ type: {
4077
+ type: "string"
4078
+ },
4079
+ props: {
4080
+ type: "object",
4081
+ additionalProperties: {}
4082
+ },
4083
+ children: {
4084
+ type: "array",
4085
+ items: {}
4086
+ }
4087
+ },
4088
+ required: [
4089
+ "type"
4090
+ ],
4091
+ additionalProperties: false
4092
+ },
4093
+ description: "Compose with context-menu-trigger and context-menu-content"
4094
+ }
4095
+ },
4096
+ required: [
4097
+ "type"
4098
+ ],
4099
+ additionalProperties: false,
4100
+ description: "A right-click context menu container"
4101
+ }
4102
+ },
4103
+ $schema: "http://json-schema.org/draft-07/schema#"
4104
+ },
4105
+ "context-menu-trigger": {
4106
+ $ref: "#/definitions/context-menu-trigger",
4107
+ definitions: {
4108
+ "context-menu-trigger": {
4109
+ type: "object",
4110
+ properties: {
4111
+ type: {
4112
+ type: "string",
4113
+ const: "context-menu-trigger"
4114
+ },
4115
+ props: {
4116
+ type: "object",
4117
+ properties: {},
4118
+ additionalProperties: false
4119
+ },
4120
+ children: {
4121
+ type: "array",
4122
+ items: {
4123
+ type: "object",
4124
+ properties: {
4125
+ type: {
4126
+ type: "string"
4127
+ },
4128
+ props: {
4129
+ type: "object",
4130
+ additionalProperties: {}
4131
+ },
4132
+ children: {
4133
+ type: "array",
4134
+ items: {}
4135
+ }
4136
+ },
4137
+ required: [
4138
+ "type"
4139
+ ],
4140
+ additionalProperties: false
4141
+ },
4142
+ description: "The element that triggers the context menu on right-click"
4143
+ }
4144
+ },
4145
+ required: [
4146
+ "type"
4147
+ ],
4148
+ additionalProperties: false,
4149
+ description: "Trigger area for a context menu"
4150
+ }
4151
+ },
4152
+ $schema: "http://json-schema.org/draft-07/schema#"
4153
+ },
4154
+ "context-menu-content": {
4155
+ $ref: "#/definitions/context-menu-content",
4156
+ definitions: {
4157
+ "context-menu-content": {
4158
+ type: "object",
4159
+ properties: {
4160
+ type: {
4161
+ type: "string",
4162
+ const: "context-menu-content"
4163
+ },
4164
+ props: {
4165
+ type: "object",
4166
+ properties: {},
4167
+ additionalProperties: false
4168
+ },
4169
+ children: {
4170
+ type: "array",
4171
+ items: {
4172
+ type: "object",
4173
+ properties: {
4174
+ type: {
4175
+ type: "string"
4176
+ },
4177
+ props: {
4178
+ type: "object",
4179
+ additionalProperties: {}
4180
+ },
4181
+ children: {
4182
+ type: "array",
4183
+ items: {}
4184
+ }
4185
+ },
4186
+ required: [
4187
+ "type"
4188
+ ],
4189
+ additionalProperties: false
4190
+ },
4191
+ description: "Menu items"
4192
+ }
4193
+ },
4194
+ required: [
4195
+ "type"
4196
+ ],
4197
+ additionalProperties: false,
4198
+ description: "Content panel of a context menu"
4199
+ }
4200
+ },
4201
+ $schema: "http://json-schema.org/draft-07/schema#"
4202
+ },
4203
+ "context-menu-item": {
4204
+ $ref: "#/definitions/context-menu-item",
4205
+ definitions: {
4206
+ "context-menu-item": {
4207
+ type: "object",
4208
+ properties: {
4209
+ type: {
4210
+ type: "string",
4211
+ const: "context-menu-item"
4212
+ },
4213
+ props: {
4214
+ type: "object",
4215
+ properties: {
4216
+ children: {
4217
+ type: "string",
4218
+ description: "Menu item text"
4219
+ },
4220
+ variant: {
4221
+ type: "string",
4222
+ enum: [
4223
+ "default",
4224
+ "destructive"
4225
+ ],
4226
+ description: "Item style. Defaults to 'default'"
4227
+ },
4228
+ disabled: {
4229
+ type: "boolean"
4230
+ }
4231
+ },
4232
+ additionalProperties: false
4233
+ },
4234
+ children: {
4235
+ type: "array",
4236
+ items: {
4237
+ type: "object",
4238
+ properties: {
4239
+ type: {
4240
+ type: "string"
4241
+ },
4242
+ props: {
4243
+ type: "object",
4244
+ additionalProperties: {}
4245
+ },
4246
+ children: {
4247
+ type: "array",
4248
+ items: {}
4249
+ }
4250
+ },
4251
+ required: [
4252
+ "type"
4253
+ ],
4254
+ additionalProperties: false
4255
+ }
4256
+ }
4257
+ },
4258
+ required: [
4259
+ "type"
4260
+ ],
4261
+ additionalProperties: false,
4262
+ description: "A single item inside a context menu"
4263
+ }
4264
+ },
4265
+ $schema: "http://json-schema.org/draft-07/schema#"
4266
+ },
4267
+ "context-menu-separator": {
4268
+ $ref: "#/definitions/context-menu-separator",
4269
+ definitions: {
4270
+ "context-menu-separator": {
4271
+ type: "object",
4272
+ properties: {
4273
+ type: {
4274
+ type: "string",
4275
+ const: "context-menu-separator"
4276
+ },
4277
+ props: {
4278
+ type: "object",
4279
+ properties: {},
4280
+ additionalProperties: false
4281
+ }
4282
+ },
4283
+ required: [
4284
+ "type"
4285
+ ],
4286
+ additionalProperties: false,
4287
+ description: "A visual separator between context menu items"
4288
+ }
4289
+ },
4290
+ $schema: "http://json-schema.org/draft-07/schema#"
1227
4291
  }
1228
4292
  }
1229
4293
  };