@bspk/ui 1.1.26 → 1.1.28
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/dist/Avatar.d.ts +2 -1
- package/dist/Avatar.js.map +1 -1
- package/dist/Button.js +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/FormField.d.ts +2 -2
- package/dist/FormField.js +1 -1
- package/dist/Popover.d.ts +2 -3
- package/dist/Popover.js +3 -4
- package/dist/Popover.js.map +1 -1
- package/dist/ProgressBar.d.ts +6 -7
- package/dist/ProgressBar.js +6 -7
- package/dist/ProgressBar.js.map +1 -1
- package/dist/ProgressCircle.d.ts +6 -7
- package/dist/ProgressCircle.js +6 -7
- package/dist/ProgressCircle.js.map +1 -1
- package/dist/ProgressionStepper.d.ts +3 -8
- package/dist/ProgressionStepper.js +3 -8
- package/dist/ProgressionStepper.js.map +1 -1
- package/dist/RadioGroup.d.ts +9 -2
- package/dist/RadioGroup.js.map +1 -1
- package/dist/SearchBar.d.ts +1 -2
- package/dist/SearchBar.js +5 -6
- package/dist/SearchBar.js.map +1 -1
- package/dist/SegmentedControl.d.ts +8 -15
- package/dist/SegmentedControl.js +2 -4
- package/dist/SegmentedControl.js.map +1 -1
- package/dist/{Dropdown.d.ts → Select.d.ts} +15 -15
- package/dist/Select.js +67 -0
- package/dist/Select.js.map +1 -0
- package/dist/{DropdownField.d.ts → SelectField.d.ts} +9 -9
- package/dist/SelectField.js +39 -0
- package/dist/SelectField.js.map +1 -0
- package/dist/StylesProviderAnywhere.js +1 -1
- package/dist/StylesProviderBetterHomesGardens.js +1 -1
- package/dist/StylesProviderCartus.js +1 -1
- package/dist/StylesProviderCentury21.js +1 -1
- package/dist/StylesProviderColdwellBanker.js +1 -1
- package/dist/StylesProviderCorcoran.js +1 -1
- package/dist/StylesProviderDenaliBoss.js +1 -1
- package/dist/StylesProviderEra.js +1 -1
- package/dist/StylesProviderSothebys.js +1 -1
- package/dist/TabGroup.d.ts +5 -6
- package/dist/TabGroup.js.map +1 -1
- package/dist/Tag.d.ts +1 -2
- package/dist/Tag.js +1 -2
- package/dist/Tag.js.map +1 -1
- package/dist/TextField.d.ts +2 -3
- package/dist/TextField.js +2 -4
- package/dist/TextField.js.map +1 -1
- package/dist/TextInput.d.ts +4 -13
- package/dist/TextInput.js +3 -11
- package/dist/TextInput.js.map +1 -1
- package/dist/Textarea.d.ts +5 -14
- package/dist/Textarea.js +6 -16
- package/dist/Textarea.js.map +1 -1
- package/dist/TextareaField.d.ts +1 -2
- package/dist/TextareaField.js +1 -2
- package/dist/TextareaField.js.map +1 -1
- package/dist/Txt.d.ts +1 -2
- package/dist/Txt.js +1 -2
- package/dist/Txt.js.map +1 -1
- package/dist/base.css +1 -1
- package/dist/demo/ExamplePlaceholder.js.map +1 -1
- package/dist/demo/examples.js +84 -15
- package/dist/demo/examples.js.map +1 -1
- package/dist/hooks/useCombobox.d.ts +45 -0
- package/dist/hooks/{useFloatingMenu.js → useCombobox.js} +17 -8
- package/dist/hooks/useCombobox.js.map +1 -0
- package/dist/hooks/useFloating.d.ts +39 -8
- package/dist/hooks/useFloating.js +2 -13
- package/dist/hooks/useFloating.js.map +1 -1
- package/dist/hooks/useKeyboardNavigation.d.ts +1 -1
- package/dist/hooks/useKeyboardNavigation.js +1 -1
- package/dist/hooks/useOutsideClick.d.ts +2 -2
- package/dist/hooks/useOutsideClick.js +2 -2
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/select.css +1 -0
- package/package.json +3 -2
- package/src/Avatar.tsx +2 -1
- package/src/Button.tsx +2 -2
- package/src/FormField.tsx +2 -2
- package/src/Popover.tsx +5 -27
- package/src/ProgressBar.tsx +6 -7
- package/src/ProgressCircle.tsx +6 -7
- package/src/ProgressionStepper.tsx +3 -8
- package/src/RadioGroup.tsx +9 -2
- package/src/SearchBar.tsx +8 -20
- package/src/SegmentedControl.tsx +14 -37
- package/src/{Dropdown.tsx → Select.tsx} +30 -32
- package/src/{DropdownField.tsx → SelectField.tsx} +15 -15
- package/src/TabGroup.tsx +6 -10
- package/src/Tag.tsx +1 -2
- package/src/TextField.tsx +6 -19
- package/src/TextInput.tsx +6 -27
- package/src/Textarea.tsx +10 -31
- package/src/TextareaField.tsx +3 -8
- package/src/Txt.tsx +2 -7
- package/src/base.scss +53 -70
- package/src/demo/ExamplePlaceholder.tsx +6 -1
- package/src/demo/examples.tsx +99 -21
- package/src/hooks/{useFloatingMenu.ts → useCombobox.ts} +28 -40
- package/src/hooks/useFloating.ts +45 -24
- package/src/hooks/useKeyboardNavigation.ts +1 -1
- package/src/hooks/useOutsideClick.ts +2 -2
- package/src/index.ts +3 -1
- package/src/{dropdown.scss → select.scss} +36 -36
- package/dist/Dropdown.js +0 -68
- package/dist/Dropdown.js.map +0 -1
- package/dist/DropdownField.js +0 -39
- package/dist/DropdownField.js.map +0 -1
- package/dist/dropdown.css +0 -1
- package/dist/hooks/useFloatingMenu.d.ts +0 -36
- package/dist/hooks/useFloatingMenu.js.map +0 -1
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
[data-bspk='
|
|
1
|
+
[data-bspk='select'] {
|
|
2
2
|
// default -- size medium not disabled or readonly
|
|
3
3
|
|
|
4
|
-
--
|
|
5
|
-
--
|
|
6
|
-
--
|
|
7
|
-
--
|
|
8
|
-
--
|
|
9
|
-
--
|
|
10
|
-
--
|
|
11
|
-
--
|
|
4
|
+
--select-background: var(--surface-neutral-t1-base);
|
|
5
|
+
--select-border-color: var(--stroke-neutral-base);
|
|
6
|
+
--select-text-color: var(--foreground-neutral-on-surface);
|
|
7
|
+
--select-height: var(--spacing-sizing-10);
|
|
8
|
+
--select-font: var(--body-base);
|
|
9
|
+
--select-clear-height: var(--spacing-sizing-05);
|
|
10
|
+
--select-padding: var(--spacing-sizing-03);
|
|
11
|
+
--select-icon-width: var(--spacing-sizing-05);
|
|
12
12
|
|
|
13
13
|
position: relative;
|
|
14
14
|
width: 100%;
|
|
15
15
|
max-width: 280px;
|
|
16
16
|
outline: unset;
|
|
17
|
-
min-height: var(--
|
|
18
|
-
max-height: var(--
|
|
17
|
+
min-height: var(--select-height);
|
|
18
|
+
max-height: var(--select-height);
|
|
19
19
|
display: flex;
|
|
20
20
|
flex-direction: row;
|
|
21
21
|
gap: var(--spacing-sizing-02);
|
|
22
22
|
flex-grow: 0;
|
|
23
23
|
flex-shrink: 0;
|
|
24
24
|
text-align: left;
|
|
25
|
-
font: var(--
|
|
26
|
-
border: 1px solid var(--
|
|
25
|
+
font: var(--select-font);
|
|
26
|
+
border: 1px solid var(--select-border-color);
|
|
27
27
|
border-radius: var(--radius-small);
|
|
28
|
-
background: var(--
|
|
29
|
-
padding: 0 var(--
|
|
28
|
+
background: var(--select-background);
|
|
29
|
+
padding: 0 var(--select-padding);
|
|
30
30
|
|
|
31
31
|
[data-placeholder] {
|
|
32
32
|
display: block;
|
|
@@ -41,18 +41,18 @@
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
[data-item-label] [data-text] {
|
|
44
|
-
color: var(--
|
|
44
|
+
color: var(--select-text-color);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
[data-
|
|
48
|
+
[data-icon] {
|
|
49
49
|
display: flex;
|
|
50
50
|
flex-direction: column;
|
|
51
51
|
justify-content: center;
|
|
52
52
|
|
|
53
53
|
svg {
|
|
54
54
|
transform: rotate(90deg);
|
|
55
|
-
width: var(--
|
|
55
|
+
width: var(--select-icon-width);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -61,56 +61,56 @@
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
&[data-size='small'] {
|
|
64
|
-
--
|
|
65
|
-
--
|
|
66
|
-
--
|
|
67
|
-
--
|
|
68
|
-
--
|
|
64
|
+
--select-height: var(--spacing-sizing-08);
|
|
65
|
+
--select-font: var(--body-small);
|
|
66
|
+
--select-clear-height: var(--spacing-sizing-05);
|
|
67
|
+
--select-padding: var(--spacing-sizing-02);
|
|
68
|
+
--select-icon-width: var(--spacing-sizing-05);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
&[data-size='large'] {
|
|
72
|
-
--
|
|
73
|
-
--
|
|
74
|
-
--
|
|
75
|
-
--
|
|
72
|
+
--select-height: var(--spacing-sizing-12);
|
|
73
|
+
--select-font: var(--body-large);
|
|
74
|
+
--select-clear-height: var(--spacing-sizing-06);
|
|
75
|
+
--select-icon-width: var(--spacing-sizing-06);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
&:disabled {
|
|
79
|
-
--
|
|
80
|
-
--
|
|
81
|
-
--
|
|
79
|
+
--select-text-color: var(--foreground-neutral-disabled-on-surface);
|
|
80
|
+
--select-border-color: var(--stroke-neutral-disabled-light);
|
|
81
|
+
--select-background:
|
|
82
82
|
linear-gradient(var(--interactions-disabled-opacity), var(--interactions-disabled-opacity)),
|
|
83
83
|
linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base));
|
|
84
84
|
|
|
85
85
|
&[aria-readonly]:not([data-empty]) {
|
|
86
|
-
--
|
|
86
|
+
--select-text-color: var(--foreground-neutral-on-surface);
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
&:not(:disabled) {
|
|
91
91
|
&:focus {
|
|
92
|
-
--
|
|
92
|
+
--select-border-color: var(--stroke-brand-primary);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
&:hover {
|
|
96
|
-
--
|
|
96
|
+
--select-background:
|
|
97
97
|
linear-gradient(var(--interactions-neutral-hover-opacity), var(--interactions-neutral-hover-opacity)),
|
|
98
98
|
linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base));
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
&:active {
|
|
102
|
-
--
|
|
102
|
+
--select-background:
|
|
103
103
|
linear-gradient(var(--interactions-neutral-press-opacity), var(--interactions-neutral-press-opacity)),
|
|
104
104
|
linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base));
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
&[data-invalid] {
|
|
109
|
-
--
|
|
109
|
+
--select-border-color: var(--status-error);
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
&[data-empty] {
|
|
113
|
-
--
|
|
113
|
+
--select-text-color: var(--foreground-neutral-on-surface-variant-03);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
package/dist/Dropdown.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { SvgChevronRight } from '@bspk/icons/ChevronRight';
|
|
3
|
-
import { styleAdd } from './utils/styleAdd';
|
|
4
|
-
styleAdd(`[data-bspk=dropdown]{--dropdown-background: var(--surface-neutral-t1-base);--dropdown-border-color: var(--stroke-neutral-base);--dropdown-text-color: var(--foreground-neutral-on-surface);--dropdown-height: var(--spacing-sizing-10);--dropdown-font: var(--body-base);--dropdown-clear-height: var(--spacing-sizing-05);--dropdown-padding: var(--spacing-sizing-03);--dropdown-icon-width: var(--spacing-sizing-05);position:relative;width:100%;max-width:280px;outline:unset;min-height:var(--dropdown-height);max-height:var(--dropdown-height);display:flex;flex-direction:row;gap:var(--spacing-sizing-02);flex-grow:0;flex-shrink:0;text-align:left;font:var(--dropdown-font);border:1px solid var(--dropdown-border-color);border-radius:var(--radius-small);background:var(--dropdown-background);padding:0 var(--dropdown-padding)}[data-bspk=dropdown] [data-placeholder]{display:block;max-width:100%;text-overflow:ellipsis;overflow:hidden;padding:0}[data-bspk=dropdown] [data-placeholder] [data-inner]{min-height:auto;padding:0}[data-bspk=dropdown] [data-placeholder] [data-item-label] [data-text]{color:var(--dropdown-text-color)}[data-bspk=dropdown] [data-svg]{display:flex;flex-direction:column;justify-content:center}[data-bspk=dropdown] [data-svg] svg{transform:rotate(90deg);width:var(--dropdown-icon-width)}[data-bspk=dropdown] [data-bspk=list-item][data-selected]{background:var(--surface-brand-primary-highlight)}[data-bspk=dropdown][data-size=small]{--dropdown-height: var(--spacing-sizing-08);--dropdown-font: var(--body-small);--dropdown-clear-height: var(--spacing-sizing-05);--dropdown-padding: var(--spacing-sizing-02);--dropdown-icon-width: var(--spacing-sizing-05)}[data-bspk=dropdown][data-size=large]{--dropdown-height: var(--spacing-sizing-12);--dropdown-font: var(--body-large);--dropdown-clear-height: var(--spacing-sizing-06);--dropdown-icon-width: var(--spacing-sizing-06)}[data-bspk=dropdown]:disabled{--dropdown-text-color: var(--foreground-neutral-disabled-on-surface);--dropdown-border-color: var(--stroke-neutral-disabled-light);--dropdown-background: linear-gradient(var(--interactions-disabled-opacity), var(--interactions-disabled-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown]:disabled[aria-readonly]:not([data-empty]){--dropdown-text-color: var(--foreground-neutral-on-surface)}[data-bspk=dropdown]:not(:disabled):focus{--dropdown-border-color: var(--stroke-brand-primary)}[data-bspk=dropdown]:not(:disabled):hover{--dropdown-background: linear-gradient(var(--interactions-neutral-hover-opacity), var(--interactions-neutral-hover-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown]:not(:disabled):active{--dropdown-background: linear-gradient(var(--interactions-neutral-press-opacity), var(--interactions-neutral-press-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown][data-invalid]{--dropdown-border-color: var(--status-error)}[data-bspk=dropdown][data-empty]{--dropdown-text-color: var(--foreground-neutral-on-surface-variant-03)}`);;
|
|
5
|
-
import { ListItem } from './ListItem';
|
|
6
|
-
import { Menu } from './Menu';
|
|
7
|
-
import { Portal } from './Portal';
|
|
8
|
-
import { useFloatingMenu } from './hooks/useFloatingMenu';
|
|
9
|
-
import { useId } from './hooks/useId';
|
|
10
|
-
/**
|
|
11
|
-
* A field element that allows users to select one option from a list of available choices. *
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* import { Dropdown } from '@bspk/ui/Dropdown';
|
|
15
|
-
*
|
|
16
|
-
* export function Example() {
|
|
17
|
-
* const [selected, setSelected] = React.useState<string[]>([]);
|
|
18
|
-
* return (
|
|
19
|
-
* <Dropdown
|
|
20
|
-
* aria-label="Select an option"
|
|
21
|
-
* itemCount={5}
|
|
22
|
-
* name="example-dropdown"
|
|
23
|
-
* onChange={setSelected}
|
|
24
|
-
* options={[
|
|
25
|
-
* { value: '1', label: 'Option 1' },
|
|
26
|
-
* { value: '2', label: 'Option 2' },
|
|
27
|
-
* { value: '3', label: 'Option 3' },
|
|
28
|
-
* { value: '4', label: 'Option 4' },
|
|
29
|
-
* { value: '5', label: 'Option 5' },
|
|
30
|
-
* { value: '6', label: 'Option 6' },
|
|
31
|
-
* { value: '7', label: 'Option 7' },
|
|
32
|
-
* { value: '8', label: 'Option 8' },
|
|
33
|
-
* { value: '9', label: 'Option 9' },
|
|
34
|
-
* { value: '10', label: 'Option 10' },
|
|
35
|
-
* ]}
|
|
36
|
-
* placeholder="Select an option"
|
|
37
|
-
* size="medium"
|
|
38
|
-
* value={selected}
|
|
39
|
-
* />
|
|
40
|
-
* );
|
|
41
|
-
* }
|
|
42
|
-
*
|
|
43
|
-
* @name Dropdown
|
|
44
|
-
*/
|
|
45
|
-
function Dropdown({ options = [], value: selected, onChange, 'aria-label': ariaLabel, placeholder = 'Select...', size = 'medium', itemCount = 5, disabled, id: propId, invalid, errorMessage, readOnly, placement = 'bottom', name, isMulti, renderListItem, style: styleProp, selectAll, }) {
|
|
46
|
-
const id = useId(propId);
|
|
47
|
-
const { triggerProps, menuProps, closeMenu } = useFloatingMenu({
|
|
48
|
-
placement,
|
|
49
|
-
triggerProps: {
|
|
50
|
-
disabled,
|
|
51
|
-
invalid,
|
|
52
|
-
readOnly,
|
|
53
|
-
errorMessage,
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
const dropdownLabel = isMulti
|
|
57
|
-
? `${selected?.length || 0} option${selected?.length !== 1 ? 's' : ''} selected`
|
|
58
|
-
: options.find((o) => o.value === selected?.[0])?.label;
|
|
59
|
-
return (_jsxs(_Fragment, { children: [_jsx("input", { defaultValue: selected, name: name, type: "hidden" }), _jsxs("button", { "aria-label": ariaLabel, "data-bspk": "dropdown", "data-empty": dropdownLabel ? undefined : '', "data-invalid": invalid || undefined, "data-size": size, disabled: disabled || readOnly, id: id, style: styleProp, ...triggerProps, children: [_jsx(ListItem, { "data-placeholder": "", label: dropdownLabel || placeholder, readOnly: true }), _jsx("span", { "data-svg": true, children: _jsx(SvgChevronRight, {}) })] }), _jsx(Portal, { children: _jsx(Menu, { "data-floating": true, isMulti: isMulti, itemCount: itemCount, items: options, onChange: (next, event) => {
|
|
60
|
-
event?.preventDefault();
|
|
61
|
-
if (!isMulti)
|
|
62
|
-
closeMenu();
|
|
63
|
-
onChange?.(next);
|
|
64
|
-
}, renderListItem: renderListItem, selectAll: selectAll, selectedValues: selected, ...menuProps }) })] }));
|
|
65
|
-
}
|
|
66
|
-
Dropdown.bspkName = 'Dropdown';
|
|
67
|
-
export { Dropdown };
|
|
68
|
-
//# sourceMappingURL=Dropdown.js.map
|
package/dist/Dropdown.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAiEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAS,QAAQ,CAAC,EACd,OAAO,GAAG,EAAE,EACZ,KAAK,EAAE,QAAQ,EACf,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,WAAW,GAAG,WAAW,EACzB,IAAI,GAAG,QAAQ,EACf,SAAS,GAAG,CAAC,EACb,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,SAAS,GAAG,QAAQ,EACpB,IAAI,EACJ,OAAO,EACP,cAAc,EACd,KAAK,EAAE,SAAS,EAChB,SAAS,GACG;IACZ,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAEzB,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;QAC3D,SAAS;QACT,YAAY,EAAE;YACV,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,YAAY;SACf;KACJ,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO;QACzB,CAAC,CAAC,GAAG,QAAQ,EAAE,MAAM,IAAI,CAAC,UAAU,QAAQ,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW;QAChF,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IAE5D,OAAO,CACH,8BACI,gBAAO,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,QAAQ,GAAG,EAC3D,gCACgB,SAAS,eACX,UAAU,gBACR,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,kBAC5B,OAAO,IAAI,SAAS,eACvB,IAAI,EACf,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,SAAS,KACZ,YAAY,aAEhB,KAAC,QAAQ,wBAAkB,EAAE,EAAC,KAAK,EAAE,aAAa,IAAI,WAAW,EAAE,QAAQ,SAAG,EAC9E,2CACI,KAAC,eAAe,KAAG,GAChB,IACF,EACT,KAAC,MAAM,cACH,KAAC,IAAI,2BAED,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBACtB,KAAK,EAAE,cAAc,EAAE,CAAC;wBACxB,IAAI,CAAC,OAAO;4BAAE,SAAS,EAAE,CAAC;wBAC1B,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;oBACrB,CAAC,EACD,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,QAAQ,KACpB,SAAS,GACf,GACG,IACV,CACN,CAAC;AACN,CAAC;AAED,QAAQ,CAAC,QAAQ,GAAG,UAAU,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/DropdownField.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Dropdown } from './Dropdown';
|
|
3
|
-
import { FormField } from './FormField';
|
|
4
|
-
/**
|
|
5
|
-
* A component that allows users to input large amounts of text that could span multiple lines.
|
|
6
|
-
*
|
|
7
|
-
* This component takes properties from the FormField and Dropdown components.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* import { DropdownField } from '@bspk/ui/DropdownField';
|
|
11
|
-
*
|
|
12
|
-
* export function Example() {
|
|
13
|
-
* const [state, setState] = React.useState(['option1']);
|
|
14
|
-
* return (
|
|
15
|
-
* <DropdownField
|
|
16
|
-
* controlId="Example controlId"
|
|
17
|
-
* label="Example label"
|
|
18
|
-
* name="Example name"
|
|
19
|
-
* onChange={(nextValue) => setState(nextValue)}
|
|
20
|
-
* options={[
|
|
21
|
-
* { label: 'Option 1', value: 'option1' },
|
|
22
|
-
* { label: 'Option 2', value: 'option2' },
|
|
23
|
-
* { label: 'Option 3', value: 'option3' },
|
|
24
|
-
* ]}
|
|
25
|
-
* placeholder="Select one..."
|
|
26
|
-
* value={state}
|
|
27
|
-
* />
|
|
28
|
-
* );
|
|
29
|
-
* }
|
|
30
|
-
*
|
|
31
|
-
* @name DropdownField
|
|
32
|
-
*/
|
|
33
|
-
function DropdownField({ label, errorMessage: errorMessageProp, helperText, controlId: id, labelTrailing, required, ...dropdownProps }) {
|
|
34
|
-
const errorMessage = (!dropdownProps.readOnly && !dropdownProps.disabled && errorMessageProp) || undefined;
|
|
35
|
-
return (_jsx(FormField, { controlId: id, "data-bspk": "dropdown-field", errorMessage: errorMessage, helperText: helperText, label: label, labelTrailing: labelTrailing, required: required, children: (fieldProps) => (_jsx(Dropdown, { ...dropdownProps, ...fieldProps, "aria-label": label, id: id, invalid: !!errorMessage })) }));
|
|
36
|
-
}
|
|
37
|
-
DropdownField.bspkName = 'DropdownField';
|
|
38
|
-
export { DropdownField };
|
|
39
|
-
//# sourceMappingURL=DropdownField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownField.js","sourceRoot":"","sources":["../src/DropdownField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAiB,QAAQ,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAkB,SAAS,EAAE,MAAM,aAAa,CAAC;AAiBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAS,aAAa,CAAC,EACnB,KAAK,EACL,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EACV,SAAS,EAAE,EAAE,EACb,aAAa,EACb,QAAQ,EACR,GAAG,aAAa,EACC;IACjB,MAAM,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,gBAAgB,CAAC,IAAI,SAAS,CAAC;IAE3G,OAAO,CACH,KAAC,SAAS,IACN,SAAS,EAAE,EAAE,eACH,gBAAgB,EAC1B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,YAEjB,CAAC,UAAU,EAAE,EAAE,CAAC,CACb,KAAC,QAAQ,OAAK,aAAa,KAAM,UAAU,gBAAc,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,GAAI,CACtG,GACO,CACf,CAAC;AACN,CAAC;AAED,aAAa,CAAC,QAAQ,GAAG,eAAe,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/dropdown.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[data-bspk=dropdown]{--dropdown-background: var(--surface-neutral-t1-base);--dropdown-border-color: var(--stroke-neutral-base);--dropdown-text-color: var(--foreground-neutral-on-surface);--dropdown-height: var(--spacing-sizing-10);--dropdown-font: var(--body-base);--dropdown-clear-height: var(--spacing-sizing-05);--dropdown-padding: var(--spacing-sizing-03);--dropdown-icon-width: var(--spacing-sizing-05);position:relative;width:100%;max-width:280px;outline:unset;min-height:var(--dropdown-height);max-height:var(--dropdown-height);display:flex;flex-direction:row;gap:var(--spacing-sizing-02);flex-grow:0;flex-shrink:0;text-align:left;font:var(--dropdown-font);border:1px solid var(--dropdown-border-color);border-radius:var(--radius-small);background:var(--dropdown-background);padding:0 var(--dropdown-padding)}[data-bspk=dropdown] [data-placeholder]{display:block;max-width:100%;text-overflow:ellipsis;overflow:hidden;padding:0}[data-bspk=dropdown] [data-placeholder] [data-inner]{min-height:auto;padding:0}[data-bspk=dropdown] [data-placeholder] [data-item-label] [data-text]{color:var(--dropdown-text-color)}[data-bspk=dropdown] [data-svg]{display:flex;flex-direction:column;justify-content:center}[data-bspk=dropdown] [data-svg] svg{transform:rotate(90deg);width:var(--dropdown-icon-width)}[data-bspk=dropdown] [data-bspk=list-item][data-selected]{background:var(--surface-brand-primary-highlight)}[data-bspk=dropdown][data-size=small]{--dropdown-height: var(--spacing-sizing-08);--dropdown-font: var(--body-small);--dropdown-clear-height: var(--spacing-sizing-05);--dropdown-padding: var(--spacing-sizing-02);--dropdown-icon-width: var(--spacing-sizing-05)}[data-bspk=dropdown][data-size=large]{--dropdown-height: var(--spacing-sizing-12);--dropdown-font: var(--body-large);--dropdown-clear-height: var(--spacing-sizing-06);--dropdown-icon-width: var(--spacing-sizing-06)}[data-bspk=dropdown]:disabled{--dropdown-text-color: var(--foreground-neutral-disabled-on-surface);--dropdown-border-color: var(--stroke-neutral-disabled-light);--dropdown-background: linear-gradient(var(--interactions-disabled-opacity), var(--interactions-disabled-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown]:disabled[aria-readonly]:not([data-empty]){--dropdown-text-color: var(--foreground-neutral-on-surface)}[data-bspk=dropdown]:not(:disabled):focus{--dropdown-border-color: var(--stroke-brand-primary)}[data-bspk=dropdown]:not(:disabled):hover{--dropdown-background: linear-gradient(var(--interactions-neutral-hover-opacity), var(--interactions-neutral-hover-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown]:not(:disabled):active{--dropdown-background: linear-gradient(var(--interactions-neutral-press-opacity), var(--interactions-neutral-press-opacity)), linear-gradient(var(--surface-neutral-t1-base), var(--surface-neutral-t1-base))}[data-bspk=dropdown][data-invalid]{--dropdown-border-color: var(--status-error)}[data-bspk=dropdown][data-empty]{--dropdown-text-color: var(--foreground-neutral-on-surface-variant-03)}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { AriaAttributes } from 'react';
|
|
2
|
-
import { CommonProps, InvalidPropsLibrary } from '..';
|
|
3
|
-
import { Placement } from './useFloating';
|
|
4
|
-
export type UseFloatingMenuProps = {
|
|
5
|
-
placement: Placement;
|
|
6
|
-
triggerProps?: CommonProps<'disabled' | 'readOnly'> & InvalidPropsLibrary;
|
|
7
|
-
};
|
|
8
|
-
export type UseFloatingMenuReturn = {
|
|
9
|
-
menuProps: {
|
|
10
|
-
activeIndex: number;
|
|
11
|
-
'data-placement': Placement | undefined;
|
|
12
|
-
id: string;
|
|
13
|
-
innerRef: (node: HTMLElement | null) => void;
|
|
14
|
-
role: 'listbox';
|
|
15
|
-
style: React.CSSProperties;
|
|
16
|
-
tabIndex: number;
|
|
17
|
-
};
|
|
18
|
-
triggerProps: {
|
|
19
|
-
'aria-activedescendant': string | undefined;
|
|
20
|
-
'aria-controls': string;
|
|
21
|
-
'aria-expanded': boolean;
|
|
22
|
-
'aria-haspopup': AriaAttributes['aria-haspopup'];
|
|
23
|
-
'aria-invalid': boolean | undefined;
|
|
24
|
-
'aria-owns': string;
|
|
25
|
-
'aria-readonly': boolean | undefined;
|
|
26
|
-
'aria-errormessage': string | undefined;
|
|
27
|
-
role: 'combobox';
|
|
28
|
-
tabIndex: number;
|
|
29
|
-
ref: (node: HTMLElement | null) => void;
|
|
30
|
-
onClick: (event: React.MouseEvent) => void;
|
|
31
|
-
onKeyDownCapture: (event: React.KeyboardEvent) => boolean;
|
|
32
|
-
};
|
|
33
|
-
closeMenu: () => void;
|
|
34
|
-
};
|
|
35
|
-
export declare function useFloatingMenu({ placement, triggerProps }: UseFloatingMenuProps): UseFloatingMenuReturn;
|
|
36
|
-
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useFloatingMenu.js","sourceRoot":"","sources":["../../src/hooks/useFloatingMenu.ts"],"names":[],"mappings":"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"}
|