@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.
Files changed (67) hide show
  1. package/dist/css/styles.css +0 -16
  2. package/dist/images/componentsSvg/CloseIcon.js +1 -1
  3. package/dist/images/componentsSvg/CloseIcon.tsx +6 -3
  4. package/dist/images/componentsSvg/Done24px.d.ts +1 -1
  5. package/dist/images/componentsSvg/Done24px.js +1 -1
  6. package/dist/images/componentsSvg/Done24px.tsx +7 -4
  7. package/dist/images/componentsSvg/NewRelease24p.d.ts +1 -1
  8. package/dist/images/componentsSvg/NewRelease24p.js +2 -2
  9. package/dist/images/componentsSvg/NewRelease24p.tsx +19 -4
  10. package/dist/images/componentsSvg/Sign24px.d.ts +2 -2
  11. package/dist/images/componentsSvg/Sign24px.js +1 -1
  12. package/dist/images/componentsSvg/Sign24px.tsx +6 -7
  13. package/dist/images/componentsSvg/Time24px.d.ts +1 -1
  14. package/dist/images/componentsSvg/Time24px.js +2 -2
  15. package/dist/images/componentsSvg/Time24px.tsx +26 -8
  16. package/dist/src/components/atoms/Button/Button.js +1 -1
  17. package/dist/src/components/atoms/Button/Button.scss +0 -19
  18. package/dist/src/components/atoms/Button/Button.tsx +1 -1
  19. package/dist/src/components/atoms/Button/ButtonProps.types.d.ts +1 -1
  20. package/dist/src/components/atoms/Button/ButtonProps.types.ts +0 -1
  21. package/dist/src/components/atoms/DocumentStatus/DocumentStatus.js +15 -5
  22. package/dist/src/components/atoms/DocumentStatus/DocumentStatus.styled.js +40 -41
  23. package/dist/src/components/atoms/DocumentStatus/DocumentStatus.styled.ts +40 -41
  24. package/dist/src/components/atoms/DocumentStatus/DocumentStatus.tsx +35 -7
  25. package/dist/src/components/atoms/DocumentStatus/DocumentStatusProps.types.d.ts +6 -4
  26. package/dist/src/components/atoms/DocumentStatus/DocumentStatusProps.types.ts +6 -5
  27. package/dist/src/components/atoms/PreFooter/PreFooter.js +3 -3
  28. package/dist/src/components/atoms/PreFooter/PreFooter.tsx +2 -2
  29. package/dist/src/components/atoms/PreFooter/PreFooterProps.d.ts +1 -1
  30. package/dist/src/components/atoms/PreFooter/PreFooterProps.ts +1 -1
  31. package/dist/src/components/atoms/Tooltip/Tooltip.js +2 -0
  32. package/dist/src/components/atoms/Tooltip/Tooltip.tsx +2 -0
  33. package/dist/src/components/molecules/TextInput/tests/Input.test.tsx +18 -29
  34. package/dist/src/components/molecules/TextInput/tests/TextInput.test.tsx +9 -16
  35. package/dist/src/components/molecules/TextInput/tests/TextInputMessage.test.tsx +2 -2
  36. package/dist/src/components/molecules/TextInput/tests/TextInputTooltip.test.tsx +1 -1
  37. package/dist/src/components/molecules/index.d.ts +0 -1
  38. package/dist/src/components/molecules/index.js +0 -1
  39. package/dist/src/components/molecules/index.ts +0 -1
  40. package/dist/src/globalStyles/variables.scss +31 -12
  41. package/dist/src/globalStyles/variablesCss.scss +10 -0
  42. package/dist/tsconfig.build.tsbuildinfo +1 -1
  43. package/package.json +1 -5
  44. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.d.ts +0 -3
  45. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.js +0 -16
  46. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.styled.d.ts +0 -1
  47. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.styled.js +0 -60
  48. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.styled.ts +0 -61
  49. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItem.tsx +0 -28
  50. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItemProps.types.d.ts +0 -6
  51. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItemProps.types.js +0 -1
  52. package/dist/src/components/atoms/SignerStatusItem/SignerStatusItemProps.types.ts +0 -7
  53. package/dist/src/components/atoms/SignerStatusItem/index.d.ts +0 -2
  54. package/dist/src/components/atoms/SignerStatusItem/index.js +0 -1
  55. package/dist/src/components/atoms/SignerStatusItem/index.ts +0 -2
  56. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.d.ts +0 -3
  57. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.js +0 -7
  58. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.styled.d.ts +0 -1
  59. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.styled.js +0 -22
  60. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.styled.ts +0 -23
  61. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContent.tsx +0 -38
  62. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContentProps.types.d.ts +0 -9
  63. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContentProps.types.js +0 -1
  64. package/dist/src/components/molecules/SignersStatusTooltipContent/SignersStatusTooltipContentProps.types.ts +0 -10
  65. package/dist/src/components/molecules/SignersStatusTooltipContent/index.d.ts +0 -2
  66. package/dist/src/components/molecules/SignersStatusTooltipContent/index.js +0 -1
  67. 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> = ({ label, type = 'default', givenClass = '' }) => {
9
- if (!label) return null
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={`document-status ${type} ${givenClass}`}>
12
- <Sign24px className='document-status__icon' />
13
- <span className={'sans-serif --small'}>{label}</span>
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
- label: string;
3
- type?: DocumentStatusType;
4
- givenClass?: string;
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
- label: string
3
- type?: DocumentStatusType
4
- givenClass?: string
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 { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
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 = ({ siteName, content, ctaLabel, ctaOnClick, ctaDataQa, ctaLink }) => {
5
- return (_jsx(PreFooterStyled, { children: _jsx("div", { className: 'wrapper', children: _jsxs("div", { className: 'prefooter', children: [_jsxs("div", { className: 'serif --hero prefooter__title', children: ["Try ", siteName, " Now"] }), _jsx("div", { className: 'prefooter__columns', children: content.map((text, index) => {
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
- siteName,
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'>Try {siteName} Now</div>
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,5 +1,5 @@
1
1
  export interface PreFooterProps {
2
- siteName: string;
2
+ siteTitle: string;
3
3
  content: string[];
4
4
  ctaLabel: string;
5
5
  ctaOnClick: () => void;
@@ -1,5 +1,5 @@
1
1
  export interface PreFooterProps {
2
- siteName: string
2
+ siteTitle: string
3
3
  content: string[]
4
4
  ctaLabel: string
5
5
  ctaOnClick: () => void
@@ -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 React, { cleanup, fireEvent, render, waitFor } from '@testing-library/react'
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 {...defaultInputProps} />)
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 {...defaultInputProps} type='password' value={testValue} />)
18
+ const { container, getByRole } = render(<Input type='password' value={testValue} />)
34
19
  expect(container.firstChild).toHaveAttribute('type', 'password')
35
20
 
36
- const toggleButton = container.querySelector('.input-icon-password-button')
37
- expect(toggleButton).toBeTruthy()
38
- if (toggleButton) fireEvent.click(toggleButton)
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 without value shows password type initially', () => {
45
- const { container } = render(<Input {...defaultInputProps} type='password' />)
46
- const input = container.querySelector('input')
47
- expect(input).toHaveAttribute('type', 'password')
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
- const toggleButton = container.querySelector('.input-icon-password-button')
50
- expect(toggleButton).toBeTruthy()
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 {...defaultInputProps} name={testName} />)
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 {...defaultTextInputProps} />)
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 {...defaultTextInputProps} format={testFormat} />)
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 {...defaultTextInputProps} tooltip={testTooltip} />)
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 {...defaultTextInputProps} label={testLabel} />)
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 {...defaultTextInputProps} notes={testNotes} />)
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 {...defaultTextInputProps}>
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 {...defaultTextInputProps} name='cvv' label='CVV' />)
58
+ const { getByText, getByLabelText } = render(<TextInput name='cvv' label='CVV' />)
66
59
 
67
60
  const label = getByText('CVV')
68
- const input = getByLabelText('CVV') as HTMLInputElement
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 errorMessage='' validate={false} />)
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} validate={true} />)
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 tooltip='' />)
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
- // Breakpoints
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
- black: var(--others-black)
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;