@primer/react 38.0.0-rc.1 → 38.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/browser.esm.js +3 -3
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +3 -3
  5. package/dist/browser.umd.js.map +1 -1
  6. package/dist/components.css +660 -23
  7. package/generated/components.json +58 -121
  8. package/lib/AvatarStack/AvatarStack.d.ts +2 -3
  9. package/lib/AvatarStack/AvatarStack.d.ts.map +1 -1
  10. package/lib/AvatarStack/AvatarStack.js +1 -3
  11. package/lib/Banner/Banner.d.ts.map +1 -1
  12. package/lib/Banner/Banner.js +3 -1
  13. package/lib/Blankslate/Blankslate.js +38 -40
  14. package/lib/BranchName/BranchName.d.ts +6 -3
  15. package/lib/BranchName/BranchName.d.ts.map +1 -1
  16. package/lib/BranchName/BranchName.js +1 -3
  17. package/lib/Button/ButtonBase.js +2 -2
  18. package/lib/Checkbox/Checkbox.js +187 -56
  19. package/lib/CircleBadge/CircleBadge.d.ts +4 -0
  20. package/lib/CircleBadge/CircleBadge.d.ts.map +1 -1
  21. package/lib/CircleBadge/CircleBadge.js +4 -0
  22. package/lib/DataTable/useTable.js +63 -82
  23. package/lib/Details/Details.d.ts +2 -3
  24. package/lib/Details/Details.d.ts.map +1 -1
  25. package/lib/Details/Details.js +1 -3
  26. package/lib/FeatureFlags/FeatureFlags.js +10 -12
  27. package/lib/FilteredActionList/useAnnouncements.js +31 -40
  28. package/lib/LabelGroup/LabelGroup.d.ts +1 -2
  29. package/lib/LabelGroup/LabelGroup.d.ts.map +1 -1
  30. package/lib/LabelGroup/LabelGroup.js +13 -16
  31. package/lib/NavList/NavList.js +219 -53
  32. package/lib/PageLayout/PageLayout.js +53 -55
  33. package/lib/PointerBox/PointerBox.d.ts +8 -0
  34. package/lib/PointerBox/PointerBox.d.ts.map +1 -1
  35. package/lib/PointerBox/PointerBox.js +4 -0
  36. package/{lib-esm/ProgressBar/ProgressBar-a0957632.css → lib/ProgressBar/ProgressBar-36f689cb.css} +2 -2
  37. package/lib/ProgressBar/ProgressBar-36f689cb.css.map +1 -0
  38. package/lib/ProgressBar/ProgressBar.d.ts +3 -4
  39. package/lib/ProgressBar/ProgressBar.d.ts.map +1 -1
  40. package/lib/ProgressBar/ProgressBar.module.css.js +1 -1
  41. package/lib/ProgressBar/index.d.ts +2 -2
  42. package/lib/ProgressBar/index.d.ts.map +1 -1
  43. package/lib/Select/Select.d.ts +1 -1
  44. package/lib/Select/Select.d.ts.map +1 -1
  45. package/lib/Select/Select.js +53 -65
  46. package/lib/SelectPanel/{SelectPanel-06900070.css → SelectPanel-e11ce210.css} +2 -2
  47. package/lib/SelectPanel/SelectPanel-e11ce210.css.map +1 -0
  48. package/lib/SelectPanel/SelectPanel.d.ts +1 -1
  49. package/lib/SelectPanel/SelectPanel.d.ts.map +1 -1
  50. package/lib/SelectPanel/SelectPanel.js +2 -9
  51. package/lib/SelectPanel/SelectPanel.module.css.js +2 -2
  52. package/lib/SideNav.d.ts +2 -3
  53. package/lib/SideNav.d.ts.map +1 -1
  54. package/lib/SideNav.js +4 -10
  55. package/lib/StateLabel/StateLabel-50420ff5.css +2 -0
  56. package/lib/StateLabel/StateLabel-50420ff5.css.map +1 -0
  57. package/lib/StateLabel/StateLabel.d.ts +6 -5
  58. package/lib/StateLabel/StateLabel.d.ts.map +1 -1
  59. package/lib/StateLabel/StateLabel.js +54 -126
  60. package/lib/StateLabel/StateLabel.module.css.js +2 -2
  61. package/lib/TextInputWithTokens/TextInputWithTokens.d.ts +6 -0
  62. package/lib/TextInputWithTokens/TextInputWithTokens.d.ts.map +1 -1
  63. package/lib/TextInputWithTokens/TextInputWithTokens.js +343 -331
  64. package/lib/ToggleSwitch/ToggleSwitch-4b23d166.css +2 -0
  65. package/lib/ToggleSwitch/ToggleSwitch-4b23d166.css.map +1 -0
  66. package/lib/ToggleSwitch/ToggleSwitch.d.ts +1 -3
  67. package/lib/ToggleSwitch/ToggleSwitch.d.ts.map +1 -1
  68. package/lib/ToggleSwitch/ToggleSwitch.js +120 -152
  69. package/lib/ToggleSwitch/ToggleSwitch.module.css.js +2 -2
  70. package/lib/Token/IssueLabelToken-0dbbbcdf.css +2 -0
  71. package/lib/Token/IssueLabelToken-0dbbbcdf.css.map +1 -0
  72. package/lib/Token/IssueLabelToken.d.ts.map +1 -1
  73. package/lib/Token/IssueLabelToken.js +7 -65
  74. package/lib/Token/IssueLabelToken.module.css.js +1 -1
  75. package/lib/Token/TokenBase.js +73 -82
  76. package/lib/Token/_RemoveTokenButton.js +106 -26
  77. package/lib/Tooltip/Tooltip.js +15 -17
  78. package/lib/TreeView/TreeView.js +18 -20
  79. package/lib/deprecated/ActionList/List.d.ts.map +1 -1
  80. package/lib/deprecated/ActionList/List.js +115 -138
  81. package/lib/deprecated/ActionMenu.js +19 -21
  82. package/lib/deprecated/index.d.ts +2 -0
  83. package/lib/deprecated/index.d.ts.map +1 -1
  84. package/lib/deprecated/index.js +2 -0
  85. package/lib/hooks/useMenuKeyboardNavigation.js +23 -43
  86. package/lib/hooks/useMnemonics.js +37 -76
  87. package/lib/hooks/useOpenAndCloseFocus.js +7 -14
  88. package/lib/hooks/useOverflow.js +7 -11
  89. package/lib/hooks/useScrollFlash.js +25 -14
  90. package/lib/index.d.ts +4 -3
  91. package/lib/index.d.ts.map +1 -1
  92. package/lib/index.js +10 -10
  93. package/lib/internal/components/BoxWithFallback.js +40 -35
  94. package/lib/internal/components/Caret-e686f04c.css +2 -0
  95. package/lib/internal/components/Caret-e686f04c.css.map +1 -0
  96. package/lib/internal/components/Caret.d.ts +1 -3
  97. package/lib/internal/components/Caret.d.ts.map +1 -1
  98. package/lib/internal/components/Caret.js +14 -48
  99. package/lib/internal/components/Caret.module.css.js +7 -0
  100. package/lib/internal/components/LiveRegion.js +8 -10
  101. package/lib/internal/utils/getGlobalFocusStyles.js +1 -1
  102. package/lib-esm/AvatarStack/AvatarStack.d.ts +2 -3
  103. package/lib-esm/AvatarStack/AvatarStack.js +1 -3
  104. package/lib-esm/Banner/Banner.js +3 -1
  105. package/lib-esm/Blankslate/Blankslate.js +38 -40
  106. package/lib-esm/BranchName/BranchName.d.ts +6 -3
  107. package/lib-esm/BranchName/BranchName.js +1 -3
  108. package/lib-esm/Button/ButtonBase.js +2 -2
  109. package/lib-esm/Checkbox/Checkbox.js +187 -56
  110. package/lib-esm/CircleBadge/CircleBadge.d.ts +4 -0
  111. package/lib-esm/CircleBadge/CircleBadge.js +4 -0
  112. package/lib-esm/DataTable/useTable.js +64 -83
  113. package/lib-esm/Details/Details.d.ts +2 -3
  114. package/lib-esm/Details/Details.js +1 -3
  115. package/lib-esm/FeatureFlags/FeatureFlags.js +10 -12
  116. package/lib-esm/FilteredActionList/useAnnouncements.js +31 -40
  117. package/lib-esm/LabelGroup/LabelGroup.d.ts +1 -2
  118. package/lib-esm/LabelGroup/LabelGroup.js +13 -16
  119. package/lib-esm/NavList/NavList.js +219 -53
  120. package/lib-esm/PageLayout/PageLayout.js +53 -55
  121. package/lib-esm/PointerBox/PointerBox.d.ts +8 -0
  122. package/lib-esm/PointerBox/PointerBox.js +4 -0
  123. package/{lib/ProgressBar/ProgressBar-a0957632.css → lib-esm/ProgressBar/ProgressBar-36f689cb.css} +2 -2
  124. package/lib-esm/ProgressBar/ProgressBar-36f689cb.css.map +1 -0
  125. package/lib-esm/ProgressBar/ProgressBar.d.ts +3 -4
  126. package/lib-esm/ProgressBar/ProgressBar.module.css.js +1 -1
  127. package/lib-esm/ProgressBar/index.d.ts +2 -2
  128. package/lib-esm/Select/Select.d.ts +1 -1
  129. package/lib-esm/Select/Select.js +53 -65
  130. package/lib-esm/SelectPanel/{SelectPanel-06900070.css → SelectPanel-e11ce210.css} +2 -2
  131. package/lib-esm/SelectPanel/SelectPanel-e11ce210.css.map +1 -0
  132. package/lib-esm/SelectPanel/SelectPanel.d.ts +1 -1
  133. package/lib-esm/SelectPanel/SelectPanel.js +2 -9
  134. package/lib-esm/SelectPanel/SelectPanel.module.css.js +2 -2
  135. package/lib-esm/SideNav.d.ts +2 -3
  136. package/lib-esm/SideNav.js +4 -10
  137. package/lib-esm/StateLabel/StateLabel-50420ff5.css +2 -0
  138. package/lib-esm/StateLabel/StateLabel-50420ff5.css.map +1 -0
  139. package/lib-esm/StateLabel/StateLabel.d.ts +6 -5
  140. package/lib-esm/StateLabel/StateLabel.js +55 -123
  141. package/lib-esm/StateLabel/StateLabel.module.css.js +2 -2
  142. package/lib-esm/TextInputWithTokens/TextInputWithTokens.d.ts +6 -0
  143. package/lib-esm/TextInputWithTokens/TextInputWithTokens.js +343 -331
  144. package/lib-esm/ToggleSwitch/ToggleSwitch-4b23d166.css +2 -0
  145. package/lib-esm/ToggleSwitch/ToggleSwitch-4b23d166.css.map +1 -0
  146. package/lib-esm/ToggleSwitch/ToggleSwitch.d.ts +1 -3
  147. package/lib-esm/ToggleSwitch/ToggleSwitch.js +120 -151
  148. package/lib-esm/ToggleSwitch/ToggleSwitch.module.css.js +2 -2
  149. package/lib-esm/Token/IssueLabelToken-0dbbbcdf.css +2 -0
  150. package/lib-esm/Token/IssueLabelToken-0dbbbcdf.css.map +1 -0
  151. package/lib-esm/Token/IssueLabelToken.js +7 -65
  152. package/lib-esm/Token/IssueLabelToken.module.css.js +1 -1
  153. package/lib-esm/Token/TokenBase.js +73 -82
  154. package/lib-esm/Token/_RemoveTokenButton.js +106 -26
  155. package/lib-esm/Tooltip/Tooltip.js +15 -17
  156. package/lib-esm/TreeView/TreeView.js +18 -20
  157. package/lib-esm/deprecated/ActionList/List.js +116 -138
  158. package/lib-esm/deprecated/ActionMenu.js +19 -21
  159. package/lib-esm/deprecated/index.d.ts +2 -0
  160. package/lib-esm/deprecated/index.js +1 -0
  161. package/lib-esm/hooks/useMenuKeyboardNavigation.js +23 -43
  162. package/lib-esm/hooks/useMnemonics.js +37 -76
  163. package/lib-esm/hooks/useOpenAndCloseFocus.js +7 -14
  164. package/lib-esm/hooks/useOverflow.js +7 -11
  165. package/lib-esm/hooks/useScrollFlash.js +25 -14
  166. package/lib-esm/index.d.ts +4 -3
  167. package/lib-esm/index.js +1 -1
  168. package/lib-esm/internal/components/BoxWithFallback.js +40 -35
  169. package/lib-esm/internal/components/Caret-e686f04c.css +2 -0
  170. package/lib-esm/internal/components/Caret-e686f04c.css.map +1 -0
  171. package/lib-esm/internal/components/Caret.d.ts +1 -3
  172. package/lib-esm/internal/components/Caret.js +14 -44
  173. package/lib-esm/internal/components/Caret.module.css.js +5 -0
  174. package/lib-esm/internal/components/LiveRegion.js +8 -10
  175. package/lib-esm/internal/utils/getGlobalFocusStyles.js +1 -1
  176. package/package.json +10 -10
  177. package/lib/CircleOcticon/CircleOcticon.d.ts +0 -16
  178. package/lib/CircleOcticon/CircleOcticon.d.ts.map +0 -1
  179. package/lib/CircleOcticon/CircleOcticon.js +0 -99
  180. package/lib/CircleOcticon/index.d.ts +0 -3
  181. package/lib/CircleOcticon/index.d.ts.map +0 -1
  182. package/lib/ProgressBar/ProgressBar-a0957632.css.map +0 -1
  183. package/lib/SelectPanel/SelectPanel-06900070.css.map +0 -1
  184. package/lib/StateLabel/StateLabel-cd27f475.css +0 -2
  185. package/lib/StateLabel/StateLabel-cd27f475.css.map +0 -1
  186. package/lib/ToggleSwitch/ToggleSwitch-65936b4b.css +0 -4
  187. package/lib/ToggleSwitch/ToggleSwitch-65936b4b.css.map +0 -1
  188. package/lib/Token/IssueLabelToken-99c9b914.css +0 -2
  189. package/lib/Token/IssueLabelToken-99c9b914.css.map +0 -1
  190. package/lib-esm/CircleOcticon/CircleOcticon.d.ts +0 -16
  191. package/lib-esm/CircleOcticon/CircleOcticon.js +0 -97
  192. package/lib-esm/CircleOcticon/index.d.ts +0 -3
  193. package/lib-esm/ProgressBar/ProgressBar-a0957632.css.map +0 -1
  194. package/lib-esm/SelectPanel/SelectPanel-06900070.css.map +0 -1
  195. package/lib-esm/StateLabel/StateLabel-cd27f475.css +0 -2
  196. package/lib-esm/StateLabel/StateLabel-cd27f475.css.map +0 -1
  197. package/lib-esm/ToggleSwitch/ToggleSwitch-65936b4b.css +0 -4
  198. package/lib-esm/ToggleSwitch/ToggleSwitch-65936b4b.css.map +0 -1
  199. package/lib-esm/Token/IssueLabelToken-99c9b914.css +0 -2
  200. package/lib-esm/Token/IssueLabelToken-99c9b914.css.map +0 -1
@@ -0,0 +1,2 @@
1
+ .prc-ToggleSwitch-ToggleSwitch-E4lp0{--toggleSwitch-transition-duration:80ms;--toggleSwitch-transition-easing:cubic-bezier(0.5,1,0.89,1);align-items:center;display:inline-flex}.prc-ToggleSwitch-ToggleSwitch-E4lp0:where([data-status-label-position=start]){flex-direction:row}.prc-ToggleSwitch-ToggleSwitch-E4lp0:where([data-status-label-position=end]){flex-direction:row-reverse}.prc-ToggleSwitch-LoadingSpinner-jCYtC{display:inline-flex}.prc-ToggleSwitch-LoadingSpinner-jCYtC:where([data-status-label-position=end]){margin-left:var(--base-size-8,.5rem);margin-right:0}.prc-ToggleSwitch-StatusText-hWpj2{color:var(--fgColor-default,var(--color-fg-default));cursor:pointer;font-size:var(--text-body-size-medium,.875rem);margin-left:var(--base-size-8,.5rem);margin-right:var(--base-size-8,.5rem);position:relative}.prc-ToggleSwitch-StatusText-hWpj2:where([data-disabled=true]){color:var(--fgColor-muted,var(--color-fg-muted));cursor:not-allowed}.prc-ToggleSwitch-StatusText-hWpj2:where([data-size=small]){font-size:var(--text-body-size-small,.75rem)}.prc-ToggleSwitch-StatusText-hWpj2:where([data-size=medium]){font-size:var(--text-body-size-medium,.875rem)}.prc-ToggleSwitch-StatusTextItem-fvvXa{display:block;text-align:right}.prc-ToggleSwitch-StatusTextItem-fvvXa:where([data-hidden=true]){height:0;visibility:hidden}.prc-ToggleSwitch-SwitchButton-5LRHX{appearance:none;border-radius:var(--borderRadius-medium,.375rem);border-style:solid;border-width:var(--borderWidth-thin,.0625rem);cursor:pointer;display:block;height:32px;overflow:hidden;padding:0;position:relative;-webkit-text-decoration:none;text-decoration:none;transition-duration:var(--toggleSwitch-transition-duration);transition-property:background-color,border-color;transition-timing-function:var(--toggleSwitch-transition-easing);-webkit-user-select:none;user-select:none;width:64px}.prc-ToggleSwitch-SwitchButton-5LRHX:focus-visible{outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:3px}.prc-ToggleSwitch-SwitchButton-5LRHX:focus:not(:focus-visible){outline:1px solid transparent}@media (pointer:coarse){.prc-ToggleSwitch-SwitchButton-5LRHX:before{content:"";left:0;min-height:44px;position:absolute;right:0;top:50%;transform:translateY(-50%)}}@media (prefers-reduced-motion){.prc-ToggleSwitch-SwitchButton-5LRHX,.prc-ToggleSwitch-SwitchButton-5LRHX *{transition:none}}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-size=small]){height:24px;width:48px}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-disabled=true]){background-color:var(--controlTrack-bgColor-disabled,var(--color-switch-track-disabled-bg,#8c959f));border-color:transparent;cursor:not-allowed;transition-property:none}@media (forced-colors:active){.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-disabled=true]){border-color:GrayText}}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=false]:not([data-disabled=true])){background-color:var(--controlTrack-bgColor-rest,var(--color-switch-track-bg,#eaeef2));border-color:var(--controlTrack-borderColor-rest,var(--color-switch-track-border))}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=false]:not([data-disabled=true]):focus-visible),.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=false]:not([data-disabled=true]):hover){background-color:var(--controlTrack-bgColor-hover,var(--color-switch-track-hover-bg,#dfe6ec))}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=false]:not([data-disabled=true]):active),.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=false]:not([data-disabled=true]):active:focus-visible){background-color:var(--controlTrack-bgColor-active,var(--color-switch-track-active-bg,#d9e0e8))}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=true]:not([data-disabled=true])){background-color:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg,#0969da));border-color:var(--control-checked-borderColor-rest,transparent)}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=true]:not([data-disabled=true]):focus-visible),.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=true]:not([data-disabled=true]):hover){background-color:var(--control-checked-bgColor-hover,var(--color-switch-track-checked-hover-bg,#0860ca))}.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=true]:not([data-disabled=true]):active),.prc-ToggleSwitch-SwitchButton-5LRHX:where([data-checked=true]:not([data-disabled=true]):active:focus-visible){background-color:var(--control-checked-bgColor-active,var(--color-switch-track-checked-active-bg,#0757ba))}.prc-ToggleSwitch-SwitchButtonContent-nv4lE{align-items:center;display:flex;height:100%;overflow:hidden;width:100%}.prc-ToggleSwitch-IconContainer-zLC02{flex-basis:50%;flex-grow:1;flex-shrink:0;line-height:0;transition-duration:var(--toggleSwitch-transition-duration);transition-property:transform;transition-timing-function:var(--toggleSwitch-transition-easing)}@media (prefers-reduced-motion){.prc-ToggleSwitch-IconContainer-zLC02{transition:none}}.prc-ToggleSwitch-LineIconContainer-7sQm8{color:var(--control-checked-fgColor-rest,var(--color-switch-track-checked-fg,#fff))}.prc-ToggleSwitch-LineIconContainer-7sQm8:where([data-disabled=true]){color:var(--control-checked-fgColor-disabled,var(--color-switch-track-checked-disabled-fg,#fff))}.prc-ToggleSwitch-LineIconContainer-7sQm8:where([data-checked=true]){transform:translateX(0)}.prc-ToggleSwitch-LineIconContainer-7sQm8:where([data-checked=false]){transform:translateX(-100%)}.prc-ToggleSwitch-CircleIconContainer-gHYvi{color:var(--controlTrack-fgColor-rest,var(--color-switch-track-fg,#656d76))}.prc-ToggleSwitch-CircleIconContainer-gHYvi:where([data-disabled=true]){color:var(--controlTrack-fgColor-disabled,var(--color-switch-track-disabled-fg,#fff))}.prc-ToggleSwitch-CircleIconContainer-gHYvi:where([data-checked=true]){transform:translateX(100%)}.prc-ToggleSwitch-CircleIconContainer-gHYvi:where([data-checked=false]){transform:translateX(0)}.prc-ToggleSwitch-ToggleKnob-2e7Rm{background-color:var(--controlKnob-bgColor-rest,var(--color-switch-knob-bg,#fff));border-color:var(--controlKnob-borderColor-rest,var(--color-switch-knob-border,#858f99));border-radius:calc(var(--borderRadius-medium,.375rem) - var(--borderWidth-thin,.0625rem));border-style:solid;border-width:var(--borderWidth-thin,.0625rem);bottom:0;position:absolute;top:0;transition-duration:var(--toggleSwitch-transition-duration);transition-property:transform;transition-timing-function:var(--toggleSwitch-transition-easing);width:50%;z-index:1}@media (prefers-reduced-motion){.prc-ToggleSwitch-ToggleKnob-2e7Rm{transition:none}}.prc-ToggleSwitch-ToggleKnob-2e7Rm:where([data-checked=false]){transform:translateX(0)}.prc-ToggleSwitch-ToggleKnob-2e7Rm:where([data-checked=true]){border-color:var(--controlKnob-borderColor-checked,var(--color-switch-knob-checked-border,#0969da));transform:translateX(100%)}.prc-ToggleSwitch-ToggleKnob-2e7Rm:where([data-disabled=true]){border-color:var(--controlTrack-bgColor-disabled,var(--color-switch-track-disabled-bg,#8c959f))}@media (forced-colors:active){.prc-ToggleSwitch-ToggleKnob-2e7Rm:where([data-disabled=true]){color:GrayText}}
2
+ /*# sourceMappingURL=ToggleSwitch-4b23d166.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ToggleSwitch/ToggleSwitch.module.css"],"names":[],"mappings":"AAAA,qCACE,uCAAwC,CACxC,2DAA+D,CAG/D,kBAAmB,CADnB,mBAEF,CAEA,+EACE,kBACF,CAEA,6EACE,0BACF,CAEA,uCACE,mBACF,CAEA,+EAEE,oCAA+B,CAD/B,cAEF,CAEA,mCAIE,oDAA6B,CAE7B,cAAe,CADf,8CAAuC,CAJvC,oCAA+B,CAC/B,qCAAgC,CAChC,iBAIF,CAEA,+DAEE,gDAA2B,CAD3B,kBAEF,CAEA,4DACE,4CACF,CAEA,6DACE,8CACF,CAEA,uCACE,aAAc,CACd,gBACF,CAEA,iEAEE,QAAS,CADT,iBAEF,CAEA,qCAGE,eAAgB,CAMhB,gDAAyC,CACzC,kBAAmB,CACnB,6CAAqC,CAVrC,cAAe,CAWf,aAAc,CAKd,WAAY,CAHZ,eAAgB,CAThB,SAAU,CAQV,iBAAkB,CATlB,4BAAqB,CAArB,oBAAqB,CAGrB,2DAA4D,CAD5D,iDAAmD,CAEnD,gEAAiE,CANjE,wBAAiB,CAAjB,gBAAiB,CAgBjB,UAiCF,CA9BE,mDACE,kEAA4C,CAC5C,kBACF,CAEA,+DACE,6BACF,CAGA,wBACE,4CACE,UAAW,CAEX,MAAO,CAIP,eAAgB,CALhB,iBAAkB,CAElB,OAAQ,CAER,OAAQ,CADR,0BAGF,CACF,CAGA,gCAGE,4EACE,eACF,CACF,CAIF,8DACE,WAAY,CACZ,UACF,CAGA,iEAEE,mGAAsG,CACtG,wBAAyB,CACzB,kBAAmB,CACnB,wBAKF,CAHE,8BAPF,iEAQI,qBAEJ,CADE,CAGF,2FAEE,sFAAyF,CACzF,kFACF,CAEA,0MAGE,6FACF,CAEA,kNAGE,+FACF,CAEA,0FAEE,iGAAoG,CACpG,gEACF,CAEA,wMAGE,wGACF,CAEA,gNAGE,0GACF,CAEA,4CAEE,kBAAmB,CADnB,YAAa,CAGb,WAAY,CACZ,eAAgB,CAFhB,UAGF,CAEA,sCAGE,cAAe,CAFf,WAAY,CACZ,aAAc,CAGd,aAAc,CAEd,2DAA4D,CAD5D,6BAA8B,CAE9B,gEAKF,CAHE,gCAVF,sCAWI,eAEJ,CADE,CAGF,0CAEE,mFACF,CAEA,sEAEE,gGACF,CAEA,qEACE,uBACF,CAEA,sEACE,2BACF,CAEA,4CAEE,2EACF,CAEA,wEAEE,qFACF,CAEA,uEACE,0BACF,CAEA,wEACE,uBACF,CAEA,mCAEE,iFAAoF,CAIpF,wFAA2F,CAG3F,yFAAyE,CALzE,kBAAmB,CADnB,6CAAqC,CAUrC,QAAS,CAFT,iBAAkB,CAClB,KAAM,CAGN,2DAA4D,CAD5D,6BAA8B,CAE9B,gEAAiE,CANjE,SAAU,CAOV,SAKF,CAHE,gCAnBF,mCAoBI,eAEJ,CADE,CAGF,+DACE,uBACF,CAEA,8DAGE,mGAAsG,CAFtG,0BAGF,CAEA,+DAEE,+FAKF,CAHE,8BAJF,+DAKI,cAEJ,CADE","file":"ToggleSwitch-4b23d166.css","sourcesContent":[".ToggleSwitch {\n --toggleSwitch-transition-duration: 80ms;\n --toggleSwitch-transition-easing: cubic-bezier(0.5, 1, 0.89, 1);\n\n display: inline-flex;\n align-items: center;\n}\n\n.ToggleSwitch:where([data-status-label-position='start']) {\n flex-direction: row;\n}\n\n.ToggleSwitch:where([data-status-label-position='end']) {\n flex-direction: row-reverse;\n}\n\n.LoadingSpinner {\n display: inline-flex;\n}\n\n.LoadingSpinner:where([data-status-label-position='end']) {\n margin-right: 0;\n margin-left: var(--base-size-8);\n}\n\n.StatusText {\n margin-left: var(--base-size-8);\n margin-right: var(--base-size-8);\n position: relative;\n color: var(--fgColor-default);\n font-size: var(--text-body-size-medium);\n cursor: pointer;\n}\n\n.StatusText:where([data-disabled='true']) {\n cursor: not-allowed;\n color: var(--fgColor-muted);\n}\n\n.StatusText:where([data-size='small']) {\n font-size: var(--text-body-size-small);\n}\n\n.StatusText:where([data-size='medium']) {\n font-size: var(--text-body-size-medium);\n}\n\n.StatusTextItem {\n display: block;\n text-align: right;\n}\n\n.StatusTextItem:where([data-hidden='true']) {\n visibility: hidden;\n height: 0;\n}\n\n.SwitchButton {\n cursor: pointer;\n user-select: none;\n appearance: none;\n text-decoration: none;\n padding: 0;\n transition-property: background-color, border-color;\n transition-duration: var(--toggleSwitch-transition-duration);\n transition-timing-function: var(--toggleSwitch-transition-easing);\n border-radius: var(--borderRadius-medium);\n border-style: solid;\n border-width: var(--borderWidth-thin);\n display: block;\n position: relative;\n overflow: hidden;\n\n /* Default medium size */\n height: 32px;\n width: 64px;\n\n /* Focus styles */\n &:focus-visible {\n outline: 2px solid var(--focus-outlineColor);\n outline-offset: 3px;\n }\n\n &:focus:not(:focus-visible) {\n outline: solid 1px transparent;\n }\n\n /* Touch device support */\n @media (pointer: coarse) {\n &::before {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n transform: translateY(-50%);\n top: 50%;\n min-height: 44px;\n }\n }\n\n /* Reduced motion support */\n @media (prefers-reduced-motion) {\n transition: none;\n\n * {\n transition: none;\n }\n }\n}\n\n/* Size variants */\n.SwitchButton:where([data-size='small']) {\n height: 24px;\n width: 48px;\n}\n\n/* State variants */\n.SwitchButton:where([data-disabled='true']) {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--controlTrack-bgColor-disabled, var(--color-switch-track-disabled-bg, #8c959f));\n border-color: transparent;\n cursor: not-allowed;\n transition-property: none;\n\n @media (forced-colors: active) {\n border-color: GrayText;\n }\n}\n\n.SwitchButton:where([data-checked='false']:not([data-disabled='true'])) {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--controlTrack-bgColor-rest, var(--color-switch-track-bg, #eaeef2));\n border-color: var(--controlTrack-borderColor-rest);\n}\n\n.SwitchButton:where([data-checked='false']:not([data-disabled='true']):hover),\n.SwitchButton:where([data-checked='false']:not([data-disabled='true']):focus-visible) {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--controlTrack-bgColor-hover, var(--color-switch-track-hover-bg, hsla(210deg, 24%, 90%, 1)));\n}\n\n.SwitchButton:where([data-checked='false']:not([data-disabled='true']):active),\n.SwitchButton:where([data-checked='false']:not([data-disabled='true']):active:focus-visible) {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--controlTrack-bgColor-active, var(--color-switch-track-active-bg, hsla(210deg, 24%, 88%, 1)));\n}\n\n.SwitchButton:where([data-checked='true']:not([data-disabled='true'])) {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--control-checked-bgColor-rest, var(--color-switch-track-checked-bg, #0969da));\n border-color: var(--control-checked-borderColor-rest, transparent);\n}\n\n.SwitchButton:where([data-checked='true']:not([data-disabled='true']):hover),\n.SwitchButton:where([data-checked='true']:not([data-disabled='true']):focus-visible) {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--control-checked-bgColor-hover, var(--color-switch-track-checked-hover-bg, #0860ca));\n}\n\n.SwitchButton:where([data-checked='true']:not([data-disabled='true']):active),\n.SwitchButton:where([data-checked='true']:not([data-disabled='true']):active:focus-visible) {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--control-checked-bgColor-active, var(--color-switch-track-checked-active-bg, #0757ba));\n}\n\n.SwitchButtonContent {\n display: flex;\n align-items: center;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.IconContainer {\n flex-grow: 1;\n flex-shrink: 0;\n flex-basis: 50%;\n /* stylelint-disable-next-line primer/typography */\n line-height: 0;\n transition-property: transform;\n transition-duration: var(--toggleSwitch-transition-duration);\n transition-timing-function: var(--toggleSwitch-transition-easing);\n\n @media (prefers-reduced-motion) {\n transition: none;\n }\n}\n\n.LineIconContainer {\n /* stylelint-disable-next-line primer/colors */\n color: var(--control-checked-fgColor-rest, var(--color-switch-track-checked-fg, #fff));\n}\n\n.LineIconContainer:where([data-disabled='true']) {\n /* stylelint-disable-next-line primer/colors */\n color: var(--control-checked-fgColor-disabled, var(--color-switch-track-checked-disabled-fg, #fff));\n}\n\n.LineIconContainer:where([data-checked='true']) {\n transform: translateX(0);\n}\n\n.LineIconContainer:where([data-checked='false']) {\n transform: translateX(-100%);\n}\n\n.CircleIconContainer {\n /* stylelint-disable-next-line primer/colors */\n color: var(--controlTrack-fgColor-rest, var(--color-switch-track-fg, #656d76));\n}\n\n.CircleIconContainer:where([data-disabled='true']) {\n /* stylelint-disable-next-line primer/colors */\n color: var(--controlTrack-fgColor-disabled, var(--color-switch-track-disabled-fg, #fff));\n}\n\n.CircleIconContainer:where([data-checked='true']) {\n transform: translateX(100%);\n}\n\n.CircleIconContainer:where([data-checked='false']) {\n transform: translateX(0);\n}\n\n.ToggleKnob {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--controlKnob-bgColor-rest, var(--color-switch-knob-bg, #fff));\n border-width: var(--borderWidth-thin);\n border-style: solid;\n /* stylelint-disable-next-line primer/colors */\n border-color: var(--controlKnob-borderColor-rest, var(--color-switch-knob-border, #858f99));\n /* Use calc to account for 1px border around the control */\n /* stylelint-disable-next-line primer/borders */\n border-radius: calc(var(--borderRadius-medium) - var(--borderWidth-thin));\n width: 50%;\n position: absolute;\n top: 0;\n bottom: 0;\n transition-property: transform;\n transition-duration: var(--toggleSwitch-transition-duration);\n transition-timing-function: var(--toggleSwitch-transition-easing);\n z-index: 1;\n\n @media (prefers-reduced-motion) {\n transition: none;\n }\n}\n\n.ToggleKnob:where([data-checked='false']) {\n transform: translateX(0);\n}\n\n.ToggleKnob:where([data-checked='true']) {\n transform: translateX(100%);\n /* stylelint-disable-next-line primer/colors */\n border-color: var(--controlKnob-borderColor-checked, var(--color-switch-knob-checked-border, #0969da));\n}\n\n.ToggleKnob:where([data-disabled='true']) {\n /* stylelint-disable-next-line primer/colors */\n border-color: var(--controlTrack-bgColor-disabled, var(--color-switch-track-disabled-bg, #8c959f));\n\n @media (forced-colors: active) {\n color: GrayText;\n }\n}\n"]}
@@ -35,8 +35,6 @@ export interface ToggleSwitchProps extends Omit<React.HTMLAttributes<HTMLDivElem
35
35
  /** type of button to account for behavior when added to a form*/
36
36
  buttonType?: 'button' | 'submit' | 'reset';
37
37
  }
38
- declare const ToggleSwitch: React.ForwardRefExoticComponent<ToggleSwitchProps & {
39
- children?: React.ReactNode | undefined;
40
- } & React.RefAttributes<HTMLButtonElement>>;
38
+ declare const ToggleSwitch: React.ForwardRefExoticComponent<ToggleSwitchProps & React.RefAttributes<HTMLButtonElement>>;
41
39
  export default ToggleSwitch;
42
40
  //# sourceMappingURL=ToggleSwitch.d.ts.map
@@ -1,10 +1,6 @@
1
1
  import { c } from 'react-compiler-runtime';
2
2
  import React, { useEffect } from 'react';
3
- import styled, { css } from 'styled-components';
4
- import { variant } from 'styled-system';
5
3
  import { clsx } from 'clsx';
6
- import { get } from '../constants.js';
7
- import getGlobalFocusStyles from '../internal/utils/getGlobalFocusStyles.js';
8
4
  import VisuallyHidden from '../_VisuallyHidden.js';
9
5
  import useSafeTimeout from '../hooks/useSafeTimeout.js';
10
6
  import classes from './ToggleSwitch.module.css.js';
@@ -14,17 +10,6 @@ import { useId } from '../hooks/useId.js';
14
10
  import { AriaStatus } from '../live-region/AriaStatus.js';
15
11
  import StyledSpinner from '../Spinner/Spinner.js';
16
12
 
17
- const TRANSITION_DURATION = '80ms';
18
- const EASE_OUT_QUAD_CURVE = 'cubic-bezier(0.5, 1, 0.89, 1)';
19
- const sizeVariants = variant({
20
- prop: 'size',
21
- variants: {
22
- small: {
23
- height: '24px',
24
- width: '48px'
25
- }
26
- }
27
- });
28
13
  const CircleIcon = t0 => {
29
14
  const $ = c(4);
30
15
  const {
@@ -97,32 +82,8 @@ const LineIcon = t0 => {
97
82
  }
98
83
  return t4;
99
84
  };
100
- const SwitchButton = styled.button.withConfig({
101
- displayName: "ToggleSwitch__SwitchButton",
102
- componentId: "sc-e6gszy-0"
103
- })(["vertical-align:middle;cursor:pointer;user-select:none;appearance:none;text-decoration:none;padding:0;transition-property:background-color,border-color;transition-duration:", ";transition-timing-function:", ";border-radius:", ";border-style:solid;border-width:1px;display:block;height:32px;width:64px;position:relative;overflow:hidden;", ";@media (pointer:coarse){&:before{content:'';position:absolute;left:0;right:0;transform:translateY(-50%);top:50%;min-height:44px;}}@media (prefers-reduced-motion){transition:none;*{transition:none;}}&:hover:not(:disabled):not([aria-disabled='true']),&:focus:focus-visible{background-color:", ";}&:active,&:active:focus-visible{background-color:", ";}", " ", ""], TRANSITION_DURATION, EASE_OUT_QUAD_CURVE, get('radii.2'), getGlobalFocusStyles('3px'), get('colors.switchTrack.hoverBg'), get('colors.switchTrack.activeBg'), props => {
104
- if (props['aria-disabled']) {
105
- return css(["@media (forced-colors:active){border-color:GrayText;}background-color:", ";border-color:transparent;cursor:not-allowed;transition-property:none;"], get('colors.switchTrack.disabledBg'));
106
- }
107
- if (props.checked) {
108
- return css(["background-color:", ";border-color:var(--control-checked-borderColor-rest,transparent);&:hover:not(:disabled):not([aria-disabled='true']),&:focus:focus-visible{background-color:", ";}&:active,&:active:focus-visible{background-color:", ";}"], get('colors.switchTrack.checked.bg'), get('colors.switchTrack.checked.hoverBg'), get('colors.switchTrack.checked.activeBg'));
109
- } else {
110
- return css(["background-color:", ";border-color:var(--controlTrack-borderColor-rest,transparent);&:active{background-color:", ";}"], get('colors.switchTrack.bg'), get('colors.switchTrack.activeBg'));
111
- }
112
- }, sizeVariants);
113
- const ToggleKnob = styled.div.withConfig({
114
- displayName: "ToggleSwitch__ToggleKnob",
115
- componentId: "sc-e6gszy-1"
116
- })(["background-color:", ";border-width:1px;border-style:solid;border-color:", ";border-radius:calc(", " - 1px);width:50%;position:absolute;top:0;bottom:0;transition-property:transform;transition-duration:", ";transition-timing-function:", ";transform:", ";z-index:1;@media (prefers-reduced-motion){transition:none;}", ""], get('colors.switchKnob.bg'), props => props['aria-disabled'] ? get('colors.switchTrack.disabledBg') : get('colors.switchKnob.border'), get('radii.2'), TRANSITION_DURATION, EASE_OUT_QUAD_CURVE, props => `translateX(${props.checked ? '100%' : '0px'})`, props => {
117
- if (props['aria-disabled']) {
118
- return css(["@media (forced-colors:active){color:GrayText;}border-color:", ";"], get('colors.switchTrack.disabledBg'));
119
- }
120
- if (props.checked) {
121
- return css(["border-color:", ";"], get('colors.switchKnob.checked.border'));
122
- }
123
- });
124
85
  const ToggleSwitch = /*#__PURE__*/React.forwardRef(function ToggleSwitch(props, ref) {
125
- const $ = c(89);
86
+ const $ = c(91);
126
87
  let ariaDescribedby;
127
88
  let ariaLabelledby;
128
89
  let checked;
@@ -299,44 +260,49 @@ const ToggleSwitch = /*#__PURE__*/React.forwardRef(function ToggleSwitch(props,
299
260
  t12 = $[39];
300
261
  }
301
262
  let t13;
302
- if ($[40] !== loading) {
303
- t13 = loading ? /*#__PURE__*/jsx(StyledSpinner, {
304
- size: "small",
305
- srText: null
263
+ if ($[40] !== loading || $[41] !== statusLabelPosition) {
264
+ t13 = loading ? /*#__PURE__*/jsx("div", {
265
+ className: classes.LoadingSpinner,
266
+ "data-status-label-position": statusLabelPosition,
267
+ children: /*#__PURE__*/jsx(StyledSpinner, {
268
+ size: "small",
269
+ srText: null
270
+ })
306
271
  }) : null;
307
272
  $[40] = loading;
308
- $[41] = t13;
273
+ $[41] = statusLabelPosition;
274
+ $[42] = t13;
309
275
  } else {
310
- t13 = $[41];
276
+ t13 = $[42];
311
277
  }
312
278
  const t14 = !acceptsInteraction;
313
279
  const t15 = !isOn;
314
280
  let t16;
315
- if ($[42] !== t15) {
316
- t16 = /*#__PURE__*/jsx("div", {
281
+ if ($[43] !== t15) {
282
+ t16 = /*#__PURE__*/jsx("span", {
317
283
  className: classes.StatusTextItem,
318
284
  "data-hidden": t15,
319
285
  children: "On"
320
286
  });
321
- $[42] = t15;
322
- $[43] = t16;
287
+ $[43] = t15;
288
+ $[44] = t16;
323
289
  } else {
324
- t16 = $[43];
290
+ t16 = $[44];
325
291
  }
326
292
  let t17;
327
- if ($[44] !== isOn) {
328
- t17 = /*#__PURE__*/jsx("div", {
293
+ if ($[45] !== isOn) {
294
+ t17 = /*#__PURE__*/jsx("span", {
329
295
  className: classes.StatusTextItem,
330
296
  "data-hidden": isOn,
331
297
  children: "Off"
332
298
  });
333
- $[44] = isOn;
334
- $[45] = t17;
299
+ $[45] = isOn;
300
+ $[46] = t17;
335
301
  } else {
336
- t17 = $[45];
302
+ t17 = $[46];
337
303
  }
338
304
  let t18;
339
- if ($[46] !== handleToggleClick || $[47] !== size || $[48] !== t14 || $[49] !== t16 || $[50] !== t17) {
305
+ if ($[47] !== handleToggleClick || $[48] !== size || $[49] !== t14 || $[50] !== t16 || $[51] !== t17) {
340
306
  t18 = /*#__PURE__*/jsxs("span", {
341
307
  className: classes.StatusText,
342
308
  "data-size": size,
@@ -345,146 +311,149 @@ const ToggleSwitch = /*#__PURE__*/React.forwardRef(function ToggleSwitch(props,
345
311
  onClick: handleToggleClick,
346
312
  children: [t16, t17]
347
313
  });
348
- $[46] = handleToggleClick;
349
- $[47] = size;
350
- $[48] = t14;
351
- $[49] = t16;
352
- $[50] = t17;
353
- $[51] = t18;
314
+ $[47] = handleToggleClick;
315
+ $[48] = size;
316
+ $[49] = t14;
317
+ $[50] = t16;
318
+ $[51] = t17;
319
+ $[52] = t18;
354
320
  } else {
355
- t18 = $[51];
321
+ t18 = $[52];
356
322
  }
357
- const t19 = isLoadingLabelVisible || ariaDescribedby ? switchButtonDescribedBy : undefined;
358
- const t20 = !acceptsInteraction;
323
+ const t19 = !acceptsInteraction;
324
+ const t20 = isLoadingLabelVisible || ariaDescribedby ? switchButtonDescribedBy : undefined;
359
325
  const t21 = !acceptsInteraction;
360
- let t22;
361
- if ($[52] !== size) {
362
- t22 = /*#__PURE__*/jsx(LineIcon, {
326
+ const t22 = !acceptsInteraction;
327
+ let t23;
328
+ if ($[53] !== size) {
329
+ t23 = /*#__PURE__*/jsx(LineIcon, {
363
330
  size: size
364
331
  });
365
- $[52] = size;
366
- $[53] = t22;
332
+ $[53] = size;
333
+ $[54] = t23;
367
334
  } else {
368
- t22 = $[53];
335
+ t23 = $[54];
369
336
  }
370
- let t23;
371
- if ($[54] !== isOn || $[55] !== t21 || $[56] !== t22) {
372
- t23 = /*#__PURE__*/jsx("div", {
373
- className: classes.IconBox,
374
- "data-type": "on",
337
+ let t24;
338
+ if ($[55] !== isOn || $[56] !== t22 || $[57] !== t23) {
339
+ t24 = /*#__PURE__*/jsx("div", {
340
+ className: `${classes.IconContainer} ${classes.LineIconContainer}`,
375
341
  "data-checked": isOn,
376
- "data-disabled": t21,
377
- children: t22
342
+ "data-disabled": t22,
343
+ children: t23
378
344
  });
379
- $[54] = isOn;
380
- $[55] = t21;
345
+ $[55] = isOn;
381
346
  $[56] = t22;
382
347
  $[57] = t23;
348
+ $[58] = t24;
383
349
  } else {
384
- t23 = $[57];
350
+ t24 = $[58];
385
351
  }
386
- const t24 = !acceptsInteraction;
387
- let t25;
388
- if ($[58] !== size) {
389
- t25 = /*#__PURE__*/jsx(CircleIcon, {
352
+ const t25 = !acceptsInteraction;
353
+ let t26;
354
+ if ($[59] !== size) {
355
+ t26 = /*#__PURE__*/jsx(CircleIcon, {
390
356
  size: size
391
357
  });
392
- $[58] = size;
393
- $[59] = t25;
358
+ $[59] = size;
359
+ $[60] = t26;
394
360
  } else {
395
- t25 = $[59];
361
+ t26 = $[60];
396
362
  }
397
- let t26;
398
- if ($[60] !== isOn || $[61] !== t24 || $[62] !== t25) {
399
- t26 = /*#__PURE__*/jsx("div", {
400
- className: classes.IconBox,
401
- "data-type": "off",
363
+ let t27;
364
+ if ($[61] !== isOn || $[62] !== t25 || $[63] !== t26) {
365
+ t27 = /*#__PURE__*/jsx("div", {
366
+ className: `${classes.IconContainer} ${classes.CircleIconContainer}`,
402
367
  "data-checked": isOn,
403
- "data-disabled": t24,
404
- children: t25
368
+ "data-disabled": t25,
369
+ children: t26
405
370
  });
406
- $[60] = isOn;
407
- $[61] = t24;
371
+ $[61] = isOn;
408
372
  $[62] = t25;
409
373
  $[63] = t26;
374
+ $[64] = t27;
410
375
  } else {
411
- t26 = $[63];
376
+ t27 = $[64];
412
377
  }
413
- let t27;
414
- if ($[64] !== t23 || $[65] !== t26) {
415
- t27 = /*#__PURE__*/jsxs("div", {
378
+ let t28;
379
+ if ($[65] !== t24 || $[66] !== t27) {
380
+ t28 = /*#__PURE__*/jsxs("div", {
381
+ className: classes.SwitchButtonContent,
416
382
  "aria-hidden": "true",
417
- className: classes.IconContainer,
418
- children: [t23, t26]
383
+ children: [t24, t27]
419
384
  });
420
- $[64] = t23;
421
- $[65] = t26;
385
+ $[65] = t24;
422
386
  $[66] = t27;
387
+ $[67] = t28;
423
388
  } else {
424
- t27 = $[66];
389
+ t28 = $[67];
425
390
  }
426
- const t28 = !acceptsInteraction;
427
- let t29;
428
- if ($[67] !== isOn || $[68] !== t28) {
429
- t29 = /*#__PURE__*/jsx(ToggleKnob, {
430
- "aria-hidden": "true",
431
- "aria-disabled": t28,
432
- checked: isOn
391
+ const t29 = !acceptsInteraction;
392
+ let t30;
393
+ if ($[68] !== isOn || $[69] !== t29) {
394
+ t30 = /*#__PURE__*/jsx("div", {
395
+ className: classes.ToggleKnob,
396
+ "data-checked": isOn,
397
+ "data-disabled": t29,
398
+ "aria-hidden": "true"
433
399
  });
434
- $[67] = isOn;
435
- $[68] = t28;
400
+ $[68] = isOn;
436
401
  $[69] = t29;
402
+ $[70] = t30;
437
403
  } else {
438
- t29 = $[69];
404
+ t30 = $[70];
439
405
  }
440
- let t30;
441
- if ($[70] !== ariaLabelledby || $[71] !== buttonType || $[72] !== handleToggleClick || $[73] !== isOn || $[74] !== ref || $[75] !== size || $[76] !== t19 || $[77] !== t20 || $[78] !== t27 || $[79] !== t29) {
442
- t30 = /*#__PURE__*/jsxs(SwitchButton, {
406
+ let t31;
407
+ if ($[71] !== ariaLabelledby || $[72] !== buttonType || $[73] !== handleToggleClick || $[74] !== isOn || $[75] !== ref || $[76] !== size || $[77] !== t19 || $[78] !== t20 || $[79] !== t21 || $[80] !== t28 || $[81] !== t30) {
408
+ t31 = /*#__PURE__*/jsxs("button", {
443
409
  ref: ref,
444
410
  type: buttonType,
411
+ className: classes.SwitchButton,
412
+ "data-size": size,
413
+ "data-checked": isOn,
414
+ "data-disabled": t19,
445
415
  onClick: handleToggleClick,
446
416
  "aria-labelledby": ariaLabelledby,
447
- "aria-describedby": t19,
417
+ "aria-describedby": t20,
448
418
  "aria-pressed": isOn,
449
- checked: isOn,
450
- size: size,
451
- "aria-disabled": t20,
452
- children: [t27, t29]
419
+ "aria-disabled": t21,
420
+ children: [t28, t30]
453
421
  });
454
- $[70] = ariaLabelledby;
455
- $[71] = buttonType;
456
- $[72] = handleToggleClick;
457
- $[73] = isOn;
458
- $[74] = ref;
459
- $[75] = size;
460
- $[76] = t19;
461
- $[77] = t20;
462
- $[78] = t27;
463
- $[79] = t29;
464
- $[80] = t30;
422
+ $[71] = ariaLabelledby;
423
+ $[72] = buttonType;
424
+ $[73] = handleToggleClick;
425
+ $[74] = isOn;
426
+ $[75] = ref;
427
+ $[76] = size;
428
+ $[77] = t19;
429
+ $[78] = t20;
430
+ $[79] = t21;
431
+ $[80] = t28;
432
+ $[81] = t30;
433
+ $[82] = t31;
465
434
  } else {
466
- t30 = $[80];
435
+ t31 = $[82];
467
436
  }
468
- let t31;
469
- if ($[81] !== rest || $[82] !== statusLabelPosition || $[83] !== t10 || $[84] !== t12 || $[85] !== t13 || $[86] !== t18 || $[87] !== t30) {
470
- t31 = /*#__PURE__*/jsxs("div", {
437
+ let t32;
438
+ if ($[83] !== rest || $[84] !== statusLabelPosition || $[85] !== t10 || $[86] !== t12 || $[87] !== t13 || $[88] !== t18 || $[89] !== t31) {
439
+ t32 = /*#__PURE__*/jsxs("div", {
471
440
  className: t10,
472
441
  "data-status-label-position": statusLabelPosition,
473
442
  ...rest,
474
- children: [t12, t13, t18, t30]
443
+ children: [t12, t13, t18, t31]
475
444
  });
476
- $[81] = rest;
477
- $[82] = statusLabelPosition;
478
- $[83] = t10;
479
- $[84] = t12;
480
- $[85] = t13;
481
- $[86] = t18;
482
- $[87] = t30;
483
- $[88] = t31;
445
+ $[83] = rest;
446
+ $[84] = statusLabelPosition;
447
+ $[85] = t10;
448
+ $[86] = t12;
449
+ $[87] = t13;
450
+ $[88] = t18;
451
+ $[89] = t31;
452
+ $[90] = t32;
484
453
  } else {
485
- t31 = $[88];
454
+ t32 = $[90];
486
455
  }
487
- return t31;
456
+ return t32;
488
457
  });
489
458
  if (process.env.NODE_ENV !== "production") {
490
459
  ToggleSwitch.displayName = 'ToggleSwitch';
@@ -1,5 +1,5 @@
1
- import './ToggleSwitch-65936b4b.css';
1
+ import './ToggleSwitch-4b23d166.css';
2
2
 
3
- var classes = {"ToggleSwitch":"prc-ToggleSwitch-ToggleSwitch-E4lp0","StatusText":"prc-ToggleSwitch-StatusText-hWpj2","StatusTextItem":"prc-ToggleSwitch-StatusTextItem-fvvXa","IconContainer":"prc-ToggleSwitch-IconContainer-zLC02","IconBox":"prc-ToggleSwitch-IconBox-NNOYG"};
3
+ var classes = {"ToggleSwitch":"prc-ToggleSwitch-ToggleSwitch-E4lp0","LoadingSpinner":"prc-ToggleSwitch-LoadingSpinner-jCYtC","StatusText":"prc-ToggleSwitch-StatusText-hWpj2","StatusTextItem":"prc-ToggleSwitch-StatusTextItem-fvvXa","SwitchButton":"prc-ToggleSwitch-SwitchButton-5LRHX","SwitchButtonContent":"prc-ToggleSwitch-SwitchButtonContent-nv4lE","IconContainer":"prc-ToggleSwitch-IconContainer-zLC02","LineIconContainer":"prc-ToggleSwitch-LineIconContainer-7sQm8","CircleIconContainer":"prc-ToggleSwitch-CircleIconContainer-gHYvi","ToggleKnob":"prc-ToggleSwitch-ToggleKnob-2e7Rm"};
4
4
 
5
5
  export { classes as default };
@@ -0,0 +1,2 @@
1
+ .prc-Token-IssueLabel-ZuoEW{--label-r:153;--label-g:153;--label-b:153;--label-h:0;--label-s:0;--label-l:60;--perceived-lightness:calc(var(--label-r)*0.2126/255 + var(--label-g)*0.7152/255 + var(--label-b)*0.0722/255);--lightness-switch:max(0,min(calc((var(--perceived-lightness) - var(--lightness-threshold))*-1000),1));border-style:solid;border-width:var(--borderWidth-thin,.0625rem);position:relative}.prc-Token-IssueLabel-ZuoEW:where([data-in-color-mode*=light],[data-in-color-mode=auto]){--lightness-threshold:0.453;--border-threshold:0.96;--border-alpha:max(0,min(calc((var(--perceived-lightness) - var(--border-threshold))*100),1));background:rgb(var(--label-r),var(--label-g),var(--label-b));border-color:hsla(var(--label-h),calc(var(--label-s)*1%),calc((var(--label-l) - 25)*1%),var(--border-alpha));color:hsl(0deg,0%,calc(var(--lightness-switch)*100%))}.prc-Token-IssueLabel-ZuoEW:where([data-in-color-mode*=dark]){--lightness-threshold:0.6;--background-alpha:0.18;--border-alpha:0.3;--lighten-by:calc((var(--lightness-threshold) - var(--perceived-lightness))*100*var(--lightness-switch));background:rgba(var(--label-r),var(--label-g),var(--label-b),var(--background-alpha));border-color:hsla(var(--label-h),calc(var(--label-s)*1%),calc((var(--label-l) + var(--lighten-by))*1%),var(--border-alpha));color:hsl(var(--label-h),calc(var(--label-s)*1%),calc((var(--label-l) + var(--lighten-by))*1%))}.prc-Token-IssueLabel-ZuoEW:where([data-selected=true][data-in-color-mode*=light],[data-selected=true][data-in-color-mode=auto]){background:hsl(var(--label-h),calc(var(--label-s)*1%),calc((var(--label-l) - 5)*1%))}.prc-Token-IssueLabel-ZuoEW:where([data-selected=true]){outline:none}.prc-Token-IssueLabel-ZuoEW:where([data-selected=true]):after{border-radius:var(--borderRadius-full,624.9375rem);bottom:calc(var(--base-size-2,.125rem)*-1);content:"";display:block;left:calc(var(--base-size-2,.125rem)*-1);pointer-events:none;position:absolute;right:calc(var(--base-size-2,.125rem)*-1);top:calc(var(--base-size-2,.125rem)*-1);z-index:1}.prc-Token-IssueLabel-ZuoEW:where([data-selected=true][data-in-color-mode*=light],[data-selected=true][data-in-color-mode=auto]):after{box-shadow:0 0 0 2px rgb(var(--label-r),var(--label-g),var(--label-b))}.prc-Token-IssueLabel-ZuoEW:where([data-selected=true][data-in-color-mode=dark]):after{box-shadow:0 0 0 2px hsl(var(--label-h),calc(var(--label-s)*1%),calc((var(--label-l) + var(--lighten-by))*1%))}.prc-Token-IssueLabel-ZuoEW:where([data-cursor-is-interactive=true]:hover[data-in-color-mode*=light],[data-cursor-is-interactive=true]:hover[data-in-color-mode=auto]){background-image:linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.15)),linear-gradient(rgb(var(--label-r),var(--label-g),var(--label-b)),rgb(var(--label-r),var(--label-g),var(--label-b)));box-shadow:var(--shadow-resting-medium,var(--color-shadow-medium))}.prc-Token-IssueLabel-ZuoEW:where([data-cursor-is-interactive=true]:hover[data-in-color-mode=dark]){background:hsla(var(--label-h),calc(var(--label-s)*1%),calc((var(--label-l) + 10)*1%),.3);box-shadow:var(--shadow-resting-medium,var(--color-shadow-medium))}.prc-Token-IssueLabel-ZuoEW:where([data-has-remove-button=true]){padding-right:0}.prc-Token-RemoveButton-H4Dmg:where([data-has-multiple-action-targets=true]){position:relative;z-index:1}
2
+ /*# sourceMappingURL=IssueLabelToken-0dbbbcdf.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Token/IssueLabelToken.module.css"],"names":[],"mappings":"AAAA,4BAEE,aAAc,CACd,aAAc,CACd,aAAc,CACd,WAAY,CACZ,WAAY,CACZ,YAAa,CACb,6GAEC,CACD,sGAA2G,CAI3G,kBAAmB,CADnB,6CAAqC,CADrC,iBAGF,CAGA,yFACE,2BAA4B,CAC5B,uBAAwB,CACxB,6FAAkG,CAElG,4DAA+D,CAI/D,4GAAoH,CAFpH,qDAGF,CAGA,8DACE,yBAA0B,CAC1B,uBAAwB,CACxB,kBAAmB,CACnB,wGAA+G,CAG/G,qFAAyF,CAIzF,2HAKC,CAPD,+FASF,CAGA,iIAKE,oFACF,CAEA,wDACE,YACF,CAEA,8DAUE,kDAAuC,CAJvC,0CAAqC,CALrC,UAAW,CAOX,aAAc,CADd,wCAAmC,CAEnC,mBAAoB,CAPpB,iBAAkB,CAGlB,yCAAoC,CADpC,uCAAkC,CADlC,SAQF,CAEA,uIAKE,sEACF,CAEA,uFAEE,8GACF,CAGA,uKAIE,sLAIG,CACH,kEACF,CAEA,oGAEE,yFAAsG,CACtG,kEACF,CAGA,iEACE,eACF,CAEA,6EACE,iBAAkB,CAClB,SACF","file":"IssueLabelToken-0dbbbcdf.css","sourcesContent":[".IssueLabel {\n /* Color variables - dynamically set via inline CSS custom properties */\n --label-r: 153;\n --label-g: 153;\n --label-b: 153;\n --label-h: 0;\n --label-s: 0;\n --label-l: 60;\n --perceived-lightness: calc(\n ((var(--label-r) * 0.2126) + (var(--label-g) * 0.7152) + (var(--label-b) * 0.0722)) / 255\n );\n --lightness-switch: max(0, min(calc((var(--perceived-lightness) - var(--lightness-threshold)) * -1000), 1));\n\n position: relative;\n border-width: var(--borderWidth-thin);\n border-style: solid;\n}\n\n/* Light mode styles */\n.IssueLabel:where([data-in-color-mode*='light'], [data-in-color-mode='auto']) {\n --lightness-threshold: 0.453;\n --border-threshold: 0.96;\n --border-alpha: max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1));\n /* stylelint-disable-next-line primer/colors */\n background: rgb(var(--label-r), var(--label-g), var(--label-b));\n /* stylelint-disable-next-line primer/colors */\n color: hsl(0deg, 0%, calc(var(--lightness-switch) * 100%));\n /* stylelint-disable-next-line primer/colors */\n border-color: hsla(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 25) * 1%), var(--border-alpha));\n}\n\n/* Dark mode styles */\n.IssueLabel:where([data-in-color-mode*='dark']) {\n --lightness-threshold: 0.6;\n --background-alpha: 0.18;\n --border-alpha: 0.3;\n --lighten-by: calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch));\n\n /* stylelint-disable-next-line primer/colors */\n background: rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha));\n /* stylelint-disable-next-line primer/colors */\n color: hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));\n /* stylelint-disable primer/colors */\n border-color: hsla(\n var(--label-h),\n calc(var(--label-s) * 1%),\n calc((var(--label-l) + var(--lighten-by)) * 1%),\n var(--border-alpha)\n );\n /* stylelint-enable primer/colors */\n}\n\n/* Selected state */\n.IssueLabel:where(\n [data-selected='true'][data-in-color-mode*='light'],\n [data-selected='true'][data-in-color-mode='auto']\n ) {\n /* stylelint-disable-next-line primer/colors */\n background: hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 5) * 1%));\n}\n\n.IssueLabel:where([data-selected='true']) {\n outline: none;\n}\n\n.IssueLabel:where([data-selected='true'])::after {\n content: '';\n position: absolute;\n z-index: 1;\n top: calc(var(--base-size-2) * -1);\n right: calc(var(--base-size-2) * -1);\n bottom: calc(var(--base-size-2) * -1);\n left: calc(var(--base-size-2) * -1);\n display: block;\n pointer-events: none;\n border-radius: var(--borderRadius-full);\n}\n\n.IssueLabel:where(\n [data-selected='true'][data-in-color-mode*='light'],\n [data-selected='true'][data-in-color-mode='auto']\n )::after {\n /* stylelint-disable-next-line primer/box-shadow */\n box-shadow: 0 0 0 2px rgb(var(--label-r), var(--label-g), var(--label-b));\n}\n\n.IssueLabel:where([data-selected='true'][data-in-color-mode='dark'])::after {\n /* stylelint-disable-next-line primer/box-shadow */\n box-shadow: 0 0 0 2px hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%));\n}\n\n/* Interactive hover states */\n.IssueLabel:where(\n [data-cursor-is-interactive='true']:hover[data-in-color-mode*='light'],\n [data-cursor-is-interactive='true']:hover[data-in-color-mode='auto']\n ) {\n background-image: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15)),\n linear-gradient(\n rgb(var(--label-r), var(--label-g), var(--label-b)),\n rgb(var(--label-r), var(--label-g), var(--label-b))\n );\n box-shadow: var(--shadow-resting-medium);\n}\n\n.IssueLabel:where([data-cursor-is-interactive='true']:hover[data-in-color-mode='dark']) {\n /* stylelint-disable-next-line primer/colors */\n background: hsla(var(--label-h), calc(var(--label-s) * 1%), calc(calc(var(--label-l) + 10) * 1%), 0.3);\n box-shadow: var(--shadow-resting-medium);\n}\n\n/* Remove button styling */\n.IssueLabel:where([data-has-remove-button='true']) {\n padding-right: 0;\n}\n\n.RemoveButton:where([data-has-multiple-action-targets='true']) {\n position: relative;\n z-index: 1;\n}\n"]}
@@ -8,28 +8,6 @@ import classes from './IssueLabelToken.module.css.js';
8
8
  import { clsx } from 'clsx';
9
9
  import { jsxs, jsx } from 'react/jsx-runtime';
10
10
 
11
- const tokenBorderWidthPx = 1;
12
- const lightModeStyles = {
13
- '--lightness-threshold': '0.453',
14
- '--border-threshold': '0.96',
15
- '--border-alpha': 'max(0, min(calc((var(--perceived-lightness) - var(--border-threshold)) * 100), 1))',
16
- background: 'rgb(var(--label-r), var(--label-g), var(--label-b))',
17
- color: 'hsl(0, 0%, calc(var(--lightness-switch) * 100%))',
18
- borderWidth: tokenBorderWidthPx,
19
- borderStyle: 'solid',
20
- borderColor: 'hsla(var(--label-h),calc(var(--label-s) * 1%),calc((var(--label-l) - 25) * 1%),var(--border-alpha))'
21
- };
22
- const darkModeStyles = {
23
- '--lightness-threshold': '0.6',
24
- '--background-alpha': '0.18',
25
- '--border-alpha': '0.3',
26
- '--lighten-by': 'calc(((var(--lightness-threshold) - var(--perceived-lightness)) * 100) * var(--lightness-switch))',
27
- borderWidth: tokenBorderWidthPx,
28
- borderStyle: 'solid',
29
- background: 'rgba(var(--label-r), var(--label-g), var(--label-b), var(--background-alpha))',
30
- color: 'hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%))',
31
- borderColor: 'hsla(var(--label-h), calc(var(--label-s) * 1%),calc((var(--label-l) + var(--lighten-by)) * 1%),var(--border-alpha))'
32
- };
33
11
  const IssueLabelToken = /*#__PURE__*/forwardRef((props, forwardedRef) => {
34
12
  const {
35
13
  as,
@@ -58,56 +36,18 @@ const IssueLabelToken = /*#__PURE__*/forwardRef((props, forwardedRef) => {
58
36
  e.stopPropagation();
59
37
  onRemove && onRemove();
60
38
  };
61
- const labelStyles = useMemo(() => {
39
+ const customProperties = useMemo(() => {
62
40
  const [r, g, b] = parseToRgba(fillColor);
63
41
  const [h, s, l] = parseToHsla(fillColor);
64
- const isLightScheme = !(resolvedColorScheme !== null && resolvedColorScheme !== void 0 && resolvedColorScheme.startsWith('dark')); // fall back to light colors for unknown schemes
65
-
66
- // label hack taken from https://github.com/github/github/blob/master/app/assets/stylesheets/hacks/hx_primer-labels.scss#L43-L108
67
- // this logic should eventually live in primer/components. Also worthy of note is that the dotcom hack code will be moving to primer/css soon.
68
42
  return {
69
43
  '--label-r': String(r),
70
44
  '--label-g': String(g),
71
45
  '--label-b': String(b),
72
46
  '--label-h': String(Math.round(h)),
73
47
  '--label-s': String(Math.round(s * 100)),
74
- '--label-l': String(Math.round(l * 100)),
75
- '--perceived-lightness': 'calc(((var(--label-r) * 0.2126) + (var(--label-g) * 0.7152) + (var(--label-b) * 0.0722)) / 255)',
76
- '--lightness-switch': 'max(0, min(calc((var(--perceived-lightness) - var(--lightness-threshold)) * -1000), 1))',
77
- paddingRight: hideRemoveButton || !onRemove ? undefined : 0,
78
- position: 'relative',
79
- ...(isLightScheme ? lightModeStyles : darkModeStyles),
80
- ...(isSelected ? {
81
- background: isLightScheme ? 'hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) - 5) * 1%))' : darkModeStyles.background,
82
- ':focus': {
83
- outline: 'none'
84
- },
85
- ':after': {
86
- content: '""',
87
- position: 'absolute',
88
- zIndex: 1,
89
- top: `-${tokenBorderWidthPx * 2}px`,
90
- right: `-${tokenBorderWidthPx * 2}px`,
91
- bottom: `-${tokenBorderWidthPx * 2}px`,
92
- left: `-${tokenBorderWidthPx * 2}px`,
93
- display: 'block',
94
- pointerEvents: 'none',
95
- boxShadow: `0 0 0 ${tokenBorderWidthPx * 2}px ${isLightScheme ? 'rgb(var(--label-r), var(--label-g), var(--label-b))' : 'hsl(var(--label-h), calc(var(--label-s) * 1%), calc((var(--label-l) + var(--lighten-by)) * 1%))'}`,
96
- borderRadius: '999px'
97
- }
98
- } : {}),
99
- ...(isTokenInteractive(props) ? {
100
- '&:hover': {
101
- ...(isLightScheme ? {
102
- backgroundImage: 'linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.15)), linear-gradient(rgb(var(--label-r),var(--label-g),var(--label-b)), rgb(var(--label-r),var(--label-g),var(--label-b)))'
103
- } : {
104
- background: 'hsla(var(--label-h), calc(var(--label-s) * 1%), calc(calc(var(--label-l) + 10) * 1%), 0.3);'
105
- }),
106
- boxShadow: 'shadow.medium'
107
- }
108
- } : {})
48
+ '--label-l': String(Math.round(l * 100))
109
49
  };
110
- }, [fillColor, resolvedColorScheme, hideRemoveButton, onRemove, isSelected, props]);
50
+ }, [fillColor]);
111
51
  return /*#__PURE__*/jsxs(TokenBase, {
112
52
  onRemove: onRemove,
113
53
  id: id === null || id === void 0 ? void 0 : id.toString(),
@@ -115,8 +55,10 @@ const IssueLabelToken = /*#__PURE__*/forwardRef((props, forwardedRef) => {
115
55
  className: clsx(classes.IssueLabel, className),
116
56
  text: text,
117
57
  size: size,
118
- style: labelStyles,
58
+ style: customProperties,
119
59
  "data-has-remove-button": !hideRemoveButton && !!onRemove,
60
+ "data-selected": isSelected,
61
+ "data-in-color-mode": resolvedColorScheme || 'light',
120
62
  ...(!hasMultipleActionTargets ? interactiveTokenProps : {}),
121
63
  ...rest,
122
64
  ref: forwardedRef,
@@ -124,7 +66,7 @@ const IssueLabelToken = /*#__PURE__*/forwardRef((props, forwardedRef) => {
124
66
  ...(hasMultipleActionTargets ? interactiveTokenProps : {}),
125
67
  children: text
126
68
  }), !hideRemoveButton && onRemove ? /*#__PURE__*/jsx(RemoveTokenButton, {
127
- borderOffset: tokenBorderWidthPx,
69
+ borderOffset: 1,
128
70
  onClick: onRemoveClick,
129
71
  size: size,
130
72
  "aria-hidden": hasMultipleActionTargets ? 'true' : 'false',
@@ -1,4 +1,4 @@
1
- import './IssueLabelToken-99c9b914.css';
1
+ import './IssueLabelToken-0dbbbcdf.css';
2
2
 
3
3
  var classes = {"IssueLabel":"prc-Token-IssueLabel-ZuoEW","RemoveButton":"prc-Token-RemoveButton-H4Dmg"};
4
4