@primer/react 38.6.2 → 38.6.3-rc.380490a3d
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.
Potentially problematic release.
This version of @primer/react might be problematic. Click here for more details.
- package/CHANGELOG.md +31 -0
- package/dist/Autocomplete/Autocomplete.d.ts +0 -3
- package/dist/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/Autocomplete/Autocomplete.js +69 -23
- package/dist/Autocomplete/AutocompleteContext.d.ts +23 -3
- package/dist/Autocomplete/AutocompleteContext.d.ts.map +1 -1
- package/dist/Autocomplete/AutocompleteContext.js +20 -1
- package/dist/Autocomplete/AutocompleteInput.d.ts.map +1 -1
- package/dist/Autocomplete/AutocompleteInput.js +8 -5
- package/dist/Autocomplete/AutocompleteMenu.d.ts.map +1 -1
- package/dist/Autocomplete/AutocompleteMenu.js +123 -121
- package/dist/{BaseStyles-79fd37c4.css → BaseStyles-7e59cc50.css} +2 -2
- package/dist/BaseStyles-7e59cc50.css.map +1 -0
- package/dist/BaseStyles.module.css.js +1 -1
- package/dist/Dialog/{Dialog-1a61e61a.css → Dialog-92b5e3b7.css} +2 -2
- package/dist/Dialog/Dialog-92b5e3b7.css.map +1 -0
- package/dist/Dialog/Dialog.d.ts.map +1 -1
- package/dist/Dialog/Dialog.js +21 -5
- package/dist/Dialog/Dialog.module.css.js +1 -1
- package/dist/FeatureFlags/DefaultFeatureFlags.d.ts.map +1 -1
- package/dist/FeatureFlags/DefaultFeatureFlags.js +1 -0
- package/dist/FeatureFlags/FeatureFlags.d.ts +6 -0
- package/dist/FeatureFlags/FeatureFlags.d.ts.map +1 -1
- package/dist/FeatureFlags/FeatureFlags.js +41 -32
- package/dist/ToggleSwitch/ToggleSwitch-40bab513.css +2 -0
- package/dist/ToggleSwitch/ToggleSwitch-40bab513.css.map +1 -0
- package/dist/ToggleSwitch/ToggleSwitch.module.css.js +1 -1
- package/dist/internal/utils/hasInteractiveNodes.d.ts.map +1 -1
- package/dist/internal/utils/hasInteractiveNodes.js +22 -16
- package/package.json +8 -8
- package/dist/BaseStyles-79fd37c4.css.map +0 -1
- package/dist/Dialog/Dialog-1a61e61a.css.map +0 -1
- package/dist/ToggleSwitch/ToggleSwitch-d1bd60b0.css +0 -2
- package/dist/ToggleSwitch/ToggleSwitch-d1bd60b0.css.map +0 -1
|
@@ -1,40 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useContext } from 'react';
|
|
1
|
+
import { useContext, useMemo } from 'react';
|
|
3
2
|
import { FeatureFlagContext } from './FeatureFlagContext.js';
|
|
4
3
|
import { FeatureFlagScope } from './FeatureFlagScope.js';
|
|
4
|
+
import useIsomorphicLayoutEffect from '../utils/useIsomorphicLayoutEffect.js';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Ref count for data-dialog-scroll-optimized attribute management.
|
|
9
|
+
*
|
|
10
|
+
* NOTE: This is temporary infrastructure while we feature flag the CSS :has()
|
|
11
|
+
* performance optimization (primer_react_css_has_selector_perf). Once the flag
|
|
12
|
+
* is removed and the optimization is the default behavior, this ref counting
|
|
13
|
+
* can be removed - the attribute can simply always be present.
|
|
14
|
+
*
|
|
15
|
+
* @internal - Not part of the public API
|
|
16
|
+
*/
|
|
17
|
+
let dialogScrollOptimizedCount = 0;
|
|
18
|
+
function FeatureFlags({
|
|
19
|
+
children,
|
|
20
|
+
flags
|
|
21
|
+
}) {
|
|
13
22
|
const parentFeatureFlags = useContext(FeatureFlagContext);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
return t2;
|
|
23
|
+
const value = useMemo(() => {
|
|
24
|
+
const scope = FeatureFlagScope.merge(parentFeatureFlags, FeatureFlagScope.create(flags));
|
|
25
|
+
return scope;
|
|
26
|
+
}, [parentFeatureFlags, flags]);
|
|
27
|
+
const isOptimizationEnabled = value.enabled('primer_react_css_has_selector_perf');
|
|
28
|
+
|
|
29
|
+
// Set body attribute for CSS :has() optimization when flag is enabled
|
|
30
|
+
useIsomorphicLayoutEffect(() => {
|
|
31
|
+
if (isOptimizationEnabled) {
|
|
32
|
+
dialogScrollOptimizedCount++;
|
|
33
|
+
document.body.setAttribute('data-dialog-scroll-optimized', '');
|
|
34
|
+
return () => {
|
|
35
|
+
dialogScrollOptimizedCount--;
|
|
36
|
+
if (dialogScrollOptimizedCount === 0) {
|
|
37
|
+
document.body.removeAttribute('data-dialog-scroll-optimized');
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}, [isOptimizationEnabled]);
|
|
42
|
+
return /*#__PURE__*/jsx(FeatureFlagContext.Provider, {
|
|
43
|
+
value: value,
|
|
44
|
+
children: children
|
|
45
|
+
});
|
|
38
46
|
}
|
|
47
|
+
FeatureFlags.displayName = "FeatureFlags";
|
|
39
48
|
|
|
40
49
|
export { FeatureFlags };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.prc-ToggleSwitch-ToggleSwitch-rQz-0{--toggleSwitch-transition-duration:80ms;--toggleSwitch-transition-easing:cubic-bezier(0.5,1,0.89,1);align-items:center;display:inline-flex}.prc-ToggleSwitch-ToggleSwitch-rQz-0:where([data-status-label-position=start]){flex-direction:row}.prc-ToggleSwitch-ToggleSwitch-rQz-0:where([data-status-label-position=end]){flex-direction:row-reverse}.prc-ToggleSwitch-LoadingSpinner--4KG4{display:inline-flex}.prc-ToggleSwitch-LoadingSpinner--4KG4:where([data-status-label-position=end]){margin-left:var(--base-size-8,.5rem);margin-right:0}.prc-ToggleSwitch-StatusText-7fNOA{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-7fNOA:where([data-disabled=true]){color:var(--fgColor-muted,var(--color-fg-muted));cursor:not-allowed}.prc-ToggleSwitch-StatusText-7fNOA:where([data-size=small]){font-size:var(--text-body-size-small,.75rem)}.prc-ToggleSwitch-StatusText-7fNOA:where([data-size=medium]){font-size:var(--text-body-size-medium,.875rem)}.prc-ToggleSwitch-StatusTextItem-VE86e{display:block;text-align:right}.prc-ToggleSwitch-StatusTextItem-VE86e:where([data-hidden=true]){height:0;overflow:hidden;visibility:hidden}.prc-ToggleSwitch-SwitchButton-1CtM6{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-1CtM6:focus-visible{outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:3px}.prc-ToggleSwitch-SwitchButton-1CtM6:focus:not(:focus-visible){outline:1px solid transparent}@media (pointer:coarse){.prc-ToggleSwitch-SwitchButton-1CtM6:before{content:"";left:0;min-height:44px;position:absolute;right:0;top:50%;transform:translateY(-50%)}}@media (prefers-reduced-motion){.prc-ToggleSwitch-SwitchButton-1CtM6,.prc-ToggleSwitch-SwitchButton-1CtM6 *{transition:none}}.prc-ToggleSwitch-SwitchButton-1CtM6:where([data-size=small]){height:24px;width:48px}.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-disabled=true]){border-color:GrayText}}.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-checked=false]:not([data-disabled=true]):focus-visible),.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-checked=false]:not([data-disabled=true]):active),.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6: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-1CtM6:where([data-checked=true]:not([data-disabled=true]):focus-visible),.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-checked=true]:not([data-disabled=true]):active),.prc-ToggleSwitch-SwitchButton-1CtM6: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-u57jo{align-items:center;display:flex;height:100%;overflow:hidden;width:100%}.prc-ToggleSwitch-IconContainer-mUpUm{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-mUpUm{transition:none}}.prc-ToggleSwitch-LineIconContainer-cn8pC{color:var(--control-checked-fgColor-rest,var(--color-switch-track-checked-fg,#fff))}.prc-ToggleSwitch-LineIconContainer-cn8pC:where([data-disabled=true]){color:var(--control-checked-fgColor-disabled,var(--color-switch-track-checked-disabled-fg,#fff))}.prc-ToggleSwitch-LineIconContainer-cn8pC:where([data-checked=true]){transform:translateX(0)}.prc-ToggleSwitch-LineIconContainer-cn8pC:where([data-checked=false]){transform:translateX(-100%)}.prc-ToggleSwitch-CircleIconContainer-XiMW5{color:var(--controlTrack-fgColor-rest,var(--color-switch-track-fg,#656d76))}.prc-ToggleSwitch-CircleIconContainer-XiMW5:where([data-disabled=true]){color:var(--controlTrack-fgColor-disabled,var(--color-switch-track-disabled-fg,#fff))}.prc-ToggleSwitch-CircleIconContainer-XiMW5:where([data-checked=true]){transform:translateX(100%)}.prc-ToggleSwitch-CircleIconContainer-XiMW5:where([data-checked=false]){transform:translateX(0)}.prc-ToggleSwitch-ToggleKnob-N9ops{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-N9ops{transition:none}}.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-checked=false]){transform:translateX(0)}.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-checked=true]){border-color:var(--controlKnob-borderColor-checked,var(--color-switch-knob-checked-border,#0969da));transform:translateX(100%)}.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-disabled=true]){background-color:var(--controlKnob-bgColor-disabled,var(--color-btn-bg));border-color:var(--controlTrack-bgColor-disabled,var(--color-switch-track-disabled-bg,#8c959f))}@media (forced-colors:active){.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-disabled=true]){color:GrayText}}
|
|
2
|
+
/*# sourceMappingURL=ToggleSwitch-40bab513.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ToggleSwitch/ToggleSwitch.module.css.js"],"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,CACT,eAAgB,CAFhB,iBAGF,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,+DACE,wEAAqD,CAErD,+FAKF,CAHE,8BALF,+DAMI,cAEJ,CADE","file":"ToggleSwitch-40bab513.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 overflow: hidden;\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, hsl(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, hsl(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 background-color: var(--controlKnob-bgColor-disabled);\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"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './ToggleSwitch-
|
|
1
|
+
import './ToggleSwitch-40bab513.css';
|
|
2
2
|
|
|
3
3
|
var classes = {"ToggleSwitch":"prc-ToggleSwitch-ToggleSwitch-rQz-0","LoadingSpinner":"prc-ToggleSwitch-LoadingSpinner--4KG4","StatusText":"prc-ToggleSwitch-StatusText-7fNOA","StatusTextItem":"prc-ToggleSwitch-StatusTextItem-VE86e","SwitchButton":"prc-ToggleSwitch-SwitchButton-1CtM6","SwitchButtonContent":"prc-ToggleSwitch-SwitchButtonContent-u57jo","IconContainer":"prc-ToggleSwitch-IconContainer-mUpUm","LineIconContainer":"prc-ToggleSwitch-LineIconContainer-cn8pC","CircleIconContainer":"prc-ToggleSwitch-CircleIconContainer-XiMW5","ToggleKnob":"prc-ToggleSwitch-ToggleKnob-N9ops"};
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasInteractiveNodes.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/hasInteractiveNodes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hasInteractiveNodes.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/hasInteractiveNodes.ts"],"names":[],"mappings":"AA2BA;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,WAkBxF"}
|
|
@@ -7,6 +7,9 @@ const nonValidSelectors = {
|
|
|
7
7
|
const interactiveElementsSelectors = [`a[href]`, `button`, 'summary', 'select', 'input:not([type=hidden])', 'textarea', '[tabindex="0"]', `audio[controls]`, `video[controls]`, `[contenteditable]`];
|
|
8
8
|
const interactiveElements = interactiveElementsSelectors.map(selector => `${selector}:not(${Object.values(nonValidSelectors).join('):not(')})`);
|
|
9
9
|
|
|
10
|
+
// Combined selector for fast querySelector check
|
|
11
|
+
const interactiveSelector = interactiveElements.join(', ');
|
|
12
|
+
|
|
10
13
|
/**
|
|
11
14
|
* Finds interactive nodes within the passed node.
|
|
12
15
|
* If the node itself is interactive, or children within are, it will return true.
|
|
@@ -23,26 +26,29 @@ function hasInteractiveNodes(node, ignoreNodes) {
|
|
|
23
26
|
// If one does exist, we can abort early.
|
|
24
27
|
|
|
25
28
|
const nodesToIgnore = [node];
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
|
|
30
|
+
// Performance optimization: Use querySelectorAll with combined selector first
|
|
31
|
+
// This avoids recursive getComputedStyle calls for each node
|
|
32
|
+
const candidates = node.querySelectorAll(interactiveSelector);
|
|
33
|
+
for (const candidate of candidates) {
|
|
34
|
+
if (!nodesToIgnore.includes(candidate) && !isNonValidInteractiveNode(candidate)) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
28
39
|
}
|
|
40
|
+
|
|
41
|
+
// Note: Only call getComputedStyle when CSS-based checks are insufficient
|
|
29
42
|
function isNonValidInteractiveNode(node) {
|
|
30
|
-
|
|
43
|
+
// Fast path: Check attribute-based states first (no style recalc needed)
|
|
31
44
|
const isNonInteractive = node.matches('[disabled], [hidden], [inert]');
|
|
45
|
+
if (isNonInteractive) return true;
|
|
46
|
+
|
|
47
|
+
// Only call getComputedStyle if attribute checks passed
|
|
48
|
+
// This is necessary for display:none and visibility:hidden which aren't detectable via attributes
|
|
49
|
+
const nodeStyle = getComputedStyle(node);
|
|
32
50
|
const isHiddenVisually = nodeStyle.display === 'none' || nodeStyle.visibility === 'hidden';
|
|
33
|
-
return
|
|
34
|
-
}
|
|
35
|
-
function findInteractiveChildNodes(node, ignoreNodes) {
|
|
36
|
-
if (!node) return;
|
|
37
|
-
const ignoreSelector = ignoreNodes.find(elem => elem === node);
|
|
38
|
-
const isNotValidNode = isNonValidInteractiveNode(node);
|
|
39
|
-
if (node.matches(interactiveElements.join(', ')) && !ignoreSelector && !isNotValidNode) {
|
|
40
|
-
return node;
|
|
41
|
-
}
|
|
42
|
-
for (const child of node.children) {
|
|
43
|
-
const interactiveNode = findInteractiveChildNodes(child, ignoreNodes);
|
|
44
|
-
if (interactiveNode) return true;
|
|
45
|
-
}
|
|
51
|
+
return isHiddenVisually;
|
|
46
52
|
}
|
|
47
53
|
|
|
48
54
|
export { hasInteractiveNodes };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primer/react",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "38.6.
|
|
4
|
+
"version": "38.6.3-rc.380490a3d",
|
|
5
5
|
"description": "An implementation of GitHub's Primer Design System using React",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"@oddbird/popover-polyfill": "^0.5.2",
|
|
82
82
|
"@primer/behaviors": "^1.9.0",
|
|
83
83
|
"@primer/live-region-element": "^0.7.1",
|
|
84
|
-
"@primer/octicons-react": "^19.
|
|
84
|
+
"@primer/octicons-react": "^19.21.0",
|
|
85
85
|
"@primer/primitives": "10.x || 11.x",
|
|
86
86
|
"clsx": "^2.1.1",
|
|
87
87
|
"color2k": "^2.0.3",
|
|
@@ -114,11 +114,11 @@
|
|
|
114
114
|
"@rollup/plugin-node-resolve": "16.0.3",
|
|
115
115
|
"@rollup/plugin-typescript": "12.3.0",
|
|
116
116
|
"@rollup/plugin-virtual": "3.0.2",
|
|
117
|
-
"@storybook/addon-a11y": "^10.1.
|
|
118
|
-
"@storybook/addon-docs": "^10.1.
|
|
119
|
-
"@storybook/addon-links": "^10.1.
|
|
117
|
+
"@storybook/addon-a11y": "^10.1.10",
|
|
118
|
+
"@storybook/addon-docs": "^10.1.10",
|
|
119
|
+
"@storybook/addon-links": "^10.1.10",
|
|
120
120
|
"@storybook/icons": "^2.0.1",
|
|
121
|
-
"@storybook/react-vite": "^10.1.
|
|
121
|
+
"@storybook/react-vite": "^10.1.10",
|
|
122
122
|
"@testing-library/dom": "^10.4.0",
|
|
123
123
|
"@testing-library/jest-dom": "^6.4.5",
|
|
124
124
|
"@testing-library/react": "^16.3.0",
|
|
@@ -170,9 +170,9 @@
|
|
|
170
170
|
"react-is": "18.3.1",
|
|
171
171
|
"recast": "0.23.7",
|
|
172
172
|
"rimraf": "5.0.5",
|
|
173
|
-
"rollup": "4.
|
|
173
|
+
"rollup": "4.54.0",
|
|
174
174
|
"rollup-plugin-import-css": "^0.0.0",
|
|
175
|
-
"storybook": "^10.1.
|
|
175
|
+
"storybook": "^10.1.10",
|
|
176
176
|
"terser": "5.36.0",
|
|
177
177
|
"ts-toolbelt": "9.6.0",
|
|
178
178
|
"tsx": "4.20.3",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["src/BaseStyles.module.css.js"],"names":[],"mappings":"AAMA,EACE,qBACF,CAEA,KACE,QACF,CAEA,MAEE,wBACF,CAEA,8BACE,sCAAmB,CAAnB,kBACF,CAEA,6BACE,gCAAkB,CAAlB,iBACF,CAEA,oCACE,gDACE,sCAAmB,CAAnB,kBACF,CACF,CAEA,mCACE,8CACE,gCAAkB,CAAlB,iBACF,CACF,CAEA,mSAME,eAAgB,CADhB,YAEF,CAEA,0HAEE,YACF,CAIA,0BAKE,8EAAwD,CAJxD,wLAAkE,CAElE,4CA2BF,CArBI,6DACE,sCAAmB,CAAnB,kBACF,CAKA,4DACE,gCAAkB,CAAlB,iBACF,CAIF,uGACE,kDAAoD,CACpD,4BAAqB,CAArB,oBAKF,CAHE,kHACE,iCAA0B,CAA1B,yBACF","file":"BaseStyles-79fd37c4.css","sourcesContent":["/* stylelint-disable selector-max-specificity */\n/* stylelint-disable selector-type-no-unknown */\n\n/* -------------------------------- \n * Global Styles \n *--------------------------------- */\n* {\n box-sizing: border-box;\n}\n\nbody {\n margin: 0;\n}\n\ntable {\n /* stylelint-disable-next-line primer/borders */\n border-collapse: collapse;\n}\n\n[data-color-mode='light'] input {\n color-scheme: light;\n}\n\n[data-color-mode='dark'] input {\n color-scheme: dark;\n}\n\n@media (prefers-color-scheme: light) {\n [data-color-mode='auto'][data-light-theme*='light'] {\n color-scheme: light;\n }\n}\n\n@media (prefers-color-scheme: dark) {\n [data-color-mode='auto'][data-dark-theme*='dark'] {\n color-scheme: dark;\n }\n}\n\n[role='button']:focus:not(:focus-visible):not(:global(.focus-visible)),\n[role='tabpanel'][tabindex='0']:focus:not(:focus-visible):not(:global(.focus-visible)),\nbutton:focus:not(:focus-visible):not(:global(.focus-visible)),\nsummary:focus:not(:focus-visible):not(:global(.focus-visible)),\na:focus:not(:focus-visible):not(:global(.focus-visible)) {\n outline: none;\n box-shadow: none;\n}\n\n[tabindex='0']:focus:not(:focus-visible):not(:global(.focus-visible)),\ndetails-dialog:focus:not(:focus-visible):not(:global(.focus-visible)) {\n outline: none;\n}\n\n/* -------------------------------------------------------------------------- */\n\n.BaseStyles {\n font-family: var(--BaseStyles-fontFamily, var(--fontStack-system));\n /* stylelint-disable-next-line primer/typography */\n line-height: var(--BaseStyles-lineHeight, 1.5);\n /* stylelint-disable-next-line primer/colors */\n color: var(--BaseStyles-fgColor, var(--fgColor-default));\n\n /* Global styles for light mode */\n &:has([data-color-mode='light']) {\n input & {\n color-scheme: light;\n }\n }\n\n /* Global styles for dark mode */\n &:has([data-color-mode='dark']) {\n input & {\n color-scheme: dark;\n }\n }\n\n /* Low-specificity default link styling */\n :where(a:not([class*='prc-']):not([class*='PRC-']):not([class*='Primer_Brand__'])) {\n color: var(--fgColor-accent, var(--color-accent-fg));\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Dialog/Dialog.module.css.js"],"names":[],"mappings":"AAOA,oCACE,eAAgB,CAChB,cAAe,CACf,iBACF,CAEA,mDACE,GACE,SACF,CAEA,GACE,SACF,CACF,CAEA,sDACE,GACE,SAAU,CACV,mBACF,CAEA,GACE,SAAU,CACV,kBACF,CACF,CAEA,oDACE,GACE,0BACF,CACF,CAEA,yDACE,GACE,2BACF,CACF,CAEA,wDACE,GACE,0BACF,CACF,CAGA,0CACE,MAEE,cACF,CACF,CAEA,2BAQE,+EAAsE,CADtE,8EAAiD,CAHjD,QAAS,CAET,YAAa,CADb,MAAO,CAJP,cAAe,CAEf,OAAQ,CADR,KAoCF,CA1BE,oFAHA,kBAAmB,CACnB,sBAKA,CAEA,uDACE,kBAAmB,CACnB,0BACF,CAEA,wDACE,kBAAmB,CACnB,wBACF,CAEA,yBACE,wDACE,kBAAmB,CACnB,sBACF,CAEA,wDACE,eAAgB,CAChB,sBACF,CACF,CAGF,yBASE,mEAAwC,CACxC,8CAAwC,CACxC,wEAAmE,CACnE,mEAAwC,CAXxC,YAAa,CAOb,qBAAsB,CAFtB,WAAY,CACZ,8BAA+B,CAF/B,6BAA8B,CAD9B,eAAgB,CAShB,SAAU,CAVV,WA6HF,CAjHE,mDACE,WACF,CAEA,oDACE,WACF,CAEA,mDAEE,WACF,CAEA,oDACE,YACF,CAEA,oDACE,YACF,CAEA,yDApCF,yBAqCI,4GA2FJ,CA1FE,CAEA,uDACE,wEAKF,CAHE,yDAHF,uDAII,4GAEJ,CADE,CAGF,qDAGE,wEAAmE,CAEnE,2BAA4B,CAD5B,wBAAyB,CAHzB,aAAc,CACd,gBAQF,CAHE,yDAPF,qDAQI,gHAEJ,CADE,CAGF,sDAGE,wEAAmE,CAEnE,4BAA6B,CAD7B,yBAA0B,CAH1B,aAAc,CACd,gBAQF,CAHE,yDAPF,sDAQI,8GAEJ,CADE,CAGF,yBACE,sDAIE,wEAAmE,CADnE,WAAY,CADZ,WAwBF,CApBE,gFACE,WACF,CAEA,iFACE,WACF,CAEA,gFAEE,WACF,CAEA,iFACE,YACF,CAEA,iFACE,YACF,CAGF,sDAKE,wEAAmE,CAEnE,2BAA4B,CAD5B,4BAA6B,CAH7B,WAAY,CACZ,8BAA+B,CAF/B,gBAAiB,CADjB,YAWF,CAHE,yDATF,sDAUI,2GAEJ,CADE,CAGF,0DAKE,6BAA+B,CAC/B,WAAY,CAHZ,WAAY,CACZ,iBAAkB,CAFlB,gBAAiB,CADjB,UAUF,CAHE,yDARF,0DASI,4GAEJ,CADE,CAEJ,CAGF,kEAGE,yBAA2B,CAD3B,sDAEF,CAEA,wCACE,WACF,CAQA,uDACE,cAYF,CAVE,+FAGE,wCAAwB,CADxB,8GAA0E,CAE1E,+BAKF,CAHE,4CANF,+FAOI,mIAEJ,CADE,CAIJ,yBAME,yEAA8C,CAC9C,aAAc,CALd,eAAgB,CAEhB,eAAgB,CADhB,gCAA2B,CAF3B,SAOF,CAEA,8BACE,YACF,CAEA,gCACE,YAAa,CAGb,qBAAsB,CACtB,WAAY,CAFZ,wCAAiC,CADjC,uCAIF,CAEA,wBAEE,8CAAuC,CACvC,8CAA2C,CAF3C,QAGF,CAEA,2BAKE,gDAA2B,CAF3B,4CAAsC,CACtC,8CAA2C,CAH3C,QAAS,CACT,oCAIF,CAEA,uBAGE,WAAY,CADZ,aAEF,CAEA,gDALE,gCAoBF,CAfA,yBAEE,YAAa,CACb,cAAe,CAIf,aAAc,CADd,4BAAuB,CAFvB,wBAAyB,CAHzB,SAcF,CANE,0BATF,yBAYI,kBAAmB,CAFnB,gBAAiB,CAGjB,qBAAsB,CAFtB,iBAIJ,CADE","file":"Dialog-1a61e61a.css","sourcesContent":["/* The --prc-dialog-scrollgutter property is used only on the body element to\n * simulate scrollbar-gutter:stable. This property is not and should not\n * be used elsewhere in the DOM. There is a performance penalty to\n * setting inherited properties which can cause a large style recalc to\n * occur, so it benefits us to prevent inheritance for this property.\n * See https://web.dev/blog/at-property-performance\n */\n@property --prc-dialog-scrollgutter {\n initial-value: 0;\n inherits: false;\n syntax: '<length>';\n}\n\n@keyframes dialog-backdrop-appear {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes Overlay--motion-scaleFade {\n 0% {\n opacity: 0;\n transform: scale(0.5);\n }\n\n 100% {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n@keyframes Overlay--motion-slideUp {\n from {\n transform: translateY(100%);\n }\n}\n\n@keyframes Overlay--motion-slideInRight {\n from {\n transform: translateX(-100%);\n }\n}\n\n@keyframes Overlay--motion-slideInLeft {\n from {\n transform: translateX(100%);\n }\n}\n\n/* Used to determine whether there should be a border between the body and footer */\n@keyframes detect-scroll {\n from,\n to {\n --can-scroll: 1;\n }\n}\n\n.Backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n background-color: var(--overlay-backdrop-bgColor);\n animation: dialog-backdrop-appear 200ms cubic-bezier(0.33, 1, 0.68, 1);\n align-items: center;\n justify-content: center;\n\n &[data-position-regular='center'] {\n align-items: center;\n justify-content: center;\n }\n\n &[data-position-regular='left'] {\n align-items: center;\n justify-content: flex-start;\n }\n\n &[data-position-regular='right'] {\n align-items: center;\n justify-content: flex-end;\n }\n\n @media (max-width: 767px) {\n &[data-position-narrow='center'] {\n align-items: center;\n justify-content: center;\n }\n\n &[data-position-narrow='bottom'] {\n align-items: end;\n justify-content: center;\n }\n }\n}\n\n.Dialog {\n display: flex;\n /* stylelint-disable-next-line primer/responsive-widths */\n width: 640px;\n min-width: 296px;\n max-width: calc(100dvw - 64px);\n height: auto;\n max-height: calc(100dvh - 64px);\n flex-direction: column;\n background-color: var(--overlay-bgColor);\n border-radius: var(--borderRadius-large);\n border-radius: var(--borderRadius-large, var(--borderRadius-large));\n box-shadow: var(--shadow-floating-small);\n opacity: 1;\n\n &:where([data-width='small']) {\n width: 296px;\n }\n\n &:where([data-width='medium']) {\n width: 320px;\n }\n\n &:where([data-width='large']) {\n /* stylelint-disable-next-line primer/responsive-widths */\n width: 480px;\n }\n\n &:where([data-height='small']) {\n height: 480px;\n }\n\n &:where([data-height='large']) {\n height: 640px;\n }\n\n @media screen and (prefers-reduced-motion: no-preference) {\n animation: Overlay--motion-scaleFade 0.2s cubic-bezier(0.33, 1, 0.68, 1) 1ms 1 normal none running;\n }\n\n &[data-position-regular='center'] {\n border-radius: var(--borderRadius-large, var(--borderRadius-large));\n\n @media screen and (prefers-reduced-motion: no-preference) {\n animation: Overlay--motion-scaleFade 0.2s cubic-bezier(0.33, 1, 0.68, 1) 1ms 1 normal none running;\n }\n }\n\n &[data-position-regular='left'] {\n height: 100dvh;\n max-height: unset;\n border-radius: var(--borderRadius-large, var(--borderRadius-large));\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n animation: Overlay--motion-slideInRight 0.25s cubic-bezier(0.33, 1, 0.68, 1) 1ms 1 normal none running;\n }\n }\n\n &[data-position-regular='right'] {\n height: 100dvh;\n max-height: unset;\n border-radius: var(--borderRadius-large, var(--borderRadius-large));\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n animation: Overlay--motion-slideInLeft 0.25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running;\n }\n }\n\n @media (max-width: 767px) {\n &[data-position-narrow='center'] {\n /* stylelint-disable-next-line primer/responsive-widths */\n width: 640px;\n height: auto;\n border-radius: var(--borderRadius-large, var(--borderRadius-large));\n\n &:where([data-width='small']) {\n width: 296px;\n }\n\n &:where([data-width='medium']) {\n width: 320px;\n }\n\n &:where([data-width='large']) {\n /* stylelint-disable-next-line primer/responsive-widths */\n width: 480px;\n }\n\n &:where([data-height='small']) {\n height: 480px;\n }\n\n &:where([data-height='large']) {\n height: 640px;\n }\n }\n\n &[data-position-narrow='bottom'] {\n width: 100dvw;\n max-width: 100dvw;\n height: auto;\n max-height: calc(100dvh - 64px);\n border-radius: var(--borderRadius-large, var(--borderRadius-large));\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n animation: Overlay--motion-slideUp 0.25s cubic-bezier(0.33, 1, 0.68, 1) 1ms 1 normal none running;\n }\n }\n\n &[data-position-narrow='fullscreen'] {\n width: 100%;\n max-width: 100dvw;\n height: 100%;\n max-height: 100dvh;\n border-radius: unset !important;\n flex-grow: 1;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n animation: Overlay--motion-scaleFade 0.2s cubic-bezier(0.33, 1, 0.68, 1) 1ms 1 normal none running;\n }\n }\n }\n}\n\nbody:has(.Dialog.DisableScroll) {\n /* stylelint-disable-next-line primer/spacing */\n padding-right: var(--prc-dialog-scrollgutter) !important;\n overflow: hidden !important;\n}\n\n.DialogOverflowWrapper {\n flex-grow: 1;\n}\n\n/*\nAdd a border between the body and footer if:\n- the dialog has a footer\n- the dialog has a body that can scroll\n- the browser supports the `animation-timeline` property and its `scroll()` function\n*/\n.Dialog:has(.Footer) {\n --can-scroll: 0;\n\n .DialogOverflowWrapper {\n /* If the browser does not support the `animation-timeline` property, always show a border */\n border-bottom: var(--borderWidth-default) solid var(--borderColor-default);\n animation: detect-scroll;\n animation-timeline: scroll(self);\n\n @supports (animation-timeline: scroll(self)) {\n border-bottom: calc(var(--borderWidth-thin) * var(--can-scroll)) solid var(--borderColor-default);\n }\n }\n}\n\n.Header {\n z-index: 1;\n max-height: 35vh;\n padding: var(--base-size-8);\n overflow-y: auto;\n /* stylelint-disable-next-line primer/box-shadow */\n box-shadow: 0 1px 0 var(--borderColor-default);\n flex-shrink: 0;\n}\n\n.HeaderInner {\n display: flex;\n}\n\n.HeaderContent {\n display: flex;\n padding-inline: var(--base-size-8);\n padding-block: var(--base-size-6);\n flex-direction: column;\n flex-grow: 1;\n}\n\n.Title {\n margin: 0; /* override default margin */\n font-size: var(--text-body-size-medium);\n font-weight: var(--text-title-weight-large);\n}\n\n.Subtitle {\n margin: 0; /* override default margin */\n margin-top: var(--base-size-4);\n font-size: var(--text-body-size-small);\n font-weight: var(--base-text-weight-normal);\n color: var(--fgColor-muted);\n}\n\n.Body {\n padding: var(--base-size-16);\n overflow: auto;\n flex-grow: 1;\n}\n\n.Footer {\n z-index: 1;\n display: flex;\n flex-flow: wrap;\n justify-content: flex-end;\n padding: var(--base-size-16);\n gap: var(--base-size-8);\n flex-shrink: 0;\n\n @media (max-height: 325px) {\n flex-wrap: nowrap;\n overflow-x: scroll;\n flex-direction: row;\n justify-content: unset;\n }\n}\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.prc-ToggleSwitch-ToggleSwitch-rQz-0{--toggleSwitch-transition-duration:80ms;--toggleSwitch-transition-easing:cubic-bezier(0.5,1,0.89,1);align-items:center;display:inline-flex}.prc-ToggleSwitch-ToggleSwitch-rQz-0:where([data-status-label-position=start]){flex-direction:row}.prc-ToggleSwitch-ToggleSwitch-rQz-0:where([data-status-label-position=end]){flex-direction:row-reverse}.prc-ToggleSwitch-LoadingSpinner--4KG4{display:inline-flex}.prc-ToggleSwitch-LoadingSpinner--4KG4:where([data-status-label-position=end]){margin-left:var(--base-size-8,.5rem);margin-right:0}.prc-ToggleSwitch-StatusText-7fNOA{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-7fNOA:where([data-disabled=true]){color:var(--fgColor-muted,var(--color-fg-muted));cursor:not-allowed}.prc-ToggleSwitch-StatusText-7fNOA:where([data-size=small]){font-size:var(--text-body-size-small,.75rem)}.prc-ToggleSwitch-StatusText-7fNOA:where([data-size=medium]){font-size:var(--text-body-size-medium,.875rem)}.prc-ToggleSwitch-StatusTextItem-VE86e{display:block;text-align:right}.prc-ToggleSwitch-StatusTextItem-VE86e:where([data-hidden=true]){height:0;visibility:hidden}.prc-ToggleSwitch-SwitchButton-1CtM6{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-1CtM6:focus-visible{outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:3px}.prc-ToggleSwitch-SwitchButton-1CtM6:focus:not(:focus-visible){outline:1px solid transparent}@media (pointer:coarse){.prc-ToggleSwitch-SwitchButton-1CtM6:before{content:"";left:0;min-height:44px;position:absolute;right:0;top:50%;transform:translateY(-50%)}}@media (prefers-reduced-motion){.prc-ToggleSwitch-SwitchButton-1CtM6,.prc-ToggleSwitch-SwitchButton-1CtM6 *{transition:none}}.prc-ToggleSwitch-SwitchButton-1CtM6:where([data-size=small]){height:24px;width:48px}.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-disabled=true]){border-color:GrayText}}.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-checked=false]:not([data-disabled=true]):focus-visible),.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-checked=false]:not([data-disabled=true]):active),.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6: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-1CtM6:where([data-checked=true]:not([data-disabled=true]):focus-visible),.prc-ToggleSwitch-SwitchButton-1CtM6: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-1CtM6:where([data-checked=true]:not([data-disabled=true]):active),.prc-ToggleSwitch-SwitchButton-1CtM6: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-u57jo{align-items:center;display:flex;height:100%;overflow:hidden;width:100%}.prc-ToggleSwitch-IconContainer-mUpUm{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-mUpUm{transition:none}}.prc-ToggleSwitch-LineIconContainer-cn8pC{color:var(--control-checked-fgColor-rest,var(--color-switch-track-checked-fg,#fff))}.prc-ToggleSwitch-LineIconContainer-cn8pC:where([data-disabled=true]){color:var(--control-checked-fgColor-disabled,var(--color-switch-track-checked-disabled-fg,#fff))}.prc-ToggleSwitch-LineIconContainer-cn8pC:where([data-checked=true]){transform:translateX(0)}.prc-ToggleSwitch-LineIconContainer-cn8pC:where([data-checked=false]){transform:translateX(-100%)}.prc-ToggleSwitch-CircleIconContainer-XiMW5{color:var(--controlTrack-fgColor-rest,var(--color-switch-track-fg,#656d76))}.prc-ToggleSwitch-CircleIconContainer-XiMW5:where([data-disabled=true]){color:var(--controlTrack-fgColor-disabled,var(--color-switch-track-disabled-fg,#fff))}.prc-ToggleSwitch-CircleIconContainer-XiMW5:where([data-checked=true]){transform:translateX(100%)}.prc-ToggleSwitch-CircleIconContainer-XiMW5:where([data-checked=false]){transform:translateX(0)}.prc-ToggleSwitch-ToggleKnob-N9ops{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-N9ops{transition:none}}.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-checked=false]){transform:translateX(0)}.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-checked=true]){border-color:var(--controlKnob-borderColor-checked,var(--color-switch-knob-checked-border,#0969da));transform:translateX(100%)}.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-disabled=true]){background-color:var(--controlKnob-bgColor-disabled,var(--color-btn-bg));border-color:var(--controlTrack-bgColor-disabled,var(--color-switch-track-disabled-bg,#8c959f))}@media (forced-colors:active){.prc-ToggleSwitch-ToggleKnob-N9ops:where([data-disabled=true]){color:GrayText}}
|
|
2
|
-
/*# sourceMappingURL=ToggleSwitch-d1bd60b0.css.map */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ToggleSwitch/ToggleSwitch.module.css.js"],"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,+DACE,wEAAqD,CAErD,+FAKF,CAHE,8BALF,+DAMI,cAEJ,CADE","file":"ToggleSwitch-d1bd60b0.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, hsl(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, hsl(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 background-color: var(--controlKnob-bgColor-disabled);\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"]}
|