@weeehaoooz/talos-ui 0.1.0 → 0.1.2
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/fesm2022/{weeehaoooz-talos-ui-button-button-group.mjs → weeehaoooz-talos-ui-button.mjs} +115 -18
- package/fesm2022/weeehaoooz-talos-ui-button.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs +3110 -0
- package/fesm2022/weeehaoooz-talos-ui-data-display.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs +2414 -0
- package/fesm2022/weeehaoooz-talos-ui-data-viz.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs +1039 -0
- package/fesm2022/weeehaoooz-talos-ui-dropdown.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs +2885 -0
- package/fesm2022/weeehaoooz-talos-ui-feedback.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs +10799 -0
- package/fesm2022/weeehaoooz-talos-ui-form.mjs.map +1 -0
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs +1320 -11
- package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs +119 -72
- package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui.mjs +22190 -15213
- package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
- package/package.json +20 -135
- package/styles/_breadcrumb.scss +16 -0
- package/styles/_button-group.scss +156 -7
- package/styles/_buttons.scss +156 -8
- package/styles/_dropdown.scss +438 -0
- package/styles/_form-controls.scss +13 -0
- package/styles/_progress-bar.scss +43 -0
- package/styles/_skeleton.scss +176 -0
- package/styles/_spinner.scss +58 -0
- package/styles/_variables.scss +37 -0
- package/styles/index.scss +6 -1
- package/types/weeehaoooz-talos-ui-button.d.ts +92 -0
- package/types/weeehaoooz-talos-ui-button.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts +1018 -0
- package/types/weeehaoooz-talos-ui-data-display.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts +839 -0
- package/types/weeehaoooz-talos-ui-data-viz.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts +187 -0
- package/types/weeehaoooz-talos-ui-dropdown.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts +1495 -0
- package/types/weeehaoooz-talos-ui-feedback.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-form.d.ts +2639 -0
- package/types/weeehaoooz-talos-ui-form.d.ts.map +1 -0
- package/types/weeehaoooz-talos-ui-layout.d.ts +851 -3
- package/types/weeehaoooz-talos-ui-layout.d.ts.map +1 -1
- package/types/weeehaoooz-talos-ui-nav.d.ts +36 -10
- package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -1
- package/types/weeehaoooz-talos-ui.d.ts +6949 -4137
- package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +0 -93
- package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs +0 -233
- package/fesm2022/weeehaoooz-talos-ui-data-display-badge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs +0 -361
- package/fesm2022/weeehaoooz-talos-ui-data-display-status-tag.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs +0 -312
- package/fesm2022/weeehaoooz-talos-ui-data-display-timeline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs +0 -235
- package/fesm2022/weeehaoooz-talos-ui-data-display-trend-indicator.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs +0 -462
- package/fesm2022/weeehaoooz-talos-ui-data-viz-category-bar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs +0 -805
- package/fesm2022/weeehaoooz-talos-ui-data-viz-heatmap.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs +0 -267
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-donut.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs +0 -351
- package/fesm2022/weeehaoooz-talos-ui-data-viz-mini-gauge.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs +0 -566
- package/fesm2022/weeehaoooz-talos-ui-data-viz-sparkline.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs +0 -534
- package/fesm2022/weeehaoooz-talos-ui-feedback-alert.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs +0 -446
- package/fesm2022/weeehaoooz-talos-ui-feedback-dialog.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs +0 -376
- package/fesm2022/weeehaoooz-talos-ui-feedback-snackbar.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-feedback-tooltip.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs +0 -242
- package/fesm2022/weeehaoooz-talos-ui-form-affix.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs +0 -514
- package/fesm2022/weeehaoooz-talos-ui-form-autocomplete.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs +0 -548
- package/fesm2022/weeehaoooz-talos-ui-form-checkbox.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs +0 -692
- package/fesm2022/weeehaoooz-talos-ui-form-chips.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs +0 -761
- package/fesm2022/weeehaoooz-talos-ui-form-color-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-date-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs +0 -872
- package/fesm2022/weeehaoooz-talos-ui-form-date-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs +0 -119
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs +0 -135
- package/fesm2022/weeehaoooz-talos-ui-form-date-time-range-picker.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs +0 -666
- package/fesm2022/weeehaoooz-talos-ui-form-drop-zone.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs +0 -147
- package/fesm2022/weeehaoooz-talos-ui-form-form-field.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs +0 -33
- package/fesm2022/weeehaoooz-talos-ui-form-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs +0 -455
- package/fesm2022/weeehaoooz-talos-ui-form-otp.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs +0 -379
- package/fesm2022/weeehaoooz-talos-ui-form-password-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs +0 -297
- package/fesm2022/weeehaoooz-talos-ui-form-radio.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +0 -661
- package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +0 -346
- package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs +0 -896
- package/fesm2022/weeehaoooz-talos-ui-form-select-input.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs +0 -252
- package/fesm2022/weeehaoooz-talos-ui-form-slide-toggle.mjs.map +0 -1
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs +0 -916
- package/fesm2022/weeehaoooz-talos-ui-form-transfer-list.mjs.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts +0 -59
- package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-button-button.d.ts +0 -38
- package/types/weeehaoooz-talos-ui-button-button.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts +0 -119
- package/types/weeehaoooz-talos-ui-data-display-badge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts +0 -135
- package/types/weeehaoooz-talos-ui-data-display-status-tag.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-data-display-timeline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts +0 -83
- package/types/weeehaoooz-talos-ui-data-display-trend-indicator.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts +0 -255
- package/types/weeehaoooz-talos-ui-data-viz-category-bar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts +0 -204
- package/types/weeehaoooz-talos-ui-data-viz-heatmap.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts +0 -101
- package/types/weeehaoooz-talos-ui-data-viz-mini-donut.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-data-viz-mini-gauge.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts +0 -161
- package/types/weeehaoooz-talos-ui-data-viz-sparkline.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts +0 -212
- package/types/weeehaoooz-talos-ui-feedback-alert.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts +0 -259
- package/types/weeehaoooz-talos-ui-feedback-dialog.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts +0 -147
- package/types/weeehaoooz-talos-ui-feedback-snackbar.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts +0 -32
- package/types/weeehaoooz-talos-ui-feedback-tooltip.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-affix.d.ts +0 -88
- package/types/weeehaoooz-talos-ui-form-affix.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts +0 -113
- package/types/weeehaoooz-talos-ui-form-autocomplete.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts +0 -165
- package/types/weeehaoooz-talos-ui-form-checkbox.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-chips.d.ts +0 -152
- package/types/weeehaoooz-talos-ui-form-chips.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts +0 -144
- package/types/weeehaoooz-talos-ui-form-color-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts +0 -138
- package/types/weeehaoooz-talos-ui-form-date-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts +0 -148
- package/types/weeehaoooz-talos-ui-form-date-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts +0 -44
- package/types/weeehaoooz-talos-ui-form-date-time-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts +0 -48
- package/types/weeehaoooz-talos-ui-form-date-time-range-picker.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts +0 -227
- package/types/weeehaoooz-talos-ui-form-drop-zone.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts +0 -42
- package/types/weeehaoooz-talos-ui-form-form-field.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-input.d.ts +0 -15
- package/types/weeehaoooz-talos-ui-form-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-otp.d.ts +0 -111
- package/types/weeehaoooz-talos-ui-form-otp.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts +0 -145
- package/types/weeehaoooz-talos-ui-form-password-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-radio.d.ts +0 -84
- package/types/weeehaoooz-talos-ui-form-radio.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts +0 -181
- package/types/weeehaoooz-talos-ui-form-range-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-rating.d.ts +0 -110
- package/types/weeehaoooz-talos-ui-form-rating.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts +0 -195
- package/types/weeehaoooz-talos-ui-form-select-input.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts +0 -79
- package/types/weeehaoooz-talos-ui-form-slide-toggle.d.ts.map +0 -1
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts +0 -192
- package/types/weeehaoooz-talos-ui-form-transfer-list.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weeehaoooz-talos-ui-form-color-picker.mjs","sources":["../../../projects/talos-ui/form/color-picker/color-picker.types.ts","../../../projects/talos-ui/form/color-picker/color-picker.component.ts","../../../projects/talos-ui/form/color-picker/color-picker.component.html","../../../projects/talos-ui/form/color-picker/color-picker.module.ts","../../../projects/talos-ui/form/color-picker/weeehaoooz-talos-ui-form-color-picker.ts"],"sourcesContent":["import { HslaColor, HsvaColor, RgbaColor, ColorFormat } from '@weeehaoooz/talos-ui/core';\n\nexport type ColorPickerSize = 'sm' | 'md' | 'lg';\n\nexport interface ColorPresetGroup {\n label: string;\n colors: string[];\n}\n\nexport type ColorPresetItem = string | ColorPresetGroup;\n\nexport interface ColorChangeEvent {\n /** The formatted string representation according to the current format */\n value: string;\n /** Normalized HEX string (with alpha if applicable) */\n hex: string;\n /** RGBA representation */\n rgba: RgbaColor;\n /** HSLA representation */\n hsla: HslaColor;\n /** HSVA representation */\n hsva: HsvaColor;\n}\n\nexport const DEFAULT_COLOR_PRESETS: ColorPresetGroup[] = [\n {\n label: 'Talos Brand',\n colors: [\n '#3b82f6', // Blue\n '#6366f1', // Indigo\n '#8b5cf6', // Violet\n '#ec4899', // Pink\n '#f43f5e', // Rose\n '#ef4444', // Red\n '#f97316', // Orange\n '#eab308', // Yellow\n '#10b981', // Emerald\n '#06b6d4', // Cyan\n '#64748b', // Slate\n '#0f172a' // Dark\n ]\n },\n {\n label: 'Pastel & Muted',\n colors: [\n '#93c5fd', // Light Blue\n '#a5b4fc', // Light Indigo\n '#c4b5fd', // Light Violet\n '#f9a8d4', // Light Pink\n '#fda4af', // Light Rose\n '#fca5a5', // Light Red\n '#fdba74', // Light Orange\n '#fde047', // Light Yellow\n '#6ee7b7', // Light Emerald\n '#67e8f9', // Light Cyan\n '#cbd5e1', // Light Slate\n '#ffffff' // Pure White\n ]\n }\n];\n","import {\n Component,\n ElementRef,\n ViewChild,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n output,\n signal\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { OverlayModule, CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ColorPresetGroup,\n ColorPresetItem,\n ColorPickerSize,\n ColorChangeEvent,\n DEFAULT_COLOR_PRESETS\n} from './color-picker.types';\nimport {\n ColorFormat,\n HsvaColor,\n RgbaColor,\n clamp,\n formatColor,\n hexToRgb,\n hslToRgb,\n hsvToRgb,\n isLightColor,\n parseColor,\n rgbToHex,\n rgbToHsl,\n rgbToHsv,\n round\n} from '@weeehaoooz/talos-ui/core';\n\nlet uniqueColorPickerIdCounter = 0;\n\n@Component({\n selector: 'talos-color-picker',\n imports: [OverlayModule, CdkConnectedOverlay, CdkOverlayOrigin, FormsModule, NgTemplateOutlet],\n templateUrl: './color-picker.component.html',\n styleUrl: './color-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TalosColorPickerComponent),\n multi: true\n }\n ],\n host: {\n 'class': 'talos-color-picker-host',\n '[class.is-open]': 'isOpen()',\n '[class.is-inline]': 'inline()',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[class.is-readonly]': 'readonly()',\n '[class.has-label]': '!!label()',\n '[class.is-floating]': 'floatingLabel()',\n '[class.is-floated]': 'isFloated()',\n '[class.color-picker-sm]': 'size() === \"sm\"',\n '[class.color-picker-md]': 'size() === \"md\"',\n '[class.color-picker-lg]': 'size() === \"lg\"'\n }\n})\nexport class TalosColorPickerComponent implements ControlValueAccessor {\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n // Signal Inputs\n readonly value = input<string>('#3b82f6');\n readonly format = input<ColorFormat>('hex');\n readonly showAlpha = input<boolean>(true);\n readonly presets = input<ColorPresetItem[]>(DEFAULT_COLOR_PRESETS);\n readonly showPresets = input<boolean>(true);\n readonly showRecent = input<boolean>(true);\n readonly showEyeDropper = input<boolean>(true);\n readonly showInputs = input<boolean>(true);\n readonly showFormatSwitcher = input<boolean>(true);\n readonly inline = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly label = input<string>('');\n readonly placeholder = input<string>('Select color');\n readonly size = input<ColorPickerSize>('md');\n readonly clearable = input<boolean>(false);\n readonly floatingLabel = input<boolean>(false);\n readonly id = input<string>('');\n\n // Signal Outputs\n readonly colorChange = output<string>();\n readonly colorDetailsChange = output<ColorChangeEvent>();\n readonly formatChange = output<ColorFormat>();\n readonly opened = output<void>();\n readonly closed = output<void>();\n readonly cleared = output<void>();\n\n // View Children\n @ViewChild('satValCanvas') satValCanvas?: ElementRef<HTMLDivElement>;\n @ViewChild('hueTrack') hueTrack?: ElementRef<HTMLDivElement>;\n @ViewChild('alphaTrack') alphaTrack?: ElementRef<HTMLDivElement>;\n @ViewChild('triggerBtn') triggerBtn?: ElementRef<HTMLButtonElement>;\n @ViewChild('triggerInput') triggerInput?: ElementRef<HTMLInputElement>;\n\n // Component IDs\n private readonly autoId = `talos-color-picker-${uniqueColorPickerIdCounter++}`;\n readonly componentId = computed(() => this.id() || this.autoId);\n readonly inputId = computed(() => `${this.componentId()}-input`);\n\n // ControlValueAccessor internal state\n readonly formControlDisabled = signal<boolean>(false);\n readonly effectiveDisabled = computed(() => this.disabled() || this.formControlDisabled());\n\n // Reactive State\n readonly isOpen = signal<boolean>(false);\n readonly isInputFocused = signal<boolean>(false);\n readonly manualInputValue = signal<string>('');\n readonly currentHsva = signal<HsvaColor>({ h: 217, s: 76, v: 96, a: 1 });\n readonly currentFormat = signal<ColorFormat>('hex');\n readonly recentColors = signal<string[]>([]);\n readonly copied = signal<boolean>(false);\n\n // Input editing temporary state\n readonly inputHex = signal<string>('#3b82f6');\n readonly inputR = signal<number>(59);\n readonly inputG = signal<number>(130);\n readonly inputB = signal<number>(246);\n readonly inputA = signal<number>(100);\n readonly inputH = signal<number>(217);\n readonly inputS = signal<number>(91);\n readonly inputL = signal<number>(60);\n\n // Dragging interaction state\n private isDraggingSatVal = false;\n private isDraggingHue = false;\n private isDraggingAlpha = false;\n\n // Overlay positions\n readonly overlayPositions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 6\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -6\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 6\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -6\n }\n ];\n\n // Derived Color representations\n readonly currentRgba = computed<RgbaColor>(() => hsvToRgb(this.currentHsva()));\n readonly currentHsla = computed(() => rgbToHsl(this.currentRgba()));\n readonly currentHex = computed(() => rgbToHex(this.currentRgba(), this.showAlpha()));\n readonly pureHueHex = computed(() => rgbToHex(hsvToRgb({ h: this.currentHsva().h, s: 100, v: 100, a: 1 }), false));\n readonly isLight = computed(() => isLightColor(this.currentRgba()));\n readonly isFloated = computed(() => !!this.formattedColor() || this.isOpen() || this.isInputFocused());\n\n readonly formattedColor = computed(() => {\n return formatColor(this.currentRgba(), this.currentFormat(), this.showAlpha());\n });\n\n readonly rgbaString = computed(() => {\n const rgba = this.currentRgba();\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;\n });\n\n readonly hasEyeDropper = computed(() => {\n return typeof window !== 'undefined' && 'EyeDropper' in window;\n });\n\n // Normalized preset palettes\n readonly normalizedPresets = computed<ColorPresetGroup[]>(() => {\n const raw = this.presets();\n if (!raw || raw.length === 0) return [];\n\n const groups: ColorPresetGroup[] = [];\n let standardGroup: string[] = [];\n\n for (const item of raw) {\n if (typeof item === 'string') {\n standardGroup.push(item);\n } else if (item && typeof item === 'object' && Array.isArray(item.colors)) {\n if (standardGroup.length > 0) {\n groups.push({ label: 'Palette', colors: standardGroup });\n standardGroup = [];\n }\n groups.push(item);\n }\n }\n\n if (standardGroup.length > 0) {\n groups.push({ label: 'Palette', colors: standardGroup });\n }\n\n return groups;\n });\n\n // ControlValueAccessor Callbacks\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n constructor() {\n // Sync initial format\n effect(() => {\n this.currentFormat.set(this.format());\n });\n\n // Sync input value if provided\n effect(() => {\n const val = this.value();\n if (val) {\n this.setColorFromExternal(val, false);\n }\n });\n\n // Keep editing input fields in sync with current color\n effect(() => {\n const rgba = this.currentRgba();\n const hsla = this.currentHsla();\n const hex = this.currentHex();\n\n this.inputHex.set(hex);\n this.inputR.set(rgba.r);\n this.inputG.set(rgba.g);\n this.inputB.set(rgba.b);\n this.inputA.set(Math.round(rgba.a * 100));\n this.inputH.set(Math.round(hsla.h));\n this.inputS.set(Math.round(hsla.s));\n this.inputL.set(Math.round(hsla.l));\n });\n }\n\n // --- ControlValueAccessor Methods ---\n writeValue(value: string | null): void {\n if (value) {\n this.setColorFromExternal(value, false);\n }\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.formControlDisabled.set(isDisabled);\n }\n\n // --- External and Internal Color Updates ---\n private setColorFromExternal(colorStr: string, emit: boolean = true): void {\n const parsed = parseColor(colorStr);\n if (!parsed) return;\n\n const hsva = rgbToHsv(parsed);\n this.currentHsva.set(hsva);\n\n if (emit) {\n this.notifyColorChange();\n }\n }\n\n private updateHsva(newHsva: Partial<HsvaColor>, emit: boolean = true): void {\n this.currentHsva.update(current => {\n const updated: HsvaColor = {\n h: newHsva.h !== undefined ? (newHsva.h % 360 + 360) % 360 : current.h,\n s: newHsva.s !== undefined ? clamp(newHsva.s, 0, 100) : current.s,\n v: newHsva.v !== undefined ? clamp(newHsva.v, 0, 100) : current.v,\n a: newHsva.a !== undefined ? clamp(newHsva.a, 0, 1) : current.a\n };\n return updated;\n });\n\n if (emit) {\n this.notifyColorChange();\n }\n }\n\n private notifyColorChange(): void {\n const formatted = this.formattedColor();\n const hex = this.currentHex();\n const rgba = this.currentRgba();\n const hsla = this.currentHsla();\n const hsva = this.currentHsva();\n\n this.onChange(formatted);\n this.colorChange.emit(formatted);\n this.colorDetailsChange.emit({\n value: formatted,\n hex,\n rgba,\n hsla,\n hsva\n });\n }\n\n // --- Dropdown Management ---\n toggleDropdown(event?: Event): void {\n if (event) event.stopPropagation();\n if (this.effectiveDisabled() || this.readonly() || this.inline()) return;\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open(): void {\n if (this.effectiveDisabled() || this.readonly() || this.isOpen() || this.inline()) return;\n this.isOpen.set(true);\n this.opened.emit();\n }\n\n close(): void {\n if (!this.isOpen() || this.inline()) return;\n this.isOpen.set(false);\n this.onTouched();\n this.recordRecentColor(this.formattedColor());\n this.closed.emit();\n }\n\n onDocumentClick(event: MouseEvent): void {\n if (this.inline() || !this.isOpen()) return;\n\n const target = event.target as HTMLElement;\n if (!this.elementRef.nativeElement.contains(target)) {\n this.close();\n }\n }\n\n clear(event?: MouseEvent): void {\n if (event) event.stopPropagation();\n if (this.effectiveDisabled() || this.readonly()) return;\n\n this.manualInputValue.set('');\n this.currentHsva.set({ h: 217, s: 76, v: 96, a: 1 });\n this.onChange('');\n this.cleared.emit();\n this.colorChange.emit('');\n }\n\n // --- Trigger Input Handlers ---\n onTriggerFocus(): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n this.isInputFocused.set(true);\n this.manualInputValue.set(this.formattedColor());\n }\n\n onTriggerBlur(event: FocusEvent): void {\n this.isInputFocused.set(false);\n const target = event.target as HTMLInputElement;\n const val = target.value.trim();\n if (val) {\n const parsed = parseColor(val);\n if (parsed) {\n const hsva = rgbToHsv(parsed);\n this.currentHsva.set(hsva);\n this.notifyColorChange();\n } else {\n target.value = this.formattedColor();\n }\n } else if (this.clearable()) {\n this.clear();\n } else {\n target.value = this.formattedColor();\n }\n this.onTouched();\n }\n\n onTriggerInput(event: Event): void {\n const target = event.target as HTMLInputElement;\n const val = target.value;\n this.manualInputValue.set(val);\n\n const trimmed = val.trim();\n if (trimmed) {\n const parsed = parseColor(trimmed);\n if (parsed) {\n const hsva = rgbToHsv(parsed);\n this.currentHsva.set(hsva);\n this.notifyColorChange();\n }\n }\n }\n\n onTriggerEnter(event: Event): void {\n const target = event.target as HTMLInputElement;\n target.blur();\n }\n\n // --- Saturation & Value 2D Canvas Handlers ---\n onSatValMouseDown(event: MouseEvent): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n event.preventDefault();\n this.isDraggingSatVal = true;\n this.updateSatValFromCoord(event.clientX, event.clientY);\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n if (this.isDraggingSatVal) {\n this.updateSatValFromCoord(moveEvent.clientX, moveEvent.clientY);\n }\n };\n\n const onMouseUp = () => {\n this.isDraggingSatVal = false;\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n };\n\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n }\n\n onSatValTouchStart(event: TouchEvent): void {\n if (this.effectiveDisabled() || this.readonly() || !event.touches[0]) return;\n this.isDraggingSatVal = true;\n this.updateSatValFromCoord(event.touches[0].clientX, event.touches[0].clientY);\n\n const onTouchMove = (moveEvent: TouchEvent) => {\n if (this.isDraggingSatVal && moveEvent.touches[0]) {\n this.updateSatValFromCoord(moveEvent.touches[0].clientX, moveEvent.touches[0].clientY);\n }\n };\n\n const onTouchEnd = () => {\n this.isDraggingSatVal = false;\n window.removeEventListener('touchmove', onTouchMove);\n window.removeEventListener('touchend', onTouchEnd);\n };\n\n window.addEventListener('touchmove', onTouchMove, { passive: true });\n window.addEventListener('touchend', onTouchEnd);\n }\n\n private updateSatValFromCoord(clientX: number, clientY: number): void {\n const el = this.satValCanvas?.nativeElement;\n if (!el) return;\n\n const rect = el.getBoundingClientRect();\n const x = clamp(clientX - rect.left, 0, rect.width);\n const y = clamp(clientY - rect.top, 0, rect.height);\n\n const s = round((x / rect.width) * 100, 1);\n const v = round((1 - y / rect.height) * 100, 1);\n\n this.updateHsva({ s, v });\n }\n\n onSatValKeyDown(event: KeyboardEvent): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n\n const step = event.shiftKey ? 10 : 1;\n let s = this.currentHsva().s;\n let v = this.currentHsva().v;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowLeft':\n s = clamp(s - step, 0, 100);\n handled = true;\n break;\n case 'ArrowRight':\n s = clamp(s + step, 0, 100);\n handled = true;\n break;\n case 'ArrowUp':\n v = clamp(v + step, 0, 100);\n handled = true;\n break;\n case 'ArrowDown':\n v = clamp(v - step, 0, 100);\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n this.updateHsva({ s, v });\n }\n }\n\n // --- Hue Slider Handlers ---\n onHueMouseDown(event: MouseEvent): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n event.preventDefault();\n this.isDraggingHue = true;\n this.updateHueFromCoord(event.clientX);\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n if (this.isDraggingHue) {\n this.updateHueFromCoord(moveEvent.clientX);\n }\n };\n\n const onMouseUp = () => {\n this.isDraggingHue = false;\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n };\n\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n }\n\n onHueTouchStart(event: TouchEvent): void {\n if (this.effectiveDisabled() || this.readonly() || !event.touches[0]) return;\n this.isDraggingHue = true;\n this.updateHueFromCoord(event.touches[0].clientX);\n\n const onTouchMove = (moveEvent: TouchEvent) => {\n if (this.isDraggingHue && moveEvent.touches[0]) {\n this.updateHueFromCoord(moveEvent.touches[0].clientX);\n }\n };\n\n const onTouchEnd = () => {\n this.isDraggingHue = false;\n window.removeEventListener('touchmove', onTouchMove);\n window.removeEventListener('touchend', onTouchEnd);\n };\n\n window.addEventListener('touchmove', onTouchMove, { passive: true });\n window.addEventListener('touchend', onTouchEnd);\n }\n\n private updateHueFromCoord(clientX: number): void {\n const el = this.hueTrack?.nativeElement;\n if (!el) return;\n\n const rect = el.getBoundingClientRect();\n const x = clamp(clientX - rect.left, 0, rect.width);\n const h = round((x / rect.width) * 360, 1);\n\n this.updateHsva({ h });\n }\n\n onHueKeyDown(event: KeyboardEvent): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n\n const step = event.shiftKey ? 10 : 1;\n let h = this.currentHsva().h;\n let handled = false;\n\n if (event.key === 'ArrowLeft' || event.key === 'ArrowDown') {\n h = (h - step % 360 + 360) % 360;\n handled = true;\n } else if (event.key === 'ArrowRight' || event.key === 'ArrowUp') {\n h = (h + step) % 360;\n handled = true;\n }\n\n if (handled) {\n event.preventDefault();\n this.updateHsva({ h });\n }\n }\n\n // --- Alpha Slider Handlers ---\n onAlphaMouseDown(event: MouseEvent): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n event.preventDefault();\n this.isDraggingAlpha = true;\n this.updateAlphaFromCoord(event.clientX);\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n if (this.isDraggingAlpha) {\n this.updateAlphaFromCoord(moveEvent.clientX);\n }\n };\n\n const onMouseUp = () => {\n this.isDraggingAlpha = false;\n window.removeEventListener('mousemove', onMouseMove);\n window.removeEventListener('mouseup', onMouseUp);\n };\n\n window.addEventListener('mousemove', onMouseMove);\n window.addEventListener('mouseup', onMouseUp);\n }\n\n onAlphaTouchStart(event: TouchEvent): void {\n if (this.effectiveDisabled() || this.readonly() || !event.touches[0]) return;\n this.isDraggingAlpha = true;\n this.updateAlphaFromCoord(event.touches[0].clientX);\n\n const onTouchMove = (moveEvent: TouchEvent) => {\n if (this.isDraggingAlpha && moveEvent.touches[0]) {\n this.updateAlphaFromCoord(moveEvent.touches[0].clientX);\n }\n };\n\n const onTouchEnd = () => {\n this.isDraggingAlpha = false;\n window.removeEventListener('touchmove', onTouchMove);\n window.removeEventListener('touchend', onTouchEnd);\n };\n\n window.addEventListener('touchmove', onTouchMove, { passive: true });\n window.addEventListener('touchend', onTouchEnd);\n }\n\n private updateAlphaFromCoord(clientX: number): void {\n const el = this.alphaTrack?.nativeElement;\n if (!el) return;\n\n const rect = el.getBoundingClientRect();\n const x = clamp(clientX - rect.left, 0, rect.width);\n const a = round(x / rect.width, 2);\n\n this.updateHsva({ a });\n }\n\n onAlphaKeyDown(event: KeyboardEvent): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n\n const step = event.shiftKey ? 0.1 : 0.01;\n let a = this.currentHsva().a;\n let handled = false;\n\n if (event.key === 'ArrowLeft' || event.key === 'ArrowDown') {\n a = clamp(a - step, 0, 1);\n handled = true;\n } else if (event.key === 'ArrowRight' || event.key === 'ArrowUp') {\n a = clamp(a + step, 0, 1);\n handled = true;\n }\n\n if (handled) {\n event.preventDefault();\n this.updateHsva({ a });\n }\n }\n\n // --- EyeDropper Integration ---\n async pickWithEyeDropper(): Promise<void> {\n if (this.effectiveDisabled() || this.readonly() || !this.hasEyeDropper()) return;\n\n try {\n // @ts-expect-error EyeDropper is a modern browser API\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open();\n if (result && result.sRGBHex) {\n this.setColorFromExternal(result.sRGBHex);\n }\n } catch {\n // EyeDropper cancelled or dismissed\n }\n }\n\n // --- Copy to Clipboard ---\n async copyColor(): Promise<void> {\n if (typeof navigator === 'undefined' || !navigator.clipboard) return;\n\n try {\n await navigator.clipboard.writeText(this.formattedColor());\n this.copied.set(true);\n setTimeout(() => {\n this.copied.set(false);\n }, 1800);\n } catch {\n // Copy failed\n }\n }\n\n // --- Format Switcher ---\n switchFormat(format: ColorFormat): void {\n this.currentFormat.set(format);\n this.formatChange.emit(format);\n this.notifyColorChange();\n }\n\n // --- Direct Inputs ---\n onHexInputChange(val: string): void {\n const trimmed = val.trim();\n if (hexToRgb(trimmed)) {\n this.setColorFromExternal(trimmed);\n }\n }\n\n onRgbaInputChange(): void {\n const r = clamp(this.inputR() || 0, 0, 255);\n const g = clamp(this.inputG() || 0, 0, 255);\n const b = clamp(this.inputB() || 0, 0, 255);\n const a = clamp((this.inputA() ?? 100) / 100, 0, 1);\n\n const hsva = rgbToHsv({ r, g, b, a });\n this.currentHsva.set(hsva);\n this.notifyColorChange();\n }\n\n onHslaInputChange(): void {\n const h = (this.inputH() || 0) % 360;\n const s = clamp(this.inputS() || 0, 0, 100);\n const l = clamp(this.inputL() || 0, 0, 100);\n const a = clamp((this.inputA() ?? 100) / 100, 0, 1);\n\n const rgba = hslToRgb({ h, s, l, a });\n const hsva = rgbToHsv(rgba);\n this.currentHsva.set(hsva);\n this.notifyColorChange();\n }\n\n // --- Swatch Preset Click & Recent Storage ---\n selectPreset(color: string): void {\n if (this.effectiveDisabled() || this.readonly()) return;\n this.setColorFromExternal(color);\n }\n\n private recordRecentColor(color: string): void {\n if (!this.showRecent() || !color) return;\n const currentList = this.recentColors();\n const filtered = currentList.filter(c => c.toLowerCase() !== color.toLowerCase());\n this.recentColors.set([color, ...filtered].slice(0, 8));\n }\n}\n","@if (!inline()) {\n<!-- Standard Trigger Button / Popover Mode -->\n<div class=\"talos-color-picker-wrapper\" [class.is-floating]=\"floatingLabel()\">\n @if (label() && !floatingLabel()) {\n <label [for]=\"inputId()\" class=\"talos-field-label\">{{ label() }}</label>\n }\n\n <div #triggerBtn cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" class=\"talos-color-picker-trigger\"\n [class.is-focused]=\"isOpen()\" [class.is-disabled]=\"effectiveDisabled()\"\n [attr.tabindex]=\"effectiveDisabled() ? -1 : 0\" [attr.role]=\"'button'\" [attr.aria-haspopup]=\"'dialog'\"\n [attr.aria-expanded]=\"isOpen()\" [attr.aria-label]=\"label() || placeholder()\" (click)=\"toggleDropdown()\"\n (keydown.enter)=\"toggleDropdown()\" (keydown.space)=\"toggleDropdown()\">\n\n <!-- Swatch Pill Preview -->\n <div class=\"swatch-preview-box\" role=\"button\" tabindex=\"-1\" aria-label=\"Open color palette\" (click)=\"toggleDropdown($event)\">\n <div class=\"swatch-checkerboard\"></div>\n <div class=\"swatch-fill\" [style.background-color]=\"rgbaString()\"></div>\n </div>\n\n <!-- Color Value Input Field -->\n <input\n #triggerInput\n [id]=\"inputId()\"\n type=\"text\"\n class=\"color-picker-input\"\n [value]=\"isInputFocused() ? manualInputValue() : formattedColor()\"\n [placeholder]=\"floatingLabel() && !isFloated() ? '' : placeholder()\"\n [disabled]=\"effectiveDisabled()\"\n [readonly]=\"readonly()\"\n (input)=\"onTriggerInput($event)\"\n (focus)=\"onTriggerFocus()\"\n (blur)=\"onTriggerBlur($event)\"\n (keydown.enter)=\"onTriggerEnter($event)\"\n [attr.aria-label]=\"label() || placeholder()\"\n />\n\n <!-- Clear Button -->\n @if (clearable() && formattedColor() && !effectiveDisabled() && !readonly()) {\n <button type=\"button\" class=\"clear-button\" aria-label=\"Clear color\" (click)=\"clear($event)\">\n <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n </button>\n }\n\n <!-- Dropdown Chevron Indicator -->\n <button type=\"button\" class=\"dropdown-chevron-icon\" [class.is-rotated]=\"isOpen()\"\n aria-label=\"Toggle color palette\" tabindex=\"-1\" (click)=\"toggleDropdown($event)\">\n <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n </svg>\n </button>\n\n @if (label() && floatingLabel()) {\n <label [for]=\"inputId()\" class=\"talos-floating-label\" [class.is-floated]=\"isFloated()\">{{ label() }}</label>\n }\n </div>\n\n <!-- CDK Connected Popover Overlay -->\n <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"origin\" [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\" (overlayOutsideClick)=\"close()\" (detach)=\"close()\">\n <div class=\"talos-color-picker-panel talos-popover-panel\" (click)=\"$event.stopPropagation()\">\n <ng-container *ngTemplateOutlet=\"pickerContentTpl\"></ng-container>\n </div>\n </ng-template>\n</div>\n} @else {\n<!-- Inline / Embedded Mode -->\n<div class=\"talos-color-picker-panel talos-inline-panel\">\n @if (label()) {\n <div class=\"panel-header-title\">{{ label() }}</div>\n }\n <ng-container *ngTemplateOutlet=\"pickerContentTpl\"></ng-container>\n</div>\n}\n\n<!-- Main Color Picker Content Template -->\n<ng-template #pickerContentTpl>\n <div class=\"picker-inner-container\">\n\n <!-- 1. Saturation & Value 2D Canvas -->\n <div #satValCanvas class=\"sat-val-canvas\" [style.background-color]=\"pureHueHex()\" tabindex=\"0\" role=\"slider\"\n aria-label=\"Color saturation and brightness\"\n [attr.aria-valuetext]=\"'Saturation ' + currentHsva().s + '%, Brightness ' + currentHsva().v + '%'\"\n (mousedown)=\"onSatValMouseDown($event)\" (touchstart)=\"onSatValTouchStart($event)\"\n (keydown)=\"onSatValKeyDown($event)\">\n <div class=\"sat-gradient-white\"></div>\n <div class=\"val-gradient-black\"></div>\n\n <!-- Handle Pin -->\n <div class=\"sat-val-handle\" [class.is-light-handle]=\"!isLight()\" [style.left.%]=\"currentHsva().s\"\n [style.top.%]=\"100 - currentHsva().v\" [style.background-color]=\"rgbaString()\">\n </div>\n </div>\n\n <!-- 2. Sliders & Action Bar -->\n <div class=\"sliders-action-bar\">\n <!-- Sliders Column -->\n <div class=\"sliders-column\">\n <!-- Hue Rainbow Slider Track -->\n <div #hueTrack class=\"hue-slider-track\" tabindex=\"0\" role=\"slider\" aria-label=\"Hue spectrum\" aria-valuemin=\"0\"\n aria-valuemax=\"360\" [attr.aria-valuenow]=\"currentHsva().h\" (mousedown)=\"onHueMouseDown($event)\"\n (touchstart)=\"onHueTouchStart($event)\" (keydown)=\"onHueKeyDown($event)\">\n <div class=\"slider-thumb\" [style.left.%]=\"(currentHsva().h / 360) * 100\"\n [style.background-color]=\"pureHueHex()\">\n </div>\n </div>\n\n <!-- Alpha Opacity Slider Track -->\n @if (showAlpha()) {\n <div #alphaTrack class=\"alpha-slider-track\" tabindex=\"0\" role=\"slider\" aria-label=\"Color opacity\"\n aria-valuemin=\"0\" aria-valuemax=\"1\" [attr.aria-valuenow]=\"currentHsva().a\"\n (mousedown)=\"onAlphaMouseDown($event)\" (touchstart)=\"onAlphaTouchStart($event)\"\n (keydown)=\"onAlphaKeyDown($event)\">\n <div class=\"alpha-checkerboard-bg\"></div>\n <div class=\"alpha-gradient-overlay\"\n [style.background]=\"'linear-gradient(to right, transparent, ' + pureHueHex() + ')'\">\n </div>\n <div class=\"slider-thumb\" [style.left.%]=\"currentHsva().a * 100\" [style.background-color]=\"rgbaString()\">\n </div>\n </div>\n }\n </div>\n\n <!-- Action & Preview Column -->\n <div class=\"action-preview-column\">\n <!-- Color Preview Circle -->\n <div class=\"swatch-circle-preview\" [title]=\"formattedColor()\">\n <div class=\"swatch-checkerboard\"></div>\n <div class=\"swatch-fill\" [style.background-color]=\"rgbaString()\"></div>\n </div>\n\n <!-- Quick Action Buttons -->\n <div class=\"quick-actions-row\">\n @if (showEyeDropper() && hasEyeDropper()) {\n <button type=\"button\" class=\"icon-action-button\" title=\"Pick color from screen\"\n aria-label=\"Pick color from screen\" (click)=\"pickWithEyeDropper()\">\n <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path\n d=\"m12 9-8.414 8.414A2 2 0 0 0 3 18.828v1.344a2 2 0 0 1-.586 1.414A2 2 0 0 1 3.828 21h1.344a2 2 0 0 0 1.414-.586L15 12\" />\n <path d=\"m18 9 .4.4a1 1 0 1 1-3 3l-3.8-3.8a1 1 0 1 1 3-3l.4.4 3.4-3.4a1 1 0 1 1 3 3z\" />\n <path d=\"m2 22 .414-.414\" />\n </svg>\n </button>\n }\n\n <button type=\"button\" class=\"icon-action-button\" [class.is-copied]=\"copied()\"\n [title]=\"copied() ? 'Copied to clipboard!' : 'Copy color string'\" aria-label=\"Copy color string\"\n (click)=\"copyColor()\">\n @if (copied()) {\n <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"copy-success-icon\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n } @else {\n <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect>\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path>\n </svg>\n }\n </button>\n </div>\n </div>\n </div>\n\n <!-- 3. Format Switcher & Channel Inputs -->\n @if (showInputs()) {\n <div class=\"inputs-section\">\n @if (showFormatSwitcher()) {\n <div class=\"format-tabs-bar\">\n <button type=\"button\" class=\"format-tab-btn\" [class.is-active]=\"currentFormat() === 'hex'\"\n (click)=\"switchFormat('hex')\">\n HEX\n </button>\n <button type=\"button\" class=\"format-tab-btn\" [class.is-active]=\"currentFormat() === 'rgb'\"\n (click)=\"switchFormat('rgb')\">\n RGB\n </button>\n <button type=\"button\" class=\"format-tab-btn\" [class.is-active]=\"currentFormat() === 'hsl'\"\n (click)=\"switchFormat('hsl')\">\n HSL\n </button>\n </div>\n }\n\n <!-- Channel Inputs Grid -->\n <div class=\"channel-inputs-grid\">\n @if (currentFormat() === 'hex') {\n <!-- HEX Input -->\n <div class=\"input-field-group hex-field\">\n <input type=\"text\" class=\"channel-input hex-input\" [ngModel]=\"inputHex()\"\n (ngModelChange)=\"onHexInputChange($event)\" placeholder=\"#3B82F6\" aria-label=\"Hex color value\" />\n <span class=\"field-caption\">HEX</span>\n </div>\n } @else if (currentFormat() === 'rgb') {\n <!-- RGB Inputs -->\n <div class=\"input-field-group\">\n <input type=\"number\" min=\"0\" max=\"255\" class=\"channel-input\" [(ngModel)]=\"inputR\"\n (ngModelChange)=\"onRgbaInputChange()\" aria-label=\"Red\" />\n <span class=\"field-caption\">R</span>\n </div>\n <div class=\"input-field-group\">\n <input type=\"number\" min=\"0\" max=\"255\" class=\"channel-input\" [(ngModel)]=\"inputG\"\n (ngModelChange)=\"onRgbaInputChange()\" aria-label=\"Green\" />\n <span class=\"field-caption\">G</span>\n </div>\n <div class=\"input-field-group\">\n <input type=\"number\" min=\"0\" max=\"255\" class=\"channel-input\" [(ngModel)]=\"inputB\"\n (ngModelChange)=\"onRgbaInputChange()\" aria-label=\"Blue\" />\n <span class=\"field-caption\">B</span>\n </div>\n } @else if (currentFormat() === 'hsl') {\n <!-- HSL Inputs -->\n <div class=\"input-field-group\">\n <input type=\"number\" min=\"0\" max=\"360\" class=\"channel-input\" [(ngModel)]=\"inputH\"\n (ngModelChange)=\"onHslaInputChange()\" aria-label=\"Hue\" />\n <span class=\"field-caption\">H</span>\n </div>\n <div class=\"input-field-group\">\n <input type=\"number\" min=\"0\" max=\"100\" class=\"channel-input\" [(ngModel)]=\"inputS\"\n (ngModelChange)=\"onHslaInputChange()\" aria-label=\"Saturation\" />\n <span class=\"field-caption\">S%</span>\n </div>\n <div class=\"input-field-group\">\n <input type=\"number\" min=\"0\" max=\"100\" class=\"channel-input\" [(ngModel)]=\"inputL\"\n (ngModelChange)=\"onHslaInputChange()\" aria-label=\"Lightness\" />\n <span class=\"field-caption\">L%</span>\n </div>\n }\n\n <!-- Alpha Input (Common for all non-hex or with alpha) -->\n @if (showAlpha()) {\n <div class=\"input-field-group alpha-field\">\n <input type=\"number\" min=\"0\" max=\"100\" class=\"channel-input\" [(ngModel)]=\"inputA\"\n (ngModelChange)=\"currentFormat() === 'hsl' ? onHslaInputChange() : onRgbaInputChange()\"\n aria-label=\"Opacity Percentage\" />\n <span class=\"field-caption\">A%</span>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- 4. Preset Color Swatches -->\n @if (showPresets() && normalizedPresets().length > 0) {\n <div class=\"presets-section\">\n @for (group of normalizedPresets(); track group.label) {\n @if (normalizedPresets().length > 1) {\n <div class=\"preset-group-title\">{{ group.label }}</div>\n }\n <div class=\"swatches-grid\">\n @for (color of group.colors; track color) {\n <button type=\"button\" class=\"swatch-btn\"\n [class.is-selected]=\"currentHex().toLowerCase() === color.toLowerCase()\" [style.background-color]=\"color\"\n [title]=\"color\" [attr.aria-label]=\"'Select preset color ' + color\" (click)=\"selectPreset(color)\">\n @if (currentHex().toLowerCase() === color.toLowerCase()) {\n <svg viewBox=\"0 0 24 24\" width=\"12\" height=\"12\" stroke=\"currentColor\" stroke-width=\"3\" fill=\"none\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"swatch-check-icon\">\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n }\n </button>\n }\n </div>\n }\n </div>\n }\n\n <!-- 5. Recent Colors -->\n @if (showRecent() && recentColors().length > 0) {\n <div class=\"recent-section\">\n <div class=\"recent-group-title\">Recent Colors</div>\n <div class=\"swatches-grid recent-grid\">\n @for (color of recentColors(); track color) {\n <button type=\"button\" class=\"swatch-btn\"\n [class.is-selected]=\"currentHex().toLowerCase() === color.toLowerCase()\" [style.background-color]=\"color\"\n [title]=\"color\" [attr.aria-label]=\"'Select recent color ' + color\" (click)=\"selectPreset(color)\">\n </button>\n }\n </div>\n </div>\n }\n\n </div>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { TalosColorPickerComponent } from './color-picker.component';\n\n@NgModule({\n imports: [TalosColorPickerComponent],\n exports: [TalosColorPickerComponent]\n})\nexport class TalosColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|