@react-md/core 1.0.0-next.1 → 1.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +8 -0
- package/coverage/clover.xml +2 -2
- package/coverage/lcov-report/DefaultToastRenderer.tsx.html +166 -112
- package/coverage/lcov-report/Snackbar.tsx.html +360 -402
- package/coverage/lcov-report/Toast.tsx.html +868 -0
- package/coverage/lcov-report/ToastManager.tsx.html +1783 -0
- package/coverage/lcov-report/ToastManagerProvider.tsx.html +216 -216
- package/coverage/lcov-report/icon/FontIcon.tsx.html +28 -28
- package/coverage/lcov-report/icon/index.html +1 -1
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/snackbar/Snackbar.tsx.html +55 -97
- package/coverage/lcov-report/snackbar/Toast.tsx.html +546 -501
- package/coverage/lcov-report/snackbar/ToastManager.tsx.html +269 -269
- package/coverage/lcov-report/snackbar/ToastManagerProvider.tsx.html +23 -23
- package/coverage/lcov-report/snackbar/index.html +59 -14
- package/coverage/lcov-report/snackbar/snackbarStyles.ts.html +12 -87
- package/coverage/lcov-report/snackbar/toastStyles.ts.html +206 -146
- package/coverage/lcov-report/snackbar/useCurrentToastActions.ts.html +226 -0
- package/coverage/lcov-report/snackbarStyles.ts.html +46 -121
- package/coverage/lcov-report/transition/config.ts.html +5 -5
- package/coverage/lcov-report/transition/index.html +1 -1
- package/coverage/lcov-report/typography/Typography.tsx.html +108 -402
- package/coverage/lcov-report/typography/index.html +10 -10
- package/dist/_core.scss +34 -1
- package/dist/_utils.scss +57 -0
- package/dist/app-bar/_app-bar.scss +15 -23
- package/dist/avatar/_avatar.scss +25 -34
- package/dist/badge/_badge.scss +71 -44
- package/dist/box/_box.scss +18 -29
- package/dist/button/_button.scss +50 -62
- package/dist/card/_card.scss +14 -23
- package/dist/chip/_chip.scss +33 -46
- package/dist/dialog/_dialog.scss +95 -93
- package/dist/divider/Divider.d.ts +0 -1
- package/dist/divider/Divider.js.map +1 -1
- package/dist/divider/_divider.scss +33 -43
- package/dist/form/Label.d.ts +5 -5
- package/dist/form/Label.js.map +1 -1
- package/dist/form/TextArea.js +1 -1
- package/dist/form/TextArea.js.map +1 -1
- package/dist/form/TextFieldContainerStyles.d.ts +7 -7
- package/dist/form/TextFieldContainerStyles.js.map +1 -1
- package/dist/form/_form.scss +200 -203
- package/dist/form/textAreaStyles.d.ts +2 -2
- package/dist/form/textAreaStyles.js.map +1 -1
- package/dist/form/types.d.ts +0 -2
- package/dist/form/types.js.map +1 -1
- package/dist/icon/_icon.scss +31 -47
- package/dist/interaction/_interaction.scss +47 -57
- package/dist/layout/_layout.scss +14 -19
- package/dist/link/_link.scss +15 -23
- package/dist/list/_list.scss +53 -63
- package/dist/menu/_menu.scss +16 -27
- package/dist/overlay/_overlay.scss +14 -19
- package/dist/progress/_progress.scss +25 -30
- package/dist/segmented-button/_segmented-button.scss +32 -43
- package/dist/sheet/_sheet.scss +24 -42
- package/dist/snackbar/DefaultToastRenderer.js +1 -1
- package/dist/snackbar/DefaultToastRenderer.js.map +1 -1
- package/dist/snackbar/Snackbar.d.ts +1 -3
- package/dist/snackbar/Snackbar.js +2 -3
- package/dist/snackbar/Snackbar.js.map +1 -1
- package/dist/snackbar/Toast.d.ts +1 -1
- package/dist/snackbar/Toast.js +5 -1
- package/dist/snackbar/Toast.js.map +1 -1
- package/dist/snackbar/ToastManager.d.ts +2 -1
- package/dist/snackbar/ToastManager.js +1 -1
- package/dist/snackbar/ToastManager.js.map +1 -1
- package/dist/snackbar/_snackbar.scss +15 -23
- package/dist/table/_table.scss +55 -70
- package/dist/tabs/_tabs.scss +25 -30
- package/dist/theme/_theme.scss +31 -89
- package/dist/tooltip/_tooltip.scss +16 -25
- package/dist/transition/_transition.scss +38 -37
- package/dist/tree/_tree.scss +102 -109
- package/dist/typography/_typography.scss +17 -22
- package/dist/window-splitter/_window-splitter.scss +19 -45
- package/package.json +1 -1
- package/src/_core.scss +34 -1
- package/src/_utils.scss +57 -0
- package/src/app-bar/_app-bar.scss +15 -23
- package/src/avatar/_avatar.scss +25 -34
- package/src/badge/_badge.scss +71 -44
- package/src/box/_box.scss +18 -29
- package/src/button/_button.scss +50 -62
- package/src/card/_card.scss +14 -23
- package/src/chip/_chip.scss +33 -46
- package/src/dialog/_dialog.scss +95 -93
- package/src/divider/Divider.tsx +0 -1
- package/src/divider/_divider.scss +33 -43
- package/src/form/Label.tsx +5 -5
- package/src/form/TextArea.tsx +1 -1
- package/src/form/TextFieldContainerStyles.ts +7 -7
- package/src/form/_form.scss +200 -203
- package/src/form/textAreaStyles.ts +2 -2
- package/src/form/types.ts +0 -2
- package/src/icon/_icon.scss +31 -47
- package/src/interaction/_interaction.scss +47 -57
- package/src/layout/_layout.scss +14 -19
- package/src/link/_link.scss +15 -23
- package/src/list/_list.scss +53 -63
- package/src/menu/_menu.scss +16 -27
- package/src/overlay/_overlay.scss +14 -19
- package/src/progress/_progress.scss +25 -30
- package/src/segmented-button/_segmented-button.scss +32 -43
- package/src/sheet/_sheet.scss +24 -42
- package/src/snackbar/DefaultToastRenderer.tsx +1 -1
- package/src/snackbar/Snackbar.tsx +17 -25
- package/src/snackbar/Toast.tsx +7 -2
- package/src/snackbar/ToastManager.tsx +3 -2
- package/src/snackbar/__tests__/Snackbar.tsx +12 -11
- package/src/snackbar/__tests__/ToastManagerProvider.tsx +20 -42
- package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +127 -27
- package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +23 -8
- package/src/snackbar/_snackbar.scss +15 -23
- package/src/table/_table.scss +55 -70
- package/src/tabs/_tabs.scss +25 -30
- package/src/theme/_theme.scss +31 -89
- package/src/tooltip/_tooltip.scss +16 -25
- package/src/transition/_transition.scss +38 -37
- package/src/tree/_tree.scss +102 -109
- package/src/typography/_typography.scss +17 -22
- package/src/window-splitter/_window-splitter.scss +19 -45
- package/.turbo/turbo-lint.log +0 -12
- package/.turbo/turbo-test.log +0 -166
- package/.turbo/turbo-typecheck.log +0 -4
- package/dist/divider/VerticalDivider.d.ts +0 -32
- package/dist/divider/useVerticalDividerHeight.d.ts +0 -37
- package/dist/icon/MaterialIconsProvider.d.ts +0 -12
- package/dist/icon/MaterialIconsProvider.js +0 -17
- package/dist/icon/MaterialIconsProvider.js.map +0 -1
- package/dist/icon/MaterialSymbolsProvider.d.ts +0 -145
- package/dist/icon/MaterialSymbolsProvider.js +0 -60
- package/dist/icon/MaterialSymbolsProvider.js.map +0 -1
- package/dist/link/LinkProvider.d.ts +0 -29
- package/dist/menu/menuConfig.d.ts +0 -60
- package/dist/tooltip/useOverflowTooltip.d.ts +0 -61
package/dist/card/_card.scss
CHANGED
|
@@ -44,37 +44,21 @@ $content-padding-bottom: 1.5rem !default;
|
|
|
44
44
|
|
|
45
45
|
$footer-padding: 0.5rem !default;
|
|
46
46
|
|
|
47
|
-
$
|
|
48
|
-
background-color: (
|
|
49
|
-
var: --rmd-card-background-color,
|
|
50
|
-
value: $background-color,
|
|
51
|
-
),
|
|
52
|
-
color: (
|
|
53
|
-
var: --rmd-card-color,
|
|
54
|
-
value: $color,
|
|
55
|
-
),
|
|
56
|
-
secondary-color: (
|
|
57
|
-
var: --rmd-card-secondary-color,
|
|
58
|
-
value: null,
|
|
59
|
-
),
|
|
60
|
-
);
|
|
47
|
+
$variables: (background-color, color, secondary-color);
|
|
61
48
|
|
|
62
49
|
@function get-var($name, $fallback: null) {
|
|
63
|
-
$
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
@if $value {
|
|
68
|
-
@return var(#{$var}, #{$value});
|
|
50
|
+
$var: utils.get-var-name($variables, $name, "card");
|
|
51
|
+
@if $fallback {
|
|
52
|
+
@return var(#{$var}, #{$fallback});
|
|
69
53
|
}
|
|
70
54
|
|
|
71
55
|
@return var(#{$var});
|
|
72
56
|
}
|
|
73
57
|
|
|
74
58
|
@mixin set-var($name, $value) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
59
|
+
@if $value {
|
|
60
|
+
#{utils.get-var-name($variables, $name, "card")}: #{$value};
|
|
61
|
+
}
|
|
78
62
|
}
|
|
79
63
|
|
|
80
64
|
@mixin use-var($property, $name: $property, $fallback: null) {
|
|
@@ -93,6 +77,13 @@ $var-lookup: (
|
|
|
93
77
|
}
|
|
94
78
|
}
|
|
95
79
|
|
|
80
|
+
@mixin variables {
|
|
81
|
+
@if not $disable-everything {
|
|
82
|
+
@include set-var(background-color, $background-color);
|
|
83
|
+
@include set-var(color, $color);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
96
87
|
@mixin styles {
|
|
97
88
|
@if not $disable-everything {
|
|
98
89
|
@include theme.default-system-theme {
|
package/dist/chip/_chip.scss
CHANGED
|
@@ -111,61 +111,31 @@ $outline-text-color: theme.get-default-color(
|
|
|
111
111
|
$outline-raisable-box-shadow-z-value: 8 !default;
|
|
112
112
|
$outline-raisable-transition-duration: transition.$linear-duration !default;
|
|
113
113
|
|
|
114
|
-
$
|
|
115
|
-
solid-background-color
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
var: --rmd-chip-solid-color,
|
|
125
|
-
value: $solid-color,
|
|
126
|
-
),
|
|
127
|
-
theme-background-color: (
|
|
128
|
-
var: --rmd-chip-theme-background-color,
|
|
129
|
-
value: $theme-background-color,
|
|
130
|
-
),
|
|
131
|
-
theme-color: (
|
|
132
|
-
var: --rmd-chip-theme-color,
|
|
133
|
-
value: $theme-color,
|
|
134
|
-
),
|
|
135
|
-
outline-color: (
|
|
136
|
-
var: --rmd-chip-outline-color,
|
|
137
|
-
value: $outline-color,
|
|
138
|
-
),
|
|
139
|
-
outline-width: (
|
|
140
|
-
var: --rmd-chip-outline-width,
|
|
141
|
-
value: $outline-width,
|
|
142
|
-
),
|
|
143
|
-
outline-background-color: (
|
|
144
|
-
var: --rmd-chip-outline-background-color,
|
|
145
|
-
value: $outline-background-color,
|
|
146
|
-
),
|
|
147
|
-
outline-text-color: (
|
|
148
|
-
var: --rmd-chip-outline-text-color,
|
|
149
|
-
value: $outline-text-color,
|
|
150
|
-
),
|
|
114
|
+
$variables: (
|
|
115
|
+
solid-background-color,
|
|
116
|
+
solid-disabled-background-color,
|
|
117
|
+
solid-color,
|
|
118
|
+
theme-background-color,
|
|
119
|
+
theme-color,
|
|
120
|
+
outline-color,
|
|
121
|
+
outline-width,
|
|
122
|
+
outline-background-color,
|
|
123
|
+
outline-text-color
|
|
151
124
|
);
|
|
152
125
|
|
|
153
126
|
@function get-var($name, $fallback: null) {
|
|
154
|
-
$
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
@if $value {
|
|
159
|
-
@return var(#{$var}, #{$value});
|
|
127
|
+
$var: utils.get-var-name($variables, $name, "chip");
|
|
128
|
+
@if $fallback {
|
|
129
|
+
@return var(#{$var}, #{$fallback});
|
|
160
130
|
}
|
|
161
131
|
|
|
162
132
|
@return var(#{$var});
|
|
163
133
|
}
|
|
164
134
|
|
|
165
135
|
@mixin set-var($name, $value) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
136
|
+
@if $value {
|
|
137
|
+
#{utils.get-var-name($variables, $name, "chip")}: #{$value};
|
|
138
|
+
}
|
|
169
139
|
}
|
|
170
140
|
|
|
171
141
|
@mixin use-var($property, $name: $property, $fallback: null) {
|
|
@@ -202,6 +172,23 @@ $var-lookup: (
|
|
|
202
172
|
}
|
|
203
173
|
}
|
|
204
174
|
|
|
175
|
+
@mixin variables {
|
|
176
|
+
@if not $disable-everything {
|
|
177
|
+
@include set-var(solid-background-color, $solid-background-color);
|
|
178
|
+
@include set-var(
|
|
179
|
+
solid-disabled-background-color,
|
|
180
|
+
$solid-disabled-background-color
|
|
181
|
+
);
|
|
182
|
+
@include set-var(solid-color, $solid-color);
|
|
183
|
+
@include set-var(theme-background-color, $theme-background-color);
|
|
184
|
+
@include set-var(theme-color, $theme-color);
|
|
185
|
+
@include set-var(outline-color, $outline-color);
|
|
186
|
+
@include set-var(outline-width, $outline-width);
|
|
187
|
+
@include set-var(outline-background-color, $outline-background-color);
|
|
188
|
+
@include set-var(outline-text-color, $outline-text-color);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
205
192
|
@mixin styles {
|
|
206
193
|
@if not $disable-everything {
|
|
207
194
|
@include theme.default-system-theme {
|
package/dist/dialog/_dialog.scss
CHANGED
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
|
|
8
8
|
$disable-everything: false !default;
|
|
9
9
|
$disable-fixed: false !default;
|
|
10
|
+
$disable-header: false !default;
|
|
11
|
+
$disable-title: false !default;
|
|
12
|
+
$disable-content: false !default;
|
|
13
|
+
$disable-footer: false !default;
|
|
10
14
|
$disable-focus-outline: false !default;
|
|
11
15
|
$disable-footer-flex-vertical: false !default;
|
|
12
16
|
$disable-footer-flex-start: false !default;
|
|
@@ -36,71 +40,61 @@ $content-padding: 1.5rem !default;
|
|
|
36
40
|
|
|
37
41
|
$footer-padding: 0.5rem !default;
|
|
38
42
|
|
|
39
|
-
$
|
|
40
|
-
background-color
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
value: $min-width,
|
|
51
|
-
),
|
|
52
|
-
horizontal-margin: (
|
|
53
|
-
var: --rmd-dialog-h-margin,
|
|
54
|
-
value: $horizontal-margin,
|
|
55
|
-
),
|
|
56
|
-
vertical-margin: (
|
|
57
|
-
var: --rmd-dialog-v-margin,
|
|
58
|
-
value: $vertical-margin,
|
|
59
|
-
),
|
|
60
|
-
z-index: (
|
|
61
|
-
var: --rmd-dialog-z-index,
|
|
62
|
-
value: $z-index,
|
|
63
|
-
),
|
|
64
|
-
header-padding: (
|
|
65
|
-
var: --rmd-dialog-header-padding,
|
|
66
|
-
value: $header-padding,
|
|
67
|
-
),
|
|
68
|
-
header-padding-bottom: (
|
|
69
|
-
var: --rmd-dialog-header-padding-bottom,
|
|
70
|
-
value: $header-padding-bottom,
|
|
71
|
-
),
|
|
72
|
-
content-padding: (
|
|
73
|
-
var: --rmd-dialog-content-padding,
|
|
74
|
-
value: $content-padding,
|
|
75
|
-
),
|
|
76
|
-
footer-padding: (
|
|
77
|
-
var: --rmd-dialog-footer-padding,
|
|
78
|
-
value: $footer-padding,
|
|
79
|
-
),
|
|
43
|
+
$variables: (
|
|
44
|
+
background-color,
|
|
45
|
+
color,
|
|
46
|
+
min-width,
|
|
47
|
+
horizontal-margin,
|
|
48
|
+
vertical-margin,
|
|
49
|
+
z-index,
|
|
50
|
+
header-padding,
|
|
51
|
+
header-padding-bottom,
|
|
52
|
+
content-padding,
|
|
53
|
+
footer-padding
|
|
80
54
|
);
|
|
81
55
|
|
|
82
56
|
@function get-var($name, $fallback: null) {
|
|
83
|
-
$
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
@if $value {
|
|
88
|
-
@return var(#{$var}, #{$value});
|
|
57
|
+
$var: utils.get-var-name($variables, $name, "dialog");
|
|
58
|
+
@if $fallback {
|
|
59
|
+
@return var(#{$var}, #{$fallback});
|
|
89
60
|
}
|
|
90
61
|
|
|
91
62
|
@return var(#{$var});
|
|
92
63
|
}
|
|
93
64
|
|
|
94
65
|
@mixin set-var($name, $value) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
66
|
+
@if $value {
|
|
67
|
+
#{utils.get-var-name($variables, $name, "dialog")}: #{$value};
|
|
68
|
+
}
|
|
98
69
|
}
|
|
99
70
|
|
|
100
71
|
@mixin use-var($property, $name: $property, $fallback: null) {
|
|
101
72
|
#{$property}: get-var($name, $fallback);
|
|
102
73
|
}
|
|
103
74
|
|
|
75
|
+
@mixin variables {
|
|
76
|
+
@if not $disable-everything {
|
|
77
|
+
@include set-var(background-color, $background-color);
|
|
78
|
+
@include set-var(color, $color);
|
|
79
|
+
@include set-var(min-width, $min-width);
|
|
80
|
+
@include set-var(horizontal-margin, $horizontal-margin);
|
|
81
|
+
@include set-var(vertical-margin, $vertical-margin);
|
|
82
|
+
@include set-var(z-index, $z-index);
|
|
83
|
+
|
|
84
|
+
@if not $disable-header {
|
|
85
|
+
@include set-var(header-padding, $header-padding);
|
|
86
|
+
@include set-var(header-padding-bottom, $header-padding-bottom);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@if not $disable-content {
|
|
90
|
+
@include set-var(content-padding, $content-padding);
|
|
91
|
+
}
|
|
92
|
+
@if not $disable-footer {
|
|
93
|
+
@include set-var(footer-padding, $footer-padding);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
104
98
|
@mixin styles {
|
|
105
99
|
@if not $disable-everything {
|
|
106
100
|
.rmd-dialog-container {
|
|
@@ -188,66 +182,74 @@ $var-lookup: (
|
|
|
188
182
|
}
|
|
189
183
|
}
|
|
190
184
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
185
|
+
@if not $disable-header {
|
|
186
|
+
&__header {
|
|
187
|
+
@include use-var(padding, header-padding);
|
|
188
|
+
@include use-var(padding-bottom, header-padding-bottom);
|
|
194
189
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
190
|
+
align-items: center;
|
|
191
|
+
display: flex;
|
|
192
|
+
flex: 0 0 auto;
|
|
193
|
+
}
|
|
198
194
|
}
|
|
199
195
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
196
|
+
@if not $disable-title {
|
|
197
|
+
&__title {
|
|
198
|
+
// this makes it so it's easy to add a close button after the title
|
|
199
|
+
flex: 1 1 auto;
|
|
200
|
+
}
|
|
203
201
|
}
|
|
204
202
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
203
|
+
@if not $disable-content {
|
|
204
|
+
&__content {
|
|
205
|
+
flex: 1 1 auto;
|
|
206
|
+
overflow: auto;
|
|
208
207
|
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
&--padded {
|
|
209
|
+
@include use-var(padding, content-padding);
|
|
210
|
+
}
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
214
|
+
@if not $disable-footer {
|
|
215
|
+
&__footer {
|
|
216
|
+
@include use-var(padding, footer-padding);
|
|
217
|
+
|
|
218
|
+
flex: 0 0 auto;
|
|
219
|
+
|
|
220
|
+
@if not
|
|
221
|
+
$disable-footer-flex-vertical or not
|
|
222
|
+
$disable-footer-flex-start or not
|
|
223
|
+
$disable-footer-space-between or not
|
|
224
|
+
$disable-footer-flex-end
|
|
225
|
+
{
|
|
226
|
+
&--flex {
|
|
227
|
+
display: flex;
|
|
228
|
+
}
|
|
227
229
|
}
|
|
228
|
-
}
|
|
229
230
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
231
|
+
@if not $disable-footer-flex-vertical {
|
|
232
|
+
&--flex-v {
|
|
233
|
+
flex-direction: column;
|
|
234
|
+
}
|
|
233
235
|
}
|
|
234
|
-
}
|
|
235
236
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
@if not $disable-footer-flex-start {
|
|
238
|
+
&--start {
|
|
239
|
+
justify-content: flex-start;
|
|
240
|
+
}
|
|
239
241
|
}
|
|
240
|
-
}
|
|
241
242
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
243
|
+
@if not $disable-footer-space-between {
|
|
244
|
+
&--between {
|
|
245
|
+
justify-content: space-between;
|
|
246
|
+
}
|
|
245
247
|
}
|
|
246
|
-
}
|
|
247
248
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
249
|
+
@if not $disable-footer-flex-end {
|
|
250
|
+
&--end {
|
|
251
|
+
justify-content: flex-end;
|
|
252
|
+
}
|
|
251
253
|
}
|
|
252
254
|
}
|
|
253
255
|
}
|
|
@@ -8,7 +8,6 @@ declare module "react" {
|
|
|
8
8
|
"--rmd-divider-spacing"?: string | number;
|
|
9
9
|
"--rmd-divider-vertical-spacing"?: string | number;
|
|
10
10
|
"--rmd-divider-inset"?: string | number;
|
|
11
|
-
"--rmd-divider-width"?: string | number;
|
|
12
11
|
"--rmd-divider-max-size"?: string | number;
|
|
13
12
|
}
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/divider/Divider.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from \"react\";\nimport { divider, type DividerClassNameOptions } from \"./styles.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-divider-size\"?: string | number;\n \"--rmd-divider-vertical-size\"?: string | number;\n \"--rmd-divider-color\"?: string;\n \"--rmd-divider-spacing\"?: string | number;\n \"--rmd-divider-vertical-spacing\"?: string | number;\n \"--rmd-divider-inset\"?: string | number;\n \"--rmd-divider-
|
|
1
|
+
{"version":3,"sources":["../../src/divider/Divider.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from \"react\";\nimport { divider, type DividerClassNameOptions } from \"./styles.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-divider-size\"?: string | number;\n \"--rmd-divider-vertical-size\"?: string | number;\n \"--rmd-divider-color\"?: string;\n \"--rmd-divider-spacing\"?: string | number;\n \"--rmd-divider-vertical-spacing\"?: string | number;\n \"--rmd-divider-inset\"?: string | number;\n \"--rmd-divider-max-size\"?: string | number;\n }\n}\n\nexport type DividerElement = HTMLHRElement | HTMLDivElement;\n\n/**\n * @remarks \\@since 6.0.0 Extends the {@Link DividerClassNameOptions}\n */\nexport interface DividerProps\n extends HTMLAttributes<DividerElement>,\n DividerClassNameOptions {}\n\n/**\n * **Server Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { Divider } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return <Divider />;\n * }\n * ```\n */\nexport const Divider = forwardRef<DividerElement, DividerProps>(\n function Divider(props, ref) {\n const {\n inset = false,\n vertical = false,\n role = \"separator\",\n className,\n ...remaining\n } = props;\n\n const Component = (vertical ? \"div\" : \"hr\") as ElementType;\n\n return (\n <Component\n {...remaining}\n ref={ref}\n role={role}\n className={divider({\n inset,\n vertical,\n className,\n })}\n />\n );\n }\n);\n"],"names":["forwardRef","divider","Divider","props","ref","inset","vertical","role","className","remaining","Component"],"mappings":";AAAA,SAASA,UAAU,QAA+C,QAAQ;AAC1E,SAASC,OAAO,QAAsC,cAAc;AAuBpE;;;;;;;;;;;;;CAaC,GACD,OAAO,MAAMC,wBAAUF,WACrB,SAASE,QAAQC,KAAK,EAAEC,GAAG;IACzB,MAAM,EACJC,QAAQ,KAAK,EACbC,WAAW,KAAK,EAChBC,OAAO,WAAW,EAClBC,SAAS,EACT,GAAGC,WACJ,GAAGN;IAEJ,MAAMO,YAAaJ,WAAW,QAAQ;IAEtC,qBACE,KAACI;QACE,GAAGD,SAAS;QACbL,KAAKA;QACLG,MAAMA;QACNC,WAAWP,QAAQ;YACjBI;YACAC;YACAE;QACF;;AAGN,GACA"}
|
|
@@ -20,57 +20,29 @@ $dark-theme-color: rgba(colors.$white, 0.12) !default;
|
|
|
20
20
|
|
|
21
21
|
$color: theme.get-default-color($light-theme-color, $dark-theme-color) !default;
|
|
22
22
|
|
|
23
|
-
$
|
|
24
|
-
size
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
vertical-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
),
|
|
32
|
-
color: (
|
|
33
|
-
var: --rmd-divider-color,
|
|
34
|
-
value: $color,
|
|
35
|
-
),
|
|
36
|
-
spacing: (
|
|
37
|
-
var: --rmd-divider-spacing,
|
|
38
|
-
value: $spacing,
|
|
39
|
-
),
|
|
40
|
-
vertical-spacing: (
|
|
41
|
-
var: --rmd-divider-vertical-spacing,
|
|
42
|
-
value: $vertical-spacing,
|
|
43
|
-
),
|
|
44
|
-
inset: (
|
|
45
|
-
var: --rmd-divider-inset,
|
|
46
|
-
value: $inset,
|
|
47
|
-
),
|
|
48
|
-
width: (
|
|
49
|
-
var: --rmd-divider-width,
|
|
50
|
-
value: $max-size,
|
|
51
|
-
),
|
|
52
|
-
max-size: (
|
|
53
|
-
var: --rmd-divider-max-size,
|
|
54
|
-
value: $max-size,
|
|
55
|
-
),
|
|
23
|
+
$variables: (
|
|
24
|
+
size,
|
|
25
|
+
vertical-size,
|
|
26
|
+
color,
|
|
27
|
+
spacing,
|
|
28
|
+
vertical-spacing,
|
|
29
|
+
inset,
|
|
30
|
+
max-size
|
|
56
31
|
);
|
|
57
32
|
|
|
58
33
|
@function get-var($name, $fallback: null) {
|
|
59
|
-
$
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
@if $value {
|
|
64
|
-
@return var(#{$var}, #{$value});
|
|
34
|
+
$var: utils.get-var-name($variables, $name, "divider");
|
|
35
|
+
@if $fallback {
|
|
36
|
+
@return var(#{$var}, #{$fallback});
|
|
65
37
|
}
|
|
66
38
|
|
|
67
39
|
@return var(#{$var});
|
|
68
40
|
}
|
|
69
41
|
|
|
70
42
|
@mixin set-var($name, $value) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
43
|
+
@if $value {
|
|
44
|
+
#{utils.get-var-name($variables, $name, "divider")}: #{$value};
|
|
45
|
+
}
|
|
74
46
|
}
|
|
75
47
|
|
|
76
48
|
@mixin use-var($property, $name: $property, $fallback: null) {
|
|
@@ -95,6 +67,24 @@ $var-lookup: (
|
|
|
95
67
|
#{$property}: get-var(size) solid get-var(color);
|
|
96
68
|
}
|
|
97
69
|
|
|
70
|
+
@mixin variables {
|
|
71
|
+
@if not $disable-everything {
|
|
72
|
+
@include set-var(size, $size);
|
|
73
|
+
@include set-var(color, $color);
|
|
74
|
+
@include set-var(spacing, $spacing);
|
|
75
|
+
@include set-var(max-size, $max-size);
|
|
76
|
+
|
|
77
|
+
@if not $disable-inset {
|
|
78
|
+
@include set-var(inset, $inset);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@if not $disable-vertical {
|
|
82
|
+
@include set-var(vertical-size, $vertical-size);
|
|
83
|
+
@include set-var(vertical-spacing, $vertical-spacing);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
98
88
|
@mixin styles {
|
|
99
89
|
@if not $disable-everything {
|
|
100
90
|
@include theme.default-system-theme {
|
|
@@ -103,7 +93,7 @@ $var-lookup: (
|
|
|
103
93
|
|
|
104
94
|
.rmd-divider {
|
|
105
95
|
@include use-var(margin, spacing);
|
|
106
|
-
@include use-var(width);
|
|
96
|
+
@include use-var(width, max-size);
|
|
107
97
|
|
|
108
98
|
border: get-var(size) solid get-var(color);
|
|
109
99
|
display: block;
|
package/dist/form/Label.d.ts
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import { type LabelClassNameOptions, type LabelProps } from "./types.js";
|
|
3
3
|
declare module "react" {
|
|
4
4
|
interface CSSProperties {
|
|
5
|
-
"--rmd-
|
|
6
|
-
"--rmd-
|
|
7
|
-
"--rmd-
|
|
8
|
-
"--rmd-
|
|
9
|
-
"--rmd-
|
|
5
|
+
"--rmd-label-floating-top"?: string | number;
|
|
6
|
+
"--rmd-label-left-offset"?: string | number;
|
|
7
|
+
"--rmd-label-top-offset"?: string | number;
|
|
8
|
+
"--rmd-label-active-padding"?: string | number;
|
|
9
|
+
"--rmd-label-active-background-color"?: string;
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
/**
|
package/dist/form/Label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/form/Label.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef } from \"react\";\nimport { type TextColor, type ThemeColor, cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { type LabelClassNameOptions, type LabelProps } from \"./types.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-
|
|
1
|
+
{"version":3,"sources":["../../src/form/Label.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef } from \"react\";\nimport { type TextColor, type ThemeColor, cssUtils } from \"../cssUtils.js\";\nimport { bem } from \"../utils/bem.js\";\nimport { type LabelClassNameOptions, type LabelProps } from \"./types.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-label-floating-top\"?: string | number;\n \"--rmd-label-left-offset\"?: string | number;\n \"--rmd-label-top-offset\"?: string | number;\n \"--rmd-label-active-padding\"?: string | number;\n \"--rmd-label-active-background-color\"?: string;\n }\n}\n\nconst labelStyles = bem(\"rmd-label\");\n\n/**\n * @remarks \\@since 6.0.0\n */\nexport function label(options: LabelClassNameOptions): string {\n const {\n className,\n gap = false,\n error = false,\n dense = false,\n active = false,\n stacked = false,\n reversed = false,\n disabled = false,\n floating = false,\n inactive = false,\n floatingActive = active,\n } = options;\n\n let textColor: TextColor | ThemeColor | undefined;\n if (disabled) {\n textColor = \"text-disabled\";\n } else if (error) {\n textColor = \"error\";\n } else if (floating && inactive) {\n textColor = \"text-secondary\";\n }\n\n return cnb(\n labelStyles({\n gap,\n error,\n dense,\n active,\n disabled,\n floating,\n stacked: stacked && !reversed,\n reversed: !stacked && reversed,\n \"stacked-reversed\": stacked && reversed,\n \"floating-dense\": floating && dense,\n \"floating-active\": floating && floatingActive,\n }),\n cssUtils({\n textColor,\n }),\n className\n );\n}\n\n/**\n * **Server Component**\n *\n * Most of the form components already use this `Label` internally when a\n * `label` prop has been provided. You should generally use this component if\n * you need to separate the label from an existing form component or you need to\n * create a custom implementation of a form component.\n *\n * @remarks \\@since 6.0.0 Updated to be usable externally and combines the\n * floating label styles instead of having separate components.\n */\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(\n function Label(props, ref) {\n const {\n gap = false,\n error = false,\n dense = false,\n active = false,\n stacked = false,\n reversed = false,\n disabled = false,\n floating = false,\n inactive = false,\n floatingActive = active,\n className,\n children,\n ...remaining\n } = props;\n\n return (\n <label\n ref={ref}\n {...remaining}\n className={label({\n gap,\n error,\n dense,\n active,\n stacked,\n reversed,\n disabled,\n floating,\n floatingActive,\n inactive,\n className,\n })}\n >\n {children}\n </label>\n );\n }\n);\n"],"names":["cnb","forwardRef","cssUtils","bem","labelStyles","label","options","className","gap","error","dense","active","stacked","reversed","disabled","floating","inactive","floatingActive","textColor","Label","props","ref","children","remaining"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAQ,QAAQ;AACnC,SAA0CC,QAAQ,QAAQ,iBAAiB;AAC3E,SAASC,GAAG,QAAQ,kBAAkB;AAatC,MAAMC,cAAcD,IAAI;AAExB;;CAEC,GACD,OAAO,SAASE,MAAMC,OAA8B;IAClD,MAAM,EACJC,SAAS,EACTC,MAAM,KAAK,EACXC,QAAQ,KAAK,EACbC,QAAQ,KAAK,EACbC,SAAS,KAAK,EACdC,UAAU,KAAK,EACfC,WAAW,KAAK,EAChBC,WAAW,KAAK,EAChBC,WAAW,KAAK,EAChBC,WAAW,KAAK,EAChBC,iBAAiBN,MAAM,EACxB,GAAGL;IAEJ,IAAIY;IACJ,IAAIJ,UAAU;QACZI,YAAY;IACd,OAAO,IAAIT,OAAO;QAChBS,YAAY;IACd,OAAO,IAAIH,YAAYC,UAAU;QAC/BE,YAAY;IACd;IAEA,OAAOlB,IACLI,YAAY;QACVI;QACAC;QACAC;QACAC;QACAG;QACAC;QACAH,SAASA,WAAW,CAACC;QACrBA,UAAU,CAACD,WAAWC;QACtB,oBAAoBD,WAAWC;QAC/B,kBAAkBE,YAAYL;QAC9B,mBAAmBK,YAAYE;IACjC,IACAf,SAAS;QACPgB;IACF,IACAX;AAEJ;AAEA;;;;;;;;;;CAUC,GACD,OAAO,MAAMY,sBAAQlB,WACnB,SAASkB,MAAMC,KAAK,EAAEC,GAAG;IACvB,MAAM,EACJb,MAAM,KAAK,EACXC,QAAQ,KAAK,EACbC,QAAQ,KAAK,EACbC,SAAS,KAAK,EACdC,UAAU,KAAK,EACfC,WAAW,KAAK,EAChBC,WAAW,KAAK,EAChBC,WAAW,KAAK,EAChBC,WAAW,KAAK,EAChBC,iBAAiBN,MAAM,EACvBJ,SAAS,EACTe,QAAQ,EACR,GAAGC,WACJ,GAAGH;IAEJ,qBACE,KAACf;QACCgB,KAAKA;QACJ,GAAGE,SAAS;QACbhB,WAAWF,MAAM;YACfG;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAE;YACAD;YACAT;QACF;kBAECe;;AAGP,GACA"}
|
package/dist/form/TextArea.js
CHANGED
|
@@ -115,7 +115,7 @@ import { useResizingTextArea } from "./useResizingTextArea.js";
|
|
|
115
115
|
ref: containerRef,
|
|
116
116
|
style: {
|
|
117
117
|
...style,
|
|
118
|
-
"--rmd-
|
|
118
|
+
"--rmd-textarea-height": height
|
|
119
119
|
},
|
|
120
120
|
className: textAreaContainer({
|
|
121
121
|
animate: !disableTransition && resize == "auto",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/form/TextArea.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n useRef,\n type CSSProperties,\n type HTMLAttributes,\n type TextareaHTMLAttributes,\n} from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { FormMessageContainer } from \"./FormMessageContainer.js\";\nimport { Label } from \"./Label.js\";\nimport { TextFieldContainer } from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { textArea, textAreaContainer } from \"./textAreaStyles.js\";\nimport { type FormFieldOptions } from \"./types.js\";\nimport {\n useResizingTextArea,\n type TextAreaResize,\n} from \"./useResizingTextArea.js\";\n\nexport interface TextAreaProps\n extends FormFieldOptions,\n TextareaHTMLAttributes<HTMLTextAreaElement> {\n /**\n * Optional placeholder text to display in the text field.\n *\n * @defaultValue `label ? \" \" : \"\"`\n */\n placeholder?: string;\n\n /**\n * Set this to `true` if the auto resizing textarea should not animate for new\n * height changes.\n *\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n\n /**\n * An optional style to apply to the textarea element. The base `style` prop\n * is applied to the surrounding `div` instead.\n */\n areaStyle?: CSSProperties;\n\n /**\n * An optional className to apply to the textarea element. The base `style`\n * prop is applied to the surrounding `div` instead.\n */\n areaClassName?: string;\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attr-rows\n * @defaultValue `2`\n */\n rows?: number;\n\n /**\n * The maximum number of rows a textarea can expand to before showing a\n * scrollbar. When this is set to `-1`, there will be no limit.\n *\n * @defaultValue `-1`\n */\n maxRows?: number;\n\n /**\n * @see {@link TextAreaResize}\n * @defaultValue `\"auto\"`\n */\n resize?: TextAreaResize;\n\n /**\n * When the {@link resize} prop is set to `\"auto\"`, an additional `<div>` is\n * added along with a hidden `<textarea>` mask. This prop can be used to add\n * any additional styling or props to that div.\n *\n * This will only be applied when {@link resize} is set to `\"auto\"`.\n */\n resizeContainerProps?: PropsWithRef<\n HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { TextArea } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <TextArea\n * label=\"Label\"\n * placeholder=\"Placeholder\"\n * />\n * );\n * }\n * ```\n */\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(props, ref) {\n const {\n id: propId,\n style,\n className,\n label,\n labelProps,\n labelStyle,\n labelClassName,\n areaStyle,\n areaClassName,\n resizeContainerProps,\n resize = \"auto\",\n dense = false,\n error = false,\n active = false,\n inline: propInline = false,\n stretch = false,\n leftAddon,\n rightAddon,\n disableLeftAddonStyles = false,\n disableRightAddonStyles = false,\n theme: propTheme,\n underlineDirection: propUnderlineDirection,\n messageProps,\n messageContainerProps,\n rows = 2,\n maxRows = -1,\n onChange: propOnChange,\n disableTransition = false,\n ...remaining\n } = props;\n const { disabled = false, readOnly = false, value, defaultValue } = props;\n const id = useEnsuredId(propId, \"text-field\");\n const theme = getFormConfig(\"theme\", propTheme);\n const underlineDirection = getFormConfig(\n \"underlineDirection\",\n propUnderlineDirection\n );\n const [areaRef, areaRefCallback] = useEnsuredRef(ref);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const { maskRef, height, onChange, scrollable } = useResizingTextArea({\n maxRows,\n resize,\n onChange: propOnChange,\n containerRef,\n });\n\n let { placeholder = \"\" } = props;\n if (label && !placeholder) {\n // See the placeholder type definition comments for information\n placeholder = \" \";\n }\n\n // have to force it inline or else you won't be able to resize\n // it horizontally.\n const inline = resize === \"horizontal\" || resize === \"both\" || propInline;\n\n const area = (\n <textarea\n {...remaining}\n id={id}\n ref={areaRefCallback}\n rows={rows}\n disabled={disabled}\n onChange={onChange}\n style={areaStyle}\n className={textArea({\n resize,\n scrollable,\n className: areaClassName,\n placeholderHidden: !!label && !active,\n })}\n />\n );\n\n const labelNode = label && (\n <Label\n {...labelProps}\n htmlFor={id}\n style={labelProps?.style ?? labelStyle}\n className={labelProps?.className ?? labelClassName}\n floating\n dense={dense}\n error={error}\n active={active}\n disabled={disabled}\n >\n {label}\n </Label>\n );\n\n let children = (\n <>\n {area}\n {labelNode}\n </>\n );\n\n if (resize === \"auto\") {\n children = (\n <div\n {...resizeContainerProps}\n className={cnb(\n \"rmd-textarea-container__inner\",\n !disableTransition && \"rmd-textarea-container__inner--animate\",\n resizeContainerProps?.className\n )}\n >\n {area}\n {labelNode}\n <textarea\n aria-hidden\n id={`${id}-mask`}\n ref={maskRef}\n defaultValue={value ?? defaultValue}\n readOnly\n tabIndex={-1}\n rows={rows}\n style={areaStyle}\n className={textArea({\n mask: true,\n resize,\n className: areaClassName,\n })}\n />\n </div>\n );\n }\n\n return (\n <FormMessageContainer\n {...messageContainerProps}\n messageProps={messageProps}\n >\n <TextFieldContainer\n ref={containerRef}\n style={{\n ...style,\n \"--rmd-form-textarea-height\": height,\n }}\n className={textAreaContainer({\n animate: !disableTransition && resize == \"auto\",\n disabled,\n height: !!height,\n underlineLabelled:\n !!label && (theme === \"underline\" || theme === \"filled\"),\n className,\n })}\n theme={theme}\n label={!!label}\n error={error}\n dense={dense}\n inline={inline}\n active={active}\n stretch={stretch}\n readOnly={readOnly}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n underlineDirection={underlineDirection}\n disableLeftAddonStyles={disableLeftAddonStyles}\n disableRightAddonStyles={disableRightAddonStyles}\n onClick={(event) => {\n // The textarea container adds padding-top when there is a label so\n // that the label does not cover the text so this makes it so you\n // can still click anywhere in the \"box\" to focus the textarea.\n if (!disabled && event.target === event.currentTarget) {\n areaRef.current?.focus();\n }\n }}\n >\n {children}\n </TextFieldContainer>\n </FormMessageContainer>\n );\n }\n);\n"],"names":["cnb","forwardRef","useRef","useEnsuredId","useEnsuredRef","FormMessageContainer","Label","TextFieldContainer","getFormConfig","textArea","textAreaContainer","useResizingTextArea","TextArea","props","ref","id","propId","style","className","label","labelProps","labelStyle","labelClassName","areaStyle","areaClassName","resizeContainerProps","resize","dense","error","active","inline","propInline","stretch","leftAddon","rightAddon","disableLeftAddonStyles","disableRightAddonStyles","theme","propTheme","underlineDirection","propUnderlineDirection","messageProps","messageContainerProps","rows","maxRows","onChange","propOnChange","disableTransition","remaining","disabled","readOnly","value","defaultValue","areaRef","areaRefCallback","containerRef","maskRef","height","scrollable","placeholder","area","textarea","placeholderHidden","labelNode","htmlFor","floating","children","div","aria-hidden","tabIndex","mask","animate","underlineLabelled","onClick","event","target","currentTarget","current","focus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/form/TextArea.tsx"],"sourcesContent":["\"use client\";\nimport { cnb } from \"cnbuilder\";\nimport {\n forwardRef,\n useRef,\n type CSSProperties,\n type HTMLAttributes,\n type TextareaHTMLAttributes,\n} from \"react\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { useEnsuredRef } from \"../useEnsuredRef.js\";\nimport { FormMessageContainer } from \"./FormMessageContainer.js\";\nimport { Label } from \"./Label.js\";\nimport { TextFieldContainer } from \"./TextFieldContainer.js\";\nimport { getFormConfig } from \"./formConfig.js\";\nimport { textArea, textAreaContainer } from \"./textAreaStyles.js\";\nimport { type FormFieldOptions } from \"./types.js\";\nimport {\n useResizingTextArea,\n type TextAreaResize,\n} from \"./useResizingTextArea.js\";\n\nexport interface TextAreaProps\n extends FormFieldOptions,\n TextareaHTMLAttributes<HTMLTextAreaElement> {\n /**\n * Optional placeholder text to display in the text field.\n *\n * @defaultValue `label ? \" \" : \"\"`\n */\n placeholder?: string;\n\n /**\n * Set this to `true` if the auto resizing textarea should not animate for new\n * height changes.\n *\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n\n /**\n * An optional style to apply to the textarea element. The base `style` prop\n * is applied to the surrounding `div` instead.\n */\n areaStyle?: CSSProperties;\n\n /**\n * An optional className to apply to the textarea element. The base `style`\n * prop is applied to the surrounding `div` instead.\n */\n areaClassName?: string;\n\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attr-rows\n * @defaultValue `2`\n */\n rows?: number;\n\n /**\n * The maximum number of rows a textarea can expand to before showing a\n * scrollbar. When this is set to `-1`, there will be no limit.\n *\n * @defaultValue `-1`\n */\n maxRows?: number;\n\n /**\n * @see {@link TextAreaResize}\n * @defaultValue `\"auto\"`\n */\n resize?: TextAreaResize;\n\n /**\n * When the {@link resize} prop is set to `\"auto\"`, an additional `<div>` is\n * added along with a hidden `<textarea>` mask. This prop can be used to add\n * any additional styling or props to that div.\n *\n * This will only be applied when {@link resize} is set to `\"auto\"`.\n */\n resizeContainerProps?: PropsWithRef<\n HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n >;\n}\n\n/**\n * **Client Component**\n *\n * @example\n * Simple Example\n * ```tsx\n * import { TextArea } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * function Example(): ReactElement {\n * return (\n * <TextArea\n * label=\"Label\"\n * placeholder=\"Placeholder\"\n * />\n * );\n * }\n * ```\n */\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(props, ref) {\n const {\n id: propId,\n style,\n className,\n label,\n labelProps,\n labelStyle,\n labelClassName,\n areaStyle,\n areaClassName,\n resizeContainerProps,\n resize = \"auto\",\n dense = false,\n error = false,\n active = false,\n inline: propInline = false,\n stretch = false,\n leftAddon,\n rightAddon,\n disableLeftAddonStyles = false,\n disableRightAddonStyles = false,\n theme: propTheme,\n underlineDirection: propUnderlineDirection,\n messageProps,\n messageContainerProps,\n rows = 2,\n maxRows = -1,\n onChange: propOnChange,\n disableTransition = false,\n ...remaining\n } = props;\n const { disabled = false, readOnly = false, value, defaultValue } = props;\n const id = useEnsuredId(propId, \"text-field\");\n const theme = getFormConfig(\"theme\", propTheme);\n const underlineDirection = getFormConfig(\n \"underlineDirection\",\n propUnderlineDirection\n );\n const [areaRef, areaRefCallback] = useEnsuredRef(ref);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const { maskRef, height, onChange, scrollable } = useResizingTextArea({\n maxRows,\n resize,\n onChange: propOnChange,\n containerRef,\n });\n\n let { placeholder = \"\" } = props;\n if (label && !placeholder) {\n // See the placeholder type definition comments for information\n placeholder = \" \";\n }\n\n // have to force it inline or else you won't be able to resize\n // it horizontally.\n const inline = resize === \"horizontal\" || resize === \"both\" || propInline;\n\n const area = (\n <textarea\n {...remaining}\n id={id}\n ref={areaRefCallback}\n rows={rows}\n disabled={disabled}\n onChange={onChange}\n style={areaStyle}\n className={textArea({\n resize,\n scrollable,\n className: areaClassName,\n placeholderHidden: !!label && !active,\n })}\n />\n );\n\n const labelNode = label && (\n <Label\n {...labelProps}\n htmlFor={id}\n style={labelProps?.style ?? labelStyle}\n className={labelProps?.className ?? labelClassName}\n floating\n dense={dense}\n error={error}\n active={active}\n disabled={disabled}\n >\n {label}\n </Label>\n );\n\n let children = (\n <>\n {area}\n {labelNode}\n </>\n );\n\n if (resize === \"auto\") {\n children = (\n <div\n {...resizeContainerProps}\n className={cnb(\n \"rmd-textarea-container__inner\",\n !disableTransition && \"rmd-textarea-container__inner--animate\",\n resizeContainerProps?.className\n )}\n >\n {area}\n {labelNode}\n <textarea\n aria-hidden\n id={`${id}-mask`}\n ref={maskRef}\n defaultValue={value ?? defaultValue}\n readOnly\n tabIndex={-1}\n rows={rows}\n style={areaStyle}\n className={textArea({\n mask: true,\n resize,\n className: areaClassName,\n })}\n />\n </div>\n );\n }\n\n return (\n <FormMessageContainer\n {...messageContainerProps}\n messageProps={messageProps}\n >\n <TextFieldContainer\n ref={containerRef}\n style={{\n ...style,\n \"--rmd-textarea-height\": height,\n }}\n className={textAreaContainer({\n animate: !disableTransition && resize == \"auto\",\n disabled,\n height: !!height,\n underlineLabelled:\n !!label && (theme === \"underline\" || theme === \"filled\"),\n className,\n })}\n theme={theme}\n label={!!label}\n error={error}\n dense={dense}\n inline={inline}\n active={active}\n stretch={stretch}\n readOnly={readOnly}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n underlineDirection={underlineDirection}\n disableLeftAddonStyles={disableLeftAddonStyles}\n disableRightAddonStyles={disableRightAddonStyles}\n onClick={(event) => {\n // The textarea container adds padding-top when there is a label so\n // that the label does not cover the text so this makes it so you\n // can still click anywhere in the \"box\" to focus the textarea.\n if (!disabled && event.target === event.currentTarget) {\n areaRef.current?.focus();\n }\n }}\n >\n {children}\n </TextFieldContainer>\n </FormMessageContainer>\n );\n }\n);\n"],"names":["cnb","forwardRef","useRef","useEnsuredId","useEnsuredRef","FormMessageContainer","Label","TextFieldContainer","getFormConfig","textArea","textAreaContainer","useResizingTextArea","TextArea","props","ref","id","propId","style","className","label","labelProps","labelStyle","labelClassName","areaStyle","areaClassName","resizeContainerProps","resize","dense","error","active","inline","propInline","stretch","leftAddon","rightAddon","disableLeftAddonStyles","disableRightAddonStyles","theme","propTheme","underlineDirection","propUnderlineDirection","messageProps","messageContainerProps","rows","maxRows","onChange","propOnChange","disableTransition","remaining","disabled","readOnly","value","defaultValue","areaRef","areaRefCallback","containerRef","maskRef","height","scrollable","placeholder","area","textarea","placeholderHidden","labelNode","htmlFor","floating","children","div","aria-hidden","tabIndex","mask","animate","underlineLabelled","onClick","event","target","currentTarget","current","focus"],"mappings":"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"}
|