@westpac/ui 0.52.0 → 0.53.2

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 (87) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/component-type.json +1 -1
  3. package/dist/components/accordion/components/accordion-item/accordion-item.styles.js +1 -1
  4. package/dist/components/alert/alert.styles.js +1 -1
  5. package/dist/components/autocomplete/autocomplete.styles.js +1 -1
  6. package/dist/components/badge/badge.styles.d.ts +2 -2
  7. package/dist/components/badge/badge.styles.js +2 -2
  8. package/dist/components/bottom-sheet/components/bottom-sheet-dialog/bottom-sheet-dialog.styles.js +2 -2
  9. package/dist/components/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.js +1 -1
  10. package/dist/components/button/button.styles.js +1 -1
  11. package/dist/components/button-dropdown/button-dropdown.component.d.ts +1 -1
  12. package/dist/components/button-dropdown/button-dropdown.component.js +5 -3
  13. package/dist/components/button-dropdown/button-dropdown.types.d.ts +7 -2
  14. package/dist/components/button-dropdown/components/button-dropdown-panel/button-dropdown-panel.styles.js +1 -1
  15. package/dist/components/collapsible/collapsible.styles.js +1 -1
  16. package/dist/components/compacta/compacta.styles.js +1 -1
  17. package/dist/components/date-picker-beta/components/calendar/components/calendar-grid/calendar-grid.component.js +1 -1
  18. package/dist/components/date-picker-beta/components/date-field/components/date-segment/date-segment.styles.d.ts +2 -2
  19. package/dist/components/date-picker-beta/components/date-field/components/date-segment/date-segment.styles.js +1 -1
  20. package/dist/components/date-picker-beta/components/popover/popover.styles.js +1 -1
  21. package/dist/components/filter/components/filter-buttons/filter-buttons.component.js +2 -3
  22. package/dist/components/filter/components/filter-buttons/filter-buttons.styles.js +5 -5
  23. package/dist/components/filter/filter.component.js +1 -1
  24. package/dist/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.styles.d.ts +2 -2
  25. package/dist/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.styles.js +1 -1
  26. package/dist/components/flexi-cell/flexi-cell.styles.js +1 -1
  27. package/dist/components/footer/footer.styles.js +1 -1
  28. package/dist/components/header/header.styles.js +1 -1
  29. package/dist/components/input-group/components/input-group-add-ons/input-group-add-ons.styles.d.ts +2 -2
  30. package/dist/components/input-group/components/input-group-add-ons/input-group-add-ons.styles.js +3 -3
  31. package/dist/components/input-group/input-group.component.js +3 -1
  32. package/dist/components/modal/components/modal-dialog/modal-dialog.styles.js +1 -1
  33. package/dist/components/pagination/components/pagination-item/pagination-item.component.js +8 -2
  34. package/dist/components/pagination/components/pagination-item/pagination-item.styles.d.ts +12 -0
  35. package/dist/components/pagination/components/pagination-item/pagination-item.styles.js +5 -1
  36. package/dist/components/pagination/components/pagination-presentational/pagination-presentational.styles.js +1 -1
  37. package/dist/components/panel/components/panel-footer/panel-footer.styles.js +1 -1
  38. package/dist/components/panel/panel.styles.js +1 -1
  39. package/dist/components/popover/components/panel/panel.styles.js +2 -2
  40. package/dist/components/progress-rope/components/progress-rope-group-step/progress-rope-group-step.component.js +37 -19
  41. package/dist/components/repeater/repeater.styles.js +1 -1
  42. package/dist/components/table/table.styles.js +1 -1
  43. package/dist/components/tabs/components/tabs-tab/tabs-tab.styles.js +1 -1
  44. package/dist/components/tabs/components/tabs-tab-panel/tabs-tab-panel.styles.d.ts +2 -2
  45. package/dist/components/tabs/components/tabs-tab-panel/tabs-tab-panel.styles.js +1 -1
  46. package/dist/components/well/well.styles.d.ts +2 -2
  47. package/dist/components/well/well.styles.js +1 -1
  48. package/dist/css/westpac-ui.css +59 -9
  49. package/dist/css/westpac-ui.min.css +59 -9
  50. package/package.json +2 -2
  51. package/src/components/accordion/components/accordion-item/accordion-item.styles.ts +1 -1
  52. package/src/components/alert/alert.styles.ts +1 -1
  53. package/src/components/autocomplete/autocomplete.styles.ts +1 -1
  54. package/src/components/badge/badge.styles.ts +2 -2
  55. package/src/components/bottom-sheet/components/bottom-sheet-dialog/bottom-sheet-dialog.styles.ts +2 -2
  56. package/src/components/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.tsx +1 -1
  57. package/src/components/button/button.styles.ts +1 -1
  58. package/src/components/button-dropdown/button-dropdown.component.tsx +8 -1
  59. package/src/components/button-dropdown/button-dropdown.types.ts +7 -2
  60. package/src/components/button-dropdown/components/button-dropdown-panel/button-dropdown-panel.styles.ts +1 -1
  61. package/src/components/collapsible/collapsible.styles.ts +1 -1
  62. package/src/components/compacta/compacta.styles.ts +1 -1
  63. package/src/components/date-picker-beta/components/calendar/components/calendar-grid/calendar-grid.component.tsx +1 -1
  64. package/src/components/date-picker-beta/components/date-field/components/date-segment/date-segment.styles.ts +1 -1
  65. package/src/components/date-picker-beta/components/popover/popover.styles.ts +1 -1
  66. package/src/components/filter/components/filter-buttons/filter-buttons.component.tsx +1 -2
  67. package/src/components/filter/components/filter-buttons/filter-buttons.styles.ts +5 -5
  68. package/src/components/filter/filter.component.tsx +1 -1
  69. package/src/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.styles.ts +1 -1
  70. package/src/components/flexi-cell/flexi-cell.styles.ts +1 -1
  71. package/src/components/footer/footer.styles.ts +1 -1
  72. package/src/components/header/header.styles.ts +1 -1
  73. package/src/components/input-group/components/input-group-add-ons/input-group-add-ons.styles.ts +3 -3
  74. package/src/components/input-group/input-group.component.tsx +3 -0
  75. package/src/components/modal/components/modal-dialog/modal-dialog.styles.ts +1 -1
  76. package/src/components/pagination/components/pagination-item/pagination-item.component.tsx +9 -2
  77. package/src/components/pagination/components/pagination-item/pagination-item.styles.ts +5 -1
  78. package/src/components/pagination/components/pagination-presentational/pagination-presentational.styles.ts +1 -1
  79. package/src/components/panel/components/panel-footer/panel-footer.styles.ts +1 -1
  80. package/src/components/panel/panel.styles.ts +1 -1
  81. package/src/components/popover/components/panel/panel.styles.ts +2 -2
  82. package/src/components/progress-rope/components/progress-rope-group-step/progress-rope-group-step.component.tsx +62 -38
  83. package/src/components/repeater/repeater.styles.ts +1 -1
  84. package/src/components/table/table.styles.ts +1 -1
  85. package/src/components/tabs/components/tabs-tab/tabs-tab.styles.ts +1 -1
  86. package/src/components/tabs/components/tabs-tab-panel/tabs-tab-panel.styles.ts +1 -1
  87. package/src/components/well/well.styles.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
  export const styles = tv({
3
3
  slots: {
4
- base: 'mb-4 w-full',
4
+ base: 'mb-4 w-full [&_:focus-visible]:focus-outline',
5
5
  wrapper: 'max-xsl:mb-3 max-xsl:w-full max-xsl:overflow-x-auto max-xsl:overflow-y-hidden'
6
6
  },
7
7
  variants: {}
@@ -22,7 +22,7 @@ export const styles = tv({
22
22
  hero: ''
23
23
  },
24
24
  isFocusVisible: {
25
- true: 'focus-outline',
25
+ true: 'z-10 focus-outline',
26
26
  false: 'outline-none'
27
27
  }
28
28
  },
@@ -6,7 +6,7 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
6
6
  isFocused: {
7
7
  true: string;
8
8
  };
9
- }, undefined, "flex-1 bg-white p-4", {
9
+ }, undefined, "flex-1 bg-white p-4 [&_:focus-visible]:focus-outline", {
10
10
  responsiveVariants: string[];
11
11
  }, {
12
12
  look: {
@@ -24,6 +24,6 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
24
24
  isFocused: {
25
25
  true: string;
26
26
  };
27
- }, undefined, "flex-1 bg-white p-4", {
27
+ }, undefined, "flex-1 bg-white p-4 [&_:focus-visible]:focus-outline", {
28
28
  responsiveVariants: string[];
29
29
  }, unknown, unknown, undefined>>;
@@ -1,6 +1,6 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
  export const styles = tv({
3
- base: 'flex-1 bg-white p-4',
3
+ base: 'flex-1 bg-white p-4 [&_:focus-visible]:focus-outline',
4
4
  variants: {
5
5
  look: {
6
6
  default: 'border border-border',
@@ -3,7 +3,7 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
3
3
  light: string;
4
4
  white: string;
5
5
  };
6
- }, undefined, "rounded border border-border p-2 sm:p-4", {
6
+ }, undefined, "rounded border border-border p-2 sm:p-4 [&_:focus-visible]:focus-outline", {
7
7
  responsiveVariants: string[];
8
8
  }, {
9
9
  color: {
@@ -15,6 +15,6 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
15
15
  light: string;
16
16
  white: string;
17
17
  };
18
- }, undefined, "rounded border border-border p-2 sm:p-4", {
18
+ }, undefined, "rounded border border-border p-2 sm:p-4 [&_:focus-visible]:focus-outline", {
19
19
  responsiveVariants: string[];
20
20
  }, unknown, unknown, undefined>>;
@@ -1,6 +1,6 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
  export const styles = tv({
3
- base: 'rounded border border-border p-2 sm:p-4',
3
+ base: 'rounded border border-border p-2 sm:p-4 [&_:focus-visible]:focus-outline',
4
4
  variants: {
5
5
  color: {
6
6
  light: 'bg-light',
@@ -3307,8 +3307,8 @@ body {
3307
3307
  .-left-1 {
3308
3308
  left: -0.375rem;
3309
3309
  }
3310
- .-right-1 {
3311
- right: -0.375rem;
3310
+ .-right-2 {
3311
+ right: -0.75rem;
3312
3312
  }
3313
3313
  .bottom-full {
3314
3314
  bottom: 100%;
@@ -3376,6 +3376,9 @@ body {
3376
3376
  .z-10 {
3377
3377
  z-index: 10;
3378
3378
  }
3379
+ .z-\[11\] {
3380
+ z-index: 11;
3381
+ }
3379
3382
  .z-\[999\] {
3380
3383
  z-index: 999;
3381
3384
  }
@@ -4466,15 +4469,18 @@ body {
4466
4469
  .overflow-visible {
4467
4470
  overflow: visible;
4468
4471
  }
4469
- .overflow-x-auto {
4470
- overflow-x: auto;
4471
- }
4472
4472
  .overflow-y-auto {
4473
4473
  overflow-y: auto;
4474
4474
  }
4475
+ .overflow-x-clip {
4476
+ overflow-x: clip;
4477
+ }
4475
4478
  .overflow-y-visible {
4476
4479
  overflow-y: visible;
4477
4480
  }
4481
+ .overflow-x-scroll {
4482
+ overflow-x: scroll;
4483
+ }
4478
4484
  .truncate {
4479
4485
  overflow: hidden;
4480
4486
  text-overflow: ellipsis;
@@ -5741,6 +5747,9 @@ body {
5741
5747
  .p-1 {
5742
5748
  padding: 0.375rem;
5743
5749
  }
5750
+ .p-10 {
5751
+ padding: 3.75rem;
5752
+ }
5744
5753
  .p-2 {
5745
5754
  padding: 0.75rem;
5746
5755
  }
@@ -6298,10 +6307,6 @@ body {
6298
6307
  --tw-text-opacity: 1 !important;
6299
6308
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
6300
6309
  }
6301
- .text-\[blue\] {
6302
- --tw-text-opacity: 1;
6303
- color: rgb(0 0 255 / var(--tw-text-opacity, 1));
6304
- }
6305
6310
  .text-background {
6306
6311
  --tw-text-opacity: 1;
6307
6312
  color: rgba(var(--colors-background), var(--tw-text-opacity, 1));
@@ -6491,12 +6496,20 @@ body {
6491
6496
  .\!outline-offset-0 {
6492
6497
  outline-offset: 0px !important;
6493
6498
  }
6499
+ .\!outline-offset-\[-3px\] {
6500
+ outline-offset: -3px !important;
6501
+ }
6494
6502
  .outline-offset-\[3px\] {
6495
6503
  outline-offset: 3px;
6496
6504
  }
6497
6505
  .outline-focus {
6498
6506
  outline-color: rgb(var(--colors-focus));
6499
6507
  }
6508
+ .ring {
6509
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
6510
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
6511
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
6512
+ }
6500
6513
  .filter {
6501
6514
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
6502
6515
  }
@@ -8147,6 +8160,15 @@ body {
8147
8160
  .first-of-type\:-mt-1:first-of-type {
8148
8161
  margin-top: -0.375rem;
8149
8162
  }
8163
+ .focus-within\:z-20:focus-within {
8164
+ z-index: 20;
8165
+ }
8166
+ .focus-within\:focus-outline:focus-within {
8167
+ outline-style: solid;
8168
+ outline-width: 2px;
8169
+ outline-offset: 3px;
8170
+ outline-color: rgb(var(--colors-focus));
8171
+ }
8150
8172
  @media (hover: hover) and (pointer: fine) {
8151
8173
  .hover\:cursor-pointer:hover {
8152
8174
  cursor: pointer;
@@ -8233,6 +8255,9 @@ body {
8233
8255
  .focus\:top-0:focus {
8234
8256
  top: 0rem;
8235
8257
  }
8258
+ .focus\:z-10:focus {
8259
+ z-index: 10;
8260
+ }
8236
8261
  .focus\:touch-auto:focus {
8237
8262
  touch-action: auto;
8238
8263
  }
@@ -8293,6 +8318,10 @@ body {
8293
8318
  --tw-shadow-colored: 0 0 #0000;
8294
8319
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
8295
8320
  }
8321
+ .focus\:outline-none:focus {
8322
+ outline: 2px solid transparent;
8323
+ outline-offset: 2px;
8324
+ }
8296
8325
  .focus\:-outline-offset-2:focus {
8297
8326
  outline-offset: -2px;
8298
8327
  }
@@ -9921,6 +9950,9 @@ body {
9921
9950
  outline: 2px solid transparent;
9922
9951
  outline-offset: 2px;
9923
9952
  }
9953
+ .xsl\:\!outline-offset-\[-3px\] {
9954
+ outline-offset: -3px !important;
9955
+ }
9924
9956
  .xsl\:transition-colors {
9925
9957
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
9926
9958
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -11665,6 +11697,9 @@ body {
11665
11697
  outline: 2px solid transparent;
11666
11698
  outline-offset: 2px;
11667
11699
  }
11700
+ .sm\:\!outline-offset-\[-3px\] {
11701
+ outline-offset: -3px !important;
11702
+ }
11668
11703
  .sm\:transition-colors {
11669
11704
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
11670
11705
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -13476,6 +13511,9 @@ body {
13476
13511
  outline: 2px solid transparent;
13477
13512
  outline-offset: 2px;
13478
13513
  }
13514
+ .md\:\!outline-offset-\[-3px\] {
13515
+ outline-offset: -3px !important;
13516
+ }
13479
13517
  .md\:transition-colors {
13480
13518
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
13481
13519
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -15262,6 +15300,9 @@ body {
15262
15300
  outline: 2px solid transparent;
15263
15301
  outline-offset: 2px;
15264
15302
  }
15303
+ .lg\:\!outline-offset-\[-3px\] {
15304
+ outline-offset: -3px !important;
15305
+ }
15265
15306
  .lg\:transition-colors {
15266
15307
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
15267
15308
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -16976,6 +17017,9 @@ body {
16976
17017
  outline: 2px solid transparent;
16977
17018
  outline-offset: 2px;
16978
17019
  }
17020
+ .xl\:\!outline-offset-\[-3px\] {
17021
+ outline-offset: -3px !important;
17022
+ }
16979
17023
  .xl\:transition-colors {
16980
17024
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
16981
17025
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -17412,6 +17456,12 @@ body {
17412
17456
  .\[\&\:not\(\:last-child\)\]\:pb-1:not(:last-child) {
17413
17457
  padding-bottom: 0.375rem;
17414
17458
  }
17459
+ .\[\&_\:focus-visible\]\:focus-outline :focus-visible {
17460
+ outline-style: solid;
17461
+ outline-width: 2px;
17462
+ outline-offset: 3px;
17463
+ outline-color: rgb(var(--colors-focus));
17464
+ }
17415
17465
  .\[\&_a\]\:underline a {
17416
17466
  text-decoration-line: underline;
17417
17467
  }
@@ -3307,8 +3307,8 @@ body {
3307
3307
  .-left-1 {
3308
3308
  left: -0.375rem;
3309
3309
  }
3310
- .-right-1 {
3311
- right: -0.375rem;
3310
+ .-right-2 {
3311
+ right: -0.75rem;
3312
3312
  }
3313
3313
  .bottom-full {
3314
3314
  bottom: 100%;
@@ -3376,6 +3376,9 @@ body {
3376
3376
  .z-10 {
3377
3377
  z-index: 10;
3378
3378
  }
3379
+ .z-\[11\] {
3380
+ z-index: 11;
3381
+ }
3379
3382
  .z-\[999\] {
3380
3383
  z-index: 999;
3381
3384
  }
@@ -4466,15 +4469,18 @@ body {
4466
4469
  .overflow-visible {
4467
4470
  overflow: visible;
4468
4471
  }
4469
- .overflow-x-auto {
4470
- overflow-x: auto;
4471
- }
4472
4472
  .overflow-y-auto {
4473
4473
  overflow-y: auto;
4474
4474
  }
4475
+ .overflow-x-clip {
4476
+ overflow-x: clip;
4477
+ }
4475
4478
  .overflow-y-visible {
4476
4479
  overflow-y: visible;
4477
4480
  }
4481
+ .overflow-x-scroll {
4482
+ overflow-x: scroll;
4483
+ }
4478
4484
  .truncate {
4479
4485
  overflow: hidden;
4480
4486
  text-overflow: ellipsis;
@@ -5741,6 +5747,9 @@ body {
5741
5747
  .p-1 {
5742
5748
  padding: 0.375rem;
5743
5749
  }
5750
+ .p-10 {
5751
+ padding: 3.75rem;
5752
+ }
5744
5753
  .p-2 {
5745
5754
  padding: 0.75rem;
5746
5755
  }
@@ -6298,10 +6307,6 @@ body {
6298
6307
  --tw-text-opacity: 1 !important;
6299
6308
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
6300
6309
  }
6301
- .text-\[blue\] {
6302
- --tw-text-opacity: 1;
6303
- color: rgb(0 0 255 / var(--tw-text-opacity, 1));
6304
- }
6305
6310
  .text-background {
6306
6311
  --tw-text-opacity: 1;
6307
6312
  color: rgba(var(--colors-background), var(--tw-text-opacity, 1));
@@ -6491,12 +6496,20 @@ body {
6491
6496
  .\!outline-offset-0 {
6492
6497
  outline-offset: 0px !important;
6493
6498
  }
6499
+ .\!outline-offset-\[-3px\] {
6500
+ outline-offset: -3px !important;
6501
+ }
6494
6502
  .outline-offset-\[3px\] {
6495
6503
  outline-offset: 3px;
6496
6504
  }
6497
6505
  .outline-focus {
6498
6506
  outline-color: rgb(var(--colors-focus));
6499
6507
  }
6508
+ .ring {
6509
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
6510
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
6511
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
6512
+ }
6500
6513
  .filter {
6501
6514
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
6502
6515
  }
@@ -8147,6 +8160,15 @@ body {
8147
8160
  .first-of-type\:-mt-1:first-of-type {
8148
8161
  margin-top: -0.375rem;
8149
8162
  }
8163
+ .focus-within\:z-20:focus-within {
8164
+ z-index: 20;
8165
+ }
8166
+ .focus-within\:focus-outline:focus-within {
8167
+ outline-style: solid;
8168
+ outline-width: 2px;
8169
+ outline-offset: 3px;
8170
+ outline-color: rgb(var(--colors-focus));
8171
+ }
8150
8172
  @media (hover: hover) and (pointer: fine) {
8151
8173
  .hover\:cursor-pointer:hover {
8152
8174
  cursor: pointer;
@@ -8233,6 +8255,9 @@ body {
8233
8255
  .focus\:top-0:focus {
8234
8256
  top: 0rem;
8235
8257
  }
8258
+ .focus\:z-10:focus {
8259
+ z-index: 10;
8260
+ }
8236
8261
  .focus\:touch-auto:focus {
8237
8262
  touch-action: auto;
8238
8263
  }
@@ -8293,6 +8318,10 @@ body {
8293
8318
  --tw-shadow-colored: 0 0 #0000;
8294
8319
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
8295
8320
  }
8321
+ .focus\:outline-none:focus {
8322
+ outline: 2px solid transparent;
8323
+ outline-offset: 2px;
8324
+ }
8296
8325
  .focus\:-outline-offset-2:focus {
8297
8326
  outline-offset: -2px;
8298
8327
  }
@@ -9921,6 +9950,9 @@ body {
9921
9950
  outline: 2px solid transparent;
9922
9951
  outline-offset: 2px;
9923
9952
  }
9953
+ .xsl\:\!outline-offset-\[-3px\] {
9954
+ outline-offset: -3px !important;
9955
+ }
9924
9956
  .xsl\:transition-colors {
9925
9957
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
9926
9958
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -11665,6 +11697,9 @@ body {
11665
11697
  outline: 2px solid transparent;
11666
11698
  outline-offset: 2px;
11667
11699
  }
11700
+ .sm\:\!outline-offset-\[-3px\] {
11701
+ outline-offset: -3px !important;
11702
+ }
11668
11703
  .sm\:transition-colors {
11669
11704
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
11670
11705
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -13476,6 +13511,9 @@ body {
13476
13511
  outline: 2px solid transparent;
13477
13512
  outline-offset: 2px;
13478
13513
  }
13514
+ .md\:\!outline-offset-\[-3px\] {
13515
+ outline-offset: -3px !important;
13516
+ }
13479
13517
  .md\:transition-colors {
13480
13518
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
13481
13519
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -15262,6 +15300,9 @@ body {
15262
15300
  outline: 2px solid transparent;
15263
15301
  outline-offset: 2px;
15264
15302
  }
15303
+ .lg\:\!outline-offset-\[-3px\] {
15304
+ outline-offset: -3px !important;
15305
+ }
15265
15306
  .lg\:transition-colors {
15266
15307
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
15267
15308
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -16976,6 +17017,9 @@ body {
16976
17017
  outline: 2px solid transparent;
16977
17018
  outline-offset: 2px;
16978
17019
  }
17020
+ .xl\:\!outline-offset-\[-3px\] {
17021
+ outline-offset: -3px !important;
17022
+ }
16979
17023
  .xl\:transition-colors {
16980
17024
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
16981
17025
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -17412,6 +17456,12 @@ body {
17412
17456
  .\[\&\:not\(\:last-child\)\]\:pb-1:not(:last-child) {
17413
17457
  padding-bottom: 0.375rem;
17414
17458
  }
17459
+ .\[\&_\:focus-visible\]\:focus-outline :focus-visible {
17460
+ outline-style: solid;
17461
+ outline-width: 2px;
17462
+ outline-offset: 3px;
17463
+ outline-color: rgb(var(--colors-focus));
17464
+ }
17415
17465
  .\[\&_a\]\:underline a {
17416
17466
  text-decoration-line: underline;
17417
17467
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@westpac/ui",
3
- "version": "0.52.0",
3
+ "version": "0.53.2",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -255,8 +255,8 @@
255
255
  "typescript": "^5.5.4",
256
256
  "vite": "^7.0.5",
257
257
  "vitest": "^3.2.4",
258
- "@westpac/test-config": "~0.0.0",
259
258
  "@westpac/eslint-config": "~1.0.1",
259
+ "@westpac/test-config": "~0.0.0",
260
260
  "@westpac/ts-config": "~0.0.0"
261
261
  },
262
262
  "dependencies": {
@@ -7,7 +7,7 @@ export const styles = tv(
7
7
  itemHeader: 'typography-body-9 flex w-full flex-1 items-center justify-between px-3 py-2 group-first:border-t-0',
8
8
  headerTitleWrapper: 'flex-1 pr-2 text-left',
9
9
  indicator: 'size-3 rotate-90',
10
- content: '',
10
+ content: '[&_:focus-visible]:focus-outline',
11
11
  motionContent: '',
12
12
  },
13
13
  variants: {
@@ -5,7 +5,7 @@ export const styles = tv(
5
5
  slots: {
6
6
  base: 'typography-body-10 relative mb-5 xsl:flex',
7
7
  icon: 'float-left flex-none',
8
- body: 'relative flex-1 overflow-hidden xsl:top-[0.125rem] [&_a]:underline',
8
+ body: 'relative flex-1 xsl:top-[0.125rem] [&_:focus-visible]:focus-outline [&_a]:underline',
9
9
  heading: 'typography-body-9 mb-1 font-bold',
10
10
  close: 'absolute right-0.5 top-0.5 h-5.5 p-1 hover:opacity-80',
11
11
  },
@@ -6,7 +6,7 @@ export const styles = tv(
6
6
  base: 'relative flex flex-1 flex-col',
7
7
  label: 'block text-left text-sm font-medium text-text',
8
8
  outerWrapper:
9
- 'form-control relative flex flex-1 flex-row items-stretch overflow-hidden pr-2 disabled:form-control-disabled group-[.input-group-after]:rounded-r-none group-[.input-group-before]:rounded-l-none group-[.input-group-after]:border-r-0 group-[.input-group-before]:border-l-0',
9
+ 'form-control relative flex flex-1 flex-row items-stretch pr-2 disabled:form-control-disabled group-[.input-group-after]:rounded-r-none group-[.input-group-before]:rounded-l-none group-[.input-group-after]:border-r-0 group-[.input-group-before]:border-l-0',
10
10
  input: 'appearance-none bg-[transparent] outline-none',
11
11
  clearButton: 'flex cursor-default items-center justify-center text-text-50 hover:text-border-60',
12
12
  iconWrapper: 'flex flex-col justify-center',
@@ -2,7 +2,7 @@ import { tv } from 'tailwind-variants';
2
2
 
3
3
  export const styles = tv(
4
4
  {
5
- base: 'inline-block w-fit whitespace-nowrap border text-center',
5
+ base: 'inline-block w-fit whitespace-nowrap border text-center [&_:focus-visible]:focus-outline',
6
6
  variants: {
7
7
  color: {
8
8
  danger: 'border-danger bg-danger text-white',
@@ -24,7 +24,7 @@ export const styles = tv(
24
24
  'warning-inverted': 'border-none bg-white text-warning',
25
25
  },
26
26
  type: {
27
- pill: 'typography-body-10 flex h-4 min-w-4 w-fit items-center justify-center rounded-xl px-[0.4375rem] font-medium leading-none',
27
+ pill: 'typography-body-10 inline-flex h-4 w-fit min-w-4 items-center justify-center rounded-xl px-[0.4375rem] font-medium leading-none',
28
28
  default: 'h-[1.25rem] rounded-sm px-1 text-[0.75rem] leading-[1.125rem]',
29
29
  },
30
30
  soft: {
@@ -3,9 +3,9 @@ import { tv } from 'tailwind-variants';
3
3
  export const styles = tv(
4
4
  {
5
5
  slots: {
6
- base: 'relative flex max-h-screen max-w-full flex-1 flex-col overflow-hidden rounded-t-md bg-white shadow-sm md:w-[37.5rem] md:rounded-md',
6
+ base: 'relative flex max-h-screen max-w-full flex-1 flex-col overflow-hidden rounded-t-md bg-white shadow-sm focus-visible:focus-outline md:w-[37.5rem] md:rounded-md',
7
7
  title: 'typography-body-7 p-7 pb-4 pt-9 font-bold text-text max-md:px-5',
8
- body: 'flex-1 overflow-auto px-7 pb-7 text-text max-md:px-5',
8
+ body: 'flex-1 overflow-auto px-7 pb-7 text-text max-md:px-5 [&_:focus-visible]:focus-outline',
9
9
  closeBtn: 'absolute right-3 top-3 p-0',
10
10
  buttonWrapper: '-mt-2 flex gap-1 px-7 pb-7 max-md:flex-col max-md:px-5 max-md:pb-5',
11
11
  primaryBtn: '',
@@ -33,7 +33,7 @@ export function BaseBreadcrumbItem(
33
33
  ref as RefObject<HTMLElement>,
34
34
  );
35
35
  return (
36
- <li className="inline-flex items-center">
36
+ <li className="inline-flex items-center [&_:focus-visible]:focus-outline">
37
37
  <FinalTag
38
38
  {...({ ...itemProps, ref: propRef, href: FinalTag === 'a' ? href : undefined } as object)}
39
39
  className={styles({ className, isDisabled, isCurrent })}
@@ -33,7 +33,7 @@ export const styles = tv(
33
33
  },
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-borderDark bg-light text-muted hover:bg-white active:bg-white' },
36
- link: { base: 'text-link underline' },
36
+ link: { base: 'px-0 text-link underline' },
37
37
  unstyled: { base: 'p-0 text-left' },
38
38
  },
39
39
  soft: {
@@ -19,9 +19,12 @@ export function ButtonDropdown({
19
19
  text,
20
20
  children,
21
21
  size,
22
+ 'aria-label': ariaLabel,
23
+ 'aria-labelledby': ariaLabelBy,
22
24
  look = 'hero',
23
25
  soft = false,
24
26
  block = false,
27
+ dropDownIcon: Icon = DropDownIcon,
25
28
  shouldFlip,
26
29
  }: ButtonDropdownProps) {
27
30
  const ref = useRef<HTMLButtonElement & HTMLAnchorElement & HTMLSpanElement & HTMLDivElement>(null);
@@ -50,12 +53,16 @@ export function ButtonDropdown({
50
53
  <>
51
54
  <Button
52
55
  ref={ref}
53
- iconAfter={(props: IconProps) => <DropDownIcon aria-hidden {...props} />}
56
+ iconAfter={
57
+ !(look === 'link' || look === 'unstyled') ? (props: IconProps) => <Icon aria-hidden {...props} /> : undefined
58
+ }
54
59
  iconBefore={IconBefore}
55
60
  size={size}
56
61
  look={look}
57
62
  soft={soft}
58
63
  block={block}
64
+ aria-label={ariaLabel}
65
+ aria-labelledby={ariaLabelBy}
59
66
  aria-expanded={state.isOpen}
60
67
  aria-controls={panelId}
61
68
  className={styles.base()}
@@ -2,6 +2,7 @@ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
2
  import { type VariantProps } from 'tailwind-variants';
3
3
 
4
4
  import { ButtonProps } from '../button/index.js';
5
+ import { IconProps } from '../icon/icon.types.js';
5
6
 
6
7
  import { styles } from './button-dropdown.styles.js';
7
8
  import { ButtonDropdownPanelProps } from './components/button-dropdown-panel/button-dropdown-panel.types.js';
@@ -20,7 +21,7 @@ export type ButtonDropdownProps = {
20
21
  /**
21
22
  * Look for button
22
23
  */
23
- look?: 'primary' | 'hero' | 'faint';
24
+ look?: 'primary' | 'hero' | 'faint' | 'unstyled' | 'link';
24
25
  /**
25
26
  * State of whether the Popover is open
26
27
  */
@@ -32,7 +33,11 @@ export type ButtonDropdownProps = {
32
33
  /**
33
34
  * Button text
34
35
  */
35
- text: string;
36
+ text?: ReactNode;
37
+ /**
38
+ * Dropdown icon
39
+ */
40
+ dropDownIcon?: (props: IconProps) => ReactNode;
36
41
  } & ButtonHTMLAttributes<Element> &
37
42
  Pick<ButtonProps, 'size' | 'iconBefore' | 'block'> &
38
43
  Pick<ButtonDropdownPanelProps, 'shouldFlip'>;
@@ -4,7 +4,7 @@ export const styles = tv(
4
4
  {
5
5
  slots: {
6
6
  base: 'my-0.5 rounded border border-border bg-white p-2 shadow-[0_0.375rem_0.75rem_rgba(0,0,0,0.175)]',
7
- dialog: '',
7
+ dialog: '[&_:focus-visible]:focus-outline',
8
8
  },
9
9
  variants: {
10
10
  isFocused: {
@@ -4,7 +4,7 @@ export const styles = tv(
4
4
  {
5
5
  slots: {
6
6
  base: 'px-0 text-text no-underline hover:underline',
7
- content: 'typography-body-10 mb-2 block',
7
+ content: 'typography-body-10 mb-2 block [&_:focus-visible]:focus-outline',
8
8
  },
9
9
  variants: {
10
10
  open: {
@@ -14,7 +14,7 @@ export const styles = tv(
14
14
  addBtn: 'h-auto p-0 no-underline hover:underline',
15
15
  toggleBtn: 'p-0',
16
16
  collapsible: '',
17
- content: 'px-3 pb-5 pt-0 md:px-9',
17
+ content: 'px-3 pb-5 pt-0 md:px-9 [&_:focus-visible]:focus-outline',
18
18
  footer: '',
19
19
  titlePrimary: 'typography-body-9 font-bold',
20
20
  titleSecondary: 'mt-1 items-center',
@@ -16,7 +16,7 @@ export function CalendarGrid({ state, weekdayStyle = 'short', ...props }: Calend
16
16
  <thead {...headerProps}>
17
17
  <tr>
18
18
  {weekDays.map((day, index) => (
19
- <th key={index} className="text-text size-6 text-center text-[0.75rem] font-semibold leading-9">
19
+ <th key={index} className="size-6 text-center text-[0.75rem] font-semibold leading-9 text-text">
20
20
  {day.toUpperCase().slice(0, 2)}
21
21
  </th>
22
22
  ))}
@@ -2,7 +2,7 @@ import { tv } from 'tailwind-variants';
2
2
 
3
3
  export const styles = tv(
4
4
  {
5
- base: 'font-light disabled:form-control-disabled',
5
+ base: 'font-light disabled:form-control-disabled focus:focus-outline',
6
6
  variants: {
7
7
  isPlaceholder: {
8
8
  true: 'text-text-50 opacity-100',
@@ -22,7 +22,7 @@ export const styles = tv(
22
22
  false: {
23
23
  underlay: '',
24
24
  closeButton:
25
- 'border-border pointer-events-none absolute right-0 top-0 size-5 -translate-y-1/2 translate-x-1/2 touch-none rounded-full border bg-white opacity-0 focus:pointer-events-auto focus:touch-auto focus:opacity-100',
25
+ 'pointer-events-none absolute right-0 top-0 size-5 -translate-y-1/2 translate-x-1/2 touch-none rounded-full border border-border bg-white opacity-0 focus:pointer-events-auto focus:touch-auto focus:opacity-100',
26
26
  headerLabel: 'hidden',
27
27
  popover:
28
28
  'absolute mt-1 scale-100 animate-fadeIn rounded border border-border bg-white opacity-100 shadow-[0_5px_10px_rgba(0,0,0,0.2)]',
@@ -46,7 +46,7 @@ export function FilterButtons({
46
46
  let targetElement;
47
47
  let scrollX;
48
48
  let scrollBy = true;
49
- const buttonPaddingOffset = 20;
49
+ const buttonPaddingOffset = 26;
50
50
  if (direction === 'left') {
51
51
  if (scrollTarget.left === -1) {
52
52
  scrollX = -container.clientWidth;
@@ -204,7 +204,6 @@ export function FilterButtons({
204
204
  style={{
205
205
  scrollbarWidth: 'none',
206
206
  msOverflowStyle: 'none',
207
- overflowX: 'scroll',
208
207
  }}
209
208
  {...props}
210
209
  ref={scrollContainerRef}