import type SynAccordion from "../../components/accordion/accordion.js"; import type SynAlert from "../../components/alert/alert.js"; import type SynBadge from "../../components/badge/badge.js"; import type SynButtonGroup from "../../components/button-group/button-group.js"; import type SynButton from "../../components/button/button.js"; import type SynCheckbox from "../../components/checkbox/checkbox.js"; import type SynCombobox from "../../components/combobox/combobox.js"; import type SynDetails from "../../components/details/details.js"; import type SynFile from "../../components/file/file.js"; import type SynIconButton from "../../components/icon-button/icon-button.js"; import type SynInput from "../../components/input/input.js"; import type SynOption from "../../components/option/option.js"; import type SynRadioButton from "../../components/radio-button/radio-button.js"; import type SynRadioGroup from "../../components/radio-group/radio-group.js"; import type SynRadio from "../../components/radio/radio.js"; import type SynRange from "../../components/range/range.js"; import type SynSelect from "../../components/select/select.js"; import type SynSideNav from "../../components/side-nav/side-nav.js"; import type SynSwitch from "../../components/switch/switch.js"; import type SynTagGroup from "../../components/tag-group/tag-group.js"; import type SynTag from "../../components/tag/tag.js"; import type SynTextarea from "../../components/textarea/textarea.js"; import type SynValidate from "../../components/validate/validate.js"; import type SynergyElement from "../../internal/synergy-element.js"; import type { SynDefaultChangedAttribute } from "../../events/events.js"; /** * Custom helper type that adds decorated properties from * the globalSettings helper. */ export type GlobalSettingsEnabledElement = SynergyElement & { __originalDecoratedClassName: string; overrideGlobalSettings: (changedProperties: SynDefaultChangedAttribute[]) => void; }; /** * Allows for partial recursive types */ export type RecursivePartial = { [P in keyof T]?: T[P] extends object ? RecursivePartial : T[P]; }; /** * Allowed value for a default setting * Gets the value of a given attribute for a given component */ export type AllowedValueForDefaultSetting = Elm[Attr]; /** * List of all components that have default values */ export type ComponentNamesWithDefaultValues = "SynAccordion" | "SynAlert" | "SynBadge" | "SynButton" | "SynButtonGroup" | "SynCheckbox" | "SynCombobox" | "SynDetails" | "SynFile" | "SynIconButton" | "SynInput" | "SynOption" | "SynRadio" | "SynRadioButton" | "SynRadioGroup" | "SynRange" | "SynSelect" | "SynSideNav" | "SynSwitch" | "SynTag" | "SynTagGroup" | "SynTextarea" | "SynValidate"; /** * Extracts all available default settings for a given component */ export type ExtractSettingsForElement = { [key in keyof SynDefaultSettings]?: key extends keyof C ? AllowedValueForDefaultSetting : never; }; /** * Default settings map for all component values that have defaults set */ export type SynDefaultSettings = { delimiter: { SynCombobox?: AllowedValueForDefaultSetting; SynOption?: AllowedValueForDefaultSetting; SynSelect?: AllowedValueForDefaultSetting; }; numericStrategy: { SynInput?: AllowedValueForDefaultSetting; }; size: { SynAccordion?: AllowedValueForDefaultSetting; SynAlert?: AllowedValueForDefaultSetting; SynButton?: AllowedValueForDefaultSetting; SynButtonGroup?: AllowedValueForDefaultSetting; SynCheckbox?: AllowedValueForDefaultSetting; SynCombobox?: AllowedValueForDefaultSetting; SynDetails?: AllowedValueForDefaultSetting; SynFile?: AllowedValueForDefaultSetting; SynIconButton?: AllowedValueForDefaultSetting; SynInput?: AllowedValueForDefaultSetting; SynRadio?: AllowedValueForDefaultSetting; SynRadioButton?: AllowedValueForDefaultSetting; SynRadioGroup?: AllowedValueForDefaultSetting; SynRange?: AllowedValueForDefaultSetting; SynSelect?: AllowedValueForDefaultSetting; SynSwitch?: AllowedValueForDefaultSetting; SynTag?: AllowedValueForDefaultSetting; SynTagGroup?: AllowedValueForDefaultSetting; SynTextarea?: AllowedValueForDefaultSetting; }; variant: { SynAlert?: AllowedValueForDefaultSetting; SynBadge?: AllowedValueForDefaultSetting; SynButton?: AllowedValueForDefaultSetting; SynButtonGroup?: AllowedValueForDefaultSetting; SynSideNav?: AllowedValueForDefaultSetting; SynValidate?: AllowedValueForDefaultSetting; }; }; /** * Default settings for all components */ export declare const defaultSettings: SynDefaultSettings; /** * Initial default settings for all components */ export declare const INITIAL_DEFAULT_SETTINGS: SynDefaultSettings;