@proyecto-viviana/solidaria-components 0.0.2 → 0.0.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/dist/index.js CHANGED
@@ -1289,3 +1289,4 @@ function Separator(props) {
1289
1289
  }
1290
1290
 
1291
1291
  export { Button, ButtonContext, Checkbox, CheckboxContext, CheckboxGroup, CheckboxGroupContext, CheckboxGroupStateContext, Input, Label, Link, LinkContext, ProgressBar, ProgressBarContext, Radio, RadioContext, RadioGroup, RadioGroupContext, RadioGroupStateContext, Separator, SeparatorContext, TextArea, TextField, TextFieldContext, ToggleSwitch, ToggleSwitchContext, VisuallyHidden, createDataAttributes, dataAttr, filterDOMProps, removeDataAttributes, useRenderProps };
1292
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/utils.tsx","../src/VisuallyHidden.tsx","../src/Button.tsx","../src/Switch.tsx","../src/Checkbox.tsx","../src/RadioGroup.tsx","../src/TextField.tsx","../src/Link.tsx","../src/ProgressBar.tsx","../src/Separator.tsx"],"sourcesContent":["/**\n * Utility functions for solidaria-components\n * Port of react-aria-components/src/utils.tsx\n */\n\nimport {\n type JSX,\n type Accessor,\n createContext,\n useContext,\n createMemo,\n} from 'solid-js';\n\n// ============================================\n// TYPES\n// ============================================\n\n/**\n * Render props pattern - children can be a function that receives state\n */\nexport type RenderChildren<T> = JSX.Element | ((renderProps: T) => JSX.Element);\n\n/**\n * Class name can be a string or a function that computes based on state\n */\nexport type ClassNameOrFunction<T> = string | ((renderProps: T) => string);\n\n/**\n * Style can be an object or a function that computes based on state\n */\nexport type StyleOrFunction<T> = JSX.CSSProperties | ((renderProps: T) => JSX.CSSProperties);\n\n/**\n * Common render props interface\n */\nexport interface RenderPropsBase<T> {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<T>;\n /** The CSS className for the element. A function may be provided to compute the class based on state. */\n class?: ClassNameOrFunction<T>;\n /** The inline style for the element. A function may be provided to compute the style based on state. */\n style?: StyleOrFunction<T>;\n}\n\n/**\n * Slot props for named slots\n */\nexport interface SlotProps {\n /** A slot name for the component. */\n slot?: string;\n}\n\n// ============================================\n// RENDER PROPS\n// ============================================\n\n/**\n * Resolves render props (children, class, style) based on component state\n */\nexport function useRenderProps<T extends object>(\n props: RenderPropsBase<T> & { defaultClassName?: string },\n values: Accessor<T>\n): Accessor<{\n children: JSX.Element;\n class: string;\n style: JSX.CSSProperties | undefined;\n}> {\n return createMemo(() => {\n const currentValues = values();\n const { children, class: className, style, defaultClassName = '' } = props;\n\n // Resolve children\n const resolvedChildren = typeof children === 'function'\n ? children(currentValues)\n : children;\n\n // Resolve class\n const resolvedClass = typeof className === 'function'\n ? className(currentValues)\n : className ?? defaultClassName;\n\n // Resolve style\n const resolvedStyle = typeof style === 'function'\n ? style(currentValues)\n : style;\n\n return {\n children: resolvedChildren,\n class: resolvedClass,\n style: resolvedStyle,\n };\n });\n}\n\n// ============================================\n// CONTEXT UTILITIES\n// ============================================\n\n/**\n * Context value that can be null or the actual value\n */\nexport type ContextValue<T> = T | null;\n\n/**\n * Creates a context with props and ref merging support\n */\nexport function createSlottedContext<T>() {\n return createContext<T | null>(null);\n}\n\n/**\n * Use context with null check\n */\nexport function useSlottedContext<T>(context: ReturnType<typeof createContext<T | null>>): T | null {\n return useContext(context);\n}\n\n// ============================================\n// DATA ATTRIBUTES\n// ============================================\n\n/**\n * Converts boolean state values to data attributes\n */\nexport function dataAttr(value: boolean | undefined): '' | undefined {\n return value ? '' : undefined;\n}\n\n/**\n * Creates data attributes from render props\n */\nexport function createDataAttributes<T extends Record<string, boolean | string | undefined>>(\n values: T\n): Record<string, string | undefined> {\n const result: Record<string, string | undefined> = {};\n\n for (const [key, value] of Object.entries(values)) {\n if (typeof value === 'boolean') {\n result[`data-${camelToKebab(key)}`] = value ? '' : undefined;\n } else if (value !== undefined) {\n result[`data-${camelToKebab(key)}`] = value;\n }\n }\n\n return result;\n}\n\nfunction camelToKebab(str: string): string {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\n// ============================================\n// PROPS UTILITIES\n// ============================================\n\n/**\n * Remove data attributes from props (for internal use)\n */\nexport function removeDataAttributes<T extends Record<string, unknown>>(props: T): T {\n const result: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(props)) {\n if (!key.startsWith('data-')) {\n result[key] = value;\n }\n }\n\n return result as T;\n}\n\n/**\n * Filter DOM props - keep only valid DOM attributes\n */\nexport function filterDOMProps<T extends Record<string, unknown>>(\n props: T,\n options: { global?: boolean } = {}\n): Record<string, unknown> {\n const { global = false } = options;\n const result: Record<string, unknown> = {};\n\n const globalAttrs = new Set([\n 'id', 'class', 'style', 'tabIndex', 'role', 'title', 'lang', 'dir',\n 'hidden', 'draggable', 'accessKey', 'contentEditable', 'spellcheck',\n ]);\n\n const ariaAttrs = /^aria-/;\n const dataAttrs = /^data-/;\n const eventHandlers = /^on[A-Z]/;\n\n for (const [key, value] of Object.entries(props)) {\n if (\n (global && globalAttrs.has(key)) ||\n ariaAttrs.test(key) ||\n dataAttrs.test(key) ||\n eventHandlers.test(key)\n ) {\n result[key] = value;\n }\n }\n\n return result;\n}\n","/**\n * VisuallyHidden component for solidaria-components\n *\n * Hides content visually but keeps it accessible to screen readers.\n * Port of react-aria's VisuallyHidden.\n */\n\nimport { type JSX, type ParentProps, splitProps } from 'solid-js';\nimport { Dynamic } from 'solid-js/web';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface VisuallyHiddenProps extends ParentProps {\n /** The element type to render. @default 'span' */\n elementType?: keyof JSX.IntrinsicElements;\n /** Whether the element should be focusable when focused. */\n isFocusable?: boolean;\n}\n\n// ============================================\n// STYLES\n// ============================================\n\nconst visuallyHiddenStyles: JSX.CSSProperties = {\n border: '0',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(50%)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px',\n 'white-space': 'nowrap',\n};\n\n// ============================================\n// COMPONENT\n// ============================================\n\n/**\n * VisuallyHidden hides its children visually, while keeping content visible to screen readers.\n */\nexport function VisuallyHidden(props: VisuallyHiddenProps): JSX.Element {\n const [local, others] = splitProps(props, ['elementType', 'children', 'isFocusable']);\n\n const elementType = () => local.elementType ?? 'span';\n\n return (\n <Dynamic\n component={elementType()}\n style={visuallyHiddenStyles}\n {...others}\n >\n {local.children}\n </Dynamic>\n );\n}\n","/**\n * Button component for solidaria-components\n *\n * A pre-wired headless button that combines state + aria hooks.\n * Port of react-aria-components/src/Button.tsx\n */\n\nimport {\n type JSX,\n createContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport {\n createButton,\n createFocusRing,\n createHover,\n type AriaButtonProps,\n} from '@proyecto-viviana/solidaria';\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface ButtonRenderProps {\n /** Whether the button is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the button is currently in a pressed state. */\n isPressed: boolean;\n /** Whether the button is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the button is keyboard focused. */\n isFocusVisible: boolean;\n /** Whether the button is disabled. */\n isDisabled: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<AriaButtonProps, 'children'>,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<ButtonRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<ButtonRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<ButtonRenderProps>;\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport const ButtonContext = createContext<ButtonProps | null>(null);\n\n// ============================================\n// COMPONENT\n// ============================================\n\n/**\n * A button allows a user to perform an action.\n *\n * This is a headless component that provides accessibility and state management.\n * Style it using the render props pattern or data attributes.\n *\n * @example\n * ```tsx\n * <Button onPress={() => alert('Pressed!')}>\n * {({ isPressed, isHovered }) => (\n * <span class={isPressed ? 'bg-blue-700' : isHovered ? 'bg-blue-600' : 'bg-blue-500'}>\n * Click me\n * </span>\n * )}\n * </Button>\n * ```\n */\nexport function Button(props: ButtonProps): JSX.Element {\n // Split props\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Helper to resolve isDisabled (handles both boolean and Accessor<boolean>)\n const resolveDisabled = (): boolean => {\n const disabled = ariaProps.isDisabled;\n if (typeof disabled === 'function') {\n return disabled();\n }\n return !!disabled;\n };\n\n // Create button aria props\n const buttonAria = createButton({\n ...ariaProps,\n get isDisabled() {\n return resolveDisabled();\n },\n });\n\n // Create focus ring\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n // Create hover\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return resolveDisabled();\n },\n });\n\n // Render props values\n const renderValues = createMemo<ButtonRenderProps>(() => ({\n isHovered: isHovered(),\n isPressed: buttonAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: resolveDisabled(),\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-Button',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n return filtered;\n });\n\n // Remove ref from spread props to avoid type conflicts\n const cleanButtonProps = () => {\n const { ref: _ref1, ...rest } = buttonAria.buttonProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref2, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref3, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <button\n {...domProps()}\n {...cleanButtonProps()}\n {...cleanFocusProps()}\n {...cleanHoverProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-pressed={buttonAria.isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-disabled={resolveDisabled() || undefined}\n >\n {renderProps().children}\n </button>\n );\n}\n","/**\n * ToggleSwitch component for solidaria-components\n *\n * A pre-wired headless switch that combines state + aria hooks.\n * Port of react-aria-components/src/Switch.tsx\n *\n * Named \"ToggleSwitch\" to avoid conflict with SolidJS's built-in Switch component.\n */\n\nimport {\n type JSX,\n createContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport {\n createSwitch,\n createFocusRing,\n createHover,\n type AriaSwitchProps,\n} from '@proyecto-viviana/solidaria';\nimport { createToggleState, type ToggleState } from '@proyecto-viviana/solid-stately';\nimport { VisuallyHidden } from './VisuallyHidden';\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface ToggleSwitchRenderProps {\n /** Whether the switch is selected. */\n isSelected: boolean;\n /** Whether the switch is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the switch is currently in a pressed state. */\n isPressed: boolean;\n /** Whether the switch is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the switch is keyboard focused. */\n isFocusVisible: boolean;\n /** Whether the switch is disabled. */\n isDisabled: boolean;\n /** Whether the switch is read only. */\n isReadOnly: boolean;\n /** State of the switch. */\n state: ToggleState;\n}\n\nexport interface ToggleSwitchProps\n extends Omit<AriaSwitchProps, 'children'>,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<ToggleSwitchRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<ToggleSwitchRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<ToggleSwitchRenderProps>;\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport const ToggleSwitchContext = createContext<ToggleSwitchProps | null>(null);\n\n// ============================================\n// COMPONENT\n// ============================================\n\n/**\n * A switch allows a user to turn a setting on or off.\n *\n * This is a headless component that provides accessibility and state management.\n * Style it using the render props pattern or data attributes.\n *\n * Named \"ToggleSwitch\" to avoid conflict with SolidJS's built-in Switch component.\n *\n * @example\n * ```tsx\n * <ToggleSwitch>\n * {({ isSelected }) => (\n * <>\n * <span class={`switch-track ${isSelected ? 'bg-blue-500' : 'bg-gray-300'}`}>\n * <span class={`switch-thumb ${isSelected ? 'translate-x-5' : 'translate-x-0'}`} />\n * </span>\n * <span>Enable notifications</span>\n * </>\n * )}\n * </ToggleSwitch>\n * ```\n */\nexport function ToggleSwitch(props: ToggleSwitchProps): JSX.Element {\n let inputRef: HTMLInputElement | null = null;\n\n // Split props\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Create toggle state\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createToggleState({\n get isSelected() { return ariaProps.isSelected; },\n get defaultSelected() { return ariaProps.defaultSelected; },\n get onChange() { return ariaProps.onChange; },\n get isReadOnly() { return ariaProps.isReadOnly; },\n });\n\n // Create switch aria props\n const switchAria = createSwitch(\n () => ({\n ...ariaProps,\n children: typeof local.children === 'function' ? true : local.children,\n }),\n state,\n () => inputRef\n );\n\n // Create focus ring\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n // Create hover\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return ariaProps.isDisabled || ariaProps.isReadOnly;\n },\n });\n\n // Render props values\n const renderValues = createMemo<ToggleSwitchRenderProps>(() => ({\n isSelected: switchAria.isSelected(),\n isHovered: isHovered(),\n isPressed: switchAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: switchAria.isDisabled,\n isReadOnly: switchAria.isReadOnly,\n state,\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-ToggleSwitch',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).id;\n delete (filtered as Record<string, unknown>).onClick;\n return filtered;\n });\n\n // Remove ref from spread props to avoid type conflicts\n const cleanLabelProps = () => {\n const { ref: _ref1, ...rest } = switchAria.labelProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref2, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n const cleanInputProps = () => {\n const { ref: _ref3, ...rest } = switchAria.inputProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref4, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <label\n {...domProps()}\n {...cleanLabelProps()}\n {...cleanHoverProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-selected={switchAria.isSelected() || undefined}\n data-pressed={switchAria.isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-disabled={switchAria.isDisabled || undefined}\n data-readonly={switchAria.isReadOnly || undefined}\n >\n <VisuallyHidden>\n <input\n ref={(el) => (inputRef = el)}\n {...cleanInputProps()}\n {...cleanFocusProps()}\n />\n </VisuallyHidden>\n {renderProps().children}\n </label>\n );\n}\n\n","/**\n * Checkbox and CheckboxGroup components for solidaria-components\n *\n * Pre-wired headless checkbox components that combine state + aria hooks.\n * Port of react-aria-components/src/Checkbox.tsx\n */\n\nimport {\n type JSX,\n type Accessor,\n type ParentProps,\n createContext,\n useContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport {\n createCheckbox,\n createCheckboxGroup,\n createCheckboxGroupItem,\n createFocusRing,\n createHover,\n type AriaCheckboxProps,\n type AriaCheckboxGroupProps,\n} from '@proyecto-viviana/solidaria';\nimport {\n createToggleState,\n createCheckboxGroupState,\n type CheckboxGroupState,\n} from '@proyecto-viviana/solid-stately';\nimport { VisuallyHidden } from './VisuallyHidden';\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface CheckboxGroupRenderProps {\n /** Whether the checkbox group is disabled. */\n isDisabled: boolean;\n /** Whether the checkbox group is read only. */\n isReadOnly: boolean;\n /** Whether the checkbox group is required. */\n isRequired: boolean;\n /** Whether the checkbox group is invalid. */\n isInvalid: boolean;\n /** State of the checkbox group. */\n state: CheckboxGroupState;\n}\n\nexport interface CheckboxRenderProps {\n /** Whether the checkbox is selected. */\n isSelected: boolean;\n /** Whether the checkbox is indeterminate. */\n isIndeterminate: boolean;\n /** Whether the checkbox is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the checkbox is currently in a pressed state. */\n isPressed: boolean;\n /** Whether the checkbox is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the checkbox is keyboard focused. */\n isFocusVisible: boolean;\n /** Whether the checkbox is disabled. */\n isDisabled: boolean;\n /** Whether the checkbox is read only. */\n isReadOnly: boolean;\n /** Whether the checkbox is invalid. */\n isInvalid: boolean;\n /** Whether the checkbox is required. */\n isRequired: boolean;\n}\n\nexport interface CheckboxGroupProps\n extends Omit<AriaCheckboxGroupProps, 'children' | 'label' | 'description' | 'errorMessage'>,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<CheckboxGroupRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CheckboxGroupRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CheckboxGroupRenderProps>;\n}\n\nexport interface CheckboxProps\n extends Omit<AriaCheckboxProps, 'children'>,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<CheckboxRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<CheckboxRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<CheckboxRenderProps>;\n /** Whether the checkbox is indeterminate. */\n isIndeterminate?: boolean;\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport const CheckboxGroupContext = createContext<CheckboxGroupProps | null>(null);\nexport const CheckboxGroupStateContext = createContext<CheckboxGroupState | null>(null);\nexport const CheckboxContext = createContext<CheckboxProps | null>(null);\n\n// ============================================\n// CHECKBOX GROUP COMPONENT\n// ============================================\n\n/**\n * A checkbox group allows a user to select multiple items from a list of options.\n *\n * @example\n * ```tsx\n * <CheckboxGroup>\n * <Checkbox value=\"one\">Option 1</Checkbox>\n * <Checkbox value=\"two\">Option 2</Checkbox>\n * </CheckboxGroup>\n * ```\n */\nexport function CheckboxGroup(props: ParentProps<CheckboxGroupProps>): JSX.Element {\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Create checkbox group state\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createCheckboxGroupState({\n get value() { return ariaProps.value; },\n get defaultValue() { return ariaProps.defaultValue; },\n get onChange() { return ariaProps.onChange; },\n get isDisabled() { return ariaProps.isDisabled; },\n get isReadOnly() { return ariaProps.isReadOnly; },\n get isRequired() { return ariaProps.isRequired; },\n get isInvalid() { return ariaProps.isInvalid; },\n });\n\n // Create checkbox group aria props\n const groupAria = createCheckboxGroup(() => ariaProps, state);\n\n // Render props values\n const renderValues = createMemo<CheckboxGroupRenderProps>(() => ({\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: ariaProps.isRequired ?? false,\n isInvalid: groupAria.isInvalid,\n state,\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-CheckboxGroup',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n // Remove ref from spread props to avoid type conflicts\n const cleanGroupProps = () => {\n const { ref: _ref, ...rest } = groupAria.groupProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <CheckboxGroupStateContext.Provider value={state}>\n <div\n {...domProps()}\n {...cleanGroupProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={ariaProps.isRequired || undefined}\n data-invalid={groupAria.isInvalid || undefined}\n >\n {renderProps().children}\n </div>\n </CheckboxGroupStateContext.Provider>\n );\n}\n\n// ============================================\n// CHECKBOX COMPONENT\n// ============================================\n\n/**\n * A checkbox allows a user to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n *\n * @example\n * ```tsx\n * <Checkbox>\n * {({ isSelected }) => (\n * <>\n * <span class={`checkbox ${isSelected ? 'checked' : ''}`}>\n * {isSelected && '✓'}\n * </span>\n * <span>Accept terms</span>\n * </>\n * )}\n * </Checkbox>\n * ```\n */\nexport function Checkbox(props: CheckboxProps): JSX.Element {\n let inputRef: HTMLInputElement | null = null;\n\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n 'isIndeterminate',\n ]);\n\n // Check if we're inside a CheckboxGroup\n const groupState = useContext(CheckboxGroupStateContext);\n\n // Create appropriate state/aria hooks based on context\n let isSelected: Accessor<boolean>;\n let isPressed: Accessor<boolean>;\n let isDisabled: boolean;\n let isReadOnly: boolean;\n let isInvalid: boolean;\n let labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;\n let inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;\n\n if (groupState) {\n // Inside a CheckboxGroup - use group item\n const itemAria = createCheckboxGroupItem(\n () => ({\n ...ariaProps,\n value: ariaProps.value ?? '',\n children: typeof local.children === 'function' ? true : local.children,\n }),\n groupState,\n () => inputRef\n );\n isSelected = itemAria.isSelected;\n isPressed = itemAria.isPressed;\n isDisabled = itemAria.isDisabled;\n isReadOnly = itemAria.isReadOnly;\n isInvalid = itemAria.isInvalid;\n labelProps = itemAria.labelProps;\n inputProps = itemAria.inputProps;\n } else {\n // Standalone checkbox\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createToggleState({\n get isSelected() { return ariaProps.isSelected; },\n get defaultSelected() { return ariaProps.defaultSelected; },\n get onChange() { return ariaProps.onChange; },\n get isReadOnly() { return ariaProps.isReadOnly; },\n });\n\n const checkboxAria = createCheckbox(\n () => ({\n ...ariaProps,\n isIndeterminate: local.isIndeterminate,\n children: typeof local.children === 'function' ? true : local.children,\n }),\n state,\n () => inputRef\n );\n isSelected = checkboxAria.isSelected;\n isPressed = checkboxAria.isPressed;\n isDisabled = checkboxAria.isDisabled;\n isReadOnly = checkboxAria.isReadOnly;\n isInvalid = checkboxAria.isInvalid;\n labelProps = checkboxAria.labelProps;\n inputProps = checkboxAria.inputProps;\n }\n\n // Create focus ring\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n // Create hover\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return isDisabled || isReadOnly;\n },\n });\n\n // Render props values\n const renderValues = createMemo<CheckboxRenderProps>(() => ({\n isSelected: isSelected(),\n isIndeterminate: local.isIndeterminate ?? false,\n isHovered: isHovered(),\n isPressed: isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled,\n isReadOnly,\n isInvalid,\n isRequired: ariaProps.isRequired ?? false,\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-Checkbox',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).id;\n delete (filtered as Record<string, unknown>).onClick;\n return filtered;\n });\n\n // Remove ref from spread props to avoid type conflicts\n const cleanLabelProps = () => {\n const { ref: _ref1, ...rest } = labelProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref2, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n const cleanInputProps = () => {\n const { ref: _ref3, ...rest } = inputProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref4, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <label\n {...domProps()}\n {...cleanLabelProps()}\n {...cleanHoverProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-selected={isSelected() || undefined}\n data-indeterminate={local.isIndeterminate || undefined}\n data-pressed={isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-disabled={isDisabled || undefined}\n data-readonly={isReadOnly || undefined}\n data-invalid={isInvalid || undefined}\n data-required={ariaProps.isRequired || undefined}\n >\n <VisuallyHidden>\n <input\n ref={(el) => (inputRef = el)}\n {...cleanInputProps()}\n {...cleanFocusProps()}\n />\n </VisuallyHidden>\n {renderProps().children}\n </label>\n );\n}\n","/**\n * RadioGroup and Radio components for solidaria-components\n *\n * Pre-wired headless radio components that combine state + aria hooks.\n * Port of react-aria-components/src/RadioGroup.tsx\n */\n\nimport {\n type JSX,\n type ParentProps,\n createContext,\n useContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport {\n createRadio,\n createRadioGroup,\n createFocusRing,\n createHover,\n type AriaRadioProps,\n type AriaRadioGroupProps,\n} from '@proyecto-viviana/solidaria';\nimport {\n createRadioGroupState,\n type RadioGroupState,\n type RadioGroupProps as RadioGroupStateProps,\n} from '@proyecto-viviana/solid-stately';\nimport { VisuallyHidden } from './VisuallyHidden';\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nexport interface RadioGroupRenderProps {\n /** The orientation of the radio group. */\n orientation: Orientation;\n /** Whether the radio group is disabled. */\n isDisabled: boolean;\n /** Whether the radio group is read only. */\n isReadOnly: boolean;\n /** Whether the radio group is required. */\n isRequired: boolean;\n /** Whether the radio group is invalid. */\n isInvalid: boolean;\n /** State of the radio group. */\n state: RadioGroupState;\n}\n\nexport interface RadioRenderProps {\n /** Whether the radio is selected. */\n isSelected: boolean;\n /** Whether the radio is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the radio is currently in a pressed state. */\n isPressed: boolean;\n /** Whether the radio is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the radio is keyboard focused. */\n isFocusVisible: boolean;\n /** Whether the radio is disabled. */\n isDisabled: boolean;\n /** Whether the radio is read only. */\n isReadOnly: boolean;\n /** Whether the radio is invalid. */\n isInvalid: boolean;\n /** Whether the radio is required. */\n isRequired: boolean;\n}\n\nexport interface RadioGroupProps\n extends Omit<AriaRadioGroupProps, 'children' | 'label' | 'description' | 'errorMessage'>,\n Pick<RadioGroupStateProps, 'value' | 'defaultValue' | 'onChange'>,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<RadioGroupRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<RadioGroupRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<RadioGroupRenderProps>;\n}\n\nexport interface RadioProps\n extends Omit<AriaRadioProps, 'children'>,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<RadioRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<RadioRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<RadioRenderProps>;\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport const RadioGroupContext = createContext<RadioGroupProps | null>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\nexport const RadioContext = createContext<RadioProps | null>(null);\n\n// ============================================\n// RADIO GROUP COMPONENT\n// ============================================\n\n/**\n * A radio group allows a user to select a single item from a list of mutually exclusive options.\n *\n * @example\n * ```tsx\n * <RadioGroup>\n * <Radio value=\"one\">Option 1</Radio>\n * <Radio value=\"two\">Option 2</Radio>\n * </RadioGroup>\n * ```\n */\nexport function RadioGroup(props: ParentProps<RadioGroupProps>): JSX.Element {\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Create radio group state\n // We pass a function that returns props so that createRadioGroupState\n // can access props reactively. The props object itself is a proxy in SolidJS,\n // so accessing props.value inside a reactive context will track changes.\n const state = createRadioGroupState({\n get value() { return props.value; },\n get defaultValue() { return props.defaultValue; },\n get onChange() { return props.onChange; },\n get isDisabled() { return props.isDisabled; },\n get isReadOnly() { return props.isReadOnly; },\n get isRequired() { return props.isRequired; },\n get isInvalid() { return props.isInvalid; },\n });\n\n // Create radio group aria props\n const groupAria = createRadioGroup(() => ariaProps, state);\n\n // Render props values\n const renderValues = createMemo<RadioGroupRenderProps>(() => ({\n orientation: (ariaProps.orientation as Orientation) ?? 'vertical',\n isDisabled: state.isDisabled,\n isReadOnly: state.isReadOnly,\n isRequired: state.isRequired,\n isInvalid: groupAria.isInvalid,\n state,\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-RadioGroup',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n // Remove ref from spread props to avoid type conflicts\n const cleanGroupProps = () => {\n const { ref: _ref, ...rest } = groupAria.radioGroupProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <RadioGroupStateContext.Provider value={state}>\n <div\n {...domProps()}\n {...cleanGroupProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-orientation={ariaProps.orientation ?? 'vertical'}\n data-disabled={state.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-required={state.isRequired || undefined}\n data-invalid={groupAria.isInvalid || undefined}\n >\n {renderProps().children}\n </div>\n </RadioGroupStateContext.Provider>\n );\n}\n\n// ============================================\n// RADIO COMPONENT\n// ============================================\n\n/**\n * Internal Radio implementation that has access to RadioGroupStateContext.\n * This is rendered inside the RadioGroup's context provider.\n */\nfunction RadioImpl(props: { radioProps: RadioProps; state: RadioGroupState }): JSX.Element {\n let inputRef: HTMLInputElement | null = null;\n const { radioProps, state } = props;\n\n const [local, ariaProps] = splitProps(radioProps, [\n 'children',\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Create radio aria props\n const radioAria = createRadio(\n () => ({\n ...ariaProps,\n children: typeof local.children === 'function' ? true : local.children,\n }),\n state,\n () => inputRef\n );\n\n // Create focus ring\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n // Create hover\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return radioAria.isDisabled || state.isReadOnly;\n },\n });\n\n // Render props values\n const renderValues = createMemo<RadioRenderProps>(() => ({\n isSelected: radioAria.isSelected(),\n isHovered: isHovered(),\n isPressed: radioAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: radioAria.isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired,\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-Radio',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).id;\n delete (filtered as Record<string, unknown>).onClick;\n return filtered;\n });\n\n // Remove ref from spread props to avoid type conflicts\n const cleanLabelProps = () => {\n const { ref: _ref1, ...rest } = radioAria.labelProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref2, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n const cleanInputProps = () => {\n const { ref: _ref3, ...rest } = radioAria.inputProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref4, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <label\n {...domProps()}\n {...cleanLabelProps()}\n {...cleanHoverProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-selected={radioAria.isSelected() || undefined}\n data-pressed={radioAria.isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-disabled={radioAria.isDisabled || undefined}\n data-readonly={state.isReadOnly || undefined}\n data-invalid={state.isInvalid || undefined}\n data-required={state.isRequired || undefined}\n >\n <VisuallyHidden>\n <input\n ref={(el) => (inputRef = el)}\n {...cleanInputProps()}\n {...cleanFocusProps()}\n />\n </VisuallyHidden>\n {renderProps().children}\n </label>\n );\n}\n\n/**\n * A radio represents an individual option within a radio group.\n *\n * This component uses a deferred rendering pattern to work around SolidJS's\n * JSX evaluation order. The actual implementation is rendered inside a function\n * that checks for context availability at render time, not component creation time.\n *\n * @example\n * ```tsx\n * <Radio value=\"option1\">\n * {({ isSelected }) => (\n * <>\n * <span class={`radio ${isSelected ? 'selected' : ''}`}>\n * {isSelected && '●'}\n * </span>\n * <span>Option 1</span>\n * </>\n * )}\n * </Radio>\n * ```\n */\nexport function Radio(props: RadioProps): JSX.Element {\n // Store props for deferred access - don't access context here!\n // The context check is deferred to render time via the returned function.\n // This allows Radio to be created as a JSX child before RadioGroup renders.\n\n // Return a getter function that SolidJS will call during render\n // At render time, the RadioGroupStateContext will be available\n return (() => {\n const state = useContext(RadioGroupStateContext);\n if (!state) {\n throw new Error('Radio must be used within a RadioGroup');\n }\n return <RadioImpl radioProps={props} state={state} />;\n }) as unknown as JSX.Element;\n}\n","/**\n * TextField component for solidaria-components\n *\n * A pre-wired headless text field that combines state + aria hooks.\n * Port of react-aria-components/src/TextField.tsx\n */\n\nimport {\n type JSX,\n createContext,\n useContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport {\n createTextField,\n createFocusRing,\n createHover,\n type AriaTextFieldProps,\n} from '@proyecto-viviana/solidaria';\nimport { createTextFieldState } from '@proyecto-viviana/solid-stately';\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface TextFieldRenderProps {\n /** Whether the text field is disabled. */\n isDisabled: boolean;\n /** Whether the value is invalid. */\n isInvalid: boolean;\n /** Whether the text field is read only. */\n isReadOnly: boolean;\n /** Whether the text field is required. */\n isRequired: boolean;\n /** Whether the text field is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the text field is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the text field is keyboard focused. */\n isFocusVisible: boolean;\n}\n\nexport interface TextFieldProps\n extends Omit<AriaTextFieldProps, 'children'>,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<TextFieldRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TextFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TextFieldRenderProps>;\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport interface TextFieldContextValue {\n labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;\n inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n errorMessageProps: JSX.HTMLAttributes<HTMLElement>;\n isInvalid: boolean;\n}\n\nexport const TextFieldContext = createContext<TextFieldContextValue | null>(null);\n\n// ============================================\n// SUB-COMPONENTS\n// ============================================\n\nexport interface LabelProps extends JSX.LabelHTMLAttributes<HTMLLabelElement> {\n children?: JSX.Element;\n}\n\n/**\n * A label element that automatically wires up to the parent TextField context.\n * This enables the proper htmlFor/id relationship between label and input.\n */\nexport function Label(props: LabelProps): JSX.Element {\n const context = useContext(TextFieldContext);\n\n // Merge context labelProps with local props (local props take precedence)\n const mergedProps = () => {\n if (context) {\n const { ref: _ref, ...contextLabelProps } = context.labelProps as Record<string, unknown>;\n return { ...contextLabelProps, ...props };\n }\n return props;\n };\n\n return <label {...mergedProps()}>{props.children}</label>;\n}\n\nexport interface InputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, 'children'> {}\n\n/**\n * An input element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual input element.\n */\nexport function Input(props: InputProps): JSX.Element {\n const context = useContext(TextFieldContext);\n\n // Merge context inputProps with local props (local props take precedence)\n const mergedProps = () => {\n if (context) {\n // Remove ref from context props to avoid conflicts\n const { ref: _ref, ...contextInputProps } = context.inputProps as Record<string, unknown>;\n return { ...contextInputProps, ...props };\n }\n return props;\n };\n\n return <input {...mergedProps()} />;\n}\n\nexport interface TextAreaProps extends Omit<JSX.TextareaHTMLAttributes<HTMLTextAreaElement>, 'children'> {}\n\n/**\n * A textarea element that automatically wires up to the parent TextField context.\n * This enables focus tracking, validation, and accessibility props to flow from\n * the TextField to the actual textarea element.\n */\nexport function TextArea(props: TextAreaProps): JSX.Element {\n const context = useContext(TextFieldContext);\n\n // Merge context inputProps with local props (local props take precedence)\n // Note: TextArea uses inputProps from context since it's an input variant\n const mergedProps = () => {\n if (context) {\n const { ref: _ref, type: _type, ...contextInputProps } = context.inputProps as Record<string, unknown>;\n return { ...contextInputProps, ...props };\n }\n return props;\n };\n\n return <textarea {...mergedProps()} />;\n}\n\n// ============================================\n// COMPONENT\n// ============================================\n\n/**\n * A text field allows a user to enter a plain text value with a keyboard.\n *\n * This is a headless component that provides accessibility and state management.\n * Style it using the render props pattern or data attributes.\n *\n * @example\n * ```tsx\n * <TextField>\n * {({ isInvalid }) => (\n * <>\n * <Label>Email</Label>\n * <Input class={isInvalid ? 'border-red-500' : 'border-gray-300'} />\n * </>\n * )}\n * </TextField>\n * ```\n */\nexport function TextField(props: TextFieldProps): JSX.Element {\n // Split props\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Create text field state\n // Use getters to ensure props are read lazily inside reactive contexts\n const state = createTextFieldState({\n get value() { return ariaProps.value; },\n get defaultValue() { return ariaProps.defaultValue; },\n get onChange() { return ariaProps.onChange; },\n });\n\n // Create text field aria props\n const textFieldAria = createTextField(() => ({\n ...ariaProps,\n value: state.value(),\n onChange: state.setValue,\n }));\n\n // Create focus ring\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n // Create hover\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return ariaProps.isDisabled;\n },\n });\n\n // Render props values\n const renderValues = createMemo<TextFieldRenderProps>(() => ({\n isDisabled: ariaProps.isDisabled || false,\n isInvalid: textFieldAria.isInvalid,\n isReadOnly: ariaProps.isReadOnly || false,\n isRequired: ariaProps.isRequired || false,\n isHovered: isHovered(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-TextField',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps, { global: true });\n delete (filtered as Record<string, unknown>).id;\n return filtered;\n });\n\n // Remove ref from spread props to avoid type conflicts\n const cleanHoverProps = () => {\n const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n // Context value for sub-components\n // Note: We create the value object directly (not in a memo) so it's available\n // immediately when children access the context\n const contextValue: TextFieldContextValue = {\n labelProps: textFieldAria.labelProps as JSX.LabelHTMLAttributes<HTMLLabelElement>,\n inputProps: { ...textFieldAria.inputProps, ...focusProps } as JSX.InputHTMLAttributes<HTMLInputElement>,\n descriptionProps: textFieldAria.descriptionProps as JSX.HTMLAttributes<HTMLElement>,\n errorMessageProps: textFieldAria.errorMessageProps as JSX.HTMLAttributes<HTMLElement>,\n isInvalid: textFieldAria.isInvalid,\n };\n\n return (\n <TextFieldContext.Provider value={contextValue}>\n <div\n {...domProps()}\n {...cleanHoverProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-disabled={ariaProps.isDisabled || undefined}\n data-invalid={textFieldAria.isInvalid || undefined}\n data-readonly={ariaProps.isReadOnly || undefined}\n data-required={ariaProps.isRequired || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n >\n {renderProps().children}\n </div>\n </TextFieldContext.Provider>\n );\n}\n","/**\n * Link component for solidaria-components\n *\n * Pre-wired headless link component that combines aria hooks.\n * Port of react-aria-components/src/Link.tsx\n */\n\nimport {\n type JSX,\n type ParentProps,\n createContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport { Dynamic } from 'solid-js/web';\nimport {\n createLink,\n createFocusRing,\n createHover,\n type AriaLinkProps,\n type HoverEvents,\n} from '@proyecto-viviana/solidaria';\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface LinkRenderProps {\n /** Whether the link is the current item within a list. */\n isCurrent: boolean;\n /** Whether the link is currently hovered with a mouse. */\n isHovered: boolean;\n /** Whether the link is currently in a pressed state. */\n isPressed: boolean;\n /** Whether the link is focused, either via a mouse or keyboard. */\n isFocused: boolean;\n /** Whether the link is keyboard focused. */\n isFocusVisible: boolean;\n /** Whether the link is disabled. */\n isDisabled: boolean;\n}\n\nexport interface LinkProps\n extends Omit<AriaLinkProps, 'elementType'>,\n HoverEvents,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<LinkRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<LinkRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<LinkRenderProps>;\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport const LinkContext = createContext<LinkProps | null>(null);\n\n// ============================================\n// LINK COMPONENT\n// ============================================\n\n/**\n * A link allows a user to navigate to another page or resource within a web page\n * or application.\n *\n * @example\n * ```tsx\n * <Link href=\"https://example.com\">Visit Example</Link>\n *\n * // With render props\n * <Link href=\"/about\">\n * {({ isHovered, isFocusVisible }) => (\n * <span class={isHovered ? 'underline' : ''}>\n * About Us\n * </span>\n * )}\n * </Link>\n * ```\n */\nexport function Link(props: ParentProps<LinkProps>): JSX.Element {\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n 'onHoverStart',\n 'onHoverEnd',\n 'onHoverChange',\n ]);\n\n // Determine element type - use 'a' if href is provided and not disabled\n const elementType = () => {\n if (ariaProps.href && !ariaProps.isDisabled) {\n return 'a';\n }\n return 'span';\n };\n\n // Create link aria props\n const linkAria = createLink({\n get elementType() { return elementType(); },\n get isDisabled() { return ariaProps.isDisabled; },\n get href() { return ariaProps.href; },\n get target() { return ariaProps.target; },\n get rel() { return ariaProps.rel; },\n get onPress() { return ariaProps.onPress; },\n get onPressStart() { return ariaProps.onPressStart; },\n get onPressEnd() { return ariaProps.onPressEnd; },\n get onClick() { return ariaProps.onClick; },\n get onFocus() { return ariaProps.onFocus; },\n get onBlur() { return ariaProps.onBlur; },\n get onFocusChange() { return ariaProps.onFocusChange; },\n get onKeyDown() { return ariaProps.onKeyDown; },\n get onKeyUp() { return ariaProps.onKeyUp; },\n get autoFocus() { return ariaProps.autoFocus; },\n get 'aria-current'() { return ariaProps['aria-current']; },\n get 'aria-label'() { return ariaProps['aria-label']; },\n get 'aria-labelledby'() { return ariaProps['aria-labelledby']; },\n get 'aria-describedby'() { return ariaProps['aria-describedby']; },\n });\n\n // Create focus ring\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n // Create hover\n const { isHovered, hoverProps } = createHover({\n get isDisabled() { return ariaProps.isDisabled ?? false; },\n get onHoverStart() { return local.onHoverStart; },\n get onHoverEnd() { return local.onHoverEnd; },\n get onHoverChange() { return local.onHoverChange; },\n });\n\n // Render props values\n const renderValues = createMemo<LinkRenderProps>(() => ({\n isCurrent: !!ariaProps['aria-current'],\n isHovered: isHovered(),\n isPressed: linkAria.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: ariaProps.isDisabled ?? false,\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-Link',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n // Remove ref from spread props to avoid type conflicts\n const cleanLinkProps = () => {\n const { ref: _ref1, ...rest } = linkAria.linkProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref2, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref3, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <Dynamic\n component={elementType()}\n {...domProps()}\n {...cleanLinkProps()}\n {...cleanHoverProps()}\n {...cleanFocusProps()}\n class={renderProps().class}\n style={renderProps().style}\n data-hovered={isHovered() || undefined}\n data-pressed={linkAria.isPressed() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-current={!!ariaProps['aria-current'] || undefined}\n data-disabled={ariaProps.isDisabled || undefined}\n >\n {renderProps().children}\n </Dynamic>\n );\n}\n","/**\n * ProgressBar component for solidaria-components\n *\n * Pre-wired headless progress bar component that combines aria hooks.\n * Port of react-aria-components/src/ProgressBar.tsx\n */\n\nimport {\n type JSX,\n type ParentProps,\n createContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport {\n createProgressBar,\n type AriaProgressBarProps,\n} from '@proyecto-viviana/solidaria';\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface ProgressBarRenderProps {\n /** The value as a percentage between the minimum and maximum (0-100). */\n percentage: number | undefined;\n /** A formatted version of the value. */\n valueText: string | undefined;\n /** Whether the progress bar is indeterminate. */\n isIndeterminate: boolean;\n}\n\nexport interface ProgressBarProps\n extends AriaProgressBarProps,\n SlotProps {\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<ProgressBarRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<ProgressBarRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<ProgressBarRenderProps>;\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport const ProgressBarContext = createContext<ProgressBarProps | null>(null);\n\n// ============================================\n// UTILITIES\n// ============================================\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\n// ============================================\n// PROGRESSBAR COMPONENT\n// ============================================\n\n/**\n * Progress bars show either determinate or indeterminate progress of an operation\n * over time.\n *\n * @example\n * ```tsx\n * <ProgressBar value={50}>\n * {({ percentage, valueText }) => (\n * <>\n * <Label>Loading...</Label>\n * <span>{valueText}</span>\n * <div class=\"bar\" style={{ width: `${percentage}%` }} />\n * </>\n * )}\n * </ProgressBar>\n * ```\n */\nexport function ProgressBar(props: ParentProps<ProgressBarProps>): JSX.Element {\n const [local, ariaProps] = splitProps(props, [\n 'children',\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Get values for calculations\n const value = () => ariaProps.value ?? 0;\n const minValue = () => ariaProps.minValue ?? 0;\n const maxValue = () => ariaProps.maxValue ?? 100;\n const isIndeterminate = () => ariaProps.isIndeterminate ?? false;\n\n // Create progress bar aria props\n const progressAria = createProgressBar({\n get value() { return ariaProps.value; },\n get minValue() { return ariaProps.minValue; },\n get maxValue() { return ariaProps.maxValue; },\n get valueLabel() { return ariaProps.valueLabel; },\n get isIndeterminate() { return ariaProps.isIndeterminate; },\n get formatOptions() { return ariaProps.formatOptions; },\n get label() { return ariaProps.label; },\n get 'aria-label'() { return ariaProps['aria-label']; },\n get 'aria-labelledby'() { return ariaProps['aria-labelledby']; },\n get 'aria-describedby'() { return ariaProps['aria-describedby']; },\n get 'aria-details'() { return ariaProps['aria-details']; },\n });\n\n // Calculate percentage\n const percentage = createMemo(() => {\n if (isIndeterminate()) {\n return undefined;\n }\n const clampedValue = clamp(value(), minValue(), maxValue());\n return ((clampedValue - minValue()) / (maxValue() - minValue())) * 100;\n });\n\n // Get value text from aria props\n const valueText = createMemo(() => {\n return progressAria.progressBarProps['aria-valuetext'] as string | undefined;\n });\n\n // Render props values\n const renderValues = createMemo<ProgressBarRenderProps>(() => ({\n percentage: percentage(),\n valueText: valueText(),\n isIndeterminate: isIndeterminate(),\n }));\n\n // Resolve render props\n const renderProps = useRenderProps(\n {\n children: local.children,\n class: local.class,\n style: local.style,\n defaultClassName: 'solidaria-ProgressBar',\n },\n renderValues\n );\n\n // Filter DOM props\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n return (\n <div\n {...domProps()}\n {...progressAria.progressBarProps}\n class={renderProps().class}\n style={renderProps().style}\n slot={local.slot}\n >\n {renderProps().children}\n </div>\n );\n}\n","/**\n * Separator component for solidaria-components\n *\n * Pre-wired headless separator component that combines aria hooks.\n * Port of react-aria-components/src/Separator.tsx\n */\n\nimport {\n type JSX,\n createContext,\n createMemo,\n splitProps,\n} from 'solid-js';\nimport { Dynamic } from 'solid-js/web';\nimport {\n createSeparator,\n type AriaSeparatorProps,\n type Orientation,\n} from '@proyecto-viviana/solidaria';\nimport {\n type SlotProps,\n filterDOMProps,\n} from './utils';\n\n// ============================================\n// TYPES\n// ============================================\n\nexport interface SeparatorRenderProps {\n /** The orientation of the separator. */\n orientation: Orientation;\n}\n\nexport interface SeparatorProps\n extends AriaSeparatorProps,\n SlotProps {\n /** The CSS className for the element. A function may be provided to receive render props. */\n class?: string | ((renderProps: SeparatorRenderProps) => string);\n /** The inline style for the element. A function may be provided to receive render props. */\n style?: JSX.CSSProperties | ((renderProps: SeparatorRenderProps) => JSX.CSSProperties);\n}\n\n// ============================================\n// CONTEXT\n// ============================================\n\nexport const SeparatorContext = createContext<SeparatorProps | null>(null);\n\n// ============================================\n// SEPARATOR COMPONENT\n// ============================================\n\n/**\n * A separator is a visual divider between two groups of content,\n * e.g. groups of menu items or sections of a page.\n *\n * @example\n * ```tsx\n * <Separator />\n *\n * // Vertical separator\n * <Separator orientation=\"vertical\" />\n *\n * // Custom element type\n * <Separator elementType=\"div\" />\n * ```\n */\nexport function Separator(props: SeparatorProps): JSX.Element {\n const [local, ariaProps] = splitProps(props, [\n 'class',\n 'style',\n 'slot',\n ]);\n\n // Determine the element type\n const elementType = createMemo(() => {\n let element = ariaProps.elementType || 'hr';\n // If vertical and using hr, switch to div since hr is inherently horizontal\n if (element === 'hr' && ariaProps.orientation === 'vertical') {\n element = 'div';\n }\n return element;\n });\n\n // Create separator aria props\n const separatorAria = createSeparator({\n get orientation() { return ariaProps.orientation; },\n get elementType() { return elementType(); },\n get 'aria-label'() { return ariaProps['aria-label']; },\n get 'aria-labelledby'() { return ariaProps['aria-labelledby']; },\n get id() { return ariaProps.id; },\n });\n\n // Render props values\n const renderValues = createMemo<SeparatorRenderProps>(() => ({\n orientation: ariaProps.orientation ?? 'horizontal',\n }));\n\n // Resolve class\n const resolvedClass = createMemo(() => {\n const cls = local.class;\n if (typeof cls === 'function') {\n return cls(renderValues());\n }\n return cls ?? 'solidaria-Separator';\n });\n\n // Resolve style\n const resolvedStyle = createMemo(() => {\n const style = local.style;\n if (typeof style === 'function') {\n return style(renderValues());\n }\n return style;\n });\n\n // Filter DOM props\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n return (\n <Dynamic\n component={elementType()}\n {...domProps()}\n {...separatorAria.separatorProps}\n class={resolvedClass()}\n style={resolvedStyle()}\n slot={local.slot}\n />\n );\n}\n"],"names":["useRenderProps","props","values","createMemo","currentValues","children","class","className","style","defaultClassName","resolvedChildren","resolvedClass","resolvedStyle","dataAttr","value","undefined","createDataAttributes","result","key","Object","entries","camelToKebab","str","replace","toLowerCase","removeDataAttributes","startsWith","filterDOMProps","options","global","globalAttrs","Set","ariaAttrs","dataAttrs","eventHandlers","has","test","visuallyHiddenStyles","border","clip","height","margin","overflow","padding","position","width","VisuallyHidden","local","others","splitProps","elementType","_$createComponent","Dynamic","_$mergeProps","component","ButtonContext","createContext","Button","ariaProps","resolveDisabled","disabled","isDisabled","buttonAria","createButton","isFocused","isFocusVisible","focusProps","createFocusRing","isHovered","hoverProps","createHover","renderValues","isPressed","renderProps","domProps","filtered","cleanButtonProps","ref","_ref1","rest","buttonProps","cleanFocusProps","_ref2","cleanHoverProps","_ref3","_el$","_tmpl$","_$spread","_$insert","ToggleSwitchContext","ToggleSwitch","inputRef","state","createToggleState","isSelected","defaultSelected","onChange","isReadOnly","switchAria","createSwitch","id","onClick","cleanLabelProps","labelProps","cleanInputProps","inputProps","_ref4","_tmpl$2","_el$2","_$use","el","CheckboxGroupContext","CheckboxGroupStateContext","CheckboxContext","CheckboxGroup","createCheckboxGroupState","defaultValue","isRequired","isInvalid","groupAria","createCheckboxGroup","cleanGroupProps","_ref","groupProps","Provider","Checkbox","groupState","useContext","itemAria","createCheckboxGroupItem","checkboxAria","createCheckbox","isIndeterminate","_tmpl$3","_el$3","RadioGroupContext","RadioGroupStateContext","RadioContext","RadioGroup","createRadioGroupState","createRadioGroup","orientation","radioGroupProps","RadioImpl","radioProps","radioAria","createRadio","Radio","Error","TextFieldContext","Label","context","mergedProps","contextLabelProps","Input","contextInputProps","TextArea","type","_type","TextField","createTextFieldState","textFieldAria","createTextField","setValue","contextValue","descriptionProps","errorMessageProps","_el$4","_tmpl$4","LinkContext","Link","href","linkAria","createLink","target","rel","onPress","onPressStart","onPressEnd","onFocus","onBlur","onFocusChange","onKeyDown","onKeyUp","autoFocus","onHoverStart","onHoverEnd","onHoverChange","isCurrent","cleanLinkProps","linkProps","ProgressBarContext","clamp","min","max","Math","ProgressBar","minValue","maxValue","progressAria","createProgressBar","valueLabel","formatOptions","label","percentage","clampedValue","valueText","progressBarProps","slot","SeparatorContext","Separator","element","separatorAria","createSeparator","cls","separatorProps"],"mappings":"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"}
package/package.json CHANGED
@@ -1,52 +1,53 @@
1
- {
2
- "name": "@proyecto-viviana/solidaria-components",
3
- "version": "0.0.2",
4
- "description": "Pre-wired headless components for SolidJS - port of react-aria-components",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "solid": "./src/index.ts",
12
- "import": "./dist/index.js",
13
- "types": "./dist/index.d.ts"
14
- }
15
- },
16
- "files": [
17
- "dist",
18
- "src"
19
- ],
20
- "sideEffects": false,
21
- "scripts": {
22
- "build": "rimraf dist tsconfig.build.tsbuildinfo && vite build && tsc -p tsconfig.build.json",
23
- "dev": "vite build --watch",
24
- "prepublishOnly": "bun run build"
25
- },
26
- "dependencies": {
27
- "@proyecto-viviana/solidaria": "^0.0.1",
28
- "@proyecto-viviana/solid-stately": "^0.0.1"
29
- },
30
- "peerDependencies": {
31
- "solid-js": "^1.9.0"
32
- },
33
- "devDependencies": {
34
- "solid-js": "^1.9.10"
35
- },
36
- "keywords": [
37
- "solid",
38
- "solidjs",
39
- "accessibility",
40
- "aria",
41
- "headless",
42
- "components"
43
- ],
44
- "license": "MIT",
45
- "repository": {
46
- "type": "git",
47
- "url": "https://github.com/proyecto-viviana/proyecto-viviana"
48
- },
49
- "publishConfig": {
50
- "access": "public"
51
- }
52
- }
1
+ {
2
+ "name": "@proyecto-viviana/solidaria-components",
3
+ "version": "0.0.4",
4
+ "description": "Pre-wired headless components for SolidJS - port of react-aria-components",
5
+ "type": "module",
6
+ "main": "./dist/index.ssr.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "solid": "./dist/index.js",
12
+ "import": "./dist/index.js",
13
+ "node": "./dist/index.ssr.js",
14
+ "types": "./dist/index.d.ts"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "src"
20
+ ],
21
+ "sideEffects": false,
22
+ "scripts": {
23
+ "build": "rimraf dist tsconfig.build.tsbuildinfo && vite build && vite build --ssr && tsc -p tsconfig.build.json",
24
+ "dev": "vite build --watch",
25
+ "prepublishOnly": "bun run build"
26
+ },
27
+ "dependencies": {
28
+ "@proyecto-viviana/solidaria": "^0.0.1",
29
+ "@proyecto-viviana/solid-stately": "^0.0.1"
30
+ },
31
+ "peerDependencies": {
32
+ "solid-js": "^1.9.0"
33
+ },
34
+ "devDependencies": {
35
+ "solid-js": "^1.9.10"
36
+ },
37
+ "keywords": [
38
+ "solid",
39
+ "solidjs",
40
+ "accessibility",
41
+ "aria",
42
+ "headless",
43
+ "components"
44
+ ],
45
+ "license": "MIT",
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "https://github.com/proyecto-viviana/proyecto-viviana"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ }
53
+ }