@multiplatform.one/forms 7.20.0 → 7.22.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/FloatingPanel/index.cjs +85 -29
- package/dist/cjs/FloatingPanel/index.native.js +108 -11
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/pointAnchor.cjs +88 -0
- package/dist/cjs/FloatingPanel/pointAnchor.native.js +98 -0
- package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -0
- package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +4 -3
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +4 -3
- package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +39 -28
- package/dist/cjs/fields/Combobox/index.native.js +54 -30
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/Switch/footprint.cjs +1 -1
- package/dist/cjs/fields/Switch/footprint.native.js +1 -1
- package/dist/esm/FloatingPanel/index.mjs +86 -30
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +107 -10
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/pointAnchor.mjs +59 -0
- package/dist/esm/FloatingPanel/pointAnchor.mjs.map +1 -0
- package/dist/esm/FloatingPanel/pointAnchor.native.js +66 -0
- package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -0
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs +4 -3
- package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js +4 -3
- package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +39 -28
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +54 -30
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/Switch/footprint.mjs +1 -1
- package/dist/esm/fields/Switch/footprint.native.js +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +86 -30
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +108 -11
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/pointAnchor.mjs +59 -0
- package/dist/jsx/FloatingPanel/pointAnchor.mjs.map +1 -0
- package/dist/jsx/FloatingPanel/pointAnchor.native.js +98 -0
- package/dist/jsx/FloatingPanel/pointAnchor.native.js.map +1 -0
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +4 -3
- package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +4 -3
- package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +39 -28
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +54 -30
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/Switch/footprint.mjs +1 -1
- package/dist/jsx/fields/Switch/footprint.native.js +1 -1
- package/package.json +8 -8
- package/src/FloatingPanel/FloatingPanel.pointMenu.native.spec.tsx +126 -0
- package/src/FloatingPanel/index.native.tsx +199 -81
- package/src/FloatingPanel/index.tsx +130 -42
- package/src/FloatingPanel/pointAnchor.spec.ts +141 -0
- package/src/FloatingPanel/pointAnchor.ts +122 -0
- package/src/FloatingPanel/useFloatingPanel.ts +9 -2
- package/src/fields/Combobox/Combobox.spec.tsx +158 -0
- package/src/fields/Combobox/index.tsx +57 -28
- package/src/fields/Switch/Switch.footprint.native.spec.tsx +14 -5
- package/src/fields/Switch/footprint.ts +3 -3
- package/types/FloatingPanel/index.d.ts +4 -1
- package/types/FloatingPanel/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts +5 -0
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/FloatingPanel/pointAnchor.d.ts +66 -0
- package/types/FloatingPanel/pointAnchor.d.ts.map +1 -0
- package/types/FloatingPanel/useFloatingPanel.d.ts +7 -1
- package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
- package/types/fields/Combobox/index.d.ts +5 -1
- package/types/fields/Combobox/index.d.ts.map +1 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var pointAnchor_exports = {};
|
|
26
|
+
__export(pointAnchor_exports, {
|
|
27
|
+
contextMenuPoint: () => contextMenuPoint,
|
|
28
|
+
placeAtPoint: () => placeAtPoint,
|
|
29
|
+
pointOpensUp: () => pointOpensUp,
|
|
30
|
+
pointPanelLeft: () => pointPanelLeft,
|
|
31
|
+
referenceCornerPoint: () => referenceCornerPoint
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(pointAnchor_exports);
|
|
34
|
+
var import_theme = require("@multiplatform.one/theme");
|
|
35
|
+
function pointPanelLeft(point, width, bounds) {
|
|
36
|
+
var rtl = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
|
|
37
|
+
var towardEnd = rtl ? point.x - width : point.x;
|
|
38
|
+
var towardStart = rtl ? point.x : point.x - width;
|
|
39
|
+
var fits = function fits2(left) {
|
|
40
|
+
return left >= bounds.left && left + width <= bounds.right;
|
|
41
|
+
};
|
|
42
|
+
var alignEnd = !fits(towardEnd) && fits(towardStart);
|
|
43
|
+
var raw = alignEnd ? towardStart : towardEnd;
|
|
44
|
+
return {
|
|
45
|
+
left: Math.max(bounds.left, Math.min(raw, bounds.right - width)),
|
|
46
|
+
alignEnd
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function pointOpensUp(point, height, bounds) {
|
|
50
|
+
var gap = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : import_theme.OVERLAY_ANCHOR_GAP;
|
|
51
|
+
var below = bounds.bottom - (point.y + gap);
|
|
52
|
+
var above = point.y - gap - bounds.top;
|
|
53
|
+
if (height <= below) return false;
|
|
54
|
+
if (height <= above) return true;
|
|
55
|
+
return above > below;
|
|
56
|
+
}
|
|
57
|
+
function placeAtPoint(param) {
|
|
58
|
+
var {
|
|
59
|
+
point,
|
|
60
|
+
width,
|
|
61
|
+
height,
|
|
62
|
+
bounds,
|
|
63
|
+
gap = import_theme.OVERLAY_ANCHOR_GAP,
|
|
64
|
+
rtl = false
|
|
65
|
+
} = param;
|
|
66
|
+
var {
|
|
67
|
+
left,
|
|
68
|
+
alignEnd
|
|
69
|
+
} = pointPanelLeft(point, width, bounds, rtl);
|
|
70
|
+
var dropup = pointOpensUp(point, height, bounds, gap);
|
|
71
|
+
var maxHeight = Math.max(0, dropup ? point.y - gap - bounds.top : bounds.bottom - (point.y + gap));
|
|
72
|
+
var top = dropup ? point.y - gap - Math.min(height, maxHeight) : point.y + gap;
|
|
73
|
+
return {
|
|
74
|
+
left,
|
|
75
|
+
top,
|
|
76
|
+
maxHeight,
|
|
77
|
+
dropup,
|
|
78
|
+
alignEnd
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function contextMenuPoint(event, reference) {
|
|
82
|
+
var rtl = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
|
|
83
|
+
var fromPointer = event.pointerType !== void 0 ? event.pointerType !== "" : event.button === 2 || event.clientX !== 0 || event.clientY !== 0;
|
|
84
|
+
if (fromPointer) return {
|
|
85
|
+
x: event.clientX,
|
|
86
|
+
y: event.clientY
|
|
87
|
+
};
|
|
88
|
+
return reference ? referenceCornerPoint(reference, rtl) : null;
|
|
89
|
+
}
|
|
90
|
+
function referenceCornerPoint(reference) {
|
|
91
|
+
var rtl = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
92
|
+
var rect = reference.getBoundingClientRect();
|
|
93
|
+
return {
|
|
94
|
+
x: rtl ? rect.right : rect.left,
|
|
95
|
+
y: rect.bottom
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=pointAnchor.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","pointAnchor_exports","__export","contextMenuPoint","placeAtPoint","pointOpensUp","pointPanelLeft","referenceCornerPoint","module","exports","import_theme","require","point","width","bounds","rtl","arguments","length","towardEnd","x","towardStart","fits","fits2","left","right","alignEnd","raw","Math","max","min","height","gap","OVERLAY_ANCHOR_GAP","below","bottom","y","above","top","param","dropup","maxHeight","event","reference","fromPointer","pointerType","button","clientX","clientY"],"sources":["../../../src/FloatingPanel/pointAnchor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -91,7 +91,8 @@ function useFloatingPanel({
|
|
|
91
91
|
wheelGrowRef,
|
|
92
92
|
widthMode: widthModeProp,
|
|
93
93
|
fitContent,
|
|
94
|
-
compact
|
|
94
|
+
compact,
|
|
95
|
+
freeOverlay = false
|
|
95
96
|
}) {
|
|
96
97
|
const widthMode = resolvePanelWidthMode(widthModeProp, fitContent);
|
|
97
98
|
const {
|
|
@@ -137,14 +138,14 @@ function useFloatingPanel({
|
|
|
137
138
|
const setupForOpen = (0, import_react2.useCallback)(() => {
|
|
138
139
|
computePlacement();
|
|
139
140
|
if (canUseDom && triggerRef.current) {
|
|
140
|
-
setMeasuredRadius(measureDrawnRadius(triggerRef.current));
|
|
141
|
+
setMeasuredRadius(freeOverlay ? null : measureDrawnRadius(triggerRef.current));
|
|
141
142
|
}
|
|
142
143
|
onBeforeOpenRef.current?.();
|
|
143
144
|
if (closingTimerRef.current) clearTimeout(closingTimerRef.current);
|
|
144
145
|
floatingStyleRef.current = {};
|
|
145
146
|
initializingRef.current = true;
|
|
146
147
|
setMounted(true);
|
|
147
|
-
}, [computePlacement]);
|
|
148
|
+
}, [computePlacement, freeOverlay]);
|
|
148
149
|
(0, import_react2.useEffect)(() => {
|
|
149
150
|
if (open) {
|
|
150
151
|
if (needsSetupRef.current) setupForOpen();
|
|
@@ -113,7 +113,8 @@ function useFloatingPanel(param) {
|
|
|
113
113
|
wheelGrowRef,
|
|
114
114
|
widthMode: widthModeProp,
|
|
115
115
|
fitContent,
|
|
116
|
-
compact
|
|
116
|
+
compact,
|
|
117
|
+
freeOverlay = false
|
|
117
118
|
} = param;
|
|
118
119
|
var widthMode = resolvePanelWidthMode(widthModeProp, fitContent);
|
|
119
120
|
var {
|
|
@@ -164,14 +165,14 @@ function useFloatingPanel(param) {
|
|
|
164
165
|
var _onBeforeOpenRef_current;
|
|
165
166
|
computePlacement();
|
|
166
167
|
if (canUseDom && triggerRef.current) {
|
|
167
|
-
setMeasuredRadius(measureDrawnRadius(triggerRef.current));
|
|
168
|
+
setMeasuredRadius(freeOverlay ? null : measureDrawnRadius(triggerRef.current));
|
|
168
169
|
}
|
|
169
170
|
(_onBeforeOpenRef_current = onBeforeOpenRef.current) === null || _onBeforeOpenRef_current === void 0 ? void 0 : _onBeforeOpenRef_current.call(onBeforeOpenRef);
|
|
170
171
|
if (closingTimerRef.current) clearTimeout(closingTimerRef.current);
|
|
171
172
|
floatingStyleRef.current = {};
|
|
172
173
|
initializingRef.current = true;
|
|
173
174
|
setMounted(true);
|
|
174
|
-
}, [computePlacement]);
|
|
175
|
+
}, [computePlacement, freeOverlay]);
|
|
175
176
|
(0, import_react2.useEffect)(function () {
|
|
176
177
|
if (open) {
|
|
177
178
|
if (needsSetupRef.current) setupForOpen();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useFloatingPanel_exports","__export","measureDrawnRadius","panelAnchorOffset","panelAnimationDuration","panelGrowDuration","panelTransition","panelViewportPadding","resolvePanelWidthMode","useFloatingPanel","module","exports","import_react","require","import_theme","import_react2","import_tamagui","import_floatingList","import_panelPortal","canUseDom","window","addEventListener","roundToDevicePixel","dpr","devicePixelRatio","Math","round","OVERLAY_ATTACH_GAP","widthMode","fitContent","paintsACorner","el","cs","getComputedStyle","Number","parseFloat","borderTopLeftRadius","borderTopWidth","borderTopStyle","bg","backgroundColor","paintedCornerBox","root","rootRect","getBoundingClientRect","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Array","from","querySelectorAll","Symbol","iterator","_step","next","done","rect","width","height","abs","left","top","err","return","box","raw","isFinite","min","param","open","onOpenChange","disabled","onBeforeOpen","repositionRef","scrollBoundaryRef","middleware","middlewareProp","useAutoUpdate","useAutoUpdateProp","wheelGrowRef","widthModeProp","compact","knobProps","useResolvedKnobs","hasBorder","borderRadius","borderWidth","measuredRadius","setMeasuredRadius","useState","radiusStop","radiusStopFromToken","panelPadPx","getTokenValue","panelPadding","padding","radiusCap","resolveRadiusClass","paddingPx","dropdownRadius","clampDropdownRadius","mounted","setMounted","visible","setVisible","arrowUp","setArrowUp","arrowDown","setArrowDown","placement","setPlacement","onBeforeOpenRef","useRef","current","onOpenChangeRef","closingTimerRef","triggerRef","arrowScrollDirRef","floatingStyleRef","initializingRef","needsSetupRef","computePlacement","useCallback","innerHeight","bottom","updateArrows","element","up","scrollTop","scrollArrowThreshold","down","scrollHeight","clientHeight","prev","setupForOpen","_onBeforeOpenRef_current","call","clearTimeout","useEffect","requestAnimationFrame","setTimeout","defaultMiddleware","offset","mainAxis","shift","size","apply","param2","rects","reference","elements","style","minWidth","maxWidth","Object","assign","floating","x","y","strategy","context","refs","update","useFloating","onOpenChange2","nextOpen","whileElementsMounted","autoUpdate","setReferenceRef","node","setReference","useLayoutEffect","scrollY","floatingEl","preventScroll","preventScroll2","e","contains","target","_ref","deltaY","_repositionRef_current","scrollEl","atTop","atBottom","preventDefault","containsAcrossPanels","preventKeyScroll","preventKeyScroll2","includes","code","preventTouchScroll","preventTouchScroll2","scrollTo","document","passive","capture","removeEventListener"],"sources":["../../../src/FloatingPanel/useFloatingPanel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useFloatingPanel_exports","__export","measureDrawnRadius","panelAnchorOffset","panelAnimationDuration","panelGrowDuration","panelTransition","panelViewportPadding","resolvePanelWidthMode","useFloatingPanel","module","exports","import_react","require","import_theme","import_react2","import_tamagui","import_floatingList","import_panelPortal","canUseDom","window","addEventListener","roundToDevicePixel","dpr","devicePixelRatio","Math","round","OVERLAY_ATTACH_GAP","widthMode","fitContent","paintsACorner","el","cs","getComputedStyle","Number","parseFloat","borderTopLeftRadius","borderTopWidth","borderTopStyle","bg","backgroundColor","paintedCornerBox","root","rootRect","getBoundingClientRect","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Array","from","querySelectorAll","Symbol","iterator","_step","next","done","rect","width","height","abs","left","top","err","return","box","raw","isFinite","min","param","open","onOpenChange","disabled","onBeforeOpen","repositionRef","scrollBoundaryRef","middleware","middlewareProp","useAutoUpdate","useAutoUpdateProp","wheelGrowRef","widthModeProp","compact","freeOverlay","knobProps","useResolvedKnobs","hasBorder","borderRadius","borderWidth","measuredRadius","setMeasuredRadius","useState","radiusStop","radiusStopFromToken","panelPadPx","getTokenValue","panelPadding","padding","radiusCap","resolveRadiusClass","paddingPx","dropdownRadius","clampDropdownRadius","mounted","setMounted","visible","setVisible","arrowUp","setArrowUp","arrowDown","setArrowDown","placement","setPlacement","onBeforeOpenRef","useRef","current","onOpenChangeRef","closingTimerRef","triggerRef","arrowScrollDirRef","floatingStyleRef","initializingRef","needsSetupRef","computePlacement","useCallback","innerHeight","bottom","updateArrows","element","up","scrollTop","scrollArrowThreshold","down","scrollHeight","clientHeight","prev","setupForOpen","_onBeforeOpenRef_current","call","clearTimeout","useEffect","requestAnimationFrame","setTimeout","defaultMiddleware","offset","mainAxis","shift","size","apply","param2","rects","reference","elements","style","minWidth","maxWidth","Object","assign","floating","x","y","strategy","context","refs","update","useFloating","onOpenChange2","nextOpen","whileElementsMounted","autoUpdate","setReferenceRef","node","setReference","useLayoutEffect","scrollY","floatingEl","preventScroll","preventScroll2","e","contains","target","_ref","deltaY","_repositionRef_current","scrollEl","atTop","atBottom","preventDefault","containsAcrossPanels","preventKeyScroll","preventKeyScroll2","includes","code","preventTouchScroll","preventTouchScroll2","scrollTo","document","passive","capture","removeEventListener"],"sources":["../../../src/FloatingPanel/useFloatingPanel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -337,19 +337,18 @@ function FloatingComboboxCore({
|
|
|
337
337
|
return !options.some(o => o.label.toLowerCase() === trimmed || o.value.toLowerCase() === trimmed);
|
|
338
338
|
}, [creatable, filter, options]);
|
|
339
339
|
const handleCreate = (0, import_react.useCallback)(() => {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
setOpen(false);
|
|
349
|
-
}
|
|
340
|
+
const typed = filter.trim();
|
|
341
|
+
if (!onCreate || !typed) return;
|
|
342
|
+
const newOption = onCreate(typed);
|
|
343
|
+
if (newOption && multiple) {
|
|
344
|
+
const current = Array.isArray(value) ? value : value ? [value] : [];
|
|
345
|
+
if (!current.includes(newOption.value)) onValueChange?.([...current, newOption.value]);
|
|
346
|
+
} else if (newOption) {
|
|
347
|
+
onValueChange?.(newOption.value);
|
|
350
348
|
}
|
|
349
|
+
if (!multiple) setOpen(false);
|
|
351
350
|
setInternalFilter("");
|
|
352
|
-
}, [onCreate, filter, multiple, value, onValueChange]);
|
|
351
|
+
}, [onCreate, filter, multiple, value, onValueChange, setOpen]);
|
|
353
352
|
const initialOrderRef = (0, import_react.useRef)(null);
|
|
354
353
|
const hasSearchedRef = (0, import_react.useRef)(false);
|
|
355
354
|
const sortedFiltered = (0, import_react.useMemo)(() => {
|
|
@@ -914,6 +913,7 @@ function FloatingComboboxCore({
|
|
|
914
913
|
lastKeyboardNavTimeRef.current = Date.now();
|
|
915
914
|
setActiveIndex(Math.max(0, totalNavigableItems - 1));
|
|
916
915
|
} else if (event.key === "Enter" || event.key === " ") {
|
|
916
|
+
if (event.key === " " && filter.trim()) return;
|
|
917
917
|
event.preventDefault();
|
|
918
918
|
if (activeIndex === createOptionIndex && showCreateOption) {
|
|
919
919
|
handleCreate();
|
|
@@ -929,7 +929,7 @@ function FloatingComboboxCore({
|
|
|
929
929
|
event.preventDefault();
|
|
930
930
|
setOpen(false);
|
|
931
931
|
}
|
|
932
|
-
}, [navigableOptions, activeIndex, handleSelect, handleCreate, totalNavigableItems, createOptionIndex, showCreateOption, multiple, setKeyboardNav]);
|
|
932
|
+
}, [navigableOptions, activeIndex, handleSelect, handleCreate, totalNavigableItems, createOptionIndex, showCreateOption, multiple, filter, setKeyboardNav]);
|
|
933
933
|
(0, import_react.useEffect)(() => {
|
|
934
934
|
if (activeIndex == null) return;
|
|
935
935
|
const scrollContainer = listScrollRef.current;
|
|
@@ -1406,19 +1406,18 @@ function NativeComboboxCore({
|
|
|
1406
1406
|
return !options.some(o => o.label.toLowerCase() === trimmed || o.value.toLowerCase() === trimmed);
|
|
1407
1407
|
}, [creatable, filter, options]);
|
|
1408
1408
|
const handleCreate = (0, import_react.useCallback)(() => {
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
setOpen(false);
|
|
1418
|
-
}
|
|
1409
|
+
const typed = filter.trim();
|
|
1410
|
+
if (!onCreate || !typed) return;
|
|
1411
|
+
const newOption = onCreate(typed);
|
|
1412
|
+
if (newOption && multiple) {
|
|
1413
|
+
const current = Array.isArray(value) ? value : value ? [value] : [];
|
|
1414
|
+
if (!current.includes(newOption.value)) onValueChange?.([...current, newOption.value]);
|
|
1415
|
+
} else if (newOption) {
|
|
1416
|
+
onValueChange?.(newOption.value);
|
|
1419
1417
|
}
|
|
1418
|
+
if (!multiple) setOpen(false);
|
|
1420
1419
|
setInternalFilter("");
|
|
1421
|
-
}, [onCreate, filter, multiple, value, onValueChange]);
|
|
1420
|
+
}, [onCreate, filter, multiple, value, onValueChange, setOpen]);
|
|
1422
1421
|
const hasScrollableContent = Boolean(onSearch) || filtered.length > 6;
|
|
1423
1422
|
const sheetTransition = knobProps.transition ?? "medium";
|
|
1424
1423
|
const sortedFiltered = (0, import_react.useMemo)(() => {
|
|
@@ -1986,6 +1985,18 @@ function Combobox({
|
|
|
1986
1985
|
const resolvedValidators = (0, import_utils.useResolvedValidators)(required, validators, label, name);
|
|
1987
1986
|
const [uncontrolledValue, setUncontrolledValue] = (0, import_react.useState)(defaultValue);
|
|
1988
1987
|
const isControlled = valueProp !== void 0;
|
|
1988
|
+
const [createdOptions, setCreatedOptions] = (0, import_react.useState)([]);
|
|
1989
|
+
const knownOptions = (0, import_react.useMemo)(() => {
|
|
1990
|
+
const unlisted = createdOptions.filter(c => !options.some(o => o.value === c.value));
|
|
1991
|
+
return unlisted.length ? [...options, ...unlisted] : options;
|
|
1992
|
+
}, [options, createdOptions]);
|
|
1993
|
+
const handleCreateOption = (0, import_react.useMemo)(() => onCreate && (typed => {
|
|
1994
|
+
const created = onCreate(typed);
|
|
1995
|
+
if (created) {
|
|
1996
|
+
setCreatedOptions(prev => prev.some(o => o.value === created.value) ? prev : [...prev, created]);
|
|
1997
|
+
}
|
|
1998
|
+
return created;
|
|
1999
|
+
}), [onCreate]);
|
|
1989
2000
|
const viewportGtSm = (0, import_FloatingPanel.useViewportGtSm)();
|
|
1990
2001
|
const effectiveGtSm = typeof window !== "undefined" ? viewportGtSm : false;
|
|
1991
2002
|
const shouldUseSheet = !import_tamagui.isWeb || !effectiveGtSm;
|
|
@@ -2006,7 +2017,7 @@ function Combobox({
|
|
|
2006
2017
|
}
|
|
2007
2018
|
const renderReadOnly = selectValue => {
|
|
2008
2019
|
if (multiple && Array.isArray(selectValue)) {
|
|
2009
|
-
const labels = selectValue.map(v =>
|
|
2020
|
+
const labels = selectValue.map(v => knownOptions.find(o => o.value === v)?.label ?? v).join(", ");
|
|
2010
2021
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
2011
2022
|
fontSize: knobProps.sizeToken,
|
|
2012
2023
|
color: textColor,
|
|
@@ -2018,7 +2029,7 @@ function Combobox({
|
|
|
2018
2029
|
});
|
|
2019
2030
|
}
|
|
2020
2031
|
const sv = typeof selectValue === "string" ? selectValue : void 0;
|
|
2021
|
-
const selected =
|
|
2032
|
+
const selected = knownOptions.find(option => option.value === sv);
|
|
2022
2033
|
const displayText = selected?.label ?? (sv ? valueLabel ?? sv : "-");
|
|
2023
2034
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
2024
2035
|
fontSize: knobProps.sizeToken,
|
|
@@ -2034,7 +2045,7 @@ function Combobox({
|
|
|
2034
2045
|
if (readOnly) return renderReadOnly(selectValue);
|
|
2035
2046
|
const ComboboxCore = shouldUseSheet ? NativeComboboxCore : FloatingComboboxCore;
|
|
2036
2047
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ComboboxCore, {
|
|
2037
|
-
options,
|
|
2048
|
+
options: onSearch ? options : knownOptions,
|
|
2038
2049
|
value: selectValue,
|
|
2039
2050
|
onValueChange: value => {
|
|
2040
2051
|
if (disabled) return;
|
|
@@ -2049,7 +2060,7 @@ function Combobox({
|
|
|
2049
2060
|
onSearch,
|
|
2050
2061
|
loading,
|
|
2051
2062
|
searchError,
|
|
2052
|
-
valueLabel,
|
|
2063
|
+
valueLabel: valueLabel ?? createdOptions.find(o => o.value === selectValue)?.label,
|
|
2053
2064
|
clearable,
|
|
2054
2065
|
onLoadMore,
|
|
2055
2066
|
hasMore,
|
|
@@ -2066,7 +2077,7 @@ function Combobox({
|
|
|
2066
2077
|
selectedOrder,
|
|
2067
2078
|
dismissible,
|
|
2068
2079
|
creatable,
|
|
2069
|
-
onCreate,
|
|
2080
|
+
onCreate: handleCreateOption,
|
|
2070
2081
|
createLabel,
|
|
2071
2082
|
hideSearch,
|
|
2072
2083
|
searchValue,
|
|
@@ -473,19 +473,18 @@ function FloatingComboboxCore(param) {
|
|
|
473
473
|
});
|
|
474
474
|
}, [creatable, filter, options]);
|
|
475
475
|
var handleCreate = (0, import_react.useCallback)(function () {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
setOpen(false);
|
|
485
|
-
}
|
|
476
|
+
var typed = filter.trim();
|
|
477
|
+
if (!onCreate || !typed) return;
|
|
478
|
+
var newOption = onCreate(typed);
|
|
479
|
+
if (newOption && multiple) {
|
|
480
|
+
var current = Array.isArray(value) ? value : value ? [value] : [];
|
|
481
|
+
if (!current.includes(newOption.value)) onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange([...current, newOption.value]);
|
|
482
|
+
} else if (newOption) {
|
|
483
|
+
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(newOption.value);
|
|
486
484
|
}
|
|
485
|
+
if (!multiple) setOpen(false);
|
|
487
486
|
setInternalFilter("");
|
|
488
|
-
}, [onCreate, filter, multiple, value, onValueChange]);
|
|
487
|
+
}, [onCreate, filter, multiple, value, onValueChange, setOpen]);
|
|
489
488
|
var initialOrderRef = (0, import_react.useRef)(null);
|
|
490
489
|
var hasSearchedRef = (0, import_react.useRef)(false);
|
|
491
490
|
var sortedFiltered = (0, import_react.useMemo)(function () {
|
|
@@ -1096,6 +1095,7 @@ function FloatingComboboxCore(param) {
|
|
|
1096
1095
|
lastKeyboardNavTimeRef.current = Date.now();
|
|
1097
1096
|
setActiveIndex(Math.max(0, totalNavigableItems - 1));
|
|
1098
1097
|
} else if (event.key === "Enter" || event.key === " ") {
|
|
1098
|
+
if (event.key === " " && filter.trim()) return;
|
|
1099
1099
|
event.preventDefault();
|
|
1100
1100
|
if (activeIndex === createOptionIndex && showCreateOption) {
|
|
1101
1101
|
handleCreate();
|
|
@@ -1111,7 +1111,7 @@ function FloatingComboboxCore(param) {
|
|
|
1111
1111
|
event.preventDefault();
|
|
1112
1112
|
setOpen(false);
|
|
1113
1113
|
}
|
|
1114
|
-
}, [navigableOptions, activeIndex, handleSelect, handleCreate, totalNavigableItems, createOptionIndex, showCreateOption, multiple, setKeyboardNav]);
|
|
1114
|
+
}, [navigableOptions, activeIndex, handleSelect, handleCreate, totalNavigableItems, createOptionIndex, showCreateOption, multiple, filter, setKeyboardNav]);
|
|
1115
1115
|
(0, import_react.useEffect)(function () {
|
|
1116
1116
|
if (activeIndex == null) return;
|
|
1117
1117
|
var scrollContainer = listScrollRef.current;
|
|
@@ -1664,19 +1664,18 @@ function NativeComboboxCore(param) {
|
|
|
1664
1664
|
});
|
|
1665
1665
|
}, [creatable, filter, options]);
|
|
1666
1666
|
var handleCreate = (0, import_react.useCallback)(function () {
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
setOpen(false);
|
|
1676
|
-
}
|
|
1667
|
+
var typed = filter.trim();
|
|
1668
|
+
if (!onCreate || !typed) return;
|
|
1669
|
+
var newOption = onCreate(typed);
|
|
1670
|
+
if (newOption && multiple) {
|
|
1671
|
+
var current = Array.isArray(value) ? value : value ? [value] : [];
|
|
1672
|
+
if (!current.includes(newOption.value)) onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange([...current, newOption.value]);
|
|
1673
|
+
} else if (newOption) {
|
|
1674
|
+
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(newOption.value);
|
|
1677
1675
|
}
|
|
1676
|
+
if (!multiple) setOpen(false);
|
|
1678
1677
|
setInternalFilter("");
|
|
1679
|
-
}, [onCreate, filter, multiple, value, onValueChange]);
|
|
1678
|
+
}, [onCreate, filter, multiple, value, onValueChange, setOpen]);
|
|
1680
1679
|
var hasScrollableContent = Boolean(onSearch) || filtered.length > 6;
|
|
1681
1680
|
var sheetTransition = (_knobProps_transition = knobProps.transition) !== null && _knobProps_transition !== void 0 ? _knobProps_transition : "medium";
|
|
1682
1681
|
var sortedFiltered = (0, import_react.useMemo)(function () {
|
|
@@ -2281,6 +2280,28 @@ function Combobox(param) {
|
|
|
2281
2280
|
var resolvedValidators = (0, import_utils.useResolvedValidators)(required, validators, label, name);
|
|
2282
2281
|
var [uncontrolledValue, setUncontrolledValue] = (0, import_react.useState)(defaultValue);
|
|
2283
2282
|
var isControlled = valueProp !== void 0;
|
|
2283
|
+
var [createdOptions, setCreatedOptions] = (0, import_react.useState)([]);
|
|
2284
|
+
var knownOptions = (0, import_react.useMemo)(function () {
|
|
2285
|
+
var unlisted = createdOptions.filter(function (c) {
|
|
2286
|
+
return !options.some(function (o) {
|
|
2287
|
+
return o.value === c.value;
|
|
2288
|
+
});
|
|
2289
|
+
});
|
|
2290
|
+
return unlisted.length ? [...options, ...unlisted] : options;
|
|
2291
|
+
}, [options, createdOptions]);
|
|
2292
|
+
var handleCreateOption = (0, import_react.useMemo)(function () {
|
|
2293
|
+
return onCreate && function (typed) {
|
|
2294
|
+
var created = onCreate(typed);
|
|
2295
|
+
if (created) {
|
|
2296
|
+
setCreatedOptions(function (prev) {
|
|
2297
|
+
return prev.some(function (o) {
|
|
2298
|
+
return o.value === created.value;
|
|
2299
|
+
}) ? prev : [...prev, created];
|
|
2300
|
+
});
|
|
2301
|
+
}
|
|
2302
|
+
return created;
|
|
2303
|
+
};
|
|
2304
|
+
}, [onCreate]);
|
|
2284
2305
|
var viewportGtSm = (0, import_FloatingPanel.useViewportGtSm)();
|
|
2285
2306
|
var effectiveGtSm = typeof window !== "undefined" ? viewportGtSm : false;
|
|
2286
2307
|
var shouldUseSheet = !import_tamagui.isWeb || !effectiveGtSm;
|
|
@@ -2304,10 +2325,10 @@ function Combobox(param) {
|
|
|
2304
2325
|
if (multiple && Array.isArray(selectValue)) {
|
|
2305
2326
|
var labels = selectValue.map(function (v) {
|
|
2306
2327
|
var _ref2;
|
|
2307
|
-
var
|
|
2308
|
-
return (_ref2 = (
|
|
2328
|
+
var _knownOptions_find;
|
|
2329
|
+
return (_ref2 = (_knownOptions_find = knownOptions.find(function (o) {
|
|
2309
2330
|
return o.value === v;
|
|
2310
|
-
})) === null ||
|
|
2331
|
+
})) === null || _knownOptions_find === void 0 ? void 0 : _knownOptions_find.label) !== null && _ref2 !== void 0 ? _ref2 : v;
|
|
2311
2332
|
}).join(", ");
|
|
2312
2333
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.Text, {
|
|
2313
2334
|
fontSize: knobProps.sizeToken,
|
|
@@ -2320,7 +2341,7 @@ function Combobox(param) {
|
|
|
2320
2341
|
});
|
|
2321
2342
|
}
|
|
2322
2343
|
var sv = typeof selectValue === "string" ? selectValue : void 0;
|
|
2323
|
-
var selected =
|
|
2344
|
+
var selected = knownOptions.find(function (option) {
|
|
2324
2345
|
return option.value === sv;
|
|
2325
2346
|
});
|
|
2326
2347
|
var displayText = (_ref = selected === null || selected === void 0 ? void 0 : selected.label) !== null && _ref !== void 0 ? _ref : sv ? valueLabel !== null && valueLabel !== void 0 ? valueLabel : sv : "-";
|
|
@@ -2335,10 +2356,11 @@ function Combobox(param) {
|
|
|
2335
2356
|
});
|
|
2336
2357
|
};
|
|
2337
2358
|
var renderComboboxContent = function renderComboboxContent2(selectValue, handleValueChange, handleBlur) {
|
|
2359
|
+
var _createdOptions_find;
|
|
2338
2360
|
if (readOnly) return renderReadOnly(selectValue);
|
|
2339
2361
|
var ComboboxCore = shouldUseSheet ? NativeComboboxCore : FloatingComboboxCore;
|
|
2340
2362
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(ComboboxCore, {
|
|
2341
|
-
options,
|
|
2363
|
+
options: onSearch ? options : knownOptions,
|
|
2342
2364
|
value: selectValue,
|
|
2343
2365
|
onValueChange: function onValueChange1(value) {
|
|
2344
2366
|
if (disabled) return;
|
|
@@ -2353,7 +2375,9 @@ function Combobox(param) {
|
|
|
2353
2375
|
onSearch,
|
|
2354
2376
|
loading,
|
|
2355
2377
|
searchError,
|
|
2356
|
-
valueLabel
|
|
2378
|
+
valueLabel: valueLabel !== null && valueLabel !== void 0 ? valueLabel : (_createdOptions_find = createdOptions.find(function (o) {
|
|
2379
|
+
return o.value === selectValue;
|
|
2380
|
+
})) === null || _createdOptions_find === void 0 ? void 0 : _createdOptions_find.label,
|
|
2357
2381
|
clearable,
|
|
2358
2382
|
onLoadMore,
|
|
2359
2383
|
hasMore,
|
|
@@ -2370,7 +2394,7 @@ function Combobox(param) {
|
|
|
2370
2394
|
selectedOrder,
|
|
2371
2395
|
dismissible,
|
|
2372
2396
|
creatable,
|
|
2373
|
-
onCreate,
|
|
2397
|
+
onCreate: handleCreateOption,
|
|
2374
2398
|
createLabel,
|
|
2375
2399
|
hideSearch,
|
|
2376
2400
|
searchValue,
|