@react-fabric/form 1.0.0-beta.36 → 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.
Files changed (57) hide show
  1. package/{src/input/ArrayInput.module.css → css/_arrayInput.css} +8 -8
  2. package/{src/input/ColorPicker.module.css → css/_colorPicker.css} +13 -13
  3. package/{src/internal/Field.module.css → css/_field.css} +17 -17
  4. package/{src/input/File.module.css → css/_file.css} +7 -7
  5. package/css/styles.css +27 -0
  6. package/dist/cjs/builder/FileField.js +35 -23
  7. package/dist/cjs/input/ArrayInput.js +3 -4
  8. package/dist/cjs/input/AvatarInput.js +1 -1
  9. package/dist/cjs/input/Checkbox.js +1 -1
  10. package/dist/cjs/input/ColorInput.js +1 -1
  11. package/dist/cjs/input/ColorPicker.js +1 -2
  12. package/dist/cjs/input/Field.js +1 -2
  13. package/dist/cjs/input/File.js +1 -2
  14. package/dist/cjs/input/Radio.js +1 -1
  15. package/dist/cjs/internal/ErrorIcon.js +1 -1
  16. package/dist/cjs/internal/FieldWrapper.js +1 -2
  17. package/dist/cjs/internal/InputWrapper.js +4 -5
  18. package/dist/cjs/select/AutoComplete.js +1 -1
  19. package/dist/cjs/select/Select.js +1 -1
  20. package/dist/esm/builder/FileField.js +37 -25
  21. package/dist/esm/input/ArrayInput.js +3 -4
  22. package/dist/esm/input/AvatarInput.js +1 -1
  23. package/dist/esm/input/Checkbox.js +1 -1
  24. package/dist/esm/input/ColorInput.js +1 -1
  25. package/dist/esm/input/ColorPicker.js +1 -2
  26. package/dist/esm/input/Field.js +1 -2
  27. package/dist/esm/input/File.js +1 -2
  28. package/dist/esm/input/Radio.js +1 -1
  29. package/dist/esm/internal/ErrorIcon.js +1 -1
  30. package/dist/esm/internal/FieldWrapper.js +1 -2
  31. package/dist/esm/internal/InputWrapper.js +4 -5
  32. package/dist/esm/select/AutoComplete.js +1 -1
  33. package/dist/esm/select/Select.js +1 -1
  34. package/dist/types/builder/FileField.d.ts +3 -1
  35. package/package.json +16 -5
  36. package/src/builder/FileField.tsx +48 -23
  37. package/src/input/ArrayInput.tsx +3 -4
  38. package/src/input/AvatarInput.tsx +1 -1
  39. package/src/input/Checkbox.tsx +1 -1
  40. package/src/input/ColorInput.tsx +1 -1
  41. package/src/input/ColorPicker.tsx +1 -2
  42. package/src/input/Field.tsx +1 -2
  43. package/src/input/File.tsx +2 -5
  44. package/src/input/Radio.tsx +1 -1
  45. package/src/internal/ErrorIcon.tsx +1 -1
  46. package/src/internal/FieldWrapper.tsx +1 -2
  47. package/src/internal/InputWrapper.tsx +6 -7
  48. package/src/select/AutoComplete.tsx +1 -1
  49. package/src/select/Select.tsx +1 -1
  50. package/dist/cjs/input/ArrayInput.module.css +0 -1
  51. package/dist/cjs/input/ColorPicker.module.css +0 -1
  52. package/dist/cjs/input/File.module.css +0 -1
  53. package/dist/cjs/internal/Field.module.css +0 -1
  54. package/dist/esm/input/ArrayInput.module.css +0 -1
  55. package/dist/esm/input/ColorPicker.module.css +0 -1
  56. package/dist/esm/input/File.module.css +0 -1
  57. package/dist/esm/internal/Field.module.css +0 -1
@@ -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
- classes.fieldWrapper,
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
- classes.inputWrapper,
108
- invalid && classes.invalidWrapper,
106
+ "fabric-inputWrapper",
107
+ invalid && "fabric-invalidWrapper",
109
108
  !noOutline &&
110
109
  !noBorder &&
111
- "bg-[var(--fabric-input)] outline overflow-hidden",
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
- classes.decorate,
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
- classes.inputClear,
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
- classes.decorate,
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-[var(--z-popover)]"
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,
@@ -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-[var(--z-popover)]"
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,
@@ -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}}}}