@coveord/plasma-mantine 59.4.0 → 59.4.2
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/.turbo/turbo-build.log +4 -4
- package/.turbo/turbo-test.log +85 -93
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/Facet/Facet.d.ts +11 -1
- package/dist/cjs/components/Facet/Facet.d.ts.map +1 -1
- package/dist/cjs/components/Facet/Facet.js +25 -14
- package/dist/cjs/components/Facet/Facet.js.map +1 -1
- package/dist/cjs/components/Facet/Facet.module.css +13 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/Facet/Facet.d.ts +11 -1
- package/dist/esm/components/Facet/Facet.d.ts.map +1 -1
- package/dist/esm/components/Facet/Facet.js +25 -16
- package/dist/esm/components/Facet/Facet.js.map +1 -1
- package/dist/esm/components/Facet/Facet.module.css +13 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +7 -7
- package/src/components/Facet/Facet.module.css +13 -0
- package/src/components/Facet/Facet.tsx +35 -9
- package/src/components/Facet/__tests__/Facet.component.spec.tsx +20 -0
- package/src/index.ts +1 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BoxProps, Factory, StylesApiProps } from '@mantine/core';
|
|
2
2
|
import { FunctionComponent, ReactNode } from 'react';
|
|
3
3
|
import { FacetData, FacetItem, FacetItemComponent } from './FacetTypes.js';
|
|
4
|
-
export type FacetStylesNames = 'facet' | 'facetItem' | 'facetItems' | 'facetHeader' | 'searchInput' | 'hiddenSearch' | 'facetBody' | 'facetTitle' | 'facetSearch' | 'facetControl' | 'separator' | 'separatorLabel';
|
|
4
|
+
export type FacetStylesNames = 'facet' | 'facetItem' | 'facetItems' | 'facetHeader' | 'searchInput' | 'hiddenSearch' | 'facetBody' | 'facetTitleRow' | 'facetTitle' | 'facetRemoveButton' | 'facetSearch' | 'facetControl' | 'separator' | 'separatorLabel';
|
|
5
5
|
export interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {
|
|
6
6
|
className?: string;
|
|
7
7
|
/**
|
|
@@ -14,12 +14,22 @@ export interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {
|
|
|
14
14
|
* @param values the selected items
|
|
15
15
|
*/
|
|
16
16
|
onChange?: (values: string[]) => void;
|
|
17
|
+
/**
|
|
18
|
+
* Function called when the remove icon is clicked.
|
|
19
|
+
*/
|
|
20
|
+
onRemove?: () => void;
|
|
17
21
|
/**
|
|
18
22
|
* Initial items selection
|
|
19
23
|
*
|
|
20
24
|
* @default []
|
|
21
25
|
*/
|
|
22
26
|
initialSelection?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Determines if the facet is removable
|
|
29
|
+
*
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
removable?: boolean;
|
|
23
33
|
/**
|
|
24
34
|
* Determined items selection
|
|
25
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Facet.d.ts","sourceRoot":"","sources":["../../../../src/components/Facet/Facet.tsx"],"names":[],"mappings":"AACA,OAAO,EAEH,QAAQ,
|
|
1
|
+
{"version":3,"file":"Facet.d.ts","sourceRoot":"","sources":["../../../../src/components/Facet/Facet.tsx"],"names":[],"mappings":"AACA,OAAO,EAEH,QAAQ,EAKR,OAAO,EAEP,cAAc,EAMjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAC,iBAAiB,EAAgB,SAAS,EAAY,MAAM,OAAO,CAAC;AAK5E,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GACtB,OAAO,GACP,WAAW,GACX,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,GACd,WAAW,GACX,eAAe,GACf,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,cAAc,GACd,WAAW,GACX,gBAAgB,CAAC;AAEvB,MAAM,WAAW,UAAW,SAAQ,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IACrD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;CACjC,CAAC,CAAC;AAaH,eAAO,MAAM,KAAK,EAAE,iBAAiB,CAAC,UAAU,CA2K9C,CAAC"}
|
|
@@ -22,7 +22,6 @@ var _hooks = require("@mantine/hooks");
|
|
|
22
22
|
var _clsx = require("clsx");
|
|
23
23
|
var _react = require("react");
|
|
24
24
|
var _groupOptions = require("../../utils/groupOptions.js");
|
|
25
|
-
var _ActionIcon = require("../ActionIcon/ActionIcon.js");
|
|
26
25
|
var _DefaultFacetItem = require("./DefaultFacetItem.js");
|
|
27
26
|
var _Facetmodulecss = /*#__PURE__*/ _interop_require_default._(require("./Facet.module.css"));
|
|
28
27
|
var _FacetScrollArea = require("./FacetScrollArea.js");
|
|
@@ -33,15 +32,18 @@ var defaultProps = {
|
|
|
33
32
|
height: 200,
|
|
34
33
|
limit: Infinity,
|
|
35
34
|
itemComponent: _DefaultFacetItem.DefaultFacetItem,
|
|
36
|
-
listComponent: _FacetScrollArea.FacetScrollArea
|
|
35
|
+
listComponent: _FacetScrollArea.FacetScrollArea,
|
|
36
|
+
removable: false
|
|
37
37
|
};
|
|
38
38
|
var Facet = (0, _core.factory)(function(_props, ref) {
|
|
39
39
|
var props = (0, _core.useProps)('Facet', defaultProps, _props);
|
|
40
|
-
var className = props.className, data = props.data, onChange = props.onChange, _props_initialSelection = props.initialSelection, initialSelection = _props_initialSelection === void 0 ? [] : _props_initialSelection, selection = props.selection, ItemComponent = props.itemComponent, ListComponent = props.listComponent, itemCountFormatter = props.itemCountFormatter, searchPlaceholder = props.searchPlaceholder, query = props.query, _props_hideSearch = props.hideSearch, hideSearch = _props_hideSearch === void 0 ? data.length <= 7 : _props_hideSearch, onSearch = props.onSearch, _props_filter = props.filter, filter = _props_filter === void 0 ? defaultFilter : _props_filter, nothingFound = props.nothingFound, placeholder = props.placeholder, title = props.title, height = props.height, radius = props.radius, __staticSelector = props.__staticSelector, classNames = props.classNames, styles = props.styles, limit = props.limit, unstyled = props.unstyled, others = _object_without_properties._(props, [
|
|
40
|
+
var className = props.className, data = props.data, onChange = props.onChange, onRemove = props.onRemove, _props_initialSelection = props.initialSelection, initialSelection = _props_initialSelection === void 0 ? [] : _props_initialSelection, removable = props.removable, selection = props.selection, ItemComponent = props.itemComponent, ListComponent = props.listComponent, itemCountFormatter = props.itemCountFormatter, searchPlaceholder = props.searchPlaceholder, query = props.query, _props_hideSearch = props.hideSearch, hideSearch = _props_hideSearch === void 0 ? data.length <= 7 : _props_hideSearch, onSearch = props.onSearch, _props_filter = props.filter, filter = _props_filter === void 0 ? defaultFilter : _props_filter, nothingFound = props.nothingFound, placeholder = props.placeholder, title = props.title, height = props.height, radius = props.radius, __staticSelector = props.__staticSelector, classNames = props.classNames, styles = props.styles, limit = props.limit, unstyled = props.unstyled, others = _object_without_properties._(props, [
|
|
41
41
|
"className",
|
|
42
42
|
"data",
|
|
43
43
|
"onChange",
|
|
44
|
+
"onRemove",
|
|
44
45
|
"initialSelection",
|
|
46
|
+
"removable",
|
|
45
47
|
"selection",
|
|
46
48
|
"itemComponent",
|
|
47
49
|
"listComponent",
|
|
@@ -150,10 +152,23 @@ var Facet = (0, _core.factory)(function(_props, ref) {
|
|
|
150
152
|
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Box, {
|
|
151
153
|
className: _Facetmodulecss.default.facetHeader,
|
|
152
154
|
children: [
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Group, {
|
|
156
|
+
wrap: "nowrap",
|
|
157
|
+
justify: "space-between",
|
|
158
|
+
className: _Facetmodulecss.default.facetTitleRow,
|
|
159
|
+
children: [
|
|
160
|
+
title ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Title, {
|
|
161
|
+
order: 5,
|
|
162
|
+
className: _Facetmodulecss.default.facetTitle,
|
|
163
|
+
children: title
|
|
164
|
+
}) : null,
|
|
165
|
+
removable ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.CloseButton, {
|
|
166
|
+
onClick: onRemove,
|
|
167
|
+
className: _Facetmodulecss.default.facetRemoveButton,
|
|
168
|
+
"aria-label": "remove facet"
|
|
169
|
+
}) : null
|
|
170
|
+
]
|
|
171
|
+
}),
|
|
157
172
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_core.TextInput, {
|
|
158
173
|
unstyled: unstyled,
|
|
159
174
|
value: search,
|
|
@@ -165,16 +180,12 @@ var Facet = (0, _core.factory)(function(_props, ref) {
|
|
|
165
180
|
"aria-hidden": hideSearch,
|
|
166
181
|
tabIndex: hideSearch ? -1 : undefined,
|
|
167
182
|
className: (0, _clsx.clsx)(_Facetmodulecss.default.facetSearch, _define_property._({}, _Facetmodulecss.default.hiddenSearch, hideSearch)),
|
|
168
|
-
rightSection: search ? /*#__PURE__*/ (0, _jsxruntime.jsx)(
|
|
183
|
+
rightSection: search ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.CloseButton, {
|
|
169
184
|
"aria-label": "clear search",
|
|
170
|
-
color: "gray",
|
|
171
185
|
onClick: function onClick() {
|
|
172
186
|
handleSearch('');
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
height: 16
|
|
176
|
-
})
|
|
177
|
-
}) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.FilterSize16Px, {
|
|
187
|
+
}
|
|
188
|
+
}) : /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.IconSearch, {
|
|
178
189
|
height: 16
|
|
179
190
|
})
|
|
180
191
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Facet/Facet.tsx"],"sourcesContent":["import {CrossSize16Px, FilterSize16Px} from '@coveord/plasma-react-icons';\nimport {\n Box,\n BoxProps,\n Combobox,\n Divider,\n factory,\n Factory,\n StylesApiProps,\n Text,\n TextInput,\n Title,\n useCombobox,\n useProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport {clsx} from 'clsx';\nimport {FunctionComponent, ReactElement, ReactNode, useEffect} from 'react';\nimport {groupOptions} from '../../utils/groupOptions.js';\nimport {ActionIcon} from '../ActionIcon/ActionIcon.js';\nimport {DefaultFacetItem} from './DefaultFacetItem.js';\nimport classes from './Facet.module.css';\nimport {FacetScrollArea} from './FacetScrollArea.js';\nimport {FacetData, FacetItem, FacetItemComponent} from './FacetTypes.js';\n\nexport type FacetStylesNames =\n | 'facet'\n | 'facetItem'\n | 'facetItems'\n | 'facetHeader'\n | 'searchInput'\n | 'hiddenSearch'\n | 'facetBody'\n | 'facetTitle'\n | 'facetSearch'\n | 'facetControl'\n | 'separator'\n | 'separatorLabel';\n\nexport interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {\n className?: string;\n /**\n * The data to render in the component\n */\n data: FacetData;\n /**\n * Function called when an item is selected or unselected\n *\n * @param values the selected items\n */\n onChange?: (values: string[]) => void;\n /**\n * Initial items selection\n *\n * @default []\n */\n initialSelection?: string[];\n /**\n * Determined items selection\n *\n * @default []\n */\n selection?: string[];\n /**\n * Custom item component\n *\n * @default a checkbox with the label of the item\n */\n itemComponent?: FacetItemComponent;\n /**\n * Function to format the facet item count\n *\n * @param count\n * @default (count) => count.toString()\n */\n itemCountFormatter?: (value: number) => string;\n /**\n * Search input placeholder\n */\n searchPlaceholder?: string;\n /**\n * Called when the search query changes\n *\n * @param value the search query\n */\n onSearch?: (value: string) => void;\n /**\n * Function to filter search results\n *\n * @param query value of the search input\n * @param item the current item\n *\n * @default function that compare the query with the label and value, case-insensitive\n */\n filter?: (query: string, item: FacetItem) => boolean;\n /**\n * Value of the search input\n */\n query?: string;\n /**\n * Nothing found message\n *\n * @default No matching items\n */\n nothingFound?: ReactNode;\n /**\n * Displayed when a list is empty and there is no search query\n *\n * @default No items\n */\n placeholder?: ReactNode;\n /**\n * Facet title\n */\n title?: ReactNode;\n /**\n * Maximum height, only used when there is more than 7 values\n *\n * @default 200\n */\n height?: number | 'auto';\n /**\n * Predefined border-radius value from theme.radius or number for border-radius in px\n *\n * @default md\n */\n radius?: number | string;\n /**\n * Change list component, can be used to add custom scrollbars\n */\n listComponent?: FunctionComponent<any>;\n /**\n * Limit amount of items showed at a time\n *\n * @default Infinity\n */\n limit?: number;\n /**\n * Control the displaying of the search input.\n *\n * @default data.length <= 7\n */\n hideSearch?: boolean;\n __staticSelector?: string;\n}\n\nexport type FacetFactory = Factory<{\n props: FacetProps;\n ref: HTMLDivElement;\n stylesNames: FacetStylesNames;\n}>;\n\nconst defaultProps: Partial<FacetProps> = {\n searchPlaceholder: 'Search',\n nothingFound: 'No matching items',\n placeholder: 'No items',\n height: 200,\n limit: Infinity,\n itemComponent: DefaultFacetItem,\n listComponent: FacetScrollArea,\n};\n\nexport const Facet: FunctionComponent<FacetProps> = factory<FacetFactory>((_props, ref) => {\n const props = useProps('Facet', defaultProps, _props);\n const {\n className,\n data,\n onChange,\n initialSelection = [],\n selection,\n itemComponent: ItemComponent,\n listComponent: ListComponent,\n itemCountFormatter,\n searchPlaceholder,\n query,\n hideSearch = data.length <= 7,\n onSearch,\n filter = defaultFilter,\n nothingFound,\n placeholder,\n title,\n height,\n radius,\n __staticSelector,\n classNames,\n styles,\n limit,\n unstyled,\n ...others\n } = props;\n const combobox = useCombobox();\n const [search, handleSearch] = useUncontrolled({\n value: query,\n defaultValue: '',\n finalValue: '',\n onChange: onSearch,\n });\n\n const [_selection, handleSelection] = useUncontrolled({\n value: selection,\n defaultValue: initialSelection,\n finalValue: [],\n onChange,\n });\n\n const unGroupedItems: ReactElement[] = [];\n const groupedItems: ReactElement[] = [];\n const filteredData = data.filter((item) => filter(search, item)).slice(0, limit);\n\n const sortedData: FacetData = groupOptions({data: filteredData});\n\n const handleValueSelect = (val: string) =>\n handleSelection(_selection.includes(val) ? _selection.filter((v) => v !== val) : [..._selection, val]);\n\n let groupName: string = null;\n\n useEffect(() => {\n combobox.openDropdown();\n }, []);\n\n sortedData.forEach((item) => {\n const isSelected = _selection.includes(item.value);\n const itemComponent = (\n <Combobox.Option\n aria-selected={isSelected ? true : false}\n value={item.value}\n key={item.value}\n onMouseEnter={() => combobox.resetSelectedOption()}\n className={clsx(classes.facetItem)}\n >\n <ItemComponent data={item} selected={isSelected} countFormatter={itemCountFormatter} />\n </Combobox.Option>\n );\n\n if (!item.group) {\n unGroupedItems.push(itemComponent);\n } else {\n if (groupName !== item.group) {\n groupName = item.group;\n groupedItems.push(\n <div className={classes.separator} key={groupName}>\n <Divider classNames={{label: classes.separatorLabel}} label={groupName} />\n </div>,\n );\n }\n groupedItems.push(itemComponent);\n }\n });\n\n if (groupedItems.length > 0 && unGroupedItems.length > 0) {\n unGroupedItems.unshift(\n <div className={classes.separator} key=\"ungrouped-separator\">\n <Divider unstyled={unstyled} classNames={{label: classes.separatorLabel}} />\n </div>,\n );\n }\n\n return (\n <Box className={clsx(classes.facet, className)} {...others} ref={ref}>\n <Combobox store={combobox} onOptionSubmit={handleValueSelect}>\n <Combobox.EventsTarget>\n <Box className={classes.facetHeader}>\n {title ? <Title order={5}>{title}</Title> : null}\n\n <TextInput\n unstyled={unstyled}\n value={search}\n onChange={(event) => {\n handleSearch(event.currentTarget.value);\n combobox.updateSelectedOptionIndex();\n }}\n placeholder={searchPlaceholder}\n aria-hidden={hideSearch}\n tabIndex={hideSearch ? -1 : undefined}\n className={clsx(classes.facetSearch, {[classes.hiddenSearch]: hideSearch})}\n rightSection={\n search ? (\n <ActionIcon.Quaternary\n aria-label=\"clear search\"\n color=\"gray\"\n onClick={() => {\n handleSearch('');\n }}\n >\n <CrossSize16Px height={16} />\n </ActionIcon.Quaternary>\n ) : (\n <FilterSize16Px height={16} />\n )\n }\n />\n </Box>\n </Combobox.EventsTarget>\n <div className={classes.facetBody}>\n <Combobox.EventsTarget>\n <ListComponent\n className={classes.facetItems}\n mah={height}\n style={{overflow: 'auto', position: 'relative'}}\n tabIndex={hideSearch ? 0 : undefined}\n >\n <Combobox.Options aria-multiselectable=\"true\">\n {groupedItems.length > 0 || unGroupedItems.length > 0 ? (\n <>\n {groupedItems}\n {unGroupedItems}\n </>\n ) : (\n <Combobox.Empty>\n <Text c=\"dimmed\" unstyled={unstyled} size=\"sm\" ta=\"center\" my=\"sm\">\n {!search && placeholder ? placeholder : nothingFound}\n </Text>\n </Combobox.Empty>\n )}\n </Combobox.Options>\n </ListComponent>\n </Combobox.EventsTarget>\n </div>\n </Combobox>\n </Box>\n );\n});\n\nFacet.displayName = 'Facet';\n\nconst defaultFilter = (query: string, item: FacetItem) =>\n item.label.toLowerCase().trim().includes(query.toLowerCase().trim()) ||\n item.value.toLowerCase().trim().includes(query.toLowerCase().trim());\n"],"names":["Facet","defaultProps","searchPlaceholder","nothingFound","placeholder","height","limit","Infinity","itemComponent","DefaultFacetItem","listComponent","FacetScrollArea","factory","_props","ref","props","useProps","className","data","onChange","initialSelection","selection","ItemComponent","ListComponent","itemCountFormatter","query","hideSearch","length","onSearch","filter","defaultFilter","title","radius","__staticSelector","classNames","styles","unstyled","others","combobox","useCombobox","useUncontrolled","value","defaultValue","finalValue","search","handleSearch","_selection","handleSelection","unGroupedItems","groupedItems","filteredData","item","slice","sortedData","groupOptions","handleValueSelect","val","includes","v","groupName","useEffect","openDropdown","forEach","isSelected","Combobox","Option","aria-selected","onMouseEnter","resetSelectedOption","clsx","classes","facetItem","selected","countFormatter","group","push","div","separator","Divider","label","separatorLabel","unshift","Box","facet","store","onOptionSubmit","EventsTarget","facetHeader","Title","order","TextInput","event","currentTarget","updateSelectedOptionIndex","aria-hidden","tabIndex","undefined","facetSearch","hiddenSearch","rightSection","ActionIcon","Quaternary","aria-label","color","onClick","CrossSize16Px","FilterSize16Px","facetBody","facetItems","mah","style","overflow","position","Options","aria-multiselectable","Empty","Text","c","size","ta","my","displayName","toLowerCase","trim"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Facet/Facet.tsx"],"sourcesContent":["import {IconSearch} from '@coveord/plasma-react-icons';\nimport {\n Box,\n BoxProps,\n CloseButton,\n Combobox,\n Divider,\n factory,\n Factory,\n Group,\n StylesApiProps,\n Text,\n TextInput,\n Title,\n useCombobox,\n useProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport {clsx} from 'clsx';\nimport {FunctionComponent, ReactElement, ReactNode, useEffect} from 'react';\nimport {groupOptions} from '../../utils/groupOptions.js';\nimport {DefaultFacetItem} from './DefaultFacetItem.js';\nimport classes from './Facet.module.css';\nimport {FacetScrollArea} from './FacetScrollArea.js';\nimport {FacetData, FacetItem, FacetItemComponent} from './FacetTypes.js';\n\nexport type FacetStylesNames =\n | 'facet'\n | 'facetItem'\n | 'facetItems'\n | 'facetHeader'\n | 'searchInput'\n | 'hiddenSearch'\n | 'facetBody'\n | 'facetTitleRow'\n | 'facetTitle'\n | 'facetRemoveButton'\n | 'facetSearch'\n | 'facetControl'\n | 'separator'\n | 'separatorLabel';\n\nexport interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {\n className?: string;\n /**\n * The data to render in the component\n */\n data: FacetData;\n /**\n * Function called when an item is selected or unselected\n *\n * @param values the selected items\n */\n onChange?: (values: string[]) => void;\n /**\n * Function called when the remove icon is clicked.\n */\n onRemove?: () => void;\n /**\n * Initial items selection\n *\n * @default []\n */\n initialSelection?: string[];\n /**\n * Determines if the facet is removable\n *\n * @default false\n */\n removable?: boolean;\n /**\n * Determined items selection\n *\n * @default []\n */\n selection?: string[];\n /**\n * Custom item component\n *\n * @default a checkbox with the label of the item\n */\n itemComponent?: FacetItemComponent;\n /**\n * Function to format the facet item count\n *\n * @param count\n * @default (count) => count.toString()\n */\n itemCountFormatter?: (value: number) => string;\n /**\n * Search input placeholder\n */\n searchPlaceholder?: string;\n /**\n * Called when the search query changes\n *\n * @param value the search query\n */\n onSearch?: (value: string) => void;\n /**\n * Function to filter search results\n *\n * @param query value of the search input\n * @param item the current item\n *\n * @default function that compare the query with the label and value, case-insensitive\n */\n filter?: (query: string, item: FacetItem) => boolean;\n /**\n * Value of the search input\n */\n query?: string;\n /**\n * Nothing found message\n *\n * @default No matching items\n */\n nothingFound?: ReactNode;\n /**\n * Displayed when a list is empty and there is no search query\n *\n * @default No items\n */\n placeholder?: ReactNode;\n /**\n * Facet title\n */\n title?: ReactNode;\n /**\n * Maximum height, only used when there is more than 7 values\n *\n * @default 200\n */\n height?: number | 'auto';\n /**\n * Predefined border-radius value from theme.radius or number for border-radius in px\n *\n * @default md\n */\n radius?: number | string;\n /**\n * Change list component, can be used to add custom scrollbars\n */\n listComponent?: FunctionComponent<any>;\n /**\n * Limit amount of items showed at a time\n *\n * @default Infinity\n */\n limit?: number;\n /**\n * Control the displaying of the search input.\n *\n * @default data.length <= 7\n */\n hideSearch?: boolean;\n __staticSelector?: string;\n}\n\nexport type FacetFactory = Factory<{\n props: FacetProps;\n ref: HTMLDivElement;\n stylesNames: FacetStylesNames;\n}>;\n\nconst defaultProps: Partial<FacetProps> = {\n searchPlaceholder: 'Search',\n nothingFound: 'No matching items',\n placeholder: 'No items',\n height: 200,\n limit: Infinity,\n itemComponent: DefaultFacetItem,\n listComponent: FacetScrollArea,\n removable: false,\n};\n\nexport const Facet: FunctionComponent<FacetProps> = factory<FacetFactory>((_props, ref) => {\n const props = useProps('Facet', defaultProps, _props);\n const {\n className,\n data,\n onChange,\n onRemove,\n initialSelection = [],\n removable,\n selection,\n itemComponent: ItemComponent,\n listComponent: ListComponent,\n itemCountFormatter,\n searchPlaceholder,\n query,\n hideSearch = data.length <= 7,\n onSearch,\n filter = defaultFilter,\n nothingFound,\n placeholder,\n title,\n height,\n radius,\n __staticSelector,\n classNames,\n styles,\n limit,\n unstyled,\n ...others\n } = props;\n const combobox = useCombobox();\n const [search, handleSearch] = useUncontrolled({\n value: query,\n defaultValue: '',\n finalValue: '',\n onChange: onSearch,\n });\n\n const [_selection, handleSelection] = useUncontrolled({\n value: selection,\n defaultValue: initialSelection,\n finalValue: [],\n onChange,\n });\n\n const unGroupedItems: ReactElement[] = [];\n const groupedItems: ReactElement[] = [];\n const filteredData = data.filter((item) => filter(search, item)).slice(0, limit);\n\n const sortedData: FacetData = groupOptions({data: filteredData});\n\n const handleValueSelect = (val: string) =>\n handleSelection(_selection.includes(val) ? _selection.filter((v) => v !== val) : [..._selection, val]);\n\n let groupName: string = null;\n\n useEffect(() => {\n combobox.openDropdown();\n }, []);\n\n sortedData.forEach((item) => {\n const isSelected = _selection.includes(item.value);\n const itemComponent = (\n <Combobox.Option\n aria-selected={isSelected ? true : false}\n value={item.value}\n key={item.value}\n onMouseEnter={() => combobox.resetSelectedOption()}\n className={clsx(classes.facetItem)}\n >\n <ItemComponent data={item} selected={isSelected} countFormatter={itemCountFormatter} />\n </Combobox.Option>\n );\n\n if (!item.group) {\n unGroupedItems.push(itemComponent);\n } else {\n if (groupName !== item.group) {\n groupName = item.group;\n groupedItems.push(\n <div className={classes.separator} key={groupName}>\n <Divider classNames={{label: classes.separatorLabel}} label={groupName} />\n </div>,\n );\n }\n groupedItems.push(itemComponent);\n }\n });\n\n if (groupedItems.length > 0 && unGroupedItems.length > 0) {\n unGroupedItems.unshift(\n <div className={classes.separator} key=\"ungrouped-separator\">\n <Divider unstyled={unstyled} classNames={{label: classes.separatorLabel}} />\n </div>,\n );\n }\n\n return (\n <Box className={clsx(classes.facet, className)} {...others} ref={ref}>\n <Combobox store={combobox} onOptionSubmit={handleValueSelect}>\n <Combobox.EventsTarget>\n <Box className={classes.facetHeader}>\n <Group wrap=\"nowrap\" justify=\"space-between\" className={classes.facetTitleRow}>\n {title ? (\n <Title order={5} className={classes.facetTitle}>\n {title}\n </Title>\n ) : null}\n {removable ? (\n <CloseButton\n onClick={onRemove}\n className={classes.facetRemoveButton}\n aria-label=\"remove facet\"\n />\n ) : null}\n </Group>\n\n <TextInput\n unstyled={unstyled}\n value={search}\n onChange={(event) => {\n handleSearch(event.currentTarget.value);\n combobox.updateSelectedOptionIndex();\n }}\n placeholder={searchPlaceholder}\n aria-hidden={hideSearch}\n tabIndex={hideSearch ? -1 : undefined}\n className={clsx(classes.facetSearch, {[classes.hiddenSearch]: hideSearch})}\n rightSection={\n search ? (\n <CloseButton\n aria-label=\"clear search\"\n onClick={() => {\n handleSearch('');\n }}\n />\n ) : (\n <IconSearch height={16} />\n )\n }\n />\n </Box>\n </Combobox.EventsTarget>\n <div className={classes.facetBody}>\n <Combobox.EventsTarget>\n <ListComponent\n className={classes.facetItems}\n mah={height}\n style={{overflow: 'auto', position: 'relative'}}\n tabIndex={hideSearch ? 0 : undefined}\n >\n <Combobox.Options aria-multiselectable=\"true\">\n {groupedItems.length > 0 || unGroupedItems.length > 0 ? (\n <>\n {groupedItems}\n {unGroupedItems}\n </>\n ) : (\n <Combobox.Empty>\n <Text c=\"dimmed\" unstyled={unstyled} size=\"sm\" ta=\"center\" my=\"sm\">\n {!search && placeholder ? placeholder : nothingFound}\n </Text>\n </Combobox.Empty>\n )}\n </Combobox.Options>\n </ListComponent>\n </Combobox.EventsTarget>\n </div>\n </Combobox>\n </Box>\n );\n});\n\nFacet.displayName = 'Facet';\n\nconst defaultFilter = (query: string, item: FacetItem) =>\n item.label.toLowerCase().trim().includes(query.toLowerCase().trim()) ||\n item.value.toLowerCase().trim().includes(query.toLowerCase().trim());\n"],"names":["Facet","defaultProps","searchPlaceholder","nothingFound","placeholder","height","limit","Infinity","itemComponent","DefaultFacetItem","listComponent","FacetScrollArea","removable","factory","_props","ref","props","useProps","className","data","onChange","onRemove","initialSelection","selection","ItemComponent","ListComponent","itemCountFormatter","query","hideSearch","length","onSearch","filter","defaultFilter","title","radius","__staticSelector","classNames","styles","unstyled","others","combobox","useCombobox","useUncontrolled","value","defaultValue","finalValue","search","handleSearch","_selection","handleSelection","unGroupedItems","groupedItems","filteredData","item","slice","sortedData","groupOptions","handleValueSelect","val","includes","v","groupName","useEffect","openDropdown","forEach","isSelected","Combobox","Option","aria-selected","onMouseEnter","resetSelectedOption","clsx","classes","facetItem","selected","countFormatter","group","push","div","separator","Divider","label","separatorLabel","unshift","Box","facet","store","onOptionSubmit","EventsTarget","facetHeader","Group","wrap","justify","facetTitleRow","Title","order","facetTitle","CloseButton","onClick","facetRemoveButton","aria-label","TextInput","event","currentTarget","updateSelectedOptionIndex","aria-hidden","tabIndex","undefined","facetSearch","hiddenSearch","rightSection","IconSearch","facetBody","facetItems","mah","style","overflow","position","Options","aria-multiselectable","Empty","Text","c","size","ta","my","displayName","toLowerCase","trim"],"mappings":"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"}
|
|
@@ -56,8 +56,21 @@
|
|
|
56
56
|
flex: 1;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
.facetTitleRow {
|
|
60
|
+
width: 100%;
|
|
61
|
+
min-width: 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
59
64
|
.facetTitle {
|
|
65
|
+
flex: 1;
|
|
66
|
+
min-width: 0;
|
|
60
67
|
margin-bottom: 0;
|
|
68
|
+
overflow-wrap: anywhere;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.facetRemoveButton {
|
|
72
|
+
flex-shrink: 0;
|
|
73
|
+
margin-left: auto;
|
|
61
74
|
}
|
|
62
75
|
|
|
63
76
|
.facetSearch {
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -67,6 +67,7 @@ export * from './components/Divider/Divider.js';
|
|
|
67
67
|
export * from './components/Drawer/Drawer.js';
|
|
68
68
|
export * from './components/EllipsisText/EllipsisText.js';
|
|
69
69
|
export * from './components/Facet/Facet.js';
|
|
70
|
+
export * from './components/Facet/FacetTypes.js';
|
|
70
71
|
export * from './components/Fieldset/Fieldset.js';
|
|
71
72
|
export * from './components/FileButton/FileButton.js';
|
|
72
73
|
export * from './components/FileInput/FileInput.js';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -142,6 +142,7 @@ _export_star._(require("./components/Divider/Divider.js"), exports);
|
|
|
142
142
|
_export_star._(require("./components/Drawer/Drawer.js"), exports);
|
|
143
143
|
_export_star._(require("./components/EllipsisText/EllipsisText.js"), exports);
|
|
144
144
|
_export_star._(require("./components/Facet/Facet.js"), exports);
|
|
145
|
+
_export_star._(require("./components/Facet/FacetTypes.js"), exports);
|
|
145
146
|
_export_star._(require("./components/Fieldset/Fieldset.js"), exports);
|
|
146
147
|
_export_star._(require("./components/FileButton/FileButton.js"), exports);
|
|
147
148
|
_export_star._(require("./components/FileInput/FileInput.js"), exports);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {MantineColorsTuple, noop} from '@mantine/core';\nimport {type RowData} from '@tanstack/table-core';\nimport {type PlasmaColors} from './theme/PlasmaColors.js';\n\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport {Pagination} from '@mantine/core';\nexport {type DatesRangeValue} from '@mantine/dates';\nexport * from '@mantine/form';\nexport * from '@mantine/hooks';\nexport * from '@mantine/notifications';\nexport {type NotificationsProps} from '@mantine/notifications';\nexport * from '@tanstack/table-core';\n\n// Export all components\n// Accordion\nexport {Accordion} from './components/Accordion/Accordion.js';\n\n// Action Icon - override Mantine ActionIcon\nexport {ActionIcon, type ActionIconProps} from './components/ActionIcon/ActionIcon.js';\n\n// Affix\nexport * from './components/Affix/Affix.js';\n\n// Anchor\nexport * from './components/Anchor/Anchor.js';\n\n// Angle Slider\nexport * from './components/AngleSlider/AngleSlider.js';\n\n// App Shell\nexport * from './components/AppShell/AppShell.js';\n\n// Aspect Ratio\nexport * from './components/AspectRatio/AspectRatio.js';\n\n// Autocomplete\nexport * from './components/Autocomplete/Autocomplete.js';\n\n// Avatar\nexport * from './components/Avatar/Avatar.js';\n\n// Background Image\nexport * from './components/BackgroundImage/BackgroundImage.js';\n\n// Alert - override Mantine Alert\nexport {Alert} from './components/Alert/Alert.js';\n\n// Badge - override Mantine Badge\nexport {\n Badge,\n type BadgeOverloadFactory,\n type SemanticBadge,\n type SemanticBadgeProps,\n} from './components/Badge/Badge.js';\n\n// Blockquote\nexport * from './components/Blockquote/Blockquote.js';\n\n// Blank Slate\nexport * from './components/BlankSlate/BlankSlate.js';\n\n// Box\nexport * from './components/Box/Box.js';\n\n// Breadcrumbs\nexport * from './components/Breadcrumbs/Breadcrumbs.js';\n\n// Browser Preview\nexport * from './components/BrowserPreview/BrowserPreview.js';\n\n// Burger\nexport * from './components/Burger/Burger.js';\n\n// Button - override Mantine Button\nexport {Button, type ButtonProps} from './components/Button/Button.js';\nexport {type ButtonWithDisabledTooltipProps} from './components/Button/ButtonWithDisabledTooltip.js';\nexport {type ClickHandler} from './hooks/useClickWithLoading.js';\n\n// Card\nexport * from './components/Card/Card.js';\n\n// Center\nexport * from './components/Center/Center.js';\n\n// Check Icon\nexport * from './components/CheckIcon/CheckIcon.js';\n\n// Checkbox\nexport * from './components/Checkbox/Checkbox.js';\n\n// Checkbox Icon\nexport * from './components/CheckboxIcon/CheckboxIcon.js';\n\n// Child Form\nexport * from './components/ChildForm/ChildForm.js';\n\n// Chip - override Mantine Chip\nexport {Chip} from './components/Chip/Chip.js';\n\n// Close Button\nexport * from './components/CloseButton/CloseButton.js';\n\n// Code\nexport * from './components/Code/Code.js';\n\n// Code Editor\nexport * from './components/CodeEditor/CodeEditor.js';\n\n// Collapse\nexport * from './components/Collapse/Collapse.js';\n\n// Collection\nexport * from './components/Collection/Collection.js';\nexport type {\n CollectionCellContext,\n CollectionColumnDef,\n CollectionHeaderContext,\n} from './components/Collection/CollectionColumn.types.js';\nexport {enhanceWithCollectionProps} from './components/Collection/enhanceWithCollectionProps.js';\nexport type {\n CollectionLayout,\n CollectionLayoutBodyProps,\n CollectionLayoutHeaderProps,\n} from './components/Collection/layouts/CollectionLayout.types.js';\n\n// Color Input\nexport * from './components/ColorInput/ColorInput.js';\n\n// Color Picker\nexport * from './components/ColorPicker/ColorPicker.js';\n\n// Color Swatch\nexport * from './components/ColorSwatch/ColorSwatch.js';\n\n// Combobox\nexport * from './components/Combobox/Combobox.js';\n\n// Container\nexport * from './components/Container/Container.js';\n\n// Copy Button\nexport * from './components/CopyButton/CopyButton.js';\n\n// Copy to Clipboard\nexport * from './components/CopyToClipboard/CopyToClipboard.js';\n\n// Date Range Picker\nexport * from './components/DateRangePicker/DateRangePicker.js';\nexport * from './components/DateRangePicker/DateRangePickerInlineCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPopoverCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPresetSelect.js';\n\n// Date Picker Input\nexport * from './components/DatePickerInput/DatePickerInput.js';\n\n// Date Time Range Picker\nexport * from './components/DateTimeRangePicker/DateTimeRangePicker.js';\n\n// Month Picker Input\nexport * from './components/MonthPickerInput/MonthPickerInput.js';\n\n// Time Picker\nexport * from './components/TimePicker/TimePicker.js';\n\n// Year Picker Input\nexport * from './components/YearPickerInput/YearPickerInput.js';\n\n// Dialog\nexport * from './components/Dialog/Dialog.js';\n\n// Divider\nexport * from './components/Divider/Divider.js';\n\n// Drawer\nexport * from './components/Drawer/Drawer.js';\n\n// Ellipsis Text\nexport * from './components/EllipsisText/EllipsisText.js';\n\n// Facet\nexport * from './components/Facet/Facet.js';\n\n// Fieldset\nexport * from './components/Fieldset/Fieldset.js';\n\n// File Button\nexport * from './components/FileButton/FileButton.js';\n\n// File Input\nexport * from './components/FileInput/FileInput.js';\n\n// Flex\nexport * from './components/Flex/Flex.js';\n\n// Floating Indicator\nexport * from './components/FloatingIndicator/FloatingIndicator.js';\n\n// Focus Trap\nexport * from './components/FocusTrap/FocusTrap.js';\n\n// Grid\nexport * from './components/Grid/Grid.js';\n\n// Group\nexport * from './components/Group/Group.js';\n\n// Header - override @tanstack/table-core Header\nexport {\n Header,\n type HeaderBreadcrumbsProps,\n type HeaderDocAnchorProps,\n type HeaderFactory,\n type HeaderProps,\n type HeaderRightProps,\n type HeaderStyleNames,\n type HeaderVariant,\n} from './components/Header/Header.js';\n\n// Highlight\nexport * from './components/Highlight/Highlight.js';\n\n// Hover Card\nexport * from './components/HoverCard/HoverCard.js';\n\n// Image\nexport * from './components/Image/Image.js';\n\n// Indicator\nexport * from './components/Indicator/Indicator.js';\n\n// Info Token\nexport * from './components/InfoToken/InfoToken.js';\n\n// Input\nexport {\n Input,\n InputLabelInfo,\n type InputFactory,\n type InputLabelInfoFactory,\n type InputLabelInfoProps,\n type InputLabelInfoStylesNames,\n type InputProps,\n} from './components/Input/Input.js';\n\n// Input Base\nexport * from './components/InputBase/InputBase.js';\n\n// Inline Confirm\nexport * from './components/InlineConfirm/InlineConfirm.js';\nexport * from './components/InlineConfirm/InlineConfirmContext.js';\n\n// Json Input\nexport * from './components/JsonInput/JsonInput.js';\n\n// Kbd\nexport * from './components/Kbd/Kbd.js';\n\n// Last Updated\nexport * from './components/LastUpdated/LastUpdated.js';\n\n// List\nexport * from './components/List/List.js';\n\n// Loader\nexport * from './components/Loader/Loader.js';\n\n// Loading Overlay\nexport * from './components/LoadingOverlay/LoadingOverlay.js';\n\n// Circle Loader\nexport * from './components/CircleLoader/CircleLoader.js';\n\n// Mark\nexport * from './components/Mark/Mark.js';\n\n// Menu - override Mantine Menu\nexport {Menu, type MenuItemProps} from './components/Menu/Menu.js';\n\n// Modal - override Mantine Modal\nexport {Modal, type ModalFactory, type ModalProps} from './components/Modal/Modal.js';\nexport * from './components/Modal/ModalFooter.js';\n\n// Modal Base\nexport * from './components/ModalBase/ModalBase.js';\n\n// Multi Select\nexport * from './components/MultiSelect/MultiSelect.js';\n\n// Native Select\nexport * from './components/NativeSelect/NativeSelect.js';\n\n// Nav Link\nexport * from './components/NavLink/NavLink.js';\n\n// Notification\nexport * from './components/Notification/Notification.js';\n\n// Number Formatter\nexport * from './components/NumberFormatter/NumberFormatter.js';\n\n// Number Input\nexport * from './components/NumberInput/NumberInput.js';\n\n// Overlay\nexport * from './components/Overlay/Overlay.js';\n\n// Pagination\nexport * from './components/Pagination/Pagination.js';\n\n// Paper\nexport * from './components/Paper/Paper.js';\n\n// Pill\nexport * from './components/Pill/Pill.js';\n\n// Pills Input\nexport * from './components/PillsInput/PillsInput.js';\n\n// Pin Input\nexport * from './components/PinInput/PinInput.js';\n\n// Popover\nexport * from './components/Popover/Popover.js';\n\n// Portal\nexport * from './components/Portal/Portal.js';\n\n// Progress\nexport * from './components/Progress/Progress.js';\n\n// Prompt\nexport * from './components/Prompt/Prompt.js';\n\n// Radio\nexport * from './components/Radio/Radio.js';\n\n// RadioCard - override Mantine RadioCard\nexport {RadioCard, type RadioCardProps} from './components/RadioCard/RadioCard.js';\n\n// Rating\nexport * from './components/Rating/Rating.js';\n\n// Ring Progress\nexport * from './components/RingProgress/RingProgress.js';\n\n// Scroll Area\nexport * from './components/ScrollArea/ScrollArea.js';\n\n// Segmented Control\nexport * from './components/SegmentedControl/SegmentedControl.js';\n\n// Semi Circle Progress\nexport * from './components/SemiCircleProgress/SemiCircleProgress.js';\n\n// Read Only - override Mantine PasswordInput and Select\nexport {PasswordInput} from './components/PasswordInput/PasswordInput.js';\nexport {Select} from './components/Select/Select.js';\n\n// Simple Grid\nexport * from './components/SimpleGrid/SimpleGrid.js';\n\n// Skeleton\nexport * from './components/Skeleton/Skeleton.js';\n\n// Slider\nexport * from './components/Slider/Slider.js';\n\n// Space\nexport * from './components/Space/Space.js';\n\n// Spoiler\nexport * from './components/Spoiler/Spoiler.js';\n\n// Stack\nexport * from './components/Stack/Stack.js';\n\n// Status Token\nexport * from './components/StatusToken/StatusToken.js';\n\n// Stepper\nexport * from './components/Stepper/Stepper.js';\n\n// Sticky Footer\n\nexport * from './components/StickyFooter/StickyFooter.js';\n\n// Switch\nexport * from './components/Switch/Switch.js';\n\n// Table - override Mantine Table\nexport {flexRender as renderTableCell} from '@tanstack/react-table';\nexport {TableActionsColumn} from './components/Table/table-column/TableActionsColumn.js';\nexport {type TablePredicateProps} from './components/Table/table-predicate/TablePredicate.js';\nexport {Table, TableComponentsOrder, type PlasmaTableFactory} from './components/Table/Table.js';\nexport {\n type TableAction,\n type TableLayout,\n type TableLayoutProps,\n type TableProps,\n} from './components/Table/Table.types.js';\nexport {useTableContext} from './components/Table/TableContext.js';\nexport {useTable, type TableState, type TableStore, type UseTableOptions} from './components/Table/use-table.js';\nexport {useUrlSyncedState, type SearchParamEntry, type UseUrlSyncedStateOptions} from './hooks/use-url-synced-state.js';\n\n// Table of Contents\nexport * from './components/TableOfContents/TableOfContents.js';\n\n// Tabs\nexport * from './components/Tabs/Tabs.js';\n\n// Tags Input\nexport * from './components/TagsInput/TagsInput.js';\n\n// Text\nexport * from './components/Text/Text.js';\n\n// Text Input\nexport * from './components/TextInput/TextInput.js';\n\n// Textarea\nexport * from './components/Textarea/Textarea.js';\n\n// Theme Icon\nexport * from './components/ThemeIcon/ThemeIcon.js';\n\n// Timeline\nexport * from './components/Timeline/Timeline.js';\n\n// Title\nexport * from './components/Title/Title.js';\n\n// Tooltip\nexport * from './components/Tooltip/Tooltip.js';\n\n// Transition\nexport * from './components/Transition/Transition.js';\n\n// Tree\nexport * from './components/Tree/Tree.js';\n\n// Typography\nexport * from './components/Typography/Typography.js';\n\n// Unstyled Button\nexport * from './components/UnstyledButton/UnstyledButton.js';\n\n// Visually Hidden\nexport * from './components/VisuallyHidden/VisuallyHidden.js';\n\nexport {noop};\n\n// Theme\nexport * from './theme/plasmaCSSVariablesResolver.js';\nexport * from './theme/Plasmantine.js';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n colors: Record<keyof typeof PlasmaColors | (string & {}), MantineColorsTuple>;\n }\n}\n\ndeclare module '@tanstack/react-table' {\n // eslint-disable-next-line unused-imports/no-unused-vars\n interface ColumnMeta<TData extends RowData, TValue> {\n /**\n * Whether the column is a control column.\n * Control columns are columns that are not part of the data but are used to control the table.\n * For example, a column that contains checkboxes to select rows.\n */\n controlColumn: boolean;\n }\n}\n"],"names":["Accordion","ActionIcon","Alert","Badge","Button","Chip","Header","Input","InputLabelInfo","Menu","Modal","Pagination","PasswordInput","RadioCard","Select","Table","TableActionsColumn","TableComponentsOrder","enhanceWithCollectionProps","noop","renderTableCell","flexRender","useTable","useTableContext","useUrlSyncedState"],"mappings":";;;;;;;;;;;QAgBQA;eAAAA,oBAAS;;QAGTC;eAAAA,sBAAU;;QA2BVC;eAAAA,YAAK;;QAITC;eAAAA,YAAK;;QAyBDC;eAAAA,cAAM;;QAuBNC;eAAAA,UAAI;;QA+GRC;eAAAA,cAAM;;QA2BNC;eAAAA,YAAK;;QACLC;eAAAA,qBAAc;;QAwCVC;eAAAA,UAAI;;QAGJC;eAAAA,YAAK;;QAlRLC;eAAAA,gBAAU;;QA8VVC;eAAAA,4BAAa;;QAlBbC;eAAAA,oBAAS;;QAmBTC;eAAAA,cAAM;;QAqCNC;eAAAA,YAAK;;QAFLC;eAAAA,sCAAkB;;QAEXC;eAAAA,2BAAoB;;QAnR3BC;eAAAA,sDAA0B;;QA2U1BC;eAAAA,UAAI;;QA3DUC;eAAdC,sBAAU;;QAWVC;eAAAA,kBAAQ;;QADRC;eAAAA,6BAAe;;QAEfC;eAAAA,oCAAiB;;;;mCAnZc;uBAIzB;uBAIA;uBACA;uBACA;uBAEA;yBAIU;0BAGuB;uBAGjC;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;qBAGM;qBAQb;uBAGO;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;sBAGyB;uBAKzB;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;oBAGK;uBAGL;uBAGA;uBAGA;uBAGA;uBAGA;0CAM2B;uBAQ3B;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBACA;uBACA;uBACA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;sBAYP;uBAGO;uBAGA;uBAGA;uBAGA;uBAGA;qBAWP;uBAGO;uBAGA;uBACA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;oBAGyB;qBAGiB;uBAC1C;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;yBAG+B;uBAG/B;uBAGA;uBAGA;uBAGA;uBAGA;6BAGc;sBACP;uBAGP;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAIA;uBAGA;0BAG8B;kCACX;qBAEkC;4BAOrC;wBACiD;iCACO;uBAGxE;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAKA;uBACA"}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import {MantineColorsTuple, noop} from '@mantine/core';\nimport {type RowData} from '@tanstack/table-core';\nimport {type PlasmaColors} from './theme/PlasmaColors.js';\n\nexport * from '@mantine/carousel';\nexport * from '@mantine/core';\nexport {Pagination} from '@mantine/core';\nexport {type DatesRangeValue} from '@mantine/dates';\nexport * from '@mantine/form';\nexport * from '@mantine/hooks';\nexport * from '@mantine/notifications';\nexport {type NotificationsProps} from '@mantine/notifications';\nexport * from '@tanstack/table-core';\n\n// Export all components\n// Accordion\nexport {Accordion} from './components/Accordion/Accordion.js';\n\n// Action Icon - override Mantine ActionIcon\nexport {ActionIcon, type ActionIconProps} from './components/ActionIcon/ActionIcon.js';\n\n// Affix\nexport * from './components/Affix/Affix.js';\n\n// Anchor\nexport * from './components/Anchor/Anchor.js';\n\n// Angle Slider\nexport * from './components/AngleSlider/AngleSlider.js';\n\n// App Shell\nexport * from './components/AppShell/AppShell.js';\n\n// Aspect Ratio\nexport * from './components/AspectRatio/AspectRatio.js';\n\n// Autocomplete\nexport * from './components/Autocomplete/Autocomplete.js';\n\n// Avatar\nexport * from './components/Avatar/Avatar.js';\n\n// Background Image\nexport * from './components/BackgroundImage/BackgroundImage.js';\n\n// Alert - override Mantine Alert\nexport {Alert} from './components/Alert/Alert.js';\n\n// Badge - override Mantine Badge\nexport {\n Badge,\n type BadgeOverloadFactory,\n type SemanticBadge,\n type SemanticBadgeProps,\n} from './components/Badge/Badge.js';\n\n// Blockquote\nexport * from './components/Blockquote/Blockquote.js';\n\n// Blank Slate\nexport * from './components/BlankSlate/BlankSlate.js';\n\n// Box\nexport * from './components/Box/Box.js';\n\n// Breadcrumbs\nexport * from './components/Breadcrumbs/Breadcrumbs.js';\n\n// Browser Preview\nexport * from './components/BrowserPreview/BrowserPreview.js';\n\n// Burger\nexport * from './components/Burger/Burger.js';\n\n// Button - override Mantine Button\nexport {Button, type ButtonProps} from './components/Button/Button.js';\nexport {type ButtonWithDisabledTooltipProps} from './components/Button/ButtonWithDisabledTooltip.js';\nexport {type ClickHandler} from './hooks/useClickWithLoading.js';\n\n// Card\nexport * from './components/Card/Card.js';\n\n// Center\nexport * from './components/Center/Center.js';\n\n// Check Icon\nexport * from './components/CheckIcon/CheckIcon.js';\n\n// Checkbox\nexport * from './components/Checkbox/Checkbox.js';\n\n// Checkbox Icon\nexport * from './components/CheckboxIcon/CheckboxIcon.js';\n\n// Child Form\nexport * from './components/ChildForm/ChildForm.js';\n\n// Chip - override Mantine Chip\nexport {Chip} from './components/Chip/Chip.js';\n\n// Close Button\nexport * from './components/CloseButton/CloseButton.js';\n\n// Code\nexport * from './components/Code/Code.js';\n\n// Code Editor\nexport * from './components/CodeEditor/CodeEditor.js';\n\n// Collapse\nexport * from './components/Collapse/Collapse.js';\n\n// Collection\nexport * from './components/Collection/Collection.js';\nexport type {\n CollectionCellContext,\n CollectionColumnDef,\n CollectionHeaderContext,\n} from './components/Collection/CollectionColumn.types.js';\nexport {enhanceWithCollectionProps} from './components/Collection/enhanceWithCollectionProps.js';\nexport type {\n CollectionLayout,\n CollectionLayoutBodyProps,\n CollectionLayoutHeaderProps,\n} from './components/Collection/layouts/CollectionLayout.types.js';\n\n// Color Input\nexport * from './components/ColorInput/ColorInput.js';\n\n// Color Picker\nexport * from './components/ColorPicker/ColorPicker.js';\n\n// Color Swatch\nexport * from './components/ColorSwatch/ColorSwatch.js';\n\n// Combobox\nexport * from './components/Combobox/Combobox.js';\n\n// Container\nexport * from './components/Container/Container.js';\n\n// Copy Button\nexport * from './components/CopyButton/CopyButton.js';\n\n// Copy to Clipboard\nexport * from './components/CopyToClipboard/CopyToClipboard.js';\n\n// Date Range Picker\nexport * from './components/DateRangePicker/DateRangePicker.js';\nexport * from './components/DateRangePicker/DateRangePickerInlineCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPopoverCalendar.js';\nexport * from './components/DateRangePicker/DateRangePickerPresetSelect.js';\n\n// Date Picker Input\nexport * from './components/DatePickerInput/DatePickerInput.js';\n\n// Date Time Range Picker\nexport * from './components/DateTimeRangePicker/DateTimeRangePicker.js';\n\n// Month Picker Input\nexport * from './components/MonthPickerInput/MonthPickerInput.js';\n\n// Time Picker\nexport * from './components/TimePicker/TimePicker.js';\n\n// Year Picker Input\nexport * from './components/YearPickerInput/YearPickerInput.js';\n\n// Dialog\nexport * from './components/Dialog/Dialog.js';\n\n// Divider\nexport * from './components/Divider/Divider.js';\n\n// Drawer\nexport * from './components/Drawer/Drawer.js';\n\n// Ellipsis Text\nexport * from './components/EllipsisText/EllipsisText.js';\n\n// Facet\nexport * from './components/Facet/Facet.js';\nexport * from './components/Facet/FacetTypes.js';\n\n// Fieldset\nexport * from './components/Fieldset/Fieldset.js';\n\n// File Button\nexport * from './components/FileButton/FileButton.js';\n\n// File Input\nexport * from './components/FileInput/FileInput.js';\n\n// Flex\nexport * from './components/Flex/Flex.js';\n\n// Floating Indicator\nexport * from './components/FloatingIndicator/FloatingIndicator.js';\n\n// Focus Trap\nexport * from './components/FocusTrap/FocusTrap.js';\n\n// Grid\nexport * from './components/Grid/Grid.js';\n\n// Group\nexport * from './components/Group/Group.js';\n\n// Header - override @tanstack/table-core Header\nexport {\n Header,\n type HeaderBreadcrumbsProps,\n type HeaderDocAnchorProps,\n type HeaderFactory,\n type HeaderProps,\n type HeaderRightProps,\n type HeaderStyleNames,\n type HeaderVariant,\n} from './components/Header/Header.js';\n\n// Highlight\nexport * from './components/Highlight/Highlight.js';\n\n// Hover Card\nexport * from './components/HoverCard/HoverCard.js';\n\n// Image\nexport * from './components/Image/Image.js';\n\n// Indicator\nexport * from './components/Indicator/Indicator.js';\n\n// Info Token\nexport * from './components/InfoToken/InfoToken.js';\n\n// Input\nexport {\n Input,\n InputLabelInfo,\n type InputFactory,\n type InputLabelInfoFactory,\n type InputLabelInfoProps,\n type InputLabelInfoStylesNames,\n type InputProps,\n} from './components/Input/Input.js';\n\n// Input Base\nexport * from './components/InputBase/InputBase.js';\n\n// Inline Confirm\nexport * from './components/InlineConfirm/InlineConfirm.js';\nexport * from './components/InlineConfirm/InlineConfirmContext.js';\n\n// Json Input\nexport * from './components/JsonInput/JsonInput.js';\n\n// Kbd\nexport * from './components/Kbd/Kbd.js';\n\n// Last Updated\nexport * from './components/LastUpdated/LastUpdated.js';\n\n// List\nexport * from './components/List/List.js';\n\n// Loader\nexport * from './components/Loader/Loader.js';\n\n// Loading Overlay\nexport * from './components/LoadingOverlay/LoadingOverlay.js';\n\n// Circle Loader\nexport * from './components/CircleLoader/CircleLoader.js';\n\n// Mark\nexport * from './components/Mark/Mark.js';\n\n// Menu - override Mantine Menu\nexport {Menu, type MenuItemProps} from './components/Menu/Menu.js';\n\n// Modal - override Mantine Modal\nexport {Modal, type ModalFactory, type ModalProps} from './components/Modal/Modal.js';\nexport * from './components/Modal/ModalFooter.js';\n\n// Modal Base\nexport * from './components/ModalBase/ModalBase.js';\n\n// Multi Select\nexport * from './components/MultiSelect/MultiSelect.js';\n\n// Native Select\nexport * from './components/NativeSelect/NativeSelect.js';\n\n// Nav Link\nexport * from './components/NavLink/NavLink.js';\n\n// Notification\nexport * from './components/Notification/Notification.js';\n\n// Number Formatter\nexport * from './components/NumberFormatter/NumberFormatter.js';\n\n// Number Input\nexport * from './components/NumberInput/NumberInput.js';\n\n// Overlay\nexport * from './components/Overlay/Overlay.js';\n\n// Pagination\nexport * from './components/Pagination/Pagination.js';\n\n// Paper\nexport * from './components/Paper/Paper.js';\n\n// Pill\nexport * from './components/Pill/Pill.js';\n\n// Pills Input\nexport * from './components/PillsInput/PillsInput.js';\n\n// Pin Input\nexport * from './components/PinInput/PinInput.js';\n\n// Popover\nexport * from './components/Popover/Popover.js';\n\n// Portal\nexport * from './components/Portal/Portal.js';\n\n// Progress\nexport * from './components/Progress/Progress.js';\n\n// Prompt\nexport * from './components/Prompt/Prompt.js';\n\n// Radio\nexport * from './components/Radio/Radio.js';\n\n// RadioCard - override Mantine RadioCard\nexport {RadioCard, type RadioCardProps} from './components/RadioCard/RadioCard.js';\n\n// Rating\nexport * from './components/Rating/Rating.js';\n\n// Ring Progress\nexport * from './components/RingProgress/RingProgress.js';\n\n// Scroll Area\nexport * from './components/ScrollArea/ScrollArea.js';\n\n// Segmented Control\nexport * from './components/SegmentedControl/SegmentedControl.js';\n\n// Semi Circle Progress\nexport * from './components/SemiCircleProgress/SemiCircleProgress.js';\n\n// Read Only - override Mantine PasswordInput and Select\nexport {PasswordInput} from './components/PasswordInput/PasswordInput.js';\nexport {Select} from './components/Select/Select.js';\n\n// Simple Grid\nexport * from './components/SimpleGrid/SimpleGrid.js';\n\n// Skeleton\nexport * from './components/Skeleton/Skeleton.js';\n\n// Slider\nexport * from './components/Slider/Slider.js';\n\n// Space\nexport * from './components/Space/Space.js';\n\n// Spoiler\nexport * from './components/Spoiler/Spoiler.js';\n\n// Stack\nexport * from './components/Stack/Stack.js';\n\n// Status Token\nexport * from './components/StatusToken/StatusToken.js';\n\n// Stepper\nexport * from './components/Stepper/Stepper.js';\n\n// Sticky Footer\n\nexport * from './components/StickyFooter/StickyFooter.js';\n\n// Switch\nexport * from './components/Switch/Switch.js';\n\n// Table - override Mantine Table\nexport {flexRender as renderTableCell} from '@tanstack/react-table';\nexport {TableActionsColumn} from './components/Table/table-column/TableActionsColumn.js';\nexport {type TablePredicateProps} from './components/Table/table-predicate/TablePredicate.js';\nexport {Table, TableComponentsOrder, type PlasmaTableFactory} from './components/Table/Table.js';\nexport {\n type TableAction,\n type TableLayout,\n type TableLayoutProps,\n type TableProps,\n} from './components/Table/Table.types.js';\nexport {useTableContext} from './components/Table/TableContext.js';\nexport {useTable, type TableState, type TableStore, type UseTableOptions} from './components/Table/use-table.js';\nexport {useUrlSyncedState, type SearchParamEntry, type UseUrlSyncedStateOptions} from './hooks/use-url-synced-state.js';\n\n// Table of Contents\nexport * from './components/TableOfContents/TableOfContents.js';\n\n// Tabs\nexport * from './components/Tabs/Tabs.js';\n\n// Tags Input\nexport * from './components/TagsInput/TagsInput.js';\n\n// Text\nexport * from './components/Text/Text.js';\n\n// Text Input\nexport * from './components/TextInput/TextInput.js';\n\n// Textarea\nexport * from './components/Textarea/Textarea.js';\n\n// Theme Icon\nexport * from './components/ThemeIcon/ThemeIcon.js';\n\n// Timeline\nexport * from './components/Timeline/Timeline.js';\n\n// Title\nexport * from './components/Title/Title.js';\n\n// Tooltip\nexport * from './components/Tooltip/Tooltip.js';\n\n// Transition\nexport * from './components/Transition/Transition.js';\n\n// Tree\nexport * from './components/Tree/Tree.js';\n\n// Typography\nexport * from './components/Typography/Typography.js';\n\n// Unstyled Button\nexport * from './components/UnstyledButton/UnstyledButton.js';\n\n// Visually Hidden\nexport * from './components/VisuallyHidden/VisuallyHidden.js';\n\nexport {noop};\n\n// Theme\nexport * from './theme/plasmaCSSVariablesResolver.js';\nexport * from './theme/Plasmantine.js';\n\ndeclare module '@mantine/core' {\n export interface MantineThemeColorsOverride {\n colors: Record<keyof typeof PlasmaColors | (string & {}), MantineColorsTuple>;\n }\n}\n\ndeclare module '@tanstack/react-table' {\n // eslint-disable-next-line unused-imports/no-unused-vars\n interface ColumnMeta<TData extends RowData, TValue> {\n /**\n * Whether the column is a control column.\n * Control columns are columns that are not part of the data but are used to control the table.\n * For example, a column that contains checkboxes to select rows.\n */\n controlColumn: boolean;\n }\n}\n"],"names":["Accordion","ActionIcon","Alert","Badge","Button","Chip","Header","Input","InputLabelInfo","Menu","Modal","Pagination","PasswordInput","RadioCard","Select","Table","TableActionsColumn","TableComponentsOrder","enhanceWithCollectionProps","noop","renderTableCell","flexRender","useTable","useTableContext","useUrlSyncedState"],"mappings":";;;;;;;;;;;QAgBQA;eAAAA,oBAAS;;QAGTC;eAAAA,sBAAU;;QA2BVC;eAAAA,YAAK;;QAITC;eAAAA,YAAK;;QAyBDC;eAAAA,cAAM;;QAuBNC;eAAAA,UAAI;;QAgHRC;eAAAA,cAAM;;QA2BNC;eAAAA,YAAK;;QACLC;eAAAA,qBAAc;;QAwCVC;eAAAA,UAAI;;QAGJC;eAAAA,YAAK;;QAnRLC;eAAAA,gBAAU;;QA+VVC;eAAAA,4BAAa;;QAlBbC;eAAAA,oBAAS;;QAmBTC;eAAAA,cAAM;;QAqCNC;eAAAA,YAAK;;QAFLC;eAAAA,sCAAkB;;QAEXC;eAAAA,2BAAoB;;QApR3BC;eAAAA,sDAA0B;;QA4U1BC;eAAAA,UAAI;;QA3DUC;eAAdC,sBAAU;;QAWVC;eAAAA,kBAAQ;;QADRC;eAAAA,6BAAe;;QAEfC;eAAAA,oCAAiB;;;;mCApZc;uBAIzB;uBAIA;uBACA;uBACA;uBAEA;yBAIU;0BAGuB;uBAGjC;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;qBAGM;qBAQb;uBAGO;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;sBAGyB;uBAKzB;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;oBAGK;uBAGL;uBAGA;uBAGA;uBAGA;uBAGA;0CAM2B;uBAQ3B;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBACA;uBACA;uBACA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBACA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;sBAYP;uBAGO;uBAGA;uBAGA;uBAGA;uBAGA;qBAWP;uBAGO;uBAGA;uBACA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;oBAGyB;qBAGiB;uBAC1C;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;yBAG+B;uBAG/B;uBAGA;uBAGA;uBAGA;uBAGA;6BAGc;sBACP;uBAGP;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAIA;uBAGA;0BAG8B;kCACX;qBAEkC;4BAOrC;wBACiD;iCACO;uBAGxE;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAGA;uBAKA;uBACA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BoxProps, Factory, StylesApiProps } from '@mantine/core';
|
|
2
2
|
import { FunctionComponent, ReactNode } from 'react';
|
|
3
3
|
import { FacetData, FacetItem, FacetItemComponent } from './FacetTypes.js';
|
|
4
|
-
export type FacetStylesNames = 'facet' | 'facetItem' | 'facetItems' | 'facetHeader' | 'searchInput' | 'hiddenSearch' | 'facetBody' | 'facetTitle' | 'facetSearch' | 'facetControl' | 'separator' | 'separatorLabel';
|
|
4
|
+
export type FacetStylesNames = 'facet' | 'facetItem' | 'facetItems' | 'facetHeader' | 'searchInput' | 'hiddenSearch' | 'facetBody' | 'facetTitleRow' | 'facetTitle' | 'facetRemoveButton' | 'facetSearch' | 'facetControl' | 'separator' | 'separatorLabel';
|
|
5
5
|
export interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {
|
|
6
6
|
className?: string;
|
|
7
7
|
/**
|
|
@@ -14,12 +14,22 @@ export interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {
|
|
|
14
14
|
* @param values the selected items
|
|
15
15
|
*/
|
|
16
16
|
onChange?: (values: string[]) => void;
|
|
17
|
+
/**
|
|
18
|
+
* Function called when the remove icon is clicked.
|
|
19
|
+
*/
|
|
20
|
+
onRemove?: () => void;
|
|
17
21
|
/**
|
|
18
22
|
* Initial items selection
|
|
19
23
|
*
|
|
20
24
|
* @default []
|
|
21
25
|
*/
|
|
22
26
|
initialSelection?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Determines if the facet is removable
|
|
29
|
+
*
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
removable?: boolean;
|
|
23
33
|
/**
|
|
24
34
|
* Determined items selection
|
|
25
35
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Facet.d.ts","sourceRoot":"","sources":["../../../../src/components/Facet/Facet.tsx"],"names":[],"mappings":"AACA,OAAO,EAEH,QAAQ,
|
|
1
|
+
{"version":3,"file":"Facet.d.ts","sourceRoot":"","sources":["../../../../src/components/Facet/Facet.tsx"],"names":[],"mappings":"AACA,OAAO,EAEH,QAAQ,EAKR,OAAO,EAEP,cAAc,EAMjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAC,iBAAiB,EAAgB,SAAS,EAAY,MAAM,OAAO,CAAC;AAK5E,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEzE,MAAM,MAAM,gBAAgB,GACtB,OAAO,GACP,WAAW,GACX,YAAY,GACZ,aAAa,GACb,aAAa,GACb,cAAc,GACd,WAAW,GACX,eAAe,GACf,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,cAAc,GACd,WAAW,GACX,gBAAgB,CAAC;AAEvB,MAAM,WAAW,UAAW,SAAQ,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC/C;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC;IACrD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;OAEG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;CACjC,CAAC,CAAC;AAaH,eAAO,MAAM,KAAK,EAAE,iBAAiB,CAAC,UAAU,CA2K9C,CAAC"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { Box, Combobox, Divider, factory, Text, TextInput, Title, useCombobox, useProps } from '@mantine/core';
|
|
2
|
+
import { IconSearch } from '@coveord/plasma-react-icons';
|
|
3
|
+
import { Box, CloseButton, Combobox, Divider, factory, Group, Text, TextInput, Title, useCombobox, useProps } from '@mantine/core';
|
|
4
4
|
import { useUncontrolled } from '@mantine/hooks';
|
|
5
5
|
import { clsx } from 'clsx';
|
|
6
6
|
import { useEffect } from 'react';
|
|
7
7
|
import { groupOptions } from '../../utils/groupOptions.js';
|
|
8
|
-
import { ActionIcon } from '../ActionIcon/ActionIcon.js';
|
|
9
8
|
import { DefaultFacetItem } from './DefaultFacetItem.js';
|
|
10
9
|
import classes from './Facet.module.css';
|
|
11
10
|
import { FacetScrollArea } from './FacetScrollArea.js';
|
|
@@ -16,11 +15,12 @@ const defaultProps = {
|
|
|
16
15
|
height: 200,
|
|
17
16
|
limit: Infinity,
|
|
18
17
|
itemComponent: DefaultFacetItem,
|
|
19
|
-
listComponent: FacetScrollArea
|
|
18
|
+
listComponent: FacetScrollArea,
|
|
19
|
+
removable: false
|
|
20
20
|
};
|
|
21
21
|
export const Facet = factory((_props, ref)=>{
|
|
22
22
|
const props = useProps('Facet', defaultProps, _props);
|
|
23
|
-
const { className, data, onChange, initialSelection = [], selection, itemComponent: ItemComponent, listComponent: ListComponent, itemCountFormatter, searchPlaceholder, query, hideSearch = data.length <= 7, onSearch, filter = defaultFilter, nothingFound, placeholder, title, height, radius, __staticSelector, classNames, styles, limit, unstyled, ...others } = props;
|
|
23
|
+
const { className, data, onChange, onRemove, initialSelection = [], removable, selection, itemComponent: ItemComponent, listComponent: ListComponent, itemCountFormatter, searchPlaceholder, query, hideSearch = data.length <= 7, onSearch, filter = defaultFilter, nothingFound, placeholder, title, height, radius, __staticSelector, classNames, styles, limit, unstyled, ...others } = props;
|
|
24
24
|
const combobox = useCombobox();
|
|
25
25
|
const [search, handleSearch] = useUncontrolled({
|
|
26
26
|
value: query,
|
|
@@ -102,10 +102,23 @@ export const Facet = factory((_props, ref)=>{
|
|
|
102
102
|
children: /*#__PURE__*/ _jsxs(Box, {
|
|
103
103
|
className: classes.facetHeader,
|
|
104
104
|
children: [
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
105
|
+
/*#__PURE__*/ _jsxs(Group, {
|
|
106
|
+
wrap: "nowrap",
|
|
107
|
+
justify: "space-between",
|
|
108
|
+
className: classes.facetTitleRow,
|
|
109
|
+
children: [
|
|
110
|
+
title ? /*#__PURE__*/ _jsx(Title, {
|
|
111
|
+
order: 5,
|
|
112
|
+
className: classes.facetTitle,
|
|
113
|
+
children: title
|
|
114
|
+
}) : null,
|
|
115
|
+
removable ? /*#__PURE__*/ _jsx(CloseButton, {
|
|
116
|
+
onClick: onRemove,
|
|
117
|
+
className: classes.facetRemoveButton,
|
|
118
|
+
"aria-label": "remove facet"
|
|
119
|
+
}) : null
|
|
120
|
+
]
|
|
121
|
+
}),
|
|
109
122
|
/*#__PURE__*/ _jsx(TextInput, {
|
|
110
123
|
unstyled: unstyled,
|
|
111
124
|
value: search,
|
|
@@ -119,16 +132,12 @@ export const Facet = factory((_props, ref)=>{
|
|
|
119
132
|
className: clsx(classes.facetSearch, {
|
|
120
133
|
[classes.hiddenSearch]: hideSearch
|
|
121
134
|
}),
|
|
122
|
-
rightSection: search ? /*#__PURE__*/ _jsx(
|
|
135
|
+
rightSection: search ? /*#__PURE__*/ _jsx(CloseButton, {
|
|
123
136
|
"aria-label": "clear search",
|
|
124
|
-
color: "gray",
|
|
125
137
|
onClick: ()=>{
|
|
126
138
|
handleSearch('');
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
height: 16
|
|
130
|
-
})
|
|
131
|
-
}) : /*#__PURE__*/ _jsx(FilterSize16Px, {
|
|
139
|
+
}
|
|
140
|
+
}) : /*#__PURE__*/ _jsx(IconSearch, {
|
|
132
141
|
height: 16
|
|
133
142
|
})
|
|
134
143
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Facet/Facet.tsx"],"sourcesContent":["import {CrossSize16Px, FilterSize16Px} from '@coveord/plasma-react-icons';\nimport {\n Box,\n BoxProps,\n Combobox,\n Divider,\n factory,\n Factory,\n StylesApiProps,\n Text,\n TextInput,\n Title,\n useCombobox,\n useProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport {clsx} from 'clsx';\nimport {FunctionComponent, ReactElement, ReactNode, useEffect} from 'react';\nimport {groupOptions} from '../../utils/groupOptions.js';\nimport {ActionIcon} from '../ActionIcon/ActionIcon.js';\nimport {DefaultFacetItem} from './DefaultFacetItem.js';\nimport classes from './Facet.module.css';\nimport {FacetScrollArea} from './FacetScrollArea.js';\nimport {FacetData, FacetItem, FacetItemComponent} from './FacetTypes.js';\n\nexport type FacetStylesNames =\n | 'facet'\n | 'facetItem'\n | 'facetItems'\n | 'facetHeader'\n | 'searchInput'\n | 'hiddenSearch'\n | 'facetBody'\n | 'facetTitle'\n | 'facetSearch'\n | 'facetControl'\n | 'separator'\n | 'separatorLabel';\n\nexport interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {\n className?: string;\n /**\n * The data to render in the component\n */\n data: FacetData;\n /**\n * Function called when an item is selected or unselected\n *\n * @param values the selected items\n */\n onChange?: (values: string[]) => void;\n /**\n * Initial items selection\n *\n * @default []\n */\n initialSelection?: string[];\n /**\n * Determined items selection\n *\n * @default []\n */\n selection?: string[];\n /**\n * Custom item component\n *\n * @default a checkbox with the label of the item\n */\n itemComponent?: FacetItemComponent;\n /**\n * Function to format the facet item count\n *\n * @param count\n * @default (count) => count.toString()\n */\n itemCountFormatter?: (value: number) => string;\n /**\n * Search input placeholder\n */\n searchPlaceholder?: string;\n /**\n * Called when the search query changes\n *\n * @param value the search query\n */\n onSearch?: (value: string) => void;\n /**\n * Function to filter search results\n *\n * @param query value of the search input\n * @param item the current item\n *\n * @default function that compare the query with the label and value, case-insensitive\n */\n filter?: (query: string, item: FacetItem) => boolean;\n /**\n * Value of the search input\n */\n query?: string;\n /**\n * Nothing found message\n *\n * @default No matching items\n */\n nothingFound?: ReactNode;\n /**\n * Displayed when a list is empty and there is no search query\n *\n * @default No items\n */\n placeholder?: ReactNode;\n /**\n * Facet title\n */\n title?: ReactNode;\n /**\n * Maximum height, only used when there is more than 7 values\n *\n * @default 200\n */\n height?: number | 'auto';\n /**\n * Predefined border-radius value from theme.radius or number for border-radius in px\n *\n * @default md\n */\n radius?: number | string;\n /**\n * Change list component, can be used to add custom scrollbars\n */\n listComponent?: FunctionComponent<any>;\n /**\n * Limit amount of items showed at a time\n *\n * @default Infinity\n */\n limit?: number;\n /**\n * Control the displaying of the search input.\n *\n * @default data.length <= 7\n */\n hideSearch?: boolean;\n __staticSelector?: string;\n}\n\nexport type FacetFactory = Factory<{\n props: FacetProps;\n ref: HTMLDivElement;\n stylesNames: FacetStylesNames;\n}>;\n\nconst defaultProps: Partial<FacetProps> = {\n searchPlaceholder: 'Search',\n nothingFound: 'No matching items',\n placeholder: 'No items',\n height: 200,\n limit: Infinity,\n itemComponent: DefaultFacetItem,\n listComponent: FacetScrollArea,\n};\n\nexport const Facet: FunctionComponent<FacetProps> = factory<FacetFactory>((_props, ref) => {\n const props = useProps('Facet', defaultProps, _props);\n const {\n className,\n data,\n onChange,\n initialSelection = [],\n selection,\n itemComponent: ItemComponent,\n listComponent: ListComponent,\n itemCountFormatter,\n searchPlaceholder,\n query,\n hideSearch = data.length <= 7,\n onSearch,\n filter = defaultFilter,\n nothingFound,\n placeholder,\n title,\n height,\n radius,\n __staticSelector,\n classNames,\n styles,\n limit,\n unstyled,\n ...others\n } = props;\n const combobox = useCombobox();\n const [search, handleSearch] = useUncontrolled({\n value: query,\n defaultValue: '',\n finalValue: '',\n onChange: onSearch,\n });\n\n const [_selection, handleSelection] = useUncontrolled({\n value: selection,\n defaultValue: initialSelection,\n finalValue: [],\n onChange,\n });\n\n const unGroupedItems: ReactElement[] = [];\n const groupedItems: ReactElement[] = [];\n const filteredData = data.filter((item) => filter(search, item)).slice(0, limit);\n\n const sortedData: FacetData = groupOptions({data: filteredData});\n\n const handleValueSelect = (val: string) =>\n handleSelection(_selection.includes(val) ? _selection.filter((v) => v !== val) : [..._selection, val]);\n\n let groupName: string = null;\n\n useEffect(() => {\n combobox.openDropdown();\n }, []);\n\n sortedData.forEach((item) => {\n const isSelected = _selection.includes(item.value);\n const itemComponent = (\n <Combobox.Option\n aria-selected={isSelected ? true : false}\n value={item.value}\n key={item.value}\n onMouseEnter={() => combobox.resetSelectedOption()}\n className={clsx(classes.facetItem)}\n >\n <ItemComponent data={item} selected={isSelected} countFormatter={itemCountFormatter} />\n </Combobox.Option>\n );\n\n if (!item.group) {\n unGroupedItems.push(itemComponent);\n } else {\n if (groupName !== item.group) {\n groupName = item.group;\n groupedItems.push(\n <div className={classes.separator} key={groupName}>\n <Divider classNames={{label: classes.separatorLabel}} label={groupName} />\n </div>,\n );\n }\n groupedItems.push(itemComponent);\n }\n });\n\n if (groupedItems.length > 0 && unGroupedItems.length > 0) {\n unGroupedItems.unshift(\n <div className={classes.separator} key=\"ungrouped-separator\">\n <Divider unstyled={unstyled} classNames={{label: classes.separatorLabel}} />\n </div>,\n );\n }\n\n return (\n <Box className={clsx(classes.facet, className)} {...others} ref={ref}>\n <Combobox store={combobox} onOptionSubmit={handleValueSelect}>\n <Combobox.EventsTarget>\n <Box className={classes.facetHeader}>\n {title ? <Title order={5}>{title}</Title> : null}\n\n <TextInput\n unstyled={unstyled}\n value={search}\n onChange={(event) => {\n handleSearch(event.currentTarget.value);\n combobox.updateSelectedOptionIndex();\n }}\n placeholder={searchPlaceholder}\n aria-hidden={hideSearch}\n tabIndex={hideSearch ? -1 : undefined}\n className={clsx(classes.facetSearch, {[classes.hiddenSearch]: hideSearch})}\n rightSection={\n search ? (\n <ActionIcon.Quaternary\n aria-label=\"clear search\"\n color=\"gray\"\n onClick={() => {\n handleSearch('');\n }}\n >\n <CrossSize16Px height={16} />\n </ActionIcon.Quaternary>\n ) : (\n <FilterSize16Px height={16} />\n )\n }\n />\n </Box>\n </Combobox.EventsTarget>\n <div className={classes.facetBody}>\n <Combobox.EventsTarget>\n <ListComponent\n className={classes.facetItems}\n mah={height}\n style={{overflow: 'auto', position: 'relative'}}\n tabIndex={hideSearch ? 0 : undefined}\n >\n <Combobox.Options aria-multiselectable=\"true\">\n {groupedItems.length > 0 || unGroupedItems.length > 0 ? (\n <>\n {groupedItems}\n {unGroupedItems}\n </>\n ) : (\n <Combobox.Empty>\n <Text c=\"dimmed\" unstyled={unstyled} size=\"sm\" ta=\"center\" my=\"sm\">\n {!search && placeholder ? placeholder : nothingFound}\n </Text>\n </Combobox.Empty>\n )}\n </Combobox.Options>\n </ListComponent>\n </Combobox.EventsTarget>\n </div>\n </Combobox>\n </Box>\n );\n});\n\nFacet.displayName = 'Facet';\n\nconst defaultFilter = (query: string, item: FacetItem) =>\n item.label.toLowerCase().trim().includes(query.toLowerCase().trim()) ||\n item.value.toLowerCase().trim().includes(query.toLowerCase().trim());\n"],"names":["CrossSize16Px","FilterSize16Px","Box","Combobox","Divider","factory","Text","TextInput","Title","useCombobox","useProps","useUncontrolled","clsx","useEffect","groupOptions","ActionIcon","DefaultFacetItem","classes","FacetScrollArea","defaultProps","searchPlaceholder","nothingFound","placeholder","height","limit","Infinity","itemComponent","listComponent","Facet","_props","ref","props","className","data","onChange","initialSelection","selection","ItemComponent","ListComponent","itemCountFormatter","query","hideSearch","length","onSearch","filter","defaultFilter","title","radius","__staticSelector","classNames","styles","unstyled","others","combobox","search","handleSearch","value","defaultValue","finalValue","_selection","handleSelection","unGroupedItems","groupedItems","filteredData","item","slice","sortedData","handleValueSelect","val","includes","v","groupName","openDropdown","forEach","isSelected","Option","aria-selected","onMouseEnter","resetSelectedOption","facetItem","selected","countFormatter","group","push","div","separator","label","separatorLabel","unshift","facet","store","onOptionSubmit","EventsTarget","facetHeader","order","event","currentTarget","updateSelectedOptionIndex","aria-hidden","tabIndex","undefined","facetSearch","hiddenSearch","rightSection","Quaternary","aria-label","color","onClick","facetBody","facetItems","mah","style","overflow","position","Options","aria-multiselectable","Empty","c","size","ta","my","displayName","toLowerCase","trim"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Facet/Facet.tsx"],"sourcesContent":["import {IconSearch} from '@coveord/plasma-react-icons';\nimport {\n Box,\n BoxProps,\n CloseButton,\n Combobox,\n Divider,\n factory,\n Factory,\n Group,\n StylesApiProps,\n Text,\n TextInput,\n Title,\n useCombobox,\n useProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport {clsx} from 'clsx';\nimport {FunctionComponent, ReactElement, ReactNode, useEffect} from 'react';\nimport {groupOptions} from '../../utils/groupOptions.js';\nimport {DefaultFacetItem} from './DefaultFacetItem.js';\nimport classes from './Facet.module.css';\nimport {FacetScrollArea} from './FacetScrollArea.js';\nimport {FacetData, FacetItem, FacetItemComponent} from './FacetTypes.js';\n\nexport type FacetStylesNames =\n | 'facet'\n | 'facetItem'\n | 'facetItems'\n | 'facetHeader'\n | 'searchInput'\n | 'hiddenSearch'\n | 'facetBody'\n | 'facetTitleRow'\n | 'facetTitle'\n | 'facetRemoveButton'\n | 'facetSearch'\n | 'facetControl'\n | 'separator'\n | 'separatorLabel';\n\nexport interface FacetProps extends BoxProps, StylesApiProps<FacetFactory> {\n className?: string;\n /**\n * The data to render in the component\n */\n data: FacetData;\n /**\n * Function called when an item is selected or unselected\n *\n * @param values the selected items\n */\n onChange?: (values: string[]) => void;\n /**\n * Function called when the remove icon is clicked.\n */\n onRemove?: () => void;\n /**\n * Initial items selection\n *\n * @default []\n */\n initialSelection?: string[];\n /**\n * Determines if the facet is removable\n *\n * @default false\n */\n removable?: boolean;\n /**\n * Determined items selection\n *\n * @default []\n */\n selection?: string[];\n /**\n * Custom item component\n *\n * @default a checkbox with the label of the item\n */\n itemComponent?: FacetItemComponent;\n /**\n * Function to format the facet item count\n *\n * @param count\n * @default (count) => count.toString()\n */\n itemCountFormatter?: (value: number) => string;\n /**\n * Search input placeholder\n */\n searchPlaceholder?: string;\n /**\n * Called when the search query changes\n *\n * @param value the search query\n */\n onSearch?: (value: string) => void;\n /**\n * Function to filter search results\n *\n * @param query value of the search input\n * @param item the current item\n *\n * @default function that compare the query with the label and value, case-insensitive\n */\n filter?: (query: string, item: FacetItem) => boolean;\n /**\n * Value of the search input\n */\n query?: string;\n /**\n * Nothing found message\n *\n * @default No matching items\n */\n nothingFound?: ReactNode;\n /**\n * Displayed when a list is empty and there is no search query\n *\n * @default No items\n */\n placeholder?: ReactNode;\n /**\n * Facet title\n */\n title?: ReactNode;\n /**\n * Maximum height, only used when there is more than 7 values\n *\n * @default 200\n */\n height?: number | 'auto';\n /**\n * Predefined border-radius value from theme.radius or number for border-radius in px\n *\n * @default md\n */\n radius?: number | string;\n /**\n * Change list component, can be used to add custom scrollbars\n */\n listComponent?: FunctionComponent<any>;\n /**\n * Limit amount of items showed at a time\n *\n * @default Infinity\n */\n limit?: number;\n /**\n * Control the displaying of the search input.\n *\n * @default data.length <= 7\n */\n hideSearch?: boolean;\n __staticSelector?: string;\n}\n\nexport type FacetFactory = Factory<{\n props: FacetProps;\n ref: HTMLDivElement;\n stylesNames: FacetStylesNames;\n}>;\n\nconst defaultProps: Partial<FacetProps> = {\n searchPlaceholder: 'Search',\n nothingFound: 'No matching items',\n placeholder: 'No items',\n height: 200,\n limit: Infinity,\n itemComponent: DefaultFacetItem,\n listComponent: FacetScrollArea,\n removable: false,\n};\n\nexport const Facet: FunctionComponent<FacetProps> = factory<FacetFactory>((_props, ref) => {\n const props = useProps('Facet', defaultProps, _props);\n const {\n className,\n data,\n onChange,\n onRemove,\n initialSelection = [],\n removable,\n selection,\n itemComponent: ItemComponent,\n listComponent: ListComponent,\n itemCountFormatter,\n searchPlaceholder,\n query,\n hideSearch = data.length <= 7,\n onSearch,\n filter = defaultFilter,\n nothingFound,\n placeholder,\n title,\n height,\n radius,\n __staticSelector,\n classNames,\n styles,\n limit,\n unstyled,\n ...others\n } = props;\n const combobox = useCombobox();\n const [search, handleSearch] = useUncontrolled({\n value: query,\n defaultValue: '',\n finalValue: '',\n onChange: onSearch,\n });\n\n const [_selection, handleSelection] = useUncontrolled({\n value: selection,\n defaultValue: initialSelection,\n finalValue: [],\n onChange,\n });\n\n const unGroupedItems: ReactElement[] = [];\n const groupedItems: ReactElement[] = [];\n const filteredData = data.filter((item) => filter(search, item)).slice(0, limit);\n\n const sortedData: FacetData = groupOptions({data: filteredData});\n\n const handleValueSelect = (val: string) =>\n handleSelection(_selection.includes(val) ? _selection.filter((v) => v !== val) : [..._selection, val]);\n\n let groupName: string = null;\n\n useEffect(() => {\n combobox.openDropdown();\n }, []);\n\n sortedData.forEach((item) => {\n const isSelected = _selection.includes(item.value);\n const itemComponent = (\n <Combobox.Option\n aria-selected={isSelected ? true : false}\n value={item.value}\n key={item.value}\n onMouseEnter={() => combobox.resetSelectedOption()}\n className={clsx(classes.facetItem)}\n >\n <ItemComponent data={item} selected={isSelected} countFormatter={itemCountFormatter} />\n </Combobox.Option>\n );\n\n if (!item.group) {\n unGroupedItems.push(itemComponent);\n } else {\n if (groupName !== item.group) {\n groupName = item.group;\n groupedItems.push(\n <div className={classes.separator} key={groupName}>\n <Divider classNames={{label: classes.separatorLabel}} label={groupName} />\n </div>,\n );\n }\n groupedItems.push(itemComponent);\n }\n });\n\n if (groupedItems.length > 0 && unGroupedItems.length > 0) {\n unGroupedItems.unshift(\n <div className={classes.separator} key=\"ungrouped-separator\">\n <Divider unstyled={unstyled} classNames={{label: classes.separatorLabel}} />\n </div>,\n );\n }\n\n return (\n <Box className={clsx(classes.facet, className)} {...others} ref={ref}>\n <Combobox store={combobox} onOptionSubmit={handleValueSelect}>\n <Combobox.EventsTarget>\n <Box className={classes.facetHeader}>\n <Group wrap=\"nowrap\" justify=\"space-between\" className={classes.facetTitleRow}>\n {title ? (\n <Title order={5} className={classes.facetTitle}>\n {title}\n </Title>\n ) : null}\n {removable ? (\n <CloseButton\n onClick={onRemove}\n className={classes.facetRemoveButton}\n aria-label=\"remove facet\"\n />\n ) : null}\n </Group>\n\n <TextInput\n unstyled={unstyled}\n value={search}\n onChange={(event) => {\n handleSearch(event.currentTarget.value);\n combobox.updateSelectedOptionIndex();\n }}\n placeholder={searchPlaceholder}\n aria-hidden={hideSearch}\n tabIndex={hideSearch ? -1 : undefined}\n className={clsx(classes.facetSearch, {[classes.hiddenSearch]: hideSearch})}\n rightSection={\n search ? (\n <CloseButton\n aria-label=\"clear search\"\n onClick={() => {\n handleSearch('');\n }}\n />\n ) : (\n <IconSearch height={16} />\n )\n }\n />\n </Box>\n </Combobox.EventsTarget>\n <div className={classes.facetBody}>\n <Combobox.EventsTarget>\n <ListComponent\n className={classes.facetItems}\n mah={height}\n style={{overflow: 'auto', position: 'relative'}}\n tabIndex={hideSearch ? 0 : undefined}\n >\n <Combobox.Options aria-multiselectable=\"true\">\n {groupedItems.length > 0 || unGroupedItems.length > 0 ? (\n <>\n {groupedItems}\n {unGroupedItems}\n </>\n ) : (\n <Combobox.Empty>\n <Text c=\"dimmed\" unstyled={unstyled} size=\"sm\" ta=\"center\" my=\"sm\">\n {!search && placeholder ? placeholder : nothingFound}\n </Text>\n </Combobox.Empty>\n )}\n </Combobox.Options>\n </ListComponent>\n </Combobox.EventsTarget>\n </div>\n </Combobox>\n </Box>\n );\n});\n\nFacet.displayName = 'Facet';\n\nconst defaultFilter = (query: string, item: FacetItem) =>\n item.label.toLowerCase().trim().includes(query.toLowerCase().trim()) ||\n item.value.toLowerCase().trim().includes(query.toLowerCase().trim());\n"],"names":["IconSearch","Box","CloseButton","Combobox","Divider","factory","Group","Text","TextInput","Title","useCombobox","useProps","useUncontrolled","clsx","useEffect","groupOptions","DefaultFacetItem","classes","FacetScrollArea","defaultProps","searchPlaceholder","nothingFound","placeholder","height","limit","Infinity","itemComponent","listComponent","removable","Facet","_props","ref","props","className","data","onChange","onRemove","initialSelection","selection","ItemComponent","ListComponent","itemCountFormatter","query","hideSearch","length","onSearch","filter","defaultFilter","title","radius","__staticSelector","classNames","styles","unstyled","others","combobox","search","handleSearch","value","defaultValue","finalValue","_selection","handleSelection","unGroupedItems","groupedItems","filteredData","item","slice","sortedData","handleValueSelect","val","includes","v","groupName","openDropdown","forEach","isSelected","Option","aria-selected","onMouseEnter","resetSelectedOption","facetItem","selected","countFormatter","group","push","div","separator","label","separatorLabel","unshift","facet","store","onOptionSubmit","EventsTarget","facetHeader","wrap","justify","facetTitleRow","order","facetTitle","onClick","facetRemoveButton","aria-label","event","currentTarget","updateSelectedOptionIndex","aria-hidden","tabIndex","undefined","facetSearch","hiddenSearch","rightSection","facetBody","facetItems","mah","style","overflow","position","Options","aria-multiselectable","Empty","c","size","ta","my","displayName","toLowerCase","trim"],"mappings":"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"}
|