@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
|
@@ -5,7 +5,7 @@ export const styles = tv(
|
|
|
5
5
|
slots: {
|
|
6
6
|
base: 'mb-1 inline-flex items-center hover:cursor-pointer',
|
|
7
7
|
switchDiv:
|
|
8
|
-
'relative box-content overflow-hidden border
|
|
8
|
+
'border-borderDark after:shadow-switch relative box-content overflow-hidden border transition duration-[.3s] after:absolute after:left-0 after:top-0 after:block after:rounded-[50%] after:bg-white after:transition-all after:duration-[.3s]',
|
|
9
9
|
label: 'pr-1',
|
|
10
10
|
},
|
|
11
11
|
variants: {
|
|
@@ -23,7 +23,7 @@ export const styles = tv(
|
|
|
23
23
|
switchDiv: 'h-[2.875rem] w-14 rounded-[2.875rem] after:h-[2.875rem] after:w-[2.875rem]',
|
|
24
24
|
},
|
|
25
25
|
},
|
|
26
|
-
|
|
26
|
+
isFocused: {
|
|
27
27
|
true: {
|
|
28
28
|
switchDiv: 'focus-outline',
|
|
29
29
|
},
|
|
@@ -8,6 +8,10 @@ export type SwitchProps = {
|
|
|
8
8
|
* Whether to display switch as block
|
|
9
9
|
*/
|
|
10
10
|
block?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Default checked
|
|
13
|
+
*/
|
|
14
|
+
checked?: boolean;
|
|
11
15
|
/**
|
|
12
16
|
* Classname for overriding base style
|
|
13
17
|
*/
|
|
@@ -16,5 +20,5 @@ export type SwitchProps = {
|
|
|
16
20
|
* Label for the switch
|
|
17
21
|
*/
|
|
18
22
|
label: string;
|
|
19
|
-
} & Omit<AriaCheckboxProps, 'children'> &
|
|
23
|
+
} & Omit<AriaCheckboxProps, 'children' | 'isSelected'> &
|
|
20
24
|
Pick<VariantProps<typeof styles>, 'size'>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useRef } from 'react';
|
|
2
|
-
import { useTab } from 'react-aria';
|
|
2
|
+
import { mergeProps, useFocusRing, useTab } from 'react-aria';
|
|
3
3
|
|
|
4
4
|
import { styles } from './tab.styles.js';
|
|
5
5
|
import { type TabProps } from './tab.types.js';
|
|
@@ -7,10 +7,11 @@ import { type TabProps } from './tab.types.js';
|
|
|
7
7
|
export function Tab({ item: { key, rendered }, state, orientation, justify, color, look }: TabProps) {
|
|
8
8
|
const ref = useRef(null);
|
|
9
9
|
const { tabProps } = useTab({ key }, state, ref);
|
|
10
|
+
const { isFocusVisible, focusProps } = useFocusRing();
|
|
10
11
|
return (
|
|
11
12
|
<div
|
|
12
|
-
{...tabProps}
|
|
13
|
-
className={styles({ selected: key === state.selectedKey, orientation, justify, color, look })}
|
|
13
|
+
{...mergeProps(tabProps, focusProps)}
|
|
14
|
+
className={styles({ selected: key === state.selectedKey, orientation, justify, color, look, isFocusVisible })}
|
|
14
15
|
ref={ref}
|
|
15
16
|
>
|
|
16
17
|
{rendered}
|
|
@@ -2,10 +2,10 @@ import { tv } from 'tailwind-variants';
|
|
|
2
2
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
|
-
base: 'typography-body-9 flex cursor-pointer px-3 py-2
|
|
5
|
+
base: 'typography-body-9 text-text flex cursor-pointer px-3 py-2 transition-colors hover:bg-white',
|
|
6
6
|
variants: {
|
|
7
7
|
look: {
|
|
8
|
-
default: 'border
|
|
8
|
+
default: 'border-border border bg-white',
|
|
9
9
|
material: '',
|
|
10
10
|
},
|
|
11
11
|
selected: {
|
|
@@ -23,6 +23,10 @@ export const styles = tv(
|
|
|
23
23
|
primary: '',
|
|
24
24
|
hero: '',
|
|
25
25
|
},
|
|
26
|
+
isFocusVisible: {
|
|
27
|
+
true: 'focus-outline',
|
|
28
|
+
false: 'outline-none',
|
|
29
|
+
},
|
|
26
30
|
},
|
|
27
31
|
compoundVariants: [
|
|
28
32
|
{
|
|
@@ -54,36 +58,36 @@ export const styles = tv(
|
|
|
54
58
|
color: 'primary',
|
|
55
59
|
look: 'default',
|
|
56
60
|
selected: false,
|
|
57
|
-
className: 'border-primary-90 bg-primary
|
|
61
|
+
className: 'border-primary-90 bg-primary hover:bg-primary-70 text-white',
|
|
58
62
|
},
|
|
59
63
|
{
|
|
60
64
|
color: 'hero',
|
|
61
65
|
selected: false,
|
|
62
66
|
look: 'default',
|
|
63
|
-
className: 'border-hero-90 bg-hero
|
|
67
|
+
className: 'border-hero-90 bg-hero hover:bg-hero-70 text-white',
|
|
64
68
|
},
|
|
65
69
|
// Material look design
|
|
66
70
|
{
|
|
67
71
|
look: 'material',
|
|
68
72
|
orientation: 'horizontal',
|
|
69
|
-
className: 'border-b-4 border-r border-b-white
|
|
73
|
+
className: 'border-r-border border-b-4 border-r border-b-white last:border-r-0',
|
|
70
74
|
},
|
|
71
75
|
{
|
|
72
76
|
look: 'material',
|
|
73
77
|
orientation: 'vertical',
|
|
74
|
-
className: 'border-b border-
|
|
78
|
+
className: 'border-b-border border-b border-l-4 border-l-white last:border-b-0',
|
|
75
79
|
},
|
|
76
80
|
{
|
|
77
81
|
look: 'material',
|
|
78
82
|
selected: true,
|
|
79
83
|
orientation: 'horizontal',
|
|
80
|
-
className: 'border-bottom border-b-white
|
|
84
|
+
className: 'border-bottom text-text border-b-white',
|
|
81
85
|
},
|
|
82
86
|
{
|
|
83
87
|
look: 'material',
|
|
84
88
|
selected: true,
|
|
85
89
|
orientation: 'vertical',
|
|
86
|
-
className: 'border-left border-l-transparent
|
|
90
|
+
className: 'border-left text-text border-l-transparent',
|
|
87
91
|
},
|
|
88
92
|
{
|
|
89
93
|
color: 'primary',
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React, { useRef } from 'react';
|
|
2
|
-
import { useTabPanel } from 'react-aria';
|
|
2
|
+
import { mergeProps, useFocusRing, useTabPanel } from 'react-aria';
|
|
3
3
|
|
|
4
4
|
import { styles } from './tab-panel.styles.js';
|
|
5
5
|
import { type TabPanelProps } from './tab-panel.types.js';
|
|
6
6
|
|
|
7
7
|
export function TabPanel({ className, state, look, ...props }: TabPanelProps) {
|
|
8
8
|
const ref = useRef(null);
|
|
9
|
+
const { isFocused, focusProps } = useFocusRing();
|
|
9
10
|
const { tabPanelProps } = useTabPanel({ ...props }, state, ref);
|
|
10
11
|
return (
|
|
11
|
-
<div {...tabPanelProps} ref={ref} className={styles({ className, look })}>
|
|
12
|
+
<div {...mergeProps(tabPanelProps, focusProps)} ref={ref} className={styles({ className, look, isFocused })}>
|
|
12
13
|
{state.selectedItem?.props.children}
|
|
13
14
|
</div>
|
|
14
15
|
);
|
|
@@ -2,12 +2,15 @@ import { tv } from 'tailwind-variants';
|
|
|
2
2
|
|
|
3
3
|
export const styles = tv(
|
|
4
4
|
{
|
|
5
|
-
base: 'flex-1 bg-white p-4
|
|
5
|
+
base: 'flex-1 bg-white p-4',
|
|
6
6
|
variants: {
|
|
7
7
|
look: {
|
|
8
|
-
default: 'border border
|
|
8
|
+
default: 'border-border border',
|
|
9
9
|
material: '',
|
|
10
10
|
},
|
|
11
|
+
isFocused: {
|
|
12
|
+
true: 'outline-none',
|
|
13
|
+
},
|
|
11
14
|
},
|
|
12
15
|
},
|
|
13
16
|
{ responsiveVariants: ['xsl', 'sm', 'md', 'lg', 'xl'] },
|
|
@@ -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 './textarea.styles.js';
|
|
4
5
|
import { type TextareaProps } from './textarea.types.js';
|
|
@@ -7,7 +8,14 @@ function BaseTextarea(
|
|
|
7
8
|
{ className, size = 'medium', invalid = false, ...props }: TextareaProps,
|
|
8
9
|
ref: ForwardedRef<HTMLTextAreaElement>,
|
|
9
10
|
) {
|
|
10
|
-
|
|
11
|
+
const { isFocused, focusProps } = useFocusRing();
|
|
12
|
+
return (
|
|
13
|
+
<textarea
|
|
14
|
+
ref={ref}
|
|
15
|
+
className={styles({ className, size, invalid, isFocused })}
|
|
16
|
+
{...mergeProps(props, focusProps)}
|
|
17
|
+
/>
|
|
18
|
+
);
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(BaseTextarea);
|
|
@@ -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 w-full',
|
|
6
6
|
variants: {
|
|
7
7
|
size: {
|
|
8
8
|
small: 'form-control-small min-h-[3.375rem]',
|
|
@@ -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'] },
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { generateID } from './generateId.js';
|