feat(ui): add DateRangePicker component

Adds a new DateRangePicker component to @backstage/ui built on React Aria,
featuring a custom field group with two DateInput fields and a calendar
trigger, a RangeCalendar popover with proper range selection visuals
(solid circles for start/end, transparent solid fill for in-range cells
with row-boundary rounding), and full BUI token usage including bg
consumer auto-increment. Includes Storybook stories and a docs-ui page.

Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
Made-with: Cursor
This commit is contained in:
Charles de Dreuille
2026-04-14 18:13:15 +01:00
parent c3ca20c864
commit 401916d55b
18 changed files with 1180 additions and 7 deletions
+24 -7
View File
@@ -7973,6 +7973,7 @@ __metadata:
dependencies:
"@backstage/cli": "workspace:^"
"@backstage/version-bridge": "workspace:^"
"@internationalized/date": "npm:^3.12.0"
"@remixicon/react": "npm:^4.6.0"
"@storybook/react-vite": "npm:^10.3.3"
"@tanstack/react-table": "npm:^8.21.3"
@@ -10127,6 +10128,15 @@ __metadata:
languageName: unknown
linkType: soft
"@internationalized/date@npm:^3.12.0":
version: 3.12.0
resolution: "@internationalized/date@npm:3.12.0"
dependencies:
"@swc/helpers": "npm:^0.5.0"
checksum: 10/0bc2e95385e156362a07a8788e93b4b380b43170cca75c19a9a72cb1840c1c701bb0d1fa67d9ba5e2fbc1e44b5bea29bca02b325d0daa2f960b92a71898ede92
languageName: node
linkType: hard
"@internationalized/date@npm:^3.12.1":
version: 3.12.1
resolution: "@internationalized/date@npm:3.12.1"
@@ -11885,8 +11895,8 @@ __metadata:
linkType: hard
"@mswjs/interceptors@npm:^0.39.1":
version: 0.39.8
resolution: "@mswjs/interceptors@npm:0.39.8"
version: 0.39.6
resolution: "@mswjs/interceptors@npm:0.39.6"
dependencies:
"@open-draft/deferred-promise": "npm:^2.2.0"
"@open-draft/logger": "npm:^0.3.0"
@@ -11894,7 +11904,7 @@ __metadata:
is-node-process: "npm:^1.2.0"
outvariant: "npm:^1.4.3"
strict-event-emitter: "npm:^0.5.1"
checksum: 10/d92546cf9bf670ddb927c53f5fa19f0554b7475a264ead4e1ae2339874f4312fe4ada5d42588f27eea3577bee29fa8f46889d398f0e7ecb3f7a4c1d3e0b71bdc
checksum: 10/c87d3edf08353bde825c87b151b24d538070540ab419206cef1774c932e888af0f920183182fb7c94c3eee42068da5a0a5855853fded8514f33c870921ef37ec
languageName: node
linkType: hard
@@ -27474,14 +27484,14 @@ __metadata:
linkType: hard
"dompurify@npm:^3.1.7, dompurify@npm:^3.3.2":
version: 3.4.0
resolution: "dompurify@npm:3.4.0"
version: 3.3.3
resolution: "dompurify@npm:3.3.3"
dependencies:
"@types/trusted-types": "npm:^2.0.7"
dependenciesMeta:
"@types/trusted-types":
optional: true
checksum: 10/ead40b78ec51cd451f2c74fada4233ee0afeafdbab54af2f4a4bd5d4d138ac04d0d85140e79f533803ecfd1c3758edc1176087039c1e7217824f9794a9d34d2c
checksum: 10/4cc9c539ed7136d46c6577613b8e20871c2b6165db01dfbd2a3c11c75f9e339c496ac6519a1c3190115def8cadae3720bef0417fc43fa28802c7407bab174da9
languageName: node
linkType: hard
@@ -47215,7 +47225,7 @@ __metadata:
languageName: node
linkType: hard
"undici@npm:7.24.7, undici@npm:^7.24.3, undici@npm:^7.24.5":
"undici@npm:7.24.7":
version: 7.24.7
resolution: "undici@npm:7.24.7"
checksum: 10/bce7b75fe2656bbd1f9c9d5d1b6b89670773281343be25d0b1f4d808dcce97d81509987d1f3183d37a63d3a57f5f217ed8ed15ee3e103384c54e190f4e360c48
@@ -47231,6 +47241,13 @@ __metadata:
languageName: node
linkType: hard
"undici@npm:^7.24.3, undici@npm:^7.24.5":
version: 7.24.6
resolution: "undici@npm:7.24.6"
checksum: 10/9c8df674284b1e9b8c3fee543883ad71c20d5fb3b6f6595330342f3dad30de944c2d55ff15aa59e7a088af272ce73be6e93baad9ab817b1b82e5c83298c23d8e
languageName: node
linkType: hard
"uni-global@npm:^1.0.0":
version: 1.0.0
resolution: "uni-global@npm:1.0.0"