@plasmicapp/react-web 0.2.104 → 0.2.107
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/all.d.ts +379 -3
- package/dist/index-common.d.ts +2 -1
- package/dist/plume/select/index.d.ts +1 -0
- package/dist/plume/triggered-overlay/index.d.ts +1 -0
- package/dist/plume/triggered-overlay/triggered-overlay.d.ts +1 -1
- package/dist/react-web.cjs.development.js +90 -3
- package/dist/react-web.cjs.development.js.map +1 -1
- package/dist/react-web.cjs.production.min.js +1 -1
- package/dist/react-web.cjs.production.min.js.map +1 -1
- package/dist/react-web.esm.js +88 -5
- package/dist/react-web.esm.js.map +1 -1
- package/dist/render/PlasmicHead.d.ts +35 -0
- package/dist/render/ssr.d.ts +2 -1
- package/package.json +1 -1
- package/skinny/dist/collection-utils-3487dd27.js +238 -0
- package/skinny/dist/collection-utils-3487dd27.js.map +1 -0
- package/skinny/dist/collection-utils-47e89cbe.js +238 -0
- package/skinny/dist/collection-utils-47e89cbe.js.map +1 -0
- package/skinny/dist/collection-utils-4dae6efa.js +292 -0
- package/skinny/dist/collection-utils-4dae6efa.js.map +1 -0
- package/skinny/dist/collection-utils-57ec40f9.js +292 -0
- package/skinny/dist/collection-utils-57ec40f9.js.map +1 -0
- package/skinny/dist/collection-utils-96cde83c.js +238 -0
- package/skinny/dist/collection-utils-96cde83c.js.map +1 -0
- package/skinny/dist/collection-utils-b0b8f30e.js +291 -0
- package/skinny/dist/collection-utils-b0b8f30e.js.map +1 -0
- package/skinny/dist/index-common.d.ts +2 -1
- package/skinny/dist/index.js +2 -2
- package/skinny/dist/index.js.map +1 -1
- package/skinny/dist/plume/checkbox/index.js +1 -1
- package/skinny/dist/plume/menu/index.js +1 -1
- package/skinny/dist/plume/menu-button/index.js +1 -1
- package/skinny/dist/plume/select/index.d.ts +1 -0
- package/skinny/dist/plume/select/index.js +2 -2
- package/skinny/dist/plume/select/index.js.map +1 -1
- package/skinny/dist/plume/switch/index.js +1 -1
- package/skinny/dist/plume/triggered-overlay/index.d.ts +1 -0
- package/skinny/dist/plume/triggered-overlay/index.js +4 -2
- package/skinny/dist/plume/triggered-overlay/index.js.map +1 -1
- package/skinny/dist/plume/triggered-overlay/triggered-overlay.d.ts +1 -1
- package/skinny/dist/plume-utils-5c413fd1.js +35 -0
- package/skinny/dist/plume-utils-5c413fd1.js.map +1 -0
- package/skinny/dist/props-utils-4633caf6.js +8 -0
- package/skinny/dist/props-utils-4633caf6.js.map +1 -0
- package/skinny/dist/props-utils-5c0ad25a.js +59 -0
- package/skinny/dist/props-utils-5c0ad25a.js.map +1 -0
- package/skinny/dist/props-utils-754f655a.js +39 -0
- package/skinny/dist/props-utils-754f655a.js.map +1 -0
- package/skinny/dist/props-utils-c632595f.js +59 -0
- package/skinny/dist/props-utils-c632595f.js.map +1 -0
- package/skinny/dist/props-utils-fd5f444e.js +59 -0
- package/skinny/dist/props-utils-fd5f444e.js.map +1 -0
- package/skinny/dist/react-utils-118d8539.js +190 -0
- package/skinny/dist/react-utils-118d8539.js.map +1 -0
- package/skinny/dist/react-utils-2a2fd6c9.js +339 -0
- package/skinny/dist/react-utils-2a2fd6c9.js.map +1 -0
- package/skinny/dist/react-utils-2d70bbbe.js +172 -0
- package/skinny/dist/react-utils-2d70bbbe.js.map +1 -0
- package/skinny/dist/react-utils-675565b4.js +334 -0
- package/skinny/dist/react-utils-675565b4.js.map +1 -0
- package/skinny/dist/render/PlasmicHead.d.ts +35 -0
- package/skinny/dist/render/PlasmicImg.d.ts +62 -0
- package/skinny/dist/render/ssr.d.ts +2 -1
- package/skinny/dist/ssr-64e38713.js +108 -0
- package/skinny/dist/ssr-64e38713.js.map +1 -0
- package/skinny/dist/ssr-902d1292.js +105 -0
- package/skinny/dist/ssr-902d1292.js.map +1 -0
- package/skinny/dist/ssr-9ebd98ed.js +158 -0
- package/skinny/dist/ssr-9ebd98ed.js.map +1 -0
- package/skinny/dist/ssr-a8081074.js +108 -0
- package/skinny/dist/ssr-a8081074.js.map +1 -0
- package/skinny/dist/ssr-d2fd94f2.js +31 -0
- package/skinny/dist/ssr-d2fd94f2.js.map +1 -0
- package/skinny/dist/tslib.es6-00014098.js +148 -0
- package/skinny/dist/tslib.es6-00014098.js.map +1 -0
- package/skinny/dist/tslib.es6-73236e8e.js +141 -0
- package/skinny/dist/tslib.es6-73236e8e.js.map +1 -0
package/skinny/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/render/Stack.tsx","../../src/render/elements.ts","../../src/render/global-variants.ts","../../src/render/PlasmicIcon.tsx","../../src/render/PlasmicLink.tsx","../../src/render/PlasmicSlot.tsx","../../src/render/screen-variants.ts","../../src/render/triggers.ts","../../src/index-common.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { createElementWithChildren } from \"../react-utils\";\nimport { wrapFlexContainerChildren } from \"./elements\";\n\nfunction renderStack<T extends keyof JSX.IntrinsicElements>(\n as: T,\n props: React.ComponentProps<T>,\n hasGap: boolean | undefined,\n ref: React.Ref<any>\n) {\n const { children, ...rest } = props;\n const wrappedChildren = wrapFlexContainerChildren(children, hasGap ?? false);\n return createElementWithChildren(as, { ref, ...rest }, wrappedChildren);\n}\n\nfunction FlexStack_<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>,\n outerRef: React.Ref<any>\n) {\n const { as, hasGap, ...rest } = props;\n return renderStack(\n as ?? \"div\",\n rest as React.ComponentProps<T>,\n hasGap,\n outerRef\n );\n}\n\nconst FlexStack = React.forwardRef(FlexStack_) as <\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>\n) => React.ReactElement;\n\nconst makeStackImpl = <T extends keyof JSX.IntrinsicElements>(as: T) => {\n return React.forwardRef(\n (\n props: React.ComponentProps<T> & { hasGap?: boolean },\n ref: React.Ref<any>\n ) => {\n const { hasGap, ...rest } = props;\n return renderStack(as, rest as React.ComponentProps<T>, hasGap, ref);\n }\n ) as React.FC<React.ComponentProps<T> & { hasGap?: boolean }>;\n};\n\nexport const Stack = Object.assign(FlexStack, {\n div: makeStackImpl(\"div\"),\n a: makeStackImpl(\"a\"),\n button: makeStackImpl(\"button\"),\n h1: makeStackImpl(\"h1\"),\n h2: makeStackImpl(\"h2\"),\n h3: makeStackImpl(\"h3\"),\n h4: makeStackImpl(\"h4\"),\n h5: makeStackImpl(\"h5\"),\n h6: makeStackImpl(\"h6\"),\n label: makeStackImpl(\"label\"),\n form: makeStackImpl(\"form\"),\n section: makeStackImpl(\"section\"),\n head: makeStackImpl(\"head\"),\n main: makeStackImpl(\"main\"),\n nav: makeStackImpl(\"nav\"),\n});\n","import * as React from \"react\";\nimport { chainSingleArgFuncs, isSubset, notNil, omit, pick } from \"../common\";\nimport {\n createElementWithChildren,\n ensureNotArray,\n isReactNode,\n mergeProps,\n mergePropVals,\n NONE,\n} from \"../react-utils\";\nimport { Stack } from \"./Stack\";\n\ninterface Variants {\n [vg: string]: any;\n}\n\nexport type MultiChoiceArg<M extends string> = M | M[] | { [v in M]?: boolean };\nexport type SingleChoiceArg<M extends string> = M;\nexport type SingleBooleanChoiceArg<M extends string> = M | boolean;\n\ninterface OverrideTwiddle {\n wrapChildren?: (children: React.ReactNode) => React.ReactNode;\n wrap?: (node: React.ReactNode) => React.ReactNode;\n}\n\nexport type DefaultOverride<C extends React.ElementType> = {\n type: \"default\";\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type AsOverride<C extends React.ElementType> = {\n type: \"as\";\n as: C;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type RenderOverride<C extends React.ElementType> = {\n type: \"render\";\n render: (props: React.ComponentProps<C>, Comp: C) => React.ReactNode;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type Override<DefaultElementType extends React.ElementType> =\n | DefaultOverride<DefaultElementType>\n | AsOverride<any>\n | RenderOverride<DefaultElementType>;\n\nexport type Overrides = Record<string, Flex<any>>;\nexport type Args = Record<string, any>;\n\n// Flex provides a more \"flexible\" way to specify bindings.\nexport type Flex<DefaultElementType extends React.ElementType> =\n // Fully-specified bindings\n | (Omit<DefaultOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n render?: never;\n })\n | Omit<AsOverride<any>, \"type\">\n | (Omit<RenderOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n })\n\n // Valid ReactNode, used as children.\n // Note: We use React.ReactChild instead of React.ReactNode because we don't want to include\n // React.ReactFragment, which includes {}, which would allow any object to be passed in,\n // defeating any attempt to type-check!\n | React.ReactChild\n\n // Ignored\n | null\n | undefined\n\n // dict of props for the DefaultElementType\n | (Partial<React.ComponentProps<DefaultElementType>> & {\n wrap?: never;\n wrapChildren?: never;\n props?: never;\n as?: never;\n render?: never;\n })\n\n // render function taking in dict of props for the DefaultElementType\n | ((props: React.ComponentProps<DefaultElementType>) => React.ReactNode);\n\nexport function hasVariant<V extends Variants>(\n variants: V | undefined,\n groupName: keyof V,\n variant: string\n) {\n if (variants == null) {\n return false;\n }\n const groupVariants = variants[groupName];\n if (groupVariants == null) {\n return false;\n } else if (groupVariants === true) {\n return variant === groupName;\n } else if (groupVariants === false) {\n return false;\n } else if (Array.isArray(groupVariants)) {\n return groupVariants.includes(variant);\n } else if (typeof groupVariants === \"string\") {\n return groupVariants === variant;\n } else {\n return (\n groupVariants[variant] !== undefined && groupVariants[variant] !== false\n );\n }\n}\n\nexport function wrapFlexContainerChildren(\n children: React.ReactNode,\n hasGap: boolean\n) {\n // We need to always wrap the children, even if there are no gaps, because\n // otherwise if we toggle between with and without gap, React reconciliation\n // will blow away the children tree and all state if we switch from having\n // a wrapper and not.\n const className = hasGap ? \"__wab_flex-container\" : \"__wab_passthrough\";\n if (!children) {\n return null;\n } else if (Array.isArray(children)) {\n return React.createElement(\"div\", { className }, ...children);\n } else {\n return React.createElement(\"div\", { className }, children);\n }\n}\n\nfunction createPlasmicElement<DefaultElementType extends React.ElementType>(\n override: Flex<DefaultElementType>,\n defaultRoot: DefaultElementType,\n defaultProps: Partial<React.ComponentProps<DefaultElementType>>,\n wrapChildrenInFlex?: boolean\n): React.ReactNode | null {\n if (!override || Object.keys(override).length === 0) {\n return createElementWithChildren(defaultRoot, defaultProps, defaultProps.children)\n }\n const override2 = deriveOverride(override);\n const props = mergeOverrideProps(defaultProps, override2.props);\n if (override2.type === \"render\") {\n return override2.render(\n props as React.ComponentProps<DefaultElementType>,\n defaultRoot\n );\n }\n\n let root = defaultRoot;\n if (override2.type === \"as\" && override2.as) {\n if (defaultRoot === (Stack as React.ElementType)) {\n // If there was an \"as\" override specified, but the default type is\n // a Stack, then we don't want to switch to using \"as\" as the root,\n // because then we'd lose the flex wrapper that Stack provides.\n // Instead, we specify the \"as\" as the \"as\" prop to Stack.\n props.as = override2.as;\n } else {\n root = override2.as;\n }\n }\n\n let children = props.children;\n\n if (override2.wrapChildren) {\n children = override2.wrapChildren(ensureNotArray(children));\n }\n\n if (wrapChildrenInFlex) {\n // For legacy, we still support data-plasmic-wrap-flex-children\n children = wrapFlexContainerChildren(children, true);\n }\n\n let result = createElementWithChildren(root, props, children);\n\n if (override2.wrap) {\n result = override2.wrap(result) as React.ReactElement;\n }\n\n return result;\n}\n\n// We use data-plasmic-XXX attributes for custom properties since Typescript doesn't\n// support type check on jsx pragma. See https://github.com/microsoft/TypeScript/issues/21699\n// for more info.\nconst seenElements = new Map<string, React.ReactNode>();\nexport function createPlasmicElementProxy<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n // We use seenElements to keep track of elements that has been rendered by\n // createPlasmicElementProxy(). When a JSX tree is evaluated, the JSX factory\n // is invoked from the leaf to the root as the last call. So we can store\n // all the elements we've created until we encounter the leaf, at which point\n // we will clear this map. We are guaranteed that this map will only contain\n // elements from one Plasmic* component at a time, because we're just creating\n // elements and not \"rendering\" at this point; even if this JSX tree references\n // other Plasmic* elements, we'll just create an element referencing that component,\n // rather than following into the content of that component.\n //\n // TODO: is this ConcurrentMode friendly?\n\n if (props == null) {\n props = {};\n }\n\n const name = props[\"data-plasmic-name\"];\n const isRoot = props[\"data-plasmic-root\"];\n const forNodeName = props[\"data-plasmic-for-node\"];\n\n delete props[\"data-plasmic-name\"];\n delete props[\"data-plasmic-root\"];\n delete props[\"data-plasmic-for-node\"];\n\n const element = createPlasmicElementFromJsx(\n defaultElement,\n props,\n ...children\n );\n if (name) {\n seenElements.set(name, element);\n }\n\n if (isRoot) {\n // If this is the root, and we requested a specific node by specifying data-plasmic-for-node,\n // then return that node instead\n const forNode = forNodeName\n ? seenElements.get(forNodeName) ?? null\n : element;\n\n // Clear out the seenElements map, as we're done rendering this Plasmic* component.\n seenElements.clear();\n return forNode;\n }\n return element;\n}\n\nfunction createPlasmicElementFromJsx<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n const override = props[\"data-plasmic-override\"];\n const wrapFlexChild = props[\"data-plasmic-wrap-flex-child\"];\n const triggerProps = (props[\"data-plasmic-trigger-props\"] ??\n []) as React.HTMLAttributes<HTMLElement>[];\n delete props[\"data-plasmic-override\"];\n delete props[\"data-plasmic-wrap-flex-child\"];\n delete props[\"data-plasmic-trigger-props\"];\n return createPlasmicElement(\n override,\n defaultElement,\n mergeProps(\n props,\n children.length === 0 ? {} : { children: children.length === 1 ? children[0] : children },\n ...triggerProps\n ) as any,\n wrapFlexChild\n );\n}\n\nexport function makeFragment(...children: React.ReactNode[]) {\n return React.createElement(React.Fragment, {}, ...children);\n}\n\nexport const UNSET = Symbol(\"UNSET\");\n\nfunction mergeOverrideProps(\n defaults: Record<string, any>,\n overrides?: Record<string, any>\n): Record<string, any> {\n if (!overrides) {\n return defaults;\n }\n\n const result = { ...defaults };\n\n for (const key of Object.keys(overrides)) {\n const defaultVal = defaults[key];\n let overrideVal = overrides[key];\n if (overrideVal === UNSET) {\n delete result[key];\n } else {\n // We use the NONE sentinel if the overrideVal is nil, and is not one of the\n // props that we merge by default -- which are className, style, and\n // event handlers. This means for all other \"normal\" props -- like children,\n // title, etc -- a nil value will unset the default.\n if (\n overrideVal == null &&\n key !== \"className\" &&\n key !== \"style\" &&\n !(key.startsWith(\"on\") && typeof defaultVal === \"function\")\n ) {\n overrideVal = NONE;\n }\n result[key] = mergePropVals(key, defaultVal, overrideVal);\n }\n }\n\n return result;\n}\n\nexport function wrapWithClassName(element: React.ReactNode, className: string) {\n const key = React.isValidElement(element)\n ? element.key || undefined\n : undefined;\n return React.createElement(\n \"div\",\n {\n key,\n className,\n style: {\n display: \"grid\",\n },\n },\n element\n );\n}\n\nfunction deriveOverride<C extends React.ElementType>(x: Flex<C>): Override<C> {\n if (!x) {\n // undefined Binding is an empty Binding\n return {\n type: \"default\",\n props: {} as any,\n };\n } else if (isReactNode(x)) {\n // If ReactNode, then assume this is the children\n return {\n type: \"default\",\n props: {\n children: x,\n } as any,\n };\n } else if (typeof x === \"object\") {\n // If any of the overrideKeys is a key of this object, then assume\n // this is a full Override\n if (\"as\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"as\",\n } as any;\n } else if (\"render\" in x) {\n return {\n ...x,\n type: \"render\",\n } as any;\n } else if (\"props\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"default\",\n };\n } else if (isSubset(Object.keys(x), [\"wrap\", \"wrapChildren\"])) {\n // Only twiddling functions present, so assume no props overrides\n // (otherwise we'd assume these were props).\n return {\n ...x,\n props: {},\n type: \"default\",\n };\n }\n\n // Else, assume this is just a props object.\n return {\n type: \"default\",\n props: x as any,\n };\n } else if (typeof x === \"function\") {\n return {\n type: \"render\",\n render: x,\n };\n }\n\n throw new Error(`Unexpected override: ${x}`);\n}\n\nfunction mergeVariants<V extends Variants>(\n v1: Partial<V> | undefined,\n v2: Partial<V> | undefined\n): Partial<V> {\n if (!v1 || !v2) {\n return v1 || v2 || {};\n }\n return { ...v1, ...v2 };\n}\n\nfunction mergeArgs<A extends Args>(a1: Partial<A> | undefined, a2: Partial<A> | undefined): Partial<A> {\n if (!a1 || !a2) {\n return a1 || a2 || {};\n }\n return { ...a1, ...a2 };\n}\n\nfunction mergeFlexOverrides<O extends Overrides>(\n o1: Partial<O>,\n o2: Partial<O> | undefined\n): Partial<O> {\n if (!o2) {\n return o1;\n }\n const keys = Array.from(new Set([...Object.keys(o1), ...Object.keys(o2)]));\n const merged: Record<string, any> = {};\n for (const key of keys) {\n merged[key] = mergeFlexOverride(o1[key], o2[key]);\n }\n return merged as Partial<O>;\n}\n\nfunction mergeFlexOverride<C extends React.ElementType<any>>(\n fo1: Flex<C> | undefined,\n fo2: Flex<C> | undefined\n): Flex<C> | undefined {\n if (!fo1) {\n return fo2;\n }\n if (!fo2) {\n return fo1;\n }\n\n const o1 = deriveOverride(fo1);\n const o2 = deriveOverride(fo2);\n const wrap = chainSingleArgFuncs(...[o1.wrap, o2.wrap].filter(notNil));\n const wrapChildren = chainSingleArgFuncs(\n ...[o1.wrapChildren, o2.wrapChildren].filter(notNil)\n );\n\n // \"render\" type always takes precedence, but we still merge the props\n const props = mergeOverrideProps(o1.props ?? {}, o2.props) as Partial<\n React.ComponentProps<C>\n >;\n if (o2.type === \"render\") {\n return {\n render: o2.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n if (o1.type === \"render\") {\n return {\n render: o1.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n // \"as\" will take precedence\n const as =\n (o2.type === \"as\" ? o2.as : undefined) ??\n (o1.type === \"as\" ? o1.as : undefined);\n\n return {\n props,\n wrap,\n wrapChildren,\n ...(as ? { as } : {}),\n };\n}\n\nexport function deriveRenderOpts(\n props: Record<string, any>,\n config: {\n name: string;\n descendantNames: string[];\n internalVariantPropNames: string[];\n internalArgPropNames: string[];\n }\n) {\n const {\n name,\n descendantNames,\n internalVariantPropNames,\n internalArgPropNames,\n } = config;\n const reservedPropNames = [\"variants\", \"args\", \"overrides\"];\n const variants = mergeVariants(\n omit(pick(props, ...internalVariantPropNames), ...reservedPropNames),\n props.variants\n );\n const args = mergeArgs(\n omit(pick(props, ...internalArgPropNames), ...reservedPropNames),\n props.args\n );\n let overrides = mergeFlexOverrides(\n omit(\n pick(props, ...descendantNames),\n ...internalArgPropNames,\n ...internalVariantPropNames,\n ...reservedPropNames\n ),\n props.overrides\n );\n\n const leftoverProps = omit(\n props,\n \"variants\",\n \"args\",\n \"overrides\",\n ...descendantNames,\n ...internalVariantPropNames,\n ...internalArgPropNames\n ) as Partial<React.ComponentProps<\"button\">>;\n\n if (Object.keys(leftoverProps).length > 0) {\n overrides = mergeFlexOverrides(overrides, {\n [name]: {\n props: leftoverProps,\n },\n });\n }\n return { variants, args, overrides };\n}\n","const isDefaultValue = (val: string) => val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\nexport function ensureGlobalVariants<T extends Record<string, any>>(\n globalVariantValues: T\n) {\n Object.entries(globalVariantValues)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariantValues as any)[key] = undefined;\n\n if (!seenDefaultVariants[key] && process.env.NODE_ENV === \"development\") {\n seenDefaultVariants[key] = true;\n const providerName = `${key[0].toUpperCase()}${key.substring(\n 1\n )}Context.Provider`;\n console.warn(\n `Plasmic context value for global variant \"${key}\" was not provided; please use ${providerName} at the root of your React app. Learn More: https://www.plasmic.app/learn/other-assets/#global-variants`\n );\n }\n });\n return globalVariantValues;\n}\n","import * as React from \"react\";\n\nexport function PlasmicIcon(\n props: React.ComponentProps<\"svg\"> & {\n PlasmicIconType: React.ComponentType;\n }\n) {\n const { PlasmicIconType, ...rest } = props;\n return <PlasmicIconType {...rest} />;\n}\n","import React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n return React.createElement(\n props.component,\n pick(props, ...nextjsProps),\n <a {...omit(props, \"component\", \"platform\", ...nextjsProps)} ref={ref} />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n});\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\n}\n","import * as React from \"react\";\nimport { mergeProps } from \"../react-utils\";\nimport { Trans } from \"./translation\";\n\nexport function PlasmicSlot<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: React.ComponentProps<T> & {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n }\n) {\n return renderPlasmicSlot(props);\n}\n\nexport function renderPlasmicSlot<\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(opts: {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n}) {\n const { as, defaultContents, value, ...rest } = opts;\n\n let content = value === undefined ? defaultContents : value;\n if (!content || (Array.isArray(content) && content.length === 0)) {\n return null;\n }\n\n // If the content is a raw string, then we need to wrap the raw string\n // into an element, in case the slot is inside a flex-gap\n // container (you cannot apply margin to just a text node).\n const maybeString = maybeAsString(content);\n if (maybeString) {\n content = <div className=\"__wab_slot-string-wrapper\">{maybeString}</div>;\n }\n\n const nonEmptyProps = Object.keys(rest).filter((p) => !!(rest as any)[p]);\n if (nonEmptyProps.length === 0) {\n // No attrs to apply to the slot (which means the slot is unstyled), then\n // just render the content directly; no need for style wrapper.\n return <>{content}</>;\n }\n\n return React.createElement(\n as || \"div\",\n mergeProps({ className: \"__wab_slot\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(node: React.ReactNode): string | undefined {\n // Unwrap fragments\n if (\n React.isValidElement(node) &&\n // Fragment and Trans don't render DOM elements\n (node.type === React.Fragment || node.type === Trans)\n ) {\n return maybeAsString(node.props.children);\n }\n\n if (typeof node === \"string\") {\n return node;\n }\n\n if (Array.isArray(node) && node.length === 1 && typeof node[0] === \"string\") {\n return node[0];\n }\n\n return undefined;\n}\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { isBrowser, useIsomorphicLayoutEffect } from \"../react-utils\";\n\ntype Queries = { [name: string]: string };\n\nconst listeners: Array<() => void> = [];\nconst queries: Queries = {};\n\nfunction matchScreenVariants() {\n if (!isBrowser) {\n return [];\n }\n return Object.entries(queries)\n .filter(([, query]) => window.matchMedia(query).matches)\n .map(([name]) => name);\n}\n\n// undefined if screen variants have never been calculated\nlet curScreenVariants: string[] | undefined = undefined;\n\nfunction recalculateScreenVariants() {\n const screenVariant = matchScreenVariants();\n if (\n !curScreenVariants ||\n screenVariant.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n curScreenVariants = screenVariant;\n ReactDOM.unstable_batchedUpdates(() =>\n listeners.forEach((listener) => listener())\n );\n }\n}\n\nfunction ensureInitCurScreenVariants() {\n // Initializes curScreenVariants if it hadn't been before. Note that this must\n // be called from within an effect.\n if (curScreenVariants === undefined) {\n curScreenVariants = matchScreenVariants();\n }\n}\n\nif (isBrowser) {\n window.addEventListener(\"resize\", recalculateScreenVariants);\n}\n\nexport function createUseScreenVariants(\n isMulti: boolean,\n screenQueries: Queries\n) {\n Object.assign(queries, screenQueries);\n curScreenVariants = undefined;\n\n return function () {\n // It is important that upon first render, we return [] or undefined, because\n // that is what SSR will use, and the client must match. In an effect (which\n // only happens on the client), we then actually ask for the real screen variant\n // and, if different from [] or undefined, forces a re-render.\n\n const [, updateState] = React.useState<{}>();\n const lastScreenVariantsRef = React.useRef<string[]>(\n curScreenVariants || []\n );\n\n // We do useLayoutEffect instead of useEffect to immediately\n // register our forceUpdate. This ensures that if there was\n // a window resize event between render and effects, that the\n // listener will be registered in time\n useIsomorphicLayoutEffect(() => {\n const updateIfChanged = () => {\n if (\n curScreenVariants &&\n lastScreenVariantsRef.current.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n lastScreenVariantsRef.current = curScreenVariants;\n // Force update\n updateState({});\n }\n };\n\n // Listeners are invoked whenever the window is resized\n listeners.push(updateIfChanged);\n\n // Initialize the curScreenVariants for the first time. We don't need\n // to invoke the listeners here because all components will already\n // have this effect running and will re-render if the real screen\n // variant is non-empty.\n ensureInitCurScreenVariants();\n\n // Now, if the curScreenVariants differs from what we returned last,\n // then force a re-render.\n updateIfChanged();\n return () => {\n // Remove our listener on unmount\n listeners.splice(listeners.indexOf(updateIfChanged), 1);\n };\n }, []);\n\n if (isMulti) {\n return curScreenVariants || [];\n } else if (curScreenVariants) {\n return curScreenVariants[curScreenVariants.length - 1];\n } else {\n return undefined;\n }\n };\n}\n","import * as React from \"react\";\nimport { useFocusRing as useAriaFocusRing } from \"@react-aria/focus\";\n\nfunction useFocused(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisible(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useFocusedWithin(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover() {\n const [isHover, setHover] = React.useState(false);\n return [\n isHover,\n {\n onMouseEnter: () => setHover(true),\n onMouseLeave: () => setHover(false),\n },\n ];\n}\n\nfunction usePressed() {\n const [isPressed, setPressed] = React.useState(false);\n return [\n isPressed,\n {\n onMouseDown: () => setPressed(true),\n onMouseUp: () => setPressed(false),\n },\n ];\n}\n\nconst TRIGGER_TO_HOOK = {\n useHover,\n useFocused,\n useFocusVisible,\n useFocusedWithin,\n useFocusVisibleWithin,\n usePressed,\n} as const;\n\ntype TriggerType = keyof typeof TRIGGER_TO_HOOK;\n\ninterface TriggerOpts {\n isTextInput?: boolean;\n}\n\n/**\n * Installs argment trigger. All the useTrigger calls must use hardcoded `trigger` arg,\n * as it's not valid to install variable React hooks!\n */\nexport function useTrigger(trigger: TriggerType, opts: TriggerOpts) {\n return TRIGGER_TO_HOOK[trigger](opts) as [\n boolean,\n React.HTMLAttributes<HTMLElement>\n ];\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport const classNames = _classNames;\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport {\n createPlasmicElementProxy,\n deriveRenderOpts,\n Flex,\n hasVariant,\n makeFragment,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n wrapWithClassName,\n} from \"./render/elements\";\nexport { ensureGlobalVariants } from \"./render/global-variants\";\nexport { PlasmicIcon } from \"./render/PlasmicIcon\";\nexport { PlasmicImg } from \"./render/PlasmicImg\";\nexport { PlasmicLink } from \"./render/PlasmicLink\";\nexport { PlasmicSlot, renderPlasmicSlot } from \"./render/PlasmicSlot\";\nexport { createUseScreenVariants } from \"./render/screen-variants\";\nexport { PlasmicRootProvider, useIsSSR } from \"./render/ssr\";\nexport { Stack } from \"./render/Stack\";\nexport { useTrigger } from \"./render/triggers\";\nexport { Trans, genTranslatableString } from \"./render/translation\";\n"],"names":["React","ReactDOM","useAriaFocusRing","_classNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/render/Stack.tsx","../../src/render/elements.ts","../../src/render/global-variants.ts","../../src/render/PlasmicIcon.tsx","../../src/render/PlasmicLink.tsx","../../src/render/PlasmicSlot.tsx","../../src/render/screen-variants.ts","../../src/render/triggers.ts","../../src/index-common.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { createElementWithChildren } from \"../react-utils\";\nimport { wrapFlexContainerChildren } from \"./elements\";\n\nfunction renderStack<T extends keyof JSX.IntrinsicElements>(\n as: T,\n props: React.ComponentProps<T>,\n hasGap: boolean | undefined,\n ref: React.Ref<any>\n) {\n const { children, ...rest } = props;\n const wrappedChildren = wrapFlexContainerChildren(children, hasGap ?? false);\n return createElementWithChildren(as, { ref, ...rest }, wrappedChildren);\n}\n\nfunction FlexStack_<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>,\n outerRef: React.Ref<any>\n) {\n const { as, hasGap, ...rest } = props;\n return renderStack(\n as ?? \"div\",\n rest as React.ComponentProps<T>,\n hasGap,\n outerRef\n );\n}\n\nconst FlexStack = React.forwardRef(FlexStack_) as <\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(\n props: { as?: T; hasGap?: boolean } & React.ComponentProps<T>\n) => React.ReactElement;\n\nconst makeStackImpl = <T extends keyof JSX.IntrinsicElements>(as: T) => {\n return React.forwardRef(\n (\n props: React.ComponentProps<T> & { hasGap?: boolean },\n ref: React.Ref<any>\n ) => {\n const { hasGap, ...rest } = props;\n return renderStack(as, rest as React.ComponentProps<T>, hasGap, ref);\n }\n ) as React.FC<React.ComponentProps<T> & { hasGap?: boolean }>;\n};\n\nexport const Stack = Object.assign(FlexStack, {\n div: makeStackImpl(\"div\"),\n a: makeStackImpl(\"a\"),\n button: makeStackImpl(\"button\"),\n h1: makeStackImpl(\"h1\"),\n h2: makeStackImpl(\"h2\"),\n h3: makeStackImpl(\"h3\"),\n h4: makeStackImpl(\"h4\"),\n h5: makeStackImpl(\"h5\"),\n h6: makeStackImpl(\"h6\"),\n label: makeStackImpl(\"label\"),\n form: makeStackImpl(\"form\"),\n section: makeStackImpl(\"section\"),\n head: makeStackImpl(\"head\"),\n main: makeStackImpl(\"main\"),\n nav: makeStackImpl(\"nav\"),\n});\n","import * as React from \"react\";\nimport { chainSingleArgFuncs, isSubset, notNil, omit, pick } from \"../common\";\nimport {\n createElementWithChildren,\n ensureNotArray,\n isReactNode,\n mergeProps,\n mergePropVals,\n NONE,\n} from \"../react-utils\";\nimport { Stack } from \"./Stack\";\n\ninterface Variants {\n [vg: string]: any;\n}\n\nexport type MultiChoiceArg<M extends string> = M | M[] | { [v in M]?: boolean };\nexport type SingleChoiceArg<M extends string> = M;\nexport type SingleBooleanChoiceArg<M extends string> = M | boolean;\n\ninterface OverrideTwiddle {\n wrapChildren?: (children: React.ReactNode) => React.ReactNode;\n wrap?: (node: React.ReactNode) => React.ReactNode;\n}\n\nexport type DefaultOverride<C extends React.ElementType> = {\n type: \"default\";\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type AsOverride<C extends React.ElementType> = {\n type: \"as\";\n as: C;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type RenderOverride<C extends React.ElementType> = {\n type: \"render\";\n render: (props: React.ComponentProps<C>, Comp: C) => React.ReactNode;\n props?: Partial<React.ComponentProps<C>>;\n} & OverrideTwiddle;\n\nexport type Override<DefaultElementType extends React.ElementType> =\n | DefaultOverride<DefaultElementType>\n | AsOverride<any>\n | RenderOverride<DefaultElementType>;\n\nexport type Overrides = Record<string, Flex<any>>;\nexport type Args = Record<string, any>;\n\n// Flex provides a more \"flexible\" way to specify bindings.\nexport type Flex<DefaultElementType extends React.ElementType> =\n // Fully-specified bindings\n | (Omit<DefaultOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n render?: never;\n })\n | Omit<AsOverride<any>, \"type\">\n | (Omit<RenderOverride<DefaultElementType>, \"type\"> & {\n as?: never;\n })\n\n // Valid ReactNode, used as children.\n // Note: We use React.ReactChild instead of React.ReactNode because we don't want to include\n // React.ReactFragment, which includes {}, which would allow any object to be passed in,\n // defeating any attempt to type-check!\n | React.ReactChild\n\n // Ignored\n | null\n | undefined\n\n // dict of props for the DefaultElementType\n | (Partial<React.ComponentProps<DefaultElementType>> & {\n wrap?: never;\n wrapChildren?: never;\n props?: never;\n as?: never;\n render?: never;\n })\n\n // render function taking in dict of props for the DefaultElementType\n | ((props: React.ComponentProps<DefaultElementType>) => React.ReactNode);\n\nexport function hasVariant<V extends Variants>(\n variants: V | undefined,\n groupName: keyof V,\n variant: string\n) {\n if (variants == null) {\n return false;\n }\n const groupVariants = variants[groupName];\n if (groupVariants == null) {\n return false;\n } else if (groupVariants === true) {\n return variant === groupName;\n } else if (groupVariants === false) {\n return false;\n } else if (Array.isArray(groupVariants)) {\n return groupVariants.includes(variant);\n } else if (typeof groupVariants === \"string\") {\n return groupVariants === variant;\n } else {\n return (\n groupVariants[variant] !== undefined && groupVariants[variant] !== false\n );\n }\n}\n\nexport function wrapFlexContainerChildren(\n children: React.ReactNode,\n hasGap: boolean\n) {\n // We need to always wrap the children, even if there are no gaps, because\n // otherwise if we toggle between with and without gap, React reconciliation\n // will blow away the children tree and all state if we switch from having\n // a wrapper and not.\n const className = hasGap ? \"__wab_flex-container\" : \"__wab_passthrough\";\n if (!children) {\n return null;\n } else if (Array.isArray(children)) {\n return React.createElement(\"div\", { className }, ...children);\n } else {\n return React.createElement(\"div\", { className }, children);\n }\n}\n\nfunction createPlasmicElement<DefaultElementType extends React.ElementType>(\n override: Flex<DefaultElementType>,\n defaultRoot: DefaultElementType,\n defaultProps: Partial<React.ComponentProps<DefaultElementType>>,\n wrapChildrenInFlex?: boolean\n): React.ReactNode | null {\n if (!override || Object.keys(override).length === 0) {\n return createElementWithChildren(defaultRoot, defaultProps, defaultProps.children)\n }\n const override2 = deriveOverride(override);\n const props = mergeOverrideProps(defaultProps, override2.props);\n if (override2.type === \"render\") {\n return override2.render(\n props as React.ComponentProps<DefaultElementType>,\n defaultRoot\n );\n }\n\n let root = defaultRoot;\n if (override2.type === \"as\" && override2.as) {\n if (defaultRoot === (Stack as React.ElementType)) {\n // If there was an \"as\" override specified, but the default type is\n // a Stack, then we don't want to switch to using \"as\" as the root,\n // because then we'd lose the flex wrapper that Stack provides.\n // Instead, we specify the \"as\" as the \"as\" prop to Stack.\n props.as = override2.as;\n } else {\n root = override2.as;\n }\n }\n\n let children = props.children;\n\n if (override2.wrapChildren) {\n children = override2.wrapChildren(ensureNotArray(children));\n }\n\n if (wrapChildrenInFlex) {\n // For legacy, we still support data-plasmic-wrap-flex-children\n children = wrapFlexContainerChildren(children, true);\n }\n\n let result = createElementWithChildren(root, props, children);\n\n if (override2.wrap) {\n result = override2.wrap(result) as React.ReactElement;\n }\n\n return result;\n}\n\n// We use data-plasmic-XXX attributes for custom properties since Typescript doesn't\n// support type check on jsx pragma. See https://github.com/microsoft/TypeScript/issues/21699\n// for more info.\nconst seenElements = new Map<string, React.ReactNode>();\nexport function createPlasmicElementProxy<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n // We use seenElements to keep track of elements that has been rendered by\n // createPlasmicElementProxy(). When a JSX tree is evaluated, the JSX factory\n // is invoked from the leaf to the root as the last call. So we can store\n // all the elements we've created until we encounter the leaf, at which point\n // we will clear this map. We are guaranteed that this map will only contain\n // elements from one Plasmic* component at a time, because we're just creating\n // elements and not \"rendering\" at this point; even if this JSX tree references\n // other Plasmic* elements, we'll just create an element referencing that component,\n // rather than following into the content of that component.\n //\n // TODO: is this ConcurrentMode friendly?\n\n if (props == null) {\n props = {};\n }\n\n const name = props[\"data-plasmic-name\"];\n const isRoot = props[\"data-plasmic-root\"];\n const forNodeName = props[\"data-plasmic-for-node\"];\n\n delete props[\"data-plasmic-name\"];\n delete props[\"data-plasmic-root\"];\n delete props[\"data-plasmic-for-node\"];\n\n const element = createPlasmicElementFromJsx(\n defaultElement,\n props,\n ...children\n );\n if (name) {\n seenElements.set(name, element);\n }\n\n if (isRoot) {\n // If this is the root, and we requested a specific node by specifying data-plasmic-for-node,\n // then return that node instead\n const forNode = forNodeName\n ? seenElements.get(forNodeName) ?? null\n : element;\n\n // Clear out the seenElements map, as we're done rendering this Plasmic* component.\n seenElements.clear();\n return forNode;\n }\n return element;\n}\n\nfunction createPlasmicElementFromJsx<\n DefaultElementType extends React.ElementType\n>(\n defaultElement: DefaultElementType,\n props: Partial<React.ComponentProps<DefaultElementType>>,\n ...children: React.ReactNode[]\n) {\n const override = props[\"data-plasmic-override\"];\n const wrapFlexChild = props[\"data-plasmic-wrap-flex-child\"];\n const triggerProps = (props[\"data-plasmic-trigger-props\"] ??\n []) as React.HTMLAttributes<HTMLElement>[];\n delete props[\"data-plasmic-override\"];\n delete props[\"data-plasmic-wrap-flex-child\"];\n delete props[\"data-plasmic-trigger-props\"];\n return createPlasmicElement(\n override,\n defaultElement,\n mergeProps(\n props,\n children.length === 0 ? {} : { children: children.length === 1 ? children[0] : children },\n ...triggerProps\n ) as any,\n wrapFlexChild\n );\n}\n\nexport function makeFragment(...children: React.ReactNode[]) {\n return React.createElement(React.Fragment, {}, ...children);\n}\n\nexport const UNSET = Symbol(\"UNSET\");\n\nfunction mergeOverrideProps(\n defaults: Record<string, any>,\n overrides?: Record<string, any>\n): Record<string, any> {\n if (!overrides) {\n return defaults;\n }\n\n const result = { ...defaults };\n\n for (const key of Object.keys(overrides)) {\n const defaultVal = defaults[key];\n let overrideVal = overrides[key];\n if (overrideVal === UNSET) {\n delete result[key];\n } else {\n // We use the NONE sentinel if the overrideVal is nil, and is not one of the\n // props that we merge by default -- which are className, style, and\n // event handlers. This means for all other \"normal\" props -- like children,\n // title, etc -- a nil value will unset the default.\n if (\n overrideVal == null &&\n key !== \"className\" &&\n key !== \"style\" &&\n !(key.startsWith(\"on\") && typeof defaultVal === \"function\")\n ) {\n overrideVal = NONE;\n }\n result[key] = mergePropVals(key, defaultVal, overrideVal);\n }\n }\n\n return result;\n}\n\nexport function wrapWithClassName(element: React.ReactNode, className: string) {\n const key = React.isValidElement(element)\n ? element.key || undefined\n : undefined;\n return React.createElement(\n \"div\",\n {\n key,\n className,\n style: {\n display: \"grid\",\n },\n },\n element\n );\n}\n\nfunction deriveOverride<C extends React.ElementType>(x: Flex<C>): Override<C> {\n if (!x) {\n // undefined Binding is an empty Binding\n return {\n type: \"default\",\n props: {} as any,\n };\n } else if (isReactNode(x)) {\n // If ReactNode, then assume this is the children\n return {\n type: \"default\",\n props: {\n children: x,\n } as any,\n };\n } else if (typeof x === \"object\") {\n // If any of the overrideKeys is a key of this object, then assume\n // this is a full Override\n if (\"as\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"as\",\n } as any;\n } else if (\"render\" in x) {\n return {\n ...x,\n type: \"render\",\n } as any;\n } else if (\"props\" in x) {\n return {\n ...x,\n props: x.props || {},\n type: \"default\",\n };\n } else if (isSubset(Object.keys(x), [\"wrap\", \"wrapChildren\"])) {\n // Only twiddling functions present, so assume no props overrides\n // (otherwise we'd assume these were props).\n return {\n ...x,\n props: {},\n type: \"default\",\n };\n }\n\n // Else, assume this is just a props object.\n return {\n type: \"default\",\n props: x as any,\n };\n } else if (typeof x === \"function\") {\n return {\n type: \"render\",\n render: x,\n };\n }\n\n throw new Error(`Unexpected override: ${x}`);\n}\n\nfunction mergeVariants<V extends Variants>(\n v1: Partial<V> | undefined,\n v2: Partial<V> | undefined\n): Partial<V> {\n if (!v1 || !v2) {\n return v1 || v2 || {};\n }\n return { ...v1, ...v2 };\n}\n\nfunction mergeArgs<A extends Args>(a1: Partial<A> | undefined, a2: Partial<A> | undefined): Partial<A> {\n if (!a1 || !a2) {\n return a1 || a2 || {};\n }\n return { ...a1, ...a2 };\n}\n\nfunction mergeFlexOverrides<O extends Overrides>(\n o1: Partial<O>,\n o2: Partial<O> | undefined\n): Partial<O> {\n if (!o2) {\n return o1;\n }\n const keys = Array.from(new Set([...Object.keys(o1), ...Object.keys(o2)]));\n const merged: Record<string, any> = {};\n for (const key of keys) {\n merged[key] = mergeFlexOverride(o1[key], o2[key]);\n }\n return merged as Partial<O>;\n}\n\nfunction mergeFlexOverride<C extends React.ElementType<any>>(\n fo1: Flex<C> | undefined,\n fo2: Flex<C> | undefined\n): Flex<C> | undefined {\n if (!fo1) {\n return fo2;\n }\n if (!fo2) {\n return fo1;\n }\n\n const o1 = deriveOverride(fo1);\n const o2 = deriveOverride(fo2);\n const wrap = chainSingleArgFuncs(...[o1.wrap, o2.wrap].filter(notNil));\n const wrapChildren = chainSingleArgFuncs(\n ...[o1.wrapChildren, o2.wrapChildren].filter(notNil)\n );\n\n // \"render\" type always takes precedence, but we still merge the props\n const props = mergeOverrideProps(o1.props ?? {}, o2.props) as Partial<\n React.ComponentProps<C>\n >;\n if (o2.type === \"render\") {\n return {\n render: o2.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n if (o1.type === \"render\") {\n return {\n render: o1.render,\n props,\n wrap,\n wrapChildren,\n };\n }\n\n // \"as\" will take precedence\n const as =\n (o2.type === \"as\" ? o2.as : undefined) ??\n (o1.type === \"as\" ? o1.as : undefined);\n\n return {\n props,\n wrap,\n wrapChildren,\n ...(as ? { as } : {}),\n };\n}\n\nexport function deriveRenderOpts(\n props: Record<string, any>,\n config: {\n name: string;\n descendantNames: string[];\n internalVariantPropNames: string[];\n internalArgPropNames: string[];\n }\n) {\n const {\n name,\n descendantNames,\n internalVariantPropNames,\n internalArgPropNames,\n } = config;\n const reservedPropNames = [\"variants\", \"args\", \"overrides\"];\n const variants = mergeVariants(\n omit(pick(props, ...internalVariantPropNames), ...reservedPropNames),\n props.variants\n );\n const args = mergeArgs(\n omit(pick(props, ...internalArgPropNames), ...reservedPropNames),\n props.args\n );\n let overrides = mergeFlexOverrides(\n omit(\n pick(props, ...descendantNames),\n ...internalArgPropNames,\n ...internalVariantPropNames,\n ...reservedPropNames\n ),\n props.overrides\n );\n\n const leftoverProps = omit(\n props,\n \"variants\",\n \"args\",\n \"overrides\",\n ...descendantNames,\n ...internalVariantPropNames,\n ...internalArgPropNames\n ) as Partial<React.ComponentProps<\"button\">>;\n\n if (Object.keys(leftoverProps).length > 0) {\n overrides = mergeFlexOverrides(overrides, {\n [name]: {\n props: leftoverProps,\n },\n });\n }\n return { variants, args, overrides };\n}\n","const isDefaultValue = (val: string) => val === \"PLEASE_RENDER_INSIDE_PROVIDER\";\nconst seenDefaultVariants: Record<string, boolean> = {};\nexport function ensureGlobalVariants<T extends Record<string, any>>(\n globalVariantValues: T\n) {\n Object.entries(globalVariantValues)\n .filter(([_, value]) => isDefaultValue(value))\n .forEach(([key, _]) => {\n (globalVariantValues as any)[key] = undefined;\n\n if (!seenDefaultVariants[key] && process.env.NODE_ENV === \"development\") {\n seenDefaultVariants[key] = true;\n const providerName = `${key[0].toUpperCase()}${key.substring(\n 1\n )}Context.Provider`;\n console.warn(\n `Plasmic context value for global variant \"${key}\" was not provided; please use ${providerName} at the root of your React app. Learn More: https://www.plasmic.app/learn/other-assets/#global-variants`\n );\n }\n });\n return globalVariantValues;\n}\n","import * as React from \"react\";\n\nexport function PlasmicIcon(\n props: React.ComponentProps<\"svg\"> & {\n PlasmicIconType: React.ComponentType;\n }\n) {\n const { PlasmicIconType, ...rest } = props;\n return <PlasmicIconType {...rest} />;\n}\n","import React from \"react\";\nimport { omit, pick } from \"../common\";\n\nexport const PlasmicLink = React.forwardRef(function PlasmicLink(\n props: any,\n ref: React.Ref<any>\n) {\n // props.href is required for nextjs; if no props.href,\n // then we just render the default anchor element\n if (props.platform === \"nextjs\" && props.href) {\n const nextjsProps = [\n \"href\",\n \"replace\",\n \"scroll\",\n \"shallow\",\n \"passHref\",\n \"prefetch\",\n \"locale\",\n ];\n\n return React.createElement(\n props.component,\n pick(props, ...nextjsProps),\n <a {...omit(props, \"component\", \"platform\", ...nextjsProps)} ref={ref} />\n );\n }\n\n if (props.platform === \"gatsby\" && isInternalHref(props.href)) {\n return React.createElement(props.component, {\n ...omit(props, \"component\", \"platform\", \"href\"),\n ...{ to: props.href, ref },\n });\n }\n\n return <a {...omit(props, \"component\", \"platform\")} ref={ref} />;\n});\n\nfunction isInternalHref(href: string): boolean {\n return /^\\/(?!\\/)/.test(href);\n}\n","import * as React from \"react\";\nimport { mergeProps } from \"../react-utils\";\nimport { Trans } from \"./translation\";\n\nexport function PlasmicSlot<T extends keyof JSX.IntrinsicElements = \"div\">(\n props: React.ComponentProps<T> & {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n }\n) {\n return renderPlasmicSlot(props);\n}\n\nexport function renderPlasmicSlot<\n T extends keyof JSX.IntrinsicElements = \"div\"\n>(opts: {\n as?: T;\n defaultContents?: React.ReactNode;\n value?: React.ReactNode;\n}) {\n const { as, defaultContents, value, ...rest } = opts;\n\n let content = value === undefined ? defaultContents : value;\n if (!content || (Array.isArray(content) && content.length === 0)) {\n return null;\n }\n\n // If the content is a raw string, then we need to wrap the raw string\n // into an element, in case the slot is inside a flex-gap\n // container (you cannot apply margin to just a text node).\n const maybeString = maybeAsString(content);\n if (maybeString) {\n content = <div className=\"__wab_slot-string-wrapper\">{maybeString}</div>;\n }\n\n const nonEmptyProps = Object.keys(rest).filter((p) => !!(rest as any)[p]);\n if (nonEmptyProps.length === 0) {\n // No attrs to apply to the slot (which means the slot is unstyled), then\n // just render the content directly; no need for style wrapper.\n return <>{content}</>;\n }\n\n return React.createElement(\n as || \"div\",\n mergeProps({ className: \"__wab_slot\" }, rest),\n content\n );\n}\n\nfunction maybeAsString(node: React.ReactNode): string | undefined {\n // Unwrap fragments\n if (\n React.isValidElement(node) &&\n // Fragment and Trans don't render DOM elements\n (node.type === React.Fragment || node.type === Trans)\n ) {\n return maybeAsString(node.props.children);\n }\n\n if (typeof node === \"string\") {\n return node;\n }\n\n if (Array.isArray(node) && node.length === 1 && typeof node[0] === \"string\") {\n return node[0];\n }\n\n return undefined;\n}\n","import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { isBrowser, useIsomorphicLayoutEffect } from \"../react-utils\";\n\ntype Queries = { [name: string]: string };\n\nconst listeners: Array<() => void> = [];\nconst queries: Queries = {};\n\nfunction matchScreenVariants() {\n if (!isBrowser) {\n return [];\n }\n return Object.entries(queries)\n .filter(([, query]) => window.matchMedia(query).matches)\n .map(([name]) => name);\n}\n\n// undefined if screen variants have never been calculated\nlet curScreenVariants: string[] | undefined = undefined;\n\nfunction recalculateScreenVariants() {\n const screenVariant = matchScreenVariants();\n if (\n !curScreenVariants ||\n screenVariant.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n curScreenVariants = screenVariant;\n ReactDOM.unstable_batchedUpdates(() =>\n listeners.forEach((listener) => listener())\n );\n }\n}\n\nfunction ensureInitCurScreenVariants() {\n // Initializes curScreenVariants if it hadn't been before. Note that this must\n // be called from within an effect.\n if (curScreenVariants === undefined) {\n curScreenVariants = matchScreenVariants();\n }\n}\n\nif (isBrowser) {\n window.addEventListener(\"resize\", recalculateScreenVariants);\n}\n\nexport function createUseScreenVariants(\n isMulti: boolean,\n screenQueries: Queries\n) {\n Object.assign(queries, screenQueries);\n curScreenVariants = undefined;\n\n return function () {\n // It is important that upon first render, we return [] or undefined, because\n // that is what SSR will use, and the client must match. In an effect (which\n // only happens on the client), we then actually ask for the real screen variant\n // and, if different from [] or undefined, forces a re-render.\n\n const [, updateState] = React.useState<{}>();\n const lastScreenVariantsRef = React.useRef<string[]>(\n curScreenVariants || []\n );\n\n // We do useLayoutEffect instead of useEffect to immediately\n // register our forceUpdate. This ensures that if there was\n // a window resize event between render and effects, that the\n // listener will be registered in time\n useIsomorphicLayoutEffect(() => {\n const updateIfChanged = () => {\n if (\n curScreenVariants &&\n lastScreenVariantsRef.current.join(\"\") !== curScreenVariants.join(\"\")\n ) {\n lastScreenVariantsRef.current = curScreenVariants;\n // Force update\n updateState({});\n }\n };\n\n // Listeners are invoked whenever the window is resized\n listeners.push(updateIfChanged);\n\n // Initialize the curScreenVariants for the first time. We don't need\n // to invoke the listeners here because all components will already\n // have this effect running and will re-render if the real screen\n // variant is non-empty.\n ensureInitCurScreenVariants();\n\n // Now, if the curScreenVariants differs from what we returned last,\n // then force a re-render.\n updateIfChanged();\n return () => {\n // Remove our listener on unmount\n listeners.splice(listeners.indexOf(updateIfChanged), 1);\n };\n }, []);\n\n if (isMulti) {\n return curScreenVariants || [];\n } else if (curScreenVariants) {\n return curScreenVariants[curScreenVariants.length - 1];\n } else {\n return undefined;\n }\n };\n}\n","import * as React from \"react\";\nimport { useFocusRing as useAriaFocusRing } from \"@react-aria/focus\";\n\nfunction useFocused(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisible(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: false,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useFocusedWithin(opts: { isTextInput?: boolean }) {\n const { isFocused, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocused, focusProps];\n}\n\nfunction useFocusVisibleWithin(opts: { isTextInput?: boolean }) {\n const { isFocusVisible, focusProps } = useAriaFocusRing({\n within: true,\n isTextInput: opts.isTextInput,\n });\n\n return [isFocusVisible, focusProps];\n}\n\nfunction useHover() {\n const [isHover, setHover] = React.useState(false);\n return [\n isHover,\n {\n onMouseEnter: () => setHover(true),\n onMouseLeave: () => setHover(false),\n },\n ];\n}\n\nfunction usePressed() {\n const [isPressed, setPressed] = React.useState(false);\n return [\n isPressed,\n {\n onMouseDown: () => setPressed(true),\n onMouseUp: () => setPressed(false),\n },\n ];\n}\n\nconst TRIGGER_TO_HOOK = {\n useHover,\n useFocused,\n useFocusVisible,\n useFocusedWithin,\n useFocusVisibleWithin,\n usePressed,\n} as const;\n\ntype TriggerType = keyof typeof TRIGGER_TO_HOOK;\n\ninterface TriggerOpts {\n isTextInput?: boolean;\n}\n\n/**\n * Installs argment trigger. All the useTrigger calls must use hardcoded `trigger` arg,\n * as it's not valid to install variable React hooks!\n */\nexport function useTrigger(trigger: TriggerType, opts: TriggerOpts) {\n return TRIGGER_TO_HOOK[trigger](opts) as [\n boolean,\n React.HTMLAttributes<HTMLElement>\n ];\n}\n","// Utilities used by generated code\nimport _classNames from \"classnames\";\nexport const classNames = _classNames;\nexport { omit, pick } from \"./common\";\nexport { HTMLElementRefOf, StrictProps } from \"./react-utils\";\nexport {\n createPlasmicElementProxy,\n deriveRenderOpts,\n Flex,\n hasVariant,\n makeFragment,\n MultiChoiceArg,\n SingleBooleanChoiceArg,\n SingleChoiceArg,\n wrapWithClassName,\n} from \"./render/elements\";\nexport { ensureGlobalVariants } from \"./render/global-variants\";\nexport { PlasmicHead, plasmicHeadMeta } from \"./render/PlasmicHead\";\nexport { PlasmicIcon } from \"./render/PlasmicIcon\";\nexport { PlasmicImg } from \"./render/PlasmicImg\";\nexport { PlasmicLink } from \"./render/PlasmicLink\";\nexport { PlasmicSlot, renderPlasmicSlot } from \"./render/PlasmicSlot\";\nexport { createUseScreenVariants } from \"./render/screen-variants\";\nexport { PlasmicRootProvider, useIsSSR } from \"./render/ssr\";\nexport { Stack } from \"./render/Stack\";\nexport { genTranslatableString, Trans } from \"./render/translation\";\nexport { useTrigger } from \"./render/triggers\";\n"],"names":["React","ReactDOM","useAriaFocusRing","_classNames"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { useCheckbox as useCheckbox$1 } from '@react-aria/checkbox';
|
|
|
4
4
|
import { VisuallyHidden } from '@react-aria/visually-hidden';
|
|
5
5
|
import { useToggleState } from '@react-stately/toggle';
|
|
6
6
|
import { m as mergeProps } from '../../react-utils-35cb2a4e.js';
|
|
7
|
-
import {
|
|
7
|
+
import { b as useEnsureSSRProvider } from '../../ssr-9ebd98ed.js';
|
|
8
8
|
import { m as mergeVariantToggles } from '../../plume-utils-623b91cc.js';
|
|
9
9
|
import { g as getStyleProps } from '../../props-utils-b2ad4997.js';
|
|
10
10
|
import 'classnames';
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { useMenu as useMenu$1, useMenuSection, useMenuItem as useMenuItem$1 } from '@react-aria/menu';
|
|
4
4
|
import { useTreeState } from '@react-stately/tree';
|
|
5
5
|
import { m as mergeProps } from '../../react-utils-35cb2a4e.js';
|
|
6
|
-
import {
|
|
6
|
+
import { b as useEnsureSSRProvider } from '../../ssr-9ebd98ed.js';
|
|
7
7
|
import { r as renderCollectionNode, u as useDerivedItemsFromChildren, a as renderAsCollectionChild } from '../../collection-utils-57c273dc.js';
|
|
8
8
|
import { n as noOutline, m as mergeVariantToggles } from '../../plume-utils-623b91cc.js';
|
|
9
9
|
import { g as getStyleProps } from '../../props-utils-b2ad4997.js';
|
|
@@ -7,7 +7,7 @@ import { useMenuTrigger as useMenuTrigger$1 } from '@react-aria/menu';
|
|
|
7
7
|
import { usePress } from '@react-aria/interactions';
|
|
8
8
|
import { g as getPlumeType, m as mergeVariantToggles } from '../../plume-utils-623b91cc.js';
|
|
9
9
|
import { useFocusable } from '@react-aria/focus';
|
|
10
|
-
import {
|
|
10
|
+
import { b as useEnsureSSRProvider } from '../../ssr-9ebd98ed.js';
|
|
11
11
|
import { g as getStyleProps } from '../../props-utils-b2ad4997.js';
|
|
12
12
|
import 'classnames';
|
|
13
13
|
import '@react-aria/ssr';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { BaseSelectProps, SelectRef, SelectRefValue, useSelect, } from "./select";
|
|
2
2
|
export { BaseSelectOptionProps, SelectOptionRef, useSelectOption, } from "./select-option";
|
|
3
3
|
export { BaseSelectOptionGroupProps, useSelectOptionGroup, } from "./select-option-group";
|
|
4
|
+
export { SelectContext } from "./context";
|
|
@@ -5,7 +5,7 @@ import { useListBox, useOption, useListBoxSection } from '@react-aria/listbox';
|
|
|
5
5
|
import { usePress } from '@react-aria/interactions';
|
|
6
6
|
import { useSelectState } from '@react-stately/select';
|
|
7
7
|
import { m as mergeProps, d as mergeRefs } from '../../react-utils-35cb2a4e.js';
|
|
8
|
-
import {
|
|
8
|
+
import { b as useEnsureSSRProvider } from '../../ssr-9ebd98ed.js';
|
|
9
9
|
import { g as getChildProp, r as renderCollectionNode, u as useDerivedItemsFromChildren, a as renderAsCollectionChild } from '../../collection-utils-57c273dc.js';
|
|
10
10
|
import { m as mergeVariantToggles, n as noOutline } from '../../plume-utils-623b91cc.js';
|
|
11
11
|
import { g as getStyleProps } from '../../props-utils-b2ad4997.js';
|
|
@@ -262,5 +262,5 @@ function useSelectOptionGroup(plasmicClass, props, config) {
|
|
|
262
262
|
};
|
|
263
263
|
}
|
|
264
264
|
|
|
265
|
-
export { useSelect, useSelectOption, useSelectOptionGroup };
|
|
265
|
+
export { SelectContext, useSelect, useSelectOption, useSelectOptionGroup };
|
|
266
266
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/plume/select/context.tsx","../../../../src/plume/select/select.tsx","../../../../src/plume/select/select-option.tsx","../../../../src/plume/select/select-option-group.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { ListState } from \"@react-stately/list\";\n\nexport const SelectContext = React.createContext<ListState<any> | undefined>(\n undefined\n);\n","import { Placement } from \"@react-types/overlays\";\nimport { AriaSelectProps } from \"@react-types/select\";\nimport {\n AriaLabelingProps,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputBase,\n} from \"@react-types/shared\";\nimport * as React from \"react\";\nimport {\n HiddenSelect,\n useSelect as useAriaSelect,\n} from \"@react-aria/select\";\nimport {\n useListBox\n} from \"@react-aria/listbox\";\nimport {\n usePress\n} from \"@react-aria/interactions\";\nimport {\n SelectState as AriaSelectState,\n useSelectState as useAriaSelectState,\n} from \"@react-stately/select\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n getChildProp,\n renderAsCollectionChild,\n renderCollectionNode,\n useDerivedItemsFromChildren,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport {\n TriggeredOverlayContext,\n TriggeredOverlayContextValue,\n} from \"../triggered-overlay/context\";\nimport { SelectContext } from \"./context\";\nimport { BaseSelectOptionProps } from \"./select-option\";\nimport { BaseSelectOptionGroupProps } from \"./select-option-group\";\n\nexport interface BaseSelectProps\n extends DOMProps,\n AriaLabelingProps,\n FocusableDOMProps,\n InputBase,\n FocusableProps,\n StyleProps {\n /**\n * Key of the currently selected value\n */\n value?: string | null;\n\n /**\n * Event handler fired when currently selected value changes\n */\n onChange?: (value: string | null) => void;\n\n /**\n * Uncontrolled key of the default selected value\n */\n defaultValue?: string;\n\n /**\n * List of Select.Options\n */\n children?: React.ReactNode;\n\n /**\n * Whether the Select is currently open\n */\n isOpen?: boolean;\n\n /**\n * Event handler fired when Select's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Uncontrolled default open state\n */\n defaultOpen?: boolean;\n\n /**\n * Form name of the select element\n */\n name?: string;\n\n /**\n * By default, Select will render whatever is in Select.Option as the\n * content in the trigger button when it is selected. You can override\n * what content by passing in `selectedContent` here.\n */\n selectedContent?: React.ReactNode;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n\n /**\n * Content to display when nothing is selected.\n */\n placeholder?: React.ReactNode;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"select-option\",\n sectionPlumeType: \"select-option-group\",\n};\n\ntype AriaOptionType = React.ReactElement<BaseSelectOptionProps>;\ntype AriaGroupType = React.ReactElement<BaseSelectOptionGroupProps>;\ntype AriaSelectItemType = AriaOptionType | AriaGroupType;\n\n/**\n * Converts props in our BaseSelectProps into props that react-aria's\n * useSelect() understands.\n *\n * Because we're not exposing the Collections API (see ./index.tsx),\n * we are converting our own API into props for useSelect.\n *\n * Specifically, in Plume's API,\n * - `children` flattens to a list of ReactElements of type Select.Option\n * or Select.OptionGroup\n *\n * and we map it this way to the Collections API:\n * - `items` is a list of those flattened ReactElements from `children`!\n * - `children`, as a render prop, is supposed to take one of the `items`\n * and return a `Section` or `Item` element. We take an Option/OptionGroup\n * element, and use its props to render the appropriate `Section` or\n * `Item`. The \"trick\" here is that we then stuff the Option element as\n * `Item.children`, and the OptionGroup element as `Section.title`.\n *\n * When the Collections API does its work deriving `Node`s, the corresponding\n * Option/OptionGroup ReactElements will end up as `Node.rendered`.\n *\n * Then, when we are actually rendering the content of the dropdown, we\n * iterate through each collected `Node`, and renders\n * React.cloneElement(Node.rendered, {_node: node}). This \"secretly\" passes\n * the derived collection `Node` as a prop to Option and OptionGroup, and they\n * can make use of the derived `Node.key` etc in their rendering functions.\n *\n * One thing to note here is that we never \"rendered\" the Option/OptionGroup\n * React elements that the user constructed; instead, we just looked at the\n * props used on those elements, and passed those onto the Collections API.\n * What gets rendered to the screen is the cloned version of these elements\n * with the secret derived `_node` prop. That means Option and OptionGroup\n * render functions can assume that _node is passed in.\n */\nfunction useAriaSelectProps(props: BaseSelectProps) {\n let {\n value,\n defaultValue,\n children,\n onChange,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n ...rest\n } = props;\n\n const { items, disabledKeys } = useDerivedItemsFromChildren(children, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Select.Option and Select.OptionGroup as children to Select`,\n requireItemValue: true,\n });\n\n const collectionChildRenderer = React.useCallback(\n (child) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n const onSelectionChange = React.useMemo(() => {\n if (onChange) {\n return (val: string | null) =>\n onChange!(\n (val == null || val === \"null\" ? null : val) as string | null\n );\n } else {\n return undefined;\n }\n }, [onChange]);\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n onSelectionChange,\n items,\n disabledKeys,\n defaultSelectedKey: defaultValue,\n\n // react-aria is picky about selectedKey; if it is null, it means \"no selection\";\n // if it is undefined, it means \"uncontrolled\". So here, if the user passes in a\n // value prop, then we make sure selectedKey will be null and not undefined, so\n // we don't accidentally enter uncontrolled mode.\n ...(\"value\" in props && { selectedKey: value ?? null }),\n } as AriaSelectProps<AriaSelectItemType>,\n };\n}\n\nexport type SelectRef = React.Ref<SelectRefValue>;\n\nexport interface SelectRefValue extends SelectState {\n getTrigger: () => HTMLElement | null;\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface SelectConfig<C extends AnyPlasmicClass> {\n placeholderVariant?: VariantDef<PlasmicClassVariants<C>>;\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n triggerContentSlot: keyof PlasmicClassArgs<C>;\n optionsSlot: keyof PlasmicClassArgs<C>;\n placeholderSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n overlay: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n}\n\ninterface SelectState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n getSelectedValue: () => string | null;\n setSelectedValue: (value: string | null) => void;\n}\n\nexport function useSelect<P extends BaseSelectProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: SelectConfig<C>,\n ref: React.Ref<SelectRefValue> = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = useAriaSelectProps(props);\n const { placement } = props;\n const state = useAriaSelectState<AriaSelectItemType>(ariaProps);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const {\n isDisabled,\n name,\n menuWidth,\n menuMatchTriggerWidth,\n autoFocus,\n placeholder,\n selectedContent,\n } = props;\n\n const { triggerProps: triggerPressProps, menuProps } = useAriaSelect(\n ariaProps,\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const triggerContent = state.selectedItem\n ? selectedContent ?? getChildProp(state.selectedItem.value, \"children\")\n : null;\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.placeholderVariant, active: !state.selectedItem },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children) => (\n <>\n <HiddenSelect\n state={state}\n triggerRef={triggerRef}\n name={name}\n isDisabled={isDisabled}\n />\n {children}\n </>\n ),\n },\n [config.trigger]: {\n props: mergeProps(triggerProps, {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Don't trigger form submission!\n type: \"button\",\n }),\n },\n [config.overlay]: {\n wrap: (content) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {content}\n </TriggeredOverlayContext.Provider>\n ),\n },\n [config.optionsContainer]: {\n wrap: (content) => (\n <ListBoxWrapper state={state} menuProps={menuProps}>\n {content as React.ReactElement}\n </ListBoxWrapper>\n ),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.triggerContentSlot]: triggerContent,\n [config.placeholderSlot]: placeholder,\n [config.optionsSlot]: (\n <SelectContext.Provider value={state}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </SelectContext.Provider>\n ),\n };\n\n const plumeState: SelectState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n getSelectedValue: () =>\n state.selectedKey ? `${state.selectedKey}` : null,\n setSelectedValue: (key) => state.setSelectedKey(key as any),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current?.focus(),\n blur: () => triggerRef.current?.blur(),\n open: () => plumeState.open(),\n close: () => plumeState.close(),\n isOpen: () => plumeState.isOpen(),\n getSelectedValue: () => plumeState.getSelectedValue(),\n setSelectedValue: (key) => plumeState.setSelectedValue(key),\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n\nfunction ListBoxWrapper(props: {\n state: AriaSelectState<any>;\n menuProps: React.HTMLAttributes<Element>;\n children: React.ReactElement;\n}) {\n const { state, menuProps, children } = props;\n\n const ref = React.useRef<HTMLElement>(null);\n\n const { listBoxProps } = useListBox(\n {\n ...menuProps,\n isVirtualized: false,\n autoFocus: state.focusStrategy || true,\n disallowEmptySelection: true,\n },\n state,\n ref\n );\n\n return React.cloneElement(\n children,\n mergeProps(children.props, listBoxProps, { style: noOutline(), ref })\n );\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useOption as useAriaOption } from \"@react-aria/listbox\";\nimport { pick } from \"../../common\";\nimport { mergeProps, mergeRefs } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionProps extends ItemLikeProps, StyleProps {}\n\ninterface SelectOptionConfig<C extends AnyPlasmicClass> {\n isSelectedVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport type SelectOptionRef = React.Ref<HTMLElement>;\n\nexport function useSelectOption<\n P extends BaseSelectOptionProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: SelectOptionConfig<C>,\n outerRef: SelectOptionRef = null\n) {\n const state = React.useContext(SelectContext);\n\n if (!state) {\n // If no context, then we are being incorrectly used. Complain or just don't\n // bother installing any hooks. It's okay to violate rules of hooks here\n // because this instance won't suddenly be used correctly in another render.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.Option within a Select component.\"\n );\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n\n const rootRef = React.useRef<HTMLElement>(null);\n const onRef = mergeRefs(rootRef, outerRef);\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseSelectOptionProps>\n >;\n\n const isSelected = state.selectionManager.isSelected(node.key);\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const { optionProps, labelProps } = useAriaOption(\n {\n isSelected,\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n isVirtualized: false,\n },\n state,\n rootRef\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isSelectedVariant, active: isSelected },\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(optionProps, getStyleProps(props), {\n ref: onRef,\n style: noOutline(),\n }),\n },\n [config.labelContainer]: {\n props: labelProps,\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useListBoxSection } from \"@react-aria/listbox\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionGroupProps\n extends SectionLikeProps,\n StyleProps {}\n\ninterface SelectOptionGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: PlasmicClassVariants<C>;\n isFirstVariant: PlasmicClassVariants<C>;\n\n optionsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useSelectOptionGroup<\n P extends BaseSelectOptionGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: SelectOptionGroupConfig<C>) {\n const state = React.useContext(SelectContext);\n\n // `node` should exist if the OptionGroup was instantiated properly\n // within a Select\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseSelectOptionGroupProps>>\n | undefined;\n\n if (!state || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.OptionGroup within a Select component.\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useListBoxSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.optionsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.optionsContainer]: {\n props: {\n ...groupProps,\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":["useAriaSelectState","useAriaSelect","useAriaOption"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/plume/select/context.tsx","../../../../src/plume/select/select.tsx","../../../../src/plume/select/select-option.tsx","../../../../src/plume/select/select-option-group.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { ListState } from \"@react-stately/list\";\n\nexport const SelectContext = React.createContext<ListState<any> | undefined>(\n undefined\n);\n","import { Placement } from \"@react-types/overlays\";\nimport { AriaSelectProps } from \"@react-types/select\";\nimport {\n AriaLabelingProps,\n DOMProps,\n FocusableDOMProps,\n FocusableProps,\n InputBase,\n} from \"@react-types/shared\";\nimport * as React from \"react\";\nimport {\n HiddenSelect,\n useSelect as useAriaSelect,\n} from \"@react-aria/select\";\nimport {\n useListBox\n} from \"@react-aria/listbox\";\nimport {\n usePress\n} from \"@react-aria/interactions\";\nimport {\n SelectState as AriaSelectState,\n useSelectState as useAriaSelectState,\n} from \"@react-stately/select\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n getChildProp,\n renderAsCollectionChild,\n renderCollectionNode,\n useDerivedItemsFromChildren,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport {\n TriggeredOverlayContext,\n TriggeredOverlayContextValue,\n} from \"../triggered-overlay/context\";\nimport { SelectContext } from \"./context\";\nimport { BaseSelectOptionProps } from \"./select-option\";\nimport { BaseSelectOptionGroupProps } from \"./select-option-group\";\n\nexport interface BaseSelectProps\n extends DOMProps,\n AriaLabelingProps,\n FocusableDOMProps,\n InputBase,\n FocusableProps,\n StyleProps {\n /**\n * Key of the currently selected value\n */\n value?: string | null;\n\n /**\n * Event handler fired when currently selected value changes\n */\n onChange?: (value: string | null) => void;\n\n /**\n * Uncontrolled key of the default selected value\n */\n defaultValue?: string;\n\n /**\n * List of Select.Options\n */\n children?: React.ReactNode;\n\n /**\n * Whether the Select is currently open\n */\n isOpen?: boolean;\n\n /**\n * Event handler fired when Select's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Uncontrolled default open state\n */\n defaultOpen?: boolean;\n\n /**\n * Form name of the select element\n */\n name?: string;\n\n /**\n * By default, Select will render whatever is in Select.Option as the\n * content in the trigger button when it is selected. You can override\n * what content by passing in `selectedContent` here.\n */\n selectedContent?: React.ReactNode;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n\n /**\n * Content to display when nothing is selected.\n */\n placeholder?: React.ReactNode;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"select-option\",\n sectionPlumeType: \"select-option-group\",\n};\n\ntype AriaOptionType = React.ReactElement<BaseSelectOptionProps>;\ntype AriaGroupType = React.ReactElement<BaseSelectOptionGroupProps>;\ntype AriaSelectItemType = AriaOptionType | AriaGroupType;\n\n/**\n * Converts props in our BaseSelectProps into props that react-aria's\n * useSelect() understands.\n *\n * Because we're not exposing the Collections API (see ./index.tsx),\n * we are converting our own API into props for useSelect.\n *\n * Specifically, in Plume's API,\n * - `children` flattens to a list of ReactElements of type Select.Option\n * or Select.OptionGroup\n *\n * and we map it this way to the Collections API:\n * - `items` is a list of those flattened ReactElements from `children`!\n * - `children`, as a render prop, is supposed to take one of the `items`\n * and return a `Section` or `Item` element. We take an Option/OptionGroup\n * element, and use its props to render the appropriate `Section` or\n * `Item`. The \"trick\" here is that we then stuff the Option element as\n * `Item.children`, and the OptionGroup element as `Section.title`.\n *\n * When the Collections API does its work deriving `Node`s, the corresponding\n * Option/OptionGroup ReactElements will end up as `Node.rendered`.\n *\n * Then, when we are actually rendering the content of the dropdown, we\n * iterate through each collected `Node`, and renders\n * React.cloneElement(Node.rendered, {_node: node}). This \"secretly\" passes\n * the derived collection `Node` as a prop to Option and OptionGroup, and they\n * can make use of the derived `Node.key` etc in their rendering functions.\n *\n * One thing to note here is that we never \"rendered\" the Option/OptionGroup\n * React elements that the user constructed; instead, we just looked at the\n * props used on those elements, and passed those onto the Collections API.\n * What gets rendered to the screen is the cloned version of these elements\n * with the secret derived `_node` prop. That means Option and OptionGroup\n * render functions can assume that _node is passed in.\n */\nfunction useAriaSelectProps(props: BaseSelectProps) {\n let {\n value,\n defaultValue,\n children,\n onChange,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n ...rest\n } = props;\n\n const { items, disabledKeys } = useDerivedItemsFromChildren(children, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Select.Option and Select.OptionGroup as children to Select`,\n requireItemValue: true,\n });\n\n const collectionChildRenderer = React.useCallback(\n (child) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n const onSelectionChange = React.useMemo(() => {\n if (onChange) {\n return (val: string | null) =>\n onChange!(\n (val == null || val === \"null\" ? null : val) as string | null\n );\n } else {\n return undefined;\n }\n }, [onChange]);\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n onSelectionChange,\n items,\n disabledKeys,\n defaultSelectedKey: defaultValue,\n\n // react-aria is picky about selectedKey; if it is null, it means \"no selection\";\n // if it is undefined, it means \"uncontrolled\". So here, if the user passes in a\n // value prop, then we make sure selectedKey will be null and not undefined, so\n // we don't accidentally enter uncontrolled mode.\n ...(\"value\" in props && { selectedKey: value ?? null }),\n } as AriaSelectProps<AriaSelectItemType>,\n };\n}\n\nexport type SelectRef = React.Ref<SelectRefValue>;\n\nexport interface SelectRefValue extends SelectState {\n getTrigger: () => HTMLElement | null;\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface SelectConfig<C extends AnyPlasmicClass> {\n placeholderVariant?: VariantDef<PlasmicClassVariants<C>>;\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n triggerContentSlot: keyof PlasmicClassArgs<C>;\n optionsSlot: keyof PlasmicClassArgs<C>;\n placeholderSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n overlay: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n}\n\ninterface SelectState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n getSelectedValue: () => string | null;\n setSelectedValue: (value: string | null) => void;\n}\n\nexport function useSelect<P extends BaseSelectProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: SelectConfig<C>,\n ref: React.Ref<SelectRefValue> = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = useAriaSelectProps(props);\n const { placement } = props;\n const state = useAriaSelectState<AriaSelectItemType>(ariaProps);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const {\n isDisabled,\n name,\n menuWidth,\n menuMatchTriggerWidth,\n autoFocus,\n placeholder,\n selectedContent,\n } = props;\n\n const { triggerProps: triggerPressProps, menuProps } = useAriaSelect(\n ariaProps,\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const triggerContent = state.selectedItem\n ? selectedContent ?? getChildProp(state.selectedItem.value, \"children\")\n : null;\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.placeholderVariant, active: !state.selectedItem },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children) => (\n <>\n <HiddenSelect\n state={state}\n triggerRef={triggerRef}\n name={name}\n isDisabled={isDisabled}\n />\n {children}\n </>\n ),\n },\n [config.trigger]: {\n props: mergeProps(triggerProps, {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Don't trigger form submission!\n type: \"button\",\n }),\n },\n [config.overlay]: {\n wrap: (content) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {content}\n </TriggeredOverlayContext.Provider>\n ),\n },\n [config.optionsContainer]: {\n wrap: (content) => (\n <ListBoxWrapper state={state} menuProps={menuProps}>\n {content as React.ReactElement}\n </ListBoxWrapper>\n ),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.triggerContentSlot]: triggerContent,\n [config.placeholderSlot]: placeholder,\n [config.optionsSlot]: (\n <SelectContext.Provider value={state}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </SelectContext.Provider>\n ),\n };\n\n const plumeState: SelectState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n getSelectedValue: () =>\n state.selectedKey ? `${state.selectedKey}` : null,\n setSelectedValue: (key) => state.setSelectedKey(key as any),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current?.focus(),\n blur: () => triggerRef.current?.blur(),\n open: () => plumeState.open(),\n close: () => plumeState.close(),\n isOpen: () => plumeState.isOpen(),\n getSelectedValue: () => plumeState.getSelectedValue(),\n setSelectedValue: (key) => plumeState.setSelectedValue(key),\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n\nfunction ListBoxWrapper(props: {\n state: AriaSelectState<any>;\n menuProps: React.HTMLAttributes<Element>;\n children: React.ReactElement;\n}) {\n const { state, menuProps, children } = props;\n\n const ref = React.useRef<HTMLElement>(null);\n\n const { listBoxProps } = useListBox(\n {\n ...menuProps,\n isVirtualized: false,\n autoFocus: state.focusStrategy || true,\n disallowEmptySelection: true,\n },\n state,\n ref\n );\n\n return React.cloneElement(\n children,\n mergeProps(children.props, listBoxProps, { style: noOutline(), ref })\n );\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useOption as useAriaOption } from \"@react-aria/listbox\";\nimport { pick } from \"../../common\";\nimport { mergeProps, mergeRefs } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionProps extends ItemLikeProps, StyleProps {}\n\ninterface SelectOptionConfig<C extends AnyPlasmicClass> {\n isSelectedVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport type SelectOptionRef = React.Ref<HTMLElement>;\n\nexport function useSelectOption<\n P extends BaseSelectOptionProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: SelectOptionConfig<C>,\n outerRef: SelectOptionRef = null\n) {\n const state = React.useContext(SelectContext);\n\n if (!state) {\n // If no context, then we are being incorrectly used. Complain or just don't\n // bother installing any hooks. It's okay to violate rules of hooks here\n // because this instance won't suddenly be used correctly in another render.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.Option within a Select component.\"\n );\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n\n const rootRef = React.useRef<HTMLElement>(null);\n const onRef = mergeRefs(rootRef, outerRef);\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseSelectOptionProps>\n >;\n\n const isSelected = state.selectionManager.isSelected(node.key);\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const { optionProps, labelProps } = useAriaOption(\n {\n isSelected,\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n shouldSelectOnPressUp: true,\n shouldFocusOnHover: true,\n isVirtualized: false,\n },\n state,\n rootRef\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isSelectedVariant, active: isSelected },\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(optionProps, getStyleProps(props), {\n ref: onRef,\n style: noOutline(),\n }),\n },\n [config.labelContainer]: {\n props: labelProps,\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useListBoxSection } from \"@react-aria/listbox\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { SelectContext } from \"./context\";\n\nexport interface BaseSelectOptionGroupProps\n extends SectionLikeProps,\n StyleProps {}\n\ninterface SelectOptionGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: PlasmicClassVariants<C>;\n isFirstVariant: PlasmicClassVariants<C>;\n\n optionsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n optionsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useSelectOptionGroup<\n P extends BaseSelectOptionGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: SelectOptionGroupConfig<C>) {\n const state = React.useContext(SelectContext);\n\n // `node` should exist if the OptionGroup was instantiated properly\n // within a Select\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseSelectOptionGroupProps>>\n | undefined;\n\n if (!state || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a Select.OptionGroup within a Select component.\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useListBoxSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.optionsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.optionsContainer]: {\n props: {\n ...groupProps,\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":["useAriaSelectState","useAriaSelect","useAriaOption"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { useSwitch as useSwitch$1 } from '@react-aria/switch';
|
|
|
4
4
|
import { VisuallyHidden } from '@react-aria/visually-hidden';
|
|
5
5
|
import { useToggleState } from '@react-stately/toggle';
|
|
6
6
|
import { m as mergeProps } from '../../react-utils-35cb2a4e.js';
|
|
7
|
-
import {
|
|
7
|
+
import { b as useEnsureSSRProvider } from '../../ssr-9ebd98ed.js';
|
|
8
8
|
import { m as mergeVariantToggles } from '../../plume-utils-623b91cc.js';
|
|
9
9
|
import { g as getStyleProps } from '../../props-utils-b2ad4997.js';
|
|
10
10
|
import 'classnames';
|
|
@@ -7,11 +7,13 @@ import { d as mergeRefs, u as useIsomorphicLayoutEffect, m as mergeProps } from
|
|
|
7
7
|
import { m as mergeVariantToggles } from '../../plume-utils-623b91cc.js';
|
|
8
8
|
import { g as getStyleProps } from '../../props-utils-b2ad4997.js';
|
|
9
9
|
import { T as TriggeredOverlayContext } from '../../context-034b8d25.js';
|
|
10
|
+
export { T as TriggeredOverlayContext } from '../../context-034b8d25.js';
|
|
10
11
|
import 'classnames';
|
|
11
12
|
|
|
12
|
-
function useTriggeredOverlay(plasmicClass, props, config, outerRef) {
|
|
13
|
+
function useTriggeredOverlay(plasmicClass, props, config, outerRef, isDismissable) {
|
|
13
14
|
var _a, _b;
|
|
14
15
|
if (outerRef === void 0) { outerRef = null; }
|
|
16
|
+
if (isDismissable === void 0) { isDismissable = true; }
|
|
15
17
|
var overlayRef = React.useRef(null);
|
|
16
18
|
var onOverlayRef = mergeRefs(overlayRef, outerRef);
|
|
17
19
|
var context = React.useContext(TriggeredOverlayContext);
|
|
@@ -45,7 +47,7 @@ function useTriggeredOverlay(plasmicClass, props, config, outerRef) {
|
|
|
45
47
|
var overlayAriaProps = useOverlay({
|
|
46
48
|
isOpen: state.isOpen,
|
|
47
49
|
onClose: state.close,
|
|
48
|
-
isDismissable:
|
|
50
|
+
isDismissable: isDismissable,
|
|
49
51
|
shouldCloseOnBlur: true,
|
|
50
52
|
}, overlayRef).overlayProps;
|
|
51
53
|
var _d = useOverlayPosition({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/plume/triggered-overlay/triggered-overlay.tsx"],"sourcesContent":["import { DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport {\n DismissButton,\n useOverlay,\n useOverlayPosition,\n} from \"@react-aria/overlays\";\nimport { FocusScope } from \"@react-aria/focus\";\nimport * as ReactDOM from \"react-dom\";\nimport { pick } from \"../../common\";\nimport {\n mergeProps,\n mergeRefs,\n useIsomorphicLayoutEffect,\n} from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"./context\";\n\nexport interface BaseTriggeredOverlayProps extends StyleProps, DOMProps {\n children?: React.ReactNode;\n}\n\nexport interface TriggeredOverlayConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n contentContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport type TriggeredOverlayRef = React.Ref<HTMLElement>;\n\nexport function useTriggeredOverlay<\n P extends BaseTriggeredOverlayProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: TriggeredOverlayConfig<C>,\n outerRef: TriggeredOverlayRef = null\n) {\n const overlayRef = React.useRef<HTMLElement>(null);\n const onOverlayRef = mergeRefs(overlayRef, outerRef);\n\n const context = React.useContext(TriggeredOverlayContext);\n\n if (!context) {\n // If no context, then we are not being correctly used. Either complain, or\n // exit early. It's okay to exit early and break the rules of React hooks\n // because we won't suddenly have the appropriate context anyway for this instance.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a triggered overlay with a TriggeredOverlayContext\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n const {\n triggerRef,\n placement,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n overlayWidth,\n state,\n } = context;\n\n // Measure the width of the trigger to inform the width of the menu (below).\n const [isRendered, setRendered] = React.useState(false);\n const triggerWidth =\n triggerRef.current && (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ? triggerRef.current.offsetWidth\n : undefined;\n\n useIsomorphicLayoutEffect(() => {\n if (\n !isRendered &&\n triggerRef.current &&\n (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ) {\n setRendered(true);\n }\n }, [\n triggerRef,\n isRendered,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n ]);\n\n const { overlayProps: overlayAriaProps } = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n isDismissable
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/plume/triggered-overlay/triggered-overlay.tsx"],"sourcesContent":["import { DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport {\n DismissButton,\n useOverlay,\n useOverlayPosition,\n} from \"@react-aria/overlays\";\nimport { FocusScope } from \"@react-aria/focus\";\nimport * as ReactDOM from \"react-dom\";\nimport { pick } from \"../../common\";\nimport {\n mergeProps,\n mergeRefs,\n useIsomorphicLayoutEffect,\n} from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"./context\";\n\nexport interface BaseTriggeredOverlayProps extends StyleProps, DOMProps {\n children?: React.ReactNode;\n}\n\nexport interface TriggeredOverlayConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n contentSlot: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n contentContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport type TriggeredOverlayRef = React.Ref<HTMLElement>;\n\nexport function useTriggeredOverlay<\n P extends BaseTriggeredOverlayProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: TriggeredOverlayConfig<C>,\n outerRef: TriggeredOverlayRef = null,\n isDismissable = true\n) {\n const overlayRef = React.useRef<HTMLElement>(null);\n const onOverlayRef = mergeRefs(overlayRef, outerRef);\n\n const context = React.useContext(TriggeredOverlayContext);\n\n if (!context) {\n // If no context, then we are not being correctly used. Either complain, or\n // exit early. It's okay to exit early and break the rules of React hooks\n // because we won't suddenly have the appropriate context anyway for this instance.\n if (PLUME_STRICT_MODE) {\n throw new Error(\n \"You can only use a triggered overlay with a TriggeredOverlayContext\"\n );\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children } = props;\n const {\n triggerRef,\n placement,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n overlayWidth,\n state,\n } = context;\n\n // Measure the width of the trigger to inform the width of the menu (below).\n const [isRendered, setRendered] = React.useState(false);\n const triggerWidth =\n triggerRef.current && (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ? triggerRef.current.offsetWidth\n : undefined;\n\n useIsomorphicLayoutEffect(() => {\n if (\n !isRendered &&\n triggerRef.current &&\n (overlayMatchTriggerWidth || overlayMinTriggerWidth)\n ) {\n setRendered(true);\n }\n }, [\n triggerRef,\n isRendered,\n overlayMatchTriggerWidth,\n overlayMinTriggerWidth,\n ]);\n\n const { overlayProps: overlayAriaProps } = useOverlay(\n {\n isOpen: state.isOpen,\n onClose: state.close,\n isDismissable,\n shouldCloseOnBlur: true,\n },\n overlayRef\n );\n\n const {\n overlayProps: overlayPositionProps,\n updatePosition,\n placement: placementAxis,\n } = useOverlayPosition({\n targetRef: triggerRef,\n overlayRef,\n placement: placement ?? \"bottom left\",\n shouldFlip: true,\n isOpen: state.isOpen,\n onClose: state.close,\n containerPadding: 0,\n });\n\n useIsomorphicLayoutEffect(() => {\n if (state.isOpen) {\n requestAnimationFrame(() => {\n updatePosition();\n });\n }\n }, [state.isOpen, updatePosition]);\n\n const overlayProps = mergeProps(\n {\n style: {\n left: \"auto\",\n right: \"auto\",\n top: \"auto\",\n bottom: \"auto\",\n position: \"absolute\",\n width:\n overlayWidth ?? (overlayMatchTriggerWidth ? triggerWidth : \"auto\"),\n minWidth: overlayMinTriggerWidth ? triggerWidth : \"auto\",\n },\n },\n overlayAriaProps,\n overlayPositionProps\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isPlacedTopVariant, active: placementAxis === \"top\" },\n { def: config.isPlacedBottomVariant, active: placementAxis === \"bottom\" },\n { def: config.isPlacedLeftVariant, active: placementAxis === \"left\" },\n { def: config.isPlacedRightVariant, active: placementAxis === \"right\" }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.contentSlot]: (\n <FocusScope restoreFocus>\n <DismissButton onDismiss={state.close} />\n {children}\n {/* We don't use the DismissButton at the end because it ends up taking up 1px space :-/ */}\n {/* <DismissButton onDismiss={state.close} /> */}\n </FocusScope>\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(overlayProps, getStyleProps(props), {\n ref: onOverlayRef,\n }),\n wrap: (root) => {\n if (typeof document !== \"undefined\") {\n return ReactDOM.createPortal(root, document.body);\n } else {\n // Possibly being invoked on the server during SSR; no need to\n // bother with a portal in that case.\n return root;\n }\n },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export interface TriggeredOverlayConfig<C extends AnyPlasmicClass> {
|
|
|
15
15
|
contentContainer: keyof PlasmicClassOverrides<C>;
|
|
16
16
|
}
|
|
17
17
|
export declare type TriggeredOverlayRef = React.Ref<HTMLElement>;
|
|
18
|
-
export declare function useTriggeredOverlay<P extends BaseTriggeredOverlayProps, C extends AnyPlasmicClass>(plasmicClass: C, props: P, config: TriggeredOverlayConfig<C>, outerRef?: TriggeredOverlayRef): {
|
|
18
|
+
export declare function useTriggeredOverlay<P extends BaseTriggeredOverlayProps, C extends AnyPlasmicClass>(plasmicClass: C, props: P, config: TriggeredOverlayConfig<C>, outerRef?: TriggeredOverlayRef, isDismissable?: boolean): {
|
|
19
19
|
plasmicProps: {
|
|
20
20
|
variants: PlasmicClassVariants<C>;
|
|
21
21
|
args: PlasmicClassArgs<C>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { m as mapValues, g as groupBy } from './tslib.es6-73236e8e.js';
|
|
3
|
+
|
|
4
|
+
var PLUME_STRICT_MODE = true;
|
|
5
|
+
function mergeVariantToggles() {
|
|
6
|
+
var toggles = [];
|
|
7
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
8
|
+
toggles[_i] = arguments[_i];
|
|
9
|
+
}
|
|
10
|
+
var definedToggles = toggles.filter(function (x) { return !!x.def; });
|
|
11
|
+
var grouped = groupBy(definedToggles, function (_a) {
|
|
12
|
+
var def = _a.def;
|
|
13
|
+
return def.group;
|
|
14
|
+
});
|
|
15
|
+
return mapValues(grouped, function (subToggles) {
|
|
16
|
+
return Object.fromEntries(subToggles.map(function (_a) {
|
|
17
|
+
var def = _a.def, active = _a.active;
|
|
18
|
+
return [def.variant, !!active];
|
|
19
|
+
}));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function noOutline() {
|
|
23
|
+
return { outline: "none" };
|
|
24
|
+
}
|
|
25
|
+
function getPlumeType(child) {
|
|
26
|
+
var _a;
|
|
27
|
+
if (!React.isValidElement(child)) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
var childType = child.type;
|
|
31
|
+
return (childType.__plumeType || ((_a = childType.getPlumeType) === null || _a === void 0 ? void 0 : _a.call(childType, child.props)));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { PLUME_STRICT_MODE as P, getPlumeType as g, mergeVariantToggles as m, noOutline as n };
|
|
35
|
+
//# sourceMappingURL=plume-utils-5c413fd1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plume-utils-5c413fd1.js","sources":["../../src/plume/plume-utils.ts"],"sourcesContent":["import * as React from \"react\";\nimport { groupBy, mapValues } from \"../common\";\nimport { SingleChoiceArg } from \"../render/elements\";\n\nexport let PLUME_STRICT_MODE = true;\n\nexport function setPlumeStrictMode(mode: boolean) {\n PLUME_STRICT_MODE = mode;\n}\n\ntype VariantArgChoices<T> = T extends (infer M)[]\n ? M\n : T extends SingleChoiceArg<infer M>\n ? M\n : never;\ntype VariantArgsChoices<V> = { [k in keyof V]-?: VariantArgChoices<V[k]> };\ntype DictValues<V extends Record<string, any>> = V[keyof V];\ntype DictTuples<V extends Record<string, any>> = DictValues<\n { [K in keyof V]: [K, V[K]] }\n>;\nexport type VariantDefTuple<V> = DictTuples<VariantArgsChoices<V>>;\n\ntype DistributeTuple<T> = T extends [infer T1, infer T2]\n ? { group: T1; variant: T2 }\n : never;\n\nexport type VariantDef<V> = DistributeTuple<VariantDefTuple<V>>;\n\nexport type PlasmicClass<\n V extends Record<string, any>,\n A extends Record<string, any>,\n O extends Record<string, any>\n> = {\n (props: { variants?: V; args?: A; overrides?: O }): React.ReactElement | null;\n internalVariantProps: (keyof V)[];\n internalArgProps: (keyof A)[];\n};\n\nexport type AnyPlasmicClass = PlasmicClass<any, any, any>;\n\nexport type PlasmicClassVariants<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<infer V, any, any> ? V : unknown;\nexport type PlasmicClassArgs<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<any, infer A, any> ? A : unknown;\nexport type PlasmicClassOverrides<\n C extends AnyPlasmicClass\n> = C extends PlasmicClass<any, any, infer O> ? O : unknown;\n\ntype BooleanLike = boolean | undefined | null;\n\nexport function mergeVariantToggles<V>(\n ...toggles: { def?: VariantDef<V>; active: BooleanLike }[]\n) {\n const definedToggles = toggles.filter((x) => !!x.def) as {\n def: VariantDef<V>;\n active: BooleanLike;\n }[];\n const grouped = groupBy(definedToggles, ({ def }) => def.group as string);\n return mapValues(grouped, (subToggles) => {\n return Object.fromEntries(\n subToggles.map(({ def, active }) => [def.variant, !!active])\n );\n });\n}\n\nexport function noOutline() {\n return { outline: \"none\" };\n}\n\nexport function getPlumeType(child: React.ReactChild): string | undefined {\n if (!React.isValidElement(child)) {\n return undefined;\n }\n const childType = child.type as any;\n return (childType.__plumeType || childType.getPlumeType?.(child.props)) as\n | string\n | undefined;\n}\n"],"names":[],"mappings":";;;IAIW,iBAAiB,GAAG,KAAK;SAgDpB,mBAAmB;IACjC,iBAA0D;SAA1D,UAA0D,EAA1D,qBAA0D,EAA1D,IAA0D;QAA1D,4BAA0D;;IAE1D,IAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,GAAG,GAAA,CAGjD,CAAC;IACJ,IAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,UAAC,EAAO;YAAL,GAAG,SAAA;QAAO,OAAA,GAAG,CAAC,KAAe;KAAA,CAAC,CAAC;IAC1E,OAAO,SAAS,CAAC,OAAO,EAAE,UAAC,UAAU;QACnC,OAAO,MAAM,CAAC,WAAW,CACvB,UAAU,CAAC,GAAG,CAAC,UAAC,EAAe;gBAAb,GAAG,SAAA,EAAE,MAAM,YAAA;YAAO,OAAA,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;SAAA,CAAC,CAC7D,CAAC;KACH,CAAC,CAAC;AACL,CAAC;SAEe,SAAS;IACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;SAEe,YAAY,CAAC,KAAuB;;IAClD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;QAChC,OAAO,SAAS,CAAC;KAClB;IACD,IAAM,SAAS,GAAG,KAAK,CAAC,IAAW,CAAC;IACpC,QAAQ,SAAS,CAAC,WAAW,KAAI,MAAA,SAAS,CAAC,YAAY,+CAAtB,SAAS,EAAgB,KAAK,CAAC,KAAK,CAAC,CAAA,EAExD;AAChB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props-utils-4633caf6.js","sources":["../../src/plume/props-utils.ts"],"sourcesContent":["import * as React from \"react\";\nimport { pick, pickBy } from \"../common\";\nimport {\n AnyPlasmicClass,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n} from \"./plume-utils\";\n\nexport interface StyleProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport function getStyleProps<P extends StyleProps>(props: P): StyleProps {\n return pick(props, \"className\", \"style\");\n}\n\nexport function getDefaultPlasmicProps<C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: Record<string, any>\n) {\n return {\n plasmicProps: {\n variants: pick(\n props,\n ...plasmicClass.internalVariantProps\n ) as PlasmicClassVariants<C>,\n args: pick(\n props,\n ...plasmicClass.internalArgProps\n ) as PlasmicClassArgs<C>,\n overrides: {} as PlasmicClassOverrides<C>,\n },\n };\n}\n\nconst RE_DATA_PROP = /^(data-.*)$/;\n\nexport function getDataProps(props: Record<string, any>) {\n return pickBy(props, (k) => RE_DATA_PROP.test(k));\n}\n"],"names":[],"mappings":";;SAcgB,aAAa,CAAuB,KAAQ;IAC1D,OAAO,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC3C;;;;"}
|