@plasmicpkgs/react-aria 0.0.118 → 0.0.120

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 (92) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/contexts.d.ts +2 -1
  3. package/dist/react-aria.esm.js +13 -4
  4. package/dist/react-aria.esm.js.map +1 -1
  5. package/dist/react-aria.js +13 -4
  6. package/dist/react-aria.js.map +1 -1
  7. package/dist/utils.d.ts +5 -4
  8. package/package.json +2 -2
  9. package/skinny/contexts-5cb81c2f.esm.js.map +1 -1
  10. package/skinny/contexts-6d0cb2b1.cjs.js.map +1 -1
  11. package/skinny/contexts.d.ts +2 -1
  12. package/skinny/registerComboBox.esm.js +1 -1
  13. package/skinny/registerInput.cjs.js +1 -1
  14. package/skinny/registerInput.cjs.js.map +1 -1
  15. package/skinny/registerInput.esm.js +2 -2
  16. package/skinny/registerInput.esm.js.map +1 -1
  17. package/skinny/{registerListBox-21dc99fa.esm.js → registerListBox-0f6ebcf0.esm.js} +2 -2
  18. package/skinny/{registerListBox-21dc99fa.esm.js.map → registerListBox-0f6ebcf0.esm.js.map} +1 -1
  19. package/skinny/registerListBox.esm.js +1 -1
  20. package/skinny/registerSection.esm.js +1 -1
  21. package/skinny/registerSelect.esm.js +1 -1
  22. package/skinny/registerTextArea.cjs.js +5 -2
  23. package/skinny/registerTextArea.cjs.js.map +1 -1
  24. package/skinny/registerTextArea.esm.js +6 -3
  25. package/skinny/registerTextArea.esm.js.map +1 -1
  26. package/skinny/registerTextField.cjs.js +8 -2
  27. package/skinny/registerTextField.cjs.js.map +1 -1
  28. package/skinny/registerTextField.esm.js +8 -2
  29. package/skinny/registerTextField.esm.js.map +1 -1
  30. package/skinny/utils-fc1ddd7c.cjs.js.map +1 -1
  31. package/skinny/utils-fd88ad47.esm.js.map +1 -1
  32. package/skinny/utils.d.ts +5 -4
  33. package/skinny/registerButton.stories.cjs.js +0 -163
  34. package/skinny/registerButton.stories.cjs.js.map +0 -1
  35. package/skinny/registerButton.stories.esm.js +0 -149
  36. package/skinny/registerButton.stories.esm.js.map +0 -1
  37. package/skinny/registerCheckboxGroup.stories.cjs.js +0 -121
  38. package/skinny/registerCheckboxGroup.stories.cjs.js.map +0 -1
  39. package/skinny/registerCheckboxGroup.stories.esm.js +0 -109
  40. package/skinny/registerCheckboxGroup.stories.esm.js.map +0 -1
  41. package/skinny/registerComboBox.stories.cjs.js +0 -244
  42. package/skinny/registerComboBox.stories.cjs.js.map +0 -1
  43. package/skinny/registerComboBox.stories.esm.js +0 -230
  44. package/skinny/registerComboBox.stories.esm.js.map +0 -1
  45. package/skinny/registerDialogTrigger.stories.cjs.js +0 -458
  46. package/skinny/registerDialogTrigger.stories.cjs.js.map +0 -1
  47. package/skinny/registerDialogTrigger.stories.esm.js +0 -441
  48. package/skinny/registerDialogTrigger.stories.esm.js.map +0 -1
  49. package/skinny/registerListbox.stories.cjs.js +0 -219
  50. package/skinny/registerListbox.stories.cjs.js.map +0 -1
  51. package/skinny/registerListbox.stories.esm.js +0 -206
  52. package/skinny/registerListbox.stories.esm.js.map +0 -1
  53. package/skinny/registerModal.stories.cjs.js +0 -194
  54. package/skinny/registerModal.stories.cjs.js.map +0 -1
  55. package/skinny/registerModal.stories.esm.js +0 -181
  56. package/skinny/registerModal.stories.esm.js.map +0 -1
  57. package/skinny/registerPopover.stories.cjs.js +0 -102
  58. package/skinny/registerPopover.stories.cjs.js.map +0 -1
  59. package/skinny/registerPopover.stories.esm.js +0 -92
  60. package/skinny/registerPopover.stories.esm.js.map +0 -1
  61. package/skinny/registerRadioGroup.stories.cjs.js +0 -120
  62. package/skinny/registerRadioGroup.stories.cjs.js.map +0 -1
  63. package/skinny/registerRadioGroup.stories.esm.js +0 -108
  64. package/skinny/registerRadioGroup.stories.esm.js.map +0 -1
  65. package/skinny/registerSelect.stories.cjs.js +0 -215
  66. package/skinny/registerSelect.stories.cjs.js.map +0 -1
  67. package/skinny/registerSelect.stories.esm.js +0 -202
  68. package/skinny/registerSelect.stories.esm.js.map +0 -1
  69. package/skinny/registerSlider.stories.cjs.js +0 -165
  70. package/skinny/registerSlider.stories.cjs.js.map +0 -1
  71. package/skinny/registerSlider.stories.esm.js +0 -151
  72. package/skinny/registerSlider.stories.esm.js.map +0 -1
  73. package/skinny/registerSwitch.stories.cjs.js +0 -162
  74. package/skinny/registerSwitch.stories.cjs.js.map +0 -1
  75. package/skinny/registerSwitch.stories.esm.js +0 -148
  76. package/skinny/registerSwitch.stories.esm.js.map +0 -1
  77. package/skinny/registerTextField-common-stories.cjs.js +0 -199
  78. package/skinny/registerTextField-common-stories.cjs.js.map +0 -1
  79. package/skinny/registerTextField-common-stories.esm.js +0 -185
  80. package/skinny/registerTextField-common-stories.esm.js.map +0 -1
  81. package/skinny/registerTextField-input.stories.cjs.js +0 -54
  82. package/skinny/registerTextField-input.stories.cjs.js.map +0 -1
  83. package/skinny/registerTextField-input.stories.esm.js +0 -37
  84. package/skinny/registerTextField-input.stories.esm.js.map +0 -1
  85. package/skinny/registerTextField-textarea.stories.cjs.js +0 -55
  86. package/skinny/registerTextField-textarea.stories.cjs.js.map +0 -1
  87. package/skinny/registerTextField-textarea.stories.esm.js +0 -39
  88. package/skinny/registerTextField-textarea.stories.esm.js.map +0 -1
  89. package/skinny/registerTooltip.stories.cjs.js +0 -616
  90. package/skinny/registerTooltip.stories.cjs.js.map +0 -1
  91. package/skinny/registerTooltip.stories.esm.js +0 -596
  92. package/skinny/registerTooltip.stories.esm.js.map +0 -1
@@ -8,9 +8,9 @@ import { LABEL_COMPONENT_NAME } from './registerLabel.esm.js';
8
8
  import { m as makeComponentName, r as registerComponentHelper } from './utils-fd88ad47.esm.js';
9
9
  import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
10
10
  import './registerText.esm.js';
11
+ import 'react-aria';
11
12
  import '@plasmicapp/host';
12
13
  import '@plasmicapp/host/registerComponent';
13
- import 'react-aria';
14
14
 
15
15
  var __defProp = Object.defineProperty;
16
16
  var __defProps = Object.defineProperties;
@@ -47,11 +47,17 @@ const TEXT_FIELD_VARIANTS = ["disabled", "readonly"];
47
47
  const { variants, withObservedValues } = pickAriaComponentVariants(TEXT_FIELD_VARIANTS);
48
48
  function BaseTextField(props) {
49
49
  const _a = props, { children, plasmicUpdateVariant, autoComplete } = _a, rest = __objRest(_a, ["children", "plasmicUpdateVariant", "autoComplete"]);
50
+ const contextValue = React.useMemo(() => {
51
+ return {
52
+ isDisabled: props.isDisabled,
53
+ isReadOnly: props.isReadOnly
54
+ };
55
+ }, [props.isDisabled, props.isReadOnly]);
50
56
  return (
51
57
  // PlasmicTextFieldContext is used by
52
58
  // - BaseInput
53
59
  // - BaseTextArea
54
- /* @__PURE__ */ React.createElement(PlasmicTextFieldContext.Provider, { value: props }, /* @__PURE__ */ React.createElement(
60
+ /* @__PURE__ */ React.createElement(PlasmicTextFieldContext.Provider, { value: contextValue }, /* @__PURE__ */ React.createElement(
55
61
  TextField,
56
62
  __spreadProps(__spreadValues({
57
63
  autoComplete: resolveAutoComplete(autoComplete)
@@ -1 +1 @@
1
- {"version":3,"file":"registerTextField.esm.js","sources":["../src/registerTextField.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport type { InputProps, TextFieldProps } from \"react-aria-components\";\nimport { TextField } from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps, resolveAutoComplete } from \"./common\";\nimport { PlasmicTextFieldContext } from \"./contexts\";\nimport { DESCRIPTION_COMPONENT_NAME } from \"./registerDescription\";\nimport { INPUT_COMPONENT_NAME } from \"./registerInput\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst TEXT_FIELD_VARIANTS = [\"disabled\" as const, \"readonly\" as const];\n\nexport interface BaseTextFieldProps\n extends Omit<TextFieldProps, \"autoComplete\">,\n WithVariants<typeof TEXT_FIELD_VARIANTS> {\n label?: ReactNode;\n description?: ReactNode;\n multiline?: boolean;\n inputProps?: InputProps;\n autoComplete?: string[];\n children: ReactNode;\n}\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(TEXT_FIELD_VARIANTS);\n\nexport function BaseTextField(props: BaseTextFieldProps) {\n const { children, plasmicUpdateVariant, autoComplete, ...rest } = props;\n\n return (\n // PlasmicTextFieldContext is used by\n // - BaseInput\n // - BaseTextArea\n <PlasmicTextFieldContext.Provider value={props}>\n <TextField\n autoComplete={resolveAutoComplete(autoComplete)}\n {...rest}\n style={COMMON_STYLES}\n >\n {({ isDisabled, isReadOnly }) =>\n withObservedValues(\n children,\n {\n disabled: isDisabled,\n readonly: isReadOnly,\n },\n plasmicUpdateVariant\n )\n }\n </TextField>\n </PlasmicTextFieldContext.Provider>\n );\n}\n\nexport const TEXT_FIELD_COMPONENT_NAME = makeComponentName(\"textField\");\n\nexport function registerTextField(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTextField>\n) {\n registerComponentHelper(\n loader,\n BaseTextField,\n {\n name: TEXT_FIELD_COMPONENT_NAME,\n displayName: \"Aria TextField\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextField\",\n importName: \"BaseTextField\",\n variants,\n // TODO: Support for validate prop\n props: {\n ...getCommonProps<BaseTextFieldProps>(\"Text Field\", [\n \"name\",\n \"isDisabled\",\n \"isReadOnly\",\n \"autoFocus\",\n \"aria-label\",\n \"isRequired\",\n \"value\",\n \"maxLength\",\n \"minLength\",\n \"pattern\",\n \"type\",\n \"inputMode\",\n \"validationBehavior\",\n \"autoComplete\",\n \"onChange\",\n \"onFocus\",\n \"onBlur\",\n \"onFocusChange\",\n \"onKeyDown\",\n \"onKeyUp\",\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onCompositionStart\",\n \"onCompositionEnd\",\n \"onCompositionUpdate\",\n \"onSelect\",\n \"onBeforeInput\",\n \"onInput\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"vbox\",\n styles: {\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"300px\",\n gap: \"5px\",\n padding: 0,\n },\n children: [\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Label\",\n },\n },\n },\n {\n type: \"component\",\n name: INPUT_COMPONENT_NAME,\n styles: {\n width: \"100%\",\n },\n },\n {\n type: \"component\",\n name: DESCRIPTION_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Type something...\",\n },\n },\n },\n ],\n },\n },\n\n isInvalid: {\n // TODO: Not sure if needed\n displayName: \"Invalid\",\n type: \"boolean\",\n description: \"Whether the input value is invalid\",\n defaultValueHint: false,\n },\n customValidationErrors: {\n // TODO: Not sure if needed\n type: \"array\",\n description: \"Errors for custom validation\",\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registerTextField.esm.js","sources":["../src/registerTextField.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport type { InputProps, TextFieldProps } from \"react-aria-components\";\nimport { TextField } from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps, resolveAutoComplete } from \"./common\";\nimport { PlasmicTextFieldContext } from \"./contexts\";\nimport { DESCRIPTION_COMPONENT_NAME } from \"./registerDescription\";\nimport { INPUT_COMPONENT_NAME } from \"./registerInput\";\nimport { LABEL_COMPONENT_NAME } from \"./registerLabel\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst TEXT_FIELD_VARIANTS = [\"disabled\" as const, \"readonly\" as const];\n\nexport interface BaseTextFieldProps\n extends Omit<TextFieldProps, \"autoComplete\">,\n WithVariants<typeof TEXT_FIELD_VARIANTS> {\n label?: ReactNode;\n description?: ReactNode;\n multiline?: boolean;\n inputProps?: InputProps;\n autoComplete?: string[];\n children: ReactNode;\n}\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(TEXT_FIELD_VARIANTS);\n\nexport function BaseTextField(props: BaseTextFieldProps) {\n const { children, plasmicUpdateVariant, autoComplete, ...rest } = props;\n\n const contextValue = React.useMemo(() => {\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n };\n }, [props.isDisabled, props.isReadOnly]);\n\n return (\n // PlasmicTextFieldContext is used by\n // - BaseInput\n // - BaseTextArea\n <PlasmicTextFieldContext.Provider value={contextValue}>\n <TextField\n autoComplete={resolveAutoComplete(autoComplete)}\n {...rest}\n style={COMMON_STYLES}\n >\n {({ isDisabled, isReadOnly }) =>\n withObservedValues(\n children,\n {\n disabled: isDisabled,\n readonly: isReadOnly,\n },\n plasmicUpdateVariant\n )\n }\n </TextField>\n </PlasmicTextFieldContext.Provider>\n );\n}\n\nexport const TEXT_FIELD_COMPONENT_NAME = makeComponentName(\"textField\");\n\nexport function registerTextField(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTextField>\n) {\n registerComponentHelper(\n loader,\n BaseTextField,\n {\n name: TEXT_FIELD_COMPONENT_NAME,\n displayName: \"Aria TextField\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTextField\",\n importName: \"BaseTextField\",\n variants,\n // TODO: Support for validate prop\n props: {\n ...getCommonProps<BaseTextFieldProps>(\"Text Field\", [\n \"name\",\n \"isDisabled\",\n \"isReadOnly\",\n \"autoFocus\",\n \"aria-label\",\n \"isRequired\",\n \"value\",\n \"maxLength\",\n \"minLength\",\n \"pattern\",\n \"type\",\n \"inputMode\",\n \"validationBehavior\",\n \"autoComplete\",\n \"onChange\",\n \"onFocus\",\n \"onBlur\",\n \"onFocusChange\",\n \"onKeyDown\",\n \"onKeyUp\",\n \"onCopy\",\n \"onCut\",\n \"onPaste\",\n \"onCompositionStart\",\n \"onCompositionEnd\",\n \"onCompositionUpdate\",\n \"onSelect\",\n \"onBeforeInput\",\n \"onInput\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"vbox\",\n styles: {\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"300px\",\n gap: \"5px\",\n padding: 0,\n },\n children: [\n {\n type: \"component\",\n name: LABEL_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Label\",\n },\n },\n },\n {\n type: \"component\",\n name: INPUT_COMPONENT_NAME,\n styles: {\n width: \"100%\",\n },\n },\n {\n type: \"component\",\n name: DESCRIPTION_COMPONENT_NAME,\n props: {\n children: {\n type: \"text\",\n value: \"Type something...\",\n },\n },\n },\n ],\n },\n },\n\n isInvalid: {\n // TODO: Not sure if needed\n displayName: \"Invalid\",\n type: \"boolean\",\n description: \"Whether the input value is invalid\",\n defaultValueHint: false,\n },\n customValidationErrors: {\n // TODO: Not sure if needed\n type: \"array\",\n description: \"Errors for custom validation\",\n },\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils-fc1ddd7c.cjs.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type BaseControlContextData = {\n parent?: {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n };\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n // Not putting open and close in the useEffect dependencies array, because it causes a re-render loop.\n }, [isSelected, inPlasmicCanvas]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":["usePlasmicCanvasContext","usePlasmicCanvasComponentInfo","useEffect","registerComponent"],"mappings":"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"}
1
+ {"version":3,"file":"utils-fc1ddd7c.cjs.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type ControlContextData = {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n};\n\nexport type BaseControlContextData = {\n parent?: ControlContextData;\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n // Not putting open and close in the useEffect dependencies array, because it causes a re-render loop.\n }, [isSelected, inPlasmicCanvas]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":["usePlasmicCanvasContext","usePlasmicCanvasComponentInfo","useEffect","registerComponent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils-fd88ad47.esm.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type BaseControlContextData = {\n parent?: {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n };\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n // Not putting open and close in the useEffect dependencies array, because it causes a re-render loop.\n }, [isSelected, inPlasmicCanvas]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils-fd88ad47.esm.js","sources":["../src/utils.ts"],"sourcesContent":["import {\n usePlasmicCanvasComponentInfo,\n usePlasmicCanvasContext,\n type CodeComponentMeta,\n} from \"@plasmicapp/host\";\nimport registerComponent from \"@plasmicapp/host/registerComponent\";\nimport React, { useEffect } from \"react\";\nimport { InputProps, TextAreaProps } from \"react-aria-components\";\n\nexport type HasControlContextData<T = BaseControlContextData> = {\n setControlContextData?: (ctxData: T) => void;\n};\n\nexport type WithPlasmicCanvasComponentInfo = {\n __plasmic_selection_prop__?: {\n isSelected: boolean;\n selectedSlotName?: string;\n };\n};\n\nexport type ControlContextData = {\n isDisabled?: boolean;\n isReadOnly?: boolean;\n};\n\nexport type BaseControlContextData = {\n parent?: ControlContextData;\n};\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n};\n\nexport type OtherCodeComponentsMeta = {\n text: CodeComponentMeta<any>;\n description: CodeComponentMeta<any>;\n};\n\nexport type CodeComponentMetaOverrides<T extends React.ComponentType<any>> =\n Partial<\n Pick<\n CodeComponentMeta<React.ComponentProps<T>>,\n \"parentComponentName\" | \"props\" | \"displayName\" | \"name\"\n >\n >;\n\n/**\n * This hook determines whether an overlay should be open or not. Unlike `useAutoOpen`, it does not perform any actions.\n * It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n * 3. Whether the overlay's trigger slot is selected on canvas\n */\nexport function useIsOpen({\n triggerSlotName,\n isOpen,\n __plasmic_selection_prop__,\n}: {\n __plasmic_selection_prop__: WithPlasmicCanvasComponentInfo[\"__plasmic_selection_prop__\"];\n triggerSlotName?: string;\n isOpen?: boolean;\n}) {\n const canvasContext = usePlasmicCanvasContext();\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.({ __plasmic_selection_prop__ }) ?? {};\n\n // In preview, just use the isOpen prop as is.\n if (!canvasContext) {\n return isOpen;\n }\n\n // In canvas, override the isOpen prop if the element is selected.\n const isTriggerSlotSelected =\n isDefined(selectedSlotName) && selectedSlotName === triggerSlotName;\n\n const isAutoOpenedBySelection = isSelected && !isTriggerSlotSelected;\n\n // Component should always be controlled in canvas\n return Boolean(isAutoOpenedBySelection || isOpen);\n}\n\n/**\n * This hook is used to perform open/close actions on an overlay. It takes into account the following:\n * 1. Whether the overlay is in canvas or preview.\n * 2. Whether the overlay is selected on canvas\n */\nexport function useAutoOpen({\n props,\n open,\n close,\n}: {\n props: WithPlasmicCanvasComponentInfo;\n open?: () => void;\n close?: () => void;\n}) {\n const inPlasmicCanvas = !!usePlasmicCanvasContext();\n const isSelected =\n usePlasmicCanvasComponentInfo?.(props)?.isSelected ?? false;\n\n useEffect(() => {\n // selection in outline tab only matters in canvas\n if (!inPlasmicCanvas) {\n return;\n }\n if (isSelected) {\n open?.();\n } else {\n close?.();\n }\n // Not putting open and close in the useEffect dependencies array, because it causes a re-render loop.\n }, [isSelected, inPlasmicCanvas]);\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>,\n overrides?: CodeComponentMetaOverrides<T>\n) {\n if (overrides) {\n meta = {\n ...meta,\n ...overrides,\n props: {\n ...meta.props,\n ...overrides.props,\n },\n };\n if (overrides.parentComponentName) {\n meta.name = makeChildComponentName(\n overrides.parentComponentName,\n meta.name\n );\n }\n }\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n return meta;\n}\n\nexport function makeComponentName(name: string) {\n return `plasmic-react-aria-${name}`;\n}\n\nexport function makeChildComponentName(\n fullParentName: string | undefined,\n fullChildName: string\n) {\n if (!fullParentName) {\n return fullChildName;\n }\n return `${fullParentName}-${fullChildName.replace(\n \"plasmic-react-aria-\",\n \"\"\n )}`;\n}\n\nexport interface Styleable {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function extractPlasmicDataProps(props: Record<string, any>) {\n return Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-plasmic-\"))\n );\n}\n\nexport function withoutNils<T>(array: (T | undefined | null)[]) {\n return array.filter((x): x is T => x != null);\n}\n\nexport function isDefined<T>(thing: T | undefined | null): thing is T {\n return thing !== undefined && thing !== null;\n}\n\nexport function filterHoverProps<T extends TextAreaProps | InputProps>(\n props: T\n) {\n const {\n onHoverStart: _onHoverStart,\n onHoverChange: _onHoverChange,\n onHoverEnd: _onHoverEnd,\n ...otherProps\n } = props;\n return otherProps;\n}\n"],"names":[],"mappings":"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"}
package/skinny/utils.d.ts CHANGED
@@ -11,11 +11,12 @@ export type WithPlasmicCanvasComponentInfo = {
11
11
  selectedSlotName?: string;
12
12
  };
13
13
  };
14
+ export type ControlContextData = {
15
+ isDisabled?: boolean;
16
+ isReadOnly?: boolean;
17
+ };
14
18
  export type BaseControlContextData = {
15
- parent?: {
16
- isDisabled?: boolean;
17
- isReadOnly?: boolean;
18
- };
19
+ parent?: ControlContextData;
19
20
  };
20
21
  export type Registerable = {
21
22
  registerComponent: typeof registerComponent;
@@ -1,163 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var test = require('@storybook/test');
6
- var React = require('react');
7
- var reactAriaComponents = require('react-aria-components');
8
- var registerButton = require('./registerButton.cjs.js');
9
- require('@plasmicapp/host');
10
- require('react-aria');
11
- require('./common-45acb83c.cjs.js');
12
- require('./utils-fc1ddd7c.cjs.js');
13
- require('@plasmicapp/host/registerComponent');
14
- require('./variant-utils-0ad70db8.cjs.js');
15
-
16
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
-
18
- var React__default = /*#__PURE__*/_interopDefault(React);
19
-
20
- var __defProp = Object.defineProperty;
21
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
22
- var __hasOwnProp = Object.prototype.hasOwnProperty;
23
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
24
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
25
- var __spreadValues = (a, b) => {
26
- for (var prop in b || (b = {}))
27
- if (__hasOwnProp.call(b, prop))
28
- __defNormalProp(a, prop, b[prop]);
29
- if (__getOwnPropSymbols)
30
- for (var prop of __getOwnPropSymbols(b)) {
31
- if (__propIsEnum.call(b, prop))
32
- __defNormalProp(a, prop, b[prop]);
33
- }
34
- return a;
35
- };
36
- var registerButton_stories = {
37
- title: "Components/BaseButton",
38
- component: registerButton.BaseButton,
39
- args: {
40
- children: "Click Me",
41
- onPress: test.fn(),
42
- onFocus: test.fn()
43
- },
44
- parameters: {
45
- onSubmit: test.fn(),
46
- onReset: test.fn()
47
- }
48
- };
49
- const TestForm = ({ children, onSubmit, onReset }) => /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.Form, { onSubmit, onReset }, /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.Input, { role: "input", name: "test-input", "aria-label": "Test input" }), children);
50
- const Basic = {
51
- play: async ({ args, canvasElement }) => {
52
- const canvas = test.within(canvasElement);
53
- const button = canvas.getByText("Click Me");
54
- await test.userEvent.click(button);
55
- test.expect(button).toHaveFocus();
56
- test.expect(args.onPress).toHaveBeenCalledOnce();
57
- test.expect(args.onFocus).toHaveBeenCalledOnce();
58
- }
59
- };
60
- const AutoFocusedButton = {
61
- args: {
62
- autoFocus: true
63
- },
64
- render: (args) => /* @__PURE__ */ React__default.default.createElement(TestForm, null, /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, __spreadValues({}, args))),
65
- play: async ({ canvasElement }) => {
66
- const canvas = test.within(canvasElement);
67
- await test.waitFor(() => {
68
- test.expect(canvas.getByText("Click Me")).toHaveFocus();
69
- });
70
- }
71
- };
72
- const DisabledButton = {
73
- args: {
74
- isDisabled: true
75
- },
76
- render: (args) => /* @__PURE__ */ React__default.default.createElement(TestForm, null, /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, __spreadValues({}, args))),
77
- play: async ({ canvasElement }) => {
78
- const canvas = test.within(canvasElement);
79
- const button = canvas.getByText("Click Me");
80
- await test.userEvent.click(button);
81
- test.expect(button).not.toHaveFocus();
82
- test.expect(button).toBeDisabled();
83
- }
84
- };
85
- const SubmitButton = {
86
- args: {
87
- children: "Submit",
88
- submitsForm: true
89
- },
90
- render: (args, { parameters }) => {
91
- return /* @__PURE__ */ React__default.default.createElement(
92
- TestForm,
93
- {
94
- onSubmit: (e) => {
95
- e.preventDefault();
96
- parameters.onSubmit(e);
97
- }
98
- },
99
- /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, __spreadValues({}, args))
100
- );
101
- },
102
- play: async ({ canvasElement, parameters }) => {
103
- const canvas = test.within(canvasElement);
104
- const button = canvas.getByText("Submit");
105
- await test.userEvent.click(button);
106
- test.expect(parameters.onSubmit).toHaveBeenCalledOnce();
107
- test.expect(parameters.onReset).not.toHaveBeenCalled();
108
- }
109
- };
110
- const ResetButton = {
111
- args: {
112
- children: "Reset",
113
- resetsForm: true
114
- },
115
- render: (args, { parameters }) => /* @__PURE__ */ React__default.default.createElement(
116
- TestForm,
117
- {
118
- onSubmit: (e) => {
119
- e.preventDefault();
120
- parameters.onSubmit(e);
121
- },
122
- onReset: parameters.onReset
123
- },
124
- /* @__PURE__ */ React__default.default.createElement(registerButton.BaseButton, __spreadValues({}, args))
125
- ),
126
- play: async ({ canvasElement, parameters }) => {
127
- const canvas = test.within(canvasElement);
128
- const form = canvasElement.getElementsByTagName("form")[0];
129
- const input = canvasElement.getElementsByTagName("input")[0];
130
- await test.userEvent.type(input, "Hello World");
131
- test.expect(form).toHaveFormValues({ "test-input": "Hello World" });
132
- const button = canvas.getByText("Reset");
133
- test.expect(button).toHaveAttribute("type", "reset");
134
- await test.userEvent.click(button);
135
- test.expect(form).toHaveFormValues({});
136
- test.expect(parameters.onReset).toHaveBeenCalledOnce();
137
- test.expect(parameters.onSubmit).not.toHaveBeenCalled();
138
- }
139
- };
140
- const LinkButton = {
141
- args: {
142
- children: "Go to Google",
143
- href: "https://www.google.com",
144
- target: "_blank"
145
- },
146
- play: async ({ canvasElement }) => {
147
- const canvas = test.within(canvasElement);
148
- const link = canvas.getByText("Go to Google");
149
- test.expect(link.tagName).toBe("A");
150
- test.expect(link).toHaveAttribute("href", "https://www.google.com");
151
- test.expect(link).toHaveAttribute("target", "_blank");
152
- await test.userEvent.click(link);
153
- }
154
- };
155
-
156
- exports.AutoFocusedButton = AutoFocusedButton;
157
- exports.Basic = Basic;
158
- exports.DisabledButton = DisabledButton;
159
- exports.LinkButton = LinkButton;
160
- exports.ResetButton = ResetButton;
161
- exports.SubmitButton = SubmitButton;
162
- exports.default = registerButton_stories;
163
- //# sourceMappingURL=registerButton.stories.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerButton.stories.cjs.js","sources":["../src/registerButton.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, userEvent, waitFor, within } from \"@storybook/test\";\nimport React from \"react\";\nimport { Form, Input } from \"react-aria-components\";\nimport { BaseButton } from \"./registerButton\";\n\nexport default {\n title: \"Components/BaseButton\",\n component: BaseButton,\n args: {\n children: \"Click Me\",\n onPress: fn(),\n onFocus: fn(),\n },\n parameters: {\n onSubmit: fn(),\n onReset: fn(),\n },\n} satisfies Meta<typeof BaseButton>;\n\ntype Story = StoryObj<typeof BaseButton>;\n\n// Reusable test form wrapper\nconst TestForm: React.FC<{\n children: React.ReactNode;\n onSubmit?: (e: React.FormEvent) => void;\n onReset?: (e: React.FormEvent) => void;\n}> = ({ children, onSubmit, onReset }) => (\n <Form onSubmit={onSubmit} onReset={onReset}>\n <Input role=\"input\" name=\"test-input\" aria-label=\"Test input\" />\n {children}\n </Form>\n);\n\nexport const Basic: Story = {\n play: async ({ args, canvasElement }) => {\n const canvas = within(canvasElement);\n const button = canvas.getByText(\"Click Me\");\n\n await userEvent.click(button);\n\n expect(button).toHaveFocus();\n expect(args.onPress).toHaveBeenCalledOnce();\n expect(args.onFocus).toHaveBeenCalledOnce();\n },\n};\n\nexport const AutoFocusedButton: Story = {\n args: {\n autoFocus: true,\n },\n render: (args) => (\n <TestForm>\n <BaseButton {...args} />\n </TestForm>\n ),\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(() => {\n expect(canvas.getByText(\"Click Me\")).toHaveFocus();\n });\n },\n};\n\nexport const DisabledButton: Story = {\n args: {\n isDisabled: true,\n },\n render: (args) => (\n <TestForm>\n <BaseButton {...args} />\n </TestForm>\n ),\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const button = canvas.getByText(\"Click Me\");\n\n await userEvent.click(button);\n expect(button).not.toHaveFocus();\n expect(button).toBeDisabled();\n },\n};\n\nexport const SubmitButton: Story = {\n args: {\n children: \"Submit\",\n submitsForm: true,\n },\n render: (args, { parameters }) => {\n return (\n <TestForm\n onSubmit={(e) => {\n e.preventDefault();\n parameters.onSubmit(e);\n }}\n >\n <BaseButton {...args} />\n </TestForm>\n );\n },\n play: async ({ canvasElement, parameters }) => {\n const canvas = within(canvasElement);\n const button = canvas.getByText(\"Submit\");\n await userEvent.click(button);\n expect(parameters.onSubmit).toHaveBeenCalledOnce();\n expect(parameters.onReset).not.toHaveBeenCalled();\n },\n};\n\nexport const ResetButton: Story = {\n args: {\n children: \"Reset\",\n resetsForm: true,\n },\n render: (args, { parameters }) => (\n <TestForm\n onSubmit={(e) => {\n e.preventDefault();\n parameters.onSubmit(e);\n }}\n onReset={parameters.onReset}\n >\n <BaseButton {...args} />\n </TestForm>\n ),\n play: async ({ canvasElement, parameters }) => {\n const canvas = within(canvasElement);\n const form = canvasElement.getElementsByTagName(\"form\")[0];\n const input = canvasElement.getElementsByTagName(\"input\")[0];\n await userEvent.type(input, \"Hello World\");\n expect(form).toHaveFormValues({ \"test-input\": \"Hello World\" });\n const button = canvas.getByText(\"Reset\");\n expect(button).toHaveAttribute(\"type\", \"reset\");\n await userEvent.click(button);\n expect(form).toHaveFormValues({});\n expect(parameters.onReset).toHaveBeenCalledOnce();\n expect(parameters.onSubmit).not.toHaveBeenCalled();\n },\n};\n\nexport const LinkButton: Story = {\n args: {\n children: \"Go to Google\",\n href: \"https://www.google.com\",\n target: \"_blank\",\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const link = canvas.getByText(\"Go to Google\");\n\n expect(link.tagName).toBe(\"A\");\n expect(link).toHaveAttribute(\"href\", \"https://www.google.com\");\n expect(link).toHaveAttribute(\"target\", \"_blank\");\n await userEvent.click(link);\n },\n};\n"],"names":["BaseButton","fn","Form","React","Input","within","userEvent","expect","waitFor"],"mappings":"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"}
@@ -1,149 +0,0 @@
1
- import { fn, within, userEvent, expect, waitFor } from '@storybook/test';
2
- import React from 'react';
3
- import { Form, Input } from 'react-aria-components';
4
- import { BaseButton } from './registerButton.esm.js';
5
- import '@plasmicapp/host';
6
- import 'react-aria';
7
- import './common-616eb178.esm.js';
8
- import './utils-fd88ad47.esm.js';
9
- import '@plasmicapp/host/registerComponent';
10
- import './variant-utils-4405ebb0.esm.js';
11
-
12
- var __defProp = Object.defineProperty;
13
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
14
- var __hasOwnProp = Object.prototype.hasOwnProperty;
15
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
16
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
17
- var __spreadValues = (a, b) => {
18
- for (var prop in b || (b = {}))
19
- if (__hasOwnProp.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- if (__getOwnPropSymbols)
22
- for (var prop of __getOwnPropSymbols(b)) {
23
- if (__propIsEnum.call(b, prop))
24
- __defNormalProp(a, prop, b[prop]);
25
- }
26
- return a;
27
- };
28
- var registerButton_stories = {
29
- title: "Components/BaseButton",
30
- component: BaseButton,
31
- args: {
32
- children: "Click Me",
33
- onPress: fn(),
34
- onFocus: fn()
35
- },
36
- parameters: {
37
- onSubmit: fn(),
38
- onReset: fn()
39
- }
40
- };
41
- const TestForm = ({ children, onSubmit, onReset }) => /* @__PURE__ */ React.createElement(Form, { onSubmit, onReset }, /* @__PURE__ */ React.createElement(Input, { role: "input", name: "test-input", "aria-label": "Test input" }), children);
42
- const Basic = {
43
- play: async ({ args, canvasElement }) => {
44
- const canvas = within(canvasElement);
45
- const button = canvas.getByText("Click Me");
46
- await userEvent.click(button);
47
- expect(button).toHaveFocus();
48
- expect(args.onPress).toHaveBeenCalledOnce();
49
- expect(args.onFocus).toHaveBeenCalledOnce();
50
- }
51
- };
52
- const AutoFocusedButton = {
53
- args: {
54
- autoFocus: true
55
- },
56
- render: (args) => /* @__PURE__ */ React.createElement(TestForm, null, /* @__PURE__ */ React.createElement(BaseButton, __spreadValues({}, args))),
57
- play: async ({ canvasElement }) => {
58
- const canvas = within(canvasElement);
59
- await waitFor(() => {
60
- expect(canvas.getByText("Click Me")).toHaveFocus();
61
- });
62
- }
63
- };
64
- const DisabledButton = {
65
- args: {
66
- isDisabled: true
67
- },
68
- render: (args) => /* @__PURE__ */ React.createElement(TestForm, null, /* @__PURE__ */ React.createElement(BaseButton, __spreadValues({}, args))),
69
- play: async ({ canvasElement }) => {
70
- const canvas = within(canvasElement);
71
- const button = canvas.getByText("Click Me");
72
- await userEvent.click(button);
73
- expect(button).not.toHaveFocus();
74
- expect(button).toBeDisabled();
75
- }
76
- };
77
- const SubmitButton = {
78
- args: {
79
- children: "Submit",
80
- submitsForm: true
81
- },
82
- render: (args, { parameters }) => {
83
- return /* @__PURE__ */ React.createElement(
84
- TestForm,
85
- {
86
- onSubmit: (e) => {
87
- e.preventDefault();
88
- parameters.onSubmit(e);
89
- }
90
- },
91
- /* @__PURE__ */ React.createElement(BaseButton, __spreadValues({}, args))
92
- );
93
- },
94
- play: async ({ canvasElement, parameters }) => {
95
- const canvas = within(canvasElement);
96
- const button = canvas.getByText("Submit");
97
- await userEvent.click(button);
98
- expect(parameters.onSubmit).toHaveBeenCalledOnce();
99
- expect(parameters.onReset).not.toHaveBeenCalled();
100
- }
101
- };
102
- const ResetButton = {
103
- args: {
104
- children: "Reset",
105
- resetsForm: true
106
- },
107
- render: (args, { parameters }) => /* @__PURE__ */ React.createElement(
108
- TestForm,
109
- {
110
- onSubmit: (e) => {
111
- e.preventDefault();
112
- parameters.onSubmit(e);
113
- },
114
- onReset: parameters.onReset
115
- },
116
- /* @__PURE__ */ React.createElement(BaseButton, __spreadValues({}, args))
117
- ),
118
- play: async ({ canvasElement, parameters }) => {
119
- const canvas = within(canvasElement);
120
- const form = canvasElement.getElementsByTagName("form")[0];
121
- const input = canvasElement.getElementsByTagName("input")[0];
122
- await userEvent.type(input, "Hello World");
123
- expect(form).toHaveFormValues({ "test-input": "Hello World" });
124
- const button = canvas.getByText("Reset");
125
- expect(button).toHaveAttribute("type", "reset");
126
- await userEvent.click(button);
127
- expect(form).toHaveFormValues({});
128
- expect(parameters.onReset).toHaveBeenCalledOnce();
129
- expect(parameters.onSubmit).not.toHaveBeenCalled();
130
- }
131
- };
132
- const LinkButton = {
133
- args: {
134
- children: "Go to Google",
135
- href: "https://www.google.com",
136
- target: "_blank"
137
- },
138
- play: async ({ canvasElement }) => {
139
- const canvas = within(canvasElement);
140
- const link = canvas.getByText("Go to Google");
141
- expect(link.tagName).toBe("A");
142
- expect(link).toHaveAttribute("href", "https://www.google.com");
143
- expect(link).toHaveAttribute("target", "_blank");
144
- await userEvent.click(link);
145
- }
146
- };
147
-
148
- export { AutoFocusedButton, Basic, DisabledButton, LinkButton, ResetButton, SubmitButton, registerButton_stories as default };
149
- //# sourceMappingURL=registerButton.stories.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerButton.stories.esm.js","sources":["../src/registerButton.stories.tsx"],"sourcesContent":["import { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, userEvent, waitFor, within } from \"@storybook/test\";\nimport React from \"react\";\nimport { Form, Input } from \"react-aria-components\";\nimport { BaseButton } from \"./registerButton\";\n\nexport default {\n title: \"Components/BaseButton\",\n component: BaseButton,\n args: {\n children: \"Click Me\",\n onPress: fn(),\n onFocus: fn(),\n },\n parameters: {\n onSubmit: fn(),\n onReset: fn(),\n },\n} satisfies Meta<typeof BaseButton>;\n\ntype Story = StoryObj<typeof BaseButton>;\n\n// Reusable test form wrapper\nconst TestForm: React.FC<{\n children: React.ReactNode;\n onSubmit?: (e: React.FormEvent) => void;\n onReset?: (e: React.FormEvent) => void;\n}> = ({ children, onSubmit, onReset }) => (\n <Form onSubmit={onSubmit} onReset={onReset}>\n <Input role=\"input\" name=\"test-input\" aria-label=\"Test input\" />\n {children}\n </Form>\n);\n\nexport const Basic: Story = {\n play: async ({ args, canvasElement }) => {\n const canvas = within(canvasElement);\n const button = canvas.getByText(\"Click Me\");\n\n await userEvent.click(button);\n\n expect(button).toHaveFocus();\n expect(args.onPress).toHaveBeenCalledOnce();\n expect(args.onFocus).toHaveBeenCalledOnce();\n },\n};\n\nexport const AutoFocusedButton: Story = {\n args: {\n autoFocus: true,\n },\n render: (args) => (\n <TestForm>\n <BaseButton {...args} />\n </TestForm>\n ),\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n await waitFor(() => {\n expect(canvas.getByText(\"Click Me\")).toHaveFocus();\n });\n },\n};\n\nexport const DisabledButton: Story = {\n args: {\n isDisabled: true,\n },\n render: (args) => (\n <TestForm>\n <BaseButton {...args} />\n </TestForm>\n ),\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const button = canvas.getByText(\"Click Me\");\n\n await userEvent.click(button);\n expect(button).not.toHaveFocus();\n expect(button).toBeDisabled();\n },\n};\n\nexport const SubmitButton: Story = {\n args: {\n children: \"Submit\",\n submitsForm: true,\n },\n render: (args, { parameters }) => {\n return (\n <TestForm\n onSubmit={(e) => {\n e.preventDefault();\n parameters.onSubmit(e);\n }}\n >\n <BaseButton {...args} />\n </TestForm>\n );\n },\n play: async ({ canvasElement, parameters }) => {\n const canvas = within(canvasElement);\n const button = canvas.getByText(\"Submit\");\n await userEvent.click(button);\n expect(parameters.onSubmit).toHaveBeenCalledOnce();\n expect(parameters.onReset).not.toHaveBeenCalled();\n },\n};\n\nexport const ResetButton: Story = {\n args: {\n children: \"Reset\",\n resetsForm: true,\n },\n render: (args, { parameters }) => (\n <TestForm\n onSubmit={(e) => {\n e.preventDefault();\n parameters.onSubmit(e);\n }}\n onReset={parameters.onReset}\n >\n <BaseButton {...args} />\n </TestForm>\n ),\n play: async ({ canvasElement, parameters }) => {\n const canvas = within(canvasElement);\n const form = canvasElement.getElementsByTagName(\"form\")[0];\n const input = canvasElement.getElementsByTagName(\"input\")[0];\n await userEvent.type(input, \"Hello World\");\n expect(form).toHaveFormValues({ \"test-input\": \"Hello World\" });\n const button = canvas.getByText(\"Reset\");\n expect(button).toHaveAttribute(\"type\", \"reset\");\n await userEvent.click(button);\n expect(form).toHaveFormValues({});\n expect(parameters.onReset).toHaveBeenCalledOnce();\n expect(parameters.onSubmit).not.toHaveBeenCalled();\n },\n};\n\nexport const LinkButton: Story = {\n args: {\n children: \"Go to Google\",\n href: \"https://www.google.com\",\n target: \"_blank\",\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const link = canvas.getByText(\"Go to Google\");\n\n expect(link.tagName).toBe(\"A\");\n expect(link).toHaveAttribute(\"href\", \"https://www.google.com\");\n expect(link).toHaveAttribute(\"target\", \"_blank\");\n await userEvent.click(link);\n },\n};\n"],"names":[],"mappings":"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"}