@react-fabric/form 1.0.0-beta.35 → 1.0.0-beta.37
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/{src/input/ArrayInput.module.css → css/_arrayInput.css} +8 -8
- package/{src/input/ColorPicker.module.css → css/_colorPicker.css} +13 -13
- package/{src/internal/Field.module.css → css/_field.css} +17 -17
- package/{src/input/File.module.css → css/_file.css} +7 -7
- package/css/styles.css +27 -0
- package/dist/cjs/builder/FileField.js +35 -23
- package/dist/cjs/builder/SchemaEditor.js +6 -1
- package/dist/cjs/builder/components/SchemaArrayForm.js +1 -2
- package/dist/cjs/builder/components/SchemaField.js +5 -3
- package/dist/cjs/input/ArrayInput.js +3 -4
- package/dist/cjs/input/AvatarInput.js +1 -1
- package/dist/cjs/input/Checkbox.js +1 -1
- package/dist/cjs/input/ColorInput.js +1 -1
- package/dist/cjs/input/ColorPicker.js +1 -2
- package/dist/cjs/input/Field.js +1 -2
- package/dist/cjs/input/File.js +1 -2
- package/dist/cjs/input/Radio.js +1 -1
- package/dist/cjs/internal/ErrorIcon.js +1 -1
- package/dist/cjs/internal/FieldWrapper.js +1 -2
- package/dist/cjs/internal/InputWrapper.js +4 -5
- package/dist/cjs/select/AutoComplete.js +1 -1
- package/dist/cjs/select/Select.js +1 -1
- package/dist/esm/builder/FileField.js +37 -25
- package/dist/esm/builder/SchemaEditor.js +6 -1
- package/dist/esm/builder/components/SchemaArrayForm.js +1 -2
- package/dist/esm/builder/components/SchemaField.js +5 -3
- package/dist/esm/input/ArrayInput.js +3 -4
- package/dist/esm/input/AvatarInput.js +1 -1
- package/dist/esm/input/Checkbox.js +1 -1
- package/dist/esm/input/ColorInput.js +1 -1
- package/dist/esm/input/ColorPicker.js +1 -2
- package/dist/esm/input/Field.js +1 -2
- package/dist/esm/input/File.js +1 -2
- package/dist/esm/input/Radio.js +1 -1
- package/dist/esm/internal/ErrorIcon.js +1 -1
- package/dist/esm/internal/FieldWrapper.js +1 -2
- package/dist/esm/internal/InputWrapper.js +4 -5
- package/dist/esm/select/AutoComplete.js +1 -1
- package/dist/esm/select/Select.js +1 -1
- package/dist/types/builder/FileField.d.ts +3 -1
- package/dist/types/builder/SchemaEditor.d.ts +1 -1
- package/dist/types/types/schema.d.ts +2 -1
- package/package.json +16 -5
- package/src/builder/FileField.tsx +48 -23
- package/src/builder/SchemaEditor.tsx +6 -1
- package/src/builder/components/SchemaArrayForm.tsx +2 -2
- package/src/builder/components/SchemaField.tsx +40 -37
- package/src/input/ArrayInput.tsx +3 -4
- package/src/input/AvatarInput.tsx +1 -1
- package/src/input/Checkbox.tsx +1 -1
- package/src/input/ColorInput.tsx +1 -1
- package/src/input/ColorPicker.tsx +1 -2
- package/src/input/Field.tsx +1 -2
- package/src/input/File.tsx +2 -5
- package/src/input/Radio.tsx +1 -1
- package/src/internal/ErrorIcon.tsx +1 -1
- package/src/internal/FieldWrapper.tsx +1 -2
- package/src/internal/InputWrapper.tsx +6 -7
- package/src/select/AutoComplete.tsx +1 -1
- package/src/select/Select.tsx +1 -1
- package/src/types/schema.ts +2 -1
- package/dist/cjs/input/ArrayInput.module.css +0 -1
- package/dist/cjs/input/ColorPicker.module.css +0 -1
- package/dist/cjs/input/File.module.css +0 -1
- package/dist/cjs/internal/Field.module.css +0 -1
- package/dist/esm/input/ArrayInput.module.css +0 -1
- package/dist/esm/input/ColorPicker.module.css +0 -1
- package/dist/esm/input/File.module.css +0 -1
- package/dist/esm/internal/Field.module.css +0 -1
|
@@ -168,43 +168,46 @@ export const SchemaField = ({
|
|
|
168
168
|
}, 10);
|
|
169
169
|
}, []);
|
|
170
170
|
|
|
171
|
-
const handleTypeChange = useCallback(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
171
|
+
const handleTypeChange = useCallback(
|
|
172
|
+
(type: DATA_TYPES) => {
|
|
173
|
+
if (type) {
|
|
174
|
+
const modelRef = getModel();
|
|
175
|
+
let reset = {
|
|
176
|
+
datatype: type,
|
|
177
|
+
id,
|
|
178
|
+
label: modelRef.label,
|
|
179
|
+
defaultValue: modelRef.defaultValue,
|
|
180
|
+
required: modelRef.required,
|
|
181
|
+
multiple: type === DATA_TYPES.AVATAR ? false : modelRef.multiple,
|
|
182
|
+
minItems: modelRef.minItems,
|
|
183
|
+
maxItems: modelRef.maxItems,
|
|
184
|
+
} as DefaultSchema & ValueType;
|
|
185
|
+
if (type === DATA_TYPES.STRING) {
|
|
186
|
+
reset = Object.assign(reset, {
|
|
187
|
+
optionList: modelRef.optionList,
|
|
188
|
+
options: modelRef.options,
|
|
189
|
+
regex: modelRef.regex,
|
|
190
|
+
} as StringSchema);
|
|
191
|
+
} else if (type === DATA_TYPES.DATE) {
|
|
192
|
+
reset = Object.assign(reset, {
|
|
193
|
+
type: "date",
|
|
194
|
+
} as DateSchema);
|
|
195
|
+
} else if (type === DATA_TYPES.NUMBER || type === DATA_TYPES.RANGE) {
|
|
196
|
+
reset = Object.assign(reset, {
|
|
197
|
+
min: modelRef.min,
|
|
198
|
+
max: modelRef.max,
|
|
199
|
+
step: modelRef.step,
|
|
200
|
+
} as NumberSchema);
|
|
201
|
+
}
|
|
202
|
+
if (type === DATA_TYPES.AVATAR) {
|
|
203
|
+
setMultiple(false);
|
|
204
|
+
}
|
|
205
|
+
onTypeChange(reset);
|
|
206
|
+
setType(type);
|
|
200
207
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
onTypeChange(reset);
|
|
205
|
-
setType(type);
|
|
206
|
-
}
|
|
207
|
-
}, []);
|
|
208
|
+
},
|
|
209
|
+
[id],
|
|
210
|
+
);
|
|
208
211
|
|
|
209
212
|
return (
|
|
210
213
|
<SortableItem id={fieldId} className="flex flex-nowrap gap-1 group/field">
|
|
@@ -276,7 +279,7 @@ export const SchemaField = ({
|
|
|
276
279
|
icon={CoreIcons.list}
|
|
277
280
|
aria-label="Custom options"
|
|
278
281
|
onClick={() => {
|
|
279
|
-
void openOptionModal();
|
|
282
|
+
void openOptionModal({ title: `${id} Options` });
|
|
280
283
|
}}
|
|
281
284
|
/>
|
|
282
285
|
)}
|
package/src/input/ArrayInput.tsx
CHANGED
|
@@ -44,7 +44,6 @@ import {
|
|
|
44
44
|
import { useFieldArray, useFormContext } from "react-hook-form";
|
|
45
45
|
import { useTranslation } from "react-i18next";
|
|
46
46
|
import { FieldWrapper } from "../internal/FieldWrapper";
|
|
47
|
-
import classes from "./ArrayInput.module.css";
|
|
48
47
|
|
|
49
48
|
import { restrictToVerticalAxis } from "@dnd-kit/modifiers";
|
|
50
49
|
import { CSS } from "@dnd-kit/utilities";
|
|
@@ -257,7 +256,7 @@ export const ArrayInput = ({
|
|
|
257
256
|
() => (
|
|
258
257
|
<div className="flex justify-end">
|
|
259
258
|
<Tooltip
|
|
260
|
-
color="danger"
|
|
259
|
+
color="danger-200"
|
|
261
260
|
content={
|
|
262
261
|
isString(error)
|
|
263
262
|
? `${error}`
|
|
@@ -282,7 +281,7 @@ export const ArrayInput = ({
|
|
|
282
281
|
onClick={() => handleAdd(onAdd?.())}
|
|
283
282
|
data-invalid={!!error}
|
|
284
283
|
disabled={!!disabled || readOnly || fields.length > maxItems}
|
|
285
|
-
className={classNames(
|
|
284
|
+
className={classNames("fabric-addButton", "me-10")}
|
|
286
285
|
>
|
|
287
286
|
{addLabel ?? t("addArray")}
|
|
288
287
|
</Button>
|
|
@@ -293,7 +292,7 @@ export const ArrayInput = ({
|
|
|
293
292
|
);
|
|
294
293
|
|
|
295
294
|
return (
|
|
296
|
-
<div className={
|
|
295
|
+
<div className={"fabric-arrayInput"}>
|
|
297
296
|
<FieldWrapper
|
|
298
297
|
{...rest}
|
|
299
298
|
appendLabel={
|
|
@@ -99,7 +99,7 @@ export const AvatarInput = ({
|
|
|
99
99
|
<div className="flex flex-nowrap items-end">
|
|
100
100
|
<div className="inline-block leading-none rounded-full relative outline overflow-hidden">
|
|
101
101
|
<Avatar name="temp" size={size} avatar={base64} />
|
|
102
|
-
<div className="absolute inset-x-0 bottom-0 cursor-pointer bg-
|
|
102
|
+
<div className="absolute inset-x-0 bottom-0 cursor-pointer bg-black/20 hover:bg-black/50 text-white text-xs text-center py-1">
|
|
103
103
|
<span>Edit</span>
|
|
104
104
|
<input
|
|
105
105
|
type="file"
|
package/src/input/Checkbox.tsx
CHANGED
|
@@ -151,7 +151,7 @@ export const Checkbox = ({
|
|
|
151
151
|
<Icon
|
|
152
152
|
className={classNames(
|
|
153
153
|
"p-0.5",
|
|
154
|
-
actualValue && icon && !iconChecked && "bg-primary-500 text-white",
|
|
154
|
+
actualValue && icon && !iconChecked && "bg-primary-500 text-white!",
|
|
155
155
|
)}
|
|
156
156
|
size="1.25em"
|
|
157
157
|
color={invalid ? "danger" : "primary"}
|
package/src/input/ColorInput.tsx
CHANGED
|
@@ -127,7 +127,7 @@ export const ColorInput = ({
|
|
|
127
127
|
className={classNames(
|
|
128
128
|
"flex-content min-h-[1.5em] min-w-[3.5em] self-stretch flex items-center outline-tint-200 rounded",
|
|
129
129
|
!disabled && "bg-base",
|
|
130
|
-
!noOutline && "bg-
|
|
130
|
+
!noOutline && "bg-(--fabric-input) outline overflow-hidden",
|
|
131
131
|
)}
|
|
132
132
|
>
|
|
133
133
|
{decorateStart && (
|
|
@@ -32,7 +32,6 @@ import {
|
|
|
32
32
|
type FC,
|
|
33
33
|
} from "react";
|
|
34
34
|
import { SketchPicker } from "react-color";
|
|
35
|
-
import classes from "./ColorPicker.module.css";
|
|
36
35
|
|
|
37
36
|
export interface ColorProps {
|
|
38
37
|
/**
|
|
@@ -130,7 +129,7 @@ export const ColorPicker: FC<ColorProps> = memo(
|
|
|
130
129
|
return (
|
|
131
130
|
<SketchPicker
|
|
132
131
|
width="16rem"
|
|
133
|
-
className={
|
|
132
|
+
className={"fabric-colorPicker"}
|
|
134
133
|
styles={
|
|
135
134
|
{
|
|
136
135
|
default: {
|
package/src/input/Field.tsx
CHANGED
|
@@ -28,7 +28,6 @@ import {
|
|
|
28
28
|
} from "@react-fabric/core/dist/types/types";
|
|
29
29
|
import classNames from "classnames";
|
|
30
30
|
import { cloneElement } from "react";
|
|
31
|
-
import classes from "../internal/Field.module.css";
|
|
32
31
|
import { FieldWrapper } from "../internal/FieldWrapper";
|
|
33
32
|
|
|
34
33
|
export interface FieldProps extends ChildrenProp, CssProp {
|
|
@@ -84,7 +83,7 @@ export const Field = ({
|
|
|
84
83
|
<FieldWrapper {...rest}>
|
|
85
84
|
<div
|
|
86
85
|
className={classNames(
|
|
87
|
-
|
|
86
|
+
"fabric-fieldGroup",
|
|
88
87
|
!plain && !noOutline && "outline",
|
|
89
88
|
!plain && "bg-base",
|
|
90
89
|
plain && "flex-wrap",
|
package/src/input/File.tsx
CHANGED
|
@@ -44,7 +44,6 @@ import {
|
|
|
44
44
|
import { InputWrapper } from "../internal/InputWrapper";
|
|
45
45
|
import { type InputProps } from "../types";
|
|
46
46
|
import { handleEnter } from "../utils";
|
|
47
|
-
import classes from "./File.module.css";
|
|
48
47
|
|
|
49
48
|
export interface FileInputProps
|
|
50
49
|
extends InputProps<AnyObject>,
|
|
@@ -195,10 +194,8 @@ export const FileInput = ({
|
|
|
195
194
|
<input
|
|
196
195
|
className={classNames(
|
|
197
196
|
"appearance-none bg-transparent py-1 px-2 flex-1 border-none outline-none ring-0",
|
|
198
|
-
|
|
199
|
-
isArray(actualValue) &&
|
|
200
|
-
actualValue?.length &&
|
|
201
|
-
"text-[var(--fabric-bg)]",
|
|
197
|
+
"fabric-fileInput",
|
|
198
|
+
isArray(actualValue) && actualValue?.length && "text-(--fabric-bg)",
|
|
202
199
|
)}
|
|
203
200
|
aria-invalid={invalid}
|
|
204
201
|
aria-disabled={disabled}
|
package/src/input/Radio.tsx
CHANGED
|
@@ -126,7 +126,7 @@ export const Radio = ({
|
|
|
126
126
|
<Icon
|
|
127
127
|
className={classNames(
|
|
128
128
|
"p-0.5 hidden peer-checked:inline-block",
|
|
129
|
-
icon && !iconChecked && "bg-primary-500 text-white",
|
|
129
|
+
icon && !iconChecked && "bg-primary-500 text-white!",
|
|
130
130
|
)}
|
|
131
131
|
color={invalid ? "danger" : "primary"}
|
|
132
132
|
size="1.25em"
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
24
|
import classNames from "classnames";
|
|
25
|
-
import classes from "./Field.module.css";
|
|
26
25
|
|
|
27
26
|
export const FieldWrapper = ({
|
|
28
27
|
label,
|
|
@@ -41,7 +40,7 @@ export const FieldWrapper = ({
|
|
|
41
40
|
return (
|
|
42
41
|
<div
|
|
43
42
|
className={classNames(
|
|
44
|
-
|
|
43
|
+
"fabric-fieldWrapper",
|
|
45
44
|
className,
|
|
46
45
|
inline ? "flex flex-nowrap gap-1" : "block",
|
|
47
46
|
)}
|
|
@@ -34,7 +34,6 @@ import {
|
|
|
34
34
|
} from "react";
|
|
35
35
|
import { Fragment } from "react/jsx-runtime";
|
|
36
36
|
import { ErrorIcon } from "./ErrorIcon";
|
|
37
|
-
import classes from "./Field.module.css";
|
|
38
37
|
import { FieldWrapper } from "./FieldWrapper";
|
|
39
38
|
|
|
40
39
|
export const InputWrapper = ({
|
|
@@ -104,11 +103,11 @@ export const InputWrapper = ({
|
|
|
104
103
|
role="none"
|
|
105
104
|
ref={wrapperRef}
|
|
106
105
|
className={classNames(
|
|
107
|
-
|
|
108
|
-
invalid &&
|
|
106
|
+
"fabric-inputWrapper",
|
|
107
|
+
invalid && "fabric-invalidWrapper",
|
|
109
108
|
!noOutline &&
|
|
110
109
|
!noBorder &&
|
|
111
|
-
"bg-
|
|
110
|
+
"bg-(--fabric-input) outline overflow-hidden",
|
|
112
111
|
"flex flex-nowrap items-center flex-1",
|
|
113
112
|
textarea ? "rounded-capped group" : "rounded",
|
|
114
113
|
isExpanded
|
|
@@ -129,7 +128,7 @@ export const InputWrapper = ({
|
|
|
129
128
|
<div
|
|
130
129
|
onClickCapture={doFocus}
|
|
131
130
|
className={classNames(
|
|
132
|
-
|
|
131
|
+
"fabric-decorate",
|
|
133
132
|
"text-muted leading-none flex-content",
|
|
134
133
|
isString(decorateStart) && "px-1",
|
|
135
134
|
)}
|
|
@@ -145,7 +144,7 @@ export const InputWrapper = ({
|
|
|
145
144
|
onClick={handleClear}
|
|
146
145
|
className={classNames(
|
|
147
146
|
"text-tint-500 hover:text-tint-700 p-1 z-1 flex-content",
|
|
148
|
-
|
|
147
|
+
"fabric-inputClear",
|
|
149
148
|
textarea && "self-start mt-1 me-1",
|
|
150
149
|
)}
|
|
151
150
|
/>
|
|
@@ -154,7 +153,7 @@ export const InputWrapper = ({
|
|
|
154
153
|
<div
|
|
155
154
|
onClickCapture={doFocus}
|
|
156
155
|
className={classNames(
|
|
157
|
-
|
|
156
|
+
"fabric-decorate",
|
|
158
157
|
"text-muted leading-none flex-content",
|
|
159
158
|
isString(decorateEnd) && "px-1",
|
|
160
159
|
decorateEndHideWhenEmpty && "peer-placeholder-shown:hidden",
|
|
@@ -328,7 +328,7 @@ export const AutoComplete = ({
|
|
|
328
328
|
>
|
|
329
329
|
<Options
|
|
330
330
|
ref={refs.setFloating}
|
|
331
|
-
className="outline shadow-lg max-h-[40vh] z-
|
|
331
|
+
className="outline shadow-lg max-h-[40vh] z-(--z-popover)"
|
|
332
332
|
style={{
|
|
333
333
|
width: refs.reference.current?.getBoundingClientRect().width,
|
|
334
334
|
...floatingStyles,
|
package/src/select/Select.tsx
CHANGED
|
@@ -330,7 +330,7 @@ export const Select = <T extends AnyObject = string>({
|
|
|
330
330
|
>
|
|
331
331
|
<Options
|
|
332
332
|
ref={refs.setFloating}
|
|
333
|
-
className="outline shadow-lg max-h-[40vh] z-
|
|
333
|
+
className="outline shadow-lg max-h-[40vh] z-(--z-popover)"
|
|
334
334
|
style={{
|
|
335
335
|
width: refs.reference.current?.getBoundingClientRect().width,
|
|
336
336
|
...floatingStyles,
|
package/src/types/schema.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer var{.arrayInput{& [data-ref=fieldWrapper]{flex:1 1 0%}& .addButton :global(.buttonInner){color:theme(colors.tint.600);outline:1px dashed theme(colors.tint.600);&[data-invalid=true]{background-color:theme(colors.danger.100);color:theme(colors.danger.600);outline:1px dashed theme(colors.danger.600)}}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer comp{.colorPicker{--color-shadow:theme(borderColor.base);& input{background-color:theme(backgroundColor.base);border:1px solid theme(borderColor.base);border-radius:theme(borderRadius.sm);box-shadow:none;color:theme(textColor.base);line-height:2;padding:0 4px!important;&:focus{border-color:theme(borderColor.primary.DEFAULT)}}& label{color:theme(textColor.base)}& :global(.flexbox-fix){border-color:theme(borderColor.muted);justify-content:center;&>div>div{text-align:center}& span>div{box-shadow:inset 0 0 1px 1px theme(borderColor.base)!important}}& :global(.saturation-black)~div{pointer-events:none}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer comp{.fileInput{&::-webkit-file-upload-button{background-color:theme(backgroundColor.primary.500);border:0;border-radius:theme(borderRadius.DEFAULT);color:theme(textColor.white);cursor:pointer;opacity:.8;padding-block:0;&:hover{opacity:.9}}&[aria-invalid=true]::-webkit-file-upload-button{background-color:theme(backgroundColor.danger.500)}&:disabled::-webkit-file-upload-button{background-color:theme(backgroundColor.muted);pointer-events:none}&[readOnly]{pointer-events:none}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer comp{}@layer var{.inputWrapper{&:after{inset-inline:50%;transition:all .3s;transition-delay:.1s}& .decorate:has([data-ref=button]){align-self:stretch;display:flex}&:has(input[disabled],textarea[disabled]){background-color:theme(colors.tint.50);cursor:not-allowed;& input,& textarea{cursor:not-allowed}}&:focus-within,&:has([data-open=true]){background-color:var(--fabric-input-focus);outline-color:var(--primary);z-index:1;&:not(:has([aria-readonly=true]:not([hidden]))):after{inset-inline:0}}&:global(.fixed){box-shadow:0 0 2rem .5rem var(--fabric-shadow)}& input,& textarea{max-width:100%}&>input[type=number]+.inputClear{margin-inline:-3rem 0}& input::-ms-clear,& select::-ms-clear,& textarea::-ms-clear{display:none}& input[type=search]::-webkit-search-cancel-button{display:none}& input[type=password]:not(:placeholder-shown){font-family:caption;letter-spacing:2px}& input[type=date]::-webkit-calendar-picker-indicator,& input[type=datetime-local]::-webkit-calendar-picker-indicator{appearance:none;display:none}& input[type=date]:global(.empty)::-webkit-datetime-edit,& input[type=datetime-local]:global(.empty)::-webkit-datetime-edit{color:theme(colors.tint.400)}& input:-webkit-autofill{box-shadow:0 0 0 999em var(--fabric-input) inset;-webkit-text-fill-color:theme(colors.accent.700)}& input:-webkit-autofill:focus{box-shadow:0 0 0 999em var(--fabric-input-focus) inset;-webkit-text-fill-color:theme(colors.accent.700)}&.invalidWrapper{outline-color:theme(colors.danger.500);&:after{background-color:theme(colors.danger.500)}}}.fieldGroup{>*{line-height:1}>:not(:first-child){&,&>[data-ref=button]>[role=button],&>[role=button],&>div{border-end-start-radius:0;border-start-start-radius:0}}>:not(:last-child){&,&>[data-ref=button]>[role=button],&>[role=button],&>div{border-end-end-radius:0;border-start-end-radius:0}}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer var{.arrayInput{& [data-ref=fieldWrapper]{flex:1 1 0%}& .addButton :global(.buttonInner){color:theme(colors.tint.600);outline:1px dashed theme(colors.tint.600);&[data-invalid=true]{background-color:theme(colors.danger.100);color:theme(colors.danger.600);outline:1px dashed theme(colors.danger.600)}}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer comp{.colorPicker{--color-shadow:theme(borderColor.base);& input{background-color:theme(backgroundColor.base);border:1px solid theme(borderColor.base);border-radius:theme(borderRadius.sm);box-shadow:none;color:theme(textColor.base);line-height:2;padding:0 4px!important;&:focus{border-color:theme(borderColor.primary.DEFAULT)}}& label{color:theme(textColor.base)}& :global(.flexbox-fix){border-color:theme(borderColor.muted);justify-content:center;&>div>div{text-align:center}& span>div{box-shadow:inset 0 0 1px 1px theme(borderColor.base)!important}}& :global(.saturation-black)~div{pointer-events:none}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer comp{.fileInput{&::-webkit-file-upload-button{background-color:theme(backgroundColor.primary.500);border:0;border-radius:theme(borderRadius.DEFAULT);color:theme(textColor.white);cursor:pointer;opacity:.8;padding-block:0;&:hover{opacity:.9}}&[aria-invalid=true]::-webkit-file-upload-button{background-color:theme(backgroundColor.danger.500)}&:disabled::-webkit-file-upload-button{background-color:theme(backgroundColor.muted);pointer-events:none}&[readOnly]{pointer-events:none}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
@layer comp{}@layer var{.inputWrapper{&:after{inset-inline:50%;transition:all .3s;transition-delay:.1s}& .decorate:has([data-ref=button]){align-self:stretch;display:flex}&:has(input[disabled],textarea[disabled]){background-color:theme(colors.tint.50);cursor:not-allowed;& input,& textarea{cursor:not-allowed}}&:focus-within,&:has([data-open=true]){background-color:var(--fabric-input-focus);outline-color:var(--primary);z-index:1;&:not(:has([aria-readonly=true]:not([hidden]))):after{inset-inline:0}}&:global(.fixed){box-shadow:0 0 2rem .5rem var(--fabric-shadow)}& input,& textarea{max-width:100%}&>input[type=number]+.inputClear{margin-inline:-3rem 0}& input::-ms-clear,& select::-ms-clear,& textarea::-ms-clear{display:none}& input[type=search]::-webkit-search-cancel-button{display:none}& input[type=password]:not(:placeholder-shown){font-family:caption;letter-spacing:2px}& input[type=date]::-webkit-calendar-picker-indicator,& input[type=datetime-local]::-webkit-calendar-picker-indicator{appearance:none;display:none}& input[type=date]:global(.empty)::-webkit-datetime-edit,& input[type=datetime-local]:global(.empty)::-webkit-datetime-edit{color:theme(colors.tint.400)}& input:-webkit-autofill{box-shadow:0 0 0 999em var(--fabric-input) inset;-webkit-text-fill-color:theme(colors.accent.700)}& input:-webkit-autofill:focus{box-shadow:0 0 0 999em var(--fabric-input-focus) inset;-webkit-text-fill-color:theme(colors.accent.700)}&.invalidWrapper{outline-color:theme(colors.danger.500);&:after{background-color:theme(colors.danger.500)}}}.fieldGroup{>*{line-height:1}>:not(:first-child){&,&>[data-ref=button]>[role=button],&>[role=button],&>div{border-end-start-radius:0;border-start-start-radius:0}}>:not(:last-child){&,&>[data-ref=button]>[role=button],&>[role=button],&>div{border-end-end-radius:0;border-start-end-radius:0}}}}
|