@multiplatform.one/forms 7.57.0 → 7.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/cjs/AdaptivePopup/index.cjs +5 -1
  2. package/dist/cjs/AdaptivePopup/index.native.js +5 -1
  3. package/dist/cjs/AdaptivePopup/index.native.js.map +1 -1
  4. package/dist/cjs/Button/index.cjs +2 -1
  5. package/dist/cjs/Button/index.native.js +2 -1
  6. package/dist/cjs/Button/index.native.js.map +1 -1
  7. package/dist/cjs/FloatingPanel/compactFace.cjs +38 -0
  8. package/dist/cjs/FloatingPanel/compactFace.native.js +42 -0
  9. package/dist/cjs/FloatingPanel/compactFace.native.js.map +1 -0
  10. package/dist/cjs/FloatingPanel/index.cjs +38 -9
  11. package/dist/cjs/FloatingPanel/index.native.js +160 -6
  12. package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
  13. package/dist/cjs/FloatingPanel/pointAnchor.cjs +22 -0
  14. package/dist/cjs/FloatingPanel/pointAnchor.native.js +23 -0
  15. package/dist/cjs/FloatingPanel/pointAnchor.native.js.map +1 -1
  16. package/dist/cjs/InputParts/index.cjs +13 -7
  17. package/dist/cjs/InputParts/index.native.js +13 -7
  18. package/dist/cjs/InputParts/index.native.js.map +1 -1
  19. package/dist/cjs/fields/Checkbox/Checkbox.cjs +24 -14
  20. package/dist/cjs/fields/Checkbox/Checkbox.native.js +38 -22
  21. package/dist/cjs/fields/Checkbox/Checkbox.native.js.map +1 -1
  22. package/dist/cjs/fields/RadioGroup/index.cjs +6 -1
  23. package/dist/cjs/fields/RadioGroup/index.native.js +6 -1
  24. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  25. package/dist/cjs/fields/Select/InlineChoices.cjs +148 -0
  26. package/dist/cjs/fields/Select/InlineChoices.native.js +163 -0
  27. package/dist/cjs/fields/Select/InlineChoices.native.js.map +1 -0
  28. package/dist/cjs/fields/Select/index.cjs +79 -17
  29. package/dist/cjs/fields/Select/index.native.js +92 -17
  30. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  31. package/dist/cjs/fields/Select/shouldInlineChoices.cjs +37 -0
  32. package/dist/cjs/fields/Select/shouldInlineChoices.native.js +43 -0
  33. package/dist/cjs/fields/Select/shouldInlineChoices.native.js.map +1 -0
  34. package/dist/cjs/fields/Switch/index.cjs +22 -10
  35. package/dist/cjs/fields/Switch/index.native.js +28 -14
  36. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  37. package/dist/cjs/shared/choiceRowPress.cjs +46 -0
  38. package/dist/cjs/shared/choiceRowPress.native.js +50 -0
  39. package/dist/cjs/shared/choiceRowPress.native.js.map +1 -0
  40. package/dist/cjs/shared/overlayStack.cjs +4 -0
  41. package/dist/cjs/shared/overlayStack.native.js +4 -0
  42. package/dist/cjs/shared/overlayStack.native.js.map +1 -1
  43. package/dist/esm/AdaptivePopup/index.mjs +6 -2
  44. package/dist/esm/AdaptivePopup/index.mjs.map +1 -1
  45. package/dist/esm/AdaptivePopup/index.native.js +6 -2
  46. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  47. package/dist/esm/Button/index.mjs +3 -2
  48. package/dist/esm/Button/index.mjs.map +1 -1
  49. package/dist/esm/Button/index.native.js +3 -2
  50. package/dist/esm/Button/index.native.js.map +1 -1
  51. package/dist/esm/FloatingPanel/compactFace.mjs +11 -0
  52. package/dist/esm/FloatingPanel/compactFace.mjs.map +1 -0
  53. package/dist/esm/FloatingPanel/compactFace.native.js +12 -0
  54. package/dist/esm/FloatingPanel/compactFace.native.js.map +1 -0
  55. package/dist/esm/FloatingPanel/index.mjs +40 -11
  56. package/dist/esm/FloatingPanel/index.mjs.map +1 -1
  57. package/dist/esm/FloatingPanel/index.native.js +162 -8
  58. package/dist/esm/FloatingPanel/index.native.js.map +1 -1
  59. package/dist/esm/FloatingPanel/pointAnchor.mjs +22 -1
  60. package/dist/esm/FloatingPanel/pointAnchor.mjs.map +1 -1
  61. package/dist/esm/FloatingPanel/pointAnchor.native.js +23 -1
  62. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
  63. package/dist/esm/InputParts/index.mjs +13 -7
  64. package/dist/esm/InputParts/index.mjs.map +1 -1
  65. package/dist/esm/InputParts/index.native.js +13 -7
  66. package/dist/esm/InputParts/index.native.js.map +1 -1
  67. package/dist/esm/fields/Checkbox/Checkbox.mjs +24 -14
  68. package/dist/esm/fields/Checkbox/Checkbox.mjs.map +1 -1
  69. package/dist/esm/fields/Checkbox/Checkbox.native.js +38 -22
  70. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  71. package/dist/esm/fields/RadioGroup/index.mjs +6 -1
  72. package/dist/esm/fields/RadioGroup/index.mjs.map +1 -1
  73. package/dist/esm/fields/RadioGroup/index.native.js +6 -1
  74. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  75. package/dist/esm/fields/Select/InlineChoices.mjs +123 -0
  76. package/dist/esm/fields/Select/InlineChoices.mjs.map +1 -0
  77. package/dist/esm/fields/Select/InlineChoices.native.js +135 -0
  78. package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -0
  79. package/dist/esm/fields/Select/index.mjs +82 -20
  80. package/dist/esm/fields/Select/index.mjs.map +1 -1
  81. package/dist/esm/fields/Select/index.native.js +95 -20
  82. package/dist/esm/fields/Select/index.native.js.map +1 -1
  83. package/dist/esm/fields/Select/shouldInlineChoices.mjs +11 -0
  84. package/dist/esm/fields/Select/shouldInlineChoices.mjs.map +1 -0
  85. package/dist/esm/fields/Select/shouldInlineChoices.native.js +14 -0
  86. package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -0
  87. package/dist/esm/fields/Switch/index.mjs +22 -10
  88. package/dist/esm/fields/Switch/index.mjs.map +1 -1
  89. package/dist/esm/fields/Switch/index.native.js +28 -14
  90. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  91. package/dist/esm/shared/choiceRowPress.mjs +20 -0
  92. package/dist/esm/shared/choiceRowPress.mjs.map +1 -0
  93. package/dist/esm/shared/choiceRowPress.native.js +21 -0
  94. package/dist/esm/shared/choiceRowPress.native.js.map +1 -0
  95. package/dist/esm/shared/overlayStack.mjs +4 -1
  96. package/dist/esm/shared/overlayStack.mjs.map +1 -1
  97. package/dist/esm/shared/overlayStack.native.js +4 -1
  98. package/dist/esm/shared/overlayStack.native.js.map +1 -1
  99. package/dist/jsx/AdaptivePopup/index.mjs +6 -2
  100. package/dist/jsx/AdaptivePopup/index.mjs.map +1 -1
  101. package/dist/jsx/AdaptivePopup/index.native.js +5 -1
  102. package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
  103. package/dist/jsx/Button/index.mjs +3 -2
  104. package/dist/jsx/Button/index.mjs.map +1 -1
  105. package/dist/jsx/Button/index.native.js +2 -1
  106. package/dist/jsx/Button/index.native.js.map +1 -1
  107. package/dist/jsx/FloatingPanel/compactFace.mjs +11 -0
  108. package/dist/jsx/FloatingPanel/compactFace.mjs.map +1 -0
  109. package/dist/jsx/FloatingPanel/compactFace.native.js +42 -0
  110. package/dist/jsx/FloatingPanel/compactFace.native.js.map +1 -0
  111. package/dist/jsx/FloatingPanel/index.mjs +40 -11
  112. package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
  113. package/dist/jsx/FloatingPanel/index.native.js +160 -6
  114. package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
  115. package/dist/jsx/FloatingPanel/pointAnchor.mjs +22 -1
  116. package/dist/jsx/FloatingPanel/pointAnchor.mjs.map +1 -1
  117. package/dist/jsx/FloatingPanel/pointAnchor.native.js +23 -0
  118. package/dist/jsx/FloatingPanel/pointAnchor.native.js.map +1 -1
  119. package/dist/jsx/InputParts/index.mjs +13 -7
  120. package/dist/jsx/InputParts/index.mjs.map +1 -1
  121. package/dist/jsx/InputParts/index.native.js +13 -7
  122. package/dist/jsx/InputParts/index.native.js.map +1 -1
  123. package/dist/jsx/fields/Checkbox/Checkbox.mjs +24 -14
  124. package/dist/jsx/fields/Checkbox/Checkbox.mjs.map +1 -1
  125. package/dist/jsx/fields/Checkbox/Checkbox.native.js +38 -22
  126. package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
  127. package/dist/jsx/fields/RadioGroup/index.mjs +6 -1
  128. package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -1
  129. package/dist/jsx/fields/RadioGroup/index.native.js +6 -1
  130. package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
  131. package/dist/jsx/fields/Select/InlineChoices.mjs +123 -0
  132. package/dist/jsx/fields/Select/InlineChoices.mjs.map +1 -0
  133. package/dist/jsx/fields/Select/InlineChoices.native.js +163 -0
  134. package/dist/jsx/fields/Select/InlineChoices.native.js.map +1 -0
  135. package/dist/jsx/fields/Select/index.mjs +82 -20
  136. package/dist/jsx/fields/Select/index.mjs.map +1 -1
  137. package/dist/jsx/fields/Select/index.native.js +92 -17
  138. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  139. package/dist/jsx/fields/Select/shouldInlineChoices.mjs +11 -0
  140. package/dist/jsx/fields/Select/shouldInlineChoices.mjs.map +1 -0
  141. package/dist/jsx/fields/Select/shouldInlineChoices.native.js +43 -0
  142. package/dist/jsx/fields/Select/shouldInlineChoices.native.js.map +1 -0
  143. package/dist/jsx/fields/Switch/index.mjs +22 -10
  144. package/dist/jsx/fields/Switch/index.mjs.map +1 -1
  145. package/dist/jsx/fields/Switch/index.native.js +28 -14
  146. package/dist/jsx/fields/Switch/index.native.js.map +1 -1
  147. package/dist/jsx/shared/choiceRowPress.mjs +20 -0
  148. package/dist/jsx/shared/choiceRowPress.mjs.map +1 -0
  149. package/dist/jsx/shared/choiceRowPress.native.js +50 -0
  150. package/dist/jsx/shared/choiceRowPress.native.js.map +1 -0
  151. package/dist/jsx/shared/overlayStack.mjs +4 -1
  152. package/dist/jsx/shared/overlayStack.mjs.map +1 -1
  153. package/dist/jsx/shared/overlayStack.native.js +4 -0
  154. package/dist/jsx/shared/overlayStack.native.js.map +1 -1
  155. package/package.json +8 -8
  156. package/src/AdaptivePopup/index.tsx +6 -1
  157. package/src/Button/Button.controlTiers.spec.tsx +29 -0
  158. package/src/Button/index.tsx +3 -1
  159. package/src/FloatingPanel/FloatingPanel.compactFace.spec.tsx +187 -0
  160. package/src/FloatingPanel/FloatingPanel.menuFace.native.spec.tsx +195 -0
  161. package/src/FloatingPanel/compactFace.spec.ts +40 -0
  162. package/src/FloatingPanel/compactFace.ts +32 -0
  163. package/src/FloatingPanel/index.native.tsx +178 -4
  164. package/src/FloatingPanel/index.tsx +55 -11
  165. package/src/FloatingPanel/pointAnchor.spec.ts +80 -0
  166. package/src/FloatingPanel/pointAnchor.ts +52 -0
  167. package/src/InputParts/index.tsx +18 -7
  168. package/src/fields/Checkbox/Checkbox.native.spec.tsx +44 -0
  169. package/src/fields/Checkbox/Checkbox.tsx +31 -18
  170. package/src/fields/DatePicker/columnFit.spec.tsx +85 -0
  171. package/src/fields/RadioGroup/RadioGroup.native.spec.tsx +65 -0
  172. package/src/fields/RadioGroup/RadioGroup.stories.tsx +49 -0
  173. package/src/fields/RadioGroup/index.tsx +14 -2
  174. package/src/fields/Select/InlineChoices.tsx +156 -0
  175. package/src/fields/Select/index.tsx +100 -45
  176. package/src/fields/Select/shouldInlineChoices.spec.ts +25 -0
  177. package/src/fields/Select/shouldInlineChoices.ts +22 -0
  178. package/src/fields/Switch/Switch.rowPress.native.spec.tsx +69 -0
  179. package/src/fields/Switch/index.tsx +29 -11
  180. package/src/fields/pickerRows.spec.tsx +2 -0
  181. package/src/overlayGround.spec.ts +181 -0
  182. package/src/shared/choiceRowPress.ts +40 -0
  183. package/src/shared/overlayStack.tsx +5 -0
  184. package/types/AdaptivePopup/index.d.ts.map +1 -1
  185. package/types/Button/index.d.ts.map +1 -1
  186. package/types/FloatingPanel/compactFace.d.ts +21 -0
  187. package/types/FloatingPanel/compactFace.d.ts.map +1 -0
  188. package/types/FloatingPanel/index.d.ts +10 -0
  189. package/types/FloatingPanel/index.d.ts.map +1 -1
  190. package/types/FloatingPanel/index.native.d.ts +8 -1
  191. package/types/FloatingPanel/index.native.d.ts.map +1 -1
  192. package/types/FloatingPanel/pointAnchor.d.ts +29 -0
  193. package/types/FloatingPanel/pointAnchor.d.ts.map +1 -1
  194. package/types/InputParts/index.d.ts.map +1 -1
  195. package/types/fields/Checkbox/Checkbox.d.ts.map +1 -1
  196. package/types/fields/Checkbox/index.d.ts +3 -3
  197. package/types/fields/RadioGroup/index.d.ts.map +1 -1
  198. package/types/fields/Select/InlineChoices.d.ts +29 -0
  199. package/types/fields/Select/InlineChoices.d.ts.map +1 -0
  200. package/types/fields/Select/index.d.ts +6 -0
  201. package/types/fields/Select/index.d.ts.map +1 -1
  202. package/types/fields/Select/shouldInlineChoices.d.ts +16 -0
  203. package/types/fields/Select/shouldInlineChoices.d.ts.map +1 -0
  204. package/types/fields/Switch/index.d.ts.map +1 -1
  205. package/types/shared/choiceRowPress.d.ts +40 -0
  206. package/types/shared/choiceRowPress.d.ts.map +1 -0
  207. package/types/shared/overlayStack.d.ts +2 -0
  208. package/types/shared/overlayStack.d.ts.map +1 -1
@@ -49,6 +49,7 @@ import {
49
49
  useFormField,
50
50
  useResolvedValidators,
51
51
  } from "../../shared/utils";
52
+ import { choiceLabelPressProps, choiceRowPressProps } from "../../shared/choiceRowPress";
52
53
  import { pressSlopProps } from "../../shared/pressSlopProps";
53
54
  import { useIsInTableCell } from "../../shared/tableCellContext";
54
55
  import { switchFootprint, type SwitchFootprint } from "./footprint";
@@ -830,6 +831,15 @@ export function Switch({
830
831
  : undefined;
831
832
  const grownTarget = targetHeight !== undefined;
832
833
  const rowMinHeight = !inTableCell && grownTarget ? targetHeight : undefined;
834
+ // FZ-7849: the row and label flip the switch on native, through the same
835
+ // path as a press on the track.
836
+ const rowToggle = (current: boolean, handleChange?: (val: boolean) => void) =>
837
+ disabled || readOnly
838
+ ? undefined
839
+ : () => {
840
+ handleChange?.(!current);
841
+ handleValueChange(!current);
842
+ };
833
843
 
834
844
  const renderSwitch = (
835
845
  switchChecked: boolean,
@@ -1037,6 +1047,9 @@ export function Switch({
1037
1047
 
1038
1048
  if (!resolvedForm || !name) {
1039
1049
  const resolvedChecked = checked !== undefined ? checked : internalChecked;
1050
+ const handleChange =
1051
+ checked === undefined ? (val: boolean) => setInternalChecked(val) : undefined;
1052
+ const toggle = rowToggle(resolvedChecked, handleChange);
1040
1053
  return (
1041
1054
  <FieldLayout
1042
1055
  id={id}
@@ -1054,17 +1067,18 @@ export function Switch({
1054
1067
  height={sizeToken}
1055
1068
  {...(rowMinHeight !== undefined && { minHeight: rowMinHeight })}
1056
1069
  {...labelLeadingRow}
1070
+ {...(label ? choiceRowPressProps(toggle) : undefined)}
1057
1071
  >
1058
1072
  {renderSwitch(
1059
1073
  resolvedChecked,
1060
- checked === undefined ? (val) => setInternalChecked(val) : undefined,
1074
+ handleChange,
1061
1075
  onBlur,
1062
1076
  !!error,
1063
1077
  typeof error === "string" && error ? error : undefined,
1064
1078
  )}
1065
1079
  {label && (
1066
1080
  <Label
1067
- htmlFor={id}
1081
+ {...choiceLabelPressProps(id, toggle)}
1068
1082
  size={(size || "$true") as FontSizeTokens}
1069
1083
  {...knobProps.textWeight}
1070
1084
  color={error ? formCommonColors.error : knobProps.textAccentColor}
@@ -1098,6 +1112,15 @@ export function Switch({
1098
1112
  {(field) => {
1099
1113
  const resolvedError = getFieldError(field, error);
1100
1114
  const formLabelColor = resolvedError ? formCommonColors.error : knobProps.textAccentColor;
1115
+ const formChecked = checked !== undefined ? checked : Boolean(field.state.value);
1116
+ const handleChange = (val: boolean) => {
1117
+ field.handleChange(val as any);
1118
+ if (saveMode === "declarative") {
1119
+ commitImmediateField(resolvedForm, name, val);
1120
+ onAutoCommit?.(name, val);
1121
+ }
1122
+ };
1123
+ const toggle = rowToggle(formChecked, handleChange);
1101
1124
  return (
1102
1125
  <FieldLayout
1103
1126
  id={id}
@@ -1114,23 +1137,18 @@ export function Switch({
1114
1137
  height={sizeToken}
1115
1138
  {...(rowMinHeight !== undefined && { minHeight: rowMinHeight })}
1116
1139
  {...labelLeadingRow}
1140
+ {...(label ? choiceRowPressProps(toggle) : undefined)}
1117
1141
  >
1118
1142
  {renderSwitch(
1119
- checked !== undefined ? checked : Boolean(field.state.value),
1120
- (val) => {
1121
- field.handleChange(val as any);
1122
- if (saveMode === "declarative") {
1123
- commitImmediateField(resolvedForm, name, val);
1124
- onAutoCommit?.(name, val);
1125
- }
1126
- },
1143
+ formChecked,
1144
+ handleChange,
1127
1145
  mergeFieldHandler(field, "handleBlur", onBlur),
1128
1146
  !!resolvedError,
1129
1147
  typeof resolvedError === "string" && resolvedError ? resolvedError : undefined,
1130
1148
  )}
1131
1149
  {label && (
1132
1150
  <Label
1133
- htmlFor={id}
1151
+ {...choiceLabelPressProps(id, toggle)}
1134
1152
  size={(size || "$true") as FontSizeTokens}
1135
1153
  {...knobProps.textWeight}
1136
1154
  color={formLabelColor}
@@ -48,9 +48,11 @@ describe("picker sheet rows consume resolved control height", () => {
48
48
  <Picker
49
49
  value="one"
50
50
  onValueChange={onValueChange}
51
+ // Eight options: a shorter Select opens as a menu, not its sheet (FZ-7830).
51
52
  options={[
52
53
  { value: "one", label: "First choice" },
53
54
  { value: "two", label: "Second choice" },
55
+ ...[3, 4, 5, 6, 7, 8].map((n) => ({ value: `c${n}`, label: `Choice ${n}` })),
54
56
  ]}
55
57
  />,
56
58
  );
@@ -0,0 +1,181 @@
1
+ /**
2
+ * FZ-7944, LC-153 on an elevated ground. Dark `elevatedSurface` paints
3
+ * `$color4`, the tinted wash's own step, so a plain Button on a dark sheet,
4
+ * dialog, popover or floating panel had no plate (1.00:1). Over every preset
5
+ * the package exports and every colour scope a preset or Tint can name, the
6
+ * controls an overlay hosts must separate from the ground the overlay paints.
7
+ * Apple HIG: a control's fill sits above the elevated background it is on.
8
+ */
9
+
10
+ import * as themePackage from "@multiplatform.one/theme";
11
+ import {
12
+ controlTierPaint,
13
+ createDefaultThemeConfig,
14
+ holdInkFloor,
15
+ measureContrast,
16
+ pickReadableForeground,
17
+ resolveKnobs,
18
+ type PresetDefinition as Preset,
19
+ } from "@multiplatform.one/theme";
20
+ import { readFileSync } from "node:fs";
21
+ import { dirname, join } from "node:path";
22
+ import { fileURLToPath } from "node:url";
23
+ import { describe, expect, it } from "vitest";
24
+ import { formControlColors, formSelectedColors, formSwitchColors } from "./shared/colorRamps";
25
+
26
+ /** The card's floor: the console's "a plain Button on an overlay's ground" asks the same. */
27
+ const plateFloor = 1.1;
28
+
29
+ type RawThemes = Record<string, Record<string, { val: string } | string>>;
30
+ const themes = createDefaultThemeConfig().tamagui.themes as unknown as RawThemes;
31
+ const schemes = ["light", "dark"] as const;
32
+
33
+ function isPreset(value: unknown): value is Preset {
34
+ return (
35
+ typeof value === "object" &&
36
+ value !== null &&
37
+ "knobs" in value &&
38
+ "intents" in value &&
39
+ typeof (value as Preset).knobs === "object"
40
+ );
41
+ }
42
+
43
+ const presets = Object.entries(themePackage).filter(
44
+ (entry): entry is [string, Preset] => isPreset(entry[1]) && entry[0].endsWith("Preset"),
45
+ );
46
+
47
+ /** A token the way Tamagui resolves it in a component sub-theme: its own key, then the scope's. */
48
+ function resolve(scope: string, token: string, component?: string): string {
49
+ if (!token.startsWith("$")) return token;
50
+ const key = token.slice(1);
51
+ const own = component ? themes[`${scope}_${component}`]?.[key] : undefined;
52
+ const entry = own ?? themes[scope]?.[key];
53
+ const value = typeof entry === "object" ? entry.val : entry;
54
+ if (!value)
55
+ throw new Error(`${token} does not resolve in ${scope}${component ? `_${component}` : ""}`);
56
+ return value;
57
+ }
58
+
59
+ function ratio(foreground: string, background: string): number {
60
+ return measureContrast({ foreground, background }).ratio;
61
+ }
62
+
63
+ interface Case {
64
+ label: string;
65
+ scope: string;
66
+ scheme: (typeof schemes)[number];
67
+ knobs: Preset["knobs"];
68
+ }
69
+
70
+ const presetCases: Case[] = presets.flatMap(([name, preset]) =>
71
+ schemes.map((scheme) => ({
72
+ label: `${name} ${scheme}`,
73
+ scope: preset.theme ? `${scheme}_${preset.theme}` : scheme,
74
+ scheme,
75
+ knobs: preset.knobs,
76
+ })),
77
+ );
78
+
79
+ // Every hue scope with house component themes: a preset's `theme` or a Tint.
80
+ const hueCases: Case[] = Object.keys(themes)
81
+ .filter((name) => /^(light|dark)_[a-z]+$/.test(name) && themes[`${name}_Button`])
82
+ .map((scope) => ({
83
+ label: scope,
84
+ scope,
85
+ scheme: scope.startsWith("dark") ? "dark" : "light",
86
+ knobs: themePackage.defaultPreset.knobs,
87
+ }));
88
+
89
+ function groundOf({ scope, scheme, knobs }: Case): string {
90
+ const { elevatedSurface } = resolveKnobs(knobs, undefined, scheme).knobProps;
91
+ return resolve(scope, elevatedSurface.backgroundColor as string);
92
+ }
93
+
94
+ describe("FZ-7944: a control on an overlay has a plate distinct from the overlay's ground", () => {
95
+ it("covers the exported presets and the hue scopes", () => {
96
+ expect(presets.map(([name]) => name)).toEqual(
97
+ expect.arrayContaining(["defaultPreset", "boldPreset"]),
98
+ );
99
+ expect(hueCases.length).toBeGreaterThanOrEqual(16);
100
+ });
101
+
102
+ // The floor is the dark ask; light keeps its own wash, asserted below.
103
+ const darkCases = [...presetCases, ...hueCases].filter((c) => c.scheme === "dark");
104
+
105
+ describe.each(darkCases)("$label", (c) => {
106
+ const ground = groundOf(c);
107
+
108
+ it("a tinted Button's rest, hover and press each clear the plate floor on the ground", () => {
109
+ if (c.knobs.fillStyle === "outlined") return;
110
+ const paint = controlTierPaint("tinted", true, true);
111
+ for (const [state, token] of Object.entries(paint)) {
112
+ const plate = resolve(c.scope, token, "Button");
113
+ expect(
114
+ ratio(plate, ground),
115
+ `${state} ${token} ${plate} on ${ground}`,
116
+ ).toBeGreaterThanOrEqual(plateFloor);
117
+ }
118
+ });
119
+
120
+ it("a plain Button's hover and press wash clear the plate floor on the ground", () => {
121
+ const paint = controlTierPaint("plain", true, true);
122
+ for (const token of [paint.hover, paint.press]) {
123
+ const plate = resolve(c.scope, token, "Button");
124
+ expect(ratio(plate, ground), `${token} ${plate} on ${ground}`).toBeGreaterThanOrEqual(
125
+ plateFloor,
126
+ );
127
+ }
128
+ });
129
+
130
+ it("Slider and Progress tracks read on the ground", () => {
131
+ for (const component of ["Slider", "Progress"]) {
132
+ const track = resolve(c.scope, formControlColors.background, component);
133
+ expect(
134
+ ratio(track, ground),
135
+ `${component} track ${track} on ${ground}`,
136
+ ).toBeGreaterThanOrEqual(plateFloor);
137
+ }
138
+ });
139
+
140
+ it("the Switch off track and the Slider thumb read on the ground", () => {
141
+ const track = resolve(c.scope, formSwitchColors.track.off, "Switch");
142
+ expect(ratio(track, ground), `Switch off ${track} on ${ground}`).toBeGreaterThanOrEqual(
143
+ plateFloor,
144
+ );
145
+ // Slider.tsx: the thumb is the readable anchor on the accent fill, read at field scope.
146
+ const mark = resolve(c.scope, formSelectedColors.mark);
147
+ const thumb = holdInkFloor(
148
+ mark,
149
+ pickReadableForeground(mark, resolve(c.scope, "$color1"), resolve(c.scope, "$color12")),
150
+ );
151
+ expect(ratio(thumb, ground), `SliderThumb ${thumb} on ${ground}`).toBeGreaterThanOrEqual(
152
+ plateFloor,
153
+ );
154
+ });
155
+ });
156
+
157
+ it("dark keeps the MPO-69 elevation tint and light keeps the page ground", () => {
158
+ const knobs = themePackage.defaultPreset.knobs;
159
+ const ground = (scheme: "light" | "dark") =>
160
+ resolveKnobs(knobs, undefined, scheme).knobProps.elevatedSurface.backgroundColor;
161
+ expect(ground("dark")).toBe("$color4");
162
+ expect(ground("light")).toBe("$background");
163
+ expect(controlTierPaint("tinted", false, true)).toEqual(controlTierPaint("tinted", false));
164
+ });
165
+ });
166
+
167
+ describe("FZ-7944: every frame that paints the elevated ground marks its subtree elevated", () => {
168
+ const here = dirname(fileURLToPath(import.meta.url));
169
+ const frames = [
170
+ "../../theme/src/theme/overlaySurfaces.tsx",
171
+ "./FloatingPanel/index.tsx",
172
+ "./FloatingPanel/index.native.tsx",
173
+ "./AdaptivePopup/index.tsx",
174
+ ];
175
+ it.each(frames)("%s", (file) => {
176
+ const src = readFileSync(join(here, file), "utf8");
177
+ const resets = src.match(/<Surface\b[^>]*\bpainted=\{false\}[^>]*>/g) ?? [];
178
+ expect(resets.length, "the frame wraps its content in a Surface").toBeGreaterThan(0);
179
+ for (const tag of resets) expect(tag).toMatch(/\belevated\b/);
180
+ });
181
+ });
@@ -0,0 +1,40 @@
1
+ import { isWeb } from "tamagui";
2
+
3
+ /**
4
+ * FZ-7849: on native the whole row of a labelled choice control (RadioGroup
5
+ * option, Checkbox, Switch) is one press target, as `<label for>` makes it on
6
+ * web.
7
+ *
8
+ * tamagui's Label emulates `for` on native through `focusFocusable(htmlFor)`, a
9
+ * process-global registry keyed by element id. A second copy of
10
+ * `@tamagui/focusable` in a consumer's tree, or a duplicate id whose unmount
11
+ * deletes the live entry, leaves the label dead while the control still works,
12
+ * as the SHC console's Catalog filters did in a sheet on MPO 7.37.0. The gap between control
13
+ * and label and the row past the label text were never targets at all.
14
+ *
15
+ * So the component that owns the value wires the press: row and label both
16
+ * call `select`, and the label drops `htmlFor` so the registry cannot fire a
17
+ * second toggle that undoes the first. RN gives a tap to the innermost
18
+ * handler, so a tap on the control still fires only the control. Web keeps
19
+ * `htmlFor`: a row handler there would also get the click bubbling up from the
20
+ * control.
21
+ */
22
+ export function choiceRowPressProps(select: (() => void) | undefined) {
23
+ return !isWeb && select ? { onPress: select } : undefined;
24
+ }
25
+
26
+ /**
27
+ * A disabled or read-only row passes no `select`, so its label takes no press.
28
+ * The label consumes its press so a renderer that bubbles it (the web renderer
29
+ * the native specs run on) cannot hand the row a second toggle.
30
+ */
31
+ export function choiceLabelPressProps(htmlFor: string, select: (() => void) | undefined) {
32
+ if (isWeb) return { htmlFor };
33
+ if (!select) return {};
34
+ return {
35
+ onPress: (event?: { stopPropagation?: () => void }) => {
36
+ event?.stopPropagation?.();
37
+ select();
38
+ },
39
+ };
40
+ }
@@ -100,3 +100,8 @@ export function withOverlayStack<P extends ComponentType<any>>(
100
100
  Stacked.displayName = displayName;
101
101
  return Stacked as unknown as P;
102
102
  }
103
+
104
+ /** True inside a house overlay (a sheet, dialog, popover or floating panel). */
105
+ export function useInsideOverlay(): boolean {
106
+ return useContext(OverlayStackContext) !== undefined;
107
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AdaptivePopup/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAyB5D,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,uCAAuC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gCAAgC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mBAAmB;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;IAChD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoBD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,yBAAyB,CAK5B;AA6ED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,IAAW,EACX,IAAe,EACf,eAAsB,EACtB,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,2CAqRpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/AdaptivePopup/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA0B5D,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,uCAAuC;IACvC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,gFAAgF;IAChF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gCAAgC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mBAAmB;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC;IAChD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoBD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,yBAAyB,CAK5B;AA6ED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,IAAW,EACX,IAAe,EACf,eAAsB,EACtB,MAAM,EACN,QAAQ,GACT,EAAE,kBAAkB,2CAyRpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Button/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * What a FloatingPanel becomes where it would otherwise be a bottom sheet:
3
+ * on native, and on the web at or below OVERLAY_BREAKPOINT.
4
+ *
5
+ * - `"sheet"`: the bottom sheet, wherever it opens.
6
+ * - `"menu"`: a menu over its trigger (LC-112) wherever it opens.
7
+ * - `"auto"`: the sheet at page level, the menu inside another overlay. A
8
+ * sheet over a sheet is the one thing a phone must never show (FZ-7830).
9
+ */
10
+ export type CompactFace = "sheet" | "menu" | "auto";
11
+ export declare function resolveCompactFace(face: CompactFace | undefined, insideOverlay: boolean): "sheet" | "menu";
12
+ /** The longest list a picker opens as a menu over its trigger (FZ-7830). */
13
+ export declare const SHORT_LIST_MAX = 7;
14
+ /**
15
+ * A picker's face (FZ-7830, LC-112): a short list with no search opens as a
16
+ * menu over its trigger at every level, the iOS 14+ pull-down picker. A long or
17
+ * searchable list keeps the sheet at page level and opens as a scrolling menu
18
+ * inside another overlay.
19
+ */
20
+ export declare function pickerCompactFace(optionCount: number, searchable?: boolean): CompactFace;
21
+ //# sourceMappingURL=compactFace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compactFace.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/compactFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,aAAa,EAAE,OAAO,GACrB,OAAO,GAAG,MAAM,CAIlB;AAED,4EAA4E;AAC5E,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,WAAW,CAEtF"}
@@ -1,5 +1,6 @@
1
1
  import type { ReactNode, RefObject } from "react";
2
2
  import type { PanelWidthMode } from "./useFloatingPanel";
3
+ import { type CompactFace } from "./compactFace";
3
4
  export { floatingPanelActionProps, isNestedPanelAction } from "./nestedAction";
4
5
  export { useFloatingPanel, panelAnimationDuration, panelGrowDuration, panelTransition, panelViewportPadding, panelAnchorOffset, resolvePanelWidthMode, } from "./useFloatingPanel";
5
6
  export type { PanelWidthMode, UseFloatingPanelOptions, UseFloatingPanelReturn, } from "./useFloatingPanel";
@@ -45,6 +46,15 @@ export interface FloatingPanelProps {
45
46
  * OVERLAY_BREAKPOINT), floating panel from `$sm` up.
46
47
  */
47
48
  sheet?: boolean;
49
+ /**
50
+ * What the panel becomes where it would be a bottom sheet (native, and web
51
+ * at or below 640). `"sheet"` (default) keeps the sheet; `"menu"` opens a
52
+ * menu over the trigger; `"auto"` keeps the sheet at page level and opens
53
+ * the menu inside another overlay, so a sheet never stacks on a sheet
54
+ * (FZ-7830). A menu inside an overlay slides back on screen instead of
55
+ * taking LC-139's collision sheet. An explicit `sheet` wins on the web.
56
+ */
57
+ compactFace?: CompactFace;
48
58
  /**
49
59
  * Sizing mode for the web floating panel.
50
60
  * - `"grow"` (default): opens from the trigger to the nearest viewport
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AA4B3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAezD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,2FAA2F;IAC3F,kBAAkB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IACjC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAuPD,wBAAgB,eAAe,YAE9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAkBtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AA4B3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAerE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG/E,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,2FAA2F;IAC3F,kBAAkB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C;;;;;OAKG;IACH,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IACjC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAuPD,wBAAgB,eAAe,YAE9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAwBtD"}
@@ -44,6 +44,13 @@
44
44
  * - Opening a Modal under the same finger can synthesize a backdrop press;
45
45
  * backdrop dismiss is armed a short delay after the present begins.
46
46
  *
47
+ * Menu face (`compactFace`, FZ-7830): instead of the sheet, a menu opens
48
+ * over the trigger (LC-112), its top start corner on the trigger's, the
49
+ * trigger echoed as its first row, sliding back inside the safe area where it
50
+ * would run off screen. DropdownMenu always opens this way (a UIMenu
51
+ * pull-down); Select opens this way for a short list, and for any list inside
52
+ * another overlay, so a sheet never stacks on a sheet.
53
+ *
47
54
  * ContextMenu (`openOn="contextmenu"`): long-press opens it. On a window wider
48
55
  * than OVERLAY_BREAKPOINT (a tablet) it opens at the long-press point, the
49
56
  * same free overlay the web draws at the pointer; a phone keeps the sheet,
@@ -56,5 +63,5 @@ export type { FloatingPanelProps } from "./index";
56
63
  export { floatingPanelActionProps, isNestedPanelAction } from "./nestedAction";
57
64
  /** Native never has a >sm web viewport; AdaptivePopup uses this to pick Sheet mode. */
58
65
  export declare function useViewportGtSm(): boolean;
59
- export declare function FloatingPanel({ open, onOpenChange, onNativeShow, trigger, triggerEnd, triggerSizing, children: panelChildren, scrollable, disabled, contentPadding, header, scrollViewProps, triggerA11y, sheetFill, openOn, }: FloatingPanelProps): import("react/jsx-runtime").JSX.Element;
66
+ export declare function FloatingPanel({ open, onOpenChange, onNativeShow, trigger, triggerEnd, triggerSizing, children: panelChildren, scrollable, disabled, contentPadding, header, scrollViewProps, triggerA11y, sheetFill, openOn, compactFace, triggerRow, triggerEcho, anchorMode, }: FloatingPanelProps): import("react/jsx-runtime").JSX.Element;
60
67
  //# sourceMappingURL=index.native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/index.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAuCH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAQlD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,uFAAuF;AACvF,wBAAgB,eAAe,YAE9B;AAiBD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,aAAyB,EACzB,QAAQ,EAAE,aAAa,EACvB,UAAU,EACV,QAAQ,EACR,cAA0B,EAC1B,MAAM,EACN,eAAe,EACf,WAAW,EACX,SAAS,EACT,MAAgB,GACjB,EAAE,kBAAkB,2CAofpB"}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/index.native.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAuCH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAelD,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,uFAAuF;AACvF,wBAAgB,eAAe,YAE9B;AAiBD,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,aAAyB,EACzB,QAAQ,EAAE,aAAa,EACvB,UAAU,EACV,QAAQ,EACR,cAA0B,EAC1B,MAAM,EACN,eAAe,EACf,WAAW,EACX,SAAS,EACT,MAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAkB,EAClB,UAAU,GACX,EAAE,kBAAkB,2CAkjBpB"}
@@ -63,4 +63,33 @@ export interface PointReference {
63
63
  }
64
64
  /** The target's bottom start corner: where a menu with no pointer opens. */
65
65
  export declare function referenceCornerPoint(reference: PointReference, rtl?: boolean): PanelPoint;
66
+ /** A trigger's box in the same coordinates as the bounds (window or viewport). */
67
+ export interface TriggerRect {
68
+ x: number;
69
+ y: number;
70
+ width: number;
71
+ height: number;
72
+ }
73
+ export interface TriggerPlacement {
74
+ left: number;
75
+ top: number;
76
+ width: number;
77
+ maxHeight: number;
78
+ /** The menu moved off the trigger's top start corner to stay on screen. */
79
+ shifted: boolean;
80
+ }
81
+ /**
82
+ * A menu opened over its trigger (LC-112) where no bottom sheet may take it:
83
+ * on native, and inside another overlay (FZ-7830). Its top start corner sits
84
+ * on the trigger's, it is at least the trigger's width, and where it would
85
+ * run off screen it slides back inside the bounds the way a UIMenu does,
86
+ * scrolling whatever still does not fit.
87
+ */
88
+ export declare function placeOverTrigger({ trigger, width, height, bounds, rtl, }: {
89
+ trigger: TriggerRect;
90
+ width: number;
91
+ height: number;
92
+ bounds: PanelBounds;
93
+ rtl?: boolean;
94
+ }): TriggerPlacement;
66
95
  //# sourceMappingURL=pointAnchor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pointAnchor.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/pointAnchor.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,GAAG,UAAQ,GACV;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAOrC;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,GAAG,GAAE,MAA2B,GAC/B,OAAO,CAMT;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,GAAwB,EACxB,GAAW,GACZ,EAAE;IACD,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,cAAc,CASjB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,EAC3B,SAAS,EAAE,cAAc,GAAG,IAAI,EAChC,GAAG,UAAQ,GACV,UAAU,GAAG,IAAI,CAOnB;AAED,MAAM,WAAW,cAAc;IAC7B,qBAAqB,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1E;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,UAAQ,GAAG,UAAU,CAGvF"}
1
+ {"version":3,"file":"pointAnchor.d.ts","sourceRoot":"","sources":["../../src/FloatingPanel/pointAnchor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputParts/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/InputParts/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,IAAI,oBAAoB,EAErC,UAAU,EACV,UAAU,EACX,MAAM,SAAS,CAAC;AAkCjB,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,uFAAuF;IACvF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,iBAAiB,CAAC,CAAC;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EAAE,QAAQ,EACd,UAAU,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,EAAE,EAAE,MAAM,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,MAAM,EACN,aAAa,EACb,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,EAAE,aAAa,2CAmYf"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,IAAI,oBAAoB,EAErC,UAAU,EACV,UAAU,EACX,MAAM,SAAS,CAAC;AAmCjB,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,uFAAuF;IACvF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,iBAAiB,CAAC,CAAC;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EAAE,QAAQ,EACd,UAAU,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,EAAE,EAAE,MAAM,EACV,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,MAAM,EACN,aAAa,EACb,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,EAAE,aAAa,2CA+Yf"}