@primer/react 38.27.0 → 38.28.0-rc.5b1595e6f

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 (48) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/AnchoredOverlay/AnchoredOverlay.d.ts +9 -0
  3. package/dist/AnchoredOverlay/AnchoredOverlay.d.ts.map +1 -1
  4. package/dist/AnchoredOverlay/AnchoredOverlay.js +3 -2
  5. package/dist/Autocomplete/AutocompleteInput.d.ts.map +1 -1
  6. package/dist/Autocomplete/AutocompleteInput.js +14 -2
  7. package/dist/Card/Card-59b77d05.css +2 -0
  8. package/dist/Card/Card-59b77d05.css.map +1 -0
  9. package/dist/Card/Card.d.ts +18 -0
  10. package/dist/Card/Card.d.ts.map +1 -1
  11. package/dist/Card/Card.js +165 -154
  12. package/dist/Card/Card.module.css.js +1 -1
  13. package/dist/Card/index.d.ts +2 -0
  14. package/dist/Card/index.d.ts.map +1 -1
  15. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts.map +1 -1
  16. package/dist/FeatureFlags/DefaultFeatureFlags.js +2 -1
  17. package/dist/InlineMessage/InlineMessage-cd1e4c93.css +2 -0
  18. package/dist/InlineMessage/InlineMessage-cd1e4c93.css.map +1 -0
  19. package/dist/InlineMessage/InlineMessage.d.ts +1 -1
  20. package/dist/InlineMessage/InlineMessage.d.ts.map +1 -1
  21. package/dist/InlineMessage/InlineMessage.js +34 -19
  22. package/dist/InlineMessage/InlineMessage.module.css.js +1 -1
  23. package/dist/PageHeader/PageHeader.d.ts.map +1 -1
  24. package/dist/PageHeader/PageHeader.js +6 -0
  25. package/dist/PageLayout/PageLayout.d.ts.map +1 -1
  26. package/dist/PageLayout/PageLayout.js +9 -0
  27. package/dist/Pagehead/Pagehead.js +1 -0
  28. package/dist/Popover/Popover.d.ts.map +1 -1
  29. package/dist/Popover/Popover.js +2 -0
  30. package/dist/Portal/Portal.d.ts.map +1 -1
  31. package/dist/Portal/Portal.js +1 -0
  32. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  33. package/dist/ProgressBar/ProgressBar.js +2 -0
  34. package/dist/SelectPanel/SelectPanel.d.ts.map +1 -1
  35. package/dist/SelectPanel/SelectPanel.js +6 -1
  36. package/dist/Timeline/Timeline-ff81db92.css +2 -0
  37. package/dist/Timeline/Timeline-ff81db92.css.map +1 -0
  38. package/dist/Timeline/Timeline.d.ts +7 -7
  39. package/dist/Timeline/Timeline.d.ts.map +1 -1
  40. package/dist/Timeline/Timeline.js +156 -61
  41. package/dist/Timeline/Timeline.module.css.js +1 -1
  42. package/package.json +9 -9
  43. package/dist/Card/Card-d8a02dd9.css +0 -2
  44. package/dist/Card/Card-d8a02dd9.css.map +0 -1
  45. package/dist/InlineMessage/InlineMessage-80d97643.css +0 -2
  46. package/dist/InlineMessage/InlineMessage-80d97643.css.map +0 -1
  47. package/dist/Timeline/Timeline-0c88f21b.css +0 -2
  48. package/dist/Timeline/Timeline-0c88f21b.css.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @primer/react
2
2
 
3
+ ## 38.28.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#7923](https://github.com/primer/react/pull/7923) [`6a7e130`](https://github.com/primer/react/commit/6a7e13051139ba06e48391edc0b05ef555b814b9) Thanks [@dylanatsmith](https://github.com/dylanatsmith)! - Card: Add `layout="compact"` prop for a compact card layout with tighter spacing, no icon background, and smaller title
8
+
9
+ - [#7922](https://github.com/primer/react/pull/7922) [`55b7b04`](https://github.com/primer/react/commit/55b7b04647af9d7812e9ff77605524048358039c) Thanks [@dylanatsmith](https://github.com/dylanatsmith)! - InlineMessage: Make `variant` prop optional, defaulting to the standard foreground color with an info icon
10
+
11
+ - [#7889](https://github.com/primer/react/pull/7889) [`3af5edc`](https://github.com/primer/react/commit/3af5edc56dd21aaa16c7c1676c4627c4ecd6f0f2) Thanks [@llastflowers](https://github.com/llastflowers)! - Add data-component attributes and associated tests for PageHeader, PageLayout, Pagehead, Popover, Portal, and ProgressBar
12
+
13
+ - [#7964](https://github.com/primer/react/pull/7964) [`0f0f79f`](https://github.com/primer/react/commit/0f0f79f5da92087e636cde0d0709479c9c68d2d1) Thanks [@TylerJDev](https://github.com/TylerJDev)! - AnchoredOverlay: Add `cssAnchorPositioningSettings` prop to allow opting out of native CSS anchor positioning (via `disable`), and use it in `SelectPanel` so the `modal` variant stays manually centered instead of being repositioned by CSS anchor positioning.
14
+
15
+ ### Patch Changes
16
+
17
+ - [#7918](https://github.com/primer/react/pull/7918) [`95986ce`](https://github.com/primer/react/commit/95986ce22eaca6f4cb2122a00d51ec93d72f2dfe) Thanks [@jonrohan](https://github.com/jonrohan)! - Autocomplete: Keep the typed text instead of restoring the full inline suggestion when the input loses focus, matching the behavior of pressing Escape
18
+
19
+ - [#7910](https://github.com/primer/react/pull/7910) [`0c38cfa`](https://github.com/primer/react/commit/0c38cfaeabab347e48d4e34c200739e32efa73a2) Thanks [@janmaarten-a11y](https://github.com/janmaarten-a11y)! - Timeline: Add `primer_react_timeline_list_semantics` feature flag to opt into list semantics
20
+
21
+ When the `primer_react_timeline_list_semantics` feature flag is enabled, `Timeline` renders as `<ol role="list">` and `Timeline.Item` / `Timeline.Break` render as `<li>` so screen reader users get list navigation (total item count, position in sequence). The default behavior is unchanged — `Timeline` and its subcomponents still render as `<div>` until the flag is opted into.
22
+
23
+ Enable the flag with the `FeatureFlags` provider:
24
+
25
+ ```tsx
26
+ import {FeatureFlags} from '@primer/react/experimental'
27
+
28
+ ;<FeatureFlags flags={{primer_react_timeline_list_semantics: true}}>
29
+ <Timeline>…</Timeline>
30
+ </FeatureFlags>
31
+ ```
32
+
3
33
  ## 38.27.0
4
34
 
5
35
  ### Minor Changes
@@ -99,6 +99,15 @@ interface AnchoredOverlayBaseProps extends Pick<OverlayProps, 'height' | 'width'
99
99
  * and the browser supports native CSS anchor positioning. Has no effect otherwise. Defaults to `"portal"`.
100
100
  */
101
101
  renderAs?: 'portal' | 'popover';
102
+ /**
103
+ * Settings for native CSS anchor positioning.
104
+ *
105
+ * - `disable`: When `true`, opts this overlay out of native CSS anchor positioning (and the Popover API)
106
+ * even if `primer_react_css_anchor_positioning` is enabled and the browser supports it.
107
+ */
108
+ cssAnchorPositioningSettings?: {
109
+ disable?: boolean;
110
+ };
102
111
  }
103
112
  export type AnchoredOverlayProps = AnchoredOverlayBaseProps & (AnchoredOverlayPropsWithAnchor | AnchoredOverlayPropsWithoutAnchor) & Partial<Pick<PositionSettings, 'align' | 'side' | 'anchorOffset' | 'alignmentOffset' | 'displayInViewport'>>;
104
113
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AnchoredOverlay.d.ts","sourceRoot":"","sources":["../../src/AnchoredOverlay/AnchoredOverlay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnchoredOverlay.d.ts","sourceRoot":"","sources":["../../src/AnchoredOverlay/AnchoredOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAmC,KAAK,GAAG,EAAC,MAAM,OAAO,CAAA;AAChE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAA;AAE5C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAA;AAEhE,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAA;AAIhE,OAAO,KAAK,EAAC,cAAc,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAC,KAAK,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAa,KAAK,eAAe,EAAC,MAAM,WAAW,CAAA;AAO1D,UAAU,8BAA8B;IACtC;;;OAGG;IACH,YAAY,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,iBAAiB,CAAC,EAChG,KAAK,EAAE,CAAC,KACL,GAAG,CAAC,OAAO,CAAA;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAE/C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,iCAAiC;IACzC;;;OAGG;IACH,YAAY,EAAE,IAAI,CAAA;IAElB;;;OAGG;IACH,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IAC9C;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,iCAAiC,GACzC,OAAO,CAAC,8BAA8B,CAAC,GACvC,iCAAiC,CAAA;AAErC,UAAU,wBAAyB,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC/E;;OAEG;IACH,IAAI,EAAE,OAAO,CAAA;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,kBAAkB,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,OAAO,CAAA;IAE5G;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,GAAG,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAA;IAErF;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAEpC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAElD;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAElD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,CAAC,CAAA;IAChE;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE;QAAC,QAAQ,EAAE,cAAc,CAAA;KAAC,KAAK,IAAI,CAAA;IACnE;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC3C;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC/B;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAC,CAAA;CACnD;AAED,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GACzD,CAAC,8BAA8B,GAAG,iCAAiC,CAAC,GACpE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,iBAAiB,GAAG,mBAAmB,CAAC,CAAC,CAAA;AAS9G;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CA+RnF,CAAA"}
@@ -48,13 +48,14 @@ const AnchoredOverlay = ({
48
48
  onPositionChange,
49
49
  displayCloseButton = true,
50
50
  closeButtonProps = defaultCloseButtonProps,
51
- renderAs = 'portal'
51
+ renderAs = 'portal',
52
+ cssAnchorPositioningSettings
52
53
  }) => {
53
54
  const cssAnchorPositioningFlag = useFeatureFlag('primer_react_css_anchor_positioning');
54
55
  // Lazy initial state so feature detection runs once per mount on the client.
55
56
  // Guarded for SSR where `document` is undefined.
56
57
  const [supportsNativeCSSAnchorPositioning] = useState(() => typeof document !== 'undefined' && 'anchorName' in document.documentElement.style && 'positionTryFallbacks' in document.documentElement.style && 'positionVisibility' in document.documentElement.style);
57
- const cssAnchorPositioning = cssAnchorPositioningFlag && supportsNativeCSSAnchorPositioning && !(overlayProps !== null && overlayProps !== void 0 && overlayProps.portalContainerName);
58
+ const cssAnchorPositioning = cssAnchorPositioningFlag && supportsNativeCSSAnchorPositioning && !(overlayProps !== null && overlayProps !== void 0 && overlayProps.portalContainerName) && !(cssAnchorPositioningSettings !== null && cssAnchorPositioningSettings !== void 0 && cssAnchorPositioningSettings.disable);
58
59
  // Only use Popover API when both CSS anchor positioning is enabled AND renderAs is true
59
60
  const shouldRenderAsPopover = cssAnchorPositioning && renderAs === 'popover';
60
61
  const anchorRef = useProvidedRefOrCreate(externalAnchorRef);
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteInput.d.ts","sourceRoot":"","sources":["../../src/Autocomplete/AutocompleteInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqD,MAAM,OAAO,CAAA;AACzE,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAE/F,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAGlD,KAAK,8BAA8B,GAAG;IAEpC,EAAE,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAEtD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAID,QAAA,MAAM,iBAAiB,EAyJlB,8BAA8B,CAAC,OAAO,SAAS,EAAE,8BAA8B,CAAC,CAAA;AAIrF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC7E,eAAe,iBAAiB,CAAA"}
1
+ {"version":3,"file":"AutocompleteInput.d.ts","sourceRoot":"","sources":["../../src/Autocomplete/AutocompleteInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAqD,MAAM,OAAO,CAAA;AACzE,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAE/F,OAAO,SAAS,MAAM,cAAc,CAAA;AAEpC,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAGlD,KAAK,8BAA8B,GAAG;IAEpC,EAAE,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAEtD;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAID,QAAA,MAAM,iBAAiB,EA2KlB,8BAA8B,CAAC,OAAO,SAAS,EAAE,8BAA8B,CAAC,CAAA;AAIrF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC7E,eAAe,iBAAiB,CAAA"}
@@ -56,9 +56,17 @@ const AutocompleteInput = /*#__PURE__*/React.forwardRef(({
56
56
  safeSetTimeout(() => {
57
57
  if (document.activeElement !== inputRef.current) {
58
58
  setShowMenu(false);
59
+
60
+ // Reset the input's value to the text the user actually typed rather than leaving the
61
+ // inline autocomplete suggestion in place. This keeps the blur behavior consistent with
62
+ // pressing Escape, so deleting characters off a selection and then clicking away does not
63
+ // silently restore the full suggestion. See https://github.com/primer/react/issues/4275
64
+ if (inputRef.current && autocompleteSuggestion && inputRef.current.value !== inputValue) {
65
+ inputRef.current.value = inputValue;
66
+ }
59
67
  }
60
68
  }, 0);
61
- }, [onBlur, setShowMenu, inputRef, safeSetTimeout]);
69
+ }, [onBlur, setShowMenu, inputRef, safeSetTimeout, autocompleteSuggestion, inputValue]);
62
70
  const handleInputChange = event => {
63
71
  onChange && onChange(event);
64
72
  setInputValue(event.currentTarget.value);
@@ -110,7 +118,11 @@ const AutocompleteInput = /*#__PURE__*/React.forwardRef(({
110
118
  // TODO: fix bug where this function prevents `onChange` from being triggered if the highlighted item text
111
119
  // is the same as what I'm typing
112
120
  // e.g.: typing 'tw' highlights 'two', but when I 'two', the text input change does not get triggered
113
- if (highlightRemainingText && autocompleteSuggestion && (inputValue || isMenuDirectlyActivated)) {
121
+ // Only apply the inline autocomplete suggestion while the input is focused. Without this guard,
122
+ // the suggestion can be re-applied to the DOM after the input is blurred, which would restore
123
+ // the full suggestion the user was editing away from. See https://github.com/primer/react/issues/4275
124
+ const isInputFocused = document.activeElement === inputRef.current;
125
+ if (isInputFocused && highlightRemainingText && autocompleteSuggestion && (inputValue || isMenuDirectlyActivated)) {
114
126
  inputRef.current.value = autocompleteSuggestion;
115
127
  if (autocompleteSuggestion.toLowerCase().indexOf(inputValue.toLowerCase()) === 0) {
116
128
  inputRef.current.setSelectionRange(inputValue.length, autocompleteSuggestion.length);
@@ -0,0 +1,2 @@
1
+ .prc-Card-Card-pYjuL{background-color:var(--bgColor-default,#fff);border:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,#d1d9e0);box-shadow:var(--shadow-resting-small,0 1px 1px 0 #1f23280a,0 1px 2px 0 #1f232808);display:grid;gap:var(--stack-gap-normal,1rem);grid-auto-rows:max-content auto;overflow:hidden;position:relative}.prc-Card-Card-pYjuL[data-border-radius=large]{border-radius:var(--borderRadius-large,.75rem)}.prc-Card-Card-pYjuL[data-border-radius=medium]{border-radius:var(--borderRadius-medium,.375rem)}.prc-Card-Card-pYjuL[data-padding=normal]{padding:var(--stack-padding-spacious,1.5rem)}.prc-Card-Card-pYjuL[data-padding=condensed]{padding:var(--stack-padding-condensed,.5rem)}.prc-Card-Card-pYjuL[data-padding=none]{padding:0}.prc-Card-Card-pYjuL[data-layout=compact]{align-items:flex-start;display:flex;gap:var(--stack-gap-condensed,.5rem)}.prc-Card-Card-pYjuL[data-layout=compact][data-padding=normal]{padding:var(--stack-padding-normal,1rem)}.prc-Card-CardHeader-P5Qbb{display:block;height:auto;width:100%}.prc-Card-Card-pYjuL:where([data-layout=compact]) .prc-Card-CardHeader-P5Qbb{flex:0 0 auto;width:auto}.prc-Card-CardHeaderEdgeToEdge-3yCqT{margin-left:calc(var(--stack-padding-spacious,1.5rem)*-1);margin-right:calc(var(--stack-padding-spacious,1.5rem)*-1);margin-top:calc(var(--stack-padding-spacious,1.5rem)*-1);width:calc(100% + var(--stack-padding-spacious,1.5rem)*2)}.prc-Card-CardImage-2M8DM{display:block;height:auto;width:100%}.prc-Card-CardIcon-mIMfj{align-items:center;color:var(--fgColor-muted,#59636e);display:flex;justify-content:flex-start}.prc-Card-Card-pYjuL:where([data-layout=default]) .prc-Card-CardIcon-mIMfj{background-color:var(--bgColor-muted,#f6f8fa);border-radius:var(--borderRadius-medium,.375rem);height:var(--base-size-32,2rem);justify-content:center;width:var(--base-size-32,2rem)}.prc-Card-CardBody-W1o-l{display:grid;gap:var(--stack-gap-normal,1rem)}.prc-Card-Card-pYjuL:where([data-layout=compact]) .prc-Card-CardBody-W1o-l{flex:1 1 auto}.prc-Card-CardContent-omZDS{display:grid;gap:var(--stack-gap-condensed,.5rem)}.prc-Card-CardHeading-3HXyS{color:var(--fgColor-default,#1f2328);font: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");margin:0}.prc-Card-Card-pYjuL:where([data-layout=compact]) .prc-Card-CardHeading-3HXyS{font-size:var(--text-body-size-medium,.875rem);position:relative;top:calc(var(--base-size-4,.25rem)*-1)}.prc-Card-CardDescription-MnJ3F{margin:0}.prc-Card-CardDescription-MnJ3F,.prc-Card-CardMetadataContainer-K-UlH{color:var(--fgColor-muted,#59636e);font:var(--text-body-shorthand-medium,400 .875rem/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji")}.prc-Card-CardMetadataContainer-K-UlH{align-items:center;display:flex;gap:var(--stack-gap-normal,1rem)}.prc-Card-CardMetadataItem-ellY9{align-items:center;display:flex;font:var(--text-body-shorthand-small,400 .75rem/1.625 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji");gap:var(--stack-gap-condensed,.5rem)}.prc-Card-CardAction-VtI49{position:absolute;right:var(--base-size-16,1rem);top:var(--base-size-16,1rem);z-index:1}
2
+ /*# sourceMappingURL=Card-59b77d05.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Card/Card.module.css.js"],"names":[],"mappings":"AAAA,qBAOE,4CAAwC,CAFxC,gFAAgE,CAChE,kFAAuC,CALvC,YAAa,CAOb,gCAA4B,CAJ5B,+BAAgC,CADhC,eAAgB,CADhB,iBAwCF,CAhCE,+CACE,8CACF,CAEA,gDACE,gDACF,CAEA,0CAEE,4CACF,CAEA,6CAEE,4CACF,CAEA,wCACE,SACF,CAEA,0CAEE,sBAAuB,CADvB,YAAa,CAEb,oCACF,CAEA,+DAEE,wCACF,CAGF,2BACE,aAAc,CAEd,WAAY,CADZ,UAOF,CAJE,6EACE,aAAc,CACd,UACF,CAGF,qCAIE,yDAAqD,CADrD,0DAAsD,CADtD,wDAAoD,CAGpD,yDAEF,CAEA,0BACE,aAAc,CAEd,WAAY,CADZ,UAEF,CAEA,yBAEE,kBAAmB,CAEnB,kCAA2B,CAH3B,YAAa,CAEb,0BAUF,CAPE,2EAKE,6CAAsC,CADtC,gDAAyC,CADzC,+BAA2B,CAF3B,sBAAuB,CACvB,8BAIF,CAGF,yBACE,YAAa,CACb,gCAKF,CAHE,2EACE,aACF,CAGF,4BACE,YAAa,CACb,oCACF,CAEA,4BAEE,oCAA6B,CAD7B,2KAAuC,CAEvC,QAOF,CALE,8EAGE,8CAAuC,CAFvC,iBAAkB,CAClB,sCAEF,CAGF,gCAGE,QACF,CAEA,sEAJE,kCAA2B,CAD3B,8KAWF,CANA,sCAEE,kBAAmB,CADnB,YAAa,CAEb,gCAGF,CAEA,iCAEE,kBAAmB,CADnB,YAAa,CAGb,8KAAsC,CADtC,oCAEF,CAEA,2BACE,iBAAkB,CAElB,8BAA0B,CAD1B,4BAAwB,CAExB,SACF","file":"Card-59b77d05.css","sourcesContent":[".Card {\n display: grid;\n position: relative;\n overflow: hidden;\n grid-auto-rows: max-content auto;\n border: var(--borderWidth-thin) solid var(--borderColor-default);\n box-shadow: var(--shadow-resting-small);\n background-color: var(--bgColor-default);\n gap: var(--stack-gap-normal);\n\n &[data-border-radius='large'] {\n border-radius: var(--borderRadius-large);\n }\n\n &[data-border-radius='medium'] {\n border-radius: var(--borderRadius-medium);\n }\n\n &[data-padding='normal'] {\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--stack-padding-spacious);\n }\n\n &[data-padding='condensed'] {\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--stack-padding-condensed);\n }\n\n &[data-padding='none'] {\n padding: 0;\n }\n\n &[data-layout='compact'] {\n display: flex;\n align-items: flex-start;\n gap: var(--stack-gap-condensed);\n }\n\n &[data-layout='compact'][data-padding='normal'] {\n /* stylelint-disable-next-line primer/spacing */\n padding: var(--stack-padding-normal);\n }\n}\n\n.CardHeader {\n display: block;\n width: 100%;\n height: auto;\n\n .Card:where([data-layout='compact']) & {\n flex: 0 0 auto;\n width: auto;\n }\n}\n\n.CardHeaderEdgeToEdge {\n /* stylelint-disable primer/spacing */\n margin-top: calc(-1 * var(--stack-padding-spacious));\n margin-right: calc(-1 * var(--stack-padding-spacious));\n margin-left: calc(-1 * var(--stack-padding-spacious));\n width: calc(100% + 2 * var(--stack-padding-spacious));\n /* stylelint-enable primer/spacing */\n}\n\n.CardImage {\n display: block;\n width: 100%;\n height: auto;\n}\n\n.CardIcon {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n color: var(--fgColor-muted);\n\n .Card:where([data-layout='default']) & {\n justify-content: center;\n width: var(--base-size-32);\n height: var(--base-size-32);\n border-radius: var(--borderRadius-medium);\n background-color: var(--bgColor-muted);\n }\n}\n\n.CardBody {\n display: grid;\n gap: var(--stack-gap-normal);\n\n .Card:where([data-layout='compact']) & {\n flex: 1 1 auto;\n }\n}\n\n.CardContent {\n display: grid;\n gap: var(--stack-gap-condensed);\n}\n\n.CardHeading {\n font: var(--text-title-shorthand-small);\n color: var(--fgColor-default);\n margin: 0;\n\n .Card:where([data-layout='compact']) & {\n position: relative;\n top: calc(-1 * var(--base-size-4));\n font-size: var(--text-body-size-medium);\n }\n}\n\n.CardDescription {\n font: var(--text-body-shorthand-medium);\n color: var(--fgColor-muted);\n margin: 0;\n}\n\n.CardMetadataContainer {\n display: flex;\n align-items: center;\n gap: var(--stack-gap-normal);\n font: var(--text-body-shorthand-medium);\n color: var(--fgColor-muted);\n}\n\n.CardMetadataItem {\n display: flex;\n align-items: center;\n gap: var(--stack-gap-condensed);\n font: var(--text-body-shorthand-small);\n}\n\n.CardAction {\n position: absolute;\n top: var(--base-size-16);\n right: var(--base-size-16);\n z-index: 1;\n}\n"]}
@@ -8,6 +8,12 @@ export type CardProps<As extends CardAs = 'div'> = PolymorphicProps<As, 'div', {
8
8
  padding?: 'none' | 'condensed' | 'normal';
9
9
  /** Border radius. @default 'large' */
10
10
  borderRadius?: 'medium' | 'large';
11
+ /**
12
+ * Layout of the card. `compact` uses tighter spacing, removes the icon
13
+ * background container, and renders a smaller title.
14
+ * @default 'default'
15
+ */
16
+ layout?: 'default' | 'compact';
11
17
  /**
12
18
  * Card contents. Provide either `Card.*` subcomponents (e.g. `Card.Heading`,
13
19
  * `Card.Description`, `Card.Metadata`) or custom content.
@@ -67,6 +73,12 @@ declare const CardImpl: <As extends CardAs>(props: (React.ComponentPropsWithRef<
67
73
  padding?: "none" | "condensed" | "normal";
68
74
  /** Border radius. @default 'large' */
69
75
  borderRadius?: "medium" | "large";
76
+ /**
77
+ * Layout of the card. `compact` uses tighter spacing, removes the icon
78
+ * background container, and renders a smaller title.
79
+ * @default 'default'
80
+ */
81
+ layout?: "default" | "compact";
70
82
  /**
71
83
  * Card contents. Provide either `Card.*` subcomponents (e.g. `Card.Heading`,
72
84
  * `Card.Description`, `Card.Metadata`) or custom content.
@@ -79,6 +91,12 @@ declare const CardImpl: <As extends CardAs>(props: (React.ComponentPropsWithRef<
79
91
  padding?: "none" | "condensed" | "normal";
80
92
  /** Border radius. @default 'large' */
81
93
  borderRadius?: "medium" | "large";
94
+ /**
95
+ * Layout of the card. `compact` uses tighter spacing, removes the icon
96
+ * background container, and renders a smaller title.
97
+ * @default 'default'
98
+ */
99
+ layout?: "default" | "compact";
82
100
  /**
83
101
  * Card contents. Provide either `Card.*` subcomponents (e.g. `Card.Heading`,
84
102
  * `Card.Description`, `Card.Metadata`) or custom content.
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/Card/Card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/Card/Card.tsx"],"names":[],"mappings":"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"}
package/dist/Card/Card.js CHANGED
@@ -8,18 +8,20 @@ import { jsx, jsxs } from 'react/jsx-runtime';
8
8
 
9
9
  const CardContext = /*#__PURE__*/createContext({});
10
10
  function CardComponent(props, ref) {
11
- const $ = c(67);
11
+ const $ = c(71);
12
12
  const {
13
13
  children,
14
14
  className,
15
15
  padding: t0,
16
16
  borderRadius: t1,
17
- as: t2,
17
+ layout: t2,
18
+ as: t3,
18
19
  ...rest
19
20
  } = props;
20
21
  const padding = t0 === undefined ? "normal" : t0;
21
22
  const borderRadius = t1 === undefined ? "large" : t1;
22
- const as = t2 === undefined ? "div" : t2;
23
+ const layout = t2 === undefined ? "default" : t2;
24
+ const as = t3 === undefined ? "div" : t3;
23
25
  const Component = as;
24
26
  const generatedId = useId();
25
27
  const titleId = as === "section" ? generatedId : undefined;
@@ -34,15 +36,16 @@ function CardComponent(props, ref) {
34
36
  let metadata;
35
37
  let t10;
36
38
  let t11;
37
- let t3;
39
+ let t12;
40
+ let t13;
38
41
  let t4;
39
42
  let t5;
40
43
  let t6;
41
44
  let t7;
42
45
  let t8;
43
46
  let t9;
44
- if ($[0] !== Component || $[1] !== borderRadius || $[2] !== children || $[3] !== className || $[4] !== padding || $[5] !== ref || $[6] !== rest || $[7] !== titleId) {
45
- t11 = Symbol.for("react.early_return_sentinel");
47
+ if ($[0] !== Component || $[1] !== borderRadius || $[2] !== children || $[3] !== className || $[4] !== layout || $[5] !== padding || $[6] !== ref || $[7] !== rest || $[8] !== titleId) {
48
+ t13 = Symbol.for("react.early_return_sentinel");
46
49
  bb0: {
47
50
  let icon = null;
48
51
  let image = null;
@@ -82,89 +85,92 @@ function CardComponent(props, ref) {
82
85
  const hasSlotChildren = icon || image || heading || description || metadata || menu;
83
86
  const isEmpty = !hasSlotChildren && childArray.length === 0;
84
87
  if (isEmpty) {
85
- t11 = null;
88
+ t13 = null;
86
89
  break bb0;
87
90
  }
88
91
  if (!hasSlotChildren) {
89
- let t12;
90
- if ($[23] !== titleId) {
91
- t12 = {
92
+ let t14;
93
+ if ($[25] !== titleId) {
94
+ t14 = {
92
95
  titleId
93
96
  };
94
- $[23] = titleId;
95
- $[24] = t12;
97
+ $[25] = titleId;
98
+ $[26] = t14;
96
99
  } else {
97
- t12 = $[24];
100
+ t14 = $[26];
98
101
  }
99
- let t13;
100
- if ($[25] !== className) {
101
- t13 = clsx(classes.Card, className);
102
- $[25] = className;
103
- $[26] = t13;
102
+ let t15;
103
+ if ($[27] !== className) {
104
+ t15 = clsx(classes.Card, className);
105
+ $[27] = className;
106
+ $[28] = t15;
104
107
  } else {
105
- t13 = $[26];
108
+ t15 = $[28];
106
109
  }
107
- let t14;
108
- if ($[27] !== Component || $[28] !== borderRadius || $[29] !== children || $[30] !== padding || $[31] !== ref || $[32] !== rest || $[33] !== t13) {
109
- t14 = /*#__PURE__*/jsx(Component, {
110
+ let t16;
111
+ if ($[29] !== Component || $[30] !== borderRadius || $[31] !== children || $[32] !== layout || $[33] !== padding || $[34] !== ref || $[35] !== rest || $[36] !== t15) {
112
+ t16 = /*#__PURE__*/jsx(Component, {
110
113
  ref: ref,
111
- className: t13,
114
+ className: t15,
112
115
  "data-component": "Card",
113
116
  "data-padding": padding,
114
117
  "data-border-radius": borderRadius,
118
+ "data-layout": layout,
115
119
  ...rest,
116
120
  children: children
117
121
  });
118
- $[27] = Component;
119
- $[28] = borderRadius;
120
- $[29] = children;
121
- $[30] = padding;
122
- $[31] = ref;
123
- $[32] = rest;
124
- $[33] = t13;
125
- $[34] = t14;
122
+ $[29] = Component;
123
+ $[30] = borderRadius;
124
+ $[31] = children;
125
+ $[32] = layout;
126
+ $[33] = padding;
127
+ $[34] = ref;
128
+ $[35] = rest;
129
+ $[36] = t15;
130
+ $[37] = t16;
126
131
  } else {
127
- t14 = $[34];
132
+ t16 = $[37];
128
133
  }
129
- let t15;
130
- if ($[35] !== t12 || $[36] !== t14) {
131
- t15 = /*#__PURE__*/jsx(CardContext.Provider, {
132
- value: t12,
133
- children: t14
134
+ let t17;
135
+ if ($[38] !== t14 || $[39] !== t16) {
136
+ t17 = /*#__PURE__*/jsx(CardContext.Provider, {
137
+ value: t14,
138
+ children: t16
134
139
  });
135
- $[35] = t12;
136
- $[36] = t14;
137
- $[37] = t15;
140
+ $[38] = t14;
141
+ $[39] = t16;
142
+ $[40] = t17;
138
143
  } else {
139
- t15 = $[37];
144
+ t17 = $[40];
140
145
  }
141
- t11 = t15;
146
+ t13 = t17;
142
147
  break bb0;
143
148
  }
144
149
  T1 = CardContext.Provider;
145
- if ($[38] !== titleId) {
146
- t10 = {
150
+ if ($[41] !== titleId) {
151
+ t12 = {
147
152
  titleId
148
153
  };
149
- $[38] = titleId;
150
- $[39] = t10;
154
+ $[41] = titleId;
155
+ $[42] = t12;
151
156
  } else {
152
- t10 = $[39];
157
+ t12 = $[42];
153
158
  }
154
159
  T0 = Component;
155
- t3 = ref;
156
- if ($[40] !== className) {
157
- t4 = clsx(classes.Card, className);
158
- $[40] = className;
159
- $[41] = t4;
160
+ t4 = ref;
161
+ if ($[43] !== className) {
162
+ t5 = clsx(classes.Card, className);
163
+ $[43] = className;
164
+ $[44] = t5;
160
165
  } else {
161
- t4 = $[41];
166
+ t5 = $[44];
162
167
  }
163
- t5 = "Card";
164
- t6 = padding;
165
- t7 = borderRadius;
166
- t8 = rest;
167
- t9 = (image || icon) && /*#__PURE__*/jsx("div", {
168
+ t6 = "Card";
169
+ t7 = padding;
170
+ t8 = borderRadius;
171
+ t9 = layout;
172
+ t10 = rest;
173
+ t11 = (image || icon) && /*#__PURE__*/jsx("div", {
168
174
  className: clsx(classes.CardHeader, image && classes.CardHeaderEdgeToEdge),
169
175
  children: image || icon
170
176
  });
@@ -173,130 +179,135 @@ function CardComponent(props, ref) {
173
179
  $[1] = borderRadius;
174
180
  $[2] = children;
175
181
  $[3] = className;
176
- $[4] = padding;
177
- $[5] = ref;
178
- $[6] = rest;
179
- $[7] = titleId;
180
- $[8] = T0;
181
- $[9] = T1;
182
- $[10] = description;
183
- $[11] = heading;
184
- $[12] = menu;
185
- $[13] = metadata;
186
- $[14] = t10;
187
- $[15] = t11;
188
- $[16] = t3;
189
- $[17] = t4;
190
- $[18] = t5;
191
- $[19] = t6;
192
- $[20] = t7;
193
- $[21] = t8;
194
- $[22] = t9;
182
+ $[4] = layout;
183
+ $[5] = padding;
184
+ $[6] = ref;
185
+ $[7] = rest;
186
+ $[8] = titleId;
187
+ $[9] = T0;
188
+ $[10] = T1;
189
+ $[11] = description;
190
+ $[12] = heading;
191
+ $[13] = menu;
192
+ $[14] = metadata;
193
+ $[15] = t10;
194
+ $[16] = t11;
195
+ $[17] = t12;
196
+ $[18] = t13;
197
+ $[19] = t4;
198
+ $[20] = t5;
199
+ $[21] = t6;
200
+ $[22] = t7;
201
+ $[23] = t8;
202
+ $[24] = t9;
195
203
  } else {
196
- T0 = $[8];
197
- T1 = $[9];
198
- description = $[10];
199
- heading = $[11];
200
- menu = $[12];
201
- metadata = $[13];
202
- t10 = $[14];
203
- t11 = $[15];
204
- t3 = $[16];
205
- t4 = $[17];
206
- t5 = $[18];
207
- t6 = $[19];
208
- t7 = $[20];
209
- t8 = $[21];
210
- t9 = $[22];
204
+ T0 = $[9];
205
+ T1 = $[10];
206
+ description = $[11];
207
+ heading = $[12];
208
+ menu = $[13];
209
+ metadata = $[14];
210
+ t10 = $[15];
211
+ t11 = $[16];
212
+ t12 = $[17];
213
+ t13 = $[18];
214
+ t4 = $[19];
215
+ t5 = $[20];
216
+ t6 = $[21];
217
+ t7 = $[22];
218
+ t8 = $[23];
219
+ t9 = $[24];
211
220
  }
212
- if (t11 !== Symbol.for("react.early_return_sentinel")) {
213
- return t11;
221
+ if (t13 !== Symbol.for("react.early_return_sentinel")) {
222
+ return t13;
214
223
  }
215
- let t12;
216
- if ($[42] !== description || $[43] !== heading) {
217
- t12 = /*#__PURE__*/jsxs("div", {
224
+ let t14;
225
+ if ($[45] !== description || $[46] !== heading) {
226
+ t14 = /*#__PURE__*/jsxs("div", {
218
227
  className: classes.CardContent,
219
228
  children: [heading, description]
220
229
  });
221
- $[42] = description;
222
- $[43] = heading;
223
- $[44] = t12;
230
+ $[45] = description;
231
+ $[46] = heading;
232
+ $[47] = t14;
224
233
  } else {
225
- t12 = $[44];
234
+ t14 = $[47];
226
235
  }
227
- let t13;
228
- if ($[45] !== metadata) {
229
- t13 = metadata ? /*#__PURE__*/jsx("div", {
236
+ let t15;
237
+ if ($[48] !== metadata) {
238
+ t15 = metadata ? /*#__PURE__*/jsx("div", {
230
239
  className: classes.CardMetadataContainer,
231
240
  children: metadata
232
241
  }) : null;
233
- $[45] = metadata;
234
- $[46] = t13;
242
+ $[48] = metadata;
243
+ $[49] = t15;
235
244
  } else {
236
- t13 = $[46];
245
+ t15 = $[49];
237
246
  }
238
- let t14;
239
- if ($[47] !== t12 || $[48] !== t13) {
240
- t14 = /*#__PURE__*/jsxs("div", {
247
+ let t16;
248
+ if ($[50] !== t14 || $[51] !== t15) {
249
+ t16 = /*#__PURE__*/jsxs("div", {
241
250
  className: classes.CardBody,
242
- children: [t12, t13]
251
+ children: [t14, t15]
243
252
  });
244
- $[47] = t12;
245
- $[48] = t13;
246
- $[49] = t14;
253
+ $[50] = t14;
254
+ $[51] = t15;
255
+ $[52] = t16;
247
256
  } else {
248
- t14 = $[49];
257
+ t16 = $[52];
249
258
  }
250
- let t15;
251
- if ($[50] !== menu) {
252
- t15 = menu ? /*#__PURE__*/jsx("div", {
259
+ let t17;
260
+ if ($[53] !== menu) {
261
+ t17 = menu ? /*#__PURE__*/jsx("div", {
253
262
  className: classes.CardAction,
254
263
  children: menu
255
264
  }) : null;
256
- $[50] = menu;
257
- $[51] = t15;
265
+ $[53] = menu;
266
+ $[54] = t17;
258
267
  } else {
259
- t15 = $[51];
268
+ t17 = $[54];
260
269
  }
261
- let t16;
262
- if ($[52] !== T0 || $[53] !== t14 || $[54] !== t15 || $[55] !== t3 || $[56] !== t4 || $[57] !== t5 || $[58] !== t6 || $[59] !== t7 || $[60] !== t8 || $[61] !== t9) {
263
- t16 = /*#__PURE__*/jsxs(T0, {
264
- ref: t3,
265
- className: t4,
266
- "data-component": t5,
267
- "data-padding": t6,
268
- "data-border-radius": t7,
269
- ...t8,
270
- children: [t9, t14, t15]
270
+ let t18;
271
+ if ($[55] !== T0 || $[56] !== t10 || $[57] !== t11 || $[58] !== t16 || $[59] !== t17 || $[60] !== t4 || $[61] !== t5 || $[62] !== t6 || $[63] !== t7 || $[64] !== t8 || $[65] !== t9) {
272
+ t18 = /*#__PURE__*/jsxs(T0, {
273
+ ref: t4,
274
+ className: t5,
275
+ "data-component": t6,
276
+ "data-padding": t7,
277
+ "data-border-radius": t8,
278
+ "data-layout": t9,
279
+ ...t10,
280
+ children: [t11, t16, t17]
271
281
  });
272
- $[52] = T0;
273
- $[53] = t14;
274
- $[54] = t15;
275
- $[55] = t3;
276
- $[56] = t4;
277
- $[57] = t5;
278
- $[58] = t6;
279
- $[59] = t7;
280
- $[60] = t8;
281
- $[61] = t9;
282
- $[62] = t16;
282
+ $[55] = T0;
283
+ $[56] = t10;
284
+ $[57] = t11;
285
+ $[58] = t16;
286
+ $[59] = t17;
287
+ $[60] = t4;
288
+ $[61] = t5;
289
+ $[62] = t6;
290
+ $[63] = t7;
291
+ $[64] = t8;
292
+ $[65] = t9;
293
+ $[66] = t18;
283
294
  } else {
284
- t16 = $[62];
295
+ t18 = $[66];
285
296
  }
286
- let t17;
287
- if ($[63] !== T1 || $[64] !== t10 || $[65] !== t16) {
288
- t17 = /*#__PURE__*/jsx(T1, {
289
- value: t10,
290
- children: t16
297
+ let t19;
298
+ if ($[67] !== T1 || $[68] !== t12 || $[69] !== t18) {
299
+ t19 = /*#__PURE__*/jsx(T1, {
300
+ value: t12,
301
+ children: t18
291
302
  });
292
- $[63] = T1;
293
- $[64] = t10;
294
- $[65] = t16;
295
- $[66] = t17;
303
+ $[67] = T1;
304
+ $[68] = t12;
305
+ $[69] = t18;
306
+ $[70] = t19;
296
307
  } else {
297
- t17 = $[66];
308
+ t19 = $[70];
298
309
  }
299
- return t17;
310
+ return t19;
300
311
  }
301
312
  CardComponent.displayName = 'Card';
302
313
  const CardImpl = fixedForwardRef(CardComponent);
@@ -1,4 +1,4 @@
1
- import './Card-d8a02dd9.css';
1
+ import './Card-59b77d05.css';
2
2
 
3
3
  var classes = {"Card":"prc-Card-Card-pYjuL","CardHeader":"prc-Card-CardHeader-P5Qbb","CardHeaderEdgeToEdge":"prc-Card-CardHeaderEdgeToEdge-3yCqT","CardImage":"prc-Card-CardImage-2M8DM","CardIcon":"prc-Card-CardIcon-mIMfj","CardBody":"prc-Card-CardBody-W1o-l","CardContent":"prc-Card-CardContent-omZDS","CardHeading":"prc-Card-CardHeading-3HXyS","CardDescription":"prc-Card-CardDescription-MnJ3F","CardMetadataContainer":"prc-Card-CardMetadataContainer-K-UlH","CardMetadataItem":"prc-Card-CardMetadataItem-ellY9","CardAction":"prc-Card-CardAction-VtI49"};
4
4