From 693df86b83dac176bb7f4bfff2ae20beceac4f6f Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Fri, 29 May 2026 17:38:50 -0500 Subject: [PATCH 01/20] feat(antares): add DateField component Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/pdrs/antares/date-components.md | 364 ++++++++++++++++++ .../antares/components/date-field/README.mdx | 130 +++++++ .../date-field/date-field.stories.tsx | 57 +++ .../components/date-field/examples/basic.tsx | 5 + .../date-field/examples/controlled.tsx | 16 + .../examples/date-field-playground.tsx | 33 ++ .../examples/disabled-required-readonly.tsx | 12 + .../components/date-field/examples/form.tsx | 26 ++ .../date-field/examples/min-max.tsx | 14 + .../examples/with-default-value.tsx | 6 + .../date-field/examples/with-description.tsx | 5 + .../date-field/examples/with-error.tsx | 5 + .../date-field/src/index.module.css | 41 ++ .../components/date-field/src/index.tsx | 149 +++++++ .../date-field.node.test.tsx.snap | 9 + .../test/date-field.browser.test.tsx | 100 +++++ .../date-field/test/date-field.node.test.tsx | 52 +++ .../test/date-field.visual.test.tsx | 24 ++ .../@godaddy/antares/exports/DateField.ts | 1 + packages/@godaddy/antares/index.ts | 2 + packages/@godaddy/antares/package.json | 1 + plans/date-components.md | 306 +++++++++++++++ 22 files changed, 1358 insertions(+) create mode 100644 docs/pdrs/antares/date-components.md create mode 100644 packages/@godaddy/antares/components/date-field/README.mdx create mode 100644 packages/@godaddy/antares/components/date-field/date-field.stories.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/basic.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/controlled.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/date-field-playground.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/disabled-required-readonly.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/form.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/min-max.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/with-default-value.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/with-description.tsx create mode 100644 packages/@godaddy/antares/components/date-field/examples/with-error.tsx create mode 100644 packages/@godaddy/antares/components/date-field/src/index.module.css create mode 100644 packages/@godaddy/antares/components/date-field/src/index.tsx create mode 100644 packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap create mode 100644 packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx create mode 100644 packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx create mode 100644 packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx create mode 100644 packages/@godaddy/antares/exports/DateField.ts create mode 100644 plans/date-components.md diff --git a/docs/pdrs/antares/date-components.md b/docs/pdrs/antares/date-components.md new file mode 100644 index 000000000..baae768d6 --- /dev/null +++ b/docs/pdrs/antares/date-components.md @@ -0,0 +1,364 @@ +# Date Components PDR + +Design review for the date-input component family in Antares: `DateField`, `DatePicker`, `DateRangePicker`, `Calendar`, and `RangeCalendar`. + +**Ticket:** [UXP-11890 — Antares Component: Date Field](https://godaddy-corp.atlassian.net/browse/UXP-11890) +**Figma:** [Date Input Specs](https://www.figma.com/design/RYm4VR8yECQH5X2RDL8rhp/branch/RBG1HnhLkuosywFb73CTzG/%F0%9F%93%90-Date-Input-Specs?node-id=0-1) + +## Table of Contents + +- [Context](#context) +- [Public API](#public-api) +- [Folder Structure](#folder-structure) +- [Value Types & Dependencies](#value-types--dependencies) +- [Validation Surface](#validation-surface) +- [`getDayIndicators` API](#getdayindicators-api) +- [Calendar Internals](#calendar-internals) +- [Granularity, Locale, and i18n](#granularity-locale-and-i18n) +- [Documentation Strategy](#documentation-strategy) +- [Storybook Scope](#storybook-scope) +- [Test Scope](#test-scope) +- [Implementation Sequencing](#implementation-sequencing) +- [Out of Scope / Non-Goals](#out-of-scope--non-goals) +- [Open Questions](#open-questions) +- [References](#references) + +--- + +## Context + +The ticket title says "Date Field" but the description matches what React Aria calls a `DatePicker` — a text input trigger plus a popover calendar flyout. Acceptance criteria require both Single and Double / Range variants, an exported `` sub-primitive, typed segment entry via React Aria, min/max bounds, min/max duration constraints (range only), per-day indicator dots, and full keyboard / screen-reader support. + +This PDR locks the public API and implementation conventions before code lands, so reviewers and design have one canonical reference. + +## Public API + +Five exports across three folders: + +| Export | Purpose | +| --- | --- | +| `DateField` | Segmented date input, no popover. Peer to `TextField` / `NumberField`. | +| `DatePicker` | `DateField` + button + `Calendar` in a popover. Single date selection. | +| `DateRangePicker` | Two `DateField`s + `RangeCalendar` in a popover. Range selection. | +| `Calendar` | Standalone calendar grid for single-date selection. | +| `RangeCalendar` | Standalone calendar grid for range selection. | + +Naming follows React Aria 1:1 to keep RAC docs reusable as a reference for our consumers. + +## Folder Structure + +Three folders under `packages/@godaddy/antares/components/`, each grouping a concept: + +``` +components/ + date-field/ → exports DateField + date-picker/ → exports DatePicker, DateRangePicker + calendar/ → exports Calendar, RangeCalendar +``` + +Three corresponding files under `exports/`: + +``` +exports/ + DateField.ts + DatePicker.ts → DatePicker + DateRangePicker + Calendar.ts → Calendar + RangeCalendar +``` + +This mirrors the `select/` pattern (multi-export folder for compound peers) for the picker and calendar pairs, and the `text-field/` pattern (single-export folder) for `DateField` as a sibling field input. + +## Value Types & Dependencies + +All five components are typed as `` (date-only — no time, no timezone). The value/onChange types come straight from React Aria Components: + +```ts +// DateField, DatePicker, Calendar +value?: CalendarDate | null; +onChange?: (value: CalendarDate | null) => void; + +// DateRangePicker, RangeCalendar +value?: { start: CalendarDate; end: CalendarDate } | null; +onChange?: (value: { start: CalendarDate; end: CalendarDate } | null) => void; +``` + +### Dependency classification + +`@internationalized/date` is a **direct dependency** of `@godaddy/antares` — matching `react-aria-components`. It is **not** a peer dep. + +Consumers do NOT add `@internationalized/date` to their `package.json`. They import from it directly: + +```ts +import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; +import { DatePicker } from '@godaddy/antares'; + + + +``` + +This works through npm/yarn hoisting. **Caveat for strict pnpm users:** if `node-linker=hoisted` is disabled, the consumer must add `@internationalized/date` to their own `package.json` explicitly. This is documented in the "Working with dates" README section. + +### Re-exports + +We do **not** re-export anything from `@internationalized/date` — neither values nor types. Adobe React Aria does not re-export it either. Re-exporting some helpers but not others creates an asymmetric surface that breaks down the moment a consumer needs a function we didn't pick. + +## Validation Surface + +| Prop | Source | Notes | +| --- | --- | --- | +| `minValue?: CalendarDate` | RAC passthrough | Absolute lower bound. Disables out-of-range days, rejects out-of-range typed entry. | +| `maxValue?: CalendarDate` | RAC passthrough | Absolute upper bound. | +| `minDuration?: DateDuration` | **New (ours)** | Range only. Duration constraint on the selection itself. Disables end-date candidates that violate during in-progress pick. | +| `maxDuration?: DateDuration` | **New (ours)** | Range only. | +| `isDateUnavailable?: (date: CalendarDate) => boolean` | RAC passthrough | Standard escape hatch (disable weekends, holidays, etc.). Available on all four grid-bearing components. | +| `validate?: (value) => string \| true \| null \| undefined` | RAC passthrough | Cross-field validation. | +| `isInvalid?: boolean` | RAC passthrough | Drives `FieldFrame` error styling. | +| `errorMessage?: string` | Narrowed from RAC | RAC supports `string \| (ValidationResult) => ReactNode`; we restrict to `string` to match `TextField` / `NumberField` and prevent UX drift. | +| `validationBehavior` | Not exposed | Use RAC default (`'native'`). | +| `name?: string` | RAC passthrough | Native form integration. | +| `placeholderValue?: CalendarDate` | RAC passthrough | Drives which month opens when the picker has no value. | +| `autoFocus`, `isDisabled`, `isReadOnly`, `isRequired`, `aria-*` | RAC passthrough | Same as `TextField` / `NumberField`. | + +### Implementation notes + +- `minDuration` / `maxDuration` are not in RAC. Implementation: compute a dynamic `isDateUnavailable` that wraps any consumer-supplied `isDateUnavailable` (logically OR them) based on the in-progress range start. +- `validationBehavior` stays at RAC's default to match `TextField` / `NumberField`, which also do not expose it. +- Cross-field "end after start" enforcement in `DateRangePicker` is handled internally by RAC; no extra prop. + +## `getDayIndicators` API + +Only first-class custom prop in this family. Renders up to **3 indicator dots** per day cell. + +```ts +type DayIndicator = { + /** Maps to the design-token color-feedback--strong palette. */ + color: 'critical' | 'highlight' | 'info' | 'passive' | 'success' | 'warning'; + /** Optional accessible label combined with the day's date label for screen readers. */ + label?: string; +}; + +type GetDayIndicators = (date: CalendarDate) => DayIndicator[]; + +// Available on: Calendar, RangeCalendar, DatePicker, DateRangePicker +getDayIndicators?: GetDayIndicators; +``` + +### Behavior rules + +- Function is called per visible day. Same calling convention as RAC's `isDateUnavailable` — same memoization story. +- Color is constrained to the design-system feedback palette. Raw color strings are rejected at the type level. +- `label` is optional; when present it becomes part of the day cell's accessible name (announced by screen readers). +- If a consumer returns more than 3 indicators, the array is sliced to the first 3 and a `console.warn` fires in development. AC is firm at 3. +- The prop is threaded through to the same Calendar grid used inside DatePicker / DateRangePicker. Same name, same shape, same semantics across all four grid-bearing components. + +## Calendar Internals + +Implementation rules locked here so the visual contract doesn't drift: + +| Concern | Rule | +| --- | --- | +| Header | Month and Year are both `Select` dropdowns. No free-text year entry. Header is **not customizable**; consumers who need a custom header should compose RAC directly. | +| Year range | Derived from `minValue` / `maxValue` if either is set. Otherwise defaults to current year ± 100. | +| Range mode visible duration | `visibleDuration={{ months: 2 }}` hardcoded — two side-by-side months. Right month always trails the left by exactly one. Navigating either side keeps them adjacent. | +| Single mode visible duration | `visibleDuration={{ months: 1 }}` hardcoded. | +| `pageBehavior` | Hardcoded to RAC default `'visible'`. Not exposed. | +| Out-of-month days (single) | Rendered at 40% opacity, not focusable, not selectable. | +| Out-of-month days (range / multi-month) | **Not rendered at all** (AC explicit). | +| "Today" visual state | Distinguished from selected; coexists correctly with selected and in-range states. | +| Range click-earlier behavior | RAC default: clicking a date earlier than the current start resets start to that date. (Design confirmation outstanding — see Open Questions.) | + +## Granularity, Locale, and i18n + +- **Date-only.** All five components are typed ``. No time, no timezone. The `granularity` prop is never surfaced. +- **Locale comes from ``** (the host app provides this). No per-component `locale` prop. No `firstDayOfWeek` or `weekdayStyle` props. +- The README "Working with dates" section notes the `` requirement. Platform team should confirm this provider is wrapped at the host-app level. + +## Documentation Strategy + +Three layers, in order of impact for consumers: + +### 1. JSDoc on every date-typed prop + +`value`, `defaultValue`, `minValue`, `maxValue`, `placeholderValue`, `isDateUnavailable`, etc. Each gets: + +```ts +/** + * Selected date value (controlled). Pass a `CalendarDate` from `@internationalized/date`. + * + * @example + * import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; + * + * + * + * @see https://react-spectrum.adobe.com/react-aria/DatePicker.html#value + */ +value?: CalendarDate | null; +``` + +This is the highest-leverage layer — most engineers never read READMEs but always hover types. + +### 2. README per folder + +One README each for `date-field`, `date-picker`, `calendar`. Standard sections matching existing components (Features, Installation, Props, Examples). + +The `date-picker` README adds a **"Working with dates"** section covering: +- Why `@internationalized/date` (not `Date`) +- How to import (`@internationalized/date` ships transitively — no install required, with a strict-pnpm caveat) +- Three patterns: today, fixed date, controlled state +- Link to RAC docs and `@internationalized/date` docs +- Note on host-app `` requirement + +The other two READMEs link out to this section rather than duplicating. + +### 3. Storybook stories with literal source + +Stories use `parseDate('...')` literally so the source is copy-pasteable. No helper functions hide the conversion. + +## Storybook Scope + +24 stories total, each mapping to an AC line. + +### `date-field.stories.tsx` (7 stories) + +1. `Default` — empty, with label +2. `WithDefaultValue` — uses `parseDate('2024-03-15')` +3. `Controlled` — useState pattern +4. `WithDescription` and `WithError` +5. `MinMax` — demonstrates rejection of out-of-range typed entry +6. `Disabled / Required / ReadOnly` +7. `Form` — wrapped in `
`, native validation + +### `date-picker.stories.tsx` (10 stories — covers DatePicker + DateRangePicker) + +1. `Default` (single) +2. `DefaultRange` +3. `WithMinMax` (single + range) +4. `WithMinMaxDuration` (range only) +5. `WithUnavailableDates` +6. `WithIndicators` — 1, 2, and 3 dots; demonstrates truncation +7. `WithError` +8. `Controlled` +9. `PlaceholderValue` +10. `Form` + +### `calendar.stories.tsx` (7 stories — covers Calendar + RangeCalendar) + +1. `Default` +2. `DefaultRange` +3. `WithMinMax` and `WithUnavailableDates` +4. `WithIndicators` +5. `TodayDistinct` — verifies today + selected + in-range coexist visually +6. `OutOfMonthDays` — single shows at 40% opacity, range hides them entirely +7. `WithDuration` + +## Test Scope + +Three layers. **Principle: don't re-test RAC.** RAC ships its own coverage for keyboard navigation, focus trap, popover dismissal, and segment editing. Our tests target our additions and integrations. + +### `test:node` — light (~25 tests total) + +- Each component renders without throwing +- Props pass through to RAC (`isDisabled`, `name`, `value`, etc.) +- Type-level: `DatePicker` accepts `parseDate('2024-03-15')`, rejects `new Date()` + +### `test:browser` — interaction-heavy (~24 tests total) + +1. `DateField` typed entry parses and updates value; invalid input flips `isInvalid` +2. `minValue` / `maxValue` rejects out-of-range typed entry; disables out-of-range days +3. `minDuration` / `maxDuration` disables end-date candidates that violate, during in-progress range pick +4. `isDateUnavailable` disables matching days; coexists with `minValue`/`maxValue` (logical AND) +5. `getDayIndicators`: 0, 1, 2, 3 dots render correctly; 4+ slices to 3 and dev `console.warn` fires +6. Indicator `label` appears in day cell's accessible name +7. Month / Year `Select` header — changing either updates visible calendar(s) +8. Year range derivation — with `minValue`/`maxValue` set, year `Select` only shows in-range years +9. Range adjacency — navigating left side keeps right side trailing by exactly one month; same in reverse; year-boundary edge cases +10. Out-of-month rendering — single = reduced opacity, range = not rendered +11. Today + selected + in-range coexistence +12. Form submission — `` with named `DatePicker` submits ISO date string + +The `minDuration`/`maxDuration` and adjacency tests are notably more involved than the rest (~3-4h each vs. ~15min). They are not optional — cutting them would make the component fragile in exactly the spots where bugs would be hardest to catch in review. + +### `test:visual` — curated screenshot regression + +Snapshots auto-generated from a curated subset of stories — primarily the visual-AC stories: `TodayDistinct`, `OutOfMonthDays`, `WithIndicators`, `DefaultRange`, `WithError`. ~10 visual snapshots. + +If CI flake on `test:visual` becomes a cost center, drop visual coverage **only** for stories already covered by browser interaction tests. Keep visual tests for stories that are fundamentally visual. + +## Implementation Sequencing + +Three stacked PRs in dependency order. PRs 2 and 3 branch off the previous one. + +### PR 1 — `feat/date-field` + +Stand-alone usable on merge. + +- `components/date-field/` (component + styles) +- `exports/DateField.ts` +- `date-field.stories.tsx` + 7 example files +- `date-field/test/` — node, browser, visual +- `date-field/README.mdx` + +### PR 2 — `feat/calendar` (branched from PR 1) + +Stand-alone usable on merge. + +- `components/calendar/` — `Calendar` + `RangeCalendar` +- Month/Year `Select` header +- `getDayIndicators` rendering +- `minDuration` / `maxDuration` enforcement (RangeCalendar only) +- Today / in-range / out-of-month visual states +- `exports/Calendar.ts` +- `calendar.stories.tsx` + 7 example files +- `calendar/test/` — node, browser, visual +- `calendar/README.mdx` + +### PR 3 — `feat/date-picker` (branched from PR 2) + +Closes UXP-11890. + +- `components/date-picker/` — `DatePicker` + `DateRangePicker`, composing `DateField` + `Calendar` / `RangeCalendar` in a popover +- Threading `getDayIndicators`, `minDuration`/`maxDuration`, validation through to inner components +- `exports/DatePicker.ts` +- `date-picker.stories.tsx` + 10 example files +- `date-picker/test/` — node, browser, visual +- `date-picker/README.mdx` (includes "Working with dates" canonical section) + +## Out of Scope / Non-Goals + +Explicitly **not** in v1, to deflect scope-creep during review: + +- ❌ Time / date+time / timezone-aware values (`>`) +- ❌ `granularity` prop +- ❌ Per-component `locale` prop (use ``) +- ❌ Custom day rendering or day slot (only `getDayIndicators` for marker dots) +- ❌ Custom calendar header (Month + Year `Select`s are fixed) +- ❌ `firstDayOfWeek` prop (comes from locale) +- ❌ `weekdayStyle` prop (comes from locale) +- ❌ Re-exporting types or values from `@internationalized/date` +- ❌ Convenience props like `today` / `tomorrow` defaults (consumer uses `today(getLocalTimeZone())`) +- ❌ Range "swap-anchor" behavior (RAC default reset-start only; design confirms post-launch) +- ❌ Inline (always-open) calendar variant of `DatePicker` — consumer composes `DateField` + `Calendar` themselves +- ❌ Multiple-date selection (non-contiguous) +- ❌ Year-only or month-only pickers + +## Open Questions + +| # | Question | Default for v1 | Owner | +| --- | --- | --- | --- | +| 1 | Range click-earlier behavior — reset-start (RAC default) vs. swap-anchor? | Reset-start (RAC default) | Design (to confirm post-launch) | +| 2 | Is `` already wrapped at the host-app level? | Assume yes (RAC is already a peer dep) | Platform team | + +Both are flagged in the corresponding PR description. Neither is a v1 blocker; default behaviors ship and either can change in a follow-up if needed. + +## References + +- **Ticket:** [UXP-11890](https://godaddy-corp.atlassian.net/browse/UXP-11890) +- **Figma:** [Date Input Specs](https://www.figma.com/design/RYm4VR8yECQH5X2RDL8rhp/branch/RBG1HnhLkuosywFb73CTzG/%F0%9F%93%90-Date-Input-Specs?node-id=0-1) +- **React Aria Components:** + - [DatePicker](https://react-spectrum.adobe.com/react-aria/DatePicker.html) + - [DateRangePicker](https://react-spectrum.adobe.com/react-aria/DateRangePicker.html) + - [DateField](https://react-spectrum.adobe.com/react-aria/DateField.html) + - [Calendar](https://react-spectrum.adobe.com/react-aria/Calendar.html) + - [RangeCalendar](https://react-spectrum.adobe.com/react-aria/RangeCalendar.html) +- **`@internationalized/date`:** + - [Overview](https://react-spectrum.adobe.com/internationalized/date/index.html) + - [`CalendarDate`](https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html) diff --git a/packages/@godaddy/antares/components/date-field/README.mdx b/packages/@godaddy/antares/components/date-field/README.mdx new file mode 100644 index 000000000..c4a5fcab0 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/README.mdx @@ -0,0 +1,130 @@ +--- +title: DateField +description: DateField is a segmented date input with editable Year, Month, and Day segments. Use it in forms when the user needs to type a calendar date directly. Pair it with `DatePicker` when a popover calendar is also needed. +--- + +import { ArgTypes, Meta, Source, Story } from '@storybook/addon-docs/blocks'; +import * as Stories from './date-field.stories.tsx'; + +import SourceBasic from './examples/basic.tsx?raw'; +import SourceWithDefaultValue from './examples/with-default-value.tsx?raw'; +import SourceControlled from './examples/controlled.tsx?raw'; +import SourceWithDescription from './examples/with-description.tsx?raw'; +import SourceWithError from './examples/with-error.tsx?raw'; +import SourceMinMax from './examples/min-max.tsx?raw'; +import SourceDisabledRequiredReadOnly from './examples/disabled-required-readonly.tsx?raw'; +import SourceForm from './examples/form.tsx?raw'; + + + +## Features + +- **Segmented input**: Editable Year, Month, and Day segments with arrow-key adjustment +- **Label, description, error**: Optional label, helper text, and error message with proper accessibility +- **Controlled or uncontrolled**: Use `value` and `onChange`, or `defaultValue` +- **Range bounds**: `minValue` and `maxValue` reject out-of-range entry +- **Form integration**: Submits an ISO date string when given a `name` prop +- **React Aria integration**: Built on React Aria DateField for accessibility, keyboard, and locale handling + +## Installation + +```bash +npm install --save @godaddy/antares +``` + +## Working with dates + +DateField values are typed as `CalendarDate` from [`@internationalized/date`][int-date] — a date-only +type with no time and no timezone. `@internationalized/date` ships transitively with +`react-aria-components`, so most consumers do not need to add it to their `package.json`. + +> **Strict pnpm note:** if your repo disables hoisting (`node-linker=hoisted` off), add +> `@internationalized/date` to your own `package.json` so the import resolves. + +Three common patterns: + +```tsx +import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; +import { DateField } from '@godaddy/antares'; + +// Fixed date + + +// Today + + +// Controlled +const [value, setValue] = useState(parseDate('2024-03-15')); + +``` + +A canonical `Working with dates` section will live in the `DatePicker` README in a follow-up +PR — this section will then link there. Locale comes from a host-app ``. + +## Props + +The DateField component accepts the following props: + + + +## Examples + +### Default + +Minimal usage with a label. + + + + +### With default value + +Pass a `CalendarDate` to `defaultValue` to initialize the segments. + + + + +### Controlled + +Use `value` and `onChange` for controlled state. + + + + +### With description + +Provide helper text via `description`. + + + + +### With error + +Use `isInvalid` with `errorMessage` for validation feedback. + + + + +### Min and max + +Constrain typed entry with `minValue` and `maxValue`. + + + + +### Disabled, required, read-only + +`isDisabled` blocks all interaction. `isRequired` marks the field for form validation. `isReadOnly` +allows focus and copy but blocks edits. + + + + +### Form + +Pass `name` to integrate with native `` submission. The submitted value is an ISO date +string (`YYYY-MM-DD`). + + + + +[int-date]: https://react-spectrum.adobe.com/internationalized/date/index.html diff --git a/packages/@godaddy/antares/components/date-field/date-field.stories.tsx b/packages/@godaddy/antares/components/date-field/date-field.stories.tsx new file mode 100644 index 000000000..25e168fdd --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/date-field.stories.tsx @@ -0,0 +1,57 @@ +'use client'; +import { getComponentDocs, getMeta, getStory } from '@bento/storybook-addon-helpers'; +import { DateFieldBasicExample } from './examples/basic.tsx'; +import { DateFieldControlledExample } from './examples/controlled.tsx'; +import { DateFieldDisabledRequiredReadOnlyExample } from './examples/disabled-required-readonly.tsx'; +import { DateFieldFormExample } from './examples/form.tsx'; +import { DateFieldMinMaxExample } from './examples/min-max.tsx'; +import { + DateFieldPlaygroundExample, + type DateFieldPlaygroundExampleProps +} from './examples/date-field-playground.tsx'; +import { DateFieldWithDefaultValueExample } from './examples/with-default-value.tsx'; +import { DateFieldWithDescriptionExample } from './examples/with-description.tsx'; +import { DateFieldWithErrorExample } from './examples/with-error.tsx'; +import { DateField } from './src/index.tsx'; + +export default getMeta({ + title: 'components/DateField' +}); + +export const Props = getComponentDocs(DateField); + +export const Default = getStory(DateFieldBasicExample); + +export const WithDefaultValue = getStory(DateFieldWithDefaultValueExample); + +export const Controlled = getStory(DateFieldControlledExample); + +export const WithDescription = getStory(DateFieldWithDescriptionExample); + +export const WithError = getStory(DateFieldWithErrorExample); + +export const MinMax = getStory(DateFieldMinMaxExample); + +export const DisabledRequiredReadOnly = getStory(DateFieldDisabledRequiredReadOnlyExample); + +export const Form = getStory(DateFieldFormExample); + +export const Playground = { + render: (args: DateFieldPlaygroundExampleProps) => , + args: { + label: 'Start date', + isDisabled: false, + isInvalid: false, + isReadOnly: false, + isRequired: false + }, + argTypes: { + label: { control: 'text', description: 'Label text shown above the frame' }, + description: { control: 'text', description: 'Helper text shown below the frame' }, + errorMessage: { control: 'text', description: 'Error message when invalid' }, + isDisabled: { control: 'boolean', description: 'Disable the input' }, + isInvalid: { control: 'boolean', description: 'Show invalid state' }, + isReadOnly: { control: 'boolean', description: 'Make the input read-only' }, + isRequired: { control: 'boolean', description: 'Mark as required' } + } +}; diff --git a/packages/@godaddy/antares/components/date-field/examples/basic.tsx b/packages/@godaddy/antares/components/date-field/examples/basic.tsx new file mode 100644 index 000000000..6bc8d94fb --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/basic.tsx @@ -0,0 +1,5 @@ +import { DateField, type DateFieldProps } from '@godaddy/antares'; + +export function DateFieldBasicExample(props: DateFieldProps) { + return ; +} diff --git a/packages/@godaddy/antares/components/date-field/examples/controlled.tsx b/packages/@godaddy/antares/components/date-field/examples/controlled.tsx new file mode 100644 index 000000000..c41ce7ab2 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/controlled.tsx @@ -0,0 +1,16 @@ +import { type CalendarDate, parseDate } from '@internationalized/date'; +import { useState } from 'react'; +import { DateField, Text } from '@godaddy/antares'; + +export function DateFieldControlledExample() { + const [value, setValue] = useState(parseDate('2024-03-15')); + + return ( + <> + + + Value: {value ? value.toString() : '(empty)'} + + + ); +} diff --git a/packages/@godaddy/antares/components/date-field/examples/date-field-playground.tsx b/packages/@godaddy/antares/components/date-field/examples/date-field-playground.tsx new file mode 100644 index 000000000..59ad8a361 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/date-field-playground.tsx @@ -0,0 +1,33 @@ +import { DateField } from '@godaddy/antares'; + +export interface DateFieldPlaygroundExampleProps { + description?: string; + errorMessage?: string; + isDisabled?: boolean; + isInvalid?: boolean; + isReadOnly?: boolean; + isRequired?: boolean; + label?: string; +} + +export function DateFieldPlaygroundExample({ + description, + errorMessage, + isDisabled, + isInvalid, + isReadOnly, + isRequired, + label +}: DateFieldPlaygroundExampleProps) { + return ( + + ); +} diff --git a/packages/@godaddy/antares/components/date-field/examples/disabled-required-readonly.tsx b/packages/@godaddy/antares/components/date-field/examples/disabled-required-readonly.tsx new file mode 100644 index 000000000..a7ce5d2c8 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/disabled-required-readonly.tsx @@ -0,0 +1,12 @@ +import { parseDate } from '@internationalized/date'; +import { Flex, DateField } from '@godaddy/antares'; + +export function DateFieldDisabledRequiredReadOnlyExample() { + return ( + + + + + + ); +} diff --git a/packages/@godaddy/antares/components/date-field/examples/form.tsx b/packages/@godaddy/antares/components/date-field/examples/form.tsx new file mode 100644 index 000000000..f2c722143 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/form.tsx @@ -0,0 +1,26 @@ +import { type FormEvent, useState } from 'react'; +import { Button, DateField, Flex, Text } from '@godaddy/antares'; + +export function DateFieldFormExample() { + const [submitted, setSubmitted] = useState(null); + + function handleSubmit(event: FormEvent) { + event.preventDefault(); + const formData = new FormData(event.currentTarget); + setSubmitted(String(formData.get('startDate') ?? '')); + } + + return ( + + + + + {submitted !== null && ( + + Submitted: {submitted || '(empty)'} + + )} + + + ); +} diff --git a/packages/@godaddy/antares/components/date-field/examples/min-max.tsx b/packages/@godaddy/antares/components/date-field/examples/min-max.tsx new file mode 100644 index 000000000..bbbea9464 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/min-max.tsx @@ -0,0 +1,14 @@ +import { parseDate } from '@internationalized/date'; +import { DateField } from '@godaddy/antares'; + +export function DateFieldMinMaxExample() { + return ( + + ); +} diff --git a/packages/@godaddy/antares/components/date-field/examples/with-default-value.tsx b/packages/@godaddy/antares/components/date-field/examples/with-default-value.tsx new file mode 100644 index 000000000..2e4716586 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/with-default-value.tsx @@ -0,0 +1,6 @@ +import { parseDate } from '@internationalized/date'; +import { DateField } from '@godaddy/antares'; + +export function DateFieldWithDefaultValueExample() { + return ; +} diff --git a/packages/@godaddy/antares/components/date-field/examples/with-description.tsx b/packages/@godaddy/antares/components/date-field/examples/with-description.tsx new file mode 100644 index 000000000..996312776 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/with-description.tsx @@ -0,0 +1,5 @@ +import { DateField } from '@godaddy/antares'; + +export function DateFieldWithDescriptionExample() { + return ; +} diff --git a/packages/@godaddy/antares/components/date-field/examples/with-error.tsx b/packages/@godaddy/antares/components/date-field/examples/with-error.tsx new file mode 100644 index 000000000..d2c444d72 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/with-error.tsx @@ -0,0 +1,5 @@ +import { DateField } from '@godaddy/antares'; + +export function DateFieldWithErrorExample() { + return ; +} diff --git a/packages/@godaddy/antares/components/date-field/src/index.module.css b/packages/@godaddy/antares/components/date-field/src/index.module.css new file mode 100644 index 000000000..15176fee7 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/src/index.module.css @@ -0,0 +1,41 @@ +.dateInput { + display: flex; + flex: 1; + align-items: center; + padding-inline: var(--sp-md); + padding-block: var(--sp-md); + min-width: 0; + + &[data-disabled] { + cursor: not-allowed; + } +} + +.segment { + padding-inline: 1px; + font-variant-numeric: tabular-nums; + text-align: end; + outline: none; + border-radius: 2px; + + &[data-type="literal"] { + padding-inline: 0; + } + + &[data-placeholder] { + color: var(--fg-secondary, color-mix(in oklch, currentColor, transparent 40%)); + } + + &[data-focused] { + background: color-mix(in oklch, Highlight, transparent 80%); + color: inherit; + } + + &[data-invalid] { + color: var(--color-feedback-critical-strong, #ae1302); + } + + &[data-disabled] { + cursor: not-allowed; + } +} diff --git a/packages/@godaddy/antares/components/date-field/src/index.tsx b/packages/@godaddy/antares/components/date-field/src/index.tsx new file mode 100644 index 000000000..1ad0d3213 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/src/index.tsx @@ -0,0 +1,149 @@ +import type { CalendarDate } from '@internationalized/date'; +import { cx } from 'cva'; +import { + DateField as RACDateField, + DateInput as RACDateInput, + DateSegment as RACDateSegment, + type DateFieldProps as RACDateFieldProps +} from 'react-aria-components'; +import { FieldFrame, type FieldFrameProps } from '#components/_internal/field-frame'; +import styles from './index.module.css'; + +/** + * Props for the DateField component. + * + * Wraps React Aria {@link RACDateFieldProps} typed for `CalendarDate` (date-only, + * no time, no timezone). Adds Antares' label/description/error surface via + * {@link FieldFrame} and narrows `errorMessage` to `string` to match `TextField` + * and `NumberField`. + * + * @public + */ +export interface DateFieldProps + extends Omit, 'children' | 'errorMessage'>, + Pick { + /** + * Selected date value (controlled). Pass a `CalendarDate` from `@internationalized/date`. + * + * @example + * import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; + * + * + * + * @see https://react-spectrum.adobe.com/react-aria/DateField.html#value + */ + value?: CalendarDate | null; + + /** + * Default date value (uncontrolled). Pass a `CalendarDate` from `@internationalized/date`. + * + * @example + * import { parseDate } from '@internationalized/date'; + * + * + * @see https://react-spectrum.adobe.com/react-aria/DateField.html#value + */ + defaultValue?: CalendarDate | null; + + /** + * Absolute lower bound. Disables out-of-range typed entry. + * + * @example + * import { parseDate } from '@internationalized/date'; + * + * + * @see https://react-spectrum.adobe.com/react-aria/DateField.html#minimum-and-maximum-values + */ + minValue?: CalendarDate; + + /** + * Absolute upper bound. Disables out-of-range typed entry. + * + * @example + * import { parseDate } from '@internationalized/date'; + * + * + * @see https://react-spectrum.adobe.com/react-aria/DateField.html#minimum-and-maximum-values + */ + maxValue?: CalendarDate; + + /** + * Placeholder date used to hint the segments before a value is entered. + * + * @example + * import { parseDate } from '@internationalized/date'; + * + * + * @see https://react-spectrum.adobe.com/react-aria/DateField.html#placeholder-value + */ + placeholderValue?: CalendarDate; + + /** Helper text shown below the frame. */ + description?: string; + + /** Error message shown when invalid. Use with `isInvalid`. */ + errorMessage?: string; + + /** Label text shown above the frame. */ + label?: string; + + /** Whether the input is disabled. */ + isDisabled?: boolean; + + /** Whether the value is invalid. Use with `errorMessage`. */ + isInvalid?: boolean; + + /** Whether user input is required before form submission. */ + isRequired?: boolean; + + /** Whether the input is read-only. */ + isReadOnly?: boolean; + + /** Name of the underlying form element, used when submitting a form. */ + name?: string; + + /** Handler called when the value changes. */ + onChange?: RACDateFieldProps['onChange']; +} + +/** + * DateField is a segmented date input with editable Year, Month, and Day segments. + * It composes React Aria `DateField` with Antares' `FieldFrame` for + * label, description, and error message. + * + * Values are typed as `CalendarDate` from `@internationalized/date` — there is no + * time and no timezone. See the `Working with dates` README section for patterns. + * + * @param props - {@link DateFieldProps} + * + * @example + * ```tsx + * import { parseDate } from '@internationalized/date'; + * + * + * ``` + * + * @see https://react-spectrum.adobe.com/react-aria/DateField.html + */ +export function DateField(props: DateFieldProps) { + const { description, errorMessage, label, ...racProps } = props; + const { isDisabled, isRequired, isReadOnly } = racProps; + + return ( + + + + {(segment) => } + + + + ); +} diff --git a/packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap b/packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap new file mode 100644 index 000000000..25434c7f1 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap @@ -0,0 +1,9 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`@godaddy/antares > #DateField > #examples > renders basic example 1`] = `"
Start date
mmddyyyy
"`; + +exports[`@godaddy/antares > #DateField > #examples > renders controlled example 1`] = `"
Start date
3152024
Value: 2024-03-15"`; + +exports[`@godaddy/antares > #DateField > #examples > renders min-max example 1`] = `"
Booking date
6152024
Must fall within 2024.
"`; + +exports[`@godaddy/antares > #DateField > #examples > renders with-default-value example 1`] = `"
Start date
3152024
"`; diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx new file mode 100644 index 000000000..588e7a32d --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx @@ -0,0 +1,100 @@ +import assume from 'assume'; +import { describe, it } from 'vitest'; +import { render } from 'vitest-browser-react'; +import { userEvent } from 'vitest/browser'; +import { DateFieldBasicExample } from '../examples/basic.tsx'; +import { DateFieldControlledExample } from '../examples/controlled.tsx'; +import { DateFieldDisabledRequiredReadOnlyExample } from '../examples/disabled-required-readonly.tsx'; +import { DateFieldFormExample } from '../examples/form.tsx'; +import { DateFieldWithDefaultValueExample } from '../examples/with-default-value.tsx'; +import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; + +describe('@godaddy/antares', function antares() { + describe('#DateField', function dateField() { + describe('#basic', function basic() { + it('renders label and editable segments', async function renders() { + const { locator, container } = await render(); + + assume(locator.getByText('Start date').element()).exists(); + assume(container.querySelectorAll('[data-type="month"]').length).is.at.least(1); + assume(container.querySelectorAll('[data-type="day"]').length).is.at.least(1); + assume(container.querySelectorAll('[data-type="year"]').length).is.at.least(1); + }); + }); + + describe('#withDefaultValue', function withDefaultValue() { + it('populates segments from a CalendarDate default', async function defaults() { + const { container } = await render(); + const text = container.textContent ?? ''; + + assume(text).contains('2024'); + assume(text).contains('15'); + }); + }); + + describe('#controlled', function controlled() { + it('shows the controlled value as ISO string', async function shows() { + const { locator } = await render(); + + assume(locator.getByText(/2024-03-15/).element()).exists(); + }); + }); + + describe('#withError', function withError() { + it('renders error message and data-invalid', async function invalid() { + const { locator, container } = await render(); + + assume(locator.getByText('Please enter a valid date.').element()).exists(); + assume(container.querySelector('[data-invalid="true"]')).exists(); + }); + }); + + describe('#disabledRequiredReadonly', function disabledRequiredReadonly() { + it('renders disabled, required, and read-only states', async function states() { + const { container } = await render(); + + assume(container.querySelector('[data-disabled="true"]')).exists(); + assume(container.querySelector('[data-readonly="true"]')).exists(); + assume(container.querySelector('[data-required="true"]')).exists(); + }); + }); + + describe('#keyboard', function keyboard() { + it('arrow up increments the focused segment', async function arrowUp() { + const { container } = await render(); + const monthSegment = container.querySelector('[data-type="month"]'); + + assume(monthSegment).exists(); + monthSegment?.focus(); + await userEvent.keyboard('{ArrowUp}'); + + // Default month is 03 (March); after ArrowUp should read 4 (April). + assume(monthSegment?.textContent).contains('4'); + }); + }); + + describe('#form', function form() { + it('submits an ISO date string under the name prop', async function submits() { + const { container, locator } = await render(); + const yearSegment = container.querySelector('[data-type="year"]'); + const monthSegment = container.querySelector('[data-type="month"]'); + const daySegment = container.querySelector('[data-type="day"]'); + + assume(yearSegment).exists(); + assume(monthSegment).exists(); + assume(daySegment).exists(); + + monthSegment?.focus(); + await userEvent.keyboard('03'); + daySegment?.focus(); + await userEvent.keyboard('15'); + yearSegment?.focus(); + await userEvent.keyboard('2024'); + + await locator.getByRole('button', { name: 'Submit' }).click(); + + assume(locator.getByText(/2024-03-15/).element()).exists(); + }); + }); + }); +}); diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx new file mode 100644 index 000000000..a5ba82e04 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx @@ -0,0 +1,52 @@ +import { describe, expect, it } from 'vitest'; +import { renderToString } from 'react-dom/server'; +import { DateFieldBasicExample } from '../examples/basic.tsx'; +import { DateFieldControlledExample } from '../examples/controlled.tsx'; +import { DateFieldDisabledRequiredReadOnlyExample } from '../examples/disabled-required-readonly.tsx'; +import { DateFieldMinMaxExample } from '../examples/min-max.tsx'; +import { DateFieldWithDefaultValueExample } from '../examples/with-default-value.tsx'; +import { DateFieldWithDescriptionExample } from '../examples/with-description.tsx'; +import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; + +describe('@godaddy/antares', function antares() { + describe('#DateField', function dateField() { + describe('#examples', function examples() { + it('renders basic example', function basic() { + const result = renderToString(); + expect(result).toMatchSnapshot(); + }); + + it('renders with-default-value example', function withDefault() { + const result = renderToString(); + expect(result).toContain('2024'); + expect(result).toMatchSnapshot(); + }); + + it('renders controlled example', function controlled() { + const result = renderToString(); + expect(result).toMatchSnapshot(); + }); + + it('renders with-description example', function withDescription() { + const result = renderToString(); + expect(result).toContain('subscription begins'); + }); + + it('renders with-error example', function withError() { + const result = renderToString(); + expect(result).toContain('data-invalid'); + }); + + it('renders min-max example', function minMax() { + const result = renderToString(); + expect(result).toMatchSnapshot(); + }); + + it('renders disabled-required-readonly example', function dro() { + const result = renderToString(); + expect(result).toContain('data-disabled'); + expect(result).toContain('data-readonly'); + }); + }); + }); +}); diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx new file mode 100644 index 000000000..5eda985df --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx @@ -0,0 +1,24 @@ +import { describe, expect, it } from 'vitest'; +import { render } from 'vitest-browser-react'; +import { DateFieldDisabledRequiredReadOnlyExample } from '../examples/disabled-required-readonly.tsx'; +import { DateFieldWithDefaultValueExample } from '../examples/with-default-value.tsx'; +import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; + +describe('@godaddy/antares', function antares() { + describe('#DateField', function dateFieldTests() { + it('default example', async function defaultRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('default'); + }); + + it('with-error example', async function withErrorRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('with-error'); + }); + + it('disabled-required-readonly example', async function disabledRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('disabled-required-readonly'); + }); + }); +}); diff --git a/packages/@godaddy/antares/exports/DateField.ts b/packages/@godaddy/antares/exports/DateField.ts new file mode 100644 index 000000000..6028f6dd7 --- /dev/null +++ b/packages/@godaddy/antares/exports/DateField.ts @@ -0,0 +1 @@ +export { DateField, type DateFieldProps } from '#components/date-field'; diff --git a/packages/@godaddy/antares/index.ts b/packages/@godaddy/antares/index.ts index d2a337be4..ec32aad89 100644 --- a/packages/@godaddy/antares/index.ts +++ b/packages/@godaddy/antares/index.ts @@ -61,6 +61,8 @@ export { TextField, type TextFieldProps } from '#components/text-field'; export { NumberField, type NumberFieldProps } from '#components/number-field'; +export { DateField, type DateFieldProps } from '#components/date-field'; + export { Carousel, type CarouselProps, type CarouselRef } from '#components/carousel'; export { Pagination, type PaginationProps } from '#components/pagination'; diff --git a/packages/@godaddy/antares/package.json b/packages/@godaddy/antares/package.json index 56c590492..63ba337d3 100644 --- a/packages/@godaddy/antares/package.json +++ b/packages/@godaddy/antares/package.json @@ -43,6 +43,7 @@ "@bento/icon": "^0.2.0", "@bento/svg-parser": "^0.1.1", "@bento/use-data-attributes": "^0.1.1", + "@internationalized/date": "^3.12.2", "@react-aria/focus": "^3.22.0", "@react-aria/utils": "^3.34.0", "@react-stately/utils": "^3.12.0", diff --git a/plans/date-components.md b/plans/date-components.md new file mode 100644 index 000000000..8e380d67a --- /dev/null +++ b/plans/date-components.md @@ -0,0 +1,306 @@ +# Plan: Date Components + +Execution plan for the date-input component family (DateField, DatePicker, DateRangePicker, Calendar, RangeCalendar). + +**Decisions / rationale:** [`docs/pdrs/antares/date-components.md`](../docs/pdrs/antares/date-components.md) +**Ticket:** [UXP-11890](https://godaddy-corp.atlassian.net/browse/UXP-11890) + +Three stacked PRs. PR 2 branches off PR 1, PR 3 branches off PR 2. Each PR is independently shippable. + +## Table of Contents + +- [PR 1 — `feat/date-field`](#pr-1--featdate-field) +- [PR 2 — `feat/calendar`](#pr-2--featcalendar) +- [PR 3 — `feat/date-picker`](#pr-3--featdate-picker) +- [Post-merge follow-ups](#post-merge-follow-ups) + +--- + +## PR 1 — `feat/date-field` + +**Branch:** `feat/date-field` from `main` +**Goal:** Stand-alone segmented date input. Closes the "DateField" portion of the AC. + +### Files to create + +``` +packages/@godaddy/antares/ + components/date-field/ + src/ + index.tsx # DateField component + index.module.css # styles + examples/ + basic.tsx + with-default-value.tsx + controlled.tsx + with-description.tsx + with-error.tsx + min-max.tsx + disabled-required-readonly.tsx + form.tsx + date-field-playground.tsx # matches text-field pattern + test/ + date-field.node.test.tsx + date-field.browser.test.tsx + date-field.visual.test.tsx + date-field.stories.tsx + README.mdx + exports/ + DateField.ts +``` + +### Files to modify + +- `packages/@godaddy/antares/package.json` — add `"@internationalized/date": "^3.x.x"` to dependencies (match the version RAC ships) +- `packages/@godaddy/antares/index.ts` — re-export from `./exports/DateField` + +### Implementation tasks + +- [ ] `src/index.tsx`: wrap RAC `DateField` with `FieldFrame`; mirror `TextField` / `NumberField` props pattern (`Omit, 'children'>` + `Pick`) +- [ ] JSDoc for every date-typed prop with `@example` (using `parseDate`) and `@see` link to RAC docs (PDR §Documentation Strategy) +- [ ] `errorMessage` typed as `string` only, NOT RAC's `string | (ValidationResult) => ReactNode` +- [ ] Styles: match Figma spec for segmented-input states (default, hover, focus, error, disabled, read-only) + +### Storybook tasks + +- [ ] 7 stories per PDR §Storybook Scope (Default, WithDefaultValue, Controlled, WithDescription/WithError, MinMax, Disabled/Required/ReadOnly, Form) +- [ ] Each story imports its source from `examples/*.tsx?raw` for `` blocks +- [ ] Story source uses literal `parseDate('...')` calls — no helper indirection + +### Test tasks + +`test:node` (~5 tests): +- [ ] Renders without throwing +- [ ] `value`, `defaultValue`, `name`, `isDisabled` pass through to RAC +- [ ] Type-level: `value={parseDate('2024-03-15')}` accepted; `value={new Date()}` rejected +- [ ] `errorMessage` type is `string`, not the RAC union + +`test:browser` (~5 tests): +- [ ] Typing valid date updates value; typing invalid input flips `isInvalid` and surfaces `errorMessage` +- [ ] `minValue` / `maxValue` reject out-of-range typed entry +- [ ] `isReadOnly` blocks edits but allows focus +- [ ] Form submission sends ISO date string under the `name` prop +- [ ] Keyboard: arrow keys move between segments; up/down adjust the focused segment + +`test:visual` (~3 snapshots): +- [ ] Default, WithError, Disabled + +### Documentation tasks + +- [ ] `README.mdx` matches existing pattern (Features, Installation, Props auto-generated, Examples) +- [ ] Brief "Working with dates" subsection linking to canonical version in `date-picker/README.mdx` (which lands in PR 3) — or, if PR 3 hasn't merged yet, inline the abbreviated version and replace with link in PR 3 + +### Definition of Done + +- [ ] All files above committed +- [ ] `pnpm test:node`, `pnpm test:browser`, `pnpm test:visual`, `pnpm typecheck`, `pnpm lint` all green +- [ ] Storybook builds; the 7 stories render +- [ ] `DateField` importable from `@godaddy/antares` +- [ ] PR description references PDR and lists the AC lines closed (the DateField subset only — pickers/calendar follow in PR 2/3) + +--- + +## PR 2 — `feat/calendar` + +**Branch:** `feat/calendar` from `feat/date-field` +**Goal:** Stand-alone Calendar + RangeCalendar with our header, indicators, and duration constraints. + +### Files to create + +``` +packages/@godaddy/antares/ + components/calendar/ + src/ + index.ts # barrel export + calendar.tsx # Calendar component + range-calendar.tsx # RangeCalendar component + calendar-header.tsx # shared Month + Year Select header + day-cell.tsx # shared day cell w/ indicator dots + get-year-range.ts # year-list derivation + index.module.css + examples/ + default.tsx + default-range.tsx + with-min-max.tsx + with-unavailable-dates.tsx + with-indicators.tsx + today-distinct.tsx + out-of-month-days.tsx + with-duration.tsx # range only — minDuration/maxDuration + test/ + calendar.node.test.tsx + calendar.browser.test.tsx + calendar.visual.test.tsx + calendar.stories.tsx + README.mdx + exports/ + Calendar.ts # exports Calendar + RangeCalendar +``` + +### Files to modify + +- `packages/@godaddy/antares/index.ts` — re-export from `./exports/Calendar` + +### Implementation tasks + +- [ ] `calendar-header.tsx`: replace RAC's default heading with two `Select` components (Month, Year). Selecting either fires `setFocusedDate` to update the visible calendar(s). +- [ ] `get-year-range.ts`: pure function `(minValue?, maxValue?, today) => number[]`. If either bound set, list those years inclusive; otherwise current year ± 100. +- [ ] `day-cell.tsx`: render day number; if `getDayIndicators` provided, render up to 3 dots underneath; slice to 3 with `console.warn` in dev when more returned; merge indicator `label`s into the cell's `aria-label`. +- [ ] Color: dot colors map to `var(--color-feedback--strong)` design tokens. +- [ ] `calendar.tsx`: wrap RAC `Calendar` with our header + day cell. Single month, `visibleDuration={{ months: 1 }}`. +- [ ] `range-calendar.tsx`: wrap RAC `RangeCalendar`. Two months side-by-side, `visibleDuration={{ months: 2 }}`. Out-of-month days hidden (NOT rendered, per AC). +- [ ] `minDuration` / `maxDuration` (RangeCalendar only): compute dynamic `isDateUnavailable` that ANDs the consumer's `isDateUnavailable` with duration constraints based on in-progress range start. +- [ ] Visual states: today, selected, in-range, today-also-in-range, today-also-selected — all distinguishable per Figma. +- [ ] Out-of-month rendering: 40% opacity + non-focusable + non-selectable in single mode; not rendered at all in range mode. +- [ ] Click-earlier-than-start in range: leave RAC default behavior (reset start) — no override needed. +- [ ] JSDoc + `@see` links on every public prop. + +### Storybook tasks + +- [ ] 7 stories per PDR §Storybook Scope (Default, DefaultRange, WithMinMax + WithUnavailableDates, WithIndicators, TodayDistinct, OutOfMonthDays, WithDuration) +- [ ] WithIndicators story should render at least one day with 1 dot, one with 2, one with 3, and one where the consumer returns 4 (to verify silent slice + dev warn). +- [ ] OutOfMonthDays story renders both single (showing 40% opacity) and range (showing days hidden) variants side-by-side. + +### Test tasks + +`test:node` (~10 tests): +- [ ] Calendar + RangeCalendar render without throwing +- [ ] Props pass through to RAC +- [ ] Type-level: `>`, range value shape `{ start, end }` +- [ ] `getYearRange` unit tests: with bounds, without bounds, with only `minValue`, with only `maxValue`, edge case where `minValue` year > `maxValue` year (should not crash) + +`test:browser` (~12 tests): +- [ ] Month `Select` change → visible month updates +- [ ] Year `Select` change → visible year updates +- [ ] Year `Select` options reflect derived year range when `minValue`/`maxValue` set +- [ ] `isDateUnavailable` disables matching days +- [ ] `minValue` / `maxValue` disable out-of-range days +- [ ] `getDayIndicators` returning 0/1/2/3 dots renders correctly +- [ ] `getDayIndicators` returning 4+ slices to 3 and fires `console.warn` in dev +- [ ] Indicator `label` shows up in day cell's `aria-label` +- [ ] RangeCalendar: `minDuration={{ days: 3 }}` disables end candidates within 2 days of start during in-progress pick +- [ ] RangeCalendar: `maxDuration={{ days: 7 }}` disables end candidates more than 7 days after start +- [ ] RangeCalendar: navigating left side advances right side; navigating right side rewinds left side; both stay adjacent +- [ ] RangeCalendar: out-of-month days are NOT in the DOM (queryByRole returns null for those days) +- [ ] Today + selected + in-range coexistence: when today is between start and end, both visual states are present in the DOM (verified by class names or data attributes) + +`test:visual` (~5 snapshots): +- [ ] WithIndicators, TodayDistinct, OutOfMonthDays (single), OutOfMonthDays (range), WithDuration + +### Documentation tasks + +- [ ] `README.mdx` per existing pattern. Both Calendar and RangeCalendar documented in one file. +- [ ] Brief "Working with dates" subsection linking to canonical version in `date-picker/README.mdx` (PR 3). + +### Definition of Done + +- [ ] All files committed +- [ ] All test runners green; `typecheck` and `lint` green +- [ ] Storybook builds; 7 stories render +- [ ] `Calendar` and `RangeCalendar` importable from `@godaddy/antares` +- [ ] PR description references PDR and lists the AC lines closed + +--- + +## PR 3 — `feat/date-picker` + +**Branch:** `feat/date-picker` from `feat/calendar` +**Goal:** Compose `DateField` + `Calendar` / `RangeCalendar` in popovers. Closes UXP-11890. + +### Files to create + +``` +packages/@godaddy/antares/ + components/date-picker/ + src/ + index.ts + date-picker.tsx + date-range-picker.tsx + index.module.css + examples/ + default.tsx + default-range.tsx + with-min-max.tsx + with-min-max-duration.tsx + with-unavailable-dates.tsx + with-indicators.tsx + with-error.tsx + controlled.tsx + placeholder-value.tsx + form.tsx + test/ + date-picker.node.test.tsx + date-picker.browser.test.tsx + date-picker.visual.test.tsx + date-picker.stories.tsx + README.mdx # canonical "Working with dates" lives here + exports/ + DatePicker.ts # exports DatePicker + DateRangePicker +``` + +### Files to modify + +- `packages/@godaddy/antares/index.ts` — re-export from `./exports/DatePicker` +- `packages/@godaddy/antares/components/date-field/README.mdx` — replace inline "Working with dates" with link to `date-picker/README.mdx` +- `packages/@godaddy/antares/components/calendar/README.mdx` — same replacement + +### Implementation tasks + +- [ ] `date-picker.tsx`: wrap RAC `DatePicker`. Composes `FieldFrame` + segmented input (reusing PR 1 `DateField` internals as appropriate) + Popover trigger button + `Calendar` from PR 2. +- [ ] `date-range-picker.tsx`: wrap RAC `DateRangePicker`. Two segmented inputs + Popover + `RangeCalendar`. +- [ ] Thread `getDayIndicators` through to inner Calendar / RangeCalendar. +- [ ] Thread `minValue` / `maxValue` through to both segmented inputs and inner calendar. +- [ ] Thread `minDuration` / `maxDuration` (range only) through to inner RangeCalendar. +- [ ] `errorMessage` constrained to `string`. +- [ ] Esc closes popover, outside-click closes popover, focus returns to trigger on close — verify RAC handles all of these out of the box. +- [ ] JSDoc + `@see` links on every public prop. + +### Storybook tasks + +- [ ] 10 stories per PDR §Storybook Scope (Default, DefaultRange, WithMinMax, WithMinMaxDuration, WithUnavailableDates, WithIndicators, WithError, Controlled, PlaceholderValue, Form) + +### Test tasks + +`test:node` (~10 tests): +- [ ] DatePicker + DateRangePicker render without throwing +- [ ] Props pass through to RAC +- [ ] Type-level checks for both single and range variants + +`test:browser` (~7 tests, focused on integration not redundant with PR 1/2): +- [ ] Opening DatePicker shows Calendar; selecting a day in Calendar updates the segmented input value +- [ ] Typed entry in segmented input updates the Calendar's selected day +- [ ] Esc closes popover; focus returns to trigger +- [ ] Outside-click closes popover +- [ ] DateRangePicker: selecting start in left calendar then end in right calendar updates both segmented inputs and closes the popover +- [ ] DateRangePicker: typed entry into either input parses and updates calendar selection +- [ ] Form submission sends ISO date string(s) + +`test:visual` (~2 snapshots): +- [ ] DatePicker open with Calendar visible, DateRangePicker open with RangeCalendar visible + +### Documentation tasks + +- [ ] `README.mdx` includes the **canonical** "Working with dates" section. Cover: + - Why `@internationalized/date` (not JS `Date`) + - It ships transitively — no install needed (with strict-pnpm caveat) + - 3 patterns: today, fixed date, controlled state + - Link to RAC docs and `@internationalized/date` docs + - `` requirement +- [ ] Update PR 1 / PR 2 READMEs to link here + +### Definition of Done + +- [ ] All files committed +- [ ] All test runners green; `typecheck` and `lint` green +- [ ] Storybook builds; 10 stories render +- [ ] `DatePicker` and `DateRangePicker` importable from `@godaddy/antares` +- [ ] All AC items in UXP-11890 verified — paste the AC checklist into the PR description with each item marked done and pointing to the story or test that verifies it +- [ ] UXP-11890 comment added with the two open questions (range click-earlier behavior, `` confirmation) — see Post-merge follow-ups + +--- + +## Post-merge follow-ups + +- [ ] Comment on UXP-11890: "Range click-earlier behavior currently ships with RAC's default reset-start. Design — please confirm or open a follow-up if swap-anchor is preferred." (Per PDR Open Question 1.) +- [ ] Update Antares Confluence component index to list DateField, DatePicker, DateRangePicker, Calendar, RangeCalendar. +- [ ] Close UXP-11890. From f17bc911136a0356e7ec9f63bdaa8100e57a811d Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Fri, 29 May 2026 18:26:20 -0500 Subject: [PATCH 02/20] chore: add changeset for DateField Co-Authored-By: Claude Opus 4.7 (1M context) --- .changeset/date-field-component.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/date-field-component.md diff --git a/.changeset/date-field-component.md b/.changeset/date-field-component.md new file mode 100644 index 000000000..1a554ef9b --- /dev/null +++ b/.changeset/date-field-component.md @@ -0,0 +1,5 @@ +--- +'@godaddy/antares': minor +--- + +feat(antares): add DateField component From c2dc804b7c58d4f2918ba2592308761390b0cd08 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Fri, 29 May 2026 18:37:07 -0500 Subject: [PATCH 03/20] refactor(antares): use Flex for DateField input layout Co-Authored-By: Claude Opus 4.7 (1M context) --- .../components/date-field/src/index.module.css | 5 ----- .../antares/components/date-field/src/index.tsx | 15 +++++++++++---- .../__snapshots__/date-field.node.test.tsx.snap | 8 ++++---- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/packages/@godaddy/antares/components/date-field/src/index.module.css b/packages/@godaddy/antares/components/date-field/src/index.module.css index 15176fee7..b1e4a9f30 100644 --- a/packages/@godaddy/antares/components/date-field/src/index.module.css +++ b/packages/@godaddy/antares/components/date-field/src/index.module.css @@ -1,9 +1,4 @@ .dateInput { - display: flex; - flex: 1; - align-items: center; - padding-inline: var(--sp-md); - padding-block: var(--sp-md); min-width: 0; &[data-disabled] { diff --git a/packages/@godaddy/antares/components/date-field/src/index.tsx b/packages/@godaddy/antares/components/date-field/src/index.tsx index 1ad0d3213..e98c1ae03 100644 --- a/packages/@godaddy/antares/components/date-field/src/index.tsx +++ b/packages/@godaddy/antares/components/date-field/src/index.tsx @@ -1,5 +1,4 @@ import type { CalendarDate } from '@internationalized/date'; -import { cx } from 'cva'; import { DateField as RACDateField, DateInput as RACDateInput, @@ -7,6 +6,7 @@ import { type DateFieldProps as RACDateFieldProps } from 'react-aria-components'; import { FieldFrame, type FieldFrameProps } from '#components/_internal/field-frame'; +import { Flex } from '#components/layout/flex'; import styles from './index.module.css'; /** @@ -140,9 +140,16 @@ export function DateField(props: DateFieldProps) { label={label} gap="sm" > - - {(segment) => } - + + {(segment) => } + ); diff --git a/packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap b/packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap index 25434c7f1..2315bdc90 100644 --- a/packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap +++ b/packages/@godaddy/antares/components/date-field/test/__snapshots__/date-field.node.test.tsx.snap @@ -1,9 +1,9 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`@godaddy/antares > #DateField > #examples > renders basic example 1`] = `"
Start date
mmddyyyy
"`; +exports[`@godaddy/antares > #DateField > #examples > renders basic example 1`] = `"
Start date
mmddyyyy
"`; -exports[`@godaddy/antares > #DateField > #examples > renders controlled example 1`] = `"
Start date
3152024
Value: 2024-03-15"`; +exports[`@godaddy/antares > #DateField > #examples > renders controlled example 1`] = `"
Start date
3152024
Value: 2024-03-15"`; -exports[`@godaddy/antares > #DateField > #examples > renders min-max example 1`] = `"
Booking date
6152024
Must fall within 2024.
"`; +exports[`@godaddy/antares > #DateField > #examples > renders min-max example 1`] = `"
Booking date
6152024
Must fall within 2024.
"`; -exports[`@godaddy/antares > #DateField > #examples > renders with-default-value example 1`] = `"
Start date
3152024
"`; +exports[`@godaddy/antares > #DateField > #examples > renders with-default-value example 1`] = `"
Start date
3152024
"`; From 4e4e678f939532d35b228065e52ce05c9f999f1b Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Fri, 29 May 2026 23:48:46 -0500 Subject: [PATCH 04/20] docs(antares): trim DateField docstrings Drop verbose @example/@see blocks on each prop and tighten the component summary, matching the TextField docstring style. --- .../components/date-field/src/index.tsx | 73 ++----------------- 1 file changed, 8 insertions(+), 65 deletions(-) diff --git a/packages/@godaddy/antares/components/date-field/src/index.tsx b/packages/@godaddy/antares/components/date-field/src/index.tsx index e98c1ae03..20140777d 100644 --- a/packages/@godaddy/antares/components/date-field/src/index.tsx +++ b/packages/@godaddy/antares/components/date-field/src/index.tsx @@ -9,73 +9,22 @@ import { FieldFrame, type FieldFrameProps } from '#components/_internal/field-fr import { Flex } from '#components/layout/flex'; import styles from './index.module.css'; -/** - * Props for the DateField component. - * - * Wraps React Aria {@link RACDateFieldProps} typed for `CalendarDate` (date-only, - * no time, no timezone). Adds Antares' label/description/error surface via - * {@link FieldFrame} and narrows `errorMessage` to `string` to match `TextField` - * and `NumberField`. - * - * @public - */ export interface DateFieldProps extends Omit, 'children' | 'errorMessage'>, Pick { - /** - * Selected date value (controlled). Pass a `CalendarDate` from `@internationalized/date`. - * - * @example - * import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; - * - * - * - * @see https://react-spectrum.adobe.com/react-aria/DateField.html#value - */ + /** Selected date value (controlled). */ value?: CalendarDate | null; - /** - * Default date value (uncontrolled). Pass a `CalendarDate` from `@internationalized/date`. - * - * @example - * import { parseDate } from '@internationalized/date'; - * - * - * @see https://react-spectrum.adobe.com/react-aria/DateField.html#value - */ + /** Default date value (uncontrolled). */ defaultValue?: CalendarDate | null; - /** - * Absolute lower bound. Disables out-of-range typed entry. - * - * @example - * import { parseDate } from '@internationalized/date'; - * - * - * @see https://react-spectrum.adobe.com/react-aria/DateField.html#minimum-and-maximum-values - */ + /** Absolute lower bound. Disables out-of-range typed entry. */ minValue?: CalendarDate; - /** - * Absolute upper bound. Disables out-of-range typed entry. - * - * @example - * import { parseDate } from '@internationalized/date'; - * - * - * @see https://react-spectrum.adobe.com/react-aria/DateField.html#minimum-and-maximum-values - */ + /** Absolute upper bound. Disables out-of-range typed entry. */ maxValue?: CalendarDate; - /** - * Placeholder date used to hint the segments before a value is entered. - * - * @example - * import { parseDate } from '@internationalized/date'; - * - * - * @see https://react-spectrum.adobe.com/react-aria/DateField.html#placeholder-value - */ + /** Placeholder date used to hint the segments before a value is entered. */ placeholderValue?: CalendarDate; /** Helper text shown below the frame. */ @@ -99,7 +48,7 @@ export interface DateFieldProps /** Whether the input is read-only. */ isReadOnly?: boolean; - /** Name of the underlying form element, used when submitting a form. */ + /** Name of the underlying form element. */ name?: string; /** Handler called when the value changes. */ @@ -107,12 +56,8 @@ export interface DateFieldProps } /** - * DateField is a segmented date input with editable Year, Month, and Day segments. - * It composes React Aria `DateField` with Antares' `FieldFrame` for - * label, description, and error message. - * - * Values are typed as `CalendarDate` from `@internationalized/date` — there is no - * time and no timezone. See the `Working with dates` README section for patterns. + * Segmented date input with editable Year/Month/Day segments, typed for `CalendarDate` + * (date-only, no time, no timezone). Wraps RAC `DateField` in antares `FieldFrame`. * * @param props - {@link DateFieldProps} * @@ -122,8 +67,6 @@ export interface DateFieldProps * * * ``` - * - * @see https://react-spectrum.adobe.com/react-aria/DateField.html */ export function DateField(props: DateFieldProps) { const { description, errorMessage, label, ...racProps } = props; From a82bb1e9f1e284ddab337f40688c118c7b521ac5 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 00:10:20 -0500 Subject: [PATCH 05/20] chore: stop tracking date-components plan and PDR --- docs/pdrs/antares/date-components.md | 364 --------------------------- plans/date-components.md | 306 ---------------------- 2 files changed, 670 deletions(-) delete mode 100644 docs/pdrs/antares/date-components.md delete mode 100644 plans/date-components.md diff --git a/docs/pdrs/antares/date-components.md b/docs/pdrs/antares/date-components.md deleted file mode 100644 index baae768d6..000000000 --- a/docs/pdrs/antares/date-components.md +++ /dev/null @@ -1,364 +0,0 @@ -# Date Components PDR - -Design review for the date-input component family in Antares: `DateField`, `DatePicker`, `DateRangePicker`, `Calendar`, and `RangeCalendar`. - -**Ticket:** [UXP-11890 — Antares Component: Date Field](https://godaddy-corp.atlassian.net/browse/UXP-11890) -**Figma:** [Date Input Specs](https://www.figma.com/design/RYm4VR8yECQH5X2RDL8rhp/branch/RBG1HnhLkuosywFb73CTzG/%F0%9F%93%90-Date-Input-Specs?node-id=0-1) - -## Table of Contents - -- [Context](#context) -- [Public API](#public-api) -- [Folder Structure](#folder-structure) -- [Value Types & Dependencies](#value-types--dependencies) -- [Validation Surface](#validation-surface) -- [`getDayIndicators` API](#getdayindicators-api) -- [Calendar Internals](#calendar-internals) -- [Granularity, Locale, and i18n](#granularity-locale-and-i18n) -- [Documentation Strategy](#documentation-strategy) -- [Storybook Scope](#storybook-scope) -- [Test Scope](#test-scope) -- [Implementation Sequencing](#implementation-sequencing) -- [Out of Scope / Non-Goals](#out-of-scope--non-goals) -- [Open Questions](#open-questions) -- [References](#references) - ---- - -## Context - -The ticket title says "Date Field" but the description matches what React Aria calls a `DatePicker` — a text input trigger plus a popover calendar flyout. Acceptance criteria require both Single and Double / Range variants, an exported `` sub-primitive, typed segment entry via React Aria, min/max bounds, min/max duration constraints (range only), per-day indicator dots, and full keyboard / screen-reader support. - -This PDR locks the public API and implementation conventions before code lands, so reviewers and design have one canonical reference. - -## Public API - -Five exports across three folders: - -| Export | Purpose | -| --- | --- | -| `DateField` | Segmented date input, no popover. Peer to `TextField` / `NumberField`. | -| `DatePicker` | `DateField` + button + `Calendar` in a popover. Single date selection. | -| `DateRangePicker` | Two `DateField`s + `RangeCalendar` in a popover. Range selection. | -| `Calendar` | Standalone calendar grid for single-date selection. | -| `RangeCalendar` | Standalone calendar grid for range selection. | - -Naming follows React Aria 1:1 to keep RAC docs reusable as a reference for our consumers. - -## Folder Structure - -Three folders under `packages/@godaddy/antares/components/`, each grouping a concept: - -``` -components/ - date-field/ → exports DateField - date-picker/ → exports DatePicker, DateRangePicker - calendar/ → exports Calendar, RangeCalendar -``` - -Three corresponding files under `exports/`: - -``` -exports/ - DateField.ts - DatePicker.ts → DatePicker + DateRangePicker - Calendar.ts → Calendar + RangeCalendar -``` - -This mirrors the `select/` pattern (multi-export folder for compound peers) for the picker and calendar pairs, and the `text-field/` pattern (single-export folder) for `DateField` as a sibling field input. - -## Value Types & Dependencies - -All five components are typed as `` (date-only — no time, no timezone). The value/onChange types come straight from React Aria Components: - -```ts -// DateField, DatePicker, Calendar -value?: CalendarDate | null; -onChange?: (value: CalendarDate | null) => void; - -// DateRangePicker, RangeCalendar -value?: { start: CalendarDate; end: CalendarDate } | null; -onChange?: (value: { start: CalendarDate; end: CalendarDate } | null) => void; -``` - -### Dependency classification - -`@internationalized/date` is a **direct dependency** of `@godaddy/antares` — matching `react-aria-components`. It is **not** a peer dep. - -Consumers do NOT add `@internationalized/date` to their `package.json`. They import from it directly: - -```ts -import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; -import { DatePicker } from '@godaddy/antares'; - - - -``` - -This works through npm/yarn hoisting. **Caveat for strict pnpm users:** if `node-linker=hoisted` is disabled, the consumer must add `@internationalized/date` to their own `package.json` explicitly. This is documented in the "Working with dates" README section. - -### Re-exports - -We do **not** re-export anything from `@internationalized/date` — neither values nor types. Adobe React Aria does not re-export it either. Re-exporting some helpers but not others creates an asymmetric surface that breaks down the moment a consumer needs a function we didn't pick. - -## Validation Surface - -| Prop | Source | Notes | -| --- | --- | --- | -| `minValue?: CalendarDate` | RAC passthrough | Absolute lower bound. Disables out-of-range days, rejects out-of-range typed entry. | -| `maxValue?: CalendarDate` | RAC passthrough | Absolute upper bound. | -| `minDuration?: DateDuration` | **New (ours)** | Range only. Duration constraint on the selection itself. Disables end-date candidates that violate during in-progress pick. | -| `maxDuration?: DateDuration` | **New (ours)** | Range only. | -| `isDateUnavailable?: (date: CalendarDate) => boolean` | RAC passthrough | Standard escape hatch (disable weekends, holidays, etc.). Available on all four grid-bearing components. | -| `validate?: (value) => string \| true \| null \| undefined` | RAC passthrough | Cross-field validation. | -| `isInvalid?: boolean` | RAC passthrough | Drives `FieldFrame` error styling. | -| `errorMessage?: string` | Narrowed from RAC | RAC supports `string \| (ValidationResult) => ReactNode`; we restrict to `string` to match `TextField` / `NumberField` and prevent UX drift. | -| `validationBehavior` | Not exposed | Use RAC default (`'native'`). | -| `name?: string` | RAC passthrough | Native form integration. | -| `placeholderValue?: CalendarDate` | RAC passthrough | Drives which month opens when the picker has no value. | -| `autoFocus`, `isDisabled`, `isReadOnly`, `isRequired`, `aria-*` | RAC passthrough | Same as `TextField` / `NumberField`. | - -### Implementation notes - -- `minDuration` / `maxDuration` are not in RAC. Implementation: compute a dynamic `isDateUnavailable` that wraps any consumer-supplied `isDateUnavailable` (logically OR them) based on the in-progress range start. -- `validationBehavior` stays at RAC's default to match `TextField` / `NumberField`, which also do not expose it. -- Cross-field "end after start" enforcement in `DateRangePicker` is handled internally by RAC; no extra prop. - -## `getDayIndicators` API - -Only first-class custom prop in this family. Renders up to **3 indicator dots** per day cell. - -```ts -type DayIndicator = { - /** Maps to the design-token color-feedback--strong palette. */ - color: 'critical' | 'highlight' | 'info' | 'passive' | 'success' | 'warning'; - /** Optional accessible label combined with the day's date label for screen readers. */ - label?: string; -}; - -type GetDayIndicators = (date: CalendarDate) => DayIndicator[]; - -// Available on: Calendar, RangeCalendar, DatePicker, DateRangePicker -getDayIndicators?: GetDayIndicators; -``` - -### Behavior rules - -- Function is called per visible day. Same calling convention as RAC's `isDateUnavailable` — same memoization story. -- Color is constrained to the design-system feedback palette. Raw color strings are rejected at the type level. -- `label` is optional; when present it becomes part of the day cell's accessible name (announced by screen readers). -- If a consumer returns more than 3 indicators, the array is sliced to the first 3 and a `console.warn` fires in development. AC is firm at 3. -- The prop is threaded through to the same Calendar grid used inside DatePicker / DateRangePicker. Same name, same shape, same semantics across all four grid-bearing components. - -## Calendar Internals - -Implementation rules locked here so the visual contract doesn't drift: - -| Concern | Rule | -| --- | --- | -| Header | Month and Year are both `Select` dropdowns. No free-text year entry. Header is **not customizable**; consumers who need a custom header should compose RAC directly. | -| Year range | Derived from `minValue` / `maxValue` if either is set. Otherwise defaults to current year ± 100. | -| Range mode visible duration | `visibleDuration={{ months: 2 }}` hardcoded — two side-by-side months. Right month always trails the left by exactly one. Navigating either side keeps them adjacent. | -| Single mode visible duration | `visibleDuration={{ months: 1 }}` hardcoded. | -| `pageBehavior` | Hardcoded to RAC default `'visible'`. Not exposed. | -| Out-of-month days (single) | Rendered at 40% opacity, not focusable, not selectable. | -| Out-of-month days (range / multi-month) | **Not rendered at all** (AC explicit). | -| "Today" visual state | Distinguished from selected; coexists correctly with selected and in-range states. | -| Range click-earlier behavior | RAC default: clicking a date earlier than the current start resets start to that date. (Design confirmation outstanding — see Open Questions.) | - -## Granularity, Locale, and i18n - -- **Date-only.** All five components are typed ``. No time, no timezone. The `granularity` prop is never surfaced. -- **Locale comes from ``** (the host app provides this). No per-component `locale` prop. No `firstDayOfWeek` or `weekdayStyle` props. -- The README "Working with dates" section notes the `` requirement. Platform team should confirm this provider is wrapped at the host-app level. - -## Documentation Strategy - -Three layers, in order of impact for consumers: - -### 1. JSDoc on every date-typed prop - -`value`, `defaultValue`, `minValue`, `maxValue`, `placeholderValue`, `isDateUnavailable`, etc. Each gets: - -```ts -/** - * Selected date value (controlled). Pass a `CalendarDate` from `@internationalized/date`. - * - * @example - * import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; - * - * - * - * @see https://react-spectrum.adobe.com/react-aria/DatePicker.html#value - */ -value?: CalendarDate | null; -``` - -This is the highest-leverage layer — most engineers never read READMEs but always hover types. - -### 2. README per folder - -One README each for `date-field`, `date-picker`, `calendar`. Standard sections matching existing components (Features, Installation, Props, Examples). - -The `date-picker` README adds a **"Working with dates"** section covering: -- Why `@internationalized/date` (not `Date`) -- How to import (`@internationalized/date` ships transitively — no install required, with a strict-pnpm caveat) -- Three patterns: today, fixed date, controlled state -- Link to RAC docs and `@internationalized/date` docs -- Note on host-app `` requirement - -The other two READMEs link out to this section rather than duplicating. - -### 3. Storybook stories with literal source - -Stories use `parseDate('...')` literally so the source is copy-pasteable. No helper functions hide the conversion. - -## Storybook Scope - -24 stories total, each mapping to an AC line. - -### `date-field.stories.tsx` (7 stories) - -1. `Default` — empty, with label -2. `WithDefaultValue` — uses `parseDate('2024-03-15')` -3. `Controlled` — useState pattern -4. `WithDescription` and `WithError` -5. `MinMax` — demonstrates rejection of out-of-range typed entry -6. `Disabled / Required / ReadOnly` -7. `Form` — wrapped in `
`, native validation - -### `date-picker.stories.tsx` (10 stories — covers DatePicker + DateRangePicker) - -1. `Default` (single) -2. `DefaultRange` -3. `WithMinMax` (single + range) -4. `WithMinMaxDuration` (range only) -5. `WithUnavailableDates` -6. `WithIndicators` — 1, 2, and 3 dots; demonstrates truncation -7. `WithError` -8. `Controlled` -9. `PlaceholderValue` -10. `Form` - -### `calendar.stories.tsx` (7 stories — covers Calendar + RangeCalendar) - -1. `Default` -2. `DefaultRange` -3. `WithMinMax` and `WithUnavailableDates` -4. `WithIndicators` -5. `TodayDistinct` — verifies today + selected + in-range coexist visually -6. `OutOfMonthDays` — single shows at 40% opacity, range hides them entirely -7. `WithDuration` - -## Test Scope - -Three layers. **Principle: don't re-test RAC.** RAC ships its own coverage for keyboard navigation, focus trap, popover dismissal, and segment editing. Our tests target our additions and integrations. - -### `test:node` — light (~25 tests total) - -- Each component renders without throwing -- Props pass through to RAC (`isDisabled`, `name`, `value`, etc.) -- Type-level: `DatePicker` accepts `parseDate('2024-03-15')`, rejects `new Date()` - -### `test:browser` — interaction-heavy (~24 tests total) - -1. `DateField` typed entry parses and updates value; invalid input flips `isInvalid` -2. `minValue` / `maxValue` rejects out-of-range typed entry; disables out-of-range days -3. `minDuration` / `maxDuration` disables end-date candidates that violate, during in-progress range pick -4. `isDateUnavailable` disables matching days; coexists with `minValue`/`maxValue` (logical AND) -5. `getDayIndicators`: 0, 1, 2, 3 dots render correctly; 4+ slices to 3 and dev `console.warn` fires -6. Indicator `label` appears in day cell's accessible name -7. Month / Year `Select` header — changing either updates visible calendar(s) -8. Year range derivation — with `minValue`/`maxValue` set, year `Select` only shows in-range years -9. Range adjacency — navigating left side keeps right side trailing by exactly one month; same in reverse; year-boundary edge cases -10. Out-of-month rendering — single = reduced opacity, range = not rendered -11. Today + selected + in-range coexistence -12. Form submission — `` with named `DatePicker` submits ISO date string - -The `minDuration`/`maxDuration` and adjacency tests are notably more involved than the rest (~3-4h each vs. ~15min). They are not optional — cutting them would make the component fragile in exactly the spots where bugs would be hardest to catch in review. - -### `test:visual` — curated screenshot regression - -Snapshots auto-generated from a curated subset of stories — primarily the visual-AC stories: `TodayDistinct`, `OutOfMonthDays`, `WithIndicators`, `DefaultRange`, `WithError`. ~10 visual snapshots. - -If CI flake on `test:visual` becomes a cost center, drop visual coverage **only** for stories already covered by browser interaction tests. Keep visual tests for stories that are fundamentally visual. - -## Implementation Sequencing - -Three stacked PRs in dependency order. PRs 2 and 3 branch off the previous one. - -### PR 1 — `feat/date-field` - -Stand-alone usable on merge. - -- `components/date-field/` (component + styles) -- `exports/DateField.ts` -- `date-field.stories.tsx` + 7 example files -- `date-field/test/` — node, browser, visual -- `date-field/README.mdx` - -### PR 2 — `feat/calendar` (branched from PR 1) - -Stand-alone usable on merge. - -- `components/calendar/` — `Calendar` + `RangeCalendar` -- Month/Year `Select` header -- `getDayIndicators` rendering -- `minDuration` / `maxDuration` enforcement (RangeCalendar only) -- Today / in-range / out-of-month visual states -- `exports/Calendar.ts` -- `calendar.stories.tsx` + 7 example files -- `calendar/test/` — node, browser, visual -- `calendar/README.mdx` - -### PR 3 — `feat/date-picker` (branched from PR 2) - -Closes UXP-11890. - -- `components/date-picker/` — `DatePicker` + `DateRangePicker`, composing `DateField` + `Calendar` / `RangeCalendar` in a popover -- Threading `getDayIndicators`, `minDuration`/`maxDuration`, validation through to inner components -- `exports/DatePicker.ts` -- `date-picker.stories.tsx` + 10 example files -- `date-picker/test/` — node, browser, visual -- `date-picker/README.mdx` (includes "Working with dates" canonical section) - -## Out of Scope / Non-Goals - -Explicitly **not** in v1, to deflect scope-creep during review: - -- ❌ Time / date+time / timezone-aware values (`>`) -- ❌ `granularity` prop -- ❌ Per-component `locale` prop (use ``) -- ❌ Custom day rendering or day slot (only `getDayIndicators` for marker dots) -- ❌ Custom calendar header (Month + Year `Select`s are fixed) -- ❌ `firstDayOfWeek` prop (comes from locale) -- ❌ `weekdayStyle` prop (comes from locale) -- ❌ Re-exporting types or values from `@internationalized/date` -- ❌ Convenience props like `today` / `tomorrow` defaults (consumer uses `today(getLocalTimeZone())`) -- ❌ Range "swap-anchor" behavior (RAC default reset-start only; design confirms post-launch) -- ❌ Inline (always-open) calendar variant of `DatePicker` — consumer composes `DateField` + `Calendar` themselves -- ❌ Multiple-date selection (non-contiguous) -- ❌ Year-only or month-only pickers - -## Open Questions - -| # | Question | Default for v1 | Owner | -| --- | --- | --- | --- | -| 1 | Range click-earlier behavior — reset-start (RAC default) vs. swap-anchor? | Reset-start (RAC default) | Design (to confirm post-launch) | -| 2 | Is `` already wrapped at the host-app level? | Assume yes (RAC is already a peer dep) | Platform team | - -Both are flagged in the corresponding PR description. Neither is a v1 blocker; default behaviors ship and either can change in a follow-up if needed. - -## References - -- **Ticket:** [UXP-11890](https://godaddy-corp.atlassian.net/browse/UXP-11890) -- **Figma:** [Date Input Specs](https://www.figma.com/design/RYm4VR8yECQH5X2RDL8rhp/branch/RBG1HnhLkuosywFb73CTzG/%F0%9F%93%90-Date-Input-Specs?node-id=0-1) -- **React Aria Components:** - - [DatePicker](https://react-spectrum.adobe.com/react-aria/DatePicker.html) - - [DateRangePicker](https://react-spectrum.adobe.com/react-aria/DateRangePicker.html) - - [DateField](https://react-spectrum.adobe.com/react-aria/DateField.html) - - [Calendar](https://react-spectrum.adobe.com/react-aria/Calendar.html) - - [RangeCalendar](https://react-spectrum.adobe.com/react-aria/RangeCalendar.html) -- **`@internationalized/date`:** - - [Overview](https://react-spectrum.adobe.com/internationalized/date/index.html) - - [`CalendarDate`](https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html) diff --git a/plans/date-components.md b/plans/date-components.md deleted file mode 100644 index 8e380d67a..000000000 --- a/plans/date-components.md +++ /dev/null @@ -1,306 +0,0 @@ -# Plan: Date Components - -Execution plan for the date-input component family (DateField, DatePicker, DateRangePicker, Calendar, RangeCalendar). - -**Decisions / rationale:** [`docs/pdrs/antares/date-components.md`](../docs/pdrs/antares/date-components.md) -**Ticket:** [UXP-11890](https://godaddy-corp.atlassian.net/browse/UXP-11890) - -Three stacked PRs. PR 2 branches off PR 1, PR 3 branches off PR 2. Each PR is independently shippable. - -## Table of Contents - -- [PR 1 — `feat/date-field`](#pr-1--featdate-field) -- [PR 2 — `feat/calendar`](#pr-2--featcalendar) -- [PR 3 — `feat/date-picker`](#pr-3--featdate-picker) -- [Post-merge follow-ups](#post-merge-follow-ups) - ---- - -## PR 1 — `feat/date-field` - -**Branch:** `feat/date-field` from `main` -**Goal:** Stand-alone segmented date input. Closes the "DateField" portion of the AC. - -### Files to create - -``` -packages/@godaddy/antares/ - components/date-field/ - src/ - index.tsx # DateField component - index.module.css # styles - examples/ - basic.tsx - with-default-value.tsx - controlled.tsx - with-description.tsx - with-error.tsx - min-max.tsx - disabled-required-readonly.tsx - form.tsx - date-field-playground.tsx # matches text-field pattern - test/ - date-field.node.test.tsx - date-field.browser.test.tsx - date-field.visual.test.tsx - date-field.stories.tsx - README.mdx - exports/ - DateField.ts -``` - -### Files to modify - -- `packages/@godaddy/antares/package.json` — add `"@internationalized/date": "^3.x.x"` to dependencies (match the version RAC ships) -- `packages/@godaddy/antares/index.ts` — re-export from `./exports/DateField` - -### Implementation tasks - -- [ ] `src/index.tsx`: wrap RAC `DateField` with `FieldFrame`; mirror `TextField` / `NumberField` props pattern (`Omit, 'children'>` + `Pick`) -- [ ] JSDoc for every date-typed prop with `@example` (using `parseDate`) and `@see` link to RAC docs (PDR §Documentation Strategy) -- [ ] `errorMessage` typed as `string` only, NOT RAC's `string | (ValidationResult) => ReactNode` -- [ ] Styles: match Figma spec for segmented-input states (default, hover, focus, error, disabled, read-only) - -### Storybook tasks - -- [ ] 7 stories per PDR §Storybook Scope (Default, WithDefaultValue, Controlled, WithDescription/WithError, MinMax, Disabled/Required/ReadOnly, Form) -- [ ] Each story imports its source from `examples/*.tsx?raw` for `` blocks -- [ ] Story source uses literal `parseDate('...')` calls — no helper indirection - -### Test tasks - -`test:node` (~5 tests): -- [ ] Renders without throwing -- [ ] `value`, `defaultValue`, `name`, `isDisabled` pass through to RAC -- [ ] Type-level: `value={parseDate('2024-03-15')}` accepted; `value={new Date()}` rejected -- [ ] `errorMessage` type is `string`, not the RAC union - -`test:browser` (~5 tests): -- [ ] Typing valid date updates value; typing invalid input flips `isInvalid` and surfaces `errorMessage` -- [ ] `minValue` / `maxValue` reject out-of-range typed entry -- [ ] `isReadOnly` blocks edits but allows focus -- [ ] Form submission sends ISO date string under the `name` prop -- [ ] Keyboard: arrow keys move between segments; up/down adjust the focused segment - -`test:visual` (~3 snapshots): -- [ ] Default, WithError, Disabled - -### Documentation tasks - -- [ ] `README.mdx` matches existing pattern (Features, Installation, Props auto-generated, Examples) -- [ ] Brief "Working with dates" subsection linking to canonical version in `date-picker/README.mdx` (which lands in PR 3) — or, if PR 3 hasn't merged yet, inline the abbreviated version and replace with link in PR 3 - -### Definition of Done - -- [ ] All files above committed -- [ ] `pnpm test:node`, `pnpm test:browser`, `pnpm test:visual`, `pnpm typecheck`, `pnpm lint` all green -- [ ] Storybook builds; the 7 stories render -- [ ] `DateField` importable from `@godaddy/antares` -- [ ] PR description references PDR and lists the AC lines closed (the DateField subset only — pickers/calendar follow in PR 2/3) - ---- - -## PR 2 — `feat/calendar` - -**Branch:** `feat/calendar` from `feat/date-field` -**Goal:** Stand-alone Calendar + RangeCalendar with our header, indicators, and duration constraints. - -### Files to create - -``` -packages/@godaddy/antares/ - components/calendar/ - src/ - index.ts # barrel export - calendar.tsx # Calendar component - range-calendar.tsx # RangeCalendar component - calendar-header.tsx # shared Month + Year Select header - day-cell.tsx # shared day cell w/ indicator dots - get-year-range.ts # year-list derivation - index.module.css - examples/ - default.tsx - default-range.tsx - with-min-max.tsx - with-unavailable-dates.tsx - with-indicators.tsx - today-distinct.tsx - out-of-month-days.tsx - with-duration.tsx # range only — minDuration/maxDuration - test/ - calendar.node.test.tsx - calendar.browser.test.tsx - calendar.visual.test.tsx - calendar.stories.tsx - README.mdx - exports/ - Calendar.ts # exports Calendar + RangeCalendar -``` - -### Files to modify - -- `packages/@godaddy/antares/index.ts` — re-export from `./exports/Calendar` - -### Implementation tasks - -- [ ] `calendar-header.tsx`: replace RAC's default heading with two `Select` components (Month, Year). Selecting either fires `setFocusedDate` to update the visible calendar(s). -- [ ] `get-year-range.ts`: pure function `(minValue?, maxValue?, today) => number[]`. If either bound set, list those years inclusive; otherwise current year ± 100. -- [ ] `day-cell.tsx`: render day number; if `getDayIndicators` provided, render up to 3 dots underneath; slice to 3 with `console.warn` in dev when more returned; merge indicator `label`s into the cell's `aria-label`. -- [ ] Color: dot colors map to `var(--color-feedback--strong)` design tokens. -- [ ] `calendar.tsx`: wrap RAC `Calendar` with our header + day cell. Single month, `visibleDuration={{ months: 1 }}`. -- [ ] `range-calendar.tsx`: wrap RAC `RangeCalendar`. Two months side-by-side, `visibleDuration={{ months: 2 }}`. Out-of-month days hidden (NOT rendered, per AC). -- [ ] `minDuration` / `maxDuration` (RangeCalendar only): compute dynamic `isDateUnavailable` that ANDs the consumer's `isDateUnavailable` with duration constraints based on in-progress range start. -- [ ] Visual states: today, selected, in-range, today-also-in-range, today-also-selected — all distinguishable per Figma. -- [ ] Out-of-month rendering: 40% opacity + non-focusable + non-selectable in single mode; not rendered at all in range mode. -- [ ] Click-earlier-than-start in range: leave RAC default behavior (reset start) — no override needed. -- [ ] JSDoc + `@see` links on every public prop. - -### Storybook tasks - -- [ ] 7 stories per PDR §Storybook Scope (Default, DefaultRange, WithMinMax + WithUnavailableDates, WithIndicators, TodayDistinct, OutOfMonthDays, WithDuration) -- [ ] WithIndicators story should render at least one day with 1 dot, one with 2, one with 3, and one where the consumer returns 4 (to verify silent slice + dev warn). -- [ ] OutOfMonthDays story renders both single (showing 40% opacity) and range (showing days hidden) variants side-by-side. - -### Test tasks - -`test:node` (~10 tests): -- [ ] Calendar + RangeCalendar render without throwing -- [ ] Props pass through to RAC -- [ ] Type-level: `>`, range value shape `{ start, end }` -- [ ] `getYearRange` unit tests: with bounds, without bounds, with only `minValue`, with only `maxValue`, edge case where `minValue` year > `maxValue` year (should not crash) - -`test:browser` (~12 tests): -- [ ] Month `Select` change → visible month updates -- [ ] Year `Select` change → visible year updates -- [ ] Year `Select` options reflect derived year range when `minValue`/`maxValue` set -- [ ] `isDateUnavailable` disables matching days -- [ ] `minValue` / `maxValue` disable out-of-range days -- [ ] `getDayIndicators` returning 0/1/2/3 dots renders correctly -- [ ] `getDayIndicators` returning 4+ slices to 3 and fires `console.warn` in dev -- [ ] Indicator `label` shows up in day cell's `aria-label` -- [ ] RangeCalendar: `minDuration={{ days: 3 }}` disables end candidates within 2 days of start during in-progress pick -- [ ] RangeCalendar: `maxDuration={{ days: 7 }}` disables end candidates more than 7 days after start -- [ ] RangeCalendar: navigating left side advances right side; navigating right side rewinds left side; both stay adjacent -- [ ] RangeCalendar: out-of-month days are NOT in the DOM (queryByRole returns null for those days) -- [ ] Today + selected + in-range coexistence: when today is between start and end, both visual states are present in the DOM (verified by class names or data attributes) - -`test:visual` (~5 snapshots): -- [ ] WithIndicators, TodayDistinct, OutOfMonthDays (single), OutOfMonthDays (range), WithDuration - -### Documentation tasks - -- [ ] `README.mdx` per existing pattern. Both Calendar and RangeCalendar documented in one file. -- [ ] Brief "Working with dates" subsection linking to canonical version in `date-picker/README.mdx` (PR 3). - -### Definition of Done - -- [ ] All files committed -- [ ] All test runners green; `typecheck` and `lint` green -- [ ] Storybook builds; 7 stories render -- [ ] `Calendar` and `RangeCalendar` importable from `@godaddy/antares` -- [ ] PR description references PDR and lists the AC lines closed - ---- - -## PR 3 — `feat/date-picker` - -**Branch:** `feat/date-picker` from `feat/calendar` -**Goal:** Compose `DateField` + `Calendar` / `RangeCalendar` in popovers. Closes UXP-11890. - -### Files to create - -``` -packages/@godaddy/antares/ - components/date-picker/ - src/ - index.ts - date-picker.tsx - date-range-picker.tsx - index.module.css - examples/ - default.tsx - default-range.tsx - with-min-max.tsx - with-min-max-duration.tsx - with-unavailable-dates.tsx - with-indicators.tsx - with-error.tsx - controlled.tsx - placeholder-value.tsx - form.tsx - test/ - date-picker.node.test.tsx - date-picker.browser.test.tsx - date-picker.visual.test.tsx - date-picker.stories.tsx - README.mdx # canonical "Working with dates" lives here - exports/ - DatePicker.ts # exports DatePicker + DateRangePicker -``` - -### Files to modify - -- `packages/@godaddy/antares/index.ts` — re-export from `./exports/DatePicker` -- `packages/@godaddy/antares/components/date-field/README.mdx` — replace inline "Working with dates" with link to `date-picker/README.mdx` -- `packages/@godaddy/antares/components/calendar/README.mdx` — same replacement - -### Implementation tasks - -- [ ] `date-picker.tsx`: wrap RAC `DatePicker`. Composes `FieldFrame` + segmented input (reusing PR 1 `DateField` internals as appropriate) + Popover trigger button + `Calendar` from PR 2. -- [ ] `date-range-picker.tsx`: wrap RAC `DateRangePicker`. Two segmented inputs + Popover + `RangeCalendar`. -- [ ] Thread `getDayIndicators` through to inner Calendar / RangeCalendar. -- [ ] Thread `minValue` / `maxValue` through to both segmented inputs and inner calendar. -- [ ] Thread `minDuration` / `maxDuration` (range only) through to inner RangeCalendar. -- [ ] `errorMessage` constrained to `string`. -- [ ] Esc closes popover, outside-click closes popover, focus returns to trigger on close — verify RAC handles all of these out of the box. -- [ ] JSDoc + `@see` links on every public prop. - -### Storybook tasks - -- [ ] 10 stories per PDR §Storybook Scope (Default, DefaultRange, WithMinMax, WithMinMaxDuration, WithUnavailableDates, WithIndicators, WithError, Controlled, PlaceholderValue, Form) - -### Test tasks - -`test:node` (~10 tests): -- [ ] DatePicker + DateRangePicker render without throwing -- [ ] Props pass through to RAC -- [ ] Type-level checks for both single and range variants - -`test:browser` (~7 tests, focused on integration not redundant with PR 1/2): -- [ ] Opening DatePicker shows Calendar; selecting a day in Calendar updates the segmented input value -- [ ] Typed entry in segmented input updates the Calendar's selected day -- [ ] Esc closes popover; focus returns to trigger -- [ ] Outside-click closes popover -- [ ] DateRangePicker: selecting start in left calendar then end in right calendar updates both segmented inputs and closes the popover -- [ ] DateRangePicker: typed entry into either input parses and updates calendar selection -- [ ] Form submission sends ISO date string(s) - -`test:visual` (~2 snapshots): -- [ ] DatePicker open with Calendar visible, DateRangePicker open with RangeCalendar visible - -### Documentation tasks - -- [ ] `README.mdx` includes the **canonical** "Working with dates" section. Cover: - - Why `@internationalized/date` (not JS `Date`) - - It ships transitively — no install needed (with strict-pnpm caveat) - - 3 patterns: today, fixed date, controlled state - - Link to RAC docs and `@internationalized/date` docs - - `` requirement -- [ ] Update PR 1 / PR 2 READMEs to link here - -### Definition of Done - -- [ ] All files committed -- [ ] All test runners green; `typecheck` and `lint` green -- [ ] Storybook builds; 10 stories render -- [ ] `DatePicker` and `DateRangePicker` importable from `@godaddy/antares` -- [ ] All AC items in UXP-11890 verified — paste the AC checklist into the PR description with each item marked done and pointing to the story or test that verifies it -- [ ] UXP-11890 comment added with the two open questions (range click-earlier behavior, `` confirmation) — see Post-merge follow-ups - ---- - -## Post-merge follow-ups - -- [ ] Comment on UXP-11890: "Range click-earlier behavior currently ships with RAC's default reset-start. Design — please confirm or open a follow-up if swap-anchor is preferred." (Per PDR Open Question 1.) -- [ ] Update Antares Confluence component index to list DateField, DatePicker, DateRangePicker, Calendar, RangeCalendar. -- [ ] Close UXP-11890. From 5d7efea5f899d8fc3b80f2ddffcb48282424d993 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 14:15:08 -0500 Subject: [PATCH 06/20] docs(antares): clarify DateField scope and simplify Working-with-dates --- .../antares/components/date-field/README.mdx | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/@godaddy/antares/components/date-field/README.mdx b/packages/@godaddy/antares/components/date-field/README.mdx index c4a5fcab0..0e2bc16b5 100644 --- a/packages/@godaddy/antares/components/date-field/README.mdx +++ b/packages/@godaddy/antares/components/date-field/README.mdx @@ -1,6 +1,6 @@ --- title: DateField -description: DateField is a segmented date input with editable Year, Month, and Day segments. Use it in forms when the user needs to type a calendar date directly. Pair it with `DatePicker` when a popover calendar is also needed. +description: DateField is a segmented date input with editable Year, Month, and Day segments. Use it when users only need to type a date. If you also want a calendar popover, use `DatePicker` (or `DateRangePicker` for ranges) instead. --- import { ArgTypes, Meta, Source, Story } from '@storybook/addon-docs/blocks'; @@ -34,12 +34,18 @@ npm install --save @godaddy/antares ## Working with dates -DateField values are typed as `CalendarDate` from [`@internationalized/date`][int-date] — a date-only -type with no time and no timezone. `@internationalized/date` ships transitively with -`react-aria-components`, so most consumers do not need to add it to their `package.json`. +DateField values are typed as `CalendarDate` from [`@internationalized/date`][int-date] — a +date-only type with no time and no timezone. Install it alongside `@godaddy/antares`: -> **Strict pnpm note:** if your repo disables hoisting (`node-linker=hoisted` off), add -> `@internationalized/date` to your own `package.json` so the import resolves. +```bash +npm install @internationalized/date +``` + +We do not re-export anything from this package. Import directly: + +```ts +import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; +``` Three common patterns: @@ -58,8 +64,7 @@ const [value, setValue] = useState(parseDate('2024-03-15')); ``` -A canonical `Working with dates` section will live in the `DatePicker` README in a follow-up -PR — this section will then link there. Locale comes from a host-app ``. +Locale comes from a host-app ``. ## Props From 8cac9bcde5ae5b921669917ba98938c68f803056 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 14:27:53 -0500 Subject: [PATCH 07/20] docs(antares): make DateField the canonical Working-with-dates home --- .../antares/components/date-field/README.mdx | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/@godaddy/antares/components/date-field/README.mdx b/packages/@godaddy/antares/components/date-field/README.mdx index 0e2bc16b5..d1909123e 100644 --- a/packages/@godaddy/antares/components/date-field/README.mdx +++ b/packages/@godaddy/antares/components/date-field/README.mdx @@ -34,8 +34,20 @@ npm install --save @godaddy/antares ## Working with dates -DateField values are typed as `CalendarDate` from [`@internationalized/date`][int-date] — a -date-only type with no time and no timezone. Install it alongside `@godaddy/antares`: +Date components in Antares are typed for `CalendarDate` from +[`@internationalized/date`][int-date] — a date-only type with no time and no timezone. + +### Why `@internationalized/date`? + +JavaScript's built-in `Date` is a single timestamp that conflates calendar date, time of day, +and timezone. That's the wrong shape for "a calendar date" (e.g. a birthday or a booking date), +and round-tripping it through string parsers and `toISOString()` is the source of countless +off-by-one timezone bugs. `@internationalized/date` separates these concepts cleanly. Antares +date components only deal with `CalendarDate`. + +### Installation + +Install `@internationalized/date` alongside `@godaddy/antares`: ```bash npm install @internationalized/date @@ -47,7 +59,7 @@ We do not re-export anything from this package. Import directly: import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; ``` -Three common patterns: +### Three patterns ```tsx import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; @@ -64,7 +76,16 @@ const [value, setValue] = useState(parseDate('2024-03-15')); ``` -Locale comes from a host-app ``. +### Locale and i18n + +Locale comes from the host app's `` (a React Aria component). There is no +per-component `locale` prop. Segment formatting follows the active locale. + +### Further reading + +- [React Aria `DateField`](https://react-spectrum.adobe.com/react-aria/DateField.html) +- [`@internationalized/date` reference][int-date] +- [`CalendarDate`](https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html) ## Props From 8d4c9663baf9a41f139bf11597498417f8fcec8f Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 14:51:29 -0500 Subject: [PATCH 08/20] =?UTF-8?q?refactor(antares):=20trim=20DateField=20C?= =?UTF-8?q?SS=20=E2=80=94=20drop=20redundant=20cursors=20and=20--fg-second?= =?UTF-8?q?ary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../antares/components/date-field/src/index.module.css | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/@godaddy/antares/components/date-field/src/index.module.css b/packages/@godaddy/antares/components/date-field/src/index.module.css index b1e4a9f30..abec2e241 100644 --- a/packages/@godaddy/antares/components/date-field/src/index.module.css +++ b/packages/@godaddy/antares/components/date-field/src/index.module.css @@ -1,9 +1,5 @@ .dateInput { min-width: 0; - - &[data-disabled] { - cursor: not-allowed; - } } .segment { @@ -18,7 +14,7 @@ } &[data-placeholder] { - color: var(--fg-secondary, color-mix(in oklch, currentColor, transparent 40%)); + color: color-mix(in oklch, currentColor, transparent 40%); } &[data-focused] { @@ -29,8 +25,4 @@ &[data-invalid] { color: var(--color-feedback-critical-strong, #ae1302); } - - &[data-disabled] { - cursor: not-allowed; - } } From a9f01d975f0e2bedc88b358c4812fe338748345c Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 15:39:59 -0500 Subject: [PATCH 09/20] feat(antares): re-export I18nProvider from DateField --- .../antares/components/date-field/README.mdx | 40 ++++--------------- .../components/date-field/src/index.tsx | 2 + .../@godaddy/antares/exports/DateField.ts | 2 +- packages/@godaddy/antares/index.ts | 2 +- 4 files changed, 12 insertions(+), 34 deletions(-) diff --git a/packages/@godaddy/antares/components/date-field/README.mdx b/packages/@godaddy/antares/components/date-field/README.mdx index d1909123e..093251d5c 100644 --- a/packages/@godaddy/antares/components/date-field/README.mdx +++ b/packages/@godaddy/antares/components/date-field/README.mdx @@ -24,7 +24,7 @@ import SourceForm from './examples/form.tsx?raw'; - **Controlled or uncontrolled**: Use `value` and `onChange`, or `defaultValue` - **Range bounds**: `minValue` and `maxValue` reject out-of-range entry - **Form integration**: Submits an ISO date string when given a `name` prop -- **React Aria integration**: Built on React Aria DateField for accessibility, keyboard, and locale handling +- **Accessible by default**: Full keyboard support, ARIA semantics, and locale-aware segment handling ## Installation @@ -34,16 +34,16 @@ npm install --save @godaddy/antares ## Working with dates -Date components in Antares are typed for `CalendarDate` from -[`@internationalized/date`][int-date] — a date-only type with no time and no timezone. +Date components in Antares are typed for `CalendarDate` from `@internationalized/date` — a +date-only type with no time and no timezone. ### Why `@internationalized/date`? JavaScript's built-in `Date` is a single timestamp that conflates calendar date, time of day, and timezone. That's the wrong shape for "a calendar date" (e.g. a birthday or a booking date), and round-tripping it through string parsers and `toISOString()` is the source of countless -off-by-one timezone bugs. `@internationalized/date` separates these concepts cleanly. Antares -date components only deal with `CalendarDate`. +off-by-one timezone bugs. [`@internationalized/date`](https://react-spectrum.adobe.com/internationalized/date/index.html) +separates these concepts cleanly. Antares date components only deal with `CalendarDate`. ### Installation @@ -59,33 +59,11 @@ We do not re-export anything from this package. Import directly: import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; ``` -### Three patterns - -```tsx -import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; -import { DateField } from '@godaddy/antares'; - -// Fixed date - - -// Today - - -// Controlled -const [value, setValue] = useState(parseDate('2024-03-15')); - -``` - ### Locale and i18n -Locale comes from the host app's `` (a React Aria component). There is no -per-component `locale` prop. Segment formatting follows the active locale. - -### Further reading - -- [React Aria `DateField`](https://react-spectrum.adobe.com/react-aria/DateField.html) -- [`@internationalized/date` reference][int-date] -- [`CalendarDate`](https://react-spectrum.adobe.com/internationalized/date/CalendarDate.html) +Locale comes from the host app's ``, which Antares re-exports from +`@godaddy/antares`. There is no per-component `locale` prop. Segment formatting follows the +active locale. ## Props @@ -152,5 +130,3 @@ string (`YYYY-MM-DD`). - -[int-date]: https://react-spectrum.adobe.com/internationalized/date/index.html diff --git a/packages/@godaddy/antares/components/date-field/src/index.tsx b/packages/@godaddy/antares/components/date-field/src/index.tsx index 20140777d..498cecd0a 100644 --- a/packages/@godaddy/antares/components/date-field/src/index.tsx +++ b/packages/@godaddy/antares/components/date-field/src/index.tsx @@ -9,6 +9,8 @@ import { FieldFrame, type FieldFrameProps } from '#components/_internal/field-fr import { Flex } from '#components/layout/flex'; import styles from './index.module.css'; +export { I18nProvider, type I18nProviderProps } from 'react-aria-components'; + export interface DateFieldProps extends Omit, 'children' | 'errorMessage'>, Pick { diff --git a/packages/@godaddy/antares/exports/DateField.ts b/packages/@godaddy/antares/exports/DateField.ts index 6028f6dd7..0f1027484 100644 --- a/packages/@godaddy/antares/exports/DateField.ts +++ b/packages/@godaddy/antares/exports/DateField.ts @@ -1 +1 @@ -export { DateField, type DateFieldProps } from '#components/date-field'; +export { DateField, I18nProvider, type DateFieldProps, type I18nProviderProps } from '#components/date-field'; diff --git a/packages/@godaddy/antares/index.ts b/packages/@godaddy/antares/index.ts index 900c5e4a8..39a0b307e 100644 --- a/packages/@godaddy/antares/index.ts +++ b/packages/@godaddy/antares/index.ts @@ -61,7 +61,7 @@ export { TextField, type TextFieldProps } from '#components/text-field'; export { NumberField, type NumberFieldProps } from '#components/number-field'; -export { DateField, type DateFieldProps } from '#components/date-field'; +export { DateField, I18nProvider, type DateFieldProps, type I18nProviderProps } from '#components/date-field'; export { Carousel, type CarouselProps, type CarouselRef } from '#components/carousel'; From b0ed64eb400eb0d8161c557386ab3a1c35061151 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 16:11:09 -0500 Subject: [PATCH 10/20] docs(antares): clarify date string format in DateField documentation --- packages/@godaddy/antares/components/date-field/README.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/@godaddy/antares/components/date-field/README.mdx b/packages/@godaddy/antares/components/date-field/README.mdx index 093251d5c..2b6b92d54 100644 --- a/packages/@godaddy/antares/components/date-field/README.mdx +++ b/packages/@godaddy/antares/components/date-field/README.mdx @@ -125,8 +125,7 @@ allows focus and copy but blocks edits. ### Form -Pass `name` to integrate with native `` submission. The submitted value is an ISO date -string (`YYYY-MM-DD`). +Pass `name` to integrate with native `` submission. The submitted value is a date string with the format `YYYY-MM-DD`. From ad658b6c80c5096207135ed86827b2b2d9d90f43 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 18:26:12 -0500 Subject: [PATCH 11/20] style(field-frame): fix typography and layout --- .../components/_internal/field-frame/src/index.module.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css index 7bb14fda6..a18515078 100644 --- a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css +++ b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css @@ -26,8 +26,10 @@ .frame { border-radius: var(--field-frame-br); - min-height: 40.5px; box-sizing: border-box; + font-family: inherit; + font-size: var(--font-body-size-md, var(--ux-cxbe8g, 1rem)); + line-height: var(--ux-jw5s9j, 1.375); & > :first-child { border-start-start-radius: var(--field-frame-br); @@ -74,6 +76,7 @@ } .input { + font: inherit; background: transparent; border: none; outline: none; From f252ff466e18dd06b05203e13c20da10f21889d6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Jun 2026 23:31:22 +0000 Subject: [PATCH 12/20] test: update visual regression screenshots --- .../bitcoin-price-chromium-linux.png | Bin 57916 -> 57918 bytes .../default-chromium-linux.png | Bin 0 -> 3060 bytes ...abled-required-readonly-chromium-linux.png | Bin 0 -> 8643 bytes .../with-error-chromium-linux.png | Bin 0 -> 5949 bytes .../basic-chromium-linux.png | Bin 1975 -> 2068 bytes .../controlled-chromium-linux.png | Bin 3094 -> 3184 bytes .../disabled-chromium-linux.png | Bin 2030 -> 2122 bytes .../format-options-chromium-linux.png | Bin 15676 -> 15441 bytes .../hide-stepper-chromium-linux.png | Bin 4717 -> 4836 bytes .../invalid-chromium-linux.png | Bin 6020 -> 6040 bytes .../value-scale-chromium-linux.png | Bin 8386 -> 8451 bytes .../adornments-chromium-linux.png | Bin 10518 -> 10761 bytes .../basic-chromium-linux.png | Bin 2196 -> 2532 bytes .../controlled-chromium-linux.png | Bin 4223 -> 4795 bytes .../disabled-chromium-linux.png | Bin 2235 -> 2604 bytes .../invalid-chromium-linux.png | Bin 6192 -> 6756 bytes .../multiline-chromium-linux.png | Bin 3011 -> 3276 bytes 17 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/default-chromium-linux.png create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/disabled-required-readonly-chromium-linux.png create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/with-error-chromium-linux.png diff --git a/packages/@godaddy/antares/components/chart/line-chart/test/__screenshots__/line-chart.visual.test.tsx/bitcoin-price-chromium-linux.png b/packages/@godaddy/antares/components/chart/line-chart/test/__screenshots__/line-chart.visual.test.tsx/bitcoin-price-chromium-linux.png index 9b45d5bdad1edbc2d6c545e0ae8466556fd9c057..87f50e98aa0ae3e4b9f03c8a84881b5542fb3241 100644 GIT binary patch delta 4323 zcmZWsc{r5q+pegrNhXXnWLK8442iPTD>2o)3|V4i$Uc=dc_PGM?7Jvxlx4=2B#|)- zV}z6?YA{Gd2FWt<8}%K>_Z{Ew`R{p-`+m;rKCkOMuj_6hakY}T(vI)lU#pnW2L#lC zoM>i+7-P6a?gkNVZm z=e0FG$PwA*X=#Ioczb$kT$^fFWk!YM-niT;i^mVh0ybR!i~)Vs6EFKrZWK@YHZne3 ze&Sn@UP2quZLxhR08gkMxe9m6nAz`d>fY3TF*$7NMQU|^cCD)j8Mahp_zrz5zniU= z>Z#~CS(=wvi>g0)X`(=l9|+QL_1cOpcDKhxH~zR$n3dz?U7`zP>5am+p4fH!;-Yah z70MpiEvL{okz8gxta=LOx?UPc-I-j8%h6R0sw=t#fydYW0QW<&=j3A70hEtbncjU_ zw@)$#tKx+RL~u_Yry$Sa;)9Dk2oNN!OiRFq;sdFx(1}a}7tR86hq`~&9z}{CpxI$x z*z)QI)+HSdjme*VjqMNO?|{Zg9)M!NI>|2P1M2L)`>mcIOzQ@rsgpML=1Hz-N#FMl?er;ED{Ssp&C4MWY&#`AUvq8`zm zh{no5A3fRqyF`KO!~>bt6J={?z0vMu0eg!hcXYYJ++)OysxpfPVXPA<@=ddSh_WUt z_d9aYa4m!XrdkZrA1YloAsUb7HV_B`jrLw#b)kBPeICB@Gu{I2^qL2)oR^NT{&vpQ z9ar2KkT;g4vj+qLApI!bc^@~T`PLzjZ-(4sH4iEB8vIZ{O#!nwEfm#RDHCQ2*yGWl z703&aBka;P!iRCrUA!RK&b}|g*Engx%LvnOj;cdciC zajqQC^@(R;p+&WgdHIR@)(!|R5t&b+j~p@ucJsi7;qyBwxXiw{|pV@ zRv>7>VNM1Y11^B~U=|F5LEj2cQ{|u>rm+9uy6DRnyE&acTzy48K>Nk@LeUO^6luG! z=|_2|f#w5GSq5PA6|IZfSd^$npv~#3a3?K=`-dFD^)ZE@MzJFfhGp(DxOACZ(hF6Z z%q4Hl;~&78?okvh3iIr0iM~JU{ZZSJT0E#867uiE^Y+KH<|VQyjO!$;b}cfrVBvcB z@ycSKIv#~WC!(DpU;us$K{n_%LG7`M%3XdbB_WMw8n_yN}yZr z6l}BF^Fpk!q$UsVK3Rl1%Ie1V+DAU-_N|p4V1-An9vPkOs2$VKm!tJMQ2u&b_K8Ur|ranzZLB5Ua2`+f8Ed| zoe5Eg!%i8-7N<<6_-O*9F7-`S${_vzU(365f!Ta02RUzZ*D@WU`#Yglihb-D50`Ti z815iy&=jkl`>I~5q?0ugkwaDced40)fO@W$?LVb^sK|H$4+MP1FnmM0mGGtKyqQpM zy+gTrWKy`6$lW1ri2&FQ=b`p1^rYS9_W=A}*issOY5;)hs7hM@v8VH3P8X!#TCOnP z@Z}rgBKuu*X*ViNs6Sdf*TuZY*q)cY$$p$#tEzKk2>BZP#U6*1cNs`-Nx!1i5E;l9 zRzXP6b?RB&Z&ic)h0K7GBqS@0-RndCna{}f)t2<=Fml{o{2qFiZp4e$m~q!gWMZ2x z0<05mRgQ{!XN!fs8*}SenNp_F&k3A59=7HjONwd{on%k%a7gF&^8U`j-j0UeuEE9I zIcuxKdyJqR26&n2=m&lcS6ZUitX4qRAVU8i2-S5P++WcSyJeg-`pGik)Z1j~;QY+5 zij0kIJFM{%AdCq)R(G@>X|x=C2%YHL{$UE_K>{`d)vF?UeBhJ0yjbKN$CJg`mtSz5 z^)@|O z)S=kZNu63F7W3RglfiIUb|B9wa~F$YzS{j7%Ezn#u8a?TL*U9O#`2vxkI2`mJi4R3 z%MR55f2J7w%L5-;D(U#+9uj>vtz|<$Djoi>bdwx9+xZf?B*_*| zFPI##6=7rI?ld4Wh!C<8NOjok*2F7mCT^Z~T zc2nofK$nFMby293_7cDgVv6sd0*)U<_O#xk4)^xu(G@`3JuAhZg}T60 z=^!P0mju%aZBE-b_NkX-$F1)aa7F`~eEBn@EXgCvhW_Jj+6cad_^RbJJN@?`6~kL8 znrax_u|9f29FzJa%EH;JDucl^x1qi)j5z}l`sDR+83l*IMOSHFo~%Yr6AX+yq|zLX zKiRdCH7;a={n=*@I5e$`xM^$Vr1)N;DUq%iPEXaLPXrV+7l=OSM2cpuCBRej@*!Lw zjZmL`G8*K5>0vgsQIC8jlF5?!#ZfxL^pgCDPyHU5WGH4NZ!?AzSOao9w;5H+ceP<( z1FWEYy4;sjurn=X8jvVd~h8O{Oa^V=8S6VIX}ri^Aa$zmPHAc z)*y#y|6i9%@OM8@Ag`eA6Co7?l}p?w#m~~eJ=AS*j3n(P{<@$}hLyqHi<}XlsAQS( z$i*Hu_0{104AGsFld29A`3uk@_+6gV#uFD}ZhtaRgzxEL&O*|{Y=Ten;Yply?Cxvq z;mORr&u21wdjvC0KL-M@|NN@F64;@#H@Dh4EnP#WhIw*Ck4J=pvB|8`jRRLJWSLFnv1*1GckL z+vZg`V2!jhQLC&Akz-iJqD&i=2H!eRXp})#PVCY#Cvy z#i4T80(4AXvivU6A>G8xxFg}*RZdI*1O^Y(G#@G zUxJlpSR&`|DU9uS6J@JqzE1U5wk%~Q6WX{#O(U>vzh@8|%NskLjN{7Vv;h$88u1v1 z#nJD7_)oh0Xz?pcv*;^20R24*D;u4QcVQMxtkIKwI+~=Ff{ac3NpxuB_f9lXy z3lTm+h$>0lMzt%BcPNOT=Oba_Vbi;$-0f)m zmiEpn;jYQ=uK}br0vUvb43po4LjO2WKv3Pyhe` delta 4323 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 diff --git a/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/default-chromium-linux.png b/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/default-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..af0b3aba4a8763e752e922627df236e0f3bbbe70 GIT binary patch literal 3060 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 S7l&xqJe`3aO1B(wKlES9QL;e* literal 0 HcmV?d00001 diff --git a/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/disabled-required-readonly-chromium-linux.png b/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/disabled-required-readonly-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..5348f2938acd2f7cb592e3babe60909c46a4e57a GIT binary patch literal 8643 zcmb_?cT|&Kvo0!K0-*>PdgzGs-j$94RJs&tBE6T;K`?|4(g{tf6j4AR6zLE;C`t=8 zp@{S%y`1>nyUtzftou9nTle07vi6$1*?ZoZJu}ZUljx^9>Hty@DIOjkKvP5IIUe3E zZQOc?m=O2*mBK&>505QIQ{|C9^wxG~sB_Mr@b!H^<}tgreJeZ9fl)HUZ5@1auO_7I z2iL6LTVy+w`O?Oy#&0r|bMXenxqQhY>ertoljCaihtAlg)rqWi3S)L@m#cosEEF0O z{_IqG#}HFVz6oc-tkQ3N^|sR*jMM89EzixNUZ-=ZmD7&VFUg;B8fYSb!{O|-U@#{0 zEgUXo#|8!`nBYV<0vGck%qEN7!U7)H%JPyBJ)*H5P`QNCzK|@le@-ORYFgv*_^;(Y z8j3n>GD>s$nT5X-MLcs`M_y1kie+ZN8ynkt_WVIePF>=z4K@OuRTY}hXfX?^f26W< zGTO`87Et)HK1p`8Cs~>C*GzwM^!n+yScJ)TIp;CPNeo*y83FHSc}PdsG}S=0>sU66 z*Q;p(#R&T*9DR1OWm2@y;oAR!<=Eo+)LI{GQ`q#s?VaEl!BQ zD!2U7B=dlR6HU+>TUi#?@jvMW2E3qC)LT&hNZ!fX<*fNFhZ|bgkO=t^V{4)@u0AQl zqt6Y(YP&o1o0o+B9>`Ex^o4q+gp-5o$D&AhztIrpgZX9h-~vuW|P_e?hBb)%t#&?M#p{H8wfh#U*cmtjC;- zX1wC=pc^Mbk^OY{{Qai%)AZm>x&U8c_dR00IeEx7mN`}KEOF_wH= zN5`0&;Fjq?OTp;L-Hsk|Uvizpy&Vp>hKsD}ed0v!n4m{B8Z|w)5!P)Qlpl`$jRy_l zh}xqFC?@J&&zxKOE5I*Fv1O%?Avn?ZHW6N z1G7M;JOsQilBXtx+$H8bdGUL*QrN6lZwR&~bG)5vZQZOf|C@?haMxz|%Xd?>j*AUb zTjw3JKU)P{lNt{8aGQ?5?~k+eJH;*~3~_AG50~Esl}^-~mrBW%&=0Xbl!C{iNGwT! zon1H|^G-mX%Vx#iX+zEOk|Ft#T(7?Q1M@M(sNIc^jMM1uj<535{2v^P7noOC7!rjx zO@~V7$Ea`8iMX0#qTGC1`=4xCq87OQKC?|~ zU2O+u@uUGM&noz(8}TS9J$fFis4&(6DJfC>Dk?p~cX6WO|4wAapP8S(zBN;ai|9no zC+V!CX=!OSwgXgV`N7Bc(_j5vs;I2YYL!sAHZn{#d952aINt|@J%eA5<*g29i5jnu z<|?bGw9UQaeDe9`d9m{qk>)CZxHt;#>+`BI zxd9riDs50JNXd+TgWO+6F=O-61O%k6C>5`lH-k>4jZ)`3^Bctu!sHQd;ciX*E^Mf&>Dw?&taw)PyywLsiq`LFvC|ypTf2`3GQUXKPOOLNL%MOYJ<6x>8sPZvVKM;o6Fo+a>wI*gH6AV)FG`Y z%ibn9$7LALMZW43ItjkexxD8(w;IA%**Z+8uzbWwm&+yT6?4F+xXRCSSbH9B2b$E! z`0lHgP;t)j`?MhQnz~3lt9o{Q?zkFOT}zz2HL7Wy(>@#2GW^Jc)vxZjoGTl))mb*z zL(N~44rUnDtmW~oiL!Xs>Z>)ir(f)tEC2MA+&M_oCp1!G8!M-x%Uvsqrg=LkvtzNW zrm{jsCpkQFFlfNP-b$69*DrMTDEyUyRjUAPuEIdH-jni!huGUj(nAlz^e)rS&c>wm z28GYCES_Sa@6KNN0bAECcFeJ5IfrXfX|kQICk$2Ybp?z!6$WO8eD0VPxqD8nsU!KA z6uqaNV!Q<{dbGIMhMCjvsn#3th7Z1tt>$Esleb^ zv$?A8BnzOBv{1edm(B~5_P)ee)sikU?hM1)(yrbN-Upv-wUKXPDrCzmGPzHzVv2U- zM4#=`Q|PC4&#kY7h7j)lzK1*ml<1x=Z8v6>6Hh>26I6@lyW6#q`Q6WGGJA!T>fZ3L zehxlKbaOu{PIL<`i}9q*Ifwf_C*a#PPYj*m^@PLCtUT)G(&YAxo=GT9c9?r9V(a%$ z&b$){I7vnGpElIKBc*#eXz;8z+pX%oV-thf>gg^yb#>$=B%JE5!kDmE^P9o6CueUa zL>Yr!;!cJf9gsJ!=`CR*bWeuXvhvq!o0|N!_Ye|B^?E}5>*|OTMT&T-IKE4NY`uYnal0!OP7!*tLO_2CdMlSedK<>fr zK4xubB=+4Eskn8A-J9nU{mNsT^!)8cp=YqEcg6%7C`*p*OzsKxfnf5*jOpdk@O)Lf8&1P&o|nCT*F!H4nFO*g zB10MPuiLtaQhel7SLx}E_k8$z$Aq|EU65cV1q~{jDQjUS9krwfIxDuZBLmAiUN`aWHqv(9jTu-tMc%%NW8z-yrFK z+U5U7ql_z8#l))JWqKnoJ%cF?r>Y33(?jOA$GzQK&=n6V-&CW8S>>WAgf+_|s*k8q z)Z~WI?dz8;$8NfNsI!@u&ZX17@CzHZK_I2a|HR5Z&^b=6Gc2QmRM$co*Fek5^)vOW zpjUGBJr+Unc9%Z_PDy7jMZS$HUeoZ*rjpAKeN(nDyh@}y&1RvbR5vqQu|R9JR^~c( z6HNTk-Rqd7k>W2zVN2~{qxO0IZ?mq)8c`}q2f>%}JdAmA?}F;m_@rB_y_9>&^ZRiKf;vVJC}L7TM&jpFMs#P2 zE?4H>mxHVI00-a18kK2IU}FA-${YW*JUK?6%N7B$5_;MX&)!q|GSS;q z)aNDF@b0-36iMn-E|xCjt#sz9Bkvo;kBu|9_2?!vM{^C5WnjU zpvION{p$xx(LLBo4fklo<&EqBcM}+Cq_^$im50`gU-zvZp~g7X0O|DIu!~^uL5qh+ zGTP{g`IStCHdEe)aKaYj%FI{9hfVV+wBFlAz*)149E)4ex?M6_eLH{czOYh_#sZ<7 zMDK>2s(>)P&Et_=7E}MzH4|jx{)^Q{`HBoOjLFGwo>X(}_j0z*rs6C`QEmNZ zv90)3)KEjtB8r3HOK;z^9d9#X=)vHZfLN#fAC&0HxKCn_Zt9d7UyE-Gw)LEB#*(?t z^!IW5iCASvyS#`ZqKIc|*>J43J6EF6l@A1tH3zt^gX^+KzP8Nh8`-*Fq&VLfake+V zJ3TFhb=z8Xd+Cgl+~;RtS?r$-_IH#-*;}}La1DX2+x&rY5zREcqDv9~_+yd07ir1y1xFs%3X zzXY42eS4cPZ$SUQ66N*N8Qyac=oh2lp6M1@cknz}v2zGQJD>p3woE2rWP73>{RNOz zLrK|WMH^bMbtHxLg~L8)ATl_m^ZL+0HcKGx8v)l$ZO4NAXOHo>#Ihi?w<)v1FmDlU zE+?DE+A3%;e!tLMd%iOdaTeJO6lTLuZiz57PHMR)Tc4 zdKdTUb!-?SB!L~%md3WPQ?^*>IU_ouckrD%hVH!;!}1Dh*RU27{$hqTjPkH`6U=-I zp~?d7G%Rw`B~ZE%yNBmm7r4=Ejv4NSE?!X2$`nPC(b=kBXtw$>tmcPy{kG3ZFIbk7 z6@}a=g_lB8Khse*^%~F7Ae?DIg}L5-DB^qXwsZp=Vtl^O&pc)o9fbDTJxh0HQ!#B# z8HM6M?~X$QdSqHQobNu@NO&jU{w)0mG~H4!6Yp-VCM-%c^6wtL-)Ul)T>R3uZ&M-c^m(Z z#qIaNTX%4F`udb-n*V@`ENbsI7ZAMkhl-3yD2ya>&sy)ZNvgJRHpw^*xw{2h3fSqf z${X0>?PX%NPs?u}!{V4&sYosHsL7~F{DsY|Q|{|pM^NWR_k%wq$RTh;P@H$gb_y=8&}4{nD8m&3IAvN{EdHD3Xi-GLGR^@%qms>JWu z(gZAD>lKqwk$_ZICT;hL%9H}c;vL{XF*D1!Tj;fz+XRTaar@SI=ru3{u0tY=ux$kv zv(YS3QO5x#Ox~5#41CdMW$bd#%W&r)-ry+rj;SJ{B=-y_Q6on159r6(&T`>2Gq!vq z7756*jnNkYyeGaD0iP@6zaFRg&Y=g4juhfQAdJX-9An$J*6PfsTG|12ODe#5_OUD>EJ6(jl80>rD9Pz@Myy}KCMqfznVXNWFv*TwUt2*;{|1!f%szg!cP5no zO-ALk!|@4)%`D~%KEQ}ZgPcQyu&9UOHoX7iYggBVnHdxQYo2==iR3BAYH-{Wb)uRu z)ZIu>7qsa`_|Y#R2e(L#ard{{65_+qz9-63Veq+Gv&)(Ru8my=R&4w@Z7gt!3UPF; zaE|*`w)K}tvW!;$B+^g0P&Dy&K&S1I!tk3MhLPx-Hz;_B8SH(kc*@92ifWseM=)kLq;CE~#R zY>wTK+;x^eI3q1#z$deY81rp?27%1#&^JU42|^yWF_@wdxh6kMQKWEQWfyLG%SHoS(U)S2baN2Vi%x~vxzPlGaob=}ryl5L*O53i{)AVT9uj*Q>D z&Yws1*WBOxSmH4udgLqi+{KgeawkGg`gwOl^$RW{i?#7D??dziTLMi@T#%Sy#kyU= z8)|f7Rq5s*7RpcJPZ_ZrL=qyFg_pnn$X6Y*f)8YCkTA@?Fbu|(*^8QO2FV?J9J|c) zkKU2~Z9TSc7W7aw`l0iTWVCidguLmrwA9;A^%?Wq;t+uIYPoq7@AH+t>W|KfLT}rf zVqaVTWK@L0O{xVYC%gON<>OL+|C+vHWQrGR@MCB2i%Yf%_fU3t^Zt(Xq$<|Ag4fe_ z$-$RQ+r}%c#P8d5a{~HFN*q&OA7M<24P#b#cAuf6JRE*GiX*);Uvk}7eXBndo?VPh zpns$C7_ImE`5P7Ip17gxD#|$(#k#8R*g)!0{zqpgr>lqj*~dZ+yFi9#iUb*$#osT~ux^kl({R#;^ zez;yPg%3I)TJbk`V?azze8ey#qErQ7RB17#Rpb^~Q^O8vyx`Sgw95v~BAoVd#%%HO z7?|Y|RG5ev%PR;Cq==H+w0AR)V&S2E-JfQ8JZ{*PX4+I`mu)?;cB(-ke?@d(Rzf*C zR*O@s#3V*yX@5zSUkF+e3`O?mSr;pI_VeEjqS*}%YYw8EtJlAnGg~@-hV|(7PR=ne z%svd#zaU$`-$+DZiN0+39q@voQp$agm0Hhn-A3r}8&Hh-< zV#fB5KFXVKiEdu-LCPDP&L@3B_Z{x51-a5T1^=K`pRQ%^gmVu*xcL%w{(VSpzr&Ec zrenL$Cd@jy6##XPnedM>TX9=0fjlr;kvdhTNcDuQKM4zeo>y*7BFB8$H*(Ll?O*t` z0;Wa}0=*X_so(#X7w3Sni`F0J=N<(D7|~PRZ3E!a(qw>7qh5BlWvy|ceva+uP`YS# zf34|hiMv`W2~4)`MsL{blw99MJ1Cw^O(}&$n#-Qw2Z3yNm+(2OQM&VMhK`w5AKLTZ z*9gPT{e;B`#7DM&7#+$UPSqdS`{XGHo_H4P55f9CWMHslA8zE~)6*c1eV{#lvjs$% zXkWw%?q8jQBTOY~_XlzznReEQ$>qwBRA``lqb{KKPm4Tb)y7h)llvg2>Fygp~W z8m(j#kDC{%J(O+?Go3pc`b%89e{6^3X3QGd;LxA2fUA}7juf>`1cz_DkZFDN@!C&% z6&2T@BW{GvH)$W7U$afIwcMY zd$r7`rllahS)n)S0exer~ODJLr+Gn40ns zPx6%};fvdFI1*_^&?k%jHLP-9gB&R00K+~j%)O;Xt&MM-s-2JmXaJJqz4eemHxERz zM}Fn4wnGy*?*>@VvvARhnCY>N*bk16)Amd|P}T6<=~Pe?1wiYt-Y87ZouaKo!hxN{ z32Ej6uOs&CRtG|i2PPWWoy+$9>KO*BeU!)zhl-M+&~RTudKP=O4%Hc}X4$9#5N>kF zNh`@V{#`TlB|~xnog3?8Wj$iqT(FbZv-A~vn37&3-dzaX-a0kh_>Kjx?LML?CK2<& z!KlGf`Z1_O3_h|0pO_$=ti89Pj)qk89NpEEvTH@eTwGF@*k&Aww?1S04mML2Np--WUBXV55CTrHA3{$_XbjY>PI!Q?5ce0EnP z12L#Al|+Iv7G+QB--!=bk=<|(Td~i+jpH+Fb&qg>vW-<%tF z@yc>Rcge-dOSQdSvy=IJY;S^;EbB(+3lFSj~7ra}tBH9Fi)d~-(aS$v%{ z_Zxt)SV&URl$}^^uj`(5*kdluNqmw304^G_&j=xsMMV$s0kO53$BAty*`_Gtwu}c0 ztr05?k{ZX7I4!O-n{cu5?n;=dGenKr1z$V-$0^T@Qe@JUB@QvuKJHPr$oV{Rr>Bs2 zmhgCD2FNO_pcMKYsENP-+|pYtzL8C5{Byrf3cOcS93V7D+vR?bx{#CBj#U^^@i7Ii zDJqi$9#3bb;z`Ku zjID8;;c~xdYUI_rQIez-w1uhj;-iU)ko>YB&P$dXI%(RgZuy~8hRe&TJG_K1nl}>b zDT9BJUlZ=#%mmCf6a8`}Rbm@}&W-~C*2cDF>NASx%x>4+^86QWW@{mP?J1ymYDWgk z_Kngywhkmy;ln&jDcVj`4UyIx@rA%$al;^XNmf2ZmKk>xwthxY432?);BcRb=^N cs2d`Rt($Rc5mqbQpEK|@RdrOVA6vfp4;{~B*#H0l literal 0 HcmV?d00001 diff --git a/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/with-error-chromium-linux.png b/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/with-error-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..9599be79dbeda4c6d5cb07de09db62818f532102 GIT binary patch literal 5949 zcmbtYWl$X9mIZuG9>O^D4QSF#=%ET>{YTwbTBcr|3H zn((TnRV)TPXm8%>3iOQ28H_GttZkPUFB?nbX{* z+(5^1$wBLVuKT?-&7Ba`?3KUxF+(W+Rpu~!W2yG*qLWx(AK%2at1MjSXjo6G#R5Oj ztB@*lICa9d@>}7GhU6&+dtjMr8NMwSys;#Jo%|bsp*L0Iq_yj;C1Cg#dyw5bYwh7y zo}y?^m_6mBR=H&oeZ{EncFMZ==iH4x0r9wUVR@zN7TuG;a>1Jh9yqersoDgxJQIiu>E;N54xCJ=Re!QBrE&J{M7#uRFX-ci z7&IM3*gIndNBc21!>3v;fP1&kj5&2?Sz2Fq*T1UY_i$j#pTXRGN^P{$LUoI& zavi8**PIUcTgBrs1U)D2{kX=_tvsv2+WZ?zK__l5m~%>8L92Gsm@-B`pYKn|LX8)m zk0a}!=60fZf1qm0ll&%jFB^HRpV&Q0vAd4Nu$7vi8iA{m&Ps(rUi3?E2k#x8GY&T7 z`Ao`L?JpHSO+>ZF?5jEtmLqy=pqHKE4gA*!ufq|qnsTZ!qpmlKY`ZFKma~fsu{enc ziJ{{xXv9~p?-K5m_WOR8oU7d_R<;*9uX^7YEb$1(r$mEsc?Y%3`Mz|i0mVc<{%0AC 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 NVYb#tsM->J=XYe4t=Iqn diff --git a/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/controlled-chromium-linux.png b/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/controlled-chromium-linux.png index 6129ca14db190bb860983c7d01776c6aca313913..0d2ce33ee60a1184bf4a526657271fd3f802aac8 100644 GIT binary patch literal 3184 zcma)P-s~3yPj`tPOn99DYBiRUqMhRuCEpfh?vcVzH5EF$kmt zjKyNTSr}5m{U9w*Ug5P>ZS!c)VqZ3CnflVos(VhO%Kj@w7om7DODj~I7gMo;y|X=H zE}--)simq>SULSf!Gr5xWSOy8dfQ&tg5wl)@);*y<0Aa}>Zu$r#i)$EynM3f;lF(C zaYL{|p>jVLb_q2KT$b53;_h@A!HQ4JpP7&xw(jRvURmtp#l#N4>t&sMu}X?5YWX31 z&Q2I?*u4;Z&1<^@Eb> zes8`E&D-SV3xe>4h_`byM)Me4&j3WuX{~Q4?8?j9LcLf={diYy&IVz6+4=-GR1~G*!H*y66cHIEAUl&4jT3R1!rjyE5e0xK97J*H*I1T$2-b%JH+4m~i zrjwkP`MBJfZAy!cHE&REZ3(OBYYM$)snyrQW0(eTSFLj;?+8L>L7gVtIZ|+saL`!* zet$^=#YbLR7TTa_D`*r{_GbmRlKO?*<~ua|%K#x!fijrjHj)C{RnKE}sZOqjx)vY9 zqg=aAjaKs>WQm^BvB41plea<7+esnj`xSBBUK4vr%5lEZ;e%NrR!0#f?`-gL=+j+BR2y44xK z;|)>vix2kh^7!HV4w@phQQ=dz*4(AODql8;lAwfogcy=|s+Tp!M92bL9W` z7}9_Hk(Nl1L`gqsNAvRzXq+ws1ZJal3EKHR3(kKnj~y4day?1Qe0_f8vMw^f`V@oR zeJ|HkUl<0P7D8zFiJp{;!5L-7_rK9G8Ju{sBQ#?=eLQL6X>%Vo+kM2ZDE-33J0oO= zS6ceU9waqaVh4-X39GB3f~_PFiRNDmtexJ!;Dou9L92hAY4| z1z03qVI`8@+2n^3?5>zulMUgX9s6i>Fkw|uJJo12?B9nMp|5%tsV-vv2}pO>6tmB?*uukHSr}q(zh`fMA9D@?7KzNq z;Y2R2Ne2YHTB(+V7b@8Huzcf$Cl>HWUXy_`*PaM^wT)Ke#esyEe=(u z#UR_pduX&c!(Tvu`OAN?oL|z4w~g+7YVYl{SS&e91w}Z?4*YaPr;ThK{s5(Q4Gwb9 zhNv`gi1HaU8XalXaqvYJC~u!~bntBz_G4#!aBy%_TF$v01i-gpejJ2XR#ryxm&ARy zt8;phrlg`mVibTtw#NhKS`$a8q|N4_qSjMx(EM~;1bg8Bq{R% zqLLijBk_cD7TZKROuZ6>>+|u^Ht?mx`UFiIS_2kUgL>TC!x#DHx?iE!H#9$>WToM7 z&pn-z{`~b5ahz zd^+r4$5+9zwezKdb2~ZTCBFZ{*LKoN(m*S*sf=OQ@?iTRX%@Sn3KaBpK%^B1?G+2k2*Ow7!@$@;vyy7Y4QC^hWSK!{TYWa1ICQf+%}1H zEEZk zGQLL}QsfAX{!;a5^NfIilA2o2x7DdA{$CJd$xFSeDF4~sSC|Dupn@ZVU%Kyq0xZAR zW4!yZ+V=SG;knjka)H6d>vT1N@Ix?Xz%r#`WYc4A(4ad1$-)p#T>Vo1HV17$SjXIt zq^-XGsypLa^(p(gMYPt>6|}P-wxMQ8v1$a^P^*mWWH^dB*m{(W4J3X?sE49{jrPMzWe zq|zm9wGZgrX!lBUd}A3@dv>*9Jh(X^ix3>8&qdX4CRWLx#5=XmIwP)B-j*La-Kb!D zl41piy3!QRA}af41y+7n}C*M6&JZdDAOx|x?Jt6`wqQ+oU03&6P|t|xlQ`p zK+70S)FH~XE}76mM0I%BL4o7T+YIPs^qLsyQ*9dk8O51XMaB!N$Yf3MHh29ad872} zNaf7S(NO`u=YPMu3{4c{?rS8X@?%TBwg!saJnqj2z-v*cmHH<~3wb^ua(2G2fF%a& zd_c3p6jw8q51$pEFy9~LFIoQd{LUKKD{sI_jwpww1pmrN6mAJqE=>vFs4t=xgNnPjQZTzry_6S~g z&Hxc4$ch;j_8bpN7+4{J9Yt)Hmd4z0OOP50@~8Hc zriNA(eIJ$_A3;>rv$=1@DNyYpDHDN&1{Gj0-0 NCPwD)Iz!i_e*>Af1CRg! literal 3094 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 O53n?|MV6bm|MGWU?9L$o diff --git a/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/disabled-chromium-linux.png b/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/disabled-chromium-linux.png index 02739abed693947d1c89792605451054460d4afd..8c7f80efc36f3a4e3d5ff9b7344b1bb2622c9847 100644 GIT binary patch literal 2122 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 tH2FVQ#ldHWnqLSGezk(E-CtdKAc`9FFiMRx!I literal 15676 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 diff --git a/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/hide-stepper-chromium-linux.png b/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/hide-stepper-chromium-linux.png index bd914f4027a4bbcbd8b93aafddd566680a558832..21ce73621d7831203b791e6eca1145735f37b878 100644 GIT binary patch literal 4836 zcmb_gbySqywfr5QjJq-*G*1{9ECP(r#vxuzUEkcT?>Xofh;Tlt`p(|Ohg=(PFm+h1xYNtc%; z3)1ihekBn_y#d1BsBU&T2yjE+M@O7Qj%H}Xcx0Z~tdE$_YEQB&>X5*O&Yx#+&k6$~ z8T8Q?{T5!&V9*rhrnlUC6aagLuz@sM<#B;`4e3WGL#TPs;IY=kawT& zg;PS5OWDFHABfD>3baY|j>b z`mUQcbcOVL+vdGdO6+8P`I%D#B&!&-68s+Vun>1q+EW`}TqMvsnUnF48FXf_e9rl3 z6!LE54g{-pvq`<%x0QczRAk{X^v2J2PegA=qHcPq?nma@dViSl7P-*15(&SZ@ar}F zDN*N3K(I1+L#y2_OS=pvEG#v&Ga;KN5AGqE7$P+EET$;Cn3s_aceG^~&R?~y;-8@d zsGhsJS(?Y5oXKz8Y=|_7r5+>c)s+}HZ>5*bfVYpz?%e+CU-0Xgz3v;&Tf2_v%YMZ! zS47W8_sb`dg(U*G^0(}1a7qZ6D!TbaNh`h&r^?9Gc`WV3d-b!vm&rTup>z_rQGC

dcNVA^`W_dJ3 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 GNBkETOCo3h diff --git a/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/invalid-chromium-linux.png b/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/invalid-chromium-linux.png index ab5ea1809fe3b878d4fe58e5289c1391d1ba9552..92807f3f7a9f72adb8a6252f3c45175684346577 100644 GIT binary patch literal 6040 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 diff --git a/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/value-scale-chromium-linux.png b/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/value-scale-chromium-linux.png index ddc5e5fc6e49b5a8a37b3e75c4089ea50e9c2abd..87ce0ff223fe5c4371cc23944d8ece2ebc669cf0 100644 GIT binary patch literal 8451 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

  • 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 diff --git a/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/adornments-chromium-linux.png b/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/adornments-chromium-linux.png index 3d39ec8dd503e1489cf1313f43a6f001496bedcc..fae6f3ae00817a80708daab325d4dd1aec5aa41e 100644 GIT binary patch literal 10761 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 literal 10518 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 B?F#?^ literal 4223 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 diff --git a/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/disabled-chromium-linux.png b/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/disabled-chromium-linux.png index ce95078bb7990bf226f0da1d326a150ca3b474d0..d746955755e6ae1d47da147968a70fd91adc9b36 100644 GIT binary patch literal 2604 zcmb7GXHXO976lZfOK*v?hTg$QO#p>J=paQAsS6@VS$aSqQY48Gj8rK?bOAwGsY{6j z37b$tT@V)nh{Q+{5J;jFL3!+(H~YsoZ|2Q>bLajzbMH6zoVn-Tb8&(T@yqdZaBv9O z+Q3{nI5-`Tb2u;0am)ltN^x-Tv29_O+!HxJ^*V+Z?xqhg8;{1>d!+&AD@$k20)RZ| z;3%8-Vx%TjQoazn2&m?o7xUP)I=3vd9>#Ac?Eb7!yEuaqpaEK1w5*5S%KC*S?hS%> z`P8*6p7cHil;P?pPJxku8-n0*BGk8hR}pqlN9Xvo#eP=qmxjTd{8>aak0b~JiIrS} z!MMN}jE(W@TtDz zXFkBfUoK^nQ=33QS8C&&ce}?gwo^Jj;F`C-819AWQg#sL{)n5!-~D==wt6+E zv%I%a#zq`(O(BV>9AMH>#KI=x;{wgm#C#B*yrcIZYl8$Kvh3tDo6it;dwpNNs^{wc*?~@#7uHRTF1~J2i5}3>%NIH)MbMMR zh=%#6=Kx~U#TI^pYnPvZe)YZm$Sg9Ny2L6BId>N`m^r*0`9wnJ6^#r((Y>){->S;@ z;r_<$H5Z<68<|psDaJ-9^uWwT z`GcL^0;&RtMFOWd3zR1>R70o{R4vob#0QFq)oJ3+74s*R@7N0hLLlbMIuY;T zo$fi zNcJC4>*Fi+^aC>x3s=?9Aj~(`qPe!V)+CU{)h~0L9G6IDLr+h~H?OR$@S(|n%a@&s zk0D@7@pw24_We$LeEk2}@yBl&+^HJ+d^Kff-^y-2DBL3NamXQ^NyXIs7OeIe

    rBC9#+q8HKv{;~+u7vIJ*Qh=iemxoJ~Mt^Vg9cAEH5p5vC2yf{!@q4e*G(5>JE65A*w6HXML9Un3lyqn3r0b^?!3lQ~iuaY0YXZ zCEh+cThoc&YPLhC(eGtNZ5I_C^tU>#%Ge>(BVXC13_AXO*sh8|LA5+HHRnd06 za)mH9u-z&<=A1OY7#pz+nBQrGcHB7O3|o;gjjgPg+;pX{5dy3mw4VeruCzybktf$w zRlo)A+a)7dT_=doctr5)GKqv|7vHQvfWN-THOkU_ZPid;q+F_s3XQz?-WfSM7;=xY z<_J9+2iTgQA6TVD^Xqf5mBEjUl5_iO4V&ZFl`EZ6$Ta%phASd@=(}_z*x>$>+n1D- zP2KxeNy}mnV_MyB2{R?fx81`|4rezJ!vNRs%vxuzi`-WV5j-d)s_RGcD!EqY3*9A0 zd%2BHB~Pom6RKSOe|~Ngx6fbZO$znD_FOc$pDNAofMkgK`~{(YN)6_?Do#`sBnmLd(%fn`g z<{=63EPfCxs)_LK`3)lfOhYbR3Y~acE9@aw&%lI2FA#~iMin;?Roe7Qd@XI1nt;8R z!iTp)!2}Ft9a2qE0Bm%0NsSk?xs%%H`gzEq!em6Hwv()=T0C5+;Xh~4;n|)`Kl?~^ zG*_D;{#v5o@>At(m{%F^wTm^Rz3JNhuZ?cr^)Z$qYP}xJArCt@%fpZ2n?GC9;IOm8 z2D=`)7Liyrb8GkrH?FIbGBj@9oqvWUbCYH655 zqUdayg{OO`$?g0RL#^LvE%$j&5$FAk%IL|Of(Ul~S$#aWL1e0_{p?>&%xCcEV}kSO zuj($VIm8-+DbhDtu-U7Vz-8f{!KEJH5~YtzpA=ICd)PVC{$y?RGROfW*Uv>P%?Vn0 zzBkobQ`qxI&=a1-4+D+w34FhPnWw`-BIBqyANs8h>lerWIF`uM+;8C z?w016$2Kf7y7XqRYE|`Sgw4Mf@uS%e5Ja7j3EWucH>X>}z$DD0+QRPt|U*&J=r^qyWi;xK%e(?^a4 SM;~8-9JW?Yum%hNjDG>t3*fx~ literal 2235 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 literal 6192 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 diff --git a/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/multiline-chromium-linux.png b/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/multiline-chromium-linux.png index 78395ef4d78d0f7cc60931f49c6e3521fc17f9f7..3fc8b0467f3b56d6d5f0522c6c45023f525b00d5 100644 GIT binary patch literal 3276 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 literal 3011 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 From aaab8352c92d94334a71752a1972f32935e4230f Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 18:43:52 -0500 Subject: [PATCH 13/20] test(date-field): enhance visual tests with additional examples for DateField component --- .../field-frame/src/index.module.css | 6 +--- .../test/date-field.visual.test.tsx | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css index a18515078..8ff2a94b9 100644 --- a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css +++ b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css @@ -89,10 +89,6 @@ } } -input.input { +.input { padding-block: var(--sp-md); } - -textarea.input { - padding-block: var(--sp-sm); -} diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx index 5eda985df..e4c08e976 100644 --- a/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx +++ b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx @@ -1,24 +1,54 @@ import { describe, expect, it } from 'vitest'; import { render } from 'vitest-browser-react'; +import { DateFieldBasicExample } from '../examples/basic.tsx'; +import { DateFieldControlledExample } from '../examples/controlled.tsx'; import { DateFieldDisabledRequiredReadOnlyExample } from '../examples/disabled-required-readonly.tsx'; +import { DateFieldFormExample } from '../examples/form.tsx'; +import { DateFieldMinMaxExample } from '../examples/min-max.tsx'; import { DateFieldWithDefaultValueExample } from '../examples/with-default-value.tsx'; +import { DateFieldWithDescriptionExample } from '../examples/with-description.tsx'; import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; describe('@godaddy/antares', function antares() { describe('#DateField', function dateFieldTests() { + it('basic example', async function basicRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('basic'); + }); + + it('controlled example', async function controlledRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('controlled'); + }); + it('default example', async function defaultRender() { const { container } = await render(); await expect(container).toMatchScreenshot('default'); }); + it('with-description example', async function withDescriptionRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('with-description'); + }); + it('with-error example', async function withErrorRender() { const { container } = await render(); await expect(container).toMatchScreenshot('with-error'); }); + it('min-max example', async function minMaxRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('min-max'); + }); + it('disabled-required-readonly example', async function disabledRender() { const { container } = await render(); await expect(container).toMatchScreenshot('disabled-required-readonly'); }); + + it('form example', async function formRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('form'); + }); }); }); From 9eef7e0fafb175cf395d2e7fa872bb6ebe91a9fd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Jun 2026 23:49:55 +0000 Subject: [PATCH 14/20] test: update visual regression screenshots --- .../bitcoin-price-chromium-linux.png | Bin 57918 -> 57916 bytes .../basic-chromium-linux.png | Bin 0 -> 3041 bytes .../controlled-chromium-linux.png | Bin 0 -> 5152 bytes .../form-chromium-linux.png | Bin 0 -> 4069 bytes .../min-max-chromium-linux.png | Bin 0 -> 5565 bytes .../with-description-chromium-linux.png | Bin 0 -> 6292 bytes .../multiline-chromium-linux.png | Bin 3276 -> 3357 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/basic-chromium-linux.png create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/controlled-chromium-linux.png create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/form-chromium-linux.png create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/min-max-chromium-linux.png create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/with-description-chromium-linux.png diff --git a/packages/@godaddy/antares/components/chart/line-chart/test/__screenshots__/line-chart.visual.test.tsx/bitcoin-price-chromium-linux.png b/packages/@godaddy/antares/components/chart/line-chart/test/__screenshots__/line-chart.visual.test.tsx/bitcoin-price-chromium-linux.png index 87f50e98aa0ae3e4b9f03c8a84881b5542fb3241..9b45d5bdad1edbc2d6c545e0ae8466556fd9c057 100644 GIT binary patch delta 4323 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 delta 4323 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 diff --git a/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/basic-chromium-linux.png b/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/basic-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4cab48beaa2467c6613fd7443c4c2d5e90741bd0 GIT binary patch literal 3041 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 literal 0 HcmV?d00001 diff --git a/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/controlled-chromium-linux.png b/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/controlled-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7311da1ce140c8052bac3f0dfcae2c66c7dffc54 GIT binary patch literal 5152 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 literal 0 HcmV?d00001 diff --git a/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/form-chromium-linux.png b/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/form-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1e61c7d4fd420edc24bce69569d19d157c03e8 GIT binary patch literal 4069 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 Z6A|RZZvs@takmY4>dM+mH3~1n{{u_~@+ANO literal 0 HcmV?d00001 diff --git a/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/multiline-chromium-linux.png b/packages/@godaddy/antares/components/text-field/test/__screenshots__/text-field.visual.test.tsx/multiline-chromium-linux.png index 3fc8b0467f3b56d6d5f0522c6c45023f525b00d5..b4109bb614480cd5aaefc053818236e45ca4c5f6 100644 GIT binary patch literal 3357 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 From df5198f2736864505975bec042b4978577ab5d04 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 19:03:07 -0500 Subject: [PATCH 15/20] feat(date-field): add i18n example and update documentation for DateField component --- .../antares/components/date-field/README.mdx | 21 ++++++++++--------- .../date-field/date-field.stories.tsx | 3 +++ .../date-field/examples/with-i18n.tsx | 15 +++++++++++++ .../test/date-field.visual.test.tsx | 6 ++++++ 4 files changed, 35 insertions(+), 10 deletions(-) create mode 100644 packages/@godaddy/antares/components/date-field/examples/with-i18n.tsx diff --git a/packages/@godaddy/antares/components/date-field/README.mdx b/packages/@godaddy/antares/components/date-field/README.mdx index 2b6b92d54..5335be16a 100644 --- a/packages/@godaddy/antares/components/date-field/README.mdx +++ b/packages/@godaddy/antares/components/date-field/README.mdx @@ -14,6 +14,7 @@ import SourceWithError from './examples/with-error.tsx?raw'; import SourceMinMax from './examples/min-max.tsx?raw'; import SourceDisabledRequiredReadOnly from './examples/disabled-required-readonly.tsx?raw'; import SourceForm from './examples/form.tsx?raw'; +import SourceWithI18n from './examples/with-i18n.tsx?raw'; @@ -50,20 +51,13 @@ separates these concepts cleanly. Antares date components only deal with `Calend Install `@internationalized/date` alongside `@godaddy/antares`: ```bash -npm install @internationalized/date -``` - -We do not re-export anything from this package. Import directly: - -```ts -import { parseDate, today, getLocalTimeZone } from '@internationalized/date'; +npm install --save @internationalized/date ``` ### Locale and i18n -Locale comes from the host app's ``, which Antares re-exports from -`@godaddy/antares`. There is no per-component `locale` prop. Segment formatting follows the -active locale. +Locale comes from the host app's ``, which Antares exports from +`@godaddy/antares`. If no `` is found, the date will be formatted in the default locale. ## Props @@ -129,3 +123,10 @@ Pass `name` to integrate with native `` submission. The submitted value is + +### With I18nProvider + +Wrap the `DateField` in an `` to override the locale used for segment ordering, formatting, and writing direction. Compare an English locale to an RTL Arabic locale below. + + + diff --git a/packages/@godaddy/antares/components/date-field/date-field.stories.tsx b/packages/@godaddy/antares/components/date-field/date-field.stories.tsx index 25e168fdd..efe7c3648 100644 --- a/packages/@godaddy/antares/components/date-field/date-field.stories.tsx +++ b/packages/@godaddy/antares/components/date-field/date-field.stories.tsx @@ -12,6 +12,7 @@ import { import { DateFieldWithDefaultValueExample } from './examples/with-default-value.tsx'; import { DateFieldWithDescriptionExample } from './examples/with-description.tsx'; import { DateFieldWithErrorExample } from './examples/with-error.tsx'; +import { DateFieldWithI18nExample } from './examples/with-i18n.tsx'; import { DateField } from './src/index.tsx'; export default getMeta({ @@ -36,6 +37,8 @@ export const DisabledRequiredReadOnly = getStory(DateFieldDisabledRequiredReadOn export const Form = getStory(DateFieldFormExample); +export const WithI18n = getStory(DateFieldWithI18nExample); + export const Playground = { render: (args: DateFieldPlaygroundExampleProps) => , args: { diff --git a/packages/@godaddy/antares/components/date-field/examples/with-i18n.tsx b/packages/@godaddy/antares/components/date-field/examples/with-i18n.tsx new file mode 100644 index 000000000..4a33a18cb --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/examples/with-i18n.tsx @@ -0,0 +1,15 @@ +import { parseDate } from '@internationalized/date'; +import { DateField, Flex, I18nProvider } from '@godaddy/antares'; + +export function DateFieldWithI18nExample() { + return ( + + + + + + + + + ); +} diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx index e4c08e976..581d62a42 100644 --- a/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx +++ b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx @@ -8,6 +8,7 @@ import { DateFieldMinMaxExample } from '../examples/min-max.tsx'; import { DateFieldWithDefaultValueExample } from '../examples/with-default-value.tsx'; import { DateFieldWithDescriptionExample } from '../examples/with-description.tsx'; import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; +import { DateFieldWithI18nExample } from '../examples/with-i18n.tsx'; describe('@godaddy/antares', function antares() { describe('#DateField', function dateFieldTests() { @@ -50,5 +51,10 @@ describe('@godaddy/antares', function antares() { const { container } = await render(); await expect(container).toMatchScreenshot('form'); }); + + it('with-i18n example', async function withI18nRender() { + const { container } = await render(); + await expect(container).toMatchScreenshot('with-i18n'); + }); }); }); From 255da491f5dafc54eeb1172d221868cdb8676b2e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Jun 2026 00:08:46 +0000 Subject: [PATCH 16/20] test: update visual regression screenshots --- .../with-i18n-chromium-linux.png | Bin 0 -> 7880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/with-i18n-chromium-linux.png diff --git a/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/with-i18n-chromium-linux.png b/packages/@godaddy/antares/components/date-field/test/__screenshots__/date-field.visual.test.tsx/with-i18n-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4efe5593084d0269ff6fc7bbc9be594a2975f9fe GIT binary patch literal 7880 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 AqyPW_ literal 0 HcmV?d00001 From dc23a0552792803f4471e6acdbaacee6648ba62e Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 19:26:31 -0500 Subject: [PATCH 17/20] feat(date-field): enhance DateField component with extended props and locale support for tests --- .../components/date-field/src/index.tsx | 5 +++++ .../test/date-field.browser.test.tsx | 15 ++++++++------- .../date-field/test/date-field.node.test.tsx | 15 ++++++++------- .../test/date-field.visual.test.tsx | 17 +++++++++-------- .../components/date-field/test/locale.tsx | 14 ++++++++++++++ .../format-options-chromium-linux.png | Bin 15441 -> 15816 bytes 6 files changed, 44 insertions(+), 22 deletions(-) create mode 100644 packages/@godaddy/antares/components/date-field/test/locale.tsx diff --git a/packages/@godaddy/antares/components/date-field/src/index.tsx b/packages/@godaddy/antares/components/date-field/src/index.tsx index 498cecd0a..68379f0d7 100644 --- a/packages/@godaddy/antares/components/date-field/src/index.tsx +++ b/packages/@godaddy/antares/components/date-field/src/index.tsx @@ -11,6 +11,11 @@ import styles from './index.module.css'; export { I18nProvider, type I18nProviderProps } from 'react-aria-components'; +/** + * Extended props for the DateField component. + * Typed for `CalendarDate` (date-only, no time, no timezone). + * Extends RAC DateFieldProps. + */ export interface DateFieldProps extends Omit, 'children' | 'errorMessage'>, Pick { diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx index 588e7a32d..78aac3c2c 100644 --- a/packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx +++ b/packages/@godaddy/antares/components/date-field/test/date-field.browser.test.tsx @@ -8,12 +8,13 @@ import { DateFieldDisabledRequiredReadOnlyExample } from '../examples/disabled-r import { DateFieldFormExample } from '../examples/form.tsx'; import { DateFieldWithDefaultValueExample } from '../examples/with-default-value.tsx'; import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; +import { withTestLocale } from './locale.tsx'; describe('@godaddy/antares', function antares() { describe('#DateField', function dateField() { describe('#basic', function basic() { it('renders label and editable segments', async function renders() { - const { locator, container } = await render(); + const { locator, container } = await render(withTestLocale()); assume(locator.getByText('Start date').element()).exists(); assume(container.querySelectorAll('[data-type="month"]').length).is.at.least(1); @@ -24,7 +25,7 @@ describe('@godaddy/antares', function antares() { describe('#withDefaultValue', function withDefaultValue() { it('populates segments from a CalendarDate default', async function defaults() { - const { container } = await render(); + const { container } = await render(withTestLocale()); const text = container.textContent ?? ''; assume(text).contains('2024'); @@ -34,7 +35,7 @@ describe('@godaddy/antares', function antares() { describe('#controlled', function controlled() { it('shows the controlled value as ISO string', async function shows() { - const { locator } = await render(); + const { locator } = await render(withTestLocale()); assume(locator.getByText(/2024-03-15/).element()).exists(); }); @@ -42,7 +43,7 @@ describe('@godaddy/antares', function antares() { describe('#withError', function withError() { it('renders error message and data-invalid', async function invalid() { - const { locator, container } = await render(); + const { locator, container } = await render(withTestLocale()); assume(locator.getByText('Please enter a valid date.').element()).exists(); assume(container.querySelector('[data-invalid="true"]')).exists(); @@ -51,7 +52,7 @@ describe('@godaddy/antares', function antares() { describe('#disabledRequiredReadonly', function disabledRequiredReadonly() { it('renders disabled, required, and read-only states', async function states() { - const { container } = await render(); + const { container } = await render(withTestLocale()); assume(container.querySelector('[data-disabled="true"]')).exists(); assume(container.querySelector('[data-readonly="true"]')).exists(); @@ -61,7 +62,7 @@ describe('@godaddy/antares', function antares() { describe('#keyboard', function keyboard() { it('arrow up increments the focused segment', async function arrowUp() { - const { container } = await render(); + const { container } = await render(withTestLocale()); const monthSegment = container.querySelector('[data-type="month"]'); assume(monthSegment).exists(); @@ -75,7 +76,7 @@ describe('@godaddy/antares', function antares() { describe('#form', function form() { it('submits an ISO date string under the name prop', async function submits() { - const { container, locator } = await render(); + const { container, locator } = await render(withTestLocale()); const yearSegment = container.querySelector('[data-type="year"]'); const monthSegment = container.querySelector('[data-type="month"]'); const daySegment = container.querySelector('[data-type="day"]'); diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx index a5ba82e04..b4308ae29 100644 --- a/packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx +++ b/packages/@godaddy/antares/components/date-field/test/date-field.node.test.tsx @@ -7,43 +7,44 @@ import { DateFieldMinMaxExample } from '../examples/min-max.tsx'; import { DateFieldWithDefaultValueExample } from '../examples/with-default-value.tsx'; import { DateFieldWithDescriptionExample } from '../examples/with-description.tsx'; import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; +import { withTestLocale } from './locale.tsx'; describe('@godaddy/antares', function antares() { describe('#DateField', function dateField() { describe('#examples', function examples() { it('renders basic example', function basic() { - const result = renderToString(); + const result = renderToString(withTestLocale()); expect(result).toMatchSnapshot(); }); it('renders with-default-value example', function withDefault() { - const result = renderToString(); + const result = renderToString(withTestLocale()); expect(result).toContain('2024'); expect(result).toMatchSnapshot(); }); it('renders controlled example', function controlled() { - const result = renderToString(); + const result = renderToString(withTestLocale()); expect(result).toMatchSnapshot(); }); it('renders with-description example', function withDescription() { - const result = renderToString(); + const result = renderToString(withTestLocale()); expect(result).toContain('subscription begins'); }); it('renders with-error example', function withError() { - const result = renderToString(); + const result = renderToString(withTestLocale()); expect(result).toContain('data-invalid'); }); it('renders min-max example', function minMax() { - const result = renderToString(); + const result = renderToString(withTestLocale()); expect(result).toMatchSnapshot(); }); it('renders disabled-required-readonly example', function dro() { - const result = renderToString(); + const result = renderToString(withTestLocale()); expect(result).toContain('data-disabled'); expect(result).toContain('data-readonly'); }); diff --git a/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx index 581d62a42..25d554875 100644 --- a/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx +++ b/packages/@godaddy/antares/components/date-field/test/date-field.visual.test.tsx @@ -9,46 +9,47 @@ import { DateFieldWithDefaultValueExample } from '../examples/with-default-value import { DateFieldWithDescriptionExample } from '../examples/with-description.tsx'; import { DateFieldWithErrorExample } from '../examples/with-error.tsx'; import { DateFieldWithI18nExample } from '../examples/with-i18n.tsx'; +import { withTestLocale } from './locale.tsx'; describe('@godaddy/antares', function antares() { describe('#DateField', function dateFieldTests() { it('basic example', async function basicRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('basic'); }); it('controlled example', async function controlledRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('controlled'); }); it('default example', async function defaultRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('default'); }); it('with-description example', async function withDescriptionRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('with-description'); }); it('with-error example', async function withErrorRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('with-error'); }); it('min-max example', async function minMaxRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('min-max'); }); it('disabled-required-readonly example', async function disabledRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('disabled-required-readonly'); }); it('form example', async function formRender() { - const { container } = await render(); + const { container } = await render(withTestLocale()); await expect(container).toMatchScreenshot('form'); }); diff --git a/packages/@godaddy/antares/components/date-field/test/locale.tsx b/packages/@godaddy/antares/components/date-field/test/locale.tsx new file mode 100644 index 000000000..884de2850 --- /dev/null +++ b/packages/@godaddy/antares/components/date-field/test/locale.tsx @@ -0,0 +1,14 @@ +import type { ReactElement } from 'react'; +import { I18nProvider } from '@godaddy/antares'; + +/** + * Locale used to lock segment ordering, placeholder text, and numeral system + * for tests. Without this, RAC resolves the host runner's default locale, which + * varies across CI machines and produces flaky assertions/snapshots/screenshots. + */ +export const TEST_LOCALE = 'en-US'; + +/** Wraps a node in `` for deterministic tests. */ +export function withTestLocale(node: ReactElement): ReactElement { + return {node}; +} diff --git a/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/format-options-chromium-linux.png b/packages/@godaddy/antares/components/number-field/test/__screenshots__/number-field.visual.test.tsx/format-options-chromium-linux.png index 163de4f964b3a6e6d87819296c0cd85b2164f859..af8f8efdb5f7c71f91978f75c81f8e49fe457e1e 100644 GIT binary patch literal 15816 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 z zfQxBZ8OfnHsjF~J*Q0rFuc~uaXfXn?$?w0TjfLQbq(U2KKRe|*H@sHL1JGv@DOPVUxCp;{3$56+^B4U%Soo4Y2;_BqI%h_4%r&}CPTSoS*5n0 zTZqqRFI6#U4 zo+O%;O>R^Yh$G-!%(V^+Dk5jCer-w?fd_R-Di)Da20OrfZEbn+N435Uyc|`N=6QC=Ocb6Ht85p}PObSn zUh^HiYq#+WS7$SmQE&D~oQWygmh35I546!rWl9#gayYK??als~w@I?{fQFSRy@LFm zoWCKnqFKqv*=O+GOP)z{i@4OcmW%l^7Nl{*Z0KZZ5Liuyc@LIfY?YUd_ z$63&B9@2*A{r9Jyku<&52LXAP1fC?~o0%nh;W3`d=axP`6UUHNVIk3fGB2}#&%9pX ZS8Rm@3n(%uV876Yla*AGs1-8``CmY67vul{ literal 15441 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 tH2FVQ#ldHWnqLSGezk(E-CtdKAc`9FFiMRx!I From 5d4d14cac8ecafd904573252926d8701b0b97b7c Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 20:12:21 -0500 Subject: [PATCH 18/20] refactor(antares): separate I18nProvider export and enhance field focus styles --- .../components/_internal/field-frame/src/index.module.css | 6 ++++-- .../@godaddy/antares/components/date-field/src/index.tsx | 2 -- packages/@godaddy/antares/exports/DateField.ts | 2 +- packages/@godaddy/antares/exports/I18nProvider.ts | 1 + packages/@godaddy/antares/index.ts | 4 +++- 5 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 packages/@godaddy/antares/exports/I18nProvider.ts diff --git a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css index 8ff2a94b9..bc62d7e82 100644 --- a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css +++ b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css @@ -58,12 +58,14 @@ } &[data-invalid]:has(input[data-focused="true"]), - &[data-invalid]:has(textarea[data-focused="true"]) { + &[data-invalid]:has(textarea[data-focused="true"]), + &[data-invalid]:has([role="spinbutton"][data-focused="true"]) { outline: 2px solid var(--field-frame-critical-color); } &:has(input[data-focused="true"]), - &:has(textarea[data-focused="true"]) { + &:has(textarea[data-focused="true"]), + &:has([role="spinbutton"][data-focused="true"]) { outline: 2px solid Highlight; outline: 2px auto -webkit-focus-ring-color; outline-offset: -1px; diff --git a/packages/@godaddy/antares/components/date-field/src/index.tsx b/packages/@godaddy/antares/components/date-field/src/index.tsx index 68379f0d7..af96e58c6 100644 --- a/packages/@godaddy/antares/components/date-field/src/index.tsx +++ b/packages/@godaddy/antares/components/date-field/src/index.tsx @@ -9,8 +9,6 @@ import { FieldFrame, type FieldFrameProps } from '#components/_internal/field-fr import { Flex } from '#components/layout/flex'; import styles from './index.module.css'; -export { I18nProvider, type I18nProviderProps } from 'react-aria-components'; - /** * Extended props for the DateField component. * Typed for `CalendarDate` (date-only, no time, no timezone). diff --git a/packages/@godaddy/antares/exports/DateField.ts b/packages/@godaddy/antares/exports/DateField.ts index 0f1027484..6028f6dd7 100644 --- a/packages/@godaddy/antares/exports/DateField.ts +++ b/packages/@godaddy/antares/exports/DateField.ts @@ -1 +1 @@ -export { DateField, I18nProvider, type DateFieldProps, type I18nProviderProps } from '#components/date-field'; +export { DateField, type DateFieldProps } from '#components/date-field'; diff --git a/packages/@godaddy/antares/exports/I18nProvider.ts b/packages/@godaddy/antares/exports/I18nProvider.ts new file mode 100644 index 000000000..087f38bce --- /dev/null +++ b/packages/@godaddy/antares/exports/I18nProvider.ts @@ -0,0 +1 @@ +export { I18nProvider, type I18nProviderProps } from 'react-aria-components'; diff --git a/packages/@godaddy/antares/index.ts b/packages/@godaddy/antares/index.ts index cfd15b828..69262573e 100644 --- a/packages/@godaddy/antares/index.ts +++ b/packages/@godaddy/antares/index.ts @@ -61,7 +61,9 @@ export { TextField, type TextFieldProps } from '#components/text-field'; export { NumberField, type NumberFieldProps } from '#components/number-field'; -export { DateField, I18nProvider, type DateFieldProps, type I18nProviderProps } from '#components/date-field'; +export { DateField, type DateFieldProps } from '#components/date-field'; + +export { I18nProvider, type I18nProviderProps } from 'react-aria-components'; export { Carousel, type CarouselProps, type CarouselRef } from '#components/carousel'; From 8ad7bdce68992cb9b0a21a17cbc93f5064168415 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 21:05:26 -0500 Subject: [PATCH 19/20] fix(field-frame): update group context handling --- .../components/_internal/field-frame/src/index.module.css | 5 +---- .../components/_internal/field-frame/src/index.tsx | 4 +++- .../test/__snapshots__/date-field.node.test.tsx.snap | 8 ++++---- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css index bc62d7e82..50eeea3a8 100644 --- a/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css +++ b/packages/@godaddy/antares/components/_internal/field-frame/src/index.module.css @@ -84,13 +84,10 @@ outline: none; flex: 1; padding-inline: var(--sp-md); + padding-block: var(--sp-md); min-width: 0; &[data-disabled] { cursor: not-allowed; } } - -.input { - padding-block: var(--sp-md); -} diff --git a/packages/@godaddy/antares/components/_internal/field-frame/src/index.tsx b/packages/@godaddy/antares/components/_internal/field-frame/src/index.tsx index 6fe86c1fe..e5c4348e5 100644 --- a/packages/@godaddy/antares/components/_internal/field-frame/src/index.tsx +++ b/packages/@godaddy/antares/components/_internal/field-frame/src/index.tsx @@ -117,7 +117,7 @@ export const FieldFrame = forwardRef(function F (function F )} #DateField > #examples > renders basic example 1`] = `"

    "`; +exports[`@godaddy/antares > #DateField > #examples > renders basic example 1`] = `"
    Start date
    mmddyyyy
    "`; -exports[`@godaddy/antares > #DateField > #examples > renders controlled example 1`] = `"
    Start date
    3152024
    Value: 2024-03-15"`; +exports[`@godaddy/antares > #DateField > #examples > renders controlled example 1`] = `"
    Start date
    3152024
    Value: 2024-03-15"`; -exports[`@godaddy/antares > #DateField > #examples > renders min-max example 1`] = `"
    Booking date
    6152024
    Must fall within 2024.
    "`; +exports[`@godaddy/antares > #DateField > #examples > renders min-max example 1`] = `"
    Booking date
    6152024
    Must fall within 2024.
    "`; -exports[`@godaddy/antares > #DateField > #examples > renders with-default-value example 1`] = `"
    Start date
    3152024
    "`; +exports[`@godaddy/antares > #DateField > #examples > renders with-default-value example 1`] = `"
    Start date
    3152024
    "`; From afd358360d4f1bf6a886031435f6a84dd7d7c9a7 Mon Sep 17 00:00:00 2001 From: Erwin Gaitan Date: Mon, 1 Jun 2026 21:21:13 -0500 Subject: [PATCH 20/20] feat(antares): changeset description --- .changeset/date-field-component.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/date-field-component.md b/.changeset/date-field-component.md index 1a554ef9b..9ca43d9d8 100644 --- a/.changeset/date-field-component.md +++ b/.changeset/date-field-component.md @@ -2,4 +2,4 @@ '@godaddy/antares': minor --- -feat(antares): add DateField component +feat(antares): add DateField component and re-export I18nProvider