@uniformdev/design-system 19.114.0 → 19.114.1-alpha.7
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/esm/index.js +1422 -308
- package/dist/index.d.mts +164 -2
- package/dist/index.d.ts +164 -2
- package/dist/index.js +1426 -285
- package/package.json +5 -4
package/dist/esm/index.js
CHANGED
|
@@ -704,6 +704,15 @@ var input = (whiteSpaceWrap) => css2`
|
|
|
704
704
|
font-size: var(--fs-sm);
|
|
705
705
|
margin-right: var(--spacing-base);
|
|
706
706
|
}
|
|
707
|
+
|
|
708
|
+
&[aria-invalid='true'] {
|
|
709
|
+
border-color: var(--action-destructive-default);
|
|
710
|
+
box-shadow: var(--elevation-100);
|
|
711
|
+
|
|
712
|
+
&:hover {
|
|
713
|
+
border-color: var(--action-destructive-hover);
|
|
714
|
+
}
|
|
715
|
+
}
|
|
707
716
|
`;
|
|
708
717
|
var inputError = css2`
|
|
709
718
|
border-color: var(--action-destructive-default);
|
|
@@ -2013,6 +2022,27 @@ var listViewLong = GenIcon({
|
|
|
2013
2022
|
}
|
|
2014
2023
|
]
|
|
2015
2024
|
});
|
|
2025
|
+
var filterAdd = GenIcon({
|
|
2026
|
+
tag: "svg",
|
|
2027
|
+
attr: {
|
|
2028
|
+
role: "img",
|
|
2029
|
+
viewBox: "0 0 16 16",
|
|
2030
|
+
fill: "none",
|
|
2031
|
+
strokeWidth: ""
|
|
2032
|
+
},
|
|
2033
|
+
child: [
|
|
2034
|
+
{
|
|
2035
|
+
tag: "path",
|
|
2036
|
+
attr: {
|
|
2037
|
+
stroke: "currentColor",
|
|
2038
|
+
d: "M8 13.3334L6 14V8.33335L3.01333 5.04802C2.7903 4.80264 2.6667 4.48295 2.66666 4.15135V2.66669H13.3333V4.11469C13.3333 4.46828 13.1927 4.80736 12.9427 5.05735L10 8.00002V10M10.6667 12.6667H14.6667M12.6667 10.6667V14.6667",
|
|
2039
|
+
strokeLinejoin: "round",
|
|
2040
|
+
strokeLinecap: "round"
|
|
2041
|
+
},
|
|
2042
|
+
child: []
|
|
2043
|
+
}
|
|
2044
|
+
]
|
|
2045
|
+
});
|
|
2016
2046
|
var customIcons = {
|
|
2017
2047
|
"rectangle-rounded": rectangleRoundedIcon,
|
|
2018
2048
|
card: cardIcon,
|
|
@@ -2039,7 +2069,8 @@ var customIcons = {
|
|
|
2039
2069
|
"diamond-fill": diamondFill,
|
|
2040
2070
|
"magic-wand": magicWand,
|
|
2041
2071
|
"list-view-short": listViewShort,
|
|
2042
|
-
"list-view-long": listViewLong
|
|
2072
|
+
"list-view-long": listViewLong,
|
|
2073
|
+
"filter-add": filterAdd
|
|
2043
2074
|
};
|
|
2044
2075
|
|
|
2045
2076
|
// src/components/AddListButton/AddListButton.styles.ts
|
|
@@ -13345,7 +13376,7 @@ var DashedBox = ({
|
|
|
13345
13376
|
|
|
13346
13377
|
// src/components/DateTimePicker/DateTimePicker.tsx
|
|
13347
13378
|
import { getLocalTimeZone as getLocalTimeZone2, parseDate as parseDate2, parseTime as parseTime2 } from "@internationalized/date";
|
|
13348
|
-
import { createContext as createContext2, useCallback as useCallback3, useContext as useContext3, useEffect as useEffect4, useMemo, useState as
|
|
13379
|
+
import { createContext as createContext2, useCallback as useCallback3, useContext as useContext3, useEffect as useEffect4, useMemo, useState as useState6 } from "react";
|
|
13349
13380
|
import { Popover as Popover2, PopoverDisclosure, usePopoverState } from "reakit/Popover";
|
|
13350
13381
|
|
|
13351
13382
|
// src/components/Input/styles/CaptionText.styles.ts
|
|
@@ -13996,6 +14027,8 @@ var InputInlineSelect = ({
|
|
|
13996
14027
|
// src/components/Input/InputKeywordSearch.tsx
|
|
13997
14028
|
import { CgClose as CgClose4 } from "@react-icons/all-files/cg/CgClose";
|
|
13998
14029
|
import { CgSearch } from "@react-icons/all-files/cg/CgSearch";
|
|
14030
|
+
import * as React12 from "react";
|
|
14031
|
+
import { useDebounce } from "react-use";
|
|
13999
14032
|
import { jsx as jsx53 } from "@emotion/react/jsx-runtime";
|
|
14000
14033
|
var InputKeywordSearch = ({
|
|
14001
14034
|
onSearchTextChanged,
|
|
@@ -14017,6 +14050,9 @@ var InputKeywordSearch = ({
|
|
|
14017
14050
|
e.preventDefault();
|
|
14018
14051
|
}
|
|
14019
14052
|
};
|
|
14053
|
+
const handleClear = () => {
|
|
14054
|
+
onClear ? onClear() : onSearchTextChanged("");
|
|
14055
|
+
};
|
|
14020
14056
|
return /* @__PURE__ */ jsx53(
|
|
14021
14057
|
Input,
|
|
14022
14058
|
{
|
|
@@ -14025,7 +14061,16 @@ var InputKeywordSearch = ({
|
|
|
14025
14061
|
placeholder,
|
|
14026
14062
|
showLabel: false,
|
|
14027
14063
|
value,
|
|
14028
|
-
icon: value ? /* @__PURE__ */ jsx53(
|
|
14064
|
+
icon: value ? /* @__PURE__ */ jsx53(
|
|
14065
|
+
"button",
|
|
14066
|
+
{
|
|
14067
|
+
css: inputSearchCloseBtn,
|
|
14068
|
+
onClick: handleClear,
|
|
14069
|
+
type: "button",
|
|
14070
|
+
"data-testid": "keyword-search-clear-button",
|
|
14071
|
+
children: /* @__PURE__ */ jsx53(Icon, { icon: CgClose4, iconColor: "red", size: "1rem" })
|
|
14072
|
+
}
|
|
14073
|
+
) : /* @__PURE__ */ jsx53(Icon, { icon: CgSearch, iconColor: "gray", size: "1rem" }),
|
|
14029
14074
|
onChange: handleSearchTextChanged,
|
|
14030
14075
|
onKeyPress: preventSubmitOnField,
|
|
14031
14076
|
disabled: disabled2,
|
|
@@ -14042,6 +14087,16 @@ var InputKeywordSearch = ({
|
|
|
14042
14087
|
}
|
|
14043
14088
|
);
|
|
14044
14089
|
};
|
|
14090
|
+
var DebouncedInputKeywordSearch = ({
|
|
14091
|
+
delay = 300,
|
|
14092
|
+
onSearchTextChanged,
|
|
14093
|
+
defaultValue,
|
|
14094
|
+
...props
|
|
14095
|
+
}) => {
|
|
14096
|
+
const [searchText, setSearchText] = React12.useState(defaultValue != null ? defaultValue : "");
|
|
14097
|
+
useDebounce(() => onSearchTextChanged(searchText), delay, [searchText]);
|
|
14098
|
+
return /* @__PURE__ */ jsx53(InputKeywordSearch, { ...props, value: searchText, onSearchTextChanged: setSearchText });
|
|
14099
|
+
};
|
|
14045
14100
|
|
|
14046
14101
|
// src/components/Input/InputSelect.tsx
|
|
14047
14102
|
import { forwardRef as forwardRef8 } from "react";
|
|
@@ -14110,7 +14165,7 @@ var InputSelect = forwardRef8(
|
|
|
14110
14165
|
|
|
14111
14166
|
// src/components/Input/InputTime.tsx
|
|
14112
14167
|
import { parseTime } from "@internationalized/date";
|
|
14113
|
-
import * as
|
|
14168
|
+
import * as React13 from "react";
|
|
14114
14169
|
import { useCallback as useCallback2 } from "react";
|
|
14115
14170
|
import {
|
|
14116
14171
|
DateInput,
|
|
@@ -14174,7 +14229,7 @@ function tryParseTime(isoTime) {
|
|
|
14174
14229
|
return void 0;
|
|
14175
14230
|
}
|
|
14176
14231
|
}
|
|
14177
|
-
var InputTime =
|
|
14232
|
+
var InputTime = React13.forwardRef(
|
|
14178
14233
|
({
|
|
14179
14234
|
id,
|
|
14180
14235
|
label,
|
|
@@ -14255,9 +14310,9 @@ var InputTime = React12.forwardRef(
|
|
|
14255
14310
|
InputTime.displayName = "InputTime";
|
|
14256
14311
|
|
|
14257
14312
|
// src/components/Input/InputToggle.tsx
|
|
14258
|
-
import * as
|
|
14313
|
+
import * as React14 from "react";
|
|
14259
14314
|
import { jsx as jsx56, jsxs as jsxs34 } from "@emotion/react/jsx-runtime";
|
|
14260
|
-
var InputToggle =
|
|
14315
|
+
var InputToggle = React14.forwardRef(
|
|
14261
14316
|
({
|
|
14262
14317
|
label,
|
|
14263
14318
|
type,
|
|
@@ -14567,9 +14622,9 @@ var DateTimePicker = ({
|
|
|
14567
14622
|
() => tryParseAbsoluteToDateString(maxVisible, value == null ? void 0 : value.timeZone),
|
|
14568
14623
|
[maxVisible, value == null ? void 0 : value.timeZone]
|
|
14569
14624
|
);
|
|
14570
|
-
const [draftDate, setDraftDate] =
|
|
14571
|
-
const [draftTime, setDraftTime] =
|
|
14572
|
-
const [draftTimeZone, setDraftTimeZone] =
|
|
14625
|
+
const [draftDate, setDraftDate] = useState6(null);
|
|
14626
|
+
const [draftTime, setDraftTime] = useState6(null);
|
|
14627
|
+
const [draftTimeZone, setDraftTimeZone] = useState6(() => {
|
|
14573
14628
|
const timeZone = (parsedValue == null ? void 0 : parsedValue.timeZone) || getLocalTimeZone2();
|
|
14574
14629
|
return TIMEZONE_OPTIONS.find(({ value: value2 }) => value2 === timeZone);
|
|
14575
14630
|
});
|
|
@@ -14704,7 +14759,7 @@ var DateTimePicker = ({
|
|
|
14704
14759
|
// src/components/DescriptionList/DescriptionList.tsx
|
|
14705
14760
|
import { TbCheck } from "@react-icons/all-files/tb/TbCheck";
|
|
14706
14761
|
import { TbMinus } from "@react-icons/all-files/tb/TbMinus";
|
|
14707
|
-
import
|
|
14762
|
+
import React15 from "react";
|
|
14708
14763
|
|
|
14709
14764
|
// src/components/DescriptionList/DescriptionList.styles.ts
|
|
14710
14765
|
import { css as css53 } from "@emotion/react";
|
|
@@ -14735,7 +14790,7 @@ var descriptionListValueStyles = css53`
|
|
|
14735
14790
|
|
|
14736
14791
|
// src/components/DescriptionList/DescriptionList.tsx
|
|
14737
14792
|
import { jsx as jsx62, jsxs as jsxs39 } from "@emotion/react/jsx-runtime";
|
|
14738
|
-
var DescriptionList =
|
|
14793
|
+
var DescriptionList = React15.forwardRef(
|
|
14739
14794
|
({ items, variant = "horizontal", ...listProps }, ref) => {
|
|
14740
14795
|
if (!(items == null ? void 0 : items.length)) {
|
|
14741
14796
|
return null;
|
|
@@ -14746,7 +14801,7 @@ var DescriptionList = React14.forwardRef(
|
|
|
14746
14801
|
ref,
|
|
14747
14802
|
css: variant === "vertical" ? descriptionListVertical : descriptionListHorizontal,
|
|
14748
14803
|
...listProps,
|
|
14749
|
-
children: items == null ? void 0 : items.map(({ label, value }) => /* @__PURE__ */ jsxs39(
|
|
14804
|
+
children: items == null ? void 0 : items.map(({ label, value }) => /* @__PURE__ */ jsxs39(React15.Fragment, { children: [
|
|
14750
14805
|
/* @__PURE__ */ jsx62("dt", { css: descriptionListLabelStyles, children: label }),
|
|
14751
14806
|
/* @__PURE__ */ jsx62("dd", { css: descriptionListValueStyles, children: typeof value === "boolean" ? /* @__PURE__ */ jsx62(DescriptionListValueBoolean, { value }) : value })
|
|
14752
14807
|
] }, label))
|
|
@@ -14762,7 +14817,7 @@ var DescriptionListValueBoolean = ({ value }) => {
|
|
|
14762
14817
|
};
|
|
14763
14818
|
|
|
14764
14819
|
// src/components/Details/Details.tsx
|
|
14765
|
-
import * as
|
|
14820
|
+
import * as React16 from "react";
|
|
14766
14821
|
|
|
14767
14822
|
// src/components/Details/Details.styles.ts
|
|
14768
14823
|
import { css as css54 } from "@emotion/react";
|
|
@@ -14821,9 +14876,9 @@ var Details = ({
|
|
|
14821
14876
|
onChange,
|
|
14822
14877
|
...props
|
|
14823
14878
|
}) => {
|
|
14824
|
-
const detailsRef =
|
|
14825
|
-
const [internalOpen, setInternalOpen] =
|
|
14826
|
-
const memoizedIsOpen =
|
|
14879
|
+
const detailsRef = React16.useRef(null);
|
|
14880
|
+
const [internalOpen, setInternalOpen] = React16.useState(isOpenByDefault);
|
|
14881
|
+
const memoizedIsOpen = React16.useMemo(() => {
|
|
14827
14882
|
return isOpen !== void 0 ? isOpen : internalOpen;
|
|
14828
14883
|
}, [internalOpen, isOpen]);
|
|
14829
14884
|
return /* @__PURE__ */ jsxs40(
|
|
@@ -14866,7 +14921,7 @@ var Details = ({
|
|
|
14866
14921
|
|
|
14867
14922
|
// src/components/Drawer/Drawer.tsx
|
|
14868
14923
|
import { CgChevronRight } from "@react-icons/all-files/cg/CgChevronRight";
|
|
14869
|
-
import
|
|
14924
|
+
import React18, { createContext as createContext4, useContext as useContext5, useEffect as useEffect5, useRef as useRef4, useState as useState9 } from "react";
|
|
14870
14925
|
import { createPortal } from "react-dom";
|
|
14871
14926
|
|
|
14872
14927
|
// src/components/Drawer/Drawer.styles.ts
|
|
@@ -14977,7 +15032,7 @@ var drawerWrapperOverlayStyles = css55`
|
|
|
14977
15032
|
`;
|
|
14978
15033
|
|
|
14979
15034
|
// src/components/Drawer/DrawerProvider.tsx
|
|
14980
|
-
import { createContext as createContext3, useCallback as useCallback4, useContext as useContext4, useRef as useRef3, useState as
|
|
15035
|
+
import { createContext as createContext3, useCallback as useCallback4, useContext as useContext4, useRef as useRef3, useState as useState8 } from "react";
|
|
14981
15036
|
import { jsx as jsx64 } from "@emotion/react/jsx-runtime";
|
|
14982
15037
|
var DrawerContext = createContext3({
|
|
14983
15038
|
providerId: "",
|
|
@@ -14995,9 +15050,9 @@ function renderDrawerId(drawer) {
|
|
|
14995
15050
|
return `${drawer.stackId ? `\u{1F95E} ${drawer.stackId} ` : ""}\u{1F194} ${drawer.id}${drawer.instanceKey ? ` \u{1F511} ${drawer.instanceKey}` : ""}`;
|
|
14996
15051
|
}
|
|
14997
15052
|
var DrawerProvider = ({ children }) => {
|
|
14998
|
-
const [drawersRegistry, setDrawersRegistry] =
|
|
15053
|
+
const [drawersRegistry, setDrawersRegistry] = useState8([]);
|
|
14999
15054
|
const providerId = useRef3(crypto.randomUUID());
|
|
15000
|
-
const [drawerTakeoverStackId, setDrawerTakeoverStackId] =
|
|
15055
|
+
const [drawerTakeoverStackId, setDrawerTakeoverStackId] = useState8(void 0);
|
|
15001
15056
|
useShortcut({
|
|
15002
15057
|
handler: () => {
|
|
15003
15058
|
var _a, _b;
|
|
@@ -15111,7 +15166,7 @@ var CurrentDrawerContext = createContext4({});
|
|
|
15111
15166
|
var useCurrentDrawer = () => {
|
|
15112
15167
|
return useContext5(CurrentDrawerContext);
|
|
15113
15168
|
};
|
|
15114
|
-
var Drawer =
|
|
15169
|
+
var Drawer = React18.forwardRef(
|
|
15115
15170
|
({ minWidth, maxWidth, position, leftAligned, ...drawerProps }, ref) => {
|
|
15116
15171
|
var _a;
|
|
15117
15172
|
const { stackId: inheritedStackId } = useCurrentDrawer();
|
|
@@ -15139,7 +15194,7 @@ var DrawerInner = ({
|
|
|
15139
15194
|
}) => {
|
|
15140
15195
|
const { registerDrawer, unregisterDrawer, providerId } = useDrawer();
|
|
15141
15196
|
const closeButtonRef = useRef4(null);
|
|
15142
|
-
const [rendererElement, setRendererElement] =
|
|
15197
|
+
const [rendererElement, setRendererElement] = useState9(null);
|
|
15143
15198
|
useEffect5(() => {
|
|
15144
15199
|
registerDrawer({
|
|
15145
15200
|
drawer: {
|
|
@@ -15412,7 +15467,7 @@ var IconButton = forwardRef12(
|
|
|
15412
15467
|
IconButton.displayName = "IconButton";
|
|
15413
15468
|
|
|
15414
15469
|
// src/components/Image/Image.tsx
|
|
15415
|
-
import { useCallback as useCallback5, useEffect as useEffect8, useState as
|
|
15470
|
+
import { useCallback as useCallback5, useEffect as useEffect8, useState as useState10 } from "react";
|
|
15416
15471
|
|
|
15417
15472
|
// src/components/Image/Image.styles.ts
|
|
15418
15473
|
import { css as css58 } from "@emotion/react";
|
|
@@ -15513,8 +15568,8 @@ function Image({
|
|
|
15513
15568
|
height,
|
|
15514
15569
|
...imgAttribs
|
|
15515
15570
|
}) {
|
|
15516
|
-
const [loading, setLoading] =
|
|
15517
|
-
const [loadErrorText, setLoadErrorText] =
|
|
15571
|
+
const [loading, setLoading] = useState10(true);
|
|
15572
|
+
const [loadErrorText, setLoadErrorText] = useState10("");
|
|
15518
15573
|
const errorText = "The text you provided is not a valid URL";
|
|
15519
15574
|
const updateImageSrc = useCallback5(() => {
|
|
15520
15575
|
let message = "";
|
|
@@ -15868,7 +15923,7 @@ var EditTeamIntegrationTile = ({
|
|
|
15868
15923
|
// src/components/Tiles/IntegrationComingSoon.tsx
|
|
15869
15924
|
import { css as css61 } from "@emotion/react";
|
|
15870
15925
|
import { CgHeart } from "@react-icons/all-files/cg/CgHeart";
|
|
15871
|
-
import { useEffect as useEffect9, useState as
|
|
15926
|
+
import { useEffect as useEffect9, useState as useState11 } from "react";
|
|
15872
15927
|
import { jsx as jsx76, jsxs as jsxs49 } from "@emotion/react/jsx-runtime";
|
|
15873
15928
|
var IntegrationComingSoon = ({
|
|
15874
15929
|
name,
|
|
@@ -15878,7 +15933,7 @@ var IntegrationComingSoon = ({
|
|
|
15878
15933
|
timing = 1e3,
|
|
15879
15934
|
...props
|
|
15880
15935
|
}) => {
|
|
15881
|
-
const [upVote, setUpVote] =
|
|
15936
|
+
const [upVote, setUpVote] = useState11(false);
|
|
15882
15937
|
const handleUpVoteInteraction = () => {
|
|
15883
15938
|
setUpVote((prev) => !prev);
|
|
15884
15939
|
onUpVoteClick();
|
|
@@ -17005,7 +17060,7 @@ var MediaCard = ({
|
|
|
17005
17060
|
|
|
17006
17061
|
// src/components/Modal/Modal.tsx
|
|
17007
17062
|
import { CgClose as CgClose5 } from "@react-icons/all-files/cg/CgClose";
|
|
17008
|
-
import
|
|
17063
|
+
import React21, { useEffect as useEffect11, useRef as useRef6 } from "react";
|
|
17009
17064
|
|
|
17010
17065
|
// src/components/Modal/Modal.styles.ts
|
|
17011
17066
|
import { css as css76 } from "@emotion/react";
|
|
@@ -17082,7 +17137,7 @@ var modalContentStyles = css76`
|
|
|
17082
17137
|
// src/components/Modal/Modal.tsx
|
|
17083
17138
|
import { jsx as jsx94, jsxs as jsxs63 } from "@emotion/react/jsx-runtime";
|
|
17084
17139
|
var defaultModalHeight = "51rem";
|
|
17085
|
-
var Modal =
|
|
17140
|
+
var Modal = React21.forwardRef(
|
|
17086
17141
|
({
|
|
17087
17142
|
header: header2,
|
|
17088
17143
|
children,
|
|
@@ -17711,7 +17766,7 @@ var ParameterGroup = forwardRef13(
|
|
|
17711
17766
|
import { forwardRef as forwardRef15, useDeferredValue } from "react";
|
|
17712
17767
|
|
|
17713
17768
|
// src/components/ParameterInputs/ParameterImagePreview.tsx
|
|
17714
|
-
import { useState as
|
|
17769
|
+
import { useState as useState12 } from "react";
|
|
17715
17770
|
import { createPortal as createPortal2 } from "react-dom";
|
|
17716
17771
|
|
|
17717
17772
|
// src/components/ParameterInputs/styles/ParameterImage.styles.ts
|
|
@@ -17754,7 +17809,7 @@ var previewModalImage = css82`
|
|
|
17754
17809
|
// src/components/ParameterInputs/ParameterImagePreview.tsx
|
|
17755
17810
|
import { Fragment as Fragment13, jsx as jsx100, jsxs as jsxs68 } from "@emotion/react/jsx-runtime";
|
|
17756
17811
|
function ParameterImagePreview({ imageSrc }) {
|
|
17757
|
-
const [showModal, setShowModal] =
|
|
17812
|
+
const [showModal, setShowModal] = useState12(false);
|
|
17758
17813
|
return imageSrc ? /* @__PURE__ */ jsxs68("div", { css: previewWrapper, children: [
|
|
17759
17814
|
/* @__PURE__ */ jsx100(PreviewImageModal, { open: showModal, imageSrc, onRequestClose: () => setShowModal(false) }),
|
|
17760
17815
|
/* @__PURE__ */ jsx100(
|
|
@@ -17786,7 +17841,7 @@ var PreviewImageModal = ({ open, onRequestClose, imageSrc }) => {
|
|
|
17786
17841
|
|
|
17787
17842
|
// src/components/ParameterInputs/ParameterShell.tsx
|
|
17788
17843
|
import { css as css84 } from "@emotion/react";
|
|
17789
|
-
import { useState as
|
|
17844
|
+
import { useState as useState13 } from "react";
|
|
17790
17845
|
|
|
17791
17846
|
// src/components/ParameterInputs/ParameterLabel.tsx
|
|
17792
17847
|
import { jsx as jsx101 } from "@emotion/react/jsx-runtime";
|
|
@@ -17907,7 +17962,7 @@ var ParameterShell = ({
|
|
|
17907
17962
|
isParameterGroup = false,
|
|
17908
17963
|
...props
|
|
17909
17964
|
}) => {
|
|
17910
|
-
const [manualErrorMessage, setManualErrorMessage] =
|
|
17965
|
+
const [manualErrorMessage, setManualErrorMessage] = useState13(void 0);
|
|
17911
17966
|
const setErrorMessage = (message) => setManualErrorMessage(message);
|
|
17912
17967
|
const errorMessaging = errorMessage || manualErrorMessage;
|
|
17913
17968
|
return /* @__PURE__ */ jsxs69("div", { css: inputContainer2, ...props, id, children: [
|
|
@@ -18525,7 +18580,7 @@ import {
|
|
|
18525
18580
|
ElementNode as ElementNode2,
|
|
18526
18581
|
FOCUS_COMMAND
|
|
18527
18582
|
} from "lexical";
|
|
18528
|
-
import { useCallback as useCallback8, useEffect as useEffect13, useRef as useRef7, useState as
|
|
18583
|
+
import { useCallback as useCallback8, useEffect as useEffect13, useRef as useRef7, useState as useState14 } from "react";
|
|
18529
18584
|
|
|
18530
18585
|
// src/components/ParameterInputs/rich-text/utils.ts
|
|
18531
18586
|
import { $isAtNodeEnd } from "@lexical/selection";
|
|
@@ -18868,10 +18923,10 @@ function LinkNodePlugin({ onConnectLink, getBoundPath }) {
|
|
|
18868
18923
|
return path;
|
|
18869
18924
|
};
|
|
18870
18925
|
const [editor] = useLexicalComposerContext2();
|
|
18871
|
-
const [linkPopoverState, setLinkPopoverState] =
|
|
18926
|
+
const [linkPopoverState, setLinkPopoverState] = useState14();
|
|
18872
18927
|
const linkPopoverElRef = useRef7(null);
|
|
18873
|
-
const [isEditorFocused, setIsEditorFocused] =
|
|
18874
|
-
const [isLinkPopoverFocused, setIsLinkPopoverFocused] =
|
|
18928
|
+
const [isEditorFocused, setIsEditorFocused] = useState14(false);
|
|
18929
|
+
const [isLinkPopoverFocused, setIsLinkPopoverFocused] = useState14(false);
|
|
18875
18930
|
useEffect13(() => {
|
|
18876
18931
|
if (!isEditorFocused && !isLinkPopoverFocused) {
|
|
18877
18932
|
setLinkPopoverState(void 0);
|
|
@@ -19128,7 +19183,7 @@ import {
|
|
|
19128
19183
|
FORMAT_TEXT_COMMAND,
|
|
19129
19184
|
SELECTION_CHANGE_COMMAND
|
|
19130
19185
|
} from "lexical";
|
|
19131
|
-
import { useCallback as useCallback9, useEffect as useEffect15, useMemo as useMemo4, useState as
|
|
19186
|
+
import { useCallback as useCallback9, useEffect as useEffect15, useMemo as useMemo4, useState as useState15 } from "react";
|
|
19132
19187
|
import { Fragment as Fragment17, jsx as jsx110, jsxs as jsxs74 } from "@emotion/react/jsx-runtime";
|
|
19133
19188
|
var toolbar = css87`
|
|
19134
19189
|
background: var(--gray-50);
|
|
@@ -19439,7 +19494,7 @@ var useRichTextToolbarState = ({ config }) => {
|
|
|
19439
19494
|
const enabledBuiltInFormatsWithoutIcon = enabledBuiltInFormats.filter(
|
|
19440
19495
|
(format) => !FORMATS_WITH_ICON.has(format.type)
|
|
19441
19496
|
);
|
|
19442
|
-
const [activeFormats, setActiveFormats] =
|
|
19497
|
+
const [activeFormats, setActiveFormats] = useState15([]);
|
|
19443
19498
|
const visibleFormatsWithIcon = useMemo4(() => {
|
|
19444
19499
|
const visibleFormats = /* @__PURE__ */ new Set();
|
|
19445
19500
|
activeFormats.filter((type) => FORMATS_WITH_ICON.has(type)).forEach((type) => {
|
|
@@ -19460,7 +19515,7 @@ var useRichTextToolbarState = ({ config }) => {
|
|
|
19460
19515
|
});
|
|
19461
19516
|
return richTextBuiltInFormats.filter((format) => visibleFormats.has(format.type));
|
|
19462
19517
|
}, [activeFormats, enabledBuiltInFormatsWithoutIcon]);
|
|
19463
|
-
const [activeElement, setActiveElement] =
|
|
19518
|
+
const [activeElement, setActiveElement] = useState15("paragraph");
|
|
19464
19519
|
const enabledTextualElements = enabledBuiltInElements.filter(
|
|
19465
19520
|
(element) => TEXTUAL_ELEMENTS.includes(element.type)
|
|
19466
19521
|
);
|
|
@@ -19475,7 +19530,7 @@ var useRichTextToolbarState = ({ config }) => {
|
|
|
19475
19530
|
}
|
|
19476
19531
|
);
|
|
19477
19532
|
}, [activeElement, (_a = config == null ? void 0 : config.elements) == null ? void 0 : _a.builtIn, enabledTextualElements]);
|
|
19478
|
-
const [isLink, setIsLink] =
|
|
19533
|
+
const [isLink, setIsLink] = useState15(false);
|
|
19479
19534
|
const linkElementVisible = useMemo4(() => {
|
|
19480
19535
|
return enabledBuiltInElements.some((element) => element.type === "link") || isLink;
|
|
19481
19536
|
}, [isLink, enabledBuiltInElements]);
|
|
@@ -20057,134 +20112,1279 @@ var ProgressListItem = ({
|
|
|
20057
20112
|
] });
|
|
20058
20113
|
};
|
|
20059
20114
|
|
|
20060
|
-
// src/components/
|
|
20061
|
-
|
|
20062
|
-
|
|
20063
|
-
|
|
20115
|
+
// src/components/SearchAndFilter/constants.ts
|
|
20116
|
+
var NUMBER_OPERATORS = [
|
|
20117
|
+
{
|
|
20118
|
+
label: "equals...",
|
|
20119
|
+
symbol: "=",
|
|
20120
|
+
value: "eq",
|
|
20121
|
+
editorType: "number"
|
|
20122
|
+
},
|
|
20123
|
+
{
|
|
20124
|
+
label: "does not equal...",
|
|
20125
|
+
symbol: "\u2260",
|
|
20126
|
+
value: "neq",
|
|
20127
|
+
editorType: "number"
|
|
20128
|
+
},
|
|
20129
|
+
{
|
|
20130
|
+
label: "greater than...",
|
|
20131
|
+
symbol: ">",
|
|
20132
|
+
value: "gt",
|
|
20133
|
+
editorType: "number"
|
|
20134
|
+
},
|
|
20135
|
+
{
|
|
20136
|
+
label: "greater than or equal to...",
|
|
20137
|
+
symbol: "\u2265",
|
|
20138
|
+
value: "gte",
|
|
20139
|
+
editorType: "number"
|
|
20140
|
+
},
|
|
20141
|
+
{
|
|
20142
|
+
label: "less than...",
|
|
20143
|
+
symbol: "<",
|
|
20144
|
+
value: "lt",
|
|
20145
|
+
editorType: "number"
|
|
20146
|
+
},
|
|
20147
|
+
{
|
|
20148
|
+
label: "less than or equal to...",
|
|
20149
|
+
symbol: "\u2264",
|
|
20150
|
+
value: "lte",
|
|
20151
|
+
editorType: "number"
|
|
20152
|
+
},
|
|
20153
|
+
{
|
|
20154
|
+
label: "is empty...",
|
|
20155
|
+
value: "ndef",
|
|
20156
|
+
editorType: "empty"
|
|
20157
|
+
},
|
|
20158
|
+
{
|
|
20159
|
+
label: "is between...",
|
|
20160
|
+
value: "between",
|
|
20161
|
+
editorType: "numberRange"
|
|
20162
|
+
},
|
|
20163
|
+
{
|
|
20164
|
+
label: "is not empty...",
|
|
20165
|
+
value: "def",
|
|
20166
|
+
editorType: "empty"
|
|
20167
|
+
},
|
|
20168
|
+
{
|
|
20169
|
+
label: "is not between...",
|
|
20170
|
+
value: "nbetween",
|
|
20171
|
+
editorType: "numberRange"
|
|
20172
|
+
}
|
|
20173
|
+
];
|
|
20174
|
+
var DATE_OPERATORS = [
|
|
20175
|
+
{
|
|
20176
|
+
label: "is...",
|
|
20177
|
+
value: "eq",
|
|
20178
|
+
editorType: "date"
|
|
20179
|
+
},
|
|
20180
|
+
{
|
|
20181
|
+
label: "is between...",
|
|
20182
|
+
value: "between",
|
|
20183
|
+
editorType: "dateRange"
|
|
20184
|
+
},
|
|
20185
|
+
{
|
|
20186
|
+
label: "is before...",
|
|
20187
|
+
value: "lt",
|
|
20188
|
+
editorType: "date"
|
|
20189
|
+
},
|
|
20190
|
+
{
|
|
20191
|
+
label: "is after...",
|
|
20192
|
+
value: "gt",
|
|
20193
|
+
editorType: "date"
|
|
20194
|
+
},
|
|
20195
|
+
{
|
|
20196
|
+
label: "is on or before...",
|
|
20197
|
+
value: "lte",
|
|
20198
|
+
editorType: "date"
|
|
20199
|
+
},
|
|
20200
|
+
{
|
|
20201
|
+
label: "is on or after...",
|
|
20202
|
+
value: "gte",
|
|
20203
|
+
editorType: "date"
|
|
20204
|
+
},
|
|
20205
|
+
{
|
|
20206
|
+
label: "is empty...",
|
|
20207
|
+
value: "ndef",
|
|
20208
|
+
editorType: "empty"
|
|
20209
|
+
},
|
|
20210
|
+
{
|
|
20211
|
+
label: "is not...",
|
|
20212
|
+
value: "neq",
|
|
20213
|
+
editorType: "date"
|
|
20214
|
+
},
|
|
20215
|
+
{
|
|
20216
|
+
label: "is not between...",
|
|
20217
|
+
value: "nbetween",
|
|
20218
|
+
editorType: "dateRange"
|
|
20219
|
+
},
|
|
20220
|
+
{
|
|
20221
|
+
label: "is not empty...",
|
|
20222
|
+
value: "def",
|
|
20223
|
+
editorType: "empty"
|
|
20224
|
+
}
|
|
20225
|
+
];
|
|
20226
|
+
var TEXTBOX_OPERATORS = [
|
|
20227
|
+
{
|
|
20228
|
+
label: "is...",
|
|
20229
|
+
value: "eq",
|
|
20230
|
+
editorType: "text"
|
|
20231
|
+
},
|
|
20232
|
+
{
|
|
20233
|
+
label: "is empty...",
|
|
20234
|
+
value: "ndef",
|
|
20235
|
+
editorType: "empty"
|
|
20236
|
+
},
|
|
20237
|
+
{
|
|
20238
|
+
label: "contains...",
|
|
20239
|
+
value: "match",
|
|
20240
|
+
editorType: "text"
|
|
20241
|
+
},
|
|
20242
|
+
{
|
|
20243
|
+
label: "is not...",
|
|
20244
|
+
value: "neq",
|
|
20245
|
+
editorType: "text"
|
|
20246
|
+
},
|
|
20247
|
+
{
|
|
20248
|
+
label: "is not empty...",
|
|
20249
|
+
value: "def",
|
|
20250
|
+
editorType: "empty"
|
|
20251
|
+
}
|
|
20252
|
+
];
|
|
20253
|
+
var RICHTEXT_OPERATORS = [
|
|
20254
|
+
{
|
|
20255
|
+
label: "is empty...",
|
|
20256
|
+
value: "ndef",
|
|
20257
|
+
editorType: "empty"
|
|
20258
|
+
},
|
|
20259
|
+
{
|
|
20260
|
+
label: "contains...",
|
|
20261
|
+
value: "match",
|
|
20262
|
+
editorType: "text"
|
|
20263
|
+
},
|
|
20264
|
+
{
|
|
20265
|
+
label: "is not empty...",
|
|
20266
|
+
value: "def",
|
|
20267
|
+
editorType: "empty"
|
|
20268
|
+
}
|
|
20269
|
+
];
|
|
20270
|
+
var CHECKBOX_OPERATORS = [
|
|
20271
|
+
{
|
|
20272
|
+
label: "is checked...",
|
|
20273
|
+
value: "def",
|
|
20274
|
+
editorType: "empty"
|
|
20275
|
+
},
|
|
20276
|
+
{
|
|
20277
|
+
label: "is not checked...",
|
|
20278
|
+
value: "ndef",
|
|
20279
|
+
editorType: "empty"
|
|
20280
|
+
}
|
|
20281
|
+
];
|
|
20282
|
+
var STATUS_OPERATORS = [
|
|
20283
|
+
{
|
|
20284
|
+
label: "is...",
|
|
20285
|
+
value: "eq",
|
|
20286
|
+
editorType: "statusSingleChoice"
|
|
20287
|
+
},
|
|
20288
|
+
{
|
|
20289
|
+
label: "contains...",
|
|
20290
|
+
value: "match",
|
|
20291
|
+
editorType: "statusMultiChoice"
|
|
20292
|
+
},
|
|
20293
|
+
{
|
|
20294
|
+
label: "is not...",
|
|
20295
|
+
value: "neq",
|
|
20296
|
+
editorType: "statusSingleChoice"
|
|
20297
|
+
},
|
|
20298
|
+
{
|
|
20299
|
+
label: "does not contain...",
|
|
20300
|
+
value: "nin",
|
|
20301
|
+
editorType: "statusMultiChoice"
|
|
20302
|
+
}
|
|
20303
|
+
];
|
|
20304
|
+
var SYSTEM_FIELD_OPERATORS = [
|
|
20305
|
+
{
|
|
20306
|
+
label: "is...",
|
|
20307
|
+
value: "eq",
|
|
20308
|
+
editorType: "singleChoice"
|
|
20309
|
+
},
|
|
20310
|
+
{
|
|
20311
|
+
label: "is any of...",
|
|
20312
|
+
value: "in",
|
|
20313
|
+
editorType: "multiChoice"
|
|
20314
|
+
},
|
|
20315
|
+
{
|
|
20316
|
+
label: "is not...",
|
|
20317
|
+
value: "neq",
|
|
20318
|
+
editorType: "singleChoice"
|
|
20319
|
+
},
|
|
20320
|
+
{
|
|
20321
|
+
label: "is none of...",
|
|
20322
|
+
value: "nin",
|
|
20323
|
+
editorType: "multiChoice"
|
|
20324
|
+
}
|
|
20325
|
+
];
|
|
20326
|
+
var CONTENT_TYPE_OPERATORS = [
|
|
20327
|
+
{
|
|
20328
|
+
label: "is...",
|
|
20329
|
+
value: "eq",
|
|
20330
|
+
editorType: "singleChoice"
|
|
20331
|
+
},
|
|
20332
|
+
{
|
|
20333
|
+
label: "is any of...",
|
|
20334
|
+
value: "in",
|
|
20335
|
+
editorType: "multiChoice"
|
|
20336
|
+
},
|
|
20337
|
+
{
|
|
20338
|
+
label: "is not...",
|
|
20339
|
+
value: "neq",
|
|
20340
|
+
editorType: "singleChoice"
|
|
20341
|
+
},
|
|
20342
|
+
{
|
|
20343
|
+
label: "is none of...",
|
|
20344
|
+
value: "nin",
|
|
20345
|
+
editorType: "multiChoice"
|
|
20346
|
+
}
|
|
20347
|
+
];
|
|
20348
|
+
var LOCALE_OPERATORS = [
|
|
20349
|
+
{
|
|
20350
|
+
label: "is...",
|
|
20351
|
+
value: "eq",
|
|
20352
|
+
editorType: "singleChoice"
|
|
20353
|
+
},
|
|
20354
|
+
{
|
|
20355
|
+
label: "is any of...",
|
|
20356
|
+
value: "in",
|
|
20357
|
+
editorType: "multiChoice"
|
|
20358
|
+
},
|
|
20359
|
+
{
|
|
20360
|
+
label: "is not...",
|
|
20361
|
+
value: "neq",
|
|
20362
|
+
editorType: "singleChoice"
|
|
20363
|
+
},
|
|
20364
|
+
{
|
|
20365
|
+
label: "is none of...",
|
|
20366
|
+
value: "nin",
|
|
20367
|
+
editorType: "multiChoice"
|
|
20368
|
+
}
|
|
20369
|
+
];
|
|
20064
20370
|
|
|
20065
|
-
// src/components/
|
|
20371
|
+
// src/components/SearchAndFilter/styles/SearchAndFilter.styles.ts
|
|
20066
20372
|
import { css as css92 } from "@emotion/react";
|
|
20067
|
-
var
|
|
20068
|
-
|
|
20069
|
-
|
|
20070
|
-
|
|
20071
|
-
|
|
20072
|
-
|
|
20073
|
-
|
|
20074
|
-
|
|
20373
|
+
var SearchAndFilterContainer = css92``;
|
|
20374
|
+
var SearchAndFilterControlsWrapper = css92`
|
|
20375
|
+
align-items: stretch;
|
|
20376
|
+
display: grid;
|
|
20377
|
+
grid-template-columns: auto 1fr 1fr;
|
|
20378
|
+
gap: var(--spacing-base);
|
|
20379
|
+
`;
|
|
20380
|
+
var ConditionalFilterRow = css92`
|
|
20381
|
+
display: grid;
|
|
20382
|
+
grid-template-columns: 35px 1fr;
|
|
20383
|
+
gap: var(--spacing-sm);
|
|
20384
|
+
padding: 0 var(--spacing-sm);
|
|
20385
|
+
margin-left: var(--spacing-base);
|
|
20075
20386
|
|
|
20076
|
-
|
|
20077
|
-
|
|
20078
|
-
|
|
20079
|
-
|
|
20080
|
-
|
|
20081
|
-
|
|
20082
|
-
|
|
20083
|
-
|
|
20084
|
-
|
|
20387
|
+
${cq("380px")} {
|
|
20388
|
+
align-items: center;
|
|
20389
|
+
}
|
|
20390
|
+
|
|
20391
|
+
&:first-of-type {
|
|
20392
|
+
margin-left: 0;
|
|
20393
|
+
grid-template-columns: 50px 1fr;
|
|
20394
|
+
}
|
|
20395
|
+
|
|
20396
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
20397
|
+
animation: ${fadeInLtr} var(--duration-fast) var(--timing-ease-out);
|
|
20398
|
+
}
|
|
20085
20399
|
`;
|
|
20086
|
-
var
|
|
20400
|
+
var ConditionalInputRow = css92`
|
|
20401
|
+
display: flex;
|
|
20402
|
+
gap: var(--spacing-sm);
|
|
20087
20403
|
flex-direction: column;
|
|
20088
|
-
|
|
20089
|
-
|
|
20090
|
-
|
|
20091
|
-
|
|
20092
|
-
`;
|
|
20093
|
-
var segmentedControlItemStyles = css92`
|
|
20094
|
-
&:first-of-type label {
|
|
20095
|
-
border-radius: var(--segmented-control-first-border-radius);
|
|
20404
|
+
|
|
20405
|
+
${cq("380px")} {
|
|
20406
|
+
align-items: center;
|
|
20407
|
+
flex-direction: row;
|
|
20096
20408
|
}
|
|
20097
|
-
|
|
20098
|
-
|
|
20409
|
+
${cq("580px")} {
|
|
20410
|
+
display: grid;
|
|
20411
|
+
grid-template-columns: repeat(4, minmax(160px, auto)) 32px;
|
|
20099
20412
|
}
|
|
20100
20413
|
`;
|
|
20101
|
-
var
|
|
20102
|
-
${
|
|
20414
|
+
var SearchInput = css92`
|
|
20415
|
+
${input("nowrap")}
|
|
20416
|
+
border-radius: var(--rounded-full);
|
|
20417
|
+
padding: var(--spacing-sm) var(--spacing-base);
|
|
20418
|
+
font-size: var(--fs-sm);
|
|
20419
|
+
padding-right: var(--spacing-2xl);
|
|
20103
20420
|
`;
|
|
20104
|
-
var
|
|
20105
|
-
position: relative;
|
|
20106
|
-
display: flex;
|
|
20421
|
+
var FilterButton = css92`
|
|
20107
20422
|
align-items: center;
|
|
20108
|
-
|
|
20109
|
-
|
|
20110
|
-
|
|
20111
|
-
|
|
20112
|
-
|
|
20113
|
-
|
|
20114
|
-
|
|
20115
|
-
|
|
20116
|
-
|
|
20117
|
-
|
|
20118
|
-
&:has(:checked:not(:disabled)) {
|
|
20119
|
-
background-color: var(--segmented-control-selected-color);
|
|
20120
|
-
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
20121
|
-
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
20122
|
-
color: white;
|
|
20123
|
-
-webkit-text-stroke-width: thin;
|
|
20124
|
-
z-index: 0;
|
|
20125
|
-
}
|
|
20423
|
+
background: var(--white);
|
|
20424
|
+
border: 1px solid var(--gray-300);
|
|
20425
|
+
border-radius: var(--rounded-full);
|
|
20426
|
+
color: var(--typography-base);
|
|
20427
|
+
display: flex;
|
|
20428
|
+
gap: var(--spacing-sm);
|
|
20429
|
+
padding: var(--spacing-sm) var(--spacing-base);
|
|
20430
|
+
transition: color var(--duration-fast) var(--timing-ease-out),
|
|
20431
|
+
background-color var(--duration-fast) var(--timing-ease-out);
|
|
20126
20432
|
|
|
20127
|
-
|
|
20128
|
-
|
|
20433
|
+
svg {
|
|
20434
|
+
color: var(--gray-300);
|
|
20435
|
+
transition: color var(--duration-fast) var(--timing-ease-out);
|
|
20129
20436
|
}
|
|
20130
20437
|
|
|
20131
|
-
&:
|
|
20132
|
-
|
|
20133
|
-
|
|
20134
|
-
|
|
20438
|
+
&:focus,
|
|
20439
|
+
&:hover {
|
|
20440
|
+
outline: none;
|
|
20441
|
+
background: var(--gray-300);
|
|
20135
20442
|
|
|
20136
|
-
|
|
20137
|
-
|
|
20138
|
-
|
|
20443
|
+
svg {
|
|
20444
|
+
color: var(--typography-base);
|
|
20445
|
+
}
|
|
20139
20446
|
}
|
|
20140
20447
|
|
|
20141
|
-
|
|
20142
|
-
|
|
20143
|
-
// once Firefox supports :has selector
|
|
20144
|
-
@supports not selector(:has(*)) {
|
|
20145
|
-
// equivalent to &:has(:checked:not(:disabled))
|
|
20146
|
-
${checked && !disabled2 ? `
|
|
20147
|
-
background-color: var(--segmented-control-selected-color);
|
|
20148
|
-
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
20149
|
-
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
20150
|
-
color: white;
|
|
20151
|
-
-webkit-text-stroke-width: thin;
|
|
20152
|
-
z-index: 0;` : void 0}
|
|
20448
|
+
:where([aria-expanded='true']) {
|
|
20449
|
+
background: var(--purple-rain-100);
|
|
20153
20450
|
|
|
20154
|
-
|
|
20155
|
-
|
|
20156
|
-
${!checked && !disabled2 ? `background-color: var(--gray-100);` : void 0}
|
|
20451
|
+
svg {
|
|
20452
|
+
color: var(--typography-base);
|
|
20157
20453
|
}
|
|
20158
|
-
|
|
20159
|
-
|
|
20160
|
-
|
|
20161
|
-
|
|
20162
|
-
|
|
20163
|
-
|
|
20164
|
-
|
|
20454
|
+
}
|
|
20455
|
+
`;
|
|
20456
|
+
var FilterButtonWithOptions = css92`
|
|
20457
|
+
background: var(--purple-rain-100);
|
|
20458
|
+
color: var(--typography-base);
|
|
20459
|
+
svg {
|
|
20460
|
+
color: var(--typography-base);
|
|
20461
|
+
}
|
|
20462
|
+
`;
|
|
20463
|
+
var SearchIcon = css92`
|
|
20464
|
+
color: var(--icon-color);
|
|
20465
|
+
position: absolute;
|
|
20466
|
+
inset: 0 var(--spacing-base) 0 auto;
|
|
20467
|
+
margin: auto;
|
|
20468
|
+
transition: color var(--duration-fast) var(--timing-ease-out);
|
|
20469
|
+
`;
|
|
20470
|
+
var AddConditionalBtn = css92`
|
|
20471
|
+
align-items: center;
|
|
20472
|
+
background: transparent;
|
|
20473
|
+
border: none;
|
|
20474
|
+
color: var(--primary-action-default);
|
|
20475
|
+
display: flex;
|
|
20476
|
+
gap: var(--spacing-sm);
|
|
20477
|
+
transition: color var(--duration-fast) var(--timing-ease-out);
|
|
20478
|
+
padding: 0;
|
|
20479
|
+
font-size: var(--fs-sm);
|
|
20480
|
+
|
|
20481
|
+
&:hover,
|
|
20482
|
+
&:focus {
|
|
20483
|
+
color: var(--primary-action-hover);
|
|
20484
|
+
}
|
|
20485
|
+
`;
|
|
20486
|
+
var Title = css92`
|
|
20487
|
+
color: var(--typography-light);
|
|
20488
|
+
`;
|
|
20489
|
+
var ResetConditionsBtn = css92`
|
|
20490
|
+
background: transparent;
|
|
20491
|
+
border: none;
|
|
20492
|
+
color: var(--action-destructive-default);
|
|
20493
|
+
transition: color var(--duration-fast) var(--timing-ease-out);
|
|
20494
|
+
padding: 0;
|
|
20495
|
+
|
|
20496
|
+
&:hover,
|
|
20497
|
+
&:focus {
|
|
20498
|
+
color: var(--action-destructive-hover);
|
|
20499
|
+
}
|
|
20500
|
+
`;
|
|
20501
|
+
var IconBtn = css92`
|
|
20502
|
+
background: transparent;
|
|
20503
|
+
border: none;
|
|
20504
|
+
padding: var(--spacing-sm);
|
|
20505
|
+
`;
|
|
20506
|
+
var CloseBtn = css92`
|
|
20507
|
+
color: var(--gray-500);
|
|
20508
|
+
background: transparent;
|
|
20509
|
+
border: none;
|
|
20510
|
+
padding: 0;
|
|
20511
|
+
position: absolute;
|
|
20512
|
+
top: var(--spacing-base);
|
|
20513
|
+
right: var(--spacing-base);
|
|
20514
|
+
`;
|
|
20515
|
+
var SearchAndFilterOptionsContainer = css92`
|
|
20516
|
+
background: var(--gray-50);
|
|
20517
|
+
border: 1px solid var(--gray-300);
|
|
20518
|
+
border-radius: var(--rounded-base);
|
|
20519
|
+
container-type: inline-size;
|
|
20520
|
+
display: flex;
|
|
20521
|
+
flex-direction: column;
|
|
20522
|
+
gap: var(--spacing-sm);
|
|
20523
|
+
padding: var(--spacing-md) var(--spacing-md) var(--spacing-base);
|
|
20524
|
+
will-change: height;
|
|
20525
|
+
position: relative;
|
|
20526
|
+
z-index: var(--z-50);
|
|
20527
|
+
`;
|
|
20528
|
+
var SearchAndFilterOptionsInnerContainer = css92`
|
|
20529
|
+
display: flex;
|
|
20530
|
+
flex-direction: column;
|
|
20531
|
+
gap: var(--spacing-sm);
|
|
20532
|
+
// TODO: this is nice for responsive but is causing issue with the dropdown
|
|
20533
|
+
// ${scrollbarStyles}
|
|
20534
|
+
// overflow-x: auto;
|
|
20535
|
+
// overflow-y: visible;
|
|
20536
|
+
`;
|
|
20537
|
+
var SearchAndFilterButtonGroup = css92`
|
|
20538
|
+
margin-top: var(--spacing-base);
|
|
20539
|
+
`;
|
|
20540
|
+
var SelectOpen = css92`
|
|
20541
|
+
position: relative;
|
|
20542
|
+
.input-combobox__menu {
|
|
20543
|
+
background: red;
|
|
20544
|
+
z-index: 99999 !important;
|
|
20545
|
+
}
|
|
20546
|
+
`;
|
|
20547
|
+
|
|
20548
|
+
// src/components/SearchAndFilter/FilterButton.tsx
|
|
20549
|
+
import { jsx as jsx117, jsxs as jsxs79 } from "@emotion/react/jsx-runtime";
|
|
20550
|
+
var FilterButton2 = ({ text = "Filters", filterCount, ...props }) => {
|
|
20551
|
+
return /* @__PURE__ */ jsxs79(
|
|
20552
|
+
"button",
|
|
20553
|
+
{
|
|
20554
|
+
type: "button",
|
|
20555
|
+
css: [FilterButton, filterCount ? FilterButtonWithOptions : void 0],
|
|
20556
|
+
...props,
|
|
20557
|
+
children: [
|
|
20558
|
+
/* @__PURE__ */ jsx117(Icon, { icon: "filter-add", iconColor: "currentColor", size: "1rem" }),
|
|
20559
|
+
text,
|
|
20560
|
+
filterCount ? /* @__PURE__ */ jsx117(Counter, { count: filterCount, bgColor: "var(--white)" }) : null
|
|
20561
|
+
]
|
|
20562
|
+
}
|
|
20563
|
+
);
|
|
20564
|
+
};
|
|
20565
|
+
|
|
20566
|
+
// src/components/SearchAndFilter/hooks/useSearchAndFilter.tsx
|
|
20567
|
+
import {
|
|
20568
|
+
createContext as createContext6,
|
|
20569
|
+
useCallback as useCallback10,
|
|
20570
|
+
useContext as useContext7,
|
|
20571
|
+
useDeferredValue as useDeferredValue2,
|
|
20572
|
+
useEffect as useEffect17,
|
|
20573
|
+
useMemo as useMemo6,
|
|
20574
|
+
useState as useState16
|
|
20575
|
+
} from "react";
|
|
20576
|
+
import { jsx as jsx118 } from "@emotion/react/jsx-runtime";
|
|
20577
|
+
var SearchAndFilterContext = createContext6({
|
|
20578
|
+
searchTerm: "",
|
|
20579
|
+
setSearchTerm: () => {
|
|
20580
|
+
},
|
|
20581
|
+
filterVisibility: false,
|
|
20582
|
+
setFilterVisibility: () => {
|
|
20583
|
+
},
|
|
20584
|
+
filters: [],
|
|
20585
|
+
setFilters: () => {
|
|
20586
|
+
},
|
|
20587
|
+
handleAddFilter: () => {
|
|
20588
|
+
},
|
|
20589
|
+
handleResetFilters: () => {
|
|
20590
|
+
},
|
|
20591
|
+
handleDeleteFilter: () => {
|
|
20592
|
+
},
|
|
20593
|
+
filterOptions: [],
|
|
20594
|
+
validFilterQuery: []
|
|
20595
|
+
});
|
|
20596
|
+
var SearchAndFilterProvider = ({
|
|
20597
|
+
filters,
|
|
20598
|
+
filterOptions,
|
|
20599
|
+
onChange,
|
|
20600
|
+
children
|
|
20601
|
+
}) => {
|
|
20602
|
+
const [searchTerm, setSearchTerm] = useState16("");
|
|
20603
|
+
const deferredSearchTerm = useDeferredValue2(searchTerm);
|
|
20604
|
+
const [filterVisibility, setFilterVisibility] = useState16(false);
|
|
20605
|
+
const handleSearchTerm = useCallback10((term) => setSearchTerm(term), [setSearchTerm]);
|
|
20606
|
+
const handleToggleFilterVisibilty = useCallback10(
|
|
20607
|
+
(visible) => setFilterVisibility(visible),
|
|
20608
|
+
[setFilterVisibility]
|
|
20609
|
+
);
|
|
20610
|
+
const handleAddFilter = useCallback10(() => {
|
|
20611
|
+
onChange([...filters, { field: "", operator: "", value: "" }]);
|
|
20612
|
+
}, [filters, onChange]);
|
|
20613
|
+
const handleResetFilters = useCallback10(() => {
|
|
20614
|
+
onChange([]);
|
|
20615
|
+
}, [onChange]);
|
|
20616
|
+
const handleDeleteFilter = useCallback10(
|
|
20617
|
+
(index) => {
|
|
20618
|
+
const remainingFilters = filters.filter((_, i) => i !== index);
|
|
20619
|
+
onChange(remainingFilters);
|
|
20620
|
+
},
|
|
20621
|
+
[filters, onChange]
|
|
20622
|
+
);
|
|
20623
|
+
const validFilterQuery = useMemo6(() => {
|
|
20624
|
+
const hasValidFilters = filters.every((f) => f.field && f.operator && f.value);
|
|
20625
|
+
if (hasValidFilters) {
|
|
20626
|
+
return filters;
|
|
20627
|
+
}
|
|
20628
|
+
}, [filters]);
|
|
20629
|
+
useEffect17(() => {
|
|
20630
|
+
if (filterVisibility) {
|
|
20631
|
+
const handleEscKeyFilterClose = (e) => {
|
|
20632
|
+
if (e.key === "Escape") {
|
|
20633
|
+
setFilterVisibility(false);
|
|
20634
|
+
}
|
|
20635
|
+
};
|
|
20636
|
+
document.addEventListener("keydown", (e) => handleEscKeyFilterClose(e));
|
|
20637
|
+
return () => {
|
|
20638
|
+
document.removeEventListener("keydown", (e) => handleEscKeyFilterClose(e));
|
|
20639
|
+
};
|
|
20640
|
+
}
|
|
20641
|
+
}, [filterVisibility, setFilterVisibility]);
|
|
20642
|
+
return /* @__PURE__ */ jsx118(
|
|
20643
|
+
SearchAndFilterContext.Provider,
|
|
20644
|
+
{
|
|
20645
|
+
value: {
|
|
20646
|
+
searchTerm: deferredSearchTerm,
|
|
20647
|
+
setSearchTerm: (e) => handleSearchTerm(e),
|
|
20648
|
+
filterVisibility,
|
|
20649
|
+
setFilterVisibility: (e) => handleToggleFilterVisibilty(e),
|
|
20650
|
+
filters,
|
|
20651
|
+
setFilters: (e) => onChange(e),
|
|
20652
|
+
handleAddFilter: () => handleAddFilter(),
|
|
20653
|
+
handleResetFilters: () => handleResetFilters(),
|
|
20654
|
+
handleDeleteFilter: (index) => handleDeleteFilter(index),
|
|
20655
|
+
filterOptions,
|
|
20656
|
+
validFilterQuery
|
|
20657
|
+
},
|
|
20658
|
+
children: /* @__PURE__ */ jsx118(VerticalRhythm, { children })
|
|
20659
|
+
}
|
|
20660
|
+
);
|
|
20661
|
+
};
|
|
20662
|
+
var useSearchAndFilter = () => {
|
|
20663
|
+
const value = useContext7(SearchAndFilterContext);
|
|
20664
|
+
return { ...value };
|
|
20665
|
+
};
|
|
20666
|
+
|
|
20667
|
+
// src/components/SearchAndFilter/FilterControls.tsx
|
|
20668
|
+
import { Fragment as Fragment19, jsx as jsx119, jsxs as jsxs80 } from "@emotion/react/jsx-runtime";
|
|
20669
|
+
var FilterControls = ({ children }) => {
|
|
20670
|
+
const { setFilterVisibility, filterVisibility, setSearchTerm, validFilterQuery } = useSearchAndFilter();
|
|
20671
|
+
return /* @__PURE__ */ jsxs80(Fragment19, { children: [
|
|
20672
|
+
/* @__PURE__ */ jsx119(
|
|
20673
|
+
FilterButton2,
|
|
20674
|
+
{
|
|
20675
|
+
"aria-controls": "search-and-filter-options",
|
|
20676
|
+
"aria-label": "filter options",
|
|
20677
|
+
"aria-haspopup": "true",
|
|
20678
|
+
"aria-expanded": filterVisibility,
|
|
20679
|
+
filterCount: validFilterQuery == null ? void 0 : validFilterQuery.length,
|
|
20680
|
+
onClick: () => setFilterVisibility(!filterVisibility)
|
|
20681
|
+
}
|
|
20682
|
+
),
|
|
20683
|
+
/* @__PURE__ */ jsx119(
|
|
20684
|
+
InputKeywordSearch,
|
|
20685
|
+
{
|
|
20686
|
+
type: "search",
|
|
20687
|
+
placeholder: "Search...",
|
|
20688
|
+
onSearchTextChanged: (e) => setSearchTerm(e),
|
|
20689
|
+
compact: true,
|
|
20690
|
+
rounded: true
|
|
20691
|
+
}
|
|
20692
|
+
),
|
|
20693
|
+
children
|
|
20694
|
+
] });
|
|
20695
|
+
};
|
|
20696
|
+
|
|
20697
|
+
// src/components/SearchAndFilter/FilterEditor.tsx
|
|
20698
|
+
import { css as css94 } from "@emotion/react";
|
|
20699
|
+
import { useEffect as useEffect18, useState as useState17 } from "react";
|
|
20700
|
+
|
|
20701
|
+
// src/components/Validation/StatusBullet.styles.ts
|
|
20702
|
+
import { css as css93 } from "@emotion/react";
|
|
20703
|
+
var StatusBulletContainer = css93`
|
|
20704
|
+
align-items: center;
|
|
20705
|
+
align-self: center;
|
|
20706
|
+
color: var(--gray-500);
|
|
20707
|
+
display: inline-flex;
|
|
20708
|
+
font-weight: var(--fw-regular);
|
|
20709
|
+
gap: var(--spacing-xs);
|
|
20710
|
+
line-height: 1;
|
|
20711
|
+
position: relative;
|
|
20712
|
+
text-transform: lowercase;
|
|
20713
|
+
|
|
20714
|
+
&:before {
|
|
20715
|
+
border-radius: var(--rounded-full);
|
|
20716
|
+
content: '';
|
|
20717
|
+
display: block;
|
|
20718
|
+
}
|
|
20719
|
+
`;
|
|
20720
|
+
var StatusBulletBase = css93`
|
|
20721
|
+
font-size: var(--fs-sm);
|
|
20722
|
+
&:before {
|
|
20723
|
+
width: var(--fs-xs);
|
|
20724
|
+
height: var(--fs-xs);
|
|
20725
|
+
}
|
|
20726
|
+
`;
|
|
20727
|
+
var StatusBulletSmall = css93`
|
|
20728
|
+
font-size: var(--fs-xs);
|
|
20729
|
+
&:before {
|
|
20730
|
+
width: var(--fs-xxs);
|
|
20731
|
+
height: var(--fs-xxs);
|
|
20732
|
+
}
|
|
20733
|
+
`;
|
|
20734
|
+
var StatusDraft = css93`
|
|
20735
|
+
&:before {
|
|
20736
|
+
background: var(--white);
|
|
20737
|
+
box-shadow: inset 0 0 0 0.125rem var(--primary-action-default);
|
|
20738
|
+
}
|
|
20739
|
+
`;
|
|
20740
|
+
var StatusModified = css93`
|
|
20741
|
+
&:before {
|
|
20742
|
+
background: linear-gradient(to right, var(--white) 50%, var(--primary-action-default) 50% 100%);
|
|
20743
|
+
box-shadow: inset 0 0 0 0.125rem var(--primary-action-default);
|
|
20744
|
+
}
|
|
20745
|
+
`;
|
|
20746
|
+
var StatusError = css93`
|
|
20747
|
+
color: var(--error);
|
|
20748
|
+
&:before {
|
|
20749
|
+
/* TODO: replace this with an svg icon */
|
|
20750
|
+
background: linear-gradient(
|
|
20751
|
+
133deg,
|
|
20752
|
+
var(--error) 41%,
|
|
20753
|
+
var(--white) 42%,
|
|
20754
|
+
var(--white) 58%,
|
|
20755
|
+
var(--error) 59%
|
|
20756
|
+
);
|
|
20757
|
+
}
|
|
20758
|
+
`;
|
|
20759
|
+
var StatusPublished = css93`
|
|
20760
|
+
&:before {
|
|
20761
|
+
background: var(--primary-action-default);
|
|
20762
|
+
}
|
|
20763
|
+
`;
|
|
20764
|
+
var StatusOrphan = css93`
|
|
20765
|
+
&:before {
|
|
20766
|
+
background: var(--brand-secondary-5);
|
|
20767
|
+
}
|
|
20768
|
+
`;
|
|
20769
|
+
var StatusUnknown = css93`
|
|
20770
|
+
&:before {
|
|
20771
|
+
background: var(--gray-800);
|
|
20772
|
+
}
|
|
20773
|
+
`;
|
|
20774
|
+
|
|
20775
|
+
// src/components/Validation/StatusBullet.tsx
|
|
20776
|
+
import { jsx as jsx120 } from "@emotion/react/jsx-runtime";
|
|
20777
|
+
var StatusBullet = ({
|
|
20778
|
+
status,
|
|
20779
|
+
hideText = false,
|
|
20780
|
+
size = "base",
|
|
20781
|
+
message,
|
|
20782
|
+
...props
|
|
20783
|
+
}) => {
|
|
20784
|
+
const currentStateStyles = {
|
|
20785
|
+
Error: StatusError,
|
|
20786
|
+
Modified: StatusModified,
|
|
20787
|
+
Unsaved: StatusDraft,
|
|
20788
|
+
Orphan: StatusOrphan,
|
|
20789
|
+
Published: StatusPublished,
|
|
20790
|
+
Draft: StatusDraft,
|
|
20791
|
+
Previous: StatusDraft,
|
|
20792
|
+
Unknown: StatusUnknown
|
|
20793
|
+
};
|
|
20794
|
+
const statusSize = size === "base" ? StatusBulletBase : StatusBulletSmall;
|
|
20795
|
+
return /* @__PURE__ */ jsx120(
|
|
20796
|
+
"span",
|
|
20797
|
+
{
|
|
20798
|
+
role: "status",
|
|
20799
|
+
css: [StatusBulletContainer, currentStateStyles[status], statusSize],
|
|
20800
|
+
title: message != null ? message : status,
|
|
20801
|
+
...props,
|
|
20802
|
+
children: hideText ? null : message ? message : status
|
|
20803
|
+
}
|
|
20804
|
+
);
|
|
20805
|
+
};
|
|
20806
|
+
|
|
20807
|
+
// src/components/SearchAndFilter/FilterEditor.tsx
|
|
20808
|
+
import { Fragment as Fragment20, jsx as jsx121, jsxs as jsxs81 } from "@emotion/react/jsx-runtime";
|
|
20809
|
+
var FilterMultiChoiceEditor = ({
|
|
20810
|
+
value,
|
|
20811
|
+
options,
|
|
20812
|
+
...props
|
|
20813
|
+
}) => {
|
|
20814
|
+
return /* @__PURE__ */ jsx121(
|
|
20815
|
+
InputComboBox,
|
|
20816
|
+
{
|
|
20817
|
+
...props,
|
|
20818
|
+
options,
|
|
20819
|
+
isMulti: true,
|
|
20820
|
+
isClearable: true,
|
|
20821
|
+
onChange: (e) => {
|
|
20822
|
+
var _a;
|
|
20823
|
+
return props.onChange((_a = e.map((item) => item.value)) != null ? _a : []);
|
|
20824
|
+
}
|
|
20825
|
+
}
|
|
20826
|
+
);
|
|
20827
|
+
};
|
|
20828
|
+
var FilterSingleChoiceEditor = ({
|
|
20829
|
+
options,
|
|
20830
|
+
value,
|
|
20831
|
+
...props
|
|
20832
|
+
}) => {
|
|
20833
|
+
return /* @__PURE__ */ jsx121(
|
|
20834
|
+
InputComboBox,
|
|
20835
|
+
{
|
|
20836
|
+
options,
|
|
20837
|
+
isClearable: true,
|
|
20838
|
+
...props,
|
|
20839
|
+
onChange: (e) => {
|
|
20840
|
+
var _a;
|
|
20841
|
+
return props.onChange((_a = e == null ? void 0 : e.value) != null ? _a : "");
|
|
20842
|
+
}
|
|
20843
|
+
}
|
|
20844
|
+
);
|
|
20845
|
+
};
|
|
20846
|
+
var CustomOptions = ({ label, value }) => {
|
|
20847
|
+
return /* @__PURE__ */ jsx121(StatusBullet, { status: label, message: value });
|
|
20848
|
+
};
|
|
20849
|
+
var StatusMultiEditor = ({
|
|
20850
|
+
options,
|
|
20851
|
+
value,
|
|
20852
|
+
...props
|
|
20853
|
+
}) => {
|
|
20854
|
+
return /* @__PURE__ */ jsx121(
|
|
20855
|
+
InputComboBox,
|
|
20856
|
+
{
|
|
20857
|
+
options,
|
|
20858
|
+
isMulti: true,
|
|
20859
|
+
...props,
|
|
20860
|
+
onChange: (e) => {
|
|
20861
|
+
var _a;
|
|
20862
|
+
return props.onChange((_a = e.map((item) => item.value)) != null ? _a : []);
|
|
20863
|
+
},
|
|
20864
|
+
formatOptionLabel: CustomOptions
|
|
20865
|
+
}
|
|
20866
|
+
);
|
|
20867
|
+
};
|
|
20868
|
+
var StatusSingleEditor = ({
|
|
20869
|
+
options,
|
|
20870
|
+
value,
|
|
20871
|
+
...props
|
|
20872
|
+
}) => {
|
|
20873
|
+
return /* @__PURE__ */ jsx121(
|
|
20874
|
+
InputComboBox,
|
|
20875
|
+
{
|
|
20876
|
+
options,
|
|
20877
|
+
...props,
|
|
20878
|
+
onChange: (e) => {
|
|
20879
|
+
var _a;
|
|
20880
|
+
return props.onChange((_a = e == null ? void 0 : e.value) != null ? _a : "");
|
|
20881
|
+
},
|
|
20882
|
+
formatOptionLabel: CustomOptions
|
|
20883
|
+
}
|
|
20884
|
+
);
|
|
20885
|
+
};
|
|
20886
|
+
var TextEditor = ({ onChange, ariaLabel }) => {
|
|
20887
|
+
return /* @__PURE__ */ jsx121(
|
|
20888
|
+
Input,
|
|
20889
|
+
{
|
|
20890
|
+
showLabel: false,
|
|
20891
|
+
"aria-label": ariaLabel,
|
|
20892
|
+
onChange: (e) => onChange(e.currentTarget.value),
|
|
20893
|
+
placeholder: "Enter phrase to search\u2026"
|
|
20894
|
+
}
|
|
20895
|
+
);
|
|
20896
|
+
};
|
|
20897
|
+
var NumberRangeEditor = ({ onChange, ...props }) => {
|
|
20898
|
+
const [minValue, setMinValue] = useState17("");
|
|
20899
|
+
const [maxValue, setMaxValue] = useState17("");
|
|
20900
|
+
const [error, setError] = useState17("");
|
|
20901
|
+
useEffect18(() => {
|
|
20902
|
+
if (!maxValue && !minValue) {
|
|
20903
|
+
return;
|
|
20904
|
+
}
|
|
20905
|
+
const max = Number(maxValue);
|
|
20906
|
+
const min = Number(minValue);
|
|
20907
|
+
if (max < min || min > max) {
|
|
20908
|
+
setError("Please enter a valid numeric range");
|
|
20909
|
+
onChange([]);
|
|
20910
|
+
return;
|
|
20911
|
+
}
|
|
20912
|
+
if (maxValue && !minValue || minValue && !maxValue) {
|
|
20913
|
+
setError("Please enter both a low and high number");
|
|
20914
|
+
onChange([]);
|
|
20915
|
+
return;
|
|
20916
|
+
}
|
|
20917
|
+
setError("");
|
|
20918
|
+
onChange([minValue, maxValue]);
|
|
20919
|
+
}, [maxValue, minValue, setError]);
|
|
20920
|
+
return /* @__PURE__ */ jsxs81(Fragment20, { children: [
|
|
20921
|
+
/* @__PURE__ */ jsx121(
|
|
20922
|
+
Input,
|
|
20923
|
+
{
|
|
20924
|
+
...props,
|
|
20925
|
+
type: "number",
|
|
20926
|
+
showLabel: false,
|
|
20927
|
+
min: 0,
|
|
20928
|
+
placeholder: "Low",
|
|
20929
|
+
onChange: (e) => setMinValue(e.currentTarget.value),
|
|
20930
|
+
"aria-invalid": !error ? false : true
|
|
20931
|
+
}
|
|
20932
|
+
),
|
|
20933
|
+
/* @__PURE__ */ jsx121(
|
|
20934
|
+
Input,
|
|
20935
|
+
{
|
|
20936
|
+
...props,
|
|
20937
|
+
type: "number",
|
|
20938
|
+
showLabel: false,
|
|
20939
|
+
min: 0,
|
|
20940
|
+
placeholder: "High",
|
|
20941
|
+
onChange: (e) => setMaxValue(e.currentTarget.value),
|
|
20942
|
+
"aria-invalid": !error ? false : true
|
|
20943
|
+
}
|
|
20944
|
+
),
|
|
20945
|
+
/* @__PURE__ */ jsx121(ErrorContainer, { errorMessage: error })
|
|
20946
|
+
] });
|
|
20947
|
+
};
|
|
20948
|
+
var NumberEditor = ({ ariaLabel, onChange }) => {
|
|
20949
|
+
return /* @__PURE__ */ jsx121(
|
|
20950
|
+
Input,
|
|
20951
|
+
{
|
|
20952
|
+
"aria-label": ariaLabel,
|
|
20953
|
+
type: "number",
|
|
20954
|
+
showLabel: false,
|
|
20955
|
+
min: 0,
|
|
20956
|
+
onChange: (e) => onChange(e.currentTarget.value)
|
|
20957
|
+
}
|
|
20958
|
+
);
|
|
20959
|
+
};
|
|
20960
|
+
var DateEditor = ({ onChange, ...props }) => {
|
|
20961
|
+
return /* @__PURE__ */ jsx121(Input, { type: "date", ...props, showLabel: false, onChange: (e) => onChange(e.currentTarget.value) });
|
|
20962
|
+
};
|
|
20963
|
+
var DateRangeEditor = ({ ariaLabel, onChange }) => {
|
|
20964
|
+
const [minDateValue, setMinDateValue] = useState17("");
|
|
20965
|
+
const [maxDateValue, setMaxDateValue] = useState17("");
|
|
20966
|
+
const [error, setError] = useState17("");
|
|
20967
|
+
useEffect18(() => {
|
|
20968
|
+
if (!minDateValue || !maxDateValue) {
|
|
20969
|
+
return;
|
|
20970
|
+
}
|
|
20971
|
+
const minDate = new Date(minDateValue);
|
|
20972
|
+
const maxDate = new Date(maxDateValue);
|
|
20973
|
+
if (maxDate < minDate) {
|
|
20974
|
+
setError("The max date cannot be lower than the min date");
|
|
20975
|
+
onChange([]);
|
|
20976
|
+
return;
|
|
20977
|
+
}
|
|
20978
|
+
if (maxDate && !minDate) {
|
|
20979
|
+
setError("Please enter both a low and high date");
|
|
20980
|
+
onChange([]);
|
|
20981
|
+
return;
|
|
20982
|
+
}
|
|
20983
|
+
const minDateString = minDate.toDateString();
|
|
20984
|
+
const maxDateString = maxDate.toDateString();
|
|
20985
|
+
if (minDateString === maxDateString || maxDateString === minDateString) {
|
|
20986
|
+
setError("The min and max date cannot be the same");
|
|
20987
|
+
onChange([]);
|
|
20988
|
+
return;
|
|
20989
|
+
}
|
|
20990
|
+
if (minDate > maxDate) {
|
|
20991
|
+
setError("The min date cannot be higher than the max date");
|
|
20992
|
+
onChange([]);
|
|
20993
|
+
return;
|
|
20994
|
+
}
|
|
20995
|
+
setError("");
|
|
20996
|
+
onChange([minDateValue, maxDateValue]);
|
|
20997
|
+
}, [minDateValue, maxDateValue, setError]);
|
|
20998
|
+
return /* @__PURE__ */ jsxs81(Fragment20, { children: [
|
|
20999
|
+
/* @__PURE__ */ jsx121(
|
|
21000
|
+
Input,
|
|
21001
|
+
{
|
|
21002
|
+
"aria-label": `${ariaLabel}-min-date`,
|
|
21003
|
+
type: "date",
|
|
21004
|
+
showLabel: false,
|
|
21005
|
+
value: minDateValue,
|
|
21006
|
+
onChange: (e) => setMinDateValue(e.currentTarget.value),
|
|
21007
|
+
"aria-invalid": !error ? false : true
|
|
21008
|
+
}
|
|
21009
|
+
),
|
|
21010
|
+
/* @__PURE__ */ jsx121(
|
|
21011
|
+
Input,
|
|
21012
|
+
{
|
|
21013
|
+
"aria-label": `${ariaLabel}-max-date`,
|
|
21014
|
+
type: "date",
|
|
21015
|
+
showLabel: false,
|
|
21016
|
+
value: maxDateValue,
|
|
21017
|
+
onChange: (e) => setMaxDateValue(e.currentTarget.value),
|
|
21018
|
+
"aria-invalid": !error ? false : true
|
|
21019
|
+
}
|
|
21020
|
+
),
|
|
21021
|
+
/* @__PURE__ */ jsx121(ErrorContainer, { errorMessage: error })
|
|
21022
|
+
] });
|
|
21023
|
+
};
|
|
21024
|
+
var FilterEditorRenderer = ({ editorType, ...props }) => {
|
|
21025
|
+
const Editor = filterMapper[editorType];
|
|
21026
|
+
if (!Editor) {
|
|
21027
|
+
return null;
|
|
21028
|
+
}
|
|
21029
|
+
if (editorType === "empty") {
|
|
21030
|
+
return null;
|
|
21031
|
+
}
|
|
21032
|
+
return /* @__PURE__ */ jsx121(Editor, { ...props });
|
|
21033
|
+
};
|
|
21034
|
+
var filterMapper = {
|
|
21035
|
+
multiChoice: FilterMultiChoiceEditor,
|
|
21036
|
+
singleChoice: FilterSingleChoiceEditor,
|
|
21037
|
+
date: DateEditor,
|
|
21038
|
+
dateRange: DateRangeEditor,
|
|
21039
|
+
text: TextEditor,
|
|
21040
|
+
numberRange: NumberRangeEditor,
|
|
21041
|
+
number: NumberEditor,
|
|
21042
|
+
statusMultiChoice: StatusMultiEditor,
|
|
21043
|
+
statusSingleChoice: StatusSingleEditor,
|
|
21044
|
+
empty: null
|
|
21045
|
+
};
|
|
21046
|
+
var ErrorContainer = ({ errorMessage }) => {
|
|
21047
|
+
return /* @__PURE__ */ jsx121(
|
|
21048
|
+
"div",
|
|
21049
|
+
{
|
|
21050
|
+
css: css94`
|
|
21051
|
+
grid-column: span 6;
|
|
21052
|
+
order: 6;
|
|
21053
|
+
`,
|
|
21054
|
+
children: /* @__PURE__ */ jsx121(FieldMessage, { errorMessage })
|
|
21055
|
+
}
|
|
21056
|
+
);
|
|
21057
|
+
};
|
|
21058
|
+
|
|
21059
|
+
// src/components/SearchAndFilter/FilterMenu.tsx
|
|
21060
|
+
import { Fragment as Fragment21, jsx as jsx122, jsxs as jsxs82 } from "@emotion/react/jsx-runtime";
|
|
21061
|
+
var SearchAndFilterOptionsContainer2 = ({
|
|
21062
|
+
buttonRow,
|
|
21063
|
+
children
|
|
21064
|
+
}) => {
|
|
21065
|
+
return /* @__PURE__ */ jsxs82("div", { css: SearchAndFilterOptionsContainer, children: [
|
|
21066
|
+
/* @__PURE__ */ jsx122("div", { css: SearchAndFilterOptionsInnerContainer, children }),
|
|
21067
|
+
buttonRow ? /* @__PURE__ */ jsx122(
|
|
21068
|
+
HorizontalRhythm,
|
|
21069
|
+
{
|
|
21070
|
+
css: SearchAndFilterButtonGroup,
|
|
21071
|
+
gap: "sm",
|
|
21072
|
+
align: "center",
|
|
21073
|
+
justify: "space-between",
|
|
21074
|
+
children: buttonRow
|
|
21075
|
+
}
|
|
21076
|
+
) : null
|
|
21077
|
+
] });
|
|
21078
|
+
};
|
|
21079
|
+
var FilterMenu = ({
|
|
21080
|
+
id,
|
|
21081
|
+
addButtonText = "add condition",
|
|
21082
|
+
isAddDisabled,
|
|
21083
|
+
resetButtonText = "reset filters",
|
|
21084
|
+
filterTitle = "Show records",
|
|
21085
|
+
children
|
|
21086
|
+
}) => {
|
|
21087
|
+
const { filterVisibility, handleAddFilter, handleResetFilters, setFilterVisibility, validFilterQuery } = useSearchAndFilter();
|
|
21088
|
+
return /* @__PURE__ */ jsx122(VerticalRhythm, { gap: "sm", "aria-haspopup": "true", id, children: filterVisibility ? /* @__PURE__ */ jsxs82(
|
|
21089
|
+
SearchAndFilterOptionsContainer2,
|
|
21090
|
+
{
|
|
21091
|
+
buttonRow: /* @__PURE__ */ jsxs82(Fragment21, { children: [
|
|
21092
|
+
/* @__PURE__ */ jsxs82(
|
|
21093
|
+
"button",
|
|
21094
|
+
{
|
|
21095
|
+
type: "button",
|
|
21096
|
+
css: AddConditionalBtn,
|
|
21097
|
+
onClick: handleAddFilter,
|
|
21098
|
+
disabled: isAddDisabled,
|
|
21099
|
+
children: [
|
|
21100
|
+
/* @__PURE__ */ jsx122(Icon, { icon: "math-plus", iconColor: "gray", size: "1rem" }),
|
|
21101
|
+
addButtonText
|
|
21102
|
+
]
|
|
21103
|
+
}
|
|
21104
|
+
),
|
|
21105
|
+
(validFilterQuery == null ? void 0 : validFilterQuery.length) ? /* @__PURE__ */ jsx122(
|
|
21106
|
+
"button",
|
|
21107
|
+
{
|
|
21108
|
+
type: "button",
|
|
21109
|
+
css: ResetConditionsBtn,
|
|
21110
|
+
onClick: () => {
|
|
21111
|
+
handleResetFilters();
|
|
21112
|
+
setFilterVisibility(false);
|
|
21113
|
+
},
|
|
21114
|
+
children: resetButtonText
|
|
21115
|
+
}
|
|
21116
|
+
) : null
|
|
21117
|
+
] }),
|
|
21118
|
+
children: [
|
|
21119
|
+
/* @__PURE__ */ jsx122("span", { css: Title, children: filterTitle }),
|
|
21120
|
+
/* @__PURE__ */ jsx122(
|
|
21121
|
+
"button",
|
|
21122
|
+
{
|
|
21123
|
+
type: "button",
|
|
21124
|
+
"aria-label": "close filters",
|
|
21125
|
+
css: [CloseBtn],
|
|
21126
|
+
onClick: () => setFilterVisibility(!filterVisibility),
|
|
21127
|
+
children: /* @__PURE__ */ jsx122(Icon, { icon: "close", iconColor: "currentColor", size: "1.1rem" })
|
|
21128
|
+
}
|
|
21129
|
+
),
|
|
21130
|
+
children
|
|
21131
|
+
]
|
|
21132
|
+
}
|
|
21133
|
+
) : null });
|
|
21134
|
+
};
|
|
21135
|
+
|
|
21136
|
+
// src/components/SearchAndFilter/FilterItem.tsx
|
|
21137
|
+
import { jsx as jsx123, jsxs as jsxs83 } from "@emotion/react/jsx-runtime";
|
|
21138
|
+
var FilterItem = ({
|
|
21139
|
+
index,
|
|
21140
|
+
paramOptions,
|
|
21141
|
+
operatorOptions,
|
|
21142
|
+
valueOptions,
|
|
21143
|
+
onParamChange,
|
|
21144
|
+
onOperatorChange,
|
|
21145
|
+
onValueChange
|
|
21146
|
+
}) => {
|
|
21147
|
+
var _a, _b;
|
|
21148
|
+
const { filters, handleDeleteFilter } = useSearchAndFilter();
|
|
21149
|
+
const label = filters[index].field !== "" ? filters[index].field : "unknown filter field";
|
|
21150
|
+
const operatorLabel = filters[index].operator !== "" ? `operator ${filters[index].operator}` : "unknown operator";
|
|
21151
|
+
const metaDataLabel = filters[index].value !== "" ? `value ${filters[index].value}` : "unknown value";
|
|
21152
|
+
const metaDataPossibleOptions = (_b = (_a = operatorOptions.find((op) => filters[index].operator === op.value)) == null ? void 0 : _a.editorType) != null ? _b : "singleChoice";
|
|
21153
|
+
return /* @__PURE__ */ jsxs83("div", { css: ConditionalFilterRow, children: [
|
|
21154
|
+
/* @__PURE__ */ jsx123("span", { children: index === 0 ? "where" : "and" }),
|
|
21155
|
+
/* @__PURE__ */ jsxs83("div", { css: ConditionalInputRow, children: [
|
|
21156
|
+
/* @__PURE__ */ jsx123(
|
|
21157
|
+
InputComboBox,
|
|
21158
|
+
{
|
|
21159
|
+
"aria-label": label,
|
|
21160
|
+
options: paramOptions,
|
|
21161
|
+
onChange: (e) => {
|
|
21162
|
+
var _a2;
|
|
21163
|
+
onParamChange((_a2 = e == null ? void 0 : e.value) != null ? _a2 : "");
|
|
21164
|
+
}
|
|
21165
|
+
}
|
|
21166
|
+
),
|
|
21167
|
+
/* @__PURE__ */ jsx123(
|
|
21168
|
+
InputComboBox,
|
|
21169
|
+
{
|
|
21170
|
+
"aria-label": operatorLabel,
|
|
21171
|
+
options: operatorOptions,
|
|
21172
|
+
onChange: (e) => {
|
|
21173
|
+
var _a2;
|
|
21174
|
+
return onOperatorChange((_a2 = e == null ? void 0 : e.value) != null ? _a2 : "");
|
|
21175
|
+
},
|
|
21176
|
+
isDisabled: !filters[index].field
|
|
21177
|
+
}
|
|
21178
|
+
),
|
|
21179
|
+
/* @__PURE__ */ jsx123(
|
|
21180
|
+
FilterEditorRenderer,
|
|
21181
|
+
{
|
|
21182
|
+
"aria-label": metaDataLabel,
|
|
21183
|
+
editorType: metaDataPossibleOptions,
|
|
21184
|
+
options: valueOptions,
|
|
21185
|
+
onChange: (e) => onValueChange(e != null ? e : "")
|
|
21186
|
+
}
|
|
21187
|
+
),
|
|
21188
|
+
/* @__PURE__ */ jsx123(
|
|
21189
|
+
"button",
|
|
21190
|
+
{
|
|
21191
|
+
type: "button",
|
|
21192
|
+
onClick: () => handleDeleteFilter(index),
|
|
21193
|
+
"aria-label": "delete filter",
|
|
21194
|
+
css: IconBtn,
|
|
21195
|
+
children: /* @__PURE__ */ jsx123(Icon, { icon: "trash", iconColor: "red", size: "1rem" })
|
|
21196
|
+
}
|
|
21197
|
+
)
|
|
21198
|
+
] })
|
|
21199
|
+
] });
|
|
21200
|
+
};
|
|
21201
|
+
var FilterItems = () => {
|
|
21202
|
+
const { filterOptions, filters, setFilters } = useSearchAndFilter();
|
|
21203
|
+
const handleUpdateFilter = (index, prop, value) => {
|
|
21204
|
+
const next = [...filters];
|
|
21205
|
+
next[index] = { ...next[index], [prop]: value };
|
|
21206
|
+
if (prop === "operator") {
|
|
21207
|
+
next[index].value = "";
|
|
21208
|
+
if (value === "def" || value === "true") {
|
|
21209
|
+
next[index].value = "true";
|
|
21210
|
+
}
|
|
21211
|
+
if (value === "ndef" || value === "false") {
|
|
21212
|
+
next[index].value = "false";
|
|
21213
|
+
}
|
|
21214
|
+
}
|
|
21215
|
+
if (prop === "field") {
|
|
21216
|
+
next[index].operator = "";
|
|
21217
|
+
next[index].value = "";
|
|
21218
|
+
}
|
|
21219
|
+
setFilters(next);
|
|
21220
|
+
};
|
|
21221
|
+
return /* @__PURE__ */ jsx123(FilterMenu, { id: "search-and-filter-options", children: filters.map((item, i) => {
|
|
21222
|
+
var _a, _b, _c, _d, _e, _f;
|
|
21223
|
+
const availableTypeOptions = (_b = (_a = filterOptions.find((fo) => {
|
|
21224
|
+
var _a2;
|
|
21225
|
+
return (_a2 = fo.options) == null ? void 0 : _a2.find((op) => op.value === item.field);
|
|
21226
|
+
})) == null ? void 0 : _a.options) != null ? _b : [];
|
|
21227
|
+
const possibleValueOptions = (_d = (_c = availableTypeOptions == null ? void 0 : availableTypeOptions.find((op) => op.value === item.field)) == null ? void 0 : _c.valueOptions) != null ? _d : [];
|
|
21228
|
+
const possibleOperators = (_f = (_e = availableTypeOptions == null ? void 0 : availableTypeOptions.find((op) => op.value === item.field)) == null ? void 0 : _e.operatorOptions) != null ? _f : [];
|
|
21229
|
+
return /* @__PURE__ */ jsx123(
|
|
21230
|
+
FilterItem,
|
|
21231
|
+
{
|
|
21232
|
+
index: i,
|
|
21233
|
+
paramOptions: filterOptions,
|
|
21234
|
+
onParamChange: (e) => handleUpdateFilter(i, "field", e),
|
|
21235
|
+
operatorOptions: possibleOperators,
|
|
21236
|
+
onOperatorChange: (e) => handleUpdateFilter(i, "operator", e),
|
|
21237
|
+
onValueChange: (e) => handleUpdateFilter(i, "value", e),
|
|
21238
|
+
valueOptions: possibleValueOptions
|
|
21239
|
+
},
|
|
21240
|
+
i
|
|
21241
|
+
);
|
|
21242
|
+
}) });
|
|
21243
|
+
};
|
|
21244
|
+
|
|
21245
|
+
// src/components/SearchAndFilter/SearchAndFilter.tsx
|
|
21246
|
+
import { jsx as jsx124, jsxs as jsxs84 } from "@emotion/react/jsx-runtime";
|
|
21247
|
+
var SearchAndFilter = ({
|
|
21248
|
+
filters,
|
|
21249
|
+
filterOptions,
|
|
21250
|
+
filterControls = /* @__PURE__ */ jsx124(FilterControls, {}),
|
|
21251
|
+
children = /* @__PURE__ */ jsx124(FilterItems, {}),
|
|
21252
|
+
onChange
|
|
21253
|
+
}) => {
|
|
21254
|
+
return /* @__PURE__ */ jsx124(SearchAndFilterProvider, { filters, filterOptions, onChange, children: /* @__PURE__ */ jsxs84(VerticalRhythm, { css: SearchAndFilterContainer, "data-testid": "search-and-filter", children: [
|
|
21255
|
+
/* @__PURE__ */ jsx124("div", { css: SearchAndFilterControlsWrapper, children: filterControls }),
|
|
21256
|
+
children
|
|
21257
|
+
] }) });
|
|
21258
|
+
};
|
|
21259
|
+
|
|
21260
|
+
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
21261
|
+
import { css as css96 } from "@emotion/react";
|
|
21262
|
+
import { CgCheck as CgCheck4 } from "@react-icons/all-files/cg/CgCheck";
|
|
21263
|
+
import { useCallback as useCallback11, useMemo as useMemo7 } from "react";
|
|
21264
|
+
|
|
21265
|
+
// src/components/SegmentedControl/SegmentedControl.styles.ts
|
|
21266
|
+
import { css as css95 } from "@emotion/react";
|
|
21267
|
+
var segmentedControlStyles = css95`
|
|
21268
|
+
--segmented-control-rounded-value: var(--rounded-base);
|
|
21269
|
+
--segmented-control-border-width: 1px;
|
|
21270
|
+
--segmented-control-selected-color: var(--brand-secondary-3);
|
|
21271
|
+
--segmented-control-first-border-radius: var(--segmented-control-rounded-value) 0 0
|
|
21272
|
+
var(--segmented-control-rounded-value);
|
|
21273
|
+
--segmented-control-last-border-radius: 0 var(--segmented-control-rounded-value)
|
|
21274
|
+
var(--segmented-control-rounded-value) 0;
|
|
21275
|
+
|
|
21276
|
+
position: relative;
|
|
21277
|
+
display: flex;
|
|
21278
|
+
justify-content: flex-start;
|
|
21279
|
+
width: fit-content;
|
|
21280
|
+
background-color: var(--gray-300);
|
|
21281
|
+
padding: var(--segmented-control-border-width);
|
|
21282
|
+
gap: var(--segmented-control-border-width);
|
|
21283
|
+
border-radius: calc(var(--segmented-control-rounded-value) + var(--segmented-control-border-width));
|
|
21284
|
+
font-size: var(--fs-xs);
|
|
21285
|
+
`;
|
|
21286
|
+
var segmentedControlVerticalStyles = css95`
|
|
21287
|
+
flex-direction: column;
|
|
21288
|
+
--segmented-control-first-border-radius: var(--segmented-control-rounded-value)
|
|
21289
|
+
var(--segmented-control-rounded-value) 0 0;
|
|
21290
|
+
--segmented-control-last-border-radius: 0 0 var(--segmented-control-rounded-value)
|
|
21291
|
+
var(--segmented-control-rounded-value);
|
|
21292
|
+
`;
|
|
21293
|
+
var segmentedControlItemStyles = css95`
|
|
21294
|
+
&:first-of-type label {
|
|
21295
|
+
border-radius: var(--segmented-control-first-border-radius);
|
|
21296
|
+
}
|
|
21297
|
+
&:last-of-type label {
|
|
21298
|
+
border-radius: var(--segmented-control-last-border-radius);
|
|
21299
|
+
}
|
|
21300
|
+
`;
|
|
21301
|
+
var segmentedControlInputStyles = css95`
|
|
21302
|
+
${accessibleHidden}
|
|
21303
|
+
`;
|
|
21304
|
+
var segmentedControlLabelStyles = (checked, disabled2) => css95`
|
|
21305
|
+
position: relative;
|
|
21306
|
+
display: flex;
|
|
21307
|
+
align-items: center;
|
|
21308
|
+
justify-content: center;
|
|
21309
|
+
height: 2rem;
|
|
21310
|
+
padding-inline: var(--spacing-base);
|
|
21311
|
+
background-color: white;
|
|
21312
|
+
transition-property: background-color, color, box-shadow;
|
|
21313
|
+
transition-duration: var(--duration-xfast);
|
|
21314
|
+
transition-timing-function: ease-in-out;
|
|
21315
|
+
z-index: 1;
|
|
21316
|
+
cursor: pointer;
|
|
21317
|
+
|
|
21318
|
+
&:has(:checked:not(:disabled)) {
|
|
21319
|
+
background-color: var(--segmented-control-selected-color);
|
|
21320
|
+
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
21321
|
+
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
21322
|
+
color: white;
|
|
21323
|
+
-webkit-text-stroke-width: thin;
|
|
21324
|
+
z-index: 0;
|
|
21325
|
+
}
|
|
21326
|
+
|
|
21327
|
+
&:hover:not(:has(:disabled, :checked)) {
|
|
21328
|
+
background-color: var(--gray-100);
|
|
21329
|
+
}
|
|
21330
|
+
|
|
21331
|
+
&:has(:disabled) {
|
|
21332
|
+
color: var(--gray-400);
|
|
21333
|
+
cursor: default;
|
|
21334
|
+
}
|
|
21335
|
+
|
|
21336
|
+
&:has(:checked:disabled) {
|
|
21337
|
+
color: var(--gray-50);
|
|
21338
|
+
background-color: var(--gray-400);
|
|
21339
|
+
}
|
|
21340
|
+
|
|
21341
|
+
// Firefox fallback using emotion variables
|
|
21342
|
+
// we can delete this whole block of code and variables in SegmentedControl.tsx
|
|
21343
|
+
// once Firefox supports :has selector
|
|
21344
|
+
@supports not selector(:has(*)) {
|
|
21345
|
+
// equivalent to &:has(:checked:not(:disabled))
|
|
21346
|
+
${checked && !disabled2 ? `
|
|
21347
|
+
background-color: var(--segmented-control-selected-color);
|
|
21348
|
+
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
21349
|
+
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
21350
|
+
color: white;
|
|
21351
|
+
-webkit-text-stroke-width: thin;
|
|
21352
|
+
z-index: 0;` : void 0}
|
|
21353
|
+
|
|
21354
|
+
// equivalent to &:hover:not(:has(:disabled, :checked))
|
|
21355
|
+
&:hover {
|
|
21356
|
+
${!checked && !disabled2 ? `background-color: var(--gray-100);` : void 0}
|
|
21357
|
+
}
|
|
21358
|
+
|
|
21359
|
+
// equivalent to &:has(:disabled)
|
|
21360
|
+
${disabled2 ? `
|
|
21361
|
+
color: var(--gray-400);
|
|
21362
|
+
cursor: default;` : void 0}
|
|
21363
|
+
|
|
21364
|
+
// equivalent to &:has(:checked:disabled)
|
|
20165
21365
|
${checked && disabled2 && `
|
|
20166
21366
|
color: var(--gray-50);
|
|
20167
21367
|
background-color: var(--gray-400);
|
|
20168
21368
|
`}
|
|
20169
21369
|
}
|
|
20170
21370
|
`;
|
|
20171
|
-
var segmentedControlLabelIconOnlyStyles =
|
|
21371
|
+
var segmentedControlLabelIconOnlyStyles = css95`
|
|
20172
21372
|
padding-inline: 0.5em;
|
|
20173
21373
|
`;
|
|
20174
|
-
var segmentedControlLabelCheckStyles =
|
|
21374
|
+
var segmentedControlLabelCheckStyles = css95`
|
|
20175
21375
|
opacity: 0.5;
|
|
20176
21376
|
`;
|
|
20177
|
-
var segmentedControlLabelContentStyles =
|
|
21377
|
+
var segmentedControlLabelContentStyles = css95`
|
|
20178
21378
|
display: flex;
|
|
20179
21379
|
align-items: center;
|
|
20180
21380
|
justify-content: center;
|
|
20181
21381
|
gap: var(--spacing-sm);
|
|
20182
21382
|
height: 100%;
|
|
20183
21383
|
`;
|
|
20184
|
-
var segmentedControlLabelTextStyles =
|
|
21384
|
+
var segmentedControlLabelTextStyles = css95``;
|
|
20185
21385
|
|
|
20186
21386
|
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
20187
|
-
import { jsx as
|
|
21387
|
+
import { jsx as jsx125, jsxs as jsxs85 } from "@emotion/react/jsx-runtime";
|
|
20188
21388
|
var SegmentedControl = ({
|
|
20189
21389
|
name,
|
|
20190
21390
|
options,
|
|
@@ -20196,7 +21396,7 @@ var SegmentedControl = ({
|
|
|
20196
21396
|
size = "md",
|
|
20197
21397
|
...props
|
|
20198
21398
|
}) => {
|
|
20199
|
-
const onOptionChange =
|
|
21399
|
+
const onOptionChange = useCallback11(
|
|
20200
21400
|
(event) => {
|
|
20201
21401
|
if (event.target.checked) {
|
|
20202
21402
|
onChange == null ? void 0 : onChange(options[parseInt(event.target.value)].value);
|
|
@@ -20204,18 +21404,18 @@ var SegmentedControl = ({
|
|
|
20204
21404
|
},
|
|
20205
21405
|
[options, onChange]
|
|
20206
21406
|
);
|
|
20207
|
-
const sizeStyles =
|
|
21407
|
+
const sizeStyles = useMemo7(() => {
|
|
20208
21408
|
const map = {
|
|
20209
|
-
sm:
|
|
20210
|
-
md:
|
|
20211
|
-
lg:
|
|
21409
|
+
sm: css96({ height: "calc(24px - 2px)", fontSize: "var(--fs-xs)" }),
|
|
21410
|
+
md: css96({ height: "calc(32px - 2px)", fontSize: "var(--fs-sm)" }),
|
|
21411
|
+
lg: css96({ height: "calc(40px - 2px)", fontSize: "var(--fs-base)" })
|
|
20212
21412
|
};
|
|
20213
21413
|
return map[size];
|
|
20214
21414
|
}, [size]);
|
|
20215
|
-
const isIconOnly =
|
|
21415
|
+
const isIconOnly = useMemo7(() => {
|
|
20216
21416
|
return options.every((option) => option && option.icon && !option.label);
|
|
20217
21417
|
}, [options]);
|
|
20218
|
-
return /* @__PURE__ */
|
|
21418
|
+
return /* @__PURE__ */ jsx125(
|
|
20219
21419
|
"div",
|
|
20220
21420
|
{
|
|
20221
21421
|
css: [segmentedControlStyles, orientation === "vertical" ? segmentedControlVerticalStyles : void 0],
|
|
@@ -20227,7 +21427,7 @@ var SegmentedControl = ({
|
|
|
20227
21427
|
}
|
|
20228
21428
|
const text = option.label ? option.label : option.icon ? null : String(option.value);
|
|
20229
21429
|
const isDisabled = disabled2 || option.disabled;
|
|
20230
|
-
return /* @__PURE__ */
|
|
21430
|
+
return /* @__PURE__ */ jsx125(Tooltip, { title: (_a = option.tooltip) != null ? _a : "", children: /* @__PURE__ */ jsx125("div", { css: segmentedControlItemStyles, "data-testid": "container-segmented-control", children: /* @__PURE__ */ jsxs85(
|
|
20231
21431
|
"label",
|
|
20232
21432
|
{
|
|
20233
21433
|
css: [
|
|
@@ -20236,7 +21436,7 @@ var SegmentedControl = ({
|
|
|
20236
21436
|
isIconOnly ? segmentedControlLabelIconOnlyStyles : void 0
|
|
20237
21437
|
],
|
|
20238
21438
|
children: [
|
|
20239
|
-
/* @__PURE__ */
|
|
21439
|
+
/* @__PURE__ */ jsx125(
|
|
20240
21440
|
"input",
|
|
20241
21441
|
{
|
|
20242
21442
|
css: segmentedControlInputStyles,
|
|
@@ -20248,10 +21448,10 @@ var SegmentedControl = ({
|
|
|
20248
21448
|
disabled: isDisabled
|
|
20249
21449
|
}
|
|
20250
21450
|
),
|
|
20251
|
-
option.value !== value || noCheckmark ? null : /* @__PURE__ */
|
|
20252
|
-
/* @__PURE__ */
|
|
20253
|
-
!option.icon ? null : /* @__PURE__ */
|
|
20254
|
-
!text ? null : /* @__PURE__ */
|
|
21451
|
+
option.value !== value || noCheckmark ? null : /* @__PURE__ */ jsx125(CgCheck4, { css: segmentedControlLabelCheckStyles, "aria-label": "Selected", size: "1.5em" }),
|
|
21452
|
+
/* @__PURE__ */ jsxs85("span", { css: segmentedControlLabelContentStyles, children: [
|
|
21453
|
+
!option.icon ? null : /* @__PURE__ */ jsx125(Icon, { icon: option.icon, size: "1.5em", iconColor: "currentColor" }),
|
|
21454
|
+
!text ? null : /* @__PURE__ */ jsx125("span", { css: segmentedControlLabelTextStyles, children: text })
|
|
20255
21455
|
] })
|
|
20256
21456
|
]
|
|
20257
21457
|
}
|
|
@@ -20262,18 +21462,18 @@ var SegmentedControl = ({
|
|
|
20262
21462
|
};
|
|
20263
21463
|
|
|
20264
21464
|
// src/components/Skeleton/Skeleton.styles.ts
|
|
20265
|
-
import { css as
|
|
21465
|
+
import { css as css97, keyframes as keyframes5 } from "@emotion/react";
|
|
20266
21466
|
var lightFadingOut = keyframes5`
|
|
20267
21467
|
from { opacity: 0.1; }
|
|
20268
21468
|
to { opacity: 0.025; }
|
|
20269
21469
|
`;
|
|
20270
|
-
var skeletonStyles =
|
|
21470
|
+
var skeletonStyles = css97`
|
|
20271
21471
|
animation: ${lightFadingOut} 1s ease-out infinite alternate;
|
|
20272
21472
|
background-color: var(--gray-900);
|
|
20273
21473
|
`;
|
|
20274
21474
|
|
|
20275
21475
|
// src/components/Skeleton/Skeleton.tsx
|
|
20276
|
-
import { jsx as
|
|
21476
|
+
import { jsx as jsx126 } from "@emotion/react/jsx-runtime";
|
|
20277
21477
|
var Skeleton = ({
|
|
20278
21478
|
width = "100%",
|
|
20279
21479
|
height = "1.25rem",
|
|
@@ -20281,7 +21481,7 @@ var Skeleton = ({
|
|
|
20281
21481
|
circle = false,
|
|
20282
21482
|
children,
|
|
20283
21483
|
...otherProps
|
|
20284
|
-
}) => /* @__PURE__ */
|
|
21484
|
+
}) => /* @__PURE__ */ jsx126(
|
|
20285
21485
|
"div",
|
|
20286
21486
|
{
|
|
20287
21487
|
css: [
|
|
@@ -20301,11 +21501,11 @@ var Skeleton = ({
|
|
|
20301
21501
|
);
|
|
20302
21502
|
|
|
20303
21503
|
// src/components/Switch/Switch.tsx
|
|
20304
|
-
import * as
|
|
21504
|
+
import * as React25 from "react";
|
|
20305
21505
|
|
|
20306
21506
|
// src/components/Switch/Switch.styles.ts
|
|
20307
|
-
import { css as
|
|
20308
|
-
var SwitchInputContainer =
|
|
21507
|
+
import { css as css98 } from "@emotion/react";
|
|
21508
|
+
var SwitchInputContainer = css98`
|
|
20309
21509
|
cursor: pointer;
|
|
20310
21510
|
display: inline-block;
|
|
20311
21511
|
position: relative;
|
|
@@ -20314,7 +21514,7 @@ var SwitchInputContainer = css95`
|
|
|
20314
21514
|
vertical-align: middle;
|
|
20315
21515
|
user-select: none;
|
|
20316
21516
|
`;
|
|
20317
|
-
var SwitchInput =
|
|
21517
|
+
var SwitchInput = css98`
|
|
20318
21518
|
appearance: none;
|
|
20319
21519
|
border-radius: var(--rounded-full);
|
|
20320
21520
|
background-color: var(--white);
|
|
@@ -20352,7 +21552,7 @@ var SwitchInput = css95`
|
|
|
20352
21552
|
cursor: not-allowed;
|
|
20353
21553
|
}
|
|
20354
21554
|
`;
|
|
20355
|
-
var SwitchInputDisabled =
|
|
21555
|
+
var SwitchInputDisabled = css98`
|
|
20356
21556
|
opacity: var(--opacity-50);
|
|
20357
21557
|
cursor: not-allowed;
|
|
20358
21558
|
|
|
@@ -20360,7 +21560,7 @@ var SwitchInputDisabled = css95`
|
|
|
20360
21560
|
cursor: not-allowed;
|
|
20361
21561
|
}
|
|
20362
21562
|
`;
|
|
20363
|
-
var SwitchInputLabel =
|
|
21563
|
+
var SwitchInputLabel = css98`
|
|
20364
21564
|
align-items: center;
|
|
20365
21565
|
color: var(--typography-base);
|
|
20366
21566
|
display: inline-flex;
|
|
@@ -20381,37 +21581,37 @@ var SwitchInputLabel = css95`
|
|
|
20381
21581
|
top: 0;
|
|
20382
21582
|
}
|
|
20383
21583
|
`;
|
|
20384
|
-
var SwitchText =
|
|
21584
|
+
var SwitchText = css98`
|
|
20385
21585
|
color: var(--gray-500);
|
|
20386
21586
|
font-size: var(--fs-sm);
|
|
20387
21587
|
padding-inline: var(--spacing-2xl) 0;
|
|
20388
21588
|
`;
|
|
20389
21589
|
|
|
20390
21590
|
// src/components/Switch/Switch.tsx
|
|
20391
|
-
import { Fragment as
|
|
20392
|
-
var Switch =
|
|
21591
|
+
import { Fragment as Fragment22, jsx as jsx127, jsxs as jsxs86 } from "@emotion/react/jsx-runtime";
|
|
21592
|
+
var Switch = React25.forwardRef(
|
|
20393
21593
|
({ label, infoText, toggleText, children, ...inputProps }, ref) => {
|
|
20394
21594
|
let additionalText = infoText;
|
|
20395
21595
|
if (infoText && toggleText) {
|
|
20396
21596
|
additionalText = inputProps.checked ? toggleText : infoText;
|
|
20397
21597
|
}
|
|
20398
|
-
return /* @__PURE__ */
|
|
20399
|
-
/* @__PURE__ */
|
|
20400
|
-
/* @__PURE__ */
|
|
20401
|
-
/* @__PURE__ */
|
|
21598
|
+
return /* @__PURE__ */ jsxs86(Fragment22, { children: [
|
|
21599
|
+
/* @__PURE__ */ jsxs86("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
|
|
21600
|
+
/* @__PURE__ */ jsx127("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
|
|
21601
|
+
/* @__PURE__ */ jsx127("span", { css: SwitchInputLabel, children: label })
|
|
20402
21602
|
] }),
|
|
20403
|
-
additionalText ? /* @__PURE__ */
|
|
21603
|
+
additionalText ? /* @__PURE__ */ jsx127("p", { css: SwitchText, children: additionalText }) : null,
|
|
20404
21604
|
children
|
|
20405
21605
|
] });
|
|
20406
21606
|
}
|
|
20407
21607
|
);
|
|
20408
21608
|
|
|
20409
21609
|
// src/components/Table/Table.tsx
|
|
20410
|
-
import * as
|
|
21610
|
+
import * as React26 from "react";
|
|
20411
21611
|
|
|
20412
21612
|
// src/components/Table/Table.styles.ts
|
|
20413
|
-
import { css as
|
|
20414
|
-
var table = ({ cellPadding = "var(--spacing-base) var(--spacing-md)" }) =>
|
|
21613
|
+
import { css as css99 } from "@emotion/react";
|
|
21614
|
+
var table = ({ cellPadding = "var(--spacing-base) var(--spacing-md)" }) => css99`
|
|
20415
21615
|
border-bottom: 1px solid var(--gray-400);
|
|
20416
21616
|
border-collapse: collapse;
|
|
20417
21617
|
min-width: 100%;
|
|
@@ -20422,55 +21622,55 @@ var table = ({ cellPadding = "var(--spacing-base) var(--spacing-md)" }) => css96
|
|
|
20422
21622
|
padding: ${cellPadding};
|
|
20423
21623
|
}
|
|
20424
21624
|
`;
|
|
20425
|
-
var tableHead =
|
|
21625
|
+
var tableHead = css99`
|
|
20426
21626
|
background: var(--gray-100);
|
|
20427
21627
|
color: var(--typography-base);
|
|
20428
21628
|
text-align: left;
|
|
20429
21629
|
`;
|
|
20430
|
-
var tableRow =
|
|
21630
|
+
var tableRow = css99`
|
|
20431
21631
|
border-bottom: 1px solid var(--gray-200);
|
|
20432
21632
|
`;
|
|
20433
|
-
var tableCellHead =
|
|
21633
|
+
var tableCellHead = css99`
|
|
20434
21634
|
font-size: var(--fs-sm);
|
|
20435
21635
|
text-transform: uppercase;
|
|
20436
21636
|
font-weight: var(--fw-bold);
|
|
20437
21637
|
`;
|
|
20438
21638
|
|
|
20439
21639
|
// src/components/Table/Table.tsx
|
|
20440
|
-
import { jsx as
|
|
20441
|
-
var Table =
|
|
21640
|
+
import { jsx as jsx128 } from "@emotion/react/jsx-runtime";
|
|
21641
|
+
var Table = React26.forwardRef(
|
|
20442
21642
|
({ children, cellPadding, ...otherProps }, ref) => {
|
|
20443
|
-
return /* @__PURE__ */
|
|
21643
|
+
return /* @__PURE__ */ jsx128("table", { ref, css: table({ cellPadding }), ...otherProps, children });
|
|
20444
21644
|
}
|
|
20445
21645
|
);
|
|
20446
|
-
var TableHead =
|
|
21646
|
+
var TableHead = React26.forwardRef(
|
|
20447
21647
|
({ children, ...otherProps }, ref) => {
|
|
20448
|
-
return /* @__PURE__ */
|
|
21648
|
+
return /* @__PURE__ */ jsx128("thead", { ref, css: tableHead, ...otherProps, children });
|
|
20449
21649
|
}
|
|
20450
21650
|
);
|
|
20451
|
-
var TableBody =
|
|
21651
|
+
var TableBody = React26.forwardRef(
|
|
20452
21652
|
({ children, ...otherProps }, ref) => {
|
|
20453
|
-
return /* @__PURE__ */
|
|
21653
|
+
return /* @__PURE__ */ jsx128("tbody", { ref, ...otherProps, children });
|
|
20454
21654
|
}
|
|
20455
21655
|
);
|
|
20456
|
-
var TableFoot =
|
|
21656
|
+
var TableFoot = React26.forwardRef(
|
|
20457
21657
|
({ children, ...otherProps }, ref) => {
|
|
20458
|
-
return /* @__PURE__ */
|
|
21658
|
+
return /* @__PURE__ */ jsx128("tfoot", { ref, ...otherProps, children });
|
|
20459
21659
|
}
|
|
20460
21660
|
);
|
|
20461
|
-
var TableRow =
|
|
21661
|
+
var TableRow = React26.forwardRef(
|
|
20462
21662
|
({ children, ...otherProps }, ref) => {
|
|
20463
|
-
return /* @__PURE__ */
|
|
21663
|
+
return /* @__PURE__ */ jsx128("tr", { ref, css: tableRow, ...otherProps, children });
|
|
20464
21664
|
}
|
|
20465
21665
|
);
|
|
20466
|
-
var TableCellHead =
|
|
21666
|
+
var TableCellHead = React26.forwardRef(
|
|
20467
21667
|
({ children, ...otherProps }, ref) => {
|
|
20468
|
-
return /* @__PURE__ */
|
|
21668
|
+
return /* @__PURE__ */ jsx128("th", { ref, css: tableCellHead, ...otherProps, children });
|
|
20469
21669
|
}
|
|
20470
21670
|
);
|
|
20471
|
-
var TableCellData =
|
|
21671
|
+
var TableCellData = React26.forwardRef(
|
|
20472
21672
|
({ children, ...otherProps }, ref) => {
|
|
20473
|
-
return /* @__PURE__ */
|
|
21673
|
+
return /* @__PURE__ */ jsx128("td", { ref, ...otherProps, children });
|
|
20474
21674
|
}
|
|
20475
21675
|
);
|
|
20476
21676
|
|
|
@@ -20482,11 +21682,11 @@ import {
|
|
|
20482
21682
|
TabProvider as AriakitTabProvider,
|
|
20483
21683
|
useTabStore as useAriakitTabStore
|
|
20484
21684
|
} from "@ariakit/react";
|
|
20485
|
-
import { useCallback as
|
|
21685
|
+
import { useCallback as useCallback12, useEffect as useEffect19, useMemo as useMemo8 } from "react";
|
|
20486
21686
|
|
|
20487
21687
|
// src/components/Tabs/Tabs.styles.ts
|
|
20488
|
-
import { css as
|
|
20489
|
-
var tabButtonStyles =
|
|
21688
|
+
import { css as css100 } from "@emotion/react";
|
|
21689
|
+
var tabButtonStyles = css100`
|
|
20490
21690
|
align-items: center;
|
|
20491
21691
|
border: 0;
|
|
20492
21692
|
height: 2.5rem;
|
|
@@ -20503,14 +21703,14 @@ var tabButtonStyles = css97`
|
|
|
20503
21703
|
box-shadow: inset 0 -2px 0 var(--brand-secondary-3);
|
|
20504
21704
|
}
|
|
20505
21705
|
`;
|
|
20506
|
-
var tabButtonGroupStyles =
|
|
21706
|
+
var tabButtonGroupStyles = css100`
|
|
20507
21707
|
display: flex;
|
|
20508
21708
|
gap: var(--spacing-base);
|
|
20509
21709
|
border-bottom: 1px solid var(--gray-300);
|
|
20510
21710
|
`;
|
|
20511
21711
|
|
|
20512
21712
|
// src/components/Tabs/Tabs.tsx
|
|
20513
|
-
import { jsx as
|
|
21713
|
+
import { jsx as jsx129 } from "@emotion/react/jsx-runtime";
|
|
20514
21714
|
var useCurrentTab = () => {
|
|
20515
21715
|
const context = useAriakitTabStore();
|
|
20516
21716
|
if (!context) {
|
|
@@ -20526,13 +21726,13 @@ var Tabs = ({
|
|
|
20526
21726
|
manual,
|
|
20527
21727
|
...props
|
|
20528
21728
|
}) => {
|
|
20529
|
-
const selected =
|
|
21729
|
+
const selected = useMemo8(() => {
|
|
20530
21730
|
if (selectedId)
|
|
20531
21731
|
return selectedId;
|
|
20532
21732
|
return useHashForState && typeof window !== "undefined" && window.location.hash ? window.location.hash.substring(1) : void 0;
|
|
20533
21733
|
}, [selectedId, useHashForState]);
|
|
20534
21734
|
const tab = useAriakitTabStore({ ...props, selectOnMove: !manual, selectedId: selected });
|
|
20535
|
-
const onTabSelect =
|
|
21735
|
+
const onTabSelect = useCallback12(
|
|
20536
21736
|
(value) => {
|
|
20537
21737
|
const selectedValueWithoutNull = value != null ? value : void 0;
|
|
20538
21738
|
onSelectedIdChange == null ? void 0 : onSelectedIdChange(selectedValueWithoutNull);
|
|
@@ -20543,36 +21743,36 @@ var Tabs = ({
|
|
|
20543
21743
|
},
|
|
20544
21744
|
[onSelectedIdChange, useHashForState]
|
|
20545
21745
|
);
|
|
20546
|
-
|
|
21746
|
+
useEffect19(() => {
|
|
20547
21747
|
if (selected && selected !== tab.getState().activeId) {
|
|
20548
21748
|
tab.setSelectedId(selected);
|
|
20549
21749
|
}
|
|
20550
21750
|
}, [selected, tab]);
|
|
20551
|
-
return /* @__PURE__ */
|
|
21751
|
+
return /* @__PURE__ */ jsx129(AriakitTabProvider, { store: tab, setSelectedId: onTabSelect, children });
|
|
20552
21752
|
};
|
|
20553
21753
|
var TabButtonGroup = ({ children, ...props }) => {
|
|
20554
|
-
return /* @__PURE__ */
|
|
21754
|
+
return /* @__PURE__ */ jsx129(AriakitTabList, { ...props, css: tabButtonGroupStyles, children });
|
|
20555
21755
|
};
|
|
20556
21756
|
var TabButton = ({
|
|
20557
21757
|
children,
|
|
20558
21758
|
id,
|
|
20559
21759
|
...props
|
|
20560
21760
|
}) => {
|
|
20561
|
-
return /* @__PURE__ */
|
|
21761
|
+
return /* @__PURE__ */ jsx129(AriakitTab, { type: "button", id, ...props, css: tabButtonStyles, children });
|
|
20562
21762
|
};
|
|
20563
21763
|
var TabContent = ({
|
|
20564
21764
|
children,
|
|
20565
21765
|
...props
|
|
20566
21766
|
}) => {
|
|
20567
|
-
return /* @__PURE__ */
|
|
21767
|
+
return /* @__PURE__ */ jsx129(AriakitTabPanel, { ...props, children });
|
|
20568
21768
|
};
|
|
20569
21769
|
|
|
20570
21770
|
// src/components/Toast/Toast.tsx
|
|
20571
21771
|
import { toast, ToastContainer as ToastifyContainer } from "react-toastify";
|
|
20572
21772
|
|
|
20573
21773
|
// src/components/Toast/Toast.styles.ts
|
|
20574
|
-
import { css as
|
|
20575
|
-
var toastContainerStyles =
|
|
21774
|
+
import { css as css101 } from "@emotion/react";
|
|
21775
|
+
var toastContainerStyles = css101`
|
|
20576
21776
|
${functionalColors}
|
|
20577
21777
|
|
|
20578
21778
|
--toastify-color-light: white;
|
|
@@ -20795,9 +21995,9 @@ var toastContainerStyles = css98`
|
|
|
20795
21995
|
`;
|
|
20796
21996
|
|
|
20797
21997
|
// src/components/Toast/Toast.tsx
|
|
20798
|
-
import { jsx as
|
|
21998
|
+
import { jsx as jsx130 } from "@emotion/react/jsx-runtime";
|
|
20799
21999
|
var ToastContainer = ({ limit = 4 }) => {
|
|
20800
|
-
return /* @__PURE__ */
|
|
22000
|
+
return /* @__PURE__ */ jsx130(
|
|
20801
22001
|
ToastifyContainer,
|
|
20802
22002
|
{
|
|
20803
22003
|
css: toastContainerStyles,
|
|
@@ -20809,112 +22009,6 @@ var ToastContainer = ({ limit = 4 }) => {
|
|
|
20809
22009
|
}
|
|
20810
22010
|
);
|
|
20811
22011
|
};
|
|
20812
|
-
|
|
20813
|
-
// src/components/Validation/StatusBullet.styles.ts
|
|
20814
|
-
import { css as css99 } from "@emotion/react";
|
|
20815
|
-
var StatusBulletContainer = css99`
|
|
20816
|
-
align-items: center;
|
|
20817
|
-
align-self: center;
|
|
20818
|
-
color: var(--gray-500);
|
|
20819
|
-
display: inline-flex;
|
|
20820
|
-
font-weight: var(--fw-regular);
|
|
20821
|
-
gap: var(--spacing-xs);
|
|
20822
|
-
line-height: 1;
|
|
20823
|
-
position: relative;
|
|
20824
|
-
text-transform: lowercase;
|
|
20825
|
-
|
|
20826
|
-
&:before {
|
|
20827
|
-
border-radius: var(--rounded-full);
|
|
20828
|
-
content: '';
|
|
20829
|
-
display: block;
|
|
20830
|
-
}
|
|
20831
|
-
`;
|
|
20832
|
-
var StatusBulletBase = css99`
|
|
20833
|
-
font-size: var(--fs-sm);
|
|
20834
|
-
&:before {
|
|
20835
|
-
width: var(--fs-xs);
|
|
20836
|
-
height: var(--fs-xs);
|
|
20837
|
-
}
|
|
20838
|
-
`;
|
|
20839
|
-
var StatusBulletSmall = css99`
|
|
20840
|
-
font-size: var(--fs-xs);
|
|
20841
|
-
&:before {
|
|
20842
|
-
width: var(--fs-xxs);
|
|
20843
|
-
height: var(--fs-xxs);
|
|
20844
|
-
}
|
|
20845
|
-
`;
|
|
20846
|
-
var StatusDraft = css99`
|
|
20847
|
-
&:before {
|
|
20848
|
-
background: var(--white);
|
|
20849
|
-
box-shadow: inset 0 0 0 0.125rem var(--primary-action-default);
|
|
20850
|
-
}
|
|
20851
|
-
`;
|
|
20852
|
-
var StatusModified = css99`
|
|
20853
|
-
&:before {
|
|
20854
|
-
background: linear-gradient(to right, var(--white) 50%, var(--primary-action-default) 50% 100%);
|
|
20855
|
-
box-shadow: inset 0 0 0 0.125rem var(--primary-action-default);
|
|
20856
|
-
}
|
|
20857
|
-
`;
|
|
20858
|
-
var StatusError = css99`
|
|
20859
|
-
color: var(--error);
|
|
20860
|
-
&:before {
|
|
20861
|
-
/* TODO: replace this with an svg icon */
|
|
20862
|
-
background: linear-gradient(
|
|
20863
|
-
133deg,
|
|
20864
|
-
var(--error) 41%,
|
|
20865
|
-
var(--white) 42%,
|
|
20866
|
-
var(--white) 58%,
|
|
20867
|
-
var(--error) 59%
|
|
20868
|
-
);
|
|
20869
|
-
}
|
|
20870
|
-
`;
|
|
20871
|
-
var StatusPublished = css99`
|
|
20872
|
-
&:before {
|
|
20873
|
-
background: var(--primary-action-default);
|
|
20874
|
-
}
|
|
20875
|
-
`;
|
|
20876
|
-
var StatusOrphan = css99`
|
|
20877
|
-
&:before {
|
|
20878
|
-
background: var(--brand-secondary-5);
|
|
20879
|
-
}
|
|
20880
|
-
`;
|
|
20881
|
-
var StatusUnknown = css99`
|
|
20882
|
-
&:before {
|
|
20883
|
-
background: var(--gray-800);
|
|
20884
|
-
}
|
|
20885
|
-
`;
|
|
20886
|
-
|
|
20887
|
-
// src/components/Validation/StatusBullet.tsx
|
|
20888
|
-
import { jsx as jsx123 } from "@emotion/react/jsx-runtime";
|
|
20889
|
-
var StatusBullet = ({
|
|
20890
|
-
status,
|
|
20891
|
-
hideText = false,
|
|
20892
|
-
size = "base",
|
|
20893
|
-
message,
|
|
20894
|
-
...props
|
|
20895
|
-
}) => {
|
|
20896
|
-
const currentStateStyles = {
|
|
20897
|
-
Error: StatusError,
|
|
20898
|
-
Modified: StatusModified,
|
|
20899
|
-
Unsaved: StatusDraft,
|
|
20900
|
-
Orphan: StatusOrphan,
|
|
20901
|
-
Published: StatusPublished,
|
|
20902
|
-
Draft: StatusDraft,
|
|
20903
|
-
Previous: StatusDraft,
|
|
20904
|
-
Unknown: StatusUnknown
|
|
20905
|
-
};
|
|
20906
|
-
const statusSize = size === "base" ? StatusBulletBase : StatusBulletSmall;
|
|
20907
|
-
return /* @__PURE__ */ jsx123(
|
|
20908
|
-
"span",
|
|
20909
|
-
{
|
|
20910
|
-
role: "status",
|
|
20911
|
-
css: [StatusBulletContainer, currentStateStyles[status], statusSize],
|
|
20912
|
-
title: message != null ? message : status,
|
|
20913
|
-
...props,
|
|
20914
|
-
children: hideText ? null : message ? message : status
|
|
20915
|
-
}
|
|
20916
|
-
);
|
|
20917
|
-
};
|
|
20918
22012
|
export {
|
|
20919
22013
|
AddButton,
|
|
20920
22014
|
AddListButton,
|
|
@@ -20925,6 +22019,8 @@ export {
|
|
|
20925
22019
|
Banner,
|
|
20926
22020
|
Button,
|
|
20927
22021
|
ButtonWithMenu,
|
|
22022
|
+
CHECKBOX_OPERATORS,
|
|
22023
|
+
CONTENT_TYPE_OPERATORS,
|
|
20928
22024
|
Calendar,
|
|
20929
22025
|
Callout,
|
|
20930
22026
|
Caption,
|
|
@@ -20938,9 +22034,11 @@ export {
|
|
|
20938
22034
|
Counter,
|
|
20939
22035
|
CreateTeamIntegrationTile,
|
|
20940
22036
|
CurrentDrawerContext,
|
|
22037
|
+
DATE_OPERATORS,
|
|
20941
22038
|
DashedBox,
|
|
20942
22039
|
DateTimePicker,
|
|
20943
22040
|
DateTimePickerVariant,
|
|
22041
|
+
DebouncedInputKeywordSearch,
|
|
20944
22042
|
DescriptionList,
|
|
20945
22043
|
Details,
|
|
20946
22044
|
DismissibleChipAction,
|
|
@@ -20951,6 +22049,11 @@ export {
|
|
|
20951
22049
|
EditTeamIntegrationTile,
|
|
20952
22050
|
ErrorMessage,
|
|
20953
22051
|
Fieldset,
|
|
22052
|
+
FilterButton2 as FilterButton,
|
|
22053
|
+
FilterControls,
|
|
22054
|
+
FilterItem,
|
|
22055
|
+
FilterItems,
|
|
22056
|
+
FilterMenu,
|
|
20954
22057
|
Heading,
|
|
20955
22058
|
HexModalBackground,
|
|
20956
22059
|
HorizontalRhythm,
|
|
@@ -20975,6 +22078,7 @@ export {
|
|
|
20975
22078
|
IntegrationModalIcon,
|
|
20976
22079
|
IntegrationTile,
|
|
20977
22080
|
JsonEditor,
|
|
22081
|
+
LOCALE_OPERATORS,
|
|
20978
22082
|
Label,
|
|
20979
22083
|
LabelLeadingIcon,
|
|
20980
22084
|
Legend,
|
|
@@ -20995,6 +22099,7 @@ export {
|
|
|
20995
22099
|
MenuItemSeparator,
|
|
20996
22100
|
Modal,
|
|
20997
22101
|
MultilineChip,
|
|
22102
|
+
NUMBER_OPERATORS,
|
|
20998
22103
|
PageHeaderSection,
|
|
20999
22104
|
Pagination,
|
|
21000
22105
|
Paragraph,
|
|
@@ -21027,11 +22132,18 @@ export {
|
|
|
21027
22132
|
ProgressBar,
|
|
21028
22133
|
ProgressList,
|
|
21029
22134
|
ProgressListItem,
|
|
22135
|
+
RICHTEXT_OPERATORS,
|
|
21030
22136
|
ResolveIcon,
|
|
21031
22137
|
RichTextToolbarIcon,
|
|
22138
|
+
STATUS_OPERATORS,
|
|
22139
|
+
SYSTEM_FIELD_OPERATORS,
|
|
21032
22140
|
ScrollableList,
|
|
21033
22141
|
ScrollableListInputItem,
|
|
21034
22142
|
ScrollableListItem,
|
|
22143
|
+
SearchAndFilter,
|
|
22144
|
+
SearchAndFilterContext,
|
|
22145
|
+
SearchAndFilterOptionsContainer2 as SearchAndFilterOptionsContainer,
|
|
22146
|
+
SearchAndFilterProvider,
|
|
21035
22147
|
SegmentedControl,
|
|
21036
22148
|
ShortcutContext,
|
|
21037
22149
|
ShortcutRevealer,
|
|
@@ -21040,6 +22152,7 @@ export {
|
|
|
21040
22152
|
SuccessMessage,
|
|
21041
22153
|
Switch,
|
|
21042
22154
|
TAKEOVER_STACK_ID,
|
|
22155
|
+
TEXTBOX_OPERATORS,
|
|
21043
22156
|
TabButton,
|
|
21044
22157
|
TabButtonGroup,
|
|
21045
22158
|
TabContent,
|
|
@@ -21141,6 +22254,7 @@ export {
|
|
|
21141
22254
|
useIconContext,
|
|
21142
22255
|
useOutsideClick,
|
|
21143
22256
|
useParameterShell,
|
|
22257
|
+
useSearchAndFilter,
|
|
21144
22258
|
useShortcut,
|
|
21145
22259
|
warningIcon,
|
|
21146
22260
|
yesNoIcon
|