@plasmicpkgs/react-aria 0.0.27 → 0.0.29
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/contexts.d.ts +3 -7
- package/dist/interaction-variant-utils.d.ts +4 -0
- package/dist/option-utils.d.ts +4 -13
- package/dist/react-aria.esm.js +1193 -686
- package/dist/react-aria.esm.js.map +1 -1
- package/dist/react-aria.js +1190 -683
- package/dist/react-aria.js.map +1 -1
- package/dist/registerDialogTrigger.d.ts +10 -0
- package/dist/registerLabel.d.ts +1 -0
- package/dist/registerListBox.d.ts +7 -5
- package/dist/registerListBoxItem.d.ts +2 -4
- package/dist/registerPopover.d.ts +4 -2
- package/dist/registerSection.d.ts +1 -3
- package/dist/registerSelect.d.ts +1 -1
- package/dist/registerSlider.d.ts +14 -0
- package/dist/registerSliderOutput.d.ts +5 -0
- package/dist/registerSliderThumb.d.ts +13 -0
- package/dist/registerSliderTrack.d.ts +14 -0
- package/package.json +3 -3
- package/skinny/ErrorBoundary-c6b111d3.esm.js +20 -0
- package/skinny/ErrorBoundary-c6b111d3.esm.js.map +1 -0
- package/skinny/ErrorBoundary-e9b86248.cjs.js +22 -0
- package/skinny/ErrorBoundary-e9b86248.cjs.js.map +1 -0
- package/skinny/{contexts-49f6c298.esm.js → contexts-8a2a183b.esm.js} +3 -2
- package/skinny/contexts-8a2a183b.esm.js.map +1 -0
- package/skinny/{contexts-3e42cdf9.cjs.js → contexts-dd0ce341.cjs.js} +3 -1
- package/skinny/contexts-dd0ce341.cjs.js.map +1 -0
- package/skinny/contexts.d.ts +3 -7
- package/skinny/{interaction-variant-utils-80bf1cfd.cjs.js → interaction-variant-utils-244b74fb.cjs.js} +20 -2
- package/skinny/interaction-variant-utils-244b74fb.cjs.js.map +1 -0
- package/skinny/{interaction-variant-utils-608d984b.esm.js → interaction-variant-utils-c44a9d56.esm.js} +20 -2
- package/skinny/interaction-variant-utils-c44a9d56.esm.js.map +1 -0
- package/skinny/interaction-variant-utils.d.ts +4 -0
- package/skinny/{option-utils-765a1782.esm.js → option-utils-4f037568.esm.js} +22 -22
- package/skinny/option-utils-4f037568.esm.js.map +1 -0
- package/skinny/{option-utils-0db61f6d.cjs.js → option-utils-5e4e85bd.cjs.js} +22 -22
- package/skinny/option-utils-5e4e85bd.cjs.js.map +1 -0
- package/skinny/option-utils.d.ts +4 -13
- package/skinny/registerButton.cjs.js +5 -1
- package/skinny/registerButton.cjs.js.map +1 -1
- package/skinny/registerButton.esm.js +5 -1
- package/skinny/registerButton.esm.js.map +1 -1
- package/skinny/registerCheckbox.cjs.js +1 -1
- package/skinny/registerCheckbox.esm.js +1 -1
- package/skinny/registerCheckboxGroup.cjs.js +1 -1
- package/skinny/registerCheckboxGroup.esm.js +1 -1
- package/skinny/registerComboBox.cjs.js +11 -19
- package/skinny/registerComboBox.cjs.js.map +1 -1
- package/skinny/registerComboBox.esm.js +11 -19
- package/skinny/registerComboBox.esm.js.map +1 -1
- package/skinny/registerDialogTrigger.cjs.js +88 -0
- package/skinny/registerDialogTrigger.cjs.js.map +1 -0
- package/skinny/registerDialogTrigger.d.ts +10 -0
- package/skinny/registerDialogTrigger.esm.js +81 -0
- package/skinny/registerDialogTrigger.esm.js.map +1 -0
- package/skinny/registerHeader.cjs.js +1 -1
- package/skinny/registerHeader.esm.js +1 -1
- package/skinny/registerInput.cjs.js +1 -1
- package/skinny/registerInput.esm.js +1 -1
- package/skinny/registerLabel.cjs.js +6 -1
- package/skinny/registerLabel.cjs.js.map +1 -1
- package/skinny/registerLabel.d.ts +1 -0
- package/skinny/registerLabel.esm.js +7 -3
- package/skinny/registerLabel.esm.js.map +1 -1
- package/skinny/registerListBox.cjs.js +30 -74
- package/skinny/registerListBox.cjs.js.map +1 -1
- package/skinny/registerListBox.d.ts +7 -5
- package/skinny/registerListBox.esm.js +30 -74
- package/skinny/registerListBox.esm.js.map +1 -1
- package/skinny/registerListBoxItem.cjs.js +4 -20
- package/skinny/registerListBoxItem.cjs.js.map +1 -1
- package/skinny/registerListBoxItem.d.ts +2 -4
- package/skinny/registerListBoxItem.esm.js +4 -20
- package/skinny/registerListBoxItem.esm.js.map +1 -1
- package/skinny/registerPopover.cjs.js +8 -33
- package/skinny/registerPopover.cjs.js.map +1 -1
- package/skinny/registerPopover.d.ts +4 -2
- package/skinny/registerPopover.esm.js +8 -33
- package/skinny/registerPopover.esm.js.map +1 -1
- package/skinny/registerRadio.cjs.js +3 -18
- package/skinny/registerRadio.cjs.js.map +1 -1
- package/skinny/registerRadio.esm.js +3 -18
- package/skinny/registerRadio.esm.js.map +1 -1
- package/skinny/registerRadioGroup.cjs.js +2 -1
- package/skinny/registerRadioGroup.cjs.js.map +1 -1
- package/skinny/registerRadioGroup.esm.js +2 -1
- package/skinny/registerRadioGroup.esm.js.map +1 -1
- package/skinny/registerSection.cjs.js +5 -34
- package/skinny/registerSection.cjs.js.map +1 -1
- package/skinny/registerSection.d.ts +1 -3
- package/skinny/registerSection.esm.js +5 -34
- package/skinny/registerSection.esm.js.map +1 -1
- package/skinny/registerSelect.cjs.js +5 -16
- package/skinny/registerSelect.cjs.js.map +1 -1
- package/skinny/registerSelect.d.ts +1 -1
- package/skinny/registerSelect.esm.js +5 -16
- package/skinny/registerSelect.esm.js.map +1 -1
- package/skinny/registerSlider-73e80194.cjs.js +437 -0
- package/skinny/registerSlider-73e80194.cjs.js.map +1 -0
- package/skinny/registerSlider-efdba013.esm.js +425 -0
- package/skinny/registerSlider-efdba013.esm.js.map +1 -0
- package/skinny/registerSlider.cjs.js +23 -0
- package/skinny/registerSlider.cjs.js.map +1 -0
- package/skinny/registerSlider.d.ts +14 -0
- package/skinny/registerSlider.esm.js +15 -0
- package/skinny/registerSlider.esm.js.map +1 -0
- package/skinny/registerSliderOutput.cjs.js +30 -0
- package/skinny/registerSliderOutput.cjs.js.map +1 -0
- package/skinny/registerSliderOutput.d.ts +5 -0
- package/skinny/registerSliderOutput.esm.js +26 -0
- package/skinny/registerSliderOutput.esm.js.map +1 -0
- package/skinny/registerSliderThumb.cjs.js +119 -0
- package/skinny/registerSliderThumb.cjs.js.map +1 -0
- package/skinny/registerSliderThumb.d.ts +13 -0
- package/skinny/registerSliderThumb.esm.js +111 -0
- package/skinny/registerSliderThumb.esm.js.map +1 -0
- package/skinny/registerSliderTrack.cjs.js +23 -0
- package/skinny/registerSliderTrack.cjs.js.map +1 -0
- package/skinny/registerSliderTrack.d.ts +14 -0
- package/skinny/registerSliderTrack.esm.js +15 -0
- package/skinny/registerSliderTrack.esm.js.map +1 -0
- package/skinny/registerSwitch.cjs.js +1 -1
- package/skinny/registerSwitch.esm.js +1 -1
- package/skinny/registerTextArea.cjs.js +1 -1
- package/skinny/registerTextArea.esm.js +1 -1
- package/skinny/registerTextField.cjs.js +1 -1
- package/skinny/registerTextField.esm.js +1 -1
- package/skinny/registerTooltip.cjs.js +13 -6
- package/skinny/registerTooltip.cjs.js.map +1 -1
- package/skinny/registerTooltip.esm.js +13 -6
- package/skinny/registerTooltip.esm.js.map +1 -1
- package/skinny/contexts-3e42cdf9.cjs.js.map +0 -1
- package/skinny/contexts-49f6c298.esm.js.map +0 -1
- package/skinny/interaction-variant-utils-608d984b.esm.js.map +0 -1
- package/skinny/interaction-variant-utils-80bf1cfd.cjs.js.map +0 -1
- package/skinny/option-utils-0db61f6d.cjs.js.map +0 -1
- package/skinny/option-utils-765a1782.esm.js.map +0 -1
|
@@ -22,26 +22,26 @@ function deriveStrictOptions(props) {
|
|
|
22
22
|
return void 0;
|
|
23
23
|
} else if (typeof op === "string" || typeof op === "number") {
|
|
24
24
|
const item = {
|
|
25
|
-
|
|
25
|
+
id: op
|
|
26
26
|
};
|
|
27
27
|
return item;
|
|
28
28
|
} else if (optionInfo) {
|
|
29
29
|
const info = optionInfo(op);
|
|
30
|
-
if (info.type === "
|
|
30
|
+
if (info.type === "option-group") {
|
|
31
31
|
const section = {
|
|
32
|
-
type: "
|
|
32
|
+
type: "option-group",
|
|
33
33
|
items: (_c = (_b = (_a2 = info.items) == null ? void 0 : _a2.map) == null ? void 0 : _b.call(_a2, (item) => makeStrict(item))) == null ? void 0 : _c.filter((x) => !!x),
|
|
34
34
|
label: info.label,
|
|
35
|
-
key: `
|
|
35
|
+
key: `option-group-${sectionCount}`
|
|
36
36
|
};
|
|
37
37
|
sectionCount += 1;
|
|
38
38
|
return section;
|
|
39
39
|
} else {
|
|
40
40
|
let item = info;
|
|
41
|
-
if (!("
|
|
41
|
+
if (!("id" in item)) {
|
|
42
42
|
item = {
|
|
43
|
-
type: "
|
|
44
|
-
|
|
43
|
+
type: "option",
|
|
44
|
+
id: JSON.stringify(item)
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
return item;
|
|
@@ -49,19 +49,19 @@ function deriveStrictOptions(props) {
|
|
|
49
49
|
} else if (typeof op === "object") {
|
|
50
50
|
if ("items" in op) {
|
|
51
51
|
const section = {
|
|
52
|
-
type: "
|
|
52
|
+
type: "option-group",
|
|
53
53
|
items: (_f = (_e = (_d = op.items) == null ? void 0 : _d.map) == null ? void 0 : _e.call(_d, (item) => makeStrict(item))) == null ? void 0 : _f.filter((x) => !!x),
|
|
54
54
|
label: op.label,
|
|
55
|
-
key: `
|
|
55
|
+
key: `option-group-${sectionCount}`
|
|
56
56
|
};
|
|
57
57
|
sectionCount += 1;
|
|
58
58
|
return section;
|
|
59
59
|
} else {
|
|
60
60
|
let item = op;
|
|
61
|
-
if (!("
|
|
61
|
+
if (!("id" in item)) {
|
|
62
62
|
item = {
|
|
63
|
-
type: "
|
|
64
|
-
|
|
63
|
+
type: "option",
|
|
64
|
+
id: JSON.stringify(item)
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
return item;
|
|
@@ -73,7 +73,7 @@ function deriveStrictOptions(props) {
|
|
|
73
73
|
const strictOptions = (_a = options == null ? void 0 : options.map(makeStrict)) == null ? void 0 : _a.filter((x) => !!x);
|
|
74
74
|
const optionText = (op) => {
|
|
75
75
|
var _a2;
|
|
76
|
-
return (_a2 = op.label) != null ? _a2 : op.
|
|
76
|
+
return (_a2 = op.label) != null ? _a2 : op.id;
|
|
77
77
|
};
|
|
78
78
|
return { options: strictOptions, optionText };
|
|
79
79
|
}
|
|
@@ -84,7 +84,7 @@ function flattenOptions(options) {
|
|
|
84
84
|
return options.flatMap(
|
|
85
85
|
(op) => {
|
|
86
86
|
var _a;
|
|
87
|
-
return op.type === "
|
|
87
|
+
return op.type === "option-group" ? (_a = op.items) != null ? _a : [] : op;
|
|
88
88
|
}
|
|
89
89
|
);
|
|
90
90
|
}
|
|
@@ -94,7 +94,7 @@ function makeOptionsPropType() {
|
|
|
94
94
|
type: "array",
|
|
95
95
|
itemType: {
|
|
96
96
|
type: "object",
|
|
97
|
-
nameFunc: (item) => item.label || item.
|
|
97
|
+
nameFunc: (item) => item.label || item.id,
|
|
98
98
|
fields: {
|
|
99
99
|
type: {
|
|
100
100
|
type: "choice",
|
|
@@ -104,7 +104,7 @@ function makeOptionsPropType() {
|
|
|
104
104
|
],
|
|
105
105
|
defaultValue: "option"
|
|
106
106
|
},
|
|
107
|
-
|
|
107
|
+
id: {
|
|
108
108
|
type: "string",
|
|
109
109
|
hidden: (_ps, _ctx, { item }) => item.type !== "option"
|
|
110
110
|
},
|
|
@@ -117,9 +117,9 @@ function makeOptionsPropType() {
|
|
|
117
117
|
},
|
|
118
118
|
itemType: {
|
|
119
119
|
type: "object",
|
|
120
|
-
nameFunc: (item) => item.label || item.
|
|
120
|
+
nameFunc: (item) => item.label || item.id,
|
|
121
121
|
fields: {
|
|
122
|
-
|
|
122
|
+
id: "string",
|
|
123
123
|
label: "string"
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -128,12 +128,12 @@ function makeOptionsPropType() {
|
|
|
128
128
|
},
|
|
129
129
|
defaultValue: [
|
|
130
130
|
{
|
|
131
|
-
|
|
131
|
+
id: "option1",
|
|
132
132
|
label: "Option 1",
|
|
133
133
|
type: "option"
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
|
-
|
|
136
|
+
id: "option2",
|
|
137
137
|
label: "Option 2",
|
|
138
138
|
type: "option"
|
|
139
139
|
}
|
|
@@ -147,7 +147,7 @@ function makeValuePropType() {
|
|
|
147
147
|
options: (ps) => {
|
|
148
148
|
const { options, optionText } = deriveStrictOptions(ps);
|
|
149
149
|
return flattenOptions(options).map((op) => ({
|
|
150
|
-
value: op.
|
|
150
|
+
value: op.id,
|
|
151
151
|
label: optionText(op)
|
|
152
152
|
}));
|
|
153
153
|
}
|
|
@@ -159,4 +159,4 @@ exports.flattenOptions = flattenOptions;
|
|
|
159
159
|
exports.makeOptionsPropType = makeOptionsPropType;
|
|
160
160
|
exports.makeValuePropType = makeValuePropType;
|
|
161
161
|
exports.useStrictOptions = useStrictOptions;
|
|
162
|
-
//# sourceMappingURL=option-utils-
|
|
162
|
+
//# sourceMappingURL=option-utils-5e4e85bd.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option-utils-5e4e85bd.cjs.js","sources":["../src/option-utils.ts"],"sourcesContent":["import type { ArrayType, ChoiceType } from \"@plasmicapp/host/registerComponent\";\nimport React from \"react\";\n\nexport interface ObjectSectionType<T extends object> {\n label?: string;\n items?: ObjectItemType<T>[];\n}\ninterface FlexSectionType<T extends object> {\n label?: string;\n items?: FlexItemType<T>[];\n}\n\nexport type ObjectItemType<T extends object> = StrictOptionType | T;\ntype FlexItemType<T extends object> = ObjectItemType<T> | string;\n\nexport type FlexOptionType<T extends object> =\n | FlexItemType<T>\n | FlexSectionType<T>;\n\nexport type ObjectOptionType<T extends object> =\n | ObjectSectionType<T>\n | ObjectItemType<T>;\n\nexport interface HasOptions<T extends object> {\n options?: FlexOptionType<T>[];\n optionInfo?: (option: FlexOptionType<T>) => StrictOptionType;\n}\n\nexport interface StrictItemType {\n type?: \"option\";\n id: string;\n label?: string;\n isDisabled?: boolean;\n}\n\nexport interface StrictSectionType {\n type: \"option-group\";\n label?: string;\n items?: StrictItemType[];\n key: string;\n}\n\nexport type StrictOptionType = StrictItemType | StrictSectionType;\n\nexport function useStrictOptions<T extends object>(props: HasOptions<T>) {\n const { options, optionInfo } = props;\n return React.useMemo(() => {\n return deriveStrictOptions({ options, optionInfo });\n }, [options, optionInfo]);\n}\n\nexport function deriveStrictOptions<T extends object>(props: HasOptions<T>) {\n const { options, optionInfo } = props;\n let sectionCount = 0;\n\n const makeStrict = (op: FlexOptionType<T>): StrictOptionType | undefined => {\n if (!op) {\n return undefined;\n } else if (typeof op === \"string\" || typeof op === \"number\") {\n const item = {\n id: op,\n };\n return item;\n } else if (optionInfo) {\n const info = optionInfo(op);\n if (info.type === \"option-group\") {\n const section: StrictSectionType = {\n type: \"option-group\",\n items: info.items\n ?.map?.((item) => makeStrict(item) as StrictItemType)\n ?.filter((x) => !!x),\n label: info.label,\n key: `option-group-${sectionCount}`,\n };\n sectionCount += 1;\n return section;\n } else {\n let item = info;\n if (!(\"id\" in item)) {\n item = {\n type: \"option\",\n id: JSON.stringify(item),\n };\n }\n return item;\n }\n } else if (typeof op === \"object\") {\n if (\"items\" in op) {\n const section: StrictSectionType = {\n type: \"option-group\",\n items: op.items\n ?.map?.((item) => makeStrict(item) as StrictItemType)\n ?.filter((x) => !!x),\n label: op.label,\n key: `option-group-${sectionCount}`,\n };\n sectionCount += 1;\n return section;\n } else {\n let item = op;\n if (!(\"id\" in item)) {\n item = {\n type: \"option\",\n id: JSON.stringify(item),\n };\n }\n return item;\n }\n } else {\n return undefined;\n }\n };\n\n const strictOptions = options\n ?.map(makeStrict)\n ?.filter((x): x is StrictOptionType => !!x);\n\n const optionText = (op: StrictItemType) => {\n return op.label ?? op.id;\n };\n\n return { options: strictOptions, optionText };\n}\n\nexport function flattenOptions(\n options: (StrictItemType | StrictSectionType)[] | undefined\n): StrictItemType[] {\n if (!options) {\n return [];\n } else {\n return options.flatMap((op) =>\n op.type === \"option-group\" ? op.items ?? [] : op\n );\n }\n}\n\nexport function makeOptionsPropType() {\n const type: ArrayType<HasOptions<any>> = {\n type: \"array\",\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.id,\n fields: {\n type: {\n type: \"choice\",\n options: [\n { value: \"option\", label: \"Option\" },\n { value: \"option-group\", label: \"Option Group\" },\n ],\n defaultValue: \"option\",\n },\n id: {\n type: \"string\",\n hidden: (_ps: any, _ctx: any, { item }: any) =>\n item.type !== \"option\",\n },\n label: \"string\",\n items: {\n type: \"array\",\n displayName: \"Options\",\n hidden: (_ps: any, _ctx: any, { item }: any) => {\n return item.type !== \"option-group\";\n },\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.id,\n fields: {\n id: \"string\",\n label: \"string\",\n },\n },\n },\n },\n },\n defaultValue: [\n {\n id: \"option1\",\n label: \"Option 1\",\n type: \"option\",\n },\n {\n id: \"option2\",\n label: \"Option 2\",\n type: \"option\",\n },\n ],\n };\n return type;\n}\n\nexport function makeValuePropType() {\n const type: ChoiceType<HasOptions<any>> = {\n type: \"choice\",\n options: (ps: HasOptions<any>) => {\n const { options, optionText } = deriveStrictOptions(ps);\n return flattenOptions(options).map((op) => ({\n value: op.id,\n label: optionText(op),\n }));\n },\n };\n return type;\n}\n"],"names":["React","_a"],"mappings":"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"}
|
package/skinny/option-utils.d.ts
CHANGED
|
@@ -13,25 +13,16 @@ export type FlexOptionType<T extends object> = FlexItemType<T> | FlexSectionType
|
|
|
13
13
|
export type ObjectOptionType<T extends object> = ObjectSectionType<T> | ObjectItemType<T>;
|
|
14
14
|
export interface HasOptions<T extends object> {
|
|
15
15
|
options?: FlexOptionType<T>[];
|
|
16
|
-
optionInfo?: (option: FlexOptionType<T>) =>
|
|
17
|
-
type?: "item";
|
|
18
|
-
value: string;
|
|
19
|
-
label?: string;
|
|
20
|
-
isDisabled?: boolean;
|
|
21
|
-
} | {
|
|
22
|
-
type: "section";
|
|
23
|
-
label?: string;
|
|
24
|
-
items?: FlexOptionType<T>[];
|
|
25
|
-
};
|
|
16
|
+
optionInfo?: (option: FlexOptionType<T>) => StrictOptionType;
|
|
26
17
|
}
|
|
27
18
|
export interface StrictItemType {
|
|
28
|
-
type?: "
|
|
29
|
-
|
|
19
|
+
type?: "option";
|
|
20
|
+
id: string;
|
|
30
21
|
label?: string;
|
|
31
22
|
isDisabled?: boolean;
|
|
32
23
|
}
|
|
33
24
|
export interface StrictSectionType {
|
|
34
|
-
type: "
|
|
25
|
+
type: "option-group";
|
|
35
26
|
label?: string;
|
|
36
27
|
items?: StrictItemType[];
|
|
37
28
|
key: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var reactAriaComponents = require('react-aria-components');
|
|
5
5
|
var common = require('./common-e74a9214.cjs.js');
|
|
6
|
-
var interactionVariantUtils = require('./interaction-variant-utils-
|
|
6
|
+
var interactionVariantUtils = require('./interaction-variant-utils-244b74fb.cjs.js');
|
|
7
7
|
var utils = require('./utils-18b2465b.cjs.js');
|
|
8
8
|
require('@plasmicapp/host/registerComponent');
|
|
9
9
|
|
|
@@ -105,6 +105,10 @@ function registerButton(loader, overrides) {
|
|
|
105
105
|
hidden: (ps) => Boolean(ps.submitsForm),
|
|
106
106
|
description: "Whether clicking this button should reset the enclosing form.",
|
|
107
107
|
advanced: true
|
|
108
|
+
},
|
|
109
|
+
onPress: {
|
|
110
|
+
type: "eventHandler",
|
|
111
|
+
argTypes: [{ name: "event", type: "object" }]
|
|
108
112
|
}
|
|
109
113
|
}),
|
|
110
114
|
trapsFocus: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerButton.cjs.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import React from \"react\";\nimport type { ButtonProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { getCommonInputProps } from \"./common\";\nimport {\n UpdateInteractionVariant,\n pickAriaComponentVariants,\n} from \"./interaction-variant-utils\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\n\nconst BUTTON_INTERACTION_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n];\n\nconst { interactionVariants, withObservedValues } = pickAriaComponentVariants(\n BUTTON_INTERACTION_VARIANTS\n);\n\ninterface BaseButtonProps extends ButtonProps {\n children: React.ReactNode;\n resetsForm?: boolean;\n submitsForm?: boolean;\n // Optional callback to update the interaction variant state\n // as it's only provided if the component is the root of a Studio component\n updateInteractionVariant?: UpdateInteractionVariant<\n typeof BUTTON_INTERACTION_VARIANTS\n >;\n}\n\nexport function BaseButton(props: BaseButtonProps) {\n const {\n submitsForm,\n resetsForm,\n children,\n updateInteractionVariant,\n ...rest\n } = props;\n\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n return (\n <Button type={type} {...rest}>\n {({ isHovered, isPressed, isFocused, isFocusVisible }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n },\n updateInteractionVariant\n )\n }\n </Button>\n );\n}\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: makeComponentName(\"button\"),\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n interactionVariants,\n props: {\n ...getCommonInputProps<BaseButtonProps>(\"button\", [\n \"isDisabled\",\n \"aria-label\",\n \"children\",\n ]),\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.resetsForm),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.submitsForm),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","Button","registerComponentHelper","makeComponentName","getCommonInputProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EAClC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE,mBAAqB,EAAA,kBAAA,EAAuB,GAAAA,iDAAA;AAAA,EAClD,2BAAA;AACF,CAAA,CAAA;AAaO,SAAS,WAAW,KAAwB,EAAA;AACjD,EAAA,MAMI,EALF,GAAA,KAAA,EAAA;AAAA,IAAA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,wBAAA;AAAA,GA1CJ,GA4CM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAJH,aAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,0BAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAA,MAAM,IAAO,GAAA,WAAA,GAAc,QAAW,GAAA,UAAA,GAAa,OAAU,GAAA,QAAA,CAAA;AAE7D,EACE,uBAAAC,sBAAA,CAAA,aAAA,CAACC,0BAAO,EAAA,cAAA,CAAA,EAAA,IAAA,EAAA,EAAgB,IACrB,CAAA,EAAA,CAAC,EAAE,SAAW,EAAA,SAAA,EAAW,SAAW,EAAA,cAAA,EACnC,KAAA,kBAAA;AAAA,IACE,QAAA;AAAA,IACA;AAAA,MACE,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,YAAc,EAAA,cAAA;AAAA,KAChB;AAAA,IACA,wBAAA;AAAA,GAGN,CAAA,CAAA;AAEJ,CAAA;AAEgB,SAAA,cAAA,CACd,QACA,SACA,EAAA;AACA,EAAAC,6BAAA;AAAA,IACE,MAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAMC,wBAAkB,QAAQ,CAAA;AAAA,MAChC,WAAa,EAAA,aAAA;AAAA,MACb,UAAY,EAAA,+CAAA;AAAA,MACZ,UAAY,EAAA,YAAA;AAAA,MACZ,mBAAA;AAAA,MACA,KAAA,EAAO,aACF,CAAA,cAAA,CAAA,EAAA,EAAAC,0BAAA,CAAqC,QAAU,EAAA;AAAA,QAChD,YAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,OACD,CALI,CAAA,EAAA;AAAA,QAML,WAAa,EAAA;AAAA,UACX,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,eAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,UAAU,CAAA;AAAA,UACtD,WACE,EAAA,gEAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,QACA,UAAY,EAAA;AAAA,UACV,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,cAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,WAAW,CAAA;AAAA,UACvD,WACE,EAAA,+DAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,OACF,CAAA;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;;"}
|
|
1
|
+
{"version":3,"file":"registerButton.cjs.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import React from \"react\";\nimport type { ButtonProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { getCommonInputProps } from \"./common\";\nimport {\n UpdateInteractionVariant,\n pickAriaComponentVariants,\n} from \"./interaction-variant-utils\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\n\nconst BUTTON_INTERACTION_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n];\n\nconst { interactionVariants, withObservedValues } = pickAriaComponentVariants(\n BUTTON_INTERACTION_VARIANTS\n);\n\ninterface BaseButtonProps extends ButtonProps {\n children: React.ReactNode;\n resetsForm?: boolean;\n submitsForm?: boolean;\n // Optional callback to update the interaction variant state\n // as it's only provided if the component is the root of a Studio component\n updateInteractionVariant?: UpdateInteractionVariant<\n typeof BUTTON_INTERACTION_VARIANTS\n >;\n}\n\nexport function BaseButton(props: BaseButtonProps) {\n const {\n submitsForm,\n resetsForm,\n children,\n updateInteractionVariant,\n ...rest\n } = props;\n\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n return (\n <Button type={type} {...rest}>\n {({ isHovered, isPressed, isFocused, isFocusVisible }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n },\n updateInteractionVariant\n )\n }\n </Button>\n );\n}\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: makeComponentName(\"button\"),\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n interactionVariants,\n props: {\n ...getCommonInputProps<BaseButtonProps>(\"button\", [\n \"isDisabled\",\n \"aria-label\",\n \"children\",\n ]),\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.resetsForm),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.submitsForm),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n onPress: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","Button","registerComponentHelper","makeComponentName","getCommonInputProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EAClC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE,mBAAqB,EAAA,kBAAA,EAAuB,GAAAA,iDAAA;AAAA,EAClD,2BAAA;AACF,CAAA,CAAA;AAaO,SAAS,WAAW,KAAwB,EAAA;AACjD,EAAA,MAMI,EALF,GAAA,KAAA,EAAA;AAAA,IAAA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,wBAAA;AAAA,GA1CJ,GA4CM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAJH,aAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,0BAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAA,MAAM,IAAO,GAAA,WAAA,GAAc,QAAW,GAAA,UAAA,GAAa,OAAU,GAAA,QAAA,CAAA;AAE7D,EACE,uBAAAC,sBAAA,CAAA,aAAA,CAACC,0BAAO,EAAA,cAAA,CAAA,EAAA,IAAA,EAAA,EAAgB,IACrB,CAAA,EAAA,CAAC,EAAE,SAAW,EAAA,SAAA,EAAW,SAAW,EAAA,cAAA,EACnC,KAAA,kBAAA;AAAA,IACE,QAAA;AAAA,IACA;AAAA,MACE,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,YAAc,EAAA,cAAA;AAAA,KAChB;AAAA,IACA,wBAAA;AAAA,GAGN,CAAA,CAAA;AAEJ,CAAA;AAEgB,SAAA,cAAA,CACd,QACA,SACA,EAAA;AACA,EAAAC,6BAAA;AAAA,IACE,MAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAMC,wBAAkB,QAAQ,CAAA;AAAA,MAChC,WAAa,EAAA,aAAA;AAAA,MACb,UAAY,EAAA,+CAAA;AAAA,MACZ,UAAY,EAAA,YAAA;AAAA,MACZ,mBAAA;AAAA,MACA,KAAA,EAAO,aACF,CAAA,cAAA,CAAA,EAAA,EAAAC,0BAAA,CAAqC,QAAU,EAAA;AAAA,QAChD,YAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,OACD,CALI,CAAA,EAAA;AAAA,QAML,WAAa,EAAA;AAAA,UACX,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,eAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,UAAU,CAAA;AAAA,UACtD,WACE,EAAA,gEAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,QACA,UAAY,EAAA;AAAA,UACV,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,cAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,WAAW,CAAA;AAAA,UACvD,WACE,EAAA,+DAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,QACA,OAAS,EAAA;AAAA,UACP,IAAM,EAAA,cAAA;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,SAC9C;AAAA,OACF,CAAA;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Button } from 'react-aria-components';
|
|
3
3
|
import { g as getCommonInputProps } from './common-52c26d37.esm.js';
|
|
4
|
-
import { p as pickAriaComponentVariants } from './interaction-variant-utils-
|
|
4
|
+
import { p as pickAriaComponentVariants } from './interaction-variant-utils-c44a9d56.esm.js';
|
|
5
5
|
import { r as registerComponentHelper, m as makeComponentName } from './utils-cf2632c9.esm.js';
|
|
6
6
|
import '@plasmicapp/host/registerComponent';
|
|
7
7
|
|
|
@@ -99,6 +99,10 @@ function registerButton(loader, overrides) {
|
|
|
99
99
|
hidden: (ps) => Boolean(ps.submitsForm),
|
|
100
100
|
description: "Whether clicking this button should reset the enclosing form.",
|
|
101
101
|
advanced: true
|
|
102
|
+
},
|
|
103
|
+
onPress: {
|
|
104
|
+
type: "eventHandler",
|
|
105
|
+
argTypes: [{ name: "event", type: "object" }]
|
|
102
106
|
}
|
|
103
107
|
}),
|
|
104
108
|
trapsFocus: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerButton.esm.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import React from \"react\";\nimport type { ButtonProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { getCommonInputProps } from \"./common\";\nimport {\n UpdateInteractionVariant,\n pickAriaComponentVariants,\n} from \"./interaction-variant-utils\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\n\nconst BUTTON_INTERACTION_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n];\n\nconst { interactionVariants, withObservedValues } = pickAriaComponentVariants(\n BUTTON_INTERACTION_VARIANTS\n);\n\ninterface BaseButtonProps extends ButtonProps {\n children: React.ReactNode;\n resetsForm?: boolean;\n submitsForm?: boolean;\n // Optional callback to update the interaction variant state\n // as it's only provided if the component is the root of a Studio component\n updateInteractionVariant?: UpdateInteractionVariant<\n typeof BUTTON_INTERACTION_VARIANTS\n >;\n}\n\nexport function BaseButton(props: BaseButtonProps) {\n const {\n submitsForm,\n resetsForm,\n children,\n updateInteractionVariant,\n ...rest\n } = props;\n\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n return (\n <Button type={type} {...rest}>\n {({ isHovered, isPressed, isFocused, isFocusVisible }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n },\n updateInteractionVariant\n )\n }\n </Button>\n );\n}\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: makeComponentName(\"button\"),\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n interactionVariants,\n props: {\n ...getCommonInputProps<BaseButtonProps>(\"button\", [\n \"isDisabled\",\n \"aria-label\",\n \"children\",\n ]),\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.resetsForm),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.submitsForm),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EAClC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE,mBAAqB,EAAA,kBAAA,EAAuB,GAAA,yBAAA;AAAA,EAClD,2BAAA;AACF,CAAA,CAAA;AAaO,SAAS,WAAW,KAAwB,EAAA;AACjD,EAAA,MAMI,EALF,GAAA,KAAA,EAAA;AAAA,IAAA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,wBAAA;AAAA,GA1CJ,GA4CM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAJH,aAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,0BAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAA,MAAM,IAAO,GAAA,WAAA,GAAc,QAAW,GAAA,UAAA,GAAa,OAAU,GAAA,QAAA,CAAA;AAE7D,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,MAAO,EAAA,cAAA,CAAA,EAAA,IAAA,EAAA,EAAgB,IACrB,CAAA,EAAA,CAAC,EAAE,SAAW,EAAA,SAAA,EAAW,SAAW,EAAA,cAAA,EACnC,KAAA,kBAAA;AAAA,IACE,QAAA;AAAA,IACA;AAAA,MACE,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,YAAc,EAAA,cAAA;AAAA,KAChB;AAAA,IACA,wBAAA;AAAA,GAGN,CAAA,CAAA;AAEJ,CAAA;AAEgB,SAAA,cAAA,CACd,QACA,SACA,EAAA;AACA,EAAA,uBAAA;AAAA,IACE,MAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAM,kBAAkB,QAAQ,CAAA;AAAA,MAChC,WAAa,EAAA,aAAA;AAAA,MACb,UAAY,EAAA,+CAAA;AAAA,MACZ,UAAY,EAAA,YAAA;AAAA,MACZ,mBAAA;AAAA,MACA,KAAA,EAAO,aACF,CAAA,cAAA,CAAA,EAAA,EAAA,mBAAA,CAAqC,QAAU,EAAA;AAAA,QAChD,YAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,OACD,CALI,CAAA,EAAA;AAAA,QAML,WAAa,EAAA;AAAA,UACX,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,eAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,UAAU,CAAA;AAAA,UACtD,WACE,EAAA,gEAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,QACA,UAAY,EAAA;AAAA,UACV,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,cAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,WAAW,CAAA;AAAA,UACvD,WACE,EAAA,+DAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,OACF,CAAA;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"registerButton.esm.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import React from \"react\";\nimport type { ButtonProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { getCommonInputProps } from \"./common\";\nimport {\n UpdateInteractionVariant,\n pickAriaComponentVariants,\n} from \"./interaction-variant-utils\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\n\nconst BUTTON_INTERACTION_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n];\n\nconst { interactionVariants, withObservedValues } = pickAriaComponentVariants(\n BUTTON_INTERACTION_VARIANTS\n);\n\ninterface BaseButtonProps extends ButtonProps {\n children: React.ReactNode;\n resetsForm?: boolean;\n submitsForm?: boolean;\n // Optional callback to update the interaction variant state\n // as it's only provided if the component is the root of a Studio component\n updateInteractionVariant?: UpdateInteractionVariant<\n typeof BUTTON_INTERACTION_VARIANTS\n >;\n}\n\nexport function BaseButton(props: BaseButtonProps) {\n const {\n submitsForm,\n resetsForm,\n children,\n updateInteractionVariant,\n ...rest\n } = props;\n\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n return (\n <Button type={type} {...rest}>\n {({ isHovered, isPressed, isFocused, isFocusVisible }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n },\n updateInteractionVariant\n )\n }\n </Button>\n );\n}\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: makeComponentName(\"button\"),\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n interactionVariants,\n props: {\n ...getCommonInputProps<BaseButtonProps>(\"button\", [\n \"isDisabled\",\n \"aria-label\",\n \"children\",\n ]),\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.resetsForm),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (ps: BaseButtonProps) => Boolean(ps.submitsForm),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n onPress: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,2BAA8B,GAAA;AAAA,EAClC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,cAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE,mBAAqB,EAAA,kBAAA,EAAuB,GAAA,yBAAA;AAAA,EAClD,2BAAA;AACF,CAAA,CAAA;AAaO,SAAS,WAAW,KAAwB,EAAA;AACjD,EAAA,MAMI,EALF,GAAA,KAAA,EAAA;AAAA,IAAA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,wBAAA;AAAA,GA1CJ,GA4CM,EADC,EAAA,IAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAJH,aAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,0BAAA;AAAA,GAAA,CAAA,CAAA;AAIF,EAAA,MAAM,IAAO,GAAA,WAAA,GAAc,QAAW,GAAA,UAAA,GAAa,OAAU,GAAA,QAAA,CAAA;AAE7D,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,MAAO,EAAA,cAAA,CAAA,EAAA,IAAA,EAAA,EAAgB,IACrB,CAAA,EAAA,CAAC,EAAE,SAAW,EAAA,SAAA,EAAW,SAAW,EAAA,cAAA,EACnC,KAAA,kBAAA;AAAA,IACE,QAAA;AAAA,IACA;AAAA,MACE,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,OAAS,EAAA,SAAA;AAAA,MACT,YAAc,EAAA,cAAA;AAAA,KAChB;AAAA,IACA,wBAAA;AAAA,GAGN,CAAA,CAAA;AAEJ,CAAA;AAEgB,SAAA,cAAA,CACd,QACA,SACA,EAAA;AACA,EAAA,uBAAA;AAAA,IACE,MAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,MACE,IAAA,EAAM,kBAAkB,QAAQ,CAAA;AAAA,MAChC,WAAa,EAAA,aAAA;AAAA,MACb,UAAY,EAAA,+CAAA;AAAA,MACZ,UAAY,EAAA,YAAA;AAAA,MACZ,mBAAA;AAAA,MACA,KAAA,EAAO,aACF,CAAA,cAAA,CAAA,EAAA,EAAA,mBAAA,CAAqC,QAAU,EAAA;AAAA,QAChD,YAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,OACD,CALI,CAAA,EAAA;AAAA,QAML,WAAa,EAAA;AAAA,UACX,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,eAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,UAAU,CAAA;AAAA,UACtD,WACE,EAAA,gEAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,QACA,UAAY,EAAA;AAAA,UACV,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,cAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,MAAQ,EAAA,CAAC,EAAwB,KAAA,OAAA,CAAQ,GAAG,WAAW,CAAA;AAAA,UACvD,WACE,EAAA,+DAAA;AAAA,UACF,QAAU,EAAA,IAAA;AAAA,SACZ;AAAA,QACA,OAAS,EAAA;AAAA,UACP,IAAM,EAAA,cAAA;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,SAC9C;AAAA,OACF,CAAA;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var reactAriaComponents = require('react-aria-components');
|
|
5
5
|
var common = require('./common-e74a9214.cjs.js');
|
|
6
|
-
var interactionVariantUtils = require('./interaction-variant-utils-
|
|
6
|
+
var interactionVariantUtils = require('./interaction-variant-utils-244b74fb.cjs.js');
|
|
7
7
|
var utils = require('./utils-18b2465b.cjs.js');
|
|
8
8
|
require('@plasmicapp/host/registerComponent');
|
|
9
9
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Checkbox } from 'react-aria-components';
|
|
3
3
|
import { g as getCommonInputProps } from './common-52c26d37.esm.js';
|
|
4
|
-
import { p as pickAriaComponentVariants } from './interaction-variant-utils-
|
|
4
|
+
import { p as pickAriaComponentVariants } from './interaction-variant-utils-c44a9d56.esm.js';
|
|
5
5
|
import { r as registerComponentHelper, m as makeComponentName } from './utils-cf2632c9.esm.js';
|
|
6
6
|
import '@plasmicapp/host/registerComponent';
|
|
7
7
|
|
|
@@ -8,7 +8,7 @@ var registerFieldError = require('./registerFieldError.cjs.js');
|
|
|
8
8
|
var registerLabel = require('./registerLabel.cjs.js');
|
|
9
9
|
var utils = require('./utils-18b2465b.cjs.js');
|
|
10
10
|
require('react');
|
|
11
|
-
require('./interaction-variant-utils-
|
|
11
|
+
require('./interaction-variant-utils-244b74fb.cjs.js');
|
|
12
12
|
require('./registerText.cjs.js');
|
|
13
13
|
require('@plasmicapp/host/registerComponent');
|
|
14
14
|
|
|
@@ -6,7 +6,7 @@ import { registerFieldError } from './registerFieldError.esm.js';
|
|
|
6
6
|
import { registerLabel } from './registerLabel.esm.js';
|
|
7
7
|
import { r as registerComponentHelper, a as makeChildComponentName, m as makeComponentName } from './utils-cf2632c9.esm.js';
|
|
8
8
|
import 'react';
|
|
9
|
-
import './interaction-variant-utils-
|
|
9
|
+
import './interaction-variant-utils-c44a9d56.esm.js';
|
|
10
10
|
import './registerText.esm.js';
|
|
11
11
|
import '@plasmicapp/host/registerComponent';
|
|
12
12
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var i18n = require('@react-aria/i18n');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var reactAriaComponents = require('react-aria-components');
|
|
6
|
-
var contexts = require('./contexts-
|
|
7
|
-
var optionUtils = require('./option-utils-
|
|
6
|
+
var contexts = require('./contexts-dd0ce341.cjs.js');
|
|
7
|
+
var optionUtils = require('./option-utils-5e4e85bd.cjs.js');
|
|
8
8
|
var utils = require('./utils-18b2465b.cjs.js');
|
|
9
9
|
require('@plasmicapp/host/registerComponent');
|
|
10
10
|
|
|
@@ -62,7 +62,7 @@ function BaseComboBox(props) {
|
|
|
62
62
|
const filterOptions = (opts) => {
|
|
63
63
|
return utils.withoutNils(
|
|
64
64
|
opts.map((op) => {
|
|
65
|
-
if (op.type === "
|
|
65
|
+
if (op.type === "option-group") {
|
|
66
66
|
return __spreadProps(__spreadValues({}, op), {
|
|
67
67
|
items: op.items ? filterOptions(op.items) : void 0
|
|
68
68
|
});
|
|
@@ -77,18 +77,18 @@ function BaseComboBox(props) {
|
|
|
77
77
|
);
|
|
78
78
|
};
|
|
79
79
|
return filterOptions(options);
|
|
80
|
-
}, [options,
|
|
80
|
+
}, [filterValue, options, contains, optionText]);
|
|
81
81
|
const flattenedOptions = React__default.default.useMemo(
|
|
82
82
|
() => optionUtils.flattenOptions(options),
|
|
83
83
|
[options]
|
|
84
84
|
);
|
|
85
|
-
const disabledKeys = flattenedOptions.filter((op) => op.isDisabled).map((op) => op.
|
|
85
|
+
const disabledKeys = flattenedOptions.filter((op) => op.isDisabled).map((op) => op.id);
|
|
86
86
|
const onSelectionChange = React__default.default.useCallback(
|
|
87
87
|
(key) => {
|
|
88
88
|
if (key === null) {
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
|
-
const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find((op) => op.
|
|
91
|
+
const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find((op) => op.id === key);
|
|
92
92
|
if (valueType === "text") {
|
|
93
93
|
if (selectedOption) {
|
|
94
94
|
onChange == null ? void 0 : onChange(optionText(selectedOption));
|
|
@@ -100,7 +100,7 @@ function BaseComboBox(props) {
|
|
|
100
100
|
onFilterValueChange == null ? void 0 : onFilterValueChange(optionText(selectedOption));
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
|
-
[
|
|
103
|
+
[flattenedOptions, valueType, onChange, optionText, onFilterValueChange]
|
|
104
104
|
);
|
|
105
105
|
const onInputValueChange = React__default.default.useCallback(
|
|
106
106
|
(newValue) => {
|
|
@@ -131,7 +131,7 @@ function BaseComboBox(props) {
|
|
|
131
131
|
const onBlur = React__default.default.useCallback(() => {
|
|
132
132
|
if (!allowsCustomValue) {
|
|
133
133
|
const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find(
|
|
134
|
-
(op) => valueType === "text" ? optionText(op) === value : op.
|
|
134
|
+
(op) => valueType === "text" ? optionText(op) === value : op.id === value
|
|
135
135
|
);
|
|
136
136
|
if (selectedOption) {
|
|
137
137
|
const selectedOptionText = optionText(selectedOption);
|
|
@@ -142,10 +142,11 @@ function BaseComboBox(props) {
|
|
|
142
142
|
}
|
|
143
143
|
}, [
|
|
144
144
|
allowsCustomValue,
|
|
145
|
-
valueType,
|
|
146
145
|
flattenedOptions,
|
|
147
|
-
|
|
146
|
+
valueType,
|
|
148
147
|
optionText,
|
|
148
|
+
value,
|
|
149
|
+
filterValue,
|
|
149
150
|
onFilterValueChange
|
|
150
151
|
]);
|
|
151
152
|
return /* @__PURE__ */ React__default.default.createElement(
|
|
@@ -178,15 +179,6 @@ function BaseComboBox(props) {
|
|
|
178
179
|
contexts.PlasmicListBoxContext.Provider,
|
|
179
180
|
{
|
|
180
181
|
value: {
|
|
181
|
-
makeItemProps: (item) => ({
|
|
182
|
-
key: item.value,
|
|
183
|
-
textValue: optionText(item),
|
|
184
|
-
children: optionText(item)
|
|
185
|
-
}),
|
|
186
|
-
makeSectionProps: (section) => ({
|
|
187
|
-
section,
|
|
188
|
-
key: section.key
|
|
189
|
-
}),
|
|
190
182
|
getItemType: (option) => option.type === "section" ? "section" : "item"
|
|
191
183
|
}
|
|
192
184
|
},
|
|
@@ -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 {\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\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 === \"section\") {\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 }, [options, filterValue, contains]);\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.value);\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.value === 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 [onChange, onFilterValueChange, flattenedOptions, optionText]\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.value === value\n );\n if (selectedOption) {\n const selectedOptionText = optionText(selectedOption);\n if (selectedOptionText !== filterValue) {\n onFilterValueChange?.(selectedOptionText);\n }\n }\n }\n }, [\n allowsCustomValue,\n valueType,\n flattenedOptions,\n value,\n optionText,\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 makeItemProps: (item) => ({\n key: item.value,\n textValue: optionText(item),\n children: optionText(item),\n }),\n makeSectionProps: (section) => ({\n section,\n key: section.key,\n }),\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 },\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"],"mappings":"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"}
|
|
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 {\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 },\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"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useFilter } from '@react-aria/i18n';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { ComboBox, ComboBoxStateContext } from 'react-aria-components';
|
|
4
|
-
import { P as PlasmicListBoxContext, a as PlasmicInputContext } from './contexts-
|
|
5
|
-
import { u as useStrictOptions, f as flattenOptions, m as makeOptionsPropType, a as makeValuePropType } from './option-utils-
|
|
4
|
+
import { P as PlasmicListBoxContext, a as PlasmicInputContext } from './contexts-8a2a183b.esm.js';
|
|
5
|
+
import { u as useStrictOptions, f as flattenOptions, m as makeOptionsPropType, a as makeValuePropType } from './option-utils-4f037568.esm.js';
|
|
6
6
|
import { e as extractPlasmicDataProps, r as registerComponentHelper, w as withoutNils, m as makeComponentName } from './utils-cf2632c9.esm.js';
|
|
7
7
|
import '@plasmicapp/host/registerComponent';
|
|
8
8
|
|
|
@@ -56,7 +56,7 @@ function BaseComboBox(props) {
|
|
|
56
56
|
const filterOptions = (opts) => {
|
|
57
57
|
return withoutNils(
|
|
58
58
|
opts.map((op) => {
|
|
59
|
-
if (op.type === "
|
|
59
|
+
if (op.type === "option-group") {
|
|
60
60
|
return __spreadProps(__spreadValues({}, op), {
|
|
61
61
|
items: op.items ? filterOptions(op.items) : void 0
|
|
62
62
|
});
|
|
@@ -71,18 +71,18 @@ function BaseComboBox(props) {
|
|
|
71
71
|
);
|
|
72
72
|
};
|
|
73
73
|
return filterOptions(options);
|
|
74
|
-
}, [options,
|
|
74
|
+
}, [filterValue, options, contains, optionText]);
|
|
75
75
|
const flattenedOptions = React.useMemo(
|
|
76
76
|
() => flattenOptions(options),
|
|
77
77
|
[options]
|
|
78
78
|
);
|
|
79
|
-
const disabledKeys = flattenedOptions.filter((op) => op.isDisabled).map((op) => op.
|
|
79
|
+
const disabledKeys = flattenedOptions.filter((op) => op.isDisabled).map((op) => op.id);
|
|
80
80
|
const onSelectionChange = React.useCallback(
|
|
81
81
|
(key) => {
|
|
82
82
|
if (key === null) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find((op) => op.
|
|
85
|
+
const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find((op) => op.id === key);
|
|
86
86
|
if (valueType === "text") {
|
|
87
87
|
if (selectedOption) {
|
|
88
88
|
onChange == null ? void 0 : onChange(optionText(selectedOption));
|
|
@@ -94,7 +94,7 @@ function BaseComboBox(props) {
|
|
|
94
94
|
onFilterValueChange == null ? void 0 : onFilterValueChange(optionText(selectedOption));
|
|
95
95
|
}
|
|
96
96
|
},
|
|
97
|
-
[
|
|
97
|
+
[flattenedOptions, valueType, onChange, optionText, onFilterValueChange]
|
|
98
98
|
);
|
|
99
99
|
const onInputValueChange = React.useCallback(
|
|
100
100
|
(newValue) => {
|
|
@@ -125,7 +125,7 @@ function BaseComboBox(props) {
|
|
|
125
125
|
const onBlur = React.useCallback(() => {
|
|
126
126
|
if (!allowsCustomValue) {
|
|
127
127
|
const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find(
|
|
128
|
-
(op) => valueType === "text" ? optionText(op) === value : op.
|
|
128
|
+
(op) => valueType === "text" ? optionText(op) === value : op.id === value
|
|
129
129
|
);
|
|
130
130
|
if (selectedOption) {
|
|
131
131
|
const selectedOptionText = optionText(selectedOption);
|
|
@@ -136,10 +136,11 @@ function BaseComboBox(props) {
|
|
|
136
136
|
}
|
|
137
137
|
}, [
|
|
138
138
|
allowsCustomValue,
|
|
139
|
-
valueType,
|
|
140
139
|
flattenedOptions,
|
|
141
|
-
|
|
140
|
+
valueType,
|
|
142
141
|
optionText,
|
|
142
|
+
value,
|
|
143
|
+
filterValue,
|
|
143
144
|
onFilterValueChange
|
|
144
145
|
]);
|
|
145
146
|
return /* @__PURE__ */ React.createElement(
|
|
@@ -172,15 +173,6 @@ function BaseComboBox(props) {
|
|
|
172
173
|
PlasmicListBoxContext.Provider,
|
|
173
174
|
{
|
|
174
175
|
value: {
|
|
175
|
-
makeItemProps: (item) => ({
|
|
176
|
-
key: item.value,
|
|
177
|
-
textValue: optionText(item),
|
|
178
|
-
children: optionText(item)
|
|
179
|
-
}),
|
|
180
|
-
makeSectionProps: (section) => ({
|
|
181
|
-
section,
|
|
182
|
-
key: section.key
|
|
183
|
-
}),
|
|
184
176
|
getItemType: (option) => option.type === "section" ? "section" : "item"
|
|
185
177
|
}
|
|
186
178
|
},
|