@primer/react 38.29.0-rc.dc2cb3e06 → 38.29.0-rc.e2fa16f13

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 (66) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/ActionList/ActionList-65f7daac.css +2 -0
  3. package/dist/ActionList/ActionList-65f7daac.css.map +1 -0
  4. package/dist/ActionList/ActionList.module.css.js +2 -2
  5. package/dist/ActionList/Description.d.ts.map +1 -1
  6. package/dist/ActionList/GroupHeadingTrailingAction.js +20 -14
  7. package/dist/ActionList/List.d.ts.map +1 -1
  8. package/dist/ActionList/List.js +21 -16
  9. package/dist/ActionList/TrailingAction.d.ts +2 -1
  10. package/dist/ActionList/TrailingAction.d.ts.map +1 -1
  11. package/dist/ActionList/TrailingAction.js +37 -31
  12. package/dist/AnchoredOverlay/AnchoredOverlay.d.ts.map +1 -1
  13. package/dist/AnchoredOverlay/AnchoredOverlay.js +1 -0
  14. package/dist/Autocomplete/AutocompleteInput.d.ts.map +1 -1
  15. package/dist/Autocomplete/AutocompleteInput.js +3 -1
  16. package/dist/Autocomplete/AutocompleteMenu.d.ts.map +1 -1
  17. package/dist/Autocomplete/AutocompleteMenu.js +7 -1
  18. package/dist/AvatarStack/AvatarStack.d.ts.map +1 -1
  19. package/dist/AvatarStack/AvatarStack.js +1 -0
  20. package/dist/Blankslate/Blankslate-11d7a7fd.css +2 -0
  21. package/dist/Blankslate/Blankslate-11d7a7fd.css.map +1 -0
  22. package/dist/Blankslate/Blankslate.module.css.js +1 -1
  23. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  24. package/dist/Breadcrumbs/Breadcrumbs.js +7 -0
  25. package/dist/DataTable/storybook/data.d.ts.map +1 -1
  26. package/dist/Dialog/Dialog.js +1 -1
  27. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts.map +1 -1
  28. package/dist/FeatureFlags/DefaultFeatureFlags.js +1 -0
  29. package/dist/FilteredActionList/FilteredActionList.d.ts.map +1 -1
  30. package/dist/FilteredActionList/FilteredActionList.js +4 -0
  31. package/dist/FilteredActionList/FilteredActionListLoaders-bdda3d7e.css +2 -0
  32. package/dist/FilteredActionList/FilteredActionListLoaders-bdda3d7e.css.map +1 -0
  33. package/dist/FilteredActionList/FilteredActionListLoaders.js +1 -1
  34. package/dist/FilteredActionList/FilteredActionListLoaders.module.css.js +2 -2
  35. package/dist/FilteredActionList/useAnnouncements.d.ts.map +1 -1
  36. package/dist/LabelGroup/LabelGroup.d.ts.map +1 -1
  37. package/dist/LabelGroup/LabelGroup.js +5 -0
  38. package/dist/SelectPanel/SelectPanel.d.ts.map +1 -1
  39. package/dist/SelectPanel/SelectPanel.js +25 -2
  40. package/dist/Spinner/Spinner.d.ts.map +1 -1
  41. package/dist/Textarea/Textarea.d.ts.map +1 -1
  42. package/dist/ToggleSwitch/ToggleSwitch.d.ts.map +1 -1
  43. package/dist/TooltipV2/Tooltip.d.ts.map +1 -1
  44. package/dist/TooltipV2/Tooltip.js +1 -0
  45. package/dist/TreeView/TreeView.d.ts.map +1 -1
  46. package/dist/experimental/SelectPanel2/SelectPanel.d.ts.map +1 -1
  47. package/dist/experimental/SelectPanel2/SelectPanel.js +1 -0
  48. package/dist/hooks/useControllableState.d.ts.map +1 -1
  49. package/dist/hooks/useControllableState.js +2 -0
  50. package/dist/hooks/useDetails.d.ts.map +1 -1
  51. package/dist/hooks/useDialog.d.ts.map +1 -1
  52. package/dist/hooks/useFocusZone.d.ts.map +1 -1
  53. package/dist/hooks/useFocusZone.js +3 -1
  54. package/dist/hooks/useMenuInitialFocus.d.ts.map +1 -1
  55. package/dist/hooks/useMenuInitialFocus.js +1 -0
  56. package/dist/hooks/useMnemonics.d.ts.map +1 -1
  57. package/dist/utils/StressTest.d.ts.map +1 -1
  58. package/dist/utils/descendant-registry.d.ts.map +1 -1
  59. package/generated/components.json +12 -6
  60. package/package.json +5 -3
  61. package/dist/ActionList/ActionList-1940009e.css +0 -2
  62. package/dist/ActionList/ActionList-1940009e.css.map +0 -1
  63. package/dist/Blankslate/Blankslate-a039d79a.css +0 -2
  64. package/dist/Blankslate/Blankslate-a039d79a.css.map +0 -1
  65. package/dist/FilteredActionList/FilteredActionListLoaders-a46a8ea4.css +0 -2
  66. package/dist/FilteredActionList/FilteredActionListLoaders-a46a8ea4.css.map +0 -1
@@ -534,6 +534,12 @@
534
534
  "type": "boolean",
535
535
  "defaultValue": "false",
536
536
  "description": "Whether the TrailingAction is in a loading state. When true, the TrailingAction will render a spinner instead of an icon. Only available when `as` is 'button'."
537
+ },
538
+ {
539
+ "name": "tooltipDirection",
540
+ "type": "'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w' | 'nw'",
541
+ "defaultValue": "'w'",
542
+ "description": "Direction of the tooltip shown when hovering over the TrailingAction. Only applies when `icon` is set."
537
543
  }
538
544
  ]
539
545
  },
@@ -1035,7 +1041,7 @@
1035
1041
  },
1036
1042
  {
1037
1043
  "id": "components-autocomplete-features--in-a-dialog",
1038
- "code": "() => {\n const outerContainerRef = useRef<HTMLDivElement>(null)\n const [mounted, setMounted] = useState(false)\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n useEffect(() => {\n if (outerContainerRef.current instanceof HTMLElement) {\n registerPortalRoot(outerContainerRef.current, 'outerContainer')\n setMounted(true)\n }\n }, [isDialogOpen])\n return (\n <>\n <Button onClick={() => setIsDialogOpen(true)}>Show dialog</Button>\n <Dialog\n aria-label=\"Dialog with autocomplete\"\n id=\"dialog-with-autocomplete\"\n isOpen={isDialogOpen}\n onDismiss={() => setIsDialogOpen(false)}\n >\n <div ref={outerContainerRef}>\n <form className={classes.FormPadding}>\n {mounted ? (\n <FormControl>\n <FormControl.Label id=\"autocompleteLabel\">\n Default label\n </FormControl.Label>\n <Autocomplete>\n <Autocomplete.Input data-testid=\"autocompleteInput\" />\n <Autocomplete.Overlay portalContainerName=\"outerContainer\">\n <Autocomplete.Menu\n items={items}\n selectedItemIds={[]}\n aria-labelledby=\"autocompleteLabel\"\n />\n </Autocomplete.Overlay>\n </Autocomplete>\n </FormControl>\n ) : null}\n </form>\n </div>\n </Dialog>\n <p>\n The Autocomplete.Overlay is portalled to a div inside the Dialog to\n ensure it appears above the dialog in the stacking context.\n </p>\n </>\n )\n}"
1044
+ "code": "() => {\n const outerContainerRef = useRef<HTMLDivElement>(null)\n const [mounted, setMounted] = useState(false)\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n useEffect(() => {\n if (outerContainerRef.current instanceof HTMLElement) {\n registerPortalRoot(outerContainerRef.current, 'outerContainer')\n // eslint-disable-next-line react-you-might-not-need-an-effect/no-chain-state-updates\n setMounted(true)\n }\n }, [isDialogOpen])\n return (\n <>\n <Button onClick={() => setIsDialogOpen(true)}>Show dialog</Button>\n <Dialog\n aria-label=\"Dialog with autocomplete\"\n id=\"dialog-with-autocomplete\"\n isOpen={isDialogOpen}\n onDismiss={() => setIsDialogOpen(false)}\n >\n <div ref={outerContainerRef}>\n <form className={classes.FormPadding}>\n {mounted ? (\n <FormControl>\n <FormControl.Label id=\"autocompleteLabel\">\n Default label\n </FormControl.Label>\n <Autocomplete>\n <Autocomplete.Input data-testid=\"autocompleteInput\" />\n <Autocomplete.Overlay portalContainerName=\"outerContainer\">\n <Autocomplete.Menu\n items={items}\n selectedItemIds={[]}\n aria-labelledby=\"autocompleteLabel\"\n />\n </Autocomplete.Overlay>\n </Autocomplete>\n </FormControl>\n ) : null}\n </form>\n </div>\n </Dialog>\n <p>\n The Autocomplete.Overlay is portalled to a div inside the Dialog to\n ensure it appears above the dialog in the stacking context.\n </p>\n </>\n )\n}"
1039
1045
  }
1040
1046
  ],
1041
1047
  "importPath": "@primer/react",
@@ -3140,7 +3146,7 @@
3140
3146
  },
3141
3147
  {
3142
3148
  "id": "components-dialog-features--repro-multistep-dialog-with-conditional-footer",
3143
- "code": "({ width, height }: DialogStoryProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const onDialogClose = useCallback(() => setIsOpen(false), [])\n const [step, setStep] = React.useState(1)\n const [inputText, setInputText] = React.useState('')\n const dialogRef = useRef<HTMLDivElement>(null)\n const renderFooterConditionally = () => {\n if (step === 1) return null\n return (\n <Dialog.Footer>\n <Button variant=\"primary\">Submit</Button>\n </Dialog.Footer>\n )\n }\n React.useEffect(() => {\n // focus the close button when the step changes\n const focusTarget = dialogRef.current?.querySelector(\n 'button[aria-label=\"Close\"]',\n ) as HTMLButtonElement\n if (step === 2) {\n focusTarget.focus()\n }\n }, [step])\n return (\n <>\n <Button onClick={() => setIsOpen(!isOpen)}>Show dialog</Button>\n {isOpen && (\n <Dialog\n title={`Step ${step}`}\n width={width}\n height={height}\n renderFooter={renderFooterConditionally}\n onClose={onDialogClose}\n footerButtons={[\n {\n buttonType: 'primary',\n content: 'Proceed',\n },\n ]}\n ref={dialogRef}\n >\n {step === 1 ? (\n <Stack gap=\"spacious\" direction=\"vertical\">\n <Stack direction=\"horizontal\" justify=\"space-between\">\n Bug Report <Button onClick={() => setStep(2)}>Choose</Button>\n </Stack>\n <Stack direction=\"horizontal\" justify=\"space-between\">\n Feature request{' '}\n <Button onClick={() => setStep(2)}>Choose</Button>\n </Stack>\n </Stack>\n ) : (\n <div>\n <Stack gap=\"condensed\" direction=\"vertical\">\n <label htmlFor=\"description\">Description</label>\n <TextInput\n id=\"description\"\n placeholder=\"Write the description here\"\n value={inputText}\n onChange={(event) => setInputText(event.target.value)}\n />\n </Stack>\n </div>\n )}\n </Dialog>\n )}\n </>\n )\n}"
3149
+ "code": "({ width, height }: DialogStoryProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const onDialogClose = useCallback(() => setIsOpen(false), [])\n const [step, setStep] = React.useState(1)\n const [inputText, setInputText] = React.useState('')\n const dialogRef = useRef<HTMLDivElement>(null)\n const renderFooterConditionally = () => {\n if (step === 1) return null\n return (\n <Dialog.Footer>\n <Button variant=\"primary\">Submit</Button>\n </Dialog.Footer>\n )\n }\n React.useEffect(() => {\n // focus the close button when the step changes\n const focusTarget = dialogRef.current?.querySelector(\n 'button[aria-label=\"Close\"]',\n ) as HTMLButtonElement\n // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler\n if (step === 2) {\n focusTarget.focus()\n }\n }, [step])\n return (\n <>\n <Button onClick={() => setIsOpen(!isOpen)}>Show dialog</Button>\n {isOpen && (\n <Dialog\n title={`Step ${step}`}\n width={width}\n height={height}\n renderFooter={renderFooterConditionally}\n onClose={onDialogClose}\n footerButtons={[\n {\n buttonType: 'primary',\n content: 'Proceed',\n },\n ]}\n ref={dialogRef}\n >\n {step === 1 ? (\n <Stack gap=\"spacious\" direction=\"vertical\">\n <Stack direction=\"horizontal\" justify=\"space-between\">\n Bug Report <Button onClick={() => setStep(2)}>Choose</Button>\n </Stack>\n <Stack direction=\"horizontal\" justify=\"space-between\">\n Feature request{' '}\n <Button onClick={() => setStep(2)}>Choose</Button>\n </Stack>\n </Stack>\n ) : (\n <div>\n <Stack gap=\"condensed\" direction=\"vertical\">\n <label htmlFor=\"description\">Description</label>\n <TextInput\n id=\"description\"\n placeholder=\"Write the description here\"\n value={inputText}\n onChange={(event) => setInputText(event.target.value)}\n />\n </Stack>\n </div>\n )}\n </Dialog>\n )}\n </>\n )\n}"
3144
3150
  },
3145
3151
  {
3146
3152
  "id": "components-dialog-features--bottom-sheet-narrow",
@@ -3428,7 +3434,7 @@
3428
3434
  },
3429
3435
  {
3430
3436
  "id": "components-formcontrol-features--with-custom-input",
3431
- "code": "() => {\n const [value, setValue] = React.useState('mona lisa')\n const [validationResult, setValidationResult] = React.useState('')\n const doesValueContainSpaces = (inputValue: string) => /\\s/g.test(inputValue)\n const handleInputChange = (e: {\n currentTarget: {\n value: React.SetStateAction<string>\n }\n }) => {\n setValue(e.currentTarget.value)\n }\n React.useEffect(() => {\n if (doesValueContainSpaces(value)) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setValidationResult('noSpaces')\n } else if (value) {\n setValidationResult('validName')\n }\n }, [value])\n return (\n <div className={classes.GridContainer}>\n <FormControl>\n <FormControl.Label htmlFor=\"custom-input\">\n GitHub handle\n </FormControl.Label>\n <CustomTextInput\n id=\"custom-input\"\n aria-describedby=\"custom-input-validation custom-input-caption\"\n aria-invalid={validationResult === 'noSpaces'}\n onChange={handleInputChange}\n />\n {validationResult === 'noSpaces' && (\n <FormControl.Validation id=\"custom-input-validation\" variant=\"error\">\n GitHub handles cannot contain spaces\n </FormControl.Validation>\n )}\n {validationResult === 'validName' && (\n <FormControl.Validation\n id=\"custom-input-validation\"\n variant=\"success\"\n >\n Valid name\n </FormControl.Validation>\n )}\n <FormControl.Caption id=\"custom-input-caption\">\n With or without &quot;@&quot;. For example &quot;monalisa&quot; or\n &quot;@monalisa&quot;\n </FormControl.Caption>\n </FormControl>\n\n <CheckboxGroup>\n <CheckboxGroup.Label>Checkboxes</CheckboxGroup.Label>\n <FormControl layout=\"horizontal\">\n <CustomCheckboxInput\n id=\"custom-checkbox-one\"\n aria-describedby=\"custom-checkbox-one-caption\"\n value=\"checkOne\"\n />\n <FormControl.Label htmlFor=\"custom-checkbox-one\">\n Checkbox one\n </FormControl.Label>\n <FormControl.Caption id=\"custom-checkbox-one-caption\">\n Hint text for checkbox one\n </FormControl.Caption>\n </FormControl>\n <FormControl layout=\"horizontal\">\n <CustomCheckboxInput\n id=\"custom-checkbox-two\"\n aria-describedby=\"custom-checkbox-two-caption\"\n value=\"checkTwo\"\n />\n <FormControl.Label htmlFor=\"custom-checkbox-two\">\n Checkbox two\n </FormControl.Label>\n <FormControl.Caption id=\"custom-checkbox-two-caption\">\n Hint text for checkbox two\n </FormControl.Caption>\n </FormControl>\n </CheckboxGroup>\n </div>\n )\n}"
3437
+ "code": "() => {\n const [value, setValue] = React.useState('mona lisa')\n const [validationResult, setValidationResult] = React.useState('')\n const doesValueContainSpaces = (inputValue: string) => /\\s/g.test(inputValue)\n const handleInputChange = (e: {\n currentTarget: {\n value: React.SetStateAction<string>\n }\n }) => {\n setValue(e.currentTarget.value)\n }\n React.useEffect(() => {\n if (doesValueContainSpaces(value)) {\n // eslint-disable-next-line react-hooks/set-state-in-effect, react-you-might-not-need-an-effect/no-chain-state-updates\n setValidationResult('noSpaces')\n // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler\n } else if (value) {\n // eslint-disable-next-line react-you-might-not-need-an-effect/no-chain-state-updates\n setValidationResult('validName')\n }\n }, [value])\n return (\n <div className={classes.GridContainer}>\n <FormControl>\n <FormControl.Label htmlFor=\"custom-input\">\n GitHub handle\n </FormControl.Label>\n <CustomTextInput\n id=\"custom-input\"\n aria-describedby=\"custom-input-validation custom-input-caption\"\n aria-invalid={validationResult === 'noSpaces'}\n onChange={handleInputChange}\n />\n {validationResult === 'noSpaces' && (\n <FormControl.Validation id=\"custom-input-validation\" variant=\"error\">\n GitHub handles cannot contain spaces\n </FormControl.Validation>\n )}\n {validationResult === 'validName' && (\n <FormControl.Validation\n id=\"custom-input-validation\"\n variant=\"success\"\n >\n Valid name\n </FormControl.Validation>\n )}\n <FormControl.Caption id=\"custom-input-caption\">\n With or without &quot;@&quot;. For example &quot;monalisa&quot; or\n &quot;@monalisa&quot;\n </FormControl.Caption>\n </FormControl>\n\n <CheckboxGroup>\n <CheckboxGroup.Label>Checkboxes</CheckboxGroup.Label>\n <FormControl layout=\"horizontal\">\n <CustomCheckboxInput\n id=\"custom-checkbox-one\"\n aria-describedby=\"custom-checkbox-one-caption\"\n value=\"checkOne\"\n />\n <FormControl.Label htmlFor=\"custom-checkbox-one\">\n Checkbox one\n </FormControl.Label>\n <FormControl.Caption id=\"custom-checkbox-one-caption\">\n Hint text for checkbox one\n </FormControl.Caption>\n </FormControl>\n <FormControl layout=\"horizontal\">\n <CustomCheckboxInput\n id=\"custom-checkbox-two\"\n aria-describedby=\"custom-checkbox-two-caption\"\n value=\"checkTwo\"\n />\n <FormControl.Label htmlFor=\"custom-checkbox-two\">\n Checkbox two\n </FormControl.Label>\n <FormControl.Caption id=\"custom-checkbox-two-caption\">\n Hint text for checkbox two\n </FormControl.Caption>\n </FormControl>\n </CheckboxGroup>\n </div>\n )\n}"
3432
3438
  },
3433
3439
  {
3434
3440
  "id": "components-formcontrol-features--with-checkbox-and-radio-inputs",
@@ -3440,7 +3446,7 @@
3440
3446
  },
3441
3447
  {
3442
3448
  "id": "components-formcontrol-features--validation-example",
3443
- "code": "() => {\n const [value, setValue] = React.useState('mona lisa')\n const [validationResult, setValidationResult] = React.useState('')\n const doesValueContainSpaces = (inputValue: string) => /\\s/g.test(inputValue)\n const handleInputChange = (e: {\n currentTarget: {\n value: React.SetStateAction<string>\n }\n }) => {\n setValue(e.currentTarget.value)\n }\n React.useEffect(() => {\n if (doesValueContainSpaces(value)) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setValidationResult('noSpaces')\n } else if (value) {\n setValidationResult('validName')\n }\n }, [value])\n return (\n <FormControl>\n <FormControl.Label>GitHub handle</FormControl.Label>\n <TextInput block value={value} onChange={handleInputChange} />\n {validationResult === 'noSpaces' && (\n <FormControl.Validation variant=\"error\">\n GitHub handles cannot contain spaces\n </FormControl.Validation>\n )}\n {validationResult === 'validName' && (\n <FormControl.Validation variant=\"success\">\n Valid name\n </FormControl.Validation>\n )}\n <FormControl.Caption>\n With or without &quot;@&quot;. For example &quot;monalisa&quot; or\n &quot;@monalisa&quot;\n </FormControl.Caption>\n </FormControl>\n )\n}"
3449
+ "code": "() => {\n const [value, setValue] = React.useState('mona lisa')\n const [validationResult, setValidationResult] = React.useState('')\n const doesValueContainSpaces = (inputValue: string) => /\\s/g.test(inputValue)\n const handleInputChange = (e: {\n currentTarget: {\n value: React.SetStateAction<string>\n }\n }) => {\n setValue(e.currentTarget.value)\n }\n React.useEffect(() => {\n if (doesValueContainSpaces(value)) {\n // eslint-disable-next-line react-hooks/set-state-in-effect, react-you-might-not-need-an-effect/no-chain-state-updates\n setValidationResult('noSpaces')\n // eslint-disable-next-line react-you-might-not-need-an-effect/no-event-handler\n } else if (value) {\n // eslint-disable-next-line react-you-might-not-need-an-effect/no-chain-state-updates\n setValidationResult('validName')\n }\n }, [value])\n return (\n <FormControl>\n <FormControl.Label>GitHub handle</FormControl.Label>\n <TextInput block value={value} onChange={handleInputChange} />\n {validationResult === 'noSpaces' && (\n <FormControl.Validation variant=\"error\">\n GitHub handles cannot contain spaces\n </FormControl.Validation>\n )}\n {validationResult === 'validName' && (\n <FormControl.Validation variant=\"success\">\n Valid name\n </FormControl.Validation>\n )}\n <FormControl.Caption>\n With or without &quot;@&quot;. For example &quot;monalisa&quot; or\n &quot;@monalisa&quot;\n </FormControl.Caption>\n </FormControl>\n )\n}"
3444
3450
  },
3445
3451
  {
3446
3452
  "id": "components-formcontrol-features--with-select-panel",
@@ -5605,7 +5611,7 @@
5605
5611
  },
5606
5612
  {
5607
5613
  "id": "behaviors-portal-features--custom-portal-root-by-registration",
5608
- "code": "() => {\n const outerContainerRef = React.useRef<HTMLDivElement>(null)\n const [mounted, setMounted] = React.useState(false)\n React.useEffect(() => {\n if (outerContainerRef.current instanceof HTMLElement) {\n registerPortalRoot(outerContainerRef.current)\n setMounted(true)\n }\n }, [])\n return (\n <>\n Root position\n <div\n className={clsx(classes.PortalContainer, classes.OuterContainer)}\n ref={outerContainerRef}\n >\n {mounted ? (\n <>\n Outer container\n <div\n className={clsx(classes.PortalContainer, classes.InnerContainer)}\n >\n Inner container\n <Portal>Portaled content rendered at the outer container.</Portal>\n </div>\n </>\n ) : null}\n </div>\n </>\n )\n}"
5614
+ "code": "() => {\n const outerContainerRef = React.useRef<HTMLDivElement>(null)\n const [mounted, setMounted] = React.useState(false)\n React.useEffect(() => {\n if (outerContainerRef.current instanceof HTMLElement) {\n registerPortalRoot(outerContainerRef.current)\n // eslint-disable-next-line react-you-might-not-need-an-effect/no-initialize-state\n setMounted(true)\n }\n }, [])\n return (\n <>\n Root position\n <div\n className={clsx(classes.PortalContainer, classes.OuterContainer)}\n ref={outerContainerRef}\n >\n {mounted ? (\n <>\n Outer container\n <div\n className={clsx(classes.PortalContainer, classes.InnerContainer)}\n >\n Inner container\n <Portal>Portaled content rendered at the outer container.</Portal>\n </div>\n </>\n ) : null}\n </div>\n </>\n )\n}"
5609
5615
  },
5610
5616
  {
5611
5617
  "id": "behaviors-portal-features--multiple-portal-roots",
@@ -9276,7 +9282,7 @@
9276
9282
  },
9277
9283
  {
9278
9284
  "id": "deprecated-components-selectpanel-examples--with-filter-buttons",
9279
- "code": "() => {\n const [selectedFilter, setSelectedFilter] = React.useState<\n 'branches' | 'tags'\n >('branches')\n\n /* Selection */\n const [savedInitialRef, setSavedInitialRef] = React.useState(data.ref)\n const [selectedRef, setSelectedRef] = React.useState(savedInitialRef)\n const onSubmit = () => {\n setSavedInitialRef(selectedRef)\n data.ref = selectedRef // pretending to persist changes\n\n // eslint-disable-next-line no-console\n console.log('form submitted')\n }\n const onCancel = () => {\n setSelectedRef(savedInitialRef)\n }\n\n /* Filter */\n const [query, setQuery] = React.useState('')\n const onSearchInputChange: React.ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n const query = event.currentTarget.value\n setQuery(query)\n }\n const [filteredRefs, setFilteredRefs] = React.useState(data.branches)\n const setSearchResults = (\n query: string,\n selectedFilter: 'branches' | 'tags',\n ) => {\n if (query === '') setFilteredRefs(data[selectedFilter])\n else {\n setFilteredRefs(\n data[selectedFilter]\n .map((item) => {\n if (item.name.toLowerCase().startsWith(query))\n return {\n priority: 1,\n item,\n }\n else if (item.name.toLowerCase().includes(query))\n return {\n priority: 2,\n item,\n }\n else\n return {\n priority: -1,\n item,\n }\n })\n .filter((result) => result.priority > 0)\n .map((result) => result.item),\n )\n }\n }\n React.useEffect(\n function updateSearchResults() {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setSearchResults(query, selectedFilter)\n },\n [query, selectedFilter],\n )\n const sortingFn = (ref: { id: string }) => {\n if (ref.id === savedInitialRef) return -1\n else return 1\n }\n const itemsToShow = query\n ? filteredRefs\n : data[selectedFilter].sort(sortingFn)\n return (\n <>\n <h1>With Filter Buttons {savedInitialRef}</h1>\n\n <SelectPanel\n title=\"Switch branches/tags\"\n onSubmit={onSubmit}\n onCancel={onCancel}\n >\n <SelectPanel.Button\n leadingVisual={GitBranchIcon}\n trailingVisual={TriangleDownIcon}\n >\n {savedInitialRef}\n </SelectPanel.Button>\n\n <SelectPanel.Header>\n <SelectPanel.SearchInput onChange={onSearchInputChange} />\n\n <div id=\"filters\" className={classes.FilterButtons}>\n <Button\n variant=\"invisible\"\n style={{\n fontWeight:\n selectedFilter === 'branches'\n ? 'var(--base-text-weight-medium)'\n : 'var(--base-text-weight-normal)',\n color: 'var(--fgColor-default)',\n }}\n onClick={() => setSelectedFilter('branches')}\n count={20}\n >\n Branches\n </Button>\n <Button\n variant=\"invisible\"\n style={{\n fontWeight:\n selectedFilter === 'tags'\n ? 'var(--base-text-weight-medium)'\n : 'var(--base-text-weight-normal)',\n color: 'var(--fgColor-default)',\n }}\n onClick={() => setSelectedFilter('tags')}\n count={8}\n >\n Tags\n </Button>\n </div>\n </SelectPanel.Header>\n\n {itemsToShow.length === 0 ? (\n <SelectPanel.Message\n variant=\"empty\"\n title={`No labels found for \"${query}\"`}\n >\n Try a different search term\n </SelectPanel.Message>\n ) : (\n <ActionList>\n {itemsToShow.map((item) => (\n <ActionList.Item\n key={item.id}\n selected={selectedRef === item.id}\n onSelect={() => setSelectedRef(item.id)}\n >\n {item.name}\n <ActionList.TrailingVisual>\n {item.trailingInfo}\n </ActionList.TrailingVisual>\n </ActionList.Item>\n ))}\n </ActionList>\n )}\n\n <SelectPanel.Footer>\n <SelectPanel.SecondaryAction\n variant=\"link\"\n href={`/${selectedFilter}`}\n >\n View all {selectedFilter}\n </SelectPanel.SecondaryAction>\n </SelectPanel.Footer>\n </SelectPanel>\n </>\n )\n}"
9285
+ "code": "() => {\n const [selectedFilter, setSelectedFilter] = React.useState<\n 'branches' | 'tags'\n >('branches')\n\n /* Selection */\n const [savedInitialRef, setSavedInitialRef] = React.useState(data.ref)\n const [selectedRef, setSelectedRef] = React.useState(savedInitialRef)\n const onSubmit = () => {\n setSavedInitialRef(selectedRef)\n data.ref = selectedRef // pretending to persist changes\n\n // eslint-disable-next-line no-console\n console.log('form submitted')\n }\n const onCancel = () => {\n setSelectedRef(savedInitialRef)\n }\n\n /* Filter */\n const [query, setQuery] = React.useState('')\n const onSearchInputChange: React.ChangeEventHandler<HTMLInputElement> = (\n event,\n ) => {\n const query = event.currentTarget.value\n setQuery(query)\n }\n const [filteredRefs, setFilteredRefs] = React.useState(data.branches)\n const setSearchResults = (\n query: string,\n selectedFilter: 'branches' | 'tags',\n ) => {\n if (query === '') setFilteredRefs(data[selectedFilter])\n else {\n setFilteredRefs(\n data[selectedFilter]\n .map((item) => {\n if (item.name.toLowerCase().startsWith(query))\n return {\n priority: 1,\n item,\n }\n else if (item.name.toLowerCase().includes(query))\n return {\n priority: 2,\n item,\n }\n else\n return {\n priority: -1,\n item,\n }\n })\n .filter((result) => result.priority > 0)\n .map((result) => result.item),\n )\n }\n }\n React.useEffect(\n function updateSearchResults() {\n // eslint-disable-next-line react-hooks/set-state-in-effect, react-you-might-not-need-an-effect/no-derived-state\n setSearchResults(query, selectedFilter)\n },\n [query, selectedFilter],\n )\n const sortingFn = (ref: { id: string }) => {\n if (ref.id === savedInitialRef) return -1\n else return 1\n }\n const itemsToShow = query\n ? filteredRefs\n : data[selectedFilter].sort(sortingFn)\n return (\n <>\n <h1>With Filter Buttons {savedInitialRef}</h1>\n\n <SelectPanel\n title=\"Switch branches/tags\"\n onSubmit={onSubmit}\n onCancel={onCancel}\n >\n <SelectPanel.Button\n leadingVisual={GitBranchIcon}\n trailingVisual={TriangleDownIcon}\n >\n {savedInitialRef}\n </SelectPanel.Button>\n\n <SelectPanel.Header>\n <SelectPanel.SearchInput onChange={onSearchInputChange} />\n\n <div id=\"filters\" className={classes.FilterButtons}>\n <Button\n variant=\"invisible\"\n style={{\n fontWeight:\n selectedFilter === 'branches'\n ? 'var(--base-text-weight-medium)'\n : 'var(--base-text-weight-normal)',\n color: 'var(--fgColor-default)',\n }}\n onClick={() => setSelectedFilter('branches')}\n count={20}\n >\n Branches\n </Button>\n <Button\n variant=\"invisible\"\n style={{\n fontWeight:\n selectedFilter === 'tags'\n ? 'var(--base-text-weight-medium)'\n : 'var(--base-text-weight-normal)',\n color: 'var(--fgColor-default)',\n }}\n onClick={() => setSelectedFilter('tags')}\n count={8}\n >\n Tags\n </Button>\n </div>\n </SelectPanel.Header>\n\n {itemsToShow.length === 0 ? (\n <SelectPanel.Message\n variant=\"empty\"\n title={`No labels found for \"${query}\"`}\n >\n Try a different search term\n </SelectPanel.Message>\n ) : (\n <ActionList>\n {itemsToShow.map((item) => (\n <ActionList.Item\n key={item.id}\n selected={selectedRef === item.id}\n onSelect={() => setSelectedRef(item.id)}\n >\n {item.name}\n <ActionList.TrailingVisual>\n {item.trailingInfo}\n </ActionList.TrailingVisual>\n </ActionList.Item>\n ))}\n </ActionList>\n )}\n\n <SelectPanel.Footer>\n <SelectPanel.SecondaryAction\n variant=\"link\"\n href={`/${selectedFilter}`}\n >\n View all {selectedFilter}\n </SelectPanel.SecondaryAction>\n </SelectPanel.Footer>\n </SelectPanel>\n </>\n )\n}"
9280
9286
  }
9281
9287
  ],
9282
9288
  "importPath": "@primer/react/experimental",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@primer/react",
3
3
  "type": "module",
4
- "version": "38.29.0-rc.dc2cb3e06",
4
+ "version": "38.29.0-rc.e2fa16f13",
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",
@@ -98,7 +98,7 @@
98
98
  "devDependencies": {
99
99
  "@actions/core": "1.11.1",
100
100
  "@babel/cli": "7.28.6",
101
- "@babel/core": "7.29.0",
101
+ "@babel/core": "7.29.6",
102
102
  "@babel/parser": "7.29.0",
103
103
  "@babel/plugin-proposal-nullish-coalescing-operator": "7.18.6",
104
104
  "@babel/plugin-proposal-optional-chaining": "7.21.0",
@@ -108,6 +108,7 @@
108
108
  "@figma/code-connect": "1.3.2",
109
109
  "@primer/css": "^21.5.1",
110
110
  "@primer/doc-gen": "^0.0.1",
111
+ "@rolldown/plugin-babel": "^0.2.3",
111
112
  "@rollup/plugin-babel": "6.1.0",
112
113
  "@rollup/plugin-commonjs": "29.0.0",
113
114
  "@rollup/plugin-json": "6.1.0",
@@ -125,6 +126,7 @@
125
126
  "@testing-library/react": "^16.3.0",
126
127
  "@testing-library/react-hooks": "^8.0.1",
127
128
  "@testing-library/user-event": "^14.5.2",
129
+ "@types/babel__core": "^7.20.5",
128
130
  "@types/lodash.groupby": "4.6.9",
129
131
  "@types/lodash.isempty": "4.4.9",
130
132
  "@types/lodash.isobject": "3.0.9",
@@ -133,7 +135,7 @@
133
135
  "@types/react": "18.3.11",
134
136
  "@types/react-dom": "18.3.1",
135
137
  "@types/react-is": "18.3.1",
136
- "@vitejs/plugin-react": "^4.3.3",
138
+ "@vitejs/plugin-react": "^6.0.2",
137
139
  "afterframe": "^1.0.2",
138
140
  "ajv": "8.18.0",
139
141
  "axe-core": "4.9.1",
@@ -1,2 +0,0 @@
1
- .prc-ActionList-ActionList-rPFF2,.prc-ActionList-ActionList-rPFF2 ul{list-style:none;margin:0;padding:0}.prc-ActionList-ActionList-rPFF2:where([data-variant=inset]){padding-block:var(--base-size-8,.5rem)}.prc-ActionList-ActionList-rPFF2:where([data-variant=inset],[data-variant=horizontal-inset]) .prc-ActionList-ActionListItem-So4vC{margin-inline:var(--base-size-8,.5rem)}.prc-ActionList-ActionList-rPFF2:where([data-variant=horizontal-inset]){padding-bottom:var(--base-size-8,.5rem)}.prc-ActionList-ActionList-rPFF2:where([data-dividers=true]) .prc-ActionList-ActionListSubContent-gKsFp:before{background:var(--borderColor-muted,#d1d9e0b3);content:"";display:block;height:1px;position:absolute;top:-7px;width:100%}:is(.prc-ActionList-ActionList-rPFF2:where([data-dividers=true]) [data-description-variant=inline]):before{background:var(--borderColor-muted,#d1d9e0b3);content:"";display:block;height:var(--borderWidth-thin,.0625rem);position:absolute;top:-7px;width:100%}:is(.prc-ActionList-ActionList-rPFF2:where([data-dividers=true]) [data-description-variant=inline]) .prc-ActionList-ActionListSubContent-gKsFp:before{content:unset}.prc-ActionList-ActionList-rPFF2:where([data-dividers=true]) .prc-ActionList-ActionListItem-So4vC:first-of-type .prc-ActionList-ActionListSubContent-gKsFp:before,.prc-ActionList-ActionList-rPFF2:where([data-dividers=true]) .prc-ActionList-Divider-taVfb+.prc-ActionList-ActionListItem-So4vC .prc-ActionList-ActionListSubContent-gKsFp:before{visibility:hidden}.prc-ActionList-ActionList-rPFF2:where([data-dividers=true]) .prc-ActionList-ActionListItem-So4vC:first-of-type [data-description-variant=inline]:before,.prc-ActionList-ActionList-rPFF2:where([data-dividers=true]) .prc-ActionList-Divider-taVfb+.prc-ActionList-ActionListItem-So4vC [data-description-variant=inline]:before{visibility:hidden}.prc-ActionList-ActionList-rPFF2 .prc-ActionList-Divider-taVfb:first-child{display:none}.prc-ActionList-ActionList-rPFF2[data-mixed-descriptions=true] .prc-ActionList-ItemLabel-81ohH{font-weight:var(--base-text-weight-normal,400)}.prc-ActionList-ActionListItem-So4vC{background-color:var(--control-transparent-bgColor-rest,#ffffff00);border-radius:var(--borderRadius-medium,.375rem);list-style:none;position:relative}.prc-ActionList-ActionListItem-So4vC[data-has-trailing-action]{display:flex;flex-wrap:nowrap}@media (forced-colors:active){.prc-ActionList-ActionListItem-So4vC :focus,.prc-ActionList-ActionListItem-So4vC:focus-visible,.prc-ActionList-ActionListItem-So4vC>a.prc-ActionList-focus-visible-OJCTY,.prc-ActionList-ActionListItem-So4vC[data-is-active-descendant]{outline:1px solid transparent!important}}@media (hover:hover){.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):active,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):hover{cursor:pointer}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):hover{background-color:var(--control-transparent-bgColor-hover,#818b981a)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):hover:not([data-active],:focus-visible){box-shadow:var(--boxShadow-thin,inset 0 0 0 .0625rem) var(--control-transparent-borderColor-active,#ffffff00);outline:solid var(--borderWidth-thin,.0625rem) transparent;outline-offset:calc(var(--borderWidth-thin,.0625rem)*-1)}}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):active{background-color:var(--control-transparent-bgColor-active,#818b9826)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):active:not([data-active]){box-shadow:var(--boxShadow-thin,inset 0 0 0 .0625rem) var(--control-transparent-borderColor-active,#ffffff00);outline:solid var(--borderWidth-thin,.0625rem) transparent;outline-offset:calc(var(--borderWidth-thin,.0625rem)*-1)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):focus-visible{box-shadow:none;outline:2px solid var(--focus-outline-color,var(--focus-outlineColor,#0969da));outline-offset:0}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):focus-visible .prc-ActionList-ActionListSubContent-gKsFp:before,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):focus-visible+.prc-ActionList-ActionListItem-So4vC .prc-ActionList-ActionListSubContent-gKsFp:before{visibility:hidden}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]) .prc-ActionList-ItemLabel-81ohH,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]) .prc-ActionList-LeadingAction-hbWbh,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]) .prc-ActionList-LeadingVisual-NBr28{color:var(--control-danger-fgColor-rest,#d1242f)}@media (hover:hover){.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):hover{background:var(--control-danger-bgColor-hover,#ffebe9)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):hover .prc-ActionList-ItemLabel-81ohH,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):hover .prc-ActionList-LeadingAction-hbWbh,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):hover .prc-ActionList-LeadingVisual-NBr28{color:var(--control-danger-fgColor-hover,#d1242f)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):hover [data-kbd-chord]{background-color:var(--bgColor-default,#fff);transition:none}}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):active{background:var(--control-danger-bgColor-active,#ffebe966)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):active .prc-ActionList-ItemLabel-81ohH,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):active .prc-ActionList-LeadingAction-hbWbh,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):active .prc-ActionList-LeadingVisual-NBr28{color:var(--control-danger-fgColor-hover,#d1242f)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-variant=danger]):active [data-kbd-chord]{background-color:var(--bgColor-default,#fff);transition:none}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-active]){background:var(--control-transparent-bgColor-selected,#818b9826);outline:2px solid transparent}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-active]) .prc-ActionList-ItemLabel-81ohH{color:var(--control-fgColor-rest,#25292e);font-weight:var(--base-text-weight-semibold,600)}@media (hover:hover){.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-active]):hover{background-color:var(--control-transparent-bgColor-hover,#818b981a)}}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-active]) .prc-ActionList-ActionListSubContent-gKsFp:before,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-active])+.prc-ActionList-ActionListItem-So4vC .prc-ActionList-ActionListSubContent-gKsFp:before{visibility:hidden}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-active]):after{background:var(--borderColor-accent-emphasis,#0969da);border-radius:var(--borderRadius-medium,.375rem);content:"";height:calc(100% - var(--base-size-8,.5rem));left:calc(var(--base-size-8,.5rem)*-1);position:absolute;top:var(--base-size-4,.25rem);width:var(--base-size-4,.25rem)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-is-active-descendant]){background:var(--control-transparent-bgColor-selected,#818b9826);outline:2px solid transparent}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-is-active-descendant]):after{background:var(--borderColor-accent-emphasis,#0969da);border-radius:var(--borderRadius-medium,.375rem);content:"";height:calc(100% - var(--base-size-8,.5rem));left:calc(var(--base-size-8,.5rem)*-1);position:absolute;top:var(--base-size-4,.25rem);width:var(--base-size-4,.25rem)}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-inactive=true]) * :not([popover],.prc-ActionList-InactiveWarning-1Dszv){color:var(--fgColor-muted,#59636e)}@media (hover:hover){.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-inactive=true]):hover{background-color:transparent;cursor:not-allowed}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-inactive=true]):hover * :not([popover],.prc-ActionList-InactiveWarning-1Dszv){color:var(--fgColor-muted,#59636e)}}.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-inactive=true]):active{background:transparent}:is(.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-loading=true]),.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true])>[data-loading=true]) .prc-ActionList-Description-Z-EZJ,:is(.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-loading=true]),.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true])>[data-loading=true]) .prc-ActionList-ItemLabel-81ohH,:is(.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-loading=true]),.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true])>[data-loading=true]) .prc-ActionList-LeadingAction-hbWbh,:is(.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-loading=true]),.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true])>[data-loading=true]) .prc-ActionList-LeadingVisual-NBr28,:is(.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-loading=true]),.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true])>[data-loading=true]) .prc-ActionList-TrailingVisual-jwT9C,:is(.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):where([data-loading=true]),.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true])>[data-loading=true]) .prc-ActionList-VisualWrap-bdCsS{color:var(--fgColor-muted,#59636e)}@media (hover:hover){.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):hover .prc-ActionList-ActionListSubContent-gKsFp:before,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):hover [data-description-variant=inline]:before,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):hover+.prc-ActionList-ActionListItem-So4vC .prc-ActionList-ActionListSubContent-gKsFp:before,.prc-ActionList-ActionListItem-So4vC:not([data-is-disabled],[data-has-subitem=true]):hover+.prc-ActionList-ActionListItem-So4vC [data-description-variant=inline]:before{visibility:hidden}}.prc-ActionList-ActionListItem-So4vC[data-has-subitem=true]>.prc-ActionList-ActionListContent-KBb8-{z-index:1}@media (hover:hover){:is(.prc-ActionList-ActionListItem-So4vC[data-has-subitem=true]>.prc-ActionList-ActionListContent-KBb8-):hover{background-color:var(--control-transparent-bgColor-hover,#818b981a);cursor:pointer}}:is(.prc-ActionList-ActionListItem-So4vC[data-has-subitem=true]>.prc-ActionList-ActionListContent-KBb8-):active{background-color:var(--control-transparent-bgColor-active,#818b9826)}.prc-ActionList-ActionListItem-So4vC[data-has-subitem=true] .prc-ActionList-Spacer-4tR2m{display:block}:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled]) .prc-ActionList-ActionListContent-KBb8- *{color:var(--control-fgColor-disabled,#818b98)}@media (hover:hover){:is(:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled]) .prc-ActionList-ActionListContent-KBb8-):hover{background-color:transparent;cursor:not-allowed}}@media (hover:hover){:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled]):hover{background-color:transparent}}:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled]) .prc-ActionList-MultiSelectCheckbox-2OqxZ{background-color:var(--control-bgColor-disabled,#eff2f5);border-color:var(--control-borderColor-disabled,#818b981a)}:is([aria-checked=true]:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled]),[aria-selected=true]:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled])) .prc-ActionList-MultiSelectCheckbox-2OqxZ{background-color:var(--control-checked-bgColor-disabled,#818b98);border-color:var(--control-checked-bgColor-disabled,#818b98)}:is(:is([aria-checked=true]:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled]),[aria-selected=true]:is(.prc-ActionList-ActionListItem-So4vC[aria-disabled=true],.prc-ActionList-ActionListItem-So4vC[data-is-disabled])) .prc-ActionList-MultiSelectCheckbox-2OqxZ):before{background-color:var(--control-checked-fgColor-disabled,#fff)}.prc-ActionList-ActionListItem-So4vC[data-trailing-action-loading]:not([data-is-disabled]) .prc-ActionList-Description-Z-EZJ,.prc-ActionList-ActionListItem-So4vC[data-trailing-action-loading]:not([data-is-disabled]) .prc-ActionList-ItemLabel-81ohH{color:var(--fgColor-default,#1f2328)}.prc-ActionList-ActionListItem-So4vC[aria-hidden]+.prc-ActionList-Divider-taVfb{display:none}.prc-ActionList-ActionListItem-So4vC .prc-ActionList-MultiSelectCheckbox-2OqxZ{background-color:var(--bgColor-default,#fff);border:var(--borderWidth-thin,.0625rem) solid var(--control-borderColor-emphasis,#818b98);border-radius:var(--borderRadius-small,.1875rem);cursor:pointer;display:grid;height:var(--base-size-16,1rem);margin:0;place-content:center;position:relative;transition:background-color,border-color 80ms cubic-bezier(.33,1,.68,1);width:var(--base-size-16,1rem)}:is(.prc-ActionList-ActionListItem-So4vC .prc-ActionList-MultiSelectCheckbox-2OqxZ):before{animation:prc-ActionList-checkmarkOut-GbMf4 80ms cubic-bezier(.65,0,.35,1);background-color:var(--control-checked-fgColor-rest,#fff);clip-path:inset(var(--base-size-16,1rem) 0 0 0);content:"";height:var(--base-size-16,1rem);mask-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSI5IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgOSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzguMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNjFMNC41MiA4LjU0MWEuNzUuNzUgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1Ljc1IDAgMCAxIDEuMDYyIDAiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==");mask-position:center;mask-repeat:no-repeat;mask-size:75%;transition:visibility 0s linear .23s;width:var(--base-size-16,1rem)}@media (forced-colors:active){.prc-ActionList-ActionListItem-So4vC .prc-ActionList-MultiSelectCheckbox-2OqxZ{border-width:var(--borderWidth-thin,.0625rem)}}:is(.prc-ActionList-ActionListItem-So4vC[aria-checked=true],.prc-ActionList-ActionListItem-So4vC[aria-selected=true]) .prc-ActionList-MultiSelectCheckbox-2OqxZ{background-color:var(--control-checked-bgColor-rest,#0969da);border-color:var(--control-checked-borderColor-rest,#0969da);transition:background-color,border-color 80ms cubic-bezier(.32,0,.67,0) 0s}:is(:is(.prc-ActionList-ActionListItem-So4vC[aria-checked=true],.prc-ActionList-ActionListItem-So4vC[aria-selected=true]) .prc-ActionList-MultiSelectCheckbox-2OqxZ):before{animation:prc-ActionList-checkmarkIn-gjsPG 80ms cubic-bezier(.65,0,.35,1) 80ms forwards;transition:visibility 0s linear 0s;visibility:visible}@media (forced-colors:active){:is(.prc-ActionList-ActionListItem-So4vC[aria-checked=true],.prc-ActionList-ActionListItem-So4vC[aria-selected=true]) .prc-ActionList-MultiSelectCheckbox-2OqxZ{border-width:8px}}:is(.prc-ActionList-ActionListItem-So4vC[aria-checked=true],.prc-ActionList-ActionListItem-So4vC[aria-selected=true]) .prc-ActionList-SingleSelectCheckmark-zMd8d{visibility:visible}:is(:is(.prc-ActionList-ActionListItem-So4vC[aria-checked=false],.prc-ActionList-ActionListItem-So4vC[aria-selected=false]) .prc-ActionList-MultiSelectCheckbox-2OqxZ):before{visibility:hidden}:is(.prc-ActionList-ActionListItem-So4vC[aria-checked=false],.prc-ActionList-ActionListItem-So4vC[aria-selected=false]) .prc-ActionList-SingleSelectCheckmark-zMd8d{visibility:hidden}.prc-ActionList-SingleSelectCheckmark-zMd8d{visibility:hidden}.prc-ActionList-ActionListContent-KBb8-{--subitem-depth:0px;background-color:transparent;border:none;border-radius:var(--borderRadius-medium,.375rem);color:var(--control-fgColor-rest,#25292e);display:grid;padding-block:var(--control-medium-paddingBlock,.375rem);padding-inline:var(--control-medium-paddingInline-condensed,.5rem);position:relative;text-align:left;touch-action:manipulation;transition:background 33.333ms linear;-webkit-user-select:none;user-select:none;width:100%;-webkit-tap-highlight-color:transparent;align-items:start;grid-template-areas:"spacer leadingAction leadingVisual content";grid-template-columns:min-content min-content min-content minmax(0,auto);grid-template-rows:min-content}.prc-ActionList-ActionListContent-KBb8->:not(:last-child,.prc-ActionList-Spacer-4tR2m){margin-right:var(--control-medium-gap,.5rem)}.prc-ActionList-ActionListContent-KBb8-:hover{cursor:pointer;-webkit-text-decoration:none;text-decoration:none}.prc-ActionList-ActionListContent-KBb8-[data-size=large]{padding-block:var(--control-large-paddingBlock,.625rem)}.prc-ActionList-ActionListContent-KBb8-[aria-expanded=true] .prc-ActionList-ExpandIcon-J4OqB{transform:scaleY(-1)}.prc-ActionList-ActionListContent-KBb8-[aria-expanded=false] .prc-ActionList-ExpandIcon-J4OqB{transform:scaleY(1)}.prc-ActionList-ActionListContent-KBb8-[aria-expanded=false]~.prc-ActionList-SubGroup-5Zje2{display:none}.prc-ActionList-ActionListContent-KBb8-[aria-expanded=false]:has(~.prc-ActionList-SubGroup-5Zje2 [data-active=true]){background:var(--control-transparent-bgColor-selected,#818b9826)}.prc-ActionList-ActionListContent-KBb8-[aria-expanded=false]:has(~.prc-ActionList-SubGroup-5Zje2 [data-active=true]) .prc-ActionList-ItemLabel-81ohH{font-weight:var(--base-text-weight-semibold,600)}.prc-ActionList-ActionListContent-KBb8-[aria-expanded=false]:has(~.prc-ActionList-SubGroup-5Zje2 [data-active=true]) .prc-ActionList-ActionListSubContent-gKsFp:before,.prc-ActionList-ActionListContent-KBb8-[aria-expanded=false]:has(~.prc-ActionList-SubGroup-5Zje2 [data-active=true])+.prc-ActionList-ActionListItem-So4vC .prc-ActionList-ActionListSubContent-gKsFp:before{visibility:hidden}.prc-ActionList-ActionListContent-KBb8-[aria-expanded=false]:has(~.prc-ActionList-SubGroup-5Zje2 [data-active=true]):after{background:var(--borderColor-accent-emphasis,#0969da);border-radius:var(--borderRadius-medium,.375rem);content:"";height:calc(100% - var(--base-size-8,.5rem));left:calc(var(--base-size-8,.5rem)*-1);position:absolute;top:var(--base-size-4,.25rem);width:var(--base-size-4,.25rem)}.prc-ActionList-ActionListSubContent-gKsFp{align-items:start;display:grid;grid-area:content;grid-template-areas:"label trailingVisual trailingAction";grid-template-columns:minmax(0,auto) min-content min-content;grid-template-rows:min-content;position:relative;width:100%}.prc-ActionList-ActionListSubContent-gKsFp>:not(:last-child){margin-right:var(--control-medium-gap,.5rem)}.prc-ActionList-Spacer-4tR2m{display:none;grid-area:spacer;width:max(0px,var(--subitem-depth) * 8px)}.prc-ActionList-LeadingAction-hbWbh{grid-area:leadingAction}.prc-ActionList-LeadingVisual-NBr28{grid-area:leadingVisual}.prc-ActionList-TrailingVisual-jwT9C{font-size:var(--text-body-size-medium,.875rem);grid-area:trailingVisual}.prc-ActionList-TrailingAction-dMRxe{grid-area:trailingAction}.prc-ActionList-TrailingAction-dMRxe>[data-loading-wrapper]{height:100%}.prc-ActionList-ItemDescriptionWrap-ujC8S{display:flex;flex-direction:column;gap:var(--base-size-4,.25rem);grid-area:label}.prc-ActionList-ItemDescriptionWrap-ujC8S .prc-ActionList-ItemLabel-81ohH{font-weight:var(--base-text-weight-semibold,600);word-break:break-word}.prc-ActionList-ItemDescriptionWrap-ujC8S:where([data-description-variant=inline]){align-items:baseline;flex-direction:row;gap:var(--base-size-8,.5rem);position:relative;word-break:normal}.prc-ActionList-ItemDescriptionWrap-ujC8S:where([data-description-variant=inline]) .prc-ActionList-ItemLabel-81ohH{word-break:normal}.prc-ActionList-ItemDescriptionWrap-ujC8S:where([data-description-variant=inline]):has([data-truncate=true]) .prc-ActionList-ItemLabel-81ohH{flex:1 0 auto}.prc-ActionList-ItemDescriptionWrap-ujC8S:where([data-description-variant=inline]) .prc-ActionList-Description-Z-EZJ{line-height:16px}.prc-ActionList-Description-Z-EZJ{font-size:var(--text-body-size-small,.75rem);font-weight:var(--base-text-weight-normal,400);line-height:16px}.prc-ActionList-Description-Z-EZJ,.prc-ActionList-VisualWrap-bdCsS{color:var(--fgColor-muted,#59636e)}.prc-ActionList-VisualWrap-bdCsS{display:flex;line-height:20px;min-height:var(--base-size-20,1.25rem);min-width:max-content;pointer-events:none;fill:var(--fgColor-muted,#59636e);align-items:center}.prc-ActionList-ItemLabel-81ohH{color:var(--fgColor-default,#1f2328);font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);grid-area:label;line-height:20px;position:relative;word-break:break-word}.prc-ActionList-SubGroup-5Zje2 .prc-ActionList-ItemLabel-81ohH{font-size:var(--text-body-size-small,.75rem)}.prc-ActionList-SubGroup-5Zje2 .prc-ActionList-ActionListItem-So4vC{margin-inline:0}.prc-ActionList-TrailingActionButton-UUAk6{border-bottom-left-radius:0;border-top-left-radius:0;height:100%}.prc-ActionList-TrailingActionButton-UUAk6[data-loading=true][data-has-label=true]{padding:0 0 0 calc(var(--base-size-12,.75rem)*2)}.prc-ActionList-TrailingActionButton-UUAk6[data-loading=true][data-has-label=true] [data-component=loadingSpinner]{align-items:center;display:flex;height:var(--control-medium-size,2rem);justify-content:center;place-self:end;width:var(--control-medium-size,2rem)}.prc-ActionList-InactiveButtonWrap-Ia-xM[data-position=trailing]{grid-area:trailingVisual}.prc-ActionList-InactiveButtonWrap-Ia-xM[data-position=leading]{grid-area:leadingVisual}.prc-ActionList-Divider-taVfb{background:var(--borderColor-muted,#d1d9e0b3);border:0;display:block;height:var(--borderWidth-thin,.0625rem);list-style:none;margin-block-end:var(--base-size-8,.5rem);margin-block-start:calc(var(--base-size-8,.5rem) - var(--borderWidth-thin,.0625rem));padding:0}.prc-ActionList-InactiveButtonReset-uK4-x{background:none;border:none;color:inherit;cursor:pointer;display:flex;font:inherit;padding:0}.prc-ActionList-InactiveWarning-1Dszv{color:var(--fgColor-attention,#9a6700);font-size:var(--text-body-size-small,.75rem);grid-row:2/2;line-height:16px}@keyframes prc-ActionList-checkmarkIn-gjsPG{0%{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes prc-ActionList-checkmarkOut-GbMf4{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}}
2
- /*# sourceMappingURL=ActionList-1940009e.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ActionList/ActionList.module.css.js","../../postcss-preset-primer/src/mixins/focusOutline.css","../../postcss-preset-primer/src/mixins/activeIndicatorLine.css"],"names":[],"mappings":"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","file":"ActionList-1940009e.css","sourcesContent":["/* stylelint-disable max-nesting-depth, selector-max-specificity */\n\n.ActionList {\n padding: 0;\n margin: 0;\n list-style: none;\n\n ul {\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n &:where([data-variant='inset']) {\n padding-block: var(--base-size-8);\n }\n\n &:where([data-variant='inset'], [data-variant='horizontal-inset']) {\n /* this is only to match default experience */\n & .ActionListItem {\n margin-inline: var(--base-size-8);\n }\n }\n\n &:where([data-variant='horizontal-inset']) {\n padding-bottom: var(--base-size-8);\n }\n\n &:where([data-dividers='true']) {\n /* place dividers on the wrapper that excludes leading visuals/actions */\n & .ActionListSubContent::before {\n position: absolute;\n\n /* use this top size after FF removed */\n\n /* top: calc(-1 * var(--control-medium-paddingBlock)); */\n /* stylelint-disable-next-line primer/spacing */\n top: -7px;\n display: block;\n width: 100%;\n height: 1px;\n content: '';\n /* stylelint-disable-next-line primer/colors */\n background: var(--borderColor-muted);\n }\n\n /* if inline description, move pseudo divider to description wrapper */\n & [data-description-variant='inline'] {\n &::before {\n position: absolute;\n\n /* use this top size after FF removed */\n\n /* top: calc(-1 * var(--control-medium-paddingBlock)); */\n /* stylelint-disable-next-line primer/spacing */\n top: -7px;\n display: block;\n width: 100%;\n height: var(--borderWidth-thin);\n content: '';\n /* stylelint-disable-next-line primer/colors */\n background: var(--borderColor-muted);\n }\n\n /* remove the default divider */\n & .ActionListSubContent::before {\n content: unset;\n }\n }\n\n /* hide if item is first of type with label::before, or is the first item after a sectionDivider */\n .ActionListItem:first-of-type .ActionListSubContent::before,\n .Divider + .ActionListItem .ActionListSubContent::before {\n visibility: hidden;\n }\n\n /* hide if item is first of type with label::before, or is the first item after a sectionDivider */\n .ActionListItem:first-of-type [data-description-variant='inline']::before,\n .Divider + .ActionListItem [data-description-variant='inline']::before {\n visibility: hidden;\n }\n }\n\n /* Make sure that the first visible item isn't a divider */\n & .Divider:first-child {\n display: none;\n }\n\n /* if a list has a mix of items with and without descriptions, reset the label font-weight to normal */\n &[data-mixed-descriptions='true'] {\n & .ItemLabel {\n font-weight: var(--base-text-weight-normal);\n }\n }\n}\n\n/* ActionListItem is a li that handles visual state, while ActionListItemContent controls actual state via button or link */\n\n.ActionListItem {\n position: relative;\n list-style: none;\n background-color: var(--control-transparent-bgColor-rest);\n border-radius: var(--borderRadius-medium);\n\n /* apply flex if trailing action exists as an immediate child */\n &[data-has-trailing-action] {\n display: flex;\n flex-wrap: nowrap;\n }\n\n /* state */\n\n @media (forced-colors: active) {\n :focus,\n &:focus-visible,\n /* stylelint-disable-next-line selector-no-qualifying-type */\n >a.focus-visible,\n &[data-is-active-descendant] {\n /* Support for Windows high contrast https://sarahmhigley.com/writing/whcm-quick-tips */\n outline: solid 1px transparent !important;\n }\n }\n\n &:not([data-is-disabled], [data-has-subitem='true']) {\n @media (hover: hover) {\n &:hover,\n &:active {\n cursor: pointer;\n }\n\n &:hover {\n background-color: var(--control-transparent-bgColor-hover);\n\n &:not([data-active], :focus-visible) {\n /* Support for \"Windows high contrast mode\" https:sarahmhigley.com/writing/whcm-quick-tips/ */\n outline: solid var(--borderWidth-thin) transparent;\n outline-offset: calc(-1 * var(--borderWidth-thin));\n box-shadow: var(--boxShadow-thin) var(--control-transparent-borderColor-active);\n }\n }\n }\n\n &:active {\n background-color: var(--control-transparent-bgColor-active);\n\n &:not([data-active]) {\n /* Support for \"Windows high contrast mode\" https:sarahmhigley.com/writing/whcm-quick-tips/ */\n outline: solid var(--borderWidth-thin) transparent;\n outline-offset: calc(-1 * var(--borderWidth-thin));\n box-shadow: var(--boxShadow-thin) var(--control-transparent-borderColor-active);\n }\n }\n\n &:focus-visible {\n @mixin focusOutline 0;\n\n & .ActionListSubContent::before,\n & + .ActionListItem .ActionListSubContent::before {\n visibility: hidden;\n }\n }\n\n /* danger */\n &:where([data-variant='danger']) {\n & .LeadingAction,\n .LeadingVisual,\n .ItemLabel {\n color: var(--control-danger-fgColor-rest);\n }\n\n @media (hover: hover) {\n &:hover {\n background: var(--control-danger-bgColor-hover);\n\n & .LeadingAction,\n .LeadingVisual,\n .ItemLabel {\n color: var(--control-danger-fgColor-hover);\n }\n\n & [data-kbd-chord] {\n background-color: var(--bgColor-default);\n transition: none;\n }\n }\n }\n\n &:active {\n background: var(--control-danger-bgColor-active);\n\n & .LeadingAction,\n .LeadingVisual,\n .ItemLabel {\n color: var(--control-danger-fgColor-hover);\n }\n\n & [data-kbd-chord] {\n background-color: var(--bgColor-default);\n transition: none;\n }\n }\n }\n\n /* active state [aria-current] */\n &:where([data-active]) {\n background: var(--control-transparent-bgColor-selected);\n\n /* provides a visual indication of the current item for Windows high-contrast mode */\n outline: 2px solid transparent;\n\n & .ItemLabel {\n font-weight: var(--base-text-weight-semibold);\n color: var(--control-fgColor-rest);\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: var(--control-transparent-bgColor-hover);\n }\n }\n\n /* hide dividers if showDividers is true and item is active */\n\n & .ActionListSubContent::before,\n & + .ActionListItem .ActionListSubContent::before {\n visibility: hidden;\n }\n\n /* blue accent line */\n &::after {\n @mixin activeIndicatorLine;\n }\n }\n\n &:where([data-is-active-descendant]) {\n background: var(--control-transparent-bgColor-selected);\n\n /* provides a visual indication of the current item for Windows high-contrast mode */\n outline: 2px solid transparent;\n\n /* hide dividers if showDividers is true and item is active */\n\n /* add back in after FF ship */\n\n /* & .ActionListSubContent::before,\n & + .ActionListItem .ActionListSubContent::before {\n visibility: hidden;\n } */\n\n /* blue accent line */\n &::after {\n @mixin activeIndicatorLine;\n }\n }\n\n /* inactive */\n &:where([data-inactive='true']) {\n /* ignore tooltip */\n & * :not([popover], .InactiveWarning) {\n color: var(--fgColor-muted);\n }\n\n @media (hover: hover) {\n &:hover {\n cursor: not-allowed;\n background-color: transparent;\n\n & * :not([popover], .InactiveWarning) {\n color: var(--fgColor-muted);\n }\n }\n }\n\n &:active {\n background: transparent;\n }\n }\n\n &:where([data-loading='true']),\n & > [data-loading='true'] {\n & .ItemLabel,\n & .Description,\n & .LeadingVisual,\n & .TrailingVisual,\n & .LeadingAction,\n & .VisualWrap {\n color: var(--fgColor-muted);\n }\n }\n\n /* hide dividers */\n @media (hover: hover) {\n &:hover {\n & .ActionListSubContent::before,\n & + .ActionListItem .ActionListSubContent::before {\n visibility: hidden;\n }\n\n & [data-description-variant='inline']::before,\n & + .ActionListItem [data-description-variant='inline']::before {\n visibility: hidden;\n }\n }\n }\n }\n\n /* if item has subitem, move hover styles to ActionListContent */\n &[data-has-subitem='true'] {\n /* first child */\n & > .ActionListContent {\n z-index: 1;\n\n @media (hover: hover) {\n &:hover {\n cursor: pointer;\n background-color: var(--control-transparent-bgColor-hover);\n }\n }\n\n &:active {\n background-color: var(--control-transparent-bgColor-active);\n }\n }\n\n & .Spacer {\n display: block;\n }\n }\n\n /* disabled */\n\n &[aria-disabled='true'],\n &[data-is-disabled] {\n & .ActionListContent * {\n color: var(--control-fgColor-disabled);\n }\n\n & .ActionListContent {\n @media (hover: hover) {\n &:hover {\n cursor: not-allowed;\n background-color: transparent;\n }\n }\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: transparent;\n }\n }\n\n & .MultiSelectCheckbox {\n background-color: var(--control-bgColor-disabled);\n border-color: var(--control-borderColor-disabled);\n }\n\n &[aria-checked='true'],\n &[aria-selected='true'] {\n & .MultiSelectCheckbox {\n background-color: var(--control-checked-bgColor-disabled);\n /* stylelint-disable-next-line primer/colors */\n border-color: var(--control-checked-bgColor-disabled);\n\n &::before {\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--control-checked-fgColor-disabled);\n }\n }\n }\n }\n\n /* When TrailingAction is in loading state, keep labels and descriptions accessible */\n &[data-trailing-action-loading]:not([data-is-disabled]) {\n /* Ensure labels and descriptions maintain accessibility contrast */\n & .ItemLabel {\n color: var(--fgColor-default);\n }\n\n & .Description {\n color: var(--fgColor-default);\n }\n }\n\n /* Make sure that the first visible item isn't a divider */\n &[aria-hidden] + .Divider {\n display: none;\n }\n\n /*\n * checkbox item [aria-checked]\n * listbox [aria-selected]\n */\n\n & .MultiSelectCheckbox {\n position: relative;\n display: grid;\n width: var(--base-size-16);\n height: var(--base-size-16);\n margin: 0;\n cursor: pointer;\n background-color: var(--bgColor-default);\n border: var(--borderWidth-thin) solid var(--control-borderColor-emphasis);\n border-radius: var(--borderRadius-small);\n transition:\n background-color,\n border-color 80ms cubic-bezier(0.33, 1, 0.68, 1);\n /* checked -> unchecked - add 120ms delay to fully see animation-out */\n\n place-content: center;\n\n &::before {\n width: var(--base-size-16);\n height: var(--base-size-16);\n content: '';\n /* stylelint-disable-next-line primer/colors */\n background-color: var(--control-checked-fgColor-rest);\n transition: visibility 0s linear 230ms;\n clip-path: inset(var(--base-size-16) 0 0 0);\n\n /* octicon checkmark image */\n mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzgwMyAwLjIxOTYyNUMxMS45MjEgMC4zNjA0MjcgMTIgMC41NTEzMDUgMTIgMC43NTAzMTNDMTIgMC45NDkzMjEgMTEuOTIxIDEuMTQwMTkgMTEuNzgwMyAxLjI4MUw0LjUxODYgOC41NDA0MkM0LjM3Nzc1IDguNjgxIDQuMTg2ODIgOC43NiAzLjk4Nzc0IDguNzZDMy43ODg2NyA4Ljc2IDMuNTk3NzMgOC42ODEgMy40NTY4OSA4LjU0MDQyTDAuMjAxNjIyIDUuMjg2MkMwLjA2ODkyNzcgNS4xNDM4MyAtMC4wMDMzMDkwNSA0Ljk1NTU1IDAuMDAwMTE2NDkzIDQuNzYwOThDMC4wMDM1NTIwNSA0LjU2NjQzIDAuMDgyMzg5NCA0LjM4MDgxIDAuMjIwMDMyIDQuMjQzMjFDMC4zNTc2NjUgNC4xMDU2MiAwLjU0MzM1NSA0LjAyNjgxIDAuNzM3OTcgNC4wMjMzOEMwLjkzMjU4NCA0LjAxOTk0IDEuMTIwOTMgNC4wOTIxNyAxLjI2MzM0IDQuMjI0ODJMMy45ODc3NCA2Ljk0ODM1TDEwLjcxODYgMC4yMTk2MjVDMTAuODU5NSAwLjA3ODk5MjMgMTEuMDUwNCAwIDExLjI0OTUgMEMxMS40NDg1IDAgMTEuNjM5NSAwLjA3ODk5MjMgMTEuNzgwMyAwLjIxOTYyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=');\n mask-size: 75%;\n mask-repeat: no-repeat;\n mask-position: center;\n animation: checkmarkOut 80ms cubic-bezier(0.65, 0, 0.35, 1);\n /* forwards; slightly snappier animation out */\n }\n\n @media (forced-colors: active) {\n /* Support for Windows high contrast https://sarahmhigley.com/writing/whcm-quick-tips */\n\n /* background-color will be overriden but border-width is a workaround */\n border-width: var(--borderWidth-thin);\n }\n }\n\n &[aria-checked='true'],\n &[aria-selected='true'] {\n & .MultiSelectCheckbox {\n background-color: var(--control-checked-bgColor-rest);\n border-color: var(--control-checked-borderColor-rest);\n transition:\n background-color,\n border-color 80ms cubic-bezier(0.32, 0, 0.67, 0) 0ms;\n /* unchecked -> checked */\n\n &::before {\n visibility: visible;\n transition: visibility 0s linear 0s;\n animation: checkmarkIn 80ms cubic-bezier(0.65, 0, 0.35, 1) forwards 80ms;\n }\n\n @media (forced-colors: active) {\n /* Support for Windows high contrast https://sarahmhigley.com/writing/whcm-quick-tips\n background-color will be overriden but border-width is a workaround */\n /* stylelint-disable-next-line primer/borders */\n border-width: 8px;\n }\n }\n\n & .SingleSelectCheckmark {\n visibility: visible;\n }\n }\n\n &[aria-checked='false'],\n &[aria-selected='false'] {\n & .MultiSelectCheckbox {\n &::before {\n visibility: hidden;\n }\n }\n\n & .SingleSelectCheckmark {\n visibility: hidden;\n }\n }\n}\n\n/* hide by default to support inactive state where role cannot be menuitemradio or menuitemcheckbox */\n.SingleSelectCheckmark {\n visibility: hidden;\n}\n\n/* button or a tag */\n\n/* [ [spacer] [leadingAction] [leadingVisual] [content] ] */\n.ActionListContent {\n --subitem-depth: 0px;\n\n position: relative;\n display: grid;\n width: 100%;\n color: var(--control-fgColor-rest);\n text-align: left;\n user-select: none;\n background-color: transparent;\n border: none;\n border-radius: var(--borderRadius-medium);\n transition: background 33.333ms linear;\n /* stylelint-disable-next-line primer/spacing */\n padding-block: var(--control-medium-paddingBlock);\n /* stylelint-disable-next-line primer/spacing */\n padding-inline: var(--control-medium-paddingInline-condensed);\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n grid-template-rows: min-content;\n grid-template-areas: 'spacer leadingAction leadingVisual content';\n grid-template-columns: min-content min-content min-content minmax(0, auto);\n align-items: start;\n\n /* column-gap persists with empty grid-areas, margin applies only when children exist */\n & > :not(:last-child, .Spacer) {\n /* stylelint-disable-next-line primer/spacing */\n margin-right: var(--control-medium-gap);\n }\n\n &:hover {\n text-decoration: none;\n cursor: pointer;\n }\n\n /* large */\n\n &[data-size='large'] {\n /* stylelint-disable-next-line primer/spacing */\n padding-block: var(--control-large-paddingBlock);\n }\n\n /* collapsible item [aria-expanded] */\n\n &[aria-expanded='true'] {\n & .ExpandIcon {\n transform: scaleY(-1);\n }\n }\n\n &[aria-expanded='false'] {\n & .ExpandIcon {\n transform: scaleY(1);\n }\n\n & ~ .SubGroup {\n display: none;\n }\n\n /* show active indicator on parent collapse if child is active */\n /* stylelint-disable-next-line selector-pseudo-class-disallowed-list -- scoped to CSS Module, audited (github/github-ui#17224) */\n &:has(~ .SubGroup [data-active='true']) {\n background: var(--control-transparent-bgColor-selected);\n\n & .ItemLabel {\n font-weight: var(--base-text-weight-semibold);\n }\n\n & .ActionListSubContent::before,\n & + .ActionListItem .ActionListSubContent::before {\n visibility: hidden;\n }\n\n /* blue accent line */\n &::after {\n @mixin activeIndicatorLine;\n }\n }\n }\n}\n\n/* [ [content] [trailingVisual] [trailingAction] ] */\n.ActionListSubContent {\n grid-area: content;\n position: relative;\n display: grid;\n width: 100%;\n grid-template-rows: min-content;\n grid-template-areas: 'label trailingVisual trailingAction';\n grid-template-columns: minmax(0, auto) min-content min-content;\n align-items: start;\n\n /* column-gap persists with empty grid-areas, margin applies only when children exist */\n & > :not(:last-child) {\n /* stylelint-disable-next-line primer/spacing */\n margin-right: var(--control-medium-gap);\n }\n}\n\n/* place children on grid */\n\n/* spacer used to create depth for nested lists */\n\n.Spacer {\n display: none;\n width: max(0px, var(--subitem-depth) * 8px);\n grid-area: spacer;\n}\n\n.LeadingAction {\n grid-area: leadingAction;\n}\n\n.LeadingVisual {\n grid-area: leadingVisual;\n}\n\n.TrailingVisual {\n grid-area: trailingVisual;\n font-size: var(--text-body-size-medium);\n}\n\n.TrailingAction {\n grid-area: trailingAction;\n\n /* if child is loading button */\n & > *[data-loading-wrapper] {\n height: 100%;\n }\n}\n\n/* wrapper span\ndefault block */\n.ItemDescriptionWrap {\n grid-area: label;\n display: flex;\n flex-direction: column;\n gap: var(--base-size-4);\n\n & .ItemLabel {\n font-weight: var(--base-text-weight-semibold);\n /* stylelint-disable-next-line declaration-property-value-keyword-no-deprecated */\n word-break: break-word;\n }\n\n /* inline */\n &:where([data-description-variant='inline']) {\n position: relative;\n word-break: normal;\n flex-direction: row;\n align-items: baseline;\n gap: var(--base-size-8);\n\n & .ItemLabel {\n word-break: normal;\n }\n\n /* stylelint-disable-next-line selector-pseudo-class-disallowed-list -- scoped to CSS Module, audited (github/github-ui#17224) */\n &:has([data-truncate='true']) {\n & .ItemLabel {\n flex: 1 0 auto;\n }\n }\n\n & .Description {\n /* stylelint-disable-next-line primer/typography */\n line-height: 16px;\n }\n }\n}\n\n/* description */\n.Description {\n font-size: var(--text-body-size-small);\n font-weight: var(--base-text-weight-normal);\n\n /* line-height: var(--text-caption-lineHeight); */\n\n /* remove after FF ships */\n /* stylelint-disable-next-line primer/typography */\n line-height: 16px;\n color: var(--fgColor-muted);\n}\n\n/* helper for grid alignment with multi-line content\nspan wrapping svg or text */\n.VisualWrap {\n display: flex;\n min-width: max-content;\n min-height: var(--base-size-20);\n /* stylelint-disable-next-line primer/typography */\n line-height: 20px;\n /* temporary until we fix line-height rounding in primitives */\n color: var(--fgColor-muted);\n pointer-events: none;\n fill: var(--fgColor-muted);\n align-items: center;\n}\n\n/* text */\n.ItemLabel {\n position: relative;\n font-size: var(--text-body-size-medium);\n font-weight: var(--base-text-weight-normal);\n /* stylelint-disable-next-line primer/typography */\n line-height: 20px;\n /* temporary until we fix line-height rounding in primitives */\n color: var(--fgColor-default);\n grid-area: label;\n /* stylelint-disable-next-line declaration-property-value-keyword-no-deprecated */\n word-break: break-word;\n}\n\n.SubGroup {\n & .ItemLabel {\n font-size: var(--text-body-size-small);\n }\n\n & .ActionListItem {\n margin-inline: 0;\n }\n}\n\n/* trailing action icon button */\n\n.TrailingActionButton {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n height: 100%;\n\n /* Preserve width consistency when loading state is active for text buttons only */\n &[data-loading='true'][data-has-label='true'] {\n /* Double the left padding to compensate for missing right padding */\n padding: 0 0 0 calc(var(--base-size-12) * 2);\n\n /* Position spinner at the end to align with IconButton */\n & [data-component='loadingSpinner'] {\n place-self: end;\n /* Match the IconButton spinner size */\n width: var(--control-medium-size, 2rem);\n height: var(--control-medium-size, 2rem);\n /* Ensure spinner is properly centered */\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n}\n\n.InactiveButtonWrap {\n &[data-position='trailing'] {\n grid-area: trailingVisual;\n }\n\n &[data-position='leading'] {\n grid-area: leadingVisual;\n }\n}\n\n.Divider {\n display: block;\n height: var(--borderWidth-thin);\n padding: 0;\n /* stylelint-disable-next-line primer/spacing */\n margin-block-start: calc(var(--base-size-8) - var(--borderWidth-thin));\n margin-block-end: var(--base-size-8);\n list-style: none;\n /* stylelint-disable-next-line primer/colors */\n background: var(--borderColor-muted);\n border: 0;\n}\n\n.InactiveButtonReset {\n display: flex;\n padding: 0;\n font: inherit;\n color: inherit;\n cursor: pointer;\n background: none;\n border: none;\n}\n\n.InactiveWarning {\n font-size: var(--text-body-size-small);\n\n /* line-height: var(--text-caption-lineHeight); */\n\n /* use variable when FF removed */\n /* stylelint-disable-next-line primer/typography */\n line-height: 16px;\n color: var(--fgColor-attention);\n grid-row: 2/2;\n}\n\n@keyframes checkmarkIn {\n from {\n clip-path: inset(var(--base-size-16) 0 0 0);\n }\n\n to {\n clip-path: inset(0 0 0 0);\n }\n}\n\n@keyframes checkmarkOut {\n from {\n clip-path: inset(0 0 0 0);\n }\n\n to {\n clip-path: inset(var(--base-size-16) 0 0 0);\n }\n}\n","@define-mixin focusOutline $outlineOffset: -2px, $outlineColor: var(--focus-outline-color, var(--focus-outlineColor)) {\n outline: 2px solid $outlineColor;\n outline-offset: $outlineOffset;\n box-shadow: none;\n}\n","@define-mixin activeIndicatorLine {\n position: absolute;\n top: var(--base-size-4);\n left: calc(-1 * var(--base-size-8));\n width: var(--base-size-4);\n height: calc(100% - var(--base-size-8));\n content: '';\n /* stylelint-disable-next-line primer/colors */\n background: var(--borderColor-accent-emphasis);\n border-radius: var(--borderRadius-medium);\n}\n"]}
@@ -1,2 +0,0 @@
1
- .prc-Blankslate-Container-Vr9Ce{container:blankslate/inline-size}.prc-Blankslate-Blankslate-Eihy3{display:grid;justify-items:center;padding:var(--blankslate-padding)}.prc-Blankslate-Blankslate-Eihy3:where([data-border]){border:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);border-radius:var(--borderRadius-medium,.375rem)}.prc-Blankslate-Blankslate-Eihy3:where([data-narrow]){margin:0 auto;max-width:485px}.prc-Blankslate-Blankslate-Eihy3:where([data-size=medium]){--blankslate-heading-text:var(--text-title-shorthand-medium,600 1.25rem/1.625 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");--blankslate-heading-margin-block:0 var(--base-size-4,0.25rem);--blankslate-description-text:var(--text-body-shorthand-large,400 1rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");--blankslate-padding:var(--base-size-32,2rem);--blankslate-action-margin-block-end:var(--base-size-16,1rem)}.prc-Blankslate-Blankslate-Eihy3:where([data-size=medium][data-spacious]){--blankslate-padding:var(--base-size-80,5rem) var(--base-size-40,2.5rem)}.prc-Blankslate-Blankslate-Eihy3:where([data-size=small]){--blankslate-heading-text:var(--text-title-shorthand-small,600 1rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");--blankslate-heading-margin-block:0 var(--base-size-4,0.25rem);--blankslate-description-text:var(--text-body-shorthand-medium,400 0.875rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");--blankslate-padding:var(--base-size-32,2rem) var(--base-size-20,1.25rem);--blankslate-action-margin-block-end:var(--base-size-12,0.75rem);--blankslate-visual-size:var(--base-size-24,1.5rem)}.prc-Blankslate-Blankslate-Eihy3:where([data-size=small][data-spacious]){--blankslate-padding:var(--base-size-44,2.75rem) var(--base-size-28,1.75rem)}.prc-Blankslate-Blankslate-Eihy3:where([data-size=large]){--blankslate-heading-text:var(--text-title-shorthand-large,600 2rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");--blankslate-heading-margin-block:var(--base-size-8,0.5rem) var(--base-size-4,0.25rem);--blankslate-description-text:var(--text-body-shorthand-large,400 1rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");--blankslate-description-margin-block:0 var(--base-size-8,0.5rem);--blankslate-padding:var(--base-size-32,2rem);--blankslate-action-margin-block-end:var(--base-size-16,1rem)}.prc-Blankslate-Blankslate-Eihy3:where([data-size=large][data-spacious]){--blankslate-padding:var(--base-size-80,5rem) var(--base-size-40,2.5rem)}.prc-Blankslate-Description-nqiRV,.prc-Blankslate-Heading-tVZsq{margin:0;text-align:center;text-wrap:balance}.prc-Blankslate-Heading-tVZsq{font:var(--blankslate-heading-text);margin-block:var(--blankslate-heading-margin-block)}.prc-Blankslate-Description-nqiRV{font:var(--blankslate-description-text);margin-block:var(--blankslate-description-margin-block)}.prc-Blankslate-Description-nqiRV,.prc-Blankslate-Visual-10aPl{color:var(--fgColor-muted,#59636e)}.prc-Blankslate-Visual-10aPl{display:inline-flex;margin-block-end:var(--base-size-8,.5rem);max-width:var(--blankslate-visual-size)}.prc-Blankslate-Visual-10aPl svg{width:100%}.prc-Blankslate-Action-RsgHG{font:var(--blankslate-description-text);margin-block-start:var(--base-size-16,1rem)}.prc-Blankslate-Action-RsgHG:where(:last-of-type){margin-block-end:var(--blankslate-action-margin-block-end)}@container blankslate (max-width: 34rem){.prc-Blankslate-Blankslate-Eihy3{--blankslate-padding:var(--base-size-20,1.25rem)}.prc-Blankslate-Blankslate-Eihy3:where([data-spacious=true]){--blankslate-padding:var(--base-size-44,2.75rem) var(--base-size-28,1.75rem)}.prc-Blankslate-Blankslate-Eihy3{--blankslate-heading-text:var(--text-title-shorthand-small,600 1rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");--blankslate-description-text:var(--text-body-shorthand-medium,400 0.875rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}.prc-Blankslate-Visual-10aPl{color:var(--fgColor-muted,#59636e);margin-bottom:var(--base-size-8,.5rem);max-width:var(--base-size-24,1.5rem)}.prc-Blankslate-Action-RsgHG{margin-top:var(--base-size-8,.5rem)}.prc-Blankslate-Action-RsgHG:first-of-type{margin-top:var(--base-size-16,1rem)}.prc-Blankslate-Action-RsgHG:last-of-type{margin-bottom:calc(var(--base-size-8,.5rem)/2)}}
2
- /*# sourceMappingURL=Blankslate-a039d79a.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Blankslate/Blankslate.module.css.js"],"names":[],"mappings":"AAAA,gCACE,gCACF,CAEA,iCACE,YAAa,CACb,oBAAqB,CAErB,iCAiDF,CA/CE,sDACE,gFAAgE,CAChE,gDACF,CAEA,sDAEE,aAAc,CADd,eAEF,CAEA,2DACE,sMAA6D,CAC7D,8DAAuD,CACvD,mMAA+D,CAC/D,6CAAyC,CACzC,6DACF,CAEA,0EACE,wEACF,CAEA,0DACE,gMAA4D,CAC5D,8DAAuD,CACvD,wMAAgE,CAChE,yEAA6D,CAC7D,gEAAyD,CACzD,mDACF,CAEA,yEACE,4EACF,CAEA,0DACE,gMAA4D,CAC5D,sFAAwE,CACxE,mMAA+D,CAC/D,iEAA2D,CAC3D,6CAAyC,CACzC,6DACF,CAEA,yEACE,wEACF,CAGF,gEAEE,QAAS,CACT,iBAAkB,CAClB,iBACF,CAEA,8BAEE,mCAAoC,CAEpC,mDACF,CAEA,kCAEE,uCAAwC,CAGxC,uDACF,CAEA,+DALE,kCAeF,CAVA,6BAGE,mBAAoB,CACpB,yCAAoC,CACpC,uCAKF,CAHE,iCACE,UACF,CAGF,6BAEE,uCAAwC,CACxC,2CAMF,CAJE,kDAEE,0DACF,CAIF,yCACE,iCACE,gDAQF,CANE,6DACE,4EACF,CALF,iCAOE,gMAA4D,CAC5D,wMACF,CAEA,6BAGE,kCAA2B,CAD3B,sCAAiC,CADjC,oCAGF,CAEA,6BACE,mCASF,CAPE,2CACE,mCACF,CAEA,0CACE,8CACF,CAEJ","file":"Blankslate-a039d79a.css","sourcesContent":[".Container {\n container: blankslate / inline-size;\n}\n\n.Blankslate {\n display: grid;\n justify-items: center;\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--blankslate-padding);\n\n &:where([data-border]) {\n border: var(--borderWidth-thin) solid var(--borderColor-default);\n border-radius: var(--borderRadius-medium);\n }\n\n &:where([data-narrow]) {\n max-width: 485px;\n margin: 0 auto;\n }\n\n &:where([data-size='medium']) {\n --blankslate-heading-text: var(--text-title-shorthand-medium);\n --blankslate-heading-margin-block: 0 var(--base-size-4);\n --blankslate-description-text: var(--text-body-shorthand-large);\n --blankslate-padding: var(--base-size-32);\n --blankslate-action-margin-block-end: var(--base-size-16);\n }\n\n &:where([data-size='medium'][data-spacious]) {\n --blankslate-padding: var(--base-size-80) var(--base-size-40);\n }\n\n &:where([data-size='small']) {\n --blankslate-heading-text: var(--text-title-shorthand-small);\n --blankslate-heading-margin-block: 0 var(--base-size-4);\n --blankslate-description-text: var(--text-body-shorthand-medium);\n --blankslate-padding: var(--base-size-32) var(--base-size-20);\n --blankslate-action-margin-block-end: var(--base-size-12);\n --blankslate-visual-size: var(--base-size-24);\n }\n\n &:where([data-size='small'][data-spacious]) {\n --blankslate-padding: var(--base-size-44) var(--base-size-28);\n }\n\n &:where([data-size='large']) {\n --blankslate-heading-text: var(--text-title-shorthand-large);\n --blankslate-heading-margin-block: var(--base-size-8) var(--base-size-4);\n --blankslate-description-text: var(--text-body-shorthand-large);\n --blankslate-description-margin-block: 0 var(--base-size-8);\n --blankslate-padding: var(--base-size-32);\n --blankslate-action-margin-block-end: var(--base-size-16);\n }\n\n &:where([data-size='large'][data-spacious]) {\n --blankslate-padding: var(--base-size-80) var(--base-size-40);\n }\n}\n\n.Heading,\n.Description {\n margin: 0;\n text-align: center;\n text-wrap: balance;\n}\n\n.Heading {\n /* stylelint-disable-next-line primer/typography */\n font: var(--blankslate-heading-text);\n /* stylelint-disable-next-line primer/spacing */\n margin-block: var(--blankslate-heading-margin-block);\n}\n\n.Description {\n /* stylelint-disable-next-line primer/typography */\n font: var(--blankslate-description-text);\n color: var(--fgColor-muted);\n /* stylelint-disable-next-line primer/spacing */\n margin-block: var(--blankslate-description-margin-block);\n}\n\n.Visual {\n color: var(--fgColor-muted);\n /* This display property exists so that the container matches the size of the inner svg element */\n display: inline-flex;\n margin-block-end: var(--base-size-8);\n max-width: var(--blankslate-visual-size);\n\n & svg {\n width: 100%;\n }\n}\n\n.Action {\n /* stylelint-disable-next-line primer/typography */\n font: var(--blankslate-description-text);\n margin-block-start: var(--base-size-16);\n\n &:where(:last-of-type) {\n /* stylelint-disable-next-line primer/spacing */\n margin-block-end: var(--blankslate-action-margin-block-end);\n }\n}\n\n/* At the time these styles were written, 34rem was our \"small\" breakpoint width */\n@container blankslate (max-width: 34rem) {\n .Blankslate {\n --blankslate-padding: var(--base-size-20);\n\n &:where([data-spacious='true']) {\n --blankslate-padding: var(--base-size-44) var(--base-size-28);\n }\n\n --blankslate-heading-text: var(--text-title-shorthand-small);\n --blankslate-description-text: var(--text-body-shorthand-medium);\n }\n\n .Visual {\n max-width: var(--base-size-24);\n margin-bottom: var(--base-size-8);\n color: var(--fgColor-muted);\n }\n\n .Action {\n margin-top: var(--base-size-8);\n\n &:first-of-type {\n margin-top: var(--base-size-16);\n }\n\n &:last-of-type {\n margin-bottom: calc(var(--base-size-8) / 2);\n }\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- .prc-FilteredActionList-LoadingSkeleton-VKyQq{border-radius:4px}.prc-FilteredActionList-LoadingSpinner-I3a7Y{align-content:center;flex-grow:1;height:100%;padding:var(--base-size-16,1rem);text-align:center}.prc-FilteredActionList-LoadingSkeletonContainer-FMeRG{display:flex;flex-direction:column;flex-grow:1;padding:var(--base-size-8,.5rem)}
2
- /*# sourceMappingURL=FilteredActionListLoaders-a46a8ea4.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/FilteredActionList/FilteredActionListLoaders.module.css.js"],"names":[],"mappings":"AAAA,8CAEE,iBACF,CAEA,6CAGE,oBAAqB,CADrB,WAAY,CAGZ,WAAY,CAJZ,gCAA4B,CAG5B,iBAEF,CAEA,uDAEE,YAAa,CAEb,qBAAsB,CADtB,WAAY,CAFZ,gCAIF","file":"FilteredActionListLoaders-a46a8ea4.css","sourcesContent":[".LoadingSkeleton {\n /* stylelint-disable-next-line primer/borders */\n border-radius: 4px;\n}\n\n.LoadingSpinner {\n padding: var(--base-size-16);\n flex-grow: 1;\n align-content: center;\n text-align: center;\n height: 100%;\n}\n\n.LoadingSkeletonContainer {\n padding: var(--base-size-8);\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n}\n"]}