@plasmicpkgs/react-aria 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/contexts.d.ts +14 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/option-utils.d.ts +51 -0
  6. package/dist/react-aria.esm.js +1191 -0
  7. package/dist/react-aria.esm.js.map +1 -0
  8. package/dist/react-aria.js +1198 -0
  9. package/dist/react-aria.js.map +1 -0
  10. package/dist/registerButton.d.ts +4 -0
  11. package/dist/registerComboBox.d.ts +21 -0
  12. package/dist/registerHeader.d.ts +5 -0
  13. package/dist/registerInput.d.ts +5 -0
  14. package/dist/registerLabel.d.ts +5 -0
  15. package/dist/registerListBox.d.ts +14 -0
  16. package/dist/registerListBoxItem.d.ts +7 -0
  17. package/dist/registerPopover.d.ts +7 -0
  18. package/dist/registerSection.d.ts +14 -0
  19. package/dist/registerSelect.d.ts +23 -0
  20. package/dist/utils.d.ts +18 -0
  21. package/package.json +74 -0
  22. package/skinny/contexts-c0294d96.cjs.js +24 -0
  23. package/skinny/contexts-c0294d96.cjs.js.map +1 -0
  24. package/skinny/contexts-fd3e1077.esm.js +12 -0
  25. package/skinny/contexts-fd3e1077.esm.js.map +1 -0
  26. package/skinny/contexts.d.ts +14 -0
  27. package/skinny/option-utils-0db61f6d.cjs.js +162 -0
  28. package/skinny/option-utils-0db61f6d.cjs.js.map +1 -0
  29. package/skinny/option-utils-765a1782.esm.js +153 -0
  30. package/skinny/option-utils-765a1782.esm.js.map +1 -0
  31. package/skinny/option-utils.d.ts +51 -0
  32. package/skinny/registerButton.cjs.js +31 -0
  33. package/skinny/registerButton.cjs.js.map +1 -0
  34. package/skinny/registerButton.d.ts +4 -0
  35. package/skinny/registerButton.esm.js +26 -0
  36. package/skinny/registerButton.esm.js.map +1 -0
  37. package/skinny/registerComboBox.cjs.js +291 -0
  38. package/skinny/registerComboBox.cjs.js.map +1 -0
  39. package/skinny/registerComboBox.d.ts +21 -0
  40. package/skinny/registerComboBox.esm.js +284 -0
  41. package/skinny/registerComboBox.esm.js.map +1 -0
  42. package/skinny/registerHeader.cjs.js +51 -0
  43. package/skinny/registerHeader.cjs.js.map +1 -0
  44. package/skinny/registerHeader.d.ts +5 -0
  45. package/skinny/registerHeader.esm.js +44 -0
  46. package/skinny/registerHeader.esm.js.map +1 -0
  47. package/skinny/registerInput.cjs.js +78 -0
  48. package/skinny/registerInput.cjs.js.map +1 -0
  49. package/skinny/registerInput.d.ts +5 -0
  50. package/skinny/registerInput.esm.js +71 -0
  51. package/skinny/registerInput.esm.js.map +1 -0
  52. package/skinny/registerLabel.cjs.js +59 -0
  53. package/skinny/registerLabel.cjs.js.map +1 -0
  54. package/skinny/registerLabel.d.ts +5 -0
  55. package/skinny/registerLabel.esm.js +52 -0
  56. package/skinny/registerLabel.esm.js.map +1 -0
  57. package/skinny/registerListBox.cjs.js +145 -0
  58. package/skinny/registerListBox.cjs.js.map +1 -0
  59. package/skinny/registerListBox.d.ts +14 -0
  60. package/skinny/registerListBox.esm.js +138 -0
  61. package/skinny/registerListBox.esm.js.map +1 -0
  62. package/skinny/registerListBoxItem.cjs.js +72 -0
  63. package/skinny/registerListBoxItem.cjs.js.map +1 -0
  64. package/skinny/registerListBoxItem.d.ts +7 -0
  65. package/skinny/registerListBoxItem.esm.js +65 -0
  66. package/skinny/registerListBoxItem.esm.js.map +1 -0
  67. package/skinny/registerPopover.cjs.js +111 -0
  68. package/skinny/registerPopover.cjs.js.map +1 -0
  69. package/skinny/registerPopover.d.ts +7 -0
  70. package/skinny/registerPopover.esm.js +104 -0
  71. package/skinny/registerPopover.esm.js.map +1 -0
  72. package/skinny/registerSection.cjs.js +82 -0
  73. package/skinny/registerSection.cjs.js.map +1 -0
  74. package/skinny/registerSection.d.ts +14 -0
  75. package/skinny/registerSection.esm.js +75 -0
  76. package/skinny/registerSection.esm.js.map +1 -0
  77. package/skinny/registerSelect.cjs.js +199 -0
  78. package/skinny/registerSelect.cjs.js.map +1 -0
  79. package/skinny/registerSelect.d.ts +23 -0
  80. package/skinny/registerSelect.esm.js +189 -0
  81. package/skinny/registerSelect.esm.js.map +1 -0
  82. package/skinny/utils-044c7f37.cjs.js +74 -0
  83. package/skinny/utils-044c7f37.cjs.js.map +1 -0
  84. package/skinny/utils-d92b3b76.esm.js +64 -0
  85. package/skinny/utils-d92b3b76.esm.js.map +1 -0
  86. package/skinny/utils.d.ts +18 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-utils-0db61f6d.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>) =>\n | {\n type?: \"item\";\n value: string;\n label?: string;\n isDisabled?: boolean;\n }\n | {\n type: \"section\";\n label?: string;\n items?: FlexOptionType<T>[];\n };\n}\n\nexport interface StrictItemType {\n type?: \"item\";\n value: string;\n label?: string;\n isDisabled?: boolean;\n}\n\nexport interface StrictSectionType {\n type: \"section\";\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\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 value: op,\n };\n return item;\n } else if (optionInfo) {\n const info = optionInfo(op);\n if (info.type === \"section\") {\n const section: StrictSectionType = {\n type: \"section\",\n items: info.items\n ?.map?.((item) => makeStrict(item) as StrictItemType)\n ?.filter((x) => !!x),\n label: info.label,\n key: `section-${sectionCount}`,\n };\n sectionCount += 1;\n return section;\n } else {\n let item = info;\n if (!(\"value\" in item)) {\n item = {\n type: \"item\",\n value: 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: \"section\",\n items: op.items\n ?.map?.((item) => makeStrict(item) as StrictItemType)\n ?.filter((x) => !!x),\n label: op.label,\n key: `section-${sectionCount}`,\n };\n sectionCount += 1;\n return section;\n } else {\n let item = op;\n if (!(\"value\" in item)) {\n item = {\n type: \"item\",\n value: 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.value;\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 === \"section\" ? 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.value,\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 value: {\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.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n },\n },\n },\n defaultValue: [\n {\n value: \"option1\",\n label: \"Option 1\",\n type: \"option\",\n },\n {\n value: \"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) => {\n const { options, optionText } = deriveStrictOptions(ps);\n return flattenOptions(options).map((op) => ({\n value: op.value,\n label: optionText(op),\n }));\n },\n };\n return type;\n}\n"],"names":["React","_a"],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ import React from 'react';
2
+
3
+ function useStrictOptions(props) {
4
+ const { options, optionInfo } = props;
5
+ return React.useMemo(() => {
6
+ return deriveStrictOptions({ options, optionInfo });
7
+ }, [options, optionInfo]);
8
+ }
9
+ function deriveStrictOptions(props) {
10
+ var _a;
11
+ const { options, optionInfo } = props;
12
+ let sectionCount = 0;
13
+ const makeStrict = (op) => {
14
+ var _a2, _b, _c, _d, _e, _f;
15
+ if (!op) {
16
+ return void 0;
17
+ } else if (typeof op === "string" || typeof op === "number") {
18
+ const item = {
19
+ value: op
20
+ };
21
+ return item;
22
+ } else if (optionInfo) {
23
+ const info = optionInfo(op);
24
+ if (info.type === "section") {
25
+ const section = {
26
+ type: "section",
27
+ 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),
28
+ label: info.label,
29
+ key: `section-${sectionCount}`
30
+ };
31
+ sectionCount += 1;
32
+ return section;
33
+ } else {
34
+ let item = info;
35
+ if (!("value" in item)) {
36
+ item = {
37
+ type: "item",
38
+ value: JSON.stringify(item)
39
+ };
40
+ }
41
+ return item;
42
+ }
43
+ } else if (typeof op === "object") {
44
+ if ("items" in op) {
45
+ const section = {
46
+ type: "section",
47
+ 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),
48
+ label: op.label,
49
+ key: `section-${sectionCount}`
50
+ };
51
+ sectionCount += 1;
52
+ return section;
53
+ } else {
54
+ let item = op;
55
+ if (!("value" in item)) {
56
+ item = {
57
+ type: "item",
58
+ value: JSON.stringify(item)
59
+ };
60
+ }
61
+ return item;
62
+ }
63
+ } else {
64
+ return void 0;
65
+ }
66
+ };
67
+ const strictOptions = (_a = options == null ? void 0 : options.map(makeStrict)) == null ? void 0 : _a.filter((x) => !!x);
68
+ const optionText = (op) => {
69
+ var _a2;
70
+ return (_a2 = op.label) != null ? _a2 : op.value;
71
+ };
72
+ return { options: strictOptions, optionText };
73
+ }
74
+ function flattenOptions(options) {
75
+ if (!options) {
76
+ return [];
77
+ } else {
78
+ return options.flatMap(
79
+ (op) => {
80
+ var _a;
81
+ return op.type === "section" ? (_a = op.items) != null ? _a : [] : op;
82
+ }
83
+ );
84
+ }
85
+ }
86
+ function makeOptionsPropType() {
87
+ const type = {
88
+ type: "array",
89
+ itemType: {
90
+ type: "object",
91
+ nameFunc: (item) => item.label || item.value,
92
+ fields: {
93
+ type: {
94
+ type: "choice",
95
+ options: [
96
+ { value: "option", label: "Option" },
97
+ { value: "option-group", label: "Option Group" }
98
+ ],
99
+ defaultValue: "option"
100
+ },
101
+ value: {
102
+ type: "string",
103
+ hidden: (_ps, _ctx, { item }) => item.type !== "option"
104
+ },
105
+ label: "string",
106
+ items: {
107
+ type: "array",
108
+ displayName: "Options",
109
+ hidden: (_ps, _ctx, { item }) => {
110
+ return item.type !== "option-group";
111
+ },
112
+ itemType: {
113
+ type: "object",
114
+ nameFunc: (item) => item.label || item.value,
115
+ fields: {
116
+ value: "string",
117
+ label: "string"
118
+ }
119
+ }
120
+ }
121
+ }
122
+ },
123
+ defaultValue: [
124
+ {
125
+ value: "option1",
126
+ label: "Option 1",
127
+ type: "option"
128
+ },
129
+ {
130
+ value: "option2",
131
+ label: "Option 2",
132
+ type: "option"
133
+ }
134
+ ]
135
+ };
136
+ return type;
137
+ }
138
+ function makeValuePropType() {
139
+ const type = {
140
+ type: "choice",
141
+ options: (ps) => {
142
+ const { options, optionText } = deriveStrictOptions(ps);
143
+ return flattenOptions(options).map((op) => ({
144
+ value: op.value,
145
+ label: optionText(op)
146
+ }));
147
+ }
148
+ };
149
+ return type;
150
+ }
151
+
152
+ export { makeValuePropType as a, flattenOptions as f, makeOptionsPropType as m, useStrictOptions as u };
153
+ //# sourceMappingURL=option-utils-765a1782.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-utils-765a1782.esm.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>) =>\n | {\n type?: \"item\";\n value: string;\n label?: string;\n isDisabled?: boolean;\n }\n | {\n type: \"section\";\n label?: string;\n items?: FlexOptionType<T>[];\n };\n}\n\nexport interface StrictItemType {\n type?: \"item\";\n value: string;\n label?: string;\n isDisabled?: boolean;\n}\n\nexport interface StrictSectionType {\n type: \"section\";\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\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 value: op,\n };\n return item;\n } else if (optionInfo) {\n const info = optionInfo(op);\n if (info.type === \"section\") {\n const section: StrictSectionType = {\n type: \"section\",\n items: info.items\n ?.map?.((item) => makeStrict(item) as StrictItemType)\n ?.filter((x) => !!x),\n label: info.label,\n key: `section-${sectionCount}`,\n };\n sectionCount += 1;\n return section;\n } else {\n let item = info;\n if (!(\"value\" in item)) {\n item = {\n type: \"item\",\n value: 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: \"section\",\n items: op.items\n ?.map?.((item) => makeStrict(item) as StrictItemType)\n ?.filter((x) => !!x),\n label: op.label,\n key: `section-${sectionCount}`,\n };\n sectionCount += 1;\n return section;\n } else {\n let item = op;\n if (!(\"value\" in item)) {\n item = {\n type: \"item\",\n value: 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.value;\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 === \"section\" ? 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.value,\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 value: {\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.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n },\n },\n },\n defaultValue: [\n {\n value: \"option1\",\n label: \"Option 1\",\n type: \"option\",\n },\n {\n value: \"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) => {\n const { options, optionText } = deriveStrictOptions(ps);\n return flattenOptions(options).map((op) => ({\n value: op.value,\n label: optionText(op),\n }));\n },\n };\n return type;\n}\n"],"names":["_a"],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { ArrayType } from "@plasmicapp/host/registerComponent";
2
+ export interface ObjectSectionType<T extends object> {
3
+ label?: string;
4
+ items?: ObjectItemType<T>[];
5
+ }
6
+ interface FlexSectionType<T extends object> {
7
+ label?: string;
8
+ items?: FlexItemType<T>[];
9
+ }
10
+ export type ObjectItemType<T extends object> = StrictOptionType | T;
11
+ type FlexItemType<T extends object> = ObjectItemType<T> | string;
12
+ export type FlexOptionType<T extends object> = FlexItemType<T> | FlexSectionType<T>;
13
+ export type ObjectOptionType<T extends object> = ObjectSectionType<T> | ObjectItemType<T>;
14
+ export interface HasOptions<T extends object> {
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
+ };
26
+ }
27
+ export interface StrictItemType {
28
+ type?: "item";
29
+ value: string;
30
+ label?: string;
31
+ isDisabled?: boolean;
32
+ }
33
+ export interface StrictSectionType {
34
+ type: "section";
35
+ label?: string;
36
+ items?: StrictItemType[];
37
+ key: string;
38
+ }
39
+ export type StrictOptionType = StrictItemType | StrictSectionType;
40
+ export declare function useStrictOptions<T extends object>(props: HasOptions<T>): {
41
+ options: StrictOptionType[] | undefined;
42
+ optionText: (op: StrictItemType) => string;
43
+ };
44
+ export declare function deriveStrictOptions<T extends object>(props: HasOptions<T>): {
45
+ options: StrictOptionType[] | undefined;
46
+ optionText: (op: StrictItemType) => string;
47
+ };
48
+ export declare function flattenOptions(options: (StrictItemType | StrictSectionType)[] | undefined): StrictItemType[];
49
+ export declare function makeOptionsPropType(): ArrayType<HasOptions<any>>;
50
+ export declare function makeValuePropType(): import("@plasmicapp/host/registerComponent").SingleChoiceType<HasOptions<any>>;
51
+ export {};
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var reactAriaComponents = require('react-aria-components');
4
+ var utils = require('./utils-044c7f37.cjs.js');
5
+ require('@plasmicapp/host/registerComponent');
6
+
7
+ function registerButton(loader, overrides) {
8
+ utils.registerComponentHelper(
9
+ loader,
10
+ reactAriaComponents.Button,
11
+ {
12
+ name: "plasmic-react-aria-button",
13
+ displayName: "BaseButton",
14
+ importPath: "@plasmicpkgs/react-aria/registerButton",
15
+ importName: "BaseButton",
16
+ props: {
17
+ children: {
18
+ type: "slot"
19
+ }
20
+ }
21
+ },
22
+ overrides
23
+ );
24
+ }
25
+
26
+ Object.defineProperty(exports, 'BaseButton', {
27
+ enumerable: true,
28
+ get: function () { return reactAriaComponents.Button; }
29
+ });
30
+ exports.registerButton = registerButton;
31
+ //# sourceMappingURL=registerButton.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerButton.cjs.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import { Button as BaseButton } from \"react-aria-components\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\n\nexport { BaseButton };\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: \"plasmic-react-aria-button\",\n displayName: \"BaseButton\",\n importPath: \"@plasmicpkgs/react-aria/registerButton\",\n importName: \"BaseButton\",\n props: {\n children: {\n type: \"slot\",\n },\n },\n },\n overrides\n );\n}\n"],"names":["registerComponentHelper","BaseButton"],"mappings":";;;;;;AASgB,SAAA,cAAA,CACd,QACA,SACA,EAAA;AACA,EAAAA,6BAAA;AAAA,IACE,MAAA;AAAA,IACAC,0BAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,2BAAA;AAAA,MACN,WAAa,EAAA,YAAA;AAAA,MACb,UAAY,EAAA,wCAAA;AAAA,MACZ,UAAY,EAAA,YAAA;AAAA,MACZ,KAAO,EAAA;AAAA,QACL,QAAU,EAAA;AAAA,UACR,IAAM,EAAA,MAAA;AAAA,SACR;AAAA,OACF;AAAA,KACF;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ import { Button as BaseButton } from "react-aria-components";
2
+ import { CodeComponentMetaOverrides, Registerable } from "./utils";
3
+ export { BaseButton };
4
+ export declare function registerButton(loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseButton>): void;
@@ -0,0 +1,26 @@
1
+ import { Button } from 'react-aria-components';
2
+ export { Button as BaseButton } from 'react-aria-components';
3
+ import { r as registerComponentHelper } from './utils-d92b3b76.esm.js';
4
+ import '@plasmicapp/host/registerComponent';
5
+
6
+ function registerButton(loader, overrides) {
7
+ registerComponentHelper(
8
+ loader,
9
+ Button,
10
+ {
11
+ name: "plasmic-react-aria-button",
12
+ displayName: "BaseButton",
13
+ importPath: "@plasmicpkgs/react-aria/registerButton",
14
+ importName: "BaseButton",
15
+ props: {
16
+ children: {
17
+ type: "slot"
18
+ }
19
+ }
20
+ },
21
+ overrides
22
+ );
23
+ }
24
+
25
+ export { registerButton };
26
+ //# sourceMappingURL=registerButton.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerButton.esm.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import { Button as BaseButton } from \"react-aria-components\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\n\nexport { BaseButton };\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: \"plasmic-react-aria-button\",\n displayName: \"BaseButton\",\n importPath: \"@plasmicpkgs/react-aria/registerButton\",\n importName: \"BaseButton\",\n props: {\n children: {\n type: \"slot\",\n },\n },\n },\n overrides\n );\n}\n"],"names":["BaseButton"],"mappings":";;;;;AASgB,SAAA,cAAA,CACd,QACA,SACA,EAAA;AACA,EAAA,uBAAA;AAAA,IACE,MAAA;AAAA,IACAA,MAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,2BAAA;AAAA,MACN,WAAa,EAAA,YAAA;AAAA,MACb,UAAY,EAAA,wCAAA;AAAA,MACZ,UAAY,EAAA,YAAA;AAAA,MACZ,KAAO,EAAA;AAAA,QACL,QAAU,EAAA;AAAA,UACR,IAAM,EAAA,MAAA;AAAA,SACR;AAAA,OACF;AAAA,KACF;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}
@@ -0,0 +1,291 @@
1
+ 'use strict';
2
+
3
+ var i18n = require('@react-aria/i18n');
4
+ var React = require('react');
5
+ var reactAriaComponents = require('react-aria-components');
6
+ var contexts = require('./contexts-c0294d96.cjs.js');
7
+ var optionUtils = require('./option-utils-0db61f6d.cjs.js');
8
+ var utils = require('./utils-044c7f37.cjs.js');
9
+ require('@plasmicapp/host/registerComponent');
10
+
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefault(React);
14
+
15
+ var __defProp = Object.defineProperty;
16
+ var __defProps = Object.defineProperties;
17
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
18
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
19
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
20
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
21
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
22
+ var __spreadValues = (a, b) => {
23
+ for (var prop in b || (b = {}))
24
+ if (__hasOwnProp.call(b, prop))
25
+ __defNormalProp(a, prop, b[prop]);
26
+ if (__getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(b)) {
28
+ if (__propIsEnum.call(b, prop))
29
+ __defNormalProp(a, prop, b[prop]);
30
+ }
31
+ return a;
32
+ };
33
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
34
+ function BaseComboBox(props) {
35
+ const {
36
+ value,
37
+ onChange,
38
+ menuTrigger,
39
+ filterValue,
40
+ onFilterValueChange,
41
+ valueType,
42
+ allowsCustomValue,
43
+ placeholder,
44
+ previewOpen,
45
+ onOpenChange,
46
+ isDisabled,
47
+ className,
48
+ style,
49
+ structure,
50
+ name
51
+ } = props;
52
+ const { options, optionText } = optionUtils.useStrictOptions(props);
53
+ const { contains } = i18n.useFilter({ sensitivity: "base" });
54
+ const [showAllOptions, setShowAllOptions] = React__default.default.useState(false);
55
+ const filteredOptions = React__default.default.useMemo(() => {
56
+ if (!filterValue || filterValue.trim().length === 0) {
57
+ return options;
58
+ }
59
+ if (!options) {
60
+ return options;
61
+ }
62
+ const filterOptions = (options2) => {
63
+ return utils.withoutNils(
64
+ options2.map((op) => {
65
+ if (op.type === "section") {
66
+ return __spreadProps(__spreadValues({}, op), {
67
+ items: op.items ? filterOptions(op.items) : void 0
68
+ });
69
+ } else {
70
+ if (contains(optionText(op), filterValue)) {
71
+ return op;
72
+ } else {
73
+ return void 0;
74
+ }
75
+ }
76
+ })
77
+ );
78
+ };
79
+ return filterOptions(options);
80
+ }, [options, filterValue, contains]);
81
+ const flattenedOptions = React__default.default.useMemo(
82
+ () => optionUtils.flattenOptions(options),
83
+ [options]
84
+ );
85
+ const disabledKeys = flattenedOptions.filter((op) => op.isDisabled).map((op) => op.value);
86
+ const onSelectionChange = React__default.default.useCallback(
87
+ (key) => {
88
+ const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find((op) => op.value === key);
89
+ if (valueType === "text") {
90
+ if (selectedOption) {
91
+ onChange == null ? void 0 : onChange(optionText(selectedOption));
92
+ }
93
+ } else {
94
+ onChange == null ? void 0 : onChange(key);
95
+ }
96
+ if (selectedOption) {
97
+ onFilterValueChange == null ? void 0 : onFilterValueChange(optionText(selectedOption));
98
+ }
99
+ },
100
+ [onChange, onFilterValueChange, flattenedOptions, optionText]
101
+ );
102
+ const onInputValueChange = React__default.default.useCallback(
103
+ (newValue) => {
104
+ onFilterValueChange == null ? void 0 : onFilterValueChange(newValue);
105
+ setShowAllOptions(false);
106
+ if (valueType === "text") {
107
+ if (allowsCustomValue) {
108
+ onChange == null ? void 0 : onChange(newValue);
109
+ } else {
110
+ const matchingOption = flattenedOptions == null ? void 0 : flattenedOptions.find(
111
+ (op) => optionText(op) === newValue
112
+ );
113
+ if (matchingOption) {
114
+ onChange == null ? void 0 : onChange(optionText(matchingOption));
115
+ }
116
+ }
117
+ }
118
+ },
119
+ [
120
+ onFilterValueChange,
121
+ onChange,
122
+ flattenedOptions,
123
+ optionText,
124
+ valueType,
125
+ allowsCustomValue
126
+ ]
127
+ );
128
+ const onBlur = React__default.default.useCallback(() => {
129
+ if (!allowsCustomValue) {
130
+ const selectedOption = flattenedOptions == null ? void 0 : flattenedOptions.find(
131
+ (op) => valueType === "text" ? optionText(op) === value : op.value === value
132
+ );
133
+ if (selectedOption) {
134
+ const selectedOptionText = optionText(selectedOption);
135
+ if (selectedOptionText !== filterValue) {
136
+ onFilterValueChange == null ? void 0 : onFilterValueChange(selectedOptionText);
137
+ }
138
+ }
139
+ }
140
+ }, [
141
+ allowsCustomValue,
142
+ valueType,
143
+ flattenedOptions,
144
+ value,
145
+ optionText,
146
+ onFilterValueChange
147
+ ]);
148
+ return /* @__PURE__ */ React__default.default.createElement(
149
+ reactAriaComponents.ComboBox,
150
+ __spreadValues({
151
+ selectedKey: value,
152
+ onSelectionChange,
153
+ isDisabled,
154
+ className,
155
+ style,
156
+ items: showAllOptions ? options : filteredOptions,
157
+ menuTrigger,
158
+ inputValue: filterValue,
159
+ onInputChange: onInputValueChange,
160
+ allowsCustomValue,
161
+ disabledKeys,
162
+ onOpenChange: (isOpen, trigger) => {
163
+ if (isOpen && trigger === "manual") {
164
+ setShowAllOptions(true);
165
+ } else {
166
+ setShowAllOptions(false);
167
+ }
168
+ onOpenChange == null ? void 0 : onOpenChange(isOpen);
169
+ },
170
+ onBlur,
171
+ formValue: valueType === "text" ? "text" : "key",
172
+ name
173
+ }, utils.extractPlasmicDataProps(props)),
174
+ /* @__PURE__ */ React__default.default.createElement(
175
+ contexts.PlasmicListBoxContext.Provider,
176
+ {
177
+ value: {
178
+ makeItemProps: (item) => ({
179
+ key: item.value,
180
+ textValue: optionText(item),
181
+ children: optionText(item)
182
+ }),
183
+ makeSectionProps: (section) => ({
184
+ section,
185
+ key: section.key
186
+ }),
187
+ getItemType: (option) => option.type === "section" ? "section" : "item"
188
+ }
189
+ },
190
+ /* @__PURE__ */ React__default.default.createElement(contexts.PlasmicInputContext.Provider, { value: { placeholder } }, structure)
191
+ ),
192
+ /* @__PURE__ */ React__default.default.createElement(BaseComboBoxEffects, { previewOpen })
193
+ );
194
+ }
195
+ function BaseComboBoxEffects(props) {
196
+ const { previewOpen } = props;
197
+ const comboBoxState = React__default.default.useContext(reactAriaComponents.ComboBoxStateContext);
198
+ const prevPreviewOpenRef = React__default.default.useRef(previewOpen);
199
+ React__default.default.useEffect(() => {
200
+ if (comboBoxState) {
201
+ if (previewOpen) {
202
+ comboBoxState.open(void 0, "manual");
203
+ } else if (prevPreviewOpenRef.current) {
204
+ comboBoxState.close();
205
+ }
206
+ }
207
+ prevPreviewOpenRef.current = previewOpen;
208
+ }, [previewOpen, comboBoxState, prevPreviewOpenRef]);
209
+ return null;
210
+ }
211
+ function registerComboBox(loader) {
212
+ const rootName = utils.makeComponentName("combobox");
213
+ utils.registerComponentHelper(loader, BaseComboBox, {
214
+ name: rootName,
215
+ displayName: "BaseComboBox",
216
+ importPath: "@plasmicpkgs/react-aria/registerComboBox",
217
+ importName: "BaseComboBox",
218
+ props: {
219
+ options: optionUtils.makeOptionsPropType(),
220
+ value: optionUtils.makeValuePropType(),
221
+ onChange: {
222
+ type: "eventHandler",
223
+ argTypes: [{ name: "value", type: "string" }]
224
+ },
225
+ filterValue: {
226
+ type: "string"
227
+ },
228
+ onFilterValueChange: {
229
+ type: "eventHandler",
230
+ argTypes: [{ name: "value", type: "string" }]
231
+ },
232
+ isDisabled: {
233
+ type: "boolean"
234
+ },
235
+ valueType: {
236
+ displayName: "`value` Type",
237
+ type: "choice",
238
+ options: [
239
+ { value: "value", label: "By option value" },
240
+ { value: "text", label: "By option text" }
241
+ ],
242
+ defaultValueHint: "value",
243
+ description: "This controls whether `value` and `onChange` are option values or option text. Choosing `text` allows you to optionally allow a custom value that's not in the provided list of options.",
244
+ advanced: true
245
+ },
246
+ allowsCustomValue: {
247
+ type: "boolean",
248
+ displayName: "Allows custom value?",
249
+ description: "Allows entering a value that is not one of the options",
250
+ hidden: (ps) => ps.valueType !== "text",
251
+ advanced: true
252
+ },
253
+ onOpenChange: {
254
+ type: "eventHandler",
255
+ argTypes: [{ name: "isOpen", type: "boolean" }]
256
+ },
257
+ structure: {
258
+ type: "slot"
259
+ },
260
+ previewOpen: {
261
+ type: "boolean",
262
+ displayName: "Preview opened?",
263
+ description: "Preview opened state while designing in Plasmic editor",
264
+ editOnly: true
265
+ }
266
+ },
267
+ states: {
268
+ value: {
269
+ type: "writable",
270
+ valueProp: "value",
271
+ onChangeProp: "onChange",
272
+ variableType: "text"
273
+ },
274
+ filterValue: {
275
+ type: "writable",
276
+ valueProp: "filterValue",
277
+ onChangeProp: "onFilterValueChange",
278
+ variableType: "text"
279
+ },
280
+ isOpen: {
281
+ type: "readonly",
282
+ onChangeProp: "onOpenChange",
283
+ variableType: "boolean"
284
+ }
285
+ }
286
+ });
287
+ }
288
+
289
+ exports.BaseComboBox = BaseComboBox;
290
+ exports.registerComboBox = registerComboBox;
291
+ //# sourceMappingURL=registerComboBox.cjs.js.map
@@ -0,0 +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 options: StrictOptionType[]\n ): StrictOptionType[] | undefined => {\n return withoutNils(\n options.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) => {\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: \"BaseComboBox\",\n importPath: \"@plasmicpkgs/react-aria/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","options","withoutNils","flattenOptions","ComboBox","extractPlasmicDataProps","PlasmicListBoxContext","PlasmicInputContext","ComboBoxStateContext","makeComponentName","registerComponentHelper","makeOptionsPropType","makeValuePropType"],"mappings":"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"}