@plasmicpkgs/react-aria 0.0.89 → 0.0.90

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 (87) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{ListBoxItemIdManager.d.ts → OptionsItemIdManager.d.ts} +1 -1
  3. package/dist/contexts.d.ts +8 -4
  4. package/dist/react-aria.esm.js +187 -76
  5. package/dist/react-aria.esm.js.map +1 -1
  6. package/dist/react-aria.js +186 -75
  7. package/dist/react-aria.js.map +1 -1
  8. package/dist/registerCheckbox.d.ts +5 -2
  9. package/dist/registerCheckboxGroup.d.ts +5 -2
  10. package/dist/registerRadio.d.ts +5 -2
  11. package/dist/registerRadioGroup.d.ts +5 -2
  12. package/package.json +2 -2
  13. package/skinny/OptionsItemIdManager-832b8cfe.esm.js +54 -0
  14. package/skinny/OptionsItemIdManager-832b8cfe.esm.js.map +1 -0
  15. package/skinny/OptionsItemIdManager-a89a28b9.cjs.js +56 -0
  16. package/skinny/OptionsItemIdManager-a89a28b9.cjs.js.map +1 -0
  17. package/skinny/{ListBoxItemIdManager.d.ts → OptionsItemIdManager.d.ts} +1 -1
  18. package/skinny/{common-7ecf439d.esm.js → common-d75204cf.esm.js} +2 -2
  19. package/skinny/{common-7ecf439d.esm.js.map → common-d75204cf.esm.js.map} +1 -1
  20. package/skinny/contexts-5cb81c2f.esm.js.map +1 -1
  21. package/skinny/contexts-6d0cb2b1.cjs.js.map +1 -1
  22. package/skinny/contexts.d.ts +8 -4
  23. package/skinny/registerButton.esm.js +2 -2
  24. package/skinny/registerCheckbox.cjs.js +48 -4
  25. package/skinny/registerCheckbox.cjs.js.map +1 -1
  26. package/skinny/registerCheckbox.d.ts +5 -2
  27. package/skinny/registerCheckbox.esm.js +51 -7
  28. package/skinny/registerCheckbox.esm.js.map +1 -1
  29. package/skinny/registerCheckboxGroup.cjs.js +19 -8
  30. package/skinny/registerCheckboxGroup.cjs.js.map +1 -1
  31. package/skinny/registerCheckboxGroup.d.ts +5 -2
  32. package/skinny/registerCheckboxGroup.esm.js +22 -11
  33. package/skinny/registerCheckboxGroup.esm.js.map +1 -1
  34. package/skinny/registerComboBox.cjs.js +4 -3
  35. package/skinny/registerComboBox.cjs.js.map +1 -1
  36. package/skinny/registerComboBox.esm.js +6 -5
  37. package/skinny/registerComboBox.esm.js.map +1 -1
  38. package/skinny/registerDescription.esm.js +1 -1
  39. package/skinny/registerDialogTrigger.esm.js +2 -2
  40. package/skinny/registerFieldError.esm.js +1 -1
  41. package/skinny/registerForm.esm.js +1 -1
  42. package/skinny/registerHeading.esm.js +1 -1
  43. package/skinny/registerInput.esm.js +2 -2
  44. package/skinny/registerLabel.esm.js +1 -1
  45. package/skinny/{registerListBox-7d927361.cjs.js → registerListBox-25f29573.cjs.js} +3 -55
  46. package/skinny/registerListBox-25f29573.cjs.js.map +1 -0
  47. package/skinny/{registerListBox-4d5f98f9.esm.js → registerListBox-b6e4aabc.esm.js} +5 -56
  48. package/skinny/registerListBox-b6e4aabc.esm.js.map +1 -0
  49. package/skinny/registerListBox.cjs.js +2 -1
  50. package/skinny/registerListBox.cjs.js.map +1 -1
  51. package/skinny/registerListBox.esm.js +3 -2
  52. package/skinny/registerListBox.esm.js.map +1 -1
  53. package/skinny/registerListBoxItem.esm.js +1 -1
  54. package/skinny/registerModal.esm.js +2 -2
  55. package/skinny/registerOverlayArrow.esm.js +2 -2
  56. package/skinny/registerPopover.esm.js +2 -2
  57. package/skinny/registerRadio.cjs.js +47 -4
  58. package/skinny/registerRadio.cjs.js.map +1 -1
  59. package/skinny/registerRadio.d.ts +5 -2
  60. package/skinny/registerRadio.esm.js +50 -7
  61. package/skinny/registerRadio.esm.js.map +1 -1
  62. package/skinny/registerRadioGroup.cjs.js +19 -4
  63. package/skinny/registerRadioGroup.cjs.js.map +1 -1
  64. package/skinny/registerRadioGroup.d.ts +5 -2
  65. package/skinny/registerRadioGroup.esm.js +22 -7
  66. package/skinny/registerRadioGroup.esm.js.map +1 -1
  67. package/skinny/registerSection.cjs.js +2 -1
  68. package/skinny/registerSection.cjs.js.map +1 -1
  69. package/skinny/registerSection.esm.js +3 -2
  70. package/skinny/registerSection.esm.js.map +1 -1
  71. package/skinny/registerSelect.cjs.js +4 -3
  72. package/skinny/registerSelect.cjs.js.map +1 -1
  73. package/skinny/registerSelect.esm.js +6 -5
  74. package/skinny/registerSelect.esm.js.map +1 -1
  75. package/skinny/registerSlider.esm.js +2 -2
  76. package/skinny/registerSliderOutput.esm.js +1 -1
  77. package/skinny/registerSliderThumb.esm.js +2 -2
  78. package/skinny/registerSliderTrack.esm.js +1 -1
  79. package/skinny/registerSwitch.esm.js +2 -2
  80. package/skinny/registerText.esm.js +1 -1
  81. package/skinny/registerTextArea.esm.js +2 -2
  82. package/skinny/registerTextField.esm.js +2 -2
  83. package/skinny/registerTooltip.esm.js +2 -2
  84. package/skinny/{utils-41b3d43b.esm.js → utils-bcdc928e.esm.js} +2 -2
  85. package/skinny/{utils-41b3d43b.esm.js.map → utils-bcdc928e.esm.js.map} +1 -1
  86. package/skinny/registerListBox-4d5f98f9.esm.js.map +0 -1
  87. package/skinny/registerListBox-7d927361.cjs.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { FieldError } from 'react-aria-components';
3
- import { r as registerComponentHelper, a as makeComponentName } from './utils-41b3d43b.esm.js';
3
+ import { r as registerComponentHelper, m as makeComponentName } from './utils-bcdc928e.esm.js';
4
4
  import '@plasmicapp/host';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Form } from 'react-aria-components';
3
- import { r as registerComponentHelper, a as makeComponentName } from './utils-41b3d43b.esm.js';
3
+ import { r as registerComponentHelper, m as makeComponentName } from './utils-bcdc928e.esm.js';
4
4
  import '@plasmicapp/host';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Heading } from 'react-aria-components';
3
- import { a as makeComponentName, r as registerComponentHelper } from './utils-41b3d43b.esm.js';
3
+ import { m as makeComponentName, r as registerComponentHelper } from './utils-bcdc928e.esm.js';
4
4
  import '@plasmicapp/host';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
 
@@ -1,9 +1,9 @@
1
1
  import React, { useCallback } from 'react';
2
2
  import { mergeProps } from 'react-aria';
3
3
  import { Input } from 'react-aria-components';
4
- import { r as resolveAutoComplete, g as getCommonProps } from './common-7ecf439d.esm.js';
4
+ import { r as resolveAutoComplete, g as getCommonProps } from './common-d75204cf.esm.js';
5
5
  import { g as PlasmicTextFieldContext, c as PlasmicInputContext } from './contexts-5cb81c2f.esm.js';
6
- import { a as makeComponentName, r as registerComponentHelper } from './utils-41b3d43b.esm.js';
6
+ import { m as makeComponentName, r as registerComponentHelper } from './utils-bcdc928e.esm.js';
7
7
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
8
8
  import '@plasmicapp/host';
9
9
  import '@plasmicapp/host/registerComponent';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Label } from 'react-aria-components';
3
- import { e as extractPlasmicDataProps, a as makeComponentName, r as registerComponentHelper } from './utils-41b3d43b.esm.js';
3
+ import { e as extractPlasmicDataProps, m as makeComponentName, r as registerComponentHelper } from './utils-bcdc928e.esm.js';
4
4
  import '@plasmicapp/host';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
 
@@ -3,6 +3,7 @@
3
3
  var React = require('react');
4
4
  var reactAriaComponents = require('react-aria-components');
5
5
  var contexts = require('./contexts-6d0cb2b1.cjs.js');
6
+ var OptionsItemIdManager = require('./OptionsItemIdManager-a89a28b9.cjs.js');
6
7
  var registerListBoxItem = require('./registerListBoxItem.cjs.js');
7
8
  var utils = require('./utils-d1c8094f.cjs.js');
8
9
  var variantUtils = require('./variant-utils-0ad70db8.cjs.js');
@@ -11,58 +12,6 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
12
 
12
13
  var React__default = /*#__PURE__*/_interopDefault(React);
13
14
 
14
- class ListBoxItemIdManager {
15
- constructor() {
16
- this._ids = /* @__PURE__ */ new Set();
17
- this._observers = /* @__PURE__ */ new Set();
18
- }
19
- generateDuplicateId(id, count = 1) {
20
- const dupId = `${id} duplicate(${count})`;
21
- if (this._ids.has(dupId)) {
22
- return this.generateDuplicateId(id, count + 1);
23
- } else {
24
- return dupId;
25
- }
26
- }
27
- generateMissingId(count = 1) {
28
- const missingId = `missing(${count})`;
29
- if (this._ids.has(missingId)) {
30
- return this.generateMissingId(count + 1);
31
- } else {
32
- return missingId;
33
- }
34
- }
35
- register(id) {
36
- const idStr = id === void 0 ? void 0 : String(id).trim();
37
- let newId;
38
- if (!idStr) {
39
- newId = this.generateMissingId();
40
- } else if (this._ids.has(idStr)) {
41
- newId = this.generateDuplicateId(idStr);
42
- } else {
43
- newId = idStr;
44
- }
45
- this._ids.add(newId);
46
- this.notify();
47
- return newId;
48
- }
49
- unregister(id) {
50
- this._ids.delete(id);
51
- this.notify();
52
- }
53
- subscribe(observer) {
54
- this._observers.add(observer);
55
- observer(this.ids);
56
- }
57
- // Notify all observers about an event.
58
- notify() {
59
- this._observers.forEach((observer) => observer(this.ids));
60
- }
61
- get ids() {
62
- return Array.from(this._ids);
63
- }
64
- }
65
-
66
15
  var __defProp$1 = Object.defineProperty;
67
16
  var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
68
17
  var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
@@ -205,7 +154,7 @@ function BaseListBox(props) {
205
154
  const idManager = React.useMemo(
206
155
  () => {
207
156
  var _a2;
208
- return (_a2 = context == null ? void 0 : context.idManager) != null ? _a2 : new ListBoxItemIdManager();
157
+ return (_a2 = context == null ? void 0 : context.idManager) != null ? _a2 : new OptionsItemIdManager.OptionsItemIdManager();
209
158
  },
210
159
  []
211
160
  );
@@ -424,8 +373,7 @@ function registerListBox(loader, overrides) {
424
373
  exports.BaseListBox = BaseListBox;
425
374
  exports.BaseSection = BaseSection;
426
375
  exports.LIST_BOX_COMPONENT_NAME = LIST_BOX_COMPONENT_NAME;
427
- exports.ListBoxItemIdManager = ListBoxItemIdManager;
428
376
  exports.listboxHelpers = listboxHelpers;
429
377
  exports.registerListBox = registerListBox;
430
378
  exports.registerSection = registerSection;
431
- //# sourceMappingURL=registerListBox-7d927361.cjs.js.map
379
+ //# sourceMappingURL=registerListBox-25f29573.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerListBox-25f29573.cjs.js","sources":["../src/registerSection.tsx","../src/registerListBox.tsx"],"sourcesContent":["import React from \"react\";\nimport { Header, Section } from \"react-aria-components\";\nimport { PlasmicListBoxContext } from \"./contexts\";\nimport { BaseListBox } from \"./registerListBox\";\nimport {\n CodeComponentMetaOverrides,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n Styleable,\n} from \"./utils\";\n\nexport interface BaseSectionProps extends Styleable {\n items: React.ReactNode;\n header: React.ReactNode;\n}\n\nexport function BaseSection(props: BaseSectionProps) {\n const { header, items, ...rest } = props;\n const contextProps = React.useContext(PlasmicListBoxContext);\n const isStandalone = !contextProps;\n\n const section = (\n <Section {...rest}>\n <Header>{header}</Header>\n {items}\n </Section>\n );\n\n if (isStandalone) {\n return (\n // BaseListbox should give section a listbox context (that it can't be used without)\n // as well as the id manager (that is needed to identify and warn about duplication of ids)\n // selection mode needs to be single/multiple to be able to trigger hover state on it.\n <BaseListBox selectionMode=\"single\">{section}</BaseListBox>\n );\n }\n\n return section;\n}\n\nexport function registerSection(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSection>\n) {\n return registerComponentHelper(\n loader,\n BaseSection,\n {\n name: makeComponentName(\"section\"),\n displayName: \"Aria Section\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSection\",\n importName: \"BaseSection\",\n defaultStyles: {\n width: \"stretch\",\n padding: \"10px\",\n },\n props: {\n header: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: [\n {\n type: \"text\",\n value: \"Section Header.\",\n },\n ],\n },\n items: {\n type: \"slot\",\n mergeWithParent: true,\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Key, ListBox, ListBoxRenderProps } from \"react-aria-components\";\nimport { PlasmicListBoxContext } from \"./contexts\";\nimport { OptionsItemIdManager } from \"./OptionsItemIdManager\";\nimport {\n makeDefaultListBoxItemChildren,\n registerListBoxItem,\n} from \"./registerListBoxItem\";\nimport { registerSection } from \"./registerSection\";\nimport {\n CodeComponentMetaOverrides,\n HasControlContextData,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nexport interface BaseListBoxControlContextData {\n itemIds: string[];\n isStandalone: boolean;\n}\n\nconst LISTBOX_VARIANTS = [\"focused\" as const, \"focusVisible\" as const];\n\nconst { variants } = pickAriaComponentVariants(LISTBOX_VARIANTS);\n\nexport interface BaseListBoxProps\n extends Omit<\n React.ComponentProps<typeof ListBox>,\n \"selectedKeys\" | \"defaultSelectedKeys\" | \"className\"\n >,\n HasControlContextData<BaseListBoxControlContextData>,\n WithVariants<typeof LISTBOX_VARIANTS> {\n children?: React.ReactNode;\n selectedKeys?: string | string[] | undefined;\n defaultSelectedKeys?: string | string[] | undefined;\n className?: string;\n}\n\nexport const listboxHelpers = {\n states: {\n selectedValue: {\n onChangeArgsToValue: (value: Set<Key> | string[] | string) => {\n // only single selection is supported\n return Array.from(value)[0];\n },\n },\n },\n};\n\nfunction normalizeSelectedKeys(selectedKeys: string | string[] | undefined) {\n // Listbox expects it to be of type \"all\" | Iterable\n return typeof selectedKeys === \"string\" && selectedKeys !== \"all\"\n ? [selectedKeys]\n : selectedKeys;\n}\n\nexport function BaseListBox(props: BaseListBoxProps) {\n const {\n setControlContextData: setControlContextData,\n children,\n className,\n selectedKeys,\n defaultSelectedKeys,\n plasmicUpdateVariant,\n ...rest\n } = props;\n const context = React.useContext(PlasmicListBoxContext);\n const isStandalone = !context;\n const [ids, setIds] = useState<string[]>([]);\n const idManager = useMemo(\n () => context?.idManager ?? new OptionsItemIdManager(),\n []\n );\n\n useEffect(() => {\n setControlContextData?.({\n itemIds: ids,\n isStandalone,\n });\n }, [ids, isStandalone, setControlContextData]);\n\n useEffect(() => {\n idManager.subscribe((_ids: string[]) => {\n setIds(_ids);\n });\n }, []);\n\n const classNameProp = useCallback(\n ({ isFocusVisible, isFocused }: ListBoxRenderProps) => {\n plasmicUpdateVariant?.({\n focused: isFocused,\n focusVisible: isFocusVisible,\n });\n return className ?? \"\";\n },\n [className, plasmicUpdateVariant]\n );\n\n const listbox = (\n <ListBox\n selectedKeys={normalizeSelectedKeys(selectedKeys)}\n defaultSelectedKeys={normalizeSelectedKeys(defaultSelectedKeys)}\n className={classNameProp}\n {...rest}\n >\n {children}\n </ListBox>\n );\n\n if (isStandalone) {\n return (\n <PlasmicListBoxContext.Provider\n value={{\n idManager,\n }}\n >\n {listbox}\n </PlasmicListBoxContext.Provider>\n );\n }\n\n return listbox;\n}\n\nexport const LIST_BOX_COMPONENT_NAME = makeComponentName(\"listbox\");\n\nexport function registerListBox(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseListBox>\n) {\n const listBoxItemMeta = registerListBoxItem(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n });\n const sectionMeta = registerSection(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n props: {\n items: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-1\",\n textValue: \"Section1-Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-2\",\n textValue: \"Section1-Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-3\",\n textValue: \"Section1-Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n ],\n },\n },\n });\n\n registerComponentHelper(\n loader,\n BaseListBox,\n {\n name: LIST_BOX_COMPONENT_NAME,\n displayName: \"Aria ListBox\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n importName: \"BaseListBox\",\n variants,\n defaultStyles: {\n width: \"250px\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n },\n props: {\n children: {\n type: \"slot\",\n displayName: \"List Items\",\n allowedComponents: [listBoxItemMeta.name, sectionMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"1\",\n textValue: \"Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"2\",\n textValue: \"Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"3\",\n textValue: \"Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: sectionMeta.name,\n },\n ],\n },\n selectionMode: {\n type: \"choice\",\n description: \"The selection mode of the listbox\",\n options: [\"none\", \"single\"],\n defaultValue: \"none\",\n hidden: (_props, ctx) => !ctx?.isStandalone,\n },\n selectedKeys: {\n type: \"choice\",\n editOnly: true,\n uncontrolledProp: \"defaultSelectedKeys\",\n displayName: \"Initial selected item\",\n options: (_props, ctx) =>\n ctx?.itemIds ? Array.from(ctx.itemIds) : [],\n hidden: (props, ctx) =>\n !ctx?.isStandalone || props.selectionMode === \"none\",\n // We do not support multiple selections yet (Because React Aria select and combobox only support single selections).\n multiSelect: false,\n },\n onSelectionChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"selectedValues\", type: \"object\" }],\n },\n },\n states: {\n selectedValue: {\n type: \"writable\",\n valueProp: \"selectedKeys\",\n hidden: (props, ctx) =>\n !ctx?.isStandalone || props.selectionMode === \"none\",\n onChangeProp: \"onSelectionChange\",\n variableType: \"text\",\n ...listboxHelpers.states.selectedValue,\n },\n },\n componentHelpers: {\n helpers: listboxHelpers,\n importName: \"listboxHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["__objRest","React","PlasmicListBoxContext","Section","__spreadValues","Header","registerComponentHelper","makeComponentName","pickAriaComponentVariants","useState","useMemo","_a","OptionsItemIdManager","useEffect","useCallback","ListBox","registerListBoxItem","makeDefaultListBoxItemChildren"],"mappings":"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"}
@@ -1,62 +1,11 @@
1
1
  import React, { useState, useMemo, useEffect, useCallback } from 'react';
2
2
  import { Section, Header, ListBox } from 'react-aria-components';
3
3
  import { b as PlasmicListBoxContext } from './contexts-5cb81c2f.esm.js';
4
+ import { O as OptionsItemIdManager } from './OptionsItemIdManager-832b8cfe.esm.js';
4
5
  import { registerListBoxItem, makeDefaultListBoxItemChildren } from './registerListBoxItem.esm.js';
5
- import { r as registerComponentHelper, a as makeComponentName } from './utils-41b3d43b.esm.js';
6
+ import { r as registerComponentHelper, m as makeComponentName } from './utils-bcdc928e.esm.js';
6
7
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
7
8
 
8
- class ListBoxItemIdManager {
9
- constructor() {
10
- this._ids = /* @__PURE__ */ new Set();
11
- this._observers = /* @__PURE__ */ new Set();
12
- }
13
- generateDuplicateId(id, count = 1) {
14
- const dupId = `${id} duplicate(${count})`;
15
- if (this._ids.has(dupId)) {
16
- return this.generateDuplicateId(id, count + 1);
17
- } else {
18
- return dupId;
19
- }
20
- }
21
- generateMissingId(count = 1) {
22
- const missingId = `missing(${count})`;
23
- if (this._ids.has(missingId)) {
24
- return this.generateMissingId(count + 1);
25
- } else {
26
- return missingId;
27
- }
28
- }
29
- register(id) {
30
- const idStr = id === void 0 ? void 0 : String(id).trim();
31
- let newId;
32
- if (!idStr) {
33
- newId = this.generateMissingId();
34
- } else if (this._ids.has(idStr)) {
35
- newId = this.generateDuplicateId(idStr);
36
- } else {
37
- newId = idStr;
38
- }
39
- this._ids.add(newId);
40
- this.notify();
41
- return newId;
42
- }
43
- unregister(id) {
44
- this._ids.delete(id);
45
- this.notify();
46
- }
47
- subscribe(observer) {
48
- this._observers.add(observer);
49
- observer(this.ids);
50
- }
51
- // Notify all observers about an event.
52
- notify() {
53
- this._observers.forEach((observer) => observer(this.ids));
54
- }
55
- get ids() {
56
- return Array.from(this._ids);
57
- }
58
- }
59
-
60
9
  var __defProp$1 = Object.defineProperty;
61
10
  var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
62
11
  var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
@@ -199,7 +148,7 @@ function BaseListBox(props) {
199
148
  const idManager = useMemo(
200
149
  () => {
201
150
  var _a2;
202
- return (_a2 = context == null ? void 0 : context.idManager) != null ? _a2 : new ListBoxItemIdManager();
151
+ return (_a2 = context == null ? void 0 : context.idManager) != null ? _a2 : new OptionsItemIdManager();
203
152
  },
204
153
  []
205
154
  );
@@ -415,5 +364,5 @@ function registerListBox(loader, overrides) {
415
364
  );
416
365
  }
417
366
 
418
- export { BaseSection as B, ListBoxItemIdManager as L, LIST_BOX_COMPONENT_NAME as a, BaseListBox as b, registerListBox as c, listboxHelpers as l, registerSection as r };
419
- //# sourceMappingURL=registerListBox-4d5f98f9.esm.js.map
367
+ export { BaseSection as B, LIST_BOX_COMPONENT_NAME as L, BaseListBox as a, registerListBox as b, listboxHelpers as l, registerSection as r };
368
+ //# sourceMappingURL=registerListBox-b6e4aabc.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerListBox-b6e4aabc.esm.js","sources":["../src/registerSection.tsx","../src/registerListBox.tsx"],"sourcesContent":["import React from \"react\";\nimport { Header, Section } from \"react-aria-components\";\nimport { PlasmicListBoxContext } from \"./contexts\";\nimport { BaseListBox } from \"./registerListBox\";\nimport {\n CodeComponentMetaOverrides,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n Styleable,\n} from \"./utils\";\n\nexport interface BaseSectionProps extends Styleable {\n items: React.ReactNode;\n header: React.ReactNode;\n}\n\nexport function BaseSection(props: BaseSectionProps) {\n const { header, items, ...rest } = props;\n const contextProps = React.useContext(PlasmicListBoxContext);\n const isStandalone = !contextProps;\n\n const section = (\n <Section {...rest}>\n <Header>{header}</Header>\n {items}\n </Section>\n );\n\n if (isStandalone) {\n return (\n // BaseListbox should give section a listbox context (that it can't be used without)\n // as well as the id manager (that is needed to identify and warn about duplication of ids)\n // selection mode needs to be single/multiple to be able to trigger hover state on it.\n <BaseListBox selectionMode=\"single\">{section}</BaseListBox>\n );\n }\n\n return section;\n}\n\nexport function registerSection(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSection>\n) {\n return registerComponentHelper(\n loader,\n BaseSection,\n {\n name: makeComponentName(\"section\"),\n displayName: \"Aria Section\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSection\",\n importName: \"BaseSection\",\n defaultStyles: {\n width: \"stretch\",\n padding: \"10px\",\n },\n props: {\n header: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: [\n {\n type: \"text\",\n value: \"Section Header.\",\n },\n ],\n },\n items: {\n type: \"slot\",\n mergeWithParent: true,\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Key, ListBox, ListBoxRenderProps } from \"react-aria-components\";\nimport { PlasmicListBoxContext } from \"./contexts\";\nimport { OptionsItemIdManager } from \"./OptionsItemIdManager\";\nimport {\n makeDefaultListBoxItemChildren,\n registerListBoxItem,\n} from \"./registerListBoxItem\";\nimport { registerSection } from \"./registerSection\";\nimport {\n CodeComponentMetaOverrides,\n HasControlContextData,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nexport interface BaseListBoxControlContextData {\n itemIds: string[];\n isStandalone: boolean;\n}\n\nconst LISTBOX_VARIANTS = [\"focused\" as const, \"focusVisible\" as const];\n\nconst { variants } = pickAriaComponentVariants(LISTBOX_VARIANTS);\n\nexport interface BaseListBoxProps\n extends Omit<\n React.ComponentProps<typeof ListBox>,\n \"selectedKeys\" | \"defaultSelectedKeys\" | \"className\"\n >,\n HasControlContextData<BaseListBoxControlContextData>,\n WithVariants<typeof LISTBOX_VARIANTS> {\n children?: React.ReactNode;\n selectedKeys?: string | string[] | undefined;\n defaultSelectedKeys?: string | string[] | undefined;\n className?: string;\n}\n\nexport const listboxHelpers = {\n states: {\n selectedValue: {\n onChangeArgsToValue: (value: Set<Key> | string[] | string) => {\n // only single selection is supported\n return Array.from(value)[0];\n },\n },\n },\n};\n\nfunction normalizeSelectedKeys(selectedKeys: string | string[] | undefined) {\n // Listbox expects it to be of type \"all\" | Iterable\n return typeof selectedKeys === \"string\" && selectedKeys !== \"all\"\n ? [selectedKeys]\n : selectedKeys;\n}\n\nexport function BaseListBox(props: BaseListBoxProps) {\n const {\n setControlContextData: setControlContextData,\n children,\n className,\n selectedKeys,\n defaultSelectedKeys,\n plasmicUpdateVariant,\n ...rest\n } = props;\n const context = React.useContext(PlasmicListBoxContext);\n const isStandalone = !context;\n const [ids, setIds] = useState<string[]>([]);\n const idManager = useMemo(\n () => context?.idManager ?? new OptionsItemIdManager(),\n []\n );\n\n useEffect(() => {\n setControlContextData?.({\n itemIds: ids,\n isStandalone,\n });\n }, [ids, isStandalone, setControlContextData]);\n\n useEffect(() => {\n idManager.subscribe((_ids: string[]) => {\n setIds(_ids);\n });\n }, []);\n\n const classNameProp = useCallback(\n ({ isFocusVisible, isFocused }: ListBoxRenderProps) => {\n plasmicUpdateVariant?.({\n focused: isFocused,\n focusVisible: isFocusVisible,\n });\n return className ?? \"\";\n },\n [className, plasmicUpdateVariant]\n );\n\n const listbox = (\n <ListBox\n selectedKeys={normalizeSelectedKeys(selectedKeys)}\n defaultSelectedKeys={normalizeSelectedKeys(defaultSelectedKeys)}\n className={classNameProp}\n {...rest}\n >\n {children}\n </ListBox>\n );\n\n if (isStandalone) {\n return (\n <PlasmicListBoxContext.Provider\n value={{\n idManager,\n }}\n >\n {listbox}\n </PlasmicListBoxContext.Provider>\n );\n }\n\n return listbox;\n}\n\nexport const LIST_BOX_COMPONENT_NAME = makeComponentName(\"listbox\");\n\nexport function registerListBox(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseListBox>\n) {\n const listBoxItemMeta = registerListBoxItem(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n });\n const sectionMeta = registerSection(loader, {\n parentComponentName: LIST_BOX_COMPONENT_NAME,\n props: {\n items: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-1\",\n textValue: \"Section1-Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-2\",\n textValue: \"Section1-Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"section-1-3\",\n textValue: \"Section1-Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n ],\n },\n },\n });\n\n registerComponentHelper(\n loader,\n BaseListBox,\n {\n name: LIST_BOX_COMPONENT_NAME,\n displayName: \"Aria ListBox\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n importName: \"BaseListBox\",\n variants,\n defaultStyles: {\n width: \"250px\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n },\n props: {\n children: {\n type: \"slot\",\n displayName: \"List Items\",\n allowedComponents: [listBoxItemMeta.name, sectionMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"1\",\n textValue: \"Item 1\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 1\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"2\",\n textValue: \"Item 2\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 2\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: listBoxItemMeta.name,\n props: {\n id: \"3\",\n textValue: \"Item 3\",\n children: [\n makeDefaultListBoxItemChildren(\n \"Item 3\",\n \"Add dynamic values to make it more interesting\"\n ),\n ],\n },\n },\n {\n type: \"component\",\n name: sectionMeta.name,\n },\n ],\n },\n selectionMode: {\n type: \"choice\",\n description: \"The selection mode of the listbox\",\n options: [\"none\", \"single\"],\n defaultValue: \"none\",\n hidden: (_props, ctx) => !ctx?.isStandalone,\n },\n selectedKeys: {\n type: \"choice\",\n editOnly: true,\n uncontrolledProp: \"defaultSelectedKeys\",\n displayName: \"Initial selected item\",\n options: (_props, ctx) =>\n ctx?.itemIds ? Array.from(ctx.itemIds) : [],\n hidden: (props, ctx) =>\n !ctx?.isStandalone || props.selectionMode === \"none\",\n // We do not support multiple selections yet (Because React Aria select and combobox only support single selections).\n multiSelect: false,\n },\n onSelectionChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"selectedValues\", type: \"object\" }],\n },\n },\n states: {\n selectedValue: {\n type: \"writable\",\n valueProp: \"selectedKeys\",\n hidden: (props, ctx) =>\n !ctx?.isStandalone || props.selectionMode === \"none\",\n onChangeProp: \"onSelectionChange\",\n variableType: \"text\",\n ...listboxHelpers.states.selectedValue,\n },\n },\n componentHelpers: {\n helpers: listboxHelpers,\n importName: \"listboxHelpers\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerListBox\",\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["__objRest","__spreadValues","_a"],"mappings":"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"}
@@ -3,8 +3,9 @@
3
3
  require('react');
4
4
  require('react-aria-components');
5
5
  require('./contexts-6d0cb2b1.cjs.js');
6
- var registerSection = require('./registerListBox-7d927361.cjs.js');
6
+ require('./OptionsItemIdManager-a89a28b9.cjs.js');
7
7
  require('./registerListBoxItem.cjs.js');
8
+ var registerSection = require('./registerListBox-25f29573.cjs.js');
8
9
  require('./utils-d1c8094f.cjs.js');
9
10
  require('./variant-utils-0ad70db8.cjs.js');
10
11
  require('./registerDescription.cjs.js');
@@ -1 +1 @@
1
- {"version":3,"file":"registerListBox.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"registerListBox.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,10 @@
1
1
  import 'react';
2
2
  import 'react-aria-components';
3
3
  import './contexts-5cb81c2f.esm.js';
4
- export { b as BaseListBox, a as LIST_BOX_COMPONENT_NAME, l as listboxHelpers, c as registerListBox } from './registerListBox-4d5f98f9.esm.js';
4
+ import './OptionsItemIdManager-832b8cfe.esm.js';
5
5
  import './registerListBoxItem.esm.js';
6
- import './utils-41b3d43b.esm.js';
6
+ export { a as BaseListBox, L as LIST_BOX_COMPONENT_NAME, l as listboxHelpers, b as registerListBox } from './registerListBox-b6e4aabc.esm.js';
7
+ import './utils-bcdc928e.esm.js';
7
8
  import './variant-utils-4405ebb0.esm.js';
8
9
  import './registerDescription.esm.js';
9
10
  import './registerText.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"registerListBox.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"registerListBox.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -3,7 +3,7 @@ import { ListBoxItem, ListBox } from 'react-aria-components';
3
3
  import { b as PlasmicListBoxContext } from './contexts-5cb81c2f.esm.js';
4
4
  import { DESCRIPTION_COMPONENT_NAME } from './registerDescription.esm.js';
5
5
  import { TEXT_COMPONENT_NAME } from './registerText.esm.js';
6
- import { r as registerComponentHelper, a as makeComponentName } from './utils-41b3d43b.esm.js';
6
+ import { r as registerComponentHelper, m as makeComponentName } from './utils-bcdc928e.esm.js';
7
7
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
8
8
  import '@plasmicapp/host';
9
9
  import '@plasmicapp/host/registerComponent';
@@ -2,10 +2,10 @@ import { usePlasmicCanvasContext, usePlasmicCanvasComponentInfo } from '@plasmic
2
2
  import React, { forwardRef, useImperativeHandle } from 'react';
3
3
  import { mergeProps } from 'react-aria';
4
4
  import { ModalOverlay, Modal, Dialog } from 'react-aria-components';
5
- import { h as hasParent } from './common-7ecf439d.esm.js';
5
+ import { h as hasParent } from './common-d75204cf.esm.js';
6
6
  import { d as PlasmicDialogTriggerContext } from './contexts-5cb81c2f.esm.js';
7
7
  import { HEADING_COMPONENT_NAME } from './registerHeading.esm.js';
8
- import { a as makeComponentName, r as registerComponentHelper } from './utils-41b3d43b.esm.js';
8
+ import { m as makeComponentName, r as registerComponentHelper } from './utils-bcdc928e.esm.js';
9
9
  import '@plasmicapp/host/registerComponent';
10
10
 
11
11
  var __defProp = Object.defineProperty;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { PopoverContext, TooltipContext, OverlayArrow } from 'react-aria-components';
3
- import { a as arrowDown } from './common-7ecf439d.esm.js';
4
- import { a as makeComponentName, r as registerComponentHelper } from './utils-41b3d43b.esm.js';
3
+ import { a as arrowDown } from './common-d75204cf.esm.js';
4
+ import { m as makeComponentName, r as registerComponentHelper } from './utils-bcdc928e.esm.js';
5
5
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
6
6
  import '@plasmicapp/host';
7
7
  import '@plasmicapp/host/registerComponent';
@@ -2,9 +2,9 @@ import { usePlasmicCanvasContext } from '@plasmicapp/host';
2
2
  import { mergeProps } from '@react-aria/utils';
3
3
  import React, { useEffect } from 'react';
4
4
  import { PopoverContext, Popover } from 'react-aria-components';
5
- import { b as getCommonOverlayProps } from './common-7ecf439d.esm.js';
5
+ import { b as getCommonOverlayProps } from './common-d75204cf.esm.js';
6
6
  import { a as PlasmicPopoverTriggerContext } from './contexts-5cb81c2f.esm.js';
7
- import { a as makeComponentName, r as registerComponentHelper } from './utils-41b3d43b.esm.js';
7
+ import { m as makeComponentName, r as registerComponentHelper } from './utils-bcdc928e.esm.js';
8
8
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
9
9
  import '@plasmicapp/host/registerComponent';
10
10
 
@@ -57,13 +57,50 @@ const RADIO_VARIANTS = [
57
57
  ];
58
58
  const { variants, withObservedValues } = variantUtils.pickAriaComponentVariants(RADIO_VARIANTS);
59
59
  function BaseRadio(props) {
60
- const _a = props, { children, setControlContextData, plasmicUpdateVariant } = _a, rest = __objRest(_a, ["children", "setControlContextData", "plasmicUpdateVariant"]);
60
+ const _a = props, {
61
+ children,
62
+ setControlContextData,
63
+ plasmicUpdateVariant,
64
+ value
65
+ } = _a, rest = __objRest(_a, [
66
+ "children",
67
+ "setControlContextData",
68
+ "plasmicUpdateVariant",
69
+ "value"
70
+ ]);
61
71
  const contextProps = React__default.default.useContext(contexts.PlasmicRadioGroupContext);
62
72
  const isStandalone = !contextProps;
73
+ const [registeredId, setRegisteredId] = React.useState("");
74
+ React.useEffect(() => {
75
+ if (!(contextProps == null ? void 0 : contextProps.idManager)) {
76
+ return;
77
+ }
78
+ const localId = contextProps.idManager.register(value);
79
+ setRegisteredId(localId);
80
+ return () => {
81
+ contextProps.idManager.unregister(localId);
82
+ setRegisteredId("");
83
+ };
84
+ }, [value, contextProps == null ? void 0 : contextProps.idManager]);
63
85
  setControlContextData == null ? void 0 : setControlContextData({
64
- parent: contextProps
86
+ parent: contextProps,
87
+ idError: (() => {
88
+ if (value === void 0) {
89
+ return "Value must be defined";
90
+ }
91
+ if (typeof value !== "string") {
92
+ return "Value must be a string";
93
+ }
94
+ if (!value.trim()) {
95
+ return "Value must be defined";
96
+ }
97
+ if (!isStandalone && value != registeredId) {
98
+ return "Value must be unique";
99
+ }
100
+ return void 0;
101
+ })()
65
102
  });
66
- const radio = /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.Radio, __spreadValues({}, rest), ({
103
+ const radio = /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.Radio, __spreadProps(__spreadValues({}, rest), { value: registeredId, key: registeredId }), ({
67
104
  isHovered,
68
105
  isPressed,
69
106
  isFocused,
@@ -143,7 +180,13 @@ function registerRadio(loader, overrides) {
143
180
  },
144
181
  value: {
145
182
  type: "string",
146
- description: "The value of the input element, used when submitting an HTML form."
183
+ description: "The value of the input element, used when submitting an HTML form.",
184
+ validator: (_value, _props, ctx) => {
185
+ if (ctx == null ? void 0 : ctx.idError) {
186
+ return ctx.idError;
187
+ }
188
+ return true;
189
+ }
147
190
  }
148
191
  }),
149
192
  trapsFocus: true
@@ -1 +1 @@
1
- {"version":3,"file":"registerRadio.cjs.js","sources":["../src/registerRadio.tsx"],"sourcesContent":["import { PlasmicElement } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport type { RadioProps } from \"react-aria-components\";\nimport { Radio, RadioGroup } from \"react-aria-components\";\nimport { getCommonProps } from \"./common\";\nimport { PlasmicRadioGroupContext } from \"./contexts\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport {\n CodeComponentMetaOverrides,\n HasControlContextData,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst RADIO_VARIANTS = [\n \"selected\" as const,\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n \"disabled\" as const,\n \"readonly\" as const,\n \"selected\" as const,\n];\n\nexport interface BaseRadioProps\n extends RadioProps,\n HasControlContextData,\n WithVariants<typeof RADIO_VARIANTS> {\n children: React.ReactNode;\n}\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(RADIO_VARIANTS);\n\nexport function BaseRadio(props: BaseRadioProps) {\n const { children, setControlContextData, plasmicUpdateVariant, ...rest } =\n props;\n const contextProps = React.useContext(PlasmicRadioGroupContext);\n const isStandalone = !contextProps;\n\n setControlContextData?.({\n parent: contextProps,\n });\n\n const radio = (\n <Radio {...rest}>\n {({\n isHovered,\n isPressed,\n isFocused,\n isFocusVisible,\n isSelected,\n isDisabled,\n isReadOnly,\n }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n selected: isSelected,\n disabled: isDisabled,\n readonly: isReadOnly,\n },\n plasmicUpdateVariant\n )\n }\n </Radio>\n );\n\n if (isStandalone) {\n return <RadioGroup>{radio}</RadioGroup>;\n }\n\n return radio;\n}\n\nexport const makeDefaultRadioChildren = (label: string): PlasmicElement => ({\n type: \"hbox\",\n styles: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\",\n padding: 0,\n },\n children: [\n {\n type: \"box\",\n styles: {\n width: \"7px\",\n height: \"7px\",\n borderRadius: \"100%\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n },\n },\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n },\n ],\n});\n\nexport function registerRadio(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseRadio>\n) {\n return registerComponentHelper(\n loader,\n BaseRadio,\n {\n name: makeComponentName(\"radio\"),\n displayName: \"Aria Radio\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerRadio\",\n importName: \"BaseRadio\",\n variants,\n props: {\n ...getCommonProps<BaseRadioProps>(\"radio\", [\n \"isDisabled\",\n \"autoFocus\",\n \"aria-label\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: makeDefaultRadioChildren(\"Radio\"),\n },\n value: {\n type: \"string\",\n description:\n \"The value of the input element, used when submitting an HTML form.\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicRadioGroupContext","Radio","RadioGroup","LABEL_COMPONENT_NAME","registerComponentHelper","makeComponentName","getCommonProps"],"mappings":"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"}
1
+ {"version":3,"file":"registerRadio.cjs.js","sources":["../src/registerRadio.tsx"],"sourcesContent":["import { PlasmicElement } from \"@plasmicapp/host\";\nimport React, { useEffect, useState } from \"react\";\nimport type { RadioProps } from \"react-aria-components\";\nimport { Radio, RadioGroup } from \"react-aria-components\";\nimport { getCommonProps } from \"./common\";\nimport { PlasmicRadioGroupContext } from \"./contexts\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport {\n BaseControlContextData,\n CodeComponentMetaOverrides,\n HasControlContextData,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst RADIO_VARIANTS = [\n \"selected\" as const,\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n \"disabled\" as const,\n \"readonly\" as const,\n \"selected\" as const,\n];\n\nexport interface BaseRadioControlContextData extends BaseControlContextData {\n idError?: string;\n}\n\nexport interface BaseRadioProps\n extends RadioProps,\n HasControlContextData<BaseRadioControlContextData>,\n WithVariants<typeof RADIO_VARIANTS> {\n children: React.ReactNode;\n}\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(RADIO_VARIANTS);\n\nexport function BaseRadio(props: BaseRadioProps) {\n const {\n children,\n setControlContextData,\n plasmicUpdateVariant,\n value,\n ...rest\n } = props;\n const contextProps = React.useContext(PlasmicRadioGroupContext);\n const isStandalone = !contextProps;\n const [registeredId, setRegisteredId] = useState<string>(\"\");\n\n useEffect(() => {\n if (!contextProps?.idManager) {\n return;\n }\n\n const localId = contextProps.idManager.register(value);\n setRegisteredId(localId);\n\n return () => {\n contextProps.idManager.unregister(localId);\n setRegisteredId(\"\");\n };\n }, [value, contextProps?.idManager]);\n\n setControlContextData?.({\n parent: contextProps,\n idError: (() => {\n if (value === undefined) {\n return \"Value must be defined\";\n }\n if (typeof value !== \"string\") {\n return \"Value must be a string\";\n }\n if (!value.trim()) {\n return \"Value must be defined\";\n }\n if (!isStandalone && value != registeredId) {\n return \"Value must be unique\";\n }\n return undefined;\n })(),\n });\n\n const radio = (\n <Radio {...rest} value={registeredId} key={registeredId}>\n {({\n isHovered,\n isPressed,\n isFocused,\n isFocusVisible,\n isSelected,\n isDisabled,\n isReadOnly,\n }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n selected: isSelected,\n disabled: isDisabled,\n readonly: isReadOnly,\n },\n plasmicUpdateVariant\n )\n }\n </Radio>\n );\n\n if (isStandalone) {\n return <RadioGroup>{radio}</RadioGroup>;\n }\n\n return radio;\n}\n\nexport const makeDefaultRadioChildren = (label: string): PlasmicElement => ({\n type: \"hbox\",\n styles: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\",\n padding: 0,\n },\n children: [\n {\n type: \"box\",\n styles: {\n width: \"7px\",\n height: \"7px\",\n borderRadius: \"100%\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"black\",\n },\n },\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n },\n ],\n});\n\nexport function registerRadio(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseRadio>\n) {\n return registerComponentHelper(\n loader,\n BaseRadio,\n {\n name: makeComponentName(\"radio\"),\n displayName: \"Aria Radio\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerRadio\",\n importName: \"BaseRadio\",\n variants,\n props: {\n ...getCommonProps<BaseRadioProps>(\"radio\", [\n \"isDisabled\",\n \"autoFocus\",\n \"aria-label\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: makeDefaultRadioChildren(\"Radio\"),\n },\n value: {\n type: \"string\",\n description:\n \"The value of the input element, used when submitting an HTML form.\",\n validator: (_value, _props, ctx) => {\n if (ctx?.idError) {\n return ctx.idError;\n }\n return true;\n },\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicRadioGroupContext","useState","useEffect","Radio","RadioGroup","LABEL_COMPONENT_NAME","registerComponentHelper","makeComponentName","getCommonProps"],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import { PlasmicElement } from "@plasmicapp/host";
2
2
  import React from "react";
3
3
  import type { RadioProps } from "react-aria-components";
4
- import { CodeComponentMetaOverrides, HasControlContextData, Registerable } from "./utils";
4
+ import { BaseControlContextData, CodeComponentMetaOverrides, HasControlContextData, Registerable } from "./utils";
5
5
  import { WithVariants } from "./variant-utils";
6
6
  declare const RADIO_VARIANTS: ("disabled" | "readonly" | "hovered" | "pressed" | "focused" | "focusVisible" | "selected")[];
7
- export interface BaseRadioProps extends RadioProps, HasControlContextData, WithVariants<typeof RADIO_VARIANTS> {
7
+ export interface BaseRadioControlContextData extends BaseControlContextData {
8
+ idError?: string;
9
+ }
10
+ export interface BaseRadioProps extends RadioProps, HasControlContextData<BaseRadioControlContextData>, WithVariants<typeof RADIO_VARIANTS> {
8
11
  children: React.ReactNode;
9
12
  }
10
13
  export declare function BaseRadio(props: BaseRadioProps): React.JSX.Element;
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import React, { useState, useEffect } from 'react';
2
2
  import { Radio, RadioGroup } from 'react-aria-components';
3
- import { g as getCommonProps } from './common-7ecf439d.esm.js';
3
+ import { g as getCommonProps } from './common-d75204cf.esm.js';
4
4
  import { e as PlasmicRadioGroupContext } from './contexts-5cb81c2f.esm.js';
5
5
  import { LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
6
- import { r as registerComponentHelper, a as makeComponentName } from './utils-41b3d43b.esm.js';
6
+ import { r as registerComponentHelper, m as makeComponentName } from './utils-bcdc928e.esm.js';
7
7
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
8
8
  import '@plasmicapp/host';
9
9
  import '@plasmicapp/host/registerComponent';
@@ -51,13 +51,50 @@ const RADIO_VARIANTS = [
51
51
  ];
52
52
  const { variants, withObservedValues } = pickAriaComponentVariants(RADIO_VARIANTS);
53
53
  function BaseRadio(props) {
54
- const _a = props, { children, setControlContextData, plasmicUpdateVariant } = _a, rest = __objRest(_a, ["children", "setControlContextData", "plasmicUpdateVariant"]);
54
+ const _a = props, {
55
+ children,
56
+ setControlContextData,
57
+ plasmicUpdateVariant,
58
+ value
59
+ } = _a, rest = __objRest(_a, [
60
+ "children",
61
+ "setControlContextData",
62
+ "plasmicUpdateVariant",
63
+ "value"
64
+ ]);
55
65
  const contextProps = React.useContext(PlasmicRadioGroupContext);
56
66
  const isStandalone = !contextProps;
67
+ const [registeredId, setRegisteredId] = useState("");
68
+ useEffect(() => {
69
+ if (!(contextProps == null ? void 0 : contextProps.idManager)) {
70
+ return;
71
+ }
72
+ const localId = contextProps.idManager.register(value);
73
+ setRegisteredId(localId);
74
+ return () => {
75
+ contextProps.idManager.unregister(localId);
76
+ setRegisteredId("");
77
+ };
78
+ }, [value, contextProps == null ? void 0 : contextProps.idManager]);
57
79
  setControlContextData == null ? void 0 : setControlContextData({
58
- parent: contextProps
80
+ parent: contextProps,
81
+ idError: (() => {
82
+ if (value === void 0) {
83
+ return "Value must be defined";
84
+ }
85
+ if (typeof value !== "string") {
86
+ return "Value must be a string";
87
+ }
88
+ if (!value.trim()) {
89
+ return "Value must be defined";
90
+ }
91
+ if (!isStandalone && value != registeredId) {
92
+ return "Value must be unique";
93
+ }
94
+ return void 0;
95
+ })()
59
96
  });
60
- const radio = /* @__PURE__ */ React.createElement(Radio, __spreadValues({}, rest), ({
97
+ const radio = /* @__PURE__ */ React.createElement(Radio, __spreadProps(__spreadValues({}, rest), { value: registeredId, key: registeredId }), ({
61
98
  isHovered,
62
99
  isPressed,
63
100
  isFocused,
@@ -137,7 +174,13 @@ function registerRadio(loader, overrides) {
137
174
  },
138
175
  value: {
139
176
  type: "string",
140
- description: "The value of the input element, used when submitting an HTML form."
177
+ description: "The value of the input element, used when submitting an HTML form.",
178
+ validator: (_value, _props, ctx) => {
179
+ if (ctx == null ? void 0 : ctx.idError) {
180
+ return ctx.idError;
181
+ }
182
+ return true;
183
+ }
141
184
  }
142
185
  }),
143
186
  trapsFocus: true