@filip.mazev/blocks 1.4.16 → 1.4.17

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.
@@ -339,6 +339,139 @@ i0.ɵɵngDeclareClassMetadata({
339
339
  }]
340
340
  }
341
341
  });
342
+ var CheckboxIndicator = class CheckboxIndicator {
343
+ checked = input(false, ...ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []);
344
+ indeterminate = input(false, ...ngDevMode ? [{ debugName: "indeterminate" }] : /* istanbul ignore next */ []);
345
+ invalid = input(false, ...ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []);
346
+ disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
347
+ static ɵfac = i0.ɵɵngDeclareFactory({
348
+ minVersion: "12.0.0",
349
+ version: "22.2.3",
350
+ ngImport: i0,
351
+ type: CheckboxIndicator,
352
+ deps: [],
353
+ target: i0.ɵɵFactoryTarget.Component
354
+ });
355
+ static ɵcmp = i0.ɵɵngDeclareComponent({
356
+ minVersion: "17.0.0",
357
+ version: "22.2.3",
358
+ type: CheckboxIndicator,
359
+ isStandalone: true,
360
+ selector: "bx-checkbox-indicator",
361
+ inputs: {
362
+ checked: {
363
+ classPropertyName: "checked",
364
+ publicName: "checked",
365
+ isSignal: true,
366
+ isRequired: false,
367
+ transformFunction: null
368
+ },
369
+ indeterminate: {
370
+ classPropertyName: "indeterminate",
371
+ publicName: "indeterminate",
372
+ isSignal: true,
373
+ isRequired: false,
374
+ transformFunction: null
375
+ },
376
+ invalid: {
377
+ classPropertyName: "invalid",
378
+ publicName: "invalid",
379
+ isSignal: true,
380
+ isRequired: false,
381
+ transformFunction: null
382
+ },
383
+ disabled: {
384
+ classPropertyName: "disabled",
385
+ publicName: "disabled",
386
+ isSignal: true,
387
+ isRequired: false,
388
+ transformFunction: null
389
+ }
390
+ },
391
+ host: { attributes: { "aria-hidden": "true" } },
392
+ ngImport: i0,
393
+ template: "<span class=\"bx-checkbox-box\" bxSurface [bxSurfaceEmission]=\"invalid() ? 'var(--bx-text-danger)' : 'var(--bx-accent)'\"\n [class.is-checked]=\"checked() || indeterminate()\" [class.is-invalid]=\"invalid()\" [class.is-disabled]=\"disabled()\">\n @if (indeterminate()) { <bx-icon name=\"minus\" size=\"16\" /> } @else if (checked()) { <bx-icon name=\"check\" size=\"16\" /> }\n</span>\n",
394
+ styles: [":host{display:inline-flex;flex:0 0 auto;vertical-align:middle;pointer-events:none;border-radius:var(--bx-rounded-sm)}.bx-checkbox-box{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;inline-size:var(--bx-checkbox-size, 1.125rem);block-size:var(--bx-checkbox-size, 1.125rem);line-height:0;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-strong);border-radius:var(--bx-rounded-sm);color:var(--bx-text-primary);transition-property:border-color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease}.bx-checkbox-box.is-invalid{border-color:var(--bx-border-danger);background-color:var(--bx-bg-danger-subtle)}.bx-checkbox-box.is-checked{background-color:var(--bx-accent);border-color:var(--bx-accent);color:var(--bx-on-accent)}.bx-checkbox-box.is-checked.is-invalid{background-color:var(--bx-bg-danger);border-color:var(--bx-border-danger)}.bx-checkbox-box[data-bx-surface]{--bx-glass-shadow: none;--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-edge: var(--bx-border-strong);--bx-glass-min-opacity: .65;border:1px solid var(--bx-glass-edge);box-sizing:border-box;--bx-glass-text: var(--bx-text-primary)}.bx-checkbox-box[data-bx-surface].is-checked{--bx-glass-surface: var(--bx-accent);--bx-glass-min-opacity: 1;--bx-glass-edge: var(--bx-border-accent);--bx-glass-text: var(--bx-on-accent)}.bx-checkbox-box[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-danger-subtle);--bx-glass-edge: var(--bx-border-danger);--bx-glass-text: var(--bx-text-danger)}.bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid){background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-border-strong) 24%,var(--bx-glass-surface)),var(--bx-glass-surface) 55%,color-mix(in srgb,var(--bx-border-strong) 10%,var(--bx-glass-surface)))!important;border-top-color:var(--bx-border-strong);border-bottom-color:var(--bx-border-default)}.bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid).is-checked{background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-color-accent-50) 24%,var(--bx-accent)),var(--bx-accent) 42%,var(--bx-accent) 65%,color-mix(in srgb,var(--bx-border-accent) 18%,var(--bx-accent)))!important;border-top-color:color-mix(in srgb,var(--bx-color-accent-100) 60%,var(--bx-accent));border-inline-color:var(--bx-accent);border-bottom-color:var(--bx-border-accent)}:host-context(.high-contrast) .bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid),:host-context(.bx-high-contrast-scope) .bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid){background-image:none!important;border-color:var(--bx-glass-edge)}@media(forced-colors:active){.bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid){background-image:none!important;border-color:ButtonText}}\n"],
395
+ dependencies: [{
396
+ kind: "directive",
397
+ type: BxSurfaceDirective,
398
+ selector: "[bxSurface]",
399
+ inputs: [
400
+ "bxSurfaceInteractive",
401
+ "bxSurfaceGlassiness",
402
+ "bxSurfaceEmission",
403
+ "bxSurfaceFocusEmission",
404
+ "bxReducedTransparency"
405
+ ],
406
+ exportAs: ["bxSurface"]
407
+ }, {
408
+ kind: "component",
409
+ type: Icon,
410
+ selector: "bx-icon",
411
+ inputs: [
412
+ "name",
413
+ "size",
414
+ "color",
415
+ "bgColor",
416
+ "strokeWidth",
417
+ "decorative",
418
+ "ariaLabel"
419
+ ]
420
+ }],
421
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
422
+ });
423
+ };
424
+ i0.ɵɵngDeclareClassMetadata({
425
+ minVersion: "12.0.0",
426
+ version: "22.2.3",
427
+ ngImport: i0,
428
+ type: CheckboxIndicator,
429
+ decorators: [{
430
+ type: Component,
431
+ args: [{
432
+ selector: "bx-checkbox-indicator",
433
+ imports: [BxSurfaceDirective, Icon],
434
+ host: { "aria-hidden": "true" },
435
+ changeDetection: ChangeDetectionStrategy.OnPush,
436
+ template: "<span class=\"bx-checkbox-box\" bxSurface [bxSurfaceEmission]=\"invalid() ? 'var(--bx-text-danger)' : 'var(--bx-accent)'\"\n [class.is-checked]=\"checked() || indeterminate()\" [class.is-invalid]=\"invalid()\" [class.is-disabled]=\"disabled()\">\n @if (indeterminate()) { <bx-icon name=\"minus\" size=\"16\" /> } @else if (checked()) { <bx-icon name=\"check\" size=\"16\" /> }\n</span>\n",
437
+ styles: [":host{display:inline-flex;flex:0 0 auto;vertical-align:middle;pointer-events:none;border-radius:var(--bx-rounded-sm)}.bx-checkbox-box{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;inline-size:var(--bx-checkbox-size, 1.125rem);block-size:var(--bx-checkbox-size, 1.125rem);line-height:0;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-strong);border-radius:var(--bx-rounded-sm);color:var(--bx-text-primary);transition-property:border-color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease}.bx-checkbox-box.is-invalid{border-color:var(--bx-border-danger);background-color:var(--bx-bg-danger-subtle)}.bx-checkbox-box.is-checked{background-color:var(--bx-accent);border-color:var(--bx-accent);color:var(--bx-on-accent)}.bx-checkbox-box.is-checked.is-invalid{background-color:var(--bx-bg-danger);border-color:var(--bx-border-danger)}.bx-checkbox-box[data-bx-surface]{--bx-glass-shadow: none;--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-edge: var(--bx-border-strong);--bx-glass-min-opacity: .65;border:1px solid var(--bx-glass-edge);box-sizing:border-box;--bx-glass-text: var(--bx-text-primary)}.bx-checkbox-box[data-bx-surface].is-checked{--bx-glass-surface: var(--bx-accent);--bx-glass-min-opacity: 1;--bx-glass-edge: var(--bx-border-accent);--bx-glass-text: var(--bx-on-accent)}.bx-checkbox-box[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-danger-subtle);--bx-glass-edge: var(--bx-border-danger);--bx-glass-text: var(--bx-text-danger)}.bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid){background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-border-strong) 24%,var(--bx-glass-surface)),var(--bx-glass-surface) 55%,color-mix(in srgb,var(--bx-border-strong) 10%,var(--bx-glass-surface)))!important;border-top-color:var(--bx-border-strong);border-bottom-color:var(--bx-border-default)}.bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid).is-checked{background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-color-accent-50) 24%,var(--bx-accent)),var(--bx-accent) 42%,var(--bx-accent) 65%,color-mix(in srgb,var(--bx-border-accent) 18%,var(--bx-accent)))!important;border-top-color:color-mix(in srgb,var(--bx-color-accent-100) 60%,var(--bx-accent));border-inline-color:var(--bx-accent);border-bottom-color:var(--bx-border-accent)}:host-context(.high-contrast) .bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid),:host-context(.bx-high-contrast-scope) .bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid){background-image:none!important;border-color:var(--bx-glass-edge)}@media(forced-colors:active){.bx-checkbox-box[data-bx-surface]:not(.is-disabled,.is-invalid){background-image:none!important;border-color:ButtonText}}\n"]
438
+ }]
439
+ }],
440
+ propDecorators: {
441
+ checked: [{
442
+ type: i0.Input,
443
+ args: [{
444
+ isSignal: true,
445
+ alias: "checked",
446
+ required: false
447
+ }]
448
+ }],
449
+ indeterminate: [{
450
+ type: i0.Input,
451
+ args: [{
452
+ isSignal: true,
453
+ alias: "indeterminate",
454
+ required: false
455
+ }]
456
+ }],
457
+ invalid: [{
458
+ type: i0.Input,
459
+ args: [{
460
+ isSignal: true,
461
+ alias: "invalid",
462
+ required: false
463
+ }]
464
+ }],
465
+ disabled: [{
466
+ type: i0.Input,
467
+ args: [{
468
+ isSignal: true,
469
+ alias: "disabled",
470
+ required: false
471
+ }]
472
+ }]
473
+ }
474
+ });
342
475
  var BxError = class BxError {
343
476
  static ɵfac = i0.ɵɵngDeclareFactory({
344
477
  minVersion: "12.0.0",
@@ -1805,59 +1938,40 @@ var Checkbox = class Checkbox extends BxCheckedControl {
1805
1938
  outputs: { indeterminate: "indeterminateChange" },
1806
1939
  usesInheritance: true,
1807
1940
  ngImport: i0,
1808
- template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [loading]=\"loading()\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <label class=\"bx-inline-wrapper\" [class.is-disabled]=\"disabled()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\" [class.label-before]=\"labelPosition() === 'before'\">\n <input type=\"checkbox\" class=\"bx-visually-hidden\" [id]=\"controlId()\" [attr.name]=\"name() || null\" [attr.data-testid]=\"dataTestId()\"\n [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"showError()\" [attr.aria-readonly]=\"isReadonly()\" [disabled]=\"disabled()\" [required]=\"effectiveRequired()\" [checked]=\"displayedChecked()\" [indeterminate]=\"indeterminate()\"\n (click)=\"onReadonlyClick($event)\" (change)=\"onToggle($event)\" (blur)=\"onBlur()\">\n <div class=\"bx-checkbox-box\" bxSurface [bxSurfaceEmission]=\"showError() ? 'var(--bx-text-danger)' : 'var(--bx-accent)'\"\n [class.is-checked]=\"displayedChecked() || indeterminate()\" [class.is-invalid]=\"showError()\">\n @if (indeterminate()) { <bx-icon name=\"minus\" size=\"16\" /> } @else if (displayedChecked()) { <bx-icon name=\"check\" size=\"16\" /> }\n </div>\n <span class=\"bx-inline-label\"><ng-content />{{ resolvedLabel() }}\n @if (effectiveRequired() && !resolvedHideRequiredMarker()) { <span class=\"bx-inline-required\" aria-hidden=\"true\">*</span> }\n </span>\n </label>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
1809
- styles: [":host{display:block}.bx-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.bx-inline-wrapper{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:1.5rem;vertical-align:middle}.bx-inline-wrapper.is-disabled{opacity:.5;cursor:not-allowed}.bx-inline-wrapper.is-readonly:not(.is-disabled){cursor:default}.bx-inline-label{font-size:.875rem;color:var(--bx-text-primary);line-height:1.5}.bx-inline-required{color:var(--bx-text-danger);margin-left:.125rem}.bx-checkbox-box{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;line-height:0;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-strong);border-radius:var(--bx-rounded-sm);color:var(--bx-text-primary);transition:border-color .15s ease}.bx-checkbox-box.is-invalid{border-color:var(--bx-border-danger);background-color:var(--bx-bg-danger-subtle)}.bx-checkbox-box.is-checked{background-color:var(--bx-accent);border-color:var(--bx-accent);color:var(--bx-on-accent)}.bx-checkbox-box.is-checked.is-invalid{background-color:var(--bx-bg-danger);border-color:var(--bx-border-danger)}.bx-inline-wrapper:not(.is-readonly) input:focus-visible~.bx-checkbox-box,.bx-inline-wrapper.is-readonly.is-keyboard-focused input:focus-visible~.bx-checkbox-box{box-shadow:0 0 0 3px var(--bx-accent-subtle)}.bx-checkbox-box[data-bx-surface]{--bx-glass-shadow: none;--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-edge: var(--bx-border-strong);--bx-glass-min-opacity: .65;border:1px solid var(--bx-glass-edge);box-sizing:border-box;--bx-glass-text: var(--bx-text-primary)}.bx-checkbox-box[data-bx-surface].is-checked{--bx-glass-surface: var(--bx-accent);--bx-glass-min-opacity: 1;--bx-glass-edge: var(--bx-border-accent);--bx-glass-text: var(--bx-on-accent)}.bx-checkbox-box[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-danger-subtle);--bx-glass-edge: var(--bx-border-danger);--bx-glass-text: var(--bx-text-danger)}.bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid){background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-border-strong) 24%,var(--bx-glass-surface)),var(--bx-glass-surface) 55%,color-mix(in srgb,var(--bx-border-strong) 10%,var(--bx-glass-surface)))!important;border-top-color:var(--bx-border-strong);border-bottom-color:var(--bx-border-default)}.bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid).is-checked{background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-color-accent-50) 24%,var(--bx-accent)),var(--bx-accent) 42%,var(--bx-accent) 65%,color-mix(in srgb,var(--bx-border-accent) 18%,var(--bx-accent)))!important;border-top-color:color-mix(in srgb,var(--bx-color-accent-100) 60%,var(--bx-accent));border-inline-color:var(--bx-accent);border-bottom-color:var(--bx-border-accent)}:host-context(.high-contrast) .bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid),:host-context(.bx-high-contrast-scope) .bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid){background-image:none!important;border-color:var(--bx-glass-edge)}@media(forced-colors:active){.bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid){background-image:none!important;border-color:ButtonText}}.bx-inline-wrapper.label-before .bx-inline-label{order:-1}\n"],
1810
- dependencies: [
1811
- {
1812
- kind: "directive",
1813
- type: BxSurfaceDirective,
1814
- selector: "[bxSurface]",
1815
- inputs: [
1816
- "bxSurfaceInteractive",
1817
- "bxSurfaceGlassiness",
1818
- "bxSurfaceEmission",
1819
- "bxSurfaceFocusEmission",
1820
- "bxReducedTransparency"
1821
- ],
1822
- exportAs: ["bxSurface"]
1823
- },
1824
- {
1825
- kind: "component",
1826
- type: FormField,
1827
- selector: "bx-form-field",
1828
- inputs: [
1829
- "inline",
1830
- "control",
1831
- "label",
1832
- "tooltip",
1833
- "tooltipLabel",
1834
- "error",
1835
- "errors",
1836
- "hint",
1837
- "hintEnd",
1838
- "required",
1839
- "hideRequiredMarker",
1840
- "loading",
1841
- "showLoadingIndicator",
1842
- "forId",
1843
- "subscriptSizing"
1844
- ]
1845
- },
1846
- {
1847
- kind: "component",
1848
- type: Icon,
1849
- selector: "bx-icon",
1850
- inputs: [
1851
- "name",
1852
- "size",
1853
- "color",
1854
- "bgColor",
1855
- "strokeWidth",
1856
- "decorative",
1857
- "ariaLabel"
1858
- ]
1859
- }
1860
- ],
1941
+ template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [loading]=\"loading()\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <label class=\"bx-inline-wrapper\" [class.is-disabled]=\"disabled()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\" [class.label-before]=\"labelPosition() === 'before'\">\n <input type=\"checkbox\" class=\"bx-visually-hidden\" [id]=\"controlId()\" [attr.name]=\"name() || null\" [attr.data-testid]=\"dataTestId()\"\n [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"showError()\" [attr.aria-readonly]=\"isReadonly()\" [disabled]=\"disabled()\" [required]=\"effectiveRequired()\" [checked]=\"displayedChecked()\" [indeterminate]=\"indeterminate()\"\n (click)=\"onReadonlyClick($event)\" (change)=\"onToggle($event)\" (blur)=\"onBlur()\">\n <bx-checkbox-indicator [checked]=\"displayedChecked()\" [indeterminate]=\"indeterminate()\" [invalid]=\"showError()\" [disabled]=\"disabled()\" />\n <span class=\"bx-inline-label\"><ng-content />{{ resolvedLabel() }}\n @if (effectiveRequired() && !resolvedHideRequiredMarker()) { <span class=\"bx-inline-required\" aria-hidden=\"true\">*</span> }\n </span>\n </label>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
1942
+ styles: [":host{display:block}.bx-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.bx-inline-wrapper{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:1.5rem;vertical-align:middle}.bx-inline-wrapper.is-disabled{opacity:.5;cursor:not-allowed}.bx-inline-wrapper.is-readonly:not(.is-disabled){cursor:default}.bx-inline-label{font-size:.875rem;color:var(--bx-text-primary);line-height:1.5}.bx-inline-required{color:var(--bx-text-danger);margin-left:.125rem}.bx-inline-wrapper:not(.is-readonly) input:focus-visible~bx-checkbox-indicator,.bx-inline-wrapper.is-readonly.is-keyboard-focused input:focus-visible~bx-checkbox-indicator{outline:2px solid var(--bx-border-accent);outline-offset:2px}.bx-inline-wrapper.label-before .bx-inline-label{order:-1}\n"],
1943
+ dependencies: [{
1944
+ kind: "component",
1945
+ type: FormField,
1946
+ selector: "bx-form-field",
1947
+ inputs: [
1948
+ "inline",
1949
+ "control",
1950
+ "label",
1951
+ "tooltip",
1952
+ "tooltipLabel",
1953
+ "error",
1954
+ "errors",
1955
+ "hint",
1956
+ "hintEnd",
1957
+ "required",
1958
+ "hideRequiredMarker",
1959
+ "loading",
1960
+ "showLoadingIndicator",
1961
+ "forId",
1962
+ "subscriptSizing"
1963
+ ]
1964
+ }, {
1965
+ kind: "component",
1966
+ type: CheckboxIndicator,
1967
+ selector: "bx-checkbox-indicator",
1968
+ inputs: [
1969
+ "checked",
1970
+ "indeterminate",
1971
+ "invalid",
1972
+ "disabled"
1973
+ ]
1974
+ }],
1861
1975
  changeDetection: i0.ChangeDetectionStrategy.OnPush
1862
1976
  });
1863
1977
  };
@@ -1870,14 +1984,10 @@ i0.ɵɵngDeclareClassMetadata({
1870
1984
  type: Component,
1871
1985
  args: [{
1872
1986
  selector: "bx-checkbox",
1873
- imports: [
1874
- BxSurfaceDirective,
1875
- FormField,
1876
- Icon
1877
- ],
1987
+ imports: [FormField, CheckboxIndicator],
1878
1988
  changeDetection: ChangeDetectionStrategy.OnPush,
1879
- template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [loading]=\"loading()\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <label class=\"bx-inline-wrapper\" [class.is-disabled]=\"disabled()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\" [class.label-before]=\"labelPosition() === 'before'\">\n <input type=\"checkbox\" class=\"bx-visually-hidden\" [id]=\"controlId()\" [attr.name]=\"name() || null\" [attr.data-testid]=\"dataTestId()\"\n [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"showError()\" [attr.aria-readonly]=\"isReadonly()\" [disabled]=\"disabled()\" [required]=\"effectiveRequired()\" [checked]=\"displayedChecked()\" [indeterminate]=\"indeterminate()\"\n (click)=\"onReadonlyClick($event)\" (change)=\"onToggle($event)\" (blur)=\"onBlur()\">\n <div class=\"bx-checkbox-box\" bxSurface [bxSurfaceEmission]=\"showError() ? 'var(--bx-text-danger)' : 'var(--bx-accent)'\"\n [class.is-checked]=\"displayedChecked() || indeterminate()\" [class.is-invalid]=\"showError()\">\n @if (indeterminate()) { <bx-icon name=\"minus\" size=\"16\" /> } @else if (displayedChecked()) { <bx-icon name=\"check\" size=\"16\" /> }\n </div>\n <span class=\"bx-inline-label\"><ng-content />{{ resolvedLabel() }}\n @if (effectiveRequired() && !resolvedHideRequiredMarker()) { <span class=\"bx-inline-required\" aria-hidden=\"true\">*</span> }\n </span>\n </label>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
1880
- styles: [":host{display:block}.bx-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.bx-inline-wrapper{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:1.5rem;vertical-align:middle}.bx-inline-wrapper.is-disabled{opacity:.5;cursor:not-allowed}.bx-inline-wrapper.is-readonly:not(.is-disabled){cursor:default}.bx-inline-label{font-size:.875rem;color:var(--bx-text-primary);line-height:1.5}.bx-inline-required{color:var(--bx-text-danger);margin-left:.125rem}.bx-checkbox-box{box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;line-height:0;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-strong);border-radius:var(--bx-rounded-sm);color:var(--bx-text-primary);transition:border-color .15s ease}.bx-checkbox-box.is-invalid{border-color:var(--bx-border-danger);background-color:var(--bx-bg-danger-subtle)}.bx-checkbox-box.is-checked{background-color:var(--bx-accent);border-color:var(--bx-accent);color:var(--bx-on-accent)}.bx-checkbox-box.is-checked.is-invalid{background-color:var(--bx-bg-danger);border-color:var(--bx-border-danger)}.bx-inline-wrapper:not(.is-readonly) input:focus-visible~.bx-checkbox-box,.bx-inline-wrapper.is-readonly.is-keyboard-focused input:focus-visible~.bx-checkbox-box{box-shadow:0 0 0 3px var(--bx-accent-subtle)}.bx-checkbox-box[data-bx-surface]{--bx-glass-shadow: none;--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-edge: var(--bx-border-strong);--bx-glass-min-opacity: .65;border:1px solid var(--bx-glass-edge);box-sizing:border-box;--bx-glass-text: var(--bx-text-primary)}.bx-checkbox-box[data-bx-surface].is-checked{--bx-glass-surface: var(--bx-accent);--bx-glass-min-opacity: 1;--bx-glass-edge: var(--bx-border-accent);--bx-glass-text: var(--bx-on-accent)}.bx-checkbox-box[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-danger-subtle);--bx-glass-edge: var(--bx-border-danger);--bx-glass-text: var(--bx-text-danger)}.bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid){background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-border-strong) 24%,var(--bx-glass-surface)),var(--bx-glass-surface) 55%,color-mix(in srgb,var(--bx-border-strong) 10%,var(--bx-glass-surface)))!important;border-top-color:var(--bx-border-strong);border-bottom-color:var(--bx-border-default)}.bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid).is-checked{background-image:linear-gradient(180deg,color-mix(in srgb,var(--bx-color-accent-50) 24%,var(--bx-accent)),var(--bx-accent) 42%,var(--bx-accent) 65%,color-mix(in srgb,var(--bx-border-accent) 18%,var(--bx-accent)))!important;border-top-color:color-mix(in srgb,var(--bx-color-accent-100) 60%,var(--bx-accent));border-inline-color:var(--bx-accent);border-bottom-color:var(--bx-border-accent)}:host-context(.high-contrast) .bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid),:host-context(.bx-high-contrast-scope) .bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid){background-image:none!important;border-color:var(--bx-glass-edge)}@media(forced-colors:active){.bx-inline-wrapper:not(.is-disabled) .bx-checkbox-box[data-bx-surface]:not(.is-invalid){background-image:none!important;border-color:ButtonText}}.bx-inline-wrapper.label-before .bx-inline-label{order:-1}\n"]
1989
+ template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [loading]=\"loading()\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <label class=\"bx-inline-wrapper\" [class.is-disabled]=\"disabled()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\" [class.label-before]=\"labelPosition() === 'before'\">\n <input type=\"checkbox\" class=\"bx-visually-hidden\" [id]=\"controlId()\" [attr.name]=\"name() || null\" [attr.data-testid]=\"dataTestId()\"\n [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"showError()\" [attr.aria-readonly]=\"isReadonly()\" [disabled]=\"disabled()\" [required]=\"effectiveRequired()\" [checked]=\"displayedChecked()\" [indeterminate]=\"indeterminate()\"\n (click)=\"onReadonlyClick($event)\" (change)=\"onToggle($event)\" (blur)=\"onBlur()\">\n <bx-checkbox-indicator [checked]=\"displayedChecked()\" [indeterminate]=\"indeterminate()\" [invalid]=\"showError()\" [disabled]=\"disabled()\" />\n <span class=\"bx-inline-label\"><ng-content />{{ resolvedLabel() }}\n @if (effectiveRequired() && !resolvedHideRequiredMarker()) { <span class=\"bx-inline-required\" aria-hidden=\"true\">*</span> }\n </span>\n </label>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
1990
+ styles: [":host{display:block}.bx-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.bx-inline-wrapper{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:1.5rem;vertical-align:middle}.bx-inline-wrapper.is-disabled{opacity:.5;cursor:not-allowed}.bx-inline-wrapper.is-readonly:not(.is-disabled){cursor:default}.bx-inline-label{font-size:.875rem;color:var(--bx-text-primary);line-height:1.5}.bx-inline-required{color:var(--bx-text-danger);margin-left:.125rem}.bx-inline-wrapper:not(.is-readonly) input:focus-visible~bx-checkbox-indicator,.bx-inline-wrapper.is-readonly.is-keyboard-focused input:focus-visible~bx-checkbox-indicator{outline:2px solid var(--bx-border-accent);outline-offset:2px}.bx-inline-wrapper.label-before .bx-inline-label{order:-1}\n"]
1881
1991
  }]
1882
1992
  }],
1883
1993
  propDecorators: {
@@ -2847,7 +2957,7 @@ var SearchInput = class SearchInput extends BxValueControl {
2847
2957
  usesInheritance: true,
2848
2958
  ngImport: i0,
2849
2959
  template: "<bx-form-field [control]=\"fieldControl\" [label]=\"label()\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [hideRequiredMarker]=\"resolvedHideRequiredMarker()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <div class=\"bx-search-input-wrapper\" bxSurface [class.is-invalid]=\"showError()\" [class.is-disabled]=\"disabled()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [bxTooltip]=\"searchOverflow.text() | bxTruncatedText: searchOverflow.truncated(): resolvedTooltipOnTruncate()\" bxTooltipTouch=\"longpress\" placement=\"top\">\n <span class=\"bx-search-icon-left\" aria-hidden=\"true\">\n @if (isBusy() && !showRetry()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"search\" size=\"16\" /> }\n </span>\n <input class=\"bx-native-search-input\" type=\"search\" bxTruncate #searchOverflow=\"bxTruncate\" [id]=\"controlId()\" [attr.name]=\"name() || null\"\n [placeholder]=\"resolvedPlaceholder()\" [attr.data-testid]=\"dataTestId()\" [attr.autocomplete]=\"autocomplete()\"\n [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [attr.aria-describedby]=\"searchDescribedBy()\" [attr.aria-busy]=\"isBusy()\"\n [attr.aria-invalid]=\"showError()\" [required]=\"effectiveRequired()\" [readOnly]=\"isReadonly()\" [disabled]=\"disabled()\"\n [value]=\"internalValue() ?? ''\" (input)=\"onInput($event)\" (blur)=\"onBlur()\"\n (compositionstart)=\"onCompositionStart()\" (compositionend)=\"onCompositionEnd($event)\">\n @if (internalValue() && !isReadonly()) {\n <button type=\"button\" class=\"bx-search-clear-btn\" [attr.aria-label]=\"resolvedClearLabel()\" [disabled]=\"disabled() || isReadonly()\" (click)=\"clear()\"><bx-icon name=\"x\" size=\"16\" /></button>\n }\n </div>\n <div class=\"bx-search-feedback\" [class.has-status]=\"showStatus()\">\n <div class=\"bx-search-status\" [class.cdk-visually-hidden]=\"!showStatus()\">\n @if (showRetry()) {\n <span class=\"bx-search-status-reserve\" aria-hidden=\"true\">{{ resolvedRetainedError() }}</span>\n <span class=\"bx-search-status-reserve\" aria-hidden=\"true\">{{ resolvedLoadingLabel() || resolvedLoadingAriaLabel() }}</span>\n }\n <span [id]=\"controlId() + '-search-status'\" role=\"status\" [class.bx-search-error]=\"!isBusy() && !!resolvedLoadError()\">{{ isBusy() ? (resolvedLoadingLabel() || resolvedLoadingAriaLabel()) : resolvedLoadError() }}</span>\n </div>\n @if (showRetry()) {\n <button bx-button type=\"button\" [variant]=\"retryConfig().variant ?? 'text'\" [color]=\"retryConfig().color ?? 'primary'\"\n [outlined]=\"retryConfig().outlined ?? false\" [class]=\"retryConfig().buttonClass ?? ''\" [attr.aria-label]=\"resolvedRetryAriaLabel()\"\n [disabled]=\"disabled() || isReadonly()\" [loading]=\"isBusy()\" (click)=\"retrySearch()\"><bx-icon name=\"rotate-cw\" size=\"16\" />{{ resolvedRetryLabel() }}</button>\n }\n </div>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
2850
- styles: [":host{display:block;width:100%;min-inline-size:0}.bx-search-input-wrapper{display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-default);border-radius:.25rem;transition:border-color .15s ease,box-shadow .15s ease;min-height:2.5rem;padding:.25rem .5rem .25rem .75rem;gap:.5rem}.bx-search-input-wrapper:hover:not(.is-disabled,.is-readonly){border-color:var(--bx-border-strong)}.bx-search-input-wrapper:focus-within:not(.is-disabled,.is-readonly){border-color:var(--bx-border-brand);box-shadow:0 0 0 3px var(--bx-primary-subtle)}.bx-search-input-wrapper.is-invalid{border-color:var(--bx-border-danger)}.bx-search-input-wrapper.is-invalid:focus-within:not(.is-readonly){box-shadow:0 0 0 3px var(--bx-bg-danger-subtle)}.bx-search-input-wrapper.is-disabled{background-color:var(--bx-bg-element);opacity:.7;cursor:not-allowed}.bx-search-icon-left{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem;color:var(--bx-text-secondary);flex-shrink:0}.bx-native-search-input{flex:1 1 0;min-width:0;width:0;box-sizing:border-box;padding:.5rem 0;background:transparent;border:none;outline:none;appearance:none;font-family:inherit;font-size:.875rem;color:var(--bx-text-heading)}.bx-native-search-input::-webkit-search-cancel-button,.bx-native-search-input::-webkit-search-decoration{appearance:none;display:none}.bx-native-search-input::placeholder{color:var(--bx-text-secondary)}.bx-native-search-input:disabled{color:var(--bx-text-secondary);cursor:not-allowed}.bx-native-search-input[readonly]:not(:disabled){cursor:default}.bx-search-clear-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;padding:.25rem;width:1.5rem;height:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-search-clear-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-search-clear-btn{transition:color .15s ease}.bx-search-clear-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-search-clear-btn:disabled{cursor:not-allowed;opacity:.5}.bx-search-clear-btn.hidden{opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none}.bx-search-feedback{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:.5rem;color:var(--bx-text-secondary);font-size:.875rem}.bx-search-feedback.has-status{padding-block-start:var(--bx-search-feedback-gap, .5rem)}:host(.bx-readonly):not(:has(input:disabled)) button:disabled{cursor:default}.bx-search-status{display:grid;inline-size:100%;min-inline-size:0;line-height:1.5}.bx-search-status>span{grid-area:1/1;overflow-wrap:anywhere}.bx-search-status-reserve{visibility:hidden}.bx-search-error{color:var(--bx-text-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-search-input-wrapper[data-bx-surface]:after{display:none}.bx-search-input-wrapper[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-search-input-wrapper[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-search-input-wrapper[data-bx-surface].is-open:not(:disabled),.bx-search-input-wrapper[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-search-input-wrapper[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}\n"],
2960
+ styles: [":host{display:block;width:100%;min-inline-size:0}.bx-search-input-wrapper{display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-default);border-radius:.25rem;transition:border-color .15s ease,box-shadow .15s ease;min-height:2.5rem;padding:.25rem .5rem .25rem .75rem;gap:.5rem}.bx-search-input-wrapper:hover:not(.is-disabled,.is-readonly){border-color:var(--bx-border-strong)}.bx-search-input-wrapper:focus-within:not(.is-disabled,.is-readonly){border-color:var(--bx-border-brand);box-shadow:0 0 0 3px var(--bx-primary-subtle)}.bx-search-input-wrapper.is-invalid{border-color:var(--bx-border-danger)}.bx-search-input-wrapper.is-invalid:focus-within:not(.is-readonly){box-shadow:0 0 0 3px var(--bx-bg-danger-subtle)}.bx-search-input-wrapper.is-disabled{background-color:var(--bx-bg-element);opacity:.7;cursor:not-allowed}.bx-search-icon-left{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem;color:var(--bx-text-secondary);flex-shrink:0}.bx-native-search-input{flex:1 1 0;min-width:0;width:0;box-sizing:border-box;padding:.5rem 0;background:transparent;border:none;outline:none;appearance:none;font-family:inherit;font-size:.875rem;color:var(--bx-text-heading)}.bx-native-search-input::-webkit-search-cancel-button,.bx-native-search-input::-webkit-search-decoration{appearance:none;display:none}.bx-native-search-input::placeholder{color:var(--bx-text-secondary)}.bx-native-search-input:disabled{color:var(--bx-text-secondary);cursor:not-allowed}.bx-native-search-input[readonly]:not(:disabled){cursor:default}.bx-search-clear-btn{transition-property:color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:transparent;border:none;padding:.25rem;inline-size:1.5rem;block-size:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-search-clear-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-search-clear-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-search-clear-btn:disabled{cursor:not-allowed;opacity:.5}.bx-search-clear-btn.hidden{opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none}.bx-search-feedback{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:.5rem;color:var(--bx-text-secondary);font-size:.875rem}.bx-search-feedback.has-status{padding-block-start:var(--bx-search-feedback-gap, .5rem)}:host(.bx-readonly):not(:has(input:disabled)) button:disabled{cursor:default}.bx-search-status{display:grid;inline-size:100%;min-inline-size:0;line-height:1.5}.bx-search-status>span{grid-area:1/1;overflow-wrap:anywhere}.bx-search-status-reserve{visibility:hidden}.bx-search-error{color:var(--bx-text-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-search-input-wrapper[data-bx-surface]:after{display:none}.bx-search-input-wrapper[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-search-input-wrapper[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-search-input-wrapper[data-bx-surface].is-open:not(:disabled),.bx-search-input-wrapper[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-search-input-wrapper[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}\n"],
2851
2961
  dependencies: [
2852
2962
  {
2853
2963
  kind: "directive",
@@ -2972,7 +3082,7 @@ i0.ɵɵngDeclareClassMetadata({
2972
3082
  ],
2973
3083
  changeDetection: ChangeDetectionStrategy.OnPush,
2974
3084
  template: "<bx-form-field [control]=\"fieldControl\" [label]=\"label()\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [hideRequiredMarker]=\"resolvedHideRequiredMarker()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <div class=\"bx-search-input-wrapper\" bxSurface [class.is-invalid]=\"showError()\" [class.is-disabled]=\"disabled()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [bxTooltip]=\"searchOverflow.text() | bxTruncatedText: searchOverflow.truncated(): resolvedTooltipOnTruncate()\" bxTooltipTouch=\"longpress\" placement=\"top\">\n <span class=\"bx-search-icon-left\" aria-hidden=\"true\">\n @if (isBusy() && !showRetry()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"search\" size=\"16\" /> }\n </span>\n <input class=\"bx-native-search-input\" type=\"search\" bxTruncate #searchOverflow=\"bxTruncate\" [id]=\"controlId()\" [attr.name]=\"name() || null\"\n [placeholder]=\"resolvedPlaceholder()\" [attr.data-testid]=\"dataTestId()\" [attr.autocomplete]=\"autocomplete()\"\n [attr.aria-label]=\"ariaLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\" [attr.aria-describedby]=\"searchDescribedBy()\" [attr.aria-busy]=\"isBusy()\"\n [attr.aria-invalid]=\"showError()\" [required]=\"effectiveRequired()\" [readOnly]=\"isReadonly()\" [disabled]=\"disabled()\"\n [value]=\"internalValue() ?? ''\" (input)=\"onInput($event)\" (blur)=\"onBlur()\"\n (compositionstart)=\"onCompositionStart()\" (compositionend)=\"onCompositionEnd($event)\">\n @if (internalValue() && !isReadonly()) {\n <button type=\"button\" class=\"bx-search-clear-btn\" [attr.aria-label]=\"resolvedClearLabel()\" [disabled]=\"disabled() || isReadonly()\" (click)=\"clear()\"><bx-icon name=\"x\" size=\"16\" /></button>\n }\n </div>\n <div class=\"bx-search-feedback\" [class.has-status]=\"showStatus()\">\n <div class=\"bx-search-status\" [class.cdk-visually-hidden]=\"!showStatus()\">\n @if (showRetry()) {\n <span class=\"bx-search-status-reserve\" aria-hidden=\"true\">{{ resolvedRetainedError() }}</span>\n <span class=\"bx-search-status-reserve\" aria-hidden=\"true\">{{ resolvedLoadingLabel() || resolvedLoadingAriaLabel() }}</span>\n }\n <span [id]=\"controlId() + '-search-status'\" role=\"status\" [class.bx-search-error]=\"!isBusy() && !!resolvedLoadError()\">{{ isBusy() ? (resolvedLoadingLabel() || resolvedLoadingAriaLabel()) : resolvedLoadError() }}</span>\n </div>\n @if (showRetry()) {\n <button bx-button type=\"button\" [variant]=\"retryConfig().variant ?? 'text'\" [color]=\"retryConfig().color ?? 'primary'\"\n [outlined]=\"retryConfig().outlined ?? false\" [class]=\"retryConfig().buttonClass ?? ''\" [attr.aria-label]=\"resolvedRetryAriaLabel()\"\n [disabled]=\"disabled() || isReadonly()\" [loading]=\"isBusy()\" (click)=\"retrySearch()\"><bx-icon name=\"rotate-cw\" size=\"16\" />{{ resolvedRetryLabel() }}</button>\n }\n </div>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
2975
- styles: [":host{display:block;width:100%;min-inline-size:0}.bx-search-input-wrapper{display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-default);border-radius:.25rem;transition:border-color .15s ease,box-shadow .15s ease;min-height:2.5rem;padding:.25rem .5rem .25rem .75rem;gap:.5rem}.bx-search-input-wrapper:hover:not(.is-disabled,.is-readonly){border-color:var(--bx-border-strong)}.bx-search-input-wrapper:focus-within:not(.is-disabled,.is-readonly){border-color:var(--bx-border-brand);box-shadow:0 0 0 3px var(--bx-primary-subtle)}.bx-search-input-wrapper.is-invalid{border-color:var(--bx-border-danger)}.bx-search-input-wrapper.is-invalid:focus-within:not(.is-readonly){box-shadow:0 0 0 3px var(--bx-bg-danger-subtle)}.bx-search-input-wrapper.is-disabled{background-color:var(--bx-bg-element);opacity:.7;cursor:not-allowed}.bx-search-icon-left{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem;color:var(--bx-text-secondary);flex-shrink:0}.bx-native-search-input{flex:1 1 0;min-width:0;width:0;box-sizing:border-box;padding:.5rem 0;background:transparent;border:none;outline:none;appearance:none;font-family:inherit;font-size:.875rem;color:var(--bx-text-heading)}.bx-native-search-input::-webkit-search-cancel-button,.bx-native-search-input::-webkit-search-decoration{appearance:none;display:none}.bx-native-search-input::placeholder{color:var(--bx-text-secondary)}.bx-native-search-input:disabled{color:var(--bx-text-secondary);cursor:not-allowed}.bx-native-search-input[readonly]:not(:disabled){cursor:default}.bx-search-clear-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;padding:.25rem;width:1.5rem;height:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-search-clear-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-search-clear-btn{transition:color .15s ease}.bx-search-clear-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-search-clear-btn:disabled{cursor:not-allowed;opacity:.5}.bx-search-clear-btn.hidden{opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none}.bx-search-feedback{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:.5rem;color:var(--bx-text-secondary);font-size:.875rem}.bx-search-feedback.has-status{padding-block-start:var(--bx-search-feedback-gap, .5rem)}:host(.bx-readonly):not(:has(input:disabled)) button:disabled{cursor:default}.bx-search-status{display:grid;inline-size:100%;min-inline-size:0;line-height:1.5}.bx-search-status>span{grid-area:1/1;overflow-wrap:anywhere}.bx-search-status-reserve{visibility:hidden}.bx-search-error{color:var(--bx-text-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-search-input-wrapper[data-bx-surface]:after{display:none}.bx-search-input-wrapper[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-search-input-wrapper[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-search-input-wrapper[data-bx-surface].is-open:not(:disabled),.bx-search-input-wrapper[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-search-input-wrapper[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}\n"]
3085
+ styles: [":host{display:block;width:100%;min-inline-size:0}.bx-search-input-wrapper{display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-surface);border:1px solid var(--bx-border-default);border-radius:.25rem;transition:border-color .15s ease,box-shadow .15s ease;min-height:2.5rem;padding:.25rem .5rem .25rem .75rem;gap:.5rem}.bx-search-input-wrapper:hover:not(.is-disabled,.is-readonly){border-color:var(--bx-border-strong)}.bx-search-input-wrapper:focus-within:not(.is-disabled,.is-readonly){border-color:var(--bx-border-brand);box-shadow:0 0 0 3px var(--bx-primary-subtle)}.bx-search-input-wrapper.is-invalid{border-color:var(--bx-border-danger)}.bx-search-input-wrapper.is-invalid:focus-within:not(.is-readonly){box-shadow:0 0 0 3px var(--bx-bg-danger-subtle)}.bx-search-input-wrapper.is-disabled{background-color:var(--bx-bg-element);opacity:.7;cursor:not-allowed}.bx-search-icon-left{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem;color:var(--bx-text-secondary);flex-shrink:0}.bx-native-search-input{flex:1 1 0;min-width:0;width:0;box-sizing:border-box;padding:.5rem 0;background:transparent;border:none;outline:none;appearance:none;font-family:inherit;font-size:.875rem;color:var(--bx-text-heading)}.bx-native-search-input::-webkit-search-cancel-button,.bx-native-search-input::-webkit-search-decoration{appearance:none;display:none}.bx-native-search-input::placeholder{color:var(--bx-text-secondary)}.bx-native-search-input:disabled{color:var(--bx-text-secondary);cursor:not-allowed}.bx-native-search-input[readonly]:not(:disabled){cursor:default}.bx-search-clear-btn{transition-property:color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:transparent;border:none;padding:.25rem;inline-size:1.5rem;block-size:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-search-clear-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-search-clear-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-search-clear-btn:disabled{cursor:not-allowed;opacity:.5}.bx-search-clear-btn.hidden{opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none}.bx-search-feedback{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:.5rem;color:var(--bx-text-secondary);font-size:.875rem}.bx-search-feedback.has-status{padding-block-start:var(--bx-search-feedback-gap, .5rem)}:host(.bx-readonly):not(:has(input:disabled)) button:disabled{cursor:default}.bx-search-status{display:grid;inline-size:100%;min-inline-size:0;line-height:1.5}.bx-search-status>span{grid-area:1/1;overflow-wrap:anywhere}.bx-search-status-reserve{visibility:hidden}.bx-search-error{color:var(--bx-text-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-search-input-wrapper[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-search-input-wrapper[data-bx-surface]:after{display:none}.bx-search-input-wrapper[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-search-input-wrapper[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-search-input-wrapper[data-bx-surface].is-open:not(:disabled),.bx-search-input-wrapper[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-search-input-wrapper[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-search-input-wrapper[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}\n"]
2976
3086
  }]
2977
3087
  }],
2978
3088
  ctorParameters: () => [],
@@ -3553,6 +3663,10 @@ var BxSelectBase = class BxSelectBase extends BxValueControl {
3553
3663
  debouncing = signal(false, ...ngDevMode ? [{ debugName: "debouncing" }] : /* istanbul ignore next */ []);
3554
3664
  searchRequest = signal(false, ...ngDevMode ? [{ debugName: "searchRequest" }] : /* istanbul ignore next */ []);
3555
3665
  knownOptions = signal([], ...ngDevMode ? [{ debugName: "knownOptions" }] : /* istanbul ignore next */ []);
3666
+ hasSelection = computed(() => this.internalValue() !== null && this.internalValue() !== void 0, ...ngDevMode ? [{ debugName: "hasSelection" }] : /* istanbul ignore next */ []);
3667
+ showClear = computed(() => this.clearable() && this.hasSelection() && !this.isReadonly(), ...ngDevMode ? [{ debugName: "showClear" }] : /* istanbul ignore next */ []);
3668
+ resolvedClearLabel = computed(() => resolveText(this.clearLabel(), this.i18n), ...ngDevMode ? [{ debugName: "resolvedClearLabel" }] : /* istanbul ignore next */ []);
3669
+ resolvedClearTooltip = computed(() => resolveText(this.clearTooltip() ?? this.clearLabel(), this.i18n), ...ngDevMode ? [{ debugName: "resolvedClearTooltip" }] : /* istanbul ignore next */ []);
3556
3670
  panelScrollStrategy = this.overlay.scrollStrategies.noop();
3557
3671
  isPanelAttached = signal(false, ...ngDevMode ? [{ debugName: "isPanelAttached" }] : /* istanbul ignore next */ []);
3558
3672
  searchTerm = computed(() => this.searchValue(), ...ngDevMode ? [{ debugName: "searchTerm" }] : /* istanbul ignore next */ []);
@@ -3601,6 +3715,9 @@ var BxSelectBase = class BxSelectBase extends BxValueControl {
3601
3715
  overflowTagTooltip = computed(() => this.selectedOptions().slice(this.visibleTagCount()).map((option) => resolveText(option.label, this.i18n)).join(", "), ...ngDevMode ? [{ debugName: "overflowTagTooltip" }] : /* istanbul ignore next */ []);
3602
3716
  resolvedLoadingAriaLabel = computed(() => resolveText(this.loadingAriaLabel(), this.i18n), ...ngDevMode ? [{ debugName: "resolvedLoadingAriaLabel" }] : /* istanbul ignore next */ []);
3603
3717
  resolvedLoadingLabel = computed(() => resolveText(this.loadingLabel(), this.i18n), ...ngDevMode ? [{ debugName: "resolvedLoadingLabel" }] : /* istanbul ignore next */ []);
3718
+ clearable = input(true, ...ngDevMode ? [{ debugName: "clearable" }] : /* istanbul ignore next */ []);
3719
+ clearLabel = input("Clear selection", ...ngDevMode ? [{ debugName: "clearLabel" }] : /* istanbul ignore next */ []);
3720
+ clearTooltip = input(void 0, ...ngDevMode ? [{ debugName: "clearTooltip" }] : /* istanbul ignore next */ []);
3604
3721
  selectionDisplay = input("text", ...ngDevMode ? [{ debugName: "selectionDisplay" }] : /* istanbul ignore next */ []);
3605
3722
  tagConfig = input({}, ...ngDevMode ? [{ debugName: "tagConfig" }] : /* istanbul ignore next */ []);
3606
3723
  overflowTagConfig = input({}, ...ngDevMode ? [{ debugName: "overflowTagConfig" }] : /* istanbul ignore next */ []);
@@ -3807,6 +3924,14 @@ var BxSelectBase = class BxSelectBase extends BxValueControl {
3807
3924
  if (this.originRef?.nativeElement.contains(clickTarget)) return;
3808
3925
  this.close();
3809
3926
  }
3927
+ clearSelectedValue(value) {
3928
+ if (this.disabled() || this.isReadonly()) return false;
3929
+ this.updateValue(value);
3930
+ this.close();
3931
+ this.markAsTouched();
3932
+ this.focus({ preventScroll: true });
3933
+ return true;
3934
+ }
3810
3935
  onSearchChange(value) {
3811
3936
  clearTimeout(this.searchTimeout);
3812
3937
  this.debouncing.set(true);
@@ -3851,6 +3976,27 @@ var BxSelectBase = class BxSelectBase extends BxValueControl {
3851
3976
  type: BxSelectBase,
3852
3977
  isStandalone: true,
3853
3978
  inputs: {
3979
+ clearable: {
3980
+ classPropertyName: "clearable",
3981
+ publicName: "clearable",
3982
+ isSignal: true,
3983
+ isRequired: false,
3984
+ transformFunction: null
3985
+ },
3986
+ clearLabel: {
3987
+ classPropertyName: "clearLabel",
3988
+ publicName: "clearLabel",
3989
+ isSignal: true,
3990
+ isRequired: false,
3991
+ transformFunction: null
3992
+ },
3993
+ clearTooltip: {
3994
+ classPropertyName: "clearTooltip",
3995
+ publicName: "clearTooltip",
3996
+ isSignal: true,
3997
+ isRequired: false,
3998
+ transformFunction: null
3999
+ },
3854
4000
  selectionDisplay: {
3855
4001
  classPropertyName: "selectionDisplay",
3856
4002
  publicName: "selectionDisplay",
@@ -4067,6 +4213,30 @@ i0.ɵɵngDeclareClassMetadata({
4067
4213
  type: i0.ViewChild,
4068
4214
  args: ["labelOverflow", { isSignal: true }]
4069
4215
  }],
4216
+ clearable: [{
4217
+ type: i0.Input,
4218
+ args: [{
4219
+ isSignal: true,
4220
+ alias: "clearable",
4221
+ required: false
4222
+ }]
4223
+ }],
4224
+ clearLabel: [{
4225
+ type: i0.Input,
4226
+ args: [{
4227
+ isSignal: true,
4228
+ alias: "clearLabel",
4229
+ required: false
4230
+ }]
4231
+ }],
4232
+ clearTooltip: [{
4233
+ type: i0.Input,
4234
+ args: [{
4235
+ isSignal: true,
4236
+ alias: "clearTooltip",
4237
+ required: false
4238
+ }]
4239
+ }],
4070
4240
  selectionDisplay: [{
4071
4241
  type: i0.Input,
4072
4242
  args: [{
@@ -4274,6 +4444,13 @@ i0.ɵɵngDeclareClassMetadata({
4274
4444
  });
4275
4445
  var Select = class Select extends BxSelectBase {
4276
4446
  selectionChange = output();
4447
+ clearSelection() {
4448
+ if (!this.clearSelectedValue(null)) return;
4449
+ this.selectionChange.emit({
4450
+ value: null,
4451
+ source: "clear"
4452
+ });
4453
+ }
4277
4454
  isSelected(value) {
4278
4455
  const selected = this.internalValue();
4279
4456
  return selected !== null && this.compareWith()(selected, value);
@@ -4304,8 +4481,8 @@ var Select = class Select extends BxSelectBase {
4304
4481
  outputs: { selectionChange: "selectionChange" },
4305
4482
  usesInheritance: true,
4306
4483
  ngImport: i0,
4307
- template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"resolvedTooltipOnTruncate() ? (selectionDisplay() === 'tags' ? selectedOptionLabel() : truncatedSelectionTooltip()) : ''\" [bxTooltipHover]=\"selectionDisplay() !== 'tags'\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n </span>\n } @else { {{ selectedOptionLabel() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <span class=\"bx-select-check-placeholder\" aria-hidden=\"true\">\n @if (isSelected(option.value)) { <bx-icon name=\"check\" size=\"16\" /> }\n </span>\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
4308
- styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0 .75rem 0 0;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-left:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}\n"],
4484
+ template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <div class=\"bx-select-control\" [class.has-clear]=\"showClear()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"resolvedTooltipOnTruncate() ? (selectionDisplay() === 'tags' ? selectedOptionLabel() : truncatedSelectionTooltip()) : ''\" [bxTooltipHover]=\"selectionDisplay() !== 'tags'\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n </span>\n } @else { {{ selectedOptionLabel() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n @if (showClear()) {\n <button bx-button type=\"button\" variant=\"text\" class=\"bx-select-clear\" [surfaceEffects]=\"false\" [disabled]=\"disabled()\"\n [attr.aria-label]=\"resolvedClearLabel()\" [bxTooltip]=\"resolvedClearTooltip()\" (click)=\"clearSelection()\">\n <bx-icon name=\"x\" size=\"16\" />\n </button>\n }\n </div>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <span class=\"bx-select-check-placeholder\" aria-hidden=\"true\">\n @if (isSelected(option.value)) { <bx-icon name=\"check\" size=\"16\" /> }\n </span>\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
4485
+ styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0;padding-inline-end:.75rem;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-inline-start:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}[role=listbox]{display:flex;flex-direction:column;gap:var(--bx-select-option-gap, .25rem)}.bx-select-option>span:last-child{min-inline-size:0;overflow-wrap:anywhere}.bx-select-control{position:relative;inline-size:100%;min-inline-size:0}.bx-select-control.has-clear .bx-select-container{padding-inline-end:2rem}.bx-select-control.has-clear .bx-select-measure{inset-inline-end:2rem}.bx-select-clear.bx-btn{transition-property:color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:transparent;border:none;padding:.25rem;inline-size:1.5rem;block-size:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-select-clear.bx-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-select-clear.bx-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-select-clear.bx-btn:disabled{cursor:not-allowed;opacity:.5}.bx-select-clear.bx-btn{position:absolute;inset-block-start:50%;inset-inline-end:calc(1px + 2.25rem);transform:translateY(-50%);z-index:3}\n"],
4309
4486
  dependencies: [
4310
4487
  {
4311
4488
  kind: "directive",
@@ -4393,6 +4570,21 @@ var Select = class Select extends BxSelectBase {
4393
4570
  "subscriptSizing"
4394
4571
  ]
4395
4572
  },
4573
+ {
4574
+ kind: "component",
4575
+ type: Button,
4576
+ selector: "bx-button, button[bx-button], a[bx-button]",
4577
+ inputs: [
4578
+ "variant",
4579
+ "color",
4580
+ "outlined",
4581
+ "elevated",
4582
+ "disabled",
4583
+ "loading",
4584
+ "interactive",
4585
+ "surfaceEffects"
4586
+ ]
4587
+ },
4396
4588
  {
4397
4589
  kind: "component",
4398
4590
  type: Icon,
@@ -4525,6 +4717,7 @@ i0.ɵɵngDeclareClassMetadata({
4525
4717
  BxSurfaceDirective,
4526
4718
  OverlayModule,
4527
4719
  FormField,
4720
+ Button,
4528
4721
  Icon,
4529
4722
  SearchInput,
4530
4723
  LoadMoreDirective,
@@ -4536,8 +4729,8 @@ i0.ɵɵngDeclareClassMetadata({
4536
4729
  TruncateDirective
4537
4730
  ],
4538
4731
  changeDetection: ChangeDetectionStrategy.OnPush,
4539
- template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"resolvedTooltipOnTruncate() ? (selectionDisplay() === 'tags' ? selectedOptionLabel() : truncatedSelectionTooltip()) : ''\" [bxTooltipHover]=\"selectionDisplay() !== 'tags'\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n </span>\n } @else { {{ selectedOptionLabel() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <span class=\"bx-select-check-placeholder\" aria-hidden=\"true\">\n @if (isSelected(option.value)) { <bx-icon name=\"check\" size=\"16\" /> }\n </span>\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
4540
- styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0 .75rem 0 0;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-left:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}\n"]
4732
+ template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <div class=\"bx-select-control\" [class.has-clear]=\"showClear()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"resolvedTooltipOnTruncate() ? (selectionDisplay() === 'tags' ? selectedOptionLabel() : truncatedSelectionTooltip()) : ''\" [bxTooltipHover]=\"selectionDisplay() !== 'tags'\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n </span>\n } @else { {{ selectedOptionLabel() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n @if (showClear()) {\n <button bx-button type=\"button\" variant=\"text\" class=\"bx-select-clear\" [surfaceEffects]=\"false\" [disabled]=\"disabled()\"\n [attr.aria-label]=\"resolvedClearLabel()\" [bxTooltip]=\"resolvedClearTooltip()\" (click)=\"clearSelection()\">\n <bx-icon name=\"x\" size=\"16\" />\n </button>\n }\n </div>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <span class=\"bx-select-check-placeholder\" aria-hidden=\"true\">\n @if (isSelected(option.value)) { <bx-icon name=\"check\" size=\"16\" /> }\n </span>\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
4733
+ styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0;padding-inline-end:.75rem;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-inline-start:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}[role=listbox]{display:flex;flex-direction:column;gap:var(--bx-select-option-gap, .25rem)}.bx-select-option>span:last-child{min-inline-size:0;overflow-wrap:anywhere}.bx-select-control{position:relative;inline-size:100%;min-inline-size:0}.bx-select-control.has-clear .bx-select-container{padding-inline-end:2rem}.bx-select-control.has-clear .bx-select-measure{inset-inline-end:2rem}.bx-select-clear.bx-btn{transition-property:color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:transparent;border:none;padding:.25rem;inline-size:1.5rem;block-size:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-select-clear.bx-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-select-clear.bx-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-select-clear.bx-btn:disabled{cursor:not-allowed;opacity:.5}.bx-select-clear.bx-btn{position:absolute;inset-block-start:50%;inset-inline-end:calc(1px + 2.25rem);transform:translateY(-50%);z-index:3}\n"]
4541
4734
  }]
4542
4735
  }],
4543
4736
  propDecorators: { selectionChange: [{
@@ -4961,8 +5154,15 @@ function summaryThreshold(value) {
4961
5154
  var MultiSelect = class MultiSelect extends BxSelectBase {
4962
5155
  summaryOverflow = viewChild("summaryOverflow", ...ngDevMode ? [{ debugName: "summaryOverflow" }] : /* istanbul ignore next */ []);
4963
5156
  labelsAdapter = inject(BX_I18N, { optional: true });
5157
+ hasSelection = computed(() => !!this.internalValue()?.length || this.selectAll(), ...ngDevMode ? [{ debugName: "hasSelection" }] : /* istanbul ignore next */ []);
4964
5158
  resolvedSelectAllLabel = computed(() => resolveText(this.selectAllLabel(), this.labelsAdapter), ...ngDevMode ? [{ debugName: "resolvedSelectAllLabel" }] : /* istanbul ignore next */ []);
4965
- someSelected = computed(() => this.filteredOptions().some((option) => this.isSelected(option.value)), ...ngDevMode ? [{ debugName: "someSelected" }] : /* istanbul ignore next */ []);
5159
+ selectableOptions = computed(() => this.filteredOptions().filter((option) => !option.disabled && !option.groupDisabled), ...ngDevMode ? [{ debugName: "selectableOptions" }] : /* istanbul ignore next */ []);
5160
+ allLoadedSelected = computed(() => {
5161
+ const options = this.selectableOptions();
5162
+ return options.length > 0 && options.every((option) => this.isSelected(option.value));
5163
+ }, ...ngDevMode ? [{ debugName: "allLoadedSelected" }] : /* istanbul ignore next */ []);
5164
+ selectAllChecked = computed(() => this.selectAll() || this.allLoadedSelected(), ...ngDevMode ? [{ debugName: "selectAllChecked" }] : /* istanbul ignore next */ []);
5165
+ someSelected = computed(() => this.selectableOptions().some((option) => this.isSelected(option.value)), ...ngDevMode ? [{ debugName: "someSelected" }] : /* istanbul ignore next */ []);
4966
5166
  usesSummary = computed(() => {
4967
5167
  const count = this.internalValue()?.length ?? 0;
4968
5168
  return this.selectionDisplay() === "tags" && this.selectedOptions().length > this.visibleTagCount() || !!(this.selectAll() && this.allSelectedText()) || count > this.summaryThreshold() || count >= 2 && (this.summaryOverflow()?.truncated() ?? false);
@@ -4973,10 +5173,19 @@ var MultiSelect = class MultiSelect extends BxSelectBase {
4973
5173
  const count = this.internalValue()?.length ?? 0;
4974
5174
  return resolveText(this.selectedCountText(), this.labelsAdapter, { count }).replaceAll("{count}", String(count));
4975
5175
  }, ...ngDevMode ? [{ debugName: "displayedSelection" }] : /* istanbul ignore next */ []);
5176
+ resolvedAllSelectedTooltip = computed(() => {
5177
+ const text = this.allSelectedTooltip();
5178
+ if (text === false) return "";
5179
+ if (text === void 0) return this.resolvedTooltipOnTruncate() ? this.selectedOptionLabel() : "";
5180
+ return resolveText(text, this.labelsAdapter);
5181
+ }, ...ngDevMode ? [{ debugName: "resolvedAllSelectedTooltip" }] : /* istanbul ignore next */ []);
4976
5182
  selectionTooltip = computed(() => {
4977
- if (!this.resolvedTooltipOnTruncate() || this.isOpen()) return "";
5183
+ if (this.isOpen()) return "";
5184
+ if (this.selectAll()) return this.resolvedAllSelectedTooltip();
5185
+ if (!this.resolvedTooltipOnTruncate()) return "";
4978
5186
  return this.selectionDisplay() === "tags" || this.usesSummary() ? this.selectedOptionLabel() : this.truncatedSelectionTooltip();
4979
5187
  }, ...ngDevMode ? [{ debugName: "selectionTooltip" }] : /* istanbul ignore next */ []);
5188
+ allSelectedTooltip = input(void 0, ...ngDevMode ? [{ debugName: "allSelectedTooltip" }] : /* istanbul ignore next */ []);
4980
5189
  allSelectedText = input(void 0, ...ngDevMode ? [{ debugName: "allSelectedText" }] : /* istanbul ignore next */ []);
4981
5190
  selectedCountText = input("{count} selected", ...ngDevMode ? [{ debugName: "selectedCountText" }] : /* istanbul ignore next */ []);
4982
5191
  summaryThreshold = input(2, {
@@ -5014,13 +5223,24 @@ var MultiSelect = class MultiSelect extends BxSelectBase {
5014
5223
  this.scope = scope;
5015
5224
  });
5016
5225
  }
5226
+ clearSelection() {
5227
+ if (this.disabled() || this.isReadonly()) return;
5228
+ const hadIntent = this.selectAll();
5229
+ this.selectAll.set(false);
5230
+ this.clearSelectedValue([]);
5231
+ this.selectionChange.emit({
5232
+ value: [],
5233
+ source: "clear"
5234
+ });
5235
+ if (hadIntent) this.emitIntent(false, "clear");
5236
+ }
5017
5237
  isSelected(value) {
5018
5238
  return (this.internalValue() ?? []).some((item) => this.compareWith()(item, value));
5019
5239
  }
5020
5240
  toggleSelectAll() {
5021
5241
  if (this.disabled() || this.isReadonly()) return;
5022
- const enabled = !this.selectAll();
5023
- const eligible = this.filteredOptions().filter((option) => !option.disabled && !option.groupDisabled);
5242
+ const enabled = !this.selectAllChecked();
5243
+ const eligible = this.selectableOptions();
5024
5244
  const current = this.internalValue() ?? [];
5025
5245
  const values = enabled ? [...current, ...eligible.filter((option) => !this.isSelected(option.value)).map((option) => option.value)] : current.filter((value) => !eligible.some((option) => this.compareWith()(value, option.value)));
5026
5246
  this.selectAll.set(enabled);
@@ -5075,6 +5295,13 @@ var MultiSelect = class MultiSelect extends BxSelectBase {
5075
5295
  isStandalone: true,
5076
5296
  selector: "bx-multi-select",
5077
5297
  inputs: {
5298
+ allSelectedTooltip: {
5299
+ classPropertyName: "allSelectedTooltip",
5300
+ publicName: "allSelectedTooltip",
5301
+ isSignal: true,
5302
+ isRequired: false,
5303
+ transformFunction: null
5304
+ },
5078
5305
  allSelectedText: {
5079
5306
  classPropertyName: "allSelectedText",
5080
5307
  publicName: "allSelectedText",
@@ -5139,8 +5366,8 @@ var MultiSelect = class MultiSelect extends BxSelectBase {
5139
5366
  }],
5140
5367
  usesInheritance: true,
5141
5368
  ngImport: i0,
5142
- template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"selectionTooltip()\" [bxTooltipHover]=\"selectionDisplay() !== 'tags'\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @if (selectAll() && allSelectedText()) {\n <bx-tag [text]=\"allSelectedText()\" [config]=\"tagConfig()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n } @else {\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n }\n </span>\n } @else { {{ displayedSelection() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n <span class=\"bx-select-measure\" bxTruncate #summaryOverflow=\"bxTruncate\" aria-hidden=\"true\">{{ selectedOptionLabel() }}</span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n @if (showSelectAll()) {\n <button type=\"button\" class=\"bx-select-all\" role=\"checkbox\" [attr.aria-checked]=\"selectAll() ? 'true' : someSelected() ? 'mixed' : 'false'\"\n [disabled]=\"disabled() || isReadonly()\" (click)=\"toggleSelectAll()\">\n <span class=\"bx-multi-checkbox\" aria-hidden=\"true\">@if (selectAll()) { <bx-icon name=\"check\" size=\"16\" /> } @else if (someSelected()) { <bx-icon name=\"minus\" size=\"16\" /> }</span>\n {{ resolvedSelectAllLabel() }}\n </button>\n }\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-multiselectable]=\"true\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <span class=\"bx-select-check-placeholder bx-multi-checkbox\" aria-hidden=\"true\">\n @if (isSelected(option.value)) { <bx-icon name=\"check\" size=\"16\" /> }\n </span>\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
5143
- styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0 .75rem 0 0;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-left:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}.bx-select-all{display:flex;align-items:center;gap:.5rem;padding:.75rem;border:0;border-bottom:1px solid var(--bx-border-subtle);background:transparent;color:var(--bx-text-primary);font:inherit;text-align:start;cursor:pointer}.bx-multi-checkbox{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem;flex:0 0 auto;border:1px solid var(--bx-border-strong);color:var(--bx-text-accent)}.bx-select-all:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:-2px}\n"],
5369
+ template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <div class=\"bx-select-control\" [class.has-clear]=\"showClear()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"selectionTooltip()\" [bxTooltipHover]=\"selectionDisplay() !== 'tags' || (selectAll() && !!allSelectedText())\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' && !(selectAll() && allSelectedText()) ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @if (selectAll() && allSelectedText()) {\n <bx-tag [text]=\"allSelectedText()\" [config]=\"tagConfig()\" [focusable]=\"false\" [tooltip]=\"''\" [tooltipOnTruncate]=\"false\" />\n } @else {\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n }\n </span>\n } @else { {{ displayedSelection() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n <span class=\"bx-select-measure\" bxTruncate #summaryOverflow=\"bxTruncate\" aria-hidden=\"true\">{{ selectedOptionLabel() }}</span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n @if (showClear()) {\n <button bx-button type=\"button\" variant=\"text\" class=\"bx-select-clear\" [surfaceEffects]=\"false\" [disabled]=\"disabled()\"\n [attr.aria-label]=\"resolvedClearLabel()\" [bxTooltip]=\"resolvedClearTooltip()\" (click)=\"clearSelection()\">\n <bx-icon name=\"x\" size=\"16\" />\n </button>\n }\n </div>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n @if (showSelectAll()) {\n <button type=\"button\" class=\"bx-select-all\" role=\"checkbox\" [attr.aria-checked]=\"selectAllChecked() ? 'true' : someSelected() ? 'mixed' : 'false'\"\n [disabled]=\"disabled() || isReadonly()\" (click)=\"toggleSelectAll()\">\n <bx-checkbox-indicator [checked]=\"selectAllChecked()\" [indeterminate]=\"!selectAllChecked() && someSelected()\" [disabled]=\"disabled()\" />\n {{ resolvedSelectAllLabel() }}\n </button>\n }\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-multiselectable]=\"true\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <bx-checkbox-indicator [checked]=\"isSelected(option.value)\" [disabled]=\"disabled() || !!option.disabled || !!option.groupDisabled\" />\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
5370
+ styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0;padding-inline-end:.75rem;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-inline-start:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}[role=listbox]{display:flex;flex-direction:column;gap:var(--bx-select-option-gap, .25rem)}.bx-select-option>span:last-child{min-inline-size:0;overflow-wrap:anywhere}.bx-select-control{position:relative;inline-size:100%;min-inline-size:0}.bx-select-control.has-clear .bx-select-container{padding-inline-end:2rem}.bx-select-control.has-clear .bx-select-measure{inset-inline-end:2rem}.bx-select-clear.bx-btn{transition-property:color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:transparent;border:none;padding:.25rem;inline-size:1.5rem;block-size:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-select-clear.bx-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-select-clear.bx-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-select-clear.bx-btn:disabled{cursor:not-allowed;opacity:.5}.bx-select-clear.bx-btn{position:absolute;inset-block-start:50%;inset-inline-end:calc(1px + 2.25rem);transform:translateY(-50%);z-index:3}.bx-select-all{display:flex;align-items:center;gap:.5rem;padding:.75rem;border:0;border-bottom:1px solid var(--bx-border-subtle);background:transparent;color:var(--bx-text-primary);font:inherit;text-align:start;cursor:pointer}.bx-select-all:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:-2px}\n"],
5144
5371
  dependencies: [
5145
5372
  {
5146
5373
  kind: "directive",
@@ -5228,6 +5455,32 @@ var MultiSelect = class MultiSelect extends BxSelectBase {
5228
5455
  "subscriptSizing"
5229
5456
  ]
5230
5457
  },
5458
+ {
5459
+ kind: "component",
5460
+ type: Button,
5461
+ selector: "bx-button, button[bx-button], a[bx-button]",
5462
+ inputs: [
5463
+ "variant",
5464
+ "color",
5465
+ "outlined",
5466
+ "elevated",
5467
+ "disabled",
5468
+ "loading",
5469
+ "interactive",
5470
+ "surfaceEffects"
5471
+ ]
5472
+ },
5473
+ {
5474
+ kind: "component",
5475
+ type: CheckboxIndicator,
5476
+ selector: "bx-checkbox-indicator",
5477
+ inputs: [
5478
+ "checked",
5479
+ "indeterminate",
5480
+ "invalid",
5481
+ "disabled"
5482
+ ]
5483
+ },
5231
5484
  {
5232
5485
  kind: "component",
5233
5486
  type: Icon,
@@ -5360,6 +5613,8 @@ i0.ɵɵngDeclareClassMetadata({
5360
5613
  BxSurfaceDirective,
5361
5614
  OverlayModule,
5362
5615
  FormField,
5616
+ Button,
5617
+ CheckboxIndicator,
5363
5618
  Icon,
5364
5619
  SearchInput,
5365
5620
  LoadMoreDirective,
@@ -5371,8 +5626,8 @@ i0.ɵɵngDeclareClassMetadata({
5371
5626
  Tag
5372
5627
  ],
5373
5628
  changeDetection: ChangeDetectionStrategy.OnPush,
5374
- template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"selectionTooltip()\" [bxTooltipHover]=\"selectionDisplay() !== 'tags'\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @if (selectAll() && allSelectedText()) {\n <bx-tag [text]=\"allSelectedText()\" [config]=\"tagConfig()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n } @else {\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n }\n </span>\n } @else { {{ displayedSelection() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n <span class=\"bx-select-measure\" bxTruncate #summaryOverflow=\"bxTruncate\" aria-hidden=\"true\">{{ selectedOptionLabel() }}</span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n @if (showSelectAll()) {\n <button type=\"button\" class=\"bx-select-all\" role=\"checkbox\" [attr.aria-checked]=\"selectAll() ? 'true' : someSelected() ? 'mixed' : 'false'\"\n [disabled]=\"disabled() || isReadonly()\" (click)=\"toggleSelectAll()\">\n <span class=\"bx-multi-checkbox\" aria-hidden=\"true\">@if (selectAll()) { <bx-icon name=\"check\" size=\"16\" /> } @else if (someSelected()) { <bx-icon name=\"minus\" size=\"16\" /> }</span>\n {{ resolvedSelectAllLabel() }}\n </button>\n }\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-multiselectable]=\"true\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <span class=\"bx-select-check-placeholder bx-multi-checkbox\" aria-hidden=\"true\">\n @if (isSelected(option.value)) { <bx-icon name=\"check\" size=\"16\" /> }\n </span>\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
5375
- styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0 .75rem 0 0;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-left:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}.bx-select-all{display:flex;align-items:center;gap:.5rem;padding:.75rem;border:0;border-bottom:1px solid var(--bx-border-subtle);background:transparent;color:var(--bx-text-primary);font:inherit;text-align:start;cursor:pointer}.bx-multi-checkbox{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem;flex:0 0 auto;border:1px solid var(--bx-border-strong);color:var(--bx-text-accent)}.bx-select-all:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:-2px}\n"]
5629
+ template: "<bx-form-field [control]=\"fieldControl\" [inline]=\"true\" [tooltip]=\"tooltip()\" [showLoadingIndicator]=\"false\"\n [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [subscriptSizing]=\"resolvedSubscriptSizing()\" [forId]=\"controlId()\">\n <div class=\"bx-select-control\" [class.has-clear]=\"showClear()\">\n <button type=\"button\" role=\"combobox\" aria-haspopup=\"listbox\" [bxTooltip]=\"selectionTooltip()\" [bxTooltipHover]=\"selectionDisplay() !== 'tags' || (selectAll() && !!allSelectedText())\" [bxTooltipTouch]=\"selectionDisplay() === 'tags' && !(selectAll() && allSelectedText()) ? 'none' : 'longpress'\" cdkOverlayOrigin bxSurface #origin=\"cdkOverlayOrigin\" class=\"bx-select-trigger\"\n [class.is-invalid]=\"showError()\" [class.is-outline]=\"resolvedAppearance() === 'outline'\" [class.is-open]=\"isOpen()\" [class.is-floating]=\"isFloating()\" [class.is-readonly]=\"isReadonly()\" [class.is-keyboard-focused]=\"keyboardFocused()\"\n [id]=\"controlId()\" [attr.data-testid]=\"dataTestId()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [attr.aria-describedby]=\"describedBy()\" [attr.aria-invalid]=\"showError()\" [attr.aria-required]=\"required()\" [attr.aria-readonly]=\"isReadonly()\" [attr.aria-busy]=\"loading() || pending() || isSearching()\"\n [disabled]=\"disabled()\" (click)=\"toggleOpen()\" (keydown)=\"onTriggerKey($event)\" (blur)=\"onTriggerBlur()\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-controls]=\"isPanelAttached() ? controlId() + '-options' : null\">\n <div class=\"bx-select-container\">\n @if (label()) {\n <span class=\"bx-floating-label\"><span [bxTruncate]=\"!isFloating()\" #labelOverflow=\"bxTruncate\">{{ resolvedLabel() }}</span>\n @if (required() && !resolvedHideRequiredMarker()) { <span class=\"bx-field-required\" aria-hidden=\"true\">*</span> }\n </span>\n }\n <span class=\"bx-select-value\" [class.is-placeholder]=\"!selectedOptionLabel()\" [bxTruncate]=\"!(selectionDisplay() === 'tags' && selectedOptions().length) && !triggerTemplate()\" #valueOverflow=\"bxTruncate\">\n @if (triggerTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"triggerContext()\" />\n } @else if (selectionDisplay() === 'tags' && selectedOptions().length) {\n <span class=\"bx-selected-tags\">\n @if (selectAll() && allSelectedText()) {\n <bx-tag [text]=\"allSelectedText()\" [config]=\"tagConfig()\" [focusable]=\"false\" [tooltip]=\"''\" [tooltipOnTruncate]=\"false\" />\n } @else {\n @for (option of visibleTags(); track option.value) {\n <bx-tag [text]=\"option.label\" [config]=\"selectionTagConfig(option)\" [disabled]=\"disabled() || !!option.disabled\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n @if (selectedOptions().length > visibleTagCount()) {\n <bx-tag class=\"bx-overflow-tag\" [text]=\"overflowTagLabel()\" [config]=\"overflowTagConfig()\" [tooltip]=\"overflowTagTooltip()\" [focusable]=\"false\" [tooltipOnTruncate]=\"resolvedTooltipOnTruncate() ? undefined : false\" />\n }\n }\n </span>\n } @else { {{ displayedSelection() || (isFloating() || !label() ? resolvedPlaceholder() : '') }} }\n </span>\n <span class=\"bx-select-measure\" bxTruncate #summaryOverflow=\"bxTruncate\" aria-hidden=\"true\">{{ selectedOptionLabel() }}</span>\n </div>\n <ng-content select=\"[bxSuffix]\" />\n <span class=\"bx-select-caret\" aria-hidden=\"true\">\n @if (loading() || pending() || isSearching()) { <bx-loading-spinner [size]=\"16\" [decorative]=\"true\" /> }\n @else { <bx-icon name=\"chevron-down\" size=\"16\" /> }\n </span>\n </button>\n @if (showClear()) {\n <button bx-button type=\"button\" variant=\"text\" class=\"bx-select-clear\" [surfaceEffects]=\"false\" [disabled]=\"disabled()\"\n [attr.aria-label]=\"resolvedClearLabel()\" [bxTooltip]=\"resolvedClearTooltip()\" (click)=\"clearSelection()\">\n <bx-icon name=\"x\" size=\"16\" />\n </button>\n }\n </div>\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isPanelAttached()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" [cdkConnectedOverlayHasBackdrop]=\"false\"\n [cdkConnectedOverlayScrollStrategy]=\"panelScrollStrategy\" [cdkConnectedOverlayUsePopover]=\"overlayPopoverLocation(origin.elementRef.nativeElement)\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n (overlayOutsideClick)=\"onOutsideClick($event)\" (attach)=\"onPanelAttach()\" (detach)=\"onPanelDetach()\" (positionChange)=\"refreshPanel()\">\n <div class=\"bx-select-panel\" [class]=\"panelClass()\" data-bx-surface=\"solid\" tabindex=\"-1\" (keydown)=\"onPanelKey($event)\">\n @if (isSearchable()) {\n <div class=\"bx-select-search-container\">\n <bx-search-input #searchInput [value]=\"searchValue()\" [placeholder]=\"resolvedSearchPlaceholder()\" [ariaLabel]=\"resolvedSearchPlaceholder()\"\n (search)=\"onSearchChange($event)\" (keydown.enter)=\"$event.preventDefault()\" />\n </div>\n }\n @if (showSelectAll()) {\n <button type=\"button\" class=\"bx-select-all\" role=\"checkbox\" [attr.aria-checked]=\"selectAllChecked() ? 'true' : someSelected() ? 'mixed' : 'false'\"\n [disabled]=\"disabled() || isReadonly()\" (click)=\"toggleSelectAll()\">\n <bx-checkbox-indicator [checked]=\"selectAllChecked()\" [indeterminate]=\"!selectAllChecked() && someSelected()\" [disabled]=\"disabled()\" />\n {{ resolvedSelectAllLabel() }}\n </button>\n }\n <div class=\"bx-select-menu-container\" bxLoadMore #pagination=\"bxLoadMore\" [loadMoreHasMore]=\"hasMore()\" [loadMoreSuppressed]=\"isSearching()\" [loadMoreLoading]=\"loading()\"\n [loadMoreDisabled]=\"disabled() || isReadonly()\" [loadMoreError]=\"loadError()\" [loadMoreConfig]=\"loadMoreConfig()\"\n [loadMoreTemplate]=\"loadMoreTemplate()\" [loadMoreRevision]=\"options()\" (loadMore)=\"requestMore($event)\">\n <div role=\"listbox\" [hidden]=\"isSearching()\" [attr.aria-multiselectable]=\"true\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [id]=\"controlId() + '-options'\">\n @for (option of filteredOptions(); track option.value; let index = $index) {\n @if (option.resolvedGroup && (index === 0 || filteredOptions()[index - 1].resolvedGroup !== option.resolvedGroup)) {\n <div class=\"bx-select-group\" [id]=\"controlId() + '-group-' + index\">{{ option.resolvedGroup }}</div>\n }\n <button type=\"button\" class=\"bx-select-option\" role=\"option\" tabindex=\"-1\" [attr.aria-selected]=\"isSelected(option.value)\"\n [disabled]=\"option.disabled || option.groupDisabled || false\" (click)=\"selectOption(option)\">\n <bx-checkbox-indicator [checked]=\"isSelected(option.value)\" [disabled]=\"disabled() || !!option.disabled || !!option.groupDisabled\" />\n @if (option.icon) { <bx-icon [name]=\"option.icon\" size=\"16\" /> }\n @if (optionTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: option, selected: isSelected(option.value), index: index }\" />\n } @else { <span>{{ option.resolvedStr }}</span> }\n </button>\n } @empty {\n @if (!loading()) { <div class=\"bx-select-empty\" role=\"status\">{{ resolvedEmptyMessage() }}</div> }\n }\n </div>\n @if (isSearching()) {\n <div class=\"bx-select-search-state\" role=\"status\" [attr.aria-label]=\"resolvedLoadingLabel() || resolvedLoadingAriaLabel()\">\n @if (resolvedLoadingLabel()) { <span>{{ resolvedLoadingLabel() }}</span> }\n @else { <bx-loading-spinner [size]=\"20\" [decorative]=\"true\" /> }\n </div>\n } @else if (loading() && !pagination.actionVisible()) { <div class=\"bx-select-loading\"><bx-loading-indicator [size]=\"16\" [label]=\"loadingLabel() ?? loadingAriaLabel()\" /></div> }\n </div>\n </div>\n </ng-template>\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
5630
+ styles: [":host{display:block;width:100%}.bx-select-trigger{position:relative;display:flex;align-items:center;width:100%;box-sizing:border-box;background-color:var(--bx-bg-neutral);border-radius:.25rem .25rem 0 0;border:none;border-bottom:1px solid var(--bx-border-strong);padding:0;padding-inline-end:.75rem;cursor:pointer;text-align:left;font-family:inherit;outline:none}.bx-select-trigger:hover:not(:disabled,.is-readonly){background-color:var(--bx-bg-neutral-hover)}.bx-select-trigger:disabled{background-color:var(--bx-bg-element);opacity:.7;border-bottom-style:dotted;cursor:not-allowed}.bx-select-trigger.is-readonly{cursor:default}.bx-select-trigger:after{content:\"\";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--bx-primary);transform:scaleX(0);transition:transform .2s cubic-bezier(.25,.8,.25,1);transform-origin:center;z-index:2}.bx-select-trigger.is-open:after,.bx-select-trigger:focus-visible:not(:disabled):after{transform:scaleX(1)}.bx-select-trigger.is-invalid{border-bottom-color:var(--bx-border-danger)}.bx-select-trigger.is-invalid:after{background-color:var(--bx-border-danger);transform:scaleX(1)}.bx-select-container{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.bx-select-value{width:100%;box-sizing:border-box;padding:1.5rem 0 .5rem .75rem;min-height:3rem;display:block;font-size:1rem;color:var(--bx-text-heading);line-height:1.4;z-index:1}.bx-select-value.is-placeholder{color:var(--bx-text-secondary)}.bx-floating-label{display:flex;align-items:baseline;position:absolute;left:.75rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--bx-text-secondary);pointer-events:none;z-index:2;transition:top .2s cubic-bezier(.25,.8,.25,1),transform .2s cubic-bezier(.25,.8,.25,1),font-size .2s cubic-bezier(.25,.8,.25,1),color .15s ease}.bx-select-trigger.is-floating .bx-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;font-weight:500}.bx-select-trigger.is-floating.is-open .bx-floating-label,.bx-select-trigger.is-floating:focus-visible:not(.is-readonly) .bx-floating-label{color:var(--bx-primary)}.bx-select-trigger.is-invalid .bx-floating-label{color:var(--bx-text-danger)!important}.bx-field-required{color:var(--bx-text-secondary);margin-left:.125rem}.bx-select-caret{flex-shrink:0;color:var(--bx-text-secondary);transition:transform .2s ease;margin-inline-start:.5rem;transform-origin:center}.is-open .bx-select-caret{transform:rotate(180deg)}.bx-select-panel{display:flex;flex-direction:column;box-sizing:border-box;min-width:100%;width:100%;max-width:100%;background-color:var(--bx-glass-surface, var(--bx-bg-surface));border:1px solid var(--bx-glass-edge, var(--bx-border-default));border-radius:.75rem;box-shadow:0 2px 4px #0000001a,0 1px 2px -1px #0000001a;overflow:hidden;max-height:18rem}.bx-select-search-container{display:flex;align-items:center;padding:.25rem;flex-shrink:0;border-bottom:1px solid var(--bx-border-subtle)}.bx-select-menu-container{min-height:0;overflow:hidden auto;padding:.25rem}.bx-select-menu-container::-webkit-scrollbar{width:6px}.bx-select-menu-container::-webkit-scrollbar-track{background:var(--bx-scroll-bg)}.bx-select-menu-container::-webkit-scrollbar-thumb{background:var(--bx-scroll-thumb);border-radius:9999px}.bx-select-menu-container::-webkit-scrollbar-thumb:hover{background:var(--bx-scroll-thumb-hover)}.bx-select-option{display:flex;width:100%;padding:.5rem .75rem;border:0;border-radius:.25rem;background:transparent;color:var(--bx-text-primary);font:inherit;font-size:.875rem;line-height:1.4;text-align:start;cursor:pointer}.bx-select-option[aria-selected=true]{background:var(--bx-accent-subtle);color:var(--bx-text-accent)}.bx-select-option:hover:not(:disabled),.bx-select-option:active:not(:disabled){background:var(--bx-bg-element-hover)}.bx-select-option[aria-selected=true]:hover:not(:disabled){background:var(--bx-accent-subtle)}.bx-select-option:focus-visible{outline:2px solid var(--bx-border-accent);outline-offset:-2px}.bx-select-option:disabled{opacity:.4;cursor:not-allowed}.bx-select-item-inner{display:flex;align-items:center;gap:.5rem;width:100%}.bx-select-check-placeholder{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--bx-text-accent)}.bx-select-empty{padding:.75rem;text-align:center;color:var(--bx-text-secondary);font-size:.875rem;font-style:italic}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-edge: var(--bx-border-danger)}.bx-select-panel[data-bx-surface]{--bx-glass-radius: var(--bx-rounded-lg, .75rem);--bx-glass-surface: var(--bx-bg-surface);--bx-glass-text: var(--bx-text-primary);--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);background:var(--bx-glass-surface)!important;-webkit-backdrop-filter:none;backdrop-filter:none}.bx-select-trigger[data-bx-surface]{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: var(--bx-border-default);--bx-glass-shadow: none;border:1px solid var(--bx-glass-edge);border-radius:.75rem}.bx-select-trigger[data-bx-surface]:after{display:none}.bx-select-trigger[data-bx-surface]:focus-within:not(.is-disabled,:disabled,.is-readonly,[readonly],[aria-readonly=true],:has([readonly],[aria-readonly=true])),.bx-select-trigger[data-bx-surface]:focus-visible:not(:disabled,[readonly],[aria-readonly=true]),.bx-select-trigger[data-bx-surface].is-open:not(:disabled),.bx-select-trigger[data-bx-surface].is-readonly.is-keyboard-focused:focus-within,.bx-select-trigger[data-bx-surface]:has(.bx-readonly.is-keyboard-focused):focus-within{--bx-glass-edge: var(--bx-border-brand);outline:2px solid var(--bx-border-brand);outline-offset:-2px;--bx-glass-shadow: none}.bx-select-trigger[data-bx-surface].is-invalid{--bx-glass-surface: var(--bx-bg-neutral);--bx-glass-min-opacity: .45;--bx-glass-edge: color-mix(in srgb, var(--bx-text-danger) 40%, var(--bx-border-default));border-block-end-color:var(--bx-glass-edge);--bx-glass-shadow: 0 8px 18px -10px color-mix(in srgb, var(--bx-text-danger) 65%, transparent);outline-color:var(--bx-border-danger)}.bx-select-trigger.is-floating .bx-floating-label{position:static;transform:none;padding:.5rem 0 0 .75rem;overflow-wrap:anywhere}.bx-select-trigger.is-floating .bx-select-value{padding-top:.25rem;min-height:2rem}.bx-select-trigger:not(.is-floating) .bx-floating-label{right:0}.bx-select-item-inner>span:last-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:anywhere}.bx-select-group{padding:.5rem .75rem;font-weight:600;color:var(--bx-text-secondary);font-size:.75rem}.bx-select-option{align-items:center;gap:.5rem}.bx-select-panel{max-block-size:min(var(--bx-select-panel-height, 22rem),70dvh)}.bx-select-menu-container{flex:1 1 auto}.bx-select-trigger.is-outline{border:1px solid var(--bx-border-strong);border-radius:var(--bx-field-radius, .5rem)}.bx-select-trigger.is-outline.is-invalid{border-color:var(--bx-border-danger)}.bx-select-panel{background:var(--bx-select-panel-background, var(--bx-bg-surface-alt));border-color:var(--bx-select-panel-border, var(--bx-border-strong));box-shadow:var(--bx-select-panel-shadow, 0 12px 20px -3px rgba(0, 0, 0, .2), 0 4px 6px -2px rgba(0, 0, 0, .1));isolation:isolate}.bx-select-measure{position:absolute;visibility:hidden;pointer-events:none;inset-inline:0;box-sizing:border-box;padding-inline-start:.75rem;font:inherit;font-size:1rem}.bx-select-caret{display:inline-flex;align-items:center;justify-content:center;inline-size:1rem;block-size:1rem}.bx-select-loading{padding:.5rem .75rem}.bx-select-menu-container{--bx-load-more-padding: .5rem .75rem}.bx-select-search-state{display:flex;justify-content:center;align-items:center;min-block-size:4rem;padding:.75rem;color:var(--bx-text-secondary)}[role=listbox][hidden]{display:none}.bx-selected-tags{display:flex;align-items:center;gap:var(--bx-select-tag-gap, .25rem);min-inline-size:0;max-inline-size:100%;overflow:hidden}.bx-selected-tags>bx-tag{min-inline-size:0}.bx-selected-tags>.bx-overflow-tag{flex:0 0 auto}[role=listbox]{display:flex;flex-direction:column;gap:var(--bx-select-option-gap, .25rem)}.bx-select-option>span:last-child{min-inline-size:0;overflow-wrap:anywhere}.bx-select-control{position:relative;inline-size:100%;min-inline-size:0}.bx-select-control.has-clear .bx-select-container{padding-inline-end:2rem}.bx-select-control.has-clear .bx-select-measure{inset-inline-end:2rem}.bx-select-clear.bx-btn{transition-property:color;transition-duration:calc(.15s * (1 - var(--bx-reduced-motion, 0)));transition-timing-function:ease;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:transparent;border:none;padding:.25rem;inline-size:1.5rem;block-size:1.5rem;border-radius:.25rem;color:var(--bx-text-secondary);cursor:pointer;flex-shrink:0}.bx-select-clear.bx-btn:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:0}.bx-select-clear.bx-btn:hover:not(:disabled){color:var(--bx-text-primary);background:var(--bx-bg-element-hover)}.bx-select-clear.bx-btn:disabled{cursor:not-allowed;opacity:.5}.bx-select-clear.bx-btn{position:absolute;inset-block-start:50%;inset-inline-end:calc(1px + 2.25rem);transform:translateY(-50%);z-index:3}.bx-select-all{display:flex;align-items:center;gap:.5rem;padding:.75rem;border:0;border-bottom:1px solid var(--bx-border-subtle);background:transparent;color:var(--bx-text-primary);font:inherit;text-align:start;cursor:pointer}.bx-select-all:focus-visible{outline:2px solid var(--bx-border-brand);outline-offset:-2px}\n"]
5376
5631
  }]
5377
5632
  }],
5378
5633
  ctorParameters: () => [],
@@ -5381,6 +5636,14 @@ i0.ɵɵngDeclareClassMetadata({
5381
5636
  type: i0.ViewChild,
5382
5637
  args: ["summaryOverflow", { isSignal: true }]
5383
5638
  }],
5639
+ allSelectedTooltip: [{
5640
+ type: i0.Input,
5641
+ args: [{
5642
+ isSignal: true,
5643
+ alias: "allSelectedTooltip",
5644
+ required: false
5645
+ }]
5646
+ }],
5384
5647
  allSelectedText: [{
5385
5648
  type: i0.Input,
5386
5649
  args: [{
@@ -5650,7 +5913,7 @@ var RangeSlider = class RangeSlider extends BxValueControl {
5650
5913
  usesInheritance: true,
5651
5914
  ngImport: i0,
5652
5915
  template: "<bx-form-field [control]=\"fieldControl\" [label]=\"label()\" [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [tooltip]=\"tooltip()\" [forId]=\"controlId()\">\n <div class=\"bx-range-slider\" role=\"group\" [class.is-readonly]=\"isReadonly() && !disabled()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [style.--bx-range-start]=\"startPercent() / 100\" [style.--bx-range-end]=\"endPercent() / 100\">\n <div class=\"bx-range-track\" aria-hidden=\"true\"></div>\n <div class=\"bx-range-input\">\n <input bxSlider type=\"range\" [id]=\"controlId()\" [min]=\"min()\" [max]=\"max()\" [attr.aria-valuemax]=\"end()\" [step]=\"step()\" [value]=\"start()\"\n [disabled]=\"disabled() || isReadonly()\" [attr.aria-label]=\"resolvedStartLabel()\" [attr.aria-valuetext]=\"displayWith()(start())\"\n [attr.aria-describedby]=\"describedBy()\" (input)=\"onRangeInput($event, 'start')\" (blur)=\"onBlur()\">\n </div>\n <div class=\"bx-range-input\">\n <input bxSlider type=\"range\" [min]=\"min()\" [max]=\"max()\" [attr.aria-valuemin]=\"start()\" [step]=\"step()\" [value]=\"end()\"\n [disabled]=\"disabled() || isReadonly()\" [attr.aria-label]=\"resolvedEndLabel()\" [attr.aria-valuetext]=\"displayWith()(end())\"\n [attr.aria-describedby]=\"describedBy()\" (input)=\"onRangeInput($event, 'end')\" (blur)=\"onBlur()\">\n </div>\n <div class=\"bx-range-ticks\" aria-hidden=\"true\">@for (tick of ticks(); track tick) { <span [style.inset-inline-start.%]=\"tick\"></span> }</div>\n </div>\n @if (discrete()) { <output class=\"bx-range-values\">{{ displayWith()(start()) }} – {{ displayWith()(end()) }}</output> }\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
5653
- styles: [":host{display:block}.bx-range-slider{--bx-slider-lens-start: var(--bx-range-start);--bx-slider-lens-end: var(--bx-range-end);--bx-slider-lens-track-color: var(--bx-bg-element);--bx-slider-fill-display: none;position:relative;block-size:2.5rem;inline-size:100%}.bx-range-track{position:absolute;inset-block-start:50%;inset-inline:0;block-size:.5rem;transform:translateY(-50%);border-radius:9999px;background:var(--bx-bg-element)}.bx-range-track:after{content:\"\";position:absolute;inset-block:0;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2 + var(--bx-range-start) * (100% - var(--bx-slider-thumb-size, 1.5rem))) calc(var(--bx-slider-thumb-size, 1.5rem) / 2 + (1 - var(--bx-range-end)) * (100% - var(--bx-slider-thumb-size, 1.5rem)));background:var(--bx-accent);border-radius:inherit}.bx-range-input{position:absolute;inset:0;pointer-events:none}.bx-range-input input{pointer-events:none}.bx-range-slider.is-readonly input:disabled{cursor:default}.bx-range-input input::-webkit-slider-runnable-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-moz-range-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-webkit-slider-thumb{pointer-events:auto}.bx-range-input input::-moz-range-thumb{pointer-events:auto}.bx-range-ticks{position:absolute;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2);inset-block-start:50%;pointer-events:none;z-index:3}.bx-range-ticks span{position:absolute;inline-size:2px;block-size:4px;background:var(--bx-text-primary);transform:translate(-50%,-50%)}.bx-range-ticks span:dir(rtl){transform:translate(50%,-50%)}.bx-range-values{color:var(--bx-text-secondary);font-size:.875rem}\n"],
5916
+ styles: [":host{display:block}.bx-range-slider{--bx-slider-lens-start: var(--bx-range-start);--bx-slider-lens-end: var(--bx-range-end);--bx-slider-lens-track-color: var(--bx-bg-neutral);--bx-slider-fill-display: none;position:relative;block-size:2.5rem;inline-size:100%}.bx-range-track{box-sizing:border-box;height:.5rem;border:1px solid var(--bx-border-strong);border-radius:9999px;background:var(--bx-bg-neutral);box-shadow:inset 0 1px 2px #00000029;position:absolute;inset-block-start:50%;inset-inline:0;transform:translateY(-50%)}.bx-range-track:after{content:\"\";position:absolute;inset-block:0;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2 - 1px + var(--bx-range-start) * (100% + 2px - var(--bx-slider-thumb-size, 1.5rem))) calc(var(--bx-slider-thumb-size, 1.5rem) / 2 - 1px + (1 - var(--bx-range-end)) * (100% + 2px - var(--bx-slider-thumb-size, 1.5rem)));background:var(--bx-accent);border-radius:inherit}.bx-range-input{position:absolute;inset:0;pointer-events:none}.bx-range-input input{pointer-events:none}.bx-range-slider.is-readonly input:disabled{cursor:default}.bx-range-input input::-webkit-slider-runnable-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-moz-range-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-webkit-slider-thumb{pointer-events:auto}.bx-range-input input::-moz-range-thumb{pointer-events:auto}.bx-range-ticks{position:absolute;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2);inset-block-start:50%;pointer-events:none;z-index:3}.bx-range-ticks span{position:absolute;inline-size:2px;block-size:4px;background:var(--bx-text-primary);transform:translate(-50%,-50%)}.bx-range-ticks span:dir(rtl){transform:translate(50%,-50%)}.bx-range-values{color:var(--bx-text-secondary);font-size:.875rem}\n"],
5654
5917
  dependencies: [{
5655
5918
  kind: "component",
5656
5919
  type: FormField,
@@ -5697,7 +5960,7 @@ i0.ɵɵngDeclareClassMetadata({
5697
5960
  imports: [FormField, SliderDirective],
5698
5961
  changeDetection: ChangeDetectionStrategy.OnPush,
5699
5962
  template: "<bx-form-field [control]=\"fieldControl\" [label]=\"label()\" [hint]=\"hint()\" [hintEnd]=\"hintEnd()\" [tooltip]=\"tooltip()\" [forId]=\"controlId()\">\n <div class=\"bx-range-slider\" role=\"group\" [class.is-readonly]=\"isReadonly() && !disabled()\" [attr.aria-label]=\"ariaLabel() || resolvedLabel()\" [style.--bx-range-start]=\"startPercent() / 100\" [style.--bx-range-end]=\"endPercent() / 100\">\n <div class=\"bx-range-track\" aria-hidden=\"true\"></div>\n <div class=\"bx-range-input\">\n <input bxSlider type=\"range\" [id]=\"controlId()\" [min]=\"min()\" [max]=\"max()\" [attr.aria-valuemax]=\"end()\" [step]=\"step()\" [value]=\"start()\"\n [disabled]=\"disabled() || isReadonly()\" [attr.aria-label]=\"resolvedStartLabel()\" [attr.aria-valuetext]=\"displayWith()(start())\"\n [attr.aria-describedby]=\"describedBy()\" (input)=\"onRangeInput($event, 'start')\" (blur)=\"onBlur()\">\n </div>\n <div class=\"bx-range-input\">\n <input bxSlider type=\"range\" [min]=\"min()\" [max]=\"max()\" [attr.aria-valuemin]=\"start()\" [step]=\"step()\" [value]=\"end()\"\n [disabled]=\"disabled() || isReadonly()\" [attr.aria-label]=\"resolvedEndLabel()\" [attr.aria-valuetext]=\"displayWith()(end())\"\n [attr.aria-describedby]=\"describedBy()\" (input)=\"onRangeInput($event, 'end')\" (blur)=\"onBlur()\">\n </div>\n <div class=\"bx-range-ticks\" aria-hidden=\"true\">@for (tick of ticks(); track tick) { <span [style.inset-inline-start.%]=\"tick\"></span> }</div>\n </div>\n @if (discrete()) { <output class=\"bx-range-values\">{{ displayWith()(start()) }} – {{ displayWith()(end()) }}</output> }\n <ng-content select=\"bx-error\" ngProjectAs=\"bx-error\" /><ng-content select=\"bx-hint\" ngProjectAs=\"bx-hint\" />\n</bx-form-field>\n",
5700
- styles: [":host{display:block}.bx-range-slider{--bx-slider-lens-start: var(--bx-range-start);--bx-slider-lens-end: var(--bx-range-end);--bx-slider-lens-track-color: var(--bx-bg-element);--bx-slider-fill-display: none;position:relative;block-size:2.5rem;inline-size:100%}.bx-range-track{position:absolute;inset-block-start:50%;inset-inline:0;block-size:.5rem;transform:translateY(-50%);border-radius:9999px;background:var(--bx-bg-element)}.bx-range-track:after{content:\"\";position:absolute;inset-block:0;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2 + var(--bx-range-start) * (100% - var(--bx-slider-thumb-size, 1.5rem))) calc(var(--bx-slider-thumb-size, 1.5rem) / 2 + (1 - var(--bx-range-end)) * (100% - var(--bx-slider-thumb-size, 1.5rem)));background:var(--bx-accent);border-radius:inherit}.bx-range-input{position:absolute;inset:0;pointer-events:none}.bx-range-input input{pointer-events:none}.bx-range-slider.is-readonly input:disabled{cursor:default}.bx-range-input input::-webkit-slider-runnable-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-moz-range-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-webkit-slider-thumb{pointer-events:auto}.bx-range-input input::-moz-range-thumb{pointer-events:auto}.bx-range-ticks{position:absolute;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2);inset-block-start:50%;pointer-events:none;z-index:3}.bx-range-ticks span{position:absolute;inline-size:2px;block-size:4px;background:var(--bx-text-primary);transform:translate(-50%,-50%)}.bx-range-ticks span:dir(rtl){transform:translate(50%,-50%)}.bx-range-values{color:var(--bx-text-secondary);font-size:.875rem}\n"]
5963
+ styles: [":host{display:block}.bx-range-slider{--bx-slider-lens-start: var(--bx-range-start);--bx-slider-lens-end: var(--bx-range-end);--bx-slider-lens-track-color: var(--bx-bg-neutral);--bx-slider-fill-display: none;position:relative;block-size:2.5rem;inline-size:100%}.bx-range-track{box-sizing:border-box;height:.5rem;border:1px solid var(--bx-border-strong);border-radius:9999px;background:var(--bx-bg-neutral);box-shadow:inset 0 1px 2px #00000029;position:absolute;inset-block-start:50%;inset-inline:0;transform:translateY(-50%)}.bx-range-track:after{content:\"\";position:absolute;inset-block:0;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2 - 1px + var(--bx-range-start) * (100% + 2px - var(--bx-slider-thumb-size, 1.5rem))) calc(var(--bx-slider-thumb-size, 1.5rem) / 2 - 1px + (1 - var(--bx-range-end)) * (100% + 2px - var(--bx-slider-thumb-size, 1.5rem)));background:var(--bx-accent);border-radius:inherit}.bx-range-input{position:absolute;inset:0;pointer-events:none}.bx-range-input input{pointer-events:none}.bx-range-slider.is-readonly input:disabled{cursor:default}.bx-range-input input::-webkit-slider-runnable-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-moz-range-track{background:transparent;border-color:transparent;box-shadow:none}.bx-range-input input::-webkit-slider-thumb{pointer-events:auto}.bx-range-input input::-moz-range-thumb{pointer-events:auto}.bx-range-ticks{position:absolute;inset-inline:calc(var(--bx-slider-thumb-size, 1.5rem) / 2);inset-block-start:50%;pointer-events:none;z-index:3}.bx-range-ticks span{position:absolute;inline-size:2px;block-size:4px;background:var(--bx-text-primary);transform:translate(-50%,-50%)}.bx-range-ticks span:dir(rtl){transform:translate(50%,-50%)}.bx-range-values{color:var(--bx-text-secondary);font-size:.875rem}\n"]
5701
5964
  }]
5702
5965
  }],
5703
5966
  propDecorators: {
@@ -5767,6 +6030,6 @@ i0.ɵɵngDeclareClassMetadata({
5767
6030
  }]
5768
6031
  }
5769
6032
  });
5770
- export { BX_FORM_FIELD_CONTROL, Button, ButtonIconDirective, BxError, BxHint, Checkbox, FormField, FormSettingsService, InputField, LoadMoreDirective, MultiSelect, NativeControlDirective, PrefixDirective, Radio, RadioGroup, RangeSlider, SearchInput, Select, SlideToggle, SliderDirective, SuffixDirective };
6033
+ export { BX_FORM_FIELD_CONTROL, Button, ButtonIconDirective, BxError, BxHint, Checkbox, CheckboxIndicator, FormField, FormSettingsService, InputField, LoadMoreDirective, MultiSelect, NativeControlDirective, PrefixDirective, Radio, RadioGroup, RangeSlider, SearchInput, Select, SlideToggle, SliderDirective, SuffixDirective };
5771
6034
 
5772
6035
  //# sourceMappingURL=filip.mazev-blocks-forms.mjs.map