@multiplatform.one/theme 7.83.1 → 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,1350 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var ThemeDevtoolsPanel_exports = {};
24
+ __export(ThemeDevtoolsPanel_exports, {
25
+ ThemeDevtoolsPanel: () => ThemeDevtoolsPanel
26
+ });
27
+ module.exports = __toCommonJS(ThemeDevtoolsPanel_exports);
28
+ var import_react = require("react");
29
+ var import_platform = require("@multiplatform.one/platform");
30
+ var import_store = require("@multiplatform.one/store");
31
+ var import_useTheme = require("../useTheme.cjs");
32
+ var import_knobs = require("../knobs.cjs");
33
+ var import_shared = require("../shared.cjs");
34
+ var import_scaleInputs = require("../scale/scaleInputs.cjs");
35
+ var import_animationOptions = require("./animationOptions.cjs");
36
+ var import_ColorLineVisualizer = require("./ColorLineVisualizer.cjs");
37
+ var import_buildSnapshot = require("./buildSnapshot.cjs");
38
+ var import_knobIcons = require("./knobIcons.cjs");
39
+ var import_jsx_runtime = require("react/jsx-runtime");
40
+ const tanstackDevtoolsSettings = "tanstack_devtools_settings";
41
+ const pinnedKnobsStorageKey = "ts-theme-pinned";
42
+ const expandedKnobsStorageKey = "ts-theme-expanded";
43
+ const stateDisplayLabels = {
44
+ hover: "hover",
45
+ press: "press",
46
+ focus: "focus",
47
+ focusVisible: "focusV"
48
+ };
49
+ const knobKeys = ["fillStyle", "borderRadius", "cornerSmoothing", "borderWidth", "elevation", "textAccent", "headingFont", "bodyFont", "fontWeight", "animation", "fieldLabelPlacement", "requiredMarking", "tableZebra", "bulkBarPlacement", "selectAllScope", "timestampStyle", "disabledStyle", "formAutofocus"];
50
+ const stateKnobKeys = ["fillStyle", "borderRadius", "borderWidth", "elevation", "textAccent", "headingFont", "bodyFont", "fontWeight"];
51
+ const designProfiles = {
52
+ Bootstrap: {
53
+ fillStyle: "filled",
54
+ borderRadius: "small",
55
+ borderWidth: "medium",
56
+ elevation: "none",
57
+ textAccent: "high",
58
+ headingFont: "sans-serif",
59
+ bodyFont: "sans-serif",
60
+ fontWeight: "regular",
61
+ animation: "quick",
62
+ color: "blue"
63
+ },
64
+ "Material UI": {
65
+ fillStyle: "filled",
66
+ borderRadius: "large",
67
+ borderWidth: "none",
68
+ elevation: "small",
69
+ textAccent: "high",
70
+ headingFont: "sans-serif",
71
+ bodyFont: "sans-serif",
72
+ fontWeight: "bold",
73
+ animation: "medium",
74
+ color: "purple",
75
+ "hover.elevation": "medium"
76
+ },
77
+ "GTK4 / Adwaita": {
78
+ fillStyle: "filled",
79
+ borderRadius: "small",
80
+ borderWidth: "small",
81
+ elevation: "none",
82
+ textAccent: "high",
83
+ headingFont: "sans-serif",
84
+ bodyFont: "sans-serif",
85
+ fontWeight: "regular",
86
+ animation: "quick",
87
+ color: "gray"
88
+ },
89
+ "Fluent UI": {
90
+ fillStyle: "filled",
91
+ borderRadius: "small",
92
+ borderWidth: "small",
93
+ elevation: "small",
94
+ textAccent: "high",
95
+ headingFont: "sans-serif",
96
+ bodyFont: "sans-serif",
97
+ fontWeight: "regular",
98
+ animation: "quick",
99
+ color: "blue",
100
+ "hover.elevation": "small"
101
+ }
102
+ };
103
+ const profileNames = ["", ...Object.keys(designProfiles)];
104
+ function formatPresetOption(name) {
105
+ if (name === "") return "custom";
106
+ const scale = (0, import_shared.getPreset)(name)?.scale;
107
+ const control = scale?.control ?? import_scaleInputs.defaultScaleInputs.control;
108
+ const type = scale?.type ?? import_scaleInputs.defaultScaleInputs.type;
109
+ return `${name} \xB7 ${control}/${type}`;
110
+ }
111
+ function createStyles(isDark) {
112
+ return {
113
+ panel: {
114
+ fontFamily: "system-ui, -apple-system, sans-serif",
115
+ // Not the host page's tracking, which follows the app's bodyFont knob.
116
+ letterSpacing: "normal",
117
+ fontSize: 13,
118
+ color: isDark ? "#e8e8e8" : "#1a1a1a",
119
+ padding: 12,
120
+ display: "flex",
121
+ flexDirection: "column",
122
+ gap: 12,
123
+ height: "100%",
124
+ overflowY: "auto",
125
+ background: "transparent"
126
+ },
127
+ knobsRow: {
128
+ display: "flex",
129
+ flexDirection: "row",
130
+ flexWrap: "wrap",
131
+ alignItems: "flex-start",
132
+ alignContent: "flex-start",
133
+ gap: 8
134
+ },
135
+ card: {
136
+ display: "flex",
137
+ flexDirection: "column",
138
+ gap: 4,
139
+ padding: "6px 10px",
140
+ borderRadius: 6,
141
+ border: isDark ? "1px solid #333" : "1px solid #e0e0e0",
142
+ background: isDark ? "#1e1e1e" : "#fafafa",
143
+ minWidth: 140
144
+ },
145
+ label: {
146
+ fontSize: 11,
147
+ fontWeight: 500,
148
+ color: isDark ? "#888" : "#777",
149
+ whiteSpace: "nowrap",
150
+ textTransform: "uppercase",
151
+ letterSpacing: "0.04em"
152
+ },
153
+ select: {
154
+ padding: "3px 6px",
155
+ borderRadius: 4,
156
+ border: isDark ? "1px solid #444" : "1px solid #ccc",
157
+ background: isDark ? "#2a2a2a" : "#fff",
158
+ color: isDark ? "#e8e8e8" : "#1a1a1a",
159
+ cursor: "pointer",
160
+ fontSize: 13,
161
+ fontFamily: "inherit",
162
+ outline: "none",
163
+ width: "100%"
164
+ },
165
+ toggleRow: {
166
+ display: "flex",
167
+ alignItems: "center",
168
+ gap: 6
169
+ },
170
+ toggle: active => ({
171
+ width: 36,
172
+ height: 20,
173
+ borderRadius: 10,
174
+ background: active ? "#7c6cff" : isDark ? "#444" : "#ccc",
175
+ position: "relative",
176
+ cursor: "pointer",
177
+ border: "none",
178
+ padding: 0,
179
+ transition: "background 0.2s"
180
+ }),
181
+ toggleKnob: active => ({
182
+ width: 16,
183
+ height: 16,
184
+ borderRadius: 8,
185
+ background: "#fff",
186
+ position: "absolute",
187
+ top: 2,
188
+ left: active ? 18 : 2,
189
+ transition: "left 0.2s"
190
+ }),
191
+ iconBtn: active => ({
192
+ width: 30,
193
+ height: 30,
194
+ borderRadius: 6,
195
+ border: active ? `1.5px solid ${isDark ? "rgba(255,255,255,0.5)" : "rgba(0,0,0,0.35)"}` : `1px solid ${isDark ? "rgba(255,255,255,0.08)" : "rgba(0,0,0,0.08)"}`,
196
+ background: active ? isDark ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.06)" : "transparent",
197
+ cursor: "pointer",
198
+ display: "flex",
199
+ alignItems: "center",
200
+ justifyContent: "center",
201
+ padding: 0,
202
+ transition: "all 0.15s ease",
203
+ outline: "none"
204
+ }),
205
+ iconRow: {
206
+ display: "flex",
207
+ gap: 2,
208
+ justifyContent: "flex-end"
209
+ },
210
+ resetBtn: {
211
+ padding: "4px 10px",
212
+ borderRadius: 4,
213
+ border: isDark ? "1px solid #555" : "1px solid #ccc",
214
+ background: isDark ? "#2a2a2a" : "#f5f5f5",
215
+ color: isDark ? "#e8e8e8" : "#1a1a1a",
216
+ cursor: "pointer",
217
+ fontSize: 11,
218
+ fontFamily: "inherit",
219
+ fontWeight: 500,
220
+ transition: "all 0.15s",
221
+ whiteSpace: "nowrap"
222
+ }
223
+ };
224
+ }
225
+ function PinCheckbox({
226
+ pinned,
227
+ onToggle,
228
+ isDark
229
+ }) {
230
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("label", {
231
+ title: pinned ? "Pinned \u2014 random won't change this" : "Pin to protect from random",
232
+ style: {
233
+ position: "absolute",
234
+ top: 3,
235
+ right: 3,
236
+ display: "flex",
237
+ alignItems: "center",
238
+ cursor: "pointer",
239
+ zIndex: 1,
240
+ opacity: pinned ? 1 : 0,
241
+ transition: "opacity 0.15s"
242
+ },
243
+ className: "pin-checkbox",
244
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("input", {
245
+ type: "checkbox",
246
+ checked: pinned,
247
+ onChange: onToggle,
248
+ style: {
249
+ width: 10,
250
+ height: 10,
251
+ margin: 0,
252
+ cursor: "pointer",
253
+ accentColor: isDark ? "#e8e8e8" : "#1a1a1a"
254
+ }
255
+ })
256
+ });
257
+ }
258
+ function Dropdown({
259
+ label,
260
+ options,
261
+ value,
262
+ onChange,
263
+ format,
264
+ styles,
265
+ pinned,
266
+ onTogglePin,
267
+ onUnset,
268
+ isDark,
269
+ children
270
+ }) {
271
+ const optionStyle = isDark ? {
272
+ backgroundColor: "#1f1f1f",
273
+ color: "#e8e8e8"
274
+ } : {
275
+ backgroundColor: "#ffffff",
276
+ color: "#1a1a1a"
277
+ };
278
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
279
+ style: {
280
+ ...styles.card,
281
+ position: "relative"
282
+ },
283
+ onMouseEnter: e => {
284
+ const element = e.currentTarget.querySelector(".pin-checkbox");
285
+ if (element && !pinned) element.style.opacity = "0.5";
286
+ },
287
+ onMouseLeave: e => {
288
+ const element = e.currentTarget.querySelector(".pin-checkbox");
289
+ if (element && !pinned) element.style.opacity = "0";
290
+ },
291
+ children: [onTogglePin && /* @__PURE__ */(0, import_jsx_runtime.jsx)(PinCheckbox, {
292
+ pinned: !!pinned,
293
+ onToggle: onTogglePin,
294
+ isDark: !!isDark
295
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
296
+ style: styles.label,
297
+ children: label
298
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)("select", {
299
+ style: {
300
+ ...styles.select,
301
+ colorScheme: isDark ? "dark" : "light"
302
+ },
303
+ value: value === void 0 ? "__unset__" : String(value),
304
+ onChange: e => {
305
+ const rawValue = e.target.value;
306
+ if (rawValue === "__unset__") {
307
+ onUnset?.();
308
+ return;
309
+ }
310
+ const matchedOption = options.find(option => String(option) === rawValue);
311
+ if (matchedOption !== void 0) onChange(matchedOption);
312
+ },
313
+ children: [onUnset && /* @__PURE__ */(0, import_jsx_runtime.jsx)("option", {
314
+ value: "__unset__",
315
+ style: optionStyle,
316
+ children: "unset (inherit)"
317
+ }), options.map(opt => /* @__PURE__ */(0, import_jsx_runtime.jsx)("option", {
318
+ value: String(opt),
319
+ style: optionStyle,
320
+ children: format ? format(opt) : String(opt)
321
+ }, String(opt)))]
322
+ }), children]
323
+ });
324
+ }
325
+ function CollapseButton({
326
+ expanded,
327
+ onToggle,
328
+ isDark
329
+ }) {
330
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
331
+ type: "button",
332
+ title: expanded ? "Collapse state overrides" : "Expand state overrides",
333
+ onClick: onToggle,
334
+ style: {
335
+ background: "none",
336
+ border: "none",
337
+ padding: 0,
338
+ cursor: "pointer",
339
+ display: "flex",
340
+ alignItems: "center",
341
+ color: isDark ? "#666" : "#aaa",
342
+ transition: "transform 0.15s, color 0.15s",
343
+ transform: expanded ? "rotate(90deg)" : "rotate(0deg)",
344
+ flexShrink: 0
345
+ },
346
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
347
+ width: "10",
348
+ height: "10",
349
+ viewBox: "0 0 10 10",
350
+ fill: "none",
351
+ role: "img",
352
+ "aria-label": "Toggle",
353
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("title", {
354
+ children: "Toggle state overrides"
355
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
356
+ d: "M3 1.5l4 3.5-4 3.5",
357
+ stroke: "currentColor",
358
+ strokeWidth: "1.5",
359
+ strokeLinecap: "round",
360
+ strokeLinejoin: "round"
361
+ })]
362
+ })
363
+ });
364
+ }
365
+ function IconGroup({
366
+ label,
367
+ options,
368
+ value,
369
+ onChange,
370
+ icon,
371
+ styles,
372
+ isDark,
373
+ pinned,
374
+ onTogglePin,
375
+ expanded,
376
+ onToggleExpand,
377
+ onUnset,
378
+ children
379
+ }) {
380
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
381
+ role: "group",
382
+ "aria-label": label,
383
+ style: {
384
+ ...styles.card,
385
+ position: "relative"
386
+ },
387
+ onMouseEnter: e => {
388
+ const element = e.currentTarget.querySelector(".pin-checkbox");
389
+ if (element && !pinned) element.style.opacity = "0.5";
390
+ },
391
+ onMouseLeave: e => {
392
+ const element = e.currentTarget.querySelector(".pin-checkbox");
393
+ if (element && !pinned) element.style.opacity = "0";
394
+ },
395
+ children: [onTogglePin && /* @__PURE__ */(0, import_jsx_runtime.jsx)(PinCheckbox, {
396
+ pinned: !!pinned,
397
+ onToggle: onTogglePin,
398
+ isDark
399
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
400
+ style: {
401
+ display: "flex",
402
+ alignItems: "center",
403
+ gap: 4
404
+ },
405
+ children: [onToggleExpand && /* @__PURE__ */(0, import_jsx_runtime.jsx)(CollapseButton, {
406
+ expanded: !!expanded,
407
+ onToggle: onToggleExpand,
408
+ isDark
409
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
410
+ style: styles.label,
411
+ children: label
412
+ })]
413
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
414
+ style: styles.iconRow,
415
+ children: [onUnset && /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
416
+ type: "button",
417
+ style: {
418
+ ...styles.iconBtn(value === void 0),
419
+ padding: "1px 4px",
420
+ fontSize: 10,
421
+ minWidth: 0
422
+ },
423
+ onClick: onUnset,
424
+ title: "unset (inherit)",
425
+ "aria-pressed": value === void 0,
426
+ children: "\u21BA"
427
+ }), options.map(opt => {
428
+ const active = value !== void 0 && opt === value;
429
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
430
+ type: "button",
431
+ style: styles.iconBtn(active),
432
+ onClick: () => onChange(opt),
433
+ title: String(opt),
434
+ "aria-pressed": active,
435
+ children: icon(opt, active, isDark)
436
+ }, String(opt));
437
+ })]
438
+ }), expanded && children]
439
+ });
440
+ }
441
+ function StateSubRow({
442
+ stateName,
443
+ options,
444
+ value,
445
+ onChange,
446
+ icon,
447
+ styles,
448
+ isDark
449
+ }) {
450
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
451
+ style: {
452
+ display: "flex",
453
+ alignItems: "center",
454
+ gap: 4,
455
+ marginTop: 2
456
+ },
457
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("span", {
458
+ style: {
459
+ fontSize: 9,
460
+ fontWeight: 500,
461
+ color: isDark ? "#666" : "#aaa",
462
+ width: 46,
463
+ textAlign: "right",
464
+ flexShrink: 0
465
+ },
466
+ children: stateName
467
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
468
+ style: {
469
+ ...styles.iconRow,
470
+ gap: 2
471
+ },
472
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
473
+ type: "button",
474
+ style: {
475
+ ...styles.iconBtn(value === ""),
476
+ padding: "1px 4px",
477
+ fontSize: 9,
478
+ minWidth: 0
479
+ },
480
+ onClick: () => onChange(""),
481
+ title: "inherit (no override)",
482
+ children: "\u2013"
483
+ }), options.map(opt => {
484
+ const active = opt === value;
485
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
486
+ type: "button",
487
+ style: {
488
+ ...styles.iconBtn(active),
489
+ transform: "scale(0.85)"
490
+ },
491
+ onClick: () => onChange(opt),
492
+ title: opt,
493
+ children: icon(opt, active, isDark)
494
+ }, opt);
495
+ })]
496
+ })]
497
+ });
498
+ }
499
+ function ic(active, dark) {
500
+ return active ? dark ? "#e8e8e8" : "#1a1a1a" : dark ? "#555" : "#bbb";
501
+ }
502
+ function modeIcon(v, active, dark) {
503
+ return (0, import_knobIcons.modeIcon)(v, ic(active, dark));
504
+ }
505
+ function fillIcon(v, active, dark) {
506
+ return (0, import_knobIcons.fillIcon)(v, ic(active, dark));
507
+ }
508
+ function borderRadiusIcon(v, active, dark) {
509
+ return (0, import_knobIcons.borderRadiusIcon)(v, ic(active, dark));
510
+ }
511
+ function cornerSmoothingIcon(v, active, dark) {
512
+ return (0, import_knobIcons.cornerSmoothingIcon)(v, ic(active, dark));
513
+ }
514
+ function borderWidthIcon(v, active, dark) {
515
+ return (0, import_knobIcons.borderWidthIcon)(v, ic(active, dark));
516
+ }
517
+ function elevationIconWrap(v, active, dark) {
518
+ return (0, import_knobIcons.elevationIcon)(v, ic(active, dark), dark);
519
+ }
520
+ function textAccentIcon(v, active, dark) {
521
+ return (0, import_knobIcons.textAccentIcon)(v, ic(active, dark));
522
+ }
523
+ function headingFontIcon(v, active, dark) {
524
+ return (0, import_knobIcons.headingFontIcon)(v, ic(active, dark));
525
+ }
526
+ function bodyFontIcon(v, active, dark) {
527
+ return (0, import_knobIcons.bodyFontIcon)(v, ic(active, dark));
528
+ }
529
+ function fontWeightIcon(v, active, dark) {
530
+ return (0, import_knobIcons.fontWeightIcon)(v, ic(active, dark));
531
+ }
532
+ function fieldLabelPlacementIcon(v, active, dark) {
533
+ return (0, import_knobIcons.fieldLabelPlacementIcon)(v, ic(active, dark));
534
+ }
535
+ function requiredMarkingIcon(v, active, dark) {
536
+ return (0, import_knobIcons.requiredMarkingIcon)(v, ic(active, dark));
537
+ }
538
+ function tableZebraIcon(v, active, dark) {
539
+ return (0, import_knobIcons.tableZebraIcon)(v, ic(active, dark));
540
+ }
541
+ function bulkBarPlacementIcon(v, active, dark) {
542
+ return (0, import_knobIcons.bulkBarPlacementIcon)(v, ic(active, dark));
543
+ }
544
+ function selectAllScopeIcon(v, active, dark) {
545
+ return (0, import_knobIcons.selectAllScopeIcon)(v, ic(active, dark));
546
+ }
547
+ function timestampStyleIcon(v, active, dark) {
548
+ return (0, import_knobIcons.timestampStyleIcon)(v, ic(active, dark));
549
+ }
550
+ function disabledStyleIcon(v, active, dark) {
551
+ return (0, import_knobIcons.disabledStyleIcon)(v, ic(active, dark));
552
+ }
553
+ function formAutofocusIcon(v, active, dark) {
554
+ return (0, import_knobIcons.formAutofocusIcon)(v, ic(active, dark));
555
+ }
556
+ function extractThemeTokenColors(tamaguiConfig, scheme, colorTheme, prefix = "color") {
557
+ const config = tamaguiConfig;
558
+ const themes = config?.themes;
559
+ if (!themes) return void 0;
560
+ const candidates = [];
561
+ if (colorTheme) candidates.push(`${scheme}_${colorTheme}`);
562
+ candidates.push(scheme);
563
+ for (const name of candidates) {
564
+ const theme = themes[name];
565
+ if (!theme) continue;
566
+ const colors = [];
567
+ let found = false;
568
+ for (let i = 1; i <= 12; i++) {
569
+ const token = theme[`${prefix}${i}`];
570
+ let val;
571
+ if (typeof token === "string") {
572
+ val = token;
573
+ } else if (token && typeof token === "object" && "val" in token) {
574
+ val = String(token.val);
575
+ }
576
+ if (val) {
577
+ colors.push(val);
578
+ found = true;
579
+ } else {
580
+ colors.push("");
581
+ }
582
+ }
583
+ if (found) return colors;
584
+ }
585
+ return void 0;
586
+ }
587
+ function ThemeDevtoolsPanel({
588
+ useUserScheme,
589
+ extraPresets,
590
+ devtoolsTheme,
591
+ themeColors,
592
+ currentThemeColor,
593
+ onThemeColorChange,
594
+ tamaguiConfig
595
+ }) {
596
+ const [knobs, setKnobs,, setPreset, activePresetName] = (0, import_useTheme.useTheme)();
597
+ const scheme = useUserScheme?.();
598
+ const isDark = devtoolsTheme !== "light";
599
+ const styles = (0, import_react.useMemo)(() => createStyles(isDark), [isDark]);
600
+ const animationOptions = (0, import_react.useMemo)(() => ["none", ...(0, import_animationOptions.extractAnimationNames)(tamaguiConfig)], [tamaguiConfig]);
601
+ const [overrides, setOverrides] = (0, import_react.useState)(() => {
602
+ const presetKnobs = activePresetName ? (0, import_shared.getPreset)(activePresetName)?.knobs : void 0;
603
+ return new Set(knobKeys.filter(key => knobs[key] !== (presetKnobs?.[key] ?? import_knobs.defaultKnobs[key])));
604
+ });
605
+ const [pinnedKnobs, setPinnedKnobs] = (0, import_react.useState)(() => {
606
+ try {
607
+ const raw = import_store.storage.getItem(pinnedKnobsStorageKey);
608
+ const stored = typeof raw === "string" || raw === null ? raw : null;
609
+ if (stored) return new Set(JSON.parse(stored));
610
+ } catch {}
611
+ return /* @__PURE__ */new Set();
612
+ });
613
+ const [activeProfile, setActiveProfile] = (0, import_react.useState)("");
614
+ const [expandedKnobs, setExpandedKnobs] = (0, import_react.useState)(() => {
615
+ try {
616
+ const raw = import_store.storage.getItem(expandedKnobsStorageKey);
617
+ const stored = typeof raw === "string" || raw === null ? raw : null;
618
+ if (stored) {
619
+ const parsed = JSON.parse(stored);
620
+ return new Set(parsed.filter(k => stateKnobKeys.includes(k)));
621
+ }
622
+ } catch {}
623
+ return /* @__PURE__ */new Set();
624
+ });
625
+ const knobsRef = (0, import_react.useRef)(knobs);
626
+ knobsRef.current = knobs;
627
+ (0, import_react.useEffect)(() => {
628
+ void Promise.resolve(import_store.storage.setItem(pinnedKnobsStorageKey, JSON.stringify([...pinnedKnobs]))).catch(() => {});
629
+ }, [pinnedKnobs]);
630
+ (0, import_react.useEffect)(() => {
631
+ void Promise.resolve(import_store.storage.setItem(expandedKnobsStorageKey, JSON.stringify([...expandedKnobs]))).catch(() => {});
632
+ }, [expandedKnobs]);
633
+ const clearStateOverridesForKeys = (0, import_react.useCallback)(keys => {
634
+ const current = knobsRef.current;
635
+ const partial = {};
636
+ for (const state of import_knobs.interactionStates) {
637
+ const stateKnobs = {
638
+ ...current[state]
639
+ };
640
+ let mutated = false;
641
+ for (const key of keys) {
642
+ if (stateKnobs[key] !== void 0) {
643
+ stateKnobs[key] = void 0;
644
+ mutated = true;
645
+ }
646
+ }
647
+ if (mutated) {
648
+ partial[state] = stateKnobs;
649
+ }
650
+ }
651
+ if (Object.keys(partial).length > 0) {
652
+ setKnobs(partial);
653
+ }
654
+ }, [setKnobs]);
655
+ const toggleExpand = (0, import_react.useCallback)(key => {
656
+ let collapsing = false;
657
+ setExpandedKnobs(prev => {
658
+ const next = new Set(prev);
659
+ if (next.has(key)) {
660
+ collapsing = true;
661
+ next.delete(key);
662
+ } else {
663
+ next.add(key);
664
+ }
665
+ return next;
666
+ });
667
+ if (collapsing) {
668
+ clearStateOverridesForKeys([key]);
669
+ }
670
+ }, [clearStateOverridesForKeys]);
671
+ const togglePin = (0, import_react.useCallback)(key => {
672
+ setPinnedKnobs(prev => {
673
+ const next = new Set(prev);
674
+ if (next.has(key)) {
675
+ next.delete(key);
676
+ for (const state of import_knobs.interactionStates) {
677
+ next.delete(`${state}.${key}`);
678
+ }
679
+ } else {
680
+ next.add(key);
681
+ for (const state of import_knobs.interactionStates) {
682
+ next.add(`${state}.${key}`);
683
+ }
684
+ }
685
+ return next;
686
+ });
687
+ }, []);
688
+ const allStateKnobsExpanded = (0, import_react.useMemo)(() => stateKnobKeys.every(key => expandedKnobs.has(key)), [expandedKnobs]);
689
+ const handleToggleAllStates = (0, import_react.useCallback)(() => {
690
+ let collapsingAll = false;
691
+ setExpandedKnobs(prev => {
692
+ const allExpanded = stateKnobKeys.every(key => prev.has(key));
693
+ if (allExpanded) {
694
+ collapsingAll = true;
695
+ return /* @__PURE__ */new Set();
696
+ }
697
+ return new Set(stateKnobKeys);
698
+ });
699
+ if (collapsingAll) {
700
+ clearStateOverridesForKeys(stateKnobKeys);
701
+ }
702
+ }, [clearStateOverridesForKeys]);
703
+ const set = (0, import_react.useCallback)((key, value) => {
704
+ setOverrides(prev => new Set(prev).add(key));
705
+ setKnobs({
706
+ [key]: value
707
+ });
708
+ if (activeProfile) setActiveProfile("");
709
+ }, [setKnobs, activeProfile]);
710
+ const handleProfileChange = (0, import_react.useCallback)(profileName => {
711
+ if (!profileName) {
712
+ setActiveProfile("");
713
+ return;
714
+ }
715
+ const profile = designProfiles[profileName];
716
+ if (!profile) return;
717
+ const partial = {};
718
+ for (const key of knobKeys) {
719
+ if (profile[key]) partial[key] = profile[key];
720
+ }
721
+ const hover = {};
722
+ const press = {};
723
+ for (const [k, v] of Object.entries(profile)) {
724
+ if (!v) continue;
725
+ if (k.startsWith("hover.")) hover[k.slice(6)] = v;else if (k.startsWith("press.")) press[k.slice(6)] = v;
726
+ }
727
+ if (Object.keys(hover).length) partial.hover = hover;
728
+ if (Object.keys(press).length) partial.press = press;
729
+ setKnobs(partial);
730
+ setOverrides(new Set(knobKeys));
731
+ setPinnedKnobs(/* @__PURE__ */new Set());
732
+ setActiveProfile(profileName);
733
+ if (profile.color && onThemeColorChange) {
734
+ onThemeColorChange(profile.color);
735
+ }
736
+ }, [setKnobs, onThemeColorChange]);
737
+ const handleClearKnobs = (0, import_react.useCallback)(() => {
738
+ if (activeProfile && designProfiles[activeProfile]) {
739
+ handleProfileChange(activeProfile);
740
+ setExpandedKnobs(/* @__PURE__ */new Set());
741
+ return;
742
+ }
743
+ setOverrides(/* @__PURE__ */new Set());
744
+ setPinnedKnobs(/* @__PURE__ */new Set());
745
+ setExpandedKnobs(/* @__PURE__ */new Set());
746
+ setActiveProfile("");
747
+ if (activePresetName) {
748
+ setPreset(activePresetName);
749
+ } else {
750
+ setKnobs({
751
+ ...import_knobs.defaultKnobs
752
+ });
753
+ }
754
+ }, [activeProfile, handleProfileChange, activePresetName, setPreset, setKnobs]);
755
+ const handleApplyDefaults = (0, import_react.useCallback)(() => {
756
+ setOverrides(new Set(knobKeys));
757
+ setPinnedKnobs(/* @__PURE__ */new Set());
758
+ setExpandedKnobs(/* @__PURE__ */new Set());
759
+ setActiveProfile("");
760
+ setPreset("");
761
+ setKnobs({
762
+ ...import_knobs.defaultKnobs
763
+ });
764
+ }, [setPreset, setKnobs]);
765
+ const [copyStatus, setCopyStatus] = (0, import_react.useState)("idle");
766
+ const handleCopySnapshot = (0, import_react.useCallback)(async () => {
767
+ const knobValues = {};
768
+ for (const [key, value] of Object.entries(knobs)) {
769
+ if (value && typeof value === "object") {
770
+ for (const [sk, sv] of Object.entries(value)) {
771
+ if (sv) knobValues[`${key}.${sk}`] = sv;
772
+ }
773
+ } else {
774
+ knobValues[key] = String(value);
775
+ }
776
+ }
777
+ const lightColors = extractThemeTokenColors(tamaguiConfig, "light", currentThemeColor) ?? [];
778
+ const darkColors = extractThemeTokenColors(tamaguiConfig, "dark", currentThemeColor) ?? [];
779
+ const snapshot = (0, import_buildSnapshot.buildSnapshot)({
780
+ knobValues,
781
+ activePreset: activePresetName ?? void 0,
782
+ schemeSetting: scheme?.setting,
783
+ schemeValue: scheme?.value,
784
+ currentColor: currentThemeColor,
785
+ lightColors,
786
+ darkColors
787
+ });
788
+ const success = await (0, import_platform.writeToClipboard)(snapshot);
789
+ if (success) {
790
+ setCopyStatus("copied");
791
+ setTimeout(() => setCopyStatus("idle"), 2e3);
792
+ } else {
793
+ setCopyStatus("error");
794
+ setTimeout(() => setCopyStatus("idle"), 2e3);
795
+ }
796
+ }, [knobs, activePresetName, scheme, currentThemeColor, tamaguiConfig]);
797
+ const handleRandomize = (0, import_react.useCallback)(() => {
798
+ const pick = arr => arr[Math.floor(Math.random() * arr.length)];
799
+ const knobEnums = {
800
+ fillStyle: Object.values(import_knobs.FillStyle),
801
+ borderRadius: Object.values(import_knobs.BorderRadius),
802
+ borderWidth: Object.values(import_knobs.BorderWidth),
803
+ elevation: Object.values(import_knobs.Elevation),
804
+ textAccent: Object.values(import_knobs.TextAccent),
805
+ headingFont: Object.values(import_knobs.HeadingFont),
806
+ bodyFont: Object.values(import_knobs.BodyFont),
807
+ fontWeight: Object.values(import_knobs.FontWeight),
808
+ animation: animationOptions
809
+ };
810
+ const partial = {};
811
+ const newOverrides = new Set(knobKeys);
812
+ for (const key of knobKeys) {
813
+ if (pinnedKnobs.has(key)) continue;
814
+ const values = knobEnums[key];
815
+ if (values) partial[key] = pick(values);
816
+ }
817
+ if (expandedKnobs.size > 0) {
818
+ const knobEnumsForState = {
819
+ fillStyle: Object.values(import_knobs.FillStyle),
820
+ borderRadius: Object.values(import_knobs.BorderRadius),
821
+ borderWidth: Object.values(import_knobs.BorderWidth),
822
+ elevation: Object.values(import_knobs.Elevation),
823
+ textAccent: Object.values(import_knobs.TextAccent),
824
+ headingFont: Object.values(import_knobs.HeadingFont),
825
+ bodyFont: Object.values(import_knobs.BodyFont),
826
+ fontWeight: Object.values(import_knobs.FontWeight)
827
+ };
828
+ for (const state of import_knobs.interactionStates) {
829
+ const statePartial = {};
830
+ for (const key of expandedKnobs) {
831
+ const values = knobEnumsForState[key];
832
+ if (values) statePartial[key] = pick(values);
833
+ }
834
+ if (Object.keys(statePartial).length > 0) {
835
+ partial[state] = statePartial;
836
+ }
837
+ }
838
+ }
839
+ setOverrides(newOverrides);
840
+ setKnobs(partial);
841
+ if (!pinnedKnobs.has("color") && themeColors && onThemeColorChange) {
842
+ const nonEmpty = themeColors.filter(c => c !== "");
843
+ if (nonEmpty.length > 0) {
844
+ onThemeColorChange(pick(nonEmpty));
845
+ }
846
+ }
847
+ if (!pinnedKnobs.has("scheme") && scheme) {
848
+ scheme.set(pick(["light", "dark"]));
849
+ }
850
+ if (activeProfile) setActiveProfile("");
851
+ }, [setKnobs, themeColors, onThemeColorChange, scheme, pinnedKnobs, expandedKnobs, activeProfile, animationOptions]);
852
+ const presetOptions = (0, import_react.useMemo)(() => {
853
+ const registered = (0, import_shared.getPresetNames)();
854
+ const names = new Set(registered);
855
+ if (extraPresets) {
856
+ for (const name of extraPresets) {
857
+ names.add(name);
858
+ }
859
+ }
860
+ return ["", ...Array.from(names).filter(Boolean).sort()];
861
+ }, [extraPresets]);
862
+ const handlePresetChange = (0, import_react.useCallback)(presetName => {
863
+ if (!presetName) return;
864
+ setPreset(presetName);
865
+ setOverrides(/* @__PURE__ */new Set());
866
+ }, [setPreset]);
867
+ const handleResetToPreset = (0, import_react.useCallback)(() => {
868
+ if (activePresetName) {
869
+ setPreset(activePresetName);
870
+ } else {
871
+ setKnobs({
872
+ ...import_knobs.defaultKnobs
873
+ });
874
+ }
875
+ setOverrides(/* @__PURE__ */new Set());
876
+ }, [activePresetName, setPreset, setKnobs]);
877
+ const prevDevtoolsTheme = (0, import_react.useRef)(void 0);
878
+ (0, import_react.useEffect)(() => {
879
+ if (!devtoolsTheme || !scheme) {
880
+ prevDevtoolsTheme.current = devtoolsTheme;
881
+ return;
882
+ }
883
+ if (prevDevtoolsTheme.current === void 0) {
884
+ prevDevtoolsTheme.current = devtoolsTheme;
885
+ return;
886
+ }
887
+ if (prevDevtoolsTheme.current !== devtoolsTheme) {
888
+ prevDevtoolsTheme.current = devtoolsTheme;
889
+ if (scheme.value !== devtoolsTheme) {
890
+ scheme.set(devtoolsTheme);
891
+ }
892
+ }
893
+ }, [devtoolsTheme, scheme]);
894
+ const schemeValue = scheme?.value;
895
+ (0, import_react.useEffect)(() => {
896
+ if (!schemeValue) return;
897
+ void Promise.resolve(import_store.storage.getItem(tanstackDevtoolsSettings)).then(raw => {
898
+ const settings = raw ? JSON.parse(raw) : {};
899
+ if (settings.theme !== schemeValue) {
900
+ settings.theme = schemeValue;
901
+ return Promise.resolve(import_store.storage.setItem(tanstackDevtoolsSettings, JSON.stringify(settings)));
902
+ }
903
+ }).catch(() => {});
904
+ }, [schemeValue]);
905
+ const getOverride = key => overrides.has(key) ? knobs[key] : void 0;
906
+ const inheritedKnob = (0, import_react.useCallback)(key => {
907
+ const activeProfileConfig = activeProfile ? designProfiles[activeProfile] : void 0;
908
+ if (activeProfileConfig?.[key]) {
909
+ return activeProfileConfig[key];
910
+ }
911
+ if (activePresetName) {
912
+ const presetKnobs = (0, import_shared.getPreset)(activePresetName)?.knobs;
913
+ if (presetKnobs?.[key] !== void 0) return presetKnobs[key];
914
+ }
915
+ return import_knobs.defaultKnobs[key];
916
+ }, [activeProfile, activePresetName]);
917
+ const unset = (0, import_react.useCallback)(key => {
918
+ setOverrides(prev => {
919
+ const next = new Set(prev);
920
+ next.delete(key);
921
+ return next;
922
+ });
923
+ setKnobs({
924
+ [key]: inheritedKnob(key)
925
+ });
926
+ }, [setKnobs, inheritedKnob]);
927
+ const setStateKnob = (0, import_react.useCallback)((state, key, value) => {
928
+ const current = knobsRef.current;
929
+ setKnobs({
930
+ [state]: {
931
+ ...current[state],
932
+ [key]: value === "" ? void 0 : value
933
+ }
934
+ });
935
+ setOverrides(prev => new Set(prev).add(state));
936
+ if (activeProfile) setActiveProfile("");
937
+ }, [setKnobs, activeProfile]);
938
+ const getStateKnob = (state, key) => {
939
+ const stateKnobs = knobs[state];
940
+ return stateKnobs[key] ?? "";
941
+ };
942
+ const stateRows = (knobKey, options, icon) => import_knobs.interactionStates.map(state => /* @__PURE__ */(0, import_jsx_runtime.jsx)(StateSubRow, {
943
+ stateName: stateDisplayLabels[state],
944
+ options,
945
+ value: getStateKnob(state, knobKey),
946
+ onChange: v => setStateKnob(state, knobKey, v),
947
+ icon,
948
+ styles,
949
+ isDark
950
+ }, state));
951
+ return /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
952
+ style: styles.panel,
953
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
954
+ style: styles.knobsRow,
955
+ children: [presetOptions.length > 1 && /* @__PURE__ */(0, import_jsx_runtime.jsx)(Dropdown, {
956
+ label: "Preset",
957
+ options: presetOptions,
958
+ value: activePresetName ?? "",
959
+ onChange: v => handlePresetChange(v),
960
+ format: formatPresetOption,
961
+ styles
962
+ }), presetOptions.length > 1 && /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
963
+ style: styles.card,
964
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
965
+ type: "button",
966
+ style: styles.resetBtn,
967
+ onClick: handleResetToPreset,
968
+ children: "Reset to Preset"
969
+ })
970
+ }), themeColors && themeColors.length > 1 && onThemeColorChange && /* @__PURE__ */(0, import_jsx_runtime.jsx)(Dropdown, {
971
+ label: "Theme",
972
+ options: themeColors,
973
+ value: currentThemeColor ?? "",
974
+ onChange: v => onThemeColorChange(v),
975
+ format: v => v === "" ? "none" : String(v),
976
+ styles,
977
+ pinned: pinnedKnobs.has("color"),
978
+ onTogglePin: () => togglePin("color"),
979
+ isDark
980
+ }), scheme && /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
981
+ label: "Scheme",
982
+ options: ["system", "light", "dark"],
983
+ value: scheme.setting,
984
+ onChange: v => scheme.set(v),
985
+ icon: modeIcon,
986
+ styles,
987
+ isDark,
988
+ pinned: pinnedKnobs.has("scheme"),
989
+ onTogglePin: () => togglePin("scheme")
990
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
991
+ label: "Fill",
992
+ options: Object.values(import_knobs.FillStyle),
993
+ value: getOverride("fillStyle"),
994
+ onChange: v => set("fillStyle", v),
995
+ icon: fillIcon,
996
+ styles,
997
+ isDark,
998
+ pinned: pinnedKnobs.has("fillStyle"),
999
+ onTogglePin: () => togglePin("fillStyle"),
1000
+ expanded: expandedKnobs.has("fillStyle"),
1001
+ onToggleExpand: () => toggleExpand("fillStyle"),
1002
+ onUnset: () => unset("fillStyle"),
1003
+ children: stateRows("fillStyle", Object.values(import_knobs.FillStyle), fillIcon)
1004
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1005
+ label: "Radius",
1006
+ options: Object.values(import_knobs.BorderRadius),
1007
+ value: getOverride("borderRadius"),
1008
+ onChange: v => set("borderRadius", v),
1009
+ icon: borderRadiusIcon,
1010
+ styles,
1011
+ isDark,
1012
+ pinned: pinnedKnobs.has("borderRadius"),
1013
+ onTogglePin: () => togglePin("borderRadius"),
1014
+ expanded: expandedKnobs.has("borderRadius"),
1015
+ onToggleExpand: () => toggleExpand("borderRadius"),
1016
+ onUnset: () => unset("borderRadius"),
1017
+ children: stateRows("borderRadius", Object.values(import_knobs.BorderRadius), borderRadiusIcon)
1018
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1019
+ label: "Smoothing",
1020
+ options: Object.values(import_knobs.CornerSmoothing),
1021
+ value: getOverride("cornerSmoothing"),
1022
+ onChange: v => set("cornerSmoothing", v),
1023
+ icon: cornerSmoothingIcon,
1024
+ styles,
1025
+ isDark,
1026
+ pinned: pinnedKnobs.has("cornerSmoothing"),
1027
+ onTogglePin: () => togglePin("cornerSmoothing"),
1028
+ onUnset: () => unset("cornerSmoothing")
1029
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1030
+ label: "Border",
1031
+ options: Object.values(import_knobs.BorderWidth),
1032
+ value: getOverride("borderWidth"),
1033
+ onChange: v => set("borderWidth", v),
1034
+ icon: borderWidthIcon,
1035
+ styles,
1036
+ isDark,
1037
+ pinned: pinnedKnobs.has("borderWidth"),
1038
+ onTogglePin: () => togglePin("borderWidth"),
1039
+ expanded: expandedKnobs.has("borderWidth"),
1040
+ onToggleExpand: () => toggleExpand("borderWidth"),
1041
+ onUnset: () => unset("borderWidth"),
1042
+ children: stateRows("borderWidth", Object.values(import_knobs.BorderWidth), borderWidthIcon)
1043
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1044
+ label: "Elevation",
1045
+ options: Object.values(import_knobs.Elevation),
1046
+ value: getOverride("elevation"),
1047
+ onChange: v => set("elevation", v),
1048
+ icon: elevationIconWrap,
1049
+ styles,
1050
+ isDark,
1051
+ pinned: pinnedKnobs.has("elevation"),
1052
+ onTogglePin: () => togglePin("elevation"),
1053
+ expanded: expandedKnobs.has("elevation"),
1054
+ onToggleExpand: () => toggleExpand("elevation"),
1055
+ onUnset: () => unset("elevation"),
1056
+ children: stateRows("elevation", Object.values(import_knobs.Elevation), elevationIconWrap)
1057
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1058
+ label: "Text Accent",
1059
+ options: Object.values(import_knobs.TextAccent),
1060
+ value: getOverride("textAccent"),
1061
+ onChange: v => set("textAccent", v),
1062
+ icon: textAccentIcon,
1063
+ styles,
1064
+ isDark,
1065
+ pinned: pinnedKnobs.has("textAccent"),
1066
+ onTogglePin: () => togglePin("textAccent"),
1067
+ expanded: expandedKnobs.has("textAccent"),
1068
+ onToggleExpand: () => toggleExpand("textAccent"),
1069
+ onUnset: () => unset("textAccent"),
1070
+ children: stateRows("textAccent", Object.values(import_knobs.TextAccent), textAccentIcon)
1071
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1072
+ label: "Heading",
1073
+ options: Object.values(import_knobs.HeadingFont),
1074
+ value: getOverride("headingFont"),
1075
+ onChange: v => set("headingFont", v),
1076
+ icon: headingFontIcon,
1077
+ styles,
1078
+ isDark,
1079
+ pinned: pinnedKnobs.has("headingFont"),
1080
+ onTogglePin: () => togglePin("headingFont"),
1081
+ expanded: expandedKnobs.has("headingFont"),
1082
+ onToggleExpand: () => toggleExpand("headingFont"),
1083
+ onUnset: () => unset("headingFont"),
1084
+ children: stateRows("headingFont", Object.values(import_knobs.HeadingFont), headingFontIcon)
1085
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1086
+ label: "Body",
1087
+ options: Object.values(import_knobs.BodyFont),
1088
+ value: getOverride("bodyFont"),
1089
+ onChange: v => set("bodyFont", v),
1090
+ icon: bodyFontIcon,
1091
+ styles,
1092
+ isDark,
1093
+ pinned: pinnedKnobs.has("bodyFont"),
1094
+ onTogglePin: () => togglePin("bodyFont"),
1095
+ expanded: expandedKnobs.has("bodyFont"),
1096
+ onToggleExpand: () => toggleExpand("bodyFont"),
1097
+ onUnset: () => unset("bodyFont"),
1098
+ children: stateRows("bodyFont", Object.values(import_knobs.BodyFont), bodyFontIcon)
1099
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1100
+ label: "Weight",
1101
+ options: Object.values(import_knobs.FontWeight),
1102
+ value: getOverride("fontWeight"),
1103
+ onChange: v => set("fontWeight", v),
1104
+ icon: fontWeightIcon,
1105
+ styles,
1106
+ isDark,
1107
+ pinned: pinnedKnobs.has("fontWeight"),
1108
+ onTogglePin: () => togglePin("fontWeight"),
1109
+ expanded: expandedKnobs.has("fontWeight"),
1110
+ onToggleExpand: () => toggleExpand("fontWeight"),
1111
+ onUnset: () => unset("fontWeight"),
1112
+ children: stateRows("fontWeight", Object.values(import_knobs.FontWeight), fontWeightIcon)
1113
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(Dropdown, {
1114
+ label: "Animation",
1115
+ options: animationOptions,
1116
+ value: getOverride("animation") ?? "",
1117
+ onChange: v => set("animation", v),
1118
+ onUnset: () => unset("animation"),
1119
+ styles,
1120
+ pinned: pinnedKnobs.has("animation"),
1121
+ onTogglePin: () => togglePin("animation"),
1122
+ isDark
1123
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1124
+ label: "Label place",
1125
+ options: Object.values(import_knobs.FieldLabelPlacement),
1126
+ value: getOverride("fieldLabelPlacement"),
1127
+ onChange: v => set("fieldLabelPlacement", v),
1128
+ icon: fieldLabelPlacementIcon,
1129
+ styles,
1130
+ isDark,
1131
+ pinned: pinnedKnobs.has("fieldLabelPlacement"),
1132
+ onTogglePin: () => togglePin("fieldLabelPlacement"),
1133
+ onUnset: () => unset("fieldLabelPlacement")
1134
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1135
+ label: "Required mark",
1136
+ options: Object.values(import_knobs.RequiredMarking),
1137
+ value: getOverride("requiredMarking"),
1138
+ onChange: v => set("requiredMarking", v),
1139
+ icon: requiredMarkingIcon,
1140
+ styles,
1141
+ isDark,
1142
+ pinned: pinnedKnobs.has("requiredMarking"),
1143
+ onTogglePin: () => togglePin("requiredMarking"),
1144
+ onUnset: () => unset("requiredMarking")
1145
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1146
+ label: "Zebra",
1147
+ options: Object.values(import_knobs.TableZebra),
1148
+ value: getOverride("tableZebra"),
1149
+ onChange: v => set("tableZebra", v),
1150
+ icon: tableZebraIcon,
1151
+ styles,
1152
+ isDark,
1153
+ pinned: pinnedKnobs.has("tableZebra"),
1154
+ onTogglePin: () => togglePin("tableZebra"),
1155
+ onUnset: () => unset("tableZebra")
1156
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1157
+ label: "Bulk bar",
1158
+ options: Object.values(import_knobs.BulkBarPlacement),
1159
+ value: getOverride("bulkBarPlacement"),
1160
+ onChange: v => set("bulkBarPlacement", v),
1161
+ icon: bulkBarPlacementIcon,
1162
+ styles,
1163
+ isDark,
1164
+ pinned: pinnedKnobs.has("bulkBarPlacement"),
1165
+ onTogglePin: () => togglePin("bulkBarPlacement"),
1166
+ onUnset: () => unset("bulkBarPlacement")
1167
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1168
+ label: "Select all",
1169
+ options: Object.values(import_knobs.SelectAllScope),
1170
+ value: getOverride("selectAllScope"),
1171
+ onChange: v => set("selectAllScope", v),
1172
+ icon: selectAllScopeIcon,
1173
+ styles,
1174
+ isDark,
1175
+ pinned: pinnedKnobs.has("selectAllScope"),
1176
+ onTogglePin: () => togglePin("selectAllScope"),
1177
+ onUnset: () => unset("selectAllScope")
1178
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1179
+ label: "Timestamp",
1180
+ options: Object.values(import_knobs.TimestampStyle),
1181
+ value: getOverride("timestampStyle"),
1182
+ onChange: v => set("timestampStyle", v),
1183
+ icon: timestampStyleIcon,
1184
+ styles,
1185
+ isDark,
1186
+ pinned: pinnedKnobs.has("timestampStyle"),
1187
+ onTogglePin: () => togglePin("timestampStyle"),
1188
+ onUnset: () => unset("timestampStyle")
1189
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1190
+ label: "Disabled",
1191
+ options: Object.values(import_knobs.DisabledStyle),
1192
+ value: getOverride("disabledStyle"),
1193
+ onChange: v => set("disabledStyle", v),
1194
+ icon: disabledStyleIcon,
1195
+ styles,
1196
+ isDark,
1197
+ pinned: pinnedKnobs.has("disabledStyle"),
1198
+ onTogglePin: () => togglePin("disabledStyle"),
1199
+ onUnset: () => unset("disabledStyle")
1200
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(IconGroup, {
1201
+ label: "Autofocus",
1202
+ options: Object.values(import_knobs.FormAutofocus),
1203
+ value: getOverride("formAutofocus"),
1204
+ onChange: v => set("formAutofocus", v),
1205
+ icon: formAutofocusIcon,
1206
+ styles,
1207
+ isDark,
1208
+ pinned: pinnedKnobs.has("formAutofocus"),
1209
+ onTogglePin: () => togglePin("formAutofocus"),
1210
+ onUnset: () => unset("formAutofocus")
1211
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsxs)("div", {
1212
+ style: {
1213
+ ...styles.card,
1214
+ flexDirection: "row",
1215
+ gap: 6,
1216
+ flexWrap: "wrap"
1217
+ },
1218
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("select", {
1219
+ title: "Design system profile",
1220
+ value: activeProfile,
1221
+ onChange: e => handleProfileChange(e.target.value),
1222
+ style: {
1223
+ ...styles.select,
1224
+ width: "auto",
1225
+ fontSize: 11,
1226
+ opacity: activeProfile ? 1 : 0.6
1227
+ },
1228
+ children: profileNames.map(name => /* @__PURE__ */(0, import_jsx_runtime.jsx)("option", {
1229
+ value: name,
1230
+ children: name || "profile"
1231
+ }, name))
1232
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
1233
+ type: "button",
1234
+ style: {
1235
+ ...styles.resetBtn,
1236
+ ...(copyStatus === "copied" ? {
1237
+ background: isDark ? "#1a3a1a" : "#d4edda",
1238
+ borderColor: isDark ? "#2d5a2d" : "#a3d9a5"
1239
+ } : copyStatus === "error" ? {
1240
+ background: isDark ? "#3a1a1a" : "#f8d7da",
1241
+ borderColor: isDark ? "#5a2d2d" : "#f5c6cb"
1242
+ } : {})
1243
+ },
1244
+ onClick: handleCopySnapshot,
1245
+ "aria-label": copyStatus === "copied" ? "Copied" : copyStatus === "error" ? "Copy failed" : "Copy snapshot",
1246
+ children: copyStatus === "copied" ? "\u2713" : copyStatus === "error" ? "!" : "\u29C9"
1247
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
1248
+ type: "button",
1249
+ style: styles.resetBtn,
1250
+ onClick: handleRandomize,
1251
+ children: "Random"
1252
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
1253
+ type: "button",
1254
+ style: styles.iconBtn(false),
1255
+ onClick: handleToggleAllStates,
1256
+ title: allStateKnobsExpanded ? "Collapse States" : "Expand States",
1257
+ "aria-label": allStateKnobsExpanded ? "Collapse States" : "Expand States",
1258
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
1259
+ width: "14",
1260
+ height: "14",
1261
+ viewBox: "0 0 16 16",
1262
+ fill: "none",
1263
+ role: "img",
1264
+ "aria-label": "States",
1265
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("title", {
1266
+ children: allStateKnobsExpanded ? "Collapse States" : "Expand States"
1267
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
1268
+ d: "M2.5 4.5h7M2.5 8h7M2.5 11.5h7",
1269
+ stroke: "currentColor",
1270
+ strokeWidth: "1.3",
1271
+ strokeLinecap: "round"
1272
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
1273
+ d: allStateKnobsExpanded ? "M12 10.5l-2-2 2-2" : "M10 6.5l2 2-2 2",
1274
+ stroke: "currentColor",
1275
+ strokeWidth: "1.3",
1276
+ strokeLinecap: "round",
1277
+ strokeLinejoin: "round"
1278
+ })]
1279
+ })
1280
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
1281
+ type: "button",
1282
+ style: styles.iconBtn(false),
1283
+ onClick: handleApplyDefaults,
1284
+ title: "Apply Defaults",
1285
+ "aria-label": "Apply Defaults",
1286
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
1287
+ width: "14",
1288
+ height: "14",
1289
+ viewBox: "0 0 16 16",
1290
+ fill: "none",
1291
+ role: "img",
1292
+ "aria-label": "Defaults",
1293
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("title", {
1294
+ children: "Apply Defaults"
1295
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
1296
+ d: "M2.5 4.5h11M2.5 8h11M2.5 11.5h11",
1297
+ stroke: "currentColor",
1298
+ strokeWidth: "1.3",
1299
+ strokeLinecap: "round"
1300
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("circle", {
1301
+ cx: "5",
1302
+ cy: "4.5",
1303
+ r: "1.2",
1304
+ fill: "currentColor"
1305
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("circle", {
1306
+ cx: "8",
1307
+ cy: "8",
1308
+ r: "1.2",
1309
+ fill: "currentColor"
1310
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("circle", {
1311
+ cx: "11",
1312
+ cy: "11.5",
1313
+ r: "1.2",
1314
+ fill: "currentColor"
1315
+ })]
1316
+ })
1317
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("button", {
1318
+ type: "button",
1319
+ style: styles.iconBtn(false),
1320
+ onClick: handleClearKnobs,
1321
+ title: "Clear",
1322
+ "aria-label": "Clear",
1323
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)("svg", {
1324
+ width: "14",
1325
+ height: "14",
1326
+ viewBox: "0 0 16 16",
1327
+ fill: "none",
1328
+ role: "img",
1329
+ "aria-label": "Clear",
1330
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)("title", {
1331
+ children: "Clear"
1332
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)("path", {
1333
+ d: "M3.5 3.5l9 9M12.5 3.5l-9 9",
1334
+ stroke: "currentColor",
1335
+ strokeWidth: "1.4",
1336
+ strokeLinecap: "round"
1337
+ })]
1338
+ })
1339
+ })]
1340
+ })]
1341
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_ColorLineVisualizer.ColorLineVisualizer, {
1342
+ knobs,
1343
+ isDark,
1344
+ themeColors: extractThemeTokenColors(tamaguiConfig, isDark ? "dark" : "light", currentThemeColor || void 0),
1345
+ oppositeThemeColors: extractThemeTokenColors(tamaguiConfig, isDark ? "light" : "dark", currentThemeColor || void 0),
1346
+ accentColors: extractThemeTokenColors(tamaguiConfig, isDark ? "dark" : "light", currentThemeColor || void 0, "accent"),
1347
+ oppositeAccentColors: extractThemeTokenColors(tamaguiConfig, isDark ? "light" : "dark", currentThemeColor || void 0, "accent")
1348
+ })]
1349
+ });
1350
+ }