@slotted/angular 0.1.0-beta.5 → 0.1.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/docs/menu.json +12 -0
  2. package/docs/menu.md +2 -0
  3. package/docs/segmented-control.json +7 -11
  4. package/docs/segmented-control.md +1 -1
  5. package/docs/side-navigation.json +1 -0
  6. package/docs/side-navigation.md +1 -1
  7. package/docs/table.examples.md +2 -2
  8. package/docs/table.json +2 -2
  9. package/docs/tabs.json +4 -1
  10. package/docs/tabs.md +1 -1
  11. package/fesm2022/slotted-angular-action-bar.mjs +1 -1
  12. package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
  13. package/fesm2022/slotted-angular-app-shell.mjs +2 -2
  14. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  15. package/fesm2022/slotted-angular-button.mjs +12 -12
  16. package/fesm2022/slotted-angular-button.mjs.map +1 -1
  17. package/fesm2022/slotted-angular-chart.mjs +2 -2
  18. package/fesm2022/slotted-angular-chart.mjs.map +1 -1
  19. package/fesm2022/slotted-angular-color-picker.mjs +1 -1
  20. package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
  21. package/fesm2022/slotted-angular-column-manager.mjs +1 -1
  22. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  23. package/fesm2022/slotted-angular-dashboard-grid.mjs +1 -1
  24. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  25. package/fesm2022/slotted-angular-data-grid.mjs +2 -2
  26. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  27. package/fesm2022/slotted-angular-data-list.mjs +1 -1
  28. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  29. package/fesm2022/slotted-angular-event-calendar.mjs +1 -1
  30. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  31. package/fesm2022/slotted-angular-filter-bar.mjs +1 -1
  32. package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
  33. package/fesm2022/slotted-angular-kbd.mjs +4 -4
  34. package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
  35. package/fesm2022/slotted-angular-menu.mjs +12 -4
  36. package/fesm2022/slotted-angular-menu.mjs.map +1 -1
  37. package/fesm2022/slotted-angular-saved-views.mjs +1 -1
  38. package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
  39. package/fesm2022/slotted-angular-segmented-control.mjs +2 -2
  40. package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
  41. package/fesm2022/slotted-angular-side-navigation.mjs +2 -2
  42. package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
  43. package/fesm2022/slotted-angular-split-button.mjs +4 -4
  44. package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
  45. package/fesm2022/slotted-angular-stat-card.mjs +2 -2
  46. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  47. package/fesm2022/slotted-angular-table.mjs +3 -1
  48. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  49. package/fesm2022/slotted-angular-tabs.mjs +2 -2
  50. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  51. package/fesm2022/slotted-angular-toolbar.mjs +1 -1
  52. package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
  53. package/package.json +3 -3
  54. package/types/slotted-angular-menu.d.ts +11 -2
  55. package/types/slotted-angular-menu.d.ts.map +1 -1
  56. package/types/slotted-angular-table.d.ts +3 -1
  57. package/types/slotted-angular-table.d.ts.map +1 -1
@@ -155,7 +155,7 @@ class SlKbd {
155
155
  }, /* @ts-ignore */
156
156
  ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
157
157
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlKbd, deps: [], target: i0.ɵɵFactoryTarget.Component });
158
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlKbd, isStandalone: true, selector: "kbd[slKbd]", inputs: { keyName: { classPropertyName: "keyName", publicName: "keyName", isSignal: true, isRequired: false, transformFunction: null }, platform: { classPropertyName: "platform", publicName: "platform", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "kbd", "data-part": "root" }, properties: { "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-key": "key()?.token ?? null", "attr.data-platform": "keyName() ? resolvedPlatform() : null", "attr.data-disabled": "resolvedDisabled() ? \"\" : null" } }, exportAs: ["slKbd"], ngImport: i0, template: `<span data-part="legend" [attr.aria-hidden]="key() ? true : null" [attr.data-legend]="key()?.symbolic ? 'symbol' : null">@if (key(); as resolved) {{{ resolved.legend }}} @else {<ng-content></ng-content>}</span>@if (key()?.name; as name) {<span data-part="name">{{ name }}</span>}`, isInline: true, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
158
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlKbd, isStandalone: true, selector: "kbd[slKbd]", inputs: { keyName: { classPropertyName: "keyName", publicName: "keyName", isSignal: true, isRequired: false, transformFunction: null }, platform: { classPropertyName: "platform", publicName: "platform", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "kbd", "data-part": "root" }, properties: { "attr.data-size": "resolvedSize()", "attr.data-variant": "resolvedVariant()", "attr.data-key": "key()?.token ?? null", "attr.data-platform": "keyName() ? resolvedPlatform() : null", "attr.data-disabled": "resolvedDisabled() ? \"\" : null" } }, exportAs: ["slKbd"], ngImport: i0, template: `<span data-part="legend" [attr.aria-hidden]="key() ? true : null" [attr.data-legend]="key()?.symbolic ? 'symbol' : null">@if (key(); as resolved) {{{ resolved.legend }}} @else {<ng-content></ng-content>}</span>@if (key()?.name; as name) {<span data-part="name">{{ name }}</span>}`, isInline: true, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));line-height:1;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
159
159
  }
160
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlKbd, decorators: [{
161
161
  type: Component,
@@ -167,7 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
167
167
  '[attr.data-key]': 'key()?.token ?? null',
168
168
  '[attr.data-platform]': 'keyName() ? resolvedPlatform() : null',
169
169
  '[attr.data-disabled]': 'resolvedDisabled() ? "" : null',
170
- }, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"] }]
170
+ }, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));line-height:1;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"] }]
171
171
  }], propDecorators: { keyName: [{ type: i0.Input, args: [{ isSignal: true, alias: "keyName", required: false }] }], platform: [{ type: i0.Input, args: [{ isSignal: true, alias: "platform", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }] } });
172
172
 
173
173
  /**
@@ -247,7 +247,7 @@ class SlShortcut {
247
247
  /* The decorator runs before the class binding exists. */
248
248
  useExisting: forwardRef(() => SlShortcut),
249
249
  },
250
- ], exportAs: ["slShortcut"], ngImport: i0, template: `@if (resolved(); as shortcut) {@for (step of shortcut.steps; track $index) {@if (!$first) {<span data-part="separator" data-separator="then">{{ shortcut.thenLabel }}</span>}@for (key of step; track $index) {@if (!$first && shortcut.separator) {<span aria-hidden="true" data-part="separator" data-separator="plus">{{ shortcut.separator }}</span>}<kbd data-ui="kbd" data-part="root" [attr.data-key]="key.token" [attr.data-platform]="shortcut.platform" [attr.data-size]="resolvedSize()" [attr.data-variant]="resolvedVariant()" [attr.data-disabled]="disabled() ? '' : null"><span data-part="legend" aria-hidden="true" [attr.data-legend]="key.symbolic ? 'symbol' : null">{{ key.legend }}</span>@if (key.name; as name) {<span data-part="name">{{ name }}</span>}</kbd>}}} @else {<ng-content></ng-content>}`, isInline: true, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
250
+ ], exportAs: ["slShortcut"], ngImport: i0, template: `@if (resolved(); as shortcut) {@for (step of shortcut.steps; track $index) {@if (!$first) {<span data-part="separator" data-separator="then">{{ shortcut.thenLabel }}</span>}@for (key of step; track $index) {@if (!$first && shortcut.separator) {<span aria-hidden="true" data-part="separator" data-separator="plus">{{ shortcut.separator }}</span>}<kbd data-ui="kbd" data-part="root" [attr.data-key]="key.token" [attr.data-platform]="shortcut.platform" [attr.data-size]="resolvedSize()" [attr.data-variant]="resolvedVariant()" [attr.data-disabled]="disabled() ? '' : null"><span data-part="legend" aria-hidden="true" [attr.data-legend]="key.symbolic ? 'symbol' : null">{{ key.legend }}</span>@if (key.name; as name) {<span data-part="name">{{ name }}</span>}</kbd>}}} @else {<ng-content></ng-content>}`, isInline: true, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));line-height:1;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
251
251
  }
252
252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlShortcut, decorators: [{
253
253
  type: Component,
@@ -273,7 +273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
273
273
  * `display: inline-flex`, which the `hidden` attribute would lose to.
274
274
  */
275
275
  '[style.display]': 'empty() ? "none" : null',
276
- }, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"] }]
276
+ }, styles: ["@layer slotted.components{[data-ui=kbd]{--_size: var(--slotted-space-8, 1.5rem);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset-inline: var(--slotted-space-3, .375rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-md, 6px));--_gap: var(--slotted-space-2, .25rem);--_edge-width: var(--slotted-kbd-border-width, var(--slotted-border-width-thin, 1px));--_base-width: var(--_edge-width);--_block-size: var(--slotted-control-inner-size, var(--_size));--_background: var(--slotted-surface-raised, Canvas);--_face: none;--_border: var(--slotted-control-border-color, ButtonBorder);--_base: var(--slotted-border-strong, ButtonBorder);--_color: var(--slotted-text, CanvasText)}[data-ui=kbd][data-part=root]{background-color:var(--_background);background-image:var(--_face);block-size:var(--_block-size);border:var(--_edge-width) solid var(--_border);border-block-end:var(--_base-width) solid var(--_base);border-radius:var(--_radius);box-sizing:border-box;color:var(--_color);display:inline-grid;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-kbd-font-weight, var(--slotted-font-weight-medium, 500));line-height:1;min-inline-size:var(--_block-size);place-items:center;padding-block:0;padding-inline:var(--_inset-inline);white-space:nowrap;vertical-align:middle;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),border-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}@supports (text-box: trim-both cap alphabetic){[data-ui=kbd] [data-part=legend]{text-box:trim-both cap alphabetic}[data-ui=kbd] [data-part=legend][data-legend=symbol]{text-box:normal}}[data-ui=kbd] [data-part=legend][data-legend=symbol]{font-family:var(--slotted-kbd-symbol-font-family, var(--slotted-font-family-sans, sans-serif));font-size:1.1em}[data-ui=kbd] [data-part=name]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=kbd][data-part=shortcut]{align-items:center;direction:ltr;display:inline-flex;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));line-height:1;flex-wrap:wrap;gap:var(--_gap);max-inline-size:100%;vertical-align:middle}[data-ui=kbd][data-part=shortcut][data-platform=mac]{--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-part=shortcut][data-platform=mac][data-size=inherit]{--_gap: .125em}[data-ui=kbd] [data-part=separator]{color:var(--slotted-text-muted, GrayText);flex:none;font-family:var(--slotted-kbd-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);line-height:1}[data-ui=kbd] [data-part=separator][data-separator=then]{font-family:var(--slotted-control-font-family, sans-serif);padding-inline:var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=xs]{--_size: var(--slotted-space-6, 1rem);--_font-size: .6875rem;--_inset-inline: var(--slotted-space-2, .25rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-sm, 4px));--_gap: var(--slotted-space-1, .125rem)}[data-ui=kbd][data-size=sm]{--_size: var(--slotted-space-7, 1.25rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-inline: var(--slotted-space-2, .25rem)}[data-ui=kbd][data-size=lg]{--_size: calc(var(--slotted-space-8, 1.5rem) + var(--slotted-space-2, .25rem));--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset-inline: var(--slotted-space-4, .5rem);--_radius: var(--slotted-kbd-radius, var(--slotted-radius-lg, 8px))}[data-ui=kbd][data-size=inherit]{--_size: 1.5em;--_font-size: .8em;--_inset-inline: .4em;--_radius: var(--slotted-kbd-radius, .375em);--_gap: .25em}@supports (inline-size: round(nearest,1.5em,1px)){[data-ui=kbd][data-size=inherit]{--_size: round(nearest, 1.5em, 1px)}}[data-ui=kbd][data-variant=raised]{--_base-width: var(--slotted-kbd-base-width, var(--slotted-border-width-thick, 2px));--_face: linear-gradient( to bottom, var(--_background) 40%, color-mix(in oklab, var(--_background), var(--_base) 10%) )}[data-ui=kbd][data-variant=outline]{--_background: transparent;--_border: var(--slotted-border-strong, ButtonBorder);--_color: inherit}[data-ui=kbd][data-variant=soft]{--_background: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_base: var(--slotted-tone-secondary-border);--_color: var(--slotted-tone-secondary-text)}[data-ui=kbd][data-variant=plain]{--_background: transparent;--_border: transparent;--_base: transparent;--_color: inherit}[data-ui=kbd][data-part=root][data-variant=plain]{min-inline-size:0;padding-inline:0}[data-ui=kbd][data-disabled]{--_background: var(--slotted-disabled-background, Canvas);--_face: none;--_border: var(--slotted-disabled-border, GrayText);--_base: var(--slotted-disabled-border, GrayText);--_color: var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-disabled] [data-part=separator]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=kbd][data-variant=outline][data-disabled],[data-ui=kbd][data-variant=plain][data-disabled]{--_background: transparent}[data-ui=kbd][data-variant=plain][data-disabled]{--_border: transparent;--_base: transparent}}\n"] }]
277
277
  }], propDecorators: { keys: [{ type: i0.Input, args: [{ isSignal: true, alias: "keys", required: false }] }], platform: [{ type: i0.Input, args: [{ isSignal: true, alias: "platform", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], legends: [{ type: i0.Input, args: [{ isSignal: true, alias: "legends", required: false }] }], names: [{ type: i0.Input, args: [{ isSignal: true, alias: "names", required: false }] }] } });
278
278
 
279
279
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-kbd.mjs","sources":["../../kbd/src/kbd-defaults.ts","../../kbd/src/kbd-axes.ts","../../kbd/src/kbd.ts","../../kbd/src/shortcut.ts","../../kbd/src/slotted-angular-kbd.ts"],"sourcesContent":["import { inject, InjectionToken, isDevMode, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport type { KbdPlatform, KbdPlatformInput } from '@slotted/core/keys';\nimport { resolvePlatform } from '@slotted/core/keys';\n\nexport type { KbdPlatform, KbdPlatformInput } from '@slotted/core/keys';\n\n/**\n * Four absolute heights — 16, 20, 24 and 28 pixels — and one that reads the text\n * around it. `inherit` is the step prose wants: an absolute cap inside a heading\n * is a stamp, and one in fine print is a slab.\n */\nexport type KbdSize = 'xs' | 'sm' | 'md' | 'lg' | 'inherit';\n\n/**\n * `raised` is the only value that looks like a key. `outline` owns no ground,\n * so it carries over any surface. `soft` is the tinted chip. `plain` is the\n * menu-row form, and it takes the colour of the text it sits in.\n */\nexport type KbdVariant = 'raised' | 'outline' | 'soft' | 'plain';\n\nexport interface KbdDefaults {\n /**\n * `auto` asks the runtime. State it instead where the page is rendered on a\n * server: nothing is detected then, and the first paint is already right.\n */\n platform: KbdPlatformInput;\n size: KbdSize;\n variant: KbdVariant;\n /** Between two simultaneous keys. A Mac joins with nothing whatever this says. */\n separator: string;\n /** Replaces what the eye sees, per key token: `{ ctrl: 'Strg' }`. */\n legends: Readonly<Record<string, string>> | undefined;\n /** Replaces what a reader hears, per key token: `{ ctrl: 'Steuerung' }`. */\n names: Readonly<Record<string, string>> | undefined;\n}\n\nconst FALLBACK: KbdDefaults = {\n platform: 'auto',\n size: 'md',\n variant: 'raised',\n separator: '+',\n legends: undefined,\n names: undefined,\n};\n\nexport const KBD_DEFAULTS = new InjectionToken<KbdDefaults>('slotted kbd defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once which platform its shortcuts are written for, how\n * its keys are painted, and which legends and names it writes in place of the\n * catalog's for particular keys. A key that states any of them itself still\n * wins: an explicit input is never overridden by the token. The words come from\n * the `keys` catalog of the language in force (`provideSlotted`).\n */\nexport function provideKbdDefaults(defaults: Partial<KbdDefaults>) {\n return {\n provide: KBD_DEFAULTS,\n useFactory: (): KbdDefaults => ({\n platform: defaults.platform ?? FALLBACK.platform,\n size: defaults.size ?? FALLBACK.size,\n variant: defaults.variant ?? FALLBACK.variant,\n separator: defaults.separator ?? FALLBACK.separator,\n legends: defaults.legends ?? FALLBACK.legends,\n names: defaults.names ?? FALLBACK.names,\n }),\n };\n}\n\n/** What a key renders as here, before it states anything of its own. */\nexport function injectKbdDefaults(): KbdDefaults {\n return inject(KBD_DEFAULTS);\n}\n\n/**\n * The reader's platform, resolved synchronously in the browser and never on the\n * server.\n *\n * The asymmetry with the React binding is deliberate and is the one worth\n * recording. React has `useSyncExternalStore`, which distinguishes a hydrating\n * render from a plain client one, so it can be right on the first paint of a\n * client-rendered page *and* free of hydration mismatches on a server-rendered\n * one. Angular exposes no equivalent, so the choice is between a flash on every\n * page and a mismatch on hydrated ones. This binding takes neither: it resolves\n * at once in the browser, which is right for the client-rendered application,\n * and an application that server-renders states `platform` through\n * `provideKbdDefaults` — at which point nothing is detected at all.\n *\n * A development-mode warning is what stops that requirement from being\n * discovered by a reader seeing `Ctrl` on their Mac.\n */\nexport function injectKbdPlatform(): (stated?: KbdPlatformInput) => KbdPlatform {\n const defaults = injectKbdDefaults();\n const browser = isPlatformBrowser(inject(PLATFORM_ID));\n\n if (!browser && defaults.platform === 'auto' && isDevMode()) {\n console.warn(\n '[slotted/kbd] The platform cannot be detected on the server, so every shortcut is ' +\n 'rendered for `other`. Call provideKbdDefaults({ platform }) to state it.',\n );\n }\n\n return (stated?: KbdPlatformInput) => {\n const requested = stated ?? defaults.platform;\n if (requested !== 'auto') return requested;\n return browser ? resolvePlatform('auto') : 'other';\n };\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport type { Signal } from '@angular/core';\n\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\n\n/**\n * What a combination hands to the keys inside it.\n *\n * Only what the combination was told is handed on: a key that states its own\n * size still wins, and a combination that states nothing hands on nothing, so\n * the provider's default is still what answers. Without this a page writing its\n * own keys inside a `Shortcut` would have to repeat four inputs on each of\n * them, and a key that forgot one would be painted differently from the\n * combination holding it.\n */\nexport interface SlShortcutAxesValue {\n platform: Signal<KbdPlatformInput | undefined>;\n size: Signal<KbdSize | undefined>;\n variant: Signal<KbdVariant | undefined>;\n disabled: Signal<boolean | undefined>;\n}\n\nconst SHORTCUT_AXES = new InjectionToken<SlShortcutAxesValue>('slotted kbd shortcut axes');\n\n/**\n * A namespace rather than a class, because there is nothing to instantiate: the\n * combination provides its own signals and a key reads them if it has a\n * combination to read.\n */\nexport const SlShortcutAxes = {\n token: SHORTCUT_AXES,\n injectOptional: (): SlShortcutAxesValue | null =>\n inject(SHORTCUT_AXES, { optional: true, skipSelf: false }),\n} as const;\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { keysMessages, type KeysMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { resolveKey } from '@slotted/core/keys';\n\nimport { injectKbdDefaults, injectKbdPlatform } from './kbd-defaults';\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\nimport { SlShortcutAxes } from './kbd-axes';\n\n/**\n * One key of a keyboard, drawn so a reader can find it on theirs.\n *\n * The directive is written on the consumer's own `<kbd>`, which is the element\n * the HTML Standard defines for exactly this and the reason this binding needs\n * no `render` prop: substituting the element is Angular's default.\n *\n * It is not a control: nothing here is focusable, nothing answers hover, and\n * nothing binds a shortcut. Registering one is the application's, because WCAG\n * 2.2 2.1.4 Character Key Shortcuts can only be answered by whoever knows\n * whether the shortcut can be turned off.\n */\n@Component({\n selector: 'kbd[slKbd]',\n standalone: true,\n exportAs: 'slKbd',\n /**\n * A named key wins over projected content, because it is the more specific of\n * two explicit instructions — and because content cannot be asked whether it\n * exists, so any rule that depended on the answer would be one only the React\n * binding could keep.\n *\n * Every space in this template is load-bearing: Angular collapses a newline\n * between two nodes into a space, and a space inside the legend would be a\n * space inside the key's word.\n */\n // prettier-ignore\n template: `<span data-part=\"legend\" [attr.aria-hidden]=\"key() ? true : null\" [attr.data-legend]=\"key()?.symbolic ? 'symbol' : null\">@if (key(); as resolved) {{{ resolved.legend }}} @else {<ng-content></ng-content>}</span>@if (key()?.name; as name) {<span data-part=\"name\">{{ name }}</span>}`,\n styleUrl: '../../../styles/src/kbd/kbd.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'kbd',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-key]': 'key()?.token ?? null',\n '[attr.data-platform]': 'keyName() ? resolvedPlatform() : null',\n '[attr.data-disabled]': 'resolvedDisabled() ? \"\" : null',\n },\n})\nexport class SlKbd {\n /**\n * A token from the vocabulary — `mod`, `meta`, `shift`, `escape`, `up` — or\n * any of its aliases. It resolves to the legend the reader's platform draws\n * and the word a screen reader hears in place of it.\n */\n readonly keyName = input<string | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `auto`. */\n readonly platform = input<KbdPlatformInput | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `md`. */\n readonly size = input<KbdSize | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `raised`. */\n readonly variant = input<KbdVariant | undefined>(undefined);\n /**\n * Dims the key without claiming the item's semantics. `kbd` may carry only\n * the global ARIA attributes, and `aria-disabled` is not one of them, so the\n * row this key belongs to is what says it is unavailable.\n */\n readonly disabled = input(undefined, { transform: booleanAttribute });\n /**\n * Words laid over the `keys` catalog of the language in force, key by key:\n * `legends.*` for what a cap shows, `names.*` for what a reader hears.\n */\n readonly messages = input<PartialMessages<KeysMessages> | undefined>(undefined);\n\n private readonly defaults = injectKbdDefaults();\n private readonly platformOf = injectKbdPlatform();\n private readonly t = injectMessages(keysMessages, this.messages);\n /**\n * The combination this key sits in, when it sits in one. It is optional, so a\n * key written on its own works, and a key written by hand inside a `Shortcut`\n * is painted like the combination around it without repeating four inputs.\n */\n private readonly group = SlShortcutAxes.injectOptional();\n\n protected readonly resolvedPlatform = computed(() =>\n this.platformOf(this.platform() ?? this.group?.platform()),\n );\n protected readonly resolvedSize = computed(\n () => this.size() ?? this.group?.size() ?? this.defaults.size,\n );\n protected readonly resolvedVariant = computed(\n () => this.variant() ?? this.group?.variant() ?? this.defaults.variant,\n );\n protected readonly resolvedDisabled = computed(\n () => this.disabled() ?? this.group?.disabled() ?? false,\n );\n\n protected readonly key = computed(() => {\n const token = this.keyName();\n if (token === undefined || token === '') return undefined;\n return resolveKey(token, {\n platform: this.resolvedPlatform(),\n t: this.t,\n legends: this.defaults.legends,\n names: this.defaults.names,\n });\n });\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { keysMessages, type KeysMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { resolveShortcut } from '@slotted/core/keys';\n\nimport { SlShortcutAxes } from './kbd-axes';\nimport { injectKbdDefaults, injectKbdPlatform } from './kbd-defaults';\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\n\n/**\n * A whole key combination, and the element the HTML Standard says it is:\n * “nesting a `kbd` element within another `kbd` element represents an actual key\n * or other unit of input as a portion of a larger input”. shadcn's `KbdGroup` is\n * a `div`, and Chakra and Radix put the whole combination inside one `kbd` as\n * text; this is the markup the specification describes.\n *\n * `keys` is written once and rendered for the reader's platform. The modifiers\n * are reordered into that platform's own convention — the Apple Style Guide\n * writes Fn, Control, Option, Shift, Command, and Microsoft writes the Windows\n * key ahead of Ctrl, Alt and Shift — so one authored string is right on both.\n * The escape hatch is composition rather than a fifth input: keys projected into\n * this element are rendered exactly as written.\n */\n@Component({\n selector: 'kbd[slShortcut]',\n standalone: true,\n exportAs: 'slShortcut',\n /**\n * The key markup is written here as well as in `SlKbd`, because a rendered key\n * has no token to hand back to that component — the combination resolved it\n * already, under its own `legends` and `names`. The two are held identical by\n * `kbd.spec.ts`, which renders the same key both ways and compares the DOM,\n * rather than by a shared helper that could only serve one of them.\n *\n * Every space is load-bearing: Angular collapses a newline between two nodes\n * into a space, and a space between two caps is a space the gap already owns.\n */\n // prettier-ignore\n template: `@if (resolved(); as shortcut) {@for (step of shortcut.steps; track $index) {@if (!$first) {<span data-part=\"separator\" data-separator=\"then\">{{ shortcut.thenLabel }}</span>}@for (key of step; track $index) {@if (!$first && shortcut.separator) {<span aria-hidden=\"true\" data-part=\"separator\" data-separator=\"plus\">{{ shortcut.separator }}</span>}<kbd data-ui=\"kbd\" data-part=\"root\" [attr.data-key]=\"key.token\" [attr.data-platform]=\"shortcut.platform\" [attr.data-size]=\"resolvedSize()\" [attr.data-variant]=\"resolvedVariant()\" [attr.data-disabled]=\"disabled() ? '' : null\"><span data-part=\"legend\" aria-hidden=\"true\" [attr.data-legend]=\"key.symbolic ? 'symbol' : null\">{{ key.legend }}</span>@if (key.name; as name) {<span data-part=\"name\">{{ name }}</span>}</kbd>}}} @else {<ng-content></ng-content>}`,\n styleUrl: '../../../styles/src/kbd/kbd.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: SlShortcutAxes.token,\n /* The decorator runs before the class binding exists. */\n useExisting: forwardRef(() => SlShortcut),\n },\n ],\n host: {\n 'data-ui': 'kbd',\n 'data-part': 'shortcut',\n '[attr.data-platform]': 'resolvedPlatform()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n /**\n * A combination with nothing in it is nothing, not an empty cap at the end\n * of a row announcing that a shortcut exists. The React binding returns\n * nothing; this directive is written on an element the consumer owns, so it\n * cannot un-write it, and `display: none` is the same outcome the platform\n * can give from here. The inline style is what beats the family's own\n * `display: inline-flex`, which the `hidden` attribute would lose to.\n */\n '[style.display]': 'empty() ? \"none\" : null',\n },\n})\nexport class SlShortcut {\n /**\n * The shortcut, written once: `+` joins keys pressed together and whitespace\n * joins the steps of a sequence.\n */\n readonly keys = input<string | undefined>(undefined);\n /** Defaults to the provider, then to `auto`. */\n readonly platform = input<KbdPlatformInput | undefined>(undefined);\n /** Defaults to the provider, then to `md`. */\n readonly size = input<KbdSize | undefined>(undefined);\n /** Defaults to the provider, then to `raised`. */\n readonly variant = input<KbdVariant | undefined>(undefined);\n readonly disabled = input(undefined, { transform: booleanAttribute });\n /** Between two simultaneous keys. Defaults to the provider, then to `+`. */\n readonly separator = input<string | undefined>(undefined);\n /**\n * Words laid over the `keys` catalog of the language in force, key by key:\n * `legends.*`, `names.*`, and `then` between two steps of a sequence.\n */\n readonly messages = input<PartialMessages<KeysMessages> | undefined>(undefined);\n /** Replaces what the eye sees, per key token. Defaults to the provider. */\n readonly legends = input<Readonly<Record<string, string>> | undefined>(undefined);\n /** Replaces what a reader hears, per key token. Defaults to the provider. */\n readonly names = input<Readonly<Record<string, string>> | undefined>(undefined);\n\n private readonly defaults = injectKbdDefaults();\n private readonly platformOf = injectKbdPlatform();\n private readonly t = injectMessages(keysMessages, this.messages);\n\n protected readonly resolvedPlatform = computed(() => this.platformOf(this.platform()));\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n\n protected readonly resolved = computed(() => {\n const keys = this.keys();\n if (keys === undefined) return undefined;\n return resolveShortcut(keys, {\n platform: this.resolvedPlatform(),\n t: this.t,\n legends: this.legends() ?? this.defaults.legends,\n names: this.names() ?? this.defaults.names,\n separator: this.separator() ?? this.defaults.separator,\n });\n });\n\n protected readonly empty = computed(() => this.resolved()?.steps.length === 0);\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-kbd.mjs","sources":["../../kbd/src/kbd-defaults.ts","../../kbd/src/kbd-axes.ts","../../kbd/src/kbd.ts","../../kbd/src/shortcut.ts","../../kbd/src/slotted-angular-kbd.ts"],"sourcesContent":["import { inject, InjectionToken, isDevMode, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport type { KbdPlatform, KbdPlatformInput } from '@slotted/core/keys';\nimport { resolvePlatform } from '@slotted/core/keys';\n\nexport type { KbdPlatform, KbdPlatformInput } from '@slotted/core/keys';\n\n/**\n * Four absolute heights — 16, 20, 24 and 28 pixels — and one that reads the text\n * around it. `inherit` is the step prose wants: an absolute cap inside a heading\n * is a stamp, and one in fine print is a slab.\n */\nexport type KbdSize = 'xs' | 'sm' | 'md' | 'lg' | 'inherit';\n\n/**\n * `raised` is the only value that looks like a key. `outline` owns no ground,\n * so it carries over any surface. `soft` is the tinted chip. `plain` is the\n * menu-row form, and it takes the colour of the text it sits in.\n */\nexport type KbdVariant = 'raised' | 'outline' | 'soft' | 'plain';\n\nexport interface KbdDefaults {\n /**\n * `auto` asks the runtime. State it instead where the page is rendered on a\n * server: nothing is detected then, and the first paint is already right.\n */\n platform: KbdPlatformInput;\n size: KbdSize;\n variant: KbdVariant;\n /** Between two simultaneous keys. A Mac joins with nothing whatever this says. */\n separator: string;\n /** Replaces what the eye sees, per key token: `{ ctrl: 'Strg' }`. */\n legends: Readonly<Record<string, string>> | undefined;\n /** Replaces what a reader hears, per key token: `{ ctrl: 'Steuerung' }`. */\n names: Readonly<Record<string, string>> | undefined;\n}\n\nconst FALLBACK: KbdDefaults = {\n platform: 'auto',\n size: 'md',\n variant: 'raised',\n separator: '+',\n legends: undefined,\n names: undefined,\n};\n\nexport const KBD_DEFAULTS = new InjectionToken<KbdDefaults>('slotted kbd defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once which platform its shortcuts are written for, how\n * its keys are painted, and which legends and names it writes in place of the\n * catalog's for particular keys. A key that states any of them itself still\n * wins: an explicit input is never overridden by the token. The words come from\n * the `keys` catalog of the language in force (`provideSlotted`).\n */\nexport function provideKbdDefaults(defaults: Partial<KbdDefaults>) {\n return {\n provide: KBD_DEFAULTS,\n useFactory: (): KbdDefaults => ({\n platform: defaults.platform ?? FALLBACK.platform,\n size: defaults.size ?? FALLBACK.size,\n variant: defaults.variant ?? FALLBACK.variant,\n separator: defaults.separator ?? FALLBACK.separator,\n legends: defaults.legends ?? FALLBACK.legends,\n names: defaults.names ?? FALLBACK.names,\n }),\n };\n}\n\n/** What a key renders as here, before it states anything of its own. */\nexport function injectKbdDefaults(): KbdDefaults {\n return inject(KBD_DEFAULTS);\n}\n\n/**\n * The reader's platform, resolved synchronously in the browser and never on the\n * server.\n *\n * The asymmetry with the React binding is deliberate and is the one worth\n * recording. React has `useSyncExternalStore`, which distinguishes a hydrating\n * render from a plain client one, so it can be right on the first paint of a\n * client-rendered page *and* free of hydration mismatches on a server-rendered\n * one. Angular exposes no equivalent, so the choice is between a flash on every\n * page and a mismatch on hydrated ones. This binding takes neither: it resolves\n * at once in the browser, which is right for the client-rendered application,\n * and an application that server-renders states `platform` through\n * `provideKbdDefaults` — at which point nothing is detected at all.\n *\n * A development-mode warning is what stops that requirement from being\n * discovered by a reader seeing `Ctrl` on their Mac.\n */\nexport function injectKbdPlatform(): (stated?: KbdPlatformInput) => KbdPlatform {\n const defaults = injectKbdDefaults();\n const browser = isPlatformBrowser(inject(PLATFORM_ID));\n\n if (!browser && defaults.platform === 'auto' && isDevMode()) {\n console.warn(\n '[slotted/kbd] The platform cannot be detected on the server, so every shortcut is ' +\n 'rendered for `other`. Call provideKbdDefaults({ platform }) to state it.',\n );\n }\n\n return (stated?: KbdPlatformInput) => {\n const requested = stated ?? defaults.platform;\n if (requested !== 'auto') return requested;\n return browser ? resolvePlatform('auto') : 'other';\n };\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport type { Signal } from '@angular/core';\n\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\n\n/**\n * What a combination hands to the keys inside it.\n *\n * Only what the combination was told is handed on: a key that states its own\n * size still wins, and a combination that states nothing hands on nothing, so\n * the provider's default is still what answers. Without this a page writing its\n * own keys inside a `Shortcut` would have to repeat four inputs on each of\n * them, and a key that forgot one would be painted differently from the\n * combination holding it.\n */\nexport interface SlShortcutAxesValue {\n platform: Signal<KbdPlatformInput | undefined>;\n size: Signal<KbdSize | undefined>;\n variant: Signal<KbdVariant | undefined>;\n disabled: Signal<boolean | undefined>;\n}\n\nconst SHORTCUT_AXES = new InjectionToken<SlShortcutAxesValue>('slotted kbd shortcut axes');\n\n/**\n * A namespace rather than a class, because there is nothing to instantiate: the\n * combination provides its own signals and a key reads them if it has a\n * combination to read.\n */\nexport const SlShortcutAxes = {\n token: SHORTCUT_AXES,\n injectOptional: (): SlShortcutAxesValue | null =>\n inject(SHORTCUT_AXES, { optional: true, skipSelf: false }),\n} as const;\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { keysMessages, type KeysMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { resolveKey } from '@slotted/core/keys';\n\nimport { injectKbdDefaults, injectKbdPlatform } from './kbd-defaults';\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\nimport { SlShortcutAxes } from './kbd-axes';\n\n/**\n * One key of a keyboard, drawn so a reader can find it on theirs.\n *\n * The directive is written on the consumer's own `<kbd>`, which is the element\n * the HTML Standard defines for exactly this and the reason this binding needs\n * no `render` prop: substituting the element is Angular's default.\n *\n * It is not a control: nothing here is focusable, nothing answers hover, and\n * nothing binds a shortcut. Registering one is the application's, because WCAG\n * 2.2 2.1.4 Character Key Shortcuts can only be answered by whoever knows\n * whether the shortcut can be turned off.\n */\n@Component({\n selector: 'kbd[slKbd]',\n standalone: true,\n exportAs: 'slKbd',\n /**\n * A named key wins over projected content, because it is the more specific of\n * two explicit instructions — and because content cannot be asked whether it\n * exists, so any rule that depended on the answer would be one only the React\n * binding could keep.\n *\n * Every space in this template is load-bearing: Angular collapses a newline\n * between two nodes into a space, and a space inside the legend would be a\n * space inside the key's word.\n */\n // prettier-ignore\n template: `<span data-part=\"legend\" [attr.aria-hidden]=\"key() ? true : null\" [attr.data-legend]=\"key()?.symbolic ? 'symbol' : null\">@if (key(); as resolved) {{{ resolved.legend }}} @else {<ng-content></ng-content>}</span>@if (key()?.name; as name) {<span data-part=\"name\">{{ name }}</span>}`,\n styleUrl: '../../../styles/src/kbd/kbd.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'kbd',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-key]': 'key()?.token ?? null',\n '[attr.data-platform]': 'keyName() ? resolvedPlatform() : null',\n '[attr.data-disabled]': 'resolvedDisabled() ? \"\" : null',\n },\n})\nexport class SlKbd {\n /**\n * A token from the vocabulary — `mod`, `meta`, `shift`, `escape`, `up` — or\n * any of its aliases. It resolves to the legend the reader's platform draws\n * and the word a screen reader hears in place of it.\n */\n readonly keyName = input<string | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `auto`. */\n readonly platform = input<KbdPlatformInput | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `md`. */\n readonly size = input<KbdSize | undefined>(undefined);\n /** Defaults to the combination, then to the provider, then to `raised`. */\n readonly variant = input<KbdVariant | undefined>(undefined);\n /**\n * Dims the key without claiming the item's semantics. `kbd` may carry only\n * the global ARIA attributes, and `aria-disabled` is not one of them, so the\n * row this key belongs to is what says it is unavailable.\n */\n readonly disabled = input(undefined, { transform: booleanAttribute });\n /**\n * Words laid over the `keys` catalog of the language in force, key by key:\n * `legends.*` for what a cap shows, `names.*` for what a reader hears.\n */\n readonly messages = input<PartialMessages<KeysMessages> | undefined>(undefined);\n\n private readonly defaults = injectKbdDefaults();\n private readonly platformOf = injectKbdPlatform();\n private readonly t = injectMessages(keysMessages, this.messages);\n /**\n * The combination this key sits in, when it sits in one. It is optional, so a\n * key written on its own works, and a key written by hand inside a `Shortcut`\n * is painted like the combination around it without repeating four inputs.\n */\n private readonly group = SlShortcutAxes.injectOptional();\n\n protected readonly resolvedPlatform = computed(() =>\n this.platformOf(this.platform() ?? this.group?.platform()),\n );\n protected readonly resolvedSize = computed(\n () => this.size() ?? this.group?.size() ?? this.defaults.size,\n );\n protected readonly resolvedVariant = computed(\n () => this.variant() ?? this.group?.variant() ?? this.defaults.variant,\n );\n protected readonly resolvedDisabled = computed(\n () => this.disabled() ?? this.group?.disabled() ?? false,\n );\n\n protected readonly key = computed(() => {\n const token = this.keyName();\n if (token === undefined || token === '') return undefined;\n return resolveKey(token, {\n platform: this.resolvedPlatform(),\n t: this.t,\n legends: this.defaults.legends,\n names: this.defaults.names,\n });\n });\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { keysMessages, type KeysMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { resolveShortcut } from '@slotted/core/keys';\n\nimport { SlShortcutAxes } from './kbd-axes';\nimport { injectKbdDefaults, injectKbdPlatform } from './kbd-defaults';\nimport type { KbdPlatformInput, KbdSize, KbdVariant } from './kbd-defaults';\n\n/**\n * A whole key combination, and the element the HTML Standard says it is:\n * “nesting a `kbd` element within another `kbd` element represents an actual key\n * or other unit of input as a portion of a larger input”. shadcn's `KbdGroup` is\n * a `div`, and Chakra and Radix put the whole combination inside one `kbd` as\n * text; this is the markup the specification describes.\n *\n * `keys` is written once and rendered for the reader's platform. The modifiers\n * are reordered into that platform's own convention — the Apple Style Guide\n * writes Fn, Control, Option, Shift, Command, and Microsoft writes the Windows\n * key ahead of Ctrl, Alt and Shift — so one authored string is right on both.\n * The escape hatch is composition rather than a fifth input: keys projected into\n * this element are rendered exactly as written.\n */\n@Component({\n selector: 'kbd[slShortcut]',\n standalone: true,\n exportAs: 'slShortcut',\n /**\n * The key markup is written here as well as in `SlKbd`, because a rendered key\n * has no token to hand back to that component — the combination resolved it\n * already, under its own `legends` and `names`. The two are held identical by\n * `kbd.spec.ts`, which renders the same key both ways and compares the DOM,\n * rather than by a shared helper that could only serve one of them.\n *\n * Every space is load-bearing: Angular collapses a newline between two nodes\n * into a space, and a space between two caps is a space the gap already owns.\n */\n // prettier-ignore\n template: `@if (resolved(); as shortcut) {@for (step of shortcut.steps; track $index) {@if (!$first) {<span data-part=\"separator\" data-separator=\"then\">{{ shortcut.thenLabel }}</span>}@for (key of step; track $index) {@if (!$first && shortcut.separator) {<span aria-hidden=\"true\" data-part=\"separator\" data-separator=\"plus\">{{ shortcut.separator }}</span>}<kbd data-ui=\"kbd\" data-part=\"root\" [attr.data-key]=\"key.token\" [attr.data-platform]=\"shortcut.platform\" [attr.data-size]=\"resolvedSize()\" [attr.data-variant]=\"resolvedVariant()\" [attr.data-disabled]=\"disabled() ? '' : null\"><span data-part=\"legend\" aria-hidden=\"true\" [attr.data-legend]=\"key.symbolic ? 'symbol' : null\">{{ key.legend }}</span>@if (key.name; as name) {<span data-part=\"name\">{{ name }}</span>}</kbd>}}} @else {<ng-content></ng-content>}`,\n styleUrl: '../../../styles/src/kbd/kbd.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: SlShortcutAxes.token,\n /* The decorator runs before the class binding exists. */\n useExisting: forwardRef(() => SlShortcut),\n },\n ],\n host: {\n 'data-ui': 'kbd',\n 'data-part': 'shortcut',\n '[attr.data-platform]': 'resolvedPlatform()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n /**\n * A combination with nothing in it is nothing, not an empty cap at the end\n * of a row announcing that a shortcut exists. The React binding returns\n * nothing; this directive is written on an element the consumer owns, so it\n * cannot un-write it, and `display: none` is the same outcome the platform\n * can give from here. The inline style is what beats the family's own\n * `display: inline-flex`, which the `hidden` attribute would lose to.\n */\n '[style.display]': 'empty() ? \"none\" : null',\n },\n})\nexport class SlShortcut {\n /**\n * The shortcut, written once: `+` joins keys pressed together and whitespace\n * joins the steps of a sequence.\n */\n readonly keys = input<string | undefined>(undefined);\n /** Defaults to the provider, then to `auto`. */\n readonly platform = input<KbdPlatformInput | undefined>(undefined);\n /** Defaults to the provider, then to `md`. */\n readonly size = input<KbdSize | undefined>(undefined);\n /** Defaults to the provider, then to `raised`. */\n readonly variant = input<KbdVariant | undefined>(undefined);\n readonly disabled = input(undefined, { transform: booleanAttribute });\n /** Between two simultaneous keys. Defaults to the provider, then to `+`. */\n readonly separator = input<string | undefined>(undefined);\n /**\n * Words laid over the `keys` catalog of the language in force, key by key:\n * `legends.*`, `names.*`, and `then` between two steps of a sequence.\n */\n readonly messages = input<PartialMessages<KeysMessages> | undefined>(undefined);\n /** Replaces what the eye sees, per key token. Defaults to the provider. */\n readonly legends = input<Readonly<Record<string, string>> | undefined>(undefined);\n /** Replaces what a reader hears, per key token. Defaults to the provider. */\n readonly names = input<Readonly<Record<string, string>> | undefined>(undefined);\n\n private readonly defaults = injectKbdDefaults();\n private readonly platformOf = injectKbdPlatform();\n private readonly t = injectMessages(keysMessages, this.messages);\n\n protected readonly resolvedPlatform = computed(() => this.platformOf(this.platform()));\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n\n protected readonly resolved = computed(() => {\n const keys = this.keys();\n if (keys === undefined) return undefined;\n return resolveShortcut(keys, {\n platform: this.resolvedPlatform(),\n t: this.t,\n legends: this.legends() ?? this.defaults.legends,\n names: this.names() ?? this.defaults.names,\n separator: this.separator() ?? this.defaults.separator,\n });\n });\n\n protected readonly empty = computed(() => this.resolved()?.steps.length === 0);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ const FALLBACK = {
39
39
  side: 'bottom',
40
40
  sideOffset: 0,
41
41
  size: 'md',
42
+ width: 'content',
42
43
  strategy: 'absolute',
43
44
  submenuCloseDelay: 300,
44
45
  submenuOpenDelay: 150,
@@ -130,6 +131,8 @@ class SlMenu {
130
131
  ...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
131
132
  size = input(undefined, /* @ts-ignore */
132
133
  ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
134
+ width = input(undefined, /* @ts-ignore */
135
+ ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
133
136
  mount = input(undefined, /* @ts-ignore */
134
137
  ...(ngDevMode ? [{ debugName: "mount" }] : /* istanbul ignore next */ []));
135
138
  strategy = input(undefined, /* @ts-ignore */
@@ -217,6 +220,9 @@ class SlMenu {
217
220
  ...(ngDevMode ? [{ debugName: "resolvedSide" }] : /* istanbul ignore next */ []));
218
221
  resolvedSize = computed(() => this.size() ?? (this.onBar ? this.bar?.size() : undefined) ?? this.defaults.size, /* @ts-ignore */
219
222
  ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
223
+ /* A submenu hangs from an item, and an item's width is not a measure. */
224
+ resolvedWidth = computed(() => this.parent === null ? (this.width() ?? this.defaults.width) : 'content', /* @ts-ignore */
225
+ ...(ngDevMode ? [{ debugName: "resolvedWidth" }] : /* istanbul ignore next */ []));
220
226
  resolvedDisabled = computed(() => (this.disabled() ?? this.defaults.disabled) ||
221
227
  (this.onBar && (this.bar?.disabled() ?? false)), /* @ts-ignore */
222
228
  ...(ngDevMode ? [{ debugName: "resolvedDisabled" }] : /* istanbul ignore next */ []));
@@ -534,13 +540,14 @@ class SlMenu {
534
540
  (order[index + step] ?? trigger).focus({ preventScroll: true });
535
541
  }
536
542
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlMenu, deps: [], target: i0.ɵɵFactoryTarget.Component });
537
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: SlMenu, isStandalone: true, selector: "sl-menu", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mount: { classPropertyName: "mount", publicName: "mount", isSignal: true, isRequired: false, transformFunction: null }, strategy: { classPropertyName: "strategy", publicName: "strategy", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null }, collisionPadding: { classPropertyName: "collisionPadding", publicName: "collisionPadding", isSignal: true, isRequired: false, transformFunction: null }, submenuOpenDelay: { classPropertyName: "submenuOpenDelay", publicName: "submenuOpenDelay", isSignal: true, isRequired: false, transformFunction: null }, submenuCloseDelay: { classPropertyName: "submenuCloseDelay", publicName: "submenuCloseDelay", isSignal: true, isRequired: false, transformFunction: null }, typeaheadTimeout: { classPropertyName: "typeaheadTimeout", publicName: "typeaheadTimeout", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null }, typeahead: { classPropertyName: "typeahead", publicName: "typeahead", isSignal: true, isRequired: false, transformFunction: null }, openOnHover: { classPropertyName: "openOnHover", publicName: "openOnHover", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsidePress: { classPropertyName: "closeOnOutsidePress", publicName: "closeOnOutsidePress", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, hideWhenDetached: { classPropertyName: "hideWhenDetached", publicName: "hideWhenDetached", isSignal: true, isRequired: false, transformFunction: null }, portal: { classPropertyName: "portal", publicName: "portal", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", openChangeRequest: "openChangeRequest" }, host: { styleAttribute: "display: none" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["layer"], descendants: true, isSignal: true }], exportAs: ["slMenu"], ngImport: i0, template: `
543
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: SlMenu, isStandalone: true, selector: "sl-menu", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mount: { classPropertyName: "mount", publicName: "mount", isSignal: true, isRequired: false, transformFunction: null }, strategy: { classPropertyName: "strategy", publicName: "strategy", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null }, collisionPadding: { classPropertyName: "collisionPadding", publicName: "collisionPadding", isSignal: true, isRequired: false, transformFunction: null }, submenuOpenDelay: { classPropertyName: "submenuOpenDelay", publicName: "submenuOpenDelay", isSignal: true, isRequired: false, transformFunction: null }, submenuCloseDelay: { classPropertyName: "submenuCloseDelay", publicName: "submenuCloseDelay", isSignal: true, isRequired: false, transformFunction: null }, typeaheadTimeout: { classPropertyName: "typeaheadTimeout", publicName: "typeaheadTimeout", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null }, typeahead: { classPropertyName: "typeahead", publicName: "typeahead", isSignal: true, isRequired: false, transformFunction: null }, openOnHover: { classPropertyName: "openOnHover", publicName: "openOnHover", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: "closeOnSelect", publicName: "closeOnSelect", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, closeOnOutsidePress: { classPropertyName: "closeOnOutsidePress", publicName: "closeOnOutsidePress", isSignal: true, isRequired: false, transformFunction: null }, flip: { classPropertyName: "flip", publicName: "flip", isSignal: true, isRequired: false, transformFunction: null }, shift: { classPropertyName: "shift", publicName: "shift", isSignal: true, isRequired: false, transformFunction: null }, hideWhenDetached: { classPropertyName: "hideWhenDetached", publicName: "hideWhenDetached", isSignal: true, isRequired: false, transformFunction: null }, portal: { classPropertyName: "portal", publicName: "portal", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", openChangeRequest: "openChangeRequest" }, host: { styleAttribute: "display: none" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["layer"], descendants: true, isSignal: true }], exportAs: ["slMenu"], ngImport: i0, template: `
538
544
  <ng-template #layer>
539
545
  <div
540
546
  data-ui="menu"
541
547
  data-part="root"
542
548
  [attr.data-align]="resolvedAlign()"
543
549
  [attr.data-size]="resolvedSize()"
550
+ [attr.data-width]="resolvedWidth()"
544
551
  [attr.data-open]="isOpen() ? '' : null"
545
552
  [attr.inert]="isOpen() ? null : ''"
546
553
  >
@@ -561,7 +568,7 @@ class SlMenu {
561
568
  </div>
562
569
  </div>
563
570
  </ng-template>
564
- `, isInline: true, styles: ["@layer slotted.components{[data-ui=menu]{--_gap: var(--slotted-menu-gap, var(--slotted-space-2, .25rem));--_surface: var(--slotted-menu-surface, var(--slotted-surface-raised, #ffffff));--_text: var(--slotted-menu-text, var(--slotted-text, #0f172a));--_muted: var(--slotted-menu-text-muted, var(--slotted-text-muted, #5b6b7f));--_border-color: var(--slotted-menu-border-color, var(--slotted-border-subtle, #e2e8f0));--_border-width: var(--slotted-border-width-thin, 1px);--_radius: var(--slotted-menu-radius, var(--slotted-radius-lg, 8px));--_shadow: var(--slotted-menu-shadow, var(--slotted-shadow-md));--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));--_highlight-active: var( --slotted-menu-highlight-active, var(--slotted-tone-secondary-subtle-active) );--_accent: var(--_text);--_inset-block: var(--slotted-menu-padding-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-menu-padding-inline, var(--slotted-space-2, .25rem));--_item-padding: var(--slotted-control-padding-inline-md, .8125rem);--_item-inset: calc(var(--_item-padding) - var(--_inset-inline));--_item-height: var(--slotted-control-height-md, 34px);--_item-radius: var(--slotted-menu-item-radius, var(--slotted-control-radius));--_font-size: var(--slotted-control-font-size-md, 13px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_column-gap: var(--slotted-control-gap-md, .5rem);--_leading: round(up, calc(var(--_font-size) * var(--slotted-line-height-md, 1.5)), 1px);--_secondary-leading: round( up, calc(var(--_secondary-font-size) * var(--slotted-line-height-sm, 1.45)), 1px );--_measure: var(--slotted-menu-measure, 16rem);--_min-measure: min( var(--slotted-menu-min-measure, 12rem), var(--slotted-positioner-available-width, 100vw) );position:absolute;inset-block-start:0;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));isolation:isolate;box-sizing:border-box;inline-size:max-content;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--_min-measure);padding-block:var(--_gap);padding-inline:0;pointer-events:none;opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=menu][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=menu][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=menu]:is([data-side=left],[data-side=right]){padding-block:0;padding-inline:var(--_gap)}[data-ui=menu][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=menu][data-open][data-positioned]{animation:slotted-menu-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=menu][data-open][data-positioned][data-side=top]{animation-name:slotted-menu-enter-up}[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-enter-from-start}[data-ui=menu][data-open][data-positioned][data-side=left]{animation-name:slotted-menu-enter-from-end}@keyframes slotted-menu-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-menu-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-menu-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-menu-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-menu-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=menu],[data-ui=menu][data-side=top],[data-ui=menu][data-side=left],[data-ui=menu][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-open][data-positioned],[data-ui=menu][data-open][data-positioned][data-side=top],[data-ui=menu][data-open][data-positioned][data-side=left],[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-fade}}[data-ui=menu][data-detached]{visibility:hidden}[data-ui=menu][data-size=sm]{--_item-padding: var(--slotted-control-padding-inline-sm, .625rem);--_item-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_secondary-font-size: var(--slotted-font-size-xs, .75rem);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_column-gap: var(--slotted-control-gap-sm, .375rem);--_measure: var(--slotted-menu-measure-sm, 14rem)}[data-ui=menu][data-size=lg]{--_item-padding: var(--slotted-control-padding-inline-lg, 1rem);--_item-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_column-gap: var(--slotted-control-gap-lg, .5rem);--_measure: var(--slotted-menu-measure-lg, 20rem)}[data-ui=menu]>[data-part=content]{background:var(--_surface);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_text);display:grid;font-family:var(--slotted-font-family-sans);font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr) auto auto;max-block-size:calc(var(--slotted-positioner-available-height, 100vh) - 2 * var(--_gap));outline:none;overflow-y:auto;overscroll-behavior:contain;padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);pointer-events:auto}[data-ui=menu]>[data-part=content]:focus-visible{outline:none}[data-ui=menu] [data-part=group]{display:grid;grid-column:1 / -1;grid-template-columns:subgrid}[data-ui=menu] [data-part=group-label]{color:var(--_muted);font-size:var(--_secondary-font-size);font-weight:var(--slotted-font-weight-semibold, 600);grid-column:1 / -1;line-height:var(--_secondary-leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]{align-items:center;column-gap:var(--slotted-space-5, .75rem);display:grid;grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);line-height:var(--_leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]>:not([data-part=label],[data-part=description]){grid-column:1;grid-row:1 / span 2}[data-ui=menu] [data-part=header]>[data-part=label]{font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui=menu] [data-part=item]{appearance:none;background:transparent;border:0;border-radius:var(--_item-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1 / -1;grid-template-columns:subgrid;align-content:center;line-height:var(--_leading);min-block-size:var(--_item-height);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset);row-gap:var(--slotted-space-1, .125rem);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard)),color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard))}[data-ui=menu] [data-part=item]:focus{background-color:var(--_highlight);color:var(--_accent)}[data-ui=menu] [data-part=item]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, currentColor);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px))}[data-ui=menu] [data-part=item]:not([data-disabled]):active{background-color:var(--_highlight-active)}[data-ui=menu] [data-part=item][data-open]{background-color:var(--_highlight)}[data-ui=menu] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, #64748b);cursor:not-allowed}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:var(--_highlight);color:var(--slotted-disabled-foreground, #64748b)}[data-ui=menu] :is([data-part=indicator],[data-part=icon]),[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{block-size:1lh}[data-ui=menu] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap);opacity:0;scale:.8;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),scale var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu] [data-part=item][data-checked]>[data-part=indicator]{opacity:1;scale:1;transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter),scale var(--slotted-duration-short) var(--slotted-easing-enter)}[data-ui=menu] [data-part=item][role=menuitemradio]>[data-part=indicator]{--slotted-icon-size: calc(var(--_icon-size) * .7)}[data-ui=menu] [data-part=icon]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap)}[data-ui=menu] [data-part=icon]>*{font-size:var(--_icon-size)}[data-ui=menu] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=description]{color:var(--_muted);font-size:var(--_secondary-font-size);grid-column:2;grid-row:2;line-height:var(--_secondary-leading);min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=item][data-disabled]>[data-part=description]{color:inherit}[data-ui=menu] [data-part=meta]{align-items:center;color:var(--_muted);column-gap:var(--slotted-space-2, .25rem);display:flex;font-variant-numeric:tabular-nums;grid-column:3;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=shortcut]{color:var(--_muted);grid-column:4;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=item][data-disabled]>:is([data-part=shortcut],[data-part=meta]),[data-ui=menu] [data-part=item][data-disabled][aria-haspopup=menu]>[data-ui=icon]{color:inherit}[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{--slotted-icon-size: var(--_icon-size);grid-column:4;grid-row:1;justify-self:end;line-height:inherit;margin-inline-start:var(--_column-gap);color:var(--_muted)}[data-ui=menu] [data-part=separator]{background-color:var(--slotted-menu-separator-color, var(--_border-color));block-size:var(--_border-width);border:0;grid-column:1 / -1;margin-block:var(--slotted-space-2, .25rem);margin-inline:0}[data-ui=menu] [data-part=empty]{color:var(--_muted);grid-column:1 / -1;padding-block:var(--slotted-space-5, .75rem);padding-inline:var(--_item-inset);text-align:center}[data-ui=menu]>[data-part=content][data-loading]{cursor:progress}[data-ui=menu] [data-part=item][data-tone=accent]{--_accent: var(--slotted-tone-accent-text);--_highlight: var(--slotted-tone-accent-surface);--_highlight-active: var(--slotted-tone-accent-subtle-active);color:var(--slotted-tone-accent-text)}[data-ui=menu] [data-part=item][data-tone=secondary]{--_accent: var(--slotted-tone-secondary-text);--_highlight: var(--slotted-tone-secondary-surface);--_highlight-active: var(--slotted-tone-secondary-subtle-active);color:var(--slotted-tone-secondary-text)}[data-ui=menu] [data-part=item][data-tone=success]{--_accent: var(--slotted-tone-success-text);--_highlight: var(--slotted-tone-success-surface);--_highlight-active: var(--slotted-tone-success-subtle-active);color:var(--slotted-tone-success-text)}[data-ui=menu] [data-part=item][data-tone=warning]{--_accent: var(--slotted-tone-warning-text);--_highlight: var(--slotted-tone-warning-surface);--_highlight-active: var(--slotted-tone-warning-subtle-active);color:var(--slotted-tone-warning-text)}[data-ui=menu] [data-part=item][data-tone=danger]{--_accent: var(--slotted-tone-danger-text);--_highlight: var(--slotted-tone-danger-surface);--_highlight-active: var(--slotted-tone-danger-subtle-active);color:var(--slotted-tone-danger-text)}[data-ui=menu] [data-part=item][data-tone][data-disabled]{--_accent: var(--slotted-disabled-foreground, #64748b);--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));color:var(--slotted-disabled-foreground, #64748b)}@media(forced-colors:active){[data-ui=menu] [data-part=item]:focus{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:Highlight;color:GrayText}}}\n", "@layer slotted.components{[data-ui=highlight] [data-part=match]{background-color:var( --slotted-highlight-background, color-mix( in oklab, var(--slotted-tone-accent-text) calc(var(--slotted-highlight-tint-opacity, .075) * 100%), transparent ) );-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:var(--slotted-radius-none, 0px);color:var(--slotted-highlight-color, var(--slotted-tone-accent-text));font-weight:inherit;letter-spacing:inherit;padding:0;text-decoration-color:var(--slotted-highlight-rule-color, var(--slotted-tone-accent-border));text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thin, 1px);text-underline-offset:var(--slotted-space-1, .125rem)}[data-ui=highlight] [data-part=match][data-current]{background-color:var(--slotted-highlight-current-background, var(--slotted-tone-accent-solid));color:var(--slotted-highlight-current-color, var(--slotted-tone-accent-on-solid));text-decoration-line:none}[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:var(--slotted-highlight-disabled-background, transparent);color:inherit;text-decoration-line:underline}@media(forced-colors:active){[data-ui=highlight] [data-part=match],[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:Mark;color:MarkText;forced-color-adjust:none}[data-ui=highlight] [data-part=match][data-current]{background-color:Highlight;color:HighlightText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
571
+ `, isInline: true, styles: ["@layer slotted.components{[data-ui=menu]{--_gap: var(--slotted-menu-gap, var(--slotted-space-2, .25rem));--_surface: var(--slotted-menu-surface, var(--slotted-surface-raised, #ffffff));--_text: var(--slotted-menu-text, var(--slotted-text, #0f172a));--_muted: var(--slotted-menu-text-muted, var(--slotted-text-muted, #5b6b7f));--_border-color: var(--slotted-menu-border-color, var(--slotted-border-subtle, #e2e8f0));--_border-width: var(--slotted-border-width-thin, 1px);--_radius: var(--slotted-menu-radius, var(--slotted-radius-lg, 8px));--_shadow: var(--slotted-menu-shadow, var(--slotted-shadow-md));--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));--_highlight-active: var( --slotted-menu-highlight-active, var(--slotted-tone-secondary-subtle-active) );--_accent: var(--_text);--_inset-block: var(--slotted-menu-padding-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-menu-padding-inline, var(--slotted-space-2, .25rem));--_item-padding: var(--slotted-control-padding-inline-md, .8125rem);--_item-inset: calc(var(--_item-padding) - var(--_inset-inline));--_item-height: var(--slotted-control-height-md, 34px);--_item-radius: var(--slotted-menu-item-radius, var(--slotted-control-radius));--_font-size: var(--slotted-control-font-size-md, 13px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_column-gap: var(--slotted-control-gap-md, .5rem);--_leading: round(up, calc(var(--_font-size) * var(--slotted-line-height-md, 1.5)), 1px);--_secondary-leading: round( up, calc(var(--_secondary-font-size) * var(--slotted-line-height-sm, 1.45)), 1px );--_measure: var(--slotted-menu-measure, 16rem);--_min-measure: min( var(--slotted-menu-min-measure, 12rem), var(--slotted-positioner-available-width, 100vw) );position:absolute;inset-block-start:0;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));isolation:isolate;box-sizing:border-box;inline-size:max-content;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--_min-measure);padding-block:var(--_gap);padding-inline:0;pointer-events:none;opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=menu][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=menu][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=menu]:is([data-side=left],[data-side=right]){padding-block:0;padding-inline:var(--_gap)}[data-ui=menu][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=menu][data-open][data-positioned]{animation:slotted-menu-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=menu][data-open][data-positioned][data-side=top]{animation-name:slotted-menu-enter-up}[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-enter-from-start}[data-ui=menu][data-open][data-positioned][data-side=left]{animation-name:slotted-menu-enter-from-end}@keyframes slotted-menu-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-menu-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-menu-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-menu-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-menu-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=menu],[data-ui=menu][data-side=top],[data-ui=menu][data-side=left],[data-ui=menu][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-open][data-positioned],[data-ui=menu][data-open][data-positioned][data-side=top],[data-ui=menu][data-open][data-positioned][data-side=left],[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-fade}}[data-ui=menu][data-detached]{visibility:hidden}[data-ui=menu][data-width=anchor]{max-inline-size:var(--slotted-positioner-available-width, 100vw);min-inline-size:0}[data-ui=menu][data-width=anchor]>[data-part=content]{inline-size:var(--slotted-positioner-anchor-width, auto);max-inline-size:var(--slotted-positioner-available-width, 100vw);min-inline-size:min(var(--slotted-positioner-anchor-width, 0px),var(--slotted-positioner-available-width, 100vw))}[data-ui=menu][data-size=sm]{--_item-padding: var(--slotted-control-padding-inline-sm, .625rem);--_item-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_secondary-font-size: var(--slotted-font-size-xs, .75rem);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_column-gap: var(--slotted-control-gap-sm, .375rem);--_measure: var(--slotted-menu-measure-sm, 14rem)}[data-ui=menu][data-size=lg]{--_item-padding: var(--slotted-control-padding-inline-lg, 1rem);--_item-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_column-gap: var(--slotted-control-gap-lg, .5rem);--_measure: var(--slotted-menu-measure-lg, 20rem)}[data-ui=menu]>[data-part=content]{background:var(--_surface);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_text);display:grid;font-family:var(--slotted-font-family-sans);font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr) auto auto;max-block-size:calc(var(--slotted-positioner-available-height, 100vh) - 2 * var(--_gap));outline:none;overflow-y:auto;overscroll-behavior:contain;padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);pointer-events:auto}[data-ui=menu]>[data-part=content]:focus-visible{outline:none}[data-ui=menu] [data-part=group]{display:grid;grid-column:1 / -1;grid-template-columns:subgrid}[data-ui=menu] [data-part=group-label]{color:var(--_muted);font-size:var(--_secondary-font-size);font-weight:var(--slotted-font-weight-semibold, 600);grid-column:1 / -1;line-height:var(--_secondary-leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]{align-items:center;column-gap:var(--slotted-space-5, .75rem);display:grid;grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);line-height:var(--_leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]>:not([data-part=label],[data-part=description]){grid-column:1;grid-row:1 / span 2}[data-ui=menu] [data-part=header]>[data-part=label]{font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui=menu] [data-part=item]{appearance:none;background:transparent;border:0;border-radius:var(--_item-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1 / -1;grid-template-columns:subgrid;align-content:center;line-height:var(--_leading);min-block-size:var(--_item-height);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset);row-gap:var(--slotted-space-1, .125rem);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard)),color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard))}[data-ui=menu] [data-part=item]:focus{background-color:var(--_highlight);color:var(--_accent)}[data-ui=menu] [data-part=item]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, currentColor);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px))}[data-ui=menu] [data-part=item]:not([data-disabled]):active{background-color:var(--_highlight-active)}[data-ui=menu] [data-part=item][data-open]{background-color:var(--_highlight)}[data-ui=menu] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, #64748b);cursor:not-allowed}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:var(--_highlight);color:var(--slotted-disabled-foreground, #64748b)}[data-ui=menu] :is([data-part=indicator],[data-part=icon]),[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{block-size:1lh}[data-ui=menu] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap);opacity:0;scale:.8;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),scale var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu] [data-part=item][data-checked]>[data-part=indicator]{opacity:1;scale:1;transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter),scale var(--slotted-duration-short) var(--slotted-easing-enter)}[data-ui=menu] [data-part=item][role=menuitemradio]>[data-part=indicator]{--slotted-icon-size: calc(var(--_icon-size) * .7)}[data-ui=menu] [data-part=icon]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap)}[data-ui=menu] [data-part=icon]>*{font-size:var(--_icon-size)}[data-ui=menu] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=description]{color:var(--_muted);font-size:var(--_secondary-font-size);grid-column:2;grid-row:2;line-height:var(--_secondary-leading);min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=item][data-disabled]>[data-part=description]{color:inherit}[data-ui=menu] [data-part=meta]{align-items:center;color:var(--_muted);column-gap:var(--slotted-space-2, .25rem);display:flex;font-variant-numeric:tabular-nums;grid-column:3;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=shortcut]{color:var(--_muted);grid-column:4;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=item][data-disabled]>:is([data-part=shortcut],[data-part=meta]),[data-ui=menu] [data-part=item][data-disabled][aria-haspopup=menu]>[data-ui=icon]{color:inherit}[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{--slotted-icon-size: var(--_icon-size);grid-column:4;grid-row:1;justify-self:end;line-height:inherit;margin-inline-start:var(--_column-gap);color:var(--_muted)}[data-ui=menu] [data-part=separator]{background-color:var(--slotted-menu-separator-color, var(--_border-color));block-size:var(--_border-width);border:0;grid-column:1 / -1;margin-block:var(--slotted-space-2, .25rem);margin-inline:0}[data-ui=menu] [data-part=empty]{color:var(--_muted);grid-column:1 / -1;padding-block:var(--slotted-space-5, .75rem);padding-inline:var(--_item-inset);text-align:center}[data-ui=menu]>[data-part=content][data-loading]{cursor:progress}[data-ui=menu] [data-part=item][data-tone=accent]{--_accent: var(--slotted-tone-accent-text);--_highlight: var(--slotted-tone-accent-surface);--_highlight-active: var(--slotted-tone-accent-subtle-active);color:var(--slotted-tone-accent-text)}[data-ui=menu] [data-part=item][data-tone=secondary]{--_accent: var(--slotted-tone-secondary-text);--_highlight: var(--slotted-tone-secondary-surface);--_highlight-active: var(--slotted-tone-secondary-subtle-active);color:var(--slotted-tone-secondary-text)}[data-ui=menu] [data-part=item][data-tone=success]{--_accent: var(--slotted-tone-success-text);--_highlight: var(--slotted-tone-success-surface);--_highlight-active: var(--slotted-tone-success-subtle-active);color:var(--slotted-tone-success-text)}[data-ui=menu] [data-part=item][data-tone=warning]{--_accent: var(--slotted-tone-warning-text);--_highlight: var(--slotted-tone-warning-surface);--_highlight-active: var(--slotted-tone-warning-subtle-active);color:var(--slotted-tone-warning-text)}[data-ui=menu] [data-part=item][data-tone=danger]{--_accent: var(--slotted-tone-danger-text);--_highlight: var(--slotted-tone-danger-surface);--_highlight-active: var(--slotted-tone-danger-subtle-active);color:var(--slotted-tone-danger-text)}[data-ui=menu] [data-part=item][data-tone][data-disabled]{--_accent: var(--slotted-disabled-foreground, #64748b);--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));color:var(--slotted-disabled-foreground, #64748b)}@media(forced-colors:active){[data-ui=menu] [data-part=item]:focus{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:Highlight;color:GrayText}}}\n", "@layer slotted.components{[data-ui=highlight] [data-part=match]{background-color:var( --slotted-highlight-background, color-mix( in oklab, var(--slotted-tone-accent-text) calc(var(--slotted-highlight-tint-opacity, .075) * 100%), transparent ) );-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:var(--slotted-radius-none, 0px);color:var(--slotted-highlight-color, var(--slotted-tone-accent-text));font-weight:inherit;letter-spacing:inherit;padding:0;text-decoration-color:var(--slotted-highlight-rule-color, var(--slotted-tone-accent-border));text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thin, 1px);text-underline-offset:var(--slotted-space-1, .125rem)}[data-ui=highlight] [data-part=match][data-current]{background-color:var(--slotted-highlight-current-background, var(--slotted-tone-accent-solid));color:var(--slotted-highlight-current-color, var(--slotted-tone-accent-on-solid));text-decoration-line:none}[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:var(--slotted-highlight-disabled-background, transparent);color:inherit;text-decoration-line:underline}@media(forced-colors:active){[data-ui=highlight] [data-part=match],[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:Mark;color:MarkText;forced-color-adjust:none}[data-ui=highlight] [data-part=match][data-current]{background-color:Highlight;color:HighlightText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
565
572
  }
566
573
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlMenu, decorators: [{
567
574
  type: Component,
@@ -572,6 +579,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
572
579
  data-part="root"
573
580
  [attr.data-align]="resolvedAlign()"
574
581
  [attr.data-size]="resolvedSize()"
582
+ [attr.data-width]="resolvedWidth()"
575
583
  [attr.data-open]="isOpen() ? '' : null"
576
584
  [attr.inert]="isOpen() ? null : ''"
577
585
  >
@@ -592,8 +600,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
592
600
  </div>
593
601
  </div>
594
602
  </ng-template>
595
- `, styles: ["@layer slotted.components{[data-ui=menu]{--_gap: var(--slotted-menu-gap, var(--slotted-space-2, .25rem));--_surface: var(--slotted-menu-surface, var(--slotted-surface-raised, #ffffff));--_text: var(--slotted-menu-text, var(--slotted-text, #0f172a));--_muted: var(--slotted-menu-text-muted, var(--slotted-text-muted, #5b6b7f));--_border-color: var(--slotted-menu-border-color, var(--slotted-border-subtle, #e2e8f0));--_border-width: var(--slotted-border-width-thin, 1px);--_radius: var(--slotted-menu-radius, var(--slotted-radius-lg, 8px));--_shadow: var(--slotted-menu-shadow, var(--slotted-shadow-md));--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));--_highlight-active: var( --slotted-menu-highlight-active, var(--slotted-tone-secondary-subtle-active) );--_accent: var(--_text);--_inset-block: var(--slotted-menu-padding-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-menu-padding-inline, var(--slotted-space-2, .25rem));--_item-padding: var(--slotted-control-padding-inline-md, .8125rem);--_item-inset: calc(var(--_item-padding) - var(--_inset-inline));--_item-height: var(--slotted-control-height-md, 34px);--_item-radius: var(--slotted-menu-item-radius, var(--slotted-control-radius));--_font-size: var(--slotted-control-font-size-md, 13px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_column-gap: var(--slotted-control-gap-md, .5rem);--_leading: round(up, calc(var(--_font-size) * var(--slotted-line-height-md, 1.5)), 1px);--_secondary-leading: round( up, calc(var(--_secondary-font-size) * var(--slotted-line-height-sm, 1.45)), 1px );--_measure: var(--slotted-menu-measure, 16rem);--_min-measure: min( var(--slotted-menu-min-measure, 12rem), var(--slotted-positioner-available-width, 100vw) );position:absolute;inset-block-start:0;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));isolation:isolate;box-sizing:border-box;inline-size:max-content;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--_min-measure);padding-block:var(--_gap);padding-inline:0;pointer-events:none;opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=menu][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=menu][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=menu]:is([data-side=left],[data-side=right]){padding-block:0;padding-inline:var(--_gap)}[data-ui=menu][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=menu][data-open][data-positioned]{animation:slotted-menu-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=menu][data-open][data-positioned][data-side=top]{animation-name:slotted-menu-enter-up}[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-enter-from-start}[data-ui=menu][data-open][data-positioned][data-side=left]{animation-name:slotted-menu-enter-from-end}@keyframes slotted-menu-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-menu-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-menu-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-menu-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-menu-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=menu],[data-ui=menu][data-side=top],[data-ui=menu][data-side=left],[data-ui=menu][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-open][data-positioned],[data-ui=menu][data-open][data-positioned][data-side=top],[data-ui=menu][data-open][data-positioned][data-side=left],[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-fade}}[data-ui=menu][data-detached]{visibility:hidden}[data-ui=menu][data-size=sm]{--_item-padding: var(--slotted-control-padding-inline-sm, .625rem);--_item-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_secondary-font-size: var(--slotted-font-size-xs, .75rem);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_column-gap: var(--slotted-control-gap-sm, .375rem);--_measure: var(--slotted-menu-measure-sm, 14rem)}[data-ui=menu][data-size=lg]{--_item-padding: var(--slotted-control-padding-inline-lg, 1rem);--_item-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_column-gap: var(--slotted-control-gap-lg, .5rem);--_measure: var(--slotted-menu-measure-lg, 20rem)}[data-ui=menu]>[data-part=content]{background:var(--_surface);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_text);display:grid;font-family:var(--slotted-font-family-sans);font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr) auto auto;max-block-size:calc(var(--slotted-positioner-available-height, 100vh) - 2 * var(--_gap));outline:none;overflow-y:auto;overscroll-behavior:contain;padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);pointer-events:auto}[data-ui=menu]>[data-part=content]:focus-visible{outline:none}[data-ui=menu] [data-part=group]{display:grid;grid-column:1 / -1;grid-template-columns:subgrid}[data-ui=menu] [data-part=group-label]{color:var(--_muted);font-size:var(--_secondary-font-size);font-weight:var(--slotted-font-weight-semibold, 600);grid-column:1 / -1;line-height:var(--_secondary-leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]{align-items:center;column-gap:var(--slotted-space-5, .75rem);display:grid;grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);line-height:var(--_leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]>:not([data-part=label],[data-part=description]){grid-column:1;grid-row:1 / span 2}[data-ui=menu] [data-part=header]>[data-part=label]{font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui=menu] [data-part=item]{appearance:none;background:transparent;border:0;border-radius:var(--_item-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1 / -1;grid-template-columns:subgrid;align-content:center;line-height:var(--_leading);min-block-size:var(--_item-height);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset);row-gap:var(--slotted-space-1, .125rem);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard)),color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard))}[data-ui=menu] [data-part=item]:focus{background-color:var(--_highlight);color:var(--_accent)}[data-ui=menu] [data-part=item]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, currentColor);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px))}[data-ui=menu] [data-part=item]:not([data-disabled]):active{background-color:var(--_highlight-active)}[data-ui=menu] [data-part=item][data-open]{background-color:var(--_highlight)}[data-ui=menu] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, #64748b);cursor:not-allowed}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:var(--_highlight);color:var(--slotted-disabled-foreground, #64748b)}[data-ui=menu] :is([data-part=indicator],[data-part=icon]),[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{block-size:1lh}[data-ui=menu] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap);opacity:0;scale:.8;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),scale var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu] [data-part=item][data-checked]>[data-part=indicator]{opacity:1;scale:1;transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter),scale var(--slotted-duration-short) var(--slotted-easing-enter)}[data-ui=menu] [data-part=item][role=menuitemradio]>[data-part=indicator]{--slotted-icon-size: calc(var(--_icon-size) * .7)}[data-ui=menu] [data-part=icon]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap)}[data-ui=menu] [data-part=icon]>*{font-size:var(--_icon-size)}[data-ui=menu] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=description]{color:var(--_muted);font-size:var(--_secondary-font-size);grid-column:2;grid-row:2;line-height:var(--_secondary-leading);min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=item][data-disabled]>[data-part=description]{color:inherit}[data-ui=menu] [data-part=meta]{align-items:center;color:var(--_muted);column-gap:var(--slotted-space-2, .25rem);display:flex;font-variant-numeric:tabular-nums;grid-column:3;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=shortcut]{color:var(--_muted);grid-column:4;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=item][data-disabled]>:is([data-part=shortcut],[data-part=meta]),[data-ui=menu] [data-part=item][data-disabled][aria-haspopup=menu]>[data-ui=icon]{color:inherit}[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{--slotted-icon-size: var(--_icon-size);grid-column:4;grid-row:1;justify-self:end;line-height:inherit;margin-inline-start:var(--_column-gap);color:var(--_muted)}[data-ui=menu] [data-part=separator]{background-color:var(--slotted-menu-separator-color, var(--_border-color));block-size:var(--_border-width);border:0;grid-column:1 / -1;margin-block:var(--slotted-space-2, .25rem);margin-inline:0}[data-ui=menu] [data-part=empty]{color:var(--_muted);grid-column:1 / -1;padding-block:var(--slotted-space-5, .75rem);padding-inline:var(--_item-inset);text-align:center}[data-ui=menu]>[data-part=content][data-loading]{cursor:progress}[data-ui=menu] [data-part=item][data-tone=accent]{--_accent: var(--slotted-tone-accent-text);--_highlight: var(--slotted-tone-accent-surface);--_highlight-active: var(--slotted-tone-accent-subtle-active);color:var(--slotted-tone-accent-text)}[data-ui=menu] [data-part=item][data-tone=secondary]{--_accent: var(--slotted-tone-secondary-text);--_highlight: var(--slotted-tone-secondary-surface);--_highlight-active: var(--slotted-tone-secondary-subtle-active);color:var(--slotted-tone-secondary-text)}[data-ui=menu] [data-part=item][data-tone=success]{--_accent: var(--slotted-tone-success-text);--_highlight: var(--slotted-tone-success-surface);--_highlight-active: var(--slotted-tone-success-subtle-active);color:var(--slotted-tone-success-text)}[data-ui=menu] [data-part=item][data-tone=warning]{--_accent: var(--slotted-tone-warning-text);--_highlight: var(--slotted-tone-warning-surface);--_highlight-active: var(--slotted-tone-warning-subtle-active);color:var(--slotted-tone-warning-text)}[data-ui=menu] [data-part=item][data-tone=danger]{--_accent: var(--slotted-tone-danger-text);--_highlight: var(--slotted-tone-danger-surface);--_highlight-active: var(--slotted-tone-danger-subtle-active);color:var(--slotted-tone-danger-text)}[data-ui=menu] [data-part=item][data-tone][data-disabled]{--_accent: var(--slotted-disabled-foreground, #64748b);--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));color:var(--slotted-disabled-foreground, #64748b)}@media(forced-colors:active){[data-ui=menu] [data-part=item]:focus{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:Highlight;color:GrayText}}}\n", "@layer slotted.components{[data-ui=highlight] [data-part=match]{background-color:var( --slotted-highlight-background, color-mix( in oklab, var(--slotted-tone-accent-text) calc(var(--slotted-highlight-tint-opacity, .075) * 100%), transparent ) );-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:var(--slotted-radius-none, 0px);color:var(--slotted-highlight-color, var(--slotted-tone-accent-text));font-weight:inherit;letter-spacing:inherit;padding:0;text-decoration-color:var(--slotted-highlight-rule-color, var(--slotted-tone-accent-border));text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thin, 1px);text-underline-offset:var(--slotted-space-1, .125rem)}[data-ui=highlight] [data-part=match][data-current]{background-color:var(--slotted-highlight-current-background, var(--slotted-tone-accent-solid));color:var(--slotted-highlight-current-color, var(--slotted-tone-accent-on-solid));text-decoration-line:none}[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:var(--slotted-highlight-disabled-background, transparent);color:inherit;text-decoration-line:underline}@media(forced-colors:active){[data-ui=highlight] [data-part=match],[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:Mark;color:MarkText;forced-color-adjust:none}[data-ui=highlight] [data-part=match][data-current]{background-color:Highlight;color:HighlightText}}}\n"] }]
596
- }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], openChangeRequest: [{ type: i0.Output, args: ["openChangeRequest"] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], mount: [{ type: i0.Input, args: [{ isSignal: true, alias: "mount", required: false }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }], sideOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideOffset", required: false }] }], alignOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignOffset", required: false }] }], collisionPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "collisionPadding", required: false }] }], submenuOpenDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "submenuOpenDelay", required: false }] }], submenuCloseDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "submenuCloseDelay", required: false }] }], typeaheadTimeout: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadTimeout", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loop: [{ type: i0.Input, args: [{ isSignal: true, alias: "loop", required: false }] }], typeahead: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeahead", required: false }] }], openOnHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "openOnHover", required: false }] }], closeOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnSelect", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnOutsidePress: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsidePress", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "flip", required: false }] }], shift: [{ type: i0.Input, args: [{ isSignal: true, alias: "shift", required: false }] }], hideWhenDetached: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideWhenDetached", required: false }] }], portal: [{ type: i0.Input, args: [{ isSignal: true, alias: "portal", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], template: [{ type: i0.ViewChild, args: ['layer', { isSignal: true }] }] } });
603
+ `, styles: ["@layer slotted.components{[data-ui=menu]{--_gap: var(--slotted-menu-gap, var(--slotted-space-2, .25rem));--_surface: var(--slotted-menu-surface, var(--slotted-surface-raised, #ffffff));--_text: var(--slotted-menu-text, var(--slotted-text, #0f172a));--_muted: var(--slotted-menu-text-muted, var(--slotted-text-muted, #5b6b7f));--_border-color: var(--slotted-menu-border-color, var(--slotted-border-subtle, #e2e8f0));--_border-width: var(--slotted-border-width-thin, 1px);--_radius: var(--slotted-menu-radius, var(--slotted-radius-lg, 8px));--_shadow: var(--slotted-menu-shadow, var(--slotted-shadow-md));--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));--_highlight-active: var( --slotted-menu-highlight-active, var(--slotted-tone-secondary-subtle-active) );--_accent: var(--_text);--_inset-block: var(--slotted-menu-padding-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-menu-padding-inline, var(--slotted-space-2, .25rem));--_item-padding: var(--slotted-control-padding-inline-md, .8125rem);--_item-inset: calc(var(--_item-padding) - var(--_inset-inline));--_item-height: var(--slotted-control-height-md, 34px);--_item-radius: var(--slotted-menu-item-radius, var(--slotted-control-radius));--_font-size: var(--slotted-control-font-size-md, 13px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_column-gap: var(--slotted-control-gap-md, .5rem);--_leading: round(up, calc(var(--_font-size) * var(--slotted-line-height-md, 1.5)), 1px);--_secondary-leading: round( up, calc(var(--_secondary-font-size) * var(--slotted-line-height-sm, 1.45)), 1px );--_measure: var(--slotted-menu-measure, 16rem);--_min-measure: min( var(--slotted-menu-min-measure, 12rem), var(--slotted-positioner-available-width, 100vw) );position:absolute;inset-block-start:0;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));isolation:isolate;box-sizing:border-box;inline-size:max-content;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--_min-measure);padding-block:var(--_gap);padding-inline:0;pointer-events:none;opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=menu][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=menu][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=menu]:is([data-side=left],[data-side=right]){padding-block:0;padding-inline:var(--_gap)}[data-ui=menu][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=menu][data-open][data-positioned]{animation:slotted-menu-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=menu][data-open][data-positioned][data-side=top]{animation-name:slotted-menu-enter-up}[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-enter-from-start}[data-ui=menu][data-open][data-positioned][data-side=left]{animation-name:slotted-menu-enter-from-end}@keyframes slotted-menu-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-menu-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-menu-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-menu-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-menu-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=menu],[data-ui=menu][data-side=top],[data-ui=menu][data-side=left],[data-ui=menu][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu][data-open][data-positioned],[data-ui=menu][data-open][data-positioned][data-side=top],[data-ui=menu][data-open][data-positioned][data-side=left],[data-ui=menu][data-open][data-positioned][data-side=right]{animation-name:slotted-menu-fade}}[data-ui=menu][data-detached]{visibility:hidden}[data-ui=menu][data-width=anchor]{max-inline-size:var(--slotted-positioner-available-width, 100vw);min-inline-size:0}[data-ui=menu][data-width=anchor]>[data-part=content]{inline-size:var(--slotted-positioner-anchor-width, auto);max-inline-size:var(--slotted-positioner-available-width, 100vw);min-inline-size:min(var(--slotted-positioner-anchor-width, 0px),var(--slotted-positioner-available-width, 100vw))}[data-ui=menu][data-size=sm]{--_item-padding: var(--slotted-control-padding-inline-sm, .625rem);--_item-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_secondary-font-size: var(--slotted-font-size-xs, .75rem);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_column-gap: var(--slotted-control-gap-sm, .375rem);--_measure: var(--slotted-menu-measure-sm, 14rem)}[data-ui=menu][data-size=lg]{--_item-padding: var(--slotted-control-padding-inline-lg, 1rem);--_item-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_secondary-font-size: var(--slotted-control-font-size-sm, 12px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_column-gap: var(--slotted-control-gap-lg, .5rem);--_measure: var(--slotted-menu-measure-lg, 20rem)}[data-ui=menu]>[data-part=content]{background:var(--_surface);border:var(--_border-width) solid var(--_border-color);border-radius:var(--_radius);box-shadow:var(--_shadow);box-sizing:border-box;color:var(--_text);display:grid;font-family:var(--slotted-font-family-sans);font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr) auto auto;max-block-size:calc(var(--slotted-positioner-available-height, 100vh) - 2 * var(--_gap));outline:none;overflow-y:auto;overscroll-behavior:contain;padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);pointer-events:auto}[data-ui=menu]>[data-part=content]:focus-visible{outline:none}[data-ui=menu] [data-part=group]{display:grid;grid-column:1 / -1;grid-template-columns:subgrid}[data-ui=menu] [data-part=group-label]{color:var(--_muted);font-size:var(--_secondary-font-size);font-weight:var(--slotted-font-weight-semibold, 600);grid-column:1 / -1;line-height:var(--_secondary-leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]{align-items:center;column-gap:var(--slotted-space-5, .75rem);display:grid;grid-column:1 / -1;grid-template-columns:auto minmax(0,1fr);line-height:var(--_leading);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset)}[data-ui=menu] [data-part=header]>:not([data-part=label],[data-part=description]){grid-column:1;grid-row:1 / span 2}[data-ui=menu] [data-part=header]>[data-part=label]{font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui=menu] [data-part=item]{appearance:none;background:transparent;border:0;border-radius:var(--_item-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1 / -1;grid-template-columns:subgrid;align-content:center;line-height:var(--_leading);min-block-size:var(--_item-height);padding-block:var(--slotted-space-2, .25rem);padding-inline:var(--_item-inset);row-gap:var(--slotted-space-1, .125rem);text-align:start;text-decoration:none;transition:background-color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard)),color var(--slotted-control-transition-duration, var(--slotted-duration-short)) var(--slotted-control-transition-easing, var(--slotted-easing-standard))}[data-ui=menu] [data-part=item]:focus{background-color:var(--_highlight);color:var(--_accent)}[data-ui=menu] [data-part=item]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, currentColor);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px))}[data-ui=menu] [data-part=item]:not([data-disabled]):active{background-color:var(--_highlight-active)}[data-ui=menu] [data-part=item][data-open]{background-color:var(--_highlight)}[data-ui=menu] [data-part=item][data-disabled]{color:var(--slotted-disabled-foreground, #64748b);cursor:not-allowed}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:var(--_highlight);color:var(--slotted-disabled-foreground, #64748b)}[data-ui=menu] :is([data-part=indicator],[data-part=icon]),[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{block-size:1lh}[data-ui=menu] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap);opacity:0;scale:.8;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),scale var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=menu] [data-part=item][data-checked]>[data-part=indicator]{opacity:1;scale:1;transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter),scale var(--slotted-duration-short) var(--slotted-easing-enter)}[data-ui=menu] [data-part=item][role=menuitemradio]>[data-part=indicator]{--slotted-icon-size: calc(var(--_icon-size) * .7)}[data-ui=menu] [data-part=icon]{--slotted-icon-size: var(--_icon-size);align-items:center;display:flex;grid-column:1;grid-row:1;inline-size:var(--_icon-size);justify-content:center;justify-self:center;margin-inline-end:var(--_column-gap)}[data-ui=menu] [data-part=icon]>*{font-size:var(--_icon-size)}[data-ui=menu] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=description]{color:var(--_muted);font-size:var(--_secondary-font-size);grid-column:2;grid-row:2;line-height:var(--_secondary-leading);min-inline-size:0;overflow-wrap:anywhere}[data-ui=menu] [data-part=item][data-disabled]>[data-part=description]{color:inherit}[data-ui=menu] [data-part=meta]{align-items:center;color:var(--_muted);column-gap:var(--slotted-space-2, .25rem);display:flex;font-variant-numeric:tabular-nums;grid-column:3;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=shortcut]{color:var(--_muted);grid-column:4;grid-row:1;justify-self:end;margin-inline-start:var(--slotted-space-6, 1rem);white-space:nowrap}[data-ui=menu] [data-part=item][data-disabled]>:is([data-part=shortcut],[data-part=meta]),[data-ui=menu] [data-part=item][data-disabled][aria-haspopup=menu]>[data-ui=icon]{color:inherit}[data-ui=menu] [data-part=item][aria-haspopup=menu]>[data-ui=icon]{--slotted-icon-size: var(--_icon-size);grid-column:4;grid-row:1;justify-self:end;line-height:inherit;margin-inline-start:var(--_column-gap);color:var(--_muted)}[data-ui=menu] [data-part=separator]{background-color:var(--slotted-menu-separator-color, var(--_border-color));block-size:var(--_border-width);border:0;grid-column:1 / -1;margin-block:var(--slotted-space-2, .25rem);margin-inline:0}[data-ui=menu] [data-part=empty]{color:var(--_muted);grid-column:1 / -1;padding-block:var(--slotted-space-5, .75rem);padding-inline:var(--_item-inset);text-align:center}[data-ui=menu]>[data-part=content][data-loading]{cursor:progress}[data-ui=menu] [data-part=item][data-tone=accent]{--_accent: var(--slotted-tone-accent-text);--_highlight: var(--slotted-tone-accent-surface);--_highlight-active: var(--slotted-tone-accent-subtle-active);color:var(--slotted-tone-accent-text)}[data-ui=menu] [data-part=item][data-tone=secondary]{--_accent: var(--slotted-tone-secondary-text);--_highlight: var(--slotted-tone-secondary-surface);--_highlight-active: var(--slotted-tone-secondary-subtle-active);color:var(--slotted-tone-secondary-text)}[data-ui=menu] [data-part=item][data-tone=success]{--_accent: var(--slotted-tone-success-text);--_highlight: var(--slotted-tone-success-surface);--_highlight-active: var(--slotted-tone-success-subtle-active);color:var(--slotted-tone-success-text)}[data-ui=menu] [data-part=item][data-tone=warning]{--_accent: var(--slotted-tone-warning-text);--_highlight: var(--slotted-tone-warning-surface);--_highlight-active: var(--slotted-tone-warning-subtle-active);color:var(--slotted-tone-warning-text)}[data-ui=menu] [data-part=item][data-tone=danger]{--_accent: var(--slotted-tone-danger-text);--_highlight: var(--slotted-tone-danger-surface);--_highlight-active: var(--slotted-tone-danger-subtle-active);color:var(--slotted-tone-danger-text)}[data-ui=menu] [data-part=item][data-tone][data-disabled]{--_accent: var(--slotted-disabled-foreground, #64748b);--_highlight: var(--slotted-menu-highlight, var(--slotted-tone-secondary-subtle-hover));color:var(--slotted-disabled-foreground, #64748b)}@media(forced-colors:active){[data-ui=menu] [data-part=item]:focus{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=menu] [data-part=item][data-disabled]:focus{background-color:Highlight;color:GrayText}}}\n", "@layer slotted.components{[data-ui=highlight] [data-part=match]{background-color:var( --slotted-highlight-background, color-mix( in oklab, var(--slotted-tone-accent-text) calc(var(--slotted-highlight-tint-opacity, .075) * 100%), transparent ) );-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:var(--slotted-radius-none, 0px);color:var(--slotted-highlight-color, var(--slotted-tone-accent-text));font-weight:inherit;letter-spacing:inherit;padding:0;text-decoration-color:var(--slotted-highlight-rule-color, var(--slotted-tone-accent-border));text-decoration-line:underline;text-decoration-thickness:var(--slotted-border-width-thin, 1px);text-underline-offset:var(--slotted-space-1, .125rem)}[data-ui=highlight] [data-part=match][data-current]{background-color:var(--slotted-highlight-current-background, var(--slotted-tone-accent-solid));color:var(--slotted-highlight-current-color, var(--slotted-tone-accent-on-solid));text-decoration-line:none}[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:var(--slotted-highlight-disabled-background, transparent);color:inherit;text-decoration-line:underline}@media(forced-colors:active){[data-ui=highlight] [data-part=match],[data-ui=highlight]:is([data-disabled],[data-disabled] *) [data-part=match]{background-color:Mark;color:MarkText;forced-color-adjust:none}[data-ui=highlight] [data-part=match][data-current]{background-color:Highlight;color:HighlightText}}}\n"] }]
604
+ }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-describedby", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], openChangeRequest: [{ type: i0.Output, args: ["openChangeRequest"] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], mount: [{ type: i0.Input, args: [{ isSignal: true, alias: "mount", required: false }] }], strategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "strategy", required: false }] }], sideOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideOffset", required: false }] }], alignOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignOffset", required: false }] }], collisionPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "collisionPadding", required: false }] }], submenuOpenDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "submenuOpenDelay", required: false }] }], submenuCloseDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "submenuCloseDelay", required: false }] }], typeaheadTimeout: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeaheadTimeout", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loop: [{ type: i0.Input, args: [{ isSignal: true, alias: "loop", required: false }] }], typeahead: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeahead", required: false }] }], openOnHover: [{ type: i0.Input, args: [{ isSignal: true, alias: "openOnHover", required: false }] }], closeOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnSelect", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], closeOnOutsidePress: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnOutsidePress", required: false }] }], flip: [{ type: i0.Input, args: [{ isSignal: true, alias: "flip", required: false }] }], shift: [{ type: i0.Input, args: [{ isSignal: true, alias: "shift", required: false }] }], hideWhenDetached: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideWhenDetached", required: false }] }], portal: [{ type: i0.Input, args: [{ isSignal: true, alias: "portal", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], template: [{ type: i0.ViewChild, args: ['layer', { isSignal: true }] }] } });
597
605
 
598
606
  /** What ARIA calls each modifier, which is not what a reader sees. */
599
607
  const ARIA_MODIFIERS = {