@equinor/amplify-component-lib 8.11.0 → 8.11.1

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.
@@ -1 +1 @@
1
- import{useState as e,useRef as n,useMemo as r,useEffect as t}from"react";import{flattenOptions as l}from"../../molecules/Select/Select.utils.js";const u=u=>{const{loading:a,disabled:c,sortValues:o,onSearchChange:d,onOpenCallback:s}=u,[v,i]=e(!1),[h,m]=e(""),f=n(null),g=n([]),p=n(-1),[y,k]=e(void 0),S=n(!1),I=n(0),A=r((()=>{let e,n=[];return"values"in u?n=u.values:u.value&&(n=[u.value]),o?(e=u.groups?u.groups.flatMap((e=>e.items)):u.items.flatMap((e=>[{...e},...e.children||[]])),n.sort(((n,r)=>e.findIndex((e=>e.value===n.value))-e.findIndex((e=>e.value===r.value))))):n}),[u,o]);t((()=>{void 0!==s&&s(v)}),[s,v]),t((()=>{S.current&&I.current!==A.length&&(I.current=A.length,S.current=!1,f.current?.focus())}),[A.length]);const O=()=>{v||c||a||(f.current?.focus(),i(!0))},w=()=>{i(!1),m(""),p.current=0},C=e=>{!("values"in u)||a||c||u.onSelect(u.values.filter((n=>n.value!==e.value)),e)};return{handleOnAddItem:()=>{"onAddItem"in u&&u.onAddItem&&(u.onAddItem(h),m(""))},handleOnItemSelect:e=>{"value"in u?u.onSelect(e):u.onSelect(((e,n)=>{const r=structuredClone(e);return r.some((e=>e.value===n.value))?r.filter((e=>e.value!==n.value)):"values"in u&&void 0!==u.syncParentChildSelection&&!u.syncParentChildSelection?[n,...r]:[n,...r.filter((e=>(!(void 0===n.children||n.children.length>0)||!l([n]).some((n=>n.value===e.value)))&&(void 0===e.children||0===e.children.length||l([e]).every((e=>e.value!==n.value)))))]})(u.values,e),e),""!==h&&m(""),S.current=!0},handleOnItemKeyDown:e=>{"ArrowDown"===e.key&&p.current<g.current.length-1?(p.current+=1,g.current.at(p.current)?.focus()):"ArrowUp"===e.key&&p.current>0?(p.current-=1,g.current.at(p.current)?.focus()):"ArrowUp"===e.key&&0===p.current&&(p.current=-1,f.current?.focus())},handleOnSearchKeyDown:e=>{"Enter"===e.key&&""!==h&&"onAddItem"in u&&u.onAddItem?(e.preventDefault(),u.onAddItem(h),m("")):"Space"===e.key||"Enter"===e.key?O():"Escape"===e.key?(f.current?.blur(),w()):"ArrowDown"!==e.key&&"ArrowUp"!==e.key||!g.current.at(0)?"Backspace"===e.key&&void 0===y&&"values"in u&&""===h?k(A?.at(-1)):"Backspace"===e.key&&y&&(C(y),k(void 0)):(g.current[0]?.focus(),p.current=0)},handleOnClear:()=>{"value"in u?u.onSelect(void 0):u.onSelect([])},handleOnSearchChange:e=>{" "===e.target.value||a||c||(m(e.target.value),d?.(e.target.value),v||i(!0),A.length>0&&""!==e.target.value&&setTimeout((()=>{f.current?.focus()})))},handleToggleOpen:()=>{c||a||(v?w():O())},handleOnClose:w,handleOnOpen:O,handleOnRemoveItem:C,search:h,searchRef:f,itemRefs:g,selectedValues:A,open:v,tryingToRemoveItem:y}};export{u as useSelect};
1
+ import{useState as e,useRef as n,useMemo as r,useEffect as t}from"react";import{flattenOptions as l}from"../../molecules/Select/Select.utils.js";const u=u=>{const{loading:a,disabled:c,sortValues:o,onSearchChange:d,onOpenCallback:s}=u,[i,v]=e(!1),[h,m]=e(""),g=n(null),p=n([]),f=n(-1),[y,k]=e(void 0),S=n(!1),I=n(0),A=r((()=>{let e,n=[];return"values"in u?n=u.values:u.value&&(n=[u.value]),o?(e="groups"in u&&u.groups?u.groups.flatMap((e=>e.items)):u.items.flatMap((e=>[{...e},...e.children||[]])),n.sort(((n,r)=>e.findIndex((e=>e.value===n.value))-e.findIndex((e=>e.value===r.value))))):n}),[u,o]);t((()=>{void 0!==s&&s(i)}),[s,i]),t((()=>{S.current&&I.current!==A.length&&(I.current=A.length,S.current=!1,g.current?.focus())}),[A.length]);const O=()=>{i||c||a||(g.current?.focus(),v(!0))},w=()=>{v(!1),m(""),f.current=0},C=e=>{!("values"in u)||a||c||u.onSelect(u.values.filter((n=>n.value!==e.value)),e)};return{handleOnAddItem:()=>{"onAddItem"in u&&u.onAddItem&&(u.onAddItem(h),m(""))},handleOnItemSelect:e=>{"value"in u?u.onSelect(e):u.onSelect(((e,n)=>{const r=structuredClone(e);return r.some((e=>e.value===n.value))?r.filter((e=>e.value!==n.value)):"values"in u&&void 0!==u.syncParentChildSelection&&!u.syncParentChildSelection?[n,...r]:[n,...r.filter((e=>(!(void 0===n.children||n.children.length>0)||!l([n]).some((n=>n.value===e.value)))&&(void 0===e.children||0===e.children.length||l([e]).every((e=>e.value!==n.value)))))]})(u.values,e),e),""!==h&&m(""),S.current=!0},handleOnItemKeyDown:e=>{"ArrowDown"===e.key&&f.current<p.current.length-1?(f.current+=1,p.current.at(f.current)?.focus()):"ArrowUp"===e.key&&f.current>0?(f.current-=1,p.current.at(f.current)?.focus()):"ArrowUp"===e.key&&0===f.current&&(f.current=-1,g.current?.focus())},handleOnSearchKeyDown:e=>{"Enter"===e.key&&""!==h&&"onAddItem"in u&&u.onAddItem?(e.preventDefault(),u.onAddItem(h),m("")):"Space"===e.key||"Enter"===e.key?O():"Escape"===e.key?(g.current?.blur(),w()):"ArrowDown"!==e.key&&"ArrowUp"!==e.key||!p.current.at(0)?"Backspace"===e.key&&void 0===y&&"values"in u&&""===h?k(A?.at(-1)):"Backspace"===e.key&&y&&(C(y),k(void 0)):(p.current[0]?.focus(),f.current=0)},handleOnClear:()=>{"value"in u?u.onSelect(void 0):u.onSelect([])},handleOnSearchChange:e=>{" "===e.target.value||a||c||(m(e.target.value),d?.(e.target.value),i||v(!0),A.length>0&&""!==e.target.value&&setTimeout((()=>{g.current?.focus()})))},handleToggleOpen:()=>{c||a||(i?w():O())},handleOnClose:w,handleOnOpen:O,handleOnRemoveItem:C,search:h,searchRef:g,itemRefs:p,selectedValues:A,open:i,tryingToRemoveItem:y}};export{u as useSelect};
@@ -6,6 +6,50 @@ import{css as _}from"styled-components";const e=_`
6
6
  color: var(--eds_text_static_icons__default);
7
7
  }
8
8
 
9
+ /* Override super specific text colors to just default text color */
10
+ --eds_heading__h1_bold_color: var(--eds_text_static_icons__default);
11
+ --eds_input__text_monospaced_color: var(--eds_text_static_icons__default);
12
+ --eds_input__helper_color: var(--eds_text_static_icons__default);
13
+ --eds_table__cell_text_link_color: var(--eds_text_static_icons__default);
14
+ --eds_navigation__drawer_active_color: var(
15
+ --eds_text_static_icons__default
16
+ );
17
+ --eds_navigation__drawer_inactive_color: var(
18
+ --eds_text_static_icons__default
19
+ );
20
+ --eds_navigation__breadcrumb_color: var(--eds_text_static_icons__default);
21
+ --eds_navigation__breadcrumb_hover_color: var(
22
+ --eds_text_static_icons__default
23
+ );
24
+ --eds_navigation__menu_title_hover_color: var(
25
+ --eds_text_static_icons__default
26
+ );
27
+ --eds_paragraph__body_short_italic_color: var(
28
+ --eds_text_static_icons__default
29
+ );
30
+ --eds_paragraph__body_short_bold_italic_color: var(
31
+ --eds_text_static_icons__default
32
+ );
33
+ --eds_paragraph__body_short_bold_color: var(
34
+ --eds_text_static_icons__default
35
+ );
36
+ --eds_paragraph__body_short_link_color: var(
37
+ --eds_interactive_primary__resting
38
+ );
39
+ --eds_paragraph__ingress_color: var(--eds_text_static_icons__default);
40
+ --eds_paragraph__body_long_italic_color: var(
41
+ --eds_text_static_icons__default
42
+ );
43
+ --eds_paragraph__body_long_bold_color: var(
44
+ --eds_text_static_icons__default
45
+ );
46
+ --eds_paragraph__body_long_bold_italic_color: var(
47
+ --eds_text_static_icons__default
48
+ );
49
+ --eds_ui__tooltip_color: var(--eds_text_static_icons__default);
50
+ --eds_ui__snackbar_color: var(--eds_text_static_icons__default);
51
+ --eds_ui__chart_color: var(--eds_text_static_icons__default);
52
+
9
53
  --eds_clickbound_jumbo__base: 88px;
10
54
  --eds_clickbound_default__base: 48px;
11
55
  --eds_clickbound_default__input: 56px;
@@ -1,5 +1,6 @@
1
1
  import { CommonSelectProps, GroupedSelectProps, ListSelectProps, MultiSelectCommon, SelectOptionRequired } from '../Select.types';
2
- export type ComboBoxProps<T extends SelectOptionRequired> = CommonSelectProps & MultiSelectCommon<T> & (GroupedSelectProps<T> | ListSelectProps<T>);
2
+ export type ListComboBoxProps<T extends SelectOptionRequired> = CommonSelectProps & MultiSelectCommon<T> & ListSelectProps<T>;
3
+ export type GroupedComboBoxProps<T extends SelectOptionRequired> = CommonSelectProps & MultiSelectCommon<T> & GroupedSelectProps<T>;
3
4
  /**
4
5
  * @param clearable - If users should be able to clear the input, defaults to true
5
6
  * @param loading - Show loader, defaults to false
@@ -9,4 +10,4 @@ export type ComboBoxProps<T extends SelectOptionRequired> = CommonSelectProps &
9
10
  * @param showHelperIcon - Show helper variant icon, defaults to true
10
11
  * @param syncParentChildSelection - Syncs parents/child selections, default is true
11
12
  */
12
- export declare function ComboBox<T extends SelectOptionRequired>(props: ComboBoxProps<T>): import("react/jsx-runtime").JSX.Element;
13
+ export declare function ComboBox<T extends SelectOptionRequired>(props: ListComboBoxProps<T> | GroupedComboBoxProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsx as o}from"react/jsx-runtime";import{Select as r}from"../Select.js";function t(t){if(t.groups&&t.onAddItem)throw new Error("[ACL - ComboBox] Using 'onAddItem' is only supported in lists and not groups");return o(r,{...t})}export{t as ComboBox};
1
+ import{jsx as o}from"react/jsx-runtime";import{Select as r}from"../Select.js";function t(t){if("groups"in t&&t.groups&&t.onAddItem)throw new Error("[ACL - ComboBox] Using 'onAddItem' is only supported in lists and not groups");return o(r,{...t})}export{t as ComboBox};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useRef as n,useMemo as o}from"react";import{Label as r,CircularProgress as l,Icon as a}from"@equinor/eds-core-react";import{thumbs_up as i,warning_filled as c,error_filled as d,arrow_drop_up as s,arrow_drop_down as m,clear as h}from"@equinor/eds-icons";import{tokens as u}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useSelect as p}from"../../atoms/hooks/useSelect.js";import{GroupedSelectMenu as g}from"./GroupedSelectMenu.js";import{ListSelectMenu as b}from"./ListSelectMenu.js";import{ValueText as f,StyledChip as v,Wrapper as x,Container as y,Section as I,PlaceholderText as O,ClearButton as k,HelperWrapper as C,StyledMenu as S}from"./Select.styles.js";import{useOutsideClick as w}from"../../node_modules/@equinor/eds-utils/dist/esm/hooks/useOutsideClick.js";const{colors:$}=u,j=u=>{const{clearable:j=!0,loading:D=!1,disabled:R=!1,lightBackground:B=!1,underlineHighlight:K=!1,sortValues:_=!0,placeholder:q="Select...",label:T,helperText:z,showHelperIcon:A=!0,meta:H,id:V=`amplify-combobox-${T}`,variant:W,inDialog:F=!1}=u,{handleOnAddItem:M,handleOnClear:E,handleOnItemKeyDown:G,handleOnItemSelect:L,handleOnSearchChange:N,handleOnSearchKeyDown:J,handleToggleOpen:P,itemRefs:Q,search:U,selectedValues:X,handleOnClose:Y,handleOnOpen:Z,handleOnRemoveItem:ee,open:te,searchRef:ne,tryingToRemoveItem:oe}=p({...u,clearable:j,loading:D,disabled:R,lightBackground:B,underlineHighlight:K,sortValues:_,placeholder:q}),re=n(null),le=n(null),ae=o((()=>!!T||!!H),[T,H]),ie=o((()=>!!z),[z]),ce=o((()=>{if(A)switch(W){case"error":return d;case"warning":return c;case"success":return i}}),[A,W]);w(le.current,(e=>{F&&te&&e.target&&re.current&&le.current&&!re.current.contains(e.target)&&!le.current?.contains(e.target)&&Y()}));const de=o((()=>"value"in u&&u.value?e(f,{children:u.value.label}):X.map((t=>e(v,{"data-testid":"amplify-combobox-chip",className:"amplify-combo-box-chip",onDelete:()=>ee(t),$tryingToRemove:oe?.value===t.value,$lightBackground:B,children:t.label},t.value)))),[X,oe,B,u,ee]);return t("div",{children:[ae&&e(r,{label:T,meta:H,htmlFor:V}),t(x,{children:[t(y,{"data-testid":"combobox-container",ref:re,onClick:Z,"aria-expanded":te,$variant:W,$lightBackground:B,children:[t(I,{children:[""===U&&0===X.length&&e(O,{children:q}),(""===U||"values"in u&&X.length>0)&&de,e("input",{id:V,disabled:R||D,ref:ne,type:"search",role:"combobox",value:U,autoComplete:"off",onChange:N,onKeyDownCapture:J})]}),D?e(l,{size:16}):e(a,{onClick:P,data:te?s:m,color:$.interactive.primary__resting.rgba}),j&&X.length>0&&!D&&e(k,{id:"clear",variant:"ghost_icon",onClick:E,"data-testid":"clearBtn",children:e(a,{data:h,size:18})})]}),ie&&t(C,{$variant:W,children:[ce&&e(a,{data:ce,size:16}),e(r,{label:z,htmlFor:V})]})]}),te&&e(S,{ref:le,open:!0,id:"combobox-menu",anchorEl:re.current,onClose:Y,placement:"bottom",style:{width:`${re.current?.clientWidth}px`,maxWidth:`${re.current?.clientWidth}px`},children:u.groups?e(g,{...u,search:U,itemRefs:Q,onItemSelect:L,onItemKeyDown:G}):e(b,{...u,search:U,itemRefs:Q,onAddItem:"values"in u&&u.onAddItem?M:void 0,onItemSelect:L,onItemKeyDown:G})})]})};export{j as Select};
1
+ import{jsx as e,jsxs as n}from"react/jsx-runtime";import{useRef as t,useMemo as o}from"react";import{Label as r,CircularProgress as l,Icon as a}from"@equinor/eds-core-react";import{thumbs_up as i,warning_filled as c,error_filled as s,arrow_drop_up as d,arrow_drop_down as m,clear as h}from"@equinor/eds-icons";import{tokens as u}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useSelect as p}from"../../atoms/hooks/useSelect.js";import{GroupedSelectMenu as g}from"./GroupedSelectMenu.js";import{ListSelectMenu as b}from"./ListSelectMenu.js";import{ValueText as f,StyledChip as v,Wrapper as x,Container as y,Section as I,PlaceholderText as O,ClearButton as k,HelperWrapper as C,StyledMenu as S}from"./Select.styles.js";import{useOutsideClick as w}from"../../node_modules/@equinor/eds-utils/dist/esm/hooks/useOutsideClick.js";const{colors:$}=u,j=u=>{const{clearable:j=!0,loading:D=!1,disabled:R=!1,lightBackground:B=!1,underlineHighlight:K=!1,sortValues:_=!0,placeholder:q="Select...",label:T,helperText:z,showHelperIcon:A=!0,meta:H,id:V=`amplify-combobox-${T}`,variant:W,inDialog:F=!1}=u,{handleOnAddItem:M,handleOnClear:E,handleOnItemKeyDown:G,handleOnItemSelect:L,handleOnSearchChange:N,handleOnSearchKeyDown:J,handleToggleOpen:P,itemRefs:Q,search:U,selectedValues:X,handleOnClose:Y,handleOnOpen:Z,handleOnRemoveItem:ee,open:ne,searchRef:te,tryingToRemoveItem:oe}=p({...u,clearable:j,loading:D,disabled:R,lightBackground:B,underlineHighlight:K,sortValues:_,placeholder:q}),re=t(null),le=t(null),ae=o((()=>!!T||!!H),[T,H]),ie=o((()=>!!z),[z]),ce=o((()=>{if(A)switch(W){case"error":return s;case"warning":return c;case"success":return i}}),[A,W]);w(le.current,(e=>{F&&ne&&e.target&&re.current&&le.current&&!re.current.contains(e.target)&&!le.current?.contains(e.target)&&Y()}));const se=o((()=>"value"in u&&u.value?e(f,{children:u.value.label}):X.map((n=>e(v,{"data-testid":"amplify-combobox-chip",className:"amplify-combo-box-chip",onDelete:()=>ee(n),$tryingToRemove:oe?.value===n.value,$lightBackground:B,children:n.label},n.value)))),[X,oe,B,u,ee]);return n("div",{children:[ae&&e(r,{label:T,meta:H,htmlFor:V}),n(x,{children:[n(y,{"data-testid":"combobox-container",ref:re,onClick:Z,"aria-expanded":ne,$variant:W,$lightBackground:B,children:[n(I,{children:[""===U&&0===X.length&&e(O,{children:q}),(""===U||"values"in u&&X.length>0)&&se,e("input",{id:V,disabled:R||D,ref:te,type:"search",role:"combobox",value:U,autoComplete:"off",onChange:N,onKeyDownCapture:J})]}),D?e(l,{size:16}):e(a,{onClick:P,data:ne?d:m,color:$.interactive.primary__resting.rgba}),j&&X.length>0&&!D&&e(k,{id:"clear",variant:"ghost_icon",onClick:E,"data-testid":"clearBtn",children:e(a,{data:h,size:18})})]}),ie&&n(C,{$variant:W,children:[ce&&e(a,{data:ce,size:16}),e(r,{label:z,htmlFor:V})]})]}),ne&&e(S,{ref:le,open:!0,id:"combobox-menu",anchorEl:re.current,onClose:Y,placement:"bottom",style:{width:`${re.current?.clientWidth}px`,maxWidth:`${re.current?.clientWidth}px`},children:"groups"in u&&u.groups?e(g,{...u,search:U,itemRefs:Q,onItemSelect:L,onItemKeyDown:G}):e(b,{...u,search:U,itemRefs:Q,onAddItem:"values"in u&&u.onAddItem?M:void 0,onItemSelect:L,onItemKeyDown:G})})]})};export{j as Select};
@@ -1,5 +1,6 @@
1
1
  import { CommonSelectProps, GroupedSelectProps, ListSelectProps, SelectOptionRequired, SingleSelectCommon } from '../Select.types';
2
- export type SingleSelectProps<T extends SelectOptionRequired> = CommonSelectProps & SingleSelectCommon<T> & (GroupedSelectProps<T> | ListSelectProps<T>);
2
+ export type ListSingleSelectProps<T extends SelectOptionRequired> = CommonSelectProps & SingleSelectCommon<T> & ListSelectProps<T>;
3
+ export type GroupedSingleSelectProps<T extends SelectOptionRequired> = CommonSelectProps & SingleSelectCommon<T> & GroupedSelectProps<T>;
3
4
  /**
4
5
  * @param clearable - If users should be able to clear the input, defaults to true
5
6
  * @param loading - Show loader, defaults to false
@@ -8,4 +9,4 @@ export type SingleSelectProps<T extends SelectOptionRequired> = CommonSelectProp
8
9
  * @param inDialog - Fixes weird issue that EDS menus has when it's used in dialogs, defaults to false
9
10
  * @param showHelperIcon - Show helper variant icon, defaults to true
10
11
  */
11
- export declare function SingleSelect<T extends SelectOptionRequired>(props: SingleSelectProps<T>): import("react/jsx-runtime").JSX.Element;
12
+ export declare function SingleSelect<T extends SelectOptionRequired>(props: ListSingleSelectProps<T> | GroupedSingleSelectProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -50,9 +50,9 @@ export { OptionDrawer } from './OptionDrawer/OptionDrawer';
50
50
  export type { OptionDrawerProps } from './OptionDrawer/OptionDrawer';
51
51
  export type { OptionDrawerSelectItem } from './OptionDrawer/OptionDrawer.types';
52
52
  export { ComboBox } from './Select/ComboBox/ComboBox';
53
- export type { ComboBoxProps } from './Select/ComboBox/ComboBox';
53
+ export type { ListComboBoxProps, GroupedComboBoxProps, } from './Select/ComboBox/ComboBox';
54
54
  export { SingleSelect } from './Select/SingleSelect/SingleSelect';
55
- export type { SingleSelectProps } from './Select/SingleSelect/SingleSelect';
55
+ export type { ListSingleSelectProps, GroupedSingleSelectProps, } from './Select/SingleSelect/SingleSelect';
56
56
  export type { SelectOption, SelectOptionRequired } from './Select/Select.types';
57
57
  export { PageWithTitle } from './PageWithTitle/PageWithTitle';
58
58
  export { FeedBackIcon } from './FeedBackIcon/FeedBackIcon';
@@ -1,14 +1,16 @@
1
- import { FC, ReactNode } from 'react';
1
+ import { ChangeEvent, ReactNode } from 'react';
2
2
  import { IconData } from '@equinor/eds-icons';
3
- export interface FilterProps {
3
+ export interface FilterProps<T> {
4
4
  values: {
5
- value: string;
5
+ key: T;
6
6
  label: string;
7
7
  icon?: IconData;
8
8
  }[];
9
- onClearFilter: (value: string) => void;
9
+ onClearFilter: (key: T) => void;
10
10
  onClearAllFilters: () => void;
11
- onSearch: (value: string) => void;
11
+ search: string;
12
+ onSearchChange: (event: ChangeEvent<HTMLInputElement>) => void;
13
+ onSearchEnter: (value: string) => void;
12
14
  children: ReactNode | ReactNode[];
13
15
  initialOpen?: boolean;
14
16
  placeholder?: string;
@@ -16,13 +18,14 @@ export interface FilterProps {
16
18
  }
17
19
  /**
18
20
  * @param values - Array of values to display as chips ({ value: string, label: string, icon?: IconData }[])
19
- * @param onSearch - Function to call when the user presses enter in the search input
21
+ * @param search - The current search value
22
+ * @param onSearchChange - Callback when search changes
23
+ * @param onSearchEnter - Callback when users hit {Enter} in the search field
20
24
  * @param onClearFilter - Function to call when the user clicks the delete button on a chip
21
25
  * @param onClearAllFilters - Function to call when the user clicks the clear filters button
22
26
  * @param children - ReactNode or ReactNode[] to display below when the filter is open
23
27
  * @param initialOpen - Whether the filter should be open by default, defaults to false
24
28
  * @param placeholder - Placeholder text for the search input, defaults to 'Search...'
25
29
  * @param showClearFiltersButton - Whether to show the clear filters button, defaults to true
26
- * @constructor
27
30
  */
28
- export declare const Filter: FC<FilterProps>;
31
+ export declare function Filter<T>({ values, search, onSearchChange, onSearchEnter, onClearFilter, onClearAllFilters, children, initialOpen, placeholder, showClearFiltersButton, }: FilterProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useState as t,useRef as i}from"react";import{Icon as n,Button as o}from"@equinor/eds-core-react";import{filter_list as a,clear as l,arrow_drop_up as c,arrow_drop_down as h}from"@equinor/eds-icons";import{Wrapper as s,Container as d,StyledChip as m,SearchField as u,Content as p}from"./Filter.styles.js";import{colors as g}from"../../atoms/style/colors.js";import{AnimatePresence as v}from"framer-motion";const C=({values:C,onSearch:f,onClearFilter:y,onClearAllFilters:k,children:_,initialOpen:F=!1,placeholder:x="Search...",showClearFiltersButton:b=!0})=>{const[D,j]=t(F),[w,A]=t(""),[B,$]=t(-1),q=i(F?"auto":0),S=()=>{j((e=>!e)),"auto"===q.current&&(q.current=0)},z=()=>{A(""),k()};return e(s,{children:[e(d,{$open:D,children:[r(n,{onClick:S,data:a,color:g.interactive.primary__resting.rgba}),e("section",{children:[C.map((({value:e,label:t,icon:i},n)=>r(m,{onDelete:()=>y(e),leadingIconData:i,$tryingToRemove:B===n,children:t},e))),r(u,{id:"filter-search",type:"search",value:w,placeholder:x,onChange:e=>{A(e.target.value)},onKeyDownCapture:e=>{"Enter"===e.key&&""!==w&&(e.preventDefault(),f(w),A("")),"Backspace"===e.key&&""===w&&(C.length>0&&-1===B?$(C.length-1):-1!==B&&(y(C[B].value),$(-1)))},onFocus:()=>{D||j(!0)}})]}),C.length>0&&r(o,{variant:"ghost_icon",onClick:z,"data-testid":"clear-all-x",children:r(n,{data:l,size:16,color:g.text.static_icons__tertiary.rgba})}),r(o,{variant:"ghost_icon",onClick:S,"data-testid":"toggle-open-button",children:r(n,{data:D?c:h})})]}),r(v,{children:D&&r(p,{$showClearFilterButton:b,animate:{height:"auto"},initial:{height:q.current},exit:{height:0},children:r("section",{children:Array.isArray(_)?_.map(((t,i)=>e("div",{children:[t,i===_.length-1&&b&&r(o,{variant:"outlined",onClick:z,children:"Clear filters"})]},i))):e("div",{children:[_,b&&r(o,{variant:"outlined",onClick:z,children:"Clear filters"})]})})})})]})};export{C as Filter};
1
+ import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useState as t,useRef as i}from"react";import{Icon as n,Button as o}from"@equinor/eds-core-react";import{filter_list as a,clear as l,arrow_drop_up as c,arrow_drop_down as h}from"@equinor/eds-icons";import{Wrapper as s,Container as d,StyledChip as m,SearchField as g,Content as u}from"./Filter.styles.js";import{colors as p}from"../../atoms/style/colors.js";import{AnimatePresence as C}from"framer-motion";function y({values:y,search:f,onSearchChange:k,onSearchEnter:v,onClearFilter:_,onClearAllFilters:b,children:F,initialOpen:x=!1,placeholder:$="Search...",showClearFiltersButton:j=!0}){const[w,A]=t(x),[B,D]=t(-1),S=i(x?"auto":0),q=()=>{A((e=>!e)),"auto"===S.current&&(S.current=0)},E=()=>{b()};return e(s,{children:[e(d,{$open:w,children:[r(n,{onClick:q,data:a,color:p.interactive.primary__resting.rgba}),e("section",{children:[y.map((({key:e,label:t,icon:i},n)=>r(m,{onDelete:()=>_(e),leadingIconData:i,$tryingToRemove:B===n,children:t},`${t}-${n}`))),r(g,{id:"filter-search",type:"search",value:f,placeholder:$,onChange:k,onKeyDownCapture:e=>{"Enter"===e.key&&""!==f?v(f):"Backspace"===e.key&&""===f&&(y.length>0&&-1===B?D(y.length-1):-1!==B&&(_(y[B].key),D(-1)))},onFocus:()=>{w||A(!0)}})]}),y.length>0&&r(o,{variant:"ghost_icon",onClick:E,"data-testid":"clear-all-x",children:r(n,{data:l,size:16,color:p.text.static_icons__tertiary.rgba})}),r(o,{variant:"ghost_icon",onClick:q,"data-testid":"toggle-open-button",children:r(n,{data:w?c:h})})]}),r(C,{children:w&&r(u,{$showClearFilterButton:j,animate:{height:"auto"},initial:{height:S.current},exit:{height:0},children:r("section",{children:Array.isArray(F)?F.map(((t,i)=>e("div",{children:[t,i===F.length-1&&j&&r(o,{variant:"outlined",onClick:E,disabled:0===y.length,children:"Clear filters"})]},i))):e("div",{children:[F,j&&r(o,{variant:"outlined",onClick:E,disabled:0===y.length,children:"Clear filters"})]})})})})]})}export{y as Filter};
@@ -1,24 +1,24 @@
1
- import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tiptap/react";import"../../molecules/RichTextEditor/RichTextEditor.styles.js";import"react/jsx-runtime";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import"../../providers/TutorialStepsProvider.js";import{elevation as t,shape as r,typography as i}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"../ErrorPage/illustrations/GlitchAnimation.js";import"../ErrorPage/illustrations/QuestioningAnimation.js";import"proj4";import"html2canvas";import{Chip as o}from"../../molecules/Chip/Chip.js";import{motion as e}from"framer-motion";import s,{css as a}from"styled-components";import{colors as n}from"../../atoms/style/colors.js";import{spacings as m}from"../../atoms/style/spacings.js";const p=s.div`
1
+ import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tiptap/react";import"../../molecules/RichTextEditor/RichTextEditor.styles.js";import"react/jsx-runtime";import"../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../atoms/enums/Environment.js";import"../../atoms/utils/auth_environment.js";import"../TopBar/Notifications/NotificationProvider.js";import"../../providers/AuthProvider/AuthProvider.js";import"../../providers/ReleaseNotesProvider.js";import"../../providers/SideBarProvider.js";import"../../providers/SnackbarProvider/SnackbarProvider.js";import"../../providers/TableOfContentsProvider.js";import"../../providers/ThemeProvider/ThemeProvider.js";import"../../providers/TutorialStepsProvider.js";import{elevation as r,shape as t,typography as i}from"../../atoms/style/index.js";import"../../atoms/enums/Errors.js";import"../../atoms/enums/Theme.js";import"../../atoms/enums/SpacingsMode.js";import"../ErrorPage/illustrations/GlitchAnimation.js";import"../ErrorPage/illustrations/QuestioningAnimation.js";import"proj4";import"html2canvas";import{Chip as o}from"../../molecules/Chip/Chip.js";import{motion as e}from"framer-motion";import s,{css as a}from"styled-components";import{colors as m}from"../../atoms/style/colors.js";import{spacings as n}from"../../atoms/style/spacings.js";const p=s.div`
2
2
  width: 100%;
3
- box-shadow: ${t.raised};
4
- background: ${n.ui.background__default.rgba};
5
- border-radius: ${r.corners.borderRadius};
3
+ box-shadow: ${r.raised};
4
+ background: ${m.ui.background__default.rgba};
5
+ border-radius: ${t.corners.borderRadius};
6
6
  overflow: hidden;
7
7
  `,d=s.div`
8
8
  display: grid;
9
9
  grid-template-columns: auto 1fr auto auto;
10
10
  align-items: center;
11
11
  width: 100%;
12
- gap: ${m.small};
13
- padding: ${m.medium_small} ${m.small};
12
+ gap: ${n.small};
13
+ padding: ${n.medium_small} ${n.small};
14
14
  border-bottom: 1px solid
15
- ${({$open:t})=>t?n.ui.background__medium.rgba:"transparent"};
15
+ ${({$open:r})=>r?m.ui.background__medium.rgba:"transparent"};
16
16
  transition: border-bottom 200ms;
17
17
  cursor: pointer;
18
18
  > section {
19
19
  display: flex;
20
20
  flex-wrap: wrap;
21
- gap: ${m.x_small};
21
+ gap: ${n.x_small};
22
22
  }
23
23
  > button {
24
24
  width: 24px;
@@ -39,12 +39,12 @@ import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit
39
39
  font-family: 'Equinor', sans-serif;
40
40
  font-size: ${i.input.text.fontSize};
41
41
  font-weight: ${i.input.text.fontWeight};
42
- color: ${n.text.static_icons__default.rgba};
42
+ color: ${m.text.static_icons__default.rgba};
43
43
  outline: none;
44
44
  border: none;
45
45
  &::placeholder {
46
46
  opacity: 1;
47
- color: ${n.text.static_icons__tertiary.rgba};
47
+ color: ${m.text.static_icons__tertiary.rgba};
48
48
  }
49
49
  &::-webkit-search-cancel-button,
50
50
  &::-webkit-search-results-button,
@@ -53,15 +53,15 @@ import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit
53
53
  }
54
54
  `,u=s(e.div)`
55
55
  > section {
56
- padding: ${m.medium};
56
+ padding: ${n.medium};
57
57
  display: flex;
58
58
  flex-direction: column;
59
- gap: ${m.medium};
60
- ${({$showClearFilterButton:t})=>{if(t)return a`
59
+ gap: ${n.medium};
60
+ ${({$showClearFilterButton:r})=>{if(r)return a`
61
61
  > div:last-child {
62
62
  display: grid;
63
63
  grid-template-columns: 1fr auto;
64
- gap: ${m.medium};
64
+ gap: ${n.medium};
65
65
 
66
66
  > button {
67
67
  align-self: flex-end;
@@ -70,7 +70,7 @@ import"react";import"../../molecules/RichTextEditor/custom-extensions/AmplifyKit
70
70
  `}}
71
71
  }
72
72
  `,c=s(o)`
73
- ${({$tryingToRemove:t})=>{if(t)return a`
74
- background: ${n.ui.background__light.rgba};
73
+ ${({$tryingToRemove:r})=>{if(r)return a`
74
+ background: ${m.interactive.primary__hover_alt.rgba};
75
75
  `}}
76
76
  `;export{d as Container,u as Content,l as SearchField,c as StyledChip,p as Wrapper};
@@ -1,4 +1,4 @@
1
- import{tokens as o}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import"../../atoms/style/colors.js";import{spacings as i}from"../../atoms/style/spacings.js";import{darkTokens as t}from"../../atoms/style/darkTokens.js";import{lightTokens as n}from"../../atoms/style/lightTokens.js";import{spacingTokens as e}from"../../atoms/style/spacingTokens.js";import s,{createGlobalStyle as a}from"styled-components";const{colors:r}=o,d=s.div`
1
+ import{tokens as o}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import"../../atoms/style/colors.js";import{spacings as i}from"../../atoms/style/spacings.js";import{darkTokens as t}from"../../atoms/style/darkTokens.js";import{lightTokens as e}from"../../atoms/style/lightTokens.js";import{spacingTokens as n}from"../../atoms/style/spacingTokens.js";import s,{createGlobalStyle as a}from"styled-components";const{colors:r}=o,d=s.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  min-height: 100vh;
@@ -19,13 +19,17 @@ import{tokens as o}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/ind
19
19
  }
20
20
  `,m=a`
21
21
  ${t}
22
- ${n}
23
22
  ${e}
23
+ ${n}
24
24
 
25
25
  * {
26
26
  box-sizing: border-box;
27
27
  }
28
28
 
29
+ body, #content {
30
+ scrollbar-gutter: stable both-edges;
31
+ }
32
+
29
33
  dialog {
30
34
  background: ${r.ui.background__default.rgba};
31
35
  }
@@ -1 +1 @@
1
- import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useState as r,useEffect as t,useMemo as i}from"react";import{Button as s,Icon as l,Typography as m,DotProgress as a}from"@equinor/eds-core-react";import{arrow_back as n}from"@equinor/eds-icons";import{useAllAppRoles as p}from"../hooks/useAllAppRoles.js";import{useCreateImpersonation as c}from"../hooks/useCreateImpersonation.js";import{useEditImpersonation as u}from"../hooks/useEditImpersonation.js";import{Header as d}from"../Impersonate.styles.js";import{Container as j,Section as h}from"./CreateOrEditUser.styles.js";import{usePrevious as v}from"../../../../../atoms/hooks/usePrevious.js";import{environment as g}from"../../../../../atoms/utils/auth_environment.js";import"../../../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../../../molecules/Badge/Badge.styles.js";import"../../../../../molecules/Banner/Banner.styles.js";import"../../../../../molecules/Chip/Chip.js";import"../../../../../molecules/ContentMenu/ContentMenu.js";import"../../../../../molecules/Dialog/Dialog.js";import"../../../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../../../atoms/style/colors.js";import"../../../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tiptap/react";import"../../../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../../atoms/enums/Environment.js";import"../../../Notifications/NotificationProvider.js";import"../../../../../providers/AuthProvider/AuthProvider.js";import"../../../../../providers/ReleaseNotesProvider.js";import"../../../../../providers/SideBarProvider.js";import"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../../providers/TableOfContentsProvider.js";import"../../../../../providers/ThemeProvider/ThemeProvider.js";import"../../../../../providers/TutorialStepsProvider.js";import"../../../../../atoms/enums/Errors.js";import"../../../../../atoms/enums/Theme.js";import"../../../../../atoms/enums/SpacingsMode.js";import"../../../../ErrorPage/illustrations/GlitchAnimation.js";import"../../../../ErrorPage/illustrations/QuestioningAnimation.js";import"proj4";import"html2canvas";import"../../../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../../../molecules/InfoElement/InfoElement.js";import"../../../../../molecules/OptionalTooltip/OptionalTooltip.js";import"../../../../../molecules/ProfileAvatar/ProfileAvatar.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../../../molecules/Search/Search.js";import"react-router-dom";import"../../../../../molecules/Sieve/Sieve.styles.js";import"../../../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../../../molecules/Stepper/Stepper.js";import"../../../../../molecules/OptionDrawer/OptionDrawer.js";import{ComboBox as f}from"../../../../../molecules/Select/ComboBox/ComboBox.js";import"../../../../../molecules/Select/Select.styles.js";import"../../../../../molecules/ListItem/ListItem.js";import"../../../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../../../molecules/SelectionControls/Radio/Radio.js";import"../../../../../molecules/SelectionControls/Switch/Switch.js";import{TextField as S}from"../../../../../molecules/TextField/TextField.js";const C=({editingUser:C,onBack:P})=>{const A=v(C),[E,k]=r([]),[N,y]=r(""),[T,x]=r(""),{data:B,isLoading:b}=p();t((()=>{!C||void 0!==A&&A.uniqueName===C.uniqueName||(k(C.roles.map((e=>({value:e,label:e})))),y(C.firstName),x(C.lastName))}),[C,A]);const R=i((()=>B?.map((e=>({value:e.value,label:e.value})))??[]),[B]),{mutateAsync:F,isPending:M}=c(),{mutateAsync:q,isPending:I}=u(),w=M||I,L=i((()=>""===N||""===T||0===E.length),[N,T,E.length]);return e(j,{children:[e(d,{children:[o(s,{variant:"ghost_icon",onClick:P,children:o(l,{data:n})}),o(m,{variant:"h6",children:C?"Edit user":"Create new user"})]}),e(h,{children:[o(S,{id:"first-name",label:"First name",placeholder:"Add first name...",value:N,onChange:e=>{y(e.target.value)}}),o(S,{id:"last-name",label:"Last name",placeholder:"Add last name...",value:T,onChange:e=>{x(e.target.value)}})]}),e(h,{children:[o(m,{variant:"label",group:"navigation",children:"Roles"}),b&&o(a,{color:"primary"}),o(f,{placeholder:"Select roles...",values:E,onSelect:e=>{k(e)},items:R})]}),e(h,{children:[o(s,{variant:"outlined",onClick:P,children:"Cancel"}),o(s,w?{children:o(a,{})}:{onClick:async()=>{C?(await q({firstName:N,lastName:T,fullName:`${N} ${T}`,roles:E.map((e=>e.value)).sort(),uniqueName:C.uniqueName,appName:C.appName,activeUsers:[]}),P()):(await F({firstName:N,lastName:T,roles:E.map((e=>e.value)).sort(),uniqueName:`${N}.${T}`.toLowerCase(),appName:g.getAppName(import.meta.env.VITE_NAME),activeUsers:[]}),P())},disabled:L,children:C?"Save":"Create"})]})]})};export{C as CreateOrEditUser};
1
+ import{jsxs as e,jsx as o}from"react/jsx-runtime";import{useState as r,useEffect as t,useMemo as i}from"react";import{Button as s,Icon as l,Typography as m,DotProgress as a}from"@equinor/eds-core-react";import{arrow_back as n}from"@equinor/eds-icons";import{useAllAppRoles as p}from"../hooks/useAllAppRoles.js";import{useCreateImpersonation as c}from"../hooks/useCreateImpersonation.js";import{useEditImpersonation as u}from"../hooks/useEditImpersonation.js";import{Header as d}from"../Impersonate.styles.js";import{Container as j,Section as h}from"./CreateOrEditUser.styles.js";import{usePrevious as v}from"../../../../../atoms/hooks/usePrevious.js";import{environment as g}from"../../../../../atoms/utils/auth_environment.js";import"../../../../../molecules/AnimatedCheckmark/AnimatedCheckmark.styles.js";import"../../../../../molecules/ApplicationIcon/ApplicationIcon.js";import"../../../../../molecules/Badge/Badge.styles.js";import"../../../../../molecules/Banner/Banner.styles.js";import"../../../../../molecules/Chip/Chip.js";import"../../../../../molecules/ContentMenu/ContentMenu.js";import"../../../../../molecules/Dialog/Dialog.js";import"../../../../../molecules/EquinorLogo/EquinorLogo.js";import"../../../../../atoms/style/colors.js";import"../../../../../molecules/FileProgress/CompactFileProgress.styles.js";import"../../../../../molecules/RichTextEditor/custom-extensions/AmplifyKit.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuBar.js";import"@tiptap/react";import"../../../../../molecules/RichTextEditor/RichTextEditor.styles.js";import"../../../../../molecules/RichTextEditor/RichTextEditor.types.js";import"../../../../../_virtual/lodash.js";import"@equinor/subsurface-app-management";import"@microsoft/signalr";import"@tanstack/react-query";import"../../../../../atoms/enums/Environment.js";import"../../../Notifications/NotificationProvider.js";import"../../../../../providers/AuthProvider/AuthProvider.js";import"../../../../../providers/ReleaseNotesProvider.js";import"../../../../../providers/SideBarProvider.js";import"../../../../../providers/SnackbarProvider/SnackbarProvider.js";import"../../../../../providers/TableOfContentsProvider.js";import"../../../../../providers/ThemeProvider/ThemeProvider.js";import"../../../../../providers/TutorialStepsProvider.js";import"../../../../../atoms/enums/Errors.js";import"../../../../../atoms/enums/Theme.js";import"../../../../../atoms/enums/SpacingsMode.js";import"../../../../ErrorPage/illustrations/GlitchAnimation.js";import"../../../../ErrorPage/illustrations/QuestioningAnimation.js";import"proj4";import"html2canvas";import"../../../../../molecules/FileProgress/RegularFileProgress.styles.js";import"../../../../../molecules/FileUploadArea/FileUploadArea.js";import"../../../../../molecules/FullPageSpinner/FullPageSpinner.js";import"../../../../../molecules/InfoElement/InfoElement.js";import"../../../../../molecules/OptionalTooltip/OptionalTooltip.js";import"../../../../../molecules/ProfileAvatar/ProfileAvatar.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuBar.styles.js";import"../../../../../molecules/RichTextEditor/MenuBar/MenuButton.js";import"../../../../../molecules/Search/Search.js";import"react-router-dom";import"../../../../../molecules/Sieve/Sieve.styles.js";import"../../../../../molecules/SingleFilterMenu/SingleFilterMenu.js";import"../../../../../molecules/Skeleton/SkeletonBase/SkeletonBase.js";import"../../../../../molecules/Stepper/Stepper.js";import"../../../../../molecules/OptionDrawer/OptionDrawer.js";import{ComboBox as f}from"../../../../../molecules/Select/ComboBox/ComboBox.js";import"../../../../../molecules/Select/Select.styles.js";import"../../../../../molecules/ListItem/ListItem.js";import"../../../../../molecules/SelectionControls/Checkbox/Checkbox.js";import"../../../../../molecules/SelectionControls/Radio/Radio.js";import"../../../../../molecules/SelectionControls/Switch/Switch.js";import{TextField as S}from"../../../../../molecules/TextField/TextField.js";const C=({editingUser:C,onBack:P})=>{const A=v(C),[E,k]=r([]),[N,y]=r(""),[T,x]=r(""),{data:B,isLoading:b}=p();t((()=>{!C||void 0!==A&&A.uniqueName===C.uniqueName||(k(C.roles.map((e=>({value:e,label:e})))),y(C.firstName),x(C.lastName))}),[C,A]);const R=i((()=>B?.map((e=>({value:e.value,label:e.value})))??[]),[B]),{mutateAsync:F,isPending:M}=c(),{mutateAsync:q,isPending:I}=u(),w=M||I,L=i((()=>""===N||""===T||0===E.length),[N,T,E.length]);return e(j,{children:[e(d,{children:[o(s,{variant:"ghost_icon",onClick:P,children:o(l,{data:n})}),o(m,{variant:"h6",children:C?"Edit user":"Create new user"})]}),e(h,{children:[o(S,{id:"first-name",label:"First name",placeholder:"Add first name...",value:N,onChange:e=>{y(e.target.value)}}),o(S,{id:"last-name",label:"Last name",placeholder:"Add last name...",value:T,onChange:e=>{x(e.target.value)}})]}),e(h,{children:[o(m,{variant:"label",group:"navigation",children:"Roles"}),b&&o(a,{color:"primary"}),o(f,{placeholder:"Select roles...",values:E,onSelect:e=>{k(e)},items:R})]}),e(h,{children:[o(s,{variant:"outlined",onClick:P,children:"Cancel"}),o(s,w?{children:o(a,{})}:{onClick:async()=>{C?(await q({id:C.id,firstName:N,lastName:T,fullName:`${N} ${T}`,roles:E.map((e=>e.value)).sort(),uniqueName:C.uniqueName,appName:C.appName,activeUsers:[]}),P()):(await F({firstName:N,lastName:T,roles:E.map((e=>e.value)).sort(),uniqueName:`${N}.${T}`.toLowerCase(),appName:g.getAppName(import.meta.env.VITE_NAME),activeUsers:[]}),P())},disabled:L,children:C?"Save":"Create"})]})]})};export{C as CreateOrEditUser};
@@ -1,10 +1,10 @@
1
- import { FC, ReactNode } from 'react';
1
+ import { FC, MouseEvent, ReactNode } from 'react';
2
2
  import { SnackbarProps } from '@equinor/eds-core-react';
3
3
  interface ShowSnackbarSettings {
4
4
  customProps?: SnackbarProps;
5
5
  action?: {
6
6
  text: string;
7
- handler: () => void;
7
+ handler: (event: MouseEvent<HTMLButtonElement>) => void;
8
8
  disabled?: boolean;
9
9
  };
10
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/amplify-component-lib",
3
- "version": "8.11.0",
3
+ "version": "8.11.1",
4
4
  "description": "Frontend Typescript components for the Amplify team",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,8 +25,8 @@
25
25
  "setup": "npm install",
26
26
  "pretty": "prettier --check ./config ./src",
27
27
  "pretty:fix": "prettier --write ./config ./src",
28
- "lint": "eslint ./src --ext .ts,.tsx",
29
- "lint:fix": "eslint ./src --ext .ts,.tsx --fix",
28
+ "lint": "eslint ./src",
29
+ "lint:fix": "eslint ./src --fix",
30
30
  "test": "vitest watch",
31
31
  "test:ci": "vitest run",
32
32
  "test:coverage": "vitest run --coverage",
@@ -98,6 +98,7 @@
98
98
  "devDependencies": {
99
99
  "@equinor/eds-icons": "^0.21.0",
100
100
  "@equinor/subsurface-app-management": "^1.1.15",
101
+ "@eslint/js": "^9.13.0",
101
102
  "@faker-js/faker": "^9.0.3",
102
103
  "@rollup/plugin-commonjs": "^28.0.1",
103
104
  "@rollup/plugin-node-resolve": "^15.3.0",
@@ -131,15 +132,13 @@
131
132
  "@types/styled-components": "^5.1.34",
132
133
  "@types/uuid": "^10.0.0",
133
134
  "@types/wicg-file-system-access": "^2023.10.5",
134
- "@typescript-eslint/eslint-plugin": "^8.9.0",
135
- "@typescript-eslint/parser": "^8.9.0",
136
135
  "@vitejs/plugin-react": "^4.3.2",
137
136
  "@vitest/coverage-v8": "^2.1.3",
138
- "eslint": "^8.56.0",
139
- "eslint-plugin-react": "^7.37.1",
137
+ "eslint": "^9.13.0",
138
+ "eslint-plugin-react": "^7.37.2",
140
139
  "eslint-plugin-react-hooks": "^5.0.0",
141
140
  "eslint-plugin-simple-import-sort": "^12.1.1",
142
- "eslint-plugin-storybook": "^0.9.0",
141
+ "eslint-plugin-storybook": "^0.10.1",
143
142
  "jest-environment-jsdom": "^29.7.0",
144
143
  "jest-styled-components": "^7.2.0",
145
144
  "msw": "^2.4.11",
@@ -159,6 +158,7 @@
159
158
  "storybook-addon-data-theme-switcher": "^0.4.2",
160
159
  "storybook-addon-remix-react-router": "^3.0.1",
161
160
  "typescript": "^5.6.3",
161
+ "typescript-eslint": "^8.11.0",
162
162
  "uuid": "^10.0.0",
163
163
  "vite": "^5.4.9",
164
164
  "vite-plugin-svgr": "^4.2.0",