@equinor/fusion-react-context-selector 0.1.8 → 0.3.0

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/README.md CHANGED
@@ -5,18 +5,12 @@
5
5
 
6
6
  [Storybook](https://equinor.github.io/fusion-react-components/?path=/docs/data-contextselector)
7
7
 
8
- [Fusion Web Component](https://github.com/equinor/fusion-web-components/tree/main/packages/searchable-dropdown)
8
+ Extending [fusion-react-searchable-dropdown](https://equinor.github.io/fusion-react-components/?path=/docs/data-searchable-dropdown)
9
+
10
+ Built on Web-Component [Fusion Web Component](https://github.com/equinor/fusion-web-components/tree/main/packages/searchable-dropdown)
9
11
 
10
12
  ### Installation
11
13
 
12
14
  ```sh
13
15
  npm install @equinor/fusion-react-context-selector
14
16
  ```
15
-
16
- ### Methods
17
-
18
- | Name | Description
19
- | -------- | -------------
20
- | `onSelect() => ContextResult` | Returns `ContextResult` of selected items in event details.
21
-
22
- <!--prettier-ignore-end-->
@@ -0,0 +1,4 @@
1
+ import { ContextProviderProps } from './types';
2
+ export declare const ContextProvider: ({ children, ...props }: React.PropsWithChildren<ContextProviderProps>) => JSX.Element;
3
+ export default ContextProvider;
4
+ //# sourceMappingURL=ContextProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../src/ContextProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,eAAe,2BAA4B,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,KAAG,WAGvG,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /* eslint-disable react/no-multi-comp */
3
+ import { DropdownProvider, useDropdownProviderRef } from '@equinor/fusion-react-searchable-dropdown';
4
+ export const ContextProvider = ({ children, ...props }) => {
5
+ const providerRef = useDropdownProviderRef(props.resolver);
6
+ return _jsx(DropdownProvider, { ref: providerRef, children: children });
7
+ };
8
+ export default ContextProvider;
9
+ //# sourceMappingURL=ContextProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextProvider.js","sourceRoot":"","sources":["../src/ContextProvider.tsx"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAIrG,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAiD,EAAe,EAAE;IACpH,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,KAAC,gBAAgB,IAAC,GAAG,EAAE,WAAW,YAAG,QAAQ,GAAoB,CAAC;AAC3E,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ContextSelectorProps, ContextResultItem } from './types';
2
+ export type ContextSearchProps = ContextSelectorProps & {
3
+ previewItem?: ContextResultItem;
4
+ onClearContext?: (e: Event) => void;
5
+ };
6
+ export declare const ContextSearch: ({ children, onSelect, previewItem, onClearContext, ...props }: React.PropsWithChildren<ContextSearchProps>) => JSX.Element;
7
+ export default ContextSearch;
8
+ //# sourceMappingURL=ContextSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextSearch.d.ts","sourceRoot":"","sources":["../src/ContextSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAKtF,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG;IACtD,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC,CAAC;AAUF,eAAO,MAAM,aAAa,kEAMvB,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,KAAG,WAmGhD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { ContextSelector } from './ContextSelector';
4
+ import { Icon } from '@equinor/fusion-react-icon';
5
+ import { useStyles } from './ContextSearch.styles';
6
+ import { clsx } from '@equinor/fusion-react-styles';
7
+ const defaultInitialItem = {
8
+ id: 'temp-dev-id',
9
+ title: 'Select Context',
10
+ subTitle: 'Context',
11
+ graphic: 'list',
12
+ isDisabled: true,
13
+ };
14
+ export const ContextSearch = ({ children, onSelect, previewItem, onClearContext, ...props }) => {
15
+ const initialItem = previewItem ? Object.assign(defaultInitialItem, previewItem) : defaultInitialItem;
16
+ const elementRef = useRef(null);
17
+ const [ctx, setCtx] = useState(initialItem);
18
+ const [gettingCtx, setGettingCtx] = useState(false);
19
+ const styles = useStyles();
20
+ /* Extend onSelect and calls props.onSelect */
21
+ const handleSelect = useCallback((selected) => {
22
+ const item = selected.nativeEvent.detail.selected[0];
23
+ setCtx(item);
24
+ setGettingCtx(false);
25
+ /* Trigger props.onSelect */
26
+ if (onSelect) {
27
+ onSelect(selected);
28
+ }
29
+ }, [setCtx, onSelect]);
30
+ /* Clear context button handler */
31
+ const handleClearContext = useCallback((event) => {
32
+ setCtx(initialItem);
33
+ /* Trigger props.onClearContext */
34
+ if (onClearContext) {
35
+ onClearContext(event);
36
+ }
37
+ }, [initialItem, onClearContext]);
38
+ /* extending the fwc-searchable-dropdown escape handler */
39
+ const handleKeyup = useCallback((e) => {
40
+ if (e.key === 'Escape') {
41
+ setGettingCtx(false);
42
+ }
43
+ if (e.key === ' ' || e.key === 'Enter') {
44
+ if (e.target?.className.indexOf('titleBlock') > 0) {
45
+ setGettingCtx(true);
46
+ }
47
+ else if (e.target?.className.indexOf('closeBtn') > 0) {
48
+ handleClearContext(e);
49
+ }
50
+ e.stopPropagation();
51
+ e.preventDefault();
52
+ }
53
+ }, [handleClearContext]);
54
+ useEffect(() => {
55
+ window.addEventListener('keyup', handleKeyup);
56
+ return () => {
57
+ window.removeEventListener('keyup', handleKeyup);
58
+ };
59
+ }, [handleKeyup]);
60
+ useEffect(() => {
61
+ const ref = elementRef.current;
62
+ if (ref) {
63
+ ref.addEventListener('dropdownClosed', () => {
64
+ setGettingCtx(false);
65
+ });
66
+ }
67
+ return () => {
68
+ if (ref) {
69
+ ref.removeEventListener('dropdownClosed', () => null);
70
+ }
71
+ };
72
+ }, [elementRef]);
73
+ return (_jsx("div", { ref: elementRef, className: styles.root, children: ctx && !gettingCtx ? (_jsxs("div", { className: styles.context, onKeyUp: () => handleKeyup, children: [_jsx("div", { className: styles.icon, children: ctx.graphic && _jsx(Icon, { icon: ctx.graphic }) }), _jsxs("div", { tabIndex: 0, className: styles.titleBlock, onClick: () => setGettingCtx(true), children: [_jsx("span", { className: styles.title, children: ctx.title }), _jsx("span", { className: styles.subTitle, children: ctx.subTitle })] }), _jsx("div", { className: styles.icon, children: ctx && !ctx.isDisabled && (_jsx("button", { className: clsx(styles.closeBtn), onClick: handleClearContext, children: _jsx(Icon, { icon: "close" }) })) })] })) : (_jsx(ContextSelector, { ...props, onSelect: handleSelect, children: children })) }));
74
+ };
75
+ export default ContextSearch;
76
+ //# sourceMappingURL=ContextSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextSearch.js","sourceRoot":"","sources":["../src/ContextSearch.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const useStyles: (props?: {} | undefined) => import("@material-ui/styles").ClassNameMap<"icon" | "root" | "closeBtn" | "context" | "titleBlock" | "title" | "subTitle">;
2
+ export default useStyles;
3
+ //# sourceMappingURL=ContextSearch.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextSearch.styles.d.ts","sourceRoot":"","sources":["../src/ContextSearch.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,wJAuDrB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { createStyles, makeStyles } from '@equinor/fusion-react-styles';
2
+ export const useStyles = makeStyles((theme) => createStyles({
3
+ root: {
4
+ width: '100%',
5
+ margin: '0',
6
+ color: theme.colors.text.static_icons__default.getVariable('color'),
7
+ },
8
+ icon: {
9
+ display: 'flex',
10
+ justifyContent: 'center',
11
+ alignItems: 'center',
12
+ width: '35px',
13
+ fontWeight: 400,
14
+ },
15
+ closeBtn: {
16
+ width: '100%',
17
+ height: '100%',
18
+ background: 'none',
19
+ border: '1px solid transparent',
20
+ borderRadius: 'var(--mdc-shape-small, 4px)',
21
+ color: theme.colors.interactive.primary__resting.getVariable('color'),
22
+ padding: 0,
23
+ '&:hover': {
24
+ borderColor: theme.colors.interactive.primary__resting.getVariable('color'),
25
+ },
26
+ },
27
+ context: {
28
+ display: 'flex',
29
+ justifyContent: 'space-between',
30
+ alignItems: 'stretch',
31
+ },
32
+ titleBlock: {
33
+ flex: '1 1 auto',
34
+ display: 'flex',
35
+ flexDirection: 'column',
36
+ alignItems: 'flex-start',
37
+ fontSize: '0.9em',
38
+ border: '1px solid transparent',
39
+ borderRadius: 'var(--mdc-shape-small, 4px)',
40
+ padding: '0.25em',
41
+ '&:hover': {
42
+ borderColor: theme.colors.interactive.primary__resting.getVariable('color'),
43
+ },
44
+ },
45
+ title: {
46
+ fontSize: '1em',
47
+ fontWeight: 'bold',
48
+ },
49
+ subTitle: {
50
+ fontSize: '0.8em',
51
+ fontStyle: 'italic',
52
+ },
53
+ }), { name: 'fusion-header-context-selector' });
54
+ export default useStyles;
55
+ //# sourceMappingURL=ContextSearch.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextSearch.styles.js","sourceRoot":"","sources":["../src/ContextSearch.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,CAAC,KAAK,EAAE,EAAE,CACR,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC;KACpE;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,GAAG;KAChB;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,uBAAuB;QAC/B,YAAY,EAAE,6BAA6B;QAC3C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC;QACrE,OAAO,EAAE,CAAC;QACV,SAAS,EAAE;YACT,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC;SAC5E;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,SAAS;KACtB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,uBAAuB;QAC/B,YAAY,EAAE,6BAA6B;QAC3C,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE;YACT,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC;SAC5E;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,MAAM;KACnB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,EACJ,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAC3C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,12 +1,4 @@
1
- import { DropdownProps, SearchableDropdownResolver, SearchableDropdownResult, SearchableDropdownResultItem, SearchableDropdownSelectEvent } from '@equinor/fusion-react-searchable-dropdown';
2
- type ElementResolver = {
3
- resolver?: SearchableDropdownResolver;
4
- };
5
- export type ContextResult = SearchableDropdownResult;
6
- export type ContextResultItem = SearchableDropdownResultItem;
7
- export type ContextResolver = SearchableDropdownResolver;
8
- export type ContextSelectEvent = SearchableDropdownSelectEvent;
9
- export type ContextSelectorProps = DropdownProps & ElementResolver;
1
+ import { ContextSelectorProps } from './types';
10
2
  export declare const ContextSelector: ({ children, ...props }: React.PropsWithChildren<ContextSelectorProps>) => JSX.Element;
11
3
  export default ContextSelector;
12
4
  //# sourceMappingURL=ContextSelector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextSelector.d.ts","sourceRoot":"","sources":["../src/ContextSelector.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACb,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,2CAA2C,CAAC;AAEnD,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAC/D,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,eAAe,CAAC;AAEnE,eAAO,MAAM,eAAe,2BAA4B,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,KAAG,WAOvG,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ContextSelector.d.ts","sourceRoot":"","sources":["../src/ContextSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,eAAe,2BAA4B,MAAM,iBAAiB,CAAC,oBAAoB,CAAC,KAAG,WAEvG,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,9 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  /* eslint-disable react/no-multi-comp */
3
- import { DropdownProvider, Dropdown, useDropdownProviderRef, } from '@equinor/fusion-react-searchable-dropdown';
3
+ import { Dropdown } from '@equinor/fusion-react-searchable-dropdown';
4
4
  export const ContextSelector = ({ children, ...props }) => {
5
- const providerRef = useDropdownProviderRef(props.resolver);
6
- return (_jsx(DropdownProvider, { ref: providerRef, children: _jsx(Dropdown, { ...props, children: children }) }));
5
+ return _jsx(Dropdown, { ...props, children: children });
7
6
  };
8
7
  export default ContextSelector;
9
8
  //# sourceMappingURL=ContextSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextSelector.js","sourceRoot":"","sources":["../src/ContextSelector.tsx"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,sBAAsB,GAMvB,MAAM,2CAA2C,CAAC;AAYnD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAiD,EAAe,EAAE;IACpH,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,CACL,KAAC,gBAAgB,IAAC,GAAG,EAAE,WAAW,YAChC,KAAC,QAAQ,OAAK,KAAK,YAAG,QAAQ,GAAY,GACzB,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ContextSelector.js","sourceRoot":"","sources":["../src/ContextSelector.tsx"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AAGrE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAiD,EAAe,EAAE;IACpH,OAAO,KAAC,QAAQ,OAAK,KAAK,YAAG,QAAQ,GAAY,CAAC;AACpD,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ export * from './ContextProvider';
1
2
  export * from './ContextSelector';
3
+ export * from './ContextSearch';
4
+ export * from './types';
2
5
  export { ContextSelector as default } from './ContextSelector';
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ export * from './ContextProvider';
1
2
  export * from './ContextSelector';
3
+ export * from './ContextSearch';
4
+ export * from './types';
2
5
  export { ContextSelector as default } from './ContextSelector';
3
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { DropdownProps, SearchableDropdownResultItem, SearchableDropdownSelectEvent } from '@equinor/fusion-react-searchable-dropdown';
2
+ export type ContextResultItem = Pick<SearchableDropdownResultItem, 'children' | 'graphic' | 'id' | 'isDisabled' | 'isError' | 'isSelected' | 'meta' | 'subTitle' | 'title' | 'type'>;
3
+ export type ContextResult = Array<ContextResultItem>;
4
+ export type ContextSelectEvent = SearchableDropdownSelectEvent;
5
+ export type ContextSelectorProps = DropdownProps;
6
+ export interface ContextResolver {
7
+ searchQuery: (queryString: string) => Promise<ContextResult> | ContextResult;
8
+ initialResult?: ContextResult;
9
+ closeHandler?: (e: MouseEvent) => void;
10
+ }
11
+ export type ContextProviderProps = {
12
+ resolver?: ContextResolver;
13
+ };
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,2CAA2C,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,4BAA4B,EAC5B,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CACjH,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACrD,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAC/D,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC;IAC7E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/fusion-react-context-selector",
3
- "version": "0.1.8",
3
+ "version": "0.3.0",
4
4
  "description": "React component for context selector",
5
5
  "keywords": [
6
6
  "contextselector",
@@ -37,8 +37,10 @@
37
37
  "url": "https://github.com/equinor/fusion-react-components/issues"
38
38
  },
39
39
  "dependencies": {
40
- "@equinor/fusion-react-searchable-dropdown": "^0.1.8",
40
+ "@equinor/fusion-react-icon": "^0.2.15",
41
+ "@equinor/fusion-react-searchable-dropdown": "^0.3.0",
42
+ "@equinor/fusion-react-styles": "^0.5.5",
41
43
  "@equinor/fusion-react-utils": "^2.0.4"
42
44
  },
43
- "gitHead": "c1b49666f71c665f858c76ac434e01a8010559d6"
45
+ "gitHead": "d458d14e142df658659ac5c02facd35b893472a6"
44
46
  }