@fluidattacks/design 3.1.11 → 3.1.12
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/_commonjsHelpers-C6fGbg64.mjs +6 -0
- package/dist/components/@core/index.js +18 -1
- package/dist/components/accordion/accordion-content/index.js +9 -1
- package/dist/components/accordion/index.js +21 -1
- package/dist/components/alert/index.js +111 -4
- package/dist/components/button/index.js +18 -1
- package/dist/components/card/card-header/index.js +14 -1
- package/dist/components/card/card-with-image/index.js +18 -1
- package/dist/components/card/card-with-input/index.js +57 -3
- package/dist/components/card/card-with-selector/index.js +16 -1
- package/dist/components/card/card-with-switch/index.js +12 -1
- package/dist/components/card/index.js +12 -1
- package/dist/components/carousel/index.js +36 -10
- package/dist/components/checkbox/index.js +84 -3
- package/dist/components/cloud-image/index.js +8 -1
- package/dist/components/code-snippet/index.js +27 -1
- package/dist/components/code-snippet/location-code/index.js +125 -1
- package/dist/components/colors/index.js +9 -1
- package/dist/components/confirm-dialog/index.js +23 -1
- package/dist/components/container/index.js +27 -3
- package/dist/components/content-card/category-tag/index.js +13 -1
- package/dist/components/content-card/event-date/index.js +18 -1
- package/dist/components/content-card/index.js +63 -3
- package/dist/components/content-card-carousel/index.js +15 -1
- package/dist/components/content-card-carousel/scroll-buttons/index.js +9 -1
- package/dist/components/divider/index.js +10 -1
- package/dist/components/empty-state/empty-button/index.js +6 -1
- package/dist/components/empty-state/index.js +21 -8
- package/dist/components/file-preview/index.js +15 -3
- package/dist/components/form/index.js +26 -3
- package/dist/components/grid-container/index.js +26 -5
- package/dist/components/group-selector/index.js +26 -1
- package/dist/components/group-selector/option-container/index.js +12 -1
- package/dist/components/icon/index.js +42 -4
- package/dist/components/icon-button/index.js +27 -3
- package/dist/components/indicator-card/index.js +15 -1
- package/dist/components/info-sidebar/index.js +16 -1
- package/dist/components/inputs/fields/combobox/index.js +26 -1
- package/dist/components/inputs/fields/combobox/option/index.js +8 -1
- package/dist/components/inputs/fields/date/calendar/cell/index.js +16 -1
- package/dist/components/inputs/fields/date/calendar/grid/index.js +15 -1
- package/dist/components/inputs/fields/date/calendar/header/index.js +16 -1
- package/dist/components/inputs/fields/date/calendar/index.js +15 -1
- package/dist/components/inputs/fields/date/index.js +18 -1
- package/dist/components/inputs/fields/date-range/calendar/index.js +16 -1
- package/dist/components/inputs/fields/date-range/index.js +28 -3
- package/dist/components/inputs/fields/date-time/calendar/index.js +31 -5
- package/dist/components/inputs/fields/date-time/index.js +18 -1
- package/dist/components/inputs/fields/editable/index.js +16 -1
- package/dist/components/inputs/fields/input/index.js +13 -1
- package/dist/components/inputs/fields/input-file/index.js +24 -4
- package/dist/components/inputs/fields/input-tags/index.js +14 -2
- package/dist/components/inputs/fields/number/index.js +10 -1
- package/dist/components/inputs/fields/number-range/index.js +11 -1
- package/dist/components/inputs/fields/phone/index.js +414 -11
- package/dist/components/inputs/fields/text-area/index.js +13 -1
- package/dist/components/inputs/index.js +28 -1
- package/dist/components/inputs/label/index.js +12 -1
- package/dist/components/inputs/outline-container/index.js +18 -1
- package/dist/components/inputs/utils/action-button/index.js +10 -1
- package/dist/components/inputs/utils/calendar-button/index.js +13 -1
- package/dist/components/inputs/utils/date-selector/index.js +8 -1
- package/dist/components/inputs/utils/date-time-field/index.js +32 -1
- package/dist/components/inputs/utils/dialog/index.js +11 -1
- package/dist/components/inputs/utils/number-field/index.js +13 -1
- package/dist/components/inputs/utils/popover/index.js +13 -1
- package/dist/components/interactive-card/icon/index.js +7 -1
- package/dist/components/interactive-card/index.js +15 -1
- package/dist/components/language-selector/index.js +13 -1
- package/dist/components/language-selector/item-list/index.js +8 -1
- package/dist/components/link/index.js +52 -7
- package/dist/components/list-item/index.js +16 -1
- package/dist/components/little-flag/index.js +15 -3
- package/dist/components/loading/index.js +28 -14
- package/dist/components/logo/index.js +7 -1
- package/dist/components/logo-carousel/index.js +10 -4
- package/dist/components/lottie/index.js +15 -3
- package/dist/components/menu/index.js +23 -1
- package/dist/components/message-banner/index.js +21 -4
- package/dist/components/modal/index.js +19 -1
- package/dist/components/modal/modal-confirm/index.js +10 -1
- package/dist/components/modal/modal-footer/index.js +16 -1
- package/dist/components/modal/modal-header/index.js +25 -1
- package/dist/components/notification/index.js +68 -5
- package/dist/components/notification-sign/index.js +26 -6
- package/dist/components/number-input/index.js +25 -7
- package/dist/components/oauth-selector/index.js +26 -1
- package/dist/components/oauth-selector/option-container/index.js +15 -1
- package/dist/components/plan-card/index.js +84 -5
- package/dist/components/plan-card/recommended-tag/index.js +10 -1
- package/dist/components/pop-up/description/index.js +13 -1
- package/dist/components/pop-up/index.js +23 -1
- package/dist/components/premium-feature/index.js +45 -3
- package/dist/components/priority-score/index.js +14 -1
- package/dist/components/progress/index.js +23 -3
- package/dist/components/progress-bar/index.js +95 -5
- package/dist/components/radio-button/index.js +88 -3
- package/dist/components/scroll-button/index.js +20 -2
- package/dist/components/search/index.js +63 -7
- package/dist/components/search-bar/index.js +32 -1
- package/dist/components/search-bar/item-searching/index.js +10 -1
- package/dist/components/severity-badge/index.js +14 -1
- package/dist/components/severity-overview/badge/index.js +18 -1
- package/dist/components/severity-overview/index.js +7 -1
- package/dist/components/show-on-hover/index.js +25 -3
- package/dist/components/slide-out-menu/index.js +2009 -3
- package/dist/components/slide-out-menu/menu-item/index.js +15 -1
- package/dist/components/slider/index.js +93 -7
- package/dist/components/slider/thumb/index.js +10 -1
- package/dist/components/step-lapse/index.js +95 -9
- package/dist/components/table-button/index.js +56 -3
- package/dist/components/tabs/fixed-tabs/index.js +9 -1
- package/dist/components/tabs/index.js +14 -1
- package/dist/components/tabs/tab/index.js +8 -1
- package/dist/components/tag/index.js +116 -3
- package/dist/components/timeline/card/index.js +9 -1
- package/dist/components/timeline/index.js +7 -1
- package/dist/components/toggle/index.js +45 -14
- package/dist/components/toggle-buttons/index.js +74 -5
- package/dist/components/tooltip/index.js +13 -1
- package/dist/components/tour/index.js +2481 -4
- package/dist/components/typography/heading/index.js +9 -1
- package/dist/components/typography/index.js +8 -1
- package/dist/components/typography/span/index.js +9 -1
- package/dist/components/typography/text/index.js +9 -1
- package/dist/components/web-form/index.js +59 -7
- package/dist/hooks/index.js +13 -1
- package/dist/index-38JqtnAI.mjs +122 -0
- package/dist/index-B5yoGFs6.mjs +54 -0
- package/dist/index-BLbKylyw.mjs +209 -0
- package/dist/{index-C0_LPuYU.mjs → index-Bu448Tz2.mjs} +22 -22
- package/dist/index-BwFnfaRh.mjs +2310 -0
- package/dist/index-Co_k0WFk.mjs +75 -0
- package/dist/index-Cu7uUMlx.mjs +82 -0
- package/dist/index-D-lcuEHY.mjs +1018 -0
- package/dist/index-DrfjITyT.mjs +61 -0
- package/dist/index.js +206 -1
- package/dist/styles-7_q7nHce.mjs +110 -0
- package/dist/styles-BA0WIQL-.mjs +74 -0
- package/dist/styles-C3cZmKVJ.mjs +131 -0
- package/dist/styles-CI-I6joH.mjs +144 -0
- package/dist/styles-Cx93EcVo.mjs +76 -0
- package/dist/styles-D85YYIjM.mjs +131 -0
- package/dist/styles-EIbGRPlk.mjs +106 -0
- package/dist/styles-Q1VXuWI7.mjs +65 -0
- package/dist/styles-fH2c4cfc.mjs +77 -0
- package/dist/{styles-BAhpqi6C.mjs → styles-lSVV9kjn.mjs} +28 -28
- package/dist/use-carousel-CvRxi2FI.mjs +17 -0
- package/dist/use-click-outside-BtZLIoU1.mjs +18 -0
- package/dist/use-cloudinary-image-fG7ODNgr.mjs +611 -0
- package/dist/use-modal-CkrZ-_-M.mjs +14 -0
- package/dist/use-search-DpLNvt7Q.mjs +12 -0
- package/dist/utils-CQvBF-wY.mjs +4 -0
- package/package.json +1 -1
- package/dist/_commonjsHelpers-C37NGDzP.js +0 -1
- package/dist/_commonjsHelpers-D6CrkqQz.mjs +0 -6
- package/dist/index-BH27NQKA.mjs +0 -2311
- package/dist/index-Bcw2vW_n.mjs +0 -75
- package/dist/index-C8zdgAVH.mjs +0 -82
- package/dist/index-CA_9DXWd.js +0 -5
- package/dist/index-CmylnDrF.js +0 -14
- package/dist/index-DUMgwAbO.js +0 -26
- package/dist/index-DpQYiwGu.js +0 -5
- package/dist/index-Dy8ZUIYs.js +0 -5
- package/dist/index-JPf5Yzg6.js +0 -17
- package/dist/index-OBZtKZuT.mjs +0 -1021
- package/dist/index-SsXlDjK4.mjs +0 -122
- package/dist/index-TKLFHcRp.js +0 -18
- package/dist/index-TnyKqJHo.mjs +0 -61
- package/dist/index-Yr95Cb7Z.mjs +0 -54
- package/dist/index-h9-U5wxq.mjs +0 -209
- package/dist/index-qCiUU4sZ.js +0 -9
- package/dist/index-qe0nJwzl.js +0 -15
- package/dist/styles--Elze-LV.js +0 -3
- package/dist/styles-3pR4Xdvy.js +0 -33
- package/dist/styles-59h91S9m.mjs +0 -65
- package/dist/styles-BCwLWpC3.mjs +0 -126
- package/dist/styles-BJ7-0I5X.mjs +0 -74
- package/dist/styles-BKObp9bh.mjs +0 -76
- package/dist/styles-BWVdbvFu.js +0 -5
- package/dist/styles-Bl-CstrT.js +0 -5
- package/dist/styles-Bn42XCW5.js +0 -7
- package/dist/styles-C2CoGJl7.js +0 -33
- package/dist/styles-CNzziAXG.js +0 -5
- package/dist/styles-CdD9waPD.js +0 -29
- package/dist/styles-CnKTwnFk.mjs +0 -110
- package/dist/styles-D4R-eerv.mjs +0 -77
- package/dist/styles-DNIIhyRC.mjs +0 -144
- package/dist/styles-DV8yOaqV.mjs +0 -131
- package/dist/styles-DYoftbd3.js +0 -42
- package/dist/styles-DlmKLhPh.js +0 -7
- package/dist/styles-be8gOdgy.mjs +0 -106
- package/dist/use-carousel-64dKFW4E.js +0 -1
- package/dist/use-carousel-D7xeL3YZ.mjs +0 -17
- package/dist/use-click-outside-BqkLISED.js +0 -1
- package/dist/use-click-outside-C4Z4pdiW.mjs +0 -18
- package/dist/use-cloudinary-image-DKMl7jbx.mjs +0 -612
- package/dist/use-cloudinary-image-YMMafagv.js +0 -1
- package/dist/use-modal-CNbLSSQb.mjs +0 -14
- package/dist/use-modal-_bYY6M_n.js +0 -1
- package/dist/use-search-75ip5xR-.mjs +0 -12
- package/dist/use-search-DeL4UDMh.js +0 -1
- package/dist/utils-C2whpEd3.js +0 -1
- package/dist/utils-Da0qL35u.mjs +0 -4
|
@@ -1 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as i, jsxs as l } from "react/jsx-runtime";
|
|
2
|
+
import { isEmpty as p } from "lodash";
|
|
3
|
+
import { useCallback as n } from "react";
|
|
4
|
+
import { F as f } from "../../../styles-D85YYIjM.mjs";
|
|
5
|
+
import { Button as a } from "../../button/index.js";
|
|
6
|
+
const C = ({ modalRef: s, confirmButton: o, cancelButton: t }) => {
|
|
7
|
+
const { close: r } = s, c = n(() => {
|
|
8
|
+
t == null || t.onClick(), r();
|
|
9
|
+
}, [t, r]), e = n(() => {
|
|
10
|
+
o == null || o.onClick(), r();
|
|
11
|
+
}, [o, r]);
|
|
12
|
+
return [o, t].some((d) => !p(d)) ? i(f, { children: l("div", { children: [t && i(a, { onClick: c, variant: "tertiary", width: "100%", children: t.text }), o && i(a, { onClick: e, variant: "primary", width: "100%", children: o.text })] }) }) : null;
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
C as ModalFooter
|
|
16
|
+
};
|
|
@@ -1 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsxs as t, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { isString as d, isEmpty as p } from "lodash";
|
|
3
|
+
import { useCallback as f, useEffect as x } from "react";
|
|
4
|
+
import { useTheme as h } from "styled-components";
|
|
5
|
+
import { H as u, T as w } from "../../../styles-D85YYIjM.mjs";
|
|
6
|
+
import { IconButton as y } from "../../icon-button/index.js";
|
|
7
|
+
import { Heading as k } from "../../typography/heading/index.js";
|
|
8
|
+
import "../../typography/span/index.js";
|
|
9
|
+
import { Text as v } from "../../typography/text/index.js";
|
|
10
|
+
const L = ({ title: i, description: o, modalRef: n, otherActions: m, onClose: e }) => {
|
|
11
|
+
const c = h(), s = f(() => {
|
|
12
|
+
e == null || e(), n.close();
|
|
13
|
+
}, [n, e]);
|
|
14
|
+
return x(() => {
|
|
15
|
+
const a = (l) => {
|
|
16
|
+
l.key === "Escape" && s();
|
|
17
|
+
};
|
|
18
|
+
return window.addEventListener("keydown", a), () => {
|
|
19
|
+
window.removeEventListener("keydown", a);
|
|
20
|
+
};
|
|
21
|
+
}, [s]), t(u, { children: [t(w, { children: [typeof i == "string" ? r(k, { fontWeight: "bold", lineSpacing: 1.75, mr: 1, size: "sm", children: i }) : i, t("div", { className: "flex", children: [m, r(y, { icon: "close", iconColor: c.palette.gray[300], iconSize: "xs", iconType: "fa-light", id: "modal-close", onClick: s, variant: "ghost" })] })] }), o && d(o) && !p(o) ? r(v, { mt: 0.5, size: "sm", children: o }) : o] });
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
L as ModalHeader
|
|
25
|
+
};
|
|
@@ -1,5 +1,68 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { jsxs as t, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback as p } from "react";
|
|
3
|
+
import { styled as s, useTheme as d } from "styled-components";
|
|
4
|
+
import { Container as m } from "../container/index.js";
|
|
5
|
+
import { Icon as a } from "../icon/index.js";
|
|
6
|
+
import { IconButton as f } from "../icon-button/index.js";
|
|
7
|
+
import { Heading as g } from "../typography/heading/index.js";
|
|
8
|
+
import "../typography/span/index.js";
|
|
9
|
+
import { Text as $ } from "../typography/text/index.js";
|
|
10
|
+
const h = s.div`
|
|
11
|
+
${({ theme: i, $variant: n }) => `
|
|
12
|
+
background: ${i.palette.white};
|
|
13
|
+
border: 1px solid ${i.palette.gray[200]};
|
|
14
|
+
border-radius: ${i.spacing[0.25]};
|
|
15
|
+
border-left: 4px solid ${i.palette[n][500]};
|
|
16
|
+
box-shadow: ${i.shadows.md};
|
|
17
|
+
position: relative;
|
|
18
|
+
display: flex;
|
|
19
|
+
width: 360px;
|
|
20
|
+
padding: ${i.spacing[1.25]} ${i.spacing[1]} ${i.spacing[1.25]} ${i.spacing[0.75]};
|
|
21
|
+
gap: ${i.spacing[0.5]};
|
|
22
|
+
|
|
23
|
+
button {
|
|
24
|
+
position: absolute;
|
|
25
|
+
top: 20px;
|
|
26
|
+
right: 16px;
|
|
27
|
+
}
|
|
28
|
+
`}
|
|
29
|
+
`, x = s.div`
|
|
30
|
+
${({ theme: i, $variant: n }) => `
|
|
31
|
+
height: ${i.spacing[2.5]};
|
|
32
|
+
width: ${i.spacing[2.5]};
|
|
33
|
+
position: relative;
|
|
34
|
+
flex-shrink: 0;
|
|
35
|
+
|
|
36
|
+
& .ellipse-1,
|
|
37
|
+
& .ellipse-2,
|
|
38
|
+
& .icon {
|
|
39
|
+
top: 50%;
|
|
40
|
+
left: 50%;
|
|
41
|
+
transform: translate(-50%, -50%);
|
|
42
|
+
position: absolute;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
& .ellipse-1 {
|
|
46
|
+
transform: scale(2.5) translate(-20%, -20%);
|
|
47
|
+
color: ${i.palette[n][50]};
|
|
48
|
+
position: absolute;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
& .ellipse-2 {
|
|
52
|
+
transform: scale(2) translate(-25%, -25%);
|
|
53
|
+
color: ${i.palette[n][200]};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
& .icon {
|
|
57
|
+
color: ${i.palette[n][500]};
|
|
58
|
+
}
|
|
59
|
+
`}
|
|
60
|
+
`, b = (i) => i === "warning" ? "triangle-exclamation" : i === "info" ? "circle-info" : i === "success" ? "circle-check" : "circle-exclamation", j = ({ description: i, onClose: n, title: r, variant: e }) => {
|
|
61
|
+
const l = d(), c = p(() => {
|
|
62
|
+
n == null || n();
|
|
63
|
+
}, [n]);
|
|
64
|
+
return t(h, { $variant: e, className: `notification notification__${e}`, role: "alertdialog", children: [t(x, { $variant: e, children: [o(a, { icon: "circle", iconClass: "ellipse-1", iconSize: "xs" }), o(a, { icon: "circle", iconClass: "ellipse-2", iconSize: "xs" }), o(a, { icon: b(e), iconClass: "icon", iconSize: "xs", iconType: "fa-light" })] }), t(m, { pr: 1.5, children: [o(g, { fontWeight: "bold", size: "xs", children: r }), o($, { size: "sm", whiteSpace: "break-spaces", wordWrap: "break-word", children: i })] }), o(f, { height: "fit-content", icon: "close", iconColor: l.palette.gray[400], iconSize: "xs", iconType: "fa-light", onClick: c, px: 0.125, py: 0.125, variant: "ghost" })] });
|
|
65
|
+
};
|
|
66
|
+
export {
|
|
67
|
+
j as Notification
|
|
68
|
+
};
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as s } from "react";
|
|
3
|
+
import { styled as i } from "styled-components";
|
|
4
|
+
import { B as p } from "../../styles-C3cZmKVJ.mjs";
|
|
5
|
+
const d = i(p)`
|
|
6
|
+
${({ theme: t, $variant: n }) => `
|
|
7
|
+
align-items: center;
|
|
8
|
+
background: ${n === "error" ? t.palette.primary[400] : t.palette.warning[500]};
|
|
9
|
+
border-radius: 100%;
|
|
10
|
+
font-family: ${t.typography.type.primary};
|
|
11
|
+
justify-content: center;
|
|
12
|
+
padding: 0;
|
|
13
|
+
position: absolute;
|
|
14
|
+
z-index: 11;
|
|
15
|
+
width: ${t.spacing[0.5]};
|
|
16
|
+
height: ${t.spacing[0.5]};
|
|
17
|
+
`}
|
|
18
|
+
`, c = i.div`
|
|
4
19
|
align-items: center;
|
|
5
|
-
color: ${({theme:
|
|
20
|
+
color: ${({ theme: t }) => t.palette.white};
|
|
6
21
|
display: flex;
|
|
7
22
|
font-size: 6px;
|
|
8
|
-
font-weight: ${({theme:
|
|
23
|
+
font-weight: ${({ theme: t }) => t.typography.weight.bold};
|
|
9
24
|
justify-content: center;
|
|
10
|
-
`,
|
|
25
|
+
`, g = s(function({ numberIndicator: t, show: n, variant: r = "error", ...a }, o) {
|
|
26
|
+
return e(d, { $variant: r, className: n ? "flex" : "hidden", "data-testid": "notification-sign", ref: o, ...a, children: t && e(c, { children: t <= 9 ? t : 9 }) });
|
|
27
|
+
});
|
|
28
|
+
export {
|
|
29
|
+
g as NotificationSign
|
|
30
|
+
};
|
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
2
|
+
import { toNumber as d, isEmpty as k } from "lodash";
|
|
3
|
+
import { forwardRef as w, useState as T, useCallback as l } from "react";
|
|
4
|
+
import { styled as g } from "styled-components";
|
|
5
|
+
import { T as $ } from "../../index-D-lcuEHY.mjs";
|
|
6
|
+
const P = g.div`
|
|
2
7
|
width: fit-content;
|
|
3
|
-
border: ${({theme:
|
|
8
|
+
border: ${({ theme: t }) => `1px solid ${t.palette.gray[300]}`};
|
|
4
9
|
border-radius: 4px;
|
|
5
10
|
background: none;
|
|
6
|
-
color: ${({theme:
|
|
7
|
-
font-family: ${({theme:
|
|
8
|
-
font-size: ${({theme:
|
|
11
|
+
color: ${({ theme: t }) => t.palette.black};
|
|
12
|
+
font-family: ${({ theme: t }) => t.typography.type.primary};
|
|
13
|
+
font-size: ${({ theme: t }) => t.typography.text.md};
|
|
9
14
|
height: 40px;
|
|
10
15
|
display: flex;
|
|
11
16
|
align-items: center;
|
|
12
17
|
justify-content: center;
|
|
13
18
|
padding: 0.5em;
|
|
14
|
-
`,
|
|
19
|
+
`, E = g.input`
|
|
15
20
|
width: 4em;
|
|
16
21
|
appearance: textfield;
|
|
17
22
|
border-style: none;
|
|
@@ -31,4 +36,17 @@
|
|
|
31
36
|
&::-webkit-inner-spin-button {
|
|
32
37
|
opacity: 1;
|
|
33
38
|
}
|
|
34
|
-
`,
|
|
39
|
+
`, U = w(function({ autoUpdate: t = !1, decimalPlaces: s = 0, defaultValue: m = 0, max: r, min: o, name: b, onEnter: n, tooltipMessage: f, ...y }, h) {
|
|
40
|
+
const a = s < 0 ? 0 : s, [c, p] = T(Number(m).toFixed(a)), x = l((e) => {
|
|
41
|
+
const i = d(e.target.value);
|
|
42
|
+
e.target.value.endsWith(".") ? p(e.target.value) : i >= Number(o) && i <= Number(r) && (p(String(i)), t && n(d(i.toFixed(a)))), e.stopPropagation();
|
|
43
|
+
}, [t, a, r, o, n]), v = l((e) => {
|
|
44
|
+
e.currentTarget.contains(e.relatedTarget) || p(Number(m).toFixed(a)), e.stopPropagation();
|
|
45
|
+
}, [a, m]), N = l((e) => {
|
|
46
|
+
e.stopPropagation(), e.key !== "Enter" || k(e.currentTarget.value) || n(d(e.currentTarget.value));
|
|
47
|
+
}, [n]);
|
|
48
|
+
return u(P, { onBlur: v, tabIndex: -1, children: u($, { id: "numberInputTooltip", tip: f, children: u(E, { ...y, "aria-label": b, "aria-valuemax": Number(r), "aria-valuemin": Number(o), "aria-valuenow": Number(c), max: r, min: o, name: b, onChange: x, onKeyUp: N, ref: h, step: 10 ** -a, type: "number", value: c }) }) });
|
|
49
|
+
});
|
|
50
|
+
export {
|
|
51
|
+
U as NumberInput
|
|
52
|
+
};
|
|
@@ -1 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsxs as s, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { useState as y, useRef as x, useCallback as n } from "react";
|
|
3
|
+
import { useTheme as O } from "styled-components";
|
|
4
|
+
import { OptionContainer as p } from "./option-container/index.js";
|
|
5
|
+
import { Button as I } from "../button/index.js";
|
|
6
|
+
import { Container as d } from "../container/index.js";
|
|
7
|
+
import { u as j } from "../../use-click-outside-BtZLIoU1.mjs";
|
|
8
|
+
const D = ({ align: m = "end", buttonLabel: c = "Add Credential", children: u, id: b, manualOption: e, providers: r }) => {
|
|
9
|
+
const f = O(), [h, o] = y(!1), a = x(null);
|
|
10
|
+
j(a.current, () => {
|
|
11
|
+
o(!1);
|
|
12
|
+
}, !0);
|
|
13
|
+
const C = n((i) => {
|
|
14
|
+
e == null || e.onClick(i), o(!1);
|
|
15
|
+
}, [e]), v = n(() => {
|
|
16
|
+
o((i) => !i);
|
|
17
|
+
}, [o]), g = n((i) => (k) => {
|
|
18
|
+
var l;
|
|
19
|
+
(l = r[i]) == null || l.onClick(k), o(!1);
|
|
20
|
+
}, [r]);
|
|
21
|
+
return s(d, { alignItems: m, display: "flex", flexDirection: "column", position: "relative", ref: a, width: "max-content", zIndex: 10, children: [t(I, { icon: "plus", onClick: v, variant: "primary", children: c }), s(d, { alignItems: "center", bgColor: "#fff", border: `1px solid ${f.palette.gray[200]}`, borderRadius: "4px", display: "flex", gap: 0.5, height: "78px", id: b, pb: 0.5, pl: 0.75, position: "absolute", pr: 0.75, pt: 0.5, shadow: "md", top: "40px", visibility: h ? "visible" : "hidden", zIndex: 10, children: [Object.keys(r).map((i) => t(p, { onClick: g(i), provider: i }, i)), e === void 0 ? void 0 : t(p, { icon: "square-plus", label: e.label ?? "Add manually", onClick: C }), u] })] });
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
D as OAuthSelector,
|
|
25
|
+
p as OptionContainer
|
|
26
|
+
};
|
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsxs as p, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useTheme as s } from "styled-components";
|
|
3
|
+
import { M as c } from "../../../index-BwFnfaRh.mjs";
|
|
4
|
+
import { Container as i } from "../../container/index.js";
|
|
5
|
+
import { Icon as m } from "../../icon/index.js";
|
|
6
|
+
import "../../typography/heading/index.js";
|
|
7
|
+
import "../../typography/span/index.js";
|
|
8
|
+
import { Text as g } from "../../typography/text/index.js";
|
|
9
|
+
const h = { Azure: "integrates/autoenrollment/azureIcon", Bitbucket: "integrates/autoenrollment/bitbucketLogo", GitHub: "integrates/autoenrollment/githubLogo", GitLab: "integrates/autoenrollment/gitlabIcon" }, L = ({ icon: o, label: a, onClick: l, onlyLabel: r = !1, provider: t = "GitLab" }) => {
|
|
10
|
+
const n = s();
|
|
11
|
+
return p(i, { alignItems: "center", bgColorHover: n.palette.gray[100], borderRadius: "4px", cursor: "pointer", display: "flex", flexDirection: "column", gap: 0.25, height: "62px", justify: "center", minWidth: "64px", onClick: l, pb: 0.5, pl: 0.25, pr: 0.25, pt: 0.5, children: [!r && e(i, { height: "24px", width: "24px", children: o === void 0 ? e(c, { alt: `${t} Logo`, height: "100%", publicId: h[t], width: "100%" }) : e(m, { icon: o, iconColor: "#000", iconSize: "sm", iconType: "fa-light" }) }), e(i, { alignItems: "center", display: "flex", minWidth: "24px", children: e(g, { color: n.palette.gray[800], display: "inline", size: "xs", textAlign: "center", whiteSpace: r ? "break-spaces" : "nowrap", wordWrap: "unset", children: a ?? t }) })] });
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
L as OptionContainer
|
|
15
|
+
};
|
|
@@ -1,5 +1,84 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { jsxs as a, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { RecommendedTag as g } from "./recommended-tag/index.js";
|
|
3
|
+
import { styled as o } from "styled-components";
|
|
4
|
+
import { Button as x } from "../button/index.js";
|
|
5
|
+
import { theme as r } from "../colors/index.js";
|
|
6
|
+
import { Container as b } from "../container/index.js";
|
|
7
|
+
import { Heading as u } from "../typography/heading/index.js";
|
|
8
|
+
import "../typography/span/index.js";
|
|
9
|
+
import { Text as s } from "../typography/text/index.js";
|
|
10
|
+
const f = o.div`
|
|
11
|
+
${({ className: t, theme: n }) => `
|
|
12
|
+
align-items: flex-start;
|
|
13
|
+
border-radius: ${n.spacing[1]};
|
|
14
|
+
background: ${n.palette.white};
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
gap: ${n.spacing[1]};
|
|
18
|
+
padding: ${n.spacing[1.5]};
|
|
19
|
+
position: relative;
|
|
20
|
+
width: 320px;
|
|
21
|
+
|
|
22
|
+
button {
|
|
23
|
+
text-align: center;
|
|
24
|
+
width: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
${t === "essential" ? `border: 2px solid ${n.palette.gray[300]};` : `
|
|
28
|
+
box-shadow: 0px 9px 18px 0px rgba(243, 38, 55, 0.06),
|
|
29
|
+
0px 18px 27px 0px rgba(243, 38, 55, 0.10);
|
|
30
|
+
|
|
31
|
+
&::before {
|
|
32
|
+
background: ${n.palette.gradients["01"]} border-box;
|
|
33
|
+
border-radius: ${n.spacing[1]};
|
|
34
|
+
content: "";
|
|
35
|
+
position: absolute;
|
|
36
|
+
inset: 0;
|
|
37
|
+
border: 2px solid transparent;
|
|
38
|
+
mask:
|
|
39
|
+
linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
|
|
40
|
+
mask-composite: exclude;
|
|
41
|
+
}
|
|
42
|
+
`}
|
|
43
|
+
`}
|
|
44
|
+
`;
|
|
45
|
+
o.div`
|
|
46
|
+
${({ className: t, theme: n }) => `
|
|
47
|
+
align-items: flex-start;
|
|
48
|
+
border-radius: ${n.spacing[1]};
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
gap: ${n.spacing[1.5]};
|
|
53
|
+
padding: ${n.spacing[1.5]};
|
|
54
|
+
width: 466px;
|
|
55
|
+
|
|
56
|
+
button {
|
|
57
|
+
text-align: center;
|
|
58
|
+
width: 100%;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
${t === "essential" ? `
|
|
62
|
+
background: linear-gradient(
|
|
63
|
+
180deg,
|
|
64
|
+
${n.palette.primary[400]} 0%,
|
|
65
|
+
${n.palette.black} 100%
|
|
66
|
+
);` : `
|
|
67
|
+
background: ${n.palette.white};
|
|
68
|
+
box-shadow: 0px 9px 18px 0px rgba(243, 38, 55, 0.06),
|
|
69
|
+
0px 18px 27px 0px rgba(243, 38, 55, 0.10);
|
|
70
|
+
`}
|
|
71
|
+
|
|
72
|
+
@media screen and (max-width: ${n.breakpoints.mobile}) {
|
|
73
|
+
width: 320px;
|
|
74
|
+
}
|
|
75
|
+
`}
|
|
76
|
+
`;
|
|
77
|
+
const h = { advanced: { title: "Advanced plan", benefits: "Leverage vulnerability scanning + AI + expert intelligence", buttonText: "Contact sales", description: "For teams that want to discover risk exposure with speed and accuracy.", priceGroup: "$1,579" }, essential: { title: "Essential plan", benefits: "Leverage vulnerability scanning", buttonText: "Start a 21-day free trial", description: `For teams that want to discover risk exposure quickly
|
|
78
|
+
through our scanning tool.`, priceAuthor: "$499", priceGroup: "$1,579" } }, j = ({ description: t, onClick: n, plan: e }) => {
|
|
79
|
+
const { title: p, description: l, benefits: d, buttonText: c } = h[e], m = t ?? l;
|
|
80
|
+
return a(f, { className: e, children: [a(b, { display: "flex", flexDirection: "column", gap: 0.25, pt: e === "essential" ? 1.75 : 0, children: [e === "advanced" && i(g, {}), i(u, { color: r.palette.gray[900], fontWeight: "semibold", size: "sm", sizeSm: "xs", children: p }), i(s, { color: r.palette.gray[400], fontWeight: "semibold", pb: e === "essential" ? 1.25 : 0, size: "sm", sizeSm: "xs", children: d })] }), i(s, { lineSpacing: 1.5, lineSpacingSm: 1.25, pb: e === "advanced" ? 1.5 : 0, size: "md", sizeSm: "sm", children: m }), i(x, { onClick: n, variant: "primary", children: c })] });
|
|
81
|
+
};
|
|
82
|
+
export {
|
|
83
|
+
j as PlanCard
|
|
84
|
+
};
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { theme as t } from "../../colors/index.js";
|
|
3
|
+
import { Container as r } from "../../container/index.js";
|
|
4
|
+
import "../../typography/heading/index.js";
|
|
5
|
+
import "../../typography/span/index.js";
|
|
6
|
+
import { Text as i } from "../../typography/text/index.js";
|
|
7
|
+
const p = () => e(r, { alignItems: "center", bgColor: t.palette.primary[25], borderRadius: "8px", gap: 0.5, justify: "center", padding: [0.125, 0.25, 0.125, 0.25], width: "max-content", children: e(i, { bgGradient: t.palette.gradients["01"], fontWeight: "semibold", size: "xs", textFill: "transparent", children: "Recommended" }) });
|
|
8
|
+
export {
|
|
9
|
+
p as RecommendedTag
|
|
10
|
+
};
|
|
@@ -1 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as e, jsxs as c } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment as p } from "react";
|
|
3
|
+
import { useTheme as m } from "styled-components";
|
|
4
|
+
import "../../typography/heading/index.js";
|
|
5
|
+
import { Span as o } from "../../typography/span/index.js";
|
|
6
|
+
import { Text as s } from "../../typography/text/index.js";
|
|
7
|
+
const u = ({ description: n = "", highlightDescription: i = "" }) => {
|
|
8
|
+
const l = m(), r = typeof i == "string", a = r ? "" : new RegExp(`(${i.join("|")})`, "u");
|
|
9
|
+
return i.length > 0 ? e(s, { display: "inline", lineSpacing: 1.5, size: "lg", textAlign: "center", children: r ? c(p, { children: [e(o, { color: l.palette.gray[600], display: "inline", fontWeight: "bold", lineSpacing: 1.5, size: "lg", children: i }), n] }) : n.split(a).map((t, g) => i.includes(t) ? e(o, { color: l.palette.gray[600], display: "inline", fontWeight: "bold", lineSpacing: 1.5, size: "lg", children: t }, `${g + 1}-bold`) : t) }) : e(s, { lineSpacing: 1.5, size: "lg", textAlign: "center", children: n });
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
u as Description
|
|
13
|
+
};
|
|
@@ -1 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as e, jsxs as o } from "react/jsx-runtime";
|
|
2
|
+
import { isObject as p } from "lodash";
|
|
3
|
+
import { useCallback as s } from "react";
|
|
4
|
+
import { createPortal as B } from "react-dom";
|
|
5
|
+
import { useTheme as g } from "styled-components";
|
|
6
|
+
import { Description as z } from "./description/index.js";
|
|
7
|
+
import { Button as h } from "../button/index.js";
|
|
8
|
+
import { M as W } from "../../index-BwFnfaRh.mjs";
|
|
9
|
+
import { Container as r } from "../container/index.js";
|
|
10
|
+
import { Heading as A } from "../typography/heading/index.js";
|
|
11
|
+
import "../typography/span/index.js";
|
|
12
|
+
import "../typography/text/index.js";
|
|
13
|
+
const F = ({ _portal: l = !1, cancelButton: i, darkBackground: f = !1, children: a, confirmButton: t, container: x, description: m, highlightDescription: u = "", image: b, maxWidth: y, title: n, titleColor: C }) => {
|
|
14
|
+
const c = g(), { alt: k, src: w, width: v = "77px", height: D = "77px" } = b, I = s(() => {
|
|
15
|
+
i == null || i.onClick();
|
|
16
|
+
}, [i]), j = s(() => {
|
|
17
|
+
t == null || t.onClick();
|
|
18
|
+
}, [t]), d = e(r, { alignItems: "center", "aria-label": n, "aria-modal": "true", bgColor: f ? "rgba(52, 64, 84, 70%)" : "", display: "flex", height: "100vh", justify: "center", left: "0", position: l ? "fixed" : "absolute", top: "0px", width: "100%", zIndex: 99999, children: o(r, { bgColor: c.palette.white, border: `1px solid ${c.palette.gray[200]}`, borderRadius: "8px", display: "inline-flex", flexDirection: "column", maxWidth: y, pb: 2.5, pl: 2.5, pr: 2.5, pt: 2.5, shadow: "lg", width: "100%", zIndex: 11, children: [o(r, { alignItems: "center", display: "flex", flexDirection: "column", width: "100%", children: [e(r, { children: e(W, { alt: k, height: D, publicId: w, width: v }) }), o(r, { display: "flex", flexDirection: "column", gap: 0.5, mb: 1.5, mt: 1.5, children: [e(A, { color: C, fontWeight: "bold", lineSpacing: 2.5, size: "lg", textAlign: "center", children: n }), e(z, { description: m, highlightDescription: u })] })] }), a && e(r, { mb: 1, scroll: "y", children: e(r, { height: "100%", children: a }) }), o(r, { alignItems: "flex-start", display: "flex", gap: 1, justify: "center", children: [p(t) ? e(h, { onClick: j, variant: (t == null ? void 0 : t.variant) ?? "primary", children: t == null ? void 0 : t.text }, t == null ? void 0 : t.key) : void 0, p(i) ? e(h, { onClick: I, variant: (i == null ? void 0 : i.variant) ?? "tertiary", children: i == null ? void 0 : i.text }, i == null ? void 0 : i.key) : void 0] })] }) });
|
|
19
|
+
return l ? B(d, x ?? document.body) : d;
|
|
20
|
+
};
|
|
21
|
+
export {
|
|
22
|
+
F as PopUp
|
|
23
|
+
};
|
|
@@ -1,3 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { jsx as i, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
import { styled as c, useTheme as p } from "styled-components";
|
|
3
|
+
import { Container as a } from "../container/index.js";
|
|
4
|
+
import { Icon as e } from "../icon/index.js";
|
|
5
|
+
import "../typography/heading/index.js";
|
|
6
|
+
import "../typography/span/index.js";
|
|
7
|
+
import { Text as m } from "../typography/text/index.js";
|
|
8
|
+
const d = c.div`
|
|
9
|
+
${({ theme: n }) => `
|
|
10
|
+
height: ${n.spacing[1]};
|
|
11
|
+
width: ${n.spacing[1]};
|
|
12
|
+
position: relative;
|
|
13
|
+
flex-shrink: 0;
|
|
14
|
+
|
|
15
|
+
& .ellipse-1,
|
|
16
|
+
& .ellipse-2,
|
|
17
|
+
& .icon {
|
|
18
|
+
top: 50%;
|
|
19
|
+
left: 50%;
|
|
20
|
+
transform: translate(-50%, -50%);
|
|
21
|
+
position: absolute;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
& .ellipse-1 {
|
|
25
|
+
color: ${n.palette.warning[200]};
|
|
26
|
+
position: absolute;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
& .ellipse-2 {
|
|
30
|
+
transform: scale(0.75) translate(-67%, -66%);
|
|
31
|
+
color: ${n.palette.warning[400]};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
& .icon {
|
|
35
|
+
color: ${n.palette.warning[600]};
|
|
36
|
+
font-size: ${n.spacing[0.5]};
|
|
37
|
+
}
|
|
38
|
+
`}
|
|
39
|
+
`, $ = ({ margin: n, onClick: o, text: l }) => {
|
|
40
|
+
const s = p(), r = t(d, { children: [i(e, { icon: "circle", iconClass: "ellipse-1", iconSize: "xs" }), i(e, { icon: "circle", iconClass: "ellipse-2", iconSize: "xs" }), i(e, { icon: "crown", iconClass: "icon", iconSize: "xs" })] });
|
|
41
|
+
return i(a, l !== void 0 ? { cursor: "pointer", display: "inline-block", mr: n, onClick: o, children: t(a, { alignItems: "center", bgColor: s.palette.warning[50], borderRadius: "4px", display: "flex", padding: [0.25, 0.25, 0.25, 0.25], width: "fit-content", children: [r, i(m, { color: s.palette.warning[500], display: "inline", ml: 0.25, size: "xs", children: l })] }) } : { display: "inline-block", mr: n, onClick: o, children: r });
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
$ as PremiumFeature
|
|
45
|
+
};
|
|
@@ -1 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsxs as t, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useTheme as e } from "styled-components";
|
|
3
|
+
import { Container as a } from "../container/index.js";
|
|
4
|
+
import { Icon as s } from "../icon/index.js";
|
|
5
|
+
import "../typography/heading/index.js";
|
|
6
|
+
import "../typography/span/index.js";
|
|
7
|
+
import { Text as n } from "../typography/text/index.js";
|
|
8
|
+
const x = ({ score: r }) => {
|
|
9
|
+
const o = e();
|
|
10
|
+
return t(a, { alignItems: "center", display: "inline-flex", gap: 0.25, children: [i(s, { icon: r > 66 || r === 0 ? "priority-bars-high" : r <= 33 ? "priority-bars-low" : "priority-bars-medium", iconClass: r <= 66 ? "fa-kit-duotone" : "", iconColor: r > 0 ? o.palette.primary[500] : o.palette.gray[200], iconSize: "xs", iconType: "fa-kit", secondaryColor: o.palette.gray[200] }), i(n, { color: o.palette.gray[800], size: "sm", textAlign: "right", children: r + "%" })] });
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
x as PriorityScore
|
|
14
|
+
};
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useState as p, useEffect as i } from "react";
|
|
3
|
+
import { styled as l, useTheme as g } from "styled-components";
|
|
4
|
+
import { B as h } from "../../styles-C3cZmKVJ.mjs";
|
|
5
|
+
import { Container as f } from "../container/index.js";
|
|
6
|
+
const d = l(h)`
|
|
7
|
+
animation: ${({ $animationTime: e }) => `progress-bar ${e}s ease-in-out`};
|
|
3
8
|
animation-fill-mode: both;
|
|
4
9
|
|
|
5
10
|
@keyframes progress-bar {
|
|
@@ -11,4 +16,19 @@
|
|
|
11
16
|
width: 100%;
|
|
12
17
|
}
|
|
13
18
|
}
|
|
14
|
-
|
|
19
|
+
`, w = ({ progressTime: e = 10, onComplete: t }) => {
|
|
20
|
+
const s = g(), [r, m] = p(0);
|
|
21
|
+
return i(() => {
|
|
22
|
+
r === 100 && (t == null || t());
|
|
23
|
+
}, [r, t]), i(() => {
|
|
24
|
+
const n = setInterval(() => {
|
|
25
|
+
m((a) => a === 100 ? 0 : a + 1);
|
|
26
|
+
}, ((a) => 1e3 * a / 100)(e));
|
|
27
|
+
return () => {
|
|
28
|
+
clearInterval(n);
|
|
29
|
+
};
|
|
30
|
+
}, [r, e]), o(f, { bgColor: s.palette.gray[200], height: "4px", children: o(d, { $animationTime: e, bgGradient: s.palette.gradients["01"], height: "100%", width: `${r}%` }) });
|
|
31
|
+
};
|
|
32
|
+
export {
|
|
33
|
+
w as Progress
|
|
34
|
+
};
|