@plasmicpkgs/react-aria 0.0.109 → 0.0.111
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 +173 -105
- package/dist/react-aria.esm.js.map +1 -1
- package/dist/react-aria.js +170 -102
- package/dist/react-aria.js.map +1 -1
- package/dist/registerTooltip.d.ts +3 -1
- package/package.json +2 -2
- package/skinny/registerDialogTrigger.cjs.js +2 -2
- package/skinny/registerDialogTrigger.cjs.js.map +1 -1
- package/skinny/registerDialogTrigger.esm.js +2 -2
- package/skinny/registerDialogTrigger.esm.js.map +1 -1
- package/skinny/registerDialogTrigger.stories.cjs.js +2 -19
- package/skinny/registerDialogTrigger.stories.cjs.js.map +1 -1
- package/skinny/registerDialogTrigger.stories.esm.js +2 -19
- package/skinny/registerDialogTrigger.stories.esm.js.map +1 -1
- package/skinny/registerModal.cjs.js +1 -1
- package/skinny/registerModal.cjs.js.map +1 -1
- package/skinny/registerModal.esm.js +1 -1
- package/skinny/registerModal.esm.js.map +1 -1
- package/skinny/registerSelect.cjs.js +2 -0
- package/skinny/registerSelect.cjs.js.map +1 -1
- package/skinny/registerSelect.esm.js +2 -0
- package/skinny/registerSelect.esm.js.map +1 -1
- package/skinny/registerSelect.stories.cjs.js +39 -0
- package/skinny/registerSelect.stories.cjs.js.map +1 -1
- package/skinny/registerSelect.stories.esm.js +38 -1
- package/skinny/registerSelect.stories.esm.js.map +1 -1
- package/skinny/registerSlider.stories.cjs.js +16 -35
- package/skinny/registerSlider.stories.cjs.js.map +1 -1
- package/skinny/registerSlider.stories.esm.js +17 -37
- package/skinny/registerSlider.stories.esm.js.map +1 -1
- package/skinny/registerSliderTrack.cjs.js +6 -4
- package/skinny/registerSliderTrack.cjs.js.map +1 -1
- package/skinny/registerSliderTrack.esm.js +7 -5
- package/skinny/registerSliderTrack.esm.js.map +1 -1
- package/skinny/registerTooltip.cjs.js +111 -47
- package/skinny/registerTooltip.cjs.js.map +1 -1
- package/skinny/registerTooltip.d.ts +3 -1
- package/skinny/registerTooltip.esm.js +115 -51
- package/skinny/registerTooltip.esm.js.map +1 -1
- package/skinny/registerTooltip.stories.cjs.js +282 -24
- package/skinny/registerTooltip.stories.cjs.js.map +1 -1
- package/skinny/registerTooltip.stories.esm.js +278 -26
- package/skinny/registerTooltip.stories.esm.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerSlider.stories.esm.js","sources":["../src/registerSlider.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, userEvent, within } from \"@storybook/test\";\nimport React, { useState } from \"react\";\nimport { BaseLabel } from \"./registerLabel\";\nimport { BaseSlider } from \"./registerSlider\";\nimport { BaseSliderOutput } from \"./registerSliderOutput\";\nimport { BaseSliderThumb } from \"./registerSliderThumb\";\nimport { BaseSliderTrack } from \"./registerSliderTrack\";\n\n// Single value slider meta\nconst meta: Meta<typeof BaseSlider<number>> = {\n title: \"Components/BaseSlider\",\n component: BaseSlider,\n args: {\n onChange: fn(),\n onChangeEnd: fn(),\n minValue: 0,\n maxValue: 100,\n step: 1,\n orientation: \"horizontal\" as const,\n },\n // TODO: Currently, the BaseSlider's defaultValue prop is not handled correctly inside BaseSliderTrack, i.e. it can't be uncontrolled\n // The render function below assigns the defaultValue prop to the value prop - its needed to keep the BaseSlider controlled\n // This render function needs to be removed in the PR that fixes the handling of defaultValue in BaseSliderTrack.\n render: (args) => {\n const [value, setValue] = useState(args.defaultValue);\n return (\n <BaseSlider\n {...args}\n value={value}\n onChange={(newValue) => {\n setValue(newValue);\n args.onChange?.(newValue);\n }}\n />\n );\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseSlider<number>>;\n\n// TODO: Currently, BaseSliderTrack does not render any thumbs if there is no value/default value prop\n// The test below needs to be uncommented in the PR that fixes the issue\n// Basic slider with no initial value\n// export const Basic: Story = {\n// args: {\n// step: 5,\n// children: (\n// <>\n// <BaseLabel>Slider label</BaseLabel>\n// <BaseSliderOutput>Output</BaseSliderOutput>\n// <BaseSliderTrack>\n// <BaseSliderThumb autoFocus className={\"thumb-1\"} />\n// </BaseSliderTrack>\n// </>\n// ),\n// },\n// play: async ({ canvasElement, args }) => {\n// const canvas = within(canvasElement);\n// const slider = canvas.getByRole(\"group\");\n// const label = within(slider).getByText(\"Slider label\");\n// const thumbs = slider.getElementsByTagName(\"input\");\n// expect(thumbs).toHaveLength(1);\n\n// await userEvent.click(label); // Focus on the slider thumb\n// await userEvent.keyboard(\"{ArrowRight}\"); // Move to the right\n\n// expect(args.onChange).toHaveBeenCalledWith([5]); // defaults to range slider if no value/defaultValue is provided (that's the default react-aria slider component behaviour)\n// expect(args.onChangeEnd).toHaveBeenCalledOnce();\n// },\n// };\n\n// Basic slider with no initial value\nexport const WithDefaultValue: Story = {\n args: {\n step: 5,\n defaultValue: 22,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n expect(thumbs).toHaveLength(1);\n\n await userEvent.click(label); // Focus on the slider thumb\n await userEvent.keyboard(\"{ArrowRight}\"); // Move to the right\n\n expect(args.onChange).toHaveBeenCalledWith(25);\n expect(args.onChangeEnd).toHaveBeenCalledOnce();\n },\n};\n\n// // Disabled slider\nexport const Disabled: Story = {\n args: {\n step: 5,\n defaultValue: 22,\n isDisabled: true,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n expect(thumbs).toHaveLength(1);\n\n await userEvent.click(label); // Focus on the slider thumb\n await userEvent.keyboard(\"{ArrowRight}\"); // Move to the right\n\n expect(args.onChange).not.toHaveBeenCalled();\n expect(args.onChangeEnd).not.toHaveBeenCalled();\n },\n};\n\n// Range slider specific stories\ntype RangeStory = StoryObj<typeof BaseSlider<number[]>>;\n\nexport const RangeSlider: RangeStory = {\n args: {\n defaultValue: [20, 80],\n step: 10,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n <BaseSliderThumb className={\"thumb-2\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n\n expect(thumbs).toHaveLength(2);\n\n expect(slider.querySelector(\".thumb-1\")).toBeInTheDocument();\n expect(slider.querySelector(\".thumb-2\")).toBeInTheDocument();\n\n await userEvent.click(label);\n await userEvent.keyboard(\"{ArrowLeft}\");\n expect(args.onChange).toHaveBeenCalledWith([10, 80]);\n await userEvent.tab();\n await userEvent.keyboard(\"{ArrowRight}\");\n\n expect(args.onChange).toHaveBeenCalledWith([10, 90]);\n },\n};\n\nexport const TooFewThumbs: RangeStory = {\n args: {\n defaultValue: [20, 47, 80],\n step: 10,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n <BaseSliderThumb className={\"thumb-2\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n\n expect(thumbs).toHaveLength(3);\n\n expect(slider.querySelectorAll(\".thumb-1\")).toHaveLength(1);\n expect(slider.querySelectorAll(\".thumb-2\")).toHaveLength(2);\n\n await userEvent.click(label);\n await userEvent.keyboard(\"{ArrowLeft}\");\n expect(args.onChange).toHaveBeenCalledWith([10, 50, 80]); // all values adjusted to the step (47 -> 50)\n\n await userEvent.tab();\n await userEvent.keyboard(\"{ArrowRight}\");\n\n expect(args.onChange).toHaveBeenCalledWith([10, 60, 80]);\n },\n};\n\nexport const TooManyThumbs: RangeStory = {\n args: {\n defaultValue: [20, 80],\n step: 10,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Range: 20-80</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n <BaseSliderThumb className={\"thumb-2\"} />\n <BaseSliderThumb className={\"thumb-3\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n\n expect(thumbs).toHaveLength(2);\n\n expect(slider.querySelectorAll(\".thumb-1\")).toHaveLength(1);\n expect(slider.querySelectorAll(\".thumb-2\")).toHaveLength(1);\n expect(slider.querySelectorAll(\".thumb-3\")).toHaveLength(0); // unused, because there are 3 thumbs but only 2 values\n\n await userEvent.click(label);\n await userEvent.keyboard(\"{ArrowLeft}\");\n expect(args.onChange).toHaveBeenCalledWith([10, 80]);\n\n await userEvent.tab();\n await userEvent.keyboard(\"{ArrowRight}\");\n\n expect(args.onChange).toHaveBeenCalledWith([10, 90]);\n },\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerSlider.stories.esm.js","sources":["../src/registerSlider.stories.tsx"],"sourcesContent":["import type { Meta, StoryObj } from \"@storybook/react\";\nimport { expect, fn, userEvent, within } from \"@storybook/test\";\nimport React from \"react\";\nimport { BaseLabel } from \"./registerLabel\";\nimport { BaseSlider } from \"./registerSlider\";\nimport { BaseSliderOutput } from \"./registerSliderOutput\";\nimport { BaseSliderThumb } from \"./registerSliderThumb\";\nimport { BaseSliderTrack } from \"./registerSliderTrack\";\n\n// Single value slider meta\nconst meta: Meta<typeof BaseSlider<number>> = {\n title: \"Components/BaseSlider\",\n component: BaseSlider,\n args: {\n onChange: fn(),\n onChangeEnd: fn(),\n minValue: 0,\n maxValue: 100,\n step: 1,\n orientation: \"horizontal\" as const,\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof BaseSlider<number>>;\n\n// Basic slider with no initial value\nexport const Basic: Story = {\n args: {\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb autoFocus className={\"thumb-1\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n expect(thumbs).toHaveLength(1);\n\n await userEvent.click(label); // Focus on the slider thumb\n await userEvent.keyboard(\"{ArrowRight}\"); // Move to the right\n\n expect(args.onChange).toHaveBeenCalledWith([1]); // defaults to range slider if no value/defaultValue is provided (that's the default react-aria slider component behaviour)\n expect(args.onChangeEnd).toHaveBeenCalledOnce();\n },\n};\n\n// Basic slider with no initial value\nexport const WithDefaultValue: Story = {\n args: {\n step: 5,\n defaultValue: 22,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n expect(thumbs).toHaveLength(1);\n\n await userEvent.click(label); // Focus on the slider thumb\n await userEvent.keyboard(\"{ArrowRight}\"); // Move to the right\n\n expect(args.onChange).toHaveBeenCalledWith(25);\n expect(args.onChangeEnd).toHaveBeenCalledOnce();\n },\n};\n\n// // Disabled slider\nexport const Disabled: Story = {\n args: {\n step: 5,\n defaultValue: 22,\n isDisabled: true,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n expect(thumbs).toHaveLength(1);\n\n await userEvent.click(label); // Focus on the slider thumb\n await userEvent.keyboard(\"{ArrowRight}\"); // Move to the right\n\n expect(args.onChange).not.toHaveBeenCalled();\n expect(args.onChangeEnd).not.toHaveBeenCalled();\n },\n};\n\n// Range slider specific stories\ntype RangeStory = StoryObj<typeof BaseSlider<number[]>>;\n\nexport const RangeSlider: RangeStory = {\n args: {\n defaultValue: [20, 80],\n step: 10,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n <BaseSliderThumb className={\"thumb-2\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n\n expect(thumbs).toHaveLength(2);\n\n expect(slider.querySelector(\".thumb-1\")).toBeInTheDocument();\n expect(slider.querySelector(\".thumb-2\")).toBeInTheDocument();\n\n await userEvent.click(label);\n await userEvent.keyboard(\"{ArrowLeft}\");\n expect(args.onChange).toHaveBeenCalledWith([10, 80]);\n await userEvent.tab();\n await userEvent.keyboard(\"{ArrowRight}\");\n\n expect(args.onChange).toHaveBeenCalledWith([10, 90]);\n },\n};\n\nexport const TooFewThumbs: RangeStory = {\n args: {\n defaultValue: [20, 47, 80],\n step: 10,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Output</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n <BaseSliderThumb className={\"thumb-2\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n\n expect(thumbs).toHaveLength(3);\n\n expect(slider.querySelectorAll(\".thumb-1\")).toHaveLength(1);\n expect(slider.querySelectorAll(\".thumb-2\")).toHaveLength(2);\n\n await userEvent.click(label);\n await userEvent.keyboard(\"{ArrowLeft}\");\n expect(args.onChange).toHaveBeenCalledWith([10, 50, 80]); // all values adjusted to the step (47 -> 50)\n\n await userEvent.tab();\n await userEvent.keyboard(\"{ArrowRight}\");\n\n expect(args.onChange).toHaveBeenCalledWith([10, 60, 80]);\n },\n};\n\nexport const TooManyThumbs: RangeStory = {\n args: {\n defaultValue: [20, 80],\n step: 10,\n children: (\n <>\n <BaseLabel>Slider label</BaseLabel>\n <BaseSliderOutput>Range: 20-80</BaseSliderOutput>\n <BaseSliderTrack>\n <BaseSliderThumb className={\"thumb-1\"} />\n <BaseSliderThumb className={\"thumb-2\"} />\n <BaseSliderThumb className={\"thumb-3\"} />\n </BaseSliderTrack>\n </>\n ),\n },\n play: async ({ canvasElement, args }) => {\n const canvas = within(canvasElement);\n const slider = canvas.getByRole(\"group\");\n const label = within(slider).getByText(\"Slider label\");\n const thumbs = slider.getElementsByTagName(\"input\");\n\n expect(thumbs).toHaveLength(2);\n\n expect(slider.querySelectorAll(\".thumb-1\")).toHaveLength(1);\n expect(slider.querySelectorAll(\".thumb-2\")).toHaveLength(1);\n expect(slider.querySelectorAll(\".thumb-3\")).toHaveLength(0); // unused, because there are 3 thumbs but only 2 values\n\n await userEvent.click(label);\n await userEvent.keyboard(\"{ArrowLeft}\");\n expect(args.onChange).toHaveBeenCalledWith([10, 80]);\n\n await userEvent.tab();\n await userEvent.keyboard(\"{ArrowRight}\");\n\n expect(args.onChange).toHaveBeenCalledWith([10, 90]);\n },\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -51,10 +51,12 @@ function isMultiValueGuard(value) {
|
|
|
51
51
|
return Array.isArray(value) && value.length > 1;
|
|
52
52
|
}
|
|
53
53
|
function BaseSliderTrack(props) {
|
|
54
|
+
var _b;
|
|
54
55
|
const context = React__default.default.useContext(contexts.PlasmicSliderContext);
|
|
55
56
|
const isStandalone = !context;
|
|
56
57
|
const _a = props, { children, progressBar, plasmicUpdateVariant } = _a, rest = __objRest(_a, ["children", "progressBar", "plasmicUpdateVariant"]);
|
|
57
|
-
const
|
|
58
|
+
const value = (_b = context == null ? void 0 : context.value) != null ? _b : context == null ? void 0 : context.defaultValue;
|
|
59
|
+
const thumbsLength = isMultiValueGuard(value) ? value.length : 1;
|
|
58
60
|
const isMultiValue = thumbsLength > 1;
|
|
59
61
|
const { minIndex, maxIndex } = React.useMemo(() => {
|
|
60
62
|
if (thumbsLength <= 1) {
|
|
@@ -64,10 +66,10 @@ function BaseSliderTrack(props) {
|
|
|
64
66
|
}, [thumbsLength]);
|
|
65
67
|
const thumbs = React.useMemo(() => {
|
|
66
68
|
const thumbNodes = flattenChildren__default.default(children);
|
|
67
|
-
if (!thumbNodes || thumbNodes.length === 0
|
|
69
|
+
if (!thumbNodes || thumbNodes.length === 0) {
|
|
68
70
|
return [];
|
|
69
71
|
}
|
|
70
|
-
const values = utils.isDefined(context) ? Array.isArray(
|
|
72
|
+
const values = utils.isDefined(context) ? Array.isArray(value) ? value : [value] : [];
|
|
71
73
|
const lastThumb = thumbNodes[thumbNodes.length - 1];
|
|
72
74
|
return values.map((v, i) => {
|
|
73
75
|
const currentThumb = thumbNodes[i];
|
|
@@ -85,7 +87,7 @@ function BaseSliderTrack(props) {
|
|
|
85
87
|
index: i
|
|
86
88
|
});
|
|
87
89
|
});
|
|
88
|
-
}, [children,
|
|
90
|
+
}, [children, value]);
|
|
89
91
|
const track = /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.SliderTrack, __spreadValues({ style: { position: "relative" } }, rest), ({ state, isHovered }) => /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, withObservedValues(
|
|
90
92
|
/* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(
|
|
91
93
|
"div",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerSliderTrack.cjs.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport flattenChildren from \"react-keyed-flatten-children\";\nimport { COMMON_STYLES } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants, withObservedValues } = pickAriaComponentVariants(\n SLIDER_TRACK_VARIANTS\n);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n\n const thumbsLength =\n context && isMultiValueGuard(context.value) ? context.value.length : 1;\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0 || !isDefined(context?.value)) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(context.value)\n ? context.value\n : [context.value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, context?.value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n {withObservedValues(\n <>\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>,\n {\n hovered: isHovered,\n },\n plasmicUpdateVariant\n )}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicSliderContext","useMemo","flattenChildren","isDefined","SliderTrack","Slider","COMMON_STYLES","makeComponentName","registerComponentHelper"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerSliderTrack.cjs.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport flattenChildren from \"react-keyed-flatten-children\";\nimport { COMMON_STYLES } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants, withObservedValues } = pickAriaComponentVariants(\n SLIDER_TRACK_VARIANTS\n);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n const value = context?.value ?? context?.defaultValue;\n const thumbsLength = isMultiValueGuard(value) ? value.length : 1;\n\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(value)\n ? value\n : [value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n {withObservedValues(\n <>\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>,\n {\n hovered: isHovered,\n },\n plasmicUpdateVariant\n )}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","PlasmicSliderContext","useMemo","flattenChildren","isDefined","SliderTrack","Slider","COMMON_STYLES","makeComponentName","registerComponentHelper"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { SliderTrack, Slider } from 'react-aria-components';
|
|
|
3
3
|
import flattenChildren from 'react-keyed-flatten-children';
|
|
4
4
|
import { C as COMMON_STYLES } from './common-ceebbaea.esm.js';
|
|
5
5
|
import { f as PlasmicSliderContext } from './contexts-5cb81c2f.esm.js';
|
|
6
|
-
import {
|
|
6
|
+
import { m as makeComponentName, r as registerComponentHelper, i as isDefined } from './utils-5d1b4c6b.esm.js';
|
|
7
7
|
import { p as pickAriaComponentVariants } from './variant-utils-4405ebb0.esm.js';
|
|
8
8
|
import '@plasmicapp/host';
|
|
9
9
|
import '@plasmicapp/host/registerComponent';
|
|
@@ -44,10 +44,12 @@ function isMultiValueGuard(value) {
|
|
|
44
44
|
return Array.isArray(value) && value.length > 1;
|
|
45
45
|
}
|
|
46
46
|
function BaseSliderTrack(props) {
|
|
47
|
+
var _b;
|
|
47
48
|
const context = React.useContext(PlasmicSliderContext);
|
|
48
49
|
const isStandalone = !context;
|
|
49
50
|
const _a = props, { children, progressBar, plasmicUpdateVariant } = _a, rest = __objRest(_a, ["children", "progressBar", "plasmicUpdateVariant"]);
|
|
50
|
-
const
|
|
51
|
+
const value = (_b = context == null ? void 0 : context.value) != null ? _b : context == null ? void 0 : context.defaultValue;
|
|
52
|
+
const thumbsLength = isMultiValueGuard(value) ? value.length : 1;
|
|
51
53
|
const isMultiValue = thumbsLength > 1;
|
|
52
54
|
const { minIndex, maxIndex } = useMemo(() => {
|
|
53
55
|
if (thumbsLength <= 1) {
|
|
@@ -57,10 +59,10 @@ function BaseSliderTrack(props) {
|
|
|
57
59
|
}, [thumbsLength]);
|
|
58
60
|
const thumbs = useMemo(() => {
|
|
59
61
|
const thumbNodes = flattenChildren(children);
|
|
60
|
-
if (!thumbNodes || thumbNodes.length === 0
|
|
62
|
+
if (!thumbNodes || thumbNodes.length === 0) {
|
|
61
63
|
return [];
|
|
62
64
|
}
|
|
63
|
-
const values = isDefined(context) ? Array.isArray(
|
|
65
|
+
const values = isDefined(context) ? Array.isArray(value) ? value : [value] : [];
|
|
64
66
|
const lastThumb = thumbNodes[thumbNodes.length - 1];
|
|
65
67
|
return values.map((v, i) => {
|
|
66
68
|
const currentThumb = thumbNodes[i];
|
|
@@ -78,7 +80,7 @@ function BaseSliderTrack(props) {
|
|
|
78
80
|
index: i
|
|
79
81
|
});
|
|
80
82
|
});
|
|
81
|
-
}, [children,
|
|
83
|
+
}, [children, value]);
|
|
82
84
|
const track = /* @__PURE__ */ React.createElement(SliderTrack, __spreadValues({ style: { position: "relative" } }, rest), ({ state, isHovered }) => /* @__PURE__ */ React.createElement(React.Fragment, null, withObservedValues(
|
|
83
85
|
/* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
84
86
|
"div",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerSliderTrack.esm.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport flattenChildren from \"react-keyed-flatten-children\";\nimport { COMMON_STYLES } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants, withObservedValues } = pickAriaComponentVariants(\n SLIDER_TRACK_VARIANTS\n);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n\n const thumbsLength =\n context && isMultiValueGuard(context.value) ? context.value.length : 1;\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0 || !isDefined(context?.value)) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(context.value)\n ? context.value\n : [context.value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, context?.value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n {withObservedValues(\n <>\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>,\n {\n hovered: isHovered,\n },\n plasmicUpdateVariant\n )}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerSliderTrack.esm.js","sources":["../src/registerSliderTrack.tsx"],"sourcesContent":["import { CodeComponentMeta } from \"@plasmicapp/host\";\nimport React, { useMemo } from \"react\";\nimport { Slider, SliderThumbProps, SliderTrack } from \"react-aria-components\";\nimport flattenChildren from \"react-keyed-flatten-children\";\nimport { COMMON_STYLES } from \"./common\";\nimport { PlasmicSliderContext } from \"./contexts\";\nimport { BaseSliderThumbProps } from \"./registerSliderThumb\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n isDefined,\n makeComponentName,\n registerComponentHelper,\n} from \"./utils\";\nimport { WithVariants, pickAriaComponentVariants } from \"./variant-utils\";\n\nconst SLIDER_TRACK_VARIANTS = [\"hovered\" as const];\n\nconst { variants, withObservedValues } = pickAriaComponentVariants(\n SLIDER_TRACK_VARIANTS\n);\n\nexport interface BaseSliderTrackProps\n extends React.ComponentProps<typeof SliderTrack>,\n WithVariants<typeof SLIDER_TRACK_VARIANTS> {\n progressBar?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nfunction isMultiValueGuard(value?: number | number[]): value is number[] {\n return Array.isArray(value) && value.length > 1;\n}\n\nexport function BaseSliderTrack(props: BaseSliderTrackProps) {\n const context = React.useContext(PlasmicSliderContext);\n const isStandalone = !context;\n const { children, progressBar, plasmicUpdateVariant, ...rest } = props;\n const value = context?.value ?? context?.defaultValue;\n const thumbsLength = isMultiValueGuard(value) ? value.length : 1;\n\n const isMultiValue = thumbsLength > 1;\n\n const { minIndex, maxIndex } = useMemo(() => {\n if (thumbsLength <= 1) {\n return { minIndex: 0, maxIndex: 0 };\n }\n return { minIndex: 0, maxIndex: thumbsLength - 1 };\n }, [thumbsLength]);\n\n /**\n * Generates the thumb components based on the number of thumbs\n * and the number of values in the slider\n *\n * If the number of thumbs is less than the number of values, then\n * the last thumb is repeated for the remaining values\n *\n * If the number of thumbs is greater than the number of values, then\n * the additional thumbs are omitted\n */\n const thumbs = useMemo(() => {\n const thumbNodes = flattenChildren(children);\n if (!thumbNodes || thumbNodes.length === 0) {\n return [];\n }\n\n const values = isDefined(context)\n ? Array.isArray(value)\n ? value\n : [value]\n : [];\n\n // Last thumb be re-used if the number of thumbs is less than the number of values\n const lastThumb = thumbNodes[thumbNodes.length - 1];\n\n return values.map((v, i) => {\n const currentThumb = thumbNodes[i];\n // Re-use the last thumb if there are no more thumbs left ( this is for ease of use - the user can just add one more value to the initial-values array and see another thumb right away, without having to explicitly add a new thumb component )\n if (i >= thumbNodes.length) {\n if (React.isValidElement(lastThumb)) {\n return React.cloneElement(lastThumb, {\n index: i,\n } as SliderThumbProps);\n }\n }\n if (!React.isValidElement(currentThumb)) {\n return null;\n }\n return React.cloneElement(currentThumb, {\n index: i,\n } as SliderThumbProps);\n });\n }, [children, value]);\n\n const track = (\n <SliderTrack style={{ position: \"relative\" }} {...rest}>\n {({ state, isHovered }) => (\n <>\n {withObservedValues(\n <>\n <div\n style={{\n width: `${\n (!isMultiValue\n ? state.getThumbPercent(minIndex)\n : state.getThumbPercent(maxIndex) -\n state.getThumbPercent(minIndex)) * 100\n }%`,\n height: \"100%\",\n position: \"absolute\",\n top: 0,\n left: !isMultiValue\n ? 0\n : state.getThumbPercent(minIndex) * 100 + \"%\",\n }}\n >\n {progressBar}\n </div>\n {thumbs}\n </>,\n {\n hovered: isHovered,\n },\n plasmicUpdateVariant\n )}\n </>\n )}\n </SliderTrack>\n );\n\n if (isStandalone) {\n return (\n <Slider style={{ height: \"100%\", width: \"100%\", ...COMMON_STYLES }}>\n {track}\n </Slider>\n );\n }\n\n return track;\n}\n\nexport const SLIDER_TRACK_COMPONENT_NAME = makeComponentName(\"sliderTrack\");\n\nexport function registerSliderTrack(\n sliderThumbMeta: CodeComponentMeta<BaseSliderThumbProps>,\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseSliderTrack>\n) {\n return registerComponentHelper(\n loader,\n BaseSliderTrack,\n {\n name: SLIDER_TRACK_COMPONENT_NAME,\n displayName: \"Aria Slider Track\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerSliderTrack\",\n importName: \"BaseSliderTrack\",\n variants,\n defaultStyles: {\n width: \"stretch\",\n backgroundColor: \"#aaa\",\n position: \"relative\",\n height: \"10px\",\n padding: 0,\n },\n props: {\n children: {\n type: \"slot\",\n /**\n * NOTE: We don't merge with parent here, because we want to allow the user to select the thumbs without having to first select the slider track.\n * Also, there can be more than one thumbs (e.g. in a range slider), but `mergeWithParent` only shows prop controls of the slot content if there is only one direct descendant of the slot.\n * */\n // mergeWithParent: true,\n displayName: \"Thumbs\",\n description:\n \"The thumbs of the slider. For range slider, you can add more than one thumb.\",\n allowedComponents: [sliderThumbMeta.name],\n allowRootWrapper: true,\n defaultValue: [\n {\n type: \"component\",\n name: sliderThumbMeta.name,\n },\n ],\n },\n progressBar: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Progress Bar\",\n defaultValue: [\n {\n type: \"box\",\n styles: {\n height: \"100%\",\n width: \"100%\",\n backgroundColor: \"#ffa6a6\",\n padding: 0,\n },\n },\n ],\n },\n onHoverStart: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverEnd: {\n type: \"eventHandler\",\n argTypes: [{ name: \"event\", type: \"object\" }],\n },\n onHoverChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isHovering\", type: \"boolean\" }],\n },\n },\n },\n overrides\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ var host = require('@plasmicapp/host');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var reactAria = require('react-aria');
|
|
6
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
|
+
var reactStately = require('react-stately');
|
|
7
8
|
var common = require('./common-b3b54c72.cjs.js');
|
|
8
9
|
var utils = require('./utils-7d000fa4.cjs.js');
|
|
9
10
|
var variantUtils = require('./variant-utils-0ad70db8.cjs.js');
|
|
@@ -32,6 +33,18 @@ var __spreadValues = (a, b) => {
|
|
|
32
33
|
return a;
|
|
33
34
|
};
|
|
34
35
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
36
|
+
var __objRest = (source, exclude) => {
|
|
37
|
+
var target = {};
|
|
38
|
+
for (var prop in source)
|
|
39
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
40
|
+
target[prop] = source[prop];
|
|
41
|
+
if (source != null && __getOwnPropSymbols)
|
|
42
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
43
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
44
|
+
target[prop] = source[prop];
|
|
45
|
+
}
|
|
46
|
+
return target;
|
|
47
|
+
};
|
|
35
48
|
const TOOLTIP_VARIANTS = [
|
|
36
49
|
"placementTop",
|
|
37
50
|
"placementBottom",
|
|
@@ -39,79 +52,131 @@ const TOOLTIP_VARIANTS = [
|
|
|
39
52
|
"placementRight"
|
|
40
53
|
];
|
|
41
54
|
const { variants, withObservedValues } = variantUtils.pickAriaComponentVariants(TOOLTIP_VARIANTS);
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
|
|
55
|
+
function BaseTooltip(props) {
|
|
56
|
+
if (props.isOpen !== void 0) {
|
|
57
|
+
return /* @__PURE__ */ React__default.default.createElement(ControlledBaseTooltip, __spreadValues({}, props));
|
|
58
|
+
} else {
|
|
59
|
+
return /* @__PURE__ */ React__default.default.createElement(UncontrolledBaseTooltip, __spreadValues({}, props));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function UncontrolledBaseTooltip(_a) {
|
|
63
|
+
var _b = _a, { onOpenChange } = _b, props = __objRest(_b, ["onOpenChange"]);
|
|
64
|
+
var _a2;
|
|
65
|
+
const [open, setOpen] = React.useState((_a2 = props.defaultOpen) != null ? _a2 : false);
|
|
66
|
+
const onOpenChangeMerged = React.useCallback(
|
|
67
|
+
(newOpen) => {
|
|
68
|
+
setOpen(newOpen);
|
|
69
|
+
onOpenChange == null ? void 0 : onOpenChange(newOpen);
|
|
70
|
+
},
|
|
71
|
+
[onOpenChange]
|
|
72
|
+
);
|
|
45
73
|
return /* @__PURE__ */ React__default.default.createElement(
|
|
46
|
-
|
|
47
|
-
__spreadProps(__spreadValues({
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
style: common.COMMON_STYLES
|
|
52
|
-
}),
|
|
53
|
-
children
|
|
74
|
+
ControlledBaseTooltip,
|
|
75
|
+
__spreadProps(__spreadValues({}, props), {
|
|
76
|
+
isOpen: open,
|
|
77
|
+
onOpenChange: onOpenChangeMerged
|
|
78
|
+
})
|
|
54
79
|
);
|
|
55
80
|
}
|
|
56
|
-
function
|
|
57
|
-
var _a, _b
|
|
81
|
+
function ControlledBaseTooltip(props) {
|
|
82
|
+
var _a, _b;
|
|
58
83
|
const {
|
|
59
84
|
children,
|
|
60
|
-
isDisabled,
|
|
85
|
+
isDisabled = false,
|
|
61
86
|
delay,
|
|
62
87
|
closeDelay,
|
|
63
88
|
trigger,
|
|
64
89
|
isOpen,
|
|
65
|
-
defaultOpen,
|
|
66
90
|
tooltipContent,
|
|
67
91
|
resetClassName,
|
|
68
92
|
placement,
|
|
69
93
|
offset,
|
|
70
94
|
crossOffset,
|
|
71
95
|
shouldFlip,
|
|
72
|
-
|
|
96
|
+
className,
|
|
97
|
+
onOpenChange = () => {
|
|
98
|
+
},
|
|
73
99
|
plasmicUpdateVariant
|
|
74
100
|
} = props;
|
|
75
101
|
const { isSelected, selectedSlotName } = (_b = (_a = host.usePlasmicCanvasComponentInfo) == null ? void 0 : _a(props)) != null ? _b : {};
|
|
76
|
-
const
|
|
77
|
-
const _isOpen =
|
|
78
|
-
|
|
79
|
-
|
|
102
|
+
const isSelectedOnCanvas = selectedSlotName !== "children" && isSelected;
|
|
103
|
+
const _isOpen = isSelectedOnCanvas || isOpen;
|
|
104
|
+
const ref = React.useRef(null);
|
|
105
|
+
const tooltipId = React.useId();
|
|
106
|
+
const state = reactStately.useTooltipTriggerState(__spreadProps(__spreadValues({}, props), {
|
|
107
|
+
trigger: trigger === "focus" ? trigger : void 0
|
|
108
|
+
}));
|
|
109
|
+
return /* @__PURE__ */ React__default.default.createElement(reactAriaComponents.Provider, { values: [[reactAriaComponents.TooltipTriggerStateContext, state]] }, /* @__PURE__ */ React__default.default.createElement(
|
|
110
|
+
TriggerWrapper,
|
|
80
111
|
{
|
|
112
|
+
ref,
|
|
113
|
+
className,
|
|
114
|
+
tooltipId: _isOpen ? tooltipId : void 0,
|
|
81
115
|
isDisabled,
|
|
116
|
+
onOpenChange,
|
|
117
|
+
triggerOnFocusOnly: trigger === "focus"
|
|
118
|
+
},
|
|
119
|
+
children
|
|
120
|
+
), /* @__PURE__ */ React__default.default.createElement(
|
|
121
|
+
reactAriaComponents.Tooltip,
|
|
122
|
+
{
|
|
123
|
+
triggerRef: ref,
|
|
124
|
+
id: tooltipId,
|
|
125
|
+
isOpen: _isOpen,
|
|
126
|
+
offset,
|
|
82
127
|
delay,
|
|
83
128
|
closeDelay,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
onOpenChange
|
|
129
|
+
crossOffset,
|
|
130
|
+
shouldFlip,
|
|
131
|
+
className: resetClassName,
|
|
132
|
+
onOpenChange,
|
|
133
|
+
placement
|
|
88
134
|
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
reactAriaComponents.Tooltip,
|
|
135
|
+
({ placement: _placement }) => withObservedValues(
|
|
136
|
+
/* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, tooltipContent),
|
|
92
137
|
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
defaultOpen,
|
|
98
|
-
className: resetClassName,
|
|
99
|
-
onOpenChange,
|
|
100
|
-
placement
|
|
138
|
+
placementTop: _placement === "top",
|
|
139
|
+
placementBottom: _placement === "bottom",
|
|
140
|
+
placementLeft: _placement === "left",
|
|
141
|
+
placementRight: _placement === "right"
|
|
101
142
|
},
|
|
102
|
-
|
|
103
|
-
/* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, tooltipContent),
|
|
104
|
-
{
|
|
105
|
-
placementTop: _placement === "top",
|
|
106
|
-
placementBottom: _placement === "bottom",
|
|
107
|
-
placementLeft: _placement === "left",
|
|
108
|
-
placementRight: _placement === "right"
|
|
109
|
-
},
|
|
110
|
-
plasmicUpdateVariant
|
|
111
|
-
)
|
|
143
|
+
plasmicUpdateVariant
|
|
112
144
|
)
|
|
113
|
-
);
|
|
145
|
+
));
|
|
114
146
|
}
|
|
147
|
+
const TriggerWrapper = React__default.default.forwardRef(
|
|
148
|
+
function TriggerWrapper_({
|
|
149
|
+
children,
|
|
150
|
+
onOpenChange,
|
|
151
|
+
isDisabled,
|
|
152
|
+
triggerOnFocusOnly,
|
|
153
|
+
tooltipId,
|
|
154
|
+
className
|
|
155
|
+
}, ref) {
|
|
156
|
+
const { hoverProps } = reactAria.useHover({
|
|
157
|
+
isDisabled,
|
|
158
|
+
onHoverStart: () => !triggerOnFocusOnly && onOpenChange(true),
|
|
159
|
+
onHoverEnd: () => !triggerOnFocusOnly && onOpenChange(false)
|
|
160
|
+
});
|
|
161
|
+
const { focusWithinProps } = reactAria.useFocusWithin({
|
|
162
|
+
isDisabled,
|
|
163
|
+
onFocusWithin: () => {
|
|
164
|
+
onOpenChange(true);
|
|
165
|
+
},
|
|
166
|
+
onBlurWithin: () => {
|
|
167
|
+
onOpenChange(false);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
const mergedProps = reactAria.mergeProps(hoverProps, focusWithinProps, {
|
|
171
|
+
"aria-describedby": tooltipId,
|
|
172
|
+
// We expose className to allow user control over the wrapper div's styling.
|
|
173
|
+
className,
|
|
174
|
+
ref,
|
|
175
|
+
style: common.COMMON_STYLES
|
|
176
|
+
});
|
|
177
|
+
return /* @__PURE__ */ React__default.default.createElement("div", __spreadValues({}, mergedProps), children);
|
|
178
|
+
}
|
|
179
|
+
);
|
|
115
180
|
function registerTooltip(loader, overrides) {
|
|
116
181
|
utils.registerComponentHelper(
|
|
117
182
|
loader,
|
|
@@ -122,7 +187,6 @@ function registerTooltip(loader, overrides) {
|
|
|
122
187
|
importPath: "@plasmicpkgs/react-aria/skinny/registerTooltip",
|
|
123
188
|
importName: "BaseTooltip",
|
|
124
189
|
isAttachment: true,
|
|
125
|
-
styleSections: false,
|
|
126
190
|
variants,
|
|
127
191
|
props: __spreadProps(__spreadValues({
|
|
128
192
|
children: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerTooltip.cjs.js","sources":["../src/registerTooltip.tsx"],"sourcesContent":["import { usePlasmicCanvasComponentInfo } from \"@plasmicapp/host\";\nimport React from \"react\";\nimport { useFocusable } from \"react-aria\";\nimport { Tooltip, TooltipProps, TooltipTrigger } from \"react-aria-components\";\nimport { TooltipTriggerProps } from \"react-stately\";\nimport { COMMON_STYLES, getCommonOverlayProps } from \"./common\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n registerComponentHelper,\n WithPlasmicCanvasComponentInfo,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\n/*\n NOTE: Placement should be managed as variants, not just props.\n When `shouldFlip` is true, the placement prop may not represent the final position\n (e.g., if placement is set to \"bottom\" but lacks space, the tooltip may flip to \"top\").\n However, data-selectors will consistently indicate the actual placement of the tooltip.\n*/\nconst TOOLTIP_VARIANTS = [\n \"placementTop\" as const,\n \"placementBottom\" as const,\n \"placementLeft\" as const,\n \"placementRight\" as const,\n];\n\nexport interface BaseTooltipProps\n extends TooltipTriggerProps,\n TooltipProps,\n WithPlasmicCanvasComponentInfo,\n WithVariants<typeof TOOLTIP_VARIANTS> {\n children: React.ReactElement<HTMLElement>;\n tooltipContent?: React.ReactElement;\n resetClassName?: string;\n}\n\ninterface TriggerWrapperProps {\n children: React.ReactElement;\n className?: string;\n}\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(TOOLTIP_VARIANTS);\n\n/*\n\n React Aria's TooltipTrigger TooltipTrigger requires a focusable element with ref.\n To make sure that this requirement is fulfilled, wrap everything in a focusable div.\n https://react-spectrum.adobe.com/react-aria/Tooltip.html#example\n (In the example, Aria Button works as a trigger because it uses useFocusable behind the scenes)\n\n Discussion (React-aria-components TooltipTrigger with custom button):\n https://github.com/adobe/react-spectrum/discussions/5119#discussioncomment-7084661\n\n */\nfunction TriggerWrapper({ children, className }: TriggerWrapperProps) {\n const ref = React.useRef<HTMLDivElement | null>(null);\n const { focusableProps } = useFocusable({}, ref);\n return (\n <div\n ref={ref}\n className={className}\n {...focusableProps}\n style={COMMON_STYLES}\n >\n {children}\n </div>\n );\n}\n\nexport function BaseTooltip(props: BaseTooltipProps) {\n const {\n children,\n isDisabled,\n delay,\n closeDelay,\n trigger,\n isOpen,\n defaultOpen,\n tooltipContent,\n resetClassName,\n placement,\n offset,\n crossOffset,\n shouldFlip,\n onOpenChange,\n plasmicUpdateVariant,\n } = props;\n\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.(props) ?? {};\n const isAutoOpen = selectedSlotName !== \"children\" && isSelected;\n const _isOpen = (isAutoOpen || isOpen) ?? false;\n\n return (\n <TooltipTrigger\n isDisabled={isDisabled}\n delay={delay}\n closeDelay={closeDelay}\n trigger={trigger}\n isOpen={_isOpen}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n >\n <TriggerWrapper className={resetClassName}>{children}</TriggerWrapper>\n <Tooltip\n isOpen={_isOpen}\n offset={offset}\n crossOffset={crossOffset}\n shouldFlip={shouldFlip}\n defaultOpen={defaultOpen}\n className={resetClassName}\n onOpenChange={onOpenChange}\n placement={placement}\n >\n {({ placement: _placement }) =>\n withObservedValues(\n <>{tooltipContent}</>,\n {\n placementTop: _placement === \"top\",\n placementBottom: _placement === \"bottom\",\n placementLeft: _placement === \"left\",\n placementRight: _placement === \"right\",\n },\n plasmicUpdateVariant\n )\n }\n </Tooltip>\n </TooltipTrigger>\n );\n}\n\nexport function registerTooltip(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTooltip>\n) {\n registerComponentHelper(\n loader,\n BaseTooltip,\n {\n name: \"plasmic-react-aria-tooltip\",\n displayName: \"Aria Tooltip\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTooltip\",\n importName: \"BaseTooltip\",\n isAttachment: true,\n styleSections: false,\n variants,\n props: {\n children: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Trigger\",\n defaultValue: {\n type: \"text\",\n value: \"Hover me!\",\n styles: {\n width: \"hug\",\n },\n },\n },\n tooltipContent: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Tooltip Content\",\n // NOTE: This is not applied in attachment\n defaultValue: {\n type: \"text\",\n value: \"Hello from Tooltip!\",\n styles: {\n background: \"black\",\n color: \"white\",\n padding: \"7px\",\n borderRadius: \"7px\",\n },\n },\n },\n resetClassName: {\n type: \"themeResetClass\",\n },\n isDisabled: {\n type: \"boolean\",\n },\n delay: {\n type: \"number\",\n // Default value is explicitly set to 0 to prevent users from mistakenly thinking the tooltip isn’t opening due to a delay.\n defaultValue: 0,\n defaultValueHint: 0,\n description:\n \"The delay (in milliseconds) for the tooltip to show up.\",\n },\n closeDelay: {\n type: \"number\",\n // Default value is explicitly set to 0 to prevent users from mistakenly thinking the tooltip isn’t closing due to a delay.\n defaultValue: 0,\n defaultValueHint: 0,\n description: \"The delay (in milliseconds) for the tooltip to close.\",\n },\n trigger: {\n type: \"choice\",\n options: [\"focus\", \"focus and hover\"],\n defaultValueHint: \"focus and hover\",\n },\n ...getCommonOverlayProps<BaseTooltipProps>(\"popover\", {\n placement: { defaultValueHint: \"top\" },\n offset: { defaultValueHint: 0 },\n containerPadding: { defaultValueHint: 12 },\n crossOffset: { defaultValueHint: 0 },\n }),\n isOpen: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultOpen\",\n description: \"Whether the overlay is open by default\",\n defaultValueHint: false,\n hidden: () => true,\n },\n onOpenChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isOpen\", type: \"boolean\" }],\n },\n },\n states: {\n isOpen: {\n type: \"writable\",\n valueProp: \"isOpen\",\n onChangeProp: \"onOpenChange\",\n variableType: \"boolean\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","useFocusable","COMMON_STYLES","usePlasmicCanvasComponentInfo","TooltipTrigger","Tooltip","registerComponentHelper","getCommonOverlayProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registerTooltip.cjs.js","sources":["../src/registerTooltip.tsx"],"sourcesContent":["import { usePlasmicCanvasComponentInfo } from \"@plasmicapp/host\";\nimport React, { useCallback, useId, useRef, useState } from \"react\";\nimport { mergeProps, useFocusWithin, useHover } from \"react-aria\";\nimport {\n Provider,\n Tooltip,\n TooltipProps,\n TooltipTriggerStateContext,\n} from \"react-aria-components\";\nimport { TooltipTriggerProps, useTooltipTriggerState } from \"react-stately\";\nimport { COMMON_STYLES, getCommonOverlayProps } from \"./common\";\nimport {\n CodeComponentMetaOverrides,\n Registerable,\n registerComponentHelper,\n WithPlasmicCanvasComponentInfo,\n} from \"./utils\";\nimport { pickAriaComponentVariants, WithVariants } from \"./variant-utils\";\n\n/*\n NOTE: Placement should be managed as variants, not just props.\n When `shouldFlip` is true, the placement prop may not represent the final position\n (e.g., if placement is set to \"bottom\" but lacks space, the tooltip may flip to \"top\").\n However, data-selectors will consistently indicate the actual placement of the tooltip.\n*/\nconst TOOLTIP_VARIANTS = [\n \"placementTop\" as const,\n \"placementBottom\" as const,\n \"placementLeft\" as const,\n \"placementRight\" as const,\n];\n\nconst { variants, withObservedValues } =\n pickAriaComponentVariants(TOOLTIP_VARIANTS);\n\nexport interface BaseTooltipProps\n extends Omit<TooltipTriggerProps, \"trigger\">,\n TooltipProps,\n WithPlasmicCanvasComponentInfo,\n WithVariants<typeof TOOLTIP_VARIANTS> {\n children: React.ReactElement<HTMLElement>;\n tooltipContent?: React.ReactElement;\n resetClassName?: string;\n trigger?: \"focus\" | \"focus and hover\" | undefined;\n className?: string;\n}\n\n// In Studio, the tooltip is always controlled because isOpen is attached to the code component's state.\n// In Codegen, the user decides whether the tooltip is controlled or not. So we need to handle both cases.\nexport function BaseTooltip(props: BaseTooltipProps) {\n if (props.isOpen !== undefined) {\n return <ControlledBaseTooltip {...props} />;\n } else {\n return <UncontrolledBaseTooltip {...props} />;\n }\n}\n\nfunction UncontrolledBaseTooltip({ onOpenChange, ...props }: BaseTooltipProps) {\n const [open, setOpen] = useState(props.defaultOpen ?? false);\n const onOpenChangeMerged = useCallback(\n (newOpen: boolean) => {\n setOpen(newOpen);\n onOpenChange?.(newOpen);\n },\n [onOpenChange]\n );\n return (\n <ControlledBaseTooltip\n {...props}\n isOpen={open}\n onOpenChange={onOpenChangeMerged}\n />\n );\n}\n\nfunction ControlledBaseTooltip(props: BaseTooltipProps) {\n const {\n children,\n isDisabled = false,\n delay,\n closeDelay,\n trigger,\n isOpen,\n tooltipContent,\n resetClassName,\n placement,\n offset,\n crossOffset,\n shouldFlip,\n className,\n onOpenChange = () => {},\n plasmicUpdateVariant,\n } = props;\n\n const { isSelected, selectedSlotName } =\n usePlasmicCanvasComponentInfo?.(props) ?? {};\n const isSelectedOnCanvas = selectedSlotName !== \"children\" && isSelected;\n const _isOpen = isSelectedOnCanvas || isOpen;\n\n /*\n The following is a custom implementation of the <TooltipTrigger /> component.\n The default <TooltipTrigger /> from react-aria-components automatically manages state changes when a useFocusable element (e.g., an Aria Button) is clicked.\n However, in our custom trigger, <TriggerWrapper>, we use useFocusWithin to explicitly handle state changes, allowing any element—not just an Aria Button—to act as a trigger.\n However, this results in duplicate state updates when using an Aria Button, as state changes are triggered both by useFocusWithin and useFocusable.\n Consequently, onOpenChange is called twice.\n\n This implementation is adapted from:\n https://github.com/adobe/react-spectrum/blob/988096cf3f1dbd59f274d8c552e9fe7d5dcf4f41/packages/react-aria-components/src/Tooltip.tsx#L89\n The <FocusableProvider> has been removed, as it handles automatic state updates for the Aria Button.\n\n */\n const ref = useRef<any>(null);\n const tooltipId = useId();\n\n const state = useTooltipTriggerState({\n ...props,\n trigger: trigger === \"focus\" ? trigger : undefined,\n });\n\n return (\n <Provider values={[[TooltipTriggerStateContext, state]]}>\n <TriggerWrapper\n ref={ref}\n className={className}\n tooltipId={_isOpen ? tooltipId : undefined}\n isDisabled={isDisabled}\n onOpenChange={onOpenChange}\n triggerOnFocusOnly={trigger === \"focus\"}\n >\n {children}\n </TriggerWrapper>\n <Tooltip\n triggerRef={ref}\n // @ts-expect-error <Tooltip> is wrongly typed to not have id prop\n id={tooltipId}\n isOpen={_isOpen}\n offset={offset}\n delay={delay}\n closeDelay={closeDelay}\n crossOffset={crossOffset}\n shouldFlip={shouldFlip}\n className={resetClassName}\n onOpenChange={onOpenChange}\n placement={placement}\n >\n {({ placement: _placement }) =>\n withObservedValues(\n <>{tooltipContent}</>,\n {\n placementTop: _placement === \"top\",\n placementBottom: _placement === \"bottom\",\n placementLeft: _placement === \"left\",\n placementRight: _placement === \"right\",\n },\n plasmicUpdateVariant\n )\n }\n </Tooltip>\n </Provider>\n );\n}\n\ninterface TriggerWrapperProps {\n children: React.ReactElement;\n onOpenChange: (isOpen: boolean) => void;\n isDisabled: boolean;\n triggerOnFocusOnly: boolean;\n tooltipId?: string;\n className?: string;\n}\n/*\n\n React Aria's TooltipTrigger requires a focusable element with ref.\n To make sure that this requirement is fulfilled, wrap everything in a focusable div.\n https://react-spectrum.adobe.com/react-aria/Tooltip.html#example\n (In the example, Aria Button works as a trigger because it uses useFocusable behind the scenes)\n\n Discussion (React-aria-components TooltipTrigger with custom button):\n https://github.com/adobe/react-spectrum/discussions/5119#discussioncomment-7084661\n\n */\nconst TriggerWrapper = React.forwardRef<HTMLDivElement, TriggerWrapperProps>(\n function TriggerWrapper_(\n {\n children,\n onOpenChange,\n isDisabled,\n triggerOnFocusOnly,\n tooltipId,\n className,\n },\n ref: React.Ref<HTMLDivElement>\n ) {\n const { hoverProps } = useHover({\n isDisabled,\n onHoverStart: () => !triggerOnFocusOnly && onOpenChange(true),\n onHoverEnd: () => !triggerOnFocusOnly && onOpenChange(false),\n });\n\n // useFocusWithin captures focus events for all nested focusable elements\n const { focusWithinProps } = useFocusWithin({\n isDisabled,\n onFocusWithin: () => {\n onOpenChange(true);\n },\n onBlurWithin: () => {\n onOpenChange(false);\n },\n });\n\n const mergedProps = mergeProps(hoverProps, focusWithinProps, {\n \"aria-describedby\": tooltipId,\n // We expose className to allow user control over the wrapper div's styling.\n className,\n ref,\n style: COMMON_STYLES,\n });\n\n return <div {...mergedProps}>{children}</div>;\n }\n);\n\nexport function registerTooltip(\n loader?: Registerable,\n overrides?: CodeComponentMetaOverrides<typeof BaseTooltip>\n) {\n registerComponentHelper(\n loader,\n BaseTooltip,\n {\n name: \"plasmic-react-aria-tooltip\",\n displayName: \"Aria Tooltip\",\n importPath: \"@plasmicpkgs/react-aria/skinny/registerTooltip\",\n importName: \"BaseTooltip\",\n isAttachment: true,\n variants,\n props: {\n children: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Trigger\",\n defaultValue: {\n type: \"text\",\n value: \"Hover me!\",\n styles: {\n width: \"hug\",\n },\n },\n },\n tooltipContent: {\n type: \"slot\",\n mergeWithParent: true,\n displayName: \"Tooltip Content\",\n // NOTE: This is not applied in attachment\n defaultValue: {\n type: \"text\",\n value: \"Hello from Tooltip!\",\n styles: {\n background: \"black\",\n color: \"white\",\n padding: \"7px\",\n borderRadius: \"7px\",\n },\n },\n },\n resetClassName: {\n type: \"themeResetClass\",\n },\n isDisabled: {\n type: \"boolean\",\n },\n delay: {\n type: \"number\",\n // Default value is explicitly set to 0 to prevent users from mistakenly thinking the tooltip isn’t opening due to a delay.\n defaultValue: 0,\n defaultValueHint: 0,\n description:\n \"The delay (in milliseconds) for the tooltip to show up.\",\n },\n closeDelay: {\n type: \"number\",\n // Default value is explicitly set to 0 to prevent users from mistakenly thinking the tooltip isn’t closing due to a delay.\n defaultValue: 0,\n defaultValueHint: 0,\n description: \"The delay (in milliseconds) for the tooltip to close.\",\n },\n trigger: {\n type: \"choice\",\n options: [\"focus\", \"focus and hover\"],\n defaultValueHint: \"focus and hover\",\n },\n ...getCommonOverlayProps<BaseTooltipProps>(\"popover\", {\n placement: { defaultValueHint: \"top\" },\n offset: { defaultValueHint: 0 },\n containerPadding: { defaultValueHint: 12 },\n crossOffset: { defaultValueHint: 0 },\n }),\n isOpen: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultOpen\",\n description: \"Whether the overlay is open by default\",\n defaultValueHint: false,\n hidden: () => true,\n },\n onOpenChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"isOpen\", type: \"boolean\" }],\n },\n },\n states: {\n isOpen: {\n type: \"writable\",\n valueProp: \"isOpen\",\n onChangeProp: \"onOpenChange\",\n variableType: \"boolean\",\n },\n },\n trapsFocus: true,\n },\n overrides\n );\n}\n"],"names":["pickAriaComponentVariants","React","_a","useState","useCallback","usePlasmicCanvasComponentInfo","useRef","useId","useTooltipTriggerState","Provider","TooltipTriggerStateContext","Tooltip","useHover","useFocusWithin","mergeProps","COMMON_STYLES","registerComponentHelper","getCommonOverlayProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,gBAAmB,GAAA;AAAA,EACvB,cAAA;AAAA,EACA,iBAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AACF,CAAA,CAAA;AAEA,MAAM,EAAE,QAAA,EAAU,kBAAmB,EAAA,GACnCA,uCAA0B,gBAAgB,CAAA,CAAA;AAgBrC,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAI,IAAA,KAAA,CAAM,WAAW,KAAW,CAAA,EAAA;AAC9B,IAAO,uBAAAC,sBAAA,CAAA,aAAA,CAAC,0CAA0B,KAAO,CAAA,CAAA,CAAA;AAAA,GACpC,MAAA;AACL,IAAO,uBAAAA,sBAAA,CAAA,aAAA,CAAC,4CAA4B,KAAO,CAAA,CAAA,CAAA;AAAA,GAC7C;AACF,CAAA;AAEA,SAAS,wBAAwB,EAA8C,EAAA;AAA9C,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAzDnC,YAAA,EAAA,GAyDiC,EAAmB,EAAA,KAAA,GAAA,SAAA,CAAnB,IAAmB,CAAjB,cAAA,CAAA,CAAA,CAAA;AAzDnC,EAAAC,IAAAA,GAAAA,CAAAA;AA0DE,EAAM,MAAA,CAAC,IAAM,EAAA,OAAO,CAAI,GAAAC,cAAA,CAAA,CAASD,MAAA,KAAM,CAAA,WAAA,KAAN,IAAAA,GAAAA,GAAAA,GAAqB,KAAK,CAAA,CAAA;AAC3D,EAAA,MAAM,kBAAqB,GAAAE,iBAAA;AAAA,IACzB,CAAC,OAAqB,KAAA;AACpB,MAAA,OAAA,CAAQ,OAAO,CAAA,CAAA;AACf,MAAe,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,OAAA,CAAA,CAAA;AAAA,KACjB;AAAA,IACA,CAAC,YAAY,CAAA;AAAA,GACf,CAAA;AACA,EACE,uBAAAH,sBAAA,CAAA,aAAA;AAAA,IAAC,qBAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACK,KADL,CAAA,EAAA;AAAA,MAEC,MAAQ,EAAA,IAAA;AAAA,MACR,YAAc,EAAA,kBAAA;AAAA,KAAA,CAAA;AAAA,GAChB,CAAA;AAEJ,CAAA;AAEA,SAAS,sBAAsB,KAAyB,EAAA;AA3ExD,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AA4EE,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,UAAa,GAAA,KAAA;AAAA,IACb,KAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,UAAA;AAAA,IACA,SAAA;AAAA,IACA,eAAe,MAAM;AAAA,KAAC;AAAA,IACtB,oBAAA;AAAA,GACE,GAAA,KAAA,CAAA;AAEJ,EAAA,MAAM,EAAE,UAAY,EAAA,gBAAA,MAClB,EAAgC,GAAA,CAAA,EAAA,GAAAI,kCAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,CAAA,KAAhC,YAA0C,EAAC,CAAA;AAC7C,EAAM,MAAA,kBAAA,GAAqB,qBAAqB,UAAc,IAAA,UAAA,CAAA;AAC9D,EAAA,MAAM,UAAU,kBAAsB,IAAA,MAAA,CAAA;AActC,EAAM,MAAA,GAAA,GAAMC,aAAY,IAAI,CAAA,CAAA;AAC5B,EAAA,MAAM,YAAYC,WAAM,EAAA,CAAA;AAExB,EAAM,MAAA,KAAA,GAAQC,mCAAuB,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAChC,KADgC,CAAA,EAAA;AAAA,IAEnC,OAAA,EAAS,OAAY,KAAA,OAAA,GAAU,OAAU,GAAA,KAAA,CAAA;AAAA,GAC1C,CAAA,CAAA,CAAA;AAED,EACE,uBAAAP,sBAAA,CAAA,aAAA,CAACQ,gCAAS,MAAQ,EAAA,CAAC,CAACC,8CAA4B,EAAA,KAAK,CAAC,CACpD,EAAA,kBAAAT,sBAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA,EAAW,UAAU,SAAY,GAAA,KAAA,CAAA;AAAA,MACjC,UAAA;AAAA,MACA,YAAA;AAAA,MACA,oBAAoB,OAAY,KAAA,OAAA;AAAA,KAAA;AAAA,IAE/B,QAAA;AAAA,GAEH,kBAAAA,sBAAA,CAAA,aAAA;AAAA,IAACU,2BAAA;AAAA,IAAA;AAAA,MACC,UAAY,EAAA,GAAA;AAAA,MAEZ,EAAI,EAAA,SAAA;AAAA,MACJ,MAAQ,EAAA,OAAA;AAAA,MACR,MAAA;AAAA,MACA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAW,EAAA,cAAA;AAAA,MACX,YAAA;AAAA,MACA,SAAA;AAAA,KAAA;AAAA,IAEC,CAAC,EAAE,SAAW,EAAA,UAAA,EACb,KAAA,kBAAA;AAAA,kGACK,cAAe,CAAA;AAAA,MAClB;AAAA,QACE,cAAc,UAAe,KAAA,KAAA;AAAA,QAC7B,iBAAiB,UAAe,KAAA,QAAA;AAAA,QAChC,eAAe,UAAe,KAAA,MAAA;AAAA,QAC9B,gBAAgB,UAAe,KAAA,OAAA;AAAA,OACjC;AAAA,MACA,oBAAA;AAAA,KACF;AAAA,GAGN,CAAA,CAAA;AAEJ,CAAA;AAqBA,MAAM,iBAAiBV,sBAAM,CAAA,UAAA;AAAA,EAC3B,SAAS,eACP,CAAA;AAAA,IACE,QAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,kBAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,KAEF,GACA,EAAA;AACA,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIW,kBAAS,CAAA;AAAA,MAC9B,UAAA;AAAA,MACA,YAAc,EAAA,MAAM,CAAC,kBAAA,IAAsB,aAAa,IAAI,CAAA;AAAA,MAC5D,UAAY,EAAA,MAAM,CAAC,kBAAA,IAAsB,aAAa,KAAK,CAAA;AAAA,KAC5D,CAAA,CAAA;AAGD,IAAM,MAAA,EAAE,gBAAiB,EAAA,GAAIC,wBAAe,CAAA;AAAA,MAC1C,UAAA;AAAA,MACA,eAAe,MAAM;AACnB,QAAA,YAAA,CAAa,IAAI,CAAA,CAAA;AAAA,OACnB;AAAA,MACA,cAAc,MAAM;AAClB,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,OACpB;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAcC,oBAAW,CAAA,UAAA,EAAY,gBAAkB,EAAA;AAAA,MAC3D,kBAAoB,EAAA,SAAA;AAAA;AAAA,MAEpB,SAAA;AAAA,MACA,GAAA;AAAA,MACA,KAAO,EAAAC,oBAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAO,uBAAAd,sBAAA,CAAA,aAAA,CAAC,KAAQ,EAAA,cAAA,CAAA,EAAA,EAAA,WAAA,CAAA,EAAc,QAAS,CAAA,CAAA;AAAA,GACzC;AACF,CAAA,CAAA;AAEgB,SAAA,eAAA,CACd,QACA,SACA,EAAA;AACA,EAAAe,6BAAA;AAAA,IACE,MAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,MACE,IAAM,EAAA,4BAAA;AAAA,MACN,WAAa,EAAA,cAAA;AAAA,MACb,UAAY,EAAA,gDAAA;AAAA,MACZ,UAAY,EAAA,aAAA;AAAA,MACZ,YAAc,EAAA,IAAA;AAAA,MACd,QAAA;AAAA,MACA,KAAO,EAAA,aAAA,CAAA,cAAA,CAAA;AAAA,QACL,QAAU,EAAA;AAAA,UACR,IAAM,EAAA,MAAA;AAAA,UACN,eAAiB,EAAA,IAAA;AAAA,UACjB,WAAa,EAAA,SAAA;AAAA,UACb,YAAc,EAAA;AAAA,YACZ,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,WAAA;AAAA,YACP,MAAQ,EAAA;AAAA,cACN,KAAO,EAAA,KAAA;AAAA,aACT;AAAA,WACF;AAAA,SACF;AAAA,QACA,cAAgB,EAAA;AAAA,UACd,IAAM,EAAA,MAAA;AAAA,UACN,eAAiB,EAAA,IAAA;AAAA,UACjB,WAAa,EAAA,iBAAA;AAAA;AAAA,UAEb,YAAc,EAAA;AAAA,YACZ,IAAM,EAAA,MAAA;AAAA,YACN,KAAO,EAAA,qBAAA;AAAA,YACP,MAAQ,EAAA;AAAA,cACN,UAAY,EAAA,OAAA;AAAA,cACZ,KAAO,EAAA,OAAA;AAAA,cACP,OAAS,EAAA,KAAA;AAAA,cACT,YAAc,EAAA,KAAA;AAAA,aAChB;AAAA,WACF;AAAA,SACF;AAAA,QACA,cAAgB,EAAA;AAAA,UACd,IAAM,EAAA,iBAAA;AAAA,SACR;AAAA,QACA,UAAY,EAAA;AAAA,UACV,IAAM,EAAA,SAAA;AAAA,SACR;AAAA,QACA,KAAO,EAAA;AAAA,UACL,IAAM,EAAA,QAAA;AAAA;AAAA,UAEN,YAAc,EAAA,CAAA;AAAA,UACd,gBAAkB,EAAA,CAAA;AAAA,UAClB,WACE,EAAA,yDAAA;AAAA,SACJ;AAAA,QACA,UAAY,EAAA;AAAA,UACV,IAAM,EAAA,QAAA;AAAA;AAAA,UAEN,YAAc,EAAA,CAAA;AAAA,UACd,gBAAkB,EAAA,CAAA;AAAA,UAClB,WAAa,EAAA,uDAAA;AAAA,SACf;AAAA,QACA,OAAS,EAAA;AAAA,UACP,IAAM,EAAA,QAAA;AAAA,UACN,OAAA,EAAS,CAAC,OAAA,EAAS,iBAAiB,CAAA;AAAA,UACpC,gBAAkB,EAAA,iBAAA;AAAA,SACpB;AAAA,OAAA,EACGC,6BAAwC,SAAW,EAAA;AAAA,QACpD,SAAA,EAAW,EAAE,gBAAA,EAAkB,KAAM,EAAA;AAAA,QACrC,MAAA,EAAQ,EAAE,gBAAA,EAAkB,CAAE,EAAA;AAAA,QAC9B,gBAAA,EAAkB,EAAE,gBAAA,EAAkB,EAAG,EAAA;AAAA,QACzC,WAAA,EAAa,EAAE,gBAAA,EAAkB,CAAE,EAAA;AAAA,OACpC,CA5DI,CAAA,EAAA;AAAA,QA6DL,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,SAAA;AAAA,UACN,QAAU,EAAA,IAAA;AAAA,UACV,gBAAkB,EAAA,aAAA;AAAA,UAClB,WAAa,EAAA,wCAAA;AAAA,UACb,gBAAkB,EAAA,KAAA;AAAA,UAClB,QAAQ,MAAM,IAAA;AAAA,SAChB;AAAA,QACA,YAAc,EAAA;AAAA,UACZ,IAAM,EAAA,cAAA;AAAA,UACN,UAAU,CAAC,EAAE,MAAM,QAAU,EAAA,IAAA,EAAM,WAAW,CAAA;AAAA,SAChD;AAAA,OACF,CAAA;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,MAAQ,EAAA;AAAA,UACN,IAAM,EAAA,UAAA;AAAA,UACN,SAAW,EAAA,QAAA;AAAA,UACX,YAAc,EAAA,cAAA;AAAA,UACd,YAAc,EAAA,SAAA;AAAA,SAChB;AAAA,OACF;AAAA,MACA,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;;"}
|
|
@@ -4,10 +4,12 @@ import { TooltipTriggerProps } from "react-stately";
|
|
|
4
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, WithPlasmicCanvasComponentInfo, WithVariants<typeof TOOLTIP_VARIANTS> {
|
|
7
|
+
export interface BaseTooltipProps extends Omit<TooltipTriggerProps, "trigger">, TooltipProps, WithPlasmicCanvasComponentInfo, WithVariants<typeof TOOLTIP_VARIANTS> {
|
|
8
8
|
children: React.ReactElement<HTMLElement>;
|
|
9
9
|
tooltipContent?: React.ReactElement;
|
|
10
10
|
resetClassName?: string;
|
|
11
|
+
trigger?: "focus" | "focus and hover" | undefined;
|
|
12
|
+
className?: string;
|
|
11
13
|
}
|
|
12
14
|
export declare function BaseTooltip(props: BaseTooltipProps): React.JSX.Element;
|
|
13
15
|
export declare function registerTooltip(loader?: Registerable, overrides?: CodeComponentMetaOverrides<typeof BaseTooltip>): void;
|