@proyecto-viviana/ui 0.6.2 → 0.6.3

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 (298) hide show
  1. package/dist/_chunk/LinkButton.js +9 -9
  2. package/dist/_chunk/LinkButton.js.map +1 -1
  3. package/dist/_chunk/LinkButton.jsx +9 -9
  4. package/dist/_chunk/LinkButton.jsx.map +1 -1
  5. package/dist/_chunk/RangeCalendar.js +7 -7
  6. package/dist/_chunk/RangeCalendar.js.map +1 -1
  7. package/dist/_chunk/RangeCalendar.jsx +7 -7
  8. package/dist/_chunk/RangeCalendar.jsx.map +1 -1
  9. package/dist/_chunk/Tabs.js +2 -2
  10. package/dist/_chunk/Tabs.jsx +2 -2
  11. package/dist/_chunk/breadcrumbs.js +2 -2
  12. package/dist/_chunk/breadcrumbs.js.map +1 -1
  13. package/dist/_chunk/breadcrumbs.jsx +2 -2
  14. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  15. package/dist/_chunk/button.js +3 -3
  16. package/dist/_chunk/button.jsx +3 -3
  17. package/dist/_chunk/color.js +4 -4
  18. package/dist/_chunk/color.jsx +4 -4
  19. package/dist/_chunk/form.js +5 -7
  20. package/dist/_chunk/form.js.map +1 -1
  21. package/dist/_chunk/form.jsx +5 -8
  22. package/dist/_chunk/form.jsx.map +1 -1
  23. package/dist/_chunk/layout.js +5 -1
  24. package/dist/_chunk/layout.js.map +1 -1
  25. package/dist/_chunk/layout.jsx +5 -1
  26. package/dist/_chunk/layout.jsx.map +1 -1
  27. package/dist/_chunk/list.js +4 -4
  28. package/dist/_chunk/list.jsx +4 -4
  29. package/dist/_chunk/menu.js +1 -1
  30. package/dist/_chunk/menu.js.map +1 -1
  31. package/dist/_chunk/menu.jsx +1 -1
  32. package/dist/_chunk/menu.jsx.map +1 -1
  33. package/dist/_chunk/numberfield.js +2 -2
  34. package/dist/_chunk/numberfield.jsx +2 -2
  35. package/dist/_chunk/s2-action-button-styles.js +8 -8
  36. package/dist/_chunk/s2-action-button-styles.js.map +1 -1
  37. package/dist/_chunk/s2-action-button-styles.jsx +8 -8
  38. package/dist/_chunk/s2-action-button-styles.jsx.map +1 -1
  39. package/dist/_chunk/s2-menu-styles.js +1 -1
  40. package/dist/_chunk/s2-menu-styles.jsx +1 -1
  41. package/dist/_chunk/slider.js +6 -6
  42. package/dist/_chunk/slider.jsx +6 -6
  43. package/dist/_chunk/switch.js +2 -2
  44. package/dist/_chunk/switch.jsx +2 -2
  45. package/dist/_chunk/table.js +3 -3
  46. package/dist/_chunk/table.js.map +1 -1
  47. package/dist/_chunk/table.jsx +3 -3
  48. package/dist/_chunk/table.jsx.map +1 -1
  49. package/dist/_chunk/text.js +1 -1
  50. package/dist/_chunk/text.jsx +1 -1
  51. package/dist/_chunk/textfield.js +4 -4
  52. package/dist/_chunk/textfield.jsx +4 -4
  53. package/dist/_chunk/toast.js +3 -3
  54. package/dist/_chunk/toast.jsx +3 -3
  55. package/dist/actiongroup/index.js +2 -2
  56. package/dist/actiongroup/index.jsx +2 -2
  57. package/dist/badge/index.js +6 -6
  58. package/dist/badge/index.jsx +6 -6
  59. package/dist/breadcrumbs/index.d.ts.map +1 -1
  60. package/dist/calendar/DateField.d.ts.map +1 -1
  61. package/dist/calendar/DateField.js +2 -2
  62. package/dist/calendar/DateField.js.map +1 -1
  63. package/dist/calendar/DateField.jsx +2 -2
  64. package/dist/calendar/DateField.jsx.map +1 -1
  65. package/dist/calendar/DatePicker.d.ts.map +1 -1
  66. package/dist/calendar/DatePicker.js +2 -2
  67. package/dist/calendar/DatePicker.js.map +1 -1
  68. package/dist/calendar/DatePicker.jsx +2 -2
  69. package/dist/calendar/DatePicker.jsx.map +1 -1
  70. package/dist/calendar/DateRangePicker.js +2 -2
  71. package/dist/calendar/DateRangePicker.jsx +2 -2
  72. package/dist/calendar/RangeCalendar.d.ts.map +1 -1
  73. package/dist/calendar/TimeField.d.ts.map +1 -1
  74. package/dist/calendar/TimeField.js +2 -2
  75. package/dist/calendar/TimeField.js.map +1 -1
  76. package/dist/calendar/TimeField.jsx +2 -2
  77. package/dist/calendar/TimeField.jsx.map +1 -1
  78. package/dist/calendar/index.js +5 -5
  79. package/dist/calendar/index.js.map +1 -1
  80. package/dist/calendar/index.jsx +5 -5
  81. package/dist/calendar/index.jsx.map +1 -1
  82. package/dist/checkbox/index.js +3 -3
  83. package/dist/checkbox/index.jsx +3 -3
  84. package/dist/combobox/index.js +2 -2
  85. package/dist/combobox/index.jsx +2 -2
  86. package/dist/dropzone/index.js +1 -1
  87. package/dist/dropzone/index.jsx +1 -1
  88. package/dist/form/index.d.ts.map +1 -1
  89. package/dist/icon/pixel-icons/PixelChartIcon.d.ts.map +1 -1
  90. package/dist/icon/pixel-icons/PixelChartIcon.js.map +1 -1
  91. package/dist/icon/pixel-icons/PixelChartIcon.jsx.map +1 -1
  92. package/dist/icon/pixel-icons/PixelCheckIcon.d.ts.map +1 -1
  93. package/dist/icon/pixel-icons/PixelCheckIcon.js.map +1 -1
  94. package/dist/icon/pixel-icons/PixelCheckIcon.jsx.map +1 -1
  95. package/dist/icon/pixel-icons/PixelChevronDownIcon.d.ts.map +1 -1
  96. package/dist/icon/pixel-icons/PixelChevronDownIcon.js.map +1 -1
  97. package/dist/icon/pixel-icons/PixelChevronDownIcon.jsx.map +1 -1
  98. package/dist/icon/pixel-icons/PixelChevronRightIcon.d.ts.map +1 -1
  99. package/dist/icon/pixel-icons/PixelChevronRightIcon.js.map +1 -1
  100. package/dist/icon/pixel-icons/PixelChevronRightIcon.jsx.map +1 -1
  101. package/dist/icon/pixel-icons/PixelClockIcon.d.ts.map +1 -1
  102. package/dist/icon/pixel-icons/PixelClockIcon.js.map +1 -1
  103. package/dist/icon/pixel-icons/PixelClockIcon.jsx.map +1 -1
  104. package/dist/icon/pixel-icons/PixelCodeIcon.d.ts.map +1 -1
  105. package/dist/icon/pixel-icons/PixelCodeIcon.js.map +1 -1
  106. package/dist/icon/pixel-icons/PixelCodeIcon.jsx.map +1 -1
  107. package/dist/icon/pixel-icons/PixelCommunityIcon.d.ts.map +1 -1
  108. package/dist/icon/pixel-icons/PixelCommunityIcon.js.map +1 -1
  109. package/dist/icon/pixel-icons/PixelCommunityIcon.jsx.map +1 -1
  110. package/dist/icon/pixel-icons/PixelCubeIcon.d.ts.map +1 -1
  111. package/dist/icon/pixel-icons/PixelCubeIcon.js.map +1 -1
  112. package/dist/icon/pixel-icons/PixelCubeIcon.jsx.map +1 -1
  113. package/dist/icon/pixel-icons/PixelFlameIcon.d.ts.map +1 -1
  114. package/dist/icon/pixel-icons/PixelFlameIcon.js.map +1 -1
  115. package/dist/icon/pixel-icons/PixelFlameIcon.jsx.map +1 -1
  116. package/dist/icon/pixel-icons/PixelHomeIcon.d.ts.map +1 -1
  117. package/dist/icon/pixel-icons/PixelHomeIcon.js.map +1 -1
  118. package/dist/icon/pixel-icons/PixelHomeIcon.jsx.map +1 -1
  119. package/dist/icon/pixel-icons/PixelLayoutIcon.d.ts.map +1 -1
  120. package/dist/icon/pixel-icons/PixelLayoutIcon.js.map +1 -1
  121. package/dist/icon/pixel-icons/PixelLayoutIcon.jsx.map +1 -1
  122. package/dist/icon/pixel-icons/PixelMessageIcon.d.ts.map +1 -1
  123. package/dist/icon/pixel-icons/PixelMessageIcon.js.map +1 -1
  124. package/dist/icon/pixel-icons/PixelMessageIcon.jsx.map +1 -1
  125. package/dist/icon/pixel-icons/PixelNavCommunityIcon.d.ts.map +1 -1
  126. package/dist/icon/pixel-icons/PixelNavCommunityIcon.js.map +1 -1
  127. package/dist/icon/pixel-icons/PixelNavCommunityIcon.jsx.map +1 -1
  128. package/dist/icon/pixel-icons/PixelNavExploreIcon.d.ts.map +1 -1
  129. package/dist/icon/pixel-icons/PixelNavExploreIcon.js.map +1 -1
  130. package/dist/icon/pixel-icons/PixelNavExploreIcon.jsx.map +1 -1
  131. package/dist/icon/pixel-icons/PixelNavLiveIcon.d.ts.map +1 -1
  132. package/dist/icon/pixel-icons/PixelNavLiveIcon.js.map +1 -1
  133. package/dist/icon/pixel-icons/PixelNavLiveIcon.jsx.map +1 -1
  134. package/dist/icon/pixel-icons/PixelNavPathwaysIcon.d.ts.map +1 -1
  135. package/dist/icon/pixel-icons/PixelNavPathwaysIcon.js.map +1 -1
  136. package/dist/icon/pixel-icons/PixelNavPathwaysIcon.jsx.map +1 -1
  137. package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.d.ts.map +1 -1
  138. package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.js.map +1 -1
  139. package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.jsx.map +1 -1
  140. package/dist/icon/pixel-icons/PixelNavProjectsIcon.d.ts.map +1 -1
  141. package/dist/icon/pixel-icons/PixelNavProjectsIcon.js.map +1 -1
  142. package/dist/icon/pixel-icons/PixelNavProjectsIcon.jsx.map +1 -1
  143. package/dist/icon/pixel-icons/PixelNavReferenceIcon.d.ts.map +1 -1
  144. package/dist/icon/pixel-icons/PixelNavReferenceIcon.js.map +1 -1
  145. package/dist/icon/pixel-icons/PixelNavReferenceIcon.jsx.map +1 -1
  146. package/dist/icon/pixel-icons/PixelNavSettingsIcon.d.ts.map +1 -1
  147. package/dist/icon/pixel-icons/PixelNavSettingsIcon.js.map +1 -1
  148. package/dist/icon/pixel-icons/PixelNavSettingsIcon.jsx.map +1 -1
  149. package/dist/icon/pixel-icons/PixelNavTopicsIcon.d.ts.map +1 -1
  150. package/dist/icon/pixel-icons/PixelNavTopicsIcon.js.map +1 -1
  151. package/dist/icon/pixel-icons/PixelNavTopicsIcon.jsx.map +1 -1
  152. package/dist/icon/pixel-icons/PixelNotificationIcon.d.ts.map +1 -1
  153. package/dist/icon/pixel-icons/PixelNotificationIcon.js.map +1 -1
  154. package/dist/icon/pixel-icons/PixelNotificationIcon.jsx.map +1 -1
  155. package/dist/icon/pixel-icons/PixelPathwaysIcon.d.ts.map +1 -1
  156. package/dist/icon/pixel-icons/PixelPathwaysIcon.js.map +1 -1
  157. package/dist/icon/pixel-icons/PixelPathwaysIcon.jsx.map +1 -1
  158. package/dist/icon/pixel-icons/PixelPlayIcon.d.ts.map +1 -1
  159. package/dist/icon/pixel-icons/PixelPlayIcon.js.map +1 -1
  160. package/dist/icon/pixel-icons/PixelPlayIcon.jsx.map +1 -1
  161. package/dist/icon/pixel-icons/PixelSearchIcon.d.ts.map +1 -1
  162. package/dist/icon/pixel-icons/PixelSearchIcon.js.map +1 -1
  163. package/dist/icon/pixel-icons/PixelSearchIcon.jsx.map +1 -1
  164. package/dist/icon/pixel-icons/PixelSettingsIcon.d.ts.map +1 -1
  165. package/dist/icon/pixel-icons/PixelSettingsIcon.js.map +1 -1
  166. package/dist/icon/pixel-icons/PixelSettingsIcon.jsx.map +1 -1
  167. package/dist/icon/pixel-icons/PixelSparkleIcon.d.ts.map +1 -1
  168. package/dist/icon/pixel-icons/PixelSparkleIcon.js.map +1 -1
  169. package/dist/icon/pixel-icons/PixelSparkleIcon.jsx.map +1 -1
  170. package/dist/icon/pixel-icons/PixelTopicsIcon.d.ts.map +1 -1
  171. package/dist/icon/pixel-icons/PixelTopicsIcon.js.map +1 -1
  172. package/dist/icon/pixel-icons/PixelTopicsIcon.jsx.map +1 -1
  173. package/dist/icon/pixel-icons/PixelUserIcon.d.ts.map +1 -1
  174. package/dist/icon/pixel-icons/PixelUserIcon.js.map +1 -1
  175. package/dist/icon/pixel-icons/PixelUserIcon.jsx.map +1 -1
  176. package/dist/icon/pixel-icons/PixelZapIcon.d.ts.map +1 -1
  177. package/dist/icon/pixel-icons/PixelZapIcon.js.map +1 -1
  178. package/dist/icon/pixel-icons/PixelZapIcon.jsx.map +1 -1
  179. package/dist/inlinealert/index.js +6 -6
  180. package/dist/inlinealert/index.jsx +6 -6
  181. package/dist/labeledvalue/index.js +1 -1
  182. package/dist/labeledvalue/index.jsx +1 -1
  183. package/dist/layout/Flex.d.ts +2 -0
  184. package/dist/layout/Flex.d.ts.map +1 -1
  185. package/dist/link/index.d.ts.map +1 -1
  186. package/dist/link/index.js +1 -4
  187. package/dist/link/index.js.map +1 -1
  188. package/dist/link/index.jsx +1 -4
  189. package/dist/link/index.jsx.map +1 -1
  190. package/dist/listbox/index.js +3 -3
  191. package/dist/listbox/index.jsx +4 -4
  192. package/dist/menu/index.d.ts.map +1 -1
  193. package/dist/meter/index.d.ts.map +1 -1
  194. package/dist/meter/index.js +2 -2
  195. package/dist/meter/index.js.map +1 -1
  196. package/dist/meter/index.jsx +2 -2
  197. package/dist/meter/index.jsx.map +1 -1
  198. package/dist/notificationbadge/index.js +1 -1
  199. package/dist/notificationbadge/index.jsx +1 -1
  200. package/dist/picker/index.js +3 -3
  201. package/dist/picker/index.jsx +3 -3
  202. package/dist/popover/index.js +1 -1
  203. package/dist/popover/index.jsx +1 -1
  204. package/dist/progress/ProgressCircle.js +2 -2
  205. package/dist/progress/ProgressCircle.js.map +1 -1
  206. package/dist/progress/ProgressCircle.jsx +2 -2
  207. package/dist/progress/ProgressCircle.jsx.map +1 -1
  208. package/dist/progress-bar/index.js +4 -4
  209. package/dist/progress-bar/index.jsx +4 -4
  210. package/dist/radio/index.js +2 -2
  211. package/dist/radio/index.jsx +2 -2
  212. package/dist/searchfield/index.js +2 -2
  213. package/dist/searchfield/index.jsx +2 -2
  214. package/dist/segmentedcontrol/index.js +2 -5
  215. package/dist/segmentedcontrol/index.js.map +1 -1
  216. package/dist/segmentedcontrol/index.jsx +2 -5
  217. package/dist/segmentedcontrol/index.jsx.map +1 -1
  218. package/dist/select/index.js +3 -3
  219. package/dist/select/index.jsx +3 -3
  220. package/dist/selectboxgroup/index.js +1 -1
  221. package/dist/selectboxgroup/index.jsx +1 -1
  222. package/dist/statuslight/index.js +1 -1
  223. package/dist/statuslight/index.jsx +1 -1
  224. package/dist/steplist/index.js +5 -5
  225. package/dist/steplist/index.jsx +5 -5
  226. package/dist/style/glasselated-ramps.d.ts.map +1 -1
  227. package/dist/style/index.js +18 -9
  228. package/dist/style/index.js.map +1 -1
  229. package/dist/style/spectrum-theme.d.ts +7 -7
  230. package/dist/style/spectrum-theme.d.ts.map +1 -1
  231. package/dist/styles.css +1 -1
  232. package/dist/table/index.d.ts.map +1 -1
  233. package/dist/tag-group/index.js +10 -10
  234. package/dist/tag-group/index.js.map +1 -1
  235. package/dist/tag-group/index.jsx +10 -10
  236. package/dist/tag-group/index.jsx.map +1 -1
  237. package/dist/toolbar/index.d.ts.map +1 -1
  238. package/dist/toolbar/index.js.map +1 -1
  239. package/dist/toolbar/index.jsx.map +1 -1
  240. package/dist/tree/index.d.ts.map +1 -1
  241. package/dist/tree/index.js +5 -5
  242. package/dist/tree/index.js.map +1 -1
  243. package/dist/tree/index.jsx +5 -5
  244. package/dist/tree/index.jsx.map +1 -1
  245. package/dist/viviana-tokens.css +39 -12
  246. package/package.json +18 -5
  247. package/src/breadcrumbs/index.tsx +14 -7
  248. package/src/button/s2-action-button-styles.ts +8 -8
  249. package/src/button/s2-button-styles.ts +8 -8
  250. package/src/calendar/DateField.tsx +2 -6
  251. package/src/calendar/DatePicker.tsx +8 -1
  252. package/src/calendar/RangeCalendar.tsx +13 -7
  253. package/src/calendar/TimeField.tsx +2 -6
  254. package/src/calendar/index.tsx +4 -4
  255. package/src/form/index.tsx +5 -6
  256. package/src/icon/pixel-icons/PixelChartIcon.tsx +4 -1
  257. package/src/icon/pixel-icons/PixelCheckIcon.tsx +4 -1
  258. package/src/icon/pixel-icons/PixelChevronDownIcon.tsx +4 -1
  259. package/src/icon/pixel-icons/PixelChevronRightIcon.tsx +4 -1
  260. package/src/icon/pixel-icons/PixelClockIcon.tsx +4 -1
  261. package/src/icon/pixel-icons/PixelCodeIcon.tsx +4 -1
  262. package/src/icon/pixel-icons/PixelCommunityIcon.tsx +4 -1
  263. package/src/icon/pixel-icons/PixelCubeIcon.tsx +4 -1
  264. package/src/icon/pixel-icons/PixelFlameIcon.tsx +4 -1
  265. package/src/icon/pixel-icons/PixelHomeIcon.tsx +4 -1
  266. package/src/icon/pixel-icons/PixelLayoutIcon.tsx +4 -1
  267. package/src/icon/pixel-icons/PixelMessageIcon.tsx +4 -1
  268. package/src/icon/pixel-icons/PixelNavCommunityIcon.tsx +4 -1
  269. package/src/icon/pixel-icons/PixelNavExploreIcon.tsx +4 -1
  270. package/src/icon/pixel-icons/PixelNavLiveIcon.tsx +4 -1
  271. package/src/icon/pixel-icons/PixelNavPathwaysIcon.tsx +4 -1
  272. package/src/icon/pixel-icons/PixelNavPlaygroundIcon.tsx +4 -1
  273. package/src/icon/pixel-icons/PixelNavProjectsIcon.tsx +4 -1
  274. package/src/icon/pixel-icons/PixelNavReferenceIcon.tsx +4 -1
  275. package/src/icon/pixel-icons/PixelNavSettingsIcon.tsx +4 -1
  276. package/src/icon/pixel-icons/PixelNavTopicsIcon.tsx +4 -1
  277. package/src/icon/pixel-icons/PixelNotificationIcon.tsx +4 -1
  278. package/src/icon/pixel-icons/PixelPathwaysIcon.tsx +4 -1
  279. package/src/icon/pixel-icons/PixelPlayIcon.tsx +4 -1
  280. package/src/icon/pixel-icons/PixelSearchIcon.tsx +4 -1
  281. package/src/icon/pixel-icons/PixelSettingsIcon.tsx +4 -1
  282. package/src/icon/pixel-icons/PixelSparkleIcon.tsx +4 -1
  283. package/src/icon/pixel-icons/PixelTopicsIcon.tsx +4 -1
  284. package/src/icon/pixel-icons/PixelUserIcon.tsx +4 -1
  285. package/src/icon/pixel-icons/PixelZapIcon.tsx +4 -1
  286. package/src/layout/Flex.tsx +7 -0
  287. package/src/link/index.tsx +3 -1
  288. package/src/menu/index.tsx +1 -3
  289. package/src/meter/index.tsx +1 -3
  290. package/src/progress/ProgressCircle.tsx +1 -1
  291. package/src/segmentedcontrol/index.tsx +6 -6
  292. package/src/style/glasselated-ramps.ts +37 -33
  293. package/src/style/spectrum-theme.ts +22 -17
  294. package/src/table/index.tsx +1 -3
  295. package/src/tag-group/index.tsx +8 -8
  296. package/src/toolbar/index.tsx +4 -1
  297. package/src/tree/index.tsx +3 -11
  298. package/src/viviana-tokens.css +39 -12
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","names":["JSX","createUIIcon","LinkOutProps","SvgSVGAttributes","SVGSVGElement","size","LinkOut_MSvg","props","Element","class","className","width","_width","height","_height","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","LinkOut_LSvg","_el$2","_tmpl$2","LinkOut_XLSvg","_el$3","_tmpl$3","LinkOut_XXLSvg","_el$4","_tmpl$4","LinkOut_M","LinkOut_L","LinkOut_XL","LinkOut_XXL","LinkOut","_$createComponent","LinkOutIcon","JSX","SubmenuTrigger","HeadlessSubmenuTrigger","SubmenuTriggerProps","HeadlessSubmenuTriggerProps","props","Element","_$createComponent"],"sources":["../../src/menu/menu-context.ts","../../src/icon/ui-icons/LinkOut.tsx","../../src/menu/SubmenuTrigger.tsx","../../src/menu/ContextualHelpTrigger.tsx","../../src/menu/index.tsx"],"sourcesContent":["import { createContext } from \"solid-js\";\nimport type { S2MenuSize } from \"./s2-menu-styles\";\n\nexport type MenuAlign = \"start\" | \"end\";\nexport type MenuDirection = \"top\" | \"bottom\" | \"start\" | \"end\" | \"left\" | \"right\";\n\nexport interface MenuTriggerOptionsContextValue {\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nexport const MenuSizeContext = createContext<S2MenuSize>(\"M\");\nexport const MenuLinkOutIconContext = createContext(false);\nexport const MenuTriggerOptionsContext = createContext<MenuTriggerOptionsContextValue | null>(null);\n","/*\n * Auto-generated from the shipped @react-spectrum/s2 dist assets (SVGO-\n * optimized — pixel parity requires the shipped path data, not the raw\n * vendored .svg sources). Variants absent from the dist (Arrow, Gripper)\n * fall back to the vendored sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createUIIcon } from \"../spectrum-icon\";\n\nexport type LinkOutProps = JSX.SvgSVGAttributes<SVGSVGElement> & {\n size?: \"M\" | \"L\" | \"XL\" | \"XXL\";\n};\n\nfunction LinkOut_MSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M8.125 1H3.741a.875.875 0 1 0 0 1.75h2.27l-4.88 4.88a.88.88 0 0 0 0 1.24.873.873 0 0 0 1.238 0L7.25 3.987v2.27a.875.875 0 1 0 1.75 0V1.876A.875.875 0 0 0 8.125 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_LSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M10.089 1h-5.51a.911.911 0 0 0 0 1.822h3.31L1.355 9.355a.91.91 0 1 0 1.29 1.29L9.178 4.11v3.31a.911.911 0 0 0 1.822 0v-5.51A.91.91 0 0 0 10.089 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M12.05 1H5.164a.949.949 0 1 0 0 1.898h4.595l-8.18 8.18a.95.95 0 0 0 1.344 1.344l8.18-8.18v4.595a.949.949 0 1 0 1.898 0V1.949A.95.95 0 0 0 12.05 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XXLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M14.01 1h-8a.99.99 0 0 0 0 1.979h5.613L1.551 13.05a.988.988 0 1 0 1.398 1.398L13.021 4.377v5.612a.99.99 0 0 0 1.979 0v-8A.99.99 0 0 0 14.01 1\"\n />\n </svg>\n );\n}\n\nconst LinkOut_M = createUIIcon(LinkOut_MSvg);\nconst LinkOut_L = createUIIcon(LinkOut_LSvg);\nconst LinkOut_XL = createUIIcon(LinkOut_XLSvg);\nconst LinkOut_XXL = createUIIcon(LinkOut_XXLSvg);\n\nexport default function LinkOut(props: LinkOutProps): JSX.Element {\n const { size = \"M\", class: className, width: _width, height: _height, ...rest } = props;\n switch (size) {\n case \"M\":\n return <LinkOut_M {...rest} class={className} />;\n case \"L\":\n return <LinkOut_L {...rest} class={className} />;\n case \"XL\":\n return <LinkOut_XL {...rest} class={className} />;\n case \"XXL\":\n return <LinkOut_XXL {...rest} class={className} />;\n default:\n return <LinkOut_M {...rest} class={className} />;\n }\n}\n\nexport const LinkOutIcon = LinkOut;\n","import { type JSX } from \"solid-js\";\nimport {\n SubmenuTrigger as HeadlessSubmenuTrigger,\n type SubmenuTriggerProps as HeadlessSubmenuTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\n\nexport interface SubmenuTriggerProps extends HeadlessSubmenuTriggerProps {}\n\n/**\n * A styled submenu trigger that opens a nested menu.\n */\nexport function SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element {\n return <HeadlessSubmenuTrigger {...props} />;\n}\n","import { type JSX, splitProps } from \"solid-js\";\nimport {\n ContextualHelpTrigger as HeadlessContextualHelpTrigger,\n type ContextualHelpTriggerProps as HeadlessContextualHelpTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { css } from \"../style\" with { type: \"macro\" };\n\n// The headless trigger hardcodes the class names on its internal button and\n// popover (`-trigger`/`-content`) and exposes no per-part class hook, so styling\n// must target them as descendants — including data-attribute and :hover/\n// :focus-visible states the single-element style() macro can't express. Styling\n// therefore flows through the css() macro escape hatch, which ships real CSS in\n// the package bundle (same asset pipeline as style()) and supports this nesting.\n// Values mirror the S2 neutral palette (fixed light-dark pairs, scheme-aware via\n// the Provider's color-scheme).\nconst triggerStyles = css(`\n & .solidaria-ContextualHelpTrigger-trigger {\n display: flex;\n align-items: center;\n padding-block: 8px;\n padding-inline: 16px;\n cursor: pointer;\n background: transparent;\n border: 0;\n color: light-dark(#222, #e6e6e6);\n border-radius: 8px;\n outline: none;\n }\n & .solidaria-ContextualHelpTrigger-trigger:hover {\n background: light-dark(#0000000d, #ffffff12);\n }\n & .solidaria-ContextualHelpTrigger-trigger:focus-visible {\n outline: 2px solid light-dark(#4b75ff, #4069fd);\n outline-offset: -2px;\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-unavailable] {\n color: light-dark(#8f8f8f, #7c7c7c);\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n }\n & .solidaria-ContextualHelpTrigger-content {\n margin-top: 4px;\n padding: 16px;\n min-width: 200px;\n background: light-dark(#fff, #222);\n border: 1px solid light-dark(#d5d5d5, #3d3d3d);\n border-radius: 8px;\n box-shadow: 0 4px 12px light-dark(#00000014, #0000003d), 0 2px 6px light-dark(#0000000f, #00000030);\n color: light-dark(#222, #e6e6e6);\n outline: none;\n }\n`);\n\nexport interface ContextualHelpTriggerProps extends Omit<\n HeadlessContextualHelpTriggerProps,\n \"class\" | \"children\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Convenience: title rendered as the trigger button label. */\n title?: string;\n /** Convenience: text content shown inside the popover. */\n content?: string;\n /** Visual variant for the trigger icon. */\n variant?: \"help\" | \"info\";\n /** Raw children tuple [trigger, content] — overrides title/content props. */\n children?: [JSX.Element, JSX.Element];\n}\n\nconst helpIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n ?\n </text>\n </svg>\n);\n\nconst infoIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n i\n </text>\n </svg>\n);\n\n/**\n * A button that opens contextual help in a popover.\n *\n * @example\n * ```tsx\n * // Convenience API\n * <ContextualHelpTrigger title=\"What is this?\" content=\"Help text here\" />\n *\n * // Children API\n * <ContextualHelpTrigger>\n * {[<span>Trigger</span>, <div>Content</div>]}\n * </ContextualHelpTrigger>\n * ```\n */\nexport function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"title\",\n \"content\",\n \"variant\",\n \"children\",\n \"aria-label\",\n ]);\n\n const children = (): [JSX.Element, JSX.Element] => {\n if (local.children) return local.children;\n const icon = local.variant === \"info\" ? infoIcon : helpIcon;\n const trigger = (\n <span style={{ display: \"inline-flex\", \"align-items\": \"center\", gap: \"4px\" }}>\n {icon}\n {local.title && <span>{local.title}</span>}\n </span>\n );\n const content = (\n <div>\n {local.title && (\n <div style={{ \"font-weight\": \"600\", \"margin-bottom\": \"4px\" }}>{local.title}</div>\n )}\n {local.content && <p style={{ margin: \"0\" }}>{local.content}</p>}\n </div>\n );\n return [trigger, content];\n };\n\n return (\n <HeadlessContextualHelpTrigger\n {...headlessProps}\n aria-label={local[\"aria-label\"] ?? local.title ?? \"Contextual help\"}\n class={[triggerStyles, local.class].filter(Boolean).join(\" \")}\n >\n {children()}\n </HeadlessContextualHelpTrigger>\n );\n}\n","import {\n type JSX,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Menu as HeadlessMenu,\n MenuItem as HeadlessMenuItem,\n MenuSection as HeadlessMenuSection,\n SubmenuTrigger as HeadlessSubmenuTrigger,\n MenuTrigger as HeadlessMenuTrigger,\n MenuButton as HeadlessMenuButton,\n Popover as HeadlessPopover,\n MenuTriggerContext,\n PopoverTriggerContext,\n type MenuProps as HeadlessMenuProps,\n type MenuItemProps as HeadlessMenuItemProps,\n type MenuSectionProps as HeadlessMenuSectionProps,\n type MenuTriggerProps as HeadlessMenuTriggerProps,\n type MenuButtonProps as HeadlessMenuButtonProps,\n type MenuRenderProps,\n type MenuItemRenderProps,\n type MenuTriggerRenderProps,\n type PopoverRenderProps,\n usePopoverTrigger,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { Key, Selection, SelectionMode } from \"@proyecto-viviana/solid-stately\";\nimport { useProviderProps, useTheme } from \"../provider\";\nimport type { StyleString } from \"../style\";\nimport { style, focusRing } from \"../style\" with { type: \"macro\" };\nimport { mergeStyles } from \"../style/runtime\";\nimport { pressScale } from \"../pressScale\";\nimport { centerBaseline } from \"../icon/center-baseline\";\nimport CheckmarkIcon from \"../icon/ui-icons/Checkmark\";\nimport S2ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport LinkOutIcon from \"../icon/ui-icons/LinkOut\";\nimport InfoCircleIcon from \"../icon/s2wf-icons/InfoCircleIcon\";\nimport { IconContext } from \"../icon/spectrum-icon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n HeaderContext,\n HeadingContext,\n KeyboardContext,\n Keyboard,\n Text,\n TextContext,\n} from \"../text\";\nimport {\n menu as s2Menu,\n menuFrame,\n menuItemDescriptor,\n menuItemDescriptorIcon,\n menuItem as s2MenuItem,\n menuItemCheckbox,\n menuItemCheckboxIcon,\n menuItemCheckmark,\n menuItemDescription,\n menuItemIcon,\n menuItemIconCenterWrapper,\n menuItemKeyboard,\n menuItemLabel,\n menuItemValue,\n menuPopover,\n menuSection,\n menuSectionHeader,\n menuSectionHeading,\n type S2MenuItemStyleProps,\n type S2MenuSize,\n} from \"./s2-menu-styles\";\nimport {\n MenuLinkOutIconContext,\n MenuSizeContext,\n MenuTriggerOptionsContext,\n type MenuAlign,\n type MenuDirection,\n} from \"./menu-context\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type MenuSize = S2MenuSize | \"sm\" | \"md\" | \"lg\";\nexport type { MenuAlign, MenuDirection };\n\nconst UnavailableMenuItemContext = createContext(false);\nexport const MenuContext = createContext<SpectrumContextValue<MenuProps<any>>>(null);\nconst linkOutIconSize: Record<S2MenuSize, \"M\" | \"L\" | \"XL\"> = {\n S: \"M\",\n M: \"L\",\n L: \"XL\",\n XL: \"XL\",\n};\nconst selectionIconSize: Record<S2MenuSize, \"XS\" | \"S\" | \"M\" | \"L\"> = {\n S: \"XS\",\n M: \"S\",\n L: \"M\",\n XL: \"L\",\n};\n\nexport interface MenuTriggerProps extends Omit<HeadlessMenuTriggerProps, \"class\" | \"style\"> {\n /** The size of the menu. */\n size?: MenuSize;\n /** Alignment of the menu relative to the trigger. @default 'start' */\n align?: MenuAlign;\n /** Where the Menu opens relative to its trigger. @default 'bottom' */\n direction?: MenuDirection;\n /** Whether the menu should automatically flip direction when space is limited. */\n shouldFlip?: boolean;\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface MenuButtonProps extends Omit<HeadlessMenuButtonProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Visual variant of the button. */\n variant?: \"primary\" | \"secondary\" | \"quiet\";\n}\n\nexport interface MenuProps<T> extends Omit<HeadlessMenuProps<T>, \"class\" | \"style\" | \"ref\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Hides the default link out icons on menu items that open links in a new tab. */\n hideLinkOutIcon?: boolean;\n /** The size of the menu. @default 'M' */\n size?: MenuSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu element. */\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport interface MenuItemProps<T> extends Omit<\n HeadlessMenuItemProps<T>,\n \"class\" | \"style\" | \"ref\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu item element (a `<div>`, or an `<a>` for link items). */\n ref?: RefLike<HTMLElement>;\n /**\n * Optional icon to display before the label.\n * Use a function returning JSX for SSR compatibility: `icon={() => <MyIcon />}`\n */\n icon?: () => JSX.Element;\n /** Optional keyboard shortcut to display. */\n shortcut?: string;\n /** Whether this is a destructive action. */\n isDestructive?: boolean;\n}\n\nexport interface MenuSectionProps extends Omit<HeadlessMenuSectionProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface UnavailableMenuItemTriggerProps {\n /** The menu item followed by contextual help popover content. */\n children: JSX.Element | JSX.Element[];\n /** Whether the menu item should expose unavailable contextual help. */\n isUnavailable?: boolean;\n}\n\n// The MenuButton (a Viviana convenience trigger; upstream S2 composes a plain\n// Button) is styled through the build-time S2 style() macro so the atomic CSS\n// ships in the package bundle for installed consumers. Interactive state\n// (hover/press/open/focus/disabled) is driven by the trigger render props.\ntype MenuButtonVariant = \"primary\" | \"secondary\" | \"quiet\";\n\nconst menuButtonStyles = style<\n MenuTriggerRenderProps & { size: S2MenuSize; variant: MenuButtonVariant }\n>({\n ...focusRing(),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"panel\",\n borderStyle: \"solid\",\n borderWidth: 1,\n fontWeight: \"medium\",\n cursor: \"default\",\n transition: \"default\",\n height: { size: { S: 32, M: 40, L: 48, XL: 56 } },\n font: { size: { S: \"ui-sm\", M: \"ui\", L: \"ui-lg\", XL: \"ui-xl\" } },\n paddingX: { size: { S: 12, M: 16, L: 20, XL: 24 } },\n gap: { size: { S: 8, M: 8, L: 12, XL: 12 } },\n backgroundColor: {\n variant: {\n primary: { default: \"accent\", isHovered: \"accent-800\", isPressed: \"accent-800\" },\n secondary: { default: \"layer-2\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n quiet: { default: \"transparent\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n },\n isDisabled: \"disabled\",\n },\n borderColor: {\n variant: {\n primary: \"transparent\",\n secondary: { default: \"gray-300\", isHovered: \"gray-400\" },\n quiet: \"transparent\",\n },\n isDisabled: \"transparent\",\n },\n color: {\n default: \"neutral\",\n variant: { primary: \"white\" },\n isDisabled: \"disabled\",\n },\n});\n\nconst menuButtonChevronStyles = style<{ size: S2MenuSize; isOpen?: boolean }>({\n flexShrink: 0,\n transition: \"default\",\n width: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n height: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n rotate: { default: 0, isOpen: 180 },\n});\n\nconst triggerWrapperStyles = style({\n position: \"relative\",\n display: \"inline-block\",\n});\n\nconst separatorStyles = style({\n marginY: 4,\n borderTopWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n});\n\nconst destructiveTextStyles = style({\n color: \"negative\",\n});\n\nfunction normalizeMenuSize(size?: MenuSize): S2MenuSize {\n switch (size) {\n case \"sm\":\n case \"S\":\n return \"S\";\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"XL\":\n return \"XL\";\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction isTextOnlyChildren(children: unknown): children is string | number {\n return typeof children === \"string\" || typeof children === \"number\";\n}\n\nfunction menuPlacement(direction: MenuDirection | undefined, align: MenuAlign | undefined): string {\n const resolvedDirection = direction ?? \"bottom\";\n const resolvedAlign = align ?? \"start\";\n\n switch (resolvedDirection) {\n case \"left\":\n case \"right\":\n case \"start\":\n case \"end\":\n return `${resolvedDirection} ${resolvedAlign === \"end\" ? \"bottom\" : \"top\"}`;\n case \"bottom\":\n case \"top\":\n default:\n return `${resolvedDirection} ${resolvedAlign}`;\n }\n}\n\nfunction menuPlacementAxis(\n direction: MenuDirection | undefined,\n): NonNullable<PopoverRenderProps[\"placement\"]> {\n if (direction === \"start\") {\n return \"left\";\n }\n if (direction === \"end\") {\n return \"right\";\n }\n return direction ?? \"bottom\";\n}\n\n/**\n * A menu trigger wraps a button and menu, handling the open/close state.\n */\nexport function MenuTrigger(props: MenuTriggerProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"align\",\n \"direction\",\n \"shouldFlip\",\n \"class\",\n ]);\n const size = () => normalizeMenuSize(local.size);\n\n return (\n <MenuSizeContext.Provider value={size()}>\n <div class={[triggerWrapperStyles, local.class].filter(Boolean).join(\" \")}>\n <HeadlessMenuTrigger {...headlessProps}>\n <MenuTriggerOverlayContext\n align={() => local.align}\n direction={() => local.direction}\n shouldFlip={() => local.shouldFlip}\n >\n {props.children}\n </MenuTriggerOverlayContext>\n </HeadlessMenuTrigger>\n </div>\n </MenuSizeContext.Provider>\n );\n}\n\ninterface MenuTriggerOverlayContextProps {\n children: JSX.Element;\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nfunction MenuTriggerOverlayContext(props: MenuTriggerOverlayContextProps): JSX.Element {\n const triggerContext = useContext(MenuTriggerContext);\n const [triggerElement, setTriggerElement] = createSignal<HTMLElement | null>(null);\n const triggerId = createUniqueId();\n\n const popoverTriggerContext = {\n state: {\n isOpen: () => triggerContext?.state.isOpen() ?? false,\n open: () => triggerContext?.state.open(),\n close: () => triggerContext?.state.close(),\n toggle: () => triggerContext?.state.toggle(),\n },\n triggerRef: () => triggerElement(),\n setTriggerRef: (element: HTMLElement | null) => {\n if (!element) {\n return;\n }\n\n const current = triggerElement();\n if (!current || !current.isConnected) {\n setTriggerElement(element);\n }\n },\n triggerId,\n trigger: \"MenuTrigger\",\n };\n\n return (\n <MenuTriggerOptionsContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip,\n }}\n >\n <PopoverTriggerContext.Provider value={popoverTriggerContext}>\n {props.children}\n </PopoverTriggerContext.Provider>\n </MenuTriggerOptionsContext.Provider>\n );\n}\n\n/**\n * A button that opens a menu.\n * SSR-compatible - renders children and chevron icon directly without render props.\n */\nexport function MenuButton(props: MenuButtonProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\"class\", \"variant\", \"ref\"]);\n const size = useContext(MenuSizeContext);\n const popoverTrigger = usePopoverTrigger();\n const variant = local.variant ?? \"secondary\";\n const customClass = local.class ?? \"\";\n\n const getClassName = (renderProps: MenuTriggerRenderProps): string =>\n [menuButtonStyles({ ...renderProps, size, variant }), customClass].filter(Boolean).join(\" \");\n\n return (\n <HeadlessMenuButton\n {...headlessProps}\n ref={(element) => {\n popoverTrigger?.setTriggerRef(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n >\n {(renderProps) => (\n <>\n {props.children as JSX.Element}\n <ChevronIcon class={menuButtonChevronStyles({ size, isOpen: renderProps.isOpen })} />\n </>\n )}\n </HeadlessMenuButton>\n );\n}\n\n/**\n * A menu displays a list of actions or options for the user to choose from.\n */\nexport function Menu<T>(props: MenuProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(MenuContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"class\",\n \"hideLinkOutIcon\",\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"slot\",\n \"children\",\n ]);\n const triggerSize = useContext(MenuSizeContext);\n const size = () => normalizeMenuSize(local.size ?? triggerSize);\n const theme = useTheme();\n const popoverTrigger = usePopoverTrigger();\n const triggerOptions = useContext(MenuTriggerOptionsContext);\n const isSubmenu = () => popoverTrigger?.trigger === \"SubmenuTrigger\";\n const isMenuTriggerPopover = () => popoverTrigger?.trigger === \"MenuTrigger\";\n const isPopoverMenu = () => isSubmenu() || isMenuTriggerPopover();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const mergedRef = mergeContextRefs(contextProps?.ref, props.ref);\n const mergedUnsafeClassName = () =>\n [contextProps?.UNSAFE_className, props.UNSAFE_className].filter(Boolean).join(\" \");\n\n const getClassName = (renderProps: MenuRenderProps): string => {\n const baseClassName = s2Menu({ ...renderProps, size: size() });\n if (isPopoverMenu()) {\n return baseClassName;\n }\n\n return [mergedUnsafeClassName(), mergeStyles(baseClassName, mergedStyles()), local.class]\n .filter(Boolean)\n .join(\" \");\n };\n const getStandaloneStyle = () => (isPopoverMenu() ? {} : (mergedUnsafeStyle() ?? {}));\n const getFrameClassName = () =>\n [\n menuFrame,\n mergedUnsafeClassName(),\n mergeContextStyles(contextProps?.styles, props.styles),\n local.class,\n ]\n .filter(Boolean)\n .join(\" \");\n const getFrameStyle = () => mergedUnsafeStyle();\n const popoverPlacement = () =>\n menuPlacement(triggerOptions?.direction(), triggerOptions?.align());\n const popoverPlacementAxis = () => menuPlacementAxis(triggerOptions?.direction());\n const popoverShouldFlip = () => triggerOptions?.shouldFlip();\n const getPopoverClassName = (renderProps: PopoverRenderProps): string => {\n return menuPopover({\n ...renderProps,\n placement: renderProps.placement ?? popoverPlacementAxis(),\n colorScheme: theme.colorScheme,\n });\n };\n const menuContent = () => (\n <MenuSizeContext.Provider value={size()}>\n <HeaderContext.Provider value={{ styles: () => menuSectionHeader({ size: size() }) }}>\n <HeadingContext.Provider\n value={{\n role: \"presentation\",\n styles: menuSectionHeading,\n }}\n >\n <TextContext.Provider\n value={{\n slots: {\n default: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n styles: () =>\n menuItemDescription({\n size: size(),\n isFocused: false,\n isDisabled: false,\n }),\n \"data-rsp-slot\": \"text\",\n },\n },\n }}\n >\n <HeadlessMenu\n {...headlessProps}\n ref={mergedRef}\n class={getClassName}\n style={getStandaloneStyle}\n children={local.children}\n />\n </TextContext.Provider>\n </HeadingContext.Provider>\n </HeaderContext.Provider>\n </MenuSizeContext.Provider>\n );\n\n if (isSubmenu()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"SubmenuTrigger\"\n placement=\"end top\"\n offset={-2}\n crossOffset={-8}\n isNonModal\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n if (isMenuTriggerPopover()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"MenuTrigger\"\n triggerRef={() => popoverTrigger?.triggerRef() ?? null}\n placement={popoverPlacement() as never}\n offset={8}\n shouldFlip={popoverShouldFlip()}\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n {menuContent()}\n </MenuLinkOutIconContext.Provider>\n );\n}\n\n/**\n * An item in a menu.\n * SSR-compatible - renders icon, content, and shortcut directly without render props.\n */\nexport function MenuItem<T>(props: MenuItemProps<T>): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"icon\",\n \"shortcut\",\n \"isDestructive\",\n ]);\n const size = useContext(MenuSizeContext);\n const hideLinkOutIcon = useContext(MenuLinkOutIconContext);\n const isUnavailable = useContext(UnavailableMenuItemContext);\n const locale = useLocale();\n const customClass = local.class ?? \"\";\n const unavailableDescriptionId = createUniqueId();\n const stringFormatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const isLinkOut = () => headlessProps.href != null && headlessProps.target === \"_blank\";\n const chevronStyle = () =>\n locale().direction === \"rtl\" ? ({ transform: \"scaleX(-1)\" } as JSX.CSSProperties) : undefined;\n const [itemElement, setItemElement] = createSignal<HTMLElement | null>(null);\n const mergedStyles = () => (typeof local.styles === \"function\" ? local.styles() : local.styles);\n\n const getClassName = (renderProps: MenuItemRenderProps): string => {\n const isFocused = (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused;\n return [\n local.UNSAFE_className,\n mergeStyles(\n s2MenuItem({\n ...renderProps,\n isFocused,\n size,\n isLink: headlessProps.href != null,\n }),\n mergedStyles(),\n ),\n local.isDestructive ? destructiveTextStyles : \"\",\n customClass,\n ]\n .filter(Boolean)\n .join(\" \");\n };\n const itemStyleProps = (renderProps: MenuItemRenderProps): S2MenuItemStyleProps => ({\n ...renderProps,\n isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused,\n size,\n isLink: headlessProps.href != null,\n });\n const getStyle = (renderProps: MenuItemRenderProps) =>\n pressScale(() => itemElement(), local.UNSAFE_style)(renderProps);\n const iconContextValue = {\n slot: \"icon\",\n render: centerBaseline({\n slot: \"icon\",\n styles: menuItemIconCenterWrapper,\n }),\n styles: menuItemIcon,\n };\n const textContextValue = (renderProps: MenuItemRenderProps) => ({\n slots: {\n default: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n // Carry the headless description-slot id so the item's\n // `aria-describedby` resolves to this element (upstream two-context\n // `Text` delegation).\n id: renderProps.descriptionProps?.id,\n styles: () => menuItemDescription(itemStyleProps(renderProps)),\n \"data-rsp-slot\": \"text\",\n },\n value: {\n styles: menuItemValue,\n \"data-rsp-slot\": \"value\",\n },\n },\n });\n const keyboardContextValue = (renderProps: MenuItemRenderProps) => ({\n // Carry the headless keyboard-slot id so it too is referenced by the item's\n // `aria-describedby`.\n id: renderProps.keyboardShortcutProps?.id,\n styles: () => menuItemKeyboard(itemStyleProps(renderProps)),\n });\n const MenuItemContents = (contentProps: { renderProps: MenuItemRenderProps }) => {\n const children =\n typeof local.children === \"function\"\n ? (local.children as (props: MenuItemRenderProps) => JSX.Element)(contentProps.renderProps)\n : local.children;\n\n return (\n <>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"single\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <CheckmarkIcon\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n size={selectionIconSize[size]}\n class={menuItemCheckmark(itemStyleProps(contentProps.renderProps))}\n />\n </Show>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"multiple\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <span\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n class={menuItemCheckbox(itemStyleProps(contentProps.renderProps))}\n >\n <Show when={contentProps.renderProps.isSelected}>\n <CheckmarkIcon\n size={selectionIconSize[size]}\n class={menuItemCheckboxIcon as unknown as string}\n />\n </Show>\n </span>\n </Show>\n {local.icon?.()}\n {isTextOnlyChildren(children) ? <Text slot=\"label\">{children}</Text> : children}\n {local.shortcut ? <Keyboard>{local.shortcut}</Keyboard> : null}\n <Show when={isLinkOut() && !hideLinkOutIcon}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <LinkOutIcon size={linkOutIconSize[size]} class={menuItemDescriptorIcon({ size })} />\n </span>\n </Show>\n <Show when={contentProps.renderProps.hasSubmenu && !isUnavailable}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <S2ChevronIcon\n size={size}\n class={menuItemDescriptorIcon({ size })}\n style={chevronStyle()}\n />\n </span>\n </Show>\n <Show when={isUnavailable}>\n <span\n id={unavailableDescriptionId}\n slot=\"descriptor\"\n class={menuItemDescriptor}\n data-rsp-slot=\"descriptor\"\n >\n <InfoCircleIcon\n aria-label={stringFormatter().format(\"menu.unavailable\")}\n class={menuItemDescriptorIcon({ size })}\n />\n </span>\n </Show>\n </>\n );\n };\n\n const renderChildren = (renderProps: MenuItemRenderProps) => {\n return (\n <IconContext.Provider value={iconContextValue}>\n <TextContext.Provider value={textContextValue(renderProps)}>\n <KeyboardContext.Provider value={keyboardContextValue(renderProps)}>\n <MenuItemContents renderProps={renderProps} />\n </KeyboardContext.Provider>\n </TextContext.Provider>\n </IconContext.Provider>\n );\n };\n\n const ariaDescribedBy = () =>\n [\n (headlessProps as { \"aria-describedby\"?: string })[\"aria-describedby\"],\n isUnavailable ? unavailableDescriptionId : undefined,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <HeadlessMenuItem\n {...headlessProps}\n aria-describedby={ariaDescribedBy()}\n ref={(element) => {\n setItemElement(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n );\n}\n\nexport function UnavailableMenuItemTrigger(props: UnavailableMenuItemTriggerProps): JSX.Element {\n const children = () =>\n (Array.isArray(props.children) ? props.children : [props.children]) as JSX.Element[];\n\n return (\n <Show when={props.isUnavailable} fallback={children()[0]}>\n <UnavailableMenuItemContext.Provider value>\n <HeadlessSubmenuTrigger>{children()}</HeadlessSubmenuTrigger>\n </UnavailableMenuItemContext.Provider>\n </Show>\n );\n}\n\nexport function MenuSection(props: MenuSectionProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\"]);\n const size = useContext(MenuSizeContext);\n\n return (\n <HeadlessMenuSection\n {...headlessProps}\n class={[menuSection({ size }), local.class ?? \"\"].filter(Boolean).join(\" \")}\n >\n {props.children}\n </HeadlessMenuSection>\n );\n}\n\nexport interface MenuSeparatorProps {\n /** Additional CSS class name. */\n class?: string;\n}\n\n/**\n * A visual separator between menu items.\n */\nexport function MenuSeparator(props: MenuSeparatorProps): JSX.Element {\n return (\n <div role=\"separator\" class={[separatorStyles, props.class].filter(Boolean).join(\" \")} />\n );\n}\n\nfunction ChevronIcon(props: { class?: string }): JSX.Element {\n return (\n <svg class={props.class} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n}\n\nMenu.Item = MenuItem;\nMenu.Section = MenuSection;\nMenu.Separator = MenuSeparator;\nMenuTrigger.Button = MenuButton;\n\nexport const Item = MenuItem;\nexport const Section = MenuSection;\n\nexport type { Key, Selection, SelectionMode };\n\nexport { SubmenuTrigger } from \"./SubmenuTrigger\";\nexport type { SubmenuTriggerProps } from \"./SubmenuTrigger\";\nexport { ContextualHelpTrigger } from \"./ContextualHelpTrigger\";\nexport type { ContextualHelpTriggerProps } from \"./ContextualHelpTrigger\";\nexport { Collection } from \"@proyecto-viviana/solidaria-components\";\nexport { ContextualHelpPopover } from \"../contextualhelp\";\nexport type { ContextualHelpPopoverProps } from \"../contextualhelp\";\nexport { Content, Header, Heading, Keyboard, Text } from \"../text\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","names":["JSX","createUIIcon","LinkOutProps","SvgSVGAttributes","SVGSVGElement","size","LinkOut_MSvg","props","Element","class","className","width","_width","height","_height","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","LinkOut_LSvg","_el$2","_tmpl$2","LinkOut_XLSvg","_el$3","_tmpl$3","LinkOut_XXLSvg","_el$4","_tmpl$4","LinkOut_M","LinkOut_L","LinkOut_XL","LinkOut_XXL","LinkOut","_$createComponent","LinkOutIcon","JSX","SubmenuTrigger","HeadlessSubmenuTrigger","SubmenuTriggerProps","HeadlessSubmenuTriggerProps","props","Element","_$createComponent"],"sources":["../../src/menu/menu-context.ts","../../src/icon/ui-icons/LinkOut.tsx","../../src/menu/SubmenuTrigger.tsx","../../src/menu/ContextualHelpTrigger.tsx","../../src/menu/index.tsx"],"sourcesContent":["import { createContext } from \"solid-js\";\nimport type { S2MenuSize } from \"./s2-menu-styles\";\n\nexport type MenuAlign = \"start\" | \"end\";\nexport type MenuDirection = \"top\" | \"bottom\" | \"start\" | \"end\" | \"left\" | \"right\";\n\nexport interface MenuTriggerOptionsContextValue {\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nexport const MenuSizeContext = createContext<S2MenuSize>(\"M\");\nexport const MenuLinkOutIconContext = createContext(false);\nexport const MenuTriggerOptionsContext = createContext<MenuTriggerOptionsContextValue | null>(null);\n","/*\n * Auto-generated from the shipped @react-spectrum/s2 dist assets (SVGO-\n * optimized — pixel parity requires the shipped path data, not the raw\n * vendored .svg sources). Variants absent from the dist (Arrow, Gripper)\n * fall back to the vendored sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createUIIcon } from \"../spectrum-icon\";\n\nexport type LinkOutProps = JSX.SvgSVGAttributes<SVGSVGElement> & {\n size?: \"M\" | \"L\" | \"XL\" | \"XXL\";\n};\n\nfunction LinkOut_MSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M8.125 1H3.741a.875.875 0 1 0 0 1.75h2.27l-4.88 4.88a.88.88 0 0 0 0 1.24.873.873 0 0 0 1.238 0L7.25 3.987v2.27a.875.875 0 1 0 1.75 0V1.876A.875.875 0 0 0 8.125 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_LSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M10.089 1h-5.51a.911.911 0 0 0 0 1.822h3.31L1.355 9.355a.91.91 0 1 0 1.29 1.29L9.178 4.11v3.31a.911.911 0 0 0 1.822 0v-5.51A.91.91 0 0 0 10.089 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M12.05 1H5.164a.949.949 0 1 0 0 1.898h4.595l-8.18 8.18a.95.95 0 0 0 1.344 1.344l8.18-8.18v4.595a.949.949 0 1 0 1.898 0V1.949A.95.95 0 0 0 12.05 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XXLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M14.01 1h-8a.99.99 0 0 0 0 1.979h5.613L1.551 13.05a.988.988 0 1 0 1.398 1.398L13.021 4.377v5.612a.99.99 0 0 0 1.979 0v-8A.99.99 0 0 0 14.01 1\"\n />\n </svg>\n );\n}\n\nconst LinkOut_M = createUIIcon(LinkOut_MSvg);\nconst LinkOut_L = createUIIcon(LinkOut_LSvg);\nconst LinkOut_XL = createUIIcon(LinkOut_XLSvg);\nconst LinkOut_XXL = createUIIcon(LinkOut_XXLSvg);\n\nexport default function LinkOut(props: LinkOutProps): JSX.Element {\n const { size = \"M\", class: className, width: _width, height: _height, ...rest } = props;\n switch (size) {\n case \"M\":\n return <LinkOut_M {...rest} class={className} />;\n case \"L\":\n return <LinkOut_L {...rest} class={className} />;\n case \"XL\":\n return <LinkOut_XL {...rest} class={className} />;\n case \"XXL\":\n return <LinkOut_XXL {...rest} class={className} />;\n default:\n return <LinkOut_M {...rest} class={className} />;\n }\n}\n\nexport const LinkOutIcon = LinkOut;\n","import { type JSX } from \"solid-js\";\nimport {\n SubmenuTrigger as HeadlessSubmenuTrigger,\n type SubmenuTriggerProps as HeadlessSubmenuTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\n\nexport interface SubmenuTriggerProps extends HeadlessSubmenuTriggerProps {}\n\n/**\n * A styled submenu trigger that opens a nested menu.\n */\nexport function SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element {\n return <HeadlessSubmenuTrigger {...props} />;\n}\n","import { type JSX, splitProps } from \"solid-js\";\nimport {\n ContextualHelpTrigger as HeadlessContextualHelpTrigger,\n type ContextualHelpTriggerProps as HeadlessContextualHelpTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { css } from \"../style\" with { type: \"macro\" };\n\n// The headless trigger hardcodes the class names on its internal button and\n// popover (`-trigger`/`-content`) and exposes no per-part class hook, so styling\n// must target them as descendants — including data-attribute and :hover/\n// :focus-visible states the single-element style() macro can't express. Styling\n// therefore flows through the css() macro escape hatch, which ships real CSS in\n// the package bundle (same asset pipeline as style()) and supports this nesting.\n// Values mirror the S2 neutral palette (fixed light-dark pairs, scheme-aware via\n// the Provider's color-scheme).\nconst triggerStyles = css(`\n & .solidaria-ContextualHelpTrigger-trigger {\n display: flex;\n align-items: center;\n padding-block: 8px;\n padding-inline: 16px;\n cursor: pointer;\n background: transparent;\n border: 0;\n color: light-dark(#222, #e6e6e6);\n border-radius: 8px;\n outline: none;\n }\n & .solidaria-ContextualHelpTrigger-trigger:hover {\n background: light-dark(#0000000d, #ffffff12);\n }\n & .solidaria-ContextualHelpTrigger-trigger:focus-visible {\n outline: 2px solid light-dark(#4b75ff, #4069fd);\n outline-offset: -2px;\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-unavailable] {\n color: light-dark(#8f8f8f, #7c7c7c);\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n }\n & .solidaria-ContextualHelpTrigger-content {\n margin-top: 4px;\n padding: 16px;\n min-width: 200px;\n background: light-dark(#fff, #222);\n border: 1px solid light-dark(#d5d5d5, #3d3d3d);\n border-radius: 8px;\n box-shadow: 0 4px 12px light-dark(#00000014, #0000003d), 0 2px 6px light-dark(#0000000f, #00000030);\n color: light-dark(#222, #e6e6e6);\n outline: none;\n }\n`);\n\nexport interface ContextualHelpTriggerProps extends Omit<\n HeadlessContextualHelpTriggerProps,\n \"class\" | \"children\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Convenience: title rendered as the trigger button label. */\n title?: string;\n /** Convenience: text content shown inside the popover. */\n content?: string;\n /** Visual variant for the trigger icon. */\n variant?: \"help\" | \"info\";\n /** Raw children tuple [trigger, content] — overrides title/content props. */\n children?: [JSX.Element, JSX.Element];\n}\n\nconst helpIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n ?\n </text>\n </svg>\n);\n\nconst infoIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n i\n </text>\n </svg>\n);\n\n/**\n * A button that opens contextual help in a popover.\n *\n * @example\n * ```tsx\n * // Convenience API\n * <ContextualHelpTrigger title=\"What is this?\" content=\"Help text here\" />\n *\n * // Children API\n * <ContextualHelpTrigger>\n * {[<span>Trigger</span>, <div>Content</div>]}\n * </ContextualHelpTrigger>\n * ```\n */\nexport function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"title\",\n \"content\",\n \"variant\",\n \"children\",\n \"aria-label\",\n ]);\n\n const children = (): [JSX.Element, JSX.Element] => {\n if (local.children) return local.children;\n const icon = local.variant === \"info\" ? infoIcon : helpIcon;\n const trigger = (\n <span style={{ display: \"inline-flex\", \"align-items\": \"center\", gap: \"4px\" }}>\n {icon}\n {local.title && <span>{local.title}</span>}\n </span>\n );\n const content = (\n <div>\n {local.title && (\n <div style={{ \"font-weight\": \"600\", \"margin-bottom\": \"4px\" }}>{local.title}</div>\n )}\n {local.content && <p style={{ margin: \"0\" }}>{local.content}</p>}\n </div>\n );\n return [trigger, content];\n };\n\n return (\n <HeadlessContextualHelpTrigger\n {...headlessProps}\n aria-label={local[\"aria-label\"] ?? local.title ?? \"Contextual help\"}\n class={[triggerStyles, local.class].filter(Boolean).join(\" \")}\n >\n {children()}\n </HeadlessContextualHelpTrigger>\n );\n}\n","import {\n type JSX,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Menu as HeadlessMenu,\n MenuItem as HeadlessMenuItem,\n MenuSection as HeadlessMenuSection,\n SubmenuTrigger as HeadlessSubmenuTrigger,\n MenuTrigger as HeadlessMenuTrigger,\n MenuButton as HeadlessMenuButton,\n Popover as HeadlessPopover,\n MenuTriggerContext,\n PopoverTriggerContext,\n type MenuProps as HeadlessMenuProps,\n type MenuItemProps as HeadlessMenuItemProps,\n type MenuSectionProps as HeadlessMenuSectionProps,\n type MenuTriggerProps as HeadlessMenuTriggerProps,\n type MenuButtonProps as HeadlessMenuButtonProps,\n type MenuRenderProps,\n type MenuItemRenderProps,\n type MenuTriggerRenderProps,\n type PopoverRenderProps,\n usePopoverTrigger,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { Key, Selection, SelectionMode } from \"@proyecto-viviana/solid-stately\";\nimport { useProviderProps, useTheme } from \"../provider\";\nimport type { StyleString } from \"../style\";\nimport { style, focusRing } from \"../style\" with { type: \"macro\" };\nimport { mergeStyles } from \"../style/runtime\";\nimport { pressScale } from \"../pressScale\";\nimport { centerBaseline } from \"../icon/center-baseline\";\nimport CheckmarkIcon from \"../icon/ui-icons/Checkmark\";\nimport S2ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport LinkOutIcon from \"../icon/ui-icons/LinkOut\";\nimport InfoCircleIcon from \"../icon/s2wf-icons/InfoCircleIcon\";\nimport { IconContext } from \"../icon/spectrum-icon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n HeaderContext,\n HeadingContext,\n KeyboardContext,\n Keyboard,\n Text,\n TextContext,\n} from \"../text\";\nimport {\n menu as s2Menu,\n menuFrame,\n menuItemDescriptor,\n menuItemDescriptorIcon,\n menuItem as s2MenuItem,\n menuItemCheckbox,\n menuItemCheckboxIcon,\n menuItemCheckmark,\n menuItemDescription,\n menuItemIcon,\n menuItemIconCenterWrapper,\n menuItemKeyboard,\n menuItemLabel,\n menuItemValue,\n menuPopover,\n menuSection,\n menuSectionHeader,\n menuSectionHeading,\n type S2MenuItemStyleProps,\n type S2MenuSize,\n} from \"./s2-menu-styles\";\nimport {\n MenuLinkOutIconContext,\n MenuSizeContext,\n MenuTriggerOptionsContext,\n type MenuAlign,\n type MenuDirection,\n} from \"./menu-context\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type MenuSize = S2MenuSize | \"sm\" | \"md\" | \"lg\";\nexport type { MenuAlign, MenuDirection };\n\nconst UnavailableMenuItemContext = createContext(false);\nexport const MenuContext = createContext<SpectrumContextValue<MenuProps<any>>>(null);\nconst linkOutIconSize: Record<S2MenuSize, \"M\" | \"L\" | \"XL\"> = {\n S: \"M\",\n M: \"L\",\n L: \"XL\",\n XL: \"XL\",\n};\nconst selectionIconSize: Record<S2MenuSize, \"XS\" | \"S\" | \"M\" | \"L\"> = {\n S: \"XS\",\n M: \"S\",\n L: \"M\",\n XL: \"L\",\n};\n\nexport interface MenuTriggerProps extends Omit<HeadlessMenuTriggerProps, \"class\" | \"style\"> {\n /** The size of the menu. */\n size?: MenuSize;\n /** Alignment of the menu relative to the trigger. @default 'start' */\n align?: MenuAlign;\n /** Where the Menu opens relative to its trigger. @default 'bottom' */\n direction?: MenuDirection;\n /** Whether the menu should automatically flip direction when space is limited. */\n shouldFlip?: boolean;\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface MenuButtonProps extends Omit<HeadlessMenuButtonProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Visual variant of the button. */\n variant?: \"primary\" | \"secondary\" | \"quiet\";\n}\n\nexport interface MenuProps<T> extends Omit<HeadlessMenuProps<T>, \"class\" | \"style\" | \"ref\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Hides the default link out icons on menu items that open links in a new tab. */\n hideLinkOutIcon?: boolean;\n /** The size of the menu. @default 'M' */\n size?: MenuSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu element. */\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport interface MenuItemProps<T> extends Omit<\n HeadlessMenuItemProps<T>,\n \"class\" | \"style\" | \"ref\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu item element (a `<div>`, or an `<a>` for link items). */\n ref?: RefLike<HTMLElement>;\n /**\n * Optional icon to display before the label.\n * Use a function returning JSX for SSR compatibility: `icon={() => <MyIcon />}`\n */\n icon?: () => JSX.Element;\n /** Optional keyboard shortcut to display. */\n shortcut?: string;\n /** Whether this is a destructive action. */\n isDestructive?: boolean;\n}\n\nexport interface MenuSectionProps extends Omit<HeadlessMenuSectionProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface UnavailableMenuItemTriggerProps {\n /** The menu item followed by contextual help popover content. */\n children: JSX.Element | JSX.Element[];\n /** Whether the menu item should expose unavailable contextual help. */\n isUnavailable?: boolean;\n}\n\n// The MenuButton (a Viviana convenience trigger; upstream S2 composes a plain\n// Button) is styled through the build-time S2 style() macro so the atomic CSS\n// ships in the package bundle for installed consumers. Interactive state\n// (hover/press/open/focus/disabled) is driven by the trigger render props.\ntype MenuButtonVariant = \"primary\" | \"secondary\" | \"quiet\";\n\nconst menuButtonStyles = style<\n MenuTriggerRenderProps & { size: S2MenuSize; variant: MenuButtonVariant }\n>({\n ...focusRing(),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"panel\",\n borderStyle: \"solid\",\n borderWidth: 1,\n fontWeight: \"medium\",\n cursor: \"default\",\n transition: \"default\",\n height: { size: { S: 32, M: 40, L: 48, XL: 56 } },\n font: { size: { S: \"ui-sm\", M: \"ui\", L: \"ui-lg\", XL: \"ui-xl\" } },\n paddingX: { size: { S: 12, M: 16, L: 20, XL: 24 } },\n gap: { size: { S: 8, M: 8, L: 12, XL: 12 } },\n backgroundColor: {\n variant: {\n primary: { default: \"accent\", isHovered: \"accent-800\", isPressed: \"accent-800\" },\n secondary: { default: \"layer-2\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n quiet: { default: \"transparent\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n },\n isDisabled: \"disabled\",\n },\n borderColor: {\n variant: {\n primary: \"transparent\",\n secondary: { default: \"gray-300\", isHovered: \"gray-400\" },\n quiet: \"transparent\",\n },\n isDisabled: \"transparent\",\n },\n color: {\n default: \"neutral\",\n variant: { primary: \"white\" },\n isDisabled: \"disabled\",\n },\n});\n\nconst menuButtonChevronStyles = style<{ size: S2MenuSize; isOpen?: boolean }>({\n flexShrink: 0,\n transition: \"default\",\n width: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n height: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n rotate: { default: 0, isOpen: 180 },\n});\n\nconst triggerWrapperStyles = style({\n position: \"relative\",\n display: \"inline-block\",\n});\n\nconst separatorStyles = style({\n marginY: 4,\n borderTopWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n});\n\nconst destructiveTextStyles = style({\n color: \"negative\",\n});\n\nfunction normalizeMenuSize(size?: MenuSize): S2MenuSize {\n switch (size) {\n case \"sm\":\n case \"S\":\n return \"S\";\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"XL\":\n return \"XL\";\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction isTextOnlyChildren(children: unknown): children is string | number {\n return typeof children === \"string\" || typeof children === \"number\";\n}\n\nfunction menuPlacement(direction: MenuDirection | undefined, align: MenuAlign | undefined): string {\n const resolvedDirection = direction ?? \"bottom\";\n const resolvedAlign = align ?? \"start\";\n\n switch (resolvedDirection) {\n case \"left\":\n case \"right\":\n case \"start\":\n case \"end\":\n return `${resolvedDirection} ${resolvedAlign === \"end\" ? \"bottom\" : \"top\"}`;\n case \"bottom\":\n case \"top\":\n default:\n return `${resolvedDirection} ${resolvedAlign}`;\n }\n}\n\nfunction menuPlacementAxis(\n direction: MenuDirection | undefined,\n): NonNullable<PopoverRenderProps[\"placement\"]> {\n if (direction === \"start\") {\n return \"left\";\n }\n if (direction === \"end\") {\n return \"right\";\n }\n return direction ?? \"bottom\";\n}\n\n/**\n * A menu trigger wraps a button and menu, handling the open/close state.\n */\nexport function MenuTrigger(props: MenuTriggerProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"align\",\n \"direction\",\n \"shouldFlip\",\n \"class\",\n ]);\n const size = () => normalizeMenuSize(local.size);\n\n return (\n <MenuSizeContext.Provider value={size()}>\n <div class={[triggerWrapperStyles, local.class].filter(Boolean).join(\" \")}>\n <HeadlessMenuTrigger {...headlessProps}>\n <MenuTriggerOverlayContext\n align={() => local.align}\n direction={() => local.direction}\n shouldFlip={() => local.shouldFlip}\n >\n {props.children}\n </MenuTriggerOverlayContext>\n </HeadlessMenuTrigger>\n </div>\n </MenuSizeContext.Provider>\n );\n}\n\ninterface MenuTriggerOverlayContextProps {\n children: JSX.Element;\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nfunction MenuTriggerOverlayContext(props: MenuTriggerOverlayContextProps): JSX.Element {\n const triggerContext = useContext(MenuTriggerContext);\n const [triggerElement, setTriggerElement] = createSignal<HTMLElement | null>(null);\n const triggerId = createUniqueId();\n\n const popoverTriggerContext = {\n state: {\n isOpen: () => triggerContext?.state.isOpen() ?? false,\n open: () => triggerContext?.state.open(),\n close: () => triggerContext?.state.close(),\n toggle: () => triggerContext?.state.toggle(),\n },\n triggerRef: () => triggerElement(),\n setTriggerRef: (element: HTMLElement | null) => {\n if (!element) {\n return;\n }\n\n const current = triggerElement();\n if (!current || !current.isConnected) {\n setTriggerElement(element);\n }\n },\n triggerId,\n trigger: \"MenuTrigger\",\n };\n\n return (\n <MenuTriggerOptionsContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip,\n }}\n >\n <PopoverTriggerContext.Provider value={popoverTriggerContext}>\n {props.children}\n </PopoverTriggerContext.Provider>\n </MenuTriggerOptionsContext.Provider>\n );\n}\n\n/**\n * A button that opens a menu.\n * SSR-compatible - renders children and chevron icon directly without render props.\n */\nexport function MenuButton(props: MenuButtonProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\"class\", \"variant\", \"ref\"]);\n const size = useContext(MenuSizeContext);\n const popoverTrigger = usePopoverTrigger();\n const variant = local.variant ?? \"secondary\";\n const customClass = local.class ?? \"\";\n\n const getClassName = (renderProps: MenuTriggerRenderProps): string =>\n [menuButtonStyles({ ...renderProps, size, variant }), customClass].filter(Boolean).join(\" \");\n\n return (\n <HeadlessMenuButton\n {...headlessProps}\n ref={(element) => {\n popoverTrigger?.setTriggerRef(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n >\n {(renderProps) => (\n <>\n {props.children as JSX.Element}\n <ChevronIcon class={menuButtonChevronStyles({ size, isOpen: renderProps.isOpen })} />\n </>\n )}\n </HeadlessMenuButton>\n );\n}\n\n/**\n * A menu displays a list of actions or options for the user to choose from.\n */\nexport function Menu<T>(props: MenuProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(MenuContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"class\",\n \"hideLinkOutIcon\",\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"slot\",\n \"children\",\n ]);\n const triggerSize = useContext(MenuSizeContext);\n const size = () => normalizeMenuSize(local.size ?? triggerSize);\n const theme = useTheme();\n const popoverTrigger = usePopoverTrigger();\n const triggerOptions = useContext(MenuTriggerOptionsContext);\n const isSubmenu = () => popoverTrigger?.trigger === \"SubmenuTrigger\";\n const isMenuTriggerPopover = () => popoverTrigger?.trigger === \"MenuTrigger\";\n const isPopoverMenu = () => isSubmenu() || isMenuTriggerPopover();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const mergedRef = mergeContextRefs(contextProps?.ref, props.ref);\n const mergedUnsafeClassName = () =>\n [contextProps?.UNSAFE_className, props.UNSAFE_className].filter(Boolean).join(\" \");\n\n const getClassName = (renderProps: MenuRenderProps): string => {\n const baseClassName = s2Menu({ ...renderProps, size: size() });\n if (isPopoverMenu()) {\n return baseClassName;\n }\n\n return [mergedUnsafeClassName(), mergeStyles(baseClassName, mergedStyles()), local.class]\n .filter(Boolean)\n .join(\" \");\n };\n const getStandaloneStyle = () => (isPopoverMenu() ? {} : (mergedUnsafeStyle() ?? {}));\n const getFrameClassName = () =>\n [\n menuFrame,\n mergedUnsafeClassName(),\n mergeContextStyles(contextProps?.styles, props.styles),\n local.class,\n ]\n .filter(Boolean)\n .join(\" \");\n const getFrameStyle = () => mergedUnsafeStyle();\n const popoverPlacement = () =>\n menuPlacement(triggerOptions?.direction(), triggerOptions?.align());\n const popoverPlacementAxis = () => menuPlacementAxis(triggerOptions?.direction());\n const popoverShouldFlip = () => triggerOptions?.shouldFlip();\n const getPopoverClassName = (renderProps: PopoverRenderProps): string => {\n return menuPopover({\n ...renderProps,\n placement: renderProps.placement ?? popoverPlacementAxis(),\n colorScheme: theme.colorScheme,\n });\n };\n const menuContent = () => (\n <MenuSizeContext.Provider value={size()}>\n <HeaderContext.Provider value={{ styles: () => menuSectionHeader({ size: size() }) }}>\n <HeadingContext.Provider\n value={{\n role: \"presentation\",\n styles: menuSectionHeading,\n }}\n >\n <TextContext.Provider\n value={{\n slots: {\n default: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n styles: () =>\n menuItemDescription({\n size: size(),\n isFocused: false,\n isDisabled: false,\n }),\n \"data-rsp-slot\": \"text\",\n },\n },\n }}\n >\n <HeadlessMenu\n {...headlessProps}\n ref={mergedRef}\n class={getClassName}\n style={getStandaloneStyle}\n children={local.children}\n />\n </TextContext.Provider>\n </HeadingContext.Provider>\n </HeaderContext.Provider>\n </MenuSizeContext.Provider>\n );\n\n if (isSubmenu()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"SubmenuTrigger\"\n placement=\"end top\"\n offset={-2}\n crossOffset={-8}\n isNonModal\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n if (isMenuTriggerPopover()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"MenuTrigger\"\n triggerRef={() => popoverTrigger?.triggerRef() ?? null}\n placement={popoverPlacement() as never}\n offset={8}\n shouldFlip={popoverShouldFlip()}\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n {menuContent()}\n </MenuLinkOutIconContext.Provider>\n );\n}\n\n/**\n * An item in a menu.\n * SSR-compatible - renders icon, content, and shortcut directly without render props.\n */\nexport function MenuItem<T>(props: MenuItemProps<T>): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"icon\",\n \"shortcut\",\n \"isDestructive\",\n ]);\n const size = useContext(MenuSizeContext);\n const hideLinkOutIcon = useContext(MenuLinkOutIconContext);\n const isUnavailable = useContext(UnavailableMenuItemContext);\n const locale = useLocale();\n const customClass = local.class ?? \"\";\n const unavailableDescriptionId = createUniqueId();\n const stringFormatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const isLinkOut = () => headlessProps.href != null && headlessProps.target === \"_blank\";\n const chevronStyle = () =>\n locale().direction === \"rtl\" ? ({ transform: \"scaleX(-1)\" } as JSX.CSSProperties) : undefined;\n const [itemElement, setItemElement] = createSignal<HTMLElement | null>(null);\n const mergedStyles = () => (typeof local.styles === \"function\" ? local.styles() : local.styles);\n\n const getClassName = (renderProps: MenuItemRenderProps): string => {\n const isFocused = (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused;\n return [\n local.UNSAFE_className,\n mergeStyles(\n s2MenuItem({\n ...renderProps,\n isFocused,\n size,\n isLink: headlessProps.href != null,\n }),\n mergedStyles(),\n ),\n local.isDestructive ? destructiveTextStyles : \"\",\n customClass,\n ]\n .filter(Boolean)\n .join(\" \");\n };\n const itemStyleProps = (renderProps: MenuItemRenderProps): S2MenuItemStyleProps => ({\n ...renderProps,\n isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused,\n size,\n isLink: headlessProps.href != null,\n });\n const getStyle = (renderProps: MenuItemRenderProps) =>\n pressScale(() => itemElement(), local.UNSAFE_style)(renderProps);\n const iconContextValue = {\n slot: \"icon\",\n render: centerBaseline({\n slot: \"icon\",\n styles: menuItemIconCenterWrapper,\n }),\n styles: menuItemIcon,\n };\n const textContextValue = (renderProps: MenuItemRenderProps) => ({\n slots: {\n default: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n // Carry the headless description-slot id so the item's\n // `aria-describedby` resolves to this element (upstream two-context\n // `Text` delegation).\n id: renderProps.descriptionProps?.id,\n styles: () => menuItemDescription(itemStyleProps(renderProps)),\n \"data-rsp-slot\": \"text\",\n },\n value: {\n styles: menuItemValue,\n \"data-rsp-slot\": \"value\",\n },\n },\n });\n const keyboardContextValue = (renderProps: MenuItemRenderProps) => ({\n // Carry the headless keyboard-slot id so it too is referenced by the item's\n // `aria-describedby`.\n id: renderProps.keyboardShortcutProps?.id,\n styles: () => menuItemKeyboard(itemStyleProps(renderProps)),\n });\n const MenuItemContents = (contentProps: { renderProps: MenuItemRenderProps }) => {\n const children =\n typeof local.children === \"function\"\n ? (local.children as (props: MenuItemRenderProps) => JSX.Element)(contentProps.renderProps)\n : local.children;\n\n return (\n <>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"single\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <CheckmarkIcon\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n size={selectionIconSize[size]}\n class={menuItemCheckmark(itemStyleProps(contentProps.renderProps))}\n />\n </Show>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"multiple\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <span\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n class={menuItemCheckbox(itemStyleProps(contentProps.renderProps))}\n >\n <Show when={contentProps.renderProps.isSelected}>\n <CheckmarkIcon\n size={selectionIconSize[size]}\n class={menuItemCheckboxIcon as unknown as string}\n />\n </Show>\n </span>\n </Show>\n {local.icon?.()}\n {isTextOnlyChildren(children) ? <Text slot=\"label\">{children}</Text> : children}\n {local.shortcut ? <Keyboard>{local.shortcut}</Keyboard> : null}\n <Show when={isLinkOut() && !hideLinkOutIcon}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <LinkOutIcon size={linkOutIconSize[size]} class={menuItemDescriptorIcon({ size })} />\n </span>\n </Show>\n <Show when={contentProps.renderProps.hasSubmenu && !isUnavailable}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <S2ChevronIcon\n size={size}\n class={menuItemDescriptorIcon({ size })}\n style={chevronStyle()}\n />\n </span>\n </Show>\n <Show when={isUnavailable}>\n <span\n id={unavailableDescriptionId}\n slot=\"descriptor\"\n class={menuItemDescriptor}\n data-rsp-slot=\"descriptor\"\n >\n <InfoCircleIcon\n aria-label={stringFormatter().format(\"menu.unavailable\")}\n class={menuItemDescriptorIcon({ size })}\n />\n </span>\n </Show>\n </>\n );\n };\n\n const renderChildren = (renderProps: MenuItemRenderProps) => {\n return (\n <IconContext.Provider value={iconContextValue}>\n <TextContext.Provider value={textContextValue(renderProps)}>\n <KeyboardContext.Provider value={keyboardContextValue(renderProps)}>\n <MenuItemContents renderProps={renderProps} />\n </KeyboardContext.Provider>\n </TextContext.Provider>\n </IconContext.Provider>\n );\n };\n\n const ariaDescribedBy = () =>\n [\n (headlessProps as { \"aria-describedby\"?: string })[\"aria-describedby\"],\n isUnavailable ? unavailableDescriptionId : undefined,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <HeadlessMenuItem\n {...headlessProps}\n aria-describedby={ariaDescribedBy()}\n ref={(element) => {\n setItemElement(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n );\n}\n\nexport function UnavailableMenuItemTrigger(props: UnavailableMenuItemTriggerProps): JSX.Element {\n const children = () =>\n (Array.isArray(props.children) ? props.children : [props.children]) as JSX.Element[];\n\n return (\n <Show when={props.isUnavailable} fallback={children()[0]}>\n <UnavailableMenuItemContext.Provider value>\n <HeadlessSubmenuTrigger>{children()}</HeadlessSubmenuTrigger>\n </UnavailableMenuItemContext.Provider>\n </Show>\n );\n}\n\nexport function MenuSection(props: MenuSectionProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\"]);\n const size = useContext(MenuSizeContext);\n\n return (\n <HeadlessMenuSection\n {...headlessProps}\n class={[menuSection({ size }), local.class ?? \"\"].filter(Boolean).join(\" \")}\n >\n {props.children}\n </HeadlessMenuSection>\n );\n}\n\nexport interface MenuSeparatorProps {\n /** Additional CSS class name. */\n class?: string;\n}\n\n/**\n * A visual separator between menu items.\n */\nexport function MenuSeparator(props: MenuSeparatorProps): JSX.Element {\n return <div role=\"separator\" class={[separatorStyles, props.class].filter(Boolean).join(\" \")} />;\n}\n\nfunction ChevronIcon(props: { class?: string }): JSX.Element {\n return (\n <svg class={props.class} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n}\n\nMenu.Item = MenuItem;\nMenu.Section = MenuSection;\nMenu.Separator = MenuSeparator;\nMenuTrigger.Button = MenuButton;\n\nexport const Item = MenuItem;\nexport const Section = MenuSection;\n\nexport type { Key, Selection, SelectionMode };\n\nexport { SubmenuTrigger } from \"./SubmenuTrigger\";\nexport type { SubmenuTriggerProps } from \"./SubmenuTrigger\";\nexport { ContextualHelpTrigger } from \"./ContextualHelpTrigger\";\nexport type { ContextualHelpTriggerProps } from \"./ContextualHelpTrigger\";\nexport { Collection } from \"@proyecto-viviana/solidaria-components\";\nexport { ContextualHelpPopover } from \"../contextualhelp\";\nexport type { ContextualHelpPopoverProps } from \"../contextualhelp\";\nexport { Content, Header, Heading, Keyboard, Text } from \"../text\";\n"],"mappings":"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"}
@@ -239,7 +239,7 @@ const menuButtonStyles = function anonymous(props) {
239
239
  else rules += " g9ORGnd151";
240
240
  else if (props.variant === "primary") if (props.isPressed) rules += " g8KaFke151";
241
241
  else if (props.isHovered) rules += " g8KaFke151";
242
- else rules += " gdeCgNc151";
242
+ else rules += " gnhAeB151";
243
243
  if (props.isDisabled) rules += " iA151";
244
244
  else if (props.variant === "quiet") rules += " iA151";
245
245
  else if (props.variant === "secondary") if (props.isHovered) rules += " iUvnvv151";
@@ -1 +1 @@
1
- {"version":3,"file":"menu.jsx","names":["SubmenuTrigger","HeadlessSubmenuTrigger"],"sources":["../../src/menu/menu-context.ts","../../src/icon/ui-icons/LinkOut.tsx","../../src/menu/SubmenuTrigger.tsx","../../src/menu/ContextualHelpTrigger.tsx","../../src/menu/index.tsx"],"sourcesContent":["import { createContext } from \"solid-js\";\nimport type { S2MenuSize } from \"./s2-menu-styles\";\n\nexport type MenuAlign = \"start\" | \"end\";\nexport type MenuDirection = \"top\" | \"bottom\" | \"start\" | \"end\" | \"left\" | \"right\";\n\nexport interface MenuTriggerOptionsContextValue {\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nexport const MenuSizeContext = createContext<S2MenuSize>(\"M\");\nexport const MenuLinkOutIconContext = createContext(false);\nexport const MenuTriggerOptionsContext = createContext<MenuTriggerOptionsContextValue | null>(null);\n","/*\n * Auto-generated from the shipped @react-spectrum/s2 dist assets (SVGO-\n * optimized — pixel parity requires the shipped path data, not the raw\n * vendored .svg sources). Variants absent from the dist (Arrow, Gripper)\n * fall back to the vendored sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createUIIcon } from \"../spectrum-icon\";\n\nexport type LinkOutProps = JSX.SvgSVGAttributes<SVGSVGElement> & {\n size?: \"M\" | \"L\" | \"XL\" | \"XXL\";\n};\n\nfunction LinkOut_MSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M8.125 1H3.741a.875.875 0 1 0 0 1.75h2.27l-4.88 4.88a.88.88 0 0 0 0 1.24.873.873 0 0 0 1.238 0L7.25 3.987v2.27a.875.875 0 1 0 1.75 0V1.876A.875.875 0 0 0 8.125 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_LSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M10.089 1h-5.51a.911.911 0 0 0 0 1.822h3.31L1.355 9.355a.91.91 0 1 0 1.29 1.29L9.178 4.11v3.31a.911.911 0 0 0 1.822 0v-5.51A.91.91 0 0 0 10.089 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M12.05 1H5.164a.949.949 0 1 0 0 1.898h4.595l-8.18 8.18a.95.95 0 0 0 1.344 1.344l8.18-8.18v4.595a.949.949 0 1 0 1.898 0V1.949A.95.95 0 0 0 12.05 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XXLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M14.01 1h-8a.99.99 0 0 0 0 1.979h5.613L1.551 13.05a.988.988 0 1 0 1.398 1.398L13.021 4.377v5.612a.99.99 0 0 0 1.979 0v-8A.99.99 0 0 0 14.01 1\"\n />\n </svg>\n );\n}\n\nconst LinkOut_M = createUIIcon(LinkOut_MSvg);\nconst LinkOut_L = createUIIcon(LinkOut_LSvg);\nconst LinkOut_XL = createUIIcon(LinkOut_XLSvg);\nconst LinkOut_XXL = createUIIcon(LinkOut_XXLSvg);\n\nexport default function LinkOut(props: LinkOutProps): JSX.Element {\n const { size = \"M\", class: className, width: _width, height: _height, ...rest } = props;\n switch (size) {\n case \"M\":\n return <LinkOut_M {...rest} class={className} />;\n case \"L\":\n return <LinkOut_L {...rest} class={className} />;\n case \"XL\":\n return <LinkOut_XL {...rest} class={className} />;\n case \"XXL\":\n return <LinkOut_XXL {...rest} class={className} />;\n default:\n return <LinkOut_M {...rest} class={className} />;\n }\n}\n\nexport const LinkOutIcon = LinkOut;\n","import { type JSX } from \"solid-js\";\nimport {\n SubmenuTrigger as HeadlessSubmenuTrigger,\n type SubmenuTriggerProps as HeadlessSubmenuTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\n\nexport interface SubmenuTriggerProps extends HeadlessSubmenuTriggerProps {}\n\n/**\n * A styled submenu trigger that opens a nested menu.\n */\nexport function SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element {\n return <HeadlessSubmenuTrigger {...props} />;\n}\n","import { type JSX, splitProps } from \"solid-js\";\nimport {\n ContextualHelpTrigger as HeadlessContextualHelpTrigger,\n type ContextualHelpTriggerProps as HeadlessContextualHelpTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { css } from \"../style\" with { type: \"macro\" };\n\n// The headless trigger hardcodes the class names on its internal button and\n// popover (`-trigger`/`-content`) and exposes no per-part class hook, so styling\n// must target them as descendants — including data-attribute and :hover/\n// :focus-visible states the single-element style() macro can't express. Styling\n// therefore flows through the css() macro escape hatch, which ships real CSS in\n// the package bundle (same asset pipeline as style()) and supports this nesting.\n// Values mirror the S2 neutral palette (fixed light-dark pairs, scheme-aware via\n// the Provider's color-scheme).\nconst triggerStyles = css(`\n & .solidaria-ContextualHelpTrigger-trigger {\n display: flex;\n align-items: center;\n padding-block: 8px;\n padding-inline: 16px;\n cursor: pointer;\n background: transparent;\n border: 0;\n color: light-dark(#222, #e6e6e6);\n border-radius: 8px;\n outline: none;\n }\n & .solidaria-ContextualHelpTrigger-trigger:hover {\n background: light-dark(#0000000d, #ffffff12);\n }\n & .solidaria-ContextualHelpTrigger-trigger:focus-visible {\n outline: 2px solid light-dark(#4b75ff, #4069fd);\n outline-offset: -2px;\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-unavailable] {\n color: light-dark(#8f8f8f, #7c7c7c);\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n }\n & .solidaria-ContextualHelpTrigger-content {\n margin-top: 4px;\n padding: 16px;\n min-width: 200px;\n background: light-dark(#fff, #222);\n border: 1px solid light-dark(#d5d5d5, #3d3d3d);\n border-radius: 8px;\n box-shadow: 0 4px 12px light-dark(#00000014, #0000003d), 0 2px 6px light-dark(#0000000f, #00000030);\n color: light-dark(#222, #e6e6e6);\n outline: none;\n }\n`);\n\nexport interface ContextualHelpTriggerProps extends Omit<\n HeadlessContextualHelpTriggerProps,\n \"class\" | \"children\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Convenience: title rendered as the trigger button label. */\n title?: string;\n /** Convenience: text content shown inside the popover. */\n content?: string;\n /** Visual variant for the trigger icon. */\n variant?: \"help\" | \"info\";\n /** Raw children tuple [trigger, content] — overrides title/content props. */\n children?: [JSX.Element, JSX.Element];\n}\n\nconst helpIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n ?\n </text>\n </svg>\n);\n\nconst infoIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n i\n </text>\n </svg>\n);\n\n/**\n * A button that opens contextual help in a popover.\n *\n * @example\n * ```tsx\n * // Convenience API\n * <ContextualHelpTrigger title=\"What is this?\" content=\"Help text here\" />\n *\n * // Children API\n * <ContextualHelpTrigger>\n * {[<span>Trigger</span>, <div>Content</div>]}\n * </ContextualHelpTrigger>\n * ```\n */\nexport function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"title\",\n \"content\",\n \"variant\",\n \"children\",\n \"aria-label\",\n ]);\n\n const children = (): [JSX.Element, JSX.Element] => {\n if (local.children) return local.children;\n const icon = local.variant === \"info\" ? infoIcon : helpIcon;\n const trigger = (\n <span style={{ display: \"inline-flex\", \"align-items\": \"center\", gap: \"4px\" }}>\n {icon}\n {local.title && <span>{local.title}</span>}\n </span>\n );\n const content = (\n <div>\n {local.title && (\n <div style={{ \"font-weight\": \"600\", \"margin-bottom\": \"4px\" }}>{local.title}</div>\n )}\n {local.content && <p style={{ margin: \"0\" }}>{local.content}</p>}\n </div>\n );\n return [trigger, content];\n };\n\n return (\n <HeadlessContextualHelpTrigger\n {...headlessProps}\n aria-label={local[\"aria-label\"] ?? local.title ?? \"Contextual help\"}\n class={[triggerStyles, local.class].filter(Boolean).join(\" \")}\n >\n {children()}\n </HeadlessContextualHelpTrigger>\n );\n}\n","import {\n type JSX,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Menu as HeadlessMenu,\n MenuItem as HeadlessMenuItem,\n MenuSection as HeadlessMenuSection,\n SubmenuTrigger as HeadlessSubmenuTrigger,\n MenuTrigger as HeadlessMenuTrigger,\n MenuButton as HeadlessMenuButton,\n Popover as HeadlessPopover,\n MenuTriggerContext,\n PopoverTriggerContext,\n type MenuProps as HeadlessMenuProps,\n type MenuItemProps as HeadlessMenuItemProps,\n type MenuSectionProps as HeadlessMenuSectionProps,\n type MenuTriggerProps as HeadlessMenuTriggerProps,\n type MenuButtonProps as HeadlessMenuButtonProps,\n type MenuRenderProps,\n type MenuItemRenderProps,\n type MenuTriggerRenderProps,\n type PopoverRenderProps,\n usePopoverTrigger,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { Key, Selection, SelectionMode } from \"@proyecto-viviana/solid-stately\";\nimport { useProviderProps, useTheme } from \"../provider\";\nimport type { StyleString } from \"../style\";\nimport { style, focusRing } from \"../style\" with { type: \"macro\" };\nimport { mergeStyles } from \"../style/runtime\";\nimport { pressScale } from \"../pressScale\";\nimport { centerBaseline } from \"../icon/center-baseline\";\nimport CheckmarkIcon from \"../icon/ui-icons/Checkmark\";\nimport S2ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport LinkOutIcon from \"../icon/ui-icons/LinkOut\";\nimport InfoCircleIcon from \"../icon/s2wf-icons/InfoCircleIcon\";\nimport { IconContext } from \"../icon/spectrum-icon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n HeaderContext,\n HeadingContext,\n KeyboardContext,\n Keyboard,\n Text,\n TextContext,\n} from \"../text\";\nimport {\n menu as s2Menu,\n menuFrame,\n menuItemDescriptor,\n menuItemDescriptorIcon,\n menuItem as s2MenuItem,\n menuItemCheckbox,\n menuItemCheckboxIcon,\n menuItemCheckmark,\n menuItemDescription,\n menuItemIcon,\n menuItemIconCenterWrapper,\n menuItemKeyboard,\n menuItemLabel,\n menuItemValue,\n menuPopover,\n menuSection,\n menuSectionHeader,\n menuSectionHeading,\n type S2MenuItemStyleProps,\n type S2MenuSize,\n} from \"./s2-menu-styles\";\nimport {\n MenuLinkOutIconContext,\n MenuSizeContext,\n MenuTriggerOptionsContext,\n type MenuAlign,\n type MenuDirection,\n} from \"./menu-context\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type MenuSize = S2MenuSize | \"sm\" | \"md\" | \"lg\";\nexport type { MenuAlign, MenuDirection };\n\nconst UnavailableMenuItemContext = createContext(false);\nexport const MenuContext = createContext<SpectrumContextValue<MenuProps<any>>>(null);\nconst linkOutIconSize: Record<S2MenuSize, \"M\" | \"L\" | \"XL\"> = {\n S: \"M\",\n M: \"L\",\n L: \"XL\",\n XL: \"XL\",\n};\nconst selectionIconSize: Record<S2MenuSize, \"XS\" | \"S\" | \"M\" | \"L\"> = {\n S: \"XS\",\n M: \"S\",\n L: \"M\",\n XL: \"L\",\n};\n\nexport interface MenuTriggerProps extends Omit<HeadlessMenuTriggerProps, \"class\" | \"style\"> {\n /** The size of the menu. */\n size?: MenuSize;\n /** Alignment of the menu relative to the trigger. @default 'start' */\n align?: MenuAlign;\n /** Where the Menu opens relative to its trigger. @default 'bottom' */\n direction?: MenuDirection;\n /** Whether the menu should automatically flip direction when space is limited. */\n shouldFlip?: boolean;\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface MenuButtonProps extends Omit<HeadlessMenuButtonProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Visual variant of the button. */\n variant?: \"primary\" | \"secondary\" | \"quiet\";\n}\n\nexport interface MenuProps<T> extends Omit<HeadlessMenuProps<T>, \"class\" | \"style\" | \"ref\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Hides the default link out icons on menu items that open links in a new tab. */\n hideLinkOutIcon?: boolean;\n /** The size of the menu. @default 'M' */\n size?: MenuSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu element. */\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport interface MenuItemProps<T> extends Omit<\n HeadlessMenuItemProps<T>,\n \"class\" | \"style\" | \"ref\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu item element (a `<div>`, or an `<a>` for link items). */\n ref?: RefLike<HTMLElement>;\n /**\n * Optional icon to display before the label.\n * Use a function returning JSX for SSR compatibility: `icon={() => <MyIcon />}`\n */\n icon?: () => JSX.Element;\n /** Optional keyboard shortcut to display. */\n shortcut?: string;\n /** Whether this is a destructive action. */\n isDestructive?: boolean;\n}\n\nexport interface MenuSectionProps extends Omit<HeadlessMenuSectionProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface UnavailableMenuItemTriggerProps {\n /** The menu item followed by contextual help popover content. */\n children: JSX.Element | JSX.Element[];\n /** Whether the menu item should expose unavailable contextual help. */\n isUnavailable?: boolean;\n}\n\n// The MenuButton (a Viviana convenience trigger; upstream S2 composes a plain\n// Button) is styled through the build-time S2 style() macro so the atomic CSS\n// ships in the package bundle for installed consumers. Interactive state\n// (hover/press/open/focus/disabled) is driven by the trigger render props.\ntype MenuButtonVariant = \"primary\" | \"secondary\" | \"quiet\";\n\nconst menuButtonStyles = style<\n MenuTriggerRenderProps & { size: S2MenuSize; variant: MenuButtonVariant }\n>({\n ...focusRing(),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"panel\",\n borderStyle: \"solid\",\n borderWidth: 1,\n fontWeight: \"medium\",\n cursor: \"default\",\n transition: \"default\",\n height: { size: { S: 32, M: 40, L: 48, XL: 56 } },\n font: { size: { S: \"ui-sm\", M: \"ui\", L: \"ui-lg\", XL: \"ui-xl\" } },\n paddingX: { size: { S: 12, M: 16, L: 20, XL: 24 } },\n gap: { size: { S: 8, M: 8, L: 12, XL: 12 } },\n backgroundColor: {\n variant: {\n primary: { default: \"accent\", isHovered: \"accent-800\", isPressed: \"accent-800\" },\n secondary: { default: \"layer-2\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n quiet: { default: \"transparent\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n },\n isDisabled: \"disabled\",\n },\n borderColor: {\n variant: {\n primary: \"transparent\",\n secondary: { default: \"gray-300\", isHovered: \"gray-400\" },\n quiet: \"transparent\",\n },\n isDisabled: \"transparent\",\n },\n color: {\n default: \"neutral\",\n variant: { primary: \"white\" },\n isDisabled: \"disabled\",\n },\n});\n\nconst menuButtonChevronStyles = style<{ size: S2MenuSize; isOpen?: boolean }>({\n flexShrink: 0,\n transition: \"default\",\n width: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n height: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n rotate: { default: 0, isOpen: 180 },\n});\n\nconst triggerWrapperStyles = style({\n position: \"relative\",\n display: \"inline-block\",\n});\n\nconst separatorStyles = style({\n marginY: 4,\n borderTopWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n});\n\nconst destructiveTextStyles = style({\n color: \"negative\",\n});\n\nfunction normalizeMenuSize(size?: MenuSize): S2MenuSize {\n switch (size) {\n case \"sm\":\n case \"S\":\n return \"S\";\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"XL\":\n return \"XL\";\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction isTextOnlyChildren(children: unknown): children is string | number {\n return typeof children === \"string\" || typeof children === \"number\";\n}\n\nfunction menuPlacement(direction: MenuDirection | undefined, align: MenuAlign | undefined): string {\n const resolvedDirection = direction ?? \"bottom\";\n const resolvedAlign = align ?? \"start\";\n\n switch (resolvedDirection) {\n case \"left\":\n case \"right\":\n case \"start\":\n case \"end\":\n return `${resolvedDirection} ${resolvedAlign === \"end\" ? \"bottom\" : \"top\"}`;\n case \"bottom\":\n case \"top\":\n default:\n return `${resolvedDirection} ${resolvedAlign}`;\n }\n}\n\nfunction menuPlacementAxis(\n direction: MenuDirection | undefined,\n): NonNullable<PopoverRenderProps[\"placement\"]> {\n if (direction === \"start\") {\n return \"left\";\n }\n if (direction === \"end\") {\n return \"right\";\n }\n return direction ?? \"bottom\";\n}\n\n/**\n * A menu trigger wraps a button and menu, handling the open/close state.\n */\nexport function MenuTrigger(props: MenuTriggerProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"align\",\n \"direction\",\n \"shouldFlip\",\n \"class\",\n ]);\n const size = () => normalizeMenuSize(local.size);\n\n return (\n <MenuSizeContext.Provider value={size()}>\n <div class={[triggerWrapperStyles, local.class].filter(Boolean).join(\" \")}>\n <HeadlessMenuTrigger {...headlessProps}>\n <MenuTriggerOverlayContext\n align={() => local.align}\n direction={() => local.direction}\n shouldFlip={() => local.shouldFlip}\n >\n {props.children}\n </MenuTriggerOverlayContext>\n </HeadlessMenuTrigger>\n </div>\n </MenuSizeContext.Provider>\n );\n}\n\ninterface MenuTriggerOverlayContextProps {\n children: JSX.Element;\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nfunction MenuTriggerOverlayContext(props: MenuTriggerOverlayContextProps): JSX.Element {\n const triggerContext = useContext(MenuTriggerContext);\n const [triggerElement, setTriggerElement] = createSignal<HTMLElement | null>(null);\n const triggerId = createUniqueId();\n\n const popoverTriggerContext = {\n state: {\n isOpen: () => triggerContext?.state.isOpen() ?? false,\n open: () => triggerContext?.state.open(),\n close: () => triggerContext?.state.close(),\n toggle: () => triggerContext?.state.toggle(),\n },\n triggerRef: () => triggerElement(),\n setTriggerRef: (element: HTMLElement | null) => {\n if (!element) {\n return;\n }\n\n const current = triggerElement();\n if (!current || !current.isConnected) {\n setTriggerElement(element);\n }\n },\n triggerId,\n trigger: \"MenuTrigger\",\n };\n\n return (\n <MenuTriggerOptionsContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip,\n }}\n >\n <PopoverTriggerContext.Provider value={popoverTriggerContext}>\n {props.children}\n </PopoverTriggerContext.Provider>\n </MenuTriggerOptionsContext.Provider>\n );\n}\n\n/**\n * A button that opens a menu.\n * SSR-compatible - renders children and chevron icon directly without render props.\n */\nexport function MenuButton(props: MenuButtonProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\"class\", \"variant\", \"ref\"]);\n const size = useContext(MenuSizeContext);\n const popoverTrigger = usePopoverTrigger();\n const variant = local.variant ?? \"secondary\";\n const customClass = local.class ?? \"\";\n\n const getClassName = (renderProps: MenuTriggerRenderProps): string =>\n [menuButtonStyles({ ...renderProps, size, variant }), customClass].filter(Boolean).join(\" \");\n\n return (\n <HeadlessMenuButton\n {...headlessProps}\n ref={(element) => {\n popoverTrigger?.setTriggerRef(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n >\n {(renderProps) => (\n <>\n {props.children as JSX.Element}\n <ChevronIcon class={menuButtonChevronStyles({ size, isOpen: renderProps.isOpen })} />\n </>\n )}\n </HeadlessMenuButton>\n );\n}\n\n/**\n * A menu displays a list of actions or options for the user to choose from.\n */\nexport function Menu<T>(props: MenuProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(MenuContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"class\",\n \"hideLinkOutIcon\",\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"slot\",\n \"children\",\n ]);\n const triggerSize = useContext(MenuSizeContext);\n const size = () => normalizeMenuSize(local.size ?? triggerSize);\n const theme = useTheme();\n const popoverTrigger = usePopoverTrigger();\n const triggerOptions = useContext(MenuTriggerOptionsContext);\n const isSubmenu = () => popoverTrigger?.trigger === \"SubmenuTrigger\";\n const isMenuTriggerPopover = () => popoverTrigger?.trigger === \"MenuTrigger\";\n const isPopoverMenu = () => isSubmenu() || isMenuTriggerPopover();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const mergedRef = mergeContextRefs(contextProps?.ref, props.ref);\n const mergedUnsafeClassName = () =>\n [contextProps?.UNSAFE_className, props.UNSAFE_className].filter(Boolean).join(\" \");\n\n const getClassName = (renderProps: MenuRenderProps): string => {\n const baseClassName = s2Menu({ ...renderProps, size: size() });\n if (isPopoverMenu()) {\n return baseClassName;\n }\n\n return [mergedUnsafeClassName(), mergeStyles(baseClassName, mergedStyles()), local.class]\n .filter(Boolean)\n .join(\" \");\n };\n const getStandaloneStyle = () => (isPopoverMenu() ? {} : (mergedUnsafeStyle() ?? {}));\n const getFrameClassName = () =>\n [\n menuFrame,\n mergedUnsafeClassName(),\n mergeContextStyles(contextProps?.styles, props.styles),\n local.class,\n ]\n .filter(Boolean)\n .join(\" \");\n const getFrameStyle = () => mergedUnsafeStyle();\n const popoverPlacement = () =>\n menuPlacement(triggerOptions?.direction(), triggerOptions?.align());\n const popoverPlacementAxis = () => menuPlacementAxis(triggerOptions?.direction());\n const popoverShouldFlip = () => triggerOptions?.shouldFlip();\n const getPopoverClassName = (renderProps: PopoverRenderProps): string => {\n return menuPopover({\n ...renderProps,\n placement: renderProps.placement ?? popoverPlacementAxis(),\n colorScheme: theme.colorScheme,\n });\n };\n const menuContent = () => (\n <MenuSizeContext.Provider value={size()}>\n <HeaderContext.Provider value={{ styles: () => menuSectionHeader({ size: size() }) }}>\n <HeadingContext.Provider\n value={{\n role: \"presentation\",\n styles: menuSectionHeading,\n }}\n >\n <TextContext.Provider\n value={{\n slots: {\n default: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n styles: () =>\n menuItemDescription({\n size: size(),\n isFocused: false,\n isDisabled: false,\n }),\n \"data-rsp-slot\": \"text\",\n },\n },\n }}\n >\n <HeadlessMenu\n {...headlessProps}\n ref={mergedRef}\n class={getClassName}\n style={getStandaloneStyle}\n children={local.children}\n />\n </TextContext.Provider>\n </HeadingContext.Provider>\n </HeaderContext.Provider>\n </MenuSizeContext.Provider>\n );\n\n if (isSubmenu()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"SubmenuTrigger\"\n placement=\"end top\"\n offset={-2}\n crossOffset={-8}\n isNonModal\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n if (isMenuTriggerPopover()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"MenuTrigger\"\n triggerRef={() => popoverTrigger?.triggerRef() ?? null}\n placement={popoverPlacement() as never}\n offset={8}\n shouldFlip={popoverShouldFlip()}\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n {menuContent()}\n </MenuLinkOutIconContext.Provider>\n );\n}\n\n/**\n * An item in a menu.\n * SSR-compatible - renders icon, content, and shortcut directly without render props.\n */\nexport function MenuItem<T>(props: MenuItemProps<T>): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"icon\",\n \"shortcut\",\n \"isDestructive\",\n ]);\n const size = useContext(MenuSizeContext);\n const hideLinkOutIcon = useContext(MenuLinkOutIconContext);\n const isUnavailable = useContext(UnavailableMenuItemContext);\n const locale = useLocale();\n const customClass = local.class ?? \"\";\n const unavailableDescriptionId = createUniqueId();\n const stringFormatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const isLinkOut = () => headlessProps.href != null && headlessProps.target === \"_blank\";\n const chevronStyle = () =>\n locale().direction === \"rtl\" ? ({ transform: \"scaleX(-1)\" } as JSX.CSSProperties) : undefined;\n const [itemElement, setItemElement] = createSignal<HTMLElement | null>(null);\n const mergedStyles = () => (typeof local.styles === \"function\" ? local.styles() : local.styles);\n\n const getClassName = (renderProps: MenuItemRenderProps): string => {\n const isFocused = (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused;\n return [\n local.UNSAFE_className,\n mergeStyles(\n s2MenuItem({\n ...renderProps,\n isFocused,\n size,\n isLink: headlessProps.href != null,\n }),\n mergedStyles(),\n ),\n local.isDestructive ? destructiveTextStyles : \"\",\n customClass,\n ]\n .filter(Boolean)\n .join(\" \");\n };\n const itemStyleProps = (renderProps: MenuItemRenderProps): S2MenuItemStyleProps => ({\n ...renderProps,\n isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused,\n size,\n isLink: headlessProps.href != null,\n });\n const getStyle = (renderProps: MenuItemRenderProps) =>\n pressScale(() => itemElement(), local.UNSAFE_style)(renderProps);\n const iconContextValue = {\n slot: \"icon\",\n render: centerBaseline({\n slot: \"icon\",\n styles: menuItemIconCenterWrapper,\n }),\n styles: menuItemIcon,\n };\n const textContextValue = (renderProps: MenuItemRenderProps) => ({\n slots: {\n default: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n // Carry the headless description-slot id so the item's\n // `aria-describedby` resolves to this element (upstream two-context\n // `Text` delegation).\n id: renderProps.descriptionProps?.id,\n styles: () => menuItemDescription(itemStyleProps(renderProps)),\n \"data-rsp-slot\": \"text\",\n },\n value: {\n styles: menuItemValue,\n \"data-rsp-slot\": \"value\",\n },\n },\n });\n const keyboardContextValue = (renderProps: MenuItemRenderProps) => ({\n // Carry the headless keyboard-slot id so it too is referenced by the item's\n // `aria-describedby`.\n id: renderProps.keyboardShortcutProps?.id,\n styles: () => menuItemKeyboard(itemStyleProps(renderProps)),\n });\n const MenuItemContents = (contentProps: { renderProps: MenuItemRenderProps }) => {\n const children =\n typeof local.children === \"function\"\n ? (local.children as (props: MenuItemRenderProps) => JSX.Element)(contentProps.renderProps)\n : local.children;\n\n return (\n <>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"single\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <CheckmarkIcon\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n size={selectionIconSize[size]}\n class={menuItemCheckmark(itemStyleProps(contentProps.renderProps))}\n />\n </Show>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"multiple\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <span\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n class={menuItemCheckbox(itemStyleProps(contentProps.renderProps))}\n >\n <Show when={contentProps.renderProps.isSelected}>\n <CheckmarkIcon\n size={selectionIconSize[size]}\n class={menuItemCheckboxIcon as unknown as string}\n />\n </Show>\n </span>\n </Show>\n {local.icon?.()}\n {isTextOnlyChildren(children) ? <Text slot=\"label\">{children}</Text> : children}\n {local.shortcut ? <Keyboard>{local.shortcut}</Keyboard> : null}\n <Show when={isLinkOut() && !hideLinkOutIcon}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <LinkOutIcon size={linkOutIconSize[size]} class={menuItemDescriptorIcon({ size })} />\n </span>\n </Show>\n <Show when={contentProps.renderProps.hasSubmenu && !isUnavailable}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <S2ChevronIcon\n size={size}\n class={menuItemDescriptorIcon({ size })}\n style={chevronStyle()}\n />\n </span>\n </Show>\n <Show when={isUnavailable}>\n <span\n id={unavailableDescriptionId}\n slot=\"descriptor\"\n class={menuItemDescriptor}\n data-rsp-slot=\"descriptor\"\n >\n <InfoCircleIcon\n aria-label={stringFormatter().format(\"menu.unavailable\")}\n class={menuItemDescriptorIcon({ size })}\n />\n </span>\n </Show>\n </>\n );\n };\n\n const renderChildren = (renderProps: MenuItemRenderProps) => {\n return (\n <IconContext.Provider value={iconContextValue}>\n <TextContext.Provider value={textContextValue(renderProps)}>\n <KeyboardContext.Provider value={keyboardContextValue(renderProps)}>\n <MenuItemContents renderProps={renderProps} />\n </KeyboardContext.Provider>\n </TextContext.Provider>\n </IconContext.Provider>\n );\n };\n\n const ariaDescribedBy = () =>\n [\n (headlessProps as { \"aria-describedby\"?: string })[\"aria-describedby\"],\n isUnavailable ? unavailableDescriptionId : undefined,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <HeadlessMenuItem\n {...headlessProps}\n aria-describedby={ariaDescribedBy()}\n ref={(element) => {\n setItemElement(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n );\n}\n\nexport function UnavailableMenuItemTrigger(props: UnavailableMenuItemTriggerProps): JSX.Element {\n const children = () =>\n (Array.isArray(props.children) ? props.children : [props.children]) as JSX.Element[];\n\n return (\n <Show when={props.isUnavailable} fallback={children()[0]}>\n <UnavailableMenuItemContext.Provider value>\n <HeadlessSubmenuTrigger>{children()}</HeadlessSubmenuTrigger>\n </UnavailableMenuItemContext.Provider>\n </Show>\n );\n}\n\nexport function MenuSection(props: MenuSectionProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\"]);\n const size = useContext(MenuSizeContext);\n\n return (\n <HeadlessMenuSection\n {...headlessProps}\n class={[menuSection({ size }), local.class ?? \"\"].filter(Boolean).join(\" \")}\n >\n {props.children}\n </HeadlessMenuSection>\n );\n}\n\nexport interface MenuSeparatorProps {\n /** Additional CSS class name. */\n class?: string;\n}\n\n/**\n * A visual separator between menu items.\n */\nexport function MenuSeparator(props: MenuSeparatorProps): JSX.Element {\n return (\n <div role=\"separator\" class={[separatorStyles, props.class].filter(Boolean).join(\" \")} />\n );\n}\n\nfunction ChevronIcon(props: { class?: string }): JSX.Element {\n return (\n <svg class={props.class} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n}\n\nMenu.Item = MenuItem;\nMenu.Section = MenuSection;\nMenu.Separator = MenuSeparator;\nMenuTrigger.Button = MenuButton;\n\nexport const Item = MenuItem;\nexport const Section = MenuSection;\n\nexport type { Key, Selection, SelectionMode };\n\nexport { SubmenuTrigger } from \"./SubmenuTrigger\";\nexport type { SubmenuTriggerProps } from \"./SubmenuTrigger\";\nexport { ContextualHelpTrigger } from \"./ContextualHelpTrigger\";\nexport type { ContextualHelpTriggerProps } from \"./ContextualHelpTrigger\";\nexport { Collection } from \"@proyecto-viviana/solidaria-components\";\nexport { ContextualHelpPopover } from \"../contextualhelp\";\nexport type { ContextualHelpPopoverProps } from \"../contextualhelp\";\nexport { Content, Header, Heading, Keyboard, Text } from \"../text\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"menu.jsx","names":["SubmenuTrigger","HeadlessSubmenuTrigger"],"sources":["../../src/menu/menu-context.ts","../../src/icon/ui-icons/LinkOut.tsx","../../src/menu/SubmenuTrigger.tsx","../../src/menu/ContextualHelpTrigger.tsx","../../src/menu/index.tsx"],"sourcesContent":["import { createContext } from \"solid-js\";\nimport type { S2MenuSize } from \"./s2-menu-styles\";\n\nexport type MenuAlign = \"start\" | \"end\";\nexport type MenuDirection = \"top\" | \"bottom\" | \"start\" | \"end\" | \"left\" | \"right\";\n\nexport interface MenuTriggerOptionsContextValue {\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nexport const MenuSizeContext = createContext<S2MenuSize>(\"M\");\nexport const MenuLinkOutIconContext = createContext(false);\nexport const MenuTriggerOptionsContext = createContext<MenuTriggerOptionsContextValue | null>(null);\n","/*\n * Auto-generated from the shipped @react-spectrum/s2 dist assets (SVGO-\n * optimized — pixel parity requires the shipped path data, not the raw\n * vendored .svg sources). Variants absent from the dist (Arrow, Gripper)\n * fall back to the vendored sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createUIIcon } from \"../spectrum-icon\";\n\nexport type LinkOutProps = JSX.SvgSVGAttributes<SVGSVGElement> & {\n size?: \"M\" | \"L\" | \"XL\" | \"XXL\";\n};\n\nfunction LinkOut_MSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M8.125 1H3.741a.875.875 0 1 0 0 1.75h2.27l-4.88 4.88a.88.88 0 0 0 0 1.24.873.873 0 0 0 1.238 0L7.25 3.987v2.27a.875.875 0 1 0 1.75 0V1.876A.875.875 0 0 0 8.125 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_LSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M10.089 1h-5.51a.911.911 0 0 0 0 1.822h3.31L1.355 9.355a.91.91 0 1 0 1.29 1.29L9.178 4.11v3.31a.911.911 0 0 0 1.822 0v-5.51A.91.91 0 0 0 10.089 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M12.05 1H5.164a.949.949 0 1 0 0 1.898h4.595l-8.18 8.18a.95.95 0 0 0 1.344 1.344l8.18-8.18v4.595a.949.949 0 1 0 1.898 0V1.949A.95.95 0 0 0 12.05 1\"\n />\n </svg>\n );\n}\n\nfunction LinkOut_XXLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n {...rest}\n class={className}\n >\n <path\n fill=\"var(--iconPrimary, #222)\"\n d=\"M14.01 1h-8a.99.99 0 0 0 0 1.979h5.613L1.551 13.05a.988.988 0 1 0 1.398 1.398L13.021 4.377v5.612a.99.99 0 0 0 1.979 0v-8A.99.99 0 0 0 14.01 1\"\n />\n </svg>\n );\n}\n\nconst LinkOut_M = createUIIcon(LinkOut_MSvg);\nconst LinkOut_L = createUIIcon(LinkOut_LSvg);\nconst LinkOut_XL = createUIIcon(LinkOut_XLSvg);\nconst LinkOut_XXL = createUIIcon(LinkOut_XXLSvg);\n\nexport default function LinkOut(props: LinkOutProps): JSX.Element {\n const { size = \"M\", class: className, width: _width, height: _height, ...rest } = props;\n switch (size) {\n case \"M\":\n return <LinkOut_M {...rest} class={className} />;\n case \"L\":\n return <LinkOut_L {...rest} class={className} />;\n case \"XL\":\n return <LinkOut_XL {...rest} class={className} />;\n case \"XXL\":\n return <LinkOut_XXL {...rest} class={className} />;\n default:\n return <LinkOut_M {...rest} class={className} />;\n }\n}\n\nexport const LinkOutIcon = LinkOut;\n","import { type JSX } from \"solid-js\";\nimport {\n SubmenuTrigger as HeadlessSubmenuTrigger,\n type SubmenuTriggerProps as HeadlessSubmenuTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\n\nexport interface SubmenuTriggerProps extends HeadlessSubmenuTriggerProps {}\n\n/**\n * A styled submenu trigger that opens a nested menu.\n */\nexport function SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element {\n return <HeadlessSubmenuTrigger {...props} />;\n}\n","import { type JSX, splitProps } from \"solid-js\";\nimport {\n ContextualHelpTrigger as HeadlessContextualHelpTrigger,\n type ContextualHelpTriggerProps as HeadlessContextualHelpTriggerProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { css } from \"../style\" with { type: \"macro\" };\n\n// The headless trigger hardcodes the class names on its internal button and\n// popover (`-trigger`/`-content`) and exposes no per-part class hook, so styling\n// must target them as descendants — including data-attribute and :hover/\n// :focus-visible states the single-element style() macro can't express. Styling\n// therefore flows through the css() macro escape hatch, which ships real CSS in\n// the package bundle (same asset pipeline as style()) and supports this nesting.\n// Values mirror the S2 neutral palette (fixed light-dark pairs, scheme-aware via\n// the Provider's color-scheme).\nconst triggerStyles = css(`\n & .solidaria-ContextualHelpTrigger-trigger {\n display: flex;\n align-items: center;\n padding-block: 8px;\n padding-inline: 16px;\n cursor: pointer;\n background: transparent;\n border: 0;\n color: light-dark(#222, #e6e6e6);\n border-radius: 8px;\n outline: none;\n }\n & .solidaria-ContextualHelpTrigger-trigger:hover {\n background: light-dark(#0000000d, #ffffff12);\n }\n & .solidaria-ContextualHelpTrigger-trigger:focus-visible {\n outline: 2px solid light-dark(#4b75ff, #4069fd);\n outline-offset: -2px;\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-unavailable] {\n color: light-dark(#8f8f8f, #7c7c7c);\n }\n & .solidaria-ContextualHelpTrigger-trigger[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n }\n & .solidaria-ContextualHelpTrigger-content {\n margin-top: 4px;\n padding: 16px;\n min-width: 200px;\n background: light-dark(#fff, #222);\n border: 1px solid light-dark(#d5d5d5, #3d3d3d);\n border-radius: 8px;\n box-shadow: 0 4px 12px light-dark(#00000014, #0000003d), 0 2px 6px light-dark(#0000000f, #00000030);\n color: light-dark(#222, #e6e6e6);\n outline: none;\n }\n`);\n\nexport interface ContextualHelpTriggerProps extends Omit<\n HeadlessContextualHelpTriggerProps,\n \"class\" | \"children\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Convenience: title rendered as the trigger button label. */\n title?: string;\n /** Convenience: text content shown inside the popover. */\n content?: string;\n /** Visual variant for the trigger icon. */\n variant?: \"help\" | \"info\";\n /** Raw children tuple [trigger, content] — overrides title/content props. */\n children?: [JSX.Element, JSX.Element];\n}\n\nconst helpIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n ?\n </text>\n </svg>\n);\n\nconst infoIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-width=\"1.5\" />\n <text x=\"8\" y=\"12\" text-anchor=\"middle\" fill=\"currentColor\" font-size=\"10\" font-weight=\"bold\">\n i\n </text>\n </svg>\n);\n\n/**\n * A button that opens contextual help in a popover.\n *\n * @example\n * ```tsx\n * // Convenience API\n * <ContextualHelpTrigger title=\"What is this?\" content=\"Help text here\" />\n *\n * // Children API\n * <ContextualHelpTrigger>\n * {[<span>Trigger</span>, <div>Content</div>]}\n * </ContextualHelpTrigger>\n * ```\n */\nexport function ContextualHelpTrigger(props: ContextualHelpTriggerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"title\",\n \"content\",\n \"variant\",\n \"children\",\n \"aria-label\",\n ]);\n\n const children = (): [JSX.Element, JSX.Element] => {\n if (local.children) return local.children;\n const icon = local.variant === \"info\" ? infoIcon : helpIcon;\n const trigger = (\n <span style={{ display: \"inline-flex\", \"align-items\": \"center\", gap: \"4px\" }}>\n {icon}\n {local.title && <span>{local.title}</span>}\n </span>\n );\n const content = (\n <div>\n {local.title && (\n <div style={{ \"font-weight\": \"600\", \"margin-bottom\": \"4px\" }}>{local.title}</div>\n )}\n {local.content && <p style={{ margin: \"0\" }}>{local.content}</p>}\n </div>\n );\n return [trigger, content];\n };\n\n return (\n <HeadlessContextualHelpTrigger\n {...headlessProps}\n aria-label={local[\"aria-label\"] ?? local.title ?? \"Contextual help\"}\n class={[triggerStyles, local.class].filter(Boolean).join(\" \")}\n >\n {children()}\n </HeadlessContextualHelpTrigger>\n );\n}\n","import {\n type JSX,\n Show,\n createContext,\n createSignal,\n createUniqueId,\n mergeProps,\n splitProps,\n useContext,\n} from \"solid-js\";\nimport {\n Menu as HeadlessMenu,\n MenuItem as HeadlessMenuItem,\n MenuSection as HeadlessMenuSection,\n SubmenuTrigger as HeadlessSubmenuTrigger,\n MenuTrigger as HeadlessMenuTrigger,\n MenuButton as HeadlessMenuButton,\n Popover as HeadlessPopover,\n MenuTriggerContext,\n PopoverTriggerContext,\n type MenuProps as HeadlessMenuProps,\n type MenuItemProps as HeadlessMenuItemProps,\n type MenuSectionProps as HeadlessMenuSectionProps,\n type MenuTriggerProps as HeadlessMenuTriggerProps,\n type MenuButtonProps as HeadlessMenuButtonProps,\n type MenuRenderProps,\n type MenuItemRenderProps,\n type MenuTriggerRenderProps,\n type PopoverRenderProps,\n usePopoverTrigger,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { Key, Selection, SelectionMode } from \"@proyecto-viviana/solid-stately\";\nimport { useProviderProps, useTheme } from \"../provider\";\nimport type { StyleString } from \"../style\";\nimport { style, focusRing } from \"../style\" with { type: \"macro\" };\nimport { mergeStyles } from \"../style/runtime\";\nimport { pressScale } from \"../pressScale\";\nimport { centerBaseline } from \"../icon/center-baseline\";\nimport CheckmarkIcon from \"../icon/ui-icons/Checkmark\";\nimport S2ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport LinkOutIcon from \"../icon/ui-icons/LinkOut\";\nimport InfoCircleIcon from \"../icon/s2wf-icons/InfoCircleIcon\";\nimport { IconContext } from \"../icon/spectrum-icon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n HeaderContext,\n HeadingContext,\n KeyboardContext,\n Keyboard,\n Text,\n TextContext,\n} from \"../text\";\nimport {\n menu as s2Menu,\n menuFrame,\n menuItemDescriptor,\n menuItemDescriptorIcon,\n menuItem as s2MenuItem,\n menuItemCheckbox,\n menuItemCheckboxIcon,\n menuItemCheckmark,\n menuItemDescription,\n menuItemIcon,\n menuItemIconCenterWrapper,\n menuItemKeyboard,\n menuItemLabel,\n menuItemValue,\n menuPopover,\n menuSection,\n menuSectionHeader,\n menuSectionHeading,\n type S2MenuItemStyleProps,\n type S2MenuSize,\n} from \"./s2-menu-styles\";\nimport {\n MenuLinkOutIconContext,\n MenuSizeContext,\n MenuTriggerOptionsContext,\n type MenuAlign,\n type MenuDirection,\n} from \"./menu-context\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\n\nexport type MenuSize = S2MenuSize | \"sm\" | \"md\" | \"lg\";\nexport type { MenuAlign, MenuDirection };\n\nconst UnavailableMenuItemContext = createContext(false);\nexport const MenuContext = createContext<SpectrumContextValue<MenuProps<any>>>(null);\nconst linkOutIconSize: Record<S2MenuSize, \"M\" | \"L\" | \"XL\"> = {\n S: \"M\",\n M: \"L\",\n L: \"XL\",\n XL: \"XL\",\n};\nconst selectionIconSize: Record<S2MenuSize, \"XS\" | \"S\" | \"M\" | \"L\"> = {\n S: \"XS\",\n M: \"S\",\n L: \"M\",\n XL: \"L\",\n};\n\nexport interface MenuTriggerProps extends Omit<HeadlessMenuTriggerProps, \"class\" | \"style\"> {\n /** The size of the menu. */\n size?: MenuSize;\n /** Alignment of the menu relative to the trigger. @default 'start' */\n align?: MenuAlign;\n /** Where the Menu opens relative to its trigger. @default 'bottom' */\n direction?: MenuDirection;\n /** Whether the menu should automatically flip direction when space is limited. */\n shouldFlip?: boolean;\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface MenuButtonProps extends Omit<HeadlessMenuButtonProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Visual variant of the button. */\n variant?: \"primary\" | \"secondary\" | \"quiet\";\n}\n\nexport interface MenuProps<T> extends Omit<HeadlessMenuProps<T>, \"class\" | \"style\" | \"ref\"> {\n /** Additional CSS class name. */\n class?: string;\n /** Hides the default link out icons on menu items that open links in a new tab. */\n hideLinkOutIcon?: boolean;\n /** The size of the menu. @default 'M' */\n size?: MenuSize;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu element. */\n ref?: RefLike<HTMLDivElement>;\n}\n\nexport interface MenuItemProps<T> extends Omit<\n HeadlessMenuItemProps<T>,\n \"class\" | \"style\" | \"ref\"\n> {\n /** Additional CSS class name. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString | (() => StyleString | undefined);\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Ref for the menu item element (a `<div>`, or an `<a>` for link items). */\n ref?: RefLike<HTMLElement>;\n /**\n * Optional icon to display before the label.\n * Use a function returning JSX for SSR compatibility: `icon={() => <MyIcon />}`\n */\n icon?: () => JSX.Element;\n /** Optional keyboard shortcut to display. */\n shortcut?: string;\n /** Whether this is a destructive action. */\n isDestructive?: boolean;\n}\n\nexport interface MenuSectionProps extends Omit<HeadlessMenuSectionProps, \"class\" | \"style\"> {\n /** Additional CSS class name. */\n class?: string;\n}\n\nexport interface UnavailableMenuItemTriggerProps {\n /** The menu item followed by contextual help popover content. */\n children: JSX.Element | JSX.Element[];\n /** Whether the menu item should expose unavailable contextual help. */\n isUnavailable?: boolean;\n}\n\n// The MenuButton (a Viviana convenience trigger; upstream S2 composes a plain\n// Button) is styled through the build-time S2 style() macro so the atomic CSS\n// ships in the package bundle for installed consumers. Interactive state\n// (hover/press/open/focus/disabled) is driven by the trigger render props.\ntype MenuButtonVariant = \"primary\" | \"secondary\" | \"quiet\";\n\nconst menuButtonStyles = style<\n MenuTriggerRenderProps & { size: S2MenuSize; variant: MenuButtonVariant }\n>({\n ...focusRing(),\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: \"panel\",\n borderStyle: \"solid\",\n borderWidth: 1,\n fontWeight: \"medium\",\n cursor: \"default\",\n transition: \"default\",\n height: { size: { S: 32, M: 40, L: 48, XL: 56 } },\n font: { size: { S: \"ui-sm\", M: \"ui\", L: \"ui-lg\", XL: \"ui-xl\" } },\n paddingX: { size: { S: 12, M: 16, L: 20, XL: 24 } },\n gap: { size: { S: 8, M: 8, L: 12, XL: 12 } },\n backgroundColor: {\n variant: {\n primary: { default: \"accent\", isHovered: \"accent-800\", isPressed: \"accent-800\" },\n secondary: { default: \"layer-2\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n quiet: { default: \"transparent\", isHovered: \"gray-100\", isPressed: \"gray-100\" },\n },\n isDisabled: \"disabled\",\n },\n borderColor: {\n variant: {\n primary: \"transparent\",\n secondary: { default: \"gray-300\", isHovered: \"gray-400\" },\n quiet: \"transparent\",\n },\n isDisabled: \"transparent\",\n },\n color: {\n default: \"neutral\",\n variant: { primary: \"white\" },\n isDisabled: \"disabled\",\n },\n});\n\nconst menuButtonChevronStyles = style<{ size: S2MenuSize; isOpen?: boolean }>({\n flexShrink: 0,\n transition: \"default\",\n width: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n height: { size: { S: 16, M: 20, L: 24, XL: 28 } },\n rotate: { default: 0, isOpen: 180 },\n});\n\nconst triggerWrapperStyles = style({\n position: \"relative\",\n display: \"inline-block\",\n});\n\nconst separatorStyles = style({\n marginY: 4,\n borderTopWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n});\n\nconst destructiveTextStyles = style({\n color: \"negative\",\n});\n\nfunction normalizeMenuSize(size?: MenuSize): S2MenuSize {\n switch (size) {\n case \"sm\":\n case \"S\":\n return \"S\";\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"XL\":\n return \"XL\";\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction isTextOnlyChildren(children: unknown): children is string | number {\n return typeof children === \"string\" || typeof children === \"number\";\n}\n\nfunction menuPlacement(direction: MenuDirection | undefined, align: MenuAlign | undefined): string {\n const resolvedDirection = direction ?? \"bottom\";\n const resolvedAlign = align ?? \"start\";\n\n switch (resolvedDirection) {\n case \"left\":\n case \"right\":\n case \"start\":\n case \"end\":\n return `${resolvedDirection} ${resolvedAlign === \"end\" ? \"bottom\" : \"top\"}`;\n case \"bottom\":\n case \"top\":\n default:\n return `${resolvedDirection} ${resolvedAlign}`;\n }\n}\n\nfunction menuPlacementAxis(\n direction: MenuDirection | undefined,\n): NonNullable<PopoverRenderProps[\"placement\"]> {\n if (direction === \"start\") {\n return \"left\";\n }\n if (direction === \"end\") {\n return \"right\";\n }\n return direction ?? \"bottom\";\n}\n\n/**\n * A menu trigger wraps a button and menu, handling the open/close state.\n */\nexport function MenuTrigger(props: MenuTriggerProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"align\",\n \"direction\",\n \"shouldFlip\",\n \"class\",\n ]);\n const size = () => normalizeMenuSize(local.size);\n\n return (\n <MenuSizeContext.Provider value={size()}>\n <div class={[triggerWrapperStyles, local.class].filter(Boolean).join(\" \")}>\n <HeadlessMenuTrigger {...headlessProps}>\n <MenuTriggerOverlayContext\n align={() => local.align}\n direction={() => local.direction}\n shouldFlip={() => local.shouldFlip}\n >\n {props.children}\n </MenuTriggerOverlayContext>\n </HeadlessMenuTrigger>\n </div>\n </MenuSizeContext.Provider>\n );\n}\n\ninterface MenuTriggerOverlayContextProps {\n children: JSX.Element;\n align: () => MenuAlign | undefined;\n direction: () => MenuDirection | undefined;\n shouldFlip: () => boolean | undefined;\n}\n\nfunction MenuTriggerOverlayContext(props: MenuTriggerOverlayContextProps): JSX.Element {\n const triggerContext = useContext(MenuTriggerContext);\n const [triggerElement, setTriggerElement] = createSignal<HTMLElement | null>(null);\n const triggerId = createUniqueId();\n\n const popoverTriggerContext = {\n state: {\n isOpen: () => triggerContext?.state.isOpen() ?? false,\n open: () => triggerContext?.state.open(),\n close: () => triggerContext?.state.close(),\n toggle: () => triggerContext?.state.toggle(),\n },\n triggerRef: () => triggerElement(),\n setTriggerRef: (element: HTMLElement | null) => {\n if (!element) {\n return;\n }\n\n const current = triggerElement();\n if (!current || !current.isConnected) {\n setTriggerElement(element);\n }\n },\n triggerId,\n trigger: \"MenuTrigger\",\n };\n\n return (\n <MenuTriggerOptionsContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip,\n }}\n >\n <PopoverTriggerContext.Provider value={popoverTriggerContext}>\n {props.children}\n </PopoverTriggerContext.Provider>\n </MenuTriggerOptionsContext.Provider>\n );\n}\n\n/**\n * A button that opens a menu.\n * SSR-compatible - renders children and chevron icon directly without render props.\n */\nexport function MenuButton(props: MenuButtonProps): JSX.Element {\n const mergedProps = useProviderProps(props);\n const [local, headlessProps] = splitProps(mergedProps, [\"class\", \"variant\", \"ref\"]);\n const size = useContext(MenuSizeContext);\n const popoverTrigger = usePopoverTrigger();\n const variant = local.variant ?? \"secondary\";\n const customClass = local.class ?? \"\";\n\n const getClassName = (renderProps: MenuTriggerRenderProps): string =>\n [menuButtonStyles({ ...renderProps, size, variant }), customClass].filter(Boolean).join(\" \");\n\n return (\n <HeadlessMenuButton\n {...headlessProps}\n ref={(element) => {\n popoverTrigger?.setTriggerRef(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n >\n {(renderProps) => (\n <>\n {props.children as JSX.Element}\n <ChevronIcon class={menuButtonChevronStyles({ size, isOpen: renderProps.isOpen })} />\n </>\n )}\n </HeadlessMenuButton>\n );\n}\n\n/**\n * A menu displays a list of actions or options for the user to choose from.\n */\nexport function Menu<T>(props: MenuProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(MenuContext), props.slot);\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"class\",\n \"hideLinkOutIcon\",\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"slot\",\n \"children\",\n ]);\n const triggerSize = useContext(MenuSizeContext);\n const size = () => normalizeMenuSize(local.size ?? triggerSize);\n const theme = useTheme();\n const popoverTrigger = usePopoverTrigger();\n const triggerOptions = useContext(MenuTriggerOptionsContext);\n const isSubmenu = () => popoverTrigger?.trigger === \"SubmenuTrigger\";\n const isMenuTriggerPopover = () => popoverTrigger?.trigger === \"MenuTrigger\";\n const isPopoverMenu = () => isSubmenu() || isMenuTriggerPopover();\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const mergedRef = mergeContextRefs(contextProps?.ref, props.ref);\n const mergedUnsafeClassName = () =>\n [contextProps?.UNSAFE_className, props.UNSAFE_className].filter(Boolean).join(\" \");\n\n const getClassName = (renderProps: MenuRenderProps): string => {\n const baseClassName = s2Menu({ ...renderProps, size: size() });\n if (isPopoverMenu()) {\n return baseClassName;\n }\n\n return [mergedUnsafeClassName(), mergeStyles(baseClassName, mergedStyles()), local.class]\n .filter(Boolean)\n .join(\" \");\n };\n const getStandaloneStyle = () => (isPopoverMenu() ? {} : (mergedUnsafeStyle() ?? {}));\n const getFrameClassName = () =>\n [\n menuFrame,\n mergedUnsafeClassName(),\n mergeContextStyles(contextProps?.styles, props.styles),\n local.class,\n ]\n .filter(Boolean)\n .join(\" \");\n const getFrameStyle = () => mergedUnsafeStyle();\n const popoverPlacement = () =>\n menuPlacement(triggerOptions?.direction(), triggerOptions?.align());\n const popoverPlacementAxis = () => menuPlacementAxis(triggerOptions?.direction());\n const popoverShouldFlip = () => triggerOptions?.shouldFlip();\n const getPopoverClassName = (renderProps: PopoverRenderProps): string => {\n return menuPopover({\n ...renderProps,\n placement: renderProps.placement ?? popoverPlacementAxis(),\n colorScheme: theme.colorScheme,\n });\n };\n const menuContent = () => (\n <MenuSizeContext.Provider value={size()}>\n <HeaderContext.Provider value={{ styles: () => menuSectionHeader({ size: size() }) }}>\n <HeadingContext.Provider\n value={{\n role: \"presentation\",\n styles: menuSectionHeading,\n }}\n >\n <TextContext.Provider\n value={{\n slots: {\n default: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size: size() }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n styles: () =>\n menuItemDescription({\n size: size(),\n isFocused: false,\n isDisabled: false,\n }),\n \"data-rsp-slot\": \"text\",\n },\n },\n }}\n >\n <HeadlessMenu\n {...headlessProps}\n ref={mergedRef}\n class={getClassName}\n style={getStandaloneStyle}\n children={local.children}\n />\n </TextContext.Provider>\n </HeadingContext.Provider>\n </HeaderContext.Provider>\n </MenuSizeContext.Provider>\n );\n\n if (isSubmenu()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"SubmenuTrigger\"\n placement=\"end top\"\n offset={-2}\n crossOffset={-8}\n isNonModal\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n if (isMenuTriggerPopover()) {\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n <HeadlessPopover\n trigger=\"MenuTrigger\"\n triggerRef={() => popoverTrigger?.triggerRef() ?? null}\n placement={popoverPlacement() as never}\n offset={8}\n shouldFlip={popoverShouldFlip()}\n autoFocus={false}\n class={getPopoverClassName}\n >\n <div class={getFrameClassName()} style={getFrameStyle()}>\n {menuContent()}\n </div>\n </HeadlessPopover>\n </MenuLinkOutIconContext.Provider>\n );\n }\n\n return (\n <MenuLinkOutIconContext.Provider value={local.hideLinkOutIcon ?? false}>\n {menuContent()}\n </MenuLinkOutIconContext.Provider>\n );\n}\n\n/**\n * An item in a menu.\n * SSR-compatible - renders icon, content, and shortcut directly without render props.\n */\nexport function MenuItem<T>(props: MenuItemProps<T>): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"ref\",\n \"icon\",\n \"shortcut\",\n \"isDestructive\",\n ]);\n const size = useContext(MenuSizeContext);\n const hideLinkOutIcon = useContext(MenuLinkOutIconContext);\n const isUnavailable = useContext(UnavailableMenuItemContext);\n const locale = useLocale();\n const customClass = local.class ?? \"\";\n const unavailableDescriptionId = createUniqueId();\n const stringFormatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const isLinkOut = () => headlessProps.href != null && headlessProps.target === \"_blank\";\n const chevronStyle = () =>\n locale().direction === \"rtl\" ? ({ transform: \"scaleX(-1)\" } as JSX.CSSProperties) : undefined;\n const [itemElement, setItemElement] = createSignal<HTMLElement | null>(null);\n const mergedStyles = () => (typeof local.styles === \"function\" ? local.styles() : local.styles);\n\n const getClassName = (renderProps: MenuItemRenderProps): string => {\n const isFocused = (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused;\n return [\n local.UNSAFE_className,\n mergeStyles(\n s2MenuItem({\n ...renderProps,\n isFocused,\n size,\n isLink: headlessProps.href != null,\n }),\n mergedStyles(),\n ),\n local.isDestructive ? destructiveTextStyles : \"\",\n customClass,\n ]\n .filter(Boolean)\n .join(\" \");\n };\n const itemStyleProps = (renderProps: MenuItemRenderProps): S2MenuItemStyleProps => ({\n ...renderProps,\n isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused,\n size,\n isLink: headlessProps.href != null,\n });\n const getStyle = (renderProps: MenuItemRenderProps) =>\n pressScale(() => itemElement(), local.UNSAFE_style)(renderProps);\n const iconContextValue = {\n slot: \"icon\",\n render: centerBaseline({\n slot: \"icon\",\n styles: menuItemIconCenterWrapper,\n }),\n styles: menuItemIcon,\n };\n const textContextValue = (renderProps: MenuItemRenderProps) => ({\n slots: {\n default: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n label: {\n styles: () => menuItemLabel({ size }),\n \"data-rsp-slot\": \"text\",\n },\n description: {\n // Carry the headless description-slot id so the item's\n // `aria-describedby` resolves to this element (upstream two-context\n // `Text` delegation).\n id: renderProps.descriptionProps?.id,\n styles: () => menuItemDescription(itemStyleProps(renderProps)),\n \"data-rsp-slot\": \"text\",\n },\n value: {\n styles: menuItemValue,\n \"data-rsp-slot\": \"value\",\n },\n },\n });\n const keyboardContextValue = (renderProps: MenuItemRenderProps) => ({\n // Carry the headless keyboard-slot id so it too is referenced by the item's\n // `aria-describedby`.\n id: renderProps.keyboardShortcutProps?.id,\n styles: () => menuItemKeyboard(itemStyleProps(renderProps)),\n });\n const MenuItemContents = (contentProps: { renderProps: MenuItemRenderProps }) => {\n const children =\n typeof local.children === \"function\"\n ? (local.children as (props: MenuItemRenderProps) => JSX.Element)(contentProps.renderProps)\n : local.children;\n\n return (\n <>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"single\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <CheckmarkIcon\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n size={selectionIconSize[size]}\n class={menuItemCheckmark(itemStyleProps(contentProps.renderProps))}\n />\n </Show>\n <Show\n when={\n contentProps.renderProps.selectionMode === \"multiple\" &&\n !contentProps.renderProps.hasSubmenu\n }\n >\n <span\n aria-hidden=\"true\"\n data-rsp-slot=\"selection-indicator\"\n class={menuItemCheckbox(itemStyleProps(contentProps.renderProps))}\n >\n <Show when={contentProps.renderProps.isSelected}>\n <CheckmarkIcon\n size={selectionIconSize[size]}\n class={menuItemCheckboxIcon as unknown as string}\n />\n </Show>\n </span>\n </Show>\n {local.icon?.()}\n {isTextOnlyChildren(children) ? <Text slot=\"label\">{children}</Text> : children}\n {local.shortcut ? <Keyboard>{local.shortcut}</Keyboard> : null}\n <Show when={isLinkOut() && !hideLinkOutIcon}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <LinkOutIcon size={linkOutIconSize[size]} class={menuItemDescriptorIcon({ size })} />\n </span>\n </Show>\n <Show when={contentProps.renderProps.hasSubmenu && !isUnavailable}>\n <span slot=\"descriptor\" class={menuItemDescriptor} data-rsp-slot=\"descriptor\">\n <S2ChevronIcon\n size={size}\n class={menuItemDescriptorIcon({ size })}\n style={chevronStyle()}\n />\n </span>\n </Show>\n <Show when={isUnavailable}>\n <span\n id={unavailableDescriptionId}\n slot=\"descriptor\"\n class={menuItemDescriptor}\n data-rsp-slot=\"descriptor\"\n >\n <InfoCircleIcon\n aria-label={stringFormatter().format(\"menu.unavailable\")}\n class={menuItemDescriptorIcon({ size })}\n />\n </span>\n </Show>\n </>\n );\n };\n\n const renderChildren = (renderProps: MenuItemRenderProps) => {\n return (\n <IconContext.Provider value={iconContextValue}>\n <TextContext.Provider value={textContextValue(renderProps)}>\n <KeyboardContext.Provider value={keyboardContextValue(renderProps)}>\n <MenuItemContents renderProps={renderProps} />\n </KeyboardContext.Provider>\n </TextContext.Provider>\n </IconContext.Provider>\n );\n };\n\n const ariaDescribedBy = () =>\n [\n (headlessProps as { \"aria-describedby\"?: string })[\"aria-describedby\"],\n isUnavailable ? unavailableDescriptionId : undefined,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <HeadlessMenuItem\n {...headlessProps}\n aria-describedby={ariaDescribedBy()}\n ref={(element) => {\n setItemElement(element);\n mergeContextRefs(local.ref)(element);\n }}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n );\n}\n\nexport function UnavailableMenuItemTrigger(props: UnavailableMenuItemTriggerProps): JSX.Element {\n const children = () =>\n (Array.isArray(props.children) ? props.children : [props.children]) as JSX.Element[];\n\n return (\n <Show when={props.isUnavailable} fallback={children()[0]}>\n <UnavailableMenuItemContext.Provider value>\n <HeadlessSubmenuTrigger>{children()}</HeadlessSubmenuTrigger>\n </UnavailableMenuItemContext.Provider>\n </Show>\n );\n}\n\nexport function MenuSection(props: MenuSectionProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\"]);\n const size = useContext(MenuSizeContext);\n\n return (\n <HeadlessMenuSection\n {...headlessProps}\n class={[menuSection({ size }), local.class ?? \"\"].filter(Boolean).join(\" \")}\n >\n {props.children}\n </HeadlessMenuSection>\n );\n}\n\nexport interface MenuSeparatorProps {\n /** Additional CSS class name. */\n class?: string;\n}\n\n/**\n * A visual separator between menu items.\n */\nexport function MenuSeparator(props: MenuSeparatorProps): JSX.Element {\n return <div role=\"separator\" class={[separatorStyles, props.class].filter(Boolean).join(\" \")} />;\n}\n\nfunction ChevronIcon(props: { class?: string }): JSX.Element {\n return (\n <svg class={props.class} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n}\n\nMenu.Item = MenuItem;\nMenu.Section = MenuSection;\nMenu.Separator = MenuSeparator;\nMenuTrigger.Button = MenuButton;\n\nexport const Item = MenuItem;\nexport const Section = MenuSection;\n\nexport type { Key, Selection, SelectionMode };\n\nexport { SubmenuTrigger } from \"./SubmenuTrigger\";\nexport type { SubmenuTriggerProps } from \"./SubmenuTrigger\";\nexport { ContextualHelpTrigger } from \"./ContextualHelpTrigger\";\nexport type { ContextualHelpTriggerProps } from \"./ContextualHelpTrigger\";\nexport { Collection } from \"@proyecto-viviana/solidaria-components\";\nexport { ContextualHelpPopover } from \"../contextualhelp\";\nexport type { ContextualHelpPopoverProps } from \"../contextualhelp\";\nexport { Content, Header, Heading, Keyboard, Text } from \"../text\";\n"],"mappings":"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"}
@@ -202,7 +202,7 @@ const numberFieldLabel = function anonymous(props) {
202
202
  }
203
203
  if (props.isStaticColor) rules += " pl151";
204
204
  else if (props.isDisabled) rules += " pUvnvv151";
205
- else rules += " pUUi0Fe151";
205
+ else rules += " pWQ7V3d151";
206
206
  rules += " plb151";
207
207
  rules += " ri151";
208
208
  return rules;
@@ -466,7 +466,7 @@ const helpTextStyles = function anonymous(props) {
466
466
  } else if (props.isInvalid) {
467
467
  rules += " pYjUhNc151";
468
468
  rules += " plQBRyrc151";
469
- } else rules += " pUUi0Fe151";
469
+ } else rules += " pWQ7V3d151";
470
470
  rules += " -_8sjo0b-t5ZbAob151";
471
471
  rules += " _qb151";
472
472
  rules += " TgOnRt151";
@@ -178,7 +178,7 @@ const numberFieldLabel = function anonymous(props) {
178
178
  }
179
179
  if (props.isStaticColor) rules += " pl151";
180
180
  else if (props.isDisabled) rules += " pUvnvv151";
181
- else rules += " pUUi0Fe151";
181
+ else rules += " pWQ7V3d151";
182
182
  rules += " plb151";
183
183
  rules += " ri151";
184
184
  return rules;
@@ -442,7 +442,7 @@ const helpTextStyles = function anonymous(props) {
442
442
  } else if (props.isInvalid) {
443
443
  rules += " pYjUhNc151";
444
444
  rules += " plQBRyrc151";
445
- } else rules += " pUUi0Fe151";
445
+ } else rules += " pWQ7V3d151";
446
446
  rules += " -_8sjo0b-t5ZbAob151";
447
447
  rules += " _qb151";
448
448
  rules += " TgOnRt151";