Re-enable disabled lint rules and right-size CI runners (#18461)
## Summary - Re-enable one lint rule that was temporarily disabled during the ESLint-to-Oxlint migration: - **`twenty/sort-css-properties-alphabetically`** in twenty-front — 578 violations auto-fixed across 390 files - Document why **`typescript/consistent-type-imports`** cannot be auto-fixed in twenty-server: NestJS relies on `emitDecoratorMetadata` for DI, so converting constructor parameter imports to `import type` erases them at compile time and breaks dependency injection at runtime - Right-size CI runners, reducing 8-core usage from 18 jobs to 3: | Change | Jobs | Rationale | |--------|------|-----------| | **Keep 8-core** | `ci-merge-queue/e2e-test`, `ci-front/front-sb-build`, `ci-front/front-build` | Heavy builds needing max CPU + memory (10GB NODE_OPTIONS, full Storybook webpack bundling) | | **8-core → 4-core** | `ci-server` (build, lint-typecheck, validation, test, integration-test), `ci-front/front-sb-test`, `ci-zapier/server-setup`, `ci-sdk/sdk-e2e-test` | Already sharded into 10-12 parallel instances, I/O-bound (DB/Redis), or moderate single builds | | **8-core → 2-core** | `ci-emails/emails-test` | Trivially lightweight (build + curl health check) | | **Removed** | `ci-front/front-chromatic-deployment` | Dead code — permanently disabled with `if: false` | - Fix merge queue CI issues: - **Concurrency**: Use `merge_group.base_ref` instead of unique merge group ref so new queue entries cancel previous runs - **Required status checks**: Add `merge_group` trigger to all 6 required CI workflows (front, server, shared, website, docker-compose, sdk) with `changed-files-check` auto-skipped for merge_group events — status check jobs auto-pass without re-running full CI - **Build caching**: Add Nx build cache restore/save to E2E test job with fallback to `main` branch cache for faster frontend and server builds ## Test plan - [ ] CI passes on this PR (verifies lint rule auto-fix works) - [ ] Verify 4-core runner jobs complete within their 30-minute timeouts - [ ] Verify merge queue status checks auto-pass (ci-front-status-check, ci-server-status-check, etc.) - [ ] Verify merge queue E2E concurrency cancels previous runs when a new PR enters the queue
This commit is contained in:
+1
-1
@@ -3,8 +3,8 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledRow = styled.div`
|
||||
display: flex;
|
||||
width: 100%;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
export const AdvancedFilterDropdownRow = StyledRow;
|
||||
|
||||
+6
-6
@@ -7,22 +7,22 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
export const StyledInput = styled.input`
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-top: none;
|
||||
border-bottom: 1px solid ${themeCssVariables.border.color.light};
|
||||
border-radius: 0;
|
||||
border-top: none;
|
||||
border-top-left-radius: ${themeCssVariables.border.radius.md};
|
||||
border-top-right-radius: ${themeCssVariables.border.radius.md};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
margin: 0;
|
||||
outline: none;
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
min-height: 19px;
|
||||
font-family: inherit;
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
|
||||
font-weight: inherit;
|
||||
margin: 0;
|
||||
max-width: 100%;
|
||||
min-height: 19px;
|
||||
|
||||
outline: none;
|
||||
overflow: hidden;
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
text-decoration: none;
|
||||
|
||||
&::placeholder {
|
||||
|
||||
+3
-3
@@ -7,18 +7,18 @@ import { capitalize } from 'twenty-shared/utils';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledText = styled.div`
|
||||
height: ${themeCssVariables.spacing[8]};
|
||||
display: flex;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: ${themeCssVariables.spacing[8]};
|
||||
|
||||
padding-left: 9px;
|
||||
`;
|
||||
|
||||
const StyledContainer = styled.div`
|
||||
align-items: start;
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
display: flex;
|
||||
min-width: ${themeCssVariables.spacing[20]};
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
`;
|
||||
|
||||
type AdvancedFilterLogicalOperatorCellProps = {
|
||||
|
||||
+6
-6
@@ -15,18 +15,18 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
// TODO: factorize this with https://github.com/twentyhq/core-team-issues/issues/752
|
||||
const StyledControlContainer = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
box-sizing: border-box;
|
||||
height: ${themeCssVariables.spacing[8]};
|
||||
max-width: 100%;
|
||||
padding: 0 ${themeCssVariables.spacing[2]};
|
||||
background-color: ${themeCssVariables.background.transparent.lighter};
|
||||
border: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
box-sizing: border-box;
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
height: ${themeCssVariables.spacing[8]};
|
||||
max-width: 100%;
|
||||
padding: 0 ${themeCssVariables.spacing[2]};
|
||||
text-align: left;
|
||||
`;
|
||||
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
const StyledColumn = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
export const AdvancedFilterSidePanelColumn = StyledColumn;
|
||||
|
||||
+1
-1
@@ -21,9 +21,9 @@ const StyledText = styled.div`
|
||||
|
||||
const StyledContainer = styled.div`
|
||||
align-items: start;
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
display: flex;
|
||||
min-width: ${themeCssVariables.spacing[20]};
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
`;
|
||||
|
||||
type AdvancedFilterSidePanelLogicalOperatorCellProps = {
|
||||
|
||||
+1
-1
@@ -18,8 +18,8 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
const StyledContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
justify-content: space-between;
|
||||
`;
|
||||
|
||||
type AdvancedFilterSidePanelRecordFilterColumnProps = {
|
||||
|
||||
+1
-1
@@ -12,8 +12,8 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
const StyledContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
justify-content: space-between;
|
||||
`;
|
||||
|
||||
export const AdvancedFilterSidePanelRecordFilterGroupColumn = ({
|
||||
|
||||
+3
-3
@@ -15,20 +15,20 @@ import { IconCheck } from 'twenty-ui/display';
|
||||
|
||||
const StyledBooleanSelectContainer = styled.div<{ selected?: boolean }>`
|
||||
align-items: center;
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
padding: ${themeCssVariables.spacing[2]} ${themeCssVariables.spacing[2]}
|
||||
${themeCssVariables.spacing[2]} ${themeCssVariables.spacing[1]};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
&:hover {
|
||||
background: ${themeCssVariables.background.transparent.light};
|
||||
}
|
||||
`;
|
||||
|
||||
const StyledIconCheckContainer = styled.div`
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: flex-end;
|
||||
`;
|
||||
|
||||
|
||||
+3
-3
@@ -22,9 +22,9 @@ import { useDebouncedCallback } from 'use-debounce';
|
||||
const StyledDropdownMenuIconAndNameContainer = styled.div`
|
||||
align-items: center;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
const StyledMenuTitleContainer = styled.div`
|
||||
@@ -35,8 +35,8 @@ const StyledMenuTitleContainer = styled.div`
|
||||
`;
|
||||
|
||||
const StyledMenuIconContainer = styled.div`
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
align-items: center;
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
display: flex;
|
||||
height: ${themeCssVariables.spacing[6]};
|
||||
justify-content: center;
|
||||
@@ -46,10 +46,10 @@ const StyledMenuIconContainer = styled.div`
|
||||
const StyledMainText = styled.div`
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
flex-shrink: 0;
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
max-width: 100%;
|
||||
`;
|
||||
|
||||
type ObjectOptionsDropdownMenuViewNameProps = {
|
||||
|
||||
+2
-2
@@ -23,14 +23,14 @@ const StyledContainer = styled.div`
|
||||
const StyledContainerContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: calc(100% - ${themeCssVariables.spacing[2]});
|
||||
height: min-content;
|
||||
min-height: calc(100% - ${themeCssVariables.spacing[2]});
|
||||
`;
|
||||
|
||||
const StyledBoardContentContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
`;
|
||||
|
||||
export const RecordBoard = () => {
|
||||
|
||||
+2
-2
@@ -11,10 +11,10 @@ const StyledHeaderContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 40px;
|
||||
z-index: 10;
|
||||
|
||||
overflow: visible;
|
||||
|
||||
width: 100%;
|
||||
z-index: 10;
|
||||
|
||||
&.header-sticky {
|
||||
position: sticky;
|
||||
|
||||
+1
-1
@@ -5,8 +5,8 @@ import { NotificationCounter } from 'twenty-ui/navigation';
|
||||
|
||||
const StyledNotificationCounterContainer = styled.div`
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
right: -7px;
|
||||
top: -7px;
|
||||
z-index: 1000;
|
||||
`;
|
||||
|
||||
|
||||
+5
-5
@@ -4,14 +4,14 @@ import { styled } from '@linaria/react';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledRecordBoardCardStackCard = styled.div<{ offset: number }>`
|
||||
position: absolute;
|
||||
top: ${({ offset }) => (offset === 1 ? 2 : (offset - 1) * 4 + 2)}px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
background-color: ${themeCssVariables.accent.tertiary};
|
||||
border: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
height: 100%;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: ${({ offset }) => (offset === 1 ? 2 : (offset - 1) * 4 + 2)}px;
|
||||
z-index: ${({ offset }) => -offset};
|
||||
`;
|
||||
|
||||
|
||||
+5
-5
@@ -15,15 +15,15 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
const StyledColumn = styled.div`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
max-width: 200px;
|
||||
min-width: 200px;
|
||||
min-height: 100%;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
max-width: 200px;
|
||||
min-height: 100%;
|
||||
min-width: 200px;
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
padding-top: 0px;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
`;
|
||||
|
||||
type RecordBoardColumnProps = {
|
||||
|
||||
+2
-2
@@ -23,16 +23,16 @@ const StyledBodyContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: ${themeCssVariables.spacing['0.5']};
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
padding-top: 4px;
|
||||
`;
|
||||
|
||||
const StyledStaticCellSkeleton = styled.div<{ width: number; height: number }>`
|
||||
background-color: ${themeCssVariables.background.tertiary};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
|
||||
width: ${({ width }) => width}px;
|
||||
height: ${({ height }) => height}px;
|
||||
width: ${({ width }) => width}px;
|
||||
`;
|
||||
|
||||
export const RecordBoardColumnCardContainerSkeletonLoader = () => {
|
||||
|
||||
+1
-1
@@ -28,9 +28,9 @@ const StyledHeader = styled.div`
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 100%;
|
||||
justify-content: left;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
`;
|
||||
|
||||
const StyledHeaderActions = styled.div`
|
||||
|
||||
+1
-1
@@ -20,8 +20,8 @@ const StyledContainerContainer = styled.div`
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
height: 100%;
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
padding-left: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
+2
-2
@@ -15,9 +15,9 @@ import { Button } from 'twenty-ui/input';
|
||||
import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledButtonContainer = styled.div`
|
||||
padding: ${themeCssVariables.spacing['0.5']};
|
||||
min-width: unset;
|
||||
height: auto;
|
||||
min-width: unset;
|
||||
padding: ${themeCssVariables.spacing['0.5']};
|
||||
`;
|
||||
|
||||
type RecordCalendarAddNewProps = {
|
||||
|
||||
+2
-2
@@ -35,14 +35,14 @@ const StyledNavigationButtonContainer = styled.div`
|
||||
`;
|
||||
|
||||
const StyledLeftSection = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
const StyledNavigationSection = styled.div`
|
||||
display: flex;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
justify-content: flex-end;
|
||||
`;
|
||||
|
||||
+3
-3
@@ -4,11 +4,11 @@ import { styled } from '@linaria/react';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
border: 1px solid ${themeCssVariables.border.color.light};
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
`;
|
||||
|
||||
|
||||
+12
-12
@@ -21,12 +21,6 @@ const StyledContainer = styled.div<{
|
||||
isOtherMonth: boolean;
|
||||
isDayOfWeekend: boolean;
|
||||
}>`
|
||||
display: flex;
|
||||
width: calc(100% / 7);
|
||||
flex-direction: column;
|
||||
min-height: 122px;
|
||||
padding: ${themeCssVariables.spacing[1]};
|
||||
min-width: 0;
|
||||
background: ${({ isOtherMonth, isDayOfWeekend }) =>
|
||||
isOtherMonth || isDayOfWeekend
|
||||
? themeCssVariables.background.secondary
|
||||
@@ -35,6 +29,12 @@ const StyledContainer = styled.div<{
|
||||
isOtherMonth
|
||||
? themeCssVariables.font.color.light
|
||||
: themeCssVariables.font.color.primary};
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 122px;
|
||||
min-width: 0;
|
||||
padding: ${themeCssVariables.spacing[1]};
|
||||
width: calc(100% / 7);
|
||||
|
||||
&:not(:last-child) {
|
||||
border-right: 1px solid ${themeCssVariables.border.color.light};
|
||||
@@ -60,20 +60,20 @@ const StyledDayHeaderDayContainer = styled.div`
|
||||
|
||||
const StyledDayHeaderDay = styled.span<{ isToday: boolean }>`
|
||||
align-items: center;
|
||||
display: flex;
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
justify-content: center;
|
||||
line-height: 140%;
|
||||
width: 20px;
|
||||
border-radius: ${({ isToday }) => (isToday ? '4px' : '0')};
|
||||
background: ${({ isToday }) =>
|
||||
isToday ? themeCssVariables.color.blue : 'transparent'};
|
||||
border-radius: ${({ isToday }) => (isToday ? '4px' : '0')};
|
||||
color: ${({ isToday }) =>
|
||||
isToday
|
||||
? themeCssVariables.font.color.inverted
|
||||
: themeCssVariables.font.color.primary};
|
||||
display: flex;
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
font-weight: ${({ isToday }) =>
|
||||
isToday ? themeCssVariables.font.weight.medium : 'normal'};
|
||||
justify-content: center;
|
||||
line-height: 140%;
|
||||
width: 20px;
|
||||
`;
|
||||
|
||||
const StyledCardsContainer = styled.div<{ isDraggedOver?: boolean }>`
|
||||
|
||||
+1
-1
@@ -10,8 +10,8 @@ import {
|
||||
} from 'twenty-shared/utils';
|
||||
|
||||
const StyledContainer = styled.div`
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
display: flex;
|
||||
flex: 1;
|
||||
|
||||
&:not(:last-of-type) {
|
||||
|
||||
+4
-4
@@ -11,10 +11,10 @@ const StyledBoardCard = styled.div<{
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
|
||||
opacity: ${({ isSecondaryDragged }) => (isSecondaryDragged ? '0.3' : '1')};
|
||||
|
||||
width: 100%;
|
||||
|
||||
&[data-selected='true'] {
|
||||
background-color: ${themeCssVariables.accent.quaternary};
|
||||
}
|
||||
@@ -37,8 +37,8 @@ const StyledBoardCard = styled.div<{
|
||||
}
|
||||
|
||||
.checkbox-container {
|
||||
transition: all ease-in-out 160ms;
|
||||
opacity: 0;
|
||||
transition: all ease-in-out 160ms;
|
||||
}
|
||||
|
||||
&[data-selected='true'] .checkbox-container {
|
||||
@@ -50,8 +50,8 @@ const StyledBoardCard = styled.div<{
|
||||
}
|
||||
|
||||
.compact-icon-container {
|
||||
transition: all ease-in-out 160ms;
|
||||
opacity: 0;
|
||||
transition: all ease-in-out 160ms;
|
||||
}
|
||||
&:hover .compact-icon-container {
|
||||
opacity: 1;
|
||||
|
||||
+1
-1
@@ -8,9 +8,9 @@ export const StyledBoardCardHeaderContainer = styled.div<{
|
||||
align-items: center;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
font-weight: ${themeCssVariables.font.weight.medium};
|
||||
height: 24px;
|
||||
justify-content: space-between;
|
||||
padding: ${({ padding, isCompact }) =>
|
||||
padding ??
|
||||
`${themeCssVariables.spacing[2]} ${themeCssVariables.spacing[2]} ${isCompact ? themeCssVariables.spacing[2] : themeCssVariables.spacing[1]} ${themeCssVariables.spacing[2]}`};
|
||||
|
||||
+2
-2
@@ -8,10 +8,10 @@ const StyledListItem = styled.div<{
|
||||
isDropdownOpen?: boolean;
|
||||
}>`
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
height: ${themeCssVariables.spacing[10]};
|
||||
justify-content: space-between;
|
||||
padding-left: ${({ noHorizontalPadding }) =>
|
||||
noHorizontalPadding ? 0 : themeCssVariables.spacing[3]};
|
||||
padding-right: ${({ noHorizontalPadding }) =>
|
||||
|
||||
+1
-1
@@ -6,8 +6,8 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledRecordDetailSectionWrapper = styled.div`
|
||||
border-top: 1px solid ${themeCssVariables.border.color.light};
|
||||
padding-top: ${themeCssVariables.spacing[3]};
|
||||
padding-bottom: ${themeCssVariables.spacing[3]};
|
||||
padding-top: ${themeCssVariables.spacing[3]};
|
||||
width: auto;
|
||||
`;
|
||||
|
||||
|
||||
+21
-21
@@ -4,27 +4,27 @@ import { IconX } from 'twenty-ui/display';
|
||||
import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledChip = styled.div<{ deletable: boolean; danger: boolean }>`
|
||||
align-items: center;
|
||||
background-color: ${({ danger }) =>
|
||||
danger ? themeCssVariables.color.red3 : themeCssVariables.color.blue3};
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: ${({ danger }) =>
|
||||
danger ? themeCssVariables.color.red5 : themeCssVariables.color.blue5};
|
||||
border-radius: 4px;
|
||||
height: 20px;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
box-sizing: border-box;
|
||||
column-gap: ${themeCssVariables.spacing[1]};
|
||||
cursor: ${({ deletable }) => (deletable ? 'pointer' : 'default')};
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
flex-direction: row;
|
||||
flex-shrink: 0;
|
||||
column-gap: ${themeCssVariables.spacing[1]};
|
||||
height: 20px;
|
||||
padding-left: ${themeCssVariables.spacing[1]};
|
||||
user-select: none;
|
||||
white-space: nowrap;
|
||||
|
||||
cursor: ${({ deletable }) => (deletable ? 'pointer' : 'default')};
|
||||
padding-right: ${({ deletable }) =>
|
||||
deletable ? '0' : themeCssVariables.spacing[1]};
|
||||
|
||||
user-select: none;
|
||||
white-space: nowrap;
|
||||
`;
|
||||
|
||||
const StyledLabel = styled.span<{ danger: boolean }>`
|
||||
@@ -34,23 +34,23 @@ const StyledLabel = styled.span<{ danger: boolean }>`
|
||||
`;
|
||||
|
||||
const StyledDelete = styled.button<{ danger: boolean }>`
|
||||
box-sizing: border-box;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
user-select: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background: none;
|
||||
border: none;
|
||||
border-bottom-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
border-top-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
box-sizing: border-box;
|
||||
color: ${({ danger }) =>
|
||||
danger ? themeCssVariables.color.red : themeCssVariables.color.blue};
|
||||
border-top-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
border-bottom-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
font-size: ${themeCssVariables.font.size.sm};
|
||||
height: 20px;
|
||||
justify-content: center;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
user-select: none;
|
||||
width: 20px;
|
||||
|
||||
&:hover {
|
||||
background-color: ${({ danger }) =>
|
||||
|
||||
+7
-7
@@ -27,29 +27,29 @@ const StyledAdvancedTextFieldContainerWrapper = styled.div`
|
||||
`;
|
||||
|
||||
const StyledAdvancedTextFieldFieldContainer = styled.div`
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
flex-grow: 1;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
position: relative;
|
||||
`;
|
||||
|
||||
const StyledAdvancedTextFieldInnerContainer = styled.div`
|
||||
flex-grow: 1;
|
||||
background-color: ${themeCssVariables.background.transparent.lighter};
|
||||
border: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
|
||||
box-sizing: border-box;
|
||||
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledEditorActionButtonContainer = styled.div`
|
||||
position: absolute;
|
||||
top: ${themeCssVariables.spacing[0]};
|
||||
right: 30px;
|
||||
top: ${themeCssVariables.spacing[0]};
|
||||
z-index: 1;
|
||||
`;
|
||||
|
||||
@@ -59,8 +59,8 @@ const StyledFullScreenEditorContainer = styled.div`
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
overflow-y: auto;
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
const StyledFullScreenButtonContainerWrapper = styled.div`
|
||||
@@ -70,8 +70,8 @@ const StyledFullScreenButtonContainerWrapper = styled.div`
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
|
||||
:hover {
|
||||
cursor: pointer;
|
||||
background-color: ${themeCssVariables.background.transparent.light};
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
+3
-3
@@ -56,13 +56,13 @@ const StyledDisplayModeContainer = styled.div`
|
||||
align-items: center;
|
||||
background: transparent;
|
||||
border: none;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
font-family: inherit;
|
||||
height: 30px;
|
||||
padding-inline: ${themeCssVariables.spacing[2]};
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
|
||||
&:hover,
|
||||
&[data-open='true'] {
|
||||
|
||||
+5
-5
@@ -22,23 +22,23 @@ const StyledDescription = styled.span`
|
||||
color: ${themeCssVariables.font.color.secondary};
|
||||
display: flex;
|
||||
font-size: ${themeCssVariables.font.size.md};
|
||||
padding-left: ${themeCssVariables.spacing[2]};
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
padding-left: ${themeCssVariables.spacing[2]};
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
`;
|
||||
|
||||
const StyledToggleContainer = styled.div`
|
||||
background-color: ${themeCssVariables.background.transparent.lighter};
|
||||
border-top: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-bottom: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-right: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-bottom-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
border-right: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-top: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-top-right-radius: ${themeCssVariables.border.radius.sm};
|
||||
display: flex;
|
||||
padding-bottom: ${themeCssVariables.spacing[2]};
|
||||
padding-right: ${themeCssVariables.spacing[2]};
|
||||
padding-top: ${themeCssVariables.spacing[2]};
|
||||
padding-bottom: ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
export const FormBooleanFieldToggleInput = ({
|
||||
|
||||
+5
-5
@@ -49,12 +49,15 @@ const StyledDateInputAbsoluteContainer = styled.div`
|
||||
const StyledDateInput = styled.input<{ hasError?: boolean }>`
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
color: ${({ hasError }) =>
|
||||
hasError
|
||||
? themeCssVariables.color.red
|
||||
: themeCssVariables.font.color.primary};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
font-family: ${themeCssVariables.font.family};
|
||||
font-size: inherit;
|
||||
font-weight: inherit;
|
||||
outline: none;
|
||||
padding: ${themeCssVariables.spacing[0]} ${themeCssVariables.spacing[2]};
|
||||
|
||||
&::placeholder,
|
||||
&::-webkit-input-placeholder {
|
||||
@@ -67,10 +70,7 @@ const StyledDateInput = styled.input<{ hasError?: boolean }>`
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
}
|
||||
|
||||
color: ${({ hasError }) =>
|
||||
hasError
|
||||
? themeCssVariables.color.red
|
||||
: themeCssVariables.font.color.primary};
|
||||
padding: ${themeCssVariables.spacing[0]} ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
const StyledDateInputContainer = styled.div`
|
||||
|
||||
+2
-2
@@ -18,13 +18,13 @@ const StyledFormFieldInputInnerContainer = styled.div<
|
||||
>`
|
||||
background-color: ${themeCssVariables.background.transparent.lighter};
|
||||
border: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-top-left-radius: ${themeCssVariables.border.radius.sm};
|
||||
border-bottom-left-radius: ${themeCssVariables.border.radius.sm};
|
||||
|
||||
border-bottom-right-radius: ${({ multiline, hasRightElement }) =>
|
||||
multiline || !hasRightElement ? themeCssVariables.border.radius.sm : '0'};
|
||||
|
||||
border-right: ${({ multiline, hasRightElement }) =>
|
||||
multiline || !hasRightElement ? 'auto' : 'none'};
|
||||
border-top-left-radius: ${themeCssVariables.border.radius.sm};
|
||||
border-top-right-radius: ${({ multiline, hasRightElement }) =>
|
||||
multiline || !hasRightElement ? themeCssVariables.border.radius.sm : '0'};
|
||||
box-sizing: border-box;
|
||||
|
||||
+2
-2
@@ -8,15 +8,15 @@ const StyledFormFieldInputRowContainer = styled.div<{
|
||||
}>`
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
position: relative;
|
||||
|
||||
height: ${({ multiline }) => (multiline ? 'auto' : '32px')};
|
||||
|
||||
line-height: ${({ multiline }) =>
|
||||
multiline ? `${LINE_HEIGHT}px` : 'normal'};
|
||||
max-height: ${({ multiline, maxHeight }) =>
|
||||
multiline ? `${maxHeight ?? 5 * LINE_HEIGHT}px` : 'none'};
|
||||
min-height: ${({ multiline }) =>
|
||||
multiline ? `${3 * LINE_HEIGHT}px` : 'auto'};
|
||||
position: relative;
|
||||
`;
|
||||
|
||||
export const FormFieldInputRowContainer = StyledFormFieldInputRowContainer;
|
||||
|
||||
+2
-2
@@ -54,11 +54,11 @@ const StyledDisplayModeContainer = styled.div`
|
||||
align-items: center;
|
||||
background: transparent;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
font-family: inherit;
|
||||
padding-inline: ${themeCssVariables.spacing[2]};
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover,
|
||||
&[data-open='true'] {
|
||||
@@ -68,8 +68,8 @@ const StyledDisplayModeContainer = styled.div`
|
||||
|
||||
const StyledSelectInputContainer = styled.div`
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
top: ${themeCssVariables.spacing[9]};
|
||||
z-index: 1;
|
||||
`;
|
||||
|
||||
const StyledPlaceholderContainer = styled.div`
|
||||
|
||||
+2
-2
@@ -2,11 +2,11 @@ import { styled } from '@linaria/react';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledFormNestedFieldInputContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background: ${themeCssVariables.background.secondary};
|
||||
border: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
padding: ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
+2
-2
@@ -24,11 +24,11 @@ import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledFormSelectContainerWrapper = styled.div<{ readonly?: boolean }>`
|
||||
align-items: center;
|
||||
cursor: ${({ readonly }) => (readonly ? 'default' : 'pointer')};
|
||||
height: 32px;
|
||||
justify-content: space-between;
|
||||
padding-right: ${themeCssVariables.spacing[2]};
|
||||
|
||||
cursor: ${({ readonly }) => (readonly ? 'default' : 'pointer')};
|
||||
padding-right: ${themeCssVariables.spacing[2]};
|
||||
|
||||
&:hover,
|
||||
&[data-open='true'] {
|
||||
|
||||
+13
-13
@@ -7,35 +7,35 @@ const StyledEditor = styled.div<{
|
||||
multiline?: boolean;
|
||||
readonly?: boolean;
|
||||
}>`
|
||||
width: 100%;
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
padding-right: ${({ multiline }) =>
|
||||
multiline ? themeCssVariables.spacing[4] : '0'};
|
||||
width: 100%;
|
||||
|
||||
.editor-content {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.tiptap {
|
||||
padding: ${themeCssVariables.spacing[1]} ${themeCssVariables.spacing[2]};
|
||||
align-items: ${({ multiline }) => (multiline ? 'top' : 'center')};
|
||||
border: none !important;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
overflow-x: auto;
|
||||
overflow-y: ${({ multiline }) => (multiline ? 'auto' : 'hidden')};
|
||||
scrollbar-width: none;
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
color: ${({ readonly }) =>
|
||||
readonly
|
||||
? themeCssVariables.font.color.light
|
||||
: themeCssVariables.font.color.primary};
|
||||
display: flex;
|
||||
font-family: ${themeCssVariables.font.family};
|
||||
font-weight: ${themeCssVariables.font.weight.regular};
|
||||
border: none !important;
|
||||
align-items: ${({ multiline }) => (multiline ? 'top' : 'center')};
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
height: 100%;
|
||||
overflow-x: auto;
|
||||
overflow-y: ${({ multiline }) => (multiline ? 'auto' : 'hidden')};
|
||||
padding: ${themeCssVariables.spacing[1]} ${themeCssVariables.spacing[2]};
|
||||
scrollbar-width: none;
|
||||
white-space: ${({ multiline }) => (multiline ? 'pre' : 'nowrap')};
|
||||
|
||||
p.is-editor-empty:first-of-type::before {
|
||||
|
||||
+7
-7
@@ -6,16 +6,16 @@ import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledContainer = styled.div`
|
||||
align-items: center;
|
||||
display: inline-flex;
|
||||
|
||||
background: ${themeCssVariables.background.transparent.light};
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
font-weight: ${themeCssVariables.font.weight.regular};
|
||||
font-size: ${themeCssVariables.font.size.md};
|
||||
padding: ${themeCssVariables.spacing[1]};
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
|
||||
border-radius: 4px;
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
display: inline-flex;
|
||||
font-size: ${themeCssVariables.font.size.md};
|
||||
font-weight: ${themeCssVariables.font.weight.regular};
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
|
||||
padding: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
export const ForbiddenFieldDisplay = () => {
|
||||
|
||||
+17
-17
@@ -15,14 +15,20 @@ const StyledInput = styled.input<{
|
||||
hasError?: boolean;
|
||||
hasItem: boolean;
|
||||
}>`
|
||||
background-color: ${({ hasItem }) =>
|
||||
hasItem ? themeCssVariables.background.transparent.lighter : 'transparent'};
|
||||
background-color: transparent;
|
||||
border: ${({ hasItem, hasError }) =>
|
||||
hasItem
|
||||
? hasError
|
||||
? `1px solid ${themeCssVariables.border.color.danger}`
|
||||
: `1px solid ${themeCssVariables.border.color.medium}`
|
||||
: 'none'};
|
||||
border: none;
|
||||
border-radius: ${({ hasItem }) => (hasItem ? '4px' : '0')};
|
||||
box-sizing: border-box;
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
font-family: ${themeCssVariables.font.family};
|
||||
font-size: inherit;
|
||||
font-weight: inherit;
|
||||
outline: none;
|
||||
padding: ${themeCssVariables.spacing[0]} ${themeCssVariables.spacing[2]};
|
||||
|
||||
&::placeholder,
|
||||
&::-webkit-input-placeholder {
|
||||
@@ -31,23 +37,17 @@ const StyledInput = styled.input<{
|
||||
font-weight: ${themeCssVariables.font.weight.medium};
|
||||
}
|
||||
|
||||
background-color: ${({ hasItem }) =>
|
||||
hasItem ? themeCssVariables.background.transparent.lighter : 'transparent'};
|
||||
border: ${({ hasItem, hasError }) =>
|
||||
hasItem
|
||||
? hasError
|
||||
? `1px solid ${themeCssVariables.border.color.danger}`
|
||||
: `1px solid ${themeCssVariables.border.color.medium}`
|
||||
: 'none'};
|
||||
border-radius: ${({ hasItem }) => (hasItem ? '4px' : '0')};
|
||||
box-sizing: border-box;
|
||||
font-size: inherit;
|
||||
font-weight: ${themeCssVariables.font.weight.medium};
|
||||
font-weight: inherit;
|
||||
height: 32px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
outline: none;
|
||||
padding: ${themeCssVariables.spacing[0]} ${themeCssVariables.spacing[2]};
|
||||
padding-right: ${({ withRightComponent }) =>
|
||||
withRightComponent ? '32px' : '0'};
|
||||
position: relative;
|
||||
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledInputContainer = styled.div`
|
||||
|
||||
+3
-3
@@ -21,15 +21,15 @@ const CONTAINER_HEIGHT = 300;
|
||||
const StyledContainer = styled.div`
|
||||
box-sizing: border-box;
|
||||
height: ${CONTAINER_HEIGHT}px;
|
||||
width: 400px;
|
||||
position: relative;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
width: 400px;
|
||||
`;
|
||||
|
||||
const StyledSwitchModeButtonContainer = styled.div`
|
||||
position: fixed;
|
||||
top: ${themeCssVariables.spacing[1]};
|
||||
right: ${themeCssVariables.spacing[1]};
|
||||
top: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
const StyledCodeEditorContainer = styled.div`
|
||||
|
||||
+4
-4
@@ -24,13 +24,13 @@ const ActivityRichTextEditor = lazy(() =>
|
||||
|
||||
const StyledContainer = styled.div`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
width: 480px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
margin: 0 0 0 calc(-1 * ${themeCssVariables.spacing[5]});
|
||||
padding: ${themeCssVariables.spacing[2]} ${themeCssVariables.spacing[2]}
|
||||
${themeCssVariables.spacing[2]} ${themeCssVariables.spacing[12]};
|
||||
margin: 0 0 0 calc(-1 * ${themeCssVariables.spacing[5]});
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
width: 480px;
|
||||
`;
|
||||
|
||||
const StyledCollapseButton = styled.div`
|
||||
|
||||
+3
-3
@@ -21,16 +21,16 @@ const StyledContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledContainerWithPadding = styled.div`
|
||||
box-sizing: border-box;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
margin-left: ${themeCssVariables.spacing[2]};
|
||||
min-height: 0;
|
||||
`;
|
||||
|
||||
export const RecordIndexContainer = () => {
|
||||
|
||||
+6
-6
@@ -55,14 +55,14 @@ const StyledLabelContainer = styled.div<{ width?: number }>`
|
||||
`;
|
||||
|
||||
const StyledInlineCellBaseContainer = styled.div<{ readonly: boolean }>`
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
height: fit-content;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
user-select: none;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
cursor: ${({ readonly }) => (readonly ? 'default' : 'pointer')};
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
height: fit-content;
|
||||
user-select: none;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
export const StyledSkeletonDiv = styled.div`
|
||||
|
||||
+16
-16
@@ -18,26 +18,26 @@ const StyledRecordInlineCellNormalModeOuterContainer = styled.div<
|
||||
'isDisplayModeFixHeight' | 'disableHoverEffect' | 'readonly'
|
||||
> & { isHovered?: boolean }
|
||||
>`
|
||||
align-items: center;
|
||||
background-color: ${({ isHovered, readonly, disableHoverEffect }) =>
|
||||
isHovered && !readonly && !disableHoverEffect
|
||||
? themeCssVariables.background.transparent.light
|
||||
: 'transparent'};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
cursor: ${({ isHovered, readonly }) =>
|
||||
isHovered && !readonly ? 'pointer' : 'default'};
|
||||
display: flex;
|
||||
height: ${({ isDisplayModeFixHeight }) =>
|
||||
isDisplayModeFixHeight ? '16px' : 'auto'};
|
||||
min-height: 16px;
|
||||
outline: 1px solid
|
||||
${({ isHovered, readonly }) =>
|
||||
isHovered && readonly
|
||||
? themeCssVariables.border.color.medium
|
||||
: 'transparent'};
|
||||
align-items: center;
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
display: flex;
|
||||
height: ${({ isDisplayModeFixHeight }) =>
|
||||
isDisplayModeFixHeight ? '16px' : 'auto'};
|
||||
min-height: 16px;
|
||||
overflow: hidden;
|
||||
padding-right: ${themeCssVariables.spacing[1]};
|
||||
padding-left: ${themeCssVariables.spacing[1]};
|
||||
background-color: ${({ isHovered, readonly, disableHoverEffect }) =>
|
||||
isHovered && !readonly && !disableHoverEffect
|
||||
? themeCssVariables.background.transparent.light
|
||||
: 'transparent'};
|
||||
cursor: ${({ isHovered, readonly }) =>
|
||||
isHovered && !readonly ? 'pointer' : 'default'};
|
||||
padding-right: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
const StyledRecordInlineCellNormalModeInnerContainer = styled.div`
|
||||
@@ -47,11 +47,11 @@ const StyledRecordInlineCellNormalModeInnerContainer = styled.div`
|
||||
height: fit-content;
|
||||
|
||||
overflow: hidden;
|
||||
padding-bottom: 2px;
|
||||
padding-top: 2px;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
`;
|
||||
|
||||
const StyledEmptyField = styled.div`
|
||||
|
||||
+5
-5
@@ -21,12 +21,12 @@ import { createPortal } from 'react-dom';
|
||||
const StyledInlineCellEditModeContainer = styled.div`
|
||||
align-items: center;
|
||||
|
||||
display: flex;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
height: 24px;
|
||||
|
||||
background: transparent;
|
||||
display: flex;
|
||||
height: 24px;
|
||||
position: absolute;
|
||||
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
type RecordInlineCellEditModeProps = {
|
||||
|
||||
+8
-8
@@ -9,20 +9,20 @@ const StyledRecordTableCellHoveredPortalContent = styled.div<{
|
||||
align-items: center;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
width: 100%;
|
||||
|
||||
justify-content: ${({ isCentered }) =>
|
||||
isCentered === true ? 'center' : 'normal'};
|
||||
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledInlineCellBaseContainer = styled.div<{ readonly: boolean }>`
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
height: fit-content;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
user-select: none;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
height: fit-content;
|
||||
user-select: none;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
type RecordInlineCellHoveredPortalContentProps = {
|
||||
|
||||
+2
-2
@@ -12,13 +12,13 @@ const StyledClickableContainer = styled.div<{
|
||||
isCentered?: boolean;
|
||||
}>`
|
||||
align-items: center;
|
||||
cursor: ${({ readonly }) => (readonly ? 'default' : 'pointer')};
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
width: 100%;
|
||||
|
||||
justify-content: ${({ isCentered }) =>
|
||||
isCentered === true ? 'center' : 'normal'};
|
||||
cursor: ${({ readonly }) => (readonly ? 'default' : 'pointer')};
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
export const RecordInlineCellValue = () => {
|
||||
|
||||
+1
-1
@@ -17,12 +17,12 @@ const StyledPropertyBoxContainer = styled.div<{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
padding-top: ${themeCssVariables.spacing[3]};
|
||||
padding-bottom: ${themeCssVariables.spacing[3]};
|
||||
padding-left: ${({ noHorizontalPadding }) =>
|
||||
noHorizontalPadding ? 0 : themeCssVariables.spacing[3]};
|
||||
padding-right: ${({ noHorizontalPadding }) =>
|
||||
noHorizontalPadding ? 0 : themeCssVariables.spacing[2]};
|
||||
padding-top: ${themeCssVariables.spacing[3]};
|
||||
`;
|
||||
|
||||
export const PropertyBox = ({
|
||||
|
||||
+1
-1
@@ -8,8 +8,8 @@ const StyledSkeletonDiv = styled.div`
|
||||
align-items: center;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
width: 100%;
|
||||
height: 24px;
|
||||
width: 100%;
|
||||
`;
|
||||
export const PropertyBoxSkeletonLoader = () => {
|
||||
const { theme } = useContext(ThemeContext);
|
||||
|
||||
+3
-3
@@ -21,10 +21,10 @@ import { MergeSettingsTab } from './MergeSettingsTab';
|
||||
const StyledShowPageRightContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
justify-content: start;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledTabListContainer = styled.div`
|
||||
@@ -33,9 +33,9 @@ const StyledTabListContainer = styled.div`
|
||||
`;
|
||||
|
||||
const StyledContentContainer = styled.div`
|
||||
background: ${themeCssVariables.background.primary};
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
background: ${themeCssVariables.background.primary};
|
||||
padding-bottom: ${themeCssVariables.spacing[16]};
|
||||
`;
|
||||
|
||||
|
||||
+1
-1
@@ -19,8 +19,8 @@ const StyledFooterContainer = styled.div`
|
||||
`;
|
||||
|
||||
const StyledFooterActions = styled.div`
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
|
||||
+2
-2
@@ -25,14 +25,14 @@ const StyledShowPageRightContainer = styled.div`
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
justify-content: start;
|
||||
width: 100%;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledContentContainer = styled.div<{ isInSidePanel: boolean }>`
|
||||
background: ${themeCssVariables.background.primary};
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
background: ${themeCssVariables.background.primary};
|
||||
padding-bottom: ${({ isInSidePanel }) =>
|
||||
isInSidePanel ? themeCssVariables.spacing[16] : 0};
|
||||
`;
|
||||
|
||||
+26
-26
@@ -53,10 +53,10 @@ const StyledTable = styled.div<{
|
||||
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
|
||||
position: relative;
|
||||
|
||||
width: 100%;
|
||||
|
||||
div.header-cell {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
@@ -72,10 +72,10 @@ const StyledTable = styled.div<{
|
||||
}
|
||||
|
||||
div.header-cell:nth-of-type(1) {
|
||||
left: 0px;
|
||||
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
|
||||
left: 0px;
|
||||
|
||||
z-index: ${({ hasRecordGroups }) =>
|
||||
hasRecordGroups
|
||||
? TABLE_Z_INDEX.headerColumns.withGroups.headerColumnsSticky
|
||||
@@ -83,10 +83,10 @@ const StyledTable = styled.div<{
|
||||
}
|
||||
|
||||
div.header-cell:nth-of-type(2) {
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
top: 0;
|
||||
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
top: 0;
|
||||
|
||||
z-index: ${({ hasRecordGroups }) =>
|
||||
hasRecordGroups
|
||||
@@ -95,10 +95,10 @@ const StyledTable = styled.div<{
|
||||
}
|
||||
|
||||
div.header-cell:nth-of-type(3) {
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
right: 0;
|
||||
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
|
||||
right: 0;
|
||||
|
||||
z-index: ${({ hasRecordGroups }) =>
|
||||
hasRecordGroups
|
||||
@@ -109,8 +109,8 @@ const StyledTable = styled.div<{
|
||||
}
|
||||
|
||||
div.table-cell:nth-of-type(1) {
|
||||
position: sticky;
|
||||
left: 0px;
|
||||
position: sticky;
|
||||
z-index: ${({ hasRecordGroups }) =>
|
||||
hasRecordGroups
|
||||
? TABLE_Z_INDEX.cell.withGroups.sticky
|
||||
@@ -118,8 +118,8 @@ const StyledTable = styled.div<{
|
||||
}
|
||||
|
||||
div.table-cell:nth-of-type(2) {
|
||||
position: sticky;
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
position: sticky;
|
||||
z-index: ${({ hasRecordGroups }) =>
|
||||
hasRecordGroups
|
||||
? TABLE_Z_INDEX.cell.withGroups.sticky
|
||||
@@ -127,15 +127,15 @@ const StyledTable = styled.div<{
|
||||
}
|
||||
|
||||
div.table-cell-0-0 {
|
||||
position: sticky;
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
position: sticky;
|
||||
|
||||
${HorizontalScrollBoxShadowCSS}
|
||||
}
|
||||
|
||||
div.table-cell:nth-of-type(3) {
|
||||
position: sticky;
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
position: sticky;
|
||||
z-index: ${({ hasRecordGroups }) =>
|
||||
hasRecordGroups
|
||||
? TABLE_Z_INDEX.cell.withGroups.sticky
|
||||
@@ -145,43 +145,43 @@ const StyledTable = styled.div<{
|
||||
}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH_CLASS_NAME} {
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH_CLASS_NAME} {
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH_CLASS_NAME} {
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
}
|
||||
|
||||
${columnFieldWidthRules}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_CLASS_NAME} {
|
||||
width: var(${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME});
|
||||
min-width: var(
|
||||
${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
max-width: var(
|
||||
${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
min-width: var(
|
||||
${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
width: var(${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME});
|
||||
}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_WITH_GROUP_LAST_EMPTY_COLUMN_WIDTH_CLASS_NAME} {
|
||||
width: var(
|
||||
max-width: var(
|
||||
${RECORD_TABLE_COLUMN_WITH_GROUP_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
min-width: var(
|
||||
${RECORD_TABLE_COLUMN_WITH_GROUP_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
max-width: var(
|
||||
width: var(
|
||||
${RECORD_TABLE_COLUMN_WITH_GROUP_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
}
|
||||
|
||||
+14
-14
@@ -66,60 +66,60 @@ const cloneColumnFieldWidthRules = Array.from(
|
||||
|
||||
const StyledRowDraggableCloneCSSBridge = styled.div`
|
||||
div.table-cell:nth-of-type(1) {
|
||||
position: sticky;
|
||||
left: 0px;
|
||||
position: sticky;
|
||||
z-index: ${TABLE_Z_INDEX.cell.withGroups.sticky};
|
||||
}
|
||||
|
||||
div.table-cell:nth-of-type(2) {
|
||||
position: sticky;
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
position: sticky;
|
||||
z-index: ${TABLE_Z_INDEX.cell.withoutGroups.sticky};
|
||||
}
|
||||
|
||||
div.table-cell-0-0 {
|
||||
position: sticky;
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
position: sticky;
|
||||
|
||||
${HorizontalScrollBoxShadowCSS}
|
||||
}
|
||||
|
||||
div.table-cell:nth-of-type(3) {
|
||||
position: sticky;
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
position: sticky;
|
||||
z-index: ${TABLE_Z_INDEX.cell.withoutGroups.sticky};
|
||||
|
||||
${HorizontalScrollBoxShadowCSS}
|
||||
}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH_CLASS_NAME} {
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH_CLASS_NAME} {
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH_CLASS_NAME} {
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
}
|
||||
|
||||
${cloneColumnFieldWidthRules}
|
||||
|
||||
div.${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_CLASS_NAME} {
|
||||
width: var(${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME});
|
||||
min-width: var(
|
||||
${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
max-width: var(
|
||||
${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
min-width: var(
|
||||
${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME}
|
||||
);
|
||||
width: var(${RECORD_TABLE_COLUMN_LAST_EMPTY_COLUMN_WIDTH_VARIABLE_NAME});
|
||||
}
|
||||
`;
|
||||
|
||||
|
||||
+5
-5
@@ -19,18 +19,18 @@ const StyledBaseContainer = styled.div<{
|
||||
cursor: ${({ isReadOnly }) => (isReadOnly ? 'default' : 'pointer')};
|
||||
display: flex;
|
||||
height: 32px;
|
||||
user-select: none;
|
||||
|
||||
position: relative;
|
||||
|
||||
user-select: none;
|
||||
|
||||
&:hover {
|
||||
outline: ${({ isReadOnly, fontColorMedium }) =>
|
||||
isReadOnly ? `1px solid ${fontColorMedium}` : 'unset'};
|
||||
border-radius: ${({ isReadOnly }) => (isReadOnly ? '0px' : 'unset')};
|
||||
background-color: ${({ isReadOnly, backgroundColorSecondary }) =>
|
||||
isReadOnly ? backgroundColorSecondary : 'unset'};
|
||||
border-radius: ${({ isReadOnly }) => (isReadOnly ? '0px' : 'unset')};
|
||||
color: ${({ isReadOnly, fontColorSecondary }) =>
|
||||
isReadOnly ? fontColorSecondary : 'unset'};
|
||||
outline: ${({ isReadOnly, fontColorMedium }) =>
|
||||
isReadOnly ? `1px solid ${fontColorMedium}` : 'unset'};
|
||||
|
||||
svg {
|
||||
color: ${({ isReadOnly, fontColorSecondary }) =>
|
||||
|
||||
+2
-2
@@ -5,13 +5,13 @@ import { MOBILE_VIEWPORT, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
import { AnimatedContainer } from 'twenty-ui/utilities';
|
||||
|
||||
const StyledButtonContainer = styled.div`
|
||||
margin: ${themeCssVariables.spacing[1]};
|
||||
border: 1px solid ${themeCssVariables.border.color.strong};
|
||||
@media (max-width: ${MOBILE_VIEWPORT}px) {
|
||||
position: relative;
|
||||
right: 7px;
|
||||
}
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
border: 1px solid ${themeCssVariables.border.color.strong};
|
||||
margin: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
type RecordTableCellButtonsProps = {
|
||||
|
||||
+1
-1
@@ -18,8 +18,8 @@ const StyledContainer = styled.div`
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
justify-content: center;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH};
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH};
|
||||
padding-right: ${themeCssVariables.spacing[1]};
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH};
|
||||
`;
|
||||
|
||||
const StyledRecordTableTdContainer = styled.div`
|
||||
|
||||
+1
-1
@@ -15,8 +15,8 @@ const StyledContainer = styled.div`
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
justify-content: center;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH};
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH};
|
||||
padding-right: ${themeCssVariables.spacing[1]};
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH};
|
||||
`;
|
||||
|
||||
const StyledRecordTableTdContainer = styled.div`
|
||||
|
||||
+1
-1
@@ -17,8 +17,8 @@ const StyledInnerContainer = styled.div`
|
||||
display: flex;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledEmptyPlaceholderField = styled.div`
|
||||
|
||||
+1
-1
@@ -9,10 +9,10 @@ import { RecordTableCellStyleWrapper } from '@/object-record/record-table/record
|
||||
import { IconListViewGrip } from 'twenty-ui/input';
|
||||
|
||||
const StyledContainer = styled.div`
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
border-color: transparent;
|
||||
cursor: grab;
|
||||
display: flex;
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
&:hover .icon {
|
||||
opacity: 1;
|
||||
|
||||
+5
-5
@@ -15,21 +15,21 @@ const StyledRecordTableTd = styled.div<{
|
||||
hasBottomBorder?: boolean;
|
||||
zIndex: number;
|
||||
}>`
|
||||
background: ${({ backgroundColor, isDragging }) =>
|
||||
isDragging ? 'transparent' : backgroundColor};
|
||||
|
||||
border-bottom: 1px solid
|
||||
${({ borderColor, hasBottomBorder, isDragging }) =>
|
||||
hasBottomBorder && !isDragging ? borderColor : 'transparent'};
|
||||
|
||||
color: ${({ fontColor }) => fontColor};
|
||||
border-right: ${({ borderColor, hasRightBorder }) =>
|
||||
hasRightBorder ? `1px solid ${borderColor}` : 'none'};
|
||||
|
||||
color: ${({ fontColor }) => fontColor};
|
||||
|
||||
padding: 0;
|
||||
|
||||
text-align: left;
|
||||
|
||||
background: ${({ backgroundColor, isDragging }) =>
|
||||
isDragging ? 'transparent' : backgroundColor};
|
||||
|
||||
z-index: ${({ zIndex }) => zIndex};
|
||||
`;
|
||||
|
||||
|
||||
+1
-1
@@ -6,8 +6,8 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
const StyledStaticCellSkeleton = styled.div`
|
||||
background-color: ${themeCssVariables.background.tertiary};
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
padding: 8px;
|
||||
`;
|
||||
|
||||
export const RecordTableCellLoading = ({
|
||||
|
||||
+5
-5
@@ -12,20 +12,20 @@ export const StyledCell = styled.div<{
|
||||
hasRightBorder?: boolean;
|
||||
hasBottomBorder?: boolean;
|
||||
}>`
|
||||
background: ${({ backgroundColor, isDragging }) =>
|
||||
isDragging ? 'transparent' : backgroundColor};
|
||||
|
||||
border-bottom: 1px solid
|
||||
${({ borderColor, hasBottomBorder, isDragging }) =>
|
||||
hasBottomBorder && !isDragging ? borderColor : 'transparent'};
|
||||
|
||||
color: ${({ fontColor }) => fontColor};
|
||||
border-right: ${({ borderColor, hasRightBorder }) =>
|
||||
hasRightBorder ? `1px solid ${borderColor}` : 'none'};
|
||||
|
||||
color: ${({ fontColor }) => fontColor};
|
||||
|
||||
padding: 0;
|
||||
|
||||
text-align: left;
|
||||
|
||||
background: ${({ backgroundColor, isDragging }) =>
|
||||
isDragging ? 'transparent' : backgroundColor};
|
||||
`;
|
||||
|
||||
export const RecordTableCellStyleWrapper = ({
|
||||
|
||||
+6
-6
@@ -5,16 +5,16 @@ import { cx } from '@linaria/core';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledPlaceholderDragAndDropCell = styled.div`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
border-bottom: 1px solid ${themeCssVariables.background.primary};
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
left: 0;
|
||||
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
|
||||
border-bottom: 1px solid ${themeCssVariables.background.primary};
|
||||
|
||||
position: sticky;
|
||||
left: 0;
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
`;
|
||||
|
||||
export const RecordTableDragAndDropPlaceholderCell = ({
|
||||
|
||||
+6
-6
@@ -15,10 +15,10 @@ const StyledPlaceholderDragAndDropFooterCell = styled.div<{
|
||||
isTableWithGroups: boolean;
|
||||
}>`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
width: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
position: sticky;
|
||||
left: 0px;
|
||||
bottom: 0;
|
||||
left: 0px;
|
||||
position: sticky;
|
||||
width: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
|
||||
z-index: ${({ isTableWithGroups }) =>
|
||||
isTableWithGroups
|
||||
@@ -30,9 +30,9 @@ const StyledPlaceholderAddButtonPlaceholderFooterCell = styled.div<{
|
||||
isTableWithGroups: boolean;
|
||||
}>`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
position: sticky;
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
z-index: ${({ isTableWithGroups }) =>
|
||||
isTableWithGroups
|
||||
? TABLE_Z_INDEX.footer.tableWithGroups.default
|
||||
@@ -43,8 +43,8 @@ const StyledPlaceholderLastColumnEmptyFooterCell = styled.div<{
|
||||
isTableWithGroups: boolean;
|
||||
}>`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
position: sticky;
|
||||
z-index: ${({ isTableWithGroups }) =>
|
||||
isTableWithGroups
|
||||
? TABLE_Z_INDEX.footer.tableWithGroups.default
|
||||
|
||||
+16
-16
@@ -20,29 +20,29 @@ const StyledColumnFooterCell = styled.div<{
|
||||
isTableWithGroups: boolean;
|
||||
}>`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
|
||||
border-right: solid 1px ${themeCssVariables.background.primary};
|
||||
|
||||
padding: 0;
|
||||
|
||||
min-width: ${({ columnWidth }) => columnWidth}px;
|
||||
width: ${({ columnWidth }) => columnWidth}px;
|
||||
text-align: left;
|
||||
&:hover {
|
||||
background: ${themeCssVariables.background.secondary};
|
||||
}
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
position: sticky;
|
||||
bottom: 0;
|
||||
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
left: ${({ isFirstCell }) =>
|
||||
isFirstCell
|
||||
? `${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`
|
||||
: 'auto'};
|
||||
min-width: ${({ columnWidth }) => columnWidth}px;
|
||||
&:hover {
|
||||
background: ${themeCssVariables.background.secondary};
|
||||
}
|
||||
overflow: hidden;
|
||||
|
||||
padding: 0;
|
||||
|
||||
position: sticky;
|
||||
text-align: left;
|
||||
|
||||
width: ${({ columnWidth }) => columnWidth}px;
|
||||
z-index: ${({ isFirstCell, isTableWithGroups }) =>
|
||||
isFirstCell
|
||||
? isTableWithGroups
|
||||
@@ -70,8 +70,8 @@ const StyledColumnFooterCell = styled.div<{
|
||||
|
||||
const StyledColumnFootContainer = styled.div`
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
`;
|
||||
|
||||
export const RecordTableAggregateFooterCell = ({
|
||||
|
||||
+13
-13
@@ -7,35 +7,35 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
import { OverflowingTextWithTooltip } from 'twenty-ui/display';
|
||||
|
||||
const StyledText = styled.span`
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
display: flex;
|
||||
height: 20px;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
|
||||
gap: 4px;
|
||||
height: 20px;
|
||||
overflow: hidden;
|
||||
padding-left: ${themeCssVariables.spacing[2]};
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
z-index: 1;
|
||||
`;
|
||||
|
||||
const StyledValueContainer = styled.div`
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
scrollbar-width: none;
|
||||
-ms-overflow-style: none;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
align-items: center;
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
justify-content: flex-end;
|
||||
overflow-x: auto;
|
||||
padding: 0 8px;
|
||||
scrollbar-width: none;
|
||||
white-space: nowrap;
|
||||
`;
|
||||
|
||||
const StyledValue = styled.div`
|
||||
|
||||
+9
-9
@@ -15,22 +15,22 @@ import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledCell = styled.div<{ isUnfolded: boolean; isFirstCell: boolean }>`
|
||||
align-items: center;
|
||||
background: ${({ isUnfolded }) =>
|
||||
isUnfolded ? themeCssVariables.background.tertiary : 'none'};
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
flex-grow: 1;
|
||||
flex-shrink: 0;
|
||||
font-weight: ${themeCssVariables.font.weight.medium};
|
||||
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
height: ${themeCssVariables.spacing[8]};
|
||||
justify-content: space-between;
|
||||
min-width: ${themeCssVariables.spacing[7]};
|
||||
flex-grow: 1;
|
||||
|
||||
max-width: 100%;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
background: ${({ isUnfolded }) =>
|
||||
isUnfolded ? themeCssVariables.background.tertiary : 'none'};
|
||||
min-width: ${themeCssVariables.spacing[7]};
|
||||
|
||||
padding-left: ${({ isFirstCell }) =>
|
||||
isFirstCell
|
||||
@@ -41,10 +41,10 @@ const StyledCell = styled.div<{ isUnfolded: boolean; isFirstCell: boolean }>`
|
||||
const StyledIconContainer = styled.div`
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 20px;
|
||||
justify-content: center;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
height: 20px;
|
||||
justify-content: center;
|
||||
padding-right: ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
|
||||
+7
-7
@@ -24,24 +24,24 @@ import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
const StyledPlusIconHeaderCell = styled.div<{
|
||||
shouldDisplayBorderBottom: boolean;
|
||||
}>`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
border-bottom: ${({ shouldDisplayBorderBottom }) =>
|
||||
shouldDisplayBorderBottom
|
||||
? `1px solid ${themeCssVariables.border.color.light}`
|
||||
: 'none'};
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
border-right: ${themeCssVariables.border.color.light} !important;
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
|
||||
z-index: 1;
|
||||
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
max-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
width: ${RECORD_TABLE_COLUMN_ADD_COLUMN_BUTTON_WIDTH}px;
|
||||
z-index: 1;
|
||||
|
||||
&:hover {
|
||||
background: ${themeCssVariables.background.secondary};
|
||||
}
|
||||
@@ -51,8 +51,8 @@ const StyledPlusIconContainer = styled.div`
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
width: 100%;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledDropdownContainer = styled.div`
|
||||
|
||||
+13
-13
@@ -7,24 +7,24 @@ const StyledHeaderCell = styled.div<{
|
||||
shouldDisplayBorderBottom: boolean;
|
||||
isResizing: boolean;
|
||||
}>`
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
|
||||
position: relative;
|
||||
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
max-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
border-right: 1px solid ${themeCssVariables.border.color.light};
|
||||
|
||||
border-bottom: ${({ shouldDisplayBorderBottom }) =>
|
||||
shouldDisplayBorderBottom
|
||||
? `1px solid ${themeCssVariables.border.color.light}`
|
||||
: 'none'};
|
||||
border-right: 1px solid ${themeCssVariables.border.color.light};
|
||||
|
||||
user-select: none;
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
|
||||
cursor: ${({ isResizing }) => (isResizing ? 'col-resize' : 'pointer')};
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
max-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
padding: 0;
|
||||
|
||||
position: relative;
|
||||
|
||||
text-align: left;
|
||||
|
||||
&:hover {
|
||||
background: ${({ isResizing }) =>
|
||||
@@ -40,7 +40,7 @@ const StyledHeaderCell = styled.div<{
|
||||
: themeCssVariables.background.tertiary};
|
||||
}
|
||||
|
||||
cursor: ${({ isResizing }) => (isResizing ? 'col-resize' : 'pointer')};
|
||||
user-select: none;
|
||||
|
||||
z-index: ${({ zIndex }) => zIndex ?? 'auto'};
|
||||
`;
|
||||
|
||||
+7
-7
@@ -26,27 +26,27 @@ const StyledContainer = styled.div<{
|
||||
shouldDisplayBorderBottom: boolean;
|
||||
}>`
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
justify-content: center;
|
||||
min-width: 24px;
|
||||
padding-right: ${themeCssVariables.spacing[1]};
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
border-bottom: ${({ shouldDisplayBorderBottom }) =>
|
||||
shouldDisplayBorderBottom
|
||||
? `1px solid ${themeCssVariables.border.color.light}`
|
||||
: 'none'};
|
||||
display: flex;
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
justify-content: center;
|
||||
min-width: 24px;
|
||||
padding-right: ${themeCssVariables.spacing[1]};
|
||||
`;
|
||||
|
||||
const StyledColumnHeaderCell = styled.div`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
box-sizing: border-box;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
max-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
`;
|
||||
|
||||
export const RecordTableHeaderCheckboxColumn = () => {
|
||||
|
||||
+8
-8
@@ -19,18 +19,18 @@ const StyledDragDropHeaderCell = styled.div<{
|
||||
backgroundColor: string;
|
||||
}>`
|
||||
background-color: ${({ backgroundColor }) => backgroundColor};
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
min-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
max-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
cursor: pointer;
|
||||
|
||||
border-bottom: ${({ shouldDisplayBorderBottom }) =>
|
||||
shouldDisplayBorderBottom
|
||||
? `1px solid ${themeCssVariables.background.primary}`
|
||||
: 'none'};
|
||||
cursor: pointer;
|
||||
max-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
max-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
min-height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
`;
|
||||
|
||||
export const RecordTableHeaderDragDropColumn = () => {
|
||||
|
||||
+1
-1
@@ -25,8 +25,8 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
const StyledPlusButtonWrapper = styled.div`
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: ${TABLE_Z_INDEX.headerColumns.withoutGroups.headerColumnsSticky};
|
||||
`;
|
||||
|
||||
|
||||
+2
-2
@@ -15,12 +15,12 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
const StyledLastColumnHeader = styled.div<{
|
||||
shouldDisplayBorderBottom: boolean;
|
||||
}>`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
|
||||
border-bottom: ${({ shouldDisplayBorderBottom }) =>
|
||||
shouldDisplayBorderBottom
|
||||
? `1px solid ${themeCssVariables.border.color.light}`
|
||||
: 'none'};
|
||||
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
border-left: none !important;
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
|
||||
|
||||
+1
-1
@@ -13,8 +13,8 @@ const StyledResizeHandler = styled.div<{
|
||||
}>`
|
||||
bottom: 0;
|
||||
cursor: col-resize;
|
||||
position: absolute;
|
||||
left: ${({ position }) => (position === 'left' ? '-1px' : 'auto')};
|
||||
position: absolute;
|
||||
right: ${({ position }) => (position === 'right' ? '-1px' : 'auto')};
|
||||
top: 0;
|
||||
width: 10px;
|
||||
|
||||
+8
-8
@@ -27,14 +27,14 @@ const StyledFieldPlaceholderCell = styled.div<{ widthOfFields: number }>`
|
||||
`;
|
||||
|
||||
const StyledRecordTableDraggableTr = styled.div`
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
|
||||
border: none;
|
||||
background: ${themeCssVariables.background.primary};
|
||||
border: none;
|
||||
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
|
||||
&:hover {
|
||||
div:not(:first-of-type) {
|
||||
@@ -57,10 +57,10 @@ const StyledIconContainer = styled.div`
|
||||
display: flex;
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
justify-content: center;
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
position: sticky;
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
`;
|
||||
|
||||
const StyledActionTextContainer = styled.div<{ width: number }>`
|
||||
@@ -79,13 +79,13 @@ const StyledActionTextContainer = styled.div<{ width: number }>`
|
||||
|
||||
const StyledText = styled.span`
|
||||
color: ${themeCssVariables.font.color.tertiary};
|
||||
margin-left: ${themeCssVariables.spacing[2]};
|
||||
font-size: ${themeCssVariables.font.size.md};
|
||||
margin-left: ${themeCssVariables.spacing[2]};
|
||||
position: absolute;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
white-space: nowrap;
|
||||
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
`;
|
||||
|
||||
type RecordTableActionRowProps = {
|
||||
|
||||
+14
-14
@@ -7,18 +7,6 @@ const StyledTr = styled.div<{
|
||||
isFirstRowOfGroup?: boolean;
|
||||
isScrolledVertically?: boolean;
|
||||
}>`
|
||||
--z-index-for-sticky-cells: ${({
|
||||
isFirstRowOfGroup,
|
||||
isScrolledVertically,
|
||||
}) =>
|
||||
isFirstRowOfGroup === true
|
||||
? isScrolledVertically
|
||||
? TABLE_Z_INDEX.activeRows.firstRow.sticky.scrolledVertically
|
||||
: TABLE_Z_INDEX.activeRows.firstRow.sticky.noVerticalScroll
|
||||
: isScrolledVertically
|
||||
? TABLE_Z_INDEX.activeRows.afterFirstRow.sticky.scrolledVertically
|
||||
: TABLE_Z_INDEX.activeRows.afterFirstRow.sticky.noVerticalScroll};
|
||||
|
||||
--z-index-for-normal-cells: ${({
|
||||
isFirstRowOfGroup,
|
||||
isScrolledVertically,
|
||||
@@ -31,6 +19,18 @@ const StyledTr = styled.div<{
|
||||
? TABLE_Z_INDEX.activeRows.afterFirstRow.normal.scrolledVertically
|
||||
: TABLE_Z_INDEX.activeRows.afterFirstRow.normal.noVerticalScroll};
|
||||
|
||||
--z-index-for-sticky-cells: ${({
|
||||
isFirstRowOfGroup,
|
||||
isScrolledVertically,
|
||||
}) =>
|
||||
isFirstRowOfGroup === true
|
||||
? isScrolledVertically
|
||||
? TABLE_Z_INDEX.activeRows.firstRow.sticky.scrolledVertically
|
||||
: TABLE_Z_INDEX.activeRows.firstRow.sticky.noVerticalScroll
|
||||
: isScrolledVertically
|
||||
? TABLE_Z_INDEX.activeRows.afterFirstRow.sticky.scrolledVertically
|
||||
: TABLE_Z_INDEX.activeRows.afterFirstRow.sticky.noVerticalScroll};
|
||||
|
||||
border-top: ${({ isDragging }) =>
|
||||
isDragging ? `1px solid ${themeCssVariables.border.color.medium}` : 'none'};
|
||||
|
||||
@@ -42,9 +42,9 @@ const StyledTr = styled.div<{
|
||||
div.table-cell,
|
||||
div.table-cell-0-0 {
|
||||
&:not(:first-of-type) {
|
||||
background-color: ${themeCssVariables.background.tertiary};
|
||||
border-bottom: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-color: ${themeCssVariables.border.color.medium};
|
||||
background-color: ${themeCssVariables.background.tertiary};
|
||||
}
|
||||
&:nth-of-type(2) {
|
||||
border-left: 1px solid ${themeCssVariables.border.color.medium};
|
||||
@@ -56,9 +56,9 @@ const StyledTr = styled.div<{
|
||||
}
|
||||
}
|
||||
&:last-of-type {
|
||||
border-right: 1px solid ${themeCssVariables.border.color.medium};
|
||||
border-radius: 0 ${themeCssVariables.border.radius.sm}
|
||||
${themeCssVariables.border.radius.sm} 0;
|
||||
border-right: 1px solid ${themeCssVariables.border.color.medium};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -4,9 +4,9 @@ import { styled } from '@linaria/react';
|
||||
import { NotificationCounter } from 'twenty-ui/navigation';
|
||||
|
||||
const StyledNotificationCounterContainer = styled.div`
|
||||
left: -7px;
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: -7px;
|
||||
z-index: 1000;
|
||||
`;
|
||||
|
||||
|
||||
+12
-12
@@ -53,13 +53,13 @@ const StyledChevronContainer = styled.div`
|
||||
border-right: none;
|
||||
color: ${themeCssVariables.font.color.secondary};
|
||||
display: flex;
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
position: sticky;
|
||||
text-align: center;
|
||||
|
||||
vertical-align: middle;
|
||||
width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
min-width: ${RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px;
|
||||
|
||||
position: sticky;
|
||||
left: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
z-index: ${TABLE_Z_INDEX.groupSection.stickyCell};
|
||||
`;
|
||||
@@ -78,11 +78,11 @@ const StyledRecordGroupSection = styled.div<{ width: number }>`
|
||||
flex-direction: row;
|
||||
gap: ${themeCssVariables.spacing[1]};
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
width: ${({ width }) => width}px;
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
min-width: ${({ width }) => width}px;
|
||||
|
||||
position: sticky;
|
||||
left: ${`${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH + RECORD_TABLE_COLUMN_CHECKBOX_WIDTH}px`};
|
||||
width: ${({ width }) => width}px;
|
||||
|
||||
z-index: ${TABLE_Z_INDEX.groupSection.stickyCell};
|
||||
`;
|
||||
@@ -100,16 +100,16 @@ const StyledFieldPlaceholderCell = styled.div<{ widthOfFields: number }>`
|
||||
`;
|
||||
|
||||
const StyledRecordTableDragAndDropPlaceholderCell = styled.div`
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
border-bottom: 1px solid ${themeCssVariables.background.primary};
|
||||
height: ${RECORD_TABLE_ROW_HEIGHT}px;
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
left: 0;
|
||||
|
||||
min-width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
|
||||
background-color: ${themeCssVariables.background.primary};
|
||||
|
||||
border-bottom: 1px solid ${themeCssVariables.background.primary};
|
||||
|
||||
position: sticky;
|
||||
left: 0;
|
||||
width: ${RECORD_TABLE_COLUMN_DRAG_AND_DROP_WIDTH}px;
|
||||
z-index: ${TABLE_Z_INDEX.groupSection.stickyCell};
|
||||
`;
|
||||
|
||||
|
||||
+13
-13
@@ -15,29 +15,29 @@ import { isDefined } from 'twenty-shared/utils';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledDebugRow = styled.div`
|
||||
position: absolute;
|
||||
left: 250px;
|
||||
top: 5px;
|
||||
z-index: 20;
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
background-color: ${themeCssVariables.color.gray3};
|
||||
border: 1px solid ${themeCssVariables.color.blue8};
|
||||
padding: ${themeCssVariables.spacing['0.5']};
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
display: flex;
|
||||
left: 250px;
|
||||
max-height: ${themeCssVariables.spacing[4]};
|
||||
|
||||
overflow: hidden;
|
||||
padding: ${themeCssVariables.spacing['0.5']};
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
|
||||
z-index: 20;
|
||||
`;
|
||||
|
||||
const StyledDebugColumn = styled.div<{ width: number }>`
|
||||
min-width: ${({ width }) => width}px;
|
||||
max-width: ${({ width }) => width}px;
|
||||
overflow: hidden;
|
||||
|
||||
display: flex;
|
||||
text-wrap-mode: nowrap;
|
||||
padding-right: ${themeCssVariables.spacing['0.5']};
|
||||
max-width: ${({ width }) => width}px;
|
||||
min-width: ${({ width }) => width}px;
|
||||
|
||||
overflow: hidden;
|
||||
padding-left: ${themeCssVariables.spacing['0.5']};
|
||||
padding-right: ${themeCssVariables.spacing['0.5']};
|
||||
text-wrap-mode: nowrap;
|
||||
`;
|
||||
|
||||
type RecordTableRowVirtualizedDebugRowHelperProps = {
|
||||
|
||||
+5
-5
@@ -11,18 +11,18 @@ import { OverflowingTextWithTooltip } from 'twenty-ui/display';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledDiv = styled.div`
|
||||
align-items: center;
|
||||
background: inherit;
|
||||
border: none;
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
box-sizing: border-box;
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
height: 24px;
|
||||
padding: ${themeCssVariables.spacing[0]} 5px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 24px;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
padding: ${themeCssVariables.spacing[0]} 5px;
|
||||
:hover {
|
||||
background: ${themeCssVariables.background.transparent.light};
|
||||
}
|
||||
|
||||
+5
-5
@@ -12,18 +12,18 @@ import { OverflowingTextWithTooltip } from 'twenty-ui/display';
|
||||
import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
|
||||
const StyledDiv = styled.div`
|
||||
align-items: center;
|
||||
background: inherit;
|
||||
border: none;
|
||||
border-radius: ${themeCssVariables.border.radius.sm};
|
||||
box-sizing: border-box;
|
||||
color: ${themeCssVariables.font.color.primary};
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
height: 24px;
|
||||
padding: ${themeCssVariables.spacing[0]} 5px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 24px;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
padding: ${themeCssVariables.spacing[0]} 5px;
|
||||
:hover {
|
||||
background: ${themeCssVariables.background.transparent.light};
|
||||
}
|
||||
|
||||
+3
-3
@@ -13,16 +13,16 @@ import { themeCssVariables } from 'twenty-ui/theme-constants';
|
||||
const StyledShowPageRightContainer = styled.div`
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
justify-content: start;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
const StyledContentContainer = styled.div`
|
||||
background: ${themeCssVariables.background.primary};
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
background: ${themeCssVariables.background.primary};
|
||||
padding-bottom: ${themeCssVariables.spacing[16]};
|
||||
`;
|
||||
|
||||
|
||||
+1
-1
@@ -21,8 +21,8 @@ const StyledFooterContainer = styled.div`
|
||||
`;
|
||||
|
||||
const StyledFooterActions = styled.div`
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
display: flex;
|
||||
gap: ${themeCssVariables.spacing[2]};
|
||||
`;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user