@autoguru/overdrive 4.46.0 → 4.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/components/Calendar/Calendar.css.d.ts +8 -0
  2. package/dist/components/Calendar/Calendar.css.d.ts.map +1 -0
  3. package/dist/components/Calendar/Calendar.css.js +113 -0
  4. package/dist/components/Calendar/Calendar.d.ts +64 -0
  5. package/dist/components/Calendar/Calendar.d.ts.map +1 -0
  6. package/dist/components/Calendar/Calendar.js +122 -0
  7. package/dist/components/Calendar/CalendarButton.d.ts +7 -0
  8. package/dist/components/Calendar/CalendarButton.d.ts.map +1 -0
  9. package/dist/components/{DateTimePicker → Calendar}/CalendarButton.js +3 -2
  10. package/dist/components/{DateTimePicker → Calendar}/CalendarGrid.d.ts +4 -1
  11. package/dist/components/Calendar/CalendarGrid.d.ts.map +1 -0
  12. package/dist/components/{DateTimePicker → Calendar}/CalendarGrid.js +7 -6
  13. package/dist/components/Calendar/index.d.ts +3 -0
  14. package/dist/components/Calendar/index.d.ts.map +1 -0
  15. package/dist/components/Calendar/index.js +3 -0
  16. package/dist/components/DatePicker/DatePicker.css.d.ts +2 -1
  17. package/dist/components/DatePicker/DatePicker.css.d.ts.map +1 -1
  18. package/dist/components/DatePicker/DatePicker.css.js +60 -30
  19. package/dist/components/DatePicker/DatePicker.d.ts +83 -5
  20. package/dist/components/DatePicker/DatePicker.d.ts.map +1 -1
  21. package/dist/components/DatePicker/DatePicker.js +160 -43
  22. package/dist/components/DateTimePicker/DateTimePicker.css.d.ts +0 -7
  23. package/dist/components/DateTimePicker/DateTimePicker.css.d.ts.map +1 -1
  24. package/dist/components/DateTimePicker/DateTimePicker.css.js +0 -110
  25. package/dist/components/DateTimePicker/DateTimePicker.d.ts +5 -2
  26. package/dist/components/DateTimePicker/DateTimePicker.d.ts.map +1 -1
  27. package/dist/components/DateTimePicker/DateTimePicker.js +24 -80
  28. package/dist/components/OptionList/OptionList.d.ts +5 -5
  29. package/dist/components/Popover/Popover.css.d.ts +4 -0
  30. package/dist/components/Popover/Popover.css.d.ts.map +1 -0
  31. package/dist/components/Popover/Popover.css.js +46 -0
  32. package/dist/components/Popover/Popover.d.ts +34 -0
  33. package/dist/components/Popover/Popover.d.ts.map +1 -0
  34. package/dist/components/Popover/Popover.js +127 -0
  35. package/dist/components/Popover/PopoverTrigger.d.ts +51 -0
  36. package/dist/components/Popover/PopoverTrigger.d.ts.map +1 -0
  37. package/dist/components/Popover/PopoverTrigger.js +94 -0
  38. package/dist/components/Popover/index.d.ts +5 -0
  39. package/dist/components/Popover/index.d.ts.map +1 -0
  40. package/dist/components/Popover/index.js +4 -0
  41. package/dist/components/Slider/Slider.css.d.ts +9 -0
  42. package/dist/components/Slider/Slider.css.d.ts.map +1 -0
  43. package/dist/components/Slider/Slider.css.js +92 -0
  44. package/dist/components/Slider/Slider.d.ts +47 -0
  45. package/dist/components/Slider/Slider.d.ts.map +1 -0
  46. package/dist/components/Slider/Slider.js +137 -0
  47. package/dist/components/Slider/index.d.ts +2 -0
  48. package/dist/components/Slider/index.d.ts.map +1 -0
  49. package/dist/components/Slider/index.js +3 -0
  50. package/dist/components/index.d.ts +1 -0
  51. package/dist/components/index.d.ts.map +1 -1
  52. package/dist/components/index.js +1 -0
  53. package/dist/styles/selectors.d.ts +2 -1
  54. package/dist/styles/selectors.d.ts.map +1 -1
  55. package/dist/styles/selectors.js +2 -1
  56. package/dist/utils/dateFormat.d.ts +24 -0
  57. package/dist/utils/dateFormat.d.ts.map +1 -0
  58. package/dist/utils/dateFormat.js +57 -0
  59. package/package.json +18 -18
  60. package/dist/components/DateTimePicker/CalendarButton.d.ts +0 -4
  61. package/dist/components/DateTimePicker/CalendarButton.d.ts.map +0 -1
  62. package/dist/components/DateTimePicker/CalendarGrid.d.ts.map +0 -1
@@ -1,10 +1,11 @@
1
1
  export declare const selectors: {
2
2
  readonly active: "&:active";
3
3
  readonly checked: "&:checked, &[data-checked], &[data-selected]";
4
- readonly disabled: "&:disabled, &[data-disabled]";
4
+ readonly disabled: "&:disabled, &[data-disabled], &[aria-disabled=\"true\"]";
5
5
  readonly focus: "&:focus, &[data-focus], &[data-focused]";
6
6
  readonly focusVisible: "&:focus-visible, &[data-focus-visible]";
7
7
  readonly selected: "&[data-selected], &[aria-selected=\"true\"]";
8
+ readonly unavailable: "&[data-unavailable]";
8
9
  readonly hover: string;
9
10
  readonly hoverNotDisabled: string;
10
11
  readonly hoverNotSelected: string;
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../lib/styles/selectors.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;;;;;;;;;;CAmBZ,CAAC"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../lib/styles/selectors.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;;;;;;;;;;;CAoBZ,CAAC"}
@@ -7,10 +7,11 @@
7
7
  export const selectors = {
8
8
  active: '&:active',
9
9
  checked: '&:checked, &[data-checked], &[data-selected]',
10
- disabled: '&:disabled, &[data-disabled]',
10
+ disabled: '&:disabled, &[data-disabled], &[aria-disabled="true"]',
11
11
  focus: '&:focus, &[data-focus], &[data-focused]',
12
12
  focusVisible: '&:focus-visible, &[data-focus-visible]',
13
13
  selected: '&[data-selected], &[aria-selected="true"]',
14
+ unavailable: '&[data-unavailable]',
14
15
  get hover() {
15
16
  return `&:hover:not(${this.disabled}), &[data-hover]:not(${this.disabled})`;
16
17
  },
@@ -0,0 +1,24 @@
1
+ import { type DateValue } from '@internationalized/date';
2
+ /**
3
+ * Checks if a given DateValue represents today's date
4
+ * @param dateValue
5
+ * @returns boolean
6
+ */
7
+ export declare function isToday(date: DateValue | string | null | undefined): boolean;
8
+ /**
9
+ * Formats a date value or ISO date string for display, with special handling for "today"
10
+ *
11
+ * @param date - DateValue, ISO date string, or null/undefined
12
+ * @param format - Intl date formatting style (default: 'medium')
13
+ * @param locales - Locales for formatting (default: 'en-AU')
14
+ * @returns Formatted date string or empty string for null/undefined
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * displayFormattedDate('2025-05-01') // "May 01, 2025"
19
+ * displayFormattedDate('2024-01-15', 'full') // "Monday, January 15, 2024"
20
+ * displayFormattedDate('2025-09-21', 'short') // "21/9/25"
21
+ * ```
22
+ */
23
+ export declare function displayFormattedDate(date: DateValue | string | null | undefined, format?: Intl.DateTimeFormatOptions['dateStyle'], locales?: Intl.LocalesArgument): string;
24
+ //# sourceMappingURL=dateFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateFormat.d.ts","sourceRoot":"","sources":["../../lib/utils/dateFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,SAAS,EACd,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,WAUlE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,MAAM,GAAE,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAY,EAC1D,OAAO,GAAE,IAAI,CAAC,eAAyB,GACrC,MAAM,CAmBR"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import { getLocalTimeZone, parseDate, today } from '@internationalized/date';
4
+
5
+ /**
6
+ * Checks if a given DateValue represents today's date
7
+ * @param dateValue
8
+ * @returns boolean
9
+ */
10
+ export function isToday(date) {
11
+ if (!date) return false;
12
+ if (typeof date === 'string') {
13
+ try {
14
+ date = parseDate(date);
15
+ } catch {
16
+ return false;
17
+ }
18
+ }
19
+ return date.compare(today(getLocalTimeZone())) === 0;
20
+ }
21
+
22
+ /**
23
+ * Formats a date value or ISO date string for display, with special handling for "today"
24
+ *
25
+ * @param date - DateValue, ISO date string, or null/undefined
26
+ * @param format - Intl date formatting style (default: 'medium')
27
+ * @param locales - Locales for formatting (default: 'en-AU')
28
+ * @returns Formatted date string or empty string for null/undefined
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * displayFormattedDate('2025-05-01') // "May 01, 2025"
33
+ * displayFormattedDate('2024-01-15', 'full') // "Monday, January 15, 2024"
34
+ * displayFormattedDate('2025-09-21', 'short') // "21/9/25"
35
+ * ```
36
+ */
37
+ export function displayFormattedDate(date, format = 'medium', locales = 'en-AU') {
38
+ if (!date) return '';
39
+ let dateValue;
40
+
41
+ // Handle string input by parsing it
42
+ if (typeof date === 'string') {
43
+ try {
44
+ dateValue = parseDate(date);
45
+ } catch {
46
+ return date; // Return original string if parsing fails
47
+ }
48
+ } else {
49
+ dateValue = date;
50
+ }
51
+
52
+ // Format the date using Intl.DateTimeFormat
53
+ const formatter = new Intl.DateTimeFormat(locales, {
54
+ dateStyle: format
55
+ });
56
+ return formatter.format(dateValue.toDate(getLocalTimeZone()));
57
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autoguru/overdrive",
3
- "version": "4.46.0",
3
+ "version": "4.47.0",
4
4
  "description": "Overdrive is a product component library, and design system for AutoGuru.",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
@@ -64,39 +64,39 @@
64
64
  "@autoguru/tsconfig": "1.3.1",
65
65
  "@autoguru/utilities": "^1.3.3",
66
66
  "@babel/cli": "7.28.3",
67
- "@babel/core": "7.28.3",
67
+ "@babel/core": "7.28.4",
68
68
  "@babel/plugin-proposal-class-properties": "7.18.6",
69
69
  "@babel/plugin-proposal-export-default-from": "7.27.1",
70
70
  "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
71
71
  "@babel/plugin-proposal-object-rest-spread": "7.20.7",
72
72
  "@babel/plugin-proposal-optional-chaining": "7.21.0",
73
73
  "@babel/plugin-syntax-dynamic-import": "7.8.3",
74
- "@babel/plugin-transform-classes": "7.28.3",
74
+ "@babel/plugin-transform-classes": "7.28.4",
75
75
  "@babel/plugin-transform-runtime": "7.28.3",
76
76
  "@babel/plugin-transform-spread": "7.27.1",
77
77
  "@babel/plugin-transform-strict-mode": "7.27.1",
78
78
  "@babel/preset-env": "7.28.3",
79
79
  "@babel/preset-react": "7.27.1",
80
80
  "@babel/preset-typescript": "7.27.1",
81
- "@babel/runtime-corejs3": "7.28.3",
81
+ "@babel/runtime-corejs3": "7.28.4",
82
82
  "@changesets/cli": "2.29.6",
83
83
  "@chromatic-com/storybook": "4.1.1",
84
84
  "@internationalized/date": "3.9.0",
85
85
  "@octokit/rest": "22.0.0",
86
86
  "@popperjs/core": "2.11.8",
87
87
  "@react-stately/toggle": "3.9.1",
88
- "@storybook/addon-a11y": "9.1.3",
89
- "@storybook/addon-docs": "9.1.3",
90
- "@storybook/addon-links": "9.1.3",
91
- "@storybook/addon-onboarding": "9.1.3",
92
- "@storybook/addon-vitest": "9.1.3",
93
- "@storybook/react-vite": "9.1.3",
88
+ "@storybook/addon-a11y": "9.1.5",
89
+ "@storybook/addon-docs": "9.1.5",
90
+ "@storybook/addon-links": "9.1.5",
91
+ "@storybook/addon-onboarding": "9.1.5",
92
+ "@storybook/addon-vitest": "9.1.5",
93
+ "@storybook/react-vite": "9.1.5",
94
94
  "@testing-library/dom": "^10.4.1",
95
95
  "@testing-library/jest-dom": "6.8.0",
96
96
  "@testing-library/react": "16.3.0",
97
97
  "@testing-library/react-hooks": "8.0.1",
98
98
  "@testing-library/user-event": "14.6.1",
99
- "@types/node": "24.3.0",
99
+ "@types/node": "24.3.1",
100
100
  "@types/react": "19.1.12",
101
101
  "@types/react-dom": "19.1.9",
102
102
  "@types/webpack-env": "1.18.8",
@@ -110,7 +110,7 @@
110
110
  "@vanilla-extract/webpack-plugin": "2.3.22",
111
111
  "@vitest/browser": "3.2.4",
112
112
  "@vitest/coverage-v8": "3.2.4",
113
- "@vitest/eslint-plugin": "1.3.5",
113
+ "@vitest/eslint-plugin": "1.3.9",
114
114
  "babel-plugin-add-import-extension": "1.6.0",
115
115
  "babel-plugin-dev-expression": "0.2.3",
116
116
  "babel-plugin-macros": "3.1.0",
@@ -124,16 +124,16 @@
124
124
  "deepmerge": "4.3.1",
125
125
  "es-toolkit": "1.39.10",
126
126
  "eslint": "9.34.0",
127
- "eslint-plugin-storybook": "9.1.3",
127
+ "eslint-plugin-storybook": "9.1.5",
128
128
  "husky": "9.1.7",
129
129
  "intersection-observer": "0.12.2",
130
130
  "jsdom": "26.1.0",
131
- "lint-staged": "16.1.5",
132
- "magic-string": "0.30.18",
131
+ "lint-staged": "16.1.6",
132
+ "magic-string": "0.30.19",
133
133
  "mini-css-extract-plugin": "2.9.4",
134
134
  "mockdate": "3.0.5",
135
135
  "playwright": "1.55.0",
136
- "plop": "4.0.1",
136
+ "plop": "4.0.2",
137
137
  "postcss": "8.5.6",
138
138
  "prettier": "3.6.2",
139
139
  "prop-types": "15.8.1",
@@ -148,11 +148,11 @@
148
148
  "react-stately": "3.41.0",
149
149
  "react-swipeable": "7.0.2",
150
150
  "rollup-plugin-visualizer": "6.0.3",
151
- "storybook": "9.1.3",
151
+ "storybook": "9.1.5",
152
152
  "storybook-addon-tag-badges": "2.0.2",
153
153
  "typescript": "5.9.2",
154
154
  "url-loader": "4.1.1",
155
- "vite": "7.1.3",
155
+ "vite": "7.1.5",
156
156
  "vitest": "3.2.4",
157
157
  "webpack": "5.101.3"
158
158
  },
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { type AriaButtonProps } from 'react-aria';
3
- export declare const CalendarButton: (props: AriaButtonProps) => React.JSX.Element;
4
- //# sourceMappingURL=CalendarButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CalendarButton.d.ts","sourceRoot":"","sources":["../../../lib/components/DateTimePicker/CalendarButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7D,eAAO,MAAM,cAAc,GAAI,OAAO,eAAe,sBAQpD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CalendarGrid.d.ts","sourceRoot":"","sources":["../../../lib/components/DateTimePicker/CalendarGrid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,EAKN,KAAK,qBAAqB,EAC1B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA8CnD,UAAU,iBAAkB,SAAQ,qBAAqB;IACxD,KAAK,EAAE,aAAa,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,GAAI,qBAAqB,iBAAiB,sBA2ClE,CAAC"}