@shival99/z-ui 1.9.4 → 1.9.6

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.
@@ -49,8 +49,8 @@ const zButtonVariants = cva("cursor-pointer relative inline-flex items-center ju
49
49
  default: 'h-9 px-3 py-2 [&[data-icon-only]]:size-9 [&[data-icon-only]]:p-0',
50
50
  xs: 'h-7 px-3 py-1 [&[data-icon-only]]:size-7 [&[data-icon-only]]:p-0',
51
51
  sm: 'h-8 rounded-[0.375rem] gap-1.5 px-3 [&[data-icon-only]]:size-8 [&[data-icon-only]]:p-0',
52
- lg: 'h-10 rounded-[0.375rem] px-6 [&[data-icon-only]]:size-10 [&[data-icon-only]]:p-0',
53
- xl: 'h-12 rounded-lg px-8 text-base [&[data-icon-only]]:size-12 [&[data-icon-only]]:p-0',
52
+ lg: 'h-10 rounded-[0.375rem] px-3 [&[data-icon-only]]:size-10 [&[data-icon-only]]:p-0',
53
+ xl: 'h-12 rounded-lg px-3 text-base [&[data-icon-only]]:size-12 [&[data-icon-only]]:p-0',
54
54
  },
55
55
  zShape: {
56
56
  default: 'rounded-[0.375rem]',
@@ -1 +1 @@
1
- {"version":3,"file":"shival99-z-ui-components-z-button.mjs","sources":["../../../../libs/core-ui/components/z-button/z-button.variants.ts","../../../../libs/core-ui/components/z-button/z-button.component.ts","../../../../libs/core-ui/components/z-button/z-button.component.html","../../../../libs/core-ui/components/z-button/shival99-z-ui-components-z-button.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zButtonVariants = cva(\n \"cursor-pointer relative inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[0.375rem] text-sm font-[450] select-none transition-[background-color,border-color,color,box-shadow,opacity] duration-200 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n zType: {\n default:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\n primary:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80 [--z-wave-color:var(--color-secondary-foreground)]',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 [--z-wave-color:var(--color-destructive)]',\n success:\n 'bg-green-600 text-white shadow-xs hover:bg-green-700 focus-visible:ring-green-500/20 dark:bg-green-600 dark:hover:bg-green-700 [--z-wave-color:var(--color-green-600)]',\n info: 'bg-blue-600 text-white shadow-xs hover:bg-blue-700 focus-visible:ring-blue-500/20 dark:bg-blue-600 dark:hover:bg-blue-700 [--z-wave-color:var(--color-blue-600)]',\n warning:\n 'bg-amber-500 text-white shadow-xs hover:bg-amber-600 focus-visible:ring-amber-500/20 dark:bg-amber-500 dark:hover:bg-amber-600 [--z-wave-color:var(--color-amber-500)]',\n error:\n 'bg-red-600 text-white shadow-xs hover:bg-red-700 focus-visible:ring-red-500/20 dark:bg-red-600 dark:hover:bg-red-700 [--z-wave-color:var(--color-red-600)]',\n\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 [--z-wave-color:var(--color-foreground)]',\n 'outline-primary':\n 'border border-primary text-primary bg-transparent shadow-xs hover:bg-primary hover:text-primary-foreground focus-visible:ring-primary/20 [--z-wave-color:var(--color-primary)]',\n 'outline-secondary':\n 'border border-secondary-foreground/20 text-secondary-foreground bg-transparent shadow-xs hover:bg-secondary hover:text-secondary-foreground focus-visible:ring-secondary/20 [--z-wave-color:var(--color-secondary-foreground)]',\n 'outline-success':\n 'border border-green-600 text-green-600 bg-transparent shadow-xs hover:bg-green-600 hover:text-white focus-visible:ring-green-500/20 dark:border-green-500 dark:text-green-500 dark:hover:bg-green-600 [--z-wave-color:var(--color-green-600)]',\n 'outline-info':\n 'border border-blue-600 text-blue-600 bg-transparent shadow-xs hover:bg-blue-600 hover:text-white focus-visible:ring-blue-500/20 dark:border-blue-500 dark:text-blue-500 dark:hover:bg-blue-600 [--z-wave-color:var(--color-blue-600)]',\n 'outline-warning':\n 'border border-amber-500 text-amber-600 bg-transparent shadow-xs hover:bg-amber-500 hover:text-white focus-visible:ring-amber-500/20 dark:border-amber-400 dark:text-amber-400 dark:hover:bg-amber-500 [--z-wave-color:var(--color-amber-500)]',\n 'outline-error':\n 'border border-red-600 text-red-600 bg-transparent shadow-xs hover:bg-red-600 hover:text-white focus-visible:ring-red-500/20 dark:border-red-500 dark:text-red-500 dark:hover:bg-red-600 [--z-wave-color:var(--color-red-600)]',\n 'outline-destructive':\n 'border border-destructive text-destructive bg-transparent shadow-xs hover:bg-destructive hover:text-white focus-visible:ring-destructive/20 [--z-wave-color:var(--color-destructive)]',\n 'outline-success-secondary':\n 'border bg-background shadow-xs hover:bg-green-600/10 hover:text-green-600 hover:border-green-600 dark:bg-input/30 dark:border-input dark:hover:bg-green-500/20 dark:hover:text-green-500 dark:hover:border-green-500 [--z-wave-color:var(--color-green-600)]',\n 'outline-info-secondary':\n 'border bg-background shadow-xs hover:bg-blue-600/10 hover:text-blue-600 hover:border-blue-600 dark:bg-input/30 dark:border-input dark:hover:bg-blue-500/20 dark:hover:text-blue-500 dark:hover:border-blue-500 [--z-wave-color:var(--color-blue-600)]',\n 'outline-warning-secondary':\n 'border bg-background shadow-xs hover:bg-amber-500/10 hover:text-amber-600 hover:border-amber-500 dark:bg-input/30 dark:border-input dark:hover:bg-amber-400/20 dark:hover:text-amber-400 dark:hover:border-amber-400 [--z-wave-color:var(--color-amber-500)]',\n 'outline-error-secondary':\n 'border bg-background shadow-xs hover:bg-red-600/10 hover:text-red-600 hover:border-red-600 dark:bg-input/30 dark:border-input dark:hover:bg-red-500/20 dark:hover:text-red-500 dark:hover:border-red-500 [--z-wave-color:var(--color-red-600)]',\n 'outline-destructive-secondary':\n 'border bg-background shadow-xs hover:bg-destructive/10 hover:text-destructive hover:border-destructive dark:bg-input/30 dark:border-input dark:hover:bg-destructive/20 dark:hover:border-destructive [--z-wave-color:var(--color-destructive)]',\n 'outline-primary-secondary':\n 'border bg-background shadow-xs hover:bg-primary/10 hover:text-primary hover:border-primary dark:bg-input/30 dark:border-input dark:hover:bg-primary/20 dark:hover:border-primary [--z-wave-color:var(--color-primary)]',\n\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 [--z-wave-color:var(--color-foreground)]',\n 'ghost-primary':\n 'text-primary hover:bg-primary/10 dark:hover:bg-primary/20 [--z-wave-color:var(--color-primary)]',\n 'ghost-success':\n 'text-green-600 hover:bg-green-600/10 dark:text-green-500 dark:hover:bg-green-500/20 [--z-wave-color:var(--color-green-600)]',\n 'ghost-info':\n 'text-blue-600 hover:bg-blue-600/10 dark:text-blue-500 dark:hover:bg-blue-500/20 [--z-wave-color:var(--color-blue-600)]',\n 'ghost-warning':\n 'text-amber-600 hover:bg-amber-500/10 dark:text-amber-400 dark:hover:bg-amber-400/20 [--z-wave-color:var(--color-amber-500)]',\n 'ghost-error':\n 'text-red-600 hover:bg-red-600/10 dark:text-red-500 dark:hover:bg-red-500/20 [--z-wave-color:var(--color-red-600)]',\n 'ghost-destructive':\n 'text-destructive hover:bg-destructive/10 dark:hover:bg-destructive/20 [--z-wave-color:var(--color-destructive)]',\n\n subtle:\n 'bg-accent text-accent-foreground hover:bg-accent/80 dark:bg-accent/50 dark:hover:bg-accent/70 [--z-wave-color:var(--color-foreground)]',\n 'subtle-primary':\n 'bg-primary/10 text-primary hover:bg-primary/20 dark:bg-primary/15 dark:text-primary dark:hover:bg-primary/25 [--z-wave-color:var(--color-primary)]',\n 'subtle-success':\n 'bg-green-600/10 text-green-600 hover:bg-green-600/20 dark:bg-green-500/10 dark:text-green-500 dark:hover:bg-green-500/20 [--z-wave-color:var(--color-green-600)]',\n 'subtle-info':\n 'bg-blue-600/10 text-blue-600 hover:bg-blue-600/20 dark:bg-blue-500/10 dark:text-blue-500 dark:hover:bg-blue-500/20 [--z-wave-color:var(--color-blue-600)]',\n 'subtle-warning':\n 'bg-amber-500/10 text-amber-600 hover:bg-amber-500/20 dark:bg-amber-400/10 dark:text-amber-400 dark:hover:bg-amber-400/20 [--z-wave-color:var(--color-amber-500)]',\n 'subtle-destructive':\n 'bg-destructive/10 text-destructive hover:bg-destructive/20 dark:bg-destructive/15 dark:text-destructive-foreground dark:hover:bg-destructive/25 [--z-wave-color:var(--color-destructive)]',\n\n link: 'text-primary underline-offset-4 hover:underline',\n },\n zSize: {\n default: 'h-9 px-3 py-2 [&[data-icon-only]]:size-9 [&[data-icon-only]]:p-0',\n xs: 'h-7 px-3 py-1 [&[data-icon-only]]:size-7 [&[data-icon-only]]:p-0',\n sm: 'h-8 rounded-[0.375rem] gap-1.5 px-3 [&[data-icon-only]]:size-8 [&[data-icon-only]]:p-0',\n lg: 'h-10 rounded-[0.375rem] px-6 [&[data-icon-only]]:size-10 [&[data-icon-only]]:p-0',\n xl: 'h-12 rounded-lg px-8 text-base [&[data-icon-only]]:size-12 [&[data-icon-only]]:p-0',\n },\n zShape: {\n default: 'rounded-[0.375rem]',\n circle: 'rounded-full',\n square: 'rounded-none',\n },\n zLoading: {\n true: 'opacity-50 pointer-events-none',\n },\n zDisabled: {\n true: 'opacity-50 pointer-events-none',\n },\n },\n defaultVariants: {\n zType: 'default',\n zSize: 'default',\n zShape: 'default',\n },\n }\n);\n\nexport type ZButtonVariants = VariantProps<typeof zButtonVariants>;\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n type OnDestroy,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { type ZIconVariants, type ZIcon } from '@shival99/z-ui/components/z-icon';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { zButtonVariants, type ZButtonVariants } from './z-button.variants';\n\n@Component({\n selector: 'z-button, button[z-button], a[z-button]',\n imports: [ZIconComponent, TranslatePipe],\n standalone: true,\n templateUrl: './z-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n '[attr.data-icon-only]': 'zIconOnly() || null',\n '(click)': 'onWaveClick()',\n },\n exportAs: 'zButton',\n})\nexport class ZButtonComponent implements OnDestroy {\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZButtonVariants['zType']>('default');\n public readonly zSize = input<ZButtonVariants['zSize']>('default');\n public readonly zShape = input<ZButtonVariants['zShape']>('default');\n public readonly zLabel = input<string>('');\n public readonly zLoading = input(false, { transform: zTransform });\n public readonly zDisabled = input(false);\n public readonly zTypeIcon = input<ZIcon | undefined>(undefined);\n public readonly zSizeIcon = input<ZIconVariants['zSize']>('20');\n public readonly zStrokeWidthIcon = input<number>(2);\n public readonly zWave = input(true, { transform: zTransform });\n\n private readonly _zIconOnlyState = signal(false);\n private _mutationObserver: MutationObserver | null = null;\n\n protected readonly zIconOnly = this._zIconOnlyState.asReadonly();\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonVariants({\n zType: this.zType(),\n zSize: this.zSize(),\n zShape: this.zShape(),\n zLoading: this.zLoading(),\n zDisabled: this.zDisabled(),\n }),\n this.class()\n )\n );\n\n constructor() {\n afterNextRender(() => {\n const check = () => {\n const el = this._elementRef.nativeElement;\n const hasIcon = el.querySelector('z-icon, [z-icon]') !== null;\n const children = Array.from<Node>(el.childNodes);\n const hasText = children.some(node => {\n if (node.nodeType === 3) {\n return node.textContent?.trim() !== '';\n }\n\n if (node.nodeType === 1) {\n const element = node as HTMLElement;\n if (element.matches('z-icon, [z-icon]')) {\n return false;\n }\n\n return element.textContent?.trim() !== '';\n }\n\n return false;\n });\n\n this._zIconOnlyState.set(hasIcon && !hasText);\n };\n\n check();\n this._mutationObserver = new MutationObserver(check);\n this._mutationObserver.observe(this._elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true,\n });\n });\n }\n\n ngOnDestroy(): void {\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n this._mutationObserver = null;\n }\n }\n\n protected onWaveClick(): void {\n const type = this.zType();\n if (!this.zWave() || this.zLoading() || type === 'link') {\n return;\n }\n\n const el = this._elementRef.nativeElement;\n const waveEl = document.createElement('span');\n waveEl.className = 'z-animate-wave';\n el.appendChild(waveEl);\n el.classList.add('z-wave-active');\n const onWaveAnimationEnd = (event: AnimationEvent): void => {\n if (event.animationName !== 'z-fade-effect') {\n return;\n }\n\n waveEl.remove();\n el.classList.remove('z-wave-active');\n waveEl.removeEventListener('animationend', onWaveAnimationEnd);\n };\n\n waveEl.addEventListener('animationend', onWaveAnimationEnd);\n }\n}\n","@if (zTypeIcon() && !zLoading()) {\n <i z-icon [zType]=\"zTypeIcon() || 'lucideLoader'\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"zStrokeWidthIcon()\"></i>\n}\n@if (zLoading()) {\n <i z-icon zType=\"lucideLoader\" class=\"z-animate-spin\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"2.8\"></i>\n}\n@if (zLabel()) {\n <span>{{ zLabel() | translate }}</span>\n} @else {\n <ng-content />\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":"shival99-z-ui-components-z-button.mjs","sources":["../../../../libs/core-ui/components/z-button/z-button.variants.ts","../../../../libs/core-ui/components/z-button/z-button.component.ts","../../../../libs/core-ui/components/z-button/z-button.component.html","../../../../libs/core-ui/components/z-button/shival99-z-ui-components-z-button.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zButtonVariants = cva(\n \"cursor-pointer relative inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[0.375rem] text-sm font-[450] select-none transition-[background-color,border-color,color,box-shadow,opacity] duration-200 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n zType: {\n default:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\n primary:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 [--z-wave-color:var(--color-primary)]',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80 [--z-wave-color:var(--color-secondary-foreground)]',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 [--z-wave-color:var(--color-destructive)]',\n success:\n 'bg-green-600 text-white shadow-xs hover:bg-green-700 focus-visible:ring-green-500/20 dark:bg-green-600 dark:hover:bg-green-700 [--z-wave-color:var(--color-green-600)]',\n info: 'bg-blue-600 text-white shadow-xs hover:bg-blue-700 focus-visible:ring-blue-500/20 dark:bg-blue-600 dark:hover:bg-blue-700 [--z-wave-color:var(--color-blue-600)]',\n warning:\n 'bg-amber-500 text-white shadow-xs hover:bg-amber-600 focus-visible:ring-amber-500/20 dark:bg-amber-500 dark:hover:bg-amber-600 [--z-wave-color:var(--color-amber-500)]',\n error:\n 'bg-red-600 text-white shadow-xs hover:bg-red-700 focus-visible:ring-red-500/20 dark:bg-red-600 dark:hover:bg-red-700 [--z-wave-color:var(--color-red-600)]',\n\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 [--z-wave-color:var(--color-foreground)]',\n 'outline-primary':\n 'border border-primary text-primary bg-transparent shadow-xs hover:bg-primary hover:text-primary-foreground focus-visible:ring-primary/20 [--z-wave-color:var(--color-primary)]',\n 'outline-secondary':\n 'border border-secondary-foreground/20 text-secondary-foreground bg-transparent shadow-xs hover:bg-secondary hover:text-secondary-foreground focus-visible:ring-secondary/20 [--z-wave-color:var(--color-secondary-foreground)]',\n 'outline-success':\n 'border border-green-600 text-green-600 bg-transparent shadow-xs hover:bg-green-600 hover:text-white focus-visible:ring-green-500/20 dark:border-green-500 dark:text-green-500 dark:hover:bg-green-600 [--z-wave-color:var(--color-green-600)]',\n 'outline-info':\n 'border border-blue-600 text-blue-600 bg-transparent shadow-xs hover:bg-blue-600 hover:text-white focus-visible:ring-blue-500/20 dark:border-blue-500 dark:text-blue-500 dark:hover:bg-blue-600 [--z-wave-color:var(--color-blue-600)]',\n 'outline-warning':\n 'border border-amber-500 text-amber-600 bg-transparent shadow-xs hover:bg-amber-500 hover:text-white focus-visible:ring-amber-500/20 dark:border-amber-400 dark:text-amber-400 dark:hover:bg-amber-500 [--z-wave-color:var(--color-amber-500)]',\n 'outline-error':\n 'border border-red-600 text-red-600 bg-transparent shadow-xs hover:bg-red-600 hover:text-white focus-visible:ring-red-500/20 dark:border-red-500 dark:text-red-500 dark:hover:bg-red-600 [--z-wave-color:var(--color-red-600)]',\n 'outline-destructive':\n 'border border-destructive text-destructive bg-transparent shadow-xs hover:bg-destructive hover:text-white focus-visible:ring-destructive/20 [--z-wave-color:var(--color-destructive)]',\n 'outline-success-secondary':\n 'border bg-background shadow-xs hover:bg-green-600/10 hover:text-green-600 hover:border-green-600 dark:bg-input/30 dark:border-input dark:hover:bg-green-500/20 dark:hover:text-green-500 dark:hover:border-green-500 [--z-wave-color:var(--color-green-600)]',\n 'outline-info-secondary':\n 'border bg-background shadow-xs hover:bg-blue-600/10 hover:text-blue-600 hover:border-blue-600 dark:bg-input/30 dark:border-input dark:hover:bg-blue-500/20 dark:hover:text-blue-500 dark:hover:border-blue-500 [--z-wave-color:var(--color-blue-600)]',\n 'outline-warning-secondary':\n 'border bg-background shadow-xs hover:bg-amber-500/10 hover:text-amber-600 hover:border-amber-500 dark:bg-input/30 dark:border-input dark:hover:bg-amber-400/20 dark:hover:text-amber-400 dark:hover:border-amber-400 [--z-wave-color:var(--color-amber-500)]',\n 'outline-error-secondary':\n 'border bg-background shadow-xs hover:bg-red-600/10 hover:text-red-600 hover:border-red-600 dark:bg-input/30 dark:border-input dark:hover:bg-red-500/20 dark:hover:text-red-500 dark:hover:border-red-500 [--z-wave-color:var(--color-red-600)]',\n 'outline-destructive-secondary':\n 'border bg-background shadow-xs hover:bg-destructive/10 hover:text-destructive hover:border-destructive dark:bg-input/30 dark:border-input dark:hover:bg-destructive/20 dark:hover:border-destructive [--z-wave-color:var(--color-destructive)]',\n 'outline-primary-secondary':\n 'border bg-background shadow-xs hover:bg-primary/10 hover:text-primary hover:border-primary dark:bg-input/30 dark:border-input dark:hover:bg-primary/20 dark:hover:border-primary [--z-wave-color:var(--color-primary)]',\n\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 [--z-wave-color:var(--color-foreground)]',\n 'ghost-primary':\n 'text-primary hover:bg-primary/10 dark:hover:bg-primary/20 [--z-wave-color:var(--color-primary)]',\n 'ghost-success':\n 'text-green-600 hover:bg-green-600/10 dark:text-green-500 dark:hover:bg-green-500/20 [--z-wave-color:var(--color-green-600)]',\n 'ghost-info':\n 'text-blue-600 hover:bg-blue-600/10 dark:text-blue-500 dark:hover:bg-blue-500/20 [--z-wave-color:var(--color-blue-600)]',\n 'ghost-warning':\n 'text-amber-600 hover:bg-amber-500/10 dark:text-amber-400 dark:hover:bg-amber-400/20 [--z-wave-color:var(--color-amber-500)]',\n 'ghost-error':\n 'text-red-600 hover:bg-red-600/10 dark:text-red-500 dark:hover:bg-red-500/20 [--z-wave-color:var(--color-red-600)]',\n 'ghost-destructive':\n 'text-destructive hover:bg-destructive/10 dark:hover:bg-destructive/20 [--z-wave-color:var(--color-destructive)]',\n\n subtle:\n 'bg-accent text-accent-foreground hover:bg-accent/80 dark:bg-accent/50 dark:hover:bg-accent/70 [--z-wave-color:var(--color-foreground)]',\n 'subtle-primary':\n 'bg-primary/10 text-primary hover:bg-primary/20 dark:bg-primary/15 dark:text-primary dark:hover:bg-primary/25 [--z-wave-color:var(--color-primary)]',\n 'subtle-success':\n 'bg-green-600/10 text-green-600 hover:bg-green-600/20 dark:bg-green-500/10 dark:text-green-500 dark:hover:bg-green-500/20 [--z-wave-color:var(--color-green-600)]',\n 'subtle-info':\n 'bg-blue-600/10 text-blue-600 hover:bg-blue-600/20 dark:bg-blue-500/10 dark:text-blue-500 dark:hover:bg-blue-500/20 [--z-wave-color:var(--color-blue-600)]',\n 'subtle-warning':\n 'bg-amber-500/10 text-amber-600 hover:bg-amber-500/20 dark:bg-amber-400/10 dark:text-amber-400 dark:hover:bg-amber-400/20 [--z-wave-color:var(--color-amber-500)]',\n 'subtle-destructive':\n 'bg-destructive/10 text-destructive hover:bg-destructive/20 dark:bg-destructive/15 dark:text-destructive-foreground dark:hover:bg-destructive/25 [--z-wave-color:var(--color-destructive)]',\n\n link: 'text-primary underline-offset-4 hover:underline',\n },\n zSize: {\n default: 'h-9 px-3 py-2 [&[data-icon-only]]:size-9 [&[data-icon-only]]:p-0',\n xs: 'h-7 px-3 py-1 [&[data-icon-only]]:size-7 [&[data-icon-only]]:p-0',\n sm: 'h-8 rounded-[0.375rem] gap-1.5 px-3 [&[data-icon-only]]:size-8 [&[data-icon-only]]:p-0',\n lg: 'h-10 rounded-[0.375rem] px-3 [&[data-icon-only]]:size-10 [&[data-icon-only]]:p-0',\n xl: 'h-12 rounded-lg px-3 text-base [&[data-icon-only]]:size-12 [&[data-icon-only]]:p-0',\n },\n zShape: {\n default: 'rounded-[0.375rem]',\n circle: 'rounded-full',\n square: 'rounded-none',\n },\n zLoading: {\n true: 'opacity-50 pointer-events-none',\n },\n zDisabled: {\n true: 'opacity-50 pointer-events-none',\n },\n },\n defaultVariants: {\n zType: 'default',\n zSize: 'default',\n zShape: 'default',\n },\n }\n);\n\nexport type ZButtonVariants = VariantProps<typeof zButtonVariants>;\n","import {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n type OnDestroy,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ZIconComponent } from '@shival99/z-ui/components/z-icon';\nimport { type ZIconVariants, type ZIcon } from '@shival99/z-ui/components/z-icon';\nimport { zMergeClasses, zTransform } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { zButtonVariants, type ZButtonVariants } from './z-button.variants';\n\n@Component({\n selector: 'z-button, button[z-button], a[z-button]',\n imports: [ZIconComponent, TranslatePipe],\n standalone: true,\n templateUrl: './z-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n '[attr.data-icon-only]': 'zIconOnly() || null',\n '(click)': 'onWaveClick()',\n },\n exportAs: 'zButton',\n})\nexport class ZButtonComponent implements OnDestroy {\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZButtonVariants['zType']>('default');\n public readonly zSize = input<ZButtonVariants['zSize']>('default');\n public readonly zShape = input<ZButtonVariants['zShape']>('default');\n public readonly zLabel = input<string>('');\n public readonly zLoading = input(false, { transform: zTransform });\n public readonly zDisabled = input(false);\n public readonly zTypeIcon = input<ZIcon | undefined>(undefined);\n public readonly zSizeIcon = input<ZIconVariants['zSize']>('20');\n public readonly zStrokeWidthIcon = input<number>(2);\n public readonly zWave = input(true, { transform: zTransform });\n\n private readonly _zIconOnlyState = signal(false);\n private _mutationObserver: MutationObserver | null = null;\n\n protected readonly zIconOnly = this._zIconOnlyState.asReadonly();\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonVariants({\n zType: this.zType(),\n zSize: this.zSize(),\n zShape: this.zShape(),\n zLoading: this.zLoading(),\n zDisabled: this.zDisabled(),\n }),\n this.class()\n )\n );\n\n constructor() {\n afterNextRender(() => {\n const check = () => {\n const el = this._elementRef.nativeElement;\n const hasIcon = el.querySelector('z-icon, [z-icon]') !== null;\n const children = Array.from<Node>(el.childNodes);\n const hasText = children.some(node => {\n if (node.nodeType === 3) {\n return node.textContent?.trim() !== '';\n }\n\n if (node.nodeType === 1) {\n const element = node as HTMLElement;\n if (element.matches('z-icon, [z-icon]')) {\n return false;\n }\n\n return element.textContent?.trim() !== '';\n }\n\n return false;\n });\n\n this._zIconOnlyState.set(hasIcon && !hasText);\n };\n\n check();\n this._mutationObserver = new MutationObserver(check);\n this._mutationObserver.observe(this._elementRef.nativeElement, {\n childList: true,\n characterData: true,\n subtree: true,\n });\n });\n }\n\n ngOnDestroy(): void {\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n this._mutationObserver = null;\n }\n }\n\n protected onWaveClick(): void {\n const type = this.zType();\n if (!this.zWave() || this.zLoading() || type === 'link') {\n return;\n }\n\n const el = this._elementRef.nativeElement;\n const waveEl = document.createElement('span');\n waveEl.className = 'z-animate-wave';\n el.appendChild(waveEl);\n el.classList.add('z-wave-active');\n const onWaveAnimationEnd = (event: AnimationEvent): void => {\n if (event.animationName !== 'z-fade-effect') {\n return;\n }\n\n waveEl.remove();\n el.classList.remove('z-wave-active');\n waveEl.removeEventListener('animationend', onWaveAnimationEnd);\n };\n\n waveEl.addEventListener('animationend', onWaveAnimationEnd);\n }\n}\n","@if (zTypeIcon() && !zLoading()) {\n <i z-icon [zType]=\"zTypeIcon() || 'lucideLoader'\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"zStrokeWidthIcon()\"></i>\n}\n@if (zLoading()) {\n <i z-icon zType=\"lucideLoader\" class=\"z-animate-spin\" [zSize]=\"zSizeIcon()\" [zStrokeWidth]=\"2.8\"></i>\n}\n@if (zLabel()) {\n <span>{{ zLabel() | translate }}</span>\n} @else {\n <ng-content />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -119,9 +119,18 @@ const computeRangeProperties = (date, rangeStart, rangeEnd, hoveredDate) => {
119
119
  return defaultProps;
120
120
  };
121
121
  const createCalendarDay = (date, isCurrentMonth, today, options) => {
122
- const { selectedDate, minDate, maxDate, rangeStart, rangeEnd, hoveredDate, disabledDate } = options;
122
+ const { selectedDate, minDate, maxDate, rangeStart, rangeEnd, hoveredDate, disabledDate, suppressOtherMonthRangeState, } = options;
123
+ const shouldSuppressRangeState = !isCurrentMonth && !!suppressOtherMonthRangeState;
123
124
  const isSelected = selectedDate ? isSameDay(date, selectedDate) : false;
124
- const rangeProps = computeRangeProperties(date, rangeStart, rangeEnd, hoveredDate);
125
+ let rangeProps = computeRangeProperties(date, rangeStart, rangeEnd, hoveredDate);
126
+ if (shouldSuppressRangeState) {
127
+ rangeProps = {
128
+ isRangeStart: false,
129
+ isRangeEnd: false,
130
+ isInRange: false,
131
+ isHovered: false,
132
+ };
133
+ }
125
134
  const isOutOfRange = !isDateInRange(date, minDate ?? null, maxDate ?? null);
126
135
  const isDisabledByFn = disabledDate ? disabledDate(date) : false;
127
136
  return {
@@ -392,9 +401,6 @@ const getDayState = (day) => {
392
401
  if (day.isDisabled) {
393
402
  return 'disabled';
394
403
  }
395
- if (!day.isCurrentMonth) {
396
- return 'otherMonth';
397
- }
398
404
  if (day.isRangeStart && day.isRangeEnd) {
399
405
  return 'rangeSingle';
400
406
  }
@@ -413,6 +419,9 @@ const getDayState = (day) => {
413
419
  if (day.isSelected) {
414
420
  return 'selected';
415
421
  }
422
+ if (!day.isCurrentMonth) {
423
+ return 'otherMonth';
424
+ }
416
425
  if (day.isToday) {
417
426
  return 'today';
418
427
  }
@@ -493,7 +502,7 @@ const zCalendarDayVariants = cva([
493
502
  rangeStart: 'bg-primary text-primary-foreground rounded-r-none',
494
503
  rangeEnd: 'bg-primary text-primary-foreground rounded-l-none',
495
504
  rangeSingle: 'bg-primary text-primary-foreground',
496
- disabled: 'text-muted-foreground/50 cursor-not-allowed line-through',
505
+ disabled: 'text-muted-foreground/50 cursor-not-allowed',
497
506
  otherMonth: 'text-muted-foreground/40 hover:bg-primary/5',
498
507
  hovered: 'bg-primary/15 text-foreground',
499
508
  },
@@ -1150,6 +1159,7 @@ class ZCalendarComponent {
1150
1159
  minDate: this.zMinDate(),
1151
1160
  maxDate: this.zMaxDate(),
1152
1161
  disabledDate: this.zDisabledDate(),
1162
+ suppressOtherMonthRangeState: this.isRangeMode(),
1153
1163
  });
1154
1164
  }, ...(ngDevMode ? [{ debugName: "calendarDays" }] : []));
1155
1165
  endMonth = this._endMonth.asReadonly();
@@ -1170,6 +1180,7 @@ class ZCalendarComponent {
1170
1180
  minDate: this.zMinDate(),
1171
1181
  maxDate: this.zMaxDate(),
1172
1182
  disabledDate: this.zDisabledDate(),
1183
+ suppressOtherMonthRangeState: this.isRangeMode(),
1173
1184
  });
1174
1185
  }, ...(ngDevMode ? [{ debugName: "calendarDaysEnd" }] : []));
1175
1186
  formattedHourEnd = computed(() => formatTimeValue(this.zTimeFormat() === '12h' ? this._hourEnd() % 12 || 12 : this._hourEnd()), ...(ngDevMode ? [{ debugName: "formattedHourEnd" }] : []));