@uniformdev/design-system 19.137.1-alpha.4 → 19.138.1-alpha.4
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 +318 -456
- package/dist/index.d.mts +68 -110
- package/dist/index.d.ts +68 -110
- package/dist/index.js +323 -464
- package/package.json +4 -4
package/dist/esm/index.js
CHANGED
|
@@ -13856,6 +13856,10 @@ function InputComboBox(props) {
|
|
|
13856
13856
|
},
|
|
13857
13857
|
'&:has([aria-readonly="true"])': {
|
|
13858
13858
|
background: "var(--gray-100)",
|
|
13859
|
+
'div[class^="input-combobox__multi-value__remove"]': {
|
|
13860
|
+
borderRight: "none",
|
|
13861
|
+
display: "none"
|
|
13862
|
+
},
|
|
13859
13863
|
"&:hover": {
|
|
13860
13864
|
borderColor: "var(--gray-300)"
|
|
13861
13865
|
},
|
|
@@ -13911,7 +13915,7 @@ function InputComboBox(props) {
|
|
|
13911
13915
|
color: "var(--typography-base)"
|
|
13912
13916
|
};
|
|
13913
13917
|
},
|
|
13914
|
-
multiValueRemove: (styles) => {
|
|
13918
|
+
multiValueRemove: (styles, state) => {
|
|
13915
13919
|
return {
|
|
13916
13920
|
...styles,
|
|
13917
13921
|
background: "var(--gray-100)",
|
|
@@ -13919,7 +13923,8 @@ function InputComboBox(props) {
|
|
|
13919
13923
|
color: "var(--white)",
|
|
13920
13924
|
background: "var(--action-destructive-default)",
|
|
13921
13925
|
transition: "color var(--duration-fast) var(--timing-ease-out), background-color var(--duration-fast) var(--timing-ease-out)"
|
|
13922
|
-
}
|
|
13926
|
+
},
|
|
13927
|
+
...state.isDisabled && { display: "none" }
|
|
13923
13928
|
};
|
|
13924
13929
|
}
|
|
13925
13930
|
}
|
|
@@ -20692,22 +20697,6 @@ var SearchAndFilterButtonGroup = css92`
|
|
|
20692
20697
|
margin-top: var(--spacing-xs);
|
|
20693
20698
|
margin-left: calc(56px + var(--spacing-md));
|
|
20694
20699
|
`;
|
|
20695
|
-
var SortFilterWrapper = (hiddenLocaleInput) => css92`
|
|
20696
|
-
border-top: 1px solid var(--gray-300);
|
|
20697
|
-
align-items: center;
|
|
20698
|
-
display: grid;
|
|
20699
|
-
grid-template-columns: ${hiddenLocaleInput ? "1fr" : "1fr 200px"};
|
|
20700
|
-
gap: var(--spacing-xl);
|
|
20701
|
-
padding: var(--spacing-base) var(--spacing-md) 0;
|
|
20702
|
-
position: relative;
|
|
20703
|
-
z-index: 0;
|
|
20704
|
-
`;
|
|
20705
|
-
var SortFilterInputRow = css92`
|
|
20706
|
-
align-items: center;
|
|
20707
|
-
display: grid;
|
|
20708
|
-
grid-template-columns: 1fr auto;
|
|
20709
|
-
gap: var(--spacing-base);
|
|
20710
|
-
`;
|
|
20711
20700
|
|
|
20712
20701
|
// src/components/SearchAndFilter/FilterButton.tsx
|
|
20713
20702
|
import { jsx as jsx118, jsxs as jsxs80 } from "@emotion/react/jsx-runtime";
|
|
@@ -20886,6 +20875,7 @@ var FilterMultiChoiceEditor = ({
|
|
|
20886
20875
|
...props
|
|
20887
20876
|
}) => {
|
|
20888
20877
|
const readOnlyProps = readOnly ? readOnlyAttributes : {};
|
|
20878
|
+
const isClearable = !readOnly || !disabled2;
|
|
20889
20879
|
return /* @__PURE__ */ jsx120("div", { "data-testid": valueTestId, children: /* @__PURE__ */ jsx120(
|
|
20890
20880
|
InputComboBox,
|
|
20891
20881
|
{
|
|
@@ -20893,7 +20883,7 @@ var FilterMultiChoiceEditor = ({
|
|
|
20893
20883
|
placeholder: "Type to search...",
|
|
20894
20884
|
options,
|
|
20895
20885
|
isMulti: true,
|
|
20896
|
-
isClearable
|
|
20886
|
+
isClearable,
|
|
20897
20887
|
isDisabled: disabled2,
|
|
20898
20888
|
onChange: (e) => {
|
|
20899
20889
|
var _a;
|
|
@@ -21282,31 +21272,17 @@ var SearchAndFilterContext = createContext6({
|
|
|
21282
21272
|
},
|
|
21283
21273
|
handleDeleteFilter: () => {
|
|
21284
21274
|
},
|
|
21285
|
-
handleLocaleChange: () => {
|
|
21286
|
-
},
|
|
21287
|
-
setSortBy: () => {
|
|
21288
|
-
},
|
|
21289
|
-
sortByValue: "",
|
|
21290
21275
|
filterOptions: [],
|
|
21291
|
-
sortOptions: [],
|
|
21292
21276
|
validFilterQuery: [],
|
|
21293
21277
|
filterMapper: {},
|
|
21294
|
-
totalResults: 0
|
|
21295
|
-
localeOptions: [],
|
|
21296
|
-
localeValue: ""
|
|
21278
|
+
totalResults: 0
|
|
21297
21279
|
});
|
|
21298
21280
|
var SearchAndFilterProvider = ({
|
|
21299
21281
|
filters,
|
|
21300
21282
|
filterOptions,
|
|
21301
|
-
sortOptions,
|
|
21302
|
-
defaultSortByValue,
|
|
21303
|
-
defaultLocale = "",
|
|
21304
|
-
localeOptions,
|
|
21305
|
-
onLocaleChange,
|
|
21306
21283
|
filterVisible = false,
|
|
21307
21284
|
onSearchChange,
|
|
21308
21285
|
onChange,
|
|
21309
|
-
onSortChange,
|
|
21310
21286
|
resetFilterValues = [{ field: "", operator: "", value: "" }],
|
|
21311
21287
|
totalResults,
|
|
21312
21288
|
filterMapper: filterMapper2 = filterMapper,
|
|
@@ -21315,8 +21291,6 @@ var SearchAndFilterProvider = ({
|
|
|
21315
21291
|
const [searchTerm, setSearchTerm] = useState17("");
|
|
21316
21292
|
const deferredSearchTerm = useDeferredValue2(searchTerm);
|
|
21317
21293
|
const [filterVisibility, setFilterVisibility] = useState17(filterVisible);
|
|
21318
|
-
const [sortByValue, setSortByValue] = useState17(defaultSortByValue);
|
|
21319
|
-
const [localeValue, setLocale] = useState17(defaultLocale);
|
|
21320
21294
|
const handleSearchTerm = useCallback10(
|
|
21321
21295
|
(term) => {
|
|
21322
21296
|
setSearchTerm(term);
|
|
@@ -21324,21 +21298,7 @@ var SearchAndFilterProvider = ({
|
|
|
21324
21298
|
},
|
|
21325
21299
|
[setSearchTerm, onSearchChange]
|
|
21326
21300
|
);
|
|
21327
|
-
const
|
|
21328
|
-
(locale) => {
|
|
21329
|
-
setLocale(locale);
|
|
21330
|
-
onLocaleChange == null ? void 0 : onLocaleChange(locale);
|
|
21331
|
-
},
|
|
21332
|
-
[onLocaleChange]
|
|
21333
|
-
);
|
|
21334
|
-
const handleOnSortChange = useCallback10(
|
|
21335
|
-
(sort) => {
|
|
21336
|
-
setSortByValue(sort);
|
|
21337
|
-
onSortChange(sort);
|
|
21338
|
-
},
|
|
21339
|
-
[onSortChange]
|
|
21340
|
-
);
|
|
21341
|
-
const handleToggleFilterVisibilty = useCallback10(
|
|
21301
|
+
const handleToggleFilterVisibility = useCallback10(
|
|
21342
21302
|
(visible) => setFilterVisibility(visible),
|
|
21343
21303
|
[setFilterVisibility]
|
|
21344
21304
|
);
|
|
@@ -21380,22 +21340,16 @@ var SearchAndFilterProvider = ({
|
|
|
21380
21340
|
value: {
|
|
21381
21341
|
searchTerm: deferredSearchTerm,
|
|
21382
21342
|
setSearchTerm: (e) => handleSearchTerm(e),
|
|
21383
|
-
setSortBy: (e) => handleOnSortChange(e),
|
|
21384
|
-
sortByValue,
|
|
21385
21343
|
filterVisibility,
|
|
21386
|
-
setFilterVisibility: (e) =>
|
|
21344
|
+
setFilterVisibility: (e) => handleToggleFilterVisibility(e),
|
|
21387
21345
|
filters,
|
|
21388
21346
|
setFilters: (e) => onChange(e),
|
|
21389
21347
|
handleAddFilter,
|
|
21390
21348
|
handleResetFilters,
|
|
21391
21349
|
handleDeleteFilter,
|
|
21392
21350
|
filterOptions,
|
|
21393
|
-
sortOptions,
|
|
21394
21351
|
validFilterQuery,
|
|
21395
21352
|
totalResults,
|
|
21396
|
-
localeOptions,
|
|
21397
|
-
localeValue,
|
|
21398
|
-
handleLocaleChange,
|
|
21399
21353
|
filterMapper: filterMapper2
|
|
21400
21354
|
},
|
|
21401
21355
|
children: /* @__PURE__ */ jsx121(VerticalRhythm, { children })
|
|
@@ -21457,14 +21411,14 @@ var FilterControls = ({
|
|
|
21457
21411
|
};
|
|
21458
21412
|
|
|
21459
21413
|
// src/components/SearchAndFilter/FilterItem.tsx
|
|
21460
|
-
import { useMemo as
|
|
21414
|
+
import { useMemo as useMemo7 } from "react";
|
|
21461
21415
|
|
|
21462
21416
|
// src/components/SearchAndFilter/FilterMenu.tsx
|
|
21463
21417
|
import React24, { useEffect as useEffect20 } from "react";
|
|
21464
21418
|
import { jsx as jsx123, jsxs as jsxs83 } from "@emotion/react/jsx-runtime";
|
|
21465
21419
|
var SearchAndFilterOptionsContainer2 = ({
|
|
21466
21420
|
buttonRow,
|
|
21467
|
-
|
|
21421
|
+
additionalFiltersContainer,
|
|
21468
21422
|
children
|
|
21469
21423
|
}) => {
|
|
21470
21424
|
return /* @__PURE__ */ jsxs83("div", { css: SearchAndFilterOptionsContainer, children: [
|
|
@@ -21479,14 +21433,14 @@ var SearchAndFilterOptionsContainer2 = ({
|
|
|
21479
21433
|
children: buttonRow
|
|
21480
21434
|
}
|
|
21481
21435
|
) : null,
|
|
21482
|
-
|
|
21436
|
+
additionalFiltersContainer ? /* @__PURE__ */ jsx123("div", { children: additionalFiltersContainer }) : null
|
|
21483
21437
|
] });
|
|
21484
21438
|
};
|
|
21485
21439
|
var FilterMenu = ({
|
|
21486
21440
|
id,
|
|
21487
21441
|
filterTitle = "Show results",
|
|
21488
21442
|
menuControls,
|
|
21489
|
-
|
|
21443
|
+
additionalFiltersContainer,
|
|
21490
21444
|
children,
|
|
21491
21445
|
dataTestId,
|
|
21492
21446
|
resetButtonText = "reset"
|
|
@@ -21499,334 +21453,36 @@ var FilterMenu = ({
|
|
|
21499
21453
|
(_a = innerMenuRef.current) == null ? void 0 : _a.focus();
|
|
21500
21454
|
}
|
|
21501
21455
|
}, [filterVisibility]);
|
|
21502
|
-
return /* @__PURE__ */ jsx123(VerticalRhythm, { gap: "sm", "aria-haspopup": "true", id, "data-testid": dataTestId, children: filterVisibility ? /* @__PURE__ */ jsxs83(
|
|
21503
|
-
|
|
21504
|
-
/* @__PURE__ */ jsx123("span", { css: Title, ref: innerMenuRef, tabIndex: 0, children: filterTitle }),
|
|
21505
|
-
(filters == null ? void 0 : filters.length) ? /* @__PURE__ */ jsx123(
|
|
21506
|
-
"button",
|
|
21507
|
-
{
|
|
21508
|
-
type: "button",
|
|
21509
|
-
css: ResetConditionsBtn,
|
|
21510
|
-
onClick: () => {
|
|
21511
|
-
handleResetFilters();
|
|
21512
|
-
setFilterVisibility(false);
|
|
21513
|
-
},
|
|
21514
|
-
"data-testid": "reset-filters",
|
|
21515
|
-
children: resetButtonText
|
|
21516
|
-
}
|
|
21517
|
-
) : null
|
|
21518
|
-
] }),
|
|
21519
|
-
children
|
|
21520
|
-
] }) : null });
|
|
21521
|
-
};
|
|
21522
|
-
|
|
21523
|
-
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
21524
|
-
import { css as css95 } from "@emotion/react";
|
|
21525
|
-
import { CgCheck as CgCheck4 } from "@react-icons/all-files/cg/CgCheck";
|
|
21526
|
-
import { useCallback as useCallback11, useMemo as useMemo7 } from "react";
|
|
21527
|
-
|
|
21528
|
-
// src/components/SegmentedControl/SegmentedControl.styles.ts
|
|
21529
|
-
import { css as css94 } from "@emotion/react";
|
|
21530
|
-
var segmentedControlStyles = css94`
|
|
21531
|
-
--segmented-control-rounded-value: var(--rounded-base);
|
|
21532
|
-
--segmented-control-border-width: 1px;
|
|
21533
|
-
--segmented-control-selected-color: var(--brand-secondary-3);
|
|
21534
|
-
--segmented-control-first-border-radius: var(--segmented-control-rounded-value) 0 0
|
|
21535
|
-
var(--segmented-control-rounded-value);
|
|
21536
|
-
--segmented-control-last-border-radius: 0 var(--segmented-control-rounded-value)
|
|
21537
|
-
var(--segmented-control-rounded-value) 0;
|
|
21538
|
-
|
|
21539
|
-
position: relative;
|
|
21540
|
-
display: flex;
|
|
21541
|
-
justify-content: flex-start;
|
|
21542
|
-
width: fit-content;
|
|
21543
|
-
background-color: var(--gray-300);
|
|
21544
|
-
padding: var(--segmented-control-border-width);
|
|
21545
|
-
gap: var(--segmented-control-border-width);
|
|
21546
|
-
border-radius: calc(var(--segmented-control-rounded-value) + var(--segmented-control-border-width));
|
|
21547
|
-
font-size: var(--fs-xs);
|
|
21548
|
-
`;
|
|
21549
|
-
var segmentedControlVerticalStyles = css94`
|
|
21550
|
-
flex-direction: column;
|
|
21551
|
-
--segmented-control-first-border-radius: var(--segmented-control-rounded-value)
|
|
21552
|
-
var(--segmented-control-rounded-value) 0 0;
|
|
21553
|
-
--segmented-control-last-border-radius: 0 0 var(--segmented-control-rounded-value)
|
|
21554
|
-
var(--segmented-control-rounded-value);
|
|
21555
|
-
`;
|
|
21556
|
-
var segmentedControlItemStyles = css94`
|
|
21557
|
-
&:first-of-type label {
|
|
21558
|
-
border-radius: var(--segmented-control-first-border-radius);
|
|
21559
|
-
}
|
|
21560
|
-
&:last-of-type label {
|
|
21561
|
-
border-radius: var(--segmented-control-last-border-radius);
|
|
21562
|
-
}
|
|
21563
|
-
`;
|
|
21564
|
-
var segmentedControlInputStyles = css94`
|
|
21565
|
-
${accessibleHidden}
|
|
21566
|
-
`;
|
|
21567
|
-
var segmentedControlLabelStyles = (checked, disabled2) => css94`
|
|
21568
|
-
position: relative;
|
|
21569
|
-
display: flex;
|
|
21570
|
-
align-items: center;
|
|
21571
|
-
justify-content: center;
|
|
21572
|
-
height: 2rem;
|
|
21573
|
-
padding-inline: var(--spacing-base);
|
|
21574
|
-
background-color: white;
|
|
21575
|
-
transition-property: background-color, color, box-shadow;
|
|
21576
|
-
transition-duration: var(--duration-xfast);
|
|
21577
|
-
transition-timing-function: ease-in-out;
|
|
21578
|
-
z-index: 1;
|
|
21579
|
-
cursor: pointer;
|
|
21580
|
-
|
|
21581
|
-
&:has(:checked:not(:disabled)) {
|
|
21582
|
-
background-color: var(--segmented-control-selected-color);
|
|
21583
|
-
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
21584
|
-
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
21585
|
-
color: white;
|
|
21586
|
-
-webkit-text-stroke-width: thin;
|
|
21587
|
-
z-index: 0;
|
|
21588
|
-
}
|
|
21589
|
-
|
|
21590
|
-
&:hover:not(:has(:disabled, :checked)) {
|
|
21591
|
-
background-color: var(--gray-100);
|
|
21592
|
-
}
|
|
21593
|
-
|
|
21594
|
-
&:has(:disabled) {
|
|
21595
|
-
color: var(--gray-400);
|
|
21596
|
-
cursor: default;
|
|
21597
|
-
}
|
|
21598
|
-
|
|
21599
|
-
&:has(:checked:disabled) {
|
|
21600
|
-
color: var(--gray-50);
|
|
21601
|
-
background-color: var(--gray-400);
|
|
21602
|
-
}
|
|
21603
|
-
|
|
21604
|
-
// Firefox fallback using emotion variables
|
|
21605
|
-
// we can delete this whole block of code and variables in SegmentedControl.tsx
|
|
21606
|
-
// once Firefox supports :has selector
|
|
21607
|
-
@supports not selector(:has(*)) {
|
|
21608
|
-
// equivalent to &:has(:checked:not(:disabled))
|
|
21609
|
-
${checked && !disabled2 ? `
|
|
21610
|
-
background-color: var(--segmented-control-selected-color);
|
|
21611
|
-
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
21612
|
-
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
21613
|
-
color: white;
|
|
21614
|
-
-webkit-text-stroke-width: thin;
|
|
21615
|
-
z-index: 0;` : void 0}
|
|
21616
|
-
|
|
21617
|
-
// equivalent to &:hover:not(:has(:disabled, :checked))
|
|
21618
|
-
&:hover {
|
|
21619
|
-
${!checked && !disabled2 ? `background-color: var(--gray-100);` : void 0}
|
|
21620
|
-
}
|
|
21621
|
-
|
|
21622
|
-
// equivalent to &:has(:disabled)
|
|
21623
|
-
${disabled2 ? `
|
|
21624
|
-
color: var(--gray-400);
|
|
21625
|
-
cursor: default;` : void 0}
|
|
21626
|
-
|
|
21627
|
-
// equivalent to &:has(:checked:disabled)
|
|
21628
|
-
${checked && disabled2 && `
|
|
21629
|
-
color: var(--gray-50);
|
|
21630
|
-
background-color: var(--gray-400);
|
|
21631
|
-
`}
|
|
21632
|
-
}
|
|
21633
|
-
`;
|
|
21634
|
-
var segmentedControlLabelIconOnlyStyles = css94`
|
|
21635
|
-
padding-inline: 0.5em;
|
|
21636
|
-
`;
|
|
21637
|
-
var segmentedControlLabelCheckStyles = css94`
|
|
21638
|
-
opacity: 0.5;
|
|
21639
|
-
`;
|
|
21640
|
-
var segmentedControlLabelContentStyles = css94`
|
|
21641
|
-
display: flex;
|
|
21642
|
-
align-items: center;
|
|
21643
|
-
justify-content: center;
|
|
21644
|
-
gap: var(--spacing-sm);
|
|
21645
|
-
height: 100%;
|
|
21646
|
-
`;
|
|
21647
|
-
var segmentedControlLabelTextStyles = css94``;
|
|
21648
|
-
|
|
21649
|
-
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
21650
|
-
import { jsx as jsx124, jsxs as jsxs84 } from "@emotion/react/jsx-runtime";
|
|
21651
|
-
var SegmentedControl = ({
|
|
21652
|
-
name,
|
|
21653
|
-
options,
|
|
21654
|
-
value,
|
|
21655
|
-
onChange,
|
|
21656
|
-
noCheckmark = false,
|
|
21657
|
-
disabled: disabled2 = false,
|
|
21658
|
-
orientation = "horizontal",
|
|
21659
|
-
size = "md",
|
|
21660
|
-
hideOptionText = false,
|
|
21661
|
-
iconSize = "1.5em",
|
|
21662
|
-
...props
|
|
21663
|
-
}) => {
|
|
21664
|
-
const onOptionChange = useCallback11(
|
|
21665
|
-
(event) => {
|
|
21666
|
-
if (event.target.checked) {
|
|
21667
|
-
onChange == null ? void 0 : onChange(options[parseInt(event.target.value)].value);
|
|
21668
|
-
}
|
|
21669
|
-
},
|
|
21670
|
-
[options, onChange]
|
|
21671
|
-
);
|
|
21672
|
-
const sizeStyles = useMemo7(() => {
|
|
21673
|
-
const map = {
|
|
21674
|
-
sm: css95({ height: "calc(24px - 2px)", fontSize: "var(--fs-xs)" }),
|
|
21675
|
-
md: css95({ height: "calc(32px - 2px)", fontSize: "var(--fs-sm)" }),
|
|
21676
|
-
lg: css95({ height: "calc(40px - 2px)", fontSize: "var(--fs-base)" }),
|
|
21677
|
-
xl: css95({ height: "calc(48px - 2px)", fontSize: "var(--fs-base)" })
|
|
21678
|
-
};
|
|
21679
|
-
return map[size];
|
|
21680
|
-
}, [size]);
|
|
21681
|
-
const isIconOnly = useMemo7(() => {
|
|
21682
|
-
return options.every((option) => option && option.icon && !option.label);
|
|
21683
|
-
}, [options]);
|
|
21684
|
-
return /* @__PURE__ */ jsx124(
|
|
21685
|
-
"div",
|
|
21456
|
+
return /* @__PURE__ */ jsx123(VerticalRhythm, { gap: "sm", "aria-haspopup": "true", id, "data-testid": dataTestId, children: filterVisibility ? /* @__PURE__ */ jsxs83(
|
|
21457
|
+
SearchAndFilterOptionsContainer2,
|
|
21686
21458
|
{
|
|
21687
|
-
|
|
21688
|
-
|
|
21689
|
-
|
|
21690
|
-
|
|
21691
|
-
|
|
21692
|
-
|
|
21693
|
-
|
|
21694
|
-
|
|
21695
|
-
|
|
21696
|
-
|
|
21697
|
-
|
|
21698
|
-
|
|
21699
|
-
|
|
21700
|
-
css: segmentedControlItemStyles,
|
|
21701
|
-
"data-testid": option["data-testid"] ? option["data-testid"] : "container-segmented-control",
|
|
21702
|
-
children: /* @__PURE__ */ jsxs84(
|
|
21703
|
-
"label",
|
|
21704
|
-
{
|
|
21705
|
-
css: [
|
|
21706
|
-
segmentedControlLabelStyles(option.value === value, isDisabled),
|
|
21707
|
-
sizeStyles,
|
|
21708
|
-
isIconOnly ? segmentedControlLabelIconOnlyStyles : void 0
|
|
21709
|
-
],
|
|
21710
|
-
children: [
|
|
21711
|
-
/* @__PURE__ */ jsx124(
|
|
21712
|
-
"input",
|
|
21713
|
-
{
|
|
21714
|
-
css: segmentedControlInputStyles,
|
|
21715
|
-
type: "radio",
|
|
21716
|
-
name,
|
|
21717
|
-
value: index,
|
|
21718
|
-
checked: option.value === value,
|
|
21719
|
-
onChange: onOptionChange,
|
|
21720
|
-
disabled: isDisabled
|
|
21721
|
-
}
|
|
21722
|
-
),
|
|
21723
|
-
option.value !== value || noCheckmark ? null : /* @__PURE__ */ jsx124(CgCheck4, { css: segmentedControlLabelCheckStyles, "aria-label": "Selected", size: "1.5em" }),
|
|
21724
|
-
/* @__PURE__ */ jsxs84("span", { css: segmentedControlLabelContentStyles, children: [
|
|
21725
|
-
!option.icon ? null : /* @__PURE__ */ jsx124(Icon, { icon: option.icon, size: iconSize, iconColor: "currentColor" }),
|
|
21726
|
-
!text || hideOptionText ? null : /* @__PURE__ */ jsx124("span", { css: segmentedControlLabelTextStyles, children: text })
|
|
21727
|
-
] })
|
|
21728
|
-
]
|
|
21729
|
-
}
|
|
21730
|
-
)
|
|
21731
|
-
}
|
|
21732
|
-
) }, JSON.stringify(option.value));
|
|
21733
|
-
})
|
|
21734
|
-
}
|
|
21735
|
-
);
|
|
21736
|
-
};
|
|
21737
|
-
|
|
21738
|
-
// src/components/SearchAndFilter/SortItems.tsx
|
|
21739
|
-
import { jsx as jsx125, jsxs as jsxs85 } from "@emotion/react/jsx-runtime";
|
|
21740
|
-
var SortItems = ({ sortByLabel = "Sort by", localeLabel = "Locale returned" }) => {
|
|
21741
|
-
var _a, _b;
|
|
21742
|
-
const { sortOptions, setSortBy, sortByValue, localeValue, localeOptions, handleLocaleChange } = useSearchAndFilter();
|
|
21743
|
-
const hideLocaleOptions = !localeOptions;
|
|
21744
|
-
const values = sortByValue.split("_");
|
|
21745
|
-
const sortDirection = values.pop();
|
|
21746
|
-
const sortField = values.join("_");
|
|
21747
|
-
const currentSelectedOption = (_b = (_a = sortOptions.find((item) => {
|
|
21748
|
-
var _a2;
|
|
21749
|
-
return (_a2 = item.options) == null ? void 0 : _a2.find((option) => option.value === sortField);
|
|
21750
|
-
})) == null ? void 0 : _a.options) == null ? void 0 : _b.find((nestedOption) => nestedOption.value === sortField);
|
|
21751
|
-
return /* @__PURE__ */ jsxs85("div", { css: [SortFilterWrapper(hideLocaleOptions)], "data-testid": "sorting-options", children: [
|
|
21752
|
-
/* @__PURE__ */ jsxs85(VerticalRhythm, { gap: "xs", children: [
|
|
21753
|
-
/* @__PURE__ */ jsx125("span", { css: Title, children: sortByLabel }),
|
|
21754
|
-
/* @__PURE__ */ jsxs85("div", { css: SortFilterInputRow, children: [
|
|
21755
|
-
/* @__PURE__ */ jsx125(
|
|
21756
|
-
InputComboBox,
|
|
21757
|
-
{
|
|
21758
|
-
id: "sort-by-field",
|
|
21759
|
-
"aria-label": "Sort by",
|
|
21760
|
-
options: sortOptions,
|
|
21761
|
-
onChange: (e) => {
|
|
21762
|
-
const fieldName = e == null ? void 0 : e.value;
|
|
21763
|
-
setSortBy(`${fieldName}_${sortDirection}`);
|
|
21764
|
-
},
|
|
21765
|
-
styles: {
|
|
21766
|
-
menu(base) {
|
|
21767
|
-
return {
|
|
21768
|
-
...base,
|
|
21769
|
-
minWidth: "max-content"
|
|
21770
|
-
};
|
|
21771
|
-
}
|
|
21772
|
-
},
|
|
21773
|
-
value: currentSelectedOption
|
|
21774
|
-
}
|
|
21775
|
-
),
|
|
21776
|
-
/* @__PURE__ */ jsx125(
|
|
21777
|
-
SegmentedControl,
|
|
21778
|
-
{
|
|
21779
|
-
noCheckmark: true,
|
|
21780
|
-
name: "sortBy",
|
|
21781
|
-
hideOptionText: true,
|
|
21782
|
-
iconSize: "1rem",
|
|
21783
|
-
size: "xl",
|
|
21784
|
-
options: [
|
|
21785
|
-
{
|
|
21786
|
-
label: "Ascending",
|
|
21787
|
-
icon: "arrow-up",
|
|
21788
|
-
value: `ASC`,
|
|
21789
|
-
tooltip: "Ascending (e.g. A-Z, newest to oldest)",
|
|
21790
|
-
"data-testid": "sort-ascending"
|
|
21459
|
+
buttonRow: menuControls,
|
|
21460
|
+
additionalFiltersContainer,
|
|
21461
|
+
children: [
|
|
21462
|
+
/* @__PURE__ */ jsxs83(HorizontalRhythm, { gap: "sm", align: "center", justify: "space-between", children: [
|
|
21463
|
+
/* @__PURE__ */ jsx123("span", { css: Title, ref: innerMenuRef, tabIndex: 0, children: filterTitle }),
|
|
21464
|
+
(filters == null ? void 0 : filters.length) ? /* @__PURE__ */ jsx123(
|
|
21465
|
+
"button",
|
|
21466
|
+
{
|
|
21467
|
+
type: "button",
|
|
21468
|
+
css: ResetConditionsBtn,
|
|
21469
|
+
onClick: () => {
|
|
21470
|
+
handleResetFilters();
|
|
21471
|
+
setFilterVisibility(false);
|
|
21791
21472
|
},
|
|
21792
|
-
|
|
21793
|
-
|
|
21794
|
-
|
|
21795
|
-
|
|
21796
|
-
|
|
21797
|
-
|
|
21798
|
-
|
|
21799
|
-
|
|
21800
|
-
|
|
21801
|
-
value: sortDirection
|
|
21802
|
-
}
|
|
21803
|
-
)
|
|
21804
|
-
] })
|
|
21805
|
-
] }),
|
|
21806
|
-
hideLocaleOptions ? null : /* @__PURE__ */ jsxs85(VerticalRhythm, { gap: "xs", children: [
|
|
21807
|
-
/* @__PURE__ */ jsx125("span", { css: Title, children: localeLabel }),
|
|
21808
|
-
/* @__PURE__ */ jsx125(
|
|
21809
|
-
InputSelect,
|
|
21810
|
-
{
|
|
21811
|
-
name: "localeReturned",
|
|
21812
|
-
"aria-label": "Locale returned",
|
|
21813
|
-
label: "Locale returned",
|
|
21814
|
-
showLabel: false,
|
|
21815
|
-
"data-testid": "context-locale",
|
|
21816
|
-
onChange: (e) => {
|
|
21817
|
-
var _a2;
|
|
21818
|
-
return handleLocaleChange((_a2 = e.currentTarget.value) != null ? _a2 : "");
|
|
21819
|
-
},
|
|
21820
|
-
options: localeOptions,
|
|
21821
|
-
value: localeValue
|
|
21822
|
-
}
|
|
21823
|
-
)
|
|
21824
|
-
] })
|
|
21825
|
-
] });
|
|
21473
|
+
"data-testid": "reset-filters",
|
|
21474
|
+
children: resetButtonText
|
|
21475
|
+
}
|
|
21476
|
+
) : null
|
|
21477
|
+
] }),
|
|
21478
|
+
children
|
|
21479
|
+
]
|
|
21480
|
+
}
|
|
21481
|
+
) : null });
|
|
21826
21482
|
};
|
|
21827
21483
|
|
|
21828
21484
|
// src/components/SearchAndFilter/FilterItem.tsx
|
|
21829
|
-
import { jsx as
|
|
21485
|
+
import { jsx as jsx124, jsxs as jsxs84 } from "@emotion/react/jsx-runtime";
|
|
21830
21486
|
var FilterItem = ({
|
|
21831
21487
|
index,
|
|
21832
21488
|
paramOptions,
|
|
@@ -21842,7 +21498,7 @@ var FilterItem = ({
|
|
|
21842
21498
|
const operatorLabel = filters[index].operator !== "" ? `operator ${filters[index].operator}` : "unknown operator";
|
|
21843
21499
|
const metaDataLabel = filters[index].value !== "" ? `value ${filters[index].value}` : "unknown value";
|
|
21844
21500
|
const metaDataPossibleOptions = (_b = (_a = operatorOptions.find((op) => filters[index].operator === op.value)) == null ? void 0 : _a.editorType) != null ? _b : "singleChoice";
|
|
21845
|
-
const { selectedFieldValue, selectedOperatorValue, selectedMetaValue, readOnly, bindable } =
|
|
21501
|
+
const { selectedFieldValue, selectedOperatorValue, selectedMetaValue, readOnly, bindable } = useMemo7(() => {
|
|
21846
21502
|
var _a2;
|
|
21847
21503
|
const currentSelectedFilter = filterOptions.find((item) => {
|
|
21848
21504
|
var _a3;
|
|
@@ -21869,10 +21525,10 @@ var FilterItem = ({
|
|
|
21869
21525
|
menuIsOpen: false,
|
|
21870
21526
|
isClearable: false
|
|
21871
21527
|
} : {};
|
|
21872
|
-
return /* @__PURE__ */
|
|
21873
|
-
/* @__PURE__ */
|
|
21874
|
-
/* @__PURE__ */
|
|
21875
|
-
/* @__PURE__ */
|
|
21528
|
+
return /* @__PURE__ */ jsxs84("div", { css: ConditionalFilterRow, "data-testid": "filter-item", children: [
|
|
21529
|
+
/* @__PURE__ */ jsx124("span", { children: index === 0 ? "Where" : "and" }),
|
|
21530
|
+
/* @__PURE__ */ jsxs84("div", { css: ConditionalInputRow, children: [
|
|
21531
|
+
/* @__PURE__ */ jsx124(
|
|
21876
21532
|
InputComboBox,
|
|
21877
21533
|
{
|
|
21878
21534
|
"aria-label": label,
|
|
@@ -21899,7 +21555,7 @@ var FilterItem = ({
|
|
|
21899
21555
|
name: `filter-field-${index}`
|
|
21900
21556
|
}
|
|
21901
21557
|
),
|
|
21902
|
-
/* @__PURE__ */
|
|
21558
|
+
/* @__PURE__ */ jsx124(
|
|
21903
21559
|
InputComboBox,
|
|
21904
21560
|
{
|
|
21905
21561
|
"aria-label": operatorLabel,
|
|
@@ -21923,7 +21579,7 @@ var FilterItem = ({
|
|
|
21923
21579
|
name: `filter-operator-${index}`
|
|
21924
21580
|
}
|
|
21925
21581
|
),
|
|
21926
|
-
/* @__PURE__ */
|
|
21582
|
+
/* @__PURE__ */ jsx124(
|
|
21927
21583
|
FilterEditorRenderer,
|
|
21928
21584
|
{
|
|
21929
21585
|
"aria-label": metaDataLabel,
|
|
@@ -21937,7 +21593,7 @@ var FilterItem = ({
|
|
|
21937
21593
|
valueTestId: "filter-value"
|
|
21938
21594
|
}
|
|
21939
21595
|
),
|
|
21940
|
-
readOnly || index === 0 ? null : /* @__PURE__ */
|
|
21596
|
+
readOnly || index === 0 ? null : /* @__PURE__ */ jsx124(
|
|
21941
21597
|
"button",
|
|
21942
21598
|
{
|
|
21943
21599
|
type: "button",
|
|
@@ -21945,13 +21601,16 @@ var FilterItem = ({
|
|
|
21945
21601
|
"aria-label": "delete filter",
|
|
21946
21602
|
css: IconBtn,
|
|
21947
21603
|
"data-testid": "delete-filter",
|
|
21948
|
-
children: /* @__PURE__ */
|
|
21604
|
+
children: /* @__PURE__ */ jsx124(Icon, { icon: "trash", iconColor: "red", size: "1rem" })
|
|
21949
21605
|
}
|
|
21950
21606
|
)
|
|
21951
21607
|
] })
|
|
21952
21608
|
] });
|
|
21953
21609
|
};
|
|
21954
|
-
var FilterItems = ({
|
|
21610
|
+
var FilterItems = ({
|
|
21611
|
+
addButtonText = "add condition",
|
|
21612
|
+
additionalFiltersContainer
|
|
21613
|
+
}) => {
|
|
21955
21614
|
const { filterOptions, filters, setFilters, handleAddFilter } = useSearchAndFilter();
|
|
21956
21615
|
const handleUpdateFilter = (index, prop, value) => {
|
|
21957
21616
|
var _a, _b, _c, _d, _e;
|
|
@@ -21981,12 +21640,12 @@ var FilterItems = ({ addButtonText = "add condition" }) => {
|
|
|
21981
21640
|
}
|
|
21982
21641
|
setFilters(next);
|
|
21983
21642
|
};
|
|
21984
|
-
return /* @__PURE__ */
|
|
21643
|
+
return /* @__PURE__ */ jsx124(
|
|
21985
21644
|
FilterMenu,
|
|
21986
21645
|
{
|
|
21987
21646
|
id: "search-and-filter-options",
|
|
21988
21647
|
dataTestId: "search-and-filter-options",
|
|
21989
|
-
menuControls: /* @__PURE__ */
|
|
21648
|
+
menuControls: /* @__PURE__ */ jsxs84(
|
|
21990
21649
|
"button",
|
|
21991
21650
|
{
|
|
21992
21651
|
type: "button",
|
|
@@ -21994,12 +21653,12 @@ var FilterItems = ({ addButtonText = "add condition" }) => {
|
|
|
21994
21653
|
onClick: handleAddFilter,
|
|
21995
21654
|
"data-testid": "add-filter",
|
|
21996
21655
|
children: [
|
|
21997
|
-
/* @__PURE__ */
|
|
21656
|
+
/* @__PURE__ */ jsx124(Icon, { icon: "math-plus", iconColor: "currentColor", size: "1rem" }),
|
|
21998
21657
|
addButtonText
|
|
21999
21658
|
]
|
|
22000
21659
|
}
|
|
22001
21660
|
),
|
|
22002
|
-
|
|
21661
|
+
additionalFiltersContainer,
|
|
22003
21662
|
children: filters.map((item, i) => {
|
|
22004
21663
|
var _a, _b, _c, _d, _e, _f;
|
|
22005
21664
|
const availableTypeOptions = (_b = (_a = filterOptions.find((fo) => {
|
|
@@ -22008,7 +21667,7 @@ var FilterItems = ({ addButtonText = "add condition" }) => {
|
|
|
22008
21667
|
})) == null ? void 0 : _a.options) != null ? _b : [];
|
|
22009
21668
|
const possibleValueOptions = (_d = (_c = availableTypeOptions == null ? void 0 : availableTypeOptions.find((op) => op.value === item.field)) == null ? void 0 : _c.valueOptions) != null ? _d : [];
|
|
22010
21669
|
const possibleOperators = (_f = (_e = availableTypeOptions == null ? void 0 : availableTypeOptions.find((op) => op.value === item.field)) == null ? void 0 : _e.operatorOptions) != null ? _f : [];
|
|
22011
|
-
return /* @__PURE__ */
|
|
21670
|
+
return /* @__PURE__ */ jsx124(
|
|
22012
21671
|
FilterItem,
|
|
22013
21672
|
{
|
|
22014
21673
|
index: i,
|
|
@@ -22027,7 +21686,7 @@ var FilterItems = ({ addButtonText = "add condition" }) => {
|
|
|
22027
21686
|
};
|
|
22028
21687
|
|
|
22029
21688
|
// src/components/SearchAndFilter/SearchAndFilterResultContainer.tsx
|
|
22030
|
-
import { Fragment as Fragment21, jsx as
|
|
21689
|
+
import { Fragment as Fragment21, jsx as jsx125, jsxs as jsxs85 } from "@emotion/react/jsx-runtime";
|
|
22031
21690
|
var SearchAndFilterResultContainer = ({
|
|
22032
21691
|
buttonText,
|
|
22033
21692
|
clearButtonLabel = "clear",
|
|
@@ -22061,75 +21720,63 @@ var SearchAndFilterResultContainer = ({
|
|
|
22061
21720
|
if (totalResults && totalResults > 0) {
|
|
22062
21721
|
return null;
|
|
22063
21722
|
}
|
|
22064
|
-
return /* @__PURE__ */
|
|
22065
|
-
/* @__PURE__ */
|
|
22066
|
-
/* @__PURE__ */
|
|
21723
|
+
return /* @__PURE__ */ jsxs85(Fragment21, { children: [
|
|
21724
|
+
/* @__PURE__ */ jsxs85(HorizontalRhythm, { children: [
|
|
21725
|
+
/* @__PURE__ */ jsxs85("span", { children: [
|
|
22067
21726
|
totalResults,
|
|
22068
21727
|
" results ",
|
|
22069
21728
|
searchTerm ? `for "${searchTerm}"` : null
|
|
22070
21729
|
] }),
|
|
22071
|
-
!searchTerm ? null : /* @__PURE__ */
|
|
21730
|
+
!searchTerm ? null : /* @__PURE__ */ jsx125(Button, { buttonType: "ghostDestructive", size: "zero", onClick: () => setSearchTerm(""), children: clearButtonLabel })
|
|
22072
21731
|
] }),
|
|
22073
|
-
totalResults === 0 ? /* @__PURE__ */
|
|
22074
|
-
calloutText ? /* @__PURE__ */
|
|
22075
|
-
/* @__PURE__ */
|
|
21732
|
+
totalResults === 0 ? /* @__PURE__ */ jsxs85(Callout, { title: calloutTitle2 != null ? calloutTitle2 : automateCalloutTitle(), type: "note", children: [
|
|
21733
|
+
calloutText ? /* @__PURE__ */ jsx125(Paragraph, { children: calloutText }) : null,
|
|
21734
|
+
/* @__PURE__ */ jsx125(Button, { buttonType: "tertiaryOutline", size: "xs", onClick: onHandleClear != null ? onHandleClear : handleResetFilters, children: buttonText != null ? buttonText : "Clear search" })
|
|
22076
21735
|
] }) : null
|
|
22077
21736
|
] });
|
|
22078
21737
|
};
|
|
22079
21738
|
|
|
22080
21739
|
// src/components/SearchAndFilter/SearchAndFilter.tsx
|
|
22081
|
-
import { jsx as
|
|
21740
|
+
import { jsx as jsx126, jsxs as jsxs86 } from "@emotion/react/jsx-runtime";
|
|
22082
21741
|
var SearchAndFilter = ({
|
|
22083
21742
|
filters,
|
|
22084
21743
|
filterOptions,
|
|
22085
21744
|
filterVisible,
|
|
22086
|
-
sortOptions,
|
|
22087
|
-
defaultSortByValue,
|
|
22088
21745
|
filterControls,
|
|
22089
21746
|
viewSwitchControls,
|
|
22090
|
-
resultsContainerView = /* @__PURE__ */
|
|
22091
|
-
children = /* @__PURE__ */ jsx128(FilterItems, {}),
|
|
21747
|
+
resultsContainerView = /* @__PURE__ */ jsx126(SearchAndFilterResultContainer, {}),
|
|
22092
21748
|
filterMapper: filterMapper2 = filterMapper,
|
|
21749
|
+
additionalFiltersContainer,
|
|
22093
21750
|
onChange,
|
|
22094
21751
|
onSearchChange,
|
|
22095
|
-
onSortChange,
|
|
22096
|
-
onLocaleChange,
|
|
22097
21752
|
totalResults,
|
|
22098
|
-
resetFilterValues = []
|
|
22099
|
-
defaultLocale,
|
|
22100
|
-
localeOptions
|
|
21753
|
+
resetFilterValues = []
|
|
22101
21754
|
}) => {
|
|
22102
|
-
return /* @__PURE__ */
|
|
21755
|
+
return /* @__PURE__ */ jsx126(
|
|
22103
21756
|
SearchAndFilterProvider,
|
|
22104
21757
|
{
|
|
22105
21758
|
filters,
|
|
22106
21759
|
filterOptions,
|
|
22107
21760
|
filterVisible,
|
|
22108
|
-
defaultSortByValue,
|
|
22109
|
-
sortOptions,
|
|
22110
21761
|
onChange,
|
|
22111
21762
|
onSearchChange,
|
|
22112
|
-
onSortChange,
|
|
22113
21763
|
totalResults,
|
|
22114
21764
|
resetFilterValues,
|
|
22115
|
-
defaultLocale,
|
|
22116
|
-
localeOptions,
|
|
22117
|
-
onLocaleChange,
|
|
22118
21765
|
filterMapper: filterMapper2,
|
|
22119
|
-
children: /* @__PURE__ */
|
|
22120
|
-
/* @__PURE__ */
|
|
22121
|
-
/* @__PURE__ */
|
|
21766
|
+
children: /* @__PURE__ */ jsxs86(VerticalRhythm, { css: SearchAndFilterContainer, "data-testid": "search-and-filter", children: [
|
|
21767
|
+
/* @__PURE__ */ jsxs86("div", { css: SearchAndFilterOutterControlWrapper(viewSwitchControls ? "1fr auto" : "1fr"), children: [
|
|
21768
|
+
/* @__PURE__ */ jsx126(
|
|
22122
21769
|
"div",
|
|
22123
21770
|
{
|
|
22124
21771
|
css: SearchAndFilterControlsWrapper(
|
|
22125
21772
|
viewSwitchControls ? "auto 1fr 0.05fr" : "auto auto 1fr"
|
|
22126
21773
|
),
|
|
22127
|
-
children: !filterControls ? /* @__PURE__ */
|
|
21774
|
+
children: !filterControls ? /* @__PURE__ */ jsx126(FilterControls, { hideSearchInput: !onSearchChange }) : filterControls
|
|
22128
21775
|
}
|
|
22129
21776
|
),
|
|
22130
21777
|
viewSwitchControls
|
|
22131
21778
|
] }),
|
|
22132
|
-
|
|
21779
|
+
/* @__PURE__ */ jsx126(FilterItems, { additionalFiltersContainer }),
|
|
22133
21780
|
resultsContainerView
|
|
22134
21781
|
] })
|
|
22135
21782
|
}
|
|
@@ -22139,7 +21786,7 @@ var SearchAndFilter = ({
|
|
|
22139
21786
|
// src/components/SearchAndFilter/SearchOnlyFilter.tsx
|
|
22140
21787
|
import { createContext as createContext7, useState as useState19 } from "react";
|
|
22141
21788
|
import { useDebounce as useDebounce4 } from "react-use";
|
|
22142
|
-
import { jsx as
|
|
21789
|
+
import { jsx as jsx127 } from "@emotion/react/jsx-runtime";
|
|
22143
21790
|
var SearchOnlyContext = createContext7({
|
|
22144
21791
|
searchTerm: "",
|
|
22145
21792
|
setSearchTerm: () => {
|
|
@@ -22156,14 +21803,14 @@ var SearchOnlyFilter = ({ onSearchChange, maxWidth }) => {
|
|
|
22156
21803
|
300,
|
|
22157
21804
|
[localeSearchTerm]
|
|
22158
21805
|
);
|
|
22159
|
-
return /* @__PURE__ */
|
|
21806
|
+
return /* @__PURE__ */ jsx127(
|
|
22160
21807
|
SearchOnlyContext.Provider,
|
|
22161
21808
|
{
|
|
22162
21809
|
value: {
|
|
22163
21810
|
searchTerm,
|
|
22164
21811
|
setSearchTerm: setLocaleSearchTerm
|
|
22165
21812
|
},
|
|
22166
|
-
children: /* @__PURE__ */
|
|
21813
|
+
children: /* @__PURE__ */ jsx127("div", { css: { maxWidth: maxWidth != null ? maxWidth : "712px" }, children: /* @__PURE__ */ jsx127(
|
|
22167
21814
|
InputKeywordSearch,
|
|
22168
21815
|
{
|
|
22169
21816
|
placeholder: "Search...",
|
|
@@ -22177,6 +21824,221 @@ var SearchOnlyFilter = ({ onSearchChange, maxWidth }) => {
|
|
|
22177
21824
|
);
|
|
22178
21825
|
};
|
|
22179
21826
|
|
|
21827
|
+
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
21828
|
+
import { css as css95 } from "@emotion/react";
|
|
21829
|
+
import { CgCheck as CgCheck4 } from "@react-icons/all-files/cg/CgCheck";
|
|
21830
|
+
import { useCallback as useCallback11, useMemo as useMemo8 } from "react";
|
|
21831
|
+
|
|
21832
|
+
// src/components/SegmentedControl/SegmentedControl.styles.ts
|
|
21833
|
+
import { css as css94 } from "@emotion/react";
|
|
21834
|
+
var segmentedControlStyles = css94`
|
|
21835
|
+
--segmented-control-rounded-value: var(--rounded-base);
|
|
21836
|
+
--segmented-control-border-width: 1px;
|
|
21837
|
+
--segmented-control-selected-color: var(--brand-secondary-3);
|
|
21838
|
+
--segmented-control-first-border-radius: var(--segmented-control-rounded-value) 0 0
|
|
21839
|
+
var(--segmented-control-rounded-value);
|
|
21840
|
+
--segmented-control-last-border-radius: 0 var(--segmented-control-rounded-value)
|
|
21841
|
+
var(--segmented-control-rounded-value) 0;
|
|
21842
|
+
|
|
21843
|
+
position: relative;
|
|
21844
|
+
display: flex;
|
|
21845
|
+
justify-content: flex-start;
|
|
21846
|
+
width: fit-content;
|
|
21847
|
+
background-color: var(--gray-300);
|
|
21848
|
+
padding: var(--segmented-control-border-width);
|
|
21849
|
+
gap: var(--segmented-control-border-width);
|
|
21850
|
+
border-radius: calc(var(--segmented-control-rounded-value) + var(--segmented-control-border-width));
|
|
21851
|
+
font-size: var(--fs-xs);
|
|
21852
|
+
`;
|
|
21853
|
+
var segmentedControlVerticalStyles = css94`
|
|
21854
|
+
flex-direction: column;
|
|
21855
|
+
--segmented-control-first-border-radius: var(--segmented-control-rounded-value)
|
|
21856
|
+
var(--segmented-control-rounded-value) 0 0;
|
|
21857
|
+
--segmented-control-last-border-radius: 0 0 var(--segmented-control-rounded-value)
|
|
21858
|
+
var(--segmented-control-rounded-value);
|
|
21859
|
+
`;
|
|
21860
|
+
var segmentedControlItemStyles = css94`
|
|
21861
|
+
&:first-of-type label {
|
|
21862
|
+
border-radius: var(--segmented-control-first-border-radius);
|
|
21863
|
+
}
|
|
21864
|
+
&:last-of-type label {
|
|
21865
|
+
border-radius: var(--segmented-control-last-border-radius);
|
|
21866
|
+
}
|
|
21867
|
+
`;
|
|
21868
|
+
var segmentedControlInputStyles = css94`
|
|
21869
|
+
${accessibleHidden}
|
|
21870
|
+
`;
|
|
21871
|
+
var segmentedControlLabelStyles = (checked, disabled2) => css94`
|
|
21872
|
+
position: relative;
|
|
21873
|
+
display: flex;
|
|
21874
|
+
align-items: center;
|
|
21875
|
+
justify-content: center;
|
|
21876
|
+
height: 2rem;
|
|
21877
|
+
padding-inline: var(--spacing-base);
|
|
21878
|
+
background-color: white;
|
|
21879
|
+
transition-property: background-color, color, box-shadow;
|
|
21880
|
+
transition-duration: var(--duration-xfast);
|
|
21881
|
+
transition-timing-function: ease-in-out;
|
|
21882
|
+
z-index: 1;
|
|
21883
|
+
cursor: pointer;
|
|
21884
|
+
|
|
21885
|
+
&:has(:checked:not(:disabled)) {
|
|
21886
|
+
background-color: var(--segmented-control-selected-color);
|
|
21887
|
+
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
21888
|
+
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
21889
|
+
color: white;
|
|
21890
|
+
-webkit-text-stroke-width: thin;
|
|
21891
|
+
z-index: 0;
|
|
21892
|
+
}
|
|
21893
|
+
|
|
21894
|
+
&:hover:not(:has(:disabled, :checked)) {
|
|
21895
|
+
background-color: var(--gray-100);
|
|
21896
|
+
}
|
|
21897
|
+
|
|
21898
|
+
&:has(:disabled) {
|
|
21899
|
+
color: var(--gray-400);
|
|
21900
|
+
cursor: default;
|
|
21901
|
+
}
|
|
21902
|
+
|
|
21903
|
+
&:has(:checked:disabled) {
|
|
21904
|
+
color: var(--gray-50);
|
|
21905
|
+
background-color: var(--gray-400);
|
|
21906
|
+
}
|
|
21907
|
+
|
|
21908
|
+
// Firefox fallback using emotion variables
|
|
21909
|
+
// we can delete this whole block of code and variables in SegmentedControl.tsx
|
|
21910
|
+
// once Firefox supports :has selector
|
|
21911
|
+
@supports not selector(:has(*)) {
|
|
21912
|
+
// equivalent to &:has(:checked:not(:disabled))
|
|
21913
|
+
${checked && !disabled2 ? `
|
|
21914
|
+
background-color: var(--segmented-control-selected-color);
|
|
21915
|
+
outline: var(--segmented-control-border-width) solid var(--segmented-control-selected-color);
|
|
21916
|
+
box-shadow: 0 0.43em 1.7em 0 rgba(0, 0, 0, 0.15);
|
|
21917
|
+
color: white;
|
|
21918
|
+
-webkit-text-stroke-width: thin;
|
|
21919
|
+
z-index: 0;` : void 0}
|
|
21920
|
+
|
|
21921
|
+
// equivalent to &:hover:not(:has(:disabled, :checked))
|
|
21922
|
+
&:hover {
|
|
21923
|
+
${!checked && !disabled2 ? `background-color: var(--gray-100);` : void 0}
|
|
21924
|
+
}
|
|
21925
|
+
|
|
21926
|
+
// equivalent to &:has(:disabled)
|
|
21927
|
+
${disabled2 ? `
|
|
21928
|
+
color: var(--gray-400);
|
|
21929
|
+
cursor: default;` : void 0}
|
|
21930
|
+
|
|
21931
|
+
// equivalent to &:has(:checked:disabled)
|
|
21932
|
+
${checked && disabled2 && `
|
|
21933
|
+
color: var(--gray-50);
|
|
21934
|
+
background-color: var(--gray-400);
|
|
21935
|
+
`}
|
|
21936
|
+
}
|
|
21937
|
+
`;
|
|
21938
|
+
var segmentedControlLabelIconOnlyStyles = css94`
|
|
21939
|
+
padding-inline: 0.5em;
|
|
21940
|
+
`;
|
|
21941
|
+
var segmentedControlLabelCheckStyles = css94`
|
|
21942
|
+
opacity: 0.5;
|
|
21943
|
+
`;
|
|
21944
|
+
var segmentedControlLabelContentStyles = css94`
|
|
21945
|
+
display: flex;
|
|
21946
|
+
align-items: center;
|
|
21947
|
+
justify-content: center;
|
|
21948
|
+
gap: var(--spacing-sm);
|
|
21949
|
+
height: 100%;
|
|
21950
|
+
`;
|
|
21951
|
+
var segmentedControlLabelTextStyles = css94``;
|
|
21952
|
+
|
|
21953
|
+
// src/components/SegmentedControl/SegmentedControl.tsx
|
|
21954
|
+
import { jsx as jsx128, jsxs as jsxs87 } from "@emotion/react/jsx-runtime";
|
|
21955
|
+
var SegmentedControl = ({
|
|
21956
|
+
name,
|
|
21957
|
+
options,
|
|
21958
|
+
value,
|
|
21959
|
+
onChange,
|
|
21960
|
+
noCheckmark = false,
|
|
21961
|
+
disabled: disabled2 = false,
|
|
21962
|
+
orientation = "horizontal",
|
|
21963
|
+
size = "md",
|
|
21964
|
+
hideOptionText = false,
|
|
21965
|
+
iconSize = "1.5em",
|
|
21966
|
+
...props
|
|
21967
|
+
}) => {
|
|
21968
|
+
const onOptionChange = useCallback11(
|
|
21969
|
+
(event) => {
|
|
21970
|
+
if (event.target.checked) {
|
|
21971
|
+
onChange == null ? void 0 : onChange(options[parseInt(event.target.value)].value);
|
|
21972
|
+
}
|
|
21973
|
+
},
|
|
21974
|
+
[options, onChange]
|
|
21975
|
+
);
|
|
21976
|
+
const sizeStyles = useMemo8(() => {
|
|
21977
|
+
const map = {
|
|
21978
|
+
sm: css95({ height: "calc(24px - 2px)", fontSize: "var(--fs-xs)" }),
|
|
21979
|
+
md: css95({ height: "calc(32px - 2px)", fontSize: "var(--fs-sm)" }),
|
|
21980
|
+
lg: css95({ height: "calc(40px - 2px)", fontSize: "var(--fs-base)" }),
|
|
21981
|
+
xl: css95({ height: "calc(48px - 2px)", fontSize: "var(--fs-base)" })
|
|
21982
|
+
};
|
|
21983
|
+
return map[size];
|
|
21984
|
+
}, [size]);
|
|
21985
|
+
const isIconOnly = useMemo8(() => {
|
|
21986
|
+
return options.every((option) => option && option.icon && !option.label);
|
|
21987
|
+
}, [options]);
|
|
21988
|
+
return /* @__PURE__ */ jsx128(
|
|
21989
|
+
"div",
|
|
21990
|
+
{
|
|
21991
|
+
css: [segmentedControlStyles, orientation === "vertical" ? segmentedControlVerticalStyles : void 0],
|
|
21992
|
+
...props,
|
|
21993
|
+
"data-testid": "segmented-control",
|
|
21994
|
+
children: options.map((option, index) => {
|
|
21995
|
+
var _a;
|
|
21996
|
+
if (!option) {
|
|
21997
|
+
return null;
|
|
21998
|
+
}
|
|
21999
|
+
const text = option.label ? option.label : option.icon ? null : String(option.value);
|
|
22000
|
+
const isDisabled = disabled2 || option.disabled;
|
|
22001
|
+
return /* @__PURE__ */ jsx128(Tooltip, { title: (_a = option.tooltip) != null ? _a : "", children: /* @__PURE__ */ jsx128(
|
|
22002
|
+
"div",
|
|
22003
|
+
{
|
|
22004
|
+
css: segmentedControlItemStyles,
|
|
22005
|
+
"data-testid": option["data-testid"] ? option["data-testid"] : "container-segmented-control",
|
|
22006
|
+
children: /* @__PURE__ */ jsxs87(
|
|
22007
|
+
"label",
|
|
22008
|
+
{
|
|
22009
|
+
css: [
|
|
22010
|
+
segmentedControlLabelStyles(option.value === value, isDisabled),
|
|
22011
|
+
sizeStyles,
|
|
22012
|
+
isIconOnly ? segmentedControlLabelIconOnlyStyles : void 0
|
|
22013
|
+
],
|
|
22014
|
+
children: [
|
|
22015
|
+
/* @__PURE__ */ jsx128(
|
|
22016
|
+
"input",
|
|
22017
|
+
{
|
|
22018
|
+
css: segmentedControlInputStyles,
|
|
22019
|
+
type: "radio",
|
|
22020
|
+
name,
|
|
22021
|
+
value: index,
|
|
22022
|
+
checked: option.value === value,
|
|
22023
|
+
onChange: onOptionChange,
|
|
22024
|
+
disabled: isDisabled
|
|
22025
|
+
}
|
|
22026
|
+
),
|
|
22027
|
+
option.value !== value || noCheckmark ? null : /* @__PURE__ */ jsx128(CgCheck4, { css: segmentedControlLabelCheckStyles, "aria-label": "Selected", size: "1.5em" }),
|
|
22028
|
+
/* @__PURE__ */ jsxs87("span", { css: segmentedControlLabelContentStyles, children: [
|
|
22029
|
+
!option.icon ? null : /* @__PURE__ */ jsx128(Icon, { icon: option.icon, size: iconSize, iconColor: "currentColor" }),
|
|
22030
|
+
!text || hideOptionText ? null : /* @__PURE__ */ jsx128("span", { css: segmentedControlLabelTextStyles, children: text })
|
|
22031
|
+
] })
|
|
22032
|
+
]
|
|
22033
|
+
}
|
|
22034
|
+
)
|
|
22035
|
+
}
|
|
22036
|
+
) }, JSON.stringify(option.value));
|
|
22037
|
+
})
|
|
22038
|
+
}
|
|
22039
|
+
);
|
|
22040
|
+
};
|
|
22041
|
+
|
|
22180
22042
|
// src/components/Skeleton/Skeleton.styles.ts
|
|
22181
22043
|
import { css as css96, keyframes as keyframes5 } from "@emotion/react";
|
|
22182
22044
|
var lightFadingOut = keyframes5`
|
|
@@ -22189,7 +22051,7 @@ var skeletonStyles = css96`
|
|
|
22189
22051
|
`;
|
|
22190
22052
|
|
|
22191
22053
|
// src/components/Skeleton/Skeleton.tsx
|
|
22192
|
-
import { jsx as
|
|
22054
|
+
import { jsx as jsx129 } from "@emotion/react/jsx-runtime";
|
|
22193
22055
|
var Skeleton = ({
|
|
22194
22056
|
width = "100%",
|
|
22195
22057
|
height = "1.25rem",
|
|
@@ -22197,7 +22059,7 @@ var Skeleton = ({
|
|
|
22197
22059
|
circle = false,
|
|
22198
22060
|
children,
|
|
22199
22061
|
...otherProps
|
|
22200
|
-
}) => /* @__PURE__ */
|
|
22062
|
+
}) => /* @__PURE__ */ jsx129(
|
|
22201
22063
|
"div",
|
|
22202
22064
|
{
|
|
22203
22065
|
css: [
|
|
@@ -22304,19 +22166,19 @@ var SwitchText = css97`
|
|
|
22304
22166
|
`;
|
|
22305
22167
|
|
|
22306
22168
|
// src/components/Switch/Switch.tsx
|
|
22307
|
-
import { Fragment as Fragment22, jsx as
|
|
22169
|
+
import { Fragment as Fragment22, jsx as jsx130, jsxs as jsxs88 } from "@emotion/react/jsx-runtime";
|
|
22308
22170
|
var Switch = React26.forwardRef(
|
|
22309
22171
|
({ label, infoText, toggleText, children, ...inputProps }, ref) => {
|
|
22310
22172
|
let additionalText = infoText;
|
|
22311
22173
|
if (infoText && toggleText) {
|
|
22312
22174
|
additionalText = inputProps.checked ? toggleText : infoText;
|
|
22313
22175
|
}
|
|
22314
|
-
return /* @__PURE__ */
|
|
22315
|
-
/* @__PURE__ */
|
|
22316
|
-
/* @__PURE__ */
|
|
22317
|
-
/* @__PURE__ */
|
|
22176
|
+
return /* @__PURE__ */ jsxs88(Fragment22, { children: [
|
|
22177
|
+
/* @__PURE__ */ jsxs88("label", { css: [SwitchInputContainer, inputProps.disabled ? SwitchInputDisabled : void 0], children: [
|
|
22178
|
+
/* @__PURE__ */ jsx130("input", { type: "checkbox", css: SwitchInput, ...inputProps, ref }),
|
|
22179
|
+
/* @__PURE__ */ jsx130("span", { css: SwitchInputLabel, children: label })
|
|
22318
22180
|
] }),
|
|
22319
|
-
additionalText ? /* @__PURE__ */
|
|
22181
|
+
additionalText ? /* @__PURE__ */ jsx130("p", { css: SwitchText, children: additionalText }) : null,
|
|
22320
22182
|
children
|
|
22321
22183
|
] });
|
|
22322
22184
|
}
|
|
@@ -22353,40 +22215,40 @@ var tableCellHead = css98`
|
|
|
22353
22215
|
`;
|
|
22354
22216
|
|
|
22355
22217
|
// src/components/Table/Table.tsx
|
|
22356
|
-
import { jsx as
|
|
22218
|
+
import { jsx as jsx131 } from "@emotion/react/jsx-runtime";
|
|
22357
22219
|
var Table = React27.forwardRef(
|
|
22358
22220
|
({ children, cellPadding, ...otherProps }, ref) => {
|
|
22359
|
-
return /* @__PURE__ */
|
|
22221
|
+
return /* @__PURE__ */ jsx131("table", { ref, css: table({ cellPadding }), ...otherProps, children });
|
|
22360
22222
|
}
|
|
22361
22223
|
);
|
|
22362
22224
|
var TableHead = React27.forwardRef(
|
|
22363
22225
|
({ children, ...otherProps }, ref) => {
|
|
22364
|
-
return /* @__PURE__ */
|
|
22226
|
+
return /* @__PURE__ */ jsx131("thead", { ref, css: tableHead, ...otherProps, children });
|
|
22365
22227
|
}
|
|
22366
22228
|
);
|
|
22367
22229
|
var TableBody = React27.forwardRef(
|
|
22368
22230
|
({ children, ...otherProps }, ref) => {
|
|
22369
|
-
return /* @__PURE__ */
|
|
22231
|
+
return /* @__PURE__ */ jsx131("tbody", { ref, ...otherProps, children });
|
|
22370
22232
|
}
|
|
22371
22233
|
);
|
|
22372
22234
|
var TableFoot = React27.forwardRef(
|
|
22373
22235
|
({ children, ...otherProps }, ref) => {
|
|
22374
|
-
return /* @__PURE__ */
|
|
22236
|
+
return /* @__PURE__ */ jsx131("tfoot", { ref, ...otherProps, children });
|
|
22375
22237
|
}
|
|
22376
22238
|
);
|
|
22377
22239
|
var TableRow = React27.forwardRef(
|
|
22378
22240
|
({ children, ...otherProps }, ref) => {
|
|
22379
|
-
return /* @__PURE__ */
|
|
22241
|
+
return /* @__PURE__ */ jsx131("tr", { ref, css: tableRow, ...otherProps, children });
|
|
22380
22242
|
}
|
|
22381
22243
|
);
|
|
22382
22244
|
var TableCellHead = React27.forwardRef(
|
|
22383
22245
|
({ children, ...otherProps }, ref) => {
|
|
22384
|
-
return /* @__PURE__ */
|
|
22246
|
+
return /* @__PURE__ */ jsx131("th", { ref, css: tableCellHead, ...otherProps, children });
|
|
22385
22247
|
}
|
|
22386
22248
|
);
|
|
22387
22249
|
var TableCellData = React27.forwardRef(
|
|
22388
22250
|
({ children, ...otherProps }, ref) => {
|
|
22389
|
-
return /* @__PURE__ */
|
|
22251
|
+
return /* @__PURE__ */ jsx131("td", { ref, ...otherProps, children });
|
|
22390
22252
|
}
|
|
22391
22253
|
);
|
|
22392
22254
|
|
|
@@ -22426,7 +22288,7 @@ var tabButtonGroupStyles = css99`
|
|
|
22426
22288
|
`;
|
|
22427
22289
|
|
|
22428
22290
|
// src/components/Tabs/Tabs.tsx
|
|
22429
|
-
import { jsx as
|
|
22291
|
+
import { jsx as jsx132 } from "@emotion/react/jsx-runtime";
|
|
22430
22292
|
var useCurrentTab = () => {
|
|
22431
22293
|
const context = useAriakitTabStore();
|
|
22432
22294
|
if (!context) {
|
|
@@ -22464,23 +22326,23 @@ var Tabs = ({
|
|
|
22464
22326
|
tab.setSelectedId(selected);
|
|
22465
22327
|
}
|
|
22466
22328
|
}, [selected, tab]);
|
|
22467
|
-
return /* @__PURE__ */
|
|
22329
|
+
return /* @__PURE__ */ jsx132(AriakitTabProvider, { store: tab, setSelectedId: onTabSelect, children });
|
|
22468
22330
|
};
|
|
22469
22331
|
var TabButtonGroup = ({ children, ...props }) => {
|
|
22470
|
-
return /* @__PURE__ */
|
|
22332
|
+
return /* @__PURE__ */ jsx132(AriakitTabList, { ...props, css: tabButtonGroupStyles, children });
|
|
22471
22333
|
};
|
|
22472
22334
|
var TabButton = ({
|
|
22473
22335
|
children,
|
|
22474
22336
|
id,
|
|
22475
22337
|
...props
|
|
22476
22338
|
}) => {
|
|
22477
|
-
return /* @__PURE__ */
|
|
22339
|
+
return /* @__PURE__ */ jsx132(AriakitTab, { type: "button", id, ...props, css: tabButtonStyles, children });
|
|
22478
22340
|
};
|
|
22479
22341
|
var TabContent = ({
|
|
22480
22342
|
children,
|
|
22481
22343
|
...props
|
|
22482
22344
|
}) => {
|
|
22483
|
-
return /* @__PURE__ */
|
|
22345
|
+
return /* @__PURE__ */ jsx132(AriakitTabPanel, { ...props, children });
|
|
22484
22346
|
};
|
|
22485
22347
|
|
|
22486
22348
|
// src/components/Toast/Toast.tsx
|
|
@@ -22711,9 +22573,9 @@ var toastContainerStyles = css100`
|
|
|
22711
22573
|
`;
|
|
22712
22574
|
|
|
22713
22575
|
// src/components/Toast/Toast.tsx
|
|
22714
|
-
import { jsx as
|
|
22576
|
+
import { jsx as jsx133 } from "@emotion/react/jsx-runtime";
|
|
22715
22577
|
var ToastContainer = ({ limit = 4 }) => {
|
|
22716
|
-
return /* @__PURE__ */
|
|
22578
|
+
return /* @__PURE__ */ jsx133(
|
|
22717
22579
|
ToastifyContainer,
|
|
22718
22580
|
{
|
|
22719
22581
|
css: toastContainerStyles,
|