@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":"breadcrumbs.js","names":["JSX","createIcon","FolderBreadcrumbIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","FolderBreadcrumbIconProps","FolderBreadcrumbIcon","Accessor","For","JSX","Show","createContext","createEffect","createMemo","createRoot","createSignal","mergeProps","onCleanup","onMount","splitProps","untrack","useContext","BreadcrumbItem","HeadlessBreadcrumbItem","BreadcrumbItemContext","HeadlessBreadcrumbItemContext","Breadcrumbs","HeadlessBreadcrumbs","BreadcrumbItemProps","HeadlessBreadcrumbItemProps","BreadcrumbItemRenderProps","BreadcrumbsProps","HeadlessBreadcrumbsProps","BreadcrumbsRenderProps","createStringFormatter","useLocale","StyleString","mergeStyles","useProviderProps","getSlottedContextProps","mergeContextRefs","mergeContextStyles","mergeContextUnsafeStyle","RefLike","SpectrumContextValue","ActionButton","Menu","MenuItem","MenuTrigger","Text","ChevronIcon","FolderBreadcrumbIcon","s2IntlStrings","breadcrumbStyles","chevronStyles","currentStyles","wrapperStyles","S2BreadcrumbsSize","MAX_VISIBLE_ITEMS","BreadcrumbsSize","BreadcrumbsVariant","Omit","T","children","Element","item","size","styles","UNSAFE_className","UNSAFE_style","CSSProperties","class","variant","showSeparator","ref","HTMLElement","BreadcrumbProps","renderProps","CollapsedBreadcrumbEntry","kind","index","InternalBreadcrumbsContextValue","isDisabled","defaultInternalBreadcrumbsContext","BreadcrumbsContext","InternalBreadcrumbsContext","normalizeSize","defaultItemKey","maybeItem","key","id","itemLabel","String","label","name","title","textValue","canMeasureOverflow","window","userAgent","navigator","toLowerCase","includes","fallbackVisibleTailCount","itemCount","props","renderBreadcrumbs","disposeRoot","providerProps","contextProps","slot","mergedProps","const","local","headlessProps","mergedStyles","mergedUnsafeStyle","assignRefs","rootElement","measurementElement","measurementMenuButton","resizeObserver","ResizeObserver","mutationObserver","MutationObserver","connectionObserver","observedResizeTargets","WeakSet","observedMutationTargets","retryOverflowUpdateTimeout","initialOverflowUpdateTimeouts","measurementId","Math","random","toString","slice","canMeasure","setCanMeasure","visibleTailCount","setVisibleTailCount","cleanupOverflowObservers","hasDisposedRoot","hasCleanedOverflowObservers","getClassName","filter","Boolean","join","allItems","items","scheduleOverflowRetry","undefined","setTimeout","updateOverflow","length","measureRoot","document","querySelector","visibleContainer","previousElementSibling","container","observeOverflowTargets","hiddenItems","Array","from","querySelectorAll","element","folder","containerWidth","offsetWidth","getBoundingClientRect","width","containerGap","Number","parseFloat","getComputedStyle","gap","folderGap","marginInlineStart","widths","map","breadcrumb","totalWidth","reduce","sum","firstWidth","shift","availableWidth","nextVisibleTailCount","maxTailCount","reverse","nextTailCount","max","min","queueOverflowUpdate","queueMicrotask","requestAnimationFrame","disposeBreadcrumbsRoot","cleanupIfDisconnected","isConnected","observeElement","options","mutations","has","observe","add","attributes","attributeFilter","body","parentElement","setRootElement","setMeasurementElement","previousElement","setMeasurementMenuButton","nextCanMeasure","safeUpdate","safeQueueUpdate","addEventListener","delay","push","fonts","ready","then","childList","subtree","removeEventListener","disconnect","timeout","clearTimeout","shouldCollapse","wantsCollapse","tailCount","sliceIndex","collapsedCollection","collapsedItems","renderDynamicItem","renderItem","_$createComponent","Provider","value","when","fallback","_$mergeProps","getKey","onAction","style","entry","BreadcrumbMenu","getLabel","_$memo","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_co$","_$getNextMarker","nextSibling","_el$4","_el$5","_co$2","_$use","_$setAttribute","_$insert","each","isLast","itemKey","_el$6","_tmpl$2","isQuiet","locale","context","formatter","format","_el$7","_tmpl$3","_el$8","_el$9","_co$3","_el$0","_el$1","_co$4","aria-label","indexOf","direction","isMenu","_$effect","_$className","Breadcrumb","isCurrent","setIsCurrent","syncRenderProps","isHovered","isFocusVisible","isFocused","isPressed","getStyle","display","renderChildren","content","_el$10","_tmpl$4","_el$11","_el$12","_co$5","_el$13","_el$14","_co$6","elementType","node","Item"],"sources":["../../src/icon/s2wf-icons/FolderBreadcrumbIcon.tsx","../../src/breadcrumbs/s2-breadcrumbs-styles.ts","../../src/breadcrumbs/index.tsx"],"sourcesContent":["/*\n * Auto-generated from vendored React Spectrum S2 icon sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction FolderBreadcrumbIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n {...rest}\n class={className}\n >\n <path\n d=\"m16.75,5h-5.96387c-.21777,0-.42383-.09375-.56641-.25879l-1.7041-1.96387c-.42676-.49414-1.0459-.77734-1.7002-.77734h-3.56543c-1.24023,0-2.25,1.00977-2.25,2.25v10.5c0,1.24023,1.00977,2.25,2.25,2.25h13.5c1.24023,0,2.25-1.00977,2.25-2.25v-7.5c0-1.24023-1.00977-2.25-2.25-2.25ZM3.25,3.5h3.56543c.21777,0,.42383.09375.56641.25879l1.07703,1.24121H2.5v-.75c0-.41309.33691-.75.75-.75Zm14.25,11.25c0,.41309-.33691.75-.75.75H3.25c-.41309,0-.75-.33691-.75-.75V6.5h14.25c.41309,0,.75.33691.75.75v7.5Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n <path\n d=\"m10,13.65039c-.19238,0-.38379-.07324-.53027-.21973l-3-3c-.29297-.29297-.29297-.76758,0-1.06055s.76758-.29297,1.06055,0l2.46973,2.46973,2.46973-2.46973c.29297-.29297.76758-.29297,1.06055,0s.29297.76758,0,1.06055l-3,3c-.14648.14648-.33789.21973-.53027.21973Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nexport type FolderBreadcrumbIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const FolderBreadcrumbIcon = createIcon(FolderBreadcrumbIconSvg);\nexport default FolderBreadcrumbIcon;\n","import { baseColor, focusRing, size as s2Size, style } from \"../style\" with { type: \"macro\" };\nimport {\n controlFont,\n controlSize,\n getAllowedOverrides,\n} from \"../s2-internal/style-utils\" with { type: \"macro\" };\n\nexport type S2BreadcrumbsSize = \"M\" | \"L\";\n\nexport const wrapperStyles = style<{ size: S2BreadcrumbsSize; isDisabled?: boolean }>(\n {\n position: \"relative\",\n display: \"flex\",\n justifyContent: \"start\",\n listStyleType: \"none\",\n flexWrap: \"nowrap\",\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: 0,\n height: controlSize(),\n gap: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n padding: 0,\n transition: \"default\",\n marginTop: 0,\n marginBottom: 0,\n marginStart: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n },\n getAllowedOverrides(),\n);\n\nexport const breadcrumbStyles = style<{\n size?: S2BreadcrumbsSize;\n isDisabled?: boolean;\n isCurrent?: boolean;\n isMenu?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isFocused?: boolean;\n isPressed?: boolean;\n}>({\n ...focusRing(),\n display: {\n default: \"block\",\n isMenu: \"flex\",\n },\n alignItems: {\n isMenu: \"center\",\n },\n justifyContent: {\n isMenu: \"start\",\n },\n height: {\n isMenu: controlSize(),\n },\n transition: \"default\",\n position: \"relative\",\n flexShrink: 0,\n borderStyle: \"none\",\n /* A breadcrumb item is a nav row, so it takes the `row` corner (6px) rather than\n * `sm` (4px, spectrum-theme.ts:630) — a value the register's radius ladder does not\n * draw. The row-shaped siblings already spell this: tabs/index.tsx:336,\n * steplist:68, tree:273/370/477, gridlist:642/686, table:1041. Visible chrome, not\n * dead geometry — it shapes the hover fill and the focus-ring corner. */\n borderRadius: \"row\",\n font: controlFont(),\n color: {\n default: baseColor(\"neutral-subdued\"),\n isDisabled: baseColor(\"neutral-subdued\"),\n isCurrent: baseColor(\"neutral\"),\n forcedColors: {\n default: \"LinkText\",\n isDisabled: \"GrayText\",\n isCurrent: \"GrayText\",\n },\n },\n marginStart: {\n isMenu: s2Size(-6),\n },\n textDecoration: {\n default: \"none\",\n isHovered: \"underline\",\n isFocusVisible: \"underline\",\n isDisabled: \"none\",\n },\n cursor: {\n default: \"pointer\",\n isDisabled: \"default\",\n isCurrent: \"default\",\n },\n outlineColor: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n disableTapHighlight: true,\n});\n\nexport const currentStyles = style<{ size: S2BreadcrumbsSize }>({\n font: controlFont(),\n fontWeight: \"bold\",\n color: {\n default: \"neutral\",\n forcedColors: \"ButtonText\",\n },\n});\n\nexport const chevronStyles = style<{ direction?: \"ltr\" | \"rtl\"; isMenu?: boolean }>({\n scale: {\n direction: {\n rtl: -1,\n },\n },\n marginStart: {\n default: \"text-to-visual\",\n isMenu: 0,\n },\n color: {\n default: \"neutral\",\n forcedColors: {\n default: \"LinkText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n","import {\n type Accessor,\n For,\n type JSX,\n Show,\n createContext,\n createEffect,\n createMemo,\n createRoot,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n useContext,\n} from \"solid-js\";\nimport {\n BreadcrumbItem as HeadlessBreadcrumbItem,\n BreadcrumbItemContext as HeadlessBreadcrumbItemContext,\n Breadcrumbs as HeadlessBreadcrumbs,\n type BreadcrumbItemProps as HeadlessBreadcrumbItemProps,\n type BreadcrumbItemRenderProps,\n type BreadcrumbsProps as HeadlessBreadcrumbsProps,\n type BreadcrumbsRenderProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { StyleString } from \"../style\";\nimport { mergeStyles } from \"../style/runtime\";\nimport { useProviderProps } from \"../provider\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\nimport { ActionButton } from \"../button/ActionButton\";\nimport { Menu, MenuItem, MenuTrigger, Text } from \"../Menu\";\nimport ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport FolderBreadcrumbIcon from \"../icon/s2wf-icons/FolderBreadcrumbIcon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n breadcrumbStyles,\n chevronStyles,\n currentStyles,\n wrapperStyles,\n type S2BreadcrumbsSize,\n} from \"./s2-breadcrumbs-styles\";\n\nconst MAX_VISIBLE_ITEMS = 4;\n\nexport type { S2BreadcrumbsSize };\nexport type BreadcrumbsSize = S2BreadcrumbsSize | \"sm\" | \"md\" | \"lg\";\nexport type BreadcrumbsVariant = \"default\" | \"subtle\";\n\nexport interface BreadcrumbsProps<T> extends Omit<\n HeadlessBreadcrumbsProps<T>,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the Breadcrumbs. */\n children?: JSX.Element | ((item: T) => JSX.Element);\n /** The size of the Breadcrumbs. @default 'M' */\n size?: BreadcrumbsSize;\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Legacy visual variant alias. Kept for source compatibility; S2 Breadcrumbs has no variant. */\n variant?: BreadcrumbsVariant;\n /** Legacy separator toggle. Kept for source compatibility. */\n showSeparator?: boolean;\n /** Ref for the navigation element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport interface BreadcrumbProps extends Omit<\n HeadlessBreadcrumbItemProps,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the breadcrumb item. */\n children?: JSX.Element | ((renderProps: BreadcrumbItemRenderProps) => JSX.Element);\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Ref for the breadcrumb item element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport type BreadcrumbItemProps = BreadcrumbProps;\n\ntype CollapsedBreadcrumbEntry<T> =\n | {\n kind: \"item\";\n item: T;\n index: number;\n }\n | {\n kind: \"menu\";\n };\n\ntype InternalBreadcrumbsContextValue = {\n size: Accessor<S2BreadcrumbsSize>;\n isDisabled: Accessor<boolean>;\n showSeparator: Accessor<boolean>;\n};\n\nconst defaultInternalBreadcrumbsContext: InternalBreadcrumbsContextValue = {\n size: () => \"M\",\n isDisabled: () => false,\n showSeparator: () => true,\n};\n\nexport const BreadcrumbsContext = createContext<SpectrumContextValue<BreadcrumbsProps<any>>>(null);\nconst InternalBreadcrumbsContext = createContext<InternalBreadcrumbsContextValue>(\n defaultInternalBreadcrumbsContext,\n);\n\nfunction normalizeSize(size?: BreadcrumbsSize): S2BreadcrumbsSize {\n switch (size) {\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"sm\":\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction defaultItemKey(item: unknown, index: number): string | number {\n const maybeItem = item as { key?: string | number; id?: string | number };\n return maybeItem.key ?? maybeItem.id ?? index;\n}\n\nfunction itemLabel(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return String(item);\n }\n\n const maybeItem = item as {\n label?: string;\n name?: string;\n title?: string;\n textValue?: string;\n key?: string | number;\n id?: string | number;\n };\n return (\n maybeItem.textValue ??\n maybeItem.label ??\n maybeItem.name ??\n maybeItem.title ??\n String(maybeItem.key ?? maybeItem.id ?? \"\")\n );\n}\n\nfunction canMeasureOverflow(): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n const userAgent = window.navigator?.userAgent?.toLowerCase() ?? \"\";\n return !userAgent.includes(\"jsdom\") && !userAgent.includes(\"happy-dom\");\n}\n\nfunction fallbackVisibleTailCount(itemCount: number): number {\n return itemCount > MAX_VISIBLE_ITEMS ? MAX_VISIBLE_ITEMS - 2 : itemCount;\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user's location within an application.\n */\nexport function Breadcrumbs<T>(props: BreadcrumbsProps<T>): JSX.Element {\n if (typeof window === \"undefined\") {\n return renderBreadcrumbs(props, () => {});\n }\n\n return createRoot((disposeRoot) => renderBreadcrumbs(props, disposeRoot));\n}\n\nfunction renderBreadcrumbs<T>(props: BreadcrumbsProps<T>, disposeRoot: () => void): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(BreadcrumbsContext), props.slot);\n const mergedProps = mergeProps(\n { size: \"M\" as const, showSeparator: true },\n providerProps,\n contextProps ?? {},\n props,\n );\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"items\",\n \"getKey\",\n \"onAction\",\n \"isDisabled\",\n \"ref\",\n \"variant\",\n \"showSeparator\",\n ]);\n\n const size = () => normalizeSize(local.size);\n const isDisabled = () => local.isDisabled ?? false;\n const showSeparator = () => local.showSeparator !== false;\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRefs = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLElement> } | null)?.ref,\n props.ref,\n );\n let rootElement: HTMLElement | undefined;\n let measurementElement: HTMLElement | undefined;\n let measurementMenuButton: HTMLElement | undefined;\n let resizeObserver: ResizeObserver | undefined;\n let mutationObserver: MutationObserver | undefined;\n let connectionObserver: MutationObserver | undefined;\n const observedResizeTargets = new WeakSet<Element>();\n const observedMutationTargets = new WeakSet<Element>();\n let retryOverflowUpdateTimeout: number | undefined;\n const initialOverflowUpdateTimeouts: number[] = [];\n const measurementId = `rsp-breadcrumbs-${Math.random().toString(36).slice(2)}`;\n const [canMeasure, setCanMeasure] = createSignal(canMeasureOverflow());\n const [visibleTailCount, setVisibleTailCount] = createSignal(MAX_VISIBLE_ITEMS - 2);\n let cleanupOverflowObservers = () => {};\n let hasDisposedRoot = false;\n let hasCleanedOverflowObservers = false;\n\n const getClassName = (renderProps: BreadcrumbsRenderProps): string =>\n [\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n wrapperStyles(\n {\n size: size(),\n isDisabled: renderProps.isDisabled,\n },\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const allItems = createMemo(() => local.items ?? []);\n const scheduleOverflowRetry = () => {\n if (\n hasDisposedRoot ||\n typeof window === \"undefined\" ||\n retryOverflowUpdateTimeout !== undefined\n ) {\n return;\n }\n\n retryOverflowUpdateTimeout = window.setTimeout(() => {\n retryOverflowUpdateTimeout = undefined;\n updateOverflow();\n }, 16);\n };\n const updateOverflow = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n const items = local.items ?? [];\n if (items.length === 0) {\n setVisibleTailCount(0);\n return;\n }\n\n if (!canMeasure()) {\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const measureRoot =\n measurementElement ??\n (typeof document !== \"undefined\"\n ? (document.querySelector(\n `[data-rsp-breadcrumbs-measure-id=\"${measurementId}\"]`,\n ) as HTMLElement | null)\n : undefined);\n const visibleContainer =\n measureRoot?.previousElementSibling instanceof HTMLElement\n ? measureRoot.previousElementSibling\n : undefined;\n const container = visibleContainer ?? rootElement;\n if (measureRoot && measurementElement !== measureRoot) {\n measurementElement = measureRoot;\n }\n if (container && rootElement !== container) {\n rootElement = container;\n assignRefs(container);\n }\n observeOverflowTargets();\n if (!measureRoot || !container || typeof window === \"undefined\") {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const hiddenItems = Array.from(\n measureRoot.querySelectorAll(\"[data-hidden-breadcrumb]\"),\n ).filter((element): element is HTMLElement => element instanceof HTMLElement);\n const folder =\n measurementMenuButton ??\n (measureRoot.querySelector(\"[data-hidden-breadcrumb-menu-button]\") as HTMLElement | null);\n if (hiddenItems.length <= 0 || !folder) {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const containerWidth = container.offsetWidth || container.getBoundingClientRect().width;\n const containerGap = Number.parseFloat(window.getComputedStyle(container).gap || \"0\") || 0;\n const folderGap =\n Number.parseFloat(window.getComputedStyle(folder).marginInlineStart || \"0\") || 0;\n const widths = hiddenItems.map((breadcrumb) => breadcrumb.offsetWidth + 1);\n const totalWidth = widths.reduce((sum, width) => sum + width, 0);\n\n if (\n totalWidth <= containerWidth - items.length * containerGap &&\n items.length <= MAX_VISIBLE_ITEMS\n ) {\n setVisibleTailCount(items.length);\n return;\n }\n\n const firstWidth = widths.shift() ?? 0;\n let availableWidth =\n containerWidth - firstWidth - folderGap - folder.offsetWidth - containerGap;\n let nextVisibleTailCount = 0;\n const maxTailCount = MAX_VISIBLE_ITEMS - 2;\n\n for (const width of widths.reverse()) {\n availableWidth -= width;\n if (availableWidth <= 0) {\n break;\n }\n availableWidth -= containerGap;\n nextVisibleTailCount += 1;\n }\n\n const nextTailCount = Math.max(1, Math.min(maxTailCount, nextVisibleTailCount));\n setVisibleTailCount(nextTailCount);\n };\n const queueOverflowUpdate = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n queueMicrotask(updateOverflow);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(updateOverflow);\n }\n if (typeof window !== \"undefined\") {\n window.setTimeout(updateOverflow, 0);\n }\n };\n const disposeBreadcrumbsRoot = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n hasDisposedRoot = true;\n cleanupOverflowObservers();\n disposeRoot();\n };\n const cleanupIfDisconnected = () => {\n if (rootElement?.isConnected || measurementElement?.isConnected) {\n return;\n }\n\n disposeBreadcrumbsRoot();\n };\n const observeOverflowTargets = () => {\n if (hasDisposedRoot || !rootElement || (!resizeObserver && !mutationObserver)) {\n return;\n }\n\n const observeElement = (element: HTMLElement, options: { mutations?: boolean } = {}) => {\n if (resizeObserver && !observedResizeTargets.has(element)) {\n resizeObserver.observe(element);\n observedResizeTargets.add(element);\n }\n\n if (\n options.mutations !== false &&\n mutationObserver &&\n !observedMutationTargets.has(element)\n ) {\n mutationObserver.observe(element, {\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n observedMutationTargets.add(element);\n }\n };\n\n let element: HTMLElement | null = rootElement;\n while (element && element !== document.body) {\n observeElement(element);\n element = element.parentElement;\n }\n\n if (measurementElement) {\n observeElement(measurementElement, { mutations: false });\n if (measurementElement.parentElement) {\n observeElement(measurementElement.parentElement);\n }\n }\n };\n const setRootElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n rootElement = element;\n assignRefs(element);\n observeOverflowTargets();\n queueOverflowUpdate();\n };\n const setMeasurementElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementElement = element;\n const previousElement = element.previousElementSibling;\n if (previousElement instanceof HTMLElement) {\n rootElement = previousElement;\n assignRefs(previousElement);\n observeOverflowTargets();\n }\n queueOverflowUpdate();\n };\n const setMeasurementMenuButton = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementMenuButton = element;\n queueOverflowUpdate();\n };\n\n createEffect(() => {\n allItems().length;\n canMeasure();\n size();\n isDisabled();\n queueOverflowUpdate();\n });\n\n onMount(() => {\n const nextCanMeasure = canMeasureOverflow();\n setCanMeasure(nextCanMeasure);\n\n const safeUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n updateOverflow();\n };\n const safeQueueUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n queueOverflowUpdate();\n };\n resizeObserver =\n nextCanMeasure && typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(safeQueueUpdate)\n : undefined;\n mutationObserver =\n nextCanMeasure && typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(safeQueueUpdate)\n : undefined;\n\n observeOverflowTargets();\n safeUpdate();\n window.addEventListener(\"resize\", safeUpdate);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(() => {\n safeUpdate();\n requestAnimationFrame(safeUpdate);\n });\n }\n for (const delay of [16, 50, 100, 250]) {\n initialOverflowUpdateTimeouts.push(window.setTimeout(safeUpdate, delay));\n }\n document.fonts?.ready.then(() => {\n if (!hasDisposedRoot) {\n safeUpdate();\n }\n });\n connectionObserver =\n typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(cleanupIfDisconnected)\n : undefined;\n connectionObserver?.observe(document.body, { childList: true, subtree: true });\n cleanupOverflowObservers = () => {\n if (hasCleanedOverflowObservers) {\n return;\n }\n\n hasCleanedOverflowObservers = true;\n window.removeEventListener(\"resize\", safeUpdate);\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n connectionObserver?.disconnect();\n for (const timeout of initialOverflowUpdateTimeouts) {\n window.clearTimeout(timeout);\n }\n if (retryOverflowUpdateTimeout !== undefined) {\n window.clearTimeout(retryOverflowUpdateTimeout);\n }\n };\n });\n onCleanup(() => cleanupOverflowObservers());\n\n const shouldCollapse = createMemo(() => {\n const items = allItems();\n if (items.length <= 2) {\n return false;\n }\n const wantsCollapse =\n items.length > MAX_VISIBLE_ITEMS || (canMeasure() && visibleTailCount() < items.length);\n if (!wantsCollapse) {\n return false;\n }\n // Only collapse when the overflow menu would actually hold an item. When the\n // path shrinks (e.g. an overflow menu entry is chosen), `visibleTailCount` can\n // trail the new, smaller collection for a frame — `sliceIndex` then lands at 1\n // and the menu slice `[1, sliceIndex)` is empty. Upstream S2 renders that empty\n // menu for a single frame and re-measures (React batches the state settle); our\n // fine-grained overflow observers instead turn the transient into a\n // collapse⇄expand feedback loop that pins the renderer thread. Gating on a\n // non-empty menu yields the identical settled layout without the transient.\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return sliceIndex > 1;\n });\n createEffect(() => {\n shouldCollapse();\n queueOverflowUpdate();\n });\n const collapsedCollection = createMemo<CollapsedBreadcrumbEntry<T>[]>(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n\n return [\n { kind: \"item\", item: items[0] as T, index: 0 },\n { kind: \"menu\" },\n ...items.slice(sliceIndex).map((item, index) => ({\n kind: \"item\" as const,\n item,\n index: sliceIndex + index,\n })),\n ];\n });\n const collapsedItems = createMemo(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return items.slice(1, sliceIndex);\n });\n\n const renderDynamicItem = (item: T | undefined) => {\n if (item === undefined) {\n return null;\n }\n\n const renderItem = local.children as ((item: T) => JSX.Element) | undefined;\n return renderItem?.(item);\n };\n\n return (\n <InternalBreadcrumbsContext.Provider value={{ size, isDisabled, showSeparator }}>\n <Show\n when={shouldCollapse()}\n fallback={\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={local.items}\n getKey={local.getKey}\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={local.children as any}\n />\n }\n >\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={collapsedCollection()}\n getKey={(entry) =>\n entry.kind === \"menu\"\n ? \"__breadcrumb-menu\"\n : (local.getKey?.(entry.item) ?? defaultItemKey(entry.item, entry.index))\n }\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={(entry) =>\n entry.kind === \"menu\" ? (\n <BreadcrumbMenu\n items={collapsedItems()}\n getKey={(item, index) =>\n local.getKey?.(item as T) ?? defaultItemKey(item, index + 1)\n }\n getLabel={itemLabel}\n onAction={local.onAction}\n />\n ) : (\n renderDynamicItem(entry.item)\n )\n }\n />\n </Show>\n <Show when={allItems().length > 0 && canMeasure()}>\n {/*\n Hidden measurement copy. Faithful to upstream S2 `HiddenBreadcrumbs`\n (react-spectrum/packages/@react-spectrum/s2/src/Breadcrumbs.tsx): a FLAT\n projection of the items — plain `[data-hidden-breadcrumb]` divs — NOT a\n second live Breadcrumbs collection. Rendering a second `<HeadlessBreadcrumbs>`\n here span a synchronous reactive cycle between the two collections that pinned\n the renderer thread. Each item still gets a BreadcrumbItemContext so the styled\n Breadcrumb resolves isCurrent/isLast exactly as in the visible list.\n */}\n <div\n ref={setMeasurementElement}\n aria-hidden=\"true\"\n data-rsp-breadcrumbs-measure=\"\"\n data-rsp-breadcrumbs-measure-id={measurementId}\n style={{\n position: \"absolute\",\n inset: \"0\",\n display: \"flex\",\n \"align-items\": \"center\",\n visibility: \"hidden\",\n overflow: \"hidden\",\n opacity: 0,\n \"pointer-events\": \"none\",\n }}\n >\n <For each={allItems()}>\n {(item, index) => {\n const isLast = () => index() === allItems().length - 1;\n const itemKey = () =>\n local.getKey?.(item) ?? defaultItemKey(item, index());\n return (\n <div data-hidden-breadcrumb style={{ display: \"inline-flex\", \"align-items\": \"center\" }}>\n <HeadlessBreadcrumbItemContext.Provider\n value={{ get itemKey() { return itemKey(); }, isLast }}\n >\n {renderDynamicItem(item)}\n </HeadlessBreadcrumbItemContext.Provider>\n </div>\n );\n }}\n </For>\n <ActionButton\n ref={setMeasurementMenuButton}\n data-hidden-breadcrumb-menu-button=\"\"\n isQuiet\n aria-label=\"More items\"\n >\n <FolderBreadcrumbIcon />\n </ActionButton>\n </div>\n </Show>\n </InternalBreadcrumbsContext.Provider>\n );\n}\n\nfunction BreadcrumbMenu<T>(props: {\n items: T[];\n getKey: (item: T, index: number) => string | number;\n getLabel: (item: T) => string;\n onAction?: (key: string | number) => void;\n}): JSX.Element {\n const locale = useLocale();\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const formatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const label = () => formatter().format(\"breadcrumbs.more\");\n\n return (\n <span\n class={breadcrumbStyles({\n size: context.size(),\n isDisabled: context.isDisabled(),\n isMenu: true,\n })}\n data-rsp-breadcrumb-menu=\"\"\n >\n <MenuTrigger>\n <ActionButton isDisabled={context.isDisabled()} isQuiet aria-label={label()}>\n <FolderBreadcrumbIcon />\n </ActionButton>\n <Menu\n items={props.items}\n // Menu invokes onAction(key, value); Breadcrumbs' contract is key-only\n // (matching upstream), so drop the leaked item value.\n onAction={(key) => props.onAction?.(key)}\n size={context.size()}\n aria-label={label()}\n >\n {(item) => (\n <MenuItem id={props.getKey(item, props.items.indexOf(item))}>\n <Text slot=\"label\">{props.getLabel(item)}</Text>\n </MenuItem>\n )}\n </Menu>\n </MenuTrigger>\n <ChevronIcon\n size={context.size()}\n class={chevronStyles({ direction: locale().direction, isMenu: true })}\n />\n </span>\n );\n}\n\n/**\n * An individual Breadcrumb for Breadcrumbs.\n */\nexport function Breadcrumb(props: BreadcrumbProps): JSX.Element {\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const locale = useLocale();\n const providerProps = useProviderProps(props);\n const mergedProps = mergeProps(providerProps, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"ref\",\n ]);\n\n const assignRefs = mergeContextRefs(props.ref);\n const mergedStyles = () => mergeContextStyles(undefined, local.styles);\n const size = () => context.size();\n const [isCurrent, setIsCurrent] = createSignal(false);\n\n const syncRenderProps = (renderProps: BreadcrumbItemRenderProps) => {\n untrack(() => {\n if (isCurrent() !== renderProps.isCurrent) {\n setIsCurrent(renderProps.isCurrent);\n }\n });\n };\n\n const getClassName = (renderProps: BreadcrumbItemRenderProps): string => {\n syncRenderProps(renderProps);\n\n return [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n breadcrumbStyles({\n size: size(),\n isDisabled: renderProps.isDisabled || context.isDisabled(),\n isCurrent: renderProps.isCurrent,\n isHovered: renderProps.isHovered,\n isFocusVisible: renderProps.isFocusVisible,\n isFocused: renderProps.isFocused,\n isPressed: renderProps.isPressed,\n }),\n renderProps.isCurrent ? currentStyles({ size: size() }) : undefined,\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n };\n\n const getStyle = (renderProps: BreadcrumbItemRenderProps): JSX.CSSProperties => ({\n ...(local.UNSAFE_style ?? {}),\n display: \"block\",\n \"clip-path\": renderProps.isFocusVisible ? \"none\" : \"margin-box\",\n });\n\n const renderChildren = (renderProps: BreadcrumbItemRenderProps): JSX.Element => {\n syncRenderProps(renderProps);\n\n const content =\n typeof local.children === \"function\" ? local.children(renderProps) : local.children;\n\n return content;\n };\n\n return (\n <span style={{ display: \"contents\" }}>\n <HeadlessBreadcrumbItem\n {...headlessProps}\n elementType={isCurrent() ? \"div\" : headlessProps.elementType}\n ref={(node: HTMLElement) => assignRefs(node)}\n isDisabled={headlessProps.isDisabled || context.isDisabled()}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n <Show when={context.showSeparator() && !isCurrent()}>\n <ChevronIcon size=\"M\" class={chevronStyles({ direction: locale().direction })} />\n </Show>\n </span>\n );\n}\n\nexport const BreadcrumbItem = Breadcrumb;\nexport const Item = Breadcrumb;\n\nBreadcrumbs.Item = Breadcrumb;\n"],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumbs.js","names":["JSX","createIcon","FolderBreadcrumbIconSvg","props","SvgSVGAttributes","SVGSVGElement","Element","class","className","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","FolderBreadcrumbIconProps","FolderBreadcrumbIcon","Accessor","For","JSX","Show","createContext","createEffect","createMemo","createRoot","createSignal","mergeProps","onCleanup","onMount","splitProps","untrack","useContext","BreadcrumbItem","HeadlessBreadcrumbItem","BreadcrumbItemContext","HeadlessBreadcrumbItemContext","Breadcrumbs","HeadlessBreadcrumbs","BreadcrumbItemProps","HeadlessBreadcrumbItemProps","BreadcrumbItemRenderProps","BreadcrumbsProps","HeadlessBreadcrumbsProps","BreadcrumbsRenderProps","createStringFormatter","useLocale","StyleString","mergeStyles","useProviderProps","getSlottedContextProps","mergeContextRefs","mergeContextStyles","mergeContextUnsafeStyle","RefLike","SpectrumContextValue","ActionButton","Menu","MenuItem","MenuTrigger","Text","ChevronIcon","FolderBreadcrumbIcon","s2IntlStrings","breadcrumbStyles","chevronStyles","currentStyles","wrapperStyles","S2BreadcrumbsSize","MAX_VISIBLE_ITEMS","BreadcrumbsSize","BreadcrumbsVariant","Omit","T","children","Element","item","size","styles","UNSAFE_className","UNSAFE_style","CSSProperties","class","variant","showSeparator","ref","HTMLElement","BreadcrumbProps","renderProps","CollapsedBreadcrumbEntry","kind","index","InternalBreadcrumbsContextValue","isDisabled","defaultInternalBreadcrumbsContext","BreadcrumbsContext","InternalBreadcrumbsContext","normalizeSize","defaultItemKey","maybeItem","key","id","itemLabel","String","label","name","title","textValue","canMeasureOverflow","window","userAgent","navigator","toLowerCase","includes","fallbackVisibleTailCount","itemCount","props","renderBreadcrumbs","disposeRoot","providerProps","contextProps","slot","mergedProps","const","local","headlessProps","mergedStyles","mergedUnsafeStyle","assignRefs","rootElement","measurementElement","measurementMenuButton","resizeObserver","ResizeObserver","mutationObserver","MutationObserver","connectionObserver","observedResizeTargets","WeakSet","observedMutationTargets","retryOverflowUpdateTimeout","initialOverflowUpdateTimeouts","measurementId","Math","random","toString","slice","canMeasure","setCanMeasure","visibleTailCount","setVisibleTailCount","cleanupOverflowObservers","hasDisposedRoot","hasCleanedOverflowObservers","getClassName","filter","Boolean","join","allItems","items","scheduleOverflowRetry","undefined","setTimeout","updateOverflow","length","measureRoot","document","querySelector","visibleContainer","previousElementSibling","container","observeOverflowTargets","hiddenItems","Array","from","querySelectorAll","element","folder","containerWidth","offsetWidth","getBoundingClientRect","width","containerGap","Number","parseFloat","getComputedStyle","gap","folderGap","marginInlineStart","widths","map","breadcrumb","totalWidth","reduce","sum","firstWidth","shift","availableWidth","nextVisibleTailCount","maxTailCount","reverse","nextTailCount","max","min","queueOverflowUpdate","queueMicrotask","requestAnimationFrame","disposeBreadcrumbsRoot","cleanupIfDisconnected","isConnected","observeElement","options","mutations","has","observe","add","attributes","attributeFilter","body","parentElement","setRootElement","setMeasurementElement","previousElement","setMeasurementMenuButton","nextCanMeasure","safeUpdate","safeQueueUpdate","addEventListener","delay","push","fonts","ready","then","childList","subtree","removeEventListener","disconnect","timeout","clearTimeout","shouldCollapse","wantsCollapse","tailCount","sliceIndex","collapsedCollection","collapsedItems","renderDynamicItem","renderItem","_$createComponent","Provider","value","when","fallback","_$mergeProps","getKey","onAction","style","entry","BreadcrumbMenu","getLabel","_$memo","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","_el$3","_co$","_$getNextMarker","nextSibling","_el$4","_el$5","_co$2","_$use","_$setAttribute","_$insert","each","isLast","itemKey","_el$6","_tmpl$2","isQuiet","locale","context","formatter","format","_el$7","_tmpl$3","_el$8","_el$9","_co$3","_el$0","_el$1","_co$4","aria-label","indexOf","direction","isMenu","_$effect","_$className","Breadcrumb","isCurrent","setIsCurrent","syncRenderProps","isHovered","isFocusVisible","isFocused","isPressed","getStyle","display","renderChildren","content","_el$10","_tmpl$4","_el$11","_el$12","_co$5","_el$13","_el$14","_co$6","elementType","node","Item"],"sources":["../../src/icon/s2wf-icons/FolderBreadcrumbIcon.tsx","../../src/breadcrumbs/s2-breadcrumbs-styles.ts","../../src/breadcrumbs/index.tsx"],"sourcesContent":["/*\n * Auto-generated from vendored React Spectrum S2 icon sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction FolderBreadcrumbIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n {...rest}\n class={className}\n >\n <path\n d=\"m16.75,5h-5.96387c-.21777,0-.42383-.09375-.56641-.25879l-1.7041-1.96387c-.42676-.49414-1.0459-.77734-1.7002-.77734h-3.56543c-1.24023,0-2.25,1.00977-2.25,2.25v10.5c0,1.24023,1.00977,2.25,2.25,2.25h13.5c1.24023,0,2.25-1.00977,2.25-2.25v-7.5c0-1.24023-1.00977-2.25-2.25-2.25ZM3.25,3.5h3.56543c.21777,0,.42383.09375.56641.25879l1.07703,1.24121H2.5v-.75c0-.41309.33691-.75.75-.75Zm14.25,11.25c0,.41309-.33691.75-.75.75H3.25c-.41309,0-.75-.33691-.75-.75V6.5h14.25c.41309,0,.75.33691.75.75v7.5Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n <path\n d=\"m10,13.65039c-.19238,0-.38379-.07324-.53027-.21973l-3-3c-.29297-.29297-.29297-.76758,0-1.06055s.76758-.29297,1.06055,0l2.46973,2.46973,2.46973-2.46973c.29297-.29297.76758-.29297,1.06055,0s.29297.76758,0,1.06055l-3,3c-.14648.14648-.33789.21973-.53027.21973Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nexport type FolderBreadcrumbIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const FolderBreadcrumbIcon = createIcon(FolderBreadcrumbIconSvg);\nexport default FolderBreadcrumbIcon;\n","import { baseColor, focusRing, size as s2Size, style } from \"../style\" with { type: \"macro\" };\nimport {\n controlFont,\n controlSize,\n getAllowedOverrides,\n} from \"../s2-internal/style-utils\" with { type: \"macro\" };\n\nexport type S2BreadcrumbsSize = \"M\" | \"L\";\n\nexport const wrapperStyles = style<{ size: S2BreadcrumbsSize; isDisabled?: boolean }>(\n {\n position: \"relative\",\n display: \"flex\",\n justifyContent: \"start\",\n listStyleType: \"none\",\n flexWrap: \"nowrap\",\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: 0,\n height: controlSize(),\n gap: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n padding: 0,\n transition: \"default\",\n marginTop: 0,\n marginBottom: 0,\n marginStart: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n },\n getAllowedOverrides(),\n);\n\nexport const breadcrumbStyles = style<{\n size?: S2BreadcrumbsSize;\n isDisabled?: boolean;\n isCurrent?: boolean;\n isMenu?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isFocused?: boolean;\n isPressed?: boolean;\n}>({\n ...focusRing(),\n display: {\n default: \"block\",\n isMenu: \"flex\",\n },\n alignItems: {\n isMenu: \"center\",\n },\n justifyContent: {\n isMenu: \"start\",\n },\n height: {\n isMenu: controlSize(),\n },\n transition: \"default\",\n position: \"relative\",\n flexShrink: 0,\n borderStyle: \"none\",\n /* A breadcrumb item is a nav row, so it takes the `row` corner (6px) rather than\n * `sm` (4px, spectrum-theme.ts:630) — a value the register's radius ladder does not\n * draw. The row-shaped siblings already spell this: tabs/index.tsx:336,\n * steplist:68, tree:273/370/477, gridlist:642/686, table:1041. Visible chrome, not\n * dead geometry — it shapes the hover fill and the focus-ring corner. */\n borderRadius: \"row\",\n font: controlFont(),\n color: {\n default: baseColor(\"neutral-subdued\"),\n isDisabled: baseColor(\"neutral-subdued\"),\n isCurrent: baseColor(\"neutral\"),\n forcedColors: {\n default: \"LinkText\",\n isDisabled: \"GrayText\",\n isCurrent: \"GrayText\",\n },\n },\n marginStart: {\n isMenu: s2Size(-6),\n },\n textDecoration: {\n default: \"none\",\n isHovered: \"underline\",\n isFocusVisible: \"underline\",\n isDisabled: \"none\",\n },\n cursor: {\n default: \"pointer\",\n isDisabled: \"default\",\n isCurrent: \"default\",\n },\n outlineColor: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n disableTapHighlight: true,\n});\n\nexport const currentStyles = style<{ size: S2BreadcrumbsSize }>({\n font: controlFont(),\n fontWeight: \"bold\",\n color: {\n default: \"neutral\",\n forcedColors: \"ButtonText\",\n },\n});\n\nexport const chevronStyles = style<{ direction?: \"ltr\" | \"rtl\"; isMenu?: boolean }>({\n scale: {\n direction: {\n rtl: -1,\n },\n },\n marginStart: {\n default: \"text-to-visual\",\n isMenu: 0,\n },\n color: {\n default: \"neutral\",\n forcedColors: {\n default: \"LinkText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n","import {\n type Accessor,\n For,\n type JSX,\n Show,\n createContext,\n createEffect,\n createMemo,\n createRoot,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n useContext,\n} from \"solid-js\";\nimport {\n BreadcrumbItem as HeadlessBreadcrumbItem,\n BreadcrumbItemContext as HeadlessBreadcrumbItemContext,\n Breadcrumbs as HeadlessBreadcrumbs,\n type BreadcrumbItemProps as HeadlessBreadcrumbItemProps,\n type BreadcrumbItemRenderProps,\n type BreadcrumbsProps as HeadlessBreadcrumbsProps,\n type BreadcrumbsRenderProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { StyleString } from \"../style\";\nimport { mergeStyles } from \"../style/runtime\";\nimport { useProviderProps } from \"../provider\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\nimport { ActionButton } from \"../button/ActionButton\";\nimport { Menu, MenuItem, MenuTrigger, Text } from \"../Menu\";\nimport ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport FolderBreadcrumbIcon from \"../icon/s2wf-icons/FolderBreadcrumbIcon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n breadcrumbStyles,\n chevronStyles,\n currentStyles,\n wrapperStyles,\n type S2BreadcrumbsSize,\n} from \"./s2-breadcrumbs-styles\";\n\nconst MAX_VISIBLE_ITEMS = 4;\n\nexport type { S2BreadcrumbsSize };\nexport type BreadcrumbsSize = S2BreadcrumbsSize | \"sm\" | \"md\" | \"lg\";\nexport type BreadcrumbsVariant = \"default\" | \"subtle\";\n\nexport interface BreadcrumbsProps<T> extends Omit<\n HeadlessBreadcrumbsProps<T>,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the Breadcrumbs. */\n children?: JSX.Element | ((item: T) => JSX.Element);\n /** The size of the Breadcrumbs. @default 'M' */\n size?: BreadcrumbsSize;\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Legacy visual variant alias. Kept for source compatibility; S2 Breadcrumbs has no variant. */\n variant?: BreadcrumbsVariant;\n /** Legacy separator toggle. Kept for source compatibility. */\n showSeparator?: boolean;\n /** Ref for the navigation element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport interface BreadcrumbProps extends Omit<\n HeadlessBreadcrumbItemProps,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the breadcrumb item. */\n children?: JSX.Element | ((renderProps: BreadcrumbItemRenderProps) => JSX.Element);\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Ref for the breadcrumb item element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport type BreadcrumbItemProps = BreadcrumbProps;\n\ntype CollapsedBreadcrumbEntry<T> =\n | {\n kind: \"item\";\n item: T;\n index: number;\n }\n | {\n kind: \"menu\";\n };\n\ntype InternalBreadcrumbsContextValue = {\n size: Accessor<S2BreadcrumbsSize>;\n isDisabled: Accessor<boolean>;\n showSeparator: Accessor<boolean>;\n};\n\nconst defaultInternalBreadcrumbsContext: InternalBreadcrumbsContextValue = {\n size: () => \"M\",\n isDisabled: () => false,\n showSeparator: () => true,\n};\n\nexport const BreadcrumbsContext = createContext<SpectrumContextValue<BreadcrumbsProps<any>>>(null);\nconst InternalBreadcrumbsContext = createContext<InternalBreadcrumbsContextValue>(\n defaultInternalBreadcrumbsContext,\n);\n\nfunction normalizeSize(size?: BreadcrumbsSize): S2BreadcrumbsSize {\n switch (size) {\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"sm\":\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction defaultItemKey(item: unknown, index: number): string | number {\n const maybeItem = item as { key?: string | number; id?: string | number };\n return maybeItem.key ?? maybeItem.id ?? index;\n}\n\nfunction itemLabel(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return String(item);\n }\n\n const maybeItem = item as {\n label?: string;\n name?: string;\n title?: string;\n textValue?: string;\n key?: string | number;\n id?: string | number;\n };\n return (\n maybeItem.textValue ??\n maybeItem.label ??\n maybeItem.name ??\n maybeItem.title ??\n String(maybeItem.key ?? maybeItem.id ?? \"\")\n );\n}\n\nfunction canMeasureOverflow(): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n const userAgent = window.navigator?.userAgent?.toLowerCase() ?? \"\";\n return !userAgent.includes(\"jsdom\") && !userAgent.includes(\"happy-dom\");\n}\n\nfunction fallbackVisibleTailCount(itemCount: number): number {\n return itemCount > MAX_VISIBLE_ITEMS ? MAX_VISIBLE_ITEMS - 2 : itemCount;\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user's location within an application.\n */\nexport function Breadcrumbs<T>(props: BreadcrumbsProps<T>): JSX.Element {\n if (typeof window === \"undefined\") {\n return renderBreadcrumbs(props, () => {});\n }\n\n return createRoot((disposeRoot) => renderBreadcrumbs(props, disposeRoot));\n}\n\nfunction renderBreadcrumbs<T>(props: BreadcrumbsProps<T>, disposeRoot: () => void): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(BreadcrumbsContext), props.slot);\n const mergedProps = mergeProps(\n { size: \"M\" as const, showSeparator: true },\n providerProps,\n contextProps ?? {},\n props,\n );\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"items\",\n \"getKey\",\n \"onAction\",\n \"isDisabled\",\n \"ref\",\n \"variant\",\n \"showSeparator\",\n ]);\n\n const size = () => normalizeSize(local.size);\n const isDisabled = () => local.isDisabled ?? false;\n const showSeparator = () => local.showSeparator !== false;\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRefs = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLElement> } | null)?.ref,\n props.ref,\n );\n let rootElement: HTMLElement | undefined;\n let measurementElement: HTMLElement | undefined;\n let measurementMenuButton: HTMLElement | undefined;\n let resizeObserver: ResizeObserver | undefined;\n let mutationObserver: MutationObserver | undefined;\n let connectionObserver: MutationObserver | undefined;\n const observedResizeTargets = new WeakSet<Element>();\n const observedMutationTargets = new WeakSet<Element>();\n let retryOverflowUpdateTimeout: number | undefined;\n const initialOverflowUpdateTimeouts: number[] = [];\n const measurementId = `rsp-breadcrumbs-${Math.random().toString(36).slice(2)}`;\n const [canMeasure, setCanMeasure] = createSignal(canMeasureOverflow());\n const [visibleTailCount, setVisibleTailCount] = createSignal(MAX_VISIBLE_ITEMS - 2);\n let cleanupOverflowObservers = () => {};\n let hasDisposedRoot = false;\n let hasCleanedOverflowObservers = false;\n\n const getClassName = (renderProps: BreadcrumbsRenderProps): string =>\n [\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n wrapperStyles(\n {\n size: size(),\n isDisabled: renderProps.isDisabled,\n },\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const allItems = createMemo(() => local.items ?? []);\n const scheduleOverflowRetry = () => {\n if (\n hasDisposedRoot ||\n typeof window === \"undefined\" ||\n retryOverflowUpdateTimeout !== undefined\n ) {\n return;\n }\n\n retryOverflowUpdateTimeout = window.setTimeout(() => {\n retryOverflowUpdateTimeout = undefined;\n updateOverflow();\n }, 16);\n };\n const updateOverflow = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n const items = local.items ?? [];\n if (items.length === 0) {\n setVisibleTailCount(0);\n return;\n }\n\n if (!canMeasure()) {\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const measureRoot =\n measurementElement ??\n (typeof document !== \"undefined\"\n ? (document.querySelector(\n `[data-rsp-breadcrumbs-measure-id=\"${measurementId}\"]`,\n ) as HTMLElement | null)\n : undefined);\n const visibleContainer =\n measureRoot?.previousElementSibling instanceof HTMLElement\n ? measureRoot.previousElementSibling\n : undefined;\n const container = visibleContainer ?? rootElement;\n if (measureRoot && measurementElement !== measureRoot) {\n measurementElement = measureRoot;\n }\n if (container && rootElement !== container) {\n rootElement = container;\n assignRefs(container);\n }\n observeOverflowTargets();\n if (!measureRoot || !container || typeof window === \"undefined\") {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const hiddenItems = Array.from(measureRoot.querySelectorAll(\"[data-hidden-breadcrumb]\")).filter(\n (element): element is HTMLElement => element instanceof HTMLElement,\n );\n const folder =\n measurementMenuButton ??\n (measureRoot.querySelector(\"[data-hidden-breadcrumb-menu-button]\") as HTMLElement | null);\n if (hiddenItems.length <= 0 || !folder) {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const containerWidth = container.offsetWidth || container.getBoundingClientRect().width;\n const containerGap = Number.parseFloat(window.getComputedStyle(container).gap || \"0\") || 0;\n const folderGap =\n Number.parseFloat(window.getComputedStyle(folder).marginInlineStart || \"0\") || 0;\n const widths = hiddenItems.map((breadcrumb) => breadcrumb.offsetWidth + 1);\n const totalWidth = widths.reduce((sum, width) => sum + width, 0);\n\n if (\n totalWidth <= containerWidth - items.length * containerGap &&\n items.length <= MAX_VISIBLE_ITEMS\n ) {\n setVisibleTailCount(items.length);\n return;\n }\n\n const firstWidth = widths.shift() ?? 0;\n let availableWidth =\n containerWidth - firstWidth - folderGap - folder.offsetWidth - containerGap;\n let nextVisibleTailCount = 0;\n const maxTailCount = MAX_VISIBLE_ITEMS - 2;\n\n for (const width of widths.reverse()) {\n availableWidth -= width;\n if (availableWidth <= 0) {\n break;\n }\n availableWidth -= containerGap;\n nextVisibleTailCount += 1;\n }\n\n const nextTailCount = Math.max(1, Math.min(maxTailCount, nextVisibleTailCount));\n setVisibleTailCount(nextTailCount);\n };\n const queueOverflowUpdate = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n queueMicrotask(updateOverflow);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(updateOverflow);\n }\n if (typeof window !== \"undefined\") {\n window.setTimeout(updateOverflow, 0);\n }\n };\n const disposeBreadcrumbsRoot = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n hasDisposedRoot = true;\n cleanupOverflowObservers();\n disposeRoot();\n };\n const cleanupIfDisconnected = () => {\n if (rootElement?.isConnected || measurementElement?.isConnected) {\n return;\n }\n\n disposeBreadcrumbsRoot();\n };\n const observeOverflowTargets = () => {\n if (hasDisposedRoot || !rootElement || (!resizeObserver && !mutationObserver)) {\n return;\n }\n\n const observeElement = (element: HTMLElement, options: { mutations?: boolean } = {}) => {\n if (resizeObserver && !observedResizeTargets.has(element)) {\n resizeObserver.observe(element);\n observedResizeTargets.add(element);\n }\n\n if (\n options.mutations !== false &&\n mutationObserver &&\n !observedMutationTargets.has(element)\n ) {\n mutationObserver.observe(element, {\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n observedMutationTargets.add(element);\n }\n };\n\n let element: HTMLElement | null = rootElement;\n while (element && element !== document.body) {\n observeElement(element);\n element = element.parentElement;\n }\n\n if (measurementElement) {\n observeElement(measurementElement, { mutations: false });\n if (measurementElement.parentElement) {\n observeElement(measurementElement.parentElement);\n }\n }\n };\n const setRootElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n rootElement = element;\n assignRefs(element);\n observeOverflowTargets();\n queueOverflowUpdate();\n };\n const setMeasurementElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementElement = element;\n const previousElement = element.previousElementSibling;\n if (previousElement instanceof HTMLElement) {\n rootElement = previousElement;\n assignRefs(previousElement);\n observeOverflowTargets();\n }\n queueOverflowUpdate();\n };\n const setMeasurementMenuButton = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementMenuButton = element;\n queueOverflowUpdate();\n };\n\n createEffect(() => {\n allItems().length;\n canMeasure();\n size();\n isDisabled();\n queueOverflowUpdate();\n });\n\n onMount(() => {\n const nextCanMeasure = canMeasureOverflow();\n setCanMeasure(nextCanMeasure);\n\n const safeUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n updateOverflow();\n };\n const safeQueueUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n queueOverflowUpdate();\n };\n resizeObserver =\n nextCanMeasure && typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(safeQueueUpdate)\n : undefined;\n mutationObserver =\n nextCanMeasure && typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(safeQueueUpdate)\n : undefined;\n\n observeOverflowTargets();\n safeUpdate();\n window.addEventListener(\"resize\", safeUpdate);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(() => {\n safeUpdate();\n requestAnimationFrame(safeUpdate);\n });\n }\n for (const delay of [16, 50, 100, 250]) {\n initialOverflowUpdateTimeouts.push(window.setTimeout(safeUpdate, delay));\n }\n document.fonts?.ready.then(() => {\n if (!hasDisposedRoot) {\n safeUpdate();\n }\n });\n connectionObserver =\n typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(cleanupIfDisconnected)\n : undefined;\n connectionObserver?.observe(document.body, { childList: true, subtree: true });\n cleanupOverflowObservers = () => {\n if (hasCleanedOverflowObservers) {\n return;\n }\n\n hasCleanedOverflowObservers = true;\n window.removeEventListener(\"resize\", safeUpdate);\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n connectionObserver?.disconnect();\n for (const timeout of initialOverflowUpdateTimeouts) {\n window.clearTimeout(timeout);\n }\n if (retryOverflowUpdateTimeout !== undefined) {\n window.clearTimeout(retryOverflowUpdateTimeout);\n }\n };\n });\n onCleanup(() => cleanupOverflowObservers());\n\n const shouldCollapse = createMemo(() => {\n const items = allItems();\n if (items.length <= 2) {\n return false;\n }\n const wantsCollapse =\n items.length > MAX_VISIBLE_ITEMS || (canMeasure() && visibleTailCount() < items.length);\n if (!wantsCollapse) {\n return false;\n }\n // Only collapse when the overflow menu would actually hold an item. When the\n // path shrinks (e.g. an overflow menu entry is chosen), `visibleTailCount` can\n // trail the new, smaller collection for a frame — `sliceIndex` then lands at 1\n // and the menu slice `[1, sliceIndex)` is empty. Upstream S2 renders that empty\n // menu for a single frame and re-measures (React batches the state settle); our\n // fine-grained overflow observers instead turn the transient into a\n // collapse⇄expand feedback loop that pins the renderer thread. Gating on a\n // non-empty menu yields the identical settled layout without the transient.\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return sliceIndex > 1;\n });\n createEffect(() => {\n shouldCollapse();\n queueOverflowUpdate();\n });\n const collapsedCollection = createMemo<CollapsedBreadcrumbEntry<T>[]>(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n\n return [\n { kind: \"item\", item: items[0] as T, index: 0 },\n { kind: \"menu\" },\n ...items.slice(sliceIndex).map((item, index) => ({\n kind: \"item\" as const,\n item,\n index: sliceIndex + index,\n })),\n ];\n });\n const collapsedItems = createMemo(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return items.slice(1, sliceIndex);\n });\n\n const renderDynamicItem = (item: T | undefined) => {\n if (item === undefined) {\n return null;\n }\n\n const renderItem = local.children as ((item: T) => JSX.Element) | undefined;\n return renderItem?.(item);\n };\n\n return (\n <InternalBreadcrumbsContext.Provider value={{ size, isDisabled, showSeparator }}>\n <Show\n when={shouldCollapse()}\n fallback={\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={local.items}\n getKey={local.getKey}\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={local.children as any}\n />\n }\n >\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={collapsedCollection()}\n getKey={(entry) =>\n entry.kind === \"menu\"\n ? \"__breadcrumb-menu\"\n : (local.getKey?.(entry.item) ?? defaultItemKey(entry.item, entry.index))\n }\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={(entry) =>\n entry.kind === \"menu\" ? (\n <BreadcrumbMenu\n items={collapsedItems()}\n getKey={(item, index) =>\n local.getKey?.(item as T) ?? defaultItemKey(item, index + 1)\n }\n getLabel={itemLabel}\n onAction={local.onAction}\n />\n ) : (\n renderDynamicItem(entry.item)\n )\n }\n />\n </Show>\n <Show when={allItems().length > 0 && canMeasure()}>\n {/*\n Hidden measurement copy. Faithful to upstream S2 `HiddenBreadcrumbs`\n (react-spectrum/packages/@react-spectrum/s2/src/Breadcrumbs.tsx): a FLAT\n projection of the items — plain `[data-hidden-breadcrumb]` divs — NOT a\n second live Breadcrumbs collection. Rendering a second `<HeadlessBreadcrumbs>`\n here span a synchronous reactive cycle between the two collections that pinned\n the renderer thread. Each item still gets a BreadcrumbItemContext so the styled\n Breadcrumb resolves isCurrent/isLast exactly as in the visible list.\n */}\n <div\n ref={setMeasurementElement}\n aria-hidden=\"true\"\n data-rsp-breadcrumbs-measure=\"\"\n data-rsp-breadcrumbs-measure-id={measurementId}\n style={{\n position: \"absolute\",\n inset: \"0\",\n display: \"flex\",\n \"align-items\": \"center\",\n visibility: \"hidden\",\n overflow: \"hidden\",\n opacity: 0,\n \"pointer-events\": \"none\",\n }}\n >\n <For each={allItems()}>\n {(item, index) => {\n const isLast = () => index() === allItems().length - 1;\n const itemKey = () => local.getKey?.(item) ?? defaultItemKey(item, index());\n return (\n <div\n data-hidden-breadcrumb\n style={{ display: \"inline-flex\", \"align-items\": \"center\" }}\n >\n <HeadlessBreadcrumbItemContext.Provider\n value={{\n get itemKey() {\n return itemKey();\n },\n isLast,\n }}\n >\n {renderDynamicItem(item)}\n </HeadlessBreadcrumbItemContext.Provider>\n </div>\n );\n }}\n </For>\n <ActionButton\n ref={setMeasurementMenuButton}\n data-hidden-breadcrumb-menu-button=\"\"\n isQuiet\n aria-label=\"More items\"\n >\n <FolderBreadcrumbIcon />\n </ActionButton>\n </div>\n </Show>\n </InternalBreadcrumbsContext.Provider>\n );\n}\n\nfunction BreadcrumbMenu<T>(props: {\n items: T[];\n getKey: (item: T, index: number) => string | number;\n getLabel: (item: T) => string;\n onAction?: (key: string | number) => void;\n}): JSX.Element {\n const locale = useLocale();\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const formatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const label = () => formatter().format(\"breadcrumbs.more\");\n\n return (\n <span\n class={breadcrumbStyles({\n size: context.size(),\n isDisabled: context.isDisabled(),\n isMenu: true,\n })}\n data-rsp-breadcrumb-menu=\"\"\n >\n <MenuTrigger>\n <ActionButton isDisabled={context.isDisabled()} isQuiet aria-label={label()}>\n <FolderBreadcrumbIcon />\n </ActionButton>\n <Menu\n items={props.items}\n // Menu invokes onAction(key, value); Breadcrumbs' contract is key-only\n // (matching upstream), so drop the leaked item value.\n onAction={(key) => props.onAction?.(key)}\n size={context.size()}\n aria-label={label()}\n >\n {(item) => (\n <MenuItem id={props.getKey(item, props.items.indexOf(item))}>\n <Text slot=\"label\">{props.getLabel(item)}</Text>\n </MenuItem>\n )}\n </Menu>\n </MenuTrigger>\n <ChevronIcon\n size={context.size()}\n class={chevronStyles({ direction: locale().direction, isMenu: true })}\n />\n </span>\n );\n}\n\n/**\n * An individual Breadcrumb for Breadcrumbs.\n */\nexport function Breadcrumb(props: BreadcrumbProps): JSX.Element {\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const locale = useLocale();\n const providerProps = useProviderProps(props);\n const mergedProps = mergeProps(providerProps, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"ref\",\n ]);\n\n const assignRefs = mergeContextRefs(props.ref);\n const mergedStyles = () => mergeContextStyles(undefined, local.styles);\n const size = () => context.size();\n const [isCurrent, setIsCurrent] = createSignal(false);\n\n const syncRenderProps = (renderProps: BreadcrumbItemRenderProps) => {\n untrack(() => {\n if (isCurrent() !== renderProps.isCurrent) {\n setIsCurrent(renderProps.isCurrent);\n }\n });\n };\n\n const getClassName = (renderProps: BreadcrumbItemRenderProps): string => {\n syncRenderProps(renderProps);\n\n return [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n breadcrumbStyles({\n size: size(),\n isDisabled: renderProps.isDisabled || context.isDisabled(),\n isCurrent: renderProps.isCurrent,\n isHovered: renderProps.isHovered,\n isFocusVisible: renderProps.isFocusVisible,\n isFocused: renderProps.isFocused,\n isPressed: renderProps.isPressed,\n }),\n renderProps.isCurrent ? currentStyles({ size: size() }) : undefined,\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n };\n\n const getStyle = (renderProps: BreadcrumbItemRenderProps): JSX.CSSProperties => ({\n ...(local.UNSAFE_style ?? {}),\n display: \"block\",\n \"clip-path\": renderProps.isFocusVisible ? \"none\" : \"margin-box\",\n });\n\n const renderChildren = (renderProps: BreadcrumbItemRenderProps): JSX.Element => {\n syncRenderProps(renderProps);\n\n const content =\n typeof local.children === \"function\" ? local.children(renderProps) : local.children;\n\n return content;\n };\n\n return (\n <span style={{ display: \"contents\" }}>\n <HeadlessBreadcrumbItem\n {...headlessProps}\n elementType={isCurrent() ? \"div\" : headlessProps.elementType}\n ref={(node: HTMLElement) => assignRefs(node)}\n isDisabled={headlessProps.isDisabled || context.isDisabled()}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n <Show when={context.showSeparator() && !isCurrent()}>\n <ChevronIcon size=\"M\" class={chevronStyles({ direction: locale().direction })} />\n </Show>\n </span>\n );\n}\n\nexport const BreadcrumbItem = Breadcrumb;\nexport const Item = Breadcrumb;\n\nBreadcrumbs.Item = Breadcrumb;\n"],"mappings":"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"}
@@ -161,11 +161,11 @@ const breadcrumbStyles = function anonymous(props) {
161
161
  else if (props.isDisabled) if (props.isPressed) rules += " pQKeKoe151";
162
162
  else if (props.isFocusVisible) rules += " pQKeKoe151";
163
163
  else if (props.isHovered) rules += " pQKeKoe151";
164
- else rules += " pUUi0Fe151";
164
+ else rules += " pWQ7V3d151";
165
165
  else if (props.isPressed) rules += " pQKeKoe151";
166
166
  else if (props.isFocusVisible) rules += " pQKeKoe151";
167
167
  else if (props.isHovered) rules += " pQKeKoe151";
168
- else rules += " pUUi0Fe151";
168
+ else rules += " pWQ7V3d151";
169
169
  if (props.isCurrent) rules += " plc151";
170
170
  else if (props.isDisabled) rules += " plc151";
171
171
  else rules += " plf151";
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.jsx","names":["Breadcrumbs","HeadlessBreadcrumbs","HeadlessBreadcrumbItemContext","MenuTrigger","Menu","MenuItem","ChevronIcon","HeadlessBreadcrumbItem","BreadcrumbItem"],"sources":["../../src/icon/s2wf-icons/FolderBreadcrumbIcon.tsx","../../src/breadcrumbs/s2-breadcrumbs-styles.ts","../../src/breadcrumbs/index.tsx"],"sourcesContent":["/*\n * Auto-generated from vendored React Spectrum S2 icon sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction FolderBreadcrumbIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n {...rest}\n class={className}\n >\n <path\n d=\"m16.75,5h-5.96387c-.21777,0-.42383-.09375-.56641-.25879l-1.7041-1.96387c-.42676-.49414-1.0459-.77734-1.7002-.77734h-3.56543c-1.24023,0-2.25,1.00977-2.25,2.25v10.5c0,1.24023,1.00977,2.25,2.25,2.25h13.5c1.24023,0,2.25-1.00977,2.25-2.25v-7.5c0-1.24023-1.00977-2.25-2.25-2.25ZM3.25,3.5h3.56543c.21777,0,.42383.09375.56641.25879l1.07703,1.24121H2.5v-.75c0-.41309.33691-.75.75-.75Zm14.25,11.25c0,.41309-.33691.75-.75.75H3.25c-.41309,0-.75-.33691-.75-.75V6.5h14.25c.41309,0,.75.33691.75.75v7.5Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n <path\n d=\"m10,13.65039c-.19238,0-.38379-.07324-.53027-.21973l-3-3c-.29297-.29297-.29297-.76758,0-1.06055s.76758-.29297,1.06055,0l2.46973,2.46973,2.46973-2.46973c.29297-.29297.76758-.29297,1.06055,0s.29297.76758,0,1.06055l-3,3c-.14648.14648-.33789.21973-.53027.21973Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nexport type FolderBreadcrumbIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const FolderBreadcrumbIcon = createIcon(FolderBreadcrumbIconSvg);\nexport default FolderBreadcrumbIcon;\n","import { baseColor, focusRing, size as s2Size, style } from \"../style\" with { type: \"macro\" };\nimport {\n controlFont,\n controlSize,\n getAllowedOverrides,\n} from \"../s2-internal/style-utils\" with { type: \"macro\" };\n\nexport type S2BreadcrumbsSize = \"M\" | \"L\";\n\nexport const wrapperStyles = style<{ size: S2BreadcrumbsSize; isDisabled?: boolean }>(\n {\n position: \"relative\",\n display: \"flex\",\n justifyContent: \"start\",\n listStyleType: \"none\",\n flexWrap: \"nowrap\",\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: 0,\n height: controlSize(),\n gap: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n padding: 0,\n transition: \"default\",\n marginTop: 0,\n marginBottom: 0,\n marginStart: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n },\n getAllowedOverrides(),\n);\n\nexport const breadcrumbStyles = style<{\n size?: S2BreadcrumbsSize;\n isDisabled?: boolean;\n isCurrent?: boolean;\n isMenu?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isFocused?: boolean;\n isPressed?: boolean;\n}>({\n ...focusRing(),\n display: {\n default: \"block\",\n isMenu: \"flex\",\n },\n alignItems: {\n isMenu: \"center\",\n },\n justifyContent: {\n isMenu: \"start\",\n },\n height: {\n isMenu: controlSize(),\n },\n transition: \"default\",\n position: \"relative\",\n flexShrink: 0,\n borderStyle: \"none\",\n /* A breadcrumb item is a nav row, so it takes the `row` corner (6px) rather than\n * `sm` (4px, spectrum-theme.ts:630) — a value the register's radius ladder does not\n * draw. The row-shaped siblings already spell this: tabs/index.tsx:336,\n * steplist:68, tree:273/370/477, gridlist:642/686, table:1041. Visible chrome, not\n * dead geometry — it shapes the hover fill and the focus-ring corner. */\n borderRadius: \"row\",\n font: controlFont(),\n color: {\n default: baseColor(\"neutral-subdued\"),\n isDisabled: baseColor(\"neutral-subdued\"),\n isCurrent: baseColor(\"neutral\"),\n forcedColors: {\n default: \"LinkText\",\n isDisabled: \"GrayText\",\n isCurrent: \"GrayText\",\n },\n },\n marginStart: {\n isMenu: s2Size(-6),\n },\n textDecoration: {\n default: \"none\",\n isHovered: \"underline\",\n isFocusVisible: \"underline\",\n isDisabled: \"none\",\n },\n cursor: {\n default: \"pointer\",\n isDisabled: \"default\",\n isCurrent: \"default\",\n },\n outlineColor: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n disableTapHighlight: true,\n});\n\nexport const currentStyles = style<{ size: S2BreadcrumbsSize }>({\n font: controlFont(),\n fontWeight: \"bold\",\n color: {\n default: \"neutral\",\n forcedColors: \"ButtonText\",\n },\n});\n\nexport const chevronStyles = style<{ direction?: \"ltr\" | \"rtl\"; isMenu?: boolean }>({\n scale: {\n direction: {\n rtl: -1,\n },\n },\n marginStart: {\n default: \"text-to-visual\",\n isMenu: 0,\n },\n color: {\n default: \"neutral\",\n forcedColors: {\n default: \"LinkText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n","import {\n type Accessor,\n For,\n type JSX,\n Show,\n createContext,\n createEffect,\n createMemo,\n createRoot,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n useContext,\n} from \"solid-js\";\nimport {\n BreadcrumbItem as HeadlessBreadcrumbItem,\n BreadcrumbItemContext as HeadlessBreadcrumbItemContext,\n Breadcrumbs as HeadlessBreadcrumbs,\n type BreadcrumbItemProps as HeadlessBreadcrumbItemProps,\n type BreadcrumbItemRenderProps,\n type BreadcrumbsProps as HeadlessBreadcrumbsProps,\n type BreadcrumbsRenderProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { StyleString } from \"../style\";\nimport { mergeStyles } from \"../style/runtime\";\nimport { useProviderProps } from \"../provider\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\nimport { ActionButton } from \"../button/ActionButton\";\nimport { Menu, MenuItem, MenuTrigger, Text } from \"../Menu\";\nimport ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport FolderBreadcrumbIcon from \"../icon/s2wf-icons/FolderBreadcrumbIcon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n breadcrumbStyles,\n chevronStyles,\n currentStyles,\n wrapperStyles,\n type S2BreadcrumbsSize,\n} from \"./s2-breadcrumbs-styles\";\n\nconst MAX_VISIBLE_ITEMS = 4;\n\nexport type { S2BreadcrumbsSize };\nexport type BreadcrumbsSize = S2BreadcrumbsSize | \"sm\" | \"md\" | \"lg\";\nexport type BreadcrumbsVariant = \"default\" | \"subtle\";\n\nexport interface BreadcrumbsProps<T> extends Omit<\n HeadlessBreadcrumbsProps<T>,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the Breadcrumbs. */\n children?: JSX.Element | ((item: T) => JSX.Element);\n /** The size of the Breadcrumbs. @default 'M' */\n size?: BreadcrumbsSize;\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Legacy visual variant alias. Kept for source compatibility; S2 Breadcrumbs has no variant. */\n variant?: BreadcrumbsVariant;\n /** Legacy separator toggle. Kept for source compatibility. */\n showSeparator?: boolean;\n /** Ref for the navigation element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport interface BreadcrumbProps extends Omit<\n HeadlessBreadcrumbItemProps,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the breadcrumb item. */\n children?: JSX.Element | ((renderProps: BreadcrumbItemRenderProps) => JSX.Element);\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Ref for the breadcrumb item element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport type BreadcrumbItemProps = BreadcrumbProps;\n\ntype CollapsedBreadcrumbEntry<T> =\n | {\n kind: \"item\";\n item: T;\n index: number;\n }\n | {\n kind: \"menu\";\n };\n\ntype InternalBreadcrumbsContextValue = {\n size: Accessor<S2BreadcrumbsSize>;\n isDisabled: Accessor<boolean>;\n showSeparator: Accessor<boolean>;\n};\n\nconst defaultInternalBreadcrumbsContext: InternalBreadcrumbsContextValue = {\n size: () => \"M\",\n isDisabled: () => false,\n showSeparator: () => true,\n};\n\nexport const BreadcrumbsContext = createContext<SpectrumContextValue<BreadcrumbsProps<any>>>(null);\nconst InternalBreadcrumbsContext = createContext<InternalBreadcrumbsContextValue>(\n defaultInternalBreadcrumbsContext,\n);\n\nfunction normalizeSize(size?: BreadcrumbsSize): S2BreadcrumbsSize {\n switch (size) {\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"sm\":\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction defaultItemKey(item: unknown, index: number): string | number {\n const maybeItem = item as { key?: string | number; id?: string | number };\n return maybeItem.key ?? maybeItem.id ?? index;\n}\n\nfunction itemLabel(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return String(item);\n }\n\n const maybeItem = item as {\n label?: string;\n name?: string;\n title?: string;\n textValue?: string;\n key?: string | number;\n id?: string | number;\n };\n return (\n maybeItem.textValue ??\n maybeItem.label ??\n maybeItem.name ??\n maybeItem.title ??\n String(maybeItem.key ?? maybeItem.id ?? \"\")\n );\n}\n\nfunction canMeasureOverflow(): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n const userAgent = window.navigator?.userAgent?.toLowerCase() ?? \"\";\n return !userAgent.includes(\"jsdom\") && !userAgent.includes(\"happy-dom\");\n}\n\nfunction fallbackVisibleTailCount(itemCount: number): number {\n return itemCount > MAX_VISIBLE_ITEMS ? MAX_VISIBLE_ITEMS - 2 : itemCount;\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user's location within an application.\n */\nexport function Breadcrumbs<T>(props: BreadcrumbsProps<T>): JSX.Element {\n if (typeof window === \"undefined\") {\n return renderBreadcrumbs(props, () => {});\n }\n\n return createRoot((disposeRoot) => renderBreadcrumbs(props, disposeRoot));\n}\n\nfunction renderBreadcrumbs<T>(props: BreadcrumbsProps<T>, disposeRoot: () => void): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(BreadcrumbsContext), props.slot);\n const mergedProps = mergeProps(\n { size: \"M\" as const, showSeparator: true },\n providerProps,\n contextProps ?? {},\n props,\n );\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"items\",\n \"getKey\",\n \"onAction\",\n \"isDisabled\",\n \"ref\",\n \"variant\",\n \"showSeparator\",\n ]);\n\n const size = () => normalizeSize(local.size);\n const isDisabled = () => local.isDisabled ?? false;\n const showSeparator = () => local.showSeparator !== false;\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRefs = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLElement> } | null)?.ref,\n props.ref,\n );\n let rootElement: HTMLElement | undefined;\n let measurementElement: HTMLElement | undefined;\n let measurementMenuButton: HTMLElement | undefined;\n let resizeObserver: ResizeObserver | undefined;\n let mutationObserver: MutationObserver | undefined;\n let connectionObserver: MutationObserver | undefined;\n const observedResizeTargets = new WeakSet<Element>();\n const observedMutationTargets = new WeakSet<Element>();\n let retryOverflowUpdateTimeout: number | undefined;\n const initialOverflowUpdateTimeouts: number[] = [];\n const measurementId = `rsp-breadcrumbs-${Math.random().toString(36).slice(2)}`;\n const [canMeasure, setCanMeasure] = createSignal(canMeasureOverflow());\n const [visibleTailCount, setVisibleTailCount] = createSignal(MAX_VISIBLE_ITEMS - 2);\n let cleanupOverflowObservers = () => {};\n let hasDisposedRoot = false;\n let hasCleanedOverflowObservers = false;\n\n const getClassName = (renderProps: BreadcrumbsRenderProps): string =>\n [\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n wrapperStyles(\n {\n size: size(),\n isDisabled: renderProps.isDisabled,\n },\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const allItems = createMemo(() => local.items ?? []);\n const scheduleOverflowRetry = () => {\n if (\n hasDisposedRoot ||\n typeof window === \"undefined\" ||\n retryOverflowUpdateTimeout !== undefined\n ) {\n return;\n }\n\n retryOverflowUpdateTimeout = window.setTimeout(() => {\n retryOverflowUpdateTimeout = undefined;\n updateOverflow();\n }, 16);\n };\n const updateOverflow = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n const items = local.items ?? [];\n if (items.length === 0) {\n setVisibleTailCount(0);\n return;\n }\n\n if (!canMeasure()) {\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const measureRoot =\n measurementElement ??\n (typeof document !== \"undefined\"\n ? (document.querySelector(\n `[data-rsp-breadcrumbs-measure-id=\"${measurementId}\"]`,\n ) as HTMLElement | null)\n : undefined);\n const visibleContainer =\n measureRoot?.previousElementSibling instanceof HTMLElement\n ? measureRoot.previousElementSibling\n : undefined;\n const container = visibleContainer ?? rootElement;\n if (measureRoot && measurementElement !== measureRoot) {\n measurementElement = measureRoot;\n }\n if (container && rootElement !== container) {\n rootElement = container;\n assignRefs(container);\n }\n observeOverflowTargets();\n if (!measureRoot || !container || typeof window === \"undefined\") {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const hiddenItems = Array.from(\n measureRoot.querySelectorAll(\"[data-hidden-breadcrumb]\"),\n ).filter((element): element is HTMLElement => element instanceof HTMLElement);\n const folder =\n measurementMenuButton ??\n (measureRoot.querySelector(\"[data-hidden-breadcrumb-menu-button]\") as HTMLElement | null);\n if (hiddenItems.length <= 0 || !folder) {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const containerWidth = container.offsetWidth || container.getBoundingClientRect().width;\n const containerGap = Number.parseFloat(window.getComputedStyle(container).gap || \"0\") || 0;\n const folderGap =\n Number.parseFloat(window.getComputedStyle(folder).marginInlineStart || \"0\") || 0;\n const widths = hiddenItems.map((breadcrumb) => breadcrumb.offsetWidth + 1);\n const totalWidth = widths.reduce((sum, width) => sum + width, 0);\n\n if (\n totalWidth <= containerWidth - items.length * containerGap &&\n items.length <= MAX_VISIBLE_ITEMS\n ) {\n setVisibleTailCount(items.length);\n return;\n }\n\n const firstWidth = widths.shift() ?? 0;\n let availableWidth =\n containerWidth - firstWidth - folderGap - folder.offsetWidth - containerGap;\n let nextVisibleTailCount = 0;\n const maxTailCount = MAX_VISIBLE_ITEMS - 2;\n\n for (const width of widths.reverse()) {\n availableWidth -= width;\n if (availableWidth <= 0) {\n break;\n }\n availableWidth -= containerGap;\n nextVisibleTailCount += 1;\n }\n\n const nextTailCount = Math.max(1, Math.min(maxTailCount, nextVisibleTailCount));\n setVisibleTailCount(nextTailCount);\n };\n const queueOverflowUpdate = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n queueMicrotask(updateOverflow);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(updateOverflow);\n }\n if (typeof window !== \"undefined\") {\n window.setTimeout(updateOverflow, 0);\n }\n };\n const disposeBreadcrumbsRoot = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n hasDisposedRoot = true;\n cleanupOverflowObservers();\n disposeRoot();\n };\n const cleanupIfDisconnected = () => {\n if (rootElement?.isConnected || measurementElement?.isConnected) {\n return;\n }\n\n disposeBreadcrumbsRoot();\n };\n const observeOverflowTargets = () => {\n if (hasDisposedRoot || !rootElement || (!resizeObserver && !mutationObserver)) {\n return;\n }\n\n const observeElement = (element: HTMLElement, options: { mutations?: boolean } = {}) => {\n if (resizeObserver && !observedResizeTargets.has(element)) {\n resizeObserver.observe(element);\n observedResizeTargets.add(element);\n }\n\n if (\n options.mutations !== false &&\n mutationObserver &&\n !observedMutationTargets.has(element)\n ) {\n mutationObserver.observe(element, {\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n observedMutationTargets.add(element);\n }\n };\n\n let element: HTMLElement | null = rootElement;\n while (element && element !== document.body) {\n observeElement(element);\n element = element.parentElement;\n }\n\n if (measurementElement) {\n observeElement(measurementElement, { mutations: false });\n if (measurementElement.parentElement) {\n observeElement(measurementElement.parentElement);\n }\n }\n };\n const setRootElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n rootElement = element;\n assignRefs(element);\n observeOverflowTargets();\n queueOverflowUpdate();\n };\n const setMeasurementElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementElement = element;\n const previousElement = element.previousElementSibling;\n if (previousElement instanceof HTMLElement) {\n rootElement = previousElement;\n assignRefs(previousElement);\n observeOverflowTargets();\n }\n queueOverflowUpdate();\n };\n const setMeasurementMenuButton = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementMenuButton = element;\n queueOverflowUpdate();\n };\n\n createEffect(() => {\n allItems().length;\n canMeasure();\n size();\n isDisabled();\n queueOverflowUpdate();\n });\n\n onMount(() => {\n const nextCanMeasure = canMeasureOverflow();\n setCanMeasure(nextCanMeasure);\n\n const safeUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n updateOverflow();\n };\n const safeQueueUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n queueOverflowUpdate();\n };\n resizeObserver =\n nextCanMeasure && typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(safeQueueUpdate)\n : undefined;\n mutationObserver =\n nextCanMeasure && typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(safeQueueUpdate)\n : undefined;\n\n observeOverflowTargets();\n safeUpdate();\n window.addEventListener(\"resize\", safeUpdate);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(() => {\n safeUpdate();\n requestAnimationFrame(safeUpdate);\n });\n }\n for (const delay of [16, 50, 100, 250]) {\n initialOverflowUpdateTimeouts.push(window.setTimeout(safeUpdate, delay));\n }\n document.fonts?.ready.then(() => {\n if (!hasDisposedRoot) {\n safeUpdate();\n }\n });\n connectionObserver =\n typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(cleanupIfDisconnected)\n : undefined;\n connectionObserver?.observe(document.body, { childList: true, subtree: true });\n cleanupOverflowObservers = () => {\n if (hasCleanedOverflowObservers) {\n return;\n }\n\n hasCleanedOverflowObservers = true;\n window.removeEventListener(\"resize\", safeUpdate);\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n connectionObserver?.disconnect();\n for (const timeout of initialOverflowUpdateTimeouts) {\n window.clearTimeout(timeout);\n }\n if (retryOverflowUpdateTimeout !== undefined) {\n window.clearTimeout(retryOverflowUpdateTimeout);\n }\n };\n });\n onCleanup(() => cleanupOverflowObservers());\n\n const shouldCollapse = createMemo(() => {\n const items = allItems();\n if (items.length <= 2) {\n return false;\n }\n const wantsCollapse =\n items.length > MAX_VISIBLE_ITEMS || (canMeasure() && visibleTailCount() < items.length);\n if (!wantsCollapse) {\n return false;\n }\n // Only collapse when the overflow menu would actually hold an item. When the\n // path shrinks (e.g. an overflow menu entry is chosen), `visibleTailCount` can\n // trail the new, smaller collection for a frame — `sliceIndex` then lands at 1\n // and the menu slice `[1, sliceIndex)` is empty. Upstream S2 renders that empty\n // menu for a single frame and re-measures (React batches the state settle); our\n // fine-grained overflow observers instead turn the transient into a\n // collapse⇄expand feedback loop that pins the renderer thread. Gating on a\n // non-empty menu yields the identical settled layout without the transient.\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return sliceIndex > 1;\n });\n createEffect(() => {\n shouldCollapse();\n queueOverflowUpdate();\n });\n const collapsedCollection = createMemo<CollapsedBreadcrumbEntry<T>[]>(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n\n return [\n { kind: \"item\", item: items[0] as T, index: 0 },\n { kind: \"menu\" },\n ...items.slice(sliceIndex).map((item, index) => ({\n kind: \"item\" as const,\n item,\n index: sliceIndex + index,\n })),\n ];\n });\n const collapsedItems = createMemo(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return items.slice(1, sliceIndex);\n });\n\n const renderDynamicItem = (item: T | undefined) => {\n if (item === undefined) {\n return null;\n }\n\n const renderItem = local.children as ((item: T) => JSX.Element) | undefined;\n return renderItem?.(item);\n };\n\n return (\n <InternalBreadcrumbsContext.Provider value={{ size, isDisabled, showSeparator }}>\n <Show\n when={shouldCollapse()}\n fallback={\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={local.items}\n getKey={local.getKey}\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={local.children as any}\n />\n }\n >\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={collapsedCollection()}\n getKey={(entry) =>\n entry.kind === \"menu\"\n ? \"__breadcrumb-menu\"\n : (local.getKey?.(entry.item) ?? defaultItemKey(entry.item, entry.index))\n }\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={(entry) =>\n entry.kind === \"menu\" ? (\n <BreadcrumbMenu\n items={collapsedItems()}\n getKey={(item, index) =>\n local.getKey?.(item as T) ?? defaultItemKey(item, index + 1)\n }\n getLabel={itemLabel}\n onAction={local.onAction}\n />\n ) : (\n renderDynamicItem(entry.item)\n )\n }\n />\n </Show>\n <Show when={allItems().length > 0 && canMeasure()}>\n {/*\n Hidden measurement copy. Faithful to upstream S2 `HiddenBreadcrumbs`\n (react-spectrum/packages/@react-spectrum/s2/src/Breadcrumbs.tsx): a FLAT\n projection of the items — plain `[data-hidden-breadcrumb]` divs — NOT a\n second live Breadcrumbs collection. Rendering a second `<HeadlessBreadcrumbs>`\n here span a synchronous reactive cycle between the two collections that pinned\n the renderer thread. Each item still gets a BreadcrumbItemContext so the styled\n Breadcrumb resolves isCurrent/isLast exactly as in the visible list.\n */}\n <div\n ref={setMeasurementElement}\n aria-hidden=\"true\"\n data-rsp-breadcrumbs-measure=\"\"\n data-rsp-breadcrumbs-measure-id={measurementId}\n style={{\n position: \"absolute\",\n inset: \"0\",\n display: \"flex\",\n \"align-items\": \"center\",\n visibility: \"hidden\",\n overflow: \"hidden\",\n opacity: 0,\n \"pointer-events\": \"none\",\n }}\n >\n <For each={allItems()}>\n {(item, index) => {\n const isLast = () => index() === allItems().length - 1;\n const itemKey = () =>\n local.getKey?.(item) ?? defaultItemKey(item, index());\n return (\n <div data-hidden-breadcrumb style={{ display: \"inline-flex\", \"align-items\": \"center\" }}>\n <HeadlessBreadcrumbItemContext.Provider\n value={{ get itemKey() { return itemKey(); }, isLast }}\n >\n {renderDynamicItem(item)}\n </HeadlessBreadcrumbItemContext.Provider>\n </div>\n );\n }}\n </For>\n <ActionButton\n ref={setMeasurementMenuButton}\n data-hidden-breadcrumb-menu-button=\"\"\n isQuiet\n aria-label=\"More items\"\n >\n <FolderBreadcrumbIcon />\n </ActionButton>\n </div>\n </Show>\n </InternalBreadcrumbsContext.Provider>\n );\n}\n\nfunction BreadcrumbMenu<T>(props: {\n items: T[];\n getKey: (item: T, index: number) => string | number;\n getLabel: (item: T) => string;\n onAction?: (key: string | number) => void;\n}): JSX.Element {\n const locale = useLocale();\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const formatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const label = () => formatter().format(\"breadcrumbs.more\");\n\n return (\n <span\n class={breadcrumbStyles({\n size: context.size(),\n isDisabled: context.isDisabled(),\n isMenu: true,\n })}\n data-rsp-breadcrumb-menu=\"\"\n >\n <MenuTrigger>\n <ActionButton isDisabled={context.isDisabled()} isQuiet aria-label={label()}>\n <FolderBreadcrumbIcon />\n </ActionButton>\n <Menu\n items={props.items}\n // Menu invokes onAction(key, value); Breadcrumbs' contract is key-only\n // (matching upstream), so drop the leaked item value.\n onAction={(key) => props.onAction?.(key)}\n size={context.size()}\n aria-label={label()}\n >\n {(item) => (\n <MenuItem id={props.getKey(item, props.items.indexOf(item))}>\n <Text slot=\"label\">{props.getLabel(item)}</Text>\n </MenuItem>\n )}\n </Menu>\n </MenuTrigger>\n <ChevronIcon\n size={context.size()}\n class={chevronStyles({ direction: locale().direction, isMenu: true })}\n />\n </span>\n );\n}\n\n/**\n * An individual Breadcrumb for Breadcrumbs.\n */\nexport function Breadcrumb(props: BreadcrumbProps): JSX.Element {\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const locale = useLocale();\n const providerProps = useProviderProps(props);\n const mergedProps = mergeProps(providerProps, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"ref\",\n ]);\n\n const assignRefs = mergeContextRefs(props.ref);\n const mergedStyles = () => mergeContextStyles(undefined, local.styles);\n const size = () => context.size();\n const [isCurrent, setIsCurrent] = createSignal(false);\n\n const syncRenderProps = (renderProps: BreadcrumbItemRenderProps) => {\n untrack(() => {\n if (isCurrent() !== renderProps.isCurrent) {\n setIsCurrent(renderProps.isCurrent);\n }\n });\n };\n\n const getClassName = (renderProps: BreadcrumbItemRenderProps): string => {\n syncRenderProps(renderProps);\n\n return [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n breadcrumbStyles({\n size: size(),\n isDisabled: renderProps.isDisabled || context.isDisabled(),\n isCurrent: renderProps.isCurrent,\n isHovered: renderProps.isHovered,\n isFocusVisible: renderProps.isFocusVisible,\n isFocused: renderProps.isFocused,\n isPressed: renderProps.isPressed,\n }),\n renderProps.isCurrent ? currentStyles({ size: size() }) : undefined,\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n };\n\n const getStyle = (renderProps: BreadcrumbItemRenderProps): JSX.CSSProperties => ({\n ...(local.UNSAFE_style ?? {}),\n display: \"block\",\n \"clip-path\": renderProps.isFocusVisible ? \"none\" : \"margin-box\",\n });\n\n const renderChildren = (renderProps: BreadcrumbItemRenderProps): JSX.Element => {\n syncRenderProps(renderProps);\n\n const content =\n typeof local.children === \"function\" ? local.children(renderProps) : local.children;\n\n return content;\n };\n\n return (\n <span style={{ display: \"contents\" }}>\n <HeadlessBreadcrumbItem\n {...headlessProps}\n elementType={isCurrent() ? \"div\" : headlessProps.elementType}\n ref={(node: HTMLElement) => assignRefs(node)}\n isDisabled={headlessProps.isDisabled || context.isDisabled()}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n <Show when={context.showSeparator() && !isCurrent()}>\n <ChevronIcon size=\"M\" class={chevronStyles({ direction: locale().direction })} />\n </Show>\n </span>\n );\n}\n\nexport const BreadcrumbItem = Breadcrumb;\nexport const Item = Breadcrumb;\n\nBreadcrumbs.Item = Breadcrumb;\n"],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumbs.jsx","names":["Breadcrumbs","HeadlessBreadcrumbs","HeadlessBreadcrumbItemContext","MenuTrigger","Menu","MenuItem","ChevronIcon","HeadlessBreadcrumbItem","BreadcrumbItem"],"sources":["../../src/icon/s2wf-icons/FolderBreadcrumbIcon.tsx","../../src/breadcrumbs/s2-breadcrumbs-styles.ts","../../src/breadcrumbs/index.tsx"],"sourcesContent":["/*\n * Auto-generated from vendored React Spectrum S2 icon sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createIcon } from \"../spectrum-icon\";\n\nfunction FolderBreadcrumbIconSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n {...rest}\n class={className}\n >\n <path\n d=\"m16.75,5h-5.96387c-.21777,0-.42383-.09375-.56641-.25879l-1.7041-1.96387c-.42676-.49414-1.0459-.77734-1.7002-.77734h-3.56543c-1.24023,0-2.25,1.00977-2.25,2.25v10.5c0,1.24023,1.00977,2.25,2.25,2.25h13.5c1.24023,0,2.25-1.00977,2.25-2.25v-7.5c0-1.24023-1.00977-2.25-2.25-2.25ZM3.25,3.5h3.56543c.21777,0,.42383.09375.56641.25879l1.07703,1.24121H2.5v-.75c0-.41309.33691-.75.75-.75Zm14.25,11.25c0,.41309-.33691.75-.75.75H3.25c-.41309,0-.75-.33691-.75-.75V6.5h14.25c.41309,0,.75.33691.75.75v7.5Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n <path\n d=\"m10,13.65039c-.19238,0-.38379-.07324-.53027-.21973l-3-3c-.29297-.29297-.29297-.76758,0-1.06055s.76758-.29297,1.06055,0l2.46973,2.46973,2.46973-2.46973c.29297-.29297.76758-.29297,1.06055,0s.29297.76758,0,1.06055l-3,3c-.14648.14648-.33789.21973-.53027.21973Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nexport type FolderBreadcrumbIconProps = JSX.SvgSVGAttributes<SVGSVGElement>;\nexport const FolderBreadcrumbIcon = createIcon(FolderBreadcrumbIconSvg);\nexport default FolderBreadcrumbIcon;\n","import { baseColor, focusRing, size as s2Size, style } from \"../style\" with { type: \"macro\" };\nimport {\n controlFont,\n controlSize,\n getAllowedOverrides,\n} from \"../s2-internal/style-utils\" with { type: \"macro\" };\n\nexport type S2BreadcrumbsSize = \"M\" | \"L\";\n\nexport const wrapperStyles = style<{ size: S2BreadcrumbsSize; isDisabled?: boolean }>(\n {\n position: \"relative\",\n display: \"flex\",\n justifyContent: \"start\",\n listStyleType: \"none\",\n flexWrap: \"nowrap\",\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: 0,\n height: controlSize(),\n gap: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n padding: 0,\n transition: \"default\",\n marginTop: 0,\n marginBottom: 0,\n marginStart: {\n size: {\n M: s2Size(6),\n L: s2Size(9),\n },\n },\n },\n getAllowedOverrides(),\n);\n\nexport const breadcrumbStyles = style<{\n size?: S2BreadcrumbsSize;\n isDisabled?: boolean;\n isCurrent?: boolean;\n isMenu?: boolean;\n isHovered?: boolean;\n isFocusVisible?: boolean;\n isFocused?: boolean;\n isPressed?: boolean;\n}>({\n ...focusRing(),\n display: {\n default: \"block\",\n isMenu: \"flex\",\n },\n alignItems: {\n isMenu: \"center\",\n },\n justifyContent: {\n isMenu: \"start\",\n },\n height: {\n isMenu: controlSize(),\n },\n transition: \"default\",\n position: \"relative\",\n flexShrink: 0,\n borderStyle: \"none\",\n /* A breadcrumb item is a nav row, so it takes the `row` corner (6px) rather than\n * `sm` (4px, spectrum-theme.ts:630) — a value the register's radius ladder does not\n * draw. The row-shaped siblings already spell this: tabs/index.tsx:336,\n * steplist:68, tree:273/370/477, gridlist:642/686, table:1041. Visible chrome, not\n * dead geometry — it shapes the hover fill and the focus-ring corner. */\n borderRadius: \"row\",\n font: controlFont(),\n color: {\n default: baseColor(\"neutral-subdued\"),\n isDisabled: baseColor(\"neutral-subdued\"),\n isCurrent: baseColor(\"neutral\"),\n forcedColors: {\n default: \"LinkText\",\n isDisabled: \"GrayText\",\n isCurrent: \"GrayText\",\n },\n },\n marginStart: {\n isMenu: s2Size(-6),\n },\n textDecoration: {\n default: \"none\",\n isHovered: \"underline\",\n isFocusVisible: \"underline\",\n isDisabled: \"none\",\n },\n cursor: {\n default: \"pointer\",\n isDisabled: \"default\",\n isCurrent: \"default\",\n },\n outlineColor: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n disableTapHighlight: true,\n});\n\nexport const currentStyles = style<{ size: S2BreadcrumbsSize }>({\n font: controlFont(),\n fontWeight: \"bold\",\n color: {\n default: \"neutral\",\n forcedColors: \"ButtonText\",\n },\n});\n\nexport const chevronStyles = style<{ direction?: \"ltr\" | \"rtl\"; isMenu?: boolean }>({\n scale: {\n direction: {\n rtl: -1,\n },\n },\n marginStart: {\n default: \"text-to-visual\",\n isMenu: 0,\n },\n color: {\n default: \"neutral\",\n forcedColors: {\n default: \"LinkText\",\n },\n },\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n","import {\n type Accessor,\n For,\n type JSX,\n Show,\n createContext,\n createEffect,\n createMemo,\n createRoot,\n createSignal,\n mergeProps,\n onCleanup,\n onMount,\n splitProps,\n untrack,\n useContext,\n} from \"solid-js\";\nimport {\n BreadcrumbItem as HeadlessBreadcrumbItem,\n BreadcrumbItemContext as HeadlessBreadcrumbItemContext,\n Breadcrumbs as HeadlessBreadcrumbs,\n type BreadcrumbItemProps as HeadlessBreadcrumbItemProps,\n type BreadcrumbItemRenderProps,\n type BreadcrumbsProps as HeadlessBreadcrumbsProps,\n type BreadcrumbsRenderProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport { createStringFormatter, useLocale } from \"@proyecto-viviana/solidaria\";\nimport type { StyleString } from \"../style\";\nimport { mergeStyles } from \"../style/runtime\";\nimport { useProviderProps } from \"../provider\";\nimport {\n getSlottedContextProps,\n mergeContextRefs,\n mergeContextStyles,\n mergeContextUnsafeStyle,\n type RefLike,\n type SpectrumContextValue,\n} from \"../button/spectrum-context\";\nimport { ActionButton } from \"../button/ActionButton\";\nimport { Menu, MenuItem, MenuTrigger, Text } from \"../Menu\";\nimport ChevronIcon from \"../icon/ui-icons/Chevron\";\nimport FolderBreadcrumbIcon from \"../icon/s2wf-icons/FolderBreadcrumbIcon\";\nimport { s2IntlStrings } from \"../intl\";\nimport {\n breadcrumbStyles,\n chevronStyles,\n currentStyles,\n wrapperStyles,\n type S2BreadcrumbsSize,\n} from \"./s2-breadcrumbs-styles\";\n\nconst MAX_VISIBLE_ITEMS = 4;\n\nexport type { S2BreadcrumbsSize };\nexport type BreadcrumbsSize = S2BreadcrumbsSize | \"sm\" | \"md\" | \"lg\";\nexport type BreadcrumbsVariant = \"default\" | \"subtle\";\n\nexport interface BreadcrumbsProps<T> extends Omit<\n HeadlessBreadcrumbsProps<T>,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the Breadcrumbs. */\n children?: JSX.Element | ((item: T) => JSX.Element);\n /** The size of the Breadcrumbs. @default 'M' */\n size?: BreadcrumbsSize;\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Legacy visual variant alias. Kept for source compatibility; S2 Breadcrumbs has no variant. */\n variant?: BreadcrumbsVariant;\n /** Legacy separator toggle. Kept for source compatibility. */\n showSeparator?: boolean;\n /** Ref for the navigation element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport interface BreadcrumbProps extends Omit<\n HeadlessBreadcrumbItemProps,\n \"class\" | \"style\" | \"ref\" | \"children\"\n> {\n /** The children of the breadcrumb item. */\n children?: JSX.Element | ((renderProps: BreadcrumbItemRenderProps) => JSX.Element);\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 /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Ref for the breadcrumb item element. */\n ref?: RefLike<HTMLElement>;\n}\n\nexport type BreadcrumbItemProps = BreadcrumbProps;\n\ntype CollapsedBreadcrumbEntry<T> =\n | {\n kind: \"item\";\n item: T;\n index: number;\n }\n | {\n kind: \"menu\";\n };\n\ntype InternalBreadcrumbsContextValue = {\n size: Accessor<S2BreadcrumbsSize>;\n isDisabled: Accessor<boolean>;\n showSeparator: Accessor<boolean>;\n};\n\nconst defaultInternalBreadcrumbsContext: InternalBreadcrumbsContextValue = {\n size: () => \"M\",\n isDisabled: () => false,\n showSeparator: () => true,\n};\n\nexport const BreadcrumbsContext = createContext<SpectrumContextValue<BreadcrumbsProps<any>>>(null);\nconst InternalBreadcrumbsContext = createContext<InternalBreadcrumbsContextValue>(\n defaultInternalBreadcrumbsContext,\n);\n\nfunction normalizeSize(size?: BreadcrumbsSize): S2BreadcrumbsSize {\n switch (size) {\n case \"lg\":\n case \"L\":\n return \"L\";\n case \"sm\":\n case \"md\":\n case \"M\":\n default:\n return \"M\";\n }\n}\n\nfunction defaultItemKey(item: unknown, index: number): string | number {\n const maybeItem = item as { key?: string | number; id?: string | number };\n return maybeItem.key ?? maybeItem.id ?? index;\n}\n\nfunction itemLabel(item: unknown): string {\n if (typeof item === \"string\" || typeof item === \"number\") {\n return String(item);\n }\n\n const maybeItem = item as {\n label?: string;\n name?: string;\n title?: string;\n textValue?: string;\n key?: string | number;\n id?: string | number;\n };\n return (\n maybeItem.textValue ??\n maybeItem.label ??\n maybeItem.name ??\n maybeItem.title ??\n String(maybeItem.key ?? maybeItem.id ?? \"\")\n );\n}\n\nfunction canMeasureOverflow(): boolean {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n const userAgent = window.navigator?.userAgent?.toLowerCase() ?? \"\";\n return !userAgent.includes(\"jsdom\") && !userAgent.includes(\"happy-dom\");\n}\n\nfunction fallbackVisibleTailCount(itemCount: number): number {\n return itemCount > MAX_VISIBLE_ITEMS ? MAX_VISIBLE_ITEMS - 2 : itemCount;\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user's location within an application.\n */\nexport function Breadcrumbs<T>(props: BreadcrumbsProps<T>): JSX.Element {\n if (typeof window === \"undefined\") {\n return renderBreadcrumbs(props, () => {});\n }\n\n return createRoot((disposeRoot) => renderBreadcrumbs(props, disposeRoot));\n}\n\nfunction renderBreadcrumbs<T>(props: BreadcrumbsProps<T>, disposeRoot: () => void): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(useContext(BreadcrumbsContext), props.slot);\n const mergedProps = mergeProps(\n { size: \"M\" as const, showSeparator: true },\n providerProps,\n contextProps ?? {},\n props,\n );\n const [local, headlessProps] = splitProps(mergedProps, [\n \"size\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"items\",\n \"getKey\",\n \"onAction\",\n \"isDisabled\",\n \"ref\",\n \"variant\",\n \"showSeparator\",\n ]);\n\n const size = () => normalizeSize(local.size);\n const isDisabled = () => local.isDisabled ?? false;\n const showSeparator = () => local.showSeparator !== false;\n const mergedStyles = () => mergeContextStyles(contextProps?.styles, props.styles);\n const mergedUnsafeStyle = () =>\n mergeContextUnsafeStyle(contextProps?.UNSAFE_style, props.UNSAFE_style);\n const assignRefs = mergeContextRefs(\n (contextProps as { ref?: RefLike<HTMLElement> } | null)?.ref,\n props.ref,\n );\n let rootElement: HTMLElement | undefined;\n let measurementElement: HTMLElement | undefined;\n let measurementMenuButton: HTMLElement | undefined;\n let resizeObserver: ResizeObserver | undefined;\n let mutationObserver: MutationObserver | undefined;\n let connectionObserver: MutationObserver | undefined;\n const observedResizeTargets = new WeakSet<Element>();\n const observedMutationTargets = new WeakSet<Element>();\n let retryOverflowUpdateTimeout: number | undefined;\n const initialOverflowUpdateTimeouts: number[] = [];\n const measurementId = `rsp-breadcrumbs-${Math.random().toString(36).slice(2)}`;\n const [canMeasure, setCanMeasure] = createSignal(canMeasureOverflow());\n const [visibleTailCount, setVisibleTailCount] = createSignal(MAX_VISIBLE_ITEMS - 2);\n let cleanupOverflowObservers = () => {};\n let hasDisposedRoot = false;\n let hasCleanedOverflowObservers = false;\n\n const getClassName = (renderProps: BreadcrumbsRenderProps): string =>\n [\n contextProps?.UNSAFE_className,\n local.UNSAFE_className,\n local.class,\n wrapperStyles(\n {\n size: size(),\n isDisabled: renderProps.isDisabled,\n },\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const allItems = createMemo(() => local.items ?? []);\n const scheduleOverflowRetry = () => {\n if (\n hasDisposedRoot ||\n typeof window === \"undefined\" ||\n retryOverflowUpdateTimeout !== undefined\n ) {\n return;\n }\n\n retryOverflowUpdateTimeout = window.setTimeout(() => {\n retryOverflowUpdateTimeout = undefined;\n updateOverflow();\n }, 16);\n };\n const updateOverflow = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n const items = local.items ?? [];\n if (items.length === 0) {\n setVisibleTailCount(0);\n return;\n }\n\n if (!canMeasure()) {\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const measureRoot =\n measurementElement ??\n (typeof document !== \"undefined\"\n ? (document.querySelector(\n `[data-rsp-breadcrumbs-measure-id=\"${measurementId}\"]`,\n ) as HTMLElement | null)\n : undefined);\n const visibleContainer =\n measureRoot?.previousElementSibling instanceof HTMLElement\n ? measureRoot.previousElementSibling\n : undefined;\n const container = visibleContainer ?? rootElement;\n if (measureRoot && measurementElement !== measureRoot) {\n measurementElement = measureRoot;\n }\n if (container && rootElement !== container) {\n rootElement = container;\n assignRefs(container);\n }\n observeOverflowTargets();\n if (!measureRoot || !container || typeof window === \"undefined\") {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const hiddenItems = Array.from(measureRoot.querySelectorAll(\"[data-hidden-breadcrumb]\")).filter(\n (element): element is HTMLElement => element instanceof HTMLElement,\n );\n const folder =\n measurementMenuButton ??\n (measureRoot.querySelector(\"[data-hidden-breadcrumb-menu-button]\") as HTMLElement | null);\n if (hiddenItems.length <= 0 || !folder) {\n scheduleOverflowRetry();\n setVisibleTailCount(fallbackVisibleTailCount(items.length));\n return;\n }\n\n const containerWidth = container.offsetWidth || container.getBoundingClientRect().width;\n const containerGap = Number.parseFloat(window.getComputedStyle(container).gap || \"0\") || 0;\n const folderGap =\n Number.parseFloat(window.getComputedStyle(folder).marginInlineStart || \"0\") || 0;\n const widths = hiddenItems.map((breadcrumb) => breadcrumb.offsetWidth + 1);\n const totalWidth = widths.reduce((sum, width) => sum + width, 0);\n\n if (\n totalWidth <= containerWidth - items.length * containerGap &&\n items.length <= MAX_VISIBLE_ITEMS\n ) {\n setVisibleTailCount(items.length);\n return;\n }\n\n const firstWidth = widths.shift() ?? 0;\n let availableWidth =\n containerWidth - firstWidth - folderGap - folder.offsetWidth - containerGap;\n let nextVisibleTailCount = 0;\n const maxTailCount = MAX_VISIBLE_ITEMS - 2;\n\n for (const width of widths.reverse()) {\n availableWidth -= width;\n if (availableWidth <= 0) {\n break;\n }\n availableWidth -= containerGap;\n nextVisibleTailCount += 1;\n }\n\n const nextTailCount = Math.max(1, Math.min(maxTailCount, nextVisibleTailCount));\n setVisibleTailCount(nextTailCount);\n };\n const queueOverflowUpdate = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n queueMicrotask(updateOverflow);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(updateOverflow);\n }\n if (typeof window !== \"undefined\") {\n window.setTimeout(updateOverflow, 0);\n }\n };\n const disposeBreadcrumbsRoot = () => {\n if (hasDisposedRoot) {\n return;\n }\n\n hasDisposedRoot = true;\n cleanupOverflowObservers();\n disposeRoot();\n };\n const cleanupIfDisconnected = () => {\n if (rootElement?.isConnected || measurementElement?.isConnected) {\n return;\n }\n\n disposeBreadcrumbsRoot();\n };\n const observeOverflowTargets = () => {\n if (hasDisposedRoot || !rootElement || (!resizeObserver && !mutationObserver)) {\n return;\n }\n\n const observeElement = (element: HTMLElement, options: { mutations?: boolean } = {}) => {\n if (resizeObserver && !observedResizeTargets.has(element)) {\n resizeObserver.observe(element);\n observedResizeTargets.add(element);\n }\n\n if (\n options.mutations !== false &&\n mutationObserver &&\n !observedMutationTargets.has(element)\n ) {\n mutationObserver.observe(element, {\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n observedMutationTargets.add(element);\n }\n };\n\n let element: HTMLElement | null = rootElement;\n while (element && element !== document.body) {\n observeElement(element);\n element = element.parentElement;\n }\n\n if (measurementElement) {\n observeElement(measurementElement, { mutations: false });\n if (measurementElement.parentElement) {\n observeElement(measurementElement.parentElement);\n }\n }\n };\n const setRootElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n rootElement = element;\n assignRefs(element);\n observeOverflowTargets();\n queueOverflowUpdate();\n };\n const setMeasurementElement = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementElement = element;\n const previousElement = element.previousElementSibling;\n if (previousElement instanceof HTMLElement) {\n rootElement = previousElement;\n assignRefs(previousElement);\n observeOverflowTargets();\n }\n queueOverflowUpdate();\n };\n const setMeasurementMenuButton = (element: HTMLElement) => {\n if (hasDisposedRoot) {\n return;\n }\n\n measurementMenuButton = element;\n queueOverflowUpdate();\n };\n\n createEffect(() => {\n allItems().length;\n canMeasure();\n size();\n isDisabled();\n queueOverflowUpdate();\n });\n\n onMount(() => {\n const nextCanMeasure = canMeasureOverflow();\n setCanMeasure(nextCanMeasure);\n\n const safeUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n updateOverflow();\n };\n const safeQueueUpdate = () => {\n if (rootElement && !rootElement.isConnected) {\n cleanupIfDisconnected();\n return;\n }\n\n queueOverflowUpdate();\n };\n resizeObserver =\n nextCanMeasure && typeof ResizeObserver !== \"undefined\"\n ? new ResizeObserver(safeQueueUpdate)\n : undefined;\n mutationObserver =\n nextCanMeasure && typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(safeQueueUpdate)\n : undefined;\n\n observeOverflowTargets();\n safeUpdate();\n window.addEventListener(\"resize\", safeUpdate);\n if (typeof requestAnimationFrame !== \"undefined\") {\n requestAnimationFrame(() => {\n safeUpdate();\n requestAnimationFrame(safeUpdate);\n });\n }\n for (const delay of [16, 50, 100, 250]) {\n initialOverflowUpdateTimeouts.push(window.setTimeout(safeUpdate, delay));\n }\n document.fonts?.ready.then(() => {\n if (!hasDisposedRoot) {\n safeUpdate();\n }\n });\n connectionObserver =\n typeof MutationObserver !== \"undefined\"\n ? new MutationObserver(cleanupIfDisconnected)\n : undefined;\n connectionObserver?.observe(document.body, { childList: true, subtree: true });\n cleanupOverflowObservers = () => {\n if (hasCleanedOverflowObservers) {\n return;\n }\n\n hasCleanedOverflowObservers = true;\n window.removeEventListener(\"resize\", safeUpdate);\n resizeObserver?.disconnect();\n mutationObserver?.disconnect();\n connectionObserver?.disconnect();\n for (const timeout of initialOverflowUpdateTimeouts) {\n window.clearTimeout(timeout);\n }\n if (retryOverflowUpdateTimeout !== undefined) {\n window.clearTimeout(retryOverflowUpdateTimeout);\n }\n };\n });\n onCleanup(() => cleanupOverflowObservers());\n\n const shouldCollapse = createMemo(() => {\n const items = allItems();\n if (items.length <= 2) {\n return false;\n }\n const wantsCollapse =\n items.length > MAX_VISIBLE_ITEMS || (canMeasure() && visibleTailCount() < items.length);\n if (!wantsCollapse) {\n return false;\n }\n // Only collapse when the overflow menu would actually hold an item. When the\n // path shrinks (e.g. an overflow menu entry is chosen), `visibleTailCount` can\n // trail the new, smaller collection for a frame — `sliceIndex` then lands at 1\n // and the menu slice `[1, sliceIndex)` is empty. Upstream S2 renders that empty\n // menu for a single frame and re-measures (React batches the state settle); our\n // fine-grained overflow observers instead turn the transient into a\n // collapse⇄expand feedback loop that pins the renderer thread. Gating on a\n // non-empty menu yields the identical settled layout without the transient.\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return sliceIndex > 1;\n });\n createEffect(() => {\n shouldCollapse();\n queueOverflowUpdate();\n });\n const collapsedCollection = createMemo<CollapsedBreadcrumbEntry<T>[]>(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n\n return [\n { kind: \"item\", item: items[0] as T, index: 0 },\n { kind: \"menu\" },\n ...items.slice(sliceIndex).map((item, index) => ({\n kind: \"item\" as const,\n item,\n index: sliceIndex + index,\n })),\n ];\n });\n const collapsedItems = createMemo(() => {\n const items = allItems();\n if (!shouldCollapse()) {\n return [];\n }\n\n const tailCount = Math.min(visibleTailCount(), items.length);\n const sliceIndex = Math.max(1, items.length - tailCount);\n return items.slice(1, sliceIndex);\n });\n\n const renderDynamicItem = (item: T | undefined) => {\n if (item === undefined) {\n return null;\n }\n\n const renderItem = local.children as ((item: T) => JSX.Element) | undefined;\n return renderItem?.(item);\n };\n\n return (\n <InternalBreadcrumbsContext.Provider value={{ size, isDisabled, showSeparator }}>\n <Show\n when={shouldCollapse()}\n fallback={\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={local.items}\n getKey={local.getKey}\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={local.children as any}\n />\n }\n >\n <HeadlessBreadcrumbs\n {...headlessProps}\n items={collapsedCollection()}\n getKey={(entry) =>\n entry.kind === \"menu\"\n ? \"__breadcrumb-menu\"\n : (local.getKey?.(entry.item) ?? defaultItemKey(entry.item, entry.index))\n }\n onAction={local.onAction}\n isDisabled={local.isDisabled}\n ref={setRootElement}\n class={getClassName}\n style={() => mergedUnsafeStyle() ?? {}}\n children={(entry) =>\n entry.kind === \"menu\" ? (\n <BreadcrumbMenu\n items={collapsedItems()}\n getKey={(item, index) =>\n local.getKey?.(item as T) ?? defaultItemKey(item, index + 1)\n }\n getLabel={itemLabel}\n onAction={local.onAction}\n />\n ) : (\n renderDynamicItem(entry.item)\n )\n }\n />\n </Show>\n <Show when={allItems().length > 0 && canMeasure()}>\n {/*\n Hidden measurement copy. Faithful to upstream S2 `HiddenBreadcrumbs`\n (react-spectrum/packages/@react-spectrum/s2/src/Breadcrumbs.tsx): a FLAT\n projection of the items — plain `[data-hidden-breadcrumb]` divs — NOT a\n second live Breadcrumbs collection. Rendering a second `<HeadlessBreadcrumbs>`\n here span a synchronous reactive cycle between the two collections that pinned\n the renderer thread. Each item still gets a BreadcrumbItemContext so the styled\n Breadcrumb resolves isCurrent/isLast exactly as in the visible list.\n */}\n <div\n ref={setMeasurementElement}\n aria-hidden=\"true\"\n data-rsp-breadcrumbs-measure=\"\"\n data-rsp-breadcrumbs-measure-id={measurementId}\n style={{\n position: \"absolute\",\n inset: \"0\",\n display: \"flex\",\n \"align-items\": \"center\",\n visibility: \"hidden\",\n overflow: \"hidden\",\n opacity: 0,\n \"pointer-events\": \"none\",\n }}\n >\n <For each={allItems()}>\n {(item, index) => {\n const isLast = () => index() === allItems().length - 1;\n const itemKey = () => local.getKey?.(item) ?? defaultItemKey(item, index());\n return (\n <div\n data-hidden-breadcrumb\n style={{ display: \"inline-flex\", \"align-items\": \"center\" }}\n >\n <HeadlessBreadcrumbItemContext.Provider\n value={{\n get itemKey() {\n return itemKey();\n },\n isLast,\n }}\n >\n {renderDynamicItem(item)}\n </HeadlessBreadcrumbItemContext.Provider>\n </div>\n );\n }}\n </For>\n <ActionButton\n ref={setMeasurementMenuButton}\n data-hidden-breadcrumb-menu-button=\"\"\n isQuiet\n aria-label=\"More items\"\n >\n <FolderBreadcrumbIcon />\n </ActionButton>\n </div>\n </Show>\n </InternalBreadcrumbsContext.Provider>\n );\n}\n\nfunction BreadcrumbMenu<T>(props: {\n items: T[];\n getKey: (item: T, index: number) => string | number;\n getLabel: (item: T) => string;\n onAction?: (key: string | number) => void;\n}): JSX.Element {\n const locale = useLocale();\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const formatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const label = () => formatter().format(\"breadcrumbs.more\");\n\n return (\n <span\n class={breadcrumbStyles({\n size: context.size(),\n isDisabled: context.isDisabled(),\n isMenu: true,\n })}\n data-rsp-breadcrumb-menu=\"\"\n >\n <MenuTrigger>\n <ActionButton isDisabled={context.isDisabled()} isQuiet aria-label={label()}>\n <FolderBreadcrumbIcon />\n </ActionButton>\n <Menu\n items={props.items}\n // Menu invokes onAction(key, value); Breadcrumbs' contract is key-only\n // (matching upstream), so drop the leaked item value.\n onAction={(key) => props.onAction?.(key)}\n size={context.size()}\n aria-label={label()}\n >\n {(item) => (\n <MenuItem id={props.getKey(item, props.items.indexOf(item))}>\n <Text slot=\"label\">{props.getLabel(item)}</Text>\n </MenuItem>\n )}\n </Menu>\n </MenuTrigger>\n <ChevronIcon\n size={context.size()}\n class={chevronStyles({ direction: locale().direction, isMenu: true })}\n />\n </span>\n );\n}\n\n/**\n * An individual Breadcrumb for Breadcrumbs.\n */\nexport function Breadcrumb(props: BreadcrumbProps): JSX.Element {\n const context = useContext(InternalBreadcrumbsContext) ?? defaultInternalBreadcrumbsContext;\n const locale = useLocale();\n const providerProps = useProviderProps(props);\n const mergedProps = mergeProps(providerProps, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"children\",\n \"ref\",\n ]);\n\n const assignRefs = mergeContextRefs(props.ref);\n const mergedStyles = () => mergeContextStyles(undefined, local.styles);\n const size = () => context.size();\n const [isCurrent, setIsCurrent] = createSignal(false);\n\n const syncRenderProps = (renderProps: BreadcrumbItemRenderProps) => {\n untrack(() => {\n if (isCurrent() !== renderProps.isCurrent) {\n setIsCurrent(renderProps.isCurrent);\n }\n });\n };\n\n const getClassName = (renderProps: BreadcrumbItemRenderProps): string => {\n syncRenderProps(renderProps);\n\n return [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n breadcrumbStyles({\n size: size(),\n isDisabled: renderProps.isDisabled || context.isDisabled(),\n isCurrent: renderProps.isCurrent,\n isHovered: renderProps.isHovered,\n isFocusVisible: renderProps.isFocusVisible,\n isFocused: renderProps.isFocused,\n isPressed: renderProps.isPressed,\n }),\n renderProps.isCurrent ? currentStyles({ size: size() }) : undefined,\n mergedStyles(),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n };\n\n const getStyle = (renderProps: BreadcrumbItemRenderProps): JSX.CSSProperties => ({\n ...(local.UNSAFE_style ?? {}),\n display: \"block\",\n \"clip-path\": renderProps.isFocusVisible ? \"none\" : \"margin-box\",\n });\n\n const renderChildren = (renderProps: BreadcrumbItemRenderProps): JSX.Element => {\n syncRenderProps(renderProps);\n\n const content =\n typeof local.children === \"function\" ? local.children(renderProps) : local.children;\n\n return content;\n };\n\n return (\n <span style={{ display: \"contents\" }}>\n <HeadlessBreadcrumbItem\n {...headlessProps}\n elementType={isCurrent() ? \"div\" : headlessProps.elementType}\n ref={(node: HTMLElement) => assignRefs(node)}\n isDisabled={headlessProps.isDisabled || context.isDisabled()}\n class={getClassName}\n style={getStyle}\n children={renderChildren}\n />\n <Show when={context.showSeparator() && !isCurrent()}>\n <ChevronIcon size=\"M\" class={chevronStyles({ direction: locale().direction })} />\n </Show>\n </span>\n );\n}\n\nexport const BreadcrumbItem = Breadcrumb;\nexport const Item = Breadcrumb;\n\nBreadcrumbs.Item = Breadcrumb;\n"],"mappings":"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"}
@@ -216,7 +216,7 @@ const clearButtonStyles = function anonymous(props) {
216
216
  if (props.isDisabled) rules += " pUvnvv151";
217
217
  else if (props.isPressed) rules += " pHKLAu151";
218
218
  else if (props.isHovered) rules += " pHKLAu151";
219
- else rules += " pUUi0Fe151";
219
+ else rules += " pWQ7V3d151";
220
220
  return rules;
221
221
  };
222
222
  /**
@@ -288,7 +288,7 @@ const fieldButtonStyles = function anonymous(props) {
288
288
  if (props.isDisabled) rules += " pUvnvv151";
289
289
  else if (props.isPressed) rules += " pHKLAu151";
290
290
  else if (props.isHovered) rules += " pHKLAu151";
291
- else rules += " pUUi0Fe151";
291
+ else rules += " pWQ7V3d151";
292
292
  return rules;
293
293
  };
294
294
  /**
@@ -334,7 +334,7 @@ const logicButtonStyles = function anonymous(props) {
334
334
  rules += " _FnuYUweb151";
335
335
  if (props.isDisabled) rules += " pUvnvv151";
336
336
  else if (props.isSelected) rules += " px151";
337
- else rules += " pUUi0Fe151";
337
+ else rules += " pWQ7V3d151";
338
338
  rules += " oa151";
339
339
  rules += " na151";
340
340
  rules += " ka151";
@@ -178,7 +178,7 @@ const clearButtonStyles = function anonymous(props) {
178
178
  if (props.isDisabled) rules += " pUvnvv151";
179
179
  else if (props.isPressed) rules += " pHKLAu151";
180
180
  else if (props.isHovered) rules += " pHKLAu151";
181
- else rules += " pUUi0Fe151";
181
+ else rules += " pWQ7V3d151";
182
182
  return rules;
183
183
  };
184
184
  /**
@@ -236,7 +236,7 @@ const fieldButtonStyles = function anonymous(props) {
236
236
  if (props.isDisabled) rules += " pUvnvv151";
237
237
  else if (props.isPressed) rules += " pHKLAu151";
238
238
  else if (props.isHovered) rules += " pHKLAu151";
239
- else rules += " pUUi0Fe151";
239
+ else rules += " pWQ7V3d151";
240
240
  return rules;
241
241
  };
242
242
  /**
@@ -280,7 +280,7 @@ const logicButtonStyles = function anonymous(props) {
280
280
  rules += " _FnuYUweb151";
281
281
  if (props.isDisabled) rules += " pUvnvv151";
282
282
  else if (props.isSelected) rules += " px151";
283
- else rules += " pUUi0Fe151";
283
+ else rules += " pWQ7V3d151";
284
284
  rules += " oa151";
285
285
  rules += " na151";
286
286
  rules += " ka151";
@@ -117,7 +117,7 @@ const colorSliderLabel = function anonymous(props) {
117
117
  }
118
118
  if (props.isStaticColor) rules += " pl151";
119
119
  else if (props.isDisabled) rules += " pUvnvv151";
120
- else rules += " pUUi0Fe151";
120
+ else rules += " pWQ7V3d151";
121
121
  rules += " plb151";
122
122
  rules += " ri151";
123
123
  return rules;
@@ -182,7 +182,7 @@ const colorSliderOutput = function anonymous(props) {
182
182
  rules += " _FnuYUweb151";
183
183
  }
184
184
  if (props.isDisabled) rules += " pUvnvv151";
185
- else rules += " pUUi0Fe151";
185
+ else rules += " pWQ7V3d151";
186
186
  rules += " ri151";
187
187
  return rules;
188
188
  };
@@ -933,7 +933,7 @@ function createColorFieldStyles() {
933
933
  }
934
934
  if (props.isStaticColor) rules += " pl151";
935
935
  else if (props.isDisabled) rules += " pUvnvv151";
936
- else rules += " pUUi0Fe151";
936
+ else rules += " pWQ7V3d151";
937
937
  rules += " plb151";
938
938
  rules += " ri151";
939
939
  return rules;
@@ -1132,7 +1132,7 @@ function createColorFieldStyles() {
1132
1132
  } else if (props.isInvalid) {
1133
1133
  rules += " pYjUhNc151";
1134
1134
  rules += " plQBRyrc151";
1135
- } else rules += " pUUi0Fe151";
1135
+ } else rules += " pWQ7V3d151";
1136
1136
  rules += " -_8sjo0b-t5ZbAob151";
1137
1137
  rules += " _qb151";
1138
1138
  rules += " TgOnRt151";