@corva/ui 0.28.0-11 → 0.28.0-12

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 t from"@babel/runtime/helpers/defineProperty";import"@babel/runtime/helpers/toConsumableArray";import"../../../../../constants/completion.js";import"../../../../../constants/alerts.js";import{cloneDeep as e,get as i,noop as r}from"lodash";import o from"@babel/runtime/helpers/slicedToArray";import{DEV_CENTER_CLI_APP_ID as n}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENT_TO_ASSET_TYPE as s,SEGMENTS as p}from"../../../../../constants/segment.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/notifications.js";import"@babel/runtime/regenerator";import"@babel/runtime/helpers/asyncToGenerator";import"../../../../../utils/mobileDetect.js";import"@babel/runtime/helpers/typeof";import"../../../../../utils/index.js";import{jsxs as a,jsx as m,Fragment as l}from"react/jsx-runtime";import{withStyles as d,Dialog as c,Tabs as u,DialogTitle as j,Divider as g,DialogContent as f,Tab as C,DialogActions as b}from"@material-ui/core";import{useState as A}from"react";import"querystring";import"uuid/v1";import"../../../../../clients/jsonApi/index.js";import"../../../../../clients/subscriptions.js";import"uuid";import"@babel/runtime/helpers/objectWithoutProperties";import{func as S,shape as h,string as x,bool as P}from"prop-types";import"classnames";import"../../../../Modal/index.js";import"../../../../IconMenu/index.js";import"../../../../StyledMenuItem/index.js";import"../../../../LoadingIndicator/LoadingIndicator.js";import"../../../../Tooltip.js";import"../../../../Avatar/index.js";import"../../../../Annotations/AnnotationsContext.js";import"../../../DevCenterRouterContext/DevCenterRouterContext.js";import"react-router";import{useDevCenterRouter as y}from"../../../DevCenterRouterContext/effects/useDevCenterRouter.js";import"../../../DevCenterRouterContext/UniversalLink/UniversalLink.js";import v from"../../../../ConfirmationDialog.js";import"../../../../Annotations/components/AnnotationsList/index.js";import"../../../../Annotations/components/LastAnnotation/index.js";import"../../../../PadModeSelect/PadModeSelect.js";import"../../../AppHeader/AppHeader.js";import"../../../AppSideBar/AppSideBar.js";import"../../../AppContext.js";import"../../../AppsDataProvider/AppsDataProvider.js";import"../AppActions/AppActions.css.js";import"../../../../ErrorBoundary/InternalErrorView/InternalErrorView.js";import D from"../../../../ErrorBoundary/ErrorBoundary.js";import"../../../../Typography.js";import E from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import T from"../DisabledSettingsMessage/DisabledSettingsMessage.js";import k from"./RemoveAppButton.js";import"../../../../SlateFormattedText/RenderElements.js";import"../../../../SlateFormattedText/SlateFormattedText.js";import L from"./AppDetails.js";import I from"./AppSettingsDialog.module.css.js";import"../AnnotationsButton/AnnotationsButton.js";import"../NonPriorityMenus/NonPriorityMenus.js";import"../FullscreenButton/FullscreenButton.js";import"../AppInfoMessage/AppInfoMessage.js";import"../../DevCenterAppContainer.css.js";import"../RestoreAppSizeButton/index.js";import"../PriorityMenus/PriorityMenus.css.js";import"../../../NavigationBar/NavigationBar.js";import"../../../SideBar/SideBar.js";import"../../../../TruncatedText/index.js";import"../../../../AssetEditor/SingleAssetEditor.js";import"../../../../AssetEditor/AssetEditorAutocomplete.js";import O from"../../../../AssetEditor/index.js";import B from"../../../../AppVersionsSelect/AppVersionsSelect.js";import"../../../../CollapsableSidebar.js";import"../../../../DateTimePicker/index.js";import"../../../../DatePicker/index.js";import"../../../../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../../../../ColorPicker/ColorPicker.js";import"../../../../ParameterCharts/AddEditTrack.js";import"../../../../ParameterCharts/ParameterCharts.js";import"../../../../ChartActionsList/ChartActionsList.js";import"../../../../SettingEditors/ColorEditor/index.js";import"../../../../SettingEditors/DropdownEditor/index.js";import"../../../../SettingEditors/RadioEditor/index.js";import"../../../../SwitchControl/index.js";import"../../../../RangeSlider/RangeSlider.js";import"../../../../Login/components/Login.js";import"../../../../Login/components/PasswordField.js";import"../../../../Login/components/Chip.js";import"../../../../Login/components/StepFooter.js";import"../../../../Login/components/StepContent.js";import"../../../../Login/components/StepHeader.js";import"../../../../Login/components/Step.js";import"../../../../Login/components/OrDivider.js";import"../../../../Login/components/HiddenEmailField.js";import"../../../../Login/components/EmailField.js";import"../../../../Breadcrumbs/index.js";import"../../../../VirtualizedTable/index.js";import"../../../../EmptyView/index.js";import"../../../../EmptyView/EmptyAppView/index.js";import R from"../../../../Button/index.js";import"../../../../MenuItem/index.js";import"../../../../ContextMenuItem/index.js";import"../../../../FolderMenuItem/index.js";import"../../../../EditableItem/EditableItem/index.js";import"../../../../EditableItem/EditableItemWithBadge/index.js";import"../../../../Checkbox/index.js";import"../../../../FolderMenuItemWithLinks/index.js";import"../../../../IconButton/index.js";import"../../../../TextField/index.js";import"../../../../Chip/index.js";import"../../../../Counter/index.js";import"../../../../AnchorsList/AnchorsList.js";import"../../../../Select/index.js";import"../../../../Tabs/Tabs.js";import"../../../../Tabs/Tab.js";import"../../../../Drillstring/BHASchematic.js";import"../../../../Drillstring/BHAComponentIcon.js";import"../../../../Drillstring/BHATable/index.js";import"../../../../Drillstring/BHAComponentDetail/index.js";import"../../../../Casing/CasingComponentIcon.js";import"../../../../Casing/CasingTable/index.js";import"../../../../WellSummary/WellSummaryItemLabel.js";import"../../../../WellSummary/WellSummaryItemTitle.js";import"../../../../WellSummary/WellSummaryItemValue.js";import"../../../../WellSummary/ActivitySummaryChart.js";import"../../../../WellSummary/FracWirelineTimeChart.js";import"../../../../BICOffsetPickerDialog/index.js";import"../../../../OffsetWellPickerV2/OffsetWellPickerDialog.js";import"../../../../Notifications/Notifications.js";import"../../../../TextLink/index.js";import"../../../../Template/TemplatePopover/index.js";import"../../../../PinnableFilters/PinnableFilters.js";import"../../../../HeaderLayout/HeaderLayout.js";import"../../../../PadOffsetsPicker/PadOffsetsPicker.js";import"../../../../PadOffsetsPicker/OffsetAssetChip.js";import"../../../../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../../../../PadOffsetsPicker/StagesSelector.js";import"../../../../Table/TableToolbar/TableToolbar.js";import"../../../../PriceInput/PriceInput.js";import"../../../../LabelsCounter/LabelsCounter.js";import"../../../../Stepper/Step.js";import"../../../../Stepper/StepsWrapper.js";import"../../../../Stepper/Stepper.js";import"../../../../Comment/CommentIcon/index.js";import"../../../../FilesLoader/FilesLoader.js";function F(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,r)}return i}function M(e){for(var i=1;i<arguments.length;i++){var r=null!=arguments[i]?arguments[i]:{};i%2?F(Object(r),!0).forEach((function(i){t(e,i,r[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):F(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var w="DC_appSettings",W=d({paper:{minWidth:"50rem",height:"40rem"}})(c),V=d({root:{marginBottom:10}})(u),H="SETTINGS",N="APP DETAILS";function q(r){var d=r.AppSettingsComponent,c=r.app,u=r.appData,S=r.appName,h=r.currentUser,x=r.isMultiRig,P=r.isProductSubscriptionFeatureActive,F=r.layoutEnvironment,q=r.onAppRemove,U=r.onSettingsChange,_=r.segment,G=r.toggleAppSettingsDialog,z=r.isSettingsDialogHidden,K=r.onCloneDashboard,Y=A(H),J=o(Y,2),Q=J[0],X=J[1],Z=A((function(){var t;return M(M({},e(c.settings)),{},{package:c.settings.package||(null==c||null===(t=c.package)||void 0===t?void 0:t.version)})})),$=o(Z,2),tt=$[0],et=$[1],it=A(!0),rt=o(it,2),ot=rt[0],nt=rt[1],st=y(),pt=c.id===n,at=function(e,i){return et((function(r){return M(M({},r),{},t({},e,i))}))},mt=function(t){return et((function(e){return M(M({},e),t)}))},lt=F&&"asset"===F.type,dt=!(x||lt&&_===p.COMPLETION);return a(W,{open:!0,onBackdropClick:G,children:[a(j,{children:[S," settings"]}),m(g,{}),a(f,{children:[a(V,{value:Q,onChange:function(t,e){return X(e)},indicatorColor:"primary",textColor:"primary",children:[m(C,{"data-testid":"".concat(w,"_settingsTab"),label:H,value:H}),m(C,{"data-testid":"".concat(w,"_appDetailsTab"),label:N,value:N}),m(R,{className:I.viewAppButton,onClick:function(){var t,e;return st.push((e=null==c||null===(t=c.app)||void 0===t?void 0:t.id,"/apps/".concat(e)))},children:"VIEW APP PAGE"})]}),a(D,{ErrorView:E,app:c,children:[m(v,{open:!ot&&!tt.package,isShowCancel:!1,title:"Validation failed",text:"You should select the app version to proceed",handleOk:function(){return nt(!0)}}),Q===H&&a(l,{children:[z&&m(T,{onCloneDashboard:K}),!z&&dt&&m(O,{appKey:P&&!pt?c.app_key:null,settings:tt,onSettingsChange:mt,appType:s[_],isNullable:lt,label:"Active Asset"}),!z&&d&&m(d,{app:c,appData:u,settings:tt,onSettingChange:at,onSettingsChange:mt,layoutEnvironment:F,currentUser:h}),!z&&!pt&&m(B,{appId:c.app.id,value:tt.package,onChange:function(t){return at("package",t)},currentUser:h})]}),Q===N&&m(L,{appDescription:i(c,"app.description"),appSummary:i(c,"app.summary")})]})]}),a(b,{children:[q&&m(k,{appName:S,onAppRemove:q}),m(R,{"data-testid":"".concat(w,"_cancel"),variation:"secondary",onClick:G,children:"Cancel"}),m(R,{"data-testid":"".concat(w,"_save"),variation:"primary",onClick:function(){tt.package||pt?(U(tt),G()):nt(!1)},children:"Save"})]})]})}q.propTypes={AppSettingsComponent:S,app:h({}).isRequired,appData:h({}).isRequired,appName:x.isRequired,currentUser:h({}).isRequired,isMultiRig:P.isRequired,isProductSubscriptionFeatureActive:P,layoutEnvironment:h({}).isRequired,onAppRemove:S,onSettingsChange:S.isRequired,segment:x.isRequired,toggleAppSettingsDialog:S.isRequired,isSettingsDialogHidden:P,onCloneDashboard:S},q.defaultProps={AppSettingsComponent:null,isProductSubscriptionFeatureActive:!1,onAppRemove:void 0,isSettingsDialogHidden:!1,onCloneDashboard:r};export default q;
1
+ import t from"@babel/runtime/helpers/defineProperty";import"@babel/runtime/helpers/toConsumableArray";import"../../../../../constants/completion.js";import"../../../../../constants/alerts.js";import{cloneDeep as e,get as i,noop as r}from"lodash";import o from"@babel/runtime/helpers/slicedToArray";import{DEV_CENTER_CLI_APP_ID as n}from"../../../../../constants/devcenter.js";import"../../../../../constants/goals.js";import{SEGMENT_TO_ASSET_TYPE as s,SEGMENTS as p}from"../../../../../constants/segment.js";import"../../../../../constants/apps.js";import"../../../../../constants/drillstring.js";import"../../../../../constants/notifications.js";import"@babel/runtime/regenerator";import"@babel/runtime/helpers/asyncToGenerator";import"../../../../../utils/mobileDetect.js";import"@babel/runtime/helpers/typeof";import"../../../../../utils/index.js";import{jsxs as a,jsx as m,Fragment as l}from"react/jsx-runtime";import{withStyles as d,Dialog as c,Tabs as u,DialogTitle as j,Divider as g,DialogContent as f,Tab as C,DialogActions as b}from"@material-ui/core";import{useState as A}from"react";import"querystring";import"uuid/v1";import"../../../../../clients/jsonApi/index.js";import"../../../../../clients/subscriptions.js";import"uuid";import"@babel/runtime/helpers/objectWithoutProperties";import{func as S,shape as h,string as x,bool as P}from"prop-types";import"classnames";import"../../../../Modal/index.js";import"../../../../IconMenu/index.js";import"../../../../StyledMenuItem/index.js";import"../../../../LoadingIndicator/LoadingIndicator.js";import"../../../../Tooltip.js";import"../../../../Avatar/index.js";import"../../../../Annotations/AnnotationsContext.js";import"../../../DevCenterRouterContext/DevCenterRouterContext.js";import"react-router";import{useDevCenterRouter as y}from"../../../DevCenterRouterContext/effects/useDevCenterRouter.js";import"../../../DevCenterRouterContext/UniversalLink/UniversalLink.js";import v from"../../../../ConfirmationDialog.js";import"../../../../Annotations/components/AnnotationsList/index.js";import"../../../../Annotations/components/LastAnnotation/index.js";import"../../../../PadModeSelect/PadModeSelect.js";import"../../../AppHeader/AppHeader.js";import"../../../AppSideBar/AppSideBar.js";import"../../../AppContext.js";import"../../../AppsDataProvider/AppsDataProvider.js";import"../AppActions/AppActions.css.js";import"../../../../ErrorBoundary/InternalErrorView/InternalErrorView.js";import D from"../../../../ErrorBoundary/ErrorBoundary.js";import"../../../../Typography.js";import E from"../../../../ErrorBoundary/DevCenterAppErrorView/DevCenterAppErrorView.js";import T from"../DisabledSettingsMessage/DisabledSettingsMessage.js";import k from"./RemoveAppButton.js";import"../../../../SlateFormattedText/RenderElements.js";import"../../../../SlateFormattedText/SlateFormattedText.js";import L from"./AppDetails.js";import I from"./AppSettingsDialog.module.css.js";import"../AnnotationsButton/AnnotationsButton.js";import"../NonPriorityMenus/NonPriorityMenus.js";import"../FullscreenButton/FullscreenButton.js";import"../AppInfoMessage/AppInfoMessage.js";import"../../DevCenterAppContainer.css.js";import"../RestoreAppSizeButton/index.js";import"../PriorityMenus/PriorityMenus.css.js";import"../../../NavigationBar/NavigationBar.js";import"../../../SideBar/SideBar.js";import"../../../../TruncatedText/index.js";import"../../../../AssetEditor/SingleAssetEditor.js";import"../../../../AssetEditor/AssetEditorAutocomplete.js";import O from"../../../../AssetEditor/index.js";import B from"../../../../AppVersionsSelect/AppVersionsSelect.js";import"../../../../CollapsableSidebar.js";import"../../../../DateTimePicker/index.js";import"../../../../DatePicker/index.js";import"../../../../ColorPicker/PaletteChromePicker/PaletteChromePicker.js";import"../../../../ColorPicker/ColorPicker.js";import"../../../../ParameterCharts/AddEditTrack.js";import"../../../../ParameterCharts/ParameterCharts.js";import"../../../../ChartActionsList/ChartActionsList.js";import"../../../../SettingEditors/ColorEditor/index.js";import"../../../../SettingEditors/DropdownEditor/index.js";import"../../../../SettingEditors/RadioEditor/index.js";import"../../../../SwitchControl/index.js";import"../../../../RangeSlider/RangeSlider.js";import"../../../../Login/components/Login.js";import"../../../../Login/components/PasswordField.js";import"../../../../Login/components/Chip.js";import"../../../../Login/components/StepFooter.js";import"../../../../Login/components/StepContent.js";import"../../../../Login/components/StepHeader.js";import"../../../../Login/components/Step.js";import"../../../../Login/components/OrDivider.js";import"../../../../Login/components/HiddenEmailField.js";import"../../../../Login/components/EmailField.js";import"../../../../Breadcrumbs/index.js";import"../../../../VirtualizedTable/index.js";import"../../../../EmptyView/index.js";import"../../../../EmptyView/EmptyAppView/index.js";import R from"../../../../Button/index.js";import"../../../../MenuItem/index.js";import"../../../../ContextMenuItem/index.js";import"../../../../FolderMenuItem/index.js";import"../../../../EditableItem/EditableItem/index.js";import"../../../../EditableItem/EditableItemWithBadge/index.js";import"../../../../Checkbox/index.js";import"../../../../FolderMenuItemWithLinks/index.js";import"../../../../IconButton/index.js";import"../../../../TextField/index.js";import"../../../../Chip/index.js";import"../../../../Counter/index.js";import"../../../../AnchorsList/AnchorsList.js";import"../../../../Select/index.js";import"../../../../Tabs/Tabs.js";import"../../../../Tabs/Tab.js";import"../../../../Drillstring/BHASchematic.js";import"../../../../Drillstring/BHAComponentIcon.js";import"../../../../Drillstring/BHATable/index.js";import"../../../../Drillstring/BHAComponentDetail/index.js";import"../../../../Casing/CasingComponentIcon.js";import"../../../../Casing/CasingTable/index.js";import"../../../../WellSummary/WellSummaryItemLabel.js";import"../../../../WellSummary/WellSummaryItemTitle.js";import"../../../../WellSummary/WellSummaryItemValue.js";import"../../../../WellSummary/ActivitySummaryChart.js";import"../../../../WellSummary/FracWirelineTimeChart.js";import"../../../../BICOffsetPickerDialog/index.js";import"../../../../OffsetWellPickerV2/OffsetWellPickerDialog.js";import"../../../../Notifications/Notifications.js";import"../../../../TextLink/index.js";import"../../../../Template/TemplatePopover/index.js";import"../../../../PinnableFilters/PinnableFilters.js";import"../../../../HeaderLayout/HeaderLayout.js";import"../../../../PadOffsetsPicker/PadOffsetsPicker.js";import"../../../../PadOffsetsPicker/OffsetAssetChip.js";import"../../../../PadOffsetsPicker/OffsetAssetsListExpander.js";import"../../../../PadOffsetsPicker/StagesSelector.js";import"../../../../Table/TableToolbar/TableToolbar.js";import"../../../../PriceInput/PriceInput.js";import"../../../../LabelsCounter/LabelsCounter.js";import"../../../../Stepper/Step.js";import"../../../../Stepper/StepsWrapper.js";import"../../../../Stepper/Stepper.js";import"../../../../Comment/CommentIcon/index.js";import"../../../../FilesLoader/FilesLoader.js";function w(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,r)}return i}function F(e){for(var i=1;i<arguments.length;i++){var r=null!=arguments[i]?arguments[i]:{};i%2?w(Object(r),!0).forEach((function(i){t(e,i,r[i])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):w(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var M="DC_appSettings",W=d({paper:{minWidth:"50rem",height:"40rem"}})(c),V=d({root:{marginBottom:10}})(u),H="SETTINGS",N="APP DETAILS";function q(r){var d=r.AppSettingsComponent,c=r.app,u=r.appData,S=r.appName,h=r.currentUser,x=r.isMultiRig,P=r.isProductSubscriptionFeatureActive,w=r.layoutEnvironment,q=r.onAppRemove,_=r.onSettingsChange,U=r.segment,G=r.toggleAppSettingsDialog,z=r.isSettingsDialogHidden,K=r.onCloneDashboard,Y=A(H),J=o(Y,2),Q=J[0],X=J[1],Z=A((function(){var t;return F(F({},e(c.settings)),{},{package:c.settings.package||(null==c||null===(t=c.package)||void 0===t?void 0:t.version)})})),$=o(Z,2),tt=$[0],et=$[1],it=A(!0),rt=o(it,2),ot=rt[0],nt=rt[1],st=y(),pt=c.id===n,at=function(e,i){return et((function(r){return F(F({},r),{},t({},e,i))}))},mt=function(t){return et((function(e){return F(F({},e),t)}))},lt=w&&"asset"===w.type,dt=!(x||lt&&U===p.COMPLETION);return a(W,{open:!0,onBackdropClick:G,children:[a(j,{children:[S," settings"]}),m(g,{}),a(f,{children:[a(V,{value:Q,onChange:function(t,e){return X(e)},indicatorColor:"primary",textColor:"primary",children:[m(C,{"data-testid":"".concat(M,"_settingsTab"),label:H,value:H}),m(C,{"data-testid":"".concat(M,"_appDetailsTab"),label:N,value:N}),m(R,{"data-testid":"".concat(M,"_viewAppPageTab"),className:I.viewAppButton,onClick:function(){var t,e;return st.push((e=null==c||null===(t=c.app)||void 0===t?void 0:t.id,"/apps/".concat(e)))},children:"VIEW APP PAGE"})]}),a(D,{ErrorView:E,app:c,children:[m(v,{open:!ot&&!tt.package,isShowCancel:!1,title:"Validation failed",text:"You should select the app version to proceed",handleOk:function(){return nt(!0)}}),Q===H&&a(l,{children:[z&&m(T,{onCloneDashboard:K}),!z&&dt&&m(O,{appKey:P&&!pt?c.app_key:null,settings:tt,onSettingsChange:mt,appType:s[U],isNullable:lt,label:"Active Asset"}),!z&&d&&m(d,{app:c,appData:u,settings:tt,onSettingChange:at,onSettingsChange:mt,layoutEnvironment:w,currentUser:h}),!z&&!pt&&m(B,{appId:c.app.id,value:tt.package,onChange:function(t){return at("package",t)},currentUser:h})]}),Q===N&&m(L,{appDescription:i(c,"app.description"),appSummary:i(c,"app.summary")})]})]}),a(b,{children:[q&&m(k,{appName:S,onAppRemove:q}),m(R,{"data-testid":"".concat(M,"_cancel"),variation:"secondary",onClick:G,children:"Cancel"}),m(R,{"data-testid":"".concat(M,"_save"),variation:"primary",onClick:function(){tt.package||pt?(_(tt),G()):nt(!1)},children:"Save"})]})]})}q.propTypes={AppSettingsComponent:S,app:h({}).isRequired,appData:h({}).isRequired,appName:x.isRequired,currentUser:h({}).isRequired,isMultiRig:P.isRequired,isProductSubscriptionFeatureActive:P,layoutEnvironment:h({}).isRequired,onAppRemove:S,onSettingsChange:S.isRequired,segment:x.isRequired,toggleAppSettingsDialog:S.isRequired,isSettingsDialogHidden:P,onCloneDashboard:S},q.defaultProps={AppSettingsComponent:null,isProductSubscriptionFeatureActive:!1,onAppRemove:void 0,isSettingsDialogHidden:!1,onCloneDashboard:r};export default q;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corva/ui",
3
- "version": "0.28.0-11",
3
+ "version": "0.28.0-12",
4
4
  "description": "Shared components/utils for Corva ui projects",
5
5
  "keywords": [
6
6
  "corva-ui"