@jobber/components 9.1.0 → 9.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.
Files changed (90) hide show
  1. package/dist/ActivityIndicator/ActivityIndicator.d.ts +1 -1
  2. package/dist/ActivityIndicator/index.cjs +3 -0
  3. package/dist/ActivityIndicator/index.mjs +3 -0
  4. package/dist/ActivityIndicator-cjs.js +5 -1
  5. package/dist/ActivityIndicator-es.js +5 -1
  6. package/dist/Autocomplete/index.cjs +1 -0
  7. package/dist/Autocomplete/index.mjs +1 -0
  8. package/dist/Autocomplete-es.js +1 -1
  9. package/dist/Chips/InternalChipDismissible/index.cjs +1 -0
  10. package/dist/Chips/InternalChipDismissible/index.mjs +1 -0
  11. package/dist/Chips/index.cjs +1 -0
  12. package/dist/Chips/index.mjs +1 -0
  13. package/dist/ConfirmationModal/index.cjs +3 -0
  14. package/dist/ConfirmationModal/index.mjs +3 -0
  15. package/dist/ConfirmationModal-cjs.js +21 -10
  16. package/dist/ConfirmationModal-es.js +21 -10
  17. package/dist/DataList/components/DataListFilters/components/DataListSort/index.cjs +3 -2
  18. package/dist/DataList/components/DataListFilters/components/DataListSort/index.mjs +3 -2
  19. package/dist/DataList/components/DataListFilters/index.cjs +3 -2
  20. package/dist/DataList/components/DataListFilters/index.mjs +3 -2
  21. package/dist/DataList/components/DataListLoadMore/index.cjs +3 -0
  22. package/dist/DataList/components/DataListLoadMore/index.mjs +3 -0
  23. package/dist/DataList/components/DataListSearch/index.cjs +1 -0
  24. package/dist/DataList/components/DataListSearch/index.mjs +1 -0
  25. package/dist/DataList/index.cjs +3 -2
  26. package/dist/DataList/index.mjs +3 -2
  27. package/dist/DataTable/index.cjs +1 -0
  28. package/dist/DataTable/index.mjs +1 -0
  29. package/dist/DatePicker/DatePicker.messages.d.ts +14 -0
  30. package/dist/DatePicker/index.cjs +2 -1
  31. package/dist/DatePicker/index.mjs +2 -1
  32. package/dist/DatePicker-cjs.js +24 -5
  33. package/dist/DatePicker-es.js +24 -5
  34. package/dist/FilterPicker/components/FilterPickerContent/FilterPickerContentList/index.cjs +3 -0
  35. package/dist/FilterPicker/components/FilterPickerContent/FilterPickerContentList/index.mjs +3 -0
  36. package/dist/FilterPicker/components/FilterPickerContent/index.cjs +3 -0
  37. package/dist/FilterPicker/components/FilterPickerContent/index.mjs +3 -0
  38. package/dist/FilterPicker/index.cjs +3 -2
  39. package/dist/FilterPicker/index.mjs +3 -2
  40. package/dist/FormatFile/index.cjs +3 -0
  41. package/dist/FormatFile/index.mjs +3 -0
  42. package/dist/Gallery/index.cjs +3 -0
  43. package/dist/Gallery/index.mjs +3 -0
  44. package/dist/InputDate/InputDate.messages.d.ts +6 -0
  45. package/dist/InputDate/index.cjs +3 -2
  46. package/dist/InputDate/index.mjs +3 -2
  47. package/dist/InputDate-cjs.js +10 -1
  48. package/dist/InputDate-es.js +10 -1
  49. package/dist/InputEmail/index.cjs +1 -0
  50. package/dist/InputEmail/index.mjs +1 -0
  51. package/dist/InputPhoneNumber/index.cjs +1 -0
  52. package/dist/InputPhoneNumber/index.mjs +1 -0
  53. package/dist/InputText/index.cjs +1 -0
  54. package/dist/InputText/index.mjs +1 -0
  55. package/dist/LegacySelect/index.cjs +1 -0
  56. package/dist/LegacySelect/index.mjs +1 -0
  57. package/dist/LightBox/LightBox.messages.d.ts +22 -0
  58. package/dist/LightBox/index.cjs +2 -0
  59. package/dist/LightBox/index.mjs +2 -0
  60. package/dist/LightBox-cjs.js +37 -7
  61. package/dist/LightBox-es.js +37 -7
  62. package/dist/Menu/menuComposableShared.d.ts +1 -1
  63. package/dist/Menu-es.js +1 -1
  64. package/dist/Modal/Modal.messages.d.ts +6 -0
  65. package/dist/Modal/index.cjs +13 -2
  66. package/dist/Modal/index.mjs +14 -3
  67. package/dist/Popover/Popover.messages.d.ts +6 -0
  68. package/dist/Popover/index.cjs +2 -0
  69. package/dist/Popover/index.mjs +2 -0
  70. package/dist/Popover-cjs.js +10 -1
  71. package/dist/Popover-es.js +10 -1
  72. package/dist/Spinner/index.cjs +3 -0
  73. package/dist/Spinner/index.mjs +3 -0
  74. package/dist/Spinner-cjs.js +4 -1
  75. package/dist/Spinner-es.js +4 -1
  76. package/dist/common.messages-cjs.js +20 -0
  77. package/dist/common.messages-es.js +18 -0
  78. package/dist/docs/ActivityIndicator/ActivityIndicator.md +1 -1
  79. package/dist/docs/ConfirmationModal/ConfirmationModal.md +2 -2
  80. package/dist/docs/LightBox/LightBox.md +1 -1
  81. package/dist/floating-ui.react-es.js +1 -1
  82. package/dist/index.cjs +2 -1
  83. package/dist/index.mjs +2 -1
  84. package/dist/primitives/InputNumberExperimental/index.cjs +3 -0
  85. package/dist/primitives/InputNumberExperimental/index.mjs +3 -0
  86. package/dist/primitives/index.cjs +3 -0
  87. package/dist/primitives/index.mjs +3 -0
  88. package/dist/sharedHelpers/i18n/index.cjs +3 -15
  89. package/dist/sharedHelpers/i18n/index.mjs +2 -19
  90. package/package.json +2 -2
@@ -4,6 +4,7 @@ import ReactDOM__default from 'react-dom';
4
4
  import { useFocusTrap, useDebounce, useIsMounted, useRefocusOnActivator, useOnKeyDown, useBreakpoints } from '@jobber/hooks';
5
5
  import classnames from 'classnames';
6
6
  import { n as noop } from './noop-es.js';
7
+ import { d as defineMessages, u as useAtlantisI18n } from './useAtlantisI18n-es.js';
7
8
  import { B as ButtonDismiss } from './ButtonDismiss-es.js';
8
9
  import { T as Text } from './Text-es.js';
9
10
  import { B as Button } from './Button-es.js';
@@ -167,10 +168,34 @@ function togglePrintStyles(open) {
167
168
  }
168
169
  }
169
170
 
171
+ const lightBoxMessages = defineMessages({
172
+ close: {
173
+ en: "Close",
174
+ es: "Cerrar",
175
+ },
176
+ lightbox: {
177
+ en: "Lightbox",
178
+ es: "Lightbox",
179
+ },
180
+ previousImage: {
181
+ en: "Previous image",
182
+ es: "Imagen anterior",
183
+ },
184
+ nextImage: {
185
+ en: "Next image",
186
+ es: "Imagen siguiente",
187
+ },
188
+ openInNewTab: {
189
+ en: "Open image in new tab",
190
+ es: "Abrir imagen en nueva pestaña",
191
+ },
192
+ });
193
+
170
194
  function LightBoxContent() {
171
195
  const { open, lightboxRef, handleMouseMove } = useLightBoxContext();
196
+ const { t } = useAtlantisI18n(lightBoxMessages);
172
197
  const mounted = useIsMounted();
173
- const template = (React__default.createElement(React__default.Fragment, null, open && (React__default.createElement("div", { className: styles.lightboxWrapper, tabIndex: 0, "aria-label": "Lightbox", key: "Lightbox", ref: lightboxRef, onMouseMove: handleMouseMove },
198
+ const template = (React__default.createElement(React__default.Fragment, null, open && (React__default.createElement("div", { className: styles.lightboxWrapper, tabIndex: 0, "aria-label": t("lightbox"), key: "Lightbox", ref: lightboxRef, onMouseMove: handleMouseMove },
174
199
  React__default.createElement(LightBoxBackground, null),
175
200
  React__default.createElement(LightBoxOverlay, null),
176
201
  React__default.createElement(LightBoxToolbar, null),
@@ -184,13 +209,15 @@ function LightBoxContent() {
184
209
  }
185
210
  function PreviousButton({ onClick, hideButton, className }) {
186
211
  const { mediumAndUp } = useBreakpoints();
212
+ const { t } = useAtlantisI18n(lightBoxMessages);
187
213
  return (React__default.createElement("div", { className: `${className} ${hideButton ? styles.buttonHidden : styles.buttonVisible}` },
188
- React__default.createElement(Button, { size: mediumAndUp ? "large" : "small", variation: "subtle", type: "secondary", icon: "arrowLeft", ariaLabel: "Previous image", onClick: onClick })));
214
+ React__default.createElement(Button, { size: mediumAndUp ? "large" : "small", variation: "subtle", type: "secondary", icon: "arrowLeft", ariaLabel: t("previousImage"), onClick: onClick })));
189
215
  }
190
216
  function NextButton({ onClick, hideButton, className }) {
191
217
  const { mediumAndUp } = useBreakpoints();
218
+ const { t } = useAtlantisI18n(lightBoxMessages);
192
219
  return (React__default.createElement("div", { className: `${className} ${hideButton ? styles.buttonHidden : styles.buttonVisible}` },
193
- React__default.createElement(Button, { size: mediumAndUp ? "large" : "small", variation: "subtle", type: "secondary", icon: "arrowRight", ariaLabel: "Next image", onClick: onClick })));
220
+ React__default.createElement(Button, { size: mediumAndUp ? "large" : "small", variation: "subtle", type: "secondary", icon: "arrowRight", ariaLabel: t("nextImage"), onClick: onClick })));
194
221
  }
195
222
  /**
196
223
  * Blurred, desaturated copy of the current image rendered as a full-bleed
@@ -216,26 +243,29 @@ function LightBoxOverlay({ className }) {
216
243
  */
217
244
  function LightBoxToolbar() {
218
245
  const { images, currentImageIndex, handleRequestClose } = useLightBoxContext();
246
+ const { t } = useAtlantisI18n(lightBoxMessages);
219
247
  return (React__default.createElement(AtlantisThemeContextProvider, { dangerouslyOverrideTheme: "dark" },
220
248
  React__default.createElement("div", { className: styles.toolbar },
221
249
  React__default.createElement(LightBoxOpenInNewTabAction, null),
222
250
  React__default.createElement("div", { className: styles.slideNumber },
223
251
  React__default.createElement(Text, null, `${currentImageIndex + 1}/${images.length}`)),
224
252
  React__default.createElement("div", { className: styles.closeButton },
225
- React__default.createElement(ButtonDismiss, { ariaLabel: "Close", onClick: handleRequestClose })))));
253
+ React__default.createElement(ButtonDismiss, { ariaLabel: t("close"), onClick: handleRequestClose })))));
226
254
  }
227
255
  /**
228
256
  * Opens the current image in a new browser tab. Included in the default
229
257
  * `LightBox.Toolbar`. Returns `null` if the current image has no `url`.
230
258
  */
231
- function LightBoxOpenInNewTabAction({ ariaLabel = "Open image in new tab", }) {
259
+ function LightBoxOpenInNewTabAction({ ariaLabel, }) {
232
260
  const { images, currentImageIndex } = useLightBoxContext();
261
+ const { t } = useAtlantisI18n(lightBoxMessages);
262
+ const effectiveAriaLabel = ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : t("openInNewTab");
233
263
  const currentImage = images[currentImageIndex];
234
264
  if (!(currentImage === null || currentImage === void 0 ? void 0 : currentImage.url))
235
265
  return null;
236
266
  return (React__default.createElement("div", { className: styles.leftAction },
237
- React__default.createElement(Tooltip, { message: ariaLabel },
238
- React__default.createElement(Button, { size: "small", variation: "subtle", type: "secondary", icon: "export", ariaLabel: ariaLabel, url: currentImage.url, external: true }))));
267
+ React__default.createElement(Tooltip, { message: effectiveAriaLabel },
268
+ React__default.createElement(Button, { size: "small", variation: "subtle", type: "secondary", icon: "export", ariaLabel: effectiveAriaLabel, url: currentImage.url, external: true }))));
239
269
  }
240
270
  /**
241
271
  * The animated hero image with swipe-to-navigate and slide animation.
@@ -6,7 +6,7 @@ export declare function resolveComposableBaseProps(props: {
6
6
  readonly style?: React.CSSProperties;
7
7
  readonly UNSAFE_className?: string;
8
8
  readonly UNSAFE_style?: React.CSSProperties;
9
- }): Pick<import("../utils/mergeUnsafeProps").UnsafeProps, "className" | "style">;
9
+ }): Pick<import("../utils/mergeUnsafeProps").UnsafeProps, "style" | "className">;
10
10
  export declare function hasMenuSlot(children: React.ReactNode, slot: MenuSlotName): boolean;
11
11
  export declare function resolveMenuTriggerRender({ children, render, }: {
12
12
  readonly children?: React.ReactNode;
package/dist/Menu-es.js CHANGED
@@ -2,7 +2,7 @@ import React__default, { useState, useRef, useId, useMemo } from 'react';
2
2
  import { useWindowDimensions, useRefocusOnActivator } from '@jobber/hooks';
3
3
  import classnames from 'classnames';
4
4
  import { AnimatePresence, motion } from 'framer-motion';
5
- import { u as useFloating, c as useDismiss, j as useListNavigation, d as useInteractions, F as FloatingPortal } from './floating-ui.react-es.js';
5
+ import { u as useFloating, c as useDismiss, g as useListNavigation, d as useInteractions, F as FloatingPortal } from './floating-ui.react-es.js';
6
6
  import { d as defineMessages, u as useAtlantisI18n } from './useAtlantisI18n-es.js';
7
7
  import { B as Button } from './Button-es.js';
8
8
  import { T as Typography } from './Typography-es.js';
@@ -0,0 +1,6 @@
1
+ export declare const modalMessages: {
2
+ closeModal: {
3
+ en: string;
4
+ es: string;
5
+ };
6
+ };
@@ -6,6 +6,7 @@ var classnames = require('classnames');
6
6
  var framerMotion = require('framer-motion');
7
7
  var jobberHooks = require('@jobber/hooks');
8
8
  var nestedEscape = require('../nestedEscape-cjs.js');
9
+ var useAtlantisI18n = require('../useAtlantisI18n-cjs.js');
9
10
  var Heading = require('../Heading-cjs.js');
10
11
  var Button = require('../Button-cjs.js');
11
12
  var ButtonDismiss = require('../ButtonDismiss-cjs.js');
@@ -13,6 +14,7 @@ var noop = require('../noop-cjs.js');
13
14
  var floatingUi_react = require('../floating-ui.react-cjs.js');
14
15
  var identity = require('../identity-cjs.js');
15
16
  var AtlantisPortalContent = require('../AtlantisPortalContent-cjs.js');
17
+ require('../AtlantisContext-cjs.js');
16
18
  require('../Typography-cjs.js');
17
19
  require('../tslib.es6-cjs.js');
18
20
  require('react-router-dom');
@@ -38,6 +40,13 @@ var sizes = {"small":"BSZvIAUzFEU-","large":"-ydIALYVvGg-","fullScreen":"_9wD-Ta
38
40
 
39
41
  const MODAL_HEADER_ID = "ATL-Modal-Header";
40
42
 
43
+ const modalMessages = useAtlantisI18n.defineMessages({
44
+ closeModal: {
45
+ en: "Close modal",
46
+ es: "Cerrar modal",
47
+ },
48
+ });
49
+
41
50
  function ModalLegacy({ open = false, title, size, dismissible = true, children, primaryAction, secondaryAction, tertiaryAction, onRequestClose, ariaLabel, }) {
42
51
  const modalClassName = classnames(styles$1.modal, size && sizes[size]);
43
52
  const containerClassName = classnames(styles$1.container, size === "fullScreen" && styles$1.containerFullScreen);
@@ -67,10 +76,11 @@ function ModalLegacy({ open = false, title, size, dismissible = true, children,
67
76
  : template;
68
77
  }
69
78
  function Header({ title, dismissible, onRequestClose }) {
79
+ const { t } = useAtlantisI18n.useAtlantisI18n(modalMessages);
70
80
  return (React.createElement("div", { className: styles$1.header, "data-testid": "modal-header" },
71
81
  React.createElement(Heading.Heading, { level: 2, id: MODAL_HEADER_ID }, title),
72
82
  dismissible && (React.createElement("div", { className: styles$1.closeButton },
73
- React.createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close modal" })))));
83
+ React.createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: t("closeModal") })))));
74
84
  }
75
85
  function Actions({ primary, secondary, tertiary }) {
76
86
  const shouldShow = primary != undefined || secondary != undefined || tertiary != undefined;
@@ -197,13 +207,14 @@ function useModalStyles(size) {
197
207
  function ModalHeader({ title, children }) {
198
208
  const { header, dismissButton } = useModalStyles();
199
209
  const { dismissible, onRequestClose, modalLabelledBy } = useModalContext();
210
+ const { t } = useAtlantisI18n.useAtlantisI18n(modalMessages);
200
211
  if (children) {
201
212
  return React.createElement(React.Fragment, null, children);
202
213
  }
203
214
  return (React.createElement("div", { className: header, "data-testid": MODAL_HEADER_ID },
204
215
  React.createElement(Heading.Heading, { level: 2, id: modalLabelledBy }, title),
205
216
  dismissible && (React.createElement("div", { className: dismissButton },
206
- React.createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close modal" })))));
217
+ React.createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: t("closeModal") })))));
207
218
  }
208
219
  function ModalActions({ primary, secondary, tertiary, }) {
209
220
  const { actionBar, rightAction, leftAction } = useModalStyles();
@@ -4,13 +4,15 @@ import classnames from 'classnames';
4
4
  import { AnimatePresence, motion } from 'framer-motion';
5
5
  import { useRefocusOnActivator, useFocusTrap } from '@jobber/hooks';
6
6
  import { a as addModalEscapeContainment } from '../nestedEscape-es.js';
7
+ import { d as defineMessages, u as useAtlantisI18n } from '../useAtlantisI18n-es.js';
7
8
  import { H as Heading } from '../Heading-es.js';
8
9
  import { B as Button } from '../Button-es.js';
9
10
  import { B as ButtonDismiss } from '../ButtonDismiss-es.js';
10
11
  import { n as noop } from '../noop-es.js';
11
- import { b as useFloatingNodeId, u as useFloating, c as useDismiss, g as useRole, d as useInteractions, a as useFloatingParentNodeId, e as FloatingTree, f as FloatingNode, F as FloatingPortal, h as FloatingFocusManager, i as FloatingOverlay } from '../floating-ui.react-es.js';
12
+ import { b as useFloatingNodeId, u as useFloating, c as useDismiss, h as useRole, d as useInteractions, a as useFloatingParentNodeId, e as FloatingTree, f as FloatingNode, F as FloatingPortal, i as FloatingFocusManager, j as FloatingOverlay } from '../floating-ui.react-es.js';
12
13
  import { b as identity } from '../identity-es.js';
13
14
  import { A as AtlantisPortalContent } from '../AtlantisPortalContent-es.js';
15
+ import '../AtlantisContext-es.js';
14
16
  import '../Typography-es.js';
15
17
  import '../tslib.es6-es.js';
16
18
  import 'react-router-dom';
@@ -36,6 +38,13 @@ var sizes = {"small":"BSZvIAUzFEU-","large":"-ydIALYVvGg-","fullScreen":"_9wD-Ta
36
38
 
37
39
  const MODAL_HEADER_ID = "ATL-Modal-Header";
38
40
 
41
+ const modalMessages = defineMessages({
42
+ closeModal: {
43
+ en: "Close modal",
44
+ es: "Cerrar modal",
45
+ },
46
+ });
47
+
39
48
  function ModalLegacy({ open = false, title, size, dismissible = true, children, primaryAction, secondaryAction, tertiaryAction, onRequestClose, ariaLabel, }) {
40
49
  const modalClassName = classnames(styles$1.modal, size && sizes[size]);
41
50
  const containerClassName = classnames(styles$1.container, size === "fullScreen" && styles$1.containerFullScreen);
@@ -65,10 +74,11 @@ function ModalLegacy({ open = false, title, size, dismissible = true, children,
65
74
  : template;
66
75
  }
67
76
  function Header({ title, dismissible, onRequestClose }) {
77
+ const { t } = useAtlantisI18n(modalMessages);
68
78
  return (React__default.createElement("div", { className: styles$1.header, "data-testid": "modal-header" },
69
79
  React__default.createElement(Heading, { level: 2, id: MODAL_HEADER_ID }, title),
70
80
  dismissible && (React__default.createElement("div", { className: styles$1.closeButton },
71
- React__default.createElement(ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close modal" })))));
81
+ React__default.createElement(ButtonDismiss, { onClick: onRequestClose, ariaLabel: t("closeModal") })))));
72
82
  }
73
83
  function Actions({ primary, secondary, tertiary }) {
74
84
  const shouldShow = primary != undefined || secondary != undefined || tertiary != undefined;
@@ -195,13 +205,14 @@ function useModalStyles(size) {
195
205
  function ModalHeader({ title, children }) {
196
206
  const { header, dismissButton } = useModalStyles();
197
207
  const { dismissible, onRequestClose, modalLabelledBy } = useModalContext();
208
+ const { t } = useAtlantisI18n(modalMessages);
198
209
  if (children) {
199
210
  return React__default.createElement(React__default.Fragment, null, children);
200
211
  }
201
212
  return (React__default.createElement("div", { className: header, "data-testid": MODAL_HEADER_ID },
202
213
  React__default.createElement(Heading, { level: 2, id: modalLabelledBy }, title),
203
214
  dismissible && (React__default.createElement("div", { className: dismissButton },
204
- React__default.createElement(ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close modal" })))));
215
+ React__default.createElement(ButtonDismiss, { onClick: onRequestClose, ariaLabel: t("closeModal") })))));
205
216
  }
206
217
  function ModalActions({ primary, secondary, tertiary, }) {
207
218
  const { actionBar, rightAction, leftAction } = useModalStyles();
@@ -0,0 +1,6 @@
1
+ export declare const popoverMessages: {
2
+ closeDialog: {
3
+ en: string;
4
+ es: string;
5
+ };
6
+ };
@@ -23,6 +23,8 @@ require('../_baseFor-cjs.js');
23
23
  require('../keysIn-cjs.js');
24
24
  require('../_isIterateeCall-cjs.js');
25
25
  require('../_setToString-cjs.js');
26
+ require('../useAtlantisI18n-cjs.js');
27
+ require('../AtlantisContext-cjs.js');
26
28
  require('../ButtonDismiss-cjs.js');
27
29
  require('../Button-cjs.js');
28
30
  require('react-router-dom');
@@ -21,6 +21,8 @@ import '../_baseFor-es.js';
21
21
  import '../keysIn-es.js';
22
22
  import '../_isIterateeCall-es.js';
23
23
  import '../_setToString-es.js';
24
+ import '../useAtlantisI18n-es.js';
25
+ import '../AtlantisContext-es.js';
24
26
  import '../ButtonDismiss-es.js';
25
27
  import '../Button-es.js';
26
28
  import 'react-router-dom';
@@ -7,6 +7,7 @@ var floatingUi_react = require('./floating-ui.react-cjs.js');
7
7
  var jobberHooks = require('@jobber/hooks');
8
8
  var floatingUi_reactDom = require('./floating-ui.react-dom-cjs.js');
9
9
  var AtlantisPortalContent = require('./AtlantisPortalContent-cjs.js');
10
+ var useAtlantisI18n = require('./useAtlantisI18n-cjs.js');
10
11
  var ButtonDismiss = require('./ButtonDismiss-cjs.js');
11
12
 
12
13
  const POPOVER_OFFSET = 10;
@@ -113,6 +114,13 @@ function PopoverWrapper({ children, setFloatingElement, UNSAFE_className, UNSAFE
113
114
  return React.createElement(floatingUi_react.FloatingPortal, null, content);
114
115
  }
115
116
 
117
+ const popoverMessages = useAtlantisI18n.defineMessages({
118
+ closeDialog: {
119
+ en: "Close dialog",
120
+ es: "Cerrar diálogo",
121
+ },
122
+ });
123
+
116
124
  function Popover({ onRequestClose, children, attachTo, open, preferredPlacement = "auto", UNSAFE_className, UNSAFE_style, }) {
117
125
  return (React.createElement(Popover.Provider, { attachTo: attachTo, open: open, preferredPlacement: preferredPlacement, UNSAFE_className: UNSAFE_className, UNSAFE_style: UNSAFE_style },
118
126
  React.createElement(Popover.DismissButton, { UNSAFE_className: UNSAFE_className, UNSAFE_style: UNSAFE_style, onClick: onRequestClose }),
@@ -153,7 +161,8 @@ Popover.DismissButton = function PopoverDismissButton(props) {
153
161
  const { UNSAFE_className, UNSAFE_style, children } = props, dismissButtonProps = tslib_es6.__rest(props, ["UNSAFE_className", "UNSAFE_style", "children"]);
154
162
  const popoverStyles = usePopoverStyles();
155
163
  const classes = classnames(popoverStyles.dismissButton, UNSAFE_className === null || UNSAFE_className === void 0 ? void 0 : UNSAFE_className.dismissButtonContainer);
156
- return (React.createElement("div", { className: classes, style: (_a = UNSAFE_style === null || UNSAFE_style === void 0 ? void 0 : UNSAFE_style.dismissButtonContainer) !== null && _a !== void 0 ? _a : {}, "data-testid": "ATL-Popover-Dismiss-Button-Container" }, children !== null && children !== void 0 ? children : (React.createElement(ButtonDismiss.ButtonDismiss, Object.assign({ ariaLabel: "Close dialog" }, dismissButtonProps)))));
164
+ const { t } = useAtlantisI18n.useAtlantisI18n(popoverMessages);
165
+ return (React.createElement("div", { className: classes, style: (_a = UNSAFE_style === null || UNSAFE_style === void 0 ? void 0 : UNSAFE_style.dismissButtonContainer) !== null && _a !== void 0 ? _a : {}, "data-testid": "ATL-Popover-Dismiss-Button-Container" }, children !== null && children !== void 0 ? children : (React.createElement(ButtonDismiss.ButtonDismiss, Object.assign({ ariaLabel: t("closeDialog") }, dismissButtonProps)))));
157
166
  };
158
167
 
159
168
  exports.Popover = Popover;
@@ -5,6 +5,7 @@ import { u as useFloating, F as FloatingPortal } from './floating-ui.react-es.js
5
5
  import { useRefocusOnActivator } from '@jobber/hooks';
6
6
  import { a as arrow, b as autoUpdate, o as offset, s as shift, l as limitShift, c as autoPlacement, f as flip } from './floating-ui.react-dom-es.js';
7
7
  import { A as AtlantisPortalContent } from './AtlantisPortalContent-es.js';
8
+ import { d as defineMessages, u as useAtlantisI18n } from './useAtlantisI18n-es.js';
8
9
  import { B as ButtonDismiss } from './ButtonDismiss-es.js';
9
10
 
10
11
  const POPOVER_OFFSET = 10;
@@ -111,6 +112,13 @@ function PopoverWrapper({ children, setFloatingElement, UNSAFE_className, UNSAFE
111
112
  return React__default.createElement(FloatingPortal, null, content);
112
113
  }
113
114
 
115
+ const popoverMessages = defineMessages({
116
+ closeDialog: {
117
+ en: "Close dialog",
118
+ es: "Cerrar diálogo",
119
+ },
120
+ });
121
+
114
122
  function Popover({ onRequestClose, children, attachTo, open, preferredPlacement = "auto", UNSAFE_className, UNSAFE_style, }) {
115
123
  return (React__default.createElement(Popover.Provider, { attachTo: attachTo, open: open, preferredPlacement: preferredPlacement, UNSAFE_className: UNSAFE_className, UNSAFE_style: UNSAFE_style },
116
124
  React__default.createElement(Popover.DismissButton, { UNSAFE_className: UNSAFE_className, UNSAFE_style: UNSAFE_style, onClick: onRequestClose }),
@@ -151,7 +159,8 @@ Popover.DismissButton = function PopoverDismissButton(props) {
151
159
  const { UNSAFE_className, UNSAFE_style, children } = props, dismissButtonProps = __rest(props, ["UNSAFE_className", "UNSAFE_style", "children"]);
152
160
  const popoverStyles = usePopoverStyles();
153
161
  const classes = classnames(popoverStyles.dismissButton, UNSAFE_className === null || UNSAFE_className === void 0 ? void 0 : UNSAFE_className.dismissButtonContainer);
154
- return (React__default.createElement("div", { className: classes, style: (_a = UNSAFE_style === null || UNSAFE_style === void 0 ? void 0 : UNSAFE_style.dismissButtonContainer) !== null && _a !== void 0 ? _a : {}, "data-testid": "ATL-Popover-Dismiss-Button-Container" }, children !== null && children !== void 0 ? children : (React__default.createElement(ButtonDismiss, Object.assign({ ariaLabel: "Close dialog" }, dismissButtonProps)))));
162
+ const { t } = useAtlantisI18n(popoverMessages);
163
+ return (React__default.createElement("div", { className: classes, style: (_a = UNSAFE_style === null || UNSAFE_style === void 0 ? void 0 : UNSAFE_style.dismissButtonContainer) !== null && _a !== void 0 ? _a : {}, "data-testid": "ATL-Popover-Dismiss-Button-Container" }, children !== null && children !== void 0 ? children : (React__default.createElement(ButtonDismiss, Object.assign({ ariaLabel: t("closeDialog") }, dismissButtonProps)))));
155
164
  };
156
165
 
157
166
  export { Popover as P, usePopoverStyles as a, usePopoverContext as u };
@@ -3,6 +3,9 @@
3
3
  var Spinner = require('../Spinner-cjs.js');
4
4
  require('react');
5
5
  require('classnames');
6
+ require('../common.messages-cjs.js');
7
+ require('../useAtlantisI18n-cjs.js');
8
+ require('../AtlantisContext-cjs.js');
6
9
 
7
10
 
8
11
 
@@ -1,3 +1,6 @@
1
1
  export { S as Spinner } from '../Spinner-es.js';
2
2
  import 'react';
3
3
  import 'classnames';
4
+ import '../common.messages-es.js';
5
+ import '../useAtlantisI18n-es.js';
6
+ import '../AtlantisContext-es.js';
@@ -2,6 +2,8 @@
2
2
 
3
3
  var React = require('react');
4
4
  var classnames = require('classnames');
5
+ var common_messages = require('./common.messages-cjs.js');
6
+ var useAtlantisI18n = require('./useAtlantisI18n-cjs.js');
5
7
 
6
8
  var styles = {"spinner":"_6hfmGZoXNyg-","animationSpin":"aT3CETCJ4hQ-","small":"bMfynkzmlL4-","inline":"NA68eWblbLo-","spinning":"aCBq1WrkI4M-"};
7
9
 
@@ -9,11 +11,12 @@ var styles = {"spinner":"_6hfmGZoXNyg-","animationSpin":"aT3CETCJ4hQ-","small":"
9
11
  * @deprecated Use `ActivityIndicator` instead.
10
12
  */
11
13
  function Spinner({ size = "base", inline }) {
14
+ const { t } = useAtlantisI18n.useAtlantisI18n(common_messages.commonMessages);
12
15
  const spinnerStyles = classnames(styles.spinner, {
13
16
  [styles.small]: size === "small",
14
17
  [styles.inline]: inline,
15
18
  });
16
- return (React.createElement("div", { className: spinnerStyles, role: "alert", "aria-busy": true, "aria-label": "loading" }));
19
+ return (React.createElement("div", { className: spinnerStyles, role: "alert", "aria-busy": true, "aria-label": t("Loading") }));
17
20
  }
18
21
 
19
22
  exports.Spinner = Spinner;
@@ -1,5 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import classnames from 'classnames';
3
+ import { c as commonMessages } from './common.messages-es.js';
4
+ import { u as useAtlantisI18n } from './useAtlantisI18n-es.js';
3
5
 
4
6
  var styles = {"spinner":"_6hfmGZoXNyg-","animationSpin":"aT3CETCJ4hQ-","small":"bMfynkzmlL4-","inline":"NA68eWblbLo-","spinning":"aCBq1WrkI4M-"};
5
7
 
@@ -7,11 +9,12 @@ var styles = {"spinner":"_6hfmGZoXNyg-","animationSpin":"aT3CETCJ4hQ-","small":"
7
9
  * @deprecated Use `ActivityIndicator` instead.
8
10
  */
9
11
  function Spinner({ size = "base", inline }) {
12
+ const { t } = useAtlantisI18n(commonMessages);
10
13
  const spinnerStyles = classnames(styles.spinner, {
11
14
  [styles.small]: size === "small",
12
15
  [styles.inline]: inline,
13
16
  });
14
- return (React__default.createElement("div", { className: spinnerStyles, role: "alert", "aria-busy": true, "aria-label": "loading" }));
17
+ return (React__default.createElement("div", { className: spinnerStyles, role: "alert", "aria-busy": true, "aria-label": t("Loading") }));
15
18
  }
16
19
 
17
20
  export { Spinner as S };
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var useAtlantisI18n = require('./useAtlantisI18n-cjs.js');
4
+
5
+ const commonMessages = useAtlantisI18n.defineMessages({
6
+ Loading: {
7
+ en: "Loading",
8
+ es: "Cargando",
9
+ },
10
+ Confirm: {
11
+ en: "Confirm",
12
+ es: "Confirmar",
13
+ },
14
+ Cancel: {
15
+ en: "Cancel",
16
+ es: "Cancelar",
17
+ },
18
+ });
19
+
20
+ exports.commonMessages = commonMessages;
@@ -0,0 +1,18 @@
1
+ import { d as defineMessages } from './useAtlantisI18n-es.js';
2
+
3
+ const commonMessages = defineMessages({
4
+ Loading: {
5
+ en: "Loading",
6
+ es: "Cargando",
7
+ },
8
+ Confirm: {
9
+ en: "Confirm",
10
+ es: "Confirmar",
11
+ },
12
+ Cancel: {
13
+ en: "Cancel",
14
+ es: "Cancelar",
15
+ },
16
+ });
17
+
18
+ export { commonMessages as c };
@@ -110,7 +110,7 @@ component from React Native.
110
110
 
111
111
  | Prop | Type | Required | Default | Description |
112
112
  |------|------|----------|---------|-------------|
113
- | `ariaLabel` | `string` | No | `Loading` | Accessible label exposed via `aria-label` on the root element. Override to localize or to describe the specific activ... |
113
+ | `ariaLabel` | `string` | No | `"Loading"` | Accessible label exposed via `aria-label` on the root element. Override to localize or to describe the specific activ... |
114
114
  | `className` | `string` | No | — | Custom class name merged onto the root element alongside the component's own classes. |
115
115
  | `size` | `"base" | "small"` | No | `base` | Visual size. `base` renders at 32px, `small` renders at 16px. |
116
116
  | `style` | `CSSProperties` | No | — | Custom inline styles applied to the root element. |
@@ -111,9 +111,9 @@ language should be direct and honest about the impact without being alarming.
111
111
 
112
112
  | Prop | Type | Required | Default | Description |
113
113
  |------|------|----------|---------|-------------|
114
- | `cancelLabel` | `string` | No | `Cancel` | Label for the cancel button. |
114
+ | `cancelLabel` | `string` | No | | Label for the cancel button. |
115
115
  | `children` | `ReactNode` | No | — | Child component. Not displayed if **message** prop is passed. |
116
- | `confirmLabel` | `string` | No | `Confirm` | Label for the confirm button. |
116
+ | `confirmLabel` | `string` | No | | Label for the confirm button. |
117
117
  | `message` | `string` | No | — | Text or rich text content for the body of the modal. Not displayed if **children** prop is passed. |
118
118
  | `onCancel` | `() => void` | No | — | Callback for when the cancel button is pressed. |
119
119
  | `onConfirm` | `() => void` | No | — | Callback for when the confirm button is pressed. |
@@ -230,7 +230,7 @@ window.HTMLElement.prototype.scrollIntoView = scrollIntoViewMock;
230
230
 
231
231
  | Prop | Type | Required | Default | Description |
232
232
  |------|------|----------|---------|-------------|
233
- | `ariaLabel` | `string` | No | `Open image in new tab` | Accessible label for the action, also used as the tooltip message. |
233
+ | `ariaLabel` | `string` | No | `"Open image in new tab"` | Accessible label for the action, also used as the tooltip message. |
234
234
 
235
235
  #### LightBox.Overlay
236
236
 
@@ -3809,4 +3809,4 @@ function useTransitionStyles(context, props) {
3809
3809
  };
3810
3810
  }
3811
3811
 
3812
- export { FloatingPortal as F, useFloatingParentNodeId as a, useFloatingNodeId as b, useDismiss as c, useInteractions as d, FloatingTree as e, FloatingNode as f, useRole as g, FloatingFocusManager as h, FloatingOverlay as i, useListNavigation as j, useClick as k, useTransitionStyles as l, FloatingArrow as m, useFloating as u };
3812
+ export { FloatingPortal as F, useFloatingParentNodeId as a, useFloatingNodeId as b, useDismiss as c, useInteractions as d, FloatingTree as e, FloatingNode as f, useListNavigation as g, useRole as h, FloatingFocusManager as i, FloatingOverlay as j, useClick as k, useTransitionStyles as l, FloatingArrow as m, useFloating as u };
package/dist/index.cjs CHANGED
@@ -91,6 +91,8 @@ var Tooltip = require('./Tooltip-cjs.js');
91
91
  var Typography = require('./Typography-cjs.js');
92
92
  var design = require('@jobber/design');
93
93
  require('classnames');
94
+ require('./common.messages-cjs.js');
95
+ require('./useAtlantisI18n-cjs.js');
94
96
  require('./_commonjsHelpers-cjs.js');
95
97
  require('./identity-cjs.js');
96
98
  require('./isTypedArray-cjs.js');
@@ -107,7 +109,6 @@ require('react/jsx-runtime');
107
109
  require('react-dom');
108
110
  require('./floating-ui.react-dom-cjs.js');
109
111
  require('./maxHeight-cjs.js');
110
- require('./useAtlantisI18n-cjs.js');
111
112
  require('./mergeRefs-cjs.js');
112
113
  require('./filterDataAttributes-cjs.js');
113
114
  require('color');
package/dist/index.mjs CHANGED
@@ -89,6 +89,8 @@ export { T as Tooltip } from './Tooltip-es.js';
89
89
  export { T as Typography } from './Typography-es.js';
90
90
  export { iconNames, isIconName } from '@jobber/design';
91
91
  import 'classnames';
92
+ import './common.messages-es.js';
93
+ import './useAtlantisI18n-es.js';
92
94
  import './_commonjsHelpers-es.js';
93
95
  import './identity-es.js';
94
96
  import './isTypedArray-es.js';
@@ -105,7 +107,6 @@ import 'react/jsx-runtime';
105
107
  import 'react-dom';
106
108
  import './floating-ui.react-dom-es.js';
107
109
  import './maxHeight-es.js';
108
- import './useAtlantisI18n-es.js';
109
110
  import './mergeRefs-es.js';
110
111
  import './filterDataAttributes-es.js';
111
112
  import 'color';
@@ -5,6 +5,9 @@ require('../../tslib.es6-cjs.js');
5
5
  require('react');
6
6
  require('classnames');
7
7
  require('../../ActivityIndicator-cjs.js');
8
+ require('../../common.messages-cjs.js');
9
+ require('../../useAtlantisI18n-cjs.js');
10
+ require('../../AtlantisContext-cjs.js');
8
11
  require('../../Button-cjs.js');
9
12
  require('react-router-dom');
10
13
  require('../../Icon-cjs.js');
@@ -3,6 +3,9 @@ import '../../tslib.es6-es.js';
3
3
  import 'react';
4
4
  import 'classnames';
5
5
  import '../../ActivityIndicator-es.js';
6
+ import '../../common.messages-es.js';
7
+ import '../../useAtlantisI18n-es.js';
8
+ import '../../AtlantisContext-es.js';
6
9
  import '../../Button-es.js';
7
10
  import 'react-router-dom';
8
11
  import '../../Icon-es.js';
@@ -35,6 +35,9 @@ require('../resolveAriaLabelledBy-cjs.js');
35
35
  require('../stringifyLocale-cjs.js');
36
36
  require('../useLabel-cjs.js');
37
37
  require('../ActivityIndicator-cjs.js');
38
+ require('../common.messages-cjs.js');
39
+ require('../useAtlantisI18n-cjs.js');
40
+ require('../AtlantisContext-cjs.js');
38
41
  require('../FieldDescription-cjs.js');
39
42
  require('../NumberFieldInput-cjs.js');
40
43
  require('../SelectGroupLabel-cjs.js');
@@ -33,6 +33,9 @@ import '../resolveAriaLabelledBy-es.js';
33
33
  import '../stringifyLocale-es.js';
34
34
  import '../useLabel-es.js';
35
35
  import '../ActivityIndicator-es.js';
36
+ import '../common.messages-es.js';
37
+ import '../useAtlantisI18n-es.js';
38
+ import '../AtlantisContext-es.js';
36
39
  import '../FieldDescription-es.js';
37
40
  import '../NumberFieldInput-es.js';
38
41
  import '../SelectGroupLabel-es.js';
@@ -1,24 +1,12 @@
1
1
  'use strict';
2
2
 
3
+ var common_messages = require('../../common.messages-cjs.js');
3
4
  var useAtlantisI18n = require('../../useAtlantisI18n-cjs.js');
4
5
  require('react');
5
6
  require('../../AtlantisContext-cjs.js');
6
7
 
7
- const commonMessages = useAtlantisI18n.defineMessages({
8
- Loading: {
9
- en: "Loading",
10
- es: "Cargando",
11
- },
12
- Confirm: {
13
- en: "Confirm",
14
- es: "Confirmar",
15
- },
16
- Cancel: {
17
- en: "Cancel",
18
- es: "Cancelar",
19
- },
20
- });
21
8
 
9
+
10
+ exports.commonMessages = common_messages.commonMessages;
22
11
  exports.defineMessages = useAtlantisI18n.defineMessages;
23
12
  exports.useAtlantisI18n = useAtlantisI18n.useAtlantisI18n;
24
- exports.commonMessages = commonMessages;
@@ -1,21 +1,4 @@
1
- import { d as defineMessages } from '../../useAtlantisI18n-es.js';
2
- export { u as useAtlantisI18n } from '../../useAtlantisI18n-es.js';
1
+ export { c as commonMessages } from '../../common.messages-es.js';
2
+ export { d as defineMessages, u as useAtlantisI18n } from '../../useAtlantisI18n-es.js';
3
3
  import 'react';
4
4
  import '../../AtlantisContext-es.js';
5
-
6
- const commonMessages = defineMessages({
7
- Loading: {
8
- en: "Loading",
9
- es: "Cargando",
10
- },
11
- Confirm: {
12
- en: "Confirm",
13
- es: "Confirmar",
14
- },
15
- Cancel: {
16
- en: "Cancel",
17
- es: "Cancelar",
18
- },
19
- });
20
-
21
- export { commonMessages, defineMessages };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "9.1.0",
3
+ "version": "9.3.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -545,5 +545,5 @@
545
545
  "> 1%",
546
546
  "IE 10"
547
547
  ],
548
- "gitHead": "e887305a950c2e207016a1b039df2e8e992acc45"
548
+ "gitHead": "bd293888112d04f31748f9df2612954afda103e4"
549
549
  }