@3ddv/software-division-components 2.0.15 → 2.1.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.
- package/README.md +2 -0
- package/backoffice/datepicker/datepicker.component.css +262 -0
- package/fesm2022/3ddv-software-division-components-dvm-cart.mjs +18 -6
- package/fesm2022/3ddv-software-division-components-dvm-cart.mjs.map +1 -1
- package/fesm2022/3ddv-software-division-components-dvm-loader.mjs +18 -4
- package/fesm2022/3ddv-software-division-components-dvm-loader.mjs.map +1 -1
- package/fesm2022/3ddv-software-division-components-dvm-map-loader.mjs +26 -9
- package/fesm2022/3ddv-software-division-components-dvm-map-loader.mjs.map +1 -1
- package/fesm2022/3ddv-software-division-components-dvm-neighbors.mjs +2 -2
- package/fesm2022/3ddv-software-division-components-dvm-neighbors.mjs.map +1 -1
- package/fesm2022/3ddv-software-division-components-generic-dialog.mjs +173 -19
- package/fesm2022/3ddv-software-division-components-generic-dialog.mjs.map +1 -1
- package/fesm2022/3ddv-software-division-components-generic-icon.mjs +45 -19
- package/fesm2022/3ddv-software-division-components-generic-icon.mjs.map +1 -1
- package/fesm2022/3ddv-software-division-components-generic-select.mjs +4 -3
- package/fesm2022/3ddv-software-division-components-generic-select.mjs.map +1 -1
- package/fesm2022/3ddv-software-division-components.mjs +14 -8
- package/fesm2022/3ddv-software-division-components.mjs.map +1 -1
- package/generic/braintree/braintree.component.css +7 -0
- package/host-tailwind-layer.css +7 -0
- package/package.json +77 -6
- package/shared/themes/sdc.css +68 -0
- package/styles.css +1 -1
- package/types/3ddv-software-division-components-dvm-cart.d.ts +20 -3
- package/types/3ddv-software-division-components-dvm-loader.d.ts +12 -5
- package/types/3ddv-software-division-components-dvm-map-loader.d.ts +3 -3
- package/types/3ddv-software-division-components-generic-dialog.d.ts +121 -49
- package/types/3ddv-software-division-components-generic-icon.d.ts +8 -2
- package/types/3ddv-software-division-components-generic-select.d.ts +2 -1
- package/types/3ddv-software-division-components.d.ts +10 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3ddv-software-division-components-generic-icon.mjs","sources":["../../generic/icon/icon.component.ts","../../generic/icon/icon.component.html","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts","../../generic/icon/lib/ui-icon-helm/src/index.ts","../../generic/icon/public-api.ts","../../generic/icon/3ddv-software-division-components-generic-icon.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { map, Observable, shareReplay } from 'rxjs';\n\nconst iconCache = new Map<string, Observable<string>>();\n\n@Component({\n selector: 'sdc-svg-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()',\n },\n})\nexport class SvgIconComponent {\n // DI\n private readonly http = inject(HttpClient);\n private readonly cache = iconCache;\n private readonly sanitizer = inject(DomSanitizer);\n private readonly elementRef = inject(ElementRef);\n\n // INPUTS / OUTPUTS\n public readonly name = input.required<string>();\n public readonly iconFolder = input<string>();\n public readonly className = input<string>('');\n public readonly color = input<string>('currentColor');\n public readonly strokeWidth = input<number>(1);\n\n // STATE\n public readonly svgContent = signal<SafeHtml | null>(null);\n\n public constructor() {\n effect(() => {\n this.getIcon(this.name()).subscribe({\n next: svg => {\n const element = this.elementRef.nativeElement as HTMLElement;\n\n // Apply dynamic properties\n element.style.setProperty('--icon-color', this.resolveColor(this.color()));\n element.style.setProperty('--icon-stroke-width', this.strokeWidth().toString());\n\n this.svgContent.set(this.sanitizer.bypassSecurityTrustHtml(svg));\n },\n error: (error: unknown) => {\n console.error('Failed to load icon:', error);\n // Optional: set a minimal fallback SVG or clear content\n this.svgContent.set(\n this.sanitizer.bypassSecurityTrustHtml(\n `<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 8v4m0 4h.01\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"/></svg>`\n )\n );\n },\n });\n });\n }\n\n public getIcon(name: string): Observable<string> {\n if (!this.cache.has(name)) {\n const folder = this.iconFolder() ?? 'assets';\n const icon$ = this.http.get(`/${folder}/${name}.svg`, { responseType: 'text' }).pipe(\n map(svg => this.sanitizeSvg(svg)),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.cache.set(name, icon$);\n }\n\n return this.cache.get(name)!;\n }\n\n private sanitizeSvg(svg: string): string {\n return (\n svg\n // Remove any existing width/height attributes to make the SVG more flexible\n .replace(/\\swidth=\"[^\"]*\"/g, '')\n .replace(/\\sheight=\"[^\"]*\"/g, '')\n // Strip hardcoded fill/stroke so CSS variable takes effect\n .replace(/\\sfill=\"(?!none)[^\"]*\"/g, '')\n .replace(/\\sstroke=\"(?!none)[^\"]*\"/g, '')\n );\n }\n\n /**\n * Resolves the color input to a valid CSS value.\n * - Already-valid CSS values (var(), #hex, rgb(), hsl(), currentColor) pass through unchanged.\n * - A raw CSS variable name starting with \"--\" is wrapped: \"--my-var\" → \"var(--my-var)\".\n * - Any other string is treated as a design-token name and resolved via the\n * \"--color-\" prefix convention: \"accent\" → \"var(--color-accent)\".\n */\n private resolveColor(color: string): string {\n const passThroughPrefixes = ['currentColor', 'var(', '#', 'rgb(', 'rgba(', 'hsl(', 'hsla('];\n\n if (passThroughPrefixes.some(prefix => color.startsWith(prefix))) {\n return color;\n }\n\n if (color.startsWith('--')) {\n return `var(${color})`;\n }\n\n return `var(--color-${color})`;\n }\n}\n","@if (svgContent(); as content) {\n <span class=\"inline-block app-svg-icon\" [innerHTML]=\"content\"></span>\n}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { IconSize } from './hlm-icon';\n\nexport interface HlmIconConfig {\n size: IconSize;\n}\n\nconst defaultConfig: HlmIconConfig = {\n size: 'base',\n};\n\nconst HlmIconConfigToken = new InjectionToken<HlmIconConfig>('HlmIconConfig');\n\nexport function provideHlmIconConfig(config: Partial<HlmIconConfig>): ValueProvider {\n return { provide: HlmIconConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmIconConfig(): HlmIconConfig {\n return inject(HlmIconConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { injectHlmIconConfig } from './hlm-icon.token';\n\nexport type IconSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | 'none' | (Record<never, never> & string);\n\n@Directive({\n selector: 'ng-icon[hlm]',\n standalone: true,\n host: {\n '[style.--ng-icon__size]': '_computedSize()',\n },\n})\nexport class HlmIcon {\n private readonly _config = injectHlmIconConfig();\n public readonly size = input<IconSize>(this._config.size);\n public readonly variant = input<'light' | 'dark'>('light');\n\n protected readonly _computedSize = computed(() => {\n const size = this.size();\n\n switch (size) {\n case 'xs':\n return '12px';\n case 'sm':\n return '16px';\n case 'base':\n return '24px';\n case 'lg':\n return '32px';\n case 'xl':\n return '48px';\n default: {\n return size;\n }\n }\n });\n}\n","import { NgModule } from '@angular/core';\nimport { HlmIcon } from './lib/hlm-icon';\n\nexport * from './lib/hlm-icon';\nexport * from './lib/hlm-icon.token';\n\n@NgModule({\n imports: [HlmIcon],\n exports: [HlmIcon],\n})\nexport class HlmIconModule {}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './icon.component';\nexport { HlmIcon, HlmIconModule } from './lib/ui-icon-helm/src';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"3ddv-software-division-components-generic-icon.mjs","sources":["../../generic/icon/icon.component.ts","../../generic/icon/icon.component.html","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.token.ts","../../generic/icon/lib/ui-icon-helm/src/lib/hlm-icon.ts","../../generic/icon/lib/ui-icon-helm/src/index.ts","../../generic/icon/public-api.ts","../../generic/icon/3ddv-software-division-components-generic-icon.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from '@angular/common/http';\nimport {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { map, Observable, shareReplay } from 'rxjs';\n\n/** Bumped when fetch strategy changes so we do not reuse errored `shareReplay` streams. */\nconst ICON_CACHE_SCHEME = 'http-backend-v1';\n\nconst iconCache = new Map<string, Observable<string>>();\n\n@Component({\n selector: 'sdc-svg-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.css',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'className()',\n },\n})\nexport class SvgIconComponent {\n // DI — use HttpClient(HttpBackend) so static SVG fetches skip app interceptors\n private readonly httpPlain = new HttpClient(inject(HttpBackend));\n private readonly cache = iconCache;\n private readonly sanitizer = inject(DomSanitizer);\n private readonly elementRef = inject(ElementRef);\n\n // INPUTS / OUTPUTS\n public readonly name = input.required<string>();\n public readonly iconFolder = input<string>();\n public readonly className = input<string>('');\n public readonly color = input<string>('currentColor');\n /** Use `> 0` when the asset relies on stroke */\n public readonly strokeWidth = input<number>(0);\n\n // STATE\n public readonly svgContent = signal<SafeHtml | null>(null);\n\n public constructor() {\n effect(() => {\n this.syncHostPaintVars();\n });\n\n effect(() => {\n this.getIcon().subscribe({\n next: svg => {\n this.svgContent.set(this.sanitizer.bypassSecurityTrustHtml(svg));\n },\n error: (error: unknown) => {\n console.error('Failed to load icon:', error);\n // Optional: set a minimal fallback SVG or clear content\n this.svgContent.set(\n this.sanitizer.bypassSecurityTrustHtml(\n `<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 8v4m0 4h.01\"\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"/></svg>`\n )\n );\n },\n });\n });\n }\n\n private syncHostPaintVars(): void {\n const element = this.elementRef.nativeElement as HTMLElement;\n element.style.setProperty('--icon-color', this.resolveColor(this.color()));\n const sw = this.strokeWidth();\n if (sw > 0) {\n element.classList.add('sdc-svg-icon--stroke');\n element.style.setProperty('--icon-stroke-width', String(sw));\n } else {\n element.classList.remove('sdc-svg-icon--stroke');\n element.style.removeProperty('--icon-stroke-width');\n }\n }\n\n /**\n * Cache key must include folder: the same `name` can exist under different paths\n * (e.g. `assets/x.svg` vs `assets/img/x.svg`). Caching by name alone poisoned later loads.\n */\n public getIcon(): Observable<string> {\n const folder: string = this.iconFolder() ?? 'assets';\n const iconName: string = this.name();\n const cacheKey: string = `${ICON_CACHE_SCHEME}:${folder}/${iconName}`;\n\n if (!this.cache.has(cacheKey)) {\n const icon$: Observable<string> = this.httpPlain.get(`/${folder}/${iconName}.svg`, { responseType: 'text' }).pipe(\n map((svg: string) => this.sanitizeSvg(svg)),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.cache.set(cacheKey, icon$);\n }\n\n return this.cache.get(cacheKey)!;\n }\n\n private sanitizeSvg(svg: string): string {\n let out = svg\n // Remove any existing width/height attributes to make the SVG more flexible\n .replace(/\\swidth=\"[^\"]*\"/g, '')\n .replace(/\\sheight=\"[^\"]*\"/g, '')\n // Strip hardcoded fill/stroke so CSS variable takes effect\n .replace(/\\sfill=\"(?!none)[^\"]*\"/g, '')\n .replace(/\\sstroke=\"(?!none)[^\"]*\"/g, '');\n\n // Avoid clipping stroke/paint at the root when assets are tight to viewBox\n if (!/\\soverflow\\s*=/i.test(out)) {\n out = out.replace(/<svg\\b/i, '<svg overflow=\"visible\" ');\n }\n\n return out;\n }\n\n /**\n * Resolves the color input to a valid CSS value.\n * - Already-valid CSS values (var(), #hex, rgb(), hsl(), currentColor) pass through unchanged.\n * - A raw CSS variable name starting with \"--\" is wrapped: \"--my-var\" → \"var(--my-var)\".\n * - Any other string is treated as a design-token name and resolved via the\n * \"--color-\" prefix convention: \"accent\" → \"var(--color-accent)\".\n */\n private resolveColor(color: string): string {\n const passThroughPrefixes = ['currentColor', 'var(', '#', 'rgb(', 'rgba(', 'hsl(', 'hsla('];\n\n if (passThroughPrefixes.some(prefix => color.startsWith(prefix))) {\n return color;\n }\n\n if (color.startsWith('--')) {\n return `var(${color})`;\n }\n\n return `var(--color-${color})`;\n }\n}\n","@if (svgContent(); as content) {\n <span class=\"sdc-svg-icon\" [innerHTML]=\"content\"></span>\n}\n","import { InjectionToken, ValueProvider, inject } from '@angular/core';\nimport type { IconSize } from './hlm-icon';\n\nexport interface HlmIconConfig {\n size: IconSize;\n}\n\nconst defaultConfig: HlmIconConfig = {\n size: 'base',\n};\n\nconst HlmIconConfigToken = new InjectionToken<HlmIconConfig>('HlmIconConfig');\n\nexport function provideHlmIconConfig(config: Partial<HlmIconConfig>): ValueProvider {\n return { provide: HlmIconConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmIconConfig(): HlmIconConfig {\n return inject(HlmIconConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { Directive, computed, input } from '@angular/core';\nimport { injectHlmIconConfig } from './hlm-icon.token';\n\nexport type IconSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | 'none' | (Record<never, never> & string);\n\n@Directive({\n selector: 'ng-icon[hlm]',\n standalone: true,\n host: {\n '[style.--ng-icon__size]': '_computedSize()',\n },\n})\nexport class HlmIcon {\n private readonly _config = injectHlmIconConfig();\n public readonly size = input<IconSize>(this._config.size);\n public readonly variant = input<'light' | 'dark'>('light');\n\n protected readonly _computedSize = computed(() => {\n const size = this.size();\n\n switch (size) {\n case 'xs':\n return '12px';\n case 'sm':\n return '16px';\n case 'base':\n return '24px';\n case 'lg':\n return '32px';\n case 'xl':\n return '48px';\n default: {\n return size;\n }\n }\n });\n}\n","import { NgModule } from '@angular/core';\nimport { HlmIcon } from './lib/hlm-icon';\n\nexport * from './lib/hlm-icon';\nexport * from './lib/hlm-icon.token';\n\n@NgModule({\n imports: [HlmIcon],\n exports: [HlmIcon],\n})\nexport class HlmIconModule {}\n","/*\n * Public API Surface of software-division-components\n */\n\nexport * from './icon.component';\nexport { HlmIcon, HlmIconModule } from './lib/ui-icon-helm/src';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -334,6 +334,7 @@ class SelectComponent {
|
|
|
334
334
|
options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
335
335
|
fullWidth = input(false, ...(ngDevMode ? [{ debugName: "fullWidth" }] : []));
|
|
336
336
|
defaultValue = input(...(ngDevMode ? [undefined, { debugName: "defaultValue" }] : []));
|
|
337
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
|
|
337
338
|
valueChange = output();
|
|
338
339
|
get variantClasses() {
|
|
339
340
|
if (this.variant() === 'dark')
|
|
@@ -343,12 +344,12 @@ class SelectComponent {
|
|
|
343
344
|
return 'bg-white text-black';
|
|
344
345
|
}
|
|
345
346
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
346
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: SelectComponent, isStandalone: true, selector: "sdc-select", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<hlm-select\n class=\"select-root\"\n [value]=\"defaultValue()?.value\"\n [placeholder]=\"placeholder()\"\n (valueChange)=\"valueChange.emit($event)\">\n <hlm-select-trigger\n class=\"select-trigger select-trigger--sm\"\n size=\"sm\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-trigger\n class=\"select-trigger select-trigger--lg\"\n size=\"default\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-content [class]=\"fullWidth() ? 'full-width' : ''\" [variant]=\"variant()\" [ngClass]=\"variantClasses\">\n @for (option of options(); track idx + option.label; let idx = $index) {\n <hlm-option [variant]=\"variant()\" [ngClass]=\"variantClasses\" [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n </hlm-select-content>\n</hlm-select>\n", styles: [".select-root{display:inline-block;width:100%}.select-trigger{display:flex;justify-content:space-between;align-items:center;border-radius:25px!important;outline:none;width:100%;overflow:hidden;color:#fff;font-size:.75rem;text-align:center;white-space:nowrap;text-overflow:ellipsis}.select-trigger:focus,.select-trigger:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent, var(--ring-accent, #0ea5e9))}.select-trigger--sm{display:flex}.select-trigger--lg{display:none}@media(min-width:1024px){.select-trigger--sm{display:none;font-weight:500;font-size:.875rem}.select-trigger--lg{display:flex;font-weight:500;font-size:.875rem}}.select-trigger.select-variant-glass{background:transparent!important;border-color:#ffffff0a!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:inset 0 1px #ffffff8c,inset 1px 0 #ffffff2e,inset -1px 0 #ffffff0a,inset 0 -1px #ffffff0f;transition:background .2s ease,box-shadow .2s ease}.select-trigger.select-variant-glass:hover{background:transparent!important;box-shadow:inset 0 1px #ffffffb3,inset 1px 0 #ffffff40,inset -1px 0 #ffffff0f,inset 0 -1px #ffffff14}.full-width{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.BrnSelect, selector: "brn-select, hlm-select", inputs: ["id", "multiple", "placeholder", "disabled", "dir", "closeDelay", "open", "value", "compareWith"], outputs: ["openChange", "valueChange"] }, { kind: "component", type: i1.BrnSelectContent, selector: "brn-select-content, hlm-select-content:not(noHlm)" }, { kind: "component", type: i1.BrnSelectValue, selector: "brn-select-value, hlm-select-value", inputs: ["transformFn"] }, { kind: "directive", type: HlmSelectContent, selector: "[hlmSelectContent], hlm-select-content", inputs: ["class", "stickyLabels", "variant"] }, { kind: "component", type: HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "variant", "size"] }, { kind: "component", type: HlmSelectOption, selector: "hlm-option", inputs: ["class", "variant"] }, { kind: "directive", type: HlmSelectValue, selector: "hlm-select-value,[hlmSelectValue], brn-select-value[hlm]", inputs: ["class"] }, { kind: "directive", type: HlmSelect, selector: "hlm-select, brn-select [hlm]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
347
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.4", type: SelectComponent, isStandalone: true, selector: "sdc-select", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<hlm-select\n class=\"select-root\"\n [disabled]=\"disabled()\"\n [value]=\"defaultValue()?.value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (valueChange)=\"valueChange.emit($event)\">\n <hlm-select-trigger\n class=\"select-trigger select-trigger--sm\"\n size=\"sm\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-trigger\n class=\"select-trigger select-trigger--lg\"\n size=\"default\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-content [class]=\"fullWidth() ? 'full-width' : ''\" [variant]=\"variant()\" [ngClass]=\"variantClasses\">\n @for (option of options(); track idx + option.label; let idx = $index) {\n <hlm-option [variant]=\"variant()\" [ngClass]=\"variantClasses\" [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n </hlm-select-content>\n</hlm-select>\n", styles: [".select-root{display:inline-block;width:100%}.select-trigger{display:flex;justify-content:space-between;align-items:center;border-radius:25px!important;outline:none;width:100%;overflow:hidden;color:#fff;font-size:.75rem;text-align:center;white-space:nowrap;text-overflow:ellipsis}.select-trigger:focus,.select-trigger:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent, var(--ring-accent, #0ea5e9))}.select-trigger--sm{display:flex}.select-trigger--lg{display:none}@media(min-width:1024px){.select-trigger--sm{display:none;font-weight:500;font-size:.875rem}.select-trigger--lg{display:flex;font-weight:500;font-size:.875rem}}.select-trigger.select-variant-glass{background:transparent!important;border-color:#ffffff0a!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:inset 0 1px #ffffff8c,inset 1px 0 #ffffff2e,inset -1px 0 #ffffff0a,inset 0 -1px #ffffff0f;transition:background .2s ease,box-shadow .2s ease}.select-trigger.select-variant-glass:hover{background:transparent!important;box-shadow:inset 0 1px #ffffffb3,inset 1px 0 #ffffff40,inset -1px 0 #ffffff0f,inset 0 -1px #ffffff14}.full-width{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1.BrnSelect, selector: "brn-select, hlm-select", inputs: ["id", "multiple", "placeholder", "disabled", "dir", "closeDelay", "open", "value", "compareWith"], outputs: ["openChange", "valueChange"] }, { kind: "component", type: i1.BrnSelectContent, selector: "brn-select-content, hlm-select-content:not(noHlm)" }, { kind: "component", type: i1.BrnSelectValue, selector: "brn-select-value, hlm-select-value", inputs: ["transformFn"] }, { kind: "directive", type: HlmSelectContent, selector: "[hlmSelectContent], hlm-select-content", inputs: ["class", "stickyLabels", "variant"] }, { kind: "component", type: HlmSelectTrigger, selector: "hlm-select-trigger", inputs: ["class", "variant", "size"] }, { kind: "component", type: HlmSelectOption, selector: "hlm-option", inputs: ["class", "variant"] }, { kind: "directive", type: HlmSelectValue, selector: "hlm-select-value,[hlmSelectValue], brn-select-value[hlm]", inputs: ["class"] }, { kind: "directive", type: HlmSelect, selector: "hlm-select, brn-select [hlm]", inputs: ["class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
347
348
|
}
|
|
348
349
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.4", ngImport: i0, type: SelectComponent, decorators: [{
|
|
349
350
|
type: Component,
|
|
350
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'sdc-select', imports: [CommonModule, BrnSelectImports, HlmSelectImports], template: "<hlm-select\n class=\"select-root\"\n [value]=\"defaultValue()?.value\"\n [placeholder]=\"placeholder()\"\n (valueChange)=\"valueChange.emit($event)\">\n <hlm-select-trigger\n class=\"select-trigger select-trigger--sm\"\n size=\"sm\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-trigger\n class=\"select-trigger select-trigger--lg\"\n size=\"default\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-content [class]=\"fullWidth() ? 'full-width' : ''\" [variant]=\"variant()\" [ngClass]=\"variantClasses\">\n @for (option of options(); track idx + option.label; let idx = $index) {\n <hlm-option [variant]=\"variant()\" [ngClass]=\"variantClasses\" [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n </hlm-select-content>\n</hlm-select>\n", styles: [".select-root{display:inline-block;width:100%}.select-trigger{display:flex;justify-content:space-between;align-items:center;border-radius:25px!important;outline:none;width:100%;overflow:hidden;color:#fff;font-size:.75rem;text-align:center;white-space:nowrap;text-overflow:ellipsis}.select-trigger:focus,.select-trigger:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent, var(--ring-accent, #0ea5e9))}.select-trigger--sm{display:flex}.select-trigger--lg{display:none}@media(min-width:1024px){.select-trigger--sm{display:none;font-weight:500;font-size:.875rem}.select-trigger--lg{display:flex;font-weight:500;font-size:.875rem}}.select-trigger.select-variant-glass{background:transparent!important;border-color:#ffffff0a!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:inset 0 1px #ffffff8c,inset 1px 0 #ffffff2e,inset -1px 0 #ffffff0a,inset 0 -1px #ffffff0f;transition:background .2s ease,box-shadow .2s ease}.select-trigger.select-variant-glass:hover{background:transparent!important;box-shadow:inset 0 1px #ffffffb3,inset 1px 0 #ffffff40,inset -1px 0 #ffffff0f,inset 0 -1px #ffffff14}.full-width{width:100%}\n"] }]
|
|
351
|
-
}], propDecorators: { placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
|
|
351
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'sdc-select', imports: [CommonModule, BrnSelectImports, HlmSelectImports], template: "<hlm-select\n class=\"select-root\"\n [disabled]=\"disabled()\"\n [value]=\"defaultValue()?.value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (valueChange)=\"valueChange.emit($event)\">\n <hlm-select-trigger\n class=\"select-trigger select-trigger--sm\"\n size=\"sm\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-trigger\n class=\"select-trigger select-trigger--lg\"\n size=\"default\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-content [class]=\"fullWidth() ? 'full-width' : ''\" [variant]=\"variant()\" [ngClass]=\"variantClasses\">\n @for (option of options(); track idx + option.label; let idx = $index) {\n <hlm-option [variant]=\"variant()\" [ngClass]=\"variantClasses\" [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n </hlm-select-content>\n</hlm-select>\n", styles: [".select-root{display:inline-block;width:100%}.select-trigger{display:flex;justify-content:space-between;align-items:center;border-radius:25px!important;outline:none;width:100%;overflow:hidden;color:#fff;font-size:.75rem;text-align:center;white-space:nowrap;text-overflow:ellipsis}.select-trigger:focus,.select-trigger:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent, var(--ring-accent, #0ea5e9))}.select-trigger--sm{display:flex}.select-trigger--lg{display:none}@media(min-width:1024px){.select-trigger--sm{display:none;font-weight:500;font-size:.875rem}.select-trigger--lg{display:flex;font-weight:500;font-size:.875rem}}.select-trigger.select-variant-glass{background:transparent!important;border-color:#ffffff0a!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:inset 0 1px #ffffff8c,inset 1px 0 #ffffff2e,inset -1px 0 #ffffff0a,inset 0 -1px #ffffff0f;transition:background .2s ease,box-shadow .2s ease}.select-trigger.select-variant-glass:hover{background:transparent!important;box-shadow:inset 0 1px #ffffffb3,inset 1px 0 #ffffff40,inset -1px 0 #ffffff0f,inset 0 -1px #ffffff14}.full-width{width:100%}\n"] }]
|
|
352
|
+
}], propDecorators: { placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: true }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
|
|
352
353
|
|
|
353
354
|
/**
|
|
354
355
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3ddv-software-division-components-generic-select.mjs","sources":["../../generic/select/lib/hlm-select.ts","../../generic/select/lib/hlm-select-content.ts","../../generic/select/lib/hlm-select-group.ts","../../generic/select/lib/hlm-select-label.ts","../../generic/select/lib/hlm-select-option.ts","../../generic/select/lib/hlm-select-scroll-down.ts","../../generic/select/lib/hlm-select-scroll-up.ts","../../generic/select/lib/hlm-select-trigger.ts","../../generic/select/lib/hlm-select-value.ts","../../generic/select/lib/index.ts","../../generic/select/select.component.ts","../../generic/select/select.component.html","../../generic/select/3ddv-software-division-components-generic-select.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-select, brn-select [hlm]',\n\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelect {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(this.userClass()));\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { hlm, injectExposedSideProvider, injectExposesStateProvider } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmSelectContent], hlm-select-content',\n host: {\n '[class]': '_computedClass()',\n '[attr.data-state]': '_stateProvider?.state() ?? \"open\"',\n '[attr.data-side]': '_sideProvider?.side() ?? \"bottom\"',\n '[style.background]': 'variant() === \"glass\" ? \"rgba(90, 90, 115, 0.25)\" : null',\n '[style.backdropFilter]': 'variant() === \"glass\" ? \"blur(20px)\" : null',\n '[style.webkitBackdropFilter]': 'variant() === \"glass\" ? \"blur(20px)\" : null',\n '[style.borderColor]': 'variant() === \"glass\" ? \"rgba(255, 255, 255, 0.12)\" : null',\n '[style.color]': 'variant() === \"glass\" ? \"white\" : null',\n '[style.boxShadow]': 'variant() === \"glass\" ? \"inset 0 1px 0 rgba(255,255,255,0.55), inset 1px 0 0 rgba(255,255,255,0.18), inset -1px 0 0 rgba(255,255,255,0.04), inset 0 -1px 0 rgba(255,255,255,0.06)\" : null',\n },\n})\nexport class HlmSelectContent {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly stickyLabels = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n public readonly variant = input<'light' | 'dark' | 'glass'>('light');\n\n protected readonly _stateProvider = injectExposesStateProvider({ optional: true });\n protected readonly _sideProvider = injectExposedSideProvider({ optional: true });\n\n protected readonly _computedClass = computed(() => {\n const isGlass = this.variant() === 'glass';\n return hlm(\n 'w-full relative z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 data-[side=bottom]:top-[2px] data-[side=top]:bottom-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n isGlass ? '' : 'border-border bg-popover text-popover-foreground shadow-md',\n this.userClass()\n );\n });\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectGroup } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmSelectGroup], hlm-select-group',\n\n hostDirectives: [BrnSelectGroup],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectGroup {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(this.userClass()));\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectLabel } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\nimport { HlmSelectContent } from './hlm-select-content';\n\n@Directive({\n selector: '[hlmSelectLabel], hlm-select-label',\n\n hostDirectives: [BrnSelectLabel],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectLabel {\n private readonly _selectContent = inject(HlmSelectContent);\n private readonly _stickyLabels = computed(() => this._selectContent.stickyLabels());\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'text-muted-foreground px-2 py-1.5 text-xs',\n this._stickyLabels() ? 'sticky top-0 bg-popover block z-[2]' : '',\n this.userClass()\n )\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, HostListener, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectOption } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: BrnSelectOption, inputs: ['disabled', 'value'] }],\n providers: [provideIcons({ lucideCheck })],\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <span class=\"absolute right-2 flex size-3.5 items-center justify-center\">\n @if (this._brnSelectOption.selected()) {\n <ng-icon aria-hidden=\"true\" hlm name=\"lucideCheck\" size=\"sm\" />\n }\n </span>\n\n <ng-content />\n `,\n imports: [NgIcon, HlmIcon],\n})\nexport class HlmSelectOption {\n protected readonly _brnSelectOption = inject(BrnSelectOption, { host: true });\n private readonly _el = inject(ElementRef);\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly variant = input<'light' | 'dark' | 'glass'>('light');\n\n constructor() {\n effect(() => {\n if (this.variant() !== 'glass') return;\n this._el.nativeElement.style.background = this._brnSelectOption.selected()\n ? 'rgba(255, 255, 255, 0.12)'\n : 'transparent';\n });\n }\n\n @HostListener('mouseenter')\n protected onMouseEnter(): void {\n if (this.variant() !== 'glass') return;\n this._el.nativeElement.style.background = 'rgba(255, 255, 255, 0.18)';\n }\n\n @HostListener('mouseleave')\n protected onMouseLeave(): void {\n if (this.variant() !== 'glass') return;\n this._el.nativeElement.style.background = this._brnSelectOption.selected()\n ? 'rgba(255, 255, 255, 0.12)'\n : 'transparent';\n }\n\n protected readonly _computedClass = computed(() => {\n const isGlass = this.variant() === 'glass';\n const interactionClasses = isGlass\n ? 'text-white'\n : 'hover:bg-accent data-[active]:bg-accent data-[active]:text-white';\n return hlm(\n 'overflow-hidden text-ellipsis whitespace-nowrap [&>ng-icon]:text-white relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2',\n interactionClasses,\n this.userClass()\n );\n });\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-select-scroll-down',\n\n imports: [NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronDown })],\n host: {\n '[class]': '_computedClass()',\n },\n template: ` <ng-icon class=\"ml-2\" hlm name=\"lucideChevronDown\" size=\"sm\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectScrollDown {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('flex cursor-default items-center justify-center py-1', this.userClass())\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronUp } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-select-scroll-up',\n imports: [NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronUp })],\n host: {\n '[class]': '_computedClass()',\n },\n template: ` <ng-icon class=\"ml-2\" hlm name=\"lucideChevronUp\" size=\"sm\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectScrollUp {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('flex cursor-default items-center justify-center py-1', this.userClass())\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelect, BrnSelectTrigger } from '@spartan-ng/brain/select';\nimport { cva } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\n\nexport const selectTriggerVariants = cva(\n `border-input [&>ng-icon]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-3xl border bg-transparent px-3 py-1.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-6 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:size-4`,\n {\n variants: {\n error: {\n auto: '[&.ng-invalid.ng-touched]:text-destructive [&.ng-invalid.ng-touched]:border-destructive [&.ng-invalid.ng-touched]:focus-visible:ring-destructive/20 dark:[&.ng-invalid.ng-touched]:focus-visible:ring-destructive/40',\n true: 'text-destructive border-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n },\n },\n defaultVariants: {\n error: 'auto',\n },\n }\n);\n\n@Component({\n selector: 'hlm-select-trigger',\n imports: [BrnSelectTrigger, NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronDown })],\n styles: [`\n button.glass-btn {\n background: rgba(255, 255, 255, 0.06) !important;\n border-color: rgba(255, 255, 255, 0.04) !important;\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n color: white !important;\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 0.55),\n inset 1px 0 0 rgba(255, 255, 255, 0.18),\n inset -1px 0 0 rgba(255, 255, 255, 0.04),\n inset 0 -1px 0 rgba(255, 255, 255, 0.06) !important;\n transition: background 0.2s ease, box-shadow 0.2s ease;\n }\n button.glass-btn:hover {\n background: rgba(255, 255, 255, 0.12) !important;\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 0.7),\n inset 1px 0 0 rgba(255, 255, 255, 0.25),\n inset -1px 0 0 rgba(255, 255, 255, 0.06),\n inset 0 -1px 0 rgba(255, 255, 255, 0.08) !important;\n }\n `],\n template: `\n <button #button brnSelectTrigger hlmInput type=\"button\" [attr.data-size]=\"size()\" [class]=\"_computedClass()\">\n <ng-content />\n @if (_icon()) {\n <ng-content select=\"ng-icon\" />\n } @else {\n <ng-icon\n class=\"ml-2 flex-none\"\n hlm\n name=\"lucideChevronDown\"\n [color]=\"variant() === 'dark' || variant() === 'glass' ? 'white' : 'black'\"\n size=\"sm\" />\n }\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectTrigger {\n protected readonly _icon = contentChild(HlmIcon);\n\n protected readonly _brnSelect = inject(BrnSelect, { optional: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly variant = input<'light' | 'dark' | 'glass'>('light');\n\n public readonly size = input<'default' | 'sm'>('default');\n\n protected readonly _computedClass = computed(() =>\n hlm(\n selectTriggerVariants({ error: this._brnSelect?.errorState() }),\n this.variant() === 'glass' ? 'glass-btn' : '',\n this.userClass()\n )\n );\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-select-value,[hlmSelectValue], brn-select-value[hlm]',\n\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectValue {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n // Center text horizontally, allow truncation inside flex layouts,\n // and keep any user-provided classes.\n hlm(\n // fill available space, allow truncation\n 'flex-1 min-w-0',\n // center contents and text\n 'flex items-center justify-center text-center',\n // spacing / clipping / truncation\n 'gap-2 overflow-hidden truncate',\n this.userClass()\n )\n );\n}\n","import { NgModule } from '@angular/core';\nimport { HlmSelect } from './hlm-select';\nimport { HlmSelectContent } from './hlm-select-content';\nimport { HlmSelectGroup } from './hlm-select-group';\nimport { HlmSelectLabel } from './hlm-select-label';\nimport { HlmSelectOption } from './hlm-select-option';\nimport { HlmSelectScrollDown } from './hlm-select-scroll-down';\nimport { HlmSelectScrollUp } from './hlm-select-scroll-up';\nimport { HlmSelectTrigger } from './hlm-select-trigger';\nimport { HlmSelectValue } from './hlm-select-value';\n\nexport * from './hlm-select';\nexport * from './hlm-select-content';\nexport * from './hlm-select-group';\nexport * from './hlm-select-label';\nexport * from './hlm-select-option';\nexport * from './hlm-select-scroll-down';\nexport * from './hlm-select-scroll-up';\nexport * from './hlm-select-trigger';\nexport * from './hlm-select-value';\n\nexport const HlmSelectImports = [\n HlmSelectContent,\n HlmSelectTrigger,\n HlmSelectOption,\n HlmSelectValue,\n HlmSelect,\n HlmSelectScrollUp,\n HlmSelectScrollDown,\n HlmSelectLabel,\n HlmSelectGroup,\n] as const;\n\n@NgModule({\n imports: [...HlmSelectImports],\n exports: [...HlmSelectImports],\n})\nexport class HlmSelectModule {}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { BrnSelectImports } from '@spartan-ng/brain/select';\nimport { HlmSelectImports } from './lib';\nimport { SelectOptions } from './types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'sdc-select',\n imports: [CommonModule, BrnSelectImports, HlmSelectImports],\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.css'],\n})\nexport class SelectComponent {\n public placeholder = input('');\n public variant = input<'light' | 'dark' | 'glass'>('light');\n public options = input.required<SelectOptions[]>();\n public fullWidth = input(false);\n public defaultValue = input<SelectOptions[][number]>();\n public readonly valueChange = output<unknown>();\n\n protected get variantClasses(): string {\n if (this.variant() === 'dark') return 'bg-black text-white';\n if (this.variant() === 'glass') return 'select-variant-glass text-white';\n return 'bg-white text-black';\n }\n}\n","<hlm-select\n class=\"select-root\"\n [value]=\"defaultValue()?.value\"\n [placeholder]=\"placeholder()\"\n (valueChange)=\"valueChange.emit($event)\">\n <hlm-select-trigger\n class=\"select-trigger select-trigger--sm\"\n size=\"sm\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-trigger\n class=\"select-trigger select-trigger--lg\"\n size=\"default\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-content [class]=\"fullWidth() ? 'full-width' : ''\" [variant]=\"variant()\" [ngClass]=\"variantClasses\">\n @for (option of options(); track idx + option.label; let idx = $index) {\n <hlm-option [variant]=\"variant()\" [ngClass]=\"variantClasses\" [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n </hlm-select-content>\n</hlm-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.HlmSelectContent","i4.HlmSelectTrigger","i5.HlmSelectOption","i6.HlmSelectValue","i7.HlmSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"3ddv-software-division-components-generic-select.mjs","sources":["../../generic/select/lib/hlm-select.ts","../../generic/select/lib/hlm-select-content.ts","../../generic/select/lib/hlm-select-group.ts","../../generic/select/lib/hlm-select-label.ts","../../generic/select/lib/hlm-select-option.ts","../../generic/select/lib/hlm-select-scroll-down.ts","../../generic/select/lib/hlm-select-scroll-up.ts","../../generic/select/lib/hlm-select-trigger.ts","../../generic/select/lib/hlm-select-value.ts","../../generic/select/lib/index.ts","../../generic/select/select.component.ts","../../generic/select/select.component.html","../../generic/select/3ddv-software-division-components-generic-select.ts"],"sourcesContent":["import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-select, brn-select [hlm]',\n\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelect {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(this.userClass()));\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, input } from '@angular/core';\nimport { hlm, injectExposedSideProvider, injectExposesStateProvider } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmSelectContent], hlm-select-content',\n host: {\n '[class]': '_computedClass()',\n '[attr.data-state]': '_stateProvider?.state() ?? \"open\"',\n '[attr.data-side]': '_sideProvider?.side() ?? \"bottom\"',\n '[style.background]': 'variant() === \"glass\" ? \"rgba(90, 90, 115, 0.25)\" : null',\n '[style.backdropFilter]': 'variant() === \"glass\" ? \"blur(20px)\" : null',\n '[style.webkitBackdropFilter]': 'variant() === \"glass\" ? \"blur(20px)\" : null',\n '[style.borderColor]': 'variant() === \"glass\" ? \"rgba(255, 255, 255, 0.12)\" : null',\n '[style.color]': 'variant() === \"glass\" ? \"white\" : null',\n '[style.boxShadow]': 'variant() === \"glass\" ? \"inset 0 1px 0 rgba(255,255,255,0.55), inset 1px 0 0 rgba(255,255,255,0.18), inset -1px 0 0 rgba(255,255,255,0.04), inset 0 -1px 0 rgba(255,255,255,0.06)\" : null',\n },\n})\nexport class HlmSelectContent {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly stickyLabels = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n public readonly variant = input<'light' | 'dark' | 'glass'>('light');\n\n protected readonly _stateProvider = injectExposesStateProvider({ optional: true });\n protected readonly _sideProvider = injectExposedSideProvider({ optional: true });\n\n protected readonly _computedClass = computed(() => {\n const isGlass = this.variant() === 'glass';\n return hlm(\n 'w-full relative z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 data-[side=bottom]:top-[2px] data-[side=top]:bottom-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n isGlass ? '' : 'border-border bg-popover text-popover-foreground shadow-md',\n this.userClass()\n );\n });\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectGroup } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: '[hlmSelectGroup], hlm-select-group',\n\n hostDirectives: [BrnSelectGroup],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectGroup {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() => hlm(this.userClass()));\n}\n","import { computed, Directive, inject, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectLabel } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\nimport { HlmSelectContent } from './hlm-select-content';\n\n@Directive({\n selector: '[hlmSelectLabel], hlm-select-label',\n\n hostDirectives: [BrnSelectLabel],\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectLabel {\n private readonly _selectContent = inject(HlmSelectContent);\n private readonly _stickyLabels = computed(() => this._selectContent.stickyLabels());\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm(\n 'text-muted-foreground px-2 py-1.5 text-xs',\n this._stickyLabels() ? 'sticky top-0 bg-popover block z-[2]' : '',\n this.userClass()\n )\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, effect, ElementRef, HostListener, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelectOption } from '@spartan-ng/brain/select';\nimport type { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-option',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: BrnSelectOption, inputs: ['disabled', 'value'] }],\n providers: [provideIcons({ lucideCheck })],\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <span class=\"absolute right-2 flex size-3.5 items-center justify-center\">\n @if (this._brnSelectOption.selected()) {\n <ng-icon aria-hidden=\"true\" hlm name=\"lucideCheck\" size=\"sm\" />\n }\n </span>\n\n <ng-content />\n `,\n imports: [NgIcon, HlmIcon],\n})\nexport class HlmSelectOption {\n protected readonly _brnSelectOption = inject(BrnSelectOption, { host: true });\n private readonly _el = inject(ElementRef);\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n public readonly variant = input<'light' | 'dark' | 'glass'>('light');\n\n constructor() {\n effect(() => {\n if (this.variant() !== 'glass') return;\n this._el.nativeElement.style.background = this._brnSelectOption.selected()\n ? 'rgba(255, 255, 255, 0.12)'\n : 'transparent';\n });\n }\n\n @HostListener('mouseenter')\n protected onMouseEnter(): void {\n if (this.variant() !== 'glass') return;\n this._el.nativeElement.style.background = 'rgba(255, 255, 255, 0.18)';\n }\n\n @HostListener('mouseleave')\n protected onMouseLeave(): void {\n if (this.variant() !== 'glass') return;\n this._el.nativeElement.style.background = this._brnSelectOption.selected()\n ? 'rgba(255, 255, 255, 0.12)'\n : 'transparent';\n }\n\n protected readonly _computedClass = computed(() => {\n const isGlass = this.variant() === 'glass';\n const interactionClasses = isGlass\n ? 'text-white'\n : 'hover:bg-accent data-[active]:bg-accent data-[active]:text-white';\n return hlm(\n 'overflow-hidden text-ellipsis whitespace-nowrap [&>ng-icon]:text-white relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2',\n interactionClasses,\n this.userClass()\n );\n });\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-select-scroll-down',\n\n imports: [NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronDown })],\n host: {\n '[class]': '_computedClass()',\n },\n template: ` <ng-icon class=\"ml-2\" hlm name=\"lucideChevronDown\" size=\"sm\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectScrollDown {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('flex cursor-default items-center justify-center py-1', this.userClass())\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronUp } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { ClassValue } from 'clsx';\n\n@Component({\n selector: 'hlm-select-scroll-up',\n imports: [NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronUp })],\n host: {\n '[class]': '_computedClass()',\n },\n template: ` <ng-icon class=\"ml-2\" hlm name=\"lucideChevronUp\" size=\"sm\" /> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectScrollUp {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n hlm('flex cursor-default items-center justify-center py-1', this.userClass())\n );\n}\n","import { HlmIcon } from '@3ddv/software-division-components/generic/icon';\nimport { ChangeDetectionStrategy, Component, computed, contentChild, inject, input } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronDown } from '@ng-icons/lucide';\nimport { hlm } from '@spartan-ng/brain/core';\nimport { BrnSelect, BrnSelectTrigger } from '@spartan-ng/brain/select';\nimport { cva } from 'class-variance-authority';\nimport type { ClassValue } from 'clsx';\n\nexport const selectTriggerVariants = cva(\n `border-input [&>ng-icon]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 dark:bg-input/30 dark:hover:bg-input/50 flex w-full items-center justify-between gap-2 rounded-3xl border bg-transparent px-3 py-1.5 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-6 [&>ng-icon]:pointer-events-none [&>ng-icon]:shrink-0 [&>ng-icon]:size-4`,\n {\n variants: {\n error: {\n auto: '[&.ng-invalid.ng-touched]:text-destructive [&.ng-invalid.ng-touched]:border-destructive [&.ng-invalid.ng-touched]:focus-visible:ring-destructive/20 dark:[&.ng-invalid.ng-touched]:focus-visible:ring-destructive/40',\n true: 'text-destructive border-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40',\n },\n },\n defaultVariants: {\n error: 'auto',\n },\n }\n);\n\n@Component({\n selector: 'hlm-select-trigger',\n imports: [BrnSelectTrigger, NgIcon, HlmIcon],\n providers: [provideIcons({ lucideChevronDown })],\n styles: [`\n button.glass-btn {\n background: rgba(255, 255, 255, 0.06) !important;\n border-color: rgba(255, 255, 255, 0.04) !important;\n backdrop-filter: blur(20px);\n -webkit-backdrop-filter: blur(20px);\n color: white !important;\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 0.55),\n inset 1px 0 0 rgba(255, 255, 255, 0.18),\n inset -1px 0 0 rgba(255, 255, 255, 0.04),\n inset 0 -1px 0 rgba(255, 255, 255, 0.06) !important;\n transition: background 0.2s ease, box-shadow 0.2s ease;\n }\n button.glass-btn:hover {\n background: rgba(255, 255, 255, 0.12) !important;\n box-shadow:\n inset 0 1px 0 rgba(255, 255, 255, 0.7),\n inset 1px 0 0 rgba(255, 255, 255, 0.25),\n inset -1px 0 0 rgba(255, 255, 255, 0.06),\n inset 0 -1px 0 rgba(255, 255, 255, 0.08) !important;\n }\n `],\n template: `\n <button #button brnSelectTrigger hlmInput type=\"button\" [attr.data-size]=\"size()\" [class]=\"_computedClass()\">\n <ng-content />\n @if (_icon()) {\n <ng-content select=\"ng-icon\" />\n } @else {\n <ng-icon\n class=\"ml-2 flex-none\"\n hlm\n name=\"lucideChevronDown\"\n [color]=\"variant() === 'dark' || variant() === 'glass' ? 'white' : 'black'\"\n size=\"sm\" />\n }\n </button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HlmSelectTrigger {\n protected readonly _icon = contentChild(HlmIcon);\n\n protected readonly _brnSelect = inject(BrnSelect, { optional: true });\n\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly variant = input<'light' | 'dark' | 'glass'>('light');\n\n public readonly size = input<'default' | 'sm'>('default');\n\n protected readonly _computedClass = computed(() =>\n hlm(\n selectTriggerVariants({ error: this._brnSelect?.errorState() }),\n this.variant() === 'glass' ? 'glass-btn' : '',\n this.userClass()\n )\n );\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { hlm } from '@spartan-ng/brain/core';\nimport type { ClassValue } from 'clsx';\n\n@Directive({\n selector: 'hlm-select-value,[hlmSelectValue], brn-select-value[hlm]',\n\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class HlmSelectValue {\n public readonly userClass = input<ClassValue>('', { alias: 'class' });\n protected readonly _computedClass = computed(() =>\n // Center text horizontally, allow truncation inside flex layouts,\n // and keep any user-provided classes.\n hlm(\n // fill available space, allow truncation\n 'flex-1 min-w-0',\n // center contents and text\n 'flex items-center justify-center text-center',\n // spacing / clipping / truncation\n 'gap-2 overflow-hidden truncate',\n this.userClass()\n )\n );\n}\n","import { NgModule } from '@angular/core';\nimport { HlmSelect } from './hlm-select';\nimport { HlmSelectContent } from './hlm-select-content';\nimport { HlmSelectGroup } from './hlm-select-group';\nimport { HlmSelectLabel } from './hlm-select-label';\nimport { HlmSelectOption } from './hlm-select-option';\nimport { HlmSelectScrollDown } from './hlm-select-scroll-down';\nimport { HlmSelectScrollUp } from './hlm-select-scroll-up';\nimport { HlmSelectTrigger } from './hlm-select-trigger';\nimport { HlmSelectValue } from './hlm-select-value';\n\nexport * from './hlm-select';\nexport * from './hlm-select-content';\nexport * from './hlm-select-group';\nexport * from './hlm-select-label';\nexport * from './hlm-select-option';\nexport * from './hlm-select-scroll-down';\nexport * from './hlm-select-scroll-up';\nexport * from './hlm-select-trigger';\nexport * from './hlm-select-value';\n\nexport const HlmSelectImports = [\n HlmSelectContent,\n HlmSelectTrigger,\n HlmSelectOption,\n HlmSelectValue,\n HlmSelect,\n HlmSelectScrollUp,\n HlmSelectScrollDown,\n HlmSelectLabel,\n HlmSelectGroup,\n] as const;\n\n@NgModule({\n imports: [...HlmSelectImports],\n exports: [...HlmSelectImports],\n})\nexport class HlmSelectModule {}\n","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { BrnSelectImports } from '@spartan-ng/brain/select';\nimport { HlmSelectImports } from './lib';\nimport { SelectOptions } from './types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'sdc-select',\n imports: [CommonModule, BrnSelectImports, HlmSelectImports],\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.css'],\n})\nexport class SelectComponent {\n public placeholder = input('');\n public variant = input<'light' | 'dark' | 'glass'>('light');\n public options = input.required<SelectOptions[]>();\n public fullWidth = input(false);\n public defaultValue = input<SelectOptions[][number]>();\n public disabled = input(false, { transform: booleanAttribute });\n public readonly valueChange = output<unknown>();\n\n protected get variantClasses(): string {\n if (this.variant() === 'dark') return 'bg-black text-white';\n if (this.variant() === 'glass') return 'select-variant-glass text-white';\n return 'bg-white text-black';\n }\n}\n","<hlm-select\n class=\"select-root\"\n [disabled]=\"disabled()\"\n [value]=\"defaultValue()?.value\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n (valueChange)=\"valueChange.emit($event)\">\n <hlm-select-trigger\n class=\"select-trigger select-trigger--sm\"\n size=\"sm\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-trigger\n class=\"select-trigger select-trigger--lg\"\n size=\"default\"\n [variant]=\"variant()\"\n [ngClass]=\"variantClasses\">\n <hlm-select-value [ngClass]=\"variantClasses\" />\n </hlm-select-trigger>\n\n <hlm-select-content [class]=\"fullWidth() ? 'full-width' : ''\" [variant]=\"variant()\" [ngClass]=\"variantClasses\">\n @for (option of options(); track idx + option.label; let idx = $index) {\n <hlm-option [variant]=\"variant()\" [ngClass]=\"variantClasses\" [value]=\"option.value\">{{ option.label }}</hlm-option>\n }\n </hlm-select-content>\n</hlm-select>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.HlmSelectContent","i4.HlmSelectTrigger","i5.HlmSelectOption","i6.HlmSelectValue","i7.HlmSelect"],"mappings":"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"}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
export { ScreenObserver, applyGlobalCssVariables, provideScreenObserver, provideSdc } from '@3ddv/software-division-components/shared';
|
|
2
|
+
export { AddDigitalWalletComponent } from '@3ddv/software-division-components/generic/add-digital-wallet';
|
|
3
|
+
export { BraintreeComponent } from '@3ddv/software-division-components/generic/braintree';
|
|
4
|
+
export { ButtonComponent } from '@3ddv/software-division-components/generic/button';
|
|
5
|
+
export { SvgIconComponent } from '@3ddv/software-division-components/generic/icon';
|
|
6
|
+
export { SelectComponent } from '@3ddv/software-division-components/generic/select';
|
|
7
|
+
export { LoaderComponent } from '@3ddv/software-division-components/dvm/loader';
|
|
8
|
+
export { MapLoaderComponent } from '@3ddv/software-division-components/dvm/map-loader';
|
|
9
|
+
export { NeighborsComponent } from '@3ddv/software-division-components/dvm/neighbors';
|
|
10
|
+
export * from '@3ddv/software-division-components/dvm/popover';
|
|
2
11
|
|
|
3
12
|
/**
|
|
4
|
-
* MAIN ENTRY
|
|
13
|
+
* MAIN ENTRY (@3ddv/software-division-components)
|
|
5
14
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* - import { ... } from '@3ddv/software-division-components/backoffice/table';
|
|
11
|
-
*
|
|
12
|
-
* See libs/ticketing-598-software-division-components-npm/docs/entrypoint_strategy.md for details.
|
|
15
|
+
* Primary surface: configuration + `shared` utilities.
|
|
16
|
+
* The following re-exports keep **package-root** imports working for apps
|
|
17
|
+
* (e.g. Group Sales) that use `import { ButtonComponent } from '@3ddv/software-division-components'`.
|
|
18
|
+
* Prefer secondary entry points for new code — see `docs/entrypoint_strategy.md`.
|
|
13
19
|
*/
|
|
14
20
|
|
|
15
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3ddv-software-division-components.mjs","sources":["../../src/public-api.ts","../../src/3ddv-software-division-components.ts"],"sourcesContent":["/**\n * MAIN ENTRY
|
|
1
|
+
{"version":3,"file":"3ddv-software-division-components.mjs","sources":["../../src/public-api.ts","../../src/3ddv-software-division-components.ts"],"sourcesContent":["/**\n * MAIN ENTRY (@3ddv/software-division-components)\n *\n * Primary surface: configuration + `shared` utilities.\n * The following re-exports keep **package-root** imports working for apps\n * (e.g. Group Sales) that use `import { ButtonComponent } from '@3ddv/software-division-components'`.\n * Prefer secondary entry points for new code — see `docs/entrypoint_strategy.md`.\n */\n\nexport type * from '@3ddv/software-division-components/shared';\nexport {\n ScreenObserver,\n applyGlobalCssVariables,\n provideScreenObserver,\n provideSdc,\n type SCREENS_TOKEN,\n} from '@3ddv/software-division-components/shared';\n\n// --- Root compatibility re-exports (UI + popover) ---\n\nexport { AddDigitalWalletComponent } from '@3ddv/software-division-components/generic/add-digital-wallet';\nexport { BraintreeComponent } from '@3ddv/software-division-components/generic/braintree';\nexport { ButtonComponent } from '@3ddv/software-division-components/generic/button';\nexport { SvgIconComponent } from '@3ddv/software-division-components/generic/icon';\nexport { SelectComponent } from '@3ddv/software-division-components/generic/select';\n\nexport { LoaderComponent } from '@3ddv/software-division-components/dvm/loader';\nexport { MapLoaderComponent } from '@3ddv/software-division-components/dvm/map-loader';\nexport { NeighborsComponent } from '@3ddv/software-division-components/dvm/neighbors';\n\nexport * from '@3ddv/software-division-components/dvm/popover';\n\nexport type { CartItem, SeatGroup } from '@3ddv/software-division-components/dvm/cart';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;;;;;AAOG;;ACPH;;AAEG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* For host apps that already import `tailwindcss` (single root). Tokens + plain CSS only.
|
|
3
|
+
* Do not add the library `styles.css` as a second global stylesheet.
|
|
4
|
+
*/
|
|
5
|
+
@import './shared/themes/sdc.css';
|
|
6
|
+
@import './generic/braintree/braintree.component.css';
|
|
7
|
+
@import './backoffice/datepicker/datepicker.component.css';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@3ddv/software-division-components",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"main": "./fesm2022/3ddv-software-division-components.mjs",
|
|
5
5
|
"module": "fesm2022/3ddv-software-division-components.mjs",
|
|
6
6
|
"typings": "types/3ddv-software-division-components.d.ts",
|
|
@@ -36,6 +36,46 @@
|
|
|
36
36
|
"require": "./styles.css",
|
|
37
37
|
"default": "./styles.css"
|
|
38
38
|
},
|
|
39
|
+
"./host-tailwind-layer.css": {
|
|
40
|
+
"style": "./host-tailwind-layer.css",
|
|
41
|
+
"browser": "./host-tailwind-layer.css",
|
|
42
|
+
"sass": "./host-tailwind-layer.css",
|
|
43
|
+
"less": "./host-tailwind-layer.css",
|
|
44
|
+
"production": "./host-tailwind-layer.css",
|
|
45
|
+
"import": "./host-tailwind-layer.css",
|
|
46
|
+
"require": "./host-tailwind-layer.css",
|
|
47
|
+
"default": "./host-tailwind-layer.css"
|
|
48
|
+
},
|
|
49
|
+
"./shared/themes/sdc.css": {
|
|
50
|
+
"style": "./shared/themes/sdc.css",
|
|
51
|
+
"browser": "./shared/themes/sdc.css",
|
|
52
|
+
"sass": "./shared/themes/sdc.css",
|
|
53
|
+
"less": "./shared/themes/sdc.css",
|
|
54
|
+
"production": "./shared/themes/sdc.css",
|
|
55
|
+
"import": "./shared/themes/sdc.css",
|
|
56
|
+
"require": "./shared/themes/sdc.css",
|
|
57
|
+
"default": "./shared/themes/sdc.css"
|
|
58
|
+
},
|
|
59
|
+
"./generic/braintree/braintree.component.css": {
|
|
60
|
+
"style": "./generic/braintree/braintree.component.css",
|
|
61
|
+
"browser": "./generic/braintree/braintree.component.css",
|
|
62
|
+
"sass": "./generic/braintree/braintree.component.css",
|
|
63
|
+
"less": "./generic/braintree/braintree.component.css",
|
|
64
|
+
"production": "./generic/braintree/braintree.component.css",
|
|
65
|
+
"import": "./generic/braintree/braintree.component.css",
|
|
66
|
+
"require": "./generic/braintree/braintree.component.css",
|
|
67
|
+
"default": "./generic/braintree/braintree.component.css"
|
|
68
|
+
},
|
|
69
|
+
"./backoffice/datepicker/datepicker.component.css": {
|
|
70
|
+
"style": "./backoffice/datepicker/datepicker.component.css",
|
|
71
|
+
"browser": "./backoffice/datepicker/datepicker.component.css",
|
|
72
|
+
"sass": "./backoffice/datepicker/datepicker.component.css",
|
|
73
|
+
"less": "./backoffice/datepicker/datepicker.component.css",
|
|
74
|
+
"production": "./backoffice/datepicker/datepicker.component.css",
|
|
75
|
+
"import": "./backoffice/datepicker/datepicker.component.css",
|
|
76
|
+
"require": "./backoffice/datepicker/datepicker.component.css",
|
|
77
|
+
"default": "./backoffice/datepicker/datepicker.component.css"
|
|
78
|
+
},
|
|
39
79
|
"./*": {
|
|
40
80
|
"import": "./fesm2022/*.js",
|
|
41
81
|
"require": "./fesm2022/*.cjs"
|
|
@@ -104,6 +144,10 @@
|
|
|
104
144
|
"types": "./types/3ddv-software-division-components-generic-icon.d.ts",
|
|
105
145
|
"default": "./fesm2022/3ddv-software-division-components-generic-icon.mjs"
|
|
106
146
|
},
|
|
147
|
+
"./generic/rich-text-editor": {
|
|
148
|
+
"types": "./types/3ddv-software-division-components-generic-rich-text-editor.d.ts",
|
|
149
|
+
"default": "./fesm2022/3ddv-software-division-components-generic-rich-text-editor.mjs"
|
|
150
|
+
},
|
|
107
151
|
"./generic/carousel": {
|
|
108
152
|
"types": "./types/3ddv-software-division-components-generic-carousel.d.ts",
|
|
109
153
|
"default": "./fesm2022/3ddv-software-division-components-generic-carousel.mjs"
|
|
@@ -161,7 +205,7 @@
|
|
|
161
205
|
"url": "https://mmcbcn.atlassian.net/browse/TICKETING-908"
|
|
162
206
|
},
|
|
163
207
|
"peerDependencies": {
|
|
164
|
-
"@3ddv/dvm-internal": "^2.
|
|
208
|
+
"@3ddv/dvm-internal": "^2.8.1",
|
|
165
209
|
"@3ddv/ngx-dvm-internal": "^4.2.4",
|
|
166
210
|
"@angular/animations": "^21.0.0",
|
|
167
211
|
"@angular/cdk": "^21.0.0",
|
|
@@ -173,21 +217,34 @@
|
|
|
173
217
|
"@angular/platform-browser-dynamic": "^21.0.0",
|
|
174
218
|
"@angular/router": "^21.0.0",
|
|
175
219
|
"@floating-ui/dom": "^1.6.13",
|
|
176
|
-
"@ng-icons/core": "
|
|
177
|
-
"@ng-icons/lucide": "
|
|
220
|
+
"@ng-icons/core": ">=31.4.0",
|
|
221
|
+
"@ng-icons/lucide": ">=31.4.0",
|
|
178
222
|
"@popperjs/core": "^2.11.8",
|
|
179
223
|
"@spartan-ng/brain": "0.0.1-alpha.499",
|
|
180
224
|
"@tanstack/angular-table": "^8.21.3",
|
|
225
|
+
"@tiptap/core": "^3.1.0",
|
|
226
|
+
"@tiptap/extension-link": "^3.1.0",
|
|
227
|
+
"@tiptap/extension-placeholder": "^3.1.0",
|
|
228
|
+
"@tiptap/extension-underline": "^3.1.0",
|
|
229
|
+
"@tiptap/starter-kit": "^3.1.0",
|
|
181
230
|
"animejs": "^4.0.2",
|
|
182
231
|
"class-variance-authority": "^0.7.0",
|
|
232
|
+
"clsx": "^2.1.1",
|
|
183
233
|
"embla-carousel-angular": ">=19.0.0",
|
|
184
234
|
"rxjs": "^7.8.0",
|
|
185
|
-
"
|
|
235
|
+
"tailwindcss": "^4.1.0",
|
|
236
|
+
"zone.js": "~0.15.0 || ~0.16.0"
|
|
186
237
|
},
|
|
187
238
|
"peerDependenciesMeta": {
|
|
188
239
|
"rxjs": {
|
|
189
240
|
"optional": false
|
|
190
241
|
},
|
|
242
|
+
"@3ddv/dvm-internal": {
|
|
243
|
+
"optional": true
|
|
244
|
+
},
|
|
245
|
+
"@3ddv/ngx-dvm-internal": {
|
|
246
|
+
"optional": true
|
|
247
|
+
},
|
|
191
248
|
"animejs": {
|
|
192
249
|
"optional": true
|
|
193
250
|
},
|
|
@@ -199,11 +256,25 @@
|
|
|
199
256
|
},
|
|
200
257
|
"embla-carousel-angular": {
|
|
201
258
|
"optional": true
|
|
259
|
+
},
|
|
260
|
+
"@tiptap/core": {
|
|
261
|
+
"optional": true
|
|
262
|
+
},
|
|
263
|
+
"@tiptap/extension-link": {
|
|
264
|
+
"optional": true
|
|
265
|
+
},
|
|
266
|
+
"@tiptap/extension-placeholder": {
|
|
267
|
+
"optional": true
|
|
268
|
+
},
|
|
269
|
+
"@tiptap/extension-underline": {
|
|
270
|
+
"optional": true
|
|
271
|
+
},
|
|
272
|
+
"@tiptap/starter-kit": {
|
|
273
|
+
"optional": true
|
|
202
274
|
}
|
|
203
275
|
},
|
|
204
276
|
"sideEffects": false,
|
|
205
277
|
"dependencies": {
|
|
206
|
-
"rxjs-interop": "link:@angular/core/rxjs-interop",
|
|
207
278
|
"tslib": "^2.3.0"
|
|
208
279
|
}
|
|
209
280
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDC design tokens (spacing, radius, typography, palette).
|
|
3
|
+
* Required by `generic/button/button.component.css` and other SDC styles via `var(--space-*)`, etc.
|
|
4
|
+
*
|
|
5
|
+
* Host apps set tenant RGB triples on `:root` (e.g. `--accent-color`, `--default-color`, `--secondary-color`,
|
|
6
|
+
* `--success`) — use `rgb(var(--token, fallback))` so tokens stay valid before runtime theme injection.
|
|
7
|
+
*
|
|
8
|
+
* Spartan `hlm-tailwind-preset.css` defines `--radius-sm|md|lg|xl` from `--radius`; keep `--radius` defined here.
|
|
9
|
+
*/
|
|
10
|
+
:root {
|
|
11
|
+
/* Spartan / shadcn bridge */
|
|
12
|
+
--radius: 0.625rem;
|
|
13
|
+
--primary: rgb(var(--accent-color, 189 48 57));
|
|
14
|
+
--primary-foreground: rgb(255 255 255);
|
|
15
|
+
|
|
16
|
+
/* Spacing — matches SDC / Tailwind-like scale */
|
|
17
|
+
--space-1: 0.25rem;
|
|
18
|
+
--space-1_5: 0.375rem;
|
|
19
|
+
--space-2: 0.5rem;
|
|
20
|
+
--space-2_5: 0.625rem;
|
|
21
|
+
--space-4: 1rem;
|
|
22
|
+
--space-6: 1.5rem;
|
|
23
|
+
--space-7: 1.75rem;
|
|
24
|
+
--space-8: 2rem;
|
|
25
|
+
--space-10: 2.5rem;
|
|
26
|
+
--space-12: 3rem;
|
|
27
|
+
|
|
28
|
+
/* Extra radius semantics used by SDC (Spartan preset does not define these) */
|
|
29
|
+
--radius-default: 0.25rem;
|
|
30
|
+
--radius-2xl: 1rem;
|
|
31
|
+
--radius-full: 9999px;
|
|
32
|
+
|
|
33
|
+
/* Borders */
|
|
34
|
+
--border-0: 0px;
|
|
35
|
+
--border-default: 1px;
|
|
36
|
+
--border-2: 2px;
|
|
37
|
+
--border-4: 4px;
|
|
38
|
+
--border-8: 8px;
|
|
39
|
+
|
|
40
|
+
/* Typography tokens referenced by SDC buttons */
|
|
41
|
+
--text-xs: 0.75rem;
|
|
42
|
+
--text-sm: 0.875rem;
|
|
43
|
+
--text-base: 1rem;
|
|
44
|
+
--text-lg: 1.125rem;
|
|
45
|
+
--text-xl: 1.25rem;
|
|
46
|
+
--text-2xl: 1.5rem;
|
|
47
|
+
--font-regular: 400;
|
|
48
|
+
--font-medium: 500;
|
|
49
|
+
--font-semibold: 600;
|
|
50
|
+
--font-bold: 700;
|
|
51
|
+
|
|
52
|
+
/* Palette — align with tenant vars where possible */
|
|
53
|
+
--color-primary: rgb(var(--accent-color, 189 48 57));
|
|
54
|
+
--color-pure-white: #ffffff;
|
|
55
|
+
--color-pure-black: #000000;
|
|
56
|
+
--color-pure-gray: #6b7280;
|
|
57
|
+
--color-neutral-300: #d1d5db;
|
|
58
|
+
--color-neutral-700: #374151;
|
|
59
|
+
--color-outline: #e5e7eb;
|
|
60
|
+
--color-secondary: rgb(var(--secondary-color, 25 149 255));
|
|
61
|
+
--color-accent: rgb(var(--accent-color, 189 48 57));
|
|
62
|
+
--color-alternative: #7c3aed;
|
|
63
|
+
--color-success: rgb(var(--success, 86 163 67));
|
|
64
|
+
--color-warning: #f59e0b;
|
|
65
|
+
--color-danger: #ef4444;
|
|
66
|
+
--3ddv-blue-button-background: #005a9c;
|
|
67
|
+
--3ddv-blue-text: #ffffff;
|
|
68
|
+
}
|