@vielzeug/codex 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/data/refine.json CHANGED
@@ -4,24 +4,6 @@
4
4
  "description": "Base class for all refine errors. Use `instanceof RefineError` to catch any refine-originated error.",
5
5
  "name": "RefineError",
6
6
  "members": [
7
- {
8
- "kind": "method",
9
- "name": "is",
10
- "static": true,
11
- "return": {
12
- "type": {
13
- "text": "err is RefineError"
14
- }
15
- },
16
- "parameters": [
17
- {
18
- "name": "err",
19
- "type": {
20
- "text": "unknown"
21
- }
22
- }
23
- ]
24
- },
25
7
  {
26
8
  "kind": "field",
27
9
  "name": "name"
@@ -41,28 +23,6 @@
41
23
  "module": "src/errors.ts"
42
24
  },
43
25
  "members": [
44
- {
45
- "kind": "method",
46
- "name": "is",
47
- "static": true,
48
- "return": {
49
- "type": {
50
- "text": "err is RefineError"
51
- }
52
- },
53
- "parameters": [
54
- {
55
- "name": "err",
56
- "type": {
57
- "text": "unknown"
58
- }
59
- }
60
- ],
61
- "inheritedFrom": {
62
- "name": "RefineError",
63
- "module": "src/errors.ts"
64
- }
65
- },
66
26
  {
67
27
  "kind": "field",
68
28
  "name": "name",
@@ -932,133 +892,6 @@
932
892
  "default": "{ lg: { '--_min-height': 'var(--size-40)', fontSize: 'var(--text-base)', }, md: { '--_min-height': 'var(--size-32)', fontSize: 'var(--text-sm)', }, sm: { '--_min-height': 'var(--size-28)', fontSize: 'var(--text-xs)', }, } satisfies FullSizePreset",
933
893
  "description": "Shared size preset for the file-input dropzone."
934
894
  },
935
- {
936
- "kind": "variable",
937
- "name": "BREADCRUMB_ITEM_TAG",
938
- "type": {
939
- "text": "'ore-breadcrumb-item'"
940
- },
941
- "default": "'ore-breadcrumb-item'",
942
- "description": "A single breadcrumb entry rendered inside `<ore-breadcrumb>`."
943
- },
944
- {
945
- "kind": "class",
946
- "name": "OreBreadcrumbItemElement",
947
- "tagName": "ore-breadcrumb-item",
948
- "customElement": true,
949
- "description": "A single breadcrumb entry rendered inside `<ore-breadcrumb>`.",
950
- "summary": "",
951
- "attributes": [
952
- {
953
- "name": "active",
954
- "type": {
955
- "text": "boolean"
956
- },
957
- "description": "Marks this item as the current page (`aria-current=\"page\"`)"
958
- },
959
- {
960
- "name": "href",
961
- "type": {
962
- "text": "string"
963
- },
964
- "description": "Link target for this breadcrumb item"
965
- },
966
- {
967
- "name": "separator",
968
- "type": {
969
- "text": "string"
970
- },
971
- "description": "Separator text shown before the item (except first item)"
972
- }
973
- ],
974
- "slots": [
975
- {
976
- "name": "",
977
- "description": "Item label/content"
978
- },
979
- {
980
- "name": "icon",
981
- "description": "Optional leading icon for the crumb"
982
- }
983
- ],
984
- "cssParts": [
985
- {
986
- "name": "separator",
987
- "description": "Separator element before the item label"
988
- },
989
- {
990
- "name": "link",
991
- "description": "The interactive anchor element"
992
- }
993
- ],
994
- "demos": [
995
- {
996
- "url": "",
997
- "description": "```html\n<ore-breadcrumb-item href=\"/\">Home</ore-breadcrumb-item>\n<ore-breadcrumb-item active>Current Page</ore-breadcrumb-item>\n```"
998
- }
999
- ]
1000
- },
1001
- {
1002
- "kind": "variable",
1003
- "name": "BREADCRUMB_TAG",
1004
- "type": {
1005
- "text": "'ore-breadcrumb'"
1006
- },
1007
- "default": "'ore-breadcrumb'",
1008
- "description": "Accessible breadcrumb navigation container."
1009
- },
1010
- {
1011
- "kind": "class",
1012
- "name": "OreBreadcrumbElement",
1013
- "tagName": "ore-breadcrumb",
1014
- "customElement": true,
1015
- "description": "Accessible breadcrumb navigation container.",
1016
- "summary": "",
1017
- "attributes": [
1018
- {
1019
- "name": "label",
1020
- "type": {
1021
- "text": "string"
1022
- },
1023
- "description": "Accessible label for the internal `<nav>` landmark"
1024
- },
1025
- {
1026
- "name": "separator",
1027
- "type": {
1028
- "text": "string"
1029
- },
1030
- "description": "Separator text propagated to child `<ore-breadcrumb-item>` elements"
1031
- }
1032
- ],
1033
- "slots": [
1034
- {
1035
- "name": "",
1036
- "description": "One or more `<ore-breadcrumb-item>` children"
1037
- }
1038
- ],
1039
- "cssParts": [
1040
- {
1041
- "name": "nav",
1042
- "description": "Internal navigation landmark element"
1043
- },
1044
- {
1045
- "name": "list",
1046
- "description": "Internal ordered list container"
1047
- }
1048
- ],
1049
- "cssProperties": [
1050
- {
1051
- "name": "--breadcrumb-separator",
1052
- "description": "Optional custom separator text synced to child items"
1053
- }
1054
- ],
1055
- "demos": [
1056
- {
1057
- "url": "",
1058
- "description": "```html\n<ore-breadcrumb label=\"Page breadcrumb\">\n <ore-breadcrumb-item href=\"/\">Home</ore-breadcrumb-item>\n <ore-breadcrumb-item href=\"/blog\">Blog</ore-breadcrumb-item>\n <ore-breadcrumb-item active>My Post</ore-breadcrumb-item>\n</ore-breadcrumb>\n```"
1059
- }
1060
- ]
1061
- },
1062
895
  {
1063
896
  "kind": "variable",
1064
897
  "name": "AVATAR_GROUP_TAG",
@@ -1251,183 +1084,128 @@
1251
1084
  },
1252
1085
  {
1253
1086
  "kind": "variable",
1254
- "name": "CAROUSEL_SLIDE_TAG",
1255
- "type": {
1256
- "text": "'ore-carousel-slide'"
1257
- },
1258
- "default": "'ore-carousel-slide'"
1259
- },
1260
- {
1261
- "kind": "variable",
1262
- "name": "CAROUSEL_TAG",
1087
+ "name": "BREADCRUMB_ITEM_TAG",
1263
1088
  "type": {
1264
- "text": "'ore-carousel'"
1089
+ "text": "'ore-breadcrumb-item'"
1265
1090
  },
1266
- "default": "'ore-carousel'",
1267
- "description": "An accessible, keyboard-navigable carousel / slideshow with optional\nautoplay, swipe support, and indicator dots.\n\nPlace `<ore-carousel-slide>` elements as direct children."
1091
+ "default": "'ore-breadcrumb-item'",
1092
+ "description": "A single breadcrumb entry rendered inside `<ore-breadcrumb>`."
1268
1093
  },
1269
1094
  {
1270
1095
  "kind": "class",
1271
- "name": "OreCarouselElement",
1272
- "tagName": "ore-carousel",
1096
+ "name": "OreBreadcrumbItemElement",
1097
+ "tagName": "ore-breadcrumb-item",
1273
1098
  "customElement": true,
1274
- "description": "An accessible, keyboard-navigable carousel / slideshow with optional\nautoplay, swipe support, and indicator dots.\nPlace `<ore-carousel-slide>` elements as direct children.",
1099
+ "description": "A single breadcrumb entry rendered inside `<ore-breadcrumb>`.",
1275
1100
  "summary": "",
1276
1101
  "attributes": [
1277
1102
  {
1278
- "name": "color",
1279
- "type": {
1280
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
1281
- },
1282
- "description": "Theme color for navigation buttons: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
1283
- },
1284
- {
1285
- "name": "autoplay",
1103
+ "name": "active",
1286
1104
  "type": {
1287
1105
  "text": "boolean"
1288
1106
  },
1289
- "description": "Advance slides automatically (default false)"
1107
+ "description": "Marks this item as the current page (`aria-current=\"page\"`)"
1290
1108
  },
1291
1109
  {
1292
- "name": "autoplay-interval",
1110
+ "name": "href",
1293
1111
  "type": {
1294
- "text": "number"
1112
+ "text": "string"
1295
1113
  },
1296
- "description": "Milliseconds between automatic advances (default 5000)"
1114
+ "description": "Link target for this breadcrumb item"
1297
1115
  },
1298
1116
  {
1299
- "name": "label",
1117
+ "name": "separator",
1300
1118
  "type": {
1301
1119
  "text": "string"
1302
1120
  },
1303
- "description": "Accessible label for the carousel region"
1304
- },
1121
+ "description": "Separator text shown before the item (except first item)"
1122
+ }
1123
+ ],
1124
+ "slots": [
1305
1125
  {
1306
- "name": "loop",
1307
- "type": {
1308
- "text": "boolean"
1309
- },
1310
- "description": "Loop from last slide to first (default true)"
1126
+ "name": "",
1127
+ "description": "Item label/content"
1311
1128
  },
1312
1129
  {
1313
- "name": "orientation",
1314
- "type": {
1315
- "text": "string"
1316
- },
1317
- "description": "'horizontal' (default) | 'vertical'"
1318
- },
1130
+ "name": "icon",
1131
+ "description": "Optional leading icon for the crumb"
1132
+ }
1133
+ ],
1134
+ "cssParts": [
1319
1135
  {
1320
- "name": "variant",
1321
- "type": {
1322
- "text": "'default' | 'fade' | 'filmstrip' | 'gallery'"
1323
- },
1324
- "description": "'default' | 'fade' | 'filmstrip' | 'gallery'"
1136
+ "name": "separator",
1137
+ "description": "Separator element before the item label"
1325
1138
  },
1326
1139
  {
1327
- "name": "show-controls",
1328
- "type": {
1329
- "text": "boolean"
1330
- },
1331
- "description": "Show prev/next buttons (default true)"
1332
- },
1140
+ "name": "link",
1141
+ "description": "The interactive anchor element"
1142
+ }
1143
+ ],
1144
+ "demos": [
1333
1145
  {
1334
- "name": "show-indicators",
1146
+ "url": "",
1147
+ "description": "```html\n<ore-breadcrumb-item href=\"/\">Home</ore-breadcrumb-item>\n<ore-breadcrumb-item active>Current Page</ore-breadcrumb-item>\n```"
1148
+ }
1149
+ ]
1150
+ },
1151
+ {
1152
+ "kind": "variable",
1153
+ "name": "BREADCRUMB_TAG",
1154
+ "type": {
1155
+ "text": "'ore-breadcrumb'"
1156
+ },
1157
+ "default": "'ore-breadcrumb'",
1158
+ "description": "Accessible breadcrumb navigation container."
1159
+ },
1160
+ {
1161
+ "kind": "class",
1162
+ "name": "OreBreadcrumbElement",
1163
+ "tagName": "ore-breadcrumb",
1164
+ "customElement": true,
1165
+ "description": "Accessible breadcrumb navigation container.",
1166
+ "summary": "",
1167
+ "attributes": [
1168
+ {
1169
+ "name": "label",
1335
1170
  "type": {
1336
- "text": "boolean"
1171
+ "text": "string"
1337
1172
  },
1338
- "description": "Show indicator dots (default true)"
1173
+ "description": "Accessible label for the internal `<nav>` landmark"
1339
1174
  },
1340
1175
  {
1341
- "name": "slide-index",
1176
+ "name": "separator",
1342
1177
  "type": {
1343
- "text": "number"
1178
+ "text": "string"
1344
1179
  },
1345
- "description": "Active slide index (zero-based, default 0)"
1180
+ "description": "Separator text propagated to child `<ore-breadcrumb-item>` elements"
1346
1181
  }
1347
1182
  ],
1348
- "events": [
1349
- {
1350
- "name": "change",
1351
- "description": "Fires when the active slide changes. detail: { index: number }",
1352
- "type": {
1353
- "text": "CustomEvent"
1354
- }
1355
- }
1356
- ],
1357
- "slots": [
1183
+ "slots": [
1358
1184
  {
1359
1185
  "name": "",
1360
- "description": "Place `<ore-carousel-slide>` elements here"
1186
+ "description": "One or more `<ore-breadcrumb-item>` children"
1361
1187
  }
1362
1188
  ],
1363
1189
  "cssParts": [
1364
1190
  {
1365
- "name": "track",
1366
- "description": "The scrolling slide track element"
1367
- },
1368
- {
1369
- "name": "controls",
1370
- "description": "The prev/next button container"
1371
- },
1372
- {
1373
- "name": "indicators",
1374
- "description": "The indicator dots container"
1375
- },
1376
- {
1377
- "name": "prev-btn",
1378
- "description": "The previous-slide button"
1191
+ "name": "nav",
1192
+ "description": "Internal navigation landmark element"
1379
1193
  },
1380
1194
  {
1381
- "name": "next-btn",
1382
- "description": "The next-slide button"
1195
+ "name": "list",
1196
+ "description": "Internal ordered list container"
1383
1197
  }
1384
1198
  ],
1385
1199
  "cssProperties": [
1386
1200
  {
1387
- "name": "--carousel-bg",
1388
- "description": "Slide area background"
1389
- },
1390
- {
1391
- "name": "--carousel-radius",
1392
- "description": "Border radius of the carousel"
1393
- },
1394
- {
1395
- "name": "--carousel-dot-bg",
1396
- "description": "Inactive indicator color (default: var(--color-contrast-300))"
1397
- },
1398
- {
1399
- "name": "--carousel-dot-active-bg",
1400
- "description": "Active indicator / fill color (default: var(--color-contrast-700))"
1401
- },
1402
- {
1403
- "name": "--carousel-transition-duration",
1404
- "description": "Slide transition duration (default 0.35s; 0s under prefers-reduced-motion)."
1405
- },
1406
- {
1407
- "name": "--carousel-min-height",
1408
- "description": "Minimum height when no explicit height is set (default 240px)"
1409
- },
1410
- {
1411
- "name": "--carousel-filmstrip-inactive",
1412
- "description": "Width (horizontal) or height (vertical) of inactive slides in filmstrip mode"
1413
- },
1414
- {
1415
- "name": "--carousel-filmstrip-gap",
1416
- "description": "Gap between slides in filmstrip mode"
1417
- },
1418
- {
1419
- "name": "--carousel-gallery-thumbnail",
1420
- "description": "Width (horizontal) or height (vertical) of thumbnail slides in gallery mode (default var(--size-24))"
1421
- },
1422
- {
1423
- "name": "--carousel-gallery-gap",
1424
- "description": "Gap between slides in gallery mode (default var(--size-2))"
1201
+ "name": "--breadcrumb-separator",
1202
+ "description": "Optional custom separator text synced to child items"
1425
1203
  }
1426
1204
  ],
1427
1205
  "demos": [
1428
1206
  {
1429
1207
  "url": "",
1430
- "description": "```html\n<ore-carousel label=\"Product highlights\" loop>\n <ore-carousel-slide>Slide 1</ore-carousel-slide>\n <ore-carousel-slide>Slide 2</ore-carousel-slide>\n <ore-carousel-slide>Slide 3</ore-carousel-slide>\n</ore-carousel>\n```"
1208
+ "description": "```html\n<ore-breadcrumb label=\"Page breadcrumb\">\n <ore-breadcrumb-item href=\"/\">Home</ore-breadcrumb-item>\n <ore-breadcrumb-item href=\"/blog\">Blog</ore-breadcrumb-item>\n <ore-breadcrumb-item active>My Post</ore-breadcrumb-item>\n</ore-breadcrumb>\n```"
1431
1209
  }
1432
1210
  ]
1433
1211
  },
@@ -1611,6 +1389,188 @@
1611
1389
  }
1612
1390
  ]
1613
1391
  },
1392
+ {
1393
+ "kind": "variable",
1394
+ "name": "CAROUSEL_SLIDE_TAG",
1395
+ "type": {
1396
+ "text": "'ore-carousel-slide'"
1397
+ },
1398
+ "default": "'ore-carousel-slide'"
1399
+ },
1400
+ {
1401
+ "kind": "variable",
1402
+ "name": "CAROUSEL_TAG",
1403
+ "type": {
1404
+ "text": "'ore-carousel'"
1405
+ },
1406
+ "default": "'ore-carousel'",
1407
+ "description": "An accessible, keyboard-navigable carousel / slideshow with optional\nautoplay, swipe support, and indicator dots.\n\nPlace `<ore-carousel-slide>` elements as direct children."
1408
+ },
1409
+ {
1410
+ "kind": "class",
1411
+ "name": "OreCarouselElement",
1412
+ "tagName": "ore-carousel",
1413
+ "customElement": true,
1414
+ "description": "An accessible, keyboard-navigable carousel / slideshow with optional\nautoplay, swipe support, and indicator dots.\nPlace `<ore-carousel-slide>` elements as direct children.",
1415
+ "summary": "",
1416
+ "attributes": [
1417
+ {
1418
+ "name": "color",
1419
+ "type": {
1420
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
1421
+ },
1422
+ "description": "Theme color for navigation buttons: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
1423
+ },
1424
+ {
1425
+ "name": "autoplay",
1426
+ "type": {
1427
+ "text": "boolean"
1428
+ },
1429
+ "description": "Advance slides automatically (default false)"
1430
+ },
1431
+ {
1432
+ "name": "autoplay-interval",
1433
+ "type": {
1434
+ "text": "number"
1435
+ },
1436
+ "description": "Milliseconds between automatic advances (default 5000)"
1437
+ },
1438
+ {
1439
+ "name": "label",
1440
+ "type": {
1441
+ "text": "string"
1442
+ },
1443
+ "description": "Accessible label for the carousel region"
1444
+ },
1445
+ {
1446
+ "name": "loop",
1447
+ "type": {
1448
+ "text": "boolean"
1449
+ },
1450
+ "description": "Loop from last slide to first (default true)"
1451
+ },
1452
+ {
1453
+ "name": "orientation",
1454
+ "type": {
1455
+ "text": "string"
1456
+ },
1457
+ "description": "'horizontal' (default) | 'vertical'"
1458
+ },
1459
+ {
1460
+ "name": "variant",
1461
+ "type": {
1462
+ "text": "'default' | 'fade' | 'filmstrip' | 'gallery'"
1463
+ },
1464
+ "description": "'default' | 'fade' | 'filmstrip' | 'gallery'"
1465
+ },
1466
+ {
1467
+ "name": "show-controls",
1468
+ "type": {
1469
+ "text": "boolean"
1470
+ },
1471
+ "description": "Show prev/next buttons (default true)"
1472
+ },
1473
+ {
1474
+ "name": "show-indicators",
1475
+ "type": {
1476
+ "text": "boolean"
1477
+ },
1478
+ "description": "Show indicator dots (default true)"
1479
+ },
1480
+ {
1481
+ "name": "slide-index",
1482
+ "type": {
1483
+ "text": "number"
1484
+ },
1485
+ "description": "Active slide index (zero-based, default 0)"
1486
+ }
1487
+ ],
1488
+ "events": [
1489
+ {
1490
+ "name": "change",
1491
+ "description": "Fires when the active slide changes. detail: { index: number }",
1492
+ "type": {
1493
+ "text": "CustomEvent"
1494
+ }
1495
+ }
1496
+ ],
1497
+ "slots": [
1498
+ {
1499
+ "name": "",
1500
+ "description": "Place `<ore-carousel-slide>` elements here"
1501
+ }
1502
+ ],
1503
+ "cssParts": [
1504
+ {
1505
+ "name": "track",
1506
+ "description": "The scrolling slide track element"
1507
+ },
1508
+ {
1509
+ "name": "controls",
1510
+ "description": "The prev/next button container"
1511
+ },
1512
+ {
1513
+ "name": "indicators",
1514
+ "description": "The indicator dots container"
1515
+ },
1516
+ {
1517
+ "name": "prev-btn",
1518
+ "description": "The previous-slide button"
1519
+ },
1520
+ {
1521
+ "name": "next-btn",
1522
+ "description": "The next-slide button"
1523
+ }
1524
+ ],
1525
+ "cssProperties": [
1526
+ {
1527
+ "name": "--carousel-bg",
1528
+ "description": "Slide area background"
1529
+ },
1530
+ {
1531
+ "name": "--carousel-radius",
1532
+ "description": "Border radius of the carousel"
1533
+ },
1534
+ {
1535
+ "name": "--carousel-dot-bg",
1536
+ "description": "Inactive indicator color (default: var(--color-contrast-300))"
1537
+ },
1538
+ {
1539
+ "name": "--carousel-dot-active-bg",
1540
+ "description": "Active indicator / fill color (default: var(--color-contrast-700))"
1541
+ },
1542
+ {
1543
+ "name": "--carousel-transition-duration",
1544
+ "description": "Slide transition duration (default 0.35s; 0s under prefers-reduced-motion)."
1545
+ },
1546
+ {
1547
+ "name": "--carousel-min-height",
1548
+ "description": "Minimum height when no explicit height is set (default 240px)"
1549
+ },
1550
+ {
1551
+ "name": "--carousel-filmstrip-inactive",
1552
+ "description": "Width (horizontal) or height (vertical) of inactive slides in filmstrip mode"
1553
+ },
1554
+ {
1555
+ "name": "--carousel-filmstrip-gap",
1556
+ "description": "Gap between slides in filmstrip mode"
1557
+ },
1558
+ {
1559
+ "name": "--carousel-gallery-thumbnail",
1560
+ "description": "Width (horizontal) or height (vertical) of thumbnail slides in gallery mode (default var(--size-24))"
1561
+ },
1562
+ {
1563
+ "name": "--carousel-gallery-gap",
1564
+ "description": "Gap between slides in gallery mode (default var(--size-2))"
1565
+ }
1566
+ ],
1567
+ "demos": [
1568
+ {
1569
+ "url": "",
1570
+ "description": "```html\n<ore-carousel label=\"Product highlights\" loop>\n <ore-carousel-slide>Slide 1</ore-carousel-slide>\n <ore-carousel-slide>Slide 2</ore-carousel-slide>\n <ore-carousel-slide>Slide 3</ore-carousel-slide>\n</ore-carousel>\n```"
1571
+ }
1572
+ ]
1573
+ },
1614
1574
  {
1615
1575
  "kind": "variable",
1616
1576
  "name": "CHAT_MESSAGE_TAG",
@@ -3651,7 +3611,75 @@
3651
3611
  },
3652
3612
  {
3653
3613
  "kind": "variable",
3654
- "name": "TAB_ITEM_TAG",
3614
+ "name": "TAB_PANEL_TAG",
3615
+ "type": {
3616
+ "text": "'ore-tab-panel'"
3617
+ },
3618
+ "default": "'ore-tab-panel'",
3619
+ "description": "Content panel for a tab. Shown when its `value` matches the selected tab."
3620
+ },
3621
+ {
3622
+ "kind": "class",
3623
+ "name": "OreTabPanelElement",
3624
+ "tagName": "ore-tab-panel",
3625
+ "customElement": true,
3626
+ "description": "Content panel for a tab. Shown when its `value` matches the selected tab.",
3627
+ "summary": "",
3628
+ "attributes": [
3629
+ {
3630
+ "name": "value",
3631
+ "type": {
3632
+ "text": "string"
3633
+ },
3634
+ "description": "Must match the corresponding ore-tab-item value"
3635
+ },
3636
+ {
3637
+ "name": "active",
3638
+ "type": {
3639
+ "text": "boolean"
3640
+ },
3641
+ "description": "Toggled by the parent ore-tabs"
3642
+ },
3643
+ {
3644
+ "name": "padding",
3645
+ "type": {
3646
+ "text": "'none' | 'xs' | 'sm' | 'md'"
3647
+ },
3648
+ "description": "Panel padding: 'none' | 'xs' | 'sm' | 'md' (default) | 'lg' | 'xl' | '2xl'"
3649
+ }
3650
+ ],
3651
+ "slots": [
3652
+ {
3653
+ "name": "",
3654
+ "description": "Panel content"
3655
+ }
3656
+ ],
3657
+ "cssParts": [
3658
+ {
3659
+ "name": "panel",
3660
+ "description": "Panel container."
3661
+ }
3662
+ ],
3663
+ "cssProperties": [
3664
+ {
3665
+ "name": "--tab-panel-padding",
3666
+ "description": "Inner padding of the panel content area"
3667
+ },
3668
+ {
3669
+ "name": "--tab-panel-font-size",
3670
+ "description": "Font size of the panel content"
3671
+ }
3672
+ ],
3673
+ "demos": [
3674
+ {
3675
+ "url": "",
3676
+ "description": "```html\n<ore-tab-panel value=\"overview\"><p>Overview content here</p></ore-tab-panel>\n<ore-tab-panel value=\"settings\" padding=\"lg\"><p>Large padding</p></ore-tab-panel>\n<ore-tab-panel value=\"code\" padding=\"none\"><pre>No padding for code</pre></ore-tab-panel>\n```"
3677
+ }
3678
+ ]
3679
+ },
3680
+ {
3681
+ "kind": "variable",
3682
+ "name": "TAB_ITEM_TAG",
3655
3683
  "type": {
3656
3684
  "text": "'ore-tab-item'"
3657
3685
  },
@@ -3774,74 +3802,6 @@
3774
3802
  }
3775
3803
  ]
3776
3804
  },
3777
- {
3778
- "kind": "variable",
3779
- "name": "TAB_PANEL_TAG",
3780
- "type": {
3781
- "text": "'ore-tab-panel'"
3782
- },
3783
- "default": "'ore-tab-panel'",
3784
- "description": "Content panel for a tab. Shown when its `value` matches the selected tab."
3785
- },
3786
- {
3787
- "kind": "class",
3788
- "name": "OreTabPanelElement",
3789
- "tagName": "ore-tab-panel",
3790
- "customElement": true,
3791
- "description": "Content panel for a tab. Shown when its `value` matches the selected tab.",
3792
- "summary": "",
3793
- "attributes": [
3794
- {
3795
- "name": "value",
3796
- "type": {
3797
- "text": "string"
3798
- },
3799
- "description": "Must match the corresponding ore-tab-item value"
3800
- },
3801
- {
3802
- "name": "active",
3803
- "type": {
3804
- "text": "boolean"
3805
- },
3806
- "description": "Toggled by the parent ore-tabs"
3807
- },
3808
- {
3809
- "name": "padding",
3810
- "type": {
3811
- "text": "'none' | 'xs' | 'sm' | 'md'"
3812
- },
3813
- "description": "Panel padding: 'none' | 'xs' | 'sm' | 'md' (default) | 'lg' | 'xl' | '2xl'"
3814
- }
3815
- ],
3816
- "slots": [
3817
- {
3818
- "name": "",
3819
- "description": "Panel content"
3820
- }
3821
- ],
3822
- "cssParts": [
3823
- {
3824
- "name": "panel",
3825
- "description": "Panel container."
3826
- }
3827
- ],
3828
- "cssProperties": [
3829
- {
3830
- "name": "--tab-panel-padding",
3831
- "description": "Inner padding of the panel content area"
3832
- },
3833
- {
3834
- "name": "--tab-panel-font-size",
3835
- "description": "Font size of the panel content"
3836
- }
3837
- ],
3838
- "demos": [
3839
- {
3840
- "url": "",
3841
- "description": "```html\n<ore-tab-panel value=\"overview\"><p>Overview content here</p></ore-tab-panel>\n<ore-tab-panel value=\"settings\" padding=\"lg\"><p>Large padding</p></ore-tab-panel>\n<ore-tab-panel value=\"code\" padding=\"none\"><pre>No padding for code</pre></ore-tab-panel>\n```"
3842
- }
3843
- ]
3844
- },
3845
3805
  {
3846
3806
  "kind": "variable",
3847
3807
  "name": "TABS_CTX",
@@ -4597,239 +4557,170 @@
4597
4557
  },
4598
4558
  {
4599
4559
  "kind": "variable",
4600
- "name": "PROGRESS_TAG",
4560
+ "name": "PASSWORD_STRENGTH_TAG",
4601
4561
  "type": {
4602
- "text": "'ore-progress'"
4562
+ "text": "'ore-password-strength'"
4603
4563
  },
4604
- "default": "'ore-progress'",
4605
- "description": "A linear progress bar for conveying operation progress.\nSupports determinate (known value) and indeterminate (unknown duration) modes."
4564
+ "default": "'ore-password-strength'",
4565
+ "description": "Strong password meter with segmented progress visualization.\n\nBuilt-in scoring is heuristic and conservative:\n- length < 6 => weak\n- length >= 8 with mixed case => fair\n- + digit or symbol => good\n- length >= 12 with mixed case, digit and symbol => strong"
4606
4566
  },
4607
4567
  {
4608
4568
  "kind": "class",
4609
- "name": "OreProgressElement",
4610
- "tagName": "ore-progress",
4569
+ "name": "OrePasswordStrengthElement",
4570
+ "tagName": "ore-password-strength",
4611
4571
  "customElement": true,
4612
- "description": "A linear progress bar for conveying operation progress.\nSupports determinate (known value) and indeterminate (unknown duration) modes.",
4572
+ "description": "Strong password meter with segmented progress visualization.\nBuilt-in scoring is heuristic and conservative:\n- length < 6 => weak\n- length >= 8 with mixed case => fair\n- + digit or symbol => good\n- length >= 12 with mixed case, digit and symbol => strong",
4613
4573
  "summary": "",
4614
4574
  "attributes": [
4615
4575
  {
4616
4576
  "name": "value",
4617
4577
  "type": {
4618
- "text": "number"
4578
+ "text": "string"
4619
4579
  },
4620
- "description": "Current value (0–max). Defaults to 0."
4580
+ "description": "Password string to evaluate"
4621
4581
  },
4622
4582
  {
4623
- "name": "max",
4583
+ "name": "score",
4624
4584
  "type": {
4625
4585
  "text": "number"
4626
4586
  },
4627
- "description": "Maximum value. Defaults to 100."
4587
+ "description": "Optional score override (0..4). Use -1 for no override (default: -1)",
4588
+ "default": "-1"
4628
4589
  },
4629
4590
  {
4630
- "name": "indeterminate",
4591
+ "name": "show-label",
4631
4592
  "type": {
4632
4593
  "text": "boolean"
4633
4594
  },
4634
- "description": "Show infinite animation (ignores value/max)."
4635
- },
4636
- {
4637
- "name": "color",
4638
- "type": {
4639
- "text": "'primary' | 'success' | 'warning' | 'error'"
4640
- },
4641
- "description": "Theme color: 'primary' | 'success' | 'warning' | 'error' | …"
4642
- },
4643
- {
4644
- "name": "size",
4645
- "type": {
4646
- "text": "'sm' | 'md' | 'lg'"
4647
- },
4648
- "description": "Bar height/width: 'sm' | 'md' | 'lg'"
4649
- },
4650
- {
4651
- "name": "type",
4652
- "type": {
4653
- "text": "'circular' | 'vertical'"
4654
- },
4655
- "description": "'linear' (default) | 'circular' | 'vertical'"
4595
+ "description": "Show visible feedback label (default: true)",
4596
+ "default": "true"
4656
4597
  },
4657
4598
  {
4658
4599
  "name": "label",
4659
4600
  "type": {
4660
4601
  "text": "string"
4661
4602
  },
4662
- "description": "Visible text label + accessible name. Linear: at bar end (or header row with title). Circular: large text centered inside the ring."
4663
- },
4664
- {
4665
- "name": "title",
4666
- "type": {
4667
- "text": "string"
4668
- },
4669
- "description": "Title text. Linear: header above the bar (moves label to header row). Circular: smaller text below the label inside the ring."
4670
- },
4671
- {
4672
- "name": "floating-label",
4673
- "type": {
4674
- "text": "string"
4675
- },
4676
- "description": "Floating chip centered above the fill endpoint (linear only); hidden when indeterminate."
4677
- }
4678
- ],
4679
- "cssParts": [
4680
- {
4681
- "name": "fill",
4682
- "description": "Progress fill element."
4603
+ "description": "Accessible name (default: 'Password strength')",
4604
+ "default": "'Password strength'"
4683
4605
  }
4684
4606
  ],
4685
4607
  "cssProperties": [
4686
4608
  {
4687
- "name": "--progress-width",
4688
- "description": "Bar width override (vertical only)"
4689
- },
4690
- {
4691
- "name": "--progress-height",
4692
- "description": "Bar height override"
4609
+ "name": "--password-strength-height Segment bar height",
4610
+ "description": ""
4693
4611
  },
4694
4612
  {
4695
- "name": "--progress-track-bg",
4696
- "description": "Track background color"
4613
+ "name": "--password-strength-gap Gap between segments",
4614
+ "description": ""
4697
4615
  },
4698
4616
  {
4699
- "name": "--progress-fill",
4700
- "description": "Fill bar color"
4617
+ "name": "--password-strength-radius Segment corner radius",
4618
+ "description": ""
4701
4619
  },
4702
4620
  {
4703
- "name": "--progress-radius",
4704
- "description": "Border radius"
4621
+ "name": "--password-strength-track-bg Inactive segment color",
4622
+ "description": ""
4705
4623
  },
4706
4624
  {
4707
- "name": "--progress-label-gap",
4708
- "description": "Gap between header/bar row and between bar and trailing label (default 0.25 rem)"
4625
+ "name": "--password-strength-label-size Visible label font size",
4626
+ "description": ""
4709
4627
  },
4710
4628
  {
4711
- "name": "--progress-title-color",
4712
- "description": "Title text color (defaults to currentColor)"
4629
+ "name": "--password-strength-label-color Visible label color",
4630
+ "description": ""
4713
4631
  },
4714
4632
  {
4715
- "name": "--progress-label-color",
4716
- "description": "Label text color (defaults to currentColor)"
4633
+ "name": "--password-strength-weak-color Weak state segment color",
4634
+ "description": ""
4717
4635
  },
4718
4636
  {
4719
- "name": "--progress-circle-size",
4720
- "description": "Circular indicator diameter (default 6rem)"
4637
+ "name": "--password-strength-fair-color Fair state segment color",
4638
+ "description": ""
4721
4639
  },
4722
4640
  {
4723
- "name": "--progress-circular-label-size",
4724
- "description": "Font size of the label inside the ring (default --text-xl)"
4641
+ "name": "--password-strength-good-color Good state segment color",
4642
+ "description": ""
4725
4643
  },
4726
4644
  {
4727
- "name": "--progress-circular-title-size",
4728
- "description": "Font size of the title inside the ring (default --text-xs)"
4645
+ "name": "--password-strength-strong-color Strong state segment color",
4646
+ "description": ""
4729
4647
  }
4730
4648
  ],
4731
4649
  "demos": [
4732
4650
  {
4733
4651
  "url": "",
4734
- "description": "```html\n<ore-progress value=\"45\"></ore-progress>\n<ore-progress value=\"75\" max=\"100\" color=\"success\" size=\"lg\"></ore-progress>\n<ore-progress indeterminate color=\"primary\" label=\"Loading…\"></ore-progress>\n```"
4652
+ "description": "```html\n<!-- Pair with an ore-input to evaluate in real time -->\n<ore-input type=\"password\" label=\"Password\" name=\"password\" id=\"pwd\"></ore-input>\n<ore-password-strength id=\"meter\"></ore-password-strength>\n<script type=\"module\">\n document.getElementById('pwd').addEventListener('input', (e) => {\n document.getElementById('meter').value = e.target.value;\n });\n</script>\n<!-- Fixed score display (e.g. from a server-side score) -->\n<ore-password-strength score=\"3\"></ore-password-strength>\n```"
4735
4653
  }
4736
4654
  ]
4737
4655
  },
4738
4656
  {
4739
4657
  "kind": "variable",
4740
- "name": "PASSWORD_STRENGTH_TAG",
4658
+ "name": "TYPING_INDICATOR_TAG",
4741
4659
  "type": {
4742
- "text": "'ore-password-strength'"
4660
+ "text": "'ore-typing-indicator'"
4743
4661
  },
4744
- "default": "'ore-password-strength'",
4745
- "description": "Strong password meter with segmented progress visualization.\n\nBuilt-in scoring is heuristic and conservative:\n- length < 6 => weak\n- length >= 8 with mixed case => fair\n- + digit or symbol => good\n- length >= 12 with mixed case, digit and symbol => strong"
4662
+ "default": "'ore-typing-indicator'",
4663
+ "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply —\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\n\nThe dots are decorative (`aria-hidden`) `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set) is the same pattern already used for other\ntransient status messages across this package."
4746
4664
  },
4747
4665
  {
4748
4666
  "kind": "class",
4749
- "name": "OrePasswordStrengthElement",
4750
- "tagName": "ore-password-strength",
4667
+ "name": "OreTypingIndicatorElement",
4668
+ "tagName": "ore-typing-indicator",
4751
4669
  "customElement": true,
4752
- "description": "Strong password meter with segmented progress visualization.\nBuilt-in scoring is heuristic and conservative:\n- length < 6 => weak\n- length >= 8 with mixed case => fair\n- + digit or symbol => good\n- length >= 12 with mixed case, digit and symbol => strong",
4670
+ "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply —\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\nThe dots are decorative (`aria-hidden`) `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set) is the same pattern already used for other\ntransient status messages across this package.",
4753
4671
  "summary": "",
4754
4672
  "attributes": [
4755
4673
  {
4756
- "name": "value",
4674
+ "name": "label",
4757
4675
  "type": {
4758
4676
  "text": "string"
4759
4677
  },
4760
- "description": "Password string to evaluate"
4761
- },
4762
- {
4763
- "name": "score",
4764
- "type": {
4765
- "text": "number"
4766
- },
4767
- "description": "Optional score override (0..4). Use -1 for no override (default: -1)",
4768
- "default": "-1"
4678
+ "description": "Accessible label announced once via a polite live region (default: \"Typing…\")",
4679
+ "default": "\"Typing…\""
4769
4680
  },
4770
4681
  {
4771
- "name": "show-label",
4682
+ "name": "color",
4772
4683
  "type": {
4773
- "text": "boolean"
4684
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
4774
4685
  },
4775
- "description": "Show visible feedback label (default: true)",
4776
- "default": "true"
4686
+ "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
4777
4687
  },
4778
4688
  {
4779
- "name": "label",
4689
+ "name": "size",
4780
4690
  "type": {
4781
- "text": "string"
4691
+ "text": "'sm' | 'md' | 'lg'"
4782
4692
  },
4783
- "description": "Accessible name (default: 'Password strength')",
4784
- "default": "'Password strength'"
4693
+ "description": "'sm' | 'md' | 'lg'"
4785
4694
  }
4786
4695
  ],
4787
- "cssProperties": [
4788
- {
4789
- "name": "--password-strength-height Segment bar height",
4790
- "description": ""
4791
- },
4792
- {
4793
- "name": "--password-strength-gap Gap between segments",
4794
- "description": ""
4795
- },
4796
- {
4797
- "name": "--password-strength-radius Segment corner radius",
4798
- "description": ""
4799
- },
4800
- {
4801
- "name": "--password-strength-track-bg Inactive segment color",
4802
- "description": ""
4803
- },
4804
- {
4805
- "name": "--password-strength-label-size Visible label font size",
4806
- "description": ""
4807
- },
4696
+ "cssParts": [
4808
4697
  {
4809
- "name": "--password-strength-label-color Visible label color",
4810
- "description": ""
4698
+ "name": "dots",
4699
+ "description": "Dots container."
4811
4700
  },
4812
4701
  {
4813
- "name": "--password-strength-weak-color Weak state segment color",
4814
- "description": ""
4815
- },
4702
+ "name": "dot",
4703
+ "description": "Individual dot element."
4704
+ }
4705
+ ],
4706
+ "cssProperties": [
4816
4707
  {
4817
- "name": "--password-strength-fair-color Fair state segment color",
4818
- "description": ""
4708
+ "name": "--typing-indicator-color",
4709
+ "description": "Dot color"
4819
4710
  },
4820
4711
  {
4821
- "name": "--password-strength-good-color Good state segment color",
4822
- "description": ""
4712
+ "name": "--typing-indicator-size",
4713
+ "description": "Dot diameter"
4823
4714
  },
4824
4715
  {
4825
- "name": "--password-strength-strong-color Strong state segment color",
4826
- "description": ""
4716
+ "name": "--typing-indicator-gap",
4717
+ "description": "Gap between dots"
4827
4718
  }
4828
4719
  ],
4829
4720
  "demos": [
4830
4721
  {
4831
4722
  "url": "",
4832
- "description": "```html\n<!-- Pair with an ore-input to evaluate in real time -->\n<ore-input type=\"password\" label=\"Password\" name=\"password\" id=\"pwd\"></ore-input>\n<ore-password-strength id=\"meter\"></ore-password-strength>\n<script type=\"module\">\n document.getElementById('pwd').addEventListener('input', (e) => {\n document.getElementById('meter').value = e.target.value;\n });\n</script>\n<!-- Fixed score display (e.g. from a server-side score) -->\n<ore-password-strength score=\"3\"></ore-password-strength>\n```"
4723
+ "description": "```html\n<ore-typing-indicator></ore-typing-indicator>\n<ore-typing-indicator label=\"Assistant is typing…\" color=\"primary\"></ore-typing-indicator>\n```"
4833
4724
  }
4834
4725
  ]
4835
4726
  },
@@ -5032,245 +4923,384 @@
5032
4923
  },
5033
4924
  {
5034
4925
  "kind": "variable",
5035
- "name": "TYPING_INDICATOR_TAG",
4926
+ "name": "PROGRESS_TAG",
5036
4927
  "type": {
5037
- "text": "'ore-typing-indicator'"
4928
+ "text": "'ore-progress'"
5038
4929
  },
5039
- "default": "'ore-typing-indicator'",
5040
- "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply —\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\n\nThe dots are decorative (`aria-hidden`) — `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set) is the same pattern already used for other\ntransient status messages across this package."
4930
+ "default": "'ore-progress'",
4931
+ "description": "A linear progress bar for conveying operation progress.\nSupports determinate (known value) and indeterminate (unknown duration) modes."
5041
4932
  },
5042
4933
  {
5043
4934
  "kind": "class",
5044
- "name": "OreTypingIndicatorElement",
5045
- "tagName": "ore-typing-indicator",
4935
+ "name": "OreProgressElement",
4936
+ "tagName": "ore-progress",
5046
4937
  "customElement": true,
5047
- "description": "Three bouncing dots signaling that the other side of a conversation is composing a reply —\nthe moment before any content exists. For a message whose content is already streaming in,\nuse `ore-chat-message`'s `streaming` attribute (a blinking cursor) instead.\nThe dots are decorative (`aria-hidden`) — `label` is the entire accessibility contract,\nannounced through the shared singleton live region (`core/announcer.ts`) rather than a\nstatic `aria-live` element in the template. A live region populated in the same paint as\nits own insertion is unreliable across browsers/screen readers; routing through the shared\nannouncer (pre-existing region, clear-then-set) is the same pattern already used for other\ntransient status messages across this package.",
4938
+ "description": "A linear progress bar for conveying operation progress.\nSupports determinate (known value) and indeterminate (unknown duration) modes.",
5048
4939
  "summary": "",
5049
4940
  "attributes": [
5050
4941
  {
5051
- "name": "label",
4942
+ "name": "value",
5052
4943
  "type": {
5053
- "text": "string"
4944
+ "text": "number"
5054
4945
  },
5055
- "description": "Accessible label announced once via a polite live region (default: \"Typing…\")",
5056
- "default": "\"Typing…\""
4946
+ "description": "Current value (0–max). Defaults to 0."
4947
+ },
4948
+ {
4949
+ "name": "max",
4950
+ "type": {
4951
+ "text": "number"
4952
+ },
4953
+ "description": "Maximum value. Defaults to 100."
4954
+ },
4955
+ {
4956
+ "name": "indeterminate",
4957
+ "type": {
4958
+ "text": "boolean"
4959
+ },
4960
+ "description": "Show infinite animation (ignores value/max)."
5057
4961
  },
5058
4962
  {
5059
4963
  "name": "color",
5060
4964
  "type": {
5061
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
4965
+ "text": "'primary' | 'success' | 'warning' | 'error'"
5062
4966
  },
5063
- "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
4967
+ "description": "Theme color: 'primary' | 'success' | 'warning' | 'error' | "
5064
4968
  },
5065
4969
  {
5066
4970
  "name": "size",
5067
4971
  "type": {
5068
4972
  "text": "'sm' | 'md' | 'lg'"
5069
4973
  },
5070
- "description": "'sm' | 'md' | 'lg'"
4974
+ "description": "Bar height/width: 'sm' | 'md' | 'lg'"
4975
+ },
4976
+ {
4977
+ "name": "type",
4978
+ "type": {
4979
+ "text": "'circular' | 'vertical'"
4980
+ },
4981
+ "description": "'linear' (default) | 'circular' | 'vertical'"
4982
+ },
4983
+ {
4984
+ "name": "label",
4985
+ "type": {
4986
+ "text": "string"
4987
+ },
4988
+ "description": "Visible text label + accessible name. Linear: at bar end (or header row with title). Circular: large text centered inside the ring."
4989
+ },
4990
+ {
4991
+ "name": "title",
4992
+ "type": {
4993
+ "text": "string"
4994
+ },
4995
+ "description": "Title text. Linear: header above the bar (moves label to header row). Circular: smaller text below the label inside the ring."
4996
+ },
4997
+ {
4998
+ "name": "floating-label",
4999
+ "type": {
5000
+ "text": "string"
5001
+ },
5002
+ "description": "Floating chip centered above the fill endpoint (linear only); hidden when indeterminate."
5071
5003
  }
5072
5004
  ],
5073
5005
  "cssParts": [
5074
5006
  {
5075
- "name": "dots",
5076
- "description": "Dots container."
5077
- },
5078
- {
5079
- "name": "dot",
5080
- "description": "Individual dot element."
5007
+ "name": "fill",
5008
+ "description": "Progress fill element."
5081
5009
  }
5082
5010
  ],
5083
5011
  "cssProperties": [
5084
5012
  {
5085
- "name": "--typing-indicator-color",
5086
- "description": "Dot color"
5013
+ "name": "--progress-width",
5014
+ "description": "Bar width override (vertical only)"
5087
5015
  },
5088
5016
  {
5089
- "name": "--typing-indicator-size",
5090
- "description": "Dot diameter"
5017
+ "name": "--progress-height",
5018
+ "description": "Bar height override"
5091
5019
  },
5092
5020
  {
5093
- "name": "--typing-indicator-gap",
5094
- "description": "Gap between dots"
5021
+ "name": "--progress-track-bg",
5022
+ "description": "Track background color"
5023
+ },
5024
+ {
5025
+ "name": "--progress-fill",
5026
+ "description": "Fill bar color"
5027
+ },
5028
+ {
5029
+ "name": "--progress-radius",
5030
+ "description": "Border radius"
5031
+ },
5032
+ {
5033
+ "name": "--progress-label-gap",
5034
+ "description": "Gap between header/bar row and between bar and trailing label (default 0.25 rem)"
5035
+ },
5036
+ {
5037
+ "name": "--progress-title-color",
5038
+ "description": "Title text color (defaults to currentColor)"
5039
+ },
5040
+ {
5041
+ "name": "--progress-label-color",
5042
+ "description": "Label text color (defaults to currentColor)"
5043
+ },
5044
+ {
5045
+ "name": "--progress-circle-size",
5046
+ "description": "Circular indicator diameter (default 6rem)"
5047
+ },
5048
+ {
5049
+ "name": "--progress-circular-label-size",
5050
+ "description": "Font size of the label inside the ring (default --text-xl)"
5051
+ },
5052
+ {
5053
+ "name": "--progress-circular-title-size",
5054
+ "description": "Font size of the title inside the ring (default --text-xs)"
5095
5055
  }
5096
5056
  ],
5097
5057
  "demos": [
5098
5058
  {
5099
5059
  "url": "",
5100
- "description": "```html\n<ore-typing-indicator></ore-typing-indicator>\n<ore-typing-indicator label=\"Assistant is typing…\" color=\"primary\"></ore-typing-indicator>\n```"
5060
+ "description": "```html\n<ore-progress value=\"45\"></ore-progress>\n<ore-progress value=\"75\" max=\"100\" color=\"success\" size=\"lg\"></ore-progress>\n<ore-progress indeterminate color=\"primary\" label=\"Loading…\"></ore-progress>\n```"
5101
5061
  }
5102
5062
  ]
5103
5063
  },
5104
5064
  {
5105
5065
  "kind": "variable",
5106
- "name": "BUTTON_GROUP_CTX"
5066
+ "name": "BUTTON_VARIANTS",
5067
+ "type": {
5068
+ "text": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text', 'frost']"
5069
+ },
5070
+ "default": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text', 'frost']"
5107
5071
  },
5108
5072
  {
5109
5073
  "kind": "variable",
5110
- "name": "BUTTON_GROUP_TAG",
5074
+ "name": "BUTTON_TAG",
5111
5075
  "type": {
5112
- "text": "'ore-button-group'"
5076
+ "text": "'ore-button'"
5113
5077
  },
5114
- "default": "'ore-button-group'",
5115
- "description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant."
5078
+ "default": "'ore-button'",
5079
+ "description": "A customizable button component with multiple variants, sizes, and states.\nSupports icons, loading states, and animated border effects."
5116
5080
  },
5117
5081
  {
5118
5082
  "kind": "class",
5119
- "name": "OreButtonGroupElement",
5120
- "tagName": "ore-button-group",
5083
+ "name": "OreButtonElement",
5084
+ "tagName": "ore-button",
5121
5085
  "customElement": true,
5122
- "description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant.",
5086
+ "description": "A customizable button component with multiple variants, sizes, and states.\nSupports icons, loading states, and animated border effects.",
5123
5087
  "summary": "",
5124
5088
  "attributes": [
5125
5089
  {
5126
- "name": "attached",
5090
+ "name": "type",
5127
5091
  "type": {
5128
- "text": "boolean"
5092
+ "text": "'button' | 'submit' | 'reset'"
5129
5093
  },
5130
- "description": "Join buttons together into a unit"
5094
+ "description": "HTML button type: 'button' | 'submit' | 'reset'"
5131
5095
  },
5132
5096
  {
5133
- "name": "color",
5097
+ "name": "disabled",
5134
5098
  "type": {
5135
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5099
+ "text": "boolean"
5136
5100
  },
5137
- "description": "Shared color tint: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5101
+ "description": "Disable button interaction"
5138
5102
  },
5139
5103
  {
5140
- "name": "fullwidth",
5104
+ "name": "loading",
5141
5105
  "type": {
5142
5106
  "text": "boolean"
5143
5107
  },
5144
- "description": "Group spans full width"
5108
+ "description": "Show loading state with spinner"
5145
5109
  },
5146
5110
  {
5147
- "name": "label",
5111
+ "name": "color",
5148
5112
  "type": {
5149
- "text": "string"
5113
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5150
5114
  },
5151
- "description": "Accessible label"
5115
+ "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5152
5116
  },
5153
5117
  {
5154
- "name": "orientation",
5118
+ "name": "variant",
5155
5119
  "type": {
5156
- "text": "'horizontal' | 'vertical'"
5120
+ "text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost'"
5157
5121
  },
5158
- "description": "'horizontal' | 'vertical'"
5122
+ "description": "Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost'"
5123
+ },
5124
+ {
5125
+ "name": "size",
5126
+ "type": {
5127
+ "text": "'sm' | 'md' | 'lg'"
5128
+ },
5129
+ "description": "Button size: 'sm' | 'md' | 'lg'"
5159
5130
  },
5160
5131
  {
5161
5132
  "name": "rounded",
5162
5133
  "type": {
5163
5134
  "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5164
5135
  },
5165
- "description": "Corner radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full' (bare attribute defaults to 'full')"
5136
+ "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5166
5137
  },
5167
5138
  {
5168
- "name": "size",
5139
+ "name": "effect",
5169
5140
  "type": {
5170
- "text": "'sm' | 'md' | 'lg'"
5141
+ "text": "'shine' | 'rainbow'"
5171
5142
  },
5172
- "description": "Shared size: 'sm' | 'md' | 'lg'"
5143
+ "description": "Animated border effect: 'shine' | 'rainbow'"
5173
5144
  },
5174
5145
  {
5175
- "name": "variant",
5146
+ "name": "icon-only",
5176
5147
  "type": {
5177
- "text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
5148
+ "text": "boolean"
5178
5149
  },
5179
- "description": "Shared visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
5150
+ "description": "Icon-only mode (square aspect ratio, no padding)"
5151
+ },
5152
+ {
5153
+ "name": "fullwidth",
5154
+ "type": {
5155
+ "text": "boolean"
5156
+ },
5157
+ "description": "Full width button (100% of container)"
5158
+ },
5159
+ {
5160
+ "name": "fullheight",
5161
+ "type": {
5162
+ "text": "boolean"
5163
+ },
5164
+ "description": "Full height button (100% of container)"
5165
+ }
5166
+ ],
5167
+ "events": [
5168
+ {
5169
+ "name": "click",
5170
+ "description": "Emitted when button is clicked (unless disabled/loading)",
5171
+ "type": {
5172
+ "text": "CustomEvent"
5173
+ }
5180
5174
  }
5181
5175
  ],
5182
5176
  "slots": [
5183
5177
  {
5184
5178
  "name": "",
5185
- "description": "Place ore-button elements here"
5179
+ "description": "Button content (text, icons, etc.)"
5180
+ },
5181
+ {
5182
+ "name": "prefix",
5183
+ "description": "Content before the button text (e.g., icons)"
5184
+ },
5185
+ {
5186
+ "name": "suffix",
5187
+ "description": "Content after the button text (e.g., icons, badges)"
5186
5188
  }
5187
5189
  ],
5188
5190
  "cssParts": [
5189
5191
  {
5190
- "name": "group",
5191
- "description": "Group container."
5192
+ "name": "button",
5193
+ "description": "The inner button or anchor element"
5194
+ },
5195
+ {
5196
+ "name": "loader",
5197
+ "description": "The loading spinner element"
5198
+ },
5199
+ {
5200
+ "name": "content",
5201
+ "description": "The button content wrapper"
5192
5202
  }
5193
5203
  ],
5194
5204
  "cssProperties": [
5195
5205
  {
5196
- "name": "--group-gap",
5197
- "description": "Gap between buttons (non-attached mode)"
5206
+ "name": "--button-bg",
5207
+ "description": "Background color override"
5198
5208
  },
5199
5209
  {
5200
- "name": "--group-radius",
5201
- "description": "Border radius of the group container, defaults to the `rounded` attribute's token"
5210
+ "name": "--button-color",
5211
+ "description": "Text color override"
5212
+ },
5213
+ {
5214
+ "name": "--button-border",
5215
+ "description": "Border width override"
5216
+ },
5217
+ {
5218
+ "name": "--button-border-color",
5219
+ "description": "Border color override"
5202
5220
  },
5203
5221
  {
5204
5222
  "name": "--button-radius",
5205
- "description": "Passed through to child buttons to control corner radius"
5223
+ "description": "Border radius override"
5206
5224
  },
5207
5225
  {
5208
- "name": "--button-border-start",
5209
- "description": "Passed through to suppress start borders in attached mode"
5226
+ "name": "--button-padding",
5227
+ "description": "Inner padding override"
5210
5228
  },
5211
5229
  {
5212
- "name": "--button-border-top",
5213
- "description": "Passed through to suppress top borders in vertical attached mode"
5230
+ "name": "--button-gap",
5231
+ "description": "Gap between icon and text override"
5232
+ },
5233
+ {
5234
+ "name": "--button-font-size",
5235
+ "description": "Font size override"
5236
+ },
5237
+ {
5238
+ "name": "--button-frost-active-bg",
5239
+ "description": "Background when pressed (frost variant)"
5240
+ },
5241
+ {
5242
+ "name": "--button-frost-active-border-color",
5243
+ "description": "Border color when pressed (frost variant)"
5214
5244
  }
5215
5245
  ],
5216
5246
  "demos": [
5217
5247
  {
5218
5248
  "url": "",
5219
- "description": "```html\n<ore-button-group attached rounded=\"full\">\n <ore-button variant=\"solid\" color=\"primary\">Save</ore-button>\n <ore-button variant=\"solid\" color=\"primary\">Save &amp; Continue</ore-button>\n</ore-button-group>\n<ore-button-group orientation=\"vertical\" size=\"sm\">\n <ore-button>Top</ore-button>\n <ore-button>Middle</ore-button>\n <ore-button>Bottom</ore-button>\n</ore-button-group>\n```"
5249
+ "description": "```html\n<ore-button variant=\"solid\" color=\"primary\">Click me</ore-button>\n<ore-button loading color=\"success\">Processing...</ore-button>\n<ore-button effect=\"shine\" color=\"primary\">Shine</ore-button>\n<ore-button effect=\"rainbow\" variant=\"frost\">Rainbow</ore-button>\n```"
5220
5250
  }
5221
5251
  ]
5222
5252
  },
5223
5253
  {
5224
5254
  "kind": "variable",
5225
- "name": "CALENDAR_TAG",
5255
+ "name": "CHECKBOX_TAG",
5226
5256
  "type": {
5227
- "text": "'ore-calendar'"
5257
+ "text": "'ore-checkbox'"
5228
5258
  },
5229
- "default": "'ore-calendar'",
5230
- "description": "An accessible, keyboard-navigable inline calendar component.\nSupports day/month/year drill-down views, min/max bounds, disabled weekend\ndays, and optional form association."
5259
+ "default": "'ore-checkbox'",
5260
+ "description": "A customizable checkbox component with theme colors, sizes, and indeterminate state support."
5231
5261
  },
5232
5262
  {
5233
5263
  "kind": "class",
5234
- "name": "OreCalendarElement",
5235
- "tagName": "ore-calendar",
5264
+ "name": "OreCheckboxElement",
5265
+ "tagName": "ore-checkbox",
5236
5266
  "customElement": true,
5237
- "description": "An accessible, keyboard-navigable inline calendar component.\nSupports day/month/year drill-down views, min/max bounds, disabled weekend\ndays, and optional form association.",
5267
+ "description": "A customizable checkbox component with theme colors, sizes, and indeterminate state support.",
5238
5268
  "summary": "",
5239
5269
  "attributes": [
5240
5270
  {
5241
- "name": "value",
5271
+ "name": "checked",
5242
5272
  "type": {
5243
- "text": "string"
5273
+ "text": "boolean"
5244
5274
  },
5245
- "description": "Selected date in ISO 8601 format (yyyy-MM-dd)"
5275
+ "description": "Checked state"
5246
5276
  },
5247
5277
  {
5248
- "name": "min",
5278
+ "name": "disabled",
5249
5279
  "type": {
5250
- "text": "string"
5280
+ "text": "boolean"
5251
5281
  },
5252
- "description": "Minimum selectable date (yyyy-MM-dd)"
5282
+ "description": "Disable checkbox interaction"
5253
5283
  },
5254
5284
  {
5255
- "name": "max",
5285
+ "name": "indeterminate",
5256
5286
  "type": {
5257
- "text": "string"
5287
+ "text": "boolean"
5258
5288
  },
5259
- "description": "Maximum selectable date (yyyy-MM-dd)"
5289
+ "description": "Indeterminate (partially checked) state"
5260
5290
  },
5261
5291
  {
5262
- "name": "disabled",
5292
+ "name": "required",
5263
5293
  "type": {
5264
5294
  "text": "boolean"
5265
5295
  },
5266
- "description": "Disable all interaction"
5296
+ "description": "Require this checkbox to be checked for native form validation"
5267
5297
  },
5268
5298
  {
5269
- "name": "required",
5299
+ "name": "value",
5270
5300
  "type": {
5271
- "text": "boolean"
5301
+ "text": "string"
5272
5302
  },
5273
- "description": "Required field (form association)"
5303
+ "description": "Field value submitted with forms"
5274
5304
  },
5275
5305
  {
5276
5306
  "name": "name",
@@ -5291,348 +5321,270 @@
5291
5321
  "type": {
5292
5322
  "text": "'sm' | 'md' | 'lg'"
5293
5323
  },
5294
- "description": "Component size: 'sm' | 'md' | 'lg'"
5295
- },
5296
- {
5297
- "name": "rounded",
5298
- "type": {
5299
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5300
- },
5301
- "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5324
+ "description": "Checkbox size: 'sm' | 'md' | 'lg'"
5302
5325
  },
5303
5326
  {
5304
- "name": "locale",
5327
+ "name": "error",
5305
5328
  "type": {
5306
5329
  "text": "string"
5307
5330
  },
5308
- "description": "BCP 47 locale string"
5331
+ "description": "Error message (marks field as invalid)"
5309
5332
  },
5310
5333
  {
5311
- "name": "weekend-days",
5334
+ "name": "helper",
5312
5335
  "type": {
5313
5336
  "text": "string"
5314
5337
  },
5315
- "description": "JSON array of day indices to disable (0=Sun…6=Sat)"
5316
- },
5317
- {
5318
- "name": "fullwidth",
5319
- "type": {
5320
- "text": "boolean"
5321
- },
5322
- "description": "Expand to full container width"
5323
- },
5324
- {
5325
- "name": "expanded",
5326
- "type": {
5327
- "text": "boolean"
5328
- },
5329
- "description": "Large-cell calendar-app layout with top-aligned day numbers"
5338
+ "description": "Helper text displayed below the checkbox"
5330
5339
  }
5331
5340
  ],
5332
5341
  "events": [
5342
+ {
5343
+ "name": "input",
5344
+ "description": "Emitted when checkbox is toggled.",
5345
+ "type": {
5346
+ "text": "CustomEvent"
5347
+ }
5348
+ },
5333
5349
  {
5334
5350
  "name": "change",
5335
- "description": "Fired when a date is selected. detail: { isoValue: string | null }",
5351
+ "description": "Emitted when checkbox is toggled.",
5336
5352
  "type": {
5337
5353
  "text": "CustomEvent"
5338
5354
  }
5339
5355
  }
5340
5356
  ],
5357
+ "slots": [
5358
+ {
5359
+ "name": "",
5360
+ "description": "Checkbox label text"
5361
+ }
5362
+ ],
5341
5363
  "cssParts": [
5342
5364
  {
5343
- "name": "calendar",
5344
- "description": "The root calendar panel"
5365
+ "name": "checkbox",
5366
+ "description": "The checkbox wrapper element"
5345
5367
  },
5346
5368
  {
5347
- "name": "header",
5348
- "description": "Calendar header (nav + label)"
5369
+ "name": "box",
5370
+ "description": "The visual checkbox box"
5349
5371
  },
5350
5372
  {
5351
- "name": "grid",
5352
- "description": "Day grid"
5373
+ "name": "label",
5374
+ "description": "The label element"
5353
5375
  },
5354
5376
  {
5355
- "name": "day",
5356
- "description": "Individual day cell"
5377
+ "name": "helper-text",
5378
+ "description": "The helper/error text element"
5357
5379
  }
5358
5380
  ],
5359
5381
  "cssProperties": [
5360
5382
  {
5361
- "name": "--calendar-bg",
5362
- "description": "Calendar background"
5383
+ "name": "--checkbox-size",
5384
+ "description": "Control size (width and height)"
5363
5385
  },
5364
5386
  {
5365
- "name": "--calendar-border-color",
5366
- "description": "Calendar border color"
5387
+ "name": "--checkbox-radius",
5388
+ "description": "Control border radius"
5367
5389
  },
5368
5390
  {
5369
- "name": "--calendar-radius",
5370
- "description": "Calendar border radius"
5391
+ "name": "--checkbox-bg",
5392
+ "description": "Unchecked background color"
5371
5393
  },
5372
5394
  {
5373
- "name": "--calendar-shadow",
5374
- "description": "Calendar drop shadow"
5395
+ "name": "--checkbox-border-color",
5396
+ "description": "Unchecked border color"
5375
5397
  },
5376
5398
  {
5377
- "name": "--calendar-day-selected-bg",
5378
- "description": "Background of selected day cell"
5399
+ "name": "--checkbox-checked-bg",
5400
+ "description": "Checked/indeterminate background color"
5379
5401
  },
5380
5402
  {
5381
- "name": "--calendar-day-today-color",
5382
- "description": "Colour of today's date number"
5403
+ "name": "--checkbox-color",
5404
+ "description": "Checkmark icon color"
5383
5405
  },
5384
5406
  {
5385
- "name": "--calendar-day-outside-opacity",
5386
- "description": "Opacity of days outside visible month"
5407
+ "name": "--checkbox-font-size",
5408
+ "description": "Label font size"
5387
5409
  }
5388
5410
  ],
5389
5411
  "demos": [
5390
5412
  {
5391
5413
  "url": "",
5392
- "description": "```html\n<!-- Single date with bounds -->\n<ore-calendar value=\"2025-06-15\" min=\"2025-01-01\" max=\"2025-12-31\" color=\"primary\"></ore-calendar>\n<!-- Expanded calendar-app layout -->\n<ore-calendar expanded fullwidth color=\"primary\"></ore-calendar>\n```"
5414
+ "description": "```html\n<ore-checkbox name=\"agree\" required>I agree to the terms</ore-checkbox>\n<ore-checkbox checked color=\"primary\" size=\"lg\">Enabled by default</ore-checkbox>\n<ore-checkbox error=\"This field is required\" helper=\"Check to continue\">Accept</ore-checkbox>\n```"
5393
5415
  }
5394
5416
  ]
5395
5417
  },
5396
5418
  {
5397
5419
  "kind": "variable",
5398
- "name": "BUTTON_VARIANTS",
5399
- "type": {
5400
- "text": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text', 'frost']"
5401
- },
5402
- "default": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text', 'frost']"
5420
+ "name": "BUTTON_GROUP_CTX"
5403
5421
  },
5404
5422
  {
5405
5423
  "kind": "variable",
5406
- "name": "BUTTON_TAG",
5424
+ "name": "BUTTON_GROUP_TAG",
5407
5425
  "type": {
5408
- "text": "'ore-button'"
5426
+ "text": "'ore-button-group'"
5409
5427
  },
5410
- "default": "'ore-button'",
5411
- "description": "A customizable button component with multiple variants, sizes, and states.\nSupports icons, loading states, and animated border effects."
5428
+ "default": "'ore-button-group'",
5429
+ "description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant."
5412
5430
  },
5413
5431
  {
5414
5432
  "kind": "class",
5415
- "name": "OreButtonElement",
5416
- "tagName": "ore-button",
5433
+ "name": "OreButtonGroupElement",
5434
+ "tagName": "ore-button-group",
5417
5435
  "customElement": true,
5418
- "description": "A customizable button component with multiple variants, sizes, and states.\nSupports icons, loading states, and animated border effects.",
5436
+ "description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant.",
5419
5437
  "summary": "",
5420
5438
  "attributes": [
5421
5439
  {
5422
- "name": "type",
5423
- "type": {
5424
- "text": "'button' | 'submit' | 'reset'"
5425
- },
5426
- "description": "HTML button type: 'button' | 'submit' | 'reset'"
5427
- },
5428
- {
5429
- "name": "disabled",
5430
- "type": {
5431
- "text": "boolean"
5432
- },
5433
- "description": "Disable button interaction"
5434
- },
5435
- {
5436
- "name": "loading",
5440
+ "name": "attached",
5437
5441
  "type": {
5438
5442
  "text": "boolean"
5439
5443
  },
5440
- "description": "Show loading state with spinner"
5444
+ "description": "Join buttons together into a unit"
5441
5445
  },
5442
5446
  {
5443
5447
  "name": "color",
5444
5448
  "type": {
5445
5449
  "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5446
5450
  },
5447
- "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5448
- },
5449
- {
5450
- "name": "variant",
5451
- "type": {
5452
- "text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost'"
5453
- },
5454
- "description": "Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost'"
5451
+ "description": "Shared color tint: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5455
5452
  },
5456
5453
  {
5457
- "name": "size",
5454
+ "name": "fullwidth",
5458
5455
  "type": {
5459
- "text": "'sm' | 'md' | 'lg'"
5456
+ "text": "boolean"
5460
5457
  },
5461
- "description": "Button size: 'sm' | 'md' | 'lg'"
5458
+ "description": "Group spans full width"
5462
5459
  },
5463
5460
  {
5464
- "name": "rounded",
5461
+ "name": "label",
5465
5462
  "type": {
5466
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5463
+ "text": "string"
5467
5464
  },
5468
- "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5465
+ "description": "Accessible label"
5469
5466
  },
5470
5467
  {
5471
- "name": "effect",
5468
+ "name": "orientation",
5472
5469
  "type": {
5473
- "text": "'shine' | 'rainbow'"
5470
+ "text": "'horizontal' | 'vertical'"
5474
5471
  },
5475
- "description": "Animated border effect: 'shine' | 'rainbow'"
5472
+ "description": "'horizontal' | 'vertical'"
5476
5473
  },
5477
5474
  {
5478
- "name": "icon-only",
5475
+ "name": "rounded",
5479
5476
  "type": {
5480
- "text": "boolean"
5477
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5481
5478
  },
5482
- "description": "Icon-only mode (square aspect ratio, no padding)"
5479
+ "description": "Corner radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full' (bare attribute defaults to 'full')"
5483
5480
  },
5484
5481
  {
5485
- "name": "fullwidth",
5482
+ "name": "size",
5486
5483
  "type": {
5487
- "text": "boolean"
5484
+ "text": "'sm' | 'md' | 'lg'"
5488
5485
  },
5489
- "description": "Full width button (100% of container)"
5486
+ "description": "Shared size: 'sm' | 'md' | 'lg'"
5490
5487
  },
5491
5488
  {
5492
- "name": "fullheight",
5489
+ "name": "variant",
5493
5490
  "type": {
5494
- "text": "boolean"
5491
+ "text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
5495
5492
  },
5496
- "description": "Full height button (100% of container)"
5497
- }
5498
- ],
5499
- "events": [
5500
- {
5501
- "name": "click",
5502
- "description": "Emitted when button is clicked (unless disabled/loading)",
5503
- "type": {
5504
- "text": "CustomEvent"
5505
- }
5493
+ "description": "Shared visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
5506
5494
  }
5507
5495
  ],
5508
5496
  "slots": [
5509
5497
  {
5510
5498
  "name": "",
5511
- "description": "Button content (text, icons, etc.)"
5512
- },
5513
- {
5514
- "name": "prefix",
5515
- "description": "Content before the button text (e.g., icons)"
5516
- },
5517
- {
5518
- "name": "suffix",
5519
- "description": "Content after the button text (e.g., icons, badges)"
5499
+ "description": "Place ore-button elements here"
5520
5500
  }
5521
5501
  ],
5522
5502
  "cssParts": [
5523
5503
  {
5524
- "name": "button",
5525
- "description": "The inner button or anchor element"
5526
- },
5527
- {
5528
- "name": "loader",
5529
- "description": "The loading spinner element"
5530
- },
5531
- {
5532
- "name": "content",
5533
- "description": "The button content wrapper"
5504
+ "name": "group",
5505
+ "description": "Group container."
5534
5506
  }
5535
5507
  ],
5536
5508
  "cssProperties": [
5537
5509
  {
5538
- "name": "--button-bg",
5539
- "description": "Background color override"
5540
- },
5541
- {
5542
- "name": "--button-color",
5543
- "description": "Text color override"
5544
- },
5545
- {
5546
- "name": "--button-border",
5547
- "description": "Border width override"
5510
+ "name": "--group-gap",
5511
+ "description": "Gap between buttons (non-attached mode)"
5548
5512
  },
5549
5513
  {
5550
- "name": "--button-border-color",
5551
- "description": "Border color override"
5514
+ "name": "--group-radius",
5515
+ "description": "Border radius of the group container, defaults to the `rounded` attribute's token"
5552
5516
  },
5553
5517
  {
5554
5518
  "name": "--button-radius",
5555
- "description": "Border radius override"
5556
- },
5557
- {
5558
- "name": "--button-padding",
5559
- "description": "Inner padding override"
5560
- },
5561
- {
5562
- "name": "--button-gap",
5563
- "description": "Gap between icon and text override"
5564
- },
5565
- {
5566
- "name": "--button-font-size",
5567
- "description": "Font size override"
5519
+ "description": "Passed through to child buttons to control corner radius"
5568
5520
  },
5569
5521
  {
5570
- "name": "--button-frost-active-bg",
5571
- "description": "Background when pressed (frost variant)"
5522
+ "name": "--button-border-start",
5523
+ "description": "Passed through to suppress start borders in attached mode"
5572
5524
  },
5573
5525
  {
5574
- "name": "--button-frost-active-border-color",
5575
- "description": "Border color when pressed (frost variant)"
5526
+ "name": "--button-border-top",
5527
+ "description": "Passed through to suppress top borders in vertical attached mode"
5576
5528
  }
5577
5529
  ],
5578
5530
  "demos": [
5579
5531
  {
5580
5532
  "url": "",
5581
- "description": "```html\n<ore-button variant=\"solid\" color=\"primary\">Click me</ore-button>\n<ore-button loading color=\"success\">Processing...</ore-button>\n<ore-button effect=\"shine\" color=\"primary\">Shine</ore-button>\n<ore-button effect=\"rainbow\" variant=\"frost\">Rainbow</ore-button>\n```"
5533
+ "description": "```html\n<ore-button-group attached rounded=\"full\">\n <ore-button variant=\"solid\" color=\"primary\">Save</ore-button>\n <ore-button variant=\"solid\" color=\"primary\">Save &amp; Continue</ore-button>\n</ore-button-group>\n<ore-button-group orientation=\"vertical\" size=\"sm\">\n <ore-button>Top</ore-button>\n <ore-button>Middle</ore-button>\n <ore-button>Bottom</ore-button>\n</ore-button-group>\n```"
5582
5534
  }
5583
5535
  ]
5584
5536
  },
5585
5537
  {
5586
5538
  "kind": "variable",
5587
- "name": "CHECKBOX_TAG",
5539
+ "name": "CALENDAR_TAG",
5588
5540
  "type": {
5589
- "text": "'ore-checkbox'"
5541
+ "text": "'ore-calendar'"
5590
5542
  },
5591
- "default": "'ore-checkbox'",
5592
- "description": "A customizable checkbox component with theme colors, sizes, and indeterminate state support."
5543
+ "default": "'ore-calendar'",
5544
+ "description": "An accessible, keyboard-navigable inline calendar component.\nSupports day/month/year drill-down views, min/max bounds, disabled weekend\ndays, and optional form association."
5593
5545
  },
5594
5546
  {
5595
5547
  "kind": "class",
5596
- "name": "OreCheckboxElement",
5597
- "tagName": "ore-checkbox",
5548
+ "name": "OreCalendarElement",
5549
+ "tagName": "ore-calendar",
5598
5550
  "customElement": true,
5599
- "description": "A customizable checkbox component with theme colors, sizes, and indeterminate state support.",
5551
+ "description": "An accessible, keyboard-navigable inline calendar component.\nSupports day/month/year drill-down views, min/max bounds, disabled weekend\ndays, and optional form association.",
5600
5552
  "summary": "",
5601
5553
  "attributes": [
5602
5554
  {
5603
- "name": "checked",
5555
+ "name": "value",
5604
5556
  "type": {
5605
- "text": "boolean"
5557
+ "text": "string"
5606
5558
  },
5607
- "description": "Checked state"
5559
+ "description": "Selected date in ISO 8601 format (yyyy-MM-dd)"
5608
5560
  },
5609
5561
  {
5610
- "name": "disabled",
5562
+ "name": "min",
5611
5563
  "type": {
5612
- "text": "boolean"
5564
+ "text": "string"
5613
5565
  },
5614
- "description": "Disable checkbox interaction"
5566
+ "description": "Minimum selectable date (yyyy-MM-dd)"
5615
5567
  },
5616
5568
  {
5617
- "name": "indeterminate",
5569
+ "name": "max",
5618
5570
  "type": {
5619
- "text": "boolean"
5571
+ "text": "string"
5620
5572
  },
5621
- "description": "Indeterminate (partially checked) state"
5573
+ "description": "Maximum selectable date (yyyy-MM-dd)"
5622
5574
  },
5623
5575
  {
5624
- "name": "required",
5576
+ "name": "disabled",
5625
5577
  "type": {
5626
5578
  "text": "boolean"
5627
5579
  },
5628
- "description": "Require this checkbox to be checked for native form validation"
5580
+ "description": "Disable all interaction"
5629
5581
  },
5630
5582
  {
5631
- "name": "value",
5583
+ "name": "required",
5632
5584
  "type": {
5633
- "text": "string"
5585
+ "text": "boolean"
5634
5586
  },
5635
- "description": "Field value submitted with forms"
5587
+ "description": "Required field (form association)"
5636
5588
  },
5637
5589
  {
5638
5590
  "name": "name",
@@ -5653,97 +5605,105 @@
5653
5605
  "type": {
5654
5606
  "text": "'sm' | 'md' | 'lg'"
5655
5607
  },
5656
- "description": "Checkbox size: 'sm' | 'md' | 'lg'"
5608
+ "description": "Component size: 'sm' | 'md' | 'lg'"
5657
5609
  },
5658
5610
  {
5659
- "name": "error",
5611
+ "name": "rounded",
5612
+ "type": {
5613
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5614
+ },
5615
+ "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5616
+ },
5617
+ {
5618
+ "name": "locale",
5660
5619
  "type": {
5661
5620
  "text": "string"
5662
5621
  },
5663
- "description": "Error message (marks field as invalid)"
5622
+ "description": "BCP 47 locale string"
5664
5623
  },
5665
5624
  {
5666
- "name": "helper",
5625
+ "name": "weekend-days",
5667
5626
  "type": {
5668
5627
  "text": "string"
5669
5628
  },
5670
- "description": "Helper text displayed below the checkbox"
5671
- }
5672
- ],
5673
- "events": [
5629
+ "description": "JSON array of day indices to disable (0=Sun…6=Sat)"
5630
+ },
5674
5631
  {
5675
- "name": "input",
5676
- "description": "Emitted when checkbox is toggled.",
5632
+ "name": "fullwidth",
5677
5633
  "type": {
5678
- "text": "CustomEvent"
5679
- }
5634
+ "text": "boolean"
5635
+ },
5636
+ "description": "Expand to full container width"
5680
5637
  },
5681
5638
  {
5682
- "name": "change",
5683
- "description": "Emitted when checkbox is toggled.",
5639
+ "name": "expanded",
5684
5640
  "type": {
5685
- "text": "CustomEvent"
5686
- }
5641
+ "text": "boolean"
5642
+ },
5643
+ "description": "Large-cell calendar-app layout with top-aligned day numbers"
5687
5644
  }
5688
5645
  ],
5689
- "slots": [
5646
+ "events": [
5690
5647
  {
5691
- "name": "",
5692
- "description": "Checkbox label text"
5648
+ "name": "change",
5649
+ "description": "Fired when a date is selected. detail: { isoValue: string | null }",
5650
+ "type": {
5651
+ "text": "CustomEvent"
5652
+ }
5693
5653
  }
5694
5654
  ],
5695
5655
  "cssParts": [
5696
5656
  {
5697
- "name": "checkbox",
5698
- "description": "The checkbox wrapper element"
5657
+ "name": "calendar",
5658
+ "description": "The root calendar panel"
5699
5659
  },
5700
5660
  {
5701
- "name": "box",
5702
- "description": "The visual checkbox box"
5661
+ "name": "header",
5662
+ "description": "Calendar header (nav + label)"
5703
5663
  },
5704
5664
  {
5705
- "name": "label",
5706
- "description": "The label element"
5665
+ "name": "grid",
5666
+ "description": "Day grid"
5707
5667
  },
5708
5668
  {
5709
- "name": "helper-text",
5710
- "description": "The helper/error text element"
5669
+ "name": "day",
5670
+ "description": "Individual day cell"
5711
5671
  }
5712
5672
  ],
5713
5673
  "cssProperties": [
5714
5674
  {
5715
- "name": "--checkbox-size",
5716
- "description": "Control size (width and height)"
5675
+ "name": "--calendar-bg",
5676
+ "description": "Calendar background"
5717
5677
  },
5718
5678
  {
5719
- "name": "--checkbox-radius",
5720
- "description": "Control border radius"
5679
+ "name": "--calendar-border-color",
5680
+ "description": "Calendar border color"
5721
5681
  },
5722
5682
  {
5723
- "name": "--checkbox-bg",
5724
- "description": "Unchecked background color"
5683
+ "name": "--calendar-radius",
5684
+ "description": "Calendar border radius"
5725
5685
  },
5726
5686
  {
5727
- "name": "--checkbox-border-color",
5728
- "description": "Unchecked border color"
5687
+ "name": "--calendar-shadow",
5688
+ "description": "Calendar drop shadow"
5729
5689
  },
5730
5690
  {
5731
- "name": "--checkbox-checked-bg",
5732
- "description": "Checked/indeterminate background color"
5691
+ "name": "--calendar-day-selected-bg",
5692
+ "description": "Background of selected day cell"
5733
5693
  },
5734
5694
  {
5735
- "name": "--checkbox-color",
5736
- "description": "Checkmark icon color"
5695
+ "name": "--calendar-day-today-color",
5696
+ "description": "Colour of today's date number"
5737
5697
  },
5738
5698
  {
5739
- "name": "--checkbox-font-size",
5740
- "description": "Label font size"
5699
+ "name": "--calendar-day-outside-opacity",
5700
+ "description": "Opacity of days outside visible month"
5741
5701
  }
5742
5702
  ],
5743
5703
  "demos": [
5744
5704
  {
5745
5705
  "url": "",
5746
- "description": "```html\n<ore-checkbox name=\"agree\" required>I agree to the terms</ore-checkbox>\n<ore-checkbox checked color=\"primary\" size=\"lg\">Enabled by default</ore-checkbox>\n<ore-checkbox error=\"This field is required\" helper=\"Check to continue\">Accept</ore-checkbox>\n```"
5706
+ "description": "```html\n<!-- Single date with bounds -->\n<ore-calendar value=\"2025-06-15\" min=\"2025-01-01\" max=\"2025-12-31\" color=\"primary\"></ore-calendar>\n<!-- Expanded calendar-app layout -->\n<ore-calendar expanded fullwidth color=\"primary\"></ore-calendar>\n```"
5747
5707
  }
5748
5708
  ]
5749
5709
  },
@@ -5877,6 +5837,111 @@
5877
5837
  }
5878
5838
  ]
5879
5839
  },
5840
+ {
5841
+ "kind": "function",
5842
+ "name": "parseSlottedOptions",
5843
+ "return": {
5844
+ "type": {
5845
+ "text": "ComboboxOptionItem[]"
5846
+ }
5847
+ },
5848
+ "parameters": [
5849
+ {
5850
+ "name": "elements",
5851
+ "type": {
5852
+ "text": "Element[]"
5853
+ }
5854
+ }
5855
+ ]
5856
+ },
5857
+ {
5858
+ "kind": "function",
5859
+ "name": "filterOptions",
5860
+ "return": {
5861
+ "type": {
5862
+ "text": "ComboboxOptionItem[]"
5863
+ }
5864
+ },
5865
+ "parameters": [
5866
+ {
5867
+ "name": "options",
5868
+ "type": {
5869
+ "text": "ComboboxOptionItem[]"
5870
+ }
5871
+ },
5872
+ {
5873
+ "name": "query",
5874
+ "type": {
5875
+ "text": "string"
5876
+ }
5877
+ },
5878
+ {
5879
+ "name": "noFilter",
5880
+ "type": {
5881
+ "text": "boolean"
5882
+ }
5883
+ }
5884
+ ]
5885
+ },
5886
+ {
5887
+ "kind": "function",
5888
+ "name": "getCreatableLabel",
5889
+ "return": {
5890
+ "type": {
5891
+ "text": "string"
5892
+ }
5893
+ },
5894
+ "parameters": [
5895
+ {
5896
+ "name": "query",
5897
+ "type": {
5898
+ "text": "string"
5899
+ }
5900
+ },
5901
+ {
5902
+ "name": "creatable",
5903
+ "type": {
5904
+ "text": "boolean"
5905
+ }
5906
+ },
5907
+ {
5908
+ "name": "filteredOptions",
5909
+ "type": {
5910
+ "text": "ComboboxOptionItem[]"
5911
+ }
5912
+ }
5913
+ ]
5914
+ },
5915
+ {
5916
+ "kind": "function",
5917
+ "name": "makeCreatableValue",
5918
+ "return": {
5919
+ "type": {
5920
+ "text": "string"
5921
+ }
5922
+ },
5923
+ "parameters": [
5924
+ {
5925
+ "name": "query",
5926
+ "type": {
5927
+ "text": "string"
5928
+ }
5929
+ }
5930
+ ]
5931
+ },
5932
+ {
5933
+ "kind": "variable",
5934
+ "name": "COMBOBOX_TAG",
5935
+ "type": {
5936
+ "text": "'ore-combobox'"
5937
+ },
5938
+ "default": "'ore-combobox'",
5939
+ "description": "A searchable select field with multiple selection, custom option creation, and large-list support."
5940
+ },
5941
+ {
5942
+ "kind": "variable",
5943
+ "name": "value"
5944
+ },
5880
5945
  {
5881
5946
  "kind": "class",
5882
5947
  "description": "Light-DOM row marker consumed by `<ore-table>`.",
@@ -6270,117 +6335,12 @@
6270
6335
  "description": "Opacity of days outside visible month"
6271
6336
  }
6272
6337
  ],
6273
- "demos": [
6274
- {
6275
- "url": "",
6276
- "description": "```html\n<!-- Single date with constraints -->\n<ore-date-picker label=\"Appointment date\" name=\"date\" min=\"2025-01-01\" max=\"2025-12-31\" color=\"primary\"></ore-date-picker>\n<!-- Outside label, bordered variant -->\n<ore-date-picker label=\"Start date\" label-placement=\"outside\" variant=\"bordered\"></ore-date-picker>\n```"
6277
- }
6278
- ]
6279
- },
6280
- {
6281
- "kind": "function",
6282
- "name": "parseSlottedOptions",
6283
- "return": {
6284
- "type": {
6285
- "text": "ComboboxOptionItem[]"
6286
- }
6287
- },
6288
- "parameters": [
6289
- {
6290
- "name": "elements",
6291
- "type": {
6292
- "text": "Element[]"
6293
- }
6294
- }
6295
- ]
6296
- },
6297
- {
6298
- "kind": "function",
6299
- "name": "filterOptions",
6300
- "return": {
6301
- "type": {
6302
- "text": "ComboboxOptionItem[]"
6303
- }
6304
- },
6305
- "parameters": [
6306
- {
6307
- "name": "options",
6308
- "type": {
6309
- "text": "ComboboxOptionItem[]"
6310
- }
6311
- },
6312
- {
6313
- "name": "query",
6314
- "type": {
6315
- "text": "string"
6316
- }
6317
- },
6318
- {
6319
- "name": "noFilter",
6320
- "type": {
6321
- "text": "boolean"
6322
- }
6323
- }
6324
- ]
6325
- },
6326
- {
6327
- "kind": "function",
6328
- "name": "getCreatableLabel",
6329
- "return": {
6330
- "type": {
6331
- "text": "string"
6332
- }
6333
- },
6334
- "parameters": [
6335
- {
6336
- "name": "query",
6337
- "type": {
6338
- "text": "string"
6339
- }
6340
- },
6341
- {
6342
- "name": "creatable",
6343
- "type": {
6344
- "text": "boolean"
6345
- }
6346
- },
6347
- {
6348
- "name": "filteredOptions",
6349
- "type": {
6350
- "text": "ComboboxOptionItem[]"
6351
- }
6352
- }
6353
- ]
6354
- },
6355
- {
6356
- "kind": "function",
6357
- "name": "makeCreatableValue",
6358
- "return": {
6359
- "type": {
6360
- "text": "string"
6361
- }
6362
- },
6363
- "parameters": [
6364
- {
6365
- "name": "query",
6366
- "type": {
6367
- "text": "string"
6368
- }
6369
- }
6370
- ]
6371
- },
6372
- {
6373
- "kind": "variable",
6374
- "name": "COMBOBOX_TAG",
6375
- "type": {
6376
- "text": "'ore-combobox'"
6377
- },
6378
- "default": "'ore-combobox'",
6379
- "description": "A searchable select field with multiple selection, custom option creation, and large-list support."
6380
- },
6381
- {
6382
- "kind": "variable",
6383
- "name": "value"
6338
+ "demos": [
6339
+ {
6340
+ "url": "",
6341
+ "description": "```html\n<!-- Single date with constraints -->\n<ore-date-picker label=\"Appointment date\" name=\"date\" min=\"2025-01-01\" max=\"2025-12-31\" color=\"primary\"></ore-date-picker>\n<!-- Outside label, bordered variant -->\n<ore-date-picker label=\"Start date\" label-placement=\"outside\" variant=\"bordered\"></ore-date-picker>\n```"
6342
+ }
6343
+ ]
6384
6344
  },
6385
6345
  {
6386
6346
  "kind": "function",
@@ -7171,6 +7131,153 @@
7171
7131
  }
7172
7132
  ]
7173
7133
  },
7134
+ {
7135
+ "kind": "variable",
7136
+ "name": "RADIO_TAG",
7137
+ "type": {
7138
+ "text": "'ore-radio'"
7139
+ },
7140
+ "default": "'ore-radio'",
7141
+ "description": "A customizable radio button component for mutually exclusive selections."
7142
+ },
7143
+ {
7144
+ "kind": "class",
7145
+ "name": "OreRadioElement",
7146
+ "tagName": "ore-radio",
7147
+ "customElement": true,
7148
+ "description": "A customizable radio button component for mutually exclusive selections.",
7149
+ "summary": "",
7150
+ "attributes": [
7151
+ {
7152
+ "name": "checked",
7153
+ "type": {
7154
+ "text": "boolean"
7155
+ },
7156
+ "description": "Checked state"
7157
+ },
7158
+ {
7159
+ "name": "disabled",
7160
+ "type": {
7161
+ "text": "boolean"
7162
+ },
7163
+ "description": "Disable radio interaction"
7164
+ },
7165
+ {
7166
+ "name": "value",
7167
+ "type": {
7168
+ "text": "string"
7169
+ },
7170
+ "description": "Field value (required for radio groups)"
7171
+ },
7172
+ {
7173
+ "name": "name",
7174
+ "type": {
7175
+ "text": "string"
7176
+ },
7177
+ "description": "Form field name (required for radio groups)"
7178
+ },
7179
+ {
7180
+ "name": "color",
7181
+ "type": {
7182
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7183
+ },
7184
+ "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7185
+ },
7186
+ {
7187
+ "name": "size",
7188
+ "type": {
7189
+ "text": "'sm' | 'md' | 'lg'"
7190
+ },
7191
+ "description": "Radio size: 'sm' | 'md' | 'lg'"
7192
+ },
7193
+ {
7194
+ "name": "error",
7195
+ "type": {
7196
+ "text": "string"
7197
+ },
7198
+ "description": "Error message (marks field as invalid)"
7199
+ },
7200
+ {
7201
+ "name": "helper",
7202
+ "type": {
7203
+ "text": "string"
7204
+ },
7205
+ "description": "Helper text displayed below the radio"
7206
+ }
7207
+ ],
7208
+ "events": [
7209
+ {
7210
+ "name": "input",
7211
+ "description": "Emitted when radio is selected.",
7212
+ "type": {
7213
+ "text": "CustomEvent"
7214
+ }
7215
+ },
7216
+ {
7217
+ "name": "change",
7218
+ "description": "Emitted when radio is selected.",
7219
+ "type": {
7220
+ "text": "CustomEvent"
7221
+ }
7222
+ }
7223
+ ],
7224
+ "slots": [
7225
+ {
7226
+ "name": "",
7227
+ "description": "Radio button label text"
7228
+ }
7229
+ ],
7230
+ "cssParts": [
7231
+ {
7232
+ "name": "radio",
7233
+ "description": "The radio wrapper element"
7234
+ },
7235
+ {
7236
+ "name": "circle",
7237
+ "description": "The visual radio circle"
7238
+ },
7239
+ {
7240
+ "name": "label",
7241
+ "description": "The label element"
7242
+ },
7243
+ {
7244
+ "name": "helper-text",
7245
+ "description": "The helper/error text element"
7246
+ }
7247
+ ],
7248
+ "cssProperties": [
7249
+ {
7250
+ "name": "--radio-size",
7251
+ "description": "Control size (width and height)"
7252
+ },
7253
+ {
7254
+ "name": "--radio-bg",
7255
+ "description": "Unchecked background color"
7256
+ },
7257
+ {
7258
+ "name": "--radio-border-color",
7259
+ "description": "Unchecked border color"
7260
+ },
7261
+ {
7262
+ "name": "--radio-checked-bg",
7263
+ "description": "Selected indicator background color"
7264
+ },
7265
+ {
7266
+ "name": "--radio-color",
7267
+ "description": "Selected indicator dot color"
7268
+ },
7269
+ {
7270
+ "name": "--radio-font-size",
7271
+ "description": "Label font size"
7272
+ }
7273
+ ],
7274
+ "demos": [
7275
+ {
7276
+ "url": "",
7277
+ "description": "```html\n<ore-radio name=\"plan\" value=\"free\">Free</ore-radio>\n<ore-radio name=\"plan\" value=\"pro\" checked color=\"primary\">Pro</ore-radio>\n<ore-radio name=\"plan\" value=\"enterprise\" disabled>Enterprise</ore-radio>\n```"
7278
+ }
7279
+ ]
7280
+ },
7174
7281
  {
7175
7282
  "kind": "variable",
7176
7283
  "name": "NUMBER_INPUT_TAG",
@@ -7341,36 +7448,131 @@
7341
7448
  "description": "Input element."
7342
7449
  },
7343
7450
  {
7344
- "name": "increment-btn",
7345
- "description": "Increment stepper button."
7451
+ "name": "increment-btn",
7452
+ "description": "Increment stepper button."
7453
+ }
7454
+ ],
7455
+ "cssProperties": [
7456
+ {
7457
+ "name": "--number-input-height",
7458
+ "description": "Control height"
7459
+ },
7460
+ {
7461
+ "name": "--number-input-border-color",
7462
+ "description": "Border color"
7463
+ },
7464
+ {
7465
+ "name": "--number-input-radius",
7466
+ "description": "Border radius"
7467
+ },
7468
+ {
7469
+ "name": "--number-input-bg",
7470
+ "description": "Background"
7471
+ },
7472
+ {
7473
+ "name": "--number-input-btn-bg",
7474
+ "description": "Spin button background"
7475
+ }
7476
+ ],
7477
+ "demos": [
7478
+ {
7479
+ "url": "",
7480
+ "description": "```html\n<ore-number-input label=\"Quantity\" value=\"1\" min=\"1\" max=\"99\" step=\"1\"></ore-number-input>\n<ore-number-input label=\"Quantity\" success></ore-number-input>\n<ore-number-input label=\"Quantity\" loading></ore-number-input>\n```"
7481
+ }
7482
+ ]
7483
+ },
7484
+ {
7485
+ "kind": "variable",
7486
+ "name": "RADIO_GROUP_CTX"
7487
+ },
7488
+ {
7489
+ "kind": "variable",
7490
+ "name": "RADIO_GROUP_TAG",
7491
+ "type": {
7492
+ "text": "'ore-radio-group'"
7493
+ },
7494
+ "default": "'ore-radio-group'",
7495
+ "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management."
7496
+ },
7497
+ {
7498
+ "kind": "class",
7499
+ "name": "OreRadioGroupElement",
7500
+ "tagName": "ore-radio-group",
7501
+ "customElement": true,
7502
+ "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management.",
7503
+ "summary": "",
7504
+ "attributes": [
7505
+ {
7506
+ "name": "value",
7507
+ "type": {
7508
+ "text": "string"
7509
+ },
7510
+ "description": "Selected value"
7511
+ },
7512
+ {
7513
+ "name": "name",
7514
+ "type": {
7515
+ "text": "string"
7516
+ },
7517
+ "description": "Form field name"
7518
+ },
7519
+ {
7520
+ "name": "label",
7521
+ "type": {
7522
+ "text": "string"
7523
+ },
7524
+ "description": "Group label"
7525
+ },
7526
+ {
7527
+ "name": "orientation",
7528
+ "type": {
7529
+ "text": "'vertical' | 'horizontal'"
7530
+ },
7531
+ "description": "Layout: 'vertical' | 'horizontal'"
7532
+ },
7533
+ {
7534
+ "name": "required",
7535
+ "type": {
7536
+ "text": "boolean"
7537
+ },
7538
+ "description": "Required field"
7539
+ }
7540
+ ],
7541
+ "events": [
7542
+ {
7543
+ "name": "change",
7544
+ "description": "Emitted when a radio is selected. detail: { values: string[], labels: string[], originalEvent?: Event }",
7545
+ "type": {
7546
+ "text": "CustomEvent"
7547
+ }
7548
+ }
7549
+ ],
7550
+ "slots": [
7551
+ {
7552
+ "name": "",
7553
+ "description": "Place `ore-radio` elements here"
7554
+ }
7555
+ ],
7556
+ "cssParts": [
7557
+ {
7558
+ "name": "items",
7559
+ "description": "Items container."
7346
7560
  }
7347
7561
  ],
7348
7562
  "cssProperties": [
7349
7563
  {
7350
- "name": "--number-input-height",
7351
- "description": "Control height"
7352
- },
7353
- {
7354
- "name": "--number-input-border-color",
7355
- "description": "Border color"
7356
- },
7357
- {
7358
- "name": "--number-input-radius",
7359
- "description": "Border radius"
7360
- },
7361
- {
7362
- "name": "--number-input-bg",
7363
- "description": "Background"
7564
+ "name": "--radio-group-direction",
7565
+ "description": "Flex direction of the items list ('row' | 'column')"
7364
7566
  },
7365
7567
  {
7366
- "name": "--number-input-btn-bg",
7367
- "description": "Spin button background"
7568
+ "name": "--radio-group-gap",
7569
+ "description": "Gap between radio items"
7368
7570
  }
7369
7571
  ],
7370
7572
  "demos": [
7371
7573
  {
7372
7574
  "url": "",
7373
- "description": "```html\n<ore-number-input label=\"Quantity\" value=\"1\" min=\"1\" max=\"99\" step=\"1\"></ore-number-input>\n<ore-number-input label=\"Quantity\" success></ore-number-input>\n<ore-number-input label=\"Quantity\" loading></ore-number-input>\n```"
7575
+ "description": "```html\n<ore-radio-group name=\"plan\" label=\"Choose a plan\" value=\"free\" required>\n <ore-radio value=\"free\">Free</ore-radio>\n <ore-radio value=\"pro\">Pro</ore-radio>\n <ore-radio value=\"enterprise\">Enterprise</ore-radio>\n</ore-radio-group>\n<ore-radio-group name=\"direction\" orientation=\"horizontal\" color=\"primary\">\n <ore-radio value=\"left\">Left</ore-radio>\n <ore-radio value=\"right\">Right</ore-radio>\n</ore-radio-group>\n```"
7374
7576
  }
7375
7577
  ]
7376
7578
  },
@@ -7565,396 +7767,356 @@
7565
7767
  },
7566
7768
  {
7567
7769
  "kind": "variable",
7568
- "name": "RADIO_GROUP_CTX"
7569
- },
7570
- {
7571
- "kind": "variable",
7572
- "name": "RADIO_GROUP_TAG",
7770
+ "name": "RATING_TAG",
7573
7771
  "type": {
7574
- "text": "'ore-radio-group'"
7772
+ "text": "'ore-rating'"
7575
7773
  },
7576
- "default": "'ore-radio-group'",
7577
- "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management."
7774
+ "default": "'ore-rating'",
7775
+ "description": "A star rating input."
7578
7776
  },
7579
7777
  {
7580
7778
  "kind": "class",
7581
- "name": "OreRadioGroupElement",
7582
- "tagName": "ore-radio-group",
7779
+ "name": "OreRatingElement",
7780
+ "tagName": "ore-rating",
7583
7781
  "customElement": true,
7584
- "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management.",
7782
+ "description": "A star rating input.",
7585
7783
  "summary": "",
7586
7784
  "attributes": [
7587
7785
  {
7588
7786
  "name": "value",
7589
7787
  "type": {
7590
- "text": "string"
7591
- },
7592
- "description": "Selected value"
7593
- },
7594
- {
7595
- "name": "name",
7596
- "type": {
7597
- "text": "string"
7788
+ "text": "number"
7598
7789
  },
7599
- "description": "Form field name"
7790
+ "description": "Current rating value (default: 0)",
7791
+ "default": "0"
7600
7792
  },
7601
7793
  {
7602
- "name": "label",
7794
+ "name": "max",
7603
7795
  "type": {
7604
- "text": "string"
7796
+ "text": "number"
7605
7797
  },
7606
- "description": "Group label"
7798
+ "description": "Maximum number of stars (default: 5)",
7799
+ "default": "5"
7607
7800
  },
7608
7801
  {
7609
- "name": "orientation",
7802
+ "name": "readonly",
7610
7803
  "type": {
7611
- "text": "'vertical' | 'horizontal'"
7804
+ "text": "boolean"
7612
7805
  },
7613
- "description": "Layout: 'vertical' | 'horizontal'"
7806
+ "description": "Read-only display mode"
7614
7807
  },
7615
7808
  {
7616
- "name": "required",
7809
+ "name": "disabled",
7617
7810
  "type": {
7618
7811
  "text": "boolean"
7619
7812
  },
7620
- "description": "Required field"
7621
- }
7622
- ],
7623
- "events": [
7624
- {
7625
- "name": "change",
7626
- "description": "Emitted when a radio is selected. detail: { values: string[], labels: string[], originalEvent?: Event }",
7627
- "type": {
7628
- "text": "CustomEvent"
7629
- }
7630
- }
7631
- ],
7632
- "slots": [
7633
- {
7634
- "name": "",
7635
- "description": "Place `ore-radio` elements here"
7636
- }
7637
- ],
7638
- "cssParts": [
7639
- {
7640
- "name": "items",
7641
- "description": "Items container."
7642
- }
7643
- ],
7644
- "cssProperties": [
7645
- {
7646
- "name": "--radio-group-direction",
7647
- "description": "Flex direction of the items list ('row' | 'column')"
7813
+ "description": "Disabled state"
7648
7814
  },
7649
7815
  {
7650
- "name": "--radio-group-gap",
7651
- "description": "Gap between radio items"
7652
- }
7653
- ],
7654
- "demos": [
7655
- {
7656
- "url": "",
7657
- "description": "```html\n<ore-radio-group name=\"plan\" label=\"Choose a plan\" value=\"free\" required>\n <ore-radio value=\"free\">Free</ore-radio>\n <ore-radio value=\"pro\">Pro</ore-radio>\n <ore-radio value=\"enterprise\">Enterprise</ore-radio>\n</ore-radio-group>\n<ore-radio-group name=\"direction\" orientation=\"horizontal\" color=\"primary\">\n <ore-radio value=\"left\">Left</ore-radio>\n <ore-radio value=\"right\">Right</ore-radio>\n</ore-radio-group>\n```"
7658
- }
7659
- ]
7660
- },
7661
- {
7662
- "kind": "variable",
7663
- "name": "RADIO_TAG",
7664
- "type": {
7665
- "text": "'ore-radio'"
7666
- },
7667
- "default": "'ore-radio'",
7668
- "description": "A customizable radio button component for mutually exclusive selections."
7669
- },
7670
- {
7671
- "kind": "class",
7672
- "name": "OreRadioElement",
7673
- "tagName": "ore-radio",
7674
- "customElement": true,
7675
- "description": "A customizable radio button component for mutually exclusive selections.",
7676
- "summary": "",
7677
- "attributes": [
7678
- {
7679
- "name": "checked",
7816
+ "name": "label",
7680
7817
  "type": {
7681
- "text": "boolean"
7818
+ "text": "string"
7682
7819
  },
7683
- "description": "Checked state"
7820
+ "description": "aria-label for the group (default: 'Rating')",
7821
+ "default": "'Rating'"
7684
7822
  },
7685
7823
  {
7686
- "name": "disabled",
7824
+ "name": "color",
7687
7825
  "type": {
7688
- "text": "boolean"
7826
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7689
7827
  },
7690
- "description": "Disable radio interaction"
7828
+ "description": "Theme color for filled stars: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7691
7829
  },
7692
7830
  {
7693
- "name": "value",
7831
+ "name": "size",
7694
7832
  "type": {
7695
- "text": "string"
7833
+ "text": "'sm' | 'md' | 'lg'"
7696
7834
  },
7697
- "description": "Field value (required for radio groups)"
7835
+ "description": "'sm' | 'md' | 'lg'"
7698
7836
  },
7699
7837
  {
7700
7838
  "name": "name",
7701
7839
  "type": {
7702
7840
  "text": "string"
7703
7841
  },
7704
- "description": "Form field name (required for radio groups)"
7705
- },
7706
- {
7707
- "name": "color",
7708
- "type": {
7709
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7710
- },
7711
- "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7842
+ "description": "Form field name"
7712
7843
  },
7713
7844
  {
7714
- "name": "size",
7845
+ "name": "solid",
7715
7846
  "type": {
7716
- "text": "'sm' | 'md' | 'lg'"
7847
+ "text": "boolean"
7717
7848
  },
7718
- "description": "Radio size: 'sm' | 'md' | 'lg'"
7849
+ "description": "Fill selected stars (outline remains default when omitted)"
7719
7850
  },
7720
7851
  {
7721
- "name": "error",
7852
+ "name": "helper",
7722
7853
  "type": {
7723
7854
  "text": "string"
7724
7855
  },
7725
- "description": "Error message (marks field as invalid)"
7856
+ "description": "Helper text below the stars"
7726
7857
  },
7727
7858
  {
7728
- "name": "helper",
7859
+ "name": "error",
7729
7860
  "type": {
7730
7861
  "text": "string"
7731
7862
  },
7732
- "description": "Helper text displayed below the radio"
7863
+ "description": "Error message below the stars"
7733
7864
  }
7734
7865
  ],
7735
7866
  "events": [
7736
7867
  {
7737
7868
  "name": "input",
7738
- "description": "Emitted when radio is selected.",
7869
+ "description": "Emitted when the rating changes.",
7739
7870
  "type": {
7740
7871
  "text": "CustomEvent"
7741
7872
  }
7742
7873
  },
7743
7874
  {
7744
7875
  "name": "change",
7745
- "description": "Emitted when radio is selected.",
7876
+ "description": "Emitted when the rating changes.",
7746
7877
  "type": {
7747
7878
  "text": "CustomEvent"
7748
7879
  }
7749
7880
  }
7750
7881
  ],
7751
- "slots": [
7752
- {
7753
- "name": "",
7754
- "description": "Radio button label text"
7755
- }
7756
- ],
7757
7882
  "cssParts": [
7758
7883
  {
7759
- "name": "radio",
7760
- "description": "The radio wrapper element"
7761
- },
7762
- {
7763
- "name": "circle",
7764
- "description": "The visual radio circle"
7884
+ "name": "stars",
7885
+ "description": "Stars container."
7765
7886
  },
7766
7887
  {
7767
- "name": "label",
7768
- "description": "The label element"
7888
+ "name": "star",
7889
+ "description": "Star item element."
7769
7890
  },
7770
7891
  {
7771
7892
  "name": "helper-text",
7772
- "description": "The helper/error text element"
7893
+ "description": "The helper/error text element."
7773
7894
  }
7774
7895
  ],
7775
7896
  "cssProperties": [
7776
7897
  {
7777
- "name": "--radio-size",
7778
- "description": "Control size (width and height)"
7779
- },
7780
- {
7781
- "name": "--radio-bg",
7782
- "description": "Unchecked background color"
7783
- },
7784
- {
7785
- "name": "--radio-border-color",
7786
- "description": "Unchecked border color"
7898
+ "name": "--rating-star-size",
7899
+ "description": "Star diameter"
7787
7900
  },
7788
7901
  {
7789
- "name": "--radio-checked-bg",
7790
- "description": "Selected indicator background color"
7902
+ "name": "--rating-color-empty",
7903
+ "description": "Empty star color"
7791
7904
  },
7792
7905
  {
7793
- "name": "--radio-color",
7794
- "description": "Selected indicator dot color"
7906
+ "name": "--rating-color-filled",
7907
+ "description": "Filled star color"
7795
7908
  },
7796
7909
  {
7797
- "name": "--radio-font-size",
7798
- "description": "Label font size"
7910
+ "name": "--rating-gap",
7911
+ "description": "Gap between stars"
7799
7912
  }
7800
7913
  ],
7801
7914
  "demos": [
7802
7915
  {
7803
7916
  "url": "",
7804
- "description": "```html\n<ore-radio name=\"plan\" value=\"free\">Free</ore-radio>\n<ore-radio name=\"plan\" value=\"pro\" checked color=\"primary\">Pro</ore-radio>\n<ore-radio name=\"plan\" value=\"enterprise\" disabled>Enterprise</ore-radio>\n```"
7917
+ "description": "```html\n<ore-rating value=\"3\" max=\"5\" color=\"warning\"></ore-rating>\n<ore-rating value=\"4\" solid></ore-rating>\n```"
7805
7918
  }
7806
7919
  ]
7807
7920
  },
7808
7921
  {
7809
7922
  "kind": "variable",
7810
- "name": "RATING_TAG",
7923
+ "name": "SELECT_TAG",
7811
7924
  "type": {
7812
- "text": "'ore-rating'"
7925
+ "text": "'ore-select'"
7813
7926
  },
7814
- "default": "'ore-rating'",
7815
- "description": "A star rating input."
7927
+ "default": "'ore-select'",
7928
+ "description": "A fully custom form-associated select dropdown with keyboard navigation and ARIA support.\nReads `<option>` and `<optgroup>` children from the default slot."
7816
7929
  },
7817
7930
  {
7818
7931
  "kind": "class",
7819
- "name": "OreRatingElement",
7820
- "tagName": "ore-rating",
7932
+ "name": "OreSelectElement",
7933
+ "tagName": "ore-select",
7821
7934
  "customElement": true,
7822
- "description": "A star rating input.",
7935
+ "description": "A fully custom form-associated select dropdown with keyboard navigation and ARIA support.\nReads `<option>` and `<optgroup>` children from the default slot.",
7823
7936
  "summary": "",
7824
7937
  "attributes": [
7825
7938
  {
7826
- "name": "value",
7939
+ "name": "label",
7940
+ "type": {
7941
+ "text": "string"
7942
+ },
7943
+ "description": "Label text"
7944
+ },
7945
+ {
7946
+ "name": "label-placement",
7947
+ "type": {
7948
+ "text": "'inset' | 'outside'"
7949
+ },
7950
+ "description": "'inset' | 'outside'"
7951
+ },
7952
+ {
7953
+ "name": "value",
7954
+ "type": {
7955
+ "text": "string"
7956
+ },
7957
+ "description": "Current selected value(s) (comma-separated for multiple)"
7958
+ },
7959
+ {
7960
+ "name": "placeholder",
7827
7961
  "type": {
7828
- "text": "number"
7962
+ "text": "string"
7829
7963
  },
7830
- "description": "Current rating value (default: 0)",
7831
- "default": "0"
7964
+ "description": "Placeholder when no option selected"
7832
7965
  },
7833
7966
  {
7834
- "name": "max",
7967
+ "name": "name",
7835
7968
  "type": {
7836
- "text": "number"
7969
+ "text": "string"
7837
7970
  },
7838
- "description": "Maximum number of stars (default: 5)",
7839
- "default": "5"
7971
+ "description": "Form field name"
7840
7972
  },
7841
7973
  {
7842
- "name": "readonly",
7974
+ "name": "multiple",
7843
7975
  "type": {
7844
7976
  "text": "boolean"
7845
7977
  },
7846
- "description": "Read-only display mode"
7978
+ "description": "Enable multi-select"
7847
7979
  },
7848
7980
  {
7849
7981
  "name": "disabled",
7850
7982
  "type": {
7851
7983
  "text": "boolean"
7852
7984
  },
7853
- "description": "Disabled state"
7985
+ "description": "Disable the select"
7854
7986
  },
7855
7987
  {
7856
- "name": "label",
7988
+ "name": "required",
7989
+ "type": {
7990
+ "text": "boolean"
7991
+ },
7992
+ "description": "Required field"
7993
+ },
7994
+ {
7995
+ "name": "helper",
7857
7996
  "type": {
7858
7997
  "text": "string"
7859
7998
  },
7860
- "description": "aria-label for the group (default: 'Rating')",
7861
- "default": "'Rating'"
7999
+ "description": "Helper text below the select"
7862
8000
  },
7863
8001
  {
7864
- "name": "color",
8002
+ "name": "error",
7865
8003
  "type": {
7866
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
8004
+ "text": "string"
7867
8005
  },
7868
- "description": "Theme color for filled stars: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
8006
+ "description": "Error message"
7869
8007
  },
7870
8008
  {
7871
- "name": "size",
8009
+ "name": "success",
7872
8010
  "type": {
7873
- "text": "'sm' | 'md' | 'lg'"
8011
+ "text": "boolean"
7874
8012
  },
7875
- "description": "'sm' | 'md' | 'lg'"
8013
+ "description": "Show an inline success check icon (suppressed while `error` is set)"
7876
8014
  },
7877
8015
  {
7878
- "name": "name",
8016
+ "name": "color",
7879
8017
  "type": {
7880
- "text": "string"
8018
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7881
8019
  },
7882
- "description": "Form field name"
8020
+ "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
7883
8021
  },
7884
8022
  {
7885
- "name": "solid",
8023
+ "name": "variant",
7886
8024
  "type": {
7887
- "text": "boolean"
8025
+ "text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text'"
7888
8026
  },
7889
- "description": "Fill selected stars (outline remains default when omitted)"
8027
+ "description": "Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text'"
7890
8028
  },
7891
8029
  {
7892
- "name": "helper",
8030
+ "name": "size",
7893
8031
  "type": {
7894
- "text": "string"
8032
+ "text": "'sm' | 'md' | 'lg'"
7895
8033
  },
7896
- "description": "Helper text below the stars"
8034
+ "description": "Component size: 'sm' | 'md' | 'lg'"
7897
8035
  },
7898
8036
  {
7899
- "name": "error",
8037
+ "name": "rounded",
7900
8038
  "type": {
7901
- "text": "string"
8039
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
7902
8040
  },
7903
- "description": "Error message below the stars"
8041
+ "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
8042
+ },
8043
+ {
8044
+ "name": "fullwidth",
8045
+ "type": {
8046
+ "text": "boolean"
8047
+ },
8048
+ "description": "Expand to full width"
7904
8049
  }
7905
8050
  ],
7906
8051
  "events": [
7907
8052
  {
7908
8053
  "name": "input",
7909
- "description": "Emitted when the rating changes.",
8054
+ "description": "Fired when selection changes.",
7910
8055
  "type": {
7911
8056
  "text": "CustomEvent"
7912
8057
  }
7913
8058
  },
7914
8059
  {
7915
8060
  "name": "change",
7916
- "description": "Emitted when the rating changes.",
8061
+ "description": "Fired when selection changes.",
8062
+ "type": {
8063
+ "text": "CustomEvent"
8064
+ }
8065
+ },
8066
+ {
8067
+ "name": "open-change",
8068
+ "description": "Fired when the dropdown state changes. detail: { open, reason }",
7917
8069
  "type": {
7918
8070
  "text": "CustomEvent"
7919
8071
  }
7920
8072
  }
7921
8073
  ],
7922
- "cssParts": [
8074
+ "slots": [
7923
8075
  {
7924
- "name": "stars",
7925
- "description": "Stars container."
7926
- },
8076
+ "name": "",
8077
+ "description": "`<option>` and `<optgroup>` elements"
8078
+ }
8079
+ ],
8080
+ "cssParts": [
7927
8081
  {
7928
- "name": "star",
7929
- "description": "Star item element."
8082
+ "name": "trigger",
8083
+ "description": "The `ore-input` trigger element that opens the dropdown."
7930
8084
  },
7931
8085
  {
7932
- "name": "helper-text",
7933
- "description": "The helper/error text element."
8086
+ "name": "dropdown",
8087
+ "description": "The dropdown listbox panel container."
7934
8088
  }
7935
8089
  ],
7936
8090
  "cssProperties": [
7937
8091
  {
7938
- "name": "--rating-star-size",
7939
- "description": "Star diameter"
8092
+ "name": "--select-bg",
8093
+ "description": "Background"
7940
8094
  },
7941
8095
  {
7942
- "name": "--rating-color-empty",
7943
- "description": "Empty star color"
8096
+ "name": "--select-border-color",
8097
+ "description": "Border color"
7944
8098
  },
7945
8099
  {
7946
- "name": "--rating-color-filled",
7947
- "description": "Filled star color"
8100
+ "name": "--select-radius",
8101
+ "description": "Border radius"
7948
8102
  },
7949
8103
  {
7950
- "name": "--rating-gap",
7951
- "description": "Gap between stars"
8104
+ "name": "--select-padding",
8105
+ "description": "Padding"
8106
+ },
8107
+ {
8108
+ "name": "--select-font-size",
8109
+ "description": "Font size"
8110
+ },
8111
+ {
8112
+ "name": "--select-placeholder-color",
8113
+ "description": "Placeholder text color"
7952
8114
  }
7953
8115
  ],
7954
8116
  "demos": [
7955
8117
  {
7956
8118
  "url": "",
7957
- "description": "```html\n<ore-rating value=\"3\" max=\"5\" color=\"warning\"></ore-rating>\n<ore-rating value=\"4\" solid></ore-rating>\n```"
8119
+ "description": "```html\n<ore-select label=\"Role\" value=\"admin\">\n <option value=\"admin\">Administrator</option>\n <option value=\"editor\">Editor</option>\n <option value=\"viewer\">Viewer</option>\n</ore-select>\n<ore-select label=\"Tags\" multiple color=\"primary\">\n <optgroup label=\"Frontend\">\n <option value=\"react\">React</option>\n <option value=\"vue\">Vue</option>\n </optgroup>\n <optgroup label=\"Backend\">\n <option value=\"node\">Node.js</option>\n </optgroup>\n</ore-select>\n```"
7958
8120
  }
7959
8121
  ]
7960
8122
  },
@@ -8444,97 +8606,48 @@
8444
8606
  },
8445
8607
  {
8446
8608
  "kind": "variable",
8447
- "name": "SELECT_TAG",
8609
+ "name": "SWITCH_TAG",
8448
8610
  "type": {
8449
- "text": "'ore-select'"
8611
+ "text": "'ore-switch'"
8450
8612
  },
8451
- "default": "'ore-select'",
8452
- "description": "A fully custom form-associated select dropdown with keyboard navigation and ARIA support.\nReads `<option>` and `<optgroup>` children from the default slot."
8613
+ "default": "'ore-switch'",
8614
+ "description": "A toggle switch component for binary on/off states."
8453
8615
  },
8454
8616
  {
8455
8617
  "kind": "class",
8456
- "name": "OreSelectElement",
8457
- "tagName": "ore-select",
8618
+ "name": "OreSwitchElement",
8619
+ "tagName": "ore-switch",
8458
8620
  "customElement": true,
8459
- "description": "A fully custom form-associated select dropdown with keyboard navigation and ARIA support.\nReads `<option>` and `<optgroup>` children from the default slot.",
8621
+ "description": "A toggle switch component for binary on/off states.",
8460
8622
  "summary": "",
8461
8623
  "attributes": [
8462
8624
  {
8463
- "name": "label",
8464
- "type": {
8465
- "text": "string"
8466
- },
8467
- "description": "Label text"
8468
- },
8469
- {
8470
- "name": "label-placement",
8471
- "type": {
8472
- "text": "'inset' | 'outside'"
8473
- },
8474
- "description": "'inset' | 'outside'"
8475
- },
8476
- {
8477
- "name": "value",
8478
- "type": {
8479
- "text": "string"
8480
- },
8481
- "description": "Current selected value(s) (comma-separated for multiple)"
8482
- },
8483
- {
8484
- "name": "placeholder",
8485
- "type": {
8486
- "text": "string"
8487
- },
8488
- "description": "Placeholder when no option selected"
8489
- },
8490
- {
8491
- "name": "name",
8492
- "type": {
8493
- "text": "string"
8494
- },
8495
- "description": "Form field name"
8496
- },
8497
- {
8498
- "name": "multiple",
8625
+ "name": "checked",
8499
8626
  "type": {
8500
8627
  "text": "boolean"
8501
8628
  },
8502
- "description": "Enable multi-select"
8629
+ "description": "Checked/on state"
8503
8630
  },
8504
8631
  {
8505
8632
  "name": "disabled",
8506
8633
  "type": {
8507
8634
  "text": "boolean"
8508
8635
  },
8509
- "description": "Disable the select"
8510
- },
8511
- {
8512
- "name": "required",
8513
- "type": {
8514
- "text": "boolean"
8515
- },
8516
- "description": "Required field"
8636
+ "description": "Disable switch interaction"
8517
8637
  },
8518
8638
  {
8519
- "name": "helper",
8639
+ "name": "value",
8520
8640
  "type": {
8521
8641
  "text": "string"
8522
8642
  },
8523
- "description": "Helper text below the select"
8643
+ "description": "Field value"
8524
8644
  },
8525
8645
  {
8526
- "name": "error",
8646
+ "name": "name",
8527
8647
  "type": {
8528
8648
  "text": "string"
8529
8649
  },
8530
- "description": "Error message"
8531
- },
8532
- {
8533
- "name": "success",
8534
- "type": {
8535
- "text": "boolean"
8536
- },
8537
- "description": "Show an inline success check icon (suppressed while `error` is set)"
8650
+ "description": "Form field name"
8538
8651
  },
8539
8652
  {
8540
8653
  "name": "color",
@@ -8543,53 +8656,39 @@
8543
8656
  },
8544
8657
  "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
8545
8658
  },
8546
- {
8547
- "name": "variant",
8548
- "type": {
8549
- "text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text'"
8550
- },
8551
- "description": "Visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text'"
8552
- },
8553
8659
  {
8554
8660
  "name": "size",
8555
8661
  "type": {
8556
8662
  "text": "'sm' | 'md' | 'lg'"
8557
8663
  },
8558
- "description": "Component size: 'sm' | 'md' | 'lg'"
8664
+ "description": "Switch size: 'sm' | 'md' | 'lg'"
8559
8665
  },
8560
8666
  {
8561
- "name": "rounded",
8667
+ "name": "error",
8562
8668
  "type": {
8563
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
8669
+ "text": "string"
8564
8670
  },
8565
- "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
8671
+ "description": "Error message (marks field as invalid)"
8566
8672
  },
8567
8673
  {
8568
- "name": "fullwidth",
8674
+ "name": "helper",
8569
8675
  "type": {
8570
- "text": "boolean"
8676
+ "text": "string"
8571
8677
  },
8572
- "description": "Expand to full width"
8678
+ "description": "Helper text displayed below the switch"
8573
8679
  }
8574
8680
  ],
8575
8681
  "events": [
8576
8682
  {
8577
8683
  "name": "input",
8578
- "description": "Fired when selection changes.",
8684
+ "description": "Emitted when switch is toggled.",
8579
8685
  "type": {
8580
8686
  "text": "CustomEvent"
8581
8687
  }
8582
8688
  },
8583
8689
  {
8584
8690
  "name": "change",
8585
- "description": "Fired when selection changes.",
8586
- "type": {
8587
- "text": "CustomEvent"
8588
- }
8589
- },
8590
- {
8591
- "name": "open-change",
8592
- "description": "Fired when the dropdown state changes. detail: { open, reason }",
8691
+ "description": "Emitted when switch is toggled.",
8593
8692
  "type": {
8594
8693
  "text": "CustomEvent"
8595
8694
  }
@@ -8597,50 +8696,62 @@
8597
8696
  ],
8598
8697
  "slots": [
8599
8698
  {
8600
- "name": "",
8601
- "description": "`<option>` and `<optgroup>` elements"
8602
- }
8603
- ],
8604
- "cssParts": [
8699
+ "name": "",
8700
+ "description": "Switch label text"
8701
+ }
8702
+ ],
8703
+ "cssParts": [
8704
+ {
8705
+ "name": "switch",
8706
+ "description": "The switch wrapper element"
8707
+ },
8708
+ {
8709
+ "name": "track",
8710
+ "description": "The switch track element"
8711
+ },
8712
+ {
8713
+ "name": "thumb",
8714
+ "description": "The switch thumb element"
8715
+ },
8605
8716
  {
8606
- "name": "trigger",
8607
- "description": "The `ore-input` trigger element that opens the dropdown."
8717
+ "name": "label",
8718
+ "description": "The label element"
8608
8719
  },
8609
8720
  {
8610
- "name": "dropdown",
8611
- "description": "The dropdown listbox panel container."
8721
+ "name": "helper-text",
8722
+ "description": "The helper/error text element"
8612
8723
  }
8613
8724
  ],
8614
8725
  "cssProperties": [
8615
8726
  {
8616
- "name": "--select-bg",
8617
- "description": "Background"
8727
+ "name": "--switch-width",
8728
+ "description": "Track width"
8618
8729
  },
8619
8730
  {
8620
- "name": "--select-border-color",
8621
- "description": "Border color"
8731
+ "name": "--switch-height",
8732
+ "description": "Track height"
8622
8733
  },
8623
8734
  {
8624
- "name": "--select-radius",
8625
- "description": "Border radius"
8735
+ "name": "--switch-track-bg",
8736
+ "description": "Inactive track background color"
8626
8737
  },
8627
8738
  {
8628
- "name": "--select-padding",
8629
- "description": "Padding"
8739
+ "name": "--switch-checked-bg",
8740
+ "description": "Active/checked track background color"
8630
8741
  },
8631
8742
  {
8632
- "name": "--select-font-size",
8633
- "description": "Font size"
8743
+ "name": "--switch-thumb-bg",
8744
+ "description": "Thumb background color"
8634
8745
  },
8635
8746
  {
8636
- "name": "--select-placeholder-color",
8637
- "description": "Placeholder text color"
8747
+ "name": "--switch-font-size",
8748
+ "description": "Label font size"
8638
8749
  }
8639
8750
  ],
8640
8751
  "demos": [
8641
8752
  {
8642
8753
  "url": "",
8643
- "description": "```html\n<ore-select label=\"Role\" value=\"admin\">\n <option value=\"admin\">Administrator</option>\n <option value=\"editor\">Editor</option>\n <option value=\"viewer\">Viewer</option>\n</ore-select>\n<ore-select label=\"Tags\" multiple color=\"primary\">\n <optgroup label=\"Frontend\">\n <option value=\"react\">React</option>\n <option value=\"vue\">Vue</option>\n </optgroup>\n <optgroup label=\"Backend\">\n <option value=\"node\">Node.js</option>\n </optgroup>\n</ore-select>\n```"
8754
+ "description": "```html\n<ore-switch name=\"notifications\" checked color=\"primary\">Enable notifications</ore-switch>\n<ore-switch name=\"darkMode\" size=\"sm\">Dark mode</ore-switch>\n<ore-switch disabled helper=\"Contact admin to change\">Admin only</ore-switch>\n```"
8644
8755
  }
8645
8756
  ]
8646
8757
  },
@@ -8930,122 +9041,6 @@
8930
9041
  }
8931
9042
  ]
8932
9043
  },
8933
- {
8934
- "kind": "variable",
8935
- "name": "BOX_TAG",
8936
- "type": {
8937
- "text": "'ore-box'"
8938
- },
8939
- "default": "'ore-box'",
8940
- "description": "ore-box — A foundational layout primitive with theming support."
8941
- },
8942
- {
8943
- "kind": "class",
8944
- "name": "OreBoxElement",
8945
- "tagName": "ore-box",
8946
- "customElement": true,
8947
- "description": "ore-box — A foundational layout primitive with theming support.",
8948
- "summary": "",
8949
- "attributes": [
8950
- {
8951
- "name": "variant",
8952
- "type": {
8953
- "text": "'solid' | 'flat' | 'glass' | 'frost'"
8954
- },
8955
- "description": "Style variant: 'solid' | 'flat' | 'glass' | 'frost'"
8956
- },
8957
- {
8958
- "name": "color",
8959
- "type": {
8960
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
8961
- },
8962
- "description": "Color theme: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
8963
- },
8964
- {
8965
- "name": "padding",
8966
- "type": {
8967
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl'"
8968
- },
8969
- "description": "Padding size: 'none' | 'sm' | 'md' | 'lg' | 'xl'"
8970
- },
8971
- {
8972
- "name": "elevation",
8973
- "type": {
8974
- "text": "'0' | '1' | '2' | '3' | '4' | '5'"
8975
- },
8976
- "description": "Shadow elevation: '0' | '1' | '2' | '3' | '4' | '5'"
8977
- },
8978
- {
8979
- "name": "rounded",
8980
- "type": {
8981
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
8982
- },
8983
- "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
8984
- },
8985
- {
8986
- "name": "effect",
8987
- "type": {
8988
- "text": "string"
8989
- },
8990
- "description": "Animated border effect: 'rainbow'"
8991
- },
8992
- {
8993
- "name": "fullwidth",
8994
- "type": {
8995
- "text": "boolean"
8996
- },
8997
- "description": "Expand to full width"
8998
- }
8999
- ],
9000
- "slots": [
9001
- {
9002
- "name": "",
9003
- "description": "Default slot for content"
9004
- }
9005
- ],
9006
- "cssParts": [
9007
- {
9008
- "name": "box",
9009
- "description": "The inner box element"
9010
- }
9011
- ],
9012
- "cssProperties": [
9013
- {
9014
- "name": "--box-bg",
9015
- "description": "Background color"
9016
- },
9017
- {
9018
- "name": "--box-color",
9019
- "description": "Text color"
9020
- },
9021
- {
9022
- "name": "--box-border",
9023
- "description": "Border width"
9024
- },
9025
- {
9026
- "name": "--box-border-color",
9027
- "description": "Border color"
9028
- },
9029
- {
9030
- "name": "--box-radius",
9031
- "description": "Border radius"
9032
- },
9033
- {
9034
- "name": "--box-padding",
9035
- "description": "Inner padding"
9036
- },
9037
- {
9038
- "name": "--box-shadow",
9039
- "description": "Box shadow"
9040
- }
9041
- ],
9042
- "demos": [
9043
- {
9044
- "url": "",
9045
- "description": "```html\n<ore-box padding=\"lg\" elevation=\"2\">Simple content</ore-box>\n<ore-box variant=\"glass\" color=\"primary\">Glass effect</ore-box>\n<ore-box variant=\"frost\" effect=\"rainbow\">Frosted glass</ore-box>\n```"
9046
- }
9047
- ]
9048
- },
9049
9044
  {
9050
9045
  "kind": "variable",
9051
9046
  "name": "TIME_PICKER_TAG",
@@ -9279,152 +9274,117 @@
9279
9274
  },
9280
9275
  {
9281
9276
  "kind": "variable",
9282
- "name": "SWITCH_TAG",
9277
+ "name": "BOX_TAG",
9283
9278
  "type": {
9284
- "text": "'ore-switch'"
9279
+ "text": "'ore-box'"
9285
9280
  },
9286
- "default": "'ore-switch'",
9287
- "description": "A toggle switch component for binary on/off states."
9281
+ "default": "'ore-box'",
9282
+ "description": "ore-box — A foundational layout primitive with theming support."
9288
9283
  },
9289
9284
  {
9290
9285
  "kind": "class",
9291
- "name": "OreSwitchElement",
9292
- "tagName": "ore-switch",
9286
+ "name": "OreBoxElement",
9287
+ "tagName": "ore-box",
9293
9288
  "customElement": true,
9294
- "description": "A toggle switch component for binary on/off states.",
9289
+ "description": "ore-box — A foundational layout primitive with theming support.",
9295
9290
  "summary": "",
9296
9291
  "attributes": [
9297
9292
  {
9298
- "name": "checked",
9299
- "type": {
9300
- "text": "boolean"
9301
- },
9302
- "description": "Checked/on state"
9303
- },
9304
- {
9305
- "name": "disabled",
9293
+ "name": "variant",
9306
9294
  "type": {
9307
- "text": "boolean"
9295
+ "text": "'solid' | 'flat' | 'glass' | 'frost'"
9308
9296
  },
9309
- "description": "Disable switch interaction"
9297
+ "description": "Style variant: 'solid' | 'flat' | 'glass' | 'frost'"
9310
9298
  },
9311
9299
  {
9312
- "name": "value",
9300
+ "name": "color",
9313
9301
  "type": {
9314
- "text": "string"
9302
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
9315
9303
  },
9316
- "description": "Field value"
9304
+ "description": "Color theme: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
9317
9305
  },
9318
9306
  {
9319
- "name": "name",
9307
+ "name": "padding",
9320
9308
  "type": {
9321
- "text": "string"
9309
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl'"
9322
9310
  },
9323
- "description": "Form field name"
9311
+ "description": "Padding size: 'none' | 'sm' | 'md' | 'lg' | 'xl'"
9324
9312
  },
9325
9313
  {
9326
- "name": "color",
9314
+ "name": "elevation",
9327
9315
  "type": {
9328
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
9316
+ "text": "'0' | '1' | '2' | '3' | '4' | '5'"
9329
9317
  },
9330
- "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
9318
+ "description": "Shadow elevation: '0' | '1' | '2' | '3' | '4' | '5'"
9331
9319
  },
9332
9320
  {
9333
- "name": "size",
9321
+ "name": "rounded",
9334
9322
  "type": {
9335
- "text": "'sm' | 'md' | 'lg'"
9323
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
9336
9324
  },
9337
- "description": "Switch size: 'sm' | 'md' | 'lg'"
9325
+ "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
9338
9326
  },
9339
9327
  {
9340
- "name": "error",
9328
+ "name": "effect",
9341
9329
  "type": {
9342
9330
  "text": "string"
9343
9331
  },
9344
- "description": "Error message (marks field as invalid)"
9332
+ "description": "Animated border effect: 'rainbow'"
9345
9333
  },
9346
9334
  {
9347
- "name": "helper",
9335
+ "name": "fullwidth",
9348
9336
  "type": {
9349
- "text": "string"
9337
+ "text": "boolean"
9350
9338
  },
9351
- "description": "Helper text displayed below the switch"
9352
- }
9353
- ],
9354
- "events": [
9355
- {
9356
- "name": "input",
9357
- "description": "Emitted when switch is toggled.",
9358
- "type": {
9359
- "text": "CustomEvent"
9360
- }
9361
- },
9362
- {
9363
- "name": "change",
9364
- "description": "Emitted when switch is toggled.",
9365
- "type": {
9366
- "text": "CustomEvent"
9367
- }
9339
+ "description": "Expand to full width"
9368
9340
  }
9369
9341
  ],
9370
9342
  "slots": [
9371
9343
  {
9372
9344
  "name": "",
9373
- "description": "Switch label text"
9345
+ "description": "Default slot for content"
9374
9346
  }
9375
9347
  ],
9376
9348
  "cssParts": [
9377
9349
  {
9378
- "name": "switch",
9379
- "description": "The switch wrapper element"
9380
- },
9381
- {
9382
- "name": "track",
9383
- "description": "The switch track element"
9384
- },
9385
- {
9386
- "name": "thumb",
9387
- "description": "The switch thumb element"
9388
- },
9389
- {
9390
- "name": "label",
9391
- "description": "The label element"
9392
- },
9393
- {
9394
- "name": "helper-text",
9395
- "description": "The helper/error text element"
9350
+ "name": "box",
9351
+ "description": "The inner box element"
9396
9352
  }
9397
9353
  ],
9398
9354
  "cssProperties": [
9399
9355
  {
9400
- "name": "--switch-width",
9401
- "description": "Track width"
9356
+ "name": "--box-bg",
9357
+ "description": "Background color"
9402
9358
  },
9403
9359
  {
9404
- "name": "--switch-height",
9405
- "description": "Track height"
9360
+ "name": "--box-color",
9361
+ "description": "Text color"
9406
9362
  },
9407
9363
  {
9408
- "name": "--switch-track-bg",
9409
- "description": "Inactive track background color"
9364
+ "name": "--box-border",
9365
+ "description": "Border width"
9410
9366
  },
9411
9367
  {
9412
- "name": "--switch-checked-bg",
9413
- "description": "Active/checked track background color"
9368
+ "name": "--box-border-color",
9369
+ "description": "Border color"
9414
9370
  },
9415
9371
  {
9416
- "name": "--switch-thumb-bg",
9417
- "description": "Thumb background color"
9372
+ "name": "--box-radius",
9373
+ "description": "Border radius"
9418
9374
  },
9419
9375
  {
9420
- "name": "--switch-font-size",
9421
- "description": "Label font size"
9376
+ "name": "--box-padding",
9377
+ "description": "Inner padding"
9378
+ },
9379
+ {
9380
+ "name": "--box-shadow",
9381
+ "description": "Box shadow"
9422
9382
  }
9423
9383
  ],
9424
9384
  "demos": [
9425
9385
  {
9426
9386
  "url": "",
9427
- "description": "```html\n<ore-switch name=\"notifications\" checked color=\"primary\">Enable notifications</ore-switch>\n<ore-switch name=\"darkMode\" size=\"sm\">Dark mode</ore-switch>\n<ore-switch disabled helper=\"Contact admin to change\">Admin only</ore-switch>\n```"
9387
+ "description": "```html\n<ore-box padding=\"lg\" elevation=\"2\">Simple content</ore-box>\n<ore-box variant=\"glass\" color=\"primary\">Glass effect</ore-box>\n<ore-box variant=\"frost\" effect=\"rainbow\">Frosted glass</ore-box>\n```"
9428
9388
  }
9429
9389
  ]
9430
9390
  },
@@ -9630,98 +9590,6 @@
9630
9590
  }
9631
9591
  ]
9632
9592
  },
9633
- {
9634
- "kind": "variable",
9635
- "name": "GRID_ITEM_TAG",
9636
- "type": {
9637
- "text": "'ore-grid-item'"
9638
- },
9639
- "default": "'ore-grid-item'",
9640
- "description": "ore-grid-item — A grid cell with declarative placement and span control.\n\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines)."
9641
- },
9642
- {
9643
- "kind": "class",
9644
- "name": "OreGridItemElement",
9645
- "tagName": "ore-grid-item",
9646
- "customElement": true,
9647
- "description": "ore-grid-item — A grid cell with declarative placement and span control.\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines).",
9648
- "summary": "",
9649
- "attributes": [
9650
- {
9651
- "name": "area",
9652
- "type": {
9653
- "text": "string"
9654
- },
9655
- "description": "CSS grid-area value for named-area placement"
9656
- },
9657
- {
9658
- "name": "col-span",
9659
- "type": {
9660
- "text": "'12' | 'full'"
9661
- },
9662
- "description": "Columns to span: '1'–'12' | 'full'"
9663
- },
9664
- {
9665
- "name": "row-span",
9666
- "type": {
9667
- "text": "'6' | 'full'"
9668
- },
9669
- "description": "Rows to span: '1'–'6' | 'full'"
9670
- },
9671
- {
9672
- "name": "col",
9673
- "type": {
9674
- "text": "string"
9675
- },
9676
- "description": "CSS grid-column value (overrides col-span)"
9677
- },
9678
- {
9679
- "name": "row",
9680
- "type": {
9681
- "text": "string"
9682
- },
9683
- "description": "CSS grid-row value (overrides row-span)"
9684
- },
9685
- {
9686
- "name": "align",
9687
- "type": {
9688
- "text": "'start' | 'center' | 'end' | 'stretch'"
9689
- },
9690
- "description": "align-self: 'start' | 'center' | 'end' | 'stretch'"
9691
- },
9692
- {
9693
- "name": "justify",
9694
- "type": {
9695
- "text": "'start' | 'center' | 'end' | 'stretch'"
9696
- },
9697
- "description": "justify-self: 'start' | 'center' | 'end' | 'stretch'"
9698
- }
9699
- ],
9700
- "slots": [
9701
- {
9702
- "name": "",
9703
- "description": "Grid item content"
9704
- }
9705
- ],
9706
- "demos": [
9707
- {
9708
- "url": "",
9709
- "description": "<!-- Span 2 columns -->\n<ore-grid-item col-span=\"2\">Wide</ore-grid-item>"
9710
- },
9711
- {
9712
- "url": "",
9713
- "description": "<!-- Full-width row -->\n<ore-grid-item col-span=\"full\">Banner</ore-grid-item>"
9714
- },
9715
- {
9716
- "url": "",
9717
- "description": "<!-- Named area placement -->\n<ore-grid-item area=\"sidebar\">Nav</ore-grid-item>"
9718
- },
9719
- {
9720
- "url": "",
9721
- "description": "<!-- Explicit placement -->\n<ore-grid-item col=\"2 / 5\" row=\"1 / 3\">Placed</ore-grid-item>"
9722
- }
9723
- ]
9724
- },
9725
9593
  {
9726
9594
  "kind": "variable",
9727
9595
  "name": "NAVBAR_CTX",
@@ -10353,75 +10221,167 @@
10353
10221
  "description": "Anchor `rel` attribute (links only)"
10354
10222
  },
10355
10223
  {
10356
- "name": "target",
10224
+ "name": "target",
10225
+ "type": {
10226
+ "text": "string"
10227
+ },
10228
+ "description": "Anchor `target` attribute (links only)"
10229
+ }
10230
+ ],
10231
+ "slots": [
10232
+ {
10233
+ "name": "",
10234
+ "description": "Label text"
10235
+ },
10236
+ {
10237
+ "name": "icon",
10238
+ "description": "Leading icon"
10239
+ },
10240
+ {
10241
+ "name": "end",
10242
+ "description": "Trailing content (badge, shortcut, arrow, etc.)"
10243
+ }
10244
+ ],
10245
+ "cssParts": [
10246
+ {
10247
+ "name": "item",
10248
+ "description": "The inner anchor or button element"
10249
+ },
10250
+ {
10251
+ "name": "item-icon",
10252
+ "description": "The icon wrapper"
10253
+ },
10254
+ {
10255
+ "name": "item-label",
10256
+ "description": "The label wrapper"
10257
+ },
10258
+ {
10259
+ "name": "item-end",
10260
+ "description": "The trailing content wrapper"
10261
+ }
10262
+ ],
10263
+ "cssProperties": [
10264
+ {
10265
+ "name": "--sidebar-item-color",
10266
+ "description": "Default text color"
10267
+ },
10268
+ {
10269
+ "name": "--sidebar-item-hover-bg",
10270
+ "description": "Hover background"
10271
+ },
10272
+ {
10273
+ "name": "--sidebar-item-hover-color",
10274
+ "description": "Hover text color"
10275
+ },
10276
+ {
10277
+ "name": "--sidebar-item-active-bg",
10278
+ "description": "Active background"
10279
+ },
10280
+ {
10281
+ "name": "--sidebar-item-active-color",
10282
+ "description": "Active text color"
10283
+ },
10284
+ {
10285
+ "name": "--sidebar-item-indicator",
10286
+ "description": "Active indicator bar color"
10287
+ }
10288
+ ],
10289
+ "demos": [
10290
+ {
10291
+ "url": "",
10292
+ "description": "```html\n<ore-sidebar-item href=\"/dashboard\" active>\n <span slot=\"icon\">🏠</span>\n Dashboard\n</ore-sidebar-item>\n<ore-sidebar-item href=\"/users\">\n <span slot=\"icon\">👤</span>\n Users\n <ore-badge slot=\"end\" color=\"primary\">3</ore-badge>\n</ore-sidebar-item>\n```"
10293
+ }
10294
+ ]
10295
+ },
10296
+ {
10297
+ "kind": "variable",
10298
+ "name": "GRID_ITEM_TAG",
10299
+ "type": {
10300
+ "text": "'ore-grid-item'"
10301
+ },
10302
+ "default": "'ore-grid-item'",
10303
+ "description": "ore-grid-item — A grid cell with declarative placement and span control.\n\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines)."
10304
+ },
10305
+ {
10306
+ "kind": "class",
10307
+ "name": "OreGridItemElement",
10308
+ "tagName": "ore-grid-item",
10309
+ "customElement": true,
10310
+ "description": "ore-grid-item — A grid cell with declarative placement and span control.\nUse `col-span` / `row-span` for the common case of spanning columns/rows.\nUse `col` / `row` for full CSS grid-column / grid-row shorthand power\n(e.g. explicit placement, mixed span + start, negative lines).",
10311
+ "summary": "",
10312
+ "attributes": [
10313
+ {
10314
+ "name": "area",
10315
+ "type": {
10316
+ "text": "string"
10317
+ },
10318
+ "description": "CSS grid-area value for named-area placement"
10319
+ },
10320
+ {
10321
+ "name": "col-span",
10322
+ "type": {
10323
+ "text": "'12' | 'full'"
10324
+ },
10325
+ "description": "Columns to span: '1'–'12' | 'full'"
10326
+ },
10327
+ {
10328
+ "name": "row-span",
10329
+ "type": {
10330
+ "text": "'6' | 'full'"
10331
+ },
10332
+ "description": "Rows to span: '1'–'6' | 'full'"
10333
+ },
10334
+ {
10335
+ "name": "col",
10336
+ "type": {
10337
+ "text": "string"
10338
+ },
10339
+ "description": "CSS grid-column value (overrides col-span)"
10340
+ },
10341
+ {
10342
+ "name": "row",
10343
+ "type": {
10344
+ "text": "string"
10345
+ },
10346
+ "description": "CSS grid-row value (overrides row-span)"
10347
+ },
10348
+ {
10349
+ "name": "align",
10350
+ "type": {
10351
+ "text": "'start' | 'center' | 'end' | 'stretch'"
10352
+ },
10353
+ "description": "align-self: 'start' | 'center' | 'end' | 'stretch'"
10354
+ },
10355
+ {
10356
+ "name": "justify",
10357
10357
  "type": {
10358
- "text": "string"
10358
+ "text": "'start' | 'center' | 'end' | 'stretch'"
10359
10359
  },
10360
- "description": "Anchor `target` attribute (links only)"
10360
+ "description": "justify-self: 'start' | 'center' | 'end' | 'stretch'"
10361
10361
  }
10362
10362
  ],
10363
10363
  "slots": [
10364
10364
  {
10365
10365
  "name": "",
10366
- "description": "Label text"
10367
- },
10368
- {
10369
- "name": "icon",
10370
- "description": "Leading icon"
10371
- },
10372
- {
10373
- "name": "end",
10374
- "description": "Trailing content (badge, shortcut, arrow, etc.)"
10375
- }
10376
- ],
10377
- "cssParts": [
10378
- {
10379
- "name": "item",
10380
- "description": "The inner anchor or button element"
10381
- },
10382
- {
10383
- "name": "item-icon",
10384
- "description": "The icon wrapper"
10385
- },
10386
- {
10387
- "name": "item-label",
10388
- "description": "The label wrapper"
10389
- },
10390
- {
10391
- "name": "item-end",
10392
- "description": "The trailing content wrapper"
10366
+ "description": "Grid item content"
10393
10367
  }
10394
10368
  ],
10395
- "cssProperties": [
10396
- {
10397
- "name": "--sidebar-item-color",
10398
- "description": "Default text color"
10399
- },
10400
- {
10401
- "name": "--sidebar-item-hover-bg",
10402
- "description": "Hover background"
10403
- },
10369
+ "demos": [
10404
10370
  {
10405
- "name": "--sidebar-item-hover-color",
10406
- "description": "Hover text color"
10371
+ "url": "",
10372
+ "description": "<!-- Span 2 columns -->\n<ore-grid-item col-span=\"2\">Wide</ore-grid-item>"
10407
10373
  },
10408
10374
  {
10409
- "name": "--sidebar-item-active-bg",
10410
- "description": "Active background"
10375
+ "url": "",
10376
+ "description": "<!-- Full-width row -->\n<ore-grid-item col-span=\"full\">Banner</ore-grid-item>"
10411
10377
  },
10412
10378
  {
10413
- "name": "--sidebar-item-active-color",
10414
- "description": "Active text color"
10379
+ "url": "",
10380
+ "description": "<!-- Named area placement -->\n<ore-grid-item area=\"sidebar\">Nav</ore-grid-item>"
10415
10381
  },
10416
- {
10417
- "name": "--sidebar-item-indicator",
10418
- "description": "Active indicator bar color"
10419
- }
10420
- ],
10421
- "demos": [
10422
10382
  {
10423
10383
  "url": "",
10424
- "description": "```html\n<ore-sidebar-item href=\"/dashboard\" active>\n <span slot=\"icon\">🏠</span>\n Dashboard\n</ore-sidebar-item>\n<ore-sidebar-item href=\"/users\">\n <span slot=\"icon\">👤</span>\n Users\n <ore-badge slot=\"end\" color=\"primary\">3</ore-badge>\n</ore-sidebar-item>\n```"
10384
+ "description": "<!-- Explicit placement -->\n<ore-grid-item col=\"2 / 5\" row=\"1 / 3\">Placed</ore-grid-item>"
10425
10385
  }
10426
10386
  ]
10427
10387
  },
@@ -10812,18 +10772,212 @@
10812
10772
  "description": "Show a close (×) button in the header"
10813
10773
  },
10814
10774
  {
10815
- "name": "persistent",
10775
+ "name": "persistent",
10776
+ "type": {
10777
+ "text": "boolean"
10778
+ },
10779
+ "description": "Prevent backdrop-click from closing"
10780
+ },
10781
+ {
10782
+ "name": "rounded",
10783
+ "type": {
10784
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
10785
+ },
10786
+ "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
10787
+ },
10788
+ {
10789
+ "name": "backdrop",
10790
+ "type": {
10791
+ "text": "'blur' | 'transparent'"
10792
+ },
10793
+ "description": "Backdrop style: 'opaque' (default) | 'blur' | 'transparent'"
10794
+ },
10795
+ {
10796
+ "name": "elevation",
10797
+ "type": {
10798
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'"
10799
+ },
10800
+ "description": "Panel shadow: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'"
10801
+ },
10802
+ {
10803
+ "name": "padding",
10804
+ "type": {
10805
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl'"
10806
+ },
10807
+ "description": "Padding: 'none' | 'sm' | 'md' | 'lg' | 'xl'"
10808
+ }
10809
+ ],
10810
+ "events": [
10811
+ {
10812
+ "name": "open-change",
10813
+ "description": "Fired when the dialog state changes. detail: { open, reason }",
10814
+ "type": {
10815
+ "text": "CustomEvent"
10816
+ }
10817
+ }
10818
+ ],
10819
+ "slots": [
10820
+ {
10821
+ "name": "",
10822
+ "description": "Dialog body content"
10823
+ },
10824
+ {
10825
+ "name": "header",
10826
+ "description": "Custom header content (replaces the default title + close layout)"
10827
+ },
10828
+ {
10829
+ "name": "footer",
10830
+ "description": "Action buttons or additional content at the bottom"
10831
+ }
10832
+ ],
10833
+ "cssParts": [
10834
+ {
10835
+ "name": "dialog",
10836
+ "description": "Dialog root container."
10837
+ },
10838
+ {
10839
+ "name": "overlay",
10840
+ "description": "Overlay backdrop element."
10841
+ },
10842
+ {
10843
+ "name": "panel",
10844
+ "description": "Panel container."
10845
+ },
10846
+ {
10847
+ "name": "header",
10848
+ "description": "Header container."
10849
+ },
10850
+ {
10851
+ "name": "title",
10852
+ "description": "Title text element."
10853
+ },
10854
+ {
10855
+ "name": "close",
10856
+ "description": "Close action control."
10857
+ },
10858
+ {
10859
+ "name": "body",
10860
+ "description": "Body content container."
10861
+ },
10862
+ {
10863
+ "name": "footer",
10864
+ "description": "Footer container."
10865
+ }
10866
+ ],
10867
+ "cssProperties": [
10868
+ {
10869
+ "name": "--dialog-bg",
10870
+ "description": "Panel background color"
10871
+ },
10872
+ {
10873
+ "name": "--dialog-border-color",
10874
+ "description": "Panel border color"
10875
+ },
10876
+ {
10877
+ "name": "--dialog-radius",
10878
+ "description": "Panel border radius"
10879
+ },
10880
+ {
10881
+ "name": "--dialog-shadow",
10882
+ "description": "Panel drop shadow"
10883
+ },
10884
+ {
10885
+ "name": "--dialog-padding",
10886
+ "description": "Padding for header, body, and footer sections"
10887
+ },
10888
+ {
10889
+ "name": "--dialog-gap",
10890
+ "description": "Gap between footer action buttons"
10891
+ },
10892
+ {
10893
+ "name": "--dialog-backdrop",
10894
+ "description": "Backdrop overlay color"
10895
+ },
10896
+ {
10897
+ "name": "--dialog-max-width",
10898
+ "description": "Maximum panel width (overridden by size prop)"
10899
+ }
10900
+ ],
10901
+ "demos": [
10902
+ {
10903
+ "url": "",
10904
+ "description": "```html\n<ore-dialog label=\"Confirm action\" dismissible>\n <p>Are you sure you want to delete this item?</p>\n <div slot=\"footer\">\n <ore-button variant=\"ghost\" id=\"cancel\">Cancel</ore-button>\n <ore-button color=\"error\" id=\"confirm\">Delete</ore-button>\n </div>\n</ore-dialog>\n<script type=\"module\">\n import '@vielzeug/refine/dialog';\n const dialog = document.querySelector('ore-dialog');\n document.querySelector('#open-btn').addEventListener('click', () => {\n dialog.setAttribute('open', '');\n });\n document.querySelector('#cancel').addEventListener('click', () => {\n dialog.removeAttribute('open');\n });\n</script>\n```"
10905
+ }
10906
+ ]
10907
+ },
10908
+ {
10909
+ "kind": "variable",
10910
+ "name": "DRAWER_TAG",
10911
+ "type": {
10912
+ "text": "'ore-drawer'"
10913
+ },
10914
+ "default": "'ore-drawer'",
10915
+ "description": "A panel that slides in from any edge of the screen, built on the native `<dialog>` element."
10916
+ },
10917
+ {
10918
+ "kind": "class",
10919
+ "name": "OreDrawerElement",
10920
+ "tagName": "ore-drawer",
10921
+ "customElement": true,
10922
+ "description": "A panel that slides in from any edge of the screen, built on the native `<dialog>` element.",
10923
+ "summary": "",
10924
+ "attributes": [
10925
+ {
10926
+ "name": "open",
10927
+ "type": {
10928
+ "text": "boolean"
10929
+ },
10930
+ "description": "Controlled open state"
10931
+ },
10932
+ {
10933
+ "name": "default-open",
10934
+ "type": {
10935
+ "text": "boolean"
10936
+ },
10937
+ "description": "Initial uncontrolled open state"
10938
+ },
10939
+ {
10940
+ "name": "placement",
10941
+ "type": {
10942
+ "text": "'left' | 'right'"
10943
+ },
10944
+ "description": "'left' | 'right' (default) | 'top' | 'bottom'"
10945
+ },
10946
+ {
10947
+ "name": "size",
10948
+ "type": {
10949
+ "text": "'sm' | 'lg' | 'full'"
10950
+ },
10951
+ "description": "'sm' | 'lg' | 'full'"
10952
+ },
10953
+ {
10954
+ "name": "title",
10955
+ "type": {
10956
+ "text": "string"
10957
+ },
10958
+ "description": "Visible header title text"
10959
+ },
10960
+ {
10961
+ "name": "label",
10962
+ "type": {
10963
+ "text": "string"
10964
+ },
10965
+ "description": "Invisible aria-label (for drawers without a visible title)"
10966
+ },
10967
+ {
10968
+ "name": "dismissible",
10816
10969
  "type": {
10817
10970
  "text": "boolean"
10818
10971
  },
10819
- "description": "Prevent backdrop-click from closing"
10972
+ "description": "Show the close (×) button (default: true)",
10973
+ "default": "true"
10820
10974
  },
10821
10975
  {
10822
- "name": "rounded",
10976
+ "name": "drag-handle-placement",
10823
10977
  "type": {
10824
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
10978
+ "text": "string"
10825
10979
  },
10826
- "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
10980
+ "description": "'outside' (default) | 'inset'"
10827
10981
  },
10828
10982
  {
10829
10983
  "name": "backdrop",
@@ -10833,24 +10987,18 @@
10833
10987
  "description": "Backdrop style: 'opaque' (default) | 'blur' | 'transparent'"
10834
10988
  },
10835
10989
  {
10836
- "name": "elevation",
10837
- "type": {
10838
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'"
10839
- },
10840
- "description": "Panel shadow: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'"
10841
- },
10842
- {
10843
- "name": "padding",
10990
+ "name": "persistent",
10844
10991
  "type": {
10845
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl'"
10992
+ "text": "boolean"
10846
10993
  },
10847
- "description": "Padding: 'none' | 'sm' | 'md' | 'lg' | 'xl'"
10994
+ "description": "Prevent backdrop-click from closing (default: false)",
10995
+ "default": "false"
10848
10996
  }
10849
10997
  ],
10850
10998
  "events": [
10851
10999
  {
10852
11000
  "name": "open-change",
10853
- "description": "Fired when the dialog state changes. detail: { open, reason }",
11001
+ "description": "When the drawer state changes. detail: { open, reason }",
10854
11002
  "type": {
10855
11003
  "text": "CustomEvent"
10856
11004
  }
@@ -10858,26 +11006,22 @@
10858
11006
  ],
10859
11007
  "slots": [
10860
11008
  {
10861
- "name": "",
10862
- "description": "Dialog body content"
11009
+ "name": "header",
11010
+ "description": "Drawer header content"
10863
11011
  },
10864
11012
  {
10865
- "name": "header",
10866
- "description": "Custom header content (replaces the default title + close layout)"
11013
+ "name": "",
11014
+ "description": "Main body content"
10867
11015
  },
10868
11016
  {
10869
11017
  "name": "footer",
10870
- "description": "Action buttons or additional content at the bottom"
11018
+ "description": "Drawer footer content"
10871
11019
  }
10872
11020
  ],
10873
11021
  "cssParts": [
10874
11022
  {
10875
- "name": "dialog",
10876
- "description": "Dialog root container."
10877
- },
10878
- {
10879
- "name": "overlay",
10880
- "description": "Overlay backdrop element."
11023
+ "name": "drag-handle",
11024
+ "description": "Drawer drag handle."
10881
11025
  },
10882
11026
  {
10883
11027
  "name": "panel",
@@ -10888,12 +11032,8 @@
10888
11032
  "description": "Header container."
10889
11033
  },
10890
11034
  {
10891
- "name": "title",
10892
- "description": "Title text element."
10893
- },
10894
- {
10895
- "name": "close",
10896
- "description": "Close action control."
11035
+ "name": "close-btn",
11036
+ "description": "Close button."
10897
11037
  },
10898
11038
  {
10899
11039
  "name": "body",
@@ -10906,42 +11046,30 @@
10906
11046
  ],
10907
11047
  "cssProperties": [
10908
11048
  {
10909
- "name": "--dialog-bg",
10910
- "description": "Panel background color"
10911
- },
10912
- {
10913
- "name": "--dialog-border-color",
10914
- "description": "Panel border color"
10915
- },
10916
- {
10917
- "name": "--dialog-radius",
10918
- "description": "Panel border radius"
10919
- },
10920
- {
10921
- "name": "--dialog-shadow",
10922
- "description": "Panel drop shadow"
11049
+ "name": "--drawer-backdrop-bg",
11050
+ "description": "Backdrop background color"
10923
11051
  },
10924
11052
  {
10925
- "name": "--dialog-padding",
10926
- "description": "Padding for header, body, and footer sections"
11053
+ "name": "--drawer-bg",
11054
+ "description": "Panel background color"
10927
11055
  },
10928
11056
  {
10929
- "name": "--dialog-gap",
10930
- "description": "Gap between footer action buttons"
11057
+ "name": "--drawer-size",
11058
+ "description": "Panel width (horizontal) or height (vertical)"
10931
11059
  },
10932
11060
  {
10933
- "name": "--dialog-backdrop",
10934
- "description": "Backdrop overlay color"
11061
+ "name": "--drawer-shadow",
11062
+ "description": "Panel box-shadow"
10935
11063
  },
10936
11064
  {
10937
- "name": "--dialog-max-width",
10938
- "description": "Maximum panel width (overridden by size prop)"
11065
+ "name": "--drawer-panel-blur",
11066
+ "description": "Panel backdrop blur amount"
10939
11067
  }
10940
11068
  ],
10941
11069
  "demos": [
10942
11070
  {
10943
11071
  "url": "",
10944
- "description": "```html\n<ore-dialog label=\"Confirm action\" dismissible>\n <p>Are you sure you want to delete this item?</p>\n <div slot=\"footer\">\n <ore-button variant=\"ghost\" id=\"cancel\">Cancel</ore-button>\n <ore-button color=\"error\" id=\"confirm\">Delete</ore-button>\n </div>\n</ore-dialog>\n<script type=\"module\">\n import '@vielzeug/refine/dialog';\n const dialog = document.querySelector('ore-dialog');\n document.querySelector('#open-btn').addEventListener('click', () => {\n dialog.setAttribute('open', '');\n });\n document.querySelector('#cancel').addEventListener('click', () => {\n dialog.removeAttribute('open');\n });\n</script>\n```"
11072
+ "description": "```html\n<!-- With visible title -->\n<ore-drawer open title=\"Settings\" placement=\"right\">\n <p>Settings content here.</p>\n</ore-drawer>\n<!-- With custom header slot -->\n<ore-drawer open placement=\"right\">\n <span slot=\"header\">Settings</span>\n <p>Settings content here.</p>\n</ore-drawer>\n```"
10945
11073
  }
10946
11074
  ]
10947
11075
  },
@@ -11194,174 +11322,6 @@
11194
11322
  }
11195
11323
  ]
11196
11324
  },
11197
- {
11198
- "kind": "variable",
11199
- "name": "DRAWER_TAG",
11200
- "type": {
11201
- "text": "'ore-drawer'"
11202
- },
11203
- "default": "'ore-drawer'",
11204
- "description": "A panel that slides in from any edge of the screen, built on the native `<dialog>` element."
11205
- },
11206
- {
11207
- "kind": "class",
11208
- "name": "OreDrawerElement",
11209
- "tagName": "ore-drawer",
11210
- "customElement": true,
11211
- "description": "A panel that slides in from any edge of the screen, built on the native `<dialog>` element.",
11212
- "summary": "",
11213
- "attributes": [
11214
- {
11215
- "name": "open",
11216
- "type": {
11217
- "text": "boolean"
11218
- },
11219
- "description": "Controlled open state"
11220
- },
11221
- {
11222
- "name": "default-open",
11223
- "type": {
11224
- "text": "boolean"
11225
- },
11226
- "description": "Initial uncontrolled open state"
11227
- },
11228
- {
11229
- "name": "placement",
11230
- "type": {
11231
- "text": "'left' | 'right'"
11232
- },
11233
- "description": "'left' | 'right' (default) | 'top' | 'bottom'"
11234
- },
11235
- {
11236
- "name": "size",
11237
- "type": {
11238
- "text": "'sm' | 'lg' | 'full'"
11239
- },
11240
- "description": "'sm' | 'lg' | 'full'"
11241
- },
11242
- {
11243
- "name": "title",
11244
- "type": {
11245
- "text": "string"
11246
- },
11247
- "description": "Visible header title text"
11248
- },
11249
- {
11250
- "name": "label",
11251
- "type": {
11252
- "text": "string"
11253
- },
11254
- "description": "Invisible aria-label (for drawers without a visible title)"
11255
- },
11256
- {
11257
- "name": "dismissible",
11258
- "type": {
11259
- "text": "boolean"
11260
- },
11261
- "description": "Show the close (×) button (default: true)",
11262
- "default": "true"
11263
- },
11264
- {
11265
- "name": "drag-handle-placement",
11266
- "type": {
11267
- "text": "string"
11268
- },
11269
- "description": "'outside' (default) | 'inset'"
11270
- },
11271
- {
11272
- "name": "backdrop",
11273
- "type": {
11274
- "text": "'blur' | 'transparent'"
11275
- },
11276
- "description": "Backdrop style: 'opaque' (default) | 'blur' | 'transparent'"
11277
- },
11278
- {
11279
- "name": "persistent",
11280
- "type": {
11281
- "text": "boolean"
11282
- },
11283
- "description": "Prevent backdrop-click from closing (default: false)",
11284
- "default": "false"
11285
- }
11286
- ],
11287
- "events": [
11288
- {
11289
- "name": "open-change",
11290
- "description": "When the drawer state changes. detail: { open, reason }",
11291
- "type": {
11292
- "text": "CustomEvent"
11293
- }
11294
- }
11295
- ],
11296
- "slots": [
11297
- {
11298
- "name": "header",
11299
- "description": "Drawer header content"
11300
- },
11301
- {
11302
- "name": "",
11303
- "description": "Main body content"
11304
- },
11305
- {
11306
- "name": "footer",
11307
- "description": "Drawer footer content"
11308
- }
11309
- ],
11310
- "cssParts": [
11311
- {
11312
- "name": "drag-handle",
11313
- "description": "Drawer drag handle."
11314
- },
11315
- {
11316
- "name": "panel",
11317
- "description": "Panel container."
11318
- },
11319
- {
11320
- "name": "header",
11321
- "description": "Header container."
11322
- },
11323
- {
11324
- "name": "close-btn",
11325
- "description": "Close button."
11326
- },
11327
- {
11328
- "name": "body",
11329
- "description": "Body content container."
11330
- },
11331
- {
11332
- "name": "footer",
11333
- "description": "Footer container."
11334
- }
11335
- ],
11336
- "cssProperties": [
11337
- {
11338
- "name": "--drawer-backdrop-bg",
11339
- "description": "Backdrop background color"
11340
- },
11341
- {
11342
- "name": "--drawer-bg",
11343
- "description": "Panel background color"
11344
- },
11345
- {
11346
- "name": "--drawer-size",
11347
- "description": "Panel width (horizontal) or height (vertical)"
11348
- },
11349
- {
11350
- "name": "--drawer-shadow",
11351
- "description": "Panel box-shadow"
11352
- },
11353
- {
11354
- "name": "--drawer-panel-blur",
11355
- "description": "Panel backdrop blur amount"
11356
- }
11357
- ],
11358
- "demos": [
11359
- {
11360
- "url": "",
11361
- "description": "```html\n<!-- With visible title -->\n<ore-drawer open title=\"Settings\" placement=\"right\">\n <p>Settings content here.</p>\n</ore-drawer>\n<!-- With custom header slot -->\n<ore-drawer open placement=\"right\">\n <span slot=\"header\">Settings</span>\n <p>Settings content here.</p>\n</ore-drawer>\n```"
11362
- }
11363
- ]
11364
- },
11365
11325
  {
11366
11326
  "kind": "variable",
11367
11327
  "name": "NAVIGATION_MENU_ITEM_TAG",