UNPKG

@synergy-design-system/components

Version:

This package provides the base of the Synergy Design System as native web components. It uses [lit](https://www.lit.dev) and parts of [shoelace](https://shoelace.style/). Synergy officially supports the latest two versions of all major browsers (as define

97 lines (96 loc) 4.97 kB
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 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 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 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<T> = { [P in keyof T]?: T[P] extends object ? RecursivePartial<T[P]> : T[P]; }; /** * Allowed value for a default setting * Gets the value of a given attribute for a given component */ export type AllowedValueForDefaultSetting<Elm extends SynergyElement, Attr extends keyof Elm> = Elm[Attr]; /** * List of all components that have default values */ export type ComponentNamesWithDefaultValues = "SynAccordion" | "SynAlert" | "SynBadge" | "SynButton" | "SynCheckbox" | "SynCombobox" | "SynDetails" | "SynFile" | "SynIconButton" | "SynInput" | "SynRadio" | "SynRadioButton" | "SynRadioGroup" | "SynRange" | "SynSelect" | "SynSideNav" | "SynSwitch" | "SynTag" | "SynTextarea" | "SynValidate"; /** * Extracts all available default settings for a given component */ export type ExtractSettingsForElement<C extends SynergyElement> = { [key in keyof SynDefaultSettings]?: key extends keyof C ? AllowedValueForDefaultSetting<C, key> : never; }; /** * Default settings map for all component values that have defaults set */ export type SynDefaultSettings = { delimiter: { SynSelect?: AllowedValueForDefaultSetting<SynSelect, "delimiter">; }; numericStrategy: { SynInput?: AllowedValueForDefaultSetting<SynInput, "numericStrategy">; }; size: { SynAccordion?: AllowedValueForDefaultSetting<SynAccordion, "size">; SynAlert?: AllowedValueForDefaultSetting<SynAlert, "size">; SynButton?: AllowedValueForDefaultSetting<SynButton, "size">; SynCheckbox?: AllowedValueForDefaultSetting<SynCheckbox, "size">; SynCombobox?: AllowedValueForDefaultSetting<SynCombobox, "size">; SynDetails?: AllowedValueForDefaultSetting<SynDetails, "size">; SynFile?: AllowedValueForDefaultSetting<SynFile, "size">; SynIconButton?: AllowedValueForDefaultSetting<SynIconButton, "size">; SynInput?: AllowedValueForDefaultSetting<SynInput, "size">; SynRadio?: AllowedValueForDefaultSetting<SynRadio, "size">; SynRadioButton?: AllowedValueForDefaultSetting<SynRadioButton, "size">; SynRadioGroup?: AllowedValueForDefaultSetting<SynRadioGroup, "size">; SynRange?: AllowedValueForDefaultSetting<SynRange, "size">; SynSelect?: AllowedValueForDefaultSetting<SynSelect, "size">; SynSwitch?: AllowedValueForDefaultSetting<SynSwitch, "size">; SynTag?: AllowedValueForDefaultSetting<SynTag, "size">; SynTextarea?: AllowedValueForDefaultSetting<SynTextarea, "size">; }; variant: { SynAlert?: AllowedValueForDefaultSetting<SynAlert, "variant">; SynBadge?: AllowedValueForDefaultSetting<SynBadge, "variant">; SynButton?: AllowedValueForDefaultSetting<SynButton, "variant">; SynSideNav?: AllowedValueForDefaultSetting<SynSideNav, "variant">; SynValidate?: AllowedValueForDefaultSetting<SynValidate, "variant">; }; }; /** * Default settings for all components */ export declare const defaultSettings: SynDefaultSettings; /** * Initial default settings for all components */ export declare const INITIAL_DEFAULT_SETTINGS: SynDefaultSettings;