@recursica/mantine-adapter 0.20.0 → 0.22.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 (81) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/mantine-adapter.cjs +1 -1
  3. package/dist/mantine-adapter.cjs.map +1 -1
  4. package/dist/mantine-adapter.css +1 -1
  5. package/dist/mantine-adapter.js +1624 -1498
  6. package/dist/mantine-adapter.js.map +1 -1
  7. package/dist/src/components/AutoComplete/AutoComplete.d.ts +9 -0
  8. package/dist/src/components/Avatar/Avatar.d.ts +1 -1
  9. package/dist/src/components/Badge/Badge.d.ts +1 -1
  10. package/dist/src/components/Button/Button.d.ts +11 -1
  11. package/dist/src/components/Card/Card.d.ts +1 -1
  12. package/dist/src/components/Flex/Flex.d.ts +1 -1
  13. package/dist/src/components/Link/Link.d.ts +1 -1
  14. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +6 -1
  15. package/dist/src/components/Text/Text.d.ts +1 -1
  16. package/dist/src/components/Toast/Toast.d.ts +1 -1
  17. package/dist/src/components/index.d.ts +1 -0
  18. package/package.json +5 -2
  19. package/src/GlobalExemptions.modules.css +13 -0
  20. package/src/components/AutoComplete/AUTOCOMPLETE_IMPLEMENTATION_NOTES.md +21 -0
  21. package/src/components/AutoComplete/AutoComplete.module.css +311 -0
  22. package/src/components/AutoComplete/AutoComplete.stories.tsx +187 -0
  23. package/src/components/AutoComplete/AutoComplete.tsx +154 -0
  24. package/src/components/Avatar/Avatar.module.css +40 -36
  25. package/src/components/Badge/Badge.module.css +4 -1
  26. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +3 -10
  27. package/src/components/Button/Button.module.css +220 -57
  28. package/src/components/Button/Button.stories.tsx +68 -0
  29. package/src/components/Button/Button.tsx +42 -3
  30. package/src/components/Button/IMPLEMENTATION_NOTES.md +16 -0
  31. package/src/components/Card/Card.module.css +58 -1
  32. package/src/components/Card/Card.stories.tsx +4 -2
  33. package/src/components/Checkbox/Checkbox.module.css +74 -46
  34. package/src/components/Checkbox/Checkbox.stories.tsx +3 -0
  35. package/src/components/Checkbox/CheckboxGroup.tsx +1 -9
  36. package/src/components/Chip/Chip.module.css +19 -1
  37. package/src/components/DatePicker/DatePicker.module.css +45 -0
  38. package/src/components/Dropdown/Dropdown.module.css +42 -15
  39. package/src/components/Dropdown/Dropdown.stories.tsx +3 -0
  40. package/src/components/Dropdown/Dropdown.tsx +5 -1
  41. package/src/components/FileInput/FileInput.module.css +50 -0
  42. package/src/components/FileUpload/FileUpload.module.css +43 -0
  43. package/src/components/FormControlLayout/FormControlLayout.module.css +12 -2
  44. package/src/components/FormControlWrapper/FormControlWrapper.module.css +66 -0
  45. package/src/components/HoverCard/HoverCard.module.css +12 -5
  46. package/src/components/Label/Label.module.css +11 -3
  47. package/src/components/Link/Link.module.css +8 -0
  48. package/src/components/Menu/Menu.module.css +73 -30
  49. package/src/components/Modal/Modal.module.css +92 -47
  50. package/src/components/NumberInput/NumberInput.module.css +46 -15
  51. package/src/components/NumberInput/NumberInput.tsx +5 -1
  52. package/src/components/Pagination/Pagination.module.css +123 -41
  53. package/src/components/Panel/Panel.module.css +55 -3
  54. package/src/components/Popover/Popover.module.css +6 -4
  55. package/src/components/Radio/Radio.module.css +72 -59
  56. package/src/components/Radio/Radio.stories.tsx +3 -0
  57. package/src/components/Radio/RadioGroup.tsx +1 -8
  58. package/src/components/ReadOnlyField/ReadOnlyField.module.css +14 -0
  59. package/src/components/ReadOnlyField/ReadOnlyField.tsx +16 -1
  60. package/src/components/SegmentedControl/SegmentedControl.module.css +106 -41
  61. package/src/components/SegmentedControl/SegmentedControl.stories.tsx +1 -4
  62. package/src/components/SegmentedControl/SegmentedControl.tsx +18 -4
  63. package/src/components/Slider/Slider.module.css +89 -0
  64. package/src/components/Stepper/Stepper.module.css +53 -2
  65. package/src/components/Switch/Switch.module.css +62 -23
  66. package/src/components/Switch/Switch.stories.tsx +3 -0
  67. package/src/components/Switch/Switch.tsx +1 -0
  68. package/src/components/Switch/SwitchGroup.tsx +3 -10
  69. package/src/components/Tabs/Tabs.module.css +33 -12
  70. package/src/components/TextArea/TextArea.module.css +58 -120
  71. package/src/components/TextArea/TextArea.stories.tsx +3 -0
  72. package/src/components/TextArea/TextArea.tsx +7 -3
  73. package/src/components/TextField/TextField.module.css +46 -15
  74. package/src/components/TextField/TextField.tsx +5 -1
  75. package/src/components/TimePicker/TimePicker.module.css +44 -0
  76. package/src/components/Timeline/Timeline.module.css +6 -0
  77. package/src/components/Toast/Toast.module.css +62 -1
  78. package/src/components/Toast/Toast.tsx +1 -1
  79. package/src/components/Tooltip/Tooltip.module.css +9 -0
  80. package/src/components/TransferList/TransferList.module.css +41 -0
  81. package/src/components/index.ts +1 -0
@@ -1,3 +1,25 @@
1
+ /* EXEMPTIONS:
2
+ - state-specific border-size variables are ignored because a uniform 1px border is applied globally to prevent
3
+ unexpected layout shift or flickering during focus, disabled, or error state transitions. */
4
+ /* recursica-ignore: --recursica_ui-kit_components_text-field_variants_states_default_properties_border-size */
5
+ /* recursica-ignore: --recursica_ui-kit_components_text-field_variants_states_disabled_properties_border-size */
6
+ /* recursica-ignore: --recursica_ui-kit_components_text-field_variants_states_error_properties_border-size */
7
+ /* recursica-ignore: --recursica_ui-kit_components_text-field_variants_states_focus_properties_border-size */
8
+
9
+ /* LAYOUT SPACING OVERRIDES:
10
+ - Sets the --form-control-margin-bottom spacing hook to map component-specific layout tokens. */
11
+ .layoutOverride {
12
+ --form-control-margin-bottom: var(
13
+ --recursica_ui-kit_components_text-field_variants_layouts_stacked_properties_top-bottom-margin
14
+ );
15
+ }
16
+
17
+ .layoutOverride[data-form-layout="side-by-side"] {
18
+ --form-control-margin-bottom: var(
19
+ --recursica_ui-kit_components_text-field_variants_layouts_side-by-side_properties_top-bottom-margin
20
+ );
21
+ }
22
+
1
23
  /* HARDCODED VALUES:
2
24
  - border-width: 1px. Native geometric boundary for the input box.
3
25
  - border-style: solid. Native structural rendering rule.
@@ -15,22 +37,18 @@
15
37
 
16
38
  /* Override Mantine native Input variables governing section spacing padding mathematics safely */
17
39
  --input-left-section-size: calc(
18
- var(--recursica_ui-kit_components_text-field_properties_icon-size) +
19
- (
20
- var(
21
- --recursica_ui-kit_components_text-field_properties_horizontal-padding
22
- ) *
23
- 2
24
- )
40
+ var(
41
+ --recursica_ui-kit_components_text-field_properties_horizontal-padding
42
+ ) +
43
+ var(--recursica_ui-kit_components_text-field_properties_icon-size) +
44
+ var(--recursica_ui-kit_components_text-field_properties_icon-text-gap)
25
45
  );
26
46
  --input-right-section-size: calc(
27
- var(--recursica_ui-kit_components_text-field_properties_icon-size) +
28
- (
29
- var(
30
- --recursica_ui-kit_components_text-field_properties_horizontal-padding
31
- ) *
32
- 2
33
- )
47
+ var(
48
+ --recursica_ui-kit_components_text-field_properties_horizontal-padding
49
+ ) +
50
+ var(--recursica_ui-kit_components_text-field_properties_icon-size) +
51
+ var(--recursica_ui-kit_components_text-field_properties_icon-text-gap)
34
52
  );
35
53
  }
36
54
 
@@ -122,10 +140,23 @@
122
140
  .section {
123
141
  display: flex;
124
142
  align-items: center;
125
- justify-content: center;
126
143
  height: 100%;
127
144
  }
128
145
 
146
+ .section[data-position="left"] {
147
+ justify-content: flex-start;
148
+ padding-left: var(
149
+ --recursica_ui-kit_components_text-field_properties_horizontal-padding
150
+ );
151
+ }
152
+
153
+ .section[data-position="right"] {
154
+ justify-content: flex-end;
155
+ padding-right: var(
156
+ --recursica_ui-kit_components_text-field_properties_horizontal-padding
157
+ );
158
+ }
159
+
129
160
  .section :global(svg) {
130
161
  width: var(--recursica_ui-kit_components_text-field_properties_icon-size);
131
162
  height: var(--recursica_ui-kit_components_text-field_properties_icon-size);
@@ -90,9 +90,13 @@ export const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
90
90
  : styles.section;
91
91
  }
92
92
 
93
+ const wrapperClass = className
94
+ ? `${styles.layoutOverride} ${className}`
95
+ : styles.layoutOverride;
96
+
93
97
  return (
94
98
  <WithReadOnlyWrapper
95
- className={className}
99
+ className={wrapperClass}
96
100
  style={style as React.CSSProperties}
97
101
  controlMaxWidth="var(--recursica_ui-kit_components_text-field_properties_max-width)"
98
102
  controlMinWidth="var(--recursica_ui-kit_components_text-field_properties_min-width)"
@@ -0,0 +1,44 @@
1
+ /*
2
+ * EXEMPTIONS:
3
+ * - TimePicker is a "Coming Soon" stub component.
4
+ * - It renders a placeholder and has no active implementation or CSS stylesheet yet.
5
+ * - The following tokens generated by Figma are ignored until the component is fully built.
6
+ */
7
+
8
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_border-radius */
9
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_horizontal-padding */
10
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_icon-size */
11
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_icon-text-gap */
12
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_placeholder-opacity */
13
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_font-family */
14
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_font-size */
15
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_font-style */
16
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_font-weight */
17
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_letter-spacing */
18
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_line-height */
19
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_text-decoration */
20
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_text_text-transform */
21
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_vertical-padding */
22
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_properties_width */
23
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_layouts_side-by-side_properties_top-bottom-margin */
24
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_layouts_stacked_properties_top-bottom-margin */
25
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_default_properties_border-size */
26
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_disabled_properties_border-size */
27
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_error_properties_border-size */
28
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_focus_properties_border-size */
29
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_default_properties_colors_background */
30
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_default_properties_colors_border-color */
31
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_default_properties_colors_icon */
32
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_default_properties_colors_text */
33
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_disabled_properties_colors_background */
34
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_disabled_properties_colors_border-color */
35
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_disabled_properties_colors_icon */
36
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_disabled_properties_colors_text */
37
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_error_properties_colors_background */
38
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_error_properties_colors_border-color */
39
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_error_properties_colors_icon */
40
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_error_properties_colors_text */
41
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_focus_properties_colors_background */
42
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_focus_properties_colors_border-color */
43
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_focus_properties_colors_icon */
44
+ /* recursica-ignore: --recursica_ui-kit_components_time-picker_variants_states_focus_properties_colors_text */
@@ -1,3 +1,9 @@
1
+ /* EXEMPTIONS:
2
+ - timeline-bullet_variants_types_avatar_properties_avatar-size is ignored because under the avatar timeline variant,
3
+ the bullet container size uses fallback bullet-size configurations to maintain vertical alignment with the
4
+ inactive/active connector line, while the nested Avatar subcomponent handles its own sizing natively. */
5
+ /* recursica-ignore: --recursica_ui-kit_components_timeline-bullet_variants_types_avatar_properties_avatar-size */
6
+
1
7
  .root {
2
8
  display: flex;
3
9
  flex-direction: column;
@@ -1,6 +1,13 @@
1
+ /* EXEMPTIONS:
2
+ - elevation levels layer-1, layer-2, and layer-3 are ignored because all toasts explicitly use the standard
3
+ layer-0 elevation shadow for styling consistency. */
4
+ /* recursica-ignore: --recursica_ui-kit_components_toast_properties_elevation_layer-1 */
5
+ /* recursica-ignore: --recursica_ui-kit_components_toast_properties_elevation_layer-2 */
6
+ /* recursica-ignore: --recursica_ui-kit_components_toast_properties_elevation_layer-3 */
7
+
1
8
  /* HARDCODED VALUES:
2
9
  - border-style: none. To ensure the notification doesn't render unwanted borders unless specified.
3
- */
10
+ */
4
11
 
5
12
  /* ======================================
6
13
  TOAST / NOTIFICATION ROOT
@@ -23,6 +30,12 @@
23
30
  );
24
31
  gap: var(--recursica_ui-kit_components_toast_properties_spacing);
25
32
 
33
+ /* Hide Mantine's native colored vertical line */
34
+ &::before {
35
+ display: none;
36
+ content: none;
37
+ }
38
+
26
39
  & .icon {
27
40
  width: var(--recursica_ui-kit_components_toast_properties_icon) !important;
28
41
  height: var(--recursica_ui-kit_components_toast_properties_icon) !important;
@@ -48,6 +61,54 @@
48
61
  --recursica_ui-kit_components_toast_variants_styles_default_properties_colors_button
49
62
  );
50
63
  }
64
+
65
+ /* Error Variant styling */
66
+ &[data-variant="error"] {
67
+ background-color: var(
68
+ --recursica_ui-kit_components_toast_variants_styles_error_properties_colors_background
69
+ );
70
+
71
+ & .icon {
72
+ color: var(
73
+ --recursica_ui-kit_components_toast_variants_styles_error_properties_colors_text
74
+ ) !important;
75
+ }
76
+ & .title,
77
+ & .description {
78
+ color: var(
79
+ --recursica_ui-kit_components_toast_variants_styles_error_properties_colors_text
80
+ );
81
+ }
82
+ & .closeButton {
83
+ color: var(
84
+ --recursica_ui-kit_components_toast_variants_styles_error_properties_colors_button
85
+ );
86
+ }
87
+ }
88
+
89
+ /* Success Variant styling */
90
+ &[data-variant="success"] {
91
+ background-color: var(
92
+ --recursica_ui-kit_components_toast_variants_styles_success_properties_colors_background
93
+ );
94
+
95
+ & .icon {
96
+ color: var(
97
+ --recursica_ui-kit_components_toast_variants_styles_success_properties_colors_text
98
+ ) !important;
99
+ }
100
+ & .title,
101
+ & .description {
102
+ color: var(
103
+ --recursica_ui-kit_components_toast_variants_styles_success_properties_colors_text
104
+ );
105
+ }
106
+ & .closeButton {
107
+ color: var(
108
+ --recursica_ui-kit_components_toast_variants_styles_success_properties_colors_button
109
+ );
110
+ }
111
+ }
51
112
  }
52
113
 
53
114
  /* ======================================
@@ -14,7 +14,7 @@ export interface RecursicaToastProps {
14
14
  * The visual variant of the toast.
15
15
  * @default "default"
16
16
  */
17
- variant?: "default";
17
+ variant?: "default" | "error" | "success";
18
18
 
19
19
  /**
20
20
  * Loading state is natively unsupported by Recursica UI Kit.
@@ -1,3 +1,12 @@
1
+ /* EXEMPTIONS:
2
+ - beak-inset is ignored because Tooltip positioning calculations are handled dynamically by Mantine/Floating UI at the React runtime.
3
+ - beak-size is ignored because Mantine's tooltip arrows compute their sizing and positional offsets
4
+ dynamically within the React rendering engine (requires inline pixel number rather than standard CSS variables).
5
+ The beak size is checked in JS against a fixed value of 16px. If this variable changes, the TSX components
6
+ need to be reviewed/re-compiled. */
7
+ /* recursica-ignore: --recursica_ui-kit_components_tooltip_properties_beak-inset = 8px */
8
+ /* recursica-ignore: --recursica_ui-kit_components_tooltip_properties_beak-size = 16px */
9
+
1
10
  /* HARDCODED VALUES:
2
11
  - border-style: solid. Structural rendering rule for the tooltip border (Mantine uses Box
3
12
  which may not set border-style natively). Same pattern as Menu / HoverCard.
@@ -0,0 +1,41 @@
1
+ /*
2
+ * EXEMPTIONS:
3
+ * - TransferList is a "Coming Soon" stub component.
4
+ * - It renders a placeholder and has no active implementation or CSS stylesheet yet.
5
+ * - The following tokens generated by Figma are ignored until the component is fully built.
6
+ */
7
+
8
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_border-radius */
9
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_filter-items-gap */
10
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_gap */
11
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_fontFamily */
12
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_fontSize */
13
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_fontStyle */
14
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_fontWeight */
15
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_letterSpacing */
16
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_lineHeight */
17
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_textCase */
18
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_header-style_textDecoration */
19
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_height */
20
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_horizontal-padding */
21
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_title-filter-gap */
22
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_vertical-padding */
23
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_properties_width */
24
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_layouts_side-by-side_properties_top-bottom-margin */
25
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_layouts_stacked_properties_top-bottom-margin */
26
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_default_properties_border-size */
27
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_disabled_properties_border-size */
28
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_error_properties_border-size */
29
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_focus_properties_border-size */
30
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_default_properties_colors_background */
31
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_default_properties_colors_border-color */
32
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_default_properties_colors_header-color */
33
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_disabled_properties_colors_background */
34
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_disabled_properties_colors_border-color */
35
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_disabled_properties_colors_header-color */
36
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_error_properties_colors_background */
37
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_error_properties_colors_border-color */
38
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_error_properties_colors_header-color */
39
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_focus_properties_colors_background */
40
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_focus_properties_colors_border-color */
41
+ /* recursica-ignore: --recursica_ui-kit_components_transfer-list_variants_states_focus_properties_colors_header-color */
@@ -1,4 +1,5 @@
1
1
  export * from "./Accordion";
2
+ export * from "./AutoComplete/AutoComplete";
2
3
  export * from "./Avatar";
3
4
  export * from "./Badge/Badge";
4
5
  export * from "./Breadcrumb/Breadcrumb";