@plasmicpkgs/react-aria 0.0.49 → 0.0.50

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 (163) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ListBoxItemIdManager.d.ts +13 -0
  3. package/dist/common.d.ts +0 -2
  4. package/dist/contexts.d.ts +4 -5
  5. package/dist/react-aria.esm.js +711 -843
  6. package/dist/react-aria.esm.js.map +1 -1
  7. package/dist/react-aria.js +709 -841
  8. package/dist/react-aria.js.map +1 -1
  9. package/dist/registerComboBox.d.ts +9 -17
  10. package/dist/registerListBox.d.ts +16 -6
  11. package/dist/registerListBoxItem.d.ts +13 -3
  12. package/dist/registerSection.d.ts +2 -4
  13. package/dist/registerSelect.d.ts +9 -18
  14. package/package.json +2 -2
  15. package/skinny/ListBoxItemIdManager.d.ts +13 -0
  16. package/skinny/{common-fa69e9b3.esm.js → common-8ca74873.esm.js} +4 -72
  17. package/skinny/common-8ca74873.esm.js.map +1 -0
  18. package/skinny/{common-bfedaf7d.cjs.js → common-c892c339.cjs.js} +4 -82
  19. package/skinny/common-c892c339.cjs.js.map +1 -0
  20. package/skinny/common.d.ts +0 -2
  21. package/skinny/contexts-0a2977d8.esm.js +15 -0
  22. package/skinny/contexts-0a2977d8.esm.js.map +1 -0
  23. package/skinny/{contexts-0dec6156.cjs.js → contexts-c26d68f8.cjs.js} +3 -9
  24. package/skinny/contexts-c26d68f8.cjs.js.map +1 -0
  25. package/skinny/contexts.d.ts +4 -5
  26. package/skinny/{interaction-variant-utils-abd0c319.esm.js → interaction-variant-utils-1d94d073.esm.js} +2 -2
  27. package/skinny/interaction-variant-utils-1d94d073.esm.js.map +1 -0
  28. package/skinny/{interaction-variant-utils-36f1b397.cjs.js → interaction-variant-utils-9a869063.cjs.js} +2 -2
  29. package/skinny/interaction-variant-utils-9a869063.cjs.js.map +1 -0
  30. package/skinny/registerButton.cjs.js +5 -4
  31. package/skinny/registerButton.cjs.js.map +1 -1
  32. package/skinny/registerButton.esm.js +3 -2
  33. package/skinny/registerButton.esm.js.map +1 -1
  34. package/skinny/registerCheckbox.cjs.js +6 -5
  35. package/skinny/registerCheckbox.cjs.js.map +1 -1
  36. package/skinny/registerCheckbox.esm.js +4 -3
  37. package/skinny/registerCheckbox.esm.js.map +1 -1
  38. package/skinny/registerCheckboxGroup.cjs.js +8 -7
  39. package/skinny/registerCheckboxGroup.cjs.js.map +1 -1
  40. package/skinny/registerCheckboxGroup.esm.js +5 -4
  41. package/skinny/registerCheckboxGroup.esm.js.map +1 -1
  42. package/skinny/registerComboBox.cjs.js +73 -253
  43. package/skinny/registerComboBox.cjs.js.map +1 -1
  44. package/skinny/registerComboBox.d.ts +9 -17
  45. package/skinny/registerComboBox.esm.js +74 -254
  46. package/skinny/registerComboBox.esm.js.map +1 -1
  47. package/skinny/registerDescription.cjs.js +2 -2
  48. package/skinny/registerDescription.cjs.js.map +1 -1
  49. package/skinny/registerDescription.esm.js +1 -1
  50. package/skinny/registerDialogTrigger.cjs.js +6 -5
  51. package/skinny/registerDialogTrigger.cjs.js.map +1 -1
  52. package/skinny/registerDialogTrigger.esm.js +4 -3
  53. package/skinny/registerDialogTrigger.esm.js.map +1 -1
  54. package/skinny/registerFieldError.cjs.js +3 -3
  55. package/skinny/registerFieldError.cjs.js.map +1 -1
  56. package/skinny/registerFieldError.esm.js +1 -1
  57. package/skinny/registerForm.cjs.js +3 -3
  58. package/skinny/registerForm.cjs.js.map +1 -1
  59. package/skinny/registerForm.esm.js +1 -1
  60. package/skinny/registerInput.cjs.js +7 -6
  61. package/skinny/registerInput.cjs.js.map +1 -1
  62. package/skinny/registerInput.esm.js +5 -4
  63. package/skinny/registerInput.esm.js.map +1 -1
  64. package/skinny/registerLabel.cjs.js +3 -3
  65. package/skinny/registerLabel.cjs.js.map +1 -1
  66. package/skinny/registerLabel.esm.js +1 -1
  67. package/skinny/registerListBox-85f61377.esm.js +321 -0
  68. package/skinny/registerListBox-85f61377.esm.js.map +1 -0
  69. package/skinny/registerListBox-96ae5783.cjs.js +331 -0
  70. package/skinny/registerListBox-96ae5783.cjs.js.map +1 -0
  71. package/skinny/registerListBox.cjs.js +7 -7
  72. package/skinny/registerListBox.d.ts +16 -6
  73. package/skinny/registerListBox.esm.js +6 -7
  74. package/skinny/registerListBox.esm.js.map +1 -1
  75. package/skinny/registerListBoxItem.cjs.js +96 -13
  76. package/skinny/registerListBoxItem.cjs.js.map +1 -1
  77. package/skinny/registerListBoxItem.d.ts +13 -3
  78. package/skinny/registerListBoxItem.esm.js +95 -12
  79. package/skinny/registerListBoxItem.esm.js.map +1 -1
  80. package/skinny/registerModal.cjs.js +5 -4
  81. package/skinny/registerModal.cjs.js.map +1 -1
  82. package/skinny/registerModal.esm.js +3 -2
  83. package/skinny/registerModal.esm.js.map +1 -1
  84. package/skinny/registerPopover.cjs.js +5 -6
  85. package/skinny/registerPopover.cjs.js.map +1 -1
  86. package/skinny/registerPopover.esm.js +3 -4
  87. package/skinny/registerPopover.esm.js.map +1 -1
  88. package/skinny/registerRadio.cjs.js +6 -5
  89. package/skinny/registerRadio.cjs.js.map +1 -1
  90. package/skinny/registerRadio.esm.js +4 -3
  91. package/skinny/registerRadio.esm.js.map +1 -1
  92. package/skinny/registerRadioGroup.cjs.js +8 -7
  93. package/skinny/registerRadioGroup.cjs.js.map +1 -1
  94. package/skinny/registerRadioGroup.esm.js +5 -4
  95. package/skinny/registerRadioGroup.esm.js.map +1 -1
  96. package/skinny/registerSection.cjs.js +30 -25
  97. package/skinny/registerSection.cjs.js.map +1 -1
  98. package/skinny/registerSection.d.ts +2 -4
  99. package/skinny/registerSection.esm.js +29 -24
  100. package/skinny/registerSection.esm.js.map +1 -1
  101. package/skinny/registerSelect.cjs.js +65 -88
  102. package/skinny/registerSelect.cjs.js.map +1 -1
  103. package/skinny/registerSelect.d.ts +9 -18
  104. package/skinny/registerSelect.esm.js +61 -84
  105. package/skinny/registerSelect.esm.js.map +1 -1
  106. package/skinny/registerSlider.cjs.js +9 -9
  107. package/skinny/registerSlider.cjs.js.map +1 -1
  108. package/skinny/registerSlider.esm.js +5 -5
  109. package/skinny/registerSliderOutput.cjs.js +4 -4
  110. package/skinny/registerSliderOutput.cjs.js.map +1 -1
  111. package/skinny/registerSliderOutput.esm.js +2 -2
  112. package/skinny/registerSliderThumb.cjs.js +23 -7
  113. package/skinny/registerSliderThumb.cjs.js.map +1 -1
  114. package/skinny/registerSliderThumb.esm.js +21 -5
  115. package/skinny/registerSliderThumb.esm.js.map +1 -1
  116. package/skinny/registerSliderTrack.cjs.js +7 -7
  117. package/skinny/registerSliderTrack.cjs.js.map +1 -1
  118. package/skinny/registerSliderTrack.esm.js +3 -3
  119. package/skinny/registerSwitch.cjs.js +6 -5
  120. package/skinny/registerSwitch.cjs.js.map +1 -1
  121. package/skinny/registerSwitch.esm.js +4 -3
  122. package/skinny/registerSwitch.esm.js.map +1 -1
  123. package/skinny/registerText.cjs.js +3 -3
  124. package/skinny/registerText.cjs.js.map +1 -1
  125. package/skinny/registerText.esm.js +1 -1
  126. package/skinny/registerTextArea.cjs.js +6 -5
  127. package/skinny/registerTextArea.cjs.js.map +1 -1
  128. package/skinny/registerTextArea.esm.js +4 -3
  129. package/skinny/registerTextArea.esm.js.map +1 -1
  130. package/skinny/registerTextField.cjs.js +8 -7
  131. package/skinny/registerTextField.cjs.js.map +1 -1
  132. package/skinny/registerTextField.esm.js +5 -4
  133. package/skinny/registerTextField.esm.js.map +1 -1
  134. package/skinny/registerTooltip.cjs.js +2 -2
  135. package/skinny/registerTooltip.cjs.js.map +1 -1
  136. package/skinny/registerTooltip.esm.js +1 -1
  137. package/skinny/utils-8dbb4d1f.cjs.js +79 -0
  138. package/skinny/utils-8dbb4d1f.cjs.js.map +1 -0
  139. package/skinny/utils-c7662a47.esm.js +69 -0
  140. package/skinny/utils-c7662a47.esm.js.map +1 -0
  141. package/dist/option-utils.d.ts +0 -42
  142. package/dist/registerHeader.d.ts +0 -5
  143. package/skinny/ErrorBoundary-c6b111d3.esm.js +0 -20
  144. package/skinny/ErrorBoundary-c6b111d3.esm.js.map +0 -1
  145. package/skinny/ErrorBoundary-e9b86248.cjs.js +0 -22
  146. package/skinny/ErrorBoundary-e9b86248.cjs.js.map +0 -1
  147. package/skinny/common-bfedaf7d.cjs.js.map +0 -1
  148. package/skinny/common-fa69e9b3.esm.js.map +0 -1
  149. package/skinny/contexts-0dec6156.cjs.js.map +0 -1
  150. package/skinny/contexts-9a8234bf.esm.js +0 -17
  151. package/skinny/contexts-9a8234bf.esm.js.map +0 -1
  152. package/skinny/interaction-variant-utils-36f1b397.cjs.js.map +0 -1
  153. package/skinny/interaction-variant-utils-abd0c319.esm.js.map +0 -1
  154. package/skinny/option-utils.d.ts +0 -42
  155. package/skinny/registerHeader.cjs.js +0 -55
  156. package/skinny/registerHeader.cjs.js.map +0 -1
  157. package/skinny/registerHeader.d.ts +0 -5
  158. package/skinny/registerHeader.esm.js +0 -48
  159. package/skinny/registerHeader.esm.js.map +0 -1
  160. package/skinny/registerListBox-b3f2891a.esm.js +0 -298
  161. package/skinny/registerListBox-b3f2891a.esm.js.map +0 -1
  162. package/skinny/registerListBox-f4801dbd.cjs.js +0 -310
  163. package/skinny/registerListBox-f4801dbd.cjs.js.map +0 -1
@@ -1,23 +1,21 @@
1
1
  'use strict';
2
2
 
3
- var i18n = require('@react-aria/i18n');
4
3
  var React = require('react');
5
4
  var reactAriaComponents = require('react-aria-components');
6
- var contexts = require('./contexts-0dec6156.cjs.js');
7
- var registerListBox = require('./registerListBox-f4801dbd.cjs.js');
5
+ var common = require('./common-c892c339.cjs.js');
6
+ var contexts = require('./contexts-c26d68f8.cjs.js');
7
+ var registerListBox = require('./registerListBox-96ae5783.cjs.js');
8
8
  var registerButton = require('./registerButton.cjs.js');
9
9
  var registerInput = require('./registerInput.cjs.js');
10
10
  var registerLabel = require('./registerLabel.cjs.js');
11
11
  var registerPopover = require('./registerPopover.cjs.js');
12
- var common = require('./common-bfedaf7d.cjs.js');
13
- require('@react-aria/utils');
12
+ var utils = require('./utils-8dbb4d1f.cjs.js');
14
13
  require('./registerListBoxItem.cjs.js');
15
- require('./ErrorBoundary-e9b86248.cjs.js');
14
+ require('./interaction-variant-utils-9a869063.cjs.js');
16
15
  require('./registerDescription.cjs.js');
17
16
  require('./registerText.cjs.js');
18
17
  require('./registerSection.cjs.js');
19
- require('./registerHeader.cjs.js');
20
- require('./interaction-variant-utils-36f1b397.cjs.js');
18
+ require('@react-aria/utils');
21
19
  require('react-aria');
22
20
  require('@plasmicapp/host');
23
21
  require('@plasmicapp/host/registerComponent');
@@ -45,225 +43,76 @@ var __spreadValues = (a, b) => {
45
43
  return a;
46
44
  };
47
45
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
48
- function BaseComboBox(props) {
49
- const {
50
- value,
51
- onChange,
52
- menuTrigger,
53
- filterValue,
54
- onFilterValueChange,
55
- valueType,
56
- allowsCustomValue,
57
- placeholder,
58
- previewOpen,
59
- onOpenChange,
60
- isDisabled,
61
- className,
62
- style,
63
- structure,
64
- name
65
- } = props;
66
- const { options, optionText } = registerListBox.useStrictOptions(props);
67
- const { contains } = i18n.useFilter({ sensitivity: "base" });
68
- const [showAllOptions, setShowAllOptions] = React__default.default.useState(false);
69
- const filteredOptions = React__default.default.useMemo(() => {
70
- if (!filterValue || filterValue.trim().length === 0) {
71
- return options;
46
+ var __objRest = (source, exclude) => {
47
+ var target = {};
48
+ for (var prop in source)
49
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
50
+ target[prop] = source[prop];
51
+ if (source != null && __getOwnPropSymbols)
52
+ for (var prop of __getOwnPropSymbols(source)) {
53
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
54
+ target[prop] = source[prop];
72
55
  }
73
- if (!options) {
74
- return options;
75
- }
76
- const filterOptions = (opts) => {
77
- return common.withoutNils(
78
- opts.map((op) => {
79
- if (op.type === "option-group") {
80
- return __spreadProps(__spreadValues({}, op), {
81
- items: op.items ? filterOptions(op.items) : void 0
82
- });
83
- } else {
84
- if (contains(optionText(op), filterValue)) {
85
- return op;
86
- } else {
87
- return void 0;
88
- }
89
- }
90
- })
91
- );
92
- };
93
- return filterOptions(options);
94
- }, [filterValue, options, contains, optionText]);
95
- const flattenedOptions = React__default.default.useMemo(
96
- () => registerListBox.flattenOptions(options),
97
- [options]
98
- );
99
- const disabledKeys = flattenedOptions.filter((op) => op.isDisabled).map((op) => op.id);
100
- const onSelectionChange = React__default.default.useCallback(
101
- (key) => {
102
- if (key === null) {
103
- return;
104
- }
105
- const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find((op) => op.id === key);
106
- if (valueType === "text") {
107
- if (selectedOption) {
108
- onChange == null ? void 0 : onChange(optionText(selectedOption));
109
- }
110
- } else {
111
- onChange == null ? void 0 : onChange(key);
112
- }
113
- if (selectedOption) {
114
- onFilterValueChange == null ? void 0 : onFilterValueChange(optionText(selectedOption));
115
- }
116
- },
117
- [flattenedOptions, valueType, onChange, optionText, onFilterValueChange]
118
- );
119
- const onInputValueChange = React__default.default.useCallback(
120
- (newValue) => {
121
- onFilterValueChange == null ? void 0 : onFilterValueChange(newValue);
122
- setShowAllOptions(false);
123
- if (valueType === "text") {
124
- if (allowsCustomValue) {
125
- onChange == null ? void 0 : onChange(newValue);
126
- } else {
127
- const matchingOption = flattenedOptions == null ? void 0 : flattenedOptions.find(
128
- (op) => optionText(op) === newValue
129
- );
130
- if (matchingOption) {
131
- onChange == null ? void 0 : onChange(optionText(matchingOption));
132
- }
133
- }
56
+ return target;
57
+ };
58
+ const COMBOBOX_NAME = utils.makeComponentName("combobox");
59
+ function BaseComboBox(props) {
60
+ const _a = props, { children, setControlContextData, isOpen } = _a, rest = __objRest(_a, ["children", "setControlContextData", "isOpen"]);
61
+ const idManager = React.useMemo(() => new registerListBox.ListBoxItemIdManager(), []);
62
+ React.useEffect(() => {
63
+ idManager.subscribe((ids) => {
64
+ setControlContextData == null ? void 0 : setControlContextData({
65
+ itemIds: ids
66
+ });
67
+ });
68
+ }, []);
69
+ return /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.ComboBox, __spreadValues({}, rest), /* @__PURE__ */ React__default.default.createElement(contexts.PlasmicPopoverContext.Provider, { value: { isOpen } }, /* @__PURE__ */ React__default.default.createElement(
70
+ contexts.PlasmicListBoxContext.Provider,
71
+ {
72
+ value: {
73
+ idManager
134
74
  }
135
75
  },
136
- [
137
- onFilterValueChange,
138
- onChange,
139
- flattenedOptions,
140
- optionText,
141
- valueType,
142
- allowsCustomValue
143
- ]
144
- );
145
- const onBlur = React__default.default.useCallback(() => {
146
- if (!allowsCustomValue) {
147
- const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find(
148
- (op) => valueType === "text" ? optionText(op) === value : op.id === value
149
- );
150
- if (selectedOption) {
151
- const selectedOptionText = optionText(selectedOption);
152
- if (selectedOptionText !== filterValue) {
153
- onFilterValueChange == null ? void 0 : onFilterValueChange(selectedOptionText);
154
- }
155
- }
156
- }
157
- }, [
158
- allowsCustomValue,
159
- flattenedOptions,
160
- valueType,
161
- optionText,
162
- value,
163
- filterValue,
164
- onFilterValueChange
165
- ]);
166
- return /* @__PURE__ */ React__default.default.createElement(
167
- reactAriaComponents.ComboBox,
168
- __spreadValues({
169
- selectedKey: value,
170
- onSelectionChange,
171
- isDisabled,
172
- className,
173
- style,
174
- items: showAllOptions ? options : filteredOptions,
175
- menuTrigger,
176
- inputValue: filterValue,
177
- onInputChange: onInputValueChange,
178
- allowsCustomValue,
179
- disabledKeys,
180
- onOpenChange: (isOpen, trigger) => {
181
- if (isOpen && trigger === "manual") {
182
- setShowAllOptions(true);
183
- } else {
184
- setShowAllOptions(false);
185
- }
186
- onOpenChange == null ? void 0 : onOpenChange(isOpen);
187
- },
188
- onBlur,
189
- formValue: valueType === "text" ? "text" : "key",
190
- name
191
- }, common.extractPlasmicDataProps(props)),
192
- /* @__PURE__ */ React__default.default.createElement(
193
- contexts.PlasmicListBoxContext.Provider,
194
- {
195
- value: {
196
- getItemType: (option) => option.type === "section" ? "section" : "item"
197
- }
198
- },
199
- /* @__PURE__ */ React__default.default.createElement(contexts.PlasmicInputContext.Provider, { value: { placeholder } }, structure)
200
- ),
201
- /* @__PURE__ */ React__default.default.createElement(BaseComboBoxEffects, { previewOpen })
202
- );
203
- }
204
- function BaseComboBoxEffects(props) {
205
- const { previewOpen } = props;
206
- const comboBoxState = React__default.default.useContext(reactAriaComponents.ComboBoxStateContext);
207
- const prevPreviewOpenRef = React__default.default.useRef(previewOpen);
208
- React__default.default.useEffect(() => {
209
- if (comboBoxState) {
210
- if (previewOpen) {
211
- comboBoxState.open(void 0, "manual");
212
- } else if (prevPreviewOpenRef.current) {
213
- comboBoxState.close();
214
- }
215
- }
216
- prevPreviewOpenRef.current = previewOpen;
217
- }, [previewOpen, comboBoxState, prevPreviewOpenRef]);
218
- return null;
76
+ children
77
+ )));
219
78
  }
220
79
  function registerComboBox(loader) {
221
- const rootName = common.makeComponentName("combobox");
222
- common.registerComponentHelper(loader, BaseComboBox, {
223
- name: rootName,
80
+ utils.registerComponentHelper(loader, BaseComboBox, {
81
+ name: COMBOBOX_NAME,
224
82
  displayName: "Aria ComboBox",
225
83
  importPath: "@plasmicpkgs/react-aria/skinny/registerComboBox",
226
84
  importName: "BaseComboBox",
227
- props: {
228
- options: registerListBox.makeOptionsPropType(),
229
- value: registerListBox.makeValuePropType(),
230
- onChange: {
231
- type: "eventHandler",
232
- argTypes: [{ name: "value", type: "string" }]
233
- },
234
- filterValue: {
235
- type: "string"
236
- },
237
- onFilterValueChange: {
238
- type: "eventHandler",
239
- argTypes: [{ name: "value", type: "string" }]
240
- },
241
- isDisabled: {
242
- type: "boolean"
243
- },
244
- valueType: {
245
- displayName: "`value` Type",
85
+ props: __spreadProps(__spreadValues({}, common.getCommonProps("ComboBox", [
86
+ "name",
87
+ "aria-label",
88
+ "placeholder",
89
+ "isDisabled"
90
+ ])), {
91
+ selectedKey: {
246
92
  type: "choice",
247
- options: [
248
- { value: "value", label: "By option value" },
249
- { value: "text", label: "By option text" }
250
- ],
251
- defaultValueHint: "value",
252
- description: "This controls whether `value` and `onChange` are option values or option text. Choosing `text` allows you to optionally allow a custom value that's not in the provided list of options.",
253
- advanced: true
93
+ description: "The selected keys of the listbox",
94
+ editOnly: true,
95
+ uncontrolledProp: "defaultSelectedKey",
96
+ displayName: "Initial selected key",
97
+ options: (_props, ctx) => (ctx == null ? void 0 : ctx.itemIds) ? Array.from(ctx.itemIds) : [],
98
+ // React Aria ComboBox do not support multiple comboBoxions yet
99
+ multiSelect: false
254
100
  },
255
- allowsCustomValue: {
101
+ isOpen: {
256
102
  type: "boolean",
257
- displayName: "Allows custom value?",
258
- description: "Allows entering a value that is not one of the options",
259
- hidden: (ps) => ps.valueType !== "text",
260
- advanced: true
103
+ defaultValue: false,
104
+ // It doesn't make sense to make isOpen prop editable (it's controlled by user interaction and always closed by default), so we keep this prop hidden. We have listed the prop here in the meta only so we can expose a writeable state for it.
105
+ hidden: () => true
106
+ },
107
+ onSelectionChange: {
108
+ type: "eventHandler",
109
+ argTypes: [{ name: "selectedKey", type: "string" }]
261
110
  },
262
111
  onOpenChange: {
263
112
  type: "eventHandler",
264
113
  argTypes: [{ name: "isOpen", type: "boolean" }]
265
114
  },
266
- structure: {
115
+ children: {
267
116
  type: "slot",
268
117
  defaultValue: [
269
118
  {
@@ -287,45 +136,24 @@ function registerComboBox(loader) {
287
136
  },
288
137
  {
289
138
  type: "hbox",
290
- styles: {
291
- width: "stretch",
292
- borderWidth: "1px",
293
- borderStyle: "solid",
294
- borderColor: "black",
295
- padding: 0,
296
- position: "relative"
297
- },
298
139
  children: [
299
140
  {
300
141
  type: "component",
301
142
  name: registerInput.INPUT_COMPONENT_NAME,
302
143
  styles: {
303
- borderWidth: 0,
304
- width: "100%",
305
- padding: "2px 30px 2px 10px"
144
+ width: "100%"
306
145
  }
307
146
  },
308
147
  {
309
148
  type: "component",
310
149
  name: registerButton.BUTTON_COMPONENT_NAME,
311
- styles: {
312
- borderWidth: 0,
313
- display: "flex",
314
- alignItems: "center",
315
- justifyContent: "center",
316
- position: "absolute",
317
- right: "10px",
318
- top: 0,
319
- padding: 0,
320
- height: "100%"
321
- },
322
150
  props: {
323
151
  children: {
324
152
  type: "img",
153
+ // TODO: Replace with the image of an arrow pointing up, like: https://icon-sets.iconify.design/mdi/triangle/
325
154
  src: "https://static1.plasmic.app/arrow-up.svg",
326
155
  styles: {
327
- height: "20px",
328
- width: "20px",
156
+ width: "15px",
329
157
  transform: "rotate(180deg)"
330
158
  }
331
159
  }
@@ -338,15 +166,18 @@ function registerComboBox(loader) {
338
166
  name: registerPopover.POPOVER_COMPONENT_NAME,
339
167
  styles: {
340
168
  backgroundColor: "white",
341
- width: "300px",
342
169
  padding: "10px",
343
170
  overflow: "scroll"
344
171
  },
345
172
  props: {
173
+ offset: 0,
346
174
  children: [
347
175
  {
348
176
  type: "component",
349
177
  name: registerListBox.LIST_BOX_COMPONENT_NAME,
178
+ props: {
179
+ selectionMode: "single"
180
+ },
350
181
  styles: {
351
182
  borderWidth: 0,
352
183
  width: "stretch"
@@ -358,29 +189,18 @@ function registerComboBox(loader) {
358
189
  ]
359
190
  }
360
191
  ]
361
- },
362
- previewOpen: {
363
- type: "boolean",
364
- displayName: "Preview opened?",
365
- description: "Preview opened state while designing in Plasmic editor",
366
- editOnly: true
367
192
  }
368
- },
193
+ }),
369
194
  states: {
370
- value: {
195
+ selectedKey: {
371
196
  type: "writable",
372
- valueProp: "value",
373
- onChangeProp: "onChange",
374
- variableType: "text"
375
- },
376
- filterValue: {
377
- type: "writable",
378
- valueProp: "filterValue",
379
- onChangeProp: "onFilterValueChange",
197
+ valueProp: "selectedKey",
198
+ onChangeProp: "onSelectionChange",
380
199
  variableType: "text"
381
200
  },
382
201
  isOpen: {
383
- type: "readonly",
202
+ type: "writable",
203
+ valueProp: "isOpen",
384
204
  onChangeProp: "onOpenChange",
385
205
  variableType: "boolean"
386
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registerComboBox.cjs.js","sources":["../src/registerComboBox.tsx"],"sourcesContent":["import { useFilter } from \"@react-aria/i18n\";\nimport React from \"react\";\nimport { ComboBox, ComboBoxStateContext, Key } from \"react-aria-components\";\nimport { PlasmicInputContext, PlasmicListBoxContext } from \"./contexts\";\nimport {\n flattenOptions,\n HasOptions,\n makeOptionsPropType,\n makeValuePropType,\n StrictItemType,\n StrictOptionType,\n useStrictOptions,\n} from \"./option-utils\";\nimport { BUTTON_COMPONENT_NAME } from \"./registerButton\";\nimport { INPUT_COMPONENT_NAME } from \"./registerInput\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport { LIST_BOX_COMPONENT_NAME } from \"./registerListBox\";\nimport { POPOVER_COMPONENT_NAME } from \"./registerPopover\";\nimport {\n extractPlasmicDataProps,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n Styleable,\n withoutNils,\n} from \"./utils\";\n\nexport interface BaseComboBoxProps<T extends object>\n extends HasOptions<T>,\n Styleable {\n placeholder?: string;\n isDisabled?: boolean;\n menuTrigger?: React.ComponentProps<typeof ComboBox>[\"menuTrigger\"];\n\n valueType?: \"value\" | \"text\";\n allowsCustomValue?: boolean;\n\n value?: Key;\n onChange?: (value: Key) => void;\n\n filterValue?: string;\n onFilterValueChange?: (value: string) => void;\n\n previewOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n structure?: React.ReactNode;\n\n name?: string;\n}\n\nexport function BaseComboBox<T extends object>(props: BaseComboBoxProps<T>) {\n const {\n value,\n onChange,\n menuTrigger,\n filterValue,\n onFilterValueChange,\n valueType,\n allowsCustomValue,\n placeholder,\n previewOpen,\n onOpenChange,\n isDisabled,\n className,\n style,\n structure,\n name,\n } = props;\n const { options, optionText } = useStrictOptions(props);\n const { contains } = useFilter({ sensitivity: \"base\" });\n const [showAllOptions, setShowAllOptions] = React.useState(false);\n\n const filteredOptions = React.useMemo(() => {\n if (!filterValue || filterValue.trim().length === 0) {\n return options;\n }\n if (!options) {\n return options;\n }\n const filterOptions = (\n opts: StrictOptionType[]\n ): StrictOptionType[] | undefined => {\n return withoutNils(\n opts.map((op) => {\n if (op.type === \"option-group\") {\n return {\n ...op,\n items: op.items\n ? (filterOptions(op.items) as StrictItemType[])\n : undefined,\n };\n } else {\n if (contains(optionText(op), filterValue)) {\n return op;\n } else {\n return undefined;\n }\n }\n })\n );\n };\n return filterOptions(options);\n }, [filterValue, options, contains, optionText]);\n\n const flattenedOptions = React.useMemo(\n () => flattenOptions(options),\n [options]\n );\n\n const disabledKeys = flattenedOptions\n .filter((op) => op.isDisabled)\n .map((op) => op.id);\n\n const onSelectionChange = React.useCallback(\n (key: Key | null) => {\n if (key === null) {\n return;\n }\n\n const selectedOption = flattenedOptions?.find((op) => op.id === key);\n if (valueType === \"text\") {\n if (selectedOption) {\n onChange?.(optionText(selectedOption));\n }\n } else {\n onChange?.(key);\n }\n if (selectedOption) {\n onFilterValueChange?.(optionText(selectedOption));\n }\n },\n [flattenedOptions, valueType, onChange, optionText, onFilterValueChange]\n );\n\n const onInputValueChange = React.useCallback(\n (newValue: string) => {\n onFilterValueChange?.(newValue);\n setShowAllOptions(false);\n if (valueType === \"text\") {\n if (allowsCustomValue) {\n onChange?.(newValue);\n } else {\n const matchingOption = flattenedOptions?.find(\n (op) => optionText(op) === newValue\n );\n if (matchingOption) {\n onChange?.(optionText(matchingOption));\n }\n }\n }\n },\n [\n onFilterValueChange,\n onChange,\n flattenedOptions,\n optionText,\n valueType,\n allowsCustomValue,\n ]\n );\n\n const onBlur = React.useCallback(() => {\n // If we don't allow custom value, then on blur, reset the filter value\n // to the selected option\n if (!allowsCustomValue) {\n const selectedOption = flattenedOptions?.find((op) =>\n valueType === \"text\" ? optionText(op) === value : op.id === value\n );\n if (selectedOption) {\n const selectedOptionText = optionText(selectedOption);\n if (selectedOptionText !== filterValue) {\n onFilterValueChange?.(selectedOptionText);\n }\n }\n }\n }, [\n allowsCustomValue,\n flattenedOptions,\n valueType,\n optionText,\n value,\n filterValue,\n onFilterValueChange,\n ]);\n\n return (\n <ComboBox\n selectedKey={value}\n onSelectionChange={onSelectionChange}\n isDisabled={isDisabled}\n className={className}\n style={style}\n items={showAllOptions ? options : filteredOptions}\n menuTrigger={menuTrigger}\n inputValue={filterValue}\n onInputChange={onInputValueChange}\n allowsCustomValue={allowsCustomValue}\n disabledKeys={disabledKeys}\n onOpenChange={(isOpen, trigger) => {\n if (isOpen && trigger === \"manual\") {\n setShowAllOptions(true);\n } else {\n setShowAllOptions(false);\n }\n onOpenChange?.(isOpen);\n }}\n onBlur={onBlur}\n formValue={valueType === \"text\" ? \"text\" : \"key\"}\n name={name}\n {...extractPlasmicDataProps(props)}\n >\n <PlasmicListBoxContext.Provider\n value={{\n getItemType: (option) =>\n option.type === \"section\" ? \"section\" : \"item\",\n }}\n >\n <PlasmicInputContext.Provider value={{ placeholder }}>\n {structure}\n </PlasmicInputContext.Provider>\n </PlasmicListBoxContext.Provider>\n <BaseComboBoxEffects previewOpen={previewOpen} />\n </ComboBox>\n );\n}\n\nfunction BaseComboBoxEffects(\n props: Pick<BaseComboBoxProps<any>, \"previewOpen\">\n) {\n const { previewOpen } = props;\n const comboBoxState = React.useContext(ComboBoxStateContext);\n\n const prevPreviewOpenRef = React.useRef(previewOpen);\n React.useEffect(() => {\n // comboBoxState can be undefined if we are in `<Hidden/>`\n if (comboBoxState) {\n // There's no \"isOpen\" controlled state for ComboBox, so we use\n // sync comboBoxState with previewOpen prop instead\n if (previewOpen) {\n comboBoxState.open(undefined, \"manual\");\n } else if (prevPreviewOpenRef.current) {\n // Was previously previewOpen, now preview close\n comboBoxState.close();\n }\n }\n prevPreviewOpenRef.current = previewOpen;\n }, [previewOpen, comboBoxState, prevPreviewOpenRef]);\n\n return null;\n}\n\nexport function registerComboBox(loader?: Registerable) {\n const rootName = makeComponentName(\"combobox\");\n\n registerComponentHelper(loader, BaseComboBox, {\n name: rootName,\n displayName: \"Aria ComboBox\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerComboBox\",\n importName: \"BaseComboBox\",\n props: {\n options: makeOptionsPropType(),\n value: makeValuePropType(),\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"string\" }],\n },\n filterValue: {\n type: \"string\",\n },\n onFilterValueChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"string\" }],\n },\n isDisabled: {\n type: \"boolean\",\n },\n valueType: {\n displayName: \"`value` Type\",\n type: \"choice\",\n options: [\n { value: \"value\", label: \"By option value\" },\n { value: \"text\", label: \"By option text\" },\n ],\n defaultValueHint: \"value\",\n description:\n \"This controls whether `value` and `onChange` are option values or option text. Choosing `text` allows you to optionally allow a custom value that's not in the provided list of options.\",\n advanced: true,\n },\n allowsCustomValue: {\n type: \"boolean\",\n displayName: \"Allows custom value?\",\n description: \"Allows entering a value that is not one of the options\",\n hidden: (ps) => ps.valueType !== \"text\",\n advanced: true,\n },\n onOpenChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isOpen\", type: \"boolean\" }],\n },\n structure: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"vbox\",\n styles: {\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"300px\",\n padding: 0,\n },\n children: [\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Label\",\n },\n },\n },\n {\n type: \"hbox\",\n styles: {\n width: \"stretch\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n padding: 0,\n position: \"relative\",\n },\n children: [\n {\n type: \"component\",\n name: INPUT_COMPONENT_NAME,\n styles: {\n borderWidth: 0,\n width: \"100%\",\n padding: \"2px 30px 2px 10px\",\n },\n },\n {\n type: \"component\",\n name: BUTTON_COMPONENT_NAME,\n styles: {\n borderWidth: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"absolute\",\n right: \"10px\",\n top: 0,\n padding: 0,\n height: \"100%\",\n },\n props: {\n children: {\n type: \"img\",\n src: \"https://static1.plasmic.app/arrow-up.svg\",\n styles: {\n height: \"20px\",\n width: \"20px\",\n transform: \"rotate(180deg)\",\n },\n },\n },\n },\n ],\n },\n {\n type: \"component\",\n name: POPOVER_COMPONENT_NAME,\n styles: {\n backgroundColor: \"white\",\n width: \"300px\",\n padding: \"10px\",\n overflow: \"scroll\",\n },\n props: {\n children: [\n {\n type: \"component\",\n name: LIST_BOX_COMPONENT_NAME,\n styles: {\n borderWidth: 0,\n width: \"stretch\",\n },\n },\n ],\n },\n },\n ],\n },\n ],\n },\n previewOpen: {\n type: \"boolean\",\n displayName: \"Preview opened?\",\n description: \"Preview opened state while designing in Plasmic editor\",\n editOnly: true,\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n filterValue: {\n type: \"writable\",\n valueProp: \"filterValue\",\n onChangeProp: \"onFilterValueChange\",\n variableType: \"text\",\n },\n isOpen: {\n type: \"readonly\",\n onChangeProp: \"onOpenChange\",\n variableType: \"boolean\",\n },\n },\n });\n}\n"],"names":["useStrictOptions","useFilter","React","withoutNils","flattenOptions","ComboBox","extractPlasmicDataProps","PlasmicListBoxContext","PlasmicInputContext","ComboBoxStateContext","makeComponentName","registerComponentHelper","makeOptionsPropType","makeValuePropType","LABEL_COMPONENT_NAME","INPUT_COMPONENT_NAME","BUTTON_COMPONENT_NAME","POPOVER_COMPONENT_NAME","LIST_BOX_COMPONENT_NAME"],"mappings":"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"}
1
+ {"version":3,"file":"registerComboBox.cjs.js","sources":["../src/registerComboBox.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { ComboBox, ComboBoxProps } from \"react-aria-components\";\nimport { getCommonProps } from \"./common\";\nimport { PlasmicListBoxContext, PlasmicPopoverContext } from \"./contexts\";\nimport { ListBoxItemIdManager } from \"./ListBoxItemIdManager\";\nimport { BUTTON_COMPONENT_NAME } from \"./registerButton\";\nimport { INPUT_COMPONENT_NAME } from \"./registerInput\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport { LIST_BOX_COMPONENT_NAME } from \"./registerListBox\";\nimport { POPOVER_COMPONENT_NAME } from \"./registerPopover\";\nimport {\n HasControlContextData,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\n\nconst COMBOBOX_NAME = makeComponentName(\"combobox\");\n\nexport interface BaseComboboxControlContextData {\n itemIds: string[];\n}\n\nexport interface BaseComboboxProps\n extends ComboBoxProps<{}>,\n HasControlContextData<BaseComboboxControlContextData> {\n placeholder?: string;\n children?: React.ReactNode;\n isOpen?: boolean;\n}\n\nexport function BaseComboBox(props: BaseComboboxProps) {\n const { children, setControlContextData, isOpen, ...rest } = props;\n\n const idManager = useMemo(() => new ListBoxItemIdManager(), []);\n\n useEffect(() => {\n idManager.subscribe((ids: string[]) => {\n setControlContextData?.({\n itemIds: ids,\n });\n });\n }, []);\n\n return (\n <ComboBox {...rest}>\n <PlasmicPopoverContext.Provider value={{ isOpen }}>\n <PlasmicListBoxContext.Provider\n value={{\n idManager,\n }}\n >\n {children}\n </PlasmicListBoxContext.Provider>\n </PlasmicPopoverContext.Provider>\n </ComboBox>\n );\n}\n\nexport function registerComboBox(loader?: Registerable) {\n registerComponentHelper(loader, BaseComboBox, {\n name: COMBOBOX_NAME,\n displayName: \"Aria ComboBox\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerComboBox\",\n importName: \"BaseComboBox\",\n props: {\n ...getCommonProps<BaseComboboxProps>(\"ComboBox\", [\n \"name\",\n \"aria-label\",\n \"placeholder\",\n \"isDisabled\",\n ]),\n selectedKey: {\n type: \"choice\",\n description: \"The selected keys of the listbox\",\n editOnly: true,\n uncontrolledProp: \"defaultSelectedKey\",\n displayName: \"Initial selected key\",\n options: (\n _props: BaseComboboxProps,\n ctx: BaseComboboxControlContextData | null\n ) => (ctx?.itemIds ? Array.from(ctx.itemIds) : []),\n // React Aria ComboBox do not support multiple comboBoxions yet\n multiSelect: false,\n },\n isOpen: {\n type: \"boolean\",\n defaultValue: false,\n // It doesn't make sense to make isOpen prop editable (it's controlled by user interaction and always closed by default), so we keep this prop hidden. We have listed the prop here in the meta only so we can expose a writeable state for it.\n hidden: () => true,\n },\n onSelectionChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"selectedKey\", type: \"string\" }],\n },\n onOpenChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isOpen\", type: \"boolean\" }],\n },\n\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"vbox\",\n styles: {\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"300px\",\n padding: 0,\n },\n children: [\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Label\",\n },\n },\n },\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: INPUT_COMPONENT_NAME,\n styles: {\n width: \"100%\",\n },\n },\n {\n type: \"component\",\n name: BUTTON_COMPONENT_NAME,\n props: {\n children: {\n type: \"img\",\n // TODO: Replace with the image of an arrow pointing up, like: https://icon-sets.iconify.design/mdi/triangle/\n src: \"https://static1.plasmic.app/arrow-up.svg\",\n styles: {\n width: \"15px\",\n transform: \"rotate(180deg)\",\n },\n },\n },\n },\n ],\n },\n {\n type: \"component\",\n name: POPOVER_COMPONENT_NAME,\n styles: {\n backgroundColor: \"white\",\n padding: \"10px\",\n overflow: \"scroll\",\n },\n props: {\n offset: 0,\n children: [\n {\n type: \"component\",\n name: LIST_BOX_COMPONENT_NAME,\n props: {\n selectionMode: \"single\",\n },\n styles: {\n borderWidth: 0,\n width: \"stretch\",\n },\n },\n ],\n },\n },\n ],\n },\n ],\n },\n },\n states: {\n selectedKey: {\n type: \"writable\",\n valueProp: \"selectedKey\",\n onChangeProp: \"onSelectionChange\",\n variableType: \"text\",\n },\n isOpen: {\n type: \"writable\",\n valueProp: \"isOpen\",\n onChangeProp: \"onOpenChange\",\n variableType: \"boolean\",\n },\n },\n });\n}\n"],"names":["makeComponentName","useMemo","ListBoxItemIdManager","useEffect","React","ComboBox","PlasmicPopoverContext","PlasmicListBoxContext","registerComponentHelper","getCommonProps","LABEL_COMPONENT_NAME","INPUT_COMPONENT_NAME","BUTTON_COMPONENT_NAME","POPOVER_COMPONENT_NAME","LIST_BOX_COMPONENT_NAME"],"mappings":"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"}
@@ -1,21 +1,13 @@
1
1
  import React from "react";
2
- import { ComboBox, Key } from "react-aria-components";
3
- import { HasOptions } from "./option-utils";
4
- import { Registerable, Styleable } from "./utils";
5
- export interface BaseComboBoxProps<T extends object> extends HasOptions<T>, Styleable {
2
+ import { ComboBoxProps } from "react-aria-components";
3
+ import { HasControlContextData, Registerable } from "./utils";
4
+ export interface BaseComboboxControlContextData {
5
+ itemIds: string[];
6
+ }
7
+ export interface BaseComboboxProps extends ComboBoxProps<{}>, HasControlContextData<BaseComboboxControlContextData> {
6
8
  placeholder?: string;
7
- isDisabled?: boolean;
8
- menuTrigger?: React.ComponentProps<typeof ComboBox>["menuTrigger"];
9
- valueType?: "value" | "text";
10
- allowsCustomValue?: boolean;
11
- value?: Key;
12
- onChange?: (value: Key) => void;
13
- filterValue?: string;
14
- onFilterValueChange?: (value: string) => void;
15
- previewOpen?: boolean;
16
- onOpenChange?: (open: boolean) => void;
17
- structure?: React.ReactNode;
18
- name?: string;
9
+ children?: React.ReactNode;
10
+ isOpen?: boolean;
19
11
  }
20
- export declare function BaseComboBox<T extends object>(props: BaseComboBoxProps<T>): React.JSX.Element;
12
+ export declare function BaseComboBox(props: BaseComboboxProps): React.JSX.Element;
21
13
  export declare function registerComboBox(loader?: Registerable): void;