@eui/eds 22.0.0-alpha.13 → 22.0.0-alpha.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/changelog.html +20 -0
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/documentation.json +3 -3
- package/docs/llms.txt +1 -1
- package/docs/properties.html +1 -1
- package/fesm2022/eui-eds-eds-fab-button.mjs +2 -2
- package/fesm2022/eui-eds-eds-fab-button.mjs.map +1 -1
- package/fesm2022/eui-eds-eds-icon-toggle.mjs +2 -2
- package/fesm2022/eui-eds-eds-icon-toggle.mjs.map +1 -1
- package/fesm2022/eui-eds-eds-tabs.mjs +2 -2
- package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -35473,7 +35473,7 @@
|
|
|
35473
35473
|
"assetsDirs": [],
|
|
35474
35474
|
"styleUrlsData": [
|
|
35475
35475
|
{
|
|
35476
|
-
"data": "@use '../base' as base;\n\n.eui-21 {\n :host.eds-fab-button {\n --_size: 56px;\n --_action-size: 40px;\n --_surface: var(--eds-c-surface-brand);\n --_on-surface: var(--eds-c-on-surface-brand);\n --_surface-hover: var(--eds-c-surface-brand--hover);\n --_shadow: var(--eds-sh-3);\n --_action-surface: var(--eds-c-surface-elevation);\n --_action-on-surface: var(--eds-c-foreground-default);\n --_action-surface-hover: var(--eds-c-surface-neutral-subtle--hover);\n --_action-shadow: var(--eds-sh-2);\n --_tooltip-surface: var(--eds-c-surface-inverse);\n --_tooltip-on-surface: var(--eds-c-on-surface-inverse);\n\n display: inline-block;\n position: relative;\n\n &.eds-fab-button--primary {\n --_surface: var(--eds-c-surface-primary);\n --_on-surface: var(--eds-c-on-surface-primary);\n --_surface-hover: var(--eds-c-surface-primary--hover);\n }\n\n &.eds-fab-button--neutral {\n --_surface: var(--eds-c-surface-neutral-subtle);\n --_on-surface: var(--eds-c-on-surface-neutral-subtle);\n --_surface-hover: var(--eds-c-surface-neutral-subtle--hover);\n }\n\n &.eds-fab-button--disabled {\n --_surface: var(--eds-c-surface-disabled);\n --_on-surface: var(--eds-c-foreground-disabled);\n --_surface-hover: var(--eds-c-surface-disabled);\n }\n\n .eds-fab-button__mask {\n position: fixed;\n inset: 0;\n background-color: rgba(0, 0, 0, 0.4);\n z-index: 998;\n animation: eds-fab-mask-fade-in 200ms ease-out;\n }\n\n .eds-fab-button__container {\n position: relative;\n z-index: 999;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .eds-fab-button__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_size);\n height: var(--_size);\n border-radius: var(--eds-br-full);\n border: none;\n background-color: var(--_surface);\n color: var(--_on-surface);\n cursor: pointer;\n box-shadow: var(--_shadow);\n transition: background-color 200ms ease, transform 200ms ease;\n position: relative;\n z-index: 2;\n\n &:hover:not(:disabled) {\n background-color: var(--_surface-hover);\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n\n @include base.eds-focus-visible-ring-rounded();\n\n eds-icon {\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n }\n\n &.eds-fab-button--open .eds-fab-button__trigger eds-icon {\n transform: rotate(0deg);\n }\n\n .eds-fab-button__list {\n list-style: none;\n margin: 0;\n padding: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n margin-top: calc(var(--_action-size) / -2);\n margin-left: calc(var(--_action-size) / -2);\n z-index: 1;\n pointer-events: none;\n }\n\n &.eds-fab-button--open .eds-fab-button__list {\n pointer-events: auto;\n }\n\n ::ng-deep .eds-fab-button-item {\n position: absolute;\n top: 0;\n left: 0;\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 200ms ease;\n }\n\n .eds-fab-button__tooltip {\n position: absolute;\n white-space: nowrap;\n background-color: var(--_tooltip-surface);\n color: var(--_tooltip-on-surface);\n font: var(--eds-f-paragraph-xs);\n padding: var(--eds-sp-3xs) var(--eds-sp-xs);\n border-radius: var(--eds-br-s);\n pointer-events: none;\n opacity: 0;\n transition: opacity 150ms ease;\n z-index: 10;\n }\n\n ::ng-deep .eds-fab-button-item:hover .eds-fab-button__tooltip,\n ::ng-deep .eds-fab-button-item:focus-visible .eds-fab-button__tooltip {\n opacity: 1;\n }\n\n // Tooltip positioning based on direction\n &.eds-fab-button--up,\n &.eds-fab-button--down {\n .eds-fab-button__tooltip {\n right: calc(100% + var(--eds-sp-xs));\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &.eds-fab-button--left,\n &.eds-fab-button--right {\n .eds-fab-button__tooltip {\n bottom: calc(100% + var(--eds-sp-xs));\n left: 50%;\n transform: translateX(-50%);\n }\n }\n }\n\n @keyframes eds-fab-mask-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n}\n",
|
|
35476
|
+
"data": "@use '../base' as base;\n\n.eui-21 {\n :host.eds-fab-button {\n --_size: 56px;\n --_action-size: 40px;\n --_surface: var(--eds-c-surface-brand);\n --_on-surface: var(--eds-c-on-surface-brand);\n --_surface-hover: var(--eds-c-surface-brand--hover);\n --_shadow: var(--eds-sh-3);\n --_action-surface: var(--eds-c-surface-elevation);\n --_action-on-surface: var(--eds-c-foreground-default);\n --_action-surface-hover: var(--eds-c-surface-neutral-subtle--hover);\n --_action-shadow: var(--eds-sh-2);\n --_tooltip-surface: var(--eds-c-surface-inverse);\n --_tooltip-on-surface: var(--eds-c-on-surface-inverse);\n\n display: inline-block;\n position: relative;\n\n &.eds-fab-button--primary {\n --_surface: var(--eds-c-surface-primary);\n --_on-surface: var(--eds-c-on-surface-primary);\n --_surface-hover: var(--eds-c-surface-primary--hover);\n }\n\n &.eds-fab-button--neutral {\n --_surface: var(--eds-c-surface-neutral-subtle);\n --_on-surface: var(--eds-c-on-surface-neutral-subtle);\n --_surface-hover: var(--eds-c-surface-neutral-subtle--hover);\n }\n\n &.eds-fab-button--disabled {\n --_surface: var(--eds-c-surface-disabled);\n --_on-surface: var(--eds-c-foreground-disabled);\n --_surface-hover: var(--eds-c-surface-disabled);\n }\n\n .eds-fab-button__mask {\n position: fixed;\n inset: 0;\n background-color: rgba(0, 0, 0, 0.4);\n z-index: 998;\n animation: eds-fab-mask-fade-in 200ms ease-out;\n }\n\n .eds-fab-button__container {\n position: relative;\n z-index: 999;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n\n .eds-fab-button__trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--_size);\n height: var(--_size);\n border-radius: var(--eds-br-full);\n border: none;\n background-color: var(--_surface);\n color: var(--_on-surface);\n // Make the trigger icon follow the button's on-surface color: feed the fab's\n // --_on-surface into the icon's documented override hook so the icon color tracks\n // the surface variant instead of its own default foreground token.\n --_eds-icon-on-surface: var(--_on-surface);\n cursor: pointer;\n box-shadow: var(--_shadow);\n transition: background-color 200ms ease, transform 200ms ease;\n position: relative;\n z-index: 2;\n\n &:hover:not(:disabled) {\n background-color: var(--_surface-hover);\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n\n @include base.eds-focus-visible-ring-rounded();\n\n eds-icon {\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n }\n\n &.eds-fab-button--open .eds-fab-button__trigger eds-icon {\n transform: rotate(0deg);\n }\n\n .eds-fab-button__list {\n list-style: none;\n margin: 0;\n padding: 0;\n position: absolute;\n top: 50%;\n left: 50%;\n margin-top: calc(var(--_action-size) / -2);\n margin-left: calc(var(--_action-size) / -2);\n z-index: 1;\n pointer-events: none;\n }\n\n &.eds-fab-button--open .eds-fab-button__list {\n pointer-events: auto;\n }\n\n ::ng-deep .eds-fab-button-item {\n position: absolute;\n top: 0;\n left: 0;\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1),\n opacity 200ms ease;\n }\n\n .eds-fab-button__tooltip {\n position: absolute;\n white-space: nowrap;\n background-color: var(--_tooltip-surface);\n color: var(--_tooltip-on-surface);\n font: var(--eds-f-paragraph-xs);\n padding: var(--eds-sp-3xs) var(--eds-sp-xs);\n border-radius: var(--eds-br-s);\n pointer-events: none;\n opacity: 0;\n transition: opacity 150ms ease;\n z-index: 10;\n }\n\n ::ng-deep .eds-fab-button-item:hover .eds-fab-button__tooltip,\n ::ng-deep .eds-fab-button-item:focus-visible .eds-fab-button__tooltip {\n opacity: 1;\n }\n\n // Tooltip positioning based on direction\n &.eds-fab-button--up,\n &.eds-fab-button--down {\n .eds-fab-button__tooltip {\n right: calc(100% + var(--eds-sp-xs));\n top: 50%;\n transform: translateY(-50%);\n }\n }\n\n &.eds-fab-button--left,\n &.eds-fab-button--right {\n .eds-fab-button__tooltip {\n bottom: calc(100% + var(--eds-sp-xs));\n left: 50%;\n transform: translateX(-50%);\n }\n }\n }\n\n @keyframes eds-fab-mask-fade-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n}\n",
|
|
35477
35477
|
"styleUrl": "./eds-fab-button.scss"
|
|
35478
35478
|
}
|
|
35479
35479
|
],
|
|
@@ -42266,7 +42266,7 @@
|
|
|
42266
42266
|
"assetsDirs": [],
|
|
42267
42267
|
"styleUrlsData": [
|
|
42268
42268
|
{
|
|
42269
|
-
"data": "@use '../base' as base;\n\n.eui-21 {\n :host.eds-icon-toggle {\n display: inline-flex;\n position: relative;\n cursor: pointer;\n padding: var(--eds-sp-2xs);\n border-radius: var(--eds-br-full);\n @include base.eds-focus-visible-ring-rounded();\n }\n\n :host.eds-icon-toggle:not(.eds-icon-toggle--readonly):hover {\n background-color: var(--eds-c-surface-neutral-subtle);\n }\n\n :host.eds-icon-toggle--on {\n color: var(--eds-c-foreground-primary);\n }\n\n :host.eds-icon-toggle--readonly {\n cursor: default;\n pointer-events: none;\n }\n}\n",
|
|
42269
|
+
"data": "@use '../base' as base;\n\n.eui-21 {\n :host.eds-icon-toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n // Stay a content-sized circle: don't let a flex parent stretch the toggle (a column flex\n // stretches width, a row flex stretches height) — which would render the border-radius:full\n // hover background as an oval. Size to content only; do NOT set align-self so the parent's\n // alignment (e.g. flex-start) still positions the toggle.\n width: fit-content;\n height: fit-content;\n position: relative;\n cursor: pointer;\n padding: var(--eds-sp-2xs);\n border-radius: var(--eds-br-full);\n @include base.eds-focus-visible-ring-rounded();\n }\n\n :host.eds-icon-toggle:not(.eds-icon-toggle--readonly):hover {\n background-color: var(--eds-c-surface-neutral-subtle);\n }\n\n :host.eds-icon-toggle--on {\n color: var(--eds-c-foreground-primary);\n }\n\n :host.eds-icon-toggle--readonly {\n cursor: default;\n pointer-events: none;\n }\n}\n",
|
|
42270
42270
|
"styleUrl": "./eds-icon-toggle.scss"
|
|
42271
42271
|
}
|
|
42272
42272
|
],
|
|
@@ -64767,7 +64767,7 @@
|
|
|
64767
64767
|
"assetsDirs": [],
|
|
64768
64768
|
"styleUrlsData": [
|
|
64769
64769
|
{
|
|
64770
|
-
"data": "@use '../base' as base;\n\n.eui-21 {\n // VARS DEFS \n // ---------\n :host.eds-tabs {\n --_label-font: var(--
|
|
64770
|
+
"data": "@use '../base' as base;\n\n.eui-21 {\n // VARS DEFS \n // ---------\n :host.eds-tabs {\n // EDS tokens (not the legacy --eui-f-*, which are undefined outside the Angular app).\n --_label-font: var(--eds-f-label-m-semi-bold);\n --_sublabel-font: var(--eds-f-paragraph-s); \n }\n\n :host.eds-tabs {\n display: flex;\n flex-direction: column;\n width: 100%;\n\n .eds-tab-item {\n --_border-color: transparent;\n --_color: var(--eds-c-foreground-subtler);\n --_color-hover: var(--eds-c-foreground);\n }\n .eds-tab-item--active {\n --_color: var(--eds-c-foreground);\n --_border-color: var(--eds-c-border);\n }\n .eds-tab-item--disabled {\n --_color: var(--eds-c-foreground-disabled);\n --_icon-color: var(--eds-c-foreground-disabled);\n --_border-color-hover: transparent;\n }\n }\n\n // COLOR VARIANTS\n :host.eds-tabs--brand {\n .eds-tab-item {\n --_color: var(--eds-c-foreground-inverted);\n --_color-hover: var(--eds-c-on-surface-brand);\n }\n .eds-tab-item--active {\n --_color: var(--eds-c-on-surface-brand);\n --_border-color: var(--eds-c-on-surface-brand);\n }\n }\n\n :host.eds-tabs--neutral {\n .eds-tab-item {\n --_color: var(--eds-c-foreground-subtler);\n --_color-hover: var(--eds-c-foreground);\n }\n .eds-tab-item--active {\n --_color: var(--eds-c-foreground);\n --_border-color: var(--eds-c-foreground);\n }\n }\n\n // NAVBAR VARIANT — no bottom border on wrapper\n :host.eds-tabs.eds-tabs--navbar {\n .eds-tabs-wrapper {\n border-bottom: none;\n }\n }\n\n :host.eds-tabs {\n .eds-tabs-wrapper {\n align-items: center;\n border-bottom: var(--eds-bw-xs) solid var(--eds-c-border-divider);\n display: flex;\n overflow: hidden;\n position: relative;\n\n .eds-tabs-right-content-wrapper {\n display: flex;\n margin-left: var(--eds-sp-m);\n }\n }\n\n // UL items\n .eds-tab-items {\n display: flex;\n height: 100%;\n list-style: none;\n list-style-type: none;\n margin: 0;\n padding: 0;\n\n // LI item\n .eds-tab-item {\n align-items: center;\n background-color: inherit;\n border: var(--eui-bw-none);\n border-bottom: var(--eds-bw-s) solid transparent;\n color: var(--_color);\n cursor: pointer;\n display: flex;\n padding: var(--eds-sp-s) var(--eds-sp-m) var(--eds-sp-s) var(--eds-sp-m);\n position: relative;\n text-align: center;\n gap: var(--eds-sp-2xs);\n @include base.eds-focus-visible;\n\n // Main container\n ::ng-deep.eds-tab-header-wrapper {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-s);\n @include base.eds-ellipsis;\n\n ::ng-deep.eds-tab-header-label-wrapper {\n display: flex;\n flex-direction: column;\n\n ::ng-deep.eds-tab-header-label {\n display: block;\n font-weight: bold;\n line-height: var(--eds-sp-l);\n color: var(--_color);\n font: var(--_label-font);\n }\n\n ::ng-deep.eds-tab-header-sub-label {\n font-weight: normal;\n color: var(--_color);\n font: var(--_sublabel-font);\n }\n }\n }\n\n ::ng-deep.eds-tab-header-left-content,\n ::ng-deep.eds-tab-header-right-content {\n display: flex;\n }\n\n &--active {\n border-color: var(--_border-color);\n }\n\n &--disabled {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n &:hover {\n &:not(.eds-tab-header--active) {\n ::ng-deep.eds-tab-header-label {\n color: var(--_color-hover);\n }\n ::ng-deep.eds-tab-header-sub-label {\n color: var(--_color-hover);\n } \n }\n }\n\n }\n }\n\n .eds-tabs-navigation {\n display: flex;\n overflow: hidden;\n position: relative;\n width: 100%;\n\n .eds-tabs-navigation__left-item,\n .eds-tabs-navigation__right-item {\n align-self: center;\n background-color: var(--eui-c-surface-page);\n display: none;\n height: 100%;\n position: absolute;\n z-index: 1;\n }\n\n .eds-tabs-navigation__left-item {\n left: 0;\n }\n\n .eds-tabs-navigation__right-item {\n right: 0;\n }\n }\n\n // SCROLLING state\n .eds-tabs-wrapper.eui-tabs-wrapper--scrolling {\n\n // UL items\n .eds-tab-items {\n padding-left: var(--eui-s-5xl);\n\n .eds-tab-item {\n min-width: unset;\n overflow: unset;\n }\n }\n\n .eds-tabs-navigation__left-item,\n .eds-tabs-navigation__right-item {\n display: flex;\n }\n }\n\n .eds-tab-body-container {\n ::ng-deep.eds-tab__body {\n padding: var(--eui-s-s);\n @include base.eds-focus-visible;\n\n &.eds-tab__body--no-padding {\n padding: 0;\n }\n }\n }\n }\n}\n",
|
|
64771
64771
|
"styleUrl": "./eds-tabs.scss"
|
|
64772
64772
|
}
|
|
64773
64773
|
],
|
package/docs/llms.txt
CHANGED
package/docs/properties.html
CHANGED
|
@@ -488,7 +488,7 @@ class EdsFabButton {
|
|
|
488
488
|
};
|
|
489
489
|
}
|
|
490
490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsFabButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
491
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsFabButton, isStandalone: true, selector: "eds-fab-button", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, activeIcon: { classPropertyName: "activeIcon", publicName: "activeIcon", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, isDirectionUp: { classPropertyName: "isDirectionUp", publicName: "isDirectionUp", isSignal: true, isRequired: false, transformFunction: null }, isDirectionDown: { classPropertyName: "isDirectionDown", publicName: "isDirectionDown", isSignal: true, isRequired: false, transformFunction: null }, isDirectionLeft: { classPropertyName: "isDirectionLeft", publicName: "isDirectionLeft", isSignal: true, isRequired: false, transformFunction: null }, isDirectionRight: { classPropertyName: "isDirectionRight", publicName: "isDirectionRight", isSignal: true, isRequired: false, transformFunction: null }, isLinear: { classPropertyName: "isLinear", publicName: "isLinear", isSignal: true, isRequired: false, transformFunction: null }, isCircle: { classPropertyName: "isCircle", publicName: "isCircle", isSignal: true, isRequired: false, transformFunction: null }, isSemiCircle: { classPropertyName: "isSemiCircle", publicName: "isSemiCircle", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, transitionDelay: { classPropertyName: "transitionDelay", publicName: "transitionDelay", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hasMask: { classPropertyName: "hasMask", publicName: "hasMask", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "opened", closed: "closed", fabClick: "fabClick" }, host: { listeners: { "keydown": "onHostKeydown($event)" }, properties: { "class": "hostClasses()", "attr.data-e2e": "e2eAttr()" } }, queries: [{ propertyName: "items", predicate: EdsFabButtonItem, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1$1.EdsColorDirective, inputs: ["edsPrimary", "edsPrimary", "edsNeutral", "edsNeutral", "edsColorVariant", "edsColorVariant"] }], ngImport: i0, template: "@if (hasMask() && isOpen()) {\n <div class=\"eds-fab-button__mask\" (click)=\"onMaskClick()\"></div>\n}\n\n<div class=\"eds-fab-button__container\">\n <!-- Menu container for projected action items -->\n <div class=\"eds-fab-button__list\"\n [attr.id]=\"menuId\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerId\"\n [attr.aria-orientation]=\"resolvedDirection() === 'left' || resolvedDirection() === 'right' ? 'horizontal' : 'vertical'\">\n <ng-content select=\"eds-fab-button-item\" />\n </div>\n\n <!-- Main FAB trigger button (APG Menu Button) -->\n <button\n [attr.id]=\"triggerId\"\n class=\"eds-fab-button__trigger\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"hasItems() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasItems() ? isOpen() : null\"\n [attr.aria-controls]=\"hasItems() ? menuId : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n (click)=\"toggle($event)\"\n (keydown)=\"onTriggerKeydown($event)\">\n <eds-icon [icon]=\"currentIcon()\" size=\"m\" />\n </button>\n</div>\n", styles: [".eui-21 :host.eds-fab-button{--_size: 56px;--_action-size: 40px;--_surface: var(--eds-c-surface-brand);--_on-surface: var(--eds-c-on-surface-brand);--_surface-hover: var(--eds-c-surface-brand--hover);--_shadow: var(--eds-sh-3);--_action-surface: var(--eds-c-surface-elevation);--_action-on-surface: var(--eds-c-foreground-default);--_action-surface-hover: var(--eds-c-surface-neutral-subtle--hover);--_action-shadow: var(--eds-sh-2);--_tooltip-surface: var(--eds-c-surface-inverse);--_tooltip-on-surface: var(--eds-c-on-surface-inverse);display:inline-block;position:relative}.eui-21 :host.eds-fab-button.eds-fab-button--primary{--_surface: var(--eds-c-surface-primary);--_on-surface: var(--eds-c-on-surface-primary);--_surface-hover: var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--neutral{--_surface: var(--eds-c-surface-neutral-subtle);--_on-surface: var(--eds-c-on-surface-neutral-subtle);--_surface-hover: var(--eds-c-surface-neutral-subtle--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--disabled{--_surface: var(--eds-c-surface-disabled);--_on-surface: var(--eds-c-foreground-disabled);--_surface-hover: var(--eds-c-surface-disabled)}.eui-21 :host.eds-fab-button .eds-fab-button__mask{position:fixed;inset:0;background-color:#0006;z-index:998;animation:eds-fab-mask-fade-in .2s ease-out}.eui-21 :host.eds-fab-button .eds-fab-button__container{position:relative;z-index:999;display:inline-flex;align-items:center;justify-content:center}.eui-21 :host.eds-fab-button .eds-fab-button__trigger{display:inline-flex;align-items:center;justify-content:center;width:var(--_size);height:var(--_size);border-radius:var(--eds-br-full);border:none;background-color:var(--_surface);color:var(--_on-surface);cursor:pointer;box-shadow:var(--_shadow);transition:background-color .2s ease,transform .2s ease;position:relative;z-index:2}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:hover:not(:disabled){background-color:var(--_surface-hover)}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:disabled{cursor:not-allowed}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-fab-button .eds-fab-button__trigger eds-icon{transition:transform .25s cubic-bezier(.4,0,.2,1)}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__trigger eds-icon{transform:rotate(0)}.eui-21 :host.eds-fab-button .eds-fab-button__list{list-style:none;margin:0;padding:0;position:absolute;top:50%;left:50%;margin-top:calc(var(--_action-size) / -2);margin-left:calc(var(--_action-size) / -2);z-index:1;pointer-events:none}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__list{pointer-events:auto}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item{position:absolute;top:0;left:0;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease}.eui-21 :host.eds-fab-button .eds-fab-button__tooltip{position:absolute;white-space:nowrap;background-color:var(--_tooltip-surface);color:var(--_tooltip-on-surface);font:var(--eds-f-paragraph-xs);padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-s);pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:10}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:hover .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:focus-visible .eds-fab-button__tooltip{opacity:1}.eui-21 :host.eds-fab-button.eds-fab-button--up .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--down .eds-fab-button__tooltip{right:calc(100% + var(--eds-sp-xs));top:50%;transform:translateY(-50%)}.eui-21 :host.eds-fab-button.eds-fab-button--left .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--right .eds-fab-button__tooltip{bottom:calc(100% + var(--eds-sp-xs));left:50%;transform:translate(-50%)}@keyframes eds-fab-mask-fade-in{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
491
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsFabButton, isStandalone: true, selector: "eds-fab-button", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, activeIcon: { classPropertyName: "activeIcon", publicName: "activeIcon", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, isDirectionUp: { classPropertyName: "isDirectionUp", publicName: "isDirectionUp", isSignal: true, isRequired: false, transformFunction: null }, isDirectionDown: { classPropertyName: "isDirectionDown", publicName: "isDirectionDown", isSignal: true, isRequired: false, transformFunction: null }, isDirectionLeft: { classPropertyName: "isDirectionLeft", publicName: "isDirectionLeft", isSignal: true, isRequired: false, transformFunction: null }, isDirectionRight: { classPropertyName: "isDirectionRight", publicName: "isDirectionRight", isSignal: true, isRequired: false, transformFunction: null }, isLinear: { classPropertyName: "isLinear", publicName: "isLinear", isSignal: true, isRequired: false, transformFunction: null }, isCircle: { classPropertyName: "isCircle", publicName: "isCircle", isSignal: true, isRequired: false, transformFunction: null }, isSemiCircle: { classPropertyName: "isSemiCircle", publicName: "isSemiCircle", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, transitionDelay: { classPropertyName: "transitionDelay", publicName: "transitionDelay", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, hasMask: { classPropertyName: "hasMask", publicName: "hasMask", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { opened: "opened", closed: "closed", fabClick: "fabClick" }, host: { listeners: { "keydown": "onHostKeydown($event)" }, properties: { "class": "hostClasses()", "attr.data-e2e": "e2eAttr()" } }, queries: [{ propertyName: "items", predicate: EdsFabButtonItem, read: ElementRef, isSignal: true }], hostDirectives: [{ directive: i1$1.EdsColorDirective, inputs: ["edsPrimary", "edsPrimary", "edsNeutral", "edsNeutral", "edsColorVariant", "edsColorVariant"] }], ngImport: i0, template: "@if (hasMask() && isOpen()) {\n <div class=\"eds-fab-button__mask\" (click)=\"onMaskClick()\"></div>\n}\n\n<div class=\"eds-fab-button__container\">\n <!-- Menu container for projected action items -->\n <div class=\"eds-fab-button__list\"\n [attr.id]=\"menuId\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerId\"\n [attr.aria-orientation]=\"resolvedDirection() === 'left' || resolvedDirection() === 'right' ? 'horizontal' : 'vertical'\">\n <ng-content select=\"eds-fab-button-item\" />\n </div>\n\n <!-- Main FAB trigger button (APG Menu Button) -->\n <button\n [attr.id]=\"triggerId\"\n class=\"eds-fab-button__trigger\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"hasItems() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasItems() ? isOpen() : null\"\n [attr.aria-controls]=\"hasItems() ? menuId : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n (click)=\"toggle($event)\"\n (keydown)=\"onTriggerKeydown($event)\">\n <eds-icon [icon]=\"currentIcon()\" size=\"m\" />\n </button>\n</div>\n", styles: [".eui-21 :host.eds-fab-button{--_size: 56px;--_action-size: 40px;--_surface: var(--eds-c-surface-brand);--_on-surface: var(--eds-c-on-surface-brand);--_surface-hover: var(--eds-c-surface-brand--hover);--_shadow: var(--eds-sh-3);--_action-surface: var(--eds-c-surface-elevation);--_action-on-surface: var(--eds-c-foreground-default);--_action-surface-hover: var(--eds-c-surface-neutral-subtle--hover);--_action-shadow: var(--eds-sh-2);--_tooltip-surface: var(--eds-c-surface-inverse);--_tooltip-on-surface: var(--eds-c-on-surface-inverse);display:inline-block;position:relative}.eui-21 :host.eds-fab-button.eds-fab-button--primary{--_surface: var(--eds-c-surface-primary);--_on-surface: var(--eds-c-on-surface-primary);--_surface-hover: var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--neutral{--_surface: var(--eds-c-surface-neutral-subtle);--_on-surface: var(--eds-c-on-surface-neutral-subtle);--_surface-hover: var(--eds-c-surface-neutral-subtle--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--disabled{--_surface: var(--eds-c-surface-disabled);--_on-surface: var(--eds-c-foreground-disabled);--_surface-hover: var(--eds-c-surface-disabled)}.eui-21 :host.eds-fab-button .eds-fab-button__mask{position:fixed;inset:0;background-color:#0006;z-index:998;animation:eds-fab-mask-fade-in .2s ease-out}.eui-21 :host.eds-fab-button .eds-fab-button__container{position:relative;z-index:999;display:inline-flex;align-items:center;justify-content:center}.eui-21 :host.eds-fab-button .eds-fab-button__trigger{display:inline-flex;align-items:center;justify-content:center;width:var(--_size);height:var(--_size);border-radius:var(--eds-br-full);border:none;background-color:var(--_surface);color:var(--_on-surface);--_eds-icon-on-surface: var(--_on-surface);cursor:pointer;box-shadow:var(--_shadow);transition:background-color .2s ease,transform .2s ease;position:relative;z-index:2}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:hover:not(:disabled){background-color:var(--_surface-hover)}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:disabled{cursor:not-allowed}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-fab-button .eds-fab-button__trigger eds-icon{transition:transform .25s cubic-bezier(.4,0,.2,1)}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__trigger eds-icon{transform:rotate(0)}.eui-21 :host.eds-fab-button .eds-fab-button__list{list-style:none;margin:0;padding:0;position:absolute;top:50%;left:50%;margin-top:calc(var(--_action-size) / -2);margin-left:calc(var(--_action-size) / -2);z-index:1;pointer-events:none}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__list{pointer-events:auto}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item{position:absolute;top:0;left:0;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease}.eui-21 :host.eds-fab-button .eds-fab-button__tooltip{position:absolute;white-space:nowrap;background-color:var(--_tooltip-surface);color:var(--_tooltip-on-surface);font:var(--eds-f-paragraph-xs);padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-s);pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:10}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:hover .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:focus-visible .eds-fab-button__tooltip{opacity:1}.eui-21 :host.eds-fab-button.eds-fab-button--up .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--down .eds-fab-button__tooltip{right:calc(100% + var(--eds-sp-xs));top:50%;transform:translateY(-50%)}.eui-21 :host.eds-fab-button.eds-fab-button--left .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--right .eds-fab-button__tooltip{bottom:calc(100% + var(--eds-sp-xs));left:50%;transform:translate(-50%)}@keyframes eds-fab-mask-fade-in{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
492
492
|
}
|
|
493
493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsFabButton, decorators: [{
|
|
494
494
|
type: Component,
|
|
@@ -505,7 +505,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
505
505
|
'[class]': 'hostClasses()',
|
|
506
506
|
'[attr.data-e2e]': 'e2eAttr()',
|
|
507
507
|
'(keydown)': 'onHostKeydown($event)',
|
|
508
|
-
}, template: "@if (hasMask() && isOpen()) {\n <div class=\"eds-fab-button__mask\" (click)=\"onMaskClick()\"></div>\n}\n\n<div class=\"eds-fab-button__container\">\n <!-- Menu container for projected action items -->\n <div class=\"eds-fab-button__list\"\n [attr.id]=\"menuId\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerId\"\n [attr.aria-orientation]=\"resolvedDirection() === 'left' || resolvedDirection() === 'right' ? 'horizontal' : 'vertical'\">\n <ng-content select=\"eds-fab-button-item\" />\n </div>\n\n <!-- Main FAB trigger button (APG Menu Button) -->\n <button\n [attr.id]=\"triggerId\"\n class=\"eds-fab-button__trigger\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"hasItems() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasItems() ? isOpen() : null\"\n [attr.aria-controls]=\"hasItems() ? menuId : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n (click)=\"toggle($event)\"\n (keydown)=\"onTriggerKeydown($event)\">\n <eds-icon [icon]=\"currentIcon()\" size=\"m\" />\n </button>\n</div>\n", styles: [".eui-21 :host.eds-fab-button{--_size: 56px;--_action-size: 40px;--_surface: var(--eds-c-surface-brand);--_on-surface: var(--eds-c-on-surface-brand);--_surface-hover: var(--eds-c-surface-brand--hover);--_shadow: var(--eds-sh-3);--_action-surface: var(--eds-c-surface-elevation);--_action-on-surface: var(--eds-c-foreground-default);--_action-surface-hover: var(--eds-c-surface-neutral-subtle--hover);--_action-shadow: var(--eds-sh-2);--_tooltip-surface: var(--eds-c-surface-inverse);--_tooltip-on-surface: var(--eds-c-on-surface-inverse);display:inline-block;position:relative}.eui-21 :host.eds-fab-button.eds-fab-button--primary{--_surface: var(--eds-c-surface-primary);--_on-surface: var(--eds-c-on-surface-primary);--_surface-hover: var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--neutral{--_surface: var(--eds-c-surface-neutral-subtle);--_on-surface: var(--eds-c-on-surface-neutral-subtle);--_surface-hover: var(--eds-c-surface-neutral-subtle--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--disabled{--_surface: var(--eds-c-surface-disabled);--_on-surface: var(--eds-c-foreground-disabled);--_surface-hover: var(--eds-c-surface-disabled)}.eui-21 :host.eds-fab-button .eds-fab-button__mask{position:fixed;inset:0;background-color:#0006;z-index:998;animation:eds-fab-mask-fade-in .2s ease-out}.eui-21 :host.eds-fab-button .eds-fab-button__container{position:relative;z-index:999;display:inline-flex;align-items:center;justify-content:center}.eui-21 :host.eds-fab-button .eds-fab-button__trigger{display:inline-flex;align-items:center;justify-content:center;width:var(--_size);height:var(--_size);border-radius:var(--eds-br-full);border:none;background-color:var(--_surface);color:var(--_on-surface);cursor:pointer;box-shadow:var(--_shadow);transition:background-color .2s ease,transform .2s ease;position:relative;z-index:2}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:hover:not(:disabled){background-color:var(--_surface-hover)}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:disabled{cursor:not-allowed}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-fab-button .eds-fab-button__trigger eds-icon{transition:transform .25s cubic-bezier(.4,0,.2,1)}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__trigger eds-icon{transform:rotate(0)}.eui-21 :host.eds-fab-button .eds-fab-button__list{list-style:none;margin:0;padding:0;position:absolute;top:50%;left:50%;margin-top:calc(var(--_action-size) / -2);margin-left:calc(var(--_action-size) / -2);z-index:1;pointer-events:none}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__list{pointer-events:auto}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item{position:absolute;top:0;left:0;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease}.eui-21 :host.eds-fab-button .eds-fab-button__tooltip{position:absolute;white-space:nowrap;background-color:var(--_tooltip-surface);color:var(--_tooltip-on-surface);font:var(--eds-f-paragraph-xs);padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-s);pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:10}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:hover .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:focus-visible .eds-fab-button__tooltip{opacity:1}.eui-21 :host.eds-fab-button.eds-fab-button--up .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--down .eds-fab-button__tooltip{right:calc(100% + var(--eds-sp-xs));top:50%;transform:translateY(-50%)}.eui-21 :host.eds-fab-button.eds-fab-button--left .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--right .eds-fab-button__tooltip{bottom:calc(100% + var(--eds-sp-xs));left:50%;transform:translate(-50%)}@keyframes eds-fab-mask-fade-in{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
508
|
+
}, template: "@if (hasMask() && isOpen()) {\n <div class=\"eds-fab-button__mask\" (click)=\"onMaskClick()\"></div>\n}\n\n<div class=\"eds-fab-button__container\">\n <!-- Menu container for projected action items -->\n <div class=\"eds-fab-button__list\"\n [attr.id]=\"menuId\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerId\"\n [attr.aria-orientation]=\"resolvedDirection() === 'left' || resolvedDirection() === 'right' ? 'horizontal' : 'vertical'\">\n <ng-content select=\"eds-fab-button-item\" />\n </div>\n\n <!-- Main FAB trigger button (APG Menu Button) -->\n <button\n [attr.id]=\"triggerId\"\n class=\"eds-fab-button__trigger\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"hasItems() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasItems() ? isOpen() : null\"\n [attr.aria-controls]=\"hasItems() ? menuId : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n (click)=\"toggle($event)\"\n (keydown)=\"onTriggerKeydown($event)\">\n <eds-icon [icon]=\"currentIcon()\" size=\"m\" />\n </button>\n</div>\n", styles: [".eui-21 :host.eds-fab-button{--_size: 56px;--_action-size: 40px;--_surface: var(--eds-c-surface-brand);--_on-surface: var(--eds-c-on-surface-brand);--_surface-hover: var(--eds-c-surface-brand--hover);--_shadow: var(--eds-sh-3);--_action-surface: var(--eds-c-surface-elevation);--_action-on-surface: var(--eds-c-foreground-default);--_action-surface-hover: var(--eds-c-surface-neutral-subtle--hover);--_action-shadow: var(--eds-sh-2);--_tooltip-surface: var(--eds-c-surface-inverse);--_tooltip-on-surface: var(--eds-c-on-surface-inverse);display:inline-block;position:relative}.eui-21 :host.eds-fab-button.eds-fab-button--primary{--_surface: var(--eds-c-surface-primary);--_on-surface: var(--eds-c-on-surface-primary);--_surface-hover: var(--eds-c-surface-primary--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--neutral{--_surface: var(--eds-c-surface-neutral-subtle);--_on-surface: var(--eds-c-on-surface-neutral-subtle);--_surface-hover: var(--eds-c-surface-neutral-subtle--hover)}.eui-21 :host.eds-fab-button.eds-fab-button--disabled{--_surface: var(--eds-c-surface-disabled);--_on-surface: var(--eds-c-foreground-disabled);--_surface-hover: var(--eds-c-surface-disabled)}.eui-21 :host.eds-fab-button .eds-fab-button__mask{position:fixed;inset:0;background-color:#0006;z-index:998;animation:eds-fab-mask-fade-in .2s ease-out}.eui-21 :host.eds-fab-button .eds-fab-button__container{position:relative;z-index:999;display:inline-flex;align-items:center;justify-content:center}.eui-21 :host.eds-fab-button .eds-fab-button__trigger{display:inline-flex;align-items:center;justify-content:center;width:var(--_size);height:var(--_size);border-radius:var(--eds-br-full);border:none;background-color:var(--_surface);color:var(--_on-surface);--_eds-icon-on-surface: var(--_on-surface);cursor:pointer;box-shadow:var(--_shadow);transition:background-color .2s ease,transform .2s ease;position:relative;z-index:2}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:hover:not(:disabled){background-color:var(--_surface-hover)}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:disabled{cursor:not-allowed}.eui-21 :host.eds-fab-button .eds-fab-button__trigger:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-fab-button .eds-fab-button__trigger eds-icon{transition:transform .25s cubic-bezier(.4,0,.2,1)}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__trigger eds-icon{transform:rotate(0)}.eui-21 :host.eds-fab-button .eds-fab-button__list{list-style:none;margin:0;padding:0;position:absolute;top:50%;left:50%;margin-top:calc(var(--_action-size) / -2);margin-left:calc(var(--_action-size) / -2);z-index:1;pointer-events:none}.eui-21 :host.eds-fab-button.eds-fab-button--open .eds-fab-button__list{pointer-events:auto}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item{position:absolute;top:0;left:0;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease}.eui-21 :host.eds-fab-button .eds-fab-button__tooltip{position:absolute;white-space:nowrap;background-color:var(--_tooltip-surface);color:var(--_tooltip-on-surface);font:var(--eds-f-paragraph-xs);padding:var(--eds-sp-3xs) var(--eds-sp-xs);border-radius:var(--eds-br-s);pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:10}.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:hover .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button ::ng-deep .eds-fab-button-item:focus-visible .eds-fab-button__tooltip{opacity:1}.eui-21 :host.eds-fab-button.eds-fab-button--up .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--down .eds-fab-button__tooltip{right:calc(100% + var(--eds-sp-xs));top:50%;transform:translateY(-50%)}.eui-21 :host.eds-fab-button.eds-fab-button--left .eds-fab-button__tooltip,.eui-21 :host.eds-fab-button.eds-fab-button--right .eds-fab-button__tooltip{bottom:calc(100% + var(--eds-sp-xs));left:50%;transform:translate(-50%)}@keyframes eds-fab-mask-fade-in{0%{opacity:0}to{opacity:1}}\n"] }]
|
|
509
509
|
}], ctorParameters: () => [], propDecorators: { e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], activeIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeIcon", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], isDirectionUp: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDirectionUp", required: false }] }], isDirectionDown: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDirectionDown", required: false }] }], isDirectionLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDirectionLeft", required: false }] }], isDirectionRight: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDirectionRight", required: false }] }], isLinear: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLinear", required: false }] }], isCircle: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCircle", required: false }] }], isSemiCircle: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSemiCircle", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], transitionDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "transitionDelay", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], hasMask: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasMask", required: false }] }], opened: [{ type: i0.Output, args: ["opened"] }], closed: [{ type: i0.Output, args: ["closed"] }], fabClick: [{ type: i0.Output, args: ["fabClick"] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => EdsFabButtonItem), { ...{ read: ElementRef }, isSignal: true }] }] } });
|
|
510
510
|
|
|
511
511
|
/** Convenience array for importing all eds-fab-button components. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-eds-eds-fab-button.mjs","sources":["../../eds-fab-button/eds-fab-button-item.ts","../../eds-fab-button/eds-fab-button.ts","../../eds-fab-button/eds-fab-button.html","../../eds-fab-button/index.ts","../../eds-fab-button/eui-eds-eds-fab-button.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n booleanAttribute,\n} from '@angular/core';\n\nimport { EDS_ICON } from '@eui/eds/eds-icon';\n\n@Component({\n selector: 'eds-fab-button-item',\n template: `\n <eds-icon [icon]=\"icon()\" edsSizeS edsNeutral />\n <ng-content />\n `,\n styleUrl: './eds-fab-button-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON],\n host: {\n class: 'eds-fab-button-item',\n role: 'menuitem',\n '[attr.aria-label]': 'ariaLabel() || label()',\n '[attr.aria-disabled]': 'disabled() || null',\n '[tabindex]': '-1',\n '(click)': 'onItemClick($event)',\n },\n})\nexport class EdsFabButtonItem {\n /** Icon name from the EDS icon library. */\n icon = input.required<string>();\n\n /** Label used for tooltip and aria-label. */\n label = input<string>('');\n\n /** Custom aria-label override. */\n ariaLabel = input<string>('');\n\n /** Whether the action item is disabled. */\n disabled = input(false, { transform: booleanAttribute });\n\n /** Emitted when the item is activated. */\n itemClick = output<Event>();\n\n protected onItemClick(event: Event): void {\n if (!this.disabled()) {\n this.itemClick.emit(event);\n }\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n computed,\n signal,\n booleanAttribute,\n numberAttribute,\n inject,\n ElementRef,\n OnDestroy,\n contentChildren,\n effect,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EdsFabButtonItem } from './eds-fab-button-item';\nimport { EdsFabDirection, EdsFabType } from './eds-fab-button.model';\n\n/**\n * Floating Action Button with optional speed dial menu.\n *\n * Follows the WAI-ARIA APG Menu Button pattern:\n * - Trigger button: role=\"button\", aria-haspopup=\"menu\", aria-expanded, aria-controls\n * - Menu container: role=\"menu\", aria-labelledby\n * - Items: role=\"menuitem\", managed roving tabindex\n *\n * Keyboard (trigger focused):\n * - Enter / Space: open menu, focus first item\n * - Down Arrow (when direction is up/down): open menu, focus first item\n * - Up Arrow (when direction is up/down): open menu, focus last item\n *\n * Keyboard (menu item focused):\n * - Primary axis arrow keys (based on direction): navigate items with wrapping\n * - Enter / Space: activate item, close menu, return focus to trigger\n * - Escape: close menu, return focus to trigger\n * - Home: focus first item\n * - End: focus last item\n * - Tab: close menu, allow default tab behavior\n */\n@Component({\n selector: 'eds-fab-button',\n templateUrl: './eds-fab-button.html',\n styleUrl: './eds-fab-button.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON],\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsPrimary',\n 'edsNeutral',\n 'edsColorVariant',\n ],\n },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '(keydown)': 'onHostKeydown($event)',\n },\n})\nexport class EdsFabButton implements OnDestroy {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-fab-button'\n */\n e2eAttr = input('eds-fab-button');\n\n /**\n * Icon displayed on the main FAB trigger button.\n * @default 'plus'\n */\n icon = input('plus');\n\n /**\n * Icon displayed on the main FAB trigger button when the speed dial is open.\n * @default 'x'\n */\n activeIcon = input('x');\n\n /**\n * Accessible label for the main FAB button.\n * @default 'Actions'\n */\n ariaLabel = input('Actions');\n\n // --- Direction inputs (boolean coerced) ---\n\n /** Expands items upward. This is the default direction. */\n isDirectionUp = input(false, { transform: booleanAttribute });\n\n /** Expands items downward. */\n isDirectionDown = input(false, { transform: booleanAttribute });\n\n /** Expands items to the left. */\n isDirectionLeft = input(false, { transform: booleanAttribute });\n\n /** Expands items to the right. */\n isDirectionRight = input(false, { transform: booleanAttribute });\n\n // --- Type inputs (boolean coerced) ---\n\n /** Arranges items in a straight line. This is the default type. */\n isLinear = input(false, { transform: booleanAttribute });\n\n /** Arranges items in a full circle around the FAB. */\n isCircle = input(false, { transform: booleanAttribute });\n\n /** Arranges items in a semi-circle. */\n isSemiCircle = input(false, { transform: booleanAttribute });\n\n /**\n * Radius (in pixels) for circle and semi-circle layouts.\n * @default 80\n */\n radius = input(80, { transform: numberAttribute });\n\n /**\n * Delay between each action item animation (in milliseconds).\n * @default 30\n */\n transitionDelay = input(30, { transform: numberAttribute });\n\n /**\n * Whether the FAB trigger button is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to show a mask/backdrop overlay when the speed dial is open.\n * @default false\n */\n hasMask = input(false, { transform: booleanAttribute });\n\n /** Emitted when the speed dial menu is opened. */\n opened = output<void>();\n\n /** Emitted when the speed dial menu is closed. */\n closed = output<void>();\n\n /** Emitted when the main FAB button is clicked (when no action items are projected). */\n fabClick = output<Event>();\n\n /** Internal open state of the speed dial. */\n protected isOpen = signal(false);\n\n /** Index of the currently focused item (-1 = none). */\n protected focusedIndex = signal(-1);\n\n protected colorDirective = inject(EdsColorDirective);\n\n /** Query projected eds-fab-button-item children. */\n protected items = contentChildren(EdsFabButtonItem, { read: ElementRef });\n\n /** Unique ID for aria-controls linkage. */\n protected menuId = `eds-fab-menu-${crypto.randomUUID().slice(0, 8)}`;\n protected triggerId = `eds-fab-trigger-${crypto.randomUUID().slice(0, 8)}`;\n\n /** Resolved direction from boolean inputs. Defaults to 'up'. */\n protected resolvedDirection = computed<EdsFabDirection>(() => {\n if (this.isDirectionDown()) return 'down';\n if (this.isDirectionLeft()) return 'left';\n if (this.isDirectionRight()) return 'right';\n return 'up';\n });\n\n /** Resolved layout type from boolean inputs. Defaults to 'linear'. */\n protected resolvedType = computed<EdsFabType>(() => {\n if (this.isCircle()) return 'circle';\n if (this.isSemiCircle()) return 'semi-circle';\n return 'linear';\n });\n\n hostClasses = computed(() => {\n const colorClass = this.colorDirective.getCssClass('eds-fab-button');\n return [\n 'eds-fab-button',\n colorClass || 'eds-fab-button--primary',\n `eds-fab-button--${this.resolvedDirection()}`,\n `eds-fab-button--${this.resolvedType()}`,\n this.isOpen() ? 'eds-fab-button--open' : '',\n this.disabled() ? 'eds-fab-button--disabled' : '',\n ].join(' ').trim();\n });\n\n /** Computes the current icon to display on the main FAB button. */\n protected currentIcon = computed(() => {\n return this.isOpen() ? this.activeIcon() : this.icon();\n });\n\n /** Whether there are projected action items. */\n protected hasItems = computed(() => this.items().length > 0);\n\n private elementRef = inject(ElementRef);\n private document = inject(DOCUMENT);\n private outsideClickListener: ((event: MouseEvent) => void) | null = null;\n\n constructor() {\n // Reposition items whenever open state or layout params change\n effect(() => {\n const open = this.isOpen();\n const itemRefs = this.items();\n const dir = this.resolvedDirection();\n const layoutType = this.resolvedType();\n const r = this.radius();\n const delay = this.transitionDelay();\n\n itemRefs.forEach((itemRef, index) => {\n const el = itemRef.nativeElement as HTMLElement;\n\n if (!open) {\n el.style.transform = 'scale(0)';\n el.style.opacity = '0';\n el.style.transitionDelay = '0ms';\n el.style.pointerEvents = 'none';\n } else {\n const pos = this.calculatePosition(index, itemRefs.length, dir, layoutType, r);\n el.style.transform = `translate(${pos.x}px, ${pos.y}px) scale(1)`;\n el.style.opacity = '1';\n el.style.transitionDelay = `${index * delay}ms`;\n el.style.pointerEvents = 'auto';\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.removeOutsideClickListener();\n }\n\n /** Toggle the speed dial open/closed. */\n protected toggle(event: Event): void {\n event.stopPropagation();\n\n if (this.disabled()) {\n return;\n }\n\n if (!this.hasItems()) {\n this.fabClick.emit(event);\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n this.focusTrigger();\n } else {\n this.open();\n this.focusItem(0);\n }\n }\n\n /** Handle keyboard on the trigger button (APG Menu Button pattern). */\n protected onTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled() || !this.hasItems()) {\n return;\n }\n\n const dir = this.resolvedDirection();\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n this.focusItem(0);\n }\n break;\n case 'ArrowDown':\n if (dir === 'up' || dir === 'down') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(0);\n }\n break;\n case 'ArrowUp':\n if (dir === 'up' || dir === 'down') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(this.items().length - 1);\n }\n break;\n case 'ArrowRight':\n if (dir === 'left' || dir === 'right') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(0);\n }\n break;\n case 'ArrowLeft':\n if (dir === 'left' || dir === 'right') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(this.items().length - 1);\n }\n break;\n case 'Escape':\n if (this.isOpen()) {\n event.preventDefault();\n this.close();\n this.focusTrigger();\n }\n break;\n }\n }\n\n /**\n * Host-level keydown handler to intercept keyboard events\n * when focus is on a menu item (APG Menu pattern).\n */\n protected onHostKeydown(event: KeyboardEvent): void {\n if (!this.isOpen()) {\n return;\n }\n\n // Only handle keys when focus is inside the menu (not on trigger)\n const trigger = this.elementRef.nativeElement.querySelector(`#${this.triggerId}`);\n if (event.target === trigger) {\n return;\n }\n\n const itemCount = this.items().length;\n if (itemCount === 0) {\n return;\n }\n\n const dir = this.resolvedDirection();\n const currentIndex = this.focusedIndex();\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.close();\n this.focusTrigger();\n break;\n\n case 'Enter':\n case ' ':\n event.preventDefault();\n // Activate the focused item — let it handle its own click\n if (currentIndex >= 0) {\n const el = this.items()[currentIndex]?.nativeElement as HTMLElement;\n el?.click();\n }\n this.close();\n this.focusTrigger();\n break;\n\n case 'Tab':\n // Close menu on Tab per APG, allow default tab behavior\n this.close();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n if (dir === 'up' || dir === 'down') {\n this.focusItem(this.wrapIndex(currentIndex + 1, itemCount));\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n if (dir === 'up' || dir === 'down') {\n this.focusItem(this.wrapIndex(currentIndex - 1, itemCount));\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (dir === 'left' || dir === 'right') {\n this.focusItem(this.wrapIndex(currentIndex + 1, itemCount));\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (dir === 'left' || dir === 'right') {\n this.focusItem(this.wrapIndex(currentIndex - 1, itemCount));\n }\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusItem(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.focusItem(itemCount - 1);\n break;\n }\n }\n\n /** Handle mask click. */\n protected onMaskClick(): void {\n this.close();\n this.focusTrigger();\n }\n\n private open(): void {\n this.isOpen.set(true);\n this.opened.emit();\n this.addOutsideClickListener();\n }\n\n private close(): void {\n this.isOpen.set(false);\n this.focusedIndex.set(-1);\n // Reset all items to tabindex -1\n this.items().forEach(ref => {\n (ref.nativeElement as HTMLElement).setAttribute('tabindex', '-1');\n });\n this.closed.emit();\n this.removeOutsideClickListener();\n }\n\n private focusItem(index: number): void {\n const itemRefs = this.items();\n if (index < 0 || index >= itemRefs.length) {\n return;\n }\n this.focusedIndex.set(index);\n\n // Set roving tabindex: focused item gets 0, others get -1\n itemRefs.forEach((ref, i) => {\n const el = ref.nativeElement as HTMLElement;\n el.setAttribute('tabindex', i === index ? '0' : '-1');\n });\n\n const target = itemRefs[index]?.nativeElement as HTMLElement;\n target?.focus();\n }\n\n private focusTrigger(): void {\n const trigger = this.elementRef.nativeElement.querySelector(`#${this.triggerId}`);\n trigger?.focus();\n }\n\n private wrapIndex(index: number, total: number): number {\n return ((index % total) + total) % total;\n }\n\n private addOutsideClickListener(): void {\n this.removeOutsideClickListener();\n this.outsideClickListener = (event: MouseEvent): void => {\n if (!this.elementRef.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n };\n setTimeout(() => {\n this.document.addEventListener('click', this.outsideClickListener!);\n });\n }\n\n private removeOutsideClickListener(): void {\n if (this.outsideClickListener) {\n this.document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n private calculatePosition(\n index: number,\n totalItems: number,\n direction: EdsFabDirection,\n layoutType: EdsFabType,\n radius: number,\n ): { x: number; y: number } {\n if (layoutType === 'linear') {\n return this.calculateLinearPosition(index, direction);\n }\n if (layoutType === 'circle') {\n return this.calculateCirclePosition(index, totalItems, radius);\n }\n if (layoutType === 'semi-circle') {\n return this.calculateSemiCirclePosition(index, totalItems, direction, radius);\n }\n return { x: 0, y: 0 };\n }\n\n private calculateLinearPosition(index: number, direction: EdsFabDirection): { x: number; y: number } {\n const spacing = 56;\n const offset = (index + 1) * spacing;\n\n switch (direction) {\n case 'up': return { x: 0, y: -offset };\n case 'down': return { x: 0, y: offset };\n case 'left': return { x: -offset, y: 0 };\n case 'right': return { x: offset, y: 0 };\n }\n }\n\n private calculateCirclePosition(index: number, totalItems: number, radius: number): { x: number; y: number } {\n const angle = (2 * Math.PI / totalItems) * index - Math.PI / 2;\n return {\n x: Math.round(radius * Math.cos(angle)),\n y: Math.round(radius * Math.sin(angle)),\n };\n }\n\n private calculateSemiCirclePosition(\n index: number, totalItems: number, direction: EdsFabDirection, radius: number,\n ): { x: number; y: number } {\n const angleStep = Math.PI / (totalItems - 1);\n let startAngle: number;\n\n switch (direction) {\n case 'up': startAngle = Math.PI; break;\n case 'down': startAngle = 0; break;\n case 'left': startAngle = -Math.PI / 2; break;\n case 'right': startAngle = Math.PI / 2; break;\n }\n\n const angle = startAngle + angleStep * index;\n return {\n x: Math.round(radius * Math.cos(angle)),\n y: Math.round(radius * Math.sin(angle)),\n };\n }\n}\n","@if (hasMask() && isOpen()) {\n <div class=\"eds-fab-button__mask\" (click)=\"onMaskClick()\"></div>\n}\n\n<div class=\"eds-fab-button__container\">\n <!-- Menu container for projected action items -->\n <div class=\"eds-fab-button__list\"\n [attr.id]=\"menuId\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerId\"\n [attr.aria-orientation]=\"resolvedDirection() === 'left' || resolvedDirection() === 'right' ? 'horizontal' : 'vertical'\">\n <ng-content select=\"eds-fab-button-item\" />\n </div>\n\n <!-- Main FAB trigger button (APG Menu Button) -->\n <button\n [attr.id]=\"triggerId\"\n class=\"eds-fab-button__trigger\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"hasItems() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasItems() ? isOpen() : null\"\n [attr.aria-controls]=\"hasItems() ? menuId : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n (click)=\"toggle($event)\"\n (keydown)=\"onTriggerKeydown($event)\">\n <eds-icon [icon]=\"currentIcon()\" size=\"m\" />\n </button>\n</div>\n","import { EdsFabButton } from './eds-fab-button';\nimport { EdsFabButtonItem } from './eds-fab-button-item';\n\nexport { EdsFabButton };\nexport { EdsFabButtonItem };\nexport { EdsFabDirection, EdsFabType } from './eds-fab-button.model';\n\n/** Convenience array for importing all eds-fab-button components. */\nexport const EDS_FAB_BUTTON = [\n EdsFabButton,\n EdsFabButtonItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-eds-eds-fab-button.mjs","sources":["../../eds-fab-button/eds-fab-button-item.ts","../../eds-fab-button/eds-fab-button.ts","../../eds-fab-button/eds-fab-button.html","../../eds-fab-button/index.ts","../../eds-fab-button/eui-eds-eds-fab-button.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n booleanAttribute,\n} from '@angular/core';\n\nimport { EDS_ICON } from '@eui/eds/eds-icon';\n\n@Component({\n selector: 'eds-fab-button-item',\n template: `\n <eds-icon [icon]=\"icon()\" edsSizeS edsNeutral />\n <ng-content />\n `,\n styleUrl: './eds-fab-button-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON],\n host: {\n class: 'eds-fab-button-item',\n role: 'menuitem',\n '[attr.aria-label]': 'ariaLabel() || label()',\n '[attr.aria-disabled]': 'disabled() || null',\n '[tabindex]': '-1',\n '(click)': 'onItemClick($event)',\n },\n})\nexport class EdsFabButtonItem {\n /** Icon name from the EDS icon library. */\n icon = input.required<string>();\n\n /** Label used for tooltip and aria-label. */\n label = input<string>('');\n\n /** Custom aria-label override. */\n ariaLabel = input<string>('');\n\n /** Whether the action item is disabled. */\n disabled = input(false, { transform: booleanAttribute });\n\n /** Emitted when the item is activated. */\n itemClick = output<Event>();\n\n protected onItemClick(event: Event): void {\n if (!this.disabled()) {\n this.itemClick.emit(event);\n }\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n computed,\n signal,\n booleanAttribute,\n numberAttribute,\n inject,\n ElementRef,\n OnDestroy,\n contentChildren,\n effect,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EdsFabButtonItem } from './eds-fab-button-item';\nimport { EdsFabDirection, EdsFabType } from './eds-fab-button.model';\n\n/**\n * Floating Action Button with optional speed dial menu.\n *\n * Follows the WAI-ARIA APG Menu Button pattern:\n * - Trigger button: role=\"button\", aria-haspopup=\"menu\", aria-expanded, aria-controls\n * - Menu container: role=\"menu\", aria-labelledby\n * - Items: role=\"menuitem\", managed roving tabindex\n *\n * Keyboard (trigger focused):\n * - Enter / Space: open menu, focus first item\n * - Down Arrow (when direction is up/down): open menu, focus first item\n * - Up Arrow (when direction is up/down): open menu, focus last item\n *\n * Keyboard (menu item focused):\n * - Primary axis arrow keys (based on direction): navigate items with wrapping\n * - Enter / Space: activate item, close menu, return focus to trigger\n * - Escape: close menu, return focus to trigger\n * - Home: focus first item\n * - End: focus last item\n * - Tab: close menu, allow default tab behavior\n */\n@Component({\n selector: 'eds-fab-button',\n templateUrl: './eds-fab-button.html',\n styleUrl: './eds-fab-button.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [...EDS_ICON],\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsPrimary',\n 'edsNeutral',\n 'edsColorVariant',\n ],\n },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '(keydown)': 'onHostKeydown($event)',\n },\n})\nexport class EdsFabButton implements OnDestroy {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-fab-button'\n */\n e2eAttr = input('eds-fab-button');\n\n /**\n * Icon displayed on the main FAB trigger button.\n * @default 'plus'\n */\n icon = input('plus');\n\n /**\n * Icon displayed on the main FAB trigger button when the speed dial is open.\n * @default 'x'\n */\n activeIcon = input('x');\n\n /**\n * Accessible label for the main FAB button.\n * @default 'Actions'\n */\n ariaLabel = input('Actions');\n\n // --- Direction inputs (boolean coerced) ---\n\n /** Expands items upward. This is the default direction. */\n isDirectionUp = input(false, { transform: booleanAttribute });\n\n /** Expands items downward. */\n isDirectionDown = input(false, { transform: booleanAttribute });\n\n /** Expands items to the left. */\n isDirectionLeft = input(false, { transform: booleanAttribute });\n\n /** Expands items to the right. */\n isDirectionRight = input(false, { transform: booleanAttribute });\n\n // --- Type inputs (boolean coerced) ---\n\n /** Arranges items in a straight line. This is the default type. */\n isLinear = input(false, { transform: booleanAttribute });\n\n /** Arranges items in a full circle around the FAB. */\n isCircle = input(false, { transform: booleanAttribute });\n\n /** Arranges items in a semi-circle. */\n isSemiCircle = input(false, { transform: booleanAttribute });\n\n /**\n * Radius (in pixels) for circle and semi-circle layouts.\n * @default 80\n */\n radius = input(80, { transform: numberAttribute });\n\n /**\n * Delay between each action item animation (in milliseconds).\n * @default 30\n */\n transitionDelay = input(30, { transform: numberAttribute });\n\n /**\n * Whether the FAB trigger button is disabled.\n * @default false\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to show a mask/backdrop overlay when the speed dial is open.\n * @default false\n */\n hasMask = input(false, { transform: booleanAttribute });\n\n /** Emitted when the speed dial menu is opened. */\n opened = output<void>();\n\n /** Emitted when the speed dial menu is closed. */\n closed = output<void>();\n\n /** Emitted when the main FAB button is clicked (when no action items are projected). */\n fabClick = output<Event>();\n\n /** Internal open state of the speed dial. */\n protected isOpen = signal(false);\n\n /** Index of the currently focused item (-1 = none). */\n protected focusedIndex = signal(-1);\n\n protected colorDirective = inject(EdsColorDirective);\n\n /** Query projected eds-fab-button-item children. */\n protected items = contentChildren(EdsFabButtonItem, { read: ElementRef });\n\n /** Unique ID for aria-controls linkage. */\n protected menuId = `eds-fab-menu-${crypto.randomUUID().slice(0, 8)}`;\n protected triggerId = `eds-fab-trigger-${crypto.randomUUID().slice(0, 8)}`;\n\n /** Resolved direction from boolean inputs. Defaults to 'up'. */\n protected resolvedDirection = computed<EdsFabDirection>(() => {\n if (this.isDirectionDown()) return 'down';\n if (this.isDirectionLeft()) return 'left';\n if (this.isDirectionRight()) return 'right';\n return 'up';\n });\n\n /** Resolved layout type from boolean inputs. Defaults to 'linear'. */\n protected resolvedType = computed<EdsFabType>(() => {\n if (this.isCircle()) return 'circle';\n if (this.isSemiCircle()) return 'semi-circle';\n return 'linear';\n });\n\n hostClasses = computed(() => {\n const colorClass = this.colorDirective.getCssClass('eds-fab-button');\n return [\n 'eds-fab-button',\n colorClass || 'eds-fab-button--primary',\n `eds-fab-button--${this.resolvedDirection()}`,\n `eds-fab-button--${this.resolvedType()}`,\n this.isOpen() ? 'eds-fab-button--open' : '',\n this.disabled() ? 'eds-fab-button--disabled' : '',\n ].join(' ').trim();\n });\n\n /** Computes the current icon to display on the main FAB button. */\n protected currentIcon = computed(() => {\n return this.isOpen() ? this.activeIcon() : this.icon();\n });\n\n /** Whether there are projected action items. */\n protected hasItems = computed(() => this.items().length > 0);\n\n private elementRef = inject(ElementRef);\n private document = inject(DOCUMENT);\n private outsideClickListener: ((event: MouseEvent) => void) | null = null;\n\n constructor() {\n // Reposition items whenever open state or layout params change\n effect(() => {\n const open = this.isOpen();\n const itemRefs = this.items();\n const dir = this.resolvedDirection();\n const layoutType = this.resolvedType();\n const r = this.radius();\n const delay = this.transitionDelay();\n\n itemRefs.forEach((itemRef, index) => {\n const el = itemRef.nativeElement as HTMLElement;\n\n if (!open) {\n el.style.transform = 'scale(0)';\n el.style.opacity = '0';\n el.style.transitionDelay = '0ms';\n el.style.pointerEvents = 'none';\n } else {\n const pos = this.calculatePosition(index, itemRefs.length, dir, layoutType, r);\n el.style.transform = `translate(${pos.x}px, ${pos.y}px) scale(1)`;\n el.style.opacity = '1';\n el.style.transitionDelay = `${index * delay}ms`;\n el.style.pointerEvents = 'auto';\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.removeOutsideClickListener();\n }\n\n /** Toggle the speed dial open/closed. */\n protected toggle(event: Event): void {\n event.stopPropagation();\n\n if (this.disabled()) {\n return;\n }\n\n if (!this.hasItems()) {\n this.fabClick.emit(event);\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n this.focusTrigger();\n } else {\n this.open();\n this.focusItem(0);\n }\n }\n\n /** Handle keyboard on the trigger button (APG Menu Button pattern). */\n protected onTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled() || !this.hasItems()) {\n return;\n }\n\n const dir = this.resolvedDirection();\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n this.focusItem(0);\n }\n break;\n case 'ArrowDown':\n if (dir === 'up' || dir === 'down') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(0);\n }\n break;\n case 'ArrowUp':\n if (dir === 'up' || dir === 'down') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(this.items().length - 1);\n }\n break;\n case 'ArrowRight':\n if (dir === 'left' || dir === 'right') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(0);\n }\n break;\n case 'ArrowLeft':\n if (dir === 'left' || dir === 'right') {\n event.preventDefault();\n if (!this.isOpen()) {\n this.open();\n }\n this.focusItem(this.items().length - 1);\n }\n break;\n case 'Escape':\n if (this.isOpen()) {\n event.preventDefault();\n this.close();\n this.focusTrigger();\n }\n break;\n }\n }\n\n /**\n * Host-level keydown handler to intercept keyboard events\n * when focus is on a menu item (APG Menu pattern).\n */\n protected onHostKeydown(event: KeyboardEvent): void {\n if (!this.isOpen()) {\n return;\n }\n\n // Only handle keys when focus is inside the menu (not on trigger)\n const trigger = this.elementRef.nativeElement.querySelector(`#${this.triggerId}`);\n if (event.target === trigger) {\n return;\n }\n\n const itemCount = this.items().length;\n if (itemCount === 0) {\n return;\n }\n\n const dir = this.resolvedDirection();\n const currentIndex = this.focusedIndex();\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.close();\n this.focusTrigger();\n break;\n\n case 'Enter':\n case ' ':\n event.preventDefault();\n // Activate the focused item — let it handle its own click\n if (currentIndex >= 0) {\n const el = this.items()[currentIndex]?.nativeElement as HTMLElement;\n el?.click();\n }\n this.close();\n this.focusTrigger();\n break;\n\n case 'Tab':\n // Close menu on Tab per APG, allow default tab behavior\n this.close();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n if (dir === 'up' || dir === 'down') {\n this.focusItem(this.wrapIndex(currentIndex + 1, itemCount));\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n if (dir === 'up' || dir === 'down') {\n this.focusItem(this.wrapIndex(currentIndex - 1, itemCount));\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (dir === 'left' || dir === 'right') {\n this.focusItem(this.wrapIndex(currentIndex + 1, itemCount));\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (dir === 'left' || dir === 'right') {\n this.focusItem(this.wrapIndex(currentIndex - 1, itemCount));\n }\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusItem(0);\n break;\n\n case 'End':\n event.preventDefault();\n this.focusItem(itemCount - 1);\n break;\n }\n }\n\n /** Handle mask click. */\n protected onMaskClick(): void {\n this.close();\n this.focusTrigger();\n }\n\n private open(): void {\n this.isOpen.set(true);\n this.opened.emit();\n this.addOutsideClickListener();\n }\n\n private close(): void {\n this.isOpen.set(false);\n this.focusedIndex.set(-1);\n // Reset all items to tabindex -1\n this.items().forEach(ref => {\n (ref.nativeElement as HTMLElement).setAttribute('tabindex', '-1');\n });\n this.closed.emit();\n this.removeOutsideClickListener();\n }\n\n private focusItem(index: number): void {\n const itemRefs = this.items();\n if (index < 0 || index >= itemRefs.length) {\n return;\n }\n this.focusedIndex.set(index);\n\n // Set roving tabindex: focused item gets 0, others get -1\n itemRefs.forEach((ref, i) => {\n const el = ref.nativeElement as HTMLElement;\n el.setAttribute('tabindex', i === index ? '0' : '-1');\n });\n\n const target = itemRefs[index]?.nativeElement as HTMLElement;\n target?.focus();\n }\n\n private focusTrigger(): void {\n const trigger = this.elementRef.nativeElement.querySelector(`#${this.triggerId}`);\n trigger?.focus();\n }\n\n private wrapIndex(index: number, total: number): number {\n return ((index % total) + total) % total;\n }\n\n private addOutsideClickListener(): void {\n this.removeOutsideClickListener();\n this.outsideClickListener = (event: MouseEvent): void => {\n if (!this.elementRef.nativeElement.contains(event.target as Node)) {\n this.close();\n }\n };\n setTimeout(() => {\n this.document.addEventListener('click', this.outsideClickListener!);\n });\n }\n\n private removeOutsideClickListener(): void {\n if (this.outsideClickListener) {\n this.document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n }\n\n private calculatePosition(\n index: number,\n totalItems: number,\n direction: EdsFabDirection,\n layoutType: EdsFabType,\n radius: number,\n ): { x: number; y: number } {\n if (layoutType === 'linear') {\n return this.calculateLinearPosition(index, direction);\n }\n if (layoutType === 'circle') {\n return this.calculateCirclePosition(index, totalItems, radius);\n }\n if (layoutType === 'semi-circle') {\n return this.calculateSemiCirclePosition(index, totalItems, direction, radius);\n }\n return { x: 0, y: 0 };\n }\n\n private calculateLinearPosition(index: number, direction: EdsFabDirection): { x: number; y: number } {\n const spacing = 56;\n const offset = (index + 1) * spacing;\n\n switch (direction) {\n case 'up': return { x: 0, y: -offset };\n case 'down': return { x: 0, y: offset };\n case 'left': return { x: -offset, y: 0 };\n case 'right': return { x: offset, y: 0 };\n }\n }\n\n private calculateCirclePosition(index: number, totalItems: number, radius: number): { x: number; y: number } {\n const angle = (2 * Math.PI / totalItems) * index - Math.PI / 2;\n return {\n x: Math.round(radius * Math.cos(angle)),\n y: Math.round(radius * Math.sin(angle)),\n };\n }\n\n private calculateSemiCirclePosition(\n index: number, totalItems: number, direction: EdsFabDirection, radius: number,\n ): { x: number; y: number } {\n const angleStep = Math.PI / (totalItems - 1);\n let startAngle: number;\n\n switch (direction) {\n case 'up': startAngle = Math.PI; break;\n case 'down': startAngle = 0; break;\n case 'left': startAngle = -Math.PI / 2; break;\n case 'right': startAngle = Math.PI / 2; break;\n }\n\n const angle = startAngle + angleStep * index;\n return {\n x: Math.round(radius * Math.cos(angle)),\n y: Math.round(radius * Math.sin(angle)),\n };\n }\n}\n","@if (hasMask() && isOpen()) {\n <div class=\"eds-fab-button__mask\" (click)=\"onMaskClick()\"></div>\n}\n\n<div class=\"eds-fab-button__container\">\n <!-- Menu container for projected action items -->\n <div class=\"eds-fab-button__list\"\n [attr.id]=\"menuId\"\n role=\"menu\"\n [attr.aria-labelledby]=\"triggerId\"\n [attr.aria-orientation]=\"resolvedDirection() === 'left' || resolvedDirection() === 'right' ? 'horizontal' : 'vertical'\">\n <ng-content select=\"eds-fab-button-item\" />\n </div>\n\n <!-- Main FAB trigger button (APG Menu Button) -->\n <button\n [attr.id]=\"triggerId\"\n class=\"eds-fab-button__trigger\"\n type=\"button\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-haspopup]=\"hasItems() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasItems() ? isOpen() : null\"\n [attr.aria-controls]=\"hasItems() ? menuId : null\"\n [attr.disabled]=\"disabled() ? true : null\"\n (click)=\"toggle($event)\"\n (keydown)=\"onTriggerKeydown($event)\">\n <eds-icon [icon]=\"currentIcon()\" size=\"m\" />\n </button>\n</div>\n","import { EdsFabButton } from './eds-fab-button';\nimport { EdsFabButtonItem } from './eds-fab-button-item';\n\nexport { EdsFabButton };\nexport { EdsFabButtonItem };\nexport { EdsFabDirection, EdsFabType } from './eds-fab-button.model';\n\n/** Convenience array for importing all eds-fab-button components. */\nexport const EDS_FAB_BUTTON = [\n EdsFabButton,\n EdsFabButtonItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
|
|
@@ -138,7 +138,7 @@ class EdsIconToggle {
|
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsIconToggle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsIconToggle, isStandalone: true, selector: "eds-icon-toggle", inputs: { isChecked: { classPropertyName: "isChecked", publicName: "isChecked", isSignal: true, isRequired: false, transformFunction: null }, isReadOnly: { classPropertyName: "isReadOnly", publicName: "isReadOnly", isSignal: true, isRequired: false, transformFunction: null }, e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, iconOn: { classPropertyName: "iconOn", publicName: "iconOn", isSignal: true, isRequired: false, transformFunction: null }, iconOff: { classPropertyName: "iconOff", publicName: "iconOff", isSignal: true, isRequired: false, transformFunction: null }, colorOn: { classPropertyName: "colorOn", publicName: "colorOn", isSignal: true, isRequired: false, transformFunction: null }, colorOff: { classPropertyName: "colorOff", publicName: "colorOff", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCheckedChange: "isCheckedChange", toggle: "toggle" }, host: { attributes: { "role": "switch" }, listeners: { "click": "onToggle()", "keydown": "onKeydown($event)" }, properties: { "class": "hostClasses()", "attr.aria-checked": "internalChecked()", "attr.readonly": "isReadOnly() || null", "attr.data-e2e": "e2eAttr()", "attr.id": "id()", "attr.tabindex": "computedTabindex()", "attr.aria-label": "computedAriaLabel()" } }, ngImport: i0, template: "<eds-icon [icon]=\"currentIcon()\" [color]=\"$any(currentColor())\" />\n", styles: [".eui-21 :host.eds-icon-toggle{display:inline-flex;position:relative;cursor:pointer;padding:var(--eds-sp-2xs);border-radius:var(--eds-br-full)}.eui-21 :host.eds-icon-toggle:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-icon-toggle:not(.eds-icon-toggle--readonly):hover{background-color:var(--eds-c-surface-neutral-subtle)}.eui-21 :host.eds-icon-toggle--on{color:var(--eds-c-foreground-primary)}.eui-21 :host.eds-icon-toggle--readonly{cursor:default;pointer-events:none}\n"], dependencies: [{ kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
141
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsIconToggle, isStandalone: true, selector: "eds-icon-toggle", inputs: { isChecked: { classPropertyName: "isChecked", publicName: "isChecked", isSignal: true, isRequired: false, transformFunction: null }, isReadOnly: { classPropertyName: "isReadOnly", publicName: "isReadOnly", isSignal: true, isRequired: false, transformFunction: null }, e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, iconOn: { classPropertyName: "iconOn", publicName: "iconOn", isSignal: true, isRequired: false, transformFunction: null }, iconOff: { classPropertyName: "iconOff", publicName: "iconOff", isSignal: true, isRequired: false, transformFunction: null }, colorOn: { classPropertyName: "colorOn", publicName: "colorOn", isSignal: true, isRequired: false, transformFunction: null }, colorOff: { classPropertyName: "colorOff", publicName: "colorOff", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCheckedChange: "isCheckedChange", toggle: "toggle" }, host: { attributes: { "role": "switch" }, listeners: { "click": "onToggle()", "keydown": "onKeydown($event)" }, properties: { "class": "hostClasses()", "attr.aria-checked": "internalChecked()", "attr.readonly": "isReadOnly() || null", "attr.data-e2e": "e2eAttr()", "attr.id": "id()", "attr.tabindex": "computedTabindex()", "attr.aria-label": "computedAriaLabel()" } }, ngImport: i0, template: "<eds-icon [icon]=\"currentIcon()\" [color]=\"$any(currentColor())\" />\n", styles: [".eui-21 :host.eds-icon-toggle{display:inline-flex;align-items:center;justify-content:center;width:fit-content;height:fit-content;position:relative;cursor:pointer;padding:var(--eds-sp-2xs);border-radius:var(--eds-br-full)}.eui-21 :host.eds-icon-toggle:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-icon-toggle:not(.eds-icon-toggle--readonly):hover{background-color:var(--eds-c-surface-neutral-subtle)}.eui-21 :host.eds-icon-toggle--on{color:var(--eds-c-foreground-primary)}.eui-21 :host.eds-icon-toggle--readonly{cursor:default;pointer-events:none}\n"], dependencies: [{ kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
142
142
|
}
|
|
143
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsIconToggle, decorators: [{
|
|
144
144
|
type: Component,
|
|
@@ -155,7 +155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
|
|
|
155
155
|
'[attr.aria-label]': 'computedAriaLabel()',
|
|
156
156
|
'(click)': 'onToggle()',
|
|
157
157
|
'(keydown)': 'onKeydown($event)',
|
|
158
|
-
}, template: "<eds-icon [icon]=\"currentIcon()\" [color]=\"$any(currentColor())\" />\n", styles: [".eui-21 :host.eds-icon-toggle{display:inline-flex;position:relative;cursor:pointer;padding:var(--eds-sp-2xs);border-radius:var(--eds-br-full)}.eui-21 :host.eds-icon-toggle:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-icon-toggle:not(.eds-icon-toggle--readonly):hover{background-color:var(--eds-c-surface-neutral-subtle)}.eui-21 :host.eds-icon-toggle--on{color:var(--eds-c-foreground-primary)}.eui-21 :host.eds-icon-toggle--readonly{cursor:default;pointer-events:none}\n"] }]
|
|
158
|
+
}, template: "<eds-icon [icon]=\"currentIcon()\" [color]=\"$any(currentColor())\" />\n", styles: [".eui-21 :host.eds-icon-toggle{display:inline-flex;align-items:center;justify-content:center;width:fit-content;height:fit-content;position:relative;cursor:pointer;padding:var(--eds-sp-2xs);border-radius:var(--eds-br-full)}.eui-21 :host.eds-icon-toggle:focus-visible:not([readonly]){outline:var(--eds-bw-s) solid var(--eds-c-border-primary)!important;outline-offset:1px!important;border-radius:var(--eds-br-full)!important}.eui-21 :host.eds-icon-toggle:not(.eds-icon-toggle--readonly):hover{background-color:var(--eds-c-surface-neutral-subtle)}.eui-21 :host.eds-icon-toggle--on{color:var(--eds-c-foreground-primary)}.eui-21 :host.eds-icon-toggle--readonly{cursor:default;pointer-events:none}\n"] }]
|
|
159
159
|
}], ctorParameters: () => [], propDecorators: { isChecked: [{ type: i0.Input, args: [{ isSignal: true, alias: "isChecked", required: false }] }], isCheckedChange: [{ type: i0.Output, args: ["isCheckedChange"] }], isReadOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isReadOnly", required: false }] }], e2eAttr: [{ type: i0.Input, args: [{ isSignal: true, alias: "e2eAttr", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], iconOn: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOn", required: false }] }], iconOff: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOff", required: false }] }], colorOn: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorOn", required: false }] }], colorOff: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorOff", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }] } });
|
|
160
160
|
|
|
161
161
|
/** Convenience array for importing all eds-icon-toggle components. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-eds-eds-icon-toggle.mjs","sources":["../../eds-icon-toggle/eds-icon-toggle.ts","../../eds-icon-toggle/eds-icon-toggle.html","../../eds-icon-toggle/index.ts","../../eds-icon-toggle/eui-eds-eds-icon-toggle.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EdsColorToken } from '@eui/eds/shared';\n\nlet nextId = 0;\n\n/**\n * A toggleable icon button with accessibility support.\n * Functions as a switch control that can be toggled between on/off states,\n * displaying different icons based on the current state.\n *\n * @usageNotes\n * ### Basic toggle\n * ```html\n * <eds-icon-toggle\n * [(isChecked)]=\"isFavorite\"\n * iconOn=\"star-filled\"\n * iconOff=\"star-outline\"\n * ariaLabel=\"Toggle favorite\"\n * (toggle)=\"onToggle($event)\">\n * </eds-icon-toggle>\n * ```\n *\n * ### Accessibility\n * - Implements ARIA switch role with aria-checked state\n * - Keyboard accessible via Tab, Enter, and Space keys\n * - Screen readers announce state changes\n *\n * ### Notes\n * - Use distinct icons for on/off states for clarity\n * - Set `isReadOnly` to prevent interaction while maintaining visual state\n * - Emits toggle event with boolean state on change\n */\n@Component({\n selector: 'eds-icon-toggle',\n templateUrl: './eds-icon-toggle.html',\n styleUrl: './eds-icon-toggle.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ...EDS_ICON,\n ],\n host: {\n role: 'switch',\n '[class]': 'hostClasses()',\n '[attr.aria-checked]': 'internalChecked()',\n '[attr.readonly]': 'isReadOnly() || null',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.id]': 'id()',\n '[attr.tabindex]': 'computedTabindex()',\n '[attr.aria-label]': 'computedAriaLabel()',\n '(click)': 'onToggle()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class EdsIconToggle {\n /**\n * Whether the toggle is in the checked/on state.\n * @default false\n */\n readonly isChecked = input(false, { transform: booleanAttribute });\n\n /** Two-way binding support for isChecked. */\n readonly isCheckedChange = output<boolean>();\n\n /**\n * Whether the toggle is read-only (cannot be interacted with).\n * @default false\n */\n readonly isReadOnly = input(false, { transform: booleanAttribute });\n\n /**\n * Data attribute for e2e testing.\n * @default 'eds-icon-toggle'\n */\n readonly e2eAttr = input('eds-icon-toggle');\n\n /**\n * Unique identifier for the component.\n */\n readonly id = input(`eds-icon-toggle-${nextId++}`);\n\n /**\n * Tab order value for keyboard navigation.\n * @default '0'\n */\n readonly tabindex = input('0');\n\n /**\n * Accessible label for screen readers.\n * @default 'Toggle icon'\n */\n readonly ariaLabel = input<string>('Toggle icon');\n\n /**\n * Icon to display when toggle is in the ON state.\n */\n readonly iconOn = input<string>('');\n\n /**\n * Icon to display when toggle is in the OFF state.\n */\n readonly iconOff = input<string>('');\n\n /**\n * EDS color variant for the ON state icon.\n * @default 'primary'\n */\n readonly colorOn = input<EdsColorToken>('primary');\n\n /**\n * EDS color variant for the OFF state icon.\n * @default 'neutral'\n */\n readonly colorOff = input<EdsColorToken>('neutral');\n\n /**\n * Event emitted when the toggle state changes.\n * Emits the new state (true = checked, false = unchecked).\n */\n // eslint-disable-next-line\n readonly toggle = output<boolean>();\n\n /** @internal */\n protected readonly internalChecked = signal(false);\n\n protected readonly currentIcon = computed(() =>\n this.internalChecked() ? this.iconOn() : this.iconOff(),\n );\n\n protected readonly currentColor = computed(() =>\n this.internalChecked() ? this.colorOn() : this.colorOff(),\n );\n\n protected readonly computedTabindex = computed(() =>\n this.isReadOnly() ? '-1' : this.tabindex(),\n );\n\n protected readonly computedAriaLabel = computed(() => {\n const label = this.ariaLabel();\n if (!label || label === '') {\n return this.currentIcon() ?? '';\n }\n return label;\n });\n\n readonly hostClasses = computed(() =>\n ['eds-icon-toggle',\n this.internalChecked() ? 'eds-icon-toggle--on' : 'eds-icon-toggle--off',\n this.isReadOnly() ? 'eds-icon-toggle--readonly' : '',\n ].join(' ').trim(),\n );\n\n constructor() {\n effect(() => this.internalChecked.set(this.isChecked()));\n }\n\n protected onToggle(): void {\n if (!this.isReadOnly()) {\n this.internalChecked.update(v => !v);\n this.isCheckedChange.emit(this.internalChecked());\n this.toggle.emit(this.internalChecked());\n }\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n event.preventDefault();\n event.stopPropagation();\n this.onToggle();\n break;\n }\n }\n}\n","<eds-icon [icon]=\"currentIcon()\" [color]=\"$any(currentColor())\" />\n","import { EdsIconToggle } from './eds-icon-toggle';\n\nexport { EdsIconToggle };\n\n/** Convenience array for importing all eds-icon-toggle components. */\nexport const EDS_ICON_TOGGLE = [\n EdsIconToggle,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eui-eds-eds-icon-toggle.mjs","sources":["../../eds-icon-toggle/eds-icon-toggle.ts","../../eds-icon-toggle/eds-icon-toggle.html","../../eds-icon-toggle/index.ts","../../eds-icon-toggle/eui-eds-eds-icon-toggle.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n effect,\n input,\n output,\n signal,\n} from '@angular/core';\n\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EdsColorToken } from '@eui/eds/shared';\n\nlet nextId = 0;\n\n/**\n * A toggleable icon button with accessibility support.\n * Functions as a switch control that can be toggled between on/off states,\n * displaying different icons based on the current state.\n *\n * @usageNotes\n * ### Basic toggle\n * ```html\n * <eds-icon-toggle\n * [(isChecked)]=\"isFavorite\"\n * iconOn=\"star-filled\"\n * iconOff=\"star-outline\"\n * ariaLabel=\"Toggle favorite\"\n * (toggle)=\"onToggle($event)\">\n * </eds-icon-toggle>\n * ```\n *\n * ### Accessibility\n * - Implements ARIA switch role with aria-checked state\n * - Keyboard accessible via Tab, Enter, and Space keys\n * - Screen readers announce state changes\n *\n * ### Notes\n * - Use distinct icons for on/off states for clarity\n * - Set `isReadOnly` to prevent interaction while maintaining visual state\n * - Emits toggle event with boolean state on change\n */\n@Component({\n selector: 'eds-icon-toggle',\n templateUrl: './eds-icon-toggle.html',\n styleUrl: './eds-icon-toggle.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ...EDS_ICON,\n ],\n host: {\n role: 'switch',\n '[class]': 'hostClasses()',\n '[attr.aria-checked]': 'internalChecked()',\n '[attr.readonly]': 'isReadOnly() || null',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.id]': 'id()',\n '[attr.tabindex]': 'computedTabindex()',\n '[attr.aria-label]': 'computedAriaLabel()',\n '(click)': 'onToggle()',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class EdsIconToggle {\n /**\n * Whether the toggle is in the checked/on state.\n * @default false\n */\n readonly isChecked = input(false, { transform: booleanAttribute });\n\n /** Two-way binding support for isChecked. */\n readonly isCheckedChange = output<boolean>();\n\n /**\n * Whether the toggle is read-only (cannot be interacted with).\n * @default false\n */\n readonly isReadOnly = input(false, { transform: booleanAttribute });\n\n /**\n * Data attribute for e2e testing.\n * @default 'eds-icon-toggle'\n */\n readonly e2eAttr = input('eds-icon-toggle');\n\n /**\n * Unique identifier for the component.\n */\n readonly id = input(`eds-icon-toggle-${nextId++}`);\n\n /**\n * Tab order value for keyboard navigation.\n * @default '0'\n */\n readonly tabindex = input('0');\n\n /**\n * Accessible label for screen readers.\n * @default 'Toggle icon'\n */\n readonly ariaLabel = input<string>('Toggle icon');\n\n /**\n * Icon to display when toggle is in the ON state.\n */\n readonly iconOn = input<string>('');\n\n /**\n * Icon to display when toggle is in the OFF state.\n */\n readonly iconOff = input<string>('');\n\n /**\n * EDS color variant for the ON state icon.\n * @default 'primary'\n */\n readonly colorOn = input<EdsColorToken>('primary');\n\n /**\n * EDS color variant for the OFF state icon.\n * @default 'neutral'\n */\n readonly colorOff = input<EdsColorToken>('neutral');\n\n /**\n * Event emitted when the toggle state changes.\n * Emits the new state (true = checked, false = unchecked).\n */\n // eslint-disable-next-line\n readonly toggle = output<boolean>();\n\n /** @internal */\n protected readonly internalChecked = signal(false);\n\n protected readonly currentIcon = computed(() =>\n this.internalChecked() ? this.iconOn() : this.iconOff(),\n );\n\n protected readonly currentColor = computed(() =>\n this.internalChecked() ? this.colorOn() : this.colorOff(),\n );\n\n protected readonly computedTabindex = computed(() =>\n this.isReadOnly() ? '-1' : this.tabindex(),\n );\n\n protected readonly computedAriaLabel = computed(() => {\n const label = this.ariaLabel();\n if (!label || label === '') {\n return this.currentIcon() ?? '';\n }\n return label;\n });\n\n readonly hostClasses = computed(() =>\n ['eds-icon-toggle',\n this.internalChecked() ? 'eds-icon-toggle--on' : 'eds-icon-toggle--off',\n this.isReadOnly() ? 'eds-icon-toggle--readonly' : '',\n ].join(' ').trim(),\n );\n\n constructor() {\n effect(() => this.internalChecked.set(this.isChecked()));\n }\n\n protected onToggle(): void {\n if (!this.isReadOnly()) {\n this.internalChecked.update(v => !v);\n this.isCheckedChange.emit(this.internalChecked());\n this.toggle.emit(this.internalChecked());\n }\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n event.preventDefault();\n event.stopPropagation();\n this.onToggle();\n break;\n }\n }\n}\n","<eds-icon [icon]=\"currentIcon()\" [color]=\"$any(currentColor())\" />\n","import { EdsIconToggle } from './eds-icon-toggle';\n\nexport { EdsIconToggle };\n\n/** Convenience array for importing all eds-icon-toggle components. */\nexport const EDS_ICON_TOGGLE = [\n EdsIconToggle,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|