@stenajs-webui/tooltip 19.0.4 → 19.0.5

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 CHANGED
@@ -1,30 +1,30 @@
1
- (function(){"use strict";try{var r=document.createElement("style");r.appendChild(document.createTextNode('._noPadding_183x1_1 .tippy-content{padding:0}.tippy-box[data-theme~=light]{box-shadow:var(--swui-shadow-popover)}.tippy-box[data-theme~=outlined]{border:1px solid var(--lhds-color-blue-500)}.tippy-box[data-theme~=info]{background-color:var(--lhds-color-blue-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=info] .tippy-arrow{color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning]{background-color:var(--lhds-color-orange-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=warning] .tippy-arrow{color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error]{background-color:var(--lhds-color-red-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=error] .tippy-arrow{color:var(--lhds-color-red-50)}.tippy-box[data-theme~=info][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-red-50)}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:8px;font-size:14px;line-height:1.5;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=dark]{color:var(--lhds-color-ui-50);box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-backdrop{background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-svg-arrow{fill:var(--lhds-color-ui-800)}._tooltip_1i1mn_1{display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;align-items:center;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2)}._tooltip_1i1mn_1._withIcon_1i1mn_8{padding:calc(var(--swui-metrics-spacing) * .5);padding-right:calc(var(--swui-metrics-indent) * 2)}._iconWrapper_1i1mn_14{--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_1i1mn_14 svg{color:var(--current-icon-color)}._iconWrapper_1i1mn_14._info_1i1mn_34{--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_1i1mn_14._warning_1i1mn_40{--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_1i1mn_14._error_1i1mn_46{--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
- import { jsxs as c, jsx as n, Fragment as W } from "react/jsx-runtime";
3
- import { Column as j, Text as f, Space as a, Row as m, Box as k } from "@stenajs-webui/core";
4
- import { FlatButton as _, PrimaryButton as B, Spinner as N, Icon as R, stenaInfoCircle as $, stenaExclamationCircle as b, stenaExclamationTriangle as A } from "@stenajs-webui/elements";
5
- import E from "@tippyjs/react";
6
- import { useState as F, useMemo as M, useRef as H } from "react";
7
- import u from "classnames";
8
- import { cssColor as L } from "@stenajs-webui/theme";
9
- const cn = ({
1
+ (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode('._noPadding_183x1_1 .tippy-content{padding:0}.tippy-box[data-theme~=light]{box-shadow:var(--swui-shadow-popover)}.tippy-box[data-theme~=outlined]{border:1px solid var(--lhds-color-blue-500)}.tippy-box[data-theme~=info]{background-color:var(--lhds-color-blue-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=info] .tippy-arrow{color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning]{background-color:var(--lhds-color-orange-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=warning] .tippy-arrow{color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error]{background-color:var(--lhds-color-red-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=error] .tippy-arrow{color:var(--lhds-color-red-50)}.tippy-box[data-theme~=info][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-red-50)}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:8px;font-size:14px;line-height:1.5;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=dark]{color:var(--lhds-color-ui-50);box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-backdrop{background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-svg-arrow{fill:var(--lhds-color-ui-800)}._tooltip_1i1mn_1{display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;align-items:center;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2)}._tooltip_1i1mn_1._withIcon_1i1mn_8{padding:calc(var(--swui-metrics-spacing) * .5);padding-right:calc(var(--swui-metrics-indent) * 2)}._iconWrapper_1i1mn_14{--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_1i1mn_14 svg{color:var(--current-icon-color)}._iconWrapper_1i1mn_14._info_1i1mn_34{--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_1i1mn_14._warning_1i1mn_40{--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_1i1mn_14._error_1i1mn_46{--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
+ import { jsxs as c, jsx as n, Fragment as S } from "react/jsx-runtime";
3
+ import { Column as W, Text as h, Space as a, Row as p, Box as j } from "@stenajs-webui/core";
4
+ import { FlatButton as f, PrimaryButton as k, Spinner as B, Icon as N, stenaInfoCircle as R, stenaExclamationCircle as $, stenaExclamationTriangle as b } from "@stenajs-webui/elements";
5
+ import A from "@tippyjs/react";
6
+ import { useState as E, useMemo as F, useRef as M } from "react";
7
+ import m from "classnames";
8
+ import { cssColor as H } from "@stenajs-webui/theme";
9
+ const sn = ({
10
10
  text: o = "Are you sure?",
11
11
  yesLabel: t = "Yes",
12
12
  noLabel: i = "No",
13
13
  onNo: e,
14
14
  onYes: l,
15
15
  loading: r
16
- }) => /* @__PURE__ */ c(j, { position: "relative", children: [
16
+ }) => /* @__PURE__ */ c(W, { position: "relative", children: [
17
17
  /* @__PURE__ */ c("div", { style: { opacity: r ? 0 : 1 }, children: [
18
- /* @__PURE__ */ n(f, { children: o }),
18
+ /* @__PURE__ */ n(h, { children: o }),
19
19
  /* @__PURE__ */ n(a, {}),
20
- /* @__PURE__ */ c(m, { justifyContent: "flex-end", alignItems: "center", children: [
21
- /* @__PURE__ */ n(_, { label: i, onClick: e }),
20
+ /* @__PURE__ */ c(p, { justifyContent: "flex-end", alignItems: "center", children: [
21
+ /* @__PURE__ */ n(f, { label: i, onClick: e }),
22
22
  /* @__PURE__ */ n(a, {}),
23
- /* @__PURE__ */ n(B, { label: t, onClick: l })
23
+ /* @__PURE__ */ n(k, { label: t, onClick: l })
24
24
  ] })
25
25
  ] }),
26
26
  r && /* @__PURE__ */ n(
27
- m,
27
+ p,
28
28
  {
29
29
  justifyContent: "center",
30
30
  alignItems: "center",
@@ -33,16 +33,16 @@ const cn = ({
33
33
  width: "100%",
34
34
  height: "100%",
35
35
  position: "absolute",
36
- children: /* @__PURE__ */ n(N, { size: "small" })
36
+ children: /* @__PURE__ */ n(B, { size: "small" })
37
37
  }
38
38
  )
39
- ] }), Y = "_noPadding_183x1_1", q = {
40
- noPadding: Y
39
+ ] }), L = "_noPadding_183x1_1", Y = {
40
+ noPadding: L
41
41
  };
42
- const D = (o = []) => {
43
- const [t, i] = F(!1);
42
+ const q = (o = []) => {
43
+ const [t, i] = E(!1);
44
44
  return {
45
- plugins: [M(
45
+ plugins: [F(
46
46
  () => ({
47
47
  fn: () => ({
48
48
  onShow: () => i(!0),
@@ -53,15 +53,15 @@ const D = (o = []) => {
53
53
  ), ...o],
54
54
  mounted: t
55
55
  };
56
- }, G = {
57
- noPadding: q.noPadding
58
- }, g = {
56
+ }, D = {
57
+ noPadding: Y.noPadding
58
+ }, u = {
59
59
  standard: "light",
60
60
  info: "info",
61
61
  warning: "warning",
62
62
  error: "error",
63
63
  outlined: "outlined"
64
- }, y = ({
64
+ }, _ = ({
65
65
  visible: o,
66
66
  trigger: t = "mouseenter",
67
67
  children: i,
@@ -69,93 +69,91 @@ const D = (o = []) => {
69
69
  delay: l = 0,
70
70
  variant: r = "standard",
71
71
  disablePadding: d,
72
- content: w,
73
- maxWidth: x = "500px",
74
- plugins: P,
75
- lazy: v,
76
- arrow: I = !0,
77
- theme: T = "light",
78
- ...C
72
+ content: y,
73
+ maxWidth: w = "500px",
74
+ plugins: x,
75
+ lazy: P,
76
+ arrow: v = !0,
77
+ theme: I = "light",
78
+ ...T
79
79
  }) => {
80
- var p;
81
- const { plugins: z, mounted: S } = D(P);
80
+ const { plugins: C, mounted: z } = q(x);
82
81
  return /* @__PURE__ */ n(
83
- E,
82
+ A,
84
83
  {
85
84
  interactive: !0,
86
- className: G.noPadding,
85
+ className: D.noPadding,
87
86
  trigger: o !== void 0 ? void 0 : t,
88
87
  visible: o,
89
- theme: `${T} ${(p = g[r]) != null ? p : g.standard}`,
88
+ theme: `${I} ${u[r] ?? u.standard}`,
90
89
  delay: l,
91
- maxWidth: x,
92
- arrow: I,
93
- content: (!v || S) && /* @__PURE__ */ n(k, { spacing: !d && 1, indent: !d && 1, children: w }),
94
- plugins: z,
95
- ...C,
90
+ maxWidth: w,
91
+ arrow: v,
92
+ content: (!P || z) && /* @__PURE__ */ n(j, { spacing: !d && 1, indent: !d && 1, children: y }),
93
+ plugins: C,
94
+ ...T,
96
95
  children: i && /* @__PURE__ */ n("div", { ref: e, children: i })
97
96
  }
98
97
  );
99
- }, ln = ({
98
+ }, cn = ({
100
99
  children: o,
101
100
  onShow: t,
102
101
  onHide: i,
103
102
  ...e
104
103
  }) => /* @__PURE__ */ n(
105
- y,
104
+ _,
106
105
  {
107
106
  content: o,
108
107
  trigger: "click",
109
108
  zIndex: 1e3,
110
109
  onShow: t,
111
110
  onHide: i,
112
- children: /* @__PURE__ */ n(_, { ...e })
111
+ children: /* @__PURE__ */ n(f, { ...e })
113
112
  }
114
- ), J = "_tooltip_1i1mn_1", K = "_withIcon_1i1mn_8", O = "_iconWrapper_1i1mn_14", Q = "_info_1i1mn_34", U = "_warning_1i1mn_40", V = "_error_1i1mn_46", s = {
115
- tooltip: J,
116
- withIcon: K,
117
- iconWrapper: O,
118
- info: Q,
119
- warning: U,
120
- error: V
121
- }, X = {
122
- info: $,
123
- warning: b,
124
- error: A
125
- }, h = ({ label: o }) => /* @__PURE__ */ n(f, { color: L("--lhds-color-ui-50"), size: "small", variant: "bold", children: o }), an = ({
113
+ ), G = "_tooltip_1i1mn_1", J = "_withIcon_1i1mn_8", K = "_iconWrapper_1i1mn_14", O = "_info_1i1mn_34", Q = "_warning_1i1mn_40", U = "_error_1i1mn_46", s = {
114
+ tooltip: G,
115
+ withIcon: J,
116
+ iconWrapper: K,
117
+ info: O,
118
+ warning: Q,
119
+ error: U
120
+ }, V = {
121
+ info: R,
122
+ warning: $,
123
+ error: b
124
+ }, g = ({ label: o }) => /* @__PURE__ */ n(h, { color: H("--lhds-color-ui-50"), size: "small", variant: "bold", children: o }), ln = ({
126
125
  label: o,
127
126
  variant: t,
128
127
  children: i,
129
128
  ...e
130
129
  }) => /* @__PURE__ */ n(
131
- y,
130
+ _,
132
131
  {
133
132
  theme: "dark",
134
133
  ...e,
135
134
  disablePadding: !0,
136
- content: /* @__PURE__ */ n("div", { className: u(s.tooltip, t ? s.withIcon : null), children: t ? /* @__PURE__ */ c(W, { children: [
137
- /* @__PURE__ */ n("div", { className: u(s.iconWrapper, s[t]), children: /* @__PURE__ */ n(R, { icon: X[t], size: 16 }) }),
135
+ content: /* @__PURE__ */ n("div", { className: m(s.tooltip, t ? s.withIcon : null), children: t ? /* @__PURE__ */ c(S, { children: [
136
+ /* @__PURE__ */ n("div", { className: m(s.iconWrapper, s[t]), children: /* @__PURE__ */ n(N, { icon: V[t], size: 16 }) }),
138
137
  /* @__PURE__ */ n(a, {}),
139
- /* @__PURE__ */ n(h, { label: o })
140
- ] }) : /* @__PURE__ */ n(h, { label: o }) }),
138
+ /* @__PURE__ */ n(g, { label: o })
139
+ ] }) : /* @__PURE__ */ n(g, { label: o }) }),
141
140
  children: i
142
141
  }
143
- ), dn = () => {
144
- const o = H();
142
+ ), an = () => {
143
+ const o = M();
145
144
  return [
146
145
  (t) => {
147
- var i;
148
- o.current = (i = t == null ? void 0 : t._tippy) != null ? i : void 0;
146
+ o.current = (t == null ? void 0 : t._tippy) ?? void 0;
149
147
  },
150
148
  o
151
149
  ];
152
150
  };
153
151
  export {
154
- cn as ActionPrompt,
155
- ln as ButtonWithPopover,
156
- y as Popover,
157
- an as Tooltip,
158
- G as tippyStyles,
159
- dn as useTippyInstance
152
+ sn as ActionPrompt,
153
+ cn as ButtonWithPopover,
154
+ _ as Popover,
155
+ ln as Tooltip,
156
+ D as tippyStyles,
157
+ an as useTippyInstance
160
158
  };
161
159
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/components/popover/ActionPrompt.tsx","../src/hooks/UseLazyPopover.ts","../src/components/popover/Popover.tsx","../src/components/button-with-popover/ButtonWithPopover.tsx","../src/components/tooltip/Tooltip.tsx","../src/hooks/UseTippyInstance.ts"],"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 { useMemo, useState } from \"react\";\nimport { Plugin } from \"tippy.js\";\n\nexport const useLazyPopover = (plugins: Plugin<unknown>[] = []) => {\n const [mounted, setMounted] = useState(false);\n\n const lazyPlugin = useMemo(\n () => ({\n fn: () => ({\n onShow: () => setMounted(true),\n onHidden: () => setMounted(false),\n }),\n }),\n [setMounted]\n );\n\n return {\n plugins: [lazyPlugin, ...plugins],\n mounted,\n };\n};\n","import TippyComponent, {\n TippyProps as TippyComponentProps,\n} from \"@tippyjs/react\";\nimport * as React from \"react\";\nimport styles from \"./Popover.module.css\";\nimport \"./Tippy.module.css\";\nimport { TippyCallbackRef } from \"../../hooks/UseTippyInstance\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { useLazyPopover } from \"../../hooks/UseLazyPopover\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\n\nexport interface PopoverProps\n extends Partial<Omit<TippyComponentProps, \"theme\" | \"render\">> {\n tippyRef?: TippyCallbackRef<HTMLDivElement>;\n disablePadding?: boolean;\n lazy?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n}\n\nexport const tippyStyles = {\n noPadding: styles.noPadding,\n};\n\nconst variantToTheme: Record<PopoverVariant, string> = {\n standard: \"light\",\n info: \"info\",\n warning: \"warning\",\n error: \"error\",\n outlined: \"outlined\",\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n visible,\n trigger = \"mouseenter\",\n children,\n tippyRef,\n delay = 0,\n variant = \"standard\",\n disablePadding,\n content,\n maxWidth = \"500px\",\n plugins: propsPlugins,\n lazy,\n arrow = true,\n theme = \"light\",\n ...tippyProps\n}) => {\n const { plugins, mounted } = useLazyPopover(propsPlugins);\n\n return (\n <TippyComponent\n interactive\n className={tippyStyles.noPadding}\n trigger={visible !== undefined ? undefined : trigger}\n visible={visible}\n theme={`${theme} ${variantToTheme[variant] ?? variantToTheme.standard}`}\n delay={delay}\n maxWidth={maxWidth}\n arrow={arrow}\n content={\n (!lazy || mounted) && (\n <Box spacing={!disablePadding && 1} indent={!disablePadding && 1}>\n {content}\n </Box>\n )\n }\n plugins={plugins}\n {...tippyProps}\n >\n {children && <div ref={tippyRef}>{children}</div>}\n </TippyComponent>\n );\n};\n","import { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\n\nexport interface ButtonWithPopoverProps extends FlatButtonProps {\n children?: PopoverProps[\"children\"];\n visible?: boolean;\n onShow?: () => void;\n onHide?: () => void;\n}\n\nexport const ButtonWithPopover: React.FC<ButtonWithPopoverProps> = ({\n children,\n onShow,\n onHide,\n ...buttonProps\n}) => {\n return (\n <Popover\n content={children}\n trigger={\"click\"}\n zIndex={1000}\n onShow={onShow}\n onHide={onHide}\n >\n <FlatButton {...buttonProps} />\n </Popover>\n );\n};\n","import { Text, Space } from \"@stenajs-webui/core\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./Tooltip.module.css\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nexport interface TooltipProps extends Omit<PopoverProps, \"theme\" | \"render\"> {\n label: string;\n variant?: TooltipVariant;\n children: JSX.Element;\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\nexport const Tooltip: React.FC<TooltipProps> = ({\n label,\n variant,\n children,\n ...popoverProps\n}) => (\n <Popover\n theme=\"dark\"\n {...popoverProps}\n disablePadding\n content={\n <div className={cx(styles.tooltip, variant ? styles.withIcon : null)}>\n {variant ? (\n <>\n <div className={cx(styles.iconWrapper, styles[variant])}>\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n </div>\n }\n >\n {children}\n </Popover>\n);\n","import { Instance } from \"tippy.js\";\nimport { MutableRefObject, useRef } from \"react\";\n\nexport type TippyInstance = Instance;\n\nexport type TippyElement<TElement extends HTMLElement> = TElement & {\n _tippy: TippyInstance;\n};\n\nexport type TippyCallbackRef<TElement extends HTMLElement> = (\n element: TippyElement<TElement> | null\n) => void;\n\nexport const useTippyInstance = <TElement extends HTMLElement>(): [\n TippyCallbackRef<TElement>,\n MutableRefObject<TippyInstance | undefined>\n] => {\n const tippyRef = useRef<TippyInstance>();\n\n return [\n (element: TippyElement<TElement> | null) => {\n tippyRef.current = element?._tippy ?? undefined;\n },\n tippyRef,\n ];\n};\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","useLazyPopover","plugins","mounted","setMounted","useState","useMemo","tippyStyles","styles","variantToTheme","Popover","visible","trigger","children","tippyRef","delay","variant","disablePadding","content","maxWidth","propsPlugins","lazy","arrow","theme","tippyProps","TippyComponent","_a","Box","ButtonWithPopover","onShow","onHide","buttonProps","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","TooltipText","label","cssColor","Tooltip","popoverProps","cx","Fragment","Icon","useTippyInstance","useRef","element"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/components/popover/ActionPrompt.tsx","../src/hooks/UseLazyPopover.ts","../src/components/popover/Popover.tsx","../src/components/button-with-popover/ButtonWithPopover.tsx","../src/components/tooltip/Tooltip.tsx","../src/hooks/UseTippyInstance.ts"],"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 { useMemo, useState } from \"react\";\nimport { Plugin } from \"tippy.js\";\n\nexport const useLazyPopover = (plugins: Plugin<unknown>[] = []) => {\n const [mounted, setMounted] = useState(false);\n\n const lazyPlugin = useMemo(\n () => ({\n fn: () => ({\n onShow: () => setMounted(true),\n onHidden: () => setMounted(false),\n }),\n }),\n [setMounted]\n );\n\n return {\n plugins: [lazyPlugin, ...plugins],\n mounted,\n };\n};\n","import TippyComponent, {\n TippyProps as TippyComponentProps,\n} from \"@tippyjs/react\";\nimport * as React from \"react\";\nimport styles from \"./Popover.module.css\";\nimport \"./Tippy.module.css\";\nimport { TippyCallbackRef } from \"../../hooks/UseTippyInstance\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { useLazyPopover } from \"../../hooks/UseLazyPopover\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\n\nexport interface PopoverProps\n extends Partial<Omit<TippyComponentProps, \"theme\" | \"render\">> {\n tippyRef?: TippyCallbackRef<HTMLDivElement>;\n disablePadding?: boolean;\n lazy?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n}\n\nexport const tippyStyles = {\n noPadding: styles.noPadding,\n};\n\nconst variantToTheme: Record<PopoverVariant, string> = {\n standard: \"light\",\n info: \"info\",\n warning: \"warning\",\n error: \"error\",\n outlined: \"outlined\",\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n visible,\n trigger = \"mouseenter\",\n children,\n tippyRef,\n delay = 0,\n variant = \"standard\",\n disablePadding,\n content,\n maxWidth = \"500px\",\n plugins: propsPlugins,\n lazy,\n arrow = true,\n theme = \"light\",\n ...tippyProps\n}) => {\n const { plugins, mounted } = useLazyPopover(propsPlugins);\n\n return (\n <TippyComponent\n interactive\n className={tippyStyles.noPadding}\n trigger={visible !== undefined ? undefined : trigger}\n visible={visible}\n theme={`${theme} ${variantToTheme[variant] ?? variantToTheme.standard}`}\n delay={delay}\n maxWidth={maxWidth}\n arrow={arrow}\n content={\n (!lazy || mounted) && (\n <Box spacing={!disablePadding && 1} indent={!disablePadding && 1}>\n {content}\n </Box>\n )\n }\n plugins={plugins}\n {...tippyProps}\n >\n {children && <div ref={tippyRef}>{children}</div>}\n </TippyComponent>\n );\n};\n","import { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\n\nexport interface ButtonWithPopoverProps extends FlatButtonProps {\n children?: PopoverProps[\"children\"];\n visible?: boolean;\n onShow?: () => void;\n onHide?: () => void;\n}\n\nexport const ButtonWithPopover: React.FC<ButtonWithPopoverProps> = ({\n children,\n onShow,\n onHide,\n ...buttonProps\n}) => {\n return (\n <Popover\n content={children}\n trigger={\"click\"}\n zIndex={1000}\n onShow={onShow}\n onHide={onHide}\n >\n <FlatButton {...buttonProps} />\n </Popover>\n );\n};\n","import { Text, Space } from \"@stenajs-webui/core\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./Tooltip.module.css\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nexport interface TooltipProps extends Omit<PopoverProps, \"theme\" | \"render\"> {\n label: string;\n variant?: TooltipVariant;\n children: JSX.Element;\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\nexport const Tooltip: React.FC<TooltipProps> = ({\n label,\n variant,\n children,\n ...popoverProps\n}) => (\n <Popover\n theme=\"dark\"\n {...popoverProps}\n disablePadding\n content={\n <div className={cx(styles.tooltip, variant ? styles.withIcon : null)}>\n {variant ? (\n <>\n <div className={cx(styles.iconWrapper, styles[variant])}>\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n </div>\n }\n >\n {children}\n </Popover>\n);\n","import { Instance } from \"tippy.js\";\nimport { MutableRefObject, useRef } from \"react\";\n\nexport type TippyInstance = Instance;\n\nexport type TippyElement<TElement extends HTMLElement> = TElement & {\n _tippy: TippyInstance;\n};\n\nexport type TippyCallbackRef<TElement extends HTMLElement> = (\n element: TippyElement<TElement> | null\n) => void;\n\nexport const useTippyInstance = <TElement extends HTMLElement>(): [\n TippyCallbackRef<TElement>,\n MutableRefObject<TippyInstance | undefined>\n] => {\n const tippyRef = useRef<TippyInstance>();\n\n return [\n (element: TippyElement<TElement> | null) => {\n tippyRef.current = element?._tippy ?? undefined;\n },\n tippyRef,\n ];\n};\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","useLazyPopover","plugins","mounted","setMounted","useState","useMemo","tippyStyles","styles","variantToTheme","Popover","visible","trigger","children","tippyRef","delay","variant","disablePadding","content","maxWidth","propsPlugins","lazy","arrow","theme","tippyProps","TippyComponent","Box","ButtonWithPopover","onShow","onHide","buttonProps","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","TooltipText","label","cssColor","Tooltip","popoverProps","cx","Fragment","Icon","useTippyInstance","useRef","element"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(){"use strict";try{var r=document.createElement("style");r.appendChild(document.createTextNode('._noPadding_183x1_1 .tippy-content{padding:0}.tippy-box[data-theme~=light]{box-shadow:var(--swui-shadow-popover)}.tippy-box[data-theme~=outlined]{border:1px solid var(--lhds-color-blue-500)}.tippy-box[data-theme~=info]{background-color:var(--lhds-color-blue-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=info] .tippy-arrow{color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning]{background-color:var(--lhds-color-orange-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=warning] .tippy-arrow{color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error]{background-color:var(--lhds-color-red-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=error] .tippy-arrow{color:var(--lhds-color-red-50)}.tippy-box[data-theme~=info][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-red-50)}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:8px;font-size:14px;line-height:1.5;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=dark]{color:var(--lhds-color-ui-50);box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-backdrop{background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-svg-arrow{fill:var(--lhds-color-ui-800)}._tooltip_1i1mn_1{display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;align-items:center;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2)}._tooltip_1i1mn_1._withIcon_1i1mn_8{padding:calc(var(--swui-metrics-spacing) * .5);padding-right:calc(var(--swui-metrics-indent) * 2)}._iconWrapper_1i1mn_14{--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_1i1mn_14 svg{color:var(--current-icon-color)}._iconWrapper_1i1mn_14._info_1i1mn_34{--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_1i1mn_14._warning_1i1mn_40{--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_1i1mn_14._error_1i1mn_46{--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.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),s=require("@stenajs-webui/core"),r=require("@stenajs-webui/elements"),b=require("@tippyjs/react"),u=require("react"),q=require("classnames"),z=require("@stenajs-webui/theme"),_=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},B=_(b),j=_(q),W=({text:t="Are you sure?",yesLabel:e="Yes",noLabel:o="No",onNo:i,onYes:l,loading:c})=>n.jsxs(s.Column,{position:"relative",children:[n.jsxs("div",{style:{opacity:c?0:1},children:[n.jsx(s.Text,{children:t}),n.jsx(s.Space,{}),n.jsxs(s.Row,{justifyContent:"flex-end",alignItems:"center",children:[n.jsx(r.FlatButton,{label:o,onClick:i}),n.jsx(s.Space,{}),n.jsx(r.PrimaryButton,{label:e,onClick:l})]})]}),c&&n.jsx(s.Row,{justifyContent:"center",alignItems:"center",left:0,top:0,width:"100%",height:"100%",position:"absolute",children:n.jsx(r.Spinner,{size:"small"})})]}),R="_noPadding_183x1_1",k={noPadding:R};const M=(t=[])=>{const[e,o]=u.useState(!1);return{plugins:[u.useMemo(()=>({fn:()=>({onShow:()=>o(!0),onHidden:()=>o(!1)})}),[o]),...t],mounted:e}},h={noPadding:k.noPadding},m={standard:"light",info:"info",warning:"warning",error:"error",outlined:"outlined"},d=({visible:t,trigger:e="mouseenter",children:o,tippyRef:i,delay:l=0,variant:c="standard",disablePadding:p,content:f,maxWidth:y="500px",plugins:w,lazy:P,arrow:v=!0,theme:T="light",...I})=>{var x;const{plugins:C,mounted:S}=M(w);return n.jsx(B.default,{interactive:!0,className:h.noPadding,trigger:t!==void 0?void 0:e,visible:t,theme:`${T} ${(x=m[c])!=null?x:m.standard}`,delay:l,maxWidth:y,arrow:v,content:(!P||S)&&n.jsx(s.Box,{spacing:!p&&1,indent:!p&&1,children:f}),plugins:C,...I,children:o&&n.jsx("div",{ref:i,children:o})})},N=({children:t,onShow:e,onHide:o,...i})=>n.jsx(d,{content:t,trigger:"click",zIndex:1e3,onShow:e,onHide:o,children:n.jsx(r.FlatButton,{...i})}),A="_tooltip_1i1mn_1",F="_withIcon_1i1mn_8",$="_iconWrapper_1i1mn_14",E="_info_1i1mn_34",L="_warning_1i1mn_40",D="_error_1i1mn_46",a={tooltip:A,withIcon:F,iconWrapper:$,info:E,warning:L,error:D},H={info:r.stenaInfoCircle,warning:r.stenaExclamationCircle,error:r.stenaExclamationTriangle},g=({label:t})=>n.jsx(s.Text,{color:z.cssColor("--lhds-color-ui-50"),size:"small",variant:"bold",children:t}),O=({label:t,variant:e,children:o,...i})=>n.jsx(d,{theme:"dark",...i,disablePadding:!0,content:n.jsx("div",{className:j.default(a.tooltip,e?a.withIcon:null),children:e?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:j.default(a.iconWrapper,a[e]),children:n.jsx(r.Icon,{icon:H[e],size:16})}),n.jsx(s.Space,{}),n.jsx(g,{label:t})]}):n.jsx(g,{label:t})}),children:o}),Y=()=>{const t=u.useRef();return[e=>{var o;t.current=(o=e==null?void 0:e._tippy)!=null?o:void 0},t]};exports.ActionPrompt=W;exports.ButtonWithPopover=N;exports.Popover=d;exports.Tooltip=O;exports.tippyStyles=h;exports.useTippyInstance=Y;
1
+ (function(){"use strict";try{if(typeof document<"u"){var r=document.createElement("style");r.appendChild(document.createTextNode('._noPadding_183x1_1 .tippy-content{padding:0}.tippy-box[data-theme~=light]{box-shadow:var(--swui-shadow-popover)}.tippy-box[data-theme~=outlined]{border:1px solid var(--lhds-color-blue-500)}.tippy-box[data-theme~=info]{background-color:var(--lhds-color-blue-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=info] .tippy-arrow{color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning]{background-color:var(--lhds-color-orange-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=warning] .tippy-arrow{color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error]{background-color:var(--lhds-color-red-50);color:var(--swui-text-primary-color)}.tippy-box[data-theme~=error] .tippy-arrow{color:var(--lhds-color-red-50)}.tippy-box[data-theme~=info][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=info][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-blue-50)}.tippy-box[data-theme~=warning][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=warning][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-orange-50)}.tippy-box[data-theme~=error][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-red-50)}.tippy-box[data-theme~=error][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-red-50)}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:8px;font-size:14px;line-height:1.5;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.tippy-box[data-theme~=dark]{color:var(--lhds-color-ui-50);box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=top]>.tippy-arrow:before{border-top-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=left]>.tippy-arrow:before{border-left-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark][data-placement^=right]>.tippy-arrow:before{border-right-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-backdrop{background-color:var(--lhds-color-ui-800)}.tippy-box[data-theme~=dark]>.tippy-svg-arrow{fill:var(--lhds-color-ui-800)}._tooltip_1i1mn_1{display:flex;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;align-items:center;border-radius:var(--swui-border-radius);padding:var(--swui-metrics-spacing) calc(var(--swui-metrics-indent) * 2)}._tooltip_1i1mn_1._withIcon_1i1mn_8{padding:calc(var(--swui-metrics-spacing) * .5);padding-right:calc(var(--swui-metrics-indent) * 2)}._iconWrapper_1i1mn_14{--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_1i1mn_14 svg{color:var(--current-icon-color)}._iconWrapper_1i1mn_14._info_1i1mn_34{--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_1i1mn_14._warning_1i1mn_40{--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_1i1mn_14._error_1i1mn_46{--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"),i=require("@stenajs-webui/core"),r=require("@stenajs-webui/elements"),S=require("@tippyjs/react"),p=require("react"),x=require("classnames"),C=require("@stenajs-webui/theme"),q=({text:t="Are you sure?",yesLabel:o="Yes",noLabel:e="No",onNo:s,onYes:a,loading:c})=>n.jsxs(i.Column,{position:"relative",children:[n.jsxs("div",{style:{opacity:c?0:1},children:[n.jsx(i.Text,{children:t}),n.jsx(i.Space,{}),n.jsxs(i.Row,{justifyContent:"flex-end",alignItems:"center",children:[n.jsx(r.FlatButton,{label:e,onClick:s}),n.jsx(i.Space,{}),n.jsx(r.PrimaryButton,{label:o,onClick:a})]})]}),c&&n.jsx(i.Row,{justifyContent:"center",alignItems:"center",left:0,top:0,width:"100%",height:"100%",position:"absolute",children:n.jsx(r.Spinner,{size:"small"})})]}),z="_noPadding_183x1_1",B={noPadding:z};const W=(t=[])=>{const[o,e]=p.useState(!1);return{plugins:[p.useMemo(()=>({fn:()=>({onShow:()=>e(!0),onHidden:()=>e(!1)})}),[e]),...t],mounted:o}},h={noPadding:B.noPadding},g={standard:"light",info:"info",warning:"warning",error:"error",outlined:"outlined"},d=({visible:t,trigger:o="mouseenter",children:e,tippyRef:s,delay:a=0,variant:c="standard",disablePadding:u,content:j,maxWidth:y="500px",plugins:_,lazy:f,arrow:P=!0,theme:v="light",...w})=>{const{plugins:T,mounted:I}=W(_);return n.jsx(S,{interactive:!0,className:h.noPadding,trigger:t!==void 0?void 0:o,visible:t,theme:`${v} ${g[c]??g.standard}`,delay:a,maxWidth:y,arrow:P,content:(!f||I)&&n.jsx(i.Box,{spacing:!u&&1,indent:!u&&1,children:j}),plugins:T,...w,children:e&&n.jsx("div",{ref:s,children:e})})},R=({children:t,onShow:o,onHide:e,...s})=>n.jsx(d,{content:t,trigger:"click",zIndex:1e3,onShow:o,onHide:e,children:n.jsx(r.FlatButton,{...s})}),b="_tooltip_1i1mn_1",k="_withIcon_1i1mn_8",N="_iconWrapper_1i1mn_14",A="_info_1i1mn_34",F="_warning_1i1mn_40",M="_error_1i1mn_46",l={tooltip:b,withIcon:k,iconWrapper:N,info:A,warning:F,error:M},$={info:r.stenaInfoCircle,warning:r.stenaExclamationCircle,error:r.stenaExclamationTriangle},m=({label:t})=>n.jsx(i.Text,{color:C.cssColor("--lhds-color-ui-50"),size:"small",variant:"bold",children:t}),E=({label:t,variant:o,children:e,...s})=>n.jsx(d,{theme:"dark",...s,disablePadding:!0,content:n.jsx("div",{className:x(l.tooltip,o?l.withIcon:null),children:o?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:x(l.iconWrapper,l[o]),children:n.jsx(r.Icon,{icon:$[o],size:16})}),n.jsx(i.Space,{}),n.jsx(m,{label:t})]}):n.jsx(m,{label:t})}),children:e}),H=()=>{const t=p.useRef();return[o=>{t.current=(o==null?void 0:o._tippy)??void 0},t]};exports.ActionPrompt=q;exports.ButtonWithPopover=R;exports.Popover=d;exports.Tooltip=E;exports.tippyStyles=h;exports.useTippyInstance=H;
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/hooks/UseLazyPopover.ts","../src/components/popover/Popover.tsx","../src/components/button-with-popover/ButtonWithPopover.tsx","../src/components/tooltip/Tooltip.tsx","../src/hooks/UseTippyInstance.ts"],"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 { useMemo, useState } from \"react\";\nimport { Plugin } from \"tippy.js\";\n\nexport const useLazyPopover = (plugins: Plugin<unknown>[] = []) => {\n const [mounted, setMounted] = useState(false);\n\n const lazyPlugin = useMemo(\n () => ({\n fn: () => ({\n onShow: () => setMounted(true),\n onHidden: () => setMounted(false),\n }),\n }),\n [setMounted]\n );\n\n return {\n plugins: [lazyPlugin, ...plugins],\n mounted,\n };\n};\n","import TippyComponent, {\n TippyProps as TippyComponentProps,\n} from \"@tippyjs/react\";\nimport * as React from \"react\";\nimport styles from \"./Popover.module.css\";\nimport \"./Tippy.module.css\";\nimport { TippyCallbackRef } from \"../../hooks/UseTippyInstance\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { useLazyPopover } from \"../../hooks/UseLazyPopover\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\n\nexport interface PopoverProps\n extends Partial<Omit<TippyComponentProps, \"theme\" | \"render\">> {\n tippyRef?: TippyCallbackRef<HTMLDivElement>;\n disablePadding?: boolean;\n lazy?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n}\n\nexport const tippyStyles = {\n noPadding: styles.noPadding,\n};\n\nconst variantToTheme: Record<PopoverVariant, string> = {\n standard: \"light\",\n info: \"info\",\n warning: \"warning\",\n error: \"error\",\n outlined: \"outlined\",\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n visible,\n trigger = \"mouseenter\",\n children,\n tippyRef,\n delay = 0,\n variant = \"standard\",\n disablePadding,\n content,\n maxWidth = \"500px\",\n plugins: propsPlugins,\n lazy,\n arrow = true,\n theme = \"light\",\n ...tippyProps\n}) => {\n const { plugins, mounted } = useLazyPopover(propsPlugins);\n\n return (\n <TippyComponent\n interactive\n className={tippyStyles.noPadding}\n trigger={visible !== undefined ? undefined : trigger}\n visible={visible}\n theme={`${theme} ${variantToTheme[variant] ?? variantToTheme.standard}`}\n delay={delay}\n maxWidth={maxWidth}\n arrow={arrow}\n content={\n (!lazy || mounted) && (\n <Box spacing={!disablePadding && 1} indent={!disablePadding && 1}>\n {content}\n </Box>\n )\n }\n plugins={plugins}\n {...tippyProps}\n >\n {children && <div ref={tippyRef}>{children}</div>}\n </TippyComponent>\n );\n};\n","import { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\n\nexport interface ButtonWithPopoverProps extends FlatButtonProps {\n children?: PopoverProps[\"children\"];\n visible?: boolean;\n onShow?: () => void;\n onHide?: () => void;\n}\n\nexport const ButtonWithPopover: React.FC<ButtonWithPopoverProps> = ({\n children,\n onShow,\n onHide,\n ...buttonProps\n}) => {\n return (\n <Popover\n content={children}\n trigger={\"click\"}\n zIndex={1000}\n onShow={onShow}\n onHide={onHide}\n >\n <FlatButton {...buttonProps} />\n </Popover>\n );\n};\n","import { Text, Space } from \"@stenajs-webui/core\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./Tooltip.module.css\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nexport interface TooltipProps extends Omit<PopoverProps, \"theme\" | \"render\"> {\n label: string;\n variant?: TooltipVariant;\n children: JSX.Element;\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\nexport const Tooltip: React.FC<TooltipProps> = ({\n label,\n variant,\n children,\n ...popoverProps\n}) => (\n <Popover\n theme=\"dark\"\n {...popoverProps}\n disablePadding\n content={\n <div className={cx(styles.tooltip, variant ? styles.withIcon : null)}>\n {variant ? (\n <>\n <div className={cx(styles.iconWrapper, styles[variant])}>\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n </div>\n }\n >\n {children}\n </Popover>\n);\n","import { Instance } from \"tippy.js\";\nimport { MutableRefObject, useRef } from \"react\";\n\nexport type TippyInstance = Instance;\n\nexport type TippyElement<TElement extends HTMLElement> = TElement & {\n _tippy: TippyInstance;\n};\n\nexport type TippyCallbackRef<TElement extends HTMLElement> = (\n element: TippyElement<TElement> | null\n) => void;\n\nexport const useTippyInstance = <TElement extends HTMLElement>(): [\n TippyCallbackRef<TElement>,\n MutableRefObject<TippyInstance | undefined>\n] => {\n const tippyRef = useRef<TippyInstance>();\n\n return [\n (element: TippyElement<TElement> | null) => {\n tippyRef.current = element?._tippy ?? undefined;\n },\n tippyRef,\n ];\n};\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","useLazyPopover","plugins","mounted","setMounted","useState","useMemo","tippyStyles","styles","variantToTheme","Popover","visible","trigger","children","tippyRef","delay","variant","disablePadding","content","maxWidth","propsPlugins","lazy","arrow","theme","tippyProps","TippyComponent","_a","Box","ButtonWithPopover","onShow","onHide","buttonProps","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","TooltipText","label","cssColor","Tooltip","popoverProps","cx","Fragment","Icon","useTippyInstance","useRef","element"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/popover/ActionPrompt.tsx","../src/hooks/UseLazyPopover.ts","../src/components/popover/Popover.tsx","../src/components/button-with-popover/ButtonWithPopover.tsx","../src/components/tooltip/Tooltip.tsx","../src/hooks/UseTippyInstance.ts"],"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 { useMemo, useState } from \"react\";\nimport { Plugin } from \"tippy.js\";\n\nexport const useLazyPopover = (plugins: Plugin<unknown>[] = []) => {\n const [mounted, setMounted] = useState(false);\n\n const lazyPlugin = useMemo(\n () => ({\n fn: () => ({\n onShow: () => setMounted(true),\n onHidden: () => setMounted(false),\n }),\n }),\n [setMounted]\n );\n\n return {\n plugins: [lazyPlugin, ...plugins],\n mounted,\n };\n};\n","import TippyComponent, {\n TippyProps as TippyComponentProps,\n} from \"@tippyjs/react\";\nimport * as React from \"react\";\nimport styles from \"./Popover.module.css\";\nimport \"./Tippy.module.css\";\nimport { TippyCallbackRef } from \"../../hooks/UseTippyInstance\";\nimport { Box } from \"@stenajs-webui/core\";\nimport { useLazyPopover } from \"../../hooks/UseLazyPopover\";\n\nexport type PopoverVariant =\n | \"standard\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"outlined\";\n\nexport type PopoverTheme = \"light\" | \"dark\";\n\nexport interface PopoverProps\n extends Partial<Omit<TippyComponentProps, \"theme\" | \"render\">> {\n tippyRef?: TippyCallbackRef<HTMLDivElement>;\n disablePadding?: boolean;\n lazy?: boolean;\n variant?: PopoverVariant;\n theme?: PopoverTheme;\n}\n\nexport const tippyStyles = {\n noPadding: styles.noPadding,\n};\n\nconst variantToTheme: Record<PopoverVariant, string> = {\n standard: \"light\",\n info: \"info\",\n warning: \"warning\",\n error: \"error\",\n outlined: \"outlined\",\n};\n\nexport const Popover: React.FC<PopoverProps> = ({\n visible,\n trigger = \"mouseenter\",\n children,\n tippyRef,\n delay = 0,\n variant = \"standard\",\n disablePadding,\n content,\n maxWidth = \"500px\",\n plugins: propsPlugins,\n lazy,\n arrow = true,\n theme = \"light\",\n ...tippyProps\n}) => {\n const { plugins, mounted } = useLazyPopover(propsPlugins);\n\n return (\n <TippyComponent\n interactive\n className={tippyStyles.noPadding}\n trigger={visible !== undefined ? undefined : trigger}\n visible={visible}\n theme={`${theme} ${variantToTheme[variant] ?? variantToTheme.standard}`}\n delay={delay}\n maxWidth={maxWidth}\n arrow={arrow}\n content={\n (!lazy || mounted) && (\n <Box spacing={!disablePadding && 1} indent={!disablePadding && 1}>\n {content}\n </Box>\n )\n }\n plugins={plugins}\n {...tippyProps}\n >\n {children && <div ref={tippyRef}>{children}</div>}\n </TippyComponent>\n );\n};\n","import { FlatButton, FlatButtonProps } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\n\nexport interface ButtonWithPopoverProps extends FlatButtonProps {\n children?: PopoverProps[\"children\"];\n visible?: boolean;\n onShow?: () => void;\n onHide?: () => void;\n}\n\nexport const ButtonWithPopover: React.FC<ButtonWithPopoverProps> = ({\n children,\n onShow,\n onHide,\n ...buttonProps\n}) => {\n return (\n <Popover\n content={children}\n trigger={\"click\"}\n zIndex={1000}\n onShow={onShow}\n onHide={onHide}\n >\n <FlatButton {...buttonProps} />\n </Popover>\n );\n};\n","import { Text, Space } from \"@stenajs-webui/core\";\nimport {\n Icon,\n stenaExclamationCircle,\n stenaExclamationTriangle,\n stenaInfoCircle,\n} from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./Tooltip.module.css\";\nimport { Popover, PopoverProps } from \"../popover/Popover\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\ntype TooltipVariant = \"info\" | \"warning\" | \"error\";\n\nconst variantIcons = {\n info: stenaInfoCircle,\n warning: stenaExclamationCircle,\n error: stenaExclamationTriangle,\n};\n\nexport interface TooltipProps extends Omit<PopoverProps, \"theme\" | \"render\"> {\n label: string;\n variant?: TooltipVariant;\n children: JSX.Element;\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\nexport const Tooltip: React.FC<TooltipProps> = ({\n label,\n variant,\n children,\n ...popoverProps\n}) => (\n <Popover\n theme=\"dark\"\n {...popoverProps}\n disablePadding\n content={\n <div className={cx(styles.tooltip, variant ? styles.withIcon : null)}>\n {variant ? (\n <>\n <div className={cx(styles.iconWrapper, styles[variant])}>\n <Icon icon={variantIcons[variant]} size={16} />\n </div>\n <Space />\n <TooltipText label={label} />\n </>\n ) : (\n <TooltipText label={label} />\n )}\n </div>\n }\n >\n {children}\n </Popover>\n);\n","import { Instance } from \"tippy.js\";\nimport { MutableRefObject, useRef } from \"react\";\n\nexport type TippyInstance = Instance;\n\nexport type TippyElement<TElement extends HTMLElement> = TElement & {\n _tippy: TippyInstance;\n};\n\nexport type TippyCallbackRef<TElement extends HTMLElement> = (\n element: TippyElement<TElement> | null\n) => void;\n\nexport const useTippyInstance = <TElement extends HTMLElement>(): [\n TippyCallbackRef<TElement>,\n MutableRefObject<TippyInstance | undefined>\n] => {\n const tippyRef = useRef<TippyInstance>();\n\n return [\n (element: TippyElement<TElement> | null) => {\n tippyRef.current = element?._tippy ?? undefined;\n },\n tippyRef,\n ];\n};\n"],"names":["ActionPrompt","text","yesLabel","noLabel","onNo","onYes","loading","jsxs","Column","jsx","Text","Space","Row","FlatButton","PrimaryButton","Spinner","useLazyPopover","plugins","mounted","setMounted","useState","useMemo","tippyStyles","styles","variantToTheme","Popover","visible","trigger","children","tippyRef","delay","variant","disablePadding","content","maxWidth","propsPlugins","lazy","arrow","theme","tippyProps","TippyComponent","Box","ButtonWithPopover","onShow","onHide","buttonProps","variantIcons","stenaInfoCircle","stenaExclamationCircle","stenaExclamationTriangle","TooltipText","label","cssColor","Tooltip","popoverProps","cx","Fragment","Icon","useTippyInstance","useRef","element"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@stenajs-webui/tooltip",
3
- "version": "19.0.4",
3
+ "version": "19.0.5",
4
+ "type": "module",
4
5
  "description": "",
5
6
  "author": "mattias800",
6
7
  "license": "MIT",
@@ -12,6 +13,11 @@
12
13
  "types": "dist/index.d.ts",
13
14
  "module": "dist/index.es.js",
14
15
  "jsnext:main": "dist/index.es.js",
16
+ "exports": {
17
+ "require": "dist/index.js",
18
+ "import": "dist/index.es.js",
19
+ "types": "dist/index.d.ts"
20
+ },
15
21
  "sideEffects": false,
16
22
  "engines": {
17
23
  "node": ">=8",
@@ -20,15 +26,16 @@
20
26
  "scripts": {
21
27
  "build": "yarn tsc -p tsconfig.build.json && yarn vite build",
22
28
  "start": "yarn tsc -p tsconfig.build.json && yarn vite build --watch",
29
+ "test": "vitest run --passWithNoTests",
23
30
  "clean": "rimraf dist",
24
31
  "prepare": "yarn clean && yarn run build",
25
32
  "predeploy": "cd example && yarn install && yarn run build",
26
33
  "deploy": "gh-pages -d example/build"
27
34
  },
28
35
  "dependencies": {
29
- "@stenajs-webui/core": "19.0.4",
30
- "@stenajs-webui/elements": "19.0.4",
31
- "@stenajs-webui/theme": "19.0.4",
36
+ "@stenajs-webui/core": "19.0.5",
37
+ "@stenajs-webui/elements": "19.0.5",
38
+ "@stenajs-webui/theme": "19.0.5",
32
39
  "@tippyjs/react": "^4.1.0",
33
40
  "classnames": "^2.3.1",
34
41
  "tippy.js": "^6.2.6"
@@ -55,5 +62,5 @@
55
62
  "files": [
56
63
  "dist"
57
64
  ],
58
- "gitHead": "a327c660e0501c9829265c2553bfdbde78d0bfe9"
65
+ "gitHead": "36e2d14bb36897ef637580b66bc40e2dda274348"
59
66
  }