@npm_leadtech/legal-lib-components 7.89.9 → 7.89.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/styles.css +0 -16
- package/dist/images/componentsSvg/CloseIcon.js +1 -1
- package/dist/images/componentsSvg/CloseIcon.tsx +6 -3
- package/dist/images/componentsSvg/Done24px.d.ts +1 -1
- package/dist/images/componentsSvg/Done24px.js +1 -1
- package/dist/images/componentsSvg/Done24px.tsx +7 -4
- package/dist/images/componentsSvg/NewRelease24p.d.ts +1 -1
- package/dist/images/componentsSvg/NewRelease24p.js +2 -2
- package/dist/images/componentsSvg/NewRelease24p.tsx +19 -4
- package/dist/images/componentsSvg/Sign24px.d.ts +2 -2
- package/dist/images/componentsSvg/Sign24px.js +1 -1
- package/dist/images/componentsSvg/Sign24px.tsx +6 -7
- package/dist/images/componentsSvg/Time24px.d.ts +1 -1
- package/dist/images/componentsSvg/Time24px.js +2 -2
- package/dist/images/componentsSvg/Time24px.tsx +26 -8
- package/dist/src/components/atoms/Button/Button.js +1 -1
- package/dist/src/components/atoms/Button/Button.scss +0 -19
- package/dist/src/components/atoms/Button/Button.tsx +1 -1
- package/dist/src/components/atoms/Button/ButtonProps.types.d.ts +1 -1
- package/dist/src/components/atoms/Button/ButtonProps.types.ts +0 -1
- package/dist/src/components/atoms/DocumentStatus/DocumentStatus.js +15 -5
- package/dist/src/components/atoms/DocumentStatus/DocumentStatus.styled.js +40 -41
- package/dist/src/components/atoms/DocumentStatus/DocumentStatus.styled.ts +40 -41
- package/dist/src/components/atoms/DocumentStatus/DocumentStatus.tsx +35 -7
- package/dist/src/components/atoms/DocumentStatus/DocumentStatusProps.types.d.ts +6 -4
- package/dist/src/components/atoms/DocumentStatus/DocumentStatusProps.types.ts +6 -5
- package/dist/src/components/atoms/PreFooter/PreFooter.js +3 -3
- package/dist/src/components/atoms/PreFooter/PreFooter.tsx +2 -2
- package/dist/src/components/atoms/PreFooter/PreFooterProps.d.ts +1 -1
- package/dist/src/components/atoms/PreFooter/PreFooterProps.ts +1 -1
- package/dist/src/components/atoms/Tooltip/Tooltip.js +2 -0
- package/dist/src/components/atoms/Tooltip/Tooltip.tsx +2 -0
- package/dist/src/components/molecules/TextInput/tests/Input.test.tsx +18 -29
- package/dist/src/components/molecules/TextInput/tests/TextInput.test.tsx +9 -16
- package/dist/src/components/molecules/TextInput/tests/TextInputMessage.test.tsx +2 -2
- package/dist/src/components/molecules/TextInput/tests/TextInputTooltip.test.tsx +1 -1
- package/dist/src/components/molecules/index.d.ts +0 -1
- package/dist/src/components/molecules/index.js +0 -1
- package/dist/src/components/molecules/index.ts +0 -1
- package/dist/src/globalStyles/variables.scss +31 -12
- package/dist/src/globalStyles/variablesCss.scss +10 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -5
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.d.ts +0 -3
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.js +0 -16
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.styled.d.ts +0 -1
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.styled.js +0 -60
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.styled.ts +0 -61
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.tsx +0 -28
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItemProps.types.d.ts +0 -6
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItemProps.types.js +0 -1
- package/dist/src/components/atoms/SignerStatusItem/SignerStatusItemProps.types.ts +0 -7
- package/dist/src/components/atoms/SignerStatusItem/index.d.ts +0 -2
- package/dist/src/components/atoms/SignerStatusItem/index.js +0 -1
- package/dist/src/components/atoms/SignerStatusItem/index.ts +0 -2
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.d.ts +0 -3
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.js +0 -7
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.styled.d.ts +0 -1
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.styled.js +0 -22
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.styled.ts +0 -23
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.tsx +0 -38
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContentProps.types.d.ts +0 -9
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContentProps.types.js +0 -1
- package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContentProps.types.ts +0 -10
- package/dist/src/components/molecules/SignersStatusTooltipContent/index.d.ts +0 -2
- package/dist/src/components/molecules/SignersStatusTooltipContent/index.js +0 -1
- package/dist/src/components/molecules/SignersStatusTooltipContent/index.ts +0 -2
|
@@ -1,16 +1,44 @@
|
|
|
1
1
|
import React, { type FC } from 'react'
|
|
2
2
|
|
|
3
3
|
import { type DocumentStatusProps } from './DocumentStatusProps.types'
|
|
4
|
-
import { Sign24px } from '../../../../images/componentsSvg/Sign24px'
|
|
5
|
-
|
|
6
4
|
import { DocumentStatusStyled } from './DocumentStatus.styled'
|
|
5
|
+
import { Done24px } from '../../../../images/componentsSvg/Done24px'
|
|
6
|
+
import { NewRelease24p } from '../../../../images/componentsSvg/NewRelease24p'
|
|
7
|
+
import { Sign24px } from '../../../../images/componentsSvg/Sign24px'
|
|
8
|
+
import { Time24px } from '../../../../images/componentsSvg/Time24px'
|
|
7
9
|
|
|
8
|
-
const DocumentStatus: FC<DocumentStatusProps> = ({
|
|
9
|
-
|
|
10
|
+
const DocumentStatus: FC<DocumentStatusProps> = ({
|
|
11
|
+
type,
|
|
12
|
+
statusCompletedText,
|
|
13
|
+
statusNewText,
|
|
14
|
+
statusInProgressText,
|
|
15
|
+
statusSignedText
|
|
16
|
+
}) => {
|
|
17
|
+
if (type === 'complete' || type === 'downloaded' || type === 'pdf_processing' || type === 'pdf_generated') {
|
|
18
|
+
return (
|
|
19
|
+
<DocumentStatusStyled data-testid='document-status' className={'document-status --is-completed'}>
|
|
20
|
+
<Done24px className='icon' /> <span className={'sans-serif --small'}>{statusCompletedText}</span>
|
|
21
|
+
</DocumentStatusStyled>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
if (type === 'new') {
|
|
25
|
+
return (
|
|
26
|
+
<DocumentStatusStyled data-testid='document-status' className={'document-status --is-new'}>
|
|
27
|
+
<NewRelease24p className='icon' /> <span className={'sans-serif --small'}>{statusNewText}</span>
|
|
28
|
+
</DocumentStatusStyled>
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
if (type === 'signed') {
|
|
32
|
+
return (
|
|
33
|
+
<DocumentStatusStyled data-testid='document-status' className={'document-status --is-signed'}>
|
|
34
|
+
<Sign24px className='icon' /> <span className={'sans-serif --small'}>{statusSignedText}</span>
|
|
35
|
+
</DocumentStatusStyled>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
10
38
|
return (
|
|
11
|
-
<DocumentStatusStyled data-testid='document-status' className={
|
|
12
|
-
<
|
|
13
|
-
<span className={'sans-serif --small'}>{
|
|
39
|
+
<DocumentStatusStyled data-testid='document-status' className={'document-status --in-progress'}>
|
|
40
|
+
<Time24px className='icon' />
|
|
41
|
+
<span className={'sans-serif --small'}>{statusInProgressText}</span>
|
|
14
42
|
</DocumentStatusStyled>
|
|
15
43
|
)
|
|
16
44
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export interface DocumentStatusProps {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
type: string;
|
|
3
|
+
statusCompletedText: string;
|
|
4
|
+
statusNewText: string;
|
|
5
|
+
statusInProgressText: string;
|
|
6
|
+
statusAIReviewedText: string;
|
|
7
|
+
statusSignedText: string;
|
|
5
8
|
}
|
|
6
|
-
export type DocumentStatusType = 'default' | 'in-progress' | 'awaiting' | 'no-response' | 'declined' | 'signed';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export interface DocumentStatusProps {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
type: string
|
|
3
|
+
statusCompletedText: string
|
|
4
|
+
statusNewText: string
|
|
5
|
+
statusInProgressText: string
|
|
6
|
+
statusAIReviewedText: string
|
|
7
|
+
statusSignedText: string
|
|
5
8
|
}
|
|
6
|
-
|
|
7
|
-
export type DocumentStatusType = 'default' | 'in-progress' | 'awaiting' | 'no-response' | 'declined' | 'signed'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Button } from '../Button';
|
|
3
3
|
import { PreFooterStyled } from './PreFooter.styled';
|
|
4
|
-
export const PreFooter = ({
|
|
5
|
-
return (_jsx(PreFooterStyled, { children: _jsx("div", { className: 'wrapper', children: _jsxs("div", { className: 'prefooter', children: [
|
|
4
|
+
export const PreFooter = ({ siteTitle, content, ctaLabel, ctaOnClick, ctaDataQa, ctaLink }) => {
|
|
5
|
+
return (_jsx(PreFooterStyled, { children: _jsx("div", { className: 'wrapper', children: _jsxs("div", { className: 'prefooter', children: [_jsx("div", { className: 'serif --hero prefooter__title', children: siteTitle }), _jsx("div", { className: 'prefooter__columns', children: content.map((text, index) => {
|
|
6
6
|
return (_jsx("p", { className: 'prefooter__columns__text', children: text }, index));
|
|
7
7
|
}) }), _jsx(Button, { label: ctaLabel, onClick: ctaOnClick, link: ctaLink, dataQa: ctaDataQa, isExternal: true, hasNoFollow: true })] }) }) }));
|
|
8
8
|
};
|
|
@@ -5,7 +5,7 @@ import { PreFooterProps } from './PreFooterProps'
|
|
|
5
5
|
import { PreFooterStyled } from './PreFooter.styled'
|
|
6
6
|
|
|
7
7
|
export const PreFooter: React.FC<PreFooterProps> = ({
|
|
8
|
-
|
|
8
|
+
siteTitle,
|
|
9
9
|
content,
|
|
10
10
|
ctaLabel,
|
|
11
11
|
ctaOnClick,
|
|
@@ -16,7 +16,7 @@ export const PreFooter: React.FC<PreFooterProps> = ({
|
|
|
16
16
|
<PreFooterStyled>
|
|
17
17
|
<div className='wrapper'>
|
|
18
18
|
<div className='prefooter'>
|
|
19
|
-
<div className='serif --hero prefooter__title'>
|
|
19
|
+
<div className='serif --hero prefooter__title'>{siteTitle}</div>
|
|
20
20
|
<div className='prefooter__columns'>
|
|
21
21
|
{content.map((text, index) => {
|
|
22
22
|
return (
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import Tippy from '@tippyjs/react';
|
|
3
3
|
import classNames from 'classnames';
|
|
4
|
+
// import 'tippy.js/dist/tippy.css'
|
|
5
|
+
// import './Tooltip.scss'
|
|
4
6
|
const Tooltip = ({ children, position = 'top', inverted, trigger = 'hover', ...rest }) => {
|
|
5
7
|
if (children === undefined)
|
|
6
8
|
return null;
|
|
@@ -3,6 +3,8 @@ import Tippy from '@tippyjs/react'
|
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
5
|
import { type TooltipProps } from './TooltipProps.types'
|
|
6
|
+
// import 'tippy.js/dist/tippy.css'
|
|
7
|
+
// import './Tooltip.scss'
|
|
6
8
|
|
|
7
9
|
const Tooltip: FC<TooltipProps> = ({ children, position = 'top', inverted, trigger = 'hover', ...rest }) => {
|
|
8
10
|
if (children === undefined) return null
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { cleanup, fireEvent, render, waitFor } from '@testing-library/react'
|
|
2
|
+
import React from 'react'
|
|
2
3
|
|
|
3
4
|
import { Input } from '../Input'
|
|
4
5
|
|
|
@@ -7,50 +8,38 @@ afterEach(cleanup)
|
|
|
7
8
|
const testName = 'name'
|
|
8
9
|
const testValue = 'value'
|
|
9
10
|
|
|
10
|
-
const defaultInputProps = {
|
|
11
|
-
name: '',
|
|
12
|
-
placeholder: '',
|
|
13
|
-
prefix: '',
|
|
14
|
-
value: '',
|
|
15
|
-
type: 'text' as const,
|
|
16
|
-
disabled: false,
|
|
17
|
-
className: '',
|
|
18
|
-
onChange: jest.fn(),
|
|
19
|
-
onClick: jest.fn(),
|
|
20
|
-
onBlur: jest.fn(),
|
|
21
|
-
onKeyDown: jest.fn(),
|
|
22
|
-
onKeyUp: jest.fn(),
|
|
23
|
-
country: ''
|
|
24
|
-
}
|
|
25
|
-
|
|
26
11
|
describe('will return the component', () => {
|
|
27
12
|
test('without props', () => {
|
|
28
|
-
const { getByRole } = render(<Input
|
|
13
|
+
const { getByRole } = render(<Input />)
|
|
29
14
|
expect(getByRole('textbox')).toBeInTheDocument()
|
|
30
15
|
expect(getByRole('textbox')).toHaveAttribute('type', 'text')
|
|
31
16
|
})
|
|
32
17
|
test('of type password: with the eyeIcon rendered', async () => {
|
|
33
|
-
const { container } = render(<Input
|
|
18
|
+
const { container, getByRole } = render(<Input type='password' value={testValue} />)
|
|
34
19
|
expect(container.firstChild).toHaveAttribute('type', 'password')
|
|
35
20
|
|
|
36
|
-
const
|
|
37
|
-
expect(
|
|
38
|
-
|
|
21
|
+
const img = getByRole('img')
|
|
22
|
+
expect(img).toHaveClass('input-icon-password')
|
|
23
|
+
fireEvent.click(img)
|
|
39
24
|
|
|
40
25
|
await waitFor(() => {
|
|
41
26
|
expect(container.firstChild).toHaveAttribute('type', 'text')
|
|
42
27
|
})
|
|
43
28
|
})
|
|
44
|
-
test('of type password: with the eyeIcon rendered but
|
|
45
|
-
const { container } = render(<Input
|
|
46
|
-
|
|
47
|
-
|
|
29
|
+
test('of type password: with the eyeIcon rendered but is not enabled without value', async () => {
|
|
30
|
+
const { container, getByRole } = render(<Input type='password' />)
|
|
31
|
+
expect(container.firstChild).toHaveAttribute('type', 'password')
|
|
32
|
+
|
|
33
|
+
const img = getByRole('img')
|
|
34
|
+
expect(img).toHaveClass('input-icon-password')
|
|
35
|
+
fireEvent.click(img)
|
|
48
36
|
|
|
49
|
-
|
|
50
|
-
|
|
37
|
+
await waitFor(() => {
|
|
38
|
+
expect(container.firstChild).toHaveAttribute('type', 'password')
|
|
39
|
+
})
|
|
51
40
|
})
|
|
52
41
|
test('of type password: with the eyeIcon rendered', () => {
|
|
53
|
-
const { container } = render(<Input
|
|
42
|
+
const { container } = render(<Input name={testName} />)
|
|
54
43
|
expect(container.firstChild).toHaveAttribute('data-qa', testName)
|
|
55
44
|
})
|
|
56
45
|
})
|
|
@@ -11,50 +11,43 @@ const testErrorMessage = 'Error message'
|
|
|
11
11
|
const testLabel = 'Label'
|
|
12
12
|
const testNotes = 'Notes'
|
|
13
13
|
|
|
14
|
-
const defaultTextInputProps = {
|
|
15
|
-
onChange: (): void => {},
|
|
16
|
-
country: ''
|
|
17
|
-
}
|
|
18
|
-
|
|
19
14
|
describe('will return the component', () => {
|
|
20
15
|
test('without props', () => {
|
|
21
|
-
const { getByRole, container } = render(<TextInput
|
|
16
|
+
const { getByRole, container } = render(<TextInput />)
|
|
22
17
|
expect(container.firstChild).toHaveClass('e-text')
|
|
23
18
|
expect(getByRole('textbox')).toHaveAttribute('type', 'text')
|
|
24
19
|
})
|
|
25
20
|
|
|
26
21
|
test('NumberFormat input if the format prop is passed', () => {
|
|
27
|
-
const { getByRole } = render(<TextInput
|
|
22
|
+
const { getByRole } = render(<TextInput format={testFormat} />)
|
|
28
23
|
expect(getByRole('textbox')).toHaveClass('e-text-input')
|
|
29
24
|
expect(getByRole('textbox')).toHaveAttribute('type', 'text')
|
|
30
25
|
expect(getByRole('textbox')).toHaveAttribute('inputmode', 'numeric')
|
|
31
26
|
})
|
|
32
27
|
|
|
33
28
|
test('with a tooltip', () => {
|
|
34
|
-
const { getByText } = render(<TextInput
|
|
29
|
+
const { getByText } = render(<TextInput tooltip={testTooltip} />)
|
|
35
30
|
expect(getByText(testTooltip)).toHaveClass('tooltip-form')
|
|
36
31
|
})
|
|
37
32
|
|
|
38
33
|
test('with a error message', () => {
|
|
39
|
-
const { getByText } = render(
|
|
40
|
-
<TextInput {...defaultTextInputProps} errorMessage={testErrorMessage} validate={false} />
|
|
41
|
-
)
|
|
34
|
+
const { getByText } = render(<TextInput errorMessage={testErrorMessage} validate={false} />)
|
|
42
35
|
expect(getByText(testErrorMessage)).toHaveClass('e-text__error-label')
|
|
43
36
|
})
|
|
44
37
|
|
|
45
38
|
test('with a label', () => {
|
|
46
|
-
const { getByText } = render(<TextInput
|
|
39
|
+
const { getByText } = render(<TextInput label={testLabel} />)
|
|
47
40
|
expect(getByText(testLabel)).toHaveClass('form-group__label')
|
|
48
41
|
})
|
|
49
42
|
|
|
50
43
|
test('with notes', () => {
|
|
51
|
-
const { getByText } = render(<TextInput
|
|
44
|
+
const { getByText } = render(<TextInput notes={testNotes} />)
|
|
52
45
|
expect(getByText(testNotes)).toHaveClass('e-text__inner__notes')
|
|
53
46
|
})
|
|
54
47
|
|
|
55
48
|
test('should have children', () => {
|
|
56
49
|
const { getByText } = render(
|
|
57
|
-
<TextInput
|
|
50
|
+
<TextInput>
|
|
58
51
|
<span>test children</span>
|
|
59
52
|
</TextInput>
|
|
60
53
|
)
|
|
@@ -62,10 +55,10 @@ describe('will return the component', () => {
|
|
|
62
55
|
})
|
|
63
56
|
|
|
64
57
|
test('should have id in input and for in label', () => {
|
|
65
|
-
const { getByText, getByLabelText } = render(<TextInput
|
|
58
|
+
const { getByText, getByLabelText } = render(<TextInput name='cvv' label='CVV' />)
|
|
66
59
|
|
|
67
60
|
const label = getByText('CVV')
|
|
68
|
-
const input = getByLabelText('CVV')
|
|
61
|
+
const input = getByLabelText('CVV')
|
|
69
62
|
|
|
70
63
|
expect(label).toBeDefined()
|
|
71
64
|
expect(label).toHaveAttribute('for', 'cvv')
|
|
@@ -9,11 +9,11 @@ const testErrorMessage = 'Error message'
|
|
|
9
9
|
|
|
10
10
|
describe('will return null', () => {
|
|
11
11
|
test('if no prop is passed', () => {
|
|
12
|
-
const { container } = render(<TextInputMessage
|
|
12
|
+
const { container } = render(<TextInputMessage />)
|
|
13
13
|
expect(container.firstChild).toBe(null)
|
|
14
14
|
})
|
|
15
15
|
test('if errorMessage is passed and validate is true', () => {
|
|
16
|
-
const { container } = render(<TextInputMessage errorMessage={testErrorMessage}
|
|
16
|
+
const { container } = render(<TextInputMessage errorMessage={testErrorMessage} />)
|
|
17
17
|
expect(container.firstChild).toBe(null)
|
|
18
18
|
})
|
|
19
19
|
})
|
|
@@ -9,7 +9,7 @@ const testTooltip = 'Tooltip'
|
|
|
9
9
|
|
|
10
10
|
describe('will return null', () => {
|
|
11
11
|
test('if no prop is passed', () => {
|
|
12
|
-
const { container } = render(<TextInputTooltip
|
|
12
|
+
const { container } = render(<TextInputTooltip />)
|
|
13
13
|
expect(container.firstChild).toBe(null)
|
|
14
14
|
})
|
|
15
15
|
})
|
|
@@ -43,7 +43,6 @@ export * from './RatafiaResultCardList';
|
|
|
43
43
|
export * from './RatafiaResultTabList';
|
|
44
44
|
export * from './SocialLinks';
|
|
45
45
|
export * from './SubscriptionCard';
|
|
46
|
-
export * from './SignersStatusTooltipContent';
|
|
47
46
|
export * from './Snackbar';
|
|
48
47
|
export * from './SearchBar';
|
|
49
48
|
export * from './StepGetForm';
|
|
@@ -43,7 +43,6 @@ export * from './RatafiaResultCardList';
|
|
|
43
43
|
export * from './RatafiaResultTabList';
|
|
44
44
|
export * from './SocialLinks';
|
|
45
45
|
export * from './SubscriptionCard';
|
|
46
|
-
export * from './SignersStatusTooltipContent';
|
|
47
46
|
export * from './Snackbar';
|
|
48
47
|
export * from './SearchBar';
|
|
49
48
|
export * from './StepGetForm';
|
|
@@ -43,7 +43,6 @@ export * from './RatafiaResultCardList'
|
|
|
43
43
|
export * from './RatafiaResultTabList'
|
|
44
44
|
export * from './SocialLinks'
|
|
45
45
|
export * from './SubscriptionCard'
|
|
46
|
-
export * from './SignersStatusTooltipContent'
|
|
47
46
|
export * from './Snackbar'
|
|
48
47
|
export * from './SearchBar'
|
|
49
48
|
export * from './StepGetForm'
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
@use 'sass:math';
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Figma tokens reference: figma-tokens/
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
// Breakpoints (relate to figma-tokens/grids/Mode 1.tokens.json: grid-xl, grid-l, grid-m, grid-s)
|
|
4
8
|
$xl: 1600px;
|
|
5
9
|
$lg: 1200px;
|
|
6
10
|
$md: 960px;
|
|
@@ -8,48 +12,63 @@ $sm: 720px;
|
|
|
8
12
|
$xs: 575px;
|
|
9
13
|
$xxs: 328px;
|
|
10
14
|
|
|
11
|
-
// Colors
|
|
15
|
+
// Colors — figma-tokens/color (Legalfinity.tokens.json | Lawdistrict.tokens.json)
|
|
16
|
+
// primary.* ↔ primary/50 … primary/900 | secondary.* ↔ secondary/50 … secondary/700
|
|
17
|
+
// neutral.* ↔ neutral/25, 50, 200, 400, 600, 800, 900, white | error.* ↔ error/20, 200, 500
|
|
18
|
+
// others.* ↔ others/black, others/disabled
|
|
12
19
|
$colors: (
|
|
13
20
|
primary: (
|
|
14
21
|
main-light-6: var(--primary-main-light-6),
|
|
22
|
+
// ~ primary/50–100
|
|
15
23
|
main-light-5: var(--primary-main-light-5),
|
|
16
24
|
main-light-4: var(--primary-main-light-4),
|
|
17
25
|
main-light-3: var(--primary-main-light-3),
|
|
18
26
|
main-light-2: var(--primary-main-light-2),
|
|
19
27
|
main-light-1: var(--primary-main-light-1),
|
|
20
28
|
main: var(--primary-main),
|
|
29
|
+
// ~ primary/500
|
|
21
30
|
main-dark-1: var(--primary-main-dark-1),
|
|
22
31
|
main-dark-1-rgb: var(--primary-main-dark-1-rgb),
|
|
23
|
-
main-dark-2: var(--primary-main-dark-2)
|
|
32
|
+
main-dark-2: var(--primary-main-dark-2) // ~ primary/800–900
|
|
24
33
|
),
|
|
25
34
|
secondary: (
|
|
26
35
|
main-light-5: var(--secondary-main-light-5),
|
|
36
|
+
// ~ secondary/50–100
|
|
27
37
|
main-light-4: var(--secondary-main-light-4),
|
|
28
38
|
main-light-3: var(--secondary-main-light-3),
|
|
29
39
|
main-light-2: var(--secondary-main-light-2),
|
|
30
40
|
main-light-1: var(--secondary-main-light-1),
|
|
31
41
|
main: var(--secondary-main),
|
|
42
|
+
// ~ secondary/400–500
|
|
32
43
|
main-dark-1: var(--secondary-main-dark-1),
|
|
33
|
-
main-dark-2: var(--secondary-main-dark-2)
|
|
44
|
+
main-dark-2: var(--secondary-main-dark-2) // ~ secondary/600–700
|
|
34
45
|
),
|
|
35
46
|
neutral: (
|
|
36
47
|
main: var(--neutral-main),
|
|
48
|
+
// ~ neutral/600–800
|
|
37
49
|
neutral-1: var(--neutral-neutral-1),
|
|
50
|
+
// ~ neutral/25
|
|
38
51
|
neutral-2: var(--neutral-neutral-2),
|
|
52
|
+
// ~ neutral/50–200
|
|
39
53
|
neutral-3: var(--neutral-neutral-3),
|
|
40
54
|
neutral-4: var(--neutral-neutral-4),
|
|
55
|
+
// ~ neutral/400
|
|
41
56
|
neutral-5: var(--neutral-neutral-5),
|
|
42
|
-
neutral-6: var(--neutral-neutral-6)
|
|
57
|
+
neutral-6: var(--neutral-neutral-6) // ~ neutral/800–900
|
|
43
58
|
),
|
|
44
59
|
error: (
|
|
45
60
|
main: var(--error-main),
|
|
61
|
+
// ~ error/500
|
|
46
62
|
error-2: var(--error-error-2),
|
|
63
|
+
// ~ error/200
|
|
47
64
|
error-3: var(--error-error-3)
|
|
48
65
|
),
|
|
49
66
|
others: (
|
|
50
67
|
white: var(--others-white),
|
|
68
|
+
// ~ neutral/white
|
|
51
69
|
disabled: var(--others-disabled),
|
|
52
|
-
|
|
70
|
+
// others/disabled
|
|
71
|
+
black: var(--others-black) // others/black
|
|
53
72
|
)
|
|
54
73
|
);
|
|
55
74
|
|
|
@@ -58,19 +77,19 @@ $colors: (
|
|
|
58
77
|
@return $color;
|
|
59
78
|
}
|
|
60
79
|
|
|
61
|
-
// Box shadow
|
|
80
|
+
// Box shadow — figma-tokens/box-shadow/value.tokens.json (small | medium)
|
|
62
81
|
$box-shadow-small: var(--box-shadow-small);
|
|
63
82
|
$box-shadow-medium: var(--box-shadow-medium);
|
|
64
83
|
$box-shadow-menu: var(--box-shadow-menu);
|
|
65
84
|
$box-shadow-tippy-box: var(--box-shadow-tippy-box);
|
|
66
85
|
$box-shadow-container: var(--box-shadow-container);
|
|
67
86
|
|
|
68
|
-
// Fonts
|
|
69
|
-
$font-sans: 'Inter', sans-serif;
|
|
70
|
-
$font-serif: 'Lora', serif;
|
|
87
|
+
// Fonts — figma-tokens/font (font-family/primary, font-family/secondary; Lawdistrict: Inter + Lora)
|
|
88
|
+
$font-sans: 'Inter', sans-serif; // font-family/primary (Lawdistrict)
|
|
89
|
+
$font-serif: 'Lora', serif; // font-family/secondary (Lawdistrict)
|
|
71
90
|
|
|
72
|
-
// Layout
|
|
91
|
+
// Layout (max-width aligns with breakpoints; spacing scale in figma-tokens/border-and-spacing/Mode 1.tokens.json)
|
|
73
92
|
$max-width: $lg;
|
|
74
93
|
|
|
75
|
-
//menu
|
|
94
|
+
// menu
|
|
76
95
|
$menu-height-mobile: 3.25rem;
|
|
@@ -1,20 +1,30 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Figma tokens reference: figma-tokens/
|
|
3
|
+
// =============================================================================
|
|
4
|
+
|
|
1
5
|
html {
|
|
6
|
+
// figma-tokens/font: font-family/primary, font-family/secondary (Lawdistrict: Inter, Lora)
|
|
2
7
|
--font-sans: 'Inter', sans-serif;
|
|
3
8
|
--font-serif: 'Lora', serif;
|
|
4
9
|
|
|
10
|
+
// figma-tokens/border-and-spacing/Mode 1.tokens.json: border-radius/sm (4px), border-radius/md (8px), border-radius/l (16px)
|
|
5
11
|
--s-border-radius: 0.25rem;
|
|
6
12
|
--m-border-radius: 0.5rem;
|
|
7
13
|
--l-border-radius: 1rem;
|
|
8
14
|
|
|
15
|
+
// figma-tokens/box-shadow/value.tokens.json:
|
|
16
|
+
// small, medium (color uses primary dark; menu/tippy/container are variants)
|
|
9
17
|
--box-shadow-small: 0 0.125rem 0.375rem 0 rgba(var(--primary-main-dark-1-rgb), 0.25);
|
|
10
18
|
--box-shadow-medium: 0 0.25rem 0.5rem 0 rgba(var(--primary-main-dark-1-rgb), 0.2);
|
|
11
19
|
--box-shadow-menu: 0 0.25rem 0.5rem -0.5rem rgba(var(--primary-main-dark-1-rgb), 0.2);
|
|
12
20
|
--box-shadow-tippy-box: 0 0.25rem 0.5rem 0.25rem rgba(var(--primary-main-dark-1-rgb), 0.2);
|
|
13
21
|
--box-shadow-container: 0px 2px 6px 0px rgba(var(--primary-main-dark-1-rgb), 0.25);
|
|
14
22
|
|
|
23
|
+
// figma-tokens/border-and-spacing/Mode 1.tokens.json: spacing scale (e.g. spacing/sm 16px → 1rem)
|
|
15
24
|
--global-gap: 1rem;
|
|
16
25
|
}
|
|
17
26
|
|
|
27
|
+
// Theme: Legalfinity — figma-tokens/font/Legalfinity.tokens.json (font-family/primary, secondary → Poppins)
|
|
18
28
|
html[data-theme='primaryblue'] {
|
|
19
29
|
--font-sans: 'Poppins', sans-serif;
|
|
20
30
|
--font-serif: 'Poppins', serif;
|