@tamagui/focusable 1.13.3 → 1.13.4

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 (43) hide show
  1. package/dist/cjs/focusable.js +1 -16
  2. package/dist/cjs/focusable.js.map +2 -2
  3. package/dist/cjs/focusableInputHOC.js +1 -84
  4. package/dist/cjs/focusableInputHOC.js.map +2 -2
  5. package/dist/cjs/index.js +1 -20
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/registerFocusable.js +1 -37
  8. package/dist/cjs/registerFocusable.js.map +2 -2
  9. package/dist/cjs/registerFocusable.native.js +1 -60
  10. package/dist/cjs/registerFocusable.native.js.map +2 -2
  11. package/dist/esm/focusableInputHOC.js +1 -60
  12. package/dist/esm/focusableInputHOC.js.map +2 -2
  13. package/dist/esm/focusableInputHOC.mjs +1 -60
  14. package/dist/esm/focusableInputHOC.mjs.map +2 -2
  15. package/dist/esm/index.js +1 -3
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/esm/index.mjs +1 -3
  18. package/dist/esm/index.mjs.map +1 -1
  19. package/dist/esm/registerFocusable.js +1 -11
  20. package/dist/esm/registerFocusable.js.map +2 -2
  21. package/dist/esm/registerFocusable.mjs +1 -11
  22. package/dist/esm/registerFocusable.mjs.map +2 -2
  23. package/dist/esm/registerFocusable.native.js +1 -34
  24. package/dist/esm/registerFocusable.native.js.map +2 -2
  25. package/dist/esm/registerFocusable.native.mjs +1 -34
  26. package/dist/esm/registerFocusable.native.mjs.map +2 -2
  27. package/dist/jsx/focusableInputHOC.js +1 -56
  28. package/dist/jsx/focusableInputHOC.js.map +2 -2
  29. package/dist/jsx/focusableInputHOC.mjs +1 -56
  30. package/dist/jsx/focusableInputHOC.mjs.map +2 -2
  31. package/dist/jsx/index.js +1 -3
  32. package/dist/jsx/index.js.map +1 -1
  33. package/dist/jsx/index.mjs +1 -3
  34. package/dist/jsx/index.mjs.map +1 -1
  35. package/dist/jsx/registerFocusable.js +1 -11
  36. package/dist/jsx/registerFocusable.js.map +2 -2
  37. package/dist/jsx/registerFocusable.mjs +1 -11
  38. package/dist/jsx/registerFocusable.mjs.map +2 -2
  39. package/dist/jsx/registerFocusable.native.js +1 -34
  40. package/dist/jsx/registerFocusable.native.js.map +2 -2
  41. package/dist/jsx/registerFocusable.native.mjs +1 -34
  42. package/dist/jsx/registerFocusable.native.mjs.map +2 -2
  43. package/package.json +4 -4
@@ -1,17 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
- var focusable_exports = {};
16
- module.exports = __toCommonJS(focusable_exports);
1
+ "use strict";var t=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var i=(o,c,u,n)=>{if(c&&typeof c=="object"||typeof c=="function")for(let e of F(c))!f.call(o,e)&&e!==u&&t(o,e,{get:()=>c[e],enumerable:!(n=s(c,e))||n.enumerable});return o};var l=o=>i(t({},"__esModule",{value:!0}),o);var p={};module.exports=l(p);
17
2
  //# sourceMappingURL=focusable.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusable.ts"],
4
4
  "sourcesContent": ["export type Focusable = { focus: Function; focusAndSelect?: Function }\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
- "names": []
5
+ "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
+ "names": ["focusable_exports", "__toCommonJS"]
7
7
  }
@@ -1,85 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var focusableInputHOC_exports = {};
20
- __export(focusableInputHOC_exports, {
21
- focusableInputHOC: () => focusableInputHOC
22
- });
23
- module.exports = __toCommonJS(focusableInputHOC_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_compose_refs = require("@tamagui/compose-refs");
26
- var import_web = require("@tamagui/web");
27
- var import_react = require("react");
28
- var import_registerFocusable = require("./registerFocusable");
29
- function focusableInputHOC(Component) {
30
- const component = Component.extractable(
31
- (0, import_react.forwardRef)(
32
- (props, ref) => {
33
- const isInput = (0, import_web.isTamaguiComponent)(Component) && Component.staticConfig.isInput;
34
- const inputValue = (0, import_react.useRef)(props.value || props.defaultValue || "");
35
- const unregisterFocusable = (0, import_react.useRef)();
36
- const inputRef = (0, import_react.useCallback)(
37
- (input) => {
38
- var _a;
39
- if (!props.id)
40
- return;
41
- if (!input)
42
- return;
43
- (_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable);
44
- unregisterFocusable.current = (0, import_registerFocusable.registerFocusable)(props.id, {
45
- focus: input.focus,
46
- ...isInput && {
47
- // react-native doesn't support programmatic .select()
48
- focusAndSelect() {
49
- input.focus();
50
- if (input.setSelection && typeof inputValue.current === "string") {
51
- input.setSelection(0, inputValue.current.length);
52
- }
53
- }
54
- }
55
- });
56
- },
57
- [isInput, props.id]
58
- );
59
- const combinedRefs = (0, import_compose_refs.composeRefs)(ref, inputRef);
60
- (0, import_react.useEffect)(() => {
61
- return () => {
62
- var _a;
63
- (_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable);
64
- };
65
- }, []);
66
- const onChangeText = (0, import_web.useEvent)((value) => {
67
- var _a;
68
- inputValue.current = value;
69
- (_a = props.onChangeText) == null ? void 0 : _a.call(props, value);
70
- });
71
- const finalProps = isInput ? {
72
- ...props,
73
- onChangeText
74
- } : props;
75
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ref: combinedRefs, ...finalProps });
76
- }
77
- )
78
- );
79
- return component;
80
- }
81
- // Annotate the CommonJS export names for ESM import in node:
82
- 0 && (module.exports = {
83
- focusableInputHOC
84
- });
1
+ "use strict";var d=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var I=(t,c)=>{for(var e in c)d(t,e,{get:c[e],enumerable:!0})},S=(t,c,e,r)=>{if(c&&typeof c=="object"||typeof c=="function")for(let f of h(c))!A.call(t,f)&&f!==e&&d(t,f,{get:()=>c[f],enumerable:!(r=R(c,f))||r.enumerable});return t};var V=t=>S(d({},"__esModule",{value:!0}),t);var y={};I(y,{focusableInputHOC:()=>b});module.exports=V(y);var g=require("react/jsx-runtime"),l=require("@tamagui/compose-refs"),a=require("@tamagui/web"),o=require("react"),m=require("./registerFocusable");function b(t){return t.extractable((0,o.forwardRef)((e,r)=>{const f=(0,a.isTamaguiComponent)(t)&&t.staticConfig.isInput,s=(0,o.useRef)(e.value||e.defaultValue||""),i=(0,o.useRef)(),C=(0,o.useCallback)(n=>{var u;e.id&&n&&((u=i.current)==null||u.call(i),i.current=(0,m.registerFocusable)(e.id,{focus:n.focus,...f&&{focusAndSelect(){n.focus(),n.setSelection&&typeof s.current=="string"&&n.setSelection(0,s.current.length)}}}))},[f,e.id]),T=(0,l.composeRefs)(r,C);(0,o.useEffect)(()=>()=>{var n;(n=i.current)==null||n.call(i)},[]);const v=(0,a.useEvent)(n=>{var u;s.current=n,(u=e.onChangeText)==null||u.call(e,n)}),x=f?{...e,onChangeText:v}:e;return(0,g.jsx)(t,{ref:T,...x})}))}0&&(module.exports={focusableInputHOC});
85
2
  //# sourceMappingURL=focusableInputHOC.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
4
  "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { TamaguiComponent, isTamaguiComponent, useEvent } from '@tamagui/web'\nimport { forwardRef, useCallback, useEffect, useRef } from 'react'\n\nimport { registerFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends TamaguiComponent>(Component: A): A {\n const component = Component.extractable(\n forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n const unregisterFocusable = useRef<() => void | undefined>()\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n unregisterFocusable.current?.()\n unregisterFocusable.current = registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n return () => {\n unregisterFocusable.current?.()\n }\n }, [])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n // @ts-expect-error\n return <Component ref={combinedRefs} {...finalProps} />\n }\n )\n ) as any\n\n return component\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiEe;AAjEf,0BAA4B;AAC5B,iBAA+D;AAC/D,mBAA2D;AAE3D,+BAAkC;AAE3B,SAAS,kBAA8C,WAAiB;AAC7E,QAAM,YAAY,UAAU;AAAA,QAC1B;AAAA,MACE,CACE,OAMA,QACG;AACH,cAAM,cAAU,+BAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,cAAM,iBAAa,qBAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AACjE,cAAM,0BAAsB,qBAA+B;AAE3D,cAAM,eAAW;AAAA,UACf,CAAC,UAAU;AAvBrB;AAwBY,gBAAI,CAAC,MAAM;AAAI;AACf,gBAAI,CAAC;AAAO;AACZ,sCAAoB,YAApB;AACA,gCAAoB,cAAU,4CAAkB,MAAM,IAAI;AAAA,cACxD,OAAO,MAAM;AAAA,cAEb,GAAI,WAAW;AAAA;AAAA,gBAEb,iBAAiB;AACf,wBAAM,MAAM;AACZ,sBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,0BAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,kBACjD;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,CAAC,SAAS,MAAM,EAAE;AAAA,QACpB;AAEA,cAAM,mBAAe,iCAAY,KAAK,QAAQ;AAE9C,oCAAU,MAAM;AACd,iBAAO,MAAM;AA/CvB;AAgDY,sCAAoB,YAApB;AAAA,UACF;AAAA,QACF,GAAG,CAAC,CAAC;AAEL,cAAM,mBAAe,qBAAS,CAAC,UAAU;AApDjD;AAqDU,qBAAW,UAAU;AACrB,sBAAM,iBAAN,+BAAqB;AAAA,QACvB,CAAC;AAED,cAAM,aAAa,UACf;AAAA,UACE,GAAG;AAAA,UACH;AAAA,QACF,IACA;AAGJ,eAAO,4CAAC,aAAU,KAAK,cAAe,GAAG,YAAY;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,IAAA,eAAAC,EAAAH,GAiEe,IAAAI,EAAA,6BAjEfC,EAA4B,iCAC5BC,EAA+D,wBAC/DC,EAA2D,iBAE3DC,EAAkC,+BAE3B,SAASN,EAA8CO,EAAiB,CAgE7E,OA/DkBA,EAAU,eAC1B,cACE,CACEC,EAMAC,IACG,CACH,MAAMC,KAAU,sBAAmBH,CAAS,GAAKA,EAAU,aAAa,QAClEI,KAAa,UAAOH,EAAM,OAASA,EAAM,cAAgB,EAAE,EAC3DI,KAAsB,UAA+B,EAErDC,KAAW,eACdC,GAAU,CAvBrB,IAAAC,EAwBiBP,EAAM,IACNM,KACLC,EAAAH,EAAoB,UAApB,MAAAG,EAAA,KAAAH,GACAA,EAAoB,WAAU,qBAAkBJ,EAAM,GAAI,CACxD,MAAOM,EAAM,MAEb,GAAIJ,GAAW,CAEb,gBAAiB,CACfI,EAAM,MAAM,EACRA,EAAM,cAAgB,OAAOH,EAAW,SAAY,UACtDG,EAAM,aAAa,EAAGH,EAAW,QAAQ,MAAM,CAEnD,CACF,CACF,CAAC,EACH,EACA,CAACD,EAASF,EAAM,EAAE,CACpB,EAEMQ,KAAe,eAAYP,EAAKI,CAAQ,KAE9C,aAAU,IACD,IAAM,CA/CvB,IAAAE,GAgDYA,EAAAH,EAAoB,UAApB,MAAAG,EAAA,KAAAH,EACF,EACC,CAAC,CAAC,EAEL,MAAMK,KAAe,YAAUC,GAAU,CApDjD,IAAAH,EAqDUJ,EAAW,QAAUO,GACrBH,EAAAP,EAAM,eAAN,MAAAO,EAAA,KAAAP,EAAqBU,EACvB,CAAC,EAEKC,EAAaT,EACf,CACE,GAAGF,EACH,aAAAS,CACF,EACAT,EAGJ,SAAO,OAACD,EAAA,CAAU,IAAKS,EAAe,GAAGG,EAAY,CACvD,CACF,CACF,CAGF",
6
+ "names": ["focusableInputHOC_exports", "__export", "focusableInputHOC", "__toCommonJS", "import_jsx_runtime", "import_compose_refs", "import_web", "import_react", "import_registerFocusable", "Component", "props", "ref", "isInput", "inputValue", "unregisterFocusable", "inputRef", "input", "_a", "combinedRefs", "onChangeText", "value", "finalProps"]
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -1,21 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var src_exports = {};
17
- module.exports = __toCommonJS(src_exports);
18
- __reExport(src_exports, require("./registerFocusable"), module.exports);
19
- __reExport(src_exports, require("./focusableInputHOC"), module.exports);
20
- __reExport(src_exports, require("./focusable"), module.exports);
1
+ "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(f,r,p,x)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of c(r))!d.call(f,m)&&m!==p&&a(f,m,{get:()=>r[m],enumerable:!(x=b(r,m))||x.enumerable});return f},e=(f,r,p)=>(t(f,r,"default"),p&&t(p,r,"default"));var g=f=>t(a({},"__esModule",{value:!0}),f);var o={};module.exports=g(o);e(o,require("./registerFocusable"),module.exports);e(o,require("./focusableInputHOC"),module.exports);e(o,require("./focusable"),module.exports);
21
2
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './registerFocusable'\nexport * from './focusableInputHOC'\nexport * from './focusable'\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,gCAAd;AACA,wBAAc,gCADd;AAEA,wBAAc,wBAFd;",
6
- "names": []
5
+ "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,+BAAd,gBACAE,EAAAF,EAAc,+BADd,gBAEAE,EAAAF,EAAc,uBAFd",
6
+ "names": ["src_exports", "__toCommonJS", "__reExport"]
7
7
  }
@@ -1,38 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var registerFocusable_exports = {};
20
- __export(registerFocusable_exports, {
21
- focusFocusable: () => focusFocusable,
22
- registerFocusable: () => registerFocusable,
23
- unregisterFocusable: () => unregisterFocusable
24
- });
25
- module.exports = __toCommonJS(registerFocusable_exports);
26
- const registerFocusable = (id, input) => () => {
27
- };
28
- const unregisterFocusable = (id) => {
29
- };
30
- const focusFocusable = (id) => {
31
- };
32
- // Annotate the CommonJS export names for ESM import in node:
33
- 0 && (module.exports = {
34
- focusFocusable,
35
- registerFocusable,
36
- unregisterFocusable
37
- });
1
+ "use strict";var r=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var a=(o,s)=>{for(var e in s)r(o,e,{get:s[e],enumerable:!0})},b=(o,s,e,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of n(s))!u.call(o,t)&&t!==e&&r(o,t,{get:()=>s[t],enumerable:!(i=c(s,t))||i.enumerable});return o};var g=o=>b(r({},"__esModule",{value:!0}),o);var d={};a(d,{focusFocusable:()=>F,registerFocusable:()=>l,unregisterFocusable:()=>p});module.exports=g(d);const l=(o,s)=>()=>{},p=o=>{},F=o=>{};0&&(module.exports={focusFocusable,registerFocusable,unregisterFocusable});
38
2
  //# sourceMappingURL=registerFocusable.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.ts"],
4
4
  "sourcesContent": ["import { Focusable } from './focusable'\n\nexport const registerFocusable = (id: string, input: Focusable) => () => {\n // noop focus is handed natively\n}\n\nexport const unregisterFocusable = (id: string) => {\n // noop focus is handed natively\n}\n\nexport const focusFocusable = (id: string) => {\n // noop focus is handed natively\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,oBAAoB,CAAC,IAAY,UAAqB,MAAM;AAEzE;AAEO,MAAM,sBAAsB,CAAC,OAAe;AAEnD;AAEO,MAAM,iBAAiB,CAAC,OAAe;AAE9C;",
6
- "names": []
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,sBAAAC,EAAA,wBAAAC,IAAA,eAAAC,EAAAL,GAEO,MAAMG,EAAoB,CAACG,EAAYC,IAAqB,IAAM,CAEzE,EAEaH,EAAuBE,GAAe,CAEnD,EAEaJ,EAAkBI,GAAe,CAE9C",
6
+ "names": ["registerFocusable_exports", "__export", "focusFocusable", "registerFocusable", "unregisterFocusable", "__toCommonJS", "id", "input"]
7
7
  }
@@ -1,61 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var registerFocusable_native_exports = {};
20
- __export(registerFocusable_native_exports, {
21
- focusFocusable: () => focusFocusable,
22
- registerFocusable: () => registerFocusable,
23
- unregisterFocusable: () => unregisterFocusable
24
- });
25
- module.exports = __toCommonJS(registerFocusable_native_exports);
26
- const InputsMap = /* @__PURE__ */ new Map();
27
- const registerFocusable = (id, input) => {
28
- if (process.env.NODE_ENV === "development") {
29
- if (InputsMap.has(id)) {
30
- console.warn(`Warning, duplicate ID for input: ${id}`);
31
- }
32
- }
33
- InputsMap.set(id, input);
34
- return () => {
35
- InputsMap.delete(id);
36
- };
37
- };
38
- const unregisterFocusable = (id) => {
39
- InputsMap.delete(id);
40
- };
41
- const focusFocusable = (id, select = false) => {
42
- const input = InputsMap.get(id);
43
- if (!input) {
44
- if (process.env.NODE_ENV === "development") {
45
- console.warn("No input found for id", id);
46
- }
47
- return;
48
- }
49
- if (select || !input.focusAndSelect) {
50
- input.focus();
51
- } else {
52
- input.focusAndSelect();
53
- }
54
- };
55
- // Annotate the CommonJS export names for ESM import in node:
56
- 0 && (module.exports = {
57
- focusFocusable,
58
- registerFocusable,
59
- unregisterFocusable
60
- });
1
+ "use strict";var r=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var a=(e,o)=>{for(var s in o)r(e,s,{get:o[s],enumerable:!0})},f=(e,o,s,c)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of l(o))!p.call(e,n)&&n!==s&&r(e,n,{get:()=>o[n],enumerable:!(c=u(o,n))||c.enumerable});return e};var i=e=>f(r({},"__esModule",{value:!0}),e);var d={};a(d,{focusFocusable:()=>F,registerFocusable:()=>g,unregisterFocusable:()=>b});module.exports=i(d);const t=new Map,g=(e,o)=>(process.env.NODE_ENV==="development"&&t.has(e)&&console.warn(`Warning, duplicate ID for input: ${e}`),t.set(e,o),()=>{t.delete(e)}),b=e=>{t.delete(e)},F=(e,o=!1)=>{const s=t.get(e);if(!s){process.env.NODE_ENV==="development"&&console.warn("No input found for id",e);return}o||!s.focusAndSelect?s.focus():s.focusAndSelect()};0&&(module.exports={focusFocusable,registerFocusable,unregisterFocusable});
61
2
  //# sourceMappingURL=registerFocusable.native.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.native.ts"],
4
4
  "sourcesContent": ["// used for focusing on native\n\nimport { Focusable } from './focusable'\n\nconst InputsMap = new Map<string, Focusable>()\n\nexport const registerFocusable = (id: string, input: Focusable) => {\n if (process.env.NODE_ENV === 'development') {\n if (InputsMap.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(`Warning, duplicate ID for input: ${id}`)\n }\n }\n InputsMap.set(id, input)\n return () => {\n InputsMap.delete(id)\n }\n}\n\nexport const unregisterFocusable = (id: string) => {\n InputsMap.delete(id)\n}\n\nexport const focusFocusable = (id: string, select = false) => {\n const input = InputsMap.get(id)\n if (!input) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No input found for id', id)\n }\n return\n }\n if (select || !input.focusAndSelect) {\n input.focus()\n } else {\n input.focusAndSelect()\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,MAAM,YAAY,oBAAI,IAAuB;AAEtC,MAAM,oBAAoB,CAAC,IAAY,UAAqB;AACjE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,UAAU,IAAI,EAAE,GAAG;AAErB,cAAQ,KAAK,oCAAoC,IAAI;AAAA,IACvD;AAAA,EACF;AACA,YAAU,IAAI,IAAI,KAAK;AACvB,SAAO,MAAM;AACX,cAAU,OAAO,EAAE;AAAA,EACrB;AACF;AAEO,MAAM,sBAAsB,CAAC,OAAe;AACjD,YAAU,OAAO,EAAE;AACrB;AAEO,MAAM,iBAAiB,CAAC,IAAY,SAAS,UAAU;AAC5D,QAAM,QAAQ,UAAU,IAAI,EAAE;AAC9B,MAAI,CAAC,OAAO;AACV,QAAI,QAAQ,IAAI,aAAa,eAAe;AAE1C,cAAQ,KAAK,yBAAyB,EAAE;AAAA,IAC1C;AACA;AAAA,EACF;AACA,MAAI,UAAU,CAAC,MAAM,gBAAgB;AACnC,UAAM,MAAM;AAAA,EACd,OAAO;AACL,UAAM,eAAe;AAAA,EACvB;AACF;",
6
- "names": []
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,sBAAAC,EAAA,wBAAAC,IAAA,eAAAC,EAAAL,GAIA,MAAMM,EAAY,IAAI,IAETH,EAAoB,CAACI,EAAYC,KACxC,QAAQ,IAAI,WAAa,eACvBF,EAAU,IAAIC,CAAE,GAElB,QAAQ,KAAK,oCAAoCA,GAAI,EAGzDD,EAAU,IAAIC,EAAIC,CAAK,EAChB,IAAM,CACXF,EAAU,OAAOC,CAAE,CACrB,GAGWH,EAAuBG,GAAe,CACjDD,EAAU,OAAOC,CAAE,CACrB,EAEaL,EAAiB,CAACK,EAAYE,EAAS,KAAU,CAC5D,MAAMD,EAAQF,EAAU,IAAIC,CAAE,EAC9B,GAAI,CAACC,EAAO,CACN,QAAQ,IAAI,WAAa,eAE3B,QAAQ,KAAK,wBAAyBD,CAAE,EAE1C,MACF,CACIE,GAAU,CAACD,EAAM,eACnBA,EAAM,MAAM,EAEZA,EAAM,eAAe,CAEzB",
6
+ "names": ["registerFocusable_native_exports", "__export", "focusFocusable", "registerFocusable", "unregisterFocusable", "__toCommonJS", "InputsMap", "id", "input", "select"]
7
7
  }
@@ -1,61 +1,2 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { composeRefs } from "@tamagui/compose-refs";
3
- import { isTamaguiComponent, useEvent } from "@tamagui/web";
4
- import { forwardRef, useCallback, useEffect, useRef } from "react";
5
- import { registerFocusable } from "./registerFocusable";
6
- function focusableInputHOC(Component) {
7
- const component = Component.extractable(
8
- forwardRef(
9
- (props, ref) => {
10
- const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput;
11
- const inputValue = useRef(props.value || props.defaultValue || "");
12
- const unregisterFocusable = useRef();
13
- const inputRef = useCallback(
14
- (input) => {
15
- var _a;
16
- if (!props.id)
17
- return;
18
- if (!input)
19
- return;
20
- (_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable);
21
- unregisterFocusable.current = registerFocusable(props.id, {
22
- focus: input.focus,
23
- ...isInput && {
24
- // react-native doesn't support programmatic .select()
25
- focusAndSelect() {
26
- input.focus();
27
- if (input.setSelection && typeof inputValue.current === "string") {
28
- input.setSelection(0, inputValue.current.length);
29
- }
30
- }
31
- }
32
- });
33
- },
34
- [isInput, props.id]
35
- );
36
- const combinedRefs = composeRefs(ref, inputRef);
37
- useEffect(() => {
38
- return () => {
39
- var _a;
40
- (_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable);
41
- };
42
- }, []);
43
- const onChangeText = useEvent((value) => {
44
- var _a;
45
- inputValue.current = value;
46
- (_a = props.onChangeText) == null ? void 0 : _a.call(props, value);
47
- });
48
- const finalProps = isInput ? {
49
- ...props,
50
- onChangeText
51
- } : props;
52
- return /* @__PURE__ */ jsx(Component, { ref: combinedRefs, ...finalProps });
53
- }
54
- )
55
- );
56
- return component;
57
- }
58
- export {
59
- focusableInputHOC
60
- };
1
+ import{jsx as h}from"react/jsx-runtime";import{composeRefs as m}from"@tamagui/compose-refs";import{isTamaguiComponent as g,useEvent as C}from"@tamagui/web";import{forwardRef as T,useCallback as v,useEffect as x,useRef as u}from"react";import{registerFocusable as R}from"./registerFocusable";function E(f){return f.extractable(T((t,r)=>{const o=g(f)&&f.staticConfig.isInput,i=u(t.value||t.defaultValue||""),n=u(),a=v(e=>{var c;t.id&&e&&((c=n.current)==null||c.call(n),n.current=R(t.id,{focus:e.focus,...o&&{focusAndSelect(){e.focus(),e.setSelection&&typeof i.current=="string"&&e.setSelection(0,i.current.length)}}}))},[o,t.id]),s=m(r,a);x(()=>()=>{var e;(e=n.current)==null||e.call(n)},[]);const d=C(e=>{var c;i.current=e,(c=t.onChangeText)==null||c.call(t,e)}),l=o?{...t,onChangeText:d}:t;return h(f,{ref:s,...l})}))}export{E as focusableInputHOC};
61
2
  //# sourceMappingURL=focusableInputHOC.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
4
  "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { TamaguiComponent, isTamaguiComponent, useEvent } from '@tamagui/web'\nimport { forwardRef, useCallback, useEffect, useRef } from 'react'\n\nimport { registerFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends TamaguiComponent>(Component: A): A {\n const component = Component.extractable(\n forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n const unregisterFocusable = useRef<() => void | undefined>()\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n unregisterFocusable.current?.()\n unregisterFocusable.current = registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n return () => {\n unregisterFocusable.current?.()\n }\n }, [])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n // @ts-expect-error\n return <Component ref={combinedRefs} {...finalProps} />\n }\n )\n ) as any\n\n return component\n}\n"],
5
- "mappings": "AAiEe;AAjEf,SAAS,mBAAmB;AAC5B,SAA2B,oBAAoB,gBAAgB;AAC/D,SAAS,YAAY,aAAa,WAAW,cAAc;AAE3D,SAAS,yBAAyB;AAE3B,SAAS,kBAA8C,WAAiB;AAC7E,QAAM,YAAY,UAAU;AAAA,IAC1B;AAAA,MACE,CACE,OAMA,QACG;AACH,cAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,cAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AACjE,cAAM,sBAAsB,OAA+B;AAE3D,cAAM,WAAW;AAAA,UACf,CAAC,UAAU;AAvBrB;AAwBY,gBAAI,CAAC,MAAM;AAAI;AACf,gBAAI,CAAC;AAAO;AACZ,sCAAoB,YAApB;AACA,gCAAoB,UAAU,kBAAkB,MAAM,IAAI;AAAA,cACxD,OAAO,MAAM;AAAA,cAEb,GAAI,WAAW;AAAA;AAAA,gBAEb,iBAAiB;AACf,wBAAM,MAAM;AACZ,sBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,0BAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,kBACjD;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,CAAC,SAAS,MAAM,EAAE;AAAA,QACpB;AAEA,cAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,kBAAU,MAAM;AACd,iBAAO,MAAM;AA/CvB;AAgDY,sCAAoB,YAApB;AAAA,UACF;AAAA,QACF,GAAG,CAAC,CAAC;AAEL,cAAM,eAAe,SAAS,CAAC,UAAU;AApDjD;AAqDU,qBAAW,UAAU;AACrB,sBAAM,iBAAN,+BAAqB;AAAA,QACvB,CAAC;AAED,cAAM,aAAa,UACf;AAAA,UACE,GAAG;AAAA,UACH;AAAA,QACF,IACA;AAGJ,eAAO,oBAAC,aAAU,KAAK,cAAe,GAAG,YAAY;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "AAiEe,cAAAA,MAAA,oBAjEf,OAAS,eAAAC,MAAmB,wBAC5B,OAA2B,sBAAAC,EAAoB,YAAAC,MAAgB,eAC/D,OAAS,cAAAC,EAAY,eAAAC,EAAa,aAAAC,EAAW,UAAAC,MAAc,QAE3D,OAAS,qBAAAC,MAAyB,sBAE3B,SAASC,EAA8CC,EAAiB,CAgE7E,OA/DkBA,EAAU,YAC1BN,EACE,CACEO,EAMAC,IACG,CACH,MAAMC,EAAUX,EAAmBQ,CAAS,GAAKA,EAAU,aAAa,QAClEI,EAAaP,EAAOI,EAAM,OAASA,EAAM,cAAgB,EAAE,EAC3DI,EAAsBR,EAA+B,EAErDS,EAAWX,EACdY,GAAU,CAvBrB,IAAAC,EAwBiBP,EAAM,IACNM,KACLC,EAAAH,EAAoB,UAApB,MAAAG,EAAA,KAAAH,GACAA,EAAoB,QAAUP,EAAkBG,EAAM,GAAI,CACxD,MAAOM,EAAM,MAEb,GAAIJ,GAAW,CAEb,gBAAiB,CACfI,EAAM,MAAM,EACRA,EAAM,cAAgB,OAAOH,EAAW,SAAY,UACtDG,EAAM,aAAa,EAAGH,EAAW,QAAQ,MAAM,CAEnD,CACF,CACF,CAAC,EACH,EACA,CAACD,EAASF,EAAM,EAAE,CACpB,EAEMQ,EAAelB,EAAYW,EAAKI,CAAQ,EAE9CV,EAAU,IACD,IAAM,CA/CvB,IAAAY,GAgDYA,EAAAH,EAAoB,UAApB,MAAAG,EAAA,KAAAH,EACF,EACC,CAAC,CAAC,EAEL,MAAMK,EAAejB,EAAUkB,GAAU,CApDjD,IAAAH,EAqDUJ,EAAW,QAAUO,GACrBH,EAAAP,EAAM,eAAN,MAAAO,EAAA,KAAAP,EAAqBU,EACvB,CAAC,EAEKC,EAAaT,EACf,CACE,GAAGF,EACH,aAAAS,CACF,EACAT,EAGJ,OAAOX,EAACU,EAAA,CAAU,IAAKS,EAAe,GAAGG,EAAY,CACvD,CACF,CACF,CAGF",
6
+ "names": ["jsx", "composeRefs", "isTamaguiComponent", "useEvent", "forwardRef", "useCallback", "useEffect", "useRef", "registerFocusable", "focusableInputHOC", "Component", "props", "ref", "isInput", "inputValue", "unregisterFocusable", "inputRef", "input", "_a", "combinedRefs", "onChangeText", "value", "finalProps"]
7
7
  }
@@ -1,61 +1,2 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { composeRefs } from "@tamagui/compose-refs";
3
- import { isTamaguiComponent, useEvent } from "@tamagui/web";
4
- import { forwardRef, useCallback, useEffect, useRef } from "react";
5
- import { registerFocusable } from "./registerFocusable";
6
- function focusableInputHOC(Component) {
7
- const component = Component.extractable(
8
- forwardRef(
9
- (props, ref) => {
10
- const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput;
11
- const inputValue = useRef(props.value || props.defaultValue || "");
12
- const unregisterFocusable = useRef();
13
- const inputRef = useCallback(
14
- (input) => {
15
- var _a;
16
- if (!props.id)
17
- return;
18
- if (!input)
19
- return;
20
- (_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable);
21
- unregisterFocusable.current = registerFocusable(props.id, {
22
- focus: input.focus,
23
- ...isInput && {
24
- // react-native doesn't support programmatic .select()
25
- focusAndSelect() {
26
- input.focus();
27
- if (input.setSelection && typeof inputValue.current === "string") {
28
- input.setSelection(0, inputValue.current.length);
29
- }
30
- }
31
- }
32
- });
33
- },
34
- [isInput, props.id]
35
- );
36
- const combinedRefs = composeRefs(ref, inputRef);
37
- useEffect(() => {
38
- return () => {
39
- var _a;
40
- (_a = unregisterFocusable.current) == null ? void 0 : _a.call(unregisterFocusable);
41
- };
42
- }, []);
43
- const onChangeText = useEvent((value) => {
44
- var _a;
45
- inputValue.current = value;
46
- (_a = props.onChangeText) == null ? void 0 : _a.call(props, value);
47
- });
48
- const finalProps = isInput ? {
49
- ...props,
50
- onChangeText
51
- } : props;
52
- return /* @__PURE__ */ jsx(Component, { ref: combinedRefs, ...finalProps });
53
- }
54
- )
55
- );
56
- return component;
57
- }
58
- export {
59
- focusableInputHOC
60
- };
1
+ import{jsx as h}from"react/jsx-runtime";import{composeRefs as m}from"@tamagui/compose-refs";import{isTamaguiComponent as g,useEvent as C}from"@tamagui/web";import{forwardRef as T,useCallback as v,useEffect as x,useRef as u}from"react";import{registerFocusable as R}from"./registerFocusable";function E(f){return f.extractable(T((t,r)=>{const o=g(f)&&f.staticConfig.isInput,i=u(t.value||t.defaultValue||""),n=u(),a=v(e=>{var c;t.id&&e&&((c=n.current)==null||c.call(n),n.current=R(t.id,{focus:e.focus,...o&&{focusAndSelect(){e.focus(),e.setSelection&&typeof i.current=="string"&&e.setSelection(0,i.current.length)}}}))},[o,t.id]),s=m(r,a);x(()=>()=>{var e;(e=n.current)==null||e.call(n)},[]);const d=C(e=>{var c;i.current=e,(c=t.onChangeText)==null||c.call(t,e)}),l=o?{...t,onChangeText:d}:t;return h(f,{ref:s,...l})}))}export{E as focusableInputHOC};
61
2
  //# sourceMappingURL=focusableInputHOC.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
4
  "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { TamaguiComponent, isTamaguiComponent, useEvent } from '@tamagui/web'\nimport { forwardRef, useCallback, useEffect, useRef } from 'react'\n\nimport { registerFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends TamaguiComponent>(Component: A): A {\n const component = Component.extractable(\n forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n const unregisterFocusable = useRef<() => void | undefined>()\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n unregisterFocusable.current?.()\n unregisterFocusable.current = registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n return () => {\n unregisterFocusable.current?.()\n }\n }, [])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n // @ts-expect-error\n return <Component ref={combinedRefs} {...finalProps} />\n }\n )\n ) as any\n\n return component\n}\n"],
5
- "mappings": "AAiEe;AAjEf,SAAS,mBAAmB;AAC5B,SAA2B,oBAAoB,gBAAgB;AAC/D,SAAS,YAAY,aAAa,WAAW,cAAc;AAE3D,SAAS,yBAAyB;AAE3B,SAAS,kBAA8C,WAAiB;AAC7E,QAAM,YAAY,UAAU;AAAA,IAC1B;AAAA,MACE,CACE,OAMA,QACG;AACH,cAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,cAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AACjE,cAAM,sBAAsB,OAA+B;AAE3D,cAAM,WAAW;AAAA,UACf,CAAC,UAAU;AAvBrB;AAwBY,gBAAI,CAAC,MAAM;AAAI;AACf,gBAAI,CAAC;AAAO;AACZ,sCAAoB,YAApB;AACA,gCAAoB,UAAU,kBAAkB,MAAM,IAAI;AAAA,cACxD,OAAO,MAAM;AAAA,cAEb,GAAI,WAAW;AAAA;AAAA,gBAEb,iBAAiB;AACf,wBAAM,MAAM;AACZ,sBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,0BAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,kBACjD;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,CAAC,SAAS,MAAM,EAAE;AAAA,QACpB;AAEA,cAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,kBAAU,MAAM;AACd,iBAAO,MAAM;AA/CvB;AAgDY,sCAAoB,YAApB;AAAA,UACF;AAAA,QACF,GAAG,CAAC,CAAC;AAEL,cAAM,eAAe,SAAS,CAAC,UAAU;AApDjD;AAqDU,qBAAW,UAAU;AACrB,sBAAM,iBAAN,+BAAqB;AAAA,QACvB,CAAC;AAED,cAAM,aAAa,UACf;AAAA,UACE,GAAG;AAAA,UACH;AAAA,QACF,IACA;AAGJ,eAAO,oBAAC,aAAU,KAAK,cAAe,GAAG,YAAY;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "AAiEe,cAAAA,MAAA,oBAjEf,OAAS,eAAAC,MAAmB,wBAC5B,OAA2B,sBAAAC,EAAoB,YAAAC,MAAgB,eAC/D,OAAS,cAAAC,EAAY,eAAAC,EAAa,aAAAC,EAAW,UAAAC,MAAc,QAE3D,OAAS,qBAAAC,MAAyB,sBAE3B,SAASC,EAA8CC,EAAiB,CAgE7E,OA/DkBA,EAAU,YAC1BN,EACE,CACEO,EAMAC,IACG,CACH,MAAMC,EAAUX,EAAmBQ,CAAS,GAAKA,EAAU,aAAa,QAClEI,EAAaP,EAAOI,EAAM,OAASA,EAAM,cAAgB,EAAE,EAC3DI,EAAsBR,EAA+B,EAErDS,EAAWX,EACdY,GAAU,CAvBrB,IAAAC,EAwBiBP,EAAM,IACNM,KACLC,EAAAH,EAAoB,UAApB,MAAAG,EAAA,KAAAH,GACAA,EAAoB,QAAUP,EAAkBG,EAAM,GAAI,CACxD,MAAOM,EAAM,MAEb,GAAIJ,GAAW,CAEb,gBAAiB,CACfI,EAAM,MAAM,EACRA,EAAM,cAAgB,OAAOH,EAAW,SAAY,UACtDG,EAAM,aAAa,EAAGH,EAAW,QAAQ,MAAM,CAEnD,CACF,CACF,CAAC,EACH,EACA,CAACD,EAASF,EAAM,EAAE,CACpB,EAEMQ,EAAelB,EAAYW,EAAKI,CAAQ,EAE9CV,EAAU,IACD,IAAM,CA/CvB,IAAAY,GAgDYA,EAAAH,EAAoB,UAApB,MAAAG,EAAA,KAAAH,EACF,EACC,CAAC,CAAC,EAEL,MAAMK,EAAejB,EAAUkB,GAAU,CApDjD,IAAAH,EAqDUJ,EAAW,QAAUO,GACrBH,EAAAP,EAAM,eAAN,MAAAO,EAAA,KAAAP,EAAqBU,EACvB,CAAC,EAEKC,EAAaT,EACf,CACE,GAAGF,EACH,aAAAS,CACF,EACAT,EAGJ,OAAOX,EAACU,EAAA,CAAU,IAAKS,EAAe,GAAGG,EAAY,CACvD,CACF,CACF,CAGF",
6
+ "names": ["jsx", "composeRefs", "isTamaguiComponent", "useEvent", "forwardRef", "useCallback", "useEffect", "useRef", "registerFocusable", "focusableInputHOC", "Component", "props", "ref", "isInput", "inputValue", "unregisterFocusable", "inputRef", "input", "_a", "combinedRefs", "onChangeText", "value", "finalProps"]
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,4 +1,2 @@
1
- export * from "./registerFocusable";
2
- export * from "./focusableInputHOC";
3
- export * from "./focusable";
1
+ export*from"./registerFocusable";export*from"./focusableInputHOC";export*from"./focusable";
4
2
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './registerFocusable'\nexport * from './focusableInputHOC'\nexport * from './focusable'\n"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;",
5
+ "mappings": "AAAA,WAAc,sBACd,WAAc,sBACd,WAAc",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,2 @@
1
- export * from "./registerFocusable";
2
- export * from "./focusableInputHOC";
3
- export * from "./focusable";
1
+ export*from"./registerFocusable";export*from"./focusableInputHOC";export*from"./focusable";
4
2
  //# sourceMappingURL=index.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './registerFocusable'\nexport * from './focusableInputHOC'\nexport * from './focusable'\n"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;",
5
+ "mappings": "AAAA,WAAc,sBACd,WAAc,sBACd,WAAc",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,2 @@
1
- const registerFocusable = (id, input) => () => {
2
- };
3
- const unregisterFocusable = (id) => {
4
- };
5
- const focusFocusable = (id) => {
6
- };
7
- export {
8
- focusFocusable,
9
- registerFocusable,
10
- unregisterFocusable
11
- };
1
+ const r=(o,s)=>()=>{},i=o=>{},c=o=>{};export{c as focusFocusable,r as registerFocusable,i as unregisterFocusable};
12
2
  //# sourceMappingURL=registerFocusable.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.ts"],
4
4
  "sourcesContent": ["import { Focusable } from './focusable'\n\nexport const registerFocusable = (id: string, input: Focusable) => () => {\n // noop focus is handed natively\n}\n\nexport const unregisterFocusable = (id: string) => {\n // noop focus is handed natively\n}\n\nexport const focusFocusable = (id: string) => {\n // noop focus is handed natively\n}\n"],
5
- "mappings": "AAEO,MAAM,oBAAoB,CAAC,IAAY,UAAqB,MAAM;AAEzE;AAEO,MAAM,sBAAsB,CAAC,OAAe;AAEnD;AAEO,MAAM,iBAAiB,CAAC,OAAe;AAE9C;",
6
- "names": []
5
+ "mappings": "AAEO,MAAMA,EAAoB,CAACC,EAAYC,IAAqB,IAAM,CAEzE,EAEaC,EAAuBF,GAAe,CAEnD,EAEaG,EAAkBH,GAAe,CAE9C",
6
+ "names": ["registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable"]
7
7
  }
@@ -1,12 +1,2 @@
1
- const registerFocusable = (id, input) => () => {
2
- };
3
- const unregisterFocusable = (id) => {
4
- };
5
- const focusFocusable = (id) => {
6
- };
7
- export {
8
- focusFocusable,
9
- registerFocusable,
10
- unregisterFocusable
11
- };
1
+ const r=(o,s)=>()=>{},i=o=>{},c=o=>{};export{c as focusFocusable,r as registerFocusable,i as unregisterFocusable};
12
2
  //# sourceMappingURL=registerFocusable.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.ts"],
4
4
  "sourcesContent": ["import { Focusable } from './focusable'\n\nexport const registerFocusable = (id: string, input: Focusable) => () => {\n // noop focus is handed natively\n}\n\nexport const unregisterFocusable = (id: string) => {\n // noop focus is handed natively\n}\n\nexport const focusFocusable = (id: string) => {\n // noop focus is handed natively\n}\n"],
5
- "mappings": "AAEO,MAAM,oBAAoB,CAAC,IAAY,UAAqB,MAAM;AAEzE;AAEO,MAAM,sBAAsB,CAAC,OAAe;AAEnD;AAEO,MAAM,iBAAiB,CAAC,OAAe;AAE9C;",
6
- "names": []
5
+ "mappings": "AAEO,MAAMA,EAAoB,CAACC,EAAYC,IAAqB,IAAM,CAEzE,EAEaC,EAAuBF,GAAe,CAEnD,EAEaG,EAAkBH,GAAe,CAE9C",
6
+ "names": ["registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable"]
7
7
  }
@@ -1,35 +1,2 @@
1
- const InputsMap = /* @__PURE__ */ new Map();
2
- const registerFocusable = (id, input) => {
3
- if (process.env.NODE_ENV === "development") {
4
- if (InputsMap.has(id)) {
5
- console.warn(`Warning, duplicate ID for input: ${id}`);
6
- }
7
- }
8
- InputsMap.set(id, input);
9
- return () => {
10
- InputsMap.delete(id);
11
- };
12
- };
13
- const unregisterFocusable = (id) => {
14
- InputsMap.delete(id);
15
- };
16
- const focusFocusable = (id, select = false) => {
17
- const input = InputsMap.get(id);
18
- if (!input) {
19
- if (process.env.NODE_ENV === "development") {
20
- console.warn("No input found for id", id);
21
- }
22
- return;
23
- }
24
- if (select || !input.focusAndSelect) {
25
- input.focus();
26
- } else {
27
- input.focusAndSelect();
28
- }
29
- };
30
- export {
31
- focusFocusable,
32
- registerFocusable,
33
- unregisterFocusable
34
- };
1
+ const o=new Map,c=(e,n)=>(process.env.NODE_ENV==="development"&&o.has(e)&&console.warn(`Warning, duplicate ID for input: ${e}`),o.set(e,n),()=>{o.delete(e)}),u=e=>{o.delete(e)},l=(e,n=!1)=>{const s=o.get(e);if(!s){process.env.NODE_ENV==="development"&&console.warn("No input found for id",e);return}n||!s.focusAndSelect?s.focus():s.focusAndSelect()};export{l as focusFocusable,c as registerFocusable,u as unregisterFocusable};
35
2
  //# sourceMappingURL=registerFocusable.native.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.native.ts"],
4
4
  "sourcesContent": ["// used for focusing on native\n\nimport { Focusable } from './focusable'\n\nconst InputsMap = new Map<string, Focusable>()\n\nexport const registerFocusable = (id: string, input: Focusable) => {\n if (process.env.NODE_ENV === 'development') {\n if (InputsMap.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(`Warning, duplicate ID for input: ${id}`)\n }\n }\n InputsMap.set(id, input)\n return () => {\n InputsMap.delete(id)\n }\n}\n\nexport const unregisterFocusable = (id: string) => {\n InputsMap.delete(id)\n}\n\nexport const focusFocusable = (id: string, select = false) => {\n const input = InputsMap.get(id)\n if (!input) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No input found for id', id)\n }\n return\n }\n if (select || !input.focusAndSelect) {\n input.focus()\n } else {\n input.focusAndSelect()\n }\n}\n"],
5
- "mappings": "AAIA,MAAM,YAAY,oBAAI,IAAuB;AAEtC,MAAM,oBAAoB,CAAC,IAAY,UAAqB;AACjE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,UAAU,IAAI,EAAE,GAAG;AAErB,cAAQ,KAAK,oCAAoC,IAAI;AAAA,IACvD;AAAA,EACF;AACA,YAAU,IAAI,IAAI,KAAK;AACvB,SAAO,MAAM;AACX,cAAU,OAAO,EAAE;AAAA,EACrB;AACF;AAEO,MAAM,sBAAsB,CAAC,OAAe;AACjD,YAAU,OAAO,EAAE;AACrB;AAEO,MAAM,iBAAiB,CAAC,IAAY,SAAS,UAAU;AAC5D,QAAM,QAAQ,UAAU,IAAI,EAAE;AAC9B,MAAI,CAAC,OAAO;AACV,QAAI,QAAQ,IAAI,aAAa,eAAe;AAE1C,cAAQ,KAAK,yBAAyB,EAAE;AAAA,IAC1C;AACA;AAAA,EACF;AACA,MAAI,UAAU,CAAC,MAAM,gBAAgB;AACnC,UAAM,MAAM;AAAA,EACd,OAAO;AACL,UAAM,eAAe;AAAA,EACvB;AACF;",
6
- "names": []
5
+ "mappings": "AAIA,MAAMA,EAAY,IAAI,IAETC,EAAoB,CAACC,EAAYC,KACxC,QAAQ,IAAI,WAAa,eACvBH,EAAU,IAAIE,CAAE,GAElB,QAAQ,KAAK,oCAAoCA,GAAI,EAGzDF,EAAU,IAAIE,EAAIC,CAAK,EAChB,IAAM,CACXH,EAAU,OAAOE,CAAE,CACrB,GAGWE,EAAuBF,GAAe,CACjDF,EAAU,OAAOE,CAAE,CACrB,EAEaG,EAAiB,CAACH,EAAYI,EAAS,KAAU,CAC5D,MAAMH,EAAQH,EAAU,IAAIE,CAAE,EAC9B,GAAI,CAACC,EAAO,CACN,QAAQ,IAAI,WAAa,eAE3B,QAAQ,KAAK,wBAAyBD,CAAE,EAE1C,MACF,CACII,GAAU,CAACH,EAAM,eACnBA,EAAM,MAAM,EAEZA,EAAM,eAAe,CAEzB",
6
+ "names": ["InputsMap", "registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable", "select"]
7
7
  }
@@ -1,35 +1,2 @@
1
- const InputsMap = /* @__PURE__ */ new Map();
2
- const registerFocusable = (id, input) => {
3
- if (process.env.NODE_ENV === "development") {
4
- if (InputsMap.has(id)) {
5
- console.warn(`Warning, duplicate ID for input: ${id}`);
6
- }
7
- }
8
- InputsMap.set(id, input);
9
- return () => {
10
- InputsMap.delete(id);
11
- };
12
- };
13
- const unregisterFocusable = (id) => {
14
- InputsMap.delete(id);
15
- };
16
- const focusFocusable = (id, select = false) => {
17
- const input = InputsMap.get(id);
18
- if (!input) {
19
- if (process.env.NODE_ENV === "development") {
20
- console.warn("No input found for id", id);
21
- }
22
- return;
23
- }
24
- if (select || !input.focusAndSelect) {
25
- input.focus();
26
- } else {
27
- input.focusAndSelect();
28
- }
29
- };
30
- export {
31
- focusFocusable,
32
- registerFocusable,
33
- unregisterFocusable
34
- };
1
+ const o=new Map,c=(e,n)=>(process.env.NODE_ENV==="development"&&o.has(e)&&console.warn(`Warning, duplicate ID for input: ${e}`),o.set(e,n),()=>{o.delete(e)}),u=e=>{o.delete(e)},l=(e,n=!1)=>{const s=o.get(e);if(!s){process.env.NODE_ENV==="development"&&console.warn("No input found for id",e);return}n||!s.focusAndSelect?s.focus():s.focusAndSelect()};export{l as focusFocusable,c as registerFocusable,u as unregisterFocusable};
35
2
  //# sourceMappingURL=registerFocusable.native.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.native.ts"],
4
4
  "sourcesContent": ["// used for focusing on native\n\nimport { Focusable } from './focusable'\n\nconst InputsMap = new Map<string, Focusable>()\n\nexport const registerFocusable = (id: string, input: Focusable) => {\n if (process.env.NODE_ENV === 'development') {\n if (InputsMap.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(`Warning, duplicate ID for input: ${id}`)\n }\n }\n InputsMap.set(id, input)\n return () => {\n InputsMap.delete(id)\n }\n}\n\nexport const unregisterFocusable = (id: string) => {\n InputsMap.delete(id)\n}\n\nexport const focusFocusable = (id: string, select = false) => {\n const input = InputsMap.get(id)\n if (!input) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No input found for id', id)\n }\n return\n }\n if (select || !input.focusAndSelect) {\n input.focus()\n } else {\n input.focusAndSelect()\n }\n}\n"],
5
- "mappings": "AAIA,MAAM,YAAY,oBAAI,IAAuB;AAEtC,MAAM,oBAAoB,CAAC,IAAY,UAAqB;AACjE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,UAAU,IAAI,EAAE,GAAG;AAErB,cAAQ,KAAK,oCAAoC,IAAI;AAAA,IACvD;AAAA,EACF;AACA,YAAU,IAAI,IAAI,KAAK;AACvB,SAAO,MAAM;AACX,cAAU,OAAO,EAAE;AAAA,EACrB;AACF;AAEO,MAAM,sBAAsB,CAAC,OAAe;AACjD,YAAU,OAAO,EAAE;AACrB;AAEO,MAAM,iBAAiB,CAAC,IAAY,SAAS,UAAU;AAC5D,QAAM,QAAQ,UAAU,IAAI,EAAE;AAC9B,MAAI,CAAC,OAAO;AACV,QAAI,QAAQ,IAAI,aAAa,eAAe;AAE1C,cAAQ,KAAK,yBAAyB,EAAE;AAAA,IAC1C;AACA;AAAA,EACF;AACA,MAAI,UAAU,CAAC,MAAM,gBAAgB;AACnC,UAAM,MAAM;AAAA,EACd,OAAO;AACL,UAAM,eAAe;AAAA,EACvB;AACF;",
6
- "names": []
5
+ "mappings": "AAIA,MAAMA,EAAY,IAAI,IAETC,EAAoB,CAACC,EAAYC,KACxC,QAAQ,IAAI,WAAa,eACvBH,EAAU,IAAIE,CAAE,GAElB,QAAQ,KAAK,oCAAoCA,GAAI,EAGzDF,EAAU,IAAIE,EAAIC,CAAK,EAChB,IAAM,CACXH,EAAU,OAAOE,CAAE,CACrB,GAGWE,EAAuBF,GAAe,CACjDF,EAAU,OAAOE,CAAE,CACrB,EAEaG,EAAiB,CAACH,EAAYI,EAAS,KAAU,CAC5D,MAAMH,EAAQH,EAAU,IAAIE,CAAE,EAC9B,GAAI,CAACC,EAAO,CACN,QAAQ,IAAI,WAAa,eAE3B,QAAQ,KAAK,wBAAyBD,CAAE,EAE1C,MACF,CACII,GAAU,CAACH,EAAM,eACnBA,EAAM,MAAM,EAEZA,EAAM,eAAe,CAEzB",
6
+ "names": ["InputsMap", "registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable", "select"]
7
7
  }
@@ -1,57 +1,2 @@
1
- import { composeRefs } from "@tamagui/compose-refs";
2
- import { isTamaguiComponent, useEvent } from "@tamagui/web";
3
- import { forwardRef, useCallback, useEffect, useRef } from "react";
4
- import { registerFocusable } from "./registerFocusable";
5
- function focusableInputHOC(Component) {
6
- const component = Component.extractable(
7
- forwardRef(
8
- (props, ref) => {
9
- const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput;
10
- const inputValue = useRef(props.value || props.defaultValue || "");
11
- const unregisterFocusable = useRef();
12
- const inputRef = useCallback(
13
- (input) => {
14
- if (!props.id)
15
- return;
16
- if (!input)
17
- return;
18
- unregisterFocusable.current?.();
19
- unregisterFocusable.current = registerFocusable(props.id, {
20
- focus: input.focus,
21
- ...isInput && {
22
- // react-native doesn't support programmatic .select()
23
- focusAndSelect() {
24
- input.focus();
25
- if (input.setSelection && typeof inputValue.current === "string") {
26
- input.setSelection(0, inputValue.current.length);
27
- }
28
- }
29
- }
30
- });
31
- },
32
- [isInput, props.id]
33
- );
34
- const combinedRefs = composeRefs(ref, inputRef);
35
- useEffect(() => {
36
- return () => {
37
- unregisterFocusable.current?.();
38
- };
39
- }, []);
40
- const onChangeText = useEvent((value) => {
41
- inputValue.current = value;
42
- props.onChangeText?.(value);
43
- });
44
- const finalProps = isInput ? {
45
- ...props,
46
- onChangeText
47
- } : props;
48
- return <Component ref={combinedRefs} {...finalProps} />;
49
- }
50
- )
51
- );
52
- return component;
53
- }
54
- export {
55
- focusableInputHOC
56
- };
1
+ import{composeRefs as E}from"@tamagui/compose-refs";import{isTamaguiComponent as F,useEvent as k}from"@tamagui/web";import{forwardRef as w,useCallback as H,useEffect as O,useRef as h}from"react";import{registerFocusable as P}from"./registerFocusable";function J(C){return C.extractable(w((e,A)=>{const T=F(C)&&C.staticConfig.isInput,v=h(e.value||e.defaultValue||""),R=h(),I=H(t=>{e.id&&t&&(R.current?.(),R.current=P(e.id,{focus:t.focus,...T&&{focusAndSelect(){t.focus(),t.setSelection&&typeof v.current=="string"&&t.setSelection(0,v.current.length)}}}))},[T,e.id]),S=E(A,I);O(()=>()=>{R.current?.()},[]);const V=k(t=>{v.current=t,e.onChangeText?.(t)}),y=T?{...e,onChangeText:V}:e;return<C ref={S}{...y}/>}))}export{J as focusableInputHOC};
57
2
  //# sourceMappingURL=focusableInputHOC.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
4
  "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { TamaguiComponent, isTamaguiComponent, useEvent } from '@tamagui/web'\nimport { forwardRef, useCallback, useEffect, useRef } from 'react'\n\nimport { registerFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends TamaguiComponent>(Component: A): A {\n const component = Component.extractable(\n forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n const unregisterFocusable = useRef<() => void | undefined>()\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n unregisterFocusable.current?.()\n unregisterFocusable.current = registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n return () => {\n unregisterFocusable.current?.()\n }\n }, [])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n // @ts-expect-error\n return <Component ref={combinedRefs} {...finalProps} />\n }\n )\n ) as any\n\n return component\n}\n"],
5
- "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAA2B,oBAAoB,gBAAgB;AAC/D,SAAS,YAAY,aAAa,WAAW,cAAc;AAE3D,SAAS,yBAAyB;AAE3B,SAAS,kBAA8C,WAAiB;AAC7E,QAAM,YAAY,UAAU;AAAA,IAC1B;AAAA,MACE,CACE,OAMA,QACG;AACH,cAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,cAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AACjE,cAAM,sBAAsB,OAA+B;AAE3D,cAAM,WAAW;AAAA,UACf,CAAC,UAAU;AACT,gBAAI,CAAC,MAAM;AAAI;AACf,gBAAI,CAAC;AAAO;AACZ,gCAAoB,UAAU;AAC9B,gCAAoB,UAAU,kBAAkB,MAAM,IAAI;AAAA,cACxD,OAAO,MAAM;AAAA,cAEb,GAAI,WAAW;AAAA;AAAA,gBAEb,iBAAiB;AACf,wBAAM,MAAM;AACZ,sBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,0BAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,kBACjD;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,CAAC,SAAS,MAAM,EAAE;AAAA,QACpB;AAEA,cAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,kBAAU,MAAM;AACd,iBAAO,MAAM;AACX,gCAAoB,UAAU;AAAA,UAChC;AAAA,QACF,GAAG,CAAC,CAAC;AAEL,cAAM,eAAe,SAAS,CAAC,UAAU;AACvC,qBAAW,UAAU;AACrB,gBAAM,eAAe,KAAK;AAAA,QAC5B,CAAC;AAED,cAAM,aAAa,UACf;AAAA,UACE,GAAG;AAAA,UACH;AAAA,QACF,IACA;AAGJ,eAAO,CAAC,UAAU,KAAK,kBAAkB,YAAY;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "AAAA,OAAS,eAAAA,MAAmB,wBAC5B,OAA2B,sBAAAC,EAAoB,YAAAC,MAAgB,eAC/D,OAAS,cAAAC,EAAY,eAAAC,EAAa,aAAAC,EAAW,UAAAC,MAAc,QAE3D,OAAS,qBAAAC,MAAyB,sBAE3B,SAASC,EAA8CC,EAAiB,CAgE7E,OA/DkBA,EAAU,YAC1BN,EACE,CACEO,EAMAC,IACG,CACH,MAAMC,EAAUX,EAAmBQ,CAAS,GAAKA,EAAU,aAAa,QAClEI,EAAaP,EAAOI,EAAM,OAASA,EAAM,cAAgB,EAAE,EAC3DI,EAAsBR,EAA+B,EAErDS,EAAWX,EACdY,GAAU,CACJN,EAAM,IACNM,IACLF,EAAoB,UAAU,EAC9BA,EAAoB,QAAUP,EAAkBG,EAAM,GAAI,CACxD,MAAOM,EAAM,MAEb,GAAIJ,GAAW,CAEb,gBAAiB,CACfI,EAAM,MAAM,EACRA,EAAM,cAAgB,OAAOH,EAAW,SAAY,UACtDG,EAAM,aAAa,EAAGH,EAAW,QAAQ,MAAM,CAEnD,CACF,CACF,CAAC,EACH,EACA,CAACD,EAASF,EAAM,EAAE,CACpB,EAEMO,EAAejB,EAAYW,EAAKI,CAAQ,EAE9CV,EAAU,IACD,IAAM,CACXS,EAAoB,UAAU,CAChC,EACC,CAAC,CAAC,EAEL,MAAMI,EAAehB,EAAUiB,GAAU,CACvCN,EAAW,QAAUM,EACrBT,EAAM,eAAeS,CAAK,CAC5B,CAAC,EAEKC,EAAaR,EACf,CACE,GAAGF,EACH,aAAAQ,CACF,EACAR,EAGJ,MAAO,CAACD,EAAU,KAAKQ,MAAkBG,EAAY,EACvD,CACF,CACF,CAGF",
6
+ "names": ["composeRefs", "isTamaguiComponent", "useEvent", "forwardRef", "useCallback", "useEffect", "useRef", "registerFocusable", "focusableInputHOC", "Component", "props", "ref", "isInput", "inputValue", "unregisterFocusable", "inputRef", "input", "combinedRefs", "onChangeText", "value", "finalProps"]
7
7
  }
@@ -1,57 +1,2 @@
1
- import { composeRefs } from "@tamagui/compose-refs";
2
- import { isTamaguiComponent, useEvent } from "@tamagui/web";
3
- import { forwardRef, useCallback, useEffect, useRef } from "react";
4
- import { registerFocusable } from "./registerFocusable";
5
- function focusableInputHOC(Component) {
6
- const component = Component.extractable(
7
- forwardRef(
8
- (props, ref) => {
9
- const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput;
10
- const inputValue = useRef(props.value || props.defaultValue || "");
11
- const unregisterFocusable = useRef();
12
- const inputRef = useCallback(
13
- (input) => {
14
- if (!props.id)
15
- return;
16
- if (!input)
17
- return;
18
- unregisterFocusable.current?.();
19
- unregisterFocusable.current = registerFocusable(props.id, {
20
- focus: input.focus,
21
- ...isInput && {
22
- // react-native doesn't support programmatic .select()
23
- focusAndSelect() {
24
- input.focus();
25
- if (input.setSelection && typeof inputValue.current === "string") {
26
- input.setSelection(0, inputValue.current.length);
27
- }
28
- }
29
- }
30
- });
31
- },
32
- [isInput, props.id]
33
- );
34
- const combinedRefs = composeRefs(ref, inputRef);
35
- useEffect(() => {
36
- return () => {
37
- unregisterFocusable.current?.();
38
- };
39
- }, []);
40
- const onChangeText = useEvent((value) => {
41
- inputValue.current = value;
42
- props.onChangeText?.(value);
43
- });
44
- const finalProps = isInput ? {
45
- ...props,
46
- onChangeText
47
- } : props;
48
- return <Component ref={combinedRefs} {...finalProps} />;
49
- }
50
- )
51
- );
52
- return component;
53
- }
54
- export {
55
- focusableInputHOC
56
- };
1
+ import{composeRefs as E}from"@tamagui/compose-refs";import{isTamaguiComponent as F,useEvent as k}from"@tamagui/web";import{forwardRef as w,useCallback as H,useEffect as O,useRef as h}from"react";import{registerFocusable as P}from"./registerFocusable";function J(C){return C.extractable(w((e,A)=>{const T=F(C)&&C.staticConfig.isInput,v=h(e.value||e.defaultValue||""),R=h(),I=H(t=>{e.id&&t&&(R.current?.(),R.current=P(e.id,{focus:t.focus,...T&&{focusAndSelect(){t.focus(),t.setSelection&&typeof v.current=="string"&&t.setSelection(0,v.current.length)}}}))},[T,e.id]),S=E(A,I);O(()=>()=>{R.current?.()},[]);const V=k(t=>{v.current=t,e.onChangeText?.(t)}),y=T?{...e,onChangeText:V}:e;return<C ref={S}{...y}/>}))}export{J as focusableInputHOC};
57
2
  //# sourceMappingURL=focusableInputHOC.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/focusableInputHOC.tsx"],
4
4
  "sourcesContent": ["import { composeRefs } from '@tamagui/compose-refs'\nimport { TamaguiComponent, isTamaguiComponent, useEvent } from '@tamagui/web'\nimport { forwardRef, useCallback, useEffect, useRef } from 'react'\n\nimport { registerFocusable } from './registerFocusable'\n\nexport function focusableInputHOC<A extends TamaguiComponent>(Component: A): A {\n const component = Component.extractable(\n forwardRef(\n (\n props: {\n id?: string\n onChangeText?: (val: string) => void\n value?: string\n defaultValue?: string\n },\n ref\n ) => {\n const isInput = isTamaguiComponent(Component) && Component.staticConfig.isInput\n const inputValue = useRef(props.value || props.defaultValue || '')\n const unregisterFocusable = useRef<() => void | undefined>()\n\n const inputRef = useCallback(\n (input) => {\n if (!props.id) return\n if (!input) return\n unregisterFocusable.current?.()\n unregisterFocusable.current = registerFocusable(props.id, {\n focus: input.focus,\n\n ...(isInput && {\n // react-native doesn't support programmatic .select()\n focusAndSelect() {\n input.focus()\n if (input.setSelection && typeof inputValue.current === 'string') {\n input.setSelection(0, inputValue.current.length)\n }\n },\n }),\n })\n },\n [isInput, props.id]\n )\n\n const combinedRefs = composeRefs(ref, inputRef)\n\n useEffect(() => {\n return () => {\n unregisterFocusable.current?.()\n }\n }, [])\n\n const onChangeText = useEvent((value) => {\n inputValue.current = value\n props.onChangeText?.(value)\n })\n\n const finalProps = isInput\n ? {\n ...props,\n onChangeText,\n }\n : props\n\n // @ts-expect-error\n return <Component ref={combinedRefs} {...finalProps} />\n }\n )\n ) as any\n\n return component\n}\n"],
5
- "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAA2B,oBAAoB,gBAAgB;AAC/D,SAAS,YAAY,aAAa,WAAW,cAAc;AAE3D,SAAS,yBAAyB;AAE3B,SAAS,kBAA8C,WAAiB;AAC7E,QAAM,YAAY,UAAU;AAAA,IAC1B;AAAA,MACE,CACE,OAMA,QACG;AACH,cAAM,UAAU,mBAAmB,SAAS,KAAK,UAAU,aAAa;AACxE,cAAM,aAAa,OAAO,MAAM,SAAS,MAAM,gBAAgB,EAAE;AACjE,cAAM,sBAAsB,OAA+B;AAE3D,cAAM,WAAW;AAAA,UACf,CAAC,UAAU;AACT,gBAAI,CAAC,MAAM;AAAI;AACf,gBAAI,CAAC;AAAO;AACZ,gCAAoB,UAAU;AAC9B,gCAAoB,UAAU,kBAAkB,MAAM,IAAI;AAAA,cACxD,OAAO,MAAM;AAAA,cAEb,GAAI,WAAW;AAAA;AAAA,gBAEb,iBAAiB;AACf,wBAAM,MAAM;AACZ,sBAAI,MAAM,gBAAgB,OAAO,WAAW,YAAY,UAAU;AAChE,0BAAM,aAAa,GAAG,WAAW,QAAQ,MAAM;AAAA,kBACjD;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,UACA,CAAC,SAAS,MAAM,EAAE;AAAA,QACpB;AAEA,cAAM,eAAe,YAAY,KAAK,QAAQ;AAE9C,kBAAU,MAAM;AACd,iBAAO,MAAM;AACX,gCAAoB,UAAU;AAAA,UAChC;AAAA,QACF,GAAG,CAAC,CAAC;AAEL,cAAM,eAAe,SAAS,CAAC,UAAU;AACvC,qBAAW,UAAU;AACrB,gBAAM,eAAe,KAAK;AAAA,QAC5B,CAAC;AAED,cAAM,aAAa,UACf;AAAA,UACE,GAAG;AAAA,UACH;AAAA,QACF,IACA;AAGJ,eAAO,CAAC,UAAU,KAAK,kBAAkB,YAAY;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;",
6
- "names": []
5
+ "mappings": "AAAA,OAAS,eAAAA,MAAmB,wBAC5B,OAA2B,sBAAAC,EAAoB,YAAAC,MAAgB,eAC/D,OAAS,cAAAC,EAAY,eAAAC,EAAa,aAAAC,EAAW,UAAAC,MAAc,QAE3D,OAAS,qBAAAC,MAAyB,sBAE3B,SAASC,EAA8CC,EAAiB,CAgE7E,OA/DkBA,EAAU,YAC1BN,EACE,CACEO,EAMAC,IACG,CACH,MAAMC,EAAUX,EAAmBQ,CAAS,GAAKA,EAAU,aAAa,QAClEI,EAAaP,EAAOI,EAAM,OAASA,EAAM,cAAgB,EAAE,EAC3DI,EAAsBR,EAA+B,EAErDS,EAAWX,EACdY,GAAU,CACJN,EAAM,IACNM,IACLF,EAAoB,UAAU,EAC9BA,EAAoB,QAAUP,EAAkBG,EAAM,GAAI,CACxD,MAAOM,EAAM,MAEb,GAAIJ,GAAW,CAEb,gBAAiB,CACfI,EAAM,MAAM,EACRA,EAAM,cAAgB,OAAOH,EAAW,SAAY,UACtDG,EAAM,aAAa,EAAGH,EAAW,QAAQ,MAAM,CAEnD,CACF,CACF,CAAC,EACH,EACA,CAACD,EAASF,EAAM,EAAE,CACpB,EAEMO,EAAejB,EAAYW,EAAKI,CAAQ,EAE9CV,EAAU,IACD,IAAM,CACXS,EAAoB,UAAU,CAChC,EACC,CAAC,CAAC,EAEL,MAAMI,EAAehB,EAAUiB,GAAU,CACvCN,EAAW,QAAUM,EACrBT,EAAM,eAAeS,CAAK,CAC5B,CAAC,EAEKC,EAAaR,EACf,CACE,GAAGF,EACH,aAAAQ,CACF,EACAR,EAGJ,MAAO,CAACD,EAAU,KAAKQ,MAAkBG,EAAY,EACvD,CACF,CACF,CAGF",
6
+ "names": ["composeRefs", "isTamaguiComponent", "useEvent", "forwardRef", "useCallback", "useEffect", "useRef", "registerFocusable", "focusableInputHOC", "Component", "props", "ref", "isInput", "inputValue", "unregisterFocusable", "inputRef", "input", "combinedRefs", "onChangeText", "value", "finalProps"]
7
7
  }
package/dist/jsx/index.js CHANGED
@@ -1,4 +1,2 @@
1
- export * from "./registerFocusable";
2
- export * from "./focusableInputHOC";
3
- export * from "./focusable";
1
+ export*from"./registerFocusable";export*from"./focusableInputHOC";export*from"./focusable";
4
2
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './registerFocusable'\nexport * from './focusableInputHOC'\nexport * from './focusable'\n"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;",
5
+ "mappings": "AAAA,WAAc,sBACd,WAAc,sBACd,WAAc",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,2 @@
1
- export * from "./registerFocusable";
2
- export * from "./focusableInputHOC";
3
- export * from "./focusable";
1
+ export*from"./registerFocusable";export*from"./focusableInputHOC";export*from"./focusable";
4
2
  //# sourceMappingURL=index.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
4
  "sourcesContent": ["export * from './registerFocusable'\nexport * from './focusableInputHOC'\nexport * from './focusable'\n"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;",
5
+ "mappings": "AAAA,WAAc,sBACd,WAAc,sBACd,WAAc",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,2 @@
1
- const registerFocusable = (id, input) => () => {
2
- };
3
- const unregisterFocusable = (id) => {
4
- };
5
- const focusFocusable = (id) => {
6
- };
7
- export {
8
- focusFocusable,
9
- registerFocusable,
10
- unregisterFocusable
11
- };
1
+ const r=(o,s)=>()=>{},i=o=>{},c=o=>{};export{c as focusFocusable,r as registerFocusable,i as unregisterFocusable};
12
2
  //# sourceMappingURL=registerFocusable.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.ts"],
4
4
  "sourcesContent": ["import { Focusable } from './focusable'\n\nexport const registerFocusable = (id: string, input: Focusable) => () => {\n // noop focus is handed natively\n}\n\nexport const unregisterFocusable = (id: string) => {\n // noop focus is handed natively\n}\n\nexport const focusFocusable = (id: string) => {\n // noop focus is handed natively\n}\n"],
5
- "mappings": "AAEO,MAAM,oBAAoB,CAAC,IAAY,UAAqB,MAAM;AAEzE;AAEO,MAAM,sBAAsB,CAAC,OAAe;AAEnD;AAEO,MAAM,iBAAiB,CAAC,OAAe;AAE9C;",
6
- "names": []
5
+ "mappings": "AAEO,MAAMA,EAAoB,CAACC,EAAYC,IAAqB,IAAM,CAEzE,EAEaC,EAAuBF,GAAe,CAEnD,EAEaG,EAAkBH,GAAe,CAE9C",
6
+ "names": ["registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable"]
7
7
  }
@@ -1,12 +1,2 @@
1
- const registerFocusable = (id, input) => () => {
2
- };
3
- const unregisterFocusable = (id) => {
4
- };
5
- const focusFocusable = (id) => {
6
- };
7
- export {
8
- focusFocusable,
9
- registerFocusable,
10
- unregisterFocusable
11
- };
1
+ const r=(o,s)=>()=>{},i=o=>{},c=o=>{};export{c as focusFocusable,r as registerFocusable,i as unregisterFocusable};
12
2
  //# sourceMappingURL=registerFocusable.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.ts"],
4
4
  "sourcesContent": ["import { Focusable } from './focusable'\n\nexport const registerFocusable = (id: string, input: Focusable) => () => {\n // noop focus is handed natively\n}\n\nexport const unregisterFocusable = (id: string) => {\n // noop focus is handed natively\n}\n\nexport const focusFocusable = (id: string) => {\n // noop focus is handed natively\n}\n"],
5
- "mappings": "AAEO,MAAM,oBAAoB,CAAC,IAAY,UAAqB,MAAM;AAEzE;AAEO,MAAM,sBAAsB,CAAC,OAAe;AAEnD;AAEO,MAAM,iBAAiB,CAAC,OAAe;AAE9C;",
6
- "names": []
5
+ "mappings": "AAEO,MAAMA,EAAoB,CAACC,EAAYC,IAAqB,IAAM,CAEzE,EAEaC,EAAuBF,GAAe,CAEnD,EAEaG,EAAkBH,GAAe,CAE9C",
6
+ "names": ["registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable"]
7
7
  }
@@ -1,35 +1,2 @@
1
- const InputsMap = /* @__PURE__ */ new Map();
2
- const registerFocusable = (id, input) => {
3
- if (process.env.NODE_ENV === "development") {
4
- if (InputsMap.has(id)) {
5
- console.warn(`Warning, duplicate ID for input: ${id}`);
6
- }
7
- }
8
- InputsMap.set(id, input);
9
- return () => {
10
- InputsMap.delete(id);
11
- };
12
- };
13
- const unregisterFocusable = (id) => {
14
- InputsMap.delete(id);
15
- };
16
- const focusFocusable = (id, select = false) => {
17
- const input = InputsMap.get(id);
18
- if (!input) {
19
- if (process.env.NODE_ENV === "development") {
20
- console.warn("No input found for id", id);
21
- }
22
- return;
23
- }
24
- if (select || !input.focusAndSelect) {
25
- input.focus();
26
- } else {
27
- input.focusAndSelect();
28
- }
29
- };
30
- export {
31
- focusFocusable,
32
- registerFocusable,
33
- unregisterFocusable
34
- };
1
+ const o=new Map,c=(e,n)=>(process.env.NODE_ENV==="development"&&o.has(e)&&console.warn(`Warning, duplicate ID for input: ${e}`),o.set(e,n),()=>{o.delete(e)}),u=e=>{o.delete(e)},l=(e,n=!1)=>{const s=o.get(e);if(!s){process.env.NODE_ENV==="development"&&console.warn("No input found for id",e);return}n||!s.focusAndSelect?s.focus():s.focusAndSelect()};export{l as focusFocusable,c as registerFocusable,u as unregisterFocusable};
35
2
  //# sourceMappingURL=registerFocusable.native.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.native.ts"],
4
4
  "sourcesContent": ["// used for focusing on native\n\nimport { Focusable } from './focusable'\n\nconst InputsMap = new Map<string, Focusable>()\n\nexport const registerFocusable = (id: string, input: Focusable) => {\n if (process.env.NODE_ENV === 'development') {\n if (InputsMap.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(`Warning, duplicate ID for input: ${id}`)\n }\n }\n InputsMap.set(id, input)\n return () => {\n InputsMap.delete(id)\n }\n}\n\nexport const unregisterFocusable = (id: string) => {\n InputsMap.delete(id)\n}\n\nexport const focusFocusable = (id: string, select = false) => {\n const input = InputsMap.get(id)\n if (!input) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No input found for id', id)\n }\n return\n }\n if (select || !input.focusAndSelect) {\n input.focus()\n } else {\n input.focusAndSelect()\n }\n}\n"],
5
- "mappings": "AAIA,MAAM,YAAY,oBAAI,IAAuB;AAEtC,MAAM,oBAAoB,CAAC,IAAY,UAAqB;AACjE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,UAAU,IAAI,EAAE,GAAG;AAErB,cAAQ,KAAK,oCAAoC,IAAI;AAAA,IACvD;AAAA,EACF;AACA,YAAU,IAAI,IAAI,KAAK;AACvB,SAAO,MAAM;AACX,cAAU,OAAO,EAAE;AAAA,EACrB;AACF;AAEO,MAAM,sBAAsB,CAAC,OAAe;AACjD,YAAU,OAAO,EAAE;AACrB;AAEO,MAAM,iBAAiB,CAAC,IAAY,SAAS,UAAU;AAC5D,QAAM,QAAQ,UAAU,IAAI,EAAE;AAC9B,MAAI,CAAC,OAAO;AACV,QAAI,QAAQ,IAAI,aAAa,eAAe;AAE1C,cAAQ,KAAK,yBAAyB,EAAE;AAAA,IAC1C;AACA;AAAA,EACF;AACA,MAAI,UAAU,CAAC,MAAM,gBAAgB;AACnC,UAAM,MAAM;AAAA,EACd,OAAO;AACL,UAAM,eAAe;AAAA,EACvB;AACF;",
6
- "names": []
5
+ "mappings": "AAIA,MAAMA,EAAY,IAAI,IAETC,EAAoB,CAACC,EAAYC,KACxC,QAAQ,IAAI,WAAa,eACvBH,EAAU,IAAIE,CAAE,GAElB,QAAQ,KAAK,oCAAoCA,GAAI,EAGzDF,EAAU,IAAIE,EAAIC,CAAK,EAChB,IAAM,CACXH,EAAU,OAAOE,CAAE,CACrB,GAGWE,EAAuBF,GAAe,CACjDF,EAAU,OAAOE,CAAE,CACrB,EAEaG,EAAiB,CAACH,EAAYI,EAAS,KAAU,CAC5D,MAAMH,EAAQH,EAAU,IAAIE,CAAE,EAC9B,GAAI,CAACC,EAAO,CACN,QAAQ,IAAI,WAAa,eAE3B,QAAQ,KAAK,wBAAyBD,CAAE,EAE1C,MACF,CACII,GAAU,CAACH,EAAM,eACnBA,EAAM,MAAM,EAEZA,EAAM,eAAe,CAEzB",
6
+ "names": ["InputsMap", "registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable", "select"]
7
7
  }
@@ -1,35 +1,2 @@
1
- const InputsMap = /* @__PURE__ */ new Map();
2
- const registerFocusable = (id, input) => {
3
- if (process.env.NODE_ENV === "development") {
4
- if (InputsMap.has(id)) {
5
- console.warn(`Warning, duplicate ID for input: ${id}`);
6
- }
7
- }
8
- InputsMap.set(id, input);
9
- return () => {
10
- InputsMap.delete(id);
11
- };
12
- };
13
- const unregisterFocusable = (id) => {
14
- InputsMap.delete(id);
15
- };
16
- const focusFocusable = (id, select = false) => {
17
- const input = InputsMap.get(id);
18
- if (!input) {
19
- if (process.env.NODE_ENV === "development") {
20
- console.warn("No input found for id", id);
21
- }
22
- return;
23
- }
24
- if (select || !input.focusAndSelect) {
25
- input.focus();
26
- } else {
27
- input.focusAndSelect();
28
- }
29
- };
30
- export {
31
- focusFocusable,
32
- registerFocusable,
33
- unregisterFocusable
34
- };
1
+ const o=new Map,c=(e,n)=>(process.env.NODE_ENV==="development"&&o.has(e)&&console.warn(`Warning, duplicate ID for input: ${e}`),o.set(e,n),()=>{o.delete(e)}),u=e=>{o.delete(e)},l=(e,n=!1)=>{const s=o.get(e);if(!s){process.env.NODE_ENV==="development"&&console.warn("No input found for id",e);return}n||!s.focusAndSelect?s.focus():s.focusAndSelect()};export{l as focusFocusable,c as registerFocusable,u as unregisterFocusable};
35
2
  //# sourceMappingURL=registerFocusable.native.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerFocusable.native.ts"],
4
4
  "sourcesContent": ["// used for focusing on native\n\nimport { Focusable } from './focusable'\n\nconst InputsMap = new Map<string, Focusable>()\n\nexport const registerFocusable = (id: string, input: Focusable) => {\n if (process.env.NODE_ENV === 'development') {\n if (InputsMap.has(id)) {\n // eslint-disable-next-line no-console\n console.warn(`Warning, duplicate ID for input: ${id}`)\n }\n }\n InputsMap.set(id, input)\n return () => {\n InputsMap.delete(id)\n }\n}\n\nexport const unregisterFocusable = (id: string) => {\n InputsMap.delete(id)\n}\n\nexport const focusFocusable = (id: string, select = false) => {\n const input = InputsMap.get(id)\n if (!input) {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('No input found for id', id)\n }\n return\n }\n if (select || !input.focusAndSelect) {\n input.focus()\n } else {\n input.focusAndSelect()\n }\n}\n"],
5
- "mappings": "AAIA,MAAM,YAAY,oBAAI,IAAuB;AAEtC,MAAM,oBAAoB,CAAC,IAAY,UAAqB;AACjE,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,QAAI,UAAU,IAAI,EAAE,GAAG;AAErB,cAAQ,KAAK,oCAAoC,IAAI;AAAA,IACvD;AAAA,EACF;AACA,YAAU,IAAI,IAAI,KAAK;AACvB,SAAO,MAAM;AACX,cAAU,OAAO,EAAE;AAAA,EACrB;AACF;AAEO,MAAM,sBAAsB,CAAC,OAAe;AACjD,YAAU,OAAO,EAAE;AACrB;AAEO,MAAM,iBAAiB,CAAC,IAAY,SAAS,UAAU;AAC5D,QAAM,QAAQ,UAAU,IAAI,EAAE;AAC9B,MAAI,CAAC,OAAO;AACV,QAAI,QAAQ,IAAI,aAAa,eAAe;AAE1C,cAAQ,KAAK,yBAAyB,EAAE;AAAA,IAC1C;AACA;AAAA,EACF;AACA,MAAI,UAAU,CAAC,MAAM,gBAAgB;AACnC,UAAM,MAAM;AAAA,EACd,OAAO;AACL,UAAM,eAAe;AAAA,EACvB;AACF;",
6
- "names": []
5
+ "mappings": "AAIA,MAAMA,EAAY,IAAI,IAETC,EAAoB,CAACC,EAAYC,KACxC,QAAQ,IAAI,WAAa,eACvBH,EAAU,IAAIE,CAAE,GAElB,QAAQ,KAAK,oCAAoCA,GAAI,EAGzDF,EAAU,IAAIE,EAAIC,CAAK,EAChB,IAAM,CACXH,EAAU,OAAOE,CAAE,CACrB,GAGWE,EAAuBF,GAAe,CACjDF,EAAU,OAAOE,CAAE,CACrB,EAEaG,EAAiB,CAACH,EAAYI,EAAS,KAAU,CAC5D,MAAMH,EAAQH,EAAU,IAAIE,CAAE,EAC9B,GAAI,CAACC,EAAO,CACN,QAAQ,IAAI,WAAa,eAE3B,QAAQ,KAAK,wBAAyBD,CAAE,EAE1C,MACF,CACII,GAAU,CAACH,EAAM,eACnBA,EAAM,MAAM,EAEZA,EAAM,eAAe,CAEzB",
6
+ "names": ["InputsMap", "registerFocusable", "id", "input", "unregisterFocusable", "focusFocusable", "select"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/focusable",
3
- "version": "1.13.3",
3
+ "version": "1.13.4",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "types": "./types/index.d.ts",
@@ -22,14 +22,14 @@
22
22
  "clean:build": "tamagui-build clean:build"
23
23
  },
24
24
  "dependencies": {
25
- "@tamagui/compose-refs": "1.13.3",
26
- "@tamagui/web": "1.13.3"
25
+ "@tamagui/compose-refs": "1.13.4",
26
+ "@tamagui/web": "1.13.4"
27
27
  },
28
28
  "peerDependencies": {
29
29
  "react": "*"
30
30
  },
31
31
  "devDependencies": {
32
- "@tamagui/build": "1.13.3",
32
+ "@tamagui/build": "1.13.4",
33
33
  "react": "^18.2.0"
34
34
  },
35
35
  "publishConfig": {