@recursica/mantine-adapter 0.22.0 → 0.24.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 (137) hide show
  1. package/ARCHITECTURE.md +15 -0
  2. package/CHANGELOG.md +18 -0
  3. package/SETUP.md +78 -0
  4. package/USAGE.md +55 -0
  5. package/dist/mantine-adapter.cjs +1 -1
  6. package/dist/mantine-adapter.cjs.map +1 -1
  7. package/dist/mantine-adapter.css +1 -1
  8. package/dist/mantine-adapter.js +1897 -1575
  9. package/dist/mantine-adapter.js.map +1 -1
  10. package/dist/src/components/Accordion/Accordion.d.ts +4 -24
  11. package/dist/src/components/AssistiveElement/AssistiveElement.d.ts +1 -6
  12. package/dist/src/components/AutoComplete/AutoComplete.d.ts +7 -3
  13. package/dist/src/components/Avatar/Avatar.d.ts +2 -6
  14. package/dist/src/components/Badge/Badge.d.ts +2 -5
  15. package/dist/src/components/Breadcrumb/Breadcrumb.d.ts +1 -2
  16. package/dist/src/components/Button/Button.d.ts +2 -16
  17. package/dist/src/components/Card/Card.d.ts +4 -6
  18. package/dist/src/components/Checkbox/Checkbox.d.ts +4 -4
  19. package/dist/src/components/Checkbox/CheckboxGroup.d.ts +7 -3
  20. package/dist/src/components/Chip/Chip.d.ts +1 -10
  21. package/dist/src/components/Container/Container.d.ts +1 -11
  22. package/dist/src/components/DatePicker/DatePicker.d.ts +12 -2
  23. package/dist/src/components/Dropdown/Dropdown.d.ts +2 -4
  24. package/dist/src/components/Flex/Flex.d.ts +2 -11
  25. package/dist/src/components/FormControlLayout/FormControlLayout.d.ts +2 -7
  26. package/dist/src/components/FormControlWrapper/FormControlWrapper.d.ts +1 -15
  27. package/dist/src/components/Group/Group.d.ts +1 -10
  28. package/dist/src/components/HoverCard/HoverCard.d.ts +1 -11
  29. package/dist/src/components/Label/Label.d.ts +1 -14
  30. package/dist/src/components/Link/Link.d.ts +2 -11
  31. package/dist/src/components/Loader/Loader.d.ts +2 -7
  32. package/dist/src/components/Menu/Menu.d.ts +4 -3
  33. package/dist/src/components/Modal/Modal.d.ts +2 -1
  34. package/dist/src/components/NumberInput/NumberInput.d.ts +2 -4
  35. package/dist/src/components/Pagination/Pagination.d.ts +2 -4
  36. package/dist/src/components/Panel/Panel.d.ts +2 -9
  37. package/dist/src/components/Popover/Popover.d.ts +1 -11
  38. package/dist/src/components/Radio/Radio.d.ts +4 -4
  39. package/dist/src/components/Radio/RadioGroup.d.ts +7 -3
  40. package/dist/src/components/ReadOnlyField/ReadOnlyField.d.ts +2 -10
  41. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +1 -11
  42. package/dist/src/components/Slider/Slider.d.ts +18 -2
  43. package/dist/src/components/Stack/Stack.d.ts +2 -9
  44. package/dist/src/components/Stepper/Stepper.d.ts +2 -4
  45. package/dist/src/components/Switch/Switch.d.ts +4 -4
  46. package/dist/src/components/Switch/SwitchGroup.d.ts +7 -3
  47. package/dist/src/components/Table/Table.d.ts +2 -1
  48. package/dist/src/components/Tabs/Tabs.d.ts +2 -4
  49. package/dist/src/components/Text/Text.d.ts +2 -11
  50. package/dist/src/components/TextArea/TextArea.d.ts +2 -8
  51. package/dist/src/components/TextField/TextField.d.ts +7 -3
  52. package/dist/src/components/TimePicker/TimePicker.d.ts +2 -1
  53. package/dist/src/components/Timeline/Timeline.d.ts +2 -1
  54. package/dist/src/components/Timeline/TimelineItem.d.ts +1 -12
  55. package/dist/src/components/Title/Title.d.ts +1 -7
  56. package/dist/src/components/Toast/Toast.d.ts +1 -12
  57. package/dist/src/components/Tooltip/Tooltip.d.ts +1 -12
  58. package/dist/src/components/TransferList/TransferList.d.ts +2 -1
  59. package/dist/src/utils/RequireAccessibleLabel.d.ts +1 -18
  60. package/dist/src/utils/filterStylingProps.d.ts +1 -11
  61. package/dist/test.html +1 -0
  62. package/llms.txt +16 -0
  63. package/package.json +7 -3
  64. package/src/components/Accordion/Accordion.module.css +1 -2
  65. package/src/components/Accordion/Accordion.tsx +15 -28
  66. package/src/components/AssistiveElement/AssistiveElement.tsx +1 -6
  67. package/src/components/AutoComplete/AutoComplete.tsx +4 -1
  68. package/src/components/Avatar/Avatar.tsx +1 -5
  69. package/src/components/Badge/Badge.tsx +1 -4
  70. package/src/components/Breadcrumb/Breadcrumb.tsx +1 -2
  71. package/src/components/Button/Button.module.css +18 -45
  72. package/src/components/Button/Button.tsx +2 -16
  73. package/src/components/Card/Card.tsx +11 -6
  74. package/src/components/Checkbox/Checkbox.module.css +6 -10
  75. package/src/components/Checkbox/Checkbox.tsx +19 -14
  76. package/src/components/Checkbox/CheckboxGroup.tsx +4 -1
  77. package/src/components/Chip/CHIP_IMPLEMENTATION_NOTES.md +4 -1
  78. package/src/components/Chip/Chip.module.css +36 -28
  79. package/src/components/Chip/Chip.tsx +8 -15
  80. package/src/components/Container/Container.tsx +1 -19
  81. package/src/components/DatePicker/DATEPICKER_IMPLEMENTATION_NOTES.md +16 -0
  82. package/src/components/DatePicker/DatePicker.module.css +282 -41
  83. package/src/components/DatePicker/DatePicker.stories.tsx +127 -4
  84. package/src/components/DatePicker/DatePicker.tsx +169 -5
  85. package/src/components/Dropdown/Dropdown.tsx +4 -4
  86. package/src/components/Flex/Flex.tsx +2 -13
  87. package/src/components/FormControlLayout/FormControlLayout.module.css +6 -18
  88. package/src/components/FormControlLayout/FormControlLayout.tsx +4 -8
  89. package/src/components/FormControlWrapper/FormControlWrapper.module.css +1 -0
  90. package/src/components/FormControlWrapper/FormControlWrapper.tsx +2 -15
  91. package/src/components/Group/Group.tsx +2 -13
  92. package/src/components/HoverCard/HoverCard.tsx +1 -8
  93. package/src/components/Label/Label.module.css +5 -10
  94. package/src/components/Label/Label.tsx +1 -14
  95. package/src/components/Link/Link.module.css +4 -3
  96. package/src/components/Link/Link.stories.tsx +2 -3
  97. package/src/components/Link/Link.tsx +1 -10
  98. package/src/components/Loader/LOADER_IMPLEMENTATION_NOTES.md +1 -2
  99. package/src/components/Loader/Loader.module.css +4 -11
  100. package/src/components/Loader/Loader.tsx +1 -7
  101. package/src/components/Menu/Menu.tsx +5 -1
  102. package/src/components/Modal/Modal.tsx +3 -1
  103. package/src/components/NumberInput/NumberInput.tsx +4 -4
  104. package/src/components/Pagination/Pagination.module.css +12 -24
  105. package/src/components/Pagination/Pagination.stories.tsx +0 -8
  106. package/src/components/Pagination/Pagination.tsx +5 -4
  107. package/src/components/Panel/Panel.tsx +1 -8
  108. package/src/components/Popover/Popover.tsx +1 -8
  109. package/src/components/Radio/Radio.module.css +4 -10
  110. package/src/components/Radio/Radio.tsx +19 -14
  111. package/src/components/Radio/RadioGroup.tsx +4 -1
  112. package/src/components/ReadOnlyField/ReadOnlyField.module.css +9 -18
  113. package/src/components/ReadOnlyField/ReadOnlyField.tsx +4 -11
  114. package/src/components/SegmentedControl/SegmentedControl.module.css +20 -44
  115. package/src/components/SegmentedControl/SegmentedControl.tsx +1 -11
  116. package/src/components/Slider/IMPLEMENTATION_NOTES.md +49 -0
  117. package/src/components/Slider/Slider.module.css +492 -86
  118. package/src/components/Slider/Slider.stories.tsx +159 -4
  119. package/src/components/Slider/Slider.tsx +275 -4
  120. package/src/components/Stack/Stack.tsx +2 -11
  121. package/src/components/Stepper/Stepper.tsx +1 -7
  122. package/src/components/Switch/Switch.tsx +19 -11
  123. package/src/components/Switch/SwitchGroup.tsx +4 -1
  124. package/src/components/Table/Table.tsx +3 -1
  125. package/src/components/Tabs/Tabs.tsx +1 -7
  126. package/src/components/Text/Text.tsx +2 -16
  127. package/src/components/TextArea/TextArea.tsx +4 -8
  128. package/src/components/TextField/TextField.tsx +4 -1
  129. package/src/components/TimePicker/TimePicker.tsx +3 -1
  130. package/src/components/Timeline/Timeline.tsx +4 -1
  131. package/src/components/Timeline/TimelineItem.tsx +1 -12
  132. package/src/components/Title/Title.tsx +1 -6
  133. package/src/components/Toast/Toast.tsx +1 -13
  134. package/src/components/Tooltip/Tooltip.tsx +1 -9
  135. package/src/components/TransferList/TransferList.tsx +3 -1
  136. package/src/utils/RequireAccessibleLabel.ts +1 -12
  137. package/src/utils/filterStylingProps.ts +7 -20
@@ -1,89 +1,495 @@
1
1
  /*
2
- * EXEMPTIONS:
3
- * - Slider 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.
2
+ * HARDCODED VALUES:
3
+ * - display: flex; align-items: center; width: 100%; (Standard CSS flexbox layouts for bidirectional components)
4
+ * - flex-grow: 1; flex-shrink: 0; (Layout control structures)
5
+ * - transform: translateX(-50%); (Mantine's standard step marks positioning alignment offset)
6
+ * - outline: none; border-style: solid; (Standard focus reset and border outlines)
6
7
  */
7
8
 
8
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_icon-size */
9
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-border-radius */
10
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-border-size */
11
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-gap */
12
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-height */
13
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-padding-left */
14
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-padding-right */
15
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-padding-vertical */
16
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_font-family */
17
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_font-size */
18
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_font-style */
19
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_font-weight */
20
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_letter-spacing */
21
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_line-height */
22
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_text-decoration */
23
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-text_text-transform */
24
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_input-width */
25
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_font-family */
26
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_font-size */
27
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_font-style */
28
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_font-weight */
29
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_letter-spacing */
30
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_line-height */
31
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_text-decoration */
32
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_min-max-label_text-transform */
33
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_font-family */
34
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_font-size */
35
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_font-style */
36
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_font-weight */
37
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_letter-spacing */
38
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_line-height */
39
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_text-decoration */
40
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_read-only-value_text-transform */
41
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_step-indicator-border-radius */
42
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_step-indicator-width */
43
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_thumb-border-radius */
44
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_thumb-elevation */
45
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_thumb-size */
46
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_track-border-radius */
47
- /* recursica-ignore: --recursica_ui-kit_components_slider_properties_track-height */
48
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_layouts_side-by-side_properties_top-bottom-margin */
49
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_layouts_stacked_properties_top-bottom-margin */
50
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_input-border-size */
51
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_input-border-size */
52
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_input-border-size */
53
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_input-border-size */
54
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_icon-color */
55
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_input-background */
56
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_input-border-color */
57
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_input-text */
58
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_step-indicator-color */
59
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_step-indicator-color-active */
60
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_thumb */
61
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_track */
62
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_default_properties_colors_track-active */
63
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_icon-color */
64
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-background */
65
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-border-color */
66
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-text */
67
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_step-indicator-color */
68
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_step-indicator-color-active */
69
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_thumb */
70
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_track */
71
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_track-active */
72
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_icon-color */
73
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-background */
74
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-border-color */
75
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-text */
76
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_step-indicator-color */
77
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_step-indicator-color-active */
78
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_thumb */
79
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_track */
80
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_error_properties_colors_track-active */
81
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_icon-color */
82
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_input-background */
83
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_input-border-color */
84
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_input-text */
85
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_step-indicator-color */
86
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_step-indicator-color-active */
87
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_thumb */
88
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_track */
89
- /* recursica-ignore: --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_track-active */
9
+ /* ==========================================
10
+ 1. Baseline, Reset & Layout Overrides
11
+ ========================================== */
12
+
13
+ /* Stacked Layout Spacing Override */
14
+ .layoutOverride {
15
+ --form-control-margin-bottom: var(
16
+ --recursica_ui-kit_components_slider_variants_layouts_stacked_properties_top-bottom-margin
17
+ );
18
+ }
19
+
20
+ /* Side-by-Side Layout Spacing Override */
21
+ .layoutOverride[data-form-layout="side-by-side"] {
22
+ --form-control-margin-bottom: var(
23
+ --recursica_ui-kit_components_slider_variants_layouts_side-by-side_properties_top-bottom-margin
24
+ );
25
+ }
26
+
27
+ .sliderContainer {
28
+ display: flex;
29
+ align-items: center;
30
+ width: 100%;
31
+ box-sizing: border-box;
32
+ gap: var(--recursica_ui-kit_components_slider_properties_input-gap);
33
+ color: var(--form-field-text-valued);
34
+ }
35
+
36
+ .sliderTrackWrapper {
37
+ flex-grow: 1;
38
+ display: flex;
39
+ flex-direction: column;
40
+ box-sizing: border-box;
41
+ }
42
+
43
+ .iconWrapper {
44
+ display: inline-flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ flex-shrink: 0;
48
+ width: var(--recursica_ui-kit_components_slider_properties_icon-size);
49
+ height: var(--recursica_ui-kit_components_slider_properties_icon-size);
50
+ color: var(
51
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_icon-color
52
+ );
53
+ }
54
+
55
+ /* ==========================================
56
+ 2. Slider Tracks, Bars, Thumbs, and Marks
57
+ ========================================== */
58
+
59
+ .sliderRoot {
60
+ width: 100%;
61
+ box-sizing: border-box;
62
+ }
63
+
64
+ .sliderTrack {
65
+ height: var(--recursica_ui-kit_components_slider_properties_track-height);
66
+ border-radius: var(
67
+ --recursica_ui-kit_components_slider_properties_track-border-radius
68
+ );
69
+ background-color: var(
70
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_track
71
+ );
72
+ }
73
+
74
+ .sliderBar {
75
+ background-color: var(
76
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_track-active
77
+ );
78
+ }
79
+
80
+ .sliderThumb {
81
+ box-sizing: border-box;
82
+ width: var(--recursica_ui-kit_components_slider_properties_thumb-size);
83
+ height: var(--recursica_ui-kit_components_slider_properties_thumb-size);
84
+ border-radius: var(
85
+ --recursica_ui-kit_components_slider_properties_thumb-border-radius
86
+ );
87
+ box-shadow: var(
88
+ --recursica_ui-kit_components_slider_properties_thumb-elevation
89
+ );
90
+ background-color: var(
91
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_thumb
92
+ );
93
+ border: none;
94
+ cursor: pointer;
95
+ outline: none;
96
+ }
97
+
98
+ .sliderThumb:focus,
99
+ .sliderThumb:focus-visible {
100
+ outline: none;
101
+ background-color: var(
102
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_thumb
103
+ );
104
+ box-shadow: 0 0 0 2px
105
+ var(
106
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_track-active
107
+ );
108
+ }
109
+
110
+ .sliderMark {
111
+ box-sizing: border-box;
112
+ width: var(
113
+ --recursica_ui-kit_components_slider_properties_step-indicator-width
114
+ );
115
+ height: var(
116
+ --recursica_ui-kit_components_slider_properties_step-indicator-width
117
+ );
118
+ border-radius: var(
119
+ --recursica_ui-kit_components_slider_properties_step-indicator-border-radius
120
+ );
121
+ background-color: var(
122
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_step-indicator-color
123
+ );
124
+ transform: translateX(-50%);
125
+ border: none;
126
+ }
127
+
128
+ .sliderMark[data-filled] {
129
+ background-color: var(
130
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_step-indicator-color-active
131
+ );
132
+ }
133
+
134
+ /* ==========================================
135
+ 3. Min / Max Custom Typography Labels & Floating Active Value
136
+ ========================================== */
137
+
138
+ .minMaxGuide {
139
+ font-family: var(
140
+ --recursica_ui-kit_components_slider_properties_min-max-label_font-family
141
+ );
142
+ font-size: var(
143
+ --recursica_ui-kit_components_slider_properties_min-max-label_font-size
144
+ );
145
+ font-style: var(
146
+ --recursica_ui-kit_components_slider_properties_min-max-label_font-style
147
+ );
148
+ font-weight: var(
149
+ --recursica_ui-kit_components_slider_properties_min-max-label_font-weight
150
+ );
151
+ letter-spacing: var(
152
+ --recursica_ui-kit_components_slider_properties_min-max-label_letter-spacing
153
+ );
154
+ line-height: var(
155
+ --recursica_ui-kit_components_slider_properties_min-max-label_line-height
156
+ );
157
+ text-decoration: var(
158
+ --recursica_ui-kit_components_slider_properties_min-max-label_text-decoration
159
+ );
160
+ text-transform: var(
161
+ --recursica_ui-kit_components_slider_properties_min-max-label_text-transform
162
+ );
163
+ }
164
+
165
+ /*
166
+ * LAYOUT DECISION: Right-Aligned Floating Current Value Container
167
+ * - Wrapped around the right-side max guide (or icon) as a relative flex context.
168
+ * - This provides the anchor for absolutely positioning the floating current value element
169
+ * above the guide.
170
+ */
171
+ .rightGuideContainer {
172
+ position: relative;
173
+ display: inline-flex;
174
+ align-items: center;
175
+ justify-content: center;
176
+ flex-shrink: 0;
177
+ }
178
+
179
+ /*
180
+ * LAYOUT DECISION: Floating Active Value Element
181
+ * - Absolutely positioned directly above the max guide and right-aligned (`right: 0`).
182
+ * - Uses a vertical gap matching the global label-to-component gap variable, ensuring
183
+ * that `.currentValue` is placed in perfect horizontal baseline alignment with the
184
+ * left-aligned form label of the component.
185
+ * - Typography maps back to the slider component's read-only value token definitions.
186
+ * - Inherits the container default/disabled/error text colors naturally.
187
+ */
188
+ .currentValue {
189
+ position: absolute;
190
+ bottom: calc(
191
+ 100% +
192
+ var(--recursica_ui-kit_globals_form_properties_label-field-gap-vertical)
193
+ );
194
+ right: 0;
195
+ white-space: nowrap;
196
+ pointer-events: none;
197
+ display: inline-block;
198
+ width: var(--recursica_ui-kit_components_slider_properties_input-width);
199
+ text-align: right;
200
+
201
+ font-family: var(
202
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-family
203
+ );
204
+ font-size: var(
205
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-size
206
+ );
207
+ font-style: var(
208
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-style
209
+ );
210
+ font-weight: var(
211
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-weight
212
+ );
213
+ letter-spacing: var(
214
+ --recursica_ui-kit_components_slider_properties_read-only-value_letter-spacing
215
+ );
216
+ line-height: var(
217
+ --recursica_ui-kit_components_slider_properties_read-only-value_line-height
218
+ );
219
+ text-decoration: var(
220
+ --recursica_ui-kit_components_slider_properties_read-only-value_text-decoration
221
+ );
222
+ text-transform: var(
223
+ --recursica_ui-kit_components_slider_properties_read-only-value_text-transform
224
+ );
225
+ }
226
+
227
+ /* ==========================================
228
+ 4. Numeric Input Field
229
+ ========================================== */
230
+
231
+ .inputField {
232
+ box-sizing: border-box;
233
+ flex-shrink: 0;
234
+ width: var(--recursica_ui-kit_components_slider_properties_input-width);
235
+ height: var(--recursica_ui-kit_components_slider_properties_input-height);
236
+ border-radius: var(
237
+ --recursica_ui-kit_components_slider_properties_input-border-radius
238
+ );
239
+ border-style: solid;
240
+ border-width: var(
241
+ --recursica_ui-kit_components_slider_variants_states_default_properties_input-border-size
242
+ );
243
+ border-color: var(
244
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_input-border-color
245
+ );
246
+ background-color: var(
247
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_input-background
248
+ );
249
+ color: var(
250
+ --recursica_ui-kit_components_slider_variants_states_default_properties_colors_input-text
251
+ );
252
+
253
+ font-family: var(
254
+ --recursica_ui-kit_components_slider_properties_input-text_font-family
255
+ );
256
+ font-size: var(
257
+ --recursica_ui-kit_components_slider_properties_input-text_font-size
258
+ );
259
+ font-style: var(
260
+ --recursica_ui-kit_components_slider_properties_input-text_font-style
261
+ );
262
+ font-weight: var(
263
+ --recursica_ui-kit_components_slider_properties_input-text_font-weight
264
+ );
265
+ letter-spacing: var(
266
+ --recursica_ui-kit_components_slider_properties_input-text_letter-spacing
267
+ );
268
+ line-height: var(
269
+ --recursica_ui-kit_components_slider_properties_input-text_line-height
270
+ );
271
+ text-decoration: var(
272
+ --recursica_ui-kit_components_slider_properties_input-text_text-decoration
273
+ );
274
+ text-transform: var(
275
+ --recursica_ui-kit_components_slider_properties_input-text_text-transform
276
+ );
277
+
278
+ padding-left: var(
279
+ --recursica_ui-kit_components_slider_properties_input-padding-left
280
+ );
281
+ padding-right: var(
282
+ --recursica_ui-kit_components_slider_properties_input-padding-right
283
+ );
284
+ padding-top: var(
285
+ --recursica_ui-kit_components_slider_properties_input-padding-vertical
286
+ );
287
+ padding-bottom: var(
288
+ --recursica_ui-kit_components_slider_properties_input-padding-vertical
289
+ );
290
+ text-align: center;
291
+ transition:
292
+ border-color 0.15s ease,
293
+ background-color 0.15s ease;
294
+ }
295
+
296
+ .inputField:focus {
297
+ outline: none;
298
+ background-color: var(
299
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_input-background
300
+ );
301
+ border-color: var(
302
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_input-border-color
303
+ );
304
+ color: var(
305
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_colors_input-text
306
+ );
307
+ border-width: var(
308
+ --recursica_ui-kit_components_slider_variants_states_focus_properties_input-border-size
309
+ );
310
+ }
311
+
312
+ /* Chrome, Safari, Edge, Opera: Hide number spin buttons */
313
+ .inputField::-webkit-outer-spin-button,
314
+ .inputField::-webkit-inner-spin-button {
315
+ -webkit-appearance: none;
316
+ margin: 0;
317
+ }
318
+
319
+ /* Firefox: Hide number spin buttons */
320
+ .inputField[type="number"] {
321
+ -moz-appearance: textfield;
322
+ }
323
+
324
+ /* ==========================================
325
+ 5. Custom Read-Only Typography Value
326
+ ========================================== */
327
+
328
+ .readOnlyValue {
329
+ font-family: var(
330
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-family
331
+ );
332
+ font-size: var(
333
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-size
334
+ );
335
+ font-style: var(
336
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-style
337
+ );
338
+ font-weight: var(
339
+ --recursica_ui-kit_components_slider_properties_read-only-value_font-weight
340
+ );
341
+ letter-spacing: var(
342
+ --recursica_ui-kit_components_slider_properties_read-only-value_letter-spacing
343
+ );
344
+ line-height: var(
345
+ --recursica_ui-kit_components_slider_properties_read-only-value_line-height
346
+ );
347
+ text-decoration: var(
348
+ --recursica_ui-kit_components_slider_properties_read-only-value_text-decoration
349
+ );
350
+ text-transform: var(
351
+ --recursica_ui-kit_components_slider_properties_read-only-value_text-transform
352
+ );
353
+ }
354
+
355
+ /* ==========================================
356
+ 6. State-Specific Overrides (Disabled, Error)
357
+ ========================================== */
358
+
359
+ /* Disabled state */
360
+ .sliderContainer[data-disabled="true"] .iconWrapper {
361
+ color: var(
362
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_icon-color
363
+ );
364
+ }
365
+
366
+ .sliderContainer[data-disabled="true"] .sliderTrack {
367
+ background-color: var(
368
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_track
369
+ );
370
+ }
371
+
372
+ .sliderContainer[data-disabled="true"] .sliderBar {
373
+ background-color: var(
374
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_track-active
375
+ );
376
+ }
377
+
378
+ .sliderContainer[data-disabled="true"] .sliderThumb {
379
+ background-color: var(
380
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_thumb
381
+ );
382
+ cursor: not-allowed;
383
+ box-shadow: none;
384
+ }
385
+
386
+ .sliderContainer[data-disabled="true"] .sliderMark {
387
+ background-color: var(
388
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_step-indicator-color
389
+ );
390
+ }
391
+
392
+ .sliderContainer[data-disabled="true"] .sliderMark[data-filled] {
393
+ background-color: var(
394
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_step-indicator-color-active
395
+ );
396
+ }
397
+
398
+ .sliderContainer[data-disabled="true"] {
399
+ color: var(--form-field-disabled-text);
400
+ }
401
+
402
+ .inputField:disabled {
403
+ cursor: not-allowed;
404
+ background-color: var(
405
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-background
406
+ );
407
+ border-color: var(
408
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-border-color
409
+ );
410
+ color: var(
411
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_colors_input-text
412
+ );
413
+ border-width: var(
414
+ --recursica_ui-kit_components_slider_variants_states_disabled_properties_input-border-size
415
+ );
416
+ }
417
+
418
+ /* Error state */
419
+ .sliderContainer[data-error="true"] .iconWrapper {
420
+ color: var(
421
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_icon-color
422
+ );
423
+ }
424
+
425
+ .sliderContainer[data-error="true"] .sliderTrack {
426
+ background-color: var(
427
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_track
428
+ );
429
+ }
430
+
431
+ .sliderContainer[data-error="true"] .sliderBar {
432
+ background-color: var(
433
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_track-active
434
+ );
435
+ }
436
+
437
+ .sliderContainer[data-error="true"] .sliderThumb {
438
+ background-color: var(
439
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_thumb
440
+ );
441
+ }
442
+
443
+ .sliderContainer[data-error="true"] .sliderMark {
444
+ background-color: var(
445
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_step-indicator-color
446
+ );
447
+ }
448
+
449
+ .sliderContainer[data-error="true"] .sliderMark[data-filled] {
450
+ background-color: var(
451
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_step-indicator-color-active
452
+ );
453
+ }
454
+
455
+ .inputField[data-error="true"] {
456
+ background-color: var(
457
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-background
458
+ );
459
+ border-color: var(
460
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-border-color
461
+ );
462
+ color: var(
463
+ --recursica_ui-kit_components_slider_variants_states_error_properties_colors_input-text
464
+ );
465
+ border-width: var(
466
+ --recursica_ui-kit_components_slider_variants_states_error_properties_input-border-size
467
+ );
468
+ }
469
+
470
+ /* ==========================================
471
+ 7. Side-by-Side Layout Overrides
472
+ ========================================== */
473
+
474
+ .sliderContainer[data-form-layout="side-by-side"] .rightGuideContainer {
475
+ position: relative;
476
+ display: inline-flex;
477
+ flex-direction: row;
478
+ align-items: center;
479
+ justify-content: flex-end;
480
+ flex-shrink: 0;
481
+ gap: var(--recursica_ui-kit_components_slider_properties_input-gap);
482
+ }
483
+
484
+ .sliderContainer[data-form-layout="side-by-side"] .currentValue {
485
+ position: static;
486
+ white-space: nowrap;
487
+ pointer-events: none;
488
+ order: 2; /* Positioned to the right of the max label */
489
+ }
490
+
491
+ .sliderContainer[data-form-layout="side-by-side"]
492
+ .rightGuideContainer
493
+ .minMaxGuide {
494
+ order: 1; /* Positioned to the left of the current value */
495
+ }