@multiplatform.one/forms 8.3.0 → 8.4.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.
- package/dist/cjs/ControlGroup/index.cjs +2 -1
- package/dist/cjs/ControlGroup/index.native.js +2 -1
- package/dist/cjs/ControlGroup/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.native.js +20 -2
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/InputParts/index.cjs +1 -0
- package/dist/cjs/InputParts/index.native.js +1 -0
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/Wheel/index.cjs +22 -6
- package/dist/cjs/Wheel/index.native.js +26 -8
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.cjs +33 -30
- package/dist/cjs/fields/DatePicker/parts.native.js +34 -30
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/index.cjs +32 -15
- package/dist/cjs/fields/FileUpload/index.native.js +40 -19
- package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
- package/dist/cjs/fields/ImageField/index.cjs +35 -20
- package/dist/cjs/fields/ImageField/index.native.js +37 -20
- package/dist/cjs/fields/ImageField/index.native.js.map +1 -1
- package/dist/cjs/fields/Progress/index.cjs +5 -0
- package/dist/cjs/fields/Progress/index.native.js +5 -0
- package/dist/cjs/fields/Progress/index.native.js.map +1 -1
- package/dist/cjs/fields/Slider/index.cjs +38 -12
- package/dist/cjs/fields/Slider/index.native.js +39 -11
- package/dist/cjs/fields/Slider/index.native.js.map +1 -1
- package/dist/cjs/fields/Switch/index.cjs +10 -6
- package/dist/cjs/fields/Switch/index.native.js +10 -6
- package/dist/cjs/fields/Switch/index.native.js.map +1 -1
- package/dist/cjs/fields/TimePicker/parts.cjs +9 -10
- package/dist/cjs/fields/TimePicker/parts.native.js +9 -10
- package/dist/cjs/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/ToggleGroup/index.cjs +1 -0
- package/dist/cjs/fields/ToggleGroup/index.native.js +1 -0
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/pickerHandle.cjs +18 -0
- package/dist/cjs/fields/pickerHandle.native.js +21 -0
- package/dist/cjs/fields/pickerHandle.native.js.map +1 -0
- package/dist/cjs/hooks/useHoldCue.cjs +54 -0
- package/dist/cjs/hooks/useHoldCue.native.js +62 -0
- package/dist/cjs/hooks/useHoldCue.native.js.map +1 -0
- package/dist/cjs/index.cjs +4 -0
- package/dist/cjs/index.gnome.cjs +4 -0
- package/dist/cjs/index.gnome.native.js +4 -0
- package/dist/cjs/index.gnome.native.js.map +1 -1
- package/dist/cjs/index.native.js +4 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/colorRamps.cjs +9 -7
- package/dist/cjs/shared/colorRamps.native.js +9 -7
- package/dist/cjs/shared/colorRamps.native.js.map +1 -1
- package/dist/cjs/shared/controlTrack.cjs +32 -0
- package/dist/cjs/shared/controlTrack.native.js +35 -0
- package/dist/cjs/shared/controlTrack.native.js.map +1 -0
- package/dist/esm/ControlGroup/index.mjs +2 -1
- package/dist/esm/ControlGroup/index.mjs.map +1 -1
- package/dist/esm/ControlGroup/index.native.js +2 -1
- package/dist/esm/ControlGroup/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +20 -2
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/InputParts/index.mjs +1 -0
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +1 -0
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Wheel/index.mjs +23 -7
- package/dist/esm/Wheel/index.mjs.map +1 -1
- package/dist/esm/Wheel/index.native.js +27 -9
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +35 -32
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +36 -32
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/index.mjs +33 -16
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +41 -20
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/ImageField/index.mjs +36 -21
- package/dist/esm/fields/ImageField/index.mjs.map +1 -1
- package/dist/esm/fields/ImageField/index.native.js +38 -21
- package/dist/esm/fields/ImageField/index.native.js.map +1 -1
- package/dist/esm/fields/Progress/index.mjs +5 -0
- package/dist/esm/fields/Progress/index.mjs.map +1 -1
- package/dist/esm/fields/Progress/index.native.js +5 -0
- package/dist/esm/fields/Progress/index.native.js.map +1 -1
- package/dist/esm/fields/Slider/index.mjs +38 -12
- package/dist/esm/fields/Slider/index.mjs.map +1 -1
- package/dist/esm/fields/Slider/index.native.js +39 -11
- package/dist/esm/fields/Slider/index.native.js.map +1 -1
- package/dist/esm/fields/Switch/index.mjs +10 -6
- package/dist/esm/fields/Switch/index.mjs.map +1 -1
- package/dist/esm/fields/Switch/index.native.js +10 -6
- package/dist/esm/fields/Switch/index.native.js.map +1 -1
- package/dist/esm/fields/TimePicker/parts.mjs +9 -10
- package/dist/esm/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/TimePicker/parts.native.js +9 -10
- package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.mjs +2 -1
- package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js +2 -1
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/fields/pickerHandle.mjs +2 -0
- package/dist/esm/fields/pickerHandle.mjs.map +1 -0
- package/dist/esm/fields/pickerHandle.native.js +2 -0
- package/dist/esm/fields/pickerHandle.native.js.map +1 -0
- package/dist/esm/hooks/useHoldCue.mjs +27 -0
- package/dist/esm/hooks/useHoldCue.mjs.map +1 -0
- package/dist/esm/hooks/useHoldCue.native.js +32 -0
- package/dist/esm/hooks/useHoldCue.native.js.map +1 -0
- package/dist/esm/index.gnome.mjs +2 -1
- package/dist/esm/index.gnome.mjs.map +1 -1
- package/dist/esm/index.gnome.native.js +2 -1
- package/dist/esm/index.gnome.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/shared/colorRamps.mjs +9 -7
- package/dist/esm/shared/colorRamps.mjs.map +1 -1
- package/dist/esm/shared/colorRamps.native.js +9 -7
- package/dist/esm/shared/colorRamps.native.js.map +1 -1
- package/dist/esm/shared/controlTrack.mjs +7 -0
- package/dist/esm/shared/controlTrack.mjs.map +1 -0
- package/dist/esm/shared/controlTrack.native.js +7 -0
- package/dist/esm/shared/controlTrack.native.js.map +1 -0
- package/dist/esm/shared/nativeOverlayWindow.mjs.map +1 -1
- package/dist/esm/shared/systemControls.mjs.map +1 -1
- package/dist/esm/shared/systemControls.native.js.map +1 -1
- package/dist/jsx/ControlGroup/index.mjs +2 -1
- package/dist/jsx/ControlGroup/index.mjs.map +1 -1
- package/dist/jsx/ControlGroup/index.native.js +2 -1
- package/dist/jsx/ControlGroup/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +20 -2
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/InputParts/index.mjs +1 -0
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +1 -0
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/Wheel/index.mjs +23 -7
- package/dist/jsx/Wheel/index.mjs.map +1 -1
- package/dist/jsx/Wheel/index.native.js +26 -8
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +35 -32
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +34 -30
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/index.mjs +33 -16
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +40 -19
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/ImageField/index.mjs +36 -21
- package/dist/jsx/fields/ImageField/index.mjs.map +1 -1
- package/dist/jsx/fields/ImageField/index.native.js +37 -20
- package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
- package/dist/jsx/fields/Progress/index.mjs +5 -0
- package/dist/jsx/fields/Progress/index.mjs.map +1 -1
- package/dist/jsx/fields/Progress/index.native.js +5 -0
- package/dist/jsx/fields/Progress/index.native.js.map +1 -1
- package/dist/jsx/fields/Slider/index.mjs +38 -12
- package/dist/jsx/fields/Slider/index.mjs.map +1 -1
- package/dist/jsx/fields/Slider/index.native.js +39 -11
- package/dist/jsx/fields/Slider/index.native.js.map +1 -1
- package/dist/jsx/fields/Switch/index.mjs +10 -6
- package/dist/jsx/fields/Switch/index.mjs.map +1 -1
- package/dist/jsx/fields/Switch/index.native.js +10 -6
- package/dist/jsx/fields/Switch/index.native.js.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.mjs +9 -10
- package/dist/jsx/fields/TimePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/TimePicker/parts.native.js +9 -10
- package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.mjs +2 -1
- package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js +1 -0
- package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/pickerHandle.mjs +2 -0
- package/dist/jsx/fields/pickerHandle.mjs.map +1 -0
- package/dist/jsx/fields/pickerHandle.native.js +21 -0
- package/dist/jsx/fields/pickerHandle.native.js.map +1 -0
- package/dist/jsx/hooks/useHoldCue.mjs +27 -0
- package/dist/jsx/hooks/useHoldCue.mjs.map +1 -0
- package/dist/jsx/hooks/useHoldCue.native.js +62 -0
- package/dist/jsx/hooks/useHoldCue.native.js.map +1 -0
- package/dist/jsx/index.gnome.mjs +2 -1
- package/dist/jsx/index.gnome.mjs.map +1 -1
- package/dist/jsx/index.gnome.native.js +4 -0
- package/dist/jsx/index.gnome.native.js.map +1 -1
- package/dist/jsx/index.js +2 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +4 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/colorRamps.mjs +9 -7
- package/dist/jsx/shared/colorRamps.mjs.map +1 -1
- package/dist/jsx/shared/colorRamps.native.js +9 -7
- package/dist/jsx/shared/colorRamps.native.js.map +1 -1
- package/dist/jsx/shared/controlTrack.mjs +7 -0
- package/dist/jsx/shared/controlTrack.mjs.map +1 -0
- package/dist/jsx/shared/controlTrack.native.js +35 -0
- package/dist/jsx/shared/controlTrack.native.js.map +1 -0
- package/dist/jsx/shared/nativeOverlayWindow.mjs.map +1 -1
- package/dist/jsx/shared/nativeOverlayWindow.native.js.map +1 -1
- package/dist/jsx/shared/systemControls.mjs.map +1 -1
- package/package.json +11 -10
- package/src/Button/Button.controlTiers.spec.tsx +2 -2
- package/src/ControlGroup/index.tsx +2 -1
- package/src/FloatingPanel/FloatingPanel.holdCue.native.spec.tsx +72 -0
- package/src/FloatingPanel/index.native.tsx +9 -1
- package/src/InputParts/index.tsx +1 -0
- package/src/Wheel/Wheel.edgeFade.spec.tsx +74 -0
- package/src/Wheel/index.tsx +25 -11
- package/src/fields/DatePicker/dateFieldMarks.spec.tsx +154 -0
- package/src/fields/DatePicker/parts.tsx +33 -30
- package/src/fields/FileUpload/index.tsx +45 -16
- package/src/fields/ImageField/index.tsx +42 -19
- package/src/fields/Progress/index.tsx +3 -0
- package/src/fields/Slider/Slider.system.native.spec.tsx +44 -0
- package/src/fields/Slider/index.tsx +40 -12
- package/src/fields/Stepper/Stepper.stories.tsx +42 -0
- package/src/fields/Switch/Switch.spec.tsx +14 -10
- package/src/fields/Switch/index.tsx +11 -7
- package/src/fields/TimePicker/parts.tsx +8 -8
- package/src/fields/ToggleGroup/index.tsx +7 -1
- package/src/fields/fieldTriggerSlot.spec.tsx +89 -0
- package/src/fields/pickerHandle.ts +13 -0
- package/src/hooks/useHoldCue.ts +26 -0
- package/src/index.gnome.ts +1 -0
- package/src/index.ts +2 -0
- package/src/overlayGround.spec.ts +5 -3
- package/src/shared/OverlayWindow.tsx +2 -2
- package/src/shared/colorRamps.ts +9 -6
- package/src/shared/controlTrack.ts +7 -0
- package/src/shared/nativeOverlayWindow.tsx +1 -1
- package/src/shared/systemControls.ts +10 -2
- package/types/ControlGroup/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/InputParts/index.d.ts +4 -4
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/Wheel/index.d.ts.map +1 -1
- package/types/fields/DatePicker/parts.d.ts +4 -3
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/FileUpload/index.d.ts +6 -1
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/ImageField/index.d.ts +7 -2
- package/types/fields/ImageField/index.d.ts.map +1 -1
- package/types/fields/Progress/index.d.ts.map +1 -1
- package/types/fields/Slider/index.d.ts.map +1 -1
- package/types/fields/Switch/index.d.ts.map +1 -1
- package/types/fields/ToggleGroup/index.d.ts.map +1 -1
- package/types/fields/pickerHandle.d.ts +12 -0
- package/types/fields/pickerHandle.d.ts.map +1 -0
- package/types/hooks/useHoldCue.d.ts +10 -0
- package/types/hooks/useHoldCue.d.ts.map +1 -0
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/index.gnome.d.ts +1 -0
- package/types/index.gnome.d.ts.map +1 -1
- package/types/shared/OverlayWindow.d.ts +2 -2
- package/types/shared/OverlayWindow.d.ts.map +1 -1
- package/types/shared/colorRamps.d.ts +8 -6
- package/types/shared/colorRamps.d.ts.map +1 -1
- package/types/shared/controlTrack.d.ts +3 -0
- package/types/shared/controlTrack.d.ts.map +1 -0
- package/types/shared/nativeOverlayWindow.d.ts +1 -1
- package/types/shared/nativeOverlayWindow.d.ts.map +1 -1
- package/types/shared/systemControls.d.ts +2 -1
- package/types/shared/systemControls.d.ts.map +1 -1
|
@@ -112,6 +112,10 @@ const UploadTileGridFrame = (0, import_tamagui2.styled)(import_tamagui2.XStack,
|
|
|
112
112
|
function FileUpload(props) {
|
|
113
113
|
const hydrationTouch = (0, import_theme2.useTouchSurface)();
|
|
114
114
|
const media = (0, import_tamagui.useMedia)();
|
|
115
|
+
const {
|
|
116
|
+
ref: pickerRef,
|
|
117
|
+
trigger
|
|
118
|
+
} = props;
|
|
115
119
|
const {
|
|
116
120
|
defaultValue,
|
|
117
121
|
form,
|
|
@@ -139,6 +143,8 @@ function FileUpload(props) {
|
|
|
139
143
|
existing,
|
|
140
144
|
onExistingRemove,
|
|
141
145
|
id: idProp,
|
|
146
|
+
ref: _ref,
|
|
147
|
+
trigger: _trigger,
|
|
142
148
|
...fieldProps
|
|
143
149
|
} = (0, import_tamagui.useProps)(props);
|
|
144
150
|
const {
|
|
@@ -430,6 +436,10 @@ function FileUpload(props) {
|
|
|
430
436
|
if (disabled || readOnly) return;
|
|
431
437
|
fileInputRef.current?.click();
|
|
432
438
|
}, [disabled, readOnly]);
|
|
439
|
+
const requestFilesRef = (0, import_react2.useRef)(openFileDialog);
|
|
440
|
+
(0, import_react2.useImperativeHandle)(pickerRef, () => ({
|
|
441
|
+
open: () => requestFilesRef.current()
|
|
442
|
+
}), []);
|
|
433
443
|
const nativePickInFlightRef = (0, import_react2.useRef)(false);
|
|
434
444
|
const openNativePicker = (0, import_react2.useCallback)(async (onValueChange, onBlurHandler) => {
|
|
435
445
|
if (disabled || readOnly || nativePickInFlightRef.current) return;
|
|
@@ -649,6 +659,27 @@ function FileUpload(props) {
|
|
|
649
659
|
const requestFiles = import_tamagui2.isWeb ? openFileDialog : () => {
|
|
650
660
|
void openNativePicker(onValueChange, onBlurHandler);
|
|
651
661
|
};
|
|
662
|
+
requestFilesRef.current = requestFiles;
|
|
663
|
+
const hiddenInput = import_tamagui2.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("input", {
|
|
664
|
+
ref: fileInputRef,
|
|
665
|
+
type: "file",
|
|
666
|
+
accept,
|
|
667
|
+
multiple,
|
|
668
|
+
tabIndex: -1,
|
|
669
|
+
onChange: e => {
|
|
670
|
+
handleFileSelect(e.target.files, onValueChange, e.target.files);
|
|
671
|
+
onBlurHandler?.();
|
|
672
|
+
},
|
|
673
|
+
style: {
|
|
674
|
+
display: "none"
|
|
675
|
+
},
|
|
676
|
+
disabled: !canInteract
|
|
677
|
+
}) : null;
|
|
678
|
+
if (trigger) return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui2.YStack, {
|
|
679
|
+
"data-file-upload": "trigger",
|
|
680
|
+
alignItems: "flex-start",
|
|
681
|
+
children: [trigger(requestFiles), hiddenInput]
|
|
682
|
+
});
|
|
652
683
|
const zoneInteractionProps = canInteract ? import_tamagui2.isWeb ? {
|
|
653
684
|
// DROPZONE-FULL-TARGET: the entire surface is the click target.
|
|
654
685
|
role: filled ? "group" : "button",
|
|
@@ -848,21 +879,7 @@ function FileUpload(props) {
|
|
|
848
879
|
textAlign: "center",
|
|
849
880
|
...knobProps.body,
|
|
850
881
|
children: placeholder
|
|
851
|
-
}),
|
|
852
|
-
ref: fileInputRef,
|
|
853
|
-
type: "file",
|
|
854
|
-
accept,
|
|
855
|
-
multiple,
|
|
856
|
-
tabIndex: -1,
|
|
857
|
-
onChange: e => {
|
|
858
|
-
handleFileSelect(e.target.files, onValueChange, e.target.files);
|
|
859
|
-
onBlurHandler?.();
|
|
860
|
-
},
|
|
861
|
-
style: {
|
|
862
|
-
display: "none"
|
|
863
|
-
},
|
|
864
|
-
disabled: !canInteract
|
|
865
|
-
}) : null]
|
|
882
|
+
}), hiddenInput]
|
|
866
883
|
}), (multiple && hasRows || transfers.length > 0) && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(UploadFileListFrame, {
|
|
867
884
|
"data-file-upload": "files",
|
|
868
885
|
borderTopWidth: knobProps.borderRadius.borderWidth ?? 1,
|
|
@@ -124,6 +124,10 @@ function FileUpload(props) {
|
|
|
124
124
|
var _ref, _ref1, _ref2;
|
|
125
125
|
var hydrationTouch = (0, import_theme2.useTouchSurface)();
|
|
126
126
|
var media = (0, import_tamagui.useMedia)();
|
|
127
|
+
var {
|
|
128
|
+
ref: pickerRef,
|
|
129
|
+
trigger
|
|
130
|
+
} = props;
|
|
127
131
|
var {
|
|
128
132
|
defaultValue,
|
|
129
133
|
form,
|
|
@@ -151,6 +155,8 @@ function FileUpload(props) {
|
|
|
151
155
|
existing,
|
|
152
156
|
onExistingRemove,
|
|
153
157
|
id: idProp,
|
|
158
|
+
ref: _ref3,
|
|
159
|
+
trigger: _trigger,
|
|
154
160
|
...fieldProps
|
|
155
161
|
} = (0, import_tamagui.useProps)(props);
|
|
156
162
|
var {
|
|
@@ -498,6 +504,14 @@ function FileUpload(props) {
|
|
|
498
504
|
if (disabled || readOnly) return;
|
|
499
505
|
(_fileInputRef_current = fileInputRef.current) === null || _fileInputRef_current === void 0 ? void 0 : _fileInputRef_current.click();
|
|
500
506
|
}, [disabled, readOnly]);
|
|
507
|
+
var requestFilesRef = (0, import_react2.useRef)(openFileDialog);
|
|
508
|
+
(0, import_react2.useImperativeHandle)(pickerRef, function () {
|
|
509
|
+
return {
|
|
510
|
+
open: function open() {
|
|
511
|
+
return requestFilesRef.current();
|
|
512
|
+
}
|
|
513
|
+
};
|
|
514
|
+
}, []);
|
|
501
515
|
var nativePickInFlightRef = (0, import_react2.useRef)(false);
|
|
502
516
|
var openNativePicker = (0, import_react2.useCallback)(async function (onValueChange, onBlurHandler) {
|
|
503
517
|
if (disabled || readOnly || nativePickInFlightRef.current) return;
|
|
@@ -620,7 +634,7 @@ function FileUpload(props) {
|
|
|
620
634
|
}) : null;
|
|
621
635
|
};
|
|
622
636
|
var previewActions = function previewActions2(overMedia, onValueChange) {
|
|
623
|
-
var
|
|
637
|
+
var _ref4;
|
|
624
638
|
var plate = overMedia ? {
|
|
625
639
|
plate: "media"
|
|
626
640
|
} : void 0;
|
|
@@ -660,7 +674,7 @@ function FileUpload(props) {
|
|
|
660
674
|
...plate,
|
|
661
675
|
icon: import_standardActions.standardActions.remove.icon,
|
|
662
676
|
"aria-label": (0, import_t.t)("Remove {{name}}", {
|
|
663
|
-
name: (
|
|
677
|
+
name: (_ref4 = singleFile === null || singleFile === void 0 ? void 0 : singleFile.name) !== null && _ref4 !== void 0 ? _ref4 : existingName
|
|
664
678
|
}),
|
|
665
679
|
onPress: function onPress(event) {
|
|
666
680
|
stop(event);
|
|
@@ -751,11 +765,32 @@ function FileUpload(props) {
|
|
|
751
765
|
}, `${file.name}-${file.size}-${file.lastModified}`);
|
|
752
766
|
};
|
|
753
767
|
var renderUploadArea = function renderUploadArea2(errorProp, onValueChange, onBlurHandler) {
|
|
754
|
-
var _knobProps_borderRadius_borderWidth, _knobProps_borderRadius_borderWidth1,
|
|
768
|
+
var _knobProps_borderRadius_borderWidth, _knobProps_borderRadius_borderWidth1, _ref4, _ref12, _knobProps_borderRadius_borderWidth2;
|
|
755
769
|
emitFieldRef.current = onValueChange;
|
|
756
770
|
var requestFiles = import_tamagui2.isWeb ? openFileDialog : function () {
|
|
757
771
|
void openNativePicker(onValueChange, onBlurHandler);
|
|
758
772
|
};
|
|
773
|
+
requestFilesRef.current = requestFiles;
|
|
774
|
+
var hiddenInput = import_tamagui2.isWeb ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("input", {
|
|
775
|
+
ref: fileInputRef,
|
|
776
|
+
type: "file",
|
|
777
|
+
accept,
|
|
778
|
+
multiple,
|
|
779
|
+
tabIndex: -1,
|
|
780
|
+
onChange: function onChange(e) {
|
|
781
|
+
handleFileSelect(e.target.files, onValueChange, e.target.files);
|
|
782
|
+
onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();
|
|
783
|
+
},
|
|
784
|
+
style: {
|
|
785
|
+
display: "none"
|
|
786
|
+
},
|
|
787
|
+
disabled: !canInteract
|
|
788
|
+
}) : null;
|
|
789
|
+
if (trigger) return /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui2.YStack, {
|
|
790
|
+
"data-file-upload": "trigger",
|
|
791
|
+
alignItems: "flex-start",
|
|
792
|
+
children: [trigger(requestFiles), hiddenInput]
|
|
793
|
+
});
|
|
759
794
|
var zoneInteractionProps = canInteract ? import_tamagui2.isWeb ? {
|
|
760
795
|
// DROPZONE-FULL-TARGET: the entire surface is the click target.
|
|
761
796
|
role: filled ? "group" : "button",
|
|
@@ -908,7 +943,7 @@ function FileUpload(props) {
|
|
|
908
943
|
backgroundColor: "$color5",
|
|
909
944
|
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui2.Image, {
|
|
910
945
|
src: singlePreview,
|
|
911
|
-
alt: (
|
|
946
|
+
alt: (_ref4 = singleFile === null || singleFile === void 0 ? void 0 : singleFile.name) !== null && _ref4 !== void 0 ? _ref4 : existingName,
|
|
912
947
|
width: "100%",
|
|
913
948
|
height: "100%",
|
|
914
949
|
objectFit: "contain",
|
|
@@ -981,21 +1016,7 @@ function FileUpload(props) {
|
|
|
981
1016
|
textAlign: "center",
|
|
982
1017
|
...knobProps.body,
|
|
983
1018
|
children: placeholder
|
|
984
|
-
}),
|
|
985
|
-
ref: fileInputRef,
|
|
986
|
-
type: "file",
|
|
987
|
-
accept,
|
|
988
|
-
multiple,
|
|
989
|
-
tabIndex: -1,
|
|
990
|
-
onChange: function onChange(e) {
|
|
991
|
-
handleFileSelect(e.target.files, onValueChange, e.target.files);
|
|
992
|
-
onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();
|
|
993
|
-
},
|
|
994
|
-
style: {
|
|
995
|
-
display: "none"
|
|
996
|
-
},
|
|
997
|
-
disabled: !canInteract
|
|
998
|
-
}) : null]
|
|
1019
|
+
}), hiddenInput]
|
|
999
1020
|
}), (multiple && hasRows || transfers.length > 0) && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(UploadFileListFrame, {
|
|
1000
1021
|
"data-file-upload": "files",
|
|
1001
1022
|
// The hairline tracks the frame edge's knob width — one dash voice.
|