@proyecto-viviana/solidaria-components 0.3.2 → 0.4.0
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/ActionBar.js +184 -0
- package/dist/ActionBar.js.map +1 -0
- package/dist/ActionBar.jsx +128 -0
- package/dist/ActionBar.jsx.map +1 -0
- package/dist/ActionGroup.js +179 -0
- package/dist/ActionGroup.js.map +1 -0
- package/dist/ActionGroup.jsx +129 -0
- package/dist/ActionGroup.jsx.map +1 -0
- package/dist/Alert.js +111 -0
- package/dist/Alert.js.map +1 -0
- package/dist/Alert.jsx +82 -0
- package/dist/Alert.jsx.map +1 -0
- package/dist/Autocomplete.js +130 -0
- package/dist/Autocomplete.js.map +1 -0
- package/dist/Autocomplete.jsx +116 -0
- package/dist/Autocomplete.jsx.map +1 -0
- package/dist/Breadcrumbs.d.ts.map +1 -1
- package/dist/Breadcrumbs.js +334 -0
- package/dist/Breadcrumbs.js.map +1 -0
- package/dist/Breadcrumbs.jsx +266 -0
- package/dist/Breadcrumbs.jsx.map +1 -0
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js +348 -0
- package/dist/Button.js.map +1 -0
- package/dist/Button.jsx +314 -0
- package/dist/Button.jsx.map +1 -0
- package/dist/Calendar.d.ts +4 -4
- package/dist/Calendar.d.ts.map +1 -1
- package/dist/Calendar.js +538 -0
- package/dist/Calendar.js.map +1 -0
- package/dist/Calendar.jsx +333 -0
- package/dist/Calendar.jsx.map +1 -0
- package/dist/CalendarPicker.d.ts +33 -0
- package/dist/CalendarPicker.d.ts.map +1 -0
- package/dist/CalendarPicker.js +44 -0
- package/dist/CalendarPicker.js.map +1 -0
- package/dist/CalendarPicker.jsx +44 -0
- package/dist/CalendarPicker.jsx.map +1 -0
- package/dist/Checkbox.d.ts +83 -4
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +923 -0
- package/dist/Checkbox.js.map +1 -0
- package/dist/Checkbox.jsx +707 -0
- package/dist/Checkbox.jsx.map +1 -0
- package/dist/Collection.d.ts.map +1 -1
- package/dist/Collection.js +202 -0
- package/dist/Collection.js.map +1 -0
- package/dist/Collection.jsx +152 -0
- package/dist/Collection.jsx.map +1 -0
- package/dist/Color.d.ts.map +1 -1
- package/dist/Color.js +1720 -0
- package/dist/Color.js.map +1 -0
- package/dist/Color.jsx +1344 -0
- package/dist/Color.jsx.map +1 -0
- package/dist/ColorEditor.js +208 -0
- package/dist/ColorEditor.js.map +1 -0
- package/dist/ColorEditor.jsx +120 -0
- package/dist/ColorEditor.jsx.map +1 -0
- package/dist/ComboBox.d.ts +4 -4
- package/dist/ComboBox.d.ts.map +1 -1
- package/dist/ComboBox.js +992 -0
- package/dist/ComboBox.js.map +1 -0
- package/dist/ComboBox.jsx +714 -0
- package/dist/ComboBox.jsx.map +1 -0
- package/dist/ContextualHelpTrigger.js +146 -0
- package/dist/ContextualHelpTrigger.js.map +1 -0
- package/dist/ContextualHelpTrigger.jsx +109 -0
- package/dist/ContextualHelpTrigger.jsx.map +1 -0
- package/dist/DateField.d.ts +3 -3
- package/dist/DateField.d.ts.map +1 -1
- package/dist/DateField.js +4 -0
- package/dist/DateField.jsx +4 -0
- package/dist/DateField2.js +499 -0
- package/dist/DateField2.js.map +1 -0
- package/dist/DateField2.jsx +317 -0
- package/dist/DateField2.jsx.map +1 -0
- package/dist/DatePicker.d.ts +4 -4
- package/dist/DatePicker.d.ts.map +1 -1
- package/dist/DatePicker.js +991 -0
- package/dist/DatePicker.js.map +1 -0
- package/dist/DatePicker.jsx +682 -0
- package/dist/DatePicker.jsx.map +1 -0
- package/dist/Dialog.d.ts.map +1 -1
- package/dist/Dialog.js +337 -0
- package/dist/Dialog.js.map +1 -0
- package/dist/Dialog.jsx +192 -0
- package/dist/Dialog.jsx.map +1 -0
- package/dist/Disclosure.d.ts.map +1 -1
- package/dist/Disclosure.js +328 -0
- package/dist/Disclosure.js.map +1 -0
- package/dist/Disclosure.jsx +230 -0
- package/dist/Disclosure.jsx.map +1 -0
- package/dist/DragAndDrop.d.ts.map +1 -1
- package/dist/DragAndDrop.js +176 -0
- package/dist/DragAndDrop.js.map +1 -0
- package/dist/DragAndDrop.jsx +160 -0
- package/dist/DragAndDrop.jsx.map +1 -0
- package/dist/DropZone.d.ts.map +1 -1
- package/dist/DropZone.js +189 -0
- package/dist/DropZone.js.map +1 -0
- package/dist/DropZone.jsx +144 -0
- package/dist/DropZone.jsx.map +1 -0
- package/dist/FieldError.js +66 -0
- package/dist/FieldError.js.map +1 -0
- package/dist/FieldError.jsx +47 -0
- package/dist/FieldError.jsx.map +1 -0
- package/dist/FileTrigger.js +79 -0
- package/dist/FileTrigger.js.map +1 -0
- package/dist/FileTrigger.jsx +49 -0
- package/dist/FileTrigger.jsx.map +1 -0
- package/dist/Focusable.js +70 -0
- package/dist/Focusable.js.map +1 -0
- package/dist/Focusable.jsx +69 -0
- package/dist/Focusable.jsx.map +1 -0
- package/dist/Form.js +99 -0
- package/dist/Form.js.map +1 -0
- package/dist/Form.jsx +73 -0
- package/dist/Form.jsx.map +1 -0
- package/dist/GridList.d.ts +34 -2
- package/dist/GridList.d.ts.map +1 -1
- package/dist/GridList.js +723 -0
- package/dist/GridList.js.map +1 -0
- package/dist/GridList.jsx +552 -0
- package/dist/GridList.jsx.map +1 -0
- package/dist/HiddenTimeInput.js +104 -0
- package/dist/HiddenTimeInput.js.map +1 -0
- package/dist/HiddenTimeInput.jsx +69 -0
- package/dist/HiddenTimeInput.jsx.map +1 -0
- package/dist/Icon.d.ts.map +1 -1
- package/dist/Icon.js +127 -0
- package/dist/Icon.js.map +1 -0
- package/dist/Icon.jsx +72 -0
- package/dist/Icon.jsx.map +1 -0
- package/dist/Keyboard.js +30 -0
- package/dist/Keyboard.js.map +1 -0
- package/dist/Keyboard.jsx +24 -0
- package/dist/Keyboard.jsx.map +1 -0
- package/dist/Landmark.js +134 -0
- package/dist/Landmark.js.map +1 -0
- package/dist/Landmark.jsx +118 -0
- package/dist/Landmark.jsx.map +1 -0
- package/dist/Link.d.ts.map +1 -1
- package/dist/Link.js +219 -0
- package/dist/Link.js.map +1 -0
- package/dist/Link.jsx +189 -0
- package/dist/Link.jsx.map +1 -0
- package/dist/ListBox.d.ts.map +1 -1
- package/dist/ListBox.js +670 -0
- package/dist/ListBox.js.map +1 -0
- package/dist/ListBox.jsx +508 -0
- package/dist/ListBox.jsx.map +1 -0
- package/dist/Menu.d.ts +27 -9
- package/dist/Menu.d.ts.map +1 -1
- package/dist/Menu.js +1254 -0
- package/dist/Menu.js.map +1 -0
- package/dist/Menu.jsx +1042 -0
- package/dist/Menu.jsx.map +1 -0
- package/dist/Meter.d.ts.map +1 -1
- package/dist/Meter.js +123 -0
- package/dist/Meter.js.map +1 -0
- package/dist/Meter.jsx +107 -0
- package/dist/Meter.jsx.map +1 -0
- package/dist/Modal.d.ts.map +1 -1
- package/dist/Modal.js +380 -0
- package/dist/Modal.js.map +1 -0
- package/dist/Modal.jsx +314 -0
- package/dist/Modal.jsx.map +1 -0
- package/dist/NumberField.d.ts +3 -3
- package/dist/NumberField.d.ts.map +1 -1
- package/dist/NumberField.js +573 -0
- package/dist/NumberField.js.map +1 -0
- package/dist/NumberField.jsx +443 -0
- package/dist/NumberField.jsx.map +1 -0
- package/dist/Popover.d.ts +10 -2
- package/dist/Popover.d.ts.map +1 -1
- package/dist/Popover.js +464 -0
- package/dist/Popover.js.map +1 -0
- package/dist/Popover.jsx +333 -0
- package/dist/Popover.jsx.map +1 -0
- package/dist/Pressable.js +69 -0
- package/dist/Pressable.js.map +1 -0
- package/dist/Pressable.jsx +68 -0
- package/dist/Pressable.jsx.map +1 -0
- package/dist/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar.js +130 -0
- package/dist/ProgressBar.js.map +1 -0
- package/dist/ProgressBar.jsx +114 -0
- package/dist/ProgressBar.jsx.map +1 -0
- package/dist/RadioGroup.d.ts +82 -4
- package/dist/RadioGroup.d.ts.map +1 -1
- package/dist/RadioGroup.js +931 -0
- package/dist/RadioGroup.js.map +1 -0
- package/dist/RadioGroup.jsx +681 -0
- package/dist/RadioGroup.jsx.map +1 -0
- package/dist/RangeCalendar.d.ts.map +1 -1
- package/dist/RangeCalendar.js +410 -0
- package/dist/RangeCalendar.js.map +1 -0
- package/dist/RangeCalendar.jsx +253 -0
- package/dist/RangeCalendar.jsx.map +1 -0
- package/dist/RouterProvider.js +118 -0
- package/dist/RouterProvider.js.map +1 -0
- package/dist/RouterProvider.jsx +112 -0
- package/dist/RouterProvider.jsx.map +1 -0
- package/dist/SearchField.d.ts +2 -2
- package/dist/SearchField.d.ts.map +1 -1
- package/dist/SearchField.js +643 -0
- package/dist/SearchField.js.map +1 -0
- package/dist/SearchField.jsx +526 -0
- package/dist/SearchField.jsx.map +1 -0
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +1031 -0
- package/dist/Select.js.map +1 -0
- package/dist/Select.jsx +744 -0
- package/dist/Select.jsx.map +1 -0
- package/dist/SelectionIndicator.d.ts.map +1 -1
- package/dist/SelectionIndicator.js +86 -0
- package/dist/SelectionIndicator.js.map +1 -0
- package/dist/SelectionIndicator.jsx +50 -0
- package/dist/SelectionIndicator.jsx.map +1 -0
- package/dist/Separator.js +97 -0
- package/dist/Separator.js.map +1 -0
- package/dist/Separator.jsx +85 -0
- package/dist/Separator.jsx.map +1 -0
- package/dist/SharedElementTransition.d.ts.map +1 -1
- package/dist/SharedElementTransition.js +165 -0
- package/dist/SharedElementTransition.js.map +1 -0
- package/dist/SharedElementTransition.jsx +138 -0
- package/dist/SharedElementTransition.jsx.map +1 -0
- package/dist/Slider.d.ts +33 -1
- package/dist/Slider.d.ts.map +1 -1
- package/dist/Slider.js +515 -0
- package/dist/Slider.js.map +1 -0
- package/dist/Slider.jsx +403 -0
- package/dist/Slider.jsx.map +1 -0
- package/dist/StepList.js +198 -0
- package/dist/StepList.js.map +1 -0
- package/dist/StepList.jsx +141 -0
- package/dist/StepList.jsx.map +1 -0
- package/dist/Switch.d.ts +65 -2
- package/dist/Switch.d.ts.map +1 -1
- package/dist/Switch.js +534 -0
- package/dist/Switch.js.map +1 -0
- package/dist/Switch.jsx +393 -0
- package/dist/Switch.jsx.map +1 -0
- package/dist/Table.d.ts +48 -0
- package/dist/Table.d.ts.map +1 -1
- package/dist/Table.js +1759 -0
- package/dist/Table.js.map +1 -0
- package/dist/Table.jsx +1348 -0
- package/dist/Table.jsx.map +1 -0
- package/dist/Tabs.d.ts +0 -4
- package/dist/Tabs.d.ts.map +1 -1
- package/dist/Tabs.js +595 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tabs.jsx +367 -0
- package/dist/Tabs.jsx.map +1 -0
- package/dist/TagGroup.d.ts.map +1 -1
- package/dist/TagGroup.js +378 -0
- package/dist/TagGroup.js.map +1 -0
- package/dist/TagGroup.jsx +270 -0
- package/dist/TagGroup.jsx.map +1 -0
- package/dist/Text.d.ts +18 -6
- package/dist/Text.d.ts.map +1 -1
- package/dist/Text.js +42 -0
- package/dist/Text.js.map +1 -0
- package/dist/Text.jsx +35 -0
- package/dist/Text.jsx.map +1 -0
- package/dist/TextField.d.ts +6 -6
- package/dist/TextField.d.ts.map +1 -1
- package/dist/TextField.js +436 -0
- package/dist/TextField.js.map +1 -0
- package/dist/TextField.jsx +403 -0
- package/dist/TextField.jsx.map +1 -0
- package/dist/TimeField.d.ts +3 -3
- package/dist/TimeField.d.ts.map +1 -1
- package/dist/TimeField.js +372 -0
- package/dist/TimeField.js.map +1 -0
- package/dist/TimeField.jsx +224 -0
- package/dist/TimeField.jsx.map +1 -0
- package/dist/Toast.d.ts +14 -0
- package/dist/Toast.d.ts.map +1 -1
- package/dist/Toast.js +551 -0
- package/dist/Toast.js.map +1 -0
- package/dist/Toast.jsx +361 -0
- package/dist/Toast.jsx.map +1 -0
- package/dist/ToggleButton.d.ts.map +1 -1
- package/dist/ToggleButton.js +123 -0
- package/dist/ToggleButton.js.map +1 -0
- package/dist/ToggleButton.jsx +88 -0
- package/dist/ToggleButton.jsx.map +1 -0
- package/dist/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/ToggleButtonGroup.js +114 -0
- package/dist/ToggleButtonGroup.js.map +1 -0
- package/dist/ToggleButtonGroup.jsx +85 -0
- package/dist/ToggleButtonGroup.jsx.map +1 -0
- package/dist/Toolbar.js +112 -0
- package/dist/Toolbar.js.map +1 -0
- package/dist/Toolbar.jsx +92 -0
- package/dist/Toolbar.jsx.map +1 -0
- package/dist/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip.js +539 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/Tooltip.jsx +465 -0
- package/dist/Tooltip.jsx.map +1 -0
- package/dist/Tree.d.ts +14 -2
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +1424 -0
- package/dist/Tree.js.map +1 -0
- package/dist/Tree.jsx +1172 -0
- package/dist/Tree.jsx.map +1 -0
- package/dist/Virtualizer.d.ts +16 -2
- package/dist/Virtualizer.d.ts.map +1 -1
- package/dist/Virtualizer.js +2 -0
- package/dist/Virtualizer.jsx +2 -0
- package/dist/Virtualizer2.js +751 -0
- package/dist/Virtualizer2.js.map +1 -0
- package/dist/Virtualizer2.jsx +730 -0
- package/dist/Virtualizer2.jsx.map +1 -0
- package/dist/VirtualizerLayouts.d.ts +18 -0
- package/dist/VirtualizerLayouts.d.ts.map +1 -1
- package/dist/VisuallyHidden.js +42 -0
- package/dist/VisuallyHidden.js.map +1 -0
- package/dist/VisuallyHidden.jsx +35 -0
- package/dist/VisuallyHidden.jsx.map +1 -0
- package/dist/contexts.js +33 -0
- package/dist/contexts.js.map +1 -0
- package/dist/contexts.jsx +33 -0
- package/dist/contexts.jsx.map +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -23932
- package/dist/index.jsx +70 -18337
- package/dist/useDragAndDrop.js +2 -0
- package/dist/useDragAndDrop.jsx +2 -0
- package/dist/useDragAndDrop2.js +395 -0
- package/dist/useDragAndDrop2.js.map +1 -0
- package/dist/useDragAndDrop2.jsx +395 -0
- package/dist/useDragAndDrop2.jsx.map +1 -0
- package/dist/utils.d.ts +83 -11
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +285 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.jsx +277 -0
- package/dist/utils.jsx.map +1 -0
- package/dist/virtualizer/Layout.js +144 -0
- package/dist/virtualizer/Layout.js.map +1 -0
- package/dist/virtualizer/Layout.jsx +144 -0
- package/dist/virtualizer/Layout.jsx.map +1 -0
- package/package.json +401 -4
- package/src/Breadcrumbs.tsx +3 -1
- package/src/Button.tsx +22 -2
- package/src/Calendar.tsx +27 -10
- package/src/CalendarPicker.tsx +73 -0
- package/src/Checkbox.tsx +539 -3
- package/src/Collection.tsx +9 -3
- package/src/Color.tsx +42 -14
- package/src/ComboBox.tsx +50 -6
- package/src/DateField.tsx +20 -2
- package/src/DatePicker.tsx +57 -5
- package/src/Dialog.tsx +13 -5
- package/src/Disclosure.tsx +3 -1
- package/src/DragAndDrop.tsx +3 -1
- package/src/DropZone.tsx +3 -1
- package/src/GridList.tsx +125 -24
- package/src/Icon.tsx +3 -1
- package/src/Link.tsx +3 -1
- package/src/ListBox.tsx +31 -4
- package/src/Menu.tsx +252 -128
- package/src/Meter.tsx +3 -1
- package/src/Modal.tsx +100 -52
- package/src/NumberField.tsx +51 -8
- package/src/Popover.tsx +40 -10
- package/src/ProgressBar.tsx +3 -1
- package/src/RadioGroup.tsx +468 -4
- package/src/RangeCalendar.tsx +3 -1
- package/src/SearchField.tsx +27 -3
- package/src/Select.tsx +22 -7
- package/src/SelectionIndicator.tsx +3 -1
- package/src/SharedElementTransition.tsx +3 -1
- package/src/Slider.tsx +159 -13
- package/src/Switch.tsx +395 -2
- package/src/Table.tsx +409 -95
- package/src/Tabs.tsx +16 -45
- package/src/TagGroup.tsx +3 -1
- package/src/Text.tsx +31 -10
- package/src/TextField.tsx +43 -5
- package/src/TimeField.tsx +20 -2
- package/src/Toast.tsx +79 -14
- package/src/ToggleButton.tsx +3 -1
- package/src/ToggleButtonGroup.tsx +3 -1
- package/src/Tooltip.tsx +3 -1
- package/src/Tree.tsx +77 -9
- package/src/Virtualizer.tsx +180 -31
- package/src/VirtualizerLayouts.ts +45 -10
- package/src/index.ts +50 -0
- package/src/utils.tsx +243 -27
- package/dist/index.js.map +0 -1
- package/dist/index.jsx.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioGroup.jsx","names":["mergeProps"],"sources":["../src/RadioGroup.tsx"],"sourcesContent":["/**\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 type Context,\n createContext,\n createMemo,\n createSignal,\n createUniqueId,\n splitProps,\n useContext,\n Show,\n} from \"solid-js\";\nimport {\n createRadio,\n createRadioGroup,\n createFocusRing,\n createHover,\n mergeProps,\n type AriaRadioProps,\n type AriaRadioGroupProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createRadioGroupState,\n VALID_VALIDITY_STATE,\n type RadioGroupState,\n type RadioGroupProps as RadioGroupStateProps,\n type ValidationResult,\n} from \"@proyecto-viviana/solid-stately\";\nimport { FieldErrorContext, type FieldErrorContextValue } from \"./FieldError\";\nimport { VisuallyHidden } from \"./VisuallyHidden\";\nimport {\n SelectionIndicatorContext,\n type SelectionIndicatorContextValue,\n} from \"./SelectionIndicator\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n Provider,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\nimport { TextContext } from \"./Text\";\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(el);\n } else {\n ref.current = el;\n }\n}\n\nconst validValidation: ValidationResult = {\n isInvalid: false,\n validationDetails: VALID_VALIDITY_STATE,\n validationErrors: [],\n};\n\nfunction getNativeValidation(input: HTMLInputElement): ValidationResult {\n return {\n isInvalid: !input.validity.valid,\n validationDetails: {\n badInput: input.validity.badInput,\n customError: input.validity.customError,\n patternMismatch: input.validity.patternMismatch,\n rangeOverflow: input.validity.rangeOverflow,\n rangeUnderflow: input.validity.rangeUnderflow,\n stepMismatch: input.validity.stepMismatch,\n tooLong: input.validity.tooLong,\n tooShort: input.validity.tooShort,\n typeMismatch: input.validity.typeMismatch,\n valueMissing: input.validity.valueMissing,\n valid: input.validity.valid,\n },\n validationErrors: input.validationMessage ? [input.validationMessage] : [],\n };\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\n Omit<AriaRadioGroupProps, \"children\" | \"label\" | \"description\" | \"errorMessage\">,\n Pick<\n RadioGroupStateProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"validationState\" | \"validate\"\n >,\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 /** Custom renderer for the outer radio group element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLDivElement>,\n renderProps: RadioGroupRenderProps,\n ) => JSX.Element;\n /** Ref for the radio group element. */\n ref?: RefLike<HTMLDivElement>;\n /** A description for the radio group. */\n description?: JSX.Element;\n /** An error message for the radio group. */\n errorMessage?: JSX.Element;\n /**\n * Whether this component renders the visible description/error help-text nodes.\n * Defaults to `true`. A styled layer (e.g. solid-spectrum) passes `false` to keep\n * the id-minting and `aria-describedby` wiring here (so child radios inherit the\n * group's shared description via `radioGroupData`) while owning the visible node\n * itself — mirroring RAC, where the group exposes a `TextContext`/`FieldError`\n * slot rather than rendering its own help text.\n */\n renderHelpText?: boolean;\n}\n\nexport interface RadioProps extends Omit<AriaRadioProps, \"children\">, 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 /** Custom renderer for the outer radio label element. */\n render?: (\n props: JSX.LabelHTMLAttributes<HTMLLabelElement>,\n renderProps: RadioRenderProps,\n ) => JSX.Element;\n /** Ref for the outer label element. */\n ref?: RefLike<HTMLLabelElement>;\n /** Ref for the underlying input element. */\n inputRef?: RefLike<HTMLInputElement>;\n /** A description for the radio. */\n description?: JSX.Element;\n /** An error message for the radio. */\n errorMessage?: JSX.Element;\n /** Handler called when hover starts. */\n onHoverStart?: () => void;\n /** Handler called when hover ends. */\n onHoverEnd?: () => void;\n /** Handler called when hover state changes. */\n onHoverChange?: (isHovered: boolean) => void;\n}\n\nexport interface RadioGroupContextValue extends RadioGroupProps {\n slots?: Record<string, RadioGroupProps>;\n}\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\nexport const RadioGroupStateContext = createContext<RadioGroupState | null>(null);\nexport interface RadioContextValue extends RadioProps {\n slots?: Record<string, RadioProps>;\n}\nexport const RadioContext = createContext<RadioContextValue | null>(null);\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 contextProps = useContext(RadioGroupContext);\n const contextSlotProps = contextProps?.slots?.[props.slot ?? \"default\"];\n const contextBaseProps = createMemo<RadioGroupProps>(() => {\n if (!contextProps) return {};\n const { slots: _slots, ...rest } = contextProps;\n return rest;\n });\n const mergedProps = contextProps\n ? (mergeProps(\n contextBaseProps(),\n contextSlotProps ?? {},\n props,\n ) as ParentProps<RadioGroupProps>)\n : props;\n const [local, ariaProps] = splitProps(mergedProps, [\n \"class\",\n \"style\",\n \"render\",\n \"ref\",\n \"slot\",\n \"renderHelpText\",\n ]);\n\n const state = createRadioGroupState(() => ({\n value: mergedProps.value,\n defaultValue: mergedProps.defaultValue,\n onChange: mergedProps.onChange,\n isDisabled: mergedProps.isDisabled,\n isReadOnly: mergedProps.isReadOnly,\n isRequired: mergedProps.isRequired,\n isInvalid: mergedProps.isInvalid,\n validationState: mergedProps.validationState,\n validate: mergedProps.validate,\n validationBehavior: mergedProps.validationBehavior,\n name: mergedProps.name,\n form: mergedProps.form,\n }));\n\n // Create radio group aria props\n const groupAria = createRadioGroup(\n () => ({\n ...ariaProps,\n description: mergedProps.description,\n errorMessage: mergedProps.errorMessage,\n }),\n state,\n );\n const isInvalid = createMemo(() => state.isInvalid);\n const validation = createMemo(() => state.displayValidation());\n const fallbackErrorMessageId = createUniqueId();\n const errorMessageId = () => groupAria.errorMessageProps.id ?? fallbackErrorMessageId;\n\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: isInvalid(),\n state,\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-RadioGroup\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => filterDOMProps(ariaProps, { global: true }));\n\n const cleanGroupProps = () => {\n const { ref: _ref, ...rest } = groupAria.radioGroupProps as Record<string, unknown>;\n return rest;\n };\n const handleGroupFocusIn: JSX.EventHandler<HTMLDivElement, FocusEvent> = (event) => {\n (\n groupAria.radioGroupProps as unknown as {\n onFocus?: JSX.EventHandler<HTMLDivElement, FocusEvent>;\n }\n ).onFocus?.(event);\n };\n const handleGroupFocusOut: JSX.EventHandler<HTMLDivElement, FocusEvent> = (event) => {\n (\n groupAria.radioGroupProps as unknown as {\n onBlur?: JSX.EventHandler<HTMLDivElement, FocusEvent>;\n }\n ).onBlur?.(event);\n };\n const handleGroupInvalidCapture: JSX.EventHandler<HTMLDivElement, Event> = (event) => {\n const target = event.target;\n if (!(target instanceof HTMLInputElement) || target.type !== \"radio\") {\n return;\n }\n\n state.updateValidation(getNativeValidation(target));\n state.commitValidation();\n target.focus();\n event.preventDefault();\n };\n const handleGroupChangeCapture: JSX.EventHandler<HTMLDivElement, Event> = (event) => {\n const target = event.target;\n if (!(target instanceof HTMLInputElement) || target.type !== \"radio\") {\n return;\n }\n\n state.updateValidation(target.validity.valid ? validValidation : getNativeValidation(target));\n state.commitValidation();\n };\n const setGroupRef = (el: HTMLDivElement) => {\n assignRef(local.ref, el);\n };\n const groupDescribedBy = () => {\n const ids = [\n (cleanGroupProps() as { \"aria-describedby\"?: string })[\"aria-describedby\"],\n mergedProps.description ? groupAria.descriptionProps.id : undefined,\n isInvalid() && (mergedProps.errorMessage || validation().validationErrors.length > 0)\n ? errorMessageId()\n : undefined,\n ]\n .filter(Boolean)\n .join(\" \")\n .split(\" \")\n .filter(Boolean);\n return ids.length ? Array.from(new Set(ids)).join(\" \") : undefined;\n };\n const fieldErrorContext: FieldErrorContextValue = {\n get validation() {\n return validation();\n },\n get errorMessageProps() {\n return {\n ...groupAria.errorMessageProps,\n id: errorMessageId(),\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n\n const GroupChildren = () => {\n const childRenderValues: RadioGroupRenderProps = {\n get orientation() {\n return (ariaProps.orientation as Orientation) ?? \"vertical\";\n },\n get isDisabled() {\n return state.isDisabled;\n },\n get isReadOnly() {\n return state.isReadOnly;\n },\n get isRequired() {\n return state.isRequired;\n },\n get isInvalid() {\n return isInvalid();\n },\n get state() {\n return state;\n },\n };\n const renderedChildren = createMemo(() => {\n const children = props.children;\n if (typeof children === \"function\") {\n return children.length > 0\n ? children(childRenderValues)\n : (children as unknown as () => JSX.Element)();\n }\n return children;\n });\n\n return (\n <>\n {renderedChildren()}\n <Show when={(local.renderHelpText ?? true) && mergedProps.description}>\n <div {...(groupAria.descriptionProps as unknown as JSX.HTMLAttributes<HTMLDivElement>)}>\n {mergedProps.description}\n </div>\n </Show>\n <Show when={(local.renderHelpText ?? true) && isInvalid() && mergedProps.errorMessage}>\n <div {...(groupAria.errorMessageProps as unknown as JSX.HTMLAttributes<HTMLDivElement>)}>\n {mergedProps.errorMessage}\n </div>\n </Show>\n </>\n );\n };\n const groupEventProps = {\n onInvalidCapture: handleGroupInvalidCapture,\n onChangeCapture: handleGroupChangeCapture,\n } as unknown as JSX.HTMLAttributes<HTMLDivElement>;\n const customRootProps = () =>\n ({\n ...domProps(),\n ...cleanGroupProps(),\n ...groupEventProps,\n ref: setGroupRef,\n onFocusIn: handleGroupFocusIn,\n onFocusOut: handleGroupFocusOut,\n \"aria-describedby\": groupDescribedBy(),\n class: renderProps.class(),\n style: renderProps.style(),\n slot: local.slot,\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\": isInvalid() || undefined,\n children: <GroupChildren />,\n }) as unknown as JSX.HTMLAttributes<HTMLDivElement>;\n\n return (\n <RadioGroupStateContext.Provider value={state}>\n <FieldErrorContext.Provider value={fieldErrorContext}>\n {local.render ? (\n local.render(customRootProps(), renderValues())\n ) : (\n <div\n {...domProps()}\n {...cleanGroupProps()}\n {...groupEventProps}\n ref={setGroupRef}\n onFocusIn={handleGroupFocusIn}\n onFocusOut={handleGroupFocusOut}\n aria-describedby={groupDescribedBy()}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\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={isInvalid() || undefined}\n >\n <GroupChildren />\n </div>\n )}\n </FieldErrorContext.Provider>\n </RadioGroupStateContext.Provider>\n );\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 const [inputElement, setInputElement] = createSignal<HTMLInputElement | null>(null);\n const { state } = props;\n const contextProps = useContext(RadioContext);\n const contextSlotProps = contextProps?.slots?.[props.radioProps.slot ?? \"default\"];\n const contextBaseProps = createMemo<RadioProps>(() => {\n if (!contextProps) return {} as RadioProps;\n const { slots: _slots, ...rest } = contextProps;\n return rest as RadioProps;\n });\n const radioProps = contextProps\n ? (mergeProps(contextBaseProps(), contextSlotProps ?? {}, props.radioProps) as RadioProps)\n : props.radioProps;\n const inputRefs = createMemo(\n () =>\n [contextBaseProps().inputRef, contextSlotProps?.inputRef, props.radioProps.inputRef].filter(\n Boolean,\n ) as RefLike<HTMLInputElement>[],\n );\n\n const [local, ariaProps] = splitProps(radioProps, [\n \"class\",\n \"style\",\n \"render\",\n \"ref\",\n \"inputRef\",\n \"slot\",\n \"description\",\n \"errorMessage\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onHoverChange\",\n ]);\n const descriptionId = createUniqueId();\n const errorMessageId = createUniqueId();\n const describedBy = () => {\n const ids = [\n ariaProps[\"aria-describedby\"],\n local.description ? descriptionId : undefined,\n state.isInvalid && local.errorMessage ? errorMessageId : undefined,\n ].filter(Boolean);\n return ids.length ? ids.join(\" \") : undefined;\n };\n const inputAriaProps = createMemo(() => {\n const clean: Record<string, unknown> = {};\n for (const key in ariaProps as Record<string, unknown>) {\n if (!key.startsWith(\"data-\")) {\n clean[key] = (ariaProps as Record<string, unknown>)[key];\n }\n }\n return clean as typeof ariaProps;\n });\n\n // Create radio aria props\n const radioAria = createRadio(\n () => ({\n ...inputAriaProps(),\n \"aria-describedby\": describedBy(),\n children: typeof radioProps.children === \"function\" ? true : radioProps.children,\n }),\n state,\n inputElement,\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 onHoverStart: local.onHoverStart,\n onHoverEnd: local.onHoverEnd,\n onHoverChange: local.onHoverChange,\n });\n\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 const renderProps = useRenderProps(\n {\n children: radioProps.children,\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Radio\",\n },\n renderValues,\n );\n\n const selectionIndicatorContext = createMemo<SelectionIndicatorContextValue>(() => ({\n isSelected: radioAria.isSelected,\n }));\n\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 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 {\n ref: _ref3,\n onFocus: _onFocus,\n onBlur: _onBlur,\n ...rest\n } = radioAria.inputProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const {\n ref: _ref4,\n onFocus: _onFocus,\n onBlur: _onBlur,\n ...rest\n } = focusProps as Record<string, unknown>;\n return rest;\n };\n const handleInputFocus: JSX.EventHandler<HTMLInputElement, FocusEvent> = (event) => {\n (\n radioAria.inputProps as unknown as {\n onFocus?: JSX.EventHandler<HTMLInputElement, FocusEvent>;\n }\n ).onFocus?.(event);\n (\n focusProps as unknown as { onFocus?: JSX.EventHandler<HTMLInputElement, FocusEvent> }\n ).onFocus?.(event);\n };\n const handleInputBlur: JSX.EventHandler<HTMLInputElement, FocusEvent> = (event) => {\n (\n radioAria.inputProps as unknown as { onBlur?: JSX.EventHandler<HTMLInputElement, FocusEvent> }\n ).onBlur?.(event);\n (focusProps as unknown as { onBlur?: JSX.EventHandler<HTMLInputElement, FocusEvent> }).onBlur?.(\n event,\n );\n };\n const handleLabelClick: JSX.EventHandler<HTMLLabelElement, MouseEvent> = (event) => {\n (ariaProps as unknown as { onClickCapture?: (event: MouseEvent) => void }).onClickCapture?.(\n event as unknown as MouseEvent,\n );\n (\n radioAria.labelProps as unknown as {\n onClick?: JSX.EventHandler<HTMLLabelElement, MouseEvent>;\n }\n ).onClick?.(event);\n };\n const handleLabelClickCapture: JSX.EventHandler<HTMLLabelElement, MouseEvent> = (event) => {\n (ariaProps as unknown as { onClickCapture?: (event: MouseEvent) => void }).onClickCapture?.(\n event as unknown as MouseEvent,\n );\n };\n const handleInputClick: JSX.EventHandler<HTMLInputElement, MouseEvent> = (event) => {\n (\n radioAria.inputProps as unknown as {\n onClick?: JSX.EventHandler<HTMLInputElement, MouseEvent>;\n }\n ).onClick?.(event);\n };\n const handleInputInvalid: JSX.EventHandler<HTMLInputElement, Event> = (event) => {\n state.updateValidation(getNativeValidation(event.currentTarget));\n state.commitValidation();\n event.currentTarget.focus();\n event.preventDefault();\n };\n const handleInputChange: JSX.EventHandler<HTMLInputElement, Event> = (event) => {\n (\n radioAria.inputProps as unknown as { onChange?: JSX.EventHandler<HTMLInputElement, Event> }\n ).onChange?.(event);\n state.updateValidation(\n event.currentTarget.validity.valid\n ? validValidation\n : getNativeValidation(event.currentTarget),\n );\n state.commitValidation();\n };\n const setLabelRef = (el: HTMLLabelElement) => {\n assignRef(local.ref, el);\n };\n const setInputRef = (el: HTMLInputElement) => {\n setInputElement(el);\n el.addEventListener(\"invalid\", (event) => {\n state.updateValidation(getNativeValidation(el));\n state.commitValidation();\n el.focus();\n event.preventDefault();\n });\n el.addEventListener(\"change\", () => {\n state.updateValidation(el.validity.valid ? validValidation : getNativeValidation(el));\n state.commitValidation();\n });\n for (const ref of inputRefs()) {\n assignRef(ref, el);\n }\n };\n const hiddenInput = (\n <VisuallyHidden>\n <input\n ref={setInputRef}\n {...cleanInputProps()}\n {...cleanFocusProps()}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onInvalid={handleInputInvalid}\n onChange={handleInputChange}\n onClick={handleInputClick}\n />\n </VisuallyHidden>\n );\n const labelChildren = () => (\n <>\n {hiddenInput}\n {renderProps.renderChildren()}\n <Show when={local.description}>\n <span id={descriptionId} slot=\"description\">\n {local.description}\n </span>\n </Show>\n <Show when={state.isInvalid && local.errorMessage}>\n <span id={errorMessageId} slot=\"errorMessage\">\n {local.errorMessage}\n </span>\n </Show>\n </>\n );\n const customLabelProps = () =>\n ({\n ...domProps(),\n ...cleanLabelProps(),\n ...cleanHoverProps(),\n ref: setLabelRef,\n class: renderProps.class(),\n style: renderProps.style(),\n slot: local.slot,\n onClick: handleLabelClick,\n onClickCapture: handleLabelClickCapture,\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 children: labelChildren(),\n }) as unknown as JSX.LabelHTMLAttributes<HTMLLabelElement>;\n const labelCaptureProps = {\n onClickCapture: handleLabelClickCapture,\n } as unknown as JSX.LabelHTMLAttributes<HTMLLabelElement>;\n\n return (\n <SelectionIndicatorContext.Provider value={selectionIndicatorContext()}>\n {local.render ? (\n local.render(customLabelProps(), renderValues())\n ) : (\n <label\n {...domProps()}\n {...cleanLabelProps()}\n {...cleanHoverProps()}\n ref={setLabelRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n onClick={handleLabelClick}\n {...labelCaptureProps}\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 {labelChildren()}\n </label>\n )}\n </SelectionIndicatorContext.Provider>\n );\n}\n\n/**\n * A radio represents an individual option within a radio group.\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 // Get context - will be null if not inside RadioGroup\n // The context is accessed reactively to work with solid-refresh HMR\n const getState = createMemo(() => useContext(RadioGroupStateContext));\n\n return (\n <Show when={getState()} fallback={null} keyed>\n {(state) => <RadioImpl radioProps={props} state={state} />}\n </Show>\n );\n}\n\n// ============================================================================\n// RadioField + RadioButton — the RAC form-field split (RAC 1.19)\n// ----------------------------------------------------------------------------\n// Upstream split the monolithic Radio into a RadioField wrapper (owns the radio\n// aria + optional description) containing a RadioButton control (the clickable\n// indicator + label). Mirrors react-aria-components/src/RadioGroup.tsx. The\n// legacy `Radio` above stays as the deprecated monolith for back-compat.\n//\n// Spine note: upstream wires the two halves with InternalRadioContext +\n// SelectionIndicatorContext + TextContext slots through `<Provider>`. Our\n// `<Provider>` is inert and TextContext carries no slots yet\n// (`port-context-slots`), so — exactly like RadioImpl already does — we use a\n// native Solid context and bridge `description`/`errorMessage` with explicit\n// ids. Like the legacy `Radio`, both halves require a surrounding RadioGroup.\n// ============================================================================\n\nexport interface RadioFieldRenderProps {\n /** Whether the radio is selected. */\n isSelected: 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 RadioButtonRenderProps extends RadioRenderProps {}\n\nexport interface RadioFieldProps extends Omit<AriaRadioProps, \"children\">, SlotProps {\n /** The children of the component (typically a `RadioButton`). A function may receive render props. */\n children?: RenderChildren<RadioFieldRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<RadioFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<RadioFieldRenderProps>;\n /** Ref for the radio field root element. */\n ref?: RefLike<HTMLDivElement>;\n /** Ref for the underlying input element. */\n inputRef?: RefLike<HTMLInputElement>;\n}\n\nexport interface RadioButtonProps extends SlotProps {\n /** The children of the component. A function may receive render props. */\n children?: RenderChildren<RadioButtonRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<RadioButtonRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<RadioButtonRenderProps>;\n /** Ref for the outer label element. */\n ref?: RefLike<HTMLLabelElement>;\n /** Handler called when hover starts. */\n onHoverStart?: () => void;\n /** Handler called when hover ends. */\n onHoverEnd?: () => void;\n /** Handler called when hover state changes. */\n onHoverChange?: (isHovered: boolean) => void;\n}\n\nexport interface RadioFieldContextValue extends Partial<RadioFieldProps> {\n slots?: Record<string, Partial<RadioFieldProps>>;\n}\nexport const RadioFieldContext = createContext<RadioFieldContextValue | null>(null);\n\n/** Carries the radio aria + state from a RadioField/Radio wrapper to its RadioButton. */\ninterface InternalRadioContextValue {\n isSelected: () => boolean;\n isPressed: () => boolean;\n isDisabled: () => boolean;\n labelProps: () => JSX.LabelHTMLAttributes<HTMLLabelElement>;\n inputProps: () => JSX.InputHTMLAttributes<HTMLInputElement>;\n setInputRef: (el: HTMLInputElement) => void;\n defaultClassName: string;\n}\nconst InternalRadioContext = createContext<InternalRadioContextValue | null>(null);\n\n/**\n * A RadioField represents an individual option within a radio group, containing a\n * `RadioButton` and optional description. Must be rendered inside a `RadioGroup`.\n * Per-option help text is wired through a TextContext description slot — render it\n * with `<Text slot=\"description\">`. (Radios have no per-option error slot; errors\n * are reported at the group level.)\n *\n * @example\n * ```tsx\n * <RadioGroup>\n * <RadioField value=\"a\">\n * <RadioButton>Option A</RadioButton>\n * <Text slot=\"description\">The first option</Text>\n * </RadioField>\n * </RadioGroup>\n * ```\n */\nexport function RadioField(props: RadioFieldProps): JSX.Element {\n const getState = createMemo(() => useContext(RadioGroupStateContext));\n return (\n <Show when={getState()} fallback={null} keyed>\n {(state) => <RadioFieldImpl fieldProps={props} state={state} />}\n </Show>\n );\n}\n\nfunction RadioFieldImpl(props: {\n fieldProps: RadioFieldProps;\n state: RadioGroupState;\n}): JSX.Element {\n const [inputElement, setInputElement] = createSignal<HTMLInputElement | null>(null);\n const { state } = props;\n const contextProps = useContext(RadioFieldContext);\n const contextSlotProps = contextProps?.slots?.[props.fieldProps.slot ?? \"default\"];\n const contextBaseProps = createMemo<Partial<RadioFieldProps>>(() => {\n if (!contextProps) return {};\n const { slots: _slots, ...rest } = contextProps;\n return rest;\n });\n const fieldProps = contextProps\n ? (mergeProps(contextBaseProps(), contextSlotProps ?? {}, props.fieldProps) as RadioFieldProps)\n : props.fieldProps;\n const inputRefs = createMemo(\n () =>\n [contextBaseProps().inputRef, contextSlotProps?.inputRef, props.fieldProps.inputRef].filter(\n Boolean,\n ) as RefLike<HTMLInputElement>[],\n );\n\n // `children` is split out of ariaProps so neither the inputAriaProps key-copy\n // loop nor the hook accessor spread eagerly reads it — reading a Solid\n // `children` getter instantiates the nested RadioButton, and doing so OUTSIDE\n // InternalRadioContext both breaks its binding and recurses.\n const [local, ariaProps] = splitProps(fieldProps, [\n \"class\",\n \"style\",\n \"ref\",\n \"inputRef\",\n \"slot\",\n \"children\",\n ]);\n const inputAriaProps = createMemo(() => {\n const clean: Record<string, unknown> = {};\n for (const key in ariaProps as Record<string, unknown>) {\n if (!key.startsWith(\"data-\")) {\n clean[key] = (ariaProps as Record<string, unknown>)[key];\n }\n }\n return clean as typeof ariaProps;\n });\n\n const radioAria = createRadio(\n () => ({\n ...inputAriaProps(),\n // The hook reads `children` only to decide if an aria-label is needed; the\n // visible label lives in the RadioButton, so report presence as a literal.\n children: true,\n }),\n state,\n inputElement,\n );\n\n // The hook mints the description slot id and bakes the combined aria-describedby\n // (own description + the group's shared description/error) into the input; the\n // field exposes that id through TextContext so a `<Text slot=\"description\">`\n // child resolves it. Mirrors react-aria-components' RadioField Provider value\n // list (description slot only — radios have no per-option error slot).\n const textSlots = {\n slots: {\n get description() {\n return radioAria.descriptionProps;\n },\n },\n };\n\n const setInputRef = (el: HTMLInputElement) => {\n setInputElement(el);\n el.addEventListener(\"invalid\", (event) => {\n state.updateValidation(getNativeValidation(el));\n state.commitValidation();\n el.focus();\n event.preventDefault();\n });\n el.addEventListener(\"change\", () => {\n state.updateValidation(el.validity.valid ? validValidation : getNativeValidation(el));\n state.commitValidation();\n });\n for (const ref of inputRefs()) {\n assignRef(ref, el);\n }\n };\n const setFieldRef = (el: HTMLDivElement) => {\n assignRef(local.ref, el);\n };\n\n const internalContext: InternalRadioContextValue = {\n isSelected: () => radioAria.isSelected(),\n isPressed: () => radioAria.isPressed(),\n isDisabled: () => radioAria.isDisabled,\n labelProps: () => radioAria.labelProps,\n inputProps: () => radioAria.inputProps,\n setInputRef,\n defaultClassName: \"solidaria-RadioButton\",\n };\n\n const selectionIndicatorContext = createMemo<SelectionIndicatorContextValue>(() => ({\n isSelected: radioAria.isSelected,\n }));\n\n const renderValues = createMemo<RadioFieldRenderProps>(() => ({\n isSelected: radioAria.isSelected(),\n isDisabled: radioAria.isDisabled,\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired,\n }));\n\n const renderProps = useRenderProps(\n {\n children: fieldProps.children,\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-RadioField\",\n },\n renderValues,\n );\n\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 // Children are accessed inside the providers (component-execution owner) so a\n // nested RadioButton's useContext binds to InternalRadioContext.\n const FieldChildren = () => {\n const childRenderValues: RadioFieldRenderProps = {\n get isSelected() {\n return radioAria.isSelected();\n },\n get isDisabled() {\n return radioAria.isDisabled;\n },\n get isReadOnly() {\n return state.isReadOnly;\n },\n get isInvalid() {\n return state.isInvalid;\n },\n get isRequired() {\n return state.isRequired;\n },\n };\n const renderedChildren = createMemo(() => {\n const children = fieldProps.children;\n return typeof children === \"function\" ? children(childRenderValues) : children;\n });\n return <>{renderedChildren()}</>;\n };\n\n return (\n <div\n {...domProps()}\n ref={setFieldRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={local.slot}\n data-selected={radioAria.isSelected() || 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 <SelectionIndicatorContext.Provider value={selectionIndicatorContext()}>\n <InternalRadioContext.Provider value={internalContext}>\n <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n <FieldChildren />\n </Provider>\n </InternalRadioContext.Provider>\n </SelectionIndicatorContext.Provider>\n </div>\n );\n}\n\n/**\n * A RadioButton is the clickable area of a radio, including the indicator and label.\n * Must be rendered inside a `RadioField` (or the legacy `Radio`).\n */\nexport function RadioButton(props: RadioButtonProps): JSX.Element {\n const getCtx = createMemo(() => useContext(InternalRadioContext));\n const getState = createMemo(() => useContext(RadioGroupStateContext));\n return (\n <Show when={getCtx()} fallback={null} keyed>\n {(ctx) => (\n <Show when={getState()} fallback={null} keyed>\n {(state) => <RadioButtonImpl buttonProps={props} ctx={ctx} state={state} />}\n </Show>\n )}\n </Show>\n );\n}\n\nfunction RadioButtonImpl(props: {\n buttonProps: RadioButtonProps;\n ctx: InternalRadioContextValue;\n state: RadioGroupState;\n}): JSX.Element {\n const { ctx, state } = props;\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return ctx.isDisabled() || state.isReadOnly;\n },\n onHoverStart: props.buttonProps.onHoverStart,\n onHoverEnd: props.buttonProps.onHoverEnd,\n onHoverChange: props.buttonProps.onHoverChange,\n });\n\n const renderValues = createMemo<RadioButtonRenderProps>(() => ({\n isSelected: ctx.isSelected(),\n isHovered: isHovered(),\n isPressed: ctx.isPressed(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: ctx.isDisabled(),\n isReadOnly: state.isReadOnly,\n isInvalid: state.isInvalid,\n isRequired: state.isRequired,\n }));\n\n const renderProps = useRenderProps(\n {\n children: props.buttonProps.children,\n class: props.buttonProps.class,\n style: props.buttonProps.style,\n defaultClassName: ctx.defaultClassName,\n },\n renderValues,\n );\n\n const cleanLabelProps = () => {\n const { ref: _ref1, ...rest } = ctx.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 {\n ref: _ref3,\n onFocus: _onFocus,\n onBlur: _onBlur,\n ...rest\n } = ctx.inputProps() as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const {\n ref: _ref4,\n onFocus: _onFocus,\n onBlur: _onBlur,\n ...rest\n } = focusProps as Record<string, unknown>;\n return rest;\n };\n const handleInputFocus: JSX.EventHandler<HTMLInputElement, FocusEvent> = (event) => {\n (\n ctx.inputProps() as unknown as { onFocus?: JSX.EventHandler<HTMLInputElement, FocusEvent> }\n ).onFocus?.(event);\n (\n focusProps as unknown as { onFocus?: JSX.EventHandler<HTMLInputElement, FocusEvent> }\n ).onFocus?.(event);\n };\n const handleInputBlur: JSX.EventHandler<HTMLInputElement, FocusEvent> = (event) => {\n (\n ctx.inputProps() as unknown as { onBlur?: JSX.EventHandler<HTMLInputElement, FocusEvent> }\n ).onBlur?.(event);\n (focusProps as unknown as { onBlur?: JSX.EventHandler<HTMLInputElement, FocusEvent> }).onBlur?.(\n event,\n );\n };\n const handleInputClick: JSX.EventHandler<HTMLInputElement, MouseEvent> = (event) => {\n (\n ctx.inputProps() as unknown as { onClick?: JSX.EventHandler<HTMLInputElement, MouseEvent> }\n ).onClick?.(event);\n };\n const handleInputInvalid: JSX.EventHandler<HTMLInputElement, Event> = (event) => {\n state.updateValidation(getNativeValidation(event.currentTarget));\n state.commitValidation();\n event.currentTarget.focus();\n event.preventDefault();\n };\n const handleInputChange: JSX.EventHandler<HTMLInputElement, Event> = (event) => {\n (\n ctx.inputProps() as unknown as { onChange?: JSX.EventHandler<HTMLInputElement, Event> }\n ).onChange?.(event);\n state.updateValidation(\n event.currentTarget.validity.valid\n ? validValidation\n : getNativeValidation(event.currentTarget),\n );\n state.commitValidation();\n };\n const setButtonRef = (el: HTMLLabelElement) => {\n assignRef(props.buttonProps.ref, el);\n };\n\n return (\n <label\n {...cleanLabelProps()}\n {...cleanHoverProps()}\n ref={setButtonRef}\n class={renderProps.class()}\n style={renderProps.style()}\n slot={props.buttonProps.slot}\n data-selected={ctx.isSelected() || undefined}\n data-pressed={ctx.isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n data-disabled={ctx.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={ctx.setInputRef}\n {...cleanInputProps()}\n {...cleanFocusProps()}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onInvalid={handleInputInvalid}\n onChange={handleInputChange}\n onClick={handleInputClick}\n />\n </VisuallyHidden>\n {renderProps.renderChildren()}\n </label>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeCalendar.d.ts","sourceRoot":"","sources":["../src/RangeCalendar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RangeCalendar.d.ts","sourceRoot":"","sources":["../src/RangeCalendar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
import { dataAttr, useIsHydrated, useRenderProps } from "./utils.js";
|
|
2
|
+
import { VisuallyHidden } from "./VisuallyHidden.js";
|
|
3
|
+
import { className, createComponent, effect, getNextElement, getNextMarker, insert, mergeProps, runHydrationEvents, spread, style, template, use } from "solid-js/web";
|
|
4
|
+
import { For, Index, Show, createContext, createMemo, createSignal, splitProps, useContext } from "solid-js";
|
|
5
|
+
import { createCalendarGrid, createHover, createRangeCalendar, createRangeCalendarCell } from "@proyecto-viviana/solidaria";
|
|
6
|
+
import { createRangeCalendarState, endOfMonth, isSameMonth } from "@proyecto-viviana/solid-stately";
|
|
7
|
+
//#region src/RangeCalendar.tsx
|
|
8
|
+
/**
|
|
9
|
+
* RangeCalendar component for solidaria-components
|
|
10
|
+
*
|
|
11
|
+
* Pre-wired headless range calendar component that combines aria hooks.
|
|
12
|
+
* Port of react-aria-components/src/RangeCalendar.tsx
|
|
13
|
+
*/
|
|
14
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div class="solidaria-RangeCalendar solidaria-RangeCalendar--placeholder"aria-hidden=true>`), _tmpl$2 = /*#__PURE__*/ template(`<h2>`), _tmpl$3 = /*#__PURE__*/ template(`<div><!$><!/><!$><!/>`), _tmpl$4 = /*#__PURE__*/ template(`<h2 aria-live=polite>`), _tmpl$5 = /*#__PURE__*/ template(`<button>`), _tmpl$6 = /*#__PURE__*/ template(`<table><thead><tr></tr></thead><tbody>`), _tmpl$7 = /*#__PURE__*/ template(`<th scope=col>`), _tmpl$8 = /*#__PURE__*/ template(`<tr>`), _tmpl$9 = /*#__PURE__*/ template(`<td>`), _tmpl$0 = /*#__PURE__*/ template(`<td><div>`);
|
|
15
|
+
function assignRef(ref, el) {
|
|
16
|
+
if (!ref) return;
|
|
17
|
+
if (typeof ref === "function") ref(el);
|
|
18
|
+
else ref.current = el;
|
|
19
|
+
}
|
|
20
|
+
const RangeCalendarContext = createContext(null);
|
|
21
|
+
const RangeCalendarStateContext = createContext(null);
|
|
22
|
+
const RangeCalendarGridMonthContext = createContext(null);
|
|
23
|
+
const RangeCalendarGridCellPositionContext = createContext(null);
|
|
24
|
+
function useRangeCalendarContext() {
|
|
25
|
+
const context = useContext(RangeCalendarContext);
|
|
26
|
+
if (!context) throw new Error("RangeCalendar components must be used within a RangeCalendar");
|
|
27
|
+
return context;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A range calendar displays a grid of days and allows users to select a contiguous range of dates.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* <RangeCalendar aria-label="Date range">
|
|
35
|
+
* <header>
|
|
36
|
+
* <RangeCalendarButton slot="previous">◀</RangeCalendarButton>
|
|
37
|
+
* <RangeCalendarHeading />
|
|
38
|
+
* <RangeCalendarButton slot="next">▶</RangeCalendarButton>
|
|
39
|
+
* </header>
|
|
40
|
+
* <RangeCalendarGrid>
|
|
41
|
+
* {(date) => <RangeCalendarCell date={date} />}
|
|
42
|
+
* </RangeCalendarGrid>
|
|
43
|
+
* </RangeCalendar>
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
function RangeCalendar(props) {
|
|
47
|
+
const isHydrated = useIsHydrated();
|
|
48
|
+
return createComponent(Show, {
|
|
49
|
+
get when() {
|
|
50
|
+
return isHydrated();
|
|
51
|
+
},
|
|
52
|
+
get fallback() {
|
|
53
|
+
return getNextElement(_tmpl$);
|
|
54
|
+
},
|
|
55
|
+
get children() {
|
|
56
|
+
return createComponent(RangeCalendarInner, props);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Internal RangeCalendar component that renders after client mount.
|
|
62
|
+
*/
|
|
63
|
+
function RangeCalendarInner(props) {
|
|
64
|
+
const [local, stateProps, rest] = splitProps(props, [
|
|
65
|
+
"children",
|
|
66
|
+
"class",
|
|
67
|
+
"style",
|
|
68
|
+
"slot",
|
|
69
|
+
"ref"
|
|
70
|
+
], [
|
|
71
|
+
"value",
|
|
72
|
+
"defaultValue",
|
|
73
|
+
"onChange",
|
|
74
|
+
"minValue",
|
|
75
|
+
"maxValue",
|
|
76
|
+
"isDisabled",
|
|
77
|
+
"isReadOnly",
|
|
78
|
+
"focusedValue",
|
|
79
|
+
"defaultFocusedValue",
|
|
80
|
+
"onFocusChange",
|
|
81
|
+
"locale",
|
|
82
|
+
"createCalendar",
|
|
83
|
+
"isDateUnavailable",
|
|
84
|
+
"visibleMonths",
|
|
85
|
+
"pageBehavior",
|
|
86
|
+
"selectionAlignment",
|
|
87
|
+
"isDateDisabled",
|
|
88
|
+
"validationState",
|
|
89
|
+
"allowsNonContiguousRanges",
|
|
90
|
+
"firstDayOfWeek"
|
|
91
|
+
]);
|
|
92
|
+
const state = createRangeCalendarState(stateProps);
|
|
93
|
+
const calendarAria = createRangeCalendar(rest, state);
|
|
94
|
+
const renderValues = createMemo(() => ({
|
|
95
|
+
isDisabled: state.isDisabled(),
|
|
96
|
+
isReadOnly: state.isReadOnly(),
|
|
97
|
+
isInvalid: state.isValueInvalid(),
|
|
98
|
+
isDragging: state.isDragging()
|
|
99
|
+
}));
|
|
100
|
+
const renderProps = useRenderProps({
|
|
101
|
+
class: local.class,
|
|
102
|
+
style: local.style,
|
|
103
|
+
defaultClassName: "solidaria-RangeCalendar"
|
|
104
|
+
}, renderValues);
|
|
105
|
+
return createComponent(RangeCalendarStateContext.Provider, {
|
|
106
|
+
value: state,
|
|
107
|
+
get children() {
|
|
108
|
+
return createComponent(RangeCalendarContext.Provider, {
|
|
109
|
+
value: state,
|
|
110
|
+
get children() {
|
|
111
|
+
var _el$2 = getNextElement(_tmpl$3), _el$4 = _el$2.firstChild, [_el$5, _co$] = getNextMarker(_el$4.nextSibling), _el$6 = _el$5.nextSibling, [_el$7, _co$2] = getNextMarker(_el$6.nextSibling);
|
|
112
|
+
use((el) => assignRef(local.ref, el), _el$2);
|
|
113
|
+
spread(_el$2, mergeProps(() => calendarAria.calendarProps, {
|
|
114
|
+
get ["class"]() {
|
|
115
|
+
return renderProps.class();
|
|
116
|
+
},
|
|
117
|
+
get style() {
|
|
118
|
+
return renderProps.style();
|
|
119
|
+
},
|
|
120
|
+
get ["data-disabled"]() {
|
|
121
|
+
return dataAttr(state.isDisabled());
|
|
122
|
+
},
|
|
123
|
+
get ["data-readonly"]() {
|
|
124
|
+
return dataAttr(state.isReadOnly());
|
|
125
|
+
},
|
|
126
|
+
get ["data-invalid"]() {
|
|
127
|
+
return dataAttr(state.isValueInvalid());
|
|
128
|
+
},
|
|
129
|
+
get ["data-dragging"]() {
|
|
130
|
+
return dataAttr(state.isDragging());
|
|
131
|
+
}
|
|
132
|
+
}), false, true);
|
|
133
|
+
insert(_el$2, createComponent(VisuallyHidden, { get children() {
|
|
134
|
+
var _el$3 = getNextElement(_tmpl$2);
|
|
135
|
+
insert(_el$3, () => String(calendarAria.calendarProps["aria-label"] ?? ""));
|
|
136
|
+
return _el$3;
|
|
137
|
+
} }), _el$5, _co$);
|
|
138
|
+
insert(_el$2, () => props.children, _el$7, _co$2);
|
|
139
|
+
runHydrationEvents();
|
|
140
|
+
return _el$2;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Displays the current month and year in the range calendar.
|
|
148
|
+
*/
|
|
149
|
+
function RangeCalendarHeading(props) {
|
|
150
|
+
const state = useRangeCalendarContext();
|
|
151
|
+
return (() => {
|
|
152
|
+
var _el$8 = getNextElement(_tmpl$4);
|
|
153
|
+
insert(_el$8, () => state.title());
|
|
154
|
+
effect((_p$) => {
|
|
155
|
+
var _v$ = props.class ?? "solidaria-RangeCalendarHeading", _v$2 = props.style;
|
|
156
|
+
_v$ !== _p$.e && className(_el$8, _p$.e = _v$);
|
|
157
|
+
_p$.t = style(_el$8, _v$2, _p$.t);
|
|
158
|
+
return _p$;
|
|
159
|
+
}, {
|
|
160
|
+
e: void 0,
|
|
161
|
+
t: void 0
|
|
162
|
+
});
|
|
163
|
+
return _el$8;
|
|
164
|
+
})();
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* A button for navigating the range calendar.
|
|
168
|
+
*/
|
|
169
|
+
function RangeCalendarButton(props) {
|
|
170
|
+
const state = useRangeCalendarContext();
|
|
171
|
+
const calendarAria = createRangeCalendar({}, state);
|
|
172
|
+
const buttonProps = createMemo(() => {
|
|
173
|
+
if (props.slot === "previous") return calendarAria.prevButtonProps;
|
|
174
|
+
return calendarAria.nextButtonProps;
|
|
175
|
+
});
|
|
176
|
+
const isDisabled = createMemo(() => props.isDisabled || Boolean(buttonProps().disabled) || state.isDisabled());
|
|
177
|
+
return (() => {
|
|
178
|
+
var _el$9 = getNextElement(_tmpl$5);
|
|
179
|
+
spread(_el$9, mergeProps(buttonProps, {
|
|
180
|
+
get ["class"]() {
|
|
181
|
+
return props.class ?? "solidaria-RangeCalendarButton";
|
|
182
|
+
},
|
|
183
|
+
get style() {
|
|
184
|
+
return props.style;
|
|
185
|
+
},
|
|
186
|
+
get disabled() {
|
|
187
|
+
return isDisabled();
|
|
188
|
+
}
|
|
189
|
+
}), false, true);
|
|
190
|
+
insert(_el$9, () => props.children);
|
|
191
|
+
runHydrationEvents();
|
|
192
|
+
return _el$9;
|
|
193
|
+
})();
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Displays a grid of range calendar cells.
|
|
197
|
+
*/
|
|
198
|
+
function RangeCalendarGrid(props) {
|
|
199
|
+
const state = useRangeCalendarContext();
|
|
200
|
+
const [gridRef, setGridRef] = createSignal(null);
|
|
201
|
+
const startDate = createMemo(() => {
|
|
202
|
+
const offsetMonths = props.offset?.months ?? 0;
|
|
203
|
+
const baseStart = state.visibleRange().start;
|
|
204
|
+
return offsetMonths ? baseStart.add({ months: offsetMonths }) : baseStart;
|
|
205
|
+
});
|
|
206
|
+
const gridAria = createCalendarGrid({
|
|
207
|
+
startDate: startDate(),
|
|
208
|
+
endDate: endOfMonth(startDate()),
|
|
209
|
+
weekdayStyle: props.weekdayStyle
|
|
210
|
+
}, state, gridRef);
|
|
211
|
+
const renderValues = createMemo(() => ({ isDisabled: state.isDisabled() }));
|
|
212
|
+
const renderProps = useRenderProps({
|
|
213
|
+
class: props.class,
|
|
214
|
+
style: props.style,
|
|
215
|
+
defaultClassName: "solidaria-RangeCalendarGrid"
|
|
216
|
+
}, renderValues);
|
|
217
|
+
const allDates = createMemo(() => {
|
|
218
|
+
const monthStart = startDate();
|
|
219
|
+
const numWeeks = state.getWeeksInMonth(monthStart);
|
|
220
|
+
const weekDates = [];
|
|
221
|
+
for (let weekIndex = 0; weekIndex < numWeeks; weekIndex++) weekDates.push(state.getDatesInWeek(weekIndex, monthStart));
|
|
222
|
+
return weekDates;
|
|
223
|
+
});
|
|
224
|
+
return createComponent(RangeCalendarGridMonthContext.Provider, {
|
|
225
|
+
value: startDate,
|
|
226
|
+
get children() {
|
|
227
|
+
var _el$0 = getNextElement(_tmpl$6), _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$11 = _el$1.nextSibling;
|
|
228
|
+
use(setGridRef, _el$0);
|
|
229
|
+
spread(_el$0, mergeProps(() => gridAria.gridProps, {
|
|
230
|
+
get ["class"]() {
|
|
231
|
+
return renderProps.class();
|
|
232
|
+
},
|
|
233
|
+
get style() {
|
|
234
|
+
return renderProps.style();
|
|
235
|
+
}
|
|
236
|
+
}), false, true);
|
|
237
|
+
spread(_el$1, mergeProps(() => gridAria.headerProps), false, true);
|
|
238
|
+
insert(_el$10, createComponent(For, {
|
|
239
|
+
get each() {
|
|
240
|
+
return gridAria.weekDays;
|
|
241
|
+
},
|
|
242
|
+
children: (day) => (() => {
|
|
243
|
+
var _el$12 = getNextElement(_tmpl$7);
|
|
244
|
+
insert(_el$12, day);
|
|
245
|
+
effect((_p$) => {
|
|
246
|
+
var _v$3 = props.headerCellClass ?? "solidaria-RangeCalendarHeaderCell", _v$4 = props.headerCellStyle;
|
|
247
|
+
_v$3 !== _p$.e && className(_el$12, _p$.e = _v$3);
|
|
248
|
+
_p$.t = style(_el$12, _v$4, _p$.t);
|
|
249
|
+
return _p$;
|
|
250
|
+
}, {
|
|
251
|
+
e: void 0,
|
|
252
|
+
t: void 0
|
|
253
|
+
});
|
|
254
|
+
return _el$12;
|
|
255
|
+
})()
|
|
256
|
+
}));
|
|
257
|
+
insert(_el$11, createComponent(Index, {
|
|
258
|
+
get each() {
|
|
259
|
+
return allDates();
|
|
260
|
+
},
|
|
261
|
+
children: (weekDates, weekIndex) => (() => {
|
|
262
|
+
var _el$13 = getNextElement(_tmpl$8);
|
|
263
|
+
insert(_el$13, createComponent(Index, {
|
|
264
|
+
get each() {
|
|
265
|
+
return weekDates();
|
|
266
|
+
},
|
|
267
|
+
children: (date, dayIndex) => createComponent(Show, {
|
|
268
|
+
get when() {
|
|
269
|
+
return date();
|
|
270
|
+
},
|
|
271
|
+
get fallback() {
|
|
272
|
+
return getNextElement(_tmpl$9);
|
|
273
|
+
},
|
|
274
|
+
get children() {
|
|
275
|
+
return createComponent(RangeCalendarGridCellPositionContext.Provider, {
|
|
276
|
+
value: () => ({
|
|
277
|
+
weekIndex,
|
|
278
|
+
dayIndex,
|
|
279
|
+
lastWeekIndex: allDates().length - 1
|
|
280
|
+
}),
|
|
281
|
+
get children() {
|
|
282
|
+
return props.children?.(date());
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
})
|
|
287
|
+
}));
|
|
288
|
+
return _el$13;
|
|
289
|
+
})()
|
|
290
|
+
}));
|
|
291
|
+
runHydrationEvents();
|
|
292
|
+
return _el$0;
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* A cell in the range calendar grid representing a single day.
|
|
298
|
+
*/
|
|
299
|
+
function RangeCalendarCell(props) {
|
|
300
|
+
const state = useRangeCalendarContext();
|
|
301
|
+
const currentMonthStart = useContext(RangeCalendarGridMonthContext);
|
|
302
|
+
const cellPosition = useContext(RangeCalendarGridCellPositionContext);
|
|
303
|
+
const [cellRef, setCellRef] = createSignal(null);
|
|
304
|
+
const isOutsideMonth = createMemo(() => currentMonthStart != null && !isSameMonth(currentMonthStart(), props.date));
|
|
305
|
+
const position = createMemo(() => cellPosition?.() ?? {
|
|
306
|
+
weekIndex: 0,
|
|
307
|
+
dayIndex: 0,
|
|
308
|
+
lastWeekIndex: 0
|
|
309
|
+
});
|
|
310
|
+
const cellAria = createRangeCalendarCell(() => ({
|
|
311
|
+
date: props.date,
|
|
312
|
+
isOutsideMonth: isOutsideMonth()
|
|
313
|
+
}), state, cellRef);
|
|
314
|
+
const { hoverProps, isHovered } = createHover(() => ({ isDisabled: cellAria.isDisabled || cellAria.isUnavailable }));
|
|
315
|
+
const renderValues = createMemo(() => ({
|
|
316
|
+
isSelected: cellAria.isSelected,
|
|
317
|
+
isSelectionStart: cellAria.isSelectionStart,
|
|
318
|
+
isSelectionEnd: cellAria.isSelectionEnd,
|
|
319
|
+
isFocused: cellAria.isFocused,
|
|
320
|
+
isDisabled: cellAria.isDisabled,
|
|
321
|
+
isUnavailable: cellAria.isUnavailable,
|
|
322
|
+
isInvalid: cellAria.isInvalid,
|
|
323
|
+
isOutsideMonth: cellAria.isOutsideMonth,
|
|
324
|
+
isToday: cellAria.isToday,
|
|
325
|
+
isPressed: cellAria.isPressed,
|
|
326
|
+
isHovered: isHovered(),
|
|
327
|
+
isFirstChild: position().dayIndex === 0,
|
|
328
|
+
isLastChild: position().dayIndex === 6,
|
|
329
|
+
isFirstWeek: position().weekIndex === 0,
|
|
330
|
+
isLastWeek: position().weekIndex === position().lastWeekIndex,
|
|
331
|
+
formattedDate: cellAria.formattedDate
|
|
332
|
+
}));
|
|
333
|
+
const renderProps = useRenderProps({
|
|
334
|
+
get children() {
|
|
335
|
+
return props.children;
|
|
336
|
+
},
|
|
337
|
+
class: props.class,
|
|
338
|
+
style: props.style,
|
|
339
|
+
defaultClassName: "solidaria-RangeCalendarCell"
|
|
340
|
+
}, renderValues);
|
|
341
|
+
const cellRenderProps = useRenderProps({
|
|
342
|
+
class: props.cellClass,
|
|
343
|
+
style: props.cellStyle,
|
|
344
|
+
defaultClassName: "solidaria-RangeCalendarCellWrapper"
|
|
345
|
+
}, renderValues);
|
|
346
|
+
const getChildren = () => {
|
|
347
|
+
if (typeof props.children === "function") return renderProps.renderChildren();
|
|
348
|
+
return cellAria.formattedDate;
|
|
349
|
+
};
|
|
350
|
+
return (() => {
|
|
351
|
+
var _el$15 = getNextElement(_tmpl$0), _el$16 = _el$15.firstChild;
|
|
352
|
+
spread(_el$15, mergeProps(() => cellAria.cellProps, {
|
|
353
|
+
get ["class"]() {
|
|
354
|
+
return cellRenderProps.class();
|
|
355
|
+
},
|
|
356
|
+
get style() {
|
|
357
|
+
return cellRenderProps.style();
|
|
358
|
+
}
|
|
359
|
+
}), false, true);
|
|
360
|
+
use(setCellRef, _el$16);
|
|
361
|
+
spread(_el$16, mergeProps(() => cellAria.buttonProps, hoverProps, {
|
|
362
|
+
get ["class"]() {
|
|
363
|
+
return renderProps.class();
|
|
364
|
+
},
|
|
365
|
+
get style() {
|
|
366
|
+
return renderProps.style();
|
|
367
|
+
},
|
|
368
|
+
get ["data-selected"]() {
|
|
369
|
+
return dataAttr(cellAria.isSelected);
|
|
370
|
+
},
|
|
371
|
+
get ["data-selection-start"]() {
|
|
372
|
+
return dataAttr(cellAria.isSelectionStart);
|
|
373
|
+
},
|
|
374
|
+
get ["data-selection-end"]() {
|
|
375
|
+
return dataAttr(cellAria.isSelectionEnd);
|
|
376
|
+
},
|
|
377
|
+
get ["data-focused"]() {
|
|
378
|
+
return dataAttr(cellAria.isFocused);
|
|
379
|
+
},
|
|
380
|
+
get ["data-disabled"]() {
|
|
381
|
+
return dataAttr(cellAria.isDisabled);
|
|
382
|
+
},
|
|
383
|
+
get ["data-unavailable"]() {
|
|
384
|
+
return dataAttr(cellAria.isUnavailable);
|
|
385
|
+
},
|
|
386
|
+
get ["data-invalid"]() {
|
|
387
|
+
return dataAttr(cellAria.isInvalid);
|
|
388
|
+
},
|
|
389
|
+
get ["data-outside-month"]() {
|
|
390
|
+
return dataAttr(cellAria.isOutsideMonth);
|
|
391
|
+
},
|
|
392
|
+
get ["data-today"]() {
|
|
393
|
+
return dataAttr(cellAria.isToday);
|
|
394
|
+
},
|
|
395
|
+
get ["data-pressed"]() {
|
|
396
|
+
return dataAttr(cellAria.isPressed);
|
|
397
|
+
},
|
|
398
|
+
get ["data-hovered"]() {
|
|
399
|
+
return dataAttr(isHovered());
|
|
400
|
+
}
|
|
401
|
+
}), false, true);
|
|
402
|
+
insert(_el$16, getChildren);
|
|
403
|
+
runHydrationEvents();
|
|
404
|
+
return _el$15;
|
|
405
|
+
})();
|
|
406
|
+
}
|
|
407
|
+
//#endregion
|
|
408
|
+
export { RangeCalendar, RangeCalendarButton, RangeCalendarCell, RangeCalendarContext, RangeCalendarGrid, RangeCalendarHeading, RangeCalendarStateContext, useRangeCalendarContext };
|
|
409
|
+
|
|
410
|
+
//# sourceMappingURL=RangeCalendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RangeCalendar.js","names":["JSX","Accessor","createContext","createMemo","createSignal","splitProps","useContext","For","Index","Show","createRangeCalendar","createCalendarGrid","createRangeCalendarCell","createHover","AriaRangeCalendarProps","AriaCalendarGridProps","createRangeCalendarState","RangeCalendarState","RangeCalendarStateProps","CalendarDate","DateValue","RangeValue","endOfMonth","isSameMonth","RenderChildren","ClassNameOrFunction","StyleOrFunction","SlotProps","useRenderProps","dataAttr","useIsHydrated","VisuallyHidden","RefLike","el","T","current","assignRef","ref","RangeCalendarRenderProps","isDisabled","isReadOnly","isInvalid","isDragging","RangeCalendarProps","Omit","children","Element","class","style","locale","HTMLDivElement","RangeCalendarGridRenderProps","RangeCalendarGridProps","date","headerCellClass","headerCellStyle","CSSProperties","offset","months","RangeCalendarCellRenderProps","isSelected","isSelectionStart","isSelectionEnd","isFocused","isUnavailable","isOutsideMonth","isToday","isPressed","isHovered","isFirstChild","isLastChild","isFirstWeek","isLastWeek","formattedDate","RangeCalendarCellProps","cellClass","cellStyle","RangeCalendarContext","RangeCalendarStateContext","RangeCalendarGridMonthContext","RangeCalendarGridCellPositionContext","weekIndex","dayIndex","lastWeekIndex","useRangeCalendarContext","context","Error","RangeCalendar","props","isHydrated","_$createComponent","when","fallback","_$getNextElement","_tmpl$","RangeCalendarInner","local","stateProps","rest","state","calendarAria","renderValues","isValueInvalid","renderProps","defaultClassName","Provider","value","_el$2","_tmpl$3","_el$4","firstChild","_el$5","_co$","_$getNextMarker","nextSibling","_el$6","_el$7","_co$2","_$use","_$spread","_$mergeProps","calendarProps","data-disabled","data-readonly","data-invalid","data-dragging","_$insert","_el$3","_tmpl$2","String","_$runHydrationEvents","RangeCalendarHeadingProps","RangeCalendarHeading","_el$8","_tmpl$4","title","_$effect","_p$","_v$","_v$2","e","_$className","t","_$style","undefined","RangeCalendarButtonProps","slot","RangeCalendarButton","buttonProps","prevButtonProps","nextButtonProps","Boolean","disabled","_el$9","_tmpl$5","RangeCalendarGrid","gridRef","setGridRef","HTMLTableElement","startDate","offsetMonths","baseStart","visibleRange","start","add","gridAria","endDate","weekdayStyle","Parameters","allDates","monthStart","numWeeks","getWeeksInMonth","weekDates","push","getDatesInWeek","_el$0","_tmpl$6","_el$1","_el$10","_el$11","gridProps","headerProps","each","weekDays","day","_el$12","_tmpl$7","_v$3","_v$4","_el$13","_tmpl$8","_tmpl$9","length","RangeCalendarCell","currentMonthStart","cellPosition","cellRef","setCellRef","position","cellAria","hoverProps","cellRenderProps","getChildren","renderChildren","_el$15","_tmpl$0","_el$16","cellProps","data-selected","data-selection-start","data-selection-end","data-focused","data-unavailable","data-outside-month","data-today","data-pressed","data-hovered"],"sources":["../src/RangeCalendar.tsx"],"sourcesContent":["/**\n * RangeCalendar component for solidaria-components\n *\n * Pre-wired headless range calendar component that combines aria hooks.\n * Port of react-aria-components/src/RangeCalendar.tsx\n */\n\nimport {\n type JSX,\n type Accessor,\n createContext,\n createMemo,\n createSignal,\n splitProps,\n useContext,\n For,\n Index,\n Show,\n} from \"solid-js\";\nimport {\n createRangeCalendar,\n createCalendarGrid,\n createRangeCalendarCell,\n createHover,\n type AriaRangeCalendarProps,\n type AriaCalendarGridProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createRangeCalendarState,\n type RangeCalendarState,\n type RangeCalendarStateProps,\n type CalendarDate,\n type DateValue,\n type RangeValue,\n endOfMonth,\n isSameMonth,\n} from \"@proyecto-viviana/solid-stately\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n useRenderProps,\n dataAttr,\n useIsHydrated,\n} from \"./utils\";\nimport { VisuallyHidden } from \"./VisuallyHidden\";\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(el);\n } else {\n ref.current = el;\n }\n}\n\nexport interface RangeCalendarRenderProps {\n /** Whether the calendar is disabled. */\n isDisabled: boolean;\n /** Whether the calendar is read-only. */\n isReadOnly: boolean;\n /** Whether the current selection is invalid. */\n isInvalid: boolean;\n /** Whether the user is currently selecting a range. */\n isDragging: boolean;\n}\n\nexport interface RangeCalendarProps<T extends DateValue = DateValue>\n extends\n Omit<AriaRangeCalendarProps, \"id\" | \"isDisabled\" | \"isReadOnly\">,\n Omit<RangeCalendarStateProps<T>, \"locale\">,\n SlotProps {\n /** The children of the component. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<RangeCalendarRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<RangeCalendarRenderProps>;\n /** The locale to use for formatting. */\n locale?: string;\n /** Ref for the range calendar root element. */\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport interface RangeCalendarGridRenderProps {\n /** Whether the grid is disabled. */\n isDisabled: boolean;\n}\n\nexport interface RangeCalendarGridProps\n extends Omit<AriaCalendarGridProps, \"startDate\" | \"endDate\">, SlotProps {\n /** The children of the component (render function receiving dates). */\n children?: (date: CalendarDate) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<RangeCalendarGridRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<RangeCalendarGridRenderProps>;\n /** Class name for weekday header cells. */\n headerCellClass?: string;\n /** Inline style for weekday header cells. */\n headerCellStyle?: JSX.CSSProperties;\n /** Number of months to offset from the start. */\n offset?: { months?: number };\n}\n\nexport interface RangeCalendarCellRenderProps {\n /** Whether the cell is within the selected range. */\n isSelected: boolean;\n /** Whether the cell is the start of the selection. */\n isSelectionStart: boolean;\n /** Whether the cell is the end of the selection. */\n isSelectionEnd: boolean;\n /** Whether the cell is focused. */\n isFocused: boolean;\n /** Whether the cell is disabled. */\n isDisabled: boolean;\n /** Whether the cell is unavailable. */\n isUnavailable: boolean;\n /** Whether the cell is part of an invalid selection. */\n isInvalid: boolean;\n /** Whether the cell is outside the visible month. */\n isOutsideMonth: boolean;\n /** Whether the cell represents today. */\n isToday: boolean;\n /** Whether the cell is pressed. */\n isPressed: boolean;\n /** Whether the cell is hovered. */\n isHovered: boolean;\n /** Whether the cell is the first day slot in its row. */\n isFirstChild: boolean;\n /** Whether the cell is the last day slot in its row. */\n isLastChild: boolean;\n /** Whether the cell is in the first rendered week row. */\n isFirstWeek: boolean;\n /** Whether the cell is in the last rendered week row. */\n isLastWeek: boolean;\n /** The formatted date string. */\n formattedDate: string;\n}\n\nexport interface RangeCalendarCellProps extends SlotProps {\n /** The date for this cell. */\n date: CalendarDate;\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<RangeCalendarCellRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<RangeCalendarCellRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<RangeCalendarCellRenderProps>;\n /** Class name for the table cell wrapper. */\n cellClass?: ClassNameOrFunction<RangeCalendarCellRenderProps>;\n /** Inline style for the table cell wrapper. */\n cellStyle?: StyleOrFunction<RangeCalendarCellRenderProps>;\n}\n\nexport const RangeCalendarContext = createContext<RangeCalendarState<DateValue> | null>(null);\nexport const RangeCalendarStateContext = createContext<RangeCalendarState<DateValue> | null>(null);\nconst RangeCalendarGridMonthContext = createContext<Accessor<CalendarDate> | null>(null);\nconst RangeCalendarGridCellPositionContext = createContext<Accessor<{\n weekIndex: number;\n dayIndex: number;\n lastWeekIndex: number;\n}> | null>(null);\n\nexport function useRangeCalendarContext(): RangeCalendarState<DateValue> {\n const context = useContext(RangeCalendarContext);\n if (!context) {\n throw new Error(\"RangeCalendar components must be used within a RangeCalendar\");\n }\n return context;\n}\n\n/**\n * A range calendar displays a grid of days and allows users to select a contiguous range of dates.\n *\n * @example\n * ```tsx\n * <RangeCalendar aria-label=\"Date range\">\n * <header>\n * <RangeCalendarButton slot=\"previous\">◀</RangeCalendarButton>\n * <RangeCalendarHeading />\n * <RangeCalendarButton slot=\"next\">▶</RangeCalendarButton>\n * </header>\n * <RangeCalendarGrid>\n * {(date) => <RangeCalendarCell date={date} />}\n * </RangeCalendarGrid>\n * </RangeCalendar>\n * ```\n */\nexport function RangeCalendar<T extends DateValue = CalendarDate>(\n props: RangeCalendarProps<T>,\n): JSX.Element {\n // Use hydration-safe pattern for client-only rendering\n const isHydrated = useIsHydrated();\n\n return (\n <Show\n when={isHydrated()}\n fallback={\n <div\n class=\"solidaria-RangeCalendar solidaria-RangeCalendar--placeholder\"\n aria-hidden=\"true\"\n />\n }\n >\n <RangeCalendarInner {...props} />\n </Show>\n );\n}\n\n/**\n * Internal RangeCalendar component that renders after client mount.\n */\nfunction RangeCalendarInner<T extends DateValue = CalendarDate>(\n props: RangeCalendarProps<T>,\n): JSX.Element {\n const [local, stateProps, rest] = splitProps(\n props,\n [\"children\", \"class\", \"style\", \"slot\", \"ref\"],\n [\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"minValue\",\n \"maxValue\",\n \"isDisabled\",\n \"isReadOnly\",\n \"focusedValue\",\n \"defaultFocusedValue\",\n \"onFocusChange\",\n \"locale\",\n \"createCalendar\",\n \"isDateUnavailable\",\n \"visibleMonths\",\n \"pageBehavior\",\n \"selectionAlignment\",\n \"isDateDisabled\",\n \"validationState\",\n \"allowsNonContiguousRanges\",\n \"firstDayOfWeek\",\n ],\n );\n\n const state = createRangeCalendarState(stateProps);\n\n const calendarAria = createRangeCalendar(rest, state as unknown as RangeCalendarState<DateValue>);\n\n const renderValues = createMemo<RangeCalendarRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n isReadOnly: state.isReadOnly(),\n isInvalid: state.isValueInvalid(),\n isDragging: state.isDragging(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-RangeCalendar\",\n },\n renderValues,\n );\n\n return (\n <RangeCalendarStateContext.Provider value={state as unknown as RangeCalendarState<DateValue>}>\n <RangeCalendarContext.Provider value={state as unknown as RangeCalendarState<DateValue>}>\n <div\n {...calendarAria.calendarProps}\n ref={(el) => assignRef(local.ref, el)}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n data-readonly={dataAttr(state.isReadOnly())}\n data-invalid={dataAttr(state.isValueInvalid())}\n data-dragging={dataAttr(state.isDragging())}\n >\n <VisuallyHidden>\n <h2>{String(calendarAria.calendarProps[\"aria-label\"] ?? \"\")}</h2>\n </VisuallyHidden>\n {props.children}\n </div>\n </RangeCalendarContext.Provider>\n </RangeCalendarStateContext.Provider>\n );\n}\n\nexport interface RangeCalendarHeadingProps extends SlotProps {\n /** The CSS className for the element. */\n class?: string;\n /** The inline style for the element. */\n style?: JSX.CSSProperties;\n}\n\n/**\n * Displays the current month and year in the range calendar.\n */\nexport function RangeCalendarHeading(props: RangeCalendarHeadingProps): JSX.Element {\n const state = useRangeCalendarContext();\n\n return (\n <h2\n class={props.class ?? \"solidaria-RangeCalendarHeading\"}\n style={props.style}\n aria-live=\"polite\"\n >\n {state.title()}\n </h2>\n );\n}\n\nexport interface RangeCalendarButtonProps extends SlotProps {\n /** The slot for this button (previous or next). */\n slot?: \"previous\" | \"next\";\n /** The children of the component. */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: string;\n /** The inline style for the element. */\n style?: JSX.CSSProperties;\n /** Whether the button is disabled. */\n isDisabled?: boolean;\n}\n\n/**\n * A button for navigating the range calendar.\n */\nexport function RangeCalendarButton(props: RangeCalendarButtonProps): JSX.Element {\n const state = useRangeCalendarContext();\n const calendarAria = createRangeCalendar({}, state);\n\n const buttonProps = createMemo(() => {\n if (props.slot === \"previous\") {\n return calendarAria.prevButtonProps;\n }\n return calendarAria.nextButtonProps;\n });\n const isDisabled = createMemo(\n () => props.isDisabled || Boolean(buttonProps().disabled) || state.isDisabled(),\n );\n\n return (\n <button\n {...buttonProps()}\n class={props.class ?? \"solidaria-RangeCalendarButton\"}\n style={props.style}\n disabled={isDisabled()}\n >\n {props.children}\n </button>\n );\n}\n\n/**\n * Displays a grid of range calendar cells.\n */\nexport function RangeCalendarGrid(props: RangeCalendarGridProps): JSX.Element {\n const state = useRangeCalendarContext();\n const [gridRef, setGridRef] = createSignal<HTMLTableElement | null>(null);\n const startDate = createMemo(() => {\n const offsetMonths = props.offset?.months ?? 0;\n const baseStart = state.visibleRange().start;\n return offsetMonths ? baseStart.add({ months: offsetMonths }) : baseStart;\n });\n\n const gridAria = createCalendarGrid(\n {\n startDate: startDate(),\n endDate: endOfMonth(startDate()),\n weekdayStyle: props.weekdayStyle,\n },\n state as unknown as Parameters<typeof createCalendarGrid>[1],\n gridRef,\n );\n\n const renderValues = createMemo<RangeCalendarGridRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: props.class,\n style: props.style,\n defaultClassName: \"solidaria-RangeCalendarGrid\",\n },\n renderValues,\n );\n\n // Memoize all dates for the grid to avoid reactive loops in render paths.\n const allDates = createMemo(() => {\n const monthStart = startDate();\n const numWeeks = state.getWeeksInMonth(monthStart);\n const weekDates: (CalendarDate | null)[][] = [];\n\n for (let weekIndex = 0; weekIndex < numWeeks; weekIndex++) {\n weekDates.push(state.getDatesInWeek(weekIndex, monthStart));\n }\n\n return weekDates;\n });\n\n return (\n <RangeCalendarGridMonthContext.Provider value={startDate}>\n <table\n ref={setGridRef}\n {...gridAria.gridProps}\n class={renderProps.class()}\n style={renderProps.style()}\n >\n <thead {...gridAria.headerProps}>\n <tr>\n <For each={gridAria.weekDays}>\n {(day) => (\n <th\n scope=\"col\"\n class={props.headerCellClass ?? \"solidaria-RangeCalendarHeaderCell\"}\n style={props.headerCellStyle}\n >\n {day}\n </th>\n )}\n </For>\n </tr>\n </thead>\n <tbody>\n <Index each={allDates()}>\n {(weekDates, weekIndex) => (\n <tr>\n <Index each={weekDates()}>\n {(date, dayIndex) => (\n <Show when={date()} fallback={<td />}>\n <RangeCalendarGridCellPositionContext.Provider\n value={() => ({\n weekIndex,\n dayIndex,\n lastWeekIndex: allDates().length - 1,\n })}\n >\n {props.children?.(date()!)}\n </RangeCalendarGridCellPositionContext.Provider>\n </Show>\n )}\n </Index>\n </tr>\n )}\n </Index>\n </tbody>\n </table>\n </RangeCalendarGridMonthContext.Provider>\n );\n}\n\n/**\n * A cell in the range calendar grid representing a single day.\n */\nexport function RangeCalendarCell(props: RangeCalendarCellProps): JSX.Element {\n const state = useRangeCalendarContext();\n const currentMonthStart = useContext(RangeCalendarGridMonthContext);\n const cellPosition = useContext(RangeCalendarGridCellPositionContext);\n const [cellRef, setCellRef] = createSignal<HTMLDivElement | null>(null);\n const isOutsideMonth = createMemo(\n () => currentMonthStart != null && !isSameMonth(currentMonthStart(), props.date),\n );\n const position = createMemo(\n () =>\n cellPosition?.() ?? {\n weekIndex: 0,\n dayIndex: 0,\n lastWeekIndex: 0,\n },\n );\n\n const cellAria = createRangeCalendarCell(\n () => ({\n date: props.date,\n isOutsideMonth: isOutsideMonth(),\n }),\n state,\n cellRef,\n );\n const { hoverProps, isHovered } = createHover(() => ({\n isDisabled: cellAria.isDisabled || cellAria.isUnavailable,\n }));\n\n const renderValues = createMemo<RangeCalendarCellRenderProps>(() => ({\n isSelected: cellAria.isSelected,\n isSelectionStart: cellAria.isSelectionStart,\n isSelectionEnd: cellAria.isSelectionEnd,\n isFocused: cellAria.isFocused,\n isDisabled: cellAria.isDisabled,\n isUnavailable: cellAria.isUnavailable,\n isInvalid: cellAria.isInvalid,\n isOutsideMonth: cellAria.isOutsideMonth,\n isToday: cellAria.isToday,\n isPressed: cellAria.isPressed,\n isHovered: isHovered(),\n isFirstChild: position().dayIndex === 0,\n isLastChild: position().dayIndex === 6,\n isFirstWeek: position().weekIndex === 0,\n isLastWeek: position().weekIndex === position().lastWeekIndex,\n formattedDate: cellAria.formattedDate,\n }));\n\n const renderProps = useRenderProps(\n {\n get children() {\n return props.children;\n },\n class: props.class,\n style: props.style,\n defaultClassName: \"solidaria-RangeCalendarCell\",\n },\n renderValues,\n );\n const cellRenderProps = useRenderProps(\n {\n class: props.cellClass,\n style: props.cellStyle,\n defaultClassName: \"solidaria-RangeCalendarCellWrapper\",\n },\n renderValues,\n );\n\n // Determine children content - avoid Show for SSR hydration compatibility\n const getChildren = () => {\n if (typeof props.children === \"function\") {\n return renderProps.renderChildren();\n }\n return cellAria.formattedDate;\n };\n\n return (\n <td {...cellAria.cellProps} class={cellRenderProps.class()} style={cellRenderProps.style()}>\n <div\n ref={setCellRef}\n {...cellAria.buttonProps}\n {...hoverProps}\n class={renderProps.class()}\n style={renderProps.style()}\n data-selected={dataAttr(cellAria.isSelected)}\n data-selection-start={dataAttr(cellAria.isSelectionStart)}\n data-selection-end={dataAttr(cellAria.isSelectionEnd)}\n data-focused={dataAttr(cellAria.isFocused)}\n data-disabled={dataAttr(cellAria.isDisabled)}\n data-unavailable={dataAttr(cellAria.isUnavailable)}\n data-invalid={dataAttr(cellAria.isInvalid)}\n data-outside-month={dataAttr(cellAria.isOutsideMonth)}\n data-today={dataAttr(cellAria.isToday)}\n data-pressed={dataAttr(cellAria.isPressed)}\n data-hovered={dataAttr(isHovered())}\n >\n {getChildren()}\n </div>\n </td>\n );\n}\n\nexport type { RangeCalendarState, RangeValue };\n"],"mappings":"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"}
|