@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.
- package/dist/atoms/hooks/useSelect.js +1 -1
- package/dist/atoms/style/darkTokens.js +44 -0
- package/dist/molecules/Select/ComboBox/ComboBox.d.ts +3 -2
- package/dist/molecules/Select/ComboBox/ComboBox.js +1 -1
- package/dist/molecules/Select/Select.js +1 -1
- package/dist/molecules/Select/SingleSelect/SingleSelect.d.ts +3 -2
- package/dist/molecules/index.d.ts +2 -2
- package/dist/organisms/Filter/Filter.d.ts +11 -8
- package/dist/organisms/Filter/Filter.js +1 -1
- package/dist/organisms/Filter/Filter.styles.js +16 -16
- package/dist/organisms/Template/Template.js +6 -2
- package/dist/organisms/TopBar/Account/ImpersonateMenu/CreateOrEditUser/CreateOrEditUser.js +1 -1
- package/dist/providers/SnackbarProvider/SnackbarProvider.d.ts +2 -2
- package/package.json +8 -8
|
@@ -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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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:
|
|
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 {
|
|
53
|
+
export type { ListComboBoxProps, GroupedComboBoxProps, } from './Select/ComboBox/ComboBox';
|
|
54
54
|
export { SingleSelect } from './Select/SingleSelect/SingleSelect';
|
|
55
|
-
export type {
|
|
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 {
|
|
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
|
-
|
|
5
|
+
key: T;
|
|
6
6
|
label: string;
|
|
7
7
|
icon?: IconData;
|
|
8
8
|
}[];
|
|
9
|
-
onClearFilter: (
|
|
9
|
+
onClearFilter: (key: T) => void;
|
|
10
10
|
onClearAllFilters: () => void;
|
|
11
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: ${
|
|
4
|
-
background: ${
|
|
5
|
-
border-radius: ${
|
|
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: ${
|
|
13
|
-
padding: ${
|
|
12
|
+
gap: ${n.small};
|
|
13
|
+
padding: ${n.medium_small} ${n.small};
|
|
14
14
|
border-bottom: 1px solid
|
|
15
|
-
${({$open:
|
|
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: ${
|
|
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: ${
|
|
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: ${
|
|
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: ${
|
|
56
|
+
padding: ${n.medium};
|
|
57
57
|
display: flex;
|
|
58
58
|
flex-direction: column;
|
|
59
|
-
gap: ${
|
|
60
|
-
${({$showClearFilterButton:
|
|
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: ${
|
|
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:
|
|
74
|
-
background: ${
|
|
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
|
|
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.
|
|
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
|
|
29
|
-
"lint:fix": "eslint ./src --
|
|
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": "^
|
|
139
|
-
"eslint-plugin-react": "^7.37.
|
|
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.
|
|
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",
|