@plasmicpkgs/react-aria 0.0.169 → 0.0.171

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 (118) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/react-aria.esm.js +27 -2
  3. package/dist/react-aria.esm.js.map +1 -1
  4. package/dist/react-aria.js +28 -4
  5. package/dist/react-aria.js.map +1 -1
  6. package/dist/registerCheckbox.d.ts +2 -2
  7. package/dist/registerDescription.d.ts +1 -1
  8. package/dist/registerHeading.d.ts +1 -1
  9. package/dist/registerListBoxItem.d.ts +1 -1
  10. package/dist/registerOverlayArrow.d.ts +1 -1
  11. package/dist/registerRadio.d.ts +2 -2
  12. package/dist/registerSection.d.ts +1 -1
  13. package/dist/registerSliderOutput.d.ts +1 -1
  14. package/dist/registerSliderThumb.d.ts +1 -1
  15. package/dist/registerSliderTrack.d.ts +1 -1
  16. package/dist/registerSwitch.d.ts +1 -1
  17. package/dist/registerText.d.ts +1 -1
  18. package/dist/utils.d.ts +8 -1
  19. package/dist/variant-utils.d.ts +1 -1
  20. package/package.json +2 -3
  21. package/skinny/{OptionsItemIdManager-0ce90944.esm.js → OptionsItemIdManager-85247338.esm.js} +2 -2
  22. package/skinny/{OptionsItemIdManager-0ce90944.esm.js.map → OptionsItemIdManager-85247338.esm.js.map} +1 -1
  23. package/skinny/{OptionsItemIdManager-cb3a2c53.cjs.js → OptionsItemIdManager-9f1502c1.cjs.js} +2 -2
  24. package/skinny/{OptionsItemIdManager-cb3a2c53.cjs.js.map → OptionsItemIdManager-9f1502c1.cjs.js.map} +1 -1
  25. package/skinny/{common-7f948fa5.cjs.js → common-44638169.cjs.js} +27 -1
  26. package/skinny/common-44638169.cjs.js.map +1 -0
  27. package/skinny/{common-81f08e86.esm.js → common-9574ac48.esm.js} +27 -2
  28. package/skinny/common-9574ac48.esm.js.map +1 -0
  29. package/skinny/registerButton.cjs.js +2 -2
  30. package/skinny/registerButton.esm.js +2 -2
  31. package/skinny/registerCheckbox.cjs.js +3 -3
  32. package/skinny/registerCheckbox.d.ts +2 -2
  33. package/skinny/registerCheckbox.esm.js +3 -3
  34. package/skinny/registerCheckboxGroup.cjs.js +3 -3
  35. package/skinny/registerCheckboxGroup.esm.js +3 -3
  36. package/skinny/registerComboBox.cjs.js +4 -4
  37. package/skinny/registerComboBox.esm.js +4 -4
  38. package/skinny/registerDescription.cjs.js +1 -1
  39. package/skinny/registerDescription.d.ts +1 -1
  40. package/skinny/registerDescription.esm.js +1 -1
  41. package/skinny/registerDialog.cjs.js +1 -1
  42. package/skinny/registerDialog.esm.js +1 -1
  43. package/skinny/registerDialogTrigger.cjs.js +2 -2
  44. package/skinny/registerDialogTrigger.esm.js +2 -2
  45. package/skinny/registerFieldError.cjs.js +1 -1
  46. package/skinny/registerFieldError.esm.js +1 -1
  47. package/skinny/registerForm.cjs.js +1 -1
  48. package/skinny/registerForm.esm.js +1 -1
  49. package/skinny/registerHeading.cjs.js +1 -1
  50. package/skinny/registerHeading.d.ts +1 -1
  51. package/skinny/registerHeading.esm.js +1 -1
  52. package/skinny/registerInput.cjs.js +2 -2
  53. package/skinny/registerInput.esm.js +2 -2
  54. package/skinny/registerLabel.cjs.js +1 -1
  55. package/skinny/registerLabel.esm.js +1 -1
  56. package/skinny/{registerListBox-28474381.cjs.js → registerListBox-6812adfa.cjs.js} +4 -4
  57. package/skinny/{registerListBox-28474381.cjs.js.map → registerListBox-6812adfa.cjs.js.map} +1 -1
  58. package/skinny/{registerListBox-7197abae.esm.js → registerListBox-72a48933.esm.js} +4 -4
  59. package/skinny/{registerListBox-7197abae.esm.js.map → registerListBox-72a48933.esm.js.map} +1 -1
  60. package/skinny/registerListBox.cjs.js +4 -4
  61. package/skinny/registerListBox.esm.js +4 -4
  62. package/skinny/registerListBoxItem.cjs.js +3 -3
  63. package/skinny/registerListBoxItem.d.ts +1 -1
  64. package/skinny/registerListBoxItem.esm.js +3 -3
  65. package/skinny/registerModal.cjs.js +1 -1
  66. package/skinny/registerModal.esm.js +1 -1
  67. package/skinny/registerOverlayArrow.cjs.js +2 -2
  68. package/skinny/registerOverlayArrow.d.ts +1 -1
  69. package/skinny/registerOverlayArrow.esm.js +2 -2
  70. package/skinny/registerPopover.cjs.js +1 -1
  71. package/skinny/registerPopover.esm.js +1 -1
  72. package/skinny/registerRadio.cjs.js +3 -3
  73. package/skinny/registerRadio.d.ts +2 -2
  74. package/skinny/registerRadio.esm.js +3 -3
  75. package/skinny/registerRadioGroup.cjs.js +3 -3
  76. package/skinny/registerRadioGroup.esm.js +3 -3
  77. package/skinny/registerSection.cjs.js +4 -4
  78. package/skinny/registerSection.d.ts +1 -1
  79. package/skinny/registerSection.esm.js +4 -4
  80. package/skinny/registerSelect.cjs.js +4 -4
  81. package/skinny/registerSelect.esm.js +4 -4
  82. package/skinny/registerSlider.cjs.js +2 -3
  83. package/skinny/registerSlider.cjs.js.map +1 -1
  84. package/skinny/registerSlider.esm.js +2 -3
  85. package/skinny/registerSlider.esm.js.map +1 -1
  86. package/skinny/registerSliderOutput.cjs.js +2 -2
  87. package/skinny/registerSliderOutput.d.ts +1 -1
  88. package/skinny/registerSliderOutput.esm.js +2 -2
  89. package/skinny/registerSliderThumb.cjs.js +2 -2
  90. package/skinny/registerSliderThumb.d.ts +1 -1
  91. package/skinny/registerSliderThumb.esm.js +2 -2
  92. package/skinny/registerSliderTrack.cjs.js +3 -5
  93. package/skinny/registerSliderTrack.cjs.js.map +1 -1
  94. package/skinny/registerSliderTrack.d.ts +1 -1
  95. package/skinny/registerSliderTrack.esm.js +2 -3
  96. package/skinny/registerSliderTrack.esm.js.map +1 -1
  97. package/skinny/registerSwitch.cjs.js +2 -2
  98. package/skinny/registerSwitch.d.ts +1 -1
  99. package/skinny/registerSwitch.esm.js +2 -2
  100. package/skinny/registerText.cjs.js +1 -1
  101. package/skinny/registerText.d.ts +1 -1
  102. package/skinny/registerText.esm.js +1 -1
  103. package/skinny/registerTextArea.cjs.js +2 -2
  104. package/skinny/registerTextArea.esm.js +2 -2
  105. package/skinny/registerTextField.cjs.js +2 -2
  106. package/skinny/registerTextField.esm.js +2 -2
  107. package/skinny/registerTooltip.cjs.js +1 -1
  108. package/skinny/registerTooltip.esm.js +1 -1
  109. package/skinny/utils.d.ts +8 -1
  110. package/skinny/{variant-utils-1c84aebb.cjs.js → variant-utils-73632a67.cjs.js} +3 -2
  111. package/skinny/variant-utils-73632a67.cjs.js.map +1 -0
  112. package/skinny/{variant-utils-5f356d53.esm.js → variant-utils-f824a05a.esm.js} +3 -2
  113. package/skinny/variant-utils-f824a05a.esm.js.map +1 -0
  114. package/skinny/variant-utils.d.ts +1 -1
  115. package/skinny/common-7f948fa5.cjs.js.map +0 -1
  116. package/skinny/common-81f08e86.esm.js.map +0 -1
  117. package/skinny/variant-utils-1c84aebb.cjs.js.map +0 -1
  118. package/skinny/variant-utils-5f356d53.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"registerSliderTrack.cjs.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { type CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport flattenChildren from \"react-keyed-flatten-children\";\nimport { COMMON_STYLES, createIdProp } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport {\n VariantUpdater,\n WithVariants,\n pickAriaComponentVariants,\n} from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants } = pickAriaComponentVariants(SLIDER_TRACK_VARIANTS);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n const value = context?.value ?? context?.defaultValue;\n const thumbsLength = isMultiValueGuard(value) ? value.length : 1;\n\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(value)\n ? value\n : [value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n <VariantUpdater\n changes={{\n hovered: isHovered,\n }}\n updateVariant={plasmicUpdateVariant}\n />\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n id: createIdProp(\"Slider Track\"),\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicSliderContext","useMemo","flattenChildren","isDefined","SliderTrack","VariantUpdater","Slider","COMMON_STYLES","makeComponentName","registerComponentHelper","createIdProp"],"mappings":"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"}
1
+ {"version":3,"file":"registerSliderTrack.cjs.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { type CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport { COMMON_STYLES, createIdProp } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n flattenChildren,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport {\n VariantUpdater,\n WithVariants,\n pickAriaComponentVariants,\n} from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants } = pickAriaComponentVariants(SLIDER_TRACK_VARIANTS);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n const value = context?.value ?? context?.defaultValue;\n const thumbsLength = isMultiValueGuard(value) ? value.length : 1;\n\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(value)\n ? value\n : [value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n <VariantUpdater\n changes={{\n hovered: isHovered,\n }}\n updateVariant={plasmicUpdateVariant}\n />\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n id: createIdProp(\"Slider Track\"),\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicSliderContext","useMemo","flattenChildren","isDefined","SliderTrack","VariantUpdater","Slider","COMMON_STYLES","makeComponentName","registerComponentHelper","createIdProp"],"mappings":"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"}
@@ -11,5 +11,5 @@ export interface BaseSliderTrackProps extends React.ComponentProps<typeof Slider
11
11
  }
12
12
  export declare function BaseSliderTrack(props: BaseSliderTrackProps): React.JSX.Element;
13
13
  export declare const SLIDER_TRACK_COMPONENT_NAME: string;
14
- export declare function registerSliderTrack(sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>, loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>): import("@plasmicapp/host").CodeComponentMeta<BaseSliderTrackProps>;
14
+ export declare function registerSliderTrack(sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>, loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>): CodeComponentMeta<BaseSliderTrackProps>;
15
15
  export {};
@@ -1,9 +1,8 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { SliderTrack, Slider } from 'react-aria-components';
3
- import flattenChildren from 'react-keyed-flatten-children';
4
- import { m as makeComponentName, r as registerComponentHelper, c as createIdProp, p as isDefined, C as COMMON_STYLES } from './common-81f08e86.esm.js';
3
+ import { p as flattenChildren, m as makeComponentName, r as registerComponentHelper, c as createIdProp, q as isDefined, C as COMMON_STYLES } from './common-9574ac48.esm.js';
5
4
  import { f as PlasmicSliderContext } from './contexts-5cb81c2f.esm.js';
6
- import { p as pickAriaComponentVariants, V as VariantUpdater } from './variant-utils-5f356d53.esm.js';
5
+ import { p as pickAriaComponentVariants, V as VariantUpdater } from './variant-utils-f824a05a.esm.js';
7
6
  import '@plasmicapp/host';
8
7
  import '@plasmicapp/host/registerComponent';
9
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"registerSliderTrack.esm.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { type CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport flattenChildren from \"react-keyed-flatten-children\";\nimport { COMMON_STYLES, createIdProp } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport {\n VariantUpdater,\n WithVariants,\n pickAriaComponentVariants,\n} from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants } = pickAriaComponentVariants(SLIDER_TRACK_VARIANTS);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n const value = context?.value ?? context?.defaultValue;\n const thumbsLength = isMultiValueGuard(value) ? value.length : 1;\n\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(value)\n ? value\n : [value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n <VariantUpdater\n changes={{\n hovered: isHovered,\n }}\n updateVariant={plasmicUpdateVariant}\n />\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n id: createIdProp(\"Slider Track\"),\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registerSliderTrack.esm.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { type CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport { COMMON_STYLES, createIdProp } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n flattenChildren,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport {\n VariantUpdater,\n WithVariants,\n pickAriaComponentVariants,\n} from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants } = pickAriaComponentVariants(SLIDER_TRACK_VARIANTS);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n const value = context?.value ?? context?.defaultValue;\n const thumbsLength = isMultiValueGuard(value) ? value.length : 1;\n\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(value)\n ? value\n : [value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n <VariantUpdater\n changes={{\n hovered: isHovered,\n }}\n updateVariant={plasmicUpdateVariant}\n />\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n id: createIdProp(\"Slider Track\"),\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
@@ -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-7f948fa5.cjs.js');
5
+ var common = require('./common-44638169.cjs.js');
6
6
  var registerDescription = require('./registerDescription.cjs.js');
7
7
  var registerLabel = require('./registerLabel.cjs.js');
8
- var variantUtils = require('./variant-utils-1c84aebb.cjs.js');
8
+ var variantUtils = require('./variant-utils-73632a67.cjs.js');
9
9
  require('@plasmicapp/host');
10
10
  require('@plasmicapp/host/registerComponent');
11
11
  require('./registerText.cjs.js');
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import type { SwitchProps } from "react-aria-components";
3
3
  import { CodeComponentMetaOverrides, Registerable } from "./utils";
4
4
  import { WithVariants } from "./variant-utils";
5
- declare const SWITCH_VARIANTS: ("disabled" | "readonly" | "hovered" | "pressed" | "focused" | "focusVisible" | "selected")[];
5
+ declare const SWITCH_VARIANTS: ("disabled" | "hovered" | "pressed" | "focused" | "focusVisible" | "selected" | "readonly")[];
6
6
  interface BaseSwitchProps extends SwitchProps, WithVariants<typeof SWITCH_VARIANTS> {
7
7
  children: React.ReactNode;
8
8
  }
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { Switch } from 'react-aria-components';
3
- import { r as registerComponentHelper, C as COMMON_STYLES, m as makeComponentName, c as createIdProp, a as createNameProp, b as createDisabledProp, d as createReadOnlyProp, g as createAutoFocusProp, f as createAriaLabelProp } from './common-81f08e86.esm.js';
3
+ import { r as registerComponentHelper, C as COMMON_STYLES, m as makeComponentName, c as createIdProp, a as createNameProp, b as createDisabledProp, d as createReadOnlyProp, g as createAutoFocusProp, f as createAriaLabelProp } from './common-9574ac48.esm.js';
4
4
  import { DESCRIPTION_COMPONENT_NAME } from './registerDescription.esm.js';
5
5
  import { LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
6
- import { p as pickAriaComponentVariants, V as VariantUpdater } from './variant-utils-5f356d53.esm.js';
6
+ import { p as pickAriaComponentVariants, V as VariantUpdater } from './variant-utils-f824a05a.esm.js';
7
7
  import '@plasmicapp/host';
8
8
  import '@plasmicapp/host/registerComponent';
9
9
  import './registerText.esm.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var reactAriaComponents = require('react-aria-components');
5
- var common = require('./common-7f948fa5.cjs.js');
5
+ var common = require('./common-44638169.cjs.js');
6
6
  require('@plasmicapp/host');
7
7
  require('@plasmicapp/host/registerComponent');
8
8
 
@@ -5,4 +5,4 @@ export interface BaseTextProps extends TextProps {
5
5
  }
6
6
  export declare function BaseText({ children, slot, className, ...rest }: BaseTextProps): React.JSX.Element;
7
7
  export declare const TEXT_COMPONENT_NAME: string;
8
- export declare function registerText(loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseText>): import("@plasmicapp/host").CodeComponentMeta<BaseTextProps>;
8
+ export declare function registerText(loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseText>): import("@plasmicapp/host/registerComponent").CodeComponentMeta<BaseTextProps>;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Text } from 'react-aria-components';
3
- import { l as extractPlasmicDataProps, m as makeComponentName, r as registerComponentHelper, C as COMMON_STYLES, c as createIdProp } from './common-81f08e86.esm.js';
3
+ import { l as extractPlasmicDataProps, m as makeComponentName, r as registerComponentHelper, C as COMMON_STYLES, c as createIdProp } from './common-9574ac48.esm.js';
4
4
  import '@plasmicapp/host';
5
5
  import '@plasmicapp/host/registerComponent';
6
6
 
@@ -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-7f948fa5.cjs.js');
6
+ var common = require('./common-44638169.cjs.js');
7
7
  var contexts = require('./contexts-6d0cb2b1.cjs.js');
8
- var variantUtils = require('./variant-utils-1c84aebb.cjs.js');
8
+ var variantUtils = require('./variant-utils-73632a67.cjs.js');
9
9
  require('@plasmicapp/host');
10
10
  require('@plasmicapp/host/registerComponent');
11
11
 
@@ -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 { q as filterHoverProps, p as isDefined, C as COMMON_STYLES, r as registerComponentHelper, m as makeComponentName, s as commonInputEventHandlerProps, c as createIdProp, a as createNameProp, t as createPlaceholderProp, v as createInitialValueProp, g as createAutoFocusProp, b as createDisabledProp, d as createReadOnlyProp, e as createRequiredProp, w as createMaxLengthProp, x as createMinLengthProp, y as createInputModeProp, f as createAriaLabelProp } from './common-81f08e86.esm.js';
4
+ import { s as filterHoverProps, q as isDefined, C as COMMON_STYLES, r as registerComponentHelper, m as makeComponentName, t as commonInputEventHandlerProps, c as createIdProp, a as createNameProp, v as createPlaceholderProp, w as createInitialValueProp, g as createAutoFocusProp, b as createDisabledProp, d as createReadOnlyProp, e as createRequiredProp, x as createMaxLengthProp, y as createMinLengthProp, z as createInputModeProp, f as createAriaLabelProp } from './common-9574ac48.esm.js';
5
5
  import { g as PlasmicTextFieldContext } from './contexts-5cb81c2f.esm.js';
6
- import { p as pickAriaComponentVariants } from './variant-utils-5f356d53.esm.js';
6
+ import { p as pickAriaComponentVariants } from './variant-utils-f824a05a.esm.js';
7
7
  import '@plasmicapp/host';
8
8
  import '@plasmicapp/host/registerComponent';
9
9
 
@@ -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-7f948fa5.cjs.js');
5
+ var common = require('./common-44638169.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 variantUtils = require('./variant-utils-1c84aebb.cjs.js');
10
+ var variantUtils = require('./variant-utils-73632a67.cjs.js');
11
11
  require('@plasmicapp/host');
12
12
  require('@plasmicapp/host/registerComponent');
13
13
  require('./registerText.cjs.js');
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
2
  import { TextField } from 'react-aria-components';
3
- import { z as resolveAutoComplete, m as makeComponentName, r as registerComponentHelper, C as COMMON_STYLES, s as commonInputEventHandlerProps, c as createIdProp, a as createNameProp, v as createInitialValueProp, A as createInputTypeProp, g as createAutoFocusProp, b as createDisabledProp, d as createReadOnlyProp, e as createRequiredProp, w as createMaxLengthProp, x as createMinLengthProp, y as createInputModeProp, B as createAutoCompleteProp, D as createPatternProp, E as createValidationBehaviorProp, f as createAriaLabelProp, F as createOnFocusChangeProp } from './common-81f08e86.esm.js';
3
+ import { A as resolveAutoComplete, m as makeComponentName, r as registerComponentHelper, C as COMMON_STYLES, t as commonInputEventHandlerProps, c as createIdProp, a as createNameProp, w as createInitialValueProp, B as createInputTypeProp, g as createAutoFocusProp, b as createDisabledProp, d as createReadOnlyProp, e as createRequiredProp, x as createMaxLengthProp, y as createMinLengthProp, z as createInputModeProp, D as createAutoCompleteProp, E as createPatternProp, F as createValidationBehaviorProp, f as createAriaLabelProp, G as createOnFocusChangeProp } from './common-9574ac48.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 { p as pickAriaComponentVariants, V as VariantUpdater } from './variant-utils-5f356d53.esm.js';
8
+ import { p as pickAriaComponentVariants, V as VariantUpdater } from './variant-utils-f824a05a.esm.js';
9
9
  import '@plasmicapp/host';
10
10
  import '@plasmicapp/host/registerComponent';
11
11
  import './registerText.esm.js';
@@ -4,7 +4,7 @@ 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-7f948fa5.cjs.js');
7
+ var common = require('./common-44638169.cjs.js');
8
8
  require('@plasmicapp/host');
9
9
  require('@plasmicapp/host/registerComponent');
10
10
 
@@ -2,7 +2,7 @@ import React, { useContext, useState, useCallback, useRef } from 'react';
2
2
  import { useHover, useFocusWithin, mergeProps, useId } from 'react-aria';
3
3
  import { TooltipTriggerStateContext, Provider, Tooltip } from 'react-aria-components';
4
4
  import { useTooltipTriggerState } from 'react-stately';
5
- import { C as COMMON_STYLES, j as useIsOpen, r as registerComponentHelper, n as getCommonOverlayProps, c as createIdProp } from './common-81f08e86.esm.js';
5
+ import { C as COMMON_STYLES, j as useIsOpen, r as registerComponentHelper, n as getCommonOverlayProps, c as createIdProp } from './common-9574ac48.esm.js';
6
6
  import '@plasmicapp/host';
7
7
  import '@plasmicapp/host/registerComponent';
8
8
 
package/skinny/utils.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type CodeComponentMeta } from "@plasmicapp/host";
1
+ import type { CodeComponentMeta } from "@plasmicapp/host/registerComponent";
2
2
  import registerComponent from "@plasmicapp/host/registerComponent";
3
3
  import React from "react";
4
4
  import { InputProps, TextAreaProps } from "react-aria-components";
@@ -67,3 +67,10 @@ export declare function extractPlasmicDataProps(props: Record<string, any>): {
67
67
  export declare function withoutNils<T>(array: (T | undefined | null)[]): T[];
68
68
  export declare function isDefined<T>(thing: T | undefined | null): thing is T;
69
69
  export declare function filterHoverProps<T extends TextAreaProps | InputProps>(props: T): Omit<T, "onHoverStart" | "onHoverChange" | "onHoverEnd">;
70
+ /**
71
+ * Flattens React children, unwrapping fragments and assigning stable keys.
72
+ * Inlined from react-keyed-flatten-children (9kB) to avoid its react-is peer dependency (13kB).
73
+ * Also, with plasmicpkgs, its always best to avoid pulling in unnecessary dependencies to keep bundle sizes down.
74
+ * https://github.com/grrowl/react-keyed-flatten-children/blob/master/index.ts
75
+ */
76
+ export declare function flattenChildren(children: React.ReactNode, depth?: number, keys?: (string | number)[]): React.ReactNode[];
@@ -67,9 +67,10 @@ const ARIA_COMPONENTS_VARIANTS = {
67
67
  }
68
68
  };
69
69
  function VariantUpdater({
70
- changes,
70
+ changes: rawChanges,
71
71
  updateVariant
72
72
  }) {
73
+ const changes = React__default.default.useMemo(() => rawChanges, [JSON.stringify(rawChanges)]);
73
74
  React__default.default.useEffect(() => {
74
75
  if (updateVariant) {
75
76
  updateVariant(changes);
@@ -87,4 +88,4 @@ function pickAriaComponentVariants(keys) {
87
88
 
88
89
  exports.VariantUpdater = VariantUpdater;
89
90
  exports.pickAriaComponentVariants = pickAriaComponentVariants;
90
- //# sourceMappingURL=variant-utils-1c84aebb.cjs.js.map
91
+ //# sourceMappingURL=variant-utils-73632a67.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-utils-73632a67.cjs.js","sources":["../src/variant-utils.tsx"],"sourcesContent":["import { type CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport React from \"react\";\n\nconst ARIA_COMPONENTS_VARIANTS = {\n hovered: {\n cssSelector: \"[data-hovered]\",\n displayName: \"Hovered\",\n },\n pressed: {\n cssSelector: \"[data-pressed]\",\n displayName: \"Pressed\",\n },\n focused: {\n cssSelector: \"[data-focused]\",\n displayName: \"Focused\",\n },\n focusVisible: {\n cssSelector: \"[data-focus-visible]\",\n displayName: \"Focus Visible\",\n },\n dragging: {\n cssSelector: \"[data-dragging]\",\n displayName: \"Dragging\",\n },\n selected: {\n cssSelector: \"[data-selected]\",\n displayName: \"Selected\",\n },\n readonly: {\n cssSelector: \"[data-readonly]\",\n displayName: \"Read Only\",\n },\n disabled: {\n cssSelector: \"[data-disabled]\",\n displayName: \"Disabled\",\n },\n indeterminate: {\n cssSelector: \"[data-indeterminate]\",\n displayName: \"Indeterminate\",\n },\n /*\n NOTE: Placement should be managed as variants, not just props.\n When `shouldFlip` is true, the placement prop may not represent the final position\n (e.g., if placement is set to \"bottom\" but lacks space, the popover/tooltip may flip to \"top\").\n However, data-selectors will consistently indicate the actual placement of the popover/tooltip.\n */\n placementLeft: {\n cssSelector: \"[data-placement=left]\",\n displayName: \"Placement (Left)\",\n },\n placementRight: {\n cssSelector: \"[data-placement=right]\",\n displayName: \"Placement (Right)\",\n },\n placementTop: {\n cssSelector: \"[data-placement=top]\",\n displayName: \"Placement (Top)\",\n },\n placementBottom: {\n cssSelector: \"[data-placement=bottom]\",\n displayName: \"Placement (Bottom)\",\n },\n};\n\ntype AriaVariant = keyof typeof ARIA_COMPONENTS_VARIANTS;\n\ntype CodeComponentVariantsMeta = NonNullable<\n CodeComponentMeta<unknown>[\"variants\"]\n>;\n\ntype VariantMeta = CodeComponentVariantsMeta[string];\n\ntype ArrayElement<T> = T extends (infer U)[] ? U : never;\n\nexport type UpdateVariant<T extends AriaVariant[]> =\n | ((changes: Partial<Record<ArrayElement<T>, boolean>>) => void)\n | undefined;\n\nexport interface WithVariants<T extends AriaVariant[]> {\n // Optional callback to update the CC variant state\n // as it's only provided if the component is the root of a Studio component\n plasmicUpdateVariant?: UpdateVariant<T>;\n}\n\nexport function VariantUpdater<T extends AriaVariant[]>({\n changes: rawChanges,\n updateVariant,\n}: {\n changes: Partial<Record<ArrayElement<T>, boolean>>;\n updateVariant?: UpdateVariant<T>;\n}) {\n // Memoize by value: rawChanges is a new object every render (inline literal\n // in a render prop), which would otherwise cause an infinite update loop.\n const changes = React.useMemo(() => rawChanges, [JSON.stringify(rawChanges)]);\n\n React.useEffect(() => {\n if (updateVariant) {\n updateVariant(changes);\n }\n }, [changes, updateVariant]);\n return null;\n}\n\nexport function pickAriaComponentVariants<T extends AriaVariant[]>(\n keys: T\n): {\n variants: Record<ArrayElement<T>, VariantMeta>;\n} {\n return {\n variants: Object.fromEntries(\n keys.map((key) => [key, ARIA_COMPONENTS_VARIANTS[key]])\n ) as Record<ArrayElement<T>, VariantMeta>,\n };\n}\n"],"names":["React"],"mappings":";;;;;;;;AAGA,MAAM,wBAA2B,GAAA;AAAA,EAC/B,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,eAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,WAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,aAAe,EAAA;AAAA,IACb,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,eAAA;AAAA,GACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAe,EAAA;AAAA,IACb,WAAa,EAAA,uBAAA;AAAA,IACb,WAAa,EAAA,kBAAA;AAAA,GACf;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,WAAa,EAAA,wBAAA;AAAA,IACb,WAAa,EAAA,mBAAA;AAAA,GACf;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,WAAa,EAAA,yBAAA;AAAA,IACb,WAAa,EAAA,oBAAA;AAAA,GACf;AACF,CAAA,CAAA;AAsBO,SAAS,cAAwC,CAAA;AAAA,EACtD,OAAS,EAAA,UAAA;AAAA,EACT,aAAA;AACF,CAGG,EAAA;AAGD,EAAM,MAAA,OAAA,GAAUA,sBAAM,CAAA,OAAA,CAAQ,MAAM,UAAA,EAAY,CAAC,IAAK,CAAA,SAAA,CAAU,UAAU,CAAC,CAAC,CAAA,CAAA;AAE5E,EAAAA,sBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,KACvB;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,aAAa,CAAC,CAAA,CAAA;AAC3B,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEO,SAAS,0BACd,IAGA,EAAA;AACA,EAAO,OAAA;AAAA,IACL,UAAU,MAAO,CAAA,WAAA;AAAA,MACf,IAAA,CAAK,IAAI,CAAC,GAAA,KAAQ,CAAC,GAAK,EAAA,wBAAA,CAAyB,GAAG,CAAC,CAAC,CAAA;AAAA,KACxD;AAAA,GACF,CAAA;AACF;;;;;"}
@@ -61,9 +61,10 @@ const ARIA_COMPONENTS_VARIANTS = {
61
61
  }
62
62
  };
63
63
  function VariantUpdater({
64
- changes,
64
+ changes: rawChanges,
65
65
  updateVariant
66
66
  }) {
67
+ const changes = React.useMemo(() => rawChanges, [JSON.stringify(rawChanges)]);
67
68
  React.useEffect(() => {
68
69
  if (updateVariant) {
69
70
  updateVariant(changes);
@@ -80,4 +81,4 @@ function pickAriaComponentVariants(keys) {
80
81
  }
81
82
 
82
83
  export { VariantUpdater as V, pickAriaComponentVariants as p };
83
- //# sourceMappingURL=variant-utils-5f356d53.esm.js.map
84
+ //# sourceMappingURL=variant-utils-f824a05a.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-utils-f824a05a.esm.js","sources":["../src/variant-utils.tsx"],"sourcesContent":["import { type CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport React from \"react\";\n\nconst ARIA_COMPONENTS_VARIANTS = {\n hovered: {\n cssSelector: \"[data-hovered]\",\n displayName: \"Hovered\",\n },\n pressed: {\n cssSelector: \"[data-pressed]\",\n displayName: \"Pressed\",\n },\n focused: {\n cssSelector: \"[data-focused]\",\n displayName: \"Focused\",\n },\n focusVisible: {\n cssSelector: \"[data-focus-visible]\",\n displayName: \"Focus Visible\",\n },\n dragging: {\n cssSelector: \"[data-dragging]\",\n displayName: \"Dragging\",\n },\n selected: {\n cssSelector: \"[data-selected]\",\n displayName: \"Selected\",\n },\n readonly: {\n cssSelector: \"[data-readonly]\",\n displayName: \"Read Only\",\n },\n disabled: {\n cssSelector: \"[data-disabled]\",\n displayName: \"Disabled\",\n },\n indeterminate: {\n cssSelector: \"[data-indeterminate]\",\n displayName: \"Indeterminate\",\n },\n /*\n NOTE: Placement should be managed as variants, not just props.\n When `shouldFlip` is true, the placement prop may not represent the final position\n (e.g., if placement is set to \"bottom\" but lacks space, the popover/tooltip may flip to \"top\").\n However, data-selectors will consistently indicate the actual placement of the popover/tooltip.\n */\n placementLeft: {\n cssSelector: \"[data-placement=left]\",\n displayName: \"Placement (Left)\",\n },\n placementRight: {\n cssSelector: \"[data-placement=right]\",\n displayName: \"Placement (Right)\",\n },\n placementTop: {\n cssSelector: \"[data-placement=top]\",\n displayName: \"Placement (Top)\",\n },\n placementBottom: {\n cssSelector: \"[data-placement=bottom]\",\n displayName: \"Placement (Bottom)\",\n },\n};\n\ntype AriaVariant = keyof typeof ARIA_COMPONENTS_VARIANTS;\n\ntype CodeComponentVariantsMeta = NonNullable<\n CodeComponentMeta<unknown>[\"variants\"]\n>;\n\ntype VariantMeta = CodeComponentVariantsMeta[string];\n\ntype ArrayElement<T> = T extends (infer U)[] ? U : never;\n\nexport type UpdateVariant<T extends AriaVariant[]> =\n | ((changes: Partial<Record<ArrayElement<T>, boolean>>) => void)\n | undefined;\n\nexport interface WithVariants<T extends AriaVariant[]> {\n // Optional callback to update the CC variant state\n // as it's only provided if the component is the root of a Studio component\n plasmicUpdateVariant?: UpdateVariant<T>;\n}\n\nexport function VariantUpdater<T extends AriaVariant[]>({\n changes: rawChanges,\n updateVariant,\n}: {\n changes: Partial<Record<ArrayElement<T>, boolean>>;\n updateVariant?: UpdateVariant<T>;\n}) {\n // Memoize by value: rawChanges is a new object every render (inline literal\n // in a render prop), which would otherwise cause an infinite update loop.\n const changes = React.useMemo(() => rawChanges, [JSON.stringify(rawChanges)]);\n\n React.useEffect(() => {\n if (updateVariant) {\n updateVariant(changes);\n }\n }, [changes, updateVariant]);\n return null;\n}\n\nexport function pickAriaComponentVariants<T extends AriaVariant[]>(\n keys: T\n): {\n variants: Record<ArrayElement<T>, VariantMeta>;\n} {\n return {\n variants: Object.fromEntries(\n keys.map((key) => [key, ARIA_COMPONENTS_VARIANTS[key]])\n ) as Record<ArrayElement<T>, VariantMeta>,\n };\n}\n"],"names":[],"mappings":";;AAGA,MAAM,wBAA2B,GAAA;AAAA,EAC/B,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,eAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,WAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,aAAe,EAAA;AAAA,IACb,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,eAAA;AAAA,GACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAe,EAAA;AAAA,IACb,WAAa,EAAA,uBAAA;AAAA,IACb,WAAa,EAAA,kBAAA;AAAA,GACf;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,WAAa,EAAA,wBAAA;AAAA,IACb,WAAa,EAAA,mBAAA;AAAA,GACf;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,WAAa,EAAA,yBAAA;AAAA,IACb,WAAa,EAAA,oBAAA;AAAA,GACf;AACF,CAAA,CAAA;AAsBO,SAAS,cAAwC,CAAA;AAAA,EACtD,OAAS,EAAA,UAAA;AAAA,EACT,aAAA;AACF,CAGG,EAAA;AAGD,EAAM,MAAA,OAAA,GAAU,KAAM,CAAA,OAAA,CAAQ,MAAM,UAAA,EAAY,CAAC,IAAK,CAAA,SAAA,CAAU,UAAU,CAAC,CAAC,CAAA,CAAA;AAE5E,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,KACvB;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,aAAa,CAAC,CAAA,CAAA;AAC3B,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEO,SAAS,0BACd,IAGA,EAAA;AACA,EAAO,OAAA;AAAA,IACL,UAAU,MAAO,CAAA,WAAA;AAAA,MACf,IAAA,CAAK,IAAI,CAAC,GAAA,KAAQ,CAAC,GAAK,EAAA,wBAAA,CAAyB,GAAG,CAAC,CAAC,CAAA;AAAA,KACxD;AAAA,GACF,CAAA;AACF;;;;"}
@@ -61,7 +61,7 @@ export type UpdateVariant<T extends AriaVariant[]> = ((changes: Partial<Record<A
61
61
  export interface WithVariants<T extends AriaVariant[]> {
62
62
  plasmicUpdateVariant?: UpdateVariant<T>;
63
63
  }
64
- export declare function VariantUpdater<T extends AriaVariant[]>({ changes, updateVariant, }: {
64
+ export declare function VariantUpdater<T extends AriaVariant[]>({ changes: rawChanges, updateVariant, }: {
65
65
  changes: Partial<Record<ArrayElement<T>, boolean>>;
66
66
  updateVariant?: UpdateVariant<T>;
67
67
  }): null;
@@ -1 +0,0 @@
1
- {"version":3,"file":"common-7f948fa5.cjs.js","sources":["../src/utils.ts","../src/common.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 const isBrowser = typeof window !== \"undefined\";\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport type PlasmicCanvasProps = {\n plasmicNotifyAutoOpenedContent?: () => void;\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 props,\n}: {\n triggerSlotName?: string;\n isOpen?: boolean;\n props: PlasmicCanvasProps;\n}) {\n const { __plasmic_selection_prop__, plasmicNotifyAutoOpenedContent } = props;\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 if (isAutoOpenedBySelection && !isOpen) {\n plasmicNotifyAutoOpenedContent?.();\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: PlasmicCanvasProps;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n const { plasmicNotifyAutoOpenedContent } = props;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n plasmicNotifyAutoOpenedContent?.();\n } else {\n close?.();\n }\n }, [\n isSelected,\n inPlasmicCanvas,\n plasmicNotifyAutoOpenedContent,\n open,\n close,\n ]);\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","import { PlasmicElement, PropType } from \"@plasmicapp/host\";\nimport { CSSProperties } from \"react\";\nimport {\n BaseControlContextData,\n HasControlContextData,\n isDefined,\n} from \"./utils\";\n\nexport function hasParent<T>(_props: T, ctx: ConditionalContext<T>): boolean {\n return isDefined(ctx?.parent) === true;\n}\n\nexport function isParentReadOnly<T>(_props: T, ctx: ConditionalContext<T>) {\n return ctx?.parent?.isReadOnly === true;\n}\n\nexport function isParentDisabled<T>(_props: T, ctx: ConditionalContext<T>) {\n return ctx?.parent?.isDisabled === true;\n}\n\nexport function resolveAutoComplete(autoCompleteProp?: string | string[]) {\n if (typeof autoCompleteProp === \"string\") {\n return autoCompleteProp;\n }\n if (\n !autoCompleteProp ||\n !Array.isArray(autoCompleteProp) ||\n autoCompleteProp.includes(\"off\")\n ) {\n return undefined;\n }\n if (autoCompleteProp.includes(\"off\")) {\n return \"off\";\n }\n if (autoCompleteProp.includes(\"on\") && autoCompleteProp.length === 1) {\n return \"on\";\n }\n return autoCompleteProp.filter((x) => x !== \"on\").join(\" \");\n}\n\ntype ConditionalContext<T> = T extends HasControlContextData\n ? BaseControlContextData | null\n : null;\n\nexport function createIdProp<T>(componentName: string): PropType<T> {\n return {\n type: \"string\",\n description: `Sets the HTML id attribute on the root element of the ${componentName}.`,\n advanced: true,\n };\n}\n\nexport function createNameProp<T>(): PropType<T> {\n return {\n type: \"string\",\n description: \"Name for this field if it is part of a form\",\n displayName: \"Form field key\",\n hidden: hasParent,\n advanced: true,\n };\n}\n\nexport function createDisabledProp<T>(componentName: string): PropType<T> {\n return {\n displayName: \"Disabled\",\n type: \"boolean\",\n description: `Whether the ${componentName} is read-only and unfocusable`,\n defaultValueHint: false,\n hidden: isParentDisabled,\n };\n}\n\nexport function createReadOnlyProp<T>(componentName: string): PropType<T> {\n return {\n displayName: \"Read only\",\n type: \"boolean\",\n description: `Whether the value of this ${componentName} can be changed by the user. Unlike disabled, read-only does not prevent the user from interacting with the component (such as focus).`,\n defaultValueHint: false,\n advanced: true,\n hidden: isParentReadOnly,\n };\n}\n\nexport function createRequiredProp<T>(componentName: string): PropType<T> {\n return {\n displayName: \"Required\",\n type: \"boolean\",\n description: `Whether user input is required on the ${componentName} before form submission.`,\n defaultValueHint: false,\n advanced: true,\n // hidden: hasParent,\n hidden: () => true, // hiding required prop until the release of Aria Forms\n };\n}\n\nexport function createAutoFocusProp<T>(componentName: string): PropType<T> {\n return {\n type: \"boolean\",\n description: `Whether the ${componentName} should be focused when rendered`,\n defaultValueHint: false,\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createAriaLabelProp<T>(componentName: string): PropType<T> {\n return {\n type: \"string\",\n displayName: \"ARIA label\",\n description: `Assistive technology uses this if there is no visible label for this ${componentName}`,\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createChildrenProp<T>(): PropType<T> {\n return {\n type: \"slot\",\n mergeWithParent: true,\n };\n}\nexport function createInitialValueProp<T>(componentName: string): PropType<T> {\n return {\n type: \"string\",\n editOnly: true,\n displayName: \"Initial value\",\n uncontrolledProp: \"defaultValue\",\n description: `The default value of the ${componentName}`,\n hidden: hasParent,\n };\n}\n\nexport function createMaxLengthProp<T>(): PropType<T> {\n return {\n type: \"number\",\n description: \"The maximum number of characters supported by the input\",\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createMinLengthProp<T>(): PropType<T> {\n return {\n type: \"number\",\n description: \"The minimum number of characters supported by the input\",\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createPatternProp<T>(): PropType<T> {\n return {\n type: \"string\",\n description:\n \"Regex pattern that the value of the input must match to be valid\",\n helpText:\n \"For more information about writing Regular Expressions (regex), visit [Regexr](https://regexr.com/)\",\n validator: (value: string) => {\n try {\n new RegExp(value);\n return true;\n } catch (_err) {\n return \"Invalid Regex\";\n }\n },\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createInputTypeProp<T>(): PropType<T> {\n return {\n type: \"choice\",\n defaultValueHint: \"text\",\n options: [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\"],\n description:\n \"The type of data that an input field is expected to handle. It influences the input's behavior, validation, and the kind of interface provided to the user.\",\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createInputModeProp<T>(): PropType<T> {\n return {\n type: \"choice\",\n description:\n \"hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents.\",\n options: [\n \"none\",\n \"text\",\n \"tel\",\n \"url\",\n \"email\",\n \"numeric\",\n \"decimal\",\n \"search\",\n ],\n hidden: hasParent,\n };\n}\n\nexport function createAutoCompleteProp<T>(): PropType<T> {\n return {\n type: \"choice\",\n advanced: true,\n multiSelect: true,\n hidden: hasParent,\n description: \"Guidance as to the type of data expected in the field\",\n helpText:\n \"Learn more about the available options on the [MDN guide](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values)\",\n options: [\n \"on\",\n \"off\",\n \"name\",\n \"honorific-prefix\",\n \"given-name\",\n \"additional-name\",\n \"family-name\",\n \"honorific-suffix\",\n \"nickname\",\n \"email\",\n \"username\",\n \"new-password\",\n \"current-password\",\n \"one-time-code\",\n \"organization-title\",\n \"organization\",\n \"street-address\",\n \"shipping\",\n \"billing\",\n \"address-line1\",\n \"address-line2\",\n \"address-line3\",\n \"address-level4\",\n \"address-level3\",\n \"address-level2\",\n \"address-level1\",\n \"country\",\n \"country-name\",\n \"postal-code\",\n \"cc-name\",\n \"cc-given-name\",\n \"cc-additional-name\",\n \"cc-family-name\",\n \"cc-number\",\n \"cc-exp\",\n \"cc-exp-month\",\n \"cc-exp-year\",\n \"cc-csc\",\n \"cc-type\",\n \"transaction-currency\",\n \"transaction-amount\",\n \"language\",\n \"bday\",\n \"bday-day\",\n \"bday-month\",\n \"bday-year\",\n \"sex\",\n \"tel\",\n \"tel-country-code\",\n \"tel-national\",\n \"tel-area-code\",\n \"tel-local\",\n \"tel-local-suffix\",\n \"tel-local-prefix\",\n \"tel-extension\",\n \"impp\",\n \"url\",\n \"photo\",\n \"webauthn\",\n ],\n };\n}\n\nexport function createValidationBehaviorProp<T>(): PropType<T> {\n return {\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 advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnChangeProp<T>(argType: \"string\" | \"number\" | \"object\" = \"string\"): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: argType }],\n hidden: hasParent,\n };\n}\n\nexport function createOnFocusProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"focusEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnBlurProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"focusEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnFocusChangeProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"isFocused\", type: \"boolean\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnKeyDownProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"keyboardEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnKeyUpProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"keyboardEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCopyProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"clipbordEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCutProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"clipbordEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnPasteProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"clipbordEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCompositionStartProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"compositionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCompositionEndProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"compositionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCompositionUpdateProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"compositionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnSelectProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"selectionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnBeforeInputProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"inputEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnInputProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"inputEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createPlaceholderProp<T>(): PropType<T> {\n return {\n type: \"string\",\n };\n}\n\ntype Overrides = {\n defaultValueHint?: any;\n};\n\nexport function createPlacementProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"choice\",\n description: `Default placement of the ${componentName} relative to the trigger, if there is enough space`,\n options: [\n \"bottom\",\n \"bottom left\",\n \"bottom right\",\n \"bottom start\",\n \"bottom end\",\n \"top\",\n \"top left\",\n \"top right\",\n \"top start\",\n \"top end\",\n \"left\",\n \"left top\",\n \"left bottom\",\n \"start\",\n \"start top\",\n \"start bottom\",\n \"right\",\n \"right top\",\n \"right bottom\",\n \"end\",\n \"end top\",\n \"end bottom\",\n ],\n ...(overrides ?? {}),\n };\n}\n\nexport function createOffsetProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"number\",\n displayName: \"Offset\",\n description: `Additional offset applied along the main axis between the ${componentName} and its trigger`,\n advanced: true,\n ...(overrides ?? {}),\n };\n}\n\nexport function createContainerPaddingProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"number\",\n description: `The padding that should be applied between the ${componentName} and its surrounding container. This affects the positioning breakpoints that determine when it will attempt to flip.`,\n advanced: true,\n ...(overrides ?? {}),\n };\n}\n\nexport function createCrossOffsetProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"number\",\n description: `The additional offset applied along the cross axis between the ${componentName} and its anchor element.`,\n advanced: true,\n ...(overrides ?? {}),\n };\n}\n\nexport function getCommonOverlayProps<T>(\n componentName: string,\n overrides: Record<string, Overrides>\n) {\n const commonProps: Record<string, PropType<T>> = {\n placement: createPlacementProp<T>(componentName, overrides[\"placement\"]),\n offset: createOffsetProp<T>(componentName, overrides[\"offset\"]),\n containerPadding: createContainerPaddingProp<T>(\n componentName,\n overrides[\"containerPadding\"]\n ),\n crossOffset: createCrossOffsetProp<T>(\n componentName,\n overrides[\"crossOffset\"]\n ),\n };\n return commonProps;\n}\n\nexport const arrowDown: PlasmicElement = {\n type: \"hbox\",\n children: [],\n styles: {\n width: 0,\n height: 0,\n padding: 0,\n borderLeftWidth: \"5px\",\n borderRightWidth: \"5px\",\n borderTopWidth: \"5px\",\n borderLeftStyle: \"solid\",\n borderRightStyle: \"solid\",\n borderTopStyle: \"solid\",\n borderLeftColor: \"transparent\",\n borderRightColor: \"transparent\",\n borderTopColor: \"black\",\n },\n};\n// Set border-box to the root element of the aria code component to align with Plasmic's default of using border-box for all root elements.\nexport const COMMON_STYLES: CSSProperties = { boxSizing: \"border-box\" };\n\n/**\n* Minimal shared input event-handler registrations for text-entry controls.\n*\n* This returns only the event handler props that have the exact same names and\n* semantics across all three components: Input, Text Field, and Text Area.\n* Non-event props (e.g., id, name, value, maxLength/minLength, inputMode,\n* placeholder, pattern, type, autoComplete, validationBehavior, disabled/\n* isDisabled, readOnly/isReadOnly, required/isRequired, \"aria-label\") must be\n* registered explicitly at the component level to preserve the desired\n* editor-facing ordering.\n*/\nexport function commonInputEventHandlerProps<T>(): Record<string, PropType<T>> {\n return {\n // Events supported uniformly by all three\n onChange: createOnChangeProp<T>(\"string\"),\n onFocus: createOnFocusProp<T>(),\n onBlur: createOnBlurProp<T>(),\n onKeyDown: createOnKeyDownProp<T>(),\n onKeyUp: createOnKeyUpProp<T>(),\n onCopy: createOnCopyProp<T>(),\n onCut: createOnCutProp<T>(),\n onPaste: createOnPasteProp<T>(),\n onCompositionStart: createOnCompositionStartProp<T>(),\n onCompositionEnd: createOnCompositionEndProp<T>(),\n onCompositionUpdate: createOnCompositionUpdateProp<T>(),\n onSelect: createOnSelectProp<T>(),\n onBeforeInput: createOnBeforeInputProp<T>(),\n onInput: createOnInputProp<T>(),\n };\n}\n"],"names":["React","usePlasmicCanvasContext","usePlasmicCanvasComponentInfo","useEffect","__spreadValues","registerComponent"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"common-81f08e86.esm.js","sources":["../src/utils.ts","../src/common.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 const isBrowser = typeof window !== \"undefined\";\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport type PlasmicCanvasProps = {\n plasmicNotifyAutoOpenedContent?: () => void;\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 props,\n}: {\n triggerSlotName?: string;\n isOpen?: boolean;\n props: PlasmicCanvasProps;\n}) {\n const { __plasmic_selection_prop__, plasmicNotifyAutoOpenedContent } = props;\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 if (isAutoOpenedBySelection && !isOpen) {\n plasmicNotifyAutoOpenedContent?.();\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: PlasmicCanvasProps;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n const { plasmicNotifyAutoOpenedContent } = props;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n plasmicNotifyAutoOpenedContent?.();\n } else {\n close?.();\n }\n }, [\n isSelected,\n inPlasmicCanvas,\n plasmicNotifyAutoOpenedContent,\n open,\n close,\n ]);\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","import { PlasmicElement, PropType } from \"@plasmicapp/host\";\nimport { CSSProperties } from \"react\";\nimport {\n BaseControlContextData,\n HasControlContextData,\n isDefined,\n} from \"./utils\";\n\nexport function hasParent<T>(_props: T, ctx: ConditionalContext<T>): boolean {\n return isDefined(ctx?.parent) === true;\n}\n\nexport function isParentReadOnly<T>(_props: T, ctx: ConditionalContext<T>) {\n return ctx?.parent?.isReadOnly === true;\n}\n\nexport function isParentDisabled<T>(_props: T, ctx: ConditionalContext<T>) {\n return ctx?.parent?.isDisabled === true;\n}\n\nexport function resolveAutoComplete(autoCompleteProp?: string | string[]) {\n if (typeof autoCompleteProp === \"string\") {\n return autoCompleteProp;\n }\n if (\n !autoCompleteProp ||\n !Array.isArray(autoCompleteProp) ||\n autoCompleteProp.includes(\"off\")\n ) {\n return undefined;\n }\n if (autoCompleteProp.includes(\"off\")) {\n return \"off\";\n }\n if (autoCompleteProp.includes(\"on\") && autoCompleteProp.length === 1) {\n return \"on\";\n }\n return autoCompleteProp.filter((x) => x !== \"on\").join(\" \");\n}\n\ntype ConditionalContext<T> = T extends HasControlContextData\n ? BaseControlContextData | null\n : null;\n\nexport function createIdProp<T>(componentName: string): PropType<T> {\n return {\n type: \"string\",\n description: `Sets the HTML id attribute on the root element of the ${componentName}.`,\n advanced: true,\n };\n}\n\nexport function createNameProp<T>(): PropType<T> {\n return {\n type: \"string\",\n description: \"Name for this field if it is part of a form\",\n displayName: \"Form field key\",\n hidden: hasParent,\n advanced: true,\n };\n}\n\nexport function createDisabledProp<T>(componentName: string): PropType<T> {\n return {\n displayName: \"Disabled\",\n type: \"boolean\",\n description: `Whether the ${componentName} is read-only and unfocusable`,\n defaultValueHint: false,\n hidden: isParentDisabled,\n };\n}\n\nexport function createReadOnlyProp<T>(componentName: string): PropType<T> {\n return {\n displayName: \"Read only\",\n type: \"boolean\",\n description: `Whether the value of this ${componentName} can be changed by the user. Unlike disabled, read-only does not prevent the user from interacting with the component (such as focus).`,\n defaultValueHint: false,\n advanced: true,\n hidden: isParentReadOnly,\n };\n}\n\nexport function createRequiredProp<T>(componentName: string): PropType<T> {\n return {\n displayName: \"Required\",\n type: \"boolean\",\n description: `Whether user input is required on the ${componentName} before form submission.`,\n defaultValueHint: false,\n advanced: true,\n // hidden: hasParent,\n hidden: () => true, // hiding required prop until the release of Aria Forms\n };\n}\n\nexport function createAutoFocusProp<T>(componentName: string): PropType<T> {\n return {\n type: \"boolean\",\n description: `Whether the ${componentName} should be focused when rendered`,\n defaultValueHint: false,\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createAriaLabelProp<T>(componentName: string): PropType<T> {\n return {\n type: \"string\",\n displayName: \"ARIA label\",\n description: `Assistive technology uses this if there is no visible label for this ${componentName}`,\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createChildrenProp<T>(): PropType<T> {\n return {\n type: \"slot\",\n mergeWithParent: true,\n };\n}\nexport function createInitialValueProp<T>(componentName: string): PropType<T> {\n return {\n type: \"string\",\n editOnly: true,\n displayName: \"Initial value\",\n uncontrolledProp: \"defaultValue\",\n description: `The default value of the ${componentName}`,\n hidden: hasParent,\n };\n}\n\nexport function createMaxLengthProp<T>(): PropType<T> {\n return {\n type: \"number\",\n description: \"The maximum number of characters supported by the input\",\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createMinLengthProp<T>(): PropType<T> {\n return {\n type: \"number\",\n description: \"The minimum number of characters supported by the input\",\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createPatternProp<T>(): PropType<T> {\n return {\n type: \"string\",\n description:\n \"Regex pattern that the value of the input must match to be valid\",\n helpText:\n \"For more information about writing Regular Expressions (regex), visit [Regexr](https://regexr.com/)\",\n validator: (value: string) => {\n try {\n new RegExp(value);\n return true;\n } catch (_err) {\n return \"Invalid Regex\";\n }\n },\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createInputTypeProp<T>(): PropType<T> {\n return {\n type: \"choice\",\n defaultValueHint: \"text\",\n options: [\"text\", \"search\", \"url\", \"tel\", \"email\", \"password\"],\n description:\n \"The type of data that an input field is expected to handle. It influences the input's behavior, validation, and the kind of interface provided to the user.\",\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createInputModeProp<T>(): PropType<T> {\n return {\n type: \"choice\",\n description:\n \"hint to browsers as to the type of virtual keyboard configuration to use when editing this element or its contents.\",\n options: [\n \"none\",\n \"text\",\n \"tel\",\n \"url\",\n \"email\",\n \"numeric\",\n \"decimal\",\n \"search\",\n ],\n hidden: hasParent,\n };\n}\n\nexport function createAutoCompleteProp<T>(): PropType<T> {\n return {\n type: \"choice\",\n advanced: true,\n multiSelect: true,\n hidden: hasParent,\n description: \"Guidance as to the type of data expected in the field\",\n helpText:\n \"Learn more about the available options on the [MDN guide](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values)\",\n options: [\n \"on\",\n \"off\",\n \"name\",\n \"honorific-prefix\",\n \"given-name\",\n \"additional-name\",\n \"family-name\",\n \"honorific-suffix\",\n \"nickname\",\n \"email\",\n \"username\",\n \"new-password\",\n \"current-password\",\n \"one-time-code\",\n \"organization-title\",\n \"organization\",\n \"street-address\",\n \"shipping\",\n \"billing\",\n \"address-line1\",\n \"address-line2\",\n \"address-line3\",\n \"address-level4\",\n \"address-level3\",\n \"address-level2\",\n \"address-level1\",\n \"country\",\n \"country-name\",\n \"postal-code\",\n \"cc-name\",\n \"cc-given-name\",\n \"cc-additional-name\",\n \"cc-family-name\",\n \"cc-number\",\n \"cc-exp\",\n \"cc-exp-month\",\n \"cc-exp-year\",\n \"cc-csc\",\n \"cc-type\",\n \"transaction-currency\",\n \"transaction-amount\",\n \"language\",\n \"bday\",\n \"bday-day\",\n \"bday-month\",\n \"bday-year\",\n \"sex\",\n \"tel\",\n \"tel-country-code\",\n \"tel-national\",\n \"tel-area-code\",\n \"tel-local\",\n \"tel-local-suffix\",\n \"tel-local-prefix\",\n \"tel-extension\",\n \"impp\",\n \"url\",\n \"photo\",\n \"webauthn\",\n ],\n };\n}\n\nexport function createValidationBehaviorProp<T>(): PropType<T> {\n return {\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 advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnChangeProp<T>(argType: \"string\" | \"number\" | \"object\" = \"string\"): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: argType }],\n hidden: hasParent,\n };\n}\n\nexport function createOnFocusProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"focusEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnBlurProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"focusEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnFocusChangeProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"isFocused\", type: \"boolean\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnKeyDownProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"keyboardEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnKeyUpProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"keyboardEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCopyProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"clipbordEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCutProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"clipbordEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnPasteProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"clipbordEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCompositionStartProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"compositionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCompositionEndProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"compositionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnCompositionUpdateProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"compositionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnSelectProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"selectionEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnBeforeInputProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"inputEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createOnInputProp<T>(): PropType<T> {\n return {\n type: \"eventHandler\",\n argTypes: [{ name: \"inputEvent\", type: \"object\" }],\n advanced: true,\n hidden: hasParent,\n };\n}\n\nexport function createPlaceholderProp<T>(): PropType<T> {\n return {\n type: \"string\",\n };\n}\n\ntype Overrides = {\n defaultValueHint?: any;\n};\n\nexport function createPlacementProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"choice\",\n description: `Default placement of the ${componentName} relative to the trigger, if there is enough space`,\n options: [\n \"bottom\",\n \"bottom left\",\n \"bottom right\",\n \"bottom start\",\n \"bottom end\",\n \"top\",\n \"top left\",\n \"top right\",\n \"top start\",\n \"top end\",\n \"left\",\n \"left top\",\n \"left bottom\",\n \"start\",\n \"start top\",\n \"start bottom\",\n \"right\",\n \"right top\",\n \"right bottom\",\n \"end\",\n \"end top\",\n \"end bottom\",\n ],\n ...(overrides ?? {}),\n };\n}\n\nexport function createOffsetProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"number\",\n displayName: \"Offset\",\n description: `Additional offset applied along the main axis between the ${componentName} and its trigger`,\n advanced: true,\n ...(overrides ?? {}),\n };\n}\n\nexport function createContainerPaddingProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"number\",\n description: `The padding that should be applied between the ${componentName} and its surrounding container. This affects the positioning breakpoints that determine when it will attempt to flip.`,\n advanced: true,\n ...(overrides ?? {}),\n };\n}\n\nexport function createCrossOffsetProp<T>(\n componentName: string,\n overrides: Overrides\n): PropType<T> {\n return {\n type: \"number\",\n description: `The additional offset applied along the cross axis between the ${componentName} and its anchor element.`,\n advanced: true,\n ...(overrides ?? {}),\n };\n}\n\nexport function getCommonOverlayProps<T>(\n componentName: string,\n overrides: Record<string, Overrides>\n) {\n const commonProps: Record<string, PropType<T>> = {\n placement: createPlacementProp<T>(componentName, overrides[\"placement\"]),\n offset: createOffsetProp<T>(componentName, overrides[\"offset\"]),\n containerPadding: createContainerPaddingProp<T>(\n componentName,\n overrides[\"containerPadding\"]\n ),\n crossOffset: createCrossOffsetProp<T>(\n componentName,\n overrides[\"crossOffset\"]\n ),\n };\n return commonProps;\n}\n\nexport const arrowDown: PlasmicElement = {\n type: \"hbox\",\n children: [],\n styles: {\n width: 0,\n height: 0,\n padding: 0,\n borderLeftWidth: \"5px\",\n borderRightWidth: \"5px\",\n borderTopWidth: \"5px\",\n borderLeftStyle: \"solid\",\n borderRightStyle: \"solid\",\n borderTopStyle: \"solid\",\n borderLeftColor: \"transparent\",\n borderRightColor: \"transparent\",\n borderTopColor: \"black\",\n },\n};\n// Set border-box to the root element of the aria code component to align with Plasmic's default of using border-box for all root elements.\nexport const COMMON_STYLES: CSSProperties = { boxSizing: \"border-box\" };\n\n/**\n* Minimal shared input event-handler registrations for text-entry controls.\n*\n* This returns only the event handler props that have the exact same names and\n* semantics across all three components: Input, Text Field, and Text Area.\n* Non-event props (e.g., id, name, value, maxLength/minLength, inputMode,\n* placeholder, pattern, type, autoComplete, validationBehavior, disabled/\n* isDisabled, readOnly/isReadOnly, required/isRequired, \"aria-label\") must be\n* registered explicitly at the component level to preserve the desired\n* editor-facing ordering.\n*/\nexport function commonInputEventHandlerProps<T>(): Record<string, PropType<T>> {\n return {\n // Events supported uniformly by all three\n onChange: createOnChangeProp<T>(\"string\"),\n onFocus: createOnFocusProp<T>(),\n onBlur: createOnBlurProp<T>(),\n onKeyDown: createOnKeyDownProp<T>(),\n onKeyUp: createOnKeyUpProp<T>(),\n onCopy: createOnCopyProp<T>(),\n onCut: createOnCutProp<T>(),\n onPaste: createOnPasteProp<T>(),\n onCompositionStart: createOnCompositionStartProp<T>(),\n onCompositionEnd: createOnCompositionEndProp<T>(),\n onCompositionUpdate: createOnCompositionUpdateProp<T>(),\n onSelect: createOnSelectProp<T>(),\n onBeforeInput: createOnBeforeInputProp<T>(),\n onInput: createOnInputProp<T>(),\n };\n}\n"],"names":["__spreadValues"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaa,MAAA,SAAA,GAAY,OAAO,MAAW,KAAA,WAAA,CAAA;AAEpC,MAAM,yBAA4B,GAAA,SAAA,GACrC,KAAM,CAAA,eAAA,GACN,KAAM,CAAA,UAAA;AA+CH,SAAS,SAAU,CAAA;AAAA,EACxB,eAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AACF,CAIG,EAAA;AAxEH,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAyEE,EAAM,MAAA,EAAE,0BAA4B,EAAA,8BAAA,EAAmC,GAAA,KAAA,CAAA;AACvE,EAAA,MAAM,gBAAgB,uBAAwB,EAAA,CAAA;AAC9C,EAAM,MAAA,EAAE,YAAY,gBAAiB,EAAA,GAAA,CACnC,gEAAgC,EAAE,0BAAA,EAAlC,CAAA,KAAA,IAAA,GAAA,EAAA,GAAmE,EAAC,CAAA;AAGtE,EAAA,IAAI,CAAC,aAAe,EAAA;AAClB,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AAGA,EAAA,MAAM,qBACJ,GAAA,SAAA,CAAU,gBAAgB,CAAA,IAAK,gBAAqB,KAAA,eAAA,CAAA;AAEtD,EAAM,MAAA,uBAAA,GAA0B,cAAc,CAAC,qBAAA,CAAA;AAE/C,EAAI,IAAA,uBAAA,IAA2B,CAAC,MAAQ,EAAA;AACtC,IAAA,8BAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,8BAAA,EAAA,CAAA;AAAA,GACF;AAEA,EAAO,OAAA,OAAA,CAAQ,2BAA2B,MAAM,CAAA,CAAA;AAClD,CAAA;AAOO,SAAS,WAAY,CAAA;AAAA,EAC1B,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AACF,CAIG,EAAA;AA7GH,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA8GE,EAAM,MAAA,eAAA,GAAkB,CAAC,CAAC,uBAAwB,EAAA,CAAA;AAClD,EAAA,MAAM,UACJ,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,6BAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgC,KAAhC,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAwC,eAAxC,IAAsD,GAAA,EAAA,GAAA,KAAA,CAAA;AACxD,EAAM,MAAA,EAAE,gCAAmC,GAAA,KAAA,CAAA;AAE3C,EAAA,SAAA,CAAU,MAAM;AAEd,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAA,OAAA;AAAA,KACF;AACA,IAAA,IAAI,UAAY,EAAA;AACd,MAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,EAAA,CAAA;AACA,MAAA,8BAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,8BAAA,EAAA,CAAA;AAAA,KACK,MAAA;AACL,MAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,EAAA,CAAA;AAAA,KACF;AAAA,GACC,EAAA;AAAA,IACD,UAAA;AAAA,IACA,eAAA;AAAA,IACA,8BAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAEO,SAAS,uBACd,CAAA,MAAA,EACA,SACA,EAAA,IAAA,EACA,SACA,EAAA;AACA,EAAA,IAAI,SAAW,EAAA;AACb,IAAO,IAAA,GAAA,aAAA,CAAAA,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EACF,OACA,SAFE,CAAA,EAAA;AAAA,MAGL,KAAO,EAAAA,gBAAA,CAAAA,gBAAA,CAAA,EAAA,EACF,IAAK,CAAA,KAAA,CAAA,EACL,SAAU,CAAA,KAAA,CAAA;AAAA,KAEjB,CAAA,CAAA;AACA,IAAA,IAAI,UAAU,mBAAqB,EAAA;AACjC,MAAA,IAAA,CAAK,IAAO,GAAA,sBAAA;AAAA,QACV,SAAU,CAAA,mBAAA;AAAA,QACV,IAAK,CAAA,IAAA;AAAA,OACP,CAAA;AAAA,KACF;AAAA,GACF;AACA,EAAA,IAAI,MAAQ,EAAA;AACV,IAAO,MAAA,CAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,GACnC,MAAA;AACL,IAAA,iBAAA,CAAkB,WAAW,IAAI,CAAA,CAAA;AAAA,GACnC;AACA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEO,SAAS,kBAAkB,IAAc,EAAA;AAC9C,EAAA,OAAO,CAAsB,mBAAA,EAAA,IAAA,CAAA,CAAA,CAAA;AAC/B,CAAA;AAEgB,SAAA,sBAAA,CACd,gBACA,aACA,EAAA;AACA,EAAA,IAAI,CAAC,cAAgB,EAAA;AACnB,IAAO,OAAA,aAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,CAAA,EAAG,kBAAkB,aAAc,CAAA,OAAA;AAAA,IACxC,qBAAA;AAAA,IACA,EAAA;AAAA,GACF,CAAA,CAAA,CAAA;AACF,CAAA;AAOO,SAAS,wBAAwB,KAA4B,EAAA;AAClE,EAAA,OAAO,MAAO,CAAA,WAAA;AAAA,IACZ,MAAO,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAE,MAAO,CAAA,CAAC,CAAC,GAAG,CAAM,KAAA,GAAA,CAAI,UAAW,CAAA,eAAe,CAAC,CAAA;AAAA,GACzE,CAAA;AACF,CAAA;AAMO,SAAS,UAAa,KAAyC,EAAA;AACpE,EAAO,OAAA,KAAA,KAAU,UAAa,KAAU,KAAA,IAAA,CAAA;AAC1C,CAAA;AAEO,SAAS,iBACd,KACA,EAAA;AACA,EAAA,MAKI,EAJF,GAAA,KAAA,CAAA,CAGG,UAAA,GAAA,SAAA,CACD,EADC,EAAA;AAAA,IAHH,cAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,GAAA,EAAA;AAGF,EAAO,OAAA,UAAA,CAAA;AACT;;;;;;;;;;;;;;;;;;AC3MgB,SAAA,SAAA,CAAa,QAAW,GAAqC,EAAA;AAC3E,EAAO,OAAA,SAAA,CAAU,GAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAA,MAAM,CAAM,KAAA,IAAA,CAAA;AACpC,CAAA;AAEgB,SAAA,gBAAA,CAAoB,QAAW,GAA4B,EAAA;AAZ3E,EAAA,IAAA,EAAA,CAAA;AAaE,EAAO,OAAA,CAAA,CAAA,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAK,MAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAa,UAAe,MAAA,IAAA,CAAA;AACrC,CAAA;AAEgB,SAAA,gBAAA,CAAoB,QAAW,GAA4B,EAAA;AAhB3E,EAAA,IAAA,EAAA,CAAA;AAiBE,EAAO,OAAA,CAAA,CAAA,EAAA,GAAA,GAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,GAAA,CAAK,MAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAa,UAAe,MAAA,IAAA,CAAA;AACrC,CAAA;AAEO,SAAS,oBAAoB,gBAAsC,EAAA;AACxE,EAAI,IAAA,OAAO,qBAAqB,QAAU,EAAA;AACxC,IAAO,OAAA,gBAAA,CAAA;AAAA,GACT;AACA,EACE,IAAA,CAAC,gBACD,IAAA,CAAC,KAAM,CAAA,OAAA,CAAQ,gBAAgB,CAC/B,IAAA,gBAAA,CAAiB,QAAS,CAAA,KAAK,CAC/B,EAAA;AACA,IAAO,OAAA,KAAA,CAAA,CAAA;AAAA,GACT;AACA,EAAI,IAAA,gBAAA,CAAiB,QAAS,CAAA,KAAK,CAAG,EAAA;AACpC,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AACA,EAAA,IAAI,iBAAiB,QAAS,CAAA,IAAI,CAAK,IAAA,gBAAA,CAAiB,WAAW,CAAG,EAAA;AACpE,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACA,EAAO,OAAA,gBAAA,CAAiB,OAAO,CAAC,CAAA,KAAM,MAAM,IAAI,CAAA,CAAE,KAAK,GAAG,CAAA,CAAA;AAC5D,CAAA;AAMO,SAAS,aAAgB,aAAoC,EAAA;AAClE,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,aAAa,CAAyD,sDAAA,EAAA,aAAA,CAAA,CAAA,CAAA;AAAA,IACtE,QAAU,EAAA,IAAA;AAAA,GACZ,CAAA;AACF,CAAA;AAEO,SAAS,cAAiC,GAAA;AAC/C,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,6CAAA;AAAA,IACb,WAAa,EAAA,gBAAA;AAAA,IACb,MAAQ,EAAA,SAAA;AAAA,IACR,QAAU,EAAA,IAAA;AAAA,GACZ,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsB,aAAoC,EAAA;AACxE,EAAO,OAAA;AAAA,IACL,WAAa,EAAA,UAAA;AAAA,IACb,IAAM,EAAA,SAAA;AAAA,IACN,aAAa,CAAe,YAAA,EAAA,aAAA,CAAA,6BAAA,CAAA;AAAA,IAC5B,gBAAkB,EAAA,KAAA;AAAA,IAClB,MAAQ,EAAA,gBAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsB,aAAoC,EAAA;AACxE,EAAO,OAAA;AAAA,IACL,WAAa,EAAA,WAAA;AAAA,IACb,IAAM,EAAA,SAAA;AAAA,IACN,aAAa,CAA6B,0BAAA,EAAA,aAAA,CAAA,sIAAA,CAAA;AAAA,IAC1C,gBAAkB,EAAA,KAAA;AAAA,IAClB,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,gBAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsB,aAAoC,EAAA;AACxE,EAAO,OAAA;AAAA,IACL,WAAa,EAAA,UAAA;AAAA,IACb,IAAM,EAAA,SAAA;AAAA,IACN,aAAa,CAAyC,sCAAA,EAAA,aAAA,CAAA,wBAAA,CAAA;AAAA,IACtD,gBAAkB,EAAA,KAAA;AAAA,IAClB,QAAU,EAAA,IAAA;AAAA;AAAA,IAEV,QAAQ,MAAM,IAAA;AAAA;AAAA,GAChB,CAAA;AACF,CAAA;AAEO,SAAS,oBAAuB,aAAoC,EAAA;AACzE,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,SAAA;AAAA,IACN,aAAa,CAAe,YAAA,EAAA,aAAA,CAAA,gCAAA,CAAA;AAAA,IAC5B,gBAAkB,EAAA,KAAA;AAAA,IAClB,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,oBAAuB,aAAoC,EAAA;AACzE,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,YAAA;AAAA,IACb,aAAa,CAAwE,qEAAA,EAAA,aAAA,CAAA,CAAA;AAAA,IACrF,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAQO,SAAS,uBAA0B,aAAoC,EAAA;AAC5E,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,IACV,WAAa,EAAA,eAAA;AAAA,IACb,gBAAkB,EAAA,cAAA;AAAA,IAClB,aAAa,CAA4B,yBAAA,EAAA,aAAA,CAAA,CAAA;AAAA,IACzC,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsC,GAAA;AACpD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,yDAAA;AAAA,IACb,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsC,GAAA;AACpD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,yDAAA;AAAA,IACb,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,iBAAoC,GAAA;AAClD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WACE,EAAA,kEAAA;AAAA,IACF,QACE,EAAA,qGAAA;AAAA,IACF,SAAA,EAAW,CAAC,KAAkB,KAAA;AAC5B,MAAI,IAAA;AACF,QAAA,IAAI,OAAO,KAAK,CAAA,CAAA;AAChB,QAAO,OAAA,IAAA,CAAA;AAAA,eACA,IAAP,EAAA;AACA,QAAO,OAAA,eAAA,CAAA;AAAA,OACT;AAAA,KACF;AAAA,IACA,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsC,GAAA;AACpD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,gBAAkB,EAAA,MAAA;AAAA,IAClB,SAAS,CAAC,MAAA,EAAQ,UAAU,KAAO,EAAA,KAAA,EAAO,SAAS,UAAU,CAAA;AAAA,IAC7D,WACE,EAAA,6JAAA;AAAA,IACF,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsC,GAAA;AACpD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WACE,EAAA,qHAAA;AAAA,IACF,OAAS,EAAA;AAAA,MACP,MAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,KACF;AAAA,IACA,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,sBAAyC,GAAA;AACvD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,IACV,WAAa,EAAA,IAAA;AAAA,IACb,MAAQ,EAAA,SAAA;AAAA,IACR,WAAa,EAAA,uDAAA;AAAA,IACb,QACE,EAAA,6IAAA;AAAA,IACF,OAAS,EAAA;AAAA,MACP,IAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,kBAAA;AAAA,MACA,YAAA;AAAA,MACA,iBAAA;AAAA,MACA,aAAA;AAAA,MACA,kBAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,kBAAA;AAAA,MACA,eAAA;AAAA,MACA,oBAAA;AAAA,MACA,cAAA;AAAA,MACA,gBAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAA;AAAA,MACA,eAAA;AAAA,MACA,oBAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,sBAAA;AAAA,MACA,oBAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,kBAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,MACA,WAAA;AAAA,MACA,kBAAA;AAAA,MACA,kBAAA;AAAA,MACA,eAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,KACF;AAAA,GACF,CAAA;AACF,CAAA;AAEO,SAAS,4BAA+C,GAAA;AAC7D,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,OAAA,EAAS,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,IAC1B,WACE,EAAA,gKAAA;AAAA,IACF,gBAAkB,EAAA,QAAA;AAAA,IAClB,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEgB,SAAA,kBAAA,CAAsB,UAA0C,QAAuB,EAAA;AACrG,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,SAAS,CAAA;AAAA,IAC3C,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,iBAAoC,GAAA;AAClD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,YAAc,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACjD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,gBAAmC,GAAA;AACjD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,YAAc,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACjD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,uBAA0C,GAAA;AACxD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,WAAa,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,IACjD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,mBAAsC,GAAA;AACpD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,eAAiB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACpD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,iBAAoC,GAAA;AAClD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,eAAiB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACpD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,gBAAmC,GAAA;AACjD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,eAAiB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACpD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,eAAkC,GAAA;AAChD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,eAAiB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACpD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,iBAAoC,GAAA;AAClD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,eAAiB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACpD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,4BAA+C,GAAA;AAC7D,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,kBAAoB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACvD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,0BAA6C,GAAA;AAC3D,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,kBAAoB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACvD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,6BAAgD,GAAA;AAC9D,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,kBAAoB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACvD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,kBAAqC,GAAA;AACnD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,gBAAkB,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACrD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,uBAA0C,GAAA;AACxD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,YAAc,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACjD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,iBAAoC,GAAA;AAClD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,cAAA;AAAA,IACN,UAAU,CAAC,EAAE,MAAM,YAAc,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,IACjD,QAAU,EAAA,IAAA;AAAA,IACV,MAAQ,EAAA,SAAA;AAAA,GACV,CAAA;AACF,CAAA;AAEO,SAAS,qBAAwC,GAAA;AACtD,EAAO,OAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,GACR,CAAA;AACF,CAAA;AAMgB,SAAA,mBAAA,CACd,eACA,SACa,EAAA;AACb,EAAO,OAAA,cAAA,CAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,aAAa,CAA4B,yBAAA,EAAA,aAAA,CAAA,kDAAA,CAAA;AAAA,IACzC,OAAS,EAAA;AAAA,MACP,QAAA;AAAA,MACA,aAAA;AAAA,MACA,cAAA;AAAA,MACA,cAAA;AAAA,MACA,YAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,KACF;AAAA,GAAA,EACI,gCAAa,EAAC,CAAA,CAAA;AAEtB,CAAA;AAEgB,SAAA,gBAAA,CACd,eACA,SACa,EAAA;AACb,EAAO,OAAA,cAAA,CAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,WAAa,EAAA,QAAA;AAAA,IACb,aAAa,CAA6D,0DAAA,EAAA,aAAA,CAAA,gBAAA,CAAA;AAAA,IAC1E,QAAU,EAAA,IAAA;AAAA,GAAA,EACN,gCAAa,EAAC,CAAA,CAAA;AAEtB,CAAA;AAEgB,SAAA,0BAAA,CACd,eACA,SACa,EAAA;AACb,EAAO,OAAA,cAAA,CAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,aAAa,CAAkD,+CAAA,EAAA,aAAA,CAAA,qHAAA,CAAA;AAAA,IAC/D,QAAU,EAAA,IAAA;AAAA,GAAA,EACN,gCAAa,EAAC,CAAA,CAAA;AAEtB,CAAA;AAEgB,SAAA,qBAAA,CACd,eACA,SACa,EAAA;AACb,EAAO,OAAA,cAAA,CAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,aAAa,CAAkE,+DAAA,EAAA,aAAA,CAAA,wBAAA,CAAA;AAAA,IAC/E,QAAU,EAAA,IAAA;AAAA,GAAA,EACN,gCAAa,EAAC,CAAA,CAAA;AAEtB,CAAA;AAEgB,SAAA,qBAAA,CACd,eACA,SACA,EAAA;AACA,EAAA,MAAM,WAA2C,GAAA;AAAA,IAC/C,SAAW,EAAA,mBAAA,CAAuB,aAAe,EAAA,SAAA,CAAU,WAAW,CAAC,CAAA;AAAA,IACvE,MAAQ,EAAA,gBAAA,CAAoB,aAAe,EAAA,SAAA,CAAU,QAAQ,CAAC,CAAA;AAAA,IAC9D,gBAAkB,EAAA,0BAAA;AAAA,MAChB,aAAA;AAAA,MACA,UAAU,kBAAkB,CAAA;AAAA,KAC9B;AAAA,IACA,WAAa,EAAA,qBAAA;AAAA,MACX,aAAA;AAAA,MACA,UAAU,aAAa,CAAA;AAAA,KACzB;AAAA,GACF,CAAA;AACA,EAAO,OAAA,WAAA,CAAA;AACT,CAAA;AAEO,MAAM,SAA4B,GAAA;AAAA,EACvC,IAAM,EAAA,MAAA;AAAA,EACN,UAAU,EAAC;AAAA,EACX,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,CAAA;AAAA,IACP,MAAQ,EAAA,CAAA;AAAA,IACR,OAAS,EAAA,CAAA;AAAA,IACT,eAAiB,EAAA,KAAA;AAAA,IACjB,gBAAkB,EAAA,KAAA;AAAA,IAClB,cAAgB,EAAA,KAAA;AAAA,IAChB,eAAiB,EAAA,OAAA;AAAA,IACjB,gBAAkB,EAAA,OAAA;AAAA,IAClB,cAAgB,EAAA,OAAA;AAAA,IAChB,eAAiB,EAAA,aAAA;AAAA,IACjB,gBAAkB,EAAA,aAAA;AAAA,IAClB,cAAgB,EAAA,OAAA;AAAA,GAClB;AACF,EAAA;AAEa,MAAA,aAAA,GAA+B,EAAE,SAAA,EAAW,YAAa,GAAA;AAa/D,SAAS,4BAA+D,GAAA;AAC7E,EAAO,OAAA;AAAA;AAAA,IAEL,QAAA,EAAU,mBAAsB,QAAQ,CAAA;AAAA,IACxC,SAAS,iBAAqB,EAAA;AAAA,IAC9B,QAAQ,gBAAoB,EAAA;AAAA,IAC5B,WAAW,mBAAuB,EAAA;AAAA,IAClC,SAAS,iBAAqB,EAAA;AAAA,IAC9B,QAAQ,gBAAoB,EAAA;AAAA,IAC5B,OAAO,eAAmB,EAAA;AAAA,IAC1B,SAAS,iBAAqB,EAAA;AAAA,IAC9B,oBAAoB,4BAAgC,EAAA;AAAA,IACpD,kBAAkB,0BAA8B,EAAA;AAAA,IAChD,qBAAqB,6BAAiC,EAAA;AAAA,IACtD,UAAU,kBAAsB,EAAA;AAAA,IAChC,eAAe,uBAA2B,EAAA;AAAA,IAC1C,SAAS,iBAAqB,EAAA;AAAA,GAChC,CAAA;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"variant-utils-1c84aebb.cjs.js","sources":["../src/variant-utils.tsx"],"sourcesContent":["import { type CodeComponentMeta } from \"@plasmicapp/host/registerComponent\";\nimport React from \"react\";\n\nconst ARIA_COMPONENTS_VARIANTS = {\n hovered: {\n cssSelector: \"[data-hovered]\",\n displayName: \"Hovered\",\n },\n pressed: {\n cssSelector: \"[data-pressed]\",\n displayName: \"Pressed\",\n },\n focused: {\n cssSelector: \"[data-focused]\",\n displayName: \"Focused\",\n },\n focusVisible: {\n cssSelector: \"[data-focus-visible]\",\n displayName: \"Focus Visible\",\n },\n dragging: {\n cssSelector: \"[data-dragging]\",\n displayName: \"Dragging\",\n },\n selected: {\n cssSelector: \"[data-selected]\",\n displayName: \"Selected\",\n },\n readonly: {\n cssSelector: \"[data-readonly]\",\n displayName: \"Read Only\",\n },\n disabled: {\n cssSelector: \"[data-disabled]\",\n displayName: \"Disabled\",\n },\n indeterminate: {\n cssSelector: \"[data-indeterminate]\",\n displayName: \"Indeterminate\",\n },\n /*\n NOTE: Placement should be managed as variants, not just props.\n When `shouldFlip` is true, the placement prop may not represent the final position\n (e.g., if placement is set to \"bottom\" but lacks space, the popover/tooltip may flip to \"top\").\n However, data-selectors will consistently indicate the actual placement of the popover/tooltip.\n */\n placementLeft: {\n cssSelector: \"[data-placement=left]\",\n displayName: \"Placement (Left)\",\n },\n placementRight: {\n cssSelector: \"[data-placement=right]\",\n displayName: \"Placement (Right)\",\n },\n placementTop: {\n cssSelector: \"[data-placement=top]\",\n displayName: \"Placement (Top)\",\n },\n placementBottom: {\n cssSelector: \"[data-placement=bottom]\",\n displayName: \"Placement (Bottom)\",\n },\n};\n\ntype AriaVariant = keyof typeof ARIA_COMPONENTS_VARIANTS;\n\ntype CodeComponentVariantsMeta = NonNullable<\n CodeComponentMeta<unknown>[\"variants\"]\n>;\n\ntype VariantMeta = CodeComponentVariantsMeta[string];\n\ntype ArrayElement<T> = T extends (infer U)[] ? U : never;\n\nexport type UpdateVariant<T extends AriaVariant[]> =\n | ((changes: Partial<Record<ArrayElement<T>, boolean>>) => void)\n | undefined;\n\nexport interface WithVariants<T extends AriaVariant[]> {\n // Optional callback to update the CC variant state\n // as it's only provided if the component is the root of a Studio component\n plasmicUpdateVariant?: UpdateVariant<T>;\n}\n\nexport function VariantUpdater<T extends AriaVariant[]>({\n changes,\n updateVariant,\n}: {\n changes: Partial<Record<ArrayElement<T>, boolean>>;\n updateVariant?: UpdateVariant<T>;\n}) {\n React.useEffect(() => {\n if (updateVariant) {\n updateVariant(changes);\n }\n }, [changes, updateVariant]);\n return null;\n}\n\nexport function pickAriaComponentVariants<T extends AriaVariant[]>(\n keys: T\n): {\n variants: Record<ArrayElement<T>, VariantMeta>;\n} {\n return {\n variants: Object.fromEntries(\n keys.map((key) => [key, ARIA_COMPONENTS_VARIANTS[key]])\n ) as Record<ArrayElement<T>, VariantMeta>,\n };\n}\n"],"names":["React"],"mappings":";;;;;;;;AAGA,MAAM,wBAA2B,GAAA;AAAA,EAC/B,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,OAAS,EAAA;AAAA,IACP,WAAa,EAAA,gBAAA;AAAA,IACb,WAAa,EAAA,SAAA;AAAA,GACf;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,eAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,WAAA;AAAA,GACf;AAAA,EACA,QAAU,EAAA;AAAA,IACR,WAAa,EAAA,iBAAA;AAAA,IACb,WAAa,EAAA,UAAA;AAAA,GACf;AAAA,EACA,aAAe,EAAA;AAAA,IACb,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,eAAA;AAAA,GACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAe,EAAA;AAAA,IACb,WAAa,EAAA,uBAAA;AAAA,IACb,WAAa,EAAA,kBAAA;AAAA,GACf;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,WAAa,EAAA,wBAAA;AAAA,IACb,WAAa,EAAA,mBAAA;AAAA,GACf;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,WAAa,EAAA,sBAAA;AAAA,IACb,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,WAAa,EAAA,yBAAA;AAAA,IACb,WAAa,EAAA,oBAAA;AAAA,GACf;AACF,CAAA,CAAA;AAsBO,SAAS,cAAwC,CAAA;AAAA,EACtD,OAAA;AAAA,EACA,aAAA;AACF,CAGG,EAAA;AACD,EAAAA,sBAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,aAAe,EAAA;AACjB,MAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,KACvB;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,aAAa,CAAC,CAAA,CAAA;AAC3B,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AAEO,SAAS,0BACd,IAGA,EAAA;AACA,EAAO,OAAA;AAAA,IACL,UAAU,MAAO,CAAA,WAAA;AAAA,MACf,IAAA,CAAK,IAAI,CAAC,GAAA,KAAQ,CAAC,GAAK,EAAA,wBAAA,CAAyB,GAAG,CAAC,CAAC,CAAA;AAAA,KACxD;AAAA,GACF,CAAA;AACF;;;;;"}