@westpac/ui 0.4.0 → 0.6.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.
- package/CHANGELOG.md +12 -0
- package/dist/components/accordion/accordion.component.d.ts +2 -2
- package/dist/components/accordion/components/accordion-item/accordion-item.component.js +5 -3
- package/dist/components/accordion/components/accordion-item/accordion-item.styles.d.ts +16 -0
- package/dist/components/accordion/components/accordion-item/accordion-item.styles.js +17 -9
- package/dist/components/alert/alert.component.js +2 -1
- package/dist/components/alert/alert.styles.js +2 -2
- package/dist/components/autocomplete/autocomplete.styles.js +3 -3
- package/dist/components/button/button.component.d.ts +18 -2
- package/dist/components/button/button.component.js +6 -6
- package/dist/components/button/button.styles.d.ts +16 -0
- package/dist/components/button/button.styles.js +8 -0
- package/dist/components/button-dropdown/button-dropdown.styles.js +1 -1
- package/dist/components/button-dropdown/components/panel/panel.component.js +6 -3
- package/dist/components/button-dropdown/components/panel/panel.styles.d.ts +14 -2
- package/dist/components/button-dropdown/components/panel/panel.styles.js +8 -2
- package/dist/components/checkbox-group/components/checkbox/checkbox.component.js +2 -2
- package/dist/components/checkbox-group/components/checkbox/checkbox.styles.d.ts +2 -2
- package/dist/components/checkbox-group/components/checkbox/checkbox.styles.js +4 -4
- package/dist/components/collapsible/collapsible.styles.js +1 -1
- package/dist/components/compacta/compacta.component.js +4 -3
- package/dist/components/compacta/compacta.styles.js +1 -1
- package/dist/components/flexi-cell/flexi-cell.component.js +6 -3
- package/dist/components/flexi-cell/flexi-cell.styles.d.ts +10 -0
- package/dist/components/flexi-cell/flexi-cell.styles.js +7 -2
- package/dist/components/flexi-cell/flexi-cell.types.d.ts +4 -0
- package/dist/components/flexi-cell/index.d.ts +1 -0
- package/dist/components/flexi-cell/index.js +1 -0
- package/dist/components/icon/index.d.ts +1 -0
- package/dist/components/icon/index.js +1 -0
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.js +3 -1
- package/dist/components/input/input.component.d.ts +7 -1
- package/dist/components/input/input.component.js +5 -2
- package/dist/components/input/input.styles.d.ts +7 -1
- package/dist/components/input/input.styles.js +4 -1
- package/dist/components/link/link.component.d.ts +1 -1
- package/dist/components/link/link.component.js +5 -3
- package/dist/components/link/link.styles.d.ts +16 -0
- package/dist/components/link/link.styles.js +11 -3
- package/dist/components/list/components/item/item.component.d.ts +1 -1
- package/dist/components/list/components/item/item.component.js +6 -3
- package/dist/components/list/components/item/item.styles.d.ts +10 -0
- package/dist/components/list/components/item/item.styles.js +7 -2
- package/dist/components/list/list.component.d.ts +1 -1
- package/dist/components/list/list.stories.js +7 -1
- package/dist/components/list/list.styles.js +1 -1
- package/dist/components/list/list.utils.d.ts +1 -1
- package/dist/components/modal/components/backdrop/backdrop.styles.js +2 -2
- package/dist/components/modal/components/dialog/dialog.component.js +6 -4
- package/dist/components/modal/components/dialog/dialog.styles.d.ts +16 -0
- package/dist/components/modal/components/dialog/dialog.styles.js +11 -3
- package/dist/components/popover/components/panel/panel.styles.js +1 -1
- package/dist/components/popover/popover.component.js +0 -1
- package/dist/components/popover/popover.styles.d.ts +0 -2
- package/dist/components/popover/popover.styles.js +1 -2
- package/dist/components/radio-group/components/radio/radio.component.js +2 -2
- package/dist/components/radio-group/components/radio/radio.styles.d.ts +2 -2
- package/dist/components/radio-group/components/radio/radio.styles.js +5 -5
- package/dist/components/repeater/index.d.ts +2 -0
- package/dist/components/repeater/index.js +1 -0
- package/dist/components/repeater/repeater.component.d.ts +3 -0
- package/dist/components/repeater/repeater.component.js +144 -0
- package/dist/components/repeater/repeater.stories.d.ts +13 -0
- package/dist/components/repeater/repeater.stories.js +34 -0
- package/dist/components/repeater/repeater.styles.d.ts +49 -0
- package/dist/components/repeater/repeater.styles.js +36 -0
- package/dist/components/repeater/repeater.types.d.ts +19 -0
- package/dist/components/repeater/repeater.types.js +1 -0
- package/dist/components/repeater/repeater.utils.d.ts +2 -0
- package/dist/components/repeater/repeater.utils.js +2 -0
- package/dist/components/select/select.component.d.ts +11 -1
- package/dist/components/select/select.component.js +5 -2
- package/dist/components/select/select.styles.d.ts +11 -1
- package/dist/components/select/select.styles.js +6 -1
- package/dist/components/selector/components/index.d.ts +2 -0
- package/dist/components/selector/components/index.js +2 -0
- package/dist/components/selector/components/selector-checkbox-group/components/index.d.ts +1 -0
- package/dist/components/selector/components/selector-checkbox-group/components/index.js +1 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/index.d.ts +2 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/index.js +1 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.component.d.ts +12 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.component.js +67 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.styles.d.ts +59 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.styles.js +57 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.types.d.ts +10 -0
- package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.types.js +1 -0
- package/dist/components/selector/components/selector-checkbox-group/index.d.ts +2 -0
- package/dist/components/selector/components/selector-checkbox-group/index.js +1 -0
- package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.component.d.ts +15 -0
- package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.component.js +49 -0
- package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.styles.d.ts +3 -0
- package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.styles.js +13 -0
- package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.types.d.ts +20 -0
- package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.types.js +1 -0
- package/dist/components/selector/components/selector-radio-group/components/index.d.ts +1 -0
- package/dist/components/selector/components/selector-radio-group/components/index.js +1 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/index.d.ts +2 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/index.js +1 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.component.d.ts +12 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.component.js +67 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.styles.d.ts +59 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.styles.js +57 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.types.d.ts +15 -0
- package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.types.js +1 -0
- package/dist/components/selector/components/selector-radio-group/index.d.ts +2 -0
- package/dist/components/selector/components/selector-radio-group/index.js +1 -0
- package/dist/components/selector/components/selector-radio-group/selector-radio-group.component.d.ts +15 -0
- package/dist/components/selector/components/selector-radio-group/selector-radio-group.component.js +58 -0
- package/dist/components/selector/components/selector-radio-group/selector-radio-group.styles.d.ts +13 -0
- package/dist/components/selector/components/selector-radio-group/selector-radio-group.styles.js +18 -0
- package/dist/components/selector/components/selector-radio-group/selector-radio-group.types.d.ts +17 -0
- package/dist/components/selector/components/selector-radio-group/selector-radio-group.types.js +1 -0
- package/dist/components/selector/index.d.ts +2 -0
- package/dist/components/selector/index.js +1 -0
- package/dist/components/selector/selector.component.d.ts +30 -0
- package/dist/components/selector/selector.component.js +34 -0
- package/dist/components/selector/selector.stories.d.ts +57 -0
- package/dist/components/selector/selector.stories.js +515 -0
- package/dist/components/selector/selector.types.d.ts +20 -0
- package/dist/components/selector/selector.types.js +1 -0
- package/dist/components/switch/switch.component.d.ts +1 -1
- package/dist/components/switch/switch.component.js +11 -7
- package/dist/components/switch/switch.stories.js +1 -1
- package/dist/components/switch/switch.styles.d.ts +2 -2
- package/dist/components/switch/switch.styles.js +2 -2
- package/dist/components/switch/switch.types.d.ts +5 -1
- package/dist/components/tabs/components/tab/tab.component.js +5 -3
- package/dist/components/tabs/components/tab/tab.styles.d.ts +9 -1
- package/dist/components/tabs/components/tab/tab.styles.js +12 -8
- package/dist/components/tabs/components/tab-panel/tab-panel.component.js +5 -3
- package/dist/components/tabs/components/tab-panel/tab-panel.styles.d.ts +7 -1
- package/dist/components/tabs/components/tab-panel/tab-panel.styles.js +5 -2
- package/dist/components/textarea/textarea.component.d.ts +7 -1
- package/dist/components/textarea/textarea.component.js +5 -2
- package/dist/components/textarea/textarea.styles.d.ts +7 -1
- package/dist/components/textarea/textarea.styles.js +4 -1
- package/dist/css/westpac-ui.css +165 -3
- package/dist/css/westpac-ui.min.css +165 -3
- package/dist/tailwind/constants/colors.d.ts +9 -9
- package/dist/tailwind/themes/index.d.ts +11 -11
- package/dist/utils/generateId.d.ts +1 -0
- package/dist/utils/generateId.js +6 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/package.json +7 -1
- package/src/components/accordion/components/accordion-item/accordion-item.component.tsx +4 -3
- package/src/components/accordion/components/accordion-item/accordion-item.styles.ts +17 -9
- package/src/components/alert/alert.component.tsx +1 -1
- package/src/components/alert/alert.styles.ts +2 -2
- package/src/components/autocomplete/autocomplete.styles.ts +3 -3
- package/src/components/button/button.component.tsx +9 -10
- package/src/components/button/button.styles.ts +4 -0
- package/src/components/button-dropdown/button-dropdown.styles.ts +1 -1
- package/src/components/button-dropdown/components/panel/panel.component.tsx +4 -3
- package/src/components/button-dropdown/components/panel/panel.styles.ts +8 -2
- package/src/components/checkbox-group/components/checkbox/checkbox.component.tsx +2 -2
- package/src/components/checkbox-group/components/checkbox/checkbox.styles.ts +4 -4
- package/src/components/collapsible/collapsible.styles.ts +1 -1
- package/src/components/compacta/compacta.component.tsx +4 -3
- package/src/components/compacta/compacta.styles.ts +1 -1
- package/src/components/flexi-cell/flexi-cell.component.tsx +5 -2
- package/src/components/flexi-cell/flexi-cell.styles.ts +5 -2
- package/src/components/flexi-cell/flexi-cell.types.ts +4 -0
- package/src/components/flexi-cell/index.ts +1 -0
- package/src/components/icon/index.ts +1 -0
- package/src/components/index.ts +3 -1
- package/src/components/input/input.component.tsx +10 -1
- package/src/components/input/input.styles.ts +4 -1
- package/src/components/link/link.component.tsx +10 -3
- package/src/components/link/link.styles.ts +7 -3
- package/src/components/list/components/item/item.component.tsx +4 -1
- package/src/components/list/components/item/item.styles.ts +5 -2
- package/src/components/list/list.stories.tsx +3 -3
- package/src/components/list/list.styles.ts +1 -1
- package/src/components/modal/components/backdrop/backdrop.styles.ts +2 -2
- package/src/components/modal/components/dialog/dialog.component.tsx +4 -3
- package/src/components/modal/components/dialog/dialog.styles.ts +7 -3
- package/src/components/popover/components/panel/panel.styles.ts +1 -1
- package/src/components/popover/popover.component.tsx +0 -1
- package/src/components/popover/popover.styles.ts +0 -1
- package/src/components/radio-group/components/radio/radio.component.tsx +2 -2
- package/src/components/radio-group/components/radio/radio.styles.ts +5 -5
- package/src/components/repeater/index.ts +2 -0
- package/src/components/repeater/repeater.component.tsx +124 -0
- package/src/components/repeater/repeater.stories.tsx +49 -0
- package/src/components/repeater/repeater.styles.ts +32 -0
- package/src/components/repeater/repeater.types.ts +20 -0
- package/src/components/repeater/repeater.utils.tsx +3 -0
- package/src/components/select/select.component.tsx +3 -1
- package/src/components/select/select.styles.ts +6 -1
- package/src/components/selector/components/index.ts +2 -0
- package/src/components/selector/components/selector-checkbox-group/components/index.ts +1 -0
- package/src/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/index.ts +2 -0
- package/src/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.component.tsx +96 -0
- package/src/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.styles.ts +53 -0
- package/src/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.types.ts +15 -0
- package/src/components/selector/components/selector-checkbox-group/index.ts +2 -0
- package/src/components/selector/components/selector-checkbox-group/selector-checkbox-group.component.tsx +46 -0
- package/src/components/selector/components/selector-checkbox-group/selector-checkbox-group.styles.ts +9 -0
- package/src/components/selector/components/selector-checkbox-group/selector-checkbox-group.types.ts +25 -0
- package/src/components/selector/components/selector-radio-group/components/index.ts +1 -0
- package/src/components/selector/components/selector-radio-group/components/selector-radio-group-option/index.ts +2 -0
- package/src/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.component.tsx +90 -0
- package/src/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.styles.ts +53 -0
- package/src/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.types.ts +21 -0
- package/src/components/selector/components/selector-radio-group/index.ts +2 -0
- package/src/components/selector/components/selector-radio-group/selector-radio-group.component.tsx +48 -0
- package/src/components/selector/components/selector-radio-group/selector-radio-group.styles.ts +14 -0
- package/src/components/selector/components/selector-radio-group/selector-radio-group.types.ts +22 -0
- package/src/components/selector/index.ts +2 -0
- package/src/components/selector/selector.component.tsx +34 -0
- package/src/components/selector/selector.stories.tsx +621 -0
- package/src/components/selector/selector.types.ts +24 -0
- package/src/components/switch/switch.component.tsx +19 -7
- package/src/components/switch/switch.stories.tsx +1 -1
- package/src/components/switch/switch.styles.ts +2 -2
- package/src/components/switch/switch.types.ts +5 -1
- package/src/components/tabs/components/tab/tab.component.tsx +4 -3
- package/src/components/tabs/components/tab/tab.styles.ts +12 -8
- package/src/components/tabs/components/tab-panel/tab-panel.component.tsx +3 -2
- package/src/components/tabs/components/tab-panel/tab-panel.styles.ts +5 -2
- package/src/components/textarea/textarea.component.tsx +9 -1
- package/src/components/textarea/textarea.styles.ts +4 -1
- package/src/utils/generateId.ts +6 -0
- package/src/utils/index.ts +1 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useAccordionItem } from '@react-aria/accordion';
|
|
2
2
|
import { AnimatePresence, LazyMotion, m } from 'framer-motion';
|
|
3
3
|
import React, { useRef } from 'react';
|
|
4
|
-
import { mergeProps, useHover, useLocale } from 'react-aria';
|
|
4
|
+
import { mergeProps, useFocusRing, useHover, useLocale } from 'react-aria';
|
|
5
5
|
|
|
6
6
|
import { ArrowLeftIcon, ArrowRightIcon } from '../../../icon/index.js';
|
|
7
7
|
|
|
@@ -20,11 +20,12 @@ export function AccordionItem<T = any>({
|
|
|
20
20
|
const ref = useRef<HTMLButtonElement>(null);
|
|
21
21
|
const { state, item } = props;
|
|
22
22
|
const { buttonProps, regionProps } = useAccordionItem<T>(props, state, ref);
|
|
23
|
+
const { isFocusVisible, focusProps } = useFocusRing();
|
|
23
24
|
const isOpen = state.expandedKeys.has(item.key);
|
|
24
25
|
const isDisabled = state.disabledKeys.has(item.key);
|
|
25
26
|
const { hoverProps } = useHover({ isDisabled });
|
|
26
27
|
const { direction } = useLocale();
|
|
27
|
-
const styles = accordionItemStyles({ isOpen, isDisabled, className, color, look });
|
|
28
|
+
const styles = accordionItemStyles({ isOpen, isDisabled, className, color, look, isFocusVisible });
|
|
28
29
|
|
|
29
30
|
return (
|
|
30
31
|
<Tag className={styles.base()}>
|
|
@@ -33,7 +34,7 @@ export function AccordionItem<T = any>({
|
|
|
33
34
|
https://www.w3.org/WAI/ARIA/apg/patterns/accordion/examples/accordion/
|
|
34
35
|
*/}
|
|
35
36
|
<h3>
|
|
36
|
-
<button {...mergeProps(buttonProps, hoverProps)} ref={ref} className={styles.itemHeader()}>
|
|
37
|
+
<button {...mergeProps(buttonProps, hoverProps, focusProps)} ref={ref} className={styles.itemHeader()}>
|
|
37
38
|
<span>{item.props.title}</span>
|
|
38
39
|
{look === 'material' && <div aria-hidden="true" className={styles.indicator()} />}
|
|
39
40
|
{look === 'default' &&
|
|
@@ -4,33 +4,33 @@ export const styles = tv(
|
|
|
4
4
|
{
|
|
5
5
|
slots: {
|
|
6
6
|
base: '',
|
|
7
|
-
itemHeader: 'typography-body-9 flex w-full items-center justify-between px-3 py-2
|
|
7
|
+
itemHeader: 'typography-body-9 flex w-full items-center justify-between px-3 py-2',
|
|
8
8
|
indicator: '',
|
|
9
9
|
content: 'hidden',
|
|
10
10
|
},
|
|
11
11
|
variants: {
|
|
12
12
|
look: {
|
|
13
13
|
material: {
|
|
14
|
-
itemHeader: 'bg-white transition-colors
|
|
14
|
+
itemHeader: 'hover:bg-light bg-white transition-colors',
|
|
15
15
|
indicator:
|
|
16
|
-
'relative h-2 w-2 before:absolute before:left-1/2 before:top-1/2 before:block before:h-[2px] before:w-full before:-translate-x-1/2 before:-translate-y-1/2
|
|
16
|
+
'before:bg-muted after:bg-muted relative h-2 w-2 before:absolute before:left-1/2 before:top-1/2 before:block before:h-[2px] before:w-full before:-translate-x-1/2 before:-translate-y-1/2 after:absolute after:left-1/2 after:top-1/2 after:block after:h-full after:w-[2px] after:-translate-x-1/2 after:-translate-y-1/2 after:transition-transform',
|
|
17
17
|
},
|
|
18
18
|
default: {
|
|
19
|
-
itemHeader: 'border-
|
|
19
|
+
itemHeader: 'border-border bg-light border-t',
|
|
20
20
|
indicator: 'h-3 w-3 -rotate-90 transition-transform',
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
color: {
|
|
24
24
|
hero: {
|
|
25
|
-
itemHeader: 'border-l-[0.375rem]
|
|
25
|
+
itemHeader: 'border-l-border border-l-[0.375rem] transition-colors',
|
|
26
26
|
},
|
|
27
27
|
primary: {
|
|
28
|
-
itemHeader: 'border-l-[0.375rem]
|
|
28
|
+
itemHeader: 'border-l-border border-l-[0.375rem] transition-colors',
|
|
29
29
|
},
|
|
30
30
|
},
|
|
31
31
|
isOpen: {
|
|
32
32
|
true: {
|
|
33
|
-
content: 'block border-t
|
|
33
|
+
content: 'border-border block border-t p-3',
|
|
34
34
|
},
|
|
35
35
|
false: {
|
|
36
36
|
base: '',
|
|
@@ -40,6 +40,14 @@ export const styles = tv(
|
|
|
40
40
|
true: '',
|
|
41
41
|
false: '',
|
|
42
42
|
},
|
|
43
|
+
isFocusVisible: {
|
|
44
|
+
true: {
|
|
45
|
+
itemHeader: 'focus-outline',
|
|
46
|
+
},
|
|
47
|
+
false: {
|
|
48
|
+
itemHeader: 'outline-none',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
43
51
|
},
|
|
44
52
|
compoundSlots: [
|
|
45
53
|
{
|
|
@@ -69,12 +77,12 @@ export const styles = tv(
|
|
|
69
77
|
{
|
|
70
78
|
slots: ['content'],
|
|
71
79
|
color: 'hero',
|
|
72
|
-
className: 'border-l-[0.375rem]
|
|
80
|
+
className: 'border-l-border border-l-[0.375rem]',
|
|
73
81
|
},
|
|
74
82
|
{
|
|
75
83
|
slots: ['content'],
|
|
76
84
|
color: 'primary',
|
|
77
|
-
className: 'border-l-[0.375rem]
|
|
85
|
+
className: 'border-l-border border-l-[0.375rem]',
|
|
78
86
|
},
|
|
79
87
|
],
|
|
80
88
|
},
|
|
@@ -59,7 +59,7 @@ export function Alert({
|
|
|
59
59
|
>
|
|
60
60
|
<Tag className={styles.base({ className })} {...props}>
|
|
61
61
|
<span className={styles.icon()}>
|
|
62
|
-
<Icon size={{ initial: 'small', xsl: 'medium' }} />
|
|
62
|
+
<Icon size={{ initial: 'small', xsl: 'medium' }} look="outlined" />
|
|
63
63
|
</span>
|
|
64
64
|
<div className={styles.body()}>
|
|
65
65
|
{!!heading && <HeadingTag className={styles.heading()}>{heading}</HeadingTag>}
|
|
@@ -3,7 +3,7 @@ import { tv } from 'tailwind-variants';
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
5
|
slots: {
|
|
6
|
-
base: 'typography-body-10 relative mb-4
|
|
6
|
+
base: 'typography-body-10 relative mb-4 xsl:flex',
|
|
7
7
|
icon: 'float-left mr-1 flex-none xsl:mr-2',
|
|
8
8
|
body: 'relative flex-1 xsl:top-[0.125rem] [&_a]:underline',
|
|
9
9
|
heading: 'typography-body-9 mb-2 font-bold',
|
|
@@ -29,7 +29,7 @@ export const styles = tv(
|
|
|
29
29
|
},
|
|
30
30
|
mode: {
|
|
31
31
|
box: {
|
|
32
|
-
base: 'border-y',
|
|
32
|
+
base: 'border-y p-3',
|
|
33
33
|
},
|
|
34
34
|
text: {
|
|
35
35
|
base: 'bg-[transparent]',
|
|
@@ -4,11 +4,11 @@ export const styles = tv(
|
|
|
4
4
|
{
|
|
5
5
|
slots: {
|
|
6
6
|
base: 'relative flex flex-col',
|
|
7
|
-
label: 'block text-left text-sm font-medium
|
|
7
|
+
label: 'text-text block text-left text-sm font-medium',
|
|
8
8
|
outerWrapper:
|
|
9
|
-
'form-control relative flex w-full flex-row items-center overflow-hidden pr-2
|
|
9
|
+
'form-control disabled:form-control-disabled relative flex w-full flex-row items-center overflow-hidden pr-2',
|
|
10
10
|
input: 'w-full appearance-none bg-[transparent] outline-none',
|
|
11
|
-
clearButton: 'flex cursor-default items-center justify-center
|
|
11
|
+
clearButton: 'text-text-50 hover:text-border-60 flex cursor-default items-center justify-center',
|
|
12
12
|
},
|
|
13
13
|
variants: {
|
|
14
14
|
invalid: {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import React, { forwardRef, useMemo } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { DropDownIcon } from '../icon/index.js';
|
|
2
|
+
import { mergeProps, useFocusRing } from 'react-aria';
|
|
5
3
|
|
|
6
4
|
import { styles as buttonStyles } from './button.styles.js';
|
|
7
5
|
import { type ButtonProps } from './button.types.js';
|
|
@@ -24,6 +22,7 @@ function BaseButton(
|
|
|
24
22
|
}: ButtonProps,
|
|
25
23
|
ref: any,
|
|
26
24
|
) {
|
|
25
|
+
const { isFocusVisible, focusProps } = useFocusRing();
|
|
27
26
|
const iconSize = useMemo(() => getIconSize(size), [size]);
|
|
28
27
|
const styles = buttonStyles({
|
|
29
28
|
size,
|
|
@@ -31,16 +30,16 @@ function BaseButton(
|
|
|
31
30
|
soft,
|
|
32
31
|
block,
|
|
33
32
|
justify,
|
|
33
|
+
isFocusVisible,
|
|
34
34
|
hasChildren: !!children,
|
|
35
35
|
});
|
|
36
|
+
|
|
36
37
|
return (
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
</Tag>
|
|
43
|
-
</FocusRing>
|
|
38
|
+
<Tag ref={ref} className={styles.base({ className })} {...mergeProps(props, focusProps)}>
|
|
39
|
+
{IconBefore && <IconBefore size={iconSize} className={styles.iconBefore()} color={iconColor} />}
|
|
40
|
+
<span className={styles.text()}>{children}</span>
|
|
41
|
+
{IconAfter && <IconAfter size={iconSize} className={styles.iconAfter()} color={iconColor} />}
|
|
42
|
+
</Tag>
|
|
44
43
|
);
|
|
45
44
|
}
|
|
46
45
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useRef } from 'react';
|
|
2
|
-
import { DismissButton, Overlay, mergeProps, useOverlay, usePopover } from 'react-aria';
|
|
2
|
+
import { DismissButton, Overlay, mergeProps, useFocusRing, useOverlay, usePopover } from 'react-aria';
|
|
3
3
|
|
|
4
4
|
import { styles as panelStyles } from './panel.styles.js';
|
|
5
5
|
import { type PanelProps } from './panel.types.js';
|
|
@@ -8,7 +8,8 @@ export function Panel({ className, children, state, block, id, ...props }: Panel
|
|
|
8
8
|
const popoverRef = useRef<HTMLDivElement>(null);
|
|
9
9
|
const { overlayProps } = useOverlay({ shouldCloseOnBlur: true, onClose: state.close }, popoverRef);
|
|
10
10
|
const { popoverProps } = usePopover({ popoverRef, shouldFlip: false, ...props }, state);
|
|
11
|
-
const
|
|
11
|
+
const { isFocused, focusProps } = useFocusRing();
|
|
12
|
+
const styles = panelStyles({ isFocused });
|
|
12
13
|
const width = props.triggerRef.current?.getBoundingClientRect().width;
|
|
13
14
|
|
|
14
15
|
// Added this based on accessibility features seen https://gel.westpacgroup.com.au/design-system/components/button-dropdowns?b=WBC&tab=accessibility and React Aria doesn't do this
|
|
@@ -30,7 +31,7 @@ export function Panel({ className, children, state, block, id, ...props }: Panel
|
|
|
30
31
|
return (
|
|
31
32
|
<Overlay>
|
|
32
33
|
<div
|
|
33
|
-
{...mergeProps(popoverProps, overlayProps)}
|
|
34
|
+
{...mergeProps(popoverProps, overlayProps, focusProps)}
|
|
34
35
|
id={id}
|
|
35
36
|
data-testid="panel-dialog"
|
|
36
37
|
style={{ ...popoverProps.style, width: block && width ? `${width}px` : undefined }}
|
|
@@ -5,9 +5,15 @@ export const styles = tv(
|
|
|
5
5
|
{
|
|
6
6
|
slots: {
|
|
7
7
|
base: 'border-border mt-[0.1875rem] rounded-[3px] border bg-white p-2 shadow-[0_0.375rem_0.75rem_rgba(0,0,0,0.175)]',
|
|
8
|
-
dialog: '
|
|
8
|
+
dialog: '',
|
|
9
|
+
},
|
|
10
|
+
variants: {
|
|
11
|
+
isFocused: {
|
|
12
|
+
true: {
|
|
13
|
+
dialog: 'outline-none',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
9
16
|
},
|
|
10
|
-
variants: {},
|
|
11
17
|
},
|
|
12
18
|
{ responsiveVariants: ['xsl', 'sm', 'md', 'lg', 'xl'] },
|
|
13
19
|
);
|
|
@@ -25,8 +25,8 @@ function BaseCheckbox({ className, hint, children, value, ...props }: CheckboxPr
|
|
|
25
25
|
const { size, orientation } = state;
|
|
26
26
|
const localRef = useRef(null);
|
|
27
27
|
const { inputProps, isDisabled, isSelected } = useCheckboxGroupItem({ ...props, value, children }, state, localRef);
|
|
28
|
-
const {
|
|
29
|
-
const styles = checkboxItemStyles({ isDisabled, size, orientation,
|
|
28
|
+
const { isFocused, focusProps } = useFocusRing();
|
|
29
|
+
const styles = checkboxItemStyles({ isDisabled, size, orientation, isFocused });
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
32
|
<label className={styles.base({ className })} ref={ref}>
|
|
@@ -7,8 +7,8 @@ export const styles = tv(
|
|
|
7
7
|
checkIcon: 'overflow-visible',
|
|
8
8
|
textWrapper: 'flex flex-col justify-center',
|
|
9
9
|
labelText: 'typography-body-10 py-[2px] pl-1',
|
|
10
|
-
hintText: 'typography-body-10 pl-1
|
|
11
|
-
checkbox: 'flex h-4 w-4 items-center justify-center rounded border
|
|
10
|
+
hintText: 'typography-body-10 text-muted pl-1',
|
|
11
|
+
checkbox: 'border-hero flex h-4 w-4 items-center justify-center rounded border',
|
|
12
12
|
},
|
|
13
13
|
variants: {
|
|
14
14
|
isDisabled: {
|
|
@@ -20,8 +20,8 @@ export const styles = tv(
|
|
|
20
20
|
base: 'hover:cursor-pointer',
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
|
-
|
|
24
|
-
true: { checkbox: '
|
|
23
|
+
isFocused: {
|
|
24
|
+
true: { checkbox: 'focus-outline' },
|
|
25
25
|
},
|
|
26
26
|
orientation: {
|
|
27
27
|
horizontal: {
|
|
@@ -3,7 +3,7 @@ import { tv } from 'tailwind-variants';
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
5
|
slots: {
|
|
6
|
-
base: 'px-0
|
|
6
|
+
base: 'text-text px-0 no-underline hover:underline',
|
|
7
7
|
content: 'typography-body-10 mb-2 block',
|
|
8
8
|
},
|
|
9
9
|
variants: {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { AnimatePresence, LazyMotion, m } from 'framer-motion';
|
|
2
2
|
import React, { useCallback, useEffect, useId, useRef, useState } from 'react';
|
|
3
3
|
|
|
4
|
+
import { generateID } from '../../utils/index.js';
|
|
5
|
+
import { Button } from '../button/index.js';
|
|
4
6
|
import { AddCircleIcon, ExpandLessIcon, ExpandMoreIcon, IconProps, RemoveCircleIcon } from '../icon/index.js';
|
|
5
|
-
import {
|
|
7
|
+
import { VisuallyHidden } from '../index.js';
|
|
6
8
|
|
|
7
9
|
import { styles as compactaStyles } from './compacta.styles.js';
|
|
8
10
|
import { type CompactaProps } from './compacta.types.js';
|
|
9
|
-
import { generateID } from './compacta.utils.js';
|
|
10
11
|
|
|
11
12
|
interface Action {
|
|
12
13
|
id?: string;
|
|
@@ -97,7 +98,7 @@ export function Compacta({
|
|
|
97
98
|
setTimeout(() => {
|
|
98
99
|
headingRefs?.current[action.index]?.focus();
|
|
99
100
|
}, 1);
|
|
100
|
-
setStatus(`Item
|
|
101
|
+
setStatus(`Item added`);
|
|
101
102
|
}
|
|
102
103
|
|
|
103
104
|
if (action.type === 'remove') {
|
|
@@ -12,7 +12,7 @@ export const styles = tv(
|
|
|
12
12
|
itemIndex: 'mr-2 w-4 flex-none font-bold',
|
|
13
13
|
removeBtn: 'mt-[0.875rem] h-auto p-0 no-underline hover:underline',
|
|
14
14
|
addBtn: 'h-auto p-0 no-underline hover:underline',
|
|
15
|
-
toggleBtn: '
|
|
15
|
+
toggleBtn: 'ml-auto p-0',
|
|
16
16
|
collapsible: '',
|
|
17
17
|
content: 'xsl:pl-[3.375rem] p-[0_1.125rem_1.875rem]',
|
|
18
18
|
footer: 'pt-[0.5rem]',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { forwardRef } from 'react';
|
|
2
|
+
import { mergeProps, useFocusRing } from 'react-aria';
|
|
2
3
|
|
|
3
4
|
import { ArrowRightIcon } from '../icon/index.js';
|
|
4
5
|
|
|
@@ -26,13 +27,15 @@ function FlexiCellBase(
|
|
|
26
27
|
withArrow,
|
|
27
28
|
withBorder = false,
|
|
28
29
|
href,
|
|
30
|
+
withHoverEffect = false,
|
|
29
31
|
...props
|
|
30
32
|
}: FlexiCellProps,
|
|
31
33
|
ref: any,
|
|
32
34
|
) {
|
|
33
|
-
const
|
|
35
|
+
const { isFocusVisible, focusProps } = useFocusRing();
|
|
36
|
+
const styles = flexiCellStyles({ className, withBorder, isLink: !!href || withHoverEffect, isFocusVisible });
|
|
34
37
|
return (
|
|
35
|
-
<Tag {...({ ref } as any)} className={styles.base({ className })} href={href} {...props}>
|
|
38
|
+
<Tag {...({ ref } as any)} className={styles.base({ className })} href={href} {...mergeProps(props, focusProps)}>
|
|
36
39
|
{badge && <div className={styles.badge()}>{badge}</div>}
|
|
37
40
|
{before}
|
|
38
41
|
<div className={styles.bodyWrapper()}>{body ? <FlexiCellBody>{children}</FlexiCellBody> : children}</div>
|
|
@@ -3,14 +3,14 @@ import { tv } from 'tailwind-variants';
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
5
|
slots: {
|
|
6
|
-
base: 'relative flex gap-2 bg-white
|
|
6
|
+
base: 'relative flex gap-2 bg-white p-2 transition-colors md:p-3',
|
|
7
7
|
bodyWrapper: 'flex flex-1 flex-col',
|
|
8
8
|
badge: 'absolute right-0 top-0',
|
|
9
9
|
},
|
|
10
10
|
variants: {
|
|
11
11
|
withBorder: {
|
|
12
12
|
true: {
|
|
13
|
-
base: 'rounded border
|
|
13
|
+
base: 'border-borderDark rounded border',
|
|
14
14
|
},
|
|
15
15
|
false: {},
|
|
16
16
|
},
|
|
@@ -20,6 +20,9 @@ export const styles = tv(
|
|
|
20
20
|
},
|
|
21
21
|
false: {},
|
|
22
22
|
},
|
|
23
|
+
isFocusVisible: {
|
|
24
|
+
true: { base: 'focus-outline' },
|
|
25
|
+
},
|
|
23
26
|
},
|
|
24
27
|
},
|
|
25
28
|
{ responsiveVariants: ['xsl', 'sm', 'md', 'lg', 'xl'] },
|
|
@@ -233,4 +233,5 @@ export { STGLogoIcon } from './components/stg-logo-icon.js';
|
|
|
233
233
|
export { WBCLogoIcon } from './components/wbc-logo-icon.js';
|
|
234
234
|
export { WBGLogoIcon } from './components/wbg-logo-icon.js';
|
|
235
235
|
|
|
236
|
+
export { Icon } from './icon.component.js';
|
|
236
237
|
export { type IconProps } from './icon.types.js';
|
package/src/components/index.ts
CHANGED
|
@@ -23,7 +23,7 @@ export * from './panel/index.js';
|
|
|
23
23
|
export * from './collapsible/index.js';
|
|
24
24
|
export * from './list/index.js';
|
|
25
25
|
export * from './circle/index.js';
|
|
26
|
-
export
|
|
26
|
+
export { FlexiCell, type FlexiCellProps } from './flexi-cell/index.js';
|
|
27
27
|
export * from './autocomplete/index.js';
|
|
28
28
|
export * from './button-dropdown/index.js';
|
|
29
29
|
export * from './form/index.js';
|
|
@@ -32,4 +32,6 @@ export * from './modal/index.js';
|
|
|
32
32
|
export * from './pagination/index.js';
|
|
33
33
|
export * from './popover/index.js';
|
|
34
34
|
export * from './progress-rope/index.js';
|
|
35
|
+
export * from './selector/index.js';
|
|
35
36
|
export * from './compacta/index.js';
|
|
37
|
+
export * from './repeater/index.js';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { ForwardedRef, forwardRef } from 'react';
|
|
2
|
+
import { mergeProps, useFocusRing } from 'react-aria';
|
|
2
3
|
|
|
3
4
|
import { styles } from './input.styles.js';
|
|
4
5
|
import { type InputProps } from './input.types.js';
|
|
@@ -7,7 +8,15 @@ export function BaseInput(
|
|
|
7
8
|
{ className, size = 'medium', invalid = false, ...props }: InputProps,
|
|
8
9
|
ref: ForwardedRef<HTMLInputElement>,
|
|
9
10
|
) {
|
|
10
|
-
|
|
11
|
+
const { isFocused, focusProps } = useFocusRing();
|
|
12
|
+
return (
|
|
13
|
+
<input
|
|
14
|
+
ref={ref}
|
|
15
|
+
className={styles({ className, size, invalid, isFocused })}
|
|
16
|
+
aria-invalid={invalid}
|
|
17
|
+
{...mergeProps(props, focusProps)}
|
|
18
|
+
/>
|
|
19
|
+
);
|
|
11
20
|
}
|
|
12
21
|
|
|
13
22
|
export const Input = forwardRef<HTMLInputElement, InputProps>(BaseInput);
|
|
@@ -2,7 +2,7 @@ import { tv } from 'tailwind-variants';
|
|
|
2
2
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
|
-
base: 'form-control
|
|
5
|
+
base: 'form-control read-only:form-control-disabled disabled:form-control-disabled flex-1 group-[.input-field-after]:rounded-r-none group-[.input-field-before]:rounded-l-none group-[.input-field-after]:border-r-0 group-[.input-field-before]:border-l-0',
|
|
6
6
|
variants: {
|
|
7
7
|
size: {
|
|
8
8
|
small: 'form-control-small group-[.input-field-inset-after]:pr-6 group-[.input-field-inset-before]:pl-6',
|
|
@@ -14,6 +14,9 @@ export const styles = tv(
|
|
|
14
14
|
true: 'border-danger',
|
|
15
15
|
false: 'border-borderDark',
|
|
16
16
|
},
|
|
17
|
+
isFocused: {
|
|
18
|
+
true: 'focus-outline',
|
|
19
|
+
},
|
|
17
20
|
},
|
|
18
21
|
},
|
|
19
22
|
{ responsiveVariants: ['xsl', 'sm', 'md', 'lg', 'xl'] },
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { forwardRef, useRef } from 'react';
|
|
2
|
-
import { useLink } from 'react-aria';
|
|
2
|
+
import { mergeProps, useFocusRing, useLink } from 'react-aria';
|
|
3
3
|
|
|
4
4
|
import { ArrowRightIcon } from '../icon/index.js';
|
|
5
5
|
|
|
@@ -23,14 +23,21 @@ export function BaseLink(
|
|
|
23
23
|
) {
|
|
24
24
|
const ref = useRef(propRef);
|
|
25
25
|
const { linkProps } = useLink({ ...props }, ref);
|
|
26
|
-
const
|
|
26
|
+
const { isFocusVisible, focusProps } = useFocusRing();
|
|
27
|
+
const styles = linkStyles({ type, underline, isFocusVisible });
|
|
27
28
|
|
|
28
29
|
if (type === 'standalone' && !IconBefore && !IconAfter) {
|
|
29
30
|
IconBefore = ArrowRightIcon;
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
return (
|
|
33
|
-
<a
|
|
34
|
+
<a
|
|
35
|
+
{...mergeProps(linkProps, focusProps)}
|
|
36
|
+
ref={propRef}
|
|
37
|
+
href={href}
|
|
38
|
+
target={target}
|
|
39
|
+
className={styles.base({ className })}
|
|
40
|
+
>
|
|
34
41
|
{IconBefore && <IconBefore size={iconSize} color="link" className={styles.iconBefore()} />}
|
|
35
42
|
<span className={styles.text()}>{children}</span>
|
|
36
43
|
{IconAfter && <IconAfter size={iconSize} color="link" className={styles.iconAfter()} />}
|
|
@@ -3,7 +3,7 @@ import { tv } from 'tailwind-variants';
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
5
|
slots: {
|
|
6
|
-
base: 'inline-flex bg-[transparent] hover:underline
|
|
6
|
+
base: 'inline-flex bg-[transparent] hover:underline',
|
|
7
7
|
text: 'typography-body-10',
|
|
8
8
|
iconBefore: 'mr-1',
|
|
9
9
|
iconAfter: 'ml-1',
|
|
@@ -11,17 +11,21 @@ export const styles = tv(
|
|
|
11
11
|
variants: {
|
|
12
12
|
type: {
|
|
13
13
|
inline: {
|
|
14
|
-
base: 'items-baseline
|
|
14
|
+
base: 'text-link items-baseline',
|
|
15
15
|
iconBefore: 'self-center',
|
|
16
16
|
iconAfter: 'self-center',
|
|
17
17
|
},
|
|
18
18
|
standalone: {
|
|
19
|
-
base: 'items-center
|
|
19
|
+
base: 'text-text items-center',
|
|
20
20
|
},
|
|
21
21
|
},
|
|
22
22
|
underline: {
|
|
23
23
|
true: '',
|
|
24
24
|
},
|
|
25
|
+
isFocusVisible: {
|
|
26
|
+
true: { base: 'focus-outline' },
|
|
27
|
+
false: { base: 'outline-none' },
|
|
28
|
+
},
|
|
25
29
|
},
|
|
26
30
|
compoundSlots: [
|
|
27
31
|
{
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { forwardRef, useContext } from 'react';
|
|
2
|
+
import { useFocusRing } from 'react-aria';
|
|
2
3
|
|
|
3
4
|
import { ListContext } from '../../list.component.js';
|
|
4
5
|
import { getStateValues } from '../../list.utils.js';
|
|
@@ -14,6 +15,7 @@ export function BaseItem({ className, children, href, look, type, spacing, icon,
|
|
|
14
15
|
look = stateValues.look;
|
|
15
16
|
type = stateValues.type;
|
|
16
17
|
const Icon = stateValues.icon;
|
|
18
|
+
const { isFocusVisible, focusProps } = useFocusRing();
|
|
17
19
|
|
|
18
20
|
const styles = itemStyles({
|
|
19
21
|
look,
|
|
@@ -21,6 +23,7 @@ export function BaseItem({ className, children, href, look, type, spacing, icon,
|
|
|
21
23
|
spacing: stateValues.spacing,
|
|
22
24
|
icon: !!Icon,
|
|
23
25
|
nested: (state.nested && state.nested > 0) || false,
|
|
26
|
+
isFocusVisible,
|
|
24
27
|
});
|
|
25
28
|
|
|
26
29
|
const bulletToRender = () => {
|
|
@@ -38,7 +41,7 @@ export function BaseItem({ className, children, href, look, type, spacing, icon,
|
|
|
38
41
|
{bulletToRender()}
|
|
39
42
|
<li className={styles.base({ className })} {...props}>
|
|
40
43
|
{type === 'link' ? (
|
|
41
|
-
<a href={href} className={styles.link()} ref={ref}>
|
|
44
|
+
<a href={href} className={styles.link()} ref={ref} {...focusProps}>
|
|
42
45
|
{children}
|
|
43
46
|
</a>
|
|
44
47
|
) : (
|
|
@@ -3,9 +3,9 @@ import { tv } from 'tailwind-variants';
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
5
|
slots: {
|
|
6
|
-
base: '
|
|
6
|
+
base: 'pl-[1.1875rem]',
|
|
7
7
|
bullet: 'absolute block border',
|
|
8
|
-
link: 'text-text hover:cursor-pointer hover:underline
|
|
8
|
+
link: 'text-text hover:cursor-pointer hover:underline',
|
|
9
9
|
wrapper: 'relative',
|
|
10
10
|
},
|
|
11
11
|
variants: {
|
|
@@ -71,6 +71,9 @@ export const styles = tv(
|
|
|
71
71
|
nested: {
|
|
72
72
|
true: { bullet: 'bg-[transparent]' },
|
|
73
73
|
},
|
|
74
|
+
isFocusVisible: {
|
|
75
|
+
true: { link: 'focus-outline' },
|
|
76
|
+
},
|
|
74
77
|
},
|
|
75
78
|
compoundSlots: [
|
|
76
79
|
{
|
|
@@ -47,9 +47,9 @@ export const ListTypes = () =>
|
|
|
47
47
|
<div className="mb-2" key={type}>
|
|
48
48
|
<h1 className="typography-body-8">{type}</h1>
|
|
49
49
|
<List type={type} icon={type === 'icon' ? AndroidIcon : undefined}>
|
|
50
|
-
<List.Item>Styled {type} list</List.Item>
|
|
51
|
-
<List.Item>Styled {type} list</List.Item>
|
|
52
|
-
<List.Item>Styled {type} list</List.Item>
|
|
50
|
+
<List.Item href={type === 'link' ? '#' : undefined}>Styled {type} list</List.Item>
|
|
51
|
+
<List.Item href={type === 'link' ? '#' : undefined}>Styled {type} list</List.Item>
|
|
52
|
+
<List.Item href={type === 'link' ? '#' : undefined}>Styled {type} list</List.Item>
|
|
53
53
|
<List icon={type === 'link' ? AndroidIcon : undefined}>
|
|
54
54
|
<List.Item>Styled {type} list</List.Item>
|
|
55
55
|
<List.Item>Styled {type} list</List.Item>
|
|
@@ -2,7 +2,7 @@ import { tv } from 'tailwind-variants';
|
|
|
2
2
|
|
|
3
3
|
export const styles = tv({
|
|
4
4
|
slots: {
|
|
5
|
-
base: 'fixed inset-0 z-50 flex
|
|
6
|
-
modal: 'relative top-5 z-10 h-fit w-full
|
|
5
|
+
base: 'animate-fadeIn fixed inset-0 z-50 flex justify-center overflow-y-auto bg-black/50 p-2',
|
|
6
|
+
modal: 'animate-fadeInDown relative top-5 z-10 h-fit w-full',
|
|
7
7
|
},
|
|
8
8
|
});
|