@primer/react 38.29.0-rc.282c30cdc → 38.29.0-rc.a734edbb0

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 (52) hide show
  1. package/CHANGELOG.md +2 -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/List.d.ts.map +1 -1
  6. package/dist/ActionList/List.js +21 -16
  7. package/dist/ConfirmationDialog/ConfirmationDialog.d.ts +0 -9
  8. package/dist/ConfirmationDialog/ConfirmationDialog.d.ts.map +1 -1
  9. package/dist/ConfirmationDialog/ConfirmationDialog.js +1 -42
  10. package/dist/ConfirmationDialog/useConfirm.d.ts +12 -0
  11. package/dist/ConfirmationDialog/useConfirm.d.ts.map +1 -0
  12. package/dist/ConfirmationDialog/useConfirm.js +44 -0
  13. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts.map +1 -1
  14. package/dist/FeatureFlags/DefaultFeatureFlags.js +1 -0
  15. package/dist/ThemeContext.d.ts +15 -0
  16. package/dist/ThemeContext.d.ts.map +1 -0
  17. package/dist/ThemeContext.js +9 -0
  18. package/dist/ThemeProvider.d.ts +1 -14
  19. package/dist/ThemeProvider.d.ts.map +1 -1
  20. package/dist/ThemeProvider.js +3 -18
  21. package/dist/experimental/Tabs/Tabs.d.ts +3 -111
  22. package/dist/experimental/Tabs/Tabs.d.ts.map +1 -1
  23. package/dist/experimental/Tabs/Tabs.js +3 -237
  24. package/dist/experimental/Tabs/TabsContext.d.ts +3 -0
  25. package/dist/experimental/Tabs/TabsContext.d.ts.map +1 -0
  26. package/dist/experimental/Tabs/TabsContext.js +5 -0
  27. package/dist/experimental/Tabs/index.d.ts +5 -2
  28. package/dist/experimental/Tabs/index.d.ts.map +1 -1
  29. package/dist/experimental/Tabs/types.d.ts +107 -0
  30. package/dist/experimental/Tabs/types.d.ts.map +1 -0
  31. package/dist/experimental/Tabs/useTab.d.ts +7 -0
  32. package/dist/experimental/Tabs/useTab.d.ts.map +1 -0
  33. package/dist/experimental/Tabs/useTab.js +97 -0
  34. package/dist/experimental/Tabs/useTabList.d.ts +3 -0
  35. package/dist/experimental/Tabs/useTabList.d.ts.map +1 -0
  36. package/dist/experimental/Tabs/useTabList.js +100 -0
  37. package/dist/experimental/Tabs/useTabPanel.d.ts +4 -0
  38. package/dist/experimental/Tabs/useTabPanel.d.ts.map +1 -0
  39. package/dist/experimental/Tabs/useTabPanel.js +37 -0
  40. package/dist/experimental/Tabs/useTabs.d.ts +3 -0
  41. package/dist/experimental/Tabs/useTabs.d.ts.map +1 -0
  42. package/dist/experimental/Tabs/useTabs.js +12 -0
  43. package/dist/experimental/index.js +4 -1
  44. package/dist/index.d.ts +3 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +4 -2
  47. package/dist/useTheme.d.ts +15 -0
  48. package/dist/useTheme.d.ts.map +1 -0
  49. package/dist/useTheme.js +16 -0
  50. package/package.json +1 -1
  51. package/dist/ActionList/ActionList-1940009e.css +0 -2
  52. package/dist/ActionList/ActionList-1940009e.css.map +0 -1
package/CHANGELOG.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  ### Patch Changes
10
10
 
11
+ - [#7976](https://github.com/primer/react/pull/7976) [`1fac927`](https://github.com/primer/react/commit/1fac9270c497c1904acbb3eb60805630aab82a97) Thanks [@copilot-swe-agent](https://github.com/apps/copilot-swe-agent)! - NavList: add a small gap between items for readability, including before expanded sub-navs, behind the `primer_react_action_list_item_gap` feature flag
12
+
11
13
  - [#7978](https://github.com/primer/react/pull/7978) [`e3f655c`](https://github.com/primer/react/commit/e3f655c6735ffd1bd105b8e7599e273bb1eee4d1) Thanks [@copilot-swe-agent](https://github.com/apps/copilot-swe-agent)! - PageHeader.ParentLink: Forward unknown props (e.g. `to`) to the underlying element, enabling client-side routing with polymorphic `as`.
12
14
 
13
15
  ## 38.28.0
@@ -0,0 +1,2 @@
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-item-gap]) .prc-ActionList-ActionListItem-So4vC+.prc-ActionList-ActionListItem-So4vC{margin-block-start:var(--base-size-2,.125rem)}.prc-ActionList-ActionList-rPFF2:where([data-item-gap]) .prc-ActionList-SubGroup-5Zje2{margin-block-start:var(--base-size-2,.125rem)}.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-65f7daac.css.map */
@@ -0,0 +1 @@
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-65f7daac.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 /* add a small gap between sibling items for readability */\n &:where([data-item-gap]) {\n & .ActionListItem + .ActionListItem {\n margin-block-start: var(--base-size-2);\n }\n\n /* also separate a parent item's row from the first item of its expanded sub-nav */\n & .SubGroup {\n margin-block-start: var(--base-size-2);\n }\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,5 +1,5 @@
1
- import './ActionList-1940009e.css';
1
+ import './ActionList-65f7daac.css';
2
2
 
3
- var classes = {"ActionList":"prc-ActionList-ActionList-rPFF2","ActionListItem":"prc-ActionList-ActionListItem-So4vC","ActionListSubContent":"prc-ActionList-ActionListSubContent-gKsFp","Divider":"prc-ActionList-Divider-taVfb","ItemLabel":"prc-ActionList-ItemLabel-81ohH","focus-visible":"prc-ActionList-focus-visible-OJCTY","LeadingAction":"prc-ActionList-LeadingAction-hbWbh","LeadingVisual":"prc-ActionList-LeadingVisual-NBr28","InactiveWarning":"prc-ActionList-InactiveWarning-1Dszv","Description":"prc-ActionList-Description-Z-EZJ","TrailingVisual":"prc-ActionList-TrailingVisual-jwT9C","VisualWrap":"prc-ActionList-VisualWrap-bdCsS","ActionListContent":"prc-ActionList-ActionListContent-KBb8-","Spacer":"prc-ActionList-Spacer-4tR2m","MultiSelectCheckbox":"prc-ActionList-MultiSelectCheckbox-2OqxZ","checkmarkOut":"prc-ActionList-checkmarkOut-GbMf4","checkmarkIn":"prc-ActionList-checkmarkIn-gjsPG","SingleSelectCheckmark":"prc-ActionList-SingleSelectCheckmark-zMd8d","ExpandIcon":"prc-ActionList-ExpandIcon-J4OqB","SubGroup":"prc-ActionList-SubGroup-5Zje2","TrailingAction":"prc-ActionList-TrailingAction-dMRxe","ItemDescriptionWrap":"prc-ActionList-ItemDescriptionWrap-ujC8S","TrailingActionButton":"prc-ActionList-TrailingActionButton-UUAk6","InactiveButtonWrap":"prc-ActionList-InactiveButtonWrap-Ia-xM","InactiveButtonReset":"prc-ActionList-InactiveButtonReset-uK4-x"};
3
+ var classes = {"ActionList":"prc-ActionList-ActionList-rPFF2","ActionListItem":"prc-ActionList-ActionListItem-So4vC","SubGroup":"prc-ActionList-SubGroup-5Zje2","ActionListSubContent":"prc-ActionList-ActionListSubContent-gKsFp","Divider":"prc-ActionList-Divider-taVfb","ItemLabel":"prc-ActionList-ItemLabel-81ohH","focus-visible":"prc-ActionList-focus-visible-OJCTY","LeadingAction":"prc-ActionList-LeadingAction-hbWbh","LeadingVisual":"prc-ActionList-LeadingVisual-NBr28","InactiveWarning":"prc-ActionList-InactiveWarning-1Dszv","Description":"prc-ActionList-Description-Z-EZJ","TrailingVisual":"prc-ActionList-TrailingVisual-jwT9C","VisualWrap":"prc-ActionList-VisualWrap-bdCsS","ActionListContent":"prc-ActionList-ActionListContent-KBb8-","Spacer":"prc-ActionList-Spacer-4tR2m","MultiSelectCheckbox":"prc-ActionList-MultiSelectCheckbox-2OqxZ","checkmarkOut":"prc-ActionList-checkmarkOut-GbMf4","checkmarkIn":"prc-ActionList-checkmarkIn-gjsPG","SingleSelectCheckmark":"prc-ActionList-SingleSelectCheckmark-zMd8d","ExpandIcon":"prc-ActionList-ExpandIcon-J4OqB","TrailingAction":"prc-ActionList-TrailingAction-dMRxe","ItemDescriptionWrap":"prc-ActionList-ItemDescriptionWrap-ujC8S","TrailingActionButton":"prc-ActionList-TrailingActionButton-UUAk6","InactiveButtonWrap":"prc-ActionList-InactiveButtonWrap-Ia-xM","InactiveButtonReset":"prc-ActionList-InactiveButtonReset-uK4-x"};
4
4
 
5
5
  export { classes as default };
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/ActionList/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAA;AAqHrC,QAAA,MAAM,IAAI,GAxGa,EAAE,SAAS,KAAK,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;oDAwGR,CAAA;AAI3C,OAAO,EAAC,IAAI,EAAC,CAAA"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../src/ActionList/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAA;AAwHrC,QAAA,MAAM,IAAI,GA1Ga,EAAE,SAAS,KAAK,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;oDA0GR,CAAA;AAI3C,OAAO,EAAC,IAAI,EAAC,CAAA"}
@@ -12,11 +12,12 @@ import classes from './ActionList.module.css.js';
12
12
  import useIsomorphicLayoutEffect from '../utils/useIsomorphicLayoutEffect.js';
13
13
  import { jsx, jsxs } from 'react/jsx-runtime';
14
14
  import { useProvidedRefOrCreate } from '../hooks/useProvidedRefOrCreate.js';
15
+ import { useFeatureFlag } from '../FeatureFlags/useFeatureFlag.js';
15
16
  import { FocusKeys } from '@primer/behaviors';
16
17
 
17
18
  const UnwrappedList = (props, forwardedRef) => {
18
19
  var _slots$heading$props$;
19
- const $ = c(39);
20
+ const $ = c(40);
20
21
  let className;
21
22
  let restProps;
22
23
  let role;
@@ -80,6 +81,7 @@ const UnwrappedList = (props, forwardedRef) => {
80
81
  const ariaLabelledBy = slots.heading ? (_slots$heading$props$ = slots.heading.props.id) !== null && _slots$heading$props$ !== void 0 ? _slots$heading$props$ : headingId : listLabelledBy;
81
82
  const listRole = role || listRoleFromContainer;
82
83
  const listRef = useProvidedRefOrCreate(forwardedRef);
84
+ const itemGapEnabled = useFeatureFlag("primer_react_action_list_item_gap") && container === "NavList";
83
85
  let enableFocusZone = false;
84
86
  if (enableFocusZoneFromContainer !== undefined) {
85
87
  enableFocusZone = enableFocusZoneFromContainer;
@@ -165,9 +167,10 @@ const UnwrappedList = (props, forwardedRef) => {
165
167
  } else {
166
168
  t12 = $[24];
167
169
  }
168
- let t13;
169
- if ($[25] !== Component || $[26] !== ariaLabelledBy || $[27] !== childrenWithoutSlots || $[28] !== listRef || $[29] !== listRole || $[30] !== restProps || $[31] !== showDividers || $[32] !== t12 || $[33] !== variant) {
170
- t13 = /*#__PURE__*/jsx(Component, {
170
+ const t13 = itemGapEnabled ? "" : undefined;
171
+ let t14;
172
+ if ($[25] !== Component || $[26] !== ariaLabelledBy || $[27] !== childrenWithoutSlots || $[28] !== listRef || $[29] !== listRole || $[30] !== restProps || $[31] !== showDividers || $[32] !== t12 || $[33] !== t13 || $[34] !== variant) {
173
+ t14 = /*#__PURE__*/jsx(Component, {
171
174
  className: t12,
172
175
  role: listRole,
173
176
  "aria-labelledby": ariaLabelledBy,
@@ -175,6 +178,7 @@ const UnwrappedList = (props, forwardedRef) => {
175
178
  "data-component": "ActionList",
176
179
  "data-dividers": showDividers,
177
180
  "data-variant": variant,
181
+ "data-item-gap": t13,
178
182
  ...restProps,
179
183
  children: childrenWithoutSlots
180
184
  });
@@ -186,25 +190,26 @@ const UnwrappedList = (props, forwardedRef) => {
186
190
  $[30] = restProps;
187
191
  $[31] = showDividers;
188
192
  $[32] = t12;
189
- $[33] = variant;
190
- $[34] = t13;
193
+ $[33] = t13;
194
+ $[34] = variant;
195
+ $[35] = t14;
191
196
  } else {
192
- t13 = $[34];
197
+ t14 = $[35];
193
198
  }
194
- let t14;
195
- if ($[35] !== listContextValue || $[36] !== slots.heading || $[37] !== t13) {
196
- t14 = /*#__PURE__*/jsxs(ListContext.Provider, {
199
+ let t15;
200
+ if ($[36] !== listContextValue || $[37] !== slots.heading || $[38] !== t14) {
201
+ t15 = /*#__PURE__*/jsxs(ListContext.Provider, {
197
202
  value: listContextValue,
198
- children: [t11, t13]
203
+ children: [t11, t14]
199
204
  });
200
- $[35] = listContextValue;
201
- $[36] = slots.heading;
202
- $[37] = t13;
205
+ $[36] = listContextValue;
206
+ $[37] = slots.heading;
203
207
  $[38] = t14;
208
+ $[39] = t15;
204
209
  } else {
205
- t14 = $[38];
210
+ t15 = $[39];
206
211
  }
207
- return t14;
212
+ return t15;
208
213
  };
209
214
  const List = fixedForwardRef(UnwrappedList);
210
215
  Object.assign(List, {
@@ -68,13 +68,4 @@ export interface ConfirmationDialogProps {
68
68
  * rendering capabilities are provided for ConfirmationDialog.
69
69
  */
70
70
  export declare const ConfirmationDialog: React.FC<React.PropsWithChildren<ConfirmationDialogProps>>;
71
- export type ConfirmOptions = Omit<ConfirmationDialogProps, 'onClose'> & {
72
- content: React.ReactNode;
73
- };
74
- /**
75
- * This hook takes no parameters and returns an `async` function, `confirm`. When `confirm`
76
- * is called, it shows the confirmation dialog. When the dialog is dismissed, a promise is
77
- * resolved with `true` or `false` depending on whether or not the confirm button was used.
78
- */
79
- export declare function useConfirm(): (options: ConfirmOptions) => Promise<boolean>;
80
71
  //# sourceMappingURL=ConfirmationDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationDialog.d.ts","sourceRoot":"","sources":["../../src/ConfirmationDialog/ConfirmationDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAoB,WAAW,EAAE,YAAY,EAAC,MAAM,WAAW,CAAA;AAI3E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAA;IAE5E;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IAEtB;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAErC;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEtC;;OAEG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;IAEnD;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAE1C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;IAEnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAqDzF,CAAA;AAGD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAAG;IAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,CAAA;AAyBlG;;;;GAIG;AACH,wBAAgB,UAAU,cACa,cAAc,sBAIpD"}
1
+ {"version":3,"file":"ConfirmationDialog.d.ts","sourceRoot":"","sources":["../../src/ConfirmationDialog/ConfirmationDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAoB,WAAW,EAAE,YAAY,EAAC,MAAM,WAAW,CAAA;AAG3E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAA;IAE5E;;;OAGG;IACH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IAEtB;;OAEG;IACH,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAErC;;OAEG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEtC;;OAEG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;IAEnD;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAE7B;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAE9B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAE1C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;IAEnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAqDzF,CAAA"}
@@ -1,6 +1,4 @@
1
1
  import { useCallback } from 'react';
2
- import { createRoot } from 'react-dom/client';
3
- import BaseStyles from '../BaseStyles.js';
4
2
  import { jsx } from 'react/jsx-runtime';
5
3
  import { Dialog } from '../Dialog/Dialog.js';
6
4
 
@@ -60,44 +58,5 @@ const ConfirmationDialog = props => {
60
58
  });
61
59
  };
62
60
  ConfirmationDialog.displayName = "ConfirmationDialog";
63
- let hostElement = null;
64
- async function confirm(options) {
65
- const {
66
- content,
67
- ...confirmationDialogProps
68
- } = options;
69
- return new Promise(resolve => {
70
- hostElement ||= document.createElement('div');
71
- if (!hostElement.isConnected) document.body.append(hostElement);
72
- const root = createRoot(hostElement);
73
- const onClose = gesture => {
74
- root.unmount();
75
- if (gesture === 'confirm') {
76
- resolve(true);
77
- } else {
78
- resolve(false);
79
- }
80
- };
81
- root.render(/*#__PURE__*/jsx(BaseStyles, {
82
- children: /*#__PURE__*/jsx(ConfirmationDialog, {
83
- ...confirmationDialogProps,
84
- onClose: onClose,
85
- children: content
86
- })
87
- }));
88
- });
89
- }
90
-
91
- /**
92
- * This hook takes no parameters and returns an `async` function, `confirm`. When `confirm`
93
- * is called, it shows the confirmation dialog. When the dialog is dismissed, a promise is
94
- * resolved with `true` or `false` depending on whether or not the confirm button was used.
95
- */
96
- function useConfirm() {
97
- const result = useCallback(options => {
98
- return confirm(options);
99
- }, []);
100
- return result;
101
- }
102
61
 
103
- export { ConfirmationDialog, useConfirm };
62
+ export { ConfirmationDialog };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { type ConfirmationDialogProps } from './ConfirmationDialog';
3
+ export type ConfirmOptions = Omit<ConfirmationDialogProps, 'onClose'> & {
4
+ content: React.ReactNode;
5
+ };
6
+ /**
7
+ * This hook takes no parameters and returns an `async` function, `confirm`. When `confirm`
8
+ * is called, it shows the confirmation dialog. When the dialog is dismissed, a promise is
9
+ * resolved with `true` or `false` depending on whether or not the confirm button was used.
10
+ */
11
+ export declare function useConfirm(): (options: ConfirmOptions) => Promise<boolean>;
12
+ //# sourceMappingURL=useConfirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConfirm.d.ts","sourceRoot":"","sources":["../../src/ConfirmationDialog/useConfirm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AAGxC,OAAO,EAAqB,KAAK,uBAAuB,EAAC,MAAM,sBAAsB,CAAA;AAIrF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAAG;IAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;CAAC,CAAA;AA0BlG;;;;GAIG;AACH,wBAAgB,UAAU,cACa,cAAc,sBAIpD"}
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import { createRoot } from 'react-dom/client';
3
+ import BaseStyles from '../BaseStyles.js';
4
+ import { ConfirmationDialog } from './ConfirmationDialog.js';
5
+
6
+ let hostElement = null;
7
+ async function confirm(options) {
8
+ const {
9
+ content,
10
+ ...confirmationDialogProps
11
+ } = options;
12
+ return new Promise(resolve => {
13
+ hostElement ||= document.createElement('div');
14
+ if (!hostElement.isConnected) document.body.append(hostElement);
15
+ const root = createRoot(hostElement);
16
+ const onClose = gesture => {
17
+ root.unmount();
18
+ if (gesture === 'confirm') {
19
+ resolve(true);
20
+ } else {
21
+ resolve(false);
22
+ }
23
+ };
24
+ root.render(/*#__PURE__*/React.createElement(BaseStyles, null, /*#__PURE__*/React.createElement(ConfirmationDialog, {
25
+ ...confirmationDialogProps,
26
+ onClose
27
+ }, content)));
28
+ });
29
+ }
30
+
31
+ /**
32
+ * This hook takes no parameters and returns an `async` function, `confirm`. When `confirm`
33
+ * is called, it shows the confirmation dialog. When the dialog is dismissed, a promise is
34
+ * resolved with `true` or `false` depending on whether or not the confirm button was used.
35
+ */
36
+ function useConfirm() {
37
+ const result = _temp;
38
+ return result;
39
+ }
40
+ function _temp(options) {
41
+ return confirm(options);
42
+ }
43
+
44
+ export { useConfirm };
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultFeatureFlags.d.ts","sourceRoot":"","sources":["../../src/FeatureFlags/DefaultFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,eAAO,MAAM,mBAAmB,kBAQ9B,CAAA"}
1
+ {"version":3,"file":"DefaultFeatureFlags.d.ts","sourceRoot":"","sources":["../../src/FeatureFlags/DefaultFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,eAAO,MAAM,mBAAmB,kBAS9B,CAAA"}
@@ -6,6 +6,7 @@ const DefaultFeatureFlags = FeatureFlagScope.create({
6
6
  primer_react_select_panel_order_selected_at_top: false,
7
7
  primer_react_styled_react_use_primer_theme_providers: false,
8
8
  primer_react_action_list_group_heading_trailing_action: false,
9
+ primer_react_action_list_item_gap: false,
9
10
  primer_react_timeline_list_semantics: false,
10
11
  primer_react_theme_provider_remove_ssr_handoff: false
11
12
  });
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import type { ColorMode, ColorModeWithAuto, Theme } from './ThemeProvider';
3
+ export declare const ThemeContext: React.Context<{
4
+ theme?: Theme;
5
+ colorScheme?: string;
6
+ colorMode?: ColorModeWithAuto;
7
+ resolvedColorMode?: ColorMode;
8
+ resolvedColorScheme?: string;
9
+ dayScheme?: string;
10
+ nightScheme?: string;
11
+ setColorMode: React.Dispatch<React.SetStateAction<ColorModeWithAuto>>;
12
+ setDayScheme: React.Dispatch<React.SetStateAction<string>>;
13
+ setNightScheme: React.Dispatch<React.SetStateAction<string>>;
14
+ }>;
15
+ //# sourceMappingURL=ThemeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../src/ThemeContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAA;AAExE,eAAO,MAAM,YAAY;YACf,KAAK;kBACC,MAAM;gBACR,iBAAiB;wBACT,SAAS;0BACP,MAAM;gBAChB,MAAM;kBACJ,MAAM;kBACN,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;kBACvD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC1C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;EAK5D,CAAA"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+
3
+ const ThemeContext = /*#__PURE__*/React.createContext({
4
+ setColorMode: () => null,
5
+ setDayScheme: () => null,
6
+ setNightScheme: () => null
7
+ });
8
+
9
+ export { ThemeContext };
@@ -3,7 +3,7 @@ export declare const defaultColorMode = "day";
3
3
  export type Theme = {
4
4
  [key: string]: any;
5
5
  };
6
- type ColorMode = 'day' | 'night' | 'light' | 'dark';
6
+ export type ColorMode = 'day' | 'night' | 'light' | 'dark';
7
7
  export type ColorModeWithAuto = ColorMode | 'auto';
8
8
  export type ThemeProviderProps = {
9
9
  colorMode?: ColorModeWithAuto;
@@ -21,18 +21,5 @@ export type ThemeProviderProps = {
21
21
  contextOnly?: boolean;
22
22
  };
23
23
  export declare const ThemeProvider: React.FC<React.PropsWithChildren<ThemeProviderProps>>;
24
- export declare function useTheme(): {
25
- theme?: Theme;
26
- colorScheme?: string;
27
- colorMode?: ColorModeWithAuto;
28
- resolvedColorMode?: ColorMode;
29
- resolvedColorScheme?: string;
30
- dayScheme?: string;
31
- nightScheme?: string;
32
- setColorMode: React.Dispatch<React.SetStateAction<ColorModeWithAuto>>;
33
- setDayScheme: React.Dispatch<React.SetStateAction<string>>;
34
- setNightScheme: React.Dispatch<React.SetStateAction<string>>;
35
- };
36
- export declare function useColorSchemeVar(values: Partial<Record<string, string>>, fallback: string): string;
37
24
  export default ThemeProvider;
38
25
  //# sourceMappingURL=ThemeProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../src/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AAKrC,MAAM,MAAM,KAAK,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAAA;AACxC,KAAK,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;AACnD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAA;AAElD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AA8CD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CA2F/E,CAAA;AAED,wBAAgB,QAAQ;YAxId,KAAK;kBACC,MAAM;gBACR,iBAAiB;wBACT,SAAS;0BACP,MAAM;gBAChB,MAAM;kBACJ,MAAM;kBACN,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;kBACvD,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC1C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;EAiI7D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,UAG1F;AAqED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../src/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AAKrC,MAAM,MAAM,KAAK,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,CAAA;AACxC,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;AAC1D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAA;AAElD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AA6BD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CA2F/E,CAAA;AAqED,eAAe,aAAa,CAAA"}
@@ -3,6 +3,8 @@ import React from 'react';
3
3
  import theme from './theme.js';
4
4
  import deepmerge from 'deepmerge';
5
5
  import { useSyncedState } from './hooks/useSyncedState.js';
6
+ import { ThemeContext } from './ThemeContext.js';
7
+ import { useTheme } from './useTheme.js';
6
8
  import { jsx, jsxs } from 'react/jsx-runtime';
7
9
  import { useFeatureFlag } from './FeatureFlags/useFeatureFlag.js';
8
10
  import { useId } from './hooks/useId.js';
@@ -13,12 +15,6 @@ const defaultNightScheme = 'dark';
13
15
 
14
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
17
 
16
- const ThemeContext = /*#__PURE__*/React.createContext({
17
- setColorMode: () => null,
18
- setDayScheme: () => null,
19
- setNightScheme: () => null
20
- });
21
-
22
18
  // inspired from __NEXT_DATA__, we use application/json to avoid CSRF policy with inline scripts
23
19
  const serverHandoffCache = new Map();
24
20
  const emptyHandoff = {};
@@ -225,17 +221,6 @@ const ThemeProvider = t0 => {
225
221
  }
226
222
  return t10;
227
223
  };
228
- function useTheme() {
229
- return React.useContext(ThemeContext);
230
- }
231
- function useColorSchemeVar(values, fallback) {
232
- var _values$colorScheme;
233
- const {
234
- colorScheme: t0
235
- } = useTheme();
236
- const colorScheme = t0 === undefined ? "" : t0;
237
- return (_values$colorScheme = values[colorScheme]) !== null && _values$colorScheme !== void 0 ? _values$colorScheme : fallback;
238
- }
239
224
  function subscribeToSystemColorMode(callback) {
240
225
  var _window, _window$matchMedia;
241
226
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
@@ -298,4 +283,4 @@ function applyColorScheme(theme, colorScheme) {
298
283
  };
299
284
  }
300
285
 
301
- export { ThemeProvider, ThemeProvider as default, defaultColorMode, useColorSchemeVar, useTheme };
286
+ export { ThemeProvider, ThemeProvider as default, defaultColorMode };
@@ -1,45 +1,5 @@
1
- import React, { type AriaAttributes, type PropsWithChildren } from 'react';
2
- /**
3
- * Props to be used when the Tabs component's state is controlled by the parent
4
- */
5
- type ControlledTabsProps = {
6
- /**
7
- * Specify the selected tab
8
- */
9
- value: string;
10
- /**
11
- * `defaultValue` can only be used in the uncontrolled variant of the component
12
- * If you need to use `defaultValue`, please switch to the uncontrolled variant by removing the `value` prop.
13
- */
14
- defaultValue?: never;
15
- /**
16
- * Provide an optional callback that is called when the selected tab changes
17
- */
18
- onValueChange: ({ value }: {
19
- value: string;
20
- }) => void;
21
- };
22
- /**
23
- * Props to be used when the Tabs component is managing its own state
24
- */
25
- type UncontrolledTabsProps = {
26
- /**
27
- * Specify the default selected tab
28
- */
29
- defaultValue: string;
30
- /**
31
- * `value` can only be used in the controlled variant of the component
32
- * If you need to use `value`, please switch to the controlled variant by removing the `defaultValue` prop.
33
- */
34
- value?: never;
35
- /**
36
- * Provide an optional callback that is called when the selected tab changes
37
- */
38
- onValueChange?: ({ value }: {
39
- value: string;
40
- }) => void;
41
- };
42
- type TabsProps = PropsWithChildren<ControlledTabsProps | UncontrolledTabsProps>;
1
+ import React from 'react';
2
+ import type { TabListProps, TabPanelProps, TabProps, TabsProps } from './types';
43
3
  /**
44
4
  * The Tabs component provides the base structure for a tabbed interface, without providing any formal requirement on DOM structure or styling.
45
5
  * It manages the state of the selected tab, handles tab ordering/selection and provides context to its child components to ensure an accessible experience.
@@ -48,80 +8,12 @@ type TabsProps = PropsWithChildren<ControlledTabsProps | UncontrolledTabsProps>;
48
8
  * The `Tab`, `TabList`, and `TabPanel` components are provided for convenience to showcase the API & implementation.
49
9
  */
50
10
  declare function Tabs(props: TabsProps): React.JSX.Element;
51
- type Label = {
52
- 'aria-label': string;
53
- };
54
- type LabelledBy = {
55
- 'aria-labelledby': string;
56
- };
57
- type Labelled = Label | LabelledBy;
58
- type TabListProps = Labelled & React.HTMLAttributes<HTMLElement>;
59
- declare function useTabList<T extends HTMLElement>(props: TabListProps & {
60
- /** Optional ref to use for the tablist. If none is provided, one will be generated automatically */
61
- ref?: React.RefObject<T>;
62
- }): {
63
- /** Props to be spread onto the tablist element */
64
- tabListProps: {
65
- onKeyDown: React.KeyboardEventHandler<T>;
66
- 'aria-orientation': AriaAttributes['aria-orientation'];
67
- 'aria-label': AriaAttributes['aria-label'];
68
- 'aria-labelledby': AriaAttributes['aria-labelledby'];
69
- ref: React.RefObject<T | null>;
70
- role: 'tablist';
71
- };
72
- };
73
11
  declare function TabList({ children, ...rest }: TabListProps): React.JSX.Element;
74
- type TabProps = React.ComponentPropsWithoutRef<'button'> & {
75
- /**
76
- * Specify whether the tab is disabled
77
- */
78
- disabled?: boolean;
79
- /**
80
- * Provide a value that uniquely identifies the tab. This should mirror the
81
- * value provided to the corresponding TabPanel
82
- */
83
- value: string;
84
- };
85
- /**
86
- * A custom hook that provides the props needed for a tab component.
87
- * The props returned should be spread onto the component (typically a button) with the `role=tab`, under a `tablist`.
88
- */
89
- declare function useTab<T extends HTMLElement>(props: Pick<TabProps, 'disabled' | 'value'>): {
90
- /** Props to be spread onto the tab component */
91
- tabProps: Pick<React.HTMLProps<T>, 'aria-controls' | 'aria-disabled' | 'aria-selected' | 'id' | 'tabIndex' | 'onKeyDown' | 'onMouseDown' | 'onFocus'> & {
92
- role: 'tab';
93
- };
94
- };
95
12
  declare const Tab: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
96
- /**
97
- * Specify whether the tab is disabled
98
- */
99
13
  disabled?: boolean;
100
- /**
101
- * Provide a value that uniquely identifies the tab. This should mirror the
102
- * value provided to the corresponding TabPanel
103
- */
104
14
  value: string;
105
15
  } & React.RefAttributes<HTMLButtonElement>>;
106
- type TabPanelProps = {
107
- /**
108
- * Provide a value that uniquely identifies the tab panel. This should mirror
109
- * the value set for the corresponding tab
110
- */
111
- value: string;
112
- };
113
- /** Utility hook for tab panels */
114
- declare function useTabPanel<T extends HTMLElement>(props: TabPanelProps): {
115
- /** Props to be spread onto the tabpanel component */
116
- tabPanelProps: Pick<React.HTMLProps<T>, 'aria-labelledby' | 'id' | 'hidden'> & {
117
- /**
118
- * An identifier to aid in styling when this panel is selected & active
119
- */
120
- 'data-selected': string | undefined;
121
- role: 'tabpanel';
122
- };
123
- };
124
16
  declare function TabPanel({ children, value, ...rest }: React.HTMLAttributes<HTMLDivElement> & TabPanelProps): React.JSX.Element;
125
- export { Tabs, TabList, Tab, TabPanel, useTab, useTabList, useTabPanel };
17
+ export { Tabs, TabList, Tab, TabPanel };
126
18
  export type { TabsProps, TabListProps, TabProps, TabPanelProps };
127
19
  //# sourceMappingURL=Tabs.d.ts.map