@westpac/ui 0.34.1 → 0.35.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.
@@ -12,8 +12,8 @@ export declare const Button: React.ForwardRefExoticComponent<{
12
12
  justify?: boolean | {
13
13
  [x: string]: boolean | undefined;
14
14
  } | undefined;
15
- look?: "link" | "primary" | "hero" | "faint" | {
16
- [x: string]: "link" | "primary" | "hero" | "faint" | undefined;
15
+ look?: "link" | "primary" | "hero" | "faint" | "unstyled" | {
16
+ [x: string]: "link" | "primary" | "hero" | "faint" | "unstyled" | undefined;
17
17
  } | undefined;
18
18
  size?: "small" | "xlarge" | "medium" | "large" | {
19
19
  [x: string]: "small" | "xlarge" | "medium" | "large" | undefined;
@@ -29,6 +29,9 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
29
29
  link: {
30
30
  base: string;
31
31
  };
32
+ unstyled: {
33
+ base: string;
34
+ };
32
35
  };
33
36
  soft: {
34
37
  true: {
@@ -95,6 +98,9 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
95
98
  link: {
96
99
  base: string;
97
100
  };
101
+ unstyled: {
102
+ base: string;
103
+ };
98
104
  };
99
105
  soft: {
100
106
  true: {
@@ -159,6 +165,9 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
159
165
  link: {
160
166
  base: string;
161
167
  };
168
+ unstyled: {
169
+ base: string;
170
+ };
162
171
  };
163
172
  soft: {
164
173
  true: {
@@ -34,6 +34,9 @@ export const styles = tv({
34
34
  },
35
35
  link: {
36
36
  base: 'text-link underline'
37
+ },
38
+ unstyled: {
39
+ base: ''
37
40
  }
38
41
  },
39
42
  soft: {
@@ -1,2 +1,2 @@
1
1
  import { type DatePickerProps } from './date-picker.types.js';
2
- export declare function DatePicker({ disableWeekends, disableDaysOfWeek, disableDates, placeholder, onChange, onFocus, onBlur, onOpen, onClose, min, max, value, id, size, name, block, ...props }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
2
+ export declare function DatePicker({ disableWeekends, disableDaysOfWeek, disableDates, placeholder, onChange, onFocus, onBlur, onOpen, onClose, min, max, value, id, size, name, block, invalid, ...props }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
@@ -16,7 +16,7 @@ function _extends() {
16
16
  import React, { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
17
17
  import { styles } from './date-picker.styles.js';
18
18
  import { formatDate, isDateDisabled, useListener } from './date-picker.utils.js';
19
- export function DatePicker({ disableWeekends , disableDaysOfWeek , disableDates , placeholder , onChange , onFocus , onBlur , onOpen , onClose , min , max , value , id , size ='md' , name , block =false , ...props }) {
19
+ export function DatePicker({ disableWeekends , disableDaysOfWeek , disableDates , placeholder , onChange , onFocus , onBlur , onOpen , onClose , min , max , value , id , size ='md' , name , block =false , invalid =false , ...props }) {
20
20
  const [initialized, setInitialized] = useState(false);
21
21
  useEffect(()=>{
22
22
  const initDatePicker = async ()=>{
@@ -143,7 +143,8 @@ export function DatePicker({ disableWeekends , disableDaysOfWeek , disableDates
143
143
  return React.createElement("duet-date-picker", _extends({
144
144
  class: styles({
145
145
  size,
146
- block
146
+ block,
147
+ invalid
147
148
  }),
148
149
  ref: ref
149
150
  }, props));
@@ -9,6 +9,10 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
9
9
  true: string;
10
10
  false: string;
11
11
  };
12
+ invalid: {
13
+ true: string;
14
+ false: string;
15
+ };
12
16
  }, undefined, "date-picker", {
13
17
  responsiveVariants: string[];
14
18
  }, {
@@ -22,6 +26,10 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
22
26
  true: string;
23
27
  false: string;
24
28
  };
29
+ invalid: {
30
+ true: string;
31
+ false: string;
32
+ };
25
33
  }, undefined, import("tailwind-variants").TVReturnType<{
26
34
  size: {
27
35
  sm: string;
@@ -33,6 +41,10 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
33
41
  true: string;
34
42
  false: string;
35
43
  };
44
+ invalid: {
45
+ true: string;
46
+ false: string;
47
+ };
36
48
  }, undefined, "date-picker", {
37
49
  responsiveVariants: string[];
38
50
  }, unknown, unknown, undefined>>;
@@ -11,6 +11,10 @@ export const styles = tv({
11
11
  block: {
12
12
  true: 'date-picker-block',
13
13
  false: ''
14
+ },
15
+ invalid: {
16
+ true: 'date-picker-invalid',
17
+ false: ''
14
18
  }
15
19
  }
16
20
  }, {
@@ -20,6 +20,11 @@ export type DatePickerProps = {
20
20
  disableDates?: string[];
21
21
  disableDaysOfWeek?: number[];
22
22
  disableWeekends?: boolean;
23
+ /**
24
+ * Whether the user input is invalid
25
+ * @default false
26
+ */
27
+ invalid?: boolean;
23
28
  /**
24
29
  * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.
25
30
  */
@@ -1,6 +1,6 @@
1
1
  import { GetStateValuesProps } from './list.types.js';
2
2
  export declare const getStateValues: (props: GetStateValuesProps) => {
3
- type: "link" | "icon" | "ordered" | "bullet" | "tick" | "cross" | "unstyled";
3
+ type: "link" | "unstyled" | "icon" | "ordered" | "bullet" | "tick" | "cross";
4
4
  look: "link" | "primary" | "hero" | "success" | "danger" | "neutral";
5
5
  spacing: "medium" | "large";
6
6
  icon: ((props: import("../icon/icon.types.js").IconProps) => JSX.Element) | undefined;
@@ -3095,6 +3095,10 @@ body {
3095
3095
  .date-picker.date-picker-block .duet-date {
3096
3096
  max-width: none;
3097
3097
  }
3098
+ .date-picker.date-picker-invalid .duet-date__input {
3099
+ --tw-border-opacity: 1;
3100
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
3101
+ }
3098
3102
  .date-picker .duet-date__dialog-content {
3099
3103
  --tw-bg-opacity: 1;
3100
3104
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
@@ -6598,6 +6602,10 @@ body {
6598
6602
  .xsl\:date-picker-block.date-picker .duet-date {
6599
6603
  max-width: none;
6600
6604
  }
6605
+ .xsl\:date-picker-invalid.date-picker .duet-date__input {
6606
+ --tw-border-opacity: 1;
6607
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
6608
+ }
6601
6609
  }
6602
6610
  @media (min-width: 768px) {
6603
6611
  .sm\:typography-body-1 {
@@ -6762,6 +6770,10 @@ body {
6762
6770
  .sm\:date-picker-block.date-picker .duet-date {
6763
6771
  max-width: none;
6764
6772
  }
6773
+ .sm\:date-picker-invalid.date-picker .duet-date__input {
6774
+ --tw-border-opacity: 1;
6775
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
6776
+ }
6765
6777
  }
6766
6778
  @media (min-width: 992px) {
6767
6779
  .md\:typography-body-1 {
@@ -6926,6 +6938,10 @@ body {
6926
6938
  .md\:date-picker-block.date-picker .duet-date {
6927
6939
  max-width: none;
6928
6940
  }
6941
+ .md\:date-picker-invalid.date-picker .duet-date__input {
6942
+ --tw-border-opacity: 1;
6943
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
6944
+ }
6929
6945
  }
6930
6946
  @media (min-width: 1200px) {
6931
6947
  .lg\:typography-body-1 {
@@ -7090,6 +7106,10 @@ body {
7090
7106
  .lg\:date-picker-block.date-picker .duet-date {
7091
7107
  max-width: none;
7092
7108
  }
7109
+ .lg\:date-picker-invalid.date-picker .duet-date__input {
7110
+ --tw-border-opacity: 1;
7111
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
7112
+ }
7093
7113
  }
7094
7114
  @media (min-width: 1584px) {
7095
7115
  .xl\:typography-body-1 {
@@ -7254,6 +7274,10 @@ body {
7254
7274
  .xl\:date-picker-block.date-picker .duet-date {
7255
7275
  max-width: none;
7256
7276
  }
7277
+ .xl\:date-picker-invalid.date-picker .duet-date__input {
7278
+ --tw-border-opacity: 1;
7279
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
7280
+ }
7257
7281
  }
7258
7282
  .placeholder\:font-light::-moz-placeholder {
7259
7283
  font-weight: 300;
@@ -3095,6 +3095,10 @@ body {
3095
3095
  .date-picker.date-picker-block .duet-date {
3096
3096
  max-width: none;
3097
3097
  }
3098
+ .date-picker.date-picker-invalid .duet-date__input {
3099
+ --tw-border-opacity: 1;
3100
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
3101
+ }
3098
3102
  .date-picker .duet-date__dialog-content {
3099
3103
  --tw-bg-opacity: 1;
3100
3104
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
@@ -6598,6 +6602,10 @@ body {
6598
6602
  .xsl\:date-picker-block.date-picker .duet-date {
6599
6603
  max-width: none;
6600
6604
  }
6605
+ .xsl\:date-picker-invalid.date-picker .duet-date__input {
6606
+ --tw-border-opacity: 1;
6607
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
6608
+ }
6601
6609
  }
6602
6610
  @media (min-width: 768px) {
6603
6611
  .sm\:typography-body-1 {
@@ -6762,6 +6770,10 @@ body {
6762
6770
  .sm\:date-picker-block.date-picker .duet-date {
6763
6771
  max-width: none;
6764
6772
  }
6773
+ .sm\:date-picker-invalid.date-picker .duet-date__input {
6774
+ --tw-border-opacity: 1;
6775
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
6776
+ }
6765
6777
  }
6766
6778
  @media (min-width: 992px) {
6767
6779
  .md\:typography-body-1 {
@@ -6926,6 +6938,10 @@ body {
6926
6938
  .md\:date-picker-block.date-picker .duet-date {
6927
6939
  max-width: none;
6928
6940
  }
6941
+ .md\:date-picker-invalid.date-picker .duet-date__input {
6942
+ --tw-border-opacity: 1;
6943
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
6944
+ }
6929
6945
  }
6930
6946
  @media (min-width: 1200px) {
6931
6947
  .lg\:typography-body-1 {
@@ -7090,6 +7106,10 @@ body {
7090
7106
  .lg\:date-picker-block.date-picker .duet-date {
7091
7107
  max-width: none;
7092
7108
  }
7109
+ .lg\:date-picker-invalid.date-picker .duet-date__input {
7110
+ --tw-border-opacity: 1;
7111
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
7112
+ }
7093
7113
  }
7094
7114
  @media (min-width: 1584px) {
7095
7115
  .xl\:typography-body-1 {
@@ -7254,6 +7274,10 @@ body {
7254
7274
  .xl\:date-picker-block.date-picker .duet-date {
7255
7275
  max-width: none;
7256
7276
  }
7277
+ .xl\:date-picker-invalid.date-picker .duet-date__input {
7278
+ --tw-border-opacity: 1;
7279
+ border-color: rgb(196 0 0 / var(--tw-border-opacity, 1));
7280
+ }
7257
7281
  }
7258
7282
  .placeholder\:font-light::-moz-placeholder {
7259
7283
  font-weight: 300;
@@ -72,6 +72,11 @@ export declare const generateDatePicker: () => {
72
72
  '@apply max-w-none': {};
73
73
  };
74
74
  };
75
+ '&.date-picker-invalid': {
76
+ '.duet-date__input': {
77
+ '@apply border-danger': {};
78
+ };
79
+ };
75
80
  '.duet-date__dialog-content': {
76
81
  '@apply bg-white': {};
77
82
  };
@@ -73,6 +73,11 @@ export const generateDatePicker = ()=>{
73
73
  '@apply max-w-none': {}
74
74
  }
75
75
  },
76
+ '&.date-picker-invalid': {
77
+ '.duet-date__input': {
78
+ '@apply border-danger': {}
79
+ }
80
+ },
76
81
  '.duet-date__dialog-content': {
77
82
  '@apply bg-white': {}
78
83
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@westpac/ui",
3
- "version": "0.34.1",
3
+ "version": "0.35.0",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -258,8 +258,8 @@
258
258
  "vite": "^5.2.12",
259
259
  "vitest": "^0.30.1",
260
260
  "@westpac/eslint-config": "~0.4.0",
261
- "@westpac/test-config": "~0.0.0",
262
- "@westpac/ts-config": "~0.0.0"
261
+ "@westpac/ts-config": "~0.0.0",
262
+ "@westpac/test-config": "~0.0.0"
263
263
  },
264
264
  "dependencies": {
265
265
  "@duetds/date-picker": "~1.4.0",
@@ -34,6 +34,7 @@ export const styles = tv(
34
34
  hero: { base: 'border border-hero bg-hero text-white hover:bg-hero-70 active:bg-hero-50' },
35
35
  faint: { base: 'border border-border bg-light text-muted hover:bg-white active:bg-white' },
36
36
  link: { base: 'text-link underline' },
37
+ unstyled: { base: '' },
37
38
  },
38
39
  soft: {
39
40
  true: { base: 'bg-white' },
@@ -23,6 +23,7 @@ export function DatePicker({
23
23
  size = 'md',
24
24
  name,
25
25
  block = false,
26
+ invalid = false,
26
27
  ...props
27
28
  }: DatePickerProps) {
28
29
  const [initialized, setInitialized] = useState(false);
@@ -122,5 +123,5 @@ export function DatePicker({
122
123
 
123
124
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
124
125
  // @ts-ignore
125
- return <duet-date-picker class={styles({ size, block })} ref={ref} {...props} />;
126
+ return <duet-date-picker class={styles({ size, block, invalid })} ref={ref} {...props} />;
126
127
  }
@@ -14,6 +14,10 @@ export const styles = tv(
14
14
  true: 'date-picker-block',
15
15
  false: '',
16
16
  },
17
+ invalid: {
18
+ true: 'date-picker-invalid',
19
+ false: '',
20
+ },
17
21
  },
18
22
  },
19
23
  { responsiveVariants: ['xsl', 'sm', 'md', 'lg', 'xl'] },
@@ -33,6 +33,11 @@ export type DatePickerProps = {
33
33
  * Disable weekend days
34
34
  */
35
35
  disableWeekends?: boolean;
36
+ /**
37
+ * Whether the user input is invalid
38
+ * @default false
39
+ */
40
+ invalid?: boolean;
36
41
  /**
37
42
  * Maximum date allowed to be picked. Must be in IS0-8601 format: YYYY-MM-DD.
38
43
  */
@@ -77,6 +77,11 @@ export const generateDatePicker = () => {
77
77
  '@apply max-w-none': {},
78
78
  },
79
79
  },
80
+ '&.date-picker-invalid': {
81
+ '.duet-date__input': {
82
+ '@apply border-danger': {},
83
+ },
84
+ },
80
85
 
81
86
  /* Calendar selects */
82
87
  '.duet-date__dialog-content': {