@epam/ai-dial-share 1.2.0-dev.99 → 1.3.0-dev.5

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.
@@ -1,4 +1,4 @@
1
- import { FC, KeyboardEvent, RefObject } from 'react';
1
+ import { CSSProperties, FC } from 'react';
2
2
  import { ShareLinkAccess } from '../../types/share';
3
3
  /** Props for {@link AccessControl}. */
4
4
  interface AccessControlProps {
@@ -22,20 +22,14 @@ interface AccessControlProps {
22
22
  onOpenChange: (next: boolean) => void;
23
23
  /** Called when the user selects a different access level. */
24
24
  onAccessChange: (access: ShareLinkAccess[]) => void;
25
- /** Arrow-key navigation handler for the open menu. */
26
- onMenuKeyDown: (e: KeyboardEvent<HTMLDivElement>) => void;
27
- /** Ref attached to the dropdown trigger button, so focus can return to it on close. */
28
- triggerRef: RefObject<HTMLButtonElement | null>;
29
- /** Ref attached to the menu container, so the popover's Tab-trap can find its items. */
30
- menuRef: RefObject<HTMLDivElement | null>;
25
+ /** Inline style for the menu panel, which renders in a portal outside the popover — the channel for its custom properties. */
26
+ menuStyle?: CSSProperties;
31
27
  /** CSS class applied to the primary row text. Defaults to `'dial-small-semi-text'`. */
32
28
  titleClassName?: string;
33
29
  /** CSS class applied to the secondary row text. Defaults to `'dial-small-text'`. */
34
30
  subtitleClassName?: string;
35
31
  /** CSS class applied to the access trigger label. Defaults to `'dial-small-semi-text'`. */
36
32
  accessTriggerLabelClassName?: string;
37
- /** CSS class applied to each access menu item label. Defaults to `'dial-small-text'`. */
38
- accessMenuItemLabelClassName?: string;
39
33
  }
40
34
  /** "Anyone with the link" row: icon, title/subtitle, and an optional Can view/Can edit access-level control. */
41
35
  export declare const AccessControl: FC<AccessControlProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"AccessControl.d.ts","sourceRoot":"","sources":["../../../src/components/AccessControl/AccessControl.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,uCAAuC;AACvC,UAAU,kBAAkB;IAC1B,qDAAqD;IACrD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,mFAAmF;IACnF,aAAa,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,6DAA6D;IAC7D,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IACpD,sDAAsD;IACtD,aAAa,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IAC1D,uFAAuF;IACvF,UAAU,EAAE,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAChD,wFAAwF;IACxF,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC1C,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,yFAAyF;IACzF,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,gHAAgH;AAChH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA+JhD,CAAC"}
1
+ {"version":3,"file":"AccessControl.d.ts","sourceRoot":"","sources":["../../../src/components/AccessControl/AccessControl.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,uCAAuC;AACvC,UAAU,kBAAkB;IAC1B,qDAAqD;IACrD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,mFAAmF;IACnF,aAAa,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,eAAe,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,6DAA6D;IAC7D,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IACpD,8HAA8H;IAC9H,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2FAA2F;IAC3F,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,gHAAgH;AAChH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAqHhD,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { FC } from 'react';
2
+ /** Props for {@link QrActions}. */
3
+ interface QrActionsProps {
4
+ /** The share URL, copied as text when the image cannot be. */
5
+ url: string;
6
+ /** Returns the rendered QR `<svg>`, or `null` before it has mounted. */
7
+ getSvg: () => SVGSVGElement | null;
8
+ /** Copy button default label. */
9
+ copyLabel: string;
10
+ /** Copy button label after copying, also announced to screen readers. */
11
+ copiedLabel: string;
12
+ /** Download button label. */
13
+ downloadLabel: string;
14
+ /** File name for the downloaded PNG. */
15
+ downloadFileName: string;
16
+ }
17
+ /** Copy-as-image and download-as-PNG actions shown under the share popover's QR code. */
18
+ export declare const QrActions: FC<QrActionsProps>;
19
+ export {};
20
+ //# sourceMappingURL=QrActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QrActions.d.ts","sourceRoot":"","sources":["../../../src/components/QrActions/QrActions.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,EAAE,EAA+B,MAAM,OAAO,CAAC;AAU7D,mCAAmC;AACnC,UAAU,cAAc;IACtB,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,wEAAwE;IACxE,MAAM,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IACnC,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,yFAAyF;AACzF,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAsGxC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { FC } from 'react';
1
+ import { FC, Ref } from 'react';
2
2
  /** All user-visible strings in {@link QrCodeProps}. */
3
3
  export interface QrCodeLabels {
4
4
  /** Accessible label describing the QR code image. */
@@ -26,6 +26,8 @@ export interface QrCodeProps {
26
26
  labels: QrCodeLabels;
27
27
  /** Typography/color utility-class overrides for the frame and QR fill. */
28
28
  styles?: QrCodeStyles;
29
+ /** Receives the rendered QR `<svg>` element, e.g. to rasterize the exact code shown. */
30
+ svgRef?: Ref<SVGSVGElement>;
29
31
  }
30
32
  /** QR code rendering of the share link, scannable to open it on another device. */
31
33
  export declare const QrCode: FC<QrCodeProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"QrCode.d.ts","sourceRoot":"","sources":["../../../src/components/QrCode/QrCode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAI3B,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,+GAA+G;IAC/G,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,mFAAmF;AACnF,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA6BlC,CAAC"}
1
+ {"version":3,"file":"QrCode.d.ts","sourceRoot":"","sources":["../../../src/components/QrCode/QrCode.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAA6B,GAAG,EAAiB,MAAM,OAAO,CAAC;AAa/E,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mEAAmE;AACnE,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,+GAA+G;IAC/G,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,wFAAwF;IACxF,MAAM,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC7B;AAED,mFAAmF;AACnF,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA8BlC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SharePopover.d.ts","sourceRoot":"","sources":["../../../src/components/SharePopover/SharePopover.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;;AAuT1E,wBAAkC"}
1
+ {"version":3,"file":"SharePopover.d.ts","sourceRoot":"","sources":["../../../src/components/SharePopover/SharePopover.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;;AAiT1E,wBAAkC"}
package/index.css CHANGED
@@ -1,2 +1,2 @@
1
- ._accessTriggerBtn_1ryi2_1{background-color:var(--shp-access-trigger-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--shp-access-trigger-border,transparent)}@media (hover:hover){button._accessTriggerBtn_1ryi2_1:hover{border-color:var(--shp-access-trigger-border-hover,var(--stroke-accent,#1d4ed8))}}button._accessTriggerBtn_1ryi2_1:focus-visible{outline:1px solid var(--shp-access-trigger-border-focus,var(--stroke-accent,#1d4ed8));outline-offset:-1px;border-color:#0000}._accessTriggerBtnOpen_1ryi2_17{border-color:var(--shp-access-trigger-border-focus,var(--stroke-accent,#1d4ed8))}._accessTriggerLabel_1ryi2_21{color:var(--shp-access-trigger-text,var(--text-primary,#161b2d))}._title_1ryi2_25{color:var(--shp-title-text,var(--text-primary,#161b2d))}._linkIconBadge_1ryi2_29{background:var(--shp-link-icon-bg,var(--bg-control-accent-alpha-active,#2764d933));color:var(--shp-link-icon-text,var(--text-accent,#1d4ed8))}._anyoneWithLinkTitle_1ryi2_34{color:var(--shp-anyone-title,var(--text-primary,#161b2d))}._anyoneWithLinkSubtitle_1ryi2_38{color:var(--shp-anyone-subtitle,var(--text-secondary,#57647a))}._accessTriggerChevron_1ryi2_42{color:var(--shp-access-chevron,var(--text-tertiary,#848e9c));transition:transform .15s}@media (prefers-reduced-motion:reduce){._accessTriggerChevron_1ryi2_42{transition:none}}._accessMenuItemLabel_1ryi2_55{color:var(--shp-menu-item-label,var(--text-primary,#161b2d))}._linkRow_1ryi2_59{background:var(--shp-link-row-bg,var(--bg-layer-base,#f5f7fa))}._linkRow_1ryi2_59 input{color:var(--shp-link-text,var(--text-primary,#161b2d))!important}._errorText_1ryi2_66{color:var(--shp-error-text,var(--text-error,#ae2f2f))}._note_1ryi2_70{color:var(--shp-note-text,var(--text-secondary,#57647a))}._divider_1ryi2_74{background:var(--shp-divider,var(--stroke-tertiary,#e0e6f0))}._container_hzzl6_1{border-color:var(--qr-border,var(--stroke-tertiary,#e0e6f0));background:var(--qr-bg,var(--bg-layer-sunken,#eef1f7))}._qrColor_hzzl6_6{color:var(--qr-color,var(--text-primary,#161b2d))}
2
- /*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.static{position:static}.-mt-1{margin-top:-.25rem}.-mt-1\.5{margin-top:-.375rem}.ms-auto{margin-inline-start:auto}.flex{display:flex}.size-40{height:10rem;width:10rem}.size-8{height:2rem;width:2rem}.size-full{height:100%;width:100%}.h-10{height:2.5rem}.h-px{height:1px}.w-96{width:24rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[160px\]{min-width:160px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-transparent{background-color:transparent}.p-3{padding:.75rem}.px-0{padding-left:0;padding-right:0}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-6{padding-top:1.5rem}.pb-6,.py-6{padding-bottom:1.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-transform{transition-duration:.15s}.rtl\:scale-x-\[-1\]:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
1
+ ._accessTriggerBtn_3r1q2_2{background-color:var(--shp-access-trigger-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--shp-access-trigger-border,transparent)}button._accessTriggerBtn_3r1q2_2[aria-expanded=true]{border-color:var(--shp-access-trigger-border-focus,var(--stroke-accent,#1d4ed8))}@media (hover:hover){button._accessTriggerBtn_3r1q2_2:hover{background-color:var(--shp-access-trigger-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--shp-access-trigger-border-hover,var(--stroke-accent,#1d4ed8))}}button._accessTriggerBtn_3r1q2_2:active{background-color:var(--shp-access-trigger-bg,var(--bg-layer-raised,#fcfcfc))}button._accessTriggerBtn_3r1q2_2>svg{color:var(--shp-access-chevron,var(--text-tertiary,#848e9c));transition:transform .15s}@media (prefers-reduced-motion:reduce){button._accessTriggerBtn_3r1q2_2>svg{transition:none}}button._accessTriggerBtn_3r1q2_2:focus-visible{outline:1px solid var(--shp-access-trigger-border-focus,var(--stroke-accent,#1d4ed8));outline-offset:-1px;border-color:#0000}._accessTriggerLabel_3r1q2_40{color:var(--shp-access-trigger-text,var(--text-primary,#161b2d))}._title_3r1q2_44{color:var(--shp-title-text,var(--text-primary,#161b2d))}._linkIconBadge_3r1q2_48{background:var(--shp-link-icon-bg,var(--bg-control-accent-alpha-active,#2764d933));color:var(--shp-link-icon-text,var(--text-accent,#1d4ed8))}._anyoneWithLinkTitle_3r1q2_53{color:var(--shp-anyone-title,var(--text-primary,#161b2d))}._anyoneWithLinkSubtitle_3r1q2_57{color:var(--shp-anyone-subtitle,var(--text-secondary,#57647a))}._accessMenuItem_3r1q2_66>span{color:var(--shp-menu-item-label,var(--text-primary,#161b2d))}._linkRow_3r1q2_70{background:var(--shp-link-row-bg,var(--bg-layer-base,#f5f7fa))}._linkRow_3r1q2_70 input{color:var(--shp-link-text,var(--text-primary,#161b2d))!important}._errorText_3r1q2_77{color:var(--shp-error-text,var(--text-error,#ae2f2f))}._note_3r1q2_81{color:var(--shp-note-text,var(--text-secondary,#57647a))}._divider_3r1q2_85{background:var(--shp-divider,var(--stroke-tertiary,#e0e6f0))}._container_hzzl6_1{border-color:var(--qr-border,var(--stroke-tertiary,#e0e6f0));background:var(--qr-bg,var(--bg-layer-sunken,#eef1f7))}._qrColor_hzzl6_6{color:var(--qr-color,var(--text-primary,#161b2d))}
2
+ /*$vite$:1*/.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.-mt-1\.5{margin-top:-.375rem}.ms-auto{margin-inline-start:auto}.flex{display:flex}.size-40{height:10rem;width:10rem}.size-8{height:2rem;width:2rem}.size-full{height:100%;width:100%}.h-10{height:2.5rem}.h-px{height:1px}.w-96{width:24rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[160px\]{min-width:160px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.self-center{align-self:center}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-transparent{background-color:transparent}.p-3{padding:.75rem}.px-0{padding-left:0;padding-right:0}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-6{padding-top:1.5rem}.pb-6,.py-6{padding-bottom:1.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--shadow-lg,#2764d914);--tw-shadow-colored:0 8px 44px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}