@inceptionbg/iui 2.0.13 → 2.0.14

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.
Files changed (40) hide show
  1. package/dist/index.d.ts +84 -49
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/iui.css +1 -1
  5. package/package.json +1 -1
  6. package/src/assets/icons/light/faBookmark.ts +15 -15
  7. package/src/assets/icons/light/faBookmarkSlash.ts +15 -15
  8. package/src/assets/images/logo/inception.svg +22 -0
  9. package/src/components/Header/Components/ModuleSelect.tsx +15 -10
  10. package/src/components/Header/Components/UserMenu.tsx +1 -0
  11. package/src/components/List/List.tsx +4 -2
  12. package/src/components/List/ListItem.tsx +58 -13
  13. package/src/components/Menu/Menu.tsx +5 -1
  14. package/src/components/Pullover/Pullover.tsx +19 -11
  15. package/src/components/Sidebar/Sidebar.tsx +6 -4
  16. package/src/components/Table/Table.tsx +1 -4
  17. package/src/components/Table/components/edit/TableEditRow.tsx +4 -1
  18. package/src/components/Table/components/filters/TableFilters.tsx +4 -1
  19. package/src/components/Table/components/items/TableItemActions.tsx +12 -3
  20. package/src/components/Table/components/print/TablePrint.tsx +4 -1
  21. package/src/components/Table/components/templates/TableTemplates.tsx +49 -55
  22. package/src/components/Table/contexts/TableContext.tsx +13 -17
  23. package/src/components/Table/hooks/localHooks/useLocalTableColumns.tsx +8 -10
  24. package/src/components/Table/hooks/localHooks/useLocalTableData.tsx +1 -1
  25. package/src/components/Table/hooks/useTableColumns.ts +28 -0
  26. package/src/components/Table/hooks/useTablePagination.ts +10 -7
  27. package/src/components/Table/hooks/useTableSelect.ts +15 -7
  28. package/src/index.ts +12 -2
  29. package/src/styles/components/_header.scss +26 -5
  30. package/src/styles/components/_list.scss +18 -1
  31. package/src/styles/components/_page.scss +2 -1
  32. package/src/styles/components/_sidebar.scss +2 -2
  33. package/src/types/ITable.ts +40 -31
  34. package/src/utils/i18n/i18nIUICyrilic.ts +21 -12
  35. package/src/utils/i18n/i18nIUILatin.ts +8 -2
  36. package/src/utils/i18n/i18nIUIMe.ts +20 -10
  37. package/src/utils/logoUtils.ts +7 -0
  38. package/src/utils/tableUtils.ts +5 -5
  39. package/src/components/Table/components/templates/components/CreateTemplateDialog.tsx +0 -41
  40. package/src/components/Table/hooks/useDefaultTemplate.ts +0 -20
@@ -6,7 +6,10 @@ import { useTableContext } from '../../contexts/TableContext';
6
6
  import { useGetFocusableElements } from '../../../../hooks/useGetFocusableElements';
7
7
 
8
8
  export const TableEditRow: FC = () => {
9
- const { columns, editable } = useTableContext();
9
+ const {
10
+ columnData: { columns },
11
+ editable,
12
+ } = useTableContext();
10
13
 
11
14
  const elementRef = useRef(null);
12
15
 
@@ -20,7 +20,10 @@ import { usePopupControl } from '../../../../hooks/usePopupControl';
20
20
 
21
21
  export const TableFilters: FC = () => {
22
22
  const { t } = useTranslation();
23
- const { columns, filterData } = useTableContext();
23
+ const {
24
+ columnData: { columns },
25
+ filterData,
26
+ } = useTableContext();
24
27
  const { control, onClose, onOpen } = usePopupControl();
25
28
  const columnIds = getVisibleColumnsIds(columns);
26
29
 
@@ -22,14 +22,20 @@ export const TableItemActions: FC<{ tableDataItem: ITableDataItem }> = ({
22
22
  {dataActions.isEditable && (
23
23
  <IconButton
24
24
  icon={faPen}
25
- onClick={() => editable?.setSelectedItem(tableDataItem.item ?? null)}
25
+ onClick={e => {
26
+ e.stopPropagation();
27
+ editable?.setSelectedItem(tableDataItem.item ?? null);
28
+ }}
26
29
  size="s"
27
30
  />
28
31
  )}
29
32
  {dataActions.isDeletable && (
30
33
  <IconButton
31
34
  icon={faTrashCan}
32
- onClick={() => dataActions.delete?.onClick?.(tableDataItem.uuid)}
35
+ onClick={e => {
36
+ e.stopPropagation();
37
+ dataActions.delete?.onClick?.(tableDataItem.uuid);
38
+ }}
33
39
  size="s"
34
40
  color="danger"
35
41
  />
@@ -45,7 +51,10 @@ export const TableItemActions: FC<{ tableDataItem: ITableDataItem }> = ({
45
51
  ref={ref}
46
52
  icon={faEllipsisVertical}
47
53
  active={isMenuOpen}
48
- onClick={onMenuOpen}
54
+ onClick={e => {
55
+ e.stopPropagation();
56
+ onMenuOpen();
57
+ }}
49
58
  size="s"
50
59
  />
51
60
  )}
@@ -15,7 +15,10 @@ import { ProgressBar } from '../../../Loader/ProgressBar';
15
15
  export const TablePrint: FC = () => {
16
16
  const { t } = useTranslation();
17
17
  useHideZendesk();
18
- const { columns, printData } = useTableContext();
18
+ const {
19
+ columnData: { columns },
20
+ printData,
21
+ } = useTableContext();
19
22
 
20
23
  const {
21
24
  label,
@@ -1,98 +1,92 @@
1
- import { useState, type FC } from 'react';
1
+ import { type FC } from 'react';
2
2
  import { IconButton } from '../../../Button/IconButton';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { useTableContext } from '../../contexts/TableContext';
5
- import { faBookmark, faBookmarkSlash, faXmark } from '../../../../assets/icons';
6
- import { usePopupControl } from '../../../../hooks/usePopupControl';
5
+ import { faBookmark, faBookmarkSlash, faTrashCan } from '../../../../assets/icons';
7
6
  import { Pullover } from '../../../Pullover/Pullover';
8
7
  import { List } from '../../../List/List';
9
- import { Dialog } from '../../../Dialog/Dialog';
10
- import { TextInput } from '../../../Inputs/TextInput';
11
- import { CreateTemplateDialog } from './components/CreateTemplateDialog';
8
+ import { setTemplateData } from '../../../../utils/tableUtils';
12
9
 
13
10
  export const TableTemplates: FC = () => {
14
11
  const { t } = useTranslation();
15
- const { templateData: templates } = useTableContext();
16
- const { control, onOpen } = usePopupControl();
17
- // const { control: dialogControl, onOpen: onDialogOpen } = usePopupControl();
12
+ const { templateData, columnData, filterData, sortData } = useTableContext();
18
13
 
19
- const [selectedItemId, setSelectedItemId] = useState<string | null>(null);
14
+ if (!templateData) return null;
20
15
 
21
16
  return (
22
17
  <>
23
18
  <IconButton
24
19
  tooltip={t('Templates')}
25
20
  icon={faBookmark}
26
- active={control.isOpen}
27
- onClick={onOpen}
21
+ active={templateData.popupController.control.isOpen}
22
+ onClick={templateData.popupController.onOpen}
28
23
  size="s"
29
24
  variant="outlined"
30
25
  />
31
26
  <Pullover
32
- control={control}
27
+ isLoading={templateData.isLoading}
28
+ isFetching={templateData.isFetching}
29
+ control={templateData.popupController.control}
33
30
  header={{
34
31
  title: t('Templates'),
35
- onSearch: templates?.setSearch,
32
+ onSearch: templateData.setSearch,
36
33
  }}
37
- onContentClick={() => setSelectedItemId(null)}
38
34
  footer={{
39
35
  confirmButton: {
40
- label: t('ApplyTemplate'),
41
- type: 'submit',
36
+ label: t('CreateTemplate'),
37
+ onClick: templateData.initiateCreate,
42
38
  splitActions: [
43
- {
44
- label: t('CreateTemplateLong'),
45
- icon: faBookmark,
46
- // onClick: onDialogOpen,
47
- },
48
39
  {
49
40
  label: t('CreateDefaultTemplate'),
50
41
  icon: faBookmark,
51
- onClick: () => {
52
- // Handle use template action
53
- },
42
+ onClick: templateData.initiateCreateDefault,
54
43
  },
55
44
  ],
56
45
  },
57
- additionalButton: selectedItemId
58
- ? {
59
- label: t('DeleteTemplate'),
60
- icon: faXmark,
61
- color: 'danger',
62
- onClick: () => {
63
- // Handle delete template action
64
- },
65
- }
66
- : {
67
- label: t('ResetTemplate'),
68
- icon: faBookmarkSlash,
69
- onClick: () => {
70
- // setSearchData?.(defaultSearch);
71
- // onSearch?.(defaultSearch);
72
- // onClose();
73
- },
74
- // disabled: defaultSearch
75
- // ? JSON.stringify(searchData) === JSON.stringify(defaultSearch)
76
- // : Object.keys(searchData).length === 0,
77
- },
78
- }}
79
- onCloseCallback={() => {
80
- templates?.setSearch?.('');
81
- setSelectedItemId(null);
46
+ additionalButton: {
47
+ label: t('ResetTemplate'),
48
+ icon: faBookmarkSlash,
49
+ onClick: () => {
50
+ columnData?.setColumns?.(columnData.defaultColumns);
51
+ filterData?.setSearchData(filterData.defaultSearch ?? {});
52
+ filterData?.onSearch(filterData.defaultSearch ?? {});
53
+ sortData?.setSort('');
54
+ templateData.popupController.onClose();
55
+ },
56
+ },
82
57
  }}
58
+ onCloseCallback={() => templateData.setSearch?.('')}
83
59
  size="w600"
84
60
  >
85
61
  <List
86
- items={templates?.items.map(item => ({
62
+ items={templateData.items.map(item => ({
87
63
  id: item.uuid,
88
64
  label: item.name,
89
- active: selectedItemId === item.uuid,
90
- // desc: item.isPublic ? t('Public') : t('Private'),
91
- onClick: () => setSelectedItemId(item.uuid),
65
+ desc: item.isPublic ? t('PublicTemplate') : t('PrivateTemplate'),
66
+ onClick: () => {
67
+ setTemplateData({
68
+ template: item,
69
+ columnData,
70
+ setFilters: e => {
71
+ filterData?.setSearchData(e);
72
+ filterData?.onSearch(e);
73
+ },
74
+ setSort: sortData?.setSort,
75
+ });
76
+ templateData.popupController.onClose();
77
+ },
78
+ actions: [
79
+ {
80
+ icon: faTrashCan,
81
+ onClick: () => templateData.setItemToDeleteUuids([item.uuid]),
82
+ color: 'danger',
83
+ },
84
+ ],
92
85
  }))}
86
+ noItemsMessage={t('NoTemplatesAvailable')}
93
87
  />
94
- {/* <CreateTemplateDialog control={dialogControl} /> */}
95
88
  </Pullover>
89
+ {templateData.TemplateNode}
96
90
  </>
97
91
  );
98
92
  };
@@ -10,17 +10,17 @@ import {
10
10
  import {
11
11
  IPaginationControl,
12
12
  ITable,
13
- ITableColumn,
13
+ ITableColumnsData,
14
14
  ITableEdit,
15
- ITableSelectedActions,
15
+ ITableSelectedAction,
16
16
  } from '../../../types/ITable';
17
17
  import { useLocalTablePagination } from '../hooks/localHooks/useLocalTablePagination';
18
18
  import { useLocalTableColumns } from '../hooks/localHooks/useLocalTableColumns';
19
19
  import { useLocalTableData } from '../hooks/localHooks/useLocalTableData';
20
20
 
21
21
  interface ITableContext extends ITable {
22
- setColumns: (columns: ITableColumn[]) => void;
23
- selectActions: ITableSelectedActions[];
22
+ columnData: ITableColumnsData;
23
+ selectActions: ITableSelectedAction[];
24
24
  dataActions?: ITable['dataActions'] & {
25
25
  hasItemActions: boolean;
26
26
  isEditable: boolean;
@@ -37,10 +37,9 @@ interface ITableContext extends ITable {
37
37
  }
38
38
 
39
39
  const TableContext = createContext<ITableContext>({
40
- setColumns: () => {},
41
- selectActions: [],
40
+ columnData: { columns: [], defaultColumns: [] },
42
41
  data: [],
43
- columns: [],
42
+ selectActions: [],
44
43
  });
45
44
 
46
45
  interface Props extends ITable {
@@ -48,18 +47,17 @@ interface Props extends ITable {
48
47
  }
49
48
 
50
49
  export const TableProvider = ({
51
- columns: initialColumns,
50
+ columnData,
52
51
  data: initialData,
53
52
  dataActions,
54
53
  editable,
55
54
  footer,
56
55
  children,
56
+ rowSelect,
57
57
  ...rest
58
58
  }: Props) => {
59
59
  const [isAdding, setIsAdding] = useState(false);
60
60
 
61
- const { rowSelect } = rest;
62
-
63
61
  const selectActions = useMemo(
64
62
  () => rowSelect?.actions.filter(e => !e.hidden) || [],
65
63
  [rowSelect?.actions]
@@ -80,17 +78,16 @@ export const TableProvider = ({
80
78
  const localPagination = useLocalTablePagination({
81
79
  defaultLimit: footer?.customPagination?.defaultLimit,
82
80
  });
83
-
84
- const { data } = useLocalTableData({
81
+ const data = useLocalTableData({
85
82
  initialData,
86
83
  localPagination,
87
84
  controledPagination: !!footer?.paginationControl,
88
- dataActions,
85
+ dataActions: updatedDataActions,
89
86
  rowSelect,
90
87
  });
91
88
 
92
- const { columns, setColumns } = useLocalTableColumns({
93
- initialColumns,
89
+ useLocalTableColumns({
90
+ columnData,
94
91
  hasSelect: selectActions.length > 0,
95
92
  data,
96
93
  rowSelect,
@@ -101,8 +98,7 @@ export const TableProvider = ({
101
98
  ...rest,
102
99
  data,
103
100
  dataActions: updatedDataActions,
104
- columns,
105
- setColumns,
101
+ columnData,
106
102
  selectActions,
107
103
  };
108
104
 
@@ -1,10 +1,10 @@
1
- import { useEffect, useState } from 'react';
2
- import { ITable, ITableColumn } from '../../../../types/ITable';
1
+ import { useEffect } from 'react';
2
+ import { ITable, ITableColumn, ITableColumnsData } from '../../../../types/ITable';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { Checkbox } from '../../../Inputs/Checkbox';
5
5
 
6
6
  interface Props {
7
- initialColumns: ITableColumn[];
7
+ columnData: ITableColumnsData;
8
8
  hasSelect: boolean;
9
9
  data: ITable['data'];
10
10
  rowSelect: ITable['rowSelect'];
@@ -12,17 +12,17 @@ interface Props {
12
12
  }
13
13
 
14
14
  export const useLocalTableColumns = ({
15
- initialColumns,
15
+ columnData: { defaultColumns, setColumns },
16
16
  hasSelect,
17
17
  data,
18
18
  rowSelect,
19
19
  hasItemActions,
20
20
  }: Props) => {
21
- const [columns, setColumns] = useState<ITableColumn[]>([]);
22
21
  const { t } = useTranslation();
23
22
 
24
23
  useEffect(() => {
25
- const activeColumns = initialColumns.filter(e => !e.hidden && !e.unavailable);
24
+ const activeColumns = defaultColumns.filter(e => !e.hidden && !e.unavailable);
25
+ // const activeColumns = defaultColumns.filter(e => !e.unavailable);
26
26
 
27
27
  let newCols: ITableColumn[] = [];
28
28
 
@@ -66,8 +66,6 @@ export const useLocalTableColumns = ({
66
66
  className: 'actions-col',
67
67
  });
68
68
 
69
- setColumns(newCols);
70
- }, [initialColumns, hasSelect, data, rowSelect, hasItemActions, t]);
71
-
72
- return { columns, setColumns };
69
+ setColumns?.(newCols);
70
+ }, [defaultColumns, setColumns, hasSelect, data, rowSelect, hasItemActions, t]);
73
71
  };
@@ -74,5 +74,5 @@ export const useLocalTableData = ({
74
74
  dataActions,
75
75
  ]);
76
76
 
77
- return { data };
77
+ return data;
78
78
  };
@@ -0,0 +1,28 @@
1
+ import { useEffect, useMemo, useState } from 'react';
2
+ import { ITableColumn, ITableColumnsData } from '../../../types/ITable';
3
+
4
+ export interface ITableColumnsProps {
5
+ defaultColumns: ITableColumn[];
6
+ templateColumns?: ITableColumn[];
7
+ }
8
+
9
+ export const useTableColumns = ({
10
+ defaultColumns,
11
+ templateColumns,
12
+ }: ITableColumnsProps): ITableColumnsData => {
13
+ const [columns, setColumns] = useState<ITableColumn[]>(defaultColumns);
14
+
15
+ useEffect(() => {
16
+ setColumns(defaultColumns);
17
+ }, [defaultColumns, templateColumns]);
18
+
19
+ const columnData = useMemo(
20
+ () => ({
21
+ defaultColumns,
22
+ columns,
23
+ setColumns,
24
+ }),
25
+ [defaultColumns, columns]
26
+ );
27
+ return columnData;
28
+ };
@@ -1,16 +1,19 @@
1
- import { useState } from 'react';
1
+ import { useMemo, useState } from 'react';
2
2
  import { IPagination, IPaginationControl } from '../../../types/ITable';
3
3
 
4
4
  export const useTablePagination = (defaultLimit: number = 5) => {
5
5
  const [limit, setLimit] = useState(defaultLimit);
6
6
  const [offset, setOffset] = useState(0);
7
7
 
8
- const pagination: IPagination = { limit, offset };
9
- const paginationControl: IPaginationControl = {
10
- ...pagination,
11
- setLimit,
12
- setOffset,
13
- };
8
+ const pagination: IPagination = useMemo(() => ({ limit, offset }), [limit, offset]);
9
+ const paginationControl: IPaginationControl = useMemo(
10
+ () => ({
11
+ ...pagination,
12
+ setLimit,
13
+ setOffset,
14
+ }),
15
+ [pagination]
16
+ );
14
17
 
15
18
  return { pagination, paginationControl };
16
19
  };
@@ -1,11 +1,19 @@
1
- import { useState } from 'react';
1
+ import { useMemo, useState } from 'react';
2
+ import { ITableSelectedAction } from '../../../types/ITable';
2
3
 
3
- export const useTableSelect = () => {
4
+ export const useTableSelect = ({ actions }: { actions: ITableSelectedAction[] }) => {
4
5
  const [selectedRows, setSelectedRows] = useState(new Set<string>());
5
6
 
6
- return {
7
- selectedRows,
8
- setSelectedRows,
9
- resetSelectedRows: () => setSelectedRows(new Set<string>()),
10
- };
7
+ const rowSelect = useMemo(
8
+ () => ({
9
+ selectedRows,
10
+ setSelectedRows,
11
+ resetSelectedRows: () => setSelectedRows(new Set<string>()),
12
+ actions,
13
+ }),
14
+ // eslint-disable-next-line
15
+ [selectedRows]
16
+ );
17
+
18
+ return rowSelect;
11
19
  };
package/src/index.ts CHANGED
@@ -27,6 +27,7 @@ import type {
27
27
  IPaginationControl,
28
28
  ITable,
29
29
  ITableColumn,
30
+ ITableDataActions,
30
31
  ITableDataItem,
31
32
  ITableDataItemCells,
32
33
  ITableEdit,
@@ -34,6 +35,10 @@ import type {
34
35
  ITableFilterData,
35
36
  ITableFilterItem,
36
37
  ITableSort,
38
+ ITableTemplateData,
39
+ IReportTemplate,
40
+ IReportTemplateData,
41
+ IReportTemplateFilterValue,
37
42
  } from './types/ITable';
38
43
  import type { ITreeItem } from './types/ITree';
39
44
  import type { IHeaderAction, IHeaderUserMenuProps } from './types/IHeader';
@@ -97,7 +102,7 @@ import { Table } from './components/Table/Table';
97
102
  // import { TableFooter } from './components/Table/Components/TableFooter';
98
103
  // import { GridTable } from '../idea/GridTable/GridTable';
99
104
  // import { TablePrint } from './components/Table/Components/Print/TablePrint';
100
- import { useDefaultTemplate } from './components/Table/hooks/useDefaultTemplate';
105
+ import { useTableColumns } from './components/Table/hooks/useTableColumns';
101
106
  import { useTableEdit } from './components/Table/hooks/useTableEdit';
102
107
  import { useTableFilterFields } from './components/Table/hooks/useTableFilterFields';
103
108
  import { useTablePagination } from './components/Table/hooks/useTablePagination';
@@ -234,7 +239,7 @@ export {
234
239
  // TablePrint,
235
240
  // TableEditRow,
236
241
  // TableFooter,
237
- useDefaultTemplate,
242
+ useTableColumns,
238
243
  useTableEdit,
239
244
  useTableFilterFields,
240
245
  useTablePagination,
@@ -269,6 +274,7 @@ export type {
269
274
  ITab,
270
275
  ITable,
271
276
  ITableColumn,
277
+ ITableDataActions,
272
278
  ITableDataItem,
273
279
  ITableDataItemCells,
274
280
  ITableEdit,
@@ -276,6 +282,10 @@ export type {
276
282
  ITableFilterData,
277
283
  ITableFilterItem,
278
284
  ITableSort,
285
+ ITableTemplateData,
286
+ IReportTemplate,
287
+ IReportTemplateData,
288
+ IReportTemplateFilterValue,
279
289
  IGetPrintData,
280
290
  ITreeItem,
281
291
  IValueLabel,
@@ -1,8 +1,9 @@
1
1
  @use '../variables/bp';
2
2
 
3
3
  .iui-header {
4
- border-bottom: var(--border);
5
- background: var(--background);
4
+ box-shadow: var(--container-shadow);
5
+ background: var(--primary);
6
+ color: var(--text-inverse);
6
7
  height: var(--header-height);
7
8
  width: 100dvw;
8
9
  display: flex;
@@ -10,13 +11,21 @@
10
11
  justify-content: space-between;
11
12
  padding: 0 24px 0 8px;
12
13
  box-sizing: border-box;
14
+ z-index: 2;
13
15
  .header-button {
14
16
  height: 40px;
15
17
  width: 40px;
16
18
  padding: 8px;
17
19
  border-radius: 50px;
18
- &:hover {
20
+ circle {
21
+ fill: var(--white);
22
+ }
23
+ &:hover,
24
+ &.active {
19
25
  background-color: var(--neutral-hover);
26
+ circle {
27
+ fill: var(--primary);
28
+ }
20
29
  }
21
30
  }
22
31
  }
@@ -31,12 +40,17 @@
31
40
  user-select: none;
32
41
  &:hover {
33
42
  background-color: var(--neutral-hover);
43
+ color: var(--primary);
34
44
  }
35
45
  }
36
46
  .modules-menu {
37
47
  display: grid;
38
48
  grid-template-columns: repeat(2, 1fr);
39
49
  padding: 8px !important;
50
+ top: var(--header-height) !important;
51
+ left: 0 !important;
52
+ border-top-left-radius: 0px !important;
53
+ border-top-right-radius: 0px !important;
40
54
  @media #{bp.$mobile} {
41
55
  grid-template-columns: 1fr;
42
56
  }
@@ -81,7 +95,7 @@
81
95
  user-select: none;
82
96
  -webkit-user-drag: none;
83
97
  .user-icon {
84
- color: var(--primary);
98
+ color: var(--white);
85
99
  height: 36px;
86
100
  width: 36px;
87
101
  }
@@ -96,7 +110,7 @@
96
110
  }
97
111
  .org-name {
98
112
  font-size: 12px;
99
- color: var(--neutral-500);
113
+ color: var(--neutral-200);
100
114
  }
101
115
  p {
102
116
  line-height: 1.5;
@@ -113,6 +127,13 @@
113
127
  border-radius: 50px;
114
128
  }
115
129
  }
130
+ .header-user-menu {
131
+ top: var(--header-height) !important;
132
+ right: 0 !important;
133
+ left: auto !important;
134
+ border-top-left-radius: 0px !important;
135
+ border-top-right-radius: 0px !important;
136
+ }
116
137
 
117
138
  @media #{bp.$mobile} {
118
139
  .user-info {
@@ -4,9 +4,15 @@
4
4
  flex-direction: column;
5
5
  gap: 8px;
6
6
  .iui-list-item {
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: space-between;
7
10
  border: var(--border);
8
11
  border-radius: 8px;
9
12
  padding: 12px 16px;
13
+ transition:
14
+ color 0.15s,
15
+ background-color 0.15s;
10
16
  p {
11
17
  font-size: 14px;
12
18
  line-height: 20px;
@@ -20,6 +26,11 @@
20
26
  margin-top: 4px;
21
27
  white-space: pre-line;
22
28
  }
29
+ .iui-list-item-actions {
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 4px;
33
+ }
23
34
  &.disabled {
24
35
  cursor: default;
25
36
  opacity: 0.5;
@@ -29,12 +40,18 @@
29
40
  &:hover {
30
41
  background-color: var(--neutral-hover);
31
42
  }
43
+ &:has(.iui-icon-btn:hover) {
44
+ background-color: transparent;
45
+ }
32
46
  &.active {
33
- background-color: var(--primary);
47
+ background-color: var(--primary) !important;
34
48
  color: var(--text-inverse);
35
49
  .iui-list-item-desc {
36
50
  color: var(--neutral-300);
37
51
  }
52
+ .iui-list-item-actions .iui-icon-btn:not(:hover) {
53
+ background-color: var(--background);
54
+ }
38
55
  }
39
56
  }
40
57
  }
@@ -47,7 +47,7 @@
47
47
  padding: 0 1.5rem;
48
48
  min-height: 55px;
49
49
  max-height: 55px;
50
- border-bottom: var(--border);
50
+ box-shadow: var(--container-shadow);
51
51
 
52
52
  @media #{bp.$mobileTablet} {
53
53
  .breadcrumbs {
@@ -60,4 +60,5 @@
60
60
  text-align: center;
61
61
  padding: 16px;
62
62
  font-size: 12px;
63
+ white-space: pre-line;
63
64
  }
@@ -6,7 +6,7 @@
6
6
  position: relative;
7
7
  display: flex;
8
8
  flex-direction: column;
9
- border-right: var(--border);
9
+ box-shadow: var(--container-shadow);
10
10
  height: calc(100dvh - var(--header-height));
11
11
  width: var(--sidebar-width);
12
12
  transition: width var(--animation);
@@ -190,7 +190,7 @@
190
190
  .item-only {
191
191
  padding-left: 15px;
192
192
  .sidebar-item-label {
193
- padding-left: 6px;
193
+ padding-left: 8px;
194
194
  }
195
195
  }
196
196
  .sidebar-footer p {