@multiplatform.one/theme 7.83.0 → 7.83.2

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 (810) hide show
  1. package/dist/cjs/audit/constraintAudit.cjs +567 -0
  2. package/dist/cjs/audit/constraintAudit.native.js +948 -0
  3. package/dist/cjs/audit/constraintAudit.native.js.map +1 -0
  4. package/dist/cjs/audit/designTokens.cjs +53 -0
  5. package/dist/cjs/audit/designTokens.native.js +80 -0
  6. package/dist/cjs/audit/designTokens.native.js.map +1 -0
  7. package/dist/cjs/audit/diffReport.cjs +255 -0
  8. package/dist/cjs/audit/diffReport.native.js +519 -0
  9. package/dist/cjs/audit/diffReport.native.js.map +1 -0
  10. package/dist/cjs/audit/index.cjs +41 -0
  11. package/dist/cjs/audit/index.native.js +44 -0
  12. package/dist/cjs/audit/index.native.js.map +1 -0
  13. package/dist/cjs/audit/themeMatrix.cjs +924 -0
  14. package/dist/cjs/audit/themeMatrix.native.js +1552 -0
  15. package/dist/cjs/audit/themeMatrix.native.js.map +1 -0
  16. package/dist/cjs/dates.cjs +261 -0
  17. package/dist/cjs/dates.native.js +289 -0
  18. package/dist/cjs/dates.native.js.map +1 -0
  19. package/dist/cjs/devWarn.cjs +163 -0
  20. package/dist/cjs/devWarn.native.js +191 -0
  21. package/dist/cjs/devWarn.native.js.map +1 -0
  22. package/dist/cjs/expo.cjs +82 -0
  23. package/dist/cjs/expo.native.js +87 -0
  24. package/dist/cjs/expo.native.js.map +1 -0
  25. package/dist/cjs/figma/figmaTokens.cjs +350 -0
  26. package/dist/cjs/figma/figmaTokens.native.js +637 -0
  27. package/dist/cjs/figma/figmaTokens.native.js.map +1 -0
  28. package/dist/cjs/font.cjs +65 -0
  29. package/dist/cjs/font.native.js +74 -0
  30. package/dist/cjs/font.native.js.map +1 -0
  31. package/dist/cjs/fonts/createFontLoader.cjs +32 -0
  32. package/dist/cjs/fonts/createFontLoader.native.js +69 -0
  33. package/dist/cjs/fonts/createFontLoader.native.js.map +1 -0
  34. package/dist/cjs/fonts/index.cjs +21 -0
  35. package/dist/cjs/fonts/index.native.js +24 -0
  36. package/dist/cjs/fonts/index.native.js.map +1 -0
  37. package/dist/cjs/fonts/types.cjs +18 -0
  38. package/dist/cjs/fonts/types.native.js +21 -0
  39. package/dist/cjs/fonts/types.native.js.map +1 -0
  40. package/dist/cjs/index.cjs +39 -0
  41. package/dist/cjs/index.native.js +42 -0
  42. package/dist/cjs/index.native.js.map +1 -0
  43. package/dist/cjs/keyboardFocusRing.cjs +111 -0
  44. package/dist/cjs/keyboardFocusRing.native.js +116 -0
  45. package/dist/cjs/keyboardFocusRing.native.js.map +1 -0
  46. package/dist/cjs/menuRow.cjs +80 -0
  47. package/dist/cjs/menuRow.native.js +86 -0
  48. package/dist/cjs/menuRow.native.js.map +1 -0
  49. package/dist/cjs/numbers.cjs +161 -0
  50. package/dist/cjs/numbers.native.js +173 -0
  51. package/dist/cjs/numbers.native.js.map +1 -0
  52. package/dist/cjs/theme/FontKnobStyles.cjs +161 -0
  53. package/dist/cjs/theme/FontKnobStyles.native.js +41 -0
  54. package/dist/cjs/theme/FontKnobStyles.native.js.map +1 -0
  55. package/dist/cjs/theme/Heading.cjs +174 -0
  56. package/dist/cjs/theme/Heading.native.js +186 -0
  57. package/dist/cjs/theme/Heading.native.js.map +1 -0
  58. package/dist/cjs/theme/IconSlot.cjs +67 -0
  59. package/dist/cjs/theme/IconSlot.native.js +78 -0
  60. package/dist/cjs/theme/IconSlot.native.js.map +1 -0
  61. package/dist/cjs/theme/Intent.cjs +44 -0
  62. package/dist/cjs/theme/Intent.native.js +48 -0
  63. package/dist/cjs/theme/Intent.native.js.map +1 -0
  64. package/dist/cjs/theme/Preset.cjs +150 -0
  65. package/dist/cjs/theme/Preset.native.js +156 -0
  66. package/dist/cjs/theme/Preset.native.js.map +1 -0
  67. package/dist/cjs/theme/PresetContext.cjs +38 -0
  68. package/dist/cjs/theme/PresetContext.native.js +42 -0
  69. package/dist/cjs/theme/PresetContext.native.js.map +1 -0
  70. package/dist/cjs/theme/Surface.cjs +115 -0
  71. package/dist/cjs/theme/Surface.native.js +126 -0
  72. package/dist/cjs/theme/Surface.native.js.map +1 -0
  73. package/dist/cjs/theme/Text.cjs +147 -0
  74. package/dist/cjs/theme/Text.native.js +155 -0
  75. package/dist/cjs/theme/Text.native.js.map +1 -0
  76. package/dist/cjs/theme/Tint.cjs +55 -0
  77. package/dist/cjs/theme/Tint.native.js +59 -0
  78. package/dist/cjs/theme/Tint.native.js.map +1 -0
  79. package/dist/cjs/theme/activateThemeConfig.cjs +42 -0
  80. package/dist/cjs/theme/activateThemeConfig.native.js +45 -0
  81. package/dist/cjs/theme/activateThemeConfig.native.js.map +1 -0
  82. package/dist/cjs/theme/animations/css.cjs +36 -0
  83. package/dist/cjs/theme/animations/css.native.js +39 -0
  84. package/dist/cjs/theme/animations/css.native.js.map +1 -0
  85. package/dist/cjs/theme/animations/index.cjs +20 -0
  86. package/dist/cjs/theme/animations/index.native.js +23 -0
  87. package/dist/cjs/theme/animations/index.native.js.map +1 -0
  88. package/dist/cjs/theme/animations/reactNative.cjs +158 -0
  89. package/dist/cjs/theme/animations/reactNative.native.js +161 -0
  90. package/dist/cjs/theme/animations/reactNative.native.js.map +1 -0
  91. package/dist/cjs/theme/chartPalette.cjs +229 -0
  92. package/dist/cjs/theme/chartPalette.native.js +297 -0
  93. package/dist/cjs/theme/chartPalette.native.js.map +1 -0
  94. package/dist/cjs/theme/colorRules.cjs +300 -0
  95. package/dist/cjs/theme/colorRules.native.js +330 -0
  96. package/dist/cjs/theme/colorRules.native.js.map +1 -0
  97. package/dist/cjs/theme/controlTiers.cjs +67 -0
  98. package/dist/cjs/theme/controlTiers.native.js +72 -0
  99. package/dist/cjs/theme/controlTiers.native.js.map +1 -0
  100. package/dist/cjs/theme/cookies.cjs +183 -0
  101. package/dist/cjs/theme/cookies.native.js +309 -0
  102. package/dist/cjs/theme/cookies.native.js.map +1 -0
  103. package/dist/cjs/theme/cornerSmoothing.cjs +111 -0
  104. package/dist/cjs/theme/cornerSmoothing.native.js +71 -0
  105. package/dist/cjs/theme/cornerSmoothing.native.js.map +1 -0
  106. package/dist/cjs/theme/createDefaultThemeConfig.cjs +130 -0
  107. package/dist/cjs/theme/createDefaultThemeConfig.native.js +176 -0
  108. package/dist/cjs/theme/createDefaultThemeConfig.native.js.map +1 -0
  109. package/dist/cjs/theme/createThemes.cjs +737 -0
  110. package/dist/cjs/theme/createThemes.native.js +1183 -0
  111. package/dist/cjs/theme/createThemes.native.js.map +1 -0
  112. package/dist/cjs/theme/dedupeInherited.cjs +83 -0
  113. package/dist/cjs/theme/dedupeInherited.native.js +194 -0
  114. package/dist/cjs/theme/dedupeInherited.native.js.map +1 -0
  115. package/dist/cjs/theme/defaults/accent.cjs +32 -0
  116. package/dist/cjs/theme/defaults/accent.native.js +35 -0
  117. package/dist/cjs/theme/defaults/accent.native.js.map +1 -0
  118. package/dist/cjs/theme/defaults/base.cjs +48 -0
  119. package/dist/cjs/theme/defaults/base.native.js +51 -0
  120. package/dist/cjs/theme/defaults/base.native.js.map +1 -0
  121. package/dist/cjs/theme/defaults/builderOptions.cjs +192 -0
  122. package/dist/cjs/theme/defaults/builderOptions.native.js +263 -0
  123. package/dist/cjs/theme/defaults/builderOptions.native.js.map +1 -0
  124. package/dist/cjs/theme/defaults/categoryFonts.cjs +50 -0
  125. package/dist/cjs/theme/defaults/categoryFonts.native.js +53 -0
  126. package/dist/cjs/theme/defaults/categoryFonts.native.js.map +1 -0
  127. package/dist/cjs/theme/defaults/fonts.cjs +301 -0
  128. package/dist/cjs/theme/defaults/fonts.native.js +390 -0
  129. package/dist/cjs/theme/defaults/fonts.native.js.map +1 -0
  130. package/dist/cjs/theme/defaults/house.cjs +39 -0
  131. package/dist/cjs/theme/defaults/house.native.js +46 -0
  132. package/dist/cjs/theme/defaults/house.native.js.map +1 -0
  133. package/dist/cjs/theme/defaults/index.cjs +25 -0
  134. package/dist/cjs/theme/defaults/index.native.js +28 -0
  135. package/dist/cjs/theme/defaults/index.native.js.map +1 -0
  136. package/dist/cjs/theme/devtools/ColorLineVisualizer.cjs +243 -0
  137. package/dist/cjs/theme/devtools/ColorLineVisualizer.native.js +269 -0
  138. package/dist/cjs/theme/devtools/ColorLineVisualizer.native.js.map +1 -0
  139. package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.cjs +1350 -0
  140. package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.native.js +1814 -0
  141. package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.native.js.map +1 -0
  142. package/dist/cjs/theme/devtools/animationOptions.cjs +36 -0
  143. package/dist/cjs/theme/devtools/animationOptions.native.js +46 -0
  144. package/dist/cjs/theme/devtools/animationOptions.native.js.map +1 -0
  145. package/dist/cjs/theme/devtools/buildSnapshot.cjs +92 -0
  146. package/dist/cjs/theme/devtools/buildSnapshot.native.js +174 -0
  147. package/dist/cjs/theme/devtools/buildSnapshot.native.js.map +1 -0
  148. package/dist/cjs/theme/devtools/knobIcons.cjs +498 -0
  149. package/dist/cjs/theme/devtools/knobIcons.native.js +520 -0
  150. package/dist/cjs/theme/devtools/knobIcons.native.js.map +1 -0
  151. package/dist/cjs/theme/devtools/vizConstants.cjs +54 -0
  152. package/dist/cjs/theme/devtools/vizConstants.native.js +57 -0
  153. package/dist/cjs/theme/devtools/vizConstants.native.js.map +1 -0
  154. package/dist/cjs/theme/dynamicType.cjs +52 -0
  155. package/dist/cjs/theme/dynamicType.native.js +55 -0
  156. package/dist/cjs/theme/dynamicType.native.js.map +1 -0
  157. package/dist/cjs/theme/fieldFocus.cjs +56 -0
  158. package/dist/cjs/theme/fieldFocus.native.js +62 -0
  159. package/dist/cjs/theme/fieldFocus.native.js.map +1 -0
  160. package/dist/cjs/theme/fillContrast.cjs +130 -0
  161. package/dist/cjs/theme/fillContrast.native.js +163 -0
  162. package/dist/cjs/theme/fillContrast.native.js.map +1 -0
  163. package/dist/cjs/theme/focusState.cjs +120 -0
  164. package/dist/cjs/theme/focusState.native.js +123 -0
  165. package/dist/cjs/theme/focusState.native.js.map +1 -0
  166. package/dist/cjs/theme/fontCategoryMetrics.cjs +91 -0
  167. package/dist/cjs/theme/fontCategoryMetrics.native.js +94 -0
  168. package/dist/cjs/theme/fontCategoryMetrics.native.js.map +1 -0
  169. package/dist/cjs/theme/fontCategoryStacks.cjs +40 -0
  170. package/dist/cjs/theme/fontCategoryStacks.native.js +43 -0
  171. package/dist/cjs/theme/fontCategoryStacks.native.js.map +1 -0
  172. package/dist/cjs/theme/glyphPaint.cjs +55 -0
  173. package/dist/cjs/theme/glyphPaint.native.js +81 -0
  174. package/dist/cjs/theme/glyphPaint.native.js.map +1 -0
  175. package/dist/cjs/theme/glyphTint.cjs +113 -0
  176. package/dist/cjs/theme/glyphTint.native.js +125 -0
  177. package/dist/cjs/theme/glyphTint.native.js.map +1 -0
  178. package/dist/cjs/theme/groupGeometry.cjs +67 -0
  179. package/dist/cjs/theme/groupGeometry.native.js +72 -0
  180. package/dist/cjs/theme/groupGeometry.native.js.map +1 -0
  181. package/dist/cjs/theme/hairline.cjs +102 -0
  182. package/dist/cjs/theme/hairline.native.js +73 -0
  183. package/dist/cjs/theme/hairline.native.js.map +1 -0
  184. package/dist/cjs/theme/index.cjs +95 -0
  185. package/dist/cjs/theme/index.native.js +98 -0
  186. package/dist/cjs/theme/index.native.js.map +1 -0
  187. package/dist/cjs/theme/intents.cjs +62 -0
  188. package/dist/cjs/theme/intents.native.js +65 -0
  189. package/dist/cjs/theme/intents.native.js.map +1 -0
  190. package/dist/cjs/theme/knobs.cjs +172 -0
  191. package/dist/cjs/theme/knobs.native.js +175 -0
  192. package/dist/cjs/theme/knobs.native.js.map +1 -0
  193. package/dist/cjs/theme/layoutTokens.cjs +172 -0
  194. package/dist/cjs/theme/layoutTokens.native.js +222 -0
  195. package/dist/cjs/theme/layoutTokens.native.js.map +1 -0
  196. package/dist/cjs/theme/listRows.cjs +44 -0
  197. package/dist/cjs/theme/listRows.native.js +49 -0
  198. package/dist/cjs/theme/listRows.native.js.map +1 -0
  199. package/dist/cjs/theme/mergedTokens.cjs +39 -0
  200. package/dist/cjs/theme/mergedTokens.native.js +61 -0
  201. package/dist/cjs/theme/mergedTokens.native.js.map +1 -0
  202. package/dist/cjs/theme/motion.cjs +72 -0
  203. package/dist/cjs/theme/motion.native.js +82 -0
  204. package/dist/cjs/theme/motion.native.js.map +1 -0
  205. package/dist/cjs/theme/motionStops.cjs +28 -0
  206. package/dist/cjs/theme/motionStops.native.js +31 -0
  207. package/dist/cjs/theme/motionStops.native.js.map +1 -0
  208. package/dist/cjs/theme/motionTiming.cjs +79 -0
  209. package/dist/cjs/theme/motionTiming.native.js +85 -0
  210. package/dist/cjs/theme/motionTiming.native.js.map +1 -0
  211. package/dist/cjs/theme/nativeFontFamily.cjs +30 -0
  212. package/dist/cjs/theme/nativeFontFamily.native.js +37 -0
  213. package/dist/cjs/theme/nativeFontFamily.native.js.map +1 -0
  214. package/dist/cjs/theme/nativeMonoFamily.cjs +44 -0
  215. package/dist/cjs/theme/nativeMonoFamily.native.js +47 -0
  216. package/dist/cjs/theme/nativeMonoFamily.native.js.map +1 -0
  217. package/dist/cjs/theme/overlaySurfaces.cjs +327 -0
  218. package/dist/cjs/theme/overlaySurfaces.native.js +351 -0
  219. package/dist/cjs/theme/overlaySurfaces.native.js.map +1 -0
  220. package/dist/cjs/theme/pageGutter.cjs +85 -0
  221. package/dist/cjs/theme/pageGutter.native.js +92 -0
  222. package/dist/cjs/theme/pageGutter.native.js.map +1 -0
  223. package/dist/cjs/theme/preset.types.cjs +18 -0
  224. package/dist/cjs/theme/preset.types.native.js +21 -0
  225. package/dist/cjs/theme/preset.types.native.js.map +1 -0
  226. package/dist/cjs/theme/presetPreview.cjs +42 -0
  227. package/dist/cjs/theme/presetPreview.native.js +46 -0
  228. package/dist/cjs/theme/presetPreview.native.js.map +1 -0
  229. package/dist/cjs/theme/presetStore.cjs +288 -0
  230. package/dist/cjs/theme/presetStore.native.js +344 -0
  231. package/dist/cjs/theme/presetStore.native.js.map +1 -0
  232. package/dist/cjs/theme/presetUserSync.cjs +70 -0
  233. package/dist/cjs/theme/presetUserSync.native.js +75 -0
  234. package/dist/cjs/theme/presetUserSync.native.js.map +1 -0
  235. package/dist/cjs/theme/presets.cjs +128 -0
  236. package/dist/cjs/theme/presets.native.js +131 -0
  237. package/dist/cjs/theme/presets.native.js.map +1 -0
  238. package/dist/cjs/theme/radiusClass.cjs +128 -0
  239. package/dist/cjs/theme/radiusClass.native.js +137 -0
  240. package/dist/cjs/theme/radiusClass.native.js.map +1 -0
  241. package/dist/cjs/theme/radiusClassTable.generated.cjs +164 -0
  242. package/dist/cjs/theme/radiusClassTable.generated.native.js +167 -0
  243. package/dist/cjs/theme/radiusClassTable.generated.native.js.map +1 -0
  244. package/dist/cjs/theme/ramps.cjs +75 -0
  245. package/dist/cjs/theme/ramps.native.js +79 -0
  246. package/dist/cjs/theme/ramps.native.js.map +1 -0
  247. package/dist/cjs/theme/readableColor.cjs +248 -0
  248. package/dist/cjs/theme/readableColor.native.js +354 -0
  249. package/dist/cjs/theme/readableColor.native.js.map +1 -0
  250. package/dist/cjs/theme/recipeInputs.cjs +352 -0
  251. package/dist/cjs/theme/recipeInputs.native.js +470 -0
  252. package/dist/cjs/theme/recipeInputs.native.js.map +1 -0
  253. package/dist/cjs/theme/recipes.cjs +18 -0
  254. package/dist/cjs/theme/recipes.native.js +21 -0
  255. package/dist/cjs/theme/recipes.native.js.map +1 -0
  256. package/dist/cjs/theme/resolveKnobs.cjs +778 -0
  257. package/dist/cjs/theme/resolveKnobs.native.js +795 -0
  258. package/dist/cjs/theme/resolveKnobs.native.js.map +1 -0
  259. package/dist/cjs/theme/scale/ScaleStyles.cjs +57 -0
  260. package/dist/cjs/theme/scale/ScaleStyles.native.js +41 -0
  261. package/dist/cjs/theme/scale/ScaleStyles.native.js.map +1 -0
  262. package/dist/cjs/theme/scale/activeScale.cjs +56 -0
  263. package/dist/cjs/theme/scale/activeScale.native.js +84 -0
  264. package/dist/cjs/theme/scale/activeScale.native.js.map +1 -0
  265. package/dist/cjs/theme/scale/deriveRecipeInputs.cjs +111 -0
  266. package/dist/cjs/theme/scale/deriveRecipeInputs.native.js +154 -0
  267. package/dist/cjs/theme/scale/deriveRecipeInputs.native.js.map +1 -0
  268. package/dist/cjs/theme/scale/generateScale.cjs +114 -0
  269. package/dist/cjs/theme/scale/generateScale.native.js +200 -0
  270. package/dist/cjs/theme/scale/generateScale.native.js.map +1 -0
  271. package/dist/cjs/theme/scale/index.cjs +78 -0
  272. package/dist/cjs/theme/scale/index.native.js +81 -0
  273. package/dist/cjs/theme/scale/index.native.js.map +1 -0
  274. package/dist/cjs/theme/scale/installScaleConfig.cjs +31 -0
  275. package/dist/cjs/theme/scale/installScaleConfig.native.js +65 -0
  276. package/dist/cjs/theme/scale/installScaleConfig.native.js.map +1 -0
  277. package/dist/cjs/theme/scale/scaleAttribute.cjs +39 -0
  278. package/dist/cjs/theme/scale/scaleAttribute.native.js +42 -0
  279. package/dist/cjs/theme/scale/scaleAttribute.native.js.map +1 -0
  280. package/dist/cjs/theme/scale/scaleCss.cjs +89 -0
  281. package/dist/cjs/theme/scale/scaleCss.native.js +201 -0
  282. package/dist/cjs/theme/scale/scaleCss.native.js.map +1 -0
  283. package/dist/cjs/theme/scale/scaleFonts.cjs +86 -0
  284. package/dist/cjs/theme/scale/scaleFonts.native.js +155 -0
  285. package/dist/cjs/theme/scale/scaleFonts.native.js.map +1 -0
  286. package/dist/cjs/theme/scale/scaleInputs.cjs +232 -0
  287. package/dist/cjs/theme/scale/scaleInputs.native.js +237 -0
  288. package/dist/cjs/theme/scale/scaleInputs.native.js.map +1 -0
  289. package/dist/cjs/theme/scale/themeScales.cjs +136 -0
  290. package/dist/cjs/theme/scale/themeScales.native.js +185 -0
  291. package/dist/cjs/theme/scale/themeScales.native.js.map +1 -0
  292. package/dist/cjs/theme/scale/useActiveScale.cjs +78 -0
  293. package/dist/cjs/theme/scale/useActiveScale.native.js +87 -0
  294. package/dist/cjs/theme/scale/useActiveScale.native.js.map +1 -0
  295. package/dist/cjs/theme/schemeStore.cjs +87 -0
  296. package/dist/cjs/theme/schemeStore.native.js +104 -0
  297. package/dist/cjs/theme/schemeStore.native.js.map +1 -0
  298. package/dist/cjs/theme/shared.cjs +125 -0
  299. package/dist/cjs/theme/shared.native.js +168 -0
  300. package/dist/cjs/theme/shared.native.js.map +1 -0
  301. package/dist/cjs/theme/sizeRecipes.cjs +176 -0
  302. package/dist/cjs/theme/sizeRecipes.native.js +251 -0
  303. package/dist/cjs/theme/sizeRecipes.native.js.map +1 -0
  304. package/dist/cjs/theme/subsetThemes.cjs +46 -0
  305. package/dist/cjs/theme/subsetThemes.native.js +76 -0
  306. package/dist/cjs/theme/subsetThemes.native.js.map +1 -0
  307. package/dist/cjs/theme/theme.cjs +189 -0
  308. package/dist/cjs/theme/theme.native.js +115 -0
  309. package/dist/cjs/theme/theme.native.js.map +1 -0
  310. package/dist/cjs/theme/themeValue.cjs +51 -0
  311. package/dist/cjs/theme/themeValue.native.js +73 -0
  312. package/dist/cjs/theme/themeValue.native.js.map +1 -0
  313. package/dist/cjs/theme/tileSizes.cjs +202 -0
  314. package/dist/cjs/theme/tileSizes.native.js +230 -0
  315. package/dist/cjs/theme/tileSizes.native.js.map +1 -0
  316. package/dist/cjs/theme/touchManipulation.cjs +33 -0
  317. package/dist/cjs/theme/touchManipulation.native.js +36 -0
  318. package/dist/cjs/theme/touchManipulation.native.js.map +1 -0
  319. package/dist/cjs/theme/transitionProps.cjs +50 -0
  320. package/dist/cjs/theme/transitionProps.native.js +81 -0
  321. package/dist/cjs/theme/transitionProps.native.js.map +1 -0
  322. package/dist/cjs/theme/useColorScale.cjs +47 -0
  323. package/dist/cjs/theme/useColorScale.native.js +33 -0
  324. package/dist/cjs/theme/useColorScale.native.js.map +1 -0
  325. package/dist/cjs/theme/usePresetSwitch.cjs +70 -0
  326. package/dist/cjs/theme/usePresetSwitch.native.js +50 -0
  327. package/dist/cjs/theme/usePresetSwitch.native.js.map +1 -0
  328. package/dist/cjs/theme/useResolvedKnobs.cjs +140 -0
  329. package/dist/cjs/theme/useResolvedKnobs.native.js +177 -0
  330. package/dist/cjs/theme/useResolvedKnobs.native.js.map +1 -0
  331. package/dist/cjs/theme/useSchemePreference.cjs +49 -0
  332. package/dist/cjs/theme/useSchemePreference.native.js +80 -0
  333. package/dist/cjs/theme/useSchemePreference.native.js.map +1 -0
  334. package/dist/cjs/theme/useTheme.cjs +152 -0
  335. package/dist/cjs/theme/useTheme.native.js +94 -0
  336. package/dist/cjs/theme/useTheme.native.js.map +1 -0
  337. package/dist/cjs/theme/useTouchSurface.cjs +33 -0
  338. package/dist/cjs/theme/useTouchSurface.native.js +36 -0
  339. package/dist/cjs/theme/useTouchSurface.native.js.map +1 -0
  340. package/dist/cjs/theme/v3TokenRoles.cjs +64 -0
  341. package/dist/cjs/theme/v3TokenRoles.native.js +67 -0
  342. package/dist/cjs/theme/v3TokenRoles.native.js.map +1 -0
  343. package/dist/esm/audit/constraintAudit.mjs +540 -0
  344. package/dist/esm/audit/constraintAudit.mjs.map +1 -0
  345. package/dist/esm/audit/constraintAudit.native.js +918 -0
  346. package/dist/esm/audit/constraintAudit.native.js.map +1 -0
  347. package/dist/esm/audit/designTokens.mjs +28 -0
  348. package/dist/esm/audit/designTokens.mjs.map +1 -0
  349. package/dist/esm/audit/designTokens.native.js +52 -0
  350. package/dist/esm/audit/designTokens.native.js.map +1 -0
  351. package/dist/esm/audit/diffReport.mjs +229 -0
  352. package/dist/esm/audit/diffReport.mjs.map +1 -0
  353. package/dist/esm/audit/diffReport.native.js +490 -0
  354. package/dist/esm/audit/diffReport.native.js.map +1 -0
  355. package/dist/esm/audit/index.mjs +5 -0
  356. package/dist/esm/audit/index.mjs.map +1 -0
  357. package/dist/esm/audit/index.native.js +5 -0
  358. package/dist/esm/audit/index.native.js.map +1 -0
  359. package/dist/esm/audit/themeMatrix.mjs +890 -0
  360. package/dist/esm/audit/themeMatrix.mjs.map +1 -0
  361. package/dist/esm/audit/themeMatrix.native.js +1515 -0
  362. package/dist/esm/audit/themeMatrix.native.js.map +1 -0
  363. package/dist/esm/dates.mjs +224 -0
  364. package/dist/esm/dates.mjs.map +1 -0
  365. package/dist/esm/dates.native.js +249 -0
  366. package/dist/esm/dates.native.js.map +1 -0
  367. package/dist/esm/devWarn.mjs +123 -0
  368. package/dist/esm/devWarn.mjs.map +1 -0
  369. package/dist/esm/devWarn.native.js +148 -0
  370. package/dist/esm/devWarn.native.js.map +1 -0
  371. package/dist/esm/expo.mjs +53 -0
  372. package/dist/esm/expo.mjs.map +1 -0
  373. package/dist/esm/expo.native.js +55 -0
  374. package/dist/esm/expo.native.js.map +1 -0
  375. package/dist/esm/figma/figmaTokens.mjs +322 -0
  376. package/dist/esm/figma/figmaTokens.mjs.map +1 -0
  377. package/dist/esm/figma/figmaTokens.native.js +606 -0
  378. package/dist/esm/figma/figmaTokens.native.js.map +1 -0
  379. package/dist/esm/font.mjs +40 -0
  380. package/dist/esm/font.mjs.map +1 -0
  381. package/dist/esm/font.native.js +46 -0
  382. package/dist/esm/font.native.js.map +1 -0
  383. package/dist/esm/fonts/createFontLoader.mjs +7 -0
  384. package/dist/esm/fonts/createFontLoader.mjs.map +1 -0
  385. package/dist/esm/fonts/createFontLoader.native.js +41 -0
  386. package/dist/esm/fonts/createFontLoader.native.js.map +1 -0
  387. package/dist/esm/fonts/index.mjs +3 -0
  388. package/dist/esm/fonts/index.mjs.map +1 -0
  389. package/dist/esm/fonts/index.native.js +3 -0
  390. package/dist/esm/fonts/index.native.js.map +1 -0
  391. package/dist/esm/fonts/types.mjs +2 -0
  392. package/dist/esm/fonts/types.mjs.map +1 -0
  393. package/dist/esm/fonts/types.native.js +2 -0
  394. package/dist/esm/fonts/types.native.js.map +1 -0
  395. package/dist/esm/index.mjs +11 -0
  396. package/dist/esm/index.mjs.map +1 -0
  397. package/dist/esm/index.native.js +11 -0
  398. package/dist/esm/index.native.js.map +1 -0
  399. package/dist/esm/keyboardFocusRing.mjs +81 -0
  400. package/dist/esm/keyboardFocusRing.mjs.map +1 -0
  401. package/dist/esm/keyboardFocusRing.native.js +83 -0
  402. package/dist/esm/keyboardFocusRing.native.js.map +1 -0
  403. package/dist/esm/menuRow.mjs +49 -0
  404. package/dist/esm/menuRow.mjs.map +1 -0
  405. package/dist/esm/menuRow.native.js +52 -0
  406. package/dist/esm/menuRow.native.js.map +1 -0
  407. package/dist/esm/numbers.mjs +132 -0
  408. package/dist/esm/numbers.mjs.map +1 -0
  409. package/dist/esm/numbers.native.js +141 -0
  410. package/dist/esm/numbers.native.js.map +1 -0
  411. package/dist/esm/theme/FontKnobStyles.mjs +131 -0
  412. package/dist/esm/theme/FontKnobStyles.mjs.map +1 -0
  413. package/dist/esm/theme/FontKnobStyles.native.js +11 -0
  414. package/dist/esm/theme/FontKnobStyles.native.js.map +1 -0
  415. package/dist/esm/theme/Heading.mjs +143 -0
  416. package/dist/esm/theme/Heading.mjs.map +1 -0
  417. package/dist/esm/theme/Heading.native.js +152 -0
  418. package/dist/esm/theme/Heading.native.js.map +1 -0
  419. package/dist/esm/theme/IconSlot.mjs +42 -0
  420. package/dist/esm/theme/IconSlot.mjs.map +1 -0
  421. package/dist/esm/theme/IconSlot.native.js +50 -0
  422. package/dist/esm/theme/IconSlot.native.js.map +1 -0
  423. package/dist/esm/theme/Intent.mjs +19 -0
  424. package/dist/esm/theme/Intent.mjs.map +1 -0
  425. package/dist/esm/theme/Intent.native.js +20 -0
  426. package/dist/esm/theme/Intent.native.js.map +1 -0
  427. package/dist/esm/theme/Preset.mjs +124 -0
  428. package/dist/esm/theme/Preset.mjs.map +1 -0
  429. package/dist/esm/theme/Preset.native.js +127 -0
  430. package/dist/esm/theme/Preset.native.js.map +1 -0
  431. package/dist/esm/theme/PresetContext.mjs +11 -0
  432. package/dist/esm/theme/PresetContext.mjs.map +1 -0
  433. package/dist/esm/theme/PresetContext.native.js +12 -0
  434. package/dist/esm/theme/PresetContext.native.js.map +1 -0
  435. package/dist/esm/theme/Surface.mjs +80 -0
  436. package/dist/esm/theme/Surface.mjs.map +1 -0
  437. package/dist/esm/theme/Surface.native.js +88 -0
  438. package/dist/esm/theme/Surface.native.js.map +1 -0
  439. package/dist/esm/theme/Text.mjs +119 -0
  440. package/dist/esm/theme/Text.mjs.map +1 -0
  441. package/dist/esm/theme/Text.native.js +124 -0
  442. package/dist/esm/theme/Text.native.js.map +1 -0
  443. package/dist/esm/theme/Tint.mjs +29 -0
  444. package/dist/esm/theme/Tint.mjs.map +1 -0
  445. package/dist/esm/theme/Tint.native.js +30 -0
  446. package/dist/esm/theme/Tint.native.js.map +1 -0
  447. package/dist/esm/theme/activateThemeConfig.mjs +17 -0
  448. package/dist/esm/theme/activateThemeConfig.mjs.map +1 -0
  449. package/dist/esm/theme/activateThemeConfig.native.js +17 -0
  450. package/dist/esm/theme/activateThemeConfig.native.js.map +1 -0
  451. package/dist/esm/theme/animations/css.mjs +7 -0
  452. package/dist/esm/theme/animations/css.mjs.map +1 -0
  453. package/dist/esm/theme/animations/css.native.js +7 -0
  454. package/dist/esm/theme/animations/css.native.js.map +1 -0
  455. package/dist/esm/theme/animations/index.mjs +2 -0
  456. package/dist/esm/theme/animations/index.mjs.map +1 -0
  457. package/dist/esm/theme/animations/index.native.js +2 -0
  458. package/dist/esm/theme/animations/index.native.js.map +1 -0
  459. package/dist/esm/theme/animations/reactNative.mjs +131 -0
  460. package/dist/esm/theme/animations/reactNative.mjs.map +1 -0
  461. package/dist/esm/theme/animations/reactNative.native.js +131 -0
  462. package/dist/esm/theme/animations/reactNative.native.js.map +1 -0
  463. package/dist/esm/theme/chartPalette.mjs +191 -0
  464. package/dist/esm/theme/chartPalette.mjs.map +1 -0
  465. package/dist/esm/theme/chartPalette.native.js +256 -0
  466. package/dist/esm/theme/chartPalette.native.js.map +1 -0
  467. package/dist/esm/theme/colorRules.mjs +251 -0
  468. package/dist/esm/theme/colorRules.mjs.map +1 -0
  469. package/dist/esm/theme/colorRules.native.js +278 -0
  470. package/dist/esm/theme/colorRules.native.js.map +1 -0
  471. package/dist/esm/theme/controlTiers.mjs +39 -0
  472. package/dist/esm/theme/controlTiers.mjs.map +1 -0
  473. package/dist/esm/theme/controlTiers.native.js +41 -0
  474. package/dist/esm/theme/controlTiers.native.js.map +1 -0
  475. package/dist/esm/theme/cookies.mjs +145 -0
  476. package/dist/esm/theme/cookies.mjs.map +1 -0
  477. package/dist/esm/theme/cookies.native.js +268 -0
  478. package/dist/esm/theme/cookies.native.js.map +1 -0
  479. package/dist/esm/theme/cornerSmoothing.mjs +71 -0
  480. package/dist/esm/theme/cornerSmoothing.mjs.map +1 -0
  481. package/dist/esm/theme/cornerSmoothing.native.js +28 -0
  482. package/dist/esm/theme/cornerSmoothing.native.js.map +1 -0
  483. package/dist/esm/theme/createDefaultThemeConfig.mjs +102 -0
  484. package/dist/esm/theme/createDefaultThemeConfig.mjs.map +1 -0
  485. package/dist/esm/theme/createDefaultThemeConfig.native.js +145 -0
  486. package/dist/esm/theme/createDefaultThemeConfig.native.js.map +1 -0
  487. package/dist/esm/theme/createThemes.mjs +697 -0
  488. package/dist/esm/theme/createThemes.mjs.map +1 -0
  489. package/dist/esm/theme/createThemes.native.js +1140 -0
  490. package/dist/esm/theme/createThemes.native.js.map +1 -0
  491. package/dist/esm/theme/dedupeInherited.mjs +55 -0
  492. package/dist/esm/theme/dedupeInherited.mjs.map +1 -0
  493. package/dist/esm/theme/dedupeInherited.native.js +163 -0
  494. package/dist/esm/theme/dedupeInherited.native.js.map +1 -0
  495. package/dist/esm/theme/defaults/accent.mjs +7 -0
  496. package/dist/esm/theme/defaults/accent.mjs.map +1 -0
  497. package/dist/esm/theme/defaults/accent.native.js +7 -0
  498. package/dist/esm/theme/defaults/accent.native.js.map +1 -0
  499. package/dist/esm/theme/defaults/base.mjs +23 -0
  500. package/dist/esm/theme/defaults/base.mjs.map +1 -0
  501. package/dist/esm/theme/defaults/base.native.js +23 -0
  502. package/dist/esm/theme/defaults/base.native.js.map +1 -0
  503. package/dist/esm/theme/defaults/builderOptions.mjs +165 -0
  504. package/dist/esm/theme/defaults/builderOptions.mjs.map +1 -0
  505. package/dist/esm/theme/defaults/builderOptions.native.js +233 -0
  506. package/dist/esm/theme/defaults/builderOptions.native.js.map +1 -0
  507. package/dist/esm/theme/defaults/categoryFonts.mjs +25 -0
  508. package/dist/esm/theme/defaults/categoryFonts.mjs.map +1 -0
  509. package/dist/esm/theme/defaults/categoryFonts.native.js +25 -0
  510. package/dist/esm/theme/defaults/categoryFonts.native.js.map +1 -0
  511. package/dist/esm/theme/defaults/fonts.mjs +240 -0
  512. package/dist/esm/theme/defaults/fonts.mjs.map +1 -0
  513. package/dist/esm/theme/defaults/fonts.native.js +326 -0
  514. package/dist/esm/theme/defaults/fonts.native.js.map +1 -0
  515. package/dist/esm/theme/defaults/house.mjs +13 -0
  516. package/dist/esm/theme/defaults/house.mjs.map +1 -0
  517. package/dist/esm/theme/defaults/house.native.js +17 -0
  518. package/dist/esm/theme/defaults/house.native.js.map +1 -0
  519. package/dist/esm/theme/defaults/index.mjs +7 -0
  520. package/dist/esm/theme/defaults/index.mjs.map +1 -0
  521. package/dist/esm/theme/defaults/index.native.js +7 -0
  522. package/dist/esm/theme/defaults/index.native.js.map +1 -0
  523. package/dist/esm/theme/devtools/ColorLineVisualizer.mjs +218 -0
  524. package/dist/esm/theme/devtools/ColorLineVisualizer.mjs.map +1 -0
  525. package/dist/esm/theme/devtools/ColorLineVisualizer.native.js +230 -0
  526. package/dist/esm/theme/devtools/ColorLineVisualizer.native.js.map +1 -0
  527. package/dist/esm/theme/devtools/ThemeDevtoolsPanel.mjs +1325 -0
  528. package/dist/esm/theme/devtools/ThemeDevtoolsPanel.mjs.map +1 -0
  529. package/dist/esm/theme/devtools/ThemeDevtoolsPanel.native.js +1786 -0
  530. package/dist/esm/theme/devtools/ThemeDevtoolsPanel.native.js.map +1 -0
  531. package/dist/esm/theme/devtools/animationOptions.mjs +11 -0
  532. package/dist/esm/theme/devtools/animationOptions.mjs.map +1 -0
  533. package/dist/esm/theme/devtools/animationOptions.native.js +18 -0
  534. package/dist/esm/theme/devtools/animationOptions.native.js.map +1 -0
  535. package/dist/esm/theme/devtools/buildSnapshot.mjs +67 -0
  536. package/dist/esm/theme/devtools/buildSnapshot.mjs.map +1 -0
  537. package/dist/esm/theme/devtools/buildSnapshot.native.js +146 -0
  538. package/dist/esm/theme/devtools/buildSnapshot.native.js.map +1 -0
  539. package/dist/esm/theme/devtools/knobIcons.mjs +456 -0
  540. package/dist/esm/theme/devtools/knobIcons.mjs.map +1 -0
  541. package/dist/esm/theme/devtools/knobIcons.native.js +464 -0
  542. package/dist/esm/theme/devtools/knobIcons.native.js.map +1 -0
  543. package/dist/esm/theme/devtools/vizConstants.mjs +26 -0
  544. package/dist/esm/theme/devtools/vizConstants.mjs.map +1 -0
  545. package/dist/esm/theme/devtools/vizConstants.native.js +26 -0
  546. package/dist/esm/theme/devtools/vizConstants.native.js.map +1 -0
  547. package/dist/esm/theme/dynamicType.mjs +24 -0
  548. package/dist/esm/theme/dynamicType.mjs.map +1 -0
  549. package/dist/esm/theme/dynamicType.native.js +24 -0
  550. package/dist/esm/theme/dynamicType.native.js.map +1 -0
  551. package/dist/esm/theme/fieldFocus.mjs +27 -0
  552. package/dist/esm/theme/fieldFocus.mjs.map +1 -0
  553. package/dist/esm/theme/fieldFocus.native.js +30 -0
  554. package/dist/esm/theme/fieldFocus.native.js.map +1 -0
  555. package/dist/esm/theme/fillContrast.mjs +98 -0
  556. package/dist/esm/theme/fillContrast.mjs.map +1 -0
  557. package/dist/esm/theme/fillContrast.native.js +128 -0
  558. package/dist/esm/theme/fillContrast.native.js.map +1 -0
  559. package/dist/esm/theme/focusState.mjs +81 -0
  560. package/dist/esm/theme/focusState.mjs.map +1 -0
  561. package/dist/esm/theme/focusState.native.js +81 -0
  562. package/dist/esm/theme/focusState.native.js.map +1 -0
  563. package/dist/esm/theme/fontCategoryMetrics.mjs +65 -0
  564. package/dist/esm/theme/fontCategoryMetrics.mjs.map +1 -0
  565. package/dist/esm/theme/fontCategoryMetrics.native.js +65 -0
  566. package/dist/esm/theme/fontCategoryMetrics.native.js.map +1 -0
  567. package/dist/esm/theme/fontCategoryStacks.mjs +15 -0
  568. package/dist/esm/theme/fontCategoryStacks.mjs.map +1 -0
  569. package/dist/esm/theme/fontCategoryStacks.native.js +15 -0
  570. package/dist/esm/theme/fontCategoryStacks.native.js.map +1 -0
  571. package/dist/esm/theme/glyphPaint.mjs +29 -0
  572. package/dist/esm/theme/glyphPaint.mjs.map +1 -0
  573. package/dist/esm/theme/glyphPaint.native.js +52 -0
  574. package/dist/esm/theme/glyphPaint.native.js.map +1 -0
  575. package/dist/esm/theme/glyphTint.mjs +82 -0
  576. package/dist/esm/theme/glyphTint.mjs.map +1 -0
  577. package/dist/esm/theme/glyphTint.native.js +91 -0
  578. package/dist/esm/theme/glyphTint.native.js.map +1 -0
  579. package/dist/esm/theme/groupGeometry.mjs +38 -0
  580. package/dist/esm/theme/groupGeometry.mjs.map +1 -0
  581. package/dist/esm/theme/groupGeometry.native.js +40 -0
  582. package/dist/esm/theme/groupGeometry.native.js.map +1 -0
  583. package/dist/esm/theme/hairline.mjs +73 -0
  584. package/dist/esm/theme/hairline.mjs.map +1 -0
  585. package/dist/esm/theme/hairline.native.js +41 -0
  586. package/dist/esm/theme/hairline.native.js.map +1 -0
  587. package/dist/esm/theme/index.mjs +66 -0
  588. package/dist/esm/theme/index.mjs.map +1 -0
  589. package/dist/esm/theme/index.native.js +66 -0
  590. package/dist/esm/theme/index.native.js.map +1 -0
  591. package/dist/esm/theme/intents.mjs +37 -0
  592. package/dist/esm/theme/intents.mjs.map +1 -0
  593. package/dist/esm/theme/intents.native.js +37 -0
  594. package/dist/esm/theme/intents.native.js.map +1 -0
  595. package/dist/esm/theme/knobs.mjs +125 -0
  596. package/dist/esm/theme/knobs.mjs.map +1 -0
  597. package/dist/esm/theme/knobs.native.js +125 -0
  598. package/dist/esm/theme/knobs.native.js.map +1 -0
  599. package/dist/esm/theme/layoutTokens.mjs +124 -0
  600. package/dist/esm/theme/layoutTokens.mjs.map +1 -0
  601. package/dist/esm/theme/layoutTokens.native.js +171 -0
  602. package/dist/esm/theme/layoutTokens.native.js.map +1 -0
  603. package/dist/esm/theme/listRows.mjs +17 -0
  604. package/dist/esm/theme/listRows.mjs.map +1 -0
  605. package/dist/esm/theme/listRows.native.js +19 -0
  606. package/dist/esm/theme/listRows.native.js.map +1 -0
  607. package/dist/esm/theme/mergedTokens.mjs +14 -0
  608. package/dist/esm/theme/mergedTokens.mjs.map +1 -0
  609. package/dist/esm/theme/mergedTokens.native.js +33 -0
  610. package/dist/esm/theme/mergedTokens.native.js.map +1 -0
  611. package/dist/esm/theme/motion.mjs +41 -0
  612. package/dist/esm/theme/motion.mjs.map +1 -0
  613. package/dist/esm/theme/motion.native.js +48 -0
  614. package/dist/esm/theme/motion.native.js.map +1 -0
  615. package/dist/esm/theme/motionStops.mjs +3 -0
  616. package/dist/esm/theme/motionStops.mjs.map +1 -0
  617. package/dist/esm/theme/motionStops.native.js +3 -0
  618. package/dist/esm/theme/motionStops.native.js.map +1 -0
  619. package/dist/esm/theme/motionTiming.mjs +48 -0
  620. package/dist/esm/theme/motionTiming.mjs.map +1 -0
  621. package/dist/esm/theme/motionTiming.native.js +51 -0
  622. package/dist/esm/theme/motionTiming.native.js.map +1 -0
  623. package/dist/esm/theme/nativeFontFamily.mjs +5 -0
  624. package/dist/esm/theme/nativeFontFamily.mjs.map +1 -0
  625. package/dist/esm/theme/nativeFontFamily.native.js +9 -0
  626. package/dist/esm/theme/nativeFontFamily.native.js.map +1 -0
  627. package/dist/esm/theme/nativeMonoFamily.mjs +18 -0
  628. package/dist/esm/theme/nativeMonoFamily.mjs.map +1 -0
  629. package/dist/esm/theme/nativeMonoFamily.native.js +18 -0
  630. package/dist/esm/theme/nativeMonoFamily.native.js.map +1 -0
  631. package/dist/esm/theme/overlaySurfaces.mjs +290 -0
  632. package/dist/esm/theme/overlaySurfaces.mjs.map +1 -0
  633. package/dist/esm/theme/overlaySurfaces.native.js +311 -0
  634. package/dist/esm/theme/overlaySurfaces.native.js.map +1 -0
  635. package/dist/esm/theme/pageGutter.mjs +55 -0
  636. package/dist/esm/theme/pageGutter.mjs.map +1 -0
  637. package/dist/esm/theme/pageGutter.native.js +59 -0
  638. package/dist/esm/theme/pageGutter.native.js.map +1 -0
  639. package/dist/esm/theme/preset.types.mjs +2 -0
  640. package/dist/esm/theme/preset.types.mjs.map +1 -0
  641. package/dist/esm/theme/preset.types.native.js +2 -0
  642. package/dist/esm/theme/preset.types.native.js.map +1 -0
  643. package/dist/esm/theme/presetPreview.mjs +17 -0
  644. package/dist/esm/theme/presetPreview.mjs.map +1 -0
  645. package/dist/esm/theme/presetPreview.native.js +18 -0
  646. package/dist/esm/theme/presetPreview.native.js.map +1 -0
  647. package/dist/esm/theme/presetStore.mjs +251 -0
  648. package/dist/esm/theme/presetStore.mjs.map +1 -0
  649. package/dist/esm/theme/presetStore.native.js +304 -0
  650. package/dist/esm/theme/presetStore.native.js.map +1 -0
  651. package/dist/esm/theme/presetUserSync.mjs +44 -0
  652. package/dist/esm/theme/presetUserSync.mjs.map +1 -0
  653. package/dist/esm/theme/presetUserSync.native.js +46 -0
  654. package/dist/esm/theme/presetUserSync.native.js.map +1 -0
  655. package/dist/esm/theme/presets.mjs +97 -0
  656. package/dist/esm/theme/presets.mjs.map +1 -0
  657. package/dist/esm/theme/presets.native.js +97 -0
  658. package/dist/esm/theme/presets.native.js.map +1 -0
  659. package/dist/esm/theme/radiusClass.mjs +99 -0
  660. package/dist/esm/theme/radiusClass.mjs.map +1 -0
  661. package/dist/esm/theme/radiusClass.native.js +105 -0
  662. package/dist/esm/theme/radiusClass.native.js.map +1 -0
  663. package/dist/esm/theme/radiusClassTable.generated.mjs +135 -0
  664. package/dist/esm/theme/radiusClassTable.generated.mjs.map +1 -0
  665. package/dist/esm/theme/radiusClassTable.generated.native.js +135 -0
  666. package/dist/esm/theme/radiusClassTable.generated.native.js.map +1 -0
  667. package/dist/esm/theme/ramps.mjs +48 -0
  668. package/dist/esm/theme/ramps.mjs.map +1 -0
  669. package/dist/esm/theme/ramps.native.js +49 -0
  670. package/dist/esm/theme/ramps.native.js.map +1 -0
  671. package/dist/esm/theme/readableColor.mjs +214 -0
  672. package/dist/esm/theme/readableColor.mjs.map +1 -0
  673. package/dist/esm/theme/readableColor.native.js +317 -0
  674. package/dist/esm/theme/readableColor.native.js.map +1 -0
  675. package/dist/esm/theme/recipeInputs.mjs +309 -0
  676. package/dist/esm/theme/recipeInputs.mjs.map +1 -0
  677. package/dist/esm/theme/recipeInputs.native.js +424 -0
  678. package/dist/esm/theme/recipeInputs.native.js.map +1 -0
  679. package/dist/esm/theme/recipes.mjs +2 -0
  680. package/dist/esm/theme/recipes.mjs.map +1 -0
  681. package/dist/esm/theme/recipes.native.js +2 -0
  682. package/dist/esm/theme/recipes.native.js.map +1 -0
  683. package/dist/esm/theme/resolveKnobs.mjs +730 -0
  684. package/dist/esm/theme/resolveKnobs.mjs.map +1 -0
  685. package/dist/esm/theme/resolveKnobs.native.js +744 -0
  686. package/dist/esm/theme/resolveKnobs.native.js.map +1 -0
  687. package/dist/esm/theme/scale/ScaleStyles.mjs +30 -0
  688. package/dist/esm/theme/scale/ScaleStyles.mjs.map +1 -0
  689. package/dist/esm/theme/scale/ScaleStyles.native.js +11 -0
  690. package/dist/esm/theme/scale/ScaleStyles.native.js.map +1 -0
  691. package/dist/esm/theme/scale/activeScale.mjs +28 -0
  692. package/dist/esm/theme/scale/activeScale.mjs.map +1 -0
  693. package/dist/esm/theme/scale/activeScale.native.js +53 -0
  694. package/dist/esm/theme/scale/activeScale.native.js.map +1 -0
  695. package/dist/esm/theme/scale/deriveRecipeInputs.mjs +86 -0
  696. package/dist/esm/theme/scale/deriveRecipeInputs.mjs.map +1 -0
  697. package/dist/esm/theme/scale/deriveRecipeInputs.native.js +126 -0
  698. package/dist/esm/theme/scale/deriveRecipeInputs.native.js.map +1 -0
  699. package/dist/esm/theme/scale/generateScale.mjs +85 -0
  700. package/dist/esm/theme/scale/generateScale.mjs.map +1 -0
  701. package/dist/esm/theme/scale/generateScale.native.js +168 -0
  702. package/dist/esm/theme/scale/generateScale.native.js.map +1 -0
  703. package/dist/esm/theme/scale/index.mjs +12 -0
  704. package/dist/esm/theme/scale/index.mjs.map +1 -0
  705. package/dist/esm/theme/scale/index.native.js +12 -0
  706. package/dist/esm/theme/scale/index.native.js.map +1 -0
  707. package/dist/esm/theme/scale/installScaleConfig.mjs +6 -0
  708. package/dist/esm/theme/scale/installScaleConfig.mjs.map +1 -0
  709. package/dist/esm/theme/scale/installScaleConfig.native.js +36 -0
  710. package/dist/esm/theme/scale/installScaleConfig.native.js.map +1 -0
  711. package/dist/esm/theme/scale/scaleAttribute.mjs +11 -0
  712. package/dist/esm/theme/scale/scaleAttribute.mjs.map +1 -0
  713. package/dist/esm/theme/scale/scaleAttribute.native.js +11 -0
  714. package/dist/esm/theme/scale/scaleAttribute.native.js.map +1 -0
  715. package/dist/esm/theme/scale/scaleCss.mjs +62 -0
  716. package/dist/esm/theme/scale/scaleCss.mjs.map +1 -0
  717. package/dist/esm/theme/scale/scaleCss.native.js +171 -0
  718. package/dist/esm/theme/scale/scaleCss.native.js.map +1 -0
  719. package/dist/esm/theme/scale/scaleFonts.mjs +60 -0
  720. package/dist/esm/theme/scale/scaleFonts.mjs.map +1 -0
  721. package/dist/esm/theme/scale/scaleFonts.native.js +126 -0
  722. package/dist/esm/theme/scale/scaleFonts.native.js.map +1 -0
  723. package/dist/esm/theme/scale/scaleInputs.mjs +189 -0
  724. package/dist/esm/theme/scale/scaleInputs.mjs.map +1 -0
  725. package/dist/esm/theme/scale/scaleInputs.native.js +191 -0
  726. package/dist/esm/theme/scale/scaleInputs.native.js.map +1 -0
  727. package/dist/esm/theme/scale/themeScales.mjs +109 -0
  728. package/dist/esm/theme/scale/themeScales.mjs.map +1 -0
  729. package/dist/esm/theme/scale/themeScales.native.js +155 -0
  730. package/dist/esm/theme/scale/themeScales.native.js.map +1 -0
  731. package/dist/esm/theme/scale/useActiveScale.mjs +51 -0
  732. package/dist/esm/theme/scale/useActiveScale.mjs.map +1 -0
  733. package/dist/esm/theme/scale/useActiveScale.native.js +57 -0
  734. package/dist/esm/theme/scale/useActiveScale.native.js.map +1 -0
  735. package/dist/esm/theme/schemeStore.mjs +59 -0
  736. package/dist/esm/theme/schemeStore.mjs.map +1 -0
  737. package/dist/esm/theme/schemeStore.native.js +73 -0
  738. package/dist/esm/theme/schemeStore.native.js.map +1 -0
  739. package/dist/esm/theme/shared.mjs +95 -0
  740. package/dist/esm/theme/shared.mjs.map +1 -0
  741. package/dist/esm/theme/shared.native.js +135 -0
  742. package/dist/esm/theme/shared.native.js.map +1 -0
  743. package/dist/esm/theme/sizeRecipes.mjs +112 -0
  744. package/dist/esm/theme/sizeRecipes.mjs.map +1 -0
  745. package/dist/esm/theme/sizeRecipes.native.js +184 -0
  746. package/dist/esm/theme/sizeRecipes.native.js.map +1 -0
  747. package/dist/esm/theme/subsetThemes.mjs +21 -0
  748. package/dist/esm/theme/subsetThemes.mjs.map +1 -0
  749. package/dist/esm/theme/subsetThemes.native.js +48 -0
  750. package/dist/esm/theme/subsetThemes.native.js.map +1 -0
  751. package/dist/esm/theme/theme.mjs +163 -0
  752. package/dist/esm/theme/theme.mjs.map +1 -0
  753. package/dist/esm/theme/theme.native.js +87 -0
  754. package/dist/esm/theme/theme.native.js.map +1 -0
  755. package/dist/esm/theme/themeValue.mjs +25 -0
  756. package/dist/esm/theme/themeValue.mjs.map +1 -0
  757. package/dist/esm/theme/themeValue.native.js +44 -0
  758. package/dist/esm/theme/themeValue.native.js.map +1 -0
  759. package/dist/esm/theme/tileSizes.mjs +167 -0
  760. package/dist/esm/theme/tileSizes.mjs.map +1 -0
  761. package/dist/esm/theme/tileSizes.native.js +192 -0
  762. package/dist/esm/theme/tileSizes.native.js.map +1 -0
  763. package/dist/esm/theme/touchManipulation.mjs +7 -0
  764. package/dist/esm/theme/touchManipulation.mjs.map +1 -0
  765. package/dist/esm/theme/touchManipulation.native.js +7 -0
  766. package/dist/esm/theme/touchManipulation.native.js.map +1 -0
  767. package/dist/esm/theme/transitionProps.mjs +25 -0
  768. package/dist/esm/theme/transitionProps.mjs.map +1 -0
  769. package/dist/esm/theme/transitionProps.native.js +53 -0
  770. package/dist/esm/theme/transitionProps.native.js.map +1 -0
  771. package/dist/esm/theme/useColorScale.mjs +22 -0
  772. package/dist/esm/theme/useColorScale.mjs.map +1 -0
  773. package/dist/esm/theme/useColorScale.native.js +5 -0
  774. package/dist/esm/theme/useColorScale.native.js.map +1 -0
  775. package/dist/esm/theme/usePresetSwitch.mjs +45 -0
  776. package/dist/esm/theme/usePresetSwitch.mjs.map +1 -0
  777. package/dist/esm/theme/usePresetSwitch.native.js +22 -0
  778. package/dist/esm/theme/usePresetSwitch.native.js.map +1 -0
  779. package/dist/esm/theme/useResolvedKnobs.mjs +111 -0
  780. package/dist/esm/theme/useResolvedKnobs.mjs.map +1 -0
  781. package/dist/esm/theme/useResolvedKnobs.native.js +145 -0
  782. package/dist/esm/theme/useResolvedKnobs.native.js.map +1 -0
  783. package/dist/esm/theme/useSchemePreference.mjs +24 -0
  784. package/dist/esm/theme/useSchemePreference.mjs.map +1 -0
  785. package/dist/esm/theme/useSchemePreference.native.js +52 -0
  786. package/dist/esm/theme/useSchemePreference.native.js.map +1 -0
  787. package/dist/esm/theme/useTheme.mjs +127 -0
  788. package/dist/esm/theme/useTheme.mjs.map +1 -0
  789. package/dist/esm/theme/useTheme.native.js +66 -0
  790. package/dist/esm/theme/useTheme.native.js.map +1 -0
  791. package/dist/esm/theme/useTouchSurface.mjs +8 -0
  792. package/dist/esm/theme/useTouchSurface.mjs.map +1 -0
  793. package/dist/esm/theme/useTouchSurface.native.js +8 -0
  794. package/dist/esm/theme/useTouchSurface.native.js.map +1 -0
  795. package/dist/esm/theme/v3TokenRoles.mjs +39 -0
  796. package/dist/esm/theme/v3TokenRoles.mjs.map +1 -0
  797. package/dist/esm/theme/v3TokenRoles.native.js +39 -0
  798. package/dist/esm/theme/v3TokenRoles.native.js.map +1 -0
  799. package/package.json +56 -12
  800. package/src/theme/scale/activeScale.spec.ts +33 -0
  801. package/src/theme/scale/activeScale.ts +19 -0
  802. package/src/theme/scale/index.ts +6 -1
  803. package/src/theme/subsetThemes.spec.ts +81 -0
  804. package/src/theme/subsetThemes.ts +13 -1
  805. package/types/theme/scale/activeScale.d.ts +8 -0
  806. package/types/theme/scale/activeScale.d.ts.map +1 -1
  807. package/types/theme/scale/index.d.ts +1 -1
  808. package/types/theme/scale/index.d.ts.map +1 -1
  809. package/types/theme/subsetThemes.d.ts +10 -1
  810. package/types/theme/subsetThemes.d.ts.map +1 -1
@@ -0,0 +1,1515 @@
1
+ import { aaTextContrastRatio, measureContrast, minContrastRatio } from "../theme/colorRules.native.js";
2
+ function _instanceof(left, right) {
3
+ "@swc/helpers - instanceof";
4
+
5
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
6
+ return !!right[Symbol.hasInstance](left);
7
+ } else {
8
+ return left instanceof right;
9
+ }
10
+ }
11
+ function captureMatrixSnapshot() {
12
+ var _ref, _ref1, _ref2, _document_querySelector;
13
+ if (typeof document === "undefined") throw new Error("captureMatrixSnapshot needs a DOM");
14
+ var SKIP_TAGS = /* @__PURE__ */new Set(["script", "style", "link", "meta", "head", "title", "noscript", "br", "wbr", "template"]);
15
+ var round = function round2(n) {
16
+ return Math.round(n * 4) / 4;
17
+ };
18
+ var toRect = function toRect2(r) {
19
+ return {
20
+ x: round(r.x),
21
+ y: round(r.y),
22
+ w: round(r.width),
23
+ h: round(r.height)
24
+ };
25
+ };
26
+ function parseCssColor(raw) {
27
+ var s = raw.trim().toLowerCase();
28
+ if (s === "transparent") return [0, 0, 0, 0];
29
+ var m = s.match(/^rgba?\(\s*([\d.]+)[\s,]+([\d.]+)[\s,]+([\d.]+)(?:[\s,/]+([\d.%]+))?\s*\)$/);
30
+ if (!m) return null;
31
+ var a = 1;
32
+ if (m[4] !== void 0) {
33
+ a = m[4].endsWith("%") ? Number.parseFloat(m[4]) / 100 : Number.parseFloat(m[4]);
34
+ }
35
+ return [Number.parseFloat(m[1]), Number.parseFloat(m[2]), Number.parseFloat(m[3]), a];
36
+ }
37
+ function toHex(rgb) {
38
+ var h = function h2(v) {
39
+ return Math.max(0, Math.min(255, Math.round(v))).toString(16).padStart(2, "0");
40
+ };
41
+ return `#${h(rgb[0])}${h(rgb[1])}${h(rgb[2])}`;
42
+ }
43
+ function blend(top, bottom) {
44
+ var a = top[3];
45
+ return [top[0] * a + bottom[0] * (1 - a), top[1] * a + bottom[1] * (1 - a), top[2] * a + bottom[2] * (1 - a)];
46
+ }
47
+ function effectiveBackground(el) {
48
+ var layers = [];
49
+ var overImage = false;
50
+ var node = el;
51
+ var opaqueBase = null;
52
+ while (node) {
53
+ var cs = getComputedStyle(node);
54
+ if (cs.backgroundImage && cs.backgroundImage !== "none") overImage = true;
55
+ if (node.getAttribute("data-mpo-chart-backdrop") === "patterned") overImage = true;
56
+ var parsed = parseCssColor(cs.backgroundColor);
57
+ if (parsed && parsed[3] > 0) {
58
+ if (parsed[3] >= 0.999) {
59
+ opaqueBase = [parsed[0], parsed[1], parsed[2]];
60
+ break;
61
+ }
62
+ layers.push(parsed);
63
+ }
64
+ node = node.parentElement;
65
+ }
66
+ if (!opaqueBase) {
67
+ return {
68
+ hex: "#ffffff",
69
+ resolved: false,
70
+ overImage
71
+ };
72
+ }
73
+ var acc = opaqueBase;
74
+ for (var i = layers.length - 1; i >= 0; i--) {
75
+ acc = blend(layers[i], acc);
76
+ }
77
+ return {
78
+ hex: toHex(acc),
79
+ resolved: !overImage,
80
+ overImage
81
+ };
82
+ }
83
+ function effectiveOpacity(el) {
84
+ var o = 1;
85
+ var node = el;
86
+ while (node) {
87
+ var v = Number.parseFloat(getComputedStyle(node).opacity);
88
+ if (!Number.isNaN(v)) o *= v;
89
+ node = node.parentElement;
90
+ }
91
+ return o;
92
+ }
93
+ var GEOMETRY_PROPS = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "rowGap", "columnGap", "fontSize", "fontWeight", "fontFamily", "lineHeight", "letterSpacing"];
94
+ var root = (_ref = (_ref1 = (_ref2 = (_document_querySelector = document.querySelector("#mpo-matrix-root")) !== null && _document_querySelector !== void 0 ? _document_querySelector : document.querySelector("[data-mpo-matrix-root]")) !== null && _ref2 !== void 0 ? _ref2 : document.querySelector("#storybook-root")) !== null && _ref1 !== void 0 ? _ref1 : document.querySelector("#root")) !== null && _ref !== void 0 ? _ref : document.body;
95
+ var storyRendered = !!root && root.children.length > 0;
96
+ var geometry = [];
97
+ var textSamples = [];
98
+ var iconSamples = [];
99
+ var chartSamples = [];
100
+ var svgRootCount = 0;
101
+ var capturedSvgRoots = /* @__PURE__ */new Set();
102
+ function accessibleName(el) {
103
+ var labelledBy = el.getAttribute("aria-labelledby");
104
+ if (labelledBy) {
105
+ var name = labelledBy.split(/\s+/).map(function (id) {
106
+ var _ref3;
107
+ var _document_getElementById;
108
+ return (_ref3 = (_document_getElementById = document.getElementById(id)) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.textContent) !== null && _ref3 !== void 0 ? _ref3 : "";
109
+ }).join(" ").trim();
110
+ if (name) return name.slice(0, 100);
111
+ }
112
+ var labels = "labels" in el ? el.labels : null;
113
+ var labelText = labels ? Array.from(labels).map(function (label) {
114
+ var _label_textContent;
115
+ return (_label_textContent = label.textContent) !== null && _label_textContent !== void 0 ? _label_textContent : "";
116
+ }).join(" ") : "";
117
+ return (el.getAttribute("aria-label") || labelText || el.getAttribute("title") || el.textContent || "").trim().slice(0, 100);
118
+ }
119
+ function controlName(el) {
120
+ if (el.matches("[data-mp-input-box]")) {
121
+ var input = el.querySelector("input, textarea, select");
122
+ if (input) return accessibleName(input) || input.getAttribute("placeholder") || "input";
123
+ }
124
+ return accessibleName(el);
125
+ }
126
+ function unsupportedCompositing(el) {
127
+ var backgroundInGroup = false;
128
+ for (var node = el; node; node = node.parentElement) {
129
+ var cs = getComputedStyle(node);
130
+ var background = parseCssColor(cs.backgroundColor);
131
+ if (background && background[3] > 0) backgroundInGroup = true;
132
+ if (Number.parseFloat(cs.opacity) < 1 && backgroundInGroup) return true;
133
+ if (cs.mixBlendMode && cs.mixBlendMode !== "normal") return true;
134
+ }
135
+ return false;
136
+ }
137
+ function collectIcon(el, key2, cs) {
138
+ var _ref3;
139
+ var _el_parentElement, _namedControl_parentElement;
140
+ if (el.tagName.toLowerCase() !== "svg" || ((_el_parentElement = el.parentElement) === null || _el_parentElement === void 0 ? void 0 : _el_parentElement.closest("svg"))) return;
141
+ var backdrop = effectiveBackground(el);
142
+ var rect = el.getBoundingClientRect();
143
+ var sample = {
144
+ key: key2,
145
+ context: accessibleName(el),
146
+ status: "conveying",
147
+ background: backdrop.hex,
148
+ backgroundResolved: backdrop.resolved,
149
+ overImage: backdrop.overImage,
150
+ shapeCount: 0,
151
+ distinctPaints: 0,
152
+ rect: toRect(rect)
153
+ };
154
+ iconSamples.push(sample);
155
+ if (cs.visibility === "hidden" || cs.visibility === "collapse" || effectiveOpacity(el) === 0 || rect.width === 0 || rect.height === 0) {
156
+ sample.status = "hidden";
157
+ return;
158
+ }
159
+ if (el.closest('[disabled], [aria-disabled="true"], [data-disabled="true"]')) {
160
+ sample.status = "disabled-control";
161
+ return;
162
+ }
163
+ var controls = 'button, a[href], label, summary, [data-mp-input-box], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="checkbox"], [role="radio"], [role="switch"], [role="option"], [role="combobox"]';
164
+ var namedControl = el.closest(controls);
165
+ while (namedControl && !controlName(namedControl)) namedControl = (_ref3 = (_namedControl_parentElement = namedControl.parentElement) === null || _namedControl_parentElement === void 0 ? void 0 : _namedControl_parentElement.closest(controls)) !== null && _ref3 !== void 0 ? _ref3 : null;
166
+ if (namedControl) sample.context = controlName(namedControl);else if (el.closest('[aria-hidden="true"], [role="presentation"], [role="none"]')) {
167
+ sample.status = "decorative-standalone";
168
+ return;
169
+ }
170
+ if (!backdrop.resolved) {
171
+ sample.unmeasurable = "unresolved-backdrop";
172
+ return;
173
+ }
174
+ if (el.querySelector("use")) {
175
+ sample.unmeasurable = "use-indirection";
176
+ return;
177
+ }
178
+ var paintNodes = [el, ...Array.from(el.querySelectorAll("*"))];
179
+ for (var ancestor = el.parentElement; ancestor; ancestor = ancestor.parentElement) paintNodes.push(ancestor);
180
+ if (paintNodes.some(function (node2) {
181
+ var style2 = getComputedStyle(node2);
182
+ return style2.filter && style2.filter !== "none" || style2.maskImage && style2.maskImage !== "none";
183
+ })) {
184
+ sample.unmeasurable = "masked-or-filtered";
185
+ return;
186
+ }
187
+ var background = [Number.parseInt(backdrop.hex.slice(1, 3), 16), Number.parseInt(backdrop.hex.slice(3, 5), 16), Number.parseInt(backdrop.hex.slice(5, 7), 16)];
188
+ var paints = /* @__PURE__ */new Set();
189
+ var kinds = /* @__PURE__ */new Set();
190
+ var alphaValue = function alphaValue2(raw2) {
191
+ return raw2.endsWith("%") ? Number.parseFloat(raw2) / 100 : Number.parseFloat(raw2);
192
+ };
193
+ var _iteratorNormalCompletion2 = true,
194
+ _didIteratorError2 = false,
195
+ _iteratorError2 = void 0;
196
+ try {
197
+ for (var _iterator2 = Array.from(el.querySelectorAll("path, rect, circle, ellipse, line, polyline, polygon, text, tspan"))[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
198
+ var shape = _step2.value;
199
+ if (shape.closest("defs, clipPath, mask, pattern, marker, symbol")) continue;
200
+ var style = getComputedStyle(shape);
201
+ var hiddenGroup = false;
202
+ for (var node = shape; node && node !== el; node = node.parentElement) {
203
+ if (getComputedStyle(node).display === "none") hiddenGroup = true;
204
+ }
205
+ if (hiddenGroup || style.display === "none" || style.visibility === "hidden" || style.visibility === "collapse" || effectiveOpacity(shape) === 0) continue;
206
+ var bounds = shape.getBBox();
207
+ if (typeof SVGGeometryElement !== "undefined" && _instanceof(shape, SVGGeometryElement) && shape.getTotalLength() === 0) continue;
208
+ sample.shapeCount++;
209
+ if (unsupportedCompositing(shape)) {
210
+ sample.unmeasurable = "unsupported-compositing";
211
+ return;
212
+ }
213
+ if ([style.markerStart, style.markerMid, style.markerEnd].some(function (value) {
214
+ return value && value !== "none";
215
+ })) {
216
+ sample.unmeasurable = "unsupported-paint";
217
+ return;
218
+ }
219
+ for (var _i = 0, _iter = ["fill", "stroke"]; _i < _iter.length; _i++) {
220
+ var kind = _iter[_i];
221
+ if (kind === "fill" && (shape.tagName.toLowerCase() === "line" || bounds.width === 0 || bounds.height === 0)) continue;
222
+ if (kind === "stroke" && !(Number.parseFloat(style.strokeWidth) > 0)) continue;
223
+ var raw = style[kind].trim().toLowerCase();
224
+ if (raw === "none") continue;
225
+ var ink = parseCssColor(raw === "currentcolor" ? style.color : raw);
226
+ if (!ink) {
227
+ sample.unmeasurable = "unsupported-paint";
228
+ return;
229
+ }
230
+ var paintOpacity = alphaValue(kind === "fill" ? style.fillOpacity : style.strokeOpacity);
231
+ ink[3] *= (Number.isFinite(paintOpacity) ? paintOpacity : 1) * effectiveOpacity(shape);
232
+ if (ink[3] === 0) continue;
233
+ paints.add(toHex(blend(ink, background)));
234
+ kinds.add(kind);
235
+ }
236
+ }
237
+ } catch (err) {
238
+ _didIteratorError2 = true;
239
+ _iteratorError2 = err;
240
+ } finally {
241
+ try {
242
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
243
+ _iterator2.return();
244
+ }
245
+ } finally {
246
+ if (_didIteratorError2) {
247
+ throw _iteratorError2;
248
+ }
249
+ }
250
+ }
251
+ sample.distinctPaints = paints.size;
252
+ if (paints.size === 0) sample.unmeasurable = "no-paint";else if (paints.size > 1) sample.unmeasurable = "multicolor";else {
253
+ sample.paint = Array.from(paints)[0];
254
+ sample.paintKinds = Array.from(kinds);
255
+ }
256
+ }
257
+ function collectChart(el, key2) {
258
+ var _el_getAttribute, _el_getAttribute1, _el_getAttribute2, _el_getAttribute3, _sample, _unmeasurable;
259
+ var backdrop = effectiveBackground(el);
260
+ var rawCount = el.getAttribute("data-mpo-chart-datum-count");
261
+ var expected = rawCount !== null && /^\d+$/.test(rawCount) ? Number(rawCount) : -1;
262
+ var owner = el.closest("[data-mpo-chart-owner]");
263
+ var rows = owner ? Array.from(owner.querySelectorAll("[data-mpo-chart-datum-text]")).filter(function (row) {
264
+ return row.tagName.toLowerCase() !== "svg" && row.closest("[data-mpo-chart-owner]") === owner;
265
+ }) : [];
266
+ var visible = function visible2(node2) {
267
+ var style2 = getComputedStyle(node2);
268
+ var rect2 = node2.getBoundingClientRect();
269
+ return style2.visibility !== "hidden" && style2.visibility !== "collapse" && effectiveOpacity(node2) > 0 && (rect2.width > 0 || rect2.height > 0);
270
+ };
271
+ var completeRows = rows.filter(function (row, index3) {
272
+ var _name_textContent, _value_textContent;
273
+ var name = row.querySelector("[data-mpo-chart-datum-label]");
274
+ var value = row.querySelector("[data-mpo-chart-datum-value]");
275
+ return row.getAttribute("data-mpo-chart-datum-text") === String(index3) && name && value && visible(name) && visible(value) && !!((_name_textContent = name.textContent) === null || _name_textContent === void 0 ? void 0 : _name_textContent.trim()) && !!((_value_textContent = value.textContent) === null || _value_textContent === void 0 ? void 0 : _value_textContent.trim());
276
+ });
277
+ var sample = {
278
+ key: key2,
279
+ kind: (_el_getAttribute = el.getAttribute("data-mpo-chart")) !== null && _el_getAttribute !== void 0 ? _el_getAttribute : "",
280
+ context: accessibleName(el),
281
+ label: ((_el_getAttribute1 = el.getAttribute("aria-label")) !== null && _el_getAttribute1 !== void 0 ? _el_getAttribute1 : "").trim(),
282
+ background: backdrop.hex,
283
+ backgroundResolved: backdrop.resolved,
284
+ marks: [],
285
+ labels: [],
286
+ chrome: [],
287
+ unaccountedPaint: [],
288
+ separation: {
289
+ declared: el.getAttribute("data-mpo-chart-separated") === "true"
290
+ },
291
+ datumText: {
292
+ viewId: (_el_getAttribute2 = el.getAttribute("data-mpo-chart-data-view")) !== null && _el_getAttribute2 !== void 0 ? _el_getAttribute2 : void 0,
293
+ expectedValues: (_el_getAttribute3 = el.getAttribute("data-mpo-chart-data-expected")) !== null && _el_getAttribute3 !== void 0 ? _el_getAttribute3 : void 0,
294
+ declared: el.getAttribute("data-mpo-chart-datum-text") === "true",
295
+ expected,
296
+ observed: completeRows.length,
297
+ complete: expected > 0 && rows.length === expected && completeRows.length === expected
298
+ }
299
+ };
300
+ chartSamples.push(sample);
301
+ if (!visible(el)) sample.unmeasurable = "hidden-chart";else if (!backdrop.resolved) sample.unmeasurable = "unresolved-backdrop";else if (el.querySelector("use")) sample.unmeasurable = "use-indirection";
302
+ var marks = Array.from(el.querySelectorAll("[data-mpo-chart-mark]"));
303
+ var certifiedMasks = /* @__PURE__ */new Set();
304
+ if ((sample.kind === "pie" || sample.kind === "donut") && marks.length > 1) {
305
+ var round2 = function round3(value) {
306
+ return Math.round(value * 1e3) / 1e3;
307
+ };
308
+ var pathTokens = function pathTokens2(path) {
309
+ var _path_replace_match;
310
+ return JSON.stringify(((_path_replace_match = path.replace(/^path\(["']?|["']?\)$/g, "").match(/[a-zA-Z]|[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)) !== null && _path_replace_match !== void 0 ? _path_replace_match : []).map(function (token) {
311
+ return Number.isNaN(Number(token)) ? token : Number(token);
312
+ }));
313
+ };
314
+ var point = function point2(radius, angle) {
315
+ return `${round2(radius * Math.cos(angle - Math.PI / 2))},${round2(radius * Math.sin(angle - Math.PI / 2))}`;
316
+ };
317
+ var proofs = marks.map(function (mark2) {
318
+ var _mark_getAttribute2, _mark_getAttribute1;
319
+ if (mark2.tagName.toLowerCase() !== "path" || mark2.getAttribute("data-mpo-chart-mask") !== "eroded-arc-v1") return;
320
+ var values = ((_mark_getAttribute2 = mark2.getAttribute("data-mpo-chart-slice")) !== null && _mark_getAttribute2 !== void 0 ? _mark_getAttribute2 : "").split(",").map(Number);
321
+ if (values.length !== 4 || !values.every(Number.isFinite)) return;
322
+ var [start, end, inner, outer] = values;
323
+ var span = end - start;
324
+ if (start < 0 || end > Math.PI * 2 + 1e-9 || span <= 0 || span >= Math.PI * 2 || inner < 0 || outer <= inner) return;
325
+ var radius = (inner + outer) / 2;
326
+ var projection = Math.min(outer, Math.max(inner, radius * Math.cos(span / 2)));
327
+ var radialDistance = Math.sqrt(Math.max(0, Math.pow(radius, 2) + Math.pow(projection, 2) - 2 * radius * projection * Math.cos(span / 2)));
328
+ if (outer - radius <= 1.002 || radius - inner <= 1.002 || radialDistance <= 1.002) return;
329
+ var large = Number(span >= Math.PI);
330
+ var d = `M${point(outer, start)}A${round2(outer)},${round2(outer)},0,${large},1,${point(outer, end)}` + (inner ? `L${point(inner, end)}A${round2(inner)},${round2(inner)},0,${large},0,${point(inner, start)}Z` : "L0,0Z");
331
+ if (mark2.getAttribute("d") !== d) return;
332
+ var markStyle = getComputedStyle(mark2);
333
+ var paintedD = markStyle.getPropertyValue("d");
334
+ if (paintedD && pathTokens(paintedD) !== pathTokens(d)) return;
335
+ if (markStyle.stroke !== "none") return;
336
+ var reference = /^url\(["']?#([^"')]+)["']?\)$/.exec((_mark_getAttribute1 = mark2.getAttribute("mask")) !== null && _mark_getAttribute1 !== void 0 ? _mark_getAttribute1 : "");
337
+ if (!reference) return;
338
+ var matches = Array.from(document.querySelectorAll("[id]")).filter(function (node3) {
339
+ return node3.id === reference[1];
340
+ });
341
+ var mask = matches[0];
342
+ if (matches.length !== 1 || mask.tagName.toLowerCase() !== "mask" || !el.contains(mask)) return;
343
+ var definitions = mask.parentElement;
344
+ if ((definitions === null || definitions === void 0 ? void 0 : definitions.tagName.toLowerCase()) !== "defs" || definitions.parentElement !== mark2.parentElement) return;
345
+ var computedReference = /^url\(["']?([^"')]+)["']?\)$/.exec(markStyle.maskImage);
346
+ if (!computedReference || !["match-source", "luminance"].includes(markStyle.maskMode)) return;
347
+ try {
348
+ if (new URL(computedReference[1], document.baseURI).href !== new URL(`#${reference[1]}`, document.URL).href) return;
349
+ } catch (unused) {
350
+ return;
351
+ }
352
+ if (mask.getAttribute("maskUnits") !== "userSpaceOnUse" || mask.getAttribute("maskContentUnits") !== "userSpaceOnUse" || getComputedStyle(mask).getPropertyValue("mask-type") !== "luminance") return;
353
+ var bounds2 = {
354
+ x: -outer - 2,
355
+ y: -outer - 2,
356
+ width: (outer + 2) * 2,
357
+ height: (outer + 2) * 2
358
+ };
359
+ if (Object.entries(bounds2).some(function (param) {
360
+ var [name, value] = param;
361
+ return Number(mask.getAttribute(name)) !== value;
362
+ })) return;
363
+ if (mask.children.length !== 1) return;
364
+ var boundary = mask.children[0];
365
+ if (boundary.tagName.toLowerCase() !== "path" || boundary.getAttribute("d") !== d) return;
366
+ for (var _i = 0, _iter = [definitions, mask, boundary]; _i < _iter.length; _i++) {
367
+ var node2 = _iter[_i];
368
+ var style2 = getComputedStyle(node2);
369
+ if (style2.transform !== "none" || style2.filter !== "none" || style2.maskImage !== "none" || style2.clipPath !== "none" || style2.opacity !== "1" || style2.visibility !== "visible" || style2.display === "none") return;
370
+ if ([style2.markerStart, style2.markerMid, style2.markerEnd].some(function (value) {
371
+ return value && value !== "none";
372
+ })) return;
373
+ }
374
+ if (unsupportedCompositing(boundary)) return;
375
+ var boundaryStyle = getComputedStyle(boundary);
376
+ if (boundaryStyle.fill !== "rgb(255, 255, 255)" || boundaryStyle.stroke !== "rgb(0, 0, 0)" || boundaryStyle.fillOpacity !== "1" || boundaryStyle.strokeOpacity !== "1" || Number.parseFloat(boundaryStyle.strokeWidth) !== 2 || boundaryStyle.strokeLinejoin !== "round" || boundaryStyle.strokeLinecap !== "round" || boundaryStyle.paintOrder !== "normal" || boundaryStyle.vectorEffect !== "none" || boundaryStyle.strokeDasharray !== "none") return;
377
+ var boundaryD = boundaryStyle.getPropertyValue("d");
378
+ if (boundaryD && pathTokens(boundaryD) !== pathTokens(d)) return;
379
+ for (var node1 = mark2; node1; node1 = node1.parentElement) {
380
+ var style1 = getComputedStyle(node1);
381
+ if (style1.transform.startsWith("matrix3d") || style1.perspective && style1.perspective !== "none") return;
382
+ }
383
+ var ctm2 = mark2.getScreenCTM();
384
+ if (!ctm2) return;
385
+ var matrix = [ctm2.a, ctm2.b, ctm2.c, ctm2.d, ctm2.e, ctm2.f];
386
+ var firstScale = Math.hypot(ctm2.a + ctm2.d, ctm2.b - ctm2.c);
387
+ var secondScale = Math.hypot(ctm2.a - ctm2.d, ctm2.b + ctm2.c);
388
+ var smallest = Math.abs(firstScale - secondScale) / 2;
389
+ if (!matrix.every(Number.isFinite) || !Number.isFinite(smallest) || smallest <= 0) return;
390
+ var measuredGap = 2 * smallest * window.devicePixelRatio;
391
+ var gap = Math.abs(measuredGap - 2) <= 8 * Number.EPSILON ? 2 : measuredGap;
392
+ return {
393
+ mark: mark2,
394
+ start,
395
+ end,
396
+ inner,
397
+ outer,
398
+ matrix,
399
+ gap
400
+ };
401
+ });
402
+ var first = proofs[0];
403
+ if (first && Math.abs(first.start) < 1e-9 && proofs.every(function (proof2, index3) {
404
+ return proof2 && proof2.inner === first.inner && proof2.outer === first.outer && proof2.matrix.every(function (value, axis) {
405
+ return value === first.matrix[axis];
406
+ }) && Math.abs(proof2.start - (index3 ? proofs[index3 - 1].end : 0)) < 1e-9;
407
+ }) && Math.abs(proofs[proofs.length - 1].end - Math.PI * 2) < 1e-9) {
408
+ var _iteratorNormalCompletion2 = true,
409
+ _didIteratorError2 = false,
410
+ _iteratorError2 = void 0;
411
+ try {
412
+ for (var _iterator2 = proofs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
413
+ var proof = _step2.value;
414
+ certifiedMasks.add(proof.mark);
415
+ }
416
+ } catch (err) {
417
+ _didIteratorError2 = true;
418
+ _iteratorError2 = err;
419
+ } finally {
420
+ try {
421
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
422
+ _iterator2.return();
423
+ }
424
+ } finally {
425
+ if (_didIteratorError2) {
426
+ throw _iteratorError2;
427
+ }
428
+ }
429
+ }
430
+ sample.separation.method = "eroded-arc";
431
+ sample.separation.minimumGapPx = first.gap;
432
+ }
433
+ }
434
+ function paintSample(shape, paintKey, label) {
435
+ var item2 = {
436
+ key: paintKey,
437
+ label,
438
+ background: backdrop.hex
439
+ };
440
+ if (shape.closest("defs, clipPath, mask, pattern, marker, symbol")) return {
441
+ ...item2,
442
+ unmeasurable: "no-paint"
443
+ };
444
+ if (!visible(shape)) return {
445
+ ...item2,
446
+ unmeasurable: "no-paint"
447
+ };
448
+ if (!backdrop.resolved) return {
449
+ ...item2,
450
+ unmeasurable: "unresolved-backdrop"
451
+ };
452
+ for (var node2 = shape; node2; node2 = node2.parentElement) {
453
+ var style2 = getComputedStyle(node2);
454
+ if (style2.filter && style2.filter !== "none" || style2.maskImage && style2.maskImage !== "none" && !(node2 === shape && certifiedMasks.has(shape))) return {
455
+ ...item2,
456
+ unmeasurable: "masked-or-filtered"
457
+ };
458
+ if (style2.clipPath && style2.clipPath !== "none") return {
459
+ ...item2,
460
+ unmeasurable: "unsupported-paint"
461
+ };
462
+ }
463
+ if (unsupportedCompositing(shape)) return {
464
+ ...item2,
465
+ unmeasurable: "unsupported-compositing"
466
+ };
467
+ var style1 = getComputedStyle(shape);
468
+ if ([style1.markerStart, style1.markerMid, style1.markerEnd].some(function (value) {
469
+ return value && value !== "none";
470
+ })) return {
471
+ ...item2,
472
+ unmeasurable: "unsupported-paint"
473
+ };
474
+ var bounds2;
475
+ try {
476
+ bounds2 = shape.getBBox();
477
+ } catch (unused) {
478
+ return {
479
+ ...item2,
480
+ unmeasurable: "unsupported-paint"
481
+ };
482
+ }
483
+ var background = [Number.parseInt(backdrop.hex.slice(1, 3), 16), Number.parseInt(backdrop.hex.slice(3, 5), 16), Number.parseInt(backdrop.hex.slice(5, 7), 16)];
484
+ var paints = /* @__PURE__ */new Set();
485
+ for (var _i = 0, _iter = ["fill", "stroke"]; _i < _iter.length; _i++) {
486
+ var kind = _iter[_i];
487
+ if (kind === "fill" && (shape.tagName.toLowerCase() === "line" || bounds2.width === 0 || bounds2.height === 0)) continue;
488
+ if (kind === "stroke" && !(Number.parseFloat(style1.strokeWidth) > 0)) continue;
489
+ var raw = style1[kind].trim().toLowerCase();
490
+ if (raw === "none") continue;
491
+ var ink = parseCssColor(raw === "currentcolor" ? style1.color : raw);
492
+ if (!ink) return {
493
+ ...item2,
494
+ unmeasurable: "unsupported-paint"
495
+ };
496
+ var alphaRaw = kind === "fill" ? style1.fillOpacity : style1.strokeOpacity;
497
+ var alpha = Number.parseFloat(alphaRaw) / (alphaRaw.endsWith("%") ? 100 : 1);
498
+ ink[3] *= (Number.isFinite(alpha) ? alpha : 1) * effectiveOpacity(shape);
499
+ if (ink[3] > 0) paints.add(toHex(blend(ink, background)));
500
+ }
501
+ if (paints.size !== 1) return {
502
+ ...item2,
503
+ unmeasurable: paints.size ? "multicolor" : "no-paint"
504
+ };
505
+ return {
506
+ ...item2,
507
+ paint: Array.from(paints)[0]
508
+ };
509
+ }
510
+ var _iteratorNormalCompletion12 = true,
511
+ _didIteratorError12 = false,
512
+ _iteratorError12 = void 0;
513
+ try {
514
+ for (var _iterator12 = marks.entries()[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
515
+ var [index2, mark] = _step12.value;
516
+ var _mark_getAttribute;
517
+ var tag = mark.tagName.toLowerCase();
518
+ var item = !["path", "rect", "circle", "ellipse", "line", "polyline", "polygon"].includes(tag) ? {
519
+ key: `${key2}/mark:${index2}`,
520
+ label: (_mark_getAttribute = mark.getAttribute("data-mpo-chart-mark")) !== null && _mark_getAttribute !== void 0 ? _mark_getAttribute : "",
521
+ background: backdrop.hex,
522
+ unmeasurable: "unsupported-paint"
523
+ } : paintSample(mark, `${key2}/mark:${index2}`, mark.getAttribute("data-mpo-chart-mark") || `mark ${index2 + 1}`);
524
+ sample.marks.push(item);
525
+ }
526
+ } catch (err) {
527
+ _didIteratorError12 = true;
528
+ _iteratorError12 = err;
529
+ } finally {
530
+ try {
531
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
532
+ _iterator12.return();
533
+ }
534
+ } finally {
535
+ if (_didIteratorError12) {
536
+ throw _iteratorError12;
537
+ }
538
+ }
539
+ }
540
+ var _iteratorNormalCompletion22 = true,
541
+ _didIteratorError22 = false,
542
+ _iteratorError22 = void 0;
543
+ try {
544
+ for (var _iterator22 = Array.from(el.querySelectorAll("text, tspan")).entries()[Symbol.iterator](), _step22; !(_iteratorNormalCompletion22 = (_step22 = _iterator22.next()).done); _iteratorNormalCompletion22 = true) {
545
+ var [index12, node] = _step22.value;
546
+ var text = Array.from(node.childNodes).filter(function (child2) {
547
+ return child2.nodeType === 3;
548
+ }).map(function (child2) {
549
+ var _child_textContent;
550
+ return (_child_textContent = child2.textContent) !== null && _child_textContent !== void 0 ? _child_textContent : "";
551
+ }).join("").trim();
552
+ if (text) sample.labels.push(paintSample(node, `${key2}/label:${index12}`, text));
553
+ }
554
+ } catch (err) {
555
+ _didIteratorError22 = true;
556
+ _iteratorError22 = err;
557
+ } finally {
558
+ try {
559
+ if (!_iteratorNormalCompletion22 && _iterator22.return != null) {
560
+ _iterator22.return();
561
+ }
562
+ } finally {
563
+ if (_didIteratorError22) {
564
+ throw _iteratorError22;
565
+ }
566
+ }
567
+ }
568
+ var _iteratorNormalCompletion3 = true,
569
+ _didIteratorError3 = false,
570
+ _iteratorError3 = void 0;
571
+ try {
572
+ for (var _iterator3 = Array.from(el.querySelectorAll("path, rect, circle, ellipse, line, polyline, polygon, image, foreignObject, use")).entries()[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
573
+ var [index22, drawable] = _step3.value;
574
+ var _drawable_getScreenCTM;
575
+ if (drawable.hasAttribute("data-mpo-chart-mark")) continue;
576
+ var tag1 = drawable.tagName.toLowerCase();
577
+ var item1 = paintSample(drawable, `${key2}/drawable:${index22}`, `unaccounted ${tag1}`);
578
+ if (item1.unmeasurable === "no-paint") continue;
579
+ var chrome = drawable.getAttribute("data-mpo-chart-chrome");
580
+ var style = getComputedStyle(drawable);
581
+ var rect = drawable.getBoundingClientRect();
582
+ var ctm = (_drawable_getScreenCTM = drawable.getScreenCTM) === null || _drawable_getScreenCTM === void 0 ? void 0 : _drawable_getScreenCTM.call(drawable);
583
+ var squareSum = ctm ? Math.pow(ctm.a, 2) + Math.pow(ctm.b, 2) + Math.pow(ctm.c, 2) + Math.pow(ctm.d, 2) : NaN;
584
+ var determinant = ctm ? ctm.a * ctm.d - ctm.b * ctm.c : NaN;
585
+ var largestScale = Math.sqrt((squareSum + Math.sqrt(Math.max(0, Math.pow(squareSum, 2) - 4 * Math.pow(determinant, 2)))) / 2);
586
+ var screenStrokeWidth = Number.parseFloat(style.strokeWidth) * largestScale;
587
+ var thinAxisLine = (chrome === "axis" || chrome === "grid") && tag1 === "line" && (rect.width === 0 || rect.height === 0) && Number.isFinite(screenStrokeWidth) && screenStrokeWidth <= 1 && screenStrokeWidth > 0 && !item1.unmeasurable;
588
+ if (thinAxisLine) sample.chrome.push({
589
+ ...item1,
590
+ label: `${chrome} line`
591
+ });else sample.unaccountedPaint.push({
592
+ ...item1,
593
+ unmeasurable: "unsupported-paint"
594
+ });
595
+ }
596
+ } catch (err) {
597
+ _didIteratorError3 = true;
598
+ _iteratorError3 = err;
599
+ } finally {
600
+ try {
601
+ if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
602
+ _iterator3.return();
603
+ }
604
+ } finally {
605
+ if (_didIteratorError3) {
606
+ throw _iteratorError3;
607
+ }
608
+ }
609
+ }
610
+ if (sample.kind === "bar" && marks.length > 0 && marks.every(function (mark2, index3) {
611
+ return (
612
+ // A bar path that declares its box (value-end rounding, MPO-56)
613
+ // paints inside that box just as a rect does.
614
+ (mark2.tagName.toLowerCase() === "rect" || mark2.tagName.toLowerCase() === "path" && mark2.hasAttribute("data-mpo-chart-bar")) && getComputedStyle(mark2).stroke === "none" && !sample.marks[index3].unmeasurable
615
+ );
616
+ })) {
617
+ var minimumGapPx = Infinity;
618
+ var bounds = marks.map(function (mark2) {
619
+ return mark2.getBoundingClientRect();
620
+ });
621
+ for (var i = 0; i < bounds.length; i++) for (var j = i + 1; j < bounds.length; j++) {
622
+ var a = bounds[i];
623
+ var b = bounds[j];
624
+ var dx = Math.max(0, a.left - b.right, b.left - a.right);
625
+ var dy = Math.max(0, a.top - b.bottom, b.top - a.bottom);
626
+ minimumGapPx = Math.min(minimumGapPx, Math.hypot(dx, dy) * window.devicePixelRatio);
627
+ }
628
+ sample.separation.method = "rect-bounds";
629
+ sample.separation.minimumGapPx = Number.isFinite(minimumGapPx) ? minimumGapPx : 2;
630
+ }
631
+ if (sample.kind === "area") (_unmeasurable = (_sample = sample).unmeasurable) !== null && _unmeasurable !== void 0 ? _unmeasurable : _sample.unmeasurable = "unsupported-overlap";
632
+ }
633
+ function collectText(el, key2, cs) {
634
+ var directText = [];
635
+ var _iteratorNormalCompletion2 = true,
636
+ _didIteratorError2 = false,
637
+ _iteratorError2 = void 0;
638
+ try {
639
+ for (var _iterator2 = Array.from(el.childNodes)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
640
+ var child2 = _step2.value;
641
+ var _child_textContent;
642
+ if (child2.nodeType === 3 && ((_child_textContent = child2.textContent) !== null && _child_textContent !== void 0 ? _child_textContent : "").trim().length > 0) {
643
+ directText.push(child2);
644
+ }
645
+ }
646
+ } catch (err) {
647
+ _didIteratorError2 = true;
648
+ _iteratorError2 = err;
649
+ } finally {
650
+ try {
651
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
652
+ _iterator2.return();
653
+ }
654
+ } finally {
655
+ if (_didIteratorError2) {
656
+ throw _iteratorError2;
657
+ }
658
+ }
659
+ }
660
+ if (directText.length === 0) return void 0;
661
+ var range = document.createRange();
662
+ range.setStartBefore(directText[0]);
663
+ range.setEndAfter(directText[directText.length - 1]);
664
+ var textRect = range.getBoundingClientRect();
665
+ if (!(textRect.width > 0 && textRect.height > 0)) return void 0;
666
+ var opacity = effectiveOpacity(el);
667
+ if (opacity > 0.05 && cs.visibility !== "hidden") {
668
+ var ink = parseCssColor(cs.color);
669
+ var backdrop = effectiveBackground(el);
670
+ if (ink) {
671
+ var _parseCssColor, _directText__textContent;
672
+ var baseParsed = (_parseCssColor = parseCssColor(backdrop.hex)) !== null && _parseCssColor !== void 0 ? _parseCssColor : [255, 255, 255, 1];
673
+ var inkOpaque = toHex(ink[3] >= 0.999 ? [ink[0], ink[1], ink[2]] : blend(ink, [baseParsed[0], baseParsed[1], baseParsed[2]]));
674
+ textSamples.push({
675
+ key: key2,
676
+ text: ((_directText__textContent = directText[0].textContent) !== null && _directText__textContent !== void 0 ? _directText__textContent : "").trim().slice(0, 60),
677
+ color: inkOpaque,
678
+ background: backdrop.hex,
679
+ backgroundResolved: backdrop.resolved,
680
+ overImage: backdrop.overImage,
681
+ fontSizePx: Number.parseFloat(cs.fontSize) || 0,
682
+ fontWeightNum: Number.parseFloat(cs.fontWeight) || 400,
683
+ rect: toRect(textRect)
684
+ });
685
+ }
686
+ }
687
+ return toRect(textRect);
688
+ }
689
+ function boxedChildren(el, path) {
690
+ var out = [];
691
+ var counts2 = {};
692
+ var _iteratorNormalCompletion2 = true,
693
+ _didIteratorError2 = false,
694
+ _iteratorError2 = void 0;
695
+ try {
696
+ for (var _iterator2 = Array.from(el.children)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
697
+ var child2 = _step2.value;
698
+ var tag = child2.tagName.toLowerCase();
699
+ if (SKIP_TAGS.has(tag)) continue;
700
+ if (child2.namespaceURI === "http://www.w3.org/2000/svg" && tag !== "svg") continue;
701
+ var cs = getComputedStyle(child2);
702
+ if (cs.display === "none") continue;
703
+ if (cs.display === "contents") {
704
+ var _counts_tag;
705
+ var index2 = (_counts_tag = counts2[tag]) !== null && _counts_tag !== void 0 ? _counts_tag : 0;
706
+ counts2[tag] = index2 + 1;
707
+ collectText(child2, `${path}/${tag}:${index2}~contents`, cs);
708
+ var _iteratorNormalCompletion12 = true,
709
+ _didIteratorError12 = false,
710
+ _iteratorError12 = void 0;
711
+ try {
712
+ for (var _iterator12 = boxedChildren(child2, path)[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
713
+ var grandchild = _step12.value;
714
+ out.push(grandchild);
715
+ }
716
+ } catch (err) {
717
+ _didIteratorError12 = true;
718
+ _iteratorError12 = err;
719
+ } finally {
720
+ try {
721
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
722
+ _iterator12.return();
723
+ }
724
+ } finally {
725
+ if (_didIteratorError12) {
726
+ throw _iteratorError12;
727
+ }
728
+ }
729
+ }
730
+ continue;
731
+ }
732
+ out.push(child2);
733
+ }
734
+ } catch (err) {
735
+ _didIteratorError2 = true;
736
+ _iteratorError2 = err;
737
+ } finally {
738
+ try {
739
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
740
+ _iterator2.return();
741
+ }
742
+ } finally {
743
+ if (_didIteratorError2) {
744
+ throw _iteratorError2;
745
+ }
746
+ }
747
+ }
748
+ return out;
749
+ }
750
+ function visit(el, path) {
751
+ var _el_parentElement;
752
+ var tag = el.tagName.toLowerCase();
753
+ var cs = getComputedStyle(el);
754
+ var rect = el.getBoundingClientRect();
755
+ var props = {};
756
+ var _iteratorNormalCompletion2 = true,
757
+ _didIteratorError2 = false,
758
+ _iteratorError2 = void 0;
759
+ try {
760
+ for (var _iterator2 = GEOMETRY_PROPS[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
761
+ var prop = _step2.value;
762
+ props[prop] = cs[prop];
763
+ }
764
+ } catch (err) {
765
+ _didIteratorError2 = true;
766
+ _iteratorError2 = err;
767
+ } finally {
768
+ try {
769
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
770
+ _iterator2.return();
771
+ }
772
+ } finally {
773
+ if (_didIteratorError2) {
774
+ throw _iteratorError2;
775
+ }
776
+ }
777
+ }
778
+ var entry = {
779
+ key: path,
780
+ tag,
781
+ rect: toRect(rect),
782
+ props
783
+ };
784
+ var textRect = collectText(el, path, cs);
785
+ if (textRect) entry.textRect = textRect;
786
+ if (tag === "svg" && !((_el_parentElement = el.parentElement) === null || _el_parentElement === void 0 ? void 0 : _el_parentElement.closest("svg"))) {
787
+ capturedSvgRoots.add(el);
788
+ if (el.hasAttribute("data-mpo-chart")) collectChart(el, path);else collectIcon(el, path, cs);
789
+ }
790
+ geometry.push(entry);
791
+ var counts2 = {};
792
+ var _iteratorNormalCompletion12 = true,
793
+ _didIteratorError12 = false,
794
+ _iteratorError12 = void 0;
795
+ try {
796
+ for (var _iterator12 = boxedChildren(el, path)[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {
797
+ var child2 = _step12.value;
798
+ var _counts_childTag2;
799
+ var childTag2 = child2.tagName.toLowerCase();
800
+ var index2 = (_counts_childTag2 = counts2[childTag2]) !== null && _counts_childTag2 !== void 0 ? _counts_childTag2 : 0;
801
+ counts2[childTag2] = index2 + 1;
802
+ visit(child2, `${path}/${childTag2}:${index2}`);
803
+ }
804
+ } catch (err) {
805
+ _didIteratorError12 = true;
806
+ _iteratorError12 = err;
807
+ } finally {
808
+ try {
809
+ if (!_iteratorNormalCompletion12 && _iterator12.return != null) {
810
+ _iterator12.return();
811
+ }
812
+ } finally {
813
+ if (_didIteratorError12) {
814
+ throw _iteratorError12;
815
+ }
816
+ }
817
+ }
818
+ }
819
+ if (root) {
820
+ var counts = {};
821
+ var _iteratorNormalCompletion = true,
822
+ _didIteratorError = false,
823
+ _iteratorError = void 0;
824
+ try {
825
+ for (var _iterator = boxedChildren(root, "")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
826
+ var child = _step.value;
827
+ var _counts_childTag;
828
+ var childTag = child.tagName.toLowerCase();
829
+ var index = (_counts_childTag = counts[childTag]) !== null && _counts_childTag !== void 0 ? _counts_childTag : 0;
830
+ counts[childTag] = index + 1;
831
+ visit(child, `${childTag}:${index}`);
832
+ }
833
+ } catch (err) {
834
+ _didIteratorError = true;
835
+ _iteratorError = err;
836
+ } finally {
837
+ try {
838
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
839
+ _iterator.return();
840
+ }
841
+ } finally {
842
+ if (_didIteratorError) {
843
+ throw _iteratorError;
844
+ }
845
+ }
846
+ }
847
+ var svgRoots = Array.from(root.querySelectorAll("svg")).filter(function (svg2) {
848
+ var _svg_parentElement;
849
+ return !((_svg_parentElement = svg2.parentElement) === null || _svg_parentElement === void 0 ? void 0 : _svg_parentElement.closest("svg"));
850
+ });
851
+ svgRootCount = svgRoots.length;
852
+ var _iteratorNormalCompletion1 = true,
853
+ _didIteratorError1 = false,
854
+ _iteratorError1 = void 0;
855
+ try {
856
+ for (var _iterator1 = svgRoots.entries()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
857
+ var [index1, svg] = _step1.value;
858
+ if (capturedSvgRoots.has(svg)) continue;
859
+ var key = `unpainted-svg:${index1}`;
860
+ if (svg.hasAttribute("data-mpo-chart")) collectChart(svg, key);else collectIcon(svg, key, getComputedStyle(svg));
861
+ }
862
+ } catch (err) {
863
+ _didIteratorError1 = true;
864
+ _iteratorError1 = err;
865
+ } finally {
866
+ try {
867
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
868
+ _iterator1.return();
869
+ }
870
+ } finally {
871
+ if (_didIteratorError1) {
872
+ throw _iteratorError1;
873
+ }
874
+ }
875
+ }
876
+ }
877
+ return {
878
+ storyRendered,
879
+ geometry,
880
+ textSamples,
881
+ iconSamples,
882
+ chartSamples,
883
+ svgRootCount
884
+ };
885
+ }
886
+ function diffGeometry(before, after) {
887
+ var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
888
+ var _options_epsilonPx;
889
+ var epsilon = (_options_epsilonPx = options.epsilonPx) !== null && _options_epsilonPx !== void 0 ? _options_epsilonPx : 0;
890
+ var byKey = new Map(before.geometry.map(function (g) {
891
+ return [g.key, g];
892
+ }));
893
+ var seen = /* @__PURE__ */new Set();
894
+ var moves = [];
895
+ var addedKeys = [];
896
+ var rectDiffers = function rectDiffers2(a, b) {
897
+ return Math.abs(a.x - b.x) > epsilon || Math.abs(a.y - b.y) > epsilon || Math.abs(a.w - b.w) > epsilon || Math.abs(a.h - b.h) > epsilon;
898
+ };
899
+ var formatRect = function formatRect2(r) {
900
+ return `${r.x},${r.y} ${r.w}x${r.h}`;
901
+ };
902
+ var _iteratorNormalCompletion = true,
903
+ _didIteratorError = false,
904
+ _iteratorError = void 0;
905
+ try {
906
+ for (var _iterator = after.geometry[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
907
+ var curr = _step.value;
908
+ var prev = byKey.get(curr.key);
909
+ if (!prev) {
910
+ addedKeys.push(curr.key);
911
+ continue;
912
+ }
913
+ seen.add(curr.key);
914
+ if (rectDiffers(prev.rect, curr.rect)) {
915
+ moves.push({
916
+ key: curr.key,
917
+ property: "rect",
918
+ before: formatRect(prev.rect),
919
+ after: formatRect(curr.rect)
920
+ });
921
+ }
922
+ if (prev.textRect && curr.textRect && rectDiffers(prev.textRect, curr.textRect)) {
923
+ moves.push({
924
+ key: curr.key,
925
+ property: "textRect",
926
+ before: formatRect(prev.textRect),
927
+ after: formatRect(curr.textRect)
928
+ });
929
+ } else if (!!prev.textRect !== !!curr.textRect) {
930
+ moves.push({
931
+ key: curr.key,
932
+ property: "textRect",
933
+ before: prev.textRect ? formatRect(prev.textRect) : "(none)",
934
+ after: curr.textRect ? formatRect(curr.textRect) : "(none)"
935
+ });
936
+ }
937
+ var _iteratorNormalCompletion1 = true,
938
+ _didIteratorError1 = false,
939
+ _iteratorError1 = void 0;
940
+ try {
941
+ for (var _iterator1 = Object.keys(prev.props)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
942
+ var prop = _step1.value;
943
+ if (prev.props[prop] !== curr.props[prop]) {
944
+ var _curr_props_prop;
945
+ moves.push({
946
+ key: curr.key,
947
+ property: prop,
948
+ before: prev.props[prop],
949
+ after: (_curr_props_prop = curr.props[prop]) !== null && _curr_props_prop !== void 0 ? _curr_props_prop : "(missing)"
950
+ });
951
+ }
952
+ }
953
+ } catch (err) {
954
+ _didIteratorError1 = true;
955
+ _iteratorError1 = err;
956
+ } finally {
957
+ try {
958
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
959
+ _iterator1.return();
960
+ }
961
+ } finally {
962
+ if (_didIteratorError1) {
963
+ throw _iteratorError1;
964
+ }
965
+ }
966
+ }
967
+ }
968
+ } catch (err) {
969
+ _didIteratorError = true;
970
+ _iteratorError = err;
971
+ } finally {
972
+ try {
973
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
974
+ _iterator.return();
975
+ }
976
+ } finally {
977
+ if (_didIteratorError) {
978
+ throw _iteratorError;
979
+ }
980
+ }
981
+ }
982
+ var removedKeys = before.geometry.filter(function (g) {
983
+ return !seen.has(g.key);
984
+ }).map(function (g) {
985
+ return g.key;
986
+ });
987
+ return {
988
+ identical: moves.length === 0 && addedKeys.length === 0 && removedKeys.length === 0,
989
+ removedKeys,
990
+ addedKeys,
991
+ moves
992
+ };
993
+ }
994
+ function evaluateTextContrast(samples) {
995
+ var measured = 0;
996
+ var unmeasurable = 0;
997
+ var violations = [];
998
+ var _iteratorNormalCompletion = true,
999
+ _didIteratorError = false,
1000
+ _iteratorError = void 0;
1001
+ try {
1002
+ for (var _iterator = samples[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1003
+ var sample = _step.value;
1004
+ if (!sample.backgroundResolved) {
1005
+ unmeasurable++;
1006
+ continue;
1007
+ }
1008
+ var large = sample.fontSizePx >= 24 || sample.fontSizePx >= 18.66 && sample.fontWeightNum >= 700;
1009
+ var required = large ? minContrastRatio : aaTextContrastRatio;
1010
+ try {
1011
+ var report = measureContrast({
1012
+ foreground: sample.color,
1013
+ background: sample.background,
1014
+ floor: required,
1015
+ label: sample.key
1016
+ });
1017
+ measured++;
1018
+ if (!report.pass) {
1019
+ violations.push({
1020
+ key: sample.key,
1021
+ text: sample.text,
1022
+ color: report.foreground,
1023
+ background: report.background,
1024
+ ratio: report.ratio,
1025
+ required: report.floor
1026
+ });
1027
+ }
1028
+ } catch (unused) {
1029
+ unmeasurable++;
1030
+ }
1031
+ }
1032
+ } catch (err) {
1033
+ _didIteratorError = true;
1034
+ _iteratorError = err;
1035
+ } finally {
1036
+ try {
1037
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1038
+ _iterator.return();
1039
+ }
1040
+ } finally {
1041
+ if (_didIteratorError) {
1042
+ throw _iteratorError;
1043
+ }
1044
+ }
1045
+ }
1046
+ return {
1047
+ measured,
1048
+ unmeasurable,
1049
+ violations
1050
+ };
1051
+ }
1052
+ function evaluateIconContrast(samples) {
1053
+ var result = {
1054
+ ok: true,
1055
+ candidates: 0,
1056
+ measured: 0,
1057
+ violations: [],
1058
+ unverified: [],
1059
+ excludedDisabled: 0,
1060
+ excludedDecorative: 0,
1061
+ excludedHidden: 0
1062
+ };
1063
+ var _iteratorNormalCompletion = true,
1064
+ _didIteratorError = false,
1065
+ _iteratorError = void 0;
1066
+ try {
1067
+ for (var _iterator = samples[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1068
+ var sample = _step.value;
1069
+ var _sample_unmeasurable;
1070
+ if (sample.status === "disabled-control") {
1071
+ result.excludedDisabled++;
1072
+ continue;
1073
+ }
1074
+ if (sample.status === "decorative-standalone") {
1075
+ result.excludedDecorative++;
1076
+ continue;
1077
+ }
1078
+ if (sample.status === "hidden") {
1079
+ result.excludedHidden++;
1080
+ continue;
1081
+ }
1082
+ result.candidates++;
1083
+ var reason = (_sample_unmeasurable = sample.unmeasurable) !== null && _sample_unmeasurable !== void 0 ? _sample_unmeasurable : !sample.backgroundResolved ? "unresolved-backdrop" : !sample.paint ? "no-paint" : void 0;
1084
+ if (reason) {
1085
+ result.unverified.push({
1086
+ key: sample.key,
1087
+ context: sample.context,
1088
+ reason
1089
+ });
1090
+ continue;
1091
+ }
1092
+ try {
1093
+ var contrast = measureContrast({
1094
+ foreground: sample.paint,
1095
+ background: sample.background,
1096
+ floor: minContrastRatio,
1097
+ label: sample.key
1098
+ });
1099
+ result.measured++;
1100
+ if (!contrast.pass) result.violations.push({
1101
+ key: sample.key,
1102
+ context: sample.context,
1103
+ paint: contrast.foreground,
1104
+ background: contrast.background,
1105
+ ratio: contrast.ratio,
1106
+ required: contrast.floor
1107
+ });
1108
+ } catch (unused) {
1109
+ result.unverified.push({
1110
+ key: sample.key,
1111
+ context: sample.context,
1112
+ reason: "unsupported-paint"
1113
+ });
1114
+ }
1115
+ }
1116
+ } catch (err) {
1117
+ _didIteratorError = true;
1118
+ _iteratorError = err;
1119
+ } finally {
1120
+ try {
1121
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1122
+ _iterator.return();
1123
+ }
1124
+ } finally {
1125
+ if (_didIteratorError) {
1126
+ throw _iteratorError;
1127
+ }
1128
+ }
1129
+ }
1130
+ result.ok = result.violations.length === 0 && result.unverified.length === 0;
1131
+ return result;
1132
+ }
1133
+ function iconContrastSignatures(result) {
1134
+ return [...result.violations.map(function (item) {
1135
+ return `${item.key} (${item.context}) icon ${item.paint} on ${item.background} = ${item.ratio}:1 (floor ${item.required})`;
1136
+ }), ...result.unverified.map(function (item) {
1137
+ return `${item.key} (${item.context}) icon UNVERIFIED: ${item.reason}`;
1138
+ })];
1139
+ }
1140
+ function evaluateChartProof(samples) {
1141
+ var result = {
1142
+ ok: true,
1143
+ candidates: samples.length,
1144
+ measured: 0,
1145
+ marksMeasured: 0,
1146
+ labelsMeasured: 0,
1147
+ byKind: /* @__PURE__ */Object.create(null),
1148
+ violations: [],
1149
+ unverified: []
1150
+ };
1151
+ var _iteratorNormalCompletion = true,
1152
+ _didIteratorError = false,
1153
+ _iteratorError = void 0;
1154
+ try {
1155
+ var _loop = function () {
1156
+ var sample = _step.value;
1157
+ var _result_byKind_sample_kind, _sample_unaccountedPaint;
1158
+ result.byKind[sample.kind] = ((_result_byKind_sample_kind = result.byKind[sample.kind]) !== null && _result_byKind_sample_kind !== void 0 ? _result_byKind_sample_kind : 0) + 1;
1159
+ var unverified = function unverified2(reason) {
1160
+ var key = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : sample.key,
1161
+ context2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : sample.context;
1162
+ return result.unverified.push({
1163
+ key,
1164
+ context: context2,
1165
+ reason
1166
+ });
1167
+ };
1168
+ if (!["bar", "pie", "donut", "line", "area"].includes(sample.kind)) {
1169
+ unverified("unknown-kind");
1170
+ return "continue";
1171
+ }
1172
+ if (!sample.label.trim()) result.violations.push({
1173
+ key: sample.key,
1174
+ context: sample.context,
1175
+ rule: "missing-label"
1176
+ });
1177
+ if (sample.unmeasurable) unverified(sample.unmeasurable);else if (!sample.backgroundResolved) unverified("unresolved-backdrop");
1178
+ if (!sample.marks.length) unverified("no-marks");
1179
+ var _iteratorNormalCompletion2 = true,
1180
+ _didIteratorError2 = false,
1181
+ _iteratorError2 = void 0;
1182
+ try {
1183
+ for (var _iterator2 = ((_sample_unaccountedPaint = sample.unaccountedPaint) !== null && _sample_unaccountedPaint !== void 0 ? _sample_unaccountedPaint : [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion2 = (_step1 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
1184
+ var item = _step1.value;
1185
+ unverified("unsupported-paint", item.key, `${sample.context}: ${item.label}`);
1186
+ }
1187
+ } catch (err) {
1188
+ _didIteratorError2 = true;
1189
+ _iteratorError2 = err;
1190
+ } finally {
1191
+ try {
1192
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
1193
+ _iterator2.return();
1194
+ }
1195
+ } finally {
1196
+ if (_didIteratorError2) {
1197
+ throw _iteratorError2;
1198
+ }
1199
+ }
1200
+ }
1201
+ if (!sample.datumText.declared || !sample.datumText.complete || sample.datumText.expected <= 0 || sample.datumText.observed !== sample.datumText.expected) unverified("incomplete-datum-text", sample.key, sample.datumText.failure ? `${sample.context}: ${sample.datumText.failure}` : sample.context);
1202
+ var compare = function compare2(paint, background, key, context2, rule, floor) {
1203
+ try {
1204
+ var measured = measureContrast({
1205
+ foreground: paint,
1206
+ background,
1207
+ floor,
1208
+ label: key
1209
+ });
1210
+ if (!measured.pass) result.violations.push({
1211
+ key,
1212
+ context: context2,
1213
+ rule,
1214
+ paint: measured.foreground,
1215
+ background: measured.background,
1216
+ ratio: measured.ratio,
1217
+ required: measured.floor
1218
+ });
1219
+ return true;
1220
+ } catch (unused) {
1221
+ unverified("unsupported-paint", key, context2);
1222
+ return false;
1223
+ }
1224
+ };
1225
+ var _iteratorNormalCompletion1 = true,
1226
+ _didIteratorError1 = false,
1227
+ _iteratorError1 = void 0;
1228
+ try {
1229
+ for (var _iterator1 = sample.marks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion1 = (_step2 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
1230
+ var mark = _step2.value;
1231
+ var _mark_unmeasurable;
1232
+ var context = `${sample.context}: ${mark.label}`;
1233
+ if (mark.unmeasurable || !mark.paint) unverified((_mark_unmeasurable = mark.unmeasurable) !== null && _mark_unmeasurable !== void 0 ? _mark_unmeasurable : "no-paint", mark.key, context);else if (compare(mark.paint, mark.background, mark.key, context, "mark-backdrop", minContrastRatio)) result.marksMeasured++;
1234
+ }
1235
+ } catch (err) {
1236
+ _didIteratorError1 = true;
1237
+ _iteratorError1 = err;
1238
+ } finally {
1239
+ try {
1240
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
1241
+ _iterator1.return();
1242
+ }
1243
+ } finally {
1244
+ if (_didIteratorError1) {
1245
+ throw _iteratorError1;
1246
+ }
1247
+ }
1248
+ }
1249
+ var _iteratorNormalCompletion22 = true,
1250
+ _didIteratorError22 = false,
1251
+ _iteratorError22 = void 0;
1252
+ try {
1253
+ for (var _iterator22 = sample.labels[Symbol.iterator](), _step3; !(_iteratorNormalCompletion22 = (_step3 = _iterator22.next()).done); _iteratorNormalCompletion22 = true) {
1254
+ var label = _step3.value;
1255
+ var _label_unmeasurable;
1256
+ var context1 = `${sample.context}: ${label.label}`;
1257
+ if (label.unmeasurable || !label.paint) unverified((_label_unmeasurable = label.unmeasurable) !== null && _label_unmeasurable !== void 0 ? _label_unmeasurable : "no-paint", label.key, context1);else if (compare(label.paint, label.background, label.key, context1, "axis-text", aaTextContrastRatio)) result.labelsMeasured++;
1258
+ }
1259
+ } catch (err) {
1260
+ _didIteratorError22 = true;
1261
+ _iteratorError22 = err;
1262
+ } finally {
1263
+ try {
1264
+ if (!_iteratorNormalCompletion22 && _iterator22.return != null) {
1265
+ _iterator22.return();
1266
+ }
1267
+ } finally {
1268
+ if (_didIteratorError22) {
1269
+ throw _iteratorError22;
1270
+ }
1271
+ }
1272
+ }
1273
+ var separated = (sample.kind === "bar" && sample.separation.method === "rect-bounds" || (sample.kind === "pie" || sample.kind === "donut") && sample.separation.method === "eroded-arc") && Number.isFinite(sample.separation.minimumGapPx) && sample.separation.minimumGapPx >= 2;
1274
+ if (sample.kind === "bar" && !separated) unverified("unverified-separation");
1275
+ if (sample.kind === "pie" || sample.kind === "donut") {
1276
+ if (sample.separation.declared && !separated) unverified("unverified-separation");
1277
+ if (sample.marks.length > 1 && !separated) {
1278
+ for (var i = 0; i < sample.marks.length; i++) {
1279
+ var first = sample.marks[i];
1280
+ var second = sample.marks[(i + 1) % sample.marks.length];
1281
+ if (sample.marks.length === 2 && i === 1) continue;
1282
+ if (first.paint && second.paint && !first.unmeasurable && !second.unmeasurable) compare(first.paint, second.paint, `${first.key}~${second.key}`, `${sample.context}: ${first.label} / ${second.label}`, "adjacent-pair", minContrastRatio);
1283
+ }
1284
+ }
1285
+ }
1286
+ if (!sample.unmeasurable && sample.backgroundResolved && sample.marks.length > 0 && sample.marks.every(function (mark2) {
1287
+ return mark2.paint && !mark2.unmeasurable;
1288
+ })) result.measured++;
1289
+ };
1290
+ for (var _iterator = samples[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
1291
+ } catch (err) {
1292
+ _didIteratorError = true;
1293
+ _iteratorError = err;
1294
+ } finally {
1295
+ try {
1296
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1297
+ _iterator.return();
1298
+ }
1299
+ } finally {
1300
+ if (_didIteratorError) {
1301
+ throw _iteratorError;
1302
+ }
1303
+ }
1304
+ }
1305
+ result.ok = result.violations.length === 0 && result.unverified.length === 0;
1306
+ return result;
1307
+ }
1308
+ function chartProofSignatures(result) {
1309
+ return [...result.violations.map(function (item) {
1310
+ return `${item.key} (${item.context}) chart ${item.rule}${item.ratio === void 0 ? "" : ` ${item.paint} on ${item.background} = ${item.ratio}:1 (floor ${item.required})`}`;
1311
+ }), ...result.unverified.map(function (item) {
1312
+ return `${item.key} (${item.context}) chart UNVERIFIED: ${item.reason}`;
1313
+ })];
1314
+ }
1315
+ function auditSignatures(violations) {
1316
+ var out = [];
1317
+ var _iteratorNormalCompletion = true,
1318
+ _didIteratorError = false,
1319
+ _iteratorError = void 0;
1320
+ try {
1321
+ for (var _iterator = violations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1322
+ var element = _step.value;
1323
+ var _iteratorNormalCompletion1 = true,
1324
+ _didIteratorError1 = false,
1325
+ _iteratorError1 = void 0;
1326
+ try {
1327
+ for (var _iterator1 = element.violations[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
1328
+ var violation = _step1.value;
1329
+ out.push(`${element.key ? `[${element.key}] ` : ""}${element.label} :: ${violation}`);
1330
+ }
1331
+ } catch (err) {
1332
+ _didIteratorError1 = true;
1333
+ _iteratorError1 = err;
1334
+ } finally {
1335
+ try {
1336
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
1337
+ _iterator1.return();
1338
+ }
1339
+ } finally {
1340
+ if (_didIteratorError1) {
1341
+ throw _iteratorError1;
1342
+ }
1343
+ }
1344
+ }
1345
+ }
1346
+ } catch (err) {
1347
+ _didIteratorError = true;
1348
+ _iteratorError = err;
1349
+ } finally {
1350
+ try {
1351
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1352
+ _iterator.return();
1353
+ }
1354
+ } finally {
1355
+ if (_didIteratorError) {
1356
+ throw _iteratorError;
1357
+ }
1358
+ }
1359
+ }
1360
+ return out;
1361
+ }
1362
+ function newEntries(before, after) {
1363
+ var _remaining_get;
1364
+ var remaining = /* @__PURE__ */new Map();
1365
+ var _iteratorNormalCompletion = true,
1366
+ _didIteratorError = false,
1367
+ _iteratorError = void 0;
1368
+ try {
1369
+ for (var _iterator = before[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1370
+ var entry = _step.value;
1371
+ remaining.set(entry, ((_remaining_get = remaining.get(entry)) !== null && _remaining_get !== void 0 ? _remaining_get : 0) + 1);
1372
+ }
1373
+ } catch (err) {
1374
+ _didIteratorError = true;
1375
+ _iteratorError = err;
1376
+ } finally {
1377
+ try {
1378
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1379
+ _iterator.return();
1380
+ }
1381
+ } finally {
1382
+ if (_didIteratorError) {
1383
+ throw _iteratorError;
1384
+ }
1385
+ }
1386
+ }
1387
+ var added = [];
1388
+ var _iteratorNormalCompletion1 = true,
1389
+ _didIteratorError1 = false,
1390
+ _iteratorError1 = void 0;
1391
+ try {
1392
+ for (var _iterator1 = after[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
1393
+ var entry1 = _step1.value;
1394
+ var _remaining_get1;
1395
+ var count = (_remaining_get1 = remaining.get(entry1)) !== null && _remaining_get1 !== void 0 ? _remaining_get1 : 0;
1396
+ if (count > 0) remaining.set(entry1, count - 1);else added.push(entry1);
1397
+ }
1398
+ } catch (err) {
1399
+ _didIteratorError1 = true;
1400
+ _iteratorError1 = err;
1401
+ } finally {
1402
+ try {
1403
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
1404
+ _iterator1.return();
1405
+ }
1406
+ } finally {
1407
+ if (_didIteratorError1) {
1408
+ throw _iteratorError1;
1409
+ }
1410
+ }
1411
+ }
1412
+ return added;
1413
+ }
1414
+ function offScaleIdentity(signature) {
1415
+ return signature.replace(/-?\d+(?:\.\d+)?px/g, "#px").replace(/(inlineColor: \w+=)"[^"]*"/g, '$1"#colour"').replace(/\.font_[\w-]+/g, ".font_#family");
1416
+ }
1417
+ function newOffScaleEntries(before, after) {
1418
+ var _pending_get;
1419
+ var added = newEntries(before.map(offScaleIdentity), after.map(offScaleIdentity));
1420
+ var pending = /* @__PURE__ */new Map();
1421
+ var _iteratorNormalCompletion = true,
1422
+ _didIteratorError = false,
1423
+ _iteratorError = void 0;
1424
+ try {
1425
+ for (var _iterator = added[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1426
+ var identity = _step.value;
1427
+ pending.set(identity, ((_pending_get = pending.get(identity)) !== null && _pending_get !== void 0 ? _pending_get : 0) + 1);
1428
+ }
1429
+ } catch (err) {
1430
+ _didIteratorError = true;
1431
+ _iteratorError = err;
1432
+ } finally {
1433
+ try {
1434
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1435
+ _iterator.return();
1436
+ }
1437
+ } finally {
1438
+ if (_didIteratorError) {
1439
+ throw _iteratorError;
1440
+ }
1441
+ }
1442
+ }
1443
+ var named = [];
1444
+ var _iteratorNormalCompletion1 = true,
1445
+ _didIteratorError1 = false,
1446
+ _iteratorError1 = void 0;
1447
+ try {
1448
+ for (var _iterator1 = after[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
1449
+ var signature = _step1.value;
1450
+ var _pending_get1;
1451
+ var identity1 = offScaleIdentity(signature);
1452
+ var count = (_pending_get1 = pending.get(identity1)) !== null && _pending_get1 !== void 0 ? _pending_get1 : 0;
1453
+ if (count === 0) continue;
1454
+ pending.set(identity1, count - 1);
1455
+ named.push(signature);
1456
+ }
1457
+ } catch (err) {
1458
+ _didIteratorError1 = true;
1459
+ _iteratorError1 = err;
1460
+ } finally {
1461
+ try {
1462
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
1463
+ _iterator1.return();
1464
+ }
1465
+ } finally {
1466
+ if (_didIteratorError1) {
1467
+ throw _iteratorError1;
1468
+ }
1469
+ }
1470
+ }
1471
+ return named;
1472
+ }
1473
+ var namedList = function namedList2(entries) {
1474
+ var limit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 6;
1475
+ if (entries.length === 0) return "";
1476
+ var shown = entries.slice(0, limit).join("; ");
1477
+ return entries.length > limit ? ` \u2014 new: ${shown}; \u2026 ${entries.length - limit} more` : ` \u2014 new: ${shown}`;
1478
+ };
1479
+ function evaluateNoBreakage(input) {
1480
+ var failures = [];
1481
+ if (!input.storyRendered) {
1482
+ failures.push("story did not render (empty story root)");
1483
+ }
1484
+ var structuralAdded = input.offScaleSignatures && input.baselineOffScaleSignatures ? newOffScaleEntries(input.baselineOffScaleSignatures, input.offScaleSignatures) : [];
1485
+ if (structuralAdded.length || input.offScaleViolations > input.baselineOffScaleViolations) {
1486
+ failures.push(`constraint audit: ${input.offScaleViolations} off-scale violations (default cell has ${input.baselineOffScaleViolations})${namedList(structuralAdded)}`);
1487
+ }
1488
+ var signature = function signature2(violation) {
1489
+ return `${violation.key} "${violation.text}" ${violation.color} on ${violation.background} = ${violation.ratio}:1 (floor ${violation.required})`;
1490
+ };
1491
+ var contrastAdded = input.baselineContrast ? newEntries(input.baselineContrast.violations.map(signature), input.contrast.violations.map(signature)) : [];
1492
+ if (contrastAdded.length || input.contrast.violations.length > input.baselineContrastViolations) {
1493
+ failures.push(`text contrast: ${input.contrast.violations.length} below-floor text nodes (default cell has ${input.baselineContrastViolations})${namedList(contrastAdded)}`);
1494
+ }
1495
+ if (input.icons === void 0 !== (input.baselineIcons === void 0)) {
1496
+ failures.push("icon contrast: icons and baselineIcons must be supplied together");
1497
+ } else if (input.icons && input.baselineIcons) {
1498
+ var newIconFindings = newEntries(iconContrastSignatures(input.baselineIcons), iconContrastSignatures(input.icons));
1499
+ if (newIconFindings.length > 0) {
1500
+ failures.push(`icon contrast: ${newIconFindings.length} new findings${namedList(newIconFindings)}`);
1501
+ }
1502
+ }
1503
+ if (input.charts === void 0 !== (input.baselineCharts === void 0)) {
1504
+ failures.push("chart proof: charts and baselineCharts must be supplied together");
1505
+ } else if (input.charts && input.baselineCharts) {
1506
+ var added = newEntries(chartProofSignatures(input.baselineCharts), chartProofSignatures(input.charts));
1507
+ if (added.length) failures.push(`chart proof: ${added.length} new findings${namedList(added)}`);
1508
+ }
1509
+ return {
1510
+ ok: failures.length === 0,
1511
+ failures
1512
+ };
1513
+ }
1514
+ export { auditSignatures, captureMatrixSnapshot, chartProofSignatures, diffGeometry, evaluateChartProof, evaluateIconContrast, evaluateNoBreakage, evaluateTextContrast, iconContrastSignatures, offScaleIdentity };
1515
+ //# sourceMappingURL=themeMatrix.native.js.map