@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.
Files changed (71) hide show
  1. package/dist/cjs/FloatingPanel/index.cjs +85 -29
  2. package/dist/cjs/FloatingPanel/index.native.js +108 -11
  3. package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
  4. package/dist/cjs/FloatingPanel/pointAnchor.cjs +88 -0
  5. package/dist/cjs/FloatingPanel/pointAnchor.native.js +98 -0
  6. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -0
  7. package/dist/cjs/FloatingPanel/useFloatingPanel.cjs +4 -3
  8. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js +4 -3
  9. package/dist/cjs/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  10. package/dist/cjs/fields/Combobox/index.cjs +39 -28
  11. package/dist/cjs/fields/Combobox/index.native.js +54 -30
  12. package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
  13. package/dist/cjs/fields/Switch/footprint.cjs +1 -1
  14. package/dist/cjs/fields/Switch/footprint.native.js +1 -1
  15. package/dist/esm/FloatingPanel/index.mjs +86 -30
  16. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  17. package/dist/esm/FloatingPanel/index.native.js +107 -10
  18. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  19. package/dist/esm/FloatingPanel/pointAnchor.mjs +59 -0
  20. package/dist/esm/FloatingPanel/pointAnchor.mjs.map +1 -0
  21. package/dist/esm/FloatingPanel/pointAnchor.native.js +66 -0
  22. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -0
  23. package/dist/esm/FloatingPanel/useFloatingPanel.mjs +4 -3
  24. package/dist/esm/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  25. package/dist/esm/FloatingPanel/useFloatingPanel.native.js +4 -3
  26. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  27. package/dist/esm/fields/Combobox/index.mjs +39 -28
  28. package/dist/esm/fields/Combobox/index.mjs.map +1 -1
  29. package/dist/esm/fields/Combobox/index.native.js +54 -30
  30. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  31. package/dist/esm/fields/Switch/footprint.mjs +1 -1
  32. package/dist/esm/fields/Switch/footprint.native.js +1 -1
  33. package/dist/jsx/FloatingPanel/index.mjs +86 -30
  34. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  35. package/dist/jsx/FloatingPanel/index.native.js +108 -11
  36. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  37. package/dist/jsx/FloatingPanel/pointAnchor.mjs +59 -0
  38. package/dist/jsx/FloatingPanel/pointAnchor.mjs.map +1 -0
  39. package/dist/jsx/FloatingPanel/pointAnchor.native.js +98 -0
  40. package/dist/jsx/FloatingPanel/pointAnchor.native.js.map +1 -0
  41. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs +4 -3
  42. package/dist/jsx/FloatingPanel/useFloatingPanel.mjs.map +1 -1
  43. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js +4 -3
  44. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  45. package/dist/jsx/fields/Combobox/index.mjs +39 -28
  46. package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
  47. package/dist/jsx/fields/Combobox/index.native.js +54 -30
  48. package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
  49. package/dist/jsx/fields/Switch/footprint.mjs +1 -1
  50. package/dist/jsx/fields/Switch/footprint.native.js +1 -1
  51. package/package.json +8 -8
  52. package/src/FloatingPanel/FloatingPanel.pointMenu.native.spec.tsx +126 -0
  53. package/src/FloatingPanel/index.native.tsx +199 -81
  54. package/src/FloatingPanel/index.tsx +130 -42
  55. package/src/FloatingPanel/pointAnchor.spec.ts +141 -0
  56. package/src/FloatingPanel/pointAnchor.ts +122 -0
  57. package/src/FloatingPanel/useFloatingPanel.ts +9 -2
  58. package/src/fields/Combobox/Combobox.spec.tsx +158 -0
  59. package/src/fields/Combobox/index.tsx +57 -28
  60. package/src/fields/Switch/Switch.footprint.native.spec.tsx +14 -5
  61. package/src/fields/Switch/footprint.ts +3 -3
  62. package/types/FloatingPanel/index.d.ts +4 -1
  63. package/types/FloatingPanel/index.d.ts.map +1 -1
  64. package/types/FloatingPanel/index.native.d.ts +5 -0
  65. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  66. package/types/FloatingPanel/pointAnchor.d.ts +66 -0
  67. package/types/FloatingPanel/pointAnchor.d.ts.map +1 -0
  68. package/types/FloatingPanel/useFloatingPanel.d.ts +7 -1
  69. package/types/FloatingPanel/useFloatingPanel.d.ts.map +1 -1
  70. package/types/fields/Combobox/index.d.ts +5 -1
  71. 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
- if (!onCreate || !filter.trim()) return;
341
- const newOption = onCreate(filter.trim());
342
- if (newOption) {
343
- if (multiple) {
344
- const current = Array.isArray(value) ? value : value ? [value] : [];
345
- onValueChange?.([...current, newOption.value]);
346
- } else {
347
- onValueChange?.(newOption.value);
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
- if (!onCreate || !filter.trim()) return;
1410
- const newOption = onCreate(filter.trim());
1411
- if (newOption) {
1412
- if (multiple) {
1413
- const current = Array.isArray(value) ? value : value ? [value] : [];
1414
- onValueChange?.([...current, newOption.value]);
1415
- } else {
1416
- onValueChange?.(newOption.value);
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 => options.find(o => o.value === v)?.label ?? v).join(", ");
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 = options.find(option => option.value === sv);
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
- if (!onCreate || !filter.trim()) return;
477
- var newOption = onCreate(filter.trim());
478
- if (newOption) {
479
- if (multiple) {
480
- var current = Array.isArray(value) ? value : value ? [value] : [];
481
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange([...current, newOption.value]);
482
- } else {
483
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(newOption.value);
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
- if (!onCreate || !filter.trim()) return;
1668
- var newOption = onCreate(filter.trim());
1669
- if (newOption) {
1670
- if (multiple) {
1671
- var current = Array.isArray(value) ? value : value ? [value] : [];
1672
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange([...current, newOption.value]);
1673
- } else {
1674
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(newOption.value);
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 _options_find;
2308
- return (_ref2 = (_options_find = options.find(function (o) {
2328
+ var _knownOptions_find;
2329
+ return (_ref2 = (_knownOptions_find = knownOptions.find(function (o) {
2309
2330
  return o.value === v;
2310
- })) === null || _options_find === void 0 ? void 0 : _options_find.label) !== null && _ref2 !== void 0 ? _ref2 : v;
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 = options.find(function (option) {
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,