braid-design-system 32.6.0 → 32.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.
@@ -1775,6 +1775,12 @@ const TooltipRenderer = ({
1775
1775
  offset: [0, space.small * grid]
1776
1776
  }
1777
1777
  },
1778
+ {
1779
+ name: "arrow",
1780
+ options: {
1781
+ padding: space.xsmall * grid
1782
+ }
1783
+ },
1778
1784
  ...isStatic ? [
1779
1785
  {
1780
1786
  name: "flip",
@@ -1768,6 +1768,12 @@ const TooltipRenderer = ({
1768
1768
  offset: [0, space.small * grid]
1769
1769
  }
1770
1770
  },
1771
+ {
1772
+ name: "arrow",
1773
+ options: {
1774
+ padding: space.xsmall * grid
1775
+ }
1776
+ },
1771
1777
  ...isStatic ? [
1772
1778
  {
1773
1779
  name: "flip",
@@ -1,42 +1,42 @@
1
1
  "use strict";
2
- const ToastContext = require("./ToastContext.chunk.cjs");
3
2
  const sideEffects_lib_components_BraidProvider_BraidProvider_cjs = require("./side-effects/lib/components/BraidProvider/BraidProvider.cjs");
3
+ const ToastContext = require("./ToastContext.chunk.cjs");
4
4
  const jsxRuntime = require("react/jsx-runtime");
5
5
  const assert = require("assert");
6
6
  const React = require("react");
7
7
  const styles_lib_css_atoms_sprinkles_css_cjs = require("./styles/lib/css/atoms/sprinkles.css.cjs");
8
- const styles_lib_components_icons_IconArrow_IconArrow_css_cjs = require("./styles/lib/components/icons/IconArrow/IconArrow.css.cjs");
9
- const styles_lib_components_icons_IconThumb_IconThumb_css_cjs = require("./styles/lib/components/icons/IconThumb/IconThumb.css.cjs");
10
8
  const styles_lib_components_Accordion_AccordionItem_css_cjs = require("./styles/lib/components/Accordion/AccordionItem.css.cjs");
9
+ const styles_lib_components_icons_IconChevron_IconChevron_css_cjs = require("./styles/lib/components/icons/IconChevron/IconChevron.css.cjs");
11
10
  const styles_lib_components_private_hideFocusRings_hideFocusRings_css_cjs = require("./styles/lib/components/private/hideFocusRings/hideFocusRings.css.cjs");
12
11
  const styles_lib_css_textAlignedToIcon_css_cjs = require("./styles/lib/css/textAlignedToIcon.css.cjs");
13
12
  const styles_lib_components_Alert_Alert_css_cjs = require("./styles/lib/components/Alert/Alert.css.cjs");
14
13
  const dedent = require("dedent");
15
14
  const parseHighlights = require("autosuggest-highlight/parse/index.js");
15
+ const styles_lib_css_typography_css_cjs = require("./styles/lib/css/typography.css.cjs");
16
16
  const styles_lib_components_HiddenVisually_HiddenVisually_css_cjs = require("./styles/lib/components/HiddenVisually/HiddenVisually.css.cjs");
17
17
  const reactDom = require("react-dom");
18
18
  const styles_lib_css_atoms_atoms_cjs = require("./styles/lib/css/atoms/atoms.cjs");
19
- const styles_lib_css_typography_css_cjs = require("./styles/lib/css/typography.css.cjs");
19
+ const clsx = require("clsx");
20
+ const styles_lib_components_private_Field_Field_css_cjs = require("./styles/lib/components/private/Field/Field.css.cjs");
20
21
  const reactRemoveScroll = require("react-remove-scroll");
21
22
  const styles_lib_components_Autosuggest_Autosuggest_css_cjs = require("./styles/lib/components/Autosuggest/Autosuggest.css.cjs");
22
23
  const matchHighlights = require("autosuggest-highlight/match/index.js");
23
- const clsx = require("clsx");
24
24
  const styles_lib_components_private_Keyline_Keyline_css_cjs = require("./styles/lib/components/private/Keyline/Keyline.css.cjs");
25
+ const styles_lib_components_private_InlineField_InlineField_css_cjs = require("./styles/lib/components/private/InlineField/InlineField.css.cjs");
25
26
  const FocusLock = require("react-focus-lock");
26
27
  const styles_lib_components_private_Modal_ModalExternalGutter_cjs = require("./styles/lib/components/private/Modal/ModalExternalGutter.cjs");
27
28
  const styles_lib_components_private_Modal_Modal_css_cjs = require("./styles/lib/components/private/Modal/Modal.css.cjs");
29
+ const styles_lib_components_Dropdown_Dropdown_css_cjs = require("./styles/lib/components/Dropdown/Dropdown.css.cjs");
28
30
  const styles_lib_css_lineHeightContainer_css_cjs = require("./styles/lib/css/lineHeightContainer.css.cjs");
29
31
  const styles_lib_components_List_List_css_cjs = require("./styles/lib/components/List/List.css.cjs");
30
32
  const styles_lib_components_Loader_Loader_css_cjs = require("./styles/lib/components/Loader/Loader.css.cjs");
31
- const styles_lib_components_MenuItemCheckbox_MenuItemCheckbox_css_cjs = require("./styles/lib/components/MenuItemCheckbox/MenuItemCheckbox.css.cjs");
32
- const styles_lib_components_MenuItem_useMenuItem_css_cjs = require("./styles/lib/components/MenuItem/useMenuItem.css.cjs");
33
33
  const styles_lib_components_MenuRenderer_MenuRenderer_css_cjs = require("./styles/lib/components/MenuRenderer/MenuRenderer.css.cjs");
34
+ const styles_lib_components_MenuItem_useMenuItem_css_cjs = require("./styles/lib/components/MenuItem/useMenuItem.css.cjs");
35
+ const styles_lib_components_MenuItemCheckbox_MenuItemCheckbox_css_cjs = require("./styles/lib/components/MenuItemCheckbox/MenuItemCheckbox.css.cjs");
34
36
  const styles_lib_components_OverflowMenu_OverflowMenu_css_cjs = require("./styles/lib/components/OverflowMenu/OverflowMenu.css.cjs");
35
37
  const isMobile = require("is-mobile");
36
- const styles_lib_components_Dropdown_Dropdown_css_cjs = require("./styles/lib/components/Dropdown/Dropdown.css.cjs");
37
38
  const styles_lib_components_MonthPicker_MonthPicker_css_cjs = require("./styles/lib/components/MonthPicker/MonthPicker.css.cjs");
38
39
  const styles_lib_components_Pagination_Pagination_css_cjs = require("./styles/lib/components/Pagination/Pagination.css.cjs");
39
- const styles_lib_components_private_InlineField_InlineField_css_cjs = require("./styles/lib/components/private/InlineField/InlineField.css.cjs");
40
40
  const styles_lib_components_Rating_Rating_css_cjs = require("./styles/lib/components/Rating/Rating.css.cjs");
41
41
  const styles_lib_components_Stepper_Stepper_css_cjs = require("./styles/lib/components/Stepper/Stepper.css.cjs");
42
42
  const styles_lib_components_Tabs_Tabs_css_cjs = require("./styles/lib/components/Tabs/Tabs.css.cjs");
@@ -45,16 +45,16 @@ const styles_lib_components_Tag_Tag_css_cjs = require("./styles/lib/components/T
45
45
  const styles_lib_components_Textarea_Highlight_Highlight_css_cjs = require("./styles/lib/components/Textarea/Highlight/Highlight.css.cjs");
46
46
  const styles_lib_components_Textarea_Textarea_css_cjs = require("./styles/lib/components/Textarea/Textarea.css.cjs");
47
47
  const styles_lib_components_TextDropdown_TextDropdown_css_cjs = require("./styles/lib/components/TextDropdown/TextDropdown.css.cjs");
48
- const styles_lib_components_icons_IconChevron_IconChevron_css_cjs = require("./styles/lib/components/icons/IconChevron/IconChevron.css.cjs");
49
- const styles_lib_components_private_Field_Field_css_cjs = require("./styles/lib/components/private/Field/Field.css.cjs");
50
48
  const styles_lib_components_Tiles_Tiles_css_cjs = require("./styles/lib/components/Tiles/Tiles.css.cjs");
51
49
  const styles_lib_components_Toggle_Toggle_css_cjs = require("./styles/lib/components/Toggle/Toggle.css.cjs");
50
+ const styles_lib_components_icons_IconArrow_IconArrow_css_cjs = require("./styles/lib/components/icons/IconArrow/IconArrow.css.cjs");
51
+ const styles_lib_components_icons_IconThumb_IconThumb_css_cjs = require("./styles/lib/components/icons/IconThumb/IconThumb.css.cjs");
52
52
  const _interopDefaultCompat = (e) => e && typeof e === "object" && "default" in e ? e : { default: e };
53
53
  const assert__default = /* @__PURE__ */ _interopDefaultCompat(assert);
54
54
  const dedent__default = /* @__PURE__ */ _interopDefaultCompat(dedent);
55
55
  const parseHighlights__default = /* @__PURE__ */ _interopDefaultCompat(parseHighlights);
56
- const matchHighlights__default = /* @__PURE__ */ _interopDefaultCompat(matchHighlights);
57
56
  const clsx__default = /* @__PURE__ */ _interopDefaultCompat(clsx);
57
+ const matchHighlights__default = /* @__PURE__ */ _interopDefaultCompat(matchHighlights);
58
58
  const FocusLock__default = /* @__PURE__ */ _interopDefaultCompat(FocusLock);
59
59
  const ThemeNameConsumer = ({ children }) => children(ToastContext.useThemeName());
60
60
  const useColor = () => sideEffects_lib_components_BraidProvider_BraidProvider_cjs.useBraidTheme().color;
@@ -578,6 +578,54 @@ const IconEducation = (props) => {
578
578
  const iconProps = ToastContext.useIcon(props);
579
579
  return /* @__PURE__ */ jsxRuntime.jsx(ToastContext.Box, { component: IconEducationSvg, ...iconProps });
580
580
  };
581
+ const IconEnlargeSvg = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs(
582
+ "svg",
583
+ {
584
+ xmlns: "http://www.w3.org/2000/svg",
585
+ width: 16,
586
+ height: 16,
587
+ viewBox: "0 0 24 24",
588
+ focusable: "false",
589
+ fill: "currentColor",
590
+ "aria-labelledby": titleId,
591
+ ...props,
592
+ children: [
593
+ title ? /* @__PURE__ */ jsxRuntime.jsx("title", { id: titleId, children: title }) : null,
594
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M19.923 4.618A.999.999 0 0 0 19 4h-4a1 1 0 1 0 0 2h1.586l-3.293 3.293a1 1 0 1 0 1.414 1.414L18 7.414V9a1 1 0 1 0 2 0V5c0-.13-.026-.26-.077-.382Zm-10.63 8.675L6 16.586V15a1 1 0 1 0-2 0v4a1 1 0 0 0 .618.923A1 1 0 0 0 5 20h4a1 1 0 1 0 0-2H7.414l3.293-3.293a1 1 0 1 0-1.414-1.414Z" })
595
+ ]
596
+ }
597
+ );
598
+ const IconEnlargeActiveSvg = ({
599
+ title,
600
+ titleId,
601
+ ...props
602
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(
603
+ "svg",
604
+ {
605
+ xmlns: "http://www.w3.org/2000/svg",
606
+ width: 16,
607
+ height: 16,
608
+ viewBox: "0 0 24 24",
609
+ focusable: "false",
610
+ fill: "currentColor",
611
+ "aria-labelledby": titleId,
612
+ ...props,
613
+ children: [
614
+ title ? /* @__PURE__ */ jsxRuntime.jsx("title", { id: titleId, children: title }) : null,
615
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.382 13.077A1 1 0 0 0 10 13H6a1 1 0 1 0 0 2h1.586l-3.293 3.293a1 1 0 1 0 1.414 1.414L9 16.414V18a1 1 0 1 0 2 0v-4a.999.999 0 0 0-.618-.923Zm9.325-8.784a1 1 0 0 0-1.414 0L15 7.586V6a1 1 0 1 0-2 0v4a1 1 0 0 0 .618.923A1 1 0 0 0 14 11h4a1 1 0 1 0 0-2h-1.586l3.293-3.293a1 1 0 0 0 0-1.414Z" })
616
+ ]
617
+ }
618
+ );
619
+ const IconEnlarge = ({ active = false, ...props }) => {
620
+ const iconProps = ToastContext.useIcon(props);
621
+ return /* @__PURE__ */ jsxRuntime.jsx(
622
+ ToastContext.Box,
623
+ {
624
+ component: active ? IconEnlargeActiveSvg : IconEnlargeSvg,
625
+ ...iconProps
626
+ }
627
+ );
628
+ };
581
629
  const IconFilterSvg = ({ title, titleId, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs(
582
630
  "svg",
583
631
  {
@@ -4301,35 +4349,68 @@ const Heading = ({
4301
4349
  ]
4302
4350
  }
4303
4351
  ) });
4304
- const modalPadding = ["gutter", "large"];
4352
+ const validPageBlockComponents = [
4353
+ "div",
4354
+ "article",
4355
+ "aside",
4356
+ "main",
4357
+ "section",
4358
+ "nav"
4359
+ ];
4360
+ const gutters = { mobile: "xsmall", tablet: "gutter" };
4361
+ const PageBlock = ({
4362
+ children,
4363
+ width = "large",
4364
+ component: componentProp,
4365
+ data,
4366
+ ...restProps
4367
+ }) => {
4368
+ const component = componentProp && validPageBlockComponents.includes(componentProp) ? componentProp : "div";
4369
+ return /* @__PURE__ */ jsxRuntime.jsx(
4370
+ ToastContext.Box,
4371
+ {
4372
+ component,
4373
+ paddingX: gutters,
4374
+ ...ToastContext.buildDataAttributes({ data, validateRestProps: restProps }),
4375
+ children: /* @__PURE__ */ jsxRuntime.jsx(ToastContext.ContentBlock, { width, children })
4376
+ }
4377
+ );
4378
+ };
4379
+ const modalPadding = { mobile: "gutter", tablet: "large" };
4305
4380
  const ModalContentHeader = React.forwardRef(
4306
- ({ title, headingLevel, description, descriptionId, center }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(ToastContext.Stack, { space: "small", children: [
4307
- /* @__PURE__ */ jsxRuntime.jsx(Heading, { level: headingLevel, align: center ? "center" : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(
4308
- ToastContext.Box,
4309
- {
4310
- ref,
4311
- component: "span",
4312
- tabIndex: -1,
4313
- outline: "none",
4314
- position: "relative",
4315
- className: styles_lib_components_private_Modal_Modal_css_cjs.headingRoot,
4316
- children: [
4317
- title,
4318
- /* @__PURE__ */ jsxRuntime.jsx(
4319
- ToastContext.Overlay,
4320
- {
4321
- boxShadow: "outlineFocus",
4322
- borderRadius: "standard",
4323
- transition: "fast",
4324
- className: styles_lib_components_private_Modal_Modal_css_cjs.headingFocus,
4325
- onlyVisibleForKeyboardNavigation: true
4326
- }
4327
- )
4328
- ]
4329
- }
4330
- ) }),
4331
- description ? /* @__PURE__ */ jsxRuntime.jsx(ToastContext.Box, { id: descriptionId, children: description }) : null
4332
- ] })
4381
+ ({ title, headingLevel, description, descriptionId, center }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
4382
+ ToastContext.Stack,
4383
+ {
4384
+ space: headingLevel === "2" ? { mobile: "small", tablet: "medium" } : "small",
4385
+ children: [
4386
+ /* @__PURE__ */ jsxRuntime.jsx(Heading, { level: headingLevel, align: center ? "center" : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs(
4387
+ ToastContext.Box,
4388
+ {
4389
+ ref,
4390
+ component: "span",
4391
+ tabIndex: -1,
4392
+ outline: "none",
4393
+ position: "relative",
4394
+ className: styles_lib_components_private_Modal_Modal_css_cjs.headingRoot,
4395
+ children: [
4396
+ title,
4397
+ /* @__PURE__ */ jsxRuntime.jsx(
4398
+ ToastContext.Overlay,
4399
+ {
4400
+ boxShadow: "outlineFocus",
4401
+ borderRadius: "standard",
4402
+ transition: "fast",
4403
+ className: styles_lib_components_private_Modal_Modal_css_cjs.headingFocus,
4404
+ onlyVisibleForKeyboardNavigation: true
4405
+ }
4406
+ )
4407
+ ]
4408
+ }
4409
+ ) }),
4410
+ description ? /* @__PURE__ */ jsxRuntime.jsx(ToastContext.Box, { id: descriptionId, children: description }) : null
4411
+ ]
4412
+ }
4413
+ )
4333
4414
  );
4334
4415
  const ModalContent = ({
4335
4416
  id,
@@ -4397,7 +4478,8 @@ const ModalContent = ({
4397
4478
  boxShadow: "large",
4398
4479
  width: width !== "content" ? "full" : void 0,
4399
4480
  height: position === "right" || position === "left" ? "full" : void 0,
4400
- padding: modalPadding,
4481
+ paddingY: modalPadding,
4482
+ paddingX: position !== "center" ? gutters : modalPadding,
4401
4483
  className: [
4402
4484
  styles_lib_components_private_Modal_Modal_css_cjs.pointerEventsAll,
4403
4485
  position === "center" && styles_lib_components_private_Modal_Modal_css_cjs.maxSize[position]
@@ -4446,15 +4528,14 @@ const ModalContent = ({
4446
4528
  display: "flex",
4447
4529
  justifyContent: "flexEnd",
4448
4530
  paddingTop: modalPadding,
4449
- paddingRight: modalPadding,
4531
+ paddingRight: position !== "center" ? gutters : modalPadding,
4450
4532
  className: position === "center" && styles_lib_components_private_Modal_Modal_css_cjs.maxSize[position],
4451
- children: /* @__PURE__ */ jsxRuntime.jsx(ToastContext.Bleed, { space: "xsmall", children: /* @__PURE__ */ jsxRuntime.jsx(
4533
+ children: /* @__PURE__ */ jsxRuntime.jsx(
4452
4534
  ToastContext.Box,
4453
4535
  {
4454
4536
  position: "relative",
4455
4537
  background: "surface",
4456
4538
  borderRadius: "full",
4457
- padding: "xsmall",
4458
4539
  className: [styles_lib_components_private_Modal_Modal_css_cjs.closeIconOffset, styles_lib_components_private_Modal_Modal_css_cjs.pointerEventsAll],
4459
4540
  children: /* @__PURE__ */ jsxRuntime.jsx(
4460
4541
  ToastContext.ButtonIcon,
@@ -4469,7 +4550,7 @@ const ModalContent = ({
4469
4550
  }
4470
4551
  )
4471
4552
  }
4472
- ) })
4553
+ )
4473
4554
  }
4474
4555
  )
4475
4556
  ]
@@ -4562,24 +4643,28 @@ const Modal = ({
4562
4643
  const closeHandlerRef = React.useRef(onClose);
4563
4644
  const initiateClose = () => {
4564
4645
  if (allowClose) {
4565
- dispatch(CLOSE_MODAL);
4646
+ const result = closeHandlerRef.current(false);
4647
+ if (result === false) {
4648
+ return result;
4649
+ }
4650
+ if (openRef.current) {
4651
+ dispatch(CLOSE_MODAL);
4652
+ }
4566
4653
  }
4567
4654
  };
4568
4655
  React.useEffect(() => {
4569
4656
  openRef.current = open;
4570
4657
  dispatch(open ? OPEN_MODAL : CLOSE_MODAL);
4571
4658
  }, [open]);
4659
+ const closing = state === CLOSING;
4572
4660
  React.useEffect(() => {
4573
- if (state === CLOSING) {
4661
+ if (closing) {
4574
4662
  const timer = setTimeout(() => {
4575
4663
  dispatch(ANIMATION_COMPLETE);
4576
4664
  }, ANIMATION_DURATION);
4577
4665
  return () => clearTimeout(timer);
4578
4666
  }
4579
- if (state === CLOSED && openRef.current) {
4580
- closeHandlerRef.current(false);
4581
- }
4582
- }, [state]);
4667
+ }, [closing]);
4583
4668
  const shouldAriaHideOthers = state === OPEN || state === CLOSING;
4584
4669
  React.useEffect(() => {
4585
4670
  if (shouldAriaHideOthers && modalRef.current) {
@@ -4646,7 +4731,7 @@ const Modal = ({
4646
4731
  padding: position === "center" ? styles_lib_components_private_Modal_ModalExternalGutter_cjs.externalGutter : void 0,
4647
4732
  className: [
4648
4733
  styles_lib_components_private_Modal_Modal_css_cjs.modalContainer,
4649
- position === "left" || position === "right" && styles_lib_components_private_Modal_Modal_css_cjs.horiztontalTransition,
4734
+ (position === "left" || position === "right") && styles_lib_components_private_Modal_Modal_css_cjs.horiztontalTransition,
4650
4735
  state === OPENING && styles_lib_components_private_Modal_Modal_css_cjs.entrance[position],
4651
4736
  state === CLOSING && position in styles_lib_components_private_Modal_Modal_css_cjs.exit && styles_lib_components_private_Modal_Modal_css_cjs.exit[position]
4652
4737
  ],
@@ -5907,33 +5992,6 @@ const Notice = ({
5907
5992
  }
5908
5993
  );
5909
5994
  };
5910
- const validPageBlockComponents = [
5911
- "div",
5912
- "article",
5913
- "aside",
5914
- "main",
5915
- "section",
5916
- "nav"
5917
- ];
5918
- const gutters = { mobile: "xsmall", tablet: "gutter" };
5919
- const PageBlock = ({
5920
- children,
5921
- width = "large",
5922
- component: componentProp,
5923
- data,
5924
- ...restProps
5925
- }) => {
5926
- const component = componentProp && validPageBlockComponents.includes(componentProp) ? componentProp : "div";
5927
- return /* @__PURE__ */ jsxRuntime.jsx(
5928
- ToastContext.Box,
5929
- {
5930
- component,
5931
- paddingX: gutters,
5932
- ...ToastContext.buildDataAttributes({ data, validateRestProps: restProps }),
5933
- children: /* @__PURE__ */ jsxRuntime.jsx(ToastContext.ContentBlock, { width, children })
5934
- }
5935
- );
5936
- };
5937
5995
  const paginate = ({
5938
5996
  page,
5939
5997
  total,
@@ -8205,6 +8263,7 @@ exports.IconDocumentBroken = IconDocumentBroken;
8205
8263
  exports.IconDownload = IconDownload;
8206
8264
  exports.IconEdit = IconEdit;
8207
8265
  exports.IconEducation = IconEducation;
8266
+ exports.IconEnlarge = IconEnlarge;
8208
8267
  exports.IconFilter = IconFilter;
8209
8268
  exports.IconFlag = IconFlag;
8210
8269
  exports.IconGrid = IconGrid;