@plasmicpkgs/react-aria 0.0.121 → 0.0.122

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 (80) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/react-aria.esm.js +1 -1
  3. package/dist/react-aria.esm.js.map +1 -1
  4. package/dist/react-aria.js +1 -1
  5. package/dist/react-aria.js.map +1 -1
  6. package/package.json +2 -2
  7. package/skinny/{common-616eb178.esm.js → common-a8047588.esm.js} +2 -2
  8. package/skinny/{common-616eb178.esm.js.map → common-a8047588.esm.js.map} +1 -1
  9. package/skinny/{common-45acb83c.cjs.js → common-abd18d7f.cjs.js} +2 -2
  10. package/skinny/{common-45acb83c.cjs.js.map → common-abd18d7f.cjs.js.map} +1 -1
  11. package/skinny/registerButton.cjs.js +2 -2
  12. package/skinny/registerButton.esm.js +2 -2
  13. package/skinny/registerCheckbox.cjs.js +2 -2
  14. package/skinny/registerCheckbox.esm.js +2 -2
  15. package/skinny/registerCheckboxGroup.cjs.js +2 -2
  16. package/skinny/registerCheckboxGroup.esm.js +2 -2
  17. package/skinny/registerComboBox.cjs.js +3 -3
  18. package/skinny/registerComboBox.esm.js +3 -3
  19. package/skinny/registerDescription.cjs.js +2 -2
  20. package/skinny/registerDescription.esm.js +2 -2
  21. package/skinny/registerDialog.cjs.js +2 -2
  22. package/skinny/registerDialog.esm.js +2 -2
  23. package/skinny/registerDialogTrigger.cjs.js +2 -2
  24. package/skinny/registerDialogTrigger.esm.js +2 -2
  25. package/skinny/registerFieldError.cjs.js +1 -1
  26. package/skinny/registerFieldError.esm.js +1 -1
  27. package/skinny/registerForm.cjs.js +1 -1
  28. package/skinny/registerForm.esm.js +1 -1
  29. package/skinny/registerHeading.cjs.js +2 -2
  30. package/skinny/registerHeading.esm.js +2 -2
  31. package/skinny/registerInput.cjs.js +2 -2
  32. package/skinny/registerInput.esm.js +2 -2
  33. package/skinny/registerLabel.cjs.js +2 -2
  34. package/skinny/registerLabel.esm.js +2 -2
  35. package/skinny/{registerListBox-c676f3af.esm.js → registerListBox-5f3e4b36.esm.js} +3 -3
  36. package/skinny/{registerListBox-c676f3af.esm.js.map → registerListBox-5f3e4b36.esm.js.map} +1 -1
  37. package/skinny/{registerListBox-f83e4a42.cjs.js → registerListBox-c33bc9d2.cjs.js} +3 -3
  38. package/skinny/{registerListBox-f83e4a42.cjs.js.map → registerListBox-c33bc9d2.cjs.js.map} +1 -1
  39. package/skinny/registerListBox.cjs.js +3 -3
  40. package/skinny/registerListBox.esm.js +3 -3
  41. package/skinny/registerListBoxItem.cjs.js +2 -2
  42. package/skinny/registerListBoxItem.esm.js +2 -2
  43. package/skinny/registerModal.cjs.js +2 -2
  44. package/skinny/registerModal.esm.js +2 -2
  45. package/skinny/registerOverlayArrow.cjs.js +2 -2
  46. package/skinny/registerOverlayArrow.esm.js +2 -2
  47. package/skinny/registerPopover.cjs.js +2 -2
  48. package/skinny/registerPopover.esm.js +2 -2
  49. package/skinny/registerRadio.cjs.js +2 -2
  50. package/skinny/registerRadio.esm.js +2 -2
  51. package/skinny/registerRadioGroup.cjs.js +2 -2
  52. package/skinny/registerRadioGroup.esm.js +2 -2
  53. package/skinny/registerSection.cjs.js +3 -3
  54. package/skinny/registerSection.esm.js +3 -3
  55. package/skinny/registerSelect.cjs.js +3 -3
  56. package/skinny/registerSelect.esm.js +3 -3
  57. package/skinny/registerSlider.cjs.js +2 -2
  58. package/skinny/registerSlider.esm.js +2 -2
  59. package/skinny/registerSliderOutput.cjs.js +2 -2
  60. package/skinny/registerSliderOutput.esm.js +2 -2
  61. package/skinny/registerSliderThumb.cjs.js +2 -2
  62. package/skinny/registerSliderThumb.esm.js +2 -2
  63. package/skinny/registerSliderTrack.cjs.js +2 -2
  64. package/skinny/registerSliderTrack.esm.js +2 -2
  65. package/skinny/registerSwitch.cjs.js +2 -2
  66. package/skinny/registerSwitch.esm.js +2 -2
  67. package/skinny/registerText.cjs.js +2 -2
  68. package/skinny/registerText.esm.js +2 -2
  69. package/skinny/registerTextArea.cjs.js +2 -2
  70. package/skinny/registerTextArea.esm.js +2 -2
  71. package/skinny/registerTextField.cjs.js +2 -2
  72. package/skinny/registerTextField.esm.js +2 -2
  73. package/skinny/registerTooltip.cjs.js +2 -2
  74. package/skinny/registerTooltip.esm.js +2 -2
  75. package/skinny/{utils-fc1ddd7c.cjs.js → utils-2e03b499.cjs.js} +2 -2
  76. package/skinny/utils-2e03b499.cjs.js.map +1 -0
  77. package/skinny/{utils-fd88ad47.esm.js → utils-d0ca1a25.esm.js} +2 -2
  78. package/skinny/utils-d0ca1a25.esm.js.map +1 -0
  79. package/skinny/utils-fc1ddd7c.cjs.js.map +0 -1
  80. package/skinny/utils-fd88ad47.esm.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import React, { Component } from 'react';
2
2
  import { SliderThumb, Slider, SliderTrack } from 'react-aria-components';
3
- import { g as getCommonProps, C as COMMON_STYLES } from './common-616eb178.esm.js';
4
- import { m as makeComponentName, r as registerComponentHelper } from './utils-fd88ad47.esm.js';
3
+ import { g as getCommonProps, C as COMMON_STYLES } from './common-a8047588.esm.js';
4
+ import { m as makeComponentName, r as registerComponentHelper } from './utils-d0ca1a25.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';
@@ -3,9 +3,9 @@
3
3
  var React = require('react');
4
4
  var reactAriaComponents = require('react-aria-components');
5
5
  var flattenChildren = require('react-keyed-flatten-children');
6
- var common = require('./common-45acb83c.cjs.js');
6
+ var common = require('./common-abd18d7f.cjs.js');
7
7
  var contexts = require('./contexts-6d0cb2b1.cjs.js');
8
- var utils = require('./utils-fc1ddd7c.cjs.js');
8
+ var utils = require('./utils-2e03b499.cjs.js');
9
9
  var variantUtils = require('./variant-utils-0ad70db8.cjs.js');
10
10
  require('@plasmicapp/host');
11
11
  require('@plasmicapp/host/registerComponent');
@@ -1,9 +1,9 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { SliderTrack, Slider } from 'react-aria-components';
3
3
  import flattenChildren from 'react-keyed-flatten-children';
4
- import { C as COMMON_STYLES } from './common-616eb178.esm.js';
4
+ import { C as COMMON_STYLES } from './common-a8047588.esm.js';
5
5
  import { f as PlasmicSliderContext } from './contexts-5cb81c2f.esm.js';
6
- import { m as makeComponentName, r as registerComponentHelper, i as isDefined } from './utils-fd88ad47.esm.js';
6
+ import { m as makeComponentName, r as registerComponentHelper, i as isDefined } from './utils-d0ca1a25.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 @@
2
2
 
3
3
  var React = require('react');
4
4
  var reactAriaComponents = require('react-aria-components');
5
- var common = require('./common-45acb83c.cjs.js');
5
+ var common = require('./common-abd18d7f.cjs.js');
6
6
  var registerDescription = require('./registerDescription.cjs.js');
7
7
  var registerLabel = require('./registerLabel.cjs.js');
8
- var utils = require('./utils-fc1ddd7c.cjs.js');
8
+ var utils = require('./utils-2e03b499.cjs.js');
9
9
  var variantUtils = require('./variant-utils-0ad70db8.cjs.js');
10
10
  require('./registerText.cjs.js');
11
11
  require('@plasmicapp/host');
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { Switch } from 'react-aria-components';
3
- import { g as getCommonProps, C as COMMON_STYLES } from './common-616eb178.esm.js';
3
+ import { g as getCommonProps, C as COMMON_STYLES } from './common-a8047588.esm.js';
4
4
  import { DESCRIPTION_COMPONENT_NAME } from './registerDescription.esm.js';
5
5
  import { LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
6
- import { r as registerComponentHelper, m as makeComponentName } from './utils-fd88ad47.esm.js';
6
+ import { r as registerComponentHelper, m as makeComponentName } from './utils-d0ca1a25.esm.js';
7
7
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
8
8
  import './registerText.esm.js';
9
9
  import '@plasmicapp/host';
@@ -2,8 +2,8 @@
2
2
 
3
3
  var React = require('react');
4
4
  var reactAriaComponents = require('react-aria-components');
5
- var common = require('./common-45acb83c.cjs.js');
6
- var utils = require('./utils-fc1ddd7c.cjs.js');
5
+ var common = require('./common-abd18d7f.cjs.js');
6
+ var utils = require('./utils-2e03b499.cjs.js');
7
7
  require('@plasmicapp/host');
8
8
  require('@plasmicapp/host/registerComponent');
9
9
 
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Text } from 'react-aria-components';
3
- import { C as COMMON_STYLES } from './common-616eb178.esm.js';
4
- import { e as extractPlasmicDataProps, m as makeComponentName, r as registerComponentHelper } from './utils-fd88ad47.esm.js';
3
+ import { C as COMMON_STYLES } from './common-a8047588.esm.js';
4
+ import { e as extractPlasmicDataProps, m as makeComponentName, r as registerComponentHelper } from './utils-d0ca1a25.esm.js';
5
5
  import '@plasmicapp/host';
6
6
  import '@plasmicapp/host/registerComponent';
7
7
 
@@ -3,9 +3,9 @@
3
3
  var React = require('react');
4
4
  var reactAria = require('react-aria');
5
5
  var reactAriaComponents = require('react-aria-components');
6
- var common = require('./common-45acb83c.cjs.js');
6
+ var common = require('./common-abd18d7f.cjs.js');
7
7
  var contexts = require('./contexts-6d0cb2b1.cjs.js');
8
- var utils = require('./utils-fc1ddd7c.cjs.js');
8
+ var utils = require('./utils-2e03b499.cjs.js');
9
9
  var variantUtils = require('./variant-utils-0ad70db8.cjs.js');
10
10
  require('@plasmicapp/host');
11
11
  require('@plasmicapp/host/registerComponent');
@@ -1,9 +1,9 @@
1
1
  import React, { useEffect } from 'react';
2
2
  import { useHover, useFocusRing, mergeProps } from 'react-aria';
3
3
  import { useContextProps, TextAreaContext } from 'react-aria-components';
4
- import { C as COMMON_STYLES, g as getCommonProps } from './common-616eb178.esm.js';
4
+ import { C as COMMON_STYLES, g as getCommonProps } from './common-a8047588.esm.js';
5
5
  import { g as PlasmicTextFieldContext } from './contexts-5cb81c2f.esm.js';
6
- import { f as filterHoverProps, i as isDefined, r as registerComponentHelper, m as makeComponentName } from './utils-fd88ad47.esm.js';
6
+ import { f as filterHoverProps, i as isDefined, r as registerComponentHelper, m as makeComponentName } from './utils-d0ca1a25.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,12 +2,12 @@
2
2
 
3
3
  var React = require('react');
4
4
  var reactAriaComponents = require('react-aria-components');
5
- var common = require('./common-45acb83c.cjs.js');
5
+ var common = require('./common-abd18d7f.cjs.js');
6
6
  var contexts = require('./contexts-6d0cb2b1.cjs.js');
7
7
  var registerDescription = require('./registerDescription.cjs.js');
8
8
  var registerInput = require('./registerInput.cjs.js');
9
9
  var registerLabel = require('./registerLabel.cjs.js');
10
- var utils = require('./utils-fc1ddd7c.cjs.js');
10
+ var utils = require('./utils-2e03b499.cjs.js');
11
11
  var variantUtils = require('./variant-utils-0ad70db8.cjs.js');
12
12
  require('./registerText.cjs.js');
13
13
  require('react-aria');
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import { TextField } from 'react-aria-components';
3
- import { r as resolveAutoComplete, g as getCommonProps, C as COMMON_STYLES } from './common-616eb178.esm.js';
3
+ import { r as resolveAutoComplete, g as getCommonProps, C as COMMON_STYLES } from './common-a8047588.esm.js';
4
4
  import { g as PlasmicTextFieldContext } from './contexts-5cb81c2f.esm.js';
5
5
  import { DESCRIPTION_COMPONENT_NAME } from './registerDescription.esm.js';
6
6
  import { INPUT_COMPONENT_NAME } from './registerInput.esm.js';
7
7
  import { LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
8
- import { m as makeComponentName, r as registerComponentHelper } from './utils-fd88ad47.esm.js';
8
+ import { m as makeComponentName, r as registerComponentHelper } from './utils-d0ca1a25.esm.js';
9
9
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
10
10
  import './registerText.esm.js';
11
11
  import 'react-aria';
@@ -4,8 +4,8 @@ var React = require('react');
4
4
  var reactAria = require('react-aria');
5
5
  var reactAriaComponents = require('react-aria-components');
6
6
  var reactStately = require('react-stately');
7
- var common = require('./common-45acb83c.cjs.js');
8
- var utils = require('./utils-fc1ddd7c.cjs.js');
7
+ var common = require('./common-abd18d7f.cjs.js');
8
+ var utils = require('./utils-2e03b499.cjs.js');
9
9
  var variantUtils = require('./variant-utils-0ad70db8.cjs.js');
10
10
  require('@plasmicapp/host');
11
11
  require('@plasmicapp/host/registerComponent');
@@ -2,8 +2,8 @@ import React, { useState, useCallback, useRef, useId } from 'react';
2
2
  import { useHover, useFocusWithin, mergeProps } from 'react-aria';
3
3
  import { Provider, TooltipTriggerStateContext, Tooltip } from 'react-aria-components';
4
4
  import { useTooltipTriggerState } from 'react-stately';
5
- import { C as COMMON_STYLES, b as getCommonOverlayProps } from './common-616eb178.esm.js';
6
- import { a as useIsOpen, r as registerComponentHelper } from './utils-fd88ad47.esm.js';
5
+ import { C as COMMON_STYLES, b as getCommonOverlayProps } from './common-a8047588.esm.js';
6
+ import { a as useIsOpen, r as registerComponentHelper } from './utils-d0ca1a25.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';
@@ -71,7 +71,7 @@ function useAutoOpen({
71
71
  } else {
72
72
  close == null ? void 0 : close();
73
73
  }
74
- }, [isSelected, inPlasmicCanvas]);
74
+ }, [isSelected, inPlasmicCanvas, open, close]);
75
75
  }
76
76
  function registerComponentHelper(loader, component, meta, overrides) {
77
77
  if (overrides) {
@@ -129,4 +129,4 @@ exports.makeComponentName = makeComponentName;
129
129
  exports.registerComponentHelper = registerComponentHelper;
130
130
  exports.useAutoOpen = useAutoOpen;
131
131
  exports.useIsOpen = useIsOpen;
132
- //# sourceMappingURL=utils-fc1ddd7c.cjs.js.map
132
+ //# sourceMappingURL=utils-2e03b499.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-2e03b499.cjs.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type ControlContextData = {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n};\n\nexport type BaseControlContextData = {\n parent?: ControlContextData;\n};\n\nexport type BaseControlContextDataForLists = {\n itemIds: string[];\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n }, [isSelected, inPlasmicCanvas, open, close]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":["usePlasmicCanvasContext","usePlasmicCanvasComponentInfo","useEffect","registerComponent"],"mappings":"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"}
@@ -65,7 +65,7 @@ function useAutoOpen({
65
65
  } else {
66
66
  close == null ? void 0 : close();
67
67
  }
68
- }, [isSelected, inPlasmicCanvas]);
68
+ }, [isSelected, inPlasmicCanvas, open, close]);
69
69
  }
70
70
  function registerComponentHelper(loader, component, meta, overrides) {
71
71
  if (overrides) {
@@ -116,4 +116,4 @@ function filterHoverProps(props) {
116
116
  }
117
117
 
118
118
  export { useIsOpen as a, makeChildComponentName as b, extractPlasmicDataProps as e, filterHoverProps as f, isDefined as i, makeComponentName as m, registerComponentHelper as r, useAutoOpen as u };
119
- //# sourceMappingURL=utils-fd88ad47.esm.js.map
119
+ //# sourceMappingURL=utils-d0ca1a25.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-d0ca1a25.esm.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type ControlContextData = {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n};\n\nexport type BaseControlContextData = {\n parent?: ControlContextData;\n};\n\nexport type BaseControlContextDataForLists = {\n itemIds: string[];\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n }, [isSelected, inPlasmicCanvas, open, close]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-fc1ddd7c.cjs.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type ControlContextData = {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n};\n\nexport type BaseControlContextData = {\n parent?: ControlContextData;\n};\n\nexport type BaseControlContextDataForLists = {\n itemIds: string[];\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n // Not putting open and close in the useEffect dependencies array, because it causes a re-render loop.\n }, [isSelected, inPlasmicCanvas]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":["usePlasmicCanvasContext","usePlasmicCanvasComponentInfo","useEffect","registerComponent"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-fd88ad47.esm.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type ControlContextData = {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n};\n\nexport type BaseControlContextData = {\n parent?: ControlContextData;\n};\n\nexport type BaseControlContextDataForLists = {\n itemIds: string[];\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n // Not putting open and close in the useEffect dependencies array, because it causes a re-render loop.\n }, [isSelected, inPlasmicCanvas]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":[],"mappings":"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"}