@stenajs-webui/tooltip 21.8.0 → 21.8.2
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/index.es.js +37 -46
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.es.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode("._floating_1glwr_1{display:flex;flex-direction:row;align-items:center;background:#fff;color:#fff;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2);box-shadow:var(--swui-shadow-popover)}._floating_1glwr_1._disablePadding_1glwr_11{padding:0}._iconWrapper_1glwr_16{--current-bg-color: transparent;--current-border-color: var(--lhds-color-ui-50);--current-icon-color: var(--lhds-color-ui-50);display:inline-flex;flex-direction:row;white-space:nowrap;background-color:var(--current-bg-color);border:1px solid var(--current-border-color);border-radius:var(--swui-border-radius);padding:calc(var(--swui-metrics-spacing) * .5);align-items:flex-start}._iconWrapper_1glwr_16 svg{color:var(--current-icon-color)}._iconWrapper_1glwr_16._info_1glwr_36{--current-border-color: var(--lhds-color-blue-300);--current-bg-color: var(--lhds-color-blue-100);--current-icon-color: var(--lhds-color-blue-700)}._iconWrapper_1glwr_16._warning_1glwr_42{--current-border-color: var(--lhds-color-orange-300);--current-bg-color: var(--lhds-color-orange-100);--current-icon-color: var(--lhds-color-orange-700)}._iconWrapper_1glwr_16._error_1glwr_48{--current-border-color: var(--lhds-color-red-300);--current-bg-color: var(--lhds-color-red-100);--current-icon-color: var(--lhds-color-red-700)}._floating_15fk9_1{display:flex;align-items:center;background:#333;color:#fff;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}._floating_15fk9_1._withIcon_15fk9_10{padding:calc(var(--swui-metrics-spacing) * .5);padding-right:calc(var(--swui-metrics-indent) * 2)}._iconWrapper_15fk9_16{--current-bg-color: transparent;--current-border-color: var(--lhds-color-ui-50);--current-icon-color: var(--lhds-color-ui-50);display:inline-flex;flex-direction:row;white-space:nowrap;background-color:var(--current-bg-color);border:1px solid var(--current-border-color);border-radius:var(--swui-border-radius);padding:calc(var(--swui-metrics-spacing) * .5);align-items:flex-start}._iconWrapper_15fk9_16 svg{color:var(--current-icon-color)}._iconWrapper_15fk9_16._info_15fk9_36{--current-border-color: var(--lhds-color-blue-300);--current-bg-color: var(--lhds-color-blue-100);--current-icon-color: var(--lhds-color-blue-700)}._iconWrapper_15fk9_16._warning_15fk9_42{--current-border-color: var(--lhds-color-orange-300);--current-bg-color: var(--lhds-color-orange-100);--current-icon-color: var(--lhds-color-orange-700)}._iconWrapper_15fk9_16._error_15fk9_48{--current-border-color: var(--lhds-color-red-300);--current-bg-color: var(--lhds-color-red-100);--current-icon-color: var(--lhds-color-red-700)}")),document.head.appendChild(r)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
2
|
import { jsxs as r, jsx as e, Fragment as P } from "react/jsx-runtime";
|
|
3
3
|
import { Column as oe, Text as Y, Space as x, Row as j } from "@stenajs-webui/core";
|
|
4
|
-
import { FlatButton as te, PrimaryButton as
|
|
4
|
+
import { FlatButton as te, PrimaryButton as se, Spinner as ie, Icon as re, stenaInfoCircle as le, stenaExclamationCircle as ce, stenaExclamationTriangle as ae } from "@stenajs-webui/elements";
|
|
5
5
|
import { useRef as O, useCallback as q, useState as J } from "react";
|
|
6
|
-
import { useFloating as A, offset as
|
|
6
|
+
import { useFloating as A, offset as T, flip as $, shift as k, arrow as H, autoUpdate as S, useTransitionStyles as E, useDismiss as K, useRole as L, useInteractions as M, FloatingPortal as G, FloatingFocusManager as Q, FloatingArrow as N, useFocus as de, useClick as fe, useHover as V, safePolygon as pe } from "@floating-ui/react";
|
|
7
7
|
import v from "classnames";
|
|
8
8
|
import { cssColor as ge } from "@stenajs-webui/theme";
|
|
9
9
|
const je = ({
|
|
10
10
|
text: n = "Are you sure?",
|
|
11
|
-
yesLabel:
|
|
11
|
+
yesLabel: s = "Yes",
|
|
12
12
|
noLabel: l = "No",
|
|
13
13
|
onNo: c,
|
|
14
|
-
onYes:
|
|
14
|
+
onYes: i,
|
|
15
15
|
loading: a
|
|
16
16
|
}) => /* @__PURE__ */ r(oe, { position: "relative", children: [
|
|
17
17
|
/* @__PURE__ */ r("div", { style: { opacity: a ? 0 : 1 }, children: [
|
|
@@ -20,7 +20,7 @@ const je = ({
|
|
|
20
20
|
/* @__PURE__ */ r(j, { justifyContent: "flex-end", alignItems: "center", children: [
|
|
21
21
|
/* @__PURE__ */ e(te, { label: l, onClick: c }),
|
|
22
22
|
/* @__PURE__ */ e(x, {}),
|
|
23
|
-
/* @__PURE__ */ e(
|
|
23
|
+
/* @__PURE__ */ e(se, { label: s, onClick: i })
|
|
24
24
|
] })
|
|
25
25
|
] }),
|
|
26
26
|
a && /* @__PURE__ */ e(
|
|
@@ -33,7 +33,7 @@ const je = ({
|
|
|
33
33
|
width: "100%",
|
|
34
34
|
height: "100%",
|
|
35
35
|
position: "absolute",
|
|
36
|
-
children: /* @__PURE__ */ e(
|
|
36
|
+
children: /* @__PURE__ */ e(ie, { size: "small" })
|
|
37
37
|
}
|
|
38
38
|
)
|
|
39
39
|
] }), he = "_floating_1glwr_1", me = "_disablePadding_1glwr_11", ue = "_iconWrapper_1glwr_16", _e = "_info_1glwr_36", we = "_warning_1glwr_42", ye = "_error_1glwr_48", R = {
|
|
@@ -45,10 +45,10 @@ const je = ({
|
|
|
45
45
|
error: ye
|
|
46
46
|
}, Re = 12, D = 8, Ie = 2, De = ({
|
|
47
47
|
children: n,
|
|
48
|
-
placement:
|
|
48
|
+
placement: s = "bottom",
|
|
49
49
|
hideArrow: l,
|
|
50
50
|
renderTrigger: c,
|
|
51
|
-
disablePadding:
|
|
51
|
+
disablePadding: i,
|
|
52
52
|
open: a,
|
|
53
53
|
onRequestClose: p,
|
|
54
54
|
restoreFocus: m,
|
|
@@ -62,14 +62,14 @@ const je = ({
|
|
|
62
62
|
), { refs: d, floatingStyles: h, context: t } = A({
|
|
63
63
|
open: a,
|
|
64
64
|
onOpenChange: f,
|
|
65
|
-
placement:
|
|
65
|
+
placement: s,
|
|
66
66
|
middleware: [
|
|
67
|
-
|
|
68
|
-
T({ padding: 5 }),
|
|
67
|
+
T(D + Ie),
|
|
69
68
|
$({ padding: 5 }),
|
|
70
|
-
k({
|
|
69
|
+
k({ padding: 5 }),
|
|
70
|
+
H({ element: g })
|
|
71
71
|
],
|
|
72
|
-
whileElementsMounted:
|
|
72
|
+
whileElementsMounted: S
|
|
73
73
|
}), { isMounted: o, styles: _ } = E(t, {
|
|
74
74
|
initial: {
|
|
75
75
|
opacity: 0
|
|
@@ -99,7 +99,7 @@ const je = ({
|
|
|
99
99
|
style: _,
|
|
100
100
|
className: v(
|
|
101
101
|
R.floating,
|
|
102
|
-
|
|
102
|
+
i && R.disablePadding
|
|
103
103
|
),
|
|
104
104
|
children: [
|
|
105
105
|
n,
|
|
@@ -123,10 +123,10 @@ const je = ({
|
|
|
123
123
|
] });
|
|
124
124
|
}, Pe = 12, z = 8, ve = 2, ze = ({
|
|
125
125
|
children: n,
|
|
126
|
-
variant:
|
|
126
|
+
variant: s,
|
|
127
127
|
trigger: l = "hover",
|
|
128
128
|
placement: c = "bottom",
|
|
129
|
-
hideArrow:
|
|
129
|
+
hideArrow: i,
|
|
130
130
|
renderTrigger: a,
|
|
131
131
|
disablePadding: p,
|
|
132
132
|
appendTo: m,
|
|
@@ -137,12 +137,12 @@ const je = ({
|
|
|
137
137
|
onOpenChange: f,
|
|
138
138
|
placement: c,
|
|
139
139
|
middleware: [
|
|
140
|
-
|
|
141
|
-
T({ padding: 5 }),
|
|
140
|
+
T(z + ve),
|
|
142
141
|
$({ padding: 5 }),
|
|
143
|
-
k({
|
|
142
|
+
k({ padding: 5 }),
|
|
143
|
+
H({ element: d })
|
|
144
144
|
],
|
|
145
|
-
whileElementsMounted:
|
|
145
|
+
whileElementsMounted: S
|
|
146
146
|
}), { isMounted: _, styles: w } = E(o, {
|
|
147
147
|
initial: {
|
|
148
148
|
opacity: 0
|
|
@@ -175,11 +175,11 @@ const je = ({
|
|
|
175
175
|
className: v(
|
|
176
176
|
R.floating,
|
|
177
177
|
p && R.disablePadding,
|
|
178
|
-
|
|
178
|
+
s && R.withIcon
|
|
179
179
|
),
|
|
180
180
|
children: [
|
|
181
181
|
typeof n == "function" ? n({ onRequestClose: y }) : n,
|
|
182
|
-
!
|
|
182
|
+
!i && /* @__PURE__ */ e(
|
|
183
183
|
N,
|
|
184
184
|
{
|
|
185
185
|
ref: d,
|
|
@@ -195,7 +195,7 @@ const je = ({
|
|
|
195
195
|
}
|
|
196
196
|
) }) })
|
|
197
197
|
] });
|
|
198
|
-
}, F = (n,
|
|
198
|
+
}, F = (n, s) => typeof n == "string" ? n === s : n.includes(s), We = "_floating_15fk9_1", Ce = "_withIcon_15fk9_10", be = "_iconWrapper_15fk9_16", Fe = "_info_15fk9_36", xe = "_warning_15fk9_42", Oe = "_error_15fk9_48", I = {
|
|
199
199
|
floating: We,
|
|
200
200
|
withIcon: Ce,
|
|
201
201
|
iconWrapper: be,
|
|
@@ -206,27 +206,27 @@ const je = ({
|
|
|
206
206
|
info: le,
|
|
207
207
|
warning: ce,
|
|
208
208
|
error: ae
|
|
209
|
-
},
|
|
209
|
+
}, Te = 12, B = 8, $e = 2, Be = ({
|
|
210
210
|
children: n,
|
|
211
|
-
visible:
|
|
211
|
+
visible: s,
|
|
212
212
|
placement: l,
|
|
213
213
|
label: c,
|
|
214
|
-
variant:
|
|
214
|
+
variant: i,
|
|
215
215
|
maxWidth: a = "500px",
|
|
216
216
|
appendTo: p,
|
|
217
217
|
zIndex: m
|
|
218
218
|
}) => {
|
|
219
219
|
const [u, g] = J(!1), f = O(null), { refs: d, floatingStyles: h, context: t } = A({
|
|
220
220
|
placement: l,
|
|
221
|
-
open:
|
|
221
|
+
open: s ?? u,
|
|
222
222
|
onOpenChange: g,
|
|
223
223
|
middleware: [
|
|
224
|
-
|
|
225
|
-
T({ padding: 5 }),
|
|
224
|
+
T(B + $e),
|
|
226
225
|
$({ padding: 5 }),
|
|
227
|
-
k({
|
|
226
|
+
k({ padding: 5 }),
|
|
227
|
+
H({ element: f })
|
|
228
228
|
],
|
|
229
|
-
whileElementsMounted:
|
|
229
|
+
whileElementsMounted: S
|
|
230
230
|
}), { isMounted: o, styles: _ } = E(t, {
|
|
231
231
|
initial: {
|
|
232
232
|
opacity: 0
|
|
@@ -240,18 +240,18 @@ const je = ({
|
|
|
240
240
|
style: { maxWidth: a, ..._ },
|
|
241
241
|
className: v(
|
|
242
242
|
I.floating,
|
|
243
|
-
|
|
243
|
+
i && I.withIcon
|
|
244
244
|
),
|
|
245
245
|
children: [
|
|
246
|
-
|
|
246
|
+
i ? /* @__PURE__ */ r(P, { children: [
|
|
247
247
|
/* @__PURE__ */ e(
|
|
248
248
|
"div",
|
|
249
249
|
{
|
|
250
250
|
className: v(
|
|
251
251
|
I.iconWrapper,
|
|
252
|
-
I[
|
|
252
|
+
I[i]
|
|
253
253
|
),
|
|
254
|
-
children: /* @__PURE__ */ e(re, { icon: Ae[
|
|
254
|
+
children: /* @__PURE__ */ e(re, { icon: Ae[i], size: 16 })
|
|
255
255
|
}
|
|
256
256
|
),
|
|
257
257
|
/* @__PURE__ */ e(x, {}),
|
|
@@ -262,7 +262,7 @@ const je = ({
|
|
|
262
262
|
{
|
|
263
263
|
ref: f,
|
|
264
264
|
context: t,
|
|
265
|
-
width:
|
|
265
|
+
width: Te,
|
|
266
266
|
height: B,
|
|
267
267
|
fill: "#333"
|
|
268
268
|
}
|
|
@@ -271,16 +271,7 @@ const je = ({
|
|
|
271
271
|
}
|
|
272
272
|
) }) })
|
|
273
273
|
] });
|
|
274
|
-
}, U = ({ label: n }) => /* @__PURE__ */ e(
|
|
275
|
-
Y,
|
|
276
|
-
{
|
|
277
|
-
color: ge("--lhds-color-ui-50"),
|
|
278
|
-
size: "small",
|
|
279
|
-
variant: "bold",
|
|
280
|
-
whiteSpace: "nowrap",
|
|
281
|
-
children: n
|
|
282
|
-
}
|
|
283
|
-
);
|
|
274
|
+
}, U = ({ label: n }) => /* @__PURE__ */ e(Y, { color: ge("--lhds-color-ui-50"), size: "small", variant: "bold", children: n });
|
|
284
275
|
export {
|
|
285
276
|
je as ActionPrompt,
|
|
286
277
|
De as ControlledPopover,
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/popover/ActionPrompt.tsx","../src/components/popover/ControlledPopover.tsx","../src/components/popover/Popover.tsx","../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { Column, Row, Space, Text } from \"@stenajs-webui/core\";\nimport { FlatButton, Spinner, PrimaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\n\nexport interface ActionPromptProps {\n text?: string;\n yesLabel?: string;\n noLabel?: string;\n onYes?: () => void;\n onNo?: () => void;\n loading?: boolean;\n}\n\nexport const ActionPrompt: React.FC<ActionPromptProps> = ({\n text = \"Are you sure?\",\n yesLabel = \"Yes\",\n noLabel = \"No\",\n onNo,\n onYes,\n loading,\n}) => {\n return (\n <Column position={\"relative\"}>\n <div style={{ opacity: loading ? 0 : 1 }}>\n <Text>{text}</Text>\n <Space />\n <Row justifyContent={\"flex-end\"} alignItems={\"center\"}>\n <FlatButton label={noLabel} onClick={onNo} />\n <Space />\n <PrimaryButton label={yesLabel} onClick={onYes} />\n </Row>\n </div>\n {loading && (\n <Row\n justifyContent={\"center\"}\n alignItems={\"center\"}\n left={0}\n top={0}\n width={\"100%\"}\n height={\"100%\"}\n position={\"absolute\"}\n >\n <Spinner size={\"small\"} />\n </Row>\n )}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode, useCallback, useRef } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface ControlledPopoverProps extends PropsWithChildren {\n open: boolean;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n onRequestClose: () => void;\n placement?: Placement;\n hideArrow?: boolean;\n disablePadding?: boolean;\n restoreFocus?: boolean;\n returnFocus?: boolean;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const ControlledPopover: React.FC<ControlledPopoverProps> = ({\n children,\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n open,\n onRequestClose,\n restoreFocus,\n returnFocus,\n}) => {\n const arrowRef = useRef(null);\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n onRequestClose();\n }\n },\n [onRequestClose]\n );\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n restoreFocus={restoreFocus}\n returnFocus={returnFocus}\n >\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding\n )}\n >\n {children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode, useCallback, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\nexport type PopoverTrigger = \"click\" | \"hover\" | \"focus\";\n\nexport type PopoverChildren =\n | ReactNode\n | ((args: PopoverChildrenArgs) => ReactNode);\n\nexport interface PopoverChildrenArgs {\n onRequestClose: () => void;\n}\n\ntype TriggerProp = PopoverTrigger | Array<PopoverTrigger>;\n\nexport interface PopoverProps {\n children?: PopoverChildren;\n onRequestClose?: () => void;\n placement?: Placement;\n trigger?: TriggerProp;\n hideArrow?: boolean;\n disablePadding?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n variant,\n trigger = \"hover\",\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const onRequestClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const onFocus = useFocus(context, { enabled: hasTrigger(trigger, \"focus\") });\n const onClick = useClick(context, { enabled: hasTrigger(trigger, \"click\") });\n const onHover = useHover(context, {\n enabled: hasTrigger(trigger, \"hover\"),\n handleClose: safePolygon(),\n restMs: 100,\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n onFocus,\n onClick,\n onHover,\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{ zIndex, ...floatingStyles }}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding,\n variant && moduleStyles.withIcon\n )}\n >\n {typeof children === \"function\"\n ? children({ onRequestClose })\n : children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst hasTrigger = (\n triggerProp: TriggerProp,\n triggerToCheck: PopoverTrigger\n): boolean => {\n if (typeof triggerProp === \"string\") {\n return triggerProp === triggerToCheck;\n }\n return triggerProp.includes(triggerToCheck);\n};\n","import { Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { CSSProperties, PropsWithChildren, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingPortal,\n offset,\n shift,\n useFloating,\n useHover,\n useInteractions,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport moduleStyles from \"./Tooltip.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport cx from \"classnames\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface TooltipProps extends PropsWithChildren {\n placement?: Placement;\n visible?: boolean;\n label: string;\n variant?: TooltipVariant;\n maxWidth?: CSSProperties[\"maxWidth\"];\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n visible,\n placement,\n label,\n variant,\n maxWidth = \"500px\",\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n placement: placement,\n open: visible ?? isOpen,\n onOpenChange: setIsOpen,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const hover = useHover(context);\n\n const { getReferenceProps } = useInteractions([hover]);\n\n return (\n <>\n <div ref={refs.setReference} {...getReferenceProps()}>\n {children}\n </div>\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <div ref={refs.setFloating} style={{ zIndex, ...floatingStyles }}>\n <div\n style={{ maxWidth, ...styles }}\n className={cx(\n moduleStyles.floating,\n variant && moduleStyles.withIcon\n )}\n >\n {variant ? (\n <>\n <div\n className={cx(\n moduleStyles.iconWrapper,\n moduleStyles[variant]\n )}\n >\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"#333\"}\n />\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst TooltipText: React.FC<{ label: string }> = ({ label }) => (\n <Text\n color={cssColor(\"--lhds-color-ui-50\")}\n size={\"small\"}\n variant={\"bold\"}\n whiteSpace={\"nowrap\"}\n >\n {label}\n </Text>\n);\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","ARROW_WIDTH","ARROW_HEIGHT","GAP","ControlledPopover","children","placement","hideArrow","renderTrigger","disablePadding","open","onRequestClose","restoreFocus","returnFocus","arrowRef","useRef","onOpenChange","useCallback","refs","floatingStyles","context","useFloating","offset","flip","shift","arrow","autoUpdate","isMounted","transitionStyles","useTransitionStyles","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","Fragment","FloatingPortal","FloatingFocusManager","cx","moduleStyles","FloatingArrow","Popover","variant","trigger","appendTo","zIndex","isOpen","setIsOpen","useState","onFocus","useFocus","hasTrigger","onClick","useClick","onHover","useHover","safePolygon","triggerProp","triggerToCheck","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","Tooltip","visible","label","maxWidth","styles","hover","Icon","TooltipText","cssColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/components/popover/ActionPrompt.tsx","../src/components/popover/ControlledPopover.tsx","../src/components/popover/Popover.tsx","../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { Column, Row, Space, Text } from \"@stenajs-webui/core\";\nimport { FlatButton, Spinner, PrimaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\n\nexport interface ActionPromptProps {\n text?: string;\n yesLabel?: string;\n noLabel?: string;\n onYes?: () => void;\n onNo?: () => void;\n loading?: boolean;\n}\n\nexport const ActionPrompt: React.FC<ActionPromptProps> = ({\n text = \"Are you sure?\",\n yesLabel = \"Yes\",\n noLabel = \"No\",\n onNo,\n onYes,\n loading,\n}) => {\n return (\n <Column position={\"relative\"}>\n <div style={{ opacity: loading ? 0 : 1 }}>\n <Text>{text}</Text>\n <Space />\n <Row justifyContent={\"flex-end\"} alignItems={\"center\"}>\n <FlatButton label={noLabel} onClick={onNo} />\n <Space />\n <PrimaryButton label={yesLabel} onClick={onYes} />\n </Row>\n </div>\n {loading && (\n <Row\n justifyContent={\"center\"}\n alignItems={\"center\"}\n left={0}\n top={0}\n width={\"100%\"}\n height={\"100%\"}\n position={\"absolute\"}\n >\n <Spinner size={\"small\"} />\n </Row>\n )}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode, useCallback, useRef } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface ControlledPopoverProps extends PropsWithChildren {\n open: boolean;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n onRequestClose: () => void;\n placement?: Placement;\n hideArrow?: boolean;\n disablePadding?: boolean;\n restoreFocus?: boolean;\n returnFocus?: boolean;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const ControlledPopover: React.FC<ControlledPopoverProps> = ({\n children,\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n open,\n onRequestClose,\n restoreFocus,\n returnFocus,\n}) => {\n const arrowRef = useRef(null);\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n onRequestClose();\n }\n },\n [onRequestClose]\n );\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n restoreFocus={restoreFocus}\n returnFocus={returnFocus}\n >\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding\n )}\n >\n {children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode, useCallback, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\nexport type PopoverTrigger = \"click\" | \"hover\" | \"focus\";\n\nexport type PopoverChildren =\n | ReactNode\n | ((args: PopoverChildrenArgs) => ReactNode);\n\nexport interface PopoverChildrenArgs {\n onRequestClose: () => void;\n}\n\ntype TriggerProp = PopoverTrigger | Array<PopoverTrigger>;\n\nexport interface PopoverProps {\n children?: PopoverChildren;\n onRequestClose?: () => void;\n placement?: Placement;\n trigger?: TriggerProp;\n hideArrow?: boolean;\n disablePadding?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n variant,\n trigger = \"hover\",\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const onRequestClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const onFocus = useFocus(context, { enabled: hasTrigger(trigger, \"focus\") });\n const onClick = useClick(context, { enabled: hasTrigger(trigger, \"click\") });\n const onHover = useHover(context, {\n enabled: hasTrigger(trigger, \"hover\"),\n handleClose: safePolygon(),\n restMs: 100,\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n onFocus,\n onClick,\n onHover,\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{ zIndex, ...floatingStyles }}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding,\n variant && moduleStyles.withIcon\n )}\n >\n {typeof children === \"function\"\n ? children({ onRequestClose })\n : children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst hasTrigger = (\n triggerProp: TriggerProp,\n triggerToCheck: PopoverTrigger\n): boolean => {\n if (typeof triggerProp === \"string\") {\n return triggerProp === triggerToCheck;\n }\n return triggerProp.includes(triggerToCheck);\n};\n","import { Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { CSSProperties, PropsWithChildren, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingPortal,\n offset,\n shift,\n useFloating,\n useHover,\n useInteractions,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport moduleStyles from \"./Tooltip.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport cx from \"classnames\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface TooltipProps extends PropsWithChildren {\n placement?: Placement;\n visible?: boolean;\n label: string;\n variant?: TooltipVariant;\n maxWidth?: CSSProperties[\"maxWidth\"];\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n visible,\n placement,\n label,\n variant,\n maxWidth = \"500px\",\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n placement: placement,\n open: visible ?? isOpen,\n onOpenChange: setIsOpen,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const hover = useHover(context);\n\n const { getReferenceProps } = useInteractions([hover]);\n\n return (\n <>\n <div ref={refs.setReference} {...getReferenceProps()}>\n {children}\n </div>\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <div ref={refs.setFloating} style={{ zIndex, ...floatingStyles }}>\n <div\n style={{ maxWidth, ...styles }}\n className={cx(\n moduleStyles.floating,\n variant && moduleStyles.withIcon\n )}\n >\n {variant ? (\n <>\n <div\n className={cx(\n moduleStyles.iconWrapper,\n moduleStyles[variant]\n )}\n >\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"#333\"}\n />\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst TooltipText: React.FC<{ label: string }> = ({ label }) => (\n <Text color={cssColor(\"--lhds-color-ui-50\")} size={\"small\"} variant={\"bold\"}>\n {label}\n </Text>\n);\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","ARROW_WIDTH","ARROW_HEIGHT","GAP","ControlledPopover","children","placement","hideArrow","renderTrigger","disablePadding","open","onRequestClose","restoreFocus","returnFocus","arrowRef","useRef","onOpenChange","useCallback","refs","floatingStyles","context","useFloating","offset","flip","shift","arrow","autoUpdate","isMounted","transitionStyles","useTransitionStyles","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","Fragment","FloatingPortal","FloatingFocusManager","cx","moduleStyles","FloatingArrow","Popover","variant","trigger","appendTo","zIndex","isOpen","setIsOpen","useState","onFocus","useFocus","hasTrigger","onClick","useClick","onHover","useHover","safePolygon","triggerProp","triggerToCheck","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","Tooltip","visible","label","maxWidth","styles","hover","Icon","TooltipText","cssColor"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode("._floating_1glwr_1{display:flex;flex-direction:row;align-items:center;background:#fff;color:#fff;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2);box-shadow:var(--swui-shadow-popover)}._floating_1glwr_1._disablePadding_1glwr_11{padding:0}._iconWrapper_1glwr_16{--current-bg-color: transparent;--current-border-color: var(--lhds-color-ui-50);--current-icon-color: var(--lhds-color-ui-50);display:inline-flex;flex-direction:row;white-space:nowrap;background-color:var(--current-bg-color);border:1px solid var(--current-border-color);border-radius:var(--swui-border-radius);padding:calc(var(--swui-metrics-spacing) * .5);align-items:flex-start}._iconWrapper_1glwr_16 svg{color:var(--current-icon-color)}._iconWrapper_1glwr_16._info_1glwr_36{--current-border-color: var(--lhds-color-blue-300);--current-bg-color: var(--lhds-color-blue-100);--current-icon-color: var(--lhds-color-blue-700)}._iconWrapper_1glwr_16._warning_1glwr_42{--current-border-color: var(--lhds-color-orange-300);--current-bg-color: var(--lhds-color-orange-100);--current-icon-color: var(--lhds-color-orange-700)}._iconWrapper_1glwr_16._error_1glwr_48{--current-border-color: var(--lhds-color-red-300);--current-bg-color: var(--lhds-color-red-100);--current-icon-color: var(--lhds-color-red-700)}._floating_15fk9_1{display:flex;align-items:center;background:#333;color:#fff;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}._floating_15fk9_1._withIcon_15fk9_10{padding:calc(var(--swui-metrics-spacing) * .5);padding-right:calc(var(--swui-metrics-indent) * 2)}._iconWrapper_15fk9_16{--current-bg-color: transparent;--current-border-color: var(--lhds-color-ui-50);--current-icon-color: var(--lhds-color-ui-50);display:inline-flex;flex-direction:row;white-space:nowrap;background-color:var(--current-bg-color);border:1px solid var(--current-border-color);border-radius:var(--swui-border-radius);padding:calc(var(--swui-metrics-spacing) * .5);align-items:flex-start}._iconWrapper_15fk9_16 svg{color:var(--current-icon-color)}._iconWrapper_15fk9_16._info_15fk9_36{--current-border-color: var(--lhds-color-blue-300);--current-bg-color: var(--lhds-color-blue-100);--current-icon-color: var(--lhds-color-blue-700)}._iconWrapper_15fk9_16._warning_15fk9_42{--current-border-color: var(--lhds-color-orange-300);--current-bg-color: var(--lhds-color-orange-100);--current-icon-color: var(--lhds-color-orange-700)}._iconWrapper_15fk9_16._error_15fk9_48{--current-border-color: var(--lhds-color-red-300);--current-bg-color: var(--lhds-color-red-100);--current-icon-color: var(--lhds-color-red-700)}")),document.head.appendChild(r)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})();
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),f=require("@stenajs-webui/core"),g=require("@stenajs-webui/elements"),p=require("react"),e=require("@floating-ui/react"),I=require("classnames"),E=require("@stenajs-webui/theme"),q=({text:s="Are you sure?",yesLabel:i="Yes",noLabel:l="No",onNo:
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),f=require("@stenajs-webui/core"),g=require("@stenajs-webui/elements"),p=require("react"),e=require("@floating-ui/react"),I=require("classnames"),E=require("@stenajs-webui/theme"),q=({text:s="Are you sure?",yesLabel:i="Yes",noLabel:l="No",onNo:c,onYes:r,loading:a})=>n.jsxs(f.Column,{position:"relative",children:[n.jsxs("div",{style:{opacity:a?0:1},children:[n.jsx(f.Text,{children:s}),n.jsx(f.Space,{}),n.jsxs(f.Row,{justifyContent:"flex-end",alignItems:"center",children:[n.jsx(g.FlatButton,{label:l,onClick:c}),n.jsx(f.Space,{}),n.jsx(g.PrimaryButton,{label:i,onClick:r})]})]}),a&&n.jsx(f.Row,{justifyContent:"center",alignItems:"center",left:0,top:0,width:"100%",height:"100%",position:"absolute",children:n.jsx(g.Spinner,{size:"small"})})]}),G="_floating_1glwr_1",D="_disablePadding_1glwr_11",N="_iconWrapper_1glwr_16",z="_info_1glwr_36",U="_warning_1glwr_42",B="_error_1glwr_48",F={floating:G,disablePadding:D,iconWrapper:N,info:z,warning:U,error:B},Y=12,T=8,J=2,K=({children:s,placement:i="bottom",hideArrow:l,renderTrigger:c,disablePadding:r,open:a,onRequestClose:h,restoreFocus:m,returnFocus:w})=>{const x=p.useRef(null),u=p.useCallback(b=>{b||h()},[h]),{refs:d,floatingStyles:_,context:o}=e.useFloating({open:a,onOpenChange:u,placement:i,middleware:[e.offset(T+J),e.flip({padding:5}),e.shift({padding:5}),e.arrow({element:x})],whileElementsMounted:e.autoUpdate}),{isMounted:t,styles:j}=e.useTransitionStyles(o,{initial:{opacity:0}}),y=e.useDismiss(o),R=e.useRole(o),{getReferenceProps:v,getFloatingProps:S}=e.useInteractions([y,R]);return n.jsxs(n.Fragment,{children:[c({ref:d.setReference,...v()}),t&&n.jsx(e.FloatingPortal,{children:n.jsx(e.FloatingFocusManager,{context:o,modal:!1,restoreFocus:m,returnFocus:w,children:n.jsx("div",{ref:d.setFloating,style:_,...S,children:n.jsxs("div",{style:j,className:I(F.floating,r&&F.disablePadding),children:[s,!l&&n.jsx(e.FloatingArrow,{ref:x,context:o,width:Y,height:T,fill:"white"})]})})})})]})},L=12,W=8,Q=2,V=({children:s,variant:i,trigger:l="hover",placement:c="bottom",hideArrow:r,renderTrigger:a,disablePadding:h,appendTo:m,zIndex:w})=>{const[x,u]=p.useState(!1),d=p.useRef(null),{refs:_,floatingStyles:o,context:t}=e.useFloating({open:x,onOpenChange:u,placement:c,middleware:[e.offset(W+Q),e.flip({padding:5}),e.shift({padding:5}),e.arrow({element:d})],whileElementsMounted:e.autoUpdate}),{isMounted:j,styles:y}=e.useTransitionStyles(t,{initial:{opacity:0}}),R=p.useCallback(()=>{u(!1)},[]),v=e.useDismiss(t),S=e.useRole(t),b=e.useFocus(t,{enabled:C(l,"focus")}),$=e.useClick(t,{enabled:C(l,"click")}),k=e.useHover(t,{enabled:C(l,"hover"),handleClose:e.safePolygon(),restMs:100}),{getReferenceProps:H,getFloatingProps:M}=e.useInteractions([b,$,k,v,S]);return n.jsxs(n.Fragment,{children:[a({ref:_.setReference,...H()}),j&&n.jsx(e.FloatingPortal,{root:m,children:n.jsx(e.FloatingFocusManager,{context:t,modal:!1,children:n.jsx("div",{ref:_.setFloating,style:{zIndex:w,...o},...M,children:n.jsxs("div",{style:y,className:I(F.floating,h&&F.disablePadding,i&&F.withIcon),children:[typeof s=="function"?s({onRequestClose:R}):s,!r&&n.jsx(e.FloatingArrow,{ref:d,context:t,width:L,height:W,fill:"white"})]})})})})]})},C=(s,i)=>typeof s=="string"?s===i:s.includes(i),X="_floating_15fk9_1",Z="_withIcon_15fk9_10",ee="_iconWrapper_15fk9_16",ne="_info_15fk9_36",se="_warning_15fk9_42",te="_error_15fk9_48",P={floating:X,withIcon:Z,iconWrapper:ee,info:ne,warning:se,error:te},oe={info:g.stenaInfoCircle,warning:g.stenaExclamationCircle,error:g.stenaExclamationTriangle},ie=12,A=8,re=2,le=({children:s,visible:i,placement:l,label:c,variant:r,maxWidth:a="500px",appendTo:h,zIndex:m})=>{const[w,x]=p.useState(!1),u=p.useRef(null),{refs:d,floatingStyles:_,context:o}=e.useFloating({placement:l,open:i??w,onOpenChange:x,middleware:[e.offset(A+re),e.flip({padding:5}),e.shift({padding:5}),e.arrow({element:u})],whileElementsMounted:e.autoUpdate}),{isMounted:t,styles:j}=e.useTransitionStyles(o,{initial:{opacity:0}}),y=e.useHover(o),{getReferenceProps:R}=e.useInteractions([y]);return n.jsxs(n.Fragment,{children:[n.jsx("div",{ref:d.setReference,...R(),children:s}),t&&n.jsx(e.FloatingPortal,{root:h,children:n.jsx("div",{ref:d.setFloating,style:{zIndex:m,..._},children:n.jsxs("div",{style:{maxWidth:a,...j},className:I(P.floating,r&&P.withIcon),children:[r?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:I(P.iconWrapper,P[r]),children:n.jsx(g.Icon,{icon:oe[r],size:16})}),n.jsx(f.Space,{}),n.jsx(O,{label:c})]}):n.jsx(O,{label:c}),n.jsx(e.FloatingArrow,{ref:u,context:o,width:ie,height:A,fill:"#333"})]})})})]})},O=({label:s})=>n.jsx(f.Text,{color:E.cssColor("--lhds-color-ui-50"),size:"small",variant:"bold",children:s});exports.ActionPrompt=q;exports.ControlledPopover=K;exports.Popover=V;exports.Tooltip=le;
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/popover/ActionPrompt.tsx","../src/components/popover/ControlledPopover.tsx","../src/components/popover/Popover.tsx","../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { Column, Row, Space, Text } from \"@stenajs-webui/core\";\nimport { FlatButton, Spinner, PrimaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\n\nexport interface ActionPromptProps {\n text?: string;\n yesLabel?: string;\n noLabel?: string;\n onYes?: () => void;\n onNo?: () => void;\n loading?: boolean;\n}\n\nexport const ActionPrompt: React.FC<ActionPromptProps> = ({\n text = \"Are you sure?\",\n yesLabel = \"Yes\",\n noLabel = \"No\",\n onNo,\n onYes,\n loading,\n}) => {\n return (\n <Column position={\"relative\"}>\n <div style={{ opacity: loading ? 0 : 1 }}>\n <Text>{text}</Text>\n <Space />\n <Row justifyContent={\"flex-end\"} alignItems={\"center\"}>\n <FlatButton label={noLabel} onClick={onNo} />\n <Space />\n <PrimaryButton label={yesLabel} onClick={onYes} />\n </Row>\n </div>\n {loading && (\n <Row\n justifyContent={\"center\"}\n alignItems={\"center\"}\n left={0}\n top={0}\n width={\"100%\"}\n height={\"100%\"}\n position={\"absolute\"}\n >\n <Spinner size={\"small\"} />\n </Row>\n )}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode, useCallback, useRef } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface ControlledPopoverProps extends PropsWithChildren {\n open: boolean;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n onRequestClose: () => void;\n placement?: Placement;\n hideArrow?: boolean;\n disablePadding?: boolean;\n restoreFocus?: boolean;\n returnFocus?: boolean;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const ControlledPopover: React.FC<ControlledPopoverProps> = ({\n children,\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n open,\n onRequestClose,\n restoreFocus,\n returnFocus,\n}) => {\n const arrowRef = useRef(null);\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n onRequestClose();\n }\n },\n [onRequestClose]\n );\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n restoreFocus={restoreFocus}\n returnFocus={returnFocus}\n >\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding\n )}\n >\n {children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode, useCallback, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\nexport type PopoverTrigger = \"click\" | \"hover\" | \"focus\";\n\nexport type PopoverChildren =\n | ReactNode\n | ((args: PopoverChildrenArgs) => ReactNode);\n\nexport interface PopoverChildrenArgs {\n onRequestClose: () => void;\n}\n\ntype TriggerProp = PopoverTrigger | Array<PopoverTrigger>;\n\nexport interface PopoverProps {\n children?: PopoverChildren;\n onRequestClose?: () => void;\n placement?: Placement;\n trigger?: TriggerProp;\n hideArrow?: boolean;\n disablePadding?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n variant,\n trigger = \"hover\",\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const onRequestClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const onFocus = useFocus(context, { enabled: hasTrigger(trigger, \"focus\") });\n const onClick = useClick(context, { enabled: hasTrigger(trigger, \"click\") });\n const onHover = useHover(context, {\n enabled: hasTrigger(trigger, \"hover\"),\n handleClose: safePolygon(),\n restMs: 100,\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n onFocus,\n onClick,\n onHover,\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{ zIndex, ...floatingStyles }}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding,\n variant && moduleStyles.withIcon\n )}\n >\n {typeof children === \"function\"\n ? children({ onRequestClose })\n : children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst hasTrigger = (\n triggerProp: TriggerProp,\n triggerToCheck: PopoverTrigger\n): boolean => {\n if (typeof triggerProp === \"string\") {\n return triggerProp === triggerToCheck;\n }\n return triggerProp.includes(triggerToCheck);\n};\n","import { Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { CSSProperties, PropsWithChildren, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingPortal,\n offset,\n shift,\n useFloating,\n useHover,\n useInteractions,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport moduleStyles from \"./Tooltip.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport cx from \"classnames\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface TooltipProps extends PropsWithChildren {\n placement?: Placement;\n visible?: boolean;\n label: string;\n variant?: TooltipVariant;\n maxWidth?: CSSProperties[\"maxWidth\"];\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n visible,\n placement,\n label,\n variant,\n maxWidth = \"500px\",\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n placement: placement,\n open: visible ?? isOpen,\n onOpenChange: setIsOpen,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const hover = useHover(context);\n\n const { getReferenceProps } = useInteractions([hover]);\n\n return (\n <>\n <div ref={refs.setReference} {...getReferenceProps()}>\n {children}\n </div>\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <div ref={refs.setFloating} style={{ zIndex, ...floatingStyles }}>\n <div\n style={{ maxWidth, ...styles }}\n className={cx(\n moduleStyles.floating,\n variant && moduleStyles.withIcon\n )}\n >\n {variant ? (\n <>\n <div\n className={cx(\n moduleStyles.iconWrapper,\n moduleStyles[variant]\n )}\n >\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"#333\"}\n />\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst TooltipText: React.FC<{ label: string }> = ({ label }) => (\n <Text\n color={cssColor(\"--lhds-color-ui-50\")}\n size={\"small\"}\n variant={\"bold\"}\n whiteSpace={\"nowrap\"}\n >\n {label}\n </Text>\n);\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","ARROW_WIDTH","ARROW_HEIGHT","GAP","ControlledPopover","children","placement","hideArrow","renderTrigger","disablePadding","open","onRequestClose","restoreFocus","returnFocus","arrowRef","useRef","onOpenChange","useCallback","refs","floatingStyles","context","useFloating","offset","flip","shift","arrow","autoUpdate","isMounted","transitionStyles","useTransitionStyles","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","Fragment","FloatingPortal","FloatingFocusManager","cx","moduleStyles","FloatingArrow","Popover","variant","trigger","appendTo","zIndex","isOpen","setIsOpen","useState","onFocus","useFocus","hasTrigger","onClick","useClick","onHover","useHover","safePolygon","triggerProp","triggerToCheck","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","Tooltip","visible","label","maxWidth","styles","hover","Icon","TooltipText","cssColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/popover/ActionPrompt.tsx","../src/components/popover/ControlledPopover.tsx","../src/components/popover/Popover.tsx","../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["import { Column, Row, Space, Text } from \"@stenajs-webui/core\";\nimport { FlatButton, Spinner, PrimaryButton } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\n\nexport interface ActionPromptProps {\n text?: string;\n yesLabel?: string;\n noLabel?: string;\n onYes?: () => void;\n onNo?: () => void;\n loading?: boolean;\n}\n\nexport const ActionPrompt: React.FC<ActionPromptProps> = ({\n text = \"Are you sure?\",\n yesLabel = \"Yes\",\n noLabel = \"No\",\n onNo,\n onYes,\n loading,\n}) => {\n return (\n <Column position={\"relative\"}>\n <div style={{ opacity: loading ? 0 : 1 }}>\n <Text>{text}</Text>\n <Space />\n <Row justifyContent={\"flex-end\"} alignItems={\"center\"}>\n <FlatButton label={noLabel} onClick={onNo} />\n <Space />\n <PrimaryButton label={yesLabel} onClick={onYes} />\n </Row>\n </div>\n {loading && (\n <Row\n justifyContent={\"center\"}\n alignItems={\"center\"}\n left={0}\n top={0}\n width={\"100%\"}\n height={\"100%\"}\n position={\"absolute\"}\n >\n <Spinner size={\"small\"} />\n </Row>\n )}\n </Column>\n );\n};\n","import * as React from \"react\";\nimport { PropsWithChildren, ReactNode, useCallback, useRef } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface ControlledPopoverProps extends PropsWithChildren {\n open: boolean;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n onRequestClose: () => void;\n placement?: Placement;\n hideArrow?: boolean;\n disablePadding?: boolean;\n restoreFocus?: boolean;\n returnFocus?: boolean;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const ControlledPopover: React.FC<ControlledPopoverProps> = ({\n children,\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n open,\n onRequestClose,\n restoreFocus,\n returnFocus,\n}) => {\n const arrowRef = useRef(null);\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n onRequestClose();\n }\n },\n [onRequestClose]\n );\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal>\n <FloatingFocusManager\n context={context}\n modal={false}\n restoreFocus={restoreFocus}\n returnFocus={returnFocus}\n >\n <div\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding\n )}\n >\n {children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n","import * as React from \"react\";\nimport { ReactNode, useCallback, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n safePolygon,\n shift,\n useClick,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport cx from \"classnames\";\nimport moduleStyles from \"./Popover.module.css\";\nimport { Placement } from \"../../types/Placement\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\nexport type PopoverTrigger = \"click\" | \"hover\" | \"focus\";\n\nexport type PopoverChildren =\n | ReactNode\n | ((args: PopoverChildrenArgs) => ReactNode);\n\nexport interface PopoverChildrenArgs {\n onRequestClose: () => void;\n}\n\ntype TriggerProp = PopoverTrigger | Array<PopoverTrigger>;\n\nexport interface PopoverProps {\n children?: PopoverChildren;\n onRequestClose?: () => void;\n placement?: Placement;\n trigger?: TriggerProp;\n hideArrow?: boolean;\n disablePadding?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n renderTrigger: (props: Record<string, unknown>) => ReactNode;\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n variant,\n trigger = \"hover\",\n placement = \"bottom\",\n hideArrow,\n renderTrigger,\n disablePadding,\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n placement,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const onRequestClose = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const onFocus = useFocus(context, { enabled: hasTrigger(trigger, \"focus\") });\n const onClick = useClick(context, { enabled: hasTrigger(trigger, \"click\") });\n const onHover = useHover(context, {\n enabled: hasTrigger(trigger, \"hover\"),\n handleClose: safePolygon(),\n restMs: 100,\n });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n onFocus,\n onClick,\n onHover,\n dismiss,\n role,\n ]);\n\n return (\n <>\n {renderTrigger({ ref: refs.setReference, ...getReferenceProps() })}\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <FloatingFocusManager context={context} modal={false}>\n <div\n ref={refs.setFloating}\n style={{ zIndex, ...floatingStyles }}\n {...getFloatingProps}\n >\n <div\n style={transitionStyles}\n className={cx(\n moduleStyles.floating,\n disablePadding && moduleStyles.disablePadding,\n variant && moduleStyles.withIcon\n )}\n >\n {typeof children === \"function\"\n ? children({ onRequestClose })\n : children}\n {!hideArrow && (\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"white\"}\n />\n )}\n </div>\n </div>\n </FloatingFocusManager>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst hasTrigger = (\n triggerProp: TriggerProp,\n triggerToCheck: PopoverTrigger\n): boolean => {\n if (typeof triggerProp === \"string\") {\n return triggerProp === triggerToCheck;\n }\n return triggerProp.includes(triggerToCheck);\n};\n","import { Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { CSSProperties, PropsWithChildren, useRef, useState } from \"react\";\nimport {\n arrow,\n autoUpdate,\n flip,\n FloatingArrow,\n FloatingPortal,\n offset,\n shift,\n useFloating,\n useHover,\n useInteractions,\n useTransitionStyles,\n} from \"@floating-ui/react\";\nimport moduleStyles from \"./Tooltip.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport cx from \"classnames\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport { Placement } from \"../../types/Placement\";\n\nexport interface TooltipProps extends PropsWithChildren {\n placement?: Placement;\n visible?: boolean;\n label: string;\n variant?: TooltipVariant;\n maxWidth?: CSSProperties[\"maxWidth\"];\n appendTo?: HTMLElement | null | React.MutableRefObject<HTMLElement | null>;\n zIndex?: number;\n}\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nconst ARROW_WIDTH = 12;\nconst ARROW_HEIGHT = 8;\nconst GAP = 2;\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n visible,\n placement,\n label,\n variant,\n maxWidth = \"500px\",\n appendTo,\n zIndex,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n const arrowRef = useRef(null);\n\n const { refs, floatingStyles, context } = useFloating({\n placement: placement,\n open: visible ?? isOpen,\n onOpenChange: setIsOpen,\n middleware: [\n offset(ARROW_HEIGHT + GAP),\n flip({ padding: 5 }),\n shift({ padding: 5 }),\n arrow({ element: arrowRef }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n },\n });\n\n const hover = useHover(context);\n\n const { getReferenceProps } = useInteractions([hover]);\n\n return (\n <>\n <div ref={refs.setReference} {...getReferenceProps()}>\n {children}\n </div>\n\n {isMounted && (\n <FloatingPortal root={appendTo}>\n <div ref={refs.setFloating} style={{ zIndex, ...floatingStyles }}>\n <div\n style={{ maxWidth, ...styles }}\n className={cx(\n moduleStyles.floating,\n variant && moduleStyles.withIcon\n )}\n >\n {variant ? (\n <>\n <div\n className={cx(\n moduleStyles.iconWrapper,\n moduleStyles[variant]\n )}\n >\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={ARROW_WIDTH}\n height={ARROW_HEIGHT}\n fill={\"#333\"}\n />\n </div>\n </div>\n </FloatingPortal>\n )}\n </>\n );\n};\n\nconst TooltipText: React.FC<{ label: string }> = ({ label }) => (\n <Text color={cssColor(\"--lhds-color-ui-50\")} size={\"small\"} variant={\"bold\"}>\n {label}\n </Text>\n);\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","ARROW_WIDTH","ARROW_HEIGHT","GAP","ControlledPopover","children","placement","hideArrow","renderTrigger","disablePadding","open","onRequestClose","restoreFocus","returnFocus","arrowRef","useRef","onOpenChange","useCallback","refs","floatingStyles","context","useFloating","offset","flip","shift","arrow","autoUpdate","isMounted","transitionStyles","useTransitionStyles","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","Fragment","FloatingPortal","FloatingFocusManager","cx","moduleStyles","FloatingArrow","Popover","variant","trigger","appendTo","zIndex","isOpen","setIsOpen","useState","onFocus","useFocus","hasTrigger","onClick","useClick","onHover","useHover","safePolygon","triggerProp","triggerToCheck","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","Tooltip","visible","label","maxWidth","styles","hover","Icon","TooltipText","cssColor"],"mappings":"wSAaaA,EAA4C,CAAC,CACxD,KAAAC,EAAO,gBACP,SAAAC,EAAW,MACX,QAAAC,EAAU,KACV,KAAAC,EACA,MAAAC,EACA,QAAAC,CACF,IAEIC,EAAA,KAACC,EAAO,OAAA,CAAA,SAAU,WAChB,SAAA,CAAAD,OAAC,OAAI,MAAO,CAAE,QAASD,EAAU,EAAI,CACnC,EAAA,SAAA,CAAAG,EAAAA,IAACC,QAAM,SAAKT,CAAA,CAAA,QACXU,EAAM,MAAA,EAAA,EACNJ,EAAA,KAAAK,EAAA,IAAA,CAAI,eAAgB,WAAY,WAAY,SAC3C,SAAA,CAAAH,EAAA,IAACI,EAAW,WAAA,CAAA,MAAOV,EAAS,QAASC,EAAM,QAC1CO,EAAM,MAAA,EAAA,EACNF,EAAA,IAAAK,EAAA,cAAA,CAAc,MAAOZ,EAAU,QAASG,EAAO,CAAA,EAClD,CAAA,EACF,EACCC,GACCG,EAAA,IAACG,EAAA,IAAA,CACC,eAAgB,SAChB,WAAY,SACZ,KAAM,EACN,IAAK,EACL,MAAO,OACP,OAAQ,OACR,SAAU,WAEV,SAAAH,EAAAA,IAACM,EAAAA,QAAQ,CAAA,KAAM,OAAS,CAAA,CAAA,CAC1B,CAEJ,CAAA,CAAA,mNCbEC,EAAc,GACdC,EAAe,EACfC,EAAM,EAECC,EAAsD,CAAC,CAClE,SAAAC,EACA,UAAAC,EAAY,SACZ,UAAAC,EACA,cAAAC,EACA,eAAAC,EACA,KAAAC,EACA,eAAAC,EACA,aAAAC,EACA,YAAAC,CACF,IAAM,CACE,MAAAC,EAAWC,SAAO,IAAI,EAEtBC,EAAeC,EAAA,YAClBP,GAAkB,CACZA,GACYC,GAEnB,EACA,CAACA,CAAc,CAAA,EAGX,CAAE,KAAAO,EAAM,eAAAC,EAAgB,QAAAC,CAAA,EAAYC,EAAAA,YAAY,CACpD,KAAAX,EACA,aAAAM,EACA,UAAAV,EACA,WAAY,CACVgB,EAAA,OAAOpB,EAAeC,CAAG,EACzBoB,OAAK,CAAE,QAAS,EAAG,EACnBC,QAAM,CAAE,QAAS,EAAG,EACpBC,QAAM,CAAE,QAASX,EAAU,CAC7B,EACA,qBAAsBY,EAAA,UAAA,CACvB,EAEK,CAAE,UAAAC,EAAW,OAAQC,CAAiB,EAAIC,EAAAA,oBAAoBT,EAAS,CAC3E,QAAS,CACP,QAAS,CACX,CAAA,CACD,EAEKU,EAAUC,aAAWX,CAAO,EAC5BY,EAAOC,UAAQb,CAAO,EAEtB,CAAE,kBAAAc,EAAmB,iBAAAC,CAAiB,EAAIC,kBAAgB,CAC9DN,EACAE,CAAA,CACD,EAED,OAEKxC,EAAA,KAAA6C,WAAA,CAAA,SAAA,CAAA7B,EAAc,CAAE,IAAKU,EAAK,aAAc,GAAGgB,EAAA,EAAqB,EAEhEP,SACEW,iBACC,CAAA,SAAA5C,EAAA,IAAC6C,EAAA,qBAAA,CACC,QAAAnB,EACA,MAAO,GACP,aAAAR,EACA,YAAAC,EAEA,SAAAnB,EAAA,IAAC,MAAA,CACC,IAAKwB,EAAK,YACV,MAAOC,EACN,GAAGgB,EAEJ,SAAA3C,EAAA,KAAC,MAAA,CACC,MAAOoC,EACP,UAAWY,EACTC,EAAa,SACbhC,GAAkBgC,EAAa,cACjC,EAEC,SAAA,CAAApC,EACA,CAACE,GACAb,EAAA,IAACgD,EAAA,cAAA,CACC,IAAK5B,EACL,QAAAM,EACA,MAAOnB,EACP,OAAQC,EACR,KAAM,OAAA,CACR,CAAA,CAAA,CAEJ,CAAA,CACF,CAAA,CAAA,EAEJ,CAEJ,CAAA,CAAA,CAEJ,ECnEMD,EAAc,GACdC,EAAe,EACfC,EAAM,EAECwC,EAAkC,CAAC,CAC9C,SAAAtC,EACA,QAAAuC,EACA,QAAAC,EAAU,QACV,UAAAvC,EAAY,SACZ,UAAAC,EACA,cAAAC,EACA,eAAAC,EACA,SAAAqC,EACA,OAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAQC,CAAS,EAAIC,WAAS,EAAK,EAEpCpC,EAAWC,SAAO,IAAI,EAEtB,CAAE,KAAAG,EAAM,eAAAC,EAAgB,QAAAC,CAAA,EAAYC,EAAAA,YAAY,CACpD,KAAM2B,EACN,aAAcC,EACd,UAAA3C,EACA,WAAY,CACVgB,EAAA,OAAOpB,EAAeC,CAAG,EACzBoB,OAAK,CAAE,QAAS,EAAG,EACnBC,QAAM,CAAE,QAAS,EAAG,EACpBC,QAAM,CAAE,QAASX,EAAU,CAC7B,EACA,qBAAsBY,EAAA,UAAA,CACvB,EAEK,CAAE,UAAAC,EAAW,OAAQC,CAAiB,EAAIC,EAAAA,oBAAoBT,EAAS,CAC3E,QAAS,CACP,QAAS,CACX,CAAA,CACD,EAEKT,EAAiBM,EAAAA,YAAY,IAAM,CACvCgC,EAAU,EAAK,CACjB,EAAG,CAAE,CAAA,EAECnB,EAAUC,aAAWX,CAAO,EAC5BY,EAAOC,UAAQb,CAAO,EACtB+B,EAAUC,WAAShC,EAAS,CAAE,QAASiC,EAAWR,EAAS,OAAO,CAAA,CAAG,EACrES,EAAUC,WAASnC,EAAS,CAAE,QAASiC,EAAWR,EAAS,OAAO,CAAA,CAAG,EACrEW,EAAUC,WAASrC,EAAS,CAChC,QAASiC,EAAWR,EAAS,OAAO,EACpC,YAAaa,EAAAA,YAAY,EACzB,OAAQ,GAAA,CACT,EAEK,CAAE,kBAAAxB,EAAmB,iBAAAC,CAAiB,EAAIC,kBAAgB,CAC9De,EACAG,EACAE,EACA1B,EACAE,CAAA,CACD,EAED,OAEKxC,EAAA,KAAA6C,WAAA,CAAA,SAAA,CAAA7B,EAAc,CAAE,IAAKU,EAAK,aAAc,GAAGgB,EAAA,EAAqB,EAEhEP,SACEW,EAAAA,eAAe,CAAA,KAAMQ,EACpB,SAACpD,MAAA6C,EAAAA,qBAAA,CAAqB,QAAAnB,EAAkB,MAAO,GAC7C,SAAA1B,EAAA,IAAC,MAAA,CACC,IAAKwB,EAAK,YACV,MAAO,CAAE,OAAA6B,EAAQ,GAAG5B,CAAe,EAClC,GAAGgB,EAEJ,SAAA3C,EAAA,KAAC,MAAA,CACC,MAAOoC,EACP,UAAWY,EACTC,EAAa,SACbhC,GAAkBgC,EAAa,eAC/BG,GAAWH,EAAa,QAC1B,EAEC,SAAA,CAAA,OAAOpC,GAAa,WACjBA,EAAS,CAAE,eAAAM,CAAA,CAAgB,EAC3BN,EACH,CAACE,GACAb,EAAA,IAACgD,EAAA,cAAA,CACC,IAAK5B,EACL,QAAAM,EACA,MAAOnB,EACP,OAAQC,EACR,KAAM,OAAA,CACR,CAAA,CAAA,CAEJ,CAAA,GAEJ,CACF,CAAA,CAEJ,CAAA,CAAA,CAEJ,EAEMmD,EAAa,CACjBM,EACAC,IAEI,OAAOD,GAAgB,SAClBA,IAAgBC,EAElBD,EAAY,SAASC,CAAc,+MChItCC,GAAe,CACnB,KAAMC,EAAA,gBACN,QAASC,EAAA,uBACT,MAAOC,EAAA,wBACT,EAEM/D,GAAc,GACdC,EAAe,EACfC,GAAM,EAEC8D,GAAkC,CAAC,CAC9C,SAAA5D,EACA,QAAA6D,EACA,UAAA5D,EACA,MAAA6D,EACA,QAAAvB,EACA,SAAAwB,EAAW,QACX,SAAAtB,EACA,OAAAC,CACF,IAAM,CACJ,KAAM,CAACC,EAAQC,CAAS,EAAIC,WAAS,EAAK,EAEpCpC,EAAWC,SAAO,IAAI,EAEtB,CAAE,KAAAG,EAAM,eAAAC,EAAgB,QAAAC,CAAA,EAAYC,EAAAA,YAAY,CACpD,UAAAf,EACA,KAAM4D,GAAWlB,EACjB,aAAcC,EACd,WAAY,CACV3B,EAAA,OAAOpB,EAAeC,EAAG,EACzBoB,OAAK,CAAE,QAAS,EAAG,EACnBC,QAAM,CAAE,QAAS,EAAG,EACpBC,QAAM,CAAE,QAASX,EAAU,CAC7B,EACA,qBAAsBY,EAAA,UAAA,CACvB,EAEK,CAAE,UAAAC,EAAW,OAAA0C,GAAWxC,EAAAA,oBAAoBT,EAAS,CACzD,QAAS,CACP,QAAS,CACX,CAAA,CACD,EAEKkD,EAAQb,WAASrC,CAAO,EAExB,CAAE,kBAAAc,CAAkB,EAAIE,EAAgB,gBAAA,CAACkC,CAAK,CAAC,EAErD,OAEI9E,EAAA,KAAA6C,WAAA,CAAA,SAAA,CAAA3C,MAAC,OAAI,IAAKwB,EAAK,aAAe,GAAGgB,IAC9B,SAAA7B,EACH,EAECsB,GACCjC,EAAA,IAAC4C,iBAAe,CAAA,KAAMQ,EACpB,SAACpD,EAAAA,IAAA,MAAA,CAAI,IAAKwB,EAAK,YAAa,MAAO,CAAE,OAAA6B,EAAQ,GAAG5B,GAC9C,SAAA3B,EAAA,KAAC,MAAA,CACC,MAAO,CAAE,SAAA4E,EAAU,GAAGC,CAAO,EAC7B,UAAW7B,EACTC,EAAa,SACbG,GAAWH,EAAa,QAC1B,EAEC,SAAA,CAAAG,EAEGpD,EAAA,KAAA6C,WAAA,CAAA,SAAA,CAAA3C,EAAA,IAAC,MAAA,CACC,UAAW8C,EACTC,EAAa,YACbA,EAAaG,CAAO,CACtB,EAEA,eAAC2B,EAAK,KAAA,CAAA,KAAMV,GAAajB,CAAO,EAAG,KAAM,GAAI,CAAA,CAC/C,QACChD,EAAM,MAAA,EAAA,EACPF,MAAC8E,GAAY,MAAAL,EAAc,CAC7B,CAAA,CAAA,EAECzE,EAAA,IAAA8E,EAAA,CAAY,MAAAL,CAAc,CAAA,EAG7BzE,EAAA,IAACgD,EAAA,cAAA,CACC,IAAK5B,EACL,QAAAM,EACA,MAAOnB,GACP,OAAQC,EACR,KAAM,MAAA,CACR,CAAA,CAAA,GAEJ,CACF,CAAA,CAEJ,CAAA,CAAA,CAEJ,EAEMsE,EAA2C,CAAC,CAAE,MAAAL,CAAA,IACjDzE,EAAAA,IAAAC,EAAAA,KAAA,CAAK,MAAO8E,EAAAA,SAAS,oBAAoB,EAAG,KAAM,QAAS,QAAS,OAClE,SACHN,EAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/tooltip",
|
|
3
|
-
"version": "21.8.
|
|
3
|
+
"version": "21.8.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "mattias800",
|
|
@@ -34,9 +34,9 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@floating-ui/react": "^0.26.22",
|
|
37
|
-
"@stenajs-webui/core": "21.8.
|
|
38
|
-
"@stenajs-webui/elements": "21.8.
|
|
39
|
-
"@stenajs-webui/theme": "21.8.
|
|
37
|
+
"@stenajs-webui/core": "21.8.2",
|
|
38
|
+
"@stenajs-webui/elements": "21.8.2",
|
|
39
|
+
"@stenajs-webui/theme": "21.8.2",
|
|
40
40
|
"classnames": "^2.3.1"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
"files": [
|
|
62
62
|
"dist"
|
|
63
63
|
],
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "c04ae010a0083cac6ab639a9b00f5f57a11eb432"
|
|
65
65
|
}
|