@weeehaoooz/talos-ui 0.1.0 → 0.1.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.
Files changed (30) hide show
  1. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs +25 -4
  2. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +1 -1
  3. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +2 -1
  4. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +1 -1
  5. package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs +1627 -0
  6. package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs.map +1 -0
  7. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +2 -2
  8. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +1 -1
  9. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +2 -2
  10. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +1 -1
  11. package/fesm2022/weeehaoooz-talos-ui-layout.mjs +4 -4
  12. package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
  13. package/fesm2022/weeehaoooz-talos-ui-nav.mjs +118 -71
  14. package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
  15. package/fesm2022/weeehaoooz-talos-ui.mjs +1765 -87
  16. package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
  17. package/package.json +5 -1
  18. package/styles/_button-group.scss +154 -6
  19. package/styles/_buttons.scss +105 -8
  20. package/styles/_variables.scss +4 -0
  21. package/types/weeehaoooz-talos-ui-button-button-group.d.ts +5 -2
  22. package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +1 -1
  23. package/types/weeehaoooz-talos-ui-button-button.d.ts +1 -1
  24. package/types/weeehaoooz-talos-ui-button-button.d.ts.map +1 -1
  25. package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts +272 -0
  26. package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts.map +1 -0
  27. package/types/weeehaoooz-talos-ui-nav.d.ts +36 -10
  28. package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -1
  29. package/types/weeehaoooz-talos-ui.d.ts +309 -16
  30. package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
@@ -52,6 +52,9 @@ class TalosButtonGroupComponent {
52
52
  /** Apply fully rounded pill shape */
53
53
  pill = input(false, /* @ts-ignore */
54
54
  ...(ngDevMode ? [{ debugName: "pill" }] : /* istanbul ignore next */ []));
55
+ /** Allow mouse wheel vertical scrolling to translate to horizontal scrolling when overflowing on hover */
56
+ mouseWheelScroll = input(true, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "mouseWheelScroll" }] : /* istanbul ignore next */ []));
55
58
  /** Disable all buttons in group */
56
59
  disabled = input(false, /* @ts-ignore */
57
60
  ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
@@ -168,8 +171,24 @@ class TalosButtonGroupComponent {
168
171
  focusableButtons[targetIndex].focus();
169
172
  }
170
173
  }
174
+ onWheel(event) {
175
+ if (!this.mouseWheelScroll() || this.orientation() !== 'horizontal')
176
+ return;
177
+ const el = this.elementRef.nativeElement;
178
+ if (el.scrollWidth > el.clientWidth) {
179
+ if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {
180
+ const maxScrollLeft = el.scrollWidth - el.clientWidth;
181
+ const canScrollLeft = el.scrollLeft > 0 && event.deltaY < 0;
182
+ const canScrollRight = el.scrollLeft < maxScrollLeft && event.deltaY > 0;
183
+ if (canScrollLeft || canScrollRight) {
184
+ event.preventDefault();
185
+ el.scrollLeft += event.deltaY;
186
+ }
187
+ }
188
+ }
189
+ }
171
190
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
172
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.1", type: TalosButtonGroupComponent, isStandalone: true, selector: "talos-button-group", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "keydown": "onKeydown($event)", "click": "onClick($event)" }, properties: { "class.talos-button-group-horizontal": "orientation() === \"horizontal\"", "class.talos-button-group-vertical": "orientation() === \"vertical\"", "class.talos-button-group-attached": "variant() === \"attached\"", "class.talos-button-group-segmented": "variant() === \"segmented\" || variant() === \"pill\"", "class.talos-button-group-outline": "variant() === \"outline\"", "class.talos-button-group-subtle": "variant() === \"subtle\"", "class.talos-button-group-pill": "pill() || variant() === \"pill\"", "class.talos-button-group-sm": "size() === \"sm\"", "class.talos-button-group-md": "size() === \"md\"", "class.talos-button-group-lg": "size() === \"lg\"", "attr.role": "selectionMode() !== \"none\" ? \"radiogroup\" : \"group\"", "attr.aria-orientation": "orientation()" }, classAttribute: "talos-button-group" }, queries: [{ propertyName: "items", predicate: TalosButtonGroupItemDirective, descendants: true, isSignal: true }, { propertyName: "buttons", predicate: TalosButtonDirective, descendants: true, isSignal: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
191
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.1", type: TalosButtonGroupComponent, isStandalone: true, selector: "talos-button-group", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", isSignal: true, isRequired: false, transformFunction: null }, mouseWheelScroll: { classPropertyName: "mouseWheelScroll", publicName: "mouseWheelScroll", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { listeners: { "keydown": "onKeydown($event)", "click": "onClick($event)", "wheel": "onWheel($event)" }, properties: { "class.talos-button-group-horizontal": "orientation() === \"horizontal\"", "class.talos-button-group-vertical": "orientation() === \"vertical\"", "class.talos-button-group-attached": "variant() === \"attached\"", "class.talos-button-group-segmented": "variant() === \"segmented\" || variant() === \"pill\" || variant() === \"subtle\" || variant() === \"glow\"", "class.talos-button-group-outline": "variant() === \"outline\"", "class.talos-button-group-subtle": "variant() === \"subtle\"", "class.talos-button-group-glow": "variant() === \"glow\"", "class.talos-button-group-pill": "pill() || variant() === \"pill\"", "class.talos-button-group-sm": "size() === \"sm\"", "class.talos-button-group-md": "size() === \"md\"", "class.talos-button-group-lg": "size() === \"lg\"", "attr.role": "selectionMode() !== \"none\" ? \"radiogroup\" : \"group\"", "attr.aria-orientation": "orientation()" }, classAttribute: "talos-button-group" }, queries: [{ propertyName: "items", predicate: TalosButtonGroupItemDirective, descendants: true, isSignal: true }, { propertyName: "buttons", predicate: TalosButtonDirective, descendants: true, isSignal: true }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
173
192
  }
174
193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupComponent, decorators: [{
175
194
  type: Component,
@@ -181,9 +200,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
181
200
  '[class.talos-button-group-horizontal]': 'orientation() === "horizontal"',
182
201
  '[class.talos-button-group-vertical]': 'orientation() === "vertical"',
183
202
  '[class.talos-button-group-attached]': 'variant() === "attached"',
184
- '[class.talos-button-group-segmented]': 'variant() === "segmented" || variant() === "pill"',
203
+ '[class.talos-button-group-segmented]': 'variant() === "segmented" || variant() === "pill" || variant() === "subtle" || variant() === "glow"',
185
204
  '[class.talos-button-group-outline]': 'variant() === "outline"',
186
205
  '[class.talos-button-group-subtle]': 'variant() === "subtle"',
206
+ '[class.talos-button-group-glow]': 'variant() === "glow"',
187
207
  '[class.talos-button-group-pill]': 'pill() || variant() === "pill"',
188
208
  '[class.talos-button-group-sm]': 'size() === "sm"',
189
209
  '[class.talos-button-group-md]': 'size() === "md"',
@@ -191,10 +211,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
191
211
  '[attr.role]': 'selectionMode() !== "none" ? "radiogroup" : "group"',
192
212
  '[attr.aria-orientation]': 'orientation()',
193
213
  '(keydown)': 'onKeydown($event)',
194
- '(click)': 'onClick($event)'
214
+ '(click)': 'onClick($event)',
215
+ '(wheel)': 'onWheel($event)'
195
216
  }
196
217
  }]
197
- }], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], pill: [{ type: i0.Input, args: [{ isSignal: true, alias: "pill", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TalosButtonGroupItemDirective), { ...{ descendants: true }, isSignal: true }] }], buttons: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TalosButtonDirective), { ...{ descendants: true }, isSignal: true }] }] } });
218
+ }], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], pill: [{ type: i0.Input, args: [{ isSignal: true, alias: "pill", required: false }] }], mouseWheelScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "mouseWheelScroll", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TalosButtonGroupItemDirective), { ...{ descendants: true }, isSignal: true }] }], buttons: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TalosButtonDirective), { ...{ descendants: true }, isSignal: true }] }] } });
198
219
 
199
220
  class TalosButtonGroupModule {
200
221
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1 +1 @@
1
- {"version":3,"file":"weeehaoooz-talos-ui-button-button-group.mjs","sources":["../../../projects/talos-ui/button/button-group/button-group-item/button-group-item.directive.ts","../../../projects/talos-ui/button/button-group/button-group/button-group.component.ts","../../../projects/talos-ui/button/button-group/button-group.module.ts","../../../projects/talos-ui/button/button-group/weeehaoooz-talos-ui-button-button-group.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input, signal } from '@angular/core';\n\n@Directive({\n selector: 'button[talosButtonGroupItem], a[talosButtonGroupItem], [talos-button-group-item]',\n host: {\n 'class': 'talos-button-group-item',\n '[class.is-selected]': 'selected()',\n '[class.is-active]': 'selected()',\n '[attr.aria-pressed]': 'selected() ? \"true\" : \"false\"'\n }\n})\nexport class TalosButtonGroupItemDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Value associated with this button item in selection mode */\n readonly value = input<any>(undefined);\n\n /** Explicit selected / active state override */\n readonly selected = signal<boolean>(false);\n\n /** Focus target method */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n}\n","import {\n Component,\n ElementRef,\n inject,\n input,\n model,\n contentChildren,\n effect,\n HostListener\n} from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { TalosButtonDirective, ButtonSize } from '@weeehaoooz/talos-ui/button/button';\n\nimport { TalosButtonGroupItemDirective } from '../button-group-item/button-group-item.directive';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\nexport type ButtonGroupVariant = 'attached' | 'segmented' | 'outline' | 'subtle' | 'pill';\nexport type ButtonGroupSelectionMode = 'none' | 'single' | 'multiple';\n\n@Component({\n selector: 'talos-button-group',\n template: `<ng-content></ng-content>`,\n host: {\n 'class': 'talos-button-group',\n '[class.talos-button-group-horizontal]': 'orientation() === \"horizontal\"',\n '[class.talos-button-group-vertical]': 'orientation() === \"vertical\"',\n '[class.talos-button-group-attached]': 'variant() === \"attached\"',\n '[class.talos-button-group-segmented]': 'variant() === \"segmented\" || variant() === \"pill\"',\n '[class.talos-button-group-outline]': 'variant() === \"outline\"',\n '[class.talos-button-group-subtle]': 'variant() === \"subtle\"',\n '[class.talos-button-group-pill]': 'pill() || variant() === \"pill\"',\n '[class.talos-button-group-sm]': 'size() === \"sm\"',\n '[class.talos-button-group-md]': 'size() === \"md\"',\n '[class.talos-button-group-lg]': 'size() === \"lg\"',\n '[attr.role]': 'selectionMode() !== \"none\" ? \"radiogroup\" : \"group\"',\n '[attr.aria-orientation]': 'orientation()',\n '(keydown)': 'onKeydown($event)',\n '(click)': 'onClick($event)'\n }\n})\nexport class TalosButtonGroupComponent {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Layout orientation: horizontal or vertical */\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\n\n /** Visual variant style */\n readonly variant = input<ButtonGroupVariant>('attached');\n\n /** Button size propagation */\n readonly size = input<ButtonSize>('md');\n\n /** Selection behavior: none, single (radio), or multiple (checkbox) */\n readonly selectionMode = input<ButtonGroupSelectionMode>('none');\n\n /** Model value for single or multiple selection */\n readonly value = model<any>(undefined);\n\n /** Apply fully rounded pill shape */\n readonly pill = input<boolean>(false);\n\n /** Disable all buttons in group */\n readonly disabled = input<boolean>(false);\n\n /** Child items using TalosButtonGroupItemDirective */\n readonly items = contentChildren(TalosButtonGroupItemDirective, { descendants: true });\n\n /** Child directives using TalosButtonDirective */\n readonly buttons = contentChildren(TalosButtonDirective, { descendants: true });\n\n private selectionModel = new SelectionModel<any>(false, []);\n\n constructor() {\n // Sync SelectionModel mode when selectionMode changes\n effect(() => {\n const mode = this.selectionMode();\n const isMulti = mode === 'multiple';\n const currentVal = this.value();\n\n const initial = currentVal !== undefined\n ? (Array.isArray(currentVal) ? currentVal : [currentVal])\n : [];\n\n this.selectionModel = new SelectionModel<any>(isMulti, initial);\n this.syncChildSelectionStates();\n });\n\n // Sync external model value changes to internal selection model\n effect(() => {\n const val = this.value();\n if (val !== undefined && this.selectionMode() !== 'none') {\n const selectedValues = Array.isArray(val) ? val : [val];\n this.selectionModel.clear();\n selectedValues.forEach(v => this.selectionModel.select(v));\n this.syncChildSelectionStates();\n }\n });\n\n // Propagate item selected state changes\n effect(() => {\n const childItems = this.items();\n this.syncChildSelectionStates();\n });\n }\n\n private syncChildSelectionStates(): void {\n const childItems = this.items();\n if (!childItems || childItems.length === 0) return;\n\n childItems.forEach((item, index) => {\n const itemVal = item.value() !== undefined ? item.value() : index;\n const isSelected = this.selectionModel.isSelected(itemVal);\n item.selected.set(isSelected);\n });\n }\n\n onClick(event: MouseEvent): void {\n if (this.disabled()) return;\n const mode = this.selectionMode();\n if (mode === 'none') return;\n\n const target = event.target as HTMLElement;\n const buttonEl = target.closest('button, a') as HTMLElement;\n if (!buttonEl) return;\n\n const childItems = this.items();\n const childButtons = this.buttons();\n\n // Match clicked button to item directive or index\n let matchedValue: any = undefined;\n let matchedItem: TalosButtonGroupItemDirective | undefined = undefined;\n\n if (childItems && childItems.length > 0) {\n childItems.forEach((item, index) => {\n if (item.elementRef.nativeElement === buttonEl || item.elementRef.nativeElement.contains(buttonEl)) {\n matchedValue = item.value() !== undefined ? item.value() : index;\n matchedItem = item;\n }\n });\n }\n\n if (matchedValue === undefined && childButtons && childButtons.length > 0) {\n const allButtons = Array.from(this.elementRef.nativeElement.querySelectorAll('button, a'));\n const index = allButtons.indexOf(buttonEl);\n if (index !== -1) {\n matchedValue = index;\n }\n }\n\n if (matchedValue !== undefined) {\n if (mode === 'single') {\n this.selectionModel.clear();\n this.selectionModel.select(matchedValue);\n this.value.set(matchedValue);\n } else if (mode === 'multiple') {\n this.selectionModel.toggle(matchedValue);\n this.value.set(this.selectionModel.selected);\n }\n this.syncChildSelectionStates();\n }\n }\n\n onKeydown(event: KeyboardEvent): void {\n const isHoriz = this.orientation() === 'horizontal';\n const focusableButtons = Array.from(\n this.elementRef.nativeElement.querySelectorAll<HTMLButtonElement | HTMLAnchorElement>('button:not([disabled]), a:not([disabled])')\n );\n\n if (focusableButtons.length === 0) return;\n\n const activeEl = document.activeElement as HTMLElement;\n let currentIndex = focusableButtons.indexOf(activeEl as any);\n\n if (currentIndex === -1) return;\n\n let targetIndex = -1;\n\n if ((isHoriz && event.key === 'ArrowRight') || (!isHoriz && event.key === 'ArrowDown')) {\n targetIndex = (currentIndex + 1) % focusableButtons.length;\n } else if ((isHoriz && event.key === 'ArrowLeft') || (!isHoriz && event.key === 'ArrowUp')) {\n targetIndex = (currentIndex - 1 + focusableButtons.length) % focusableButtons.length;\n } else if (event.key === 'Home') {\n targetIndex = 0;\n } else if (event.key === 'End') {\n targetIndex = focusableButtons.length - 1;\n }\n\n if (targetIndex !== -1) {\n event.preventDefault();\n focusableButtons[targetIndex].focus();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TalosButtonGroupComponent } from './button-group/button-group.component';\nimport { TalosButtonGroupItemDirective } from './button-group-item/button-group-item.directive';\nimport { TalosTooltipDirective, TalosTooltipComponent } from '@weeehaoooz/talos-ui/feedback/tooltip';\nimport { TalosButtonDirective } from '@weeehaoooz/talos-ui/button/button';\n\n@NgModule({\n imports: [\n TalosButtonGroupComponent,\n TalosButtonGroupItemDirective,\n TalosTooltipDirective,\n TalosTooltipComponent,\n TalosButtonDirective\n ],\n exports: [\n TalosButtonGroupComponent,\n TalosButtonGroupItemDirective,\n TalosTooltipDirective,\n TalosTooltipComponent,\n TalosButtonDirective\n ]\n})\nexport class TalosButtonGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weeehaoooz-talos-ui-button-button-group.mjs","sources":["../../../projects/talos-ui/button/button-group/button-group-item/button-group-item.directive.ts","../../../projects/talos-ui/button/button-group/button-group/button-group.component.ts","../../../projects/talos-ui/button/button-group/button-group.module.ts","../../../projects/talos-ui/button/button-group/weeehaoooz-talos-ui-button-button-group.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input, signal } from '@angular/core';\n\n@Directive({\n selector: 'button[talosButtonGroupItem], a[talosButtonGroupItem], [talos-button-group-item]',\n host: {\n 'class': 'talos-button-group-item',\n '[class.is-selected]': 'selected()',\n '[class.is-active]': 'selected()',\n '[attr.aria-pressed]': 'selected() ? \"true\" : \"false\"'\n }\n})\nexport class TalosButtonGroupItemDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Value associated with this button item in selection mode */\n readonly value = input<any>(undefined);\n\n /** Explicit selected / active state override */\n readonly selected = signal<boolean>(false);\n\n /** Focus target method */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n}\n","import {\n Component,\n ElementRef,\n inject,\n input,\n model,\n contentChildren,\n effect,\n HostListener\n} from '@angular/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { TalosButtonDirective, ButtonSize } from '@weeehaoooz/talos-ui/button/button';\n\nimport { TalosButtonGroupItemDirective } from '../button-group-item/button-group-item.directive';\n\nexport type ButtonGroupOrientation = 'horizontal' | 'vertical';\nexport type ButtonGroupVariant = 'attached' | 'segmented' | 'outline' | 'subtle' | 'pill' | 'glow';\nexport type ButtonGroupSelectionMode = 'none' | 'single' | 'multiple';\n\n@Component({\n selector: 'talos-button-group',\n template: `<ng-content></ng-content>`,\n host: {\n 'class': 'talos-button-group',\n '[class.talos-button-group-horizontal]': 'orientation() === \"horizontal\"',\n '[class.talos-button-group-vertical]': 'orientation() === \"vertical\"',\n '[class.talos-button-group-attached]': 'variant() === \"attached\"',\n '[class.talos-button-group-segmented]': 'variant() === \"segmented\" || variant() === \"pill\" || variant() === \"subtle\" || variant() === \"glow\"',\n '[class.talos-button-group-outline]': 'variant() === \"outline\"',\n '[class.talos-button-group-subtle]': 'variant() === \"subtle\"',\n '[class.talos-button-group-glow]': 'variant() === \"glow\"',\n '[class.talos-button-group-pill]': 'pill() || variant() === \"pill\"',\n '[class.talos-button-group-sm]': 'size() === \"sm\"',\n '[class.talos-button-group-md]': 'size() === \"md\"',\n '[class.talos-button-group-lg]': 'size() === \"lg\"',\n '[attr.role]': 'selectionMode() !== \"none\" ? \"radiogroup\" : \"group\"',\n '[attr.aria-orientation]': 'orientation()',\n '(keydown)': 'onKeydown($event)',\n '(click)': 'onClick($event)',\n '(wheel)': 'onWheel($event)'\n }\n})\nexport class TalosButtonGroupComponent {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Layout orientation: horizontal or vertical */\n readonly orientation = input<ButtonGroupOrientation>('horizontal');\n\n /** Visual variant style */\n readonly variant = input<ButtonGroupVariant>('attached');\n\n /** Button size propagation */\n readonly size = input<ButtonSize>('md');\n\n /** Selection behavior: none, single (radio), or multiple (checkbox) */\n readonly selectionMode = input<ButtonGroupSelectionMode>('none');\n\n /** Model value for single or multiple selection */\n readonly value = model<any>(undefined);\n\n /** Apply fully rounded pill shape */\n readonly pill = input<boolean>(false);\n\n /** Allow mouse wheel vertical scrolling to translate to horizontal scrolling when overflowing on hover */\n readonly mouseWheelScroll = input<boolean>(true);\n\n /** Disable all buttons in group */\n readonly disabled = input<boolean>(false);\n\n /** Child items using TalosButtonGroupItemDirective */\n readonly items = contentChildren(TalosButtonGroupItemDirective, { descendants: true });\n\n /** Child directives using TalosButtonDirective */\n readonly buttons = contentChildren(TalosButtonDirective, { descendants: true });\n\n private selectionModel = new SelectionModel<any>(false, []);\n\n constructor() {\n // Sync SelectionModel mode when selectionMode changes\n effect(() => {\n const mode = this.selectionMode();\n const isMulti = mode === 'multiple';\n const currentVal = this.value();\n\n const initial = currentVal !== undefined\n ? (Array.isArray(currentVal) ? currentVal : [currentVal])\n : [];\n\n this.selectionModel = new SelectionModel<any>(isMulti, initial);\n this.syncChildSelectionStates();\n });\n\n // Sync external model value changes to internal selection model\n effect(() => {\n const val = this.value();\n if (val !== undefined && this.selectionMode() !== 'none') {\n const selectedValues = Array.isArray(val) ? val : [val];\n this.selectionModel.clear();\n selectedValues.forEach(v => this.selectionModel.select(v));\n this.syncChildSelectionStates();\n }\n });\n\n // Propagate item selected state changes\n effect(() => {\n const childItems = this.items();\n this.syncChildSelectionStates();\n });\n }\n\n private syncChildSelectionStates(): void {\n const childItems = this.items();\n if (!childItems || childItems.length === 0) return;\n\n childItems.forEach((item, index) => {\n const itemVal = item.value() !== undefined ? item.value() : index;\n const isSelected = this.selectionModel.isSelected(itemVal);\n item.selected.set(isSelected);\n });\n }\n\n onClick(event: MouseEvent): void {\n if (this.disabled()) return;\n const mode = this.selectionMode();\n if (mode === 'none') return;\n\n const target = event.target as HTMLElement;\n const buttonEl = target.closest('button, a') as HTMLElement;\n if (!buttonEl) return;\n\n const childItems = this.items();\n const childButtons = this.buttons();\n\n // Match clicked button to item directive or index\n let matchedValue: any = undefined;\n let matchedItem: TalosButtonGroupItemDirective | undefined = undefined;\n\n if (childItems && childItems.length > 0) {\n childItems.forEach((item, index) => {\n if (item.elementRef.nativeElement === buttonEl || item.elementRef.nativeElement.contains(buttonEl)) {\n matchedValue = item.value() !== undefined ? item.value() : index;\n matchedItem = item;\n }\n });\n }\n\n if (matchedValue === undefined && childButtons && childButtons.length > 0) {\n const allButtons = Array.from(this.elementRef.nativeElement.querySelectorAll('button, a'));\n const index = allButtons.indexOf(buttonEl);\n if (index !== -1) {\n matchedValue = index;\n }\n }\n\n if (matchedValue !== undefined) {\n if (mode === 'single') {\n this.selectionModel.clear();\n this.selectionModel.select(matchedValue);\n this.value.set(matchedValue);\n } else if (mode === 'multiple') {\n this.selectionModel.toggle(matchedValue);\n this.value.set(this.selectionModel.selected);\n }\n this.syncChildSelectionStates();\n }\n }\n\n onKeydown(event: KeyboardEvent): void {\n const isHoriz = this.orientation() === 'horizontal';\n const focusableButtons = Array.from(\n this.elementRef.nativeElement.querySelectorAll<HTMLButtonElement | HTMLAnchorElement>('button:not([disabled]), a:not([disabled])')\n );\n\n if (focusableButtons.length === 0) return;\n\n const activeEl = document.activeElement as HTMLElement;\n let currentIndex = focusableButtons.indexOf(activeEl as any);\n\n if (currentIndex === -1) return;\n\n let targetIndex = -1;\n\n if ((isHoriz && event.key === 'ArrowRight') || (!isHoriz && event.key === 'ArrowDown')) {\n targetIndex = (currentIndex + 1) % focusableButtons.length;\n } else if ((isHoriz && event.key === 'ArrowLeft') || (!isHoriz && event.key === 'ArrowUp')) {\n targetIndex = (currentIndex - 1 + focusableButtons.length) % focusableButtons.length;\n } else if (event.key === 'Home') {\n targetIndex = 0;\n } else if (event.key === 'End') {\n targetIndex = focusableButtons.length - 1;\n }\n\n if (targetIndex !== -1) {\n event.preventDefault();\n focusableButtons[targetIndex].focus();\n }\n }\n\n onWheel(event: WheelEvent): void {\n if (!this.mouseWheelScroll() || this.orientation() !== 'horizontal') return;\n const el = this.elementRef.nativeElement;\n\n if (el.scrollWidth > el.clientWidth) {\n if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {\n const maxScrollLeft = el.scrollWidth - el.clientWidth;\n const canScrollLeft = el.scrollLeft > 0 && event.deltaY < 0;\n const canScrollRight = el.scrollLeft < maxScrollLeft && event.deltaY > 0;\n\n if (canScrollLeft || canScrollRight) {\n event.preventDefault();\n el.scrollLeft += event.deltaY;\n }\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TalosButtonGroupComponent } from './button-group/button-group.component';\nimport { TalosButtonGroupItemDirective } from './button-group-item/button-group-item.directive';\nimport { TalosTooltipDirective, TalosTooltipComponent } from '@weeehaoooz/talos-ui/feedback/tooltip';\nimport { TalosButtonDirective } from '@weeehaoooz/talos-ui/button/button';\n\n@NgModule({\n imports: [\n TalosButtonGroupComponent,\n TalosButtonGroupItemDirective,\n TalosTooltipDirective,\n TalosTooltipComponent,\n TalosButtonDirective\n ],\n exports: [\n TalosButtonGroupComponent,\n TalosButtonGroupItemDirective,\n TalosTooltipDirective,\n TalosTooltipComponent,\n TalosButtonDirective\n ]\n})\nexport class TalosButtonGroupModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ class TalosButtonDirective {
48
48
  el.style.setProperty('--ripple-y', `${y}px`);
49
49
  }
50
50
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.1", type: TalosButtonDirective, isStandalone: true, selector: "button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", 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 }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", 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 }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, spinning: { classPropertyName: "spinning", publicName: "spinning", isSignal: true, isRequired: false, transformFunction: null }, popping: { classPropertyName: "popping", publicName: "popping", isSignal: true, isRequired: false, transformFunction: null }, feedback: { classPropertyName: "feedback", publicName: "feedback", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "class.talos-btn-primary": "variant() === \"primary\"", "class.talos-btn-secondary": "variant() === \"secondary\"", "class.talos-btn-outline": "variant() === \"outline\"", "class.talos-btn-ghost": "variant() === \"ghost\" || variant() === \"subtle\"", "class.talos-btn-danger": "variant() === \"danger\"", "class.talos-btn-success": "variant() === \"success\"", "class.talos-btn-link": "variant() === \"link\"", "class.talos-btn-sm": "size() === \"sm\"", "class.talos-btn-md": "size() === \"md\"", "class.talos-btn-lg": "size() === \"lg\"", "class.talos-btn-icon": "iconOnly()", "class.talos-btn-full": "fullWidth()", "class.talos-btn-pill": "pill()", "class.is-loading": "loading()", "class.talos-anim-spin": "animation() === \"spin\" || spinning()", "class.talos-anim-spin-once": "animation() === \"spin-once\"", "class.talos-anim-pop": "animation() === \"pop\" || popping()", "class.talos-anim-shake": "animation() === \"shake\"", "class.talos-anim-pulse": "animation() === \"pulse\"", "class.talos-anim-bounce": "animation() === \"bounce\"", "class.talos-feedback-success": "feedback() === \"success\"", "class.talos-feedback-error": "feedback() === \"error\"", "attr.disabled": "(disabled() || loading()) ? true : null", "attr.aria-disabled": "(disabled() || loading()) ? \"true\" : null" }, classAttribute: "talos-btn" }, ngImport: i0 });
51
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.1", type: TalosButtonDirective, isStandalone: true, selector: "button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", 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 }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, pill: { classPropertyName: "pill", publicName: "pill", 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 }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, spinning: { classPropertyName: "spinning", publicName: "spinning", isSignal: true, isRequired: false, transformFunction: null }, popping: { classPropertyName: "popping", publicName: "popping", isSignal: true, isRequired: false, transformFunction: null }, feedback: { classPropertyName: "feedback", publicName: "feedback", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "pointerdown": "onPointerDown($event)" }, properties: { "class.talos-btn-primary": "variant() === \"primary\"", "class.talos-btn-secondary": "variant() === \"secondary\"", "class.talos-btn-outline": "variant() === \"outline\"", "class.talos-btn-ghost": "variant() === \"ghost\" || variant() === \"subtle\"", "class.talos-btn-danger": "variant() === \"danger\"", "class.talos-btn-success": "variant() === \"success\"", "class.talos-btn-link": "variant() === \"link\"", "class.talos-btn-xs": "size() === \"xs\"", "class.talos-btn-sm": "size() === \"sm\"", "class.talos-btn-md": "size() === \"md\"", "class.talos-btn-lg": "size() === \"lg\"", "class.talos-btn-icon": "iconOnly()", "class.talos-btn-full": "fullWidth()", "class.talos-btn-pill": "pill()", "class.is-loading": "loading()", "class.talos-anim-spin": "animation() === \"spin\" || spinning()", "class.talos-anim-spin-once": "animation() === \"spin-once\"", "class.talos-anim-pop": "animation() === \"pop\" || popping()", "class.talos-anim-shake": "animation() === \"shake\"", "class.talos-anim-pulse": "animation() === \"pulse\"", "class.talos-anim-bounce": "animation() === \"bounce\"", "class.talos-feedback-success": "feedback() === \"success\"", "class.talos-feedback-error": "feedback() === \"error\"", "attr.disabled": "(disabled() || loading()) ? true : null", "attr.aria-disabled": "(disabled() || loading()) ? \"true\" : null" }, classAttribute: "talos-btn" }, ngImport: i0 });
52
52
  }
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TalosButtonDirective, decorators: [{
54
54
  type: Directive,
@@ -63,6 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
63
63
  '[class.talos-btn-danger]': 'variant() === "danger"',
64
64
  '[class.talos-btn-success]': 'variant() === "success"',
65
65
  '[class.talos-btn-link]': 'variant() === "link"',
66
+ '[class.talos-btn-xs]': 'size() === "xs"',
66
67
  '[class.talos-btn-sm]': 'size() === "sm"',
67
68
  '[class.talos-btn-md]': 'size() === "md"',
68
69
  '[class.talos-btn-lg]': 'size() === "lg"',
@@ -1 +1 @@
1
- {"version":3,"file":"weeehaoooz-talos-ui-button-button.mjs","sources":["../../../projects/talos-ui/button/button/button.directive.ts","../../../projects/talos-ui/button/button/weeehaoooz-talos-ui-button-button.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input } from '@angular/core';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'subtle' | 'danger' | 'success' | 'link';\nexport type ButtonSize = 'sm' | 'md' | 'lg';\nexport type ButtonAnimation = 'spin' | 'spin-once' | 'pop' | 'shake' | 'pulse' | 'bounce' | 'none';\nexport type ButtonFeedbackState = 'success' | 'error' | null;\n\n@Directive({\n selector: 'button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]',\n host: {\n 'class': 'talos-btn',\n '[class.talos-btn-primary]': 'variant() === \"primary\"',\n '[class.talos-btn-secondary]': 'variant() === \"secondary\"',\n '[class.talos-btn-outline]': 'variant() === \"outline\"',\n '[class.talos-btn-ghost]': 'variant() === \"ghost\" || variant() === \"subtle\"',\n '[class.talos-btn-danger]': 'variant() === \"danger\"',\n '[class.talos-btn-success]': 'variant() === \"success\"',\n '[class.talos-btn-link]': 'variant() === \"link\"',\n '[class.talos-btn-sm]': 'size() === \"sm\"',\n '[class.talos-btn-md]': 'size() === \"md\"',\n '[class.talos-btn-lg]': 'size() === \"lg\"',\n '[class.talos-btn-icon]': 'iconOnly()',\n '[class.talos-btn-full]': 'fullWidth()',\n '[class.talos-btn-pill]': 'pill()',\n '[class.is-loading]': 'loading()',\n '[class.talos-anim-spin]': 'animation() === \"spin\" || spinning()',\n '[class.talos-anim-spin-once]': 'animation() === \"spin-once\"',\n '[class.talos-anim-pop]': 'animation() === \"pop\" || popping()',\n '[class.talos-anim-shake]': 'animation() === \"shake\"',\n '[class.talos-anim-pulse]': 'animation() === \"pulse\"',\n '[class.talos-anim-bounce]': 'animation() === \"bounce\"',\n '[class.talos-feedback-success]': 'feedback() === \"success\"',\n '[class.talos-feedback-error]': 'feedback() === \"error\"',\n '[attr.disabled]': '(disabled() || loading()) ? true : null',\n '[attr.aria-disabled]': '(disabled() || loading()) ? \"true\" : null',\n '(pointerdown)': 'onPointerDown($event)'\n }\n})\nexport class TalosButtonDirective {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Button visual style variant */\n readonly variant = input<ButtonVariant>('primary');\n\n /** Button size variant */\n readonly size = input<ButtonSize>('md');\n\n /** Whether button has square aspect ratio for icon-only display */\n readonly iconOnly = input<boolean>(false);\n\n /** Expand button to fill 100% width of parent container */\n readonly fullWidth = input<boolean>(false);\n\n /** Apply fully rounded pill shape */\n readonly pill = input<boolean>(false);\n\n /** Show loading spinner and disable interactive events */\n readonly loading = input<boolean>(false);\n\n /** Disable button interaction */\n readonly disabled = input<boolean>(false);\n\n /** Micro-interaction animation preset to apply */\n readonly animation = input<ButtonAnimation>('none');\n\n /** Convenience boolean signal for spinning icon / continuous refresh state */\n readonly spinning = input<boolean>(false);\n\n /** Convenience boolean signal for pop / scale bounce feedback */\n readonly popping = input<boolean>(false);\n\n /** Contextual temporary feedback state (e.g. green success pop or red error shake) */\n readonly feedback = input<ButtonFeedbackState>(null);\n\n onPointerDown(event: Event): void {\n if (this.disabled() || this.loading()) return;\n const pe = event as PointerEvent;\n const el = this.elementRef.nativeElement;\n const rect = el.getBoundingClientRect();\n const x = pe.clientX - rect.left;\n const y = pe.clientY - rect.top;\n el.style.setProperty('--ripple-x', `${x}px`);\n el.style.setProperty('--ripple-y', `${y}px`);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weeehaoooz-talos-ui-button-button.mjs","sources":["../../../projects/talos-ui/button/button/button.directive.ts","../../../projects/talos-ui/button/button/weeehaoooz-talos-ui-button-button.ts"],"sourcesContent":["import { Directive, ElementRef, inject, input } from '@angular/core';\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'subtle' | 'danger' | 'success' | 'link';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ButtonAnimation = 'spin' | 'spin-once' | 'pop' | 'shake' | 'pulse' | 'bounce' | 'none';\nexport type ButtonFeedbackState = 'success' | 'error' | null;\n\n@Directive({\n selector: 'button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]',\n host: {\n 'class': 'talos-btn',\n '[class.talos-btn-primary]': 'variant() === \"primary\"',\n '[class.talos-btn-secondary]': 'variant() === \"secondary\"',\n '[class.talos-btn-outline]': 'variant() === \"outline\"',\n '[class.talos-btn-ghost]': 'variant() === \"ghost\" || variant() === \"subtle\"',\n '[class.talos-btn-danger]': 'variant() === \"danger\"',\n '[class.talos-btn-success]': 'variant() === \"success\"',\n '[class.talos-btn-link]': 'variant() === \"link\"',\n '[class.talos-btn-xs]': 'size() === \"xs\"',\n '[class.talos-btn-sm]': 'size() === \"sm\"',\n '[class.talos-btn-md]': 'size() === \"md\"',\n '[class.talos-btn-lg]': 'size() === \"lg\"',\n '[class.talos-btn-icon]': 'iconOnly()',\n '[class.talos-btn-full]': 'fullWidth()',\n '[class.talos-btn-pill]': 'pill()',\n '[class.is-loading]': 'loading()',\n '[class.talos-anim-spin]': 'animation() === \"spin\" || spinning()',\n '[class.talos-anim-spin-once]': 'animation() === \"spin-once\"',\n '[class.talos-anim-pop]': 'animation() === \"pop\" || popping()',\n '[class.talos-anim-shake]': 'animation() === \"shake\"',\n '[class.talos-anim-pulse]': 'animation() === \"pulse\"',\n '[class.talos-anim-bounce]': 'animation() === \"bounce\"',\n '[class.talos-feedback-success]': 'feedback() === \"success\"',\n '[class.talos-feedback-error]': 'feedback() === \"error\"',\n '[attr.disabled]': '(disabled() || loading()) ? true : null',\n '[attr.aria-disabled]': '(disabled() || loading()) ? \"true\" : null',\n '(pointerdown)': 'onPointerDown($event)'\n }\n})\nexport class TalosButtonDirective {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Button visual style variant */\n readonly variant = input<ButtonVariant>('primary');\n\n /** Button size variant */\n readonly size = input<ButtonSize>('md');\n\n /** Whether button has square aspect ratio for icon-only display */\n readonly iconOnly = input<boolean>(false);\n\n /** Expand button to fill 100% width of parent container */\n readonly fullWidth = input<boolean>(false);\n\n /** Apply fully rounded pill shape */\n readonly pill = input<boolean>(false);\n\n /** Show loading spinner and disable interactive events */\n readonly loading = input<boolean>(false);\n\n /** Disable button interaction */\n readonly disabled = input<boolean>(false);\n\n /** Micro-interaction animation preset to apply */\n readonly animation = input<ButtonAnimation>('none');\n\n /** Convenience boolean signal for spinning icon / continuous refresh state */\n readonly spinning = input<boolean>(false);\n\n /** Convenience boolean signal for pop / scale bounce feedback */\n readonly popping = input<boolean>(false);\n\n /** Contextual temporary feedback state (e.g. green success pop or red error shake) */\n readonly feedback = input<ButtonFeedbackState>(null);\n\n onPointerDown(event: Event): void {\n if (this.disabled() || this.loading()) return;\n const pe = event as PointerEvent;\n const el = this.elementRef.nativeElement;\n const rect = el.getBoundingClientRect();\n const x = pe.clientX - rect.left;\n const y = pe.clientY - rect.top;\n el.style.setProperty('--ripple-x', `${x}px`);\n el.style.setProperty('--ripple-y', `${y}px`);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}