@proyecto-viviana/solidaria-components 0.4.0 → 0.4.1

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.
Files changed (192) hide show
  1. package/dist/ActionBar.d.ts.map +1 -1
  2. package/dist/ActionBar.js +2 -11
  3. package/dist/ActionBar.js.map +1 -1
  4. package/dist/ActionBar.jsx +2 -11
  5. package/dist/ActionBar.jsx.map +1 -1
  6. package/dist/ActionGroup.d.ts.map +1 -1
  7. package/dist/ActionGroup.js +1 -1
  8. package/dist/ActionGroup.js.map +1 -1
  9. package/dist/ActionGroup.jsx +1 -1
  10. package/dist/ActionGroup.jsx.map +1 -1
  11. package/dist/Autocomplete.d.ts +2 -2
  12. package/dist/Autocomplete.d.ts.map +1 -1
  13. package/dist/Autocomplete.js +7 -7
  14. package/dist/Autocomplete.js.map +1 -1
  15. package/dist/Autocomplete.jsx +7 -7
  16. package/dist/Autocomplete.jsx.map +1 -1
  17. package/dist/Breadcrumbs.d.ts.map +1 -1
  18. package/dist/Breadcrumbs.js +15 -16
  19. package/dist/Breadcrumbs.js.map +1 -1
  20. package/dist/Breadcrumbs.jsx +19 -24
  21. package/dist/Breadcrumbs.jsx.map +1 -1
  22. package/dist/Calendar.d.ts.map +1 -1
  23. package/dist/Calendar.js +100 -65
  24. package/dist/Calendar.js.map +1 -1
  25. package/dist/Calendar.jsx +10 -1
  26. package/dist/Calendar.jsx.map +1 -1
  27. package/dist/Color.d.ts.map +1 -1
  28. package/dist/Color.js +15 -18
  29. package/dist/Color.js.map +1 -1
  30. package/dist/Color.jsx +15 -19
  31. package/dist/Color.jsx.map +1 -1
  32. package/dist/ComboBox.d.ts +4 -0
  33. package/dist/ComboBox.d.ts.map +1 -1
  34. package/dist/ComboBox.js +21 -13
  35. package/dist/ComboBox.js.map +1 -1
  36. package/dist/ComboBox.jsx +23 -13
  37. package/dist/ComboBox.jsx.map +1 -1
  38. package/dist/DateField.d.ts +11 -2
  39. package/dist/DateField.d.ts.map +1 -1
  40. package/dist/DateField2.js +237 -234
  41. package/dist/DateField2.js.map +1 -1
  42. package/dist/DateField2.jsx +134 -97
  43. package/dist/DateField2.jsx.map +1 -1
  44. package/dist/DatePicker.d.ts +42 -3
  45. package/dist/DatePicker.d.ts.map +1 -1
  46. package/dist/DatePicker.js +6 -990
  47. package/dist/DatePicker.jsx +6 -681
  48. package/dist/DatePicker2.js +1171 -0
  49. package/dist/DatePicker2.js.map +1 -0
  50. package/dist/DatePicker2.jsx +820 -0
  51. package/dist/DatePicker2.jsx.map +1 -0
  52. package/dist/DateRangePickerContext.d.ts +2 -0
  53. package/dist/DateRangePickerContext.d.ts.map +1 -1
  54. package/dist/Disclosure.d.ts.map +1 -1
  55. package/dist/Disclosure.js +3 -0
  56. package/dist/Disclosure.js.map +1 -1
  57. package/dist/Disclosure.jsx +1 -1
  58. package/dist/Disclosure.jsx.map +1 -1
  59. package/dist/GridList.d.ts.map +1 -1
  60. package/dist/GridList.js +2 -2
  61. package/dist/GridList.js.map +1 -1
  62. package/dist/GridList.jsx +2 -2
  63. package/dist/GridList.jsx.map +1 -1
  64. package/dist/ListBox.d.ts +2 -2
  65. package/dist/ListBox.d.ts.map +1 -1
  66. package/dist/ListBox.js +327 -166
  67. package/dist/ListBox.js.map +1 -1
  68. package/dist/ListBox.jsx +161 -25
  69. package/dist/ListBox.jsx.map +1 -1
  70. package/dist/Modal.d.ts.map +1 -1
  71. package/dist/Modal.js +7 -5
  72. package/dist/Modal.js.map +1 -1
  73. package/dist/Modal.jsx +5 -5
  74. package/dist/Modal.jsx.map +1 -1
  75. package/dist/Popover.d.ts.map +1 -1
  76. package/dist/Popover.js +16 -9
  77. package/dist/Popover.js.map +1 -1
  78. package/dist/Popover.jsx +25 -4
  79. package/dist/Popover.jsx.map +1 -1
  80. package/dist/RangeCalendar.d.ts.map +1 -1
  81. package/dist/RangeCalendar.js +182 -46
  82. package/dist/RangeCalendar.js.map +1 -1
  83. package/dist/RangeCalendar.jsx +72 -2
  84. package/dist/RangeCalendar.jsx.map +1 -1
  85. package/dist/SearchField.d.ts.map +1 -1
  86. package/dist/SearchField.js +26 -2
  87. package/dist/SearchField.js.map +1 -1
  88. package/dist/SearchField.jsx +26 -2
  89. package/dist/SearchField.jsx.map +1 -1
  90. package/dist/Select.d.ts +7 -0
  91. package/dist/Select.d.ts.map +1 -1
  92. package/dist/Select.js +62 -49
  93. package/dist/Select.js.map +1 -1
  94. package/dist/Select.jsx +33 -18
  95. package/dist/Select.jsx.map +1 -1
  96. package/dist/SharedElementTransition.d.ts.map +1 -1
  97. package/dist/SharedElementTransition.js +35 -33
  98. package/dist/SharedElementTransition.js.map +1 -1
  99. package/dist/SharedElementTransition.jsx +35 -33
  100. package/dist/SharedElementTransition.jsx.map +1 -1
  101. package/dist/StepList.d.ts.map +1 -1
  102. package/dist/StepList.js +2 -9
  103. package/dist/StepList.js.map +1 -1
  104. package/dist/StepList.jsx +1 -6
  105. package/dist/StepList.jsx.map +1 -1
  106. package/dist/Table.d.ts +2 -0
  107. package/dist/Table.d.ts.map +1 -1
  108. package/dist/Table.js +10 -3
  109. package/dist/Table.js.map +1 -1
  110. package/dist/Table.jsx +10 -3
  111. package/dist/Table.jsx.map +1 -1
  112. package/dist/Tabs.d.ts.map +1 -1
  113. package/dist/Tabs.js +3 -0
  114. package/dist/Tabs.js.map +1 -1
  115. package/dist/Tabs.jsx +1 -1
  116. package/dist/Tabs.jsx.map +1 -1
  117. package/dist/TagGroup.d.ts +3 -1
  118. package/dist/TagGroup.d.ts.map +1 -1
  119. package/dist/TagGroup.js +12 -8
  120. package/dist/TagGroup.js.map +1 -1
  121. package/dist/TagGroup.jsx +11 -8
  122. package/dist/TagGroup.jsx.map +1 -1
  123. package/dist/TextField.js +4 -1
  124. package/dist/TextField.js.map +1 -1
  125. package/dist/TextField.jsx +4 -1
  126. package/dist/TextField.jsx.map +1 -1
  127. package/dist/TimeField.d.ts +14 -50
  128. package/dist/TimeField.d.ts.map +1 -1
  129. package/dist/TimeField.js +111 -205
  130. package/dist/TimeField.js.map +1 -1
  131. package/dist/TimeField.jsx +76 -82
  132. package/dist/TimeField.jsx.map +1 -1
  133. package/dist/Tree.d.ts.map +1 -1
  134. package/dist/Tree.js +3 -3
  135. package/dist/Tree.js.map +1 -1
  136. package/dist/Tree.jsx +3 -3
  137. package/dist/Tree.jsx.map +1 -1
  138. package/dist/index.d.ts +2 -3
  139. package/dist/index.d.ts.map +1 -1
  140. package/dist/index.js +5 -6
  141. package/dist/index.jsx +5 -6
  142. package/dist/useDragAndDrop.d.ts +0 -8
  143. package/dist/useDragAndDrop.d.ts.map +1 -1
  144. package/dist/useDragAndDrop2.js +6 -2
  145. package/dist/useDragAndDrop2.js.map +1 -1
  146. package/dist/useDragAndDrop2.jsx +6 -2
  147. package/dist/useDragAndDrop2.jsx.map +1 -1
  148. package/dist/utils.d.ts +1 -0
  149. package/dist/utils.d.ts.map +1 -1
  150. package/dist/utils.js +2 -2
  151. package/dist/utils.js.map +1 -1
  152. package/dist/utils.jsx +2 -2
  153. package/dist/utils.jsx.map +1 -1
  154. package/package.json +3 -9
  155. package/src/ActionBar.tsx +10 -12
  156. package/src/ActionGroup.tsx +5 -3
  157. package/src/Autocomplete.tsx +14 -9
  158. package/src/Breadcrumbs.tsx +55 -38
  159. package/src/Calendar.tsx +30 -1
  160. package/src/Color.tsx +42 -27
  161. package/src/ComboBox.tsx +49 -17
  162. package/src/DateField.tsx +285 -52
  163. package/src/DatePicker.tsx +345 -57
  164. package/src/DateRangePickerContext.tsx +2 -0
  165. package/src/Disclosure.tsx +4 -0
  166. package/src/GridList.tsx +8 -2
  167. package/src/ListBox.tsx +323 -21
  168. package/src/Modal.tsx +21 -5
  169. package/src/Popover.tsx +28 -7
  170. package/src/RangeCalendar.tsx +120 -1
  171. package/src/SearchField.tsx +53 -1
  172. package/src/Select.tsx +101 -20
  173. package/src/SharedElementTransition.tsx +92 -36
  174. package/src/StepList.tsx +0 -7
  175. package/src/Table.tsx +19 -4
  176. package/src/Tabs.tsx +1 -0
  177. package/src/TagGroup.tsx +26 -6
  178. package/src/TextField.tsx +1 -1
  179. package/src/TimeField.tsx +113 -196
  180. package/src/Tree.tsx +14 -4
  181. package/src/index.ts +1 -8
  182. package/src/useDragAndDrop.ts +8 -10
  183. package/src/utils.tsx +3 -3
  184. package/dist/DatePicker.js.map +0 -1
  185. package/dist/DatePicker.jsx.map +0 -1
  186. package/dist/HiddenTimeInput.d.ts +0 -25
  187. package/dist/HiddenTimeInput.d.ts.map +0 -1
  188. package/dist/HiddenTimeInput.js +0 -104
  189. package/dist/HiddenTimeInput.js.map +0 -1
  190. package/dist/HiddenTimeInput.jsx +0 -69
  191. package/dist/HiddenTimeInput.jsx.map +0 -1
  192. package/src/HiddenTimeInput.tsx +0 -133
@@ -1 +1 @@
1
- {"version":3,"file":"DateField2.jsx","names":[],"sources":["../src/HiddenDateInput.tsx","../src/DateRangePickerContext.tsx","../src/DateField.tsx"],"sourcesContent":["/**\n * HiddenDateInput component for solidaria-components\n *\n * A hidden native date/datetime-local input for form submission.\n * Renders server-side with the initial value for SSR safety.\n */\nimport { type JSX, createEffect, createSignal } from \"solid-js\";\nimport { type DateValue, type FormValidationState } from \"@proyecto-viviana/solid-stately\";\nimport { createFormValidation } from \"@proyecto-viviana/solidaria\";\n\ntype MaybeAccessor<T> = T | (() => T);\n\nexport interface HiddenDateInputProps {\n name?: string;\n form?: string;\n value?: MaybeAccessor<DateValue | null | undefined>;\n autoComplete?: string;\n isDisabled?: boolean;\n isRequired?: boolean;\n validationBehavior?: \"aria\" | \"native\";\n validationState?: FormValidationState;\n focus?: () => void;\n minValue?: MaybeAccessor<DateValue | undefined>;\n maxValue?: MaybeAccessor<DateValue | undefined>;\n granularity?: \"day\" | \"hour\" | \"minute\" | \"second\";\n}\n\nfunction accessValue<T>(value: MaybeAccessor<T> | undefined): T | undefined {\n return typeof value === \"function\" ? (value as () => T)() : value;\n}\n\nfunction formatDateValue(\n value: DateValue | undefined | null,\n granularity: \"day\" | \"hour\" | \"minute\" | \"second\",\n): string {\n if (!value) return \"\";\n\n if (\"timeZone\" in value) {\n return String(value);\n }\n\n const dateValue = value;\n\n const year = String(dateValue.year).padStart(4, \"0\");\n const month = String(dateValue.month).padStart(2, \"0\");\n const day = String(dateValue.day).padStart(2, \"0\");\n\n if (granularity === \"day\") {\n return `${year}-${month}-${day}`;\n }\n\n const hasHour = \"hour\" in dateValue;\n const hour = hasHour ? String((dateValue as { hour: number }).hour).padStart(2, \"0\") : \"00\";\n const hasMinute = hasHour && \"minute\" in dateValue;\n const minute = hasMinute\n ? String((dateValue as { minute: number }).minute).padStart(2, \"0\")\n : \"00\";\n\n if (granularity === \"second\" && hasMinute && \"second\" in dateValue) {\n const second = String((dateValue as { second: number }).second).padStart(2, \"0\");\n return `${year}-${month}-${day}T${hour}:${minute}:${second}`;\n }\n\n return `${year}-${month}-${day}T${hour}:${minute}`;\n}\n\nexport function HiddenDateInput(props: HiddenDateInputProps): JSX.Element {\n const granularity = () => props.granularity ?? \"day\";\n const hasValidationBehavior = () => props.validationBehavior != null;\n const validationBehavior = () => props.validationBehavior;\n const usesNativeValidation = () => validationBehavior() === \"native\";\n const value = () => accessValue(props.value);\n const minValue = () => accessValue(props.minValue);\n const maxValue = () => accessValue(props.maxValue);\n const hasTimeZoneValue = () =>\n Boolean(\n (value() && \"timeZone\" in value()!) ||\n (minValue() && \"timeZone\" in minValue()!) ||\n (maxValue() && \"timeZone\" in maxValue()!),\n );\n const inputType = () =>\n usesNativeValidation()\n ? \"text\"\n : hasValidationBehavior()\n ? \"hidden\"\n : hasTimeZoneValue()\n ? \"hidden\"\n : granularity() === \"day\"\n ? \"date\"\n : \"datetime-local\";\n const formattedValue = () => formatDateValue(value(), granularity());\n const formattedMin = () => formatDateValue(minValue(), granularity());\n const formattedMax = () => formatDateValue(maxValue(), granularity());\n\n const [inputRef, setInputRef] = createSignal<HTMLInputElement>();\n\n if (props.validationState) {\n createFormValidation(\n {\n get validationBehavior() {\n return validationBehavior();\n },\n get focus() {\n return props.focus;\n },\n },\n props.validationState,\n inputRef,\n );\n }\n\n createEffect(() => {\n const val = formattedValue();\n const input = inputRef();\n if (input && input.value !== val) {\n input.value = val;\n }\n });\n\n return (\n <input\n ref={(el) => {\n setInputRef(el);\n }}\n type={inputType()}\n name={props.name}\n form={props.form}\n value={formattedValue()}\n autocomplete={props.autoComplete}\n disabled={props.isDisabled}\n required={usesNativeValidation() && props.isRequired ? true : undefined}\n hidden={usesNativeValidation() || undefined}\n min={hasValidationBehavior() ? undefined : formattedMin() || undefined}\n max={hasValidationBehavior() ? undefined : formattedMax() || undefined}\n onChange={usesNativeValidation() ? () => {} : undefined}\n tabIndex={-1}\n aria-hidden=\"true\"\n style={\n {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n \"white-space\": \"nowrap\",\n \"border-width\": \"0\",\n } as JSX.CSSProperties\n }\n />\n );\n}\n","import { createContext, useContext } from \"solid-js\";\nimport { type createDateRangePicker } from \"@proyecto-viviana/solidaria\";\nimport {\n type DateFieldState,\n type DateValue,\n type RangeCalendarState,\n} from \"@proyecto-viviana/solid-stately\";\n\nexport interface DateRangePickerFieldContextValue {\n state: DateFieldState<DateValue>;\n aria: {\n labelProps: Record<string, unknown>;\n inputProps: Record<string, unknown>;\n descriptionProps: Record<string, unknown>;\n errorMessageProps: Record<string, unknown>;\n };\n}\n\nexport interface DateRangePickerContextValue {\n calendarState: RangeCalendarState<DateValue>;\n startFieldState: DateFieldState<DateValue>;\n endFieldState: DateFieldState<DateValue>;\n startFieldContext: DateRangePickerFieldContextValue;\n endFieldContext: DateRangePickerFieldContextValue;\n overlayState: {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n };\n triggerRef: () => HTMLElement | null;\n setTriggerRef: (element: HTMLElement | null) => void;\n pickerAria: ReturnType<typeof createDateRangePicker>;\n}\n\nexport const DateRangePickerContext = createContext<DateRangePickerContextValue | null>(null);\n\nexport function useDateRangePickerContext(): DateRangePickerContextValue {\n const context = useContext(DateRangePickerContext);\n if (!context) {\n throw new Error(\"DateRangePicker components must be used within a DateRangePicker\");\n }\n return context;\n}\n","/**\n * DateField component for solidaria-components\n *\n * Pre-wired headless date field component with segment-based editing.\n * Port of react-aria-components/src/DateField.tsx\n */\n\nimport {\n type JSX,\n type Context,\n createContext,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n splitProps,\n useContext,\n For,\n Show,\n} from \"solid-js\";\nimport {\n createDateField,\n createDateSegment,\n type AriaDateFieldProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createDateFieldState,\n access,\n type DateFieldState,\n type DateFieldStateProps,\n type DateSegment as DateSegmentType,\n type CalendarDate,\n type DateValue,\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 Provider,\n} from \"./utils\";\nimport { TextContext } from \"./Text\";\nimport { HiddenDateInput } from \"./HiddenDateInput\";\nimport { FormContext, type FormProps } from \"./Form\";\nimport {\n DateRangePickerContext,\n type DateRangePickerFieldContextValue,\n} from \"./DateRangePickerContext\";\n\nexport interface DateFieldRenderProps {\n /** Whether the field is disabled. */\n isDisabled: boolean;\n /** Whether the field is read-only. */\n isReadOnly: boolean;\n /** Whether the field is required. */\n isRequired: boolean;\n /** Whether the field is invalid. */\n isInvalid: boolean;\n}\n\nexport interface DateFieldProps<T extends DateValue = DateValue>\n extends\n Omit<AriaDateFieldProps, \"id\" | \"isDisabled\" | \"isReadOnly\" | \"isRequired\">,\n Omit<DateFieldStateProps<T>, \"locale\">,\n SlotProps {\n /** The children of the component. */\n children?: JSX.Element | ((segment: DateSegmentType) => JSX.Element);\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DateFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DateFieldRenderProps>;\n /** The locale to use for formatting. */\n locale?: string;\n}\n\nexport interface DateInputRenderProps {\n /** Whether the input is disabled. */\n isDisabled: boolean;\n /** Whether the input is focused. */\n isFocused: boolean;\n}\n\nexport interface DateInputProps extends SlotProps {\n /** The children of the component (render function receiving segments). */\n children?: (segment: DateSegmentType) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DateInputRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DateInputRenderProps>;\n /** Handler called during the pointer down capture phase. */\n onPointerDownCapture?: JSX.EventHandler<HTMLDivElement, PointerEvent>;\n}\n\nexport interface DateSegmentRenderProps {\n /** Whether the segment is focused. */\n isFocused: boolean;\n /** Whether the segment is editable. */\n isEditable: boolean;\n /** Whether the segment is a placeholder. */\n isPlaceholder: boolean;\n /** The segment type. */\n type: DateSegmentType[\"type\"];\n /** The text to display. */\n text: string;\n}\n\nexport interface DateSegmentProps extends SlotProps {\n /** The segment data. */\n segment: DateSegmentType;\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<DateSegmentRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DateSegmentRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DateSegmentRenderProps>;\n}\n\nexport interface DateFieldContextValue {\n state: DateFieldState<DateValue>;\n aria: {\n labelProps: Record<string, unknown>;\n inputProps: Record<string, unknown>;\n descriptionProps: Record<string, unknown>;\n errorMessageProps: Record<string, unknown>;\n };\n}\n\nexport const DateFieldContext = createContext<DateFieldContextValue | null>(null);\nexport const DateFieldStateContext = createContext<DateFieldState<DateValue> | null>(null);\n\nfunction withFormValidationBehavior<P extends object>(props: P, formContext: FormProps | null): P {\n if (!formContext?.validationBehavior) {\n return props;\n }\n\n return new Proxy(props, {\n get(target, property, receiver) {\n const localValue = Reflect.get(target, property, receiver);\n if (property === \"validationBehavior\" && localValue === undefined) {\n return formContext.validationBehavior;\n }\n\n return localValue;\n },\n has(target, property) {\n return (\n Reflect.has(target, property) ||\n (property === \"validationBehavior\" && formContext.validationBehavior !== undefined)\n );\n },\n ownKeys(target) {\n const keys = new Set(Reflect.ownKeys(target));\n if (formContext.validationBehavior !== undefined) {\n keys.add(\"validationBehavior\");\n }\n\n return Array.from(keys);\n },\n getOwnPropertyDescriptor(target, property) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, property);\n if (descriptor) {\n return descriptor;\n }\n\n if (property === \"validationBehavior\" && formContext.validationBehavior !== undefined) {\n return {\n enumerable: true,\n configurable: true,\n get: () => formContext.validationBehavior,\n };\n }\n\n return undefined;\n },\n });\n}\n\nexport function useDateFieldContext(): DateFieldContextValue {\n const context = useContext(DateFieldContext);\n if (!context) {\n throw new Error(\"DateField components must be used within a DateField\");\n }\n return context;\n}\n\nfunction useDateInputContext(\n slot?: string,\n): DateFieldContextValue | DateRangePickerFieldContextValue {\n const dateFieldContext = useContext(DateFieldContext);\n if (dateFieldContext) {\n return dateFieldContext;\n }\n\n const dateRangePickerContext = useContext(DateRangePickerContext);\n if (dateRangePickerContext && slot === \"start\") {\n return dateRangePickerContext.startFieldContext;\n }\n if (dateRangePickerContext && slot === \"end\") {\n return dateRangePickerContext.endFieldContext;\n }\n\n throw new Error(\"DateInput components must be used within a DateField or DateRangePicker slot\");\n}\n\n/**\n * A date field allows users to enter and edit date values using a keyboard.\n *\n * @example\n * ```tsx\n * <DateField label=\"Date\">\n * <Label>Date</Label>\n * <DateInput>\n * {(segment) => <DateSegment segment={segment} />}\n * </DateInput>\n * </DateField>\n * ```\n */\nexport function DateField<T extends DateValue = CalendarDate>(\n props: DateFieldProps<T>,\n): JSX.Element {\n // Use hydration-safe pattern for client-only rendering\n const isHydrated = useIsHydrated();\n const formContext = useContext(FormContext);\n\n return (\n <Show\n when={isHydrated()}\n fallback={\n <div class=\"solidaria-DateField solidaria-DateField--placeholder\" aria-hidden=\"true\" />\n }\n >\n <DateFieldInner {...props} __formContext={formContext} />\n </Show>\n );\n}\n\ntype DateFieldInnerProps<T extends DateValue = DateValue> = DateFieldProps<T> & {\n __formContext?: FormProps | null;\n};\n\n/**\n * Internal DateField component that renders after client mount.\n */\nfunction DateFieldInner<T extends DateValue = CalendarDate>(\n props: DateFieldInnerProps<T>,\n): JSX.Element {\n const formContext = props.__formContext ?? useContext(FormContext);\n const mergedProps = withFormValidationBehavior(props, formContext);\n const [local, stateProps, rest] = splitProps(\n mergedProps,\n [\"children\", \"class\", \"style\", \"slot\", \"__formContext\"],\n [\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"minValue\",\n \"maxValue\",\n \"isInvalid\",\n \"isDisabled\",\n \"isReadOnly\",\n \"isRequired\",\n \"locale\",\n \"granularity\",\n \"hourCycle\",\n \"hideTimeZone\",\n \"placeholderValue\",\n \"shouldForceLeadingZeros\",\n \"validationState\",\n \"validationBehavior\",\n \"validate\",\n \"description\",\n \"errorMessage\",\n \"isDateUnavailable\",\n ],\n );\n\n const [fieldRef, setFieldRef] = createSignal<HTMLDivElement | null>(null);\n\n const state = createDateFieldState(stateProps);\n\n const fieldAria = createDateField(\n () => ({\n ...(rest as Record<string, unknown>),\n description: stateProps.description,\n errorMessage: stateProps.errorMessage,\n }),\n state as unknown as DateFieldState<DateValue>,\n fieldRef,\n );\n\n const renderValues = createMemo<DateFieldRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n isReadOnly: state.isReadOnly(),\n isRequired: state.isRequired(),\n isInvalid: state.isInvalid(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-DateField\",\n },\n renderValues,\n );\n\n const validationBehavior = () =>\n (stateProps as { validationBehavior?: \"aria\" | \"native\" }).validationBehavior ??\n formContext?.validationBehavior ??\n \"native\";\n\n const textSlots = {\n slots: {\n get description() {\n return fieldAria.descriptionProps;\n },\n get errorMessage() {\n return fieldAria.errorMessageProps;\n },\n },\n };\n\n return (\n <DateFieldStateContext.Provider value={state as unknown as DateFieldState<DateValue>}>\n <DateFieldContext.Provider\n value={{\n state: state as unknown as DateFieldState<DateValue>,\n aria: {\n labelProps: fieldAria.labelProps,\n inputProps: fieldAria.inputProps,\n descriptionProps: fieldAria.descriptionProps,\n errorMessageProps: fieldAria.errorMessageProps,\n },\n }}\n >\n <div\n ref={setFieldRef}\n {...fieldAria.fieldProps}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n data-readonly={dataAttr(state.isReadOnly())}\n data-required={dataAttr(state.isRequired())}\n data-invalid={dataAttr(state.isInvalid())}\n >\n <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n {local.children as JSX.Element}\n </Provider>\n </div>\n <Show when={(rest as Record<string, unknown>).name}>\n <HiddenDateInput\n name={(rest as Record<string, unknown>).name as string | undefined}\n form={(rest as Record<string, unknown>).form as string | undefined}\n value={state.value()}\n autoComplete={(rest as Record<string, unknown>).autoComplete as string | undefined}\n isDisabled={state.isDisabled()}\n isRequired={state.isRequired()}\n validationBehavior={validationBehavior()}\n validationState={state}\n focus={() => {\n fieldRef()?.querySelector<HTMLElement>('[role=\"spinbutton\"]')?.focus();\n }}\n minValue={access(stateProps.minValue) as DateValue | undefined}\n maxValue={access(stateProps.maxValue) as DateValue | undefined}\n granularity={state.granularity}\n />\n </Show>\n </DateFieldContext.Provider>\n </DateFieldStateContext.Provider>\n );\n}\n\n/**\n * The input area containing date segments.\n */\nexport function DateInput(props: DateInputProps): JSX.Element {\n const context = useDateInputContext(props.slot);\n const { state, aria } = context;\n const [isFocused, setIsFocused] = createSignal(false);\n const [inputRef, setInputRef] = createSignal<HTMLDivElement | null>(null);\n\n const renderValues = createMemo<DateInputRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n isFocused: isFocused(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: props.class,\n style: props.style,\n defaultClassName: \"solidaria-DateInput\",\n },\n renderValues,\n );\n\n createEffect(() => {\n const element = inputRef();\n const handler = props.onPointerDownCapture;\n if (!element || !handler) return;\n\n const listener = (event: PointerEvent) =>\n (handler as unknown as (event: PointerEvent) => void)(event);\n element.addEventListener(\"pointerdown\", listener, { capture: true });\n onCleanup(() => element.removeEventListener(\"pointerdown\", listener, { capture: true }));\n });\n\n return (\n <DateFieldContext.Provider value={context as DateFieldContextValue}>\n <div\n ref={setInputRef}\n {...aria.inputProps}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n data-focused={dataAttr(isFocused())}\n onFocusIn={() => setIsFocused(true)}\n onFocusOut={() => setIsFocused(false)}\n >\n <For each={state.segments()}>{(segment) => props.children?.(segment)}</For>\n </div>\n </DateFieldContext.Provider>\n );\n}\n\n/**\n * A segment of a date field (year, month, day, etc.).\n */\nexport function DateSegment(props: DateSegmentProps): JSX.Element {\n const { state } = useDateFieldContext();\n const [segmentRef, setSegmentRef] = createSignal<HTMLElement | null>(null);\n\n const segmentAria = createDateSegment({ segment: props.segment }, state, segmentRef);\n\n const renderValues = createMemo<DateSegmentRenderProps>(() => ({\n isFocused: segmentAria.isFocused,\n isEditable: segmentAria.isEditable,\n isPlaceholder: segmentAria.isPlaceholder,\n type: props.segment.type,\n text: segmentAria.text,\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-DateSegment\",\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 segmentAria.text;\n };\n\n return (\n <span\n ref={setSegmentRef}\n {...segmentAria.segmentProps}\n class={renderProps.class()}\n style={renderProps.style()}\n data-focused={dataAttr(segmentAria.isFocused)}\n data-editable={dataAttr(segmentAria.isEditable)}\n data-placeholder={dataAttr(segmentAria.isPlaceholder)}\n data-type={props.segment.type}\n >\n {getChildren()}\n </span>\n );\n}\n\nexport interface DateFieldLabelProps {\n children?: JSX.Element;\n class?: string;\n}\n\nexport function DateFieldLabel(props: DateFieldLabelProps): JSX.Element {\n const { aria } = useDateFieldContext();\n return (\n <span {...aria.labelProps} class={props.class}>\n {props.children}\n </span>\n );\n}\n\nexport interface DateFieldDescriptionProps {\n children?: JSX.Element;\n class?: string;\n}\n\nexport function DateFieldDescription(props: DateFieldDescriptionProps): JSX.Element {\n const { aria } = useDateFieldContext();\n return (\n <p {...aria.descriptionProps} class={props.class}>\n {props.children}\n </p>\n );\n}\n\nexport interface DateFieldErrorMessageProps {\n children?: JSX.Element;\n class?: string;\n}\n\nexport function DateFieldErrorMessage(props: DateFieldErrorMessageProps): JSX.Element {\n const { aria } = useDateFieldContext();\n return (\n <p {...aria.errorMessageProps} class={props.class}>\n {props.children}\n </p>\n );\n}\n\nexport type { DateFieldState, DateSegmentType };\n"],"mappings":";;;;;;;;;;;;;AA2BA,SAAS,YAAe,OAAoD;CAC1E,OAAO,OAAO,UAAU,aAAc,MAAkB,IAAI;AAC9D;AAEA,SAAS,gBACP,OACA,aACQ;CACR,IAAI,CAAC,OAAO,OAAO;CAEnB,IAAI,cAAc,OAChB,OAAO,OAAO,KAAK;CAGrB,MAAM,YAAY;CAElB,MAAM,OAAO,OAAO,UAAU,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;CACnD,MAAM,QAAQ,OAAO,UAAU,KAAK,CAAC,CAAC,SAAS,GAAG,GAAG;CACrD,MAAM,MAAM,OAAO,UAAU,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG;CAEjD,IAAI,gBAAgB,OAClB,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG;CAG7B,MAAM,UAAU,UAAU;CAC1B,MAAM,OAAO,UAAU,OAAQ,UAA+B,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,IAAI;CACvF,MAAM,YAAY,WAAW,YAAY;CACzC,MAAM,SAAS,YACX,OAAQ,UAAiC,MAAM,CAAC,CAAC,SAAS,GAAG,GAAG,IAChE;CAEJ,IAAI,gBAAgB,YAAY,aAAa,YAAY,WAEvD,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,GADlC,OAAQ,UAAiC,MAAM,CAAC,CAAC,SAAS,GAAG,GACnB;CAG3D,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG;AAC5C;AAEA,SAAgB,gBAAgB,OAA0C;CACxE,MAAM,oBAAoB,MAAM,eAAe;CAC/C,MAAM,8BAA8B,MAAM,sBAAsB;CAChE,MAAM,2BAA2B,MAAM;CACvC,MAAM,6BAA6B,mBAAmB,MAAM;CAC5D,MAAM,cAAc,YAAY,MAAM,KAAK;CAC3C,MAAM,iBAAiB,YAAY,MAAM,QAAQ;CACjD,MAAM,iBAAiB,YAAY,MAAM,QAAQ;CACjD,MAAM,yBACJ,QACG,MAAM,KAAK,cAAc,MAAM,KAC/B,SAAS,KAAK,cAAc,SAAS,KACrC,SAAS,KAAK,cAAc,SAAS,CACxC;CACF,MAAM,kBACJ,qBAAqB,IACjB,SACA,sBAAsB,IACpB,WACA,iBAAiB,IACf,WACA,YAAY,MAAM,QAChB,SACA;CACZ,MAAM,uBAAuB,gBAAgB,MAAM,GAAG,YAAY,CAAC;CACnE,MAAM,qBAAqB,gBAAgB,SAAS,GAAG,YAAY,CAAC;CACpE,MAAM,qBAAqB,gBAAgB,SAAS,GAAG,YAAY,CAAC;CAEpE,MAAM,CAAC,UAAU,eAAe,aAA+B;CAE/D,IAAI,MAAM,iBACR,qBACE;EACE,IAAI,qBAAqB;GACvB,OAAO,mBAAmB;EAC5B;EACA,IAAI,QAAQ;GACV,OAAO,MAAM;EACf;CACF,GACA,MAAM,iBACN,QACF;CAGF,mBAAmB;EACjB,MAAM,MAAM,eAAe;EAC3B,MAAM,QAAQ,SAAS;EACvB,IAAI,SAAS,MAAM,UAAU,KAC3B,MAAM,QAAQ;CAElB,CAAC;CAED,OACE,CAAC,MACC,MAAM,OAAO;EACX,YAAY,EAAE;CAChB,GACA,MAAM,UAAU,GAChB,MAAM,MAAM,MACZ,MAAM,MAAM,MACZ,OAAO,eAAe,GACtB,cAAc,MAAM,cACpB,UAAU,MAAM,YAChB,UAAU,qBAAqB,KAAK,MAAM,aAAa,OAAO,KAAA,GAC9D,QAAQ,qBAAqB,KAAK,KAAA,GAClC,KAAK,sBAAsB,IAAI,KAAA,IAAY,aAAa,KAAK,KAAA,GAC7D,KAAK,sBAAsB,IAAI,KAAA,IAAY,aAAa,KAAK,KAAA,GAC7D,UAAU,qBAAqB,UAAU,CAAC,IAAI,KAAA,GAC9C,UAAU,IACV,mBACA,OACE;EACE,UAAU;EACV,OAAO;EACP,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,UAAU;EACV,MAAM;EACN,eAAe;EACf,gBAAgB;CAClB;AAIR;;;ACrHA,MAAa,yBAAyB,cAAkD,IAAI;AAE5F,SAAgB,4BAAyD;CACvE,MAAM,UAAU,WAAW,sBAAsB;CACjD,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,kEAAkE;CAEpF,OAAO;AACT;;;;;;;;;ACuFA,MAAa,mBAAmB,cAA4C,IAAI;AAChF,MAAa,wBAAwB,cAAgD,IAAI;AAEzF,SAAS,2BAA6C,OAAU,aAAkC;CAChG,IAAI,CAAC,aAAa,oBAChB,OAAO;CAGT,OAAO,IAAI,MAAM,OAAO;EACtB,IAAI,QAAQ,UAAU,UAAU;GAC9B,MAAM,aAAa,QAAQ,IAAI,QAAQ,UAAU,QAAQ;GACzD,IAAI,aAAa,wBAAwB,eAAe,KAAA,GACtD,OAAO,YAAY;GAGrB,OAAO;EACT;EACA,IAAI,QAAQ,UAAU;GACpB,OACE,QAAQ,IAAI,QAAQ,QAAQ,KAC3B,aAAa,wBAAwB,YAAY,uBAAuB,KAAA;EAE7E;EACA,QAAQ,QAAQ;GACd,MAAM,OAAO,IAAI,IAAI,QAAQ,QAAQ,MAAM,CAAC;GAC5C,IAAI,YAAY,uBAAuB,KAAA,GACrC,KAAK,IAAI,oBAAoB;GAG/B,OAAO,MAAM,KAAK,IAAI;EACxB;EACA,yBAAyB,QAAQ,UAAU;GACzC,MAAM,aAAa,QAAQ,yBAAyB,QAAQ,QAAQ;GACpE,IAAI,YACF,OAAO;GAGT,IAAI,aAAa,wBAAwB,YAAY,uBAAuB,KAAA,GAC1E,OAAO;IACL,YAAY;IACZ,cAAc;IACd,WAAW,YAAY;GACzB;EAIJ;CACF,CAAC;AACH;AAEA,SAAgB,sBAA6C;CAC3D,MAAM,UAAU,WAAW,gBAAgB;CAC3C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,sDAAsD;CAExE,OAAO;AACT;AAEA,SAAS,oBACP,MAC0D;CAC1D,MAAM,mBAAmB,WAAW,gBAAgB;CACpD,IAAI,kBACF,OAAO;CAGT,MAAM,yBAAyB,WAAW,sBAAsB;CAChE,IAAI,0BAA0B,SAAS,SACrC,OAAO,uBAAuB;CAEhC,IAAI,0BAA0B,SAAS,OACrC,OAAO,uBAAuB;CAGhC,MAAM,IAAI,MAAM,8EAA8E;AAChG;;;;;;;;;;;;;;AAeA,SAAgB,UACd,OACa;CAEb,MAAM,aAAa,cAAc;CACjC,MAAM,cAAc,WAAW,WAAW;CAE1C,OACE,CAAC,KACC,MAAM,WAAW,GACjB,UACE,CAAC,IAAI,6DAA6D,uBAErE;MACC,CAAC,mBAAmB,OAAO,eAAe,eAAe;IAC3D,EAAE;AAEN;;;;AASA,SAAS,eACP,OACa;CACb,MAAM,cAAc,MAAM,iBAAiB,WAAW,WAAW;CAEjE,MAAM,CAAC,OAAO,YAAY,QAAQ,WADd,2BAA2B,OAAO,WAE1C,GACV;EAAC;EAAY;EAAS;EAAS;EAAQ;CAAe,GACtD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,MAAM,CAAC,UAAU,eAAe,aAAoC,IAAI;CAExE,MAAM,QAAQ,qBAAqB,UAAU;CAE7C,MAAM,YAAY,uBACT;EACL,GAAI;EACJ,aAAa,WAAW;EACxB,cAAc,WAAW;CAC3B,IACA,OACA,QACF;CAEA,MAAM,eAAe,kBAAwC;EAC3D,YAAY,MAAM,WAAW;EAC7B,YAAY,MAAM,WAAW;EAC7B,YAAY,MAAM,WAAW;EAC7B,WAAW,MAAM,UAAU;CAC7B,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAEA,MAAM,2BACH,WAA0D,sBAC3D,aAAa,sBACb;CAEF,MAAM,YAAY,EAChB,OAAO;EACL,IAAI,cAAc;GAChB,OAAO,UAAU;EACnB;EACA,IAAI,eAAe;GACjB,OAAO,UAAU;EACnB;CACF,EACF;CAEA,OACE,CAAC,sBAAsB,SAAS,OAAO,OAA+C;MACpF,CAAC,iBAAiB,SAChB,OAAO;EACE;EACP,MAAM;GACJ,YAAY,UAAU;GACtB,YAAY,UAAU;GACtB,kBAAkB,UAAU;GAC5B,mBAAmB,UAAU;EAC/B;CACF,GACD;QACC,CAAC,IACC,KAAK,iBACD,UAAU,YACd,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,eAAe,SAAS,MAAM,WAAW,CAAC,GAC1C,eAAe,SAAS,MAAM,WAAW,CAAC,GAC1C,eAAe,SAAS,MAAM,WAAW,CAAC,GAC1C,cAAc,SAAS,MAAM,UAAU,CAAC,GACzC;UACC,CAAC,SAAS,QAAQ,CAAC,CAAC,aAAa,SAAS,CAAC,GAAyC;aACjF,MAAM,SAAwB;UACjC,EAAE,SAAS;QACb,EAAE,IAAI;QACN,CAAC,KAAK,MAAO,KAAiC,MAAM;UAClD,CAAC,gBACC,MAAO,KAAiC,MACxC,MAAO,KAAiC,MACxC,OAAO,MAAM,MAAM,GACnB,cAAe,KAAiC,cAChD,YAAY,MAAM,WAAW,GAC7B,YAAY,MAAM,WAAW,GAC7B,oBAAoB,mBAAmB,GACvC,iBAAiB,OACjB,aAAa;EACX,SAAS,CAAC,EAAE,cAA2B,uBAAqB,CAAC,EAAE,MAAM;CACvE,GACA,UAAU,OAAO,WAAW,QAAQ,GACpC,UAAU,OAAO,WAAW,QAAQ,GACpC,aAAa,MAAM,eACnB;QACJ,EAAE,KAAK;MACT,EAAE,iBAAiB,SAAS;IAC9B,EAAE,sBAAsB;AAE5B;;;;AAKA,SAAgB,UAAU,OAAoC;CAC5D,MAAM,UAAU,oBAAoB,MAAM,IAAI;CAC9C,MAAM,EAAE,OAAO,SAAS;CACxB,MAAM,CAAC,WAAW,gBAAgB,aAAa,KAAK;CACpD,MAAM,CAAC,UAAU,eAAe,aAAoC,IAAI;CAExE,MAAM,eAAe,kBAAwC;EAC3D,YAAY,MAAM,WAAW;EAC7B,WAAW,UAAU;CACvB,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAEA,mBAAmB;EACjB,MAAM,UAAU,SAAS;EACzB,MAAM,UAAU,MAAM;EACtB,IAAI,CAAC,WAAW,CAAC,SAAS;EAE1B,MAAM,YAAY,UACf,QAAqD,KAAK;EAC7D,QAAQ,iBAAiB,eAAe,UAAU,EAAE,SAAS,KAAK,CAAC;EACnE,gBAAgB,QAAQ,oBAAoB,eAAe,UAAU,EAAE,SAAS,KAAK,CAAC,CAAC;CACzF,CAAC;CAED,OACE,CAAC,iBAAiB,SAAS,OAAO,SAAkC;MAClE,CAAC,IACC,KAAK,iBACD,KAAK,YACT,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,eAAe,SAAS,MAAM,WAAW,CAAC,GAC1C,cAAc,SAAS,UAAU,CAAC,GAClC,iBAAiB,aAAa,IAAI,GAClC,kBAAkB,aAAa,KAAK,GACrC;QACC,CAAC,IAAI,MAAM,MAAM,SAAS,KAAK,YAAY,MAAM,WAAW,OAAO,EAAE,EAAE,IAAI;MAC7E,EAAE,IAAI;IACR,EAAE,iBAAiB;AAEvB;;;;AAKA,SAAgB,YAAY,OAAsC;CAChE,MAAM,EAAE,UAAU,oBAAoB;CACtC,MAAM,CAAC,YAAY,iBAAiB,aAAiC,IAAI;CAEzE,MAAM,cAAc,kBAAkB,EAAE,SAAS,MAAM,QAAQ,GAAG,OAAO,UAAU;CAEnF,MAAM,eAAe,kBAA0C;EAC7D,WAAW,YAAY;EACvB,YAAY,YAAY;EACxB,eAAe,YAAY;EAC3B,MAAM,MAAM,QAAQ;EACpB,MAAM,YAAY;CACpB,EAAE;CAEF,MAAM,cAAc,eAClB;EACE,IAAI,WAAW;GACb,OAAO,MAAM;EACf;EACA,OAAO,MAAM;EACb,OAAO,MAAM;EACb,kBAAkB;CACpB,GACA,YACF;CAGA,MAAM,oBAAoB;EACxB,IAAI,OAAO,MAAM,aAAa,YAC5B,OAAO,YAAY,eAAe;EAEpC,OAAO,YAAY;CACrB;CAEA,OACE,CAAC,KACC,KAAK,mBACD,YAAY,cAChB,OAAO,YAAY,MAAM,GACzB,OAAO,YAAY,MAAM,GACzB,cAAc,SAAS,YAAY,SAAS,GAC5C,eAAe,SAAS,YAAY,UAAU,GAC9C,kBAAkB,SAAS,YAAY,aAAa,GACpD,WAAW,MAAM,QAAQ,MAC1B;OACE,YAAY,EAAE;IACjB,EAAE;AAEN;AAOA,SAAgB,eAAe,OAAyC;CACtE,MAAM,EAAE,SAAS,oBAAoB;CACrC,OACE,CAAC,SAAS,KAAK,YAAY,OAAO,MAAM,OAAO;OAC5C,MAAM,SAAS;IAClB,EAAE;AAEN;AAOA,SAAgB,qBAAqB,OAA+C;CAClF,MAAM,EAAE,SAAS,oBAAoB;CACrC,OACE,CAAC,MAAM,KAAK,kBAAkB,OAAO,MAAM,OAAO;OAC/C,MAAM,SAAS;IAClB,EAAE;AAEN;AAOA,SAAgB,sBAAsB,OAAgD;CACpF,MAAM,EAAE,SAAS,oBAAoB;CACrC,OACE,CAAC,MAAM,KAAK,mBAAmB,OAAO,MAAM,OAAO;OAChD,MAAM,SAAS;IAClB,EAAE;AAEN"}
1
+ {"version":3,"file":"DateField2.jsx","names":["mergeProps"],"sources":["../src/DateRangePickerContext.tsx","../src/DateField.tsx"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport { type createDateRangePicker } from \"@proyecto-viviana/solidaria\";\nimport {\n type DateFieldState,\n type DateValue,\n type RangeCalendarState,\n} from \"@proyecto-viviana/solid-stately\";\n\nexport interface DateRangePickerFieldContextValue {\n state: DateFieldState<DateValue>;\n aria: {\n labelProps: Record<string, unknown>;\n inputProps: Record<string, unknown>;\n /** Optional hidden validation <input> props (unused by the range fields). */\n hiddenInputProps?: Record<string, unknown>;\n descriptionProps: Record<string, unknown>;\n errorMessageProps: Record<string, unknown>;\n };\n}\n\nexport interface DateRangePickerContextValue {\n calendarState: RangeCalendarState<DateValue>;\n startFieldState: DateFieldState<DateValue>;\n endFieldState: DateFieldState<DateValue>;\n startFieldContext: DateRangePickerFieldContextValue;\n endFieldContext: DateRangePickerFieldContextValue;\n overlayState: {\n isOpen: boolean;\n open: () => void;\n close: () => void;\n toggle: () => void;\n };\n triggerRef: () => HTMLElement | null;\n setTriggerRef: (element: HTMLElement | null) => void;\n pickerAria: ReturnType<typeof createDateRangePicker>;\n}\n\nexport const DateRangePickerContext = createContext<DateRangePickerContextValue | null>(null);\n\nexport function useDateRangePickerContext(): DateRangePickerContextValue {\n const context = useContext(DateRangePickerContext);\n if (!context) {\n throw new Error(\"DateRangePicker components must be used within a DateRangePicker\");\n }\n return context;\n}\n","/**\n * DateField component for solidaria-components\n *\n * Pre-wired headless date field component with segment-based editing.\n * Port of react-aria-components/src/DateField.tsx\n */\n\nimport {\n type JSX,\n type Context,\n createContext,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n splitProps,\n useContext,\n Index,\n Show,\n} from \"solid-js\";\nimport {\n createDateField,\n createDateSegment,\n createFocusRing,\n createHover,\n createVisuallyHidden,\n mergeProps,\n type AriaDateFieldProps,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n parseDate,\n parseDateTime,\n toCalendarDate,\n toCalendarDateTime,\n toLocalTimeZone,\n} from \"@internationalized/date\";\nimport {\n createDateFieldState,\n access,\n type DateFieldState,\n type DateFieldStateProps,\n type DateSegment as DateSegmentType,\n type CalendarDate,\n type DateValue,\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 Provider,\n} from \"./utils\";\nimport { TextContext } from \"./Text\";\nimport { FormContext, type FormProps } from \"./Form\";\nimport {\n DateRangePickerContext,\n type DateRangePickerFieldContextValue,\n} from \"./DateRangePickerContext\";\n\nexport interface DateFieldRenderProps {\n /** Whether the field is disabled. */\n isDisabled: boolean;\n /** Whether the field is read-only. */\n isReadOnly: boolean;\n /** Whether the field is required. */\n isRequired: boolean;\n /** Whether the field is invalid. */\n isInvalid: boolean;\n}\n\nexport interface DateFieldProps<T extends DateValue = DateValue>\n extends\n Omit<AriaDateFieldProps, \"id\" | \"isDisabled\" | \"isReadOnly\" | \"isRequired\">,\n Omit<DateFieldStateProps<T>, \"locale\">,\n SlotProps {\n /** The children of the component. */\n children?: JSX.Element | ((segment: DateSegmentType) => JSX.Element);\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DateFieldRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DateFieldRenderProps>;\n /** The locale to use for formatting. */\n locale?: string;\n}\n\nexport interface DateInputRenderProps {\n /** Whether the input is disabled. */\n isDisabled: boolean;\n /** Whether the input is focused. */\n isFocused: boolean;\n}\n\nexport interface DateInputProps extends SlotProps {\n /** The children of the component (render function receiving segments). */\n children?: (segment: DateSegmentType) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DateInputRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DateInputRenderProps>;\n /** Handler called during the pointer down capture phase. */\n onPointerDownCapture?: JSX.EventHandler<HTMLDivElement, PointerEvent>;\n}\n\nexport interface DateSegmentRenderProps {\n /** Whether the segment is hovered. */\n isHovered: boolean;\n /** Whether the segment is focused. */\n isFocused: boolean;\n /** Whether the segment is keyboard focused. */\n isFocusVisible: boolean;\n /** Whether the segment is a placeholder. */\n isPlaceholder: boolean;\n /** Whether the segment is read only. */\n isReadOnly: boolean;\n /** Whether the segment is disabled. */\n isDisabled: boolean;\n /** Whether the segment is invalid. */\n isInvalid: boolean;\n /** The segment type. */\n type: DateSegmentType[\"type\"];\n /** The text to display. */\n text: string;\n}\n\nexport interface DateSegmentProps extends SlotProps {\n /** The segment data. */\n segment: DateSegmentType;\n /** The children of the component. A function may be provided to receive render props. */\n children?: RenderChildren<DateSegmentRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<DateSegmentRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<DateSegmentRenderProps>;\n}\n\nexport interface DateFieldContextValue {\n state: DateFieldState<DateValue>;\n aria: {\n labelProps: Record<string, unknown>;\n inputProps: Record<string, unknown>;\n // The hidden validation <input> props (native type/required/onChange). Only\n // the standalone DateField provides these; DatePicker/DateRangePicker manage\n // their own hidden inputs, so this stays optional and its <input> is gated.\n hiddenInputProps?: Record<string, unknown>;\n descriptionProps: Record<string, unknown>;\n errorMessageProps: Record<string, unknown>;\n };\n}\n\nexport const DateFieldContext = createContext<DateFieldContextValue | null>(null);\nexport const DateFieldStateContext = createContext<DateFieldState<DateValue> | null>(null);\n\nfunction withFormValidationBehavior<P extends object>(props: P, formContext: FormProps | null): P {\n if (!formContext?.validationBehavior) {\n return props;\n }\n\n return new Proxy(props, {\n get(target, property, receiver) {\n const localValue = Reflect.get(target, property, receiver);\n if (property === \"validationBehavior\" && localValue === undefined) {\n return formContext.validationBehavior;\n }\n\n return localValue;\n },\n has(target, property) {\n return (\n Reflect.has(target, property) ||\n (property === \"validationBehavior\" && formContext.validationBehavior !== undefined)\n );\n },\n ownKeys(target) {\n const keys = new Set(Reflect.ownKeys(target));\n if (formContext.validationBehavior !== undefined) {\n keys.add(\"validationBehavior\");\n }\n\n return Array.from(keys);\n },\n getOwnPropertyDescriptor(target, property) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, property);\n if (descriptor) {\n return descriptor;\n }\n\n if (property === \"validationBehavior\" && formContext.validationBehavior !== undefined) {\n return {\n enumerable: true,\n configurable: true,\n get: () => formContext.validationBehavior,\n };\n }\n\n return undefined;\n },\n });\n}\n\nexport function useDateFieldContext(): DateFieldContextValue {\n const context = useContext(DateFieldContext);\n if (!context) {\n throw new Error(\"DateField components must be used within a DateField\");\n }\n return context;\n}\n\nfunction useDateInputContext(\n slot?: string,\n): DateFieldContextValue | DateRangePickerFieldContextValue {\n const dateFieldContext = useContext(DateFieldContext);\n if (dateFieldContext) {\n return dateFieldContext;\n }\n\n const dateRangePickerContext = useContext(DateRangePickerContext);\n if (dateRangePickerContext && slot === \"start\") {\n return dateRangePickerContext.startFieldContext;\n }\n if (dateRangePickerContext && slot === \"end\") {\n return dateRangePickerContext.endFieldContext;\n }\n\n throw new Error(\"DateInput components must be used within a DateField or DateRangePicker slot\");\n}\n\n/**\n * A date field allows users to enter and edit date values using a keyboard.\n *\n * @example\n * ```tsx\n * <DateField label=\"Date\">\n * <Label>Date</Label>\n * <DateInput>\n * {(segment) => <DateSegment segment={segment} />}\n * </DateInput>\n * </DateField>\n * ```\n */\nexport function DateField<T extends DateValue = CalendarDate>(\n props: DateFieldProps<T>,\n): JSX.Element {\n // Use hydration-safe pattern for client-only rendering\n const isHydrated = useIsHydrated();\n const formContext = useContext(FormContext);\n\n return (\n <Show\n when={isHydrated()}\n fallback={\n <div class=\"solidaria-DateField solidaria-DateField--placeholder\" aria-hidden=\"true\" />\n }\n >\n <DateFieldInner {...props} __formContext={formContext} />\n </Show>\n );\n}\n\ntype DateFieldInnerProps<T extends DateValue = DateValue> = DateFieldProps<T> & {\n __formContext?: FormProps | null;\n};\n\n/**\n * Internal DateField component that renders after client mount.\n */\nfunction DateFieldInner<T extends DateValue = CalendarDate>(\n props: DateFieldInnerProps<T>,\n): JSX.Element {\n const formContext = props.__formContext ?? useContext(FormContext);\n const mergedProps = withFormValidationBehavior(props, formContext);\n const [local, stateProps, rest] = splitProps(\n mergedProps,\n [\"children\", \"class\", \"style\", \"slot\", \"__formContext\"],\n [\n \"value\",\n \"defaultValue\",\n \"onChange\",\n \"minValue\",\n \"maxValue\",\n \"isInvalid\",\n \"isDisabled\",\n \"isReadOnly\",\n \"isRequired\",\n \"locale\",\n \"granularity\",\n \"hourCycle\",\n \"hideTimeZone\",\n \"placeholderValue\",\n \"shouldForceLeadingZeros\",\n \"validationState\",\n \"validationBehavior\",\n \"validate\",\n \"description\",\n \"errorMessage\",\n \"isDateUnavailable\",\n ],\n );\n\n const [fieldRef, setFieldRef] = createSignal<HTMLDivElement | null>(null);\n // Ref to the hidden validation <input> (the DateInput's `<Input>` sibling).\n // RAC's DateField creates this ref, passes it to useDateField, and threads it\n // onto the <Input> via InputContext so useFormReset/useFormValidation target\n // that element. We mirror that: create it here, hand it to createDateField\n // below, and attach it to the same input through the context getter.\n const [validationInputRef, setValidationInputRef] =\n createSignal<HTMLInputElement | null>(null);\n\n const state = createDateFieldState(stateProps);\n\n const fieldAria = createDateField(\n () => ({\n ...(rest as Record<string, unknown>),\n // RAC threads the same props into both useDateFieldState and useDateField;\n // these live in `stateProps` here, so forward them so the field hook can\n // build aria-disabled and the native validation <input> (type/required).\n // access() unwraps the MaybeAccessor state-prop declarations.\n isDisabled: access(stateProps.isDisabled),\n isReadOnly: access(stateProps.isReadOnly),\n isRequired: access(stateProps.isRequired),\n // Mirror RAC DateField: validationBehavior ?? formValidationBehavior ??\n // 'native'. withFormValidationBehavior already folds the form default into\n // stateProps.validationBehavior; the last `?? 'native'` is the standalone\n // default that flips the hidden input to type=\"text\".\n validationBehavior: stateProps.validationBehavior ?? \"native\",\n description: stateProps.description,\n errorMessage: stateProps.errorMessage,\n // Form-reset + native constraint validation are wired onto this input by\n // createDateField (see its createFormReset/createFormValidation calls),\n // exactly as RAC's useDateField wires them onto props.inputRef.\n inputRef: () => validationInputRef() ?? undefined,\n }),\n state as unknown as DateFieldState<DateValue>,\n fieldRef,\n );\n\n const renderValues = createMemo<DateFieldRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n isReadOnly: state.isReadOnly(),\n isRequired: state.isRequired(),\n isInvalid: state.isInvalid(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-DateField\",\n },\n renderValues,\n );\n\n const textSlots = {\n slots: {\n get description() {\n return fieldAria.descriptionProps;\n },\n get errorMessage() {\n return fieldAria.errorMessageProps;\n },\n },\n };\n\n return (\n <DateFieldStateContext.Provider value={state as unknown as DateFieldState<DateValue>}>\n <DateFieldContext.Provider\n value={{\n state: state as unknown as DateFieldState<DateValue>,\n // Read through getters so consumers see the LIVE memo values, not a\n // snapshot frozen at first render. `createDescription` appends the\n // value-description id via a deferred effect; the group's\n // aria-describedby only picks it up if the props stay reactive here.\n aria: {\n get labelProps() {\n return fieldAria.labelProps;\n },\n // The segment group props (role=\"group\", aria-labelledby, unicode-bidi\n // isolate style, arrow-key nav, focus-within handlers) are routed to the\n // DateInput element — mirroring RAC, where useDateField.fieldProps is\n // published through GroupContext and consumed by the DateInput <Group>.\n // The outer wrapper stays roleless.\n get inputProps() {\n return fieldAria.fieldProps;\n },\n // The REAL hidden validation input props (type/hidden/required/onChange\n // under native validation). Rendered as the DateInput's <input> sibling.\n // Thread the validation-input ref through here — mirroring RAC's\n // `[InputContext, {...inputProps, ref: inputRef}]` — so createDateField's\n // form-reset/validation wiring resolves to the mounted element.\n get hiddenInputProps() {\n return mergeProps(fieldAria.inputProps, { ref: setValidationInputRef });\n },\n get descriptionProps() {\n return fieldAria.descriptionProps;\n },\n get errorMessageProps() {\n return fieldAria.errorMessageProps;\n },\n },\n }}\n >\n <div\n ref={setFieldRef}\n class={renderProps.class()}\n style={renderProps.style()}\n data-disabled={dataAttr(state.isDisabled())}\n data-readonly={dataAttr(state.isReadOnly())}\n data-required={dataAttr(state.isRequired())}\n data-invalid={dataAttr(state.isInvalid())}\n >\n <Provider values={[[TextContext, textSlots]] as Array<[Context<unknown>, unknown]>}>\n {local.children as JSX.Element}\n </Provider>\n </div>\n {/*\n RAC renders <HiddenDateInput> UNCONDITIONALLY at the DateField root\n (react-aria-components DateField.mjs). It is NOT a validation input — it\n is a clipped, aria-hidden, tabIndex={-1} native date input that mirrors\n the value for browser autofill. Its `form=\"\"` detaches it from form\n submission (the DateInput's <Input> above is what submits), so it never\n double-counts in FormData. It renders regardless of `name` — hence no\n <Show> gate — which is why it appears in the focus trail as the trailing\n tabindex=\"-1\" element.\n */}\n <RootHiddenDateInput\n autoComplete={(rest as Record<string, unknown>).autoComplete as string | undefined}\n name={(rest as Record<string, unknown>).name as string | undefined}\n isDisabled={state.isDisabled()}\n state={state as unknown as DateFieldState<DateValue>}\n />\n </DateFieldContext.Provider>\n </DateFieldStateContext.Provider>\n );\n}\n\nconst HIDDEN_DATE_SEGMENTS: readonly string[] = [\"day\", \"month\", \"year\"];\nconst HIDDEN_TIME_SEGMENTS: readonly string[] = [\"hour\", \"minute\", \"second\"];\nconst HIDDEN_GRANULARITY_MAP: Record<string, number> = { hour: 1, minute: 2, second: 3 };\n\ninterface RootHiddenDateInputProps {\n autoComplete?: string;\n name?: string;\n isDisabled?: boolean;\n state: DateFieldState<DateValue>;\n}\n\n/**\n * The always-rendered hidden date input at the DateField root — a faithful port\n * of react-aria-components' HiddenDateInput (private/HiddenDateInput.mjs). It is\n * NOT a validation input: it is a clipped, aria-hidden, tabIndex={-1} native\n * date input that mirrors the current value for browser autofill. `form=\"\"`\n * detaches it from form submission (the DateInput's <Input> submits), so it\n * never double-counts in FormData. RAC renders it unconditionally, which is why\n * it appears as the trailing tabindex=\"-1\" element in the focus trail.\n */\nfunction RootHiddenDateInput(props: RootHiddenDateInputProps): JSX.Element {\n // RAC uses useVisuallyHidden with position:fixed/top:0/left:0 to keep the\n // clipped input from scrolling the page.\n const { visuallyHiddenProps } = createVisuallyHidden(() => ({\n style: { position: \"fixed\", top: \"0\", left: \"0\" },\n }));\n\n const granularity = () => props.state.granularity ?? \"day\";\n const inputStep = () => {\n const g = granularity();\n if (g === \"second\") return 1;\n if (g === \"hour\") return 3600;\n return 60;\n };\n const inputType = () => (granularity() === \"day\" ? \"date\" : \"datetime-local\");\n const dateValue = () => {\n const value = props.state.value();\n if (!value) return \"\";\n if (granularity() === \"day\") return toCalendarDate(value).toString();\n return toCalendarDateTime(\n \"timeZone\" in value ? toLocalTimeZone(value) : value,\n ).toString();\n };\n\n const onChange: JSX.EventHandler<HTMLInputElement, Event> = (event) => {\n const targetString = (event.currentTarget.value ?? \"\").toString();\n if (!targetString) return;\n try {\n const g = granularity();\n const targetValue = (g === \"day\" ? parseDate(targetString) : parseDateTime(targetString)) as\n unknown as Record<string, number>;\n let timeSegments = HIDDEN_TIME_SEGMENTS;\n if (HIDDEN_TIME_SEGMENTS.includes(g)) {\n timeSegments = HIDDEN_TIME_SEGMENTS.slice(0, HIDDEN_GRANULARITY_MAP[g]);\n }\n const state = props.state as unknown as {\n setSegment?: (type: string, value: number) => void;\n setValue: (value: unknown) => void;\n };\n // Only DateFieldState (not DatePickerState) exposes setSegment; validate\n // each parsed segment before committing the new value, mirroring RAC.\n if (typeof state.setSegment === \"function\") {\n for (const type in targetValue) {\n if (HIDDEN_DATE_SEGMENTS.includes(type)) state.setSegment(type, targetValue[type]);\n if (timeSegments.includes(type)) state.setSegment(type, targetValue[type]);\n }\n }\n state.setValue(targetValue);\n } catch {\n // ignore unparseable autofill values\n }\n };\n\n return (\n <div\n {...(visuallyHiddenProps() as unknown as Record<string, unknown>)}\n aria-hidden=\"true\"\n data-testid=\"hidden-dateinput-container\"\n >\n <input\n tabIndex={-1}\n autocomplete={props.autoComplete}\n disabled={props.isDisabled}\n type={inputType()}\n form=\"\"\n name={props.name}\n step={inputStep()}\n value={dateValue()}\n onChange={onChange}\n />\n </div>\n );\n}\n\n/**\n * The input area containing date segments.\n */\nexport function DateInput(props: DateInputProps): JSX.Element {\n const context = useDateInputContext(props.slot);\n const { state, aria } = context;\n const [isFocused, setIsFocused] = createSignal(false);\n const [inputRef, setInputRef] = createSignal<HTMLDivElement | null>(null);\n\n const renderValues = createMemo<DateInputRenderProps>(() => ({\n isDisabled: state.isDisabled(),\n isFocused: isFocused(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: props.class,\n style: props.style,\n defaultClassName: \"solidaria-DateInput\",\n },\n renderValues,\n );\n\n // The group props (role=\"group\", aria-labelledby, unicode-bidi:isolate,\n // arrow-key nav, focus-within handlers) carry the field's own `style` and\n // focus handlers. Merge — not clobber — so the group keeps its unicode-bidi\n // isolation and the local isFocused signal chains onto the field's\n // focusWithin handlers. Solid onFocus/onBlur do not bubble, so track focus\n // via onFocusIn/onFocusOut.\n const inputDivProps = createMemo(() =>\n mergeProps(aria.inputProps, {\n onFocusIn: () => setIsFocused(true),\n onFocusOut: () => setIsFocused(false),\n style: renderProps.style(),\n }),\n );\n\n createEffect(() => {\n const element = inputRef();\n const handler = props.onPointerDownCapture;\n if (!element || !handler) return;\n\n const listener = (event: PointerEvent) =>\n (handler as unknown as (event: PointerEvent) => void)(event);\n element.addEventListener(\"pointerdown\", listener, { capture: true });\n onCleanup(() => element.removeEventListener(\"pointerdown\", listener, { capture: true }));\n });\n\n return (\n <DateFieldContext.Provider value={context as DateFieldContextValue}>\n <div\n ref={setInputRef}\n {...inputDivProps()}\n class={renderProps.class()}\n data-disabled={dataAttr(state.isDisabled())}\n data-focused={dataAttr(isFocused())}\n >\n {/*\n <Index> keys by position, not identity, so each DateSegment instance\n stays alive across keystrokes (state.segments() re-mints segment\n objects every edit). A stable Proxy forwards property reads to the\n live per-index accessor so the child stays reactive.\n */}\n <Index each={state.segments()}>\n {(segment) => {\n const liveSegment = new Proxy({} as DateSegmentType, {\n get: (_t, key) => (segment() as unknown as Record<PropertyKey, unknown>)[key],\n has: (_t, key) => key in (segment() as object),\n });\n return props.children?.(liveSegment);\n }}\n </Index>\n </div>\n {/*\n The hidden validation input, sibling of the group — mirrors RAC's\n DateInputInner `<><Group/><Input/></>`. Under native validation\n (default) `useDateField` publishes it as `type=\"text\" hidden required`\n so browser constraint validation fires; under aria validation it stays\n `type=\"hidden\"`. Both carry the ISO value string. Only the standalone\n DateField supplies these props; inside a DatePicker/DateRangePicker the\n field is presentation and its owner renders the hidden input instead.\n */}\n <Show when={aria.hiddenInputProps}>\n {(hiddenInputProps) => (\n <input {...(hiddenInputProps() as JSX.InputHTMLAttributes<HTMLInputElement>)} />\n )}\n </Show>\n </DateFieldContext.Provider>\n );\n}\n\n/**\n * A segment of a date field (year, month, day, etc.).\n */\nexport function DateSegment(props: DateSegmentProps): JSX.Element {\n const { state } = useDateFieldContext();\n const [segmentRef, setSegmentRef] = createSignal<HTMLElement | null>(null);\n\n const segmentAria = createDateSegment(\n {\n get segment() {\n return props.segment;\n },\n },\n state,\n segmentRef,\n );\n\n // Mirror upstream DateSegment: focus/focus-visible come from useFocusRing()\n // and hover from useHover({isDisabled: field disabled || literal segment}).\n // Literals never hover; the field being disabled suppresses hover entirely.\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n const { isHovered, hoverProps } = createHover(() => ({\n isDisabled: state.isDisabled() || props.segment.type === \"literal\",\n }));\n\n const renderValues = createMemo<DateSegmentRenderProps>(() => ({\n isHovered: isHovered(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible(),\n isPlaceholder: props.segment.isPlaceholder,\n isReadOnly: state.isReadOnly(),\n isDisabled: state.isDisabled(),\n isInvalid: state.isInvalid(),\n type: props.segment.type,\n text: props.segment.text,\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-DateSegment\",\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 props.segment.text;\n };\n\n // Mirror upstream's `mergeProps(filterDOMProps(otherProps), segmentProps,\n // focusProps, hoverProps)`: the segment's behavior/style props (caretColor +\n // RTL direction) chain with the focus-ring and hover handlers so neither\n // clobbers the other.\n const segmentElementProps = createMemo(() =>\n mergeProps(\n segmentAria.segmentProps,\n focusProps as Record<string, unknown>,\n hoverProps as Record<string, unknown>,\n {\n style: renderProps.style(),\n },\n ),\n );\n\n return (\n <span\n ref={setSegmentRef}\n {...segmentElementProps()}\n class={renderProps.class()}\n data-placeholder={props.segment.isPlaceholder || undefined}\n data-invalid={state.isInvalid() || undefined}\n data-readonly={state.isReadOnly() || undefined}\n data-disabled={state.isDisabled() || undefined}\n data-type={props.segment.type}\n data-hovered={isHovered() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={isFocusVisible() || undefined}\n >\n {getChildren()}\n </span>\n );\n}\n\nexport interface DateFieldLabelProps {\n children?: JSX.Element;\n class?: string;\n}\n\nexport function DateFieldLabel(props: DateFieldLabelProps): JSX.Element {\n const { aria } = useDateFieldContext();\n return (\n <span {...aria.labelProps} class={props.class}>\n {props.children}\n </span>\n );\n}\n\nexport interface DateFieldDescriptionProps {\n children?: JSX.Element;\n class?: string;\n}\n\nexport function DateFieldDescription(props: DateFieldDescriptionProps): JSX.Element {\n const { aria } = useDateFieldContext();\n return (\n <span {...aria.descriptionProps} class={props.class}>\n {props.children}\n </span>\n );\n}\n\nexport interface DateFieldErrorMessageProps {\n children?: JSX.Element;\n class?: string;\n}\n\nexport function DateFieldErrorMessage(props: DateFieldErrorMessageProps): JSX.Element {\n const { aria } = useDateFieldContext();\n return (\n <span {...aria.errorMessageProps} class={props.class}>\n {props.children}\n </span>\n );\n}\n\nexport type { DateFieldState, DateSegmentType };\n"],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Port of react-aria-components/src/DatePicker.tsx
6
6
  */
7
7
  import { type JSX, type Context } from "solid-js";
8
- import { createDatePicker, type AriaDatePickerProps, type AriaDateRangePickerProps } from "@proyecto-viviana/solidaria";
8
+ import { createDatePicker, type AriaDatePickerProps, type AriaDateRangePickerProps, type PlacementAxis } from "@proyecto-viviana/solidaria";
9
9
  import { type DateFieldState, type DatePickerState, type CalendarStateProps, type CalendarState, type RangeCalendarState, type DateFieldStateProps, type CalendarDate, type DateValue, type RangeCalendarStateProps } from "@proyecto-viviana/solid-stately";
10
10
  import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
11
11
  export interface DatePickerRenderProps {
@@ -101,6 +101,25 @@ export interface DatePickerButtonRenderProps {
101
101
  isDisabled: boolean;
102
102
  /** Whether the calendar is open. */
103
103
  isOpen: boolean;
104
+ /**
105
+ * Whether the button is currently pressed. Provided by the single
106
+ * DatePicker (fed from `createDatePicker().isButtonPressed()`); the range
107
+ * variant does not yet publish press state, so this is optional.
108
+ */
109
+ isPressed?: boolean;
110
+ /**
111
+ * Whether the button is hovered. Fed from the trigger's own `createHover`;
112
+ * mirrors RAC `Button`'s `isHovered` renderProp so the styled S2
113
+ * `baseColor("gray-100")` hover-step background compiles into the className.
114
+ */
115
+ isHovered?: boolean;
116
+ /**
117
+ * Whether the button is keyboard-focused (focus-visible). Fed from
118
+ * `createFocusRing`; mirrors RAC `Button`'s `isFocusVisible` so the styled
119
+ * S2 `focusRing()` outline (a renderProps-gated class, not a CSS
120
+ * `[data-focus-visible]` selector) compiles into the className.
121
+ */
122
+ isFocusVisible?: boolean;
104
123
  }
105
124
  export interface DatePickerButtonProps extends SlotProps {
106
125
  /** The children of the component. */
@@ -111,6 +130,12 @@ export interface DatePickerButtonProps extends SlotProps {
111
130
  style?: StyleOrFunction<DatePickerButtonRenderProps>;
112
131
  /** Whether the button is disabled. */
113
132
  isDisabled?: boolean;
133
+ /**
134
+ * Ref callback for the underlying button element. Mirrors S2's CalendarButton,
135
+ * whose `buttonRef` feeds `pressScale(buttonRef)`; the styled layer forwards a
136
+ * setter here so it can size the press transform against the real element.
137
+ */
138
+ ref?: (element: HTMLButtonElement) => void;
114
139
  }
115
140
  export interface DateRangePickerButtonProps extends DatePickerButtonProps {
116
141
  }
@@ -152,11 +177,25 @@ export declare function DateRangePicker<T extends DateValue = CalendarDate>(prop
152
177
  */
153
178
  export declare function DatePickerButton(props: DatePickerButtonProps): JSX.Element;
154
179
  export declare function DateRangePickerButton(props: DateRangePickerButtonProps): JSX.Element;
180
+ /**
181
+ * Render props for the popover surface, mirroring RAC `Popover`'s
182
+ * enter/exit/placement renderProps. The styled layer keys the S2
183
+ * opacity/translate enter transition on these (a renderProps-gated class, not a
184
+ * CSS `[data-entering]` selector).
185
+ */
186
+ export interface DatePickerContentRenderProps {
187
+ /** Whether the popover is playing its enter transition (`data-entering`). */
188
+ isEntering: boolean;
189
+ /** Whether the popover is playing its exit transition (`data-exiting`). */
190
+ isExiting: boolean;
191
+ /** The resolved placement axis, for the direction-dependent translate. */
192
+ placement: PlacementAxis | null;
193
+ }
155
194
  export interface DatePickerContentProps extends SlotProps {
156
195
  /** The children of the component. */
157
196
  children?: JSX.Element;
158
- /** The CSS className for the element. */
159
- class?: string;
197
+ /** The CSS className for the element, or a function of the render props. */
198
+ class?: string | ((renderProps: DatePickerContentRenderProps) => string);
160
199
  /** The inline style for the element. */
161
200
  style?: JSX.CSSProperties;
162
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../src/DatePicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../src/DatePicker.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EASb,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,gBAAgB,EAUhB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAE7B,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAExB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,uBAAuB,EAE7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAKf,MAAM,SAAS,CAAC;AAcjB,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,qBAAqB,EAAE,WAAW,CAAC;IAC1F,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,YAAY,EAAE;QACZ,MAAM,EAAE,OAAO,CAAC;QAChB,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,KAAK,EAAE,MAAM,IAAI,CAAC;QAClB,MAAM,EAAE,MAAM,IAAI,CAAC;KACpB,CAAC;IACF,UAAU,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;CACjD;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,IAAI,CACjE,mBAAmB,EACnB,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAC5E,GACC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GACtC,SAAS,GAAG;IACV,qCAAqC;IACrC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;IACnD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC/C,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4FAA4F;IAC5F,YAAY,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACrD,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACjE,6DAA6D;IAC7D,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;CAC/C,CAAC;AAEJ,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CACnE,SACE,IAAI,CAAC,wBAAwB,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC,EAClE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAC1C,SAAS;IACX,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;IACxD,KAAK,CAAC,EAAE,eAAe,CAAC,0BAA0B,CAAC,CAAC;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACnD,wDAAwD;IACxD,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACpB,yDAAyD;IACzD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,cAAc,CAAC,2BAA2B,CAAC,CAAC;IACvD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;IACzD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,2BAA2B,CAAC,CAAC;IACrD,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;CAAG;AAE5E,eAAO,MAAM,iBAAiB,wCAAqD,CAAC;AACpF,eAAO,MAAM,sBAAsB,2CAAwD,CAAC;AAC5F,eAAO,MAAM,2BAA2B,+CAEvC,CAAC;AACF,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,YAAY,EACV,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,0BAA0B,CAAC;AAiDlC,wBAAgB,oBAAoB,IAAI,sBAAsB,CAM7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,YAAY,EAC3D,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACxB,GAAG,CAAC,OAAO,CAeb;AA4UD,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,YAAY,EAChE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC7B,GAAG,CAAC,OAAO,CAeb;AA2VD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,GAAG,CAAC,OAAO,CA8E1E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,GAAG,CAAC,OAAO,CA4EpF;AAED;;;;;GAKG;AACH,MAAM,WAAW,4BAA4B;IAC3C,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,4BAA4B,KAAK,MAAM,CAAC,CAAC;IACzE,wCAAwC;IACxC,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;CAAG;AAE9E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAOxE;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,GAAG,GAAG,CAAC,OAAO,CASpF;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,CAStF;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,GAAG,CAAC,OAAO,CAOlF;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,GAAG,GAAG,CAAC,OAAO,CAS9F;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,gCAAgC,GAAG,GAAG,CAAC,OAAO,CAShG;AAgBD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAkH5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,GAAG,CAAC,OAAO,CAiGtF;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}