@easemate/web-kit 0.3.3 → 0.3.4
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/README.md +105 -17
- package/build/decorators.cjs +7 -7
- package/build/decorators.cjs.map +1 -1
- package/build/decorators.js +7 -7
- package/build/decorators.js.map +1 -1
- package/build/elements.cjs +1902 -747
- package/build/elements.cjs.map +1 -1
- package/build/elements.d.cts +51 -2
- package/build/elements.d.ts +51 -2
- package/build/elements.js +1899 -746
- package/build/elements.js.map +1 -1
- package/build/{index-NzGpn7ai.d.cts → index-BKwMPyPy.d.cts} +3 -0
- package/build/{index-NzGpn7ai.d.ts → index-BKwMPyPy.d.ts} +3 -0
- package/build/index.cjs +1894 -706
- package/build/index.cjs.map +1 -1
- package/build/index.d.cts +4 -4
- package/build/index.d.ts +4 -4
- package/build/index.js +1889 -703
- package/build/index.js.map +1 -1
- package/build/{init-CaP7khA2.d.ts → init-C4Q5EEAr.d.ts} +1 -1
- package/build/{init-DmqoRv6_.d.cts → init-yLajTNMT.d.cts} +1 -1
- package/build/jsx.cjs.map +1 -1
- package/build/jsx.d.cts +21 -1
- package/build/jsx.d.ts +21 -1
- package/build/jsx.js.map +1 -1
- package/build/react.cjs +433 -334
- package/build/react.cjs.map +1 -1
- package/build/react.d.cts +4 -4
- package/build/react.d.ts +4 -4
- package/build/react.js +433 -334
- package/build/react.js.map +1 -1
- package/build/register.cjs +2279 -1128
- package/build/register.cjs.map +1 -1
- package/build/register.js +2260 -1109
- package/build/register.js.map +1 -1
- package/build/{registry-YCv1Ctoe.d.cts → registry-GVSJPmus.d.cts} +1 -0
- package/build/{registry-YCv1Ctoe.d.ts → registry-GVSJPmus.d.ts} +1 -0
- package/build/theme.cjs +34 -3
- package/build/theme.cjs.map +1 -1
- package/build/theme.d.cts +2 -2
- package/build/theme.d.ts +2 -2
- package/build/theme.js +34 -3
- package/build/theme.js.map +1 -1
- package/build/utils.cjs +3 -3
- package/build/utils.cjs.map +1 -1
- package/build/utils.js +3 -3
- package/build/utils.js.map +1 -1
- package/package.json +1 -1
package/build/jsx.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react/jsx.ts"],"sourcesContent":["/**\n * JSX type declarations for @easemate/web-kit\n *\n * Import this module to get JSX IntrinsicElements type support:\n * ```ts\n * import '@easemate/web-kit/react/jsx';\n * ```\n */\n\n// Import React types to enable proper module augmentation\n// This ensures 'react' and 'react/jsx-runtime' are resolvable for augmentation\nimport type {} from 'react';\nimport type {} from 'react/jsx-dev-runtime';\nimport type {} from 'react/jsx-runtime';\nimport type { StateChangeEventDetail } from '../elements/state/index';\n\n// Re-export for convenience\nexport type { StateChangeEventDetail };\n\n// Event detail types\nexport interface TabChangeEventDetail {\n index: number;\n id: string;\n event: Event;\n}\n\nexport interface ControlEventDetail<T = unknown> {\n name?: string;\n value: T;\n event: Event;\n}\n\n// Ref types\ntype RefCallback<T> = (instance: T | null) => void;\ntype RefObject<T> = { current: T | null };\ntype Ref<T> = RefCallback<T> | RefObject<T> | null;\n\n// Event handler type\ntype CustomEventHandler<T = unknown> = (event: CustomEvent<T>) => void;\n\n// Base HTML attributes shared by all elements\ninterface BaseHTMLAttributes {\n // React's key prop for list rendering\n key?: string | number | null;\n id?: string;\n class?: string;\n className?: string;\n style?: string | Partial<CSSStyleDeclaration>;\n slot?: string;\n hidden?: boolean;\n tabIndex?: number;\n title?: string;\n name?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n 'aria-hidden'?: boolean | 'true' | 'false';\n 'aria-disabled'?: boolean | 'true' | 'false';\n 'data-testid'?: string;\n onClick?: (event: MouseEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onBlur?: (event: FocusEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyUp?: (event: KeyboardEvent) => void;\n children?: unknown;\n}\n\n// Element ref interfaces\nexport interface StateElement extends HTMLElement {\n getState(): Record<string, unknown>;\n get(name: string): unknown;\n set(name: string, value: unknown): void;\n reset(): void;\n}\n\nexport interface PanelElement extends HTMLElement {\n collapsed?: boolean;\n setActiveTab(indexOrId: number | string): void;\n getActiveTab(): { index: number; id: string } | null;\n}\n\nexport interface SliderElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ToggleElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CheckboxElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface InputElement extends HTMLElement {\n value?: string | null;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n focus(): void;\n blur(): void;\n}\n\nexport interface NumberInputElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ColorInputElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface DropdownElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n open?: boolean;\n}\n\nexport interface ButtonElement extends HTMLElement {\n disabled?: boolean;\n type?: string;\n variant?: string;\n}\n\nexport interface FieldElement extends HTMLElement {\n label?: string;\n}\n\nexport interface TooltipElement extends HTMLElement {\n content?: string;\n placement?: string;\n}\n\nexport interface PopoverElement extends HTMLElement {\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupElement extends HTMLElement {\n value?: string;\n}\n\nexport interface CurveElement extends HTMLElement {\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n snapToGrid?: boolean;\n}\n\n// Props interfaces\nexport interface StateProps extends BaseHTMLAttributes {\n ref?: Ref<StateElement>;\n onStateChange?: CustomEventHandler<StateChangeEventDetail>;\n}\n\nexport interface PanelProps extends BaseHTMLAttributes {\n ref?: Ref<PanelElement>;\n collapsed?: boolean;\n onTabChange?: CustomEventHandler<TabChangeEventDetail>;\n}\n\nexport interface SliderProps extends BaseHTMLAttributes {\n ref?: Ref<SliderElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ToggleProps extends BaseHTMLAttributes {\n ref?: Ref<ToggleElement>;\n checked?: boolean;\n disabled?: boolean;\n onToggle?: CustomEventHandler<ControlEventDetail<boolean>>;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface CheckboxProps extends BaseHTMLAttributes {\n ref?: Ref<CheckboxElement>;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface InputProps extends BaseHTMLAttributes {\n ref?: Ref<InputElement>;\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface NumberInputProps extends BaseHTMLAttributes {\n ref?: Ref<NumberInputElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ColorInputProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface DropdownProps extends BaseHTMLAttributes {\n ref?: Ref<DropdownElement>;\n value?: string;\n disabled?: boolean;\n open?: boolean;\n placement?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface ButtonProps extends BaseHTMLAttributes {\n ref?: Ref<ButtonElement>;\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n variant?: 'primary' | 'secondary' | 'ghost';\n pill?: boolean;\n block?: string;\n fullWidth?: boolean;\n}\n\nexport interface FieldProps extends BaseHTMLAttributes {\n ref?: Ref<FieldElement>;\n label?: string;\n inline?: boolean;\n}\n\nexport interface TooltipProps extends BaseHTMLAttributes {\n ref?: Ref<TooltipElement>;\n content?: string;\n placement?: string;\n delay?: number | string;\n}\n\nexport interface PopoverProps extends BaseHTMLAttributes {\n ref?: Ref<PopoverElement>;\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginProps extends BaseHTMLAttributes {\n ref?: Ref<OriginElement>;\n value?: string;\n disabled?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioGroupProps extends BaseHTMLAttributes {\n ref?: Ref<RadioGroupElement>;\n value?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioInputProps extends BaseHTMLAttributes {\n value?: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CurveProps extends BaseHTMLAttributes {\n ref?: Ref<CurveElement>;\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n 'easing-type'?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n 'show-grid'?: boolean;\n snapToGrid?: boolean;\n 'snap-to-grid'?: boolean;\n gridSize?: number | string;\n 'grid-size'?: number | string;\n}\n\nexport interface CodeProps extends BaseHTMLAttributes {\n language?: string;\n}\n\nexport interface MonitorProps extends BaseHTMLAttributes {}\n\nexport interface MonitorFpsProps extends BaseHTMLAttributes {\n interval?: number | string;\n}\n\nexport interface LogoLoaderProps extends BaseHTMLAttributes {\n intro?: 'wave' | 'particle';\n loading?: boolean;\n size?: number | string;\n}\n\nexport interface ColorPickerProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\n// Base interface for all icon components\nexport interface IconProps extends BaseHTMLAttributes {}\n\n// JSX IntrinsicElements\nexport interface EaseElements {\n // Layout & State\n 'ease-state': StateProps;\n 'ease-panel': PanelProps;\n 'ease-field': FieldProps;\n 'ease-popover': PopoverProps;\n 'ease-tooltip': TooltipProps;\n\n // Controls\n 'ease-slider': SliderProps;\n 'ease-toggle': ToggleProps;\n 'ease-checkbox': CheckboxProps;\n 'ease-input': InputProps;\n 'ease-number-input': NumberInputProps;\n 'ease-color-input': ColorInputProps;\n 'ease-color-picker': ColorPickerProps;\n 'ease-dropdown': DropdownProps;\n 'ease-button': ButtonProps;\n 'ease-origin': OriginProps;\n 'ease-radio-group': RadioGroupProps;\n 'ease-radio-input': RadioInputProps;\n\n // Advanced\n 'ease-curve': CurveProps;\n 'ease-code': CodeProps;\n\n // Display\n 'ease-monitor': MonitorProps;\n 'ease-monitor-fps': MonitorFpsProps;\n 'ease-logo-loader': LogoLoaderProps;\n\n // Icons - Interface\n 'ease-icon-anchor-add': IconProps;\n 'ease-icon-anchor-remove': IconProps;\n 'ease-icon-arrow-up': IconProps;\n 'ease-icon-arrows-vertical': IconProps;\n 'ease-icon-bezier': IconProps;\n 'ease-icon-bezier-angle': IconProps;\n 'ease-icon-bezier-distribute': IconProps;\n 'ease-icon-bezier-length': IconProps;\n 'ease-icon-bezier-mirror': IconProps;\n 'ease-icon-check': IconProps;\n 'ease-icon-circle-arrow-left': IconProps;\n 'ease-icon-circle-arrow-right': IconProps;\n 'ease-icon-code': IconProps;\n 'ease-icon-dots': IconProps;\n 'ease-icon-mention': IconProps;\n 'ease-icon-minus': IconProps;\n 'ease-icon-picker': IconProps;\n 'ease-icon-plus': IconProps;\n 'ease-icon-settings': IconProps;\n\n // Icons - Animation\n 'ease-icon-chevron': IconProps;\n 'ease-icon-clear': IconProps;\n 'ease-icon-grid': IconProps;\n 'ease-icon-loading': IconProps;\n 'ease-icon-snap': IconProps;\n}\n\n// Augment global JSX namespace\n// This provides type support in both React and non-React environments\ndeclare global {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's JSX namespace for React 17/18/19 (classic JSX transform)\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-runtime for React 17+ (new JSX transform)\n// This is required for Next.js App Router and other projects using the new transform\ndeclare module 'react/jsx-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-dev-runtime for development mode\ndeclare module 'react/jsx-dev-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Runtime marker to ensure this module is processed by TypeScript\n// This is needed because purely type-only modules may not trigger augmentation\nexport const __JSX_TYPES_LOADED__ = true;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAsaO,IAAMA,uBAAuB;","names":["__JSX_TYPES_LOADED__"]}
|
|
1
|
+
{"version":3,"sources":["../src/react/jsx.ts"],"sourcesContent":["/**\n * JSX type declarations for @easemate/web-kit\n *\n * Import this module to get JSX IntrinsicElements type support:\n * ```ts\n * import '@easemate/web-kit/react/jsx';\n * ```\n */\n\n// Import React types to enable proper module augmentation\n// This ensures 'react' and 'react/jsx-runtime' are resolvable for augmentation\nimport type {} from 'react';\nimport type {} from 'react/jsx-dev-runtime';\nimport type {} from 'react/jsx-runtime';\nimport type { StateChangeEventDetail } from '../elements/state/index';\n\n// Re-export for convenience\nexport type { StateChangeEventDetail };\n\n// Event detail types\nexport interface TabChangeEventDetail {\n index: number;\n id: string;\n event: Event;\n}\n\nexport interface ControlEventDetail<T = unknown> {\n name?: string;\n value: T;\n event: Event;\n}\n\n// Ref types\ntype RefCallback<T> = (instance: T | null) => void;\ntype RefObject<T> = { current: T | null };\ntype Ref<T> = RefCallback<T> | RefObject<T> | null;\n\n// Event handler type\ntype CustomEventHandler<T = unknown> = (event: CustomEvent<T>) => void;\n\n// Base HTML attributes shared by all elements\ninterface BaseHTMLAttributes {\n // React's key prop for list rendering\n key?: string | number | null;\n id?: string;\n class?: string;\n className?: string;\n style?: string | Partial<CSSStyleDeclaration>;\n slot?: string;\n hidden?: boolean;\n tabIndex?: number;\n title?: string;\n name?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n 'aria-hidden'?: boolean | 'true' | 'false';\n 'aria-disabled'?: boolean | 'true' | 'false';\n 'data-testid'?: string;\n onClick?: (event: MouseEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onBlur?: (event: FocusEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyUp?: (event: KeyboardEvent) => void;\n children?: unknown;\n}\n\n// Element ref interfaces\nexport interface StateElement extends HTMLElement {\n getState(): Record<string, unknown>;\n get(name: string): unknown;\n set(name: string, value: unknown): void;\n reset(): void;\n}\n\nexport interface PanelElement extends HTMLElement {\n collapsed?: boolean;\n setActiveTab(indexOrId: number | string): void;\n getActiveTab(): { index: number; id: string } | null;\n}\n\nexport interface SliderElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ToggleElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CheckboxElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface InputElement extends HTMLElement {\n value?: string | null;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n focus(): void;\n blur(): void;\n}\n\nexport interface NumberInputElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ColorInputElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface DropdownElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n open?: boolean;\n}\n\nexport interface ButtonElement extends HTMLElement {\n disabled?: boolean;\n type?: string;\n variant?: string;\n}\n\nexport interface FieldElement extends HTMLElement {\n label?: string;\n}\n\nexport interface TooltipElement extends HTMLElement {\n content?: string;\n placement?: string;\n}\n\nexport interface PopoverElement extends HTMLElement {\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupElement extends HTMLElement {\n value?: string;\n}\n\nexport interface CurveElement extends HTMLElement {\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n snapToGrid?: boolean;\n}\n\nexport interface FolderElement extends HTMLElement {\n open?: boolean;\n maxHeight?: string;\n toggle(): void;\n}\n\n// Folder toggle event detail\nexport interface FolderToggleEventDetail {\n open: boolean;\n event: Event;\n}\n\n// Props interfaces\nexport interface StateProps extends BaseHTMLAttributes {\n ref?: Ref<StateElement>;\n onStateChange?: CustomEventHandler<StateChangeEventDetail>;\n}\n\nexport interface PanelProps extends BaseHTMLAttributes {\n ref?: Ref<PanelElement>;\n collapsed?: boolean;\n 'max-height'?: string;\n maxHeight?: string;\n onTabChange?: CustomEventHandler<TabChangeEventDetail>;\n}\n\nexport interface FolderProps extends BaseHTMLAttributes {\n ref?: Ref<FolderElement>;\n open?: boolean;\n 'max-height'?: string;\n maxHeight?: string;\n onFolderToggle?: CustomEventHandler<FolderToggleEventDetail>;\n}\n\nexport interface SliderProps extends BaseHTMLAttributes {\n ref?: Ref<SliderElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ToggleProps extends BaseHTMLAttributes {\n ref?: Ref<ToggleElement>;\n checked?: boolean;\n disabled?: boolean;\n onToggle?: CustomEventHandler<ControlEventDetail<boolean>>;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface CheckboxProps extends BaseHTMLAttributes {\n ref?: Ref<CheckboxElement>;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface InputProps extends BaseHTMLAttributes {\n ref?: Ref<InputElement>;\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface NumberInputProps extends BaseHTMLAttributes {\n ref?: Ref<NumberInputElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ColorInputProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface DropdownProps extends BaseHTMLAttributes {\n ref?: Ref<DropdownElement>;\n value?: string;\n disabled?: boolean;\n open?: boolean;\n placement?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface ButtonProps extends BaseHTMLAttributes {\n ref?: Ref<ButtonElement>;\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n variant?: 'primary' | 'secondary' | 'ghost';\n pill?: boolean;\n block?: string;\n fullWidth?: boolean;\n}\n\nexport interface FieldProps extends BaseHTMLAttributes {\n ref?: Ref<FieldElement>;\n label?: string;\n inline?: boolean;\n}\n\nexport interface TooltipProps extends BaseHTMLAttributes {\n ref?: Ref<TooltipElement>;\n content?: string;\n placement?: string;\n delay?: number | string;\n}\n\nexport interface PopoverProps extends BaseHTMLAttributes {\n ref?: Ref<PopoverElement>;\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginProps extends BaseHTMLAttributes {\n ref?: Ref<OriginElement>;\n value?: string;\n disabled?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioGroupProps extends BaseHTMLAttributes {\n ref?: Ref<RadioGroupElement>;\n value?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioInputProps extends BaseHTMLAttributes {\n value?: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CurveProps extends BaseHTMLAttributes {\n ref?: Ref<CurveElement>;\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n 'easing-type'?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n 'show-grid'?: boolean;\n snapToGrid?: boolean;\n 'snap-to-grid'?: boolean;\n gridSize?: number | string;\n 'grid-size'?: number | string;\n}\n\nexport interface CodeProps extends BaseHTMLAttributes {\n language?: string;\n}\n\nexport interface MonitorProps extends BaseHTMLAttributes {}\n\nexport interface MonitorFpsProps extends BaseHTMLAttributes {\n interval?: number | string;\n}\n\nexport interface LogoLoaderProps extends BaseHTMLAttributes {\n intro?: 'wave' | 'particle';\n loading?: boolean;\n size?: number | string;\n}\n\nexport interface ColorPickerProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\n// Base interface for all icon components\nexport interface IconProps extends BaseHTMLAttributes {}\n\n// JSX IntrinsicElements\nexport interface EaseElements {\n // Layout & State\n 'ease-state': StateProps;\n 'ease-panel': PanelProps;\n 'ease-folder': FolderProps;\n 'ease-field': FieldProps;\n 'ease-popover': PopoverProps;\n 'ease-tooltip': TooltipProps;\n\n // Controls\n 'ease-slider': SliderProps;\n 'ease-toggle': ToggleProps;\n 'ease-checkbox': CheckboxProps;\n 'ease-input': InputProps;\n 'ease-number-input': NumberInputProps;\n 'ease-color-input': ColorInputProps;\n 'ease-color-picker': ColorPickerProps;\n 'ease-dropdown': DropdownProps;\n 'ease-button': ButtonProps;\n 'ease-origin': OriginProps;\n 'ease-radio-group': RadioGroupProps;\n 'ease-radio-input': RadioInputProps;\n\n // Advanced\n 'ease-curve': CurveProps;\n 'ease-code': CodeProps;\n\n // Display\n 'ease-monitor': MonitorProps;\n 'ease-monitor-fps': MonitorFpsProps;\n 'ease-logo-loader': LogoLoaderProps;\n\n // Icons - Interface\n 'ease-icon-anchor-add': IconProps;\n 'ease-icon-anchor-remove': IconProps;\n 'ease-icon-arrow-up': IconProps;\n 'ease-icon-arrows-vertical': IconProps;\n 'ease-icon-bezier': IconProps;\n 'ease-icon-bezier-angle': IconProps;\n 'ease-icon-bezier-distribute': IconProps;\n 'ease-icon-bezier-length': IconProps;\n 'ease-icon-bezier-mirror': IconProps;\n 'ease-icon-check': IconProps;\n 'ease-icon-circle-arrow-left': IconProps;\n 'ease-icon-circle-arrow-right': IconProps;\n 'ease-icon-code': IconProps;\n 'ease-icon-dots': IconProps;\n 'ease-icon-mention': IconProps;\n 'ease-icon-minus': IconProps;\n 'ease-icon-picker': IconProps;\n 'ease-icon-plus': IconProps;\n 'ease-icon-settings': IconProps;\n\n // Icons - Animation\n 'ease-icon-chevron': IconProps;\n 'ease-icon-clear': IconProps;\n 'ease-icon-folder': IconProps;\n 'ease-icon-grid': IconProps;\n 'ease-icon-loading': IconProps;\n 'ease-icon-snap': IconProps;\n}\n\n// Augment global JSX namespace\n// This provides type support in both React and non-React environments\ndeclare global {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's JSX namespace for React 17/18/19 (classic JSX transform)\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-runtime for React 17+ (new JSX transform)\n// This is required for Next.js App Router and other projects using the new transform\ndeclare module 'react/jsx-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-dev-runtime for development mode\ndeclare module 'react/jsx-dev-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Runtime marker to ensure this module is processed by TypeScript\n// This is needed because purely type-only modules may not trigger augmentation\nexport const __JSX_TYPES_LOADED__ = true;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;;;;AA8bO,IAAMA,uBAAuB;","names":["__JSX_TYPES_LOADED__"]}
|
package/build/jsx.d.cts
CHANGED
|
@@ -133,6 +133,15 @@ interface CurveElement extends HTMLElement {
|
|
|
133
133
|
showGrid?: boolean;
|
|
134
134
|
snapToGrid?: boolean;
|
|
135
135
|
}
|
|
136
|
+
interface FolderElement extends HTMLElement {
|
|
137
|
+
open?: boolean;
|
|
138
|
+
maxHeight?: string;
|
|
139
|
+
toggle(): void;
|
|
140
|
+
}
|
|
141
|
+
interface FolderToggleEventDetail {
|
|
142
|
+
open: boolean;
|
|
143
|
+
event: Event;
|
|
144
|
+
}
|
|
136
145
|
interface StateProps extends BaseHTMLAttributes {
|
|
137
146
|
ref?: Ref<StateElement>;
|
|
138
147
|
onStateChange?: CustomEventHandler<StateChangeEventDetail>;
|
|
@@ -140,8 +149,17 @@ interface StateProps extends BaseHTMLAttributes {
|
|
|
140
149
|
interface PanelProps extends BaseHTMLAttributes {
|
|
141
150
|
ref?: Ref<PanelElement>;
|
|
142
151
|
collapsed?: boolean;
|
|
152
|
+
'max-height'?: string;
|
|
153
|
+
maxHeight?: string;
|
|
143
154
|
onTabChange?: CustomEventHandler<TabChangeEventDetail>;
|
|
144
155
|
}
|
|
156
|
+
interface FolderProps extends BaseHTMLAttributes {
|
|
157
|
+
ref?: Ref<FolderElement>;
|
|
158
|
+
open?: boolean;
|
|
159
|
+
'max-height'?: string;
|
|
160
|
+
maxHeight?: string;
|
|
161
|
+
onFolderToggle?: CustomEventHandler<FolderToggleEventDetail>;
|
|
162
|
+
}
|
|
145
163
|
interface SliderProps extends BaseHTMLAttributes {
|
|
146
164
|
ref?: Ref<SliderElement>;
|
|
147
165
|
value?: number | string;
|
|
@@ -278,6 +296,7 @@ interface IconProps extends BaseHTMLAttributes {
|
|
|
278
296
|
interface EaseElements {
|
|
279
297
|
'ease-state': StateProps;
|
|
280
298
|
'ease-panel': PanelProps;
|
|
299
|
+
'ease-folder': FolderProps;
|
|
281
300
|
'ease-field': FieldProps;
|
|
282
301
|
'ease-popover': PopoverProps;
|
|
283
302
|
'ease-tooltip': TooltipProps;
|
|
@@ -319,6 +338,7 @@ interface EaseElements {
|
|
|
319
338
|
'ease-icon-settings': IconProps;
|
|
320
339
|
'ease-icon-chevron': IconProps;
|
|
321
340
|
'ease-icon-clear': IconProps;
|
|
341
|
+
'ease-icon-folder': IconProps;
|
|
322
342
|
'ease-icon-grid': IconProps;
|
|
323
343
|
'ease-icon-loading': IconProps;
|
|
324
344
|
'ease-icon-snap': IconProps;
|
|
@@ -349,4 +369,4 @@ declare module 'react/jsx-dev-runtime' {
|
|
|
349
369
|
}
|
|
350
370
|
declare const __JSX_TYPES_LOADED__ = true;
|
|
351
371
|
|
|
352
|
-
export { type ButtonElement, type ButtonProps, type CheckboxElement, type CheckboxProps, type CodeProps, type ColorInputElement, type ColorInputProps, type ColorPickerProps, type ControlEventDetail, type CurveElement, type CurveProps, type DropdownElement, type DropdownProps, type EaseElements, type FieldElement, type FieldProps, type IconProps, type InputElement, type InputProps, type LogoLoaderProps, type MonitorFpsProps, type MonitorProps, type NumberInputElement, type NumberInputProps, type OriginElement, type OriginProps, type PanelElement, type PanelProps, type PopoverElement, type PopoverProps, type RadioGroupElement, type RadioGroupProps, type RadioInputProps, type SliderElement, type SliderProps, StateChangeEventDetail, type StateElement, type StateProps, type TabChangeEventDetail, type ToggleElement, type ToggleProps, type TooltipElement, type TooltipProps, __JSX_TYPES_LOADED__ };
|
|
372
|
+
export { type ButtonElement, type ButtonProps, type CheckboxElement, type CheckboxProps, type CodeProps, type ColorInputElement, type ColorInputProps, type ColorPickerProps, type ControlEventDetail, type CurveElement, type CurveProps, type DropdownElement, type DropdownProps, type EaseElements, type FieldElement, type FieldProps, type FolderElement, type FolderProps, type FolderToggleEventDetail, type IconProps, type InputElement, type InputProps, type LogoLoaderProps, type MonitorFpsProps, type MonitorProps, type NumberInputElement, type NumberInputProps, type OriginElement, type OriginProps, type PanelElement, type PanelProps, type PopoverElement, type PopoverProps, type RadioGroupElement, type RadioGroupProps, type RadioInputProps, type SliderElement, type SliderProps, StateChangeEventDetail, type StateElement, type StateProps, type TabChangeEventDetail, type ToggleElement, type ToggleProps, type TooltipElement, type TooltipProps, __JSX_TYPES_LOADED__ };
|
package/build/jsx.d.ts
CHANGED
|
@@ -133,6 +133,15 @@ interface CurveElement extends HTMLElement {
|
|
|
133
133
|
showGrid?: boolean;
|
|
134
134
|
snapToGrid?: boolean;
|
|
135
135
|
}
|
|
136
|
+
interface FolderElement extends HTMLElement {
|
|
137
|
+
open?: boolean;
|
|
138
|
+
maxHeight?: string;
|
|
139
|
+
toggle(): void;
|
|
140
|
+
}
|
|
141
|
+
interface FolderToggleEventDetail {
|
|
142
|
+
open: boolean;
|
|
143
|
+
event: Event;
|
|
144
|
+
}
|
|
136
145
|
interface StateProps extends BaseHTMLAttributes {
|
|
137
146
|
ref?: Ref<StateElement>;
|
|
138
147
|
onStateChange?: CustomEventHandler<StateChangeEventDetail>;
|
|
@@ -140,8 +149,17 @@ interface StateProps extends BaseHTMLAttributes {
|
|
|
140
149
|
interface PanelProps extends BaseHTMLAttributes {
|
|
141
150
|
ref?: Ref<PanelElement>;
|
|
142
151
|
collapsed?: boolean;
|
|
152
|
+
'max-height'?: string;
|
|
153
|
+
maxHeight?: string;
|
|
143
154
|
onTabChange?: CustomEventHandler<TabChangeEventDetail>;
|
|
144
155
|
}
|
|
156
|
+
interface FolderProps extends BaseHTMLAttributes {
|
|
157
|
+
ref?: Ref<FolderElement>;
|
|
158
|
+
open?: boolean;
|
|
159
|
+
'max-height'?: string;
|
|
160
|
+
maxHeight?: string;
|
|
161
|
+
onFolderToggle?: CustomEventHandler<FolderToggleEventDetail>;
|
|
162
|
+
}
|
|
145
163
|
interface SliderProps extends BaseHTMLAttributes {
|
|
146
164
|
ref?: Ref<SliderElement>;
|
|
147
165
|
value?: number | string;
|
|
@@ -278,6 +296,7 @@ interface IconProps extends BaseHTMLAttributes {
|
|
|
278
296
|
interface EaseElements {
|
|
279
297
|
'ease-state': StateProps;
|
|
280
298
|
'ease-panel': PanelProps;
|
|
299
|
+
'ease-folder': FolderProps;
|
|
281
300
|
'ease-field': FieldProps;
|
|
282
301
|
'ease-popover': PopoverProps;
|
|
283
302
|
'ease-tooltip': TooltipProps;
|
|
@@ -319,6 +338,7 @@ interface EaseElements {
|
|
|
319
338
|
'ease-icon-settings': IconProps;
|
|
320
339
|
'ease-icon-chevron': IconProps;
|
|
321
340
|
'ease-icon-clear': IconProps;
|
|
341
|
+
'ease-icon-folder': IconProps;
|
|
322
342
|
'ease-icon-grid': IconProps;
|
|
323
343
|
'ease-icon-loading': IconProps;
|
|
324
344
|
'ease-icon-snap': IconProps;
|
|
@@ -349,4 +369,4 @@ declare module 'react/jsx-dev-runtime' {
|
|
|
349
369
|
}
|
|
350
370
|
declare const __JSX_TYPES_LOADED__ = true;
|
|
351
371
|
|
|
352
|
-
export { type ButtonElement, type ButtonProps, type CheckboxElement, type CheckboxProps, type CodeProps, type ColorInputElement, type ColorInputProps, type ColorPickerProps, type ControlEventDetail, type CurveElement, type CurveProps, type DropdownElement, type DropdownProps, type EaseElements, type FieldElement, type FieldProps, type IconProps, type InputElement, type InputProps, type LogoLoaderProps, type MonitorFpsProps, type MonitorProps, type NumberInputElement, type NumberInputProps, type OriginElement, type OriginProps, type PanelElement, type PanelProps, type PopoverElement, type PopoverProps, type RadioGroupElement, type RadioGroupProps, type RadioInputProps, type SliderElement, type SliderProps, StateChangeEventDetail, type StateElement, type StateProps, type TabChangeEventDetail, type ToggleElement, type ToggleProps, type TooltipElement, type TooltipProps, __JSX_TYPES_LOADED__ };
|
|
372
|
+
export { type ButtonElement, type ButtonProps, type CheckboxElement, type CheckboxProps, type CodeProps, type ColorInputElement, type ColorInputProps, type ColorPickerProps, type ControlEventDetail, type CurveElement, type CurveProps, type DropdownElement, type DropdownProps, type EaseElements, type FieldElement, type FieldProps, type FolderElement, type FolderProps, type FolderToggleEventDetail, type IconProps, type InputElement, type InputProps, type LogoLoaderProps, type MonitorFpsProps, type MonitorProps, type NumberInputElement, type NumberInputProps, type OriginElement, type OriginProps, type PanelElement, type PanelProps, type PopoverElement, type PopoverProps, type RadioGroupElement, type RadioGroupProps, type RadioInputProps, type SliderElement, type SliderProps, StateChangeEventDetail, type StateElement, type StateProps, type TabChangeEventDetail, type ToggleElement, type ToggleProps, type TooltipElement, type TooltipProps, __JSX_TYPES_LOADED__ };
|
package/build/jsx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/react/jsx.ts"],"sourcesContent":["/**\n * JSX type declarations for @easemate/web-kit\n *\n * Import this module to get JSX IntrinsicElements type support:\n * ```ts\n * import '@easemate/web-kit/react/jsx';\n * ```\n */\n\n// Import React types to enable proper module augmentation\n// This ensures 'react' and 'react/jsx-runtime' are resolvable for augmentation\nimport type {} from 'react';\nimport type {} from 'react/jsx-dev-runtime';\nimport type {} from 'react/jsx-runtime';\nimport type { StateChangeEventDetail } from '../elements/state/index';\n\n// Re-export for convenience\nexport type { StateChangeEventDetail };\n\n// Event detail types\nexport interface TabChangeEventDetail {\n index: number;\n id: string;\n event: Event;\n}\n\nexport interface ControlEventDetail<T = unknown> {\n name?: string;\n value: T;\n event: Event;\n}\n\n// Ref types\ntype RefCallback<T> = (instance: T | null) => void;\ntype RefObject<T> = { current: T | null };\ntype Ref<T> = RefCallback<T> | RefObject<T> | null;\n\n// Event handler type\ntype CustomEventHandler<T = unknown> = (event: CustomEvent<T>) => void;\n\n// Base HTML attributes shared by all elements\ninterface BaseHTMLAttributes {\n // React's key prop for list rendering\n key?: string | number | null;\n id?: string;\n class?: string;\n className?: string;\n style?: string | Partial<CSSStyleDeclaration>;\n slot?: string;\n hidden?: boolean;\n tabIndex?: number;\n title?: string;\n name?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n 'aria-hidden'?: boolean | 'true' | 'false';\n 'aria-disabled'?: boolean | 'true' | 'false';\n 'data-testid'?: string;\n onClick?: (event: MouseEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onBlur?: (event: FocusEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyUp?: (event: KeyboardEvent) => void;\n children?: unknown;\n}\n\n// Element ref interfaces\nexport interface StateElement extends HTMLElement {\n getState(): Record<string, unknown>;\n get(name: string): unknown;\n set(name: string, value: unknown): void;\n reset(): void;\n}\n\nexport interface PanelElement extends HTMLElement {\n collapsed?: boolean;\n setActiveTab(indexOrId: number | string): void;\n getActiveTab(): { index: number; id: string } | null;\n}\n\nexport interface SliderElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ToggleElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CheckboxElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface InputElement extends HTMLElement {\n value?: string | null;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n focus(): void;\n blur(): void;\n}\n\nexport interface NumberInputElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ColorInputElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface DropdownElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n open?: boolean;\n}\n\nexport interface ButtonElement extends HTMLElement {\n disabled?: boolean;\n type?: string;\n variant?: string;\n}\n\nexport interface FieldElement extends HTMLElement {\n label?: string;\n}\n\nexport interface TooltipElement extends HTMLElement {\n content?: string;\n placement?: string;\n}\n\nexport interface PopoverElement extends HTMLElement {\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupElement extends HTMLElement {\n value?: string;\n}\n\nexport interface CurveElement extends HTMLElement {\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n snapToGrid?: boolean;\n}\n\n// Props interfaces\nexport interface StateProps extends BaseHTMLAttributes {\n ref?: Ref<StateElement>;\n onStateChange?: CustomEventHandler<StateChangeEventDetail>;\n}\n\nexport interface PanelProps extends BaseHTMLAttributes {\n ref?: Ref<PanelElement>;\n collapsed?: boolean;\n onTabChange?: CustomEventHandler<TabChangeEventDetail>;\n}\n\nexport interface SliderProps extends BaseHTMLAttributes {\n ref?: Ref<SliderElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ToggleProps extends BaseHTMLAttributes {\n ref?: Ref<ToggleElement>;\n checked?: boolean;\n disabled?: boolean;\n onToggle?: CustomEventHandler<ControlEventDetail<boolean>>;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface CheckboxProps extends BaseHTMLAttributes {\n ref?: Ref<CheckboxElement>;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface InputProps extends BaseHTMLAttributes {\n ref?: Ref<InputElement>;\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface NumberInputProps extends BaseHTMLAttributes {\n ref?: Ref<NumberInputElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ColorInputProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface DropdownProps extends BaseHTMLAttributes {\n ref?: Ref<DropdownElement>;\n value?: string;\n disabled?: boolean;\n open?: boolean;\n placement?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface ButtonProps extends BaseHTMLAttributes {\n ref?: Ref<ButtonElement>;\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n variant?: 'primary' | 'secondary' | 'ghost';\n pill?: boolean;\n block?: string;\n fullWidth?: boolean;\n}\n\nexport interface FieldProps extends BaseHTMLAttributes {\n ref?: Ref<FieldElement>;\n label?: string;\n inline?: boolean;\n}\n\nexport interface TooltipProps extends BaseHTMLAttributes {\n ref?: Ref<TooltipElement>;\n content?: string;\n placement?: string;\n delay?: number | string;\n}\n\nexport interface PopoverProps extends BaseHTMLAttributes {\n ref?: Ref<PopoverElement>;\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginProps extends BaseHTMLAttributes {\n ref?: Ref<OriginElement>;\n value?: string;\n disabled?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioGroupProps extends BaseHTMLAttributes {\n ref?: Ref<RadioGroupElement>;\n value?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioInputProps extends BaseHTMLAttributes {\n value?: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CurveProps extends BaseHTMLAttributes {\n ref?: Ref<CurveElement>;\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n 'easing-type'?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n 'show-grid'?: boolean;\n snapToGrid?: boolean;\n 'snap-to-grid'?: boolean;\n gridSize?: number | string;\n 'grid-size'?: number | string;\n}\n\nexport interface CodeProps extends BaseHTMLAttributes {\n language?: string;\n}\n\nexport interface MonitorProps extends BaseHTMLAttributes {}\n\nexport interface MonitorFpsProps extends BaseHTMLAttributes {\n interval?: number | string;\n}\n\nexport interface LogoLoaderProps extends BaseHTMLAttributes {\n intro?: 'wave' | 'particle';\n loading?: boolean;\n size?: number | string;\n}\n\nexport interface ColorPickerProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\n// Base interface for all icon components\nexport interface IconProps extends BaseHTMLAttributes {}\n\n// JSX IntrinsicElements\nexport interface EaseElements {\n // Layout & State\n 'ease-state': StateProps;\n 'ease-panel': PanelProps;\n 'ease-field': FieldProps;\n 'ease-popover': PopoverProps;\n 'ease-tooltip': TooltipProps;\n\n // Controls\n 'ease-slider': SliderProps;\n 'ease-toggle': ToggleProps;\n 'ease-checkbox': CheckboxProps;\n 'ease-input': InputProps;\n 'ease-number-input': NumberInputProps;\n 'ease-color-input': ColorInputProps;\n 'ease-color-picker': ColorPickerProps;\n 'ease-dropdown': DropdownProps;\n 'ease-button': ButtonProps;\n 'ease-origin': OriginProps;\n 'ease-radio-group': RadioGroupProps;\n 'ease-radio-input': RadioInputProps;\n\n // Advanced\n 'ease-curve': CurveProps;\n 'ease-code': CodeProps;\n\n // Display\n 'ease-monitor': MonitorProps;\n 'ease-monitor-fps': MonitorFpsProps;\n 'ease-logo-loader': LogoLoaderProps;\n\n // Icons - Interface\n 'ease-icon-anchor-add': IconProps;\n 'ease-icon-anchor-remove': IconProps;\n 'ease-icon-arrow-up': IconProps;\n 'ease-icon-arrows-vertical': IconProps;\n 'ease-icon-bezier': IconProps;\n 'ease-icon-bezier-angle': IconProps;\n 'ease-icon-bezier-distribute': IconProps;\n 'ease-icon-bezier-length': IconProps;\n 'ease-icon-bezier-mirror': IconProps;\n 'ease-icon-check': IconProps;\n 'ease-icon-circle-arrow-left': IconProps;\n 'ease-icon-circle-arrow-right': IconProps;\n 'ease-icon-code': IconProps;\n 'ease-icon-dots': IconProps;\n 'ease-icon-mention': IconProps;\n 'ease-icon-minus': IconProps;\n 'ease-icon-picker': IconProps;\n 'ease-icon-plus': IconProps;\n 'ease-icon-settings': IconProps;\n\n // Icons - Animation\n 'ease-icon-chevron': IconProps;\n 'ease-icon-clear': IconProps;\n 'ease-icon-grid': IconProps;\n 'ease-icon-loading': IconProps;\n 'ease-icon-snap': IconProps;\n}\n\n// Augment global JSX namespace\n// This provides type support in both React and non-React environments\ndeclare global {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's JSX namespace for React 17/18/19 (classic JSX transform)\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-runtime for React 17+ (new JSX transform)\n// This is required for Next.js App Router and other projects using the new transform\ndeclare module 'react/jsx-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-dev-runtime for development mode\ndeclare module 'react/jsx-dev-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Runtime marker to ensure this module is processed by TypeScript\n// This is needed because purely type-only modules may not trigger augmentation\nexport const __JSX_TYPES_LOADED__ = true;\n"],"mappings":";AAsaO,IAAMA,uBAAuB;","names":["__JSX_TYPES_LOADED__"]}
|
|
1
|
+
{"version":3,"sources":["../src/react/jsx.ts"],"sourcesContent":["/**\n * JSX type declarations for @easemate/web-kit\n *\n * Import this module to get JSX IntrinsicElements type support:\n * ```ts\n * import '@easemate/web-kit/react/jsx';\n * ```\n */\n\n// Import React types to enable proper module augmentation\n// This ensures 'react' and 'react/jsx-runtime' are resolvable for augmentation\nimport type {} from 'react';\nimport type {} from 'react/jsx-dev-runtime';\nimport type {} from 'react/jsx-runtime';\nimport type { StateChangeEventDetail } from '../elements/state/index';\n\n// Re-export for convenience\nexport type { StateChangeEventDetail };\n\n// Event detail types\nexport interface TabChangeEventDetail {\n index: number;\n id: string;\n event: Event;\n}\n\nexport interface ControlEventDetail<T = unknown> {\n name?: string;\n value: T;\n event: Event;\n}\n\n// Ref types\ntype RefCallback<T> = (instance: T | null) => void;\ntype RefObject<T> = { current: T | null };\ntype Ref<T> = RefCallback<T> | RefObject<T> | null;\n\n// Event handler type\ntype CustomEventHandler<T = unknown> = (event: CustomEvent<T>) => void;\n\n// Base HTML attributes shared by all elements\ninterface BaseHTMLAttributes {\n // React's key prop for list rendering\n key?: string | number | null;\n id?: string;\n class?: string;\n className?: string;\n style?: string | Partial<CSSStyleDeclaration>;\n slot?: string;\n hidden?: boolean;\n tabIndex?: number;\n title?: string;\n name?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n 'aria-describedby'?: string;\n 'aria-hidden'?: boolean | 'true' | 'false';\n 'aria-disabled'?: boolean | 'true' | 'false';\n 'data-testid'?: string;\n onClick?: (event: MouseEvent) => void;\n onFocus?: (event: FocusEvent) => void;\n onBlur?: (event: FocusEvent) => void;\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyUp?: (event: KeyboardEvent) => void;\n children?: unknown;\n}\n\n// Element ref interfaces\nexport interface StateElement extends HTMLElement {\n getState(): Record<string, unknown>;\n get(name: string): unknown;\n set(name: string, value: unknown): void;\n reset(): void;\n}\n\nexport interface PanelElement extends HTMLElement {\n collapsed?: boolean;\n setActiveTab(indexOrId: number | string): void;\n getActiveTab(): { index: number; id: string } | null;\n}\n\nexport interface SliderElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ToggleElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CheckboxElement extends HTMLElement {\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface InputElement extends HTMLElement {\n value?: string | null;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n focus(): void;\n blur(): void;\n}\n\nexport interface NumberInputElement extends HTMLElement {\n value?: number | null;\n min?: number | null;\n max?: number | null;\n step?: number | null;\n disabled?: boolean;\n}\n\nexport interface ColorInputElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface DropdownElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n open?: boolean;\n}\n\nexport interface ButtonElement extends HTMLElement {\n disabled?: boolean;\n type?: string;\n variant?: string;\n}\n\nexport interface FieldElement extends HTMLElement {\n label?: string;\n}\n\nexport interface TooltipElement extends HTMLElement {\n content?: string;\n placement?: string;\n}\n\nexport interface PopoverElement extends HTMLElement {\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginElement extends HTMLElement {\n value?: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupElement extends HTMLElement {\n value?: string;\n}\n\nexport interface CurveElement extends HTMLElement {\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n snapToGrid?: boolean;\n}\n\nexport interface FolderElement extends HTMLElement {\n open?: boolean;\n maxHeight?: string;\n toggle(): void;\n}\n\n// Folder toggle event detail\nexport interface FolderToggleEventDetail {\n open: boolean;\n event: Event;\n}\n\n// Props interfaces\nexport interface StateProps extends BaseHTMLAttributes {\n ref?: Ref<StateElement>;\n onStateChange?: CustomEventHandler<StateChangeEventDetail>;\n}\n\nexport interface PanelProps extends BaseHTMLAttributes {\n ref?: Ref<PanelElement>;\n collapsed?: boolean;\n 'max-height'?: string;\n maxHeight?: string;\n onTabChange?: CustomEventHandler<TabChangeEventDetail>;\n}\n\nexport interface FolderProps extends BaseHTMLAttributes {\n ref?: Ref<FolderElement>;\n open?: boolean;\n 'max-height'?: string;\n maxHeight?: string;\n onFolderToggle?: CustomEventHandler<FolderToggleEventDetail>;\n}\n\nexport interface SliderProps extends BaseHTMLAttributes {\n ref?: Ref<SliderElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ToggleProps extends BaseHTMLAttributes {\n ref?: Ref<ToggleElement>;\n checked?: boolean;\n disabled?: boolean;\n onToggle?: CustomEventHandler<ControlEventDetail<boolean>>;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface CheckboxProps extends BaseHTMLAttributes {\n ref?: Ref<CheckboxElement>;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<boolean>>;\n}\n\nexport interface InputProps extends BaseHTMLAttributes {\n ref?: Ref<InputElement>;\n value?: string;\n placeholder?: string;\n disabled?: boolean;\n type?: string;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface NumberInputProps extends BaseHTMLAttributes {\n ref?: Ref<NumberInputElement>;\n value?: number | string;\n min?: number | string;\n max?: number | string;\n step?: number | string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<number>>;\n onChange?: CustomEventHandler<ControlEventDetail<number>>;\n}\n\nexport interface ColorInputProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface DropdownProps extends BaseHTMLAttributes {\n ref?: Ref<DropdownElement>;\n value?: string;\n disabled?: boolean;\n open?: boolean;\n placement?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface ButtonProps extends BaseHTMLAttributes {\n ref?: Ref<ButtonElement>;\n disabled?: boolean;\n type?: 'button' | 'submit' | 'reset';\n variant?: 'primary' | 'secondary' | 'ghost';\n pill?: boolean;\n block?: string;\n fullWidth?: boolean;\n}\n\nexport interface FieldProps extends BaseHTMLAttributes {\n ref?: Ref<FieldElement>;\n label?: string;\n inline?: boolean;\n}\n\nexport interface TooltipProps extends BaseHTMLAttributes {\n ref?: Ref<TooltipElement>;\n content?: string;\n placement?: string;\n delay?: number | string;\n}\n\nexport interface PopoverProps extends BaseHTMLAttributes {\n ref?: Ref<PopoverElement>;\n open?: boolean;\n placement?: string;\n}\n\nexport interface OriginProps extends BaseHTMLAttributes {\n ref?: Ref<OriginElement>;\n value?: string;\n disabled?: boolean;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioGroupProps extends BaseHTMLAttributes {\n ref?: Ref<RadioGroupElement>;\n value?: string;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\nexport interface RadioInputProps extends BaseHTMLAttributes {\n value?: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nexport interface CurveProps extends BaseHTMLAttributes {\n ref?: Ref<CurveElement>;\n name?: string;\n easingType?: 'cubic-bezier' | 'linear';\n 'easing-type'?: 'cubic-bezier' | 'linear';\n showGrid?: boolean;\n 'show-grid'?: boolean;\n snapToGrid?: boolean;\n 'snap-to-grid'?: boolean;\n gridSize?: number | string;\n 'grid-size'?: number | string;\n}\n\nexport interface CodeProps extends BaseHTMLAttributes {\n language?: string;\n}\n\nexport interface MonitorProps extends BaseHTMLAttributes {}\n\nexport interface MonitorFpsProps extends BaseHTMLAttributes {\n interval?: number | string;\n}\n\nexport interface LogoLoaderProps extends BaseHTMLAttributes {\n intro?: 'wave' | 'particle';\n loading?: boolean;\n size?: number | string;\n}\n\nexport interface ColorPickerProps extends BaseHTMLAttributes {\n ref?: Ref<ColorInputElement>;\n value?: string;\n disabled?: boolean;\n onInput?: CustomEventHandler<ControlEventDetail<string>>;\n onChange?: CustomEventHandler<ControlEventDetail<string>>;\n}\n\n// Base interface for all icon components\nexport interface IconProps extends BaseHTMLAttributes {}\n\n// JSX IntrinsicElements\nexport interface EaseElements {\n // Layout & State\n 'ease-state': StateProps;\n 'ease-panel': PanelProps;\n 'ease-folder': FolderProps;\n 'ease-field': FieldProps;\n 'ease-popover': PopoverProps;\n 'ease-tooltip': TooltipProps;\n\n // Controls\n 'ease-slider': SliderProps;\n 'ease-toggle': ToggleProps;\n 'ease-checkbox': CheckboxProps;\n 'ease-input': InputProps;\n 'ease-number-input': NumberInputProps;\n 'ease-color-input': ColorInputProps;\n 'ease-color-picker': ColorPickerProps;\n 'ease-dropdown': DropdownProps;\n 'ease-button': ButtonProps;\n 'ease-origin': OriginProps;\n 'ease-radio-group': RadioGroupProps;\n 'ease-radio-input': RadioInputProps;\n\n // Advanced\n 'ease-curve': CurveProps;\n 'ease-code': CodeProps;\n\n // Display\n 'ease-monitor': MonitorProps;\n 'ease-monitor-fps': MonitorFpsProps;\n 'ease-logo-loader': LogoLoaderProps;\n\n // Icons - Interface\n 'ease-icon-anchor-add': IconProps;\n 'ease-icon-anchor-remove': IconProps;\n 'ease-icon-arrow-up': IconProps;\n 'ease-icon-arrows-vertical': IconProps;\n 'ease-icon-bezier': IconProps;\n 'ease-icon-bezier-angle': IconProps;\n 'ease-icon-bezier-distribute': IconProps;\n 'ease-icon-bezier-length': IconProps;\n 'ease-icon-bezier-mirror': IconProps;\n 'ease-icon-check': IconProps;\n 'ease-icon-circle-arrow-left': IconProps;\n 'ease-icon-circle-arrow-right': IconProps;\n 'ease-icon-code': IconProps;\n 'ease-icon-dots': IconProps;\n 'ease-icon-mention': IconProps;\n 'ease-icon-minus': IconProps;\n 'ease-icon-picker': IconProps;\n 'ease-icon-plus': IconProps;\n 'ease-icon-settings': IconProps;\n\n // Icons - Animation\n 'ease-icon-chevron': IconProps;\n 'ease-icon-clear': IconProps;\n 'ease-icon-folder': IconProps;\n 'ease-icon-grid': IconProps;\n 'ease-icon-loading': IconProps;\n 'ease-icon-snap': IconProps;\n}\n\n// Augment global JSX namespace\n// This provides type support in both React and non-React environments\ndeclare global {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's JSX namespace for React 17/18/19 (classic JSX transform)\ndeclare module 'react' {\n namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-runtime for React 17+ (new JSX transform)\n// This is required for Next.js App Router and other projects using the new transform\ndeclare module 'react/jsx-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Augment React's jsx-dev-runtime for development mode\ndeclare module 'react/jsx-dev-runtime' {\n export namespace JSX {\n interface IntrinsicElements extends EaseElements {}\n }\n}\n\n// Runtime marker to ensure this module is processed by TypeScript\n// This is needed because purely type-only modules may not trigger augmentation\nexport const __JSX_TYPES_LOADED__ = true;\n"],"mappings":";AA8bO,IAAMA,uBAAuB;","names":["__JSX_TYPES_LOADED__"]}
|