@slotted/angular 0.1.0-beta.5 → 0.1.0-beta.6
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/docs/segmented-control.json +7 -11
- package/docs/segmented-control.md +1 -1
- package/docs/tabs.json +4 -1
- package/docs/tabs.md +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +2 -2
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +2 -2
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +2 -2
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -274,15 +274,12 @@
|
|
|
274
274
|
}
|
|
275
275
|
},
|
|
276
276
|
"tokens": [
|
|
277
|
-
"--slotted-border-subtle",
|
|
278
277
|
"--slotted-border-width-thick",
|
|
279
|
-
"--slotted-control-border-color",
|
|
280
278
|
"--slotted-control-border-width",
|
|
281
279
|
"--slotted-control-font-family",
|
|
282
280
|
"--slotted-control-font-size-lg",
|
|
283
281
|
"--slotted-control-font-size-md",
|
|
284
282
|
"--slotted-control-font-size-sm",
|
|
285
|
-
"--slotted-control-font-weight",
|
|
286
283
|
"--slotted-control-gap-lg",
|
|
287
284
|
"--slotted-control-gap-md",
|
|
288
285
|
"--slotted-control-gap-sm",
|
|
@@ -299,8 +296,6 @@
|
|
|
299
296
|
"--slotted-control-padding-inline-md",
|
|
300
297
|
"--slotted-control-padding-inline-sm",
|
|
301
298
|
"--slotted-control-radius",
|
|
302
|
-
"--slotted-control-shadow",
|
|
303
|
-
"--slotted-control-surface",
|
|
304
299
|
"--slotted-control-transition-duration",
|
|
305
300
|
"--slotted-control-transition-easing",
|
|
306
301
|
"--slotted-disabled-background",
|
|
@@ -314,6 +309,7 @@
|
|
|
314
309
|
"--slotted-focus-ring-offset",
|
|
315
310
|
"--slotted-focus-ring-width",
|
|
316
311
|
"--slotted-font-weight-medium",
|
|
312
|
+
"--slotted-radius-full",
|
|
317
313
|
"--slotted-radius-xs",
|
|
318
314
|
"--slotted-segmented-control-active-background",
|
|
319
315
|
"--slotted-segmented-control-background",
|
|
@@ -324,9 +320,12 @@
|
|
|
324
320
|
"--slotted-segmented-control-disabled-color",
|
|
325
321
|
"--slotted-segmented-control-disabled-indicator-background",
|
|
326
322
|
"--slotted-segmented-control-divider-color",
|
|
323
|
+
"--slotted-segmented-control-font-weight",
|
|
324
|
+
"--slotted-segmented-control-gap",
|
|
327
325
|
"--slotted-segmented-control-hover-background",
|
|
328
326
|
"--slotted-segmented-control-indicator-background",
|
|
329
327
|
"--slotted-segmented-control-indicator-border-color",
|
|
328
|
+
"--slotted-segmented-control-indicator-shadow",
|
|
330
329
|
"--slotted-segmented-control-inset",
|
|
331
330
|
"--slotted-segmented-control-invalid-border-color",
|
|
332
331
|
"--slotted-segmented-control-invalid-edge-width",
|
|
@@ -336,17 +335,14 @@
|
|
|
336
335
|
"--slotted-segmented-control-underline-checked-color",
|
|
337
336
|
"--slotted-segmented-control-underline-color",
|
|
338
337
|
"--slotted-segmented-control-underline-gap",
|
|
338
|
+
"--slotted-shadow-xs",
|
|
339
339
|
"--slotted-space-1",
|
|
340
340
|
"--slotted-space-6",
|
|
341
|
+
"--slotted-surface-raised",
|
|
341
342
|
"--slotted-target-min",
|
|
342
343
|
"--slotted-text",
|
|
343
344
|
"--slotted-text-muted",
|
|
344
|
-
"--slotted-tone-
|
|
345
|
-
"--slotted-tone-accent-subtle-active",
|
|
346
|
-
"--slotted-tone-accent-text",
|
|
347
|
-
"--slotted-tone-danger-border",
|
|
348
|
-
"--slotted-tone-secondary-subtle-active",
|
|
349
|
-
"--slotted-tone-secondary-subtle-hover"
|
|
345
|
+
"--slotted-tone-danger-border"
|
|
350
346
|
],
|
|
351
347
|
"examples": [
|
|
352
348
|
{
|
|
@@ -90,7 +90,7 @@ Excerpt — not a complete module
|
|
|
90
90
|
|
|
91
91
|
## Tokens
|
|
92
92
|
|
|
93
|
-
`--slotted-border-
|
|
93
|
+
`--slotted-border-width-thick`, `--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-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-invalid-edge-width`, `--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-instant`, `--slotted-duration-medium`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-weight-medium`, `--slotted-radius-full`, `--slotted-radius-xs`, `--slotted-segmented-control-active-background`, `--slotted-segmented-control-background`, `--slotted-segmented-control-border-color`, `--slotted-segmented-control-checked-color`, `--slotted-segmented-control-color`, `--slotted-segmented-control-disabled-border-color`, `--slotted-segmented-control-disabled-color`, `--slotted-segmented-control-disabled-indicator-background`, `--slotted-segmented-control-divider-color`, `--slotted-segmented-control-font-weight`, `--slotted-segmented-control-gap`, `--slotted-segmented-control-hover-background`, `--slotted-segmented-control-indicator-background`, `--slotted-segmented-control-indicator-border-color`, `--slotted-segmented-control-indicator-shadow`, `--slotted-segmented-control-inset`, `--slotted-segmented-control-invalid-border-color`, `--slotted-segmented-control-invalid-edge-width`, `--slotted-segmented-control-invalid-focus-ring-color`, `--slotted-segmented-control-radius`, `--slotted-segmented-control-shadow`, `--slotted-segmented-control-underline-checked-color`, `--slotted-segmented-control-underline-color`, `--slotted-segmented-control-underline-gap`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-6`, `--slotted-surface-raised`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-danger-border`
|
|
94
94
|
|
|
95
95
|
## Examples
|
|
96
96
|
|
package/docs/tabs.json
CHANGED
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
"part": "marker",
|
|
146
146
|
"element": "span, aria-hidden",
|
|
147
147
|
"required": false,
|
|
148
|
-
"purpose": "The bar under the selected tab. The list draws one and slides it between tabs; it spans the tab’s content box, never the close button. --slotted-tabs-marker-size, --slotted-tabs-marker-radius and --slotted-tabs-marker-
|
|
148
|
+
"purpose": "The bar under the selected tab. The list draws one and slides it between tabs; it spans the tab’s content box, never the close button. --slotted-tabs-marker-size, --slotted-tabs-marker-radius, --slotted-tabs-marker-inset and --slotted-tabs-marker-offset (1px above the list’s edge) shape it, and the hover bar takes the same geometry at --slotted-tabs-hover-marker-opacity."
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"part": "panel",
|
|
@@ -414,6 +414,7 @@
|
|
|
414
414
|
"--slotted-disabled-background",
|
|
415
415
|
"--slotted-disabled-border",
|
|
416
416
|
"--slotted-disabled-foreground",
|
|
417
|
+
"--slotted-duration-medium",
|
|
417
418
|
"--slotted-duration-short",
|
|
418
419
|
"--slotted-easing-enter",
|
|
419
420
|
"--slotted-focus-ring-color",
|
|
@@ -448,7 +449,9 @@
|
|
|
448
449
|
"--slotted-tabs-hover-marker-opacity",
|
|
449
450
|
"--slotted-tabs-list-gap",
|
|
450
451
|
"--slotted-tabs-marker-color",
|
|
452
|
+
"--slotted-tabs-marker-easing",
|
|
451
453
|
"--slotted-tabs-marker-inset",
|
|
454
|
+
"--slotted-tabs-marker-offset",
|
|
452
455
|
"--slotted-tabs-marker-radius",
|
|
453
456
|
"--slotted-tabs-marker-size",
|
|
454
457
|
"--slotted-tabs-scroll-color",
|
package/docs/tabs.md
CHANGED
|
@@ -205,7 +205,7 @@ export class TabsBasic {
|
|
|
205
205
|
|
|
206
206
|
## Tokens
|
|
207
207
|
|
|
208
|
-
`--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-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-hover-marker-opacity`, `--slotted-tabs-list-gap`, `--slotted-tabs-marker-color`, `--slotted-tabs-marker-inset`, `--slotted-tabs-marker-radius`, `--slotted-tabs-marker-size`, `--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
|
+
`--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-medium`, `--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-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-hover-marker-opacity`, `--slotted-tabs-list-gap`, `--slotted-tabs-marker-color`, `--slotted-tabs-marker-easing`, `--slotted-tabs-marker-inset`, `--slotted-tabs-marker-offset`, `--slotted-tabs-marker-radius`, `--slotted-tabs-marker-size`, `--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`
|
|
209
209
|
|
|
210
210
|
## Examples
|
|
211
211
|
|
|
@@ -285,7 +285,7 @@ class SlSegmentedControl {
|
|
|
285
285
|
], exportAs: ["slSegmentedControl"], ngImport: i0, template: `@if (checkedIndex() >= 0) {
|
|
286
286
|
<span data-part="indicator" aria-hidden="true"></span>
|
|
287
287
|
}
|
|
288
|
-
<ng-content />`, isInline: true, styles: ["@layer slotted.components{[data-ui=segmented-control][data-part=root]{--_count: var(--slotted-segmented-control-count, 1);--_index: var(--slotted-segmented-control-index, 0);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px);--_radius: var(--slotted-segmented-control-radius, var(--slotted-control-radius, 4px));--_border-width: var(--slotted-control-border-width, 1px);--_inset: var(--slotted-segmented-control-inset, var(--slotted-space-1, .125rem));--_inner: calc(var(--_height) - (var(--_inset) + var(--_border-width)) * 2);--_thumb-radius: max(calc(var(--_radius) - var(--_inset)), var(--slotted-radius-xs, 2px));--_travel: var(--slotted-duration-medium);background:var(--slotted-segmented-control-background, var(--slotted-control-surface, Field));border:var(--_border-width) solid var( --slotted-segmented-control-border-color, var(--slotted-control-border-color, ButtonBorder) );border-radius:var(--_radius);box-shadow:var(--slotted-segmented-control-shadow, var(--slotted-control-shadow, none));box-sizing:border-box;display:inline-grid;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;isolation:isolate;min-inline-size:0;padding:var(--_inset);position:relative}[data-ui=segmented-control][data-part=root]:empty{display:none}[data-ui=segmented-control][data-part=root][data-size=sm]{--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=segmented-control][data-part=root][data-size=lg]{--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui=segmented-control][data-part=root][data-orientation=vertical]{grid-auto-columns:auto;grid-auto-flow:row;grid-auto-rows:minmax(0,1fr)}[data-ui=segmented-control][data-part=root][data-full-width]{display:grid;inline-size:100%}[data-ui=segmented-control][data-part=root][data-condense=icons]{container-name:slotted-segmented-control;container-type:inline-size;display:grid;inline-size:100%}[data-ui=segmented-control] [data-part=item]{align-items:center;block-size:var(--_inner);border-radius:var(--_thumb-radius);box-sizing:border-box;color:var(--slotted-segmented-control-color, var(--slotted-text, ButtonText));cursor:pointer;display:flex;font-weight:var(--slotted-control-font-weight, 600);gap:var(--_gap);justify-content:center;letter-spacing:var(--slotted-control-letter-spacing, 0);line-height:var(--slotted-control-line-height, 1);min-inline-size:max(var(--_inner),var(--slotted-target-min, 24px));padding-inline:var(--_padding-inline);position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:1}[data-ui=segmented-control] [data-part=item]:not(:has([data-part=label]:not(:empty))){padding-inline:0}[data-ui=segmented-control] [data-part=label]:empty{display:none}[data-ui=segmented-control] [data-part=item]+[data-part=item]:before{background:var(--slotted-segmented-control-divider-color, var(--slotted-border-subtle));content:\"\";inline-size:var(--_border-width);inset-block:22%;inset-inline-start:0;position:absolute;transition:opacity var(--_travel) var(--slotted-easing-standard)}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=item]+[data-part=item]:before{block-size:var(--_border-width);inline-size:auto;inset-block:auto;inset-block-start:0;inset-inline:22%}[data-ui=segmented-control] [data-part=item][data-checked]:before,[data-ui=segmented-control] [data-part=item][data-checked]+[data-part=item]:before{opacity:0}[data-ui=segmented-control] [data-part=control]{appearance:none;background:none;border:0;border-radius:inherit;cursor:inherit;inset-block:calc(-1 * (var(--_inset) + var(--_border-width)));inset-inline:0;margin:0;opacity:0;padding:0;position:absolute}[data-ui=segmented-control] [data-part=icon]{block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:var(--_icon-size)}[data-ui=segmented-control] [data-part=label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=segmented-control] [data-part=indicator]{background:var( --slotted-segmented-control-indicator-background, var(--slotted-tone-accent-subtle-active, Highlight) );block-size:calc(100% - var(--_inset) * 2);border:var(--_border-width) solid var( --slotted-segmented-control-indicator-border-color, var(--slotted-tone-accent-border, Highlight) );border-radius:var(--_thumb-radius);box-shadow:var(--slotted-control-shadow, none);box-sizing:border-box;inline-size:calc((100% - var(--_inset) * 2) / var(--_count));inset-block-start:var(--_inset);inset-inline-start:var(--_inset);pointer-events:none;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-easing-standard),translate var(--_travel) var(--slotted-easing-standard);translate:calc(var(--_index) * 100%);z-index:0}@starting-style{[data-ui=segmented-control] [data-part=indicator]{opacity:0}}[data-ui=segmented-control] [data-part=indicator]:dir(rtl){translate:calc(var(--_index) * -100%)}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=indicator]{block-size:calc((100% - var(--_inset) * 2) / var(--_count));inline-size:calc(100% - var(--_inset) * 2);translate:0 calc(var(--_index) * 100%)}[data-ui=segmented-control] [data-part=item][data-checked]{color:var( --slotted-segmented-control-checked-color, var(--slotted-tone-accent-text, HighlightText) )}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:var( --slotted-segmented-control-hover-background, var(--slotted-tone-secondary-subtle-hover, ButtonFace) )}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:var( --slotted-segmented-control-active-background, var(--slotted-tone-secondary-subtle-active, ButtonFace) );transition-duration:var(--slotted-duration-instant)}[data-ui=segmented-control] [data-part=item]:has([data-part=control]:focus-visible){outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px));z-index:2}[data-ui=segmented-control] [data-part=control]:focus-visible{outline:none}[data-ui=segmented-control][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-segmented-control-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );border-color:var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) );--_invalid-edge-width: var( --slotted-segmented-control-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );box-shadow:inset 0 0 0 var(--_invalid-edge-width) var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) )}[data-ui=segmented-control][data-part=root][data-readonly] [data-part=item],[data-ui=segmented-control][data-part=root][data-readonly] [data-part=control]{cursor:default}[data-ui=segmented-control] [data-part=item][data-disabled]{color:var( --slotted-segmented-control-disabled-color, var(--slotted-disabled-foreground, GrayText) );cursor:default}[data-ui=segmented-control] [data-part=control]:disabled{cursor:default}[data-ui=segmented-control][data-part=root][data-disabled]{border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) )}[data-ui=segmented-control][data-part=root][data-disabled] [data-part=indicator]{background:var( --slotted-segmented-control-disabled-indicator-background, var(--slotted-disabled-background, ButtonFace) );border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) );box-shadow:none}[data-ui=segmented-control][data-part=root][data-variant=underline]{--_inner: var(--_height);background:none;border:0;border-radius:0;box-shadow:none;column-gap:var(--slotted-segmented-control-underline-gap, var(--slotted-space-6, 1rem));grid-auto-columns:auto;padding:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=indicator],[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]+[data-part=item]:before{display:none}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]{color:var(--slotted-segmented-control-underline-color, var(--slotted-text-muted, GrayText));font-weight:var(--slotted-font-weight-medium, 500);min-inline-size:var(--slotted-target-min, 24px);padding-inline:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked]{color:var( --slotted-segmented-control-underline-checked-color, var(--slotted-text, CanvasText) )}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked] [data-part=label]{text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thick, 2px);text-underline-offset:.35em}[data-ui=segmented-control][data-part=root][data-variant=underline][data-invalid] [data-part=item][data-checked] [data-part=label]{text-decoration-color:var(--slotted-tone-danger-border, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled),[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:none;color:var(--slotted-text, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]:has([data-part=control]:focus-visible){outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}@container slotted-segmented-control (max-inline-size: 20rem){[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]) [data-part=label]{block-size:1px;clip-path:inset(50%);inline-size:1px;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]){padding-inline:0}}@media(forced-colors:active){[data-ui=segmented-control][data-part=root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)))}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
288
|
+
<ng-content />`, isInline: true, styles: ["@layer slotted.components{[data-ui=segmented-control][data-part=root]{--_count: var(--slotted-segmented-control-count, 1);--_index: var(--slotted-segmented-control-index, 0);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px);--_radius: var(--slotted-segmented-control-radius, var(--slotted-control-radius, 4px));--_border-width: var(--slotted-control-border-width, 1px);--_inset: var(--slotted-segmented-control-inset, var(--slotted-space-1, .125rem));--_inner: calc(var(--_height) - (var(--_inset) + var(--_border-width)) * 2);--_spacing: var(--slotted-segmented-control-gap, var(--_inset));--_thumb-radius: max(calc(var(--_radius) - var(--_inset)), var(--slotted-radius-xs, 2px));--_travel: var(--slotted-duration-medium);background:var( --slotted-segmented-control-background, color-mix(in oklab, var(--slotted-text, CanvasText) 6%, transparent) );border:var(--_border-width) solid var(--slotted-segmented-control-border-color, transparent);border-radius:var(--_radius);box-shadow:var(--slotted-segmented-control-shadow, none);box-sizing:border-box;display:inline-grid;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--_spacing);grid-auto-columns:minmax(max(var(--_inner),var(--slotted-target-min, 24px)),1fr);grid-auto-flow:column;isolation:isolate;min-inline-size:0;padding:var(--_inset);position:relative}[data-ui=segmented-control][data-part=root]:empty{display:none}[data-ui=segmented-control][data-part=root][data-size=sm]{--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=segmented-control][data-part=root][data-size=lg]{--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui=segmented-control][data-part=root][data-orientation=vertical]{grid-auto-columns:auto;grid-auto-flow:row;grid-auto-rows:minmax(0,1fr)}[data-ui=segmented-control][data-part=root][data-full-width]{display:grid;inline-size:100%}[data-ui=segmented-control][data-part=root][data-condense=icons]{container-name:slotted-segmented-control;container-type:inline-size;display:grid;inline-size:100%}[data-ui=segmented-control] [data-part=item]{align-items:center;block-size:var(--_inner);border-radius:var(--_thumb-radius);box-sizing:border-box;color:var(--slotted-segmented-control-color, var(--slotted-text, ButtonText));cursor:pointer;display:flex;font-weight:var( --slotted-segmented-control-font-weight, var(--slotted-font-weight-medium, 500) );gap:var(--_gap);justify-content:center;letter-spacing:var(--slotted-control-letter-spacing, 0);line-height:var(--slotted-control-line-height, 1);min-inline-size:0;padding-inline:var(--_padding-inline);position:relative;transition:color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=segmented-control] [data-part=item]:after{background:transparent;border-radius:inherit;content:\"\";inset:0;position:absolute;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:-1}[data-ui=segmented-control] [data-part=item]:not(:has([data-part=label]:not(:empty))){padding-inline:0}[data-ui=segmented-control] [data-part=label]:empty{display:none}[data-ui=segmented-control] [data-part=item]+[data-part=item]:before{background:var( --slotted-segmented-control-divider-color, color-mix(in oklab, var(--slotted-text) 14%, transparent) );border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_border-width);inset-block:25%;inset-inline-start:calc((var(--_spacing) + var(--_border-width)) / -2);position:absolute;transition:opacity var(--_travel) var(--slotted-easing-standard);z-index:-1}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=item]+[data-part=item]:before{block-size:var(--_border-width);inline-size:auto;inset-block:calc((var(--_spacing) + var(--_border-width)) / -2) auto;inset-inline:25%}[data-ui=segmented-control] [data-part=item][data-checked]:before,[data-ui=segmented-control] [data-part=item][data-checked]+[data-part=item]:before,[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:has([data-part=control]:enabled):before,[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:has([data-part=control]:enabled)+[data-part=item]:before{opacity:0}[data-ui=segmented-control] [data-part=control]{appearance:none;background:none;border:0;border-radius:inherit;cursor:inherit;inset-block:calc(-1 * (var(--_inset) + var(--_border-width)));inset-inline:calc(var(--_spacing) / -2);margin:0;opacity:0;padding:0;position:absolute}[data-ui=segmented-control] [data-part=icon]{block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:var(--_icon-size)}[data-ui=segmented-control] [data-part=label]{min-inline-size:0;overflow-x:clip;text-overflow:ellipsis;white-space:nowrap}[data-ui=segmented-control] [data-part=indicator]{background:var( --slotted-segmented-control-indicator-background, light-dark( var(--slotted-surface-raised, Canvas), color-mix( in oklab, var(--slotted-text, CanvasText) 14%, var(--slotted-surface-raised, Canvas) ) ) );block-size:calc(100% - var(--_inset) * 2);border:var(--_border-width) solid var( --slotted-segmented-control-indicator-border-color, color-mix(in oklab, var(--slotted-text, CanvasText) 10%, transparent) );border-radius:var(--_thumb-radius);box-shadow:var(--slotted-segmented-control-indicator-shadow, var(--slotted-shadow-xs, none));box-sizing:border-box;inline-size:calc((100% - var(--_inset) * 2 - var(--_spacing) * (var(--_count) - 1)) / var(--_count));inset-block-start:var(--_inset);inset-inline-start:var(--_inset);pointer-events:none;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-easing-standard),translate var(--_travel) var(--slotted-easing-standard);translate:calc(var(--_index) * (100% + var(--_spacing)));z-index:0}@starting-style{[data-ui=segmented-control] [data-part=indicator]{opacity:0}}[data-ui=segmented-control] [data-part=indicator]:dir(rtl){translate:calc(var(--_index) * (-100% - var(--_spacing)))}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=indicator]{block-size:calc((100% - var(--_inset) * 2 - var(--_spacing) * (var(--_count) - 1)) / var(--_count));inline-size:calc(100% - var(--_inset) * 2);translate:0 calc(var(--_index) * (100% + var(--_spacing)))}[data-ui=segmented-control] [data-part=item][data-checked]{color:var(--slotted-segmented-control-checked-color, var(--slotted-text, CanvasText))}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled):after{background:var( --slotted-segmented-control-hover-background, color-mix(in oklab, var(--slotted-text) 5%, transparent) )}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled):after{background:var( --slotted-segmented-control-active-background, color-mix(in oklab, var(--slotted-text) 9%, transparent) );transition-duration:var(--slotted-duration-instant)}[data-ui=segmented-control] [data-part=item]:has([data-part=control]:focus-visible){outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px));z-index:2}[data-ui=segmented-control] [data-part=control]:focus-visible{outline:none}[data-ui=segmented-control][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-segmented-control-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );border-color:var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) );--_invalid-edge-width: var( --slotted-segmented-control-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );box-shadow:inset 0 0 0 var(--_invalid-edge-width) var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) )}[data-ui=segmented-control][data-part=root][data-readonly] [data-part=item],[data-ui=segmented-control][data-part=root][data-readonly] [data-part=control]{cursor:default}[data-ui=segmented-control] [data-part=item][data-disabled]{color:var( --slotted-segmented-control-disabled-color, var(--slotted-disabled-foreground, GrayText) );cursor:default}[data-ui=segmented-control] [data-part=control]:disabled{cursor:default}[data-ui=segmented-control][data-part=root][data-disabled]{border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) )}[data-ui=segmented-control][data-part=root][data-disabled] [data-part=indicator]{background:var( --slotted-segmented-control-disabled-indicator-background, var(--slotted-disabled-background, ButtonFace) );border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) );box-shadow:none}[data-ui=segmented-control][data-part=root][data-variant=underline]{--_inner: var(--_height);background:none;border:0;border-radius:0;box-shadow:none;column-gap:var(--slotted-segmented-control-underline-gap, var(--slotted-space-6, 1rem));grid-auto-columns:auto;padding:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=indicator],[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]+[data-part=item]:before,[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]:after{display:none}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]{color:var(--slotted-segmented-control-underline-color, var(--slotted-text-muted, GrayText));font-weight:var(--slotted-font-weight-medium, 500);min-inline-size:var(--slotted-target-min, 24px);padding-inline:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked]{color:var( --slotted-segmented-control-underline-checked-color, var(--slotted-text, CanvasText) )}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked] [data-part=label]{text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thick, 2px);text-underline-offset:.35em}[data-ui=segmented-control][data-part=root][data-variant=underline][data-invalid] [data-part=item][data-checked] [data-part=label]{text-decoration-color:var(--slotted-tone-danger-border, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled),[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:none;color:var(--slotted-text, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]:has([data-part=control]:focus-visible){outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}@container slotted-segmented-control (max-inline-size: 20rem){[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]) [data-part=label]{block-size:1px;clip-path:inset(50%);inline-size:1px;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]){padding-inline:0}}@media(forced-colors:active){[data-ui=segmented-control][data-part=root]:not([data-variant=underline]){border-color:ButtonBorder}[data-ui=segmented-control] [data-part=indicator]{border-color:Highlight}[data-ui=segmented-control][data-part=root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)))}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
289
289
|
}
|
|
290
290
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlSegmentedControl, decorators: [{
|
|
291
291
|
type: Component,
|
|
@@ -315,7 +315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
315
315
|
'[attr.aria-orientation]': 'ariaOrientation()',
|
|
316
316
|
'[style.--slotted-segmented-control-count]': 'count()',
|
|
317
317
|
'[style.--slotted-segmented-control-index]': 'indexProperty()',
|
|
318
|
-
}, styles: ["@layer slotted.components{[data-ui=segmented-control][data-part=root]{--_count: var(--slotted-segmented-control-count, 1);--_index: var(--slotted-segmented-control-index, 0);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px);--_radius: var(--slotted-segmented-control-radius, var(--slotted-control-radius, 4px));--_border-width: var(--slotted-control-border-width, 1px);--_inset: var(--slotted-segmented-control-inset, var(--slotted-space-1, .125rem));--_inner: calc(var(--_height) - (var(--_inset) + var(--_border-width)) * 2);--_thumb-radius: max(calc(var(--_radius) - var(--_inset)), var(--slotted-radius-xs, 2px));--_travel: var(--slotted-duration-medium);background:var(--slotted-segmented-control-background, var(--slotted-control-surface, Field));border:var(--_border-width) solid var( --slotted-segmented-control-border-color, var(--slotted-control-border-color, ButtonBorder) );border-radius:var(--_radius);box-shadow:var(--slotted-segmented-control-shadow, var(--slotted-control-shadow, none));box-sizing:border-box;display:inline-grid;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;isolation:isolate;min-inline-size:0;padding:var(--_inset);position:relative}[data-ui=segmented-control][data-part=root]:empty{display:none}[data-ui=segmented-control][data-part=root][data-size=sm]{--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=segmented-control][data-part=root][data-size=lg]{--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui=segmented-control][data-part=root][data-orientation=vertical]{grid-auto-columns:auto;grid-auto-flow:row;grid-auto-rows:minmax(0,1fr)}[data-ui=segmented-control][data-part=root][data-full-width]{display:grid;inline-size:100%}[data-ui=segmented-control][data-part=root][data-condense=icons]{container-name:slotted-segmented-control;container-type:inline-size;display:grid;inline-size:100%}[data-ui=segmented-control] [data-part=item]{align-items:center;block-size:var(--_inner);border-radius:var(--_thumb-radius);box-sizing:border-box;color:var(--slotted-segmented-control-color, var(--slotted-text, ButtonText));cursor:pointer;display:flex;font-weight:var(--slotted-control-font-weight, 600);gap:var(--_gap);justify-content:center;letter-spacing:var(--slotted-control-letter-spacing, 0);line-height:var(--slotted-control-line-height, 1);min-inline-size:max(var(--_inner),var(--slotted-target-min, 24px));padding-inline:var(--_padding-inline);position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:1}[data-ui=segmented-control] [data-part=item]:not(:has([data-part=label]:not(:empty))){padding-inline:0}[data-ui=segmented-control] [data-part=label]:empty{display:none}[data-ui=segmented-control] [data-part=item]+[data-part=item]:before{background:var(--slotted-segmented-control-divider-color, var(--slotted-border-subtle));content:\"\";inline-size:var(--_border-width);inset-block:22%;inset-inline-start:0;position:absolute;transition:opacity var(--_travel) var(--slotted-easing-standard)}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=item]+[data-part=item]:before{block-size:var(--_border-width);inline-size:auto;inset-block:auto;inset-block-start:0;inset-inline:22%}[data-ui=segmented-control] [data-part=item][data-checked]:before,[data-ui=segmented-control] [data-part=item][data-checked]+[data-part=item]:before{opacity:0}[data-ui=segmented-control] [data-part=control]{appearance:none;background:none;border:0;border-radius:inherit;cursor:inherit;inset-block:calc(-1 * (var(--_inset) + var(--_border-width)));inset-inline:0;margin:0;opacity:0;padding:0;position:absolute}[data-ui=segmented-control] [data-part=icon]{block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:var(--_icon-size)}[data-ui=segmented-control] [data-part=label]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=segmented-control] [data-part=indicator]{background:var( --slotted-segmented-control-indicator-background, var(--slotted-tone-accent-subtle-active, Highlight) );block-size:calc(100% - var(--_inset) * 2);border:var(--_border-width) solid var( --slotted-segmented-control-indicator-border-color, var(--slotted-tone-accent-border, Highlight) );border-radius:var(--_thumb-radius);box-shadow:var(--slotted-control-shadow, none);box-sizing:border-box;inline-size:calc((100% - var(--_inset) * 2) / var(--_count));inset-block-start:var(--_inset);inset-inline-start:var(--_inset);pointer-events:none;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-easing-standard),translate var(--_travel) var(--slotted-easing-standard);translate:calc(var(--_index) * 100%);z-index:0}@starting-style{[data-ui=segmented-control] [data-part=indicator]{opacity:0}}[data-ui=segmented-control] [data-part=indicator]:dir(rtl){translate:calc(var(--_index) * -100%)}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=indicator]{block-size:calc((100% - var(--_inset) * 2) / var(--_count));inline-size:calc(100% - var(--_inset) * 2);translate:0 calc(var(--_index) * 100%)}[data-ui=segmented-control] [data-part=item][data-checked]{color:var( --slotted-segmented-control-checked-color, var(--slotted-tone-accent-text, HighlightText) )}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:var( --slotted-segmented-control-hover-background, var(--slotted-tone-secondary-subtle-hover, ButtonFace) )}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:var( --slotted-segmented-control-active-background, var(--slotted-tone-secondary-subtle-active, ButtonFace) );transition-duration:var(--slotted-duration-instant)}[data-ui=segmented-control] [data-part=item]:has([data-part=control]:focus-visible){outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px));z-index:2}[data-ui=segmented-control] [data-part=control]:focus-visible{outline:none}[data-ui=segmented-control][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-segmented-control-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );border-color:var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) );--_invalid-edge-width: var( --slotted-segmented-control-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );box-shadow:inset 0 0 0 var(--_invalid-edge-width) var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) )}[data-ui=segmented-control][data-part=root][data-readonly] [data-part=item],[data-ui=segmented-control][data-part=root][data-readonly] [data-part=control]{cursor:default}[data-ui=segmented-control] [data-part=item][data-disabled]{color:var( --slotted-segmented-control-disabled-color, var(--slotted-disabled-foreground, GrayText) );cursor:default}[data-ui=segmented-control] [data-part=control]:disabled{cursor:default}[data-ui=segmented-control][data-part=root][data-disabled]{border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) )}[data-ui=segmented-control][data-part=root][data-disabled] [data-part=indicator]{background:var( --slotted-segmented-control-disabled-indicator-background, var(--slotted-disabled-background, ButtonFace) );border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) );box-shadow:none}[data-ui=segmented-control][data-part=root][data-variant=underline]{--_inner: var(--_height);background:none;border:0;border-radius:0;box-shadow:none;column-gap:var(--slotted-segmented-control-underline-gap, var(--slotted-space-6, 1rem));grid-auto-columns:auto;padding:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=indicator],[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]+[data-part=item]:before{display:none}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]{color:var(--slotted-segmented-control-underline-color, var(--slotted-text-muted, GrayText));font-weight:var(--slotted-font-weight-medium, 500);min-inline-size:var(--slotted-target-min, 24px);padding-inline:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked]{color:var( --slotted-segmented-control-underline-checked-color, var(--slotted-text, CanvasText) )}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked] [data-part=label]{text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thick, 2px);text-underline-offset:.35em}[data-ui=segmented-control][data-part=root][data-variant=underline][data-invalid] [data-part=item][data-checked] [data-part=label]{text-decoration-color:var(--slotted-tone-danger-border, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled),[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:none;color:var(--slotted-text, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]:has([data-part=control]:focus-visible){outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}@container slotted-segmented-control (max-inline-size: 20rem){[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]) [data-part=label]{block-size:1px;clip-path:inset(50%);inline-size:1px;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]){padding-inline:0}}@media(forced-colors:active){[data-ui=segmented-control][data-part=root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)))}}}\n"] }]
|
|
318
|
+
}, styles: ["@layer slotted.components{[data-ui=segmented-control][data-part=root]{--_count: var(--slotted-segmented-control-count, 1);--_index: var(--slotted-segmented-control-index, 0);--_height: var(--slotted-control-height-md, 34px);--_padding-inline: var(--slotted-control-padding-inline-md, 13px);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px);--_radius: var(--slotted-segmented-control-radius, var(--slotted-control-radius, 4px));--_border-width: var(--slotted-control-border-width, 1px);--_inset: var(--slotted-segmented-control-inset, var(--slotted-space-1, .125rem));--_inner: calc(var(--_height) - (var(--_inset) + var(--_border-width)) * 2);--_spacing: var(--slotted-segmented-control-gap, var(--_inset));--_thumb-radius: max(calc(var(--_radius) - var(--_inset)), var(--slotted-radius-xs, 2px));--_travel: var(--slotted-duration-medium);background:var( --slotted-segmented-control-background, color-mix(in oklab, var(--slotted-text, CanvasText) 6%, transparent) );border:var(--_border-width) solid var(--slotted-segmented-control-border-color, transparent);border-radius:var(--_radius);box-shadow:var(--slotted-segmented-control-shadow, none);box-sizing:border-box;display:inline-grid;font-family:var(--slotted-control-font-family, system-ui, sans-serif);font-size:var(--_font-size);gap:var(--_spacing);grid-auto-columns:minmax(max(var(--_inner),var(--slotted-target-min, 24px)),1fr);grid-auto-flow:column;isolation:isolate;min-inline-size:0;padding:var(--_inset);position:relative}[data-ui=segmented-control][data-part=root]:empty{display:none}[data-ui=segmented-control][data-part=root][data-size=sm]{--_height: var(--slotted-control-height-sm, 30px);--_padding-inline: var(--slotted-control-padding-inline-sm, 10px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=segmented-control][data-part=root][data-size=lg]{--_height: var(--slotted-control-height-lg, 38px);--_padding-inline: var(--slotted-control-padding-inline-lg, 16px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui=segmented-control][data-part=root][data-orientation=vertical]{grid-auto-columns:auto;grid-auto-flow:row;grid-auto-rows:minmax(0,1fr)}[data-ui=segmented-control][data-part=root][data-full-width]{display:grid;inline-size:100%}[data-ui=segmented-control][data-part=root][data-condense=icons]{container-name:slotted-segmented-control;container-type:inline-size;display:grid;inline-size:100%}[data-ui=segmented-control] [data-part=item]{align-items:center;block-size:var(--_inner);border-radius:var(--_thumb-radius);box-sizing:border-box;color:var(--slotted-segmented-control-color, var(--slotted-text, ButtonText));cursor:pointer;display:flex;font-weight:var( --slotted-segmented-control-font-weight, var(--slotted-font-weight-medium, 500) );gap:var(--_gap);justify-content:center;letter-spacing:var(--slotted-control-letter-spacing, 0);line-height:var(--slotted-control-line-height, 1);min-inline-size:0;padding-inline:var(--_padding-inline);position:relative;transition:color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=segmented-control] [data-part=item]:after{background:transparent;border-radius:inherit;content:\"\";inset:0;position:absolute;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing);z-index:-1}[data-ui=segmented-control] [data-part=item]:not(:has([data-part=label]:not(:empty))){padding-inline:0}[data-ui=segmented-control] [data-part=label]:empty{display:none}[data-ui=segmented-control] [data-part=item]+[data-part=item]:before{background:var( --slotted-segmented-control-divider-color, color-mix(in oklab, var(--slotted-text) 14%, transparent) );border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_border-width);inset-block:25%;inset-inline-start:calc((var(--_spacing) + var(--_border-width)) / -2);position:absolute;transition:opacity var(--_travel) var(--slotted-easing-standard);z-index:-1}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=item]+[data-part=item]:before{block-size:var(--_border-width);inline-size:auto;inset-block:calc((var(--_spacing) + var(--_border-width)) / -2) auto;inset-inline:25%}[data-ui=segmented-control] [data-part=item][data-checked]:before,[data-ui=segmented-control] [data-part=item][data-checked]+[data-part=item]:before,[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:has([data-part=control]:enabled):before,[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:has([data-part=control]:enabled)+[data-part=item]:before{opacity:0}[data-ui=segmented-control] [data-part=control]{appearance:none;background:none;border:0;border-radius:inherit;cursor:inherit;inset-block:calc(-1 * (var(--_inset) + var(--_border-width)));inset-inline:calc(var(--_spacing) / -2);margin:0;opacity:0;padding:0;position:absolute}[data-ui=segmented-control] [data-part=icon]{block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:var(--_icon-size)}[data-ui=segmented-control] [data-part=label]{min-inline-size:0;overflow-x:clip;text-overflow:ellipsis;white-space:nowrap}[data-ui=segmented-control] [data-part=indicator]{background:var( --slotted-segmented-control-indicator-background, light-dark( var(--slotted-surface-raised, Canvas), color-mix( in oklab, var(--slotted-text, CanvasText) 14%, var(--slotted-surface-raised, Canvas) ) ) );block-size:calc(100% - var(--_inset) * 2);border:var(--_border-width) solid var( --slotted-segmented-control-indicator-border-color, color-mix(in oklab, var(--slotted-text, CanvasText) 10%, transparent) );border-radius:var(--_thumb-radius);box-shadow:var(--slotted-segmented-control-indicator-shadow, var(--slotted-shadow-xs, none));box-sizing:border-box;inline-size:calc((100% - var(--_inset) * 2 - var(--_spacing) * (var(--_count) - 1)) / var(--_count));inset-block-start:var(--_inset);inset-inline-start:var(--_inset);pointer-events:none;position:absolute;transition:opacity var(--slotted-control-transition-duration) var(--slotted-easing-standard),translate var(--_travel) var(--slotted-easing-standard);translate:calc(var(--_index) * (100% + var(--_spacing)));z-index:0}@starting-style{[data-ui=segmented-control] [data-part=indicator]{opacity:0}}[data-ui=segmented-control] [data-part=indicator]:dir(rtl){translate:calc(var(--_index) * (-100% - var(--_spacing)))}[data-ui=segmented-control][data-part=root][data-orientation=vertical] [data-part=indicator]{block-size:calc((100% - var(--_inset) * 2 - var(--_spacing) * (var(--_count) - 1)) / var(--_count));inline-size:calc(100% - var(--_inset) * 2);translate:0 calc(var(--_index) * (100% + var(--_spacing)))}[data-ui=segmented-control] [data-part=item][data-checked]{color:var(--slotted-segmented-control-checked-color, var(--slotted-text, CanvasText))}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled):after{background:var( --slotted-segmented-control-hover-background, color-mix(in oklab, var(--slotted-text) 5%, transparent) )}[data-ui=segmented-control][data-part=root]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled):after{background:var( --slotted-segmented-control-active-background, color-mix(in oklab, var(--slotted-text) 9%, transparent) );transition-duration:var(--slotted-duration-instant)}[data-ui=segmented-control] [data-part=item]:has([data-part=control]:focus-visible){outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px));z-index:2}[data-ui=segmented-control] [data-part=control]:focus-visible{outline:none}[data-ui=segmented-control][data-part=root][data-invalid]{--slotted-focus-ring-color: var( --slotted-segmented-control-invalid-focus-ring-color, var(--slotted-focus-ring-color-invalid, Highlight) );border-color:var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) );--_invalid-edge-width: var( --slotted-segmented-control-invalid-edge-width, var(--slotted-control-invalid-edge-width, 1px) );box-shadow:inset 0 0 0 var(--_invalid-edge-width) var( --slotted-segmented-control-invalid-border-color, var(--slotted-tone-danger-border, ButtonBorder) )}[data-ui=segmented-control][data-part=root][data-readonly] [data-part=item],[data-ui=segmented-control][data-part=root][data-readonly] [data-part=control]{cursor:default}[data-ui=segmented-control] [data-part=item][data-disabled]{color:var( --slotted-segmented-control-disabled-color, var(--slotted-disabled-foreground, GrayText) );cursor:default}[data-ui=segmented-control] [data-part=control]:disabled{cursor:default}[data-ui=segmented-control][data-part=root][data-disabled]{border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) )}[data-ui=segmented-control][data-part=root][data-disabled] [data-part=indicator]{background:var( --slotted-segmented-control-disabled-indicator-background, var(--slotted-disabled-background, ButtonFace) );border-color:var( --slotted-segmented-control-disabled-border-color, var(--slotted-disabled-border, GrayText) );box-shadow:none}[data-ui=segmented-control][data-part=root][data-variant=underline]{--_inner: var(--_height);background:none;border:0;border-radius:0;box-shadow:none;column-gap:var(--slotted-segmented-control-underline-gap, var(--slotted-space-6, 1rem));grid-auto-columns:auto;padding:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=indicator],[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]+[data-part=item]:before,[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]:after{display:none}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]{color:var(--slotted-segmented-control-underline-color, var(--slotted-text-muted, GrayText));font-weight:var(--slotted-font-weight-medium, 500);min-inline-size:var(--slotted-target-min, 24px);padding-inline:0}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked]{color:var( --slotted-segmented-control-underline-checked-color, var(--slotted-text, CanvasText) )}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-checked] [data-part=label]{text-decoration-color:currentColor;text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thick, 2px);text-underline-offset:.35em}[data-ui=segmented-control][data-part=root][data-variant=underline][data-invalid] [data-part=item][data-checked] [data-part=label]{text-decoration-color:var(--slotted-tone-danger-border, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:hover:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled),[data-ui=segmented-control][data-part=root][data-variant=underline]:not([data-readonly]) [data-part=item]:active:not([data-disabled]):not([data-checked]):has([data-part=control]:enabled){background:none;color:var(--slotted-text, CanvasText)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item]:has([data-part=control]:focus-visible){outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=segmented-control][data-part=root][data-variant=underline] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}@container slotted-segmented-control (max-inline-size: 20rem){[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]) [data-part=label]{block-size:1px;clip-path:inset(50%);inline-size:1px;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=segmented-control][data-part=root][data-condense=icons] [data-part=item]:has([data-part=icon]){padding-inline:0}}@media(forced-colors:active){[data-ui=segmented-control][data-part=root]:not([data-variant=underline]){border-color:ButtonBorder}[data-ui=segmented-control] [data-part=indicator]{border-color:Highlight}[data-ui=segmented-control][data-part=root][data-invalid]{outline:var(--_invalid-edge-width) solid CanvasText;outline-offset:calc(-1 * (var(--_border-width) + var(--_invalid-edge-width)))}}}\n"] }]
|
|
319
319
|
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], condense: [{ type: i0.Input, args: [{ isSignal: true, alias: "condense", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readOnly", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
|
|
320
320
|
|
|
321
321
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-segmented-control.mjs","sources":["../../segmented-control/src/segmented-control-defaults.ts","../../segmented-control/src/segmented-control.ts","../../segmented-control/src/segmented-control-parts.ts","../../segmented-control/src/slotted-angular-segmented-control.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the control and every segment inside it sit at. */\nexport type SegmentedControlSize = 'sm' | 'md' | 'lg';\n\n/** How the segments flow. The thumb travels along the same axis. */\nexport type SegmentedControlOrientation = 'horizontal' | 'vertical';\n\n/**\n * What the control does when it is narrower than its labels need. `icons`\n * keeps the marks and hides the words — hidden, never removed, so the\n * accessible name of every segment is the same at every width.\n */\nexport type SegmentedControlCondense = 'none' | 'icons';\n\n/**\n * How the choice is drawn. `track` is a box with a thumb behind the chosen\n * segment; `underline` is the words alone, the chosen one in the text colour\n * and underlined. The semantics are the same radio group in both.\n */\nexport type SegmentedControlVariant = 'track' | 'underline';\n\nexport interface SegmentedControlDefaults {\n condense: SegmentedControlCondense;\n fullWidth: boolean;\n orientation: SegmentedControlOrientation;\n size: SegmentedControlSize;\n variant: SegmentedControlVariant;\n}\n\nconst FALLBACK: SegmentedControlDefaults = {\n condense: 'none',\n fullWidth: false,\n orientation: 'horizontal',\n size: 'md',\n variant: 'track',\n};\n\nexport const SEGMENTED_CONTROL_DEFAULTS = new InjectionToken<SegmentedControlDefaults>(\n 'slotted segmented control defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its segmented controls are drawn, rather\n * than repeating the same inputs on every one of them. A control that states\n * any of them itself still wins, and a field around it outranks this token for\n * `size`.\n */\nexport function provideSegmentedControlDefaults(defaults: Partial<SegmentedControlDefaults>) {\n return {\n provide: SEGMENTED_CONTROL_DEFAULTS,\n useFactory: (): SegmentedControlDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a segmented control renders as here, before it states anything of its own. */\nexport function injectSegmentedControlDefaults(): SegmentedControlDefaults {\n return inject(SEGMENTED_CONTROL_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field`\n * records: a module-level counter produces colliding sequences when two\n * applications render in one server process, and the server and the client\n * sequences must match for hydration.\n *\n * It answers for the control's generated `name` as well as for each segment's\n * identifier, because both have to be stable across the two renders.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlSegmentedControlIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-segmented-control-${this.count}`;\n }\n}\n","import { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { SlField } from '@slotted/angular/field';\nimport { SlFieldGroup } from '@slotted/angular/field-group';\n\nimport {\n injectSegmentedControlDefaults,\n SlSegmentedControlIdFactory,\n} from './segmented-control-defaults';\nimport type {\n SegmentedControlCondense,\n SegmentedControlOrientation,\n SegmentedControlSize,\n SegmentedControlVariant,\n} from './segmented-control-defaults';\n\nexport type {\n SegmentedControlCondense,\n SegmentedControlDefaults,\n SegmentedControlOrientation,\n SegmentedControlSize,\n SegmentedControlVariant,\n} from './segmented-control-defaults';\n\n/** Why the value moved. A segmented control can produce exactly these two. */\nexport type SegmentedControlSelectionReason = 'pointer' | 'keyboard';\n\n/**\n * What the control needs from each segment, and nothing more.\n *\n * A structural type rather than the segment's class, so the control does not\n * import the component that injects it — the cycle `text-field` breaks with an\n * abstract class, broken here with the smaller thing that works.\n */\nexport interface SlSegmentedControlSegment {\n /** What this segment selects. */\n value: () => string;\n /** Writes this segment's element from the control's value. */\n syncElement(): void;\n}\n\n/**\n * One choice out of a few, applied at once, on a track.\n *\n * **The keyboard is the platform's, and that is why the segments share a\n * `name`.** Native radios in one form owner with one name already implement\n * the APG's Radio Group table: Tab lands on the checked segment or on the\n * first, `Space` checks, both arrow axes move focus and the selection\n * together, the set wraps, and disabled segments are skipped — in a\n * right-to-left document too.\n *\n * **The role is conditional, and the condition is the field group.** A\n * `field-group` is a `fieldset` with a `legend`, which is already a named\n * group; a `radiogroup` inside it is the same set announced twice. A `role`\n * the consumer wrote wins over both.\n *\n * **`readOnly` is enforced, because the platform has none.** A radio ignores\n * `readonly`, so the control refuses the change on the segment's own `click` —\n * the one event a pointer and `Space` share — and announces `aria-readonly`.\n *\n * **The thumb's place is the checked index, and the count is how many\n * segments registered.** Both are written as custom properties on the host, so\n * the stylesheet needs no measurement: the thumb is one column wide and moves\n * by its own width times the index.\n */\n@Component({\n selector: '[slSegmentedControl]',\n standalone: true,\n exportAs: 'slSegmentedControl',\n template: `@if (checkedIndex() >= 0) {\n <span data-part=\"indicator\" aria-hidden=\"true\"></span>\n }\n <ng-content />`,\n styleUrl: '../../../styles/src/segmented-control/segmented-control.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlSegmentedControl), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlSegmentedControl), multi: true },\n ],\n host: {\n 'data-ui': 'segmented-control',\n 'data-part': 'root',\n '[attr.role]': 'resolvedRole()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-condense]': 'resolvedCondense()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.data-full-width]': \"resolvedFullWidth() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-invalid]': 'ariaInvalid()',\n '[attr.aria-readonly]': 'ariaReadOnly()',\n '[attr.aria-required]': 'ariaRequired()',\n '[attr.aria-orientation]': 'ariaOrientation()',\n '[style.--slotted-segmented-control-count]': 'count()',\n '[style.--slotted-segmented-control-index]': 'indexProperty()',\n },\n})\nexport class SlSegmentedControl implements ControlValueAccessor, OnInit, Validator {\n /** Present means the consumer owns the choice. */\n readonly value = input<string | undefined>(undefined);\n /** The value an uncontrolled control starts from, read once. */\n readonly defaultValue = input<string | undefined>(undefined);\n /**\n * The submission name the segments share, and the reason the platform\n * treats them as one radio group. Generated when it is not written, because\n * grouping is by name within the form owner and an unnamed set is not a set.\n */\n readonly name = input<string | undefined>(undefined);\n readonly size = input<SegmentedControlSize | undefined>(undefined);\n readonly orientation = input<SegmentedControlOrientation | undefined>(undefined);\n readonly condense = input<SegmentedControlCondense | undefined>(undefined);\n /** Defaults to the provider, then to `track`. */\n readonly variant = input<SegmentedControlVariant | undefined>(undefined);\n readonly fullWidth = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n /** Unstated rather than `false`, so the control defers to the field around it. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * One output for one transition. Its `previous` is `undefined` while nothing\n * has been chosen, which a request typed over `string` alone could not say.\n */\n readonly valueChange = output<ChangeRequest<string | undefined>>();\n\n private readonly field = inject(SlField, { optional: true });\n private readonly fieldGroup = inject(SlFieldGroup, { optional: true });\n private readonly defaults = injectSegmentedControlDefaults();\n private readonly generatedName = inject(SlSegmentedControlIdFactory).next();\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n /* A group has no element a label's for can reach, so inside a field the\n field's label names it where the root owns the role, unless the consumer\n named it themselves. */\n protected readonly labelledBy = computed(\n () =>\n this.writtenLabelledBy ??\n (this.writtenLabel === null && this.resolvedRole() !== null\n ? (this.field?.ids().label ?? null)\n : null),\n );\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n\n private readonly segments = signal<readonly SlSegmentedControlSegment[]>([]);\n private readonly own = signal<string | undefined>(undefined);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n private onChangeFn: (value: string) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n\n readonly selection = computed(() => this.value() ?? this.own());\n readonly resolvedName = computed(() => this.name() ?? this.generatedName);\n\n /** How many segments the track holds, and which of them is checked. */\n readonly count = computed(() => this.segments().length);\n readonly checkedIndex = computed(() => {\n const current = this.selection();\n if (current === undefined) return -1;\n return this.segments().findIndex((segment) => segment.value() === current);\n });\n protected readonly indexProperty = computed(() => {\n const index = this.checkedIndex();\n return index < 0 ? null : index;\n });\n\n readonly resolvedSize = computed(\n () =>\n this.size() ??\n this.field?.resolvedSize() ??\n this.fieldGroup?.resolvedSize() ??\n this.defaults.size,\n );\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedCondense = computed(() => this.condense() ?? this.defaults.condense);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedFullWidth = computed(() => this.fullWidth() ?? this.defaults.fullWidth);\n readonly resolvedDisabled = computed(\n () => this.disabled() ?? this.formDisabled() ?? this.field?.resolvedDisabled(),\n );\n readonly resolvedReadOnly = computed(() => this.readOnly() ?? this.field?.resolvedReadOnly());\n readonly resolvedInvalid = computed(() => this.invalid() ?? this.field?.invalid());\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.fieldGroup?.required(),\n );\n\n protected readonly resolvedRole = computed(\n () => this.writtenRole ?? (this.fieldGroup === null ? 'radiogroup' : null),\n );\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaReadOnly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n /**\n * Only where the root owns the role, and only when the set flows the way\n * `radiogroup` does not already imply.\n */\n protected readonly ariaOrientation = computed(() =>\n this.resolvedRole() === 'radiogroup' && this.resolvedOrientation() === 'horizontal'\n ? 'horizontal'\n : null,\n );\n\n ngOnInit() {\n if (this.value() === undefined) this.own.set(this.defaultValue());\n }\n\n /** A segment joins the set, in the order the template holds it. */\n register(segment: SlSegmentedControlSegment) {\n this.segments.update((current) => [...current, segment]);\n }\n\n /** A segment leaves the set. */\n unregister(segment: SlSegmentedControlSegment) {\n this.segments.update((current) => current.filter((entry) => entry !== segment));\n }\n\n /**\n * Writes every segment's element from the value.\n *\n * The HTML standard's canceled activation behaviour for a radio restores the\n * *clicked* element and nothing else, so the option that was chosen before\n * the refused click stays unchecked. Angular writes a property binding only\n * when its value changes, and the neighbour's did not — the correction is\n * made here, which is the defect `radio-group` measured first.\n */\n restoreElements() {\n for (const segment of this.segments()) segment.syncElement();\n }\n\n /** Whether one value is the chosen one. Read by every segment in the set. */\n holds(value: string): boolean {\n return this.selection() === value;\n }\n\n /**\n * Asks the control to move to one value. Returns whether the value actually\n * moved — false while a consumer owns it, which is what tells the segment to\n * refuse the activation and let the platform put the element back.\n */\n select(value: string, reason: SegmentedControlSelectionReason, source: Event): boolean {\n if (this.resolvedReadOnly() === true) return false;\n\n let cancelled = false;\n const state = createControllable<string | undefined>({\n controlled: this.value(),\n initial: this.selection(),\n onRequest: (request) => {\n this.valueChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(value, reason, source);\n if (cancelled || !moved) return false;\n this.own.set(value);\n this.onChangeFn(value);\n return true;\n }\n\n writeValue(value: string | null | undefined) {\n this.own.set(value ?? undefined);\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /** Marks the set touched, which a segment calls when it loses focus. */\n markTouched() {\n this.onTouchedFn();\n }\n\n /**\n * The control owns validity over the set, which no single segment can see:\n * \"choose one\" is a fact about the set and not about any one option.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.resolvedRequired() !== true) return null;\n const value = control.value as string | null | undefined;\n return value === null || value === undefined || value === '' ? { required: true } : null;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlSegmentedControl } from './segmented-control';\nimport { SlSegmentedControlIdFactory } from './segmented-control-defaults';\nimport type {\n SegmentedControlSelectionReason,\n SlSegmentedControlSegment,\n} from './segmented-control';\n\n/**\n * The mark a segment is drawn with, on the consumer's own element.\n *\n * A directive rather than a slot, so an `ng-icon`, an inline `svg` or a\n * `span` all work and none of them loses its own semantics. It is hidden from\n * the reading order, because the words beside it — or the `aria-label` on the\n * radio — are what a reader hears.\n */\n@Directive({\n selector: '[slSegmentIcon]',\n standalone: true,\n exportAs: 'slSegmentIcon',\n host: {\n 'data-part': 'icon',\n 'aria-hidden': 'true',\n },\n})\nexport class SlSegmentIcon {}\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports\n * the click count. It is why `Space` and a pointer are told apart without a\n * key listener existing anywhere in the family.\n */\nfunction activationReason(event: Event): SegmentedControlSelectionReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * One segment of the track.\n *\n * It is a part of `segmented-control` and not an entry point of its own:\n * outside a control it has no exclusive set to belong to, and the platform's\n * whole keyboard model is defined over the set. `SlSegmentedControl` is\n * injected without `optional`, so a segment written outside one fails at\n * construction rather than silently.\n *\n * The radio is real, visually hidden and left where it is: it covers the\n * segment and reaches the track's own edge, so the hit area is the control's\n * height rather than the thumb's.\n */\n@Component({\n selector: '[slSegment]',\n standalone: true,\n exportAs: 'slSegment',\n template: `<input\n #control\n data-part=\"control\"\n type=\"radio\"\n [attr.id]=\"controlId\"\n [attr.name]=\"control_.resolvedName()\"\n [attr.value]=\"value()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"writtenDescribedBy\"\n [attr.disabled]=\"disabledAttribute()\"\n [checked]=\"checked()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n />\n <ng-content select=\"[slSegmentIcon]\" />\n <span data-part=\"label\"><ng-content /></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'item',\n '[attr.data-checked]': \"checked() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n },\n})\nexport class SlSegment implements SlSegmentedControlSegment {\n /** What this segment selects. It is what the control's value holds. */\n readonly value = input.required<string>();\n /** Unstated rather than `false`, so the segment defers to the control. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * The control the segment belongs to. Injected without `optional`, and\n * public because the template reads the shared name from it and a consumer\n * reaching the segment through `exportAs` may want the resolved step.\n *\n * The trailing underscore keeps the name off `value`, which is the input.\n */\n readonly control_ = inject(SlSegmentedControl);\n\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n /**\n * Read from the host and written onto the radio: the name of a segment whose\n * mark is its whole content belongs to the control that holds the focus, and\n * an `aria-label` left on the `label` element would name it twice.\n */\n protected readonly ariaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly element = viewChild.required<ElementRef<HTMLInputElement>>('control');\n\n /** The identifier the radio carries. A consumer's own wins. */\n readonly controlId = this.writtenId ?? inject(SlSegmentedControlIdFactory).next();\n\n readonly checked = computed(() => this.control_.holds(this.value()));\n readonly resolvedDisabled = computed(() => this.disabled() ?? this.control_.resolvedDisabled());\n\n protected readonly disabledAttribute = computed(() =>\n this.resolvedDisabled() === true ? '' : null,\n );\n\n constructor() {\n this.control_.register(this);\n inject(DestroyRef).onDestroy(() => this.control_.unregister(this));\n }\n\n /** Writes this segment's element from the control's value. */\n syncElement() {\n this.element().nativeElement.checked = this.checked();\n }\n\n protected onClick(event: Event) {\n if (this.control_.select(this.value(), activationReason(event), event)) return;\n /* Refused: the platform's own selection is put back, on this element and\n on the neighbour the browser had already unchecked. */\n event.preventDefault();\n this.control_.restoreElements();\n }\n\n protected onBlur() {\n this.control_.markTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-segmented-control.mjs","sources":["../../segmented-control/src/segmented-control-defaults.ts","../../segmented-control/src/segmented-control.ts","../../segmented-control/src/segmented-control-parts.ts","../../segmented-control/src/slotted-angular-segmented-control.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the control and every segment inside it sit at. */\nexport type SegmentedControlSize = 'sm' | 'md' | 'lg';\n\n/** How the segments flow. The thumb travels along the same axis. */\nexport type SegmentedControlOrientation = 'horizontal' | 'vertical';\n\n/**\n * What the control does when it is narrower than its labels need. `icons`\n * keeps the marks and hides the words — hidden, never removed, so the\n * accessible name of every segment is the same at every width.\n */\nexport type SegmentedControlCondense = 'none' | 'icons';\n\n/**\n * How the choice is drawn. `track` is a box with a thumb behind the chosen\n * segment; `underline` is the words alone, the chosen one in the text colour\n * and underlined. The semantics are the same radio group in both.\n */\nexport type SegmentedControlVariant = 'track' | 'underline';\n\nexport interface SegmentedControlDefaults {\n condense: SegmentedControlCondense;\n fullWidth: boolean;\n orientation: SegmentedControlOrientation;\n size: SegmentedControlSize;\n variant: SegmentedControlVariant;\n}\n\nconst FALLBACK: SegmentedControlDefaults = {\n condense: 'none',\n fullWidth: false,\n orientation: 'horizontal',\n size: 'md',\n variant: 'track',\n};\n\nexport const SEGMENTED_CONTROL_DEFAULTS = new InjectionToken<SegmentedControlDefaults>(\n 'slotted segmented control defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its segmented controls are drawn, rather\n * than repeating the same inputs on every one of them. A control that states\n * any of them itself still wins, and a field around it outranks this token for\n * `size`.\n */\nexport function provideSegmentedControlDefaults(defaults: Partial<SegmentedControlDefaults>) {\n return {\n provide: SEGMENTED_CONTROL_DEFAULTS,\n useFactory: (): SegmentedControlDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a segmented control renders as here, before it states anything of its own. */\nexport function injectSegmentedControlDefaults(): SegmentedControlDefaults {\n return inject(SEGMENTED_CONTROL_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field`\n * records: a module-level counter produces colliding sequences when two\n * applications render in one server process, and the server and the client\n * sequences must match for hydration.\n *\n * It answers for the control's generated `name` as well as for each segment's\n * identifier, because both have to be stable across the two renders.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlSegmentedControlIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-segmented-control-${this.count}`;\n }\n}\n","import { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { SlField } from '@slotted/angular/field';\nimport { SlFieldGroup } from '@slotted/angular/field-group';\n\nimport {\n injectSegmentedControlDefaults,\n SlSegmentedControlIdFactory,\n} from './segmented-control-defaults';\nimport type {\n SegmentedControlCondense,\n SegmentedControlOrientation,\n SegmentedControlSize,\n SegmentedControlVariant,\n} from './segmented-control-defaults';\n\nexport type {\n SegmentedControlCondense,\n SegmentedControlDefaults,\n SegmentedControlOrientation,\n SegmentedControlSize,\n SegmentedControlVariant,\n} from './segmented-control-defaults';\n\n/** Why the value moved. A segmented control can produce exactly these two. */\nexport type SegmentedControlSelectionReason = 'pointer' | 'keyboard';\n\n/**\n * What the control needs from each segment, and nothing more.\n *\n * A structural type rather than the segment's class, so the control does not\n * import the component that injects it — the cycle `text-field` breaks with an\n * abstract class, broken here with the smaller thing that works.\n */\nexport interface SlSegmentedControlSegment {\n /** What this segment selects. */\n value: () => string;\n /** Writes this segment's element from the control's value. */\n syncElement(): void;\n}\n\n/**\n * One choice out of a few, applied at once, on a track.\n *\n * **The keyboard is the platform's, and that is why the segments share a\n * `name`.** Native radios in one form owner with one name already implement\n * the APG's Radio Group table: Tab lands on the checked segment or on the\n * first, `Space` checks, both arrow axes move focus and the selection\n * together, the set wraps, and disabled segments are skipped — in a\n * right-to-left document too.\n *\n * **The role is conditional, and the condition is the field group.** A\n * `field-group` is a `fieldset` with a `legend`, which is already a named\n * group; a `radiogroup` inside it is the same set announced twice. A `role`\n * the consumer wrote wins over both.\n *\n * **`readOnly` is enforced, because the platform has none.** A radio ignores\n * `readonly`, so the control refuses the change on the segment's own `click` —\n * the one event a pointer and `Space` share — and announces `aria-readonly`.\n *\n * **The thumb's place is the checked index, and the count is how many\n * segments registered.** Both are written as custom properties on the host, so\n * the stylesheet needs no measurement: the thumb is one column wide and moves\n * by its own width times the index.\n */\n@Component({\n selector: '[slSegmentedControl]',\n standalone: true,\n exportAs: 'slSegmentedControl',\n template: `@if (checkedIndex() >= 0) {\n <span data-part=\"indicator\" aria-hidden=\"true\"></span>\n }\n <ng-content />`,\n styleUrl: '../../../styles/src/segmented-control/segmented-control.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlSegmentedControl), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlSegmentedControl), multi: true },\n ],\n host: {\n 'data-ui': 'segmented-control',\n 'data-part': 'root',\n '[attr.role]': 'resolvedRole()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-condense]': 'resolvedCondense()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.data-full-width]': \"resolvedFullWidth() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.aria-describedby]': 'describedBy()',\n '[attr.aria-invalid]': 'ariaInvalid()',\n '[attr.aria-readonly]': 'ariaReadOnly()',\n '[attr.aria-required]': 'ariaRequired()',\n '[attr.aria-orientation]': 'ariaOrientation()',\n '[style.--slotted-segmented-control-count]': 'count()',\n '[style.--slotted-segmented-control-index]': 'indexProperty()',\n },\n})\nexport class SlSegmentedControl implements ControlValueAccessor, OnInit, Validator {\n /** Present means the consumer owns the choice. */\n readonly value = input<string | undefined>(undefined);\n /** The value an uncontrolled control starts from, read once. */\n readonly defaultValue = input<string | undefined>(undefined);\n /**\n * The submission name the segments share, and the reason the platform\n * treats them as one radio group. Generated when it is not written, because\n * grouping is by name within the form owner and an unnamed set is not a set.\n */\n readonly name = input<string | undefined>(undefined);\n readonly size = input<SegmentedControlSize | undefined>(undefined);\n readonly orientation = input<SegmentedControlOrientation | undefined>(undefined);\n readonly condense = input<SegmentedControlCondense | undefined>(undefined);\n /** Defaults to the provider, then to `track`. */\n readonly variant = input<SegmentedControlVariant | undefined>(undefined);\n readonly fullWidth = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n /** Unstated rather than `false`, so the control defers to the field around it. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * One output for one transition. Its `previous` is `undefined` while nothing\n * has been chosen, which a request typed over `string` alone could not say.\n */\n readonly valueChange = output<ChangeRequest<string | undefined>>();\n\n private readonly field = inject(SlField, { optional: true });\n private readonly fieldGroup = inject(SlFieldGroup, { optional: true });\n private readonly defaults = injectSegmentedControlDefaults();\n private readonly generatedName = inject(SlSegmentedControlIdFactory).next();\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n /* A group has no element a label's for can reach, so inside a field the\n field's label names it where the root owns the role, unless the consumer\n named it themselves. */\n protected readonly labelledBy = computed(\n () =>\n this.writtenLabelledBy ??\n (this.writtenLabel === null && this.resolvedRole() !== null\n ? (this.field?.ids().label ?? null)\n : null),\n );\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n\n private readonly segments = signal<readonly SlSegmentedControlSegment[]>([]);\n private readonly own = signal<string | undefined>(undefined);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n private onChangeFn: (value: string) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n\n readonly selection = computed(() => this.value() ?? this.own());\n readonly resolvedName = computed(() => this.name() ?? this.generatedName);\n\n /** How many segments the track holds, and which of them is checked. */\n readonly count = computed(() => this.segments().length);\n readonly checkedIndex = computed(() => {\n const current = this.selection();\n if (current === undefined) return -1;\n return this.segments().findIndex((segment) => segment.value() === current);\n });\n protected readonly indexProperty = computed(() => {\n const index = this.checkedIndex();\n return index < 0 ? null : index;\n });\n\n readonly resolvedSize = computed(\n () =>\n this.size() ??\n this.field?.resolvedSize() ??\n this.fieldGroup?.resolvedSize() ??\n this.defaults.size,\n );\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedCondense = computed(() => this.condense() ?? this.defaults.condense);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedFullWidth = computed(() => this.fullWidth() ?? this.defaults.fullWidth);\n readonly resolvedDisabled = computed(\n () => this.disabled() ?? this.formDisabled() ?? this.field?.resolvedDisabled(),\n );\n readonly resolvedReadOnly = computed(() => this.readOnly() ?? this.field?.resolvedReadOnly());\n readonly resolvedInvalid = computed(() => this.invalid() ?? this.field?.invalid());\n readonly resolvedRequired = computed(\n () => this.required() ?? this.field?.required() ?? this.fieldGroup?.required(),\n );\n\n protected readonly resolvedRole = computed(\n () => this.writtenRole ?? (this.fieldGroup === null ? 'radiogroup' : null),\n );\n protected readonly describedBy = computed(() => {\n const merged = [this.writtenDescribedBy, this.field?.describedBy()].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaReadOnly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n /**\n * Only where the root owns the role, and only when the set flows the way\n * `radiogroup` does not already imply.\n */\n protected readonly ariaOrientation = computed(() =>\n this.resolvedRole() === 'radiogroup' && this.resolvedOrientation() === 'horizontal'\n ? 'horizontal'\n : null,\n );\n\n ngOnInit() {\n if (this.value() === undefined) this.own.set(this.defaultValue());\n }\n\n /** A segment joins the set, in the order the template holds it. */\n register(segment: SlSegmentedControlSegment) {\n this.segments.update((current) => [...current, segment]);\n }\n\n /** A segment leaves the set. */\n unregister(segment: SlSegmentedControlSegment) {\n this.segments.update((current) => current.filter((entry) => entry !== segment));\n }\n\n /**\n * Writes every segment's element from the value.\n *\n * The HTML standard's canceled activation behaviour for a radio restores the\n * *clicked* element and nothing else, so the option that was chosen before\n * the refused click stays unchecked. Angular writes a property binding only\n * when its value changes, and the neighbour's did not — the correction is\n * made here, which is the defect `radio-group` measured first.\n */\n restoreElements() {\n for (const segment of this.segments()) segment.syncElement();\n }\n\n /** Whether one value is the chosen one. Read by every segment in the set. */\n holds(value: string): boolean {\n return this.selection() === value;\n }\n\n /**\n * Asks the control to move to one value. Returns whether the value actually\n * moved — false while a consumer owns it, which is what tells the segment to\n * refuse the activation and let the platform put the element back.\n */\n select(value: string, reason: SegmentedControlSelectionReason, source: Event): boolean {\n if (this.resolvedReadOnly() === true) return false;\n\n let cancelled = false;\n const state = createControllable<string | undefined>({\n controlled: this.value(),\n initial: this.selection(),\n onRequest: (request) => {\n this.valueChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(value, reason, source);\n if (cancelled || !moved) return false;\n this.own.set(value);\n this.onChangeFn(value);\n return true;\n }\n\n writeValue(value: string | null | undefined) {\n this.own.set(value ?? undefined);\n }\n\n registerOnChange(fn: (value: string) => void) {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /** Marks the set touched, which a segment calls when it loses focus. */\n markTouched() {\n this.onTouchedFn();\n }\n\n /**\n * The control owns validity over the set, which no single segment can see:\n * \"choose one\" is a fact about the set and not about any one option.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n if (this.resolvedRequired() !== true) return null;\n const value = control.value as string | null | undefined;\n return value === null || value === undefined || value === '' ? { required: true } : null;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlSegmentedControl } from './segmented-control';\nimport { SlSegmentedControlIdFactory } from './segmented-control-defaults';\nimport type {\n SegmentedControlSelectionReason,\n SlSegmentedControlSegment,\n} from './segmented-control';\n\n/**\n * The mark a segment is drawn with, on the consumer's own element.\n *\n * A directive rather than a slot, so an `ng-icon`, an inline `svg` or a\n * `span` all work and none of them loses its own semantics. It is hidden from\n * the reading order, because the words beside it — or the `aria-label` on the\n * radio — are what a reader hears.\n */\n@Directive({\n selector: '[slSegmentIcon]',\n standalone: true,\n exportAs: 'slSegmentIcon',\n host: {\n 'data-part': 'icon',\n 'aria-hidden': 'true',\n },\n})\nexport class SlSegmentIcon {}\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports\n * the click count. It is why `Space` and a pointer are told apart without a\n * key listener existing anywhere in the family.\n */\nfunction activationReason(event: Event): SegmentedControlSelectionReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * One segment of the track.\n *\n * It is a part of `segmented-control` and not an entry point of its own:\n * outside a control it has no exclusive set to belong to, and the platform's\n * whole keyboard model is defined over the set. `SlSegmentedControl` is\n * injected without `optional`, so a segment written outside one fails at\n * construction rather than silently.\n *\n * The radio is real, visually hidden and left where it is: it covers the\n * segment and reaches the track's own edge, so the hit area is the control's\n * height rather than the thumb's.\n */\n@Component({\n selector: '[slSegment]',\n standalone: true,\n exportAs: 'slSegment',\n template: `<input\n #control\n data-part=\"control\"\n type=\"radio\"\n [attr.id]=\"controlId\"\n [attr.name]=\"control_.resolvedName()\"\n [attr.value]=\"value()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-describedby]=\"writtenDescribedBy\"\n [attr.disabled]=\"disabledAttribute()\"\n [checked]=\"checked()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n />\n <ng-content select=\"[slSegmentIcon]\" />\n <span data-part=\"label\"><ng-content /></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'item',\n '[attr.data-checked]': \"checked() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n },\n})\nexport class SlSegment implements SlSegmentedControlSegment {\n /** What this segment selects. It is what the control's value holds. */\n readonly value = input.required<string>();\n /** Unstated rather than `false`, so the segment defers to the control. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * The control the segment belongs to. Injected without `optional`, and\n * public because the template reads the shared name from it and a consumer\n * reaching the segment through `exportAs` may want the resolved step.\n *\n * The trailing underscore keeps the name off `value`, which is the input.\n */\n readonly control_ = inject(SlSegmentedControl);\n\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n /**\n * Read from the host and written onto the radio: the name of a segment whose\n * mark is its whole content belongs to the control that holds the focus, and\n * an `aria-label` left on the `label` element would name it twice.\n */\n protected readonly ariaLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n protected readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly element = viewChild.required<ElementRef<HTMLInputElement>>('control');\n\n /** The identifier the radio carries. A consumer's own wins. */\n readonly controlId = this.writtenId ?? inject(SlSegmentedControlIdFactory).next();\n\n readonly checked = computed(() => this.control_.holds(this.value()));\n readonly resolvedDisabled = computed(() => this.disabled() ?? this.control_.resolvedDisabled());\n\n protected readonly disabledAttribute = computed(() =>\n this.resolvedDisabled() === true ? '' : null,\n );\n\n constructor() {\n this.control_.register(this);\n inject(DestroyRef).onDestroy(() => this.control_.unregister(this));\n }\n\n /** Writes this segment's element from the control's value. */\n syncElement() {\n this.element().nativeElement.checked = this.checked();\n }\n\n protected onClick(event: Event) {\n if (this.control_.select(this.value(), activationReason(event), event)) return;\n /* Refused: the platform's own selection is put back, on this element and\n on the neighbour the browser had already unchecked. */\n event.preventDefault();\n this.control_.restoreElements();\n }\n\n protected onBlur() {\n this.control_.markTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|