@plasmicpkgs/react-aria 0.0.103 → 0.0.105
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/react-aria.esm.js.map +1 -1
- package/dist/react-aria.js.map +1 -1
- package/dist/registerButton.d.ts +1 -1
- package/dist/registerComboBox.d.ts +2 -2
- package/dist/registerDialogTrigger.d.ts +3 -3
- package/dist/registerModal.d.ts +3 -4
- package/dist/registerPopover.d.ts +2 -2
- package/dist/registerSelect.d.ts +2 -2
- package/dist/registerSliderTrack.d.ts +1 -1
- package/dist/registerTooltip.d.ts +2 -2
- package/dist/utils.d.ts +6 -0
- package/package.json +13 -3
- package/skinny/registerButton.cjs.js.map +1 -1
- package/skinny/registerButton.d.ts +1 -1
- package/skinny/registerButton.esm.js.map +1 -1
- package/skinny/registerButton.stories.cjs.js +163 -0
- package/skinny/registerButton.stories.cjs.js.map +1 -0
- package/skinny/registerButton.stories.esm.js +149 -0
- package/skinny/registerButton.stories.esm.js.map +1 -0
- package/skinny/registerCheckboxGroup.stories.cjs.js +121 -0
- package/skinny/registerCheckboxGroup.stories.cjs.js.map +1 -0
- package/skinny/registerCheckboxGroup.stories.esm.js +109 -0
- package/skinny/registerCheckboxGroup.stories.esm.js.map +1 -0
- package/skinny/registerComboBox.cjs.js.map +1 -1
- package/skinny/registerComboBox.d.ts +2 -2
- package/skinny/registerComboBox.esm.js +1 -1
- package/skinny/registerComboBox.esm.js.map +1 -1
- package/skinny/registerComboBox.stories.cjs.js +244 -0
- package/skinny/registerComboBox.stories.cjs.js.map +1 -0
- package/skinny/registerComboBox.stories.esm.js +230 -0
- package/skinny/registerComboBox.stories.esm.js.map +1 -0
- package/skinny/registerDialogTrigger.cjs.js.map +1 -1
- package/skinny/registerDialogTrigger.d.ts +3 -3
- package/skinny/registerDialogTrigger.esm.js.map +1 -1
- package/skinny/registerDialogTrigger.stories.cjs.js +233 -0
- package/skinny/registerDialogTrigger.stories.cjs.js.map +1 -0
- package/skinny/registerDialogTrigger.stories.esm.js +221 -0
- package/skinny/registerDialogTrigger.stories.esm.js.map +1 -0
- package/skinny/{registerListBox-40846430.esm.js → registerListBox-49626f55.esm.js} +2 -2
- package/skinny/{registerListBox-40846430.esm.js.map → registerListBox-49626f55.esm.js.map} +1 -1
- package/skinny/registerListBox.esm.js +1 -1
- package/skinny/registerListbox.stories.cjs.js +219 -0
- package/skinny/registerListbox.stories.cjs.js.map +1 -0
- package/skinny/registerListbox.stories.esm.js +206 -0
- package/skinny/registerListbox.stories.esm.js.map +1 -0
- package/skinny/registerModal.cjs.js.map +1 -1
- package/skinny/registerModal.d.ts +3 -4
- package/skinny/registerModal.esm.js.map +1 -1
- package/skinny/registerModal.stories.cjs.js +194 -0
- package/skinny/registerModal.stories.cjs.js.map +1 -0
- package/skinny/registerModal.stories.esm.js +181 -0
- package/skinny/registerModal.stories.esm.js.map +1 -0
- package/skinny/registerPopover.cjs.js.map +1 -1
- package/skinny/registerPopover.d.ts +2 -2
- package/skinny/registerPopover.esm.js.map +1 -1
- package/skinny/registerPopover.stories.cjs.js +42 -0
- package/skinny/registerPopover.stories.cjs.js.map +1 -0
- package/skinny/registerPopover.stories.esm.js +33 -0
- package/skinny/registerPopover.stories.esm.js.map +1 -0
- package/skinny/registerRadioGroup.stories.cjs.js +120 -0
- package/skinny/registerRadioGroup.stories.cjs.js.map +1 -0
- package/skinny/registerRadioGroup.stories.esm.js +108 -0
- package/skinny/registerRadioGroup.stories.esm.js.map +1 -0
- package/skinny/registerSection.esm.js +1 -1
- package/skinny/registerSelect.cjs.js.map +1 -1
- package/skinny/registerSelect.d.ts +2 -2
- package/skinny/registerSelect.esm.js +1 -1
- package/skinny/registerSelect.esm.js.map +1 -1
- package/skinny/registerSelect.stories.cjs.js +176 -0
- package/skinny/registerSelect.stories.cjs.js.map +1 -0
- package/skinny/registerSelect.stories.esm.js +165 -0
- package/skinny/registerSelect.stories.esm.js.map +1 -0
- package/skinny/registerSlider.stories.cjs.js +184 -0
- package/skinny/registerSlider.stories.cjs.js.map +1 -0
- package/skinny/registerSlider.stories.esm.js +171 -0
- package/skinny/registerSlider.stories.esm.js.map +1 -0
- package/skinny/registerSliderTrack.cjs.js.map +1 -1
- package/skinny/registerSliderTrack.d.ts +1 -1
- package/skinny/registerSliderTrack.esm.js.map +1 -1
- package/skinny/registerTextField.cjs.js +1 -1
- package/skinny/registerTextField.esm.js +1 -1
- package/skinny/registerTooltip.cjs.js.map +1 -1
- package/skinny/registerTooltip.d.ts +2 -2
- package/skinny/registerTooltip.esm.js.map +1 -1
- package/skinny/registerTooltip.stories.cjs.js +228 -0
- package/skinny/registerTooltip.stories.cjs.js.map +1 -0
- package/skinny/registerTooltip.stories.esm.js +215 -0
- package/skinny/registerTooltip.stories.esm.js.map +1 -0
- package/skinny/utils-5d1b4c6b.esm.js.map +1 -1
- package/skinny/utils-7d000fa4.cjs.js.map +1 -1
- package/skinny/utils.d.ts +6 -0
package/dist/registerButton.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ type ButtonSpecificProps = {
|
|
|
11
11
|
resetsForm?: boolean;
|
|
12
12
|
submitsForm?: boolean;
|
|
13
13
|
};
|
|
14
|
-
interface BaseButtonProps extends CommonProps, LinkSpecificProps, ButtonSpecificProps, WithVariants<typeof BUTTON_VARIANTS> {
|
|
14
|
+
export interface BaseButtonProps extends CommonProps, LinkSpecificProps, ButtonSpecificProps, WithVariants<typeof BUTTON_VARIANTS> {
|
|
15
15
|
children: React.ReactNode;
|
|
16
16
|
className?: string;
|
|
17
17
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ComboBoxProps } from "react-aria-components";
|
|
3
|
-
import { HasControlContextData, Registerable } from "./utils";
|
|
3
|
+
import { HasControlContextData, Registerable, WithPlasmicCanvasComponentInfo } from "./utils";
|
|
4
4
|
import { WithVariants } from "./variant-utils";
|
|
5
5
|
export interface BaseComboboxControlContextData {
|
|
6
6
|
itemIds: string[];
|
|
7
7
|
}
|
|
8
8
|
declare const COMBOBOX_VARIANTS: "disabled"[];
|
|
9
|
-
export interface BaseComboboxProps extends ComboBoxProps<{}>, WithVariants<typeof COMBOBOX_VARIANTS>, HasControlContextData<BaseComboboxControlContextData> {
|
|
9
|
+
export interface BaseComboboxProps extends ComboBoxProps<{}>, WithPlasmicCanvasComponentInfo, WithVariants<typeof COMBOBOX_VARIANTS>, HasControlContextData<BaseComboboxControlContextData> {
|
|
10
10
|
children?: React.ReactNode;
|
|
11
11
|
isOpen?: boolean;
|
|
12
12
|
className?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import { CodeComponentMetaOverrides, Registerable } from "./utils";
|
|
4
|
-
export interface BaseDialogTriggerProps extends
|
|
2
|
+
import { DialogTriggerProps } from "react-aria-components";
|
|
3
|
+
import { CodeComponentMetaOverrides, Registerable, WithPlasmicCanvasComponentInfo } from "./utils";
|
|
4
|
+
export interface BaseDialogTriggerProps extends Omit<DialogTriggerProps, "children">, WithPlasmicCanvasComponentInfo {
|
|
5
5
|
trigger?: React.ReactNode;
|
|
6
6
|
dialog?: React.ReactNode;
|
|
7
7
|
}
|
package/dist/registerModal.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { PlasmicElement } from "@plasmicapp/host";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { ModalOverlayProps } from "react-aria-components";
|
|
4
|
-
import { CodeComponentMetaOverrides, HasControlContextData, Registerable } from "./utils";
|
|
5
|
-
export interface BaseModalProps extends ModalOverlayProps, HasControlContextData {
|
|
6
|
-
|
|
7
|
-
modalOverlayClass: string;
|
|
4
|
+
import { CodeComponentMetaOverrides, HasControlContextData, Registerable, WithPlasmicCanvasComponentInfo } from "./utils";
|
|
5
|
+
export interface BaseModalProps extends ModalOverlayProps, WithPlasmicCanvasComponentInfo, HasControlContextData {
|
|
6
|
+
modalOverlayClass?: string;
|
|
8
7
|
resetClassName?: string;
|
|
9
8
|
children?: React.ReactNode;
|
|
10
9
|
className?: string;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Popover } from "react-aria-components";
|
|
3
|
-
import { CodeComponentMetaOverrides, HasControlContextData, Registerable } from "./utils";
|
|
3
|
+
import { CodeComponentMetaOverrides, HasControlContextData, Registerable, WithPlasmicCanvasComponentInfo } from "./utils";
|
|
4
4
|
import { WithVariants } from "./variant-utils";
|
|
5
5
|
declare const POPOVER_VARIANTS: ("placementLeft" | "placementRight" | "placementTop" | "placementBottom")[];
|
|
6
6
|
export interface BasePopoverControlContextData {
|
|
7
7
|
canMatchTriggerWidth?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export interface BasePopoverProps extends React.ComponentProps<typeof Popover>, WithVariants<typeof POPOVER_VARIANTS>, HasControlContextData<BasePopoverControlContextData> {
|
|
9
|
+
export interface BasePopoverProps extends React.ComponentProps<typeof Popover>, WithPlasmicCanvasComponentInfo, WithVariants<typeof POPOVER_VARIANTS>, HasControlContextData<BasePopoverControlContextData> {
|
|
10
10
|
className?: string;
|
|
11
11
|
resetClassName?: string;
|
|
12
12
|
children?: React.ReactNode;
|
package/dist/registerSelect.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { SelectProps, SelectValue } from "react-aria-components";
|
|
3
|
-
import { HasControlContextData, Registerable } from "./utils";
|
|
3
|
+
import { HasControlContextData, Registerable, WithPlasmicCanvasComponentInfo } from "./utils";
|
|
4
4
|
import { WithVariants } from "./variant-utils";
|
|
5
5
|
export interface BaseSelectValueProps extends React.ComponentProps<typeof SelectValue> {
|
|
6
6
|
children: React.ReactNode;
|
|
@@ -11,7 +11,7 @@ export interface BaseSelectControlContextData {
|
|
|
11
11
|
}
|
|
12
12
|
declare const SELECT_VARIANTS: ("disabled" | "focused" | "focusVisible")[];
|
|
13
13
|
export interface BaseSelectProps extends SelectProps<{}>, // NOTE: We don't need generic type here since we don't use items prop (that needs it). We just need to make the type checker happy
|
|
14
|
-
WithVariants<typeof SELECT_VARIANTS>, HasControlContextData<BaseSelectControlContextData> {
|
|
14
|
+
WithVariants<typeof SELECT_VARIANTS>, WithPlasmicCanvasComponentInfo, HasControlContextData<BaseSelectControlContextData> {
|
|
15
15
|
children?: React.ReactNode;
|
|
16
16
|
className?: string;
|
|
17
17
|
}
|
|
@@ -7,7 +7,7 @@ import { WithVariants } from "./variant-utils";
|
|
|
7
7
|
declare const SLIDER_TRACK_VARIANTS: "hovered"[];
|
|
8
8
|
export interface BaseSliderTrackProps extends React.ComponentProps<typeof SliderTrack>, WithVariants<typeof SLIDER_TRACK_VARIANTS> {
|
|
9
9
|
progressBar?: React.ReactNode;
|
|
10
|
-
children?: React.
|
|
10
|
+
children?: React.ReactNode;
|
|
11
11
|
}
|
|
12
12
|
export declare function BaseSliderTrack(props: BaseSliderTrackProps): React.JSX.Element;
|
|
13
13
|
export declare const SLIDER_TRACK_COMPONENT_NAME: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { TooltipProps } from "react-aria-components";
|
|
3
3
|
import { TooltipTriggerProps } from "react-stately";
|
|
4
|
-
import { CodeComponentMetaOverrides, Registerable } from "./utils";
|
|
4
|
+
import { CodeComponentMetaOverrides, Registerable, WithPlasmicCanvasComponentInfo } from "./utils";
|
|
5
5
|
import { WithVariants } from "./variant-utils";
|
|
6
6
|
declare const TOOLTIP_VARIANTS: ("placementLeft" | "placementRight" | "placementTop" | "placementBottom")[];
|
|
7
|
-
export interface BaseTooltipProps extends TooltipTriggerProps, TooltipProps, WithVariants<typeof TOOLTIP_VARIANTS> {
|
|
7
|
+
export interface BaseTooltipProps extends TooltipTriggerProps, TooltipProps, WithPlasmicCanvasComponentInfo, WithVariants<typeof TOOLTIP_VARIANTS> {
|
|
8
8
|
children: React.ReactElement<HTMLElement>;
|
|
9
9
|
tooltipContent?: React.ReactElement;
|
|
10
10
|
resetClassName?: string;
|
package/dist/utils.d.ts
CHANGED
|
@@ -4,6 +4,12 @@ import React from "react";
|
|
|
4
4
|
export type HasControlContextData<T = BaseControlContextData> = {
|
|
5
5
|
setControlContextData?: (ctxData: T) => void;
|
|
6
6
|
};
|
|
7
|
+
export type WithPlasmicCanvasComponentInfo = {
|
|
8
|
+
__plasmic_selection_prop__?: {
|
|
9
|
+
isSelected: boolean;
|
|
10
|
+
selectedSlotName?: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
7
13
|
export type BaseControlContextData = {
|
|
8
14
|
parent?: {
|
|
9
15
|
isDisabled?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/react-aria",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.105",
|
|
4
4
|
"description": "Plasmic registration calls for react-aria based components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -50,21 +50,31 @@
|
|
|
50
50
|
"@react-aria/utils": "^3.24.0",
|
|
51
51
|
"react-aria": "^3.33.0",
|
|
52
52
|
"react-aria-components": "^1.2.0",
|
|
53
|
+
"react-is": "^19.0.0",
|
|
53
54
|
"react-keyed-flatten-children": "^3.0.0",
|
|
54
55
|
"react-stately": "^3.31.0"
|
|
55
56
|
},
|
|
56
57
|
"devDependencies": {
|
|
57
|
-
"@plasmicapp/host": "1.0.
|
|
58
|
+
"@plasmicapp/host": "1.0.210",
|
|
58
59
|
"@rollup/plugin-commonjs": "^11.0.0",
|
|
59
60
|
"@rollup/plugin-json": "^4.0.0",
|
|
60
61
|
"@rollup/plugin-node-resolve": "^9.0.0",
|
|
62
|
+
"@storybook/addon-actions": "^8.5.3",
|
|
63
|
+
"@storybook/addon-interactions": "^8.5.3",
|
|
64
|
+
"@storybook/addon-webpack5-compiler-swc": "^2.0.0",
|
|
65
|
+
"@storybook/react": "^8.5.3",
|
|
66
|
+
"@storybook/react-webpack5": "^8.5.3",
|
|
67
|
+
"@storybook/test": "^8.5.3",
|
|
68
|
+
"@storybook/test-runner": "^0.21.0",
|
|
61
69
|
"@types/react": "^18.0.27",
|
|
62
70
|
"@types/react-dom": "^18.0.10",
|
|
71
|
+
"@types/react-is": "^19.0.0",
|
|
63
72
|
"glob": "^8.1.0",
|
|
64
73
|
"react": "^18.2.0",
|
|
65
74
|
"react-dom": "^18.2.0",
|
|
66
75
|
"rollup": "^3.10.1",
|
|
67
76
|
"rollup-plugin-esbuild": "^5.0.0",
|
|
77
|
+
"storybook": "^8.5.3",
|
|
68
78
|
"typescript": "^5"
|
|
69
79
|
},
|
|
70
80
|
"peerDependencies": {
|
|
@@ -74,5 +84,5 @@
|
|
|
74
84
|
"publishConfig": {
|
|
75
85
|
"access": "public"
|
|
76
86
|
},
|
|
77
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "cf0c3c591232c6bf68800c3367fe1611f83d8b1c"
|
|
78
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerButton.cjs.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import { usePlasmicLink } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { mergeProps, useFocusRing, useHover, useLink } from \"react-aria\";\nimport type { ButtonProps, LinkProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport {\n CodeComponentMetaOverrides,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst BUTTON_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n \"disabled\" as const,\n];\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(BUTTON_VARIANTS);\n\ntype CommonProps = { children: React.ReactNode } & Omit<\n ButtonProps,\n \"className\" | \"children\"\n> &\n Omit<LinkProps, \"className\" | \"children\">;\ntype LinkSpecificProps = Pick<LinkProps, \"href\" | \"target\">;\ntype ButtonSpecificProps = {\n resetsForm?: boolean;\n submitsForm?: boolean;\n};\n\ninterface BaseButtonProps\n extends CommonProps,\n LinkSpecificProps,\n ButtonSpecificProps,\n WithVariants<typeof BUTTON_VARIANTS> {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const BaseButton = React.forwardRef(function BaseButtonInner(\n props: BaseButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n) {\n const { href } = props;\n\n if (href) {\n return (\n <LinkButton\n props={props}\n ref={ref as React.RefObject<HTMLAnchorElement>}\n />\n );\n } else {\n const { submitsForm, resetsForm, children, plasmicUpdateVariant, ...rest } =\n props;\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n const buttonProps = mergeProps(rest, {\n type,\n style: COMMON_STYLES,\n ref: ref as React.Ref<HTMLButtonElement>,\n });\n\n return (\n <Button {...buttonProps}>\n {({ isHovered, isPressed, isFocused, isFocusVisible, isDisabled }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: isDisabled,\n },\n plasmicUpdateVariant\n )\n }\n </Button>\n );\n }\n});\n\nfunction LinkButton({\n props,\n ref,\n}: {\n props: BaseButtonProps;\n ref: React.RefObject<HTMLAnchorElement>;\n}) {\n const { href, children, plasmicUpdateVariant, ...rest } = props;\n const PlasmicLink = usePlasmicLink();\n const { linkProps, isPressed } = useLink(props, ref);\n const { hoverProps, isHovered } = useHover(props);\n const { focusProps, isFocused, isFocusVisible } = useFocusRing();\n\n const combinedLinkProps = mergeProps(linkProps, hoverProps, focusProps, {\n href,\n className: props.className,\n style: COMMON_STYLES,\n ref,\n });\n\n return (\n <PlasmicLink\n {...combinedLinkProps}\n data-focused={isFocused || undefined}\n data-hovered={isHovered || undefined}\n data-pressed={isPressed || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n >\n {withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: !!rest.isDisabled,\n },\n plasmicUpdateVariant\n )}\n </PlasmicLink>\n );\n}\n\nexport const BUTTON_COMPONENT_NAME = makeComponentName(\"button\");\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: BUTTON_COMPONENT_NAME,\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n variants,\n defaultStyles: {\n // Ensure consistent design across rendered elements (button, anchor tag).\n backgroundColor: \"#EFEFEF\",\n borderColor: \"black\",\n borderStyle: \"solid\",\n borderWidth: \"1px\",\n color: \"#000000\",\n cursor: \"pointer\",\n fontFamily: \"Arial\",\n fontSize: \"1rem\",\n lineHeight: \"1.2\",\n padding: \"2px 10px\",\n textDecorationLine: \"none\",\n },\n props: {\n ...getCommonProps<BaseButtonProps>(\"button\", [\n \"autoFocus\",\n \"isDisabled\",\n \"aria-label\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"text\",\n value: \"Button\",\n },\n },\n href: {\n type: \"href\",\n description:\n \"The URL this button navigates to. If present, this button is an <a> element.\",\n },\n target: {\n type: \"choice\",\n options: [\"_blank\", \"_self\", \"_parent\", \"_top\"],\n description:\n \"Same as target attribute of <a> element. Only applies when the href prop is present.\",\n hidden: (props) => !props.href,\n defaultValueHint: \"_self\",\n },\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.resetsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.submitsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n onPress: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onFocus: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","mergeProps","COMMON_STYLES","Button","usePlasmicLink","useLink","useHover","useFocusRing","makeComponentName","registerComponentHelper","getCommonProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerButton.cjs.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import { usePlasmicLink } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { mergeProps, useFocusRing, useHover, useLink } from \"react-aria\";\nimport type { ButtonProps, LinkProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport {\n CodeComponentMetaOverrides,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst BUTTON_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n \"disabled\" as const,\n];\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(BUTTON_VARIANTS);\n\ntype CommonProps = { children: React.ReactNode } & Omit<\n ButtonProps,\n \"className\" | \"children\"\n> &\n Omit<LinkProps, \"className\" | \"children\">;\ntype LinkSpecificProps = Pick<LinkProps, \"href\" | \"target\">;\ntype ButtonSpecificProps = {\n resetsForm?: boolean;\n submitsForm?: boolean;\n};\n\nexport interface BaseButtonProps\n extends CommonProps,\n LinkSpecificProps,\n ButtonSpecificProps,\n WithVariants<typeof BUTTON_VARIANTS> {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const BaseButton = React.forwardRef(function BaseButtonInner(\n props: BaseButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n) {\n const { href } = props;\n\n if (href) {\n return (\n <LinkButton\n props={props}\n ref={ref as React.RefObject<HTMLAnchorElement>}\n />\n );\n } else {\n const { submitsForm, resetsForm, children, plasmicUpdateVariant, ...rest } =\n props;\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n const buttonProps = mergeProps(rest, {\n type,\n style: COMMON_STYLES,\n ref: ref as React.Ref<HTMLButtonElement>,\n });\n\n return (\n <Button {...buttonProps}>\n {({ isHovered, isPressed, isFocused, isFocusVisible, isDisabled }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: isDisabled,\n },\n plasmicUpdateVariant\n )\n }\n </Button>\n );\n }\n});\n\nfunction LinkButton({\n props,\n ref,\n}: {\n props: BaseButtonProps;\n ref: React.RefObject<HTMLAnchorElement>;\n}) {\n const { href, children, plasmicUpdateVariant, ...rest } = props;\n const PlasmicLink = usePlasmicLink();\n const { linkProps, isPressed } = useLink(props, ref);\n const { hoverProps, isHovered } = useHover(props);\n const { focusProps, isFocused, isFocusVisible } = useFocusRing();\n\n const combinedLinkProps = mergeProps(linkProps, hoverProps, focusProps, {\n href,\n className: props.className,\n style: COMMON_STYLES,\n ref,\n });\n\n return (\n <PlasmicLink\n {...combinedLinkProps}\n data-focused={isFocused || undefined}\n data-hovered={isHovered || undefined}\n data-pressed={isPressed || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n >\n {withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: !!rest.isDisabled,\n },\n plasmicUpdateVariant\n )}\n </PlasmicLink>\n );\n}\n\nexport const BUTTON_COMPONENT_NAME = makeComponentName(\"button\");\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: BUTTON_COMPONENT_NAME,\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n variants,\n defaultStyles: {\n // Ensure consistent design across rendered elements (button, anchor tag).\n backgroundColor: \"#EFEFEF\",\n borderColor: \"black\",\n borderStyle: \"solid\",\n borderWidth: \"1px\",\n color: \"#000000\",\n cursor: \"pointer\",\n fontFamily: \"Arial\",\n fontSize: \"1rem\",\n lineHeight: \"1.2\",\n padding: \"2px 10px\",\n textDecorationLine: \"none\",\n },\n props: {\n ...getCommonProps<BaseButtonProps>(\"button\", [\n \"autoFocus\",\n \"isDisabled\",\n \"aria-label\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"text\",\n value: \"Button\",\n },\n },\n href: {\n type: \"href\",\n description:\n \"The URL this button navigates to. If present, this button is an <a> element.\",\n },\n target: {\n type: \"choice\",\n options: [\"_blank\", \"_self\", \"_parent\", \"_top\"],\n description:\n \"Same as target attribute of <a> element. Only applies when the href prop is present.\",\n hidden: (props) => !props.href,\n defaultValueHint: \"_self\",\n },\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.resetsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.submitsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n onPress: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onFocus: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","mergeProps","COMMON_STYLES","Button","usePlasmicLink","useLink","useHover","useFocusRing","makeComponentName","registerComponentHelper","getCommonProps"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ type ButtonSpecificProps = {
|
|
|
11
11
|
resetsForm?: boolean;
|
|
12
12
|
submitsForm?: boolean;
|
|
13
13
|
};
|
|
14
|
-
interface BaseButtonProps extends CommonProps, LinkSpecificProps, ButtonSpecificProps, WithVariants<typeof BUTTON_VARIANTS> {
|
|
14
|
+
export interface BaseButtonProps extends CommonProps, LinkSpecificProps, ButtonSpecificProps, WithVariants<typeof BUTTON_VARIANTS> {
|
|
15
15
|
children: React.ReactNode;
|
|
16
16
|
className?: string;
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerButton.esm.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import { usePlasmicLink } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { mergeProps, useFocusRing, useHover, useLink } from \"react-aria\";\nimport type { ButtonProps, LinkProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport {\n CodeComponentMetaOverrides,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst BUTTON_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n \"disabled\" as const,\n];\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(BUTTON_VARIANTS);\n\ntype CommonProps = { children: React.ReactNode } & Omit<\n ButtonProps,\n \"className\" | \"children\"\n> &\n Omit<LinkProps, \"className\" | \"children\">;\ntype LinkSpecificProps = Pick<LinkProps, \"href\" | \"target\">;\ntype ButtonSpecificProps = {\n resetsForm?: boolean;\n submitsForm?: boolean;\n};\n\ninterface BaseButtonProps\n extends CommonProps,\n LinkSpecificProps,\n ButtonSpecificProps,\n WithVariants<typeof BUTTON_VARIANTS> {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const BaseButton = React.forwardRef(function BaseButtonInner(\n props: BaseButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n) {\n const { href } = props;\n\n if (href) {\n return (\n <LinkButton\n props={props}\n ref={ref as React.RefObject<HTMLAnchorElement>}\n />\n );\n } else {\n const { submitsForm, resetsForm, children, plasmicUpdateVariant, ...rest } =\n props;\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n const buttonProps = mergeProps(rest, {\n type,\n style: COMMON_STYLES,\n ref: ref as React.Ref<HTMLButtonElement>,\n });\n\n return (\n <Button {...buttonProps}>\n {({ isHovered, isPressed, isFocused, isFocusVisible, isDisabled }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: isDisabled,\n },\n plasmicUpdateVariant\n )\n }\n </Button>\n );\n }\n});\n\nfunction LinkButton({\n props,\n ref,\n}: {\n props: BaseButtonProps;\n ref: React.RefObject<HTMLAnchorElement>;\n}) {\n const { href, children, plasmicUpdateVariant, ...rest } = props;\n const PlasmicLink = usePlasmicLink();\n const { linkProps, isPressed } = useLink(props, ref);\n const { hoverProps, isHovered } = useHover(props);\n const { focusProps, isFocused, isFocusVisible } = useFocusRing();\n\n const combinedLinkProps = mergeProps(linkProps, hoverProps, focusProps, {\n href,\n className: props.className,\n style: COMMON_STYLES,\n ref,\n });\n\n return (\n <PlasmicLink\n {...combinedLinkProps}\n data-focused={isFocused || undefined}\n data-hovered={isHovered || undefined}\n data-pressed={isPressed || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n >\n {withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: !!rest.isDisabled,\n },\n plasmicUpdateVariant\n )}\n </PlasmicLink>\n );\n}\n\nexport const BUTTON_COMPONENT_NAME = makeComponentName(\"button\");\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: BUTTON_COMPONENT_NAME,\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n variants,\n defaultStyles: {\n // Ensure consistent design across rendered elements (button, anchor tag).\n backgroundColor: \"#EFEFEF\",\n borderColor: \"black\",\n borderStyle: \"solid\",\n borderWidth: \"1px\",\n color: \"#000000\",\n cursor: \"pointer\",\n fontFamily: \"Arial\",\n fontSize: \"1rem\",\n lineHeight: \"1.2\",\n padding: \"2px 10px\",\n textDecorationLine: \"none\",\n },\n props: {\n ...getCommonProps<BaseButtonProps>(\"button\", [\n \"autoFocus\",\n \"isDisabled\",\n \"aria-label\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"text\",\n value: \"Button\",\n },\n },\n href: {\n type: \"href\",\n description:\n \"The URL this button navigates to. If present, this button is an <a> element.\",\n },\n target: {\n type: \"choice\",\n options: [\"_blank\", \"_self\", \"_parent\", \"_top\"],\n description:\n \"Same as target attribute of <a> element. Only applies when the href prop is present.\",\n hidden: (props) => !props.href,\n defaultValueHint: \"_self\",\n },\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.resetsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.submitsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n onPress: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onFocus: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerButton.esm.js","sources":["../src/registerButton.tsx"],"sourcesContent":["import { usePlasmicLink } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { mergeProps, useFocusRing, useHover, useLink } from \"react-aria\";\nimport type { ButtonProps, LinkProps } from \"react-aria-components\";\nimport { Button } from \"react-aria-components\";\nimport { COMMON_STYLES, getCommonProps } from \"./common\";\nimport {\n CodeComponentMetaOverrides,\n makeComponentName,\n Registerable,\n registerComponentHelper,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\nconst BUTTON_VARIANTS = [\n \"hovered\" as const,\n \"pressed\" as const,\n \"focused\" as const,\n \"focusVisible\" as const,\n \"disabled\" as const,\n];\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(BUTTON_VARIANTS);\n\ntype CommonProps = { children: React.ReactNode } & Omit<\n ButtonProps,\n \"className\" | \"children\"\n> &\n Omit<LinkProps, \"className\" | \"children\">;\ntype LinkSpecificProps = Pick<LinkProps, \"href\" | \"target\">;\ntype ButtonSpecificProps = {\n resetsForm?: boolean;\n submitsForm?: boolean;\n};\n\nexport interface BaseButtonProps\n extends CommonProps,\n LinkSpecificProps,\n ButtonSpecificProps,\n WithVariants<typeof BUTTON_VARIANTS> {\n children: React.ReactNode;\n className?: string;\n}\n\nexport const BaseButton = React.forwardRef(function BaseButtonInner(\n props: BaseButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>\n) {\n const { href } = props;\n\n if (href) {\n return (\n <LinkButton\n props={props}\n ref={ref as React.RefObject<HTMLAnchorElement>}\n />\n );\n } else {\n const { submitsForm, resetsForm, children, plasmicUpdateVariant, ...rest } =\n props;\n const type = submitsForm ? \"submit\" : resetsForm ? \"reset\" : \"button\";\n\n const buttonProps = mergeProps(rest, {\n type,\n style: COMMON_STYLES,\n ref: ref as React.Ref<HTMLButtonElement>,\n });\n\n return (\n <Button {...buttonProps}>\n {({ isHovered, isPressed, isFocused, isFocusVisible, isDisabled }) =>\n withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: isDisabled,\n },\n plasmicUpdateVariant\n )\n }\n </Button>\n );\n }\n});\n\nfunction LinkButton({\n props,\n ref,\n}: {\n props: BaseButtonProps;\n ref: React.RefObject<HTMLAnchorElement>;\n}) {\n const { href, children, plasmicUpdateVariant, ...rest } = props;\n const PlasmicLink = usePlasmicLink();\n const { linkProps, isPressed } = useLink(props, ref);\n const { hoverProps, isHovered } = useHover(props);\n const { focusProps, isFocused, isFocusVisible } = useFocusRing();\n\n const combinedLinkProps = mergeProps(linkProps, hoverProps, focusProps, {\n href,\n className: props.className,\n style: COMMON_STYLES,\n ref,\n });\n\n return (\n <PlasmicLink\n {...combinedLinkProps}\n data-focused={isFocused || undefined}\n data-hovered={isHovered || undefined}\n data-pressed={isPressed || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={props.isDisabled || undefined}\n >\n {withObservedValues(\n children,\n {\n hovered: isHovered,\n pressed: isPressed,\n focused: isFocused,\n focusVisible: isFocusVisible,\n disabled: !!rest.isDisabled,\n },\n plasmicUpdateVariant\n )}\n </PlasmicLink>\n );\n}\n\nexport const BUTTON_COMPONENT_NAME = makeComponentName(\"button\");\n\nexport function registerButton(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseButton>\n) {\n registerComponentHelper(\n loader,\n BaseButton,\n {\n name: BUTTON_COMPONENT_NAME,\n displayName: \"Aria Button\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerButton\",\n importName: \"BaseButton\",\n variants,\n defaultStyles: {\n // Ensure consistent design across rendered elements (button, anchor tag).\n backgroundColor: \"#EFEFEF\",\n borderColor: \"black\",\n borderStyle: \"solid\",\n borderWidth: \"1px\",\n color: \"#000000\",\n cursor: \"pointer\",\n fontFamily: \"Arial\",\n fontSize: \"1rem\",\n lineHeight: \"1.2\",\n padding: \"2px 10px\",\n textDecorationLine: \"none\",\n },\n props: {\n ...getCommonProps<BaseButtonProps>(\"button\", [\n \"autoFocus\",\n \"isDisabled\",\n \"aria-label\",\n ]),\n children: {\n type: \"slot\",\n mergeWithParent: true,\n defaultValue: {\n type: \"text\",\n value: \"Button\",\n },\n },\n href: {\n type: \"href\",\n description:\n \"The URL this button navigates to. If present, this button is an <a> element.\",\n },\n target: {\n type: \"choice\",\n options: [\"_blank\", \"_self\", \"_parent\", \"_top\"],\n description:\n \"Same as target attribute of <a> element. Only applies when the href prop is present.\",\n hidden: (props) => !props.href,\n defaultValueHint: \"_self\",\n },\n submitsForm: {\n type: \"boolean\",\n displayName: \"Submits form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.resetsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should submit the enclosing form.\",\n advanced: true,\n },\n resetsForm: {\n type: \"boolean\",\n displayName: \"Resets form?\",\n defaultValueHint: false,\n hidden: (props) => Boolean(props.submitsForm) || Boolean(props.href),\n description:\n \"Whether clicking this button should reset the enclosing form.\",\n advanced: true,\n },\n onPress: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onFocus: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
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-b3b54c72.cjs.js');
|
|
12
|
+
require('./utils-7d000fa4.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
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
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-ceebbaea.esm.js';
|
|
8
|
+
import './utils-5d1b4c6b.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
|