@leabankab/component-library 7.3.0 → 8.1.0

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 (193) hide show
  1. package/CHANGELOG.md +745 -0
  2. package/README.md +2 -5
  3. package/dist/component-library.es.js +2948 -5676
  4. package/dist/component-library.es.js.map +1 -1
  5. package/dist/component-library.umd.js +2 -28
  6. package/dist/component-library.umd.js.map +1 -1
  7. package/dist/components/animations/icons/status-icon.d.ts +4 -0
  8. package/dist/components/animations/illustrations/check-animation.d.ts +8 -0
  9. package/dist/components/animations/illustrations/pulse-animation.d.ts +5 -1
  10. package/dist/components/animations/illustrations/status-animation.d.ts +8 -1
  11. package/dist/components/animations/shared.d.ts +6 -32
  12. package/dist/components/animations/spinner.d.ts +18 -0
  13. package/dist/components/animations/use-animation-labels.d.ts +0 -5
  14. package/dist/components/buttons/action-button.d.ts +8 -10
  15. package/dist/components/buttons/button-base.d.ts +26 -12
  16. package/dist/components/buttons/button.d.ts +2 -2
  17. package/dist/components/buttons/close-button.d.ts +1 -1
  18. package/dist/components/buttons/icon-button.d.ts +1 -13
  19. package/dist/components/buttons/skip-link.d.ts +21 -4
  20. package/dist/components/color-roles.d.ts +8 -0
  21. package/dist/components/data-display/card.d.ts +54 -4
  22. package/dist/components/data-display/chip.d.ts +50 -8
  23. package/dist/components/data-display/data-field.d.ts +15 -4
  24. package/dist/components/data-display/tooltip.d.ts +74 -22
  25. package/dist/components/feedback/alert-parts.d.ts +10 -9
  26. package/dist/components/feedback/alert.d.ts +1 -1
  27. package/dist/components/feedback/simple-dialog.d.ts +1 -1
  28. package/dist/components/form/amount-slider.d.ts +68 -0
  29. package/dist/components/form/autocomplete.d.ts +56 -59
  30. package/dist/components/form/checkbox-box.d.ts +11 -0
  31. package/dist/components/form/checkbox.d.ts +67 -7
  32. package/dist/components/form/combo-field.d.ts +68 -0
  33. package/dist/components/form/email-input.d.ts +28 -26
  34. package/dist/components/form/field-parts.d.ts +50 -0
  35. package/dist/components/form/index.d.ts +3 -9
  36. package/dist/components/form/input.d.ts +57 -13
  37. package/dist/components/form/multi-select.d.ts +12 -14
  38. package/dist/components/form/number-input-unit.d.ts +28 -0
  39. package/dist/components/form/number-input.d.ts +46 -18
  40. package/dist/components/form/phone-number-input/phone-number-input.d.ts +44 -14
  41. package/dist/components/form/radio-card.d.ts +94 -43
  42. package/dist/components/form/radio-circle.d.ts +14 -13
  43. package/dist/components/form/radio-group-root.d.ts +88 -0
  44. package/dist/components/form/radio.d.ts +68 -24
  45. package/dist/components/form/select-field.d.ts +78 -0
  46. package/dist/components/form/select.d.ts +30 -42
  47. package/dist/components/form/slider-parts.d.ts +34 -0
  48. package/dist/components/form/slider.d.ts +40 -16
  49. package/dist/components/form/use-autocomplete-labels.d.ts +3 -16
  50. package/dist/components/form/use-blur-outside.d.ts +7 -0
  51. package/dist/components/form/use-focus-target-ref.d.ts +11 -0
  52. package/dist/components/form/use-tooltip-trigger-labels.d.ts +5 -0
  53. package/dist/components/index.d.ts +0 -1
  54. package/dist/components/navigation/form-stepper.d.ts +1 -1
  55. package/dist/components/navigation/index.d.ts +1 -1
  56. package/dist/components/navigation/linear-form-stepper.d.ts +1 -1
  57. package/dist/components/navigation/progress-circle.d.ts +14 -8
  58. package/dist/components/navigation/tabs.d.ts +37 -34
  59. package/dist/components/navigation/use-stepper-labels.d.ts +1 -1
  60. package/dist/components/typography/link.d.ts +25 -16
  61. package/dist/components/typography/lists.d.ts +20 -23
  62. package/dist/components/typography/text.d.ts +46 -10
  63. package/dist/components/ui/app-header.d.ts +9 -1
  64. package/dist/cookie-consent/react.d.ts +0 -1
  65. package/dist/cookie-consent-react.cjs +1 -1
  66. package/dist/cookie-consent-react.cjs.map +1 -1
  67. package/dist/cookie-consent-react.mjs +106 -96
  68. package/dist/cookie-consent-react.mjs.map +1 -1
  69. package/dist/cookie-consent.css +1 -1
  70. package/dist/date-picker/datepicker.d.ts +140 -0
  71. package/dist/date-picker/index.d.ts +18 -0
  72. package/dist/date-picker/theme/field-base.d.ts +23 -0
  73. package/dist/date-picker/theme/form-control.theme.d.ts +7 -0
  74. package/dist/date-picker/theme/index.d.ts +12 -0
  75. package/dist/date-picker/theme/input.theme.d.ts +6 -0
  76. package/dist/{components/form/datepicker → date-picker}/use-view-toggle-labels.d.ts +1 -1
  77. package/dist/date-picker.cjs +2 -0
  78. package/dist/date-picker.cjs.map +1 -0
  79. package/dist/date-picker.mjs +1012 -0
  80. package/dist/date-picker.mjs.map +1 -0
  81. package/dist/{components/dev-panel → dev-panel}/dev-panel-payload.d.ts +1 -1
  82. package/dist/{components/dev-panel → dev-panel}/dev-panel-status.d.ts +2 -2
  83. package/dist/{components/dev-panel → dev-panel}/dev-panel-steps.d.ts +2 -1
  84. package/dist/dev-panel/dev-panel.d.ts +118 -0
  85. package/dist/dev-panel/index.d.ts +10 -0
  86. package/dist/{components/dev-panel → dev-panel}/json-highlight.d.ts +2 -2
  87. package/dist/dev-panel/parts.d.ts +9 -0
  88. package/dist/{components/dev-panel → dev-panel}/segmented-control.d.ts +5 -4
  89. package/dist/{components/dev-panel → dev-panel}/use-dev-panel-labels.d.ts +1 -1
  90. package/dist/{components/dev-panel → dev-panel}/use-roving-radio.d.ts +2 -2
  91. package/dist/dev-panel.cjs +3 -0
  92. package/dist/dev-panel.cjs.map +1 -0
  93. package/dist/dev-panel.css +1 -0
  94. package/dist/dev-panel.mjs +919 -0
  95. package/dist/dev-panel.mjs.map +1 -0
  96. package/dist/fonts/ClashGrotesk-Variable.woff2 +0 -0
  97. package/dist/index.css +1 -1
  98. package/dist/index.d.ts +1 -3
  99. package/dist/provider/lea-provider.d.ts +4 -7
  100. package/dist/react-hook-form/form-field.d.ts +76 -0
  101. package/dist/react-hook-form/index.d.ts +1 -0
  102. package/dist/react-hook-form.cjs +2 -0
  103. package/dist/react-hook-form.cjs.map +1 -0
  104. package/dist/react-hook-form.mjs +33 -0
  105. package/dist/react-hook-form.mjs.map +1 -0
  106. package/dist/tailwind.css +103 -17
  107. package/dist/theme/index.d.ts +0 -4
  108. package/dist/theme/token-types.d.ts +15 -3
  109. package/dist/theme/tokens/colors.d.ts +13 -0
  110. package/dist/theme/tokens/font-family.d.ts +9 -0
  111. package/dist/theme/tokens/font-sizes.d.ts +8 -0
  112. package/dist/theme/tokens/index.d.ts +4 -1
  113. package/dist/theme/tokens/line-heights.d.ts +11 -0
  114. package/dist/theme/tokens/spacing.d.ts +6 -0
  115. package/dist/theme/tokens/text-styles.d.ts +61 -0
  116. package/dist/theme/tokens/type-scale.d.ts +21 -0
  117. package/dist/theme/types.d.ts +19 -30
  118. package/dist/validation/email.d.ts +18 -0
  119. package/dist/validation/mobile-patterns.d.ts +10 -0
  120. package/dist/validation/national-id.d.ts +26 -0
  121. package/dist/validation/phone.d.ts +30 -0
  122. package/package.json +45 -6
  123. package/dist/components/dev-panel/dev-panel.d.ts +0 -61
  124. package/dist/components/dev-panel/index.d.ts +0 -9
  125. package/dist/components/form/datepicker/datepicker.d.ts +0 -99
  126. package/dist/components/form/datepicker/index.d.ts +0 -1
  127. package/dist/components/form/fields/autocomplete-field.d.ts +0 -17
  128. package/dist/components/form/fields/boolean-radio-field.d.ts +0 -3
  129. package/dist/components/form/fields/checkbox-field.d.ts +0 -12
  130. package/dist/components/form/fields/datepicker-field.d.ts +0 -9
  131. package/dist/components/form/fields/email-field.d.ts +0 -10
  132. package/dist/components/form/fields/field-types.d.ts +0 -18
  133. package/dist/components/form/fields/index.d.ts +0 -14
  134. package/dist/components/form/fields/input-field.d.ts +0 -9
  135. package/dist/components/form/fields/multi-select-field.d.ts +0 -9
  136. package/dist/components/form/fields/number-field.d.ts +0 -10
  137. package/dist/components/form/fields/phone-number-field.d.ts +0 -11
  138. package/dist/components/form/fields/radio-card-field.d.ts +0 -22
  139. package/dist/components/form/fields/radio-field.d.ts +0 -16
  140. package/dist/components/form/fields/select-field.d.ts +0 -9
  141. package/dist/components/form/fields/use-field-control.d.ts +0 -6
  142. package/dist/components/form/fields/use-tooltip-trigger-labels.d.ts +0 -5
  143. package/dist/components/form/form-control/form-control-context.d.ts +0 -35
  144. package/dist/components/form/form-control/form-control-label.d.ts +0 -1
  145. package/dist/components/form/form-control/form-control.d.ts +0 -13
  146. package/dist/components/form/form-control/form-helper-text.d.ts +0 -9
  147. package/dist/components/form/form-control/form-label.d.ts +0 -9
  148. package/dist/components/form/form-control/index.d.ts +0 -5
  149. package/dist/components/form/input-label.d.ts +0 -9
  150. package/dist/theme/components/accordion.theme.d.ts +0 -7
  151. package/dist/theme/components/action-button.theme.d.ts +0 -45
  152. package/dist/theme/components/alert.theme.d.ts +0 -2
  153. package/dist/theme/components/autocomplete.theme.d.ts +0 -2
  154. package/dist/theme/components/baseline-css.d.ts +0 -2
  155. package/dist/theme/components/button.theme.d.ts +0 -2
  156. package/dist/theme/components/card.theme.d.ts +0 -2
  157. package/dist/theme/components/checkbox.theme.d.ts +0 -2
  158. package/dist/theme/components/chip.theme.d.ts +0 -2
  159. package/dist/theme/components/dev-panel.theme.d.ts +0 -95
  160. package/dist/theme/components/dialog.theme.d.ts +0 -2
  161. package/dist/theme/components/drawer.theme.d.ts +0 -4
  162. package/dist/theme/components/field-base.d.ts +0 -31
  163. package/dist/theme/components/form-control-label.theme.d.ts +0 -2
  164. package/dist/theme/components/form-control.theme.d.ts +0 -2
  165. package/dist/theme/components/index.d.ts +0 -2
  166. package/dist/theme/components/input.theme.d.ts +0 -3
  167. package/dist/theme/components/link.theme.d.ts +0 -2
  168. package/dist/theme/components/menu-item.theme.d.ts +0 -2
  169. package/dist/theme/components/number-input.theme.d.ts +0 -23
  170. package/dist/theme/components/phone-number-input.theme.d.ts +0 -43
  171. package/dist/theme/components/radio.theme.d.ts +0 -2
  172. package/dist/theme/components/select.theme.d.ts +0 -2
  173. package/dist/theme/components/slider.theme.d.ts +0 -2
  174. package/dist/theme/components/tabs.theme.d.ts +0 -34
  175. package/dist/theme/components/tooltip.theme.d.ts +0 -110
  176. package/dist/theme/components/typography.theme.d.ts +0 -2
  177. package/dist/theme/mui-augmentation.d.ts +0 -147
  178. package/dist/theme/sx-config.d.ts +0 -10
  179. /package/dist/{components/form/datepicker → date-picker}/calendar-header.d.ts +0 -0
  180. /package/dist/{components/form/datepicker → date-picker}/drawer-toolbar.d.ts +0 -0
  181. /package/dist/{theme/components → date-picker/theme}/date-picker.theme.d.ts +0 -0
  182. /package/dist/{theme/components → date-picker/theme}/icon-button.theme.d.ts +0 -0
  183. /package/dist/{theme/tokens → date-picker/theme}/typography.d.ts +0 -0
  184. /package/dist/{components/form/datepicker → date-picker}/use-calendar-header-labels.d.ts +0 -0
  185. /package/dist/{components/form/datepicker → date-picker}/use-datepicker-title-labels.d.ts +0 -0
  186. /package/dist/{components/form/datepicker → date-picker}/view-renderers.d.ts +0 -0
  187. /package/dist/{components/form/datepicker → date-picker}/view-toggle.d.ts +0 -0
  188. /package/dist/{components/dev-panel → dev-panel}/dev-panel-country.d.ts +0 -0
  189. /package/dist/{components/dev-panel → dev-panel}/dev-panel-flow.d.ts +0 -0
  190. /package/dist/{components/dev-panel → dev-panel}/dev-panel-footer.d.ts +0 -0
  191. /package/dist/{components/dev-panel → dev-panel}/dev-panel-step-state.d.ts +0 -0
  192. /package/dist/{components/dev-panel → dev-panel}/dev-panel-variant.d.ts +0 -0
  193. /package/dist/{components/dev-panel → dev-panel}/use-copy.d.ts +0 -0
@@ -1,5 +0,0 @@
1
- export * from './form-control';
2
- export * from './form-control-context';
3
- export * from './form-control-label';
4
- export * from './form-label';
5
- export * from './form-helper-text';
@@ -1,9 +0,0 @@
1
- import { InputLabelProps } from '@mui/material';
2
- export type { InputLabelProps };
3
- /**
4
- * Floating label for a field. When rendered inside our `FormControl` it links
5
- * itself to the control automatically via `htmlFor` / `id`, so the consumer
6
- * never has to wire them. MUI appends the required asterisk and reads focus /
7
- * error / required state from the surrounding `FormControl` on its own.
8
- */
9
- export declare const InputLabel: (props: InputLabelProps) => import("react").JSX.Element;
@@ -1,7 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- /**
3
- * Lea styling for MUI Accordion. Importing `Accordion` / `AccordionSummary` /
4
- * `AccordionDetails` from `@mui/material` (with the app `ThemeProvider` + this theme)
5
- * applies these defaults and style overrides.
6
- */
7
- export declare const accordionTheme: Pick<Components<Theme>, "MuiAccordion" | "MuiAccordionSummary" | "MuiAccordionDetails">;
@@ -1,45 +0,0 @@
1
- export declare const actionButtonVariant: {
2
- props: {
3
- variant: "action";
4
- };
5
- style: {
6
- color: string;
7
- backgroundColor: string;
8
- outline: string;
9
- border: string;
10
- borderRadius: 100;
11
- paddingInlineStart: string;
12
- paddingInlineEnd: string;
13
- paddingBlock: string;
14
- fontSize: "1.25rem";
15
- textTransform: "uppercase";
16
- fontWeight: 700;
17
- svg: {
18
- display: string;
19
- width: number;
20
- height: number;
21
- borderRadius: 100;
22
- marginInlineStart: string;
23
- backgroundColor: string;
24
- color: string;
25
- transition: string;
26
- };
27
- "&:hover": {
28
- svg: {
29
- transform: string;
30
- backgroundColor: string;
31
- };
32
- };
33
- "& .MuiTouchRipple-root": {
34
- color: string;
35
- };
36
- "&:active": {
37
- outline: string;
38
- color: string;
39
- };
40
- "&:focus-visible": {
41
- outline: string;
42
- outlineColor: string;
43
- };
44
- };
45
- };
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const alertTheme: Components<Theme>["MuiAlert"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const autocompleteTheme: Components<Theme>["MuiAutocomplete"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const baselineCss: Components<Theme>["MuiCssBaseline"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const buttonTheme: Components<Theme>["MuiButton"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const cardTheme: Components<Theme>["MuiCard"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const checkboxTheme: Components<Theme>["MuiCheckbox"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const chipTheme: Components<Theme>["MuiChip"];
@@ -1,95 +0,0 @@
1
- import { SxProps, Theme } from '@mui/material';
2
- /** The outer card: a rounded, cream surface with a subtle border. */
3
- export declare const devPanelSx: SxProps<Theme>;
4
- /** The chrome strip: title + status dot, an optional badge, and the minimise control. */
5
- export declare const devPanelHeaderSx: SxProps<Theme>;
6
- export declare const devPanelHeaderTitleSx: SxProps<Theme>;
7
- /** The small "live" indicator dot beside the panel title. */
8
- export declare const devPanelHeaderDotSx: SxProps<Theme>;
9
- /** The "MOCK" / "live" pill next to the title. */
10
- export declare const devPanelBadgeSx: SxProps<Theme>;
11
- /** The scrollable body that holds the sections. */
12
- export declare const devPanelBodySx: SxProps<Theme>;
13
- /** A single labelled section (COUNTRY, VARIANT, …). */
14
- export declare const devPanelSectionSx: SxProps<Theme>;
15
- /**
16
- * The uppercase section heading. Uses `neutral[600]` (not `text.subtle`) so the
17
- * small label clears WCAG AA (4.5:1) against the cream body — matching the
18
- * `Tabs` track decision.
19
- */
20
- export declare const devPanelSectionLabelSx: SxProps<Theme>;
21
- /** Optional trailing meta on a section heading row (e.g. the `6 / 10` count). */
22
- export declare const devPanelSectionHeaderRowSx: SxProps<Theme>;
23
- export declare const devPanelSectionMetaSx: SxProps<Theme>;
24
- export declare const devPanelFlowSx: SxProps<Theme>;
25
- export declare const devPanelFlowTextSx: SxProps<Theme>;
26
- export declare const devPanelFlowLabelSx: SxProps<Theme>;
27
- /** The beige track that holds the segmented options. */
28
- export declare const segmentedGroupSx: SxProps<Theme>;
29
- /**
30
- * The "pill" variant used by Country/Variant: options grow to fill the track
31
- * and the selected one flips to a white pill.
32
- */
33
- export declare const segmentedOptionSx: (selected: boolean) => SxProps<Theme>;
34
- /**
35
- * The "chip" variant used by Step state: pills that hug their content and carry
36
- * a small leading dot.
37
- */
38
- export declare const segmentedChipGroupSx: SxProps<Theme>;
39
- export declare const segmentedChipSx: (selected: boolean) => SxProps<Theme>;
40
- export declare const segmentedChipDotSx: (selected: boolean) => SxProps<Theme>;
41
- export declare const stepGridSx: (columns: number) => SxProps<Theme>;
42
- export declare const stepButtonSx: SxProps<Theme>;
43
- export type StepCircleState = "complete" | "current" | "upcoming";
44
- export declare const stepCircleSx: (state: StepCircleState) => SxProps<Theme>;
45
- /** The small warning dot on a step that needs attention. */
46
- export declare const stepFlagDotSx: SxProps<Theme>;
47
- export declare const stepLabelSx: (isCurrent: boolean) => SxProps<Theme>;
48
- export declare const statusGridSx: SxProps<Theme>;
49
- export type DevPanelStatusColor = "warning" | "success" | "info" | "error" | "neutral";
50
- export declare const statusColorValue: Record<DevPanelStatusColor, string>;
51
- export declare const statusCardSx: (color: DevPanelStatusColor, selected: boolean) => SxProps<Theme>;
52
- export declare const statusDotSx: (color: DevPanelStatusColor) => SxProps<Theme>;
53
- export declare const payloadToggleSx: SxProps<Theme>;
54
- export declare const payloadToggleLabelSx: SxProps<Theme>;
55
- export declare const payloadChevronSx: (expanded: boolean) => SxProps<Theme>;
56
- export declare const payloadPanelSx: SxProps<Theme>;
57
- export declare const payloadPanelHeaderSx: SxProps<Theme>;
58
- export declare const payloadPreSx: SxProps<Theme>;
59
- /**
60
- * The chevron on the side toggle. It points left, toward where the flyout
61
- * appears beside the panel; the open state is conveyed via `aria-expanded`.
62
- */
63
- export declare const payloadSideChevronSx: SxProps<Theme>;
64
- /**
65
- * The floating dark payload panel that opens beside the `DevPanel`. It is
66
- * portalled to the document body and positioned (top/left/width/height) inline
67
- * from the anchored panel's rect, so it can sit outside the panel's clipped
68
- * bounds. `zIndex` matches MUI's `modal` layer (1300).
69
- */
70
- export declare const payloadFlyoutSx: SxProps<Theme>;
71
- export declare const payloadFlyoutHeaderSx: SxProps<Theme>;
72
- export declare const payloadFlyoutTitleSx: SxProps<Theme>;
73
- /** The small pill (e.g. "live") in the flyout header, tuned for the dark panel. */
74
- export declare const payloadFlyoutBadgeSx: SxProps<Theme>;
75
- /** The scrollable JSON body: fills the remaining flyout height. */
76
- export declare const payloadFlyoutBodySx: SxProps<Theme>;
77
- export declare const payloadFlyoutFooterSx: SxProps<Theme>;
78
- /** The full-width "Copy JSON" action at the foot of the flyout. */
79
- export declare const payloadFlyoutCopyButtonSx: SxProps<Theme>;
80
- /** The kinds of token the JSON highlighter distinguishes. */
81
- export type JsonTokenType = "key" | "string" | "number" | "boolean" | "null" | "punctuation";
82
- /**
83
- * Colours for the syntax-highlighted payload, tuned for the dark
84
- * (`neutral[950]`) panel. Every shade clears WCAG AA (4.5:1) against that
85
- * background, so highlighting never trades contrast for colour.
86
- */
87
- export declare const payloadTokenColors: Record<JsonTokenType, string>;
88
- /**
89
- * The action row. Negative horizontal / bottom margins cancel the body padding
90
- * (`devPanelBodySx`, `padding: 2.5`) so — when placed as the last child — the
91
- * footer sits flush with the panel edges under a full-width divider.
92
- */
93
- export declare const devPanelFooterSx: SxProps<Theme>;
94
- /** A visually-hidden live region for copy confirmations. */
95
- export declare const visuallyHiddenSx: SxProps<Theme>;
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const dialogTheme: Pick<Components<Theme>, "MuiDialog" | "MuiDialogTitle" | "MuiDialogContent">;
@@ -1,4 +0,0 @@
1
- import { Components, SxProps, Theme } from '@mui/material';
2
- export declare const drawerTheme: Pick<Components<Theme>, "MuiDrawer">;
3
- export declare const drawerHeaderSx: SxProps<Theme>;
4
- export declare const drawerBodySx: SxProps<Theme>;
@@ -1,31 +0,0 @@
1
- import { CSSObject } from '@mui/material';
2
- /**
3
- * Shared building blocks for the outlined form fields (text `Input`, `Select`,
4
- * `Autocomplete` and the date-picker trigger). Keeping height, padding, the
5
- * collapsed notch and the border-state colours in one place means editing a
6
- * field's look here updates every input at once; component-specific styling
7
- * stays in each component's own theme file.
8
- */
9
- export declare const FIELD_HEIGHT = "54px";
10
- export declare const fieldPadding: {
11
- readonly paddingInlineStart: "0.9rem";
12
- readonly paddingBlockStart: "1.5rem";
13
- readonly paddingBlockEnd: "0.5rem";
14
- };
15
- /**
16
- * We draw the field border ourselves, so MUI's notch and its legend are
17
- * collapsed. Parameterised by the notched-outline class because
18
- * `OutlinedInput` and `PickersOutlinedInput` name that element differently.
19
- */
20
- export declare const collapsedNotch: (outlineClass: string) => CSSObject;
21
- /**
22
- * Hover / focus / error border treatment shared by every outlined field.
23
- * Parameterised by the notched-outline class for the same reason as
24
- * `collapsedNotch`.
25
- *
26
- * Focus is keyed off `:focus-within` rather than `.Mui-focused`: the latter is
27
- * not applied to the `OutlinedInput` root that `Autocomplete` injects its input
28
- * into, so `:focus-within` is the only selector that lights up the focus border
29
- * across every field consistently.
30
- */
31
- export declare const fieldBorderStates: (outlineClass: string) => CSSObject;
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const formControlLabelTheme: Components<Theme>["MuiFormControlLabel"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const formControlTheme: Components<Theme>["MuiFormControl"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const components: Components<Theme>;
@@ -1,3 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const inputTheme: Components<Theme>["MuiOutlinedInput"];
3
- export declare const inputLabelTheme: Components<Theme>["MuiInputLabel"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const linkTheme: Components<Theme>["MuiLink"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const menuItemTheme: Components<Theme>["MuiMenuItem"];
@@ -1,23 +0,0 @@
1
- import { SxProps, Theme } from '@mui/material';
2
- /**
3
- * Styling for the `NumberInput` stepper, trailing unit and leading icon. These
4
- * are exported as `sx` objects the component applies (there is no dedicated MUI
5
- * slot to override globally), keeping the component lean while the visual tokens
6
- * live here, mirroring the shared building blocks in `field-base`.
7
- */
8
- /** Applied to the `OutlinedInput`: drop the trailing padding, lay the parts in a row. */
9
- export declare const numberInputRootSx: SxProps<Theme>;
10
- /** Root style when the label is rendered outside the field. */
11
- export declare const numberInputExternalLabelRootSx: SxProps<Theme>;
12
- /** The stacked +/- buttons. Kept as a row of circular icon buttons. */
13
- export declare const numberInputStepperSx: SxProps<Theme>;
14
- /**
15
- * End adornment wrapper when a `unit` is present — lays the unit (and, if shown,
16
- * the steppers) in a row that stretches to the field's full height so the unit
17
- * divider runs edge to edge.
18
- */
19
- export declare const numberInputEndSx: SxProps<Theme>;
20
- /** Trailing unit text, separated from the value by a light divider. */
21
- export declare const numberInputUnitSx: SxProps<Theme>;
22
- /** Leading decorative icon. */
23
- export declare const numberInputStartSx: SxProps<Theme>;
@@ -1,43 +0,0 @@
1
- import { SxProps, Theme } from '@mui/material';
2
- /**
3
- * Styling for `PhoneNumberInput`. The label floats on the field's top border,
4
- * with the value and the leading country trigger vertically centred. The country
5
- * trigger opens a searchable popover (a MUI `Autocomplete` rendered inline).
6
- * These `sx` objects keep the component file lean, mirroring `number-input.theme`.
7
- */
8
- /** Applied to the outer `OutlinedInput`: centre the row and give the value room. */
9
- export declare const phoneNumberInputRootSx: SxProps<Theme>;
10
- /**
11
- * Applied to the standalone `FormControl`. Pins the floated (shrunk) label to
12
- * the top-left of the border instead of the generic start-adornment offset
13
- * (`translate(2.4rem, …)` from `formControlTheme`), which would land it over the
14
- * country flag. Matches that rule's specificity so this wins by source order.
15
- */
16
- export declare const phoneNumberFormControlSx: SxProps<Theme>;
17
- /** The compact country trigger button embedded in the leading adornment. */
18
- export declare const countryTriggerSx: SxProps<Theme>;
19
- /** The flag glyph shown in the trigger and the option rows. */
20
- export declare const countryFlagSx: SxProps<Theme>;
21
- /** The popper wrapping the search popover, above the field. */
22
- export declare const countryPopperSx: SxProps<Theme>;
23
- /**
24
- * The popover surface holding the search box and the country list. Its width is
25
- * set at runtime to match the input it anchors to, so the two line up exactly.
26
- */
27
- export declare const countryPopoverSx: SxProps<Theme>;
28
- /**
29
- * Neutralises the global `MuiAutocomplete` theme for our inline instance: drop
30
- * the root's boxed background and radius so the search box reads as a flat row
31
- * of our own popover. (The listbox popper is pulled back into flow on the
32
- * `InlineListbox` element itself, since it renders as a sibling of the root.)
33
- */
34
- export declare const countryAutocompleteSx: SxProps<Theme>;
35
- /** The search input at the top of the popover. */
36
- export declare const countrySearchSx: SxProps<Theme>;
37
- /**
38
- * Strips the `Autocomplete`'s own paper so our popover surface is the only one;
39
- * the listbox renders inline beneath the search box.
40
- */
41
- export declare const countryListPaperSx: SxProps<Theme>;
42
- /** An option row: flag, country name (grows), dialling code. */
43
- export declare const countryOptionSx: SxProps<Theme>;
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const radioTheme: Components<Theme>["MuiRadio"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const selectTheme: Components<Theme>["MuiSelect"];
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const sliderTheme: Components<Theme>["MuiSlider"];
@@ -1,34 +0,0 @@
1
- import { SxProps, Theme } from '@mui/material';
2
- /**
3
- * Styling for the segmented `Tabs` control. Base UI has no MUI slot to override
4
- * globally, so — like `number-input` — these are exported `sx` objects the
5
- * component applies, keeping the component lean while the visual tokens live
6
- * here.
7
- */
8
- /** The visual variants of the active "pill". */
9
- export type TabsVariant = "brand" | "greyscale";
10
- /**
11
- * The track that holds the tab buttons: a rounded, beige pill container. Scrolls
12
- * horizontally when the tabs overflow (e.g. on mobile) with the scrollbar
13
- * hidden, and positions the sliding indicator via `position: relative`.
14
- */
15
- export declare const tabsListSx: SxProps<Theme>;
16
- /**
17
- * A single tab button. Transparent by default with muted text; the active tab
18
- * sits above the pill indicator (`zIndex: 1`) and flips to contrast text. Icons
19
- * are laid out inline before the label.
20
- */
21
- export declare const tabSx: SxProps<Theme>;
22
- /**
23
- * A tab panel. Base UI makes the panel focusable (`tabIndex={0}`) so keyboard
24
- * users can reach its content, so it needs a visible focus ring and a little
25
- * breathing room from the tab list.
26
- */
27
- export declare const tabPanelSx: SxProps<Theme>;
28
- /**
29
- * The sliding "pill" behind the active tab. Base UI exposes the active tab's
30
- * geometry as CSS variables on this element (`--active-tab-*`); we translate
31
- * those into position/size. The slide is disabled under
32
- * `prefers-reduced-motion`.
33
- */
34
- export declare const tabsIndicatorSx: (variant: TabsVariant) => SxProps<Theme>;
@@ -1,110 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export type TooltipTriggerVariant = "icon" | "filled" | "outlined";
3
- export type TooltipSurfaceVariant = "light" | "dark";
4
- export declare const tooltipSurfaceStyles: (variant: TooltipSurfaceVariant) => {
5
- backgroundColor: string;
6
- color: string;
7
- boxShadow: "0px 4px 6px -1px rgba(0, 0, 0, 0.10), 0px 2px 4px -2px rgba(0, 0, 0, 0.10)";
8
- };
9
- export declare const tooltipSurfaceSx: (variant: TooltipSurfaceVariant) => {
10
- backgroundColor: string;
11
- color: string;
12
- boxShadow: "0px 4px 6px -1px rgba(0, 0, 0, 0.10), 0px 2px 4px -2px rgba(0, 0, 0, 0.10)";
13
- };
14
- export declare const tooltipTriggerSx: (variant: TooltipTriggerVariant) => {
15
- display: string;
16
- alignItems: string;
17
- justifyContent: string;
18
- boxSizing: string;
19
- width: string;
20
- height: string;
21
- margin: string;
22
- border: number;
23
- backgroundColor: string;
24
- cursor: string;
25
- lineHeight: number;
26
- color: string;
27
- transition: string;
28
- "&:hover": {
29
- color: string;
30
- };
31
- "&:focus-visible": {
32
- outline: string;
33
- outlineOffset: string;
34
- borderRadius: 100;
35
- };
36
- };
37
- export declare const tooltipIconMarkSx: (variant: TooltipTriggerVariant) => {
38
- width: string;
39
- height: string;
40
- borderRadius: 100;
41
- backgroundColor: string;
42
- color: string;
43
- "&:hover": {
44
- backgroundColor: string;
45
- };
46
- display: "inline-flex";
47
- alignItems: "center";
48
- justifyContent: "center";
49
- position: "relative";
50
- flexShrink: 0;
51
- boxSizing: "border-box";
52
- "&::before": {
53
- readonly content: "\"\"";
54
- readonly position: "absolute";
55
- readonly width: string;
56
- readonly height: string;
57
- readonly borderRadius: 100;
58
- readonly backgroundColor: "currentColor";
59
- readonly left: "50%";
60
- readonly top: "50%";
61
- readonly transform: "translate(-50%, -8%)";
62
- };
63
- "&::after": {
64
- readonly content: "\"\"";
65
- readonly position: "absolute";
66
- readonly width: string;
67
- readonly height: string;
68
- readonly borderRadius: 100;
69
- readonly backgroundColor: "currentColor";
70
- readonly left: "50%";
71
- readonly top: "50%";
72
- readonly transform: "translate(-50%, -190%)";
73
- };
74
- } | {
75
- width: string;
76
- height: string;
77
- borderRadius: 100;
78
- border: string;
79
- backgroundColor: string;
80
- color: string;
81
- display: "inline-flex";
82
- alignItems: "center";
83
- justifyContent: "center";
84
- position: "relative";
85
- flexShrink: 0;
86
- boxSizing: "border-box";
87
- "&::before": {
88
- readonly content: "\"\"";
89
- readonly position: "absolute";
90
- readonly width: string;
91
- readonly height: string;
92
- readonly borderRadius: 100;
93
- readonly backgroundColor: "currentColor";
94
- readonly left: "50%";
95
- readonly top: "50%";
96
- readonly transform: "translate(-50%, -8%)";
97
- };
98
- "&::after": {
99
- readonly content: "\"\"";
100
- readonly position: "absolute";
101
- readonly width: string;
102
- readonly height: string;
103
- readonly borderRadius: 100;
104
- readonly backgroundColor: "currentColor";
105
- readonly left: "50%";
106
- readonly top: "50%";
107
- readonly transform: "translate(-50%, -190%)";
108
- };
109
- };
110
- export declare const tooltipTheme: Pick<Components<Theme>, "MuiTooltip">;
@@ -1,2 +0,0 @@
1
- import { Components, Theme } from '@mui/material';
2
- export declare const typographyTheme: Components<Theme>["MuiTypography"];
@@ -1,147 +0,0 @@
1
- /**
2
- * MUI module augmentation for Lea Bank design tokens.
3
- * Imported from the package entry so consumers get palette / prop autocomplete.
4
- */
5
- import "@mui/x-date-pickers/themeAugmentation";
6
- declare module "@mui/material/styles" {
7
- interface PaletteBg {
8
- base: string;
9
- subtle: string;
10
- muted: string;
11
- contrast: string;
12
- accent: string;
13
- }
14
- interface PaletteBorder {
15
- base: string;
16
- subtle: string;
17
- strong: string;
18
- accent: string;
19
- contrast: string;
20
- }
21
- interface PaletteBrand {
22
- base: string;
23
- hover: string;
24
- subtle: string;
25
- contrast: string;
26
- }
27
- interface PaletteStatusColor {
28
- base: string;
29
- subtle: string;
30
- }
31
- interface PaletteStatus {
32
- error: PaletteStatusColor;
33
- warning: PaletteStatusColor;
34
- info: PaletteStatusColor;
35
- success: PaletteStatusColor;
36
- }
37
- interface Palette {
38
- bg: PaletteBg;
39
- border: PaletteBorder;
40
- status: PaletteStatus;
41
- purple: PaletteBrand;
42
- teal: PaletteBrand;
43
- }
44
- interface PaletteOptions {
45
- bg: PaletteBg;
46
- border: PaletteBorder;
47
- status: PaletteStatus;
48
- purple: PaletteBrand;
49
- teal: PaletteBrand;
50
- }
51
- interface TypeText {
52
- base: string;
53
- subtle: string;
54
- muted: string;
55
- accent: string;
56
- contrast: string;
57
- }
58
- interface TypeTextOptions {
59
- base?: string;
60
- subtle?: string;
61
- muted?: string;
62
- accent?: string;
63
- contrast?: string;
64
- }
65
- interface Shape {
66
- sm: number;
67
- md: number;
68
- lg: number;
69
- xl: number;
70
- "2xl": number;
71
- "3xl": number;
72
- "4xl": number;
73
- "5xl": number;
74
- huge: number;
75
- full: number;
76
- }
77
- interface ShapeOptions {
78
- sm?: number;
79
- md?: number;
80
- lg?: number;
81
- xl?: number;
82
- "2xl"?: number;
83
- "3xl"?: number;
84
- "4xl"?: number;
85
- "5xl"?: number;
86
- huge?: number;
87
- full?: number;
88
- }
89
- interface Theme {
90
- fontSizes: typeof import("./tokens/font-sizes").fontSizes;
91
- colors: typeof import("./tokens/colors").colors;
92
- palette: typeof import("./tokens/palette").palette;
93
- shape: typeof import("./tokens/shape").shape;
94
- /** Design-token shadows (distinct from MUI `theme.shadows` elevation tuple). */
95
- shadowTokens: typeof import("./tokens/shadows").shadows;
96
- fontWeights: typeof import("./tokens/font-weights").fontWeights;
97
- /** 8px-base spacing helper in rem (separate from MUI `theme.spacing`). */
98
- space: typeof import("./tokens/spacing").spacing;
99
- easings: typeof import("./tokens/transitions").easings;
100
- durations: typeof import("./tokens/transitions").durations;
101
- transition: typeof import("./tokens/transitions").transition;
102
- }
103
- interface ThemeOptions {
104
- fontSizes?: Theme["fontSizes"];
105
- colors?: Theme["colors"];
106
- shape?: Theme["shape"];
107
- shadowTokens?: Theme["shadowTokens"];
108
- fontWeights?: Theme["fontWeights"];
109
- space?: Theme["space"];
110
- easings?: Theme["easings"];
111
- durations?: Theme["durations"];
112
- transition?: Theme["transition"];
113
- }
114
- }
115
- declare module "@mui/material/Alert" {
116
- interface AlertPropsColorOverrides {
117
- purple: true;
118
- grey: true;
119
- }
120
- }
121
- declare module "@mui/material/Button" {
122
- interface ButtonPropsVariantOverrides {
123
- action: true;
124
- }
125
- }
126
- declare module "@mui/material/Chip" {
127
- interface ChipPropsColorOverrides {
128
- purple: true;
129
- blue: true;
130
- teal: true;
131
- orange: true;
132
- grey: true;
133
- }
134
- }
135
- declare module "@mui/material/Typography" {
136
- interface TypographyOwnProps {
137
- fontSize?: keyof import("@mui/material/styles").Theme["fontSizes"] | (string & {}) | number | undefined;
138
- }
139
- interface TypographyPropsColorOverrides {
140
- "text.base": true;
141
- "text.subtle": true;
142
- "text.muted": true;
143
- "text.accent": true;
144
- "text.contrast": true;
145
- }
146
- }
147
- export {};
@@ -1,10 +0,0 @@
1
- /**
2
- * Custom `sx` resolver for `borderRadius` so the radius design tokens work as
3
- * string shorthands — `borderRadius="md"`, `sx={{ borderRadius: "2xl" }}` — while
4
- * numbers keep MUI's default `shape.borderRadius` scaling. Wired into the theme
5
- * via `unstable_sxConfig` (see `theme/index.ts`).
6
- */
7
- export declare const borderRadiusSx: {
8
- (props: object): any;
9
- filterProps: string[];
10
- };