braid-design-system 33.12.2 → 33.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,34 +1,31 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { assignInlineVars } from "@vanilla-extract/dynamic";
2
+ import { offset, flip, size, shift, arrow, useFloating, autoUpdate } from "@floating-ui/react-dom";
3
3
  import dedent from "dedent";
4
- import { forwardRef, useState, useRef, useImperativeHandle, useEffect } from "react";
5
- import { useIsomorphicLayoutEffect } from "../../../hooks/useIsomorphicLayoutEffect.mjs";
4
+ import { forwardRef, useRef, useImperativeHandle, useEffect, createContext } from "react";
6
5
  import { Box } from "../../Box/Box.mjs";
7
6
  import { BraidPortal } from "../../BraidPortal/BraidPortal.mjs";
7
+ import { useResponsiveValue } from "../../useResponsiveValue/useResponsiveValue.mjs";
8
8
  import { useSpace } from "../../useSpace/useSpace.mjs";
9
9
  import { animationTimeout } from "../animationTimeout.mjs";
10
- import { transitionThreshold, triggerVars, backdrop, delayVisibility, invertPlacement, animation, popoverPosition, horizontalOffset } from "./Popover.css.mjs";
11
- const zIndex = "notification";
12
- const getPosition = (element) => {
13
- if (!element) {
14
- return void 0;
10
+ import { backdrop, delayVisibility, invertPlacement, animation } from "./Popover.css.mjs";
11
+ import { normalizeResponsiveValue } from "../../../css/atoms/sprinkles.css.mjs";
12
+ const positionMap = {
13
+ top: {
14
+ left: "top-start",
15
+ center: "top",
16
+ right: "top-end"
17
+ },
18
+ bottom: {
19
+ left: "bottom-start",
20
+ center: "bottom",
21
+ right: "bottom-end"
15
22
  }
16
- const rect = element.getBoundingClientRect();
17
- const { top, bottom, left, right, width } = rect;
18
- const { scrollX: scrollX2, scrollY, innerWidth } = window;
19
- return {
20
- // For `top`, we subtract this from the dynamic viewport height in `Popover.css.ts`
21
- // which can't be accessed from Javascript.
22
- top: top + scrollY,
23
- bottom: bottom + scrollY,
24
- left: left + scrollX2,
25
- right: innerWidth - right - scrollX2,
26
- width
27
- };
28
23
  };
29
- function clamp(min, preferred, max) {
30
- return Math.min(Math.max(preferred, min), max);
24
+ function getFloatingUiPosition(placement, align) {
25
+ return positionMap[placement][align];
31
26
  }
27
+ const zIndex = "notification";
28
+ const PopoverContext = createContext(null);
32
29
  const PopoverContent = forwardRef(
33
30
  ({
34
31
  id,
@@ -42,18 +39,59 @@ const PopoverContent = forwardRef(
42
39
  modal = true,
43
40
  open,
44
41
  onClose,
42
+ onPlacementChange,
45
43
  triggerRef,
46
44
  enterFocusRef,
45
+ arrowRef,
47
46
  children
48
47
  }, forwardedRef) => {
49
- const [triggerPosition, setTriggerPosition] = useState(void 0);
50
48
  const ref = useRef(null);
51
49
  useImperativeHandle(forwardedRef, () => ref.current);
52
- const [horizontalOffset$1, setHorizontalOffset] = useState(0);
53
- const [actualPlacement, setActualPlacement] = useState(placement);
54
- const showPopover = open && triggerPosition;
55
- const transitionThresholdInPx = useSpace().space[transitionThreshold];
56
- const alignmentAnchor = align === "center" ? "left" : align;
50
+ const normalized = normalizeResponsiveValue(offsetSpace);
51
+ const mobile = normalized.mobile ?? "none";
52
+ const tablet = normalized.tablet ?? mobile;
53
+ const desktop = normalized.desktop ?? tablet;
54
+ const wide = normalized.wide ?? desktop;
55
+ const resolvedOffsetSpace = useResponsiveValue()({ mobile, tablet, desktop, wide }) ?? mobile;
56
+ const spaceScale = useSpace();
57
+ let offsetSpacePx = 0;
58
+ if (resolvedOffsetSpace !== "none") {
59
+ offsetSpacePx = spaceScale.space[resolvedOffsetSpace] * spaceScale.grid;
60
+ }
61
+ const floatingUiRequestedPosition = getFloatingUiPosition(placement, align);
62
+ const middleware = [
63
+ offset(offsetSpacePx),
64
+ !lockPlacement && flip(),
65
+ width === "full" ? size({
66
+ apply({ rects, elements }) {
67
+ Object.assign(elements.floating.style, {
68
+ width: `${rects.reference.width}px`
69
+ });
70
+ }
71
+ }) : shift({
72
+ crossAxis: align === "center"
73
+ }),
74
+ arrowRef && arrow({ element: arrowRef })
75
+ ].filter(Boolean);
76
+ const {
77
+ refs,
78
+ floatingStyles,
79
+ middlewareData,
80
+ placement: floatingUiEvaluatedPosition,
81
+ isPositioned
82
+ } = useFloating({
83
+ placement: floatingUiRequestedPosition,
84
+ middleware,
85
+ whileElementsMounted: autoUpdate
86
+ });
87
+ useEffect(() => {
88
+ refs.setReference(triggerRef.current);
89
+ }, [triggerRef, refs]);
90
+ useEffect(() => {
91
+ if (ref.current) {
92
+ refs.setFloating(ref.current);
93
+ }
94
+ }, [refs]);
57
95
  useEffect(() => {
58
96
  const handleKeydown = (event) => {
59
97
  if (event.key === "Escape" || event.key === "Tab") {
@@ -78,9 +116,6 @@ const PopoverContent = forwardRef(
78
116
  window.removeEventListener("keydown", handleKeydown);
79
117
  };
80
118
  }, [onClose, triggerRef]);
81
- useEffect(() => {
82
- setTriggerPosition(getPosition(triggerRef.current));
83
- }, [triggerRef]);
84
119
  useEffect(() => {
85
120
  setTimeout(() => {
86
121
  if (!enterFocusRef) {
@@ -98,95 +133,24 @@ const PopoverContent = forwardRef(
98
133
  }
99
134
  }
100
135
  }, animationTimeout);
101
- }, [open, enterFocusRef, triggerRef]);
136
+ }, [open, enterFocusRef]);
137
+ const resolvedPlacement = floatingUiEvaluatedPosition?.startsWith("top") ? "top" : "bottom";
102
138
  useEffect(() => {
103
- const handleResize = () => {
104
- setTriggerPosition(getPosition(triggerRef.current));
105
- };
106
- window.addEventListener("resize", handleResize);
107
- const resizeObserver = new ResizeObserver(handleResize);
108
- resizeObserver.observe(document.body);
109
- return () => {
110
- window.removeEventListener("resize", handleResize);
111
- resizeObserver.disconnect();
112
- };
113
- }, [triggerRef]);
114
- const handlePlacement = () => {
115
- const popoverBoundingRect = ref?.current?.getBoundingClientRect();
116
- if (!popoverBoundingRect) {
117
- return;
118
- }
119
- const triggerBoundingRect = triggerRef.current?.getBoundingClientRect();
120
- if (!triggerBoundingRect) {
121
- return;
122
- }
123
- const { height: popoverHeight } = popoverBoundingRect;
124
- const heightRequired = popoverHeight + transitionThresholdInPx;
125
- const fitsAbove = triggerBoundingRect.top >= heightRequired;
126
- const fitsBelow = window.innerHeight - triggerBoundingRect.bottom >= heightRequired;
127
- if (!fitsAbove && fitsBelow) {
128
- setActualPlacement("bottom");
129
- } else if (!fitsBelow && fitsAbove) {
130
- setActualPlacement("top");
131
- } else {
132
- setActualPlacement(placement);
139
+ if (onPlacementChange) {
140
+ onPlacementChange({
141
+ placement: resolvedPlacement,
142
+ arrow: middlewareData.arrow
143
+ });
133
144
  }
145
+ }, [resolvedPlacement, middlewareData.arrow, onPlacementChange]);
146
+ const combinedStyles = {
147
+ ...floatingStyles,
148
+ ...!isPositioned ? { opacity: 0, pointerEvents: "none" } : {}
134
149
  };
135
- const handleHorizontalShift = () => {
136
- if (!triggerPosition) {
137
- return;
138
- }
139
- const popoverBoundingRect = ref?.current?.getBoundingClientRect();
140
- if (!popoverBoundingRect) {
141
- return;
142
- }
143
- const { width: popoverWidth } = popoverBoundingRect;
144
- const triggerCenter = triggerPosition.width && triggerPosition.left + triggerPosition.width / 2;
145
- const popoverLeft = align === "center" && triggerCenter ? triggerCenter - popoverWidth / 2 : triggerPosition.left;
146
- const clampedPopoverLeft = clamp(
147
- scrollX,
148
- popoverLeft,
149
- window.innerWidth + scrollX - popoverWidth
150
- );
151
- const triggerRightFromLeft = window.innerWidth - triggerPosition.right;
152
- const clampedTriggerRightFromLeft = clamp(
153
- scrollX + popoverWidth,
154
- triggerRightFromLeft,
155
- scrollX + window.innerWidth
156
- );
157
- if (alignmentAnchor === "right" && clampedTriggerRightFromLeft !== triggerPosition.right + horizontalOffset$1) {
158
- setHorizontalOffset(
159
- window.innerWidth - clampedTriggerRightFromLeft - triggerPosition.right
160
- );
161
- }
162
- if (alignmentAnchor === "left" && clampedPopoverLeft !== triggerPosition.left + horizontalOffset$1) {
163
- setHorizontalOffset(clampedPopoverLeft - triggerPosition.left);
164
- }
165
- return;
166
- };
167
- useIsomorphicLayoutEffect(() => {
168
- if (!showPopover) {
169
- return;
170
- }
171
- if (width !== "full") {
172
- handleHorizontalShift();
173
- }
174
- if (!lockPlacement) {
175
- handlePlacement();
176
- }
177
- }, [showPopover]);
178
- const triggerPositionVars = triggerPosition && {
179
- // Vertical positioning
180
- [triggerVars[actualPlacement]]: `${triggerPosition[actualPlacement]}`,
181
- // Horizontal positioning
182
- [triggerVars.left]: width === "full" || alignmentAnchor === "left" ? `${triggerPosition?.left}` : void 0,
183
- [triggerVars.right]: width === "full" || alignmentAnchor === "right" ? `${triggerPosition?.right}` : void 0,
184
- // Horizontal scroll offset
185
- [horizontalOffset]: width !== "full" ? `${horizontalOffset$1}` : "0"
150
+ const popoverContextValue = {
151
+ arrow: middlewareData.arrow,
152
+ resolvedPlacement
186
153
  };
187
- if (!showPopover) {
188
- return null;
189
- }
190
154
  return /* @__PURE__ */ jsxs(BraidPortal, { children: [
191
155
  modal && /* @__PURE__ */ jsx(
192
156
  Box,
@@ -214,17 +178,18 @@ const PopoverContent = forwardRef(
214
178
  role: role || void 0,
215
179
  tabIndex: -1,
216
180
  zIndex,
217
- position: "absolute",
218
- marginTop: actualPlacement === "bottom" ? offsetSpace : void 0,
219
- marginBottom: actualPlacement === "top" ? offsetSpace : void 0,
220
- style: triggerPositionVars && assignInlineVars(triggerPositionVars),
221
- className: {
222
- [popoverPosition]: true,
223
- [animation]: true,
224
- [invertPlacement]: actualPlacement === "bottom",
225
- [delayVisibility]: delayVisibility$1
226
- },
227
- children
181
+ style: combinedStyles,
182
+ children: /* @__PURE__ */ jsx(
183
+ Box,
184
+ {
185
+ className: {
186
+ [animation]: true,
187
+ [invertPlacement]: resolvedPlacement === "bottom",
188
+ [delayVisibility]: delayVisibility$1
189
+ },
190
+ children: /* @__PURE__ */ jsx(PopoverContext.Provider, { value: popoverContextValue, children })
191
+ }
192
+ )
228
193
  }
229
194
  )
230
195
  ] });
@@ -1 +1,7 @@
1
1
  "use strict";
2
+ const BraidPortal = void 0;
3
+ const BraidProvider = void 0;
4
+ const makeLinkComponent = void 0;
5
+ exports.BraidPortal = BraidPortal;
6
+ exports.BraidProvider = BraidProvider;
7
+ exports.makeLinkComponent = makeLinkComponent;
@@ -1 +1,8 @@
1
-
1
+ const BraidPortal = void 0;
2
+ const BraidProvider = void 0;
3
+ const makeLinkComponent = void 0;
4
+ export {
5
+ BraidPortal,
6
+ BraidProvider,
7
+ makeLinkComponent
8
+ };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const dedent = require("dedent");
4
+ const lib_playroom_components_cjs = require("../lib/playroom/components.cjs");
4
5
  const lib_components_Accordion_Accordion_playroom_cjs = require("../lib/components/Accordion/Accordion.playroom.cjs");
5
6
  const lib_components_Accordion_AccordionItem_playroom_cjs = require("../lib/components/Accordion/AccordionItem.playroom.cjs");
6
7
  const lib_components_Alert_Alert_playroom_cjs = require("../lib/components/Alert/Alert.playroom.cjs");
@@ -44,8 +45,6 @@ const lib_components_TextField_TextField_playroom_cjs = require("../lib/componen
44
45
  const lib_components_Tiles_Tiles_playroom_cjs = require("../lib/components/Tiles/Tiles.playroom.cjs");
45
46
  const lib_components_Toggle_Toggle_playroom_cjs = require("../lib/components/Toggle/Toggle.playroom.cjs");
46
47
  const lib_components_private_Placeholder_Placeholder_cjs = require("../lib/components/private/Placeholder/Placeholder.cjs");
47
- const lib_components_BraidProvider_BraidProvider_cjs = require("../lib/components/BraidProvider/BraidProvider.cjs");
48
- const lib_components_BraidPortal_BraidPortal_cjs = require("../lib/components/BraidPortal/BraidPortal.cjs");
49
48
  const lib_components_ThemeNameConsumer_ThemeNameConsumer_cjs = require("../lib/components/ThemeNameConsumer/ThemeNameConsumer.cjs");
50
49
  const lib_components_useThemeName_useThemeName_cjs = require("../lib/components/useThemeName/useThemeName.cjs");
51
50
  const lib_components_useSpace_useSpace_cjs = require("../lib/components/useSpace/useSpace.cjs");
@@ -209,6 +208,9 @@ if (global.__IS_PLAYROOM_ENVIRONMENT__ !== "clearly") {
209
208
  +import { Component } from 'braid-design-system';
210
209
  `);
211
210
  }
211
+ exports.BraidPortal = lib_playroom_components_cjs.BraidPortal;
212
+ exports.BraidProvider = lib_playroom_components_cjs.BraidProvider;
213
+ exports.makeLinkComponent = lib_playroom_components_cjs.makeLinkComponent;
212
214
  exports.Accordion = lib_components_Accordion_Accordion_playroom_cjs.Accordion;
213
215
  exports.AccordionItem = lib_components_Accordion_AccordionItem_playroom_cjs.AccordionItem;
214
216
  exports.Alert = lib_components_Alert_Alert_playroom_cjs.Alert;
@@ -253,9 +255,6 @@ exports.TextField = lib_components_TextField_TextField_playroom_cjs.TextField;
253
255
  exports.Tiles = lib_components_Tiles_Tiles_playroom_cjs.Tiles;
254
256
  exports.Toggle = lib_components_Toggle_Toggle_playroom_cjs.Toggle;
255
257
  exports.Placeholder = lib_components_private_Placeholder_Placeholder_cjs.Placeholder;
256
- exports.BraidProvider = lib_components_BraidProvider_BraidProvider_cjs.BraidProvider;
257
- exports.makeLinkComponent = lib_components_BraidProvider_BraidProvider_cjs.makeLinkComponent;
258
- exports.BraidPortal = lib_components_BraidPortal_BraidPortal_cjs.BraidPortal;
259
258
  exports.ThemeNameConsumer = lib_components_ThemeNameConsumer_ThemeNameConsumer_cjs.ThemeNameConsumer;
260
259
  exports.useThemeName = lib_components_useThemeName_useThemeName_cjs.useThemeName;
261
260
  exports.useSpace = lib_components_useSpace_useSpace_cjs.useSpace;
@@ -1 +1 @@
1
- export { Accordion$1 as Accordion, AccordionItem$1 as AccordionItem, Actions, Alert$1 as Alert, Autosuggest$1 as Autosuggest, Badge$1 as Badge, Bleed$1 as Bleed, Box$1 as Box, BoxRenderer, BraidPortal, BraidProvider, Button$1 as Button, ButtonIcon$1 as ButtonIcon, ButtonLink$1 as ButtonLink, Card$1 as Card, Checkbox$1 as Checkbox, CheckboxStandalone$1 as CheckboxStandalone, Column, Columns$1 as Columns, ContentBlock, Dialog$1 as Dialog, Disclosure$1 as Disclosure, Divider, Drawer$1 as Drawer, Dropdown$1 as Dropdown, FieldLabel$1 as FieldLabel, FieldMessage$1 as FieldMessage, Heading$1 as Heading, Hidden, HiddenVisually, IconAI, IconAdd, IconArrow, IconAttachment, IconBluetooth, IconBold, IconBookmark, IconBulletList, IconCareer, IconCategory, IconCaution, IconChecklist, IconChevron, IconClear, IconCompany, IconCompose, IconCopy, IconCoverLetter, IconCreditCard, IconCritical, IconDate, IconDelete, IconDesktop, IconDisallow, IconDocument, IconDocumentBroken, IconDownload, IconEdit, IconEducation, IconEnlarge, IconExperience, IconFilter, IconFlag, IconGift, IconGlobe, IconGrid, IconHash, IconHeart, IconHelp, IconHistory, IconHome, IconImage, IconInfo, IconInvoice, IconItalic, IconLanguage, IconLicence, IconLink, IconLinkBroken, IconList, IconLocation, IconMail, IconMessage, IconMicrophone, IconMinus, IconMobile, IconMoney, IconNewWindow, IconNote, IconNotification, IconNumberedList, IconOverflow, IconPeople, IconPersonAdd, IconPersonVerified, IconPhone, IconPlatformAndroid, IconPlatformApple, IconPositive, IconPrint, IconProfile, IconPromote, IconQR, IconRecommended, IconRedo, IconRefresh, IconRenderer, IconResume, IconRocket, IconSearch, IconSecurity, IconSend, IconSent, IconSentiment, IconSettings, IconShare, IconSkills, IconSocialFacebook, IconSocialGitHub, IconSocialInstagram, IconSocialLinkedIn, IconSocialMedium, IconSocialTiktok, IconSocialX, IconSocialYouTube, IconSort, IconStar, IconStatistics, IconSubCategory, IconTag, IconThumb, IconTick, IconTime, IconTip, IconTitle, IconUndo, IconUpload, IconVideo, IconVisibility, IconWorkExperience, IconZoomIn, IconZoomOut, Inline$1 as Inline, Link$1 as Link, LinkComponent, List$1 as List, Loader, MenuItem$1 as MenuItem, MenuItemCheckbox$1 as MenuItemCheckbox, MenuItemDivider, MenuItemLink$1 as MenuItemLink, MenuRenderer, MonthPicker$1 as MonthPicker, Notice$1 as Notice, OverflowMenu, Page, PageBlock, Pagination$1 as Pagination, PasswordField$1 as PasswordField, Placeholder, RadioGroup$1 as RadioGroup, RadioItem, Rating$1 as Rating, Secondary, Spread$1 as Spread, Stack$1 as Stack, Step, Stepper, Strong, Tab$1 as Tab, TabPanel, TabPanels, Table, TableBody, TableCell, TableFooter, TableHeader, TableHeaderCell, TableRow, Tabs$1 as Tabs, TabsProvider, Tag$1 as Tag, Text, TextDropdown$1 as TextDropdown, TextField$1 as TextField, TextLink, TextLinkButton, Textarea$1 as Textarea, ThemeNameConsumer, Tiles$1 as Tiles, ToastProvider, Toggle$1 as Toggle, TooltipRenderer, filterSuggestions, makeLinkComponent, useColor, useResponsiveValue, useSpace, useThemeName, useToast } from '../index.js';
1
+ export { Accordion$1 as Accordion, AccordionItem$1 as AccordionItem, Actions, Alert$1 as Alert, Autosuggest$1 as Autosuggest, Badge$1 as Badge, Bleed$1 as Bleed, Box$1 as Box, BoxRenderer, BraidPortal$1 as BraidPortal, BraidProvider$1 as BraidProvider, Button$1 as Button, ButtonIcon$1 as ButtonIcon, ButtonLink$1 as ButtonLink, Card$1 as Card, Checkbox$1 as Checkbox, CheckboxStandalone$1 as CheckboxStandalone, Column, Columns$1 as Columns, ContentBlock, Dialog$1 as Dialog, Disclosure$1 as Disclosure, Divider, Drawer$1 as Drawer, Dropdown$1 as Dropdown, FieldLabel$1 as FieldLabel, FieldMessage$1 as FieldMessage, Heading$1 as Heading, Hidden, HiddenVisually, IconAI, IconAdd, IconArrow, IconAttachment, IconBluetooth, IconBold, IconBookmark, IconBulletList, IconCareer, IconCategory, IconCaution, IconChecklist, IconChevron, IconClear, IconCompany, IconCompose, IconCopy, IconCoverLetter, IconCreditCard, IconCritical, IconDate, IconDelete, IconDesktop, IconDisallow, IconDocument, IconDocumentBroken, IconDownload, IconEdit, IconEducation, IconEnlarge, IconExperience, IconFilter, IconFlag, IconGift, IconGlobe, IconGrid, IconHash, IconHeart, IconHelp, IconHistory, IconHome, IconImage, IconInfo, IconInvoice, IconItalic, IconLanguage, IconLicence, IconLink, IconLinkBroken, IconList, IconLocation, IconMail, IconMessage, IconMicrophone, IconMinus, IconMobile, IconMoney, IconNewWindow, IconNote, IconNotification, IconNumberedList, IconOverflow, IconPeople, IconPersonAdd, IconPersonVerified, IconPhone, IconPlatformAndroid, IconPlatformApple, IconPositive, IconPrint, IconProfile, IconPromote, IconQR, IconRecommended, IconRedo, IconRefresh, IconRenderer, IconResume, IconRocket, IconSearch, IconSecurity, IconSend, IconSent, IconSentiment, IconSettings, IconShare, IconSkills, IconSocialFacebook, IconSocialGitHub, IconSocialInstagram, IconSocialLinkedIn, IconSocialMedium, IconSocialTiktok, IconSocialX, IconSocialYouTube, IconSort, IconStar, IconStatistics, IconSubCategory, IconTag, IconThumb, IconTick, IconTime, IconTip, IconTitle, IconUndo, IconUpload, IconVideo, IconVisibility, IconWorkExperience, IconZoomIn, IconZoomOut, Inline$1 as Inline, Link$1 as Link, LinkComponent, List$1 as List, Loader, MenuItem$1 as MenuItem, MenuItemCheckbox$1 as MenuItemCheckbox, MenuItemDivider, MenuItemLink$1 as MenuItemLink, MenuRenderer, MonthPicker$1 as MonthPicker, Notice$1 as Notice, OverflowMenu, Page, PageBlock, Pagination$1 as Pagination, PasswordField$1 as PasswordField, Placeholder, RadioGroup$1 as RadioGroup, RadioItem, Rating$1 as Rating, Secondary, Spread$1 as Spread, Stack$1 as Stack, Step, Stepper, Strong, Tab$1 as Tab, TabPanel, TabPanels, Table, TableBody, TableCell, TableFooter, TableHeader, TableHeaderCell, TableRow, Tabs$1 as Tabs, TabsProvider, Tag$1 as Tag, Text, TextDropdown$1 as TextDropdown, TextField$1 as TextField, TextLink, TextLinkButton, Textarea$1 as Textarea, ThemeNameConsumer, Tiles$1 as Tiles, ToastProvider, Toggle$1 as Toggle, TooltipRenderer, filterSuggestions, makeLinkComponent$1 as makeLinkComponent, useColor, useResponsiveValue, useSpace, useThemeName, useToast } from '../index.js';
@@ -1 +1 @@
1
- export { Accordion$1 as Accordion, AccordionItem$1 as AccordionItem, Actions, Alert$1 as Alert, Autosuggest$1 as Autosuggest, Badge$1 as Badge, Bleed$1 as Bleed, Box$1 as Box, BoxRenderer, BraidPortal, BraidProvider, Button$1 as Button, ButtonIcon$1 as ButtonIcon, ButtonLink$1 as ButtonLink, Card$1 as Card, Checkbox$1 as Checkbox, CheckboxStandalone$1 as CheckboxStandalone, Column, Columns$1 as Columns, ContentBlock, Dialog$1 as Dialog, Disclosure$1 as Disclosure, Divider, Drawer$1 as Drawer, Dropdown$1 as Dropdown, FieldLabel$1 as FieldLabel, FieldMessage$1 as FieldMessage, Heading$1 as Heading, Hidden, HiddenVisually, IconAI, IconAdd, IconArrow, IconAttachment, IconBluetooth, IconBold, IconBookmark, IconBulletList, IconCareer, IconCategory, IconCaution, IconChecklist, IconChevron, IconClear, IconCompany, IconCompose, IconCopy, IconCoverLetter, IconCreditCard, IconCritical, IconDate, IconDelete, IconDesktop, IconDisallow, IconDocument, IconDocumentBroken, IconDownload, IconEdit, IconEducation, IconEnlarge, IconExperience, IconFilter, IconFlag, IconGift, IconGlobe, IconGrid, IconHash, IconHeart, IconHelp, IconHistory, IconHome, IconImage, IconInfo, IconInvoice, IconItalic, IconLanguage, IconLicence, IconLink, IconLinkBroken, IconList, IconLocation, IconMail, IconMessage, IconMicrophone, IconMinus, IconMobile, IconMoney, IconNewWindow, IconNote, IconNotification, IconNumberedList, IconOverflow, IconPeople, IconPersonAdd, IconPersonVerified, IconPhone, IconPlatformAndroid, IconPlatformApple, IconPositive, IconPrint, IconProfile, IconPromote, IconQR, IconRecommended, IconRedo, IconRefresh, IconRenderer, IconResume, IconRocket, IconSearch, IconSecurity, IconSend, IconSent, IconSentiment, IconSettings, IconShare, IconSkills, IconSocialFacebook, IconSocialGitHub, IconSocialInstagram, IconSocialLinkedIn, IconSocialMedium, IconSocialTiktok, IconSocialX, IconSocialYouTube, IconSort, IconStar, IconStatistics, IconSubCategory, IconTag, IconThumb, IconTick, IconTime, IconTip, IconTitle, IconUndo, IconUpload, IconVideo, IconVisibility, IconWorkExperience, IconZoomIn, IconZoomOut, Inline$1 as Inline, Link$1 as Link, LinkComponent, List$1 as List, Loader, MenuItem$1 as MenuItem, MenuItemCheckbox$1 as MenuItemCheckbox, MenuItemDivider, MenuItemLink$1 as MenuItemLink, MenuRenderer, MonthPicker$1 as MonthPicker, Notice$1 as Notice, OverflowMenu, Page, PageBlock, Pagination$1 as Pagination, PasswordField$1 as PasswordField, Placeholder, RadioGroup$1 as RadioGroup, RadioItem, Rating$1 as Rating, Secondary, Spread$1 as Spread, Stack$1 as Stack, Step, Stepper, Strong, Tab$1 as Tab, TabPanel, TabPanels, Table, TableBody, TableCell, TableFooter, TableHeader, TableHeaderCell, TableRow, Tabs$1 as Tabs, TabsProvider, Tag$1 as Tag, Text, TextDropdown$1 as TextDropdown, TextField$1 as TextField, TextLink, TextLinkButton, Textarea$1 as Textarea, ThemeNameConsumer, Tiles$1 as Tiles, ToastProvider, Toggle$1 as Toggle, TooltipRenderer, filterSuggestions, makeLinkComponent, useColor, useResponsiveValue, useSpace, useThemeName, useToast } from '../index.js';
1
+ export { Accordion$1 as Accordion, AccordionItem$1 as AccordionItem, Actions, Alert$1 as Alert, Autosuggest$1 as Autosuggest, Badge$1 as Badge, Bleed$1 as Bleed, Box$1 as Box, BoxRenderer, BraidPortal$1 as BraidPortal, BraidProvider$1 as BraidProvider, Button$1 as Button, ButtonIcon$1 as ButtonIcon, ButtonLink$1 as ButtonLink, Card$1 as Card, Checkbox$1 as Checkbox, CheckboxStandalone$1 as CheckboxStandalone, Column, Columns$1 as Columns, ContentBlock, Dialog$1 as Dialog, Disclosure$1 as Disclosure, Divider, Drawer$1 as Drawer, Dropdown$1 as Dropdown, FieldLabel$1 as FieldLabel, FieldMessage$1 as FieldMessage, Heading$1 as Heading, Hidden, HiddenVisually, IconAI, IconAdd, IconArrow, IconAttachment, IconBluetooth, IconBold, IconBookmark, IconBulletList, IconCareer, IconCategory, IconCaution, IconChecklist, IconChevron, IconClear, IconCompany, IconCompose, IconCopy, IconCoverLetter, IconCreditCard, IconCritical, IconDate, IconDelete, IconDesktop, IconDisallow, IconDocument, IconDocumentBroken, IconDownload, IconEdit, IconEducation, IconEnlarge, IconExperience, IconFilter, IconFlag, IconGift, IconGlobe, IconGrid, IconHash, IconHeart, IconHelp, IconHistory, IconHome, IconImage, IconInfo, IconInvoice, IconItalic, IconLanguage, IconLicence, IconLink, IconLinkBroken, IconList, IconLocation, IconMail, IconMessage, IconMicrophone, IconMinus, IconMobile, IconMoney, IconNewWindow, IconNote, IconNotification, IconNumberedList, IconOverflow, IconPeople, IconPersonAdd, IconPersonVerified, IconPhone, IconPlatformAndroid, IconPlatformApple, IconPositive, IconPrint, IconProfile, IconPromote, IconQR, IconRecommended, IconRedo, IconRefresh, IconRenderer, IconResume, IconRocket, IconSearch, IconSecurity, IconSend, IconSent, IconSentiment, IconSettings, IconShare, IconSkills, IconSocialFacebook, IconSocialGitHub, IconSocialInstagram, IconSocialLinkedIn, IconSocialMedium, IconSocialTiktok, IconSocialX, IconSocialYouTube, IconSort, IconStar, IconStatistics, IconSubCategory, IconTag, IconThumb, IconTick, IconTime, IconTip, IconTitle, IconUndo, IconUpload, IconVideo, IconVisibility, IconWorkExperience, IconZoomIn, IconZoomOut, Inline$1 as Inline, Link$1 as Link, LinkComponent, List$1 as List, Loader, MenuItem$1 as MenuItem, MenuItemCheckbox$1 as MenuItemCheckbox, MenuItemDivider, MenuItemLink$1 as MenuItemLink, MenuRenderer, MonthPicker$1 as MonthPicker, Notice$1 as Notice, OverflowMenu, Page, PageBlock, Pagination$1 as Pagination, PasswordField$1 as PasswordField, Placeholder, RadioGroup$1 as RadioGroup, RadioItem, Rating$1 as Rating, Secondary, Spread$1 as Spread, Stack$1 as Stack, Step, Stepper, Strong, Tab$1 as Tab, TabPanel, TabPanels, Table, TableBody, TableCell, TableFooter, TableHeader, TableHeaderCell, TableRow, Tabs$1 as Tabs, TabsProvider, Tag$1 as Tag, Text, TextDropdown$1 as TextDropdown, TextField$1 as TextField, TextLink, TextLinkButton, Textarea$1 as Textarea, ThemeNameConsumer, Tiles$1 as Tiles, ToastProvider, Toggle$1 as Toggle, TooltipRenderer, filterSuggestions, makeLinkComponent$1 as makeLinkComponent, useColor, useResponsiveValue, useSpace, useThemeName, useToast } from '../index.js';
@@ -1,4 +1,5 @@
1
1
  import dedent from "dedent";
2
+ import { BraidPortal, BraidProvider, makeLinkComponent } from "../lib/playroom/components.mjs";
2
3
  import { Accordion } from "../lib/components/Accordion/Accordion.playroom.mjs";
3
4
  import { AccordionItem } from "../lib/components/Accordion/AccordionItem.playroom.mjs";
4
5
  import { Alert } from "../lib/components/Alert/Alert.playroom.mjs";
@@ -42,8 +43,6 @@ import { TextField } from "../lib/components/TextField/TextField.playroom.mjs";
42
43
  import { Tiles } from "../lib/components/Tiles/Tiles.playroom.mjs";
43
44
  import { Toggle } from "../lib/components/Toggle/Toggle.playroom.mjs";
44
45
  import { Placeholder } from "../lib/components/private/Placeholder/Placeholder.mjs";
45
- import { BraidProvider, makeLinkComponent } from "../lib/components/BraidProvider/BraidProvider.mjs";
46
- import { BraidPortal } from "../lib/components/BraidPortal/BraidPortal.mjs";
47
46
  import { ThemeNameConsumer } from "../lib/components/ThemeNameConsumer/ThemeNameConsumer.mjs";
48
47
  import { useThemeName } from "../lib/components/useThemeName/useThemeName.mjs";
49
48
  import { useSpace } from "../lib/components/useSpace/useSpace.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "braid-design-system",
3
- "version": "33.12.2",
3
+ "version": "33.12.4",
4
4
  "description": "Themeable design system for the SEEK Group",
5
5
  "homepage": "https://seek-oss.github.io/braid-design-system/",
6
6
  "bugs": {
@@ -163,7 +163,8 @@
163
163
  "dependencies": {
164
164
  "@capsizecss/core": "^4.1.2",
165
165
  "@capsizecss/metrics": "^3.0.0",
166
- "@capsizecss/vanilla-extract": "^2.0.0",
166
+ "@capsizecss/vanilla-extract": "^2.0.4",
167
+ "@floating-ui/react-dom": "^2.1.6",
167
168
  "@vanilla-extract/css": "^1.9.2",
168
169
  "@vanilla-extract/css-utils": "^0.1.3",
169
170
  "@vanilla-extract/dynamic": "^2.1.2",
@@ -217,7 +218,7 @@
217
218
  "react-dom": "^19.1.0",
218
219
  "react-router": "^7.6.3",
219
220
  "sanitize-html": "^2.12.1",
220
- "sku": "15.3.0",
221
+ "sku": "15.4.0",
221
222
  "storybook": "9.0.15",
222
223
  "svgo": "^2.8.0",
223
224
  "title-case": "^3.0.3",