@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.3

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 (169) hide show
  1. package/README.md +4 -0
  2. package/docs/AGENTS.snippet.md +10 -0
  3. package/docs/app-shell.json +1 -1
  4. package/docs/button-group.json +1 -0
  5. package/docs/button-group.md +1 -1
  6. package/docs/button.json +45 -11
  7. package/docs/button.md +10 -6
  8. package/docs/chart.json +7 -0
  9. package/docs/chart.md +1 -0
  10. package/docs/checkbox.json +7 -0
  11. package/docs/checkbox.md +1 -0
  12. package/docs/currency-field.json +32 -1
  13. package/docs/currency-field.md +4 -1
  14. package/docs/dialog.examples.md +20 -0
  15. package/docs/dialog.json +14 -2
  16. package/docs/dialog.md +1 -1
  17. package/docs/event-calendar.json +7 -0
  18. package/docs/event-calendar.md +1 -0
  19. package/docs/guidelines/README.md +27 -0
  20. package/docs/guidelines/async-feedback.md +108 -0
  21. package/docs/guidelines/browsing.md +74 -0
  22. package/docs/guidelines/builders.md +97 -0
  23. package/docs/guidelines/composition.md +129 -0
  24. package/docs/guidelines/conversations.md +59 -0
  25. package/docs/guidelines/errors-and-conflicts.md +71 -0
  26. package/docs/guidelines/forms.md +192 -0
  27. package/docs/guidelines/index.md +121 -0
  28. package/docs/guidelines/layout-alignment.md +95 -0
  29. package/docs/guidelines/ledgers.md +45 -0
  30. package/docs/guidelines/list-pages.md +165 -0
  31. package/docs/guidelines/overviews.md +66 -0
  32. package/docs/guidelines/own-elements.md +115 -0
  33. package/docs/guidelines/reading-permissions.md +55 -0
  34. package/docs/guidelines/record-pages.md +178 -0
  35. package/docs/guidelines/reports.md +123 -0
  36. package/docs/guidelines/shell-composition.md +94 -0
  37. package/docs/guidelines/workspaces.md +46 -0
  38. package/docs/index.md +12 -0
  39. package/docs/list.json +19 -1
  40. package/docs/list.md +3 -1
  41. package/docs/popover.json +1 -1
  42. package/docs/progress-indicator.json +1 -2
  43. package/docs/progress-indicator.md +2 -2
  44. package/docs/segmented-control.json +29 -1
  45. package/docs/segmented-control.md +17 -1
  46. package/docs/skills/build-own-element/SKILL.md +90 -0
  47. package/docs/skills/compose-screen/SKILL.md +76 -0
  48. package/docs/skills/index.md +9 -0
  49. package/docs/skills/review-screen/SKILL.md +70 -0
  50. package/docs/skills/theme-app/SKILL.md +79 -0
  51. package/docs/skills/waiting-states/SKILL.md +139 -0
  52. package/docs/split-button.json +1 -0
  53. package/docs/split-button.md +1 -1
  54. package/docs/stat-card.json +2 -0
  55. package/docs/stat-card.md +1 -1
  56. package/docs/table.examples.md +1 -1
  57. package/docs/table.json +70 -1
  58. package/docs/table.md +10 -1
  59. package/docs/tabs.json +1 -4
  60. package/docs/tabs.md +1 -1
  61. package/docs/toggle-group.json +14 -3
  62. package/docs/toggle-group.md +3 -3
  63. package/docs/toggle.json +12 -3
  64. package/docs/toggle.md +3 -3
  65. package/docs/tokens.md +448 -0
  66. package/docs/tour.json +1 -1
  67. package/fesm2022/slotted-angular-app-shell.mjs +48 -16
  68. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  69. package/fesm2022/slotted-angular-button-group.mjs +4 -4
  70. package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
  71. package/fesm2022/slotted-angular-button.mjs +51 -19
  72. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  73. package/fesm2022/slotted-angular-cascader.mjs +1 -1
  74. package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
  75. package/fesm2022/slotted-angular-chart.mjs +41 -20
  76. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  77. package/fesm2022/slotted-angular-checkbox.mjs +11 -2
  78. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  79. package/fesm2022/slotted-angular-column-manager.mjs +1 -1
  80. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  81. package/fesm2022/slotted-angular-combobox.mjs +12 -6
  82. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  83. package/fesm2022/slotted-angular-currency-field.mjs +59 -8
  84. package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
  85. package/fesm2022/slotted-angular-dashboard-grid.mjs +18 -22
  86. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  87. package/fesm2022/slotted-angular-data-grid.mjs +7 -3
  88. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  89. package/fesm2022/slotted-angular-data-list.mjs +2 -2
  90. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  91. package/fesm2022/slotted-angular-dialog.mjs +4 -4
  92. package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
  93. package/fesm2022/slotted-angular-drawer.mjs +5 -1
  94. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  95. package/fesm2022/slotted-angular-event-calendar.mjs +18 -8
  96. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  97. package/fesm2022/slotted-angular-filter-bar.mjs +8 -8
  98. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  99. package/fesm2022/slotted-angular-import-export-center.mjs +1 -1
  100. package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
  101. package/fesm2022/slotted-angular-list.mjs +28 -17
  102. package/fesm2022/slotted-angular-list.mjs.map +1 -1
  103. package/fesm2022/slotted-angular-loading-overlay.mjs +2 -2
  104. package/fesm2022/slotted-angular-markdown.mjs +1 -1
  105. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  106. package/fesm2022/slotted-angular-multi-select.mjs +32 -27
  107. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  108. package/fesm2022/slotted-angular-notification-center.mjs +1 -1
  109. package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
  110. package/fesm2022/slotted-angular-number-field.mjs +2 -2
  111. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  112. package/fesm2022/slotted-angular-progress-indicator.mjs +6 -6
  113. package/fesm2022/slotted-angular-saved-views.mjs +1 -1
  114. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  115. package/fesm2022/slotted-angular-segmented-control.mjs +25 -5
  116. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  117. package/fesm2022/slotted-angular-select.mjs +1 -25
  118. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  119. package/fesm2022/slotted-angular-split-button.mjs +4 -4
  120. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  121. package/fesm2022/slotted-angular-stat-card.mjs +2 -2
  122. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  123. package/fesm2022/slotted-angular-table.mjs +97 -10
  124. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  125. package/fesm2022/slotted-angular-tabs.mjs +2 -2
  126. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  127. package/fesm2022/slotted-angular-toggle-group.mjs +17 -4
  128. package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
  129. package/fesm2022/slotted-angular-toggle.mjs +2 -2
  130. package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
  131. package/fesm2022/slotted-angular-tour.mjs +1 -1
  132. package/fesm2022/slotted-angular-tour.mjs.map +1 -1
  133. package/fesm2022/slotted-angular-transfer.mjs +1 -1
  134. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  135. package/fesm2022/slotted-angular-upload.mjs +2 -2
  136. package/fesm2022/slotted-angular-wizard.mjs +1 -1
  137. package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
  138. package/package.json +3 -3
  139. package/types/slotted-angular-app-shell.d.ts +6 -0
  140. package/types/slotted-angular-app-shell.d.ts.map +1 -1
  141. package/types/slotted-angular-button-group.d.ts +1 -1
  142. package/types/slotted-angular-button.d.ts +33 -13
  143. package/types/slotted-angular-button.d.ts.map +1 -1
  144. package/types/slotted-angular-chart.d.ts +9 -0
  145. package/types/slotted-angular-chart.d.ts.map +1 -1
  146. package/types/slotted-angular-checkbox.d.ts +7 -1
  147. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  148. package/types/slotted-angular-combobox.d.ts.map +1 -1
  149. package/types/slotted-angular-currency-field.d.ts +25 -3
  150. package/types/slotted-angular-currency-field.d.ts.map +1 -1
  151. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  152. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  153. package/types/slotted-angular-drawer.d.ts.map +1 -1
  154. package/types/slotted-angular-event-calendar.d.ts +9 -2
  155. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  156. package/types/slotted-angular-list.d.ts +42 -27
  157. package/types/slotted-angular-list.d.ts.map +1 -1
  158. package/types/slotted-angular-multi-select.d.ts +10 -0
  159. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  160. package/types/slotted-angular-segmented-control.d.ts +15 -2
  161. package/types/slotted-angular-segmented-control.d.ts.map +1 -1
  162. package/types/slotted-angular-select.d.ts.map +1 -1
  163. package/types/slotted-angular-split-button.d.ts +2 -2
  164. package/types/slotted-angular-table.d.ts +43 -3
  165. package/types/slotted-angular-table.d.ts.map +1 -1
  166. package/types/slotted-angular-toggle-group.d.ts +8 -2
  167. package/types/slotted-angular-toggle-group.d.ts.map +1 -1
  168. package/types/slotted-angular-toggle.d.ts +1 -1
  169. package/types/slotted-angular-toggle.d.ts.map +1 -1
package/docs/table.json CHANGED
@@ -107,6 +107,7 @@
107
107
  "active",
108
108
  "focus-visible",
109
109
  "selected",
110
+ "current",
110
111
  "expanded",
111
112
  "disabled",
112
113
  "loading"
@@ -139,6 +140,11 @@
139
140
  "selection",
140
141
  "expander",
141
142
  "detail",
143
+ "group-row",
144
+ "group-header",
145
+ "group-content",
146
+ "group-start",
147
+ "group-end",
142
148
  "empty",
143
149
  "loader",
144
150
  "footer"
@@ -321,6 +327,36 @@
321
327
  "required": false,
322
328
  "purpose": "The open row detail, one cell spanning every column. Control flow in the template keeps a closed one out of the DOM, which a host element cannot do for itself."
323
329
  },
330
+ {
331
+ "part": "group-row",
332
+ "element": "tr[slTableGroupRow]",
333
+ "required": false,
334
+ "purpose": "The band that opens a group of rows: a day of a ledger with its net at the end. One header cell spans every column, and sticky holds the band under the header while its rows scroll past."
335
+ },
336
+ {
337
+ "part": "group-header",
338
+ "element": "th",
339
+ "required": false,
340
+ "purpose": "The one cell of the band, scope=\"rowgroup\", spanning the columns of the table. It names the rows of its own tbody, so a grouped listing writes one body per group."
341
+ },
342
+ {
343
+ "part": "group-content",
344
+ "element": "div",
345
+ "required": false,
346
+ "purpose": "The line inside the band that sets the name at the start and the end content at the end."
347
+ },
348
+ {
349
+ "part": "group-start",
350
+ "element": "span",
351
+ "required": false,
352
+ "purpose": "The name of the group."
353
+ },
354
+ {
355
+ "part": "group-end",
356
+ "element": "span",
357
+ "required": false,
358
+ "purpose": "The end of the band, the element marked slTableGroupRowEnd: the total or net of the group, in tabular figures."
359
+ },
324
360
  {
325
361
  "part": "empty",
326
362
  "element": "td[slTableEmpty]",
@@ -566,6 +602,27 @@
566
602
  "appliesTo": "slTableRow",
567
603
  "description": "The record position in the whole set, written as aria-rowindex"
568
604
  },
605
+ {
606
+ "name": "current",
607
+ "type": "boolean",
608
+ "defaultValue": "false",
609
+ "appliesTo": "slTableRow",
610
+ "description": "The record open elsewhere on the page, a detail pane beside the table, written as aria-current"
611
+ },
612
+ {
613
+ "name": "interactive",
614
+ "type": "boolean",
615
+ "defaultValue": "false",
616
+ "appliesTo": "slTableRow",
617
+ "description": "Paints the row as a thing the pointer presses; stated beside (action)"
618
+ },
619
+ {
620
+ "name": "(action)",
621
+ "type": "MouseEvent",
622
+ "defaultValue": "—",
623
+ "appliesTo": "slTableRow",
624
+ "description": "A click anywhere in the row that lands on no control of its own; the first link or button in the row is the keyboard way in"
625
+ },
569
626
  {
570
627
  "name": "column",
571
628
  "type": "string",
@@ -608,6 +665,13 @@
608
665
  "appliesTo": "the three cell parts and both selection cells",
609
666
  "description": "Which edge the column is pinned to while the table scrolls past it"
610
667
  },
668
+ {
669
+ "name": "sticky",
670
+ "type": "boolean",
671
+ "defaultValue": "false",
672
+ "appliesTo": "slTableGroupRow",
673
+ "description": "Holds the band under the header while its rows scroll past; the end of the band is the element marked slTableGroupRowEnd"
674
+ },
611
675
  {
612
676
  "name": "stickyOffset",
613
677
  "type": "string",
@@ -748,12 +812,16 @@
748
812
  "--slotted-table-font-family",
749
813
  "--slotted-table-font-size",
750
814
  "--slotted-table-gap",
815
+ "--slotted-table-group-color",
816
+ "--slotted-table-group-sticky-offset",
817
+ "--slotted-table-group-surface",
751
818
  "--slotted-table-header-surface",
752
819
  "--slotted-table-header-surface-hover",
753
820
  "--slotted-table-icon-size",
754
821
  "--slotted-table-radius",
755
822
  "--slotted-table-row-color-selected",
756
823
  "--slotted-table-row-min-block-size",
824
+ "--slotted-table-row-surface-current",
757
825
  "--slotted-table-row-surface-hover",
758
826
  "--slotted-table-row-surface-selected",
759
827
  "--slotted-table-row-surface-selected-hover",
@@ -771,6 +839,7 @@
771
839
  "--slotted-tone-accent-subtle-hover",
772
840
  "--slotted-tone-accent-surface",
773
841
  "--slotted-tone-accent-text",
842
+ "--slotted-tone-secondary-subtle-active",
774
843
  "--slotted-tone-secondary-subtle-hover",
775
844
  "--slotted-z-index-sticky"
776
845
  ],
@@ -898,7 +967,7 @@
898
967
  {
899
968
  "id": "sticky",
900
969
  "title": "A header, a summary and a column that stay",
901
- "note": "stickyHeader holds the head against the top of the scroller and stickyFooter holds the summary against the bottom of it, so the total is on screen at the first row and the last. stickyTo says which box that is: this table own scroller, or whatever scrolls outside it. A pinned column darkens its edge exactly while something is hidden under it, and all of it mirrors in a right-to-left document.",
970
+ "note": "stickyHeader holds the head against the top of the scroller and stickyFooter holds the summary against the bottom of it, so the total is on screen at the first row and the last. stickyTo says which box that is: this table own scroller, or whatever scrolls outside it. Under stickyTo=\"page\" the head stops at --slotted-table-sticky-offset, which a page binds to its own chrome; a table inside a scrolling box of its own sets that token to 0 on the box. A pinned column darkens its edge exactly while something is hidden under it, and all of it mirrors in a right-to-left document.",
902
971
  "language": "ts",
903
972
  "source": "import { Component } from '@angular/core';\nimport {\n SlTable,\n SlTableBody,\n SlTableCell,\n SlTableColumnHeader,\n SlTableContent,\n SlTableHead,\n SlTableRow,\n SlTableRowHeader,\n SlTableSummary,\n} from '@slotted/angular/table';\n\nconst USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });\n\nconst CUSTOMERS = [\n 'Alfreds Futterkiste',\n \"Bon app'\",\n 'Ernst Handel',\n 'Folk och fä HB',\n 'Hanari Carnes',\n 'Island Trading',\n 'QUICK-Stop',\n 'Wartian Herkku',\n];\nconst WAREHOUSES = ['Reno', 'Columbus', 'Savannah'];\n\nconst ORDERS = Array.from({ length: 30 }, (_, index) => ({\n id: `SO-${10400 + index}`,\n customer: CUSTOMERS[index % CUSTOMERS.length],\n warehouse: WAREHOUSES[index % WAREHOUSES.length],\n total: 180 + ((index * 397) % 2400),\n}));\n\n@Component({\n selector: 'app-table-sticky',\n imports: [\n SlTable,\n SlTableBody,\n SlTableCell,\n SlTableColumnHeader,\n SlTableContent,\n SlTableHead,\n SlTableRow,\n SlTableRowHeader,\n SlTableSummary,\n ],\n template: `\n <div slTable [columns]=\"4\" stickyFooter stickyHeader>\n <div slTableContent aria-label=\"September orders\" style=\"max-block-size: 20rem\">\n <thead slTableHead>\n <tr slTableRow>\n <th slTableColumnHeader>Order</th>\n <th slTableColumnHeader>Customer</th>\n <th slTableColumnHeader>Warehouse</th>\n <th slTableColumnHeader numeric>Total</th>\n </tr>\n </thead>\n <tbody slTableBody>\n @for (order of orders; track order.id) {\n <tr slTableRow [value]=\"order.id\">\n <th slTableRowHeader text=\"nowrap\">{{ order.id }}</th>\n <td slTableCell>{{ order.customer }}</td>\n <td slTableCell>{{ order.warehouse }}</td>\n <td slTableCell numeric>{{ usd.format(order.total) }}</td>\n </tr>\n }\n </tbody>\n <tfoot slTableSummary>\n <tr slTableRow>\n <td slTableCell [attr.colspan]=\"3\">{{ orders.length }} orders</td>\n <td slTableCell numeric>{{ usd.format(total) }}</td>\n </tr>\n </tfoot>\n </div>\n </div>\n `,\n})\nexport class TableSticky {\n readonly orders = ORDERS;\n readonly total = ORDERS.reduce((sum, order) => sum + order.total, 0);\n readonly usd = USD;\n}\n",
904
973
  "verdict": "example"
package/docs/table.md CHANGED
@@ -186,6 +186,11 @@ export class TableBasic {
186
186
  | `selection` | td[slTableSelect] and th[slTableSelectAll] | no |
187
187
  | `expander` | button[slTableExpander] | no |
188
188
  | `detail` | tr[slTableDetail] | no |
189
+ | `group-row` | tr[slTableGroupRow] | no |
190
+ | `group-header` | th | no |
191
+ | `group-content` | div | no |
192
+ | `group-start` | span | no |
193
+ | `group-end` | span | no |
189
194
  | `empty` | td[slTableEmpty] | no |
190
195
  | `loader` | tbody[slTableLoader] | no |
191
196
 
@@ -226,12 +231,16 @@ export class TableBasic {
226
231
  | `value` | `string` | — | slTableRow | The record key the selection and the expansion are held by |
227
232
  | `disabled` | `boolean` | false | slTableRow | A record the reader may not choose; it leaves the set the header covers |
228
233
  | `rowIndex` | `number` | — | slTableRow | The record position in the whole set, written as aria-rowindex |
234
+ | `current` | `boolean` | false | slTableRow | The record open elsewhere on the page, a detail pane beside the table, written as aria-current |
235
+ | `interactive` | `boolean` | false | slTableRow | Paints the row as a thing the pointer presses; stated beside (action) |
236
+ | `(action)` | `MouseEvent` | — | slTableRow | A click anywhere in the row that lands on no control of its own; the first link or button in the row is the keyboard way in |
229
237
  | `column` | `string` | — | slTableColumnHeader, slTableSort | The column key the sort descriptor names |
230
238
  | `align` | `'start' \| 'center' \| 'end'` | start | the three cell parts | Which edge the value stands on, resolved logically |
231
239
  | `numeric` | `boolean` | false | the three cell parts | Tabular figures, and the end edge unless align says otherwise |
232
240
  | `blockAlign` | `'start' \| 'center' \| 'end'` | center | the three cell parts and both selection cells | Where this cell content sits in its row, overriding the table own cellAlign |
233
241
  | `text` | `'wrap' \| 'truncate' \| 'nowrap'` | wrap | the three cell parts | What a value longer than its column does |
234
242
  | `sticky` | `'start' \| 'end'` | start | the three cell parts and both selection cells | Which edge the column is pinned to while the table scrolls past it |
243
+ | `sticky` | `boolean` | false | slTableGroupRow | Holds the band under the header while its rows scroll past; the end of the band is the element marked slTableGroupRowEnd |
235
244
  | `stickyOffset` | `string` | 0 | the three cell parts and both selection cells | Where the pinned column stops, as a CSS length. Two columns pinned to the same edge need the second to state how wide the first is — beside a selection column that is --slotted-table-selection-size, which is 3rem. |
236
245
  | `colSpan` | `number` | — | slTableDetail, slTableEmpty | How many columns the part spans, defaulting to the table own count |
237
246
  | `exportAs` | `slTable, slTableRow, slTableContent` | — | every part | Reaches the instance from the template: row.expanded(), table.rows(), content.scrollToRow() |
@@ -283,7 +292,7 @@ export class TableBasic {
283
292
 
284
293
  ## Tokens
285
294
 
286
- `--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-md`, `--slotted-control-gap-md`, `--slotted-control-height-md`, `--slotted-control-icon-size-md`, `--slotted-control-padding-inline-md`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-ground`, `--slotted-line-height-md`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-shadow-xs`, `--slotted-space-2`, `--slotted-space-5`, `--slotted-space-9`, `--slotted-surface`, `--slotted-table-border-color`, `--slotted-table-border-color-strong`, `--slotted-table-border-width`, `--slotted-table-cell-padding-block`, `--slotted-table-cell-padding-inline`, `--slotted-table-color`, `--slotted-table-color-muted`, `--slotted-table-column-actions-size`, `--slotted-table-control-radius`, `--slotted-table-font-family`, `--slotted-table-font-size`, `--slotted-table-gap`, `--slotted-table-header-surface`, `--slotted-table-header-surface-hover`, `--slotted-table-icon-size`, `--slotted-table-radius`, `--slotted-table-row-color-selected`, `--slotted-table-row-min-block-size`, `--slotted-table-row-surface-hover`, `--slotted-table-row-surface-selected`, `--slotted-table-row-surface-selected-hover`, `--slotted-table-row-surface-stripe`, `--slotted-table-selection-size`, `--slotted-table-shadow`, `--slotted-table-sticky-inset`, `--slotted-table-sticky-offset`, `--slotted-table-sticky-offset-end`, `--slotted-table-surface`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-sticky`
295
+ `--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-md`, `--slotted-control-gap-md`, `--slotted-control-height-md`, `--slotted-control-icon-size-md`, `--slotted-control-padding-inline-md`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-ground`, `--slotted-line-height-md`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-shadow-xs`, `--slotted-space-2`, `--slotted-space-5`, `--slotted-space-9`, `--slotted-surface`, `--slotted-table-border-color`, `--slotted-table-border-color-strong`, `--slotted-table-border-width`, `--slotted-table-cell-padding-block`, `--slotted-table-cell-padding-inline`, `--slotted-table-color`, `--slotted-table-color-muted`, `--slotted-table-column-actions-size`, `--slotted-table-control-radius`, `--slotted-table-font-family`, `--slotted-table-font-size`, `--slotted-table-gap`, `--slotted-table-group-color`, `--slotted-table-group-sticky-offset`, `--slotted-table-group-surface`, `--slotted-table-header-surface`, `--slotted-table-header-surface-hover`, `--slotted-table-icon-size`, `--slotted-table-radius`, `--slotted-table-row-color-selected`, `--slotted-table-row-min-block-size`, `--slotted-table-row-surface-current`, `--slotted-table-row-surface-hover`, `--slotted-table-row-surface-selected`, `--slotted-table-row-surface-selected-hover`, `--slotted-table-row-surface-stripe`, `--slotted-table-selection-size`, `--slotted-table-shadow`, `--slotted-table-sticky-inset`, `--slotted-table-sticky-offset`, `--slotted-table-sticky-offset-end`, `--slotted-table-surface`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-sticky`
287
296
 
288
297
  ## Examples
289
298
 
package/docs/tabs.json CHANGED
@@ -412,6 +412,7 @@
412
412
  "--slotted-focus-ring-color",
413
413
  "--slotted-focus-ring-offset",
414
414
  "--slotted-focus-ring-width",
415
+ "--slotted-radius-full",
415
416
  "--slotted-radius-md",
416
417
  "--slotted-radius-sm",
417
418
  "--slotted-radius-xs",
@@ -446,13 +447,9 @@
446
447
  "--slotted-target-comfortable",
447
448
  "--slotted-target-min",
448
449
  "--slotted-text",
449
- "--slotted-text-inverse",
450
450
  "--slotted-text-muted",
451
451
  "--slotted-tone-accent-solid",
452
452
  "--slotted-tone-accent-text",
453
- "--slotted-tone-danger-border",
454
- "--slotted-tone-danger-surface",
455
- "--slotted-tone-danger-text",
456
453
  "--slotted-tone-secondary-subtle-active",
457
454
  "--slotted-tone-secondary-subtle-hover"
458
455
  ],
package/docs/tabs.md CHANGED
@@ -204,7 +204,7 @@ export class TabsBasic {
204
204
 
205
205
  ## Tokens
206
206
 
207
- `--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-radius-xs`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-4`, `--slotted-space-6`, `--slotted-surface`, `--slotted-surface-sunken`, `--slotted-tabs-actions-gap`, `--slotted-tabs-active-background`, `--slotted-tabs-active-marker-color`, `--slotted-tabs-color`, `--slotted-tabs-contained-background`, `--slotted-tabs-contained-selected-background`, `--slotted-tabs-dismiss-active-background`, `--slotted-tabs-dismiss-active-color`, `--slotted-tabs-dismiss-color`, `--slotted-tabs-dismiss-hover-background`, `--slotted-tabs-dismiss-hover-color`, `--slotted-tabs-fade-size`, `--slotted-tabs-gap`, `--slotted-tabs-hover-background`, `--slotted-tabs-hover-color`, `--slotted-tabs-hover-marker-color`, `--slotted-tabs-list-gap`, `--slotted-tabs-marker-color`, `--slotted-tabs-scroll-color`, `--slotted-tabs-selected-color`, `--slotted-tabs-track-color`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-inverse`, `--slotted-text-muted`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-danger-surface`, `--slotted-tone-danger-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
207
+ `--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-full`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-radius-xs`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-4`, `--slotted-space-6`, `--slotted-surface`, `--slotted-surface-sunken`, `--slotted-tabs-actions-gap`, `--slotted-tabs-active-background`, `--slotted-tabs-active-marker-color`, `--slotted-tabs-color`, `--slotted-tabs-contained-background`, `--slotted-tabs-contained-selected-background`, `--slotted-tabs-dismiss-active-background`, `--slotted-tabs-dismiss-active-color`, `--slotted-tabs-dismiss-color`, `--slotted-tabs-dismiss-hover-background`, `--slotted-tabs-dismiss-hover-color`, `--slotted-tabs-fade-size`, `--slotted-tabs-gap`, `--slotted-tabs-hover-background`, `--slotted-tabs-hover-color`, `--slotted-tabs-hover-marker-color`, `--slotted-tabs-list-gap`, `--slotted-tabs-marker-color`, `--slotted-tabs-scroll-color`, `--slotted-tabs-selected-color`, `--slotted-tabs-track-color`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
208
208
 
209
209
  ## Examples
210
210
 
@@ -14,7 +14,8 @@
14
14
  ],
15
15
  "variant": [
16
16
  "outline",
17
- "ghost"
17
+ "ghost",
18
+ "chips"
18
19
  ],
19
20
  "orientation": [
20
21
  "horizontal",
@@ -133,10 +134,10 @@
133
134
  },
134
135
  {
135
136
  "name": "variant",
136
- "type": "'outline' | 'ghost'",
137
+ "type": "'outline' | 'ghost' | 'chips'",
137
138
  "defaultValue": "outline",
138
139
  "appliesTo": "slToggleGroup",
139
- "description": "Whether the bar draws its own edge. There is no tone axis: “on” is one colour across the system"
140
+ "description": "Whether the bar draws its own edge, or draws its items as chips: separate rounded items that wrap, never joined, the pressed one in the neutral tone ink. There is no tone axis: “on” is one colour across the system"
140
141
  },
141
142
  {
142
143
  "name": "orientation",
@@ -287,9 +288,16 @@
287
288
  "--slotted-focus-ring-color",
288
289
  "--slotted-focus-ring-offset",
289
290
  "--slotted-focus-ring-width",
291
+ "--slotted-font-weight-medium",
292
+ "--slotted-radius-full",
293
+ "--slotted-space-3",
290
294
  "--slotted-text",
291
295
  "--slotted-toggle-group-active-background",
292
296
  "--slotted-toggle-group-border-color",
297
+ "--slotted-toggle-group-chips-gap",
298
+ "--slotted-toggle-group-chips-pressed-background",
299
+ "--slotted-toggle-group-chips-pressed-color",
300
+ "--slotted-toggle-group-chips-radius",
293
301
  "--slotted-toggle-group-color",
294
302
  "--slotted-toggle-group-disabled-border-color",
295
303
  "--slotted-toggle-group-disabled-color",
@@ -305,6 +313,9 @@
305
313
  "--slotted-tone-accent-subtle-active",
306
314
  "--slotted-tone-accent-subtle-hover",
307
315
  "--slotted-tone-accent-text",
316
+ "--slotted-tone-neutral-on-solid",
317
+ "--slotted-tone-neutral-solid",
318
+ "--slotted-tone-neutral-solid-hover",
308
319
  "--slotted-tone-secondary-subtle-active",
309
320
  "--slotted-tone-secondary-subtle-hover"
310
321
  ],
@@ -46,7 +46,7 @@ Excerpt — not a complete module
46
46
  | `multiple` | `boolean` | false | slToggleGroup | Whether more than one item may be on at a time. The value stays an array either way, so one signal holds it in every mode |
47
47
  | `deselectable` | `boolean` | true | slToggleGroup | Whether the last item on may be turned off. Ignored while multiple is true, where a set may always empty |
48
48
  | `size` | `'sm' \| 'md' \| 'lg'` | md | slToggleGroup | The control step the bar and every item sit at. It reads the control scale, so the bar is as tall as the field beside it |
49
- | `variant` | `'outline' \| 'ghost'` | outline | slToggleGroup | Whether the bar draws its own edge. There is no tone axis: “on” is one colour across the system |
49
+ | `variant` | `'outline' \| 'ghost' \| 'chips'` | outline | slToggleGroup | Whether the bar draws its own edge, or draws its items as chips: separate rounded items that wrap, never joined, the pressed one in the neutral tone ink. There is no tone axis: “on” is one colour across the system |
50
50
  | `orientation` | `'horizontal' \| 'vertical'` | horizontal | slToggleGroup | How the items flow, and which pair of arrows moves focus. A vertical group writes aria-orientation |
51
51
  | `attached` | `boolean` | true | slToggleGroup | Whether the items are joined into one bar or spaced apart. A joined bar overlaps its items by one border so a shared column holds one line |
52
52
  | `fullWidth` | `boolean` | false | slToggleGroup | Whether the items share the whole line. Left alone the bar is as wide as its labels |
@@ -73,7 +73,7 @@ Excerpt — not a complete module
73
73
  | Axis | Values | Default |
74
74
  | --- | --- | --- |
75
75
  | `size` | `sm`, `md`, `lg` | `md` |
76
- | `variant` | `outline`, `ghost` | `outline` |
76
+ | `variant` | `outline`, `ghost`, `chips` | `outline` |
77
77
  | `orientation` | `horizontal`, `vertical` | `horizontal` |
78
78
 
79
79
  ## Rules
@@ -87,7 +87,7 @@ Excerpt — not a complete module
87
87
 
88
88
  ## Tokens
89
89
 
90
- `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-instant`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-text`, `--slotted-toggle-group-active-background`, `--slotted-toggle-group-border-color`, `--slotted-toggle-group-color`, `--slotted-toggle-group-disabled-border-color`, `--slotted-toggle-group-disabled-color`, `--slotted-toggle-group-disabled-pressed-background`, `--slotted-toggle-group-hover-background`, `--slotted-toggle-group-pressed-background`, `--slotted-toggle-group-pressed-border-color`, `--slotted-toggle-group-pressed-color`, `--slotted-toggle-group-pressed-hover-background`, `--slotted-toggle-group-radius`, `--slotted-toggle-group-shadow`, `--slotted-tone-accent-border`, `--slotted-tone-accent-subtle-active`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
90
+ `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-instant`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-weight-medium`, `--slotted-radius-full`, `--slotted-space-3`, `--slotted-text`, `--slotted-toggle-group-active-background`, `--slotted-toggle-group-border-color`, `--slotted-toggle-group-chips-gap`, `--slotted-toggle-group-chips-pressed-background`, `--slotted-toggle-group-chips-pressed-color`, `--slotted-toggle-group-chips-radius`, `--slotted-toggle-group-color`, `--slotted-toggle-group-disabled-border-color`, `--slotted-toggle-group-disabled-color`, `--slotted-toggle-group-disabled-pressed-background`, `--slotted-toggle-group-hover-background`, `--slotted-toggle-group-pressed-background`, `--slotted-toggle-group-pressed-border-color`, `--slotted-toggle-group-pressed-color`, `--slotted-toggle-group-pressed-hover-background`, `--slotted-toggle-group-radius`, `--slotted-toggle-group-shadow`, `--slotted-tone-accent-border`, `--slotted-tone-accent-subtle-active`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-text`, `--slotted-tone-neutral-on-solid`, `--slotted-tone-neutral-solid`, `--slotted-tone-neutral-solid-hover`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
91
91
 
92
92
  ## Examples
93
93
 
package/docs/toggle.json CHANGED
@@ -14,7 +14,8 @@
14
14
  ],
15
15
  "variant": [
16
16
  "outline",
17
- "ghost"
17
+ "ghost",
18
+ "chips"
18
19
  ]
19
20
  },
20
21
  "members": {
@@ -101,10 +102,10 @@
101
102
  },
102
103
  {
103
104
  "name": "variant",
104
- "type": "'outline' | 'ghost'",
105
+ "type": "'outline' | 'ghost' | 'chips'",
105
106
  "defaultValue": "outline",
106
107
  "appliesTo": "slToggle",
107
- "description": "Whether the control draws its own edge before it is on. There is no tone axis: a mode is one colour when it is on, and an action that persists in one of five tones is button’s ToggleButton"
108
+ "description": "Whether the control draws its own edge before it is on, or is a chip pressed in the neutral tone ink. There is no tone axis: a mode is one colour when it is on, and an action that persists in one of five tones is button’s ToggleButton"
108
109
  },
109
110
  {
110
111
  "name": "disabled",
@@ -212,9 +213,14 @@
212
213
  "--slotted-focus-ring-color",
213
214
  "--slotted-focus-ring-offset",
214
215
  "--slotted-focus-ring-width",
216
+ "--slotted-font-weight-medium",
217
+ "--slotted-radius-full",
215
218
  "--slotted-text",
216
219
  "--slotted-toggle-active-background",
217
220
  "--slotted-toggle-border-color",
221
+ "--slotted-toggle-chips-pressed-background",
222
+ "--slotted-toggle-chips-pressed-color",
223
+ "--slotted-toggle-chips-radius",
218
224
  "--slotted-toggle-color",
219
225
  "--slotted-toggle-disabled-border-color",
220
226
  "--slotted-toggle-disabled-color",
@@ -230,6 +236,9 @@
230
236
  "--slotted-tone-accent-subtle-active",
231
237
  "--slotted-tone-accent-subtle-hover",
232
238
  "--slotted-tone-accent-text",
239
+ "--slotted-tone-neutral-on-solid",
240
+ "--slotted-tone-neutral-solid",
241
+ "--slotted-tone-neutral-solid-hover",
233
242
  "--slotted-tone-secondary-subtle-active",
234
243
  "--slotted-tone-secondary-subtle-hover"
235
244
  ],
package/docs/toggle.md CHANGED
@@ -37,7 +37,7 @@ Excerpt — not a complete module
37
37
  | `pressed` | `boolean` | — | slToggle | Bound, the consumer owns the state for the life of the component. Unbound, the toggle owns it and starts from defaultPressed |
38
38
  | `defaultPressed` | `boolean` | false | slToggle | What an uncontrolled toggle starts from, read once. A later change to it does not silently become new state |
39
39
  | `size` | `'sm' \| 'md' \| 'lg'` | md | slToggle | The control step. It reads the control scale, so the toggle is as tall as the field beside it |
40
- | `variant` | `'outline' \| 'ghost'` | outline | slToggle | Whether the control draws its own edge before it is on. There is no tone axis: a mode is one colour when it is on, and an action that persists in one of five tones is button’s ToggleButton |
40
+ | `variant` | `'outline' \| 'ghost' \| 'chips'` | outline | slToggle | Whether the control draws its own edge before it is on, or is a chip pressed in the neutral tone ink. There is no tone axis: a mode is one colour when it is on, and an action that persists in one of five tones is button’s ToggleButton |
41
41
  | `disabled` | `boolean` | false | slToggle | The native attribute, which is also what makes the browser refuse focus. A toggle that is on and unavailable keeps saying both |
42
42
  | `type` | `'button' \| 'submit' \| 'reset'` | button | slToggle | The native attribute, kept when the consumer wrote it. A toggle in a form is not a form control — checkbox and switch are — so it is a button unless the consumer says otherwise |
43
43
  | `slToggle` | `directive on a button` | — | the consumer’s element | The component is a directive on the consumer’s own button: every attribute, every listener and every structural directive around it stay as written. It stays a button, because aria-pressed on a link is a link announcing a state a link does not hold |
@@ -58,7 +58,7 @@ Excerpt — not a complete module
58
58
  | Axis | Values | Default |
59
59
  | --- | --- | --- |
60
60
  | `size` | `sm`, `md`, `lg` | `md` |
61
- | `variant` | `outline`, `ghost` | `outline` |
61
+ | `variant` | `outline`, `ghost`, `chips` | `outline` |
62
62
 
63
63
  ## Rules
64
64
 
@@ -70,7 +70,7 @@ Excerpt — not a complete module
70
70
 
71
71
  ## Tokens
72
72
 
73
- `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-instant`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-text`, `--slotted-toggle-active-background`, `--slotted-toggle-border-color`, `--slotted-toggle-color`, `--slotted-toggle-disabled-border-color`, `--slotted-toggle-disabled-color`, `--slotted-toggle-disabled-pressed-background`, `--slotted-toggle-hover-background`, `--slotted-toggle-pressed-background`, `--slotted-toggle-pressed-border-color`, `--slotted-toggle-pressed-color`, `--slotted-toggle-pressed-hover-background`, `--slotted-toggle-radius`, `--slotted-toggle-shadow`, `--slotted-tone-accent-border`, `--slotted-tone-accent-subtle-active`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
73
+ `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-font-weight`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-letter-spacing`, `--slotted-control-line-height`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-instant`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-weight-medium`, `--slotted-radius-full`, `--slotted-text`, `--slotted-toggle-active-background`, `--slotted-toggle-border-color`, `--slotted-toggle-chips-pressed-background`, `--slotted-toggle-chips-pressed-color`, `--slotted-toggle-chips-radius`, `--slotted-toggle-color`, `--slotted-toggle-disabled-border-color`, `--slotted-toggle-disabled-color`, `--slotted-toggle-disabled-pressed-background`, `--slotted-toggle-hover-background`, `--slotted-toggle-pressed-background`, `--slotted-toggle-pressed-border-color`, `--slotted-toggle-pressed-color`, `--slotted-toggle-pressed-hover-background`, `--slotted-toggle-radius`, `--slotted-toggle-shadow`, `--slotted-tone-accent-border`, `--slotted-tone-accent-subtle-active`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-text`, `--slotted-tone-neutral-on-solid`, `--slotted-tone-neutral-solid`, `--slotted-tone-neutral-solid-hover`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
74
74
 
75
75
  ## Examples
76
76