@equinor/amplify-component-lib 9.9.2 → 9.10.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/dist/atoms/hooks/useSelect.js +1 -1
- package/dist/index.js +1 -1
- package/dist/molecules/Select/ComboBox/ComboBox.d.ts +1 -0
- package/dist/molecules/Select/GroupedSelectMenu.d.ts +2 -2
- package/dist/molecules/Select/ListSelectMenu.d.ts +2 -2
- package/dist/molecules/Select/Select.js +1 -1
- package/dist/molecules/Select/Select.types.d.ts +16 -5
- package/dist/molecules/Select/SelectMenuItem.js +1 -1
- package/dist/molecules/Select/SelectMenuItem.utils.d.ts +4 -1
- package/dist/molecules/Select/SelectMenuItem.utils.js +1 -1
- package/dist/molecules/Select/SingleSelect/SingleSelect.d.ts +1 -0
- package/dist/molecules/SelectionControls/Checkbox/Checkbox.d.ts +1 -0
- package/dist/molecules/SelectionControls/Checkbox/Checkbox.js +1 -1
- package/dist/molecules/SelectionControls/Radio/Radio.d.ts +1 -0
- package/dist/molecules/SelectionControls/Radio/Radio.js +1 -1
- package/dist/molecules/SelectionControls/SelectionControls.styles.d.ts +1 -0
- package/dist/molecules/SelectionControls/SelectionControls.styles.js +46 -17
- package/dist/molecules/Stepper/Step/Step.js +11 -7
- package/dist/molecules/Stepper/Step/StepIcon.d.ts +1 -0
- package/dist/molecules/Stepper/Step/StepIcon.js +6 -6
- package/dist/molecules/index.d.ts +0 -1
- package/dist/providers/StepperProvider.d.ts +15 -9
- package/dist/providers/StepperProvider.js +1 -1
- package/package.json +1 -1
- package/dist/molecules/PageWithTitle/PageWithTitle.d.ts +0 -7
- package/dist/molecules/PageWithTitle/PageWithTitle.js +0 -1
|
@@ -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),
|
|
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),p=n([]),g=n(-1),[y,S]=e(void 0),k=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(v)}),[s,v]),t((()=>{k.current&&I.current!==A.length&&(I.current=A.length,k.current=!1,f.current?.focus())}),[A.length]);const O=()=>{v||c||a||(f.current?.focus(),i(!0))},w=()=>{i(!1),m(""),g.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.value?.value===e.value?u.onSelect(void 0):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(""),k.current=!0},handleOnItemKeyDown:e=>{"ArrowDown"===e.key&&g.current<p.current.length-1?(g.current+=1,p.current.at(g.current)?.focus()):"ArrowUp"===e.key&&g.current>0?(g.current-=1,p.current.at(g.current)?.focus()):"ArrowUp"===e.key&&0===g.current&&(g.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||!p.current.at(0)?"Backspace"===e.key&&void 0===y&&"values"in u&&""===h?(S(A?.at(-1)),setTimeout((()=>{f.current?.focus()}))):"Backspace"===e.key&&y&&(C(y),S(void 0),setTimeout((()=>{f.current?.focus()}))):(p.current[0]?.focus(),g.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))},handleToggleOpen:()=>{c||a||(v?w():O())},handleOnClose:w,handleOnOpen:O,handleOnRemoveItem:C,search:h,searchRef:f,itemRefs:p,selectedValues:A,open:v,tryingToRemoveItem:y}};export{u as useSelect};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{AuthProvider,useAuth}from"./providers/AuthProvider/AuthProvider.js";export{SideBarProvider,useSideBar}from"./providers/SideBarProvider.js";export{SnackbarProvider,useSnackbar}from"./providers/SnackbarProvider/SnackbarProvider.js";export{TableOfContentsProvider,useTableOfContents}from"./providers/TableOfContentsProvider.js";export{ReleaseNotesProvider,useReleaseNotes}from"./providers/ReleaseNotesProvider.js";export{TutorialHighlightingProvider}from"./providers/TutorialHighlightingProvider/TutorialHighlightingProvider.js";export{LoadingProvider}from"./providers/LoadingProvider.js";export{ThemeProvider,useThemeProvider}from"./providers/ThemeProvider/ThemeProvider.js";export{StepperProvider,useStepper}from"./providers/StepperProvider.js";export{style}from"./atoms/index.js";export{AnimatedCheckmark}from"./molecules/AnimatedCheckmark/AnimatedCheckmark.js";export{ApplicationIcon}from"./molecules/ApplicationIcon/ApplicationIcon.js";export{Badge}from"./molecules/Badge/Badge.js";export{Banner}from"./molecules/Banner/Banner.js";export{Button}from"./molecules/Button/Button.js";export{Chip}from"./molecules/Chip/Chip.js";export{ContentMenu}from"./molecules/ContentMenu/ContentMenu.js";export{DatePicker}from"./molecules/DatePicker/DatePicker.js";export{Dialog}from"./molecules/Dialog/Dialog.js";export{EquinorLogo}from"./molecules/EquinorLogo/EquinorLogo.js";export{FileProgress}from"./molecules/FileProgress/FileProgress.js";export{FileUploadArea}from"./molecules/FileUploadArea/FileUploadArea.js";export{FullPageSpinner}from"./molecules/FullPageSpinner/FullPageSpinner.js";export{InfoElement}from"./molecules/InfoElement/InfoElement.js";export{OptionalTooltip}from"./molecules/OptionalTooltip/OptionalTooltip.js";export{ProfileAvatar}from"./molecules/ProfileAvatar/ProfileAvatar.js";export{RichTextDisplay}from"./molecules/RichTextDisplay/RichTextDisplay.js";export{RichText}from"./molecules/RichTextEditor/index.js";export{AmplifyBar,EditorMenu,EditorText}from"./molecules/RichTextEditor/MenuBar/MenuBar.js";export{AmplifyKit}from"./molecules/RichTextEditor/custom-extensions/AmplifyKit.js";export{Tabs}from"./molecules/Tabs/Tabs.js";export{TableMenuBar,TextTable}from"./molecules/RichTextEditor/MenuBar/Table/TableBar.js";export{DEFAULT_FEATURES,RichTextEditorFeatures}from"./molecules/RichTextEditor/RichTextEditor.types.js";export{Search}from"./molecules/Search/Search.js";export{Sieve}from"./molecules/Sieve/Sieve.js";export{SingleFilterMenu}from"./molecules/SingleFilterMenu/SingleFilterMenu.js";export{SkeletonBase,skeletonBaseloading}from"./molecules/Skeleton/SkeletonBase/SkeletonBase.js";export{SkeletonGradient}from"./molecules/Skeleton/SkeletonGradient/SkeletonGradient.js";export{Stepper}from"./molecules/Stepper/Stepper.js";export{OptionDrawer}from"./molecules/OptionDrawer/OptionDrawer.js";export{ComboBox}from"./molecules/Select/ComboBox/ComboBox.js";export{ComboBoxChip}from"./molecules/Select/Select.styles.js";export{SingleSelect}from"./molecules/Select/SingleSelect/SingleSelect.js";export{
|
|
1
|
+
export{AuthProvider,useAuth}from"./providers/AuthProvider/AuthProvider.js";export{SideBarProvider,useSideBar}from"./providers/SideBarProvider.js";export{SnackbarProvider,useSnackbar}from"./providers/SnackbarProvider/SnackbarProvider.js";export{TableOfContentsProvider,useTableOfContents}from"./providers/TableOfContentsProvider.js";export{ReleaseNotesProvider,useReleaseNotes}from"./providers/ReleaseNotesProvider.js";export{TutorialHighlightingProvider}from"./providers/TutorialHighlightingProvider/TutorialHighlightingProvider.js";export{LoadingProvider}from"./providers/LoadingProvider.js";export{ThemeProvider,useThemeProvider}from"./providers/ThemeProvider/ThemeProvider.js";export{StepperProvider,useStepper}from"./providers/StepperProvider.js";export{style}from"./atoms/index.js";export{AnimatedCheckmark}from"./molecules/AnimatedCheckmark/AnimatedCheckmark.js";export{ApplicationIcon}from"./molecules/ApplicationIcon/ApplicationIcon.js";export{Badge}from"./molecules/Badge/Badge.js";export{Banner}from"./molecules/Banner/Banner.js";export{Button}from"./molecules/Button/Button.js";export{Chip}from"./molecules/Chip/Chip.js";export{ContentMenu}from"./molecules/ContentMenu/ContentMenu.js";export{DatePicker}from"./molecules/DatePicker/DatePicker.js";export{Dialog}from"./molecules/Dialog/Dialog.js";export{EquinorLogo}from"./molecules/EquinorLogo/EquinorLogo.js";export{FileProgress}from"./molecules/FileProgress/FileProgress.js";export{FileUploadArea}from"./molecules/FileUploadArea/FileUploadArea.js";export{FullPageSpinner}from"./molecules/FullPageSpinner/FullPageSpinner.js";export{InfoElement}from"./molecules/InfoElement/InfoElement.js";export{OptionalTooltip}from"./molecules/OptionalTooltip/OptionalTooltip.js";export{ProfileAvatar}from"./molecules/ProfileAvatar/ProfileAvatar.js";export{RichTextDisplay}from"./molecules/RichTextDisplay/RichTextDisplay.js";export{RichText}from"./molecules/RichTextEditor/index.js";export{AmplifyBar,EditorMenu,EditorText}from"./molecules/RichTextEditor/MenuBar/MenuBar.js";export{AmplifyKit}from"./molecules/RichTextEditor/custom-extensions/AmplifyKit.js";export{Tabs}from"./molecules/Tabs/Tabs.js";export{TableMenuBar,TextTable}from"./molecules/RichTextEditor/MenuBar/Table/TableBar.js";export{DEFAULT_FEATURES,RichTextEditorFeatures}from"./molecules/RichTextEditor/RichTextEditor.types.js";export{Search}from"./molecules/Search/Search.js";export{Sieve}from"./molecules/Sieve/Sieve.js";export{SingleFilterMenu}from"./molecules/SingleFilterMenu/SingleFilterMenu.js";export{SkeletonBase,skeletonBaseloading}from"./molecules/Skeleton/SkeletonBase/SkeletonBase.js";export{SkeletonGradient}from"./molecules/Skeleton/SkeletonGradient/SkeletonGradient.js";export{Stepper}from"./molecules/Stepper/Stepper.js";export{OptionDrawer}from"./molecules/OptionDrawer/OptionDrawer.js";export{ComboBox}from"./molecules/Select/ComboBox/ComboBox.js";export{ComboBoxChip}from"./molecules/Select/Select.styles.js";export{SingleSelect}from"./molecules/Select/SingleSelect/SingleSelect.js";export{FeedBackIcon}from"./molecules/FeedBackIcon/FeedBackIcon.js";export{ListItem}from"./molecules/ListItem/ListItem.js";export{Checkbox}from"./molecules/SelectionControls/Checkbox/Checkbox.js";export{Radio}from"./molecules/SelectionControls/Radio/Radio.js";export{Switch}from"./molecules/SelectionControls/Switch/Switch.js";export{Waves}from"./molecules/Waves/Waves.js";export{Accordion,Breadcrumbs,Card,CircularProgress,DateRangePicker,Divider,DotProgress,Dialog as EDSDialog,Icon,LinearProgress,Menu,TextField,Typography}from"@equinor/eds-core-react";export{DataGrid}from"./organisms/DataGrid/DataGrid.js";export{FieldSelector}from"./organisms/FieldSelector/FieldSelector.js";export{Filter}from"./organisms/Filter/index.js";export{SideBar}from"./organisms/SideBar/index.js";export{TopBar}from"./organisms/TopBar/index.js";export{Status}from"./organisms/Status/index.js";export{BadRequest}from"./organisms/Status/collections/BadRequest.js";export{GenericError}from"./organisms/Status/collections/GenericError.js";export{MissingAccessToApp}from"./organisms/Status/collections/MissingAccessToApp.js";export{MissingPermissions}from"./organisms/Status/collections/MissingPermissions.js";export{PageNotFound}from"./organisms/Status/collections/PageNotFound.js";export{ServerError}from"./organisms/Status/collections/ServerError.js";export{ApiResponseError}from"./organisms/Status/collections/ApiResponseError.js";export{TableOfContents}from"./organisms/TableOfContents/TableOfContents.js";export{Template}from"./organisms/Template/Template.js";export{PageTitle}from"./organisms/PageTitle/PageTitle.js";export{ReleaseNote}from"./organisms/ReleaseNote/ReleaseNote.js";export{ToggleGroup}from"./organisms/ToggleGroup/index.js";export{Faq}from"./organisms/Faq/Faq.js";export{ExpandingIconButton}from"./deprecated/ExpandingIconButton/ExpandingIconButton.js";export{default as IconToggleButton}from"./deprecated/IconToggleButton.js";export{OldStepper}from"./deprecated/OldStepper/OldStepper.js";export{useAmplifyKit}from"./atoms/hooks/useAmplifyKit.js";export{useDebounce}from"./atoms/hooks/useDebounce.js";export{useFakeProgress}from"./atoms/hooks/useFakeProgress.js";export{useLocalStorage}from"./atoms/hooks/useLocalStorage.js";export{usePrevious}from"./atoms/hooks/usePrevious.js";export{useSelect}from"./atoms/hooks/useSelect.js";export{useOnScreenMultiple}from"./atoms/hooks/useOnScreenMultiple.js";export{useNotification}from"./organisms/TopBar/Notifications/NotificationProvider.js";export{useSearchParameter}from"./atoms/hooks/useSearchParameter.js";export{usePrefetchRichTextImages}from"./atoms/hooks/usePrefetchRichTextImages.js";export{useFaqsInApplication}from"./atoms/hooks/useFaqsInApplication.js";export{spacings}from"./atoms/style/spacings.js";export{colors}from"./atoms/style/colors.js";export{animation}from"./atoms/style/animation.js";export{elevation,shape,typography}from"./atoms/style/index.js";export{ErrorType}from"./atoms/enums/Errors.js";export{EnvironmentType}from"./atoms/enums/Environment.js";export{Theme}from"./atoms/enums/Theme.js";export{SpacingsMode}from"./atoms/enums/SpacingsMode.js";export{amplify_failure,amplify_lwd,amplify_success,amplify_wellbore,amplify_wireline,amplify_wireline_cased_hole,amplify_wireline_open_hole}from"./atoms/icons/drilling.js";export{amplify_calculator,amplify_overlay,amplify_sidebyside}from"./atoms/icons/map.js";export{amplify_aml,amplify_arrow_up_down,amplify_branch,amplify_info_small,amplify_merged,amplify_overview,amplify_resources,amplify_sharepoint,amplify_shield_person,amplify_small_portal,amplify_snail,amplify_sort_small,amplify_tutorials}from"./atoms/icons/other.js";export{amplify_h1,amplify_h2,amplify_h3,amplify_h4,amplify_table_add_column_left,amplify_table_add_column_right,amplify_table_add_row_above,amplify_table_add_row_below,amplify_table_column_heading,amplify_table_merge_cells,amplify_table_remove_column,amplify_table_remove_row,amplify_table_row_heading,amplify_table_split_cell}from"./atoms/icons/wysiwyg.js";export{auth,environment}from"./atoms/utils/auth_environment.js";export{formatLatLng,formatUtm}from"./atoms/utils/coordinate.js";export{formatDate,formatDateTime,formatRelativeDateTime,isBetweenDates}from"./atoms/utils/date.js";export{exportComponent}from"./atoms/utils/export.js";export{setupIcons}from"./atoms/utils/favicon.js";export{convertLatLngToUtm,convertUtmToLatLng,degrees2radians,distanceLatLng,utmProjection}from"./atoms/utils/map.js";export{defaultQueryOptions}from"./atoms/utils/reactquery.js";export{IMG_WITH_ALT,IMG_WITH_SRC_AND_ALT,cleanRichTextValue,extractImageUrls,getFeatures,getImagesFromRichText,imageToB64}from"./atoms/utils/richtext.js";export{formatBytes,formatDataSize,formatKiloBytes}from"./atoms/utils/size.js";export{sortByDate,sortByWellboreName}from"./atoms/utils/sort.js";export{Empty,capitalize}from"./atoms/utils/string.js";export{isValidUrl}from"./atoms/utils/url.js";export{getHighlightElementBoundingBox,highlightTutorialElementID}from"./atoms/utils/tutorials.js";export{getVariantIcon}from"./atoms/utils/forms.js";export{RichTextEditor}from"./molecules/RichTextEditor/RichTextEditor.js";
|
|
@@ -13,5 +13,6 @@ export type GroupedComboBoxProps<T extends SelectOptionRequired> = CommonSelectP
|
|
|
13
13
|
* @param addItemSingularWord - Word to use when adding a new item, default is "tag"
|
|
14
14
|
* @param onSearchFilter - Custom filter function for search, default is "item.label.match(new RegExp(searchValue, 'i'))"
|
|
15
15
|
* @param showSelectedAsText - If values should be shown as "5/10 Selected", defaults to false
|
|
16
|
+
* @param customMenuItemComponent - Custom component to use for rendering menu item, defaults to a checkbox with label
|
|
16
17
|
*/
|
|
17
18
|
export declare function ComboBox<T extends SelectOptionRequired>(props: ListComboBoxProps<T> | GroupedComboBoxProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GroupedSelectProps, MultiSelectCommon, SelectMenuProps, SelectOptionRequired, SingleSelectCommon } from './Select.types';
|
|
2
|
-
export declare const GroupedSelectMenu: <T extends SelectOptionRequired>(props: GroupedSelectProps<T> & SelectMenuProps<T> & (MultiSelectCommon<T> | SingleSelectCommon<T>)) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
|
1
|
+
import { CustomMenuItemComponentProps, GroupedSelectProps, MultiSelectCommon, SelectMenuProps, SelectOptionRequired, SingleSelectCommon } from './Select.types';
|
|
2
|
+
export declare const GroupedSelectMenu: <T extends SelectOptionRequired>(props: GroupedSelectProps<T> & SelectMenuProps<T> & CustomMenuItemComponentProps<T> & (MultiSelectCommon<T> | SingleSelectCommon<T>)) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ListSelectMenuProps, ListSelectProps, MultiSelectCommon, SelectMenuProps, SelectOptionRequired, SingleSelectCommon } from './Select.types';
|
|
2
|
-
export declare const ListSelectMenu: <T extends SelectOptionRequired>(props: Omit<ListSelectProps<T>, "onAddItem"> & ListSelectMenuProps & SelectMenuProps<T> & (Omit<MultiSelectCommon<T>, "syncParentChildSelection"> | SingleSelectCommon<T>)) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
|
1
|
+
import { CustomMenuItemComponentProps, ListSelectMenuProps, ListSelectProps, MultiSelectCommon, SelectMenuProps, SelectOptionRequired, SingleSelectCommon } from './Select.types';
|
|
2
|
+
export declare const ListSelectMenu: <T extends SelectOptionRequired>(props: Omit<ListSelectProps<T>, "onAddItem"> & ListSelectMenuProps & SelectMenuProps<T> & CustomMenuItemComponentProps<T> & (Omit<MultiSelectCommon<T>, "syncParentChildSelection"> | SingleSelectCommon<T>)) => import("react/jsx-runtime").JSX.Element | import("react/jsx-runtime").JSX.Element[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useRef as o,useMemo as n}from"react";import{Label as l,CircularProgress as r,Icon as a}from"@equinor/eds-core-react";import{arrow_drop_up as i,arrow_drop_down as s,clear as c}from"@equinor/eds-icons";import{tokens as
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useRef as o,useMemo as n}from"react";import{Label as l,CircularProgress as r,Icon as a}from"@equinor/eds-core-react";import{arrow_drop_up as i,arrow_drop_down as s,clear as c}from"@equinor/eds-icons";import{tokens as m}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{useSelect as d}from"../../atoms/hooks/useSelect.js";import{getVariantIcon as u}from"../../atoms/utils/forms.js";import{GroupedSelectMenu as h}from"./GroupedSelectMenu.js";import{ListSelectMenu as p}from"./ListSelectMenu.js";import{ValueText as g,ComboBoxChip as f,Wrapper as b,Container as v,Section as x,PlaceholderText as C,ClearButton as S,HelperWrapper as y,StyledMenu as I}from"./Select.styles.js";import{useOutsideClick as w}from"../../node_modules/@equinor/eds-utils/dist/esm/hooks/useOutsideClick.js";const{colors:O}=m,k=m=>{const{clearable:k=!0,loading:A=!1,disabled:T=!1,lightBackground:$=!1,underlineHighlight:j=!1,sortValues:D=!0,placeholder:R="Select...",label:M,helperText:V,showHelperIcon:B=!0,meta:F,id:K=`amplify-combobox-${M}`,variant:_,inDialog:q=!1,onSearchFilter:z,"data-testid":H,CustomMenuItemComponent:W}=m,{handleOnAddItem:E,handleOnClear:G,handleOnItemKeyDown:L,handleOnItemSelect:N,handleOnSearchChange:J,handleOnSearchKeyDown:P,handleToggleOpen:Q,itemRefs:U,search:X,selectedValues:Y,handleOnClose:Z,handleOnOpen:ee,handleOnRemoveItem:te,open:oe,searchRef:ne,tryingToRemoveItem:le}=d({...m,clearable:k,loading:A,disabled:T,lightBackground:$,underlineHighlight:j,sortValues:D,placeholder:R}),re=o(null),ae=o(null),ie=n((()=>!!M||!!F),[M,F]),se=n((()=>!!V),[V]),ce=n((()=>{if(B)return u(_)}),[B,_]);w(ae.current,(e=>{q&&oe&&e.target&&re.current&&ae.current&&!re.current.contains(e.target)&&!ae.current?.contains(e.target)&&Z()}));const me=n((()=>{if("value"in m&&m.value)return e(g,{children:m.value.label});if("showSelectedAsText"in m&&m.showSelectedAsText){const t=m.items?m.items.length:m.groups.flatMap((e=>e.items)).length,o="function"==typeof m.showSelectedAsText?m.showSelectedAsText({selectedAmount:Y.length,totalAmount:t}):`${Y.length}/${t} Selected`;return e(g,{children:o})}return Y.map((t=>"customValueComponent"in m&&m.customValueComponent?e(m.customValueComponent,{item:t,onDelete:()=>te(t),tryingToRemove:void 0!==le&&le.value===t.value},t.value):e(f,{"data-testid":"amplify-combobox-chip",className:"amplify-combo-box-chip",onDelete:()=>te(t),$tryingToRemove:le?.value===t.value,$lightBackground:$,children:t.label},t.value)))}),[Y,le,$,m,te]);return t("div",{children:[ie&&e(l,{label:M,meta:F,htmlFor:K}),t(b,{children:[t(v,{"data-testid":H||"combobox-container",ref:re,onClick:ee,"aria-expanded":oe,$variant:_,$lightBackground:$,children:[t(x,{children:[""===X&&0===Y.length&&e(C,{children:R}),(""===X&&"value"in m||"values"in m&&Y.length>0&&(!m.showSelectedAsText||m.showSelectedAsText&&""===X))&&me,e("input",{id:K,disabled:T||A,ref:ne,type:"search",role:"combobox",value:X,autoComplete:"off",onChange:J,onKeyDownCapture:P})]}),A?e(r,{size:16}):e(a,{onClick:Q,data:oe?i:s,color:O.interactive.primary__resting.rgba}),k&&Y.length>0&&!A&&e(S,{id:"clear",variant:"ghost_icon",onClick:G,"data-testid":"clearBtn",children:e(a,{data:c,size:18})})]}),se&&t(y,{$variant:_,children:[ce&&e(a,{data:ce,size:16}),e(l,{label:V,htmlFor:K})]})]}),oe&&e(I,{ref:ae,open:!0,id:"combobox-menu",anchorEl:re.current,onClose:Z,placement:"bottom",style:{width:`${re.current?.clientWidth}px`,maxWidth:`${re.current?.clientWidth}px`},children:"groups"in m&&m.groups?e(h,{...m,search:X,itemRefs:U,onItemSelect:N,onItemKeyDown:L,onSearchFilter:z,CustomMenuItemComponent:W}):e(p,{...m,search:X,itemRefs:U,onAddItem:m.onAddItem?E:void 0,onItemSelect:N,onItemKeyDown:L,onSearchFilter:z,CustomMenuItemComponent:W})},`select-menu-${X}`)]})};export{k as Select};
|
|
@@ -32,7 +32,7 @@ type MultiSelectWithCustomValueComponent<T extends SelectOptionRequired> = {
|
|
|
32
32
|
} & MultiSelectBase<T>;
|
|
33
33
|
export type MultiSelectCommon<T extends SelectOptionRequired> = MultiSelectWithSelectedAsText<T> | MultiSelectWithCustomValueComponent<T>;
|
|
34
34
|
export interface SelectGroup<T extends SelectOptionRequired> {
|
|
35
|
-
title
|
|
35
|
+
title?: string;
|
|
36
36
|
items: SelectOption<T>[];
|
|
37
37
|
}
|
|
38
38
|
export interface GroupedSelectProps<T extends SelectOptionRequired> {
|
|
@@ -70,15 +70,26 @@ interface SelectMenuItemProps<T extends SelectOptionRequired> {
|
|
|
70
70
|
depth?: number;
|
|
71
71
|
isParentSelected?: boolean;
|
|
72
72
|
parentHasNestedItems?: boolean;
|
|
73
|
+
customMenuItemComponent?: FC<{
|
|
74
|
+
item: SelectOption<T>;
|
|
75
|
+
selected: boolean;
|
|
76
|
+
}>;
|
|
73
77
|
}
|
|
74
78
|
export type SingleSelectMenuItemProps<T extends SelectOptionRequired> = {
|
|
75
79
|
value: SelectOption<T> | undefined;
|
|
76
|
-
} & Omit<SelectMenuProps<T>, 'search'> & SelectMenuItemProps<T>;
|
|
80
|
+
} & Omit<SelectMenuProps<T>, 'search'> & SelectMenuItemProps<T> & CustomMenuItemComponentProps<T>;
|
|
77
81
|
export type MultiSelectMenuItemProps<T extends SelectOptionRequired> = {
|
|
78
82
|
values: SelectOption<T>[];
|
|
79
|
-
} & Omit<SelectMenuProps<T>, 'search'> & SelectMenuItemProps<T>;
|
|
83
|
+
} & Omit<SelectMenuProps<T>, 'search'> & SelectMenuItemProps<T> & CustomMenuItemComponentProps<T>;
|
|
80
84
|
export declare const VARIANT_OPTIONS: Variants[];
|
|
81
|
-
export
|
|
85
|
+
export type SelectedState = 'selected' | 'indeterminate' | 'none';
|
|
86
|
+
export interface CustomMenuItemComponentProps<T extends SelectOptionRequired> {
|
|
87
|
+
CustomMenuItemComponent?: FC<{
|
|
88
|
+
item: SelectOption<T>;
|
|
89
|
+
selectedState: SelectedState;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
export type CommonSelectProps<T extends SelectOptionRequired> = {
|
|
82
93
|
id?: string;
|
|
83
94
|
variant?: Variants;
|
|
84
95
|
label?: string;
|
|
@@ -97,5 +108,5 @@ export interface CommonSelectProps<T extends SelectOptionRequired> {
|
|
|
97
108
|
onOpenCallback?: (value: boolean) => void;
|
|
98
109
|
onSearchFilter?: (searchValue: string, item: T) => void;
|
|
99
110
|
'data-testid'?: string;
|
|
100
|
-
}
|
|
111
|
+
} & CustomMenuItemComponentProps<T>;
|
|
101
112
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as r,Fragment as t}from"react/jsx-runtime";import{useState as n,useRef as
|
|
1
|
+
import{jsx as e,jsxs as r,Fragment as t}from"react/jsx-runtime";import{useState as n,useRef as l,useMemo as o}from"react";import{Icon as i}from"@equinor/eds-core-react";import{checkbox_outline as c,chevron_down as a,chevron_right as s,checkbox as u}from"@equinor/eds-icons";import{tokens as d}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{getChildOffset as m}from"./Select.utils.js";import{getParentIcon as p,getParentState as h}from"./SelectMenuItem.utils.js";import{spacings as v}from"../../atoms/style/spacings.js";import{MenuItemSpacer as f,MenuItemWrapper as y,SmallButton as g,StyledMenuItem as w}from"./Select.styles.js";const{colors:k}=d,C=d=>{const{index:I,childOffset:b,depth:x=0,item:D,itemRefs:$,onItemKeyDown:A,onItemSelect:S,parentHasNestedItems:_=!1,CustomMenuItemComponent:j}=d,[K,M]=n(!1),O=l(-1),q=l([]),L=("values"in d?d.values.map((({value:e})=>e)):[]).includes(D.value),R=o((()=>"value"in d?c:p(D,d.values)),[D,d]),H=o((()=>"value"in d?"none":h(D,d.values)),[D,d]),N=o((()=>new Array(x).fill(0).map(((r,t)=>e(f,{},`spacer-${r+t}`)))),[x]),U=e=>{e.preventDefault(),S(D)},P=e=>{e.stopPropagation(),M((e=>!e))},z=e=>{"ArrowDown"===e.key?O.current+=1:"ArrowUp"===e.key&&(O.current-=1),O.current<=-1?($.current[I]?.focus(),O.current=-1):O.current+b===q.current.length?(O.current=-1,A(e),M(!1)):O.current>=0&&O.current<q.current.length-b&&q.current[O.current+b]?.focus()},B=e=>{!K&&"ArrowDown"===e.key||"ArrowUp"===e.key?A(e):"ArrowRight"===e.key||"ArrowLeft"===e.key?M((e=>!e)):K&&"ArrowDown"===e.key&&-1===O.current&&(O.current=0,q.current[O.current+b]?.focus())};return D.children&&D.children.length>0&&"values"in d?r(t,{children:[r(y,{style:{paddingLeft:0===x?v.small:0},children:[N,e(g,{variant:"ghost_icon",onClick:P,"data-testid":"toggle-button",children:e(i,{color:k.interactive.primary__resting.rgba,data:K?a:s})}),e(w,{$depth:x,ref:e=>{$.current[I]=e},index:I,closeMenuOnClick:!1,onKeyDownCapture:B,onClick:U,children:j?e(j,{item:D,selectedState:H}):r(t,{children:[e(i,{color:k.interactive.primary__resting.rgba,data:R}),e("span",{children:D.label})]})})]}),K&&D.children.map(((r,t)=>e(C,{index:b+t,childOffset:b+m(D.children,t),depth:x+1,item:r,itemRefs:q,values:d.values,onItemKeyDown:z,onItemSelect:S,parentHasNestedItems:!0,CustomMenuItemComponent:j},`child-${t}-${r.value}-${D.value}`)))]}):"values"in d?r(y,{children:[N,e(w,{$depth:x,$paddedLeft:_,ref:e=>{$.current[I]=e},index:I,tabIndex:x,closeMenuOnClick:!1,onKeyDownCapture:A,onClick:U,children:j?e(j,{item:D,selectedState:L?"selected":"none"}):r(t,{children:[e(i,{color:k.interactive.primary__resting.rgba,data:L?u:c}),e("span",{children:D.label})]})})]}):e(y,{children:e(w,{$depth:x,$selected:d.value&&D.value===d.value.value,ref:e=>{$.current[I]=e},index:I,onKeyDownCapture:A,onClick:U,children:j?e(j,{item:D,selectedState:d.value&&D.value===d.value.value?"selected":"none"}):e("span",{children:D.label})})})};export{C as SelectMenuItem};
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
import { IconData } from '@equinor/eds-icons';
|
|
1
2
|
import { SelectOption, SelectOptionRequired } from './..';
|
|
2
|
-
|
|
3
|
+
import { SelectedState } from './Select.types';
|
|
4
|
+
export declare function getParentIcon<T extends SelectOptionRequired>(item: SelectOption<T>, values: SelectOption<T>[]): IconData;
|
|
5
|
+
export declare function getParentState<T extends SelectOptionRequired>(item: SelectOption<T>, values: SelectOption<T>[]): SelectedState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{checkbox_outline as e,
|
|
1
|
+
import{checkbox_outline as e,checkbox_indeterminate as n,checkbox as t}from"@equinor/eds-icons";import{flattenOptions as o}from"./Select.utils.js";const r={selected:t,indeterminate:n,none:e};function i(e,n){const t=c(e,n);return r[t]}function c(e,n){if(!e.children||0===e.children.length)return"none";const t=n.some((n=>n.value===e.value)),r=n.map((({value:e})=>e)),i=o([e])?.map((({value:e})=>e));return t?"selected":i.some((e=>r.includes(e)))?"indeterminate":"none"}export{i as getParentIcon,c as getParentState};
|
|
@@ -11,5 +11,6 @@ export type GroupedSingleSelectProps<T extends SelectOptionRequired> = CommonSel
|
|
|
11
11
|
* @param onAddItem - Enables the possibility to add extra tags and is called when submitting a new item, either via menu click 'add' or {Enter}. Not supported with groups prop.
|
|
12
12
|
* @param addItemSingularWord - Word to use when adding a new item, default is "tag"
|
|
13
13
|
* @param onSearchFilter - Custom filter function for search, default is "item.label.match(new RegExp(searchValue, 'i'))"
|
|
14
|
+
* @param customMenuItemComponent - Custom component to use for rendering menu item, defaults to a checkbox with label
|
|
14
15
|
*/
|
|
15
16
|
export declare function SingleSelect<T extends SelectOptionRequired>(props: ListSingleSelectProps<T> | GroupedSingleSelectProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -2,5 +2,6 @@ import { CheckboxProps as EDSCheckboxProps } from '@equinor/eds-core-react';
|
|
|
2
2
|
export interface CheckboxProps extends EDSCheckboxProps {
|
|
3
3
|
label?: string;
|
|
4
4
|
outlined?: boolean;
|
|
5
|
+
error?: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{forwardRef as o}from"react";import{Checkbox as e}from"@equinor/eds-core-react";import{Wrapper as t}from"../SelectionControls.styles.js";const i=o(((o,i)=>{const{outlined:c,error:m,...n}=o;return r(t,{$outlined:c||!1,$error:m,children:r(e,{ref:i,...n})})}));i.displayName="Checkbox";export{i as Checkbox};
|
|
@@ -2,5 +2,6 @@ import { RadioProps as EDSRadioProps } from '@equinor/eds-core-react';
|
|
|
2
2
|
export interface RadioProps extends EDSRadioProps {
|
|
3
3
|
label: string;
|
|
4
4
|
outlined?: boolean;
|
|
5
|
+
error?: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare const Radio: import("react").ForwardRefExoticComponent<RadioProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{forwardRef as e}from"react";import{Radio as o}from"@equinor/eds-core-react";import{Wrapper as t}from"../SelectionControls.styles.js";const i=e(((e,i)=>{const{outlined:c,error:d,...m}=e;return r(t,{$outlined:c||!1,$error:d,children:r(o,{ref:i,...m,checked:!!m.checked||void 0})})}));i.displayName="Radio";export{i as Radio};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
interface WrapperProps {
|
|
2
2
|
$outlined: boolean;
|
|
3
|
+
$error?: boolean;
|
|
3
4
|
}
|
|
4
5
|
export declare const Wrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, WrapperProps>> & string;
|
|
5
6
|
export {};
|
|
@@ -1,20 +1,40 @@
|
|
|
1
|
-
import{tokens as t}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{animation as a}from"../../atoms/style/animation.js";import"../../atoms/style/colors.js";import{spacings as i}from"../../atoms/style/spacings.js";import e,{css as
|
|
1
|
+
import{tokens as t}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/index.js";import{animation as a}from"../../atoms/style/animation.js";import"../../atoms/style/colors.js";import{spacings as i}from"../../atoms/style/spacings.js";import e,{css as r}from"styled-components";const{colors:s,shape:n}=t,l=e.span`
|
|
2
2
|
> label {
|
|
3
|
-
padding:
|
|
3
|
+
padding: ${i.x_small} ${i.medium_small};
|
|
4
4
|
border-radius: ${n.button.borderRadius};
|
|
5
5
|
transition: background ${a.transitionMS};
|
|
6
|
-
|
|
6
|
+
gap: ${i.small};
|
|
7
|
+
min-height: 36px;
|
|
8
|
+
> span:first-child {
|
|
9
|
+
padding: 0;
|
|
10
|
+
height: 24px;
|
|
11
|
+
aspect-ratio: 1;
|
|
12
|
+
}
|
|
13
|
+
> span[class*='Switch']:last-child {
|
|
7
14
|
padding: 0 ${i.medium_small} 0 0;
|
|
8
15
|
}
|
|
9
16
|
}
|
|
10
17
|
|
|
11
18
|
&.switch > label {
|
|
12
|
-
padding: 0 ${i.
|
|
19
|
+
padding: 0 ${i.x_small} 0 ${i.medium_small};
|
|
20
|
+
gap: ${i.small};
|
|
21
|
+
|
|
22
|
+
> span:first-child {
|
|
23
|
+
height: 36px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
input {
|
|
27
|
+
width: 0;
|
|
28
|
+
~ span {
|
|
29
|
+
height: 36px;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
13
32
|
}
|
|
14
33
|
|
|
15
34
|
/* Radio / Checkbox hover state override */
|
|
16
35
|
> label > span:before {
|
|
17
36
|
background-color: transparent !important;
|
|
37
|
+
height: 36px;
|
|
18
38
|
}
|
|
19
39
|
/* Switch hover state override */
|
|
20
40
|
> label > span > input[type='checkbox'] + span {
|
|
@@ -25,55 +45,64 @@ import{tokens as t}from"../../node_modules/@equinor/eds-tokens/dist/esm/base/ind
|
|
|
25
45
|
}
|
|
26
46
|
input:not(:checked) {
|
|
27
47
|
~ svg {
|
|
28
|
-
fill: ${
|
|
48
|
+
fill: ${({$error:t})=>t?s.interactive.danger__resting.rgba:s.text.static_icons__tertiary.rgba};
|
|
29
49
|
&:hover {
|
|
30
|
-
fill: ${
|
|
50
|
+
fill: ${({$error:t})=>t?s.interactive.danger__hover.rgba:s.text.static_icons__default.rgba};
|
|
31
51
|
}
|
|
32
52
|
}
|
|
33
53
|
}
|
|
54
|
+
${({$error:t})=>t?r`
|
|
55
|
+
input ~ svg {
|
|
56
|
+
fill: ${s.interactive.danger__resting.rgba};
|
|
57
|
+
&:hover {
|
|
58
|
+
fill: ${s.interactive.danger__hover.rgba};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
`:""}
|
|
62
|
+
|
|
34
63
|
/* Switch dot override */
|
|
35
64
|
> label:has(input:checked)
|
|
36
65
|
> span
|
|
37
66
|
> span
|
|
38
67
|
> span:last-child:not([class*='SwitchSmall']) {
|
|
39
|
-
background: ${
|
|
68
|
+
background: ${s.interactive.primary__resting.rgba};
|
|
40
69
|
}
|
|
41
70
|
> label:has(input)
|
|
42
71
|
> span
|
|
43
72
|
> span
|
|
44
73
|
> span:last-child:not([class*='SwitchSmall']) {
|
|
45
|
-
background: ${
|
|
74
|
+
background: ${s.text.static_icons__tertiary.rgba};
|
|
46
75
|
}
|
|
47
76
|
|
|
48
77
|
> label:hover:not(:has(input:disabled)) {
|
|
49
|
-
background: ${
|
|
78
|
+
background: ${({$error:t})=>t?s.interactive.danger__highlight.rgba:s.interactive.primary__hover_alt.rgba};
|
|
50
79
|
svg {
|
|
51
|
-
fill: ${
|
|
80
|
+
fill: ${({$error:t})=>t?s.interactive.danger__hover.rgba:s.text.static_icons__default.rgba};
|
|
52
81
|
}
|
|
53
82
|
}
|
|
54
83
|
|
|
55
84
|
> label:focus:not(:hover):not(:has(input:disabled)) {
|
|
56
|
-
outline: 1px dashed ${
|
|
85
|
+
outline: 1px dashed ${s.interactive.primary__resting.rgba};
|
|
57
86
|
outline-offset: -1px;
|
|
58
87
|
}
|
|
59
88
|
|
|
60
89
|
&:has(input:disabled) {
|
|
61
90
|
span:last-child {
|
|
62
|
-
color: ${
|
|
91
|
+
color: ${s.interactive.disabled__text.rgba};
|
|
63
92
|
}
|
|
64
93
|
svg {
|
|
65
|
-
fill: ${
|
|
94
|
+
fill: ${s.interactive.disabled__text.rgba};
|
|
66
95
|
}
|
|
67
96
|
}
|
|
68
97
|
|
|
69
|
-
${({$outlined:t})=>{if(t)return
|
|
98
|
+
${({$outlined:t})=>{if(t)return r`
|
|
70
99
|
> label {
|
|
71
|
-
outline: 1px solid ${
|
|
100
|
+
outline: 1px solid ${s.ui.background__medium.rgba};
|
|
72
101
|
}
|
|
73
102
|
&:has(input:disabled) {
|
|
74
103
|
svg {
|
|
75
|
-
fill: ${
|
|
104
|
+
fill: ${s.interactive.disabled__border.rgba};
|
|
76
105
|
}
|
|
77
106
|
}
|
|
78
107
|
`}}
|
|
79
|
-
`;export{
|
|
108
|
+
`;export{l as Wrapper};
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as e,jsx as r}from"react/jsx-runtime";import{useMemo as t}from"react";import{Typography as o}from"@equinor/eds-core-react";import{colors as i}from"../../../atoms/style/colors.js";import{spacings as s}from"../../../atoms/style/spacings.js";import{StepIcon as a}from"./StepIcon.js";import{useStepper as l}from"../../../providers/StepperProvider.js";import d,{css as n}from"styled-components";const c=d.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
gap: ${s.small};
|
|
4
4
|
align-items: center;
|
|
5
5
|
white-space: nowrap;
|
|
6
|
-
${r=>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
${({$disabled:e,$clickable:r})=>e?n`
|
|
7
|
+
&:hover {
|
|
8
|
+
cursor: not-allowed;
|
|
9
|
+
}
|
|
10
|
+
`:r&&n`
|
|
11
|
+
&:hover {
|
|
12
|
+
cursor: pointer;
|
|
13
|
+
}
|
|
14
|
+
`}
|
|
15
|
+
`,p=({index:s,onlyShowCurrentStepLabel:d=!1,children:n})=>{const{currentStep:p,setCurrentStep:m,isStepAtIndexDisabled:b}=l(),f=b(s),u=t((()=>s<p?"body_short":"body_short_bold"),[p,s]),h=t((()=>s>p||f?i.interactive.disabled__text.rgba:i.text.static_icons__default.rgba),[p,s,f]);return e(c,{"data-testid":"step",$clickable:s<p,onClick:()=>{s<p&&!f&&m(s)},$disabled:f,"aria-disabled":f,role:"button",children:[r(a,{index:s,disabled:f}),(!d||p===s)&&r(o,{variant:u,color:h,children:n})]})};export{p as Step,p as default};
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import{jsx as r}from"react/jsx-runtime";import{
|
|
1
|
+
import{jsx as r}from"react/jsx-runtime";import{Icon as e,Typography as t}from"@equinor/eds-core-react";import{lock as i,check as o}from"@equinor/eds-icons";import{shape as a}from"../../../atoms/style/index.js";import{useStepper as n}from"../../../providers/StepperProvider.js";import s from"styled-components";import{colors as d}from"../../../atoms/style/colors.js";const c=s.span`
|
|
2
2
|
display: flex;
|
|
3
3
|
justify-content: center;
|
|
4
4
|
align-items: center;
|
|
5
5
|
width: 22px;
|
|
6
6
|
height: 22px;
|
|
7
|
-
border-radius: ${
|
|
7
|
+
border-radius: ${a.circle.borderRadius};
|
|
8
8
|
border: 2px solid
|
|
9
|
-
${({$filled:r,$outlined:e})=>r??e?
|
|
10
|
-
background: ${({$filled:r})=>r?
|
|
9
|
+
${({$filled:r,$outlined:e})=>r??e?d.interactive.primary__resting.rgba:d.interactive.disabled__text.rgba};
|
|
10
|
+
background: ${({$filled:r})=>r?d.interactive.primary__resting.rgba:"none"};
|
|
11
11
|
> p {
|
|
12
12
|
// Ensure text icons are not squished
|
|
13
13
|
padding: 8px;
|
|
14
|
-
color: ${r=>r.$filled?
|
|
14
|
+
color: ${r=>r.$filled?d.text.static_icons__primary_white.rgba:d.interactive.disabled__text.rgba};
|
|
15
15
|
}
|
|
16
16
|
> svg {
|
|
17
17
|
transform: scale(0.9);
|
|
18
18
|
}
|
|
19
|
-
`,
|
|
19
|
+
`,l=({index:a,disabled:s})=>{const{currentStep:l}=n();return s?r(e,{data:i,color:d.interactive.disabled__text.rgba}):r(c,a>=l?{$filled:a===l,children:r(t,{variant:"caption",children:a+1})}:{$outlined:!0,"data-testid":"wrapper",children:r(e,{data:o,color:d.interactive.primary__resting.rgba})})};export{l as StepIcon};
|
|
@@ -63,7 +63,6 @@ export type { ListComboBoxProps, GroupedComboBoxProps, } from './Select/ComboBox
|
|
|
63
63
|
export { SingleSelect } from './Select/SingleSelect/SingleSelect';
|
|
64
64
|
export type { ListSingleSelectProps, GroupedSingleSelectProps, } from './Select/SingleSelect/SingleSelect';
|
|
65
65
|
export type { SelectOption, SelectOptionRequired } from './Select/Select.types';
|
|
66
|
-
export { PageWithTitle } from './PageWithTitle/PageWithTitle';
|
|
67
66
|
export { FeedBackIcon } from './FeedBackIcon/FeedBackIcon';
|
|
68
67
|
export type { FeedBackIconProps } from './FeedBackIcon/FeedBackIcon';
|
|
69
68
|
export { ListItem } from './ListItem/ListItem';
|
|
@@ -3,32 +3,38 @@ interface SubStep {
|
|
|
3
3
|
title: string;
|
|
4
4
|
description?: string;
|
|
5
5
|
}
|
|
6
|
-
interface
|
|
7
|
-
label: string;
|
|
8
|
-
title?: undefined;
|
|
9
|
-
description?: undefined;
|
|
10
|
-
subSteps: [SubStep, SubStep, ...SubStep[]];
|
|
11
|
-
}
|
|
12
|
-
interface StepWithoutSubSteps {
|
|
6
|
+
interface CommonStep {
|
|
13
7
|
label: string;
|
|
14
8
|
title?: string;
|
|
15
9
|
description?: string;
|
|
10
|
+
}
|
|
11
|
+
interface StepWithSubSteps extends CommonStep {
|
|
12
|
+
subSteps: SubStep[];
|
|
13
|
+
}
|
|
14
|
+
interface StepWithoutSubSteps extends CommonStep {
|
|
16
15
|
subSteps?: undefined;
|
|
17
16
|
}
|
|
18
17
|
type Step = StepWithSubSteps | StepWithoutSubSteps;
|
|
19
18
|
interface StepperContextType {
|
|
20
|
-
steps:
|
|
19
|
+
steps: Step[];
|
|
21
20
|
currentStep: number;
|
|
22
21
|
currentSubStep: number;
|
|
23
22
|
setCurrentStep: (value: number) => void;
|
|
24
23
|
goToNextStep: () => void;
|
|
25
24
|
goToPreviousStep: () => void;
|
|
25
|
+
isStepAtIndexDisabled: (stepIndex: number) => boolean;
|
|
26
26
|
}
|
|
27
27
|
export declare const StepperContext: import("react").Context<StepperContextType | undefined>;
|
|
28
28
|
export declare function useStepper(): StepperContextType;
|
|
29
29
|
export interface StepperProviderProps {
|
|
30
|
-
steps:
|
|
30
|
+
steps: Step[];
|
|
31
31
|
children: ReactNode;
|
|
32
|
+
isStepDisabled?: ({ step, stepIndex, currentStep, currentStepIndex, }: {
|
|
33
|
+
step: Step;
|
|
34
|
+
stepIndex: number;
|
|
35
|
+
currentStep: Step;
|
|
36
|
+
currentStepIndex: number;
|
|
37
|
+
}) => boolean;
|
|
32
38
|
}
|
|
33
39
|
interface StepperProviderSyncedToURLParamProps extends StepperProviderProps {
|
|
34
40
|
syncToURLParam: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import{createContext as t,useState as r,useContext as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{createContext as t,useState as r,useCallback as s,useContext as n}from"react";import{useParams as i,useNavigate as p,useLocation as o}from"react-router";const u=t(void 0);function a(){const e=n(u);if(!e)throw new Error("useStepper must be used within a StepperProvider");return e}const S=({steps:t,children:n,isStepDisabled:a,...S})=>{const{step:c}=i(),m=p(),b=o().pathname.split("/").slice(0,-1).join("/"),l=S.syncToURLParam?Number(c):S?.initialStep??0;if(S.syncToURLParam&&c&&isNaN(Number(c)))throw new Error('Step URL param must be a valid number when using "syncToURLParam"');if(t.length<2)throw new Error("Stepper must have at least 2 steps");const[h,d]=r(l),f=S.syncToURLParam?Number(c):h,[w,g]=r(0);if(l>=t.length||l<0)throw new Error("initialStep must be a valid index of the steps array");const v=e=>{S.syncToURLParam?m(`${b}/${e}`):d(e)},P=s((e=>!!a&&a({step:t[e],stepIndex:e,currentStep:t[f],currentStepIndex:f})),[a,f,t]);return e(u.Provider,{value:{steps:t,currentStep:f,currentSubStep:w,setCurrentStep:v,goToNextStep:()=>{"subSteps"in t[f]&&t[f].subSteps&&w<t[f].subSteps.length-1?g((e=>e+1)):f!==t.length-1&&(v(f+1),0!==w&&g(0))},goToPreviousStep:()=>{if(w>0&&"subSteps"in t[f]&&t[f].subSteps&&t[f].subSteps.length>0)return void g((e=>e-1));if(0===f)return;v(f-1);const e=t.at(f-1);e&&"subSteps"in e&&e.subSteps&&g(e.subSteps.length-1)},isStepAtIndexDisabled:P},children:n})};export{u as StepperContext,S as StepperProvider,a as useStepper};
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{useEffect as t}from"react";const e=({children:e,title:o})=>(t((()=>{document.title!==o&&(document.title=o)}),[o]),e);export{e as PageWithTitle};
|