@alto-avios/alto-ui 5.1.2 → 5.3.0
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.
- package/dist/CalendarDate-uEuHKGse.js +2 -0
- package/dist/CalendarDate-uEuHKGse.js.map +1 -0
- package/dist/{DateField-oLDKE7Lh.js → DateField-rBq9QuR6.js} +4 -4
- package/dist/DateField-rBq9QuR6.js.map +1 -0
- package/dist/DatePicker.module-DlLCFGCM.js +2 -0
- package/dist/DatePicker.module-DlLCFGCM.js.map +1 -0
- package/dist/assets/Accordion.css +1 -1
- package/dist/assets/AviosCurrency.css +1 -1
- package/dist/assets/AviosCurrencyBadge.css +1 -1
- package/dist/assets/AviosCurrencySymbol.css +1 -1
- package/dist/assets/Badge.css +1 -1
- package/dist/assets/BannerSectionContent.css +1 -0
- package/dist/assets/BannerSectionPlectrum.css +1 -0
- package/dist/assets/BoxLink.css +1 -0
- package/dist/assets/Button.css +1 -1
- package/dist/assets/CalloutBanner.css +1 -1
- package/dist/assets/Checkbox.css +1 -1
- package/dist/assets/ClearFieldButton.css +1 -1
- package/dist/assets/Dialog.css +1 -1
- package/dist/assets/ErrorSummary.css +1 -1
- package/dist/assets/IntroSection.css +1 -0
- package/dist/assets/Link.css +1 -1
- package/dist/assets/ProductTile.css +1 -0
- package/dist/assets/Radio.css +1 -1
- package/dist/assets/SelectCard.css +1 -1
- package/dist/assets/Tag.css +1 -1
- package/dist/components/Accordion/Accordion.js +12 -12
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/AviosBadge/AviosBadge.js.map +1 -1
- package/dist/components/AviosCurrency/AviosCurrency.js +4 -4
- package/dist/components/AviosCurrency/AviosCurrency.js.map +1 -1
- package/dist/components/AviosCurrencyBadge/AviosCurrencyBadge.js +2 -2
- package/dist/components/AviosCurrencyBadge/AviosCurrencyBadge.js.map +1 -1
- package/dist/components/AviosCurrencySymbol/AviosCurrencySymbol.js +6 -6
- package/dist/components/AviosCurrencySymbol/AviosCurrencySymbol.js.map +1 -1
- package/dist/components/Badge/Badge.js +2 -2
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/BannerSectionContent/BannerSectionContent.d.ts +31 -0
- package/dist/components/BannerSectionContent/BannerSectionContent.js +5 -0
- package/dist/components/BannerSectionContent/BannerSectionContent.js.map +1 -0
- package/dist/components/BannerSectionContent/index.d.ts +2 -0
- package/dist/components/BannerSectionContent/index.js +2 -0
- package/dist/components/BannerSectionContent/index.js.map +1 -0
- package/dist/components/BannerSectionPlectrum/BannerSectionPlectrum.d.ts +39 -0
- package/dist/components/BannerSectionPlectrum/BannerSectionPlectrum.js +9 -0
- package/dist/components/BannerSectionPlectrum/BannerSectionPlectrum.js.map +1 -0
- package/dist/components/BannerSectionPlectrum/index.d.ts +2 -0
- package/dist/components/BannerSectionPlectrum/index.js +2 -0
- package/dist/components/BannerSectionPlectrum/index.js.map +1 -0
- package/dist/components/Box/Box.js +2 -2
- package/dist/components/BoxLink/BoxLink.d.ts +52 -0
- package/dist/components/BoxLink/BoxLink.js +3 -0
- package/dist/components/BoxLink/BoxLink.js.map +1 -0
- package/dist/components/BoxLink/BoxLinkContext.d.ts +24 -0
- package/dist/components/BoxLink/BoxLinkContext.js +2 -0
- package/dist/components/BoxLink/BoxLinkContext.js.map +1 -0
- package/dist/components/BoxLink/index.d.ts +4 -0
- package/dist/components/BoxLink/index.js +2 -0
- package/dist/components/BoxLink/index.js.map +1 -0
- package/dist/components/Button/Button.d.ts +12 -83
- package/dist/components/Button/Button.js +3 -3
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/Calendar/Calendar.js +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +1 -1
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalloutBanner/CalloutBanner.js +9 -9
- package/dist/components/CardSection/CardSection.js +1 -1
- package/dist/components/Carousel/Carousel.d.ts +8 -1
- package/dist/components/Carousel/Carousel.js +7 -7
- package/dist/components/Carousel/Carousel.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +1 -1
- package/dist/components/Checkbox/Checkbox.js +5 -5
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/ClearFieldButton/ClearFieldButton.js +2 -1
- package/dist/components/ClearFieldButton/ClearFieldButton.js.map +1 -1
- package/dist/components/CreditCardNumberField/CreditCardNumberField.js +1 -1
- package/dist/components/CreditCardSecurityCodeField/CreditCardSecurityCodeField.js +1 -1
- package/dist/components/Currency/Currency.js +1 -1
- package/dist/components/DateField/DateField.d.ts +5 -1
- package/dist/components/DateField/DateField.js +1 -1
- package/dist/components/DateField/index.js +1 -1
- package/dist/components/DatePicker/DatePicker.js +3 -3
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.js +3 -3
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/components/Dialog/Dialog.js +5 -5
- package/dist/components/ErrorSummary/ErrorSummary.js +2 -2
- package/dist/components/Eyebrow/Eyebrow.js +1 -1
- package/dist/components/Form/Form.js +1 -1
- package/dist/components/Grid/Grid.d.ts +3 -3
- package/dist/components/Grid/Grid.js.map +1 -1
- package/dist/components/Heading/Heading.js +2 -2
- package/dist/components/Icon/Icon.js +1 -1
- package/dist/components/IconBackdrop/IconBackdrop.js +1 -1
- package/dist/components/IconButton/IconButton.js +1 -1
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Image/Image.js +1 -1
- package/dist/components/IntroSection/IntroSection.d.ts +42 -0
- package/dist/components/IntroSection/IntroSection.js +4 -0
- package/dist/components/IntroSection/IntroSection.js.map +1 -0
- package/dist/components/IntroSection/index.d.ts +2 -0
- package/dist/components/IntroSection/index.js +2 -0
- package/dist/components/IntroSection/index.js.map +1 -0
- package/dist/components/Label/Label.js +1 -1
- package/dist/components/Link/Link.d.ts +7 -2
- package/dist/components/Link/Link.js +3 -3
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/LoadingSpinner/LoadingSpinner.js +1 -1
- package/dist/components/Menu/Menu.d.ts +8 -36
- package/dist/components/Menu/Menu.js +1 -1
- package/dist/components/Menu/Menu.js.map +1 -1
- package/dist/components/NumberField/NumberField.js +2 -2
- package/dist/components/NumberField/NumberField.js.map +1 -1
- package/dist/components/Paragraph/Paragraph.js +1 -1
- package/dist/components/PasswordField/PasswordField.js +1 -1
- package/dist/components/PhoneNumberField/PhoneNumberField.js +1 -1
- package/dist/components/ProductTile/ProductTile.d.ts +51 -0
- package/dist/components/ProductTile/ProductTile.js +7 -0
- package/dist/components/ProductTile/ProductTile.js.map +1 -0
- package/dist/components/ProductTile/index.d.ts +2 -0
- package/dist/components/ProductTile/index.js +2 -0
- package/dist/components/ProductTile/index.js.map +1 -0
- package/dist/components/Radio/Radio.js +1 -1
- package/dist/components/Section/Section.js +1 -1
- package/dist/components/SelectCard/SelectCard.js +5 -5
- package/dist/components/Spacer/Spacer.js +1 -1
- package/dist/components/SubHeading/SubHeading.js +1 -1
- package/dist/components/Tabs/TabList.js +1 -1
- package/dist/components/Tabs/Tabs.js +1 -1
- package/dist/components/Tag/Tag.js +2 -2
- package/dist/components/ToggleButton/ToggleButton.js +1 -1
- package/dist/components/ToggleIconButton/ToggleIconButton.js +1 -1
- package/dist/components/_base/Calendar/Calendar.js +1 -1
- package/dist/components/_base/Input/Input.js +1 -1
- package/dist/components/index.d.ts +12 -2
- package/dist/components/index.js +1 -1
- package/dist/{flex-D0sfBoFP.js → flex-BJOhaXnU.js} +2 -2
- package/dist/{flex-D0sfBoFP.js.map → flex-BJOhaXnU.js.map} +1 -1
- package/dist/index-CCUt_dAN.js +2 -0
- package/dist/{index-DiYWUa65.js.map → index-CCUt_dAN.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/{input-DoPyN5PO.js → input-Ct1NB1lu.js} +2 -2
- package/dist/{input-DoPyN5PO.js.map → input-Ct1NB1lu.js.map} +1 -1
- package/dist/{padding-BPweMQaC.js → padding-nClUzhWp.js} +2 -2
- package/dist/{padding-BPweMQaC.js.map → padding-nClUzhWp.js.map} +1 -1
- package/dist/react-number-format.es-kdABQClE.js +2 -0
- package/dist/react-number-format.es-kdABQClE.js.map +1 -0
- package/dist/useCalendarState-BKam8aTi.js +2 -0
- package/dist/useCalendarState-BKam8aTi.js.map +1 -0
- package/dist/useControlledState-CLJIwghQ.js +2 -0
- package/dist/useControlledState-CLJIwghQ.js.map +1 -0
- package/dist/useGlobalListeners-CGYK0FZ8.js +2 -0
- package/dist/useGlobalListeners-CGYK0FZ8.js.map +1 -0
- package/dist/utils/backgroundColor/backgroundColor.js +1 -1
- package/dist/utils/border/border.js +1 -1
- package/dist/utils/date/date.js +1 -1
- package/dist/utils/flex/flex.js +1 -1
- package/dist/utils/focus/focusStyles.js +1 -1
- package/dist/utils/foregroundColour/foregroundColor.js +1 -1
- package/dist/utils/forms/field.js +1 -1
- package/dist/utils/forms/input/input.js +1 -1
- package/dist/utils/padding/padding.js +1 -1
- package/dist/utils/position/position.js +1 -1
- package/dist/utils/stories/DraggableContainer.js +7 -7
- package/dist/utils/stories/DraggableContainer.js.map +1 -1
- package/package.json +11 -5
- package/dist/CalendarDate-B7n_TjYa.js +0 -2
- package/dist/CalendarDate-B7n_TjYa.js.map +0 -1
- package/dist/DateField-oLDKE7Lh.js.map +0 -1
- package/dist/DatePicker.module-CGXPuf59.js +0 -2
- package/dist/DatePicker.module-CGXPuf59.js.map +0 -1
- package/dist/index-DiYWUa65.js +0 -2
- package/dist/react-number-format.es-7RDg5nwN.js +0 -2
- package/dist/react-number-format.es-7RDg5nwN.js.map +0 -1
- package/dist/useCalendarState-C9LlCwg-.js +0 -2
- package/dist/useCalendarState-C9LlCwg-.js.map +0 -1
- package/dist/useControlledState-DCczKDCM.js +0 -2
- package/dist/useControlledState-DCczKDCM.js.map +0 -1
- package/dist/useFormValidationState-CqKt4CQY.js +0 -2
- package/dist/useFormValidationState-CqKt4CQY.js.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{jsx as e}from"react/jsx-runtime";import s from"react";import{c as _}from"../../index-
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import s from"react";import{c as _}from"../../index-CCUt_dAN.js";import{foregroundColorVariants as t}from"../../utils/foregroundColour/foregroundColor.js";import '../../assets/truncate.css';import '../../assets/Label.css';/* empty css */import{getBaseValue as l,generateResponsiveClasses as i}from"../../utils/breakpoint/responsiveSSR.js";const x={label:"_label_1fo68_1","size--xxs":"_size--xxs_1fo68_36","size--xs":"_size--xs_1fo68_39","size--sm":"_size--sm_1fo68_42","size--md":"_size--md_1fo68_45","size--lg":"_size--lg_1fo68_48","truncate--true":"_truncate--true_1fo68_68","truncate--false":"_truncate--false_1fo68_72","sm:size--xxs":"_sm:size--xxs_1fo68_1","sm:size--xs":"_sm:size--xs_1fo68_1","sm:size--sm":"_sm:size--sm_1fo68_1","sm:size--md":"_sm:size--md_1fo68_1","sm:size--lg":"_sm:size--lg_1fo68_1","sm:truncate--true":"_sm:truncate--true_1fo68_1","sm:truncate--false":"_sm:truncate--false_1fo68_1","md:size--xxs":"_md:size--xxs_1fo68_1","md:size--xs":"_md:size--xs_1fo68_1","md:size--sm":"_md:size--sm_1fo68_1","md:size--md":"_md:size--md_1fo68_1","md:size--lg":"_md:size--lg_1fo68_1","md:truncate--true":"_md:truncate--true_1fo68_1","md:truncate--false":"_md:truncate--false_1fo68_1","lg:size--xxs":"_lg:size--xxs_1fo68_1","lg:size--xs":"_lg:size--xs_1fo68_1","lg:size--sm":"_lg:size--sm_1fo68_1","lg:size--md":"_lg:size--md_1fo68_1","lg:size--lg":"_lg:size--lg_1fo68_1","lg:truncate--true":"_lg:truncate--true_1fo68_1","lg:truncate--false":"_lg:truncate--false_1fo68_1","xl:size--xxs":"_xl:size--xxs_1fo68_1","xl:size--xs":"_xl:size--xs_1fo68_1","xl:size--sm":"_xl:size--sm_1fo68_1","xl:size--md":"_xl:size--md_1fo68_1","xl:size--lg":"_xl:size--lg_1fo68_1","xl:truncate--true":"_xl:truncate--true_1fo68_1","xl:truncate--false":"_xl:truncate--false_1fo68_1","xxl:size--xxs":"_xxl:size--xxs_1fo68_1","xxl:size--xs":"_xxl:size--xs_1fo68_1","xxl:size--sm":"_xxl:size--sm_1fo68_1","xxl:size--md":"_xxl:size--md_1fo68_1","xxl:size--lg":"_xxl:size--lg_1fo68_1","xxl:truncate--true":"_xxl:truncate--true_1fo68_1","xxl:truncate--false":"_xxl:truncate--false_1fo68_1"},o=i(x),r=_(x.label,{variants:{size:{"2xs":x["size--xxs"],xxs:x["size--xxs"],xs:x["size--xs"],sm:x["size--sm"],md:x["size--md"],lg:x["size--lg"]},truncate:{true:x["truncate--true"],false:x["truncate--false"]}},defaultVariants:{size:"md"}}),a=({children:_,as:i="span",size:x,foregroundColor:a,truncate:f=!1,...z})=>{s.useEffect(()=>{if("production"!==process.env.NODE_ENV)if("2xs"===x)console.warn("Label: The size value '2xs' is deprecated. Please use 'xxs' instead.");else if("object"==typeof x&&null!==x){Object.values(x).some(e=>"2xs"===e)&&console.warn("Label: The size value '2xs' is deprecated. Please use 'xxs' instead.")}},[x]);const m=l(x,"md"),u=l(f,!1),n=o(x,"size"),c=o(f,"truncate"),d=[r({size:m,truncate:u}),t({foregroundColor:a}),...n,...c].filter(Boolean).join(" ");/* @__PURE__ */
|
|
2
2
|
return e(i,{className:d,...z,children:_})};export{a as Label,a as default};
|
|
3
3
|
//# sourceMappingURL=Label.js.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { LinkProps as AriaLinkProps } from 'react-aria-components';
|
|
2
2
|
import { IconProps } from '../Icon/Icon';
|
|
3
3
|
import { ForegroundVariants } from '../../utils/foregroundColour/foregroundColor';
|
|
4
|
-
|
|
4
|
+
import { WithResponsiveProps } from '../../utils/breakpoint/responsiveSSR';
|
|
5
|
+
export interface LinkBaseProps extends AriaLinkProps {
|
|
5
6
|
/**
|
|
6
7
|
* The children of the component. A function may be provided to alter the children based on component state.
|
|
7
8
|
*/
|
|
@@ -59,5 +60,9 @@ export interface LinkProps extends AriaLinkProps {
|
|
|
59
60
|
*/
|
|
60
61
|
focusStyle?: 'default' | 'white';
|
|
61
62
|
}
|
|
62
|
-
|
|
63
|
+
type ResponsivePropKeys = 'size';
|
|
64
|
+
export type LinkProps = WithResponsiveProps<LinkBaseProps, ResponsivePropKeys>;
|
|
65
|
+
declare const Link: import('react').ForwardRefExoticComponent<Omit<LinkBaseProps, "size"> & {
|
|
66
|
+
size?: import('../../utils/breakpoint/responsiveSSR').ResponsiveValue<NonNullable<"lg" | "sm" | "xs" | "md" | undefined>> | undefined;
|
|
67
|
+
} & import('react').RefAttributes<HTMLAnchorElement>>;
|
|
63
68
|
export default Link;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsxs as e,jsx as
|
|
2
|
-
return e(
|
|
3
|
-
/* @__PURE__ */
|
|
1
|
+
import{jsxs as e,jsx as i}from"react/jsx-runtime";import{forwardRef as s,useEffect as r,useMemo as o}from"react";import{Link as l}from"react-aria-components";import{useObjectRef as n}from"@react-aria/utils";import{VisuallyHidden as _}from"../VisuallyHidden/VisuallyHidden.js";import{Icon as m}from"../Icon/Icon.js";import{c as t}from"../../index-CCUt_dAN.js";import{focusStyleVariants as a}from"../../utils/focus/focusStyles.js";import{foregroundColorVariants as d}from"../../utils/foregroundColour/foregroundColor.js";import{getBaseValue as f,generateResponsiveClasses as z}from"../../utils/breakpoint/responsiveSSR.js";import '../../assets/Link.css';const x={link:"_link_i9ovf_1","link__text-wrapper":"_link__text-wrapper_i9ovf_11","size--xs":"_size--xs_i9ovf_42","size--sm":"_size--sm_i9ovf_45","size--md":"_size--md_i9ovf_48","size--lg":"_size--lg_i9ovf_51","sm:size--xs":"_sm:size--xs_i9ovf_1","sm:size--sm":"_sm:size--sm_i9ovf_1","sm:size--md":"_sm:size--md_i9ovf_1","sm:size--lg":"_sm:size--lg_i9ovf_1","md:size--xs":"_md:size--xs_i9ovf_1","md:size--sm":"_md:size--sm_i9ovf_1","md:size--md":"_md:size--md_i9ovf_1","md:size--lg":"_md:size--lg_i9ovf_1","lg:size--xs":"_lg:size--xs_i9ovf_1","lg:size--sm":"_lg:size--sm_i9ovf_1","lg:size--md":"_lg:size--md_i9ovf_1","lg:size--lg":"_lg:size--lg_i9ovf_1","xl:size--xs":"_xl:size--xs_i9ovf_1","xl:size--sm":"_xl:size--sm_i9ovf_1","xl:size--md":"_xl:size--md_i9ovf_1","xl:size--lg":"_xl:size--lg_i9ovf_1","xxl:size--xs":"_xxl:size--xs_i9ovf_1","xxl:size--sm":"_xxl:size--sm_i9ovf_1","xxl:size--md":"_xxl:size--md_i9ovf_1","xxl:size--lg":"_xxl:size--lg_i9ovf_1",underline:"_underline_i9ovf_100"},c=z(x),u=t(x.link,{variants:{size:{xs:x["size--xs"],sm:x["size--sm"],md:x["size--md"],lg:x["size--lg"]},underline:{true:x.underline,false:""},iconEnd:{true:x.iconEnd,false:""},iconStart:{true:x.iconStart,false:""}},defaultVariants:{size:"md",underline:!1}}),p=s(function({size:s="md",underline:t=!0,iconStartProps:z,iconEndProps:p={iconName:"arrow-right"},href:v,target:g="_self",focusStyle:S="default",children:k,ariaLabelExternal:h,externalLinkScreenReaderText:j="opens in a new tab",foregroundColor:E="accentPrimary",...w},N){const y=n(N);r(()=>{h&&"production"!==process.env.NODE_ENV&&console.warn("[Link] `ariaLabelExternal` prop is deprecated. Use the `externalLinkScreenReaderText` prop instead.")},[h]);const L=f(s,"md"),b=c(s,"size"),C="_blank"===g,V=o(()=>{switch(s){case"xs":case"sm":return"0.75x";case"md":default:return"1x";case"lg":return"1.25x"}},[s]);/* @__PURE__ */
|
|
2
|
+
return e(l,{className:[u({size:L,underline:t}),a({focusStyle:S}),d({foregroundColor:E}),...b].filter(Boolean).join(" "),href:v,target:g,rel:C?"noopener noreferrer":void 0,ref:y,...w,children:[z&&/* @__PURE__ */i(m,{className:u({iconStart:!!z}),iconSize:V,...z}),
|
|
3
|
+
/* @__PURE__ */i("span",{className:x["link__text-wrapper"],children:k}),p&&/* @__PURE__ */i(m,{className:u({iconEnd:!!p}),iconSize:V,...p}),C&&/* @__PURE__ */i(_,{children:j||h})]})});export{p as default};
|
|
4
4
|
//# sourceMappingURL=Link.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { useMemo, useEffect, forwardRef } from 'react';\nimport {\n LinkProps as AriaLinkProps,\n Link as AriaLink,\n} from 'react-aria-components';\nimport { useObjectRef } from '@react-aria/utils';\nimport VisuallyHidden from '../VisuallyHidden/VisuallyHidden';\nimport { Icon, IconProps, IconSize } from '../Icon/Icon';\nimport { cva } from 'class-variance-authority';\nimport styles from './Link.module.css';\nimport { focusStyleVariants } from '../../utils/focus/focusStyles';\nimport {\n foregroundColorVariants,\n type ForegroundVariants,\n} from '../../utils/foregroundColour/foregroundColor';\n\nconst link = cva(styles.link, {\n variants: {\n size: {\n xs: styles
|
|
1
|
+
{"version":3,"file":"Link.js","sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import { useMemo, useEffect, forwardRef } from 'react';\nimport {\n LinkProps as AriaLinkProps,\n Link as AriaLink,\n} from 'react-aria-components';\nimport { useObjectRef } from '@react-aria/utils';\nimport VisuallyHidden from '../VisuallyHidden/VisuallyHidden';\nimport { Icon, IconProps, IconSize } from '../Icon/Icon';\nimport { cva } from 'class-variance-authority';\nimport styles from './Link.module.css';\nimport { focusStyleVariants } from '../../utils/focus/focusStyles';\nimport {\n foregroundColorVariants,\n type ForegroundVariants,\n} from '../../utils/foregroundColour/foregroundColor';\nimport {\n generateResponsiveClasses,\n getBaseValue,\n WithResponsiveProps,\n} from '../../utils/breakpoint/responsiveSSR';\n\nconst getResponsiveClasses = generateResponsiveClasses(styles);\n\nconst link = cva(styles.link, {\n variants: {\n size: {\n xs: styles['size--xs'],\n sm: styles['size--sm'],\n md: styles['size--md'],\n lg: styles['size--lg'],\n },\n underline: {\n true: styles.underline,\n false: '',\n },\n iconEnd: {\n true: styles.iconEnd,\n false: '',\n },\n iconStart: {\n true: styles.iconStart,\n false: '',\n },\n },\n defaultVariants: {\n size: 'md',\n underline: false,\n },\n});\n\nexport interface LinkBaseProps extends AriaLinkProps {\n /**\n * The children of the component. A function may be provided to alter the children based on component state.\n */\n children?: React.ReactNode | string;\n /**\n * What the size of the Link is\n * @default 'md'\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n /**\n * Whether the Link should be underlined\n * @default false\n */\n underline?: boolean;\n /**\n * Whether the link is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * The foreground color of the label\n */\n foregroundColor?: ForegroundVariants['foregroundColor'];\n /**\n * Whether an icon should display at the end of Link and icon properties\n * @default { iconName: 'arrow-right' }\n */\n iconEndProps?: IconProps | false;\n /**\n * Whether an icon should display at the start of the Link and icon properties\n */\n iconStartProps?: IconProps;\n /**\n * The URL the Link will navigate to\n */\n href?: string;\n /**\n * The target attribute for the Link\n * @default '_self'\n */\n target?: string;\n /**\n * @deprecated Use externalLinkScreenReaderText instead\n * Aria label applied when target=\"_blank\"\n * @default \"open in new tab\"\n */\n ariaLabelExternal?: string;\n /**\n * Specify custom screen reader text for external links\n * @default \"opens in a new tab\"\n */\n externalLinkScreenReaderText?: string;\n /**\n * \tThe focus style of the button\n */\n focusStyle?: 'default' | 'white';\n}\n\ntype ResponsivePropKeys = 'size';\n\nexport type LinkProps = WithResponsiveProps<LinkBaseProps, ResponsivePropKeys>;\n\nconst Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n {\n size = 'md',\n underline = true,\n iconStartProps,\n iconEndProps = { iconName: 'arrow-right' },\n href,\n target = '_self',\n focusStyle = 'default',\n children,\n ariaLabelExternal,\n externalLinkScreenReaderText = 'opens in a new tab',\n foregroundColor = 'accentPrimary',\n ...props\n },\n forwardedRef,\n) {\n const anchorRef = useObjectRef(forwardedRef);\n\n // Deprecation warning\n useEffect(() => {\n if (ariaLabelExternal && process.env.NODE_ENV !== 'production') {\n console.warn(\n '[Link] `ariaLabelExternal` prop is deprecated. Use the `externalLinkScreenReaderText` prop instead.',\n );\n }\n }, [ariaLabelExternal]);\n\n const baseSize = getBaseValue(size, 'md');\n\n const sizeResponsiveClasses = getResponsiveClasses(size, 'size');\n\n const isExternalLink = target === '_blank';\n\n const iconSize = useMemo<IconSize>(() => {\n switch (size) {\n case 'xs':\n return '0.75x';\n case 'sm':\n return '0.75x';\n case 'md':\n return '1x';\n case 'lg':\n return '1.25x';\n default:\n return '1x';\n }\n }, [size]);\n\n return (\n <AriaLink\n className={[\n link({ size: baseSize, underline }),\n focusStyleVariants({ focusStyle }),\n foregroundColorVariants({ foregroundColor }),\n ...sizeResponsiveClasses,\n ]\n .filter(Boolean)\n .join(' ')}\n href={href}\n target={target}\n rel={isExternalLink ? 'noopener noreferrer' : undefined}\n ref={anchorRef}\n {...props}\n >\n {iconStartProps && (\n <Icon\n className={link({ iconStart: !!iconStartProps })}\n iconSize={iconSize}\n {...iconStartProps}\n />\n )}\n <span className={styles['link__text-wrapper']}>{children}</span>\n {iconEndProps && (\n <Icon\n className={link({ iconEnd: !!iconEndProps })}\n iconSize={iconSize}\n {...iconEndProps}\n />\n )}\n {isExternalLink && (\n <VisuallyHidden>\n {externalLinkScreenReaderText || ariaLabelExternal}\n </VisuallyHidden>\n )}\n </AriaLink>\n );\n});\n\nexport default Link;\n"],"names":["getResponsiveClasses","generateResponsiveClasses","styles","link","cva","variants","size","xs","sm","md","lg","underline","true","false","iconEnd","iconStart","defaultVariants","Link","forwardRef","iconStartProps","iconEndProps","iconName","href","target","focusStyle","children","ariaLabelExternal","externalLinkScreenReaderText","foregroundColor","props","forwardedRef","anchorRef","useObjectRef","useEffect","process","env","NODE_ENV","console","warn","baseSize","getBaseValue","sizeResponsiveClasses","isExternalLink","iconSize","useMemo","jsxs","AriaLink","className","focusStyleVariants","foregroundColorVariants","filter","Boolean","join","rel","ref","jsx","Icon","VisuallyHidden"],"mappings":"6kDAqBMA,EAAuBC,EAA0BC,GAEjDC,EAAOC,EAAIF,EAAOC,KAAM,CAC5BE,SAAU,CACRC,KAAM,CACJC,GAAIL,EAAO,YACXM,GAAIN,EAAO,YACXO,GAAIP,EAAO,YACXQ,GAAIR,EAAO,aAEbS,UAAW,CACTC,KAAMV,EAAOS,UACbE,MAAO,IAETC,QAAS,CACPF,KAAMV,EAAOY,QACbD,MAAO,IAETE,UAAW,CACTH,KAAMV,EAAOa,UACbF,MAAO,KAGXG,gBAAiB,CACfV,KAAM,KACNK,WAAW,KAmETM,EAAOC,EAAyC,UACpDZ,KACEA,EAAO,KACPK,UAAAA,GAAY,EAAAQ,eACZA,EAAAC,aACAA,EAAe,CAAEC,SAAU,eAAAC,KAC3BA,EAAAC,OACAA,EAAS,QAAAC,WACTA,EAAa,UAAAC,SACbA,EAAAC,kBACAA,EAAAC,6BACAA,EAA+B,qBAAAC,gBAC/BA,EAAkB,mBACfC,GAELC,GAEA,MAAMC,EAAYC,EAAaF,GAG/BG,EAAU,KACJP,GAA8C,eAAzBQ,QAAQC,IAAIC,UACnCC,QAAQC,KACN,wGAGH,CAACZ,IAEJ,MAAMa,EAAWC,EAAalC,EAAM,MAE9BmC,EAAwBzC,EAAqBM,EAAM,QAEnDoC,EAA4B,WAAXnB,EAEjBoB,EAAWC,EAAkB,KACjC,OAAQtC,GACN,IAAK,KAEL,IAAK,KACH,MAAO,QACT,IAAK,KAIL,QACE,MAAO,KAHT,IAAK,KACH,MAAO,UAIV,CAACA;AAEJ,OACEuC,EAACC,EAAA,CACCC,UAAW,CACT5C,EAAK,CAAEG,KAAMiC,EAAU5B,UAAAA,IACvBqC,EAAmB,CAAExB,eACrByB,EAAwB,CAAErB,uBACvBa,GAEFS,OAAOC,SACPC,KAAK,KACR9B,OACAC,SACA8B,IAAKX,EAAiB,2BAAwB,EAC9CY,IAAKvB,KACDF,EAEHJ,SAAA,CAAAN,kBACCoC,EAACC,EAAA,CACCT,UAAW5C,EAAK,CAAEY,YAAaI,IAC/BwB,cACIxB;iBAGP,OAAA,CAAK4B,UAAW7C,EAAO,sBAAwBuB,aAC/CL,kBACCmC,EAACC,EAAA,CACCT,UAAW5C,EAAK,CAAEW,UAAWM,IAC7BuB,cACIvB,IAGPsB,kBACCa,EAACE,EAAA,CACEhC,SAAAE,GAAgCD,MAK3C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as i}from"react/jsx-runtime";import{c as e}from"../../index-
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{c as e}from"../../index-CCUt_dAN.js";import{ProgressBar as n}from"react-aria-components";import{foregroundColorVariants as o}from"../../utils/foregroundColour/foregroundColor.js";import*as a from"react";import{forwardRef as _}from"react";import '../../assets/LoadingSpinner.css';const x={loadingSpinner:"_loadingSpinner_1pdea_1",iconWrapper:"_iconWrapper_1pdea_13",spinner:"_spinner_1pdea_21",iconSize0_5x:"_iconSize0_5x_1pdea_37",iconSize0_75x:"_iconSize0_75x_1pdea_42",iconSize1x:"_iconSize1x_1pdea_47",iconSize1_25x:"_iconSize1_25x_1pdea_52",iconSize1_5x:"_iconSize1_5x_1pdea_57",iconSize2x:"_iconSize2x_1pdea_62",iconSize2_5x:"_iconSize2_5x_1pdea_67",iconSize3x:"_iconSize3x_1pdea_72",iconSize4x:"_iconSize4x_1pdea_77",iconSize5x:"_iconSize5x_1pdea_82",iconSize6x:"_iconSize6x_1pdea_87",iconSize7x:"_iconSize7x_1pdea_92",iconSize8x:"_iconSize8x_1pdea_97",iconSize9x:"_iconSize9x_1pdea_102",iconSize10x:"_iconSize10x_1pdea_107"},c=_(({title:i,titleId:e,...n},o)=>/* @__PURE__ */a.createElement("svg",{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",ref:o,"aria-labelledby":e,...n},i?/* @__PURE__ */a.createElement("title",{id:e},i):null,/* @__PURE__ */a.createElement("path",{opacity:.4,d:"M24 12C24 18.6274 18.6274 24 12 24C5.37258 24 0 18.6274 0 12C0 5.37258 5.37258 0 12 0C18.6274 0 24 5.37258 24 12ZM3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12Z"}),/* @__PURE__ */a.createElement("path",{d:"M24 12C24 10.4241 23.6896 8.86371 23.0865 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.3709 2.40042 18.0481 1.5165 16.5922 0.913445C15.1363 0.310389 13.5758 -6.88831e-08 12 0C11.1715 0 10.5 0.671573 10.5 1.5C10.5 2.32843 11.1715 3 12 3C13.1819 3 14.3522 3.23279 15.4441 3.68508C16.5361 4.13738 17.5282 4.80031 18.3639 5.63604C19.1997 6.47177 19.8626 7.46392 20.3149 8.55585C20.7672 9.64778 21 10.8181 21 12C21 12.8284 21.6715 13.5 22.4999 13.5C23.3284 13.5 24 12.8284 24 12Z"}))),r=e(x.loadingSpinner,{variants:{buttonSize:{sm:x.sm,md:x.md,lg:x.lg},size:{"0.5x":x.iconSize0_5x,"0.75x":x.iconSize0_75x,"1x":x.iconSize1x,"1.25x":x.iconSize1_25x,"1.5x":x.iconSize1_5x,"2x":x.iconSize2x,"2.5x":x.iconSize2_5x,"3x":x.iconSize3x,"4x":x.iconSize4x,"5x":x.iconSize5x,"6x":x.iconSize6x,"7x":x.iconSize7x,"8x":x.iconSize8x,"9x":x.iconSize9x,"10x":x.iconSize10x}},defaultVariants:{size:"1x",buttonSize:"md"}}),t=({size:e="2x",buttonSize:a="md",styleVariant:_="secondary","aria-label":t="Loading",className:z,...S})=>/* @__PURE__ */i(n,{isIndeterminate:!0,className:`${r({buttonSize:a,size:e})} ${z} ${o({foregroundColor:_})} `,"aria-valuetext":t,"aria-label":t,"data-testid":"alto-loading-spinner",...S,children:/* @__PURE__ */i("span",{className:`${x.iconWrapper} ${r({size:e})}`,"aria-hidden":"true",children:/* @__PURE__ */i(c,{className:x.spinner})})});export{t as default};
|
|
2
2
|
//# sourceMappingURL=LoadingSpinner.js.map
|
|
@@ -84,45 +84,17 @@ export interface MenuProps {
|
|
|
84
84
|
/**
|
|
85
85
|
* Component to replace default Button with another button-like component/element
|
|
86
86
|
*/
|
|
87
|
-
export declare const Trigger: React.ForwardRefExoticComponent<import('
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
emphasis?: "primary" | "secondary" | "secondaryFilled" | "tertiary" | "quaternary";
|
|
92
|
-
size?: "lg" | "sm" | "md";
|
|
93
|
-
iconEndProps?: import('..').IconProps;
|
|
94
|
-
iconStartProps?: import('..').IconProps;
|
|
95
|
-
isLoading?: boolean;
|
|
96
|
-
textAlign?: "left" | "right" | "center";
|
|
97
|
-
children?: React.ReactNode;
|
|
98
|
-
type?: "button" | "submit" | "reset";
|
|
99
|
-
fullWidth?: boolean;
|
|
100
|
-
target?: "_blank" | "_self" | "_parent" | "_top";
|
|
101
|
-
focusStyle?: "default" | "white";
|
|
102
|
-
slot?: string;
|
|
103
|
-
iconButton?: boolean;
|
|
104
|
-
passthroughProps?: Partial<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>> | undefined;
|
|
87
|
+
export declare const Trigger: React.ForwardRefExoticComponent<Omit<import('../Button/Button').ButtonBaseProps<"button">, "size" | "textAlign" | "fullWidth"> & {
|
|
88
|
+
size?: import('../../utils/breakpoint/responsiveSSR').ResponsiveValue<NonNullable<("lg" | "sm" | "md") | undefined>> | undefined;
|
|
89
|
+
textAlign?: import('../../utils/breakpoint/responsiveSSR').ResponsiveValue<NonNullable<("left" | "right" | "center") | undefined>> | undefined;
|
|
90
|
+
fullWidth?: import('../../utils/breakpoint/responsiveSSR').ResponsiveValue<NonNullable<boolean | undefined>> | undefined;
|
|
105
91
|
} & React.RefAttributes<HTMLButtonElement>>;
|
|
106
92
|
export declare const Menu: {
|
|
107
93
|
({ label, "aria-label": ariaLabel, isDisabled, placement, buttonEmphasis, buttonStyleVariant, buttonOpenVariant, alignToElementId, shouldFlip, openOnHoverAndFocus, allowTabOut, closeOnHover, children, iconStartProps, iconEndProps, onOpenChange, }: MenuProps): import("react/jsx-runtime").JSX.Element;
|
|
108
|
-
Trigger: React.ForwardRefExoticComponent<import('
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
emphasis?: "primary" | "secondary" | "secondaryFilled" | "tertiary" | "quaternary";
|
|
113
|
-
size?: "lg" | "sm" | "md";
|
|
114
|
-
iconEndProps?: import('..').IconProps;
|
|
115
|
-
iconStartProps?: import('..').IconProps;
|
|
116
|
-
isLoading?: boolean;
|
|
117
|
-
textAlign?: "left" | "right" | "center";
|
|
118
|
-
children?: React.ReactNode;
|
|
119
|
-
type?: "button" | "submit" | "reset";
|
|
120
|
-
fullWidth?: boolean;
|
|
121
|
-
target?: "_blank" | "_self" | "_parent" | "_top";
|
|
122
|
-
focusStyle?: "default" | "white";
|
|
123
|
-
slot?: string;
|
|
124
|
-
iconButton?: boolean;
|
|
125
|
-
passthroughProps?: Partial<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>> | undefined;
|
|
94
|
+
Trigger: React.ForwardRefExoticComponent<Omit<import('../Button/Button').ButtonBaseProps<"button">, "size" | "textAlign" | "fullWidth"> & {
|
|
95
|
+
size?: import('../../utils/breakpoint/responsiveSSR').ResponsiveValue<NonNullable<("lg" | "sm" | "md") | undefined>> | undefined;
|
|
96
|
+
textAlign?: import('../../utils/breakpoint/responsiveSSR').ResponsiveValue<NonNullable<("left" | "right" | "center") | undefined>> | undefined;
|
|
97
|
+
fullWidth?: import('../../utils/breakpoint/responsiveSSR').ResponsiveValue<NonNullable<boolean | undefined>> | undefined;
|
|
126
98
|
} & React.RefAttributes<HTMLButtonElement>>;
|
|
127
99
|
};
|
|
128
100
|
export default Menu;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as e,jsx as t}from"react/jsx-runtime";import n,{forwardRef as r,useId as o,useRef as u,useEffect as s,useState as i}from"react";import{Button as c}from"../Button/Button.js";import{Popover as l}from"../Popover/Popover.js";import{IconButton as a}from"../IconButton/IconButton.js";import{useObjectRef as d}from"@react-aria/utils";import{useButton as m}from"@react-aria/button";import '../../assets/Menu.css';const v="_menuContainer_qw7ps_1",p="_menuContent_qw7ps_6",f={activeMenuId:null,setActiveMenu:e=>{f.activeMenuId=e},getActiveMenu:()=>f.activeMenuId},E=(e,t,n,r)=>{const o=()=>{const e=r.current;if(e){const t=(e=>{const t=Array.from(document.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')),n=t.indexOf(e);return-1!==n&&n<t.length-1?t[n+1]:t[0]})(e);n(),setTimeout(()=>{t&&t.focus()},10)}else n()},u=()=>e.current?Array.from(e.current.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')):[];return{handleMenuKeyDown:e=>{if("Escape"===e.key)return e.preventDefault(),n(),void(r.current&&r.current.focus());if("Tab"===e.key&&t)return e.preventDefault(),void o();((e,t)=>{if(0===t.length)return;const n=document.activeElement,r=t.indexOf(n);"ArrowDown"===e.key?(e.preventDefault(),t[r<t.length-1?r+1:0].focus()):"ArrowUp"===e.key?(e.preventDefault(),t[r>0?r-1:t.length-1].focus()):"Home"===e.key?(e.preventDefault(),t[0].focus()):"End"===e.key&&(e.preventDefault(),t[t.length-1].focus())})(e,u())},getFocusableElements:u}},b=r(function({children:e,...t},r){const o=n.Children.only(e),u=d(r),s={...t,...o.props},{buttonProps:i}=m(s,u),l=o.type!==c&&o.type!==a?i:s;return n.cloneElement(o,{...l,ref:u})}),g=({label:r,"aria-label":a,isDisabled:d=!1,placement:m="bottom start",buttonEmphasis:g="tertiary",buttonStyleVariant:h="neutral",buttonOpenVariant:y=h,alignToElementId:T,shouldFlip:M=!0,openOnHoverAndFocus:A=!1,allowTabOut:O=!0,closeOnHover:L=!0,children:D,iconStartProps:w,iconEndProps:x,onOpenChange:I})=>{const k=`menu-${o()}`,F=u(null),P=u(null),K=u(null),{isOpen:V,setIsOpen:B,preventFocusOpen:C,setPreventFocusOpen:_,openedViaKeyboard:N,setOpenedViaKeyboard:S,closeMenu:j,openMenu:q,toggleMenu:H}=((e,t)=>{const n=u(!1),[r,o]=i(!1),[c,l]=i(!1),[a,d]=i(!1),m=()=>{f.setActiveMenu(null),o(!1),l(!0),setTimeout(()=>{l(!1)},300)},v=(t=!1)=>{f.getActiveMenu()&&f.getActiveMenu()!==e&&document.dispatchEvent(new CustomEvent("menu:closeAll",{detail:{exceptMenuId:e}})),f.setActiveMenu(e),o(!0),d(t)};return s(()=>{t&&n.current&&t(r)},[r]),s(()=>{n.current=!0},[]),{isOpen:r,setIsOpen:o,preventFocusOpen:c,setPreventFocusOpen:l,openedViaKeyboard:a,setOpenedViaKeyboard:d,closeMenu:m,openMenu:v,toggleMenu:()=>{if(r)m();else{const e="BUTTON"===document.activeElement?.tagName;v(e)}}}})(k,I),{handleMenuKeyDown:U,getFocusableElements:R}=E(K,O,j,F);((e,t,n,r,o,u,i,c,l,a)=>{s(()=>{if(!e||t)return;let n=null,u=!1;const s=()=>{n&&(clearTimeout(n),n=null)},d=()=>{const e=o.current,t=i.current;if(!e)return;const r=e.matches(":hover"),s=t?.matches(":hover")||!1;r||s||!u||(u=!1,n=setTimeout(m,300))},m=()=>{f.getActiveMenu()===r&&a()},v=()=>{setTimeout(d,50)},p=()=>{s(),u||(u=!0,c||(n=setTimeout(()=>{l(!1)},300)))},E=()=>{v()},b=()=>{s(),u=!0},g=()=>{v()},h=o.current,y=i.current;return h&&(h.addEventListener("mouseenter",p),h.addEventListener("mouseleave",E)),c&&y&&(y.addEventListener("mouseenter",b),y.addEventListener("mouseleave",g)),()=>{h&&(h.removeEventListener("mouseenter",p),h.removeEventListener("mouseleave",E)),y&&(y.removeEventListener("mouseenter",b),y.removeEventListener("mouseleave",g)),s()}},[e,t,r,c,l,a,o,i]),s(()=>{if(!e||t)return;const s=o.current;if(!s)return;let i=null,c=!1;const d=()=>{n||(i&&clearTimeout(i),c=!0,i=setTimeout(()=>{const e=document.activeElement===s&&document.activeElement!==document.body;l(e),setTimeout(()=>{c=!1},500)},300))},m=e=>{if(c)return;i&&clearTimeout(i);const t=u.current,n=e.relatedTarget;t&&!t.contains(n)&&(i=setTimeout(()=>{f.getActiveMenu()===r&&a()},200))};return s.addEventListener("focus",d),s.addEventListener("blur",m),()=>{s.removeEventListener("focus",d),s.removeEventListener("blur",m),i&&clearTimeout(i)}},[e,t,n,r,l,a,u,o])})(A,d,C,k,F,P,K,V,q,j),((e,t,n,r,o,u)=>{s(()=>{if(!t||!n||r)return;let o=null;const s=()=>{o&&(clearTimeout(o),o=null)},i=()=>{s(),o=setTimeout(()=>{u()},200)},c=()=>{s()},l=e.current;return l&&(l.addEventListener("mouseenter",c),l.addEventListener("mouseleave",i)),()=>{l&&(l.removeEventListener("mouseenter",c),l.removeEventListener("mouseleave",i)),s()}},[t,n,r,o,u,e])})(K,V,L,A,k,j),((e,t,n,r,o)=>{s(()=>{if(!n)return;const r=n=>{const r=n.target,u=t.current,s=e.current,i=u?.contains(r)&&!s?.contains(r);s&&s.contains(r)?r.closest('[data-menu-close="true"]')&&o():i||o()};return document.addEventListener("click",r,!0),()=>{document.removeEventListener("click",r,!0)}},[n,r,o,e,t])})(K,P,V,k,j);const $=V?y:h;s(()=>{const e=e=>{const{exceptMenuId:t}=e.detail||{};t&&t===k||V&&B(!1)};return document.addEventListener("menu:closeAll",e),()=>{document.removeEventListener("menu:closeAll",e)}},[k,V,B]),s(()=>{const e=f.getActiveMenu()===k;e!==V&&B(e)},[k,V,B]),s(()=>{if(V&&N&&K.current){const e=R();e.length>0&&setTimeout(()=>{e[0].focus()},50)}},[V,N,R]),s(()=>{V||S(!1)},[V,S]);const z={isOpen:V,open:()=>q(),close:j,toggle:()=>H(),setOpen:e=>{e?q():j()}},G={ref:F,"aria-haspopup":!0,"aria-expanded":V,onPress:()=>{_(!1);const e=document.activeElement===F.current;S(e),H()},onKeyDown:e=>{"Escape"===e.key&&V?(e.preventDefault(),j(),_(!0),setTimeout(()=>{_(!1)},300)):"ArrowDown"!==e.key||V||(e.preventDefault(),q(!0))}},J=n.Children.toArray(D);let Q=D,W=/* @__PURE__ */t(c,{emphasis:g,styleVariant:$,isDisabled:d,iconStartProps:w,iconEndProps:x,...G,children:r});const X=J.findIndex(e=>e?.type===b),Y=J[X];return n.isValidElement(Y)&&(W=n.cloneElement(Y,G),Q=J.filter((e,t)=>t!==X)),/* @__PURE__ */e("div",{className:v,ref:P,children:[W,V&&/* @__PURE__ */t(l,{state:z,triggerRef:(()=>{if(T){const e=document.getElementById(T);if(e)return{current:e}}return F})(),hasArrow:!1,placement:m,shouldFlip:M,isNonModal:!0,allowTabOut:O,autoFocus:N,children:/* @__PURE__ */t("div",{className:p,ref:K,onKeyDown:U,role:"menu","aria-label":a||r,tabIndex:-1,children:Q})})]})};g.Trigger=b;export{g as Menu,b as Trigger,g as default};
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import r,{useRef as n,useCallback as o,useMemo as i,useState as s,useEffect as a,useContext as u,forwardRef as l,useId as c}from"react";import{Button as p}from"../Button/Button.js";import{Popover as d}from"../Popover/Popover.js";import{IconButton as g}from"../IconButton/IconButton.js";import{$ as v,a as f,b as m,c as y,d as T,e as E,f as h,g as P,h as b,i as M,j as k,k as O,l as K,m as S,n as w,o as I,p as L,q as A,r as D,s as x,t as C}from"../../useGlobalListeners-CGYK0FZ8.js";import{flushSync as F}from"react-dom";import '../../assets/Menu.css';const _="_menuContainer_qw7ps_1",V="_menuContent_qw7ps_6";let N="default",U="",H=/* @__PURE__ */new WeakMap;function B(e){if(v()){if("default"===N){const t=f(e);U=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}N="disabled"}else if(e instanceof HTMLElement||e instanceof SVGElement){let t="userSelect"in e.style?"userSelect":"webkitUserSelect";H.set(e,e.style[t]),e.style[t]="none"}}function X(e){if(v()){if("disabled"!==N)return;N="restoring",setTimeout(()=>{m(()=>{if("restoring"===N){const t=f(e);"none"===t.documentElement.style.webkitUserSelect&&(t.documentElement.style.webkitUserSelect=U||""),U="",N="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&H.has(e)){let t=H.get(e),r="userSelect"in e.style?"userSelect":"webkitUserSelect";"none"===e.style[r]&&(e.style[r]=t),""===e.getAttribute("style")&&e.removeAttribute("style"),H.delete(e)}}function Y(e){let t=e?.defaultView;return t?.__webpack_nonce__||globalThis.__webpack_nonce__||void 0}let j=/* @__PURE__ */new WeakMap;const q=r.createContext({register:()=>{}});q.displayName="PressResponderContext";class G{#e;constructor(e,t,r,n){this.#e=!0;let o=n?.target??r.currentTarget;const i=o?.getBoundingClientRect();let s,a,u=0,l=null;null!=r.clientX&&null!=r.clientY&&(a=r.clientX,l=r.clientY),i&&(null!=a&&null!=l?(s=a-i.left,u=l-i.top):(s=i.width/2,u=i.height/2)),this.type=e,this.pointerType=t,this.target=r.currentTarget,this.shiftKey=r.shiftKey,this.metaKey=r.metaKey,this.ctrlKey=r.ctrlKey,this.altKey=r.altKey,this.x=s,this.y=u,this.key=r.key}continuePropagation(){this.#e=!1}get shouldStopPropagation(){return this.#e}}const R=/* @__PURE__ */Symbol("linkClicked"),W="react-aria-pressable-style",$="data-react-aria-pressable";function z(e){let{onPress:t,onPressChange:r,onPressStart:l,onPressEnd:c,onPressUp:p,onClick:d,isDisabled:g,isPressed:v,preventFocusOnPress:m,shouldCancelOnPointerExit:x,allowTextSelectionOnPress:C,ref:_,...V}=function(e){let t=u(q);if(t){let{register:r,ref:n,...o}=t;e=w(o,e),r()}return I(t,e.ref),e}(e),[N,U]=s(!1),H=n({isPressed:!1,ignoreEmulatedMouseEvents:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null,disposables:[]}),{addGlobalListener:z,removeAllGlobalListeners:oe}=T(),ie=o((e,t)=>{let n=H.current;if(g||n.didFirePressStart)return!1;let o=!0;if(n.isTriggeringEvent=!0,l){let r=new G("pressstart",t,e);l(r),o=r.shouldStopPropagation}return r&&r(!0),n.isTriggeringEvent=!1,n.didFirePressStart=!0,U(!0),o},[g,l,r]),se=o((e,n,o=!0)=>{let i=H.current;if(!i.didFirePressStart)return!1;i.didFirePressStart=!1,i.isTriggeringEvent=!0;let s=!0;if(c){let t=new G("pressend",n,e);c(t),s=t.shouldStopPropagation}if(r&&r(!1),U(!1),t&&o&&!g){let r=new G("press",n,e);t(r),s&&=r.shouldStopPropagation}return i.isTriggeringEvent=!1,s},[g,c,r,t]),ae=E(se),ue=o((e,t)=>{let r=H.current;if(g)return!1;if(p){r.isTriggeringEvent=!0;let n=new G("pressup",t,e);return p(n),r.isTriggeringEvent=!1,n.shouldStopPropagation}return!0},[g,p]),le=E(ue),ce=o(e=>{let t=H.current;if(t.isPressed&&t.target){t.didFirePressStart&&null!=t.pointerType&&se(te(t.target,e),t.pointerType,!1),t.isPressed=!1,t.isOverTarget=!1,t.activePointerId=null,t.pointerType=null,oe(),C||X(t.target);for(let e of t.disposables)e();t.disposables=[]}},[C,oe,se]),pe=E(ce),de=o(e=>{x&&ce(e)},[x,ce]),ge=o(e=>{g||d?.(e)},[g,d]),ve=o((e,t)=>{if(!g&&d){let r=new MouseEvent("click",e);h(r,t),d(P(r))}},[g,d]),fe=i(()=>{let e=H.current,t={onKeyDown(t){if(Q(t.nativeEvent,t.currentTarget)&&b(t.currentTarget,M(t))){ne(M(t),t.key)&&t.preventDefault();let n=!0;e.isPressed||t.repeat||(e.target=t.currentTarget,e.isPressed=!0,e.pointerType="keyboard",n=ie(t,"keyboard"));let o=t.currentTarget,i=t=>{Q(t,o)&&!t.repeat&&b(o,M(t))&&e.target&&le(te(e.target,t),"keyboard")};z(f(t.currentTarget),"keyup",A(i,r),!0),n&&t.stopPropagation(),t.metaKey&&D()&&e.metaKeyEvents?.set(t.key,t.nativeEvent)}else"Meta"===t.key&&(e.metaKeyEvents=/* @__PURE__ */new Map)},onClick(t){if((!t||b(t.currentTarget,M(t)))&&t&&0===t.button&&!e.isTriggeringEvent&&!L.isOpening){let r=!0;if(g&&t.preventDefault(),e.ignoreEmulatedMouseEvents||e.isPressed||"virtual"!==e.pointerType&&!S(t.nativeEvent)){if(e.isPressed&&"keyboard"!==e.pointerType){let n=e.pointerType||t.nativeEvent.pointerType||"virtual",o=le(te(t.currentTarget,t),n),i=ae(te(t.currentTarget,t),n,!0);r=o&&i,e.isOverTarget=!1,ge(t),pe(t)}}else{let e=ie(t,"virtual"),n=le(t,"virtual"),o=ae(t,"virtual");ge(t),r=e&&n&&o}e.ignoreEmulatedMouseEvents=!1,r&&t.stopPropagation()}}},r=t=>{if(e.isPressed&&e.target&&Q(t,e.target)){ne(M(t),t.key)&&t.preventDefault();let r=M(t),n=b(e.target,r);ae(te(e.target,t),"keyboard",n),n&&ve(t,e.target),oe(),"Enter"!==t.key&&J(e.target)&&b(e.target,r)&&!t[R]&&(t[R]=!0,L(e.target,t,!1)),e.isPressed=!1,e.metaKeyEvents?.delete(t.key)}else if("Meta"===t.key&&e.metaKeyEvents?.size){let t=e.metaKeyEvents;e.metaKeyEvents=void 0;for(let r of t.values())e.target?.dispatchEvent(new KeyboardEvent("keyup",r))}};if("undefined"!=typeof PointerEvent){t.onPointerDown=t=>{if(0!==t.button||!b(t.currentTarget,M(t)))return;if(k(t.nativeEvent))return void(e.pointerType="virtual");e.pointerType=t.pointerType;let o=!0;if(!e.isPressed){e.isPressed=!0,e.isOverTarget=!0,e.activePointerId=t.pointerId,e.target=t.currentTarget,C||B(e.target),o=ie(t,e.pointerType);let i=M(t);"releasePointerCapture"in i&&("hasPointerCapture"in i?i.hasPointerCapture(t.pointerId)&&i.releasePointerCapture(t.pointerId):i.releasePointerCapture(t.pointerId)),z(f(t.currentTarget),"pointerup",r,!1),z(f(t.currentTarget),"pointercancel",n,!1)}o&&t.stopPropagation()},t.onMouseDown=t=>{if(b(t.currentTarget,M(t))&&0===t.button){if(m){let r=O(t.target);r&&e.disposables.push(r)}t.stopPropagation()}},t.onPointerUp=t=>{b(t.currentTarget,M(t))&&"virtual"!==e.pointerType&&(0!==t.button||e.isPressed||le(t,e.pointerType||t.pointerType))},t.onPointerEnter=t=>{t.pointerId===e.activePointerId&&e.target&&!e.isOverTarget&&null!=e.pointerType&&(e.isOverTarget=!0,ie(te(e.target,t),e.pointerType))},t.onPointerLeave=t=>{t.pointerId===e.activePointerId&&e.target&&e.isOverTarget&&null!=e.pointerType&&(e.isOverTarget=!1,ae(te(e.target,t),e.pointerType,!1),de(t))};let r=t=>{if(t.pointerId===e.activePointerId&&e.isPressed&&0===t.button&&e.target){if(b(e.target,M(t))&&null!=e.pointerType){let r=!1,n=setTimeout(()=>{e.isPressed&&e.target instanceof HTMLElement&&(r?pe(t):(K(e.target),e.target.click()))},80);z(t.currentTarget,"click",()=>r=!0,!0),e.disposables.push(()=>clearTimeout(n))}else pe(t);e.isOverTarget=!1}},n=e=>{pe(e)};t.onDragStart=e=>{b(e.currentTarget,M(e))&&pe(e)}}else if("test"===process.env.NODE_ENV){t.onMouseDown=t=>{if(0!==t.button||!b(t.currentTarget,M(t)))return;if(e.ignoreEmulatedMouseEvents)return void t.stopPropagation();if(e.isPressed=!0,e.isOverTarget=!0,e.target=t.currentTarget,e.pointerType=S(t.nativeEvent)?"virtual":"mouse",F(()=>ie(t,e.pointerType))&&t.stopPropagation(),m){let r=O(t.target);r&&e.disposables.push(r)}z(f(t.currentTarget),"mouseup",r,!1)},t.onMouseEnter=t=>{if(!b(t.currentTarget,M(t)))return;let r=!0;e.isPressed&&!e.ignoreEmulatedMouseEvents&&null!=e.pointerType&&(e.isOverTarget=!0,r=ie(t,e.pointerType)),r&&t.stopPropagation()},t.onMouseLeave=t=>{if(!b(t.currentTarget,M(t)))return;let r=!0;e.isPressed&&!e.ignoreEmulatedMouseEvents&&null!=e.pointerType&&(e.isOverTarget=!1,r=ae(t,e.pointerType,!1),de(t)),r&&t.stopPropagation()},t.onMouseUp=t=>{b(t.currentTarget,M(t))&&(e.ignoreEmulatedMouseEvents||0!==t.button||e.isPressed||le(t,e.pointerType||"mouse"))};let r=t=>{0===t.button&&(e.ignoreEmulatedMouseEvents?e.ignoreEmulatedMouseEvents=!1:(e.target&&b(e.target,M(t))&&null!=e.pointerType||pe(t),e.isOverTarget=!1))};t.onTouchStart=t=>{if(!b(t.currentTarget,M(t)))return;let r=function(e){const{targetTouches:t}=e;return t.length>0?t[0]:null}(t.nativeEvent);r&&(e.activePointerId=r.identifier,e.ignoreEmulatedMouseEvents=!0,e.isOverTarget=!0,e.isPressed=!0,e.target=t.currentTarget,e.pointerType="touch",C||B(e.target),ie(ee(e.target,t),e.pointerType)&&t.stopPropagation(),z(y(t.currentTarget),"scroll",n,!0))},t.onTouchMove=t=>{if(!b(t.currentTarget,M(t)))return;if(!e.isPressed)return void t.stopPropagation();let r=Z(t.nativeEvent,e.activePointerId),n=!0;r&&re(r,t.currentTarget)?e.isOverTarget||null==e.pointerType||(e.isOverTarget=!0,n=ie(ee(e.target,t),e.pointerType)):e.isOverTarget&&null!=e.pointerType&&(e.isOverTarget=!1,n=ae(ee(e.target,t),e.pointerType,!1),de(ee(e.target,t))),n&&t.stopPropagation()},t.onTouchEnd=t=>{if(!b(t.currentTarget,M(t)))return;if(!e.isPressed)return void t.stopPropagation();let r=Z(t.nativeEvent,e.activePointerId),n=!0;r&&re(r,t.currentTarget)&&null!=e.pointerType?(le(ee(e.target,t),e.pointerType),n=ae(ee(e.target,t),e.pointerType),ve(t.nativeEvent,e.target)):e.isOverTarget&&null!=e.pointerType&&(n=ae(ee(e.target,t),e.pointerType,!1)),n&&t.stopPropagation(),e.isPressed=!1,e.activePointerId=null,e.isOverTarget=!1,e.ignoreEmulatedMouseEvents=!0,e.target&&!C&&X(e.target),oe()},t.onTouchCancel=t=>{b(t.currentTarget,M(t))&&(t.stopPropagation(),e.isPressed&&pe(ee(e.target,t)))};let n=t=>{e.isPressed&&b(M(t),e.target)&&pe({currentTarget:e.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})};t.onDragStart=e=>{b(e.currentTarget,M(e))&&pe(e)}}return t},[z,g,m,oe,C,de,ie,ge,ve]);return a(()=>{if(!_||"test"===process.env.NODE_ENV)return;const e=f(_.current);if(!e||!e.head||e.getElementById(W))return;const t=e.createElement("style");t.id=W;let r=function(e){let t=e??("undefined"!=typeof document?document:void 0);if(!t)return Y(t);if(j.has(t))return j.get(t);let r=t.querySelector('meta[property="csp-nonce"]'),n=r&&r instanceof y(r).HTMLMetaElement&&(r.nonce||r.content)||Y(t)||void 0;return void 0!==n&&j.set(t,n),n}(e);r&&(t.nonce=r),t.textContent=`\n@layer {\n [${$}] {\n touch-action: pan-x pan-y pinch-zoom;\n }\n}\n `.trim(),e.head.prepend(t)},[_]),a(()=>{let e=H.current;return()=>{C||X(e.target??void 0);for(let t of e.disposables)t();e.disposables=[]}},[C]),{isPressed:v||N,pressProps:w(V,fe,{[$]:!0})}}function J(e){return"A"===e.tagName&&e.hasAttribute("href")}function Q(e,t){const{key:r,code:n}=e,o=t,i=o.getAttribute("role");return!("Enter"!==r&&" "!==r&&"Spacebar"!==r&&"Space"!==n||o instanceof y(o).HTMLInputElement&&!ie(o,r)||o instanceof y(o).HTMLTextAreaElement||o.isContentEditable||("link"===i||!i&&J(o))&&"Enter"!==r)}function Z(e,t){const r=e.changedTouches;for(let n=0;n<r.length;n++){const e=r[n];if(e.identifier===t)return e}return null}function ee(e,t){let r=0,n=0;return t.targetTouches&&1===t.targetTouches.length&&(r=t.targetTouches[0].clientX,n=t.targetTouches[0].clientY),{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:r,clientY:n}}function te(e,t){let r=t.clientX,n=t.clientY;return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:r,clientY:n,key:t.key}}function re(e,t){let r=t.getBoundingClientRect(),n=function(e){let t=0,r=0;return void 0!==e.width?t=e.width/2:void 0!==e.radiusX&&(t=e.radiusX),void 0!==e.height?r=e.height/2:void 0!==e.radiusY&&(r=e.radiusY),{top:e.clientY-r,right:e.clientX+t,bottom:e.clientY+r,left:e.clientX-t}}(e);return i=n,!((o=r).left>i.right||i.left>o.right||o.top>i.bottom||i.top>o.bottom);var o,i}function ne(e,t){return e instanceof HTMLInputElement?!ie(e,t):function(e){return!(e instanceof HTMLInputElement||(e instanceof HTMLButtonElement?"submit"===e.type||"reset"===e.type:J(e)))}(e)}const oe=/* @__PURE__ */new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function ie(e,t){return"checkbox"===e.type||"radio"===e.type?" "===t:oe.has(e.type)}const se={activeMenuId:null,setActiveMenu:e=>{se.activeMenuId=e},getActiveMenu:()=>se.activeMenuId},ae=(e,t,r,n)=>{const o=()=>{const e=n.current;if(e){const t=(e=>{const t=Array.from(document.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')),r=t.indexOf(e);return-1!==r&&r<t.length-1?t[r+1]:t[0]})(e);r(),setTimeout(()=>{t&&t.focus()},10)}else r()},i=()=>e.current?Array.from(e.current.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')):[];return{handleMenuKeyDown:e=>{if("Escape"===e.key)return e.preventDefault(),r(),void(n.current&&n.current.focus());if("Tab"===e.key&&t)return e.preventDefault(),void o();((e,t)=>{if(0===t.length)return;const r=document.activeElement,n=t.indexOf(r);"ArrowDown"===e.key?(e.preventDefault(),t[n<t.length-1?n+1:0].focus()):"ArrowUp"===e.key?(e.preventDefault(),t[n>0?n-1:t.length-1].focus()):"Home"===e.key?(e.preventDefault(),t[0].focus()):"End"===e.key&&(e.preventDefault(),t[t.length-1].focus())})(e,i())},getFocusableElements:i}},ue=l(function({children:e,...t},s){const a=r.Children.only(e),u=function(e){const t=n(null),r=n(void 0),s=o(t=>{if("function"==typeof e){const r=e,n=r(t);return()=>{"function"==typeof n?n():r(null)}}if(e)return e.current=t,()=>{e.current=null}},[e]);return i(()=>({get current(){return t.current},set current(e){t.current=e,r.current&&(r.current(),r.current=void 0),null!=e&&(r.current=s(e))}}),[s])}(s),l={...t,...a.props},{buttonProps:c}=function(e,t){let r,{elementType:n="button",isDisabled:o,onPress:i,onPressStart:s,onPressEnd:a,onPressUp:u,onPressChange:l,preventFocusOnPress:c,allowFocusWhenDisabled:p,onClick:d,href:g,target:v,rel:f,type:m="button"}=e;r="button"===n?{type:m,disabled:o,form:e.form,formAction:e.formAction,formEncType:e.formEncType,formMethod:e.formMethod,formNoValidate:e.formNoValidate,formTarget:e.formTarget,name:e.name,value:e.value}:{role:"button",href:"a"!==n||o?void 0:g,target:"a"===n?v:void 0,type:"input"===n?m:void 0,disabled:"input"===n?o:void 0,"aria-disabled":o&&"input"!==n?o:void 0,rel:"a"===n?f:void 0};let{pressProps:y,isPressed:T}=z({onPressStart:s,onPressEnd:a,onPressChange:l,onPress:i,onPressUp:u,onClick:d,isDisabled:o,preventFocusOnPress:c,ref:t}),{focusableProps:E}=x(e,t);p&&(E.tabIndex=o?-1:E.tabIndex);let h=w(E,y,C(e,{labelable:!0}));return{isPressed:T,buttonProps:w(r,h,{"aria-haspopup":e["aria-haspopup"],"aria-expanded":e["aria-expanded"],"aria-controls":e["aria-controls"],"aria-pressed":e["aria-pressed"],"aria-current":e["aria-current"],"aria-disabled":e["aria-disabled"]})}}(l,u),d=a.type!==p&&a.type!==g?c:l;return r.cloneElement(a,{...d,ref:u})}),le=({label:o,"aria-label":i,isDisabled:u=!1,placement:l="bottom start",buttonEmphasis:g="tertiary",buttonStyleVariant:v="neutral",buttonOpenVariant:f=v,alignToElementId:m,shouldFlip:y=!0,openOnHoverAndFocus:T=!1,allowTabOut:E=!0,closeOnHover:h=!0,children:P,iconStartProps:b,iconEndProps:M,onOpenChange:k})=>{const O=`menu-${c()}`,K=n(null),S=n(null),w=n(null),{isOpen:I,setIsOpen:L,preventFocusOpen:A,setPreventFocusOpen:D,openedViaKeyboard:x,setOpenedViaKeyboard:C,closeMenu:F,openMenu:N,toggleMenu:U}=((e,t)=>{const r=n(!1),[o,i]=s(!1),[u,l]=s(!1),[c,p]=s(!1),d=()=>{se.setActiveMenu(null),i(!1),l(!0),setTimeout(()=>{l(!1)},300)},g=(t=!1)=>{se.getActiveMenu()&&se.getActiveMenu()!==e&&document.dispatchEvent(new CustomEvent("menu:closeAll",{detail:{exceptMenuId:e}})),se.setActiveMenu(e),i(!0),p(t)};return a(()=>{t&&r.current&&t(o)},[o]),a(()=>{r.current=!0},[]),{isOpen:o,setIsOpen:i,preventFocusOpen:u,setPreventFocusOpen:l,openedViaKeyboard:c,setOpenedViaKeyboard:p,closeMenu:d,openMenu:g,toggleMenu:()=>{if(o)d();else{const e="BUTTON"===document.activeElement?.tagName;g(e)}}}})(O,k),{handleMenuKeyDown:H,getFocusableElements:B}=ae(w,E,F,K);((e,t,r,n,o,i,s,u,l,c)=>{a(()=>{if(!e||t)return;let r=null,i=!1;const a=()=>{r&&(clearTimeout(r),r=null)},p=()=>{const e=o.current,t=s.current;if(!e)return;const n=e.matches(":hover"),a=t?.matches(":hover")||!1;n||a||!i||(i=!1,r=setTimeout(d,300))},d=()=>{se.getActiveMenu()===n&&c()},g=()=>{setTimeout(p,50)},v=()=>{a(),i||(i=!0,u||(r=setTimeout(()=>{l(!1)},300)))},f=()=>{g()},m=()=>{a(),i=!0},y=()=>{g()},T=o.current,E=s.current;return T&&(T.addEventListener("mouseenter",v),T.addEventListener("mouseleave",f)),u&&E&&(E.addEventListener("mouseenter",m),E.addEventListener("mouseleave",y)),()=>{T&&(T.removeEventListener("mouseenter",v),T.removeEventListener("mouseleave",f)),E&&(E.removeEventListener("mouseenter",m),E.removeEventListener("mouseleave",y)),a()}},[e,t,n,u,l,c,o,s]),a(()=>{if(!e||t)return;const s=o.current;if(!s)return;let a=null,u=!1;const p=()=>{r||(a&&clearTimeout(a),u=!0,a=setTimeout(()=>{const e=document.activeElement===s&&document.activeElement!==document.body;l(e),setTimeout(()=>{u=!1},500)},300))},d=e=>{if(u)return;a&&clearTimeout(a);const t=i.current,r=e.relatedTarget;t&&!t.contains(r)&&(a=setTimeout(()=>{se.getActiveMenu()===n&&c()},200))};return s.addEventListener("focus",p),s.addEventListener("blur",d),()=>{s.removeEventListener("focus",p),s.removeEventListener("blur",d),a&&clearTimeout(a)}},[e,t,r,n,l,c,i,o])})(T,u,A,O,K,S,w,I,N,F),((e,t,r,n,o,i)=>{a(()=>{if(!t||!r||n)return;let o=null;const s=()=>{o&&(clearTimeout(o),o=null)},a=()=>{s(),o=setTimeout(()=>{i()},200)},u=()=>{s()},l=e.current;return l&&(l.addEventListener("mouseenter",u),l.addEventListener("mouseleave",a)),()=>{l&&(l.removeEventListener("mouseenter",u),l.removeEventListener("mouseleave",a)),s()}},[t,r,n,o,i,e])})(w,I,h,T,O,F),((e,t,r,n,o)=>{a(()=>{if(!r)return;const n=r=>{const n=r.target,i=t.current,s=e.current,a=i?.contains(n)&&!s?.contains(n);s&&s.contains(n)?n.closest('[data-menu-close="true"]')&&o():a||o()};return document.addEventListener("click",n,!0),()=>{document.removeEventListener("click",n,!0)}},[r,n,o,e,t])})(w,S,I,O,F);const X=I?f:v;a(()=>{const e=e=>{const{exceptMenuId:t}=e.detail||{};t&&t===O||I&&L(!1)};return document.addEventListener("menu:closeAll",e),()=>{document.removeEventListener("menu:closeAll",e)}},[O,I,L]),a(()=>{const e=se.getActiveMenu()===O;e!==I&&L(e)},[O,I,L]),a(()=>{if(I&&x&&w.current){const e=B();e.length>0&&setTimeout(()=>{e[0].focus()},50)}},[I,x,B]),a(()=>{I||C(!1)},[I,C]);const Y={isOpen:I,open:()=>N(),close:F,toggle:()=>U(),setOpen:e=>{e?N():F()}},j={ref:K,"aria-haspopup":!0,"aria-expanded":I,onPress:()=>{D(!1);const e=document.activeElement===K.current;C(e),U()},onKeyDown:e=>{"Escape"===e.key&&I?(e.preventDefault(),F(),D(!0),setTimeout(()=>{D(!1)},300)):"ArrowDown"!==e.key||I||(e.preventDefault(),N(!0))}},q=r.Children.toArray(P);let G=P,R=/* @__PURE__ */t(p,{emphasis:g,styleVariant:X,isDisabled:u,iconStartProps:b,iconEndProps:M,...j,children:o});const W=q.findIndex(e=>e?.type===ue),$=q[W];return r.isValidElement($)&&(R=r.cloneElement($,j),G=q.filter((e,t)=>t!==W)),/* @__PURE__ */e("div",{className:_,ref:S,children:[R,I&&/* @__PURE__ */t(d,{state:Y,triggerRef:(()=>{if(m){const e=document.getElementById(m);if(e)return{current:e}}return K})(),hasArrow:!1,placement:l,shouldFlip:y,isNonModal:!0,allowTabOut:E,autoFocus:x,children:/* @__PURE__ */t("div",{className:V,ref:w,onKeyDown:H,role:"menu","aria-label":i||o,tabIndex:-1,children:G})})]})};le.Trigger=ue;export{le as Menu,ue as Trigger,le as default};
|
|
2
2
|
//# sourceMappingURL=Menu.js.map
|