@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/ListBoxItemIdManager.d.ts +13 -0
- package/dist/common.d.ts +0 -2
- package/dist/contexts.d.ts +4 -5
- package/dist/react-aria.esm.js +711 -843
- package/dist/react-aria.esm.js.map +1 -1
- package/dist/react-aria.js +709 -841
- package/dist/react-aria.js.map +1 -1
- package/dist/registerComboBox.d.ts +9 -17
- package/dist/registerListBox.d.ts +16 -6
- package/dist/registerListBoxItem.d.ts +13 -3
- package/dist/registerSection.d.ts +2 -4
- package/dist/registerSelect.d.ts +9 -18
- package/package.json +2 -2
- package/skinny/ListBoxItemIdManager.d.ts +13 -0
- package/skinny/{common-fa69e9b3.esm.js → common-8ca74873.esm.js} +4 -72
- package/skinny/common-8ca74873.esm.js.map +1 -0
- package/skinny/{common-bfedaf7d.cjs.js → common-c892c339.cjs.js} +4 -82
- package/skinny/common-c892c339.cjs.js.map +1 -0
- package/skinny/common.d.ts +0 -2
- package/skinny/contexts-0a2977d8.esm.js +15 -0
- package/skinny/contexts-0a2977d8.esm.js.map +1 -0
- package/skinny/{contexts-0dec6156.cjs.js → contexts-c26d68f8.cjs.js} +3 -9
- package/skinny/contexts-c26d68f8.cjs.js.map +1 -0
- package/skinny/contexts.d.ts +4 -5
- package/skinny/{interaction-variant-utils-abd0c319.esm.js → interaction-variant-utils-1d94d073.esm.js} +2 -2
- package/skinny/interaction-variant-utils-1d94d073.esm.js.map +1 -0
- package/skinny/{interaction-variant-utils-36f1b397.cjs.js → interaction-variant-utils-9a869063.cjs.js} +2 -2
- package/skinny/interaction-variant-utils-9a869063.cjs.js.map +1 -0
- package/skinny/registerButton.cjs.js +5 -4
- package/skinny/registerButton.cjs.js.map +1 -1
- package/skinny/registerButton.esm.js +3 -2
- package/skinny/registerButton.esm.js.map +1 -1
- package/skinny/registerCheckbox.cjs.js +6 -5
- package/skinny/registerCheckbox.cjs.js.map +1 -1
- package/skinny/registerCheckbox.esm.js +4 -3
- package/skinny/registerCheckbox.esm.js.map +1 -1
- package/skinny/registerCheckboxGroup.cjs.js +8 -7
- package/skinny/registerCheckboxGroup.cjs.js.map +1 -1
- package/skinny/registerCheckboxGroup.esm.js +5 -4
- package/skinny/registerCheckboxGroup.esm.js.map +1 -1
- package/skinny/registerComboBox.cjs.js +73 -253
- package/skinny/registerComboBox.cjs.js.map +1 -1
- package/skinny/registerComboBox.d.ts +9 -17
- package/skinny/registerComboBox.esm.js +74 -254
- package/skinny/registerComboBox.esm.js.map +1 -1
- package/skinny/registerDescription.cjs.js +2 -2
- package/skinny/registerDescription.cjs.js.map +1 -1
- package/skinny/registerDescription.esm.js +1 -1
- package/skinny/registerDialogTrigger.cjs.js +6 -5
- package/skinny/registerDialogTrigger.cjs.js.map +1 -1
- package/skinny/registerDialogTrigger.esm.js +4 -3
- package/skinny/registerDialogTrigger.esm.js.map +1 -1
- package/skinny/registerFieldError.cjs.js +3 -3
- package/skinny/registerFieldError.cjs.js.map +1 -1
- package/skinny/registerFieldError.esm.js +1 -1
- package/skinny/registerForm.cjs.js +3 -3
- package/skinny/registerForm.cjs.js.map +1 -1
- package/skinny/registerForm.esm.js +1 -1
- package/skinny/registerInput.cjs.js +7 -6
- package/skinny/registerInput.cjs.js.map +1 -1
- package/skinny/registerInput.esm.js +5 -4
- package/skinny/registerInput.esm.js.map +1 -1
- package/skinny/registerLabel.cjs.js +3 -3
- package/skinny/registerLabel.cjs.js.map +1 -1
- package/skinny/registerLabel.esm.js +1 -1
- package/skinny/registerListBox-85f61377.esm.js +321 -0
- package/skinny/registerListBox-85f61377.esm.js.map +1 -0
- package/skinny/registerListBox-96ae5783.cjs.js +331 -0
- package/skinny/registerListBox-96ae5783.cjs.js.map +1 -0
- package/skinny/registerListBox.cjs.js +7 -7
- package/skinny/registerListBox.d.ts +16 -6
- package/skinny/registerListBox.esm.js +6 -7
- package/skinny/registerListBox.esm.js.map +1 -1
- package/skinny/registerListBoxItem.cjs.js +96 -13
- package/skinny/registerListBoxItem.cjs.js.map +1 -1
- package/skinny/registerListBoxItem.d.ts +13 -3
- package/skinny/registerListBoxItem.esm.js +95 -12
- package/skinny/registerListBoxItem.esm.js.map +1 -1
- package/skinny/registerModal.cjs.js +5 -4
- package/skinny/registerModal.cjs.js.map +1 -1
- package/skinny/registerModal.esm.js +3 -2
- package/skinny/registerModal.esm.js.map +1 -1
- package/skinny/registerPopover.cjs.js +5 -6
- package/skinny/registerPopover.cjs.js.map +1 -1
- package/skinny/registerPopover.esm.js +3 -4
- package/skinny/registerPopover.esm.js.map +1 -1
- package/skinny/registerRadio.cjs.js +6 -5
- package/skinny/registerRadio.cjs.js.map +1 -1
- package/skinny/registerRadio.esm.js +4 -3
- package/skinny/registerRadio.esm.js.map +1 -1
- package/skinny/registerRadioGroup.cjs.js +8 -7
- package/skinny/registerRadioGroup.cjs.js.map +1 -1
- package/skinny/registerRadioGroup.esm.js +5 -4
- package/skinny/registerRadioGroup.esm.js.map +1 -1
- package/skinny/registerSection.cjs.js +30 -25
- package/skinny/registerSection.cjs.js.map +1 -1
- package/skinny/registerSection.d.ts +2 -4
- package/skinny/registerSection.esm.js +29 -24
- package/skinny/registerSection.esm.js.map +1 -1
- package/skinny/registerSelect.cjs.js +65 -88
- package/skinny/registerSelect.cjs.js.map +1 -1
- package/skinny/registerSelect.d.ts +9 -18
- package/skinny/registerSelect.esm.js +61 -84
- package/skinny/registerSelect.esm.js.map +1 -1
- package/skinny/registerSlider.cjs.js +9 -9
- package/skinny/registerSlider.cjs.js.map +1 -1
- package/skinny/registerSlider.esm.js +5 -5
- package/skinny/registerSliderOutput.cjs.js +4 -4
- package/skinny/registerSliderOutput.cjs.js.map +1 -1
- package/skinny/registerSliderOutput.esm.js +2 -2
- package/skinny/registerSliderThumb.cjs.js +23 -7
- package/skinny/registerSliderThumb.cjs.js.map +1 -1
- package/skinny/registerSliderThumb.esm.js +21 -5
- package/skinny/registerSliderThumb.esm.js.map +1 -1
- package/skinny/registerSliderTrack.cjs.js +7 -7
- package/skinny/registerSliderTrack.cjs.js.map +1 -1
- package/skinny/registerSliderTrack.esm.js +3 -3
- package/skinny/registerSwitch.cjs.js +6 -5
- package/skinny/registerSwitch.cjs.js.map +1 -1
- package/skinny/registerSwitch.esm.js +4 -3
- package/skinny/registerSwitch.esm.js.map +1 -1
- package/skinny/registerText.cjs.js +3 -3
- package/skinny/registerText.cjs.js.map +1 -1
- package/skinny/registerText.esm.js +1 -1
- package/skinny/registerTextArea.cjs.js +6 -5
- package/skinny/registerTextArea.cjs.js.map +1 -1
- package/skinny/registerTextArea.esm.js +4 -3
- package/skinny/registerTextArea.esm.js.map +1 -1
- package/skinny/registerTextField.cjs.js +8 -7
- package/skinny/registerTextField.cjs.js.map +1 -1
- package/skinny/registerTextField.esm.js +5 -4
- package/skinny/registerTextField.esm.js.map +1 -1
- package/skinny/registerTooltip.cjs.js +2 -2
- package/skinny/registerTooltip.cjs.js.map +1 -1
- package/skinny/registerTooltip.esm.js +1 -1
- package/skinny/utils-8dbb4d1f.cjs.js +79 -0
- package/skinny/utils-8dbb4d1f.cjs.js.map +1 -0
- package/skinny/utils-c7662a47.esm.js +69 -0
- package/skinny/utils-c7662a47.esm.js.map +1 -0
- package/dist/option-utils.d.ts +0 -42
- package/dist/registerHeader.d.ts +0 -5
- package/skinny/ErrorBoundary-c6b111d3.esm.js +0 -20
- package/skinny/ErrorBoundary-c6b111d3.esm.js.map +0 -1
- package/skinny/ErrorBoundary-e9b86248.cjs.js +0 -22
- package/skinny/ErrorBoundary-e9b86248.cjs.js.map +0 -1
- package/skinny/common-bfedaf7d.cjs.js.map +0 -1
- package/skinny/common-fa69e9b3.esm.js.map +0 -1
- package/skinny/contexts-0dec6156.cjs.js.map +0 -1
- package/skinny/contexts-9a8234bf.esm.js +0 -17
- package/skinny/contexts-9a8234bf.esm.js.map +0 -1
- package/skinny/interaction-variant-utils-36f1b397.cjs.js.map +0 -1
- package/skinny/interaction-variant-utils-abd0c319.esm.js.map +0 -1
- package/skinny/option-utils.d.ts +0 -42
- package/skinny/registerHeader.cjs.js +0 -55
- package/skinny/registerHeader.cjs.js.map +0 -1
- package/skinny/registerHeader.d.ts +0 -5
- package/skinny/registerHeader.esm.js +0 -48
- package/skinny/registerHeader.esm.js.map +0 -1
- package/skinny/registerListBox-b3f2891a.esm.js +0 -298
- package/skinny/registerListBox-b3f2891a.esm.js.map +0 -1
- package/skinny/registerListBox-f4801dbd.cjs.js +0 -310
- package/skinny/registerListBox-f4801dbd.cjs.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerListBox-85f61377.esm.js","sources":["../src/ListBoxItemIdManager.ts","../src/registerListBox.tsx"],"sourcesContent":["type Observer = (ids: string[]) => void;\n\nexport class ListBoxItemIdManager {\n private readonly _ids: Set<string> = new Set();\n private readonly _observers: Set<Observer> = new Set();\n\n private generateDuplicateId(id: string, count = 1): string {\n const dupId = `${id} duplicate(${count})`;\n if (this._ids.has(dupId)) {\n return this.generateDuplicateId(id, count + 1);\n } else {\n return dupId;\n }\n }\n\n private generateMissingId(count = 1): string {\n const missingId = `missing(${count})`;\n if (this._ids.has(missingId)) {\n return this.generateMissingId(count + 1);\n } else {\n return missingId;\n }\n }\n\n register(id?: string): string {\n let newId: string;\n if (!id) {\n // No id is provided, so generate one\n newId = this.generateMissingId();\n } else if (this._ids.has(id)) {\n // The provided id is already registered with another uuid (i.e. it's not unique), so just generate a new one\n newId = this.generateDuplicateId(id);\n } else {\n // The provided id is not already registered, so use it\n newId = id;\n }\n\n this._ids.add(newId);\n this.notify();\n return newId;\n }\n\n unregister(id: string) {\n this._ids.delete(id);\n this.notify();\n }\n\n subscribe(observer: Observer) {\n this._observers.add(observer);\n }\n\n // Notify all observers about an event.\n notify() {\n this._observers.forEach((observer) => observer(this.ids));\n }\n\n get ids(): string[] {\n return Array.from(this._ids);\n }\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { Key, ListBox } from \"react-aria-components\";\nimport { PlasmicListBoxContext } from \"./contexts\";\nimport { ListBoxItemIdManager } from \"./ListBoxItemIdManager\";\nimport {\n makeDefaultListBoxItemChildren,\n registerListBoxItem,\n} from \"./registerListBoxItem\";\nimport { registerSection } from \"./registerSection\";\nimport {\n CodeComponentMetaOverrides,\n HasControlContextData,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\n\nexport interface BaseListBoxControlContextData {\n itemIds: string[];\n isStandalone: boolean;\n}\n\nexport interface BaseListBoxProps\n extends Omit<\n React.ComponentProps<typeof ListBox>,\n \"selectedKeys\" | \"defaultSelectedKeys\"\n >,\n HasControlContextData<BaseListBoxControlContextData> {\n children?: React.ReactNode;\n selectedKeys?: string | string[] | undefined;\n defaultSelectedKeys?: string | string[] | undefined;\n}\n\nexport const listboxHelpers = {\n states: {\n selectedKey: {\n onChangeArgsToValue: (value: Set<Key> | string[] | string) => {\n // only single selection is supported\n return Array.from(value)[0];\n },\n },\n },\n};\n\nfunction normalizeSelectedKeys(selectedKeys: string | string[] | undefined) {\n // Listbox expects it to be of type \"all\" | Iterable\n return typeof selectedKeys === \"string\" && selectedKeys !== \"all\"\n ? [selectedKeys]\n : selectedKeys;\n}\n\nexport function BaseListBox(props: BaseListBoxProps) {\n const {\n setControlContextData: setControlContextData,\n children,\n selectedKeys,\n defaultSelectedKeys,\n ...rest\n } = props;\n const context = React.useContext(PlasmicListBoxContext);\n const isStandalone = !context;\n const [ids, setIds] = useState<string[]>([]);\n\n const idManager = useMemo(\n () => context?.idManager ?? new ListBoxItemIdManager(),\n []\n );\n\n useEffect(() => {\n setControlContextData?.({\n itemIds: ids,\n isStandalone,\n });\n }, [ids, isStandalone]);\n\n useEffect(() => {\n idManager.subscribe((_ids: string[]) => {\n setIds(_ids);\n });\n }, []);\n\n const listbox = (\n <ListBox\n selectedKeys={normalizeSelectedKeys(selectedKeys)}\n defaultSelectedKeys={normalizeSelectedKeys(defaultSelectedKeys)}\n {...rest}\n >\n {children}\n </ListBox>\n );\n\n if (isStandalone) {\n return (\n <PlasmicListBoxContext.Provider\n value={{\n idManager,\n }}\n >\n {listbox}\n </PlasmicListBoxContext.Provider>\n );\n }\n\n return listbox;\n}\n\nexport const LIST_BOX_COMPONENT_NAME = makeComponentName(\"listbox\");\n\nexport function registerListBox(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseListBox>\n) {\n const listBoxItemMeta = registerListBoxItem(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n });\n const sectionMeta = registerSection(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n props: {\n items: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-1\",\n textValue: \"Section1-Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-2\",\n textValue: \"Section1-Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-3\",\n textValue: \"Section1-Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n ],\n },\n },\n });\n\n registerComponentHelper(\n loader,\n BaseListBox,\n {\n name: LIST_BOX_COMPONENT_NAME,\n displayName: \"Aria ListBox\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n importName: \"BaseListBox\",\n defaultStyles: {\n width: \"250px\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n },\n props: {\n children: {\n type: \"slot\",\n displayName: \"List Items\",\n allowedComponents: [listBoxItemMeta.name, sectionMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"1\",\n textValue: \"Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"2\",\n textValue: \"Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"3\",\n textValue: \"Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: sectionMeta.name,\n },\n ],\n },\n selectionMode: {\n type: \"choice\",\n description: \"The selection mode of the listbox\",\n options: [\"none\", \"single\"],\n defaultValue: \"none\",\n hidden: (_props, ctx) => !ctx?.isStandalone,\n },\n selectedKeys: {\n type: \"choice\",\n description: \"The selected keys of the listbox\",\n editOnly: true,\n uncontrolledProp: \"defaultSelectedKeys\",\n displayName: \"Initial selected key\",\n options: (_props, ctx) =>\n ctx?.itemIds ? Array.from(ctx.itemIds) : [],\n hidden: (props, ctx) =>\n !ctx?.isStandalone || props.selectionMode === \"none\",\n // We do not support multiple selections yet (Because React Aria select and combobox only support single selections).\n multiSelect: false,\n },\n onSelectionChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"itemIds\", type: \"object\" }],\n },\n },\n states: {\n selectedKey: {\n type: \"writable\",\n valueProp: \"selectedKeys\",\n onChangeProp: \"onSelectionChange\",\n variableType: \"text\",\n ...listboxHelpers.states.selectedKey,\n },\n },\n componentHelpers: {\n helpers: listboxHelpers,\n importName: \"listboxHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["_a"],"mappings":"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"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var reactAriaComponents = require('react-aria-components');
|
|
5
|
+
var contexts = require('./contexts-c26d68f8.cjs.js');
|
|
6
|
+
var registerListBoxItem = require('./registerListBoxItem.cjs.js');
|
|
7
|
+
var registerSection = require('./registerSection.cjs.js');
|
|
8
|
+
var utils = require('./utils-8dbb4d1f.cjs.js');
|
|
9
|
+
|
|
10
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
13
|
+
|
|
14
|
+
class ListBoxItemIdManager {
|
|
15
|
+
constructor() {
|
|
16
|
+
this._ids = /* @__PURE__ */ new Set();
|
|
17
|
+
this._observers = /* @__PURE__ */ new Set();
|
|
18
|
+
}
|
|
19
|
+
generateDuplicateId(id, count = 1) {
|
|
20
|
+
const dupId = `${id} duplicate(${count})`;
|
|
21
|
+
if (this._ids.has(dupId)) {
|
|
22
|
+
return this.generateDuplicateId(id, count + 1);
|
|
23
|
+
} else {
|
|
24
|
+
return dupId;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
generateMissingId(count = 1) {
|
|
28
|
+
const missingId = `missing(${count})`;
|
|
29
|
+
if (this._ids.has(missingId)) {
|
|
30
|
+
return this.generateMissingId(count + 1);
|
|
31
|
+
} else {
|
|
32
|
+
return missingId;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
register(id) {
|
|
36
|
+
let newId;
|
|
37
|
+
if (!id) {
|
|
38
|
+
newId = this.generateMissingId();
|
|
39
|
+
} else if (this._ids.has(id)) {
|
|
40
|
+
newId = this.generateDuplicateId(id);
|
|
41
|
+
} else {
|
|
42
|
+
newId = id;
|
|
43
|
+
}
|
|
44
|
+
this._ids.add(newId);
|
|
45
|
+
this.notify();
|
|
46
|
+
return newId;
|
|
47
|
+
}
|
|
48
|
+
unregister(id) {
|
|
49
|
+
this._ids.delete(id);
|
|
50
|
+
this.notify();
|
|
51
|
+
}
|
|
52
|
+
subscribe(observer) {
|
|
53
|
+
this._observers.add(observer);
|
|
54
|
+
}
|
|
55
|
+
// Notify all observers about an event.
|
|
56
|
+
notify() {
|
|
57
|
+
this._observers.forEach((observer) => observer(this.ids));
|
|
58
|
+
}
|
|
59
|
+
get ids() {
|
|
60
|
+
return Array.from(this._ids);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
var __defProp = Object.defineProperty;
|
|
65
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
66
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
67
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
68
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
69
|
+
var __spreadValues = (a, b) => {
|
|
70
|
+
for (var prop in b || (b = {}))
|
|
71
|
+
if (__hasOwnProp.call(b, prop))
|
|
72
|
+
__defNormalProp(a, prop, b[prop]);
|
|
73
|
+
if (__getOwnPropSymbols)
|
|
74
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
75
|
+
if (__propIsEnum.call(b, prop))
|
|
76
|
+
__defNormalProp(a, prop, b[prop]);
|
|
77
|
+
}
|
|
78
|
+
return a;
|
|
79
|
+
};
|
|
80
|
+
var __objRest = (source, exclude) => {
|
|
81
|
+
var target = {};
|
|
82
|
+
for (var prop in source)
|
|
83
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
84
|
+
target[prop] = source[prop];
|
|
85
|
+
if (source != null && __getOwnPropSymbols)
|
|
86
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
87
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
88
|
+
target[prop] = source[prop];
|
|
89
|
+
}
|
|
90
|
+
return target;
|
|
91
|
+
};
|
|
92
|
+
const listboxHelpers = {
|
|
93
|
+
states: {
|
|
94
|
+
selectedKey: {
|
|
95
|
+
onChangeArgsToValue: (value) => {
|
|
96
|
+
return Array.from(value)[0];
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
function normalizeSelectedKeys(selectedKeys) {
|
|
102
|
+
return typeof selectedKeys === "string" && selectedKeys !== "all" ? [selectedKeys] : selectedKeys;
|
|
103
|
+
}
|
|
104
|
+
function BaseListBox(props) {
|
|
105
|
+
const _a = props, {
|
|
106
|
+
setControlContextData,
|
|
107
|
+
children,
|
|
108
|
+
selectedKeys,
|
|
109
|
+
defaultSelectedKeys
|
|
110
|
+
} = _a, rest = __objRest(_a, [
|
|
111
|
+
"setControlContextData",
|
|
112
|
+
"children",
|
|
113
|
+
"selectedKeys",
|
|
114
|
+
"defaultSelectedKeys"
|
|
115
|
+
]);
|
|
116
|
+
const context = React__default.default.useContext(contexts.PlasmicListBoxContext);
|
|
117
|
+
const isStandalone = !context;
|
|
118
|
+
const [ids, setIds] = React.useState([]);
|
|
119
|
+
const idManager = React.useMemo(
|
|
120
|
+
() => {
|
|
121
|
+
var _a2;
|
|
122
|
+
return (_a2 = context == null ? void 0 : context.idManager) != null ? _a2 : new ListBoxItemIdManager();
|
|
123
|
+
},
|
|
124
|
+
[]
|
|
125
|
+
);
|
|
126
|
+
React.useEffect(() => {
|
|
127
|
+
setControlContextData == null ? void 0 : setControlContextData({
|
|
128
|
+
itemIds: ids,
|
|
129
|
+
isStandalone
|
|
130
|
+
});
|
|
131
|
+
}, [ids, isStandalone]);
|
|
132
|
+
React.useEffect(() => {
|
|
133
|
+
idManager.subscribe((_ids) => {
|
|
134
|
+
setIds(_ids);
|
|
135
|
+
});
|
|
136
|
+
}, []);
|
|
137
|
+
const listbox = /* @__PURE__ */ React__default.default.createElement(
|
|
138
|
+
reactAriaComponents.ListBox,
|
|
139
|
+
__spreadValues({
|
|
140
|
+
selectedKeys: normalizeSelectedKeys(selectedKeys),
|
|
141
|
+
defaultSelectedKeys: normalizeSelectedKeys(defaultSelectedKeys)
|
|
142
|
+
}, rest),
|
|
143
|
+
children
|
|
144
|
+
);
|
|
145
|
+
if (isStandalone) {
|
|
146
|
+
return /* @__PURE__ */ React__default.default.createElement(
|
|
147
|
+
contexts.PlasmicListBoxContext.Provider,
|
|
148
|
+
{
|
|
149
|
+
value: {
|
|
150
|
+
idManager
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
listbox
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
return listbox;
|
|
157
|
+
}
|
|
158
|
+
const LIST_BOX_COMPONENT_NAME = utils.makeComponentName("listbox");
|
|
159
|
+
function registerListBox(loader, overrides) {
|
|
160
|
+
const listBoxItemMeta = registerListBoxItem.registerListBoxItem(loader, {
|
|
161
|
+
parentComponentName: LIST_BOX_COMPONENT_NAME
|
|
162
|
+
});
|
|
163
|
+
const sectionMeta = registerSection.registerSection(loader, {
|
|
164
|
+
parentComponentName: LIST_BOX_COMPONENT_NAME,
|
|
165
|
+
props: {
|
|
166
|
+
items: {
|
|
167
|
+
type: "slot",
|
|
168
|
+
defaultValue: [
|
|
169
|
+
{
|
|
170
|
+
type: "component",
|
|
171
|
+
name: listBoxItemMeta.name,
|
|
172
|
+
props: {
|
|
173
|
+
id: "section-1-1",
|
|
174
|
+
textValue: "Section1-Item 1",
|
|
175
|
+
children: [
|
|
176
|
+
registerListBoxItem.makeDefaultListBoxItemChildren(
|
|
177
|
+
"Item 1",
|
|
178
|
+
"Add dynamic values to make it more interesting"
|
|
179
|
+
)
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
type: "component",
|
|
185
|
+
name: listBoxItemMeta.name,
|
|
186
|
+
props: {
|
|
187
|
+
id: "section-1-2",
|
|
188
|
+
textValue: "Section1-Item 2",
|
|
189
|
+
children: [
|
|
190
|
+
registerListBoxItem.makeDefaultListBoxItemChildren(
|
|
191
|
+
"Item 2",
|
|
192
|
+
"Add dynamic values to make it more interesting"
|
|
193
|
+
)
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
type: "component",
|
|
199
|
+
name: listBoxItemMeta.name,
|
|
200
|
+
props: {
|
|
201
|
+
id: "section-1-3",
|
|
202
|
+
textValue: "Section1-Item 3",
|
|
203
|
+
children: [
|
|
204
|
+
registerListBoxItem.makeDefaultListBoxItemChildren(
|
|
205
|
+
"Item 3",
|
|
206
|
+
"Add dynamic values to make it more interesting"
|
|
207
|
+
)
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
utils.registerComponentHelper(
|
|
216
|
+
loader,
|
|
217
|
+
BaseListBox,
|
|
218
|
+
{
|
|
219
|
+
name: LIST_BOX_COMPONENT_NAME,
|
|
220
|
+
displayName: "Aria ListBox",
|
|
221
|
+
importPath: "@plasmicpkgs/react-aria/skinny/registerListBox",
|
|
222
|
+
importName: "BaseListBox",
|
|
223
|
+
defaultStyles: {
|
|
224
|
+
width: "250px",
|
|
225
|
+
borderWidth: "1px",
|
|
226
|
+
borderStyle: "solid",
|
|
227
|
+
borderColor: "black"
|
|
228
|
+
},
|
|
229
|
+
props: {
|
|
230
|
+
children: {
|
|
231
|
+
type: "slot",
|
|
232
|
+
displayName: "List Items",
|
|
233
|
+
allowedComponents: [listBoxItemMeta.name, sectionMeta.name],
|
|
234
|
+
allowRootWrapper: true,
|
|
235
|
+
defaultValue: [
|
|
236
|
+
{
|
|
237
|
+
type: "component",
|
|
238
|
+
name: listBoxItemMeta.name,
|
|
239
|
+
props: {
|
|
240
|
+
id: "1",
|
|
241
|
+
textValue: "Item 1",
|
|
242
|
+
children: [
|
|
243
|
+
registerListBoxItem.makeDefaultListBoxItemChildren(
|
|
244
|
+
"Item 1",
|
|
245
|
+
"Add dynamic values to make it more interesting"
|
|
246
|
+
)
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
type: "component",
|
|
252
|
+
name: listBoxItemMeta.name,
|
|
253
|
+
props: {
|
|
254
|
+
id: "2",
|
|
255
|
+
textValue: "Item 2",
|
|
256
|
+
children: [
|
|
257
|
+
registerListBoxItem.makeDefaultListBoxItemChildren(
|
|
258
|
+
"Item 2",
|
|
259
|
+
"Add dynamic values to make it more interesting"
|
|
260
|
+
)
|
|
261
|
+
]
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
type: "component",
|
|
266
|
+
name: listBoxItemMeta.name,
|
|
267
|
+
props: {
|
|
268
|
+
id: "3",
|
|
269
|
+
textValue: "Item 3",
|
|
270
|
+
children: [
|
|
271
|
+
registerListBoxItem.makeDefaultListBoxItemChildren(
|
|
272
|
+
"Item 3",
|
|
273
|
+
"Add dynamic values to make it more interesting"
|
|
274
|
+
)
|
|
275
|
+
]
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
type: "component",
|
|
280
|
+
name: sectionMeta.name
|
|
281
|
+
}
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
selectionMode: {
|
|
285
|
+
type: "choice",
|
|
286
|
+
description: "The selection mode of the listbox",
|
|
287
|
+
options: ["none", "single"],
|
|
288
|
+
defaultValue: "none",
|
|
289
|
+
hidden: (_props, ctx) => !(ctx == null ? void 0 : ctx.isStandalone)
|
|
290
|
+
},
|
|
291
|
+
selectedKeys: {
|
|
292
|
+
type: "choice",
|
|
293
|
+
description: "The selected keys of the listbox",
|
|
294
|
+
editOnly: true,
|
|
295
|
+
uncontrolledProp: "defaultSelectedKeys",
|
|
296
|
+
displayName: "Initial selected key",
|
|
297
|
+
options: (_props, ctx) => (ctx == null ? void 0 : ctx.itemIds) ? Array.from(ctx.itemIds) : [],
|
|
298
|
+
hidden: (props, ctx) => !(ctx == null ? void 0 : ctx.isStandalone) || props.selectionMode === "none",
|
|
299
|
+
// We do not support multiple selections yet (Because React Aria select and combobox only support single selections).
|
|
300
|
+
multiSelect: false
|
|
301
|
+
},
|
|
302
|
+
onSelectionChange: {
|
|
303
|
+
type: "eventHandler",
|
|
304
|
+
argTypes: [{ name: "itemIds", type: "object" }]
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
states: {
|
|
308
|
+
selectedKey: __spreadValues({
|
|
309
|
+
type: "writable",
|
|
310
|
+
valueProp: "selectedKeys",
|
|
311
|
+
onChangeProp: "onSelectionChange",
|
|
312
|
+
variableType: "text"
|
|
313
|
+
}, listboxHelpers.states.selectedKey)
|
|
314
|
+
},
|
|
315
|
+
componentHelpers: {
|
|
316
|
+
helpers: listboxHelpers,
|
|
317
|
+
importName: "listboxHelpers",
|
|
318
|
+
importPath: "@plasmicpkgs/react-aria/skinny/registerListBox"
|
|
319
|
+
},
|
|
320
|
+
trapsFocus: true
|
|
321
|
+
},
|
|
322
|
+
overrides
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
exports.BaseListBox = BaseListBox;
|
|
327
|
+
exports.LIST_BOX_COMPONENT_NAME = LIST_BOX_COMPONENT_NAME;
|
|
328
|
+
exports.ListBoxItemIdManager = ListBoxItemIdManager;
|
|
329
|
+
exports.listboxHelpers = listboxHelpers;
|
|
330
|
+
exports.registerListBox = registerListBox;
|
|
331
|
+
//# sourceMappingURL=registerListBox-96ae5783.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerListBox-96ae5783.cjs.js","sources":["../src/ListBoxItemIdManager.ts","../src/registerListBox.tsx"],"sourcesContent":["type Observer = (ids: string[]) => void;\n\nexport class ListBoxItemIdManager {\n private readonly _ids: Set<string> = new Set();\n private readonly _observers: Set<Observer> = new Set();\n\n private generateDuplicateId(id: string, count = 1): string {\n const dupId = `${id} duplicate(${count})`;\n if (this._ids.has(dupId)) {\n return this.generateDuplicateId(id, count + 1);\n } else {\n return dupId;\n }\n }\n\n private generateMissingId(count = 1): string {\n const missingId = `missing(${count})`;\n if (this._ids.has(missingId)) {\n return this.generateMissingId(count + 1);\n } else {\n return missingId;\n }\n }\n\n register(id?: string): string {\n let newId: string;\n if (!id) {\n // No id is provided, so generate one\n newId = this.generateMissingId();\n } else if (this._ids.has(id)) {\n // The provided id is already registered with another uuid (i.e. it's not unique), so just generate a new one\n newId = this.generateDuplicateId(id);\n } else {\n // The provided id is not already registered, so use it\n newId = id;\n }\n\n this._ids.add(newId);\n this.notify();\n return newId;\n }\n\n unregister(id: string) {\n this._ids.delete(id);\n this.notify();\n }\n\n subscribe(observer: Observer) {\n this._observers.add(observer);\n }\n\n // Notify all observers about an event.\n notify() {\n this._observers.forEach((observer) => observer(this.ids));\n }\n\n get ids(): string[] {\n return Array.from(this._ids);\n }\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { Key, ListBox } from \"react-aria-components\";\nimport { PlasmicListBoxContext } from \"./contexts\";\nimport { ListBoxItemIdManager } from \"./ListBoxItemIdManager\";\nimport {\n makeDefaultListBoxItemChildren,\n registerListBoxItem,\n} from \"./registerListBoxItem\";\nimport { registerSection } from \"./registerSection\";\nimport {\n CodeComponentMetaOverrides,\n HasControlContextData,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\n\nexport interface BaseListBoxControlContextData {\n itemIds: string[];\n isStandalone: boolean;\n}\n\nexport interface BaseListBoxProps\n extends Omit<\n React.ComponentProps<typeof ListBox>,\n \"selectedKeys\" | \"defaultSelectedKeys\"\n >,\n HasControlContextData<BaseListBoxControlContextData> {\n children?: React.ReactNode;\n selectedKeys?: string | string[] | undefined;\n defaultSelectedKeys?: string | string[] | undefined;\n}\n\nexport const listboxHelpers = {\n states: {\n selectedKey: {\n onChangeArgsToValue: (value: Set<Key> | string[] | string) => {\n // only single selection is supported\n return Array.from(value)[0];\n },\n },\n },\n};\n\nfunction normalizeSelectedKeys(selectedKeys: string | string[] | undefined) {\n // Listbox expects it to be of type \"all\" | Iterable\n return typeof selectedKeys === \"string\" && selectedKeys !== \"all\"\n ? [selectedKeys]\n : selectedKeys;\n}\n\nexport function BaseListBox(props: BaseListBoxProps) {\n const {\n setControlContextData: setControlContextData,\n children,\n selectedKeys,\n defaultSelectedKeys,\n ...rest\n } = props;\n const context = React.useContext(PlasmicListBoxContext);\n const isStandalone = !context;\n const [ids, setIds] = useState<string[]>([]);\n\n const idManager = useMemo(\n () => context?.idManager ?? new ListBoxItemIdManager(),\n []\n );\n\n useEffect(() => {\n setControlContextData?.({\n itemIds: ids,\n isStandalone,\n });\n }, [ids, isStandalone]);\n\n useEffect(() => {\n idManager.subscribe((_ids: string[]) => {\n setIds(_ids);\n });\n }, []);\n\n const listbox = (\n <ListBox\n selectedKeys={normalizeSelectedKeys(selectedKeys)}\n defaultSelectedKeys={normalizeSelectedKeys(defaultSelectedKeys)}\n {...rest}\n >\n {children}\n </ListBox>\n );\n\n if (isStandalone) {\n return (\n <PlasmicListBoxContext.Provider\n value={{\n idManager,\n }}\n >\n {listbox}\n </PlasmicListBoxContext.Provider>\n );\n }\n\n return listbox;\n}\n\nexport const LIST_BOX_COMPONENT_NAME = makeComponentName(\"listbox\");\n\nexport function registerListBox(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseListBox>\n) {\n const listBoxItemMeta = registerListBoxItem(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n });\n const sectionMeta = registerSection(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n props: {\n items: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-1\",\n textValue: \"Section1-Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-2\",\n textValue: \"Section1-Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-3\",\n textValue: \"Section1-Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n ],\n },\n },\n });\n\n registerComponentHelper(\n loader,\n BaseListBox,\n {\n name: LIST_BOX_COMPONENT_NAME,\n displayName: \"Aria ListBox\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n importName: \"BaseListBox\",\n defaultStyles: {\n width: \"250px\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n },\n props: {\n children: {\n type: \"slot\",\n displayName: \"List Items\",\n allowedComponents: [listBoxItemMeta.name, sectionMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"1\",\n textValue: \"Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"2\",\n textValue: \"Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"3\",\n textValue: \"Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: sectionMeta.name,\n },\n ],\n },\n selectionMode: {\n type: \"choice\",\n description: \"The selection mode of the listbox\",\n options: [\"none\", \"single\"],\n defaultValue: \"none\",\n hidden: (_props, ctx) => !ctx?.isStandalone,\n },\n selectedKeys: {\n type: \"choice\",\n description: \"The selected keys of the listbox\",\n editOnly: true,\n uncontrolledProp: \"defaultSelectedKeys\",\n displayName: \"Initial selected key\",\n options: (_props, ctx) =>\n ctx?.itemIds ? Array.from(ctx.itemIds) : [],\n hidden: (props, ctx) =>\n !ctx?.isStandalone || props.selectionMode === \"none\",\n // We do not support multiple selections yet (Because React Aria select and combobox only support single selections).\n multiSelect: false,\n },\n onSelectionChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"itemIds\", type: \"object\" }],\n },\n },\n states: {\n selectedKey: {\n type: \"writable\",\n valueProp: \"selectedKeys\",\n onChangeProp: \"onSelectionChange\",\n variableType: \"text\",\n ...listboxHelpers.states.selectedKey,\n },\n },\n componentHelpers: {\n helpers: listboxHelpers,\n importName: \"listboxHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["React","PlasmicListBoxContext","useState","useMemo","_a","useEffect","ListBox","makeComponentName","registerListBoxItem","registerSection","makeDefaultListBoxItemChildren","registerComponentHelper"],"mappings":";;;;;;;;;;;;;AAEO,MAAM,oBAAqB,CAAA;AAAA,EAA3B,WAAA,GAAA;AACL,IAAiB,IAAA,CAAA,IAAA,uBAAwB,GAAI,EAAA,CAAA;AAC7C,IAAiB,IAAA,CAAA,UAAA,uBAAgC,GAAI,EAAA,CAAA;AAAA,GAAA;AAAA,EAE7C,mBAAA,CAAoB,EAAY,EAAA,KAAA,GAAQ,CAAW,EAAA;AACzD,IAAM,MAAA,KAAA,GAAQ,GAAG,EAAgB,CAAA,WAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AACjC,IAAA,IAAI,IAAK,CAAA,IAAA,CAAK,GAAI,CAAA,KAAK,CAAG,EAAA;AACxB,MAAA,OAAO,IAAK,CAAA,mBAAA,CAAoB,EAAI,EAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AAAA,KACxC,MAAA;AACL,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AAAA,GACF;AAAA,EAEQ,iBAAA,CAAkB,QAAQ,CAAW,EAAA;AAC3C,IAAA,MAAM,YAAY,CAAW,QAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,IAAA,IAAI,IAAK,CAAA,IAAA,CAAK,GAAI,CAAA,SAAS,CAAG,EAAA;AAC5B,MAAO,OAAA,IAAA,CAAK,iBAAkB,CAAA,KAAA,GAAQ,CAAC,CAAA,CAAA;AAAA,KAClC,MAAA;AACL,MAAO,OAAA,SAAA,CAAA;AAAA,KACT;AAAA,GACF;AAAA,EAEA,SAAS,EAAqB,EAAA;AAC5B,IAAI,IAAA,KAAA,CAAA;AACJ,IAAA,IAAI,CAAC,EAAI,EAAA;AAEP,MAAA,KAAA,GAAQ,KAAK,iBAAkB,EAAA,CAAA;AAAA,KACtB,MAAA,IAAA,IAAA,CAAK,IAAK,CAAA,GAAA,CAAI,EAAE,CAAG,EAAA;AAE5B,MAAQ,KAAA,GAAA,IAAA,CAAK,oBAAoB,EAAE,CAAA,CAAA;AAAA,KAC9B,MAAA;AAEL,MAAQ,KAAA,GAAA,EAAA,CAAA;AAAA,KACV;AAEA,IAAK,IAAA,CAAA,IAAA,CAAK,IAAI,KAAK,CAAA,CAAA;AACnB,IAAA,IAAA,CAAK,MAAO,EAAA,CAAA;AACZ,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAAA,EAEA,WAAW,EAAY,EAAA;AACrB,IAAK,IAAA,CAAA,IAAA,CAAK,OAAO,EAAE,CAAA,CAAA;AACnB,IAAA,IAAA,CAAK,MAAO,EAAA,CAAA;AAAA,GACd;AAAA,EAEA,UAAU,QAAoB,EAAA;AAC5B,IAAK,IAAA,CAAA,UAAA,CAAW,IAAI,QAAQ,CAAA,CAAA;AAAA,GAC9B;AAAA;AAAA,EAGA,MAAS,GAAA;AACP,IAAA,IAAA,CAAK,WAAW,OAAQ,CAAA,CAAC,aAAa,QAAS,CAAA,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAAA,GAC1D;AAAA,EAEA,IAAI,GAAgB,GAAA;AAClB,IAAO,OAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,GAC7B;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BO,MAAM,cAAiB,GAAA;AAAA,EAC5B,MAAQ,EAAA;AAAA,IACN,WAAa,EAAA;AAAA,MACX,mBAAA,EAAqB,CAAC,KAAwC,KAAA;AAE5D,QAAA,OAAO,KAAM,CAAA,IAAA,CAAK,KAAK,CAAA,CAAE,CAAC,CAAA,CAAA;AAAA,OAC5B;AAAA,KACF;AAAA,GACF;AACF,EAAA;AAEA,SAAS,sBAAsB,YAA6C,EAAA;AAE1E,EAAA,OAAO,OAAO,YAAiB,KAAA,QAAA,IAAY,iBAAiB,KACxD,GAAA,CAAC,YAAY,CACb,GAAA,YAAA,CAAA;AACN,CAAA;AAEO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAA,MAMI,EALF,GAAA,KAAA,EAAA;AAAA,IAAA,qBAAA;AAAA,IACA,QAAA;AAAA,IACA,YAAA;AAAA,IACA,mBAAA;AAAA,GAxDJ,GA0DM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAJH,uBAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,qBAAA;AAAA,GAAA,CAAA,CAAA;AAGF,EAAM,MAAA,OAAA,GAAUA,sBAAM,CAAA,UAAA,CAAWC,8BAAqB,CAAA,CAAA;AACtD,EAAA,MAAM,eAAe,CAAC,OAAA,CAAA;AACtB,EAAA,MAAM,CAAC,GAAK,EAAA,MAAM,CAAI,GAAAC,cAAA,CAAmB,EAAE,CAAA,CAAA;AAE3C,EAAA,MAAM,SAAY,GAAAC,aAAA;AAAA,IAChB,MAAG;AAhEP,MAAAC,IAAAA,GAAAA,CAAAA;AAgEU,MAAA,OAAA,CAAAA,MAAA,OAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,SAAA,KAAT,IAAAA,GAAAA,GAAAA,GAAsB,IAAI,oBAAqB,EAAA,CAAA;AAAA,KAAA;AAAA,IACrD,EAAC;AAAA,GACH,CAAA;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAwB,qBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAA;AAAA,MACtB,OAAS,EAAA,GAAA;AAAA,MACT,YAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACC,EAAA,CAAC,GAAK,EAAA,YAAY,CAAC,CAAA,CAAA;AAEtB,EAAAA,eAAA,CAAU,MAAM;AACd,IAAU,SAAA,CAAA,SAAA,CAAU,CAAC,IAAmB,KAAA;AACtC,MAAA,MAAA,CAAO,IAAI,CAAA,CAAA;AAAA,KACZ,CAAA,CAAA;AAAA,GACH,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,MAAM,OACJ,mBAAAL,sBAAA,CAAA,aAAA;AAAA,IAACM,2BAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,YAAA,EAAc,sBAAsB,YAAY,CAAA;AAAA,MAChD,mBAAA,EAAqB,sBAAsB,mBAAmB,CAAA;AAAA,KAC1D,EAAA,IAAA,CAAA;AAAA,IAEH,QAAA;AAAA,GACH,CAAA;AAGF,EAAA,IAAI,YAAc,EAAA;AAChB,IACE,uBAAAN,sBAAA,CAAA,aAAA;AAAA,MAACC,8BAAsB,CAAA,QAAA;AAAA,MAAtB;AAAA,QACC,KAAO,EAAA;AAAA,UACL,SAAA;AAAA,SACF;AAAA,OAAA;AAAA,MAEC,OAAA;AAAA,KACH,CAAA;AAAA,GAEJ;AAEA,EAAO,OAAA,OAAA,CAAA;AACT,CAAA;AAEa,MAAA,uBAAA,GAA0BM,wBAAkB,SAAS,EAAA;AAElD,SAAA,eAAA,CACd,QACA,SACA,EAAA;AACA,EAAM,MAAA,eAAA,GAAkBC,wCAAoB,MAAQ,EAAA;AAAA,IAClD,mBAAqB,EAAA,uBAAA;AAAA,GACtB,CAAA,CAAA;AACD,EAAM,MAAA,WAAA,GAAcC,gCAAgB,MAAQ,EAAA;AAAA,IAC1C,mBAAqB,EAAA,uBAAA;AAAA,IACrB,KAAO,EAAA;AAAA,MACL,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,MAAM,eAAgB,CAAA,IAAA;AAAA,YACtB,KAAO,EAAA;AAAA,cACL,EAAI,EAAA,aAAA;AAAA,cACJ,SAAW,EAAA,iBAAA;AAAA,cACX,QAAU,EAAA;AAAA,gBACRC,kDAAA;AAAA,kBACE,QAAA;AAAA,kBACA,gDAAA;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,MAAM,eAAgB,CAAA,IAAA;AAAA,YACtB,KAAO,EAAA;AAAA,cACL,EAAI,EAAA,aAAA;AAAA,cACJ,SAAW,EAAA,iBAAA;AAAA,cACX,QAAU,EAAA;AAAA,gBACRA,kDAAA;AAAA,kBACE,QAAA;AAAA,kBACA,gDAAA;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,UACA;AAAA,YACE,IAAM,EAAA,WAAA;AAAA,YACN,MAAM,eAAgB,CAAA,IAAA;AAAA,YACtB,KAAO,EAAA;AAAA,cACL,EAAI,EAAA,aAAA;AAAA,cACJ,SAAW,EAAA,iBAAA;AAAA,cACX,QAAU,EAAA;AAAA,gBACRA,kDAAA;AAAA,kBACE,QAAA;AAAA,kBACA,gDAAA;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAAC,6BAAA;AAAA,IACE,MAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,uBAAA;AAAA,MACN,WAAa,EAAA,cAAA;AAAA,MACb,UAAY,EAAA,gDAAA;AAAA,MACZ,UAAY,EAAA,aAAA;AAAA,MACZ,aAAe,EAAA;AAAA,QACb,KAAO,EAAA,OAAA;AAAA,QACP,WAAa,EAAA,KAAA;AAAA,QACb,WAAa,EAAA,OAAA;AAAA,QACb,WAAa,EAAA,OAAA;AAAA,OACf;AAAA,MACA,KAAO,EAAA;AAAA,QACL,QAAU,EAAA;AAAA,UACR,IAAM,EAAA,MAAA;AAAA,UACN,WAAa,EAAA,YAAA;AAAA,UACb,iBAAmB,EAAA,CAAC,eAAgB,CAAA,IAAA,EAAM,YAAY,IAAI,CAAA;AAAA,UAC1D,gBAAkB,EAAA,IAAA;AAAA,UAClB,YAAc,EAAA;AAAA,YACZ;AAAA,cACE,IAAM,EAAA,WAAA;AAAA,cACN,MAAM,eAAgB,CAAA,IAAA;AAAA,cACtB,KAAO,EAAA;AAAA,gBACL,EAAI,EAAA,GAAA;AAAA,gBACJ,SAAW,EAAA,QAAA;AAAA,gBACX,QAAU,EAAA;AAAA,kBACRD,kDAAA;AAAA,oBACE,QAAA;AAAA,oBACA,gDAAA;AAAA,mBACF;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,YACA;AAAA,cACE,IAAM,EAAA,WAAA;AAAA,cACN,MAAM,eAAgB,CAAA,IAAA;AAAA,cACtB,KAAO,EAAA;AAAA,gBACL,EAAI,EAAA,GAAA;AAAA,gBACJ,SAAW,EAAA,QAAA;AAAA,gBACX,QAAU,EAAA;AAAA,kBACRA,kDAAA;AAAA,oBACE,QAAA;AAAA,oBACA,gDAAA;AAAA,mBACF;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,YACA;AAAA,cACE,IAAM,EAAA,WAAA;AAAA,cACN,MAAM,eAAgB,CAAA,IAAA;AAAA,cACtB,KAAO,EAAA;AAAA,gBACL,EAAI,EAAA,GAAA;AAAA,gBACJ,SAAW,EAAA,QAAA;AAAA,gBACX,QAAU,EAAA;AAAA,kBACRA,kDAAA;AAAA,oBACE,QAAA;AAAA,oBACA,gDAAA;AAAA,mBACF;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,YACA;AAAA,cACE,IAAM,EAAA,WAAA;AAAA,cACN,MAAM,WAAY,CAAA,IAAA;AAAA,aACpB;AAAA,WACF;AAAA,SACF;AAAA,QACA,aAAe,EAAA;AAAA,UACb,IAAM,EAAA,QAAA;AAAA,UACN,WAAa,EAAA,mCAAA;AAAA,UACb,OAAA,EAAS,CAAC,MAAA,EAAQ,QAAQ,CAAA;AAAA,UAC1B,YAAc,EAAA,MAAA;AAAA,UACd,MAAQ,EAAA,CAAC,MAAQ,EAAA,GAAA,KAAQ,EAAC,GAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,YAAA,CAAA;AAAA,SACjC;AAAA,QACA,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,QAAA;AAAA,UACN,WAAa,EAAA,kCAAA;AAAA,UACb,QAAU,EAAA,IAAA;AAAA,UACV,gBAAkB,EAAA,qBAAA;AAAA,UAClB,WAAa,EAAA,sBAAA;AAAA,UACb,OAAA,EAAS,CAAC,MAAA,EAAQ,GAChB,KAAA,CAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAK,OAAU,IAAA,KAAA,CAAM,IAAK,CAAA,GAAA,CAAI,OAAO,CAAA,GAAI,EAAC;AAAA,UAC5C,MAAA,EAAQ,CAAC,KAAO,EAAA,GAAA,KACd,EAAC,GAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,YAAA,CAAA,IAAgB,MAAM,aAAkB,KAAA,MAAA;AAAA;AAAA,UAEhD,WAAa,EAAA,KAAA;AAAA,SACf;AAAA,QACA,iBAAmB,EAAA;AAAA,UACjB,IAAM,EAAA,cAAA;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,SAAW,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,SAChD;AAAA,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,WAAa,EAAA,cAAA,CAAA;AAAA,UACX,IAAM,EAAA,UAAA;AAAA,UACN,SAAW,EAAA,cAAA;AAAA,UACX,YAAc,EAAA,mBAAA;AAAA,UACd,YAAc,EAAA,MAAA;AAAA,SAAA,EACX,eAAe,MAAO,CAAA,WAAA,CAAA;AAAA,OAE7B;AAAA,MACA,gBAAkB,EAAA;AAAA,QAChB,OAAS,EAAA,cAAA;AAAA,QACT,UAAY,EAAA,gBAAA;AAAA,QACZ,UAAY,EAAA,gDAAA;AAAA,OACd;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;;;;;"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
require('@react-aria/utils');
|
|
4
3
|
require('react');
|
|
5
4
|
require('react-aria-components');
|
|
6
|
-
require('./
|
|
7
|
-
require('./
|
|
8
|
-
var registerListBox = require('./registerListBox-f4801dbd.cjs.js');
|
|
5
|
+
require('./contexts-c26d68f8.cjs.js');
|
|
6
|
+
var registerListBox = require('./registerListBox-96ae5783.cjs.js');
|
|
9
7
|
require('./registerListBoxItem.cjs.js');
|
|
10
8
|
require('./registerSection.cjs.js');
|
|
11
|
-
require('
|
|
12
|
-
require('./
|
|
9
|
+
require('./utils-8dbb4d1f.cjs.js');
|
|
10
|
+
require('./interaction-variant-utils-9a869063.cjs.js');
|
|
13
11
|
require('./registerDescription.cjs.js');
|
|
14
12
|
require('./registerText.cjs.js');
|
|
15
|
-
require('
|
|
13
|
+
require('@plasmicapp/host/registerComponent');
|
|
14
|
+
require('@react-aria/utils');
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
|
|
19
18
|
exports.BaseListBox = registerListBox.BaseListBox;
|
|
20
19
|
exports.LIST_BOX_COMPONENT_NAME = registerListBox.LIST_BOX_COMPONENT_NAME;
|
|
20
|
+
exports.listboxHelpers = registerListBox.listboxHelpers;
|
|
21
21
|
exports.registerListBox = registerListBox.registerListBox;
|
|
22
22
|
//# sourceMappingURL=registerListBox.cjs.js.map
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ListBox } from "react-aria-components";
|
|
3
|
-
import { HasOptions } from "./option-utils";
|
|
2
|
+
import { Key, ListBox } from "react-aria-components";
|
|
4
3
|
import { CodeComponentMetaOverrides, HasControlContextData, Registerable } from "./utils";
|
|
5
|
-
export interface
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
getItemType?: (thing: any) => "item" | "section";
|
|
4
|
+
export interface BaseListBoxControlContextData {
|
|
5
|
+
itemIds: string[];
|
|
6
|
+
isStandalone: boolean;
|
|
9
7
|
}
|
|
8
|
+
export interface BaseListBoxProps extends Omit<React.ComponentProps<typeof ListBox>, "selectedKeys" | "defaultSelectedKeys">, HasControlContextData<BaseListBoxControlContextData> {
|
|
9
|
+
children?: React.ReactNode;
|
|
10
|
+
selectedKeys?: string | string[] | undefined;
|
|
11
|
+
defaultSelectedKeys?: string | string[] | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare const listboxHelpers: {
|
|
14
|
+
states: {
|
|
15
|
+
selectedKey: {
|
|
16
|
+
onChangeArgsToValue: (value: Set<Key> | string[] | string) => Key;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
10
20
|
export declare function BaseListBox(props: BaseListBoxProps): React.JSX.Element;
|
|
11
21
|
export declare const LIST_BOX_COMPONENT_NAME: string;
|
|
12
22
|
export declare function registerListBox(loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseListBox>): void;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import '@react-aria/utils';
|
|
2
1
|
import 'react';
|
|
3
2
|
import 'react-aria-components';
|
|
4
|
-
import './
|
|
5
|
-
|
|
6
|
-
export { B as BaseListBox, L as LIST_BOX_COMPONENT_NAME, r as registerListBox } from './registerListBox-b3f2891a.esm.js';
|
|
3
|
+
import './contexts-0a2977d8.esm.js';
|
|
4
|
+
export { B as BaseListBox, a as LIST_BOX_COMPONENT_NAME, l as listboxHelpers, r as registerListBox } from './registerListBox-85f61377.esm.js';
|
|
7
5
|
import './registerListBoxItem.esm.js';
|
|
8
6
|
import './registerSection.esm.js';
|
|
9
|
-
import '
|
|
10
|
-
import './
|
|
7
|
+
import './utils-c7662a47.esm.js';
|
|
8
|
+
import './interaction-variant-utils-1d94d073.esm.js';
|
|
11
9
|
import './registerDescription.esm.js';
|
|
12
10
|
import './registerText.esm.js';
|
|
13
|
-
import '
|
|
11
|
+
import '@plasmicapp/host/registerComponent';
|
|
12
|
+
import '@react-aria/utils';
|
|
14
13
|
//# sourceMappingURL=registerListBox.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerListBox.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registerListBox.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var utils = require('@react-aria/utils');
|
|
4
3
|
var React = require('react');
|
|
5
4
|
var reactAriaComponents = require('react-aria-components');
|
|
6
|
-
var contexts = require('./contexts-
|
|
7
|
-
var
|
|
5
|
+
var contexts = require('./contexts-c26d68f8.cjs.js');
|
|
6
|
+
var interactionVariantUtils = require('./interaction-variant-utils-9a869063.cjs.js');
|
|
8
7
|
var registerDescription = require('./registerDescription.cjs.js');
|
|
9
8
|
var registerText = require('./registerText.cjs.js');
|
|
10
|
-
var
|
|
9
|
+
var utils = require('./utils-8dbb4d1f.cjs.js');
|
|
11
10
|
require('@plasmicapp/host/registerComponent');
|
|
12
11
|
|
|
13
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -15,8 +14,6 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
15
14
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
16
15
|
|
|
17
16
|
var __defProp = Object.defineProperty;
|
|
18
|
-
var __defProps = Object.defineProperties;
|
|
19
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
20
17
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
21
18
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
22
19
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -32,12 +29,82 @@ var __spreadValues = (a, b) => {
|
|
|
32
29
|
}
|
|
33
30
|
return a;
|
|
34
31
|
};
|
|
35
|
-
var
|
|
32
|
+
var __objRest = (source, exclude) => {
|
|
33
|
+
var target = {};
|
|
34
|
+
for (var prop in source)
|
|
35
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
36
|
+
target[prop] = source[prop];
|
|
37
|
+
if (source != null && __getOwnPropSymbols)
|
|
38
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
39
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
40
|
+
target[prop] = source[prop];
|
|
41
|
+
}
|
|
42
|
+
return target;
|
|
43
|
+
};
|
|
44
|
+
const LIST_BOX_ITEM_INTERACTION_VARIANTS = [
|
|
45
|
+
"hovered",
|
|
46
|
+
"pressed",
|
|
47
|
+
"focused",
|
|
48
|
+
"focusVisible",
|
|
49
|
+
"selected",
|
|
50
|
+
"disabled"
|
|
51
|
+
];
|
|
52
|
+
const { interactionVariants, withObservedValues } = interactionVariantUtils.pickAriaComponentVariants(
|
|
53
|
+
LIST_BOX_ITEM_INTERACTION_VARIANTS
|
|
54
|
+
);
|
|
36
55
|
function BaseListBoxItem(props) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
56
|
+
const _a = props, {
|
|
57
|
+
children,
|
|
58
|
+
setControlContextData,
|
|
59
|
+
updateInteractionVariant,
|
|
60
|
+
id
|
|
61
|
+
} = _a, rest = __objRest(_a, [
|
|
62
|
+
"children",
|
|
63
|
+
"setControlContextData",
|
|
64
|
+
"updateInteractionVariant",
|
|
65
|
+
"id"
|
|
66
|
+
]);
|
|
67
|
+
const listboxContext = React__default.default.useContext(contexts.PlasmicListBoxContext);
|
|
68
|
+
const isStandalone = !listboxContext;
|
|
69
|
+
const [registeredId, setRegisteredId] = React.useState();
|
|
70
|
+
React.useEffect(() => {
|
|
71
|
+
if (!listboxContext) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const localId = listboxContext.idManager.register(id);
|
|
75
|
+
setRegisteredId(localId);
|
|
76
|
+
return () => {
|
|
77
|
+
listboxContext.idManager.unregister(localId);
|
|
78
|
+
setRegisteredId(void 0);
|
|
79
|
+
};
|
|
80
|
+
}, [id]);
|
|
81
|
+
setControlContextData == null ? void 0 : setControlContextData({
|
|
82
|
+
// this means that a unique id was registered, different from the provided id
|
|
83
|
+
hasDuplicateId: !isStandalone && id !== registeredId
|
|
84
|
+
});
|
|
85
|
+
const listboxItem = /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.ListBoxItem, __spreadValues({ key: registeredId, id: registeredId }, rest), ({
|
|
86
|
+
isHovered,
|
|
87
|
+
isPressed,
|
|
88
|
+
isFocused,
|
|
89
|
+
isFocusVisible,
|
|
90
|
+
isSelected,
|
|
91
|
+
isDisabled
|
|
92
|
+
}) => withObservedValues(
|
|
93
|
+
children,
|
|
94
|
+
{
|
|
95
|
+
hovered: isHovered,
|
|
96
|
+
pressed: isPressed,
|
|
97
|
+
focused: isFocused,
|
|
98
|
+
focusVisible: isFocusVisible,
|
|
99
|
+
selected: isSelected,
|
|
100
|
+
disabled: isDisabled
|
|
101
|
+
},
|
|
102
|
+
updateInteractionVariant
|
|
103
|
+
));
|
|
104
|
+
if (isStandalone) {
|
|
105
|
+
return /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.ListBox, { selectionMode: "single" }, listboxItem);
|
|
106
|
+
}
|
|
107
|
+
return listboxItem;
|
|
41
108
|
}
|
|
42
109
|
const makeDefaultListBoxItemChildren = (label, description) => ({
|
|
43
110
|
type: "vbox",
|
|
@@ -77,15 +144,31 @@ const makeDefaultListBoxItemChildren = (label, description) => ({
|
|
|
77
144
|
]
|
|
78
145
|
});
|
|
79
146
|
function registerListBoxItem(loader, overrides) {
|
|
80
|
-
return
|
|
147
|
+
return utils.registerComponentHelper(
|
|
81
148
|
loader,
|
|
82
149
|
BaseListBoxItem,
|
|
83
150
|
{
|
|
84
|
-
name:
|
|
151
|
+
name: utils.makeComponentName("item"),
|
|
85
152
|
displayName: "Aria ListBoxItem",
|
|
86
153
|
importPath: "@plasmicpkgs/react-aria/skinny/registerListBoxItem",
|
|
87
154
|
importName: "BaseListBoxItem",
|
|
155
|
+
interactionVariants,
|
|
88
156
|
props: {
|
|
157
|
+
id: {
|
|
158
|
+
type: "string",
|
|
159
|
+
description: "The id of the item",
|
|
160
|
+
required: true,
|
|
161
|
+
validator: (_value, _props, ctx) => {
|
|
162
|
+
if (ctx == null ? void 0 : ctx.hasDuplicateId) {
|
|
163
|
+
return "Please make sure the id is unique!";
|
|
164
|
+
}
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
textValue: {
|
|
169
|
+
type: "string",
|
|
170
|
+
description: "A text representation of the item's contents, used for features like typeahead."
|
|
171
|
+
},
|
|
89
172
|
children: {
|
|
90
173
|
type: "slot",
|
|
91
174
|
defaultValue: makeDefaultListBoxItemChildren("Item")
|