@kksdev/ds-angular 1.5.0 → 1.6.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/index.d.ts CHANGED
@@ -5847,6 +5847,269 @@ declare class DsCalendar {
5847
5847
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsCalendar, "ds-calendar", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "events": { "alias": "events"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "disabledDate": { "alias": "disabledDate"; "required": false; "isSignal": true; }; }, { "dateSelect": "dateSelect"; "monthChange": "monthChange"; "modeChange": "modeChange"; "eventClick": "eventClick"; }, never, never, true, never>;
5848
5848
  }
5849
5849
 
5850
+ type InputNumberSize = 'sm' | 'md' | 'lg';
5851
+ type InputNumberControlsPosition = 'both' | 'right';
5852
+ declare class DsInputNumber implements ControlValueAccessor {
5853
+ min: _angular_core.InputSignal<number>;
5854
+ max: _angular_core.InputSignal<number>;
5855
+ step: _angular_core.InputSignal<number>;
5856
+ disabled: _angular_core.InputSignal<boolean>;
5857
+ readonly: _angular_core.InputSignal<boolean>;
5858
+ required: _angular_core.InputSignal<boolean>;
5859
+ size: _angular_core.InputSignal<InputNumberSize>;
5860
+ placeholder: _angular_core.InputSignal<string>;
5861
+ prefix: _angular_core.InputSignal<string | undefined>;
5862
+ suffix: _angular_core.InputSignal<string | undefined>;
5863
+ precision: _angular_core.InputSignal<number>;
5864
+ controls: _angular_core.InputSignal<boolean>;
5865
+ controlsPosition: _angular_core.InputSignal<InputNumberControlsPosition>;
5866
+ ariaLabel: _angular_core.InputSignal<string | undefined>;
5867
+ id: _angular_core.InputSignal<string>;
5868
+ name: _angular_core.InputSignal<string | undefined>;
5869
+ valueChange: _angular_core.OutputEmitterRef<number>;
5870
+ inputElement?: ElementRef<HTMLInputElement>;
5871
+ readonly faMinus: IconDefinition$1;
5872
+ readonly faPlus: IconDefinition$1;
5873
+ private readonly disabledState;
5874
+ readonly internalValue: _angular_core.WritableSignal<number | null>;
5875
+ readonly focused: _angular_core.WritableSignal<boolean>;
5876
+ readonly displayValue: _angular_core.WritableSignal<string>;
5877
+ constructor();
5878
+ readonly isDisabled: _angular_core.Signal<boolean>;
5879
+ readonly isReadonly: _angular_core.Signal<boolean>;
5880
+ readonly showControls: _angular_core.Signal<boolean>;
5881
+ readonly controlsOnRight: _angular_core.Signal<boolean>;
5882
+ readonly controlsOnBoth: _angular_core.Signal<boolean>;
5883
+ readonly containerClasses: _angular_core.Signal<string>;
5884
+ readonly canDecrement: _angular_core.Signal<boolean>;
5885
+ readonly canIncrement: _angular_core.Signal<boolean>;
5886
+ private onChange;
5887
+ private onTouched;
5888
+ writeValue(value: number | null): void;
5889
+ registerOnChange(fn: (value: number | null) => void): void;
5890
+ registerOnTouched(fn: () => void): void;
5891
+ setDisabledState(isDisabled: boolean): void;
5892
+ private formatValue;
5893
+ private parseValue;
5894
+ private clampValue;
5895
+ private roundToPrecision;
5896
+ private emitValue;
5897
+ onInputChange(event: Event): void;
5898
+ onInputBlur(): void;
5899
+ onInputFocus(): void;
5900
+ onKeyDown(event: KeyboardEvent): void;
5901
+ increment(): void;
5902
+ decrement(): void;
5903
+ private incrementBy;
5904
+ private decrementBy;
5905
+ private setToMin;
5906
+ private setToMax;
5907
+ readonly ariaValueMin: _angular_core.Signal<number>;
5908
+ readonly ariaValueMax: _angular_core.Signal<number>;
5909
+ readonly ariaValueNow: _angular_core.Signal<number | undefined>;
5910
+ readonly ariaValueText: _angular_core.Signal<string | undefined>;
5911
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsInputNumber, never>;
5912
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsInputNumber, "ds-input-number", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "precision": { "alias": "precision"; "required": false; "isSignal": true; }; "controls": { "alias": "controls"; "required": false; "isSignal": true; }; "controlsPosition": { "alias": "controlsPosition"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
5913
+ }
5914
+
5915
+ /**
5916
+ * Option pour un segment
5917
+ */
5918
+ interface SegmentOption {
5919
+ value: string;
5920
+ label: string;
5921
+ icon?: string;
5922
+ disabled?: boolean;
5923
+ }
5924
+ /**
5925
+ * Taille du segmented control
5926
+ */
5927
+ type SegmentedControlSize = 'sm' | 'md' | 'lg';
5928
+ /**
5929
+ * Orientation du segmented control
5930
+ */
5931
+ type SegmentedControlOrientation = 'horizontal' | 'vertical';
5932
+ /**
5933
+ * Couleur du segment actif
5934
+ */
5935
+ type SegmentedControlColor = 'primary' | 'neutral';
5936
+ /**
5937
+ * DS Segmented Control
5938
+ *
5939
+ * Composant groupe de boutons mutuellement exclusifs visuellement connectés.
5940
+ * Alternative stylisée aux boutons radio pour basculer entre vues, modes ou options.
5941
+ *
5942
+ * @example
5943
+ * // Formulaire réactif
5944
+ * <ds-segmented-control
5945
+ * formControlName="view"
5946
+ * [options]="viewOptions"
5947
+ * size="md"
5948
+ * fullWidth
5949
+ * />
5950
+ *
5951
+ * @example
5952
+ * // Template-driven
5953
+ * <ds-segmented-control
5954
+ * [(ngModel)]="selectedView"
5955
+ * [options]="[
5956
+ * { value: 'list', label: 'Liste', icon: 'fas-list' },
5957
+ * { value: 'grid', label: 'Grille', icon: 'fas-grid' },
5958
+ * { value: 'map', label: 'Carte', icon: 'fas-map' }
5959
+ * ]"
5960
+ * color="neutral"
5961
+ * />
5962
+ */
5963
+ declare class DsSegmentedControl implements ControlValueAccessor {
5964
+ /**
5965
+ * Liste des options du segmented control
5966
+ */
5967
+ options: _angular_core.InputSignal<SegmentOption[]>;
5968
+ /**
5969
+ * Taille du segmented control (sm, md, lg)
5970
+ */
5971
+ size: _angular_core.InputSignal<SegmentedControlSize>;
5972
+ /**
5973
+ * État désactivé global
5974
+ */
5975
+ disabled: _angular_core.InputSignal<boolean>;
5976
+ /**
5977
+ * Prend toute la largeur du conteneur
5978
+ */
5979
+ fullWidth: _angular_core.InputSignal<boolean>;
5980
+ /**
5981
+ * Orientation (horizontal, vertical)
5982
+ */
5983
+ orientation: _angular_core.InputSignal<SegmentedControlOrientation>;
5984
+ /**
5985
+ * Couleur du segment actif (primary, neutral)
5986
+ */
5987
+ color: _angular_core.InputSignal<SegmentedControlColor>;
5988
+ private readonly disabledState;
5989
+ protected readonly internalValue: _angular_core.WritableSignal<string | null>;
5990
+ protected readonly isDisabled: _angular_core.Signal<boolean>;
5991
+ protected readonly containerClasses: _angular_core.Signal<Record<string, boolean>>;
5992
+ readonly activeIndex: _angular_core.Signal<number>;
5993
+ /**
5994
+ * Vérifie si une option est sélectionnée
5995
+ */
5996
+ protected isOptionSelected(option: SegmentOption): boolean;
5997
+ /**
5998
+ * Vérifie si une option est désactivée
5999
+ */
6000
+ protected isOptionDisabled(option: SegmentOption): boolean;
6001
+ /**
6002
+ * Classes CSS pour un segment
6003
+ */
6004
+ protected getSegmentClasses(option: SegmentOption): Record<string, boolean>;
6005
+ private onChange;
6006
+ private onTouched;
6007
+ writeValue(value: string | null): void;
6008
+ registerOnChange(fn: (value: string | null) => void): void;
6009
+ registerOnTouched(fn: () => void): void;
6010
+ setDisabledState(isDisabled: boolean): void;
6011
+ protected onSegmentClick(option: SegmentOption): void;
6012
+ protected onKeydown(event: KeyboardEvent): void;
6013
+ private findNextEnabledOption;
6014
+ private findPreviousEnabledOption;
6015
+ private focusSegment;
6016
+ protected trackByValue(_index: number, option: SegmentOption): string;
6017
+ /**
6018
+ * Parse l'icône depuis le format string vers le format FontAwesome
6019
+ * @param iconName - Nom de l'icône (ex: 'fas-list', 'list', 'fa-solid fa-list')
6020
+ * @returns Tuple [prefix, iconName] pour FontAwesome
6021
+ */
6022
+ protected parseIcon(iconName: string): [string, string];
6023
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsSegmentedControl, never>;
6024
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsSegmentedControl, "ds-segmented-control", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
6025
+ }
6026
+
6027
+ type ColorPickerSize = 'sm' | 'md' | 'lg';
6028
+ type ColorFormat = 'hex' | 'rgb' | 'hsl';
6029
+ interface RGBColor {
6030
+ r: number;
6031
+ g: number;
6032
+ b: number;
6033
+ a?: number;
6034
+ }
6035
+ interface HSLColor {
6036
+ h: number;
6037
+ s: number;
6038
+ l: number;
6039
+ a?: number;
6040
+ }
6041
+ /**
6042
+ * DsColorPicker - Composant de sélection de couleur
6043
+ *
6044
+ * @description
6045
+ * Sélecteur de couleur avec palette prédéfinie, spectre de couleurs,
6046
+ * support RGB/HSL, alpha channel optionnel, et intégration formulaires.
6047
+ *
6048
+ * @example
6049
+ * ```html
6050
+ * <ds-color-picker
6051
+ * [value]="'#3b82f6'"
6052
+ * [showAlpha]="true"
6053
+ * (colorChange)="onColorChange($event)">
6054
+ * </ds-color-picker>
6055
+ * ```
6056
+ */
6057
+ declare class DsColorPicker implements ControlValueAccessor {
6058
+ private overlay;
6059
+ private elementRef;
6060
+ readonly value: _angular_core.InputSignal<string>;
6061
+ readonly size: _angular_core.InputSignal<ColorPickerSize>;
6062
+ readonly disabled: _angular_core.InputSignal<boolean>;
6063
+ readonly showAlpha: _angular_core.InputSignal<boolean>;
6064
+ readonly presetColors: _angular_core.InputSignal<string[]>;
6065
+ readonly format: _angular_core.InputSignal<ColorFormat>;
6066
+ readonly placeholder: _angular_core.InputSignal<string>;
6067
+ readonly allowClear: _angular_core.InputSignal<boolean>;
6068
+ readonly showRecentColors: _angular_core.InputSignal<boolean>;
6069
+ readonly maxRecentColors: _angular_core.InputSignal<number>;
6070
+ readonly colorChange: _angular_core.OutputEmitterRef<string>;
6071
+ readonly pickerIcon: _fortawesome_fontawesome_common_types.IconDefinition;
6072
+ readonly clearIcon: _fortawesome_fontawesome_common_types.IconDefinition;
6073
+ readonly checkIcon: _fortawesome_fontawesome_common_types.IconDefinition;
6074
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
6075
+ readonly internalValue: _angular_core.WritableSignal<string>;
6076
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
6077
+ readonly recentColors: _angular_core.WritableSignal<string[]>;
6078
+ private overlayRef;
6079
+ readonly containerClasses: _angular_core.Signal<string>;
6080
+ readonly displayValue: _angular_core.Signal<string>;
6081
+ readonly previewColor: _angular_core.Signal<string>;
6082
+ readonly effectivePresets: _angular_core.Signal<string[]>;
6083
+ private onChange;
6084
+ private onTouched;
6085
+ constructor(overlay: Overlay, elementRef: ElementRef);
6086
+ writeValue(value: string): void;
6087
+ registerOnChange(fn: (value: string) => void): void;
6088
+ registerOnTouched(fn: () => void): void;
6089
+ setDisabledState(isDisabled: boolean): void;
6090
+ toggle(): void;
6091
+ open(): void;
6092
+ close(): void;
6093
+ onFocus(): void;
6094
+ onBlur(): void;
6095
+ clear(): void;
6096
+ onColorSelected(color: string): void;
6097
+ private updateValue;
6098
+ private createOverlay;
6099
+ private destroyOverlay;
6100
+ private addToRecentColors;
6101
+ private loadRecentColors;
6102
+ private saveRecentColors;
6103
+ private toHex;
6104
+ private toRGB;
6105
+ private toHSL;
6106
+ private hexToRGB;
6107
+ private parseRGB;
6108
+ private rgbToHSL;
6109
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsColorPicker, never>;
6110
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsColorPicker, "ds-color-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showAlpha": { "alias": "showAlpha"; "required": false; "isSignal": true; }; "presetColors": { "alias": "presetColors"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "allowClear": { "alias": "allowClear"; "required": false; "isSignal": true; }; "showRecentColors": { "alias": "showRecentColors"; "required": false; "isSignal": true; }; "maxRecentColors": { "alias": "maxRecentColors"; "required": false; "isSignal": true; }; }, { "colorChange": "colorChange"; }, never, never, true, never>;
6111
+ }
6112
+
5850
6113
  /**
5851
6114
  * Positions standard pour dropdowns (menus déroulants, select, etc.)
5852
6115
  *
@@ -6215,5 +6478,5 @@ declare class DsI18nService {
6215
6478
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<DsI18nService>;
6216
6479
  }
6217
6480
 
6218
- export { AUTOCOMPLETE_POSITIONS, BUTTON_APPEARANCE_OPTIONS, BUTTON_SIZE_OPTIONS, BUTTON_VARIANT_OPTIONS, DROPDOWN_POSITIONS, DsAccordion, DsAlert, DsAvatar, DsBadge, DsBreadcrumb, DsButton, DsCalendar, DsCard, DsCarousel, DsCheckbox, DsChip, DsCombobox, DsContainer, DsDatePicker, DsDivider, DsDrawer, DsDropdown, DsEmpty, DsFileUpload, DsI18nService, DsInputField, DsInputTextarea, DsMenu, DsModalComponent, DsNotificationContainerComponent, DsNotificationItemComponent, DsNotificationService, DsPagination, DsPasswordStrength, DsPopover, DsPopoverComponent, DsProgressBar, DsRadioGroup, DsRating, DsSearchInput, DsSelect, DsSkeleton, DsSlider, DsStepper, DsTable, DsTabs, DsTimePicker, DsTimeline, DsToastComponent, DsToastContainerComponent, DsToastService, DsToggle, DsTooltip, DsTooltipComponent, DsTransfer, DsTree, IconRegistryService, POPOVER_POSITIONS, PrimitiveBadge, PrimitiveButton, PrimitiveCheckbox, PrimitiveInput, PrimitiveRadio, PrimitiveTextarea, PrimitiveToggle, TOOLTIP_POSITIONS, buildButtonArgTypes, buildButtonArgs, createSizeRender, createVariantRender };
6219
- export type { AccordionChangeEvent, AccordionItem, AccordionSize, AccordionVariant, AlertSize, AlertType, AvatarShape, AvatarSize, BadgeAppearance, BadgeShape, BadgeSize, BadgeType, BadgeVariant, BreadcrumbItem, ButtonAppearance, ButtonSize, ButtonType, ButtonVariant, CalendarEvent, CalendarMode, CalendarSize, CardSize, CardVariant, CarouselDotsPosition, CarouselEffect, CarouselSlide, CheckboxSize, CheckboxState, ChipColor, ChipSize, ChipVariant, ContainerGutter, ContainerMaxWidth, DatePickerMode, DatePickerSize, DateRange, DividerLabelPosition, DividerOrientation, DividerSize, DividerVariant, DrawerPosition, DrawerSize, DropdownItem, DropdownItemDTO, DsComboboxOption, DsComboboxSize, DsSelectOption, DsSelectSize, DsTableColumn, DsTableSize, DsTableVariant, EmptySize, FileUploadSize, I18nLabels, InputAppearance, InputSize, InputState, InputType, MenuItem, MenuSize, MenuTrigger, NotificationAction, NotificationConfig, NotificationItem, NotificationPlacement, PageChangeEvent, PageSizeOption, PaginationSize, PasswordCriterion, PasswordStrength, PasswordStrengthSize, PopoverTrigger, ProgressBarMode, ProgressBarSize, ProgressBarVariant, RadioGroupLayout, RadioOption, RadioSize, RatingSize, SearchInputSize, SkeletonSize, SkeletonVariant, SliderOrientation, SliderSize, SliderValue, SortDirection, SortEvent, Step, StepChangeEvent, StepState, StepperOrientation, StepperSize, SupportedLocale, TabItem, TableState, TextareaAppearance, TextareaResize, TextareaSize, TextareaState, TimeFormat, TimePickerSize, TimeValue, TimelineColor, TimelineItem, TimelineItemClickEvent, TimelineMode, TimelineSize, ToastInstance, ToastOptions, ToastPosition, ToastType, ToggleSize, TransferChangeEvent, TransferDirection, TransferItem, TransferSize, TreeNode, TreeNodeCheckEvent, TreeNodeExpandEvent, TreeNodeSelectEvent, TreeSize, UploadFile };
6481
+ export { AUTOCOMPLETE_POSITIONS, BUTTON_APPEARANCE_OPTIONS, BUTTON_SIZE_OPTIONS, BUTTON_VARIANT_OPTIONS, DROPDOWN_POSITIONS, DsAccordion, DsAlert, DsAvatar, DsBadge, DsBreadcrumb, DsButton, DsCalendar, DsCard, DsCarousel, DsCheckbox, DsChip, DsColorPicker, DsCombobox, DsContainer, DsDatePicker, DsDivider, DsDrawer, DsDropdown, DsEmpty, DsFileUpload, DsI18nService, DsInputField, DsInputNumber, DsInputTextarea, DsMenu, DsModalComponent, DsNotificationContainerComponent, DsNotificationItemComponent, DsNotificationService, DsPagination, DsPasswordStrength, DsPopover, DsPopoverComponent, DsProgressBar, DsRadioGroup, DsRating, DsSearchInput, DsSegmentedControl, DsSelect, DsSkeleton, DsSlider, DsStepper, DsTable, DsTabs, DsTimePicker, DsTimeline, DsToastComponent, DsToastContainerComponent, DsToastService, DsToggle, DsTooltip, DsTooltipComponent, DsTransfer, DsTree, IconRegistryService, POPOVER_POSITIONS, PrimitiveBadge, PrimitiveButton, PrimitiveCheckbox, PrimitiveInput, PrimitiveRadio, PrimitiveTextarea, PrimitiveToggle, TOOLTIP_POSITIONS, buildButtonArgTypes, buildButtonArgs, createSizeRender, createVariantRender };
6482
+ export type { AccordionChangeEvent, AccordionItem, AccordionSize, AccordionVariant, AlertSize, AlertType, AvatarShape, AvatarSize, BadgeAppearance, BadgeShape, BadgeSize, BadgeType, BadgeVariant, BreadcrumbItem, ButtonAppearance, ButtonSize, ButtonType, ButtonVariant, CalendarEvent, CalendarMode, CalendarSize, CardSize, CardVariant, CarouselDotsPosition, CarouselEffect, CarouselSlide, CheckboxSize, CheckboxState, ChipColor, ChipSize, ChipVariant, ColorFormat, ColorPickerSize, ContainerGutter, ContainerMaxWidth, DatePickerMode, DatePickerSize, DateRange, DividerLabelPosition, DividerOrientation, DividerSize, DividerVariant, DrawerPosition, DrawerSize, DropdownItem, DropdownItemDTO, DsComboboxOption, DsComboboxSize, DsSelectOption, DsSelectSize, DsTableColumn, DsTableSize, DsTableVariant, EmptySize, FileUploadSize, HSLColor, I18nLabels, InputAppearance, InputNumberControlsPosition, InputNumberSize, InputSize, InputState, InputType, MenuItem, MenuSize, MenuTrigger, NotificationAction, NotificationConfig, NotificationItem, NotificationPlacement, PageChangeEvent, PageSizeOption, PaginationSize, PasswordCriterion, PasswordStrength, PasswordStrengthSize, PopoverTrigger, ProgressBarMode, ProgressBarSize, ProgressBarVariant, RGBColor, RadioGroupLayout, RadioOption, RadioSize, RatingSize, SearchInputSize, SegmentOption, SegmentedControlColor, SegmentedControlOrientation, SegmentedControlSize, SkeletonSize, SkeletonVariant, SliderOrientation, SliderSize, SliderValue, SortDirection, SortEvent, Step, StepChangeEvent, StepState, StepperOrientation, StepperSize, SupportedLocale, TabItem, TableState, TextareaAppearance, TextareaResize, TextareaSize, TextareaState, TimeFormat, TimePickerSize, TimeValue, TimelineColor, TimelineItem, TimelineItemClickEvent, TimelineMode, TimelineSize, ToastInstance, ToastOptions, ToastPosition, ToastType, ToggleSize, TransferChangeEvent, TransferDirection, TransferItem, TransferSize, TreeNode, TreeNodeCheckEvent, TreeNodeExpandEvent, TreeNodeSelectEvent, TreeSize, UploadFile };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kksdev/ds-angular",
3
- "version": "1.5.0",
4
- "description": "Angular 20 standalone component library - Design System with 44 components, 7 primitives, 3 themes, i18n support",
3
+ "version": "1.6.0",
4
+ "description": "Angular 20 standalone component library - Design System with 47 components, 7 primitives, 3 themes, i18n support",
5
5
  "keywords": [
6
6
  "angular",
7
7
  "angular20",
@@ -666,6 +666,26 @@
666
666
  --chip-info-hover-bg: color-mix(in oklab, var(--info) 30%, transparent);
667
667
  --chip-info-hover-bg-outlined: color-mix(in oklab, var(--info) 15%, transparent);
668
668
 
669
+ /* ==========================================================================
670
+ * SÉMANTIQUES DS SEGMENTED CONTROL
671
+ * ======================================================================== */
672
+ --segmented-bg: var(--gray-800);
673
+ --segmented-text: var(--text-default);
674
+ --segmented-border-color: var(--gray-700);
675
+ --segmented-hover-bg: color-mix(in oklab, var(--gray-100) 10%, transparent);
676
+
677
+ /* Primary color variant */
678
+ --segmented-active-bg-primary: var(--color-primary);
679
+ --segmented-active-text-primary: var(--gray-900);
680
+
681
+ /* Neutral color variant */
682
+ --segmented-active-bg-neutral: var(--gray-700);
683
+ --segmented-active-text-neutral: var(--text-default);
684
+
685
+ /* Active state (generic, deprecated) */
686
+ --segmented-active-bg: var(--segmented-active-bg-primary);
687
+ --segmented-active-text: var(--segmented-active-text-primary);
688
+
669
689
  /* ==========================================================================
670
690
  * SÉMANTIQUES DS EMPTY
671
691
  * ======================================================================== */
@@ -891,4 +911,25 @@
891
911
  --calendar-month-current-bg: color-mix(in oklab, var(--color-primary) 15%, var(--gray-800));
892
912
  --calendar-month-current-border: var(--color-primary);
893
913
  --calendar-month-current-color: var(--color-primary);
914
+
915
+ /* ==========================================================================
916
+ * SÉMANTIQUES DS COLOR PICKER
917
+ * ======================================================================== */
918
+ --colorpicker-bg: var(--gray-800);
919
+ --colorpicker-border: var(--gray-700);
920
+ --colorpicker-border-hover: var(--gray-600);
921
+ --colorpicker-text: var(--gray-100);
922
+ --colorpicker-placeholder: var(--gray-500);
923
+ --colorpicker-icon: var(--gray-400);
924
+ --colorpicker-clear-icon: var(--gray-400);
925
+ --colorpicker-preview-border: var(--gray-700);
926
+ --colorpicker-action-hover-bg: var(--gray-700);
927
+ --colorpicker-focus-shadow: color-mix(in oklab, var(--color-primary) 25%, transparent);
928
+
929
+ --colorpicker-panel-bg: var(--gray-800);
930
+ --colorpicker-panel-border: var(--gray-700);
931
+ --colorpicker-input-bg: var(--gray-750);
932
+ --colorpicker-input-border: var(--gray-700);
933
+ --colorpicker-input-text: var(--gray-100);
934
+ --colorpicker-preset-border: var(--gray-700);
894
935
  }
@@ -652,6 +652,26 @@
652
652
  /* Info */
653
653
  --chip-info-bg: var(--bg-info);
654
654
  --chip-info-text: var(--info);
655
+
656
+ /* ==========================================================================
657
+ * SÉMANTIQUES DS SEGMENTED CONTROL
658
+ * ======================================================================== */
659
+ --segmented-bg: var(--gray-100);
660
+ --segmented-text: var(--text-default);
661
+ --segmented-border-color: var(--border-subtle);
662
+ --segmented-hover-bg: color-mix(in oklab, var(--gray-900) 5%, transparent);
663
+
664
+ /* Primary color variant */
665
+ --segmented-active-bg-primary: var(--color-primary);
666
+ --segmented-active-text-primary: var(--gray-50);
667
+
668
+ /* Neutral color variant */
669
+ --segmented-active-bg-neutral: var(--surface-default);
670
+ --segmented-active-text-neutral: var(--text-default);
671
+
672
+ /* Active state (generic, deprecated) */
673
+ --segmented-active-bg: var(--segmented-active-bg-primary);
674
+ --segmented-active-text: var(--segmented-active-text-primary);
655
675
  --chip-info-border: var(--info);
656
676
  --chip-info-hover-bg: color-mix(in oklab, var(--info) 25%, transparent);
657
677
  --chip-info-hover-bg-outlined: color-mix(in oklab, var(--info) 10%, transparent);
@@ -881,4 +901,25 @@
881
901
  --calendar-month-current-bg: var(--blue-50);
882
902
  --calendar-month-current-border: var(--color-primary);
883
903
  --calendar-month-current-color: var(--color-primary);
904
+
905
+ /* ==========================================================================
906
+ * SÉMANTIQUES DS COLOR PICKER
907
+ * ======================================================================== */
908
+ --colorpicker-bg: var(--background-main);
909
+ --colorpicker-border: var(--border-default);
910
+ --colorpicker-border-hover: var(--border-strong);
911
+ --colorpicker-text: var(--text-default);
912
+ --colorpicker-placeholder: var(--text-muted);
913
+ --colorpicker-icon: var(--text-muted);
914
+ --colorpicker-clear-icon: var(--text-muted);
915
+ --colorpicker-preview-border: var(--border-default);
916
+ --colorpicker-action-hover-bg: var(--surface-hover);
917
+ --colorpicker-focus-shadow: color-mix(in oklab, var(--color-primary) 25%, transparent);
918
+
919
+ --colorpicker-panel-bg: var(--background-main);
920
+ --colorpicker-panel-border: var(--border-default);
921
+ --colorpicker-input-bg: var(--background-main);
922
+ --colorpicker-input-border: var(--border-default);
923
+ --colorpicker-input-text: var(--text-default);
924
+ --colorpicker-preset-border: var(--border-default);
884
925
  }
@@ -448,6 +448,41 @@ $datepicker-nav-size-sm: 24px;
448
448
  $datepicker-nav-size-md: 32px;
449
449
  $datepicker-nav-size-lg: 40px;
450
450
 
451
+ // === COLOR PICKER ===
452
+
453
+ $colorpicker-height-sm: 32px;
454
+ $colorpicker-height-md: 40px;
455
+ $colorpicker-height-lg: 48px;
456
+
457
+ $colorpicker-padding-sm: $space-1 $space-2;
458
+ $colorpicker-padding-md: $space-2;
459
+ $colorpicker-padding-lg: $space-3;
460
+
461
+ $colorpicker-font-size-sm: $font-size-2;
462
+ $colorpicker-font-size-md: $font-size-3;
463
+ $colorpicker-font-size-lg: $font-size-4;
464
+
465
+ $colorpicker-preview-size-sm: 20px;
466
+ $colorpicker-preview-size-md: 28px;
467
+ $colorpicker-preview-size-lg: 36px;
468
+
469
+ $colorpicker-action-size-sm: 20px;
470
+ $colorpicker-action-size-md: 24px;
471
+ $colorpicker-action-size-lg: 28px;
472
+
473
+ $colorpicker-gap: $space-2;
474
+ $colorpicker-radius: $radius-2;
475
+
476
+ $colorpicker-panel-width: 300px;
477
+ $colorpicker-panel-padding: $space-4;
478
+ $colorpicker-panel-gap: $space-3;
479
+ $colorpicker-panel-radius: $radius-2;
480
+ $colorpicker-panel-shadow: $shadow-3;
481
+
482
+ $colorpicker-spectrum-height: 180px;
483
+ $colorpicker-slider-height: 12px;
484
+ $colorpicker-preset-size: 28px;
485
+
451
486
  // === SLIDER ===
452
487
 
453
488
  $slider-track-height-sm: 4px;
@@ -498,6 +533,21 @@ $file-upload-padding-sm: $space-6;
498
533
  $file-upload-padding-md: $space-8;
499
534
  $file-upload-padding-lg: $space-10;
500
535
 
536
+ // === INPUT NUMBER ===
537
+
538
+ $input-number-height-sm: 32px;
539
+ $input-number-height-md: 40px;
540
+ $input-number-height-lg: 48px;
541
+
542
+ $input-number-btn-size-sm: 28px;
543
+ $input-number-btn-size-md: 36px;
544
+ $input-number-btn-size-lg: 44px;
545
+
546
+ $input-number-btn-bg: $gray-100;
547
+ $input-number-btn-hover: $gray-200;
548
+ $input-number-btn-active: $gray-300;
549
+ $input-number-btn-disabled: $gray-50;
550
+
501
551
  $file-upload-radius: $radius-2;
502
552
  $file-upload-file-radius: $radius-2;
503
553
 
@@ -645,6 +695,29 @@ $password-strength-bar-radius: $radius-1;
645
695
  $password-strength-label-font-size: $font-size-2;
646
696
  $password-strength-label-gap: $space-2;
647
697
 
698
+ // === SEGMENTED CONTROL ===
699
+
700
+ $segmented-height-sm: 32px;
701
+ $segmented-height-md: 40px;
702
+ $segmented-height-lg: 48px;
703
+
704
+ $segmented-padding-sm: $space-2;
705
+ $segmented-padding-md: $space-3;
706
+ $segmented-padding-lg: $space-4;
707
+
708
+ $segmented-font-size-sm: $font-size-2;
709
+ $segmented-font-size-md: $font-size-3;
710
+ $segmented-font-size-lg: $font-size-4;
711
+
712
+ $segmented-icon-size-sm: 14px;
713
+ $segmented-icon-size-md: 16px;
714
+ $segmented-icon-size-lg: 18px;
715
+
716
+ $segmented-gap: 4px;
717
+ $segmented-segment-gap: $space-2;
718
+ $segmented-border-radius: $radius-2;
719
+ $segmented-active-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
720
+
648
721
  // === TIMELINE ===
649
722
 
650
723
  $timeline-dot-size-sm: 20px;
@@ -524,6 +524,33 @@
524
524
  --datepicker-radius: #{$datepicker-radius};
525
525
  --datepicker-shadow: #{$datepicker-shadow};
526
526
 
527
+ /* === COLOR PICKER === */
528
+ --colorpicker-height-sm: #{$colorpicker-height-sm};
529
+ --colorpicker-height-md: #{$colorpicker-height-md};
530
+ --colorpicker-height-lg: #{$colorpicker-height-lg};
531
+ --colorpicker-padding-sm: #{$colorpicker-padding-sm};
532
+ --colorpicker-padding-md: #{$colorpicker-padding-md};
533
+ --colorpicker-padding-lg: #{$colorpicker-padding-lg};
534
+ --colorpicker-font-size-sm: #{$colorpicker-font-size-sm};
535
+ --colorpicker-font-size-md: #{$colorpicker-font-size-md};
536
+ --colorpicker-font-size-lg: #{$colorpicker-font-size-lg};
537
+ --colorpicker-preview-size-sm: #{$colorpicker-preview-size-sm};
538
+ --colorpicker-preview-size-md: #{$colorpicker-preview-size-md};
539
+ --colorpicker-preview-size-lg: #{$colorpicker-preview-size-lg};
540
+ --colorpicker-action-size-sm: #{$colorpicker-action-size-sm};
541
+ --colorpicker-action-size-md: #{$colorpicker-action-size-md};
542
+ --colorpicker-action-size-lg: #{$colorpicker-action-size-lg};
543
+ --colorpicker-gap: #{$colorpicker-gap};
544
+ --colorpicker-radius: #{$colorpicker-radius};
545
+ --colorpicker-panel-width: #{$colorpicker-panel-width};
546
+ --colorpicker-panel-padding: #{$colorpicker-panel-padding};
547
+ --colorpicker-panel-gap: #{$colorpicker-panel-gap};
548
+ --colorpicker-panel-radius: #{$colorpicker-panel-radius};
549
+ --colorpicker-panel-shadow: #{$colorpicker-panel-shadow};
550
+ --colorpicker-spectrum-height: #{$colorpicker-spectrum-height};
551
+ --colorpicker-slider-height: #{$colorpicker-slider-height};
552
+ --colorpicker-preset-size: #{$colorpicker-preset-size};
553
+
527
554
  /* === SLIDER === */
528
555
  --slider-track-height-sm: #{$slider-track-height-sm};
529
556
  --slider-track-height-md: #{$slider-track-height-md};
@@ -593,6 +620,18 @@
593
620
  --chip-remove-icon-size-lg: #{$chip-remove-icon-size-lg};
594
621
  --chip-border-radius: #{$chip-border-radius};
595
622
 
623
+ /* === INPUT NUMBER === */
624
+ --input-number-height-sm: #{$input-number-height-sm};
625
+ --input-number-height-md: #{$input-number-height-md};
626
+ --input-number-height-lg: #{$input-number-height-lg};
627
+ --input-number-btn-size-sm: #{$input-number-btn-size-sm};
628
+ --input-number-btn-size-md: #{$input-number-btn-size-md};
629
+ --input-number-btn-size-lg: #{$input-number-btn-size-lg};
630
+ --input-number-btn-bg: #{$input-number-btn-bg};
631
+ --input-number-btn-hover: #{$input-number-btn-hover};
632
+ --input-number-btn-active: #{$input-number-btn-active};
633
+ --input-number-btn-disabled: #{$input-number-btn-disabled};
634
+
596
635
  /* === EMPTY === */
597
636
  --empty-padding-sm: #{$empty-padding-sm};
598
637
  --empty-padding-md: #{$empty-padding-md};
@@ -829,6 +868,28 @@
829
868
  --calendar-month-font-size: #{$calendar-month-font-size};
830
869
  --calendar-month-font-size-sm: #{$calendar-month-font-size-sm};
831
870
  --calendar-month-font-size-lg: #{$calendar-month-font-size-lg};
871
+
872
+ /* === SEGMENTED CONTROL === */
873
+ --segmented-height-sm: #{$segmented-height-sm};
874
+ --segmented-height-md: #{$segmented-height-md};
875
+ --segmented-height-lg: #{$segmented-height-lg};
876
+
877
+ --segmented-padding-sm: #{$segmented-padding-sm};
878
+ --segmented-padding-md: #{$segmented-padding-md};
879
+ --segmented-padding-lg: #{$segmented-padding-lg};
880
+
881
+ --segmented-font-size-sm: #{$segmented-font-size-sm};
882
+ --segmented-font-size-md: #{$segmented-font-size-md};
883
+ --segmented-font-size-lg: #{$segmented-font-size-lg};
884
+
885
+ --segmented-icon-size-sm: #{$segmented-icon-size-sm};
886
+ --segmented-icon-size-md: #{$segmented-icon-size-md};
887
+ --segmented-icon-size-lg: #{$segmented-icon-size-lg};
888
+
889
+ --segmented-gap: #{$segmented-gap};
890
+ --segmented-segment-gap: #{$segmented-segment-gap};
891
+ --segmented-border-radius: #{$segmented-border-radius};
892
+ --segmented-active-shadow: #{$segmented-active-shadow};
832
893
  }
833
894
 
834
895
  /* === ACCESSIBILITY: REDUCED MOTION === */