@adia-ai/web-components 0.8.38 → 0.8.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/MIGRATION.md +243 -2
  3. package/components/agent-artifact/agent-artifact.css +1 -1
  4. package/components/agent-reasoning/agent-reasoning.css +2 -2
  5. package/components/agent-trace/agent-trace.css +3 -3
  6. package/components/alert/alert.css +1 -1
  7. package/components/avatar/avatar.css +1 -1
  8. package/components/badge/badge.css +1 -1
  9. package/components/button/button.css +6 -5
  10. package/components/calendar-picker/calendar-picker.css +5 -2
  11. package/components/card/card.css +3 -3
  12. package/components/chart/chart.a2ui.json +5 -5
  13. package/components/chart/chart.class.js +4 -4
  14. package/components/chart/chart.css +6 -6
  15. package/components/chart/chart.d.ts +2 -2
  16. package/components/chart/chart.yaml +3 -2
  17. package/components/chat-thread/chat-thread.css +1 -1
  18. package/components/code/code.css +6 -6
  19. package/components/combobox/combobox.css +8 -2
  20. package/components/command/command.a2ui.json +3 -0
  21. package/components/command/command.class.js +28 -6
  22. package/components/command/command.css +17 -6
  23. package/components/command/command.yaml +5 -0
  24. package/components/date-range-picker/date-range-picker.css +7 -1
  25. package/components/datetime-picker/datetime-picker.css +5 -1
  26. package/components/description-list/description-list.css +2 -2
  27. package/components/display-field/display-field.css +3 -3
  28. package/components/divider/divider.css +1 -1
  29. package/components/drawer/drawer.css +2 -2
  30. package/components/drilldown/drilldown.a2ui.json +3 -1
  31. package/components/drilldown/drilldown.class.js +12 -4
  32. package/components/drilldown/drilldown.css +9 -10
  33. package/components/drilldown/drilldown.yaml +2 -0
  34. package/components/empty-state/empty-state.css +2 -2
  35. package/components/field/field.css +1 -1
  36. package/components/heatmap/heatmap.css +2 -2
  37. package/components/inline-message/inline-message.css +1 -1
  38. package/components/input/input.css +5 -4
  39. package/components/integration-card/integration-card.css +4 -4
  40. package/components/kbd/kbd.css +1 -1
  41. package/components/list/list.css +2 -2
  42. package/components/modal/modal.class.js +68 -4
  43. package/components/nav/nav.a2ui.json +5 -0
  44. package/components/nav/nav.class.js +24 -4
  45. package/components/nav/nav.css +2 -2
  46. package/components/nav/nav.d.ts +2 -0
  47. package/components/nav/nav.yaml +18 -0
  48. package/components/nav-group/nav-group.css +3 -3
  49. package/components/nav-item/nav-item.css +2 -2
  50. package/components/option-card/option-card.css +1 -1
  51. package/components/otp-input/otp-input.css +1 -1
  52. package/components/page/page.css +2 -2
  53. package/components/pagination/pagination.css +1 -1
  54. package/components/pane/pane.css +1 -1
  55. package/components/progress-row/progress-row.css +2 -2
  56. package/components/qr-code/qr-code.a2ui.json +10 -10
  57. package/components/qr-code/qr-code.class.js +3 -3
  58. package/components/qr-code/qr-code.d.ts +10 -7
  59. package/components/qr-code/qr-code.yaml +13 -9
  60. package/components/range/range.css +1 -1
  61. package/components/rating/rating.css +1 -1
  62. package/components/richtext/richtext.css +3 -3
  63. package/components/segment/segment.css +5 -4
  64. package/components/select/select.class.js +30 -12
  65. package/components/select/select.css +14 -5
  66. package/components/spinner/spinner.css +1 -1
  67. package/components/stat/stat.css +3 -3
  68. package/components/step-progress/step-progress.css +1 -1
  69. package/components/stepper/stepper.css +2 -2
  70. package/components/swatch/swatch.css +8 -6
  71. package/components/table/table.a2ui.json +0 -10
  72. package/components/table/table.class.js +4 -4
  73. package/components/table/table.css +6 -9
  74. package/components/table/table.d.ts +0 -2
  75. package/components/table/table.yaml +0 -9
  76. package/components/table-toolbar/table-toolbar.css +1 -1
  77. package/components/tabs/tabs.css +1 -1
  78. package/components/tag/tag.css +2 -2
  79. package/components/tags-input/tags-input.css +1 -1
  80. package/components/textarea/textarea.css +1 -1
  81. package/components/time-picker/time-picker.css +1 -1
  82. package/components/timeline/timeline.css +4 -4
  83. package/components/toc/toc.css +1 -1
  84. package/components/toggle-group/toggle-group.class.js +13 -11
  85. package/components/toggle-group/toggle-group.css +14 -8
  86. package/components/toggle-group/toggle-group.d.ts +5 -0
  87. package/components/toggle-group/toggle-group.yaml +7 -0
  88. package/components/toggle-group/toggle-option.a2ui.json +5 -0
  89. package/components/toggle-group/toggle-option.yaml +14 -2
  90. package/components/tooltip/tooltip.css +1 -1
  91. package/components/tour/tour.css +2 -2
  92. package/components/tree/tree.css +1 -1
  93. package/custom-elements.json +101 -89
  94. package/dist/host.min.css +1 -1
  95. package/dist/host.sheet.js +1 -1
  96. package/dist/theme-provider.min.js +3 -3
  97. package/dist/web-components.min.css +1 -1
  98. package/dist/web-components.min.js +97 -94
  99. package/dist/web-components.sheet.js +1 -1
  100. package/package.json +1 -1
  101. package/styles/type/scale.css +6 -7
@@ -434,7 +434,7 @@
434
434
  "description": "Disable all actions."
435
435
  },
436
436
  {
437
- "name": "saveIcon",
437
+ "name": "save-icon",
438
438
  "type": {
439
439
  "text": "string"
440
440
  },
@@ -442,7 +442,7 @@
442
442
  "description": "Save button icon."
443
443
  },
444
444
  {
445
- "name": "saveLabel",
445
+ "name": "save-label",
446
446
  "type": {
447
447
  "text": "string"
448
448
  },
@@ -521,7 +521,7 @@
521
521
  "description": "Headline question."
522
522
  },
523
523
  {
524
- "name": "submitLabel",
524
+ "name": "submit-label",
525
525
  "type": {
526
526
  "text": "string"
527
527
  },
@@ -572,7 +572,7 @@
572
572
  },
573
573
  "attributes": [
574
574
  {
575
- "name": "noAutocollapse",
575
+ "name": "no-autocollapse",
576
576
  "type": {
577
577
  "text": "boolean"
578
578
  },
@@ -860,14 +860,14 @@
860
860
  "description": "Dunning mode only — ISO 4217 currency code driving the `Intl.NumberFormat` style=\"currency\" rendering. Defaults to `USD`."
861
861
  },
862
862
  {
863
- "name": "dueAt",
863
+ "name": "due-at",
864
864
  "type": {
865
865
  "text": "string"
866
866
  },
867
867
  "description": "Dunning mode only — ISO 8601 due / failed-at timestamp. Formatted via `Intl.DateTimeFormat`. Ignored when [pattern] is not `dunning`. Attribute spelling: `due-at`."
868
868
  },
869
869
  {
870
- "name": "cardLast4",
870
+ "name": "card-last4",
871
871
  "type": {
872
872
  "text": "string"
873
873
  },
@@ -1328,7 +1328,7 @@
1328
1328
  "description": "Collapse middle crumbs into a `…` overflow popover when there are 4+ items."
1329
1329
  },
1330
1330
  {
1331
- "name": "collapseKeepLeading",
1331
+ "name": "collapse-keep-leading",
1332
1332
  "type": {
1333
1333
  "text": "number"
1334
1334
  },
@@ -1336,7 +1336,7 @@
1336
1336
  "description": "Number of leading items to keep visible when [collapse] is active. The first item (often a home/icon link) sits before the overflow popover."
1337
1337
  },
1338
1338
  {
1339
- "name": "collapseKeepTrailing",
1339
+ "name": "collapse-keep-trailing",
1340
1340
  "type": {
1341
1341
  "text": "number"
1342
1342
  },
@@ -1549,14 +1549,14 @@
1549
1549
  "description": "Blocks selection but allows month navigation."
1550
1550
  },
1551
1551
  {
1552
- "name": "rangeStart",
1552
+ "name": "range-start",
1553
1553
  "type": {
1554
1554
  "text": "string"
1555
1555
  },
1556
1556
  "description": "Start of a date range (ISO YYYY-MM-DD). When both rangeStart and rangeEnd are set + ordered, day cells strictly between the endpoints get `[data-in-range]` stamped for visual continuity. Used by `<date-range-picker-ui>` which pushes the same from/to onto both calendar panes. Endpoints themselves render via the `value` prop's `[data-selected]` state."
1557
1557
  },
1558
1558
  {
1559
- "name": "rangeEnd",
1559
+ "name": "range-end",
1560
1560
  "type": {
1561
1561
  "text": "string"
1562
1562
  },
@@ -1930,7 +1930,7 @@
1930
1930
  "description": "When set, rows are non-interactive <span>s (no click, no toggle)."
1931
1931
  },
1932
1932
  {
1933
- "name": "onToggle",
1933
+ "name": "on-toggle",
1934
1934
  "type": {
1935
1935
  "text": "string"
1936
1936
  },
@@ -2004,7 +2004,7 @@
2004
2004
  "description": "Color scheme"
2005
2005
  },
2006
2006
  {
2007
- "name": "hideAverage",
2007
+ "name": "hide-average",
2008
2008
  "type": {
2009
2009
  "text": "boolean"
2010
2010
  },
@@ -2012,7 +2012,7 @@
2012
2012
  "description": "When true, suppress the overlaid average line"
2013
2013
  },
2014
2014
  {
2015
- "name": "hideGrid",
2015
+ "name": "hide-grid",
2016
2016
  "type": {
2017
2017
  "text": "boolean"
2018
2018
  },
@@ -2020,7 +2020,7 @@
2020
2020
  "description": "Hide gridlines"
2021
2021
  },
2022
2022
  {
2023
- "name": "hideValues",
2023
+ "name": "hide-values",
2024
2024
  "type": {
2025
2025
  "text": "boolean"
2026
2026
  },
@@ -2028,12 +2028,12 @@
2028
2028
  "description": "Hide value labels"
2029
2029
  },
2030
2030
  {
2031
- "name": "radius",
2031
+ "name": "corner-radius",
2032
2032
  "type": {
2033
2033
  "text": "number"
2034
2034
  },
2035
2035
  "default": "null",
2036
- "description": "Bar corner radius (null = let CSS tokens decide)"
2036
+ "description": "Bar corner radius in px (null = let CSS tokens decide)"
2037
2037
  },
2038
2038
  {
2039
2039
  "name": "size",
@@ -2059,7 +2059,7 @@
2059
2059
  "description": "Marker (dot) visibility for line and multi-line series. `all` draws a circle[data-dot] on every datum (default — matches pre-gh#561 behavior). `none` hides all dots so a dense series reads as a clean line. `hover` shows only the currently-hovered datum's dot. `last` shows only the terminal point per series (sparkline convention). Tooltip hit targets ([data-hit]) are a separate always-rendered layer — every mode keeps hover/click working along the whole line."
2060
2060
  },
2061
2061
  {
2062
- "name": "seriesEmphasis",
2062
+ "name": "series-emphasis",
2063
2063
  "type": {
2064
2064
  "text": "string"
2065
2065
  },
@@ -2362,7 +2362,7 @@
2362
2362
  "description": "Label text beside the checkbox"
2363
2363
  },
2364
2364
  {
2365
- "name": "labelHidden",
2365
+ "name": "label-hidden",
2366
2366
  "type": {
2367
2367
  "text": "boolean"
2368
2368
  },
@@ -2439,7 +2439,7 @@
2439
2439
  "description": "Language hint for syntax highlighting"
2440
2440
  },
2441
2441
  {
2442
- "name": "lineNumbers",
2442
+ "name": "line-numbers",
2443
2443
  "type": {
2444
2444
  "text": "boolean"
2445
2445
  },
@@ -3184,6 +3184,10 @@
3184
3184
  "name": "footer",
3185
3185
  "description": "Keyboard hint bar"
3186
3186
  },
3187
+ {
3188
+ "name": "input",
3189
+ "description": "The auto-stamped search field — a contenteditable=\"plaintext-only\" span carrying role=\"combobox\" (per ADR-0025/ADR-0055; no native <input>). Internal only; not consumer-slottable."
3190
+ },
3187
3191
  {
3188
3192
  "name": "list",
3189
3193
  "description": "Container for command items and groups"
@@ -3327,7 +3331,7 @@
3327
3331
  "description": "Selected range as `{from, to}` ISO 8601 dates. Null when empty. Emitted on commit."
3328
3332
  },
3329
3333
  {
3330
- "name": "compareValue",
3334
+ "name": "compare-value",
3331
3335
  "type": {
3332
3336
  "text": "string"
3333
3337
  },
@@ -3404,7 +3408,7 @@
3404
3408
  "description": "Trigger button date format. `short`: `Jan 1, 2026`; `long`: `January 1, 2026`; `iso`: `2026-01-01`."
3405
3409
  },
3406
3410
  {
3407
- "name": "noPresets",
3411
+ "name": "no-presets",
3408
3412
  "type": {
3409
3413
  "text": "boolean"
3410
3414
  },
@@ -3543,7 +3547,7 @@
3543
3547
  "description": "Time-pane precision. `minute` (default) emits `HH:mm`; `second` exposes the seconds segment and emits `HH:mm:ss`."
3544
3548
  },
3545
3549
  {
3546
- "name": "hourcycle",
3550
+ "name": "hour-cycle",
3547
3551
  "type": {
3548
3552
  "text": "string"
3549
3553
  },
@@ -3688,7 +3692,7 @@
3688
3692
  },
3689
3693
  "attributes": [
3690
3694
  {
3691
- "name": "labelOn",
3695
+ "name": "label-on",
3692
3696
  "type": {
3693
3697
  "text": "string"
3694
3698
  },
@@ -3696,7 +3700,7 @@
3696
3700
  "description": "Header label rendered when state is \"on\"."
3697
3701
  },
3698
3702
  {
3699
- "name": "labelOff",
3703
+ "name": "label-off",
3700
3704
  "type": {
3701
3705
  "text": "string"
3702
3706
  },
@@ -4119,7 +4123,7 @@
4119
4123
  "description": "Placeholder text for the filter input (only rendered when `[filterable]`)."
4120
4124
  },
4121
4125
  {
4122
- "name": "selectOnDrill",
4126
+ "name": "select-on-drill",
4123
4127
  "type": {
4124
4128
  "text": "boolean"
4125
4129
  },
@@ -4694,7 +4698,7 @@
4694
4698
  "description": "Block-axis alignment of grid items (start/center/end/stretch) via align-items — e.g. vertically centering a text column against a visual in a 2-column hero. Sets grid-item alignment, NOT text alignment."
4695
4699
  },
4696
4700
  {
4697
- "name": "columnGap",
4701
+ "name": "column-gap",
4698
4702
  "type": {
4699
4703
  "text": "string"
4700
4704
  },
@@ -4725,14 +4729,14 @@
4725
4729
  "description": "Inline-axis alignment of grid items (start/center/end/stretch) via justify-items. Default stretch (items fill their column track)."
4726
4730
  },
4727
4731
  {
4728
- "name": "minColumnWidth",
4732
+ "name": "min-column-width",
4729
4733
  "type": {
4730
4734
  "text": "string"
4731
4735
  },
4732
4736
  "description": "Minimum track width for columns=\"auto-fit\"/\"auto-fill\" (any CSS length, e.g. \"240px\", \"16rem\"). Sets the minmax() floor so cards don't shrink below it before wrapping; unset uses the 12rem default. No effect on numeric columns."
4733
4737
  },
4734
4738
  {
4735
- "name": "rowGap",
4739
+ "name": "row-gap",
4736
4740
  "type": {
4737
4741
  "text": "string"
4738
4742
  },
@@ -4789,7 +4793,7 @@
4789
4793
  "description": "Aspect ratio"
4790
4794
  },
4791
4795
  {
4792
- "name": "colorScheme",
4796
+ "name": "color-scheme",
4793
4797
  "type": {
4794
4798
  "text": "string"
4795
4799
  },
@@ -4805,7 +4809,7 @@
4805
4809
  "description": "Column count"
4806
4810
  },
4807
4811
  {
4808
- "name": "noLegend",
4812
+ "name": "no-legend",
4809
4813
  "type": {
4810
4814
  "text": "boolean"
4811
4815
  },
@@ -4829,7 +4833,7 @@
4829
4833
  "description": "Value-to-bucket scale"
4830
4834
  },
4831
4835
  {
4832
- "name": "startDate",
4836
+ "name": "start-date",
4833
4837
  "type": {
4834
4838
  "text": "string"
4835
4839
  },
@@ -5777,7 +5781,7 @@
5777
5781
  "description": "The items to virtualize. Required for prop-driven authoring; ignored when data-stream-src is set."
5778
5782
  },
5779
5783
  {
5780
- "name": "itemSize",
5784
+ "name": "item-size",
5781
5785
  "type": {
5782
5786
  "text": "number"
5783
5787
  },
@@ -5785,7 +5789,7 @@
5785
5789
  "description": "Fixed item height in pixels. When > 0, uses the constant-time fast path (avoids per-row measurement)."
5786
5790
  },
5787
5791
  {
5788
- "name": "itemSizeRem",
5792
+ "name": "item-size-rem",
5789
5793
  "type": {
5790
5794
  "text": "number"
5791
5795
  },
@@ -5793,7 +5797,7 @@
5793
5797
  "description": "Fixed item height in rem. Useful for typographic-scale rows that should track the body type."
5794
5798
  },
5795
5799
  {
5796
- "name": "estimatedSize",
5800
+ "name": "estimated-size",
5797
5801
  "type": {
5798
5802
  "text": "number"
5799
5803
  },
@@ -5817,7 +5821,7 @@
5817
5821
  "description": "Scroll axis — vertical (default) or horizontal carousel."
5818
5822
  },
5819
5823
  {
5820
- "name": "pinBottom",
5824
+ "name": "pin-bottom",
5821
5825
  "type": {
5822
5826
  "text": "boolean"
5823
5827
  },
@@ -5825,7 +5829,7 @@
5825
5829
  "description": "When appending items, keep scroll pinned to the bottom (chat-thread / log-tail pattern)."
5826
5830
  },
5827
5831
  {
5828
- "name": "startIndex",
5832
+ "name": "start-index",
5829
5833
  "type": {
5830
5834
  "text": "number"
5831
5835
  },
@@ -6007,7 +6011,7 @@
6007
6011
  "description": "Enable selection on child listitems (roving tabindex + aria-selected)."
6008
6012
  },
6009
6013
  {
6010
- "name": "selectedKey",
6014
+ "name": "selected-key",
6011
6015
  "type": {
6012
6016
  "text": "string"
6013
6017
  },
@@ -6695,6 +6699,14 @@
6695
6699
  "text": "string"
6696
6700
  },
6697
6701
  "description": "Optional kicker label. Section variant renders it via ::before; primary uses it as aria-label only."
6702
+ },
6703
+ {
6704
+ "name": "multi-expand",
6705
+ "type": {
6706
+ "text": "boolean"
6707
+ },
6708
+ "default": "false",
6709
+ "description": "Opt out of the default single-expanded-group behavior. When unset, selecting a nav-item-ui collapses every nav-group-ui except the one containing the newly selected item (all, when the selection is ungrouped); manual multi-expansion still works up until the next selection."
6698
6710
  }
6699
6711
  ],
6700
6712
  "slots": [
@@ -6779,7 +6791,7 @@
6779
6791
  "description": "Port indicator dot size in pixels"
6780
6792
  },
6781
6793
  {
6782
- "name": "portSize",
6794
+ "name": "port-size",
6783
6795
  "type": {
6784
6796
  "text": "number"
6785
6797
  },
@@ -6803,7 +6815,7 @@
6803
6815
  "description": "Show port indicator dots. Defaults to true when editable"
6804
6816
  },
6805
6817
  {
6806
- "name": "showPorts",
6818
+ "name": "show-ports",
6807
6819
  "type": {
6808
6820
  "text": "boolean"
6809
6821
  },
@@ -6819,7 +6831,7 @@
6819
6831
  "description": "Stroke width in pixels"
6820
6832
  },
6821
6833
  {
6822
- "name": "strokeWidth",
6834
+ "name": "stroke-width",
6823
6835
  "type": {
6824
6836
  "text": "number"
6825
6837
  },
@@ -6894,7 +6906,7 @@
6894
6906
  "description": "The numeric value to format. Empty string or non-numeric value renders nothing."
6895
6907
  },
6896
6908
  {
6897
- "name": "numberStyle",
6909
+ "name": "number-style",
6898
6910
  "type": {
6899
6911
  "text": "string"
6900
6912
  },
@@ -6924,7 +6936,7 @@
6924
6936
  "description": "`Intl.NumberFormat` `notation` option. `standard` is the thousands-grouped form (1,234,567); `compact` is the abbreviated form (1.2M); `scientific` and `engineering` are the exponent forms. Defaults to `standard`."
6925
6937
  },
6926
6938
  {
6927
- "name": "compactDisplay",
6939
+ "name": "compact-display",
6928
6940
  "type": {
6929
6941
  "text": "string"
6930
6942
  },
@@ -6932,7 +6944,7 @@
6932
6944
  "description": "When [notation=\"compact\"], controls the compact-form length. `short` = \"1.2M\" (default); `long` = \"1.2 million\"."
6933
6945
  },
6934
6946
  {
6935
- "name": "minimumFractionDigits",
6947
+ "name": "minimum-fraction-digits",
6936
6948
  "type": {
6937
6949
  "text": "number"
6938
6950
  },
@@ -6940,7 +6952,7 @@
6940
6952
  "description": "Minimum fractional digits (0–20). Padded with trailing zeros. Useful for currency display to force \".00\" suffix."
6941
6953
  },
6942
6954
  {
6943
- "name": "maximumFractionDigits",
6955
+ "name": "maximum-fraction-digits",
6944
6956
  "type": {
6945
6957
  "text": "number"
6946
6958
  },
@@ -6955,7 +6967,7 @@
6955
6967
  "description": "BCP-47 locale tag for the formatter. Empty defaults to the document locale (`<html lang>`) then to browser default."
6956
6968
  },
6957
6969
  {
6958
- "name": "signDisplay",
6970
+ "name": "sign-display",
6959
6971
  "type": {
6960
6972
  "text": "string"
6961
6973
  },
@@ -7212,7 +7224,7 @@
7212
7224
  "description": "Sets the page as a scroll container. `overflow-y: auto`, full height, contained overscroll. Use when the page IS the scroll surface (standalone pages); leave off when nested inside a parent that already manages scroll (e.g. inside an `<admin-shell>`'s main `<section>`)."
7213
7225
  },
7214
7226
  {
7215
- "name": "maxWidth",
7227
+ "name": "max-width",
7216
7228
  "type": {
7217
7229
  "text": "string"
7218
7230
  },
@@ -7226,7 +7238,7 @@
7226
7238
  "description": "Page-padding scale from the spacing system. Accepts `0`–`8` (mapped to `--a-space-N`). Empty (no value) applies the `--page-padding` token; `0` removes padding."
7227
7239
  },
7228
7240
  {
7229
- "name": "stickyHeader",
7241
+ "name": "sticky-header",
7230
7242
  "type": {
7231
7243
  "text": "boolean"
7232
7244
  },
@@ -7369,7 +7381,7 @@
7369
7381
  "description": "Component property: collapsed."
7370
7382
  },
7371
7383
  {
7372
- "name": "maxWidth",
7384
+ "name": "max-width",
7373
7385
  "type": {
7374
7386
  "text": "number"
7375
7387
  },
@@ -7377,7 +7389,7 @@
7377
7389
  "description": "Component property: maxWidth."
7378
7390
  },
7379
7391
  {
7380
- "name": "minWidth",
7392
+ "name": "min-width",
7381
7393
  "type": {
7382
7394
  "text": "number"
7383
7395
  },
@@ -7454,7 +7466,7 @@
7454
7466
  "description": "The password string to score. JS-property only — NOT reflected to a DOM attribute (so the password never leaks into rendered HTML). Wire to an input via `input.addEventListener('input', e => meter.value = e.target.value)`."
7455
7467
  },
7456
7468
  {
7457
- "name": "minScore",
7469
+ "name": "min-score",
7458
7470
  "type": {
7459
7471
  "text": "number"
7460
7472
  },
@@ -7462,7 +7474,7 @@
7462
7474
  "description": "Minimum acceptable score (0–3). The `score-change` event's `detail.satisfied` boolean reflects whether the current score meets this threshold. Useful for gating a submit button."
7463
7475
  },
7464
7476
  {
7465
- "name": "showLabel",
7477
+ "name": "show-label",
7466
7478
  "type": {
7467
7479
  "text": "boolean"
7468
7480
  },
@@ -7654,7 +7666,7 @@
7654
7666
  "description": "Pane arrangement. Defaults to `split` — render and code side-by-side in a responsive 2-column grid that collapses to stacked on narrow widths (a bare `<preview-ui>` stamps `layout=\"split\"` on connect). Use `stack` to force the render stacked above the code; the docs auto-apply `stack` to wide self-framing demos (card / shell / table) that read cramped at half width. The `rows` attribute is a separate gallery mode and overrides this."
7655
7667
  },
7656
7668
  {
7657
- "name": "codeFirst",
7669
+ "name": "code-first",
7658
7670
  "type": {
7659
7671
  "text": "boolean"
7660
7672
  },
@@ -7825,7 +7837,7 @@
7825
7837
  "declarations": [
7826
7838
  {
7827
7839
  "kind": "class",
7828
- "description": "Inline QR code generator — renders a scannable code as inline SVG. Two modes: **A. Auto-encode (default).** Set `[value]` to a string (URL, plain text, share link, 2FA secret). The component encodes the data with the built-in zero-deps QR encoder (byte mode, ECC level configurable, versions 1–10 up to ~150 byte chars) and renders an SVG. **B. Bring-your-own matrix.** Set `[matrix]` to a JSON string of a 2-D 0/1 array (`[[1,0,1,...],[...],...]`). The component renders the supplied matrix directly without invoking its own encoder. Use this when you need versions 11–40, kanji/alphanumeric mode, or any encoder feature beyond the built-in. When both `[value]` and `[matrix]` are set, the matrix wins (BYO override). Output is a single `<svg>` with `viewBox=\"0 0 N N\"`. Crisp-edges rendering preserves the scannable cell boundaries at any size. Sizing is controlled by the `[size]` prop (host CSS-pixel dimension); internal cell size is computed from `size / (matrix-size + 2 · margin)`. ARIA: `role=\"img\"` with `aria-label` (default \"QR code\" or the `[label]` prop).",
7840
+ "description": "Inline QR code generator — renders a scannable code as inline SVG. Two modes: **A. Auto-encode (default).** Set `[value]` to a string (URL, plain text, share link, 2FA secret). The component encodes the data with the built-in zero-deps QR encoder (byte mode, ECC level configurable, versions 1–10 up to ~150 byte chars) and renders an SVG. **B. Bring-your-own matrix.** Set `[matrix]` to a JSON string of a 2-D 0/1 array (`[[1,0,1,...],[...],...]`). The component renders the supplied matrix directly without invoking its own encoder. Use this when you need versions 11–40, kanji/alphanumeric mode, or any encoder feature beyond the built-in. When both `[value]` and `[matrix]` are set, the matrix wins (BYO override). Output is a single `<svg>` with `viewBox=\"0 0 N N\"`. Crisp-edges rendering preserves the scannable cell boundaries at any size. Sizing is controlled by the `[size]` prop (host CSS-pixel dimension); internal cell size is computed from `size / (matrix-size + 2 · quiet-zone)`. ARIA: `role=\"img\"` with `aria-label` (default \"QR code\" or the `[label]` prop).",
7829
7841
  "name": "UIQRCode",
7830
7842
  "tagName": "qr-code-ui",
7831
7843
  "superclass": {
@@ -7853,10 +7865,10 @@
7853
7865
  "text": "number"
7854
7866
  },
7855
7867
  "default": "200",
7856
- "description": "Host display size in CSS pixels (width and height; the SVG is always square). Default 200. Internal cell size is computed from this divided by `matrix-size + 2·margin`."
7868
+ "description": "Host display size in CSS pixels (width and height; the SVG is always square). Default 200. Internal cell size is computed from this divided by `matrix-size + 2·quiet-zone`."
7857
7869
  },
7858
7870
  {
7859
- "name": "errorCorrection",
7871
+ "name": "error-correction",
7860
7872
  "type": {
7861
7873
  "text": "string"
7862
7874
  },
@@ -7864,12 +7876,12 @@
7864
7876
  "description": "Error-correction level (auto-encode mode only). `L` (7% recovery), `M` (15%, default), `Q` (25%), `H` (30%). Higher levels recover from more damage at the cost of QR-version size growth."
7865
7877
  },
7866
7878
  {
7867
- "name": "margin",
7879
+ "name": "quiet-zone",
7868
7880
  "type": {
7869
7881
  "text": "number"
7870
7882
  },
7871
7883
  "default": "4",
7872
- "description": "Quiet zone in cells around the QR pattern. QR spec requires a minimum 4-cell margin for reliable scanning; smaller values may not scan on some devices. Default `4`."
7884
+ "description": "Quiet zone in cells around the QR pattern. QR spec requires a minimum 4-cell quiet zone for reliable scanning; smaller values may not scan on some devices. Default `4`. (Renamed from `[margin]` — that name collided with the framework's global `[margin]` Scale attribute; `margin` on `qr-code-ui` now means the global spacing attribute, per ADR-0053.)"
7873
7885
  },
7874
7886
  {
7875
7887
  "name": "color",
@@ -8216,7 +8228,7 @@
8216
8228
  "description": "Form participation — field name when submitted"
8217
8229
  },
8218
8230
  {
8219
- "name": "allowHalf",
8231
+ "name": "allow-half",
8220
8232
  "type": {
8221
8233
  "text": "boolean"
8222
8234
  },
@@ -8306,7 +8318,7 @@
8306
8318
  "description": "ISO 8601 timestamp (e.g. `2026-05-25T09:30:00Z`) or any string parseable by `Date`. Required for output — empty value renders nothing."
8307
8319
  },
8308
8320
  {
8309
- "name": "timeStyle",
8321
+ "name": "time-style",
8310
8322
  "type": {
8311
8323
  "text": "string"
8312
8324
  },
@@ -8329,7 +8341,7 @@
8329
8341
  "description": "BCP-47 locale tag for the formatter. Empty defaults to the document locale (`<html lang>`) then to the browser default."
8330
8342
  },
8331
8343
  {
8332
- "name": "updateInterval",
8344
+ "name": "update-interval",
8333
8345
  "type": {
8334
8346
  "text": "number"
8335
8347
  },
@@ -8469,7 +8481,7 @@
8469
8481
  "description": "Enable flex-wrap unconditionally. For viewport-responsive wrapping use [wrap-at] instead."
8470
8482
  },
8471
8483
  {
8472
- "name": "wrapAt",
8484
+ "name": "wrap-at",
8473
8485
  "type": {
8474
8486
  "text": "string"
8475
8487
  },
@@ -8686,7 +8698,7 @@
8686
8698
  "description": "Value of the currently selected segment."
8687
8699
  },
8688
8700
  {
8689
- "name": "allowEmpty",
8701
+ "name": "allow-empty",
8690
8702
  "type": {
8691
8703
  "text": "boolean"
8692
8704
  },
@@ -9223,7 +9235,7 @@
9223
9235
  "description": "Two-thumb range slider mode. When enabled, [lower-value] and [upper-value] are authoritative and [value] is ignored. The fill renders between the two thumbs (not from left to thumb). Form-data under [name] serializes as \"<lower>,<upper>\". Use for price filters, date ranges, audio range gates, etc."
9224
9236
  },
9225
9237
  {
9226
- "name": "lowerValue",
9238
+ "name": "lower-value",
9227
9239
  "type": {
9228
9240
  "text": "number"
9229
9241
  },
@@ -9231,7 +9243,7 @@
9231
9243
  "description": "Lower thumb value (dual mode only; clamped to ≤ [upper-value])."
9232
9244
  },
9233
9245
  {
9234
- "name": "upperValue",
9246
+ "name": "upper-value",
9235
9247
  "type": {
9236
9248
  "text": "number"
9237
9249
  },
@@ -9905,7 +9917,7 @@
9905
9917
  "description": "When set, computes the swatch color's OKLab L and switches the label / detail color between light + dark so it remains legible against the tile background. Active when `label-position=\"overlay\"` (where the label sits ON the tile). Uses a 1px canvas probe to handle any CSS color form (oklch / hex / hsl / named / var() references)."
9906
9918
  },
9907
9919
  {
9908
- "name": "labelPosition",
9920
+ "name": "label-position",
9909
9921
  "type": {
9910
9922
  "text": "string"
9911
9923
  },
@@ -9968,7 +9980,7 @@
9968
9980
  "description": "Enable auto-advance"
9969
9981
  },
9970
9982
  {
9971
- "name": "slidesPerView",
9983
+ "name": "slides-per-view",
9972
9984
  "type": {
9973
9985
  "text": "string"
9974
9986
  },
@@ -10006,7 +10018,7 @@
10006
10018
  "description": "Infinite loop"
10007
10019
  },
10008
10020
  {
10009
- "name": "noPauseOnHover",
10021
+ "name": "no-pause-on-hover",
10010
10022
  "type": {
10011
10023
  "text": "boolean"
10012
10024
  },
@@ -10237,7 +10249,7 @@
10237
10249
  "description": "Optional count badge value shown next to the title. When unset, falls back to the row count of the bound table."
10238
10250
  },
10239
10251
  {
10240
- "name": "noFilter",
10252
+ "name": "no-filter",
10241
10253
  "type": {
10242
10254
  "text": "boolean"
10243
10255
  },
@@ -10245,7 +10257,7 @@
10245
10257
  "description": "Hide the Filter popover button. Filter is shown by default; set to opt out."
10246
10258
  },
10247
10259
  {
10248
- "name": "noSort",
10260
+ "name": "no-sort",
10249
10261
  "type": {
10250
10262
  "text": "boolean"
10251
10263
  },
@@ -10253,7 +10265,7 @@
10253
10265
  "description": "Hide the Sort popover button. Sort is shown by default; set to opt out."
10254
10266
  },
10255
10267
  {
10256
- "name": "noColumns",
10268
+ "name": "no-columns",
10257
10269
  "type": {
10258
10270
  "text": "boolean"
10259
10271
  },
@@ -10261,7 +10273,7 @@
10261
10273
  "description": "Hide the Columns visibility popover button. Columns control is shown by default; set to opt out."
10262
10274
  },
10263
10275
  {
10264
- "name": "noSearch",
10276
+ "name": "no-search",
10265
10277
  "type": {
10266
10278
  "text": "boolean"
10267
10279
  },
@@ -10364,14 +10376,6 @@
10364
10376
  "default": "[]",
10365
10377
  "description": "JS property (set programmatically — `el.data = [...]`) — row records, an array of plain objects keyed to columns[].key. May also be supplied declaratively as a JSON-array `data=\"[…]\"` attribute, hydrated once at connect (gh#288) — the same pattern chart-ui's `data` attribute uses. Custom accessor on the element class, not a reflected attribute."
10366
10378
  },
10367
- {
10368
- "name": "density",
10369
- "type": {
10370
- "text": "string"
10371
- },
10372
- "default": "standard",
10373
- "description": "Controls cell padding and row height. 'compact' for dense data, 'standard' for default"
10374
- },
10375
10379
  {
10376
10380
  "name": "expandable",
10377
10381
  "type": {
@@ -10801,7 +10805,7 @@
10801
10805
  "description": "Inline character that commits the typed value as a chip. The sentinel `enter` disables in-line commit — only the Enter key (or programmatic `addToken`) commits. Default is `,`."
10802
10806
  },
10803
10807
  {
10804
- "name": "pasteSplit",
10808
+ "name": "paste-split",
10805
10809
  "type": {
10806
10810
  "text": "string"
10807
10811
  },
@@ -10825,7 +10829,7 @@
10825
10829
  "description": "Minimum required tokens for form validity."
10826
10830
  },
10827
10831
  {
10828
- "name": "minLength",
10832
+ "name": "min-length",
10829
10833
  "type": {
10830
10834
  "text": "number"
10831
10835
  },
@@ -10833,7 +10837,7 @@
10833
10837
  "description": "Minimum per-token character count after `transform` is applied."
10834
10838
  },
10835
10839
  {
10836
- "name": "maxLength",
10840
+ "name": "max-length",
10837
10841
  "type": {
10838
10842
  "text": "number"
10839
10843
  },
@@ -11283,7 +11287,7 @@
11283
11287
  "description": "Whether the seconds segment is exposed. `minute` (default) hides seconds; `second` adds the seconds segment + separator."
11284
11288
  },
11285
11289
  {
11286
- "name": "hourcycle",
11290
+ "name": "hour-cycle",
11287
11291
  "type": {
11288
11292
  "text": "string"
11289
11293
  },
@@ -11740,6 +11744,14 @@
11740
11744
  },
11741
11745
  "default": "false",
11742
11746
  "description": "Disabled state — blocks pointer + keyboard activation."
11747
+ },
11748
+ {
11749
+ "name": "selected",
11750
+ "type": {
11751
+ "text": "boolean"
11752
+ },
11753
+ "default": "false",
11754
+ "description": "Whether this option is currently selected. Managed by the parent <toggle-group-ui> container (ADR-0056) — don't set directly; the group's `value` is the single source of truth. Converges onto <segment-ui>'s declared reflected-prop mechanism."
11743
11755
  }
11744
11756
  ]
11745
11757
  }
@@ -11802,7 +11814,7 @@
11802
11814
  "description": "Persist the user's choice to localStorage under `${storage-prefix}scheme`."
11803
11815
  },
11804
11816
  {
11805
- "name": "storagePrefix",
11817
+ "name": "storage-prefix",
11806
11818
  "type": {
11807
11819
  "text": "string"
11808
11820
  },
@@ -11810,7 +11822,7 @@
11810
11822
  "description": "LocalStorage key prefix; default matches <theme-panel> for cross-element interop."
11811
11823
  },
11812
11824
  {
11813
- "name": "iconLight",
11825
+ "name": "icon-light",
11814
11826
  "type": {
11815
11827
  "text": "string"
11816
11828
  },
@@ -11818,7 +11830,7 @@
11818
11830
  "description": "Phosphor icon shown when active-scheme is \"light\" (clicking switches to dark)."
11819
11831
  },
11820
11832
  {
11821
- "name": "iconDark",
11833
+ "name": "icon-dark",
11822
11834
  "type": {
11823
11835
  "text": "string"
11824
11836
  },
@@ -11826,7 +11838,7 @@
11826
11838
  "description": "Phosphor icon shown when active-scheme is \"dark\" (clicking switches to light)."
11827
11839
  },
11828
11840
  {
11829
- "name": "labelLight",
11841
+ "name": "label-light",
11830
11842
  "type": {
11831
11843
  "text": "string"
11832
11844
  },
@@ -11834,7 +11846,7 @@
11834
11846
  "description": "aria-label / title applied to the internal button when active-scheme is \"light\"."
11835
11847
  },
11836
11848
  {
11837
- "name": "labelDark",
11849
+ "name": "label-dark",
11838
11850
  "type": {
11839
11851
  "text": "string"
11840
11852
  },
@@ -11873,7 +11885,7 @@
11873
11885
  "description": "Disables the internal button."
11874
11886
  },
11875
11887
  {
11876
- "name": "activeScheme",
11888
+ "name": "active-scheme",
11877
11889
  "type": {
11878
11890
  "text": "string"
11879
11891
  },