@drivy/cobalt 2.24.0 → 3.0.1
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/components/Popover/useDesktopPopoverCore.js +2 -1
- package/components/Popover/useDesktopPopoverCore.js.map +1 -1
- package/images/empty-states/connect-device.png +0 -0
- package/images/empty-states/connect-device@2x.png +0 -0
- package/images/empty-states/connect-device@3x.png +0 -0
- package/images/empty-states/couch-man@2x.png +0 -0
- package/images/empty-states/couch-man@3x.png +0 -0
- package/images/empty-states/fridge-man.png +0 -0
- package/images/empty-states/fridge-man@2x.png +0 -0
- package/images/empty-states/fridge-man@3x.png +0 -0
- package/images/empty-states/generic-list@1x.png +0 -0
- package/images/empty-states/generic-list@2x.png +0 -0
- package/images/empty-states/generic-list@3x.png +0 -0
- package/images/empty-states/location.png +0 -0
- package/images/empty-states/location@2x.png +0 -0
- package/images/empty-states/location@3x.png +0 -0
- package/images/empty-states/network@1x.png +0 -0
- package/images/empty-states/network@2x.png +0 -0
- package/images/empty-states/network@3x.png +0 -0
- package/images/empty-states/payment.png +0 -0
- package/images/empty-states/payment@2x.png +0 -0
- package/images/empty-states/payment@3x.png +0 -0
- package/images/empty-states/repair-man-open.png +0 -0
- package/images/empty-states/repair-man-open@2x.png +0 -0
- package/images/empty-states/repair-man-open@3x.png +0 -0
- package/images/empty-states/repair-man.png +0 -0
- package/images/empty-states/repair-man@2x.png +0 -0
- package/images/empty-states/repair-man@3x.png +0 -0
- package/images/empty-states/spotlight-car.png +0 -0
- package/images/empty-states/spotlight-car@2x.png +0 -0
- package/images/empty-states/spotlight-car@3x.png +0 -0
- package/images/empty-states/telescope.png +0 -0
- package/images/empty-states/telescope@2x.png +0 -0
- package/images/empty-states/telescope@3x.png +0 -0
- package/images/empty-states/thumb-up.png +0 -0
- package/images/empty-states/thumb-up@2x.png +0 -0
- package/images/empty-states/thumb-up@3x.png +0 -0
- package/package.json +25 -24
- package/types/src/components/Popover/useDesktopPopoverCore.d.ts +2 -1
|
@@ -5,13 +5,14 @@ import { useRef, useEffect } from 'react';
|
|
|
5
5
|
import { zIndexes } from '../../tokens/index.js';
|
|
6
6
|
|
|
7
7
|
const ANIMATION_TRANSITION_DISTANCE_PX = 4;
|
|
8
|
-
function useDesktopPopoverCore({ isOpen, onOpenChange, referenceElement, placement = "top", flip: flip$1 = true, tooltip = false, arrow: showArrow = true, theme = "", zIndex = zIndexes.dropdown, appendToBody = true, fitContent = true, withBorder = false, trigger = "click", interactive = false, delay = 0, offset: offset$1, bodySpacing = false, ariaLabel, onShow, onHidden, getFloatingExtraProps, }) {
|
|
8
|
+
function useDesktopPopoverCore({ isOpen, onOpenChange, referenceElement, placement = "top", flip: flip$1 = true, tooltip = false, arrow: showArrow = true, theme = "", zIndex = zIndexes.dropdown, appendToBody = true, fixed = false, fitContent = true, withBorder = false, trigger = "click", interactive = false, delay = 0, offset: offset$1, bodySpacing = false, ariaLabel, onShow, onHidden, getFloatingExtraProps, }) {
|
|
9
9
|
const arrowRef = useRef(null);
|
|
10
10
|
const [crossAxis, mainAxis] = offset$1 !== null && offset$1 !== void 0 ? offset$1 : [0, showArrow ? 12 : 8];
|
|
11
11
|
const { refs, floatingStyles, context } = useFloating({
|
|
12
12
|
open: isOpen,
|
|
13
13
|
onOpenChange,
|
|
14
14
|
placement,
|
|
15
|
+
strategy: fixed ? "fixed" : "absolute",
|
|
15
16
|
transform: false,
|
|
16
17
|
middleware: [
|
|
17
18
|
shift({ padding: 8 }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDesktopPopoverCore.js","sources":["../../../src/components/Popover/useDesktopPopoverCore.tsx"],"sourcesContent":["import {\n arrow,\n autoUpdate,\n FloatingArrow,\n FloatingPortal,\n flip as flipMiddleware,\n offset as offsetMiddleware,\n type Placement,\n safePolygon,\n shift as shiftMiddleware,\n useClick,\n useDismiss,\n useFloating,\n useHover,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\"\nimport classNames from \"classnames\"\nimport type React from \"react\"\nimport { useEffect, useRef } from \"react\"\nimport { zIndexes } from \"../../tokens\"\n\nconst ANIMATION_TRANSITION_DISTANCE_PX = 4\n\nexport type PopoverConfig = {\n placement?: Placement\n flip?: boolean\n arrow?: boolean\n theme?: string\n tooltip?: boolean\n lightMode?: boolean\n zIndex?: number\n appendToBody?: boolean\n withBorder?: boolean\n fitContent?: boolean\n trigger?: \"click\" | \"mouseenter\"\n interactive?: boolean\n delay?: number | { open?: number; close?: number }\n offset?: [number, number]\n bodySpacing?: boolean\n onShow?: () => void\n onHidden?: () => void\n}\n\nexport type UseDesktopPopoverCoreOptions = Omit<PopoverConfig, \"trigger\"> & {\n isOpen: boolean\n onOpenChange?: (open: boolean) => void\n referenceElement: Element | null\n trigger?: \"click\" | \"mouseenter\" | \"manual\"\n ariaLabel?: string\n getFloatingExtraProps?: () => React.HTMLAttributes<HTMLElement>\n}\n\nexport type DesktopPopoverCoreRefs = {\n setReference: (node: Element | null) => void\n setFloating: (node: HTMLElement | null) => void\n}\n\ntype UseDesktopPopoverCoreReturnType = {\n refs: DesktopPopoverCoreRefs\n getReferenceProps: ReturnType<\n typeof import(\"@floating-ui/react\").useInteractions\n >[\"getReferenceProps\"]\n renderFloating: (content: React.ReactNode) => React.ReactNode\n isMounted: boolean\n}\n\nexport function useDesktopPopoverCore({\n isOpen,\n onOpenChange,\n referenceElement,\n placement = \"top\",\n flip = true,\n tooltip = false,\n arrow: showArrow = true,\n theme = \"\",\n zIndex = zIndexes.dropdown,\n appendToBody = true,\n fitContent = true,\n withBorder = false,\n trigger = \"click\",\n interactive = false,\n delay = 0,\n offset,\n bodySpacing = false,\n ariaLabel,\n onShow,\n onHidden,\n getFloatingExtraProps,\n}: UseDesktopPopoverCoreOptions): UseDesktopPopoverCoreReturnType {\n const arrowRef = useRef<SVGSVGElement | null>(null)\n\n const [crossAxis, mainAxis] = offset ?? [0, showArrow ? 12 : 8]\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange,\n placement,\n transform: false,\n middleware: [\n shiftMiddleware({ padding: 8 }),\n offsetMiddleware({ mainAxis, crossAxis }),\n ...(flip ? [flipMiddleware()] : []),\n ...(showArrow ? [arrow({ element: arrowRef })] : []),\n ],\n whileElementsMounted: autoUpdate,\n elements: { reference: referenceElement },\n })\n\n const isHover = trigger === \"mouseenter\"\n const isClick = trigger === \"click\"\n\n const hover = useHover(context, {\n enabled: isHover,\n move: false,\n delay,\n handleClose: isHover && interactive ? safePolygon() : undefined,\n })\n\n const click = useClick(context, {\n enabled: isClick,\n })\n\n const dismiss = useDismiss(context)\n const role = useRole(context, { role: \"dialog\" })\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n hover,\n click,\n dismiss,\n role,\n ])\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n duration: { open: 200, close: 150 },\n initial: ({ side }) => ({\n opacity: 0,\n transform:\n side === \"top\"\n ? `translateY(${ANIMATION_TRANSITION_DISTANCE_PX}px)`\n : side === \"bottom\"\n ? `translateY(-${ANIMATION_TRANSITION_DISTANCE_PX}px)`\n : side === \"left\"\n ? `translateX(${ANIMATION_TRANSITION_DISTANCE_PX}px)`\n : `translateX(-${ANIMATION_TRANSITION_DISTANCE_PX}px)`,\n }),\n })\n\n const prevMountedRef = useRef(false)\n\n useEffect(() => {\n if (isMounted && !prevMountedRef.current) onShow?.()\n if (!isMounted && prevMountedRef.current) onHidden?.()\n prevMountedRef.current = isMounted\n }, [isMounted, onShow, onHidden])\n\n const renderFloating = (content: React.ReactNode) => {\n if (!isMounted) return null\n\n const body = bodySpacing ? (\n <div className=\"cobalt-popover--bodySpacing\">{content}</div>\n ) : (\n content\n )\n\n const extraFloatingProps = getFloatingExtraProps?.() ?? {}\n const { onMouseEnter, onMouseLeave, ...restExtraFloatingProps } =\n extraFloatingProps\n\n const node = (\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n ...transitionStyles,\n zIndex,\n }}\n className={classNames(\"cobalt-popover\", {\n \"cobalt-popover--withArrow\": showArrow,\n \"cobalt-popover--fitContent\": fitContent,\n \"cobalt-popover--withBorder\": withBorder,\n })}\n data-placement={context.placement}\n data-theme={classNames(theme, {\n tooltip: tooltip,\n })}\n {...getFloatingProps({\n \"aria-label\": ariaLabel,\n ...restExtraFloatingProps,\n onMouseEnter,\n onMouseLeave,\n })}\n >\n {showArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n className=\"cobalt-popover__arrow\"\n />\n )}\n {body}\n </div>\n )\n\n return appendToBody ? <FloatingPortal>{node}</FloatingPortal> : node\n }\n\n return {\n refs: {\n setReference: refs.setReference,\n setFloating: refs.setFloating,\n },\n getReferenceProps,\n renderFloating,\n isMounted,\n }\n}\n"],"names":["flip","offset","shiftMiddleware","offsetMiddleware","flipMiddleware","_jsx","_jsxs","classNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useDesktopPopoverCore.js","sources":["../../../src/components/Popover/useDesktopPopoverCore.tsx"],"sourcesContent":["import {\n arrow,\n autoUpdate,\n FloatingArrow,\n FloatingPortal,\n flip as flipMiddleware,\n offset as offsetMiddleware,\n type Placement,\n safePolygon,\n shift as shiftMiddleware,\n useClick,\n useDismiss,\n useFloating,\n useHover,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\"\nimport classNames from \"classnames\"\nimport type React from \"react\"\nimport { useEffect, useRef } from \"react\"\nimport { zIndexes } from \"../../tokens\"\n\nconst ANIMATION_TRANSITION_DISTANCE_PX = 4\n\nexport type PopoverConfig = {\n placement?: Placement\n flip?: boolean\n arrow?: boolean\n theme?: string\n tooltip?: boolean\n lightMode?: boolean\n zIndex?: number\n appendToBody?: boolean\n fixed?: boolean\n withBorder?: boolean\n fitContent?: boolean\n trigger?: \"click\" | \"mouseenter\"\n interactive?: boolean\n delay?: number | { open?: number; close?: number }\n offset?: [number, number]\n bodySpacing?: boolean\n onShow?: () => void\n onHidden?: () => void\n}\n\nexport type UseDesktopPopoverCoreOptions = Omit<PopoverConfig, \"trigger\"> & {\n isOpen: boolean\n onOpenChange?: (open: boolean) => void\n referenceElement: Element | null\n trigger?: \"click\" | \"mouseenter\" | \"manual\"\n ariaLabel?: string\n getFloatingExtraProps?: () => React.HTMLAttributes<HTMLElement>\n}\n\nexport type DesktopPopoverCoreRefs = {\n setReference: (node: Element | null) => void\n setFloating: (node: HTMLElement | null) => void\n}\n\ntype UseDesktopPopoverCoreReturnType = {\n refs: DesktopPopoverCoreRefs\n getReferenceProps: ReturnType<\n typeof import(\"@floating-ui/react\").useInteractions\n >[\"getReferenceProps\"]\n renderFloating: (content: React.ReactNode) => React.ReactNode\n isMounted: boolean\n}\n\nexport function useDesktopPopoverCore({\n isOpen,\n onOpenChange,\n referenceElement,\n placement = \"top\",\n flip = true,\n tooltip = false,\n arrow: showArrow = true,\n theme = \"\",\n zIndex = zIndexes.dropdown,\n appendToBody = true,\n fixed = false,\n fitContent = true,\n withBorder = false,\n trigger = \"click\",\n interactive = false,\n delay = 0,\n offset,\n bodySpacing = false,\n ariaLabel,\n onShow,\n onHidden,\n getFloatingExtraProps,\n}: UseDesktopPopoverCoreOptions): UseDesktopPopoverCoreReturnType {\n const arrowRef = useRef<SVGSVGElement | null>(null)\n\n const [crossAxis, mainAxis] = offset ?? [0, showArrow ? 12 : 8]\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange,\n placement,\n strategy: fixed ? \"fixed\" : \"absolute\",\n transform: false,\n middleware: [\n shiftMiddleware({ padding: 8 }),\n offsetMiddleware({ mainAxis, crossAxis }),\n ...(flip ? [flipMiddleware()] : []),\n ...(showArrow ? [arrow({ element: arrowRef })] : []),\n ],\n whileElementsMounted: autoUpdate,\n elements: { reference: referenceElement },\n })\n\n const isHover = trigger === \"mouseenter\"\n const isClick = trigger === \"click\"\n\n const hover = useHover(context, {\n enabled: isHover,\n move: false,\n delay,\n handleClose: isHover && interactive ? safePolygon() : undefined,\n })\n\n const click = useClick(context, {\n enabled: isClick,\n })\n\n const dismiss = useDismiss(context)\n const role = useRole(context, { role: \"dialog\" })\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n hover,\n click,\n dismiss,\n role,\n ])\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n duration: { open: 200, close: 150 },\n initial: ({ side }) => ({\n opacity: 0,\n transform:\n side === \"top\"\n ? `translateY(${ANIMATION_TRANSITION_DISTANCE_PX}px)`\n : side === \"bottom\"\n ? `translateY(-${ANIMATION_TRANSITION_DISTANCE_PX}px)`\n : side === \"left\"\n ? `translateX(${ANIMATION_TRANSITION_DISTANCE_PX}px)`\n : `translateX(-${ANIMATION_TRANSITION_DISTANCE_PX}px)`,\n }),\n })\n\n const prevMountedRef = useRef(false)\n\n useEffect(() => {\n if (isMounted && !prevMountedRef.current) onShow?.()\n if (!isMounted && prevMountedRef.current) onHidden?.()\n prevMountedRef.current = isMounted\n }, [isMounted, onShow, onHidden])\n\n const renderFloating = (content: React.ReactNode) => {\n if (!isMounted) return null\n\n const body = bodySpacing ? (\n <div className=\"cobalt-popover--bodySpacing\">{content}</div>\n ) : (\n content\n )\n\n const extraFloatingProps = getFloatingExtraProps?.() ?? {}\n const { onMouseEnter, onMouseLeave, ...restExtraFloatingProps } =\n extraFloatingProps\n\n const node = (\n <div\n ref={refs.setFloating}\n style={{\n ...floatingStyles,\n ...transitionStyles,\n zIndex,\n }}\n className={classNames(\"cobalt-popover\", {\n \"cobalt-popover--withArrow\": showArrow,\n \"cobalt-popover--fitContent\": fitContent,\n \"cobalt-popover--withBorder\": withBorder,\n })}\n data-placement={context.placement}\n data-theme={classNames(theme, {\n tooltip: tooltip,\n })}\n {...getFloatingProps({\n \"aria-label\": ariaLabel,\n ...restExtraFloatingProps,\n onMouseEnter,\n onMouseLeave,\n })}\n >\n {showArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n className=\"cobalt-popover__arrow\"\n />\n )}\n {body}\n </div>\n )\n\n return appendToBody ? <FloatingPortal>{node}</FloatingPortal> : node\n }\n\n return {\n refs: {\n setReference: refs.setReference,\n setFloating: refs.setFloating,\n },\n getReferenceProps,\n renderFloating,\n isMounted,\n }\n}\n"],"names":["flip","offset","shiftMiddleware","offsetMiddleware","flipMiddleware","_jsx","_jsxs","classNames"],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drivy/cobalt",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Opinionated design system for Drivy's projects.",
|
|
5
|
-
"main": "
|
|
5
|
+
"main": "index.js",
|
|
6
6
|
"types": "types/src/index.d.ts",
|
|
7
7
|
"sideEffects": [
|
|
8
8
|
"*.css",
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"engines": {
|
|
12
12
|
"node": ">=24.14.1"
|
|
13
13
|
},
|
|
14
|
-
"
|
|
14
|
+
"packageManager": "pnpm@11.1.3+sha512.c85357fe17ca12dd23dd7071822666dfd7e3cb76fe214e3370b5ea2fb34f2a231185509b63e717f3cd0acb38dd3f8d82bcd5e8172400ae678b70ea4fbed0896d",
|
|
15
|
+
"module": "index.js",
|
|
15
16
|
"license": "MIT",
|
|
16
17
|
"author": {
|
|
17
18
|
"name": "Tim Petricola",
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
"jest": "29.7.0",
|
|
65
66
|
"jest-environment-jsdom": "29.7.0",
|
|
66
67
|
"nested-object-access": "^0.2.5",
|
|
67
|
-
"np": "
|
|
68
|
+
"np": "11.2.1",
|
|
68
69
|
"postcss-flexbugs-fixes": "5.0.2",
|
|
69
70
|
"postcss-loader": "8.2.1",
|
|
70
71
|
"react": "18.3.1",
|
|
@@ -88,6 +89,25 @@
|
|
|
88
89
|
"ts-jest": "29.4.9",
|
|
89
90
|
"typescript": "5.9.3"
|
|
90
91
|
},
|
|
92
|
+
"scripts": {
|
|
93
|
+
"build": "./scripts/build.sh",
|
|
94
|
+
"build:dev": "pnpm build && yalc publish dist/",
|
|
95
|
+
"build:publish": "pnpm build && pnpm np --contents dist --package-manager npm",
|
|
96
|
+
"deploy": "./scripts/publishToBranch.sh",
|
|
97
|
+
"lint": "biome check && stylelint \"src/**/*.scss\"",
|
|
98
|
+
"lint:fix": "biome check --fix && stylelint \"src/**/*.scss\" --fix",
|
|
99
|
+
"scss:vars": "ts-node -e 'console.log(require(\"./utils/tailwindcssThemeHelpers.js\").getFlattenedTheme())'",
|
|
100
|
+
"binary": "sh ./scripts/buildCobaltBinary.sh",
|
|
101
|
+
"storybook:prepare": "PLAYGROUND_GENERATION=true npx tailwindcss -i ./src/utilities.css -o ./src/_generated_tailwind_playground.css && PLAYGROUND_GENERATION=false",
|
|
102
|
+
"storybook": "pnpm storybook:prepare && storybook dev -p 6006",
|
|
103
|
+
"storybook:build": "pnpm storybook:prepare && storybook build",
|
|
104
|
+
"build:icons": "./scripts/buildIcons.sh",
|
|
105
|
+
"build:illustrations": "./scripts/buildIllustrations.sh",
|
|
106
|
+
"build:theme": "node ./scripts/buildThemeCSSVariables.mts",
|
|
107
|
+
"test": "jest",
|
|
108
|
+
"typecheck": "tsc",
|
|
109
|
+
"version": "cp package.json dist/package.json"
|
|
110
|
+
},
|
|
91
111
|
"keywords": [
|
|
92
112
|
"drivy",
|
|
93
113
|
"cobalt"
|
|
@@ -107,24 +127,5 @@
|
|
|
107
127
|
"publishConfig": {
|
|
108
128
|
"registry": "https://registry.npmjs.org",
|
|
109
129
|
"access": "public"
|
|
110
|
-
},
|
|
111
|
-
"scripts": {
|
|
112
|
-
"build": "./scripts/build.sh",
|
|
113
|
-
"build:dev": "pnpm build && yalc publish dist/",
|
|
114
|
-
"build:publish": "pnpm build && pnpm np --contents dist",
|
|
115
|
-
"deploy": "./scripts/publishToBranch.sh",
|
|
116
|
-
"lint": "biome check && stylelint \"src/**/*.scss\"",
|
|
117
|
-
"lint:fix": "biome check --fix && stylelint \"src/**/*.scss\" --fix",
|
|
118
|
-
"scss:vars": "ts-node -e 'console.log(require(\"./utils/tailwindcssThemeHelpers.js\").getFlattenedTheme())'",
|
|
119
|
-
"binary": "sh ./scripts/buildCobaltBinary.sh",
|
|
120
|
-
"storybook:prepare": "PLAYGROUND_GENERATION=true npx tailwindcss -i ./src/utilities.css -o ./src/_generated_tailwind_playground.css && PLAYGROUND_GENERATION=false",
|
|
121
|
-
"storybook": "pnpm storybook:prepare && storybook dev -p 6006",
|
|
122
|
-
"storybook:build": "pnpm storybook:prepare && storybook build",
|
|
123
|
-
"build:icons": "./scripts/buildIcons.sh",
|
|
124
|
-
"build:illustrations": "./scripts/buildIllustrations.sh",
|
|
125
|
-
"build:theme": "node ./scripts/buildThemeCSSVariables.mts",
|
|
126
|
-
"test": "jest",
|
|
127
|
-
"typecheck": "tsc",
|
|
128
|
-
"version": "cp package.json dist/package.json"
|
|
129
130
|
}
|
|
130
|
-
}
|
|
131
|
+
}
|
|
@@ -9,6 +9,7 @@ export type PopoverConfig = {
|
|
|
9
9
|
lightMode?: boolean;
|
|
10
10
|
zIndex?: number;
|
|
11
11
|
appendToBody?: boolean;
|
|
12
|
+
fixed?: boolean;
|
|
12
13
|
withBorder?: boolean;
|
|
13
14
|
fitContent?: boolean;
|
|
14
15
|
trigger?: "click" | "mouseenter";
|
|
@@ -40,5 +41,5 @@ type UseDesktopPopoverCoreReturnType = {
|
|
|
40
41
|
renderFloating: (content: React.ReactNode) => React.ReactNode;
|
|
41
42
|
isMounted: boolean;
|
|
42
43
|
};
|
|
43
|
-
export declare function useDesktopPopoverCore({ isOpen, onOpenChange, referenceElement, placement, flip, tooltip, arrow: showArrow, theme, zIndex, appendToBody, fitContent, withBorder, trigger, interactive, delay, offset, bodySpacing, ariaLabel, onShow, onHidden, getFloatingExtraProps, }: UseDesktopPopoverCoreOptions): UseDesktopPopoverCoreReturnType;
|
|
44
|
+
export declare function useDesktopPopoverCore({ isOpen, onOpenChange, referenceElement, placement, flip, tooltip, arrow: showArrow, theme, zIndex, appendToBody, fixed, fitContent, withBorder, trigger, interactive, delay, offset, bodySpacing, ariaLabel, onShow, onHidden, getFloatingExtraProps, }: UseDesktopPopoverCoreOptions): UseDesktopPopoverCoreReturnType;
|
|
44
45
|
export {};
|