ng-hub-ui-buttons 22.2.0 → 22.2.1

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/README.md CHANGED
@@ -126,8 +126,8 @@ export class MyComponent { }
126
126
  Same inputs as `HubBtnComponent`. Apply to a native `<button>` or `<a>` element.
127
127
 
128
128
  ```html
129
- <button hubBtn variant="outline" color="success">Confirm</button>
130
- <a hubBtn variant="link" color="primary" href="/docs">Read more</a>
129
+ <button hubButton variant="outline" color="success">Confirm</button>
130
+ <a hubButton variant="link" color="primary" href="/docs">Read more</a>
131
131
  ```
132
132
 
133
133
  ### `HubFabComponent` — `<hub-fab>`
@@ -220,16 +220,16 @@ All visual properties are CSS custom properties scoped with `:where()` (zero spe
220
220
 
221
221
  ```css
222
222
  /* Button */
223
- --hub-btn-padding-x: 0.875rem;
224
- --hub-btn-padding-y: 0.4375rem;
225
- --hub-btn-border-radius: var(--hub-sys-radius-md, 0.375rem);
226
- --hub-btn-border-width: 1.5px;
227
- --hub-btn-font-size: 1rem;
228
- --hub-btn-font-weight: 500;
229
- --hub-btn-gap: 0.375rem;
230
- --hub-btn-transition: all 0.15s ease;
231
- --hub-btn-spinner-size: 0.875em;
232
- --hub-btn-disabled-opacity: 0.55;
223
+ --hub-button-padding-x: 0.875rem;
224
+ --hub-button-padding-y: 0.4375rem;
225
+ --hub-button-border-radius: var(--hub-sys-radius-md, 0.375rem);
226
+ --hub-button-border-width: 1.5px;
227
+ --hub-button-font-size: 1rem;
228
+ --hub-button-font-weight: 500;
229
+ --hub-button-gap: 0.375rem;
230
+ --hub-button-transition: all 0.15s ease;
231
+ --hub-button-spinner-size: 0.875em;
232
+ --hub-button-disabled-opacity: 0.55;
233
233
 
234
234
  /* FAB */
235
235
  --hub-fab-size-mini: 2.5rem;
@@ -50,11 +50,11 @@ class HubBtnComponent {
50
50
  return this.disabled() ? true : null;
51
51
  }
52
52
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: HubBtnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: HubBtnComponent, isStandalone: true, selector: "hub-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this._hostClass", "attr.disabled": "this._disabledAttr" }, classAttribute: "hub-btn" }, ngImport: i0, template: "@if (loading()) {\n\t<span class=\"hub-btn__spinner\" aria-hidden=\"true\"></span>\n}\n<ng-content></ng-content>\n", styles: [":where(:host){--hub-btn-padding-x: .875rem;--hub-btn-padding-y: .4375rem;--hub-btn-border-radius: var(--hub-sys-radius-md, .375rem);--hub-btn-border-width: 1.5px;--hub-btn-font-size: var(--hub-ref-font-size-base, 1rem);--hub-btn-font-weight: 500;--hub-btn-gap: .375rem;--hub-btn-transition: all .15s ease;--hub-btn-spinner-size: .875em;--hub-btn-disabled-opacity: .55}:host{display:inline-flex;align-items:center;justify-content:center;gap:var(--hub-btn-gap);padding:var(--hub-btn-padding-y) var(--hub-btn-padding-x);border-radius:var(--hub-btn-border-radius);border:var(--hub-btn-border-width) solid transparent;font-size:var(--hub-btn-font-size);font-weight:var(--hub-btn-font-weight);cursor:pointer;text-decoration:none;transition:var(--hub-btn-transition);-webkit-user-select:none;user-select:none;white-space:nowrap}:host(.hub-btn-disabled),:host([disabled]){opacity:var(--hub-btn-disabled-opacity);pointer-events:none}:host(.hub-btn-loading){pointer-events:none}:host(.hub-btn-sm){--hub-btn-padding-x: .625rem;--hub-btn-padding-y: .25rem;--hub-btn-font-size: .8125rem;--hub-btn-border-radius: var(--hub-sys-radius-sm, .25rem)}:host(.hub-btn-lg){--hub-btn-padding-x: 1.25rem;--hub-btn-padding-y: .625rem;--hub-btn-font-size: 1rem}:host(.hub-btn-xl){--hub-btn-padding-x: 1.75rem;--hub-btn-padding-y: .8125rem;--hub-btn-font-size: 1.125rem}:host(.hub-btn-icon){--hub-btn-padding-x: var(--hub-btn-padding-y);aspect-ratio:1}.hub-btn__spinner{display:inline-block;width:var(--hub-btn-spinner-size);height:var(--hub-btn-spinner-size);border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:hub-btn-spin .7s linear infinite}@keyframes hub-btn-spin{to{transform:rotate(360deg)}}:host(.hub-btn-solid.hub-btn-primary){background:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary));color:var(--hub-sys-color-primary-on-default, #fff);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-solid.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-emphasis)}:host(.hub-btn-outline.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-outline.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-soft.hub-btn-primary){background:var(--hub-sys-color-primary-subtle);color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-primary-subtle) 80%,var(--hub-sys-color-primary-default))}:host(.hub-btn-ghost.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-link.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-primary-default)}:host(.hub-btn-solid.hub-btn-secondary){background:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary));color:var(--hub-sys-color-secondary-on-default, #fff);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-solid.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-emphasis)}:host(.hub-btn-outline.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-outline.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-soft.hub-btn-secondary){background:var(--hub-sys-color-secondary-subtle);color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-secondary-subtle) 80%,var(--hub-sys-color-secondary-default))}:host(.hub-btn-ghost.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-link.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-secondary-default)}:host(.hub-btn-solid.hub-btn-success){background:var(--hub-sys-color-success-default, var(--hub-sys-color-success));color:var(--hub-sys-color-success-on-default, #fff);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-solid.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-emphasis)}:host(.hub-btn-outline.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-outline.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-soft.hub-btn-success){background:var(--hub-sys-color-success-subtle);color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-success-subtle) 80%,var(--hub-sys-color-success-default))}:host(.hub-btn-ghost.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-link.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-success-default)}:host(.hub-btn-solid.hub-btn-danger){background:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger));color:var(--hub-sys-color-danger-on-default, #fff);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-solid.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-emphasis)}:host(.hub-btn-outline.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-outline.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-soft.hub-btn-danger){background:var(--hub-sys-color-danger-subtle);color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-danger-subtle) 80%,var(--hub-sys-color-danger-default))}:host(.hub-btn-ghost.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-link.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-danger-default)}:host(.hub-btn-solid.hub-btn-warning){background:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning));color:var(--hub-sys-color-warning-on-default, #fff);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-solid.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-emphasis)}:host(.hub-btn-outline.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-outline.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-soft.hub-btn-warning){background:var(--hub-sys-color-warning-subtle);color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-warning-subtle) 80%,var(--hub-sys-color-warning-default))}:host(.hub-btn-ghost.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-link.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-warning-default)}:host(.hub-btn-solid.hub-btn-info){background:var(--hub-sys-color-info-default, var(--hub-sys-color-info));color:var(--hub-sys-color-info-on-default, #fff);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-solid.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-emphasis)}:host(.hub-btn-outline.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-outline.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-soft.hub-btn-info){background:var(--hub-sys-color-info-subtle);color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-info-subtle) 80%,var(--hub-sys-color-info-default))}:host(.hub-btn-ghost.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-link.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-info-default)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: HubBtnComponent, isStandalone: true, selector: "hub-button", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this._hostClass", "attr.disabled": "this._disabledAttr" }, classAttribute: "hub-btn" }, ngImport: i0, template: "@if (loading()) {\n\t<span class=\"hub-btn__spinner\" aria-hidden=\"true\"></span>\n}\n<ng-content></ng-content>\n", styles: [":where(:host){--hub-button-padding-x: .875rem;--hub-button-padding-y: .4375rem;--hub-button-border-radius: var(--hub-sys-radius-md, .375rem);--hub-button-border-width: 1.5px;--hub-button-font-size: var(--hub-ref-font-size-base, 1rem);--hub-button-font-weight: 500;--hub-button-gap: .375rem;--hub-button-transition: all .15s ease;--hub-button-spinner-size: .875em;--hub-button-disabled-opacity: .55}:host{display:inline-flex;align-items:center;justify-content:center;gap:var(--hub-button-gap);padding:var(--hub-button-padding-y) var(--hub-button-padding-x);border-radius:var(--hub-button-border-radius);border:var(--hub-button-border-width) solid transparent;font-size:var(--hub-button-font-size);font-weight:var(--hub-button-font-weight);cursor:pointer;text-decoration:none;transition:var(--hub-button-transition);-webkit-user-select:none;user-select:none;white-space:nowrap}:host(.hub-btn-disabled),:host([disabled]){opacity:var(--hub-button-disabled-opacity);pointer-events:none}:host(.hub-btn-loading){pointer-events:none}:host(.hub-btn-sm){--hub-button-padding-x: .625rem;--hub-button-padding-y: .25rem;--hub-button-font-size: .8125rem;--hub-button-border-radius: var(--hub-sys-radius-sm, .25rem)}:host(.hub-btn-lg){--hub-button-padding-x: 1.25rem;--hub-button-padding-y: .625rem;--hub-button-font-size: 1rem}:host(.hub-btn-xl){--hub-button-padding-x: 1.75rem;--hub-button-padding-y: .8125rem;--hub-button-font-size: 1.125rem}:host(.hub-btn-icon){--hub-button-padding-x: var(--hub-button-padding-y);aspect-ratio:1}.hub-btn__spinner{display:inline-block;width:var(--hub-button-spinner-size);height:var(--hub-button-spinner-size);border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:hub-btn-spin .7s linear infinite}@keyframes hub-btn-spin{to{transform:rotate(360deg)}}:host(.hub-btn-solid.hub-btn-primary){background:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary));color:var(--hub-sys-color-primary-on-default, #fff);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-solid.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-emphasis)}:host(.hub-btn-outline.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-outline.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-soft.hub-btn-primary){background:var(--hub-sys-color-primary-subtle);color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-primary-subtle) 80%,var(--hub-sys-color-primary-default))}:host(.hub-btn-ghost.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-link.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-primary-default)}:host(.hub-btn-solid.hub-btn-secondary){background:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary));color:var(--hub-sys-color-secondary-on-default, #fff);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-solid.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-emphasis)}:host(.hub-btn-outline.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-outline.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-soft.hub-btn-secondary){background:var(--hub-sys-color-secondary-subtle);color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-secondary-subtle) 80%,var(--hub-sys-color-secondary-default))}:host(.hub-btn-ghost.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-link.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-secondary-default)}:host(.hub-btn-solid.hub-btn-success){background:var(--hub-sys-color-success-default, var(--hub-sys-color-success));color:var(--hub-sys-color-success-on-default, #fff);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-solid.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-emphasis)}:host(.hub-btn-outline.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-outline.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-soft.hub-btn-success){background:var(--hub-sys-color-success-subtle);color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-success-subtle) 80%,var(--hub-sys-color-success-default))}:host(.hub-btn-ghost.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-link.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-success-default)}:host(.hub-btn-solid.hub-btn-danger){background:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger));color:var(--hub-sys-color-danger-on-default, #fff);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-solid.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-emphasis)}:host(.hub-btn-outline.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-outline.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-soft.hub-btn-danger){background:var(--hub-sys-color-danger-subtle);color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-danger-subtle) 80%,var(--hub-sys-color-danger-default))}:host(.hub-btn-ghost.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-link.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-danger-default)}:host(.hub-btn-solid.hub-btn-warning){background:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning));color:var(--hub-sys-color-warning-on-default, #fff);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-solid.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-emphasis)}:host(.hub-btn-outline.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-outline.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-soft.hub-btn-warning){background:var(--hub-sys-color-warning-subtle);color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-warning-subtle) 80%,var(--hub-sys-color-warning-default))}:host(.hub-btn-ghost.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-link.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-warning-default)}:host(.hub-btn-solid.hub-btn-info){background:var(--hub-sys-color-info-default, var(--hub-sys-color-info));color:var(--hub-sys-color-info-on-default, #fff);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-solid.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-emphasis)}:host(.hub-btn-outline.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-outline.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-soft.hub-btn-info){background:var(--hub-sys-color-info-subtle);color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-info-subtle) 80%,var(--hub-sys-color-info-default))}:host(.hub-btn-ghost.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-link.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-info-default)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
54
  }
55
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: HubBtnComponent, decorators: [{
56
56
  type: Component,
57
- args: [{ selector: 'hub-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'hub-btn' }, template: "@if (loading()) {\n\t<span class=\"hub-btn__spinner\" aria-hidden=\"true\"></span>\n}\n<ng-content></ng-content>\n", styles: [":where(:host){--hub-btn-padding-x: .875rem;--hub-btn-padding-y: .4375rem;--hub-btn-border-radius: var(--hub-sys-radius-md, .375rem);--hub-btn-border-width: 1.5px;--hub-btn-font-size: var(--hub-ref-font-size-base, 1rem);--hub-btn-font-weight: 500;--hub-btn-gap: .375rem;--hub-btn-transition: all .15s ease;--hub-btn-spinner-size: .875em;--hub-btn-disabled-opacity: .55}:host{display:inline-flex;align-items:center;justify-content:center;gap:var(--hub-btn-gap);padding:var(--hub-btn-padding-y) var(--hub-btn-padding-x);border-radius:var(--hub-btn-border-radius);border:var(--hub-btn-border-width) solid transparent;font-size:var(--hub-btn-font-size);font-weight:var(--hub-btn-font-weight);cursor:pointer;text-decoration:none;transition:var(--hub-btn-transition);-webkit-user-select:none;user-select:none;white-space:nowrap}:host(.hub-btn-disabled),:host([disabled]){opacity:var(--hub-btn-disabled-opacity);pointer-events:none}:host(.hub-btn-loading){pointer-events:none}:host(.hub-btn-sm){--hub-btn-padding-x: .625rem;--hub-btn-padding-y: .25rem;--hub-btn-font-size: .8125rem;--hub-btn-border-radius: var(--hub-sys-radius-sm, .25rem)}:host(.hub-btn-lg){--hub-btn-padding-x: 1.25rem;--hub-btn-padding-y: .625rem;--hub-btn-font-size: 1rem}:host(.hub-btn-xl){--hub-btn-padding-x: 1.75rem;--hub-btn-padding-y: .8125rem;--hub-btn-font-size: 1.125rem}:host(.hub-btn-icon){--hub-btn-padding-x: var(--hub-btn-padding-y);aspect-ratio:1}.hub-btn__spinner{display:inline-block;width:var(--hub-btn-spinner-size);height:var(--hub-btn-spinner-size);border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:hub-btn-spin .7s linear infinite}@keyframes hub-btn-spin{to{transform:rotate(360deg)}}:host(.hub-btn-solid.hub-btn-primary){background:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary));color:var(--hub-sys-color-primary-on-default, #fff);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-solid.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-emphasis)}:host(.hub-btn-outline.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-outline.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-soft.hub-btn-primary){background:var(--hub-sys-color-primary-subtle);color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-primary-subtle) 80%,var(--hub-sys-color-primary-default))}:host(.hub-btn-ghost.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-link.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-primary-default)}:host(.hub-btn-solid.hub-btn-secondary){background:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary));color:var(--hub-sys-color-secondary-on-default, #fff);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-solid.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-emphasis)}:host(.hub-btn-outline.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-outline.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-soft.hub-btn-secondary){background:var(--hub-sys-color-secondary-subtle);color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-secondary-subtle) 80%,var(--hub-sys-color-secondary-default))}:host(.hub-btn-ghost.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-link.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-secondary-default)}:host(.hub-btn-solid.hub-btn-success){background:var(--hub-sys-color-success-default, var(--hub-sys-color-success));color:var(--hub-sys-color-success-on-default, #fff);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-solid.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-emphasis)}:host(.hub-btn-outline.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-outline.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-soft.hub-btn-success){background:var(--hub-sys-color-success-subtle);color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-success-subtle) 80%,var(--hub-sys-color-success-default))}:host(.hub-btn-ghost.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-link.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-success-default)}:host(.hub-btn-solid.hub-btn-danger){background:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger));color:var(--hub-sys-color-danger-on-default, #fff);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-solid.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-emphasis)}:host(.hub-btn-outline.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-outline.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-soft.hub-btn-danger){background:var(--hub-sys-color-danger-subtle);color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-danger-subtle) 80%,var(--hub-sys-color-danger-default))}:host(.hub-btn-ghost.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-link.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-danger-default)}:host(.hub-btn-solid.hub-btn-warning){background:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning));color:var(--hub-sys-color-warning-on-default, #fff);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-solid.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-emphasis)}:host(.hub-btn-outline.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-outline.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-soft.hub-btn-warning){background:var(--hub-sys-color-warning-subtle);color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-warning-subtle) 80%,var(--hub-sys-color-warning-default))}:host(.hub-btn-ghost.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-link.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-warning-default)}:host(.hub-btn-solid.hub-btn-info){background:var(--hub-sys-color-info-default, var(--hub-sys-color-info));color:var(--hub-sys-color-info-on-default, #fff);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-solid.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-emphasis)}:host(.hub-btn-outline.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-outline.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-soft.hub-btn-info){background:var(--hub-sys-color-info-subtle);color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-info-subtle) 80%,var(--hub-sys-color-info-default))}:host(.hub-btn-ghost.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-link.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-info-default)}\n"] }]
57
+ args: [{ selector: 'hub-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'hub-btn' }, template: "@if (loading()) {\n\t<span class=\"hub-btn__spinner\" aria-hidden=\"true\"></span>\n}\n<ng-content></ng-content>\n", styles: [":where(:host){--hub-button-padding-x: .875rem;--hub-button-padding-y: .4375rem;--hub-button-border-radius: var(--hub-sys-radius-md, .375rem);--hub-button-border-width: 1.5px;--hub-button-font-size: var(--hub-ref-font-size-base, 1rem);--hub-button-font-weight: 500;--hub-button-gap: .375rem;--hub-button-transition: all .15s ease;--hub-button-spinner-size: .875em;--hub-button-disabled-opacity: .55}:host{display:inline-flex;align-items:center;justify-content:center;gap:var(--hub-button-gap);padding:var(--hub-button-padding-y) var(--hub-button-padding-x);border-radius:var(--hub-button-border-radius);border:var(--hub-button-border-width) solid transparent;font-size:var(--hub-button-font-size);font-weight:var(--hub-button-font-weight);cursor:pointer;text-decoration:none;transition:var(--hub-button-transition);-webkit-user-select:none;user-select:none;white-space:nowrap}:host(.hub-btn-disabled),:host([disabled]){opacity:var(--hub-button-disabled-opacity);pointer-events:none}:host(.hub-btn-loading){pointer-events:none}:host(.hub-btn-sm){--hub-button-padding-x: .625rem;--hub-button-padding-y: .25rem;--hub-button-font-size: .8125rem;--hub-button-border-radius: var(--hub-sys-radius-sm, .25rem)}:host(.hub-btn-lg){--hub-button-padding-x: 1.25rem;--hub-button-padding-y: .625rem;--hub-button-font-size: 1rem}:host(.hub-btn-xl){--hub-button-padding-x: 1.75rem;--hub-button-padding-y: .8125rem;--hub-button-font-size: 1.125rem}:host(.hub-btn-icon){--hub-button-padding-x: var(--hub-button-padding-y);aspect-ratio:1}.hub-btn__spinner{display:inline-block;width:var(--hub-button-spinner-size);height:var(--hub-button-spinner-size);border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:hub-btn-spin .7s linear infinite}@keyframes hub-btn-spin{to{transform:rotate(360deg)}}:host(.hub-btn-solid.hub-btn-primary){background:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary));color:var(--hub-sys-color-primary-on-default, #fff);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-solid.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-emphasis)}:host(.hub-btn-outline.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:var(--hub-sys-color-primary-default, var(--hub-sys-color-primary))}:host(.hub-btn-outline.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-soft.hub-btn-primary){background:var(--hub-sys-color-primary-subtle);color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-primary-subtle) 80%,var(--hub-sys-color-primary-default))}:host(.hub-btn-ghost.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-primary-subtle)}:host(.hub-btn-link.hub-btn-primary){background:transparent;color:var(--hub-sys-color-primary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-primary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-primary-default)}:host(.hub-btn-solid.hub-btn-secondary){background:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary));color:var(--hub-sys-color-secondary-on-default, #fff);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-solid.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-emphasis)}:host(.hub-btn-outline.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:var(--hub-sys-color-secondary-default, var(--hub-sys-color-secondary))}:host(.hub-btn-outline.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-soft.hub-btn-secondary){background:var(--hub-sys-color-secondary-subtle);color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-secondary-subtle) 80%,var(--hub-sys-color-secondary-default))}:host(.hub-btn-ghost.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-secondary-subtle)}:host(.hub-btn-link.hub-btn-secondary){background:transparent;color:var(--hub-sys-color-secondary-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-secondary):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-secondary-default)}:host(.hub-btn-solid.hub-btn-success){background:var(--hub-sys-color-success-default, var(--hub-sys-color-success));color:var(--hub-sys-color-success-on-default, #fff);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-solid.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-emphasis)}:host(.hub-btn-outline.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:var(--hub-sys-color-success-default, var(--hub-sys-color-success))}:host(.hub-btn-outline.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-soft.hub-btn-success){background:var(--hub-sys-color-success-subtle);color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-success-subtle) 80%,var(--hub-sys-color-success-default))}:host(.hub-btn-ghost.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-success-subtle)}:host(.hub-btn-link.hub-btn-success){background:transparent;color:var(--hub-sys-color-success-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-success):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-success-default)}:host(.hub-btn-solid.hub-btn-danger){background:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger));color:var(--hub-sys-color-danger-on-default, #fff);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-solid.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-emphasis)}:host(.hub-btn-outline.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:var(--hub-sys-color-danger-default, var(--hub-sys-color-danger))}:host(.hub-btn-outline.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-soft.hub-btn-danger){background:var(--hub-sys-color-danger-subtle);color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-danger-subtle) 80%,var(--hub-sys-color-danger-default))}:host(.hub-btn-ghost.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-danger-subtle)}:host(.hub-btn-link.hub-btn-danger){background:transparent;color:var(--hub-sys-color-danger-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-danger):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-danger-default)}:host(.hub-btn-solid.hub-btn-warning){background:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning));color:var(--hub-sys-color-warning-on-default, #fff);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-solid.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-emphasis)}:host(.hub-btn-outline.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:var(--hub-sys-color-warning-default, var(--hub-sys-color-warning))}:host(.hub-btn-outline.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-soft.hub-btn-warning){background:var(--hub-sys-color-warning-subtle);color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-warning-subtle) 80%,var(--hub-sys-color-warning-default))}:host(.hub-btn-ghost.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-warning-subtle)}:host(.hub-btn-link.hub-btn-warning){background:transparent;color:var(--hub-sys-color-warning-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-warning):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-warning-default)}:host(.hub-btn-solid.hub-btn-info){background:var(--hub-sys-color-info-default, var(--hub-sys-color-info));color:var(--hub-sys-color-info-on-default, #fff);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-solid.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-emphasis)}:host(.hub-btn-outline.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:var(--hub-sys-color-info-default, var(--hub-sys-color-info))}:host(.hub-btn-outline.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-soft.hub-btn-info){background:var(--hub-sys-color-info-subtle);color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-soft.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:color-mix(in srgb,var(--hub-sys-color-info-subtle) 80%,var(--hub-sys-color-info-default))}:host(.hub-btn-ghost.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent}:host(.hub-btn-ghost.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){background:var(--hub-sys-color-info-subtle)}:host(.hub-btn-link.hub-btn-info){background:transparent;color:var(--hub-sys-color-info-emphasis);border-color:transparent;text-decoration:underline;padding-inline:.125rem}:host(.hub-btn-link.hub-btn-info):hover:not([disabled]):not(.hub-btn-disabled){color:var(--hub-sys-color-info-default)}\n"] }]
58
58
  }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], iconOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconOnly", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], _hostClass: [{
59
59
  type: HostBinding,
60
60
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"ng-hub-ui-buttons.mjs","sources":["../../../projects/buttons/src/lib/tokens/dropdown.token.ts","../../../projects/buttons/src/lib/components/btn/btn.component.ts","../../../projects/buttons/src/lib/components/btn/btn.component.html","../../../projects/buttons/src/lib/components/fab/fab.component.ts","../../../projects/buttons/src/lib/components/fab/fab.component.html","../../../projects/buttons/src/lib/components/speed-dial/speed-dial.component.ts","../../../projects/buttons/src/lib/components/speed-dial/speed-dial.component.html","../../../projects/buttons/src/lib/components/speed-dial/speed-dial-item/speed-dial-item.component.ts","../../../projects/buttons/src/lib/components/speed-dial/speed-dial-item/speed-dial-item.component.html","../../../projects/buttons/src/lib/components/dropdown-panel/dropdown-panel.component.ts","../../../projects/buttons/src/lib/components/dropdown-item/dropdown-item.component.ts","../../../projects/buttons/src/lib/components/dropdown-item/dropdown-item.component.html","../../../projects/buttons/src/lib/components/dropdown-divider/dropdown-divider.component.ts","../../../projects/buttons/src/lib/components/dropdown-header/dropdown-header.component.ts","../../../projects/buttons/src/lib/directives/btn.directive.ts","../../../projects/buttons/src/lib/directives/dropdown.directive.ts","../../../projects/buttons/src/public-api.ts","../../../projects/buttons/src/ng-hub-ui-buttons.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\n\n/**\n * Context shared between HubDropdownDirective and its panel/item descendants.\n * Injected by the directive; consumed by HubDropdownPanelComponent and\n * HubDropdownItemComponent to implement closeOnSelect without prop drilling.\n */\nexport interface DropdownContext {\n\t/** Whether clicking an item should close the dropdown. */\n\treadonly closeOnSelect: Signal<boolean>;\n\t/** Imperatively close the dropdown. */\n\tclose(): void;\n}\n\n/** Injection token for DropdownContext. */\nexport const DROPDOWN_CONTEXT = new InjectionToken<DropdownContext>('HubDropdownContext');\n","import { ChangeDetectionStrategy, Component, HostBinding, computed, input } from '@angular/core';\nimport { HubBtnSize, HubBtnVariant, HubSemanticColor } from '../../models/button.types';\n\n/**\n * Styled button component. Applies hub-btn CSS classes computed from signal inputs.\n * Use <hub-button> when the element type can be this component, or [hubButton] directive\n * when a native element (button, a, etc.) must keep its tag.\n */\n@Component({\n\tselector: 'hub-button',\n\tstandalone: true,\n\ttemplateUrl: './btn.component.html',\n\tstyleUrl: './btn.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-btn' }\n})\nexport class HubBtnComponent {\n\t/** Visual style of the button. */\n\tvariant = input<HubBtnVariant>('solid');\n\n\t/** Semantic color token. */\n\tcolor = input<HubSemanticColor>('primary');\n\n\t/** Size token. */\n\tsize = input<HubBtnSize>('md');\n\n\t/** When true, enforces equal width/height (icon-only layout). */\n\ticonOnly = input(false);\n\n\t/** When true, shows a spinner and blocks pointer events. */\n\tloading = input(false);\n\n\t/** Mirrors the native disabled attribute on the host element. */\n\tdisabled = input(false);\n\n\t/** Computed CSS classes applied to the host element via HostBinding. */\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-btn-${this.variant()}`,\n\t\t\t`hub-btn-${this.color()}`,\n\t\t\t`hub-btn-${this.size()}`,\n\t\t\tthis.iconOnly() ? 'hub-btn-icon' : '',\n\t\t\tthis.loading() ? 'hub-btn-loading' : '',\n\t\t\tthis.disabled() ? 'hub-btn-disabled' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\t/** Reflects the disabled state as a native HTML attribute. */\n\t@HostBinding('attr.disabled')\n\tprotected get _disabledAttr(): true | null {\n\t\treturn this.disabled() ? true : null;\n\t}\n}\n","@if (loading()) {\n\t<span class=\"hub-btn__spinner\" aria-hidden=\"true\"></span>\n}\n<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, DestroyRef, HostBinding, OnInit, ViewEncapsulation, inject, input, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { HubFabPosition, HubFabSize, HubSemanticColor } from '../../models/button.types';\n\n/**\n * Floating Action Button component. Renders fixed in the viewport at the given position.\n * Supports circular and extended (pill with label) variants.\n * When collapseOnScroll is true, an extended FAB collapses to icon-only after 50px scroll.\n * Uses inset-inline-* / inset-block-* CSS logical properties for RTL support.\n */\n@Component({\n\tselector: 'hub-fab',\n\tstandalone: true,\n\ttemplateUrl: './fab.component.html',\n\tstyleUrl: './fab.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-fab' },\n\tencapsulation: ViewEncapsulation.None\n})\nexport class HubFabComponent implements OnInit {\n\tcolor = input<HubSemanticColor>('primary');\n\tsize = input<HubFabSize>('standard');\n\textended = input(false);\n\t/** Fixed viewport position. 9-slot grid including center. */\n\tposition = input<HubFabPosition>('bottom-end');\n\t/** When true, collapses an extended FAB to icon-only on page scroll. */\n\tcollapseOnScroll = input(false);\n\tdisabled = input(false);\n\tfabClick = output<void>();\n\n\t/** Collapse state driven by scroll — only active when extended + collapseOnScroll. */\n\tprotected readonly _collapsed = signal(false);\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-fab-${this.color()}`,\n\t\t\t`hub-fab-${this.size()}`,\n\t\t\t`hub-fab-${this.position()}`,\n\t\t\tthis.extended() && !this._collapsed() ? 'hub-fab-extended' : '',\n\t\t\tthis.disabled() ? 'hub-fab-disabled' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\tngOnInit(): void {\n\t\tif (!this.collapseOnScroll()) return;\n\n\t\tfromEvent(window, 'scroll', { passive: true })\n\t\t\t.pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._collapsed.set(window.scrollY > 50);\n\t\t\t});\n\t}\n}\n","<ng-content select=\"[slot=icon]\"></ng-content>\n\n@if (extended() && !_collapsed()) {\n\t<span class=\"hub-fab__label\">\n\t\t<ng-content select=\"[slot=label]\"></ng-content>\n\t</span>\n} @else if (!extended()) {\n\t<ng-content></ng-content>\n}\n","import { ChangeDetectionStrategy, Component, DestroyRef, HostBinding, inject, input, model, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { HubFabPosition, HubFabSize, HubSemanticColor } from '../../models/button.types';\n\n/**\n * FAB that expands a stack of HubSpeedDialItemComponent children on click or hover.\n * Supports 4 expansion directions and all 9 FAB viewport positions.\n * Closes automatically on Escape key press.\n */\n@Component({\n\tselector: 'hub-speed-dial',\n\tstandalone: true,\n\ttemplateUrl: './speed-dial.component.html',\n\tstyleUrl: './speed-dial.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-speed-dial' }\n})\nexport class HubSpeedDialComponent {\n\tcolor = input<HubSemanticColor>('primary');\n\tsize = input<HubFabSize>('standard');\n\tposition = input<HubFabPosition>('bottom-end');\n\tdirection = input<'up' | 'down' | 'left' | 'right'>('up');\n\ttrigger = input<'click' | 'hover'>('click');\n\tisOpen = model(false);\n\topened = output<void>();\n\tclosed = output<void>();\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-speed-dial-${this.color()}`,\n\t\t\t`hub-speed-dial-${this.position()}`,\n\t\t\t`hub-speed-dial-${this.direction()}`,\n\t\t\tthis.isOpen() ? 'hub-speed-dial-open' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\tconstructor() {\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter((e) => e.key === 'Escape' && this.isOpen()),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef)\n\t\t\t)\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\t/** Toggle the speed dial open/closed. */\n\ttoggle(): void {\n\t\tthis.isOpen() ? this.close() : this.open();\n\t}\n\n\t/** Open the speed dial and emit the opened event. */\n\topen(): void {\n\t\tthis.isOpen.set(true);\n\t\tthis.opened.emit();\n\t}\n\n\t/** Close the speed dial and emit the closed event. */\n\tclose(): void {\n\t\tthis.isOpen.set(false);\n\t\tthis.closed.emit();\n\t}\n}\n","<button\n\tclass=\"hub-fab\"\n\t[class]=\"'hub-fab-' + color() + ' hub-fab-' + size()\"\n\t(click)=\"trigger() === 'click' && toggle()\"\n\t(mouseenter)=\"trigger() === 'hover' && open()\"\n\t(mouseleave)=\"trigger() === 'hover' && close()\"\n\ttype=\"button\"\n\t[attr.aria-expanded]=\"isOpen()\"\n\taria-haspopup=\"true\">\n\t<ng-content select=\"[hubTrigger]\"></ng-content>\n</button>\n\n@if (isOpen()) {\n\t<div class=\"hub-speed-dial__actions\" [attr.data-direction]=\"direction()\">\n\t\t<ng-content></ng-content>\n\t</div>\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, input, output } from '@angular/core';\nimport { HubSemanticColor } from '../../../models/button.types';\n\n/**\n * Secondary action item rendered inside HubSpeedDialComponent.\n * Emits itemClick when activated. Supports an optional label tooltip.\n */\n@Component({\n\tselector: 'hub-speed-dial-item',\n\tstandalone: true,\n\ttemplateUrl: './speed-dial-item.component.html',\n\tstyleUrl: './speed-dial-item.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HubSpeedDialItemComponent {\n\t/** Icon character or ligature string displayed in the action button. */\n\ticon = input.required<string>();\n\t/** Tooltip label shown next to the action button. */\n\tlabel = input('');\n\tcolor = input<HubSemanticColor | 'default'>('default');\n\tdisabled = input(false);\n\titemClick = output<void>();\n}\n","@if (label()) {\n\t<span class=\"hub-speed-dial-item__label\">{{ label() }}</span>\n}\n<button\n\tclass=\"hub-speed-dial-item__btn\"\n\t[class]=\"'hub-speed-dial-item__btn--' + color()\"\n\t[disabled]=\"disabled() || null\"\n\t(click)=\"itemClick.emit()\"\n\ttype=\"button\"\n\t[attr.aria-label]=\"label() || icon()\">\n\t<i [class]=\"icon()\" aria-hidden=\"true\"></i>\n</button>\n","import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\nimport { HubSemanticColor } from '../../models/button.types';\n\n/**\n * Styled container for dropdown content.\n * Renders a shadowed panel with an optional semantic color top-border accent.\n * Place hub-dropdown-item, hub-dropdown-divider, and hub-dropdown-header children inside.\n */\n@Component({\n\tselector: 'hub-dropdown-panel',\n\tstandalone: true,\n\ttemplate: `<ng-content></ng-content>`,\n\tstyleUrl: './dropdown-panel.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-dropdown-panel' }\n})\nexport class HubDropdownPanelComponent {\n\t/** Adds a semantic color accent to the panel top border. */\n\tcolor = input<HubSemanticColor | 'default'>('default');\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn this.color() !== 'default' ? `hub-dropdown-panel-${this.color()}` : '';\n\t}\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, input, output } from '@angular/core';\nimport { HubSemanticColor } from '../../models/button.types';\n\n/**\n * Menu item for use inside HubDropdownPanelComponent.\n * Emits itemClick when activated. Supports an optional icon, selected state and semantic color.\n */\n@Component({\n\tselector: 'hub-dropdown-item',\n\tstandalone: true,\n\ttemplateUrl: './dropdown-item.component.html',\n\tstyleUrl: './dropdown-item.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-dropdown-item' }\n})\nexport class HubDropdownItemComponent {\n\tcolor = input<HubSemanticColor | 'default'>('default');\n\t/** Optional icon character or ligature displayed before the label. */\n\ticon = input<string>();\n\tdisabled = input(false);\n\t/** Shows a checkmark indicator when selected. */\n\tselected = input(false);\n\titemClick = output<void>();\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\tthis.color() !== 'default' ? `hub-dropdown-item-${this.color()}` : '',\n\t\t\tthis.disabled() ? 'hub-dropdown-item-disabled' : '',\n\t\t\tthis.selected() ? 'hub-dropdown-item-selected' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\tprotected _handleClick(): void {\n\t\tif (this.disabled()) return;\n\t\tthis.itemClick.emit();\n\t}\n}\n","<button\n\tclass=\"hub-dropdown-item__inner\"\n\ttype=\"button\"\n\t[disabled]=\"disabled() || null\"\n\t(click)=\"_handleClick()\">\n\t@if (icon()) {\n\t\t<i [class]=\"icon()\" aria-hidden=\"true\"></i>\n\t}\n\t<span class=\"hub-dropdown-item__label\"><ng-content></ng-content></span>\n\t@if (selected()) {\n\t\t<span class=\"hub-dropdown-item__check\" aria-hidden=\"true\">✓</span>\n\t}\n</button>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** Horizontal separator for grouping items inside HubDropdownPanelComponent. */\n@Component({\n\tselector: 'hub-dropdown-divider',\n\tstandalone: true,\n\ttemplate: '',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'hub-dropdown-divider',\n\t\trole: 'separator',\n\t\t'aria-hidden': 'true'\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t\theight: 1px;\n\t\t\t\tbackground: var(--hub-dropdown-divider-color, var(--hub-sys-color-border-subtle, #e2e8f0));\n\t\t\t\tmargin: 0.25rem 0;\n\t\t\t}\n\t\t`\n\t]\n})\nexport class HubDropdownDividerComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** Group label for organizing items inside HubDropdownPanelComponent. */\n@Component({\n\tselector: 'hub-dropdown-header',\n\tstandalone: true,\n\ttemplate: `<ng-content></ng-content>`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-dropdown-header' },\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t\tpadding: 0.375rem var(--hub-dropdown-header-padding-x, 0.875rem) 0.1875rem;\n\t\t\t\tfont-size: var(--hub-dropdown-header-font-size, 0.6875rem);\n\t\t\t\tfont-weight: 700;\n\t\t\t\tcolor: var(--hub-dropdown-header-color, var(--hub-sys-color-text-subtle, #94a3b8));\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tletter-spacing: 0.06em;\n\t\t\t}\n\t\t`\n\t]\n})\nexport class HubDropdownHeaderComponent {}\n","import { Directive, HostBinding, input } from '@angular/core';\nimport { HubBtnSize, HubBtnVariant, HubSemanticColor } from '../models/button.types';\n\n/**\n * Applies hub-btn styles to any host element (button, a, div, etc.).\n * Use this when the element type must stay native and cannot be replaced by <hub-button>.\n * Exposes the same inputs as HubBtnComponent.\n */\n@Directive({\n\tselector: '[hubButton]',\n\tstandalone: true,\n\thost: { class: 'hub-btn' }\n})\nexport class HubBtnDirective {\n\tvariant = input<HubBtnVariant>('solid');\n\tcolor = input<HubSemanticColor>('primary');\n\tsize = input<HubBtnSize>('md');\n\ticonOnly = input(false);\n\tloading = input(false);\n\tdisabled = input(false);\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-btn-${this.variant()}`,\n\t\t\t`hub-btn-${this.color()}`,\n\t\t\t`hub-btn-${this.size()}`,\n\t\t\tthis.iconOnly() ? 'hub-btn-icon' : '',\n\t\t\tthis.loading() ? 'hub-btn-loading' : '',\n\t\t\tthis.disabled() ? 'hub-btn-disabled' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\t@HostBinding('attr.disabled')\n\tprotected get _disabledAttr(): true | null {\n\t\treturn this.disabled() ? true : null;\n\t}\n}\n","import {\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tTemplateRef,\n\tViewContainerRef,\n\tinject,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { OverlayService } from 'ng-hub-ui-utils';\nimport type { OverlayRef, ConnectionPosition } from 'ng-hub-ui-utils';\nimport { HubDropdownPlacement } from '../models/button.types';\n\n/**\n * Turns any host element into a dropdown trigger.\n * Renders an ng-template in a body-level overlay managed by OverlayService (no CDK).\n * When closeOnSelect is true, any click inside the panel closes the overlay automatically.\n */\n@Directive({\n\tselector: '[hubDropdown]',\n\tstandalone: true,\n\texportAs: 'hubDropdown',\n\thost: {\n\t\t'(click)': '_onHostClick()',\n\t\t'(mouseenter)': '_onHostEnter()',\n\t\t'(mouseleave)': '_onHostLeave()'\n\t}\n})\nexport class HubDropdownDirective {\n\t/** The ng-template to render inside the overlay panel. */\n\ttpl = input.required<TemplateRef<any>>({ alias: 'hubDropdown' });\n\tplacement = input<HubDropdownPlacement>('bottom-start');\n\ttrigger = input<'click' | 'hover'>('click');\n\t/** When true, any click inside the panel content closes the dropdown. */\n\tcloseOnSelect = input(true);\n\tdisabled = input(false);\n\t/** Vertical offset in pixels between the trigger and the panel. */\n\toffsetY = input(4);\n\tpanelClass = input('');\n\tisOpen = model(false);\n\topened = output<void>();\n\tclosed = output<void>();\n\n\tprivate _overlayRef: OverlayRef | null = null;\n\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _overlay = inject(OverlayService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tconstructor() {\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter((e) => e.key === 'Escape' && this.isOpen()),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef)\n\t\t\t)\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\t/** Open the dropdown and mount the overlay. */\n\topen(): void {\n\t\tif (this.disabled() || this.isOpen()) return;\n\n\t\tconst positionStrategy = this._overlay.position().flexibleConnectedTo(this._el).withPositions(this._buildPositions());\n\n\t\tconst panelClasses = ['hub-dropdown-overlay'];\n\t\tif (this.panelClass()) panelClasses.push(this.panelClass());\n\n\t\tthis._overlayRef = this._overlay.create({ positionStrategy, panelClass: panelClasses });\n\n\t\tconst panelEl = this._overlayRef.attach(this.tpl(), this._vcr);\n\n\t\t// Close on click-outside via backdrop\n\t\tthis._overlayRef.onBackdropClick(() => this.close());\n\n\t\t// Close on click-inside when closeOnSelect is true\n\t\tif (this.closeOnSelect() && panelEl) {\n\t\t\tfromEvent<MouseEvent>(panelEl, 'click')\n\t\t\t\t.pipe(take(1), takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe(() => this.close());\n\t\t}\n\n\t\tthis.isOpen.set(true);\n\t\tthis.opened.emit();\n\n\t\t// Close on scroll so the panel stays aligned with the trigger\n\t\tfromEvent(document, 'scroll', { passive: true, capture: true })\n\t\t\t.pipe(take(1), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this.close());\n\n\t\t// Click-outside detection (document-level)\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter((e) => !this._el.nativeElement.contains(e.target as Node) && !!this._overlayRef?.hasAttached()),\n\t\t\t\ttake(1),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef)\n\t\t\t)\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\t/** Close the dropdown and destroy the overlay. */\n\tclose(): void {\n\t\tif (!this.isOpen()) return;\n\t\tthis._overlayRef?.detach();\n\t\tthis._overlayRef?.dispose();\n\t\tthis._overlayRef = null;\n\t\tthis.isOpen.set(false);\n\t\tthis.closed.emit();\n\t}\n\n\t/** Toggle between open and closed. */\n\ttoggle(): void {\n\t\tthis.isOpen() ? this.close() : this.open();\n\t}\n\n\tprotected _onHostClick(): void {\n\t\tif (this.trigger() === 'click') this.toggle();\n\t}\n\n\tprotected _onHostEnter(): void {\n\t\tif (this.trigger() === 'hover') this.open();\n\t}\n\n\tprotected _onHostLeave(): void {\n\t\tif (this.trigger() === 'hover') this.close();\n\t}\n\n\t/**\n\t * Translates HubDropdownPlacement tokens to ConnectionPosition arrays.\n\t * The OverlayPosition tries each entry in order, using the first that fits.\n\t */\n\tprivate _buildPositions(): ConnectionPosition[] {\n\t\tconst o = this.offsetY();\n\t\tconst map: Record<HubDropdownPlacement, ConnectionPosition[]> = {\n\t\t\t'bottom-start': [{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: o }],\n\t\t\tbottom: [{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: o }],\n\t\t\t'bottom-end': [{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: o }],\n\t\t\t'top-start': [{ originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -o }],\n\t\t\ttop: [{ originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -o }],\n\t\t\t'top-end': [{ originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -o }],\n\t\t\tstart: [{ originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -o }],\n\t\t\tend: [{ originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: o }]\n\t\t};\n\t\treturn map[this.placement()];\n\t}\n}\n","/*\n * Public API Surface of ng-hub-ui-buttons\n */\n\n// Types\nexport * from './lib/models/button.types';\n\n// Tokens\nexport * from './lib/tokens/dropdown.token';\n\n// Components\nexport * from './lib/components/btn/btn.component';\nexport * from './lib/components/fab/fab.component';\nexport * from './lib/components/speed-dial/speed-dial.component';\nexport * from './lib/components/speed-dial/speed-dial-item/speed-dial-item.component';\nexport * from './lib/components/dropdown-panel/dropdown-panel.component';\nexport * from './lib/components/dropdown-item/dropdown-item.component';\nexport * from './lib/components/dropdown-divider/dropdown-divider.component';\nexport * from './lib/components/dropdown-header/dropdown-header.component';\n\n// Directives\nexport * from './lib/directives/btn.directive';\nexport * from './lib/directives/dropdown.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-hub-ui-buttons.mjs","sources":["../../../projects/buttons/src/lib/tokens/dropdown.token.ts","../../../projects/buttons/src/lib/components/btn/button.component.ts","../../../projects/buttons/src/lib/components/btn/button.component.html","../../../projects/buttons/src/lib/components/fab/fab.component.ts","../../../projects/buttons/src/lib/components/fab/fab.component.html","../../../projects/buttons/src/lib/components/speed-dial/speed-dial.component.ts","../../../projects/buttons/src/lib/components/speed-dial/speed-dial.component.html","../../../projects/buttons/src/lib/components/speed-dial/speed-dial-item/speed-dial-item.component.ts","../../../projects/buttons/src/lib/components/speed-dial/speed-dial-item/speed-dial-item.component.html","../../../projects/buttons/src/lib/components/dropdown-panel/dropdown-panel.component.ts","../../../projects/buttons/src/lib/components/dropdown-item/dropdown-item.component.ts","../../../projects/buttons/src/lib/components/dropdown-item/dropdown-item.component.html","../../../projects/buttons/src/lib/components/dropdown-divider/dropdown-divider.component.ts","../../../projects/buttons/src/lib/components/dropdown-header/dropdown-header.component.ts","../../../projects/buttons/src/lib/directives/btn.directive.ts","../../../projects/buttons/src/lib/directives/dropdown.directive.ts","../../../projects/buttons/src/public-api.ts","../../../projects/buttons/src/ng-hub-ui-buttons.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\n\n/**\n * Context shared between HubDropdownDirective and its panel/item descendants.\n * Injected by the directive; consumed by HubDropdownPanelComponent and\n * HubDropdownItemComponent to implement closeOnSelect without prop drilling.\n */\nexport interface DropdownContext {\n\t/** Whether clicking an item should close the dropdown. */\n\treadonly closeOnSelect: Signal<boolean>;\n\t/** Imperatively close the dropdown. */\n\tclose(): void;\n}\n\n/** Injection token for DropdownContext. */\nexport const DROPDOWN_CONTEXT = new InjectionToken<DropdownContext>('HubDropdownContext');\n","import { ChangeDetectionStrategy, Component, HostBinding, computed, input } from '@angular/core';\nimport { HubBtnSize, HubBtnVariant, HubSemanticColor } from '../../models/button.types';\n\n/**\n * Styled button component. Applies hub-btn CSS classes computed from signal inputs.\n * Use <hub-button> when the element type can be this component, or [hubButton] directive\n * when a native element (button, a, etc.) must keep its tag.\n */\n@Component({\n\tselector: 'hub-button',\n\tstandalone: true,\n\ttemplateUrl: './button.component.html',\n\tstyleUrl: './button.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-btn' }\n})\nexport class HubBtnComponent {\n\t/** Visual style of the button. */\n\tvariant = input<HubBtnVariant>('solid');\n\n\t/** Semantic color token. */\n\tcolor = input<HubSemanticColor>('primary');\n\n\t/** Size token. */\n\tsize = input<HubBtnSize>('md');\n\n\t/** When true, enforces equal width/height (icon-only layout). */\n\ticonOnly = input(false);\n\n\t/** When true, shows a spinner and blocks pointer events. */\n\tloading = input(false);\n\n\t/** Mirrors the native disabled attribute on the host element. */\n\tdisabled = input(false);\n\n\t/** Computed CSS classes applied to the host element via HostBinding. */\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-btn-${this.variant()}`,\n\t\t\t`hub-btn-${this.color()}`,\n\t\t\t`hub-btn-${this.size()}`,\n\t\t\tthis.iconOnly() ? 'hub-btn-icon' : '',\n\t\t\tthis.loading() ? 'hub-btn-loading' : '',\n\t\t\tthis.disabled() ? 'hub-btn-disabled' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\t/** Reflects the disabled state as a native HTML attribute. */\n\t@HostBinding('attr.disabled')\n\tprotected get _disabledAttr(): true | null {\n\t\treturn this.disabled() ? true : null;\n\t}\n}\n","@if (loading()) {\n\t<span class=\"hub-btn__spinner\" aria-hidden=\"true\"></span>\n}\n<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, DestroyRef, HostBinding, OnInit, ViewEncapsulation, inject, input, output, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { HubFabPosition, HubFabSize, HubSemanticColor } from '../../models/button.types';\n\n/**\n * Floating Action Button component. Renders fixed in the viewport at the given position.\n * Supports circular and extended (pill with label) variants.\n * When collapseOnScroll is true, an extended FAB collapses to icon-only after 50px scroll.\n * Uses inset-inline-* / inset-block-* CSS logical properties for RTL support.\n */\n@Component({\n\tselector: 'hub-fab',\n\tstandalone: true,\n\ttemplateUrl: './fab.component.html',\n\tstyleUrl: './fab.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-fab' },\n\tencapsulation: ViewEncapsulation.None\n})\nexport class HubFabComponent implements OnInit {\n\tcolor = input<HubSemanticColor>('primary');\n\tsize = input<HubFabSize>('standard');\n\textended = input(false);\n\t/** Fixed viewport position. 9-slot grid including center. */\n\tposition = input<HubFabPosition>('bottom-end');\n\t/** When true, collapses an extended FAB to icon-only on page scroll. */\n\tcollapseOnScroll = input(false);\n\tdisabled = input(false);\n\tfabClick = output<void>();\n\n\t/** Collapse state driven by scroll — only active when extended + collapseOnScroll. */\n\tprotected readonly _collapsed = signal(false);\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-fab-${this.color()}`,\n\t\t\t`hub-fab-${this.size()}`,\n\t\t\t`hub-fab-${this.position()}`,\n\t\t\tthis.extended() && !this._collapsed() ? 'hub-fab-extended' : '',\n\t\t\tthis.disabled() ? 'hub-fab-disabled' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\tngOnInit(): void {\n\t\tif (!this.collapseOnScroll()) return;\n\n\t\tfromEvent(window, 'scroll', { passive: true })\n\t\t\t.pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis._collapsed.set(window.scrollY > 50);\n\t\t\t});\n\t}\n}\n","<ng-content select=\"[slot=icon]\"></ng-content>\n\n@if (extended() && !_collapsed()) {\n\t<span class=\"hub-fab__label\">\n\t\t<ng-content select=\"[slot=label]\"></ng-content>\n\t</span>\n} @else if (!extended()) {\n\t<ng-content></ng-content>\n}\n","import { ChangeDetectionStrategy, Component, DestroyRef, HostBinding, inject, input, model, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { HubFabPosition, HubFabSize, HubSemanticColor } from '../../models/button.types';\n\n/**\n * FAB that expands a stack of HubSpeedDialItemComponent children on click or hover.\n * Supports 4 expansion directions and all 9 FAB viewport positions.\n * Closes automatically on Escape key press.\n */\n@Component({\n\tselector: 'hub-speed-dial',\n\tstandalone: true,\n\ttemplateUrl: './speed-dial.component.html',\n\tstyleUrl: './speed-dial.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-speed-dial' }\n})\nexport class HubSpeedDialComponent {\n\tcolor = input<HubSemanticColor>('primary');\n\tsize = input<HubFabSize>('standard');\n\tposition = input<HubFabPosition>('bottom-end');\n\tdirection = input<'up' | 'down' | 'left' | 'right'>('up');\n\ttrigger = input<'click' | 'hover'>('click');\n\tisOpen = model(false);\n\topened = output<void>();\n\tclosed = output<void>();\n\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-speed-dial-${this.color()}`,\n\t\t\t`hub-speed-dial-${this.position()}`,\n\t\t\t`hub-speed-dial-${this.direction()}`,\n\t\t\tthis.isOpen() ? 'hub-speed-dial-open' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\tconstructor() {\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter((e) => e.key === 'Escape' && this.isOpen()),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef)\n\t\t\t)\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\t/** Toggle the speed dial open/closed. */\n\ttoggle(): void {\n\t\tthis.isOpen() ? this.close() : this.open();\n\t}\n\n\t/** Open the speed dial and emit the opened event. */\n\topen(): void {\n\t\tthis.isOpen.set(true);\n\t\tthis.opened.emit();\n\t}\n\n\t/** Close the speed dial and emit the closed event. */\n\tclose(): void {\n\t\tthis.isOpen.set(false);\n\t\tthis.closed.emit();\n\t}\n}\n","<button\n\tclass=\"hub-fab\"\n\t[class]=\"'hub-fab-' + color() + ' hub-fab-' + size()\"\n\t(click)=\"trigger() === 'click' && toggle()\"\n\t(mouseenter)=\"trigger() === 'hover' && open()\"\n\t(mouseleave)=\"trigger() === 'hover' && close()\"\n\ttype=\"button\"\n\t[attr.aria-expanded]=\"isOpen()\"\n\taria-haspopup=\"true\">\n\t<ng-content select=\"[hubTrigger]\"></ng-content>\n</button>\n\n@if (isOpen()) {\n\t<div class=\"hub-speed-dial__actions\" [attr.data-direction]=\"direction()\">\n\t\t<ng-content></ng-content>\n\t</div>\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, input, output } from '@angular/core';\nimport { HubSemanticColor } from '../../../models/button.types';\n\n/**\n * Secondary action item rendered inside HubSpeedDialComponent.\n * Emits itemClick when activated. Supports an optional label tooltip.\n */\n@Component({\n\tselector: 'hub-speed-dial-item',\n\tstandalone: true,\n\ttemplateUrl: './speed-dial-item.component.html',\n\tstyleUrl: './speed-dial-item.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HubSpeedDialItemComponent {\n\t/** Icon character or ligature string displayed in the action button. */\n\ticon = input.required<string>();\n\t/** Tooltip label shown next to the action button. */\n\tlabel = input('');\n\tcolor = input<HubSemanticColor | 'default'>('default');\n\tdisabled = input(false);\n\titemClick = output<void>();\n}\n","@if (label()) {\n\t<span class=\"hub-speed-dial-item__label\">{{ label() }}</span>\n}\n<button\n\tclass=\"hub-speed-dial-item__btn\"\n\t[class]=\"'hub-speed-dial-item__btn--' + color()\"\n\t[disabled]=\"disabled() || null\"\n\t(click)=\"itemClick.emit()\"\n\ttype=\"button\"\n\t[attr.aria-label]=\"label() || icon()\">\n\t<i [class]=\"icon()\" aria-hidden=\"true\"></i>\n</button>\n","import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\nimport { HubSemanticColor } from '../../models/button.types';\n\n/**\n * Styled container for dropdown content.\n * Renders a shadowed panel with an optional semantic color top-border accent.\n * Place hub-dropdown-item, hub-dropdown-divider, and hub-dropdown-header children inside.\n */\n@Component({\n\tselector: 'hub-dropdown-panel',\n\tstandalone: true,\n\ttemplate: `<ng-content></ng-content>`,\n\tstyleUrl: './dropdown-panel.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-dropdown-panel' }\n})\nexport class HubDropdownPanelComponent {\n\t/** Adds a semantic color accent to the panel top border. */\n\tcolor = input<HubSemanticColor | 'default'>('default');\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn this.color() !== 'default' ? `hub-dropdown-panel-${this.color()}` : '';\n\t}\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, input, output } from '@angular/core';\nimport { HubSemanticColor } from '../../models/button.types';\n\n/**\n * Menu item for use inside HubDropdownPanelComponent.\n * Emits itemClick when activated. Supports an optional icon, selected state and semantic color.\n */\n@Component({\n\tselector: 'hub-dropdown-item',\n\tstandalone: true,\n\ttemplateUrl: './dropdown-item.component.html',\n\tstyleUrl: './dropdown-item.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-dropdown-item' }\n})\nexport class HubDropdownItemComponent {\n\tcolor = input<HubSemanticColor | 'default'>('default');\n\t/** Optional icon character or ligature displayed before the label. */\n\ticon = input<string>();\n\tdisabled = input(false);\n\t/** Shows a checkmark indicator when selected. */\n\tselected = input(false);\n\titemClick = output<void>();\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\tthis.color() !== 'default' ? `hub-dropdown-item-${this.color()}` : '',\n\t\t\tthis.disabled() ? 'hub-dropdown-item-disabled' : '',\n\t\t\tthis.selected() ? 'hub-dropdown-item-selected' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\tprotected _handleClick(): void {\n\t\tif (this.disabled()) return;\n\t\tthis.itemClick.emit();\n\t}\n}\n","<button\n\tclass=\"hub-dropdown-item__inner\"\n\ttype=\"button\"\n\t[disabled]=\"disabled() || null\"\n\t(click)=\"_handleClick()\">\n\t@if (icon()) {\n\t\t<i [class]=\"icon()\" aria-hidden=\"true\"></i>\n\t}\n\t<span class=\"hub-dropdown-item__label\"><ng-content></ng-content></span>\n\t@if (selected()) {\n\t\t<span class=\"hub-dropdown-item__check\" aria-hidden=\"true\">✓</span>\n\t}\n</button>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** Horizontal separator for grouping items inside HubDropdownPanelComponent. */\n@Component({\n\tselector: 'hub-dropdown-divider',\n\tstandalone: true,\n\ttemplate: '',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'hub-dropdown-divider',\n\t\trole: 'separator',\n\t\t'aria-hidden': 'true'\n\t},\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t\theight: 1px;\n\t\t\t\tbackground: var(--hub-dropdown-divider-color, var(--hub-sys-color-border-subtle, #e2e8f0));\n\t\t\t\tmargin: 0.25rem 0;\n\t\t\t}\n\t\t`\n\t]\n})\nexport class HubDropdownDividerComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/** Group label for organizing items inside HubDropdownPanelComponent. */\n@Component({\n\tselector: 'hub-dropdown-header',\n\tstandalone: true,\n\ttemplate: `<ng-content></ng-content>`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'hub-dropdown-header' },\n\tstyles: [\n\t\t`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t\tpadding: 0.375rem var(--hub-dropdown-header-padding-x, 0.875rem) 0.1875rem;\n\t\t\t\tfont-size: var(--hub-dropdown-header-font-size, 0.6875rem);\n\t\t\t\tfont-weight: 700;\n\t\t\t\tcolor: var(--hub-dropdown-header-color, var(--hub-sys-color-text-subtle, #94a3b8));\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tletter-spacing: 0.06em;\n\t\t\t}\n\t\t`\n\t]\n})\nexport class HubDropdownHeaderComponent {}\n","import { Directive, HostBinding, input } from '@angular/core';\nimport { HubBtnSize, HubBtnVariant, HubSemanticColor } from '../models/button.types';\n\n/**\n * Applies hub-btn styles to any host element (button, a, div, etc.).\n * Use this when the element type must stay native and cannot be replaced by <hub-button>.\n * Exposes the same inputs as HubBtnComponent.\n */\n@Directive({\n\tselector: '[hubButton]',\n\tstandalone: true,\n\thost: { class: 'hub-btn' }\n})\nexport class HubBtnDirective {\n\tvariant = input<HubBtnVariant>('solid');\n\tcolor = input<HubSemanticColor>('primary');\n\tsize = input<HubBtnSize>('md');\n\ticonOnly = input(false);\n\tloading = input(false);\n\tdisabled = input(false);\n\n\t@HostBinding('class')\n\tprotected get _hostClass(): string {\n\t\treturn [\n\t\t\t`hub-btn-${this.variant()}`,\n\t\t\t`hub-btn-${this.color()}`,\n\t\t\t`hub-btn-${this.size()}`,\n\t\t\tthis.iconOnly() ? 'hub-btn-icon' : '',\n\t\t\tthis.loading() ? 'hub-btn-loading' : '',\n\t\t\tthis.disabled() ? 'hub-btn-disabled' : ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ');\n\t}\n\n\t@HostBinding('attr.disabled')\n\tprotected get _disabledAttr(): true | null {\n\t\treturn this.disabled() ? true : null;\n\t}\n}\n","import {\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tTemplateRef,\n\tViewContainerRef,\n\tinject,\n\tinput,\n\tmodel,\n\toutput,\n\tsignal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { fromEvent } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { OverlayService } from 'ng-hub-ui-utils';\nimport type { OverlayRef, ConnectionPosition } from 'ng-hub-ui-utils';\nimport { HubDropdownPlacement } from '../models/button.types';\n\n/**\n * Turns any host element into a dropdown trigger.\n * Renders an ng-template in a body-level overlay managed by OverlayService (no CDK).\n * When closeOnSelect is true, any click inside the panel closes the overlay automatically.\n */\n@Directive({\n\tselector: '[hubDropdown]',\n\tstandalone: true,\n\texportAs: 'hubDropdown',\n\thost: {\n\t\t'(click)': '_onHostClick()',\n\t\t'(mouseenter)': '_onHostEnter()',\n\t\t'(mouseleave)': '_onHostLeave()'\n\t}\n})\nexport class HubDropdownDirective {\n\t/** The ng-template to render inside the overlay panel. */\n\ttpl = input.required<TemplateRef<any>>({ alias: 'hubDropdown' });\n\tplacement = input<HubDropdownPlacement>('bottom-start');\n\ttrigger = input<'click' | 'hover'>('click');\n\t/** When true, any click inside the panel content closes the dropdown. */\n\tcloseOnSelect = input(true);\n\tdisabled = input(false);\n\t/** Vertical offset in pixels between the trigger and the panel. */\n\toffsetY = input(4);\n\tpanelClass = input('');\n\tisOpen = model(false);\n\topened = output<void>();\n\tclosed = output<void>();\n\n\tprivate _overlayRef: OverlayRef | null = null;\n\n\tprivate readonly _el = inject(ElementRef<HTMLElement>);\n\tprivate readonly _vcr = inject(ViewContainerRef);\n\tprivate readonly _overlay = inject(OverlayService);\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\n\tconstructor() {\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(\n\t\t\t\tfilter((e) => e.key === 'Escape' && this.isOpen()),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef)\n\t\t\t)\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\t/** Open the dropdown and mount the overlay. */\n\topen(): void {\n\t\tif (this.disabled() || this.isOpen()) return;\n\n\t\tconst positionStrategy = this._overlay.position().flexibleConnectedTo(this._el).withPositions(this._buildPositions());\n\n\t\tconst panelClasses = ['hub-dropdown-overlay'];\n\t\tif (this.panelClass()) panelClasses.push(this.panelClass());\n\n\t\tthis._overlayRef = this._overlay.create({ positionStrategy, panelClass: panelClasses });\n\n\t\tconst panelEl = this._overlayRef.attach(this.tpl(), this._vcr);\n\n\t\t// Close on click-outside via backdrop\n\t\tthis._overlayRef.onBackdropClick(() => this.close());\n\n\t\t// Close on click-inside when closeOnSelect is true\n\t\tif (this.closeOnSelect() && panelEl) {\n\t\t\tfromEvent<MouseEvent>(panelEl, 'click')\n\t\t\t\t.pipe(take(1), takeUntilDestroyed(this._destroyRef))\n\t\t\t\t.subscribe(() => this.close());\n\t\t}\n\n\t\tthis.isOpen.set(true);\n\t\tthis.opened.emit();\n\n\t\t// Close on scroll so the panel stays aligned with the trigger\n\t\tfromEvent(document, 'scroll', { passive: true, capture: true })\n\t\t\t.pipe(take(1), takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe(() => this.close());\n\n\t\t// Click-outside detection (document-level)\n\t\tfromEvent<MouseEvent>(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter((e) => !this._el.nativeElement.contains(e.target as Node) && !!this._overlayRef?.hasAttached()),\n\t\t\t\ttake(1),\n\t\t\t\ttakeUntilDestroyed(this._destroyRef)\n\t\t\t)\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\t/** Close the dropdown and destroy the overlay. */\n\tclose(): void {\n\t\tif (!this.isOpen()) return;\n\t\tthis._overlayRef?.detach();\n\t\tthis._overlayRef?.dispose();\n\t\tthis._overlayRef = null;\n\t\tthis.isOpen.set(false);\n\t\tthis.closed.emit();\n\t}\n\n\t/** Toggle between open and closed. */\n\ttoggle(): void {\n\t\tthis.isOpen() ? this.close() : this.open();\n\t}\n\n\tprotected _onHostClick(): void {\n\t\tif (this.trigger() === 'click') this.toggle();\n\t}\n\n\tprotected _onHostEnter(): void {\n\t\tif (this.trigger() === 'hover') this.open();\n\t}\n\n\tprotected _onHostLeave(): void {\n\t\tif (this.trigger() === 'hover') this.close();\n\t}\n\n\t/**\n\t * Translates HubDropdownPlacement tokens to ConnectionPosition arrays.\n\t * The OverlayPosition tries each entry in order, using the first that fits.\n\t */\n\tprivate _buildPositions(): ConnectionPosition[] {\n\t\tconst o = this.offsetY();\n\t\tconst map: Record<HubDropdownPlacement, ConnectionPosition[]> = {\n\t\t\t'bottom-start': [{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: o }],\n\t\t\tbottom: [{ originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: o }],\n\t\t\t'bottom-end': [{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: o }],\n\t\t\t'top-start': [{ originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -o }],\n\t\t\ttop: [{ originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom', offsetY: -o }],\n\t\t\t'top-end': [{ originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -o }],\n\t\t\tstart: [{ originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -o }],\n\t\t\tend: [{ originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: o }]\n\t\t};\n\t\treturn map[this.placement()];\n\t}\n}\n","/*\n * Public API Surface of ng-hub-ui-buttons\n */\n\n// Types\nexport * from './lib/models/button.types';\n\n// Tokens\nexport * from './lib/tokens/dropdown.token';\n\n// Components\nexport * from './lib/components/btn/button.component';\nexport * from './lib/components/fab/fab.component';\nexport * from './lib/components/speed-dial/speed-dial.component';\nexport * from './lib/components/speed-dial/speed-dial-item/speed-dial-item.component';\nexport * from './lib/components/dropdown-panel/dropdown-panel.component';\nexport * from './lib/components/dropdown-item/dropdown-item.component';\nexport * from './lib/components/dropdown-divider/dropdown-divider.component';\nexport * from './lib/components/dropdown-header/dropdown-header.component';\n\n// Directives\nexport * from './lib/directives/btn.directive';\nexport * from './lib/directives/dropdown.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-hub-ui-buttons",
3
- "version": "22.2.0",
3
+ "version": "22.2.1",
4
4
  "description": "Buttons, FAB, Speed Dial and Dropdown directive for Angular, part of the ng-hub-ui ecosystem",
5
5
  "author": "Carlos Morcillo <carlos.morcillo@me.com> (https://www.carlosmorcillo.com)",
6
6
  "repository": {
@@ -22,13 +22,13 @@
22
22
  // --hub-sys-color-brand-on-default: #fff;
23
23
  // }
24
24
  //
25
- // hub-btn, [hubBtn] {
25
+ // hub-button, [hubButton] {
26
26
  // @include hub.hub-btn-color-rules('brand');
27
27
  // }
28
28
  //
29
29
  // Usage — create a fully custom "inverted" variant:
30
30
  //
31
- // hub-btn, [hubBtn] {
31
+ // hub-button, [hubButton] {
32
32
  // &.hub-btn-inverted.hub-btn-brand {
33
33
  // @include hub.hub-btn-variant-rules('brand',
34
34
  // $bg: var(--hub-sys-color-brand-on-default),
@@ -91,9 +91,9 @@
91
91
  }
92
92
 
93
93
  /// Generates class-based selectors for all five built-in button variants of a custom color.
94
- /// Must be called inside a selector block that targets hub-btn or [hubBtn]:
94
+ /// Must be called inside a selector block that targets hub-button or [hubButton]:
95
95
  ///
96
- /// hub-btn, [hubBtn] {
96
+ /// hub-button, [hubButton] {
97
97
  /// @include hub-btn-color-rules('brand');
98
98
  /// }
99
99
  ///
Binary file