@tociva/tailng-ui 0.11.0 → 0.13.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"tociva-tailng-ui-buttons-indicators.mjs","sources":["../../../../libs/ui/buttons-indicators/src/public-api.ts","../../../../libs/ui/buttons-indicators/src/tociva-tailng-ui-buttons-indicators.ts"],"sourcesContent":["export * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,YAAA,CAAA,OAAA,CAAA,OAAA,CAAA,EAAA,OAAA,CAAA;;ACAA;;AAEG"}
1
+ {"version":3,"file":"tociva-tailng-ui-buttons-indicators.mjs","sources":["../../../../libs/ui/buttons-indicators/src/lib/badge/badge.component.ts","../../../../libs/ui/buttons-indicators/src/lib/badge/badge.component.html","../../../../libs/ui/buttons-indicators/src/lib/button/button.variants.ts","../../../../libs/ui/buttons-indicators/src/lib/button/button.component.ts","../../../../libs/ui/buttons-indicators/src/lib/button/button.component.html","../../../../libs/ui/buttons-indicators/src/lib/progress-bar/progress-bar.component.ts","../../../../libs/ui/buttons-indicators/src/lib/progress-bar/progress-bar.component.html","../../../../libs/ui/buttons-indicators/src/lib/progress-spinner/progress-spinner.component.ts","../../../../libs/ui/buttons-indicators/src/lib/progress-spinner/progress-spinner.component.html","../../../../libs/ui/buttons-indicators/src/lib/ripples/ripples.directive.ts","../../../../libs/ui/buttons-indicators/src/lib/skeleton/skeleton.component.ts","../../../../libs/ui/buttons-indicators/src/lib/skeleton/skeleton.component.html","../../../../libs/ui/buttons-indicators/src/lib/tag/tag.component.ts","../../../../libs/ui/buttons-indicators/src/lib/tag/tag.component.html","../../../../libs/ui/buttons-indicators/src/tociva-tailng-ui-buttons-indicators.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { booleanAttribute, numberAttribute } from '@angular/core';\n\nexport type TngBadgePosition =\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left';\n\nexport type TngBadgeVariant =\n | 'primary'\n | 'neutral'\n | 'success'\n | 'warning'\n | 'danger'\n | 'info';\n\nexport type TngBadgeSize = 'sm' | 'md';\n\n@Component({\n selector: 'tng-badge',\n standalone: true,\n templateUrl: './badge.component.html',\n})\nexport class TngBadge {\n /* =====================\n * Inputs\n * ===================== */\n\n /** Badge content (number or short text). If null/undefined -> hidden (unless dot=true). */\n value = input<number | string | null>(null);\n\n /** Dot mode (ignores value display) */\n dot = input(false, { transform: booleanAttribute });\n\n /** Hide badge forcefully */\n hide = input(false, { transform: booleanAttribute });\n\n /** Show when value is 0 (only for numeric values) */\n showZero = input(false, { transform: booleanAttribute });\n\n /** Max number shown before overflow (e.g., 99+) */\n max = input(99, { transform: numberAttribute });\n\n /** Position relative to host */\n position = input<TngBadgePosition>('top-right');\n\n /** Overlap host (Material-ish). When false, badge sits outside edge a bit. */\n overlap = input(true, { transform: booleanAttribute });\n\n /** Visual variant */\n variant = input<TngBadgeVariant>('danger');\n\n /** Size */\n size = input<TngBadgeSize>('md');\n\n /** Accessible label override (recommended when badge is meaningful) */\n ariaLabel = input<string>('');\n\n /* =====================\n * Class hooks\n * ===================== */\n\n /** Outer wrapper (layout of projected content + badge) */\n rootKlass = input<string>('inline-flex');\n\n /** The element that becomes positioning anchor */\n hostKlass = input<string>('relative inline-flex');\n\n /** Badge element */\n badgeKlass = input<string>('');\n\n /* =====================\n * Derived values\n * ===================== */\n\n private readonly isNumericValue = computed(() => {\n const v = this.value();\n return typeof v === 'number' && Number.isFinite(v);\n });\n\n readonly displayValue = computed((): string => {\n const v = this.value();\n\n if (v === null || v === undefined) return '';\n if (typeof v === 'string') return v.trim();\n\n // number\n const n = v;\n const m = this.max();\n\n if (!Number.isFinite(n)) return '';\n if (n > m) return `${m}+`;\n return String(n);\n });\n\n readonly shouldShow = computed(() => {\n if (this.hide()) return false;\n\n if (this.dot()) return true;\n\n const v = this.value();\n if (v === null || v === undefined) return false;\n\n if (typeof v === 'string') return v.trim().length > 0;\n\n // number\n if (!Number.isFinite(v)) return false;\n if (v === 0) return this.showZero();\n return true;\n });\n\n /** If user didn't provide ariaLabel, generate a basic one */\n readonly computedAriaLabel = computed(() => {\n const custom = this.ariaLabel().trim();\n if (custom) return custom;\n\n if (!this.shouldShow()) return '';\n\n if (this.dot()) return 'New notification';\n\n const v = this.displayValue();\n if (!v) return '';\n\n // Simple default. Consumers can override with ariaLabel input.\n return `Badge: ${v}`;\n });\n\n /* =====================\n * Classes\n * ===================== */\n\n private readonly variantClasses = computed(() => {\n switch (this.variant()) {\n case 'primary':\n return 'bg-primary text-on-primary';\n case 'neutral':\n return 'bg-alternate-background text-fg border border-border';\n case 'success':\n return 'bg-success text-on-primary';\n case 'warning':\n return 'bg-warning text-on-primary';\n case 'danger':\n return 'bg-danger text-on-primary';\n case 'info':\n return 'bg-info text-on-primary';\n default:\n return 'bg-danger text-on-primary';\n }\n });\n\n private readonly sizeClasses = computed(() => {\n // Material-ish: small dot, compact numbers.\n if (this.dot()) {\n return this.size() === 'sm'\n ? 'h-2 w-2'\n : 'h-2.5 w-2.5';\n }\n\n return this.size() === 'sm'\n ? 'min-w-[1.1rem] h-[1.1rem] px-1 text-[0.65rem] leading-[1.1rem]'\n : 'min-w-[1.25rem] h-[1.25rem] px-1.5 text-[0.7rem] leading-[1.25rem]';\n });\n\n private readonly positionClasses = computed(() => {\n const overlap = this.overlap();\n\n // when overlap=true, sit closer to corner (on top of host)\n // when overlap=false, sit slightly outside\n const inset = overlap ? '-translate-y-1/2' : '-translate-y-3/4';\n const insetBottom = overlap ? 'translate-y-1/2' : 'translate-y-3/4';\n const insetX = overlap ? 'translate-x-1/2' : 'translate-x-3/4';\n const insetXLeft = overlap ? '-translate-x-1/2' : '-translate-x-3/4';\n\n switch (this.position()) {\n case 'top-right':\n return `top-0 right-0 ${inset} ${insetX}`;\n case 'top-left':\n return `top-0 left-0 ${inset} ${insetXLeft}`;\n case 'bottom-right':\n return `bottom-0 right-0 ${insetBottom} ${insetX}`;\n case 'bottom-left':\n return `bottom-0 left-0 ${insetBottom} ${insetXLeft}`;\n default:\n return `top-0 right-0 ${inset} ${insetX}`;\n }\n });\n\n readonly badgeClasses = computed(() => {\n const base =\n 'absolute z-10 inline-flex items-center justify-center ' +\n 'rounded-full font-semibold select-none ' +\n 'ring-2 ring-background ' + // Material-ish separation from host\n 'pointer-events-none '; // badge shouldn't block clicks\n\n const dotShape = this.dot() ? 'p-0' : '';\n const cls =\n base +\n this.variantClasses() +\n ' ' +\n this.sizeClasses() +\n ' ' +\n this.positionClasses() +\n ' ' +\n dotShape +\n ' ' +\n this.badgeKlass();\n\n return cls.trim();\n });\n}\n","<div [class]=\"rootKlass()\">\n <span [class]=\"hostKlass()\">\n <ng-content />\n\n @if (shouldShow()) {\n <span\n [class]=\"badgeClasses()\"\n [attr.aria-label]=\"computedAriaLabel() || null\"\n aria-hidden=\"true\"\n >\n @if (!dot()) {\n {{ displayValue() }}\n }\n </span>\n }\n </span>\n</div>\n","import type { TngButtonSize, TngButtonVariant } from './button.types';\n\nconst base =\n 'inline-flex items-center justify-center gap-2 font-medium select-none ' +\n 'transition-colors ' +\n 'focus-visible:outline-none ' +\n 'focus-visible:ring-2 focus-visible:ring-primary ' +\n 'focus-visible:ring-offset-2 focus-visible:ring-offset-background ' +\n 'disabled:opacity-50 disabled:pointer-events-none';\n\nconst sizes: Record<TngButtonSize, string> = {\n sm: 'h-8 px-3 text-sm rounded',\n md: 'h-10 px-4 text-sm rounded-md',\n lg: 'h-12 px-5 text-base rounded-lg',\n};\n\nconst variants: Record<TngButtonVariant, string> = {\n solid:\n 'bg-primary text-on-primary hover:bg-primary-hover',\n\n outline:\n 'border border-border text-fg bg-bg ' +\n 'hover:bg-alternate-background',\n\n ghost:\n 'text-fg hover:bg-alternate-background',\n};\n\nexport const buttonClasses = (\n variant: TngButtonVariant,\n size: TngButtonSize,\n opts?: { block?: boolean }\n) =>\n [\n base,\n sizes[size],\n variants[variant],\n opts?.block ? 'w-full' : '',\n ]\n .filter(Boolean)\n .join(' ');\n","import { computed, input } from \"@angular/core\";\n\nimport { Component } from \"@angular/core\";\nimport { TngButtonSize, TngButtonVariant } from \"./button.types\";\nimport { buttonClasses } from \"./button.variants\";\n\n@Component({\n selector: 'tng-button',\n standalone: true,\n templateUrl: './button.component.html',\n})\nexport class TngButton {\n variant = input<TngButtonVariant>('solid');\n size = input<TngButtonSize>('md');\n disabled = input(false);\n loading = input(false);\n block = input(false);\n\n type = input<'button' | 'submit' | 'reset'>('button');\n ariaLabel = input<string>('');\n pressed = input<boolean | null>(null);\n\n klass = input<string>('');\n\n readonly isDisabled = computed(() => this.disabled() || this.loading());\n\n readonly classes = computed(() =>\n `${buttonClasses(this.variant(), this.size(), {\n block: this.block(),\n })} ${this.klass()}`.trim()\n );\n \n spinnerKlass = input<string>(\n 'h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent'\n );\n \n}\n","<button\n [attr.type]=\"type()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-disabled]=\"isDisabled() ? true : null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-pressed]=\"pressed() !== null ? pressed() : null\"\n [attr.aria-busy]=\"loading() ? true : null\"\n [class]=\"classes()\"\n>\n @if (loading()) {\n <span [class]=\"spinnerKlass()\"></span>\n } @else {\n <ng-content />\n }\n</button>\n","import { Component, computed, input } from '@angular/core';\nimport { booleanAttribute, numberAttribute } from '@angular/core';\n\nexport type TngProgressMode = 'determinate' | 'indeterminate';\n\n@Component({\n selector: 'tng-progress-bar',\n standalone: true,\n templateUrl: './progress-bar.component.html',\n styleUrl: './progress-bar.component.css',\n})\nexport class TngProgressBar {\n /* =====================\n * Inputs\n * ===================== */\n\n /** determinate | indeterminate */\n mode = input<TngProgressMode>('determinate');\n\n /** Progress value (0–max) */\n value = input(0, { transform: numberAttribute });\n\n /** Max value (default 100) */\n max = input(100, { transform: numberAttribute });\n\n /** Disable animation (useful for reduced motion) */\n disableAnimation = input(false, { transform: booleanAttribute });\n\n /* =====================\n * Klass hooks (theming)\n * ===================== */\n\n /** Root wrapper */\n rootKlass = input<string>('w-full');\n\n /** Track (background) */\n trackKlass = input<string>('bg-border');\n\n /** Bar (foreground) */\n barKlass = input<string>('bg-primary');\n\n /** Height utility (Tailwind) */\n heightKlass = input<string>('h-1');\n\n /* =====================\n * Computed\n * ===================== */\n\n readonly percentage = computed(() => {\n const v = this.value();\n const m = this.max();\n if (m <= 0) return 0;\n return Math.min(100, Math.max(0, (v / m) * 100));\n });\n\n readonly barStyle = computed(() => {\n if (this.mode() === 'indeterminate') return {};\n return { width: `${this.percentage()}%` };\n });\n}\n","<div [class]=\"rootKlass()\">\n <div\n role=\"progressbar\"\n class=\"relative w-full overflow-hidden rounded-full\"\n [class]=\"trackKlass() + ' ' + heightKlass()\"\n [attr.aria-valuemin]=\"mode() === 'determinate' ? 0 : null\"\n [attr.aria-valuemax]=\"mode() === 'determinate' ? max() : null\"\n [attr.aria-valuenow]=\"mode() === 'determinate' ? value() : null\"\n >\n <!-- Determinate -->\n @if (mode() === 'determinate') {\n <div\n class=\"h-full rounded-full transition-[width] duration-300 ease-out\"\n [class]=\"barKlass()\"\n [style.width.%]=\"percentage()\"\n ></div>\n }\n\n <!-- Indeterminate -->\n @if (mode() === 'indeterminate') {\n <div\n class=\"absolute inset-y-0 left-0 w-1/3 rounded-full\"\n [class]=\"\n barKlass() +\n ' ' +\n (disableAnimation() ? '' : 'tng-progress-indeterminate')\n \"\n ></div>\n }\n </div>\n</div>\n","import { Component, computed, input } from '@angular/core';\nimport { numberAttribute } from '@angular/core';\n\nexport type TngSpinnerMode = 'indeterminate' | 'determinate';\n\n@Component({\n selector: 'tng-progress-spinner',\n standalone: true,\n templateUrl: './progress-spinner.component.html',\n styleUrl: './progress-spinner.component.css',\n})\nexport class TngProgressSpinner {\n /* =====================\n * Inputs\n * ===================== */\n\n /** indeterminate | determinate */\n mode = input<TngSpinnerMode>('indeterminate');\n\n /** Progress value (0–max) for determinate mode */\n value = input(0, { transform: numberAttribute });\n\n /** Max value (default 100) */\n max = input(100, { transform: numberAttribute });\n\n /* =====================\n * Klass hooks (theming)\n * ===================== */\n\n /** Root wrapper */\n rootKlass = input<string>('inline-flex');\n\n /** SVG size (Tailwind-friendly: w-6 h-6, w-8 h-8, etc.) */\n sizeKlass = input<string>('w-6 h-6');\n\n /** Track (background circle) */\n trackKlass = input<string>('text-border');\n\n /** Indicator (foreground stroke) */\n indicatorKlass = input<string>('text-primary');\n\n /** Stroke width */\n strokeWidth = input(4, { transform: numberAttribute });\n\n /* =====================\n * Computed\n * ===================== */\n\n readonly radius = computed(() => 50 - this.strokeWidth() / 2);\n\n readonly circumference = computed(() => 2 * Math.PI * this.radius());\n\n readonly progressOffset = computed(() => {\n if (this.mode() === 'indeterminate') return 0;\n\n const v = this.value();\n const m = this.max();\n if (m <= 0) return this.circumference();\n\n const pct = Math.min(100, Math.max(0, (v / m) * 100));\n return this.circumference() * (1 - pct / 100);\n });\n}\n","<div\n [class]=\"rootKlass()\"\n role=\"progressbar\"\n [attr.aria-valuemin]=\"mode() === 'determinate' ? 0 : null\"\n [attr.aria-valuemax]=\"mode() === 'determinate' ? max() : null\"\n [attr.aria-valuenow]=\"mode() === 'determinate' ? value() : null\"\n>\n <svg\n viewBox=\"0 0 100 100\"\n class=\"block\"\n [class]=\"sizeKlass()\"\n >\n <!-- Track -->\n <circle\n cx=\"50\"\n cy=\"50\"\n [attr.r]=\"radius()\"\n fill=\"none\"\n stroke=\"currentColor\"\n [attr.stroke-width]=\"strokeWidth()\"\n class=\"opacity-30\"\n [class]=\"trackKlass()\"\n ></circle>\n\n <!-- Indicator -->\n <circle\n cx=\"50\"\n cy=\"50\"\n [attr.r]=\"radius()\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n [attr.stroke-width]=\"strokeWidth()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"progressOffset()\"\n [class]=\"\n indicatorKlass() +\n ' ' +\n (mode() === 'indeterminate' ? 'tng-spinner-indeterminate' : '')\n \"\n ></circle>\n </svg>\n</div>\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n Renderer2,\n NgZone,\n OnDestroy,\n input,\n} from '@angular/core';\nimport { booleanAttribute, numberAttribute } from '@angular/core';\n\n@Directive({\n selector: '[tngRipple]',\n standalone: true,\n})\nexport class TngRipple implements AfterViewInit, OnDestroy {\n rippleDisabled = input(false, { transform: booleanAttribute });\n rippleCentered = input(false, { transform: booleanAttribute });\n rippleColor = input<string>('currentColor');\n rippleDuration = input(550, { transform: numberAttribute });\n rippleOpacity = input(0.18, { transform: numberAttribute });\n\n private unlistenPointerDown: (() => void) | null = null;\n\n constructor(\n private readonly el: ElementRef<HTMLElement>,\n private readonly r: Renderer2,\n private readonly zone: NgZone,\n ) {}\n\n ngAfterViewInit(): void {\n // Ensure styles after the element is in DOM and computed styles are stable\n this.ensureHostStyles();\n\n this.zone.runOutsideAngular(() => {\n this.unlistenPointerDown = this.r.listen(\n this.el.nativeElement,\n 'pointerdown',\n (ev: PointerEvent) => this.onPointerDown(ev),\n );\n });\n }\n\n ngOnDestroy(): void {\n this.unlistenPointerDown?.();\n this.unlistenPointerDown = null;\n }\n\n private ensureHostStyles(): void {\n const host = this.el.nativeElement;\n const pos = getComputedStyle(host).position;\n\n // Force containing block for absolute children\n // If it's static/empty/unknown -> set to relative\n if (!pos || pos === 'static') {\n this.r.setStyle(host, 'position', 'relative');\n }\n\n // Clip ripple to rounded corners\n const ov = getComputedStyle(host).overflow;\n if (!ov || ov === 'visible') {\n this.r.setStyle(host, 'overflow', 'hidden');\n }\n\n // Prevent weird stacking issues (optional but helpful)\n this.r.setStyle(host, 'isolation', 'isolate');\n\n // Mobile tap highlight\n this.r.setStyle(host, '-webkit-tap-highlight-color', 'transparent');\n }\n\n private onPointerDown(ev: PointerEvent): void {\n if (this.rippleDisabled()) return;\n if (ev.button !== 0) return;\n if (ev.defaultPrevented) return;\n\n const host = this.el.nativeElement;\n if ((host as unknown as { disabled?: boolean }).disabled) return;\n\n const rect = host.getBoundingClientRect();\n const w = rect.width;\n const h = rect.height;\n if (w <= 0 || h <= 0) return;\n\n const diameter = Math.ceil(Math.sqrt(w * w + h * h));\n\n const x = this.rippleCentered() ? rect.left + w / 2 : ev.clientX;\n const y = this.rippleCentered() ? rect.top + h / 2 : ev.clientY;\n\n const left = Math.round(x - rect.left - diameter / 2);\n const top = Math.round(y - rect.top - diameter / 2);\n\n const ripple = this.r.createElement('span') as HTMLSpanElement;\n\n this.r.setStyle(ripple, 'position', 'absolute');\n this.r.setStyle(ripple, 'left', `${left}px`);\n this.r.setStyle(ripple, 'top', `${top}px`);\n this.r.setStyle(ripple, 'width', `${diameter}px`);\n this.r.setStyle(ripple, 'height', `${diameter}px`);\n this.r.setStyle(ripple, 'border-radius', '9999px');\n this.r.setStyle(ripple, 'pointer-events', 'none');\n this.r.setStyle(ripple, 'background', this.rippleColor());\n this.r.setStyle(ripple, 'opacity', String(this.rippleOpacity()));\n this.r.setStyle(ripple, 'transform', 'scale(0)');\n this.r.setStyle(ripple, 'will-change', 'transform, opacity');\n\n const duration = this.rippleDuration();\n this.r.setStyle(\n ripple,\n 'transition',\n `transform ${duration}ms ease-out, opacity ${duration}ms ease-out`,\n );\n\n this.r.appendChild(host, ripple);\n\n requestAnimationFrame(() => {\n this.r.setStyle(ripple, 'transform', 'scale(1)');\n this.r.setStyle(ripple, 'opacity', '0');\n });\n\n window.setTimeout(() => {\n try {\n this.r.removeChild(host, ripple);\n } catch {}\n }, duration + 40);\n }\n}\n","import { Component, computed, input } from '@angular/core';\nimport { booleanAttribute } from '@angular/core';\n\nexport type TngSkeletonVariant = 'text' | 'circular' | 'rectangular';\n\n@Component({\n selector: 'tng-skeleton',\n standalone: true,\n templateUrl: './skeleton.component.html',\n styleUrl: './skeleton.component.css',\n})\nexport class TngSkeleton {\n /* =====================\n * Inputs\n * ===================== */\n\n variant = input<TngSkeletonVariant>('text');\n\n /**\n * Prefer widthKlass/heightKlass for Tailwind-first usage.\n * width/height are optional escape hatches for exact CSS values.\n */\n widthKlass = input<string>('w-full');\n heightKlass = input<string>('h-4');\n\n width = input<string>(''); // e.g. '240px', '60%', '12rem'\n height = input<string>(''); // e.g. '16px'\n\n /** shimmer=true => shimmer animation, else pulse */\n shimmer = input(false, { transform: booleanAttribute });\n\n /** class hook */\n klass = input<string>('');\n\n /* =====================\n * Computed\n * ===================== */\n\n readonly shapeClasses = computed(() => {\n switch (this.variant()) {\n case 'circular':\n return 'rounded-full';\n case 'rectangular':\n return 'rounded-md';\n case 'text':\n default:\n return 'rounded'; // looks like a text line\n }\n });\n\n readonly animationClasses = computed(() => {\n // prefer shimmer if enabled, else pulse\n return this.shimmer() ? 'tng-skeleton-shimmer' : 'animate-pulse';\n });\n\n /**\n * Tailng theming: no hardcoded colors.\n * Default uses border-ish token; consumers override via klass.\n */\n readonly classes = computed(() => {\n const base = 'relative overflow-hidden bg-slate-200/70 dark:bg-slate-700/40';\n\n return [\n base,\n this.animationClasses(),\n this.shapeClasses(),\n this.widthKlass(),\n this.heightKlass(),\n this.klass(),\n ]\n .map((s) => s.trim())\n .filter(Boolean)\n .join(' ');\n });\n\n readonly styleWidth = computed(() => (this.width().trim() ? this.width().trim() : null));\n readonly styleHeight = computed(() => (this.height().trim() ? this.height().trim() : null));\n}\n","<div\n [class]=\"classes()\"\n [style.width]=\"styleWidth()\"\n [style.height]=\"styleHeight()\"\n aria-hidden=\"true\"\n></div>\n","import { Component, computed, input } from '@angular/core';\n\ntype TagColor = 'default' | 'primary' | 'success' | 'danger';\n\n@Component({\n selector: 'tng-tag',\n standalone: true,\n templateUrl: './tag.component.html',\n})\nexport class TngTag {\n label = input<string | null>('Text');\n disabled = input<boolean>(false);\n\n color = input<TagColor>('default');\n\n containerKlass = computed(() => {\n const base = 'flex items-center rounded-md px-3 py-1 text-xs font-bold';\n\n const disabledClass = this.disabled() ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer';\n\n const colorMap: Record<TagColor, string> = {\n default: 'bg-gray-100 text-gray-800 hover:bg-gray-200',\n primary: 'bg-blue-100 text-blue-800 hover:bg-blue-200',\n success: 'bg-green-100 text-green-800 hover:bg-green-200',\n danger: 'bg-red-100 text-red-800 hover:bg-red-200',\n };\n\n return `${base} ${colorMap[this.color()]} ${disabledClass}`;\n });\n}\n","<span [class]=\"containerKlass()\">\n {{ label() }}\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}