@mario_hahn/jumpy-ui 0.13.1 → 0.14.1

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 (1927) hide show
  1. package/README.md +53 -7
  2. package/dist/{chunk-XX3RYGLI.js → chunk-KDFNGI6Y.js} +5125 -1003
  3. package/dist/chunk-KUCMD6DR.js +4304 -0
  4. package/dist/chunk-KYDYZC4E.js +365 -0
  5. package/dist/components.js +218 -0
  6. package/dist/editor.js +11 -0
  7. package/dist/index.js +85 -4550
  8. package/dist/theme.js +5 -1
  9. package/editor.d.ts +1 -0
  10. package/index.d.ts +2 -0
  11. package/package.json +11 -7
  12. package/theme.d.ts +5 -0
  13. package/tokens/web/color-sources.js +185 -317
  14. package/tokens/web/css/default-dark/variables.css +184 -184
  15. package/tokens/web/css/default-light/variables.css +179 -179
  16. package/tokens/web/css/jumpy-dark/variables.css +6 -6
  17. package/tokens/web/css/jumpy-light/variables.css +3 -3
  18. package/tokens/web/css/orbit-dark/variables.css +1184 -0
  19. package/tokens/web/css/orbit-light/variables.css +1184 -0
  20. package/tokens/web/js/default-dark/variables.cjs +184 -184
  21. package/tokens/web/js/default-dark/variables.js +184 -184
  22. package/tokens/web/js/default-light/variables.cjs +179 -179
  23. package/tokens/web/js/default-light/variables.js +179 -179
  24. package/tokens/web/js/jumpy-dark/variables.cjs +6 -6
  25. package/tokens/web/js/jumpy-dark/variables.js +6 -6
  26. package/tokens/web/js/jumpy-light/variables.cjs +3 -3
  27. package/tokens/web/js/jumpy-light/variables.js +3 -3
  28. package/tokens/web/js/orbit-dark/variables.cjs +2112 -0
  29. package/tokens/web/js/orbit-dark/variables.d.ts +2 -0
  30. package/tokens/web/js/orbit-dark/variables.js +2112 -0
  31. package/tokens/web/js/orbit-light/variables.cjs +2112 -0
  32. package/tokens/web/js/orbit-light/variables.d.ts +2 -0
  33. package/tokens/web/js/orbit-light/variables.js +2112 -0
  34. package/tokens/web/json/default-dark/flat-variables.json +184 -184
  35. package/tokens/web/json/default-dark/nested-variables.json +184 -184
  36. package/tokens/web/json/default-dark/variables.json +184 -184
  37. package/tokens/web/json/default-light/flat-variables.json +179 -179
  38. package/tokens/web/json/default-light/nested-variables.json +179 -179
  39. package/tokens/web/json/default-light/variables.json +179 -179
  40. package/tokens/web/json/jumpy-dark/flat-variables.json +6 -6
  41. package/tokens/web/json/jumpy-dark/nested-variables.json +6 -6
  42. package/tokens/web/json/jumpy-dark/variables.json +6 -6
  43. package/tokens/web/json/jumpy-light/flat-variables.json +3 -3
  44. package/tokens/web/json/jumpy-light/nested-variables.json +3 -3
  45. package/tokens/web/json/jumpy-light/variables.json +3 -3
  46. package/tokens/web/json/orbit-dark/flat-variables.json +1180 -0
  47. package/tokens/web/json/orbit-dark/nested-variables.json +2108 -0
  48. package/tokens/web/json/orbit-dark/variables.json +4714 -0
  49. package/tokens/web/json/orbit-light/flat-variables.json +1180 -0
  50. package/tokens/web/json/orbit-light/nested-variables.json +2108 -0
  51. package/tokens/web/json/orbit-light/variables.json +4714 -0
  52. package/tokens/android/build.gradle.kts +0 -4
  53. package/tokens/android/settings.gradle.kts +0 -4
  54. package/tokens/android/tokens/build.gradle.kts +0 -13
  55. package/tokens/android/tokens/src/main/kotlin/com/mariohahn/jumpy/tokens/defaultDark/Tokens.kt +0 -2409
  56. package/tokens/android/tokens/src/main/kotlin/com/mariohahn/jumpy/tokens/defaultLight/Tokens.kt +0 -2409
  57. package/tokens/android/tokens/src/main/kotlin/com/mariohahn/jumpy/tokens/jumpyDark/Tokens.kt +0 -2409
  58. package/tokens/android/tokens/src/main/kotlin/com/mariohahn/jumpy/tokens/jumpyLight/Tokens.kt +0 -2409
  59. package/tokens/ios/Package.swift +0 -26
  60. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.generated.swift +0 -1232
  61. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/Contents.json +0 -6
  62. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDefaultAction.colorset/Contents.json +0 -38
  63. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDefaultBorder.colorset/Contents.json +0 -38
  64. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDefaultFocus.colorset/Contents.json +0 -38
  65. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDefaultIcon.colorset/Contents.json +0 -38
  66. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDefaultSurface.colorset/Contents.json +0 -38
  67. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDefaultText.colorset/Contents.json +0 -38
  68. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDisabledAction.colorset/Contents.json +0 -38
  69. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDisabledBorder.colorset/Contents.json +0 -38
  70. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDisabledFocus.colorset/Contents.json +0 -38
  71. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDisabledIcon.colorset/Contents.json +0 -38
  72. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDisabledSurface.colorset/Contents.json +0 -38
  73. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmDisabledText.colorset/Contents.json +0 -38
  74. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmFocusAction.colorset/Contents.json +0 -38
  75. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmFocusBorder.colorset/Contents.json +0 -38
  76. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmFocusFocusRing.colorset/Contents.json +0 -38
  77. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmFocusIcon.colorset/Contents.json +0 -38
  78. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmFocusSurface.colorset/Contents.json +0 -38
  79. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmFocusText.colorset/Contents.json +0 -38
  80. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmHoverAction.colorset/Contents.json +0 -38
  81. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmHoverBorder.colorset/Contents.json +0 -38
  82. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmHoverFocus.colorset/Contents.json +0 -38
  83. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmHoverIcon.colorset/Contents.json +0 -38
  84. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmHoverSurface.colorset/Contents.json +0 -38
  85. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  86. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmHoverText.colorset/Contents.json +0 -38
  87. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmPressedAction.colorset/Contents.json +0 -38
  88. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmPressedBorder.colorset/Contents.json +0 -38
  89. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmPressedFocus.colorset/Contents.json +0 -38
  90. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmPressedIcon.colorset/Contents.json +0 -38
  91. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmPressedSurface.colorset/Contents.json +0 -38
  92. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessAlarmPressedText.colorset/Contents.json +0 -38
  93. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDefaultAction.colorset/Contents.json +0 -38
  94. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDefaultBorder.colorset/Contents.json +0 -38
  95. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDefaultFocus.colorset/Contents.json +0 -38
  96. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDefaultIcon.colorset/Contents.json +0 -38
  97. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDefaultSurface.colorset/Contents.json +0 -38
  98. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDefaultText.colorset/Contents.json +0 -38
  99. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDisabledAction.colorset/Contents.json +0 -38
  100. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDisabledBorder.colorset/Contents.json +0 -38
  101. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDisabledFocus.colorset/Contents.json +0 -38
  102. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDisabledIcon.colorset/Contents.json +0 -38
  103. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDisabledSurface.colorset/Contents.json +0 -38
  104. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularDisabledText.colorset/Contents.json +0 -38
  105. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularFocusAction.colorset/Contents.json +0 -38
  106. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularFocusBorder.colorset/Contents.json +0 -38
  107. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularFocusFocusRing.colorset/Contents.json +0 -38
  108. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularFocusIcon.colorset/Contents.json +0 -38
  109. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularFocusSurface.colorset/Contents.json +0 -38
  110. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularFocusText.colorset/Contents.json +0 -38
  111. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularHoverAction.colorset/Contents.json +0 -38
  112. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularHoverBorder.colorset/Contents.json +0 -38
  113. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularHoverFocus.colorset/Contents.json +0 -38
  114. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularHoverIcon.colorset/Contents.json +0 -38
  115. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularHoverSurface.colorset/Contents.json +0 -38
  116. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  117. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularHoverText.colorset/Contents.json +0 -38
  118. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularPressedAction.colorset/Contents.json +0 -38
  119. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularPressedBorder.colorset/Contents.json +0 -38
  120. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularPressedFocus.colorset/Contents.json +0 -38
  121. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularPressedIcon.colorset/Contents.json +0 -38
  122. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularPressedSurface.colorset/Contents.json +0 -38
  123. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsBorderlessRegularPressedText.colorset/Contents.json +0 -38
  124. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDefaultBorder.colorset/Contents.json +0 -38
  125. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDefaultIcon.colorset/Contents.json +0 -38
  126. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDefaultSurface.colorset/Contents.json +0 -38
  127. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDefaultText.colorset/Contents.json +0 -38
  128. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDisabledBorder.colorset/Contents.json +0 -38
  129. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDisabledIcon.colorset/Contents.json +0 -38
  130. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDisabledSurface.colorset/Contents.json +0 -38
  131. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  132. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmDisabledText.colorset/Contents.json +0 -38
  133. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmFocusBorder.colorset/Contents.json +0 -38
  134. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmFocusFocusRing.colorset/Contents.json +0 -38
  135. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmFocusIcon.colorset/Contents.json +0 -38
  136. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmFocusSurface.colorset/Contents.json +0 -38
  137. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmFocusText.colorset/Contents.json +0 -38
  138. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmHoverBorder.colorset/Contents.json +0 -38
  139. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmHoverIcon.colorset/Contents.json +0 -38
  140. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmHoverSurface.colorset/Contents.json +0 -38
  141. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmHoverText.colorset/Contents.json +0 -38
  142. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmPressedBorder.colorset/Contents.json +0 -38
  143. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmPressedIcon.colorset/Contents.json +0 -38
  144. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmPressedSurface.colorset/Contents.json +0 -38
  145. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryAlarmPressedText.colorset/Contents.json +0 -38
  146. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDefaultBorder.colorset/Contents.json +0 -38
  147. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDefaultIcon.colorset/Contents.json +0 -38
  148. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDefaultSurface.colorset/Contents.json +0 -38
  149. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDefaultText.colorset/Contents.json +0 -38
  150. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDisabledBorder.colorset/Contents.json +0 -38
  151. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDisabledIcon.colorset/Contents.json +0 -38
  152. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDisabledSurface.colorset/Contents.json +0 -38
  153. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  154. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoDisabledText.colorset/Contents.json +0 -38
  155. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoFocusBorder.colorset/Contents.json +0 -38
  156. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoFocusFocusRing.colorset/Contents.json +0 -38
  157. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoFocusIcon.colorset/Contents.json +0 -38
  158. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoFocusSurface.colorset/Contents.json +0 -38
  159. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoFocusText.colorset/Contents.json +0 -38
  160. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoHoverBorder.colorset/Contents.json +0 -38
  161. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoHoverIcon.colorset/Contents.json +0 -38
  162. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoHoverSurface.colorset/Contents.json +0 -38
  163. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoHoverText.colorset/Contents.json +0 -38
  164. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoPressedBorder.colorset/Contents.json +0 -38
  165. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoPressedIcon.colorset/Contents.json +0 -38
  166. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoPressedSurface.colorset/Contents.json +0 -38
  167. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryInfoPressedText.colorset/Contents.json +0 -38
  168. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDefaultBorder.colorset/Contents.json +0 -38
  169. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDefaultIcon.colorset/Contents.json +0 -38
  170. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDefaultSurface.colorset/Contents.json +0 -38
  171. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDefaultText.colorset/Contents.json +0 -38
  172. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDisabledBorder.colorset/Contents.json +0 -38
  173. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDisabledIcon.colorset/Contents.json +0 -38
  174. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDisabledSurface.colorset/Contents.json +0 -38
  175. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  176. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularDisabledText.colorset/Contents.json +0 -38
  177. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularFocusBorder.colorset/Contents.json +0 -38
  178. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularFocusFocusRing.colorset/Contents.json +0 -38
  179. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularFocusIcon.colorset/Contents.json +0 -38
  180. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularFocusSurface.colorset/Contents.json +0 -38
  181. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularFocusText.colorset/Contents.json +0 -38
  182. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularHoverBorder.colorset/Contents.json +0 -38
  183. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularHoverIcon.colorset/Contents.json +0 -38
  184. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularHoverSurface.colorset/Contents.json +0 -38
  185. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularHoverText.colorset/Contents.json +0 -38
  186. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularPressedBorder.colorset/Contents.json +0 -38
  187. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularPressedIcon.colorset/Contents.json +0 -38
  188. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularPressedSurface.colorset/Contents.json +0 -38
  189. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryRegularPressedText.colorset/Contents.json +0 -38
  190. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDefaultBorder.colorset/Contents.json +0 -38
  191. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDefaultIcon.colorset/Contents.json +0 -38
  192. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDefaultSurface.colorset/Contents.json +0 -38
  193. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDefaultText.colorset/Contents.json +0 -38
  194. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDisabledBorder.colorset/Contents.json +0 -38
  195. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDisabledIcon.colorset/Contents.json +0 -38
  196. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDisabledSurface.colorset/Contents.json +0 -38
  197. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  198. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningDisabledText.colorset/Contents.json +0 -38
  199. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningFocusBorder.colorset/Contents.json +0 -38
  200. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningFocusFocusRing.colorset/Contents.json +0 -38
  201. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningFocusIcon.colorset/Contents.json +0 -38
  202. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningFocusSurface.colorset/Contents.json +0 -38
  203. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningFocusText.colorset/Contents.json +0 -38
  204. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningHoverBorder.colorset/Contents.json +0 -38
  205. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningHoverIcon.colorset/Contents.json +0 -38
  206. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningHoverSurface.colorset/Contents.json +0 -38
  207. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningHoverText.colorset/Contents.json +0 -38
  208. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningPressedBorder.colorset/Contents.json +0 -38
  209. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningPressedIcon.colorset/Contents.json +0 -38
  210. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningPressedSurface.colorset/Contents.json +0 -38
  211. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsPrimaryWarningPressedText.colorset/Contents.json +0 -38
  212. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDefaultAction.colorset/Contents.json +0 -38
  213. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDefaultBorder.colorset/Contents.json +0 -38
  214. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDefaultIcon.colorset/Contents.json +0 -38
  215. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDefaultSurface.colorset/Contents.json +0 -38
  216. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDefaultText.colorset/Contents.json +0 -38
  217. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDisabledAction.colorset/Contents.json +0 -38
  218. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDisabledBorder.colorset/Contents.json +0 -38
  219. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDisabledIcon.colorset/Contents.json +0 -38
  220. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDisabledSurface.colorset/Contents.json +0 -38
  221. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmDisabledText.colorset/Contents.json +0 -38
  222. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmFocusAction.colorset/Contents.json +0 -38
  223. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmFocusBorder.colorset/Contents.json +0 -38
  224. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmFocusFocusRing.colorset/Contents.json +0 -38
  225. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmFocusIcon.colorset/Contents.json +0 -38
  226. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmFocusSurface.colorset/Contents.json +0 -38
  227. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmFocusText.colorset/Contents.json +0 -38
  228. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmHoverAction.colorset/Contents.json +0 -38
  229. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmHoverBorder.colorset/Contents.json +0 -38
  230. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmHoverIcon.colorset/Contents.json +0 -38
  231. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmHoverSurface.colorset/Contents.json +0 -38
  232. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  233. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmHoverText.colorset/Contents.json +0 -38
  234. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmPressedAction.colorset/Contents.json +0 -38
  235. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmPressedBorder.colorset/Contents.json +0 -38
  236. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmPressedIcon.colorset/Contents.json +0 -38
  237. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmPressedSurface.colorset/Contents.json +0 -38
  238. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryAlarmPressedText.colorset/Contents.json +0 -38
  239. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDefaultAction.colorset/Contents.json +0 -38
  240. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDefaultBorder.colorset/Contents.json +0 -38
  241. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDefaultIcon.colorset/Contents.json +0 -38
  242. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDefaultSurface.colorset/Contents.json +0 -38
  243. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDefaultText.colorset/Contents.json +0 -38
  244. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDisabledAction.colorset/Contents.json +0 -38
  245. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDisabledBorder.colorset/Contents.json +0 -38
  246. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDisabledIcon.colorset/Contents.json +0 -38
  247. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDisabledSurface.colorset/Contents.json +0 -38
  248. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularDisabledText.colorset/Contents.json +0 -38
  249. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularFocusAction.colorset/Contents.json +0 -38
  250. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularFocusBorder.colorset/Contents.json +0 -38
  251. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularFocusFocusRing.colorset/Contents.json +0 -38
  252. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularFocusIcon.colorset/Contents.json +0 -38
  253. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularFocusSurface.colorset/Contents.json +0 -38
  254. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularFocusText.colorset/Contents.json +0 -38
  255. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularHoverAction.colorset/Contents.json +0 -38
  256. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularHoverBorder.colorset/Contents.json +0 -38
  257. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularHoverIcon.colorset/Contents.json +0 -38
  258. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularHoverSurface.colorset/Contents.json +0 -38
  259. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  260. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularHoverText.colorset/Contents.json +0 -38
  261. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularPressedAction.colorset/Contents.json +0 -38
  262. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularPressedBorder.colorset/Contents.json +0 -38
  263. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularPressedIcon.colorset/Contents.json +0 -38
  264. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularPressedSurface.colorset/Contents.json +0 -38
  265. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsSecondaryRegularPressedText.colorset/Contents.json +0 -38
  266. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDefaultAction.colorset/Contents.json +0 -38
  267. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDefaultBorder.colorset/Contents.json +0 -38
  268. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDefaultFocus.colorset/Contents.json +0 -38
  269. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDefaultIcon.colorset/Contents.json +0 -38
  270. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDefaultSurface.colorset/Contents.json +0 -38
  271. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDefaultText.colorset/Contents.json +0 -38
  272. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDisabledAction.colorset/Contents.json +0 -38
  273. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDisabledBorder.colorset/Contents.json +0 -38
  274. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDisabledFocus.colorset/Contents.json +0 -38
  275. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDisabledIcon.colorset/Contents.json +0 -38
  276. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDisabledSurface.colorset/Contents.json +0 -38
  277. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmDisabledText.colorset/Contents.json +0 -38
  278. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmFocusAction.colorset/Contents.json +0 -38
  279. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmFocusBorder.colorset/Contents.json +0 -38
  280. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmFocusFocusRing.colorset/Contents.json +0 -38
  281. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmFocusIcon.colorset/Contents.json +0 -38
  282. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmFocusSurface.colorset/Contents.json +0 -38
  283. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmFocusText.colorset/Contents.json +0 -38
  284. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmHoverAction.colorset/Contents.json +0 -38
  285. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmHoverBorder.colorset/Contents.json +0 -38
  286. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmHoverFocus.colorset/Contents.json +0 -38
  287. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmHoverIcon.colorset/Contents.json +0 -38
  288. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmHoverSurface.colorset/Contents.json +0 -38
  289. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  290. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmHoverText.colorset/Contents.json +0 -38
  291. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmPressedAction.colorset/Contents.json +0 -38
  292. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmPressedBorder.colorset/Contents.json +0 -38
  293. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmPressedFocus.colorset/Contents.json +0 -38
  294. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmPressedIcon.colorset/Contents.json +0 -38
  295. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmPressedSurface.colorset/Contents.json +0 -38
  296. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryAlarmPressedText.colorset/Contents.json +0 -38
  297. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDefaultAction.colorset/Contents.json +0 -38
  298. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDefaultBorder.colorset/Contents.json +0 -38
  299. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDefaultFocus.colorset/Contents.json +0 -38
  300. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDefaultIcon.colorset/Contents.json +0 -38
  301. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDefaultSurface.colorset/Contents.json +0 -38
  302. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDefaultText.colorset/Contents.json +0 -38
  303. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDisabledAction.colorset/Contents.json +0 -38
  304. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDisabledBorder.colorset/Contents.json +0 -38
  305. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDisabledFocus.colorset/Contents.json +0 -38
  306. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDisabledIcon.colorset/Contents.json +0 -38
  307. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDisabledSurface.colorset/Contents.json +0 -38
  308. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularDisabledText.colorset/Contents.json +0 -38
  309. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularFocusAction.colorset/Contents.json +0 -38
  310. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularFocusBorder.colorset/Contents.json +0 -38
  311. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularFocusFocusRing.colorset/Contents.json +0 -38
  312. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularFocusIcon.colorset/Contents.json +0 -38
  313. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularFocusSurface.colorset/Contents.json +0 -38
  314. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularFocusText.colorset/Contents.json +0 -38
  315. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularHoverAction.colorset/Contents.json +0 -38
  316. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularHoverBorder.colorset/Contents.json +0 -38
  317. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularHoverFocus.colorset/Contents.json +0 -38
  318. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularHoverIcon.colorset/Contents.json +0 -38
  319. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularHoverSurface.colorset/Contents.json +0 -38
  320. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  321. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularHoverText.colorset/Contents.json +0 -38
  322. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularPressedAction.colorset/Contents.json +0 -38
  323. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularPressedBorder.colorset/Contents.json +0 -38
  324. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularPressedFocus.colorset/Contents.json +0 -38
  325. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularPressedIcon.colorset/Contents.json +0 -38
  326. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularPressedSurface.colorset/Contents.json +0 -38
  327. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/actionsTertiaryRegularPressedText.colorset/Contents.json +0 -38
  328. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDefaultBorder.colorset/Contents.json +0 -38
  329. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDefaultIcon.colorset/Contents.json +0 -38
  330. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDefaultSubtext.colorset/Contents.json +0 -38
  331. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDefaultSurface.colorset/Contents.json +0 -38
  332. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDefaultText.colorset/Contents.json +0 -38
  333. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDisabledBorder.colorset/Contents.json +0 -38
  334. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDisabledIcon.colorset/Contents.json +0 -38
  335. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDisabledSubtext.colorset/Contents.json +0 -38
  336. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDisabledSurface.colorset/Contents.json +0 -38
  337. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDisabledText.colorset/Contents.json +0 -38
  338. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDraggedBorder.colorset/Contents.json +0 -38
  339. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDraggedIcon.colorset/Contents.json +0 -38
  340. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDraggedSubtext.colorset/Contents.json +0 -38
  341. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDraggedSurface.colorset/Contents.json +0 -38
  342. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveDraggedText.colorset/Contents.json +0 -38
  343. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveFocusBorder.colorset/Contents.json +0 -38
  344. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveFocusFocusRing.colorset/Contents.json +0 -38
  345. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveFocusIcon.colorset/Contents.json +0 -38
  346. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveFocusSubtext.colorset/Contents.json +0 -38
  347. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveFocusSurface.colorset/Contents.json +0 -38
  348. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveFocusText.colorset/Contents.json +0 -38
  349. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveHoverBorder.colorset/Contents.json +0 -38
  350. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveHoverIcon.colorset/Contents.json +0 -38
  351. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveHoverSubtext.colorset/Contents.json +0 -38
  352. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveHoverSurface.colorset/Contents.json +0 -38
  353. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActiveHoverText.colorset/Contents.json +0 -38
  354. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActivePressedBorder.colorset/Contents.json +0 -38
  355. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActivePressedIcon.colorset/Contents.json +0 -38
  356. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActivePressedSubtext.colorset/Contents.json +0 -38
  357. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActivePressedSurface.colorset/Contents.json +0 -38
  358. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardActivePressedText.colorset/Contents.json +0 -38
  359. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDefaultBorder.colorset/Contents.json +0 -38
  360. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDefaultIcon.colorset/Contents.json +0 -38
  361. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDefaultSubtext.colorset/Contents.json +0 -38
  362. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDefaultSurface.colorset/Contents.json +0 -38
  363. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDefaultText.colorset/Contents.json +0 -38
  364. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDisabledBorder.colorset/Contents.json +0 -38
  365. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDisabledIcon.colorset/Contents.json +0 -38
  366. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDisabledSubtext.colorset/Contents.json +0 -38
  367. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDisabledSurface.colorset/Contents.json +0 -38
  368. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDisabledText.colorset/Contents.json +0 -38
  369. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDraggedBorder.colorset/Contents.json +0 -38
  370. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDraggedIcon.colorset/Contents.json +0 -38
  371. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDraggedSubtext.colorset/Contents.json +0 -38
  372. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDraggedSurface.colorset/Contents.json +0 -38
  373. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveDraggedText.colorset/Contents.json +0 -38
  374. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveFocusBorder.colorset/Contents.json +0 -38
  375. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveFocusFocusRing.colorset/Contents.json +0 -38
  376. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveFocusIcon.colorset/Contents.json +0 -38
  377. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveFocusSubtext.colorset/Contents.json +0 -38
  378. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveFocusSurface.colorset/Contents.json +0 -38
  379. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveFocusText.colorset/Contents.json +0 -38
  380. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveHoverBorder.colorset/Contents.json +0 -38
  381. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveHoverIcon.colorset/Contents.json +0 -38
  382. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveHoverSubtext.colorset/Contents.json +0 -38
  383. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveHoverSurface.colorset/Contents.json +0 -38
  384. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactiveHoverText.colorset/Contents.json +0 -38
  385. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactivePressedBorder.colorset/Contents.json +0 -38
  386. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactivePressedIcon.colorset/Contents.json +0 -38
  387. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactivePressedSubtext.colorset/Contents.json +0 -38
  388. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactivePressedSurface.colorset/Contents.json +0 -38
  389. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/cardInactivePressedText.colorset/Contents.json +0 -38
  390. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDefaultInnerCircleOutline.colorset/Contents.json +0 -38
  391. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDefaultInnerCircleSurface.colorset/Contents.json +0 -38
  392. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDefaultOuterCircleSurface.colorset/Contents.json +0 -38
  393. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDefaultSurface.colorset/Contents.json +0 -38
  394. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDisabledInnerCircleOutline.colorset/Contents.json +0 -38
  395. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDisabledInnerCircleSurface.colorset/Contents.json +0 -38
  396. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDisabledOuterCircleSurface.colorset/Contents.json +0 -38
  397. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkDisabledSurface.colorset/Contents.json +0 -38
  398. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkFocusFocusRing.colorset/Contents.json +0 -38
  399. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkFocusInnerCircleOutline.colorset/Contents.json +0 -38
  400. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkFocusInnerCircleSurface.colorset/Contents.json +0 -38
  401. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkFocusOuterCircleSurface.colorset/Contents.json +0 -38
  402. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkFocusSurface.colorset/Contents.json +0 -38
  403. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkHoverInnerCircleOutline.colorset/Contents.json +0 -38
  404. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkHoverInnerCircleSurface.colorset/Contents.json +0 -38
  405. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkHoverOuterCircleSurface.colorset/Contents.json +0 -38
  406. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkHoverSurface.colorset/Contents.json +0 -38
  407. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkPressedInnerCircleOutline.colorset/Contents.json +0 -38
  408. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkPressedInnerCircleSurface.colorset/Contents.json +0 -38
  409. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkPressedOuterCircleSurface.colorset/Contents.json +0 -38
  410. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/coachmarkPressedSurface.colorset/Contents.json +0 -38
  411. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpBackgroundHigh.colorset/Contents.json +0 -38
  412. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpBackgroundInRange.colorset/Contents.json +0 -38
  413. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpBackgroundLow.colorset/Contents.json +0 -38
  414. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpBackgroundVeryHigh.colorset/Contents.json +0 -38
  415. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpBackgroundVeryLow.colorset/Contents.json +0 -38
  416. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpDarkRed150.colorset/Contents.json +0 -38
  417. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpDarkRed300.colorset/Contents.json +0 -38
  418. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpDarkRed500.colorset/Contents.json +0 -38
  419. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpDarkRed700.colorset/Contents.json +0 -38
  420. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpDarkRed950.colorset/Contents.json +0 -38
  421. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpForegroundHigh.colorset/Contents.json +0 -38
  422. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpForegroundInRange.colorset/Contents.json +0 -38
  423. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpForegroundLow.colorset/Contents.json +0 -38
  424. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpForegroundVeryHigh.colorset/Contents.json +0 -38
  425. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpForegroundVeryLow.colorset/Contents.json +0 -38
  426. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpGreen150.colorset/Contents.json +0 -38
  427. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpGreen300.colorset/Contents.json +0 -38
  428. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpGreen500.colorset/Contents.json +0 -38
  429. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpGreen700.colorset/Contents.json +0 -38
  430. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpGreen950.colorset/Contents.json +0 -38
  431. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpInterfaceHigh.colorset/Contents.json +0 -38
  432. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpInterfaceInRange.colorset/Contents.json +0 -38
  433. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpInterfaceLow.colorset/Contents.json +0 -38
  434. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpInterfaceNoValue.colorset/Contents.json +0 -38
  435. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpInterfaceVeryHigh.colorset/Contents.json +0 -38
  436. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpInterfaceVeryLow.colorset/Contents.json +0 -38
  437. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpOrange150.colorset/Contents.json +0 -38
  438. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpOrange300.colorset/Contents.json +0 -38
  439. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpOrange500.colorset/Contents.json +0 -38
  440. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpOrange700.colorset/Contents.json +0 -38
  441. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpOrange950.colorset/Contents.json +0 -38
  442. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpRed150.colorset/Contents.json +0 -38
  443. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpRed300.colorset/Contents.json +0 -38
  444. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpRed500.colorset/Contents.json +0 -38
  445. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpRed700.colorset/Contents.json +0 -38
  446. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpRed950.colorset/Contents.json +0 -38
  447. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpYellow150.colorset/Contents.json +0 -38
  448. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpYellow300.colorset/Contents.json +0 -38
  449. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpYellow500.colorset/Contents.json +0 -38
  450. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpYellow700.colorset/Contents.json +0 -38
  451. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAgpYellow950.colorset/Contents.json +0 -38
  452. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmBase.colorset/Contents.json +0 -38
  453. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmDark.colorset/Contents.json +0 -38
  454. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmDarkbase.colorset/Contents.json +0 -38
  455. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmExtradark.colorset/Contents.json +0 -38
  456. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmExtralight.colorset/Contents.json +0 -38
  457. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmLight.colorset/Contents.json +0 -38
  458. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmLightbase.colorset/Contents.json +0 -38
  459. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmUltradark.colorset/Contents.json +0 -38
  460. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorAlarmUltralight.colorset/Contents.json +0 -38
  461. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBackgroundDefault.colorset/Contents.json +0 -38
  462. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige100.colorset/Contents.json +0 -38
  463. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige200.colorset/Contents.json +0 -38
  464. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige300.colorset/Contents.json +0 -38
  465. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige400.colorset/Contents.json +0 -38
  466. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige500.colorset/Contents.json +0 -38
  467. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige600.colorset/Contents.json +0 -38
  468. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige700.colorset/Contents.json +0 -38
  469. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige800.colorset/Contents.json +0 -38
  470. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBeige900.colorset/Contents.json +0 -38
  471. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue100.colorset/Contents.json +0 -38
  472. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue1000.colorset/Contents.json +0 -38
  473. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue200.colorset/Contents.json +0 -38
  474. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue300.colorset/Contents.json +0 -38
  475. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue400.colorset/Contents.json +0 -38
  476. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue500.colorset/Contents.json +0 -38
  477. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue600.colorset/Contents.json +0 -38
  478. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue700.colorset/Contents.json +0 -38
  479. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue800.colorset/Contents.json +0 -38
  480. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBlue900.colorset/Contents.json +0 -38
  481. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand0.colorset/Contents.json +0 -38
  482. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand100.colorset/Contents.json +0 -38
  483. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand200.colorset/Contents.json +0 -38
  484. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand300.colorset/Contents.json +0 -38
  485. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand400.colorset/Contents.json +0 -38
  486. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand500.colorset/Contents.json +0 -38
  487. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand600.colorset/Contents.json +0 -38
  488. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand700.colorset/Contents.json +0 -38
  489. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand800.colorset/Contents.json +0 -38
  490. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrand900.colorset/Contents.json +0 -38
  491. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrandBase.colorset/Contents.json +0 -38
  492. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrandKeyline.colorset/Contents.json +0 -38
  493. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorBrandUltralight.colorset/Contents.json +0 -38
  494. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen100.colorset/Contents.json +0 -38
  495. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen200.colorset/Contents.json +0 -38
  496. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen300.colorset/Contents.json +0 -38
  497. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen400.colorset/Contents.json +0 -38
  498. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen500.colorset/Contents.json +0 -38
  499. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen600.colorset/Contents.json +0 -38
  500. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen700.colorset/Contents.json +0 -38
  501. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen800.colorset/Contents.json +0 -38
  502. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorGreen900.colorset/Contents.json +0 -38
  503. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationSolidDark.colorset/Contents.json +0 -38
  504. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationSolidExtraLight.colorset/Contents.json +0 -38
  505. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationSolidGlow.colorset/Contents.json +0 -38
  506. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationSolidLight.colorset/Contents.json +0 -38
  507. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationSolidMedium.colorset/Contents.json +0 -38
  508. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationSolidWhite.colorset/Contents.json +0 -38
  509. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTranslucidDark.colorset/Contents.json +0 -38
  510. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTranslucidExtraLight.colorset/Contents.json +0 -38
  511. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTranslucidGlow.colorset/Contents.json +0 -38
  512. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTranslucidLight.colorset/Contents.json +0 -38
  513. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTranslucidMedium.colorset/Contents.json +0 -38
  514. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTranslucidWhite.colorset/Contents.json +0 -38
  515. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTransparentGlow.colorset/Contents.json +0 -38
  516. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorIllustrationTransparentWhite.colorset/Contents.json +0 -38
  517. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta100.colorset/Contents.json +0 -38
  518. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta200.colorset/Contents.json +0 -38
  519. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta300.colorset/Contents.json +0 -38
  520. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta400.colorset/Contents.json +0 -38
  521. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta500.colorset/Contents.json +0 -38
  522. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta600.colorset/Contents.json +0 -38
  523. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta700.colorset/Contents.json +0 -38
  524. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMagenta800.colorset/Contents.json +0 -38
  525. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber100.colorset/Contents.json +0 -38
  526. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber200.colorset/Contents.json +0 -38
  527. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber300.colorset/Contents.json +0 -38
  528. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber400.colorset/Contents.json +0 -38
  529. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber500.colorset/Contents.json +0 -38
  530. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber600.colorset/Contents.json +0 -38
  531. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber700.colorset/Contents.json +0 -38
  532. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber800.colorset/Contents.json +0 -38
  533. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAmber900.colorset/Contents.json +0 -38
  534. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua100.colorset/Contents.json +0 -38
  535. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua200.colorset/Contents.json +0 -38
  536. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua300.colorset/Contents.json +0 -38
  537. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua400.colorset/Contents.json +0 -38
  538. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua500.colorset/Contents.json +0 -38
  539. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua600.colorset/Contents.json +0 -38
  540. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua700.colorset/Contents.json +0 -38
  541. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua800.colorset/Contents.json +0 -38
  542. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAqua900.colorset/Contents.json +0 -38
  543. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure100.colorset/Contents.json +0 -38
  544. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure200.colorset/Contents.json +0 -38
  545. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure300.colorset/Contents.json +0 -38
  546. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure400.colorset/Contents.json +0 -38
  547. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure500.colorset/Contents.json +0 -38
  548. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure600.colorset/Contents.json +0 -38
  549. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure700.colorset/Contents.json +0 -38
  550. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure800.colorset/Contents.json +0 -38
  551. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyAzure900.colorset/Contents.json +0 -38
  552. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue100.colorset/Contents.json +0 -38
  553. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue200.colorset/Contents.json +0 -38
  554. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue300.colorset/Contents.json +0 -38
  555. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue400.colorset/Contents.json +0 -38
  556. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue500.colorset/Contents.json +0 -38
  557. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue600.colorset/Contents.json +0 -38
  558. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue700.colorset/Contents.json +0 -38
  559. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue800.colorset/Contents.json +0 -38
  560. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyBlue900.colorset/Contents.json +0 -38
  561. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange100.colorset/Contents.json +0 -38
  562. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange200.colorset/Contents.json +0 -38
  563. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange300.colorset/Contents.json +0 -38
  564. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange400.colorset/Contents.json +0 -38
  565. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange500.colorset/Contents.json +0 -38
  566. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange600.colorset/Contents.json +0 -38
  567. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange700.colorset/Contents.json +0 -38
  568. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange800.colorset/Contents.json +0 -38
  569. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyOrange900.colorset/Contents.json +0 -38
  570. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink100.colorset/Contents.json +0 -38
  571. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink200.colorset/Contents.json +0 -38
  572. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink300.colorset/Contents.json +0 -38
  573. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink400.colorset/Contents.json +0 -38
  574. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink500.colorset/Contents.json +0 -38
  575. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink600.colorset/Contents.json +0 -38
  576. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink700.colorset/Contents.json +0 -38
  577. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink800.colorset/Contents.json +0 -38
  578. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPink900.colorset/Contents.json +0 -38
  579. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple100.colorset/Contents.json +0 -38
  580. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple200.colorset/Contents.json +0 -38
  581. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple300.colorset/Contents.json +0 -38
  582. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple400.colorset/Contents.json +0 -38
  583. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple500.colorset/Contents.json +0 -38
  584. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple600.colorset/Contents.json +0 -38
  585. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple700.colorset/Contents.json +0 -38
  586. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple800.colorset/Contents.json +0 -38
  587. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorMyPurple900.colorset/Contents.json +0 -38
  588. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral0.colorset/Contents.json +0 -38
  589. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral100.colorset/Contents.json +0 -38
  590. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral1000.colorset/Contents.json +0 -38
  591. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral200.colorset/Contents.json +0 -38
  592. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral300.colorset/Contents.json +0 -38
  593. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral400.colorset/Contents.json +0 -38
  594. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral50.colorset/Contents.json +0 -38
  595. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral500.colorset/Contents.json +0 -38
  596. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral600.colorset/Contents.json +0 -38
  597. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral700.colorset/Contents.json +0 -38
  598. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral800.colorset/Contents.json +0 -38
  599. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutral900.colorset/Contents.json +0 -38
  600. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralBase.colorset/Contents.json +0 -38
  601. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralBoxShadow.colorset/Contents.json +0 -38
  602. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralDark.colorset/Contents.json +0 -38
  603. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralDarkbase.colorset/Contents.json +0 -38
  604. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralExtradark.colorset/Contents.json +0 -38
  605. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralExtralight.colorset/Contents.json +0 -38
  606. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralLight.colorset/Contents.json +0 -38
  607. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralLightbase.colorset/Contents.json +0 -38
  608. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralMegalight.colorset/Contents.json +0 -38
  609. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralModal.colorset/Contents.json +0 -38
  610. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralSuperlight.colorset/Contents.json +0 -38
  611. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNeutralUltralight.colorset/Contents.json +0 -38
  612. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNonColorAlwaysUltradark.colorset/Contents.json +0 -38
  613. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNonColorAlwaysUltralight.colorset/Contents.json +0 -38
  614. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNonColorColorBlack.colorset/Contents.json +0 -38
  615. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNonColorColorWhite.colorset/Contents.json +0 -38
  616. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNonColorContrastUltradark.colorset/Contents.json +0 -38
  617. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNonColorContrastUltralight.colorset/Contents.json +0 -38
  618. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorNonColorTransparent.colorset/Contents.json +0 -38
  619. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange100.colorset/Contents.json +0 -38
  620. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange200.colorset/Contents.json +0 -38
  621. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange250.colorset/Contents.json +0 -38
  622. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange300.colorset/Contents.json +0 -38
  623. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange400.colorset/Contents.json +0 -38
  624. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange500.colorset/Contents.json +0 -38
  625. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange600.colorset/Contents.json +0 -38
  626. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange700.colorset/Contents.json +0 -38
  627. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorOrange800.colorset/Contents.json +0 -38
  628. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveBase.colorset/Contents.json +0 -38
  629. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveDark.colorset/Contents.json +0 -38
  630. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveDarkbase.colorset/Contents.json +0 -38
  631. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveExtradark.colorset/Contents.json +0 -38
  632. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveExtralight.colorset/Contents.json +0 -38
  633. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveLight.colorset/Contents.json +0 -38
  634. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveLightbase.colorset/Contents.json +0 -38
  635. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveUltradark.colorset/Contents.json +0 -38
  636. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPositiveUltralight.colorset/Contents.json +0 -38
  637. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary100.colorset/Contents.json +0 -38
  638. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary1000.colorset/Contents.json +0 -38
  639. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary200.colorset/Contents.json +0 -38
  640. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary300.colorset/Contents.json +0 -38
  641. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary400.colorset/Contents.json +0 -38
  642. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary500.colorset/Contents.json +0 -38
  643. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary600.colorset/Contents.json +0 -38
  644. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary700.colorset/Contents.json +0 -38
  645. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary800.colorset/Contents.json +0 -38
  646. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimary900.colorset/Contents.json +0 -38
  647. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryBase.colorset/Contents.json +0 -38
  648. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryDark.colorset/Contents.json +0 -38
  649. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryDarkbase.colorset/Contents.json +0 -38
  650. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryExtradark.colorset/Contents.json +0 -38
  651. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryExtralight.colorset/Contents.json +0 -38
  652. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryLight.colorset/Contents.json +0 -38
  653. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryLightbase.colorset/Contents.json +0 -38
  654. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryMegalight.colorset/Contents.json +0 -38
  655. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPrimaryUltralight.colorset/Contents.json +0 -38
  656. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple100.colorset/Contents.json +0 -38
  657. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple200.colorset/Contents.json +0 -38
  658. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple300.colorset/Contents.json +0 -38
  659. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple400.colorset/Contents.json +0 -38
  660. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple500.colorset/Contents.json +0 -38
  661. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple600.colorset/Contents.json +0 -38
  662. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple700.colorset/Contents.json +0 -38
  663. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurple800.colorset/Contents.json +0 -38
  664. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurpleBase.colorset/Contents.json +0 -38
  665. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurpleDarkbase.colorset/Contents.json +0 -38
  666. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurpleLightbase.colorset/Contents.json +0 -38
  667. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurpleUltradark.colorset/Contents.json +0 -38
  668. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorPurpleUltralight.colorset/Contents.json +0 -38
  669. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed100.colorset/Contents.json +0 -38
  670. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed200.colorset/Contents.json +0 -38
  671. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed300.colorset/Contents.json +0 -38
  672. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed400.colorset/Contents.json +0 -38
  673. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed500.colorset/Contents.json +0 -38
  674. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed600.colorset/Contents.json +0 -38
  675. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed700.colorset/Contents.json +0 -38
  676. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed800.colorset/Contents.json +0 -38
  677. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorRed900.colorset/Contents.json +0 -38
  678. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorSecondary100.colorset/Contents.json +0 -38
  679. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorSecondary200.colorset/Contents.json +0 -38
  680. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorSecondary300.colorset/Contents.json +0 -38
  681. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorSecondary400.colorset/Contents.json +0 -38
  682. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorSecondary500.colorset/Contents.json +0 -38
  683. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningBase.colorset/Contents.json +0 -38
  684. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningDark.colorset/Contents.json +0 -38
  685. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningDarkbase.colorset/Contents.json +0 -38
  686. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningExtradark.colorset/Contents.json +0 -38
  687. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningExtralight.colorset/Contents.json +0 -38
  688. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningLight.colorset/Contents.json +0 -38
  689. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningLightbase.colorset/Contents.json +0 -38
  690. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningUltradark.colorset/Contents.json +0 -38
  691. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorWarningUltralight.colorset/Contents.json +0 -38
  692. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow100.colorset/Contents.json +0 -38
  693. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow200.colorset/Contents.json +0 -38
  694. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow250.colorset/Contents.json +0 -38
  695. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow300.colorset/Contents.json +0 -38
  696. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow400.colorset/Contents.json +0 -38
  697. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow500.colorset/Contents.json +0 -38
  698. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow600.colorset/Contents.json +0 -38
  699. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow700.colorset/Contents.json +0 -38
  700. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/colorYellow800.colorset/Contents.json +0 -38
  701. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultAlarmIcon.colorset/Contents.json +0 -38
  702. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultBorder.colorset/Contents.json +0 -38
  703. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultIcon.colorset/Contents.json +0 -38
  704. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultLabel.colorset/Contents.json +0 -38
  705. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultSubtext.colorset/Contents.json +0 -38
  706. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultSupporting.colorset/Contents.json +0 -38
  707. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultSurface.colorset/Contents.json +0 -38
  708. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmDefaultValue.colorset/Contents.json +0 -38
  709. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusAlarmIcon.colorset/Contents.json +0 -38
  710. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusBorder.colorset/Contents.json +0 -38
  711. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusIcon.colorset/Contents.json +0 -38
  712. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusLabel.colorset/Contents.json +0 -38
  713. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusPlaceholder.colorset/Contents.json +0 -38
  714. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusSubtext.colorset/Contents.json +0 -38
  715. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusSupporting.colorset/Contents.json +0 -38
  716. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusSurface.colorset/Contents.json +0 -38
  717. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmFocusValue.colorset/Contents.json +0 -38
  718. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverAlarmIcon.colorset/Contents.json +0 -38
  719. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverBorder.colorset/Contents.json +0 -38
  720. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverIcon.colorset/Contents.json +0 -38
  721. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverLabel.colorset/Contents.json +0 -38
  722. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverSubtext.colorset/Contents.json +0 -38
  723. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverSupporting.colorset/Contents.json +0 -38
  724. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverSurface.colorset/Contents.json +0 -38
  725. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputAlarmHoverValue.colorset/Contents.json +0 -38
  726. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultBorder.colorset/Contents.json +0 -38
  727. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultIcon.colorset/Contents.json +0 -38
  728. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultLabel.colorset/Contents.json +0 -38
  729. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultSubtext.colorset/Contents.json +0 -38
  730. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultSupporting.colorset/Contents.json +0 -38
  731. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultSurface.colorset/Contents.json +0 -38
  732. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultSurfaceSearch.colorset/Contents.json +0 -38
  733. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDefaultValue.colorset/Contents.json +0 -38
  734. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDisabledBorder.colorset/Contents.json +0 -38
  735. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDisabledIcon.colorset/Contents.json +0 -38
  736. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDisabledLabel.colorset/Contents.json +0 -38
  737. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDisabledSubtext.colorset/Contents.json +0 -38
  738. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDisabledSupporting.colorset/Contents.json +0 -38
  739. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDisabledSurface.colorset/Contents.json +0 -38
  740. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularDisabledValue.colorset/Contents.json +0 -38
  741. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusBorder.colorset/Contents.json +0 -38
  742. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusIcon.colorset/Contents.json +0 -38
  743. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusLabel.colorset/Contents.json +0 -38
  744. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusPlaceholder.colorset/Contents.json +0 -38
  745. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusSubtext.colorset/Contents.json +0 -38
  746. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusSupporting.colorset/Contents.json +0 -38
  747. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusSurface.colorset/Contents.json +0 -38
  748. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusSurfaceSearch.colorset/Contents.json +0 -38
  749. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularFocusValue.colorset/Contents.json +0 -38
  750. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverBorder.colorset/Contents.json +0 -38
  751. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverIcon.colorset/Contents.json +0 -38
  752. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverLabel.colorset/Contents.json +0 -38
  753. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverSubtext.colorset/Contents.json +0 -38
  754. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverSupporting.colorset/Contents.json +0 -38
  755. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverSurface.colorset/Contents.json +0 -38
  756. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverSurfaceSearch.colorset/Contents.json +0 -38
  757. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/inputRegularHoverValue.colorset/Contents.json +0 -38
  758. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDefaultBorder.colorset/Contents.json +0 -38
  759. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDefaultIcon.colorset/Contents.json +0 -38
  760. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDefaultSubtext.colorset/Contents.json +0 -38
  761. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDefaultSurface.colorset/Contents.json +0 -38
  762. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDefaultText.colorset/Contents.json +0 -38
  763. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDisabledBorder.colorset/Contents.json +0 -38
  764. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDisabledIcon.colorset/Contents.json +0 -38
  765. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDisabledSubtext.colorset/Contents.json +0 -38
  766. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDisabledSurface.colorset/Contents.json +0 -38
  767. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmDisabledText.colorset/Contents.json +0 -38
  768. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmFocusBorder.colorset/Contents.json +0 -38
  769. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmFocusFocusRing.colorset/Contents.json +0 -38
  770. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmFocusIcon.colorset/Contents.json +0 -38
  771. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmFocusSubtext.colorset/Contents.json +0 -38
  772. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmFocusSurface.colorset/Contents.json +0 -38
  773. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmFocusText.colorset/Contents.json +0 -38
  774. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmHoverBorder.colorset/Contents.json +0 -38
  775. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmHoverIcon.colorset/Contents.json +0 -38
  776. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmHoverSubtext.colorset/Contents.json +0 -38
  777. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmHoverSurface.colorset/Contents.json +0 -38
  778. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  779. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmHoverText.colorset/Contents.json +0 -38
  780. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmPressedBorder.colorset/Contents.json +0 -38
  781. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmPressedIcon.colorset/Contents.json +0 -38
  782. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmPressedSubtext.colorset/Contents.json +0 -38
  783. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmPressedSurface.colorset/Contents.json +0 -38
  784. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveAlarmPressedText.colorset/Contents.json +0 -38
  785. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDefaultBorder.colorset/Contents.json +0 -38
  786. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDefaultIcon.colorset/Contents.json +0 -38
  787. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDefaultSubtext.colorset/Contents.json +0 -38
  788. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDefaultSurface.colorset/Contents.json +0 -38
  789. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDefaultText.colorset/Contents.json +0 -38
  790. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDisabledBorder.colorset/Contents.json +0 -38
  791. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDisabledIcon.colorset/Contents.json +0 -38
  792. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDisabledSubtext.colorset/Contents.json +0 -38
  793. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDisabledSurface.colorset/Contents.json +0 -38
  794. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularDisabledText.colorset/Contents.json +0 -38
  795. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularFocusBorder.colorset/Contents.json +0 -38
  796. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularFocusFocusRing.colorset/Contents.json +0 -38
  797. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularFocusIcon.colorset/Contents.json +0 -38
  798. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularFocusSubtext.colorset/Contents.json +0 -38
  799. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularFocusSurface.colorset/Contents.json +0 -38
  800. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularFocusText.colorset/Contents.json +0 -38
  801. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularHoverBorder.colorset/Contents.json +0 -38
  802. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularHoverIcon.colorset/Contents.json +0 -38
  803. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularHoverSubtext.colorset/Contents.json +0 -38
  804. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularHoverSurface.colorset/Contents.json +0 -38
  805. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  806. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularHoverText.colorset/Contents.json +0 -38
  807. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularPressedBorder.colorset/Contents.json +0 -38
  808. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularPressedIcon.colorset/Contents.json +0 -38
  809. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularPressedSubtext.colorset/Contents.json +0 -38
  810. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularPressedSurface.colorset/Contents.json +0 -38
  811. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveActiveRegularPressedText.colorset/Contents.json +0 -38
  812. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDefaultBorder.colorset/Contents.json +0 -38
  813. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDefaultIcon.colorset/Contents.json +0 -38
  814. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDefaultSubtext.colorset/Contents.json +0 -38
  815. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDefaultSurface.colorset/Contents.json +0 -38
  816. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDefaultSurfaceAlternate.colorset/Contents.json +0 -38
  817. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDefaultText.colorset/Contents.json +0 -38
  818. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDisabledBorder.colorset/Contents.json +0 -38
  819. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDisabledIcon.colorset/Contents.json +0 -38
  820. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDisabledSubtext.colorset/Contents.json +0 -38
  821. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDisabledSurface.colorset/Contents.json +0 -38
  822. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmDisabledText.colorset/Contents.json +0 -38
  823. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmFocusBorder.colorset/Contents.json +0 -38
  824. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmFocusFocusRing.colorset/Contents.json +0 -38
  825. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmFocusIcon.colorset/Contents.json +0 -38
  826. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmFocusSubtext.colorset/Contents.json +0 -38
  827. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmFocusSurface.colorset/Contents.json +0 -38
  828. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmFocusSurfaceAlternate.colorset/Contents.json +0 -38
  829. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmFocusText.colorset/Contents.json +0 -38
  830. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmHoverBorder.colorset/Contents.json +0 -38
  831. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmHoverIcon.colorset/Contents.json +0 -38
  832. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmHoverSubtext.colorset/Contents.json +0 -38
  833. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmHoverSurface.colorset/Contents.json +0 -38
  834. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  835. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmHoverText.colorset/Contents.json +0 -38
  836. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmPressedBorder.colorset/Contents.json +0 -38
  837. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmPressedIcon.colorset/Contents.json +0 -38
  838. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmPressedSubtext.colorset/Contents.json +0 -38
  839. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmPressedSurface.colorset/Contents.json +0 -38
  840. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveAlarmPressedText.colorset/Contents.json +0 -38
  841. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDefaultBorder.colorset/Contents.json +0 -38
  842. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDefaultIcon.colorset/Contents.json +0 -38
  843. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDefaultSubtext.colorset/Contents.json +0 -38
  844. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDefaultSurface.colorset/Contents.json +0 -38
  845. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDefaultSurfaceAlternate.colorset/Contents.json +0 -38
  846. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDefaultText.colorset/Contents.json +0 -38
  847. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDisabledBorder.colorset/Contents.json +0 -38
  848. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDisabledIcon.colorset/Contents.json +0 -38
  849. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDisabledSubtext.colorset/Contents.json +0 -38
  850. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDisabledSurface.colorset/Contents.json +0 -38
  851. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularDisabledText.colorset/Contents.json +0 -38
  852. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularFocusBorder.colorset/Contents.json +0 -38
  853. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularFocusFocusRing.colorset/Contents.json +0 -38
  854. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularFocusIcon.colorset/Contents.json +0 -38
  855. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularFocusSubtext.colorset/Contents.json +0 -38
  856. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularFocusSurface.colorset/Contents.json +0 -38
  857. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularFocusSurfaceAlternate.colorset/Contents.json +0 -38
  858. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularFocusText.colorset/Contents.json +0 -38
  859. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularHoverBorder.colorset/Contents.json +0 -38
  860. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularHoverIcon.colorset/Contents.json +0 -38
  861. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularHoverSubtext.colorset/Contents.json +0 -38
  862. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularHoverSurface.colorset/Contents.json +0 -38
  863. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  864. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularHoverText.colorset/Contents.json +0 -38
  865. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularPressedBorder.colorset/Contents.json +0 -38
  866. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularPressedIcon.colorset/Contents.json +0 -38
  867. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularPressedSubtext.colorset/Contents.json +0 -38
  868. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularPressedSurface.colorset/Contents.json +0 -38
  869. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/interactiveInactiveRegularPressedText.colorset/Contents.json +0 -38
  870. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveBackgroundAlternative.colorset/Contents.json +0 -38
  871. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveBackgroundAlternativeFloating.colorset/Contents.json +0 -38
  872. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveBackgroundAlternativeRaised.colorset/Contents.json +0 -38
  873. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveBackgroundBrand.colorset/Contents.json +0 -38
  874. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveBackgroundDefault.colorset/Contents.json +0 -38
  875. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveBackgroundDefaultFloating.colorset/Contents.json +0 -38
  876. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveBackgroundDefaultRaised.colorset/Contents.json +0 -38
  877. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveForegroundPrimary.colorset/Contents.json +0 -38
  878. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/nonInteractiveForegroundSecondary.colorset/Contents.json +0 -38
  879. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDefaultBorder.colorset/Contents.json +0 -38
  880. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDefaultHandle.colorset/Contents.json +0 -38
  881. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDefaultIcon.colorset/Contents.json +0 -38
  882. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDefaultSurface.colorset/Contents.json +0 -38
  883. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDefaultText.colorset/Contents.json +0 -38
  884. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDisabledBorder.colorset/Contents.json +0 -38
  885. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDisabledHandle.colorset/Contents.json +0 -38
  886. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDisabledIcon.colorset/Contents.json +0 -38
  887. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDisabledSurface.colorset/Contents.json +0 -38
  888. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveDisabledText.colorset/Contents.json +0 -38
  889. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveFocusBorder.colorset/Contents.json +0 -38
  890. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveFocusFocusRing.colorset/Contents.json +0 -38
  891. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveFocusHandle.colorset/Contents.json +0 -38
  892. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveFocusIcon.colorset/Contents.json +0 -38
  893. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveFocusSurface.colorset/Contents.json +0 -38
  894. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveFocusText.colorset/Contents.json +0 -38
  895. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveHoverBorder.colorset/Contents.json +0 -38
  896. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveHoverHandle.colorset/Contents.json +0 -38
  897. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveHoverHoverRing.colorset/Contents.json +0 -38
  898. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveHoverIcon.colorset/Contents.json +0 -38
  899. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveHoverSurface.colorset/Contents.json +0 -38
  900. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveHoverText.colorset/Contents.json +0 -38
  901. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActivePressedBorder.colorset/Contents.json +0 -38
  902. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActivePressedHandle.colorset/Contents.json +0 -38
  903. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActivePressedIcon.colorset/Contents.json +0 -38
  904. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActivePressedSurface.colorset/Contents.json +0 -38
  905. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActivePressedText.colorset/Contents.json +0 -38
  906. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveReadOnlyBorder.colorset/Contents.json +0 -38
  907. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveReadOnlyHandle.colorset/Contents.json +0 -38
  908. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveReadOnlyIcon.colorset/Contents.json +0 -38
  909. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveReadOnlySurface.colorset/Contents.json +0 -38
  910. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsActiveReadOnlyText.colorset/Contents.json +0 -38
  911. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDefaultBorder.colorset/Contents.json +0 -38
  912. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDefaultHandle.colorset/Contents.json +0 -38
  913. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDefaultIcon.colorset/Contents.json +0 -38
  914. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDefaultSurface.colorset/Contents.json +0 -38
  915. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDefaultText.colorset/Contents.json +0 -38
  916. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDisabledBorder.colorset/Contents.json +0 -38
  917. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDisabledHandle.colorset/Contents.json +0 -38
  918. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDisabledIcon.colorset/Contents.json +0 -38
  919. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDisabledSurface.colorset/Contents.json +0 -38
  920. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveDisabledText.colorset/Contents.json +0 -38
  921. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveFocusBorder.colorset/Contents.json +0 -38
  922. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveFocusFocusRing.colorset/Contents.json +0 -38
  923. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveFocusHandle.colorset/Contents.json +0 -38
  924. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveFocusIcon.colorset/Contents.json +0 -38
  925. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveFocusSurface.colorset/Contents.json +0 -38
  926. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveFocusText.colorset/Contents.json +0 -38
  927. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveHoverBorder.colorset/Contents.json +0 -38
  928. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveHoverHandle.colorset/Contents.json +0 -38
  929. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveHoverHoverRing.colorset/Contents.json +0 -38
  930. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveHoverIcon.colorset/Contents.json +0 -38
  931. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveHoverSurface.colorset/Contents.json +0 -38
  932. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveHoverText.colorset/Contents.json +0 -38
  933. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactivePressedBorder.colorset/Contents.json +0 -38
  934. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactivePressedHandle.colorset/Contents.json +0 -38
  935. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactivePressedIcon.colorset/Contents.json +0 -38
  936. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactivePressedSurface.colorset/Contents.json +0 -38
  937. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactivePressedText.colorset/Contents.json +0 -38
  938. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveReadOnlyBorder.colorset/Contents.json +0 -38
  939. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveReadOnlyHandle.colorset/Contents.json +0 -38
  940. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveReadOnlyIcon.colorset/Contents.json +0 -38
  941. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveReadOnlySurface.colorset/Contents.json +0 -38
  942. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/selectorsInactiveReadOnlyText.colorset/Contents.json +0 -38
  943. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDefaultHandle.colorset/Contents.json +0 -38
  944. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDefaultHandleSurface.colorset/Contents.json +0 -38
  945. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDefaultIcon.colorset/Contents.json +0 -38
  946. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDefaultStopDot.colorset/Contents.json +0 -38
  947. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDefaultStopText.colorset/Contents.json +0 -38
  948. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDefaultTrack.colorset/Contents.json +0 -38
  949. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDisabledHandle.colorset/Contents.json +0 -38
  950. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDisabledHandleSurface.colorset/Contents.json +0 -38
  951. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDisabledIcon.colorset/Contents.json +0 -38
  952. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDisabledStopDot.colorset/Contents.json +0 -38
  953. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDisabledStopText.colorset/Contents.json +0 -38
  954. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveDisabledTrack.colorset/Contents.json +0 -38
  955. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveFocusHandle.colorset/Contents.json +0 -38
  956. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveFocusHandleFocusRing.colorset/Contents.json +0 -38
  957. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveFocusHandleSurface.colorset/Contents.json +0 -38
  958. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveFocusIcon.colorset/Contents.json +0 -38
  959. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveFocusStopDot.colorset/Contents.json +0 -38
  960. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveFocusStopText.colorset/Contents.json +0 -38
  961. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveFocusTrack.colorset/Contents.json +0 -38
  962. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveHoverHandle.colorset/Contents.json +0 -38
  963. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveHoverHandleSurface.colorset/Contents.json +0 -38
  964. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveHoverIcon.colorset/Contents.json +0 -38
  965. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveHoverStopDot.colorset/Contents.json +0 -38
  966. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveHoverStopText.colorset/Contents.json +0 -38
  967. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActiveHoverTrack.colorset/Contents.json +0 -38
  968. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActivePressedHandle.colorset/Contents.json +0 -38
  969. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActivePressedHandleSurface.colorset/Contents.json +0 -38
  970. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActivePressedIcon.colorset/Contents.json +0 -38
  971. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActivePressedStopDot.colorset/Contents.json +0 -38
  972. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActivePressedStopText.colorset/Contents.json +0 -38
  973. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderActivePressedTrack.colorset/Contents.json +0 -38
  974. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDefaultIcon.colorset/Contents.json +0 -38
  975. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDefaultStopDot.colorset/Contents.json +0 -38
  976. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDefaultStopText.colorset/Contents.json +0 -38
  977. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDefaultTrack.colorset/Contents.json +0 -38
  978. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDisabledIcon.colorset/Contents.json +0 -38
  979. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDisabledStopDot.colorset/Contents.json +0 -38
  980. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDisabledStopText.colorset/Contents.json +0 -38
  981. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveDisabledTrack.colorset/Contents.json +0 -38
  982. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveFocusIcon.colorset/Contents.json +0 -38
  983. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveFocusStopDot.colorset/Contents.json +0 -38
  984. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveFocusStopText.colorset/Contents.json +0 -38
  985. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveFocusTrack.colorset/Contents.json +0 -38
  986. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveHoverIcon.colorset/Contents.json +0 -38
  987. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveHoverStopDot.colorset/Contents.json +0 -38
  988. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveHoverStopText.colorset/Contents.json +0 -38
  989. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactiveHoverTrack.colorset/Contents.json +0 -38
  990. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactivePressedIcon.colorset/Contents.json +0 -38
  991. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactivePressedStopDot.colorset/Contents.json +0 -38
  992. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactivePressedStopText.colorset/Contents.json +0 -38
  993. package/tokens/ios/Sources/JumpyTokensDefault/Tokens.xcassets/sliderInactivePressedTrack.colorset/Contents.json +0 -38
  994. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.generated.swift +0 -1232
  995. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/Contents.json +0 -6
  996. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDefaultAction.colorset/Contents.json +0 -38
  997. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDefaultBorder.colorset/Contents.json +0 -38
  998. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDefaultFocus.colorset/Contents.json +0 -38
  999. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDefaultIcon.colorset/Contents.json +0 -38
  1000. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDefaultSurface.colorset/Contents.json +0 -38
  1001. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDefaultText.colorset/Contents.json +0 -38
  1002. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDisabledAction.colorset/Contents.json +0 -38
  1003. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDisabledBorder.colorset/Contents.json +0 -38
  1004. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDisabledFocus.colorset/Contents.json +0 -38
  1005. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDisabledIcon.colorset/Contents.json +0 -38
  1006. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDisabledSurface.colorset/Contents.json +0 -38
  1007. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmDisabledText.colorset/Contents.json +0 -38
  1008. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmFocusAction.colorset/Contents.json +0 -38
  1009. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmFocusBorder.colorset/Contents.json +0 -38
  1010. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmFocusFocusRing.colorset/Contents.json +0 -38
  1011. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmFocusIcon.colorset/Contents.json +0 -38
  1012. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmFocusSurface.colorset/Contents.json +0 -38
  1013. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmFocusText.colorset/Contents.json +0 -38
  1014. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmHoverAction.colorset/Contents.json +0 -38
  1015. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmHoverBorder.colorset/Contents.json +0 -38
  1016. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmHoverFocus.colorset/Contents.json +0 -38
  1017. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmHoverIcon.colorset/Contents.json +0 -38
  1018. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmHoverSurface.colorset/Contents.json +0 -38
  1019. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1020. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmHoverText.colorset/Contents.json +0 -38
  1021. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmPressedAction.colorset/Contents.json +0 -38
  1022. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmPressedBorder.colorset/Contents.json +0 -38
  1023. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmPressedFocus.colorset/Contents.json +0 -38
  1024. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmPressedIcon.colorset/Contents.json +0 -38
  1025. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmPressedSurface.colorset/Contents.json +0 -38
  1026. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessAlarmPressedText.colorset/Contents.json +0 -38
  1027. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDefaultAction.colorset/Contents.json +0 -38
  1028. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDefaultBorder.colorset/Contents.json +0 -38
  1029. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDefaultFocus.colorset/Contents.json +0 -38
  1030. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDefaultIcon.colorset/Contents.json +0 -38
  1031. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDefaultSurface.colorset/Contents.json +0 -38
  1032. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDefaultText.colorset/Contents.json +0 -38
  1033. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDisabledAction.colorset/Contents.json +0 -38
  1034. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDisabledBorder.colorset/Contents.json +0 -38
  1035. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDisabledFocus.colorset/Contents.json +0 -38
  1036. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDisabledIcon.colorset/Contents.json +0 -38
  1037. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDisabledSurface.colorset/Contents.json +0 -38
  1038. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularDisabledText.colorset/Contents.json +0 -38
  1039. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularFocusAction.colorset/Contents.json +0 -38
  1040. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularFocusBorder.colorset/Contents.json +0 -38
  1041. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularFocusFocusRing.colorset/Contents.json +0 -38
  1042. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularFocusIcon.colorset/Contents.json +0 -38
  1043. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularFocusSurface.colorset/Contents.json +0 -38
  1044. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularFocusText.colorset/Contents.json +0 -38
  1045. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularHoverAction.colorset/Contents.json +0 -38
  1046. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularHoverBorder.colorset/Contents.json +0 -38
  1047. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularHoverFocus.colorset/Contents.json +0 -38
  1048. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularHoverIcon.colorset/Contents.json +0 -38
  1049. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularHoverSurface.colorset/Contents.json +0 -38
  1050. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1051. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularHoverText.colorset/Contents.json +0 -38
  1052. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularPressedAction.colorset/Contents.json +0 -38
  1053. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularPressedBorder.colorset/Contents.json +0 -38
  1054. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularPressedFocus.colorset/Contents.json +0 -38
  1055. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularPressedIcon.colorset/Contents.json +0 -38
  1056. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularPressedSurface.colorset/Contents.json +0 -38
  1057. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsBorderlessRegularPressedText.colorset/Contents.json +0 -38
  1058. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDefaultBorder.colorset/Contents.json +0 -38
  1059. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDefaultIcon.colorset/Contents.json +0 -38
  1060. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDefaultSurface.colorset/Contents.json +0 -38
  1061. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDefaultText.colorset/Contents.json +0 -38
  1062. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDisabledBorder.colorset/Contents.json +0 -38
  1063. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDisabledIcon.colorset/Contents.json +0 -38
  1064. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDisabledSurface.colorset/Contents.json +0 -38
  1065. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  1066. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmDisabledText.colorset/Contents.json +0 -38
  1067. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmFocusBorder.colorset/Contents.json +0 -38
  1068. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmFocusFocusRing.colorset/Contents.json +0 -38
  1069. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmFocusIcon.colorset/Contents.json +0 -38
  1070. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmFocusSurface.colorset/Contents.json +0 -38
  1071. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmFocusText.colorset/Contents.json +0 -38
  1072. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmHoverBorder.colorset/Contents.json +0 -38
  1073. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmHoverIcon.colorset/Contents.json +0 -38
  1074. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmHoverSurface.colorset/Contents.json +0 -38
  1075. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmHoverText.colorset/Contents.json +0 -38
  1076. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmPressedBorder.colorset/Contents.json +0 -38
  1077. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmPressedIcon.colorset/Contents.json +0 -38
  1078. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmPressedSurface.colorset/Contents.json +0 -38
  1079. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryAlarmPressedText.colorset/Contents.json +0 -38
  1080. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDefaultBorder.colorset/Contents.json +0 -38
  1081. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDefaultIcon.colorset/Contents.json +0 -38
  1082. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDefaultSurface.colorset/Contents.json +0 -38
  1083. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDefaultText.colorset/Contents.json +0 -38
  1084. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDisabledBorder.colorset/Contents.json +0 -38
  1085. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDisabledIcon.colorset/Contents.json +0 -38
  1086. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDisabledSurface.colorset/Contents.json +0 -38
  1087. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  1088. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoDisabledText.colorset/Contents.json +0 -38
  1089. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoFocusBorder.colorset/Contents.json +0 -38
  1090. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoFocusFocusRing.colorset/Contents.json +0 -38
  1091. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoFocusIcon.colorset/Contents.json +0 -38
  1092. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoFocusSurface.colorset/Contents.json +0 -38
  1093. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoFocusText.colorset/Contents.json +0 -38
  1094. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoHoverBorder.colorset/Contents.json +0 -38
  1095. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoHoverIcon.colorset/Contents.json +0 -38
  1096. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoHoverSurface.colorset/Contents.json +0 -38
  1097. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoHoverText.colorset/Contents.json +0 -38
  1098. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoPressedBorder.colorset/Contents.json +0 -38
  1099. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoPressedIcon.colorset/Contents.json +0 -38
  1100. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoPressedSurface.colorset/Contents.json +0 -38
  1101. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryInfoPressedText.colorset/Contents.json +0 -38
  1102. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDefaultBorder.colorset/Contents.json +0 -38
  1103. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDefaultIcon.colorset/Contents.json +0 -38
  1104. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDefaultSurface.colorset/Contents.json +0 -38
  1105. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDefaultText.colorset/Contents.json +0 -38
  1106. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDisabledBorder.colorset/Contents.json +0 -38
  1107. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDisabledIcon.colorset/Contents.json +0 -38
  1108. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDisabledSurface.colorset/Contents.json +0 -38
  1109. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  1110. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularDisabledText.colorset/Contents.json +0 -38
  1111. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularFocusBorder.colorset/Contents.json +0 -38
  1112. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularFocusFocusRing.colorset/Contents.json +0 -38
  1113. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularFocusIcon.colorset/Contents.json +0 -38
  1114. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularFocusSurface.colorset/Contents.json +0 -38
  1115. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularFocusText.colorset/Contents.json +0 -38
  1116. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularHoverBorder.colorset/Contents.json +0 -38
  1117. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularHoverIcon.colorset/Contents.json +0 -38
  1118. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularHoverSurface.colorset/Contents.json +0 -38
  1119. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularHoverText.colorset/Contents.json +0 -38
  1120. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularPressedBorder.colorset/Contents.json +0 -38
  1121. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularPressedIcon.colorset/Contents.json +0 -38
  1122. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularPressedSurface.colorset/Contents.json +0 -38
  1123. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryRegularPressedText.colorset/Contents.json +0 -38
  1124. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDefaultBorder.colorset/Contents.json +0 -38
  1125. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDefaultIcon.colorset/Contents.json +0 -38
  1126. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDefaultSurface.colorset/Contents.json +0 -38
  1127. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDefaultText.colorset/Contents.json +0 -38
  1128. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDisabledBorder.colorset/Contents.json +0 -38
  1129. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDisabledIcon.colorset/Contents.json +0 -38
  1130. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDisabledSurface.colorset/Contents.json +0 -38
  1131. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDisabledSurfaceAlternate.colorset/Contents.json +0 -38
  1132. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningDisabledText.colorset/Contents.json +0 -38
  1133. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningFocusBorder.colorset/Contents.json +0 -38
  1134. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningFocusFocusRing.colorset/Contents.json +0 -38
  1135. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningFocusIcon.colorset/Contents.json +0 -38
  1136. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningFocusSurface.colorset/Contents.json +0 -38
  1137. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningFocusText.colorset/Contents.json +0 -38
  1138. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningHoverBorder.colorset/Contents.json +0 -38
  1139. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningHoverIcon.colorset/Contents.json +0 -38
  1140. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningHoverSurface.colorset/Contents.json +0 -38
  1141. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningHoverText.colorset/Contents.json +0 -38
  1142. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningPressedBorder.colorset/Contents.json +0 -38
  1143. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningPressedIcon.colorset/Contents.json +0 -38
  1144. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningPressedSurface.colorset/Contents.json +0 -38
  1145. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsPrimaryWarningPressedText.colorset/Contents.json +0 -38
  1146. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDefaultAction.colorset/Contents.json +0 -38
  1147. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDefaultBorder.colorset/Contents.json +0 -38
  1148. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDefaultIcon.colorset/Contents.json +0 -38
  1149. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDefaultSurface.colorset/Contents.json +0 -38
  1150. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDefaultText.colorset/Contents.json +0 -38
  1151. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDisabledAction.colorset/Contents.json +0 -38
  1152. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDisabledBorder.colorset/Contents.json +0 -38
  1153. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDisabledIcon.colorset/Contents.json +0 -38
  1154. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDisabledSurface.colorset/Contents.json +0 -38
  1155. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmDisabledText.colorset/Contents.json +0 -38
  1156. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmFocusAction.colorset/Contents.json +0 -38
  1157. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmFocusBorder.colorset/Contents.json +0 -38
  1158. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmFocusFocusRing.colorset/Contents.json +0 -38
  1159. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmFocusIcon.colorset/Contents.json +0 -38
  1160. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmFocusSurface.colorset/Contents.json +0 -38
  1161. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmFocusText.colorset/Contents.json +0 -38
  1162. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmHoverAction.colorset/Contents.json +0 -38
  1163. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmHoverBorder.colorset/Contents.json +0 -38
  1164. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmHoverIcon.colorset/Contents.json +0 -38
  1165. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmHoverSurface.colorset/Contents.json +0 -38
  1166. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1167. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmHoverText.colorset/Contents.json +0 -38
  1168. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmPressedAction.colorset/Contents.json +0 -38
  1169. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmPressedBorder.colorset/Contents.json +0 -38
  1170. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmPressedIcon.colorset/Contents.json +0 -38
  1171. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmPressedSurface.colorset/Contents.json +0 -38
  1172. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryAlarmPressedText.colorset/Contents.json +0 -38
  1173. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDefaultAction.colorset/Contents.json +0 -38
  1174. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDefaultBorder.colorset/Contents.json +0 -38
  1175. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDefaultIcon.colorset/Contents.json +0 -38
  1176. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDefaultSurface.colorset/Contents.json +0 -38
  1177. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDefaultText.colorset/Contents.json +0 -38
  1178. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDisabledAction.colorset/Contents.json +0 -38
  1179. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDisabledBorder.colorset/Contents.json +0 -38
  1180. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDisabledIcon.colorset/Contents.json +0 -38
  1181. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDisabledSurface.colorset/Contents.json +0 -38
  1182. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularDisabledText.colorset/Contents.json +0 -38
  1183. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularFocusAction.colorset/Contents.json +0 -38
  1184. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularFocusBorder.colorset/Contents.json +0 -38
  1185. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularFocusFocusRing.colorset/Contents.json +0 -38
  1186. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularFocusIcon.colorset/Contents.json +0 -38
  1187. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularFocusSurface.colorset/Contents.json +0 -38
  1188. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularFocusText.colorset/Contents.json +0 -38
  1189. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularHoverAction.colorset/Contents.json +0 -38
  1190. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularHoverBorder.colorset/Contents.json +0 -38
  1191. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularHoverIcon.colorset/Contents.json +0 -38
  1192. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularHoverSurface.colorset/Contents.json +0 -38
  1193. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1194. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularHoverText.colorset/Contents.json +0 -38
  1195. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularPressedAction.colorset/Contents.json +0 -38
  1196. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularPressedBorder.colorset/Contents.json +0 -38
  1197. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularPressedIcon.colorset/Contents.json +0 -38
  1198. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularPressedSurface.colorset/Contents.json +0 -38
  1199. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsSecondaryRegularPressedText.colorset/Contents.json +0 -38
  1200. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDefaultAction.colorset/Contents.json +0 -38
  1201. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDefaultBorder.colorset/Contents.json +0 -38
  1202. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDefaultFocus.colorset/Contents.json +0 -38
  1203. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDefaultIcon.colorset/Contents.json +0 -38
  1204. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDefaultSurface.colorset/Contents.json +0 -38
  1205. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDefaultText.colorset/Contents.json +0 -38
  1206. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDisabledAction.colorset/Contents.json +0 -38
  1207. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDisabledBorder.colorset/Contents.json +0 -38
  1208. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDisabledFocus.colorset/Contents.json +0 -38
  1209. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDisabledIcon.colorset/Contents.json +0 -38
  1210. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDisabledSurface.colorset/Contents.json +0 -38
  1211. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmDisabledText.colorset/Contents.json +0 -38
  1212. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmFocusAction.colorset/Contents.json +0 -38
  1213. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmFocusBorder.colorset/Contents.json +0 -38
  1214. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmFocusFocusRing.colorset/Contents.json +0 -38
  1215. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmFocusIcon.colorset/Contents.json +0 -38
  1216. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmFocusSurface.colorset/Contents.json +0 -38
  1217. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmFocusText.colorset/Contents.json +0 -38
  1218. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmHoverAction.colorset/Contents.json +0 -38
  1219. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmHoverBorder.colorset/Contents.json +0 -38
  1220. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmHoverFocus.colorset/Contents.json +0 -38
  1221. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmHoverIcon.colorset/Contents.json +0 -38
  1222. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmHoverSurface.colorset/Contents.json +0 -38
  1223. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1224. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmHoverText.colorset/Contents.json +0 -38
  1225. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmPressedAction.colorset/Contents.json +0 -38
  1226. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmPressedBorder.colorset/Contents.json +0 -38
  1227. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmPressedFocus.colorset/Contents.json +0 -38
  1228. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmPressedIcon.colorset/Contents.json +0 -38
  1229. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmPressedSurface.colorset/Contents.json +0 -38
  1230. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryAlarmPressedText.colorset/Contents.json +0 -38
  1231. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDefaultAction.colorset/Contents.json +0 -38
  1232. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDefaultBorder.colorset/Contents.json +0 -38
  1233. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDefaultFocus.colorset/Contents.json +0 -38
  1234. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDefaultIcon.colorset/Contents.json +0 -38
  1235. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDefaultSurface.colorset/Contents.json +0 -38
  1236. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDefaultText.colorset/Contents.json +0 -38
  1237. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDisabledAction.colorset/Contents.json +0 -38
  1238. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDisabledBorder.colorset/Contents.json +0 -38
  1239. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDisabledFocus.colorset/Contents.json +0 -38
  1240. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDisabledIcon.colorset/Contents.json +0 -38
  1241. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDisabledSurface.colorset/Contents.json +0 -38
  1242. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularDisabledText.colorset/Contents.json +0 -38
  1243. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularFocusAction.colorset/Contents.json +0 -38
  1244. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularFocusBorder.colorset/Contents.json +0 -38
  1245. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularFocusFocusRing.colorset/Contents.json +0 -38
  1246. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularFocusIcon.colorset/Contents.json +0 -38
  1247. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularFocusSurface.colorset/Contents.json +0 -38
  1248. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularFocusText.colorset/Contents.json +0 -38
  1249. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularHoverAction.colorset/Contents.json +0 -38
  1250. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularHoverBorder.colorset/Contents.json +0 -38
  1251. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularHoverFocus.colorset/Contents.json +0 -38
  1252. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularHoverIcon.colorset/Contents.json +0 -38
  1253. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularHoverSurface.colorset/Contents.json +0 -38
  1254. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1255. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularHoverText.colorset/Contents.json +0 -38
  1256. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularPressedAction.colorset/Contents.json +0 -38
  1257. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularPressedBorder.colorset/Contents.json +0 -38
  1258. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularPressedFocus.colorset/Contents.json +0 -38
  1259. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularPressedIcon.colorset/Contents.json +0 -38
  1260. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularPressedSurface.colorset/Contents.json +0 -38
  1261. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/actionsTertiaryRegularPressedText.colorset/Contents.json +0 -38
  1262. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDefaultBorder.colorset/Contents.json +0 -38
  1263. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDefaultIcon.colorset/Contents.json +0 -38
  1264. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDefaultSubtext.colorset/Contents.json +0 -38
  1265. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDefaultSurface.colorset/Contents.json +0 -38
  1266. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDefaultText.colorset/Contents.json +0 -38
  1267. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDisabledBorder.colorset/Contents.json +0 -38
  1268. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDisabledIcon.colorset/Contents.json +0 -38
  1269. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDisabledSubtext.colorset/Contents.json +0 -38
  1270. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDisabledSurface.colorset/Contents.json +0 -38
  1271. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDisabledText.colorset/Contents.json +0 -38
  1272. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDraggedBorder.colorset/Contents.json +0 -38
  1273. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDraggedIcon.colorset/Contents.json +0 -38
  1274. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDraggedSubtext.colorset/Contents.json +0 -38
  1275. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDraggedSurface.colorset/Contents.json +0 -38
  1276. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveDraggedText.colorset/Contents.json +0 -38
  1277. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveFocusBorder.colorset/Contents.json +0 -38
  1278. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveFocusFocusRing.colorset/Contents.json +0 -38
  1279. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveFocusIcon.colorset/Contents.json +0 -38
  1280. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveFocusSubtext.colorset/Contents.json +0 -38
  1281. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveFocusSurface.colorset/Contents.json +0 -38
  1282. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveFocusText.colorset/Contents.json +0 -38
  1283. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveHoverBorder.colorset/Contents.json +0 -38
  1284. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveHoverIcon.colorset/Contents.json +0 -38
  1285. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveHoverSubtext.colorset/Contents.json +0 -38
  1286. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveHoverSurface.colorset/Contents.json +0 -38
  1287. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActiveHoverText.colorset/Contents.json +0 -38
  1288. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActivePressedBorder.colorset/Contents.json +0 -38
  1289. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActivePressedIcon.colorset/Contents.json +0 -38
  1290. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActivePressedSubtext.colorset/Contents.json +0 -38
  1291. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActivePressedSurface.colorset/Contents.json +0 -38
  1292. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardActivePressedText.colorset/Contents.json +0 -38
  1293. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDefaultBorder.colorset/Contents.json +0 -38
  1294. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDefaultIcon.colorset/Contents.json +0 -38
  1295. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDefaultSubtext.colorset/Contents.json +0 -38
  1296. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDefaultSurface.colorset/Contents.json +0 -38
  1297. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDefaultText.colorset/Contents.json +0 -38
  1298. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDisabledBorder.colorset/Contents.json +0 -38
  1299. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDisabledIcon.colorset/Contents.json +0 -38
  1300. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDisabledSubtext.colorset/Contents.json +0 -38
  1301. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDisabledSurface.colorset/Contents.json +0 -38
  1302. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDisabledText.colorset/Contents.json +0 -38
  1303. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDraggedBorder.colorset/Contents.json +0 -38
  1304. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDraggedIcon.colorset/Contents.json +0 -38
  1305. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDraggedSubtext.colorset/Contents.json +0 -38
  1306. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDraggedSurface.colorset/Contents.json +0 -38
  1307. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveDraggedText.colorset/Contents.json +0 -38
  1308. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveFocusBorder.colorset/Contents.json +0 -38
  1309. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveFocusFocusRing.colorset/Contents.json +0 -38
  1310. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveFocusIcon.colorset/Contents.json +0 -38
  1311. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveFocusSubtext.colorset/Contents.json +0 -38
  1312. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveFocusSurface.colorset/Contents.json +0 -38
  1313. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveFocusText.colorset/Contents.json +0 -38
  1314. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveHoverBorder.colorset/Contents.json +0 -38
  1315. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveHoverIcon.colorset/Contents.json +0 -38
  1316. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveHoverSubtext.colorset/Contents.json +0 -38
  1317. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveHoverSurface.colorset/Contents.json +0 -38
  1318. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactiveHoverText.colorset/Contents.json +0 -38
  1319. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactivePressedBorder.colorset/Contents.json +0 -38
  1320. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactivePressedIcon.colorset/Contents.json +0 -38
  1321. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactivePressedSubtext.colorset/Contents.json +0 -38
  1322. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactivePressedSurface.colorset/Contents.json +0 -38
  1323. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/cardInactivePressedText.colorset/Contents.json +0 -38
  1324. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDefaultInnerCircleOutline.colorset/Contents.json +0 -38
  1325. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDefaultInnerCircleSurface.colorset/Contents.json +0 -38
  1326. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDefaultOuterCircleSurface.colorset/Contents.json +0 -38
  1327. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDefaultSurface.colorset/Contents.json +0 -38
  1328. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDisabledInnerCircleOutline.colorset/Contents.json +0 -38
  1329. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDisabledInnerCircleSurface.colorset/Contents.json +0 -38
  1330. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDisabledOuterCircleSurface.colorset/Contents.json +0 -38
  1331. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkDisabledSurface.colorset/Contents.json +0 -38
  1332. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkFocusFocusRing.colorset/Contents.json +0 -38
  1333. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkFocusInnerCircleOutline.colorset/Contents.json +0 -38
  1334. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkFocusInnerCircleSurface.colorset/Contents.json +0 -38
  1335. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkFocusOuterCircleSurface.colorset/Contents.json +0 -38
  1336. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkFocusSurface.colorset/Contents.json +0 -38
  1337. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkHoverInnerCircleOutline.colorset/Contents.json +0 -38
  1338. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkHoverInnerCircleSurface.colorset/Contents.json +0 -38
  1339. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkHoverOuterCircleSurface.colorset/Contents.json +0 -38
  1340. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkHoverSurface.colorset/Contents.json +0 -38
  1341. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkPressedInnerCircleOutline.colorset/Contents.json +0 -38
  1342. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkPressedInnerCircleSurface.colorset/Contents.json +0 -38
  1343. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkPressedOuterCircleSurface.colorset/Contents.json +0 -38
  1344. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/coachmarkPressedSurface.colorset/Contents.json +0 -38
  1345. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpBackgroundHigh.colorset/Contents.json +0 -38
  1346. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpBackgroundInRange.colorset/Contents.json +0 -38
  1347. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpBackgroundLow.colorset/Contents.json +0 -38
  1348. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpBackgroundVeryHigh.colorset/Contents.json +0 -38
  1349. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpBackgroundVeryLow.colorset/Contents.json +0 -38
  1350. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpDarkRed150.colorset/Contents.json +0 -38
  1351. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpDarkRed300.colorset/Contents.json +0 -38
  1352. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpDarkRed500.colorset/Contents.json +0 -38
  1353. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpDarkRed700.colorset/Contents.json +0 -38
  1354. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpDarkRed950.colorset/Contents.json +0 -38
  1355. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpForegroundHigh.colorset/Contents.json +0 -38
  1356. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpForegroundInRange.colorset/Contents.json +0 -38
  1357. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpForegroundLow.colorset/Contents.json +0 -38
  1358. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpForegroundVeryHigh.colorset/Contents.json +0 -38
  1359. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpForegroundVeryLow.colorset/Contents.json +0 -38
  1360. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpGreen150.colorset/Contents.json +0 -38
  1361. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpGreen300.colorset/Contents.json +0 -38
  1362. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpGreen500.colorset/Contents.json +0 -38
  1363. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpGreen700.colorset/Contents.json +0 -38
  1364. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpGreen950.colorset/Contents.json +0 -38
  1365. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpInterfaceHigh.colorset/Contents.json +0 -38
  1366. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpInterfaceInRange.colorset/Contents.json +0 -38
  1367. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpInterfaceLow.colorset/Contents.json +0 -38
  1368. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpInterfaceNoValue.colorset/Contents.json +0 -38
  1369. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpInterfaceVeryHigh.colorset/Contents.json +0 -38
  1370. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpInterfaceVeryLow.colorset/Contents.json +0 -38
  1371. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpOrange150.colorset/Contents.json +0 -38
  1372. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpOrange300.colorset/Contents.json +0 -38
  1373. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpOrange500.colorset/Contents.json +0 -38
  1374. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpOrange700.colorset/Contents.json +0 -38
  1375. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpOrange950.colorset/Contents.json +0 -38
  1376. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpRed150.colorset/Contents.json +0 -38
  1377. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpRed300.colorset/Contents.json +0 -38
  1378. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpRed500.colorset/Contents.json +0 -38
  1379. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpRed700.colorset/Contents.json +0 -38
  1380. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpRed950.colorset/Contents.json +0 -38
  1381. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpYellow150.colorset/Contents.json +0 -38
  1382. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpYellow300.colorset/Contents.json +0 -38
  1383. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpYellow500.colorset/Contents.json +0 -38
  1384. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpYellow700.colorset/Contents.json +0 -38
  1385. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAgpYellow950.colorset/Contents.json +0 -38
  1386. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmBase.colorset/Contents.json +0 -38
  1387. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmDark.colorset/Contents.json +0 -38
  1388. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmDarkbase.colorset/Contents.json +0 -38
  1389. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmExtradark.colorset/Contents.json +0 -38
  1390. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmExtralight.colorset/Contents.json +0 -38
  1391. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmLight.colorset/Contents.json +0 -38
  1392. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmLightbase.colorset/Contents.json +0 -38
  1393. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmUltradark.colorset/Contents.json +0 -38
  1394. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorAlarmUltralight.colorset/Contents.json +0 -38
  1395. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBackgroundDefault.colorset/Contents.json +0 -38
  1396. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige100.colorset/Contents.json +0 -38
  1397. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige200.colorset/Contents.json +0 -38
  1398. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige300.colorset/Contents.json +0 -38
  1399. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige400.colorset/Contents.json +0 -38
  1400. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige500.colorset/Contents.json +0 -38
  1401. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige600.colorset/Contents.json +0 -38
  1402. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige700.colorset/Contents.json +0 -38
  1403. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige800.colorset/Contents.json +0 -38
  1404. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBeige900.colorset/Contents.json +0 -38
  1405. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue100.colorset/Contents.json +0 -38
  1406. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue1000.colorset/Contents.json +0 -38
  1407. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue200.colorset/Contents.json +0 -38
  1408. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue300.colorset/Contents.json +0 -38
  1409. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue400.colorset/Contents.json +0 -38
  1410. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue500.colorset/Contents.json +0 -38
  1411. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue600.colorset/Contents.json +0 -38
  1412. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue700.colorset/Contents.json +0 -38
  1413. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue800.colorset/Contents.json +0 -38
  1414. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBlue900.colorset/Contents.json +0 -38
  1415. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand0.colorset/Contents.json +0 -38
  1416. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand100.colorset/Contents.json +0 -38
  1417. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand200.colorset/Contents.json +0 -38
  1418. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand300.colorset/Contents.json +0 -38
  1419. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand400.colorset/Contents.json +0 -38
  1420. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand500.colorset/Contents.json +0 -38
  1421. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand600.colorset/Contents.json +0 -38
  1422. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand700.colorset/Contents.json +0 -38
  1423. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand800.colorset/Contents.json +0 -38
  1424. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrand900.colorset/Contents.json +0 -38
  1425. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrandBase.colorset/Contents.json +0 -38
  1426. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrandKeyline.colorset/Contents.json +0 -38
  1427. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorBrandUltralight.colorset/Contents.json +0 -38
  1428. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen100.colorset/Contents.json +0 -38
  1429. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen200.colorset/Contents.json +0 -38
  1430. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen300.colorset/Contents.json +0 -38
  1431. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen400.colorset/Contents.json +0 -38
  1432. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen500.colorset/Contents.json +0 -38
  1433. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen600.colorset/Contents.json +0 -38
  1434. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen700.colorset/Contents.json +0 -38
  1435. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen800.colorset/Contents.json +0 -38
  1436. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorGreen900.colorset/Contents.json +0 -38
  1437. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationSolidDark.colorset/Contents.json +0 -38
  1438. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationSolidExtraLight.colorset/Contents.json +0 -38
  1439. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationSolidGlow.colorset/Contents.json +0 -38
  1440. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationSolidLight.colorset/Contents.json +0 -38
  1441. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationSolidMedium.colorset/Contents.json +0 -38
  1442. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationSolidWhite.colorset/Contents.json +0 -38
  1443. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTranslucidDark.colorset/Contents.json +0 -38
  1444. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTranslucidExtraLight.colorset/Contents.json +0 -38
  1445. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTranslucidGlow.colorset/Contents.json +0 -38
  1446. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTranslucidLight.colorset/Contents.json +0 -38
  1447. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTranslucidMedium.colorset/Contents.json +0 -38
  1448. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTranslucidWhite.colorset/Contents.json +0 -38
  1449. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTransparentGlow.colorset/Contents.json +0 -38
  1450. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorIllustrationTransparentWhite.colorset/Contents.json +0 -38
  1451. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta100.colorset/Contents.json +0 -38
  1452. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta200.colorset/Contents.json +0 -38
  1453. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta300.colorset/Contents.json +0 -38
  1454. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta400.colorset/Contents.json +0 -38
  1455. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta500.colorset/Contents.json +0 -38
  1456. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta600.colorset/Contents.json +0 -38
  1457. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta700.colorset/Contents.json +0 -38
  1458. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMagenta800.colorset/Contents.json +0 -38
  1459. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber100.colorset/Contents.json +0 -38
  1460. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber200.colorset/Contents.json +0 -38
  1461. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber300.colorset/Contents.json +0 -38
  1462. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber400.colorset/Contents.json +0 -38
  1463. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber500.colorset/Contents.json +0 -38
  1464. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber600.colorset/Contents.json +0 -38
  1465. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber700.colorset/Contents.json +0 -38
  1466. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber800.colorset/Contents.json +0 -38
  1467. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAmber900.colorset/Contents.json +0 -38
  1468. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua100.colorset/Contents.json +0 -38
  1469. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua200.colorset/Contents.json +0 -38
  1470. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua300.colorset/Contents.json +0 -38
  1471. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua400.colorset/Contents.json +0 -38
  1472. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua500.colorset/Contents.json +0 -38
  1473. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua600.colorset/Contents.json +0 -38
  1474. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua700.colorset/Contents.json +0 -38
  1475. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua800.colorset/Contents.json +0 -38
  1476. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAqua900.colorset/Contents.json +0 -38
  1477. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure100.colorset/Contents.json +0 -38
  1478. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure200.colorset/Contents.json +0 -38
  1479. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure300.colorset/Contents.json +0 -38
  1480. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure400.colorset/Contents.json +0 -38
  1481. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure500.colorset/Contents.json +0 -38
  1482. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure600.colorset/Contents.json +0 -38
  1483. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure700.colorset/Contents.json +0 -38
  1484. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure800.colorset/Contents.json +0 -38
  1485. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyAzure900.colorset/Contents.json +0 -38
  1486. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue100.colorset/Contents.json +0 -38
  1487. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue200.colorset/Contents.json +0 -38
  1488. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue300.colorset/Contents.json +0 -38
  1489. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue400.colorset/Contents.json +0 -38
  1490. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue500.colorset/Contents.json +0 -38
  1491. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue600.colorset/Contents.json +0 -38
  1492. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue700.colorset/Contents.json +0 -38
  1493. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue800.colorset/Contents.json +0 -38
  1494. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyBlue900.colorset/Contents.json +0 -38
  1495. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange100.colorset/Contents.json +0 -38
  1496. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange200.colorset/Contents.json +0 -38
  1497. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange300.colorset/Contents.json +0 -38
  1498. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange400.colorset/Contents.json +0 -38
  1499. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange500.colorset/Contents.json +0 -38
  1500. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange600.colorset/Contents.json +0 -38
  1501. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange700.colorset/Contents.json +0 -38
  1502. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange800.colorset/Contents.json +0 -38
  1503. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyOrange900.colorset/Contents.json +0 -38
  1504. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink100.colorset/Contents.json +0 -38
  1505. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink200.colorset/Contents.json +0 -38
  1506. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink300.colorset/Contents.json +0 -38
  1507. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink400.colorset/Contents.json +0 -38
  1508. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink500.colorset/Contents.json +0 -38
  1509. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink600.colorset/Contents.json +0 -38
  1510. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink700.colorset/Contents.json +0 -38
  1511. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink800.colorset/Contents.json +0 -38
  1512. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPink900.colorset/Contents.json +0 -38
  1513. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple100.colorset/Contents.json +0 -38
  1514. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple200.colorset/Contents.json +0 -38
  1515. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple300.colorset/Contents.json +0 -38
  1516. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple400.colorset/Contents.json +0 -38
  1517. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple500.colorset/Contents.json +0 -38
  1518. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple600.colorset/Contents.json +0 -38
  1519. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple700.colorset/Contents.json +0 -38
  1520. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple800.colorset/Contents.json +0 -38
  1521. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorMyPurple900.colorset/Contents.json +0 -38
  1522. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral0.colorset/Contents.json +0 -38
  1523. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral100.colorset/Contents.json +0 -38
  1524. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral1000.colorset/Contents.json +0 -38
  1525. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral200.colorset/Contents.json +0 -38
  1526. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral300.colorset/Contents.json +0 -38
  1527. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral400.colorset/Contents.json +0 -38
  1528. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral50.colorset/Contents.json +0 -38
  1529. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral500.colorset/Contents.json +0 -38
  1530. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral600.colorset/Contents.json +0 -38
  1531. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral700.colorset/Contents.json +0 -38
  1532. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral800.colorset/Contents.json +0 -38
  1533. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutral900.colorset/Contents.json +0 -38
  1534. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralBase.colorset/Contents.json +0 -38
  1535. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralBoxShadow.colorset/Contents.json +0 -38
  1536. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralDark.colorset/Contents.json +0 -38
  1537. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralDarkbase.colorset/Contents.json +0 -38
  1538. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralExtradark.colorset/Contents.json +0 -38
  1539. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralExtralight.colorset/Contents.json +0 -38
  1540. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralLight.colorset/Contents.json +0 -38
  1541. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralLightbase.colorset/Contents.json +0 -38
  1542. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralMegalight.colorset/Contents.json +0 -38
  1543. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralModal.colorset/Contents.json +0 -38
  1544. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralSuperlight.colorset/Contents.json +0 -38
  1545. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNeutralUltralight.colorset/Contents.json +0 -38
  1546. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNonColorAlwaysUltradark.colorset/Contents.json +0 -38
  1547. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNonColorAlwaysUltralight.colorset/Contents.json +0 -38
  1548. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNonColorColorBlack.colorset/Contents.json +0 -38
  1549. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNonColorColorWhite.colorset/Contents.json +0 -38
  1550. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNonColorContrastUltradark.colorset/Contents.json +0 -38
  1551. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNonColorContrastUltralight.colorset/Contents.json +0 -38
  1552. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorNonColorTransparent.colorset/Contents.json +0 -38
  1553. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange100.colorset/Contents.json +0 -38
  1554. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange200.colorset/Contents.json +0 -38
  1555. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange250.colorset/Contents.json +0 -38
  1556. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange300.colorset/Contents.json +0 -38
  1557. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange400.colorset/Contents.json +0 -38
  1558. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange500.colorset/Contents.json +0 -38
  1559. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange600.colorset/Contents.json +0 -38
  1560. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange700.colorset/Contents.json +0 -38
  1561. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorOrange800.colorset/Contents.json +0 -38
  1562. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveBase.colorset/Contents.json +0 -38
  1563. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveDark.colorset/Contents.json +0 -38
  1564. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveDarkbase.colorset/Contents.json +0 -38
  1565. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveExtradark.colorset/Contents.json +0 -38
  1566. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveExtralight.colorset/Contents.json +0 -38
  1567. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveLight.colorset/Contents.json +0 -38
  1568. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveLightbase.colorset/Contents.json +0 -38
  1569. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveUltradark.colorset/Contents.json +0 -38
  1570. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPositiveUltralight.colorset/Contents.json +0 -38
  1571. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary100.colorset/Contents.json +0 -38
  1572. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary1000.colorset/Contents.json +0 -38
  1573. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary200.colorset/Contents.json +0 -38
  1574. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary300.colorset/Contents.json +0 -38
  1575. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary400.colorset/Contents.json +0 -38
  1576. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary500.colorset/Contents.json +0 -38
  1577. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary600.colorset/Contents.json +0 -38
  1578. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary700.colorset/Contents.json +0 -38
  1579. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary800.colorset/Contents.json +0 -38
  1580. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimary900.colorset/Contents.json +0 -38
  1581. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryBase.colorset/Contents.json +0 -38
  1582. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryDark.colorset/Contents.json +0 -38
  1583. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryDarkbase.colorset/Contents.json +0 -38
  1584. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryExtradark.colorset/Contents.json +0 -38
  1585. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryExtralight.colorset/Contents.json +0 -38
  1586. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryLight.colorset/Contents.json +0 -38
  1587. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryLightbase.colorset/Contents.json +0 -38
  1588. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryMegalight.colorset/Contents.json +0 -38
  1589. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPrimaryUltralight.colorset/Contents.json +0 -38
  1590. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple100.colorset/Contents.json +0 -38
  1591. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple200.colorset/Contents.json +0 -38
  1592. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple300.colorset/Contents.json +0 -38
  1593. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple400.colorset/Contents.json +0 -38
  1594. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple500.colorset/Contents.json +0 -38
  1595. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple600.colorset/Contents.json +0 -38
  1596. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple700.colorset/Contents.json +0 -38
  1597. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurple800.colorset/Contents.json +0 -38
  1598. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurpleBase.colorset/Contents.json +0 -38
  1599. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurpleDarkbase.colorset/Contents.json +0 -38
  1600. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurpleLightbase.colorset/Contents.json +0 -38
  1601. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurpleUltradark.colorset/Contents.json +0 -38
  1602. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorPurpleUltralight.colorset/Contents.json +0 -38
  1603. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed100.colorset/Contents.json +0 -38
  1604. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed200.colorset/Contents.json +0 -38
  1605. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed300.colorset/Contents.json +0 -38
  1606. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed400.colorset/Contents.json +0 -38
  1607. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed500.colorset/Contents.json +0 -38
  1608. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed600.colorset/Contents.json +0 -38
  1609. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed700.colorset/Contents.json +0 -38
  1610. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed800.colorset/Contents.json +0 -38
  1611. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorRed900.colorset/Contents.json +0 -38
  1612. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorSecondary100.colorset/Contents.json +0 -38
  1613. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorSecondary200.colorset/Contents.json +0 -38
  1614. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorSecondary300.colorset/Contents.json +0 -38
  1615. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorSecondary400.colorset/Contents.json +0 -38
  1616. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorSecondary500.colorset/Contents.json +0 -38
  1617. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningBase.colorset/Contents.json +0 -38
  1618. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningDark.colorset/Contents.json +0 -38
  1619. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningDarkbase.colorset/Contents.json +0 -38
  1620. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningExtradark.colorset/Contents.json +0 -38
  1621. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningExtralight.colorset/Contents.json +0 -38
  1622. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningLight.colorset/Contents.json +0 -38
  1623. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningLightbase.colorset/Contents.json +0 -38
  1624. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningUltradark.colorset/Contents.json +0 -38
  1625. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorWarningUltralight.colorset/Contents.json +0 -38
  1626. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow100.colorset/Contents.json +0 -38
  1627. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow200.colorset/Contents.json +0 -38
  1628. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow250.colorset/Contents.json +0 -38
  1629. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow300.colorset/Contents.json +0 -38
  1630. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow400.colorset/Contents.json +0 -38
  1631. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow500.colorset/Contents.json +0 -38
  1632. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow600.colorset/Contents.json +0 -38
  1633. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow700.colorset/Contents.json +0 -38
  1634. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/colorYellow800.colorset/Contents.json +0 -38
  1635. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultAlarmIcon.colorset/Contents.json +0 -38
  1636. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultBorder.colorset/Contents.json +0 -38
  1637. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultIcon.colorset/Contents.json +0 -38
  1638. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultLabel.colorset/Contents.json +0 -38
  1639. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultSubtext.colorset/Contents.json +0 -38
  1640. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultSupporting.colorset/Contents.json +0 -38
  1641. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultSurface.colorset/Contents.json +0 -38
  1642. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmDefaultValue.colorset/Contents.json +0 -38
  1643. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusAlarmIcon.colorset/Contents.json +0 -38
  1644. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusBorder.colorset/Contents.json +0 -38
  1645. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusIcon.colorset/Contents.json +0 -38
  1646. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusLabel.colorset/Contents.json +0 -38
  1647. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusPlaceholder.colorset/Contents.json +0 -38
  1648. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusSubtext.colorset/Contents.json +0 -38
  1649. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusSupporting.colorset/Contents.json +0 -38
  1650. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusSurface.colorset/Contents.json +0 -38
  1651. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmFocusValue.colorset/Contents.json +0 -38
  1652. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverAlarmIcon.colorset/Contents.json +0 -38
  1653. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverBorder.colorset/Contents.json +0 -38
  1654. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverIcon.colorset/Contents.json +0 -38
  1655. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverLabel.colorset/Contents.json +0 -38
  1656. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverSubtext.colorset/Contents.json +0 -38
  1657. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverSupporting.colorset/Contents.json +0 -38
  1658. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverSurface.colorset/Contents.json +0 -38
  1659. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputAlarmHoverValue.colorset/Contents.json +0 -38
  1660. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultBorder.colorset/Contents.json +0 -38
  1661. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultIcon.colorset/Contents.json +0 -38
  1662. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultLabel.colorset/Contents.json +0 -38
  1663. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultSubtext.colorset/Contents.json +0 -38
  1664. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultSupporting.colorset/Contents.json +0 -38
  1665. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultSurface.colorset/Contents.json +0 -38
  1666. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultSurfaceSearch.colorset/Contents.json +0 -38
  1667. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDefaultValue.colorset/Contents.json +0 -38
  1668. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDisabledBorder.colorset/Contents.json +0 -38
  1669. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDisabledIcon.colorset/Contents.json +0 -38
  1670. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDisabledLabel.colorset/Contents.json +0 -38
  1671. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDisabledSubtext.colorset/Contents.json +0 -38
  1672. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDisabledSupporting.colorset/Contents.json +0 -38
  1673. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDisabledSurface.colorset/Contents.json +0 -38
  1674. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularDisabledValue.colorset/Contents.json +0 -38
  1675. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusBorder.colorset/Contents.json +0 -38
  1676. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusIcon.colorset/Contents.json +0 -38
  1677. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusLabel.colorset/Contents.json +0 -38
  1678. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusPlaceholder.colorset/Contents.json +0 -38
  1679. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusSubtext.colorset/Contents.json +0 -38
  1680. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusSupporting.colorset/Contents.json +0 -38
  1681. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusSurface.colorset/Contents.json +0 -38
  1682. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusSurfaceSearch.colorset/Contents.json +0 -38
  1683. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularFocusValue.colorset/Contents.json +0 -38
  1684. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverBorder.colorset/Contents.json +0 -38
  1685. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverIcon.colorset/Contents.json +0 -38
  1686. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverLabel.colorset/Contents.json +0 -38
  1687. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverSubtext.colorset/Contents.json +0 -38
  1688. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverSupporting.colorset/Contents.json +0 -38
  1689. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverSurface.colorset/Contents.json +0 -38
  1690. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverSurfaceSearch.colorset/Contents.json +0 -38
  1691. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/inputRegularHoverValue.colorset/Contents.json +0 -38
  1692. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDefaultBorder.colorset/Contents.json +0 -38
  1693. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDefaultIcon.colorset/Contents.json +0 -38
  1694. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDefaultSubtext.colorset/Contents.json +0 -38
  1695. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDefaultSurface.colorset/Contents.json +0 -38
  1696. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDefaultText.colorset/Contents.json +0 -38
  1697. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDisabledBorder.colorset/Contents.json +0 -38
  1698. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDisabledIcon.colorset/Contents.json +0 -38
  1699. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDisabledSubtext.colorset/Contents.json +0 -38
  1700. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDisabledSurface.colorset/Contents.json +0 -38
  1701. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmDisabledText.colorset/Contents.json +0 -38
  1702. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmFocusBorder.colorset/Contents.json +0 -38
  1703. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmFocusFocusRing.colorset/Contents.json +0 -38
  1704. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmFocusIcon.colorset/Contents.json +0 -38
  1705. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmFocusSubtext.colorset/Contents.json +0 -38
  1706. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmFocusSurface.colorset/Contents.json +0 -38
  1707. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmFocusText.colorset/Contents.json +0 -38
  1708. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmHoverBorder.colorset/Contents.json +0 -38
  1709. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmHoverIcon.colorset/Contents.json +0 -38
  1710. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmHoverSubtext.colorset/Contents.json +0 -38
  1711. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmHoverSurface.colorset/Contents.json +0 -38
  1712. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1713. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmHoverText.colorset/Contents.json +0 -38
  1714. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmPressedBorder.colorset/Contents.json +0 -38
  1715. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmPressedIcon.colorset/Contents.json +0 -38
  1716. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmPressedSubtext.colorset/Contents.json +0 -38
  1717. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmPressedSurface.colorset/Contents.json +0 -38
  1718. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveAlarmPressedText.colorset/Contents.json +0 -38
  1719. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDefaultBorder.colorset/Contents.json +0 -38
  1720. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDefaultIcon.colorset/Contents.json +0 -38
  1721. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDefaultSubtext.colorset/Contents.json +0 -38
  1722. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDefaultSurface.colorset/Contents.json +0 -38
  1723. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDefaultText.colorset/Contents.json +0 -38
  1724. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDisabledBorder.colorset/Contents.json +0 -38
  1725. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDisabledIcon.colorset/Contents.json +0 -38
  1726. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDisabledSubtext.colorset/Contents.json +0 -38
  1727. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDisabledSurface.colorset/Contents.json +0 -38
  1728. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularDisabledText.colorset/Contents.json +0 -38
  1729. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularFocusBorder.colorset/Contents.json +0 -38
  1730. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularFocusFocusRing.colorset/Contents.json +0 -38
  1731. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularFocusIcon.colorset/Contents.json +0 -38
  1732. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularFocusSubtext.colorset/Contents.json +0 -38
  1733. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularFocusSurface.colorset/Contents.json +0 -38
  1734. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularFocusText.colorset/Contents.json +0 -38
  1735. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularHoverBorder.colorset/Contents.json +0 -38
  1736. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularHoverIcon.colorset/Contents.json +0 -38
  1737. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularHoverSubtext.colorset/Contents.json +0 -38
  1738. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularHoverSurface.colorset/Contents.json +0 -38
  1739. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1740. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularHoverText.colorset/Contents.json +0 -38
  1741. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularPressedBorder.colorset/Contents.json +0 -38
  1742. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularPressedIcon.colorset/Contents.json +0 -38
  1743. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularPressedSubtext.colorset/Contents.json +0 -38
  1744. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularPressedSurface.colorset/Contents.json +0 -38
  1745. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveActiveRegularPressedText.colorset/Contents.json +0 -38
  1746. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDefaultBorder.colorset/Contents.json +0 -38
  1747. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDefaultIcon.colorset/Contents.json +0 -38
  1748. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDefaultSubtext.colorset/Contents.json +0 -38
  1749. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDefaultSurface.colorset/Contents.json +0 -38
  1750. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDefaultSurfaceAlternate.colorset/Contents.json +0 -38
  1751. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDefaultText.colorset/Contents.json +0 -38
  1752. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDisabledBorder.colorset/Contents.json +0 -38
  1753. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDisabledIcon.colorset/Contents.json +0 -38
  1754. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDisabledSubtext.colorset/Contents.json +0 -38
  1755. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDisabledSurface.colorset/Contents.json +0 -38
  1756. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmDisabledText.colorset/Contents.json +0 -38
  1757. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmFocusBorder.colorset/Contents.json +0 -38
  1758. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmFocusFocusRing.colorset/Contents.json +0 -38
  1759. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmFocusIcon.colorset/Contents.json +0 -38
  1760. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmFocusSubtext.colorset/Contents.json +0 -38
  1761. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmFocusSurface.colorset/Contents.json +0 -38
  1762. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmFocusSurfaceAlternate.colorset/Contents.json +0 -38
  1763. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmFocusText.colorset/Contents.json +0 -38
  1764. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmHoverBorder.colorset/Contents.json +0 -38
  1765. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmHoverIcon.colorset/Contents.json +0 -38
  1766. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmHoverSubtext.colorset/Contents.json +0 -38
  1767. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmHoverSurface.colorset/Contents.json +0 -38
  1768. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1769. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmHoverText.colorset/Contents.json +0 -38
  1770. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmPressedBorder.colorset/Contents.json +0 -38
  1771. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmPressedIcon.colorset/Contents.json +0 -38
  1772. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmPressedSubtext.colorset/Contents.json +0 -38
  1773. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmPressedSurface.colorset/Contents.json +0 -38
  1774. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveAlarmPressedText.colorset/Contents.json +0 -38
  1775. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDefaultBorder.colorset/Contents.json +0 -38
  1776. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDefaultIcon.colorset/Contents.json +0 -38
  1777. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDefaultSubtext.colorset/Contents.json +0 -38
  1778. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDefaultSurface.colorset/Contents.json +0 -38
  1779. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDefaultSurfaceAlternate.colorset/Contents.json +0 -38
  1780. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDefaultText.colorset/Contents.json +0 -38
  1781. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDisabledBorder.colorset/Contents.json +0 -38
  1782. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDisabledIcon.colorset/Contents.json +0 -38
  1783. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDisabledSubtext.colorset/Contents.json +0 -38
  1784. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDisabledSurface.colorset/Contents.json +0 -38
  1785. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularDisabledText.colorset/Contents.json +0 -38
  1786. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularFocusBorder.colorset/Contents.json +0 -38
  1787. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularFocusFocusRing.colorset/Contents.json +0 -38
  1788. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularFocusIcon.colorset/Contents.json +0 -38
  1789. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularFocusSubtext.colorset/Contents.json +0 -38
  1790. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularFocusSurface.colorset/Contents.json +0 -38
  1791. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularFocusSurfaceAlternate.colorset/Contents.json +0 -38
  1792. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularFocusText.colorset/Contents.json +0 -38
  1793. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularHoverBorder.colorset/Contents.json +0 -38
  1794. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularHoverIcon.colorset/Contents.json +0 -38
  1795. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularHoverSubtext.colorset/Contents.json +0 -38
  1796. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularHoverSurface.colorset/Contents.json +0 -38
  1797. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularHoverSurfaceAlternate.colorset/Contents.json +0 -38
  1798. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularHoverText.colorset/Contents.json +0 -38
  1799. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularPressedBorder.colorset/Contents.json +0 -38
  1800. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularPressedIcon.colorset/Contents.json +0 -38
  1801. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularPressedSubtext.colorset/Contents.json +0 -38
  1802. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularPressedSurface.colorset/Contents.json +0 -38
  1803. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/interactiveInactiveRegularPressedText.colorset/Contents.json +0 -38
  1804. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveBackgroundAlternative.colorset/Contents.json +0 -38
  1805. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveBackgroundAlternativeFloating.colorset/Contents.json +0 -38
  1806. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveBackgroundAlternativeRaised.colorset/Contents.json +0 -38
  1807. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveBackgroundBrand.colorset/Contents.json +0 -38
  1808. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveBackgroundDefault.colorset/Contents.json +0 -38
  1809. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveBackgroundDefaultFloating.colorset/Contents.json +0 -38
  1810. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveBackgroundDefaultRaised.colorset/Contents.json +0 -38
  1811. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveForegroundPrimary.colorset/Contents.json +0 -38
  1812. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/nonInteractiveForegroundSecondary.colorset/Contents.json +0 -38
  1813. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDefaultBorder.colorset/Contents.json +0 -38
  1814. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDefaultHandle.colorset/Contents.json +0 -38
  1815. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDefaultIcon.colorset/Contents.json +0 -38
  1816. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDefaultSurface.colorset/Contents.json +0 -38
  1817. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDefaultText.colorset/Contents.json +0 -38
  1818. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDisabledBorder.colorset/Contents.json +0 -38
  1819. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDisabledHandle.colorset/Contents.json +0 -38
  1820. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDisabledIcon.colorset/Contents.json +0 -38
  1821. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDisabledSurface.colorset/Contents.json +0 -38
  1822. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveDisabledText.colorset/Contents.json +0 -38
  1823. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveFocusBorder.colorset/Contents.json +0 -38
  1824. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveFocusFocusRing.colorset/Contents.json +0 -38
  1825. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveFocusHandle.colorset/Contents.json +0 -38
  1826. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveFocusIcon.colorset/Contents.json +0 -38
  1827. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveFocusSurface.colorset/Contents.json +0 -38
  1828. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveFocusText.colorset/Contents.json +0 -38
  1829. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveHoverBorder.colorset/Contents.json +0 -38
  1830. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveHoverHandle.colorset/Contents.json +0 -38
  1831. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveHoverHoverRing.colorset/Contents.json +0 -38
  1832. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveHoverIcon.colorset/Contents.json +0 -38
  1833. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveHoverSurface.colorset/Contents.json +0 -38
  1834. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveHoverText.colorset/Contents.json +0 -38
  1835. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActivePressedBorder.colorset/Contents.json +0 -38
  1836. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActivePressedHandle.colorset/Contents.json +0 -38
  1837. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActivePressedIcon.colorset/Contents.json +0 -38
  1838. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActivePressedSurface.colorset/Contents.json +0 -38
  1839. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActivePressedText.colorset/Contents.json +0 -38
  1840. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveReadOnlyBorder.colorset/Contents.json +0 -38
  1841. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveReadOnlyHandle.colorset/Contents.json +0 -38
  1842. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveReadOnlyIcon.colorset/Contents.json +0 -38
  1843. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveReadOnlySurface.colorset/Contents.json +0 -38
  1844. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsActiveReadOnlyText.colorset/Contents.json +0 -38
  1845. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDefaultBorder.colorset/Contents.json +0 -38
  1846. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDefaultHandle.colorset/Contents.json +0 -38
  1847. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDefaultIcon.colorset/Contents.json +0 -38
  1848. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDefaultSurface.colorset/Contents.json +0 -38
  1849. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDefaultText.colorset/Contents.json +0 -38
  1850. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDisabledBorder.colorset/Contents.json +0 -38
  1851. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDisabledHandle.colorset/Contents.json +0 -38
  1852. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDisabledIcon.colorset/Contents.json +0 -38
  1853. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDisabledSurface.colorset/Contents.json +0 -38
  1854. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveDisabledText.colorset/Contents.json +0 -38
  1855. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveFocusBorder.colorset/Contents.json +0 -38
  1856. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveFocusFocusRing.colorset/Contents.json +0 -38
  1857. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveFocusHandle.colorset/Contents.json +0 -38
  1858. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveFocusIcon.colorset/Contents.json +0 -38
  1859. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveFocusSurface.colorset/Contents.json +0 -38
  1860. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveFocusText.colorset/Contents.json +0 -38
  1861. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveHoverBorder.colorset/Contents.json +0 -38
  1862. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveHoverHandle.colorset/Contents.json +0 -38
  1863. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveHoverHoverRing.colorset/Contents.json +0 -38
  1864. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveHoverIcon.colorset/Contents.json +0 -38
  1865. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveHoverSurface.colorset/Contents.json +0 -38
  1866. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveHoverText.colorset/Contents.json +0 -38
  1867. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactivePressedBorder.colorset/Contents.json +0 -38
  1868. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactivePressedHandle.colorset/Contents.json +0 -38
  1869. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactivePressedIcon.colorset/Contents.json +0 -38
  1870. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactivePressedSurface.colorset/Contents.json +0 -38
  1871. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactivePressedText.colorset/Contents.json +0 -38
  1872. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveReadOnlyBorder.colorset/Contents.json +0 -38
  1873. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveReadOnlyHandle.colorset/Contents.json +0 -38
  1874. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveReadOnlyIcon.colorset/Contents.json +0 -38
  1875. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveReadOnlySurface.colorset/Contents.json +0 -38
  1876. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/selectorsInactiveReadOnlyText.colorset/Contents.json +0 -38
  1877. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDefaultHandle.colorset/Contents.json +0 -38
  1878. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDefaultHandleSurface.colorset/Contents.json +0 -38
  1879. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDefaultIcon.colorset/Contents.json +0 -38
  1880. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDefaultStopDot.colorset/Contents.json +0 -38
  1881. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDefaultStopText.colorset/Contents.json +0 -38
  1882. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDefaultTrack.colorset/Contents.json +0 -38
  1883. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDisabledHandle.colorset/Contents.json +0 -38
  1884. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDisabledHandleSurface.colorset/Contents.json +0 -38
  1885. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDisabledIcon.colorset/Contents.json +0 -38
  1886. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDisabledStopDot.colorset/Contents.json +0 -38
  1887. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDisabledStopText.colorset/Contents.json +0 -38
  1888. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveDisabledTrack.colorset/Contents.json +0 -38
  1889. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveFocusHandle.colorset/Contents.json +0 -38
  1890. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveFocusHandleFocusRing.colorset/Contents.json +0 -38
  1891. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveFocusHandleSurface.colorset/Contents.json +0 -38
  1892. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveFocusIcon.colorset/Contents.json +0 -38
  1893. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveFocusStopDot.colorset/Contents.json +0 -38
  1894. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveFocusStopText.colorset/Contents.json +0 -38
  1895. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveFocusTrack.colorset/Contents.json +0 -38
  1896. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveHoverHandle.colorset/Contents.json +0 -38
  1897. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveHoverHandleSurface.colorset/Contents.json +0 -38
  1898. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveHoverIcon.colorset/Contents.json +0 -38
  1899. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveHoverStopDot.colorset/Contents.json +0 -38
  1900. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveHoverStopText.colorset/Contents.json +0 -38
  1901. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActiveHoverTrack.colorset/Contents.json +0 -38
  1902. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActivePressedHandle.colorset/Contents.json +0 -38
  1903. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActivePressedHandleSurface.colorset/Contents.json +0 -38
  1904. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActivePressedIcon.colorset/Contents.json +0 -38
  1905. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActivePressedStopDot.colorset/Contents.json +0 -38
  1906. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActivePressedStopText.colorset/Contents.json +0 -38
  1907. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderActivePressedTrack.colorset/Contents.json +0 -38
  1908. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDefaultIcon.colorset/Contents.json +0 -38
  1909. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDefaultStopDot.colorset/Contents.json +0 -38
  1910. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDefaultStopText.colorset/Contents.json +0 -38
  1911. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDefaultTrack.colorset/Contents.json +0 -38
  1912. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDisabledIcon.colorset/Contents.json +0 -38
  1913. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDisabledStopDot.colorset/Contents.json +0 -38
  1914. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDisabledStopText.colorset/Contents.json +0 -38
  1915. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveDisabledTrack.colorset/Contents.json +0 -38
  1916. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveFocusIcon.colorset/Contents.json +0 -38
  1917. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveFocusStopDot.colorset/Contents.json +0 -38
  1918. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveFocusStopText.colorset/Contents.json +0 -38
  1919. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveFocusTrack.colorset/Contents.json +0 -38
  1920. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveHoverIcon.colorset/Contents.json +0 -38
  1921. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveHoverStopDot.colorset/Contents.json +0 -38
  1922. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveHoverStopText.colorset/Contents.json +0 -38
  1923. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactiveHoverTrack.colorset/Contents.json +0 -38
  1924. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactivePressedIcon.colorset/Contents.json +0 -38
  1925. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactivePressedStopDot.colorset/Contents.json +0 -38
  1926. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactivePressedStopText.colorset/Contents.json +0 -38
  1927. package/tokens/ios/Sources/JumpyTokensJumpy/Tokens.xcassets/sliderInactivePressedTrack.colorset/Contents.json +0 -38
package/dist/index.js CHANGED
@@ -1,4 +1,83 @@
1
1
  "use client";
2
+ import {
3
+ JumpTokenInput
4
+ } from "./chunk-KYDYZC4E.js";
5
+ import {
6
+ BrandMark,
7
+ JumpAppShell,
8
+ JumpAvatar,
9
+ JumpBackground,
10
+ JumpBadge,
11
+ JumpBanner,
12
+ JumpBaseInput,
13
+ JumpButton,
14
+ JumpCard,
15
+ JumpCheckbox,
16
+ JumpChip,
17
+ JumpChoice,
18
+ JumpDatePicker,
19
+ JumpDialog,
20
+ JumpDivider,
21
+ JumpDropdown,
22
+ JumpExpandable,
23
+ JumpExpandableGroup,
24
+ JumpField,
25
+ JumpGrid,
26
+ JumpGridItem,
27
+ JumpHyperlink,
28
+ JumpIconButton,
29
+ JumpInput,
30
+ JumpLinkButton,
31
+ JumpList,
32
+ JumpListItem,
33
+ JumpLoader,
34
+ JumpMenu,
35
+ JumpMenuItem,
36
+ JumpModal,
37
+ JumpNotice,
38
+ JumpPageControl,
39
+ JumpPinInput,
40
+ JumpPopover,
41
+ JumpRadioGroup,
42
+ JumpSearchField,
43
+ JumpSectionFooter,
44
+ JumpSectionHeader,
45
+ JumpSheet,
46
+ JumpSideMenu,
47
+ JumpSideMenuItem,
48
+ JumpSkeletonLoader,
49
+ JumpSnackbarProvider,
50
+ JumpSpinner,
51
+ JumpSwitch,
52
+ JumpTabBar,
53
+ JumpTabBarItem,
54
+ JumpTable,
55
+ JumpTableBody,
56
+ JumpTableCell,
57
+ JumpTableFooter,
58
+ JumpTableHead,
59
+ JumpTableHeaderCell,
60
+ JumpTableRow,
61
+ JumpTabs,
62
+ JumpTag,
63
+ JumpTextarea,
64
+ JumpTimePicker,
65
+ JumpToggleButton,
66
+ JumpToggleButtonGroup,
67
+ JumpTooltip,
68
+ JumpTopBar,
69
+ JumpTypography,
70
+ KeyboardKeys,
71
+ applySubtreeSelection,
72
+ getHeaderCheckboxProps,
73
+ getNextSortOrder,
74
+ getRowCheckboxProps,
75
+ getSortActionLabel,
76
+ getSortMapping,
77
+ getSortOrder,
78
+ isRowFullySelected,
79
+ useJumpSnackbar
80
+ } from "./chunk-KUCMD6DR.js";
2
81
  import {
3
82
  JumpyAnimation,
4
83
  JumpyAnimationDelay,
@@ -11,12 +90,13 @@ import {
11
90
  JumpySpacing,
12
91
  JumpyTextStyle,
13
92
  JumpyThemeProvider,
14
- JumpyThemeScopeContext,
15
93
  animationDelayValue,
16
94
  animationDurationValue,
17
95
  animationEasingValue,
18
96
  borderWidthValue,
97
+ createJumpyPresetFromAccent,
19
98
  createJumpyTheme,
99
+ createJumpyThemeFromAccent,
20
100
  createJumpyThemeFromPreset,
21
101
  defaultJumpyTheme,
22
102
  jumpyThemePresets,
@@ -28,4558 +108,11 @@ import {
28
108
  textStyleValue,
29
109
  themeToCSSVariables,
30
110
  useJumpyTheme
31
- } from "./chunk-XX3RYGLI.js";
32
- import {
33
- cn
34
- } from "./chunk-3DBKYKP2.js";
111
+ } from "./chunk-KDFNGI6Y.js";
112
+ import "./chunk-3DBKYKP2.js";
35
113
  import {
36
114
  jumpyThemeInventory
37
115
  } from "./chunk-XDTVYUWG.js";
38
-
39
- // index.js
40
- import { autoUpdate, flip, FloatingFocusManager, FloatingOverlay, FloatingPortal, offset, shift, size, useFloating } from "@floating-ui/react";
41
- import { Children, cloneElement, createContext, forwardRef, isValidElement, useContext, useEffect as useEffect2, useId, useLayoutEffect as useLayoutEffect2, useRef as useRef2, useState as useState2 } from "react";
42
-
43
- // token-input.js
44
- import { useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
45
- import { $addUpdateTag, $createLineBreakNode, $createParagraphNode, $createTextNode, $getNodeByKey, $getRoot, $getSelection, $isElementNode, $isLineBreakNode, $isNodeSelection, $isRangeSelection, $isTextNode, $setSelection, CLEAR_HISTORY_COMMAND, COMMAND_PRIORITY_HIGH, COPY_COMMAND, CUT_COMMAND, DELETE_CHARACTER_COMMAND, DecoratorNode, HISTORY_PUSH_TAG, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, KEY_ENTER_COMMAND, PASTE_COMMAND } from "lexical";
46
- import { $generateJSONFromSelectedNodes } from "@lexical/clipboard";
47
- import { LexicalComposer } from "@lexical/react/LexicalComposer";
48
- import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
49
- import { ContentEditable } from "@lexical/react/LexicalContentEditable";
50
- import { PlainTextPlugin } from "@lexical/react/LexicalPlainTextPlugin";
51
- import { HistoryPlugin } from "@lexical/react/LexicalHistoryPlugin";
52
- import { LexicalErrorBoundary } from "@lexical/react/LexicalErrorBoundary";
53
- import { jsx, jsxs } from "react/jsx-runtime";
54
- var clipboardType = "application/x-jumpy-token-input";
55
- function normalizeTokenInputValue(value, multiline = false) {
56
- const result = [];
57
- const ids = /* @__PURE__ */ new Set();
58
- for (const part of value) {
59
- if (part.type === "text") {
60
- const text = multiline ? part.text.replace(/\r\n?/g, "\n") : part.text.replace(/[\r\n]+/g, " ");
61
- if (!text) continue;
62
- const previous = result[result.length - 1];
63
- if (previous?.type === "text") previous.text += text;
64
- else result.push({ type: "text", text });
65
- } else if (part.type === "token") {
66
- if (typeof part.id !== "string" || !part.id || ids.has(part.id) || typeof part.value !== "string" || typeof part.label !== "string" || !part.label) throw new Error("JumpTokenInput tokens require unique ids, string values and non-empty labels");
67
- ids.add(part.id);
68
- result.push({ type: "token", id: part.id, value: part.value, label: part.label });
69
- } else throw new Error("Unknown JumpTokenInput value part");
70
- }
71
- return result;
72
- }
73
- function tokenInputText(value) {
74
- return value.map((part) => part.type === "text" ? part.text : part.label).join("");
75
- }
76
- var JumpyTokenNode = class _JumpyTokenNode extends DecoratorNode {
77
- static getType() {
78
- return "jumpy-token";
79
- }
80
- static clone(node) {
81
- return new _JumpyTokenNode(node.__token, node.__key);
82
- }
83
- static importJSON(json) {
84
- return new _JumpyTokenNode(json.token);
85
- }
86
- constructor(token, key) {
87
- super(key);
88
- this.__token = { ...token };
89
- }
90
- exportJSON() {
91
- return { ...super.exportJSON(), type: "jumpy-token", version: 1, token: { ...this.__token } };
92
- }
93
- getTextContent() {
94
- return this.__token.label;
95
- }
96
- isInline() {
97
- return true;
98
- }
99
- isKeyboardSelectable() {
100
- return false;
101
- }
102
- createDOM() {
103
- const element = document.createElement("span");
104
- element.contentEditable = "false";
105
- element.dataset.jumpyTokenId = this.__token.id;
106
- element.style.display = "inline-block";
107
- return element;
108
- }
109
- updateDOM() {
110
- return false;
111
- }
112
- decorate(editor) {
113
- return /* @__PURE__ */ jsx(TokenChip, { editor, nodeKey: this.__key, token: this.__token });
114
- }
115
- };
116
- function TokenChip({ editor, nodeKey, token }) {
117
- const theme = useJumpyTheme();
118
- const [editable, setEditable] = useState(editor.isEditable());
119
- useEffect(() => editor.registerEditableListener(setEditable), [editor]);
120
- return /* @__PURE__ */ jsxs("span", { "data-jumpy-slot": "input-token", style: { display: "inline-flex", maxWidth: "100%", boxSizing: "border-box", alignItems: "center", verticalAlign: "baseline", borderRadius: theme.radius.small, border: `${theme.borderWidth.small}px solid var(--jumpy-color-feedback-info-border)`, paddingInline: theme.spacing.small3XS, gap: theme.spacing.small3XS, background: "var(--jumpy-color-feedback-info-surface)", color: "var(--jumpy-color-text-primary)", fontSize: theme.fontFamily.bodySmall.fontSize, lineHeight: "inherit", whiteSpace: "inherit" }, children: [
121
- /* @__PURE__ */ jsx("span", { style: { minWidth: 0 }, children: token.label }),
122
- editable && /* @__PURE__ */ jsx("button", { type: "button", tabIndex: -1, "aria-label": `Remove ${token.label}`, onMouseDown: (event) => event.preventDefault(), onClick: (event) => {
123
- event.preventDefault();
124
- event.stopPropagation();
125
- if (!editor.isEditable()) return;
126
- editor.update(() => {
127
- const node = $getNodeByKey(nodeKey);
128
- if (node) {
129
- node.selectPrevious();
130
- node.remove();
131
- }
132
- }, { tag: HISTORY_PUSH_TAG });
133
- editor.focus();
134
- }, style: { display: "inline-flex", alignItems: "center", appearance: "none", border: 0, padding: 0, background: "transparent", color: "inherit", font: "inherit", cursor: "pointer" }, children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", focusable: "false", width: theme.fontFamily.bodySmall.fontSize, height: theme.fontFamily.bodySmall.fontSize, viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "m4 4 8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.5" }) }) })
135
- ] });
136
- }
137
- function $readValue(multiline = false) {
138
- const parts = [];
139
- function visit(node) {
140
- if (node instanceof JumpyTokenNode) parts.push({ ...node.__token });
141
- else if ($isTextNode(node)) parts.push({ type: "text", text: node.getTextContent() });
142
- else if ($isLineBreakNode(node)) parts.push({ type: "text", text: "\n" });
143
- else if ($isElementNode(node)) node.getChildren().forEach(visit);
144
- }
145
- $getRoot().getChildren().forEach((node, index) => {
146
- if (index > 0) parts.push({ type: "text", text: "\n" });
147
- visit(node);
148
- });
149
- return normalizeTokenInputValue(parts, multiline);
150
- }
151
- function $nodes(parts) {
152
- return parts.flatMap((part) => part.type === "token" ? [new JumpyTokenNode(part)] : part.text.split("\n").flatMap((text, index) => [
153
- ...index > 0 ? [$createLineBreakNode()] : [],
154
- ...text ? [$createTextNode(text)] : []
155
- ]));
156
- }
157
- function $replaceValue(parts) {
158
- $getRoot().clear().append($createParagraphNode().append(...$nodes(parts)));
159
- }
160
- function $adjacentToken(backward) {
161
- const selection = $getSelection();
162
- if (!$isRangeSelection(selection) || !selection.isCollapsed()) return null;
163
- const { offset: offset2, type } = selection.anchor;
164
- const node = selection.anchor.getNode();
165
- if (type === "element" && $isElementNode(node)) return node.getChildAtIndex(offset2 - (backward ? 1 : 0));
166
- if ($isTextNode(node) && (backward ? offset2 === 0 : offset2 === node.getTextContentSize())) return backward ? node.getPreviousSibling() : node.getNextSibling();
167
- return null;
168
- }
169
- function EditorBehavior({ model, multiline, editable, editorRef, onValueChange, onChange, onClear }) {
170
- const [editor] = useLexicalComposerContext();
171
- const savedSelection = useRef(null);
172
- const callbacks = useRef({ onValueChange, onChange, onClear });
173
- callbacks.current = { onValueChange, onChange, onClear };
174
- const previousMode = useRef(multiline);
175
- useLayoutEffect(() => {
176
- editor.setEditable(editable);
177
- }, [editor, editable]);
178
- useLayoutEffect(() => {
179
- const current = editor.getEditorState().read(() => $readValue(multiline));
180
- if (previousMode.current !== multiline || JSON.stringify(current) !== JSON.stringify(model)) {
181
- savedSelection.current = null;
182
- editor.update(() => {
183
- $replaceValue(model);
184
- $setSelection(null);
185
- }, { tag: "jumpy-external-value" });
186
- editor.dispatchCommand(CLEAR_HISTORY_COMMAND, void 0);
187
- }
188
- previousMode.current = multiline;
189
- }, [editor, model, multiline]);
190
- function insert(parts) {
191
- if (!editor.isEditable()) return;
192
- editor.update(() => {
193
- const selection = savedSelection.current?.clone() || $getSelection();
194
- if (selection) $setSelection(selection);
195
- else $getRoot().selectEnd();
196
- $getSelection()?.insertNodes($nodes(parts));
197
- }, { tag: HISTORY_PUSH_TAG });
198
- editor.focus();
199
- }
200
- useImperativeHandle(editorRef, () => ({
201
- focus: () => editor.focus(),
202
- insertText: (text) => insert(normalizeTokenInputValue([{ type: "text", text }], multiline)),
203
- insertToken: (token) => {
204
- const part = { ...token, type: "token", id: token.id || crypto.randomUUID() };
205
- const current = editor.getEditorState().read(() => $readValue(multiline));
206
- normalizeTokenInputValue([...current, part], multiline);
207
- insert([part]);
208
- },
209
- removeToken: (id) => {
210
- if (!editor.isEditable()) return;
211
- editor.update(() => {
212
- function remove(node) {
213
- if (node instanceof JumpyTokenNode && node.__token.id === id) {
214
- node.selectPrevious();
215
- node.remove();
216
- } else if ($isElementNode(node)) node.getChildren().forEach(remove);
217
- }
218
- remove($getRoot());
219
- }, { tag: HISTORY_PUSH_TAG });
220
- },
221
- clear: () => {
222
- if (!editor.isEditable()) return;
223
- if (editor.getEditorState().read(() => $readValue(multiline).length) === 0) return;
224
- editor.update(() => {
225
- if (!$getSelection()) $getRoot().selectEnd();
226
- }, { discrete: true });
227
- editor.update(() => {
228
- $replaceValue([]);
229
- $getRoot().selectStart();
230
- }, { tag: [HISTORY_PUSH_TAG, "jumpy-clear"] });
231
- editor.focus();
232
- }
233
- }));
234
- useEffect(() => {
235
- let previous = JSON.stringify(editor.getEditorState().read(() => $readValue(multiline)));
236
- const unregisterUpdate = editor.registerUpdateListener(({ editorState, tags }) => {
237
- editorState.read(() => {
238
- const selection = $getSelection();
239
- if (selection) savedSelection.current = selection.clone();
240
- const next = $readValue(multiline);
241
- const json = JSON.stringify(next);
242
- if (json === previous) return;
243
- previous = json;
244
- if (tags.has("jumpy-external-value")) return;
245
- callbacks.current.onChange?.({ target: { value: tokenInputText(next) }, currentTarget: { value: tokenInputText(next) } });
246
- callbacks.current.onValueChange(next);
247
- if (tags.has("jumpy-clear")) callbacks.current.onClear?.();
248
- });
249
- });
250
- const deleteToken = (event, backward) => {
251
- if (!editor.isEditable() || editor.isComposing()) return false;
252
- const selection = $getSelection();
253
- if ($isNodeSelection(selection)) {
254
- $addUpdateTag(HISTORY_PUSH_TAG);
255
- event?.preventDefault();
256
- for (const node2 of selection.getNodes()) {
257
- node2.selectPrevious();
258
- node2.remove();
259
- }
260
- return true;
261
- }
262
- const node = $adjacentToken(backward);
263
- if (!(node instanceof JumpyTokenNode)) return false;
264
- $addUpdateTag(HISTORY_PUSH_TAG);
265
- event?.preventDefault();
266
- node.selectPrevious();
267
- node.remove();
268
- return true;
269
- };
270
- const copy = (event, cut) => {
271
- if (!event?.clipboardData || cut && !editor.isEditable()) return false;
272
- const selection = $getSelection();
273
- if (!selection || $isRangeSelection(selection) && selection.isCollapsed()) return false;
274
- const { nodes } = $generateJSONFromSelectedNodes(editor, selection);
275
- const parts = [];
276
- const visit = (node) => {
277
- if (node.type === "jumpy-token") parts.push(node.token);
278
- else if (node.type === "text") parts.push({ type: "text", text: node.text });
279
- else if (node.type === "linebreak") parts.push({ type: "text", text: "\n" });
280
- else node.children?.forEach(visit);
281
- };
282
- nodes.forEach((node, index) => {
283
- if (index > 0 && node.type === "paragraph") parts.push({ type: "text", text: "\n" });
284
- visit(node);
285
- });
286
- event.preventDefault();
287
- event.clipboardData.setData("text/plain", tokenInputText(parts));
288
- event.clipboardData.setData(clipboardType, JSON.stringify(parts));
289
- if (cut) {
290
- $addUpdateTag(HISTORY_PUSH_TAG);
291
- if ($isNodeSelection(selection)) for (const node of selection.getNodes()) node.remove();
292
- else if ($isRangeSelection(selection)) selection.removeText();
293
- }
294
- return true;
295
- };
296
- const commands = [
297
- editor.registerCommand(DELETE_CHARACTER_COMMAND, (backward) => deleteToken(null, backward), COMMAND_PRIORITY_HIGH),
298
- editor.registerCommand(KEY_BACKSPACE_COMMAND, (event) => deleteToken(event, true), COMMAND_PRIORITY_HIGH),
299
- editor.registerCommand(KEY_DELETE_COMMAND, (event) => deleteToken(event, false), COMMAND_PRIORITY_HIGH),
300
- editor.registerCommand(KEY_ENTER_COMMAND, (event) => {
301
- if (editor.isComposing()) return false;
302
- event?.preventDefault();
303
- if (editable && multiline && !event?.metaKey && !event?.ctrlKey) {
304
- const selection = $getSelection();
305
- if ($isRangeSelection(selection)) {
306
- $addUpdateTag(HISTORY_PUSH_TAG);
307
- selection.insertLineBreak();
308
- }
309
- }
310
- return true;
311
- }, COMMAND_PRIORITY_HIGH),
312
- editor.registerCommand(COPY_COMMAND, (event) => copy(event, false), COMMAND_PRIORITY_HIGH),
313
- editor.registerCommand(CUT_COMMAND, (event) => copy(event, true), COMMAND_PRIORITY_HIGH),
314
- editor.registerCommand(PASTE_COMMAND, (event) => {
315
- if (!event?.clipboardData || !editor.isEditable()) return false;
316
- event.preventDefault();
317
- $addUpdateTag(HISTORY_PUSH_TAG);
318
- let parts;
319
- try {
320
- parts = normalizeTokenInputValue(JSON.parse(event.clipboardData.getData(clipboardType)).map((part) => part.type === "token" ? { ...part, id: crypto.randomUUID() } : part), multiline);
321
- } catch {
322
- parts = normalizeTokenInputValue([{ type: "text", text: event.clipboardData.getData("text/plain") }], multiline);
323
- }
324
- $getSelection()?.insertNodes($nodes(parts));
325
- return true;
326
- }, COMMAND_PRIORITY_HIGH)
327
- ];
328
- return () => {
329
- unregisterUpdate();
330
- commands.forEach((unregister) => unregister());
331
- };
332
- }, [editor, multiline, editable]);
333
- return null;
334
- }
335
- function TokenEditor({ model, multiline = false, minRows = 3, maxRows, editorRef, onValueChange, onChange, onClear, onFocus, onBlur, fieldContext, value: _value, placeholder, disabled, readOnly, style, ...props }) {
336
- const theme = useJumpyTheme();
337
- const initialConfig = useMemo(() => ({ namespace: "JumpyTokenInput", nodes: [JumpyTokenNode], editable: !disabled && !readOnly, onError: (error) => {
338
- throw error;
339
- }, editorState: () => $replaceValue(model) }), []);
340
- const offset2 = fieldContext?.hasLabel ? spacingValue(theme, JumpySpacing.large) : 0;
341
- const lineHeight = theme.fontFamily.bodyMedium.fontSize * theme.fontFamily.bodyMedium.lineHeight;
342
- return /* @__PURE__ */ jsx(LexicalComposer, { initialConfig, children: /* @__PURE__ */ jsxs("div", { style: { position: "relative", width: "100%", minWidth: 0, marginTop: offset2 }, children: [
343
- /* @__PURE__ */ jsx(
344
- PlainTextPlugin,
345
- {
346
- contentEditable: /* @__PURE__ */ jsx(ContentEditable, { ...props, onFocusCapture: (event) => {
347
- props.onFocusCapture?.(event);
348
- onFocus?.(event);
349
- }, onBlurCapture: (event) => {
350
- props.onBlurCapture?.(event);
351
- onBlur?.(event);
352
- }, "data-jumpy-component": "token-input", role: "textbox", "aria-multiline": multiline, "aria-readonly": readOnly || void 0, "aria-disabled": disabled || void 0, tabIndex: disabled ? -1 : 0, style: { width: "100%", minHeight: lineHeight * (multiline ? minRows : 1), maxHeight: multiline && maxRows !== void 0 ? lineHeight * maxRows : void 0, padding: 0, outline: 0, overflowX: "auto", overflowY: multiline ? "auto" : void 0, whiteSpace: multiline ? "pre-wrap" : "pre", overflowWrap: multiline ? "anywhere" : void 0, color: "var(--jumpy-cmp-base-input-value-color)", fontFamily: theme.fontFamily.familyBase, fontSize: theme.fontFamily.bodyMedium.fontSize, lineHeight: theme.fontFamily.bodyMedium.lineHeight, ...style } }),
353
- placeholder: null,
354
- ErrorBoundary: LexicalErrorBoundary
355
- }
356
- ),
357
- model.length === 0 && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", style: { position: "absolute", top: 0, left: 0, pointerEvents: "none", color: "var(--jumpy-cmp-base-input-placeholder-color)", fontSize: theme.fontFamily.bodyMedium.fontSize, lineHeight: theme.fontFamily.bodyMedium.lineHeight }, children: placeholder }),
358
- /* @__PURE__ */ jsx(HistoryPlugin, {}),
359
- /* @__PURE__ */ jsx(EditorBehavior, { model, multiline, editable: !disabled && !readOnly, editorRef, onValueChange, onChange, onClear })
360
- ] }) });
361
- }
362
-
363
- // index.js
364
- import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
365
- var JumpyFieldContext = createContext(null);
366
- var JumpyTableContext = createContext(null);
367
- var JumpyExpandableContext = createContext(null);
368
- var JumpySideMenuContext = createContext(null);
369
- var JumpyToggleButtonGroupContext = createContext(null);
370
- var JumpySnackbarContext = createContext({ addSnackbar: () => "", removeSnackbar: () => {
371
- }, clearAll: () => {
372
- } });
373
- var KeyboardKeys = {
374
- ARROW_DOWN: "ArrowDown",
375
- ARROW_LEFT: "ArrowLeft",
376
- ARROW_RIGHT: "ArrowRight",
377
- ARROW_UP: "ArrowUp",
378
- END: "End",
379
- ENTER: "Enter",
380
- ESCAPE: "Escape",
381
- HOME: "Home",
382
- SPACE: " ",
383
- TAB: "Tab"
384
- };
385
- function ChevronDownIcon(props) {
386
- const theme = useJumpyTheme();
387
- return /* @__PURE__ */ jsx2("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", focusable: "false", ...props, style: { display: "block", fontSize: sizeValue(theme, JumpySize.small), ...props.style || {} }, children: /* @__PURE__ */ jsx2("path", { fillRule: "evenodd", d: "M7.41 8.295 6 9.705l6 6 6-6-1.41-1.41-4.59 4.58z", clipRule: "evenodd", fill: "currentColor" }) });
388
- }
389
- function ChevronUpIcon(props) {
390
- const theme = useJumpyTheme();
391
- return /* @__PURE__ */ jsx2("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", focusable: "false", ...props, style: { display: "block", fontSize: sizeValue(theme, JumpySize.small), ...props.style || {} }, children: /* @__PURE__ */ jsx2("path", { fillRule: "evenodd", d: "m16.59 15.705 1.41-1.41-6-6-6 6 1.41 1.41 4.59-4.58z", clipRule: "evenodd", fill: "currentColor" }) });
392
- }
393
- function CircleConfirmIcon(props) {
394
- return /* @__PURE__ */ jsx2("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", focusable: "false", ...props, children: /* @__PURE__ */ jsx2("path", { fill: "currentColor", d: "M10 1.667a8.333 8.333 0 1 0 0 16.666 8.333 8.333 0 0 0 0-16.666Zm3.775 6.441-4.167 4.167a.833.833 0 0 1-1.178 0l-2.083-2.083a.833.833 0 1 1 1.178-1.179l1.494 1.494 3.577-3.577a.833.833 0 0 1 1.179 1.178Z" }) });
395
- }
396
- function CircleErrorIcon(props) {
397
- return /* @__PURE__ */ jsx2("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", focusable: "false", ...props, children: /* @__PURE__ */ jsx2("path", { fill: "currentColor", d: "M10 1.667a8.333 8.333 0 1 0 0 16.666A8.333 8.333 0 0 0 10 1.667Zm0 4.166c.46 0 .833.373.833.834v3.75a.833.833 0 0 1-1.666 0v-3.75c0-.46.373-.834.833-.834Zm0 8.75a1.042 1.042 0 1 1 0-2.083 1.042 1.042 0 0 1 0 2.083Z" }) });
398
- }
399
- function CircleClearIcon(props) {
400
- return /* @__PURE__ */ jsxs2("svg", { "data-jumpy-stroke-icon": "true", width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", focusable: "false", ...props, style: { display: "block", fill: "none", ...props.style || {} }, children: [
401
- /* @__PURE__ */ jsx2("path", { d: "M10 17.5a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15Z", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
402
- /* @__PURE__ */ jsx2("path", { d: "m7.5 7.5 5 5M12.5 7.5l-5 5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
403
- ] });
404
- }
405
- function supportsDisabledAttribute(tag) {
406
- return ["button", "input", "select", "textarea", "option", "optgroup", "fieldset"].includes(tag);
407
- }
408
- function responsiveValue(value, defaults) {
409
- if (value && typeof value === "object" && !Array.isArray(value)) {
410
- return {
411
- small: value.small ?? defaults.small,
412
- medium: value.medium ?? value.small ?? defaults.medium,
413
- large: value.large ?? value.medium ?? value.small ?? defaults.large,
414
- xLarge: value.xLarge ?? value.large ?? value.medium ?? value.small ?? defaults.xLarge
415
- };
416
- }
417
- return { small: value, medium: value, large: value, xLarge: value };
418
- }
419
- function gridSpacingValue(spacing, fallback = "1rem") {
420
- const length = (value2) => typeof value2 === "number" ? `${value2}px` : value2;
421
- if (Array.isArray(spacing)) return [length(spacing[0] ?? fallback), length(spacing[1] ?? fallback)];
422
- const value = length(spacing ?? fallback);
423
- return [value, value];
424
- }
425
- function responsiveGridSpacing(spacing) {
426
- const defaults = { small: ["1rem", "1rem"], medium: ["1rem", "1rem"], large: ["1.5rem", "1.5rem"], xLarge: ["1.5rem", "1.5rem"] };
427
- if (spacing == null || typeof spacing !== "object" || Array.isArray(spacing)) {
428
- return {
429
- small: gridSpacingValue(spacing ?? defaults.small, defaults.small[0]),
430
- medium: gridSpacingValue(spacing ?? defaults.medium, defaults.medium[0]),
431
- large: gridSpacingValue(spacing ?? defaults.large, defaults.large[0]),
432
- xLarge: gridSpacingValue(spacing ?? defaults.xLarge, defaults.xLarge[0])
433
- };
434
- }
435
- return {
436
- small: gridSpacingValue(spacing.small ?? defaults.small, defaults.small[0]),
437
- medium: gridSpacingValue(spacing.medium ?? spacing.small ?? defaults.medium, defaults.medium[0]),
438
- large: gridSpacingValue(spacing.large ?? spacing.medium ?? spacing.small ?? defaults.large, defaults.large[0]),
439
- xLarge: gridSpacingValue(spacing.xLarge ?? spacing.large ?? spacing.medium ?? spacing.small ?? defaults.xLarge, defaults.xLarge[0])
440
- };
441
- }
442
- function isValueSelected(selectedValues, value) {
443
- return value !== void 0 && Array.isArray(selectedValues) && selectedValues.includes(value);
444
- }
445
- function hasSelectedNestedItem(node, selectedValues) {
446
- if (!Array.isArray(selectedValues) || !node) return false;
447
- let found = false;
448
- Children.forEach(node, (child) => {
449
- if (found || !isValidElement(child)) return;
450
- if (isValueSelected(selectedValues, child.props.value)) {
451
- found = true;
452
- return;
453
- }
454
- const nestedMenu = child.props.slots?.nestedMenu ?? child.props.nestedMenu;
455
- if (hasSelectedNestedItem(nestedMenu ?? child.props.children, selectedValues)) found = true;
456
- });
457
- return found;
458
- }
459
- function focusSideMenuItem(itemRefs, direction) {
460
- const items = itemRefs.map((ref) => ref?.current).filter((item) => item && item.dataset.disabled !== "true");
461
- if (!items.length) return;
462
- const currentIndex = Math.max(0, items.findIndex((item) => item === document.activeElement || item.contains(document.activeElement)));
463
- const nextIndex = direction === "first" ? 0 : direction === "last" ? items.length - 1 : (currentIndex + direction + items.length) % items.length;
464
- items[nextIndex]?.focus();
465
- }
466
- function transitionTimeToMs(value) {
467
- return value.split(",").map((part) => part.trim()).reduce((max, part) => {
468
- if (!part) return max;
469
- const ms = part.endsWith("ms") ? Number.parseFloat(part) : Number.parseFloat(part) * 1e3;
470
- return Number.isFinite(ms) ? Math.max(max, ms) : max;
471
- }, 0);
472
- }
473
- function getWidthTransitionMs(element) {
474
- const styles = window.getComputedStyle(element);
475
- const properties = styles.transitionProperty.split(",").map((part) => part.trim());
476
- const widthIndex = properties.findIndex((property) => property === "width" || property === "all");
477
- if (widthIndex === -1) return 0;
478
- return transitionTimeToMs(styles.transitionDuration) + transitionTimeToMs(styles.transitionDelay);
479
- }
480
- function splitNavigationItemProps(props) {
481
- const linkKeys = /* @__PURE__ */ new Set(["href", "target", "rel", "download", "hrefLang", "ping", "referrerPolicy", "aria-current", "aria-disabled"]);
482
- const wrapperProps = {};
483
- const linkProps = {};
484
- Object.entries(props).forEach(([key, value]) => {
485
- if (linkKeys.has(key)) {
486
- linkProps[key] = value;
487
- return;
488
- }
489
- wrapperProps[key] = value;
490
- });
491
- return { wrapperProps, linkProps };
492
- }
493
- function clampNumber(value, min, max) {
494
- return Math.min(Math.max(value, min), max);
495
- }
496
- function getButtonVariantStyles(theme, variant, status = "regular") {
497
- const variantTokens = theme.actions[variant] || theme.actions.primary;
498
- const tokens = variantTokens[status] || variantTokens.regular;
499
- const elevated = variant === "primary";
500
- const token = (state, slot, fallback) => variant === "primary" && status === "regular" ? `var(--jumpy-actions-primary-regular-${state}-${slot}, ${fallback})` : fallback;
501
- return {
502
- "--jumpy-action-default-surface": token("default", "surface", tokens.default.surface),
503
- "--jumpy-action-default-text": token("default", "text", tokens.default.text),
504
- "--jumpy-action-default-border": token("default", "border", tokens.default.border),
505
- "--jumpy-action-default-icon": token("default", "icon", tokens.default.icon),
506
- "--jumpy-action-hover-surface": token("hover", "surface", tokens.hover.surface),
507
- "--jumpy-action-hover-text": token("hover", "text", tokens.hover.text),
508
- "--jumpy-action-hover-icon": token("hover", "icon", tokens.hover.icon),
509
- "--jumpy-action-hover-border": token("hover", "border", tokens.hover.border),
510
- "--jumpy-action-pressed-surface": token("pressed", "surface", tokens.pressed.surface),
511
- "--jumpy-action-pressed-text": token("pressed", "text", tokens.pressed.text),
512
- "--jumpy-action-pressed-icon": token("pressed", "icon", tokens.pressed.icon),
513
- "--jumpy-action-pressed-border": token("pressed", "border", tokens.pressed.border),
514
- "--jumpy-action-focus-surface": token("focus", "surface", tokens.focus.surface),
515
- "--jumpy-action-focus-text": token("focus", "text", tokens.focus.text),
516
- "--jumpy-action-focus-icon": token("focus", "icon", tokens.focus.icon),
517
- "--jumpy-action-focus-border": token("focus", "border", tokens.focus.border),
518
- "--jumpy-action-focus-ring": token("focus", "focus-ring", tokens.focus.focusRing),
519
- "--jumpy-action-disabled-surface": token("disabled", "surface", tokens.disabled.surface),
520
- "--jumpy-action-disabled-text": token("disabled", "text", tokens.disabled.text),
521
- "--jumpy-action-disabled-icon": token("disabled", "icon", tokens.disabled.icon),
522
- "--jumpy-action-disabled-border": token("disabled", "border", tokens.disabled.border),
523
- "--jumpy-action-hover-shadow": "none",
524
- "--jumpy-action-focus-shadow": elevated ? shadowValue(theme, JumpyShadowStyle.positiveSmall) : "none",
525
- "--jumpy-action-pressed-shadow": "none",
526
- "--jumpy-action-default-shadow": elevated ? shadowValue(theme, JumpyShadowStyle.positiveMedium) : "none"
527
- };
528
- }
529
- function getNoticeToneStyles(theme, tone) {
530
- switch (tone) {
531
- case "success":
532
- return {
533
- backgroundColor: theme.color.successSurface,
534
- borderColor: theme.color.successBorder,
535
- color: theme.color.successText
536
- };
537
- case "warning":
538
- return {
539
- backgroundColor: theme.color.warningSurface,
540
- borderColor: theme.color.warningBorder,
541
- color: theme.color.warningText
542
- };
543
- case "danger":
544
- return {
545
- backgroundColor: theme.color.dangerSurface,
546
- borderColor: theme.color.dangerBorder,
547
- color: theme.color.dangerText
548
- };
549
- default:
550
- return {
551
- backgroundColor: theme.color.infoSurface,
552
- borderColor: theme.color.infoBorder,
553
- color: theme.color.textPrimary
554
- };
555
- }
556
- }
557
- function getBannerStatusStyles(theme, status) {
558
- switch (status) {
559
- case "positive":
560
- return { indicator: theme.color.positiveBase, indicatorSurface: theme.color.positiveUltralight, inlineSurface: theme.color.positiveExtralight };
561
- case "warning":
562
- return { indicator: theme.color.warningBase, indicatorSurface: theme.color.warningUltralight, inlineSurface: theme.color.warningExtralight };
563
- case "alarm":
564
- return { indicator: theme.color.alarmBase, indicatorSurface: theme.color.alarmUltralight, inlineSurface: theme.color.alarmExtralight };
565
- case "info":
566
- return { indicator: theme.color.neutralBase, indicatorSurface: theme.color.neutralMegalight, inlineSurface: `rgba(244, 247, 245, ${opacityValue(theme, JumpyOpacity.medium)})` };
567
- default:
568
- return { indicator: theme.color.neutralBase, indicatorSurface: "transparent", inlineSurface: "transparent" };
569
- }
570
- }
571
- function JumpSeverityIcon({ status = "other", icon, style }) {
572
- if (status === "other" && icon) return icon;
573
- const common = {
574
- viewBox: "0 0 24 24",
575
- width: "100%",
576
- height: "100%",
577
- fill: "currentColor",
578
- xmlns: "http://www.w3.org/2000/svg",
579
- "aria-hidden": true,
580
- focusable: false,
581
- style
582
- };
583
- switch (status) {
584
- case "positive":
585
- return /* @__PURE__ */ jsx2("svg", { ...common, children: /* @__PURE__ */ jsx2("path", { d: "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm4.3 7.8-5 5a1 1 0 0 1-1.4 0l-2.2-2.2a1 1 0 1 1 1.4-1.4l1.5 1.5 4.3-4.3a1 1 0 1 1 1.4 1.4Z" }) });
586
- case "warning":
587
- return /* @__PURE__ */ jsx2("svg", { ...common, children: /* @__PURE__ */ jsx2("path", { d: "M11.1 3.5a1 1 0 0 1 1.8 0l8.2 15A1 1 0 0 1 20.2 20H3.8a1 1 0 0 1-.9-1.5l8.2-15ZM12 8a1 1 0 0 0-1 1v4a1 1 0 1 0 2 0V9a1 1 0 0 0-1-1Zm0 9.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5Z" }) });
588
- case "alarm":
589
- return /* @__PURE__ */ jsx2("svg", { ...common, children: /* @__PURE__ */ jsx2("path", { d: "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 13a1 1 0 1 1-2 0V7a1 1 0 1 1 2 0v8Zm-1 4a1.25 1.25 0 1 1 0-2.5 1.25 1.25 0 0 1 0 2.5Z" }) });
590
- case "info":
591
- return /* @__PURE__ */ jsx2("svg", { ...common, children: /* @__PURE__ */ jsx2("path", { d: "M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 15a1 1 0 1 1-2 0v-6a1 1 0 1 1 2 0v6Zm-1-8.5A1.25 1.25 0 1 1 12 6a1.25 1.25 0 0 1 0 2.5Z" }) });
592
- default:
593
- return /* @__PURE__ */ jsx2("svg", { ...common, children: /* @__PURE__ */ jsx2("circle", { cx: "12", cy: "12", r: "9" }) });
594
- }
595
- }
596
- function renderBannerSlot(slot, fallbackTag = "span", className, style) {
597
- if (!slot) return null;
598
- if (typeof slot === "string" || typeof slot === "number") {
599
- const Tag = fallbackTag;
600
- return /* @__PURE__ */ jsx2(Tag, { className, style, children: slot });
601
- }
602
- if (isValidElement(slot)) {
603
- return cloneElement(slot, {
604
- className: cn(className, slot.props.className),
605
- style: slot.props.style || style ? { ...style, ...slot.props.style } : void 0
606
- });
607
- }
608
- return slot;
609
- }
610
- function getBadgeStatusStyles(theme, status) {
611
- const alwaysLight = "var(--jumpy-color-non-color-always-ultralight, #FFFFFF)";
612
- switch (status) {
613
- case "positive":
614
- return { backgroundColor: theme.color.positiveBase, color: alwaysLight };
615
- case "warning":
616
- return { backgroundColor: theme.color.warningBase, color: theme.color.nonColorAlwaysUltradark };
617
- case "alarm":
618
- return { backgroundColor: theme.color.alarmBase, color: alwaysLight };
619
- case "active":
620
- return { backgroundColor: "var(--jumpy-color-primary-base)", color: theme.color.textOnPrimary };
621
- default:
622
- return { backgroundColor: theme.color.neutralBase, color: alwaysLight };
623
- }
624
- }
625
- function getBadgeSizeStyles(theme, size2) {
626
- const labelSmall = textStyleValue(theme, JumpyTextStyle.labelSmallEmphasized);
627
- const labelMedium = textStyleValue(theme, JumpyTextStyle.labelMediumEmphasized);
628
- switch (size2) {
629
- case "xSmall":
630
- return {
631
- width: sizeValue(theme, JumpySize.small3XS),
632
- height: sizeValue(theme, JumpySize.small3XS),
633
- minWidth: sizeValue(theme, JumpySize.small3XS),
634
- padding: spacingValue(theme, JumpySpacing.zero),
635
- fontSize: 0,
636
- lineHeight: 0
637
- };
638
- case "medium":
639
- return {
640
- minWidth: sizeValue(theme, JumpySize.small),
641
- height: sizeValue(theme, JumpySize.small),
642
- padding: `${spacingValue(theme, JumpySpacing.small3XS)}px ${spacingValue(theme, JumpySpacing.smallXS)}px`,
643
- fontFamily: theme.fontFamily.familyBase,
644
- fontSize: labelMedium.fontSize,
645
- // A line box filling the whole-pixel content height keeps the baseline from rounding the digits upward.
646
- lineHeight: `${sizeValue(theme, JumpySize.small) - spacingValue(theme, JumpySpacing.small3XS) * 2}px`,
647
- fontWeight: labelMedium.fontWeight
648
- };
649
- default:
650
- return {
651
- minWidth: sizeValue(theme, JumpySize.small2XS),
652
- height: sizeValue(theme, JumpySize.small2XS),
653
- padding: `${spacingValue(theme, JumpySpacing.zero)}px ${spacingValue(theme, JumpySpacing.small3XS)}px`,
654
- fontFamily: theme.fontFamily.familyBase,
655
- fontSize: labelSmall.fontSize,
656
- lineHeight: `${sizeValue(theme, JumpySize.small2XS)}px`,
657
- fontWeight: labelSmall.fontWeight
658
- };
659
- }
660
- }
661
- function getTagStatusStyles(theme, status) {
662
- switch (status) {
663
- case "positive":
664
- return { backgroundColor: theme.color.successSurface, color: theme.color.successText, borderColor: theme.color.successBorder };
665
- case "warning":
666
- return { backgroundColor: theme.color.warningSurface, color: theme.color.warningText, borderColor: theme.color.warningBorder };
667
- case "alarm":
668
- return { backgroundColor: theme.color.dangerSurface, color: theme.color.dangerText, borderColor: theme.color.dangerBorder };
669
- default:
670
- return { backgroundColor: theme.color.surfaceField, color: theme.color.textPrimary, borderColor: theme.color.borderSubtle };
671
- }
672
- }
673
- function getTypographyStyle(theme, variant = "bodyMedium") {
674
- const style = textStyleValue(theme, JumpyTextStyle[variant] || JumpyTextStyle.bodyMedium);
675
- return {
676
- fontFamily: theme.fontFamily.familyBase,
677
- fontSize: style.fontSize,
678
- lineHeight: style.lineHeight,
679
- fontWeight: style.fontWeight,
680
- letterSpacing: style.letterSpacing
681
- };
682
- }
683
- function getCardStateStyles(theme, selected = false) {
684
- const inactive = theme.card.inactive;
685
- const active = theme.card.active;
686
- const tokens = selected ? active : inactive;
687
- const state = selected ? "active" : "inactive";
688
- const cardToken = (interaction, slot, fallback) => `var(--jumpy-card-${state}-${interaction}-${slot}, ${fallback})`;
689
- return {
690
- "--jumpy-card-default-surface": cardToken("default", "surface", tokens.default.surface),
691
- "--jumpy-card-default-border": cardToken("default", "border", tokens.default.border),
692
- "--jumpy-card-default-text": cardToken("default", "text", tokens.default.text),
693
- "--jumpy-card-default-icon": cardToken("default", "icon", tokens.default.icon),
694
- "--jumpy-card-hover-surface": cardToken("hover", "surface", tokens.hover.surface),
695
- "--jumpy-card-hover-border": cardToken("hover", "border", tokens.hover.border),
696
- "--jumpy-card-hover-text": cardToken("hover", "text", tokens.hover.text),
697
- "--jumpy-card-hover-icon": cardToken("hover", "icon", tokens.hover.icon),
698
- "--jumpy-card-pressed-surface": cardToken("pressed", "surface", tokens.pressed.surface),
699
- "--jumpy-card-pressed-border": cardToken("pressed", "border", tokens.pressed.border),
700
- "--jumpy-card-pressed-text": cardToken("pressed", "text", tokens.pressed.text),
701
- "--jumpy-card-pressed-icon": cardToken("pressed", "icon", tokens.pressed.icon),
702
- "--jumpy-card-focus-surface": cardToken("focus", "surface", tokens.focus.surface),
703
- "--jumpy-card-focus-border": cardToken("focus", "border", tokens.focus.border),
704
- "--jumpy-card-focus-ring": cardToken("focus-focus", "ring", tokens.focus.focusRing),
705
- "--jumpy-card-focus-text": cardToken("focus", "text", tokens.focus.text),
706
- "--jumpy-card-focus-icon": cardToken("focus", "icon", tokens.focus.icon),
707
- "--jumpy-card-disabled-surface": cardToken("disabled", "surface", tokens.disabled.surface),
708
- "--jumpy-card-disabled-border": cardToken("disabled", "border", tokens.disabled.border),
709
- "--jumpy-card-disabled-text": cardToken("disabled", "text", tokens.disabled.text),
710
- "--jumpy-card-disabled-icon": cardToken("disabled", "icon", tokens.disabled.icon)
711
- };
712
- }
713
- function getListItemStateStyles(theme, selected = false) {
714
- const tokens = selected ? theme.listItem.active : theme.listItem.inactive;
715
- return {
716
- "--jumpy-list-item-default-surface": tokens.default.surface,
717
- "--jumpy-list-item-default-text": tokens.default.text,
718
- "--jumpy-list-item-default-subtext": tokens.default.subtext,
719
- "--jumpy-list-item-default-icon": tokens.default.icon,
720
- "--jumpy-list-item-hover-surface": tokens.hover.surface,
721
- "--jumpy-list-item-hover-text": tokens.hover.text,
722
- "--jumpy-list-item-hover-subtext": tokens.hover.subtext,
723
- "--jumpy-list-item-hover-icon": tokens.hover.icon,
724
- "--jumpy-list-item-pressed-surface": tokens.pressed.surface,
725
- "--jumpy-list-item-pressed-text": tokens.pressed.text,
726
- "--jumpy-list-item-pressed-subtext": tokens.pressed.subtext,
727
- "--jumpy-list-item-pressed-icon": tokens.pressed.icon,
728
- "--jumpy-list-item-focus-surface": tokens.focus.surface,
729
- "--jumpy-list-item-focus-text": tokens.focus.text,
730
- "--jumpy-list-item-focus-subtext": tokens.focus.subtext,
731
- "--jumpy-list-item-focus-icon": tokens.focus.icon,
732
- "--jumpy-list-item-focus-ring": tokens.focus.focusRing,
733
- "--jumpy-list-item-disabled-surface": tokens.disabled.surface,
734
- "--jumpy-list-item-disabled-text": tokens.disabled.text,
735
- "--jumpy-list-item-disabled-subtext": tokens.disabled.subtext,
736
- "--jumpy-list-item-disabled-icon": tokens.disabled.icon
737
- };
738
- }
739
- function getButtonSpacing(theme, variant, hasLeading, hasTrailing) {
740
- const gap = spacingValue(theme, JumpySpacing.smallXS);
741
- const verticalPadding = spacingValue(theme, JumpySpacing.small2XS);
742
- if (variant === "borderless") {
743
- return {
744
- gap,
745
- paddingLeft: spacingValue(theme, JumpySpacing.zero),
746
- paddingRight: spacingValue(theme, JumpySpacing.zero),
747
- paddingTop: verticalPadding,
748
- paddingBottom: verticalPadding
749
- };
750
- }
751
- return {
752
- gap,
753
- paddingLeft: hasLeading ? spacingValue(theme, JumpySpacing.medium) : spacingValue(theme, JumpySpacing.medium) + spacingValue(theme, JumpySpacing.small3XS),
754
- paddingRight: hasTrailing ? spacingValue(theme, JumpySpacing.medium) : spacingValue(theme, JumpySpacing.medium) + spacingValue(theme, JumpySpacing.small3XS),
755
- paddingTop: verticalPadding,
756
- paddingBottom: verticalPadding
757
- };
758
- }
759
- function getFieldInputStyles(theme, disabled) {
760
- const bodyMedium = textStyleValue(theme, JumpyTextStyle.bodyMedium);
761
- return {
762
- display: "block",
763
- width: "100%",
764
- boxSizing: "border-box",
765
- color: "var(--jumpy-cmp-base-input-value-color)",
766
- padding: 0,
767
- margin: 0,
768
- border: 0,
769
- outline: 0,
770
- background: "transparent",
771
- opacity: disabled ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.solid),
772
- fontFamily: theme.fontFamily.familyBase,
773
- fontSize: bodyMedium.fontSize,
774
- lineHeight: `${bodyMedium.fontSize * bodyMedium.lineHeight}px`,
775
- transition: `color ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${theme.animation.timeEasingRelease}`
776
- };
777
- }
778
- function getFieldShellStyles(theme, disabled, status = "regular", focused = false, readOnly = false) {
779
- const outlineWidth = borderWidthValue(theme, focused && !readOnly ? JumpyBorderWidth.medium : JumpyBorderWidth.small);
780
- const easing = focused && !readOnly ? theme.animation.timeEasingImpulse : theme.animation.timeEasingRelease;
781
- return {
782
- display: "flex",
783
- alignItems: "center",
784
- width: "100%",
785
- minHeight: sizeValue(theme, JumpySize.largeXL),
786
- height: sizeValue(theme, JumpySize.largeXL),
787
- boxSizing: "border-box",
788
- borderRadius: radiusValue(theme, JumpyRadius.small),
789
- border: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid transparent`,
790
- outline: readOnly ? "none" : `${outlineWidth}px solid var(--jumpy-cmp-base-input-border-color)`,
791
- outlineOffset: readOnly ? void 0 : -outlineWidth,
792
- backgroundColor: "var(--jumpy-cmp-base-input-surface-color)",
793
- paddingLeft: spacingValue(theme, JumpySpacing.large),
794
- paddingRight: spacingValue(theme, JumpySpacing.small3XS),
795
- paddingTop: spacingValue(theme, JumpySpacing.small3XS),
796
- paddingBottom: spacingValue(theme, JumpySpacing.small3XS),
797
- opacity: disabled ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.solid),
798
- gap: spacingValue(theme, JumpySpacing.medium),
799
- cursor: disabled || readOnly ? "default" : "text",
800
- pointerEvents: disabled ? "none" : void 0,
801
- transition: `background-color ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${easing}, outline-color ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${easing}, outline-width ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${easing}`
802
- };
803
- }
804
- function renderStandaloneField(theme, disabled, className, style, inputElement, status = "regular", readOnly = false) {
805
- return /* @__PURE__ */ jsx2(
806
- "div",
807
- {
808
- "data-jumpy-component": "field-control",
809
- "data-disabled": disabled ? "true" : "false",
810
- "data-readonly": readOnly ? "true" : "false",
811
- "data-status": status,
812
- className: cn(className),
813
- style: {
814
- ...getFieldShellStyles(theme, disabled, status, false, readOnly),
815
- ...style || {}
816
- },
817
- children: inputElement
818
- }
819
- );
820
- }
821
- function JumpBackground({ snow = true }) {
822
- const theme = useJumpyTheme();
823
- return /* @__PURE__ */ jsxs2("div", { className: "pointer-events-none fixed inset-0 z-0 overflow-hidden", style: { pointerEvents: "none" }, children: [
824
- /* @__PURE__ */ jsx2("div", { className: "absolute left-1/2 top-[-18rem] h-[34rem] w-[34rem] -translate-x-1/2 rounded-full blur-[120px]", style: { backgroundColor: theme.color.infoSurface } }),
825
- /* @__PURE__ */ jsx2("div", { className: "absolute bottom-24 right-[-10rem] h-[28rem] w-[28rem] rounded-full blur-[110px]", style: { backgroundColor: theme.color.borderSubtle } }),
826
- /* @__PURE__ */ jsx2("div", { className: "absolute inset-0 bg-[radial-gradient(rgba(26,28,31,0.16)_1px,transparent_1px)] bg-[size:22px_22px]", style: { opacity: theme.opacity.subtle } }),
827
- snow && /* @__PURE__ */ jsx2("div", { className: "snowfall", "aria-hidden": "true" })
828
- ] });
829
- }
830
- function JumpBadge({ as, size: size2 = "medium", status = "regular", hidden = false, children, className = "", ...props }) {
831
- const theme = useJumpyTheme();
832
- const visible = !hidden;
833
- const Root = as || "div";
834
- return /* @__PURE__ */ jsx2(
835
- Root,
836
- {
837
- ...props,
838
- "data-jumpy-component": "badge",
839
- "data-size": size2,
840
- "data-status": status,
841
- "data-visible": visible ? "true" : "false",
842
- role: props.role || "status",
843
- "aria-live": props["aria-live"] || "polite",
844
- "aria-hidden": hidden || void 0,
845
- className: cn("inline-flex items-center justify-center box-border", className),
846
- style: {
847
- display: "inline-flex",
848
- alignItems: "center",
849
- justifyContent: "center",
850
- boxSizing: "border-box",
851
- ...getBadgeSizeStyles(theme, size2),
852
- ...getBadgeStatusStyles(theme, status),
853
- borderRadius: radiusValue(theme, JumpyRadius.full),
854
- letterSpacing: "normal",
855
- opacity: visible ? opacityValue(theme, JumpyOpacity.solid) : opacityValue(theme, JumpyOpacity.transparent),
856
- scale: visible ? 1 : 0.25,
857
- width: size2 === "xSmall" ? sizeValue(theme, JumpySize.small3XS) : "fit-content",
858
- transition: `width ${animationDurationValue(theme, JumpyAnimationDuration.medium)}s ${theme.animation.timeEasingDrift}, opacity ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${visible ? theme.animation.timeEasingImpulse : theme.animation.timeEasingRelease}, scale ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${visible ? theme.animation.timeEasingImpulse : theme.animation.timeEasingRelease}`,
859
- ...props.style || {}
860
- },
861
- children: size2 === "xSmall" ? null : /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "badge-content", style: { display: "inline-block", lineHeight: "inherit", fontVariantNumeric: "tabular-nums" }, children })
862
- }
863
- );
864
- }
865
- function BrandMark({ compact = false, label = "Jumpy UI" }) {
866
- const theme = useJumpyTheme();
867
- return /* @__PURE__ */ jsxs2("div", { className: cn("flex items-center gap-3", !compact && "justify-center"), children: [
868
- /* @__PURE__ */ jsx2("div", { className: "grid h-10 w-10 place-items-center rounded-xl text-xl font-black", style: { backgroundColor: theme.color.surfaceCard, color: theme.color.surfacePrimary, borderRadius: theme.radius.medium }, children: "J" }),
869
- /* @__PURE__ */ jsx2("span", { className: "block text-lg font-extrabold tracking-tight", style: { color: theme.color.textPrimary, fontFamily: theme.typography.fontFamily }, children: label })
870
- ] });
871
- }
872
- function JumpCard({ as, ref, children, className = "", variant = "filled", interactive = false, selected = false, disabled = false, dragged = false, innerClasses = {}, ...props }) {
873
- const theme = useJumpyTheme();
874
- const Component = as || "div";
875
- const cardRef = useRef2(null);
876
- const [pressScaleLimit, setPressScaleLimit] = useState2(1);
877
- const pressDistance = spacingValue(theme, JumpySpacing.small3XS);
878
- useLayoutEffect2(() => {
879
- const element = cardRef.current;
880
- if (!element || !interactive || disabled) return;
881
- const measure = () => {
882
- const longestSide = Math.max(element.offsetWidth, element.offsetHeight);
883
- setPressScaleLimit(longestSide > 0 ? Math.max(0, 1 - pressDistance / longestSide) : 1);
884
- };
885
- measure();
886
- const observer = new ResizeObserver(measure);
887
- observer.observe(element);
888
- return () => observer.disconnect();
889
- }, [Component, interactive, disabled, pressDistance]);
890
- const isButton = Component === "button";
891
- const activity = selected ? "active" : "inactive";
892
- const draggedStyles = dragged && !disabled ? {
893
- borderColor: `var(--jumpy-card-${activity}-dragged-border)`,
894
- backgroundColor: `var(--jumpy-card-${activity}-dragged-surface)`
895
- } : {};
896
- const hasPaddingUtility = /(?:^|\s)(?:[a-z]+:)*p(?:[trblxy])?-/.test(className);
897
- return /* @__PURE__ */ jsxs2(
898
- Component,
899
- {
900
- ...props,
901
- ref: (node) => {
902
- cardRef.current = node;
903
- if (typeof ref === "function") return ref(node);
904
- if (ref) ref.current = node;
905
- },
906
- type: isButton ? props.type || "button" : props.type,
907
- disabled: isButton ? disabled : void 0,
908
- "data-jumpy-component": "card",
909
- "data-variant": variant,
910
- "data-interactive": interactive ? "true" : "false",
911
- "data-selected": selected ? "true" : "false",
912
- "data-dragged": dragged ? "true" : "false",
913
- "data-disabled": disabled ? "true" : "false",
914
- tabIndex: interactive && !disabled ? props.tabIndex ?? 0 : props.tabIndex,
915
- "aria-disabled": disabled || void 0,
916
- className: cn(className),
917
- style: {
918
- ...getCardStateStyles(theme, selected),
919
- "--jumpy-card-press-scale-limit": pressScaleLimit,
920
- display: "block",
921
- position: "relative",
922
- boxSizing: "border-box",
923
- overflow: "hidden",
924
- appearance: isButton ? "none" : void 0,
925
- WebkitAppearance: isButton ? "none" : void 0,
926
- outline: "none",
927
- border: 0,
928
- borderRadius: theme.sizing.cardRadius,
929
- padding: props.style?.padding === void 0 && !hasPaddingUtility ? spacingValue(theme, JumpySpacing.large) : void 0,
930
- backgroundColor: "var(--jumpy-card-default-surface)",
931
- boxShadow: variant === "filled" ? theme.shadow.card : "none",
932
- color: "var(--jumpy-card-default-text, var(--jumpy-color-text-primary))",
933
- ...draggedStyles,
934
- ...props.style || {}
935
- },
936
- children: [
937
- interactive && selected ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "checkmark", className: innerClasses.checkmark?.className, style: { position: "absolute", right: "var(--jumpy-cmp-card-checkmark-right)", top: "var(--jumpy-cmp-card-checkmark-top)", display: "flex", color: "var(--jumpy-card-default-icon)", ...innerClasses.checkmark?.style || {} }, children: /* @__PURE__ */ jsx2(CircleConfirmIcon, { "data-jumpy-slot": "checkmark-icon", className: innerClasses.checkmarkIcon?.className, style: { width: sizeValue(theme, JumpySize.small), height: sizeValue(theme, JumpySize.small), ...innerClasses.checkmarkIcon?.style || {} } }) }) : null,
938
- children
939
- ]
940
- }
941
- );
942
- }
943
- function JumpGrid({ as, columns = { small: 8, medium: 12, large: 12, xLarge: 12 }, spacing = { small: ["1rem", "1rem"], medium: ["1rem", "1rem"], large: ["1.5rem", "1.5rem"], xLarge: ["1.5rem", "1.5rem"] }, children, className = "", ...props }) {
944
- const Component = as || "div";
945
- const resolvedColumns = responsiveValue(columns, { small: 8, medium: 12, large: 12, xLarge: 12 });
946
- const resolvedSpacing = responsiveGridSpacing(spacing);
947
- return /* @__PURE__ */ jsx2(
948
- Component,
949
- {
950
- ...props,
951
- "data-jumpy-component": "grid",
952
- className: cn(className),
953
- style: {
954
- "--jumpy-cmp-grid-columns-small": resolvedColumns.small,
955
- "--jumpy-cmp-grid-columns-medium": resolvedColumns.medium,
956
- "--jumpy-cmp-grid-columns-large": resolvedColumns.large,
957
- "--jumpy-cmp-grid-columns-xLarge": resolvedColumns.xLarge,
958
- "--jumpy-cmp-grid-spacing-row-small": resolvedSpacing.small[0],
959
- "--jumpy-cmp-grid-spacing-column-small": resolvedSpacing.small[1],
960
- "--jumpy-cmp-grid-spacing-row-medium": resolvedSpacing.medium[0],
961
- "--jumpy-cmp-grid-spacing-column-medium": resolvedSpacing.medium[1],
962
- "--jumpy-cmp-grid-spacing-row-large": resolvedSpacing.large[0],
963
- "--jumpy-cmp-grid-spacing-column-large": resolvedSpacing.large[1],
964
- "--jumpy-cmp-grid-spacing-row-xLarge": resolvedSpacing.xLarge[0],
965
- "--jumpy-cmp-grid-spacing-column-xLarge": resolvedSpacing.xLarge[1],
966
- ...props.style || {}
967
- },
968
- children
969
- }
970
- );
971
- }
972
- function JumpGridItem({ as, span = 1, horizontalPlacement = "stretch", verticalPlacement = "stretch", children, className = "", ...props }) {
973
- const Component = as || "div";
974
- const resolvedSpan = responsiveValue(span, { small: 1, medium: 1, large: 1, xLarge: 1 });
975
- return /* @__PURE__ */ jsx2(
976
- Component,
977
- {
978
- ...props,
979
- "data-jumpy-component": "grid-item",
980
- "data-horizontal-placement": horizontalPlacement,
981
- "data-vertical-placement": verticalPlacement,
982
- className: cn(className),
983
- style: {
984
- "--jumpy-cmp-grid-item-span-small": resolvedSpan.small,
985
- "--jumpy-cmp-grid-item-span-medium": resolvedSpan.medium,
986
- "--jumpy-cmp-grid-item-span-large": resolvedSpan.large,
987
- "--jumpy-cmp-grid-item-span-xLarge": resolvedSpan.xLarge,
988
- ...props.style || {}
989
- },
990
- children
991
- }
992
- );
993
- }
994
- function JumpList({ as, children, className = "", ...props }) {
995
- const Component = as || "div";
996
- return /* @__PURE__ */ jsx2(
997
- Component,
998
- {
999
- ...props,
1000
- "data-jumpy-component": "list",
1001
- role: props.role || "list",
1002
- className: cn(className),
1003
- style: {
1004
- display: "block",
1005
- width: "100%",
1006
- height: "fit-content",
1007
- overflowX: "hidden",
1008
- overflowY: "auto",
1009
- ...props.style || {}
1010
- },
1011
- children
1012
- }
1013
- );
1014
- }
1015
- function JumpListItem({ as, children, className = "", selected = false, disabled = false, readOnly = false, focusedView = false, leading, trailing, metadata, description, slots = {}, nestedCollapsed, defaultNestedCollapsed = true, onNestedCollapsedChange, truncateTexts = false, innerClasses = {}, ref, ...props }) {
1016
- const theme = useJumpyTheme();
1017
- const Component = as || "button";
1018
- const isButton = Component === "button";
1019
- const componentName = props["data-jumpy-component"] || "list-item";
1020
- const resolvedLeading = slots.leading ?? leading;
1021
- const resolvedTrailing = slots.trailing ?? trailing;
1022
- const resolvedMetadata = slots.metadata ?? metadata;
1023
- const resolvedDescription = slots.description ?? description;
1024
- const resolvedSelector = slots.selector;
1025
- const resolvedNestedList = slots.nestedList;
1026
- const [internalNestedCollapsed, setInternalNestedCollapsed] = useState2(defaultNestedCollapsed);
1027
- const isNestedCollapsed = nestedCollapsed ?? internalNestedCollapsed;
1028
- const hasNestedList = Boolean(resolvedNestedList);
1029
- const isDisabled = disabled || readOnly;
1030
- const bodyMedium = textStyleValue(theme, JumpyTextStyle.bodyMedium);
1031
- const bodySmall = textStyleValue(theme, JumpyTextStyle.bodySmall);
1032
- const iconSize = sizeValue(theme, JumpySize.small2XS);
1033
- const handleExpandedChange = () => {
1034
- const nextCollapsed = !isNestedCollapsed;
1035
- if (nestedCollapsed === void 0) setInternalNestedCollapsed(nextCollapsed);
1036
- onNestedCollapsedChange?.(nextCollapsed);
1037
- };
1038
- const handleClick = (event) => {
1039
- if (isDisabled) return;
1040
- if (hasNestedList) handleExpandedChange();
1041
- props.onClick?.(event);
1042
- };
1043
- const handleKeyDown = (event) => {
1044
- if ((event.key === KeyboardKeys.ENTER || event.key === KeyboardKeys.SPACE) && hasNestedList && !isDisabled) {
1045
- event.preventDefault();
1046
- handleExpandedChange();
1047
- }
1048
- props.onKeyDown?.(event);
1049
- };
1050
- return /* @__PURE__ */ jsxs2(
1051
- Component,
1052
- {
1053
- ...props,
1054
- ref,
1055
- type: isButton ? props.type || "button" : props.type,
1056
- disabled: isButton ? disabled : void 0,
1057
- "aria-disabled": !isButton && isDisabled ? true : void 0,
1058
- "aria-current": selected ? props["aria-current"] || "true" : props["aria-current"],
1059
- "aria-selected": props.role === "option" || props.role === "treeitem" ? selected : props["aria-selected"],
1060
- "aria-expanded": hasNestedList ? !isNestedCollapsed : props["aria-expanded"],
1061
- onClick: handleClick,
1062
- onKeyDown: handleKeyDown,
1063
- "data-jumpy-component": componentName,
1064
- "data-selected": selected ? "true" : "false",
1065
- "data-disabled": disabled ? "true" : "false",
1066
- "data-readonly": readOnly ? "true" : "false",
1067
- "data-focused-view": focusedView ? "true" : void 0,
1068
- role: props.role || "listitem",
1069
- className: cn("text-left", className),
1070
- style: {
1071
- ...getListItemStateStyles(theme, selected),
1072
- display: "grid",
1073
- textAlign: "start",
1074
- gridTemplateColumns: `${resolvedSelector ? "min-content " : ""}${resolvedLeading ? "min-content " : ""}minmax(0, 1fr) ${resolvedMetadata ? "minmax(0, min-content) " : ""}${resolvedTrailing || hasNestedList ? "min-content" : ""}`,
1075
- gridTemplateRows: resolvedDescription ? "auto auto" : "auto",
1076
- alignItems: "center",
1077
- gap: spacingValue(theme, JumpySpacing.large),
1078
- width: "100%",
1079
- minHeight: sizeValue(theme, JumpySize.large) + spacingValue(theme, JumpySpacing.large),
1080
- boxSizing: "border-box",
1081
- padding: `${spacingValue(theme, JumpySpacing.medium)}px ${spacingValue(theme, JumpySpacing.large)}px`,
1082
- border: 0,
1083
- borderRadius: radiusValue(theme, JumpyRadius.small),
1084
- backgroundColor: componentName === "side-menu-item" ? "var(--jumpy-list-item-surface, var(--jumpy-list-item-default-surface))" : "transparent",
1085
- color: "var(--jumpy-list-item-color, var(--jumpy-list-item-default-text))",
1086
- cursor: disabled ? "not-allowed" : readOnly ? "default" : "pointer",
1087
- fontFamily: theme.fontFamily.familyBase,
1088
- fontSize: bodyMedium.fontSize,
1089
- lineHeight: bodyMedium.lineHeight,
1090
- fontWeight: bodyMedium.fontWeight,
1091
- opacity: disabled ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.solid),
1092
- pointerEvents: readOnly ? "none" : void 0,
1093
- position: "relative",
1094
- zIndex: 1,
1095
- ...props.style || {}
1096
- },
1097
- children: [
1098
- resolvedSelector ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "selector", "aria-hidden": props.role === "option" || props.role === "treeitem" ? "true" : void 0, className: innerClasses.selector?.className, style: { display: "inline-flex", pointerEvents: "none", color: "var(--jumpy-list-item-icon-color, var(--jumpy-list-item-default-icon))", ...innerClasses.selector?.style || {} }, children: resolvedSelector }) : null,
1099
- resolvedLeading ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "leading", "aria-hidden": "true", className: innerClasses.leading?.className, style: { display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, width: iconSize, height: iconSize, color: "var(--jumpy-list-item-icon-color, var(--jumpy-list-item-default-icon))", ...innerClasses.leading?.style || {} }, children: resolvedLeading }) : null,
1100
- /* @__PURE__ */ jsxs2("span", { style: { display: "grid", minWidth: 0 }, children: [
1101
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "label", "data-truncate": truncateTexts ? "true" : void 0, "data-text": typeof children === "string" ? children : void 0, className: innerClasses.label?.className, style: { minWidth: 0, maxWidth: "100%", overflowWrap: "anywhere", wordBreak: "break-word", fontWeight: bodyMedium.fontWeight, ...innerClasses.label?.style || {} }, children }),
1102
- resolvedDescription ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "description", className: innerClasses.description?.className, style: { color: selected ? theme.listItem.active.default.subtext : theme.listItem.inactive.default.subtext, fontSize: bodySmall.fontSize, lineHeight: bodySmall.lineHeight, ...innerClasses.description?.style || {} }, children: resolvedDescription }) : null
1103
- ] }),
1104
- resolvedMetadata ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "metadata", className: innerClasses.metadata?.className, style: { color: selected ? theme.listItem.active.default.subtext : theme.listItem.inactive.default.subtext, whiteSpace: "nowrap", fontSize: bodySmall.fontSize, lineHeight: bodySmall.lineHeight, ...innerClasses.metadata?.style || {} }, children: resolvedMetadata }) : null,
1105
- resolvedTrailing || hasNestedList ? /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "trailing", "aria-hidden": "true", className: innerClasses.trailing?.className, style: { display: "inline-flex", color: "var(--jumpy-list-item-icon-color, var(--jumpy-list-item-default-icon))", ...innerClasses.trailing?.style || {} }, children: [
1106
- resolvedTrailing,
1107
- hasNestedList ? /* @__PURE__ */ jsx2(JumpIconButton, { as: "span", variant: "secondary", alternateHover: true, tabIndex: -1, "aria-hidden": "true", children: isNestedCollapsed ? /* @__PURE__ */ jsx2(ChevronDownIcon, {}) : /* @__PURE__ */ jsx2(ChevronUpIcon, {}) }) : null
1108
- ] }) : null,
1109
- hasNestedList ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "nested-list", "aria-hidden": isNestedCollapsed ? "true" : void 0, style: { gridColumn: "1 / -1", display: isNestedCollapsed ? "none" : "block" }, children: resolvedNestedList }) : null
1110
- ]
1111
- }
1112
- );
1113
- }
1114
- function JumpSideMenu({ as, children, className = "", collapsed = false, selected, disabled = false, disableKeyboardNavigation = false, renderMode, getItemProps, onChange, onKeyDown, onTransitionEnd, ...props }) {
1115
- const Component = as || "ul";
1116
- const theme = useJumpyTheme();
1117
- const elementRef = useRef2(null);
1118
- const itemRefs = useRef2([]);
1119
- const previousCollapsed = useRef2(collapsed);
1120
- const releaseTimer = useRef2(void 0);
1121
- const [isResizing, setIsResizing] = useState2(false);
1122
- useLayoutEffect2(() => {
1123
- if (previousCollapsed.current === collapsed) return void 0;
1124
- previousCollapsed.current = collapsed;
1125
- const element = elementRef.current;
1126
- if (!element) return void 0;
1127
- const transitionMs = getWidthTransitionMs(element);
1128
- if (!transitionMs) return void 0;
1129
- setIsResizing(true);
1130
- window.clearTimeout(releaseTimer.current);
1131
- releaseTimer.current = window.setTimeout(() => setIsResizing(false), transitionMs + 100);
1132
- return void 0;
1133
- }, [collapsed]);
1134
- useEffect2(() => () => window.clearTimeout(releaseTimer.current), []);
1135
- const selectItem = (value) => {
1136
- if (disabled || value === void 0) return;
1137
- onChange?.([value]);
1138
- };
1139
- const handleKeyDown = (event) => {
1140
- if (!disableKeyboardNavigation) {
1141
- if (event.key === KeyboardKeys.ARROW_DOWN || event.key === KeyboardKeys.ARROW_RIGHT) {
1142
- event.preventDefault();
1143
- focusSideMenuItem(itemRefs.current, 1);
1144
- } else if (event.key === KeyboardKeys.ARROW_UP || event.key === KeyboardKeys.ARROW_LEFT) {
1145
- event.preventDefault();
1146
- focusSideMenuItem(itemRefs.current, -1);
1147
- } else if (event.key === KeyboardKeys.HOME) {
1148
- event.preventDefault();
1149
- focusSideMenuItem(itemRefs.current, "first");
1150
- } else if (event.key === KeyboardKeys.END) {
1151
- event.preventDefault();
1152
- focusSideMenuItem(itemRefs.current, "last");
1153
- }
1154
- }
1155
- onKeyDown?.(event);
1156
- };
1157
- const handleTransitionEnd = (event) => {
1158
- onTransitionEnd?.(event);
1159
- if (event.target === event.currentTarget && event.propertyName === "width") {
1160
- window.clearTimeout(releaseTimer.current);
1161
- setIsResizing(false);
1162
- }
1163
- };
1164
- return /* @__PURE__ */ jsx2(JumpySideMenuContext.Provider, { value: { collapsed, disabled, selected, onSelect: selectItem, containerExpanded: isResizing || !collapsed, renderMode, getItemProps, disableKeyboardNavigation, itemRefs }, children: /* @__PURE__ */ jsx2(
1165
- Component,
1166
- {
1167
- ...props,
1168
- ref: elementRef,
1169
- "data-jumpy-component": "side-menu",
1170
- "data-menu-collapsed": collapsed ? "true" : void 0,
1171
- "data-menu-resizing": isResizing || props["data-menu-resizing"] === "true" ? "true" : void 0,
1172
- "aria-disabled": disabled || void 0,
1173
- onKeyDown: handleKeyDown,
1174
- onTransitionEnd: handleTransitionEnd,
1175
- className: cn(className),
1176
- style: {
1177
- display: "block",
1178
- width: "fit-content",
1179
- height: "fit-content",
1180
- overflowX: "hidden",
1181
- overflowY: "auto",
1182
- margin: 0,
1183
- padding: 0,
1184
- listStyle: "none",
1185
- transition: `width ${animationDurationValue(theme, collapsed ? JumpyAnimationDuration.small2XS : JumpyAnimationDuration.smallXS)}s ${theme.animation.timeEasingDrift}`,
1186
- ...collapsed && !isResizing ? { minWidth: "min-content" } : {},
1187
- ...props.style || {}
1188
- },
1189
- children
1190
- }
1191
- ) });
1192
- }
1193
- function JumpSideMenuItem({ as, children, value, selected = false, disabled = false, className = "", icon, badge, collapsed, slots, metadata, description, nestedMenu, nestedCollapsed, defaultNestedCollapsed = false, onNestedCollapsedChange, renderMode, focusedView, truncateTexts = false, tooltipProps, innerClasses = {}, wrapperProps = {}, expanderIconProps = {}, onClick, onKeyDown, ...props }) {
1194
- const theme = useJumpyTheme();
1195
- const sideMenu = useContext(JumpySideMenuContext);
1196
- const itemRef = useRef2(null);
1197
- const wrapperItemRef = useRef2(null);
1198
- const isCollapsed = sideMenu ? !sideMenu.containerExpanded : collapsed ?? false;
1199
- const resolvedRenderMode = sideMenu?.renderMode ?? renderMode ?? "navigation";
1200
- const selectedValues = sideMenu?.selected;
1201
- const resolvedNestedMenu = slots?.nestedMenu ?? nestedMenu;
1202
- const resolvedMetadata = slots?.metadata ?? metadata;
1203
- const isSelected = isValueSelected(selectedValues, value) || selected;
1204
- const isDisabled = disabled || sideMenu?.disabled;
1205
- const resolvedTabIndex = focusedView ? 0 : sideMenu && !sideMenu.disableKeyboardNavigation && Array.isArray(selectedValues) ? isSelected ? 0 : -1 : props.tabIndex;
1206
- const hasNested = Boolean(resolvedNestedMenu);
1207
- const hasSelectedChildren = hasSelectedNestedItem(resolvedNestedMenu, selectedValues);
1208
- const [internalNestedCollapsed, setInternalNestedCollapsed] = useState2(defaultNestedCollapsed);
1209
- const isNestedCollapsed = nestedCollapsed ?? internalNestedCollapsed;
1210
- const iconNode = typeof icon === "function" ? icon({ selected: isSelected }) : icon;
1211
- const badgeNode = typeof badge === "function" ? badge({ selected: isSelected, collapsed: isCollapsed }) : badge;
1212
- const handleItemClick = (event) => {
1213
- if (isDisabled) return;
1214
- if (hasNested) {
1215
- const nextCollapsed = !isNestedCollapsed;
1216
- onNestedCollapsedChange?.(nextCollapsed);
1217
- if (nestedCollapsed === void 0) setInternalNestedCollapsed(nextCollapsed);
1218
- } else {
1219
- sideMenu?.onSelect?.(value);
1220
- }
1221
- onClick?.(event);
1222
- };
1223
- const handleItemKeyDown = (event) => {
1224
- if ((event.key === KeyboardKeys.ENTER || event.key === KeyboardKeys.SPACE) && !isDisabled) {
1225
- event.preventDefault();
1226
- handleItemClick(event);
1227
- }
1228
- onKeyDown?.(event);
1229
- };
1230
- const itemInteractionProps = sideMenu?.getItemProps?.({ onClick: handleItemClick, onKeyDown: handleItemKeyDown }) ?? {};
1231
- const { onClick: interactionOnClick, onKeyDown: interactionOnKeyDown, ...restItemInteractionProps } = itemInteractionProps;
1232
- const { wrapperProps: splitWrapperProps, linkProps } = resolvedRenderMode === "navigation" ? splitNavigationItemProps(props) : { wrapperProps: {}, linkProps: props };
1233
- useEffect2(() => {
1234
- if (!sideMenu?.itemRefs) return void 0;
1235
- const registryItem = isCollapsed && resolvedRenderMode === "navigation" ? wrapperItemRef : itemRef;
1236
- sideMenu.itemRefs.current.push(registryItem);
1237
- return () => {
1238
- sideMenu.itemRefs.current = sideMenu.itemRefs.current.filter((item) => item !== registryItem);
1239
- };
1240
- }, [isCollapsed, resolvedRenderMode, sideMenu?.itemRefs]);
1241
- const withTooltip = (node) => {
1242
- if (!tooltipProps?.content) return node;
1243
- const { content, ...restTooltipProps } = tooltipProps;
1244
- return /* @__PURE__ */ jsx2(JumpTooltip, { ...restTooltipProps, content, children: node });
1245
- };
1246
- const trailingNode = hasNested ? /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "expander", "aria-hidden": "true", className: innerClasses.expander?.className, style: { display: "inline-flex", alignItems: "center", gap: spacingValue(theme, JumpySpacing.small), ...innerClasses.expander?.style || {} }, children: [
1247
- badgeNode,
1248
- /* @__PURE__ */ jsx2("span", { ...expanderIconProps, "data-jumpy-slot": "expander-icon", className: cn(innerClasses.expanderIcon?.className, expanderIconProps.className), style: { display: "inline-flex", transform: isNestedCollapsed ? "rotate(0deg)" : "rotate(180deg)", transition: `transform ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${theme.animation.timeEasingDrift}`, ...innerClasses.expanderIcon?.style || {}, ...expanderIconProps.style || {} }, children: /* @__PURE__ */ jsx2(ChevronDownIcon, {}) })
1249
- ] }) : badgeNode;
1250
- if (isCollapsed) {
1251
- const Component = as || (resolvedRenderMode === "navigation" ? "a" : "button");
1252
- const isButton = Component === "button";
1253
- const tokens = isSelected ? theme.listItem.active.default : theme.listItem.inactive.default;
1254
- const labelStyle = textStyleValue(theme, isSelected ? JumpyTextStyle.labelMediumEmphasized : JumpyTextStyle.labelMedium);
1255
- const collapsedWrapperInteractiveProps = resolvedRenderMode === "navigation" ? {
1256
- ref: wrapperItemRef,
1257
- tabIndex: resolvedTabIndex,
1258
- onClick: (event) => {
1259
- splitWrapperProps.onClick?.(event);
1260
- wrapperProps.onClick?.(event);
1261
- if (!event.defaultPrevented && event.target === event.currentTarget) itemRef.current?.click();
1262
- },
1263
- onKeyDown: (event) => {
1264
- splitWrapperProps.onKeyDown?.(event);
1265
- wrapperProps.onKeyDown?.(event);
1266
- if (!event.defaultPrevented && (event.key === KeyboardKeys.ENTER || event.key === KeyboardKeys.SPACE)) {
1267
- event.preventDefault();
1268
- itemRef.current?.click();
1269
- }
1270
- }
1271
- } : {};
1272
- return /* @__PURE__ */ jsxs2("li", { ...splitWrapperProps, ...wrapperProps, ...collapsedWrapperInteractiveProps, "data-jumpy-component": "side-menu-item-wrapper", "aria-expanded": hasNested ? !isNestedCollapsed : void 0, className: cn(innerClasses.selector?.className, splitWrapperProps.className, wrapperProps.className), style: { display: "block", margin: 0, padding: 0, ...splitWrapperProps.style || {}, ...innerClasses.selector?.style || {}, ...wrapperProps.style || {} }, children: [
1273
- withTooltip(
1274
- /* @__PURE__ */ jsxs2(
1275
- Component,
1276
- {
1277
- ...linkProps,
1278
- ref: itemRef,
1279
- ...restItemInteractionProps,
1280
- onClick: interactionOnClick ?? handleItemClick,
1281
- onKeyDown: interactionOnKeyDown ?? handleItemKeyDown,
1282
- type: isButton ? linkProps.type || "button" : linkProps.type,
1283
- disabled: isButton ? isDisabled : void 0,
1284
- "aria-disabled": !isButton && isDisabled ? true : void 0,
1285
- "aria-current": isSelected ? linkProps["aria-current"] || "page" : linkProps["aria-current"],
1286
- role: !isButton && !linkProps.href ? linkProps.role || "link" : linkProps.role,
1287
- tabIndex: resolvedRenderMode === "navigation" ? -1 : resolvedTabIndex,
1288
- "data-jumpy-component": "side-menu-item",
1289
- "data-collapsed": "true",
1290
- "data-selected": isSelected ? "true" : "false",
1291
- "data-disabled": isDisabled ? "true" : "false",
1292
- "data-value": !hasNested ? value : void 0,
1293
- "data-has-selected-children": hasSelectedChildren ? "true" : void 0,
1294
- "data-focused-view": focusedView ? "true" : void 0,
1295
- className: cn(className, innerClasses.collapsedLabel?.className),
1296
- style: {
1297
- position: "relative",
1298
- display: "flex",
1299
- flexDirection: "column",
1300
- alignItems: "center",
1301
- width: "100%",
1302
- minWidth: sizeValue(theme, JumpySize.large8XL) - spacingValue(theme, JumpySpacing.large3XL),
1303
- boxSizing: "border-box",
1304
- border: 0,
1305
- borderRadius: 0,
1306
- backgroundColor: "transparent",
1307
- color: tokens.text,
1308
- cursor: isDisabled ? "not-allowed" : "pointer",
1309
- padding: `${spacingValue(theme, JumpySpacing.smallXS)}px 0`,
1310
- opacity: isDisabled ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.solid),
1311
- ...linkProps.style || {}
1312
- },
1313
- children: [
1314
- /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "side-menu-decorator", className: innerClasses.decoratorContainer?.className, style: { position: "relative", display: "inline-flex", alignItems: "center", justifyContent: "center", padding: `${spacingValue(theme, JumpySpacing.smallXS)}px ${spacingValue(theme, JumpySpacing.large2XL)}px ${spacingValue(theme, JumpySpacing.small3XS)}px`, color: tokens.icon, ...innerClasses.decoratorContainer?.style || {} }, children: [
1315
- iconNode,
1316
- badgeNode ? /* @__PURE__ */ jsx2("span", { style: { position: "absolute", top: 0, right: spacingValue(theme, JumpySpacing.large), display: "inline-flex" }, children: badgeNode }) : null
1317
- ] }),
1318
- children ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "label", "data-text": typeof children === "string" ? children : void 0, className: innerClasses.label?.className, style: { boxSizing: "border-box", paddingInline: spacingValue(theme, JumpySpacing.large), overflowWrap: "anywhere", textAlign: "center", fontFamily: theme.fontFamily.familyBase, fontSize: labelStyle.fontSize, lineHeight: labelStyle.lineHeight, fontWeight: labelStyle.fontWeight, ...truncateTexts ? { overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", maxWidth: "100%" } : {}, ...innerClasses.label?.style || {} }, children }) : null
1319
- ]
1320
- }
1321
- )
1322
- ),
1323
- hasNested && !isNestedCollapsed ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "nested-menu", children: resolvedNestedMenu }) : null
1324
- ] });
1325
- }
1326
- const expandedItem = /* @__PURE__ */ jsx2(
1327
- JumpListItem,
1328
- {
1329
- ...linkProps,
1330
- ref: itemRef,
1331
- ...restItemInteractionProps,
1332
- as: as || (resolvedRenderMode === "navigation" ? "a" : "li"),
1333
- onClick: interactionOnClick ?? handleItemClick,
1334
- onKeyDown: interactionOnKeyDown ?? handleItemKeyDown,
1335
- selected: isSelected,
1336
- disabled: isDisabled,
1337
- leading: iconNode,
1338
- trailing: trailingNode,
1339
- metadata: resolvedMetadata,
1340
- description,
1341
- truncateTexts,
1342
- innerClasses,
1343
- "aria-expanded": hasNested ? !isNestedCollapsed : void 0,
1344
- role: linkProps.role || (resolvedRenderMode === "navigation" ? "link" : void 0),
1345
- tabIndex: resolvedTabIndex,
1346
- "data-jumpy-component": "side-menu-item",
1347
- "data-value": !hasNested ? value : void 0,
1348
- "data-has-selected-children": hasSelectedChildren ? "true" : void 0,
1349
- "data-focused-view": focusedView ? "true" : void 0,
1350
- className: cn(className, innerClasses.selector?.className),
1351
- style: {
1352
- "--jumpy-side-menu-item-indicator-scale": isSelected ? 1 : 0.5,
1353
- paddingLeft: spacingValue(theme, JumpySpacing.large2XL),
1354
- paddingRight: spacingValue(theme, JumpySpacing.large2XL),
1355
- paddingTop: spacingValue(theme, JumpySpacing.large),
1356
- paddingBottom: spacingValue(theme, JumpySpacing.large),
1357
- ...truncateTexts ? { overflow: "hidden" } : {},
1358
- ...innerClasses.selector?.style || {},
1359
- ...linkProps.style || {}
1360
- },
1361
- children
1362
- }
1363
- );
1364
- const expandedNestedMenu = hasNested && !isNestedCollapsed ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "nested-menu", children: resolvedNestedMenu }) : null;
1365
- if (resolvedRenderMode === "navigation") {
1366
- return withTooltip(
1367
- /* @__PURE__ */ jsxs2("li", { ...splitWrapperProps, ...wrapperProps, "data-jumpy-component": "side-menu-item-wrapper", "aria-expanded": hasNested ? !isNestedCollapsed : void 0, className: cn(splitWrapperProps.className, wrapperProps.className), style: { display: "block", margin: 0, padding: 0, ...splitWrapperProps.style || {}, ...wrapperProps.style || {} }, children: [
1368
- withTooltip(expandedItem),
1369
- expandedNestedMenu
1370
- ] })
1371
- );
1372
- }
1373
- return withTooltip(
1374
- /* @__PURE__ */ jsxs2(Fragment, { children: [
1375
- expandedItem,
1376
- expandedNestedMenu
1377
- ] })
1378
- );
1379
- }
1380
- function JumpTypography({ as, variant = "bodyMedium", color = "primary", className = "", children, ...props }) {
1381
- const theme = useJumpyTheme();
1382
- const Component = as || "p";
1383
- const colorValue = color === "secondary" ? theme.color.textSecondary : color === "primary" ? theme.color.textPrimary : color;
1384
- return /* @__PURE__ */ jsx2(
1385
- Component,
1386
- {
1387
- ...props,
1388
- "data-jumpy-component": "typography",
1389
- className: cn(className),
1390
- style: {
1391
- ...getTypographyStyle(theme, variant),
1392
- color: colorValue,
1393
- margin: 0,
1394
- ...props.style || {}
1395
- },
1396
- children
1397
- }
1398
- );
1399
- }
1400
- function JumpHyperlink({ as, variant = "inline", disabled = false, className = "", children, ...props }) {
1401
- const theme = useJumpyTheme();
1402
- const Component = as || "a";
1403
- if (variant !== "inline") {
1404
- return /* @__PURE__ */ jsx2(JumpLinkButton, { ...props, href: props.href || "#", variant: "borderless", className, children });
1405
- }
1406
- return /* @__PURE__ */ jsx2(
1407
- Component,
1408
- {
1409
- ...props,
1410
- "data-jumpy-component": "hyperlink",
1411
- "aria-disabled": disabled || void 0,
1412
- tabIndex: disabled ? -1 : props.tabIndex,
1413
- className: cn(className),
1414
- style: {
1415
- display: "inline",
1416
- borderRadius: radiusValue(theme, JumpyRadius.small),
1417
- backgroundColor: "transparent",
1418
- color: disabled ? theme.actions.tertiary.regular.disabled.text : theme.actions.tertiary.regular.default.text,
1419
- font: "inherit",
1420
- textDecoration: "none",
1421
- cursor: disabled ? "default" : "pointer",
1422
- pointerEvents: disabled ? "none" : void 0,
1423
- ...props.style || {}
1424
- },
1425
- children
1426
- }
1427
- );
1428
- }
1429
- function JumpDivider({ as, direction = "horizontal", captionPosition = "center", className = "", children, ...props }) {
1430
- const theme = useJumpyTheme();
1431
- const Component = as || "div";
1432
- const isVertical = direction === "vertical";
1433
- return /* @__PURE__ */ jsx2(
1434
- Component,
1435
- {
1436
- ...props,
1437
- "data-jumpy-component": "divider",
1438
- role: "separator",
1439
- "aria-orientation": direction,
1440
- "aria-label": children ? String(children) : props["aria-label"],
1441
- className: cn(className),
1442
- style: {
1443
- display: isVertical ? "inline-flex" : "flex",
1444
- alignItems: "center",
1445
- justifyContent: captionPosition === "start" ? "flex-start" : captionPosition === "end" ? "flex-end" : "center",
1446
- alignSelf: isVertical ? "stretch" : void 0,
1447
- width: isVertical ? borderWidthValue(theme, JumpyBorderWidth.small) : "100%",
1448
- minHeight: isVertical ? sizeValue(theme, JumpySize.large) : void 0,
1449
- border: 0,
1450
- borderTop: isVertical ? 0 : `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid ${theme.color.borderSubtle}`,
1451
- borderLeft: isVertical ? `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid ${theme.color.borderSubtle}` : 0,
1452
- color: theme.color.textSecondary,
1453
- ...props.style || {}
1454
- },
1455
- children: children ? /* @__PURE__ */ jsx2("span", { style: { backgroundColor: theme.color.surfaceCard, padding: `0 ${spacingValue(theme, JumpySpacing.smallXS)}px`, transform: isVertical ? "rotate(-90deg)" : void 0 }, children }) : null
1456
- }
1457
- );
1458
- }
1459
- function JumpAvatar({ as, size: size2 = "medium", disableInteraction = false, disabled = false, className = "", children, ...props }) {
1460
- const theme = useJumpyTheme();
1461
- const Component = as || (disableInteraction ? "span" : "button");
1462
- const isButton = Component === "button";
1463
- const sizes = { small: JumpySize.large, medium: JumpySize.large2XL, large: JumpySize.large4XL };
1464
- const avatarSize = sizeValue(theme, sizes[size2] || JumpySize.large2XL);
1465
- return /* @__PURE__ */ jsx2(
1466
- Component,
1467
- {
1468
- ...props,
1469
- type: isButton ? props.type || "button" : props.type,
1470
- disabled: isButton ? disabled : void 0,
1471
- "aria-disabled": !isButton && disabled ? true : void 0,
1472
- "data-jumpy-component": "avatar",
1473
- className: cn(className),
1474
- style: {
1475
- display: "inline-grid",
1476
- placeItems: "center",
1477
- width: avatarSize,
1478
- height: avatarSize,
1479
- borderRadius: radiusValue(theme, JumpyRadius.full),
1480
- border: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid ${theme.color.borderSubtle}`,
1481
- backgroundColor: theme.color.infoSurface,
1482
- color: theme.color.surfacePrimary,
1483
- fontFamily: theme.fontFamily.familyBase,
1484
- fontWeight: theme.fontFamily.bodyMediumEmphasized.fontWeight,
1485
- opacity: disabled ? opacityValue(theme, JumpyOpacity.medium) : opacityValue(theme, JumpyOpacity.solid),
1486
- cursor: disableInteraction || disabled ? "default" : "pointer",
1487
- overflow: "hidden",
1488
- ...props.style || {}
1489
- },
1490
- children
1491
- }
1492
- );
1493
- }
1494
- function JumpBanner({ as, status: statusProp = "other", variant = "default", direction = "horizontal", hideStatus = false, floating = false, title, actions, slots, innerClasses = {}, className = "", children, ...props }) {
1495
- const theme = useJumpyTheme();
1496
- const Component = as || "div";
1497
- const status = variant === "inline" && statusProp === "other" ? "info" : statusProp;
1498
- const statusTone = getBannerStatusStyles(theme, status);
1499
- const urgent = status === "alarm";
1500
- const bannerTitle = slots?.title ?? title;
1501
- const bannerActions = slots?.actions ?? actions;
1502
- const bannerIcon = slots?.icon;
1503
- const contentContainerVertical = direction === "vertical";
1504
- const contentTitle = textStyleValue(theme, JumpyTextStyle.titleMediumEmphasized);
1505
- const contentDescription = textStyleValue(theme, JumpyTextStyle.bodyMedium);
1506
- return /* @__PURE__ */ jsxs2(
1507
- Component,
1508
- {
1509
- ...props,
1510
- "data-jumpy-component": "banner",
1511
- "data-variant": variant,
1512
- "data-status": status,
1513
- "data-floating": floating ? "true" : "false",
1514
- role: urgent ? "alert" : "status",
1515
- "aria-live": urgent ? "assertive" : "polite",
1516
- className: cn(className),
1517
- style: {
1518
- "--jumpy-banner-status-icon": statusTone.indicator,
1519
- "--jumpy-banner-status-surface": statusTone.indicatorSurface,
1520
- "--jumpy-banner-inline-surface": statusTone.inlineSurface,
1521
- ...props.style || {}
1522
- },
1523
- children: [
1524
- !hideStatus ? /* @__PURE__ */ jsx2(
1525
- "span",
1526
- {
1527
- "data-jumpy-slot": "banner-status",
1528
- className: innerClasses.status?.className,
1529
- "aria-hidden": "true",
1530
- style: {
1531
- ...innerClasses.status?.style || {}
1532
- },
1533
- children: /* @__PURE__ */ jsx2(JumpSeverityIcon, { status, icon: bannerIcon })
1534
- }
1535
- ) : null,
1536
- /* @__PURE__ */ jsxs2(
1537
- "div",
1538
- {
1539
- "data-jumpy-slot": "banner-content-container",
1540
- "data-direction": direction,
1541
- className: innerClasses.contentContainer?.className,
1542
- style: {
1543
- ...innerClasses.contentContainer?.style || {}
1544
- },
1545
- children: [
1546
- /* @__PURE__ */ jsxs2(
1547
- "div",
1548
- {
1549
- "data-jumpy-slot": "banner-content",
1550
- className: innerClasses.content?.className,
1551
- style: {
1552
- ...innerClasses.content?.style || {}
1553
- },
1554
- children: [
1555
- renderBannerSlot(bannerTitle, "span", innerClasses.contentTitle?.className, {
1556
- margin: 0,
1557
- fontFamily: theme.fontFamily.familyBase,
1558
- fontSize: contentTitle.fontSize,
1559
- lineHeight: contentTitle.lineHeight,
1560
- fontWeight: contentTitle.fontWeight,
1561
- letterSpacing: contentTitle.letterSpacing,
1562
- color: "inherit",
1563
- ...innerClasses.contentTitle?.style || {}
1564
- }),
1565
- renderBannerSlot(children, "p", innerClasses.contentDescription?.className, {
1566
- margin: 0,
1567
- fontFamily: theme.fontFamily.familyBase,
1568
- fontSize: contentDescription.fontSize,
1569
- lineHeight: contentDescription.lineHeight,
1570
- fontWeight: contentDescription.fontWeight,
1571
- letterSpacing: contentDescription.letterSpacing,
1572
- color: "inherit",
1573
- ...innerClasses.contentDescription?.style || {}
1574
- })
1575
- ]
1576
- }
1577
- ),
1578
- contentContainerVertical && bannerActions ? /* @__PURE__ */ jsx2(
1579
- "div",
1580
- {
1581
- "data-jumpy-slot": "banner-actions-container",
1582
- className: innerClasses.actionsContainer?.className,
1583
- style: {
1584
- ...innerClasses.actionsContainer?.style || {}
1585
- },
1586
- children: bannerActions
1587
- }
1588
- ) : bannerActions
1589
- ]
1590
- }
1591
- )
1592
- ]
1593
- }
1594
- );
1595
- }
1596
- function JumpSkeletonLoader({ as, variant = "text", lines = 1, width, height, disableAnimation = false, className = "", children, ...props }) {
1597
- const theme = useJumpyTheme();
1598
- const Component = as || "div";
1599
- if (children) return children;
1600
- const defaultHeight = variant === "text" ? theme.fontFamily.bodyMedium.fontSize * theme.fontFamily.bodyMedium.lineHeight : variant === "icon" || variant === "avatar" ? sizeValue(theme, JumpySize.large) : sizeValue(theme, JumpySize.large2XL);
1601
- const radius = variant === "avatar" ? radiusValue(theme, JumpyRadius.full) : radiusValue(theme, JumpyRadius.small);
1602
- const items = Array.from({ length: variant === "text" ? lines : 1 });
1603
- return /* @__PURE__ */ jsx2("div", { "data-jumpy-component": "skeleton-loader-group", className: cn(className), style: { display: "grid", gap: spacingValue(theme, JumpySpacing.smallXS), width: width || "100%", ...props.style || {} }, children: items.map((_, index) => /* @__PURE__ */ jsx2(
1604
- Component,
1605
- {
1606
- "aria-hidden": "true",
1607
- "data-jumpy-component": "skeleton-loader",
1608
- style: {
1609
- width: index === items.length - 1 && items.length > 1 ? "72%" : width || "100%",
1610
- height: height || defaultHeight,
1611
- borderRadius: radius,
1612
- backgroundColor: theme.color.borderSubtle,
1613
- opacity: disableAnimation ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.medium)
1614
- }
1615
- },
1616
- `skeleton-${lines}-${index}`
1617
- )) });
1618
- }
1619
- var JumpSearchField = forwardRef(function JumpSearchField2({ label = "Search", placeholder = "Search", className = "", ...props }, ref) {
1620
- const ariaLabelledBy = props["aria-labelledby"];
1621
- const ariaLabel = ariaLabelledBy ? void 0 : props["aria-label"] || label || placeholder;
1622
- return /* @__PURE__ */ jsx2(JumpBaseInput, { className: cn("jumpy-search-field", className), leading: /* @__PURE__ */ jsx2("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsx2("path", { d: "M16.071 14.5q1.509-1.95 1.508-4.5c0-4.1-3.418-7.5-7.54-7.5C5.919 2.5 2.5 5.9 2.5 10s3.418 7.5 7.54 7.5c1.709 0 3.317-.6 4.524-1.5l5.529 5.5 1.407-1.4zm-6.031 1c-3.016 0-5.53-2.5-5.53-5.5s2.515-5.5 5.53-5.5S15.569 7 15.569 10s-2.513 5.5-5.53 5.5z" }) }), children: /* @__PURE__ */ jsx2(JumpInput, { ...props, ref, type: "search", placeholder, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy }) });
1623
- });
1624
- function JumpTooltip({ content, children, className = "", ...props }) {
1625
- const theme = useJumpyTheme();
1626
- const [visible, setVisible] = useState2(false);
1627
- return /* @__PURE__ */ jsxs2("span", { ...props, "data-jumpy-component": "tooltip", className: cn(className), style: { position: "relative", display: "inline-flex", ...props.style || {} }, onMouseEnter: () => setVisible(true), onMouseLeave: () => setVisible(false), onFocus: () => setVisible(true), onBlur: () => setVisible(false), children: [
1628
- children,
1629
- visible ? /* @__PURE__ */ jsx2("span", { role: "tooltip", style: { position: "absolute", left: "50%", bottom: `calc(100% + ${spacingValue(theme, JumpySpacing.smallXS)}px)`, transform: "translateX(-50%)", zIndex: 30, width: "max-content", maxWidth: 240, borderRadius: radiusValue(theme, JumpyRadius.small), backgroundColor: theme.color.textPrimary, color: theme.color.surfaceCard, padding: `${spacingValue(theme, JumpySpacing.small3XS)}px ${spacingValue(theme, JumpySpacing.smallXS)}px`, boxShadow: theme.shadow.positiveSmall, fontSize: theme.fontFamily.bodySmall.fontSize, lineHeight: theme.fontFamily.bodySmall.lineHeight }, children: content }) : null
1630
- ] });
1631
- }
1632
- function JumpPopover({ open, defaultOpen = false, onOpenChange, trigger, children, className = "", ...props }) {
1633
- const theme = useJumpyTheme();
1634
- const [internalOpen, setInternalOpen] = useState2(defaultOpen);
1635
- const visible = open ?? internalOpen;
1636
- const setVisible = (next) => {
1637
- setInternalOpen(next);
1638
- onOpenChange?.(next);
1639
- };
1640
- return /* @__PURE__ */ jsxs2("span", { "data-jumpy-component": "popover-root", className: cn(className), style: { position: "relative", display: "inline-flex", ...props.style || {} }, children: [
1641
- /* @__PURE__ */ jsx2("span", { onClick: () => setVisible(!visible), children: trigger }),
1642
- visible ? /* @__PURE__ */ jsx2("div", { role: "dialog", "data-jumpy-component": "popover", style: { position: "absolute", top: `calc(100% + ${spacingValue(theme, JumpySpacing.smallXS)}px)`, left: 0, zIndex: 30, minWidth: 220, borderRadius: radiusValue(theme, JumpyRadius.large), border: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid ${theme.color.borderSubtle}`, backgroundColor: theme.color.surfaceCard, color: theme.color.textPrimary, boxShadow: theme.shadow.positiveMedium, padding: spacingValue(theme, JumpySpacing.large) }, children }) : null
1643
- ] });
1644
- }
1645
- function JumpMenu({ trigger, triggerProps = {}, open, defaultOpen = false, onOpenChange, header, footer, children, className = "", placement = "bottom-start", closeOnSelect = true, ...props }) {
1646
- const theme = useJumpyTheme();
1647
- const [internalOpen, setInternalOpen] = useState2(defaultOpen);
1648
- const isOpen = open ?? internalOpen;
1649
- const menuRef = useRef2(null);
1650
- const insideEventRef = useRef2(null);
1651
- const menuOffset = spacingValue(theme, JumpySpacing.small3XS);
1652
- const menuPadding = spacingValue(theme, JumpySpacing.medium);
1653
- const menuMinWidth = sizeValue(theme, JumpySize.large8XL);
1654
- const { refs, floatingStyles } = useFloating({
1655
- open: isOpen,
1656
- onOpenChange: setOpen,
1657
- placement,
1658
- strategy: "fixed",
1659
- whileElementsMounted: autoUpdate,
1660
- middleware: [
1661
- offset(menuOffset),
1662
- flip({ padding: menuPadding }),
1663
- size({
1664
- padding: menuPadding,
1665
- apply({ rects, availableHeight, elements }) {
1666
- Object.assign(elements.floating.style, {
1667
- minWidth: `${Math.max(menuMinWidth, rects.reference.width)}px`,
1668
- maxHeight: `${Math.max(sizeValue(theme, JumpySize.large2XL), availableHeight)}px`
1669
- });
1670
- }
1671
- })
1672
- ]
1673
- });
1674
- function setOpen(next) {
1675
- setInternalOpen(next);
1676
- onOpenChange?.(next);
1677
- }
1678
- function getMenuItems() {
1679
- return Array.from(menuRef.current?.querySelectorAll('[role="menuitem"]') || []).filter((item) => item.getAttribute("aria-disabled") !== "true" && !item.disabled);
1680
- }
1681
- function focusMenuItem(direction) {
1682
- const menuItems = getMenuItems();
1683
- if (menuItems.length === 0) return;
1684
- const activeIndex = menuItems.indexOf(document.activeElement);
1685
- const nextIndex = direction === "first" ? 0 : direction === "last" ? menuItems.length - 1 : (activeIndex + direction + menuItems.length) % menuItems.length;
1686
- menuItems[nextIndex]?.focus();
1687
- }
1688
- function openAndFocusFirst() {
1689
- setOpen(true);
1690
- window.requestAnimationFrame(() => focusMenuItem("first"));
1691
- }
1692
- function handleTriggerKeyDown(event) {
1693
- if (event.key === KeyboardKeys.ARROW_DOWN || event.key === KeyboardKeys.ENTER || event.key === KeyboardKeys.SPACE) {
1694
- event.preventDefault();
1695
- openAndFocusFirst();
1696
- }
1697
- if (event.key === KeyboardKeys.ARROW_UP) {
1698
- event.preventDefault();
1699
- setOpen(true);
1700
- window.requestAnimationFrame(() => focusMenuItem("last"));
1701
- }
1702
- }
1703
- function handleMenuKeyDown(event) {
1704
- if (event.key === KeyboardKeys.ESCAPE) {
1705
- event.preventDefault();
1706
- setOpen(false);
1707
- refs.reference.current?.focus?.();
1708
- }
1709
- if (event.key === KeyboardKeys.ARROW_DOWN) {
1710
- event.preventDefault();
1711
- focusMenuItem(1);
1712
- }
1713
- if (event.key === KeyboardKeys.ARROW_UP) {
1714
- event.preventDefault();
1715
- focusMenuItem(-1);
1716
- }
1717
- if (event.key === KeyboardKeys.HOME) {
1718
- event.preventDefault();
1719
- focusMenuItem("first");
1720
- }
1721
- if (event.key === KeyboardKeys.END) {
1722
- event.preventDefault();
1723
- focusMenuItem("last");
1724
- }
1725
- props.onKeyDown?.(event);
1726
- }
1727
- useEffect2(() => {
1728
- if (!isOpen) return void 0;
1729
- function dismissOutside(event) {
1730
- if (insideEventRef.current !== event) setOpen(false);
1731
- }
1732
- document.addEventListener("pointerdown", dismissOutside);
1733
- document.addEventListener("focusin", dismissOutside);
1734
- return () => {
1735
- document.removeEventListener("pointerdown", dismissOutside);
1736
- document.removeEventListener("focusin", dismissOutside);
1737
- };
1738
- });
1739
- function markInteractionInside(event) {
1740
- insideEventRef.current = event.nativeEvent;
1741
- }
1742
- function handleMenuClick(event) {
1743
- props.onClick?.(event);
1744
- if (!closeOnSelect || event.defaultPrevented) return;
1745
- const item = event.target.closest?.('[role="menuitem"], [role="menuitemradio"], [role="menuitemcheckbox"]');
1746
- if (!item || item.disabled || item.getAttribute("aria-disabled") === "true" || item.closest("[aria-haspopup]")) return;
1747
- setOpen(false);
1748
- refs.domReference.current?.focus?.();
1749
- }
1750
- return /* @__PURE__ */ jsxs2("span", { "data-jumpy-component": "menu-root", className: cn(className), onPointerDown: markInteractionInside, onFocus: markInteractionInside, style: { display: "inline-flex", ...props.style || {} }, children: [
1751
- /* @__PURE__ */ jsx2("span", { ...triggerProps, ref: refs.setReference, "aria-haspopup": "menu", "aria-expanded": isOpen, tabIndex: 0, onClick: () => setOpen(!isOpen), onKeyDown: handleTriggerKeyDown, children: trigger }),
1752
- isOpen ? /* @__PURE__ */ jsx2(JumpyPortal, { children: /* @__PURE__ */ jsxs2(
1753
- "div",
1754
- {
1755
- ...props,
1756
- ref: (node) => {
1757
- refs.setFloating(node);
1758
- menuRef.current = node;
1759
- },
1760
- "data-jumpy-component": "menu",
1761
- role: "menu",
1762
- onClick: handleMenuClick,
1763
- onKeyDown: handleMenuKeyDown,
1764
- style: {
1765
- ...floatingStyles,
1766
- zIndex: JUMPY_POPUP_Z_INDEX,
1767
- maxWidth: "min(420px, calc(100vw - 32px))",
1768
- overflowY: "auto",
1769
- ...props.style || {}
1770
- },
1771
- children: [
1772
- header ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "menu-header", children: header }) : null,
1773
- children,
1774
- footer ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "menu-footer", children: footer }) : null
1775
- ]
1776
- }
1777
- ) }) : null
1778
- ] });
1779
- }
1780
- function JumpMenuItem({ as, children, selected = false, disabled = false, readOnly = false, focusedView = false, leading, trailing, metadata, description, slots = {}, nestedMenu, onClick, ...props }) {
1781
- const Component = as || "button";
1782
- const resolvedSlots = {
1783
- ...slots,
1784
- leading: slots.leading ?? leading,
1785
- trailing: nestedMenu ? /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", children: "\u203A" }) : slots.trailing ?? trailing,
1786
- metadata: slots.metadata ?? metadata,
1787
- description: slots.description ?? description
1788
- };
1789
- return /* @__PURE__ */ jsxs2(Fragment, { children: [
1790
- /* @__PURE__ */ jsx2(
1791
- JumpListItem,
1792
- {
1793
- ...props,
1794
- as: Component,
1795
- role: props.role || "menuitem",
1796
- selected,
1797
- disabled,
1798
- readOnly,
1799
- focusedView,
1800
- slots: resolvedSlots,
1801
- "data-jumpy-component": "menu-item",
1802
- onClick: (event) => {
1803
- if (disabled || readOnly) return;
1804
- onClick?.(event);
1805
- },
1806
- children
1807
- }
1808
- ),
1809
- nestedMenu || null
1810
- ] });
1811
- }
1812
- function JumpToggleButton({ as, selected, value, disabled = false, onChange, leading, children, className = "", ...props }) {
1813
- const theme = useJumpyTheme();
1814
- const group = useContext(JumpyToggleButtonGroupContext);
1815
- const Component = as || "button";
1816
- const isButton = Component === "button";
1817
- const isDisabled = disabled || group?.disabled || false;
1818
- const isSelected = group && value !== void 0 ? group.value.includes(value) : Boolean(selected);
1819
- const textStyle = textStyleValue(theme, JumpyTextStyle.bodyMediumEmphasized);
1820
- function handleClick(event) {
1821
- if (isDisabled) return;
1822
- if (group && value !== void 0) group.onChange(value);
1823
- onChange?.(!isSelected);
1824
- props.onClick?.(event);
1825
- }
1826
- return /* @__PURE__ */ jsxs2(
1827
- Component,
1828
- {
1829
- ...props,
1830
- type: isButton ? props.type || "button" : props.type,
1831
- disabled: isButton ? isDisabled : void 0,
1832
- "aria-disabled": !isButton && isDisabled ? true : void 0,
1833
- "aria-pressed": isSelected,
1834
- "data-jumpy-component": "toggle-button",
1835
- "data-selected": isSelected ? "true" : "false",
1836
- "data-disabled": isDisabled ? "true" : "false",
1837
- className: cn(className),
1838
- onClick: handleClick,
1839
- style: {
1840
- boxSizing: "border-box",
1841
- position: "relative",
1842
- display: "inline-flex",
1843
- alignItems: "center",
1844
- justifyContent: "center",
1845
- width: "fit-content",
1846
- height: sizeValue(theme, JumpySize.large),
1847
- gap: spacingValue(theme, JumpySpacing.small3XS),
1848
- padding: `${spacingValue(theme, JumpySpacing.smallXS)}px ${spacingValue(theme, JumpySpacing.large)}px`,
1849
- outline: "none",
1850
- border: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid var(--jumpy-cmp-toggle-button-border-color)`,
1851
- borderRadius: "var(--jumpy-cmp-toggle-button-border-radius)",
1852
- backgroundColor: "var(--jumpy-cmp-toggle-button-surface)",
1853
- color: "var(--jumpy-cmp-toggle-button-text)",
1854
- cursor: isDisabled ? "not-allowed" : "pointer",
1855
- userSelect: "none",
1856
- fontFamily: theme.fontFamily.familyBase,
1857
- fontSize: textStyle.fontSize,
1858
- lineHeight: textStyle.lineHeight,
1859
- fontWeight: textStyle.fontWeight,
1860
- opacity: isDisabled ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.solid),
1861
- ...props.style || {}
1862
- },
1863
- children: [
1864
- leading ? /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", style: { display: "inline-flex", color: "var(--jumpy-cmp-toggle-button-icon-fill)" }, children: typeof leading === "function" ? leading({ selected: isSelected }) : leading }) : null,
1865
- children ? /* @__PURE__ */ jsx2("span", { style: { display: "inline-flex", alignItems: "center", justifyContent: "center", margin: `0 ${spacingValue(theme, JumpySpacing.small3XS)}px`, whiteSpace: "nowrap" }, children }) : null
1866
- ]
1867
- }
1868
- );
1869
- }
1870
- function JumpToggleButtonGroup({ as, selected, defaultSelected = [], onChange, exclusive = false, disabled = false, children, className = "", ...props }) {
1871
- const theme = useJumpyTheme();
1872
- const Component = as || "div";
1873
- const [internalSelected, setInternalSelected] = useState2(defaultSelected);
1874
- const currentSelected = selected ?? internalSelected;
1875
- function handleToggle(toggledValue) {
1876
- const nextSelected = currentSelected.includes(toggledValue) ? currentSelected.filter((item) => item !== toggledValue) : exclusive ? [toggledValue] : [...currentSelected, toggledValue];
1877
- setInternalSelected(nextSelected);
1878
- onChange?.(nextSelected);
1879
- }
1880
- return /* @__PURE__ */ jsx2(JumpyToggleButtonGroupContext.Provider, { value: { value: currentSelected, onChange: handleToggle, exclusive, disabled }, children: /* @__PURE__ */ jsx2(
1881
- Component,
1882
- {
1883
- ...props,
1884
- "data-jumpy-component": "toggle-button-group",
1885
- role: props.role || "toolbar",
1886
- className: cn(className),
1887
- style: { display: "inline-flex", flexDirection: "row", alignItems: "center", width: "fit-content", gap: spacingValue(theme, JumpySpacing.small3XS), flexWrap: "wrap", userSelect: "none", ...props.style || {} },
1888
- children
1889
- }
1890
- ) });
1891
- }
1892
- function JumpPinInput({ length = 6, value, defaultValue = "", onChange, onComplete, name, mask = false, type = "numeric", error = false, disabled = false, helperText, ariaLabels = {}, className = "", innerClasses = {}, ...props }) {
1893
- const theme = useJumpyTheme();
1894
- const normalizedLength = clampNumber(length, 4, 8);
1895
- const [internalValue, setInternalValue] = useState2(defaultValue);
1896
- const currentValue = String(value ?? internalValue).slice(0, normalizedLength);
1897
- const refs = useRef2([]);
1898
- const pattern = type === "alphanumeric" ? /^[a-z0-9]$/i : /^\d$/;
1899
- const helperId = helperText ? `${name || props.id || "jumpy-pin-input"}-helper` : void 0;
1900
- function commit(nextValue, focusIndex) {
1901
- const compact = nextValue.slice(0, normalizedLength);
1902
- setInternalValue(compact);
1903
- onChange?.(compact);
1904
- if (compact.length === normalizedLength) onComplete?.(compact);
1905
- if (focusIndex !== void 0) refs.current[clampNumber(focusIndex, 0, normalizedLength - 1)]?.focus();
1906
- }
1907
- function replaceAt(index, char) {
1908
- const cells = Array.from({ length: normalizedLength }, (_, cellIndex) => currentValue[cellIndex] || "");
1909
- cells[index] = char;
1910
- return cells.join("");
1911
- }
1912
- const supportingColor = disabled ? theme.color["jumpy-input-regular-disabled-supporting"] : error ? theme.color["jumpy-input-alarm-default-supporting"] : theme.color["jumpy-input-regular-default-supporting"];
1913
- const textStyle = textStyleValue(theme, JumpyTextStyle.bodyLarge);
1914
- return /* @__PURE__ */ jsxs2("fieldset", { ...props, disabled, "data-jumpy-component": "pin-input", className: cn(className), style: { display: "inline-flex", flexDirection: "column", alignItems: "flex-start", border: 0, margin: 0, padding: 0, ...props.style || {} }, children: [
1915
- name ? /* @__PURE__ */ jsx2("input", { type: "hidden", name, value: currentValue }) : null,
1916
- /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "pin-input-cells", className: cn(innerClasses.cells?.className), style: { display: "flex", gap: spacingValue(theme, JumpySpacing.small2XS), cursor: disabled ? "not-allowed" : "text", ...innerClasses.cells?.style || {} }, onClick: (event) => {
1917
- if (event.target === event.currentTarget) refs.current[Math.min(currentValue.length, normalizedLength - 1)]?.focus();
1918
- }, children: Array.from({ length: normalizedLength }, (_, index) => /* @__PURE__ */ jsx2(
1919
- "input",
1920
- {
1921
- ref: (node) => {
1922
- refs.current[index] = node;
1923
- },
1924
- type: mask ? "password" : "text",
1925
- inputMode: type === "alphanumeric" ? "text" : "numeric",
1926
- autoComplete: index === 0 ? "one-time-code" : "off",
1927
- autoCapitalize: "characters",
1928
- "aria-label": ariaLabels.cell ? ariaLabels.cell(index + 1, normalizedLength) : `PIN digit ${index + 1} of ${normalizedLength}`,
1929
- "aria-invalid": error || void 0,
1930
- "aria-describedby": helperId,
1931
- disabled,
1932
- "data-jumpy-slot": "pin-input-cell",
1933
- "data-status": error ? "alarm" : "regular",
1934
- "data-disabled": disabled ? "true" : "false",
1935
- maxLength: 1,
1936
- value: currentValue[index] || "",
1937
- onChange: (event) => {
1938
- const nextRaw = event.target.value.slice(-1);
1939
- if (!nextRaw) return;
1940
- if (!pattern.test(nextRaw)) return;
1941
- commit(replaceAt(index, nextRaw.toUpperCase()), index + 1);
1942
- },
1943
- onKeyDown: (event) => {
1944
- if (event.key === "Backspace") {
1945
- event.preventDefault();
1946
- if (currentValue[index]) commit(replaceAt(index, ""), index);
1947
- else commit(replaceAt(Math.max(index - 1, 0), ""), index - 1);
1948
- }
1949
- if (event.key === "ArrowLeft") refs.current[Math.max(index - 1, 0)]?.focus();
1950
- if (event.key === "ArrowRight") refs.current[Math.min(index + 1, normalizedLength - 1)]?.focus();
1951
- },
1952
- onPaste: (event) => {
1953
- event.preventDefault();
1954
- const pasted = event.clipboardData.getData("text").split("").filter((char) => pattern.test(char)).join("").slice(0, normalizedLength).toUpperCase();
1955
- if (pasted) commit(pasted, pasted.length - 1);
1956
- },
1957
- className: cn(innerClasses.cell?.className),
1958
- style: { width: sizeValue(theme, JumpySize.largeXL), height: sizeValue(theme, JumpySize.largeXL), boxSizing: "border-box", appearance: "none", WebkitAppearance: "none", border: 0, outlineWidth: "var(--jumpy-cmp-pin-input-cell-outline-width)", outlineStyle: "solid", outlineColor: "var(--jumpy-cmp-pin-input-cell-border)", outlineOffset: `calc(var(--jumpy-cmp-pin-input-cell-outline-width) * -1)`, borderRadius: radiusValue(theme, JumpyRadius.small), backgroundColor: "var(--jumpy-cmp-pin-input-cell-surface)", color: "var(--jumpy-cmp-pin-input-cell-value)", textAlign: "center", overflow: "hidden", fontFamily: theme.fontFamily.familyBase, fontSize: textStyle.fontSize, lineHeight: textStyle.lineHeight, fontWeight: textStyle.fontWeight, ...innerClasses.cell?.style || {} }
1959
- },
1960
- index
1961
- )) }),
1962
- helperText ? /* @__PURE__ */ jsx2("div", { id: helperId, "data-jumpy-slot": "pin-input-helper", className: cn(innerClasses.supportingText?.className), style: { paddingTop: spacingValue(theme, JumpySpacing.small3XS), color: supportingColor, fontFamily: theme.fontFamily.familyBase, fontSize: textStyleValue(theme, JumpyTextStyle.labelSmall).fontSize, ...innerClasses.supportingText?.style || {} }, children: helperText }) : null
1963
- ] });
1964
- }
1965
- function JumpPageControl({ totalPages = 1, currentPage, defaultPage = 0, maxVisibleDots = 7, disabled = false, disabledPages = [], disableInteraction = false, onPageChange, pageAriaLabels = [], className = "", ...props }) {
1966
- const theme = useJumpyTheme();
1967
- const [internalPage, setInternalPage] = useState2(defaultPage);
1968
- const selectedPage = clampNumber(currentPage ?? internalPage, 0, Math.max(totalPages - 1, 0));
1969
- const visibleCount = clampNumber(maxVisibleDots, 3, Math.max(totalPages, 3));
1970
- const half = Math.floor(visibleCount / 2);
1971
- const start = clampNumber(selectedPage - half, 0, Math.max(totalPages - visibleCount, 0));
1972
- const pages = Array.from({ length: Math.min(totalPages, visibleCount) }, (_, index) => start + index);
1973
- const showLeft = start > 0;
1974
- const showRight = start + visibleCount < totalPages;
1975
- function selectPage(page, pageDisabled) {
1976
- if (disabled || disableInteraction || pageDisabled) return;
1977
- setInternalPage(page);
1978
- onPageChange?.(page);
1979
- }
1980
- function renderDot(page, truncation = false) {
1981
- const selected = page === selectedPage;
1982
- const pageDisabled = disabledPages.includes(page);
1983
- const dotSize = truncation ? sizeValue(theme, JumpySize.small5XS) : sizeValue(theme, JumpySize.small4XS);
1984
- return /* @__PURE__ */ jsx2("button", { type: "button", disabled: disabled || pageDisabled || truncation || disableInteraction, "aria-label": truncation ? "More pages" : pageAriaLabels[page] || `Page ${page + 1}`, "aria-current": selected ? "page" : void 0, "data-jumpy-component": "page-control-dot", "data-selected": selected ? "true" : "false", "data-truncation": truncation ? "true" : "false", onClick: () => selectPage(page, pageDisabled), style: { display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, width: truncation ? sizeValue(theme, JumpySize.small3XS) : sizeValue(theme, JumpySize.small), height: truncation ? sizeValue(theme, JumpySize.small3XS) : sizeValue(theme, JumpySize.small), border: `${borderWidthValue(theme, JumpyBorderWidth.medium)}px solid transparent`, borderRadius: radiusValue(theme, JumpyRadius.small), background: "transparent", cursor: disabled || pageDisabled || truncation || disableInteraction ? "default" : "pointer", opacity: disabled || pageDisabled ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.solid) }, children: /* @__PURE__ */ jsx2("span", { style: { display: "block", width: dotSize, height: dotSize, boxSizing: "border-box", borderRadius: selected || truncation ? radiusValue(theme, JumpyRadius.full) : radiusValue(theme, JumpyRadius.small), border: truncation ? 0 : `${borderWidthValue(theme, JumpyBorderWidth.medium)}px solid ${selected ? theme.listItem.active.default.icon : theme.color.borderStrong}`, backgroundColor: selected ? theme.listItem.active.default.icon : truncation ? theme.color.borderStrong : "transparent" } }) }, truncation ? `truncate-${page}` : page);
1985
- }
1986
- return /* @__PURE__ */ jsxs2("div", { ...props, "data-jumpy-component": "page-control", className: cn(className), style: { position: "relative", overflow: "clip", width: "100%", height: sizeValue(theme, JumpySize.small), display: "flex", justifyContent: "center", alignItems: "center", boxSizing: "border-box", ...props.style || {} }, children: [
1987
- showLeft ? renderDot(start - 1, true) : null,
1988
- pages.map((page) => renderDot(page)),
1989
- showRight ? renderDot(start + visibleCount, true) : null
1990
- ] });
1991
- }
1992
- function textFromNode(node) {
1993
- if (typeof node === "string" || typeof node === "number") return String(node);
1994
- if (Array.isArray(node)) return node.map(textFromNode).filter(Boolean).join(" ");
1995
- if (isValidElement(node)) return textFromNode(node.props.children);
1996
- return "";
1997
- }
1998
- function useJumpSnackbar() {
1999
- return useContext(JumpySnackbarContext);
2000
- }
2001
- function JumpSnackbarProvider({ children, position = "bottom-center", maxSnackbars = 3, offset: offset2 = {}, className = "", ...props }) {
2002
- const theme = useJumpyTheme();
2003
- const [snackbars, setSnackbars] = useState2([]);
2004
- const top = position.startsWith("top");
2005
- const align = position.endsWith("start") ? "flex-start" : position.endsWith("end") ? "flex-end" : "center";
2006
- const horizontalOffset = offset2.left ?? offset2.right ?? spacingValue(theme, JumpySpacing.large);
2007
- const verticalOffset = top ? offset2.top ?? spacingValue(theme, JumpySpacing.smallXS) : offset2.bottom ?? spacingValue(theme, JumpySpacing.smallXS);
2008
- function removeSnackbar(id) {
2009
- setSnackbars((items) => items.filter((item) => item.id !== id));
2010
- }
2011
- function addSnackbar(contentOrData, options = {}) {
2012
- const id = options.id || `jumpy-snackbar-${Date.now()}-${Math.random().toString(36).slice(2)}`;
2013
- const isData = contentOrData && typeof contentOrData === "object" && !isValidElement(contentOrData) && ("title" in contentOrData || "description" in contentOrData || "status" in contentOrData);
2014
- const duration = options.persistent || contentOrData?.persistent ? null : options.duration ?? contentOrData?.duration ?? 4e3;
2015
- const snackbar = { id, content: contentOrData, isData, createdAt: Date.now() };
2016
- setSnackbars((items) => [snackbar, ...items.filter((item) => item.id !== id)].slice(0, maxSnackbars));
2017
- if (duration) window.setTimeout(() => removeSnackbar(id), duration);
2018
- return id;
2019
- }
2020
- const contextValue = { addSnackbar, removeSnackbar, clearAll: () => setSnackbars([]), snackbars };
2021
- return /* @__PURE__ */ jsxs2(JumpySnackbarContext.Provider, { value: contextValue, children: [
2022
- children,
2023
- /* @__PURE__ */ jsx2("output", { "aria-live": "assertive", "aria-atomic": "true", style: { position: "absolute", width: 1, height: 1, padding: 0, margin: -1, overflow: "hidden", clip: "rect(0, 0, 0, 0)", whiteSpace: "nowrap", border: 0 }, children: snackbars[0] ? textFromNode(snackbars[0].content?.title || snackbars[0].content?.description || snackbars[0].content) : "" }),
2024
- /* @__PURE__ */ jsx2("div", { ...props, "data-jumpy-component": "snackbar-provider", className: cn(className), style: { position: "fixed", zIndex: 1100, left: position.endsWith("start") ? horizontalOffset : position.endsWith("end") ? "auto" : "50%", right: position.endsWith("end") ? horizontalOffset : "auto", top: top ? verticalOffset : "auto", bottom: top ? "auto" : verticalOffset, transform: position.endsWith("center") ? "translateX(-50%)" : void 0, display: "flex", flexDirection: "column", alignItems: align, gap: spacingValue(theme, JumpySpacing.smallXS), width: "min(487px, calc(100vw - 32px))", maxWidth: "50vw", pointerEvents: "none", ...props.style || {} }, children: snackbars.map((snackbar) => snackbar.isData ? /* @__PURE__ */ jsx2(JumpBanner, { floating: true, status: snackbar.content.status || "info", title: snackbar.content.title, actions: snackbar.content.slots?.actions, style: { width: "100%", pointerEvents: "auto", boxShadow: theme.shadow.positiveLarge }, children: snackbar.content.description }, snackbar.id) : /* @__PURE__ */ jsx2("div", { "data-jumpy-component": "snackbar", style: { width: "100%", pointerEvents: "auto", borderRadius: radiusValue(theme, JumpyRadius.small), boxShadow: theme.shadow.positiveLarge }, children: snackbar.content }, snackbar.id)) })
2025
- ] });
2026
- }
2027
- function JumpTable({ children, showHorizontalBorders = false, disabled = false, stickyHeader = false, density = "regular", containerProps, innerClasses = {}, className = "", ...props }) {
2028
- const { className: containerClassName, style: containerStyle, ...restContainerProps } = containerProps || {};
2029
- const contextValue = { showHorizontalBorders, disabled };
2030
- return /* @__PURE__ */ jsx2(JumpyTableContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "table-wrapper", className: innerClasses.wrapper?.className, style: innerClasses.wrapper?.style, children: /* @__PURE__ */ jsx2("div", { ...restContainerProps, "data-jumpy-slot": "table-container", "data-sticky-header": stickyHeader ? "true" : "false", className: cn(containerClassName), style: containerStyle, children: /* @__PURE__ */ jsx2("table", { ...props, "data-jumpy-component": "table", "data-horizontal-borders": showHorizontalBorders ? "true" : "false", "data-density": density === "condensed" ? "condensed" : void 0, "data-disabled": disabled ? "true" : void 0, role: props.role || "grid", className: cn(className), children }) }) }) });
2031
- }
2032
- function JumpTableHead({ as, children, className = "", ...props }) {
2033
- const Component = as || "thead";
2034
- return /* @__PURE__ */ jsx2(Component, { ...props, "data-jumpy-component": "table-head", role: props.role || "rowgroup", className: cn(className), children });
2035
- }
2036
- function JumpTableBody({ as, children, className = "", ...props }) {
2037
- const Component = as || "tbody";
2038
- return /* @__PURE__ */ jsx2(Component, { ...props, "data-jumpy-component": "table-body", role: props.role || "rowgroup", className: cn(className), children });
2039
- }
2040
- function JumpTableFooter({ as, children, className = "", ...props }) {
2041
- const Component = as || "tfoot";
2042
- return /* @__PURE__ */ jsx2(Component, { ...props, "data-jumpy-component": "table-footer", role: props.role || "rowgroup", className: cn(className), children });
2043
- }
2044
- function JumpTableRow({ as, children, selected = false, disabled = false, disableHover = false, verticalAlign = "middle", dragging = false, className = "", onClick, ...props }) {
2045
- const Component = as || "tr";
2046
- const tableContext = useContext(JumpyTableContext);
2047
- const isDisabled = disabled || tableContext?.disabled;
2048
- const isInteractive = !disableHover && !isDisabled && Boolean(onClick);
2049
- return /* @__PURE__ */ jsx2(
2050
- Component,
2051
- {
2052
- ...props,
2053
- "data-jumpy-component": "table-row",
2054
- "data-selectable": isInteractive ? "true" : void 0,
2055
- "data-disable-hover": disableHover ? "true" : void 0,
2056
- "data-disabled": isDisabled ? "true" : void 0,
2057
- "data-state": selected ? "selected" : void 0,
2058
- "data-vertical-align": verticalAlign === "top" ? "top" : void 0,
2059
- "data-dragging": dragging ? "true" : void 0,
2060
- role: props.role || "row",
2061
- "aria-selected": selected || void 0,
2062
- "aria-disabled": isDisabled || void 0,
2063
- tabIndex: isInteractive ? props.tabIndex ?? 0 : props.tabIndex,
2064
- className: cn(className),
2065
- onClick: isDisabled ? void 0 : onClick,
2066
- children
2067
- }
2068
- );
2069
- }
2070
- function getTableCellTypography(theme, emphasized = false) {
2071
- return textStyleValue(theme, emphasized ? JumpyTextStyle.bodyMediumEmphasized : JumpyTextStyle.bodyMedium);
2072
- }
2073
- function tableCellTextStyle(theme, emphasized = false, style) {
2074
- const textStyle = getTableCellTypography(theme, emphasized);
2075
- return {
2076
- fontFamily: theme.fontFamily.familyBase,
2077
- fontSize: textStyle.fontSize,
2078
- lineHeight: textStyle.lineHeight,
2079
- fontWeight: textStyle.fontWeight,
2080
- letterSpacing: textStyle.letterSpacing,
2081
- ...style
2082
- };
2083
- }
2084
- function JumpTableCell({ as, children, selected = false, disabled = false, align, variant = "default", padding = "default", showHorizontalBorder, pinned, pinnedEdge = false, leading, trailing, description, slots, innerClasses = {}, className = "", onClick, ...props }) {
2085
- const theme = useJumpyTheme();
2086
- const tableContext = useContext(JumpyTableContext);
2087
- const Component = as || "td";
2088
- const isControl = variant === "control" || padding === "checkbox";
2089
- const resolvedAlign = align || (isControl ? "center" : "start");
2090
- const cellLeading = slots?.leading ?? leading;
2091
- const cellTrailing = slots?.trailing ?? trailing;
2092
- const cellDescription = slots?.description ?? description;
2093
- const isDisabled = disabled || tableContext?.disabled;
2094
- const resolvedHorizontalBorder = showHorizontalBorder ?? tableContext?.showHorizontalBorders ?? false;
2095
- const isInteractive = !isDisabled && Boolean(onClick);
2096
- return /* @__PURE__ */ jsxs2(
2097
- Component,
2098
- {
2099
- ...props,
2100
- "data-jumpy-component": "table-cell",
2101
- "data-pinned": pinned || void 0,
2102
- "data-pinned-edge": pinnedEdge ? "true" : void 0,
2103
- "data-horizontal-border": resolvedHorizontalBorder ? "true" : "false",
2104
- "data-state": selected ? "selected" : "default",
2105
- "data-disabled": isDisabled ? "true" : void 0,
2106
- "data-align": resolvedAlign,
2107
- "data-padding": padding,
2108
- "data-variant": isControl ? "control" : void 0,
2109
- "data-interactive": isInteractive ? "true" : void 0,
2110
- role: props.role || "gridcell",
2111
- "aria-disabled": isDisabled || void 0,
2112
- "aria-selected": selected || void 0,
2113
- tabIndex: props.tabIndex ?? (isInteractive ? 0 : void 0),
2114
- className: cn(className),
2115
- onClick: isDisabled ? void 0 : onClick,
2116
- children: [
2117
- /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", "data-jumpy-slot": "table-cell-surface" }),
2118
- /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "table-cell-inner", "data-align": resolvedAlign, className: innerClasses.inner?.className, style: innerClasses.inner?.style, children: [
2119
- cellLeading ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "table-cell-leading", className: innerClasses.leading?.className, style: innerClasses.leading?.style, children: cellLeading }) : null,
2120
- /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "table-cell-content", className: innerClasses.content?.className, style: innerClasses.content?.style, children: [
2121
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "table-cell-text", className: innerClasses.text?.className, style: tableCellTextStyle(theme, false, innerClasses.text?.style), children }),
2122
- cellDescription ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "table-cell-description", className: innerClasses.description?.className, style: tableCellTextStyle(theme, false, innerClasses.description?.style), children: cellDescription }) : null
2123
- ] }),
2124
- cellTrailing ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "table-cell-trailing", className: innerClasses.trailing?.className, style: innerClasses.trailing?.style, children: cellTrailing }) : null
2125
- ] })
2126
- ]
2127
- }
2128
- );
2129
- }
2130
- function getSortMapping(currentOrder, ascValue, descValue, defaultValue) {
2131
- if (currentOrder === "ascending" || currentOrder === "asc") return ascValue;
2132
- if (currentOrder === "descending" || currentOrder === "desc") return descValue;
2133
- return defaultValue;
2134
- }
2135
- function getNextSortOrder(order) {
2136
- if (order === "ascending" || order === "asc") return "desc";
2137
- if (order === "descending" || order === "desc") return "default";
2138
- return "asc";
2139
- }
2140
- function getSortOrder(sortDirection) {
2141
- return getSortMapping(sortDirection, "asc", "desc", "default");
2142
- }
2143
- function getSortActionLabel(currentOrder, columnName) {
2144
- if (columnName) {
2145
- return getSortMapping(currentOrder, `Sort ${columnName} descending`, `Clear sort on ${columnName}`, `Sort ${columnName} ascending`);
2146
- }
2147
- return getSortMapping(currentOrder, "Sort descending", "Clear sort", "Sort ascending");
2148
- }
2149
- function participatesInSelection(row) {
2150
- return row.getCanSelect() || (row.subRows?.some(participatesInSelection) ?? false);
2151
- }
2152
- function getSelectionChildren(row) {
2153
- const children = row.subRows?.filter(participatesInSelection);
2154
- return children?.length ? children : void 0;
2155
- }
2156
- function isRowFullySelected(row) {
2157
- const children = getSelectionChildren(row);
2158
- if (children) return children.every(isRowFullySelected);
2159
- return row.getCanSelect() && row.getIsSelected();
2160
- }
2161
- function applySubtreeSelection(row, selected) {
2162
- if (row.getCanSelect() && row.getIsSelected() !== selected) {
2163
- row.toggleSelected(selected, { selectChildren: false });
2164
- }
2165
- row.subRows?.forEach((subRow) => applySubtreeSelection(subRow, selected));
2166
- }
2167
- function getRowCheckboxProps(row, disabled) {
2168
- const checked = isRowFullySelected(row);
2169
- return {
2170
- checked,
2171
- indeterminate: !checked && row.getIsSomeSelected(),
2172
- disabled: disabled || !row.getCanSelect(),
2173
- "aria-label": `Select row ${row.id}`,
2174
- onChange: () => applySubtreeSelection(row, !isRowFullySelected(row))
2175
- };
2176
- }
2177
- function getHeaderCheckboxProps(table, disabled) {
2178
- const topRows = table.getRowModel?.().rows.filter((row) => (row.depth ?? 0) === 0 && participatesInSelection(row));
2179
- const isTree = topRows?.some((row) => getSelectionChildren(row)) ?? false;
2180
- const checked = isTree && topRows ? topRows.every(isRowFullySelected) : table.getIsAllRowsSelected();
2181
- return {
2182
- checked,
2183
- indeterminate: !checked && table.getIsSomeRowsSelected(),
2184
- disabled,
2185
- "aria-label": "Select all rows",
2186
- onChange: table.getToggleAllRowsSelectedHandler()
2187
- };
2188
- }
2189
- function sortSymbol(order) {
2190
- if (order === "ascending" || order === "asc") return "\u2191";
2191
- if (order === "descending" || order === "desc") return "\u2193";
2192
- return "\u2195";
2193
- }
2194
- function ariaSortOrder(order) {
2195
- if (order === "ascending" || order === "asc") return "ascending";
2196
- if (order === "descending" || order === "desc") return "descending";
2197
- if (order === "default" || order === "none" || order === false) return "none";
2198
- return void 0;
2199
- }
2200
- function JumpTableHeaderCell({ as, children, selected = false, disabled = false, align, variant = "default", padding = "default", showHorizontalBorder, pinned, pinnedEdge = false, sortable = false, sortOrder = "default", onSortChange, ariaLabels, leading, trailing, slots, innerClasses = {}, className = "", ...props }) {
2201
- const theme = useJumpyTheme();
2202
- const tableContext = useContext(JumpyTableContext);
2203
- const Component = as || "th";
2204
- const isControl = variant === "control" || padding === "checkbox";
2205
- const resolvedAlign = align || (isControl ? "center" : "start");
2206
- const cellLeading = slots?.leading ?? leading;
2207
- const cellTrailing = slots?.trailing ?? trailing;
2208
- const isDisabled = disabled || tableContext?.disabled;
2209
- const resolvedHorizontalBorder = showHorizontalBorder ?? tableContext?.showHorizontalBorders ?? false;
2210
- const participatesInSort = sortable || sortOrder !== "default" && sortOrder !== "none";
2211
- const ariaSort = participatesInSort ? ariaSortOrder(sortOrder) : void 0;
2212
- return /* @__PURE__ */ jsxs2(
2213
- Component,
2214
- {
2215
- ...props,
2216
- "data-jumpy-component": "table-header-cell",
2217
- "data-pinned": pinned || void 0,
2218
- "data-pinned-edge": pinnedEdge ? "true" : void 0,
2219
- "data-horizontal-border": resolvedHorizontalBorder ? "true" : "false",
2220
- "data-sortable": sortable ? "true" : "false",
2221
- "data-sort-order": sortOrder,
2222
- "data-disabled": isDisabled ? "true" : void 0,
2223
- "data-state": selected ? "selected" : "default",
2224
- "data-align": resolvedAlign,
2225
- "data-padding": padding,
2226
- "data-variant": isControl ? "control" : void 0,
2227
- role: props.role || "columnheader",
2228
- "aria-sort": ariaSort,
2229
- className: cn(className),
2230
- children: [
2231
- /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", "data-jumpy-slot": "table-cell-surface" }),
2232
- /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "table-cell-inner", "data-align": resolvedAlign, className: innerClasses.inner?.className, style: innerClasses.inner?.style, children: [
2233
- cellLeading ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "table-cell-leading", className: innerClasses.leading?.className, style: innerClasses.leading?.style, children: cellLeading }) : null,
2234
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "table-cell-content", className: innerClasses.label?.className, style: innerClasses.label?.style, children: /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "table-cell-text", className: innerClasses.labelText?.className, style: tableCellTextStyle(theme, true, innerClasses.labelText?.style), children }) }),
2235
- cellTrailing || sortable ? /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "table-cell-trailing", className: innerClasses.trailing?.className, style: innerClasses.trailing?.style, children: [
2236
- sortable ? /* @__PURE__ */ jsx2(JumpIconButton, { variant: "secondary", disabled: isDisabled, "aria-label": typeof ariaLabels?.sort === "function" ? ariaLabels.sort(sortOrder) : ariaLabels?.sort || getSortActionLabel(sortOrder, typeof children === "string" ? children : void 0), onClick: () => onSortChange?.(getNextSortOrder(sortOrder)), children: sortSymbol(sortOrder) }) : null,
2237
- cellTrailing
2238
- ] }) : null
2239
- ] })
2240
- ]
2241
- }
2242
- );
2243
- }
2244
- function ChevronIcon({ expanded }) {
2245
- return /* @__PURE__ */ jsx2("svg", { viewBox: "0 0 24 24", width: "24", height: "24", "aria-hidden": "true", focusable: "false", children: /* @__PURE__ */ jsx2("path", { d: expanded ? "M7.4 15.4 12 10.8l4.6 4.6 1.4-1.4-6-6-6 6 1.4 1.4Z" : "M7.4 8.6 12 13.2l4.6-4.6 1.4 1.4-6 6-6-6 1.4-1.4Z" }) });
2246
- }
2247
- function JumpExpandable({ as, variant = "filled", disabled = false, expanded, defaultExpanded = false, onChange, slots, innerClasses = {}, className = "", children, ...props }) {
2248
- const Component = as || "div";
2249
- const context = useContext(JumpyExpandableContext);
2250
- const panelId = useId();
2251
- const isDisabled = disabled || context?.disabled;
2252
- const isControlled = expanded !== void 0 || context?.expanded !== void 0;
2253
- const [uncontrolledExpanded, setUncontrolledExpanded] = useState2(defaultExpanded);
2254
- const isExpanded = isControlled ? Boolean(expanded ?? context?.expanded) : uncontrolledExpanded;
2255
- const label = slots?.label;
2256
- const description = slots?.description;
2257
- const leading = slots?.leading;
2258
- const trailing = slots?.trailing;
2259
- function handleToggle() {
2260
- if (isDisabled) return;
2261
- const nextExpanded = !isExpanded;
2262
- context?.onExpandedChange?.(nextExpanded);
2263
- if (!isControlled) setUncontrolledExpanded(nextExpanded);
2264
- onChange?.(nextExpanded);
2265
- }
2266
- const header = /* @__PURE__ */ jsxs2(
2267
- "button",
2268
- {
2269
- ref: context?.buttonRef,
2270
- type: "button",
2271
- "data-jumpy-slot": "expandable-header",
2272
- className: innerClasses.header?.className,
2273
- style: innerClasses.header?.style,
2274
- onClick: handleToggle,
2275
- disabled: isDisabled,
2276
- "aria-controls": panelId,
2277
- "aria-expanded": isExpanded,
2278
- children: [
2279
- /* @__PURE__ */ jsxs2("div", { "data-jumpy-slot": "expandable-slots-container", children: [
2280
- leading,
2281
- label || description ? /* @__PURE__ */ jsxs2("div", { "data-jumpy-slot": "expandable-header-content", className: innerClasses.headerContent?.className, style: innerClasses.headerContent?.style, children: [
2282
- label ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "expandable-label", className: innerClasses.label?.className, style: innerClasses.label?.style, children: label }) : null,
2283
- description ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "expandable-description", className: innerClasses.description?.className, style: innerClasses.description?.style, children: description }) : null
2284
- ] }) : null
2285
- ] }),
2286
- /* @__PURE__ */ jsxs2("div", { "data-jumpy-slot": "expandable-slots-container", children: [
2287
- trailing,
2288
- !isDisabled ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "expandable-icon", className: innerClasses.icon?.className, style: innerClasses.icon?.style, children: /* @__PURE__ */ jsx2(ChevronIcon, { expanded: isExpanded }) }) : null
2289
- ] })
2290
- ]
2291
- }
2292
- );
2293
- return /* @__PURE__ */ jsxs2(Component, { ...props, "data-jumpy-component": "expandable", "data-variant": variant, className: cn(className), children: [
2294
- context?.headingLevel ? /* @__PURE__ */ jsx2(context.headingLevel, { "data-jumpy-slot": "expandable-header-wrapper", children: header }) : header,
2295
- /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "expandable-content-wrapper", "data-expanded": isExpanded ? "true" : "false", children: /* @__PURE__ */ jsx2("div", { id: panelId, "data-jumpy-slot": "expandable-panel", className: innerClasses.panel?.className, style: innerClasses.panel?.style, children }) })
2296
- ] });
2297
- }
2298
- function headingTag(level) {
2299
- if (!level) return void 0;
2300
- return `h${Math.min(6, Math.max(1, Number(level)))}`;
2301
- }
2302
- function focusExpandableButton(buttonRefs, index) {
2303
- const nextButton = buttonRefs.current[index];
2304
- nextButton?.focus();
2305
- }
2306
- function JumpExpandableGroup({ as, multiple = false, disabled = false, headingLevel, onChange, innerClasses = {}, className = "", children, ...props }) {
2307
- const Component = as || "div";
2308
- const buttonRefs = useRef2([]);
2309
- const childArray = Children.toArray(children);
2310
- const [expandedIndices, setExpandedIndices] = useState2(() => {
2311
- const initial = /* @__PURE__ */ new Set();
2312
- childArray.forEach((child, index) => {
2313
- if (isValidElement(child) && (child.props.expanded || child.props.defaultExpanded)) initial.add(index);
2314
- });
2315
- return initial;
2316
- });
2317
- function updateExpanded(index, nextExpanded) {
2318
- setExpandedIndices((current) => {
2319
- const next = new Set(current);
2320
- if (nextExpanded) {
2321
- if (!multiple) next.clear();
2322
- next.add(index);
2323
- } else {
2324
- next.delete(index);
2325
- }
2326
- onChange?.(Array.from(next).sort((a, b) => a - b));
2327
- return next;
2328
- });
2329
- }
2330
- function handleKeyDown(event) {
2331
- const currentIndex = buttonRefs.current.findIndex((button) => button === event.target);
2332
- if (currentIndex === -1) {
2333
- props.onKeyDown?.(event);
2334
- return;
2335
- }
2336
- if (event.key === KeyboardKeys.ARROW_DOWN) {
2337
- event.preventDefault();
2338
- focusExpandableButton(buttonRefs, (currentIndex + 1) % buttonRefs.current.length);
2339
- } else if (event.key === KeyboardKeys.ARROW_UP) {
2340
- event.preventDefault();
2341
- focusExpandableButton(buttonRefs, (currentIndex - 1 + buttonRefs.current.length) % buttonRefs.current.length);
2342
- } else if (event.key === KeyboardKeys.HOME) {
2343
- event.preventDefault();
2344
- focusExpandableButton(buttonRefs, 0);
2345
- } else if (event.key === KeyboardKeys.END) {
2346
- event.preventDefault();
2347
- focusExpandableButton(buttonRefs, buttonRefs.current.length - 1);
2348
- }
2349
- props.onKeyDown?.(event);
2350
- }
2351
- return /* @__PURE__ */ jsx2(Component, { ...props, "data-jumpy-component": "expandable-group", "aria-disabled": disabled || void 0, className: cn(className), onKeyDown: handleKeyDown, children: childArray.map((child, index) => {
2352
- const contextValue = {
2353
- headingLevel: headingTag(headingLevel),
2354
- disabled,
2355
- expanded: expandedIndices.has(index),
2356
- onExpandedChange: (nextExpanded) => updateExpanded(index, nextExpanded),
2357
- buttonRef: (element) => {
2358
- buttonRefs.current[index] = element;
2359
- }
2360
- };
2361
- return /* @__PURE__ */ jsxs2(JumpyExpandableContext.Provider, { value: contextValue, children: [
2362
- child,
2363
- index < childArray.length - 1 ? /* @__PURE__ */ jsx2(JumpDivider, { direction: "horizontal", "data-jumpy-slot": "expandable-group-divider", className: innerClasses.divider?.className, style: innerClasses.divider?.style }) : null
2364
- ] }, child.key || index);
2365
- }) });
2366
- }
2367
- var JUMPY_POPUP_Z_INDEX = 1200;
2368
- function JumpyPortal({ children }) {
2369
- const theme = useJumpyTheme();
2370
- const scope = useContext(JumpyThemeScopeContext);
2371
- return /* @__PURE__ */ jsx2(FloatingPortal, { children: /* @__PURE__ */ jsx2("div", { "data-jumpy-theme": "true", "data-jumpy-scope": scope || void 0, "data-jumpy-portal": "true", style: { ...!scope ? themeToCSSVariables(theme) : {}, fontFamily: theme.fontFamily.familyBase }, children }) });
2372
- }
2373
- function JumpyModalLayer({ children, onVisibleChange, style, onPointerDown, ...props }) {
2374
- const theme = useJumpyTheme();
2375
- const { refs, context } = useFloating({ open: true, onOpenChange: onVisibleChange });
2376
- return /* @__PURE__ */ jsx2(JumpyPortal, { children: /* @__PURE__ */ jsx2(FloatingOverlay, { ...props, lockScroll: true, onPointerDown: (event) => {
2377
- onPointerDown?.(event);
2378
- if (event.target === event.currentTarget) event.preventDefault();
2379
- }, style, children: /* @__PURE__ */ jsx2(FloatingFocusManager, { context, outsideElementsInert: true, restoreFocus: true, children: cloneElement(children, {
2380
- ref: refs.setFloating,
2381
- tabIndex: -1,
2382
- onKeyDown(event) {
2383
- children.props.onKeyDown?.(event);
2384
- const nestedPopup = !event.currentTarget.contains(event.target) || event.target.closest('[aria-haspopup][aria-expanded="true"]');
2385
- if (event.key === KeyboardKeys.ESCAPE && !event.defaultPrevented && !nestedPopup) {
2386
- event.preventDefault();
2387
- event.stopPropagation();
2388
- onVisibleChange?.(false);
2389
- }
2390
- }
2391
- }) }) }) });
2392
- }
2393
- function JumpSheet({ visible = false, onVisibleChange, position = "right", title, subtitle, footer, children, className = "", ...props }) {
2394
- const theme = useJumpyTheme();
2395
- const vertical = position === "left" || position === "right";
2396
- if (!visible) return null;
2397
- return /* @__PURE__ */ jsx2(JumpyModalLayer, { onVisibleChange, "data-jumpy-component": "sheet-overlay", role: "presentation", onClick: (event) => {
2398
- if (event.target === event.currentTarget) onVisibleChange?.(false);
2399
- }, style: { position: "fixed", inset: 0, zIndex: 50, backgroundColor: theme.color.surfaceOverlay }, children: /* @__PURE__ */ jsxs2("aside", { ...props, "data-jumpy-component": "sheet", className: cn(className), role: "dialog", "aria-modal": "true", "aria-label": title || props["aria-label"], tabIndex: -1, onClick: (event) => {
2400
- event.stopPropagation();
2401
- props.onClick?.(event);
2402
- }, style: { position: "fixed", top: position === "bottom" ? "auto" : 0, bottom: position === "top" ? "auto" : 0, left: position === "right" ? "auto" : 0, right: position === "left" ? "auto" : 0, width: vertical ? "min(420px, 100vw)" : "100vw", height: vertical ? "100dvh" : "min(420px, 100dvh)", backgroundColor: theme.color.surfaceCard, color: theme.color.textPrimary, boxShadow: theme.shadow.positiveMedium, display: "flex", flexDirection: "column", ...props.style || {} }, children: [
2403
- /* @__PURE__ */ jsxs2("div", { style: { padding: spacingValue(theme, JumpySpacing.large), borderBottom: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid ${theme.color.borderSubtle}` }, children: [
2404
- title ? /* @__PURE__ */ jsx2(JumpTypography, { variant: "titleMediumEmphasized", children: title }) : null,
2405
- subtitle ? /* @__PURE__ */ jsx2(JumpTypography, { variant: "bodySmall", color: "secondary", children: subtitle }) : null
2406
- ] }),
2407
- /* @__PURE__ */ jsx2("div", { style: { padding: spacingValue(theme, JumpySpacing.large), flex: 1, overflow: "auto" }, children }),
2408
- footer ? /* @__PURE__ */ jsx2("div", { style: { padding: spacingValue(theme, JumpySpacing.large), borderTop: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid ${theme.color.borderSubtle}` }, children: footer }) : null
2409
- ] }) });
2410
- }
2411
- function JumpyNavigationIcon({ type, size: size2 = 24 }) {
2412
- const paths = {
2413
- menu: "M4 6h16M4 12h16M4 18h16",
2414
- close: "M6 6l12 12M18 6 6 18",
2415
- back: "M15 18l-6-6 6-6",
2416
- more: "M5 12h.01M12 12h.01M19 12h.01"
2417
- };
2418
- return /* @__PURE__ */ jsx2("svg", { width: size2, height: size2, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: type === "more" ? 3 : 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false", "data-jumpy-stroke-icon": "true", style: { display: "block" }, children: /* @__PURE__ */ jsx2("path", { d: paths[type] }) });
2419
- }
2420
- function JumpTopBar({ leading, onMenu, onBack, menuOpen = false, title, subtitle, trailing, sticky = true, titleAlign = "start", titleHidden = false, ariaLabels = {}, className = "", ...props }) {
2421
- const theme = useJumpyTheme();
2422
- const [scrolled, setScrolled] = useState2(false);
2423
- const titleStyle = textStyleValue(theme, JumpyTextStyle.bodyLargeEmphasized);
2424
- const subtitleStyle = textStyleValue(theme, JumpyTextStyle.bodySmall);
2425
- useEffect2(() => {
2426
- if (!sticky) return void 0;
2427
- const update = () => setScrolled(window.scrollY > 0);
2428
- update();
2429
- window.addEventListener("scroll", update, { passive: true });
2430
- return () => window.removeEventListener("scroll", update);
2431
- }, [sticky]);
2432
- const leadingType = leading === "menu" || leading === "back" ? leading : void 0;
2433
- const leadingNode = leading === "menu" ? /* @__PURE__ */ jsx2(JumpIconButton, { variant: "borderless", "aria-label": ariaLabels.menu || "Open navigation", "aria-haspopup": "dialog", "aria-expanded": menuOpen, onClick: onMenu, children: /* @__PURE__ */ jsx2(JumpyNavigationIcon, { type: "menu" }) }) : leading === "back" ? /* @__PURE__ */ jsx2(JumpIconButton, { variant: "borderless", "aria-label": ariaLabels.back || "Back", onClick: onBack, children: /* @__PURE__ */ jsx2(JumpyNavigationIcon, { type: "back" }) }) : leading;
2434
- return /* @__PURE__ */ jsxs2(
2435
- "header",
2436
- {
2437
- ...props,
2438
- "data-jumpy-component": "top-bar",
2439
- "data-sticky": sticky ? "true" : "false",
2440
- "data-scrolled": scrolled ? "true" : "false",
2441
- "data-title-align": titleAlign,
2442
- "data-title-hidden": titleHidden ? "true" : "false",
2443
- className: cn(className),
2444
- style: {
2445
- boxSizing: "border-box",
2446
- position: sticky ? "sticky" : "relative",
2447
- top: 0,
2448
- zIndex: 40,
2449
- alignItems: "center",
2450
- gap: spacingValue(theme, JumpySpacing.medium),
2451
- minHeight: `calc(${sizeValue(theme, JumpySize.large2XL)}px + env(safe-area-inset-top, 0px))`,
2452
- padding: `calc(${spacingValue(theme, JumpySpacing.smallXS)}px + env(safe-area-inset-top, 0px)) calc(${spacingValue(theme, JumpySpacing.large)}px + env(safe-area-inset-right, 0px)) ${spacingValue(theme, JumpySpacing.smallXS)}px calc(${spacingValue(theme, JumpySpacing.large)}px + env(safe-area-inset-left, 0px))`,
2453
- color: "var(--jumpy-color-text-primary)",
2454
- fontFamily: theme.fontFamily.familyBase,
2455
- ...props.style || {}
2456
- },
2457
- children: [
2458
- leadingNode ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "top-bar-leading", "data-leading": leadingType, style: { minWidth: 0, maxWidth: "100%", marginLeft: -spacingValue(theme, JumpySpacing.smallXS) }, children: leadingNode }) : null,
2459
- /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "top-bar-title", "aria-hidden": titleHidden || void 0, style: titleAlign === "center" ? {
2460
- display: "flex",
2461
- flexDirection: "column",
2462
- alignItems: "center",
2463
- textAlign: "center",
2464
- minWidth: 0,
2465
- opacity: titleHidden ? 0 : 1
2466
- } : { display: "flex", flexDirection: "column", flex: "1 1 auto", minWidth: 0, opacity: titleHidden ? 0 : 1 }, children: [
2467
- title ? /* @__PURE__ */ jsx2("span", { style: { maxWidth: "100%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", fontSize: titleStyle.fontSize, lineHeight: titleStyle.lineHeight, fontWeight: titleStyle.fontWeight }, children: title }) : null,
2468
- subtitle ? /* @__PURE__ */ jsx2("span", { style: { maxWidth: "100%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", color: "var(--jumpy-color-text-secondary)", fontSize: subtitleStyle.fontSize, lineHeight: subtitleStyle.lineHeight }, children: subtitle }) : null
2469
- ] }),
2470
- trailing ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "top-bar-trailing", style: { display: "inline-flex", flex: "0 0 auto", marginLeft: "auto", alignItems: "center", gap: spacingValue(theme, JumpySpacing.smallXS) }, children: trailing }) : null
2471
- ]
2472
- }
2473
- );
2474
- }
2475
- function JumpTabBar({ children, className = "", "aria-label": ariaLabel = "Main navigation", ...props }) {
2476
- const theme = useJumpyTheme();
2477
- return /* @__PURE__ */ jsx2(
2478
- "div",
2479
- {
2480
- "data-jumpy-component": "tab-bar",
2481
- className: cn(className),
2482
- style: {
2483
- boxSizing: "border-box",
2484
- position: "sticky",
2485
- bottom: 0,
2486
- zIndex: 40,
2487
- padding: `0 calc(${spacingValue(theme, JumpySpacing.medium)}px + env(safe-area-inset-right, 0px)) calc(${spacingValue(theme, JumpySpacing.medium)}px + env(safe-area-inset-bottom, 0px)) calc(${spacingValue(theme, JumpySpacing.medium)}px + env(safe-area-inset-left, 0px))`,
2488
- pointerEvents: "none"
2489
- },
2490
- children: /* @__PURE__ */ jsx2(
2491
- "nav",
2492
- {
2493
- ...props,
2494
- "aria-label": ariaLabel,
2495
- "data-jumpy-slot": "tab-bar-surface",
2496
- style: {
2497
- boxSizing: "border-box",
2498
- display: "flex",
2499
- gap: spacingValue(theme, JumpySpacing.small4XS),
2500
- padding: spacingValue(theme, JumpySpacing.small3XS),
2501
- borderRadius: radiusValue(theme, JumpyRadius.large2XL),
2502
- border: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid var(--jumpy-color-border-subtle)`,
2503
- boxShadow: theme.shadow.positiveMedium,
2504
- pointerEvents: "auto",
2505
- fontFamily: theme.fontFamily.familyBase,
2506
- ...props.style || {}
2507
- },
2508
- children
2509
- }
2510
- )
2511
- }
2512
- );
2513
- }
2514
- function JumpTabBarItem({ as, icon, badge, selected = false, children, className = "", ...props }) {
2515
- const theme = useJumpyTheme();
2516
- const Component = as || (props.href ? "a" : "button");
2517
- const labelStyle = textStyleValue(theme, JumpyTextStyle.labelSmall);
2518
- const badgeNode = typeof badge === "number" ? badge > 0 ? /* @__PURE__ */ jsx2(JumpBadge, { size: "small", status: "active", "aria-label": void 0, role: "presentation", "aria-live": "off", children: badge > 99 ? "99+" : badge }) : null : badge;
2519
- return /* @__PURE__ */ jsxs2(
2520
- Component,
2521
- {
2522
- ...props,
2523
- type: Component === "button" ? props.type || "button" : props.type,
2524
- "aria-current": selected ? props["aria-current"] || "page" : props["aria-current"],
2525
- "data-jumpy-component": "tab-bar-item",
2526
- "data-selected": selected ? "true" : "false",
2527
- className: cn(className),
2528
- style: {
2529
- boxSizing: "border-box",
2530
- flex: "1 1 0",
2531
- minWidth: 0,
2532
- display: "flex",
2533
- flexDirection: "column",
2534
- alignItems: "center",
2535
- justifyContent: "center",
2536
- gap: spacingValue(theme, JumpySpacing.small4XS),
2537
- minHeight: sizeValue(theme, JumpySize.large2XL),
2538
- padding: `${spacingValue(theme, JumpySpacing.smallXS)}px ${spacingValue(theme, JumpySpacing.small3XS)}px`,
2539
- border: 0,
2540
- borderRadius: radiusValue(theme, JumpyRadius.largeXL),
2541
- backgroundColor: selected ? "var(--jumpy-interactive-active-regular-default-surface)" : "transparent",
2542
- color: selected ? "var(--jumpy-interactive-active-regular-default-text)" : "var(--jumpy-color-text-secondary)",
2543
- textDecoration: "none",
2544
- cursor: "pointer",
2545
- fontFamily: theme.fontFamily.familyBase,
2546
- fontSize: labelStyle.fontSize,
2547
- lineHeight: labelStyle.lineHeight,
2548
- fontWeight: labelStyle.fontWeight,
2549
- ...props.style || {}
2550
- },
2551
- children: [
2552
- icon ? /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "tab-bar-item-icon", "aria-hidden": "true", style: { position: "relative", display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, width: sizeValue(theme, JumpySize.smallXS), height: sizeValue(theme, JumpySize.smallXS) }, children: [
2553
- icon,
2554
- badgeNode ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "tab-bar-item-badge", style: { position: "absolute", top: -spacingValue(theme, JumpySpacing.smallXS), left: "50%", marginLeft: spacingValue(theme, JumpySpacing.small3XS), display: "inline-flex" }, children: badgeNode }) : null
2555
- ] }) : null,
2556
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "tab-bar-item-label", style: { maxWidth: "100%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children })
2557
- ]
2558
- }
2559
- );
2560
- }
2561
- var jumpyLocations = { current: null, previous: null };
2562
- function jumpyNormalizeUrl(url) {
2563
- const resolved = new URL(url, window.location.href);
2564
- const path = resolved.pathname.length > 1 ? resolved.pathname.replace(/\/+$/, "") : resolved.pathname;
2565
- return `${resolved.origin}${path}${resolved.search === "?" ? "" : resolved.search}`;
2566
- }
2567
- function jumpyPreviousEntryIs(href) {
2568
- const target = jumpyNormalizeUrl(href);
2569
- const navigation = window.navigation;
2570
- if (navigation && typeof navigation.entries === "function" && navigation.currentEntry) {
2571
- if (!navigation.canGoBack) return false;
2572
- const previous = navigation.entries()[navigation.currentEntry.index - 1];
2573
- return Boolean(previous?.url) && jumpyNormalizeUrl(previous.url) === target;
2574
- }
2575
- return Boolean(jumpyLocations.previous) && jumpyNormalizeUrl(jumpyLocations.previous) === target && window.history.length > 1;
2576
- }
2577
- function JumpyAppShellBack({ back, variant, ariaLabels }) {
2578
- const theme = useJumpyTheme();
2579
- const Component = back.as || (back.href ? "a" : "button");
2580
- const textStyle = textStyleValue(theme, variant === "inline" ? JumpyTextStyle.bodySmallEmphasized : JumpyTextStyle.bodyMedium);
2581
- const accessibleName = ariaLabels.backTo ? ariaLabels.backTo(back.label) : `Back to ${back.label}`;
2582
- function handleClick(event) {
2583
- back.onClick?.(event);
2584
- if (event.defaultPrevented || !back.href || back.history === false) return;
2585
- if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
2586
- if (!jumpyPreviousEntryIs(back.href)) return;
2587
- event.preventDefault();
2588
- window.history.back();
2589
- }
2590
- return /* @__PURE__ */ jsxs2(
2591
- Component,
2592
- {
2593
- href: back.href,
2594
- type: Component === "button" ? "button" : void 0,
2595
- "aria-label": accessibleName,
2596
- "data-jumpy-slot": "app-shell-back",
2597
- "data-variant": variant,
2598
- onClick: handleClick,
2599
- style: {
2600
- boxSizing: "border-box",
2601
- alignItems: "center",
2602
- gap: spacingValue(theme, JumpySpacing.small4XS),
2603
- maxWidth: "100%",
2604
- minWidth: 0,
2605
- minHeight: variant === "inline" ? void 0 : sizeValue(theme, JumpySize.largeXL),
2606
- margin: variant === "inline" ? `0 0 ${spacingValue(theme, JumpySpacing.small3XS)}px ${-spacingValue(theme, JumpySpacing.small3XS)}px` : 0,
2607
- padding: variant === "inline" ? 0 : `0 ${spacingValue(theme, JumpySpacing.smallXS)}px 0 0`,
2608
- border: 0,
2609
- borderRadius: radiusValue(theme, JumpyRadius.small),
2610
- background: "transparent",
2611
- color: "var(--jumpy-interactive-active-regular-default-text)",
2612
- textDecoration: "none",
2613
- cursor: "pointer",
2614
- fontFamily: theme.fontFamily.familyBase,
2615
- fontSize: textStyle.fontSize,
2616
- lineHeight: textStyle.lineHeight,
2617
- fontWeight: textStyle.fontWeight
2618
- },
2619
- children: [
2620
- /* @__PURE__ */ jsx2(JumpyNavigationIcon, { type: "back", size: variant === "inline" ? 18 : 24 }),
2621
- /* @__PURE__ */ jsx2("span", { style: { minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: back.label })
2622
- ]
2623
- }
2624
- );
2625
- }
2626
- function JumpyAppShellActions({ actions, variant, ariaLabels }) {
2627
- const theme = useJumpyTheme();
2628
- if (!actions.length) return null;
2629
- const gap = spacingValue(theme, JumpySpacing.smallXS);
2630
- if (variant === "full") {
2631
- return /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "app-shell-actions", "data-variant": "full", style: { alignItems: "center", gap, flexWrap: "wrap", justifyContent: "flex-end" }, children: actions.map((action, index) => /* @__PURE__ */ jsx2(JumpButton, { as: action.href ? "a" : void 0, href: action.href, variant: action.variant || "secondary", leadingIcon: action.icon, disabled: action.disabled, onClick: action.onClick, children: action.label }, action.id ?? index)) });
2632
- }
2633
- const visible = actions.length > 2 ? actions.slice(0, 1) : actions;
2634
- const overflow = actions.length > 2 ? actions.slice(1) : [];
2635
- return /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "app-shell-actions", "data-variant": "compact", style: { alignItems: "center", gap }, children: [
2636
- visible.map((action, index) => /* @__PURE__ */ jsx2(JumpIconButton, { as: action.href ? "a" : void 0, href: action.href, variant: action.variant === "primary" ? "primary" : "borderless", "aria-label": action.label, disabled: action.disabled, onClick: action.onClick, children: action.icon }, action.id ?? index)),
2637
- overflow.length ? /* @__PURE__ */ jsx2(
2638
- JumpMenu,
2639
- {
2640
- placement: "bottom-end",
2641
- triggerProps: { role: "button", "aria-label": ariaLabels.moreActions || "More actions", "data-jumpy-slot": "app-shell-actions-more" },
2642
- trigger: /* @__PURE__ */ jsx2(JumpIconButton, { as: "span", variant: "borderless", tabIndex: -1, "aria-hidden": "true", children: /* @__PURE__ */ jsx2(JumpyNavigationIcon, { type: "more" }) }),
2643
- children: overflow.map((action, index) => /* @__PURE__ */ jsx2(JumpMenuItem, { as: action.href ? "a" : void 0, href: action.href, leading: action.icon, disabled: action.disabled, onClick: action.onClick, children: action.label }, action.id ?? index))
2644
- }
2645
- ) : null
2646
- ] });
2647
- }
2648
- function JumpAppShell({ brand, navigation, sidebarFooter, topBar, tabBar, hideTabBar = false, breakpoint = 1024, sidebarWidth = 256, navigationOpen, defaultNavigationOpen = false, onNavigationOpenChange, ariaLabels = {}, children, className = "", ...props }) {
2649
- const theme = useJumpyTheme();
2650
- const shellId = useId();
2651
- const [internalOpen, setInternalOpen] = useState2(defaultNavigationOpen);
2652
- const isOpen = Boolean(navigation) && (navigationOpen ?? internalOpen);
2653
- const swipeStart = useRef2(null);
2654
- const rootRef = useRef2(null);
2655
- const [drawerMounted, setDrawerMounted] = useState2(isOpen);
2656
- const showDrawer = isOpen || drawerMounted;
2657
- const closing = drawerMounted && !isOpen;
2658
- const wasShown = useRef2(showDrawer);
2659
- const { desktop: topBarDesktop = false, leading, largeTitle = false, actions = [], back, ...topBarProps } = topBar || {};
2660
- const showLargeTitle = largeTitle && Boolean(topBarProps.title);
2661
- const hasBack = Boolean(back?.label);
2662
- const topBarOnDesktop = topBarDesktop || !showLargeTitle && (actions.length > 0 || hasBack);
2663
- const largeTitleRef = useRef2(null);
2664
- const [largeTitleCovered, setLargeTitleCovered] = useState2(false);
2665
- const resolvedLeading = hasBack ? /* @__PURE__ */ jsx2(JumpyAppShellBack, { back, variant: "bar", ariaLabels }) : leading ?? (navigation ? "menu" : void 0);
2666
- useEffect2(() => {
2667
- const href = window.location.href;
2668
- if (jumpyLocations.current === href) return;
2669
- jumpyLocations.previous = jumpyLocations.current;
2670
- jumpyLocations.current = href;
2671
- });
2672
- const shell = `[data-jumpy-app-shell="${shellId}"]`;
2673
- const width = typeof sidebarWidth === "number" ? `${sidebarWidth}px` : sidebarWidth;
2674
- function setOpen(next) {
2675
- if (navigationOpen === void 0) setInternalOpen(next);
2676
- onNavigationOpenChange?.(next);
2677
- }
2678
- useEffect2(() => {
2679
- if (!isOpen) return void 0;
2680
- const desktop = window.matchMedia(`(min-width: ${breakpoint}px)`);
2681
- const closeOnDesktop = () => {
2682
- if (desktop.matches) setOpen(false);
2683
- };
2684
- closeOnDesktop();
2685
- desktop.addEventListener("change", closeOnDesktop);
2686
- return () => desktop.removeEventListener("change", closeOnDesktop);
2687
- });
2688
- useEffect2(() => {
2689
- if (isOpen) {
2690
- setDrawerMounted(true);
2691
- return void 0;
2692
- }
2693
- if (!drawerMounted) return void 0;
2694
- if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
2695
- setDrawerMounted(false);
2696
- return void 0;
2697
- }
2698
- const timer = window.setTimeout(() => setDrawerMounted(false), animationDurationValue(theme, JumpyAnimationDuration.small) * 1e3 + 100);
2699
- return () => window.clearTimeout(timer);
2700
- }, [isOpen, drawerMounted]);
2701
- useEffect2(() => {
2702
- const closed = wasShown.current && !showDrawer;
2703
- wasShown.current = showDrawer;
2704
- if (!closed) return void 0;
2705
- const frame = window.requestAnimationFrame(() => {
2706
- if (document.activeElement && document.activeElement !== document.body) return;
2707
- rootRef.current?.querySelector(':scope > [data-jumpy-slot="app-shell-body"] > [data-jumpy-component="top-bar"] > [data-leading="menu"] button')?.focus();
2708
- });
2709
- return () => window.cancelAnimationFrame(frame);
2710
- }, [showDrawer]);
2711
- useEffect2(() => {
2712
- const element = largeTitleRef.current;
2713
- if (!showLargeTitle || !element || typeof IntersectionObserver === "undefined") return void 0;
2714
- const bar = rootRef.current?.querySelector(':scope > [data-jumpy-slot="app-shell-body"] > [data-jumpy-component="top-bar"]');
2715
- const barHeight = bar && bar.getBoundingClientRect().height > 0 ? bar.getBoundingClientRect().height : 0;
2716
- const observer = new IntersectionObserver(([entry]) => setLargeTitleCovered(!entry.isIntersecting), { rootMargin: `-${Math.round(barHeight)}px 0px 0px 0px` });
2717
- observer.observe(element);
2718
- return () => observer.disconnect();
2719
- }, [showLargeTitle, topBarProps.title]);
2720
- function closeOnNavigate(event) {
2721
- const item = event.target.closest?.('a[href], [data-jumpy-component="side-menu-item"]');
2722
- if (!item || item.hasAttribute("aria-expanded") || item.getAttribute("aria-disabled") === "true" || item.disabled) return;
2723
- setOpen(false);
2724
- }
2725
- const shellStyles = `
2726
- ${shell} { grid-template-columns: minmax(0, 1fr); }
2727
- ${shell} > [data-jumpy-slot='app-shell-sidebar'] { display: none; }
2728
- ${shell} [data-jumpy-slot='app-shell-actions'][data-variant='compact'] { display: inline-flex; }
2729
- ${shell} [data-jumpy-slot='app-shell-actions'][data-variant='full'] { display: none; }
2730
- ${shell} [data-jumpy-slot='app-shell-back'][data-variant='inline'] { display: none; }
2731
- @media (min-width: ${breakpoint}px) {
2732
- ${shell} { grid-template-columns: ${width} minmax(0, 1fr); }
2733
- ${shell} > [data-jumpy-slot='app-shell-sidebar'] { display: flex; }
2734
- ${shell} [data-jumpy-slot='app-shell-actions'][data-variant='compact'] { display: none; }
2735
- ${shell} [data-jumpy-slot='app-shell-actions'][data-variant='full'] { display: inline-flex; }
2736
- ${shell} [data-jumpy-slot='app-shell-back'][data-variant='inline'] { display: flex; width: fit-content; }
2737
- ${shell} > [data-jumpy-slot='app-shell-body'] > [data-jumpy-component='tab-bar'] { display: none; }
2738
- ${shell} > [data-jumpy-slot='app-shell-body'] > [data-jumpy-component='top-bar'][data-mobile-only='true'] { display: none; }
2739
- ${shell} > [data-jumpy-slot='app-shell-body'] > [data-jumpy-component='top-bar'] > [data-leading='menu'] { display: none; }
2740
- }`;
2741
- const topBarNode = /* @__PURE__ */ jsx2(
2742
- JumpTopBar,
2743
- {
2744
- ...topBarProps,
2745
- "data-mobile-only": topBarOnDesktop ? "false" : "true",
2746
- leading: resolvedLeading,
2747
- menuOpen: isOpen,
2748
- onMenu: () => setOpen(true),
2749
- title: topBarProps.title ?? brand,
2750
- subtitle: showLargeTitle ? void 0 : topBarProps.subtitle,
2751
- titleAlign: showLargeTitle || hasBack ? "center" : topBarProps.titleAlign,
2752
- titleHidden: showLargeTitle ? !largeTitleCovered : topBarProps.titleHidden,
2753
- "data-large-title": showLargeTitle ? "true" : void 0,
2754
- trailing: actions.length || topBarProps.trailing ? /* @__PURE__ */ jsxs2(Fragment, { children: [
2755
- /* @__PURE__ */ jsx2(JumpyAppShellActions, { actions, variant: "compact", ariaLabels }),
2756
- showLargeTitle ? null : /* @__PURE__ */ jsx2(JumpyAppShellActions, { actions, variant: "full", ariaLabels }),
2757
- topBarProps.trailing
2758
- ] }) : void 0,
2759
- ariaLabels: { menu: ariaLabels.openNavigation, back: ariaLabels.back, ...topBarProps.ariaLabels || {} }
2760
- }
2761
- );
2762
- return /* @__PURE__ */ jsxs2(
2763
- "div",
2764
- {
2765
- ...props,
2766
- ref: rootRef,
2767
- "data-jumpy-component": "app-shell",
2768
- "data-jumpy-app-shell": shellId,
2769
- "data-navigation-open": isOpen ? "true" : "false",
2770
- className: cn(className),
2771
- style: {
2772
- display: "grid",
2773
- minHeight: "100dvh",
2774
- backgroundColor: "var(--jumpy-color-surface-canvas)",
2775
- color: "var(--jumpy-color-text-primary)",
2776
- fontFamily: theme.fontFamily.familyBase,
2777
- ...props.style || {}
2778
- },
2779
- children: [
2780
- /* @__PURE__ */ jsx2("style", { children: shellStyles }),
2781
- /* @__PURE__ */ jsxs2(
2782
- "aside",
2783
- {
2784
- "data-jumpy-slot": "app-shell-sidebar",
2785
- "aria-label": ariaLabels.navigation || "Navigation",
2786
- style: {
2787
- boxSizing: "border-box",
2788
- position: "sticky",
2789
- top: 0,
2790
- height: "100dvh",
2791
- flexDirection: "column",
2792
- overflow: "hidden",
2793
- borderRight: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid var(--jumpy-color-border-subtle)`,
2794
- backgroundColor: "var(--jumpy-color-surface-card)"
2795
- },
2796
- children: [
2797
- brand ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "app-shell-brand", style: { flex: "0 0 auto", padding: spacingValue(theme, JumpySpacing.large2XL), borderBottom: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid var(--jumpy-color-border-subtle)` }, children: brand }) : null,
2798
- navigation ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "app-shell-navigation", style: { flex: "1 1 auto", minHeight: 0, overflowY: "auto", overscrollBehavior: "contain", padding: spacingValue(theme, JumpySpacing.large) }, children: navigation }) : null,
2799
- sidebarFooter ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "app-shell-sidebar-footer", style: { flex: "0 0 auto", padding: spacingValue(theme, JumpySpacing.large), borderTop: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid var(--jumpy-color-border-subtle)` }, children: sidebarFooter }) : null
2800
- ]
2801
- }
2802
- ),
2803
- /* @__PURE__ */ jsxs2("div", { "data-jumpy-slot": "app-shell-body", style: { display: "flex", flexDirection: "column", minWidth: 0, minHeight: "100dvh" }, children: [
2804
- topBar !== null ? topBarNode : null,
2805
- /* @__PURE__ */ jsxs2("main", { "data-jumpy-slot": "app-shell-content", style: { flex: 1, minWidth: 0 }, children: [
2806
- showLargeTitle ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "app-shell-large-title", style: { padding: `${spacingValue(theme, JumpySpacing.smallXS)}px calc(var(--jumpy-app-shell-gutter, ${spacingValue(theme, JumpySpacing.large)}px) + env(safe-area-inset-right, 0px)) 0 calc(var(--jumpy-app-shell-gutter, ${spacingValue(theme, JumpySpacing.large)}px) + env(safe-area-inset-left, 0px))` }, children: /* @__PURE__ */ jsxs2("div", { style: { display: "flex", alignItems: "flex-end", justifyContent: "space-between", gap: spacingValue(theme, JumpySpacing.large), flexWrap: "wrap" }, children: [
2807
- /* @__PURE__ */ jsxs2("div", { style: { minWidth: 0 }, children: [
2808
- hasBack ? /* @__PURE__ */ jsx2(JumpyAppShellBack, { back, variant: "inline", ariaLabels }) : null,
2809
- /* @__PURE__ */ jsx2("h1", { ref: largeTitleRef, style: { margin: 0, ...textStyleValue(theme, JumpyTextStyle.displaySmallEmphasized), overflowWrap: "anywhere" }, children: topBarProps.title }),
2810
- topBarProps.subtitle ? /* @__PURE__ */ jsx2("p", { style: { margin: `${spacingValue(theme, JumpySpacing.small4XS)}px 0 0`, color: "var(--jumpy-color-text-secondary)", ...textStyleValue(theme, JumpyTextStyle.bodyMedium) }, children: topBarProps.subtitle }) : null
2811
- ] }),
2812
- /* @__PURE__ */ jsx2(JumpyAppShellActions, { actions, variant: "full", ariaLabels })
2813
- ] }) }) : null,
2814
- children
2815
- ] }),
2816
- tabBar && !hideTabBar ? tabBar : null
2817
- ] }),
2818
- showDrawer ? /* @__PURE__ */ jsx2(JumpyModalLayer, { onVisibleChange: setOpen, "data-jumpy-component": "app-shell-drawer-overlay", "data-state": closing ? "closing" : "open", style: { position: "fixed", inset: 0, zIndex: 60, backgroundColor: "var(--jumpy-color-surface-overlay)" }, children: /* @__PURE__ */ jsxs2(
2819
- "div",
2820
- {
2821
- role: "dialog",
2822
- "aria-modal": "true",
2823
- "aria-label": ariaLabels.navigation || "Navigation",
2824
- "data-jumpy-component": "app-shell-drawer",
2825
- "data-state": closing ? "closing" : "open",
2826
- onAnimationEnd: (event) => {
2827
- if (closing && event.target === event.currentTarget) setDrawerMounted(false);
2828
- },
2829
- onClick: closeOnNavigate,
2830
- onTouchStart: (event) => {
2831
- const touch = event.touches[0];
2832
- swipeStart.current = touch ? { x: touch.clientX, y: touch.clientY } : null;
2833
- },
2834
- onTouchEnd: (event) => {
2835
- const start = swipeStart.current;
2836
- const touch = event.changedTouches[0];
2837
- swipeStart.current = null;
2838
- if (!start || !touch) return;
2839
- const dx = touch.clientX - start.x;
2840
- const dy = touch.clientY - start.y;
2841
- if (dx < -spacingValue(theme, JumpySpacing.large4XL) && Math.abs(dx) > Math.abs(dy) * 1.5) setOpen(false);
2842
- },
2843
- style: {
2844
- boxSizing: "border-box",
2845
- position: "fixed",
2846
- inset: 0,
2847
- display: "flex",
2848
- flexDirection: "column",
2849
- width: "100vw",
2850
- height: "100dvh",
2851
- overflow: "hidden",
2852
- outline: "none",
2853
- backgroundColor: "var(--jumpy-color-surface-card)",
2854
- color: "var(--jumpy-color-text-primary)",
2855
- fontFamily: theme.fontFamily.familyBase
2856
- },
2857
- children: [
2858
- /* @__PURE__ */ jsx2(
2859
- JumpTopBar,
2860
- {
2861
- "data-jumpy-slot": "app-shell-drawer-header",
2862
- sticky: false,
2863
- style: { flex: "0 0 auto" },
2864
- leading: /* @__PURE__ */ jsx2(JumpIconButton, { variant: "borderless", "aria-label": ariaLabels.closeNavigation || "Close navigation", onClick: () => setOpen(false), children: /* @__PURE__ */ jsx2(JumpyNavigationIcon, { type: "close" }) }),
2865
- title: brand
2866
- }
2867
- ),
2868
- /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "app-shell-drawer-navigation", style: { flex: "1 1 auto", minHeight: 0, overflowY: "auto", overscrollBehavior: "contain", padding: spacingValue(theme, JumpySpacing.large) }, children: navigation }),
2869
- sidebarFooter ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "app-shell-drawer-footer", style: { flex: "0 0 auto", padding: `${spacingValue(theme, JumpySpacing.large)}px calc(${spacingValue(theme, JumpySpacing.large)}px + env(safe-area-inset-right, 0px)) calc(${spacingValue(theme, JumpySpacing.large)}px + env(safe-area-inset-bottom, 0px)) calc(${spacingValue(theme, JumpySpacing.large)}px + env(safe-area-inset-left, 0px))`, borderTop: `${borderWidthValue(theme, JumpyBorderWidth.small)}px solid var(--jumpy-color-border-subtle)`, backgroundColor: "var(--jumpy-color-surface-card)" }, children: sidebarFooter }) : null
2870
- ]
2871
- }
2872
- ) }) : null
2873
- ]
2874
- }
2875
- );
2876
- }
2877
- function JumpSectionHeader({ as, variant = "regular", description, className = "", children, ...props }) {
2878
- const theme = useJumpyTheme();
2879
- const Component = as || "li";
2880
- return /* @__PURE__ */ jsxs2(Component, { ...props, "data-jumpy-component": "section-header", className: cn(className), style: { display: "grid", gap: variant === "prominent" ? spacingValue(theme, JumpySpacing.small3XS) : 0, padding: `${spacingValue(theme, JumpySpacing.smallXS)}px ${spacingValue(theme, JumpySpacing.large)}px`, color: theme.color.textSecondary, ...props.style || {} }, children: [
2881
- /* @__PURE__ */ jsx2(JumpTypography, { variant: variant === "prominent" ? "bodyMediumEmphasized" : "labelSmallEmphasized", color: "secondary", children }),
2882
- variant === "prominent" && description ? /* @__PURE__ */ jsx2(JumpTypography, { variant: "bodySmall", color: "secondary", children: description }) : null
2883
- ] });
2884
- }
2885
- function JumpSectionFooter({ as, className = "", children, ...props }) {
2886
- const theme = useJumpyTheme();
2887
- const Component = as || "li";
2888
- return /* @__PURE__ */ jsx2(Component, { ...props, "data-jumpy-component": "section-footer", className: cn(className), style: { padding: `${spacingValue(theme, JumpySpacing.smallXS)}px ${spacingValue(theme, JumpySpacing.large)}px`, color: theme.color.textSecondary, ...props.style || {} }, children: /* @__PURE__ */ jsx2(JumpTypography, { variant: "bodySmall", color: "secondary", children }) });
2889
- }
2890
- function JumpTag({ size: size2 = "small", status = "regular", disabled = false, className = "", children, ...props }) {
2891
- const theme = useJumpyTheme();
2892
- const labelStyle = textStyleValue(theme, size2 === "medium" ? JumpyTextStyle.labelMediumEmphasized : JumpyTextStyle.labelSmallEmphasized);
2893
- return /* @__PURE__ */ jsx2(
2894
- "span",
2895
- {
2896
- ...props,
2897
- "data-jumpy-component": "tag",
2898
- "data-size": size2,
2899
- "data-status": status,
2900
- "data-disabled": disabled ? "true" : "false",
2901
- className: cn(className),
2902
- style: {
2903
- display: "inline-flex",
2904
- alignItems: "center",
2905
- width: "fit-content",
2906
- minHeight: size2 === "medium" ? sizeValue(theme, JumpySize.small) : sizeValue(theme, JumpySize.small2XS),
2907
- padding: `${spacingValue(theme, JumpySpacing.small3XS)}px ${spacingValue(theme, JumpySpacing.smallXS)}px`,
2908
- borderRadius: radiusValue(theme, JumpyRadius.full),
2909
- borderWidth: borderWidthValue(theme, JumpyBorderWidth.small),
2910
- borderStyle: "solid",
2911
- opacity: disabled ? opacityValue(theme, JumpyOpacity.medium) : opacityValue(theme, JumpyOpacity.solid),
2912
- fontFamily: theme.fontFamily.familyBase,
2913
- fontSize: labelStyle.fontSize,
2914
- lineHeight: labelStyle.lineHeight,
2915
- fontWeight: labelStyle.fontWeight,
2916
- letterSpacing: labelStyle.letterSpacing,
2917
- ...getTagStatusStyles(theme, status),
2918
- ...props.style || {}
2919
- },
2920
- children
2921
- }
2922
- );
2923
- }
2924
- function JumpChip({ selected = false, disabled = false, className = "", children, ...props }) {
2925
- const theme = useJumpyTheme();
2926
- const bodyMediumEmphasized = textStyleValue(theme, JumpyTextStyle.bodyMediumEmphasized);
2927
- return /* @__PURE__ */ jsx2(
2928
- "button",
2929
- {
2930
- ...props,
2931
- type: props.type || "button",
2932
- "data-jumpy-component": "chip",
2933
- "data-selected": selected ? "true" : "false",
2934
- disabled,
2935
- className: cn(className),
2936
- style: {
2937
- display: "inline-flex",
2938
- alignItems: "center",
2939
- justifyContent: "center",
2940
- minHeight: sizeValue(theme, JumpySize.large),
2941
- padding: `${spacingValue(theme, JumpySpacing.small2XS)}px ${spacingValue(theme, JumpySpacing.large)}px`,
2942
- borderRadius: radiusValue(theme, JumpyRadius.full),
2943
- borderWidth: borderWidthValue(theme, JumpyBorderWidth.small),
2944
- borderStyle: "solid",
2945
- borderColor: selected ? theme.color.surfacePrimary : theme.color.borderStrong,
2946
- backgroundColor: selected ? theme.color.infoSurface : theme.color.surfaceField,
2947
- color: selected ? theme.color.surfacePrimary : theme.color.textPrimary,
2948
- opacity: disabled ? opacityValue(theme, JumpyOpacity.medium) : opacityValue(theme, JumpyOpacity.solid),
2949
- fontFamily: theme.fontFamily.familyBase,
2950
- fontSize: bodyMediumEmphasized.fontSize,
2951
- lineHeight: bodyMediumEmphasized.lineHeight,
2952
- fontWeight: bodyMediumEmphasized.fontWeight,
2953
- letterSpacing: bodyMediumEmphasized.letterSpacing,
2954
- cursor: disabled ? "not-allowed" : "pointer",
2955
- ...props.style || {}
2956
- },
2957
- children
2958
- }
2959
- );
2960
- }
2961
- function JumpCheckbox({ label, children, checked, defaultChecked = false, indeterminate = false, onCheckedChange, onIndeterminateChange, labelPlacement = "end", innerClasses = {}, className = "", disabled = false, readOnly = false, style, ...props }) {
2962
- const theme = useJumpyTheme();
2963
- const labelLarge = textStyleValue(theme, JumpyTextStyle.labelLarge);
2964
- const inputRef = useRef2(null);
2965
- const [uncontrolledChecked, setUncontrolledChecked] = useState2(defaultChecked);
2966
- const isControlled = checked !== void 0;
2967
- const isChecked = Boolean(isControlled ? checked : uncontrolledChecked);
2968
- const isReadonly = readOnly && !disabled;
2969
- const activeDefault = theme.selectors.active.default;
2970
- const activeDisabled = theme.selectors.active.disabled;
2971
- const activeReadOnly = theme.selectors.active.readOnly;
2972
- const inactiveDefault = theme.selectors.inactive.default;
2973
- const inactiveDisabled = theme.selectors.inactive.disabled;
2974
- const inactiveReadOnly = theme.selectors.inactive.readOnly;
2975
- const labelContent = children ?? label;
2976
- useEffect2(() => {
2977
- if (inputRef.current) inputRef.current.indeterminate = indeterminate;
2978
- }, [indeterminate]);
2979
- const stateTokens = isChecked || indeterminate ? disabled ? activeDisabled : isReadonly ? activeReadOnly : activeDefault : disabled ? inactiveDisabled : isReadonly ? inactiveReadOnly : inactiveDefault;
2980
- function handleChange(event) {
2981
- if (isReadonly) {
2982
- if (inputRef.current) inputRef.current.indeterminate = indeterminate;
2983
- return;
2984
- }
2985
- if (indeterminate) onIndeterminateChange?.(false);
2986
- if (!isControlled) setUncontrolledChecked(event.target.checked);
2987
- onCheckedChange?.(event.target.checked);
2988
- props.onChange?.(event);
2989
- }
2990
- return /* @__PURE__ */ jsxs2(
2991
- "label",
2992
- {
2993
- "data-jumpy-component": "checkbox",
2994
- "data-checked": isChecked || indeterminate ? "true" : "false",
2995
- "data-disabled": disabled ? "true" : void 0,
2996
- "data-readonly": isReadonly ? "true" : void 0,
2997
- "data-label-placement": labelPlacement,
2998
- className: cn(className),
2999
- style: {
3000
- "--jumpy-cmp-checkbox-container-size": `${sizeValue(theme, JumpySize.large)}px`,
3001
- "--jumpy-cmp-checkbox-container-radius": `${radiusValue(theme, JumpyRadius.medium)}px`,
3002
- "--jumpy-cmp-checkbox-input-size": `${sizeValue(theme, JumpySize.smallXS)}px`,
3003
- "--jumpy-cmp-checkbox-input-radius": `${radiusValue(theme, JumpyRadius.small2XS)}px`,
3004
- "--jumpy-cmp-checkbox-label-gap-size": `${spacingValue(theme, JumpySpacing.smallXS)}px`,
3005
- "--jumpy-cmp-checkbox-label-color": stateTokens.text,
3006
- "--jumpy-cmp-checkbox-container-color": stateTokens.surface || activeDefault.surface,
3007
- "--jumpy-cmp-checkbox-container-bg": "transparent",
3008
- "--jumpy-cmp-checkbox-icon-fill": stateTokens.icon || activeDefault.icon || theme.color.textOnPrimary,
3009
- "--jumpy-cmp-checkbox-input-border-color": stateTokens.border || inactiveDefault.border,
3010
- "--jumpy-cmp-checkbox-hover-ring-color": "var(--jumpy-selectors-inactive-hover-hover-ring, var(--jumpy-color-feedback-info-surface))",
3011
- "--jumpy-cmp-checkbox-hover-border-color": "var(--jumpy-selectors-inactive-hover-border, var(--jumpy-color-focus-border))",
3012
- "--jumpy-cmp-checkbox-hover-surface-color": "var(--jumpy-selectors-active-hover-surface, var(--jumpy-color-surface-primary))",
3013
- "--jumpy-cmp-checkbox-focus-border-color": "var(--jumpy-selectors-inactive-focus-border, var(--jumpy-color-focus-border))",
3014
- "--jumpy-cmp-checkbox-focus-ring-color": "var(--jumpy-selectors-inactive-focus-focus-ring, var(--jumpy-color-focus-ring))",
3015
- "--jumpy-cmp-checkbox-active-focus-ring-color": "var(--jumpy-selectors-active-focus-focus-ring, var(--jumpy-color-focus-ring))",
3016
- fontFamily: theme.fontFamily.familyBase,
3017
- fontSize: labelLarge.fontSize,
3018
- lineHeight: labelLarge.lineHeight,
3019
- fontWeight: labelLarge.fontWeight,
3020
- letterSpacing: labelLarge.letterSpacing,
3021
- ...style || {}
3022
- },
3023
- children: [
3024
- /* @__PURE__ */ jsxs2("div", { "data-jumpy-slot": "checkbox-container", className: innerClasses.container?.className, style: innerClasses.container?.style, children: [
3025
- /* @__PURE__ */ jsx2(
3026
- "input",
3027
- {
3028
- ...props,
3029
- ref: (node) => {
3030
- inputRef.current = node;
3031
- if (typeof props.ref === "function") props.ref(node);
3032
- else if (props.ref) props.ref.current = node;
3033
- },
3034
- type: "checkbox",
3035
- "data-jumpy-slot": "checkbox-input",
3036
- className: innerClasses.input?.className,
3037
- checked: isChecked,
3038
- disabled,
3039
- readOnly: isReadonly,
3040
- "aria-readonly": isReadonly || void 0,
3041
- onChange: handleChange
3042
- }
3043
- ),
3044
- isChecked || indeterminate ? /* @__PURE__ */ jsx2("svg", { "data-jumpy-slot": "checkbox-icon", className: innerClasses.icons?.className, style: innerClasses.icons?.style, viewBox: "0 0 24 24", "aria-hidden": "true", focusable: "false", children: indeterminate ? /* @__PURE__ */ jsx2("path", { d: "M6 11h12v2H6z" }) : /* @__PURE__ */ jsx2("path", { d: "M9.4 16.6 4.8 12l1.4-1.4 3.2 3.2 8.4-8.4L19.2 6.8z" }) }) : null
3045
- ] }),
3046
- labelContent ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "checkbox-label", children: labelContent }) : null
3047
- ]
3048
- }
3049
- );
3050
- }
3051
- function JumpSwitch({ label, children, checked, defaultChecked = false, onCheckedChange, labelPlacement = "end", innerClasses = {}, className = "", disabled = false, readOnly = false, style, ...props }) {
3052
- const theme = useJumpyTheme();
3053
- const bodyMedium = textStyleValue(theme, JumpyTextStyle.bodyMedium);
3054
- const [uncontrolledChecked, setUncontrolledChecked] = useState2(Boolean(defaultChecked));
3055
- const isControlled = checked !== void 0;
3056
- const isChecked = Boolean(isControlled ? checked : uncontrolledChecked);
3057
- const isReadonly = readOnly && !disabled;
3058
- const selectorState = disabled ? "disabled" : isReadonly ? "readOnly" : "default";
3059
- const selectorTokens = isChecked ? theme.selectors.active[selectorState] : theme.selectors.inactive[selectorState];
3060
- const labelContent = children ?? label;
3061
- return /* @__PURE__ */ jsxs2(
3062
- "label",
3063
- {
3064
- "data-jumpy-component": "switch",
3065
- "data-checked": isChecked ? "true" : "false",
3066
- "data-disabled": disabled ? "true" : void 0,
3067
- "data-readonly": isReadonly ? "true" : void 0,
3068
- "data-label-placement": labelPlacement,
3069
- className: cn(className),
3070
- style: {
3071
- "--jumpy-cmp-switch-thumb-size": `${sizeValue(theme, JumpySize.small2XS)}px`,
3072
- "--jumpy-cmp-switch-thumb-size-checked": `${sizeValue(theme, JumpySize.small)}px`,
3073
- "--jumpy-cmp-switch-track-width": `${sizeValue(theme, JumpySize.large2XL)}px`,
3074
- "--jumpy-cmp-switch-track-bg": selectorTokens.surface,
3075
- "--jumpy-cmp-switch-track-border": selectorTokens.border,
3076
- "--jumpy-cmp-switch-thumb-bg": selectorTokens.handle || selectorTokens.icon || theme.color.textOnPrimary,
3077
- "--jumpy-cmp-switch-icon-fill": selectorTokens.surface,
3078
- "--jumpy-cmp-switch-label-color": selectorTokens.text,
3079
- "--jumpy-cmp-switch-hover-track-bg": `var(--jumpy-selectors-${isChecked ? "active" : "inactive"}-hover-surface)`,
3080
- "--jumpy-cmp-switch-hover-track-border": `var(--jumpy-selectors-${isChecked ? "active" : "inactive"}-hover-border)`,
3081
- "--jumpy-cmp-switch-hover-thumb-bg": `var(--jumpy-selectors-${isChecked ? "active" : "inactive"}-hover-handle)`,
3082
- "--jumpy-cmp-switch-focus-ring": `var(--jumpy-selectors-${isChecked ? "active" : "inactive"}-focus-focus-ring)`,
3083
- "--jumpy-cmp-switch-focus-track-bg": `var(--jumpy-selectors-${isChecked ? "active" : "inactive"}-focus-surface)`,
3084
- "--jumpy-cmp-switch-focus-track-border": `var(--jumpy-selectors-${isChecked ? "active" : "inactive"}-focus-border)`,
3085
- "--jumpy-cmp-switch-focus-thumb-bg": `var(--jumpy-selectors-${isChecked ? "active" : "inactive"}-focus-handle)`,
3086
- fontFamily: theme.fontFamily.familyBase,
3087
- fontSize: bodyMedium.fontSize,
3088
- lineHeight: bodyMedium.lineHeight,
3089
- fontWeight: bodyMedium.fontWeight,
3090
- ...style || {}
3091
- },
3092
- children: [
3093
- /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "switch-container", className: innerClasses.container?.className, style: innerClasses.container?.style, children: [
3094
- /* @__PURE__ */ jsx2(
3095
- "input",
3096
- {
3097
- ...props,
3098
- type: "checkbox",
3099
- role: "switch",
3100
- checked: isChecked,
3101
- disabled,
3102
- readOnly: isReadonly,
3103
- "aria-checked": isChecked,
3104
- "aria-readonly": isReadonly || void 0,
3105
- "data-jumpy-slot": "switch-input",
3106
- className: innerClasses.input?.className,
3107
- onChange: (event) => {
3108
- if (isReadonly) return;
3109
- if (!isControlled) setUncontrolledChecked(event.target.checked);
3110
- onCheckedChange?.(event.target.checked);
3111
- props.onChange?.(event);
3112
- }
3113
- }
3114
- ),
3115
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "switch-track", className: innerClasses.track?.className, style: innerClasses.track?.style, children: /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "switch-thumb", className: innerClasses.thumb?.className, style: innerClasses.thumb?.style, children: /* @__PURE__ */ jsx2("svg", { "data-jumpy-slot": "switch-icon", className: innerClasses.icon?.className, style: innerClasses.icon?.style, viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", focusable: "false", children: /* @__PURE__ */ jsx2("path", { d: "M6 10.25 8.6 12.85 14 7.45", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }) }) })
3116
- ] }),
3117
- labelContent ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "switch-label", children: labelContent }) : null
3118
- ]
3119
- }
3120
- );
3121
- }
3122
- function JumpRadioGroup({ name, value, defaultValue, onValueChange, options, className = "", disabled = false, readOnly = false, direction = "vertical", innerClasses = {}, ...props }) {
3123
- const theme = useJumpyTheme();
3124
- const labelLarge = textStyleValue(theme, JumpyTextStyle.labelLarge);
3125
- const isReadonly = readOnly && !disabled;
3126
- const generatedName = useId();
3127
- const validName = name || generatedName;
3128
- const [uncontrolledValue, setUncontrolledValue] = useState2(defaultValue ?? "");
3129
- const isControlled = value !== void 0;
3130
- const selectedValue = isControlled ? value : uncontrolledValue;
3131
- return /* @__PURE__ */ jsx2("div", { ...props, role: "radiogroup", "aria-readonly": isReadonly || void 0, "aria-orientation": direction === "horizontal" ? "horizontal" : "vertical", "data-jumpy-component": "radio-group", "data-direction": direction, className: cn(className), style: { display: "flex", flexDirection: direction === "horizontal" ? "row" : "column", gap: spacingValue(theme, JumpySpacing.medium), ...props.style || {} }, onChange: (event) => {
3132
- if (isReadonly || event.defaultPrevented) return;
3133
- const target = event.target;
3134
- if (target?.type === "radio" && target.name === validName) {
3135
- if (!isControlled) setUncontrolledValue(target.value);
3136
- onValueChange?.(target.value);
3137
- }
3138
- props.onChange?.(event);
3139
- }, children: options.map((option) => {
3140
- const optionDisabled = disabled || option.disabled;
3141
- const optionSelected = selectedValue === option.value;
3142
- const selectorState = optionDisabled ? "disabled" : isReadonly ? "readOnly" : "default";
3143
- const selectorTokens = optionSelected ? theme.selectors.active[selectorState] : theme.selectors.inactive[selectorState];
3144
- return /* @__PURE__ */ jsxs2(
3145
- "label",
3146
- {
3147
- "data-jumpy-component": "radio",
3148
- "data-checked": optionSelected ? "true" : "false",
3149
- "data-disabled": optionDisabled ? "true" : void 0,
3150
- "data-readonly": isReadonly ? "true" : void 0,
3151
- style: {
3152
- "--jumpy-cmp-radio-label-color": selectorTokens.text,
3153
- "--jumpy-cmp-radio-input-border-color": selectorTokens.border,
3154
- "--jumpy-cmp-radio-dot-color": optionSelected ? selectorTokens.surface : "transparent",
3155
- "--jumpy-cmp-radio-container-bg": "transparent",
3156
- "--jumpy-cmp-radio-hover-ring-color": `var(--jumpy-selectors-${optionSelected ? "active" : "inactive"}-hover-hover-ring)`,
3157
- "--jumpy-cmp-radio-hover-border-color": `var(--jumpy-selectors-${optionSelected ? "active" : "inactive"}-hover-border)`,
3158
- "--jumpy-cmp-radio-hover-dot-color": `var(--jumpy-selectors-${optionSelected ? "active" : "inactive"}-hover-surface)`,
3159
- "--jumpy-cmp-radio-focus-ring-color": `var(--jumpy-selectors-${optionSelected ? "active" : "inactive"}-focus-focus-ring)`,
3160
- "--jumpy-cmp-radio-focus-border-color": `var(--jumpy-selectors-${optionSelected ? "active" : "inactive"}-focus-border)`,
3161
- fontFamily: theme.fontFamily.familyBase,
3162
- fontSize: labelLarge.fontSize,
3163
- lineHeight: labelLarge.lineHeight,
3164
- fontWeight: labelLarge.fontWeight,
3165
- letterSpacing: labelLarge.letterSpacing
3166
- },
3167
- children: [
3168
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "radio-container", className: innerClasses.container?.className, style: innerClasses.container?.style, children: /* @__PURE__ */ jsx2("input", { type: "radio", name: validName, value: option.value, checked: optionSelected, disabled: optionDisabled, "aria-readonly": isReadonly || void 0, readOnly: isReadonly || void 0, "data-jumpy-slot": "radio-input", className: innerClasses.input?.className, style: innerClasses.input?.style, onChange: () => {
3169
- } }) }),
3170
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "radio-label", className: innerClasses.label?.className, style: innerClasses.label?.style, children: option.label })
3171
- ]
3172
- },
3173
- option.value
3174
- );
3175
- }) });
3176
- }
3177
- function toDateValue(value) {
3178
- if (value === null || value === void 0 || value === "") return null;
3179
- const date = value instanceof Date ? value : new Date(value);
3180
- return Number.isNaN(date.getTime()) ? null : date;
3181
- }
3182
- function sameDay(a, b) {
3183
- if (!a || !b) return false;
3184
- return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
3185
- }
3186
- function formatDateValue(value, format = "MM/dd/yyyy") {
3187
- const date = toDateValue(value);
3188
- if (!date) return "";
3189
- const parts = {
3190
- dd: String(date.getDate()).padStart(2, "0"),
3191
- MM: String(date.getMonth() + 1).padStart(2, "0"),
3192
- yyyy: String(date.getFullYear())
3193
- };
3194
- return format.replace(/yyyy|MM|dd/g, (token) => parts[token]);
3195
- }
3196
- function formatTimeValue(value, format = "HH:mm") {
3197
- const date = toDateValue(value);
3198
- if (!date) return "";
3199
- const hours24 = date.getHours();
3200
- const minutes = String(date.getMinutes()).padStart(2, "0");
3201
- const period = hours24 >= 12 ? "PM" : "AM";
3202
- const hours12 = hours24 % 12 || 12;
3203
- return format.includes("aa") ? format.replace("hh", String(hours12).padStart(2, "0")).replace("mm", minutes).replace("aa", period) : format.replace("HH", String(hours24).padStart(2, "0")).replace("mm", minutes);
3204
- }
3205
- function parseDateValue(text, format = "MM/dd/yyyy") {
3206
- const value = text.trim();
3207
- if (!value) return null;
3208
- const activeFormat = Array.isArray(format) ? format[0] : format;
3209
- const escaped = activeFormat.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
3210
- const pattern = escaped.replace("dd", "(?<dd>\\d{1,2})").replace("MM", "(?<MM>\\d{1,2})").replace("yyyy", "(?<yyyy>\\d{4})");
3211
- const match = value.match(new RegExp(`^${pattern}$`));
3212
- if (!match?.groups) return null;
3213
- const day = Number(match.groups.dd);
3214
- const month = Number(match.groups.MM) - 1;
3215
- const year = Number(match.groups.yyyy);
3216
- const date = new Date(year, month, day);
3217
- return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day ? date : null;
3218
- }
3219
- function parseTimeValue(text, format = "HH:mm") {
3220
- const value = text.trim();
3221
- if (!value) return null;
3222
- const usesPeriod = format.includes("aa");
3223
- const match = usesPeriod ? value.match(/^(\d{1,2}):(\d{2})\s*(AM|PM)$/i) : value.match(/^(\d{1,2}):(\d{2})$/);
3224
- if (!match) return null;
3225
- let hour = Number(match[1]);
3226
- const minute = Number(match[2]);
3227
- if (usesPeriod) {
3228
- if (hour < 1 || hour > 12) return null;
3229
- const period = match[3].toUpperCase();
3230
- hour = period === "PM" ? hour % 12 + 12 : hour % 12;
3231
- }
3232
- if (hour > 23 || minute > 59) return null;
3233
- const date = /* @__PURE__ */ new Date();
3234
- date.setHours(hour, minute, 0, 0);
3235
- return date;
3236
- }
3237
- function coerceDateOutput(date, sample) {
3238
- return typeof sample === "number" ? date?.getTime() ?? null : date;
3239
- }
3240
- function PickerTrailingIcon({ type, open }) {
3241
- if (type === "time") {
3242
- return /* @__PURE__ */ jsxs2("svg", { "data-jumpy-stroke-icon": "true", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", style: { display: "block", fill: "none" }, children: [
3243
- /* @__PURE__ */ jsx2("path", { d: "M8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12Z", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
3244
- /* @__PURE__ */ jsx2("path", { d: "M8 4.75V8l2.25 1.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
3245
- ] });
3246
- }
3247
- return /* @__PURE__ */ jsxs2("svg", { width: "16", height: "16", viewBox: "0 0 16 16", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", style: { display: "block" }, children: [
3248
- /* @__PURE__ */ jsx2("path", { d: "M4.25 2.5v2M11.75 2.5v2M3.25 6.25h9.5M3.75 3.75h8.5c.69 0 1.25.56 1.25 1.25v7.25c0 .69-.56 1.25-1.25 1.25h-8.5c-.69 0-1.25-.56-1.25-1.25V5c0-.69.56-1.25 1.25-1.25Z", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }),
3249
- open ? /* @__PURE__ */ jsx2("path", { d: "M6 10.5 7.25 11.75 10.25 8.75", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) : null
3250
- ] });
3251
- }
3252
- function getMonthDays(viewDate) {
3253
- const year = viewDate.getFullYear();
3254
- const month = viewDate.getMonth();
3255
- const firstDay = new Date(year, month, 1);
3256
- const leading = (firstDay.getDay() + 6) % 7;
3257
- const start = new Date(year, month, 1 - leading);
3258
- return Array.from({ length: 42 }, (_, index) => new Date(start.getFullYear(), start.getMonth(), start.getDate() + index));
3259
- }
3260
- function dateIsUnavailable(date, { minDate, maxDate, disabledDates = [], isDateDisabled }) {
3261
- const min = toDateValue(minDate);
3262
- const max = toDateValue(maxDate);
3263
- if (min && date < new Date(min.getFullYear(), min.getMonth(), min.getDate())) return true;
3264
- if (max && date > new Date(max.getFullYear(), max.getMonth(), max.getDate())) return true;
3265
- if (disabledDates.some((disabledDate) => sameDay(date, toDateValue(disabledDate)))) return true;
3266
- return Boolean(isDateDisabled?.(date));
3267
- }
3268
- function JumpDatePicker({ label = "Date", hint, value, defaultValue = null, onChange, open, onOpenChange, format = "MM/dd/yyyy", minDate, maxDate, disabledDates = [], isDateDisabled, labels = {}, disabled = false, readOnly = false, className = "", status = "regular", error = false, hideClearIcon = false, onClear, ...props }) {
3269
- const theme = useJumpyTheme();
3270
- const [internalValue, setInternalValue] = useState2(defaultValue);
3271
- const [internalOpen, setInternalOpen] = useState2(false);
3272
- const isControlled = value !== void 0;
3273
- const selectedDate = toDateValue(isControlled ? value : internalValue);
3274
- const selectedTime = selectedDate?.getTime() ?? null;
3275
- const [viewDate, setViewDate] = useState2(selectedDate || /* @__PURE__ */ new Date());
3276
- const isOpen = open ?? internalOpen;
3277
- const resolvedFormat = Array.isArray(format) ? format[0] : format;
3278
- const inputValue = formatDateValue(selectedDate, resolvedFormat);
3279
- const [draft, setDraft] = useState2(inputValue);
3280
- const typedValue = useRef2(void 0);
3281
- useEffect2(() => {
3282
- if (typedValue.current !== selectedTime) setDraft(inputValue);
3283
- typedValue.current = void 0;
3284
- if (selectedTime !== null) setViewDate(new Date(selectedTime));
3285
- }, [selectedTime, inputValue, resolvedFormat]);
3286
- const weekdays = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
3287
- const dayCells = getMonthDays(viewDate);
3288
- const { refs, floatingStyles } = useFloating({
3289
- open: isOpen,
3290
- onOpenChange: setOpen,
3291
- placement: "bottom-start",
3292
- strategy: "fixed",
3293
- whileElementsMounted: autoUpdate,
3294
- middleware: [offset(spacingValue(theme, JumpySpacing.smallXS)), flip({ padding: spacingValue(theme, JumpySpacing.medium) })]
3295
- });
3296
- function setOpen(next) {
3297
- setInternalOpen(next);
3298
- onOpenChange?.(next);
3299
- }
3300
- function commit(date) {
3301
- if (date && dateIsUnavailable(date, { minDate, maxDate, disabledDates, isDateDisabled })) return;
3302
- const next = coerceDateOutput(date, value ?? defaultValue);
3303
- typedValue.current = void 0;
3304
- if (!isControlled) setInternalValue(next);
3305
- setDraft(isControlled ? inputValue : formatDateValue(date, resolvedFormat));
3306
- onChange?.(next);
3307
- setOpen(false);
3308
- }
3309
- const trailing = readOnly ? void 0 : /* @__PURE__ */ jsx2(PickerTrailingIcon, { type: "date", open: isOpen });
3310
- return /* @__PURE__ */ jsxs2("div", { ref: refs.setReference, "data-jumpy-component": "date-picker", style: { position: "relative", width: "100%", maxWidth: "100%" }, children: [
3311
- /* @__PURE__ */ jsx2(JumpField, { label, hint, status, error, hideClearIcon, onClear, className, trailing, children: /* @__PURE__ */ jsx2(
3312
- JumpInput,
3313
- {
3314
- ...props,
3315
- role: "combobox",
3316
- "aria-expanded": isOpen,
3317
- "aria-haspopup": "dialog",
3318
- readOnly,
3319
- disabled,
3320
- "data-has-value": selectedTime !== null,
3321
- value: draft,
3322
- placeholder: props.placeholder || (Array.isArray(format) ? format[0] : format),
3323
- autoComplete: "off",
3324
- inputMode: "numeric",
3325
- onChange: (event) => {
3326
- const text = event.target.value;
3327
- setDraft(text);
3328
- const parsedDate = parseDateValue(text, format);
3329
- typedValue.current = void 0;
3330
- if (!text.trim() || parsedDate && !dateIsUnavailable(parsedDate, { minDate, maxDate, disabledDates, isDateDisabled })) {
3331
- const next = coerceDateOutput(parsedDate, value ?? defaultValue);
3332
- const nextTime = parsedDate?.getTime() ?? null;
3333
- if (nextTime !== selectedTime) typedValue.current = nextTime;
3334
- if (!isControlled) setInternalValue(next);
3335
- onChange?.(next);
3336
- }
3337
- },
3338
- onBlur: (event) => {
3339
- typedValue.current = void 0;
3340
- setDraft(inputValue);
3341
- props.onBlur?.(event);
3342
- },
3343
- onClick: (event) => {
3344
- if (!readOnly) setOpen(!isOpen);
3345
- props.onClick?.(event);
3346
- },
3347
- onKeyDown: (event) => {
3348
- if ((event.key === "ArrowDown" || event.key === "Enter") && !readOnly) {
3349
- event.preventDefault();
3350
- setOpen(true);
3351
- }
3352
- if (event.key === "Escape") setOpen(false);
3353
- props.onKeyDown?.(event);
3354
- }
3355
- }
3356
- ) }),
3357
- isOpen && !disabled && !readOnly ? /* @__PURE__ */ jsx2(JumpyPortal, { children: /* @__PURE__ */ jsxs2("div", { ref: refs.setFloating, role: "dialog", "aria-label": label, style: { ...floatingStyles, zIndex: JUMPY_POPUP_Z_INDEX, width: sizeValue(theme, JumpySize.large8XL) * 2.5, maxWidth: "calc(100vw - 32px)", overflow: "visible", borderRadius: radiusValue(theme, JumpyRadius.smallXS), backgroundColor: "var(--jumpy-card-inactive-default-surface, var(--jumpy-color-surface-card))", color: "var(--jumpy-card-inactive-default-text, var(--jumpy-color-text-primary))", boxShadow: theme.shadow.positiveMedium, padding: `${spacingValue(theme, JumpySpacing.small3XS)}px 0` }, children: [
3358
- /* @__PURE__ */ jsxs2("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between", gap: spacingValue(theme, JumpySpacing.medium), padding: spacingValue(theme, JumpySpacing.small3XS) }, children: [
3359
- /* @__PURE__ */ jsx2(JumpIconButton, { variant: "borderless", "aria-label": "Previous", onClick: () => setViewDate(new Date(viewDate.getFullYear(), viewDate.getMonth() - 1, 1)), children: "\u2039" }),
3360
- /* @__PURE__ */ jsx2("strong", { style: { fontFamily: theme.fontFamily.familyBase, color: "inherit" }, children: viewDate.toLocaleDateString(void 0, { month: "long", year: "numeric" }) }),
3361
- /* @__PURE__ */ jsx2(JumpIconButton, { variant: "borderless", "aria-label": "Next", onClick: () => setViewDate(new Date(viewDate.getFullYear(), viewDate.getMonth() + 1, 1)), children: "\u203A" })
3362
- ] }),
3363
- /* @__PURE__ */ jsxs2("div", { style: { display: "grid", gridTemplateColumns: "repeat(7, 1fr)", gap: spacingValue(theme, JumpySpacing.small3XS), padding: `0 ${spacingValue(theme, JumpySpacing.small3XS)}px` }, children: [
3364
- weekdays.map((weekday) => /* @__PURE__ */ jsx2("span", { style: { color: theme.color.textSecondary, textAlign: "center", fontSize: textStyleValue(theme, JumpyTextStyle.labelSmall).fontSize, fontWeight: theme.fontFamily.labelSmall.fontWeight }, children: weekday }, weekday)),
3365
- dayCells.map((date) => {
3366
- const outside = date.getMonth() !== viewDate.getMonth();
3367
- const selected = sameDay(date, selectedDate);
3368
- const unavailable = dateIsUnavailable(date, { minDate, maxDate, disabledDates, isDateDisabled });
3369
- return /* @__PURE__ */ jsx2("button", { type: "button", disabled: unavailable, onClick: () => commit(date), style: { minHeight: sizeValue(theme, JumpySize.large), border: 0, borderRadius: radiusValue(theme, JumpyRadius.small), backgroundColor: selected ? "var(--jumpy-interactive-active-regular-default-surface, var(--jumpy-color-surface-primary))" : "transparent", color: selected ? "var(--jumpy-interactive-active-regular-default-text, var(--jumpy-color-text-on-primary))" : outside ? "var(--jumpy-card-inactive-default-subtext, var(--jumpy-color-text-secondary))" : "var(--jumpy-card-inactive-default-text, var(--jumpy-color-text-primary))", opacity: unavailable ? opacityValue(theme, JumpyOpacity.medium) : outside ? opacityValue(theme, JumpyOpacity.strong) : opacityValue(theme, JumpyOpacity.solid), cursor: unavailable ? "not-allowed" : "pointer", fontFamily: theme.fontFamily.familyBase }, children: date.getDate() }, date.toISOString());
3370
- })
3371
- ] }),
3372
- /* @__PURE__ */ jsxs2("div", { style: { display: "flex", justifyContent: "flex-end", gap: spacingValue(theme, JumpySpacing.smallXS), padding: spacingValue(theme, JumpySpacing.large) }, children: [
3373
- /* @__PURE__ */ jsx2(JumpButton, { variant: "tertiary", onClick: () => setOpen(false), children: labels.cancelButton || "Cancel" }),
3374
- /* @__PURE__ */ jsx2(JumpButton, { variant: "borderless", onClick: () => commit(/* @__PURE__ */ new Date()), children: "Today" })
3375
- ] })
3376
- ] }) }) : null
3377
- ] });
3378
- }
3379
- function JumpTimePicker({ label = "Time", hint, value, defaultValue = null, onChange, open, onOpenChange, format, twentyFourHours = true, labels = {}, disabled = false, readOnly = false, className = "", status = "regular", error = false, hideClearIcon = false, onClear, ...props }) {
3380
- const theme = useJumpyTheme();
3381
- const resolvedFormat = format || (twentyFourHours ? "HH:mm" : "hh:mm aa");
3382
- const [internalValue, setInternalValue] = useState2(defaultValue);
3383
- const [internalOpen, setInternalOpen] = useState2(false);
3384
- const isControlled = value !== void 0;
3385
- const selectedDate = toDateValue(isControlled ? value : internalValue);
3386
- const selectedTime = selectedDate?.getTime() ?? null;
3387
- const inputValue = formatTimeValue(selectedDate, resolvedFormat);
3388
- const [draft, setDraft] = useState2(inputValue);
3389
- const typedValue = useRef2(void 0);
3390
- useEffect2(() => {
3391
- if (typedValue.current !== selectedTime) setDraft(inputValue);
3392
- typedValue.current = void 0;
3393
- }, [selectedTime, inputValue, resolvedFormat]);
3394
- const isOpen = open ?? internalOpen;
3395
- const hours = Array.from({ length: twentyFourHours ? 24 : 12 }, (_, index) => String(twentyFourHours ? index : index + 1).padStart(2, "0"));
3396
- const minutes = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, "0"));
3397
- const currentHour = selectedDate ? selectedDate.getHours() : 0;
3398
- const currentMinute = selectedDate ? selectedDate.getMinutes() : 0;
3399
- const displayHour = twentyFourHours ? currentHour : currentHour % 12 || 12;
3400
- const currentPeriod = currentHour >= 12 ? "PM" : "AM";
3401
- const { refs, floatingStyles } = useFloating({
3402
- open: isOpen,
3403
- onOpenChange: setOpen,
3404
- placement: "bottom-start",
3405
- strategy: "fixed",
3406
- whileElementsMounted: autoUpdate,
3407
- middleware: [offset(spacingValue(theme, JumpySpacing.smallXS)), flip({ padding: spacingValue(theme, JumpySpacing.medium) })]
3408
- });
3409
- function setOpen(next) {
3410
- setInternalOpen(next);
3411
- onOpenChange?.(next);
3412
- }
3413
- function commit(part, rawValue) {
3414
- const next = selectedDate ? new Date(selectedDate) : /* @__PURE__ */ new Date();
3415
- if (part === "hour") {
3416
- const hour = Number(rawValue);
3417
- next.setHours(twentyFourHours ? hour : currentPeriod === "PM" ? hour % 12 + 12 : hour % 12);
3418
- }
3419
- if (part === "minute") next.setMinutes(Number(rawValue));
3420
- if (part === "period") {
3421
- const base = next.getHours() % 12;
3422
- next.setHours(rawValue === "PM" ? base + 12 : base);
3423
- }
3424
- next.setSeconds(0, 0);
3425
- const output = coerceDateOutput(next, value ?? defaultValue);
3426
- typedValue.current = void 0;
3427
- if (!isControlled) setInternalValue(output);
3428
- setDraft(isControlled ? inputValue : formatTimeValue(next, resolvedFormat));
3429
- onChange?.(output);
3430
- }
3431
- const trailing = readOnly ? void 0 : /* @__PURE__ */ jsx2(PickerTrailingIcon, { type: "time", open: isOpen });
3432
- return /* @__PURE__ */ jsxs2("div", { ref: refs.setReference, "data-jumpy-component": "time-picker", style: { position: "relative", width: "100%", maxWidth: "100%" }, children: [
3433
- /* @__PURE__ */ jsx2(JumpField, { label, hint, status, error, hideClearIcon, onClear, className, trailing, children: /* @__PURE__ */ jsx2(
3434
- JumpInput,
3435
- {
3436
- ...props,
3437
- role: "combobox",
3438
- "aria-expanded": isOpen,
3439
- "aria-haspopup": "dialog",
3440
- readOnly,
3441
- disabled,
3442
- "data-has-value": selectedTime !== null,
3443
- value: draft,
3444
- placeholder: props.placeholder || resolvedFormat,
3445
- autoComplete: "off",
3446
- inputMode: resolvedFormat.includes("aa") ? "text" : "numeric",
3447
- onChange: (event) => {
3448
- const text = event.target.value;
3449
- setDraft(text);
3450
- const parsedDate = parseTimeValue(text, resolvedFormat);
3451
- typedValue.current = void 0;
3452
- if (!text.trim() || parsedDate) {
3453
- const output = coerceDateOutput(parsedDate, value ?? defaultValue);
3454
- const nextTime = parsedDate?.getTime() ?? null;
3455
- if (nextTime !== selectedTime) typedValue.current = nextTime;
3456
- if (!isControlled) setInternalValue(output);
3457
- onChange?.(output);
3458
- }
3459
- },
3460
- onBlur: (event) => {
3461
- typedValue.current = void 0;
3462
- setDraft(inputValue);
3463
- props.onBlur?.(event);
3464
- },
3465
- onClick: (event) => {
3466
- if (!readOnly) setOpen(!isOpen);
3467
- props.onClick?.(event);
3468
- },
3469
- onKeyDown: (event) => {
3470
- if ((event.key === "ArrowDown" || event.key === "Enter") && !readOnly) {
3471
- event.preventDefault();
3472
- setOpen(true);
3473
- }
3474
- if (event.key === "Escape") setOpen(false);
3475
- props.onKeyDown?.(event);
3476
- }
3477
- }
3478
- ) }),
3479
- isOpen && !disabled && !readOnly ? /* @__PURE__ */ jsx2(JumpyPortal, { children: /* @__PURE__ */ jsxs2("div", { ref: refs.setFloating, role: "dialog", "aria-label": label, style: { ...floatingStyles, zIndex: JUMPY_POPUP_Z_INDEX, overflow: "visible", borderRadius: radiusValue(theme, JumpyRadius.smallXS), backgroundColor: `var(--jumpy-non-interactive-background-alternative, var(--jumpy-color-non-interactive-background-alternative, ${theme.color.surfaceCard}))`, color: "var(--jumpy-card-inactive-default-text, var(--jumpy-color-text-primary))", boxShadow: theme.shadow.positiveMedium, padding: `${spacingValue(theme, JumpySpacing.small3XS)}px 0`, minWidth: 260 }, children: [
3480
- /* @__PURE__ */ jsxs2("div", { style: { display: "flex", position: "relative", justifyContent: "center", alignItems: "center", gap: spacingValue(theme, JumpySpacing.small), padding: `${spacingValue(theme, JumpySpacing.zero)}px ${spacingValue(theme, JumpySpacing.zero)}px`, overflow: "hidden" }, children: [
3481
- /* @__PURE__ */ jsx2("div", { "aria-hidden": "true", style: { position: "absolute", left: 0, right: 0, top: "50%", height: sizeValue(theme, JumpySize.medium), transform: "translateY(-50%)", backgroundColor: "var(--jumpy-interactive-active-regular-default-surface)", pointerEvents: "none" } }),
3482
- /* @__PURE__ */ jsx2(TimeColumn, { label: "Hour", values: hours, selected: String(displayHour).padStart(2, "0"), onSelect: (next) => commit("hour", next), theme }),
3483
- /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", style: { zIndex: 1, display: "flex", alignItems: "center", justifyContent: "center", transform: "translateY(-0.1em)", width: sizeValue(theme, JumpySize.smallXS), height: sizeValue(theme, JumpySize.large), padding: `${spacingValue(theme, JumpySpacing.small3XS)}px 0`, color: "var(--jumpy-interactive-active-regular-default-text)", fontFamily: theme.fontFamily.familyBase, fontSize: textStyleValue(theme, JumpyTextStyle.bodyLargeEmphasized).fontSize, fontWeight: textStyleValue(theme, JumpyTextStyle.bodyLargeEmphasized).fontWeight }, children: ":" }),
3484
- /* @__PURE__ */ jsx2(TimeColumn, { label: "Minute", values: minutes, selected: String(currentMinute).padStart(2, "0"), onSelect: (next) => commit("minute", next), theme }),
3485
- !twentyFourHours ? /* @__PURE__ */ jsx2(TimeColumn, { label: "Period", values: ["AM", "PM"], selected: currentPeriod, onSelect: (next) => commit("period", next), theme }) : null
3486
- ] }),
3487
- /* @__PURE__ */ jsxs2("div", { style: { display: "flex", justifyContent: "space-between", gap: spacingValue(theme, JumpySpacing.smallXS), padding: spacingValue(theme, JumpySpacing.large) }, children: [
3488
- /* @__PURE__ */ jsx2(JumpButton, { variant: "tertiary", onClick: () => setOpen(false), children: labels.cancelButton || "Cancel" }),
3489
- /* @__PURE__ */ jsx2(JumpButton, { onClick: () => setOpen(false), children: labels.applyButton || "Apply" })
3490
- ] })
3491
- ] }) }) : null
3492
- ] });
3493
- }
3494
- function TimeColumn({ label, values, selected, onSelect, theme }) {
3495
- const selectedIndex = Math.max(0, values.indexOf(selected));
3496
- const wraps = values.length >= 5;
3497
- const visibleValues = Array.from({ length: 5 }, (_, offsetIndex) => {
3498
- const index = selectedIndex + offsetIndex - 2;
3499
- if (wraps) return values[(index + values.length) % values.length];
3500
- return index >= 0 && index < values.length ? values[index] : null;
3501
- });
3502
- const rowHeight = sizeValue(theme, JumpySize.large) + spacingValue(theme, JumpySpacing.small3XS) * 2;
3503
- const bodyMedium = textStyleValue(theme, JumpyTextStyle.bodyMedium);
3504
- const bodyLargeEmphasized = textStyleValue(theme, JumpyTextStyle.bodyLargeEmphasized);
3505
- return /* @__PURE__ */ jsx2("div", { "aria-label": label, style: { position: "relative", zIndex: 1, display: "flex", flexDirection: "column", overflow: "hidden", padding: `0 ${spacingValue(theme, JumpySpacing.small3XS)}px`, margin: `0 ${-spacingValue(theme, JumpySpacing.small3XS)}px`, height: rowHeight * 5 }, children: /* @__PURE__ */ jsx2("div", { style: { display: "flex", flexDirection: "column" }, children: visibleValues.map((value, offsetIndex) => {
3506
- if (value === null) return /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", style: { flex: `0 0 ${rowHeight}px` } }, `${label}-empty-${offsetIndex}`);
3507
- const active = value === selected;
3508
- return /* @__PURE__ */ jsx2("button", { type: "button", "data-jumpy-component": "time-picker-wheel-button", onClick: () => onSelect(value), "data-selected": active ? "true" : "false", style: { border: 0, width: sizeValue(theme, JumpySize.large), height: rowHeight, flex: `0 0 ${rowHeight}px`, backgroundColor: "transparent", color: active ? "var(--jumpy-interactive-active-regular-default-text, var(--jumpy-color-text-on-primary))" : "var(--jumpy-interactive-inactive-regular-default-text, var(--jumpy-color-text-primary))", padding: `${spacingValue(theme, JumpySpacing.small3XS)}px 0`, cursor: "pointer", fontFamily: theme.fontFamily.familyBase, fontSize: active ? bodyLargeEmphasized.fontSize : bodyMedium.fontSize, lineHeight: active ? bodyLargeEmphasized.lineHeight : bodyMedium.lineHeight, fontWeight: active ? bodyLargeEmphasized.fontWeight : bodyMedium.fontWeight }, children: value }, `${label}-${value}`);
3509
- }) }) });
3510
- }
3511
- function flattenDropdownItems(items) {
3512
- return items.flatMap((item) => [item, ...flattenDropdownItems(item.children || [])]);
3513
- }
3514
- function JumpDropdown({ label, hint, value, defaultValue = [], onChange, open, onOpenChange, items = [], placeholder, popupMinWidth = 0, disabled = false, readOnly = false, multiple = false, searchable = false, renderTrigger, renderItem, inputRef, className = "", status = "regular", error = false, hideClearIcon = false, onClear, ...props }) {
3515
- const theme = useJumpyTheme();
3516
- const fieldContext = useContext(JumpyFieldContext);
3517
- const generatedId = useId();
3518
- const triggerId = props.id || `jumpy-dropdown-${generatedId}`;
3519
- const [internalValue, setInternalValue] = useState2(defaultValue);
3520
- const [internalOpen, setInternalOpen] = useState2(false);
3521
- const [searchValue, setSearchValue] = useState2("");
3522
- const [focusedIndex, setFocusedIndex] = useState2(-1);
3523
- const dropdownRef = useRef2(null);
3524
- const triggerRef = useRef2(null);
3525
- const selectedValues = value ?? internalValue;
3526
- const isOpen = open ?? internalOpen;
3527
- const flattenedItems = flattenDropdownItems(items);
3528
- const visibleItems = searchValue ? flattenedItems.filter((item) => item.label.toLowerCase().includes(searchValue.toLowerCase())) : flattenedItems;
3529
- const enabledVisibleItems = visibleItems.filter((item) => !item.disabled);
3530
- const selectedItems = flattenedItems.filter((item) => selectedValues.includes(item.value));
3531
- const displayText = selectedItems.map((item) => item.label).join(", ");
3532
- const dropdownOffset = spacingValue(theme, JumpySpacing.small3XS);
3533
- const dropdownPadding = spacingValue(theme, JumpySpacing.medium);
3534
- const dropdownMinHeight = sizeValue(theme, JumpySize.large2XL);
3535
- const dropdownMaxHeight = sizeValue(theme, JumpySize.large8XL) * 2;
3536
- const { refs, floatingStyles } = useFloating({
3537
- open: isOpen,
3538
- onOpenChange: setOpen,
3539
- placement: "bottom-start",
3540
- strategy: "fixed",
3541
- whileElementsMounted: autoUpdate,
3542
- middleware: [
3543
- offset(dropdownOffset),
3544
- flip({ padding: dropdownPadding }),
3545
- shift({ padding: dropdownPadding }),
3546
- size({
3547
- padding: dropdownPadding,
3548
- apply({ rects, availableWidth, availableHeight, elements }) {
3549
- Object.assign(elements.floating.style, {
3550
- width: `${Math.max(0, Math.min(Math.max(rects.reference.width, popupMinWidth), availableWidth))}px`,
3551
- maxHeight: `${Math.max(dropdownMinHeight, Math.min(dropdownMaxHeight, availableHeight))}px`
3552
- });
3553
- }
3554
- })
3555
- ]
3556
- });
3557
- const triggerStyle = fieldContext && !label && !hint ? {
3558
- paddingRight: sizeValue(theme, JumpySize.small2XS) + spacingValue(theme, JumpySpacing.medium),
3559
- ...props.style || {}
3560
- } : props.style;
3561
- const triggerInputStyle = {
3562
- ...triggerStyle || {},
3563
- caretColor: "transparent"
3564
- };
3565
- function setOpen(next) {
3566
- setInternalOpen(next);
3567
- onOpenChange?.(next);
3568
- if (!next) {
3569
- setSearchValue("");
3570
- setFocusedIndex(-1);
3571
- } else if (enabledVisibleItems.length > 0 && focusedIndex < 0) {
3572
- setFocusedIndex(visibleItems.findIndex((item) => !item.disabled));
3573
- }
3574
- }
3575
- function commit(nextValues) {
3576
- setInternalValue(nextValues);
3577
- onChange?.(nextValues);
3578
- if (!multiple) {
3579
- setOpen(false);
3580
- triggerRef.current?.focus();
3581
- }
3582
- }
3583
- useEffect2(() => {
3584
- if (!isOpen) return void 0;
3585
- function dismissOutside(event) {
3586
- if (!dropdownRef.current?.contains(event.target) && !refs.floating.current?.contains(event.target)) setOpen(false);
3587
- }
3588
- document.addEventListener("pointerdown", dismissOutside);
3589
- document.addEventListener("focusin", dismissOutside);
3590
- return () => {
3591
- document.removeEventListener("pointerdown", dismissOutside);
3592
- document.removeEventListener("focusin", dismissOutside);
3593
- };
3594
- });
3595
- function selectItem(item) {
3596
- if (!item || item.disabled) return;
3597
- if (multiple) {
3598
- commit(selectedValues.includes(item.value) ? selectedValues.filter((v) => v !== item.value) : [...selectedValues, item.value]);
3599
- return;
3600
- }
3601
- commit([item.value]);
3602
- }
3603
- function moveFocus(direction) {
3604
- if (enabledVisibleItems.length === 0) return;
3605
- const currentEnabledIndex = enabledVisibleItems.findIndex((item) => item.value === visibleItems[focusedIndex]?.value);
3606
- const nextEnabledIndex = direction === "start" ? 0 : direction === "end" ? enabledVisibleItems.length - 1 : (currentEnabledIndex + direction + enabledVisibleItems.length) % enabledVisibleItems.length;
3607
- setFocusedIndex(visibleItems.findIndex((item) => item.value === enabledVisibleItems[nextEnabledIndex].value));
3608
- }
3609
- const triggerInput = /* @__PURE__ */ jsx2(
3610
- JumpInput,
3611
- {
3612
- ...props,
3613
- ref: (node) => {
3614
- triggerRef.current = node;
3615
- refs.setReference(node?.closest('[data-jumpy-component="field-control"]') || node);
3616
- if (typeof inputRef === "function") inputRef(node);
3617
- else if (inputRef) inputRef.current = node;
3618
- },
3619
- id: triggerId,
3620
- style: triggerInputStyle,
3621
- "data-jumpy-dropdown-trigger": "true",
3622
- onChange: () => {
3623
- },
3624
- "data-has-value": Boolean(displayText),
3625
- role: "combobox",
3626
- "aria-expanded": isOpen,
3627
- "aria-haspopup": "listbox",
3628
- "aria-controls": isOpen ? `${triggerId}-listbox` : void 0,
3629
- "aria-activedescendant": isOpen && focusedIndex >= 0 ? `${triggerId}-option-${focusedIndex}` : void 0,
3630
- readOnly,
3631
- disabled,
3632
- value: displayText,
3633
- placeholder: displayText ? void 0 : placeholder,
3634
- autoComplete: "off",
3635
- spellCheck: false,
3636
- inputMode: "none",
3637
- onClick: (event) => {
3638
- if (!readOnly) setOpen(!isOpen);
3639
- props.onClick?.(event);
3640
- },
3641
- onBlur: (event) => {
3642
- props.onBlur?.(event);
3643
- },
3644
- onKeyDown: (event) => {
3645
- if (event.key !== "Tab" && event.key !== "Escape") event.preventDefault();
3646
- if (readOnly) {
3647
- props.onKeyDown?.(event);
3648
- return;
3649
- }
3650
- if (event.key === "ArrowDown" || event.key === "Enter" || event.key === " ") {
3651
- setOpen(true);
3652
- }
3653
- if (event.key === "ArrowDown") moveFocus(1);
3654
- if (event.key === "ArrowUp") moveFocus(-1);
3655
- if (event.key === "Home") moveFocus("start");
3656
- if (event.key === "End") moveFocus("end");
3657
- if ((event.key === "Enter" || event.key === " ") && isOpen) selectItem(visibleItems[focusedIndex]);
3658
- props.onKeyDown?.(event);
3659
- },
3660
- onPaste: (event) => event.preventDefault()
3661
- }
3662
- );
3663
- const trailing = readOnly ? void 0 : /* @__PURE__ */ jsx2("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", style: { display: "block", fontSize: sizeValue(theme, JumpySize.small) }, children: /* @__PURE__ */ jsx2("path", { fillRule: "evenodd", d: isOpen ? "m16.59 15.705 1.41-1.41-6-6-6 6 1.41 1.41 4.59-4.58z" : "M7.41 8.295 6 9.705l6 6 6-6-1.41-1.41-4.59 4.58z", clipRule: "evenodd", fill: "currentColor" }) });
3664
- const trigger = renderTrigger ? renderTrigger(selectedValues, isOpen) : fieldContext && !label && !hint ? /* @__PURE__ */ jsxs2(Fragment, { children: [
3665
- triggerInput,
3666
- /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", style: { pointerEvents: "none", position: "absolute", right: spacingValue(theme, JumpySpacing.medium), top: "50%", transform: "translateY(-50%)", color: theme.color.textSecondary, display: "inline-flex", alignItems: "center", justifyContent: "center", lineHeight: 1 }, children: trailing })
3667
- ] }) : /* @__PURE__ */ jsx2(JumpField, { label, hint, status, error, hideClearIcon, onClear: () => {
3668
- commit([]);
3669
- setSearchValue("");
3670
- onClear?.();
3671
- }, className, trailing, children: triggerInput });
3672
- const listbox = isOpen && !disabled ? /* @__PURE__ */ jsx2(JumpyPortal, { children: /* @__PURE__ */ jsxs2(
3673
- "div",
3674
- {
3675
- ref: refs.setFloating,
3676
- id: `${triggerId}-listbox`,
3677
- role: "listbox",
3678
- "aria-multiselectable": multiple || void 0,
3679
- "data-jumpy-component": "dropdown-popover",
3680
- style: {
3681
- ...floatingStyles,
3682
- zIndex: JUMPY_POPUP_Z_INDEX,
3683
- overflowX: "hidden",
3684
- overflowY: "auto",
3685
- borderRadius: radiusValue(theme, JumpyRadius.large),
3686
- backgroundColor: `var(--jumpy-non-interactive-background-alternative, var(--jumpy-color-non-interactive-background-alternative, ${theme.color.surfaceCard}))`,
3687
- boxShadow: theme.shadow.positiveMedium,
3688
- padding: `${spacingValue(theme, JumpySpacing.small3XS)}px 0`
3689
- },
3690
- children: [
3691
- searchable ? /* @__PURE__ */ jsx2("div", { style: { margin: `${spacingValue(theme, JumpySpacing.small3XS)}px ${spacingValue(theme, JumpySpacing.smallXS)}px` }, children: /* @__PURE__ */ jsx2(JumpSearchField, { label: "Search", placeholder: "Search", value: searchValue, onChange: (event) => {
3692
- setSearchValue(event.target.value);
3693
- setFocusedIndex(-1);
3694
- } }) }) : null,
3695
- visibleItems.length === 0 ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "dropdown-empty-state", style: { padding: `${spacingValue(theme, JumpySpacing.medium)}px ${spacingValue(theme, JumpySpacing.large)}px`, color: "var(--jumpy-interactive-inactive-regular-default-text)", fontFamily: theme.fontFamily.familyBase, fontSize: textStyleValue(theme, JumpyTextStyle.bodyMedium).fontSize }, children: "No options available" }) : null,
3696
- visibleItems.map((item, index) => {
3697
- const selected = selectedValues.includes(item.value);
3698
- const listItemProps = {
3699
- id: `${triggerId}-option-${index}`,
3700
- role: "option",
3701
- "aria-selected": selected,
3702
- disabled: item.disabled,
3703
- onMouseDown: (event) => event.preventDefault(),
3704
- onMouseEnter: () => setFocusedIndex(index),
3705
- onClick: () => {
3706
- selectItem(item);
3707
- }
3708
- };
3709
- return renderItem ? renderItem(item, selected, listItemProps) : /* @__PURE__ */ jsx2(JumpListItem, { selected, ...listItemProps, children: item.label }, String(item.value));
3710
- })
3711
- ]
3712
- }
3713
- ) }) : null;
3714
- return /* @__PURE__ */ jsxs2("div", { ref: dropdownRef, "data-jumpy-component": "dropdown", onKeyDown: (event) => {
3715
- if (event.key === KeyboardKeys.ESCAPE && isOpen && !event.defaultPrevented) {
3716
- event.preventDefault();
3717
- event.stopPropagation();
3718
- setOpen(false);
3719
- triggerRef.current?.focus();
3720
- }
3721
- }, style: { position: "relative", width: "100%" }, children: [
3722
- trigger,
3723
- listbox
3724
- ] });
3725
- }
3726
- function JumpSpinner({ size: size2 = "medium", mode = "indeterminate", value = 0, showTrack = true, inverse = false, className = "", ...props }) {
3727
- const theme = useJumpyTheme();
3728
- const sizeMap = {
3729
- xSmall: { diameter: 20, strokeWidth: 2 },
3730
- small: { diameter: 24, strokeWidth: 2 },
3731
- medium: { diameter: 32, strokeWidth: 2 },
3732
- large: { diameter: 48, strokeWidth: 4 },
3733
- xLarge: { diameter: 56, strokeWidth: 4 },
3734
- xxLarge: { diameter: 72, strokeWidth: 4 }
3735
- };
3736
- const { diameter, strokeWidth } = sizeMap[size2] || sizeMap.medium;
3737
- const radius = (diameter - strokeWidth) / 2;
3738
- const center = diameter / 2;
3739
- const circumference = 2 * Math.PI * radius;
3740
- const clampedValue = Math.min(Math.max(value, 0), 100);
3741
- const dash = mode === "determinate" ? clampedValue / 100 * circumference : circumference * 0.72;
3742
- const gap = circumference - dash;
3743
- return /* @__PURE__ */ jsxs2("svg", { ...props, "data-jumpy-component": "spinner", className: cn(className), width: diameter, height: diameter, viewBox: `0 0 ${diameter} ${diameter}`, role: "progressbar", "aria-valuemin": mode === "determinate" ? 0 : void 0, "aria-valuemax": mode === "determinate" ? 100 : void 0, "aria-valuenow": mode === "determinate" ? clampedValue : void 0, "aria-label": props["aria-label"] || (mode === "determinate" ? `Loading progress: ${clampedValue}%` : "Loading in progress"), style: { color: inverse ? theme.color.textOnPrimary : theme.color.surfacePrimary, ...props.style || {} }, children: [
3744
- showTrack ? /* @__PURE__ */ jsx2("circle", { cx: center, cy: center, r: radius, fill: "none", stroke: theme.color.borderSubtle, strokeWidth }) : null,
3745
- /* @__PURE__ */ jsx2("circle", { cx: center, cy: center, r: radius, fill: "none", stroke: "currentColor", strokeWidth, strokeLinecap: "round", strokeDasharray: `${dash} ${gap}`, transform: `rotate(-90 ${center} ${center})`, children: mode === "indeterminate" ? /* @__PURE__ */ jsx2("animateTransform", { attributeName: "transform", type: "rotate", from: `0 ${center} ${center}`, to: `360 ${center} ${center}`, dur: "1s", repeatCount: "indefinite" }) : null })
3746
- ] });
3747
- }
3748
- function JumpDialog({ as, visible = false, onVisibleChange, title, description, footer, children, className = "", disableBackdropClick = false, disableContentScroll = false, fullScreen = false, overlayProps, slots, innerClasses = {}, ...props }) {
3749
- const theme = useJumpyTheme();
3750
- const Component = as || "div";
3751
- const labelId = useId();
3752
- const descriptionId = useId();
3753
- const dialogTitle = slots?.title ?? title;
3754
- const dialogDescription = slots?.description ?? description;
3755
- const dialogFooter = slots?.footer ?? footer;
3756
- const dialogIcon = slots?.icon;
3757
- const dialogIllustration = slots?.illustration;
3758
- const titleStyle = textStyleValue(theme, JumpyTextStyle.titleLarge);
3759
- const descriptionStyle = textStyleValue(theme, JumpyTextStyle.bodyMedium);
3760
- const { className: overlayClassName, style: overlayStyle, onClick: overlayOnClick, ...restOverlayProps } = overlayProps || {};
3761
- if (!visible) return null;
3762
- return /* @__PURE__ */ jsx2(
3763
- JumpyModalLayer,
3764
- {
3765
- ...restOverlayProps,
3766
- onVisibleChange,
3767
- "data-jumpy-component": "dialog-overlay",
3768
- "data-disable-content-scroll": disableContentScroll ? "true" : "false",
3769
- role: "presentation",
3770
- className: cn(overlayClassName),
3771
- onClick: (event) => {
3772
- overlayOnClick?.(event);
3773
- if (event.target === event.currentTarget && !event.defaultPrevented && !disableBackdropClick) onVisibleChange?.(false);
3774
- },
3775
- style: overlayStyle,
3776
- children: /* @__PURE__ */ jsxs2(
3777
- Component,
3778
- {
3779
- ...props,
3780
- "data-jumpy-component": "dialog",
3781
- "data-full-screen": fullScreen ? "true" : "false",
3782
- "data-no-footer": dialogFooter ? "false" : "true",
3783
- role: "dialog",
3784
- "aria-modal": "true",
3785
- "aria-labelledby": dialogTitle ? labelId : void 0,
3786
- "aria-describedby": dialogDescription ? descriptionId : void 0,
3787
- "aria-label": !dialogTitle ? props["aria-label"] || title : props["aria-label"],
3788
- className: cn(className),
3789
- onClick: (event) => {
3790
- event.stopPropagation();
3791
- props.onClick?.(event);
3792
- },
3793
- style: {
3794
- "--jumpy-dialog-width": props.style?.width || "472px",
3795
- ...props.style || {}
3796
- },
3797
- children: [
3798
- dialogIllustration ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "dialog-illustration", className: innerClasses.illustration?.className, style: innerClasses.illustration?.style, children: dialogIllustration }) : null,
3799
- /* @__PURE__ */ jsxs2("div", { "data-jumpy-slot": "dialog-body", className: innerClasses.body?.className, style: innerClasses.body?.style, children: [
3800
- dialogIcon ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "dialog-icon", className: innerClasses.icon?.className, style: innerClasses.icon?.style, children: dialogIcon }) : null,
3801
- dialogTitle ? /* @__PURE__ */ jsx2(
3802
- "div",
3803
- {
3804
- id: labelId,
3805
- "data-jumpy-slot": "dialog-title",
3806
- className: innerClasses.title?.className,
3807
- style: {
3808
- margin: 0,
3809
- fontFamily: theme.fontFamily.familyBase,
3810
- fontSize: titleStyle.fontSize,
3811
- lineHeight: titleStyle.lineHeight,
3812
- fontWeight: titleStyle.fontWeight,
3813
- letterSpacing: titleStyle.letterSpacing,
3814
- ...innerClasses.title?.style || {}
3815
- },
3816
- children: dialogTitle
3817
- }
3818
- ) : null,
3819
- /* @__PURE__ */ jsxs2("div", { "data-jumpy-slot": "dialog-scrollable-content", className: innerClasses.scrollableContent?.className, style: innerClasses.scrollableContent?.style, children: [
3820
- dialogDescription ? /* @__PURE__ */ jsx2(
3821
- "div",
3822
- {
3823
- id: descriptionId,
3824
- "data-jumpy-slot": "dialog-description",
3825
- className: innerClasses.description?.className,
3826
- style: {
3827
- margin: 0,
3828
- fontFamily: theme.fontFamily.familyBase,
3829
- fontSize: descriptionStyle.fontSize,
3830
- lineHeight: descriptionStyle.lineHeight,
3831
- fontWeight: descriptionStyle.fontWeight,
3832
- letterSpacing: descriptionStyle.letterSpacing,
3833
- ...innerClasses.description?.style || {}
3834
- },
3835
- children: dialogDescription
3836
- }
3837
- ) : null,
3838
- children
3839
- ] })
3840
- ] }),
3841
- dialogFooter ? /* @__PURE__ */ jsx2("div", { "data-jumpy-slot": "dialog-footer", className: innerClasses.footer?.className, style: innerClasses.footer?.style, children: dialogFooter }) : null
3842
- ]
3843
- }
3844
- )
3845
- }
3846
- );
3847
- }
3848
- function JumpLoader({ label = "Jumpy UI wird geladen", fullScreen = false, className = "", decorativeBackground = false }) {
3849
- const theme = useJumpyTheme();
3850
- const content = /* @__PURE__ */ jsxs2("div", { className: cn("flex flex-col items-center text-center", className), role: "status", "aria-live": "polite", children: [
3851
- /* @__PURE__ */ jsxs2("div", { className: "relative flex items-center justify-center", style: { height: theme.sizing.loaderSize, width: theme.sizing.loaderSize }, children: [
3852
- /* @__PURE__ */ jsx2("div", { className: "absolute inset-0", style: { borderRadius: theme.radius.large2XL, backgroundColor: theme.color.infoSurface } }),
3853
- /* @__PURE__ */ jsx2("div", { className: "absolute inset-2", style: { borderRadius: theme.radius.largeXL, border: `1px solid ${theme.color.infoBorder}`, backgroundColor: theme.color.surfaceCard, boxShadow: theme.shadow.loader } }),
3854
- /* @__PURE__ */ jsx2("span", { className: "relative grid place-items-center", style: { color: theme.color.surfacePrimary }, children: /* @__PURE__ */ jsx2(JumpSpinner, { size: "large", "aria-label": label }) })
3855
- ] }),
3856
- /* @__PURE__ */ jsx2("p", { className: "mt-5 text-[11px] font-bold uppercase tracking-[0.18em]", style: { color: theme.color.surfacePrimary }, children: label }),
3857
- /* @__PURE__ */ jsxs2("div", { className: "mt-3 flex items-center gap-1.5", "aria-hidden": "true", children: [
3858
- /* @__PURE__ */ jsx2("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full [animation-delay:-0.2s]", style: { backgroundColor: theme.color.surfacePrimary } }),
3859
- /* @__PURE__ */ jsx2("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full [animation-delay:-0.1s]", style: { backgroundColor: theme.color.successBorder } }),
3860
- /* @__PURE__ */ jsx2("span", { className: "h-1.5 w-1.5 animate-bounce rounded-full", style: { backgroundColor: theme.color.infoBorder } })
3861
- ] }),
3862
- /* @__PURE__ */ jsx2("span", { className: "sr-only", children: "Laden" })
3863
- ] });
3864
- if (!fullScreen) return content;
3865
- return /* @__PURE__ */ jsxs2("div", { className: "relative flex min-h-screen items-center justify-center overflow-hidden p-6", style: { backgroundColor: theme.color.surfaceCanvas, color: theme.color.textPrimary }, children: [
3866
- decorativeBackground && /* @__PURE__ */ jsx2(JumpBackground, { snow: false }),
3867
- /* @__PURE__ */ jsx2(JumpCard, { className: cn("px-10 py-9", decorativeBackground && "relative z-10"), children: content })
3868
- ] });
3869
- }
3870
- function JumpButton({ as, size: size2, variant = "primary", status = "regular", className = "", isLoading = false, disabled, elevated = false, slots, leadingIcon, trailingIcon, children, ...props }) {
3871
- const theme = useJumpyTheme();
3872
- const variantStyles = getButtonVariantStyles(theme, variant, status);
3873
- const height = sizeValue(theme, size2 ?? JumpySize.large);
3874
- if (!Number.isFinite(height) || height < 0) throw new Error(`Invalid JumpButton size token: ${size2}`);
3875
- const compact = height < sizeValue(theme, JumpySize.large);
3876
- const textStyle = textStyleValue(theme, compact ? JumpyTextStyle.bodySmallEmphasized : JumpyTextStyle.bodyMediumEmphasized);
3877
- const iconSize = sizeValue(theme, compact ? JumpySize.small3XS : JumpySize.small2XS);
3878
- const [pressed, setPressed] = useState2(false);
3879
- const leading = slots?.leading ?? leadingIcon;
3880
- const trailing = slots?.trailing ?? trailingIcon;
3881
- const Component = as || "button";
3882
- const isButton = Component === "button";
3883
- const isDisabled = disabled || isLoading;
3884
- const displayedLeading = isLoading ? /* @__PURE__ */ jsx2(JumpSpinner, { size: "xSmall", showTrack: false, "aria-hidden": "true", style: { display: "block", width: iconSize, height: iconSize, color: "inherit" } }) : leading;
3885
- const spacing = getButtonSpacing(theme, variant, Boolean(displayedLeading), Boolean(trailing));
3886
- const hasBorder = variant === "secondary" || variant === "tertiary";
3887
- if (size2 !== void 0) {
3888
- const border = hasBorder ? borderWidthValue(theme, JumpyBorderWidth.small) : 0;
3889
- const contentHeight = Math.max(textStyle.fontSize * textStyle.lineHeight, displayedLeading || trailing ? iconSize : 0);
3890
- spacing.paddingTop = spacing.paddingBottom = Math.max(0, (height - contentHeight - border * 2) / 2);
3891
- if (compact) {
3892
- spacing.gap = spacingValue(theme, JumpySpacing.small3XS);
3893
- spacing.paddingLeft = spacing.paddingRight = spacingValue(theme, variant === "borderless" ? JumpySpacing.zero : JumpySpacing.medium);
3894
- }
3895
- }
3896
- const content = /* @__PURE__ */ jsxs2("span", { style: { display: "inline-flex", flexDirection: "row", alignItems: "center", justifyContent: "center", gap: spacing.gap, whiteSpace: "nowrap" }, children: [
3897
- displayedLeading ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "button-leading", "aria-hidden": "true", style: { display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, width: iconSize, height: iconSize, lineHeight: 0, fontSize: iconSize }, children: displayedLeading }) : null,
3898
- /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "button-label", children }),
3899
- trailing ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "button-trailing", "aria-hidden": "true", style: { display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, width: iconSize, height: iconSize, lineHeight: 0, fontSize: iconSize }, children: trailing }) : null
3900
- ] });
3901
- return /* @__PURE__ */ jsx2(
3902
- Component,
3903
- {
3904
- ...props,
3905
- type: isButton ? props.type || "button" : props.type,
3906
- "data-jumpy-component": "icon-button",
3907
- "data-variant": variant,
3908
- "data-status": status,
3909
- "data-elevated": elevated ? "true" : "false",
3910
- "data-loading": isLoading ? "true" : "false",
3911
- "data-size": size2,
3912
- "data-pressed": pressed ? "true" : "false",
3913
- "aria-busy": isLoading || void 0,
3914
- "aria-disabled": !isButton && isDisabled ? true : props["aria-disabled"],
3915
- tabIndex: !isButton && isDisabled ? -1 : props.tabIndex,
3916
- disabled: isButton ? isDisabled : void 0,
3917
- onClick: (event) => {
3918
- if (isDisabled) {
3919
- event.preventDefault();
3920
- return;
3921
- }
3922
- props.onClick?.(event);
3923
- },
3924
- onPointerDown: (event) => {
3925
- setPressed(true);
3926
- props.onPointerDown?.(event);
3927
- },
3928
- onPointerUp: (event) => {
3929
- setPressed(false);
3930
- props.onPointerUp?.(event);
3931
- },
3932
- onPointerLeave: (event) => {
3933
- setPressed(false);
3934
- props.onPointerLeave?.(event);
3935
- },
3936
- onBlur: (event) => {
3937
- setPressed(false);
3938
- props.onBlur?.(event);
3939
- },
3940
- className: cn("disabled:cursor-not-allowed", className),
3941
- style: {
3942
- display: "inline-flex",
3943
- alignItems: "center",
3944
- justifyContent: "center",
3945
- minHeight: height,
3946
- appearance: "none",
3947
- WebkitAppearance: "none",
3948
- boxSizing: "border-box",
3949
- paddingLeft: spacing.paddingLeft,
3950
- paddingRight: spacing.paddingRight,
3951
- paddingTop: spacing.paddingTop,
3952
- paddingBottom: spacing.paddingBottom,
3953
- borderRadius: radiusValue(theme, JumpyRadius.small),
3954
- letterSpacing: textStyle.letterSpacing,
3955
- fontFamily: theme.fontFamily.familyBase,
3956
- fontSize: textStyle.fontSize,
3957
- lineHeight: textStyle.lineHeight,
3958
- fontWeight: textStyle.fontWeight,
3959
- // Primary regular disabled tokens already encode the subdued appearance.
3960
- opacity: isDisabled && !(variant === "primary" && status === "regular") ? opacityValue(theme, JumpyOpacity.medium) : opacityValue(theme, JumpyOpacity.solid),
3961
- borderWidth: hasBorder ? borderWidthValue(theme, JumpyBorderWidth.small) : 0,
3962
- borderStyle: hasBorder ? "solid" : "none",
3963
- ...variantStyles,
3964
- ...elevated && !isDisabled ? { "--jumpy-action-default-shadow": shadowValue(theme, JumpyShadowStyle.positiveMedium) } : {},
3965
- ...props.style || {}
3966
- },
3967
- children: /* @__PURE__ */ jsx2("span", { style: { position: "relative", display: "inline-flex", alignItems: "center", justifyContent: "center", whiteSpace: "nowrap" }, children: content })
3968
- }
3969
- );
3970
- }
3971
- function JumpIconButton({ as, variant = "primary", status = "regular", alternateHover = false, elevated = false, className = "", disabled, children, "aria-label": ariaLabel, ...props }) {
3972
- const theme = useJumpyTheme();
3973
- const actionVariant = variant === "primary" ? "secondary" : variant === "secondary" ? "tertiary" : variant;
3974
- const variantStyles = getButtonVariantStyles(theme, actionVariant, status);
3975
- const actionTokenPrefix = `--jumpy-actions-${actionVariant}-${status}`;
3976
- const [pressed, setPressed] = useState2(false);
3977
- const Component = as || "button";
3978
- const isButton = Component === "button";
3979
- const supportsDisabled = typeof Component === "string" && supportsDisabledAttribute(Component);
3980
- const hasBorder = variant === "primary";
3981
- return /* @__PURE__ */ jsx2(
3982
- Component,
3983
- {
3984
- ...props,
3985
- type: isButton ? props.type || "button" : props.type,
3986
- "aria-label": ariaLabel,
3987
- "data-jumpy-component": "button",
3988
- "data-variant": variant,
3989
- "data-status": status,
3990
- "data-elevated": elevated ? "true" : "false",
3991
- "data-pressed": pressed ? "true" : "false",
3992
- "aria-disabled": !supportsDisabled && disabled ? true : props["aria-disabled"],
3993
- tabIndex: !supportsDisabled && disabled ? -1 : props.tabIndex,
3994
- disabled: supportsDisabled ? disabled : void 0,
3995
- onPointerDown: (event) => {
3996
- setPressed(true);
3997
- props.onPointerDown?.(event);
3998
- },
3999
- onPointerUp: (event) => {
4000
- setPressed(false);
4001
- props.onPointerUp?.(event);
4002
- },
4003
- onPointerLeave: (event) => {
4004
- setPressed(false);
4005
- props.onPointerLeave?.(event);
4006
- },
4007
- onBlur: (event) => {
4008
- setPressed(false);
4009
- props.onBlur?.(event);
4010
- },
4011
- className: cn("disabled:cursor-not-allowed", className),
4012
- style: {
4013
- display: "inline-grid",
4014
- placeItems: "center",
4015
- width: sizeValue(theme, JumpySize.large),
4016
- height: sizeValue(theme, JumpySize.large),
4017
- minWidth: sizeValue(theme, JumpySize.large),
4018
- minHeight: sizeValue(theme, JumpySize.large),
4019
- appearance: "none",
4020
- WebkitAppearance: "none",
4021
- boxSizing: "border-box",
4022
- padding: spacingValue(theme, JumpySpacing.small2XS),
4023
- borderRadius: radiusValue(theme, JumpyRadius.small),
4024
- borderWidth: hasBorder ? borderWidthValue(theme, JumpyBorderWidth.small) : 0,
4025
- borderStyle: hasBorder ? "solid" : "none",
4026
- opacity: disabled ? opacityValue(theme, JumpyOpacity.medium) : opacityValue(theme, JumpyOpacity.solid),
4027
- ...variantStyles,
4028
- "--jumpy-action-default-icon": `var(${actionTokenPrefix}-default-action, ${variantStyles["--jumpy-action-default-icon"]})`,
4029
- "--jumpy-action-hover-icon": `var(${actionTokenPrefix}-hover-action, ${variantStyles["--jumpy-action-hover-icon"]})`,
4030
- "--jumpy-action-focus-icon": `var(${actionTokenPrefix}-focus-action, ${variantStyles["--jumpy-action-focus-icon"]})`,
4031
- "--jumpy-action-pressed-icon": `var(${actionTokenPrefix}-pressed-action, ${variantStyles["--jumpy-action-pressed-icon"]})`,
4032
- "--jumpy-action-disabled-icon": `var(${actionTokenPrefix}-disabled-action, ${variantStyles["--jumpy-action-disabled-icon"]})`,
4033
- ...elevated && !disabled ? { "--jumpy-action-default-shadow": shadowValue(theme, JumpyShadowStyle.positiveMedium) } : {},
4034
- ...alternateHover ? {
4035
- "--jumpy-action-hover-surface": `var(--jumpy-interactive-inactive-${status}-hover-surface-alternate, ${variantStyles["--jumpy-action-hover-surface"]})`,
4036
- "--jumpy-action-pressed-surface": `var(--jumpy-interactive-inactive-${status}-pressed-surface-alternate, ${variantStyles["--jumpy-action-pressed-surface"]})`
4037
- } : {},
4038
- ...props.style || {}
4039
- },
4040
- children: /* @__PURE__ */ jsx2("span", { style: { display: "grid", placeItems: "center", width: sizeValue(theme, JumpySize.small), height: sizeValue(theme, JumpySize.small), lineHeight: 0, fontSize: sizeValue(theme, JumpySize.small) }, "aria-hidden": "true", children })
4041
- }
4042
- );
4043
- }
4044
- function JumpLinkButton({ href, variant = "borderless", status = "regular", className = "", leadingIcon, trailingIcon, children, ...props }) {
4045
- const theme = useJumpyTheme();
4046
- const variantStyles = getButtonVariantStyles(theme, variant, status);
4047
- const bodyMediumEmphasized = textStyleValue(theme, JumpyTextStyle.bodyMediumEmphasized);
4048
- const iconSize = sizeValue(theme, JumpySize.small2XS);
4049
- const [pressed, setPressed] = useState2(false);
4050
- const spacing = getButtonSpacing(theme, variant, Boolean(leadingIcon), Boolean(trailingIcon));
4051
- const hasBorder = variant === "secondary" || variant === "tertiary";
4052
- return /* @__PURE__ */ jsx2(
4053
- "a",
4054
- {
4055
- href,
4056
- ...props,
4057
- "data-jumpy-component": "link-button",
4058
- "data-variant": variant,
4059
- "data-status": status,
4060
- "data-pressed": pressed ? "true" : "false",
4061
- onPointerDown: (event) => {
4062
- setPressed(true);
4063
- props.onPointerDown?.(event);
4064
- },
4065
- onPointerUp: (event) => {
4066
- setPressed(false);
4067
- props.onPointerUp?.(event);
4068
- },
4069
- onPointerLeave: (event) => {
4070
- setPressed(false);
4071
- props.onPointerLeave?.(event);
4072
- },
4073
- onBlur: (event) => {
4074
- setPressed(false);
4075
- props.onBlur?.(event);
4076
- },
4077
- className: cn(className),
4078
- style: {
4079
- display: "inline-flex",
4080
- alignItems: "center",
4081
- justifyContent: "center",
4082
- minHeight: sizeValue(theme, JumpySize.large),
4083
- appearance: "none",
4084
- WebkitAppearance: "none",
4085
- boxSizing: "border-box",
4086
- paddingLeft: spacing.paddingLeft,
4087
- paddingRight: spacing.paddingRight,
4088
- paddingTop: spacing.paddingTop,
4089
- paddingBottom: spacing.paddingBottom,
4090
- borderRadius: radiusValue(theme, JumpyRadius.small),
4091
- letterSpacing: bodyMediumEmphasized.letterSpacing,
4092
- fontFamily: theme.fontFamily.familyBase,
4093
- fontSize: bodyMediumEmphasized.fontSize,
4094
- lineHeight: bodyMediumEmphasized.lineHeight,
4095
- fontWeight: bodyMediumEmphasized.fontWeight,
4096
- borderWidth: hasBorder ? borderWidthValue(theme, JumpyBorderWidth.small) : 0,
4097
- borderStyle: hasBorder ? "solid" : "none",
4098
- ...variantStyles,
4099
- ...props.style || {}
4100
- },
4101
- children: /* @__PURE__ */ jsxs2("span", { style: { display: "inline-flex", flexDirection: "row", alignItems: "center", justifyContent: "center", gap: spacing.gap, whiteSpace: "nowrap" }, children: [
4102
- leadingIcon ? /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", className: "inline-flex shrink-0 items-center justify-center", style: { width: iconSize, height: iconSize, lineHeight: 0, fontSize: iconSize }, children: leadingIcon }) : null,
4103
- /* @__PURE__ */ jsx2("span", { children }),
4104
- trailingIcon ? /* @__PURE__ */ jsx2("span", { "aria-hidden": "true", className: "inline-flex shrink-0 items-center justify-center", style: { width: iconSize, height: iconSize, lineHeight: 0, fontSize: iconSize }, children: trailingIcon }) : null
4105
- ] })
4106
- }
4107
- );
4108
- }
4109
- var JumpInput = forwardRef(function JumpInput2({ className = "", ...props }, ref) {
4110
- const theme = useJumpyTheme();
4111
- const fieldContext = useContext(JumpyFieldContext);
4112
- const inputOffset = fieldContext?.hasLabel ? spacingValue(theme, JumpySpacing.large) : spacingValue(theme, JumpySpacing.zero);
4113
- const inputMinHeight = fieldContext ? void 0 : sizeValue(theme, JumpySize.largeXL) - spacingValue(theme, JumpySpacing.small3XS) * 2;
4114
- const inputElement = /* @__PURE__ */ jsx2(
4115
- "input",
4116
- {
4117
- ...props,
4118
- ref,
4119
- "data-jumpy-component": "input",
4120
- className: cn("w-full text-sm disabled:cursor-not-allowed", className),
4121
- style: {
4122
- ...getFieldInputStyles(theme, props.disabled),
4123
- minHeight: inputMinHeight,
4124
- marginTop: inputOffset,
4125
- ...props.style || {}
4126
- }
4127
- }
4128
- );
4129
- if (fieldContext) {
4130
- return inputElement;
4131
- }
4132
- return renderStandaloneField(theme, props.disabled, "", null, inputElement, props.status || "regular", props.readOnly);
4133
- });
4134
- function TokenEditorField(props) {
4135
- const fieldContext = useContext(JumpyFieldContext);
4136
- return /* @__PURE__ */ jsx2(TokenEditor, { ...props, fieldContext });
4137
- }
4138
- function JumpTokenInput({ ref, value, defaultValue = [], onChange, onTokenInsert, onTokenRemove, multiline = false, minRows = 3, maxRows, hideClearIcon = false, onClear, label, hint, status = "regular", error = false, disabled = false, readOnly = false, className = "", ...props }) {
4139
- const editorHandle = useRef2(null);
4140
- const [internalValue, setInternalValue] = useState2(() => normalizeTokenInputValue(defaultValue, multiline));
4141
- const [, refresh] = useState2(0);
4142
- if (multiline && (!Number.isInteger(minRows) || minRows < 1 || maxRows !== void 0 && (!Number.isInteger(maxRows) || maxRows < minRows))) throw new Error("JumpTokenInput requires minRows >= 1 and maxRows >= minRows");
4143
- const model = normalizeTokenInputValue(value === void 0 ? internalValue : value, multiline);
4144
- const change = (next) => {
4145
- if (disabled || readOnly) return;
4146
- if (value === void 0) setInternalValue(next);
4147
- else refresh((revision) => revision + 1);
4148
- onChange?.(next);
4149
- const previousTokens = model.filter((part) => part.type === "token");
4150
- const nextTokens = next.filter((part) => part.type === "token");
4151
- for (const token of nextTokens) if (!previousTokens.some((previous) => previous.id === token.id)) onTokenInsert?.(token);
4152
- for (const token of previousTokens) if (!nextTokens.some((current) => current.id === token.id)) onTokenRemove?.(token);
4153
- };
4154
- return /* @__PURE__ */ jsx2(JumpField, { label, hint, status, error, hideClearIcon, onClear: () => editorHandle.current?.clear(), className, children: /* @__PURE__ */ jsx2(TokenEditorField, { ...props, editorRef: (handle) => {
4155
- editorHandle.current = handle;
4156
- if (typeof ref === "function") return ref(handle);
4157
- if (ref) ref.current = handle;
4158
- }, model, multiline, minRows, maxRows, value: tokenInputText(model), "data-has-value": model.length > 0, disabled, readOnly, onValueChange: change, onClear }) });
4159
- }
4160
- function JumpTextarea({ className = "", ...props }) {
4161
- const theme = useJumpyTheme();
4162
- const fieldContext = useContext(JumpyFieldContext);
4163
- const inputOffset = fieldContext?.hasLabel ? spacingValue(theme, JumpySpacing.large) : spacingValue(theme, JumpySpacing.zero);
4164
- const textareaElement = /* @__PURE__ */ jsx2(
4165
- "textarea",
4166
- {
4167
- ...props,
4168
- "data-jumpy-component": "textarea",
4169
- className: cn("w-full text-sm disabled:cursor-not-allowed", className),
4170
- style: {
4171
- ...getFieldInputStyles(theme, props.disabled),
4172
- minHeight: props.rows ? Number(props.rows) * 24 : sizeValue(theme, JumpySize.large2XL),
4173
- marginTop: inputOffset,
4174
- resize: "none",
4175
- ...props.style || {}
4176
- }
4177
- }
4178
- );
4179
- if (fieldContext) {
4180
- return textareaElement;
4181
- }
4182
- return renderStandaloneField(theme, props.disabled, "", { alignItems: "flex-start", height: "auto", maxHeight: "none", paddingRight: spacingValue(theme, JumpySpacing.small3XS) }, textareaElement, props.status || "regular", props.readOnly);
4183
- }
4184
- function JumpBaseInput({ label, hint, children, className = "", error = false, hideClearIcon = false, showCharCount = false, onClear, ...props }) {
4185
- const theme = useJumpyTheme();
4186
- const fieldId = useId();
4187
- const labelId = useId();
4188
- const helperId = useId();
4189
- const counterId = useId();
4190
- const child = Children.only(children);
4191
- const childValue = isValidElement(child) ? child.props.value ?? child.props.defaultValue ?? "" : "";
4192
- const childHasValue = isValidElement(child) && (child.props["data-has-value"] === true || child.props["data-has-value"] === "true");
4193
- const [focused, setFocused] = useState2(false);
4194
- const [hasValue, setHasValue] = useState2(childHasValue || Boolean(String(childValue).length));
4195
- const [inputValue, setInputValue] = useState2(String(childValue ?? ""));
4196
- const bodySmall = textStyleValue(theme, JumpyTextStyle.bodySmall);
4197
- const bodyMedium = textStyleValue(theme, JumpyTextStyle.bodyMedium);
4198
- const labelSmall = textStyleValue(theme, JumpyTextStyle.labelSmall);
4199
- useEffect2(() => {
4200
- setHasValue(childHasValue || Boolean(String(childValue).length));
4201
- setInputValue(String(childValue ?? ""));
4202
- }, [childHasValue, childValue]);
4203
- if (!isValidElement(child)) {
4204
- return /* @__PURE__ */ jsx2("div", { className: cn("block w-full", className), children });
4205
- }
4206
- const originalOnFocus = child.props.onFocus;
4207
- const originalOnBlur = child.props.onBlur;
4208
- const originalOnChange = child.props.onChange;
4209
- const disabled = Boolean(child.props.disabled);
4210
- const isDropdownTrigger = child.props["data-jumpy-dropdown-trigger"] === true || child.props["data-jumpy-dropdown-trigger"] === "true";
4211
- const readOnly = Boolean(child.props.readOnly) && !isDropdownTrigger;
4212
- const floating = focused && !readOnly || hasValue || Boolean(props.slots?.content);
4213
- const isTextarea = child.type === JumpTextarea || child.type === TokenEditorField && child.props.multiline;
4214
- const isDropdown = isDropdownTrigger || child.props["data-jumpy-component"] === "dropdown";
4215
- const status = error ? "alarm" : props.status || "regular";
4216
- const leading = props.slots?.leading ?? props.leading;
4217
- const trailing = props.slots?.trailing ?? props.trailing;
4218
- const content = props.slots?.content;
4219
- const helperText = props.slots?.helperText ?? hint;
4220
- const hasHelperText = Boolean(helperText);
4221
- const maxLength = child.props.maxLength;
4222
- const hasCounter = showCharCount && maxLength !== void 0 && maxLength !== null;
4223
- const showClearButton = hasValue && !hideClearIcon && !disabled && !readOnly;
4224
- const showErrorIcon = Boolean(error) && !disabled && !readOnly;
4225
- const showTrailing = showClearButton || trailing || showErrorIcon;
4226
- const describedBy = [child.props["aria-describedby"], hasHelperText ? helperId : void 0, hasCounter ? counterId : void 0].filter(Boolean).join(" ") || void 0;
4227
- const labelScale = labelSmall.fontSize / bodyMedium.fontSize;
4228
- const fieldInnerHeight = sizeValue(theme, JumpySize.largeXL) - spacingValue(theme, JumpySpacing.small3XS) * 2;
4229
- const labelRestingY = fieldInnerHeight / 2;
4230
- const labelFloatingY = (labelSmall.fontSize * labelSmall.lineHeight - labelSmall.fontSize) / 2;
4231
- const labelTiming = focused && !readOnly ? theme.animation.timeEasingImpulse : theme.animation.timeEasingRelease;
4232
- const enhancedChild = cloneElement(child, {
4233
- id: child.props.id || fieldId,
4234
- "aria-labelledby": child.props["aria-labelledby"] || (!child.props["aria-label"] && label ? labelId : void 0),
4235
- "aria-invalid": error ? true : child.props["aria-invalid"],
4236
- "aria-describedby": describedBy,
4237
- placeholder: !label || isDropdown || floating ? child.props.placeholder : " ",
4238
- style: content ? {
4239
- ...child.props.style || {},
4240
- position: "absolute",
4241
- inset: 0,
4242
- zIndex: 2,
4243
- width: "100%",
4244
- height: "100%",
4245
- margin: 0,
4246
- opacity: 0,
4247
- cursor: disabled || readOnly ? "default" : "pointer"
4248
- } : child.props.style,
4249
- onFocus: (event) => {
4250
- setFocused(true);
4251
- originalOnFocus?.(event);
4252
- },
4253
- onBlur: (event) => {
4254
- setFocused(false);
4255
- setHasValue(childHasValue || Boolean(String(event.target?.value ?? "").length));
4256
- originalOnBlur?.(event);
4257
- },
4258
- onChange: (event) => {
4259
- setHasValue(childHasValue || Boolean(String(event.target?.value ?? "").length));
4260
- setInputValue(String(event.target?.value ?? ""));
4261
- originalOnChange?.(event);
4262
- }
4263
- });
4264
- const Container = label ? "label" : "div";
4265
- const containerProps = label ? { htmlFor: child.props.id || fieldId } : {
4266
- onClick: () => {
4267
- if (!disabled) document.getElementById(child.props.id || fieldId)?.focus();
4268
- }
4269
- };
4270
- return /* @__PURE__ */ jsxs2("div", { "data-jumpy-component": "base-input-root", className: cn("inline-flex w-full max-w-full flex-col", className), style: { color: "var(--jumpy-cmp-base-input-helper-color)" }, children: [
4271
- /* @__PURE__ */ jsx2(
4272
- Container,
4273
- {
4274
- ...containerProps,
4275
- "data-jumpy-component": "base-input",
4276
- "data-disabled": disabled ? "true" : "false",
4277
- "data-readonly": readOnly ? "true" : "false",
4278
- "data-status": status,
4279
- style: { color: "var(--jumpy-cmp-base-input-helper-color)" },
4280
- children: /* @__PURE__ */ jsxs2(
4281
- "div",
4282
- {
4283
- "data-jumpy-component": "field-control",
4284
- "data-disabled": disabled ? "true" : "false",
4285
- "data-readonly": readOnly ? "true" : "false",
4286
- "data-status": status,
4287
- "data-testid": props["data-testid"],
4288
- onMouseDown: (event) => {
4289
- const control = document.getElementById(child.props.id || fieldId);
4290
- const interactive = event.target.closest("input, textarea, select, button, a, [tabindex]");
4291
- if (disabled || !control || event.button !== 0 || interactive && event.currentTarget.contains(interactive)) return;
4292
- event.preventDefault();
4293
- control.focus();
4294
- },
4295
- style: {
4296
- ...getFieldShellStyles(theme, disabled, status, focused, readOnly),
4297
- alignItems: isTextarea ? "flex-start" : "center",
4298
- position: "relative",
4299
- height: isTextarea ? "auto" : sizeValue(theme, JumpySize.largeXL),
4300
- minHeight: isTextarea ? sizeValue(theme, JumpySize.large2XL) : sizeValue(theme, JumpySize.largeXL)
4301
- },
4302
- children: [
4303
- leading ? /* @__PURE__ */ jsx2(
4304
- "span",
4305
- {
4306
- "aria-hidden": "true",
4307
- className: "inline-flex shrink-0 items-center justify-center",
4308
- style: {
4309
- width: sizeValue(theme, JumpySize.small),
4310
- height: sizeValue(theme, JumpySize.small),
4311
- color: "var(--jumpy-cmp-base-input-icon-fill)",
4312
- transition: `color ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${focused && !readOnly ? theme.animation.timeEasingImpulse : theme.animation.timeEasingRelease}`
4313
- },
4314
- children: leading
4315
- }
4316
- ) : null,
4317
- /* @__PURE__ */ jsxs2(
4318
- "div",
4319
- {
4320
- style: {
4321
- position: "relative",
4322
- display: "flex",
4323
- alignItems: isTextarea ? "initial" : "center",
4324
- alignSelf: "stretch",
4325
- flex: 1,
4326
- minWidth: 0,
4327
- overflow: "hidden"
4328
- },
4329
- children: [
4330
- label && /* @__PURE__ */ jsx2(
4331
- "span",
4332
- {
4333
- id: labelId,
4334
- "data-testid": props.labelTestId,
4335
- style: {
4336
- position: "absolute",
4337
- left: spacingValue(theme, JumpySpacing.zero),
4338
- top: spacingValue(theme, JumpySpacing.zero),
4339
- transform: floating ? `translateY(${labelFloatingY}px) scale(${labelScale})` : `translateY(calc(${labelRestingY}px - 50%)) scale(1)`,
4340
- transformOrigin: "left top",
4341
- color: "var(--jumpy-cmp-base-input-label-color)",
4342
- fontFamily: theme.fontFamily.familyBase,
4343
- fontSize: bodyMedium.fontSize,
4344
- lineHeight: floating ? labelSmall.lineHeight : bodyMedium.lineHeight,
4345
- fontWeight: floating ? labelSmall.fontWeight : bodyMedium.fontWeight,
4346
- letterSpacing: floating ? labelSmall.letterSpacing : bodyMedium.letterSpacing,
4347
- pointerEvents: "none",
4348
- transition: `transform ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${labelTiming}, color ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${labelTiming}`,
4349
- maxWidth: "100%",
4350
- overflow: "hidden",
4351
- textOverflow: "ellipsis",
4352
- whiteSpace: "nowrap"
4353
- },
4354
- children: label
4355
- }
4356
- ),
4357
- /* @__PURE__ */ jsx2(JumpyFieldContext.Provider, { value: { fieldId, hasLabel: Boolean(label), floating }, children: enhancedChild }),
4358
- content ? /* @__PURE__ */ jsx2(
4359
- "div",
4360
- {
4361
- "data-jumpy-slot": "content",
4362
- style: {
4363
- width: "100%",
4364
- minWidth: 0,
4365
- paddingTop: label ? spacingValue(theme, JumpySpacing.large) : spacingValue(theme, JumpySpacing.zero),
4366
- color: "var(--jumpy-cmp-base-input-value-color)",
4367
- fontFamily: theme.fontFamily.familyBase,
4368
- fontSize: bodyMedium.fontSize,
4369
- lineHeight: `${bodyMedium.fontSize * bodyMedium.lineHeight}px`,
4370
- overflow: "hidden",
4371
- textOverflow: "ellipsis",
4372
- whiteSpace: "nowrap"
4373
- },
4374
- children: content
4375
- }
4376
- ) : null
4377
- ]
4378
- }
4379
- ),
4380
- showTrailing ? /* @__PURE__ */ jsxs2(
4381
- "span",
4382
- {
4383
- "data-jumpy-slot": "trailing-container",
4384
- className: "inline-flex shrink-0 items-center justify-center",
4385
- style: {
4386
- display: "inline-flex",
4387
- alignItems: isTextarea ? "flex-start" : "center",
4388
- justifyContent: "center",
4389
- alignSelf: isTextarea ? "flex-start" : void 0,
4390
- minHeight: isTextarea ? sizeValue(theme, JumpySize.large) : void 0,
4391
- flexShrink: 0,
4392
- gap: spacingValue(theme, JumpySpacing.smallXS),
4393
- color: "var(--jumpy-cmp-base-input-trailing-color)",
4394
- transition: `color ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${focused && !readOnly ? theme.animation.timeEasingImpulse : theme.animation.timeEasingRelease}`
4395
- },
4396
- children: [
4397
- showClearButton ? /* @__PURE__ */ jsx2(
4398
- JumpIconButton,
4399
- {
4400
- variant: "secondary",
4401
- "aria-label": "Clear",
4402
- "data-jumpy-slot": "clear-button",
4403
- onClick: (event) => {
4404
- event.preventDefault();
4405
- event.stopPropagation();
4406
- const input = document.getElementById(child.props.id || fieldId);
4407
- if (input && child.props.value === void 0) input.value = "";
4408
- setHasValue(false);
4409
- setInputValue("");
4410
- originalOnChange?.({ target: { value: "" }, currentTarget: { value: "" } });
4411
- onClear?.();
4412
- input?.focus();
4413
- },
4414
- style: {
4415
- width: sizeValue(theme, JumpySize.large),
4416
- height: sizeValue(theme, JumpySize.large),
4417
- minWidth: sizeValue(theme, JumpySize.large),
4418
- minHeight: sizeValue(theme, JumpySize.large),
4419
- padding: spacingValue(theme, JumpySpacing.small2XS),
4420
- borderRadius: radiusValue(theme, JumpyRadius.small)
4421
- },
4422
- children: /* @__PURE__ */ jsx2(CircleClearIcon, {})
4423
- }
4424
- ) : null,
4425
- showErrorIcon || trailing ? /* @__PURE__ */ jsxs2("span", { "data-jumpy-slot": "trailing", "aria-hidden": "true", style: { display: "inline-flex", alignItems: "center", justifyContent: "center", gap: spacingValue(theme, JumpySpacing.smallXS), paddingRight: spacingValue(theme, JumpySpacing.medium), color: "var(--jumpy-cmp-base-input-trailing-color)", fontSize: bodyMedium.fontSize, lineHeight: bodyMedium.lineHeight }, children: [
4426
- showErrorIcon ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "trailing-error", style: { display: "inline-flex", alignItems: "center", color: "var(--jumpy-cmp-base-input-trailing-error-fill, var(--jumpy-cmp-base-input-icon-fill))", lineHeight: 1 }, children: /* @__PURE__ */ jsx2(CircleErrorIcon, { style: { width: sizeValue(theme, JumpySize.small2XS), height: sizeValue(theme, JumpySize.small2XS) } }) }) : null,
4427
- trailing ? /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "trailing-text", style: { display: "inline-flex", alignItems: "center", maxWidth: `calc(30 * ${spacingValue(theme, JumpySpacing.smallXS)}px)`, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", lineHeight: 1 }, children: trailing }) : null
4428
- ] }) : null
4429
- ]
4430
- }
4431
- ) : null
4432
- ]
4433
- }
4434
- )
4435
- }
4436
- ),
4437
- (hasHelperText || hasCounter) && /* @__PURE__ */ jsxs2(
4438
- "div",
4439
- {
4440
- className: "flex justify-end",
4441
- style: {
4442
- gap: spacingValue(theme, JumpySpacing.smallXS),
4443
- paddingTop: spacingValue(theme, JumpySpacing.small3XS),
4444
- paddingLeft: spacingValue(theme, JumpySpacing.large),
4445
- paddingRight: spacingValue(theme, JumpySpacing.large),
4446
- color: "var(--jumpy-cmp-base-input-helper-color)",
4447
- fontSize: bodySmall.fontSize,
4448
- lineHeight: `${bodySmall.fontSize * bodySmall.lineHeight}px`,
4449
- transition: `color ${animationDurationValue(theme, JumpyAnimationDuration.smallXS)}s ${focused && !readOnly ? theme.animation.timeEasingImpulse : theme.animation.timeEasingRelease}`
4450
- },
4451
- children: [
4452
- hasHelperText ? /* @__PURE__ */ jsx2("span", { id: helperId, style: { flex: 1 }, children: helperText }) : null,
4453
- hasCounter ? /* @__PURE__ */ jsxs2("span", { id: counterId, style: { flex: 0, whiteSpace: "nowrap" }, children: [
4454
- inputValue.length,
4455
- "/",
4456
- maxLength
4457
- ] }) : null
4458
- ]
4459
- }
4460
- )
4461
- ] });
4462
- }
4463
- function JumpField(props) {
4464
- return /* @__PURE__ */ jsx2(JumpBaseInput, { ...props });
4465
- }
4466
- function JumpChoice({ selected = false, title, description, className = "", ...props }) {
4467
- const theme = useJumpyTheme();
4468
- return /* @__PURE__ */ jsxs2(
4469
- "button",
4470
- {
4471
- type: "button",
4472
- ...props,
4473
- "data-jumpy-component": "choice",
4474
- className: cn("w-full p-4 text-left transition active:scale-[0.99] disabled:cursor-not-allowed", className),
4475
- style: {
4476
- borderRadius: theme.sizing.choiceRadius,
4477
- border: `1px solid ${selected ? theme.color.surfacePrimary : theme.color.borderSubtle}`,
4478
- backgroundColor: selected ? theme.color.infoSurface : theme.color.surfaceCard,
4479
- color: theme.color.textPrimary,
4480
- opacity: props.disabled ? theme.opacity.disabled : 1
4481
- },
4482
- children: [
4483
- /* @__PURE__ */ jsx2("span", { className: "block text-sm font-bold", children: title }),
4484
- description && /* @__PURE__ */ jsx2("span", { className: "mt-1 block text-xs leading-5", style: { color: theme.color.textSecondary }, children: description })
4485
- ]
4486
- }
4487
- );
4488
- }
4489
- function JumpNotice({ tone = "info", title, children, className = "" }) {
4490
- const theme = useJumpyTheme();
4491
- const toneStyles = getNoticeToneStyles(theme, tone);
4492
- return /* @__PURE__ */ jsxs2("div", { className: cn("p-4", className), style: { borderRadius: theme.sizing.choiceRadius, border: `1px solid ${toneStyles.borderColor}`, backgroundColor: toneStyles.backgroundColor, color: toneStyles.color }, children: [
4493
- title && /* @__PURE__ */ jsx2("p", { className: "text-sm font-bold", children: title }),
4494
- /* @__PURE__ */ jsx2("div", { className: cn("text-xs leading-5", title && "mt-1"), children })
4495
- ] });
4496
- }
4497
- function JumpTabs({ items, value, onChange, className = "" }) {
4498
- const scrollRef = useRef2(null);
4499
- const indicatorRef = useRef2(null);
4500
- const tabRefs = useRef2(/* @__PURE__ */ new Map());
4501
- const placeIndicatorRef = useRef2(null);
4502
- placeIndicatorRef.current = (animate) => {
4503
- const selectedTab = tabRefs.current.get(value);
4504
- const scrollContainer = scrollRef.current;
4505
- const indicator = indicatorRef.current;
4506
- if (!selectedTab || !scrollContainer || !indicator) return;
4507
- const tabBounds = selectedTab.getBoundingClientRect();
4508
- const containerBounds = scrollContainer.getBoundingClientRect();
4509
- const tabStyles = getComputedStyle(selectedTab);
4510
- const content = selectedTab.firstElementChild;
4511
- const contentStyles = content ? getComputedStyle(content) : null;
4512
- const insetLeft = Number.parseFloat(tabStyles.paddingLeft) + (contentStyles ? Number.parseFloat(contentStyles.paddingLeft) : 0);
4513
- const insetRight = Number.parseFloat(tabStyles.paddingRight) + (contentStyles ? Number.parseFloat(contentStyles.paddingRight) : 0);
4514
- const x = tabBounds.left - containerBounds.left + scrollContainer.scrollLeft + insetLeft;
4515
- const width = tabBounds.width - insetLeft - insetRight;
4516
- if (!animate) indicator.style.transition = "none";
4517
- indicator.style.setProperty("--jumpy-cmp-tabs-indicator-x", `${x}px`);
4518
- indicator.style.setProperty("--jumpy-cmp-tabs-indicator-width", `${width}px`);
4519
- indicator.style.setProperty("--jumpy-cmp-tabs-indicator-opacity", "1");
4520
- if (!animate) {
4521
- indicator.getBoundingClientRect();
4522
- indicator.style.transition = "";
4523
- }
4524
- };
4525
- const indicatorPlacedRef = useRef2(false);
4526
- useLayoutEffect2(() => {
4527
- placeIndicatorRef.current(indicatorPlacedRef.current);
4528
- indicatorPlacedRef.current = true;
4529
- }, [items, value]);
4530
- useEffect2(() => {
4531
- const scrollContainer = scrollRef.current;
4532
- if (!scrollContainer || typeof ResizeObserver === "undefined") return void 0;
4533
- const sizes = /* @__PURE__ */ new WeakMap();
4534
- const observer = new ResizeObserver((entries) => {
4535
- let resized = false;
4536
- entries.forEach(({ target, contentRect }) => {
4537
- const size2 = `${contentRect.width}x${contentRect.height}`;
4538
- if (sizes.has(target) && sizes.get(target) !== size2) resized = true;
4539
- sizes.set(target, size2);
4540
- });
4541
- if (resized) placeIndicatorRef.current(false);
4542
- });
4543
- observer.observe(scrollContainer);
4544
- tabRefs.current.forEach((tab) => observer.observe(tab));
4545
- return () => observer.disconnect();
4546
- }, [items]);
4547
- return /* @__PURE__ */ jsx2("div", { className, "data-jumpy-component": "tabs", children: /* @__PURE__ */ jsxs2("div", { ref: scrollRef, "data-jumpy-slot": "tabs-scroll-container", role: "tablist", "aria-orientation": "horizontal", tabIndex: -1, children: [
4548
- items.map((item) => {
4549
- const active = item.key === value;
4550
- return /* @__PURE__ */ jsx2(
4551
- "button",
4552
- {
4553
- ref: (node) => {
4554
- if (node) tabRefs.current.set(item.key, node);
4555
- else tabRefs.current.delete(item.key);
4556
- },
4557
- type: "button",
4558
- role: "tab",
4559
- "aria-selected": active,
4560
- onClick: (event) => {
4561
- onChange(item.key);
4562
- event.currentTarget.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" });
4563
- },
4564
- "data-jumpy-component": "tab",
4565
- children: /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "tab-content", children: /* @__PURE__ */ jsx2("span", { "data-jumpy-slot": "tab-label", "data-text": item.label, children: item.label }) })
4566
- },
4567
- item.key
4568
- );
4569
- }),
4570
- /* @__PURE__ */ jsx2(
4571
- "div",
4572
- {
4573
- ref: indicatorRef,
4574
- "aria-hidden": "true",
4575
- "data-jumpy-slot": "tabs-indicator"
4576
- }
4577
- )
4578
- ] }) });
4579
- }
4580
- function JumpModal({ children }) {
4581
- return /* @__PURE__ */ jsx2(JumpDialog, { visible: true, children });
4582
- }
4583
116
  export {
4584
117
  BrandMark,
4585
118
  JumpAppShell,
@@ -4663,7 +196,9 @@ export {
4663
196
  animationEasingValue,
4664
197
  applySubtreeSelection,
4665
198
  borderWidthValue,
199
+ createJumpyPresetFromAccent,
4666
200
  createJumpyTheme,
201
+ createJumpyThemeFromAccent,
4667
202
  createJumpyThemeFromPreset,
4668
203
  defaultJumpyTheme,
4669
204
  getHeaderCheckboxProps,