@multiplatform.one/forms 7.73.0 → 7.75.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 (248) hide show
  1. package/dist/cjs/Button/IconButtonGroup.cjs +32 -0
  2. package/dist/cjs/Button/IconButtonGroup.native.js +32 -0
  3. package/dist/cjs/Button/IconButtonGroup.native.js.map +1 -1
  4. package/dist/cjs/Button/glass.cjs +4 -1
  5. package/dist/cjs/Button/index.cjs +71 -18
  6. package/dist/cjs/Button/index.native.js +81 -20
  7. package/dist/cjs/Button/index.native.js.map +1 -1
  8. package/dist/cjs/Button/webGlass.cjs +62 -0
  9. package/dist/cjs/Button/webGlass.native.js +68 -0
  10. package/dist/cjs/Button/webGlass.native.js.map +1 -0
  11. package/dist/cjs/fields/FileUpload/index.cjs +8 -3
  12. package/dist/cjs/fields/FileUpload/index.native.js +8 -3
  13. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  14. package/dist/esm/AdaptivePopup/index.native.js.map +1 -1
  15. package/dist/esm/Button/IconButtonGroup.mjs +32 -0
  16. package/dist/esm/Button/IconButtonGroup.mjs.map +1 -1
  17. package/dist/esm/Button/IconButtonGroup.native.js +32 -0
  18. package/dist/esm/Button/IconButtonGroup.native.js.map +1 -1
  19. package/dist/esm/Button/circleGlyph.native.js.map +1 -1
  20. package/dist/esm/Button/glass.mjs +4 -2
  21. package/dist/esm/Button/glass.mjs.map +1 -1
  22. package/dist/esm/Button/iconButtonGroupContext.mjs.map +1 -1
  23. package/dist/esm/Button/iconButtonGroupContext.native.js.map +1 -1
  24. package/dist/esm/Button/index.mjs +72 -20
  25. package/dist/esm/Button/index.mjs.map +1 -1
  26. package/dist/esm/Button/index.native.js +82 -22
  27. package/dist/esm/Button/index.native.js.map +1 -1
  28. package/dist/esm/Button/mediaPlate.native.js.map +1 -1
  29. package/dist/esm/Button/webGlass.mjs +36 -0
  30. package/dist/esm/Button/webGlass.mjs.map +1 -0
  31. package/dist/esm/Button/webGlass.native.js +39 -0
  32. package/dist/esm/Button/webGlass.native.js.map +1 -0
  33. package/dist/esm/Chip/index.native.js.map +1 -1
  34. package/dist/esm/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  35. package/dist/esm/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  36. package/dist/esm/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  37. package/dist/esm/ContextualSaveBar/index.native.js.map +1 -1
  38. package/dist/esm/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  39. package/dist/esm/ControlGroup/index.native.js.map +1 -1
  40. package/dist/esm/DescriptionList/index.native.js.map +1 -1
  41. package/dist/esm/ErrorSummary.native.js.map +1 -1
  42. package/dist/esm/FieldDisplay/editMode.native.js.map +1 -1
  43. package/dist/esm/FieldDisplay/formatters.native.js.map +1 -1
  44. package/dist/esm/FieldDisplay/index.native.js.map +1 -1
  45. package/dist/esm/FieldGroup.native.js.map +1 -1
  46. package/dist/esm/FloatingPanel/PanelHeader.native.js.map +1 -1
  47. package/dist/esm/FloatingPanel/RegularPanel.native.js.map +1 -1
  48. package/dist/esm/FloatingPanel/compactFace.native.js.map +1 -1
  49. package/dist/esm/FloatingPanel/containingBlock.native.js.map +1 -1
  50. package/dist/esm/FloatingPanel/echoContext.native.js.map +1 -1
  51. package/dist/esm/FloatingPanel/iconEcho.native.js.map +1 -1
  52. package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -1
  53. package/dist/esm/FloatingPanel/paintedBox.native.js.map +1 -1
  54. package/dist/esm/FloatingPanel/panelWidth.native.js.map +1 -1
  55. package/dist/esm/FloatingPanel/pointAnchor.native.js.map +1 -1
  56. package/dist/esm/FloatingPanel/regularPlacement.native.js.map +1 -1
  57. package/dist/esm/FloatingPanel/trailingAction.native.js.map +1 -1
  58. package/dist/esm/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  59. package/dist/esm/Form/index.native.js.map +1 -1
  60. package/dist/esm/Form/submissionController.native.js.map +1 -1
  61. package/dist/esm/Form/validateOn.native.js.map +1 -1
  62. package/dist/esm/FormGrid.native.js.map +1 -1
  63. package/dist/esm/FormSection.native.js.map +1 -1
  64. package/dist/esm/InputParts/PasswordReveal.native.js.map +1 -1
  65. package/dist/esm/InputParts/index.native.js.map +1 -1
  66. package/dist/esm/Label/index.native.js.map +1 -1
  67. package/dist/esm/MediaPicker/base64.native.js.map +1 -1
  68. package/dist/esm/MediaPicker/payload.native.js.map +1 -1
  69. package/dist/esm/MediaPicker/types.native.js.map +1 -1
  70. package/dist/esm/MediaPicker/useMediaPicker.native.js.map +1 -1
  71. package/dist/esm/Skeleton/index.native.js.map +1 -1
  72. package/dist/esm/Spinner/SpinnerGlyph.native.js.map +1 -1
  73. package/dist/esm/Spinner/spinnerSize.native.js.map +1 -1
  74. package/dist/esm/Table/index.native.js.map +1 -1
  75. package/dist/esm/Wheel/haptic.native.js.map +1 -1
  76. package/dist/esm/Wheel/index.native.js.map +1 -1
  77. package/dist/esm/Wheel/wheelShared.native.js.map +1 -1
  78. package/dist/esm/actionLabel.native.js.map +1 -1
  79. package/dist/esm/fieldDefaults.native.js.map +1 -1
  80. package/dist/esm/fieldLayout.native.js.map +1 -1
  81. package/dist/esm/fields/Barcode/BarcodePreview.native.js.map +1 -1
  82. package/dist/esm/fields/Barcode/code128.native.js.map +1 -1
  83. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  84. package/dist/esm/fields/Barcode/qr.native.js.map +1 -1
  85. package/dist/esm/fields/Barcode/scannerTypes.native.js.map +1 -1
  86. package/dist/esm/fields/Checkbox/Checkbox.native.js.map +1 -1
  87. package/dist/esm/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  88. package/dist/esm/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  89. package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  90. package/dist/esm/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  91. package/dist/esm/fields/Checkbox/checkboxGroupContext.native.js.map +1 -1
  92. package/dist/esm/fields/Checkbox/index.native.js.map +1 -1
  93. package/dist/esm/fields/ColorPicker/SystemColorField.native.js.map +1 -1
  94. package/dist/esm/fields/ColorPicker/index.native.js.map +1 -1
  95. package/dist/esm/fields/ColorPicker/parts.native.js.map +1 -1
  96. package/dist/esm/fields/ColorPicker/systemColorWell.gnome.native.js.map +1 -1
  97. package/dist/esm/fields/Combobox/authorOptions.native.js.map +1 -1
  98. package/dist/esm/fields/Combobox/index.native.js.map +1 -1
  99. package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
  100. package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  101. package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
  102. package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
  103. package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  104. package/dist/esm/fields/DatePicker/catalog.native.js.map +1 -1
  105. package/dist/esm/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  106. package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
  107. package/dist/esm/fields/DatePicker/utils.native.js.map +1 -1
  108. package/dist/esm/fields/Duration/durationMath.native.js.map +1 -1
  109. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  110. package/dist/esm/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  111. package/dist/esm/fields/FileUpload/index.mjs +8 -3
  112. package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
  113. package/dist/esm/fields/FileUpload/index.native.js +8 -3
  114. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  115. package/dist/esm/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  116. package/dist/esm/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  117. package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -1
  118. package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -1
  119. package/dist/esm/fields/Geolocation/geocoderContext.native.js.map +1 -1
  120. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  121. package/dist/esm/fields/Geolocation/mapMath.native.js.map +1 -1
  122. package/dist/esm/fields/Geolocation/mapTypes.native.js.map +1 -1
  123. package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -1
  124. package/dist/esm/fields/Geolocation/photonGeocoder.native.js.map +1 -1
  125. package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
  126. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  127. package/dist/esm/fields/ImageField/index.native.js.map +1 -1
  128. package/dist/esm/fields/Input/index.native.js.map +1 -1
  129. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  130. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  131. package/dist/esm/fields/OTPInput/otpCellCss.native.js.map +1 -1
  132. package/dist/esm/fields/PhoneInput/dialCodes.native.js.map +1 -1
  133. package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
  134. package/dist/esm/fields/PhoneInput/phone.native.js.map +1 -1
  135. package/dist/esm/fields/PhoneInput/regionNames.native.js.map +1 -1
  136. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  137. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  138. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  139. package/dist/esm/fields/Rating/ratingMath.native.js.map +1 -1
  140. package/dist/esm/fields/Rating/types.native.js.map +1 -1
  141. package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
  142. package/dist/esm/fields/Select/InlineChoices.native.js.map +1 -1
  143. package/dist/esm/fields/Select/SheetPickerRow.native.js.map +1 -1
  144. package/dist/esm/fields/Select/index.native.js.map +1 -1
  145. package/dist/esm/fields/Select/shouldInlineChoices.native.js.map +1 -1
  146. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  147. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  148. package/dist/esm/fields/Slider/jumpMotion.native.js.map +1 -1
  149. package/dist/esm/fields/Stepper/index.native.js.map +1 -1
  150. package/dist/esm/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  151. package/dist/esm/fields/Switch/footprint.native.js.map +1 -1
  152. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  153. package/dist/esm/fields/TextArea/index.native.js.map +1 -1
  154. package/dist/esm/fields/TimePicker/catalog.native.js.map +1 -1
  155. package/dist/esm/fields/TimePicker/parts.native.js.map +1 -1
  156. package/dist/esm/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  157. package/dist/esm/fields/TimeRangeScrubber/index.native.js.map +1 -1
  158. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  159. package/dist/esm/fields/nativeDateTime/OsDateTimeSheet.native.js.map +1 -1
  160. package/dist/esm/fields/nativeDateTime/dateTimePickerLoader.native.js.map +1 -1
  161. package/dist/esm/fields/nativeDateTime/osDateTimeIosDisplay.native.js.map +1 -1
  162. package/dist/esm/fields/nativeDateTime/sheetKeyboard.native.js.map +1 -1
  163. package/dist/esm/fields/nativeSelect.native.js.map +1 -1
  164. package/dist/esm/fields/selectedOrder.native.js.map +1 -1
  165. package/dist/esm/formSpacing.native.js.map +1 -1
  166. package/dist/esm/hooks/useFocusManagement.native.js.map +1 -1
  167. package/dist/esm/index.native.js.map +1 -1
  168. package/dist/esm/keyboard/chain.native.js.map +1 -1
  169. package/dist/esm/keyboard/index.native.js.map +1 -1
  170. package/dist/esm/keyboard/types.native.js.map +1 -1
  171. package/dist/esm/requiredMarking.native.js.map +1 -1
  172. package/dist/esm/shared/TimeColumn.native.js.map +1 -1
  173. package/dist/esm/shared/capabilityPreflight.native.js.map +1 -1
  174. package/dist/esm/shared/choiceRowPress.native.js.map +1 -1
  175. package/dist/esm/shared/colorRamps.native.js.map +1 -1
  176. package/dist/esm/shared/devWarn.native.js.map +1 -1
  177. package/dist/esm/shared/floatingList.native.js.map +1 -1
  178. package/dist/esm/shared/focusManagement.native.js.map +1 -1
  179. package/dist/esm/shared/groupContext.native.js.map +1 -1
  180. package/dist/esm/shared/i18n.native.js.map +1 -1
  181. package/dist/esm/shared/instantMotion.native.js.map +1 -1
  182. package/dist/esm/shared/nativeA11y.native.js.map +1 -1
  183. package/dist/esm/shared/nativeAutoFocus.native.js.map +1 -1
  184. package/dist/esm/shared/overlaySizeClass.native.js.map +1 -1
  185. package/dist/esm/shared/overlayStack.native.js.map +1 -1
  186. package/dist/esm/shared/panelPortal.native.js.map +1 -1
  187. package/dist/esm/shared/pickerTriggerContract.native.js.map +1 -1
  188. package/dist/esm/shared/pressSlopProps.native.js.map +1 -1
  189. package/dist/esm/shared/restoreRetries.native.js.map +1 -1
  190. package/dist/esm/shared/sheetNavigation.native.js.map +1 -1
  191. package/dist/esm/shared/systemControlModules.gnome.native.js.map +1 -1
  192. package/dist/esm/shared/systemControls.native.js.map +1 -1
  193. package/dist/esm/shared/t.native.js.map +1 -1
  194. package/dist/esm/shared/tableCellContext.native.js.map +1 -1
  195. package/dist/esm/shared/useDragScroll.native.js.map +1 -1
  196. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  197. package/dist/esm/shared/useSheetEscapeDismiss.native.js.map +1 -1
  198. package/dist/esm/shared/useWheelIncrement.native.js.map +1 -1
  199. package/dist/esm/shared/utils.native.js.map +1 -1
  200. package/dist/esm/shared/zIndex.native.js.map +1 -1
  201. package/dist/esm/standardActions.native.js.map +1 -1
  202. package/dist/esm/themedPrimitives.native.js.map +1 -1
  203. package/dist/esm/types.native.js.map +1 -1
  204. package/dist/esm/utils/LinkCell.native.js.map +1 -1
  205. package/dist/jsx/Button/IconButtonGroup.mjs +32 -0
  206. package/dist/jsx/Button/IconButtonGroup.mjs.map +1 -1
  207. package/dist/jsx/Button/IconButtonGroup.native.js +32 -0
  208. package/dist/jsx/Button/IconButtonGroup.native.js.map +1 -1
  209. package/dist/jsx/Button/glass.mjs +4 -2
  210. package/dist/jsx/Button/glass.mjs.map +1 -1
  211. package/dist/jsx/Button/iconButtonGroupContext.mjs.map +1 -1
  212. package/dist/jsx/Button/iconButtonGroupContext.native.js.map +1 -1
  213. package/dist/jsx/Button/index.mjs +72 -20
  214. package/dist/jsx/Button/index.mjs.map +1 -1
  215. package/dist/jsx/Button/index.native.js +81 -20
  216. package/dist/jsx/Button/index.native.js.map +1 -1
  217. package/dist/jsx/Button/webGlass.mjs +36 -0
  218. package/dist/jsx/Button/webGlass.mjs.map +1 -0
  219. package/dist/jsx/Button/webGlass.native.js +68 -0
  220. package/dist/jsx/Button/webGlass.native.js.map +1 -0
  221. package/dist/jsx/fields/FileUpload/index.mjs +8 -3
  222. package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
  223. package/dist/jsx/fields/FileUpload/index.native.js +8 -3
  224. package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
  225. package/package.json +8 -8
  226. package/src/Button/Button.accentInk.spec.tsx +39 -8
  227. package/src/Button/Button.confirmFill.spec.tsx +141 -0
  228. package/src/Button/Button.iconButton.spec.tsx +143 -3
  229. package/src/Button/Button.stories.tsx +55 -38
  230. package/src/Button/IconButtonGroup.spec.tsx +40 -0
  231. package/src/Button/IconButtonGroup.tsx +39 -0
  232. package/src/Button/glass.spec.ts +73 -0
  233. package/src/Button/glass.ts +8 -3
  234. package/src/Button/iconButtonGroupContext.ts +2 -1
  235. package/src/Button/index.tsx +111 -16
  236. package/src/Button/webGlass.ts +42 -0
  237. package/src/fields/FileUpload/FileUpload.spec.tsx +8 -0
  238. package/src/fields/FileUpload/index.tsx +12 -4
  239. package/types/Button/IconButtonGroup.d.ts.map +1 -1
  240. package/types/Button/glass.d.ts +5 -2
  241. package/types/Button/glass.d.ts.map +1 -1
  242. package/types/Button/iconButtonGroupContext.d.ts +2 -1
  243. package/types/Button/iconButtonGroupContext.d.ts.map +1 -1
  244. package/types/Button/index.d.ts +7 -0
  245. package/types/Button/index.d.ts.map +1 -1
  246. package/types/Button/webGlass.d.ts +32 -0
  247. package/types/Button/webGlass.d.ts.map +1 -0
  248. package/types/fields/FileUpload/index.d.ts.map +1 -1
@@ -31,6 +31,7 @@ var import_react = require("react");
31
31
  var import_tamagui = require("tamagui");
32
32
  var import_glass = require("./glass.cjs");
33
33
  var import_mediaPlate = require("./mediaPlate.cjs");
34
+ var import_webGlass = require("./webGlass.cjs");
34
35
  var import_iconButtonGroupContext = require("./iconButtonGroupContext.cjs");
35
36
  var import_jsx_runtime = require("react/jsx-runtime");
36
37
  const ICON_BUTTON_GLASS_MERGE_PX = 22;
@@ -68,6 +69,37 @@ function IconButtonGroup({
68
69
  })
69
70
  });
70
71
  }
72
+ if (bar && import_tamagui.isWeb && (0, import_webGlass.isAppleTouchWeb)()) {
73
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupRegistry.Provider, {
74
+ value: register,
75
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupContext.Provider, {
76
+ value: "glass",
77
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
78
+ alignItems: "center",
79
+ "data-mp-icon-button-group": members > 0 ? "glass" : "bar",
80
+ ...rest,
81
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
82
+ alignItems: "center",
83
+ position: "relative",
84
+ zIndex: 0,
85
+ paddingHorizontal: "$2",
86
+ gap: "$1",
87
+ "data-mp-glass-capsule": "",
88
+ children: [members > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_webGlass.WebGlassFace, {
89
+ style: {
90
+ position: "absolute",
91
+ top: 0,
92
+ right: 0,
93
+ bottom: 0,
94
+ left: 0,
95
+ borderRadius: 1e5
96
+ }
97
+ }) : null, children]
98
+ })
99
+ })
100
+ })
101
+ });
102
+ }
71
103
  const GlassView = bar ? (0, import_glass.loadGlassView)() : null;
72
104
  const row = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
73
105
  alignItems: "center",
@@ -34,6 +34,7 @@ var import_react = require("react");
34
34
  var import_tamagui = require("tamagui");
35
35
  var import_glass = require("./glass.native.js");
36
36
  var import_mediaPlate = require("./mediaPlate.native.js");
37
+ var import_webGlass = require("./webGlass.native.js");
37
38
  var import_iconButtonGroupContext = require("./iconButtonGroupContext.native.js");
38
39
  var ICON_BUTTON_GLASS_MERGE_PX = 22;
39
40
  function IconButtonGroup(param) {
@@ -77,6 +78,37 @@ function IconButtonGroup(param) {
77
78
  })
78
79
  });
79
80
  }
81
+ if (bar && import_tamagui.isWeb && (0, import_webGlass.isAppleTouchWeb)()) {
82
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupRegistry.Provider, {
83
+ value: register,
84
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupContext.Provider, {
85
+ value: "glass",
86
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
87
+ alignItems: "center",
88
+ "data-mp-icon-button-group": members > 0 ? "glass" : "bar",
89
+ ...rest,
90
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {
91
+ alignItems: "center",
92
+ position: "relative",
93
+ zIndex: 0,
94
+ paddingHorizontal: "$2",
95
+ gap: "$1",
96
+ "data-mp-glass-capsule": "",
97
+ children: [members > 0 ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_webGlass.WebGlassFace, {
98
+ style: {
99
+ position: "absolute",
100
+ top: 0,
101
+ right: 0,
102
+ bottom: 0,
103
+ left: 0,
104
+ borderRadius: 1e5
105
+ }
106
+ }) : null, children]
107
+ })
108
+ })
109
+ })
110
+ });
111
+ }
80
112
  var GlassView = bar ? (0, import_glass.loadGlassView)() : null;
81
113
  var row = /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.XStack, {
82
114
  alignItems: "center",
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","IconButtonGroup_exports","ICON_BUTTON_GLASS_MERGE_PX","IconButtonGroup","module","exports","import_jsx_runtime","require","import_theme","import_react","import_tamagui","import_glass","import_mediaPlate","import_iconButtonGroupContext","param","plate","children","rest","bar","useBarSurface","capsuleHeight","setCapsuleHeight","useState","members","setMembers","register","useCallback","count","jsx","IconButtonGroupContext","Provider","Theme","XStack","alignItems","alignSelf","borderRadius","backgroundColor","overflow","radiusClassProps","isWeb","style","MEDIA_PLATE_WEB_STYLE","GlassView","loadGlassView","row","IconButtonGroupRegistry","jsxs","View","position","flexShrink","minWidth","onLayout","event","nativeEvent","layout","height","glassEffectStyle","pointerEvents","top","right","bottom","left"],"sources":["IconButtonGroup.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar IconButtonGroup_exports = {};\n__export(IconButtonGroup_exports, {\n ICON_BUTTON_GLASS_MERGE_PX: () => ICON_BUTTON_GLASS_MERGE_PX,\n IconButtonGroup: () => IconButtonGroup\n});\nmodule.exports = __toCommonJS(IconButtonGroup_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_theme = require(\"@multiplatform.one/theme\");\nvar import_react = require(\"react\");\nvar import_tamagui = require(\"tamagui\");\nvar import_glass = require(\"./glass\");\nvar import_mediaPlate = require(\"./mediaPlate\");\nvar import_iconButtonGroupContext = require(\"./iconButtonGroupContext\");\nvar ICON_BUTTON_GLASS_MERGE_PX = 22;\nfunction IconButtonGroup(param) {\n var { plate, children, ...rest } = param;\n var bar = (0, import_theme.useBarSurface)();\n var [capsuleHeight, setCapsuleHeight] = (0, import_react.useState)(0);\n var [members, setMembers] = (0, import_react.useState)(0);\n var register = (0, import_react.useCallback)(function() {\n setMembers(function(count) {\n return count + 1;\n });\n return function() {\n return setMembers(function(count) {\n return count - 1;\n });\n };\n }, []);\n if (plate === \"media\") {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupContext.Provider, {\n value: \"media\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.Theme, {\n name: \"dark\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderRadius: 1e5,\n backgroundColor: \"$shadow4\",\n overflow: \"hidden\",\n \"data-mp-icon-button-group\": \"media\",\n ...(0, import_theme.radiusClassProps)(\"R-IDENTITY\", \"icon button plate\"),\n ...import_tamagui.isWeb ? {\n style: import_mediaPlate.MEDIA_PLATE_WEB_STYLE\n } : void 0,\n ...rest,\n children\n })\n })\n });\n }\n var GlassView = bar ? (0, import_glass.loadGlassView)() : null;\n var row = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n alignItems: \"center\",\n \"data-mp-icon-button-group\": GlassView && members > 0 ? \"glass\" : bar ? \"bar\" : \"row\",\n ...rest,\n children\n });\n if (!GlassView) return row;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupRegistry.Provider, {\n value: register,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupContext.Provider, {\n value: \"glass\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.View, {\n position: \"relative\",\n flexShrink: 1,\n minWidth: 0,\n onLayout: function onLayout(event) {\n return setCapsuleHeight(event.nativeEvent.layout.height);\n },\n children: [\n members > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlassView, {\n glassEffectStyle: \"regular\",\n pointerEvents: \"none\",\n style: {\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: capsuleHeight / 2\n }\n }) : null,\n row\n ]\n })\n })\n });\n}\n//# sourceMappingURL=IconButtonGroup.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","IconButtonGroup_exports","ICON_BUTTON_GLASS_MERGE_PX","IconButtonGroup","module","exports","import_jsx_runtime","require","import_theme","import_react","import_tamagui","import_glass","import_mediaPlate","import_webGlass","import_iconButtonGroupContext","param","plate","children","rest","bar","useBarSurface","capsuleHeight","setCapsuleHeight","useState","members","setMembers","register","useCallback","count","jsx","IconButtonGroupContext","Provider","Theme","XStack","alignItems","alignSelf","borderRadius","backgroundColor","overflow","radiusClassProps","isWeb","style","MEDIA_PLATE_WEB_STYLE","isAppleTouchWeb","IconButtonGroupRegistry","jsxs","position","zIndex","paddingHorizontal","gap","WebGlassFace","top","right","bottom","left","GlassView","loadGlassView","row","View","flexShrink","minWidth","onLayout","event","nativeEvent","layout","height","glassEffectStyle","pointerEvents"],"sources":["IconButtonGroup.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar IconButtonGroup_exports = {};\n__export(IconButtonGroup_exports, {\n ICON_BUTTON_GLASS_MERGE_PX: () => ICON_BUTTON_GLASS_MERGE_PX,\n IconButtonGroup: () => IconButtonGroup\n});\nmodule.exports = __toCommonJS(IconButtonGroup_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_theme = require(\"@multiplatform.one/theme\");\nvar import_react = require(\"react\");\nvar import_tamagui = require(\"tamagui\");\nvar import_glass = require(\"./glass\");\nvar import_mediaPlate = require(\"./mediaPlate\");\nvar import_webGlass = require(\"./webGlass\");\nvar import_iconButtonGroupContext = require(\"./iconButtonGroupContext\");\nvar ICON_BUTTON_GLASS_MERGE_PX = 22;\nfunction IconButtonGroup(param) {\n var { plate, children, ...rest } = param;\n var bar = (0, import_theme.useBarSurface)();\n var [capsuleHeight, setCapsuleHeight] = (0, import_react.useState)(0);\n var [members, setMembers] = (0, import_react.useState)(0);\n var register = (0, import_react.useCallback)(function() {\n setMembers(function(count) {\n return count + 1;\n });\n return function() {\n return setMembers(function(count) {\n return count - 1;\n });\n };\n }, []);\n if (plate === \"media\") {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupContext.Provider, {\n value: \"media\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.Theme, {\n name: \"dark\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderRadius: 1e5,\n backgroundColor: \"$shadow4\",\n overflow: \"hidden\",\n \"data-mp-icon-button-group\": \"media\",\n ...(0, import_theme.radiusClassProps)(\"R-IDENTITY\", \"icon button plate\"),\n ...import_tamagui.isWeb ? {\n style: import_mediaPlate.MEDIA_PLATE_WEB_STYLE\n } : void 0,\n ...rest,\n children\n })\n })\n });\n }\n if (bar && import_tamagui.isWeb && (0, import_webGlass.isAppleTouchWeb)()) {\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupRegistry.Provider, {\n value: register,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupContext.Provider, {\n value: \"glass\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n alignItems: \"center\",\n \"data-mp-icon-button-group\": members > 0 ? \"glass\" : \"bar\",\n ...rest,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.XStack, {\n alignItems: \"center\",\n position: \"relative\",\n zIndex: 0,\n paddingHorizontal: \"$2\",\n gap: \"$1\",\n \"data-mp-glass-capsule\": \"\",\n children: [\n members > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_webGlass.WebGlassFace, {\n style: {\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 1e5\n }\n }) : null,\n children\n ]\n })\n })\n })\n });\n }\n var GlassView = bar ? (0, import_glass.loadGlassView)() : null;\n var row = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tamagui.XStack, {\n alignItems: \"center\",\n \"data-mp-icon-button-group\": GlassView && members > 0 ? \"glass\" : bar ? \"bar\" : \"row\",\n ...rest,\n children\n });\n if (!GlassView) return row;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupRegistry.Provider, {\n value: register,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_iconButtonGroupContext.IconButtonGroupContext.Provider, {\n value: \"glass\",\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_tamagui.View, {\n position: \"relative\",\n flexShrink: 1,\n minWidth: 0,\n onLayout: function onLayout(event) {\n return setCapsuleHeight(event.nativeEvent.layout.height);\n },\n children: [\n members > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlassView, {\n glassEffectStyle: \"regular\",\n pointerEvents: \"none\",\n style: {\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: capsuleHeight / 2\n }\n }) : null,\n row\n ]\n })\n })\n });\n}\n//# sourceMappingURL=IconButtonGroup.js.map\n"],"mappings":"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","ignoreList":[]}
@@ -22,12 +22,15 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
22
22
  }), mod);
23
23
  var glass_exports = {};
24
24
  __export(glass_exports, {
25
+ isAppleTouchWeb: () => import_webGlass2.isAppleTouchWeb,
25
26
  loadGlassContainer: () => loadGlassContainer,
26
27
  loadGlassView: () => loadGlassView
27
28
  });
28
29
  module.exports = __toCommonJS(glass_exports);
30
+ var import_webGlass = require("./webGlass.cjs");
31
+ var import_webGlass2 = require("./webGlass.cjs");
29
32
  function loadGlassView() {
30
- return null;
33
+ return (0, import_webGlass.isAppleTouchWeb)() ? import_webGlass.WebGlassFace : null;
31
34
  }
32
35
  function loadGlassContainer() {
33
36
  return null;
@@ -24,6 +24,7 @@ var Button_exports = {};
24
24
  __export(Button_exports, {
25
25
  Button: () => Button,
26
26
  ButtonFrame: () => ButtonFrame,
27
+ GLYPH_BOLD_STROKE_UNITS: () => GLYPH_BOLD_STROKE_UNITS,
27
28
  ICON_BUTTON_CIRCLE_GLYPH_RATIO: () => import_circleGlyph.ICON_BUTTON_CIRCLE_GLYPH_RATIO,
28
29
  ICON_BUTTON_GLASS_MERGE_PX: () => import_IconButtonGroup.ICON_BUTTON_GLASS_MERGE_PX,
29
30
  ICON_BUTTON_GLYPH_PX: () => ICON_BUTTON_GLYPH_PX,
@@ -104,6 +105,23 @@ function normalizeButtonIcon(icon, iconSize, color) {
104
105
  }
105
106
  return icon;
106
107
  }
108
+ function accentSolidFill(themeName) {
109
+ if (!themeName) return null;
110
+ const themes = (0, import_tamagui.getConfig)().themes;
111
+ const parts = themeName.split("_");
112
+ for (let end = parts.length; end > 0; end--) {
113
+ const theme = themes[`${parts.slice(0, end).join("_")}_accent`];
114
+ if (!theme) continue;
115
+ let value = theme.background?.val;
116
+ for (let hop = 0; hop < 4 && typeof value === "string"; hop++) {
117
+ const ref = /^var\(--([^)]+)\)$/.exec(value)?.[1];
118
+ if (!ref) break;
119
+ value = theme[ref]?.val;
120
+ }
121
+ return typeof value === "string" ? (0, import_theme3.normalizeToHex)(value) : null;
122
+ }
123
+ return null;
124
+ }
107
125
  function NativeButtonIcon({
108
126
  icon,
109
127
  size,
@@ -233,22 +251,34 @@ function iconButtonGlyphPx(rowLinePx) {
233
251
  return Math.max(ICON_BUTTON_GLYPH_PX, Math.round(rowLinePx / PHOSPHOR_INK_RATIO));
234
252
  }
235
253
  const INLINE_GLYPH_RATIO = 1.2;
236
- function withGlyphWeight(icon, size, weight) {
254
+ const GLYPH_BOLD_STROKE_UNITS = 8;
255
+ function boldStroke(weight, color = "currentColor") {
256
+ return weight === "bold" ? {
257
+ stroke: color,
258
+ strokeWidth: GLYPH_BOLD_STROKE_UNITS,
259
+ strokeLinejoin: "round"
260
+ } : void 0;
261
+ }
262
+ function withGlyphWeight(icon, size, weight, floor = false) {
237
263
  if (icon == null || icon === false) return icon;
238
264
  if ((0, import_react.isValidElement)(icon)) {
265
+ const resolved = icon.props.weight ?? weight;
266
+ const own = icon.props.size;
239
267
  return (0, import_react.cloneElement)(icon, {
240
- ...(icon.props.size == null ? {
268
+ ...(own == null || floor && typeof own === "number" && own < size ? {
241
269
  size
242
270
  } : void 0),
243
271
  ...(icon.props.weight == null ? {
244
272
  weight
245
- } : void 0)
273
+ } : void 0),
274
+ ...boldStroke(resolved, icon.props.color)
246
275
  });
247
276
  }
248
277
  if (typeof icon === "function" || typeof icon === "object" && "$$typeof" in icon) {
249
278
  return (0, import_react.createElement)(icon, {
250
279
  size,
251
- weight
280
+ weight,
281
+ ...boldStroke(weight)
252
282
  });
253
283
  }
254
284
  return icon;
@@ -354,7 +384,7 @@ function Button({
354
384
  const parentScopeTheme = (0, import_tamagui.useTheme)();
355
385
  const pageOutlineColor = parentScopeTheme.outlineColor?.val;
356
386
  const hostAccentInk = (0, import_theme3.useAccentOnSurface)();
357
- const hostIdentityInk = (0, import_theme3.useIdentityInkOnSurface)();
387
+ const glyphTint = (0, import_theme3.useGlyphTintOnSurface)();
358
388
  const grouped = (0, import_groupContext.useControlGrouped)();
359
389
  const labelled = verb != null || children != null && children !== false && children !== "";
360
390
  const iconOnly = !labelled && Boolean(icon || iconAfter);
@@ -373,7 +403,8 @@ function Button({
373
403
  }
374
404
  const resolvedGlyphWeight = glyphWeight ?? (iconOnly ? "bold" : "regular");
375
405
  const elevatedGround = (0, import_theme3.useElevatedSurface)();
376
- const darkScheme = (0, import_theme3.isDarkThemeName)((0, import_tamagui.useThemeName)());
406
+ const hostThemeName = (0, import_tamagui.useThemeName)();
407
+ const darkScheme = (0, import_theme3.isDarkThemeName)(hostThemeName);
377
408
  const resolvedSize = typeof sizeProp === "number" ? sizeProp : knobProps.sizeToken;
378
409
  const touch = (0, import_theme3.useTouchSurface)();
379
410
  const recipe = resolveButtonSizeRecipe(resolvedSize, recipeFamily, touch);
@@ -420,7 +451,7 @@ function Button({
420
451
  e.currentTarget?.click?.();
421
452
  };
422
453
  const activeThemeName = theme ?? intent;
423
- const tier = activeThemeName || chromeless || grouped ? void 0 : barSurface ? "plain" : knobProps.outlined ? void 0 : "tinted";
454
+ const tier = activeThemeName || chromeless || grouped || mediaPlate ? void 0 : barSurface ? "plain" : knobProps.outlined ? void 0 : "tinted";
424
455
  const tierPaint = tier ? (0, import_theme3.controlTierPaint)(tier, darkScheme, elevatedGround) : void 0;
425
456
  const tierDisabled = tier && disabledState.style !== "dimWhole" ? (0, import_theme3.controlTierDisabled)(tier) : void 0;
426
457
  const hostScoped = fragment => Object.fromEntries(Object.entries(fragment).map(([key, value]) => [key, typeof value === "string" && value.startsWith("$") ? parentScopeTheme[value.slice(1)]?.val ?? value : value]));
@@ -472,7 +503,7 @@ function Button({
472
503
  const ariaPressedProp = props["aria-pressed"];
473
504
  const isSelected = selected ?? (ariaPressedProp === true || ariaPressedProp === "true" ? true : void 0);
474
505
  const selectedFill = Boolean(isSelected) && !unavailable && !mediaPlate;
475
- const barInk = accentInk && chromeless && !selectedFill && !unavailable ? hostIdentityInk : null;
506
+ const barInk = accentInk && chromeless && !selectedFill && !unavailable && !confirmPlate ? labelled ? glyphTint.label : glyphTint.glyph : null;
476
507
  const inlineGlyph = iconButton && inline === true && !nested;
477
508
  const barGlyph = (iconButton || mediaPlate || confirmPlate) && !nested || labelled && chromeless && accentInk === true && edge === "start";
478
509
  const labelLine = labelLinePx(knobProps.body.fontFamily);
@@ -480,12 +511,23 @@ function Button({
480
511
  const glassGroup = groupGround === "glass";
481
512
  const GlassView = iconButton && !inlineGlyph && !nested && accentInk && barSurface && !selectedFill && !glassGroup ? (0, import_glass.loadGlassView)() : null;
482
513
  const framedCircle = iconOnly && Boolean(circular) && !nested && !mediaPlate && !confirmPlate;
514
+ const accentFillHex = confirmPlate ? accentSolidFill(hostThemeName) : null;
515
+ const confirmInk = accentFillHex && (0, import_theme3.contrastRatio)((0, import_theme3.relativeLuminance)("#ffffff"), (0, import_theme3.relativeLuminance)(accentFillHex)) >= import_theme3.GLYPH_CONTRAST_FLOOR ? "#ffffff" : "$color";
516
+ const plateInk = unavailable || barInk || outlinedInk ? void 0 : mediaPlate || iconButton && groupGround === "media" ? "$color12" : confirmPlate ? confirmInk : framedCircle && !activeThemeName ? hostScoped({
517
+ color: "$color12"
518
+ }).color : void 0;
483
519
  const framedCirclePx = touch && typeof sizeProp !== "number" ? Math.max(sizeTokenPx(resolvedSize), import_theme3.MIN_PRESS_TARGET) : sizeTokenPx(resolvedSize);
484
- const iconSize = nested ? Math.min(recipe.iconSize, Math.max(12, Math.round(knobProps.nestedControl.px * 0.45))) : framedCircle ? Math.round(framedCirclePx * import_circleGlyph.ICON_BUTTON_CIRCLE_GLYPH_RATIO) : inlineGlyph ? Math.round(recipe.fontSize * INLINE_GLYPH_RATIO) : barGlyph ? touch ? Math.max(glyphFloor, resolveButtonSizeRecipe("$6", recipeFamily, touch).iconSize) :
485
- // A pointer toolbar keeps its token box (LC-54); the glyph fills it
486
- // up to the same floor.
520
+ const iconSize = nested ? Math.min(recipe.iconSize, Math.max(12, Math.round(knobProps.nestedControl.px * 0.45))) : framedCircle ? Math.round(framedCirclePx * import_circleGlyph.ICON_BUTTON_CIRCLE_GLYPH_RATIO) : inlineGlyph ? Math.round(recipe.fontSize * INLINE_GLYPH_RATIO) : barGlyph ? touch ? Math.max(glyphFloor, resolveButtonSizeRecipe("$6", recipeFamily, touch).iconSize) : iconButton ?
521
+ // A bare glyph has no plate to inset from, so it takes its box
522
+ // less a 2pt optical margin, up to the row's glyph: the SHC
523
+ // "+" at $3 reaches the bar's glyph, a $2 copy beside mono
524
+ // text stays in proportion.
525
+ Math.max(recipe.iconSize, Math.min(glyphFloor, recipe.height - 4)) :
526
+ // A pointer toolbar keeps its token box (LC-54); the glyph fills
527
+ // it up to the same floor.
487
528
  Math.max(recipe.iconSize, Math.min(glyphFloor, recipe.height - 8)) : recipe.iconSize;
488
- const glyph = barGlyph || inlineGlyph || framedCircle ? withGlyphWeight(icon, iconSize, resolvedGlyphWeight) : icon;
529
+ const barGlyphFloor = barGlyph && !framedCircle && !inlineGlyph && !nested;
530
+ const glyph = barGlyph || inlineGlyph || framedCircle ? withGlyphWeight(icon, iconSize, resolvedGlyphWeight, barGlyphFloor) : icon;
489
531
  const labelBoxPx = nested ? knobProps.nestedControl.px : recipe.height;
490
532
  const labelMaxFontScale = Math.min((0, import_theme3.maxFontScaleToFit)(labelBoxPx, nested ? (0, import_tamagui.getFontSize)(knobProps.label.fontSize) : recipe.fontSize, import_theme3.dynamicTypeFit.controlLabelFill), labelLine === void 0 ? Number.POSITIVE_INFINITY : (0, import_theme3.maxFontScaleToFit)(labelBoxPx, labelLine, 1));
491
533
  const renderLabelText = (label, key) => /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.SizableText, {
@@ -518,7 +560,7 @@ function Button({
518
560
  const flattenedChildren = Array.isArray(resolvedChildren) ? import_react.Children.toArray(resolvedChildren) : null;
519
561
  const labelContent = isBareTextChild(resolvedChildren) ? renderLabelText(resolvedChildren) : flattenedChildren?.some(isBareTextChild) ? wrapBareTextChildren(flattenedChildren, renderLabelText) : resolvedChildren;
520
562
  const hasIcon = icon || iconAfter || loading;
521
- const nativeIconColor = props.color ?? (unavailable ? disabledText.color : void 0) ?? barInk ?? (textColor ? outlinedOnHost ? hostScoped({
563
+ const nativeIconColor = props.color ?? (unavailable ? disabledText.color : void 0) ?? barInk ?? plateInk ?? (textColor ? outlinedOnHost ? hostScoped({
522
564
  color: textColor
523
565
  }).color : textColor : outlinedInk) ?? "$color";
524
566
  const iconElement = loading ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
@@ -538,7 +580,7 @@ function Button({
538
580
  color: nativeIconColor
539
581
  })
540
582
  }) : null;
541
- const glyphAfter = iconAfter && (barGlyph || inlineGlyph || framedCircle) ? withGlyphWeight(iconAfter, iconSize, resolvedGlyphWeight) : iconAfter;
583
+ const glyphAfter = iconAfter && (barGlyph || inlineGlyph || framedCircle) ? withGlyphWeight(iconAfter, iconSize, resolvedGlyphWeight, barGlyphFloor) : iconAfter;
542
584
  const iconAfterElement = glyphAfter ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
543
585
  flexShrink: 0,
544
586
  children: import_tamagui.isWeb ? normalizeButtonIcon(glyphAfter, iconSize) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(NativeButtonIcon, {
@@ -600,6 +642,7 @@ function Button({
600
642
  } : mediaPlate ? {
601
643
  backgroundColor: "$shadow5"
602
644
  } : void 0;
645
+ const glassInset = typeof resolvedBorderWidth === "number" ? -resolvedBorderWidth : 0;
603
646
  const glyphEdgePull = GlassView || glassGroup ? 0 : iconButton ? -Math.max(0, (visualPx - iconSize) / 2) : edgePull;
604
647
  const buttonElement = /* @__PURE__ */(0, import_jsx_runtime.jsxs)(ButtonFrame, {
605
648
  disabled: explainedDisable ? false : isDisabled || false,
@@ -639,6 +682,10 @@ function Button({
639
682
  ...(GlassView ? {
640
683
  borderRadius: 1e5
641
684
  } : void 0),
685
+ ...(GlassView && import_tamagui.isWeb ? {
686
+ position: "relative",
687
+ zIndex: 0
688
+ } : void 0),
642
689
  ...(confirmPlate ? {
643
690
  borderRadius: 1e5
644
691
  } : void 0),
@@ -657,12 +704,18 @@ function Button({
657
704
  ...(restFill ? {
658
705
  backgroundColor: restFill
659
706
  } : void 0),
707
+ ...(accentFillHex && !unavailable ? {
708
+ backgroundColor: accentFillHex
709
+ } : void 0),
660
710
  ...(outlinedInk ? {
661
711
  color: outlinedInk
662
712
  } : void 0),
663
713
  ...(barInk ? {
664
714
  color: barInk
665
715
  } : void 0),
716
+ ...(plateInk ? {
717
+ color: plateInk
718
+ } : void 0),
666
719
  ...(unavailable ? {
667
720
  ...disabledSurface,
668
721
  ...disabledText,
@@ -801,10 +854,10 @@ function Button({
801
854
  pointerEvents: "none",
802
855
  style: {
803
856
  position: "absolute",
804
- top: 0,
805
- right: 0,
806
- bottom: 0,
807
- left: 0,
857
+ top: glassInset,
858
+ right: glassInset,
859
+ bottom: glassInset,
860
+ left: glassInset,
808
861
  borderRadius: visualPx / 2
809
862
  }
810
863
  }) : null, iconElement, labelContent, iconAfterElement]
@@ -26,6 +26,7 @@ var Button_exports = {};
26
26
  __export(Button_exports, {
27
27
  Button: () => Button,
28
28
  ButtonFrame: () => ButtonFrame,
29
+ GLYPH_BOLD_STROKE_UNITS: () => GLYPH_BOLD_STROKE_UNITS,
29
30
  ICON_BUTTON_CIRCLE_GLYPH_RATIO: () => import_circleGlyph.ICON_BUTTON_CIRCLE_GLYPH_RATIO,
30
31
  ICON_BUTTON_GLASS_MERGE_PX: () => import_IconButtonGroup.ICON_BUTTON_GLASS_MERGE_PX,
31
32
  ICON_BUTTON_GLYPH_PX: () => ICON_BUTTON_GLYPH_PX,
@@ -116,6 +117,25 @@ function normalizeButtonIcon(icon, iconSize, color) {
116
117
  }
117
118
  return icon;
118
119
  }
120
+ function accentSolidFill(themeName) {
121
+ if (!themeName) return null;
122
+ var themes = (0, import_tamagui.getConfig)().themes;
123
+ var parts = themeName.split("_");
124
+ for (var end = parts.length; end > 0; end--) {
125
+ var _theme_background;
126
+ var theme = themes[`${parts.slice(0, end).join("_")}_accent`];
127
+ if (!theme) continue;
128
+ var value = (_theme_background = theme.background) === null || _theme_background === void 0 ? void 0 : _theme_background.val;
129
+ for (var hop = 0; hop < 4 && typeof value === "string"; hop++) {
130
+ var _exec, _theme_ref;
131
+ var ref = (_exec = /^var\(--([^)]+)\)$/.exec(value)) === null || _exec === void 0 ? void 0 : _exec[1];
132
+ if (!ref) break;
133
+ value = (_theme_ref = theme[ref]) === null || _theme_ref === void 0 ? void 0 : _theme_ref.val;
134
+ }
135
+ return typeof value === "string" ? (0, import_theme3.normalizeToHex)(value) : null;
136
+ }
137
+ return null;
138
+ }
119
139
  function NativeButtonIcon(param) {
120
140
  var {
121
141
  icon,
@@ -268,22 +288,37 @@ function iconButtonGlyphPx(rowLinePx) {
268
288
  return Math.max(ICON_BUTTON_GLYPH_PX, Math.round(rowLinePx / PHOSPHOR_INK_RATIO));
269
289
  }
270
290
  var INLINE_GLYPH_RATIO = 1.2;
291
+ var GLYPH_BOLD_STROKE_UNITS = 8;
292
+ function boldStroke(weight) {
293
+ var color = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "currentColor";
294
+ return weight === "bold" ? {
295
+ stroke: color,
296
+ strokeWidth: GLYPH_BOLD_STROKE_UNITS,
297
+ strokeLinejoin: "round"
298
+ } : void 0;
299
+ }
271
300
  function withGlyphWeight(icon, size, weight) {
301
+ var floor = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
272
302
  if (icon == null || icon === false) return icon;
273
303
  if (/* @__PURE__ */(0, import_react.isValidElement)(icon)) {
304
+ var _icon_props_weight;
305
+ var resolved = (_icon_props_weight = icon.props.weight) !== null && _icon_props_weight !== void 0 ? _icon_props_weight : weight;
306
+ var own = icon.props.size;
274
307
  return /* @__PURE__ */(0, import_react.cloneElement)(icon, {
275
- ...(icon.props.size == null ? {
308
+ ...(own == null || floor && typeof own === "number" && own < size ? {
276
309
  size
277
310
  } : void 0),
278
311
  ...(icon.props.weight == null ? {
279
312
  weight
280
- } : void 0)
313
+ } : void 0),
314
+ ...boldStroke(resolved, icon.props.color)
281
315
  });
282
316
  }
283
317
  if (typeof icon === "function" || (typeof icon === "undefined" ? "undefined" : _type_of(icon)) === "object" && "$$typeof" in icon) {
284
318
  return /* @__PURE__ */(0, import_react.createElement)(icon, {
285
319
  size,
286
- weight
320
+ weight,
321
+ ...boldStroke(weight)
287
322
  });
288
323
  }
289
324
  return icon;
@@ -327,7 +362,7 @@ function Button(param) {
327
362
  paddingHorizontal: paddingHorizontalProp,
328
363
  ...props
329
364
  } = param;
330
- var _ref, _ref1, _ref2, _ref3, _props_color, _props_id;
365
+ var _ref, _ref1, _ref2, _ref3, _ref4, _props_color, _props_id;
331
366
  var _parentScopeTheme_outlineColor;
332
367
  var {
333
368
  resolvedForm: formFromHook
@@ -395,7 +430,7 @@ function Button(param) {
395
430
  var parentScopeTheme = (0, import_tamagui.useTheme)();
396
431
  var pageOutlineColor = (_parentScopeTheme_outlineColor = parentScopeTheme.outlineColor) === null || _parentScopeTheme_outlineColor === void 0 ? void 0 : _parentScopeTheme_outlineColor.val;
397
432
  var hostAccentInk = (0, import_theme3.useAccentOnSurface)();
398
- var hostIdentityInk = (0, import_theme3.useIdentityInkOnSurface)();
433
+ var glyphTint = (0, import_theme3.useGlyphTintOnSurface)();
399
434
  var grouped = (0, import_groupContext.useControlGrouped)();
400
435
  var labelled = verb != null || children != null && children !== false && children !== "";
401
436
  var iconOnly = !labelled && Boolean(icon || iconAfter);
@@ -414,7 +449,8 @@ function Button(param) {
414
449
  }
415
450
  var resolvedGlyphWeight = glyphWeight !== null && glyphWeight !== void 0 ? glyphWeight : iconOnly ? "bold" : "regular";
416
451
  var elevatedGround = (0, import_theme3.useElevatedSurface)();
417
- var darkScheme = (0, import_theme3.isDarkThemeName)((0, import_tamagui.useThemeName)());
452
+ var hostThemeName = (0, import_tamagui.useThemeName)();
453
+ var darkScheme = (0, import_theme3.isDarkThemeName)(hostThemeName);
418
454
  var resolvedSize = typeof sizeProp === "number" ? sizeProp : knobProps.sizeToken;
419
455
  var touch = (0, import_theme3.useTouchSurface)();
420
456
  var recipe = resolveButtonSizeRecipe(resolvedSize, recipeFamily, touch);
@@ -462,15 +498,15 @@ function Button(param) {
462
498
  (_e_currentTarget = e.currentTarget) === null || _e_currentTarget === void 0 ? void 0 : (_e_currentTarget_click = _e_currentTarget.click) === null || _e_currentTarget_click === void 0 ? void 0 : _e_currentTarget_click.call(_e_currentTarget);
463
499
  };
464
500
  var activeThemeName = theme !== null && theme !== void 0 ? theme : intent;
465
- var tier = activeThemeName || chromeless || grouped ? void 0 : barSurface ? "plain" : knobProps.outlined ? void 0 : "tinted";
501
+ var tier = activeThemeName || chromeless || grouped || mediaPlate ? void 0 : barSurface ? "plain" : knobProps.outlined ? void 0 : "tinted";
466
502
  var tierPaint = tier ? (0, import_theme3.controlTierPaint)(tier, darkScheme, elevatedGround) : void 0;
467
503
  var tierDisabled = tier && disabledState.style !== "dimWhole" ? (0, import_theme3.controlTierDisabled)(tier) : void 0;
468
504
  var hostScoped = function hostScoped2(fragment) {
469
505
  return Object.fromEntries(Object.entries(fragment).map(function (param2) {
470
506
  var [key, value] = param2;
471
- var _ref4;
507
+ var _ref5;
472
508
  var _parentScopeTheme_value_slice;
473
- return [key, typeof value === "string" && value.startsWith("$") ? (_ref4 = (_parentScopeTheme_value_slice = parentScopeTheme[value.slice(1)]) === null || _parentScopeTheme_value_slice === void 0 ? void 0 : _parentScopeTheme_value_slice.val) !== null && _ref4 !== void 0 ? _ref4 : value : value];
509
+ return [key, typeof value === "string" && value.startsWith("$") ? (_ref5 = (_parentScopeTheme_value_slice = parentScopeTheme[value.slice(1)]) === null || _parentScopeTheme_value_slice === void 0 ? void 0 : _parentScopeTheme_value_slice.val) !== null && _ref5 !== void 0 ? _ref5 : value : value];
474
510
  }));
475
511
  };
476
512
  var washOnHost = Boolean(unavailable && activeThemeName && import_theme3.solidPaletteThemes.has(activeThemeName));
@@ -525,7 +561,7 @@ function Button(param) {
525
561
  var ariaPressedProp = props["aria-pressed"];
526
562
  var isSelected = selected !== null && selected !== void 0 ? selected : ariaPressedProp === true || ariaPressedProp === "true" ? true : void 0;
527
563
  var selectedFill = Boolean(isSelected) && !unavailable && !mediaPlate;
528
- var barInk = accentInk && chromeless && !selectedFill && !unavailable ? hostIdentityInk : null;
564
+ var barInk = accentInk && chromeless && !selectedFill && !unavailable && !confirmPlate ? labelled ? glyphTint.label : glyphTint.glyph : null;
529
565
  var inlineGlyph = iconButton && inline === true && !nested;
530
566
  var barGlyph = (iconButton || mediaPlate || confirmPlate) && !nested || labelled && chromeless && accentInk === true && edge === "start";
531
567
  var labelLine = labelLinePx(knobProps.body.fontFamily);
@@ -533,12 +569,23 @@ function Button(param) {
533
569
  var glassGroup = groupGround === "glass";
534
570
  var GlassView = iconButton && !inlineGlyph && !nested && accentInk && barSurface && !selectedFill && !glassGroup ? (0, import_glass.loadGlassView)() : null;
535
571
  var framedCircle = iconOnly && Boolean(circular) && !nested && !mediaPlate && !confirmPlate;
572
+ var accentFillHex = confirmPlate ? accentSolidFill(hostThemeName) : null;
573
+ var confirmInk = accentFillHex && (0, import_theme3.contrastRatio)((0, import_theme3.relativeLuminance)("#ffffff"), (0, import_theme3.relativeLuminance)(accentFillHex)) >= import_theme3.GLYPH_CONTRAST_FLOOR ? "#ffffff" : "$color";
574
+ var plateInk = unavailable || barInk || outlinedInk ? void 0 : mediaPlate || iconButton && groupGround === "media" ? "$color12" : confirmPlate ? confirmInk : framedCircle && !activeThemeName ? hostScoped({
575
+ color: "$color12"
576
+ }).color : void 0;
536
577
  var framedCirclePx = touch && typeof sizeProp !== "number" ? Math.max(sizeTokenPx(resolvedSize), import_theme3.MIN_PRESS_TARGET) : sizeTokenPx(resolvedSize);
537
- var iconSize = nested ? Math.min(recipe.iconSize, Math.max(12, Math.round(knobProps.nestedControl.px * 0.45))) : framedCircle ? Math.round(framedCirclePx * import_circleGlyph.ICON_BUTTON_CIRCLE_GLYPH_RATIO) : inlineGlyph ? Math.round(recipe.fontSize * INLINE_GLYPH_RATIO) : barGlyph ? touch ? Math.max(glyphFloor, resolveButtonSizeRecipe("$6", recipeFamily, touch).iconSize) :
538
- // A pointer toolbar keeps its token box (LC-54); the glyph fills it
539
- // up to the same floor.
578
+ var iconSize = nested ? Math.min(recipe.iconSize, Math.max(12, Math.round(knobProps.nestedControl.px * 0.45))) : framedCircle ? Math.round(framedCirclePx * import_circleGlyph.ICON_BUTTON_CIRCLE_GLYPH_RATIO) : inlineGlyph ? Math.round(recipe.fontSize * INLINE_GLYPH_RATIO) : barGlyph ? touch ? Math.max(glyphFloor, resolveButtonSizeRecipe("$6", recipeFamily, touch).iconSize) : iconButton ?
579
+ // A bare glyph has no plate to inset from, so it takes its box
580
+ // less a 2pt optical margin, up to the row's glyph: the SHC
581
+ // "+" at $3 reaches the bar's glyph, a $2 copy beside mono
582
+ // text stays in proportion.
583
+ Math.max(recipe.iconSize, Math.min(glyphFloor, recipe.height - 4)) :
584
+ // A pointer toolbar keeps its token box (LC-54); the glyph fills
585
+ // it up to the same floor.
540
586
  Math.max(recipe.iconSize, Math.min(glyphFloor, recipe.height - 8)) : recipe.iconSize;
541
- var glyph = barGlyph || inlineGlyph || framedCircle ? withGlyphWeight(icon, iconSize, resolvedGlyphWeight) : icon;
587
+ var barGlyphFloor = barGlyph && !framedCircle && !inlineGlyph && !nested;
588
+ var glyph = barGlyph || inlineGlyph || framedCircle ? withGlyphWeight(icon, iconSize, resolvedGlyphWeight, barGlyphFloor) : icon;
542
589
  var labelBoxPx = nested ? knobProps.nestedControl.px : recipe.height;
543
590
  var labelMaxFontScale = Math.min((0, import_theme3.maxFontScaleToFit)(labelBoxPx, nested ? (0, import_tamagui.getFontSize)(knobProps.label.fontSize) : recipe.fontSize, import_theme3.dynamicTypeFit.controlLabelFill), labelLine === void 0 ? Number.POSITIVE_INFINITY : (0, import_theme3.maxFontScaleToFit)(labelBoxPx, labelLine, 1));
544
591
  var renderLabelText = function renderLabelText2(label, key) {
@@ -579,7 +626,7 @@ function Button(param) {
579
626
  var flattenedChildren = Array.isArray(resolvedChildren) ? import_react.Children.toArray(resolvedChildren) : null;
580
627
  var labelContent = isBareTextChild(resolvedChildren) ? renderLabelText(resolvedChildren) : (flattenedChildren === null || flattenedChildren === void 0 ? void 0 : flattenedChildren.some(isBareTextChild)) ? wrapBareTextChildren(flattenedChildren, renderLabelText) : resolvedChildren;
581
628
  var hasIcon = icon || iconAfter || loading;
582
- var nativeIconColor = (_ref1 = (_ref2 = (_ref3 = (_props_color = props.color) !== null && _props_color !== void 0 ? _props_color : unavailable ? disabledText.color : void 0) !== null && _ref3 !== void 0 ? _ref3 : barInk) !== null && _ref2 !== void 0 ? _ref2 : textColor ? outlinedOnHost ? hostScoped({
629
+ var nativeIconColor = (_ref1 = (_ref2 = (_ref3 = (_ref4 = (_props_color = props.color) !== null && _props_color !== void 0 ? _props_color : unavailable ? disabledText.color : void 0) !== null && _ref4 !== void 0 ? _ref4 : barInk) !== null && _ref3 !== void 0 ? _ref3 : plateInk) !== null && _ref2 !== void 0 ? _ref2 : textColor ? outlinedOnHost ? hostScoped({
583
630
  color: textColor
584
631
  }).color : textColor : outlinedInk) !== null && _ref1 !== void 0 ? _ref1 : "$color";
585
632
  var iconElement = loading ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
@@ -599,7 +646,7 @@ function Button(param) {
599
646
  color: nativeIconColor
600
647
  })
601
648
  }) : null;
602
- var glyphAfter = iconAfter && (barGlyph || inlineGlyph || framedCircle) ? withGlyphWeight(iconAfter, iconSize, resolvedGlyphWeight) : iconAfter;
649
+ var glyphAfter = iconAfter && (barGlyph || inlineGlyph || framedCircle) ? withGlyphWeight(iconAfter, iconSize, resolvedGlyphWeight, barGlyphFloor) : iconAfter;
603
650
  var iconAfterElement = glyphAfter ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_tamagui.View, {
604
651
  flexShrink: 0,
605
652
  children: import_tamagui.isWeb ? normalizeButtonIcon(glyphAfter, iconSize) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(NativeButtonIcon, {
@@ -661,6 +708,7 @@ function Button(param) {
661
708
  } : mediaPlate ? {
662
709
  backgroundColor: "$shadow5"
663
710
  } : void 0;
711
+ var glassInset = typeof resolvedBorderWidth === "number" ? -resolvedBorderWidth : 0;
664
712
  var glyphEdgePull = GlassView || glassGroup ? 0 : iconButton ? -Math.max(0, (visualPx - iconSize) / 2) : edgePull;
665
713
  var buttonElement = /* @__PURE__ */(0, import_jsx_runtime.jsxs)(ButtonFrame, {
666
714
  // DG-ST-03: an explained disable is aria-disabled (focusable, press
@@ -712,6 +760,13 @@ function Button(param) {
712
760
  ...(GlassView ? {
713
761
  borderRadius: 1e5
714
762
  } : void 0),
763
+ // On the web the absolute glass circle needs its button as the
764
+ // containing block and stacking context, or it fills the page and
765
+ // paints over the glyph.
766
+ ...(GlassView && import_tamagui.isWeb ? {
767
+ position: "relative",
768
+ zIndex: 0
769
+ } : void 0),
715
770
  ...(confirmPlate ? {
716
771
  borderRadius: 1e5
717
772
  } : void 0),
@@ -730,6 +785,9 @@ function Button(param) {
730
785
  ...(restFill ? {
731
786
  backgroundColor: restFill
732
787
  } : void 0),
788
+ ...(accentFillHex && !unavailable ? {
789
+ backgroundColor: accentFillHex
790
+ } : void 0),
733
791
  // Solid-intent sub-themes carry the on-fill foreground as `$color`
734
792
  // (LC-05); outlined frames sit on the page, so re-anchor inherited
735
793
  // text/icon color (currentColor) to the hue's readable text tier.
@@ -739,6 +797,9 @@ function Button(param) {
739
797
  ...(barInk ? {
740
798
  color: barInk
741
799
  } : void 0),
800
+ ...(plateInk ? {
801
+ color: plateInk
802
+ } : void 0),
742
803
  // LC-40 DISABLED-VISIBLE: keepLabel washes the chrome (muted fill/
743
804
  // border) while label/glyphs re-anchor to the lowest AA text tier
744
805
  // (`color` inherits into currentColor icons); dimWhole dims the
@@ -903,10 +964,10 @@ function Button(param) {
903
964
  pointerEvents: "none",
904
965
  style: {
905
966
  position: "absolute",
906
- top: 0,
907
- right: 0,
908
- bottom: 0,
909
- left: 0,
967
+ top: glassInset,
968
+ right: glassInset,
969
+ bottom: glassInset,
970
+ left: glassInset,
910
971
  borderRadius: visualPx / 2
911
972
  }
912
973
  }) : null, iconElement, labelContent, iconAfterElement]