@alto-avios/alto-ui 3.6.0 → 3.8.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.
Files changed (41) hide show
  1. package/dist/assets/AviosCurrency.css +1 -0
  2. package/dist/assets/Button.css +1 -1
  3. package/dist/assets/CalloutBanner.css +1 -1
  4. package/dist/components/AviosCurrency/AviosCurrency.d.ts +29 -0
  5. package/dist/components/AviosCurrency/AviosCurrency.js +166 -0
  6. package/dist/components/AviosCurrency/AviosCurrency.js.map +1 -0
  7. package/dist/components/AviosCurrency/index.d.ts +1 -0
  8. package/dist/components/AviosCurrency/index.js +5 -0
  9. package/dist/components/AviosCurrency/index.js.map +1 -0
  10. package/dist/components/AviosCurrencySymbol/AviosCurrencySymbol.d.ts +5 -0
  11. package/dist/components/Button/Button.js +29 -29
  12. package/dist/components/CalloutBanner/CalloutBanner.d.ts +52 -13
  13. package/dist/components/CalloutBanner/CalloutBanner.js +40 -28
  14. package/dist/components/CalloutBanner/CalloutBanner.js.map +1 -1
  15. package/dist/components/CreditCardNumberField/CreditCardNumberField.js +2 -2
  16. package/dist/components/CreditCardSecurityCodeField/CreditCardSecurityCodeField.js +2 -2
  17. package/dist/components/Dialog/Dialog.d.ts +5 -0
  18. package/dist/components/Dialog/Dialog.js +3 -6
  19. package/dist/components/Dialog/Dialog.js.map +1 -1
  20. package/dist/components/FieldHeader/FieldHeader.d.ts +2 -1
  21. package/dist/components/FieldHeader/FieldHeader.js +3 -2
  22. package/dist/components/FieldHeader/FieldHeader.js.map +1 -1
  23. package/dist/components/Menu/Menu.d.ts +8 -2
  24. package/dist/components/Menu/Menu.js +286 -205
  25. package/dist/components/Menu/Menu.js.map +1 -1
  26. package/dist/components/PhoneNumberField/PhoneNumberField.js +1 -1
  27. package/dist/components/Slider/Slider.js +5 -1
  28. package/dist/components/Slider/Slider.js.map +1 -1
  29. package/dist/components/Spacer/Spacer.d.ts +2 -2
  30. package/dist/components/_base/Field/Field.d.ts +9 -0
  31. package/dist/components/_base/Field/Field.js +6 -1
  32. package/dist/components/_base/Field/Field.js.map +1 -1
  33. package/dist/components/index.d.ts +2 -0
  34. package/dist/components/index.js +2 -0
  35. package/dist/components/index.js.map +1 -1
  36. package/dist/index.js +2 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/utils/border/border.d.ts +1 -1
  39. package/dist/utils/flex/flex.d.ts +3 -3
  40. package/dist/utils/padding/padding.d.ts +7 -7
  41. package/package.json +14 -16
@@ -23,6 +23,11 @@ export interface DialogProps extends AriaDialogProps {
23
23
  * Shows/hides the close (X) button in header
24
24
  */
25
25
  hasDismissButton?: boolean;
26
+ /**
27
+ * Text for the close button's tooltip and aria-label
28
+ * @default "Close dialog"
29
+ */
30
+ dismissButtonLabel?: string;
26
31
  /**
27
32
  * ARIA role - use 'alertdialog' for important messages
28
33
  */
@@ -45,6 +45,7 @@ function DialogWrapper({
45
45
  size = "medium",
46
46
  modal = false,
47
47
  hasDismissButton = true,
48
+ dismissButtonLabel = "Close dialog",
48
49
  role = "dialog",
49
50
  id
50
51
  } = props;
@@ -74,11 +75,7 @@ function DialogWrapper({
74
75
  const headerId = props["aria-labelledby"] || `${id}-header`;
75
76
  const contentId = props["aria-describedby"] || `${id}-content`;
76
77
  return /* @__PURE__ */ jsxs("div", { className: `${styles.dialogWrapper} ${modal ? styles.modal : ""}`, children: [
77
- modal && /* @__PURE__ */ jsx("div", { className: styles.overlay, ...underlayProps, onClick: onClose, onKeyDown: (e) => {
78
- if (e.key === "Enter" || e.key === "Space") {
79
- onClose == null ? void 0 : onClose();
80
- }
81
- }, role: "button", tabIndex: 0 }),
78
+ modal && /* @__PURE__ */ jsx("div", { className: styles.overlay, ...underlayProps, onClick: onClose, "aria-hidden": "true" }),
82
79
  /* @__PURE__ */ jsx(FocusScope, { contain: true, restoreFocus: true, autoFocus: false, children: /* @__PURE__ */ jsxs("div", { ...overlayProps, ...dialogProps, ...modalProps, ref, className: `${styles.dialog} ${styles[size]}`, "data-size": size, id, role, "aria-labelledby": headerId, "aria-describedby": contentId, children: [
83
80
  /* @__PURE__ */ jsxs("div", { className: `${styles.dialogContent} ${!hasHeader ? styles.noHeader : ""}`, children: [
84
81
  hasHeader && /* @__PURE__ */ jsx("div", { className: styles.dialogHeader, id: headerId, children: headerChild }),
@@ -88,7 +85,7 @@ function DialogWrapper({
88
85
  iconName: "close",
89
86
  iconPrefix: "far",
90
87
  iconSize: "1x"
91
- }, tooltipLabel: "Close dialog", "aria-label": "Close dialog" }) })
88
+ }, tooltipLabel: dismissButtonLabel, "aria-label": dismissButtonLabel }) })
92
89
  ] }) })
93
90
  ] });
94
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Dialog.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,6 +6,7 @@ export interface FieldHeaderProps {
6
6
  isInvalid?: boolean;
7
7
  isRequired?: boolean;
8
8
  labelFor?: string;
9
+ optionalTranslation?: string;
9
10
  }
10
- export declare const FieldHeader: ({ label, description, isInvalid, isRequired, errorMessage, labelFor, }: FieldHeaderProps) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const FieldHeader: ({ label, description, isInvalid, isRequired, errorMessage, labelFor, optionalTranslation, }: FieldHeaderProps) => import("react/jsx-runtime").JSX.Element;
11
12
  export default FieldHeader;
@@ -13,12 +13,13 @@ const FieldHeader = ({
13
13
  isInvalid,
14
14
  isRequired,
15
15
  errorMessage,
16
- labelFor
16
+ labelFor,
17
+ optionalTranslation = "Optional"
17
18
  }) => {
18
19
  return /* @__PURE__ */ jsxs("div", { className: styles.fieldHeader, "data-invalid": isInvalid ? true : void 0, children: [
19
20
  /* @__PURE__ */ jsx("div", { className: styles["label-container"], children: label && /* @__PURE__ */ jsxs(FieldLabel, { required: isRequired ? true : void 0, htmlFor: labelFor, children: [
20
21
  label,
21
- !isRequired && ` (Optional)`
22
+ !isRequired && ` (${optionalTranslation})`
22
23
  ] }) }),
23
24
  description && /* @__PURE__ */ jsx(FieldDescription, { children: description }),
24
25
  /* @__PURE__ */ jsx(FieldError, { children: errorMessage })
@@ -1 +1 @@
1
- {"version":3,"file":"FieldHeader.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FieldHeader.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -57,9 +57,15 @@ export interface MenuProps {
57
57
  * @default true
58
58
  */
59
59
  allowTabOut?: boolean;
60
+ /**
61
+ * Whether the menu should close when mouse leaves the menu area
62
+ * @default true
63
+ */
64
+ closeOnHover?: boolean;
60
65
  /**
61
66
  * The content to display inside the menu (as JSX children)
62
- * Can be custom HTML content
67
+ * Can be custom HTML content. Interactive elements work normally.
68
+ * Add data-menu-close="true" to elements that should close the menu when clicked.
63
69
  */
64
70
  children: React.ReactNode;
65
71
  /**
@@ -71,5 +77,5 @@ export interface MenuProps {
71
77
  */
72
78
  iconEndProps?: ButtonProps['iconEndProps'];
73
79
  }
74
- export declare const Menu: ({ label, "aria-label": ariaLabel, isDisabled, placement, buttonEmphasis, buttonStyleVariant, buttonOpenVariant, alignToElementId, shouldFlip, openOnHoverAndFocus, allowTabOut, children, iconStartProps, iconEndProps, }: MenuProps) => import("react/jsx-runtime").JSX.Element;
80
+ export declare const Menu: ({ label, "aria-label": ariaLabel, isDisabled, placement, buttonEmphasis, buttonStyleVariant, buttonOpenVariant, alignToElementId, shouldFlip, openOnHoverAndFocus, allowTabOut, closeOnHover, children, iconStartProps, iconEndProps, }: MenuProps) => import("react/jsx-runtime").JSX.Element;
75
81
  export default Menu;