opus-toolkit-components 1.9.3 → 1.9.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/lib/main.js
CHANGED
|
@@ -1624,122 +1624,544 @@ function Dropdown(_ref) {
|
|
|
1624
1624
|
|
|
1625
1625
|
/***/ },
|
|
1626
1626
|
|
|
1627
|
-
/***/
|
|
1627
|
+
/***/ 80754
|
|
1628
1628
|
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1629
1629
|
|
|
1630
1630
|
__webpack_require__.r(__webpack_exports__);
|
|
1631
1631
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1632
|
-
/* harmony export */ "default": () => (/* binding */
|
|
1632
|
+
/* harmony export */ "default": () => (/* binding */ SearchDropdown)
|
|
1633
1633
|
/* harmony export */ });
|
|
1634
1634
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9206);
|
|
1635
1635
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1636
|
-
/* harmony import */ var
|
|
1637
|
-
/* harmony import */ var
|
|
1638
|
-
/* harmony import */ var
|
|
1639
|
-
/* harmony import */ var
|
|
1640
|
-
/* harmony import */ var
|
|
1641
|
-
/* harmony import */ var
|
|
1642
|
-
/* harmony import */ var _Text_Text__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21111);
|
|
1643
|
-
/* harmony import */ var _utils_getDataCy__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(67339);
|
|
1644
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(94178);
|
|
1645
|
-
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__);
|
|
1636
|
+
/* harmony import */ var _Text_Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21111);
|
|
1637
|
+
/* harmony import */ var _headlessui_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39788);
|
|
1638
|
+
/* harmony import */ var _heroicons_react_20_solid__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29257);
|
|
1639
|
+
/* harmony import */ var _utils_getDataCy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67339);
|
|
1640
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94178);
|
|
1641
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
|
|
1646
1642
|
|
|
1647
1643
|
|
|
1648
1644
|
|
|
1649
1645
|
|
|
1650
1646
|
|
|
1651
1647
|
|
|
1648
|
+
/**
|
|
1649
|
+
* @typedef {Object} SearchDropdownItem
|
|
1650
|
+
* @property {string} label
|
|
1651
|
+
* @property {string|number} value
|
|
1652
|
+
*/
|
|
1652
1653
|
|
|
1654
|
+
/**
|
|
1655
|
+
* @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
|
|
1656
|
+
*/
|
|
1653
1657
|
|
|
1658
|
+
/**
|
|
1659
|
+
* @typedef {{ target: { name: string, value: string|number } }} SearchDropdownChangeEvent
|
|
1660
|
+
*/
|
|
1654
1661
|
|
|
1662
|
+
/**
|
|
1663
|
+
* @typedef {Object} SearchDropdownProps
|
|
1664
|
+
* @property {SearchDropdownItem[]} [items]
|
|
1665
|
+
* @property {string} [label]
|
|
1666
|
+
* @property {boolean} [isValid]
|
|
1667
|
+
* @property {boolean} [required]
|
|
1668
|
+
* @property {string} [placeholder]
|
|
1669
|
+
* @property {string} [searchPlaceholder]
|
|
1670
|
+
* @property {string} [name]
|
|
1671
|
+
* @property {string} [className]
|
|
1672
|
+
* @property {string} [title]
|
|
1673
|
+
* @property {string|number} [tabIndex]
|
|
1674
|
+
* @property {(event: SearchDropdownChangeEvent) => void} [onChange]
|
|
1675
|
+
* @property {string|number} [value]
|
|
1676
|
+
* @property {IconComponent} [Icon]
|
|
1677
|
+
* @property {string} [errorMessage]
|
|
1678
|
+
* @property {boolean} [disabled]
|
|
1679
|
+
* @property {string} [noResultsText]
|
|
1680
|
+
* @property {string} [dataCy]
|
|
1681
|
+
*/
|
|
1655
1682
|
|
|
1656
|
-
/**
|
|
1657
|
-
* @
|
|
1658
|
-
* @property {string} label
|
|
1659
|
-
* @property {string} value
|
|
1683
|
+
/**
|
|
1684
|
+
* @param {SearchDropdownProps & React.HTMLAttributes<HTMLDivElement>} props
|
|
1660
1685
|
*/
|
|
1661
1686
|
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1687
|
+
function SearchDropdown(_ref) {
|
|
1688
|
+
let {
|
|
1689
|
+
items = [],
|
|
1690
|
+
label = "Test Label",
|
|
1691
|
+
isValid = true,
|
|
1692
|
+
required = false,
|
|
1693
|
+
placeholder = "Example Placeholder",
|
|
1694
|
+
searchPlaceholder = "Search",
|
|
1695
|
+
name,
|
|
1696
|
+
className = "",
|
|
1697
|
+
title = "",
|
|
1698
|
+
tabIndex = "",
|
|
1699
|
+
onChange,
|
|
1700
|
+
value,
|
|
1701
|
+
Icon,
|
|
1702
|
+
errorMessage = "This field is required",
|
|
1703
|
+
disabled = false,
|
|
1704
|
+
noResultsText = "No options found",
|
|
1705
|
+
dataCy,
|
|
1706
|
+
...rest
|
|
1707
|
+
} = _ref;
|
|
1708
|
+
const [selectedItem, setSelectedItem] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
|
|
1709
|
+
const [searchTerm, setSearchTerm] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("");
|
|
1710
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
1711
|
+
const newSelectedItem = items.find(item => item.value === value) || null;
|
|
1712
|
+
setSelectedItem(newSelectedItem);
|
|
1713
|
+
}, [value, items]);
|
|
1714
|
+
const filteredItems = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
|
|
1715
|
+
const normalizedSearchTerm = searchTerm.trim().toLowerCase();
|
|
1716
|
+
if (!normalizedSearchTerm) {
|
|
1717
|
+
return items;
|
|
1718
|
+
}
|
|
1719
|
+
return items.filter(item => item.label.toLowerCase().includes(normalizedSearchTerm));
|
|
1720
|
+
}, [items, searchTerm]);
|
|
1721
|
+
const inputClasses = `inline-flex w-full justify-between items-center rounded-md bg-[--color-input-bg] text-md font-normal border p-2 text-[--color-text-strong] ${isValid ? "border-[--color-stroke]" : "border-utilRed1000"} ${disabled ? "opacity-50 cursor-not-allowed" : ""}`;
|
|
1722
|
+
const handleSelect = (item, close) => {
|
|
1723
|
+
if (disabled) return;
|
|
1724
|
+
setSelectedItem(item);
|
|
1725
|
+
setSearchTerm("");
|
|
1726
|
+
onChange?.({
|
|
1727
|
+
target: {
|
|
1728
|
+
name,
|
|
1729
|
+
value: item.value
|
|
1730
|
+
}
|
|
1731
|
+
});
|
|
1732
|
+
close();
|
|
1733
|
+
};
|
|
1734
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
|
|
1735
|
+
className: `mb-4 flex flex-col ${className}`,
|
|
1736
|
+
...rest,
|
|
1737
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_Text_Text__WEBPACK_IMPORTED_MODULE_1__["default"], {
|
|
1738
|
+
as: "label",
|
|
1739
|
+
variant: "label",
|
|
1740
|
+
className: "mb-1",
|
|
1741
|
+
htmlFor: name,
|
|
1742
|
+
children: [label, required && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
|
|
1743
|
+
className: "ml-1 text-[--color-util-red]",
|
|
1744
|
+
children: "*"
|
|
1745
|
+
})]
|
|
1746
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_headlessui_react__WEBPACK_IMPORTED_MODULE_2__.Menu, {
|
|
1747
|
+
children: _ref2 => {
|
|
1748
|
+
let {
|
|
1749
|
+
open,
|
|
1750
|
+
close
|
|
1751
|
+
} = _ref2;
|
|
1752
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
|
|
1753
|
+
className: "relative",
|
|
1754
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_headlessui_react__WEBPACK_IMPORTED_MODULE_2__.MenuButton, {
|
|
1755
|
+
id: name,
|
|
1756
|
+
name: name,
|
|
1757
|
+
title: title,
|
|
1758
|
+
"aria-invalid": !isValid,
|
|
1759
|
+
"aria-describedby": !isValid ? `${name}-error` : undefined,
|
|
1760
|
+
tabIndex: tabIndex,
|
|
1761
|
+
disabled: disabled,
|
|
1762
|
+
"data-cy": (0,_utils_getDataCy__WEBPACK_IMPORTED_MODULE_4__.getDataCy)({
|
|
1763
|
+
name,
|
|
1764
|
+
dataCy
|
|
1765
|
+
}),
|
|
1766
|
+
className: inputClasses,
|
|
1767
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
|
|
1768
|
+
className: "flex items-center gap-2",
|
|
1769
|
+
children: [Icon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Icon, {
|
|
1770
|
+
className: "h-5 w-5 text-[--color-text-weak]"
|
|
1771
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
|
|
1772
|
+
children: selectedItem ? selectedItem.label : placeholder
|
|
1773
|
+
})]
|
|
1774
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_heroicons_react_20_solid__WEBPACK_IMPORTED_MODULE_3__.ChevronDownIcon, {
|
|
1775
|
+
"aria-hidden": "true",
|
|
1776
|
+
className: `ml-3 mr-1 h-5 w-5 bg-transparent text-[--color-text-strong] transition-transform duration-200 ${open ? "rotate-180" : "rotate-0"}`
|
|
1777
|
+
})]
|
|
1778
|
+
}), !disabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_headlessui_react__WEBPACK_IMPORTED_MODULE_2__.MenuItems, {
|
|
1779
|
+
className: "ring-opacity-1 absolute left-0 z-10 mt-2 w-[100%] origin-top-right rounded-md bg-[--color-primary-bg] shadow-lg ring-1 ring-[--color-stroke] focus:outline-none",
|
|
1780
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
|
|
1781
|
+
className: "border-b border-[--color-stroke] p-2",
|
|
1782
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("input", {
|
|
1783
|
+
type: "text",
|
|
1784
|
+
value: searchTerm,
|
|
1785
|
+
onChange: event => setSearchTerm(event.target.value),
|
|
1786
|
+
placeholder: searchPlaceholder,
|
|
1787
|
+
className: "w-full rounded-md border border-[--color-stroke] bg-[--color-input-bg] px-3 py-2 text-sm text-[--color-text-strong] focus:outline-none",
|
|
1788
|
+
"data-cy": dataCy ? `${dataCy}-search` : undefined
|
|
1789
|
+
})
|
|
1790
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
|
|
1791
|
+
className: "max-h-48 overflow-y-auto py-1",
|
|
1792
|
+
children: [filteredItems.length === 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
|
|
1793
|
+
className: "px-4 py-2 text-sm text-[--color-text-weak]",
|
|
1794
|
+
children: noResultsText
|
|
1795
|
+
}), filteredItems.map((item, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_headlessui_react__WEBPACK_IMPORTED_MODULE_2__.MenuItem, {
|
|
1796
|
+
children: _ref3 => {
|
|
1797
|
+
let {
|
|
1798
|
+
active
|
|
1799
|
+
} = _ref3;
|
|
1800
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("button", {
|
|
1801
|
+
type: "button",
|
|
1802
|
+
onClick: () => handleSelect(item, close),
|
|
1803
|
+
className: `block w-full px-4 py-2 text-left text-sm text-[--color-text-strong] ${active ? "bg-[--color-input-bg]" : ""}`,
|
|
1804
|
+
children: item.label
|
|
1805
|
+
});
|
|
1806
|
+
}
|
|
1807
|
+
}, `${item.value}-${index}`))]
|
|
1808
|
+
})]
|
|
1809
|
+
})]
|
|
1810
|
+
});
|
|
1811
|
+
}
|
|
1812
|
+
}), !isValid && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Text_Text__WEBPACK_IMPORTED_MODULE_1__["default"], {
|
|
1813
|
+
as: "span",
|
|
1814
|
+
variant: "small",
|
|
1815
|
+
id: `${name}-error`,
|
|
1816
|
+
className: "mt-1 text-[--color-util-red]",
|
|
1817
|
+
children: errorMessage
|
|
1818
|
+
})]
|
|
1819
|
+
});
|
|
1820
|
+
}
|
|
1821
|
+
|
|
1822
|
+
/***/ },
|
|
1823
|
+
|
|
1824
|
+
/***/ 38333
|
|
1825
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
1826
|
+
|
|
1827
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1828
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1829
|
+
/* harmony export */ "default": () => (/* binding */ SearchMultiSelectDropdown)
|
|
1830
|
+
/* harmony export */ });
|
|
1831
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9206);
|
|
1832
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1833
|
+
/* harmony import */ var _Text_Text__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21111);
|
|
1834
|
+
/* harmony import */ var _Buttons_Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(74670);
|
|
1835
|
+
/* harmony import */ var _headlessui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39788);
|
|
1836
|
+
/* harmony import */ var _heroicons_react_20_solid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29257);
|
|
1837
|
+
/* harmony import */ var _utils_getDataCy__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67339);
|
|
1838
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(94178);
|
|
1839
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__);
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
|
|
1843
|
+
|
|
1844
|
+
|
|
1845
|
+
|
|
1846
|
+
|
|
1847
|
+
/**
|
|
1848
|
+
* @typedef {Object} SearchMultiSelectDropdownItem
|
|
1849
|
+
* @property {string} label
|
|
1850
|
+
* @property {string|number} value
|
|
1677
1851
|
*/
|
|
1678
1852
|
|
|
1679
|
-
/**
|
|
1680
|
-
* @typedef {
|
|
1681
|
-
* @property {boolean} isOpen
|
|
1682
|
-
* @property {string[]} selectedValues
|
|
1683
|
-
* @property {(values: string[] | ((currentValues: string[]) => string[])) => void} setSelectedValues
|
|
1684
|
-
* @property {(value: string) => void} toggleValue
|
|
1685
|
-
* @property {string} searchTerm
|
|
1686
|
-
* @property {(value: string) => void} setSearchTerm
|
|
1687
|
-
* @property {FilterPopoverOption[]} filteredOptions
|
|
1688
|
-
* @property {() => void} closePopover
|
|
1853
|
+
/**
|
|
1854
|
+
* @typedef {(props: React.SVGProps<SVGSVGElement>) => JSX.Element} IconComponent
|
|
1689
1855
|
*/
|
|
1690
1856
|
|
|
1691
|
-
/**
|
|
1692
|
-
* @
|
|
1857
|
+
/**
|
|
1858
|
+
* @typedef {{ target: { name: string, value: Array<string|number> } }} SearchMultiSelectDropdownChangeEvent
|
|
1693
1859
|
*/
|
|
1694
1860
|
|
|
1695
|
-
|
|
1861
|
+
/**
|
|
1862
|
+
* @typedef {Object} SearchMultiSelectDropdownProps
|
|
1863
|
+
* @property {SearchMultiSelectDropdownItem[]} [items]
|
|
1864
|
+
* @property {string} [label]
|
|
1865
|
+
* @property {boolean} [isValid]
|
|
1866
|
+
* @property {boolean} [required]
|
|
1867
|
+
* @property {string} [placeholder]
|
|
1868
|
+
* @property {string} [searchPlaceholder]
|
|
1869
|
+
* @property {string} [name]
|
|
1870
|
+
* @property {string} [className]
|
|
1871
|
+
* @property {string} [title]
|
|
1872
|
+
* @property {string|number} [tabIndex]
|
|
1873
|
+
* @property {(event: SearchMultiSelectDropdownChangeEvent) => void} [onChange]
|
|
1874
|
+
* @property {(event: SearchMultiSelectDropdownChangeEvent) => void} [onApply]
|
|
1875
|
+
* @property {Array<string|number>} [value]
|
|
1876
|
+
* @property {IconComponent} [Icon]
|
|
1877
|
+
* @property {string} [errorMessage]
|
|
1878
|
+
* @property {boolean} [disabled]
|
|
1879
|
+
* @property {string} [noResultsText]
|
|
1880
|
+
* @property {string} [applyButtonText]
|
|
1881
|
+
* @property {React.ReactNode | ((context: {
|
|
1882
|
+
* close: () => void,
|
|
1883
|
+
* searchTerm: string,
|
|
1884
|
+
* filteredItems: SearchMultiSelectDropdownItem[],
|
|
1885
|
+
* selectedItems: SearchMultiSelectDropdownItem[],
|
|
1886
|
+
* selectedValues: Array<string|number>,
|
|
1887
|
+
* applySelection: () => void
|
|
1888
|
+
* }) => React.ReactNode)} [footer]
|
|
1889
|
+
* @property {string} [dataCy]
|
|
1890
|
+
*/
|
|
1891
|
+
|
|
1892
|
+
/**
|
|
1893
|
+
* @param {SearchMultiSelectDropdownProps & React.HTMLAttributes<HTMLDivElement>} props
|
|
1894
|
+
*/
|
|
1895
|
+
|
|
1896
|
+
function SearchMultiSelectDropdown(_ref) {
|
|
1696
1897
|
let {
|
|
1697
|
-
|
|
1698
|
-
|
|
1898
|
+
items = [],
|
|
1899
|
+
label = "Test Label",
|
|
1900
|
+
isValid = true,
|
|
1901
|
+
required = false,
|
|
1902
|
+
placeholder = "Select options",
|
|
1903
|
+
searchPlaceholder = "Search",
|
|
1904
|
+
name,
|
|
1905
|
+
className = "",
|
|
1906
|
+
title = "",
|
|
1907
|
+
tabIndex = "",
|
|
1908
|
+
onChange,
|
|
1699
1909
|
onApply,
|
|
1700
|
-
|
|
1701
|
-
|
|
1910
|
+
value = [],
|
|
1911
|
+
Icon,
|
|
1912
|
+
errorMessage = "This field is required",
|
|
1913
|
+
disabled = false,
|
|
1914
|
+
noResultsText = "No options found",
|
|
1915
|
+
applyButtonText = "Apply",
|
|
1916
|
+
footer,
|
|
1917
|
+
dataCy,
|
|
1918
|
+
...rest
|
|
1919
|
+
} = _ref;
|
|
1920
|
+
const [searchTerm, setSearchTerm] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("");
|
|
1921
|
+
const [localSelectedValues, setLocalSelectedValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(value);
|
|
1922
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
1923
|
+
setLocalSelectedValues(value);
|
|
1924
|
+
}, [value]);
|
|
1925
|
+
const filteredItems = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
|
|
1926
|
+
const normalizedSearchTerm = searchTerm.trim().toLowerCase();
|
|
1927
|
+
if (!normalizedSearchTerm) {
|
|
1928
|
+
return items;
|
|
1929
|
+
}
|
|
1930
|
+
return items.filter(item => item.label.toLowerCase().includes(normalizedSearchTerm));
|
|
1931
|
+
}, [items, searchTerm]);
|
|
1932
|
+
const selectedItems = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => items.filter(item => localSelectedValues.includes(item.value)), [items, localSelectedValues]);
|
|
1933
|
+
const selectedLabel = selectedItems.length > 0 ? `${selectedItems.length} selected` : placeholder;
|
|
1934
|
+
const inputClasses = `inline-flex w-full justify-between items-center rounded-md bg-[--color-input-bg] text-md font-normal border p-2 text-[--color-text-strong] ${isValid ? "border-[--color-stroke]" : "border-utilRed1000"} ${disabled ? "opacity-50 cursor-not-allowed" : ""}`;
|
|
1935
|
+
const emitChange = (nextValues, callback) => {
|
|
1936
|
+
callback?.({
|
|
1937
|
+
target: {
|
|
1938
|
+
name,
|
|
1939
|
+
value: nextValues
|
|
1940
|
+
}
|
|
1941
|
+
});
|
|
1942
|
+
};
|
|
1943
|
+
const toggleValue = itemValue => {
|
|
1944
|
+
if (disabled) return;
|
|
1945
|
+
setLocalSelectedValues(currentValues => {
|
|
1946
|
+
const nextValues = currentValues.includes(itemValue) ? currentValues.filter(currentValue => currentValue !== itemValue) : [...currentValues, itemValue];
|
|
1947
|
+
emitChange(nextValues, onChange);
|
|
1948
|
+
return nextValues;
|
|
1949
|
+
});
|
|
1950
|
+
};
|
|
1951
|
+
const applySelection = close => {
|
|
1952
|
+
emitChange(localSelectedValues, onApply);
|
|
1953
|
+
close();
|
|
1954
|
+
};
|
|
1955
|
+
const resolveFooter = close => typeof footer === "function" ? footer({
|
|
1956
|
+
close,
|
|
1957
|
+
searchTerm,
|
|
1958
|
+
filteredItems,
|
|
1959
|
+
selectedItems,
|
|
1960
|
+
selectedValues: localSelectedValues,
|
|
1961
|
+
applySelection: () => applySelection(close)
|
|
1962
|
+
}) : footer;
|
|
1963
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
|
|
1964
|
+
className: `mb-4 flex flex-col ${className}`,
|
|
1965
|
+
...rest,
|
|
1966
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_Text_Text__WEBPACK_IMPORTED_MODULE_1__["default"], {
|
|
1967
|
+
as: "label",
|
|
1968
|
+
variant: "label",
|
|
1969
|
+
className: "mb-1",
|
|
1970
|
+
htmlFor: name,
|
|
1971
|
+
children: [label, required && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
|
|
1972
|
+
className: "ml-1 text-[--color-util-red]",
|
|
1973
|
+
children: "*"
|
|
1974
|
+
})]
|
|
1975
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_headlessui_react__WEBPACK_IMPORTED_MODULE_3__.Menu, {
|
|
1976
|
+
children: _ref2 => {
|
|
1977
|
+
let {
|
|
1978
|
+
open,
|
|
1979
|
+
close
|
|
1980
|
+
} = _ref2;
|
|
1981
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
|
|
1982
|
+
className: "relative",
|
|
1983
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_headlessui_react__WEBPACK_IMPORTED_MODULE_3__.MenuButton, {
|
|
1984
|
+
id: name,
|
|
1985
|
+
name: name,
|
|
1986
|
+
title: title,
|
|
1987
|
+
"aria-invalid": !isValid,
|
|
1988
|
+
"aria-describedby": !isValid ? `${name}-error` : undefined,
|
|
1989
|
+
tabIndex: tabIndex,
|
|
1990
|
+
disabled: disabled,
|
|
1991
|
+
"data-cy": (0,_utils_getDataCy__WEBPACK_IMPORTED_MODULE_5__.getDataCy)({
|
|
1992
|
+
name,
|
|
1993
|
+
dataCy
|
|
1994
|
+
}),
|
|
1995
|
+
className: inputClasses,
|
|
1996
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
|
|
1997
|
+
className: "flex items-center gap-2",
|
|
1998
|
+
children: [Icon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Icon, {
|
|
1999
|
+
className: "h-5 w-5 text-[--color-text-weak]"
|
|
2000
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
|
|
2001
|
+
children: selectedLabel
|
|
2002
|
+
})]
|
|
2003
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_heroicons_react_20_solid__WEBPACK_IMPORTED_MODULE_4__.ChevronDownIcon, {
|
|
2004
|
+
"aria-hidden": "true",
|
|
2005
|
+
className: `ml-3 mr-1 h-5 w-5 bg-transparent text-[--color-text-strong] transition-transform duration-200 ${open ? "rotate-180" : "rotate-0"}`
|
|
2006
|
+
})]
|
|
2007
|
+
}), !disabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_headlessui_react__WEBPACK_IMPORTED_MODULE_3__.MenuItems, {
|
|
2008
|
+
className: "ring-opacity-1 absolute left-0 z-10 mt-2 w-[100%] origin-top-right rounded-md bg-[--color-primary-bg] shadow-lg ring-1 ring-[--color-stroke] focus:outline-none",
|
|
2009
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
|
|
2010
|
+
className: "border-b border-[--color-stroke] p-2",
|
|
2011
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("input", {
|
|
2012
|
+
type: "text",
|
|
2013
|
+
value: searchTerm,
|
|
2014
|
+
onChange: event => setSearchTerm(event.target.value),
|
|
2015
|
+
placeholder: searchPlaceholder,
|
|
2016
|
+
className: "w-full rounded-md border border-[--color-stroke] bg-[--color-input-bg] px-3 py-2 text-sm text-[--color-text-strong] focus:outline-none",
|
|
2017
|
+
"data-cy": dataCy ? `${dataCy}-search` : undefined
|
|
2018
|
+
})
|
|
2019
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
|
|
2020
|
+
className: "max-h-48 overflow-y-auto py-1",
|
|
2021
|
+
children: [filteredItems.length === 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
|
|
2022
|
+
className: "px-4 py-2 text-sm text-[--color-text-weak]",
|
|
2023
|
+
children: noResultsText
|
|
2024
|
+
}), filteredItems.map((item, index) => {
|
|
2025
|
+
const isSelected = localSelectedValues.includes(item.value);
|
|
2026
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("button", {
|
|
2027
|
+
type: "button",
|
|
2028
|
+
onClick: () => toggleValue(item.value),
|
|
2029
|
+
className: "flex w-full items-center gap-3 px-4 py-2 text-left text-sm text-[--color-text-strong] hover:bg-[--color-input-bg]",
|
|
2030
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("input", {
|
|
2031
|
+
type: "checkbox",
|
|
2032
|
+
checked: isSelected,
|
|
2033
|
+
readOnly: true,
|
|
2034
|
+
className: "pointer-events-none",
|
|
2035
|
+
style: {
|
|
2036
|
+
accentColor: "var(--color-primary-btn)"
|
|
2037
|
+
}
|
|
2038
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
|
|
2039
|
+
children: item.label
|
|
2040
|
+
})]
|
|
2041
|
+
}, `${item.value}-${index}`);
|
|
2042
|
+
})]
|
|
2043
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
|
|
2044
|
+
className: "border-t border-[--color-stroke] p-2",
|
|
2045
|
+
children: footer ? resolveFooter(close) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
|
|
2046
|
+
className: "flex justify-end",
|
|
2047
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Buttons_Button__WEBPACK_IMPORTED_MODULE_2__["default"], {
|
|
2048
|
+
text: applyButtonText,
|
|
2049
|
+
onClick: () => applySelection(close)
|
|
2050
|
+
})
|
|
2051
|
+
})
|
|
2052
|
+
})]
|
|
2053
|
+
})]
|
|
2054
|
+
});
|
|
2055
|
+
}
|
|
2056
|
+
}), !isValid && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Text_Text__WEBPACK_IMPORTED_MODULE_1__["default"], {
|
|
2057
|
+
as: "span",
|
|
2058
|
+
variant: "small",
|
|
2059
|
+
id: `${name}-error`,
|
|
2060
|
+
className: "mt-1 text-[--color-util-red]",
|
|
2061
|
+
children: errorMessage
|
|
2062
|
+
})]
|
|
2063
|
+
});
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
/***/ },
|
|
2067
|
+
|
|
2068
|
+
/***/ 79963
|
|
2069
|
+
(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
2070
|
+
|
|
2071
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2072
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2073
|
+
/* harmony export */ "default": () => (/* binding */ Popover)
|
|
2074
|
+
/* harmony export */ });
|
|
2075
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9206);
|
|
2076
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2077
|
+
/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34164);
|
|
2078
|
+
/* harmony import */ var _heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58964);
|
|
2079
|
+
/* harmony import */ var _IconButton_IconButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43155);
|
|
2080
|
+
/* harmony import */ var _utils_getDataCy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67339);
|
|
2081
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94178);
|
|
2082
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
|
|
2086
|
+
|
|
2087
|
+
|
|
2088
|
+
|
|
2089
|
+
/**
|
|
2090
|
+
* @typedef {Object} PopoverRenderContext
|
|
2091
|
+
* @property {boolean} isOpen
|
|
2092
|
+
* @property {() => void} openPopover
|
|
2093
|
+
* @property {() => void} closePopover
|
|
2094
|
+
* @property {() => void} togglePopover
|
|
2095
|
+
*/
|
|
2096
|
+
|
|
2097
|
+
/**
|
|
2098
|
+
* @typedef {Object} PopoverProps
|
|
2099
|
+
* @property {React.ReactNode} [icon]
|
|
2100
|
+
* @property {string} [triggerTitle]
|
|
2101
|
+
* @property {React.ReactNode} [header]
|
|
2102
|
+
* @property {boolean} [hideHeader]
|
|
2103
|
+
* @property {React.ReactNode | ((context: PopoverRenderContext) => React.ReactNode)} [body]
|
|
2104
|
+
* @property {React.ReactNode | ((context: PopoverRenderContext) => React.ReactNode)} [footer]
|
|
2105
|
+
* @property {boolean} [hideFooter]
|
|
2106
|
+
* @property {React.ReactNode | ((context: PopoverRenderContext) => React.ReactNode)} [children]
|
|
2107
|
+
* @property {string} [panelClassName]
|
|
2108
|
+
* @property {string} [headerClassName]
|
|
2109
|
+
* @property {string} [bodyClassName]
|
|
2110
|
+
* @property {string} [footerClassName]
|
|
2111
|
+
* @property {string} [className]
|
|
2112
|
+
* @property {string} [dataCy]
|
|
2113
|
+
* @property {string} [name]
|
|
2114
|
+
*/
|
|
2115
|
+
|
|
2116
|
+
/**
|
|
2117
|
+
* @param {PopoverProps & React.HTMLAttributes<HTMLDivElement>} props
|
|
2118
|
+
*/
|
|
2119
|
+
|
|
2120
|
+
function Popover(_ref) {
|
|
2121
|
+
let {
|
|
1702
2122
|
icon,
|
|
1703
|
-
|
|
2123
|
+
triggerTitle = "Open popover",
|
|
2124
|
+
header,
|
|
2125
|
+
hideHeader = false,
|
|
2126
|
+
body,
|
|
1704
2127
|
footer,
|
|
2128
|
+
hideFooter = false,
|
|
2129
|
+
children,
|
|
1705
2130
|
panelClassName = "",
|
|
2131
|
+
headerClassName = "",
|
|
1706
2132
|
bodyClassName = "",
|
|
2133
|
+
footerClassName = "",
|
|
1707
2134
|
className = "",
|
|
1708
2135
|
dataCy,
|
|
1709
|
-
name = "
|
|
2136
|
+
name = "popover",
|
|
1710
2137
|
...rest
|
|
1711
2138
|
} = _ref;
|
|
1712
2139
|
const [isOpen, setIsOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
1713
|
-
const [searchTerm, setSearchTerm] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("");
|
|
1714
|
-
const [localSelectedValues, setLocalSelectedValues] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(selectedValues);
|
|
1715
2140
|
const containerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1716
2141
|
const triggerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1717
|
-
const searchInputRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1718
2142
|
const panelRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
1719
|
-
const optionRefs = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)([]);
|
|
1720
2143
|
const generatedId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();
|
|
1721
2144
|
const panelId = `${name}-${generatedId}-panel`;
|
|
1722
|
-
const
|
|
1723
|
-
const hasCustomContent = typeof children !== "undefined";
|
|
1724
|
-
const panelClasses = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("ring-opacity-1 absolute right-0 top-full z-20 mt-2 overflow-hidden rounded-md bg-[--color-primary-bg] shadow-lg ring-1 ring-[--color-stroke] focus:outline-none", hasCustomContent ? "w-[30rem]" : "w-72", panelClassName);
|
|
1725
|
-
const triggerIcon = icon || /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__.FunnelIcon, {
|
|
2145
|
+
const triggerIcon = icon || /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_heroicons_react_24_outline__WEBPACK_IMPORTED_MODULE_2__.FunnelIcon, {
|
|
1726
2146
|
className: "h-5 w-5"
|
|
1727
2147
|
});
|
|
1728
|
-
(
|
|
1729
|
-
|
|
1730
|
-
}
|
|
2148
|
+
const openPopover = () => {
|
|
2149
|
+
setIsOpen(true);
|
|
2150
|
+
};
|
|
2151
|
+
const closePopover = () => {
|
|
2152
|
+
setIsOpen(false);
|
|
2153
|
+
triggerRef.current?.focus();
|
|
2154
|
+
};
|
|
2155
|
+
const togglePopover = () => {
|
|
2156
|
+
setIsOpen(currentValue => !currentValue);
|
|
2157
|
+
};
|
|
1731
2158
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
1732
2159
|
if (!isOpen) {
|
|
1733
|
-
setSearchTerm("");
|
|
1734
2160
|
return undefined;
|
|
1735
2161
|
}
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
const firstFocusableElement = panelRef.current?.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
1740
|
-
if (firstFocusableElement && typeof firstFocusableElement.focus === "function") {
|
|
1741
|
-
firstFocusableElement.focus();
|
|
1742
|
-
}
|
|
2162
|
+
const firstFocusableElement = panelRef.current?.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
2163
|
+
if (firstFocusableElement && typeof firstFocusableElement.focus === "function") {
|
|
2164
|
+
firstFocusableElement.focus();
|
|
1743
2165
|
}
|
|
1744
2166
|
const handlePointerDown = event => {
|
|
1745
2167
|
if (!containerRef.current?.contains(event.target)) {
|
|
@@ -1748,8 +2170,7 @@ function FilterPopover(_ref) {
|
|
|
1748
2170
|
};
|
|
1749
2171
|
const handleEscape = event => {
|
|
1750
2172
|
if (event.key === "Escape") {
|
|
1751
|
-
|
|
1752
|
-
triggerRef.current?.focus();
|
|
2173
|
+
closePopover();
|
|
1753
2174
|
}
|
|
1754
2175
|
};
|
|
1755
2176
|
document.addEventListener("mousedown", handlePointerDown);
|
|
@@ -1758,116 +2179,37 @@ function FilterPopover(_ref) {
|
|
|
1758
2179
|
document.removeEventListener("mousedown", handlePointerDown);
|
|
1759
2180
|
document.removeEventListener("keydown", handleEscape);
|
|
1760
2181
|
};
|
|
1761
|
-
}, [
|
|
1762
|
-
const filteredOptions = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
|
|
1763
|
-
const normalizedSearch = searchTerm.trim().toLowerCase();
|
|
1764
|
-
if (!normalizedSearch) {
|
|
1765
|
-
return options;
|
|
1766
|
-
}
|
|
1767
|
-
return options.filter(option => option.label.toLowerCase().includes(normalizedSearch));
|
|
1768
|
-
}, [options, searchTerm]);
|
|
1769
|
-
const setOptionRef = (index, node) => {
|
|
1770
|
-
optionRefs.current[index] = node;
|
|
1771
|
-
};
|
|
1772
|
-
const focusOption = index => {
|
|
1773
|
-
optionRefs.current[index]?.focus();
|
|
1774
|
-
};
|
|
1775
|
-
const togglePopover = () => {
|
|
1776
|
-
setIsOpen(previous => {
|
|
1777
|
-
const nextIsOpen = !previous;
|
|
1778
|
-
if (nextIsOpen) {
|
|
1779
|
-
setLocalSelectedValues(selectedValues);
|
|
1780
|
-
}
|
|
1781
|
-
return nextIsOpen;
|
|
1782
|
-
});
|
|
1783
|
-
};
|
|
1784
|
-
const toggleValue = value => {
|
|
1785
|
-
setLocalSelectedValues(currentValues => currentValues.includes(value) ? currentValues.filter(currentValue => currentValue !== value) : [...currentValues, value]);
|
|
1786
|
-
};
|
|
2182
|
+
}, [isOpen]);
|
|
1787
2183
|
const handleTriggerKeyDown = event => {
|
|
1788
2184
|
if (event.key === "ArrowDown") {
|
|
1789
2185
|
event.preventDefault();
|
|
1790
|
-
|
|
1791
|
-
setLocalSelectedValues(selectedValues);
|
|
1792
|
-
setIsOpen(true);
|
|
1793
|
-
return;
|
|
1794
|
-
}
|
|
1795
|
-
if (filteredOptions.length > 0) {
|
|
1796
|
-
focusOption(0);
|
|
1797
|
-
}
|
|
1798
|
-
}
|
|
1799
|
-
};
|
|
1800
|
-
const handleSearchKeyDown = event => {
|
|
1801
|
-
if (event.key === "ArrowDown" && filteredOptions.length > 0) {
|
|
1802
|
-
event.preventDefault();
|
|
1803
|
-
focusOption(0);
|
|
1804
|
-
}
|
|
1805
|
-
};
|
|
1806
|
-
const handleOptionKeyDown = (event, index) => {
|
|
1807
|
-
if (event.key === "ArrowDown" && filteredOptions.length > 0) {
|
|
1808
|
-
event.preventDefault();
|
|
1809
|
-
focusOption((index + 1) % filteredOptions.length);
|
|
1810
|
-
}
|
|
1811
|
-
if (event.key === "ArrowUp") {
|
|
1812
|
-
event.preventDefault();
|
|
1813
|
-
if (index === 0) {
|
|
1814
|
-
searchInputRef.current?.focus();
|
|
1815
|
-
return;
|
|
1816
|
-
}
|
|
1817
|
-
focusOption(index - 1);
|
|
1818
|
-
}
|
|
1819
|
-
if (event.key === "Home") {
|
|
1820
|
-
event.preventDefault();
|
|
1821
|
-
focusOption(0);
|
|
1822
|
-
}
|
|
1823
|
-
if (event.key === "End") {
|
|
1824
|
-
event.preventDefault();
|
|
1825
|
-
focusOption(filteredOptions.length - 1);
|
|
1826
|
-
}
|
|
1827
|
-
if (event.key === "Escape") {
|
|
1828
|
-
event.preventDefault();
|
|
1829
|
-
setIsOpen(false);
|
|
1830
|
-
triggerRef.current?.focus();
|
|
1831
|
-
}
|
|
1832
|
-
};
|
|
1833
|
-
const handleApply = () => {
|
|
1834
|
-
if (localSelectedValues.length === 0) {
|
|
1835
|
-
return;
|
|
2186
|
+
openPopover();
|
|
1836
2187
|
}
|
|
1837
|
-
onApply?.(localSelectedValues);
|
|
1838
|
-
setIsOpen(false);
|
|
1839
|
-
triggerRef.current?.focus();
|
|
1840
|
-
};
|
|
1841
|
-
const closePopover = () => {
|
|
1842
|
-
setIsOpen(false);
|
|
1843
|
-
triggerRef.current?.focus();
|
|
1844
2188
|
};
|
|
1845
2189
|
const renderContext = {
|
|
1846
2190
|
isOpen,
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
searchTerm,
|
|
1851
|
-
setSearchTerm,
|
|
1852
|
-
filteredOptions,
|
|
1853
|
-
closePopover
|
|
2191
|
+
openPopover,
|
|
2192
|
+
closePopover,
|
|
2193
|
+
togglePopover
|
|
1854
2194
|
};
|
|
1855
|
-
const
|
|
2195
|
+
const resolvedBodySource = typeof body !== "undefined" ? body : children;
|
|
2196
|
+
const resolvedBody = typeof resolvedBodySource === "function" ? resolvedBodySource(renderContext) : resolvedBodySource;
|
|
1856
2197
|
const resolvedFooter = typeof footer === "function" ? footer(renderContext) : footer;
|
|
1857
|
-
return /*#__PURE__*/(0,
|
|
2198
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
|
|
1858
2199
|
ref: containerRef,
|
|
1859
2200
|
className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("relative inline-flex", className),
|
|
1860
|
-
"data-cy": (0,
|
|
2201
|
+
"data-cy": (0,_utils_getDataCy__WEBPACK_IMPORTED_MODULE_4__.getDataCy)({
|
|
1861
2202
|
name,
|
|
1862
2203
|
dataCy
|
|
1863
2204
|
}),
|
|
1864
2205
|
...rest,
|
|
1865
|
-
children: [/*#__PURE__*/(0,
|
|
2206
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_IconButton_IconButton__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
|
1866
2207
|
ref: triggerRef,
|
|
1867
2208
|
type: "button",
|
|
1868
2209
|
rank: isOpen ? "primary" : "outline",
|
|
1869
|
-
|
|
1870
|
-
|
|
2210
|
+
className: "h-11 w-11 shrink-0 [&_svg]:block",
|
|
2211
|
+
title: triggerTitle,
|
|
2212
|
+
"aria-label": triggerTitle,
|
|
1871
2213
|
"aria-haspopup": "dialog",
|
|
1872
2214
|
"aria-expanded": isOpen,
|
|
1873
2215
|
"aria-controls": panelId,
|
|
@@ -1877,80 +2219,23 @@ function FilterPopover(_ref) {
|
|
|
1877
2219
|
iconName: "",
|
|
1878
2220
|
onClick: togglePopover,
|
|
1879
2221
|
onKeyDown: handleTriggerKeyDown
|
|
1880
|
-
}), isOpen && /*#__PURE__*/(0,
|
|
2222
|
+
}), isOpen && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
|
|
1881
2223
|
ref: panelRef,
|
|
1882
2224
|
id: panelId,
|
|
1883
2225
|
role: "dialog",
|
|
1884
2226
|
"aria-modal": "false",
|
|
1885
|
-
"aria-label":
|
|
1886
|
-
className:
|
|
1887
|
-
children:
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
className: "border-b border-[--color-stroke] p-4 pb-0",
|
|
1898
|
-
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Inputs_Input__WEBPACK_IMPORTED_MODULE_5__["default"], {
|
|
1899
|
-
ref: searchInputRef,
|
|
1900
|
-
label: "Search",
|
|
1901
|
-
hideLabel: true,
|
|
1902
|
-
type: "search",
|
|
1903
|
-
name: `${name}-search`,
|
|
1904
|
-
placeholder: placeholder,
|
|
1905
|
-
value: searchTerm,
|
|
1906
|
-
onChange: event => setSearchTerm(event.target.value),
|
|
1907
|
-
dataCy: dataCy ? `${dataCy}-search` : undefined,
|
|
1908
|
-
className: "mb-0",
|
|
1909
|
-
onKeyDown: handleSearchKeyDown
|
|
1910
|
-
})
|
|
1911
|
-
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
|
|
1912
|
-
className: "border-b border-[--color-stroke] p-4 pt-4",
|
|
1913
|
-
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", {
|
|
1914
|
-
id: listboxId,
|
|
1915
|
-
role: "listbox",
|
|
1916
|
-
"aria-multiselectable": "true",
|
|
1917
|
-
className: "max-h-60 space-y-1 overflow-y-auto pr-1",
|
|
1918
|
-
children: [filteredOptions.length === 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Text_Text__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
|
1919
|
-
variant: "small",
|
|
1920
|
-
className: "px-3 py-2 text-[--color-text-weak]",
|
|
1921
|
-
children: "No options found."
|
|
1922
|
-
}), filteredOptions.map((option, index) => {
|
|
1923
|
-
const isSelected = localSelectedValues.includes(option.value);
|
|
1924
|
-
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("button", {
|
|
1925
|
-
ref: node => setOptionRef(index, node),
|
|
1926
|
-
type: "button",
|
|
1927
|
-
role: "option",
|
|
1928
|
-
"aria-selected": isSelected,
|
|
1929
|
-
className: "flex w-full items-center gap-3 rounded-md px-3 py-2 text-left focus:outline-none",
|
|
1930
|
-
"data-cy": dataCy ? `${dataCy}-option-${option.value}` : undefined,
|
|
1931
|
-
onClick: () => toggleValue(option.value),
|
|
1932
|
-
onKeyDown: event => handleOptionKeyDown(event, index),
|
|
1933
|
-
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Checkbox_Checkbox__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
|
1934
|
-
label: option.label,
|
|
1935
|
-
name: `${name}-${option.value}`,
|
|
1936
|
-
value: isSelected,
|
|
1937
|
-
className: "pointer-events-none mb-0",
|
|
1938
|
-
dataCy: dataCy ? `${dataCy}-checkbox-${option.value}` : undefined
|
|
1939
|
-
})
|
|
1940
|
-
}, option.value);
|
|
1941
|
-
})]
|
|
1942
|
-
})
|
|
1943
|
-
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
|
|
1944
|
-
className: "p-4 pt-4",
|
|
1945
|
-
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_Buttons_Button__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
|
1946
|
-
text: buttonLabel,
|
|
1947
|
-
isFullWidth: true,
|
|
1948
|
-
state: localSelectedValues.length > 0 ? "default" : "disabled",
|
|
1949
|
-
onClick: handleApply,
|
|
1950
|
-
dataCy: dataCy ? `${dataCy}-apply` : undefined
|
|
1951
|
-
})
|
|
1952
|
-
})]
|
|
1953
|
-
})
|
|
2227
|
+
"aria-label": triggerTitle,
|
|
2228
|
+
className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("ring-opacity-1 absolute right-0 top-full z-20 mt-2 min-w-[30rem] overflow-hidden rounded-md bg-[--color-primary-bg] shadow-lg ring-1 ring-[--color-stroke] focus:outline-none", panelClassName),
|
|
2229
|
+
children: [!hideHeader && header && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
|
|
2230
|
+
className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("border-b border-[--color-stroke] p-4 text-[--color-text-strong]", headerClassName),
|
|
2231
|
+
children: header
|
|
2232
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
|
|
2233
|
+
className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("p-4", bodyClassName),
|
|
2234
|
+
children: resolvedBody
|
|
2235
|
+
}), !hideFooter && resolvedFooter && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
|
|
2236
|
+
className: (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])("border-t border-[--color-stroke] p-4", footerClassName),
|
|
2237
|
+
children: resolvedFooter
|
|
2238
|
+
})]
|
|
1954
2239
|
})]
|
|
1955
2240
|
});
|
|
1956
2241
|
}
|
|
@@ -2217,6 +2502,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2217
2502
|
*
|
|
2218
2503
|
* @property {boolean} [required]
|
|
2219
2504
|
*
|
|
2505
|
+
* @property {boolean} [hideLabel]
|
|
2506
|
+
* Hides the visible group label while keeping it available to assistive technology.
|
|
2507
|
+
*
|
|
2220
2508
|
* @property {string} [dataCy]
|
|
2221
2509
|
*
|
|
2222
2510
|
* @property {boolean} [disabled]
|
|
@@ -2251,6 +2539,7 @@ const RadioButton = _ref => {
|
|
|
2251
2539
|
isValid = true,
|
|
2252
2540
|
errorMessage = `${label} is required`,
|
|
2253
2541
|
required = false,
|
|
2542
|
+
hideLabel = false,
|
|
2254
2543
|
dataCy,
|
|
2255
2544
|
disabled = false,
|
|
2256
2545
|
...rest
|
|
@@ -2272,7 +2561,7 @@ const RadioButton = _ref => {
|
|
|
2272
2561
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Text_Text__WEBPACK_IMPORTED_MODULE_1__["default"], {
|
|
2273
2562
|
as: "label",
|
|
2274
2563
|
variant: "label",
|
|
2275
|
-
className: "mb-2 flex items-center text-[--color-text-strong]",
|
|
2564
|
+
className: hideLabel ? "sr-only" : "mb-2 flex items-center text-[--color-text-strong]",
|
|
2276
2565
|
children: [label, required && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_Text_Text__WEBPACK_IMPORTED_MODULE_1__["default"], {
|
|
2277
2566
|
as: "span",
|
|
2278
2567
|
variant: "small",
|
|
@@ -65430,34 +65719,36 @@ var __webpack_exports__ = {};
|
|
|
65430
65719
|
__webpack_require__.r(__webpack_exports__);
|
|
65431
65720
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
65432
65721
|
/* harmony export */ Accordion: () => (/* reexport safe */ _components_Accordions_Accordion__WEBPACK_IMPORTED_MODULE_0__["default"]),
|
|
65433
|
-
/* harmony export */ BarLayout: () => (/* reexport safe */
|
|
65722
|
+
/* harmony export */ BarLayout: () => (/* reexport safe */ _components_BarLayout_BarLayout__WEBPACK_IMPORTED_MODULE_29__["default"]),
|
|
65434
65723
|
/* harmony export */ Button: () => (/* reexport safe */ _components_Buttons_Button__WEBPACK_IMPORTED_MODULE_1__["default"]),
|
|
65435
65724
|
/* harmony export */ Callout: () => (/* reexport safe */ _components_Callout_Callout__WEBPACK_IMPORTED_MODULE_5__["default"]),
|
|
65436
65725
|
/* harmony export */ Card: () => (/* reexport safe */ _components_Cards_Card__WEBPACK_IMPORTED_MODULE_2__["default"]),
|
|
65437
65726
|
/* harmony export */ CardItem: () => (/* reexport safe */ _components_Cards_CardItem__WEBPACK_IMPORTED_MODULE_3__["default"]),
|
|
65438
65727
|
/* harmony export */ Checkbox: () => (/* reexport safe */ _components_Forms_Checkbox_Checkbox__WEBPACK_IMPORTED_MODULE_10__["default"]),
|
|
65439
|
-
/* harmony export */ CookieBanner: () => (/* reexport safe */
|
|
65728
|
+
/* harmony export */ CookieBanner: () => (/* reexport safe */ _components_Cookie_Cookie__WEBPACK_IMPORTED_MODULE_21__["default"]),
|
|
65440
65729
|
/* harmony export */ DatePicker: () => (/* reexport safe */ _components_Forms_Datepickers_DatePicker__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
65441
65730
|
/* harmony export */ Dropdown: () => (/* reexport safe */ _components_Forms_Dropdowns_Dropdown__WEBPACK_IMPORTED_MODULE_13__["default"]),
|
|
65442
65731
|
/* harmony export */ FileUploadCard: () => (/* reexport safe */ _components_Cards_FileUploadCard__WEBPACK_IMPORTED_MODULE_4__["default"]),
|
|
65443
|
-
/* harmony export */
|
|
65444
|
-
/* harmony export */
|
|
65445
|
-
/* harmony export */
|
|
65446
|
-
/* harmony export */
|
|
65447
|
-
/* harmony export */
|
|
65448
|
-
/* harmony export */ IconButton: () => (/* reexport safe */ _components_IconButton_IconButton__WEBPACK_IMPORTED_MODULE_29__["default"]),
|
|
65732
|
+
/* harmony export */ Footer: () => (/* reexport safe */ _components_Footer_Footer__WEBPACK_IMPORTED_MODULE_26__["default"]),
|
|
65733
|
+
/* harmony export */ FooterLogo: () => (/* reexport safe */ _components_FooterLogo_FooterLogo__WEBPACK_IMPORTED_MODULE_27__["default"]),
|
|
65734
|
+
/* harmony export */ Header: () => (/* reexport safe */ _components_Header_Header__WEBPACK_IMPORTED_MODULE_24__["default"]),
|
|
65735
|
+
/* harmony export */ Icon: () => (/* reexport safe */ _components_Icon_Icon__WEBPACK_IMPORTED_MODULE_25__["default"]),
|
|
65736
|
+
/* harmony export */ IconButton: () => (/* reexport safe */ _components_IconButton_IconButton__WEBPACK_IMPORTED_MODULE_31__["default"]),
|
|
65449
65737
|
/* harmony export */ Input: () => (/* reexport safe */ _components_Forms_Inputs_Input__WEBPACK_IMPORTED_MODULE_6__["default"]),
|
|
65450
|
-
/* harmony export */ Loader: () => (/* reexport safe */
|
|
65451
|
-
/* harmony export */ Modal: () => (/* reexport safe */
|
|
65452
|
-
/* harmony export */ Navbar: () => (/* reexport safe */
|
|
65453
|
-
/* harmony export */ PageTemplate: () => (/* reexport safe */
|
|
65454
|
-
/* harmony export */ Pill: () => (/* reexport safe */
|
|
65455
|
-
/* harmony export */ PillButton: () => (/* reexport safe */
|
|
65456
|
-
/* harmony export */
|
|
65738
|
+
/* harmony export */ Loader: () => (/* reexport safe */ _components_Loader_Loader__WEBPACK_IMPORTED_MODULE_18__["default"]),
|
|
65739
|
+
/* harmony export */ Modal: () => (/* reexport safe */ _components_Modals_Modal__WEBPACK_IMPORTED_MODULE_17__["default"]),
|
|
65740
|
+
/* harmony export */ Navbar: () => (/* reexport safe */ _components_Navbar_Navbar__WEBPACK_IMPORTED_MODULE_16__["default"]),
|
|
65741
|
+
/* harmony export */ PageTemplate: () => (/* reexport safe */ _components_PageTemplate_PageTemplate__WEBPACK_IMPORTED_MODULE_28__["default"]),
|
|
65742
|
+
/* harmony export */ Pill: () => (/* reexport safe */ _components_Pills_Pill__WEBPACK_IMPORTED_MODULE_19__["default"]),
|
|
65743
|
+
/* harmony export */ PillButton: () => (/* reexport safe */ _components_Pills_PillButton__WEBPACK_IMPORTED_MODULE_20__["default"]),
|
|
65744
|
+
/* harmony export */ Popover: () => (/* reexport safe */ _components_Forms_FilterPopover_FilterPopover__WEBPACK_IMPORTED_MODULE_11__["default"]),
|
|
65745
|
+
/* harmony export */ ProfileCard: () => (/* reexport safe */ _components_Profile_ProfileCard_ProfileCard__WEBPACK_IMPORTED_MODULE_30__["default"]),
|
|
65457
65746
|
/* harmony export */ RadioButton: () => (/* reexport safe */ _components_Forms_Radios_RadioButton__WEBPACK_IMPORTED_MODULE_9__["default"]),
|
|
65458
|
-
/* harmony export */
|
|
65747
|
+
/* harmony export */ SearchDropdown: () => (/* reexport safe */ _components_Forms_Dropdowns_SearchDropdown__WEBPACK_IMPORTED_MODULE_14__["default"]),
|
|
65748
|
+
/* harmony export */ SearchMultiSelectDropdown: () => (/* reexport safe */ _components_Forms_Dropdowns_SearchMultiSelectDropdown__WEBPACK_IMPORTED_MODULE_15__["default"]),
|
|
65749
|
+
/* harmony export */ Sidebar: () => (/* reexport safe */ _components_Sidebar_Sidebar__WEBPACK_IMPORTED_MODULE_23__["default"]),
|
|
65459
65750
|
/* harmony export */ Table: () => (/* reexport safe */ _components_Tables_Table__WEBPACK_IMPORTED_MODULE_12__["default"]),
|
|
65460
|
-
/* harmony export */ Text: () => (/* reexport safe */
|
|
65751
|
+
/* harmony export */ Text: () => (/* reexport safe */ _components_Text_Text__WEBPACK_IMPORTED_MODULE_22__["default"]),
|
|
65461
65752
|
/* harmony export */ ToggleSwitch: () => (/* reexport safe */ _components_Forms_ToggleSwitch_ToggleSwitch__WEBPACK_IMPORTED_MODULE_8__["default"])
|
|
65462
65753
|
/* harmony export */ });
|
|
65463
65754
|
/* harmony import */ var _components_Accordions_Accordion__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43614);
|
|
@@ -65474,22 +65765,26 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
65474
65765
|
/* harmony import */ var _components_Forms_FilterPopover_FilterPopover__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(79963);
|
|
65475
65766
|
/* harmony import */ var _components_Tables_Table__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(28966);
|
|
65476
65767
|
/* harmony import */ var _components_Forms_Dropdowns_Dropdown__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(85894);
|
|
65477
|
-
/* harmony import */ var
|
|
65478
|
-
/* harmony import */ var
|
|
65479
|
-
/* harmony import */ var
|
|
65480
|
-
/* harmony import */ var
|
|
65481
|
-
/* harmony import */ var
|
|
65482
|
-
/* harmony import */ var
|
|
65483
|
-
/* harmony import */ var
|
|
65484
|
-
/* harmony import */ var
|
|
65485
|
-
/* harmony import */ var
|
|
65486
|
-
/* harmony import */ var
|
|
65487
|
-
/* harmony import */ var
|
|
65488
|
-
/* harmony import */ var
|
|
65489
|
-
/* harmony import */ var
|
|
65490
|
-
/* harmony import */ var
|
|
65491
|
-
/* harmony import */ var
|
|
65492
|
-
/* harmony import */ var
|
|
65768
|
+
/* harmony import */ var _components_Forms_Dropdowns_SearchDropdown__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80754);
|
|
65769
|
+
/* harmony import */ var _components_Forms_Dropdowns_SearchMultiSelectDropdown__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(38333);
|
|
65770
|
+
/* harmony import */ var _components_Navbar_Navbar__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(21097);
|
|
65771
|
+
/* harmony import */ var _components_Modals_Modal__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(50548);
|
|
65772
|
+
/* harmony import */ var _components_Loader_Loader__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(77695);
|
|
65773
|
+
/* harmony import */ var _components_Pills_Pill__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(89714);
|
|
65774
|
+
/* harmony import */ var _components_Pills_PillButton__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(97670);
|
|
65775
|
+
/* harmony import */ var _components_Cookie_Cookie__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(44609);
|
|
65776
|
+
/* harmony import */ var _components_Text_Text__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(21111);
|
|
65777
|
+
/* harmony import */ var _components_Sidebar_Sidebar__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(11775);
|
|
65778
|
+
/* harmony import */ var _components_Header_Header__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(38195);
|
|
65779
|
+
/* harmony import */ var _components_Icon_Icon__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(57739);
|
|
65780
|
+
/* harmony import */ var _components_Footer_Footer__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(3047);
|
|
65781
|
+
/* harmony import */ var _components_FooterLogo_FooterLogo__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(49465);
|
|
65782
|
+
/* harmony import */ var _components_PageTemplate_PageTemplate__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(3179);
|
|
65783
|
+
/* harmony import */ var _components_BarLayout_BarLayout__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(7779);
|
|
65784
|
+
/* harmony import */ var _components_Profile_ProfileCard_ProfileCard__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(64977);
|
|
65785
|
+
/* harmony import */ var _components_IconButton_IconButton__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(43155);
|
|
65786
|
+
|
|
65787
|
+
|
|
65493
65788
|
|
|
65494
65789
|
|
|
65495
65790
|
|