@tamagui/select 1.14.0 → 1.14.2

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 (143) hide show
  1. package/dist/cjs/BubbleSelect.js +47 -1
  2. package/dist/cjs/BubbleSelect.js.map +2 -2
  3. package/dist/cjs/Select.js +494 -1
  4. package/dist/cjs/Select.js.map +2 -2
  5. package/dist/cjs/SelectContent.js +54 -1
  6. package/dist/cjs/SelectContent.js.map +2 -2
  7. package/dist/cjs/SelectContent.native.js +30 -1
  8. package/dist/cjs/SelectContent.native.js.map +2 -2
  9. package/dist/cjs/SelectImpl.js +308 -1
  10. package/dist/cjs/SelectImpl.js.map +2 -2
  11. package/dist/cjs/SelectImpl.native.js +34 -1
  12. package/dist/cjs/SelectImpl.native.js.map +2 -2
  13. package/dist/cjs/SelectScrollButton.js +175 -1
  14. package/dist/cjs/SelectScrollButton.js.map +2 -2
  15. package/dist/cjs/SelectScrollButton.native.js +31 -1
  16. package/dist/cjs/SelectScrollButton.native.js.map +2 -2
  17. package/dist/cjs/SelectViewport.js +115 -2
  18. package/dist/cjs/SelectViewport.js.map +2 -2
  19. package/dist/cjs/SelectViewport.native.js +52 -1
  20. package/dist/cjs/SelectViewport.native.js.map +2 -2
  21. package/dist/cjs/constants.js +46 -1
  22. package/dist/cjs/constants.js.map +2 -2
  23. package/dist/cjs/context.js +43 -1
  24. package/dist/cjs/context.js.map +2 -2
  25. package/dist/cjs/index.js +19 -1
  26. package/dist/cjs/index.js.map +2 -2
  27. package/dist/cjs/types.js +16 -1
  28. package/dist/cjs/types.js.map +2 -2
  29. package/dist/cjs/useSelectBreakpointActive.js +42 -1
  30. package/dist/cjs/useSelectBreakpointActive.js.map +2 -2
  31. package/dist/esm/BubbleSelect.js +24 -1
  32. package/dist/esm/BubbleSelect.js.map +2 -2
  33. package/dist/esm/BubbleSelect.mjs +24 -1
  34. package/dist/esm/BubbleSelect.mjs.map +2 -2
  35. package/dist/esm/Select.js +464 -1
  36. package/dist/esm/Select.js.map +2 -2
  37. package/dist/esm/Select.mjs +464 -1
  38. package/dist/esm/Select.mjs.map +2 -2
  39. package/dist/esm/SelectContent.js +30 -1
  40. package/dist/esm/SelectContent.js.map +2 -2
  41. package/dist/esm/SelectContent.mjs +30 -1
  42. package/dist/esm/SelectContent.mjs.map +2 -2
  43. package/dist/esm/SelectContent.native.js +6 -1
  44. package/dist/esm/SelectContent.native.js.map +2 -2
  45. package/dist/esm/SelectContent.native.mjs +6 -1
  46. package/dist/esm/SelectContent.native.mjs.map +2 -2
  47. package/dist/esm/SelectImpl.js +294 -1
  48. package/dist/esm/SelectImpl.js.map +2 -2
  49. package/dist/esm/SelectImpl.mjs +294 -1
  50. package/dist/esm/SelectImpl.mjs.map +2 -2
  51. package/dist/esm/SelectImpl.native.js +10 -1
  52. package/dist/esm/SelectImpl.native.js.map +2 -2
  53. package/dist/esm/SelectImpl.native.mjs +10 -1
  54. package/dist/esm/SelectImpl.native.mjs.map +2 -2
  55. package/dist/esm/SelectScrollButton.js +140 -1
  56. package/dist/esm/SelectScrollButton.js.map +2 -2
  57. package/dist/esm/SelectScrollButton.mjs +140 -1
  58. package/dist/esm/SelectScrollButton.mjs.map +2 -2
  59. package/dist/esm/SelectScrollButton.native.js +6 -1
  60. package/dist/esm/SelectScrollButton.native.js.map +2 -2
  61. package/dist/esm/SelectScrollButton.native.mjs +6 -1
  62. package/dist/esm/SelectScrollButton.native.mjs.map +2 -2
  63. package/dist/esm/SelectViewport.js +80 -2
  64. package/dist/esm/SelectViewport.js.map +2 -2
  65. package/dist/esm/SelectViewport.mjs +80 -2
  66. package/dist/esm/SelectViewport.mjs.map +2 -2
  67. package/dist/esm/SelectViewport.native.js +18 -1
  68. package/dist/esm/SelectViewport.native.js.map +2 -2
  69. package/dist/esm/SelectViewport.native.mjs +18 -1
  70. package/dist/esm/SelectViewport.native.mjs.map +2 -2
  71. package/dist/esm/constants.js +16 -1
  72. package/dist/esm/constants.js.map +2 -2
  73. package/dist/esm/constants.mjs +16 -1
  74. package/dist/esm/constants.mjs.map +2 -2
  75. package/dist/esm/context.js +15 -1
  76. package/dist/esm/context.js.map +2 -2
  77. package/dist/esm/context.mjs +15 -1
  78. package/dist/esm/context.mjs.map +2 -2
  79. package/dist/esm/index.js +2 -1
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/esm/index.mjs +2 -1
  82. package/dist/esm/index.mjs.map +1 -1
  83. package/dist/esm/useSelectBreakpointActive.js +17 -1
  84. package/dist/esm/useSelectBreakpointActive.js.map +2 -2
  85. package/dist/esm/useSelectBreakpointActive.mjs +17 -1
  86. package/dist/esm/useSelectBreakpointActive.mjs.map +2 -2
  87. package/dist/jsx/BubbleSelect.js +24 -1
  88. package/dist/jsx/BubbleSelect.js.map +2 -2
  89. package/dist/jsx/BubbleSelect.mjs +24 -1
  90. package/dist/jsx/BubbleSelect.mjs.map +2 -2
  91. package/dist/jsx/Select.js +428 -1
  92. package/dist/jsx/Select.js.map +2 -2
  93. package/dist/jsx/Select.mjs +428 -1
  94. package/dist/jsx/Select.mjs.map +2 -2
  95. package/dist/jsx/SelectContent.js +29 -1
  96. package/dist/jsx/SelectContent.js.map +2 -2
  97. package/dist/jsx/SelectContent.mjs +29 -1
  98. package/dist/jsx/SelectContent.mjs.map +2 -2
  99. package/dist/jsx/SelectContent.native.js +6 -1
  100. package/dist/jsx/SelectContent.native.js.map +2 -2
  101. package/dist/jsx/SelectContent.native.mjs +6 -1
  102. package/dist/jsx/SelectContent.native.mjs.map +2 -2
  103. package/dist/jsx/SelectImpl.js +286 -1
  104. package/dist/jsx/SelectImpl.js.map +2 -2
  105. package/dist/jsx/SelectImpl.mjs +286 -1
  106. package/dist/jsx/SelectImpl.mjs.map +2 -2
  107. package/dist/jsx/SelectImpl.native.js +9 -1
  108. package/dist/jsx/SelectImpl.native.js.map +2 -2
  109. package/dist/jsx/SelectImpl.native.mjs +9 -1
  110. package/dist/jsx/SelectImpl.native.mjs.map +2 -2
  111. package/dist/jsx/SelectScrollButton.js +126 -1
  112. package/dist/jsx/SelectScrollButton.js.map +2 -2
  113. package/dist/jsx/SelectScrollButton.mjs +126 -1
  114. package/dist/jsx/SelectScrollButton.mjs.map +2 -2
  115. package/dist/jsx/SelectScrollButton.native.js +6 -1
  116. package/dist/jsx/SelectScrollButton.native.js.map +2 -2
  117. package/dist/jsx/SelectScrollButton.native.mjs +6 -1
  118. package/dist/jsx/SelectScrollButton.native.mjs.map +2 -2
  119. package/dist/jsx/SelectViewport.js +72 -2
  120. package/dist/jsx/SelectViewport.js.map +2 -2
  121. package/dist/jsx/SelectViewport.mjs +72 -2
  122. package/dist/jsx/SelectViewport.mjs.map +2 -2
  123. package/dist/jsx/SelectViewport.native.js +17 -1
  124. package/dist/jsx/SelectViewport.native.js.map +2 -2
  125. package/dist/jsx/SelectViewport.native.mjs +17 -1
  126. package/dist/jsx/SelectViewport.native.mjs.map +2 -2
  127. package/dist/jsx/constants.js +16 -1
  128. package/dist/jsx/constants.js.map +2 -2
  129. package/dist/jsx/constants.mjs +16 -1
  130. package/dist/jsx/constants.mjs.map +2 -2
  131. package/dist/jsx/context.js +14 -1
  132. package/dist/jsx/context.js.map +2 -2
  133. package/dist/jsx/context.mjs +14 -1
  134. package/dist/jsx/context.mjs.map +2 -2
  135. package/dist/jsx/index.js +2 -1
  136. package/dist/jsx/index.js.map +1 -1
  137. package/dist/jsx/index.mjs +2 -1
  138. package/dist/jsx/index.mjs.map +1 -1
  139. package/dist/jsx/useSelectBreakpointActive.js +17 -1
  140. package/dist/jsx/useSelectBreakpointActive.js.map +2 -2
  141. package/dist/jsx/useSelectBreakpointActive.mjs +17 -1
  142. package/dist/jsx/useSelectBreakpointActive.mjs.map +2 -2
  143. package/package.json +16 -16
@@ -1,2 +1,16 @@
1
- import{jsx as n}from"react/jsx-runtime";import{createContextScope as o}from"@tamagui/create-context";import{SELECT_NAME as t}from"./constants";const[c,a]=o(t),[r,d]=c(t),i=e=>n(r,{isInSheet:!0,scope:e.__scopeSelect,...e.context,children:e.children});export{i as ForwardSelectContext,r as SelectProvider,c as createSelectContext,a as createSelectScope,d as useSelectContext};
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createContextScope } from "@tamagui/create-context";
3
+ import { SELECT_NAME } from "./constants";
4
+ const [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME);
5
+ const [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
6
+ const ForwardSelectContext = (props) => {
7
+ return /* @__PURE__ */ jsx(SelectProvider, { isInSheet: true, scope: props.__scopeSelect, ...props.context, children: props.children });
8
+ };
9
+ export {
10
+ ForwardSelectContext,
11
+ SelectProvider,
12
+ createSelectContext,
13
+ createSelectScope,
14
+ useSelectContext
15
+ };
2
16
  //# sourceMappingURL=context.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/context.tsx"],
4
4
  "sourcesContent": ["import { createContextScope } from '@tamagui/create-context'\n\nimport { SELECT_NAME } from './constants'\nimport { ScopedProps, SelectContextValue } from './types'\n\nexport const [createSelectContext, createSelectScope] =\n createContextScope(SELECT_NAME)\n\nexport const [SelectProvider, useSelectContext] =\n createSelectContext<SelectContextValue>(SELECT_NAME)\n\nexport const ForwardSelectContext = (\n props: ScopedProps<{ children?: any; context: SelectContextValue }>,\n) => {\n return (\n <SelectProvider isInSheet scope={props.__scopeSelect} {...props.context}>\n {props.children}\n </SelectProvider>\n )\n}\n"],
5
- "mappings": "AAeI,cAAAA,MAAA,oBAfJ,OAAS,sBAAAC,MAA0B,0BAEnC,OAAS,eAAAC,MAAmB,cAGrB,KAAM,CAACC,EAAqBC,CAAiB,EAClDH,EAAmBC,CAAW,EAEnB,CAACG,EAAgBC,CAAgB,EAC5CH,EAAwCD,CAAW,EAExCK,EACXC,GAGER,EAACK,EAAA,CAAe,UAAS,GAAC,MAAOG,EAAM,cAAgB,GAAGA,EAAM,QAC7D,SAAAA,EAAM,SACT",
6
- "names": ["jsx", "createContextScope", "SELECT_NAME", "createSelectContext", "createSelectScope", "SelectProvider", "useSelectContext", "ForwardSelectContext", "props"]
5
+ "mappings": "AAeI;AAfJ,SAAS,0BAA0B;AAEnC,SAAS,mBAAmB;AAGrB,MAAM,CAAC,qBAAqB,iBAAiB,IAClD,mBAAmB,WAAW;AAEzB,MAAM,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW;AAE9C,MAAM,uBAAuB,CAClC,UACG;AACH,SACE,oBAAC,kBAAe,WAAS,MAAC,OAAO,MAAM,eAAgB,GAAG,MAAM,SAC7D,gBAAM,UACT;AAEJ;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,16 @@
1
- import{jsx as n}from"react/jsx-runtime";import{createContextScope as o}from"@tamagui/create-context";import{SELECT_NAME as t}from"./constants";const[c,a]=o(t),[r,d]=c(t),i=e=>n(r,{isInSheet:!0,scope:e.__scopeSelect,...e.context,children:e.children});export{i as ForwardSelectContext,r as SelectProvider,c as createSelectContext,a as createSelectScope,d as useSelectContext};
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createContextScope } from "@tamagui/create-context";
3
+ import { SELECT_NAME } from "./constants";
4
+ const [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME);
5
+ const [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
6
+ const ForwardSelectContext = (props) => {
7
+ return /* @__PURE__ */ jsx(SelectProvider, { isInSheet: true, scope: props.__scopeSelect, ...props.context, children: props.children });
8
+ };
9
+ export {
10
+ ForwardSelectContext,
11
+ SelectProvider,
12
+ createSelectContext,
13
+ createSelectScope,
14
+ useSelectContext
15
+ };
2
16
  //# sourceMappingURL=context.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/context.tsx"],
4
4
  "sourcesContent": ["import { createContextScope } from '@tamagui/create-context'\n\nimport { SELECT_NAME } from './constants'\nimport { ScopedProps, SelectContextValue } from './types'\n\nexport const [createSelectContext, createSelectScope] =\n createContextScope(SELECT_NAME)\n\nexport const [SelectProvider, useSelectContext] =\n createSelectContext<SelectContextValue>(SELECT_NAME)\n\nexport const ForwardSelectContext = (\n props: ScopedProps<{ children?: any; context: SelectContextValue }>,\n) => {\n return (\n <SelectProvider isInSheet scope={props.__scopeSelect} {...props.context}>\n {props.children}\n </SelectProvider>\n )\n}\n"],
5
- "mappings": "AAeI,cAAAA,MAAA,oBAfJ,OAAS,sBAAAC,MAA0B,0BAEnC,OAAS,eAAAC,MAAmB,cAGrB,KAAM,CAACC,EAAqBC,CAAiB,EAClDH,EAAmBC,CAAW,EAEnB,CAACG,EAAgBC,CAAgB,EAC5CH,EAAwCD,CAAW,EAExCK,EACXC,GAGER,EAACK,EAAA,CAAe,UAAS,GAAC,MAAOG,EAAM,cAAgB,GAAGA,EAAM,QAC7D,SAAAA,EAAM,SACT",
6
- "names": ["jsx", "createContextScope", "SELECT_NAME", "createSelectContext", "createSelectScope", "SelectProvider", "useSelectContext", "ForwardSelectContext", "props"]
5
+ "mappings": "AAeI;AAfJ,SAAS,0BAA0B;AAEnC,SAAS,mBAAmB;AAGrB,MAAM,CAAC,qBAAqB,iBAAiB,IAClD,mBAAmB,WAAW;AAEzB,MAAM,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW;AAE9C,MAAM,uBAAuB,CAClC,UACG;AACH,SACE,oBAAC,kBAAe,WAAS,MAAC,OAAO,MAAM,eAAgB,GAAG,MAAM,SAC7D,gBAAM,UACT;AAEJ;",
6
+ "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,2 +1,3 @@
1
- export*from"./Select";export*from"./context";
1
+ export * from "./Select";
2
+ export * from "./context";
2
3
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.tsx"],
4
4
  "sourcesContent": ["export * from './Select'\nexport type {\n SelectContentProps,\n SelectProps,\n SelectScrollButtonProps,\n SelectViewportProps,\n} from './types'\nexport * from './context'\n"],
5
- "mappings": "AAAA,WAAc,WAOd,WAAc",
5
+ "mappings": "AAAA,cAAc;AAOd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,3 @@
1
- export*from"./Select";export*from"./context";
1
+ export * from "./Select";
2
+ export * from "./context";
2
3
  //# sourceMappingURL=index.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.tsx"],
4
4
  "sourcesContent": ["export * from './Select'\nexport type {\n SelectContentProps,\n SelectProps,\n SelectScrollButtonProps,\n SelectViewportProps,\n} from './types'\nexport * from './context'\n"],
5
- "mappings": "AAAA,WAAc,WAOd,WAAc",
5
+ "mappings": "AAAA,cAAc;AAOd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,18 @@
1
- import{useMedia as r}from"@tamagui/core";const o=e=>{const t=r();return e?e===!0?!0:e?t[e]:!1:!1},a=e=>{const t=o(e.sheetBreakpoint);return e.open===!1?!1:t};export{o as useSelectBreakpointActive,a as useShowSelectSheet};
1
+ import { useMedia } from "@tamagui/core";
2
+ const useSelectBreakpointActive = (sheetBreakpoint) => {
3
+ const media = useMedia();
4
+ if (!sheetBreakpoint)
5
+ return false;
6
+ if (sheetBreakpoint === true)
7
+ return true;
8
+ return sheetBreakpoint ? media[sheetBreakpoint] : false;
9
+ };
10
+ const useShowSelectSheet = (context) => {
11
+ const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
12
+ return context.open === false ? false : breakpointActive;
13
+ };
14
+ export {
15
+ useSelectBreakpointActive,
16
+ useShowSelectSheet
17
+ };
2
18
  //# sourceMappingURL=useSelectBreakpointActive.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSelectBreakpointActive.tsx"],
4
4
  "sourcesContent": ["import { useMedia } from '@tamagui/core'\n\nimport { SelectContextValue } from './types'\n\nexport const useSelectBreakpointActive = (\n sheetBreakpoint: SelectContextValue['sheetBreakpoint']\n) => {\n const media = useMedia()\n if (!sheetBreakpoint) return false\n if (sheetBreakpoint === true) return true\n return sheetBreakpoint ? media[sheetBreakpoint] : false\n}\n\nexport const useShowSelectSheet = (context: SelectContextValue) => {\n const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint)\n return context.open === false ? false : breakpointActive\n}\n"],
5
- "mappings": "AAAA,OAAS,YAAAA,MAAgB,gBAIlB,MAAMC,EACXC,GACG,CACH,MAAMC,EAAQH,EAAS,EACvB,OAAKE,EACDA,IAAoB,GAAa,GAC9BA,EAAkBC,EAAMD,CAAe,EAAI,GAFrB,EAG/B,EAEaE,EAAsBC,GAAgC,CACjE,MAAMC,EAAmBL,EAA0BI,EAAQ,eAAe,EAC1E,OAAOA,EAAQ,OAAS,GAAQ,GAAQC,CAC1C",
6
- "names": ["useMedia", "useSelectBreakpointActive", "sheetBreakpoint", "media", "useShowSelectSheet", "context", "breakpointActive"]
5
+ "mappings": "AAAA,SAAS,gBAAgB;AAIlB,MAAM,4BAA4B,CACvC,oBACG;AACH,QAAM,QAAQ,SAAS;AACvB,MAAI,CAAC;AAAiB,WAAO;AAC7B,MAAI,oBAAoB;AAAM,WAAO;AACrC,SAAO,kBAAkB,MAAM,eAAe,IAAI;AACpD;AAEO,MAAM,qBAAqB,CAAC,YAAgC;AACjE,QAAM,mBAAmB,0BAA0B,QAAQ,eAAe;AAC1E,SAAO,QAAQ,SAAS,QAAQ,QAAQ;AAC1C;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,18 @@
1
- import{useMedia as r}from"@tamagui/core";const o=e=>{const t=r();return e?e===!0?!0:e?t[e]:!1:!1},a=e=>{const t=o(e.sheetBreakpoint);return e.open===!1?!1:t};export{o as useSelectBreakpointActive,a as useShowSelectSheet};
1
+ import { useMedia } from "@tamagui/core";
2
+ const useSelectBreakpointActive = (sheetBreakpoint) => {
3
+ const media = useMedia();
4
+ if (!sheetBreakpoint)
5
+ return false;
6
+ if (sheetBreakpoint === true)
7
+ return true;
8
+ return sheetBreakpoint ? media[sheetBreakpoint] : false;
9
+ };
10
+ const useShowSelectSheet = (context) => {
11
+ const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
12
+ return context.open === false ? false : breakpointActive;
13
+ };
14
+ export {
15
+ useSelectBreakpointActive,
16
+ useShowSelectSheet
17
+ };
2
18
  //# sourceMappingURL=useSelectBreakpointActive.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/useSelectBreakpointActive.tsx"],
4
4
  "sourcesContent": ["import { useMedia } from '@tamagui/core'\n\nimport { SelectContextValue } from './types'\n\nexport const useSelectBreakpointActive = (\n sheetBreakpoint: SelectContextValue['sheetBreakpoint']\n) => {\n const media = useMedia()\n if (!sheetBreakpoint) return false\n if (sheetBreakpoint === true) return true\n return sheetBreakpoint ? media[sheetBreakpoint] : false\n}\n\nexport const useShowSelectSheet = (context: SelectContextValue) => {\n const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint)\n return context.open === false ? false : breakpointActive\n}\n"],
5
- "mappings": "AAAA,OAAS,YAAAA,MAAgB,gBAIlB,MAAMC,EACXC,GACG,CACH,MAAMC,EAAQH,EAAS,EACvB,OAAKE,EACDA,IAAoB,GAAa,GAC9BA,EAAkBC,EAAMD,CAAe,EAAI,GAFrB,EAG/B,EAEaE,EAAsBC,GAAgC,CACjE,MAAMC,EAAmBL,EAA0BI,EAAQ,eAAe,EAC1E,OAAOA,EAAQ,OAAS,GAAQ,GAAQC,CAC1C",
6
- "names": ["useMedia", "useSelectBreakpointActive", "sheetBreakpoint", "media", "useShowSelectSheet", "context", "breakpointActive"]
5
+ "mappings": "AAAA,SAAS,gBAAgB;AAIlB,MAAM,4BAA4B,CACvC,oBACG;AACH,QAAM,QAAQ,SAAS;AACvB,MAAI,CAAC;AAAiB,WAAO;AAC7B,MAAI,oBAAoB;AAAM,WAAO;AACrC,SAAO,kBAAkB,MAAM,eAAe,IAAI;AACpD;AAEO,MAAM,qBAAqB,CAAC,YAAgC;AACjE,QAAM,mBAAmB,0BAA0B,QAAQ,eAAe;AAC1E,SAAO,QAAQ,SAAS,QAAQ,QAAQ;AAC1C;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,25 @@
1
- import{usePrevious as f}from"@radix-ui/react-use-previous";import{useComposedRefs as a}from"@tamagui/compose-refs";import*as t from"react";const b=t.forwardRef((n,l)=>{const{value:e,...i}=n,o=t.useRef(null),m=a(l,o),s=f(e);return t.useEffect(()=>{const r=o.current,p=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(p,"value").set;if(s!==e&&c){const u=new Event("change",{bubbles:!0});c.call(r,e),r.dispatchEvent(u)}},[s,e]),null});
1
+ import { usePrevious } from "@radix-ui/react-use-previous";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import * as React from "react";
4
+ const BubbleSelect = React.forwardRef((props, forwardedRef) => {
5
+ const { value, ...selectProps } = props;
6
+ const ref = React.useRef(null);
7
+ const composedRefs = useComposedRefs(forwardedRef, ref);
8
+ const prevValue = usePrevious(value);
9
+ React.useEffect(() => {
10
+ const select = ref.current;
11
+ const selectProto = window.HTMLSelectElement.prototype;
12
+ const descriptor = Object.getOwnPropertyDescriptor(
13
+ selectProto,
14
+ "value"
15
+ );
16
+ const setValue = descriptor.set;
17
+ if (prevValue !== value && setValue) {
18
+ const event = new Event("change", { bubbles: true });
19
+ setValue.call(select, value);
20
+ select.dispatchEvent(event);
21
+ }
22
+ }, [prevValue, value]);
23
+ return null;
24
+ });
2
25
  //# sourceMappingURL=BubbleSelect.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/BubbleSelect.tsx"],
4
4
  "sourcesContent": ["import { usePrevious } from '@radix-ui/react-use-previous'\nimport { useComposedRefs } from '@tamagui/compose-refs'\nimport * as React from 'react'\n\n/* -----------------------------------------------------------------------------------------------*/\nconst BubbleSelect = React.forwardRef<\n HTMLSelectElement,\n React.ComponentPropsWithoutRef<'select'>\n>((props, forwardedRef) => {\n const { value, ...selectProps } = props\n const ref = React.useRef<HTMLSelectElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, ref)\n const prevValue = usePrevious(value)\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current!\n const selectProto = window.HTMLSelectElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n 'value',\n ) as PropertyDescriptor\n const setValue = descriptor.set\n if (prevValue !== value && setValue) {\n const event = new Event('change', { bubbles: true })\n setValue.call(select, value)\n select.dispatchEvent(event)\n }\n }, [prevValue, value])\n\n /**\n * We purposefully use a `select` here to support form autofill as much\n * as possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n *\n * We use `VisuallyHidden` rather than `display: \"none\"` because Safari autofill\n * won't work otherwise.\n */\n // TODO\n return null\n // return (\n // <VisuallyHidden asChild>\n // <select {...selectProps} ref={composedRefs} defaultValue={value} />\n // </VisuallyHidden>\n // )\n})\n"],
5
- "mappings": "AAAA,OAAS,eAAAA,MAAmB,+BAC5B,OAAS,mBAAAC,MAAuB,wBAChC,UAAYC,MAAW,QAGvB,MAAMC,EAAeD,EAAM,WAGzB,CAACE,EAAOC,IAAiB,CACzB,KAAM,CAAE,MAAAC,EAAO,GAAGC,CAAY,EAAIH,EAC5BI,EAAMN,EAAM,OAA0B,IAAI,EAC1CO,EAAeR,EAAgBI,EAAcG,CAAG,EAChDE,EAAYV,EAAYM,CAAK,EAGnC,OAAAJ,EAAM,UAAU,IAAM,CACpB,MAAMS,EAASH,EAAI,QACbI,EAAc,OAAO,kBAAkB,UAKvCC,EAJa,OAAO,yBACxBD,EACA,OACF,EAC4B,IAC5B,GAAIF,IAAcJ,GAASO,EAAU,CACnC,MAAMC,EAAQ,IAAI,MAAM,SAAU,CAAE,QAAS,EAAK,CAAC,EACnDD,EAAS,KAAKF,EAAQL,CAAK,EAC3BK,EAAO,cAAcG,CAAK,CAC5B,CACF,EAAG,CAACJ,EAAWJ,CAAK,CAAC,EAed,IAMT,CAAC",
6
- "names": ["usePrevious", "useComposedRefs", "React", "BubbleSelect", "props", "forwardedRef", "value", "selectProps", "ref", "composedRefs", "prevValue", "select", "selectProto", "setValue", "event"]
5
+ "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,YAAY,WAAW;AAGvB,MAAM,eAAe,MAAM,WAGzB,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,OAAO,GAAG,YAAY,IAAI;AAClC,QAAM,MAAM,MAAM,OAA0B,IAAI;AAChD,QAAM,eAAe,gBAAgB,cAAc,GAAG;AACtD,QAAM,YAAY,YAAY,KAAK;AAGnC,QAAM,UAAU,MAAM;AACpB,UAAM,SAAS,IAAI;AACnB,UAAM,cAAc,OAAO,kBAAkB;AAC7C,UAAM,aAAa,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAW,WAAW;AAC5B,QAAI,cAAc,SAAS,UAAU;AACnC,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,KAAK,CAAC;AACnD,eAAS,KAAK,QAAQ,KAAK;AAC3B,aAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,WAAW,KAAK,CAAC;AAerB,SAAO;AAMT,CAAC;",
6
+ "names": []
7
7
  }
@@ -1,2 +1,25 @@
1
- import{usePrevious as f}from"@radix-ui/react-use-previous";import{useComposedRefs as a}from"@tamagui/compose-refs";import*as t from"react";const b=t.forwardRef((n,l)=>{const{value:e,...i}=n,o=t.useRef(null),m=a(l,o),s=f(e);return t.useEffect(()=>{const r=o.current,p=window.HTMLSelectElement.prototype,c=Object.getOwnPropertyDescriptor(p,"value").set;if(s!==e&&c){const u=new Event("change",{bubbles:!0});c.call(r,e),r.dispatchEvent(u)}},[s,e]),null});
1
+ import { usePrevious } from "@radix-ui/react-use-previous";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import * as React from "react";
4
+ const BubbleSelect = React.forwardRef((props, forwardedRef) => {
5
+ const { value, ...selectProps } = props;
6
+ const ref = React.useRef(null);
7
+ const composedRefs = useComposedRefs(forwardedRef, ref);
8
+ const prevValue = usePrevious(value);
9
+ React.useEffect(() => {
10
+ const select = ref.current;
11
+ const selectProto = window.HTMLSelectElement.prototype;
12
+ const descriptor = Object.getOwnPropertyDescriptor(
13
+ selectProto,
14
+ "value"
15
+ );
16
+ const setValue = descriptor.set;
17
+ if (prevValue !== value && setValue) {
18
+ const event = new Event("change", { bubbles: true });
19
+ setValue.call(select, value);
20
+ select.dispatchEvent(event);
21
+ }
22
+ }, [prevValue, value]);
23
+ return null;
24
+ });
2
25
  //# sourceMappingURL=BubbleSelect.mjs.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/BubbleSelect.tsx"],
4
4
  "sourcesContent": ["import { usePrevious } from '@radix-ui/react-use-previous'\nimport { useComposedRefs } from '@tamagui/compose-refs'\nimport * as React from 'react'\n\n/* -----------------------------------------------------------------------------------------------*/\nconst BubbleSelect = React.forwardRef<\n HTMLSelectElement,\n React.ComponentPropsWithoutRef<'select'>\n>((props, forwardedRef) => {\n const { value, ...selectProps } = props\n const ref = React.useRef<HTMLSelectElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, ref)\n const prevValue = usePrevious(value)\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const select = ref.current!\n const selectProto = window.HTMLSelectElement.prototype\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n 'value',\n ) as PropertyDescriptor\n const setValue = descriptor.set\n if (prevValue !== value && setValue) {\n const event = new Event('change', { bubbles: true })\n setValue.call(select, value)\n select.dispatchEvent(event)\n }\n }, [prevValue, value])\n\n /**\n * We purposefully use a `select` here to support form autofill as much\n * as possible.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programatic\n * dispatch a duplicate and it will get swallowed.\n *\n * We use `VisuallyHidden` rather than `display: \"none\"` because Safari autofill\n * won't work otherwise.\n */\n // TODO\n return null\n // return (\n // <VisuallyHidden asChild>\n // <select {...selectProps} ref={composedRefs} defaultValue={value} />\n // </VisuallyHidden>\n // )\n})\n"],
5
- "mappings": "AAAA,OAAS,eAAAA,MAAmB,+BAC5B,OAAS,mBAAAC,MAAuB,wBAChC,UAAYC,MAAW,QAGvB,MAAMC,EAAeD,EAAM,WAGzB,CAACE,EAAOC,IAAiB,CACzB,KAAM,CAAE,MAAAC,EAAO,GAAGC,CAAY,EAAIH,EAC5BI,EAAMN,EAAM,OAA0B,IAAI,EAC1CO,EAAeR,EAAgBI,EAAcG,CAAG,EAChDE,EAAYV,EAAYM,CAAK,EAGnC,OAAAJ,EAAM,UAAU,IAAM,CACpB,MAAMS,EAASH,EAAI,QACbI,EAAc,OAAO,kBAAkB,UAKvCC,EAJa,OAAO,yBACxBD,EACA,OACF,EAC4B,IAC5B,GAAIF,IAAcJ,GAASO,EAAU,CACnC,MAAMC,EAAQ,IAAI,MAAM,SAAU,CAAE,QAAS,EAAK,CAAC,EACnDD,EAAS,KAAKF,EAAQL,CAAK,EAC3BK,EAAO,cAAcG,CAAK,CAC5B,CACF,EAAG,CAACJ,EAAWJ,CAAK,CAAC,EAed,IAMT,CAAC",
6
- "names": ["usePrevious", "useComposedRefs", "React", "BubbleSelect", "props", "forwardedRef", "value", "selectProps", "ref", "composedRefs", "prevValue", "select", "selectProto", "setValue", "event"]
5
+ "mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,YAAY,WAAW;AAGvB,MAAM,eAAe,MAAM,WAGzB,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,OAAO,GAAG,YAAY,IAAI;AAClC,QAAM,MAAM,MAAM,OAA0B,IAAI;AAChD,QAAM,eAAe,gBAAgB,cAAc,GAAG;AACtD,QAAM,YAAY,YAAY,KAAK;AAGnC,QAAM,UAAU,MAAM;AACpB,UAAM,SAAS,IAAI;AACnB,UAAM,cAAc,OAAO,kBAAkB;AAC7C,UAAM,aAAa,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,IACF;AACA,UAAM,WAAW,WAAW;AAC5B,QAAI,cAAc,SAAS,UAAU;AACnC,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,KAAK,CAAC;AACnD,eAAS,KAAK,QAAQ,KAAK;AAC3B,aAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,WAAW,KAAK,CAAC;AAerB,SAAO;AAMT,CAAC;",
6
+ "names": []
7
7
  }