@plasmicpkgs/react-aria 0.0.29 → 0.0.31

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 (173) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contexts.d.ts +3 -0
  3. package/dist/react-aria.esm.js +1759 -924
  4. package/dist/react-aria.esm.js.map +1 -1
  5. package/dist/react-aria.js +1758 -923
  6. package/dist/react-aria.js.map +1 -1
  7. package/dist/registerButton.d.ts +1 -0
  8. package/dist/registerCheckbox.d.ts +8 -2
  9. package/dist/registerCheckboxGroup.d.ts +2 -2
  10. package/dist/registerDescription.d.ts +2 -1
  11. package/dist/registerDialogTrigger.d.ts +1 -2
  12. package/dist/registerHeader.d.ts +1 -1
  13. package/dist/registerInput.d.ts +1 -0
  14. package/dist/registerListBox.d.ts +3 -6
  15. package/dist/registerListBoxItem.d.ts +3 -1
  16. package/dist/registerModal.d.ts +3 -1
  17. package/dist/registerPopover.d.ts +3 -0
  18. package/dist/registerRadio.d.ts +5 -2
  19. package/dist/registerRadioGroup.d.ts +3 -3
  20. package/dist/registerSection.d.ts +1 -1
  21. package/dist/registerSelect.d.ts +5 -2
  22. package/dist/registerText.d.ts +2 -1
  23. package/dist/registerTextField.d.ts +1 -0
  24. package/dist/registerTooltip.d.ts +2 -1
  25. package/dist/utils.d.ts +9 -2
  26. package/package.json +2 -2
  27. package/skinny/contexts-9475faad.esm.js +16 -0
  28. package/skinny/contexts-9475faad.esm.js.map +1 -0
  29. package/skinny/{contexts-dd0ce341.cjs.js → contexts-b21f6b12.cjs.js} +7 -1
  30. package/skinny/contexts-b21f6b12.cjs.js.map +1 -0
  31. package/skinny/contexts.d.ts +3 -0
  32. package/skinny/registerButton.cjs.js +19 -4
  33. package/skinny/registerButton.cjs.js.map +1 -1
  34. package/skinny/registerButton.d.ts +1 -0
  35. package/skinny/registerButton.esm.js +19 -5
  36. package/skinny/registerButton.esm.js.map +1 -1
  37. package/skinny/registerCheckbox.cjs.js +75 -6
  38. package/skinny/registerCheckbox.cjs.js.map +1 -1
  39. package/skinny/registerCheckbox.d.ts +8 -2
  40. package/skinny/registerCheckbox.esm.js +75 -7
  41. package/skinny/registerCheckbox.esm.js.map +1 -1
  42. package/skinny/registerCheckboxGroup.cjs.js +89 -13
  43. package/skinny/registerCheckboxGroup.cjs.js.map +1 -1
  44. package/skinny/registerCheckboxGroup.d.ts +2 -2
  45. package/skinny/registerCheckboxGroup.esm.js +88 -16
  46. package/skinny/registerCheckboxGroup.esm.js.map +1 -1
  47. package/skinny/registerComboBox.cjs.js +113 -8
  48. package/skinny/registerComboBox.cjs.js.map +1 -1
  49. package/skinny/registerComboBox.esm.js +109 -4
  50. package/skinny/registerComboBox.esm.js.map +1 -1
  51. package/skinny/registerDescription.cjs.js +10 -3
  52. package/skinny/registerDescription.cjs.js.map +1 -1
  53. package/skinny/registerDescription.d.ts +2 -1
  54. package/skinny/registerDescription.esm.js +10 -4
  55. package/skinny/registerDescription.esm.js.map +1 -1
  56. package/skinny/registerDialogTrigger.cjs.js +25 -4
  57. package/skinny/registerDialogTrigger.cjs.js.map +1 -1
  58. package/skinny/registerDialogTrigger.d.ts +1 -2
  59. package/skinny/registerDialogTrigger.esm.js +25 -4
  60. package/skinny/registerDialogTrigger.esm.js.map +1 -1
  61. package/skinny/registerFieldError.cjs.js +21 -11
  62. package/skinny/registerFieldError.cjs.js.map +1 -1
  63. package/skinny/registerFieldError.esm.js +21 -11
  64. package/skinny/registerFieldError.esm.js.map +1 -1
  65. package/skinny/registerForm.cjs.js +1 -1
  66. package/skinny/registerForm.esm.js +1 -1
  67. package/skinny/registerHeader.cjs.js +7 -3
  68. package/skinny/registerHeader.cjs.js.map +1 -1
  69. package/skinny/registerHeader.d.ts +1 -1
  70. package/skinny/registerHeader.esm.js +7 -3
  71. package/skinny/registerHeader.esm.js.map +1 -1
  72. package/skinny/registerInput.cjs.js +11 -2
  73. package/skinny/registerInput.cjs.js.map +1 -1
  74. package/skinny/registerInput.d.ts +1 -0
  75. package/skinny/registerInput.esm.js +11 -3
  76. package/skinny/registerInput.esm.js.map +1 -1
  77. package/skinny/registerLabel.cjs.js +1 -1
  78. package/skinny/registerLabel.esm.js +1 -1
  79. package/skinny/registerListBox-1effa43d.esm.js +299 -0
  80. package/skinny/registerListBox-1effa43d.esm.js.map +1 -0
  81. package/skinny/registerListBox-837b90d8.cjs.js +311 -0
  82. package/skinny/registerListBox-837b90d8.cjs.js.map +1 -0
  83. package/skinny/registerListBox.cjs.js +14 -108
  84. package/skinny/registerListBox.cjs.js.map +1 -1
  85. package/skinny/registerListBox.d.ts +3 -6
  86. package/skinny/registerListBox.esm.js +11 -106
  87. package/skinny/registerListBox.esm.js.map +1 -1
  88. package/skinny/registerListBoxItem.cjs.js +49 -5
  89. package/skinny/registerListBoxItem.cjs.js.map +1 -1
  90. package/skinny/registerListBoxItem.d.ts +3 -1
  91. package/skinny/registerListBoxItem.esm.js +49 -6
  92. package/skinny/registerListBoxItem.esm.js.map +1 -1
  93. package/skinny/registerModal.cjs.js +78 -9
  94. package/skinny/registerModal.cjs.js.map +1 -1
  95. package/skinny/registerModal.d.ts +3 -1
  96. package/skinny/registerModal.esm.js +78 -10
  97. package/skinny/registerModal.esm.js.map +1 -1
  98. package/skinny/registerPopover.cjs.js +56 -4
  99. package/skinny/registerPopover.cjs.js.map +1 -1
  100. package/skinny/registerPopover.d.ts +3 -0
  101. package/skinny/registerPopover.esm.js +55 -5
  102. package/skinny/registerPopover.esm.js.map +1 -1
  103. package/skinny/registerRadio.cjs.js +51 -6
  104. package/skinny/registerRadio.cjs.js.map +1 -1
  105. package/skinny/registerRadio.d.ts +5 -2
  106. package/skinny/registerRadio.esm.js +51 -7
  107. package/skinny/registerRadio.esm.js.map +1 -1
  108. package/skinny/registerRadioGroup.cjs.js +80 -16
  109. package/skinny/registerRadioGroup.cjs.js.map +1 -1
  110. package/skinny/registerRadioGroup.d.ts +3 -3
  111. package/skinny/registerRadioGroup.esm.js +79 -19
  112. package/skinny/registerRadioGroup.esm.js.map +1 -1
  113. package/skinny/registerSection.cjs.js +36 -12
  114. package/skinny/registerSection.cjs.js.map +1 -1
  115. package/skinny/registerSection.d.ts +1 -1
  116. package/skinny/registerSection.esm.js +36 -12
  117. package/skinny/registerSection.esm.js.map +1 -1
  118. package/skinny/registerSelect.cjs.js +133 -30
  119. package/skinny/registerSelect.cjs.js.map +1 -1
  120. package/skinny/registerSelect.d.ts +5 -2
  121. package/skinny/registerSelect.esm.js +130 -25
  122. package/skinny/registerSelect.esm.js.map +1 -1
  123. package/skinny/{registerSlider-73e80194.cjs.js → registerSlider-61c84cf7.cjs.js} +6 -11
  124. package/skinny/registerSlider-61c84cf7.cjs.js.map +1 -0
  125. package/skinny/{registerSlider-efdba013.esm.js → registerSlider-de8e9387.esm.js} +6 -11
  126. package/skinny/registerSlider-de8e9387.esm.js.map +1 -0
  127. package/skinny/registerSlider.cjs.js +3 -3
  128. package/skinny/registerSlider.esm.js +3 -3
  129. package/skinny/registerSliderOutput.cjs.js +1 -1
  130. package/skinny/registerSliderOutput.esm.js +1 -1
  131. package/skinny/registerSliderThumb.cjs.js +7 -3
  132. package/skinny/registerSliderThumb.cjs.js.map +1 -1
  133. package/skinny/registerSliderThumb.esm.js +7 -3
  134. package/skinny/registerSliderThumb.esm.js.map +1 -1
  135. package/skinny/registerSliderTrack.cjs.js +3 -3
  136. package/skinny/registerSliderTrack.esm.js +3 -3
  137. package/skinny/registerSwitch.cjs.js +83 -3
  138. package/skinny/registerSwitch.cjs.js.map +1 -1
  139. package/skinny/registerSwitch.esm.js +83 -3
  140. package/skinny/registerSwitch.esm.js.map +1 -1
  141. package/skinny/registerText.cjs.js +11 -4
  142. package/skinny/registerText.cjs.js.map +1 -1
  143. package/skinny/registerText.d.ts +2 -1
  144. package/skinny/registerText.esm.js +11 -5
  145. package/skinny/registerText.esm.js.map +1 -1
  146. package/skinny/registerTextArea.cjs.js +1 -1
  147. package/skinny/registerTextArea.esm.js +1 -1
  148. package/skinny/registerTextField.cjs.js +47 -6
  149. package/skinny/registerTextField.cjs.js.map +1 -1
  150. package/skinny/registerTextField.d.ts +1 -0
  151. package/skinny/registerTextField.esm.js +50 -10
  152. package/skinny/registerTextField.esm.js.map +1 -1
  153. package/skinny/registerTooltip.cjs.js +8 -6
  154. package/skinny/registerTooltip.cjs.js.map +1 -1
  155. package/skinny/registerTooltip.d.ts +2 -1
  156. package/skinny/registerTooltip.esm.js +8 -6
  157. package/skinny/registerTooltip.esm.js.map +1 -1
  158. package/skinny/{utils-cf2632c9.esm.js → utils-5051df41.esm.js} +3 -2
  159. package/skinny/utils-5051df41.esm.js.map +1 -0
  160. package/skinny/{utils-18b2465b.cjs.js → utils-745db876.cjs.js} +2 -1
  161. package/skinny/utils-745db876.cjs.js.map +1 -0
  162. package/skinny/utils.d.ts +9 -2
  163. package/skinny/contexts-8a2a183b.esm.js +0 -13
  164. package/skinny/contexts-8a2a183b.esm.js.map +0 -1
  165. package/skinny/contexts-dd0ce341.cjs.js.map +0 -1
  166. package/skinny/option-utils-4f037568.esm.js +0 -153
  167. package/skinny/option-utils-4f037568.esm.js.map +0 -1
  168. package/skinny/option-utils-5e4e85bd.cjs.js +0 -162
  169. package/skinny/option-utils-5e4e85bd.cjs.js.map +0 -1
  170. package/skinny/registerSlider-73e80194.cjs.js.map +0 -1
  171. package/skinny/registerSlider-efdba013.esm.js.map +0 -1
  172. package/skinny/utils-18b2465b.cjs.js.map +0 -1
  173. package/skinny/utils-cf2632c9.esm.js.map +0 -1
@@ -1,11 +1,12 @@
1
+ import React from 'react';
1
2
  import { CheckboxGroup } from 'react-aria-components';
2
3
  import { g as getCommonInputProps } from './common-52c26d37.esm.js';
3
- import { registerCheckbox } from './registerCheckbox.esm.js';
4
- import { registerDescription } from './registerDescription.esm.js';
4
+ import { P as PlasmicCheckboxGroupContext } from './contexts-9475faad.esm.js';
5
+ import { registerCheckbox, makeDefaultCheckboxChildren } from './registerCheckbox.esm.js';
6
+ import { DESCRIPTION_COMPONENT_NAME } from './registerDescription.esm.js';
5
7
  import { registerFieldError } from './registerFieldError.esm.js';
6
- import { registerLabel } from './registerLabel.esm.js';
7
- import { r as registerComponentHelper, a as makeChildComponentName, m as makeComponentName } from './utils-cf2632c9.esm.js';
8
- import 'react';
8
+ import { registerLabel, LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
9
+ import { m as makeChildComponentName, r as registerComponentHelper, a as makeComponentName } from './utils-5051df41.esm.js';
9
10
  import './interaction-variant-utils-c44a9d56.esm.js';
10
11
  import './registerText.esm.js';
11
12
  import '@plasmicapp/host/registerComponent';
@@ -29,9 +30,20 @@ var __spreadValues = (a, b) => {
29
30
  return a;
30
31
  };
31
32
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
32
- const BaseCheckboxGroup = CheckboxGroup;
33
+ function BaseCheckboxGroup(props) {
34
+ return /* @__PURE__ */ React.createElement(PlasmicCheckboxGroupContext.Provider, { value: props }, /* @__PURE__ */ React.createElement(CheckboxGroup, __spreadValues({}, props)));
35
+ }
33
36
  const componentName = makeComponentName("checkboxGroup");
34
37
  function registerCheckboxGroup(loader, overrides) {
38
+ const thisName = makeChildComponentName(
39
+ overrides == null ? void 0 : overrides.parentComponentName,
40
+ componentName
41
+ );
42
+ registerFieldError(loader, { parentComponentName: thisName });
43
+ const checkboxMeta = registerCheckbox(loader, {
44
+ parentComponentName: thisName
45
+ });
46
+ registerLabel(loader, { parentComponentName: thisName });
35
47
  registerComponentHelper(
36
48
  loader,
37
49
  BaseCheckboxGroup,
@@ -48,6 +60,76 @@ function registerCheckboxGroup(loader, overrides) {
48
60
  "children",
49
61
  "isRequired"
50
62
  ])), {
63
+ children: {
64
+ type: "slot",
65
+ mergeWithParent: true,
66
+ defaultValue: [
67
+ {
68
+ type: "vbox",
69
+ styles: {
70
+ display: "flex",
71
+ gap: "5px",
72
+ padding: 0,
73
+ alignItems: "flex-start"
74
+ },
75
+ children: [
76
+ {
77
+ type: "component",
78
+ name: LABEL_COMPONENT_NAME,
79
+ props: {
80
+ children: {
81
+ type: "text",
82
+ value: "Checkbox Group"
83
+ }
84
+ }
85
+ },
86
+ {
87
+ type: "component",
88
+ name: checkboxMeta.name,
89
+ props: {
90
+ children: makeDefaultCheckboxChildren({
91
+ label: "Checkbox 1",
92
+ showDocs: false
93
+ }),
94
+ value: "checkbox1"
95
+ }
96
+ },
97
+ {
98
+ type: "component",
99
+ name: checkboxMeta.name,
100
+ props: {
101
+ children: makeDefaultCheckboxChildren({
102
+ label: "Checkbox 2",
103
+ showDocs: false
104
+ }),
105
+ value: "checkbox2"
106
+ }
107
+ },
108
+ {
109
+ type: "component",
110
+ name: checkboxMeta.name,
111
+ props: {
112
+ children: makeDefaultCheckboxChildren({
113
+ label: "Checkbox 3",
114
+ showDocs: false
115
+ }),
116
+ value: "checkbox3"
117
+ }
118
+ },
119
+ {
120
+ type: "component",
121
+ name: DESCRIPTION_COMPONENT_NAME,
122
+ props: {
123
+ children: {
124
+ type: "text",
125
+ value: "Add interaction variants to see it in action..."
126
+ }
127
+ }
128
+ }
129
+ ]
130
+ }
131
+ ]
132
+ },
51
133
  value: {
52
134
  type: "array",
53
135
  editOnly: true,
@@ -83,16 +165,6 @@ function registerCheckboxGroup(loader, overrides) {
83
165
  },
84
166
  overrides
85
167
  );
86
- const thisName = makeChildComponentName(
87
- overrides == null ? void 0 : overrides.parentComponentName,
88
- componentName
89
- );
90
- registerFieldError(loader, { parentComponentName: thisName });
91
- registerCheckbox(loader, { parentComponentName: thisName });
92
- registerLabel(loader, { parentComponentName: thisName });
93
- registerDescription(loader, {
94
- parentComponentName: thisName
95
- });
96
168
  }
97
169
 
98
170
  export { BaseCheckboxGroup, registerCheckboxGroup };
@@ -1 +1 @@
1
- {"version":3,"file":"registerCheckboxGroup.esm.js","sources":["../src/registerCheckboxGroup.tsx"],"sourcesContent":["import type { CheckboxGroupProps } from \"react-aria-components\";\nimport { CheckboxGroup } from \"react-aria-components\";\nimport { getCommonInputProps } from \"./common\";\nimport { registerCheckbox } from \"./registerCheckbox\";\nimport { registerDescription } from \"./registerDescription\";\nimport { registerFieldError } from \"./registerFieldError\";\nimport { registerLabel } from \"./registerLabel\";\nimport {\n CodeComponentMetaOverrides,\n makeChildComponentName,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\n\nexport const BaseCheckboxGroup = CheckboxGroup;\n\nconst componentName = makeComponentName(\"checkboxGroup\");\n\nexport function registerCheckboxGroup(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseCheckboxGroup>\n) {\n registerComponentHelper(\n loader,\n BaseCheckboxGroup,\n {\n name: componentName,\n displayName: \"Aria Checkbox Group\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerCheckboxGroup\",\n importName: \"BaseCheckboxGroup\",\n props: {\n ...getCommonInputProps<CheckboxGroupProps>(\"checkbox group\", [\n \"name\",\n \"isDisabled\",\n \"isReadOnly\",\n \"aria-label\",\n \"children\",\n \"isRequired\",\n ]),\n value: {\n type: \"array\",\n editOnly: true,\n uncontrolledProp: \"defaultValue\",\n description: \"The current value\",\n },\n isInvalid: {\n displayName: \"Invalid\",\n type: \"boolean\",\n description: \"Whether the input value is invalid\",\n defaultValueHint: false,\n },\n validationBehavior: {\n type: \"choice\",\n options: [\"native\", \"aria\"],\n description:\n \"Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.\",\n defaultValueHint: \"native\",\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"object\" }],\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"array\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n\n const thisName = makeChildComponentName(\n overrides?.parentComponentName,\n componentName\n );\n\n registerFieldError(loader, { parentComponentName: thisName });\n registerCheckbox(loader, { parentComponentName: thisName });\n registerLabel(loader, { parentComponentName: thisName });\n registerDescription(loader, {\n parentComponentName: thisName,\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,iBAAoB,GAAA,cAAA;AAEjC,MAAM,aAAA,GAAgB,kBAAkB,eAAe,CAAA,CAAA;AAEvC,SAAA,qBAAA,CACd,QACA,SACA,EAAA;AACA,EAAA,uBAAA;AAAA,IACE,MAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,aAAA;AAAA,MACN,WAAa,EAAA,qBAAA;AAAA,MACb,UAAY,EAAA,sDAAA;AAAA,MACZ,UAAY,EAAA,mBAAA;AAAA,MACZ,KAAA,EAAO,aACF,CAAA,cAAA,CAAA,EAAA,EAAA,mBAAA,CAAwC,gBAAkB,EAAA;AAAA,QAC3D,MAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAA;AAAA,OACD,CARI,CAAA,EAAA;AAAA,QASL,KAAO,EAAA;AAAA,UACL,IAAM,EAAA,OAAA;AAAA,UACN,QAAU,EAAA,IAAA;AAAA,UACV,gBAAkB,EAAA,cAAA;AAAA,UAClB,WAAa,EAAA,mBAAA;AAAA,SACf;AAAA,QACA,SAAW,EAAA;AAAA,UACT,WAAa,EAAA,SAAA;AAAA,UACb,IAAM,EAAA,SAAA;AAAA,UACN,WAAa,EAAA,oCAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,SACpB;AAAA,QACA,kBAAoB,EAAA;AAAA,UAClB,IAAM,EAAA,QAAA;AAAA,UACN,OAAA,EAAS,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,UAC1B,WACE,EAAA,gKAAA;AAAA,UACF,gBAAkB,EAAA,QAAA;AAAA,SACpB;AAAA,QACA,QAAU,EAAA;AAAA,UACR,IAAM,EAAA,cAAA;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,SAC9C;AAAA,OACF,CAAA;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,KAAO,EAAA;AAAA,UACL,IAAM,EAAA,UAAA;AAAA,UACN,SAAW,EAAA,OAAA;AAAA,UACX,YAAc,EAAA,UAAA;AAAA,UACd,YAAc,EAAA,OAAA;AAAA,SAChB;AAAA,OACF;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,QAAW,GAAA,sBAAA;AAAA,IACf,SAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,CAAA,mBAAA;AAAA,IACX,aAAA;AAAA,GACF,CAAA;AAEA,EAAA,kBAAA,CAAmB,MAAQ,EAAA,EAAE,mBAAqB,EAAA,QAAA,EAAU,CAAA,CAAA;AAC5D,EAAA,gBAAA,CAAiB,MAAQ,EAAA,EAAE,mBAAqB,EAAA,QAAA,EAAU,CAAA,CAAA;AAC1D,EAAA,aAAA,CAAc,MAAQ,EAAA,EAAE,mBAAqB,EAAA,QAAA,EAAU,CAAA,CAAA;AACvD,EAAA,mBAAA,CAAoB,MAAQ,EAAA;AAAA,IAC1B,mBAAqB,EAAA,QAAA;AAAA,GACtB,CAAA,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"registerCheckboxGroup.esm.js","sources":["../src/registerCheckboxGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CheckboxGroupProps } from \"react-aria-components\";\nimport { CheckboxGroup } from \"react-aria-components\";\nimport { getCommonInputProps } from \"./common\";\nimport { PlasmicCheckboxGroupContext } from \"./contexts\";\nimport {\n makeDefaultCheckboxChildren,\n registerCheckbox,\n} from \"./registerCheckbox\";\nimport { DESCRIPTION_COMPONENT_NAME } from \"./registerDescription\";\nimport { registerFieldError } from \"./registerFieldError\";\nimport { LABEL_COMPONENT_NAME, registerLabel } from \"./registerLabel\";\nimport {\n CodeComponentMetaOverrides,\n makeChildComponentName,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\n\nexport function BaseCheckboxGroup(props: CheckboxGroupProps) {\n return (\n <PlasmicCheckboxGroupContext.Provider value={props}>\n <CheckboxGroup {...props} />\n </PlasmicCheckboxGroupContext.Provider>\n );\n}\n\nconst componentName = makeComponentName(\"checkboxGroup\");\n\nexport function registerCheckboxGroup(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseCheckboxGroup>\n) {\n const thisName = makeChildComponentName(\n overrides?.parentComponentName,\n componentName\n );\n\n registerFieldError(loader, { parentComponentName: thisName });\n const checkboxMeta = registerCheckbox(loader, {\n parentComponentName: thisName,\n });\n registerLabel(loader, { parentComponentName: thisName });\n\n registerComponentHelper(\n loader,\n BaseCheckboxGroup,\n {\n name: componentName,\n displayName: \"Aria Checkbox Group\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerCheckboxGroup\",\n importName: \"BaseCheckboxGroup\",\n props: {\n ...getCommonInputProps<CheckboxGroupProps>(\"checkbox group\", [\n \"name\",\n \"isDisabled\",\n \"isReadOnly\",\n \"aria-label\",\n \"children\",\n \"isRequired\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true as any,\n defaultValue: [\n {\n type: \"vbox\",\n styles: {\n display: \"flex\",\n gap: \"5px\",\n padding: 0,\n alignItems: \"flex-start\",\n },\n children: [\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Checkbox Group\",\n },\n },\n },\n {\n type: \"component\",\n name: checkboxMeta.name,\n props: {\n children: makeDefaultCheckboxChildren({\n label: \"Checkbox 1\",\n showDocs: false,\n }),\n value: \"checkbox1\",\n },\n },\n {\n type: \"component\",\n name: checkboxMeta.name,\n props: {\n children: makeDefaultCheckboxChildren({\n label: \"Checkbox 2\",\n showDocs: false,\n }),\n value: \"checkbox2\",\n },\n },\n {\n type: \"component\",\n name: checkboxMeta.name,\n props: {\n children: makeDefaultCheckboxChildren({\n label: \"Checkbox 3\",\n showDocs: false,\n }),\n value: \"checkbox3\",\n },\n },\n {\n type: \"component\",\n name: DESCRIPTION_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Add interaction variants to see it in action...\",\n },\n },\n },\n ],\n },\n ],\n },\n value: {\n type: \"array\",\n editOnly: true,\n uncontrolledProp: \"defaultValue\",\n description: \"The current value\",\n },\n isInvalid: {\n displayName: \"Invalid\",\n type: \"boolean\",\n description: \"Whether the input value is invalid\",\n defaultValueHint: false,\n },\n validationBehavior: {\n type: \"choice\",\n options: [\"native\", \"aria\"],\n description:\n \"Whether to use native HTML form validation to prevent form submission when the value is missing or invalid, or mark the field as required or invalid via ARIA.\",\n defaultValueHint: \"native\",\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"object\" }],\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"array\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
@@ -3,9 +3,21 @@
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-dd0ce341.cjs.js');
7
- var optionUtils = require('./option-utils-5e4e85bd.cjs.js');
8
- var utils = require('./utils-18b2465b.cjs.js');
6
+ var contexts = require('./contexts-b21f6b12.cjs.js');
7
+ var registerListBox = require('./registerListBox-837b90d8.cjs.js');
8
+ var registerButton = require('./registerButton.cjs.js');
9
+ var registerInput = require('./registerInput.cjs.js');
10
+ var registerLabel = require('./registerLabel.cjs.js');
11
+ var registerPopover = require('./registerPopover.cjs.js');
12
+ var utils = require('./utils-745db876.cjs.js');
13
+ require('@react-aria/utils');
14
+ require('./registerListBoxItem.cjs.js');
15
+ require('./registerDescription.cjs.js');
16
+ require('./registerText.cjs.js');
17
+ require('./registerSection.cjs.js');
18
+ require('./registerHeader.cjs.js');
19
+ require('./common-e74a9214.cjs.js');
20
+ require('./interaction-variant-utils-244b74fb.cjs.js');
9
21
  require('@plasmicapp/host/registerComponent');
10
22
 
11
23
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -49,7 +61,7 @@ function BaseComboBox(props) {
49
61
  structure,
50
62
  name
51
63
  } = props;
52
- const { options, optionText } = optionUtils.useStrictOptions(props);
64
+ const { options, optionText } = registerListBox.useStrictOptions(props);
53
65
  const { contains } = i18n.useFilter({ sensitivity: "base" });
54
66
  const [showAllOptions, setShowAllOptions] = React__default.default.useState(false);
55
67
  const filteredOptions = React__default.default.useMemo(() => {
@@ -79,7 +91,7 @@ function BaseComboBox(props) {
79
91
  return filterOptions(options);
80
92
  }, [filterValue, options, contains, optionText]);
81
93
  const flattenedOptions = React__default.default.useMemo(
82
- () => optionUtils.flattenOptions(options),
94
+ () => registerListBox.flattenOptions(options),
83
95
  [options]
84
96
  );
85
97
  const disabledKeys = flattenedOptions.filter((op) => op.isDisabled).map((op) => op.id);
@@ -211,8 +223,8 @@ function registerComboBox(loader) {
211
223
  importPath: "@plasmicpkgs/react-aria/skinny/registerComboBox",
212
224
  importName: "BaseComboBox",
213
225
  props: {
214
- options: optionUtils.makeOptionsPropType(),
215
- value: optionUtils.makeValuePropType(),
226
+ options: registerListBox.makeOptionsPropType(),
227
+ value: registerListBox.makeValuePropType(),
216
228
  onChange: {
217
229
  type: "eventHandler",
218
230
  argTypes: [{ name: "value", type: "string" }]
@@ -250,7 +262,100 @@ function registerComboBox(loader) {
250
262
  argTypes: [{ name: "isOpen", type: "boolean" }]
251
263
  },
252
264
  structure: {
253
- type: "slot"
265
+ type: "slot",
266
+ defaultValue: [
267
+ {
268
+ type: "vbox",
269
+ styles: {
270
+ justifyContent: "flex-start",
271
+ alignItems: "flex-start",
272
+ width: "300px",
273
+ padding: 0
274
+ },
275
+ children: [
276
+ {
277
+ type: "component",
278
+ name: registerLabel.LABEL_COMPONENT_NAME,
279
+ props: {
280
+ children: {
281
+ type: "text",
282
+ value: "Label"
283
+ }
284
+ }
285
+ },
286
+ {
287
+ type: "hbox",
288
+ styles: {
289
+ width: "stretch",
290
+ borderWidth: "1px",
291
+ borderStyle: "solid",
292
+ borderColor: "black",
293
+ padding: 0,
294
+ position: "relative"
295
+ },
296
+ children: [
297
+ {
298
+ type: "component",
299
+ name: registerInput.INPUT_COMPONENT_NAME,
300
+ styles: {
301
+ borderWidth: 0,
302
+ width: "100%",
303
+ padding: "2px 30px 2px 10px"
304
+ }
305
+ },
306
+ {
307
+ type: "component",
308
+ name: registerButton.BUTTON_COMPONENT_NAME,
309
+ styles: {
310
+ borderWidth: 0,
311
+ display: "flex",
312
+ alignItems: "center",
313
+ justifyContent: "center",
314
+ position: "absolute",
315
+ right: "10px",
316
+ top: 0,
317
+ padding: 0,
318
+ height: "100%"
319
+ },
320
+ props: {
321
+ children: {
322
+ type: "img",
323
+ src: "https://static1.plasmic.app/arrow-up.svg",
324
+ styles: {
325
+ height: "20px",
326
+ width: "20px",
327
+ transform: "rotate(180deg)"
328
+ }
329
+ }
330
+ }
331
+ }
332
+ ]
333
+ },
334
+ {
335
+ type: "component",
336
+ name: registerPopover.POPOVER_COMPONENT_NAME,
337
+ styles: {
338
+ backgroundColor: "white",
339
+ width: "300px",
340
+ padding: "10px",
341
+ overflow: "scroll"
342
+ },
343
+ props: {
344
+ children: [
345
+ {
346
+ type: "component",
347
+ name: registerListBox.LIST_BOX_COMPONENT_NAME,
348
+ styles: {
349
+ borderWidth: 0,
350
+ width: "stretch"
351
+ }
352
+ }
353
+ ]
354
+ }
355
+ }
356
+ ]
357
+ }
358
+ ]
254
359
  },
255
360
  previewOpen: {
256
361
  type: "boolean",
@@ -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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CO,SAAS,aAA+B,KAA6B,EAAA;AAC1E,EAAM,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,mBAAA;AAAA,IACA,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,GACE,GAAA,KAAA,CAAA;AACJ,EAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAIA,6BAAiB,KAAK,CAAA,CAAA;AACtD,EAAA,MAAM,EAAE,QAAS,EAAA,GAAIC,eAAU,EAAE,WAAA,EAAa,QAAQ,CAAA,CAAA;AACtD,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAAC,sBAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAEhE,EAAM,MAAA,eAAA,GAAkBA,sBAAM,CAAA,OAAA,CAAQ,MAAM;AAC1C,IAAA,IAAI,CAAC,WAAe,IAAA,WAAA,CAAY,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;AACnD,MAAO,OAAA,OAAA,CAAA;AAAA,KACT;AACA,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAO,OAAA,OAAA,CAAA;AAAA,KACT;AACA,IAAM,MAAA,aAAA,GAAgB,CACpB,IACmC,KAAA;AACnC,MAAO,OAAAC,iBAAA;AAAA,QACL,IAAA,CAAK,GAAI,CAAA,CAAC,EAAO,KAAA;AACf,UAAI,IAAA,EAAA,CAAG,SAAS,cAAgB,EAAA;AAC9B,YAAA,OAAO,iCACF,EADE,CAAA,EAAA;AAAA,cAEL,OAAO,EAAG,CAAA,KAAA,GACL,aAAc,CAAA,EAAA,CAAG,KAAK,CACvB,GAAA,KAAA,CAAA;AAAA,aACN,CAAA,CAAA;AAAA,WACK,MAAA;AACL,YAAA,IAAI,QAAS,CAAA,UAAA,CAAW,EAAE,CAAA,EAAG,WAAW,CAAG,EAAA;AACzC,cAAO,OAAA,EAAA,CAAA;AAAA,aACF,MAAA;AACL,cAAO,OAAA,KAAA,CAAA,CAAA;AAAA,aACT;AAAA,WACF;AAAA,SACD,CAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AACA,IAAA,OAAO,cAAc,OAAO,CAAA,CAAA;AAAA,KAC3B,CAAC,WAAA,EAAa,OAAS,EAAA,QAAA,EAAU,UAAU,CAAC,CAAA,CAAA;AAE/C,EAAA,MAAM,mBAAmBD,sBAAM,CAAA,OAAA;AAAA,IAC7B,MAAME,2BAAe,OAAO,CAAA;AAAA,IAC5B,CAAC,OAAO,CAAA;AAAA,GACV,CAAA;AAEA,EAAA,MAAM,YAAe,GAAA,gBAAA,CAClB,MAAO,CAAA,CAAC,EAAO,KAAA,EAAA,CAAG,UAAU,CAAA,CAC5B,GAAI,CAAA,CAAC,EAAO,KAAA,EAAA,CAAG,EAAE,CAAA,CAAA;AAEpB,EAAA,MAAM,oBAAoBF,sBAAM,CAAA,WAAA;AAAA,IAC9B,CAAC,GAAoB,KAAA;AACnB,MAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,iBAAiB,gBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,IAAA,CAAK,CAAC,EAAA,KAAO,GAAG,EAAO,KAAA,GAAA,CAAA,CAAA;AAChE,MAAA,IAAI,cAAc,MAAQ,EAAA;AACxB,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,WAAW,cAAc,CAAA,CAAA,CAAA;AAAA,SACtC;AAAA,OACK,MAAA;AACL,QAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OACb;AACA,MAAA,IAAI,cAAgB,EAAA;AAClB,QAAA,mBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAsB,WAAW,cAAc,CAAA,CAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,IACA,CAAC,gBAAA,EAAkB,SAAW,EAAA,QAAA,EAAU,YAAY,mBAAmB,CAAA;AAAA,GACzE,CAAA;AAEA,EAAA,MAAM,qBAAqBA,sBAAM,CAAA,WAAA;AAAA,IAC/B,CAAC,QAAqB,KAAA;AACpB,MAAsB,mBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAA,QAAA,CAAA,CAAA;AACtB,MAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;AACvB,MAAA,IAAI,cAAc,MAAQ,EAAA;AACxB,QAAA,IAAI,iBAAmB,EAAA;AACrB,UAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,QAAA,CAAA,CAAA;AAAA,SACN,MAAA;AACL,UAAA,MAAM,iBAAiB,gBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,IAAA;AAAA,YACvC,CAAC,EAAA,KAAO,UAAW,CAAA,EAAE,CAAM,KAAA,QAAA;AAAA,WAAA,CAAA;AAE7B,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,WAAW,cAAc,CAAA,CAAA,CAAA;AAAA,WACtC;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,IACA;AAAA,MACE,mBAAA;AAAA,MACA,QAAA;AAAA,MACA,gBAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,iBAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,MAAA,GAASA,sBAAM,CAAA,WAAA,CAAY,MAAM;AAGrC,IAAA,IAAI,CAAC,iBAAmB,EAAA;AACtB,MAAA,MAAM,iBAAiB,gBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,IAAA;AAAA,QAAK,CAAC,OAC7C,SAAc,KAAA,MAAA,GAAS,WAAW,EAAE,CAAA,KAAM,KAAQ,GAAA,EAAA,CAAG,EAAO,KAAA,KAAA;AAAA,OAAA,CAAA;AAE9D,MAAA,IAAI,cAAgB,EAAA;AAClB,QAAM,MAAA,kBAAA,GAAqB,WAAW,cAAc,CAAA,CAAA;AACpD,QAAA,IAAI,uBAAuB,WAAa,EAAA;AACtC,UAAsB,mBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAA,kBAAA,CAAA,CAAA;AAAA,SACxB;AAAA,OACF;AAAA,KACF;AAAA,GACC,EAAA;AAAA,IACD,iBAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,mBAAA;AAAA,GACD,CAAA,CAAA;AAED,EACE,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAACG,4BAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAa,EAAA,KAAA;AAAA,MACb,iBAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA,EAAO,iBAAiB,OAAU,GAAA,eAAA;AAAA,MAClC,WAAA;AAAA,MACA,UAAY,EAAA,WAAA;AAAA,MACZ,aAAe,EAAA,kBAAA;AAAA,MACf,iBAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA,EAAc,CAAC,MAAA,EAAQ,OAAY,KAAA;AACjC,QAAI,IAAA,MAAA,IAAU,YAAY,QAAU,EAAA;AAClC,UAAA,iBAAA,CAAkB,IAAI,CAAA,CAAA;AAAA,SACjB,MAAA;AACL,UAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;AAAA,SACzB;AACA,QAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,MAAA,CAAA,CAAA;AAAA,OACjB;AAAA,MACA,MAAA;AAAA,MACA,SAAA,EAAW,SAAc,KAAA,MAAA,GAAS,MAAS,GAAA,KAAA;AAAA,MAC3C,IAAA;AAAA,KAAA,EACIC,8BAAwB,KAAK,CAAA,CAAA;AAAA,oBAEjCJ,sBAAA,CAAA,aAAA;AAAA,MAACK,8BAAsB,CAAA,QAAA;AAAA,MAAtB;AAAA,QACC,KAAO,EAAA;AAAA,UACL,aAAa,CAAC,MAAA,KACZ,MAAO,CAAA,IAAA,KAAS,YAAY,SAAY,GAAA,MAAA;AAAA,SAC5C;AAAA,OAAA;AAAA,sBAEAL,sBAAA,CAAA,aAAA,CAACM,6BAAoB,QAApB,EAAA,EAA6B,OAAO,EAAE,WAAA,MACpC,SACH,CAAA;AAAA,KACF;AAAA,oBACAN,sBAAA,CAAA,aAAA,CAAC,uBAAoB,WAA0B,EAAA,CAAA;AAAA,GACjD,CAAA;AAEJ,CAAA;AAEA,SAAS,oBACP,KACA,EAAA;AACA,EAAM,MAAA,EAAE,aAAgB,GAAA,KAAA,CAAA;AACxB,EAAM,MAAA,aAAA,GAAgBA,sBAAM,CAAA,UAAA,CAAWO,wCAAoB,CAAA,CAAA;AAE3D,EAAM,MAAA,kBAAA,GAAqBP,sBAAM,CAAA,MAAA,CAAO,WAAW,CAAA,CAAA;AACnD,EAAAA,sBAAA,CAAM,UAAU,MAAM;AAEpB,IAAA,IAAI,aAAe,EAAA;AAGjB,MAAA,IAAI,WAAa,EAAA;AACf,QAAc,aAAA,CAAA,IAAA,CAAK,QAAW,QAAQ,CAAA,CAAA;AAAA,OACxC,MAAA,IAAW,mBAAmB,OAAS,EAAA;AAErC,QAAA,aAAA,CAAc,KAAM,EAAA,CAAA;AAAA,OACtB;AAAA,KACF;AACA,IAAA,kBAAA,CAAmB,OAAU,GAAA,WAAA,CAAA;AAAA,GAC5B,EAAA,CAAC,WAAa,EAAA,aAAA,EAAe,kBAAkB,CAAC,CAAA,CAAA;AAEnD,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEO,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAM,MAAA,QAAA,GAAWQ,wBAAkB,UAAU,CAAA,CAAA;AAE7C,EAAAC,6BAAA,CAAwB,QAAQ,YAAc,EAAA;AAAA,IAC5C,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,eAAA;AAAA,IACb,UAAY,EAAA,iDAAA;AAAA,IACZ,UAAY,EAAA,cAAA;AAAA,IACZ,KAAO,EAAA;AAAA,MACL,SAASC,+BAAoB,EAAA;AAAA,MAC7B,OAAOC,6BAAkB,EAAA;AAAA,MACzB,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,OAC9C;AAAA,MACA,WAAa,EAAA;AAAA,QACX,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,mBAAqB,EAAA;AAAA,QACnB,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,OAC9C;AAAA,MACA,UAAY,EAAA;AAAA,QACV,IAAM,EAAA,SAAA;AAAA,OACR;AAAA,MACA,SAAW,EAAA;AAAA,QACT,WAAa,EAAA,cAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,iBAAkB,EAAA;AAAA,UAC3C,EAAE,KAAA,EAAO,MAAQ,EAAA,KAAA,EAAO,gBAAiB,EAAA;AAAA,SAC3C;AAAA,QACA,gBAAkB,EAAA,OAAA;AAAA,QAClB,WACE,EAAA,2LAAA;AAAA,QACF,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,iBAAmB,EAAA;AAAA,QACjB,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,sBAAA;AAAA,QACb,WAAa,EAAA,wDAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,EAAA,CAAG,SAAc,KAAA,MAAA;AAAA,QACjC,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,QAAU,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,OAChD;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,MAAA;AAAA,OACR;AAAA,MACA,WAAa,EAAA;AAAA,QACX,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,iBAAA;AAAA,QACb,WAAa,EAAA,wDAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,OAAA;AAAA,QACX,YAAc,EAAA,UAAA;AAAA,QACd,YAAc,EAAA,MAAA;AAAA,OAChB;AAAA,MACA,WAAa,EAAA;AAAA,QACX,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,aAAA;AAAA,QACX,YAAc,EAAA,qBAAA;AAAA,QACd,YAAc,EAAA,MAAA;AAAA,OAChB;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,IAAM,EAAA,UAAA;AAAA,QACN,YAAc,EAAA,cAAA;AAAA,QACd,YAAc,EAAA,SAAA;AAAA,OAChB;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;;"}
1
+ {"version":3,"file":"registerComboBox.cjs.js","sources":["../src/registerComboBox.tsx"],"sourcesContent":["import { useFilter } from \"@react-aria/i18n\";\nimport React from \"react\";\nimport { ComboBox, ComboBoxStateContext, Key } from \"react-aria-components\";\nimport { PlasmicInputContext, PlasmicListBoxContext } from \"./contexts\";\nimport {\n flattenOptions,\n HasOptions,\n makeOptionsPropType,\n makeValuePropType,\n StrictItemType,\n StrictOptionType,\n useStrictOptions,\n} from \"./option-utils\";\nimport { BUTTON_COMPONENT_NAME } from \"./registerButton\";\nimport { INPUT_COMPONENT_NAME } from \"./registerInput\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport { LIST_BOX_COMPONENT_NAME } from \"./registerListBox\";\nimport { POPOVER_COMPONENT_NAME } from \"./registerPopover\";\nimport {\n extractPlasmicDataProps,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n Styleable,\n withoutNils,\n} from \"./utils\";\n\nexport interface BaseComboBoxProps<T extends object>\n extends HasOptions<T>,\n Styleable {\n placeholder?: string;\n isDisabled?: boolean;\n menuTrigger?: React.ComponentProps<typeof ComboBox>[\"menuTrigger\"];\n\n valueType?: \"value\" | \"text\";\n allowsCustomValue?: boolean;\n\n value?: Key;\n onChange?: (value: Key) => void;\n\n filterValue?: string;\n onFilterValueChange?: (value: string) => void;\n\n previewOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n\n structure?: React.ReactNode;\n\n name?: string;\n}\n\nexport function BaseComboBox<T extends object>(props: BaseComboBoxProps<T>) {\n const {\n value,\n onChange,\n menuTrigger,\n filterValue,\n onFilterValueChange,\n valueType,\n allowsCustomValue,\n placeholder,\n previewOpen,\n onOpenChange,\n isDisabled,\n className,\n style,\n structure,\n name,\n } = props;\n const { options, optionText } = useStrictOptions(props);\n const { contains } = useFilter({ sensitivity: \"base\" });\n const [showAllOptions, setShowAllOptions] = React.useState(false);\n\n const filteredOptions = React.useMemo(() => {\n if (!filterValue || filterValue.trim().length === 0) {\n return options;\n }\n if (!options) {\n return options;\n }\n const filterOptions = (\n opts: StrictOptionType[]\n ): StrictOptionType[] | undefined => {\n return withoutNils(\n opts.map((op) => {\n if (op.type === \"option-group\") {\n return {\n ...op,\n items: op.items\n ? (filterOptions(op.items) as StrictItemType[])\n : undefined,\n };\n } else {\n if (contains(optionText(op), filterValue)) {\n return op;\n } else {\n return undefined;\n }\n }\n })\n );\n };\n return filterOptions(options);\n }, [filterValue, options, contains, optionText]);\n\n const flattenedOptions = React.useMemo(\n () => flattenOptions(options),\n [options]\n );\n\n const disabledKeys = flattenedOptions\n .filter((op) => op.isDisabled)\n .map((op) => op.id);\n\n const onSelectionChange = React.useCallback(\n (key: Key | null) => {\n if (key === null) {\n return;\n }\n\n const selectedOption = flattenedOptions?.find((op) => op.id === key);\n if (valueType === \"text\") {\n if (selectedOption) {\n onChange?.(optionText(selectedOption));\n }\n } else {\n onChange?.(key);\n }\n if (selectedOption) {\n onFilterValueChange?.(optionText(selectedOption));\n }\n },\n [flattenedOptions, valueType, onChange, optionText, onFilterValueChange]\n );\n\n const onInputValueChange = React.useCallback(\n (newValue: string) => {\n onFilterValueChange?.(newValue);\n setShowAllOptions(false);\n if (valueType === \"text\") {\n if (allowsCustomValue) {\n onChange?.(newValue);\n } else {\n const matchingOption = flattenedOptions?.find(\n (op) => optionText(op) === newValue\n );\n if (matchingOption) {\n onChange?.(optionText(matchingOption));\n }\n }\n }\n },\n [\n onFilterValueChange,\n onChange,\n flattenedOptions,\n optionText,\n valueType,\n allowsCustomValue,\n ]\n );\n\n const onBlur = React.useCallback(() => {\n // If we don't allow custom value, then on blur, reset the filter value\n // to the selected option\n if (!allowsCustomValue) {\n const selectedOption = flattenedOptions?.find((op) =>\n valueType === \"text\" ? optionText(op) === value : op.id === value\n );\n if (selectedOption) {\n const selectedOptionText = optionText(selectedOption);\n if (selectedOptionText !== filterValue) {\n onFilterValueChange?.(selectedOptionText);\n }\n }\n }\n }, [\n allowsCustomValue,\n flattenedOptions,\n valueType,\n optionText,\n value,\n filterValue,\n onFilterValueChange,\n ]);\n\n return (\n <ComboBox\n selectedKey={value}\n onSelectionChange={onSelectionChange}\n isDisabled={isDisabled}\n className={className}\n style={style}\n items={showAllOptions ? options : filteredOptions}\n menuTrigger={menuTrigger}\n inputValue={filterValue}\n onInputChange={onInputValueChange}\n allowsCustomValue={allowsCustomValue}\n disabledKeys={disabledKeys}\n onOpenChange={(isOpen, trigger) => {\n if (isOpen && trigger === \"manual\") {\n setShowAllOptions(true);\n } else {\n setShowAllOptions(false);\n }\n onOpenChange?.(isOpen);\n }}\n onBlur={onBlur}\n formValue={valueType === \"text\" ? \"text\" : \"key\"}\n name={name}\n {...extractPlasmicDataProps(props)}\n >\n <PlasmicListBoxContext.Provider\n value={{\n getItemType: (option) =>\n option.type === \"section\" ? \"section\" : \"item\",\n }}\n >\n <PlasmicInputContext.Provider value={{ placeholder }}>\n {structure}\n </PlasmicInputContext.Provider>\n </PlasmicListBoxContext.Provider>\n <BaseComboBoxEffects previewOpen={previewOpen} />\n </ComboBox>\n );\n}\n\nfunction BaseComboBoxEffects(\n props: Pick<BaseComboBoxProps<any>, \"previewOpen\">\n) {\n const { previewOpen } = props;\n const comboBoxState = React.useContext(ComboBoxStateContext);\n\n const prevPreviewOpenRef = React.useRef(previewOpen);\n React.useEffect(() => {\n // comboBoxState can be undefined if we are in `<Hidden/>`\n if (comboBoxState) {\n // There's no \"isOpen\" controlled state for ComboBox, so we use\n // sync comboBoxState with previewOpen prop instead\n if (previewOpen) {\n comboBoxState.open(undefined, \"manual\");\n } else if (prevPreviewOpenRef.current) {\n // Was previously previewOpen, now preview close\n comboBoxState.close();\n }\n }\n prevPreviewOpenRef.current = previewOpen;\n }, [previewOpen, comboBoxState, prevPreviewOpenRef]);\n\n return null;\n}\n\nexport function registerComboBox(loader?: Registerable) {\n const rootName = makeComponentName(\"combobox\");\n\n registerComponentHelper(loader, BaseComboBox, {\n name: rootName,\n displayName: \"Aria ComboBox\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerComboBox\",\n importName: \"BaseComboBox\",\n props: {\n options: makeOptionsPropType(),\n value: makeValuePropType(),\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"string\" }],\n },\n filterValue: {\n type: \"string\",\n },\n onFilterValueChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"string\" }],\n },\n isDisabled: {\n type: \"boolean\",\n },\n valueType: {\n displayName: \"`value` Type\",\n type: \"choice\",\n options: [\n { value: \"value\", label: \"By option value\" },\n { value: \"text\", label: \"By option text\" },\n ],\n defaultValueHint: \"value\",\n description:\n \"This controls whether `value` and `onChange` are option values or option text. Choosing `text` allows you to optionally allow a custom value that's not in the provided list of options.\",\n advanced: true,\n },\n allowsCustomValue: {\n type: \"boolean\",\n displayName: \"Allows custom value?\",\n description: \"Allows entering a value that is not one of the options\",\n hidden: (ps) => ps.valueType !== \"text\",\n advanced: true,\n },\n onOpenChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isOpen\", type: \"boolean\" }],\n },\n structure: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"vbox\",\n styles: {\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"300px\",\n padding: 0,\n },\n children: [\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Label\",\n },\n },\n },\n {\n type: \"hbox\",\n styles: {\n width: \"stretch\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n padding: 0,\n position: \"relative\",\n },\n children: [\n {\n type: \"component\",\n name: INPUT_COMPONENT_NAME,\n styles: {\n borderWidth: 0,\n width: \"100%\",\n padding: \"2px 30px 2px 10px\",\n },\n },\n {\n type: \"component\",\n name: BUTTON_COMPONENT_NAME,\n styles: {\n borderWidth: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"absolute\",\n right: \"10px\",\n top: 0,\n padding: 0,\n height: \"100%\",\n },\n props: {\n children: {\n type: \"img\",\n src: \"https://static1.plasmic.app/arrow-up.svg\",\n styles: {\n height: \"20px\",\n width: \"20px\",\n transform: \"rotate(180deg)\",\n },\n },\n },\n },\n ],\n },\n {\n type: \"component\",\n name: POPOVER_COMPONENT_NAME,\n styles: {\n backgroundColor: \"white\",\n width: \"300px\",\n padding: \"10px\",\n overflow: \"scroll\",\n },\n props: {\n children: [\n {\n type: \"component\",\n name: LIST_BOX_COMPONENT_NAME,\n styles: {\n borderWidth: 0,\n width: \"stretch\",\n },\n },\n ],\n },\n },\n ],\n },\n ],\n },\n previewOpen: {\n type: \"boolean\",\n displayName: \"Preview opened?\",\n description: \"Preview opened state while designing in Plasmic editor\",\n editOnly: true,\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n filterValue: {\n type: \"writable\",\n valueProp: \"filterValue\",\n onChangeProp: \"onFilterValueChange\",\n variableType: \"text\",\n },\n isOpen: {\n type: \"readonly\",\n onChangeProp: \"onOpenChange\",\n variableType: \"boolean\",\n },\n },\n });\n}\n"],"names":["useStrictOptions","useFilter","React","withoutNils","flattenOptions","ComboBox","extractPlasmicDataProps","PlasmicListBoxContext","PlasmicInputContext","ComboBoxStateContext","makeComponentName","registerComponentHelper","makeOptionsPropType","makeValuePropType","LABEL_COMPONENT_NAME","INPUT_COMPONENT_NAME","BUTTON_COMPONENT_NAME","POPOVER_COMPONENT_NAME","LIST_BOX_COMPONENT_NAME"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDO,SAAS,aAA+B,KAA6B,EAAA;AAC1E,EAAM,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,mBAAA;AAAA,IACA,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,SAAA;AAAA,IACA,IAAA;AAAA,GACE,GAAA,KAAA,CAAA;AACJ,EAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAIA,iCAAiB,KAAK,CAAA,CAAA;AACtD,EAAA,MAAM,EAAE,QAAS,EAAA,GAAIC,eAAU,EAAE,WAAA,EAAa,QAAQ,CAAA,CAAA;AACtD,EAAA,MAAM,CAAC,cAAgB,EAAA,iBAAiB,CAAI,GAAAC,sBAAA,CAAM,SAAS,KAAK,CAAA,CAAA;AAEhE,EAAM,MAAA,eAAA,GAAkBA,sBAAM,CAAA,OAAA,CAAQ,MAAM;AAC1C,IAAA,IAAI,CAAC,WAAe,IAAA,WAAA,CAAY,IAAK,EAAA,CAAE,WAAW,CAAG,EAAA;AACnD,MAAO,OAAA,OAAA,CAAA;AAAA,KACT;AACA,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAO,OAAA,OAAA,CAAA;AAAA,KACT;AACA,IAAM,MAAA,aAAA,GAAgB,CACpB,IACmC,KAAA;AACnC,MAAO,OAAAC,iBAAA;AAAA,QACL,IAAA,CAAK,GAAI,CAAA,CAAC,EAAO,KAAA;AACf,UAAI,IAAA,EAAA,CAAG,SAAS,cAAgB,EAAA;AAC9B,YAAA,OAAO,iCACF,EADE,CAAA,EAAA;AAAA,cAEL,OAAO,EAAG,CAAA,KAAA,GACL,aAAc,CAAA,EAAA,CAAG,KAAK,CACvB,GAAA,KAAA,CAAA;AAAA,aACN,CAAA,CAAA;AAAA,WACK,MAAA;AACL,YAAA,IAAI,QAAS,CAAA,UAAA,CAAW,EAAE,CAAA,EAAG,WAAW,CAAG,EAAA;AACzC,cAAO,OAAA,EAAA,CAAA;AAAA,aACF,MAAA;AACL,cAAO,OAAA,KAAA,CAAA,CAAA;AAAA,aACT;AAAA,WACF;AAAA,SACD,CAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AACA,IAAA,OAAO,cAAc,OAAO,CAAA,CAAA;AAAA,KAC3B,CAAC,WAAA,EAAa,OAAS,EAAA,QAAA,EAAU,UAAU,CAAC,CAAA,CAAA;AAE/C,EAAA,MAAM,mBAAmBD,sBAAM,CAAA,OAAA;AAAA,IAC7B,MAAME,+BAAe,OAAO,CAAA;AAAA,IAC5B,CAAC,OAAO,CAAA;AAAA,GACV,CAAA;AAEA,EAAA,MAAM,YAAe,GAAA,gBAAA,CAClB,MAAO,CAAA,CAAC,EAAO,KAAA,EAAA,CAAG,UAAU,CAAA,CAC5B,GAAI,CAAA,CAAC,EAAO,KAAA,EAAA,CAAG,EAAE,CAAA,CAAA;AAEpB,EAAA,MAAM,oBAAoBF,sBAAM,CAAA,WAAA;AAAA,IAC9B,CAAC,GAAoB,KAAA;AACnB,MAAA,IAAI,QAAQ,IAAM,EAAA;AAChB,QAAA,OAAA;AAAA,OACF;AAEA,MAAA,MAAM,iBAAiB,gBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,IAAA,CAAK,CAAC,EAAA,KAAO,GAAG,EAAO,KAAA,GAAA,CAAA,CAAA;AAChE,MAAA,IAAI,cAAc,MAAQ,EAAA;AACxB,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,WAAW,cAAc,CAAA,CAAA,CAAA;AAAA,SACtC;AAAA,OACK,MAAA;AACL,QAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,GAAA,CAAA,CAAA;AAAA,OACb;AACA,MAAA,IAAI,cAAgB,EAAA;AAClB,QAAA,mBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAsB,WAAW,cAAc,CAAA,CAAA,CAAA;AAAA,OACjD;AAAA,KACF;AAAA,IACA,CAAC,gBAAA,EAAkB,SAAW,EAAA,QAAA,EAAU,YAAY,mBAAmB,CAAA;AAAA,GACzE,CAAA;AAEA,EAAA,MAAM,qBAAqBA,sBAAM,CAAA,WAAA;AAAA,IAC/B,CAAC,QAAqB,KAAA;AACpB,MAAsB,mBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAA,QAAA,CAAA,CAAA;AACtB,MAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;AACvB,MAAA,IAAI,cAAc,MAAQ,EAAA;AACxB,QAAA,IAAI,iBAAmB,EAAA;AACrB,UAAW,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,QAAA,CAAA,CAAA;AAAA,SACN,MAAA;AACL,UAAA,MAAM,iBAAiB,gBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,IAAA;AAAA,YACvC,CAAC,EAAA,KAAO,UAAW,CAAA,EAAE,CAAM,KAAA,QAAA;AAAA,WAAA,CAAA;AAE7B,UAAA,IAAI,cAAgB,EAAA;AAClB,YAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,WAAW,cAAc,CAAA,CAAA,CAAA;AAAA,WACtC;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAAA,IACA;AAAA,MACE,mBAAA;AAAA,MACA,QAAA;AAAA,MACA,gBAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,iBAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,MAAA,GAASA,sBAAM,CAAA,WAAA,CAAY,MAAM;AAGrC,IAAA,IAAI,CAAC,iBAAmB,EAAA;AACtB,MAAA,MAAM,iBAAiB,gBAAkB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,IAAA;AAAA,QAAK,CAAC,OAC7C,SAAc,KAAA,MAAA,GAAS,WAAW,EAAE,CAAA,KAAM,KAAQ,GAAA,EAAA,CAAG,EAAO,KAAA,KAAA;AAAA,OAAA,CAAA;AAE9D,MAAA,IAAI,cAAgB,EAAA;AAClB,QAAM,MAAA,kBAAA,GAAqB,WAAW,cAAc,CAAA,CAAA;AACpD,QAAA,IAAI,uBAAuB,WAAa,EAAA;AACtC,UAAsB,mBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAA,kBAAA,CAAA,CAAA;AAAA,SACxB;AAAA,OACF;AAAA,KACF;AAAA,GACC,EAAA;AAAA,IACD,iBAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,mBAAA;AAAA,GACD,CAAA,CAAA;AAED,EACE,uBAAAA,sBAAA,CAAA,aAAA;AAAA,IAACG,4BAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAa,EAAA,KAAA;AAAA,MACb,iBAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA,EAAO,iBAAiB,OAAU,GAAA,eAAA;AAAA,MAClC,WAAA;AAAA,MACA,UAAY,EAAA,WAAA;AAAA,MACZ,aAAe,EAAA,kBAAA;AAAA,MACf,iBAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA,EAAc,CAAC,MAAA,EAAQ,OAAY,KAAA;AACjC,QAAI,IAAA,MAAA,IAAU,YAAY,QAAU,EAAA;AAClC,UAAA,iBAAA,CAAkB,IAAI,CAAA,CAAA;AAAA,SACjB,MAAA;AACL,UAAA,iBAAA,CAAkB,KAAK,CAAA,CAAA;AAAA,SACzB;AACA,QAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,MAAA,CAAA,CAAA;AAAA,OACjB;AAAA,MACA,MAAA;AAAA,MACA,SAAA,EAAW,SAAc,KAAA,MAAA,GAAS,MAAS,GAAA,KAAA;AAAA,MAC3C,IAAA;AAAA,KAAA,EACIC,8BAAwB,KAAK,CAAA,CAAA;AAAA,oBAEjCJ,sBAAA,CAAA,aAAA;AAAA,MAACK,8BAAsB,CAAA,QAAA;AAAA,MAAtB;AAAA,QACC,KAAO,EAAA;AAAA,UACL,aAAa,CAAC,MAAA,KACZ,MAAO,CAAA,IAAA,KAAS,YAAY,SAAY,GAAA,MAAA;AAAA,SAC5C;AAAA,OAAA;AAAA,sBAEAL,sBAAA,CAAA,aAAA,CAACM,6BAAoB,QAApB,EAAA,EAA6B,OAAO,EAAE,WAAA,MACpC,SACH,CAAA;AAAA,KACF;AAAA,oBACAN,sBAAA,CAAA,aAAA,CAAC,uBAAoB,WAA0B,EAAA,CAAA;AAAA,GACjD,CAAA;AAEJ,CAAA;AAEA,SAAS,oBACP,KACA,EAAA;AACA,EAAM,MAAA,EAAE,aAAgB,GAAA,KAAA,CAAA;AACxB,EAAM,MAAA,aAAA,GAAgBA,sBAAM,CAAA,UAAA,CAAWO,wCAAoB,CAAA,CAAA;AAE3D,EAAM,MAAA,kBAAA,GAAqBP,sBAAM,CAAA,MAAA,CAAO,WAAW,CAAA,CAAA;AACnD,EAAAA,sBAAA,CAAM,UAAU,MAAM;AAEpB,IAAA,IAAI,aAAe,EAAA;AAGjB,MAAA,IAAI,WAAa,EAAA;AACf,QAAc,aAAA,CAAA,IAAA,CAAK,QAAW,QAAQ,CAAA,CAAA;AAAA,OACxC,MAAA,IAAW,mBAAmB,OAAS,EAAA;AAErC,QAAA,aAAA,CAAc,KAAM,EAAA,CAAA;AAAA,OACtB;AAAA,KACF;AACA,IAAA,kBAAA,CAAmB,OAAU,GAAA,WAAA,CAAA;AAAA,GAC5B,EAAA,CAAC,WAAa,EAAA,aAAA,EAAe,kBAAkB,CAAC,CAAA,CAAA;AAEnD,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEO,SAAS,iBAAiB,MAAuB,EAAA;AACtD,EAAM,MAAA,QAAA,GAAWQ,wBAAkB,UAAU,CAAA,CAAA;AAE7C,EAAAC,6BAAA,CAAwB,QAAQ,YAAc,EAAA;AAAA,IAC5C,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,eAAA;AAAA,IACb,UAAY,EAAA,iDAAA;AAAA,IACZ,UAAY,EAAA,cAAA;AAAA,IACZ,KAAO,EAAA;AAAA,MACL,SAASC,mCAAoB,EAAA;AAAA,MAC7B,OAAOC,iCAAkB,EAAA;AAAA,MACzB,QAAU,EAAA;AAAA,QACR,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,OAC9C;AAAA,MACA,WAAa,EAAA;AAAA,QACX,IAAM,EAAA,QAAA;AAAA,OACR;AAAA,MACA,mBAAqB,EAAA;AAAA,QACnB,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,OAC9C;AAAA,MACA,UAAY,EAAA;AAAA,QACV,IAAM,EAAA,SAAA;AAAA,OACR;AAAA,MACA,SAAW,EAAA;AAAA,QACT,WAAa,EAAA,cAAA;AAAA,QACb,IAAM,EAAA,QAAA;AAAA,QACN,OAAS,EAAA;AAAA,UACP,EAAE,KAAA,EAAO,OAAS,EAAA,KAAA,EAAO,iBAAkB,EAAA;AAAA,UAC3C,EAAE,KAAA,EAAO,MAAQ,EAAA,KAAA,EAAO,gBAAiB,EAAA;AAAA,SAC3C;AAAA,QACA,gBAAkB,EAAA,OAAA;AAAA,QAClB,WACE,EAAA,2LAAA;AAAA,QACF,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,iBAAmB,EAAA;AAAA,QACjB,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,sBAAA;AAAA,QACb,WAAa,EAAA,wDAAA;AAAA,QACb,MAAQ,EAAA,CAAC,EAAO,KAAA,EAAA,CAAG,SAAc,KAAA,MAAA;AAAA,QACjC,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,MACA,YAAc,EAAA;AAAA,QACZ,IAAM,EAAA,cAAA;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,QAAU,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,OAChD;AAAA,MACA,SAAW,EAAA;AAAA,QACT,IAAM,EAAA,MAAA;AAAA,QACN,YAAc,EAAA;AAAA,UACZ;AAAA,YACE,IAAM,EAAA,MAAA;AAAA,YACN,MAAQ,EAAA;AAAA,cACN,cAAgB,EAAA,YAAA;AAAA,cAChB,UAAY,EAAA,YAAA;AAAA,cACZ,KAAO,EAAA,OAAA;AAAA,cACP,OAAS,EAAA,CAAA;AAAA,aACX;AAAA,YACA,QAAU,EAAA;AAAA,cACR;AAAA,gBACE,IAAM,EAAA,WAAA;AAAA,gBACN,IAAM,EAAAC,kCAAA;AAAA,gBACN,KAAO,EAAA;AAAA,kBACL,QAAU,EAAA;AAAA,oBACR,IAAM,EAAA,MAAA;AAAA,oBACN,KAAO,EAAA,OAAA;AAAA,mBACT;AAAA,iBACF;AAAA,eACF;AAAA,cACA;AAAA,gBACE,IAAM,EAAA,MAAA;AAAA,gBACN,MAAQ,EAAA;AAAA,kBACN,KAAO,EAAA,SAAA;AAAA,kBACP,WAAa,EAAA,KAAA;AAAA,kBACb,WAAa,EAAA,OAAA;AAAA,kBACb,WAAa,EAAA,OAAA;AAAA,kBACb,OAAS,EAAA,CAAA;AAAA,kBACT,QAAU,EAAA,UAAA;AAAA,iBACZ;AAAA,gBACA,QAAU,EAAA;AAAA,kBACR;AAAA,oBACE,IAAM,EAAA,WAAA;AAAA,oBACN,IAAM,EAAAC,kCAAA;AAAA,oBACN,MAAQ,EAAA;AAAA,sBACN,WAAa,EAAA,CAAA;AAAA,sBACb,KAAO,EAAA,MAAA;AAAA,sBACP,OAAS,EAAA,mBAAA;AAAA,qBACX;AAAA,mBACF;AAAA,kBACA;AAAA,oBACE,IAAM,EAAA,WAAA;AAAA,oBACN,IAAM,EAAAC,oCAAA;AAAA,oBACN,MAAQ,EAAA;AAAA,sBACN,WAAa,EAAA,CAAA;AAAA,sBACb,OAAS,EAAA,MAAA;AAAA,sBACT,UAAY,EAAA,QAAA;AAAA,sBACZ,cAAgB,EAAA,QAAA;AAAA,sBAChB,QAAU,EAAA,UAAA;AAAA,sBACV,KAAO,EAAA,MAAA;AAAA,sBACP,GAAK,EAAA,CAAA;AAAA,sBACL,OAAS,EAAA,CAAA;AAAA,sBACT,MAAQ,EAAA,MAAA;AAAA,qBACV;AAAA,oBACA,KAAO,EAAA;AAAA,sBACL,QAAU,EAAA;AAAA,wBACR,IAAM,EAAA,KAAA;AAAA,wBACN,GAAK,EAAA,0CAAA;AAAA,wBACL,MAAQ,EAAA;AAAA,0BACN,MAAQ,EAAA,MAAA;AAAA,0BACR,KAAO,EAAA,MAAA;AAAA,0BACP,SAAW,EAAA,gBAAA;AAAA,yBACb;AAAA,uBACF;AAAA,qBACF;AAAA,mBACF;AAAA,iBACF;AAAA,eACF;AAAA,cACA;AAAA,gBACE,IAAM,EAAA,WAAA;AAAA,gBACN,IAAM,EAAAC,sCAAA;AAAA,gBACN,MAAQ,EAAA;AAAA,kBACN,eAAiB,EAAA,OAAA;AAAA,kBACjB,KAAO,EAAA,OAAA;AAAA,kBACP,OAAS,EAAA,MAAA;AAAA,kBACT,QAAU,EAAA,QAAA;AAAA,iBACZ;AAAA,gBACA,KAAO,EAAA;AAAA,kBACL,QAAU,EAAA;AAAA,oBACR;AAAA,sBACE,IAAM,EAAA,WAAA;AAAA,sBACN,IAAM,EAAAC,uCAAA;AAAA,sBACN,MAAQ,EAAA;AAAA,wBACN,WAAa,EAAA,CAAA;AAAA,wBACb,KAAO,EAAA,SAAA;AAAA,uBACT;AAAA,qBACF;AAAA,mBACF;AAAA,iBACF;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,MACA,WAAa,EAAA;AAAA,QACX,IAAM,EAAA,SAAA;AAAA,QACN,WAAa,EAAA,iBAAA;AAAA,QACb,WAAa,EAAA,wDAAA;AAAA,QACb,QAAU,EAAA,IAAA;AAAA,OACZ;AAAA,KACF;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,KAAO,EAAA;AAAA,QACL,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,OAAA;AAAA,QACX,YAAc,EAAA,UAAA;AAAA,QACd,YAAc,EAAA,MAAA;AAAA,OAChB;AAAA,MACA,WAAa,EAAA;AAAA,QACX,IAAM,EAAA,UAAA;AAAA,QACN,SAAW,EAAA,aAAA;AAAA,QACX,YAAc,EAAA,qBAAA;AAAA,QACd,YAAc,EAAA,MAAA;AAAA,OAChB;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,IAAM,EAAA,UAAA;AAAA,QACN,YAAc,EAAA,cAAA;AAAA,QACd,YAAc,EAAA,SAAA;AAAA,OAChB;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;;"}
@@ -1,9 +1,21 @@
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-8a2a183b.esm.js';
5
- import { u as useStrictOptions, f as flattenOptions, m as makeOptionsPropType, a as makeValuePropType } from './option-utils-4f037568.esm.js';
6
- import { e as extractPlasmicDataProps, r as registerComponentHelper, w as withoutNils, m as makeComponentName } from './utils-cf2632c9.esm.js';
4
+ import { a as PlasmicListBoxContext, b as PlasmicInputContext } from './contexts-9475faad.esm.js';
5
+ import { u as useStrictOptions, f as flattenOptions, m as makeOptionsPropType, a as makeValuePropType, L as LIST_BOX_COMPONENT_NAME } from './registerListBox-1effa43d.esm.js';
6
+ import { BUTTON_COMPONENT_NAME } from './registerButton.esm.js';
7
+ import { INPUT_COMPONENT_NAME } from './registerInput.esm.js';
8
+ import { LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
9
+ import { POPOVER_COMPONENT_NAME } from './registerPopover.esm.js';
10
+ import { e as extractPlasmicDataProps, r as registerComponentHelper, w as withoutNils, a as makeComponentName } from './utils-5051df41.esm.js';
11
+ import '@react-aria/utils';
12
+ import './registerListBoxItem.esm.js';
13
+ import './registerDescription.esm.js';
14
+ import './registerText.esm.js';
15
+ import './registerSection.esm.js';
16
+ import './registerHeader.esm.js';
17
+ import './common-52c26d37.esm.js';
18
+ import './interaction-variant-utils-c44a9d56.esm.js';
7
19
  import '@plasmicapp/host/registerComponent';
8
20
 
9
21
  var __defProp = Object.defineProperty;
@@ -244,7 +256,100 @@ function registerComboBox(loader) {
244
256
  argTypes: [{ name: "isOpen", type: "boolean" }]
245
257
  },
246
258
  structure: {
247
- type: "slot"
259
+ type: "slot",
260
+ defaultValue: [
261
+ {
262
+ type: "vbox",
263
+ styles: {
264
+ justifyContent: "flex-start",
265
+ alignItems: "flex-start",
266
+ width: "300px",
267
+ padding: 0
268
+ },
269
+ children: [
270
+ {
271
+ type: "component",
272
+ name: LABEL_COMPONENT_NAME,
273
+ props: {
274
+ children: {
275
+ type: "text",
276
+ value: "Label"
277
+ }
278
+ }
279
+ },
280
+ {
281
+ type: "hbox",
282
+ styles: {
283
+ width: "stretch",
284
+ borderWidth: "1px",
285
+ borderStyle: "solid",
286
+ borderColor: "black",
287
+ padding: 0,
288
+ position: "relative"
289
+ },
290
+ children: [
291
+ {
292
+ type: "component",
293
+ name: INPUT_COMPONENT_NAME,
294
+ styles: {
295
+ borderWidth: 0,
296
+ width: "100%",
297
+ padding: "2px 30px 2px 10px"
298
+ }
299
+ },
300
+ {
301
+ type: "component",
302
+ name: BUTTON_COMPONENT_NAME,
303
+ styles: {
304
+ borderWidth: 0,
305
+ display: "flex",
306
+ alignItems: "center",
307
+ justifyContent: "center",
308
+ position: "absolute",
309
+ right: "10px",
310
+ top: 0,
311
+ padding: 0,
312
+ height: "100%"
313
+ },
314
+ props: {
315
+ children: {
316
+ type: "img",
317
+ src: "https://static1.plasmic.app/arrow-up.svg",
318
+ styles: {
319
+ height: "20px",
320
+ width: "20px",
321
+ transform: "rotate(180deg)"
322
+ }
323
+ }
324
+ }
325
+ }
326
+ ]
327
+ },
328
+ {
329
+ type: "component",
330
+ name: POPOVER_COMPONENT_NAME,
331
+ styles: {
332
+ backgroundColor: "white",
333
+ width: "300px",
334
+ padding: "10px",
335
+ overflow: "scroll"
336
+ },
337
+ props: {
338
+ children: [
339
+ {
340
+ type: "component",
341
+ name: LIST_BOX_COMPONENT_NAME,
342
+ styles: {
343
+ borderWidth: 0,
344
+ width: "stretch"
345
+ }
346
+ }
347
+ ]
348
+ }
349
+ }
350
+ ]
351
+ }
352
+ ]
248
353
  },
249
354
  previewOpen: {
250
355
  type: "boolean",