@proyecto-viviana/ui 0.6.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -16
- package/dist/_chunk/LinkButton.js +9 -9
- package/dist/_chunk/LinkButton.js.map +1 -1
- package/dist/_chunk/LinkButton.jsx +9 -9
- package/dist/_chunk/LinkButton.jsx.map +1 -1
- package/dist/_chunk/RangeCalendar.js +7 -7
- package/dist/_chunk/RangeCalendar.js.map +1 -1
- package/dist/_chunk/RangeCalendar.jsx +7 -7
- package/dist/_chunk/RangeCalendar.jsx.map +1 -1
- package/dist/_chunk/Tabs.js +2 -2
- package/dist/_chunk/Tabs.jsx +2 -2
- package/dist/_chunk/breadcrumbs.js +2 -2
- package/dist/_chunk/breadcrumbs.js.map +1 -1
- package/dist/_chunk/breadcrumbs.jsx +2 -2
- package/dist/_chunk/breadcrumbs.jsx.map +1 -1
- package/dist/_chunk/button.js +3 -3
- package/dist/_chunk/button.jsx +3 -3
- package/dist/_chunk/color.js +4 -4
- package/dist/_chunk/color.jsx +4 -4
- package/dist/_chunk/form.js +5 -7
- package/dist/_chunk/form.js.map +1 -1
- package/dist/_chunk/form.jsx +5 -8
- package/dist/_chunk/form.jsx.map +1 -1
- package/dist/_chunk/layout.js +5 -1
- package/dist/_chunk/layout.js.map +1 -1
- package/dist/_chunk/layout.jsx +5 -1
- package/dist/_chunk/layout.jsx.map +1 -1
- package/dist/_chunk/list.js +4 -4
- package/dist/_chunk/list.jsx +4 -4
- package/dist/_chunk/menu.js +1 -1
- package/dist/_chunk/menu.js.map +1 -1
- package/dist/_chunk/menu.jsx +1 -1
- package/dist/_chunk/menu.jsx.map +1 -1
- package/dist/_chunk/numberfield.js +2 -2
- package/dist/_chunk/numberfield.jsx +2 -2
- package/dist/_chunk/s2-action-button-styles.js +8 -8
- package/dist/_chunk/s2-action-button-styles.js.map +1 -1
- package/dist/_chunk/s2-action-button-styles.jsx +8 -8
- package/dist/_chunk/s2-action-button-styles.jsx.map +1 -1
- package/dist/_chunk/s2-menu-styles.js +1 -1
- package/dist/_chunk/s2-menu-styles.jsx +1 -1
- package/dist/_chunk/slider.js +6 -6
- package/dist/_chunk/slider.jsx +6 -6
- package/dist/_chunk/switch.js +2 -2
- package/dist/_chunk/switch.jsx +2 -2
- package/dist/_chunk/table.js +3 -3
- package/dist/_chunk/table.js.map +1 -1
- package/dist/_chunk/table.jsx +3 -3
- package/dist/_chunk/table.jsx.map +1 -1
- package/dist/_chunk/text.js +1 -1
- package/dist/_chunk/text.jsx +1 -1
- package/dist/_chunk/textfield.js +4 -4
- package/dist/_chunk/textfield.jsx +4 -4
- package/dist/_chunk/toast.js +3 -3
- package/dist/_chunk/toast.jsx +3 -3
- package/dist/actiongroup/index.js +2 -2
- package/dist/actiongroup/index.jsx +2 -2
- package/dist/badge/index.js +6 -6
- package/dist/badge/index.jsx +6 -6
- package/dist/breadcrumbs/index.d.ts.map +1 -1
- package/dist/calendar/DateField.d.ts.map +1 -1
- package/dist/calendar/DateField.js +2 -2
- package/dist/calendar/DateField.js.map +1 -1
- package/dist/calendar/DateField.jsx +2 -2
- package/dist/calendar/DateField.jsx.map +1 -1
- package/dist/calendar/DatePicker.d.ts.map +1 -1
- package/dist/calendar/DatePicker.js +2 -2
- package/dist/calendar/DatePicker.js.map +1 -1
- package/dist/calendar/DatePicker.jsx +2 -2
- package/dist/calendar/DatePicker.jsx.map +1 -1
- package/dist/calendar/DateRangePicker.js +2 -2
- package/dist/calendar/DateRangePicker.jsx +2 -2
- package/dist/calendar/RangeCalendar.d.ts.map +1 -1
- package/dist/calendar/TimeField.d.ts.map +1 -1
- package/dist/calendar/TimeField.js +2 -2
- package/dist/calendar/TimeField.js.map +1 -1
- package/dist/calendar/TimeField.jsx +2 -2
- package/dist/calendar/TimeField.jsx.map +1 -1
- package/dist/calendar/index.js +5 -5
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.jsx +5 -5
- package/dist/calendar/index.jsx.map +1 -1
- package/dist/checkbox/index.js +3 -3
- package/dist/checkbox/index.jsx +3 -3
- package/dist/combobox/index.js +2 -2
- package/dist/combobox/index.jsx +2 -2
- package/dist/dropzone/index.js +1 -1
- package/dist/dropzone/index.jsx +1 -1
- package/dist/font-faces.css +13 -6
- package/dist/form/index.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelChartIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelChartIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelChartIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelCheckIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelCheckIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelCheckIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelChevronDownIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelChevronDownIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelChevronDownIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelChevronRightIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelChevronRightIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelChevronRightIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelClockIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelClockIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelClockIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelCodeIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelCodeIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelCodeIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelCommunityIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelCommunityIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelCommunityIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelCubeIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelCubeIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelCubeIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelFlameIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelFlameIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelFlameIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelHomeIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelHomeIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelHomeIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelLayoutIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelLayoutIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelLayoutIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelMessageIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelMessageIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelMessageIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavCommunityIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavCommunityIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavCommunityIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavExploreIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavExploreIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavExploreIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavLiveIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavLiveIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavLiveIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavPathwaysIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavPathwaysIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavPathwaysIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavProjectsIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavProjectsIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavProjectsIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavReferenceIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavReferenceIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavReferenceIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavSettingsIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavSettingsIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavSettingsIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNavTopicsIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNavTopicsIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNavTopicsIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelNotificationIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelNotificationIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelNotificationIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelPathwaysIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelPathwaysIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelPathwaysIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelPlayIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelPlayIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelPlayIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelSearchIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelSearchIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelSearchIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelSettingsIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelSettingsIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelSettingsIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelSparkleIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelSparkleIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelSparkleIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelTopicsIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelTopicsIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelTopicsIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelUserIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelUserIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelUserIcon.jsx.map +1 -1
- package/dist/icon/pixel-icons/PixelZapIcon.d.ts.map +1 -1
- package/dist/icon/pixel-icons/PixelZapIcon.js.map +1 -1
- package/dist/icon/pixel-icons/PixelZapIcon.jsx.map +1 -1
- package/dist/inlinealert/index.js +6 -6
- package/dist/inlinealert/index.jsx +6 -6
- package/dist/labeledvalue/index.js +1 -1
- package/dist/labeledvalue/index.jsx +1 -1
- package/dist/layout/Flex.d.ts +2 -0
- package/dist/layout/Flex.d.ts.map +1 -1
- package/dist/link/index.d.ts.map +1 -1
- package/dist/link/index.js +1 -4
- package/dist/link/index.js.map +1 -1
- package/dist/link/index.jsx +1 -4
- package/dist/link/index.jsx.map +1 -1
- package/dist/listbox/index.js +3 -3
- package/dist/listbox/index.jsx +4 -4
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/meter/index.d.ts.map +1 -1
- package/dist/meter/index.js +2 -2
- package/dist/meter/index.js.map +1 -1
- package/dist/meter/index.jsx +2 -2
- package/dist/meter/index.jsx.map +1 -1
- package/dist/notificationbadge/index.js +1 -1
- package/dist/notificationbadge/index.jsx +1 -1
- package/dist/picker/index.js +3 -3
- package/dist/picker/index.jsx +3 -3
- package/dist/popover/index.js +1 -1
- package/dist/popover/index.jsx +1 -1
- package/dist/progress/ProgressCircle.js +2 -2
- package/dist/progress/ProgressCircle.js.map +1 -1
- package/dist/progress/ProgressCircle.jsx +2 -2
- package/dist/progress/ProgressCircle.jsx.map +1 -1
- package/dist/progress-bar/index.js +4 -4
- package/dist/progress-bar/index.jsx +4 -4
- package/dist/radio/index.js +2 -2
- package/dist/radio/index.jsx +2 -2
- package/dist/searchfield/index.js +2 -2
- package/dist/searchfield/index.jsx +2 -2
- package/dist/segmentedcontrol/index.js +2 -5
- package/dist/segmentedcontrol/index.js.map +1 -1
- package/dist/segmentedcontrol/index.jsx +2 -5
- package/dist/segmentedcontrol/index.jsx.map +1 -1
- package/dist/select/index.js +3 -3
- package/dist/select/index.jsx +3 -3
- package/dist/selectboxgroup/index.js +1 -1
- package/dist/selectboxgroup/index.jsx +1 -1
- package/dist/statuslight/index.js +1 -1
- package/dist/statuslight/index.jsx +1 -1
- package/dist/steplist/index.js +5 -5
- package/dist/steplist/index.jsx +5 -5
- package/dist/style/glasselated-ramps.d.ts.map +1 -1
- package/dist/style/index.js +18 -9
- package/dist/style/index.js.map +1 -1
- package/dist/style/spectrum-theme.d.ts +7 -7
- package/dist/style/spectrum-theme.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/tag-group/index.js +10 -10
- package/dist/tag-group/index.js.map +1 -1
- package/dist/tag-group/index.jsx +10 -10
- package/dist/tag-group/index.jsx.map +1 -1
- package/dist/toolbar/index.d.ts.map +1 -1
- package/dist/toolbar/index.js.map +1 -1
- package/dist/toolbar/index.jsx.map +1 -1
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +5 -5
- package/dist/tree/index.js.map +1 -1
- package/dist/tree/index.jsx +5 -5
- package/dist/tree/index.jsx.map +1 -1
- package/dist/viviana-tokens.css +39 -12
- package/package.json +18 -5
- package/src/breadcrumbs/index.tsx +14 -7
- package/src/button/s2-action-button-styles.ts +8 -8
- package/src/button/s2-button-styles.ts +8 -8
- package/src/calendar/DateField.tsx +2 -6
- package/src/calendar/DatePicker.tsx +8 -1
- package/src/calendar/RangeCalendar.tsx +13 -7
- package/src/calendar/TimeField.tsx +2 -6
- package/src/calendar/index.tsx +4 -4
- package/src/font-faces.css +13 -6
- package/src/form/index.tsx +5 -6
- package/src/icon/pixel-icons/PixelChartIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelCheckIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelChevronDownIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelChevronRightIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelClockIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelCodeIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelCommunityIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelCubeIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelFlameIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelHomeIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelLayoutIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelMessageIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavCommunityIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavExploreIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavLiveIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavPathwaysIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavPlaygroundIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavProjectsIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavReferenceIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavSettingsIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNavTopicsIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelNotificationIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelPathwaysIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelPlayIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelSearchIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelSettingsIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelSparkleIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelTopicsIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelUserIcon.tsx +4 -1
- package/src/icon/pixel-icons/PixelZapIcon.tsx +4 -1
- package/src/layout/Flex.tsx +7 -0
- package/src/link/index.tsx +3 -1
- package/src/menu/index.tsx +1 -3
- package/src/meter/index.tsx +1 -3
- package/src/progress/ProgressCircle.tsx +1 -1
- package/src/segmentedcontrol/index.tsx +6 -6
- package/src/style/glasselated-ramps.ts +37 -33
- package/src/style/spectrum-theme.ts +22 -17
- package/src/table/index.tsx +1 -3
- package/src/tag-group/index.tsx +8 -8
- package/src/toolbar/index.tsx +4 -1
- package/src/tree/index.tsx +3 -11
- package/src/viviana-tokens.css +39 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/calendar/index.tsx"],"sourcesContent":["// @ts-nocheck\nimport {\n type JSX,\n For,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Calendar as HeadlessCalendar,\n CalendarButton,\n CalendarGrid,\n CalendarCell,\n useCalendarContext,\n type CalendarCellRenderProps,\n type CalendarDate,\n type DateValue,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { useLocale } from \"@proyecto-viviana/solidaria\";\nimport { DateFormatter, type CalendarStateProps } from \"@proyecto-viviana/solid-stately\";\nimport type { StyleString } from \"../style\";\nimport {\n baseColor,\n focusRing,\n lightDark,\n setColorScheme,\n style,\n} from \"../style\" with { type: \"macro\" };\nimport ChevronLeftIcon from \"../icon/s2wf-icons/ChevronLeftIcon\";\nimport ChevronRightIcon from \"../icon/s2wf-icons/ChevronRightIcon\";\nimport { pressScale } from \"../pressScale\";\nimport { useProviderProps } from \"../provider\";\nimport type { UnsafeClassName } from \"../s2-internal/style-utils\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type CalendarSize = \"S\" | \"M\" | \"L\" | \"XL\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\ntype NormalizedCalendarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type CalendarFirstDayOfWeek = \"sun\" | \"mon\" | \"tue\" | \"wed\" | \"thu\" | \"fri\" | \"sat\";\n\nexport interface CalendarProps<T extends DateValue = DateValue> extends Omit<\n CalendarStateProps<T>,\n \"locale\" | \"firstDayOfWeek\" | \"validationState\"\n> {\n /** The size of the calendar. @default 'md' */\n size?: CalendarSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Additional CSS class name. */\n class?: string;\n /** Whether to show week numbers. */\n showWeekNumbers?: boolean;\n /** The locale to use for formatting. */\n locale?: string;\n /** The day that starts the week. */\n firstDayOfWeek?: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** Whether the current selection is invalid according to application logic. */\n isInvalid?: boolean;\n /** Validation state for backward-compatible Solid Stately callers. */\n validationState?: CalendarStateProps<T>[\"validationState\"];\n /** The error message to display when the calendar is invalid. */\n errorMessage?: JSX.Element;\n /** Custom aria label. */\n \"aria-label\"?: string;\n slot?: string | null;\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport const CalendarContext = createContext<SpectrumContextValue<CalendarProps<any>>>(null);\n\nconst sizeStyles: Record<NormalizedCalendarSize, { cellMaxWidth: number; buttonSize: number }> = {\n sm: {\n cellMaxWidth: 32,\n buttonSize: 24,\n },\n md: {\n cellMaxWidth: 32,\n buttonSize: 32,\n },\n lg: {\n cellMaxWidth: 40,\n buttonSize: 40,\n },\n xl: {\n cellMaxWidth: 44,\n buttonSize: 44,\n },\n};\n\nfunction cellBoxStyle(size: NormalizedCalendarSize): JSX.CSSProperties {\n const cellSize = `${sizeStyles[size].cellMaxWidth}px`;\n return {\n width: cellSize,\n height: cellSize,\n };\n}\n\nfunction normalizeCalendarSize(size: CalendarSize | undefined): NormalizedCalendarSize {\n switch (size) {\n case \"S\":\n case \"sm\":\n return \"sm\";\n case \"L\":\n case \"lg\":\n return \"lg\";\n case \"XL\":\n return \"xl\";\n case \"M\":\n case \"md\":\n default:\n return \"md\";\n }\n}\n\nfunction normalizeFirstDayOfWeek(\n firstDayOfWeek: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined,\n): 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined {\n switch (firstDayOfWeek) {\n case \"sun\":\n return 0;\n case \"mon\":\n return 1;\n case \"tue\":\n return 2;\n case \"wed\":\n return 3;\n case \"thu\":\n return 4;\n case \"fri\":\n return 5;\n case \"sat\":\n return 6;\n default:\n return firstDayOfWeek;\n }\n}\n\nfunction monthTitle(date: CalendarDate, locale: string | undefined, timeZone: string): string {\n const formattableMonth = date.calendar.getFormattableMonth?.(date) ?? date;\n return new DateFormatter(locale ?? \"en-US\", {\n month: \"long\",\n year: \"numeric\",\n calendar: date.calendar.identifier,\n }).format(formattableMonth.toDate(timeZone));\n}\n\nconst calendarRoot = style<{ isMultiMonth?: boolean }>({\n ...setColorScheme(),\n display: \"flex\",\n flexDirection: \"column\",\n gap: 24,\n disableTapHighlight: true,\n \"--cell-gap\": {\n type: \"paddingStart\",\n value: 4,\n },\n \"--cell-responsive-size\": \"--s2-calendar-cell-max-width\",\n width: \"fit\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar headerStyles.\nconst calendarHeader = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n columnGap: 24,\n});\n\n// Mirrors @react-spectrum/s2 Calendar headingStyles: one per visible month,\n// laying out [prev button?, title, next button?] with the title flex-growing.\nconst calendarHeading = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n margin: 0,\n flexGrow: 1,\n width: \"full\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar titleStyles.\nconst calendarTitle = style({\n font: \"title-lg\",\n textAlign: \"center\",\n flexGrow: 1,\n flexShrink: 0,\n marginY: 0,\n});\n\nconst calendarMonths = style<{ isMultiMonth?: boolean }>({\n display: \"flex\",\n flexDirection: \"row\",\n gap: {\n default: 0,\n isMultiMonth: 24,\n },\n alignItems: \"start\",\n width: \"[max-content]\",\n});\n\nconst calendarNavButton = style<{ buttonSize: number }>({\n ...focusRing(),\n font: \"ui\",\n fontWeight: \"medium\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"[var(--s2-calendar-button-size)]\",\n height: \"[var(--s2-calendar-button-size)]\",\n borderStyle: \"none\",\n borderRadius: \"full\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: baseColor(\"gray-100\"),\n isPressed: baseColor(\"gray-200\"),\n },\n // Gray the chevron when disabled, mirroring S2's disabled ActionButton. This\n // is a bare native <button>, so the disabled color keys off the `:disabled`\n // pseudo (the button carries the `disabled` attribute for both whole-calendar\n // and range-boundary disable) rather than a runtime render prop. The chevron\n // icon inherits it via `--iconPrimary: currentColor`.\n color: {\n default: baseColor(\"neutral\"),\n \":disabled\": \"disabled\",\n },\n cursor: \"default\",\n transition: \"default\",\n});\n\nconst calendarGrid = style({\n borderCollapse: \"collapse\",\n borderSpacing: 0,\n isolation: \"isolate\",\n});\n\nconst calendarHeaderCell = style({\n boxSizing: \"border-box\",\n font: \"title-sm\",\n cursor: \"default\",\n textAlign: \"center\",\n width: \"--cell-responsive-size\",\n paddingStart: {\n default: 4,\n \":first-child\": 0,\n },\n paddingEnd: {\n default: 4,\n \":last-child\": 0,\n },\n paddingTop: 0,\n paddingBottom: 12,\n});\n\nconst calendarCellWrapper = style({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n padding: 0,\n position: \"relative\",\n disableTapHighlight: true,\n width: \"--cell-responsive-size\",\n height: \"--cell-responsive-size\",\n});\n\nconst calendarCellOuter = style<{\n isDisabled?: boolean;\n isOutsideMonth?: boolean;\n isFirstChild?: boolean;\n isLastChild?: boolean;\n isFirstWeek?: boolean;\n isLastWeek?: boolean;\n}>({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n paddingStart: {\n default: 4,\n isFirstChild: 0,\n },\n paddingEnd: {\n default: 4,\n isLastChild: 0,\n },\n paddingTop: {\n default: 2,\n isFirstWeek: 0,\n },\n paddingBottom: {\n default: 2,\n isLastWeek: 0,\n },\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n display: {\n default: \"flex\",\n isOutsideMonth: \"none\",\n },\n alignItems: \"center\",\n justifyContent: \"center\",\n disableTapHighlight: true,\n});\n\nconst calendarCellInnerFrame = style({\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n});\n\nconst calendarCellInner = style<{\n isSelected?: boolean;\n isDisabled?: boolean;\n isPressed?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isUnavailable?: boolean;\n isInvalid?: boolean;\n}>({\n ...focusRing(),\n transition: {\n default: \"default\",\n forcedColors: \"none\",\n },\n outlineOffset: {\n default: -2,\n isSelected: 2,\n },\n position: \"relative\",\n font: \"body-sm\",\n cursor: \"default\",\n width: \"full\",\n height: \"full\",\n borderRadius: \"full\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n forcedColorAdjust: \"none\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: {\n default: \"gray-100\",\n isUnavailable: \"transparent\",\n },\n isPressed: \"gray-100\",\n isDisabled: \"transparent\",\n isSelected: {\n default: lightDark(\"accent-900\", \"accent-700\"),\n isHovered: lightDark(\"accent-1000\", \"accent-800\"),\n isPressed: lightDark(\"accent-1000\", \"accent-800\"),\n isFocusVisible: lightDark(\"accent-1000\", \"accent-800\"),\n isDisabled: \"transparent\",\n isInvalid: {\n default: lightDark(\"negative-900\", \"negative-700\"),\n isHovered: lightDark(\"negative-1000\", \"negative-600\"),\n isPressed: lightDark(\"negative-1000\", \"negative-600\"),\n isFocusVisible: lightDark(\"negative-1000\", \"negative-600\"),\n },\n },\n forcedColors: {\n default: \"transparent\",\n isHovered: \"Highlight\",\n isSelected: \"Highlight\",\n },\n },\n // Mirrors @react-spectrum/s2 Calendar cellInnerStyles color: unavailable dates\n // stay `neutral` (only the strikethrough slash marks them), so there is NO\n // isUnavailable branch here. The port previously invented `isUnavailable:\n // \"disabled\"`, graying the text and its currentColor slash.\n color: {\n default: \"neutral\",\n isSelected: \"white\",\n isDisabled: \"disabled\",\n forcedColors: {\n default: \"ButtonText\",\n isSelected: \"HighlightText\",\n isDisabled: \"GrayText\",\n },\n },\n});\n\nconst calendarUnavailableSlash = style({\n position: \"absolute\",\n top: \"[calc(50% - 1px)]\",\n left: \"[calc(25% - 1px)]\",\n right: \"[calc(25% - 1px)]\",\n height: 2,\n transform: \"rotate(-16deg)\",\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n});\n\nconst calendarTodayDot = style<{ isToday?: boolean }>({\n position: \"absolute\",\n bottom: \"12.5%\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n width: 4,\n height: 4,\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n display: {\n default: \"none\",\n isToday: \"block\",\n },\n});\n\nconst calendarNavIcon = style({\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n width: \"[1.4285714285714286em]\",\n height: \"[1.4285714285714286em]\",\n forcedColorAdjust: \"none\",\n});\n\n// Mirrors @react-spectrum/s2 Field helpTextStyles at size M (controlFont() → the\n// base `ui` font). The port previously invented `font: \"body-sm\"`, giving the\n// error text a taller line box than S2. `--field-gap` is undefined outside a\n// Field, so paddingTop resolves to 0 here — matching S2's standalone Calendar.\nconst calendarHelpText = style<{ isInvalid?: boolean; isDisabled?: boolean }>({\n display: \"flex\",\n alignItems: \"baseline\",\n gap: \"text-to-visual\",\n font: \"ui\",\n color: {\n default: \"neutral-subdued\",\n isInvalid: {\n default: \"negative\",\n forcedColors: \"Mark\",\n },\n isDisabled: {\n default: \"disabled\",\n forcedColors: \"GrayText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n contain: \"inline-size\",\n paddingTop: \"--field-gap\",\n cursor: {\n default: \"text\",\n isDisabled: \"default\",\n },\n});\n\nfunction CalendarHeading(props: {\n visibleMonths: number;\n locale?: string;\n prevButton: JSX.Element;\n nextButton: JSX.Element;\n}): JSX.Element {\n const state = useCalendarContext();\n const months = () =>\n Array.from({ length: props.visibleMonths }, (_, index) =>\n monthTitle(state.visibleRange().start.add({ months: index }), props.locale, state.timeZone),\n );\n\n return (\n // Mirror @react-spectrum/s2 CalendarHeader: one flex row per visible month,\n // laying out [prev button (first month only), title, next button (last month\n // only)]. When a single month is visible both buttons share its row. The\n // per-month title mirrors react-aria-components CalendarHeading, whose\n // HeadingContext marks it aria-hidden (the visible range is already named on\n // the application root + each grid) — so it stays out of the AX tree.\n <For each={months()}>\n {(title, index) => (\n <div class={calendarHeading}>\n <Show when={index() === 0}>{props.prevButton}</Show>\n <h2 aria-hidden=\"true\" class={calendarTitle}>\n {title}\n </h2>\n <Show when={index() === props.visibleMonths - 1}>{props.nextButton}</Show>\n </div>\n )}\n </For>\n );\n}\n\nfunction CalendarCellContent(props: { cell: CalendarCellRenderProps }): JSX.Element {\n const [innerElement, setInnerElement] = createSignal<HTMLDivElement | null>(null);\n\n return (\n <div class={calendarCellInnerFrame}>\n <div\n ref={setInnerElement}\n style={pressScale(innerElement, {})(props.cell)}\n class={calendarCellInner({\n isSelected: props.cell.isSelected,\n isDisabled: props.cell.isDisabled,\n isUnavailable: props.cell.isUnavailable,\n isPressed: props.cell.isPressed,\n isHovered: props.cell.isHovered,\n isFocusVisible: props.cell.isFocusVisible,\n isInvalid: props.cell.isInvalid,\n })}\n >\n <div class={calendarTodayDot({ isToday: props.cell.isToday })} role=\"presentation\" />\n <div>{props.cell.formattedDate}</div>\n <Show when={props.cell.isUnavailable}>\n <div class={calendarUnavailableSlash} role=\"presentation\" />\n </Show>\n </div>\n </div>\n );\n}\n\n/**\n * A calendar displays a grid of days and allows users to select a date.\n */\nexport function Calendar<T extends DateValue = CalendarDate>(props: CalendarProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(CalendarContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const providerLocale = useLocale();\n const [local, rest] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"showWeekNumbers\",\n \"aria-label\",\n \"firstDayOfWeek\",\n \"isInvalid\",\n \"validationState\",\n \"errorMessage\",\n \"visibleMonths\",\n \"locale\",\n \"slot\",\n \"ref\",\n ]);\n\n const size = () => normalizeCalendarSize(local.size);\n const sizeConfig = () => sizeStyles[size()];\n const visibleMonths = () => Math.max(1, Number(local.visibleMonths ?? 1));\n const locale = () => local.locale ?? providerLocale().locale;\n const validationState = () =>\n typeof local.validationState === \"function\" ? local.validationState() : local.validationState;\n const isInvalid = () => local.isInvalid || validationState() === \"invalid\";\n const errorMessageId = createUniqueId();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRef = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLDivElement> } | null)?.ref,\n props.ref,\n );\n const rootStyle = () => ({\n \"--cell-gap\": \"4px\",\n \"--cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--cell-responsive-size\": \"var(--cell-max-width)\",\n \"--s2-calendar-cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--s2-calendar-button-size\": `${sizeConfig().buttonSize}px`,\n \"--s2-calendar-visible-months\": visibleMonths(),\n width: \"fit-content\",\n \"max-width\": \"100%\",\n ...(mergedUnsafeStyle() ?? {}),\n });\n const monthOffsets = () => Array.from({ length: visibleMonths() }, (_, index) => index);\n return (\n <HeadlessCalendar\n {...rest}\n ref={(element: HTMLDivElement) => assignRef(element)}\n aria-label={local[\"aria-label\"]}\n aria-describedby={rest[\"aria-describedby\"]}\n errorMessage={local.errorMessage}\n errorMessageId={errorMessageId}\n firstDayOfWeek={normalizeFirstDayOfWeek(local.firstDayOfWeek)}\n validationState={isInvalid() ? \"invalid\" : validationState()}\n visibleMonths={visibleMonths()}\n locale={locale()}\n class={[\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n calendarRoot({ isMultiMonth: visibleMonths() > 1 }, mergedStyles()),\n ]\n .filter(Boolean)\n .join(\" \")}\n style={rootStyle()}\n >\n <header class={calendarHeader}>\n <CalendarHeading\n visibleMonths={visibleMonths()}\n locale={locale()}\n prevButton={\n <CalendarButton\n slot=\"previous\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronLeftIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n nextButton={\n <CalendarButton\n slot=\"next\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronRightIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n />\n </header>\n\n <div class={calendarMonths({ isMultiMonth: visibleMonths() > 1 })}>\n <For each={monthOffsets()}>\n {(offset) => (\n <CalendarGrid\n class={calendarGrid}\n style={{\n width: `${sizeConfig().cellMaxWidth * 7}px`,\n }}\n weekdayStyle=\"narrow\"\n headerCellClass={calendarHeaderCell}\n offset={offset === 0 ? undefined : { months: offset }}\n >\n {(date) => (\n <CalendarCell\n date={date}\n cellClass={calendarCellWrapper}\n cellStyle={() => cellBoxStyle(size())}\n style={() => cellBoxStyle(size())}\n class={({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n }) =>\n calendarCellOuter({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n })\n }\n >\n {(cell) => <CalendarCellContent cell={cell} />}\n </CalendarCell>\n )}\n </CalendarGrid>\n )}\n </For>\n </div>\n\n <Show when={isInvalid() && local.errorMessage}>\n <span\n id={errorMessageId}\n class={calendarHelpText({ isInvalid: true, isDisabled: Boolean(rest.isDisabled) })}\n >\n {local.errorMessage}\n </span>\n </Show>\n </HeadlessCalendar>\n );\n}\n\nexport { RangeCalendar, RangeCalendarContext } from \"./RangeCalendar\";\nexport type {\n RangeCalendarFirstDayOfWeek,\n RangeCalendarProps,\n RangeCalendarSize,\n RangeValue,\n} from \"./RangeCalendar\";\n\nexport type { CalendarDate, DateValue };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/calendar/index.tsx"],"sourcesContent":["// @ts-nocheck\nimport {\n type JSX,\n For,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Calendar as HeadlessCalendar,\n CalendarButton,\n CalendarGrid,\n CalendarCell,\n useCalendarContext,\n type CalendarCellRenderProps,\n type CalendarDate,\n type DateValue,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { useLocale } from \"@proyecto-viviana/solidaria\";\nimport { DateFormatter, type CalendarStateProps } from \"@proyecto-viviana/solid-stately\";\nimport type { StyleString } from \"../style\";\nimport {\n baseColor,\n focusRing,\n lightDark,\n setColorScheme,\n style,\n} from \"../style\" with { type: \"macro\" };\nimport ChevronLeftIcon from \"../icon/s2wf-icons/ChevronLeftIcon\";\nimport ChevronRightIcon from \"../icon/s2wf-icons/ChevronRightIcon\";\nimport { pressScale } from \"../pressScale\";\nimport { useProviderProps } from \"../provider\";\nimport type { UnsafeClassName } from \"../s2-internal/style-utils\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type CalendarSize = \"S\" | \"M\" | \"L\" | \"XL\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\ntype NormalizedCalendarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type CalendarFirstDayOfWeek = \"sun\" | \"mon\" | \"tue\" | \"wed\" | \"thu\" | \"fri\" | \"sat\";\n\nexport interface CalendarProps<T extends DateValue = DateValue> extends Omit<\n CalendarStateProps<T>,\n \"locale\" | \"firstDayOfWeek\" | \"validationState\"\n> {\n /** The size of the calendar. @default 'md' */\n size?: CalendarSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Additional CSS class name. */\n class?: string;\n /** Whether to show week numbers. */\n showWeekNumbers?: boolean;\n /** The locale to use for formatting. */\n locale?: string;\n /** The day that starts the week. */\n firstDayOfWeek?: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** Whether the current selection is invalid according to application logic. */\n isInvalid?: boolean;\n /** Validation state for backward-compatible Solid Stately callers. */\n validationState?: CalendarStateProps<T>[\"validationState\"];\n /** The error message to display when the calendar is invalid. */\n errorMessage?: JSX.Element;\n /** Custom aria label. */\n \"aria-label\"?: string;\n slot?: string | null;\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport const CalendarContext = createContext<SpectrumContextValue<CalendarProps<any>>>(null);\n\nconst sizeStyles: Record<NormalizedCalendarSize, { cellMaxWidth: number; buttonSize: number }> = {\n sm: {\n cellMaxWidth: 32,\n buttonSize: 24,\n },\n md: {\n cellMaxWidth: 32,\n buttonSize: 32,\n },\n lg: {\n cellMaxWidth: 40,\n buttonSize: 40,\n },\n xl: {\n cellMaxWidth: 44,\n buttonSize: 44,\n },\n};\n\nfunction cellBoxStyle(size: NormalizedCalendarSize): JSX.CSSProperties {\n const cellSize = `${sizeStyles[size].cellMaxWidth}px`;\n return {\n width: cellSize,\n height: cellSize,\n };\n}\n\nfunction normalizeCalendarSize(size: CalendarSize | undefined): NormalizedCalendarSize {\n switch (size) {\n case \"S\":\n case \"sm\":\n return \"sm\";\n case \"L\":\n case \"lg\":\n return \"lg\";\n case \"XL\":\n return \"xl\";\n case \"M\":\n case \"md\":\n default:\n return \"md\";\n }\n}\n\nfunction normalizeFirstDayOfWeek(\n firstDayOfWeek: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined,\n): 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined {\n switch (firstDayOfWeek) {\n case \"sun\":\n return 0;\n case \"mon\":\n return 1;\n case \"tue\":\n return 2;\n case \"wed\":\n return 3;\n case \"thu\":\n return 4;\n case \"fri\":\n return 5;\n case \"sat\":\n return 6;\n default:\n return firstDayOfWeek;\n }\n}\n\nfunction monthTitle(date: CalendarDate, locale: string | undefined, timeZone: string): string {\n const formattableMonth = date.calendar.getFormattableMonth?.(date) ?? date;\n return new DateFormatter(locale ?? \"en-US\", {\n month: \"long\",\n year: \"numeric\",\n calendar: date.calendar.identifier,\n }).format(formattableMonth.toDate(timeZone));\n}\n\nconst calendarRoot = style<{ isMultiMonth?: boolean }>({\n ...setColorScheme(),\n display: \"flex\",\n flexDirection: \"column\",\n gap: 24,\n disableTapHighlight: true,\n \"--cell-gap\": {\n type: \"paddingStart\",\n value: 4,\n },\n \"--cell-responsive-size\": \"--s2-calendar-cell-max-width\",\n width: \"fit\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar headerStyles.\nconst calendarHeader = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n columnGap: 24,\n});\n\n// Mirrors @react-spectrum/s2 Calendar headingStyles: one per visible month,\n// laying out [prev button?, title, next button?] with the title flex-growing.\nconst calendarHeading = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n margin: 0,\n flexGrow: 1,\n width: \"full\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar titleStyles.\nconst calendarTitle = style({\n font: \"title-lg\",\n textAlign: \"center\",\n flexGrow: 1,\n flexShrink: 0,\n marginY: 0,\n});\n\nconst calendarMonths = style<{ isMultiMonth?: boolean }>({\n display: \"flex\",\n flexDirection: \"row\",\n gap: {\n default: 0,\n isMultiMonth: 24,\n },\n alignItems: \"start\",\n width: \"[max-content]\",\n});\n\nconst calendarNavButton = style<{ buttonSize: number }>({\n ...focusRing(),\n font: \"ui\",\n fontWeight: \"medium\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"[var(--s2-calendar-button-size)]\",\n height: \"[var(--s2-calendar-button-size)]\",\n borderStyle: \"none\",\n borderRadius: \"full\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: baseColor(\"gray-100\"),\n isPressed: baseColor(\"gray-200\"),\n },\n // Gray the chevron when disabled, mirroring S2's disabled ActionButton. This\n // is a bare native <button>, so the disabled color keys off the `:disabled`\n // pseudo (the button carries the `disabled` attribute for both whole-calendar\n // and range-boundary disable) rather than a runtime render prop. The chevron\n // icon inherits it via `--iconPrimary: currentColor`.\n color: {\n default: baseColor(\"neutral\"),\n \":disabled\": \"disabled\",\n },\n cursor: \"default\",\n transition: \"default\",\n});\n\nconst calendarGrid = style({\n borderCollapse: \"collapse\",\n borderSpacing: 0,\n isolation: \"isolate\",\n});\n\nconst calendarHeaderCell = style({\n boxSizing: \"border-box\",\n font: \"title-sm\",\n cursor: \"default\",\n textAlign: \"center\",\n width: \"--cell-responsive-size\",\n paddingStart: {\n default: 4,\n \":first-child\": 0,\n },\n paddingEnd: {\n default: 4,\n \":last-child\": 0,\n },\n paddingTop: 0,\n paddingBottom: 12,\n});\n\nconst calendarCellWrapper = style({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n padding: 0,\n position: \"relative\",\n disableTapHighlight: true,\n width: \"--cell-responsive-size\",\n height: \"--cell-responsive-size\",\n});\n\nconst calendarCellOuter = style<{\n isDisabled?: boolean;\n isOutsideMonth?: boolean;\n isFirstChild?: boolean;\n isLastChild?: boolean;\n isFirstWeek?: boolean;\n isLastWeek?: boolean;\n}>({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n paddingStart: {\n default: 4,\n isFirstChild: 0,\n },\n paddingEnd: {\n default: 4,\n isLastChild: 0,\n },\n paddingTop: {\n default: 2,\n isFirstWeek: 0,\n },\n paddingBottom: {\n default: 2,\n isLastWeek: 0,\n },\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n display: {\n default: \"flex\",\n isOutsideMonth: \"none\",\n },\n alignItems: \"center\",\n justifyContent: \"center\",\n disableTapHighlight: true,\n});\n\nconst calendarCellInnerFrame = style({\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n});\n\nconst calendarCellInner = style<{\n isSelected?: boolean;\n isDisabled?: boolean;\n isPressed?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isUnavailable?: boolean;\n isInvalid?: boolean;\n}>({\n ...focusRing(),\n transition: {\n default: \"default\",\n forcedColors: \"none\",\n },\n outlineOffset: {\n default: -2,\n isSelected: 2,\n },\n position: \"relative\",\n font: \"body-sm\",\n cursor: \"default\",\n width: \"full\",\n height: \"full\",\n borderRadius: \"full\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n forcedColorAdjust: \"none\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: {\n default: \"gray-100\",\n isUnavailable: \"transparent\",\n },\n isPressed: \"gray-100\",\n isDisabled: \"transparent\",\n isSelected: {\n default: \"interactive-fill\",\n isHovered: lightDark(\"accent-1000\", \"accent-600\"),\n isPressed: lightDark(\"accent-1000\", \"accent-600\"),\n isFocusVisible: lightDark(\"accent-1000\", \"accent-600\"),\n isDisabled: \"transparent\",\n isInvalid: {\n default: lightDark(\"negative-900\", \"negative-700\"),\n isHovered: lightDark(\"negative-1000\", \"negative-600\"),\n isPressed: lightDark(\"negative-1000\", \"negative-600\"),\n isFocusVisible: lightDark(\"negative-1000\", \"negative-600\"),\n },\n },\n forcedColors: {\n default: \"transparent\",\n isHovered: \"Highlight\",\n isSelected: \"Highlight\",\n },\n },\n // Mirrors @react-spectrum/s2 Calendar cellInnerStyles color: unavailable dates\n // stay `neutral` (only the strikethrough slash marks them), so there is NO\n // isUnavailable branch here. The port previously invented `isUnavailable:\n // \"disabled\"`, graying the text and its currentColor slash.\n color: {\n default: \"neutral\",\n isSelected: \"white\",\n isDisabled: \"disabled\",\n forcedColors: {\n default: \"ButtonText\",\n isSelected: \"HighlightText\",\n isDisabled: \"GrayText\",\n },\n },\n});\n\nconst calendarUnavailableSlash = style({\n position: \"absolute\",\n top: \"[calc(50% - 1px)]\",\n left: \"[calc(25% - 1px)]\",\n right: \"[calc(25% - 1px)]\",\n height: 2,\n transform: \"rotate(-16deg)\",\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n});\n\nconst calendarTodayDot = style<{ isToday?: boolean }>({\n position: \"absolute\",\n bottom: \"12.5%\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n width: 4,\n height: 4,\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n display: {\n default: \"none\",\n isToday: \"block\",\n },\n});\n\nconst calendarNavIcon = style({\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n width: \"[1.4285714285714286em]\",\n height: \"[1.4285714285714286em]\",\n forcedColorAdjust: \"none\",\n});\n\n// Mirrors @react-spectrum/s2 Field helpTextStyles at size M (controlFont() → the\n// base `ui` font). The port previously invented `font: \"body-sm\"`, giving the\n// error text a taller line box than S2. `--field-gap` is undefined outside a\n// Field, so paddingTop resolves to 0 here — matching S2's standalone Calendar.\nconst calendarHelpText = style<{ isInvalid?: boolean; isDisabled?: boolean }>({\n display: \"flex\",\n alignItems: \"baseline\",\n gap: \"text-to-visual\",\n font: \"ui\",\n color: {\n default: \"neutral-subdued\",\n isInvalid: {\n default: \"negative\",\n forcedColors: \"Mark\",\n },\n isDisabled: {\n default: \"disabled\",\n forcedColors: \"GrayText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n contain: \"inline-size\",\n paddingTop: \"--field-gap\",\n cursor: {\n default: \"text\",\n isDisabled: \"default\",\n },\n});\n\nfunction CalendarHeading(props: {\n visibleMonths: number;\n locale?: string;\n prevButton: JSX.Element;\n nextButton: JSX.Element;\n}): JSX.Element {\n const state = useCalendarContext();\n const months = () =>\n Array.from({ length: props.visibleMonths }, (_, index) =>\n monthTitle(state.visibleRange().start.add({ months: index }), props.locale, state.timeZone),\n );\n\n return (\n // Mirror @react-spectrum/s2 CalendarHeader: one flex row per visible month,\n // laying out [prev button (first month only), title, next button (last month\n // only)]. When a single month is visible both buttons share its row. The\n // per-month title mirrors react-aria-components CalendarHeading, whose\n // HeadingContext marks it aria-hidden (the visible range is already named on\n // the application root + each grid) — so it stays out of the AX tree.\n <For each={months()}>\n {(title, index) => (\n <div class={calendarHeading}>\n <Show when={index() === 0}>{props.prevButton}</Show>\n <h2 aria-hidden=\"true\" class={calendarTitle}>\n {title}\n </h2>\n <Show when={index() === props.visibleMonths - 1}>{props.nextButton}</Show>\n </div>\n )}\n </For>\n );\n}\n\nfunction CalendarCellContent(props: { cell: CalendarCellRenderProps }): JSX.Element {\n const [innerElement, setInnerElement] = createSignal<HTMLDivElement | null>(null);\n\n return (\n <div class={calendarCellInnerFrame}>\n <div\n ref={setInnerElement}\n style={pressScale(innerElement, {})(props.cell)}\n class={calendarCellInner({\n isSelected: props.cell.isSelected,\n isDisabled: props.cell.isDisabled,\n isUnavailable: props.cell.isUnavailable,\n isPressed: props.cell.isPressed,\n isHovered: props.cell.isHovered,\n isFocusVisible: props.cell.isFocusVisible,\n isInvalid: props.cell.isInvalid,\n })}\n >\n <div class={calendarTodayDot({ isToday: props.cell.isToday })} role=\"presentation\" />\n <div>{props.cell.formattedDate}</div>\n <Show when={props.cell.isUnavailable}>\n <div class={calendarUnavailableSlash} role=\"presentation\" />\n </Show>\n </div>\n </div>\n );\n}\n\n/**\n * A calendar displays a grid of days and allows users to select a date.\n */\nexport function Calendar<T extends DateValue = CalendarDate>(props: CalendarProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(CalendarContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const providerLocale = useLocale();\n const [local, rest] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"showWeekNumbers\",\n \"aria-label\",\n \"firstDayOfWeek\",\n \"isInvalid\",\n \"validationState\",\n \"errorMessage\",\n \"visibleMonths\",\n \"locale\",\n \"slot\",\n \"ref\",\n ]);\n\n const size = () => normalizeCalendarSize(local.size);\n const sizeConfig = () => sizeStyles[size()];\n const visibleMonths = () => Math.max(1, Number(local.visibleMonths ?? 1));\n const locale = () => local.locale ?? providerLocale().locale;\n const validationState = () =>\n typeof local.validationState === \"function\" ? local.validationState() : local.validationState;\n const isInvalid = () => local.isInvalid || validationState() === \"invalid\";\n const errorMessageId = createUniqueId();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRef = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLDivElement> } | null)?.ref,\n props.ref,\n );\n const rootStyle = () => ({\n \"--cell-gap\": \"4px\",\n \"--cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--cell-responsive-size\": \"var(--cell-max-width)\",\n \"--s2-calendar-cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--s2-calendar-button-size\": `${sizeConfig().buttonSize}px`,\n \"--s2-calendar-visible-months\": visibleMonths(),\n width: \"fit-content\",\n \"max-width\": \"100%\",\n ...(mergedUnsafeStyle() ?? {}),\n });\n const monthOffsets = () => Array.from({ length: visibleMonths() }, (_, index) => index);\n return (\n <HeadlessCalendar\n {...rest}\n ref={(element: HTMLDivElement) => assignRef(element)}\n aria-label={local[\"aria-label\"]}\n aria-describedby={rest[\"aria-describedby\"]}\n errorMessage={local.errorMessage}\n errorMessageId={errorMessageId}\n firstDayOfWeek={normalizeFirstDayOfWeek(local.firstDayOfWeek)}\n validationState={isInvalid() ? \"invalid\" : validationState()}\n visibleMonths={visibleMonths()}\n locale={locale()}\n class={[\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n calendarRoot({ isMultiMonth: visibleMonths() > 1 }, mergedStyles()),\n ]\n .filter(Boolean)\n .join(\" \")}\n style={rootStyle()}\n >\n <header class={calendarHeader}>\n <CalendarHeading\n visibleMonths={visibleMonths()}\n locale={locale()}\n prevButton={\n <CalendarButton\n slot=\"previous\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronLeftIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n nextButton={\n <CalendarButton\n slot=\"next\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronRightIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n />\n </header>\n\n <div class={calendarMonths({ isMultiMonth: visibleMonths() > 1 })}>\n <For each={monthOffsets()}>\n {(offset) => (\n <CalendarGrid\n class={calendarGrid}\n style={{\n width: `${sizeConfig().cellMaxWidth * 7}px`,\n }}\n weekdayStyle=\"narrow\"\n headerCellClass={calendarHeaderCell}\n offset={offset === 0 ? undefined : { months: offset }}\n >\n {(date) => (\n <CalendarCell\n date={date}\n cellClass={calendarCellWrapper}\n cellStyle={() => cellBoxStyle(size())}\n style={() => cellBoxStyle(size())}\n class={({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n }) =>\n calendarCellOuter({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n })\n }\n >\n {(cell) => <CalendarCellContent cell={cell} />}\n </CalendarCell>\n )}\n </CalendarGrid>\n )}\n </For>\n </div>\n\n <Show when={isInvalid() && local.errorMessage}>\n <span\n id={errorMessageId}\n class={calendarHelpText({ isInvalid: true, isDisabled: Boolean(rest.isDisabled) })}\n >\n {local.errorMessage}\n </span>\n </Show>\n </HeadlessCalendar>\n );\n}\n\nexport { RangeCalendar, RangeCalendarContext } from \"./RangeCalendar\";\nexport type {\n RangeCalendarFirstDayOfWeek,\n RangeCalendarProps,\n RangeCalendarSize,\n RangeValue,\n} from \"./RangeCalendar\";\n\nexport type { CalendarDate, DateValue };\n"],"mappings":"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"}
|
package/dist/calendar/index.jsx
CHANGED
|
@@ -228,10 +228,10 @@ const calendarCellInner = function anonymous(props) {
|
|
|
228
228
|
else if (props.isHovered) rules += " gtq3xC151";
|
|
229
229
|
else rules += " g7xrik151";
|
|
230
230
|
else if (props.isDisabled) rules += " g9151";
|
|
231
|
-
else if (props.isFocusVisible) rules += "
|
|
232
|
-
else if (props.isPressed) rules += "
|
|
233
|
-
else if (props.isHovered) rules += "
|
|
234
|
-
else rules += "
|
|
231
|
+
else if (props.isFocusVisible) rules += " gKDgA3151";
|
|
232
|
+
else if (props.isPressed) rules += " gKDgA3151";
|
|
233
|
+
else if (props.isHovered) rules += " gKDgA3151";
|
|
234
|
+
else rules += " gnhAeB151";
|
|
235
235
|
else if (props.isDisabled) rules += " g9151";
|
|
236
236
|
else if (props.isPressed) rules += " gkDWoNd151";
|
|
237
237
|
else if (props.isHovered) if (props.isUnavailable) rules += " g9151";
|
|
@@ -282,7 +282,7 @@ const calendarHelpText = function anonymous(props) {
|
|
|
282
282
|
} else if (props.isInvalid) {
|
|
283
283
|
rules += " pYjUhNc151";
|
|
284
284
|
rules += " plQBRyrc151";
|
|
285
|
-
} else rules += "
|
|
285
|
+
} else rules += " pWQ7V3d151";
|
|
286
286
|
rules += " -_8sjo0b-t5ZbAob151";
|
|
287
287
|
rules += " _qb151";
|
|
288
288
|
rules += " TgOnRt151";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.jsx","names":[],"sources":["../../src/calendar/index.tsx"],"sourcesContent":["// @ts-nocheck\nimport {\n type JSX,\n For,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Calendar as HeadlessCalendar,\n CalendarButton,\n CalendarGrid,\n CalendarCell,\n useCalendarContext,\n type CalendarCellRenderProps,\n type CalendarDate,\n type DateValue,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { useLocale } from \"@proyecto-viviana/solidaria\";\nimport { DateFormatter, type CalendarStateProps } from \"@proyecto-viviana/solid-stately\";\nimport type { StyleString } from \"../style\";\nimport {\n baseColor,\n focusRing,\n lightDark,\n setColorScheme,\n style,\n} from \"../style\" with { type: \"macro\" };\nimport ChevronLeftIcon from \"../icon/s2wf-icons/ChevronLeftIcon\";\nimport ChevronRightIcon from \"../icon/s2wf-icons/ChevronRightIcon\";\nimport { pressScale } from \"../pressScale\";\nimport { useProviderProps } from \"../provider\";\nimport type { UnsafeClassName } from \"../s2-internal/style-utils\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type CalendarSize = \"S\" | \"M\" | \"L\" | \"XL\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\ntype NormalizedCalendarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type CalendarFirstDayOfWeek = \"sun\" | \"mon\" | \"tue\" | \"wed\" | \"thu\" | \"fri\" | \"sat\";\n\nexport interface CalendarProps<T extends DateValue = DateValue> extends Omit<\n CalendarStateProps<T>,\n \"locale\" | \"firstDayOfWeek\" | \"validationState\"\n> {\n /** The size of the calendar. @default 'md' */\n size?: CalendarSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Additional CSS class name. */\n class?: string;\n /** Whether to show week numbers. */\n showWeekNumbers?: boolean;\n /** The locale to use for formatting. */\n locale?: string;\n /** The day that starts the week. */\n firstDayOfWeek?: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** Whether the current selection is invalid according to application logic. */\n isInvalid?: boolean;\n /** Validation state for backward-compatible Solid Stately callers. */\n validationState?: CalendarStateProps<T>[\"validationState\"];\n /** The error message to display when the calendar is invalid. */\n errorMessage?: JSX.Element;\n /** Custom aria label. */\n \"aria-label\"?: string;\n slot?: string | null;\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport const CalendarContext = createContext<SpectrumContextValue<CalendarProps<any>>>(null);\n\nconst sizeStyles: Record<NormalizedCalendarSize, { cellMaxWidth: number; buttonSize: number }> = {\n sm: {\n cellMaxWidth: 32,\n buttonSize: 24,\n },\n md: {\n cellMaxWidth: 32,\n buttonSize: 32,\n },\n lg: {\n cellMaxWidth: 40,\n buttonSize: 40,\n },\n xl: {\n cellMaxWidth: 44,\n buttonSize: 44,\n },\n};\n\nfunction cellBoxStyle(size: NormalizedCalendarSize): JSX.CSSProperties {\n const cellSize = `${sizeStyles[size].cellMaxWidth}px`;\n return {\n width: cellSize,\n height: cellSize,\n };\n}\n\nfunction normalizeCalendarSize(size: CalendarSize | undefined): NormalizedCalendarSize {\n switch (size) {\n case \"S\":\n case \"sm\":\n return \"sm\";\n case \"L\":\n case \"lg\":\n return \"lg\";\n case \"XL\":\n return \"xl\";\n case \"M\":\n case \"md\":\n default:\n return \"md\";\n }\n}\n\nfunction normalizeFirstDayOfWeek(\n firstDayOfWeek: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined,\n): 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined {\n switch (firstDayOfWeek) {\n case \"sun\":\n return 0;\n case \"mon\":\n return 1;\n case \"tue\":\n return 2;\n case \"wed\":\n return 3;\n case \"thu\":\n return 4;\n case \"fri\":\n return 5;\n case \"sat\":\n return 6;\n default:\n return firstDayOfWeek;\n }\n}\n\nfunction monthTitle(date: CalendarDate, locale: string | undefined, timeZone: string): string {\n const formattableMonth = date.calendar.getFormattableMonth?.(date) ?? date;\n return new DateFormatter(locale ?? \"en-US\", {\n month: \"long\",\n year: \"numeric\",\n calendar: date.calendar.identifier,\n }).format(formattableMonth.toDate(timeZone));\n}\n\nconst calendarRoot = style<{ isMultiMonth?: boolean }>({\n ...setColorScheme(),\n display: \"flex\",\n flexDirection: \"column\",\n gap: 24,\n disableTapHighlight: true,\n \"--cell-gap\": {\n type: \"paddingStart\",\n value: 4,\n },\n \"--cell-responsive-size\": \"--s2-calendar-cell-max-width\",\n width: \"fit\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar headerStyles.\nconst calendarHeader = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n columnGap: 24,\n});\n\n// Mirrors @react-spectrum/s2 Calendar headingStyles: one per visible month,\n// laying out [prev button?, title, next button?] with the title flex-growing.\nconst calendarHeading = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n margin: 0,\n flexGrow: 1,\n width: \"full\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar titleStyles.\nconst calendarTitle = style({\n font: \"title-lg\",\n textAlign: \"center\",\n flexGrow: 1,\n flexShrink: 0,\n marginY: 0,\n});\n\nconst calendarMonths = style<{ isMultiMonth?: boolean }>({\n display: \"flex\",\n flexDirection: \"row\",\n gap: {\n default: 0,\n isMultiMonth: 24,\n },\n alignItems: \"start\",\n width: \"[max-content]\",\n});\n\nconst calendarNavButton = style<{ buttonSize: number }>({\n ...focusRing(),\n font: \"ui\",\n fontWeight: \"medium\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"[var(--s2-calendar-button-size)]\",\n height: \"[var(--s2-calendar-button-size)]\",\n borderStyle: \"none\",\n borderRadius: \"full\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: baseColor(\"gray-100\"),\n isPressed: baseColor(\"gray-200\"),\n },\n // Gray the chevron when disabled, mirroring S2's disabled ActionButton. This\n // is a bare native <button>, so the disabled color keys off the `:disabled`\n // pseudo (the button carries the `disabled` attribute for both whole-calendar\n // and range-boundary disable) rather than a runtime render prop. The chevron\n // icon inherits it via `--iconPrimary: currentColor`.\n color: {\n default: baseColor(\"neutral\"),\n \":disabled\": \"disabled\",\n },\n cursor: \"default\",\n transition: \"default\",\n});\n\nconst calendarGrid = style({\n borderCollapse: \"collapse\",\n borderSpacing: 0,\n isolation: \"isolate\",\n});\n\nconst calendarHeaderCell = style({\n boxSizing: \"border-box\",\n font: \"title-sm\",\n cursor: \"default\",\n textAlign: \"center\",\n width: \"--cell-responsive-size\",\n paddingStart: {\n default: 4,\n \":first-child\": 0,\n },\n paddingEnd: {\n default: 4,\n \":last-child\": 0,\n },\n paddingTop: 0,\n paddingBottom: 12,\n});\n\nconst calendarCellWrapper = style({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n padding: 0,\n position: \"relative\",\n disableTapHighlight: true,\n width: \"--cell-responsive-size\",\n height: \"--cell-responsive-size\",\n});\n\nconst calendarCellOuter = style<{\n isDisabled?: boolean;\n isOutsideMonth?: boolean;\n isFirstChild?: boolean;\n isLastChild?: boolean;\n isFirstWeek?: boolean;\n isLastWeek?: boolean;\n}>({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n paddingStart: {\n default: 4,\n isFirstChild: 0,\n },\n paddingEnd: {\n default: 4,\n isLastChild: 0,\n },\n paddingTop: {\n default: 2,\n isFirstWeek: 0,\n },\n paddingBottom: {\n default: 2,\n isLastWeek: 0,\n },\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n display: {\n default: \"flex\",\n isOutsideMonth: \"none\",\n },\n alignItems: \"center\",\n justifyContent: \"center\",\n disableTapHighlight: true,\n});\n\nconst calendarCellInnerFrame = style({\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n});\n\nconst calendarCellInner = style<{\n isSelected?: boolean;\n isDisabled?: boolean;\n isPressed?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isUnavailable?: boolean;\n isInvalid?: boolean;\n}>({\n ...focusRing(),\n transition: {\n default: \"default\",\n forcedColors: \"none\",\n },\n outlineOffset: {\n default: -2,\n isSelected: 2,\n },\n position: \"relative\",\n font: \"body-sm\",\n cursor: \"default\",\n width: \"full\",\n height: \"full\",\n borderRadius: \"full\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n forcedColorAdjust: \"none\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: {\n default: \"gray-100\",\n isUnavailable: \"transparent\",\n },\n isPressed: \"gray-100\",\n isDisabled: \"transparent\",\n isSelected: {\n default: lightDark(\"accent-900\", \"accent-700\"),\n isHovered: lightDark(\"accent-1000\", \"accent-800\"),\n isPressed: lightDark(\"accent-1000\", \"accent-800\"),\n isFocusVisible: lightDark(\"accent-1000\", \"accent-800\"),\n isDisabled: \"transparent\",\n isInvalid: {\n default: lightDark(\"negative-900\", \"negative-700\"),\n isHovered: lightDark(\"negative-1000\", \"negative-600\"),\n isPressed: lightDark(\"negative-1000\", \"negative-600\"),\n isFocusVisible: lightDark(\"negative-1000\", \"negative-600\"),\n },\n },\n forcedColors: {\n default: \"transparent\",\n isHovered: \"Highlight\",\n isSelected: \"Highlight\",\n },\n },\n // Mirrors @react-spectrum/s2 Calendar cellInnerStyles color: unavailable dates\n // stay `neutral` (only the strikethrough slash marks them), so there is NO\n // isUnavailable branch here. The port previously invented `isUnavailable:\n // \"disabled\"`, graying the text and its currentColor slash.\n color: {\n default: \"neutral\",\n isSelected: \"white\",\n isDisabled: \"disabled\",\n forcedColors: {\n default: \"ButtonText\",\n isSelected: \"HighlightText\",\n isDisabled: \"GrayText\",\n },\n },\n});\n\nconst calendarUnavailableSlash = style({\n position: \"absolute\",\n top: \"[calc(50% - 1px)]\",\n left: \"[calc(25% - 1px)]\",\n right: \"[calc(25% - 1px)]\",\n height: 2,\n transform: \"rotate(-16deg)\",\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n});\n\nconst calendarTodayDot = style<{ isToday?: boolean }>({\n position: \"absolute\",\n bottom: \"12.5%\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n width: 4,\n height: 4,\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n display: {\n default: \"none\",\n isToday: \"block\",\n },\n});\n\nconst calendarNavIcon = style({\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n width: \"[1.4285714285714286em]\",\n height: \"[1.4285714285714286em]\",\n forcedColorAdjust: \"none\",\n});\n\n// Mirrors @react-spectrum/s2 Field helpTextStyles at size M (controlFont() → the\n// base `ui` font). The port previously invented `font: \"body-sm\"`, giving the\n// error text a taller line box than S2. `--field-gap` is undefined outside a\n// Field, so paddingTop resolves to 0 here — matching S2's standalone Calendar.\nconst calendarHelpText = style<{ isInvalid?: boolean; isDisabled?: boolean }>({\n display: \"flex\",\n alignItems: \"baseline\",\n gap: \"text-to-visual\",\n font: \"ui\",\n color: {\n default: \"neutral-subdued\",\n isInvalid: {\n default: \"negative\",\n forcedColors: \"Mark\",\n },\n isDisabled: {\n default: \"disabled\",\n forcedColors: \"GrayText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n contain: \"inline-size\",\n paddingTop: \"--field-gap\",\n cursor: {\n default: \"text\",\n isDisabled: \"default\",\n },\n});\n\nfunction CalendarHeading(props: {\n visibleMonths: number;\n locale?: string;\n prevButton: JSX.Element;\n nextButton: JSX.Element;\n}): JSX.Element {\n const state = useCalendarContext();\n const months = () =>\n Array.from({ length: props.visibleMonths }, (_, index) =>\n monthTitle(state.visibleRange().start.add({ months: index }), props.locale, state.timeZone),\n );\n\n return (\n // Mirror @react-spectrum/s2 CalendarHeader: one flex row per visible month,\n // laying out [prev button (first month only), title, next button (last month\n // only)]. When a single month is visible both buttons share its row. The\n // per-month title mirrors react-aria-components CalendarHeading, whose\n // HeadingContext marks it aria-hidden (the visible range is already named on\n // the application root + each grid) — so it stays out of the AX tree.\n <For each={months()}>\n {(title, index) => (\n <div class={calendarHeading}>\n <Show when={index() === 0}>{props.prevButton}</Show>\n <h2 aria-hidden=\"true\" class={calendarTitle}>\n {title}\n </h2>\n <Show when={index() === props.visibleMonths - 1}>{props.nextButton}</Show>\n </div>\n )}\n </For>\n );\n}\n\nfunction CalendarCellContent(props: { cell: CalendarCellRenderProps }): JSX.Element {\n const [innerElement, setInnerElement] = createSignal<HTMLDivElement | null>(null);\n\n return (\n <div class={calendarCellInnerFrame}>\n <div\n ref={setInnerElement}\n style={pressScale(innerElement, {})(props.cell)}\n class={calendarCellInner({\n isSelected: props.cell.isSelected,\n isDisabled: props.cell.isDisabled,\n isUnavailable: props.cell.isUnavailable,\n isPressed: props.cell.isPressed,\n isHovered: props.cell.isHovered,\n isFocusVisible: props.cell.isFocusVisible,\n isInvalid: props.cell.isInvalid,\n })}\n >\n <div class={calendarTodayDot({ isToday: props.cell.isToday })} role=\"presentation\" />\n <div>{props.cell.formattedDate}</div>\n <Show when={props.cell.isUnavailable}>\n <div class={calendarUnavailableSlash} role=\"presentation\" />\n </Show>\n </div>\n </div>\n );\n}\n\n/**\n * A calendar displays a grid of days and allows users to select a date.\n */\nexport function Calendar<T extends DateValue = CalendarDate>(props: CalendarProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(CalendarContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const providerLocale = useLocale();\n const [local, rest] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"showWeekNumbers\",\n \"aria-label\",\n \"firstDayOfWeek\",\n \"isInvalid\",\n \"validationState\",\n \"errorMessage\",\n \"visibleMonths\",\n \"locale\",\n \"slot\",\n \"ref\",\n ]);\n\n const size = () => normalizeCalendarSize(local.size);\n const sizeConfig = () => sizeStyles[size()];\n const visibleMonths = () => Math.max(1, Number(local.visibleMonths ?? 1));\n const locale = () => local.locale ?? providerLocale().locale;\n const validationState = () =>\n typeof local.validationState === \"function\" ? local.validationState() : local.validationState;\n const isInvalid = () => local.isInvalid || validationState() === \"invalid\";\n const errorMessageId = createUniqueId();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRef = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLDivElement> } | null)?.ref,\n props.ref,\n );\n const rootStyle = () => ({\n \"--cell-gap\": \"4px\",\n \"--cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--cell-responsive-size\": \"var(--cell-max-width)\",\n \"--s2-calendar-cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--s2-calendar-button-size\": `${sizeConfig().buttonSize}px`,\n \"--s2-calendar-visible-months\": visibleMonths(),\n width: \"fit-content\",\n \"max-width\": \"100%\",\n ...(mergedUnsafeStyle() ?? {}),\n });\n const monthOffsets = () => Array.from({ length: visibleMonths() }, (_, index) => index);\n return (\n <HeadlessCalendar\n {...rest}\n ref={(element: HTMLDivElement) => assignRef(element)}\n aria-label={local[\"aria-label\"]}\n aria-describedby={rest[\"aria-describedby\"]}\n errorMessage={local.errorMessage}\n errorMessageId={errorMessageId}\n firstDayOfWeek={normalizeFirstDayOfWeek(local.firstDayOfWeek)}\n validationState={isInvalid() ? \"invalid\" : validationState()}\n visibleMonths={visibleMonths()}\n locale={locale()}\n class={[\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n calendarRoot({ isMultiMonth: visibleMonths() > 1 }, mergedStyles()),\n ]\n .filter(Boolean)\n .join(\" \")}\n style={rootStyle()}\n >\n <header class={calendarHeader}>\n <CalendarHeading\n visibleMonths={visibleMonths()}\n locale={locale()}\n prevButton={\n <CalendarButton\n slot=\"previous\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronLeftIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n nextButton={\n <CalendarButton\n slot=\"next\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronRightIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n />\n </header>\n\n <div class={calendarMonths({ isMultiMonth: visibleMonths() > 1 })}>\n <For each={monthOffsets()}>\n {(offset) => (\n <CalendarGrid\n class={calendarGrid}\n style={{\n width: `${sizeConfig().cellMaxWidth * 7}px`,\n }}\n weekdayStyle=\"narrow\"\n headerCellClass={calendarHeaderCell}\n offset={offset === 0 ? undefined : { months: offset }}\n >\n {(date) => (\n <CalendarCell\n date={date}\n cellClass={calendarCellWrapper}\n cellStyle={() => cellBoxStyle(size())}\n style={() => cellBoxStyle(size())}\n class={({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n }) =>\n calendarCellOuter({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n })\n }\n >\n {(cell) => <CalendarCellContent cell={cell} />}\n </CalendarCell>\n )}\n </CalendarGrid>\n )}\n </For>\n </div>\n\n <Show when={isInvalid() && local.errorMessage}>\n <span\n id={errorMessageId}\n class={calendarHelpText({ isInvalid: true, isDisabled: Boolean(rest.isDisabled) })}\n >\n {local.errorMessage}\n </span>\n </Show>\n </HeadlessCalendar>\n );\n}\n\nexport { RangeCalendar, RangeCalendarContext } from \"./RangeCalendar\";\nexport type {\n RangeCalendarFirstDayOfWeek,\n RangeCalendarProps,\n RangeCalendarSize,\n RangeValue,\n} from \"./RangeCalendar\";\n\nexport type { CalendarDate, DateValue };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.jsx","names":[],"sources":["../../src/calendar/index.tsx"],"sourcesContent":["// @ts-nocheck\nimport {\n type JSX,\n For,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Calendar as HeadlessCalendar,\n CalendarButton,\n CalendarGrid,\n CalendarCell,\n useCalendarContext,\n type CalendarCellRenderProps,\n type CalendarDate,\n type DateValue,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { useLocale } from \"@proyecto-viviana/solidaria\";\nimport { DateFormatter, type CalendarStateProps } from \"@proyecto-viviana/solid-stately\";\nimport type { StyleString } from \"../style\";\nimport {\n baseColor,\n focusRing,\n lightDark,\n setColorScheme,\n style,\n} from \"../style\" with { type: \"macro\" };\nimport ChevronLeftIcon from \"../icon/s2wf-icons/ChevronLeftIcon\";\nimport ChevronRightIcon from \"../icon/s2wf-icons/ChevronRightIcon\";\nimport { pressScale } from \"../pressScale\";\nimport { useProviderProps } from \"../provider\";\nimport type { UnsafeClassName } from \"../s2-internal/style-utils\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type CalendarSize = \"S\" | \"M\" | \"L\" | \"XL\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\ntype NormalizedCalendarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type CalendarFirstDayOfWeek = \"sun\" | \"mon\" | \"tue\" | \"wed\" | \"thu\" | \"fri\" | \"sat\";\n\nexport interface CalendarProps<T extends DateValue = DateValue> extends Omit<\n CalendarStateProps<T>,\n \"locale\" | \"firstDayOfWeek\" | \"validationState\"\n> {\n /** The size of the calendar. @default 'md' */\n size?: CalendarSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Additional CSS class name. */\n class?: string;\n /** Whether to show week numbers. */\n showWeekNumbers?: boolean;\n /** The locale to use for formatting. */\n locale?: string;\n /** The day that starts the week. */\n firstDayOfWeek?: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** Whether the current selection is invalid according to application logic. */\n isInvalid?: boolean;\n /** Validation state for backward-compatible Solid Stately callers. */\n validationState?: CalendarStateProps<T>[\"validationState\"];\n /** The error message to display when the calendar is invalid. */\n errorMessage?: JSX.Element;\n /** Custom aria label. */\n \"aria-label\"?: string;\n slot?: string | null;\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport const CalendarContext = createContext<SpectrumContextValue<CalendarProps<any>>>(null);\n\nconst sizeStyles: Record<NormalizedCalendarSize, { cellMaxWidth: number; buttonSize: number }> = {\n sm: {\n cellMaxWidth: 32,\n buttonSize: 24,\n },\n md: {\n cellMaxWidth: 32,\n buttonSize: 32,\n },\n lg: {\n cellMaxWidth: 40,\n buttonSize: 40,\n },\n xl: {\n cellMaxWidth: 44,\n buttonSize: 44,\n },\n};\n\nfunction cellBoxStyle(size: NormalizedCalendarSize): JSX.CSSProperties {\n const cellSize = `${sizeStyles[size].cellMaxWidth}px`;\n return {\n width: cellSize,\n height: cellSize,\n };\n}\n\nfunction normalizeCalendarSize(size: CalendarSize | undefined): NormalizedCalendarSize {\n switch (size) {\n case \"S\":\n case \"sm\":\n return \"sm\";\n case \"L\":\n case \"lg\":\n return \"lg\";\n case \"XL\":\n return \"xl\";\n case \"M\":\n case \"md\":\n default:\n return \"md\";\n }\n}\n\nfunction normalizeFirstDayOfWeek(\n firstDayOfWeek: CalendarFirstDayOfWeek | 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined,\n): 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined {\n switch (firstDayOfWeek) {\n case \"sun\":\n return 0;\n case \"mon\":\n return 1;\n case \"tue\":\n return 2;\n case \"wed\":\n return 3;\n case \"thu\":\n return 4;\n case \"fri\":\n return 5;\n case \"sat\":\n return 6;\n default:\n return firstDayOfWeek;\n }\n}\n\nfunction monthTitle(date: CalendarDate, locale: string | undefined, timeZone: string): string {\n const formattableMonth = date.calendar.getFormattableMonth?.(date) ?? date;\n return new DateFormatter(locale ?? \"en-US\", {\n month: \"long\",\n year: \"numeric\",\n calendar: date.calendar.identifier,\n }).format(formattableMonth.toDate(timeZone));\n}\n\nconst calendarRoot = style<{ isMultiMonth?: boolean }>({\n ...setColorScheme(),\n display: \"flex\",\n flexDirection: \"column\",\n gap: 24,\n disableTapHighlight: true,\n \"--cell-gap\": {\n type: \"paddingStart\",\n value: 4,\n },\n \"--cell-responsive-size\": \"--s2-calendar-cell-max-width\",\n width: \"fit\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar headerStyles.\nconst calendarHeader = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n columnGap: 24,\n});\n\n// Mirrors @react-spectrum/s2 Calendar headingStyles: one per visible month,\n// laying out [prev button?, title, next button?] with the title flex-growing.\nconst calendarHeading = style({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n margin: 0,\n flexGrow: 1,\n width: \"full\",\n});\n\n// Mirrors @react-spectrum/s2 Calendar titleStyles.\nconst calendarTitle = style({\n font: \"title-lg\",\n textAlign: \"center\",\n flexGrow: 1,\n flexShrink: 0,\n marginY: 0,\n});\n\nconst calendarMonths = style<{ isMultiMonth?: boolean }>({\n display: \"flex\",\n flexDirection: \"row\",\n gap: {\n default: 0,\n isMultiMonth: 24,\n },\n alignItems: \"start\",\n width: \"[max-content]\",\n});\n\nconst calendarNavButton = style<{ buttonSize: number }>({\n ...focusRing(),\n font: \"ui\",\n fontWeight: \"medium\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"[var(--s2-calendar-button-size)]\",\n height: \"[var(--s2-calendar-button-size)]\",\n borderStyle: \"none\",\n borderRadius: \"full\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: baseColor(\"gray-100\"),\n isPressed: baseColor(\"gray-200\"),\n },\n // Gray the chevron when disabled, mirroring S2's disabled ActionButton. This\n // is a bare native <button>, so the disabled color keys off the `:disabled`\n // pseudo (the button carries the `disabled` attribute for both whole-calendar\n // and range-boundary disable) rather than a runtime render prop. The chevron\n // icon inherits it via `--iconPrimary: currentColor`.\n color: {\n default: baseColor(\"neutral\"),\n \":disabled\": \"disabled\",\n },\n cursor: \"default\",\n transition: \"default\",\n});\n\nconst calendarGrid = style({\n borderCollapse: \"collapse\",\n borderSpacing: 0,\n isolation: \"isolate\",\n});\n\nconst calendarHeaderCell = style({\n boxSizing: \"border-box\",\n font: \"title-sm\",\n cursor: \"default\",\n textAlign: \"center\",\n width: \"--cell-responsive-size\",\n paddingStart: {\n default: 4,\n \":first-child\": 0,\n },\n paddingEnd: {\n default: 4,\n \":last-child\": 0,\n },\n paddingTop: 0,\n paddingBottom: 12,\n});\n\nconst calendarCellWrapper = style({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n padding: 0,\n position: \"relative\",\n disableTapHighlight: true,\n width: \"--cell-responsive-size\",\n height: \"--cell-responsive-size\",\n});\n\nconst calendarCellOuter = style<{\n isDisabled?: boolean;\n isOutsideMonth?: boolean;\n isFirstChild?: boolean;\n isLastChild?: boolean;\n isFirstWeek?: boolean;\n isLastWeek?: boolean;\n}>({\n outlineStyle: \"none\",\n boxSizing: \"border-box\",\n paddingStart: {\n default: 4,\n isFirstChild: 0,\n },\n paddingEnd: {\n default: 4,\n isLastChild: 0,\n },\n paddingTop: {\n default: 2,\n isFirstWeek: 0,\n },\n paddingBottom: {\n default: 2,\n isLastWeek: 0,\n },\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n display: {\n default: \"flex\",\n isOutsideMonth: \"none\",\n },\n alignItems: \"center\",\n justifyContent: \"center\",\n disableTapHighlight: true,\n});\n\nconst calendarCellInnerFrame = style({\n position: \"relative\",\n width: \"full\",\n height: \"full\",\n});\n\nconst calendarCellInner = style<{\n isSelected?: boolean;\n isDisabled?: boolean;\n isPressed?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isUnavailable?: boolean;\n isInvalid?: boolean;\n}>({\n ...focusRing(),\n transition: {\n default: \"default\",\n forcedColors: \"none\",\n },\n outlineOffset: {\n default: -2,\n isSelected: 2,\n },\n position: \"relative\",\n font: \"body-sm\",\n cursor: \"default\",\n width: \"full\",\n height: \"full\",\n borderRadius: \"full\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n forcedColorAdjust: \"none\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: {\n default: \"gray-100\",\n isUnavailable: \"transparent\",\n },\n isPressed: \"gray-100\",\n isDisabled: \"transparent\",\n isSelected: {\n default: \"interactive-fill\",\n isHovered: lightDark(\"accent-1000\", \"accent-600\"),\n isPressed: lightDark(\"accent-1000\", \"accent-600\"),\n isFocusVisible: lightDark(\"accent-1000\", \"accent-600\"),\n isDisabled: \"transparent\",\n isInvalid: {\n default: lightDark(\"negative-900\", \"negative-700\"),\n isHovered: lightDark(\"negative-1000\", \"negative-600\"),\n isPressed: lightDark(\"negative-1000\", \"negative-600\"),\n isFocusVisible: lightDark(\"negative-1000\", \"negative-600\"),\n },\n },\n forcedColors: {\n default: \"transparent\",\n isHovered: \"Highlight\",\n isSelected: \"Highlight\",\n },\n },\n // Mirrors @react-spectrum/s2 Calendar cellInnerStyles color: unavailable dates\n // stay `neutral` (only the strikethrough slash marks them), so there is NO\n // isUnavailable branch here. The port previously invented `isUnavailable:\n // \"disabled\"`, graying the text and its currentColor slash.\n color: {\n default: \"neutral\",\n isSelected: \"white\",\n isDisabled: \"disabled\",\n forcedColors: {\n default: \"ButtonText\",\n isSelected: \"HighlightText\",\n isDisabled: \"GrayText\",\n },\n },\n});\n\nconst calendarUnavailableSlash = style({\n position: \"absolute\",\n top: \"[calc(50% - 1px)]\",\n left: \"[calc(25% - 1px)]\",\n right: \"[calc(25% - 1px)]\",\n height: 2,\n transform: \"rotate(-16deg)\",\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n});\n\nconst calendarTodayDot = style<{ isToday?: boolean }>({\n position: \"absolute\",\n bottom: \"12.5%\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n width: 4,\n height: 4,\n borderRadius: \"full\",\n backgroundColor: \"[currentColor]\",\n display: {\n default: \"none\",\n isToday: \"block\",\n },\n});\n\nconst calendarNavIcon = style({\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n width: \"[1.4285714285714286em]\",\n height: \"[1.4285714285714286em]\",\n forcedColorAdjust: \"none\",\n});\n\n// Mirrors @react-spectrum/s2 Field helpTextStyles at size M (controlFont() → the\n// base `ui` font). The port previously invented `font: \"body-sm\"`, giving the\n// error text a taller line box than S2. `--field-gap` is undefined outside a\n// Field, so paddingTop resolves to 0 here — matching S2's standalone Calendar.\nconst calendarHelpText = style<{ isInvalid?: boolean; isDisabled?: boolean }>({\n display: \"flex\",\n alignItems: \"baseline\",\n gap: \"text-to-visual\",\n font: \"ui\",\n color: {\n default: \"neutral-subdued\",\n isInvalid: {\n default: \"negative\",\n forcedColors: \"Mark\",\n },\n isDisabled: {\n default: \"disabled\",\n forcedColors: \"GrayText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n contain: \"inline-size\",\n paddingTop: \"--field-gap\",\n cursor: {\n default: \"text\",\n isDisabled: \"default\",\n },\n});\n\nfunction CalendarHeading(props: {\n visibleMonths: number;\n locale?: string;\n prevButton: JSX.Element;\n nextButton: JSX.Element;\n}): JSX.Element {\n const state = useCalendarContext();\n const months = () =>\n Array.from({ length: props.visibleMonths }, (_, index) =>\n monthTitle(state.visibleRange().start.add({ months: index }), props.locale, state.timeZone),\n );\n\n return (\n // Mirror @react-spectrum/s2 CalendarHeader: one flex row per visible month,\n // laying out [prev button (first month only), title, next button (last month\n // only)]. When a single month is visible both buttons share its row. The\n // per-month title mirrors react-aria-components CalendarHeading, whose\n // HeadingContext marks it aria-hidden (the visible range is already named on\n // the application root + each grid) — so it stays out of the AX tree.\n <For each={months()}>\n {(title, index) => (\n <div class={calendarHeading}>\n <Show when={index() === 0}>{props.prevButton}</Show>\n <h2 aria-hidden=\"true\" class={calendarTitle}>\n {title}\n </h2>\n <Show when={index() === props.visibleMonths - 1}>{props.nextButton}</Show>\n </div>\n )}\n </For>\n );\n}\n\nfunction CalendarCellContent(props: { cell: CalendarCellRenderProps }): JSX.Element {\n const [innerElement, setInnerElement] = createSignal<HTMLDivElement | null>(null);\n\n return (\n <div class={calendarCellInnerFrame}>\n <div\n ref={setInnerElement}\n style={pressScale(innerElement, {})(props.cell)}\n class={calendarCellInner({\n isSelected: props.cell.isSelected,\n isDisabled: props.cell.isDisabled,\n isUnavailable: props.cell.isUnavailable,\n isPressed: props.cell.isPressed,\n isHovered: props.cell.isHovered,\n isFocusVisible: props.cell.isFocusVisible,\n isInvalid: props.cell.isInvalid,\n })}\n >\n <div class={calendarTodayDot({ isToday: props.cell.isToday })} role=\"presentation\" />\n <div>{props.cell.formattedDate}</div>\n <Show when={props.cell.isUnavailable}>\n <div class={calendarUnavailableSlash} role=\"presentation\" />\n </Show>\n </div>\n </div>\n );\n}\n\n/**\n * A calendar displays a grid of days and allows users to select a date.\n */\nexport function Calendar<T extends DateValue = CalendarDate>(props: CalendarProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(CalendarContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const providerLocale = useLocale();\n const [local, rest] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"showWeekNumbers\",\n \"aria-label\",\n \"firstDayOfWeek\",\n \"isInvalid\",\n \"validationState\",\n \"errorMessage\",\n \"visibleMonths\",\n \"locale\",\n \"slot\",\n \"ref\",\n ]);\n\n const size = () => normalizeCalendarSize(local.size);\n const sizeConfig = () => sizeStyles[size()];\n const visibleMonths = () => Math.max(1, Number(local.visibleMonths ?? 1));\n const locale = () => local.locale ?? providerLocale().locale;\n const validationState = () =>\n typeof local.validationState === \"function\" ? local.validationState() : local.validationState;\n const isInvalid = () => local.isInvalid || validationState() === \"invalid\";\n const errorMessageId = createUniqueId();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRef = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLDivElement> } | null)?.ref,\n props.ref,\n );\n const rootStyle = () => ({\n \"--cell-gap\": \"4px\",\n \"--cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--cell-responsive-size\": \"var(--cell-max-width)\",\n \"--s2-calendar-cell-max-width\": `${sizeConfig().cellMaxWidth}px`,\n \"--s2-calendar-button-size\": `${sizeConfig().buttonSize}px`,\n \"--s2-calendar-visible-months\": visibleMonths(),\n width: \"fit-content\",\n \"max-width\": \"100%\",\n ...(mergedUnsafeStyle() ?? {}),\n });\n const monthOffsets = () => Array.from({ length: visibleMonths() }, (_, index) => index);\n return (\n <HeadlessCalendar\n {...rest}\n ref={(element: HTMLDivElement) => assignRef(element)}\n aria-label={local[\"aria-label\"]}\n aria-describedby={rest[\"aria-describedby\"]}\n errorMessage={local.errorMessage}\n errorMessageId={errorMessageId}\n firstDayOfWeek={normalizeFirstDayOfWeek(local.firstDayOfWeek)}\n validationState={isInvalid() ? \"invalid\" : validationState()}\n visibleMonths={visibleMonths()}\n locale={locale()}\n class={[\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n calendarRoot({ isMultiMonth: visibleMonths() > 1 }, mergedStyles()),\n ]\n .filter(Boolean)\n .join(\" \")}\n style={rootStyle()}\n >\n <header class={calendarHeader}>\n <CalendarHeading\n visibleMonths={visibleMonths()}\n locale={locale()}\n prevButton={\n <CalendarButton\n slot=\"previous\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronLeftIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n nextButton={\n <CalendarButton\n slot=\"next\"\n class={calendarNavButton({ buttonSize: sizeConfig().buttonSize })}\n style={{\n width: `${sizeConfig().buttonSize}px`,\n height: `${sizeConfig().buttonSize}px`,\n }}\n >\n <ChevronRightIcon styles={calendarNavIcon} />\n </CalendarButton>\n }\n />\n </header>\n\n <div class={calendarMonths({ isMultiMonth: visibleMonths() > 1 })}>\n <For each={monthOffsets()}>\n {(offset) => (\n <CalendarGrid\n class={calendarGrid}\n style={{\n width: `${sizeConfig().cellMaxWidth * 7}px`,\n }}\n weekdayStyle=\"narrow\"\n headerCellClass={calendarHeaderCell}\n offset={offset === 0 ? undefined : { months: offset }}\n >\n {(date) => (\n <CalendarCell\n date={date}\n cellClass={calendarCellWrapper}\n cellStyle={() => cellBoxStyle(size())}\n style={() => cellBoxStyle(size())}\n class={({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n }) =>\n calendarCellOuter({\n isDisabled,\n isOutsideMonth,\n isFirstChild,\n isLastChild,\n isFirstWeek,\n isLastWeek,\n })\n }\n >\n {(cell) => <CalendarCellContent cell={cell} />}\n </CalendarCell>\n )}\n </CalendarGrid>\n )}\n </For>\n </div>\n\n <Show when={isInvalid() && local.errorMessage}>\n <span\n id={errorMessageId}\n class={calendarHelpText({ isInvalid: true, isDisabled: Boolean(rest.isDisabled) })}\n >\n {local.errorMessage}\n </span>\n </Show>\n </HeadlessCalendar>\n );\n}\n\nexport { RangeCalendar, RangeCalendarContext } from \"./RangeCalendar\";\nexport type {\n RangeCalendarFirstDayOfWeek,\n RangeCalendarProps,\n RangeCalendarSize,\n RangeValue,\n} from \"./RangeCalendar\";\n\nexport type { CalendarDate, DateValue };\n"],"mappings":"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"}
|
package/dist/checkbox/index.js
CHANGED
|
@@ -143,7 +143,7 @@ const checkboxGroupLabel = function anonymous(props) {
|
|
|
143
143
|
}
|
|
144
144
|
if (props.isStaticColor) rules += " pl151";
|
|
145
145
|
else if (props.isDisabled) rules += " pUvnvv151";
|
|
146
|
-
else rules += "
|
|
146
|
+
else rules += " pWQ7V3d151";
|
|
147
147
|
rules += " plb151";
|
|
148
148
|
rules += " ri151";
|
|
149
149
|
return rules;
|
|
@@ -235,7 +235,7 @@ const checkboxGroupHelpText = function anonymous(props) {
|
|
|
235
235
|
} else if (props.isInvalid) {
|
|
236
236
|
rules += " pYjUhNc151";
|
|
237
237
|
rules += " plQBRyrc151";
|
|
238
|
-
} else rules += "
|
|
238
|
+
} else rules += " pWQ7V3d151";
|
|
239
239
|
rules += " _qb151";
|
|
240
240
|
rules += " TgOnRt151";
|
|
241
241
|
rules += " -_8sjo0b-t5ZbAob151";
|
|
@@ -429,7 +429,7 @@ const checkboxHelpText = function anonymous(props) {
|
|
|
429
429
|
} else if (props.isInvalid) {
|
|
430
430
|
rules += " pYjUhNc151";
|
|
431
431
|
rules += " plQBRyrc151";
|
|
432
|
-
} else rules += "
|
|
432
|
+
} else rules += " pWQ7V3d151";
|
|
433
433
|
rules += " -_8sjo0b-t5ZbAob151";
|
|
434
434
|
rules += " _qb151";
|
|
435
435
|
if (props.isDisabled) rules += " ri151";
|
package/dist/checkbox/index.jsx
CHANGED
|
@@ -136,7 +136,7 @@ const checkboxGroupLabel = function anonymous(props) {
|
|
|
136
136
|
}
|
|
137
137
|
if (props.isStaticColor) rules += " pl151";
|
|
138
138
|
else if (props.isDisabled) rules += " pUvnvv151";
|
|
139
|
-
else rules += "
|
|
139
|
+
else rules += " pWQ7V3d151";
|
|
140
140
|
rules += " plb151";
|
|
141
141
|
rules += " ri151";
|
|
142
142
|
return rules;
|
|
@@ -228,7 +228,7 @@ const checkboxGroupHelpText = function anonymous(props) {
|
|
|
228
228
|
} else if (props.isInvalid) {
|
|
229
229
|
rules += " pYjUhNc151";
|
|
230
230
|
rules += " plQBRyrc151";
|
|
231
|
-
} else rules += "
|
|
231
|
+
} else rules += " pWQ7V3d151";
|
|
232
232
|
rules += " _qb151";
|
|
233
233
|
rules += " TgOnRt151";
|
|
234
234
|
rules += " -_8sjo0b-t5ZbAob151";
|
|
@@ -424,7 +424,7 @@ const checkboxHelpText = function anonymous(props) {
|
|
|
424
424
|
} else if (props.isInvalid) {
|
|
425
425
|
rules += " pYjUhNc151";
|
|
426
426
|
rules += " plQBRyrc151";
|
|
427
|
-
} else rules += "
|
|
427
|
+
} else rules += " pWQ7V3d151";
|
|
428
428
|
rules += " -_8sjo0b-t5ZbAob151";
|
|
429
429
|
rules += " _qb151";
|
|
430
430
|
if (props.isDisabled) rules += " ri151";
|
package/dist/combobox/index.js
CHANGED
|
@@ -148,7 +148,7 @@ const comboBoxLabel = function anonymous(props) {
|
|
|
148
148
|
}
|
|
149
149
|
if (props.isStaticColor) rules += " pl151";
|
|
150
150
|
else if (props.isDisabled) rules += " pUvnvv151";
|
|
151
|
-
else rules += "
|
|
151
|
+
else rules += " pWQ7V3d151";
|
|
152
152
|
rules += " plb151";
|
|
153
153
|
rules += " ri151";
|
|
154
154
|
return rules;
|
|
@@ -708,7 +708,7 @@ const helpTextStyles = function anonymous(props) {
|
|
|
708
708
|
} else if (props.isInvalid) {
|
|
709
709
|
rules += " pYjUhNc151";
|
|
710
710
|
rules += " plQBRyrc151";
|
|
711
|
-
} else rules += "
|
|
711
|
+
} else rules += " pWQ7V3d151";
|
|
712
712
|
rules += " -_8sjo0b-t5ZbAob151";
|
|
713
713
|
rules += " _qb151";
|
|
714
714
|
rules += " TgOnRt151";
|
package/dist/combobox/index.jsx
CHANGED
|
@@ -136,7 +136,7 @@ const comboBoxLabel = function anonymous(props) {
|
|
|
136
136
|
}
|
|
137
137
|
if (props.isStaticColor) rules += " pl151";
|
|
138
138
|
else if (props.isDisabled) rules += " pUvnvv151";
|
|
139
|
-
else rules += "
|
|
139
|
+
else rules += " pWQ7V3d151";
|
|
140
140
|
rules += " plb151";
|
|
141
141
|
rules += " ri151";
|
|
142
142
|
return rules;
|
|
@@ -697,7 +697,7 @@ const helpTextStyles = function anonymous(props) {
|
|
|
697
697
|
} else if (props.isInvalid) {
|
|
698
698
|
rules += " pYjUhNc151";
|
|
699
699
|
rules += " plQBRyrc151";
|
|
700
|
-
} else rules += "
|
|
700
|
+
} else rules += " pWQ7V3d151";
|
|
701
701
|
rules += " -_8sjo0b-t5ZbAob151";
|
|
702
702
|
rules += " _qb151";
|
|
703
703
|
rules += " TgOnRt151";
|
package/dist/dropzone/index.js
CHANGED
|
@@ -66,7 +66,7 @@ const banner = function anonymous(props) {
|
|
|
66
66
|
if (props.size === "L") rules += " Lg151";
|
|
67
67
|
else if (props.size === "S") rules += " Le151";
|
|
68
68
|
else rules += " Lf151";
|
|
69
|
-
rules += "
|
|
69
|
+
rules += " gnhAeB151";
|
|
70
70
|
rules += " ob151";
|
|
71
71
|
rules += " nb151";
|
|
72
72
|
rules += " kb151";
|
package/dist/dropzone/index.jsx
CHANGED
|
@@ -64,7 +64,7 @@ const banner = function anonymous(props) {
|
|
|
64
64
|
if (props.size === "L") rules += " Lg151";
|
|
65
65
|
else if (props.size === "S") rules += " Le151";
|
|
66
66
|
else rules += " Lf151";
|
|
67
|
-
rules += "
|
|
67
|
+
rules += " gnhAeB151";
|
|
68
68
|
rules += " ob151";
|
|
69
69
|
rules += " nb151";
|
|
70
70
|
rules += " kb151";
|
package/dist/font-faces.css
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
/*
|
|
1
|
+
/* Viviana UI v2 register faces: Geist Pixel (display) · Geist (body/ui) · Geist
|
|
2
|
+
Mono (terminal).
|
|
3
|
+
|
|
4
|
+
This @import must stay the first rule in the file. CSS requires @import to
|
|
5
|
+
precede every rule other than @charset and @layer statements; placed after
|
|
6
|
+
the @font-face blocks below it is invalid, so browsers drop it and bundlers
|
|
7
|
+
strip it from the output — the whole Geist register silently falls back to
|
|
8
|
+
the default sans-serif with no error anywhere. */
|
|
9
|
+
@import url("https://fonts.googleapis.com/css2?family=Geist+Pixel:ELSH@1..80&family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;700;800&display=swap");
|
|
10
|
+
|
|
11
|
+
/* React Spectrum S2 font-face definitions. Upstream source: @react-spectrum/s2/src/font-faces.css.
|
|
12
|
+
Inlined here so this file is self-contained (no bare @import into
|
|
13
|
+
@proyecto-viviana/solid-spectrum). */
|
|
2
14
|
|
|
3
15
|
@font-face {
|
|
4
16
|
font-family: "adobe-clean-spectrum-vf";
|
|
@@ -240,8 +252,3 @@
|
|
|
240
252
|
font-weight: 400;
|
|
241
253
|
font-stretch: normal;
|
|
242
254
|
}
|
|
243
|
-
|
|
244
|
-
/* Viviana UI v2 register faces: Geist Pixel (display) · Geist (body/ui) · Geist
|
|
245
|
-
Mono (terminal). Inlined above are the upstream S2 typekit faces so this file
|
|
246
|
-
is self-contained (no bare @import into @proyecto-viviana/solid-spectrum). */
|
|
247
|
-
@import url("https://fonts.googleapis.com/css2?family=Geist+Pixel:ELSH@1..80&family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;700;800&display=swap");
|
package/dist/form/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/form/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAyC,MAAM,UAAU,CAAC;AAC3E,OAAO,EAGL,KAAK,SAAS,IAAI,iBAAiB,EACnC,KAAK,eAAe,IAAI,uBAAuB,EAChD,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAKlE,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAC9C,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,CAAC;AAC7C,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,gFAAgF;IAChF,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,EAAE,cAAc;IAC1E,0CAA0C;IAC1C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAC5C,2DAA2D;IAC3D,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IACjC,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,mDAA6C,CAAC;AAYtE,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAoE1D;AAwBD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/form/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAyC,MAAM,UAAU,CAAC;AAC3E,OAAO,EAGL,KAAK,SAAS,IAAI,iBAAiB,EACnC,KAAK,eAAe,IAAI,uBAAuB,EAChD,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAKlE,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAC9C,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,CAAC;AAC7C,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,gFAAgF;IAChF,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,EAAE,cAAc;IAC1E,0CAA0C;IAC1C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAC5C,2DAA2D;IAC3D,YAAY,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IACjC,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,WAAW,mDAA6C,CAAC;AAYtE,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAoE1D;AAwBD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CA+DlD;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAQ9D;AAED,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChartIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelChartIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PixelChartIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelChartIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAsBpC,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACtE,eAAO,MAAM,cAAc,wDAAgC,CAAC;AAC5D,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChartIcon.js","names":["JSX","createIcon","PixelChartIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelChartIconProps","PixelChartIcon"],"sources":["../../../src/icon/pixel-icons/PixelChartIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChartIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelChartIcon.js","names":["JSX","createIcon","PixelChartIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelChartIconProps","PixelChartIcon"],"sources":["../../../src/icon/pixel-icons/PixelChartIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChartIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M4 12h3v6H4zM10 9h3v9h-3zM16 5h3v13h-3zM3 18h18v2H3z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelChartIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelChartIcon = createIcon(PixelChartIconSvg);\nexport default PixelChartIcon;\n"],"mappings":";;;;AASA,SAASE,kBAAkBC,OAAyD;CAClF,MAAM,EAAEI,OAAOC,WAAW,GAAGC,SAASN;CACtC,cAAA;EAAA,IAAAO,OAAAC,eAAAC,MAAA;EAAAC,OAAAH,MAAAI,WAMQL,MAAI,EAAA,SACDD,UAAS,CAAA,GAAA,MAAA,IAAA;EAAAO,mBAAA;EAAA,OAAAL;CAAA,GAAA;AAQtB;AAGA,MAAaO,iBAAiBhB,WAAWC,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChartIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelChartIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChartIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelChartIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelChartIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChartIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M4 12h3v6H4zM10 9h3v9h-3zM16 5h3v13h-3zM3 18h18v2H3z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelChartIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelChartIcon = createIcon(PixelChartIconSvg);\nexport default PixelChartIcon;\n"],"mappings":";;AASA,SAAS,kBAAkB,OAAyD;CAClF,MAAM,EAAE,OAAO,WAAW,GAAG,SAAS;CACtC,OACE,CAAC,IACC,mCACA,WACA,YACA,wBACI,MACJ,OAAO,WACR;MACC,CAAC,KACC,yDACA,0CACA;IACJ,EAAE;AAEN;AAGA,MAAa,iBAAiB,WAAW,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelCheckIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelCheckIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PixelCheckIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelCheckIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAsBpC,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACtE,eAAO,MAAM,cAAc,wDAAgC,CAAC;AAC5D,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelCheckIcon.js","names":["JSX","createIcon","PixelCheckIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelCheckIconProps","PixelCheckIcon"],"sources":["../../../src/icon/pixel-icons/PixelCheckIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelCheckIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelCheckIcon.js","names":["JSX","createIcon","PixelCheckIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelCheckIconProps","PixelCheckIcon"],"sources":["../../../src/icon/pixel-icons/PixelCheckIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelCheckIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M7 12h2v2H7zM9 14h2v2H9zM11 12h2v2h-2zM13 10h2v2h-2zM15 8h2v2h-2z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelCheckIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelCheckIcon = createIcon(PixelCheckIconSvg);\nexport default PixelCheckIcon;\n"],"mappings":";;;;AASA,SAASE,kBAAkBC,OAAyD;CAClF,MAAM,EAAEI,OAAOC,WAAW,GAAGC,SAASN;CACtC,cAAA;EAAA,IAAAO,OAAAC,eAAAC,MAAA;EAAAC,OAAAH,MAAAI,WAMQL,MAAI,EAAA,SACDD,UAAS,CAAA,GAAA,MAAA,IAAA;EAAAO,mBAAA;EAAA,OAAAL;CAAA,GAAA;AAQtB;AAGA,MAAaO,iBAAiBhB,WAAWC,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelCheckIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelCheckIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelCheckIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelCheckIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelCheckIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelCheckIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M7 12h2v2H7zM9 14h2v2H9zM11 12h2v2h-2zM13 10h2v2h-2zM15 8h2v2h-2z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelCheckIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelCheckIcon = createIcon(PixelCheckIconSvg);\nexport default PixelCheckIcon;\n"],"mappings":";;AASA,SAAS,kBAAkB,OAAyD;CAClF,MAAM,EAAE,OAAO,WAAW,GAAG,SAAS;CACtC,OACE,CAAC,IACC,mCACA,WACA,YACA,wBACI,MACJ,OAAO,WACR;MACC,CAAC,KACC,sEACA,0CACA;IACJ,EAAE;AAEN;AAGA,MAAa,iBAAiB,WAAW,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChevronDownIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelChevronDownIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PixelChevronDownIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelChevronDownIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAsBpC,MAAM,MAAM,yBAAyB,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAC5E,eAAO,MAAM,oBAAoB,wDAAsC,CAAC;AACxE,eAAe,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChevronDownIcon.js","names":["JSX","createIcon","PixelChevronDownIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelChevronDownIconProps","PixelChevronDownIcon"],"sources":["../../../src/icon/pixel-icons/PixelChevronDownIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronDownIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelChevronDownIcon.js","names":["JSX","createIcon","PixelChevronDownIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelChevronDownIconProps","PixelChevronDownIcon"],"sources":["../../../src/icon/pixel-icons/PixelChevronDownIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronDownIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M6 9h2v2H6zM8 11h2v2H8zM10 13h2v2h-2zM12 11h2v2h-2zM14 9h2v2h-2z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelChevronDownIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelChevronDownIcon = createIcon(PixelChevronDownIconSvg);\nexport default PixelChevronDownIcon;\n"],"mappings":";;;;AASA,SAASE,wBAAwBC,OAAyD;CACxF,MAAM,EAAEI,OAAOC,WAAW,GAAGC,SAASN;CACtC,cAAA;EAAA,IAAAO,OAAAC,eAAAC,MAAA;EAAAC,OAAAH,MAAAI,WAMQL,MAAI,EAAA,SACDD,UAAS,CAAA,GAAA,MAAA,IAAA;EAAAO,mBAAA;EAAA,OAAAL;CAAA,GAAA;AAQtB;AAGA,MAAaO,uBAAuBhB,WAAWC,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChevronDownIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelChevronDownIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronDownIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelChevronDownIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelChevronDownIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronDownIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M6 9h2v2H6zM8 11h2v2H8zM10 13h2v2h-2zM12 11h2v2h-2zM14 9h2v2h-2z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelChevronDownIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelChevronDownIcon = createIcon(PixelChevronDownIconSvg);\nexport default PixelChevronDownIcon;\n"],"mappings":";;AASA,SAAS,wBAAwB,OAAyD;CACxF,MAAM,EAAE,OAAO,WAAW,GAAG,SAAS;CACtC,OACE,CAAC,IACC,mCACA,WACA,YACA,wBACI,MACJ,OAAO,WACR;MACC,CAAC,KACC,qEACA,0CACA;IACJ,EAAE;AAEN;AAGA,MAAa,uBAAuB,WAAW,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChevronRightIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelChevronRightIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PixelChevronRightIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelChevronRightIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAsBpC,MAAM,MAAM,0BAA0B,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAC7E,eAAO,MAAM,qBAAqB,wDAAuC,CAAC;AAC1E,eAAe,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChevronRightIcon.js","names":["JSX","createIcon","PixelChevronRightIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelChevronRightIconProps","PixelChevronRightIcon"],"sources":["../../../src/icon/pixel-icons/PixelChevronRightIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronRightIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelChevronRightIcon.js","names":["JSX","createIcon","PixelChevronRightIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","PixelChevronRightIconProps","PixelChevronRightIcon"],"sources":["../../../src/icon/pixel-icons/PixelChevronRightIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronRightIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M9 6h2v2H9zM11 8h2v2h-2zM13 10h2v2h-2zM11 12h2v2h-2zM9 14h2v2H9z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelChevronRightIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelChevronRightIcon = createIcon(PixelChevronRightIconSvg);\nexport default PixelChevronRightIcon;\n"],"mappings":";;;;AASA,SAASE,yBAAyBC,OAAyD;CACzF,MAAM,EAAEI,OAAOC,WAAW,GAAGC,SAASN;CACtC,cAAA;EAAA,IAAAO,OAAAC,eAAAC,MAAA;EAAAC,OAAAH,MAAAI,WAMQL,MAAI,EAAA,SACDD,UAAS,CAAA,GAAA,MAAA,IAAA;EAAAO,mBAAA;EAAA,OAAAL;CAAA,GAAA;AAQtB;AAGA,MAAaO,wBAAwBhB,WAAWC,wBAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelChevronRightIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelChevronRightIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronRightIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path
|
|
1
|
+
{"version":3,"file":"PixelChevronRightIcon.jsx","names":[],"sources":["../../../src/icon/pixel-icons/PixelChevronRightIcon.tsx"],"sourcesContent":["/*\n * Auto-generated from the frozen external design repository's Glasselated\n * pixel-art SVG set (see CREDITS.md, \"Glasselated design lane\").\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction PixelChevronRightIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n {...rest}\n class={className}\n >\n <path\n d=\"M9 6h2v2H9zM11 8h2v2h-2zM13 10h2v2h-2zM11 12h2v2h-2zM9 14h2v2H9z\"\n fill=\"var(--iconPrimary, currentColor)\"\n />\n </svg>\n );\n}\n\nexport type PixelChevronRightIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const PixelChevronRightIcon = createIcon(PixelChevronRightIconSvg);\nexport default PixelChevronRightIcon;\n"],"mappings":";;AASA,SAAS,yBAAyB,OAAyD;CACzF,MAAM,EAAE,OAAO,WAAW,GAAG,SAAS;CACtC,OACE,CAAC,IACC,mCACA,WACA,YACA,wBACI,MACJ,OAAO,WACR;MACC,CAAC,KACC,qEACA,0CACA;IACJ,EAAE;AAEN;AAGA,MAAa,wBAAwB,WAAW,wBAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelClockIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelClockIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"PixelClockIcon.d.ts","sourceRoot":"","sources":["../../../src/icon/pixel-icons/PixelClockIcon.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAsBpC,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACtE,eAAO,MAAM,cAAc,wDAAgC,CAAC;AAC5D,eAAe,cAAc,CAAC"}
|