@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.
Files changed (115) hide show
  1. package/dist/Avatar.d.ts +2 -1
  2. package/dist/Avatar.js.map +1 -1
  3. package/dist/Button.js +1 -1
  4. package/dist/Button.js.map +1 -1
  5. package/dist/FormField.d.ts +2 -2
  6. package/dist/FormField.js +1 -1
  7. package/dist/Popover.d.ts +2 -3
  8. package/dist/Popover.js +3 -4
  9. package/dist/Popover.js.map +1 -1
  10. package/dist/ProgressBar.d.ts +6 -7
  11. package/dist/ProgressBar.js +6 -7
  12. package/dist/ProgressBar.js.map +1 -1
  13. package/dist/ProgressCircle.d.ts +6 -7
  14. package/dist/ProgressCircle.js +6 -7
  15. package/dist/ProgressCircle.js.map +1 -1
  16. package/dist/ProgressionStepper.d.ts +3 -8
  17. package/dist/ProgressionStepper.js +3 -8
  18. package/dist/ProgressionStepper.js.map +1 -1
  19. package/dist/RadioGroup.d.ts +9 -2
  20. package/dist/RadioGroup.js.map +1 -1
  21. package/dist/SearchBar.d.ts +1 -2
  22. package/dist/SearchBar.js +5 -6
  23. package/dist/SearchBar.js.map +1 -1
  24. package/dist/SegmentedControl.d.ts +8 -15
  25. package/dist/SegmentedControl.js +2 -4
  26. package/dist/SegmentedControl.js.map +1 -1
  27. package/dist/{Dropdown.d.ts → Select.d.ts} +15 -15
  28. package/dist/Select.js +67 -0
  29. package/dist/Select.js.map +1 -0
  30. package/dist/{DropdownField.d.ts → SelectField.d.ts} +9 -9
  31. package/dist/SelectField.js +39 -0
  32. package/dist/SelectField.js.map +1 -0
  33. package/dist/StylesProviderAnywhere.js +1 -1
  34. package/dist/StylesProviderBetterHomesGardens.js +1 -1
  35. package/dist/StylesProviderCartus.js +1 -1
  36. package/dist/StylesProviderCentury21.js +1 -1
  37. package/dist/StylesProviderColdwellBanker.js +1 -1
  38. package/dist/StylesProviderCorcoran.js +1 -1
  39. package/dist/StylesProviderDenaliBoss.js +1 -1
  40. package/dist/StylesProviderEra.js +1 -1
  41. package/dist/StylesProviderSothebys.js +1 -1
  42. package/dist/TabGroup.d.ts +5 -6
  43. package/dist/TabGroup.js.map +1 -1
  44. package/dist/Tag.d.ts +1 -2
  45. package/dist/Tag.js +1 -2
  46. package/dist/Tag.js.map +1 -1
  47. package/dist/TextField.d.ts +2 -3
  48. package/dist/TextField.js +2 -4
  49. package/dist/TextField.js.map +1 -1
  50. package/dist/TextInput.d.ts +4 -13
  51. package/dist/TextInput.js +3 -11
  52. package/dist/TextInput.js.map +1 -1
  53. package/dist/Textarea.d.ts +5 -14
  54. package/dist/Textarea.js +6 -16
  55. package/dist/Textarea.js.map +1 -1
  56. package/dist/TextareaField.d.ts +1 -2
  57. package/dist/TextareaField.js +1 -2
  58. package/dist/TextareaField.js.map +1 -1
  59. package/dist/Txt.d.ts +1 -2
  60. package/dist/Txt.js +1 -2
  61. package/dist/Txt.js.map +1 -1
  62. package/dist/base.css +1 -1
  63. package/dist/demo/ExamplePlaceholder.js.map +1 -1
  64. package/dist/demo/examples.js +84 -15
  65. package/dist/demo/examples.js.map +1 -1
  66. package/dist/hooks/useCombobox.d.ts +45 -0
  67. package/dist/hooks/{useFloatingMenu.js → useCombobox.js} +17 -8
  68. package/dist/hooks/useCombobox.js.map +1 -0
  69. package/dist/hooks/useFloating.d.ts +39 -8
  70. package/dist/hooks/useFloating.js +2 -13
  71. package/dist/hooks/useFloating.js.map +1 -1
  72. package/dist/hooks/useKeyboardNavigation.d.ts +1 -1
  73. package/dist/hooks/useKeyboardNavigation.js +1 -1
  74. package/dist/hooks/useOutsideClick.d.ts +2 -2
  75. package/dist/hooks/useOutsideClick.js +2 -2
  76. package/dist/index.d.ts +3 -1
  77. package/dist/index.js +3 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/select.css +1 -0
  80. package/package.json +3 -2
  81. package/src/Avatar.tsx +2 -1
  82. package/src/Button.tsx +2 -2
  83. package/src/FormField.tsx +2 -2
  84. package/src/Popover.tsx +5 -27
  85. package/src/ProgressBar.tsx +6 -7
  86. package/src/ProgressCircle.tsx +6 -7
  87. package/src/ProgressionStepper.tsx +3 -8
  88. package/src/RadioGroup.tsx +9 -2
  89. package/src/SearchBar.tsx +8 -20
  90. package/src/SegmentedControl.tsx +14 -37
  91. package/src/{Dropdown.tsx → Select.tsx} +30 -32
  92. package/src/{DropdownField.tsx → SelectField.tsx} +15 -15
  93. package/src/TabGroup.tsx +6 -10
  94. package/src/Tag.tsx +1 -2
  95. package/src/TextField.tsx +6 -19
  96. package/src/TextInput.tsx +6 -27
  97. package/src/Textarea.tsx +10 -31
  98. package/src/TextareaField.tsx +3 -8
  99. package/src/Txt.tsx +2 -7
  100. package/src/base.scss +53 -70
  101. package/src/demo/ExamplePlaceholder.tsx +6 -1
  102. package/src/demo/examples.tsx +99 -21
  103. package/src/hooks/{useFloatingMenu.ts → useCombobox.ts} +28 -40
  104. package/src/hooks/useFloating.ts +45 -24
  105. package/src/hooks/useKeyboardNavigation.ts +1 -1
  106. package/src/hooks/useOutsideClick.ts +2 -2
  107. package/src/index.ts +3 -1
  108. package/src/{dropdown.scss → select.scss} +36 -36
  109. package/dist/Dropdown.js +0 -68
  110. package/dist/Dropdown.js.map +0 -1
  111. package/dist/DropdownField.js +0 -39
  112. package/dist/DropdownField.js.map +0 -1
  113. package/dist/dropdown.css +0 -1
  114. package/dist/hooks/useFloatingMenu.d.ts +0 -36
  115. package/dist/hooks/useFloatingMenu.js.map +0 -1
@@ -1,32 +1,32 @@
1
- [data-bspk='dropdown'] {
1
+ [data-bspk='select'] {
2
2
  // default -- size medium not disabled or readonly
3
3
 
4
- --dropdown-background: var(--surface-neutral-t1-base);
5
- --dropdown-border-color: var(--stroke-neutral-base);
6
- --dropdown-text-color: var(--foreground-neutral-on-surface);
7
- --dropdown-height: var(--spacing-sizing-10);
8
- --dropdown-font: var(--body-base);
9
- --dropdown-clear-height: var(--spacing-sizing-05);
10
- --dropdown-padding: var(--spacing-sizing-03);
11
- --dropdown-icon-width: var(--spacing-sizing-05);
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(--dropdown-height);
18
- max-height: var(--dropdown-height);
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(--dropdown-font);
26
- border: 1px solid var(--dropdown-border-color);
25
+ font: var(--select-font);
26
+ border: 1px solid var(--select-border-color);
27
27
  border-radius: var(--radius-small);
28
- background: var(--dropdown-background);
29
- padding: 0 var(--dropdown-padding);
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(--dropdown-text-color);
44
+ color: var(--select-text-color);
45
45
  }
46
46
  }
47
47
 
48
- [data-svg] {
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(--dropdown-icon-width);
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
- --dropdown-height: var(--spacing-sizing-08);
65
- --dropdown-font: var(--body-small);
66
- --dropdown-clear-height: var(--spacing-sizing-05);
67
- --dropdown-padding: var(--spacing-sizing-02);
68
- --dropdown-icon-width: var(--spacing-sizing-05);
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
- --dropdown-height: var(--spacing-sizing-12);
73
- --dropdown-font: var(--body-large);
74
- --dropdown-clear-height: var(--spacing-sizing-06);
75
- --dropdown-icon-width: var(--spacing-sizing-06);
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
- --dropdown-text-color: var(--foreground-neutral-disabled-on-surface);
80
- --dropdown-border-color: var(--stroke-neutral-disabled-light);
81
- --dropdown-background:
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
- --dropdown-text-color: var(--foreground-neutral-on-surface);
86
+ --select-text-color: var(--foreground-neutral-on-surface);
87
87
  }
88
88
  }
89
89
 
90
90
  &:not(:disabled) {
91
91
  &:focus {
92
- --dropdown-border-color: var(--stroke-brand-primary);
92
+ --select-border-color: var(--stroke-brand-primary);
93
93
  }
94
94
 
95
95
  &:hover {
96
- --dropdown-background:
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
- --dropdown-background:
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
- --dropdown-border-color: var(--status-error);
109
+ --select-border-color: var(--status-error);
110
110
  }
111
111
 
112
112
  &[data-empty] {
113
- --dropdown-text-color: var(--foreground-neutral-on-surface-variant-03);
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
@@ -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"}
@@ -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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"}