From 29fe1322325f57710638f5d351ddd14bdb4d03c3 Mon Sep 17 00:00:00 2001 From: Barry van Veen Date: Wed, 1 Jul 2026 15:12:12 +0200 Subject: [PATCH 1/3] DateFromToFilter component --- src/components/DateFromToFilter.tsx | 124 +++ .../__tests__/DateFromToFilter.test.tsx | 128 ++++ .../DateFromToFilter.test.tsx.snap | 713 ++++++++++++++++++ src/index.ts | 2 + 4 files changed, 967 insertions(+) create mode 100644 src/components/DateFromToFilter.tsx create mode 100644 src/components/__tests__/DateFromToFilter.test.tsx create mode 100644 src/components/__tests__/__snapshots__/DateFromToFilter.test.tsx.snap diff --git a/src/components/DateFromToFilter.tsx b/src/components/DateFromToFilter.tsx new file mode 100644 index 0000000..9e975e1 --- /dev/null +++ b/src/components/DateFromToFilter.tsx @@ -0,0 +1,124 @@ +import React from 'react' +import { StyleProp, StyleSheet, Text, TouchableOpacity, View, ViewStyle } from 'react-native' + +import { Icon } from '@observation.org/react-native-components' +import { rounded } from '@observation.org/react-native-components/styles' + +import Log from '../lib/Log' +import { Theme, useStyles, useTheme } from '../theme' + +const height = 48 + +type Props = { + dateFrom: string | undefined + dateTo: string | undefined + emptyDateFromLabel: string + emptyDateToLabel: string + onPressFrom: () => void + onPressTo: () => void + containerStyle?: StyleProp +} + +const DateFromToFilter = ({ + dateFrom, + dateTo, + emptyDateFromLabel, + emptyDateToLabel, + onPressFrom, + onPressTo, +}: Props) => { + Log.debug('DateFromToFilter:render') + + const theme = useTheme() + const styles = useStyles(createStyles) + + const fromIsActive = dateFrom !== undefined + const toIsActive = dateTo !== undefined + + return ( + + + + + + {dateFrom ? dateFrom : emptyDateFromLabel} + + + + + + + + + + + + + {dateTo ? dateTo : emptyDateToLabel} + + + + + ) +} + +export default DateFromToFilter + +const createStyles = (theme: Theme) => { + const styles = StyleSheet.create({ + dateContainer: { + flexDirection: 'row', + alignItems: 'center', + }, + dateFieldContainer: { + flex: 0.5, + }, + divider: { + marginHorizontal: theme.margin.half, + color: theme.color.text.system.subtler, + }, + dateInputField: { + ...rounded.large, + height: height, + backgroundColor: theme.color.background.system.surfaceRaised, + paddingLeft: theme.margin.common, + flexDirection: 'row', + alignItems: 'center', + }, + dateInputText: { + ...theme.text.body, + marginLeft: theme.margin.half, + }, + }) + return styles +} diff --git a/src/components/__tests__/DateFromToFilter.test.tsx b/src/components/__tests__/DateFromToFilter.test.tsx new file mode 100644 index 0000000..080bf06 --- /dev/null +++ b/src/components/__tests__/DateFromToFilter.test.tsx @@ -0,0 +1,128 @@ +import React from 'react' + +import { describe, expect, jest, test } from '@jest/globals' +import { fireEvent, render } from '@testing-library/react-native' + +import DateFromToFilter from '../DateFromToFilter' + +describe('DateFromToFilter', () => { + const onPressFrom = jest.fn() + const onPressTo = jest.fn() + + const dateFromLabel = 'Start date' + const dateToLabel = 'End date' + + describe('Rendering', () => { + test('No date selected', () => { + const { queryByText, toJSON } = render( + , + ) + + expect(queryByText('Start date')).toBeTruthy() + expect(queryByText('End date')).toBeTruthy() + expect(toJSON()).toMatchSnapshot() + }) + + test('From date selected', () => { + const { queryByText, toJSON } = render( + , + ) + + expect(queryByText('2026-01-31')).toBeTruthy() + expect(queryByText('End date')).toBeTruthy() + expect(toJSON()).toMatchSnapshot() + }) + + test('To date selected', () => { + const { queryByText, toJSON } = render( + , + ) + + expect(queryByText('Start date')).toBeTruthy() + expect(queryByText('2025-02-15')).toBeTruthy() + expect(toJSON()).toMatchSnapshot() + }) + + test('From and date selected', () => { + const { queryByText, toJSON } = render( + , + ) + + expect(queryByText('2026-01-31')).toBeTruthy() + expect(queryByText('2025-02-15')).toBeTruthy() + expect(queryByText('Start date')).toBeFalsy() + expect(queryByText('End date')).toBeFalsy() + expect(toJSON()).toMatchSnapshot() + }) + }) + + describe('Interaction', () => { + test('Clicking on the from date will call the callback', async () => { + // GIVEN + const { getByTestId } = render( + , + ) + + // WHEN + await fireEvent.press(getByTestId('date-filter-field-from')) + + // THEN + expect(onPressFrom).toHaveBeenCalled() + }) + + test('Clicking on the to date will call the callback', async () => { + // GIVEN + const { getByTestId } = render( + , + ) + + // WHEN + await fireEvent.press(getByTestId('date-filter-field-to')) + + // THEN + expect(onPressTo).toHaveBeenCalled() + }) + }) +}) diff --git a/src/components/__tests__/__snapshots__/DateFromToFilter.test.tsx.snap b/src/components/__tests__/__snapshots__/DateFromToFilter.test.tsx.snap new file mode 100644 index 0000000..fe14f65 --- /dev/null +++ b/src/components/__tests__/__snapshots__/DateFromToFilter.test.tsx.snap @@ -0,0 +1,713 @@ +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing + +exports[`DateFromToFilter Rendering From and date selected 1`] = ` + + + + + + 2026-01-31 + + + + + + – + + + + + + + 2025-02-15 + + + + +`; + +exports[`DateFromToFilter Rendering From date selected 1`] = ` + + + + + + 2026-01-31 + + + + + + – + + + + + + + End date + + + + +`; + +exports[`DateFromToFilter Rendering No date selected 1`] = ` + + + + + + Start date + + + + + + – + + + + + + + End date + + + + +`; + +exports[`DateFromToFilter Rendering To date selected 1`] = ` + + + + + + Start date + + + + + + – + + + + + + + 2025-02-15 + + + + +`; diff --git a/src/index.ts b/src/index.ts index e64cefc..b8a3f7d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,6 +7,7 @@ import Checkbox from './components/Checkbox' import Chip from './components/Chip' import ContentImage from './components/ContentImage' import Date from './components/Date' +import DateFromToFilter from './components/DateFromToFilter' import Disclose from './components/Disclose' import DocumentLink from './components/DocumentLink' import FilterButton from './components/FilterButton' @@ -51,6 +52,7 @@ export { Chip, ContentImage, Date, + DateFromToFilter, Disclose, DocumentLink, FilterButton, From 982dcaacc9b1749db1267282b669bc01d38b2369 Mon Sep 17 00:00:00 2001 From: Barry van Veen Date: Wed, 1 Jul 2026 16:06:14 +0200 Subject: [PATCH 2/3] DatePicker component --- package.json | 3 + src/components/DatePicker.tsx | 83 + src/components/__tests__/DatePicker.test.tsx | 80 + .../__snapshots__/DatePicker.test.tsx.snap | 2873 +++++++++++++++++ src/index.ts | 2 + yarn.lock | 762 ++++- 6 files changed, 3797 insertions(+), 6 deletions(-) create mode 100644 src/components/DatePicker.tsx create mode 100644 src/components/__tests__/DatePicker.test.tsx create mode 100644 src/components/__tests__/__snapshots__/DatePicker.test.tsx.snap diff --git a/package.json b/package.json index 4c4ad61..9d385da 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "@testing-library/react-native": "^13.3.3", "@types/jest": "^30.0.0", "@types/react": "^19.2.0", + "@types/react-native-calendar-picker": "^8.0.0", "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", @@ -69,6 +70,8 @@ "@react-native-community/blur": "^4.4.1", "accordion-collapse-react-native": "^1.1.1", "color": "^5.0.3", + "date-fns": "^4.1.0", + "react-native-calendar-picker": "^8.0.5", "react-native-logs": "^5.5.0", "react-native-render-html": "^6.3.4", "react-native-scalable-image": "^1.1.0" diff --git a/src/components/DatePicker.tsx b/src/components/DatePicker.tsx new file mode 100644 index 0000000..f56663f --- /dev/null +++ b/src/components/DatePicker.tsx @@ -0,0 +1,83 @@ +import React from 'react' +import { Dimensions, StyleSheet, View } from 'react-native' + +import CalendarPicker from 'react-native-calendar-picker' + +import Log from '../lib/Log' +import { useStyles, useTheme } from '../theme' + +type Props = { + selectedDate: Date + onDateChange: (date: Date) => void + minimumDate?: Date + maximumDate?: Date + labelNext: string + labelPrevious: string + labelSelectMonth: string + labelSelectYear: string + labelsShortWeekdays: string[] + labelsMonths: string[] +} + +const DatePicker = ({ + selectedDate, + onDateChange, + minimumDate, + maximumDate, + labelNext, + labelPrevious, + labelSelectMonth, + labelSelectYear, + labelsShortWeekdays, + labelsMonths, +}: Props) => { + Log.debug('DatePicker:render') + + const theme = useTheme() + const styles = useStyles(createStyles) + + return ( + + + + ) +} + +export default DatePicker + +// The height of the calendar is not constant, but depends on the number of weeks in a month. +// To prevent the popup to jump up and down, use a fixed height for the calendar, which is always +// large enough to hold 6 week rows. 90% of the screen width seems to work in all aspect ratio's. +export const calendarHeight = Dimensions.get('window').width * 0.9 + +const createStyles = () => { + const styles = StyleSheet.create({ + container: { + height: calendarHeight, + }, + }) + return styles +} diff --git a/src/components/__tests__/DatePicker.test.tsx b/src/components/__tests__/DatePicker.test.tsx new file mode 100644 index 0000000..03d6b4b --- /dev/null +++ b/src/components/__tests__/DatePicker.test.tsx @@ -0,0 +1,80 @@ +import React from 'react' + +import { describe, expect, jest, test } from '@jest/globals' +import { fireEvent, render } from '@testing-library/react-native' + +import DatePicker from '../DatePicker' + +jest.useFakeTimers({ now: new Date('2023-10-31T20:49:12').getTime() }) + +describe('DatePicker', () => { + const onDateChange = jest.fn() + const date = new Date() + date.setFullYear(date.getFullYear() + 1) + + const labelNext = 'Next' + const labelPrevious = 'Previous' + const labelSelectMonth = 'Select month' + const labelSelectYear = 'Select year' + const labelsShortWeekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + const labelsMonths = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', + ] + + describe('Rendering', () => { + test('Initial', () => { + const { toJSON } = render( + , + ) + + expect(toJSON()).toMatchSnapshot() + }) + }) + + describe('Interaction', () => { + test('Click on date triggers a callback', () => { + // GIVEN + const { getByText } = render( + , + ) + + // WHEN + fireEvent.press(getByText('5')) + + // THEN + expect(onDateChange).toHaveBeenCalled() + const [call] = onDateChange.mock.calls + const [newDate] = call as any + expect(newDate.toISOString().split('T')[0]).toBe('2024-10-05') + }) + }) +}) diff --git a/src/components/__tests__/__snapshots__/DatePicker.test.tsx.snap b/src/components/__tests__/__snapshots__/DatePicker.test.tsx.snap new file mode 100644 index 0000000..dadb5b5 --- /dev/null +++ b/src/components/__tests__/__snapshots__/DatePicker.test.tsx.snap @@ -0,0 +1,2873 @@ +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing + +exports[`DatePicker Rendering Initial 1`] = ` + + + + + + + Previous + + + + + + + October + + + + + 2024 + + + + + + + Next + + + + + + + + Mon + + + + + Tue + + + + + Wed + + + + + Thu + + + + + Fri + + + + + Sat + + + + + Sun + + + + + + + + + + + + + + + 1 + + + + + + + 2 + + + + + + + 3 + + + + + + + 4 + + + + + + + 5 + + + + + + + + + 6 + + + + + + + 7 + + + + + + + 8 + + + + + + + 9 + + + + + + + 10 + + + + + + + 11 + + + + + + + 12 + + + + + + + + + 13 + + + + + + + 14 + + + + + + + 15 + + + + + + + 16 + + + + + + + 17 + + + + + + + 18 + + + + + + + 19 + + + + + + + + + 20 + + + + + + + 21 + + + + + + + 22 + + + + + + + 23 + + + + + + + 24 + + + + + + + 25 + + + + + + + 26 + + + + + + + + + 27 + + + + + + + 28 + + + + + + + 29 + + + + + + + 30 + + + + + + + 31 + + + + + + + + +`; diff --git a/src/index.ts b/src/index.ts index b8a3f7d..d842694 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,6 +8,7 @@ import Chip from './components/Chip' import ContentImage from './components/ContentImage' import Date from './components/Date' import DateFromToFilter from './components/DateFromToFilter' +import DatePicker from './components/DatePicker' import Disclose from './components/Disclose' import DocumentLink from './components/DocumentLink' import FilterButton from './components/FilterButton' @@ -53,6 +54,7 @@ export { ContentImage, Date, DateFromToFilter, + DatePicker, Disclose, DocumentLink, FilterButton, diff --git a/yarn.lock b/yarn.lock index 63b37ec..9715f6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -215,6 +215,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.29.0, @babel/code-frame@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/code-frame@npm:7.29.7" + dependencies: + "@babel/helper-validator-identifier": ^7.29.7 + js-tokens: ^4.0.0 + picocolors: ^1.1.1 + checksum: 21b12fe2356e36f6cc3cd8a3721f878bfeea80ce38356979a0518b47b3aafdcc0bd263da75ccc9d51c64d40b1b6df00e768ce2446acb0b7cbec0ae8f905663ad + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" @@ -380,6 +391,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.1, @babel/generator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/generator@npm:7.29.7" + dependencies: + "@babel/parser": ^7.29.7 + "@babel/types": ^7.29.7 + "@jridgewell/gen-mapping": ^0.3.12 + "@jridgewell/trace-mapping": ^0.3.28 + jsesc: ^3.0.2 + checksum: 6bb8f4dc0641dca19e81f5daab37ed1a1f5a78e4d702eb79a4275739f773975134e250090c182cf1eea35d9bd65e634b9d9babf66600ffdcf8ac62fa40f3b980 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" @@ -497,6 +521,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-globals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-globals@npm:7.29.7" + checksum: 6deaf9846a415c7f110ac153e8c3d81e3543c9b685aa9fd9a59b4235f402e2b760129d3df49466daea9162f0cf73ff98a0ec7f180448a3449ca14ae5e1117b42 + languageName: node + linkType: hard + "@babel/helper-hoist-variables@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-hoist-variables@npm:7.22.5" @@ -719,6 +750,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-string-parser@npm:7.29.7" + checksum: 4c229d2c2296b6c94439e87ecddf3a93cee3ffd2d4cee0b4c28079275bed3de4e02cd943e4cb06036d1d9407549c4e3423006b61a46215c482fce902ee02bc0b + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.22.5": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -747,6 +785,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-identifier@npm:7.29.7" + checksum: cc7779e96fe9c9478c96ca4bf04fc338b95b501aa5abe78178307dea282d4a5dc23d443efb12dde8e8c5636d03dd00e443532e6ed7f15fa7977349af1f87ba4d + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.23.5": version: 7.23.5 resolution: "@babel/helper-validator-option@npm:7.23.5" @@ -895,6 +940,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.29.0, @babel/parser@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/parser@npm:7.29.7" + dependencies: + "@babel/types": ^7.29.7 + bin: + parser: ./bin/babel-parser.js + checksum: 56f4c32a371004d3becd0a960a85a3bba4ec4df73d5e202aa3fe6473328b243162c6be9a510be1c12ed1825f5ce9ff1ea5cc357298631e8acf2e5b8da9f5a961 + languageName: node + linkType: hard + "@babel/plugin-proposal-export-default-from@npm:^7.24.7": version: 7.25.9 resolution: "@babel/plugin-proposal-export-default-from@npm:7.25.9" @@ -1656,6 +1712,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.28.6, @babel/template@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/template@npm:7.29.7" + dependencies: + "@babel/code-frame": ^7.29.7 + "@babel/parser": ^7.29.7 + "@babel/types": ^7.29.7 + checksum: 521eb6a1fd4735074ca8dac0d70810860a80edf3bf78105851571993cd13701a2041987e7398ccc9376eb6235ea1258bf494ccaccf3b67fa98dbe954154a2e93 + languageName: node + linkType: hard + "@babel/template@npm:^7.3.3": version: 7.22.5 resolution: "@babel/template@npm:7.22.5" @@ -1733,6 +1800,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.29.0": + version: 7.29.7 + resolution: "@babel/traverse@npm:7.29.7" + dependencies: + "@babel/code-frame": ^7.29.7 + "@babel/generator": ^7.29.7 + "@babel/helper-globals": ^7.29.7 + "@babel/parser": ^7.29.7 + "@babel/template": ^7.29.7 + "@babel/types": ^7.29.7 + debug: ^4.3.1 + checksum: 6c4508fd2a308a6a41fbf40bd2590bccfdc3903de51c640a928c49e810220b9e27323a083cda604d44a27449b57265a701b549de01f479611390863734b4fd38 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.3.3": version: 7.22.5 resolution: "@babel/types@npm:7.22.5" @@ -1797,6 +1879,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.29.0, @babel/types@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/types@npm:7.29.7" + dependencies: + "@babel/helper-string-parser": ^7.29.7 + "@babel/helper-validator-identifier": ^7.29.7 + checksum: 71c46837d22c5c63a5ed571f3b68b4261ecabfc3d4be7251b336ccbd26bc52752ae68ae6d16d24ea512311b78b6f54efdfb00dde87a81a4dc3d19e4a45f05b20 + languageName: node + linkType: hard + "@babel/types@npm:^7.8.3": version: 7.24.7 resolution: "@babel/types@npm:7.24.7" @@ -2681,8 +2773,10 @@ __metadata: "@testing-library/react-native": ^13.3.3 "@types/jest": ^30.0.0 "@types/react": ^19.2.0 + "@types/react-native-calendar-picker": ^8.0.0 accordion-collapse-react-native: ^1.1.1 color: ^5.0.3 + date-fns: ^4.1.0 eslint: ^9.39.2 eslint-config-prettier: ^10.1.8 eslint-plugin-import: ^2.32.0 @@ -2696,6 +2790,7 @@ __metadata: prettier: ^3.7.4 react: 19.2.0 react-native: 0.83.1 + react-native-calendar-picker: ^8.0.5 react-native-logs: ^5.5.0 react-native-render-html: ^6.3.4 react-native-scalable-image: ^1.1.0 @@ -2752,6 +2847,13 @@ __metadata: languageName: node linkType: hard +"@react-native/assets-registry@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/assets-registry@npm:0.86.0" + checksum: 96fc63ac00e97c4913c392677752bb51f2700958404be7b7a76369288ce3fb52ca7c670d638581535e4e710a73583af722b8f33a56d69f306e36f7132d3daec3 + languageName: node + linkType: hard + "@react-native/babel-plugin-codegen@npm:0.83.1": version: 0.83.1 resolution: "@react-native/babel-plugin-codegen@npm:0.83.1" @@ -2834,6 +2936,23 @@ __metadata: languageName: node linkType: hard +"@react-native/codegen@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/codegen@npm:0.86.0" + dependencies: + "@babel/core": ^7.25.2 + "@babel/parser": ^7.29.0 + hermes-parser: 0.36.0 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + tinyglobby: ^0.2.15 + yargs: ^17.6.2 + peerDependencies: + "@babel/core": "*" + checksum: 0440a4e4ed89b06fc4112bcfe2a347475a943193f46e80410aa56d3956662f6a4ddb825c33c32e17101ddeeb169c466d710579b770641a0a96b08953187e83af + languageName: node + linkType: hard + "@react-native/community-cli-plugin@npm:0.83.1": version: 0.83.1 resolution: "@react-native/community-cli-plugin@npm:0.83.1" @@ -2857,6 +2976,29 @@ __metadata: languageName: node linkType: hard +"@react-native/community-cli-plugin@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/community-cli-plugin@npm:0.86.0" + dependencies: + "@react-native/dev-middleware": 0.86.0 + debug: ^4.4.0 + invariant: ^2.2.4 + metro: ^0.84.3 + metro-config: ^0.84.3 + metro-core: ^0.84.3 + semver: ^7.1.3 + peerDependencies: + "@react-native-community/cli": "*" + "@react-native/metro-config": 0.86.0 + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + "@react-native/metro-config": + optional: true + checksum: 2d45e62191af14ed0bcc0171c54aa5e92cbe8372393a49db7a8942f88b3aa8e488bb3880326734b56f7c1bff15bd0fc66e5ebb37acebb373064f88e2b7cf84fa + languageName: node + linkType: hard + "@react-native/debugger-frontend@npm:0.83.1": version: 0.83.1 resolution: "@react-native/debugger-frontend@npm:0.83.1" @@ -2864,6 +3006,13 @@ __metadata: languageName: node linkType: hard +"@react-native/debugger-frontend@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/debugger-frontend@npm:0.86.0" + checksum: e58228e646ff52265e582040411abbfb36dd2023d76726aa187a79421e0c1caab2f429fb0752957729f5f2dc5c992f2a47f17b475335c1d8634924edeeb3c56d + languageName: node + linkType: hard + "@react-native/debugger-shell@npm:0.83.1": version: 0.83.1 resolution: "@react-native/debugger-shell@npm:0.83.1" @@ -2874,6 +3023,17 @@ __metadata: languageName: node linkType: hard +"@react-native/debugger-shell@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/debugger-shell@npm:0.86.0" + dependencies: + cross-spawn: ^7.0.6 + debug: ^4.4.0 + fb-dotslash: 0.5.8 + checksum: 8fea937638f84dae16c503c048c7cbf0d3338210147ba9b946cd9225cfb93c5040be18d4f8cc80f210f1e63a1d1a7487c6055d794c75db829752e6538a176ba2 + languageName: node + linkType: hard + "@react-native/dev-middleware@npm:0.83.1": version: 0.83.1 resolution: "@react-native/dev-middleware@npm:0.83.1" @@ -2894,6 +3054,26 @@ __metadata: languageName: node linkType: hard +"@react-native/dev-middleware@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/dev-middleware@npm:0.86.0" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.86.0 + "@react-native/debugger-shell": 0.86.0 + chrome-launcher: ^0.15.2 + chromium-edge-launcher: ^0.3.0 + connect: ^3.6.5 + debug: ^4.4.0 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + open: ^7.0.3 + serve-static: ^1.16.2 + ws: ^7.5.10 + checksum: 78d97619ac0e7e26a8c021ad56154c873975f5542364ef14b96afa709ab4580a027bb3067fa86ae79ce72752cb3d63476f97ae7131a2ec94d721e985977b7820 + languageName: node + linkType: hard + "@react-native/eslint-config@npm:0.83.1": version: 0.83.1 resolution: "@react-native/eslint-config@npm:0.83.1" @@ -2931,6 +3111,13 @@ __metadata: languageName: node linkType: hard +"@react-native/gradle-plugin@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/gradle-plugin@npm:0.86.0" + checksum: bb391f42d54a8555226aed1fda87eae61d6e21375775824753a0c907f2d4b8b9c476bc065d80292fa6ee3cec21a97e1cc367dd38278837cef06f0db0adba5f6d + languageName: node + linkType: hard + "@react-native/js-polyfills@npm:0.83.1": version: 0.83.1 resolution: "@react-native/js-polyfills@npm:0.83.1" @@ -2938,6 +3125,13 @@ __metadata: languageName: node linkType: hard +"@react-native/js-polyfills@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/js-polyfills@npm:0.86.0" + checksum: dcc4e8bcd67e2400b53553bf8d0c33dadde5b6da281b3ca4e1c02f9a9b475b3610434592997db7d592741528543332fbd6f6c57645586b8fa8227e1e7ad1f6b5 + languageName: node + linkType: hard + "@react-native/metro-babel-transformer@npm:0.83.1": version: 0.83.1 resolution: "@react-native/metro-babel-transformer@npm:0.83.1" @@ -2971,6 +3165,13 @@ __metadata: languageName: node linkType: hard +"@react-native/normalize-colors@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/normalize-colors@npm:0.86.0" + checksum: a2b0cd6268f4f1d88968bca031aea09207b20e991ab3973dbb1913ed01ccf017d8bcb1243cf33d5bc8d9c557f0ab53307dbd8ce339a41f1c64a33141579c22da + languageName: node + linkType: hard + "@react-native/typescript-config@npm:0.83.1": version: 0.83.1 resolution: "@react-native/typescript-config@npm:0.83.1" @@ -2995,6 +3196,23 @@ __metadata: languageName: node linkType: hard +"@react-native/virtualized-lists@npm:0.86.0": + version: 0.86.0 + resolution: "@react-native/virtualized-lists@npm:0.86.0" + dependencies: + invariant: ^2.2.4 + nullthrows: ^1.1.1 + peerDependencies: + "@types/react": ^19.2.0 + react: "*" + react-native: 0.86.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 0781405283d103ebc85b73806ec21aa7bb1cf4ac07347da7c659760c8e81acd2718ff377daf311490d2689c0a1b916ace0c15fd4c43090cf4718ec145630cee7 + languageName: node + linkType: hard + "@react-navigation/core@npm:^7.13.7": version: 7.13.7 resolution: "@react-navigation/core@npm:7.13.7" @@ -3268,6 +3486,25 @@ __metadata: languageName: node linkType: hard +"@types/react-native-calendar-picker@npm:^8.0.0": + version: 8.0.0 + resolution: "@types/react-native-calendar-picker@npm:8.0.0" + dependencies: + "@types/react": "*" + react-native: "*" + checksum: 193b7acfbde3117759df26e92ba526abac071b41eb01cf4638b55a40c354c99eeb1ed2dbb58af2e84f640f4503a6589f69bd5d54d7a49d56d526af0047503038 + languageName: node + linkType: hard + +"@types/react@npm:*": + version: 19.2.17 + resolution: "@types/react@npm:19.2.17" + dependencies: + csstype: ^3.2.2 + checksum: 9704dc2001b6bcc32efc6e3fe144e18c411d5ee8a5c8dfe572535e44bd300424c4e7bddc9314299eeec28efb547816368b5c9851c93a3082e8ad1265786f3d31 + languageName: node + linkType: hard + "@types/react@npm:^19.2.0": version: 19.2.7 resolution: "@types/react@npm:19.2.7" @@ -3660,6 +3897,16 @@ __metadata: languageName: node linkType: hard +"accepts@npm:^2.0.0": + version: 2.0.0 + resolution: "accepts@npm:2.0.0" + dependencies: + mime-types: ^3.0.0 + negotiator: ^1.0.0 + checksum: 49fe6c050cb6f6ff4e771b4d88324fca4d3127865f2473872e818dca127d809ba3aa8fdfc7acb51dd3c5bade7311ca6b8cfff7015ea6db2f7eb9c8444d223a4f + languageName: node + linkType: hard + "accordion-collapse-react-native@npm:^1.1.1": version: 1.1.1 resolution: "accordion-collapse-react-native@npm:1.1.1" @@ -4021,7 +4268,7 @@ __metadata: languageName: node linkType: hard -"asap@npm:~2.0.6": +"asap@npm:~2.0.3, asap@npm:~2.0.6": version: 2.0.6 resolution: "asap@npm:2.0.6" checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d @@ -4212,6 +4459,15 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-hermes-parser@npm:0.36.0": + version: 0.36.0 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.36.0" + dependencies: + hermes-parser: 0.36.0 + checksum: 22489c19d416f1e071c046ab42d5dd475ed5b76514621f755f55b4e8019ecd665dce8da40be2a5436bbd5d4f2d258ebceda30601e078104ce11fe4371b7a36a0 + languageName: node + linkType: hard + "babel-plugin-transform-flow-enums@npm:^0.0.2": version: 0.0.2 resolution: "babel-plugin-transform-flow-enums@npm:0.0.2" @@ -4600,6 +4856,19 @@ __metadata: languageName: node linkType: hard +"chromium-edge-launcher@npm:^0.3.0": + version: 0.3.0 + resolution: "chromium-edge-launcher@npm:0.3.0" + dependencies: + "@types/node": "*" + escape-string-regexp: ^4.0.0 + is-wsl: ^2.2.0 + lighthouse-logger: ^1.0.0 + mkdirp: ^1.0.4 + checksum: 23992453ad683c950dd3e532b491cdf6188b09d1495b012829c4ed52e2b37450ef1c7011e9ceed75a53669e4bae9444bde783bfb693fa43486b423acb7cc13e3 + languageName: node + linkType: hard + "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" @@ -4836,6 +5105,13 @@ __metadata: languageName: node linkType: hard +"core-js@npm:^1.0.0": + version: 1.2.7 + resolution: "core-js@npm:1.2.7" + checksum: 0b76371bfa98708351cde580f9287e2360d2209920e738ae950ae74ad08639a2e063541020bf666c28778956fc356ed9fe56d962129c88a87a6a4a0612526c75 + languageName: node + linkType: hard + "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -4956,6 +5232,13 @@ __metadata: languageName: node linkType: hard +"date-fns@npm:^4.1.0": + version: 4.4.0 + resolution: "date-fns@npm:4.4.0" + checksum: 9a25020573f1aeaddfa0a41bb32411e8e1e8c81ddb870865a005c37f741778c737833baee350a90f275ae806dcd227e41bc4f26337dda189ebca796ce760ba11 + languageName: node + linkType: hard + "debug@npm:2.6.9, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" @@ -5214,7 +5497,7 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.13": +"encoding@npm:^0.1.11, encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: @@ -6101,6 +6384,21 @@ __metadata: languageName: node linkType: hard +"fbjs@npm:^0.8.9": + version: 0.8.18 + resolution: "fbjs@npm:0.8.18" + dependencies: + core-js: ^1.0.0 + isomorphic-fetch: ^2.1.1 + loose-envify: ^1.0.0 + object-assign: ^4.1.0 + promise: ^7.1.1 + setimmediate: ^1.0.5 + ua-parser-js: ^0.7.30 + checksum: 668731b946a765908c9cbe51d5160f973abb78004b3d122587c3e930e3e1ddcc0ce2b17f2a8637dc9d733e149aa580f8d3035a35cc2d3bc78b78f1b19aab90e2 + languageName: node + linkType: hard + "fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" @@ -6648,6 +6946,13 @@ __metadata: languageName: node linkType: hard +"hermes-compiler@npm:250829098.0.14": + version: 250829098.0.14 + resolution: "hermes-compiler@npm:250829098.0.14" + checksum: 5b35b5606680f19c2dbc9870f493103c28544a39045768b8fd805ace20fea562b23a1b06912c3c00fbe8710260c3961c325981d6a6a8f44524e9a3fec163b115 + languageName: node + linkType: hard + "hermes-estree@npm:0.25.1": version: 0.25.1 resolution: "hermes-estree@npm:0.25.1" @@ -6662,6 +6967,20 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.35.0": + version: 0.35.0 + resolution: "hermes-estree@npm:0.35.0" + checksum: da25f2f5a9aedf1ca0844a64fad21aa3262f4998ee584da4237408d8bc08562ff6a3923b1bf52aa85b9a9c5b2b29ce54d00c61fe9f2424dae9e67261441d73ac + languageName: node + linkType: hard + +"hermes-estree@npm:0.36.0": + version: 0.36.0 + resolution: "hermes-estree@npm:0.36.0" + checksum: ceaf3c43da1d93650098ca71cf8d29adeed7bfe8067c0d761041c787d540b1d9d9f8d62e9ce60ae9291843e2a3ac918345a12f18ede1284e8ca0b6b61a3dba8b + languageName: node + linkType: hard + "hermes-parser@npm:0.32.0": version: 0.32.0 resolution: "hermes-parser@npm:0.32.0" @@ -6671,6 +6990,24 @@ __metadata: languageName: node linkType: hard +"hermes-parser@npm:0.35.0": + version: 0.35.0 + resolution: "hermes-parser@npm:0.35.0" + dependencies: + hermes-estree: 0.35.0 + checksum: 097572045fc574afc7a1d35ab3304651605408770371f8eb74ef7a971b48b0e3cf82e45156fa431ba60bf5ee196100c69d4fa107e6fc2d4e18757aa0a1ae0382 + languageName: node + linkType: hard + +"hermes-parser@npm:0.36.0": + version: 0.36.0 + resolution: "hermes-parser@npm:0.36.0" + dependencies: + hermes-estree: 0.36.0 + checksum: f68a1fd4366187b4ee527e45929fab58b6fd0f7f36f5453f709618968822212113060b130f90ed7c7152a1e5ab62b946ba251389da6d37ee97e33a3e750392d0 + languageName: node + linkType: hard + "hermes-parser@npm:^0.25.1": version: 0.25.1 resolution: "hermes-parser@npm:0.25.1" @@ -7249,6 +7586,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^1.0.1": + version: 1.1.0 + resolution: "is-stream@npm:1.1.0" + checksum: 063c6bec9d5647aa6d42108d4c59723d2bd4ae42135a2d4db6eadbd49b7ea05b750fd69d279e5c7c45cf9da753ad2c00d8978be354d65aa9f6bb434969c6a2ae + languageName: node + linkType: hard + "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -7387,6 +7731,16 @@ __metadata: languageName: node linkType: hard +"isomorphic-fetch@npm:^2.1.1": + version: 2.2.1 + resolution: "isomorphic-fetch@npm:2.2.1" + dependencies: + node-fetch: ^1.0.1 + whatwg-fetch: ">=0.10.0" + checksum: bb5daa7c3785d6742f4379a81e55b549a469503f7c9bf9411b48592e86632cf5e8fe8ea878dba185c0f33eb7c510c23abdeb55aebfdf5d3c70f031ced68c5424 + languageName: node + linkType: hard + "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": version: 3.2.0 resolution: "istanbul-lib-coverage@npm:3.2.0" @@ -8243,7 +8597,7 @@ __metadata: languageName: node linkType: hard -"lodash.debounce@npm:^4.0.8": +"lodash.debounce@npm:4.0.8, lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 @@ -8413,6 +8767,19 @@ __metadata: languageName: node linkType: hard +"metro-babel-transformer@npm:0.84.4": + version: 0.84.4 + resolution: "metro-babel-transformer@npm:0.84.4" + dependencies: + "@babel/core": ^7.25.2 + flow-enums-runtime: ^0.0.6 + hermes-parser: 0.35.0 + metro-cache-key: 0.84.4 + nullthrows: ^1.1.1 + checksum: 0125677b87a35e469675746db1d771ef1461888aac0fa0e8ef353d35a4b10ddcbb7a592cd3bb873b8c2ecb5547d4b8be65629080fc5c5efe47ff8803cd2749fd + languageName: node + linkType: hard + "metro-cache-key@npm:0.83.3": version: 0.83.3 resolution: "metro-cache-key@npm:0.83.3" @@ -8422,6 +8789,15 @@ __metadata: languageName: node linkType: hard +"metro-cache-key@npm:0.84.4": + version: 0.84.4 + resolution: "metro-cache-key@npm:0.84.4" + dependencies: + flow-enums-runtime: ^0.0.6 + checksum: 381f330ec25ad3823ae843e5c21ed75aa5e34f4c92231aead526f4936f4280e1a73977a8d10fecc2b1ef8f11fc884323a76b650a93c699d6b02c706c17eea7ca + languageName: node + linkType: hard + "metro-cache@npm:0.83.3": version: 0.83.3 resolution: "metro-cache@npm:0.83.3" @@ -8434,6 +8810,18 @@ __metadata: languageName: node linkType: hard +"metro-cache@npm:0.84.4": + version: 0.84.4 + resolution: "metro-cache@npm:0.84.4" + dependencies: + exponential-backoff: ^3.1.1 + flow-enums-runtime: ^0.0.6 + https-proxy-agent: ^7.0.5 + metro-core: 0.84.4 + checksum: b8aa2749588a8ca6030930adc7088c7ccac3107be90a188e6b21e76eb0c105a559313f1201623627771f49326515081e1ffceac09e9055aad8cccc27b4feb008 + languageName: node + linkType: hard + "metro-config@npm:0.83.3, metro-config@npm:^0.83.3": version: 0.83.3 resolution: "metro-config@npm:0.83.3" @@ -8450,6 +8838,22 @@ __metadata: languageName: node linkType: hard +"metro-config@npm:0.84.4, metro-config@npm:^0.84.3": + version: 0.84.4 + resolution: "metro-config@npm:0.84.4" + dependencies: + connect: ^3.6.5 + flow-enums-runtime: ^0.0.6 + jest-validate: ^29.7.0 + metro: 0.84.4 + metro-cache: 0.84.4 + metro-core: 0.84.4 + metro-runtime: 0.84.4 + yaml: ^2.6.1 + checksum: 1a3255483c6f2a5b9eed7a74cf41b17b3ac4e04183c545185948e962871318033c5d39a480e214d40b6bdcb66d4db960ec6618c4c522cc6c0e17fada90fbe4de + languageName: node + linkType: hard + "metro-core@npm:0.83.3, metro-core@npm:^0.83.3": version: 0.83.3 resolution: "metro-core@npm:0.83.3" @@ -8461,6 +8865,17 @@ __metadata: languageName: node linkType: hard +"metro-core@npm:0.84.4, metro-core@npm:^0.84.3": + version: 0.84.4 + resolution: "metro-core@npm:0.84.4" + dependencies: + flow-enums-runtime: ^0.0.6 + lodash.throttle: ^4.1.1 + metro-resolver: 0.84.4 + checksum: 232356fa3f1f5269653bd15428fe8c6fb7644e97fb7dc8eefd51a735420325eccb824a70de1751d2fce41607334744acd1645288f2baa1cca007073122f68d7a + languageName: node + linkType: hard + "metro-file-map@npm:0.83.3": version: 0.83.3 resolution: "metro-file-map@npm:0.83.3" @@ -8478,6 +8893,23 @@ __metadata: languageName: node linkType: hard +"metro-file-map@npm:0.84.4": + version: 0.84.4 + resolution: "metro-file-map@npm:0.84.4" + dependencies: + debug: ^4.4.0 + fb-watchman: ^2.0.0 + flow-enums-runtime: ^0.0.6 + graceful-fs: ^4.2.4 + invariant: ^2.2.4 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + nullthrows: ^1.1.1 + walker: ^1.0.7 + checksum: 7265aec7ae7ead5c35d50197009d337e459edfecec52871eb74244469ae68fcc70747e5f92ef8a86aefb551d398b2714c09179e9966a1affecf297a50b80c0a5 + languageName: node + linkType: hard + "metro-minify-terser@npm:0.83.3": version: 0.83.3 resolution: "metro-minify-terser@npm:0.83.3" @@ -8488,6 +8920,16 @@ __metadata: languageName: node linkType: hard +"metro-minify-terser@npm:0.84.4": + version: 0.84.4 + resolution: "metro-minify-terser@npm:0.84.4" + dependencies: + flow-enums-runtime: ^0.0.6 + terser: ^5.15.0 + checksum: e0893b5672a4ad2bc6e2c492f9994a3eae6e633e49f2e5a52738e80260e37bb5143219ce2c337c22dd16cee850e68b99d1ba4bc378d7cc8e9cd60d636aa051b5 + languageName: node + linkType: hard + "metro-resolver@npm:0.83.3": version: 0.83.3 resolution: "metro-resolver@npm:0.83.3" @@ -8497,6 +8939,15 @@ __metadata: languageName: node linkType: hard +"metro-resolver@npm:0.84.4": + version: 0.84.4 + resolution: "metro-resolver@npm:0.84.4" + dependencies: + flow-enums-runtime: ^0.0.6 + checksum: 898f2d5140404a16850b1e2cd206194d20c7118438831e0eb19c54f09703b8034e4ad56061e7f4d6ef88e92b9f6aa5dcca1b72bfa188704d3540533de32f0c5a + languageName: node + linkType: hard + "metro-runtime@npm:0.83.3, metro-runtime@npm:^0.83.3": version: 0.83.3 resolution: "metro-runtime@npm:0.83.3" @@ -8507,6 +8958,16 @@ __metadata: languageName: node linkType: hard +"metro-runtime@npm:0.84.4, metro-runtime@npm:^0.84.3": + version: 0.84.4 + resolution: "metro-runtime@npm:0.84.4" + dependencies: + "@babel/runtime": ^7.25.0 + flow-enums-runtime: ^0.0.6 + checksum: e4a5e0d7e9e33631c801f63a7340380d4a7383a23d06023233ac48e78174bec8ed78a8f5605c84a526e203241a59c0ab0215ab060e0096fc19648d207a0010dd + languageName: node + linkType: hard + "metro-source-map@npm:0.83.3, metro-source-map@npm:^0.83.3": version: 0.83.3 resolution: "metro-source-map@npm:0.83.3" @@ -8525,6 +8986,23 @@ __metadata: languageName: node linkType: hard +"metro-source-map@npm:0.84.4, metro-source-map@npm:^0.84.3": + version: 0.84.4 + resolution: "metro-source-map@npm:0.84.4" + dependencies: + "@babel/traverse": ^7.29.0 + "@babel/types": ^7.29.0 + flow-enums-runtime: ^0.0.6 + invariant: ^2.2.4 + metro-symbolicate: 0.84.4 + nullthrows: ^1.1.1 + ob1: 0.84.4 + source-map: ^0.5.6 + vlq: ^1.0.0 + checksum: e483887bf92775b41d2832790c0652c413329ad1c9c88de915d53be603f57a11a5edbb2cebbdcda9ce90ce32103ff28de77f370bbe3253d21975372a72e4c6ce + languageName: node + linkType: hard + "metro-symbolicate@npm:0.83.3": version: 0.83.3 resolution: "metro-symbolicate@npm:0.83.3" @@ -8541,6 +9019,22 @@ __metadata: languageName: node linkType: hard +"metro-symbolicate@npm:0.84.4": + version: 0.84.4 + resolution: "metro-symbolicate@npm:0.84.4" + dependencies: + flow-enums-runtime: ^0.0.6 + invariant: ^2.2.4 + metro-source-map: 0.84.4 + nullthrows: ^1.1.1 + source-map: ^0.5.6 + vlq: ^1.0.0 + bin: + metro-symbolicate: src/index.js + checksum: c4518ca46ec6cc9e7f2929d5aadd9b51da833e035ae623e3c82f2efe94e502827e58883d7b576b3d765f1d4aec17802976c13dd20f0a8944d62f97083e8304de + languageName: node + linkType: hard + "metro-transform-plugins@npm:0.83.3": version: 0.83.3 resolution: "metro-transform-plugins@npm:0.83.3" @@ -8555,6 +9049,20 @@ __metadata: languageName: node linkType: hard +"metro-transform-plugins@npm:0.84.4": + version: 0.84.4 + resolution: "metro-transform-plugins@npm:0.84.4" + dependencies: + "@babel/core": ^7.25.2 + "@babel/generator": ^7.29.1 + "@babel/template": ^7.28.6 + "@babel/traverse": ^7.29.0 + flow-enums-runtime: ^0.0.6 + nullthrows: ^1.1.1 + checksum: 47f68a023868d0155af31e5edadfa33cb9b853932376e5cd4815b9a7150a18039861510d9611ab8c2cb765eece877ce4a72615894aaa35e0b4fa43a9023952ba + languageName: node + linkType: hard + "metro-transform-worker@npm:0.83.3": version: 0.83.3 resolution: "metro-transform-worker@npm:0.83.3" @@ -8576,6 +9084,27 @@ __metadata: languageName: node linkType: hard +"metro-transform-worker@npm:0.84.4": + version: 0.84.4 + resolution: "metro-transform-worker@npm:0.84.4" + dependencies: + "@babel/core": ^7.25.2 + "@babel/generator": ^7.29.1 + "@babel/parser": ^7.29.0 + "@babel/types": ^7.29.0 + flow-enums-runtime: ^0.0.6 + metro: 0.84.4 + metro-babel-transformer: 0.84.4 + metro-cache: 0.84.4 + metro-cache-key: 0.84.4 + metro-minify-terser: 0.84.4 + metro-source-map: 0.84.4 + metro-transform-plugins: 0.84.4 + nullthrows: ^1.1.1 + checksum: ec6f4966865de6f5f683d2295a7ad498e97635e09eaa042f93f4a886fdcb017176555100b0f7746fa32d1d8a967c8eda8a533d2697614b730441da127d3226a2 + languageName: node + linkType: hard + "metro@npm:0.83.3, metro@npm:^0.83.3": version: 0.83.3 resolution: "metro@npm:0.83.3" @@ -8626,6 +9155,55 @@ __metadata: languageName: node linkType: hard +"metro@npm:0.84.4, metro@npm:^0.84.3": + version: 0.84.4 + resolution: "metro@npm:0.84.4" + dependencies: + "@babel/code-frame": ^7.29.0 + "@babel/core": ^7.25.2 + "@babel/generator": ^7.29.1 + "@babel/parser": ^7.29.0 + "@babel/template": ^7.28.6 + "@babel/traverse": ^7.29.0 + "@babel/types": ^7.29.0 + accepts: ^2.0.0 + ci-info: ^2.0.0 + connect: ^3.6.5 + debug: ^4.4.0 + error-stack-parser: ^2.0.6 + flow-enums-runtime: ^0.0.6 + graceful-fs: ^4.2.4 + hermes-parser: 0.35.0 + image-size: ^1.0.2 + invariant: ^2.2.4 + jest-worker: ^29.7.0 + jsc-safe-url: ^0.2.2 + lodash.throttle: ^4.1.1 + metro-babel-transformer: 0.84.4 + metro-cache: 0.84.4 + metro-cache-key: 0.84.4 + metro-config: 0.84.4 + metro-core: 0.84.4 + metro-file-map: 0.84.4 + metro-resolver: 0.84.4 + metro-runtime: 0.84.4 + metro-source-map: 0.84.4 + metro-symbolicate: 0.84.4 + metro-transform-plugins: 0.84.4 + metro-transform-worker: 0.84.4 + mime-types: ^3.0.1 + nullthrows: ^1.1.1 + serialize-error: ^2.1.0 + source-map: ^0.5.6 + throat: ^5.0.0 + ws: ^7.5.10 + yargs: ^17.6.2 + bin: + metro: src/cli.js + checksum: 343339ce00d033975beb116fe063b61421e40a815d8bbe1f78032d6ecb5613b89e68218af204dd168b9bdf66dcc4914b56ee8ee19997faa09c22b8413017dcc6 + languageName: node + linkType: hard + "micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -8653,6 +9231,13 @@ __metadata: languageName: node linkType: hard +"mime-db@npm:^1.54.0": + version: 1.54.0 + resolution: "mime-db@npm:1.54.0" + checksum: e99aaf2f23f5bd607deb08c83faba5dd25cf2fec90a7cc5b92d8260867ee08dab65312e1a589e60093dc7796d41e5fae013268418482f1db4c7d52d0a0960ac9 + languageName: node + linkType: hard + "mime-types@npm:^2.1.27, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" @@ -8662,6 +9247,15 @@ __metadata: languageName: node linkType: hard +"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1": + version: 3.0.2 + resolution: "mime-types@npm:3.0.2" + dependencies: + mime-db: ^1.54.0 + checksum: 70b74794f408419e4b6a8e3c93ccbed79b6a6053973a3957c5cc04ff4ad8d259f0267da179e3ecae34c3edfb4bfd7528db23a101e32d21ad8e196178c8b7b75a + languageName: node + linkType: hard + "mime@npm:1.6.0": version: 1.6.0 resolution: "mime@npm:1.6.0" @@ -8856,6 +9450,13 @@ __metadata: languageName: node linkType: hard +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 20ebfe79b2d2e7cf9cbc8239a72662b584f71164096e6e8896c8325055497c96f6b80cd22c258e8a2f2aa382a787795ec3ee8b37b422a302c7d4381b0d5ecfbb + languageName: node + linkType: hard + "neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" @@ -8863,6 +9464,25 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^1.0.1": + version: 1.7.3 + resolution: "node-fetch@npm:1.7.3" + dependencies: + encoding: ^0.1.11 + is-stream: ^1.0.1 + checksum: 3bb0528c05d541316ebe52770d71ee25a6dce334df4231fd55df41a644143e07f068637488c18a5b0c43f05041dbd3346752f9e19b50df50569a802484544d5b + languageName: node + linkType: hard + +"node-git-hooks@npm:^1.0.1": + version: 1.0.7 + resolution: "node-git-hooks@npm:1.0.7" + bin: + node-git-hooks: bin/install.js + checksum: bfe34de15389d3626a5d056df4aa5fde27c43376d6390817a993f12cb6731fd88c526fc366c027c232f3c76854b23d39cb347c650c330b3cca6ec334c8f408b5 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 10.1.0 resolution: "node-gyp@npm:10.1.0" @@ -8947,7 +9567,16 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4.1.1": +"ob1@npm:0.84.4": + version: 0.84.4 + resolution: "ob1@npm:0.84.4" + dependencies: + flow-enums-runtime: ^0.0.6 + checksum: 15621cfa2d6bb196c5046031b3f85259735a245d9d7087f41758be3c31589c464e6eef53d94ec3d680fd8286ef08944782b9112f18d790a99421fbc7e311bb32 + languageName: node + linkType: hard + +"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f @@ -9425,6 +10054,15 @@ __metadata: languageName: node linkType: hard +"promise@npm:^7.1.1": + version: 7.3.1 + resolution: "promise@npm:7.3.1" + dependencies: + asap: ~2.0.3 + checksum: 475bb069130179fbd27ed2ab45f26d8862376a137a57314cf53310bdd85cc986a826fd585829be97ebc0aaf10e9d8e68be1bfe5a4a0364144b1f9eedfa940cf1 + languageName: node + linkType: hard + "promise@npm:^8.3.0": version: 8.3.0 resolution: "promise@npm:8.3.0" @@ -9434,7 +10072,16 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:^15.5.7, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": +"prop-types@npm:15.5.8": + version: 15.5.8 + resolution: "prop-types@npm:15.5.8" + dependencies: + fbjs: ^0.8.9 + checksum: b64fcb5770c665e66e57663940864425529ea2b8c7821fb86068d1879d7b2c85778948b9a1294912e0d58f55075d1f3e19f44ae4fd5f5cd988c3bf833fa3e1f6 + languageName: node + linkType: hard + +"prop-types@npm:^15.5.7, prop-types@npm:^15.6.0, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -9542,6 +10189,21 @@ __metadata: languageName: node linkType: hard +"react-native-calendar-picker@npm:^8.0.5": + version: 8.0.5 + resolution: "react-native-calendar-picker@npm:8.0.5" + dependencies: + node-git-hooks: ^1.0.1 + prop-types: ^15.6.0 + recyclerlistview: ^3.0.0 + peerDependencies: + date-fns: "*" + react: "*" + react-native: "*" + checksum: 430dda8a89a401dd0acbe7a9e29856e1dd2917729137292e667afd390940f3873ff92440ac98bcf6b0ff8513e8ec19bfe772a7f53559e46929da7546055a63c7 + languageName: node + linkType: hard + "react-native-logs@npm:^5.5.0": version: 5.5.0 resolution: "react-native-logs@npm:5.5.0" @@ -9580,6 +10242,57 @@ __metadata: languageName: node linkType: hard +"react-native@npm:*": + version: 0.86.0 + resolution: "react-native@npm:0.86.0" + dependencies: + "@react-native/assets-registry": 0.86.0 + "@react-native/codegen": 0.86.0 + "@react-native/community-cli-plugin": 0.86.0 + "@react-native/gradle-plugin": 0.86.0 + "@react-native/js-polyfills": 0.86.0 + "@react-native/normalize-colors": 0.86.0 + "@react-native/virtualized-lists": 0.86.0 + abort-controller: ^3.0.0 + anser: ^1.4.9 + ansi-regex: ^5.0.0 + babel-plugin-syntax-hermes-parser: 0.36.0 + base64-js: ^1.5.1 + commander: ^12.0.0 + flow-enums-runtime: ^0.0.6 + hermes-compiler: 250829098.0.14 + invariant: ^2.2.4 + memoize-one: ^5.0.0 + metro-runtime: ^0.84.3 + metro-source-map: ^0.84.3 + nullthrows: ^1.1.1 + pretty-format: ^29.7.0 + promise: ^8.3.0 + react-devtools-core: ^6.1.5 + react-refresh: ^0.14.0 + regenerator-runtime: ^0.13.2 + scheduler: 0.27.0 + semver: ^7.1.3 + stacktrace-parser: ^0.1.10 + tinyglobby: ^0.2.15 + whatwg-fetch: ^3.0.0 + ws: ^7.5.10 + yargs: ^17.6.2 + peerDependencies: + "@react-native/jest-preset": 0.86.0 + "@types/react": ^19.1.1 + react: ^19.2.3 + peerDependenciesMeta: + "@react-native/jest-preset": + optional: true + "@types/react": + optional: true + bin: + react-native: cli.js + checksum: c659cfb2dbaf48a4e8d6317ea181be902fd3dd95c4613e8054a6a9937038818eb0b2cfea163f13208c618b6fcd4be7497dbd74614f8c5154c2b2815a17018375 + languageName: node + linkType: hard + "react-native@npm:0.83.1": version: 0.83.1 resolution: "react-native@npm:0.83.1" @@ -9680,6 +10393,20 @@ __metadata: languageName: node linkType: hard +"recyclerlistview@npm:^3.0.0": + version: 3.0.5 + resolution: "recyclerlistview@npm:3.0.5" + dependencies: + lodash.debounce: 4.0.8 + prop-types: 15.5.8 + ts-object-utils: 0.0.5 + peerDependencies: + react: ">= 15.2.1" + react-native: ">= 0.30.0" + checksum: 68fe28f044a42d30ea92f2a2a37d3d96bfb5f57cb2aea763edd37c52f1c735a7e4c559b6ab88339b4ce04cd043490fdaf210a43e0e3eb0eb00fcc25fd0f9ccfe + languageName: node + linkType: hard + "redent@npm:^3.0.0": version: 3.0.0 resolution: "redent@npm:3.0.0" @@ -10159,6 +10886,13 @@ __metadata: languageName: node linkType: hard +"setimmediate@npm:^1.0.5": + version: 1.0.5 + resolution: "setimmediate@npm:1.0.5" + checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd + languageName: node + linkType: hard + "setprototypeof@npm:1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" @@ -10801,6 +11535,13 @@ __metadata: languageName: node linkType: hard +"ts-object-utils@npm:0.0.5": + version: 0.0.5 + resolution: "ts-object-utils@npm:0.0.5" + checksum: 83c48fbdaba392fb2c01cea53b267ed5538d2bb44fc6c3eecc10bcfabc1780bfa6ec8569b52bbf0140d9b521d9049d5f15884e12286918244d463d854dbc73cb + languageName: node + linkType: hard + "ts-toolbelt@npm:^6.15.1": version: 6.15.5 resolution: "ts-toolbelt@npm:6.15.5" @@ -11025,6 +11766,15 @@ __metadata: languageName: node linkType: hard +"ua-parser-js@npm:^0.7.30": + version: 0.7.41 + resolution: "ua-parser-js@npm:0.7.41" + bin: + ua-parser-js: script/cli.js + checksum: c14ea0ba52585f0c363375b30d511d972bf1842855b6d6f4a411e6a27c936c7eb1f96e53e2d321fe3c587f0420677dcabd8977622be71da51edc8521e595b9b9 + languageName: node + linkType: hard + "uglify-js@npm:^3.1.4": version: 3.19.3 resolution: "uglify-js@npm:3.19.3" @@ -11284,7 +12034,7 @@ __metadata: languageName: node linkType: hard -"whatwg-fetch@npm:^3.0.0": +"whatwg-fetch@npm:>=0.10.0, whatwg-fetch@npm:^3.0.0": version: 3.6.20 resolution: "whatwg-fetch@npm:3.6.20" checksum: c58851ea2c4efe5c2235f13450f426824cf0253c1d45da28f45900290ae602a20aff2ab43346f16ec58917d5562e159cd691efa368354b2e82918c2146a519c5 From aea9ef29820044f0e68122fbb9105af22251bd1b Mon Sep 17 00:00:00 2001 From: Barry van Veen Date: Thu, 2 Jul 2026 10:58:34 +0200 Subject: [PATCH 3/3] Fix deprecated comment --- src/theme/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/theme/types.ts b/src/theme/types.ts index 305db0b..fe9d7b8 100644 --- a/src/theme/types.ts +++ b/src/theme/types.ts @@ -46,7 +46,7 @@ export interface Color { grey800: string /** @deprecated Use theme.color.text.system.subtler or theme.color.icon.system.subtle */ grey500: string - /** @deprecated Use theme.color.icon.system.disabled or theme.color.border.system.default */ + /** @deprecated Use theme.color.icon.system.disabled or theme.color.text.system.disabled or theme.color.border.system.default */ grey300: string /** @deprecated Use theme.color.background.system.surfaceRaised or theme.color.border.system.subtle */ grey50: string