@react-spectrum/s2 3.0.0-nightly-e7053dd8f-250108 → 3.0.0-nightly-e4497fdb6-250110

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 (227) hide show
  1. package/dist/Accordion.cjs +3 -3
  2. package/dist/Accordion.css +2 -2
  3. package/dist/Accordion.mjs +3 -3
  4. package/dist/ActionBar.cjs +32 -32
  5. package/dist/ActionBar.css +34 -34
  6. package/dist/ActionBar.mjs +32 -32
  7. package/dist/ActionButton.cjs +61 -61
  8. package/dist/ActionButton.css +57 -57
  9. package/dist/ActionButton.mjs +61 -61
  10. package/dist/ActionButtonGroup.cjs +4 -4
  11. package/dist/ActionButtonGroup.css +3 -3
  12. package/dist/ActionButtonGroup.mjs +4 -4
  13. package/dist/Avatar.cjs +10 -10
  14. package/dist/Avatar.css +11 -11
  15. package/dist/Avatar.mjs +10 -10
  16. package/dist/AvatarGroup.cjs +97 -97
  17. package/dist/AvatarGroup.css +31 -31
  18. package/dist/AvatarGroup.mjs +97 -97
  19. package/dist/Badge.cjs +31 -31
  20. package/dist/Badge.css +33 -33
  21. package/dist/Badge.mjs +31 -31
  22. package/dist/Breadcrumbs.cjs +83 -82
  23. package/dist/Breadcrumbs.cjs.map +1 -1
  24. package/dist/Breadcrumbs.css +66 -60
  25. package/dist/Breadcrumbs.css.map +1 -1
  26. package/dist/Breadcrumbs.mjs +83 -82
  27. package/dist/Breadcrumbs.mjs.map +1 -1
  28. package/dist/Button.cjs +179 -144
  29. package/dist/Button.cjs.map +1 -1
  30. package/dist/Button.css +167 -86
  31. package/dist/Button.css.map +1 -1
  32. package/dist/Button.mjs +180 -145
  33. package/dist/Button.mjs.map +1 -1
  34. package/dist/ButtonGroup.cjs +15 -15
  35. package/dist/ButtonGroup.css +11 -11
  36. package/dist/ButtonGroup.mjs +15 -15
  37. package/dist/Card.cjs +163 -163
  38. package/dist/Card.css +118 -118
  39. package/dist/Card.mjs +163 -163
  40. package/dist/CardView.cjs +13 -13
  41. package/dist/CardView.css +14 -14
  42. package/dist/CardView.mjs +13 -13
  43. package/dist/CenterBaseline.cjs +1 -1
  44. package/dist/CenterBaseline.css +2 -2
  45. package/dist/CenterBaseline.mjs +1 -1
  46. package/dist/Checkbox.cjs +46 -46
  47. package/dist/Checkbox.css +44 -44
  48. package/dist/Checkbox.mjs +46 -46
  49. package/dist/CheckboxGroup.cjs +39 -39
  50. package/dist/CheckboxGroup.css +32 -32
  51. package/dist/CheckboxGroup.mjs +39 -39
  52. package/dist/ClearButton.cjs +5 -5
  53. package/dist/ClearButton.css +5 -5
  54. package/dist/ClearButton.mjs +5 -5
  55. package/dist/CloseButton.cjs +17 -15
  56. package/dist/CloseButton.cjs.map +1 -1
  57. package/dist/CloseButton.css +24 -16
  58. package/dist/CloseButton.css.map +1 -1
  59. package/dist/CloseButton.mjs +17 -15
  60. package/dist/CloseButton.mjs.map +1 -1
  61. package/dist/ColorArea.cjs +9 -9
  62. package/dist/ColorArea.css +9 -9
  63. package/dist/ColorArea.mjs +9 -9
  64. package/dist/ColorField.cjs +29 -29
  65. package/dist/ColorField.css +24 -24
  66. package/dist/ColorField.mjs +29 -29
  67. package/dist/ColorHandle.cjs +9 -9
  68. package/dist/ColorHandle.css +16 -16
  69. package/dist/ColorHandle.mjs +9 -9
  70. package/dist/ColorSlider.cjs +40 -40
  71. package/dist/ColorSlider.css +42 -42
  72. package/dist/ColorSlider.mjs +40 -40
  73. package/dist/ColorSwatch.cjs +6 -6
  74. package/dist/ColorSwatch.css +14 -14
  75. package/dist/ColorSwatch.mjs +6 -6
  76. package/dist/ColorSwatchPicker.cjs +12 -12
  77. package/dist/ColorSwatchPicker.css +32 -32
  78. package/dist/ColorSwatchPicker.mjs +12 -12
  79. package/dist/ColorWheel.cjs +14 -14
  80. package/dist/ColorWheel.css +14 -14
  81. package/dist/ColorWheel.mjs +14 -14
  82. package/dist/ComboBox.cjs +54 -51
  83. package/dist/ComboBox.cjs.map +1 -1
  84. package/dist/ComboBox.css +48 -48
  85. package/dist/ComboBox.css.map +1 -1
  86. package/dist/ComboBox.mjs +54 -51
  87. package/dist/ComboBox.mjs.map +1 -1
  88. package/dist/ContextualHelp.cjs +5 -5
  89. package/dist/ContextualHelp.css +23 -23
  90. package/dist/ContextualHelp.mjs +5 -5
  91. package/dist/CustomDialog.cjs +8 -8
  92. package/dist/CustomDialog.css +9 -9
  93. package/dist/CustomDialog.mjs +8 -8
  94. package/dist/Dialog.cjs +10 -10
  95. package/dist/Dialog.css +39 -39
  96. package/dist/Dialog.mjs +10 -10
  97. package/dist/Disclosure.cjs +53 -53
  98. package/dist/Disclosure.css +48 -48
  99. package/dist/Disclosure.mjs +53 -53
  100. package/dist/Divider.cjs +5 -5
  101. package/dist/Divider.css +5 -5
  102. package/dist/Divider.mjs +5 -5
  103. package/dist/DropZone.cjs +24 -24
  104. package/dist/DropZone.css +24 -24
  105. package/dist/DropZone.mjs +24 -24
  106. package/dist/Field.cjs +107 -107
  107. package/dist/Field.cjs.map +1 -1
  108. package/dist/Field.css +69 -69
  109. package/dist/Field.mjs +107 -107
  110. package/dist/Field.mjs.map +1 -1
  111. package/dist/Form.cjs +4 -4
  112. package/dist/Form.css +3 -3
  113. package/dist/Form.mjs +4 -4
  114. package/dist/FullscreenDialog.cjs +5 -5
  115. package/dist/FullscreenDialog.css +54 -54
  116. package/dist/FullscreenDialog.mjs +5 -5
  117. package/dist/IllustratedMessage.cjs +126 -126
  118. package/dist/IllustratedMessage.css +58 -58
  119. package/dist/IllustratedMessage.mjs +126 -126
  120. package/dist/Image.cjs +10 -10
  121. package/dist/Image.css +11 -11
  122. package/dist/Image.mjs +10 -10
  123. package/dist/InlineAlert.cjs +50 -50
  124. package/dist/InlineAlert.css +44 -44
  125. package/dist/InlineAlert.mjs +50 -50
  126. package/dist/Link.cjs +27 -27
  127. package/dist/Link.css +28 -28
  128. package/dist/Link.mjs +27 -27
  129. package/dist/Menu.cjs +292 -221
  130. package/dist/Menu.cjs.map +1 -1
  131. package/dist/Menu.css +115 -113
  132. package/dist/Menu.css.map +1 -1
  133. package/dist/Menu.mjs +292 -221
  134. package/dist/Menu.mjs.map +1 -1
  135. package/dist/Meter.cjs +51 -51
  136. package/dist/Meter.css +51 -51
  137. package/dist/Meter.mjs +51 -51
  138. package/dist/Modal.cjs +37 -37
  139. package/dist/Modal.css +35 -35
  140. package/dist/Modal.mjs +37 -37
  141. package/dist/NumberField.cjs +60 -60
  142. package/dist/NumberField.css +66 -66
  143. package/dist/NumberField.mjs +60 -60
  144. package/dist/Picker.cjs +117 -114
  145. package/dist/Picker.cjs.map +1 -1
  146. package/dist/Picker.css +80 -80
  147. package/dist/Picker.css.map +1 -1
  148. package/dist/Picker.mjs +117 -114
  149. package/dist/Picker.mjs.map +1 -1
  150. package/dist/Popover.cjs +40 -40
  151. package/dist/Popover.css +37 -37
  152. package/dist/Popover.mjs +40 -40
  153. package/dist/ProgressBar.cjs +63 -63
  154. package/dist/ProgressBar.css +61 -61
  155. package/dist/ProgressBar.mjs +63 -63
  156. package/dist/ProgressCircle.cjs +3 -3
  157. package/dist/ProgressCircle.css +2 -2
  158. package/dist/ProgressCircle.mjs +3 -3
  159. package/dist/Provider.cjs +4 -4
  160. package/dist/Provider.css +5 -5
  161. package/dist/Provider.mjs +4 -4
  162. package/dist/Radio.cjs +46 -46
  163. package/dist/Radio.css +44 -44
  164. package/dist/Radio.mjs +46 -46
  165. package/dist/RadioGroup.cjs +37 -37
  166. package/dist/RadioGroup.css +32 -32
  167. package/dist/RadioGroup.mjs +37 -37
  168. package/dist/SearchField.cjs +31 -31
  169. package/dist/SearchField.css +29 -29
  170. package/dist/SearchField.mjs +31 -31
  171. package/dist/SegmentedControl.cjs +54 -54
  172. package/dist/SegmentedControl.css +55 -55
  173. package/dist/SegmentedControl.mjs +54 -54
  174. package/dist/Slider.cjs +101 -101
  175. package/dist/Slider.css +82 -82
  176. package/dist/Slider.mjs +101 -101
  177. package/dist/StatusLight.cjs +26 -26
  178. package/dist/StatusLight.css +26 -26
  179. package/dist/StatusLight.mjs +26 -26
  180. package/dist/Switch.cjs +47 -47
  181. package/dist/Switch.css +42 -42
  182. package/dist/Switch.mjs +47 -47
  183. package/dist/TableView.cjs +137 -137
  184. package/dist/TableView.css +76 -76
  185. package/dist/TableView.mjs +137 -137
  186. package/dist/Tabs.cjs +60 -60
  187. package/dist/Tabs.css +53 -53
  188. package/dist/Tabs.mjs +60 -60
  189. package/dist/TabsPicker.cjs +69 -69
  190. package/dist/TabsPicker.css +62 -62
  191. package/dist/TabsPicker.mjs +69 -69
  192. package/dist/TagGroup.cjs +108 -108
  193. package/dist/TagGroup.css +85 -85
  194. package/dist/TagGroup.mjs +108 -108
  195. package/dist/TextField.cjs +36 -36
  196. package/dist/TextField.css +33 -33
  197. package/dist/TextField.mjs +36 -36
  198. package/dist/ToggleButton.cjs +3 -3
  199. package/dist/ToggleButton.css +7 -7
  200. package/dist/ToggleButton.mjs +3 -3
  201. package/dist/Tooltip.cjs +32 -32
  202. package/dist/Tooltip.css +34 -34
  203. package/dist/Tooltip.mjs +32 -32
  204. package/dist/types.d.ts +2 -0
  205. package/dist/types.d.ts.map +1 -1
  206. package/icons/Skeleton.cjs +2 -2
  207. package/icons/Skeleton.css +5 -5
  208. package/icons/Skeleton.mjs +2 -2
  209. package/package.json +19 -19
  210. package/src/Button.tsx +107 -75
  211. package/src/CloseButton.tsx +4 -0
  212. package/src/ComboBox.tsx +2 -1
  213. package/src/Menu.tsx +40 -17
  214. package/src/Picker.tsx +2 -1
  215. package/style/dist/spectrum-theme.cjs +54 -5
  216. package/style/dist/spectrum-theme.cjs.map +1 -1
  217. package/style/dist/spectrum-theme.mjs +54 -5
  218. package/style/dist/spectrum-theme.mjs.map +1 -1
  219. package/style/dist/style-macro.cjs +1 -1
  220. package/style/dist/style-macro.cjs.map +1 -1
  221. package/style/dist/style-macro.mjs +1 -1
  222. package/style/dist/style-macro.mjs.map +1 -1
  223. package/style/dist/types.d.ts +10 -3
  224. package/style/dist/types.d.ts.map +1 -1
  225. package/style/spectrum-theme.ts +66 -7
  226. package/style/style-macro.ts +3 -3
  227. package/style/types.ts +1 -1
package/dist/Menu.mjs.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Menu.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Menu as AriaMenu,\n MenuItem as AriaMenuItem,\n MenuItemProps as AriaMenuItemProps,\n MenuProps as AriaMenuProps,\n MenuSection as AriaMenuSection,\n MenuSectionProps as AriaMenuSectionProps,\n MenuTrigger as AriaMenuTrigger,\n MenuTriggerProps as AriaMenuTriggerProps,\n SubmenuTrigger as AriaSubmenuTrigger,\n SubmenuTriggerProps as AriaSubmenuTriggerProps,\n ContextValue,\n Provider,\n Separator,\n SeparatorProps\n} from 'react-aria-components';\nimport {baseColor, edgeToText, focusRing, fontRelative, size, space, style} from '../style' with {type: 'macro'};\nimport {box, iconStyles} from './Checkbox';\nimport {centerBaseline} from './CenterBaseline';\nimport {centerPadding, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport CheckmarkIcon from '../ui-icons/Checkmark';\nimport ChevronRightIcon from '../ui-icons/Chevron';\nimport {createContext, forwardRef, JSX, ReactNode, useContext, useRef, useState} from 'react';\nimport {divider} from './Divider';\nimport {DOMRef, DOMRefValue, PressEvent} from '@react-types/shared';\nimport {forwardRefType} from './types';\nimport {HeaderContext, HeadingContext, KeyboardContext, Text, TextContext} from './Content';\nimport {IconContext} from './Icon'; // chevron right removed??\nimport {ImageContext} from './Image';\nimport LinkOutIcon from '../ui-icons/LinkOut';\nimport {mergeStyles} from '../style/runtime';\nimport {Placement, useLocale} from 'react-aria';\nimport {PopoverBase} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport {pressScale} from './pressScale';\nimport {useGlobalListeners} from '@react-aria/utils';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n// viewbox on LinkOut is super weird just because i copied the icon from designs...\n// need to strip id's from icons\n\nexport interface MenuTriggerProps extends AriaMenuTriggerProps {\n /**\n * Alignment of the menu relative to the trigger.\n *\n * @default 'start'\n */\n align?: 'start' | 'end',\n /**\n * Where the Menu opens relative to its trigger.\n *\n * @default 'bottom'\n */\n direction?: 'bottom' | 'top' | 'left' | 'right' | 'start' | 'end',\n /**\n * Whether the menu should automatically flip direction when space is limited.\n *\n * @default true\n */\n shouldFlip?: boolean\n}\n\nexport interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'dependencies'>, StyleProps {\n /**\n * The size of the Menu.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL',\n /**\n * The contents of the collection.\n */\n children?: ReactNode | ((item: T) => ReactNode)\n}\n\nexport const MenuContext = createContext<ContextValue<MenuProps<any>, DOMRefValue<HTMLDivElement>>>(null);\n\nexport let menu = style({\n outlineStyle: 'none',\n display: 'grid',\n gridTemplateColumns: {\n size: {\n S: [edgeToText(24), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(24)],\n M: [edgeToText(32), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(32)],\n L: [edgeToText(40), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(40)],\n XL: [edgeToText(48), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(48)]\n }\n },\n boxSizing: 'border-box',\n maxHeight: '[inherit]',\n overflow: {\n isPopover: 'auto'\n },\n maxWidth: {\n isPopover: 320\n },\n padding: {\n isPopover: 8\n },\n fontFamily: 'sans',\n fontSize: 'control'\n}, getAllowedOverrides());\n\nexport let section = style({\n gridColumnStart: 1,\n gridColumnEnd: -1,\n alignItems: 'center',\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: 'subgrid'\n});\n\nexport let sectionHeader = style<{size?: 'S' | 'M' | 'L' | 'XL'}>({\n color: 'neutral',\n gridColumnStart: 2,\n gridColumnEnd: -2,\n boxSizing: 'border-box',\n minHeight: 'control',\n paddingY: centerPadding()\n});\n\nexport let sectionHeading = style({\n font: 'ui',\n fontWeight: 'bold',\n margin: 0\n});\n\nexport let menuitem = style({\n ...focusRing(),\n boxSizing: 'border-box',\n borderRadius: 'control',\n font: 'control',\n '--labelPadding': {\n type: 'paddingTop',\n value: centerPadding()\n },\n paddingBottom: '--labelPadding',\n backgroundColor: { // TODO: revisit color when I have access to dev mode again\n default: {\n default: 'transparent',\n isFocused: baseColor('gray-100').isFocusVisible\n }\n },\n color: {\n default: 'neutral',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n position: 'relative',\n // each menu item should take up the entire width, the subgrid will handle within the item\n gridColumnStart: 1,\n gridColumnEnd: -1,\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: 'subgrid',\n gridTemplateRows: {\n // min-content prevents second row from 'auto'ing to a size larger then 0 when empty\n default: 'auto minmax(0, min-content)',\n ':has([slot=description])': 'auto auto'\n },\n rowGap: {\n ':has([slot=description])': space(1)\n },\n alignItems: 'baseline',\n minHeight: 'control',\n textDecoration: 'none',\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n transition: 'default'\n}, getAllowedOverrides());\n\nexport let checkmark = style({\n visibility: {\n default: 'hidden',\n isSelected: 'visible'\n },\n gridArea: 'checkmark',\n color: 'accent',\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'currentColor',\n forcedColors: 'Highlight'\n }\n },\n marginEnd: 'text-to-control',\n aspectRatio: 'square'\n});\n\nlet checkbox = style({\n gridArea: 'checkmark',\n marginEnd: 'text-to-control'\n});\n\nexport let icon = style({\n display: 'block',\n size: fontRelative(20),\n // too small default icon size is wrong, it's like the icons are 1 tshirt size bigger than the rest of the component? check again after typography changes\n // reminder, size of WF is applied via font size\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nexport let iconCenterWrapper = style({\n display: 'flex',\n gridArea: 'icon'\n});\n\nlet image = style({\n gridArea: 'icon',\n gridRowEnd: 'span 2',\n marginEnd: 'text-to-visual',\n marginTop: fontRelative(6), // made up, need feedback\n alignSelf: 'center',\n borderRadius: 'sm',\n size: {\n default: 40,\n size: {\n S: 32,\n M: 40,\n L: 44,\n XL: 48 // TODO: feedback, Why is it 50x50, that's on 12.25 so doesn't fit the grid at all\n }\n },\n aspectRatio: 'square',\n objectFit: 'contain'\n});\n\nexport let label = style<{size: string}>({\n gridArea: 'label',\n font: 'control',\n color: '[inherit]',\n fontWeight: 'medium',\n // TODO: token values for padding not defined yet, revisit\n marginTop: '--labelPadding'\n});\n\nexport let description = style({\n gridArea: 'description',\n font: {\n default: 'ui-sm',\n size: {\n S: 'ui-xs',\n M: 'ui-sm',\n L: 'ui',\n XL: 'ui-lg'\n }\n },\n color: {\n default: 'neutral-subdued',\n // Ideally this would use the same token as hover, but we don't have access to that here.\n // TODO: should we always consider isHovered and isFocused to be the same thing?\n isFocused: 'gray-800',\n isDisabled: 'disabled'\n },\n transition: 'default'\n});\n\nlet value = style({\n gridArea: 'value',\n marginStart: 8\n});\n\nlet keyboard = style({\n gridArea: 'keyboard',\n marginStart: 8,\n font: 'ui',\n fontWeight: 'light',\n color: {\n default: 'gray-600',\n isDisabled: 'disabled',\n forcedColors: {\n isDisabled: 'GrayText'\n }\n },\n background: 'gray-25',\n unicodeBidi: 'plaintext'\n});\n\nlet descriptor = style({\n gridArea: 'descriptor',\n marginStart: 8,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nlet InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu: boolean}>({size: 'M', isSubmenu: false});\nlet InternalMenuTriggerContext = createContext<Omit<MenuTriggerProps, 'children'> | null>(null);\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\nexport const Menu = /*#__PURE__*/ (forwardRef as forwardRefType)(function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, MenuContext);\n let {isSubmenu, size: ctxSize} = useContext(InternalMenuContext);\n let {\n children,\n size = ctxSize,\n UNSAFE_style,\n UNSAFE_className,\n styles\n } = props;\n let ctx = useContext(InternalMenuTriggerContext);\n let {align = 'start', direction = 'bottom', shouldFlip} = ctx ?? {};\n\n // TODO: change offset/crossoffset based on size? scale?\n // actual values?\n let initialPlacement: Placement;\n switch (direction) {\n case 'left':\n case 'right':\n case 'start':\n case 'end':\n initialPlacement = `${direction} ${align === 'end' ? 'bottom' : 'top'}` as Placement;\n break;\n case 'bottom':\n case 'top':\n default:\n initialPlacement = `${direction} ${align}` as Placement;\n }\n if (isSubmenu) {\n initialPlacement = 'end top' as Placement;\n }\n\n let content = (\n <InternalMenuContext.Provider value={{size, isSubmenu: true}}>\n <Provider\n values={[\n [HeaderContext, {styles: sectionHeader({size})}],\n [HeadingContext, {styles: sectionHeading}],\n [TextContext, {\n slots: {\n 'description': {styles: description({size})}\n }\n }]\n ]}>\n <AriaMenu\n {...props}\n className={menu({size, isPopover: !!ctx || isSubmenu}, ctx ? null : styles)}>\n {children}\n </AriaMenu>\n </Provider>\n </InternalMenuContext.Provider>\n );\n\n if (ctx || isSubmenu) {\n return (\n <PopoverBase\n ref={ref}\n hideArrow\n placement={initialPlacement}\n shouldFlip={shouldFlip}\n // For submenus, the offset from the edge of the popover should be 10px.\n // Subtract 8px for the padding around the parent menu.\n offset={isSubmenu ? -2 : 8}\n // Offset by padding + border so that the first item in a submenu lines up with the parent menu item.\n crossOffset={isSubmenu ? -9 : 0}\n UNSAFE_style={UNSAFE_style}\n UNSAFE_className={UNSAFE_className}\n styles={styles}>\n {content}\n </PopoverBase>\n );\n }\n\n return content;\n});\n\nexport function Divider(props: SeparatorProps) {\n return (\n <Separator\n {...props}\n className={mergeStyles(\n divider({\n size: 'M',\n orientation: 'horizontal',\n isStaticColor: false\n }), style({\n display: {\n default: 'grid',\n ':last-child': 'none'\n },\n gridColumnStart: 2,\n gridColumnEnd: -2,\n marginY: size(5) // height of the menu separator is 12px, and the divider is 2px\n })\n )} />\n );\n}\n\nexport interface MenuSectionProps<T extends object> extends AriaMenuSectionProps<T> {}\nexport function MenuSection<T extends object>(props: MenuSectionProps<T>) {\n // remember, context doesn't work if it's around Section nor inside\n return (\n <>\n <AriaMenuSection\n {...props}\n className={section}>\n {props.children}\n </AriaMenuSection>\n <Divider />\n </>\n );\n}\n\nexport interface MenuItemProps extends Omit<AriaMenuItemProps, 'children' | 'style' | 'className'>, StyleProps {\n /**\n * The contents of the item.\n */\n children: ReactNode\n}\n\nconst checkmarkIconSize = {\n S: 'XS',\n M: 'M',\n L: 'L',\n XL: 'XL'\n} as const;\n\nconst linkIconSize = {\n S: 'M',\n M: 'L',\n L: 'XL',\n XL: 'XL'\n} as const;\n\nexport function MenuItem(props: MenuItemProps) {\n let ref = useRef(null);\n let isLink = props.href != null;\n let isLinkOut = isLink && props.target === '_blank';\n let {size} = useContext(InternalMenuContext);\n let textValue = props.textValue || (typeof props.children === 'string' ? props.children : undefined);\n let {direction} = useLocale();\n return (\n <AriaMenuItem\n {...props}\n textValue={textValue}\n ref={ref}\n style={pressScale(ref, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + menuitem({...renderProps, isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused, size, isLink}, props.styles)}>\n {(renderProps) => {\n let {children} = props;\n let checkboxRenderProps = {...renderProps, size, isFocused: false, isFocusVisible: false, isIndeterminate: false, isReadOnly: false, isInvalid: false, isRequired: false};\n return (\n <>\n <Provider\n values={[\n [IconContext, {\n slots: {\n icon: {render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}), styles: icon},\n descriptor: {render: centerBaseline({slot: 'descriptor', styles: descriptor})} // TODO: remove once we have default?\n }\n }],\n [TextContext, {\n slots: {\n label: {styles: label({size})},\n description: {styles: description({...renderProps, size})},\n value: {styles: value}\n }\n }],\n [KeyboardContext, {styles: keyboard({size, isDisabled: renderProps.isDisabled})}],\n [ImageContext, {styles: image({size})}]\n ]}>\n {renderProps.selectionMode === 'single' && !renderProps.hasSubmenu && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}\n {renderProps.selectionMode === 'multiple' && !renderProps.hasSubmenu && (\n <div className={mergeStyles(checkbox, box(checkboxRenderProps))}>\n <CheckmarkIcon size={size} className={iconStyles} />\n </div>\n )}\n {typeof children === 'string' ? <Text slot=\"label\">{children}</Text> : children}\n {isLinkOut && <LinkOutIcon size={linkIconSize[size]} className={descriptor} />}\n {renderProps.hasSubmenu && (\n <div slot=\"descriptor\" className={descriptor}>\n <ChevronRightIcon\n size={size}\n className={style({\n scale: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </div>\n )}\n </Provider>\n </>\n );\n }}\n </AriaMenuItem>\n );\n}\n\n/**\n * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,\n * linking the Menu's open state with the trigger's press state.\n */\nfunction MenuTrigger(props: MenuTriggerProps) {\n // RAC sets isPressed via PressResponder when the menu is open.\n // We don't want press scaling to appear to get \"stuck\", so override this.\n // For mouse interactions, menus open on press start. When the popover underlay appears\n // it covers the trigger button, causing onPressEnd to fire immediately and no press scaling\n // to occur. We override this by listening for pointerup on the document ourselves.\n let [isPressed, setPressed] = useState(false);\n let {addGlobalListener} = useGlobalListeners();\n let onPressStart = (e: PressEvent) => {\n if (e.pointerType !== 'mouse') {\n return;\n }\n setPressed(true);\n addGlobalListener(document, 'pointerup', () => {\n setPressed(false);\n }, {once: true, capture: true});\n };\n\n return (\n <InternalMenuTriggerContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip\n }}>\n <AriaMenuTrigger {...props}>\n <PressResponder onPressStart={onPressStart} isPressed={isPressed}>\n {props.children}\n </PressResponder>\n </AriaMenuTrigger>\n </InternalMenuTriggerContext.Provider>\n );\n}\n\nexport interface SubmenuTriggerProps extends Omit<AriaSubmenuTriggerProps, 'delay'> {}\n\nconst SubmenuTrigger = AriaSubmenuTrigger as (props: SubmenuTriggerProps) => JSX.Element | null;\n\nexport {MenuTrigger, SubmenuTrigger};\n\n// This is purely so that storybook generates the types for both Menu and MenuTrigger\ninterface ICombined<T extends object> extends MenuProps<T>, Omit<MenuTriggerProps, 'children'> {}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function CombinedMenu<T extends object>(props: ICombined<T>) {\n return <div />;\n}\n"],"names":[],"version":3,"file":"Menu.mjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Menu.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Menu as AriaMenu,\n MenuItem as AriaMenuItem,\n MenuItemProps as AriaMenuItemProps,\n MenuProps as AriaMenuProps,\n MenuSection as AriaMenuSection,\n MenuSectionProps as AriaMenuSectionProps,\n MenuTrigger as AriaMenuTrigger,\n MenuTriggerProps as AriaMenuTriggerProps,\n SubmenuTrigger as AriaSubmenuTrigger,\n SubmenuTriggerProps as AriaSubmenuTriggerProps,\n ContextValue,\n Provider,\n Separator,\n SeparatorProps\n} from 'react-aria-components';\nimport {baseColor, edgeToText, focusRing, fontRelative, size, space, style} from '../style' with {type: 'macro'};\nimport {box, iconStyles} from './Checkbox';\nimport {centerBaseline} from './CenterBaseline';\nimport {centerPadding, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport CheckmarkIcon from '../ui-icons/Checkmark';\nimport ChevronRightIcon from '../ui-icons/Chevron';\nimport {createContext, forwardRef, JSX, ReactNode, useContext, useRef, useState} from 'react';\nimport {divider} from './Divider';\nimport {DOMRef, DOMRefValue, PressEvent} from '@react-types/shared';\nimport {forwardRefType} from './types';\nimport {HeaderContext, HeadingContext, KeyboardContext, Text, TextContext} from './Content';\nimport {IconContext} from './Icon'; // chevron right removed??\nimport {ImageContext} from './Image';\nimport LinkOutIcon from '../ui-icons/LinkOut';\nimport {mergeStyles} from '../style/runtime';\nimport {Placement, useLocale} from 'react-aria';\nimport {PopoverBase} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport {pressScale} from './pressScale';\nimport {useGlobalListeners} from '@react-aria/utils';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n// viewbox on LinkOut is super weird just because i copied the icon from designs...\n// need to strip id's from icons\n\nexport interface MenuTriggerProps extends AriaMenuTriggerProps {\n /**\n * Alignment of the menu relative to the trigger.\n *\n * @default 'start'\n */\n align?: 'start' | 'end',\n /**\n * Where the Menu opens relative to its trigger.\n *\n * @default 'bottom'\n */\n direction?: 'bottom' | 'top' | 'left' | 'right' | 'start' | 'end',\n /**\n * Whether the menu should automatically flip direction when space is limited.\n *\n * @default true\n */\n shouldFlip?: boolean\n}\n\nexport interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'dependencies'>, StyleProps {\n /**\n * The size of the Menu.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL',\n /**\n * The contents of the collection.\n */\n children?: ReactNode | ((item: T) => ReactNode),\n /** Hides the default link out icons on menu items that open links in a new tab. */\n hideLinkOutIcon?: boolean\n}\n\nexport const MenuContext = createContext<ContextValue<MenuProps<any>, DOMRefValue<HTMLDivElement>>>(null);\n\nconst menuItemGrid = {\n size: {\n S: [edgeToText(24), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(24)],\n M: [edgeToText(32), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(32)],\n L: [edgeToText(40), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(40)],\n XL: [edgeToText(48), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(48)]\n }\n} as const;\n\nexport let menu = style({\n outlineStyle: 'none',\n display: 'grid',\n gridTemplateColumns: menuItemGrid,\n boxSizing: 'border-box',\n maxHeight: '[inherit]',\n overflow: {\n isPopover: 'auto'\n },\n maxWidth: {\n isPopover: 320\n },\n padding: {\n isPopover: 8\n },\n fontFamily: 'sans',\n fontSize: 'control'\n}, getAllowedOverrides());\n\nexport let section = style({\n gridColumnStart: 1,\n gridColumnEnd: -1,\n alignItems: 'center',\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: menuItemGrid\n});\n\nexport let sectionHeader = style<{size?: 'S' | 'M' | 'L' | 'XL'}>({\n color: 'neutral',\n gridColumnStart: 2,\n gridColumnEnd: -2,\n boxSizing: 'border-box',\n minHeight: 'control',\n paddingY: centerPadding()\n});\n\nexport let sectionHeading = style({\n font: 'ui',\n fontWeight: 'bold',\n margin: 0\n});\n\nexport let menuitem = style({\n ...focusRing(),\n boxSizing: 'border-box',\n borderRadius: 'control',\n font: 'control',\n '--labelPadding': {\n type: 'paddingTop',\n value: centerPadding()\n },\n paddingBottom: '--labelPadding',\n backgroundColor: { // TODO: revisit color when I have access to dev mode again\n default: {\n default: 'transparent',\n isFocused: baseColor('gray-100').isFocusVisible\n }\n },\n color: {\n default: 'neutral',\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n position: 'relative',\n // each menu item should take up the entire width, the subgrid will handle within the item\n gridColumnStart: 1,\n gridColumnEnd: -1,\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: 'subgrid',\n gridTemplateRows: {\n // min-content prevents second row from 'auto'ing to a size larger then 0 when empty\n default: 'auto minmax(0, min-content)',\n ':has([slot=description])': 'auto auto'\n },\n rowGap: {\n ':has([slot=description])': space(1)\n },\n alignItems: 'baseline',\n minHeight: 'control',\n textDecoration: 'none',\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n transition: 'default'\n}, getAllowedOverrides());\n\nexport let checkmark = style({\n visibility: {\n default: 'hidden',\n isSelected: 'visible'\n },\n gridArea: 'checkmark',\n color: 'accent',\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'currentColor',\n forcedColors: 'Highlight'\n }\n },\n marginEnd: 'text-to-control',\n aspectRatio: 'square'\n});\n\nlet checkbox = style({\n gridArea: 'checkmark',\n marginEnd: 'text-to-control'\n});\n\nexport let icon = style({\n display: 'block',\n size: fontRelative(20),\n // too small default icon size is wrong, it's like the icons are 1 tshirt size bigger than the rest of the component? check again after typography changes\n // reminder, size of WF is applied via font size\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nexport let iconCenterWrapper = style({\n display: 'flex',\n gridArea: 'icon'\n});\n\nlet image = style({\n gridArea: 'icon',\n gridRowEnd: 'span 2',\n marginEnd: 'text-to-visual',\n marginTop: fontRelative(6), // made up, need feedback\n alignSelf: 'center',\n borderRadius: 'sm',\n size: {\n default: 40,\n size: {\n S: 32,\n M: 40,\n L: 44,\n XL: 48 // TODO: feedback, Why is it 50x50, that's on 12.25 so doesn't fit the grid at all\n }\n },\n aspectRatio: 'square',\n objectFit: 'contain'\n});\n\nexport let label = style<{size: string}>({\n gridArea: 'label',\n font: 'control',\n color: '[inherit]',\n fontWeight: 'medium',\n // TODO: token values for padding not defined yet, revisit\n marginTop: '--labelPadding'\n});\n\nexport let description = style({\n gridArea: 'description',\n font: {\n default: 'ui-sm',\n size: {\n S: 'ui-xs',\n M: 'ui-sm',\n L: 'ui',\n XL: 'ui-lg'\n }\n },\n color: {\n default: 'neutral-subdued',\n // Ideally this would use the same token as hover, but we don't have access to that here.\n // TODO: should we always consider isHovered and isFocused to be the same thing?\n isFocused: 'gray-800',\n isDisabled: 'disabled'\n },\n transition: 'default'\n});\n\nlet value = style({\n gridArea: 'value',\n marginStart: 8\n});\n\nlet keyboard = style({\n gridArea: 'keyboard',\n marginStart: 8,\n font: 'ui',\n fontWeight: 'light',\n color: {\n default: 'gray-600',\n isDisabled: 'disabled',\n forcedColors: {\n isDisabled: 'GrayText'\n }\n },\n background: 'gray-25',\n unicodeBidi: 'plaintext'\n});\n\nlet descriptor = style({\n gridArea: 'descriptor',\n marginStart: 8,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nlet InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu: boolean, hideLinkOutIcon: boolean}>({\n size: 'M',\n isSubmenu: false,\n hideLinkOutIcon: false\n});\n\nlet InternalMenuTriggerContext = createContext<Omit<MenuTriggerProps, 'children'> | null>(null);\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\nexport const Menu = /*#__PURE__*/ (forwardRef as forwardRefType)(function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, MenuContext);\n let {isSubmenu, size: ctxSize} = useContext(InternalMenuContext);\n let {\n children,\n size = ctxSize,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n hideLinkOutIcon = false\n } = props;\n let ctx = useContext(InternalMenuTriggerContext);\n let {align = 'start', direction = 'bottom', shouldFlip} = ctx ?? {};\n\n // TODO: change offset/crossoffset based on size? scale?\n // actual values?\n let initialPlacement: Placement;\n switch (direction) {\n case 'left':\n case 'right':\n case 'start':\n case 'end':\n initialPlacement = `${direction} ${align === 'end' ? 'bottom' : 'top'}` as Placement;\n break;\n case 'bottom':\n case 'top':\n default:\n initialPlacement = `${direction} ${align}` as Placement;\n }\n if (isSubmenu) {\n initialPlacement = 'end top' as Placement;\n }\n\n let content = (\n <InternalMenuContext.Provider value={{size, isSubmenu: true, hideLinkOutIcon}}>\n <Provider\n values={[\n [HeaderContext, {styles: sectionHeader({size})}],\n [HeadingContext, {styles: sectionHeading}],\n [TextContext, {\n slots: {\n 'description': {styles: description({size})}\n }\n }]\n ]}>\n <AriaMenu\n {...props}\n className={menu({size, isPopover: !!ctx || isSubmenu}, ctx ? null : styles)}>\n {children}\n </AriaMenu>\n </Provider>\n </InternalMenuContext.Provider>\n );\n\n if (ctx || isSubmenu) {\n return (\n <PopoverBase\n ref={ref}\n hideArrow\n placement={initialPlacement}\n shouldFlip={shouldFlip}\n // For submenus, the offset from the edge of the popover should be 10px.\n // Subtract 8px for the padding around the parent menu.\n offset={isSubmenu ? -2 : 8}\n // Offset by padding + border so that the first item in a submenu lines up with the parent menu item.\n crossOffset={isSubmenu ? -9 : 0}\n UNSAFE_style={UNSAFE_style}\n UNSAFE_className={UNSAFE_className}\n styles={styles}>\n {content}\n </PopoverBase>\n );\n }\n\n return content;\n});\n\nexport function Divider(props: SeparatorProps) {\n return (\n <Separator\n {...props}\n className={mergeStyles(\n divider({\n size: 'M',\n orientation: 'horizontal',\n isStaticColor: false\n }), style({\n display: {\n default: 'grid',\n ':last-child': 'none'\n },\n gridColumnStart: 2,\n gridColumnEnd: -2,\n marginY: size(5) // height of the menu separator is 12px, and the divider is 2px\n })\n )} />\n );\n}\n\nexport interface MenuSectionProps<T extends object> extends AriaMenuSectionProps<T> {}\nexport function MenuSection<T extends object>(props: MenuSectionProps<T>) {\n // remember, context doesn't work if it's around Section nor inside\n let {size} = useContext(InternalMenuContext);\n return (\n <>\n <AriaMenuSection\n {...props}\n className={section({size})}>\n {props.children}\n </AriaMenuSection>\n <Divider />\n </>\n );\n}\n\nexport interface MenuItemProps extends Omit<AriaMenuItemProps, 'children' | 'style' | 'className'>, StyleProps {\n /**\n * The contents of the item.\n */\n children: ReactNode\n}\n\nconst checkmarkIconSize = {\n S: 'XS',\n M: 'M',\n L: 'L',\n XL: 'XL'\n} as const;\n\nconst linkIconSize = {\n S: 'M',\n M: 'L',\n L: 'XL',\n XL: 'XL'\n} as const;\n\nexport function MenuItem(props: MenuItemProps) {\n let ref = useRef(null);\n let isLink = props.href != null;\n let isLinkOut = isLink && props.target === '_blank';\n let {size, hideLinkOutIcon} = useContext(InternalMenuContext);\n let textValue = props.textValue || (typeof props.children === 'string' ? props.children : undefined);\n let {direction} = useLocale();\n return (\n <AriaMenuItem\n {...props}\n textValue={textValue}\n ref={ref}\n style={pressScale(ref, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + menuitem({...renderProps, isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused, size, isLink}, props.styles)}>\n {(renderProps) => {\n let {children} = props;\n let checkboxRenderProps = {...renderProps, size, isFocused: false, isFocusVisible: false, isIndeterminate: false, isReadOnly: false, isInvalid: false, isRequired: false};\n return (\n <>\n <Provider\n values={[\n [IconContext, {\n slots: {\n icon: {render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}), styles: icon},\n descriptor: {render: centerBaseline({slot: 'descriptor', styles: descriptor})} // TODO: remove once we have default?\n }\n }],\n [TextContext, {\n slots: {\n label: {styles: label({size})},\n description: {styles: description({...renderProps, size})},\n value: {styles: value}\n }\n }],\n [KeyboardContext, {styles: keyboard({size, isDisabled: renderProps.isDisabled})}],\n [ImageContext, {styles: image({size})}]\n ]}>\n {renderProps.selectionMode === 'single' && !renderProps.hasSubmenu && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}\n {renderProps.selectionMode === 'multiple' && !renderProps.hasSubmenu && (\n <div className={mergeStyles(checkbox, box(checkboxRenderProps))}>\n <CheckmarkIcon size={size} className={iconStyles} />\n </div>\n )}\n {typeof children === 'string' ? <Text slot=\"label\">{children}</Text> : children}\n {isLinkOut && !hideLinkOutIcon && (\n <div slot=\"descriptor\" className={descriptor}>\n <LinkOutIcon\n size={linkIconSize[size]}\n className={style({\n scaleX: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </div>\n )}\n {renderProps.hasSubmenu && (\n <div slot=\"descriptor\" className={descriptor}>\n <ChevronRightIcon\n size={size}\n className={style({\n scaleX: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </div>\n )}\n </Provider>\n </>\n );\n }}\n </AriaMenuItem>\n );\n}\n\n/**\n * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,\n * linking the Menu's open state with the trigger's press state.\n */\nfunction MenuTrigger(props: MenuTriggerProps) {\n // RAC sets isPressed via PressResponder when the menu is open.\n // We don't want press scaling to appear to get \"stuck\", so override this.\n // For mouse interactions, menus open on press start. When the popover underlay appears\n // it covers the trigger button, causing onPressEnd to fire immediately and no press scaling\n // to occur. We override this by listening for pointerup on the document ourselves.\n let [isPressed, setPressed] = useState(false);\n let {addGlobalListener} = useGlobalListeners();\n let onPressStart = (e: PressEvent) => {\n if (e.pointerType !== 'mouse') {\n return;\n }\n setPressed(true);\n addGlobalListener(document, 'pointerup', () => {\n setPressed(false);\n }, {once: true, capture: true});\n };\n\n return (\n <InternalMenuTriggerContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip\n }}>\n <AriaMenuTrigger {...props}>\n <PressResponder onPressStart={onPressStart} isPressed={isPressed}>\n {props.children}\n </PressResponder>\n </AriaMenuTrigger>\n </InternalMenuTriggerContext.Provider>\n );\n}\n\nexport interface SubmenuTriggerProps extends Omit<AriaSubmenuTriggerProps, 'delay'> {}\n\nconst SubmenuTrigger = AriaSubmenuTrigger as (props: SubmenuTriggerProps) => JSX.Element | null;\n\nexport {MenuTrigger, SubmenuTrigger};\n\n// This is purely so that storybook generates the types for both Menu and MenuTrigger\ninterface ICombined<T extends object> extends MenuProps<T>, Omit<MenuTriggerProps, 'children'> {}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function CombinedMenu<T extends object>(props: ICombined<T>) {\n return <div />;\n}\n"],"names":[],"version":3,"file":"Menu.mjs.map"}
package/dist/Meter.cjs CHANGED
@@ -36,26 +36,26 @@ $parcel$export(module.exports, "Meter", () => $f53cdf036c04454a$export$62e3ae2a4
36
36
  const $f53cdf036c04454a$export$8b645da15a96b44f = /*#__PURE__*/ (0, $aQdtU$react.createContext)(null);
37
37
  const $f53cdf036c04454a$var$wrapper = function anonymous(props, overrides) {
38
38
  let rules = " .";
39
- let matches = (overrides || '').match(/(?:^|\s)(?:y|z|A|B|_9|_8|h|_5|_4|__A|__c|__d|__a|__b|U|__Q|X|Z|V|W|l|q|r)[^\s]+/g) || [];
39
+ let matches = (overrides || '').match(/(?:^|\s)(?:y|z|A|B|__a|_9|h|_6|_5|__B|__d|__e|__b|__c|V|__R|Y|_a|W|X|l|q|r)[^\s]+/g) || [];
40
40
  rules += matches.join('');
41
- let $U = false;
41
+ let $V = false;
42
42
  let $q = false;
43
43
  let $r = false;
44
44
  for (let p of matches){
45
- if (/^\s*U/.test(p)) $U = true;
45
+ if (/^\s*V/.test(p)) $V = true;
46
46
  if (/^\s*q/.test(p)) $q = true;
47
47
  if (/^\s*r/.test(p)) $r = true;
48
48
  }
49
49
  if (props.staticColor === "white") rules += ' -_1de2x0q_b-b';
50
50
  else if (props.staticColor === "black") rules += ' -_1de2x0q_b-c';
51
- if (!$U) rules += ' Uc';
52
- rules += ' _Zf';
53
- if (props.labelPosition === "side") rules += ' __h-jyg4vb';
54
- else if (props.labelPosition === "top") rules += ' __h-1egg2pz';
55
- if (props.labelPosition === "side") rules += ' __j-7y9rdj';
56
- else if (props.labelPosition === "top") rules += ' __j-6w8ip8';
57
- rules += ' _1d';
58
- rules += ' __Fa';
51
+ if (!$V) rules += ' Vc';
52
+ rules += ' _0f';
53
+ if (props.labelPosition === "side") rules += ' __i-ar5vcf';
54
+ else if (props.labelPosition === "top") rules += ' __i-15pd573';
55
+ if (props.labelPosition === "side") rules += ' __k-1tip2u3';
56
+ else if (props.labelPosition === "top") rules += ' __k-3in7tg';
57
+ rules += ' _2d';
58
+ rules += ' __Ga';
59
59
  if (!$q) rules += ' q_a';
60
60
  if (!$r) rules += ' r____________N';
61
61
  if (props.size === "XL") rules += ' -aqrvqh_k-j';
@@ -70,33 +70,33 @@ const $f53cdf036c04454a$var$wrapper = function anonymous(props, overrides) {
70
70
  };
71
71
  const $f53cdf036c04454a$var$valueStyles = function anonymous(props) {
72
72
  let rules = " .";
73
- rules += ' _c-bc1l9oh';
74
- rules += ' _c-1uotwbwg';
75
- rules += ' _c-eo0c6sf';
76
- rules += ' _c-enzzrge';
77
- rules += ' _c-enzykdd';
78
- rules += ' _c-enzwzjc';
79
- rules += ' _c-enzrfpb';
80
- rules += ' _ca';
73
+ rules += ' _d-bc1l9oh';
74
+ rules += ' _d-1uotwbwg';
75
+ rules += ' _d-eo0c6sf';
76
+ rules += ' _d-enzzrge';
77
+ rules += ' _d-enzykdd';
78
+ rules += ' _d-enzwzjc';
79
+ rules += ' _d-enzrfpb';
80
+ rules += ' _da';
81
81
  if (props.size === "XL") {
82
- rules += ' _dbj';
83
- rules += ' _di';
82
+ rules += ' _ebj';
83
+ rules += ' _ei';
84
84
  } else if (props.size === "L") {
85
- rules += ' _dbh';
86
- rules += ' _dg';
85
+ rules += ' _ebh';
86
+ rules += ' _eg';
87
87
  } else if (props.size === "S") {
88
- rules += ' _dbd';
89
- rules += ' _dc';
88
+ rules += ' _ebd';
89
+ rules += ' _ec';
90
90
  } else if (props.size === "XS") {
91
- rules += ' _dbb';
92
- rules += ' _da';
91
+ rules += ' _ebb';
92
+ rules += ' _ea';
93
93
  } else {
94
- rules += ' _dbf';
95
- rules += ' _de';
94
+ rules += ' _ebf';
95
+ rules += ' _ee';
96
96
  }
97
- rules += ' _eb';
98
- rules += ' _f-1x99dlob';
99
- rules += ' _fa';
97
+ rules += ' _fb';
98
+ rules += ' _g-1x99dlob';
99
+ rules += ' _ga';
100
100
  rules += ' aa_____K';
101
101
  if (props.isStaticColor) rules += ' a_____G';
102
102
  else if (props.isDisabled) rules += ' aj';
@@ -106,47 +106,47 @@ const $f53cdf036c04454a$var$valueStyles = function anonymous(props) {
106
106
  else if (props.isHovered) rules += ' an';
107
107
  else rules += ' am';
108
108
  }
109
- rules += ' __Hb';
110
- rules += ' __a-4lc1fm';
111
- rules += ' __b-4lc1fm';
112
- rules += ' __c-4lc1fm';
113
- rules += ' __d-4lc1fm';
109
+ rules += ' __Ib';
110
+ rules += ' __b-o8by7a';
111
+ rules += ' __c-o8by7a';
112
+ rules += ' __d-o8by7a';
113
+ rules += ' __e-o8by7a';
114
114
  return rules;
115
115
  };
116
116
  const $f53cdf036c04454a$var$trackStyles = function anonymous(props) {
117
117
  let rules = " .";
118
- rules += ' __a-3773ju';
119
- rules += ' __b-3773ju';
120
- rules += ' __c-3773ju';
121
- rules += ' __d-3773ju';
118
+ rules += ' __b-2y1eji';
119
+ rules += ' __c-2y1eji';
120
+ rules += ' __d-2y1eji';
121
+ rules += ' __e-2y1eji';
122
122
  if (props.size === "XL") rules += ' qj';
123
123
  else if (props.size === "L") rules += ' qi';
124
124
  else if (props.size === "S") rules += ' qh';
125
125
  else if (props.size === "XS") rules += ' qg';
126
126
  else rules += ' qf';
127
- if (props.isQuiet) rules += ' __ma';
128
- else rules += ' __m-1s8glxue';
127
+ if (props.isQuiet) rules += ' __na';
128
+ else rules += ' __n-1s8glxue';
129
129
  if (props.size === "XL") rules += ' -usygro_l-____g';
130
130
  else if (props.size === "L") rules += ' -usygro_l-___0';
131
131
  else if (props.size === "S") rules += ' -usygro_l-___u';
132
132
  else rules += ' -usygro_l-___K';
133
133
  rules += ' m-rwozxi';
134
- rules += ' __vb';
135
134
  rules += ' __wb';
136
- rules += ' _vf';
135
+ rules += ' __xb';
137
136
  rules += ' _wf';
138
137
  rules += ' _xf';
139
138
  rules += ' _yf';
139
+ rules += ' _zf';
140
140
  rules += ' ba_____J';
141
141
  if (props.isStaticColor) rules += ' b_____z';
142
142
  else rules += ' bi';
143
- rules += ' _Nab';
144
- rules += ' _Na';
145
- rules += ' _Lab';
146
- rules += ' _La';
143
+ rules += ' _Oab';
144
+ rules += ' _Oa';
145
+ rules += ' _Mab';
146
+ rules += ' _Ma';
147
147
  rules += ' da_____K';
148
148
  rules += ' da';
149
- rules += ' __Q-3t1y';
149
+ rules += ' __R-3t1y';
150
150
  if (props.size === "XL") rules += ' ky';
151
151
  else if (props.size === "L") rules += ' kw';
152
152
  else if (props.size === "M") rules += ' ku';
@@ -158,10 +158,10 @@ const $f53cdf036c04454a$var$fillStyles = function anonymous(props) {
158
158
  let rules = " .";
159
159
  rules += ' kb';
160
160
  rules += ' wf';
161
- rules += ' _vf';
162
161
  rules += ' _wf';
163
162
  rules += ' _xf';
164
163
  rules += ' _yf';
164
+ rules += ' _zf';
165
165
  rules += ' ba_____K';
166
166
  if (props.isStaticColor) rules += ' b_____F';
167
167
  else if (props.variant === "negative") rules += ' b-awl6xt';
package/dist/Meter.css CHANGED
@@ -7,36 +7,36 @@
7
7
  --s2-container-bg: black;
8
8
  }
9
9
 
10
- .Uc {
10
+ .Vc {
11
11
  position: relative;
12
12
  }
13
13
 
14
- ._Zf {
14
+ ._0f {
15
15
  display: grid;
16
16
  }
17
17
 
18
- .__h-1egg2pz {
18
+ .__i-15pd573 {
19
19
  grid-template-columns: 1fr auto;
20
20
  }
21
21
 
22
- .__h-jyg4vb {
22
+ .__i-ar5vcf {
23
23
  grid-template-columns: auto 1fr;
24
24
  }
25
25
 
26
- .__j-6w8ip8 {
26
+ .__k-3in7tg {
27
27
  grid-template-areas: "label value"
28
28
  "bar bar";
29
29
  }
30
30
 
31
- .__j-7y9rdj {
31
+ .__k-1tip2u3 {
32
32
  grid-template-areas: "label bar value";
33
33
  }
34
34
 
35
- ._1d {
35
+ ._2d {
36
36
  align-items: baseline;
37
37
  }
38
38
 
39
- .__Fa {
39
+ .__Ga {
40
40
  isolation: isolate;
41
41
  }
42
42
 
@@ -80,37 +80,37 @@
80
80
  column-gap: .75rem;
81
81
  }
82
82
 
83
- ._ca {
83
+ ._da {
84
84
  font-family: adobe-clean-variable, adobe-clean, ui-sans-serif, system-ui, sans-serif;
85
85
  }
86
86
 
87
- ._de {
87
+ ._ee {
88
88
  font-size: .875rem;
89
89
  }
90
90
 
91
- ._da {
91
+ ._ea {
92
92
  font-size: .6875rem;
93
93
  }
94
94
 
95
- ._dc {
95
+ ._ec {
96
96
  font-size: .75rem;
97
97
  }
98
98
 
99
- ._dg {
99
+ ._eg {
100
100
  font-size: 1rem;
101
101
  }
102
102
 
103
- ._di {
103
+ ._ei {
104
104
  font-size: 1.125rem;
105
105
  }
106
106
 
107
- ._eb {
107
+ ._fb {
108
108
  font-variation-settings: "wght" 400;
109
109
  font-synthesis-weight: none;
110
110
  font-weight: 400;
111
111
  }
112
112
 
113
- ._fa {
113
+ ._ga {
114
114
  line-height: 1.3;
115
115
  }
116
116
 
@@ -130,39 +130,39 @@
130
130
  color: lch(from var(--s2-container-bg) calc((49.44 - l) * infinity) 0 0 / 1);
131
131
  }
132
132
 
133
- .__Hb {
133
+ .__Ib {
134
134
  cursor: default;
135
135
  }
136
136
 
137
- .__a-4lc1fm {
137
+ .__b-o8by7a {
138
138
  grid-column-start: value;
139
139
  }
140
140
 
141
- .__b-4lc1fm {
141
+ .__c-o8by7a {
142
142
  grid-column-end: value;
143
143
  }
144
144
 
145
- .__c-4lc1fm {
145
+ .__d-o8by7a {
146
146
  grid-row-start: value;
147
147
  }
148
148
 
149
- .__d-4lc1fm {
149
+ .__e-o8by7a {
150
150
  grid-row-end: value;
151
151
  }
152
152
 
153
- .__a-3773ju {
153
+ .__b-2y1eji {
154
154
  grid-column-start: bar;
155
155
  }
156
156
 
157
- .__b-3773ju {
157
+ .__c-2y1eji {
158
158
  grid-column-end: bar;
159
159
  }
160
160
 
161
- .__c-3773ju {
161
+ .__d-2y1eji {
162
162
  grid-row-start: bar;
163
163
  }
164
164
 
165
- .__d-3773ju {
165
+ .__e-2y1eji {
166
166
  grid-row-end: bar;
167
167
  }
168
168
 
@@ -186,7 +186,7 @@
186
186
  min-width: calc(3rem * var(--s2-scale));
187
187
  }
188
188
 
189
- .__ma {
189
+ .__na {
190
190
  contain: none;
191
191
  }
192
192
 
@@ -210,11 +210,11 @@
210
210
  contain-intrinsic-width: calc(var(--defaultWidth) - var(--C, 0px) - var(--D, 0px) - var(--s, 0px) - var(--t, 0px));
211
211
  }
212
212
 
213
- .__vb {
213
+ .__wb {
214
214
  overflow-x: hidden;
215
215
  }
216
216
 
217
- .__wb {
217
+ .__xb {
218
218
  overflow-y: hidden;
219
219
  }
220
220
 
@@ -226,11 +226,11 @@
226
226
  background-color: lch(from var(--s2-container-bg) calc((49.44 - l) * infinity) 0 0 / .17);
227
227
  }
228
228
 
229
- ._Na {
229
+ ._Oa {
230
230
  outline-width: 0;
231
231
  }
232
232
 
233
- ._La {
233
+ ._Ma {
234
234
  outline-style: none;
235
235
  }
236
236
 
@@ -238,7 +238,7 @@
238
238
  outline-color: #0000;
239
239
  }
240
240
 
241
- .__Q-3t1y {
241
+ .__R-3t1y {
242
242
  z-index: 1;
243
243
  }
244
244
 
@@ -266,19 +266,19 @@
266
266
  border-style: none;
267
267
  }
268
268
 
269
- ._vf {
269
+ ._wf {
270
270
  border-start-start-radius: 9999px;
271
271
  }
272
272
 
273
- ._wf {
273
+ ._xf {
274
274
  border-start-end-radius: 9999px;
275
275
  }
276
276
 
277
- ._xf {
277
+ ._yf {
278
278
  border-end-start-radius: 9999px;
279
279
  }
280
280
 
281
- ._yf {
281
+ ._zf {
282
282
  border-end-end-radius: 9999px;
283
283
  }
284
284
 
@@ -304,11 +304,11 @@
304
304
  }
305
305
 
306
306
  @layer _.b {
307
- ._c-enzrfpb:lang(ar) {
307
+ ._d-enzrfpb:lang(ar) {
308
308
  font-family: myriad-arabic, ui-sans-serif, system-ui, sans-serif;
309
309
  }
310
310
 
311
- ._f-1x99dlob:is(:lang(ja), :lang(ko), :lang(zh), :lang(zh-Hant), :lang(zh-Hans)) {
311
+ ._g-1x99dlob:is(:lang(ja), :lang(ko), :lang(zh), :lang(zh-Hant), :lang(zh-Hans)) {
312
312
  line-height: 1.5;
313
313
  }
314
314
  }
@@ -316,60 +316,60 @@
316
316
  @layer UNSAFE_overrides;
317
317
 
318
318
  @layer _.c {
319
- ._c-enzwzjc:lang(he) {
319
+ ._d-enzwzjc:lang(he) {
320
320
  font-family: myriad-hebrew, ui-sans-serif, system-ui, sans-serif;
321
321
  }
322
322
  }
323
323
 
324
324
  @layer _.d {
325
- ._c-enzykdd:lang(ja) {
325
+ ._d-enzykdd:lang(ja) {
326
326
  font-family: adobe-clean-han-japanese, Hiragino Kaku Gothic ProN, ヒラギノ角ゴ ProN W3, Osaka, YuGothic, Yu Gothic, メイリオ, Meiryo, MS Pゴシック, MS PGothic, sans-serif;
327
327
  }
328
328
  }
329
329
 
330
330
  @layer _.e {
331
- ._c-enzzrge:lang(ko) {
331
+ ._d-enzzrge:lang(ko) {
332
332
  font-family: adobe-clean-han-korean, source-han-korean, Malgun Gothic, Apple Gothic, sans-serif;
333
333
  }
334
334
  }
335
335
 
336
336
  @layer _.f {
337
- ._c-eo0c6sf:lang(zh) {
337
+ ._d-eo0c6sf:lang(zh) {
338
338
  font-family: adobe-clean-han-traditional, source-han-traditional, MingLiu, Heiti TC Light, sans-serif;
339
339
  }
340
340
  }
341
341
 
342
342
  @layer _.g {
343
- ._c-1uotwbwg:lang(zh-hant) {
343
+ ._d-1uotwbwg:lang(zh-hant) {
344
344
  font-family: adobe-clean-han-traditional, source-han-traditional, MingLiu, Microsoft JhengHei UI, Microsoft JhengHei, Heiti TC Light, sans-serif;
345
345
  }
346
346
  }
347
347
 
348
348
  @layer _.h {
349
- ._c-bc1l9oh:is(:lang(zh-Hans), :lang(zh-CN), :lang(zh-SG)) {
349
+ ._d-bc1l9oh:is(:lang(zh-Hans), :lang(zh-CN), :lang(zh-SG)) {
350
350
  font-family: adobe-clean-han-simplified-c, source-han-simplified-c, SimSun, Heiti SC Light, sans-serif;
351
351
  }
352
352
  }
353
353
 
354
354
  @layer _.b.b {
355
355
  @media not ((hover: hover) and (pointer: fine)) {
356
- ._dbf {
356
+ ._ebf {
357
357
  font-size: 1.0625rem;
358
358
  }
359
359
 
360
- ._dbb {
360
+ ._ebb {
361
361
  font-size: .8125rem;
362
362
  }
363
363
 
364
- ._dbd {
364
+ ._ebd {
365
365
  font-size: .9375rem;
366
366
  }
367
367
 
368
- ._dbh {
368
+ ._ebh {
369
369
  font-size: 1.1875rem;
370
370
  }
371
371
 
372
- ._dbj {
372
+ ._ebj {
373
373
  font-size: 1.375rem;
374
374
  }
375
375
  }
@@ -385,11 +385,11 @@
385
385
  background-color: buttonface;
386
386
  }
387
387
 
388
- ._Nab {
388
+ ._Oab {
389
389
  outline-width: 1px;
390
390
  }
391
391
 
392
- ._Lab {
392
+ ._Mab {
393
393
  outline-style: solid;
394
394
  }
395
395
 
@@ -405,7 +405,7 @@
405
405
 
406
406
  @layer _.b.-_1s8glxu {
407
407
  @supports (contain-intrinsic-width: 1px) {
408
- .__m-1s8glxue {
408
+ .__n-1s8glxue {
409
409
  contain: inline-size;
410
410
  }
411
411
  }