@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
TypeScript
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;