import type { WarpIcon, WIcon } from "./packages/icon/icon.ts"; import type { WarpTooltip } from "./packages/tooltip/tooltip.ts"; import type { WarpTextField } from "./packages/textfield/textfield.ts"; import type { WarpAffix } from "./packages/affix/affix.ts"; import type { WarpAlert } from "./packages/alert/alert.ts"; import type { WarpLink } from "./packages/link/link.ts"; import type { WarpButton } from "./packages/button/button.ts"; import type { WarpAttention } from "./packages/attention/attention.ts"; import type { WarpBadge } from "./packages/badge/badge.ts"; import type { WarpBox } from "./packages/box/box.ts"; import type { WarpBreadcrumbItem } from "./packages/breadcrumb-item/breadcrumb-item.ts"; import type { WarpBreadcrumbs } from "./packages/breadcrumbs/breadcrumbs.ts"; import type { WarpCard } from "./packages/card/card.ts"; import type { WarpCheckbox, WCheckbox } from "./packages/checkbox/checkbox.ts"; import type { WarpCheckboxGroup, WCheckboxGroup, } from "./packages/checkbox-group/checkbox-group.ts"; import type { WarpCombobox } from "./packages/combobox/combobox.ts"; import type { WarpDatepicker } from "./packages/datepicker/datepicker.ts"; import type { WarpExpandable } from "./packages/expandable/expandable.ts"; import type { WarpModal, ModalMain } from "./packages/modal/modal.ts"; import type { WarpModalFooter, ModalFooter, } from "./packages/modal-footer/modal-footer.ts"; import type { WarpModalHeader, ModalHeader, } from "./packages/modal-header/modal-header.ts"; import type { WarpPageIndicator } from "./packages/page-indicator/page-indicator.ts"; import type { WarpPagination } from "./packages/pagination/pagination.ts"; import type { WarpPill } from "./packages/pill/pill.ts"; import type { WarpRadio, WRadio } from "./packages/radio/radio.ts"; import type { WarpRadioGroup, WRadioGroup, } from "./packages/radio-group/radio-group.ts"; import type { WarpSelect } from "./packages/select/select.ts"; import type { WarpSliderThumb } from "./packages/slider-thumb/slider-thumb.ts"; import type { WarpSlider } from "./packages/slider/slider.ts"; import type { WarpSnackbarItem } from "./packages/snackbar-item/snackbar-item.ts"; import type { WarpSnackbar } from "./packages/snackbar/snackbar.ts"; import type { WarpStep } from "./packages/step/step.ts"; import type { WarpStepIndicator } from "./packages/step-indicator/step-indicator.ts"; import type { WarpSwitch } from "./packages/switch/switch.ts"; import type { WarpTab } from "./packages/tab/tab.ts"; import type { WarpTabPanel } from "./packages/tab-panel/tab-panel.ts"; import type { WarpTabs } from "./packages/tabs/tabs.ts"; import type { WarpTextarea } from "./packages/textarea/textarea.ts"; /** * This type can be used to create scoped tags for your components. * * Usage: * * ```ts * import type { ScopedElements } from "path/to/library/jsx-integration"; * * declare module "my-library" { * namespace JSX { * interface IntrinsicElements * extends ScopedElements<'test-', ''> {} * } * } * ``` * * @deprecated Runtime scoped elements result in duplicate types and can confusing for developers. It is recommended to use the `prefix` and `suffix` options to generate new types instead. */ export type ScopedElements< Prefix extends string = "", Suffix extends string = "", > = { [ Key in keyof CustomElements as `${Prefix}${Key}${Suffix}` ]: CustomElements[Key]; }; /** * A generic type for strongly typing custom events with their targets * @template T - The type of the event target (extends EventTarget) * @template D - The type of the detail payload for the custom event */ type TypedEvent = E & { target: T; }; type BaseProps = { /** Content added between the opening and closing tags of the element */ children?: any; /** Used for declaratively styling one or more elements using CSS (Cascading Stylesheets) */ class?: string; /** Used for declaratively styling one or more elements using CSS (Cascading Stylesheets) */ className?: string; /** Takes an object where the key is the class name(s) and the value is a boolean expression. When true, the class is applied, and when false, it is removed. */ classList?: Record; /** Specifies the text direction of the element. */ dir?: "ltr" | "rtl"; /** Contains a space-separated list of the part names of the element that should be exposed on the host element. */ exportparts?: string; /** For