@frontify/fondue-components 26.0.3 → 27.0.1

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 (45) hide show
  1. package/dist/fondue-components104.js +1 -1
  2. package/dist/fondue-components105.js +1 -1
  3. package/dist/fondue-components106.js +1 -1
  4. package/dist/fondue-components107.js +1 -1
  5. package/dist/fondue-components108.js +1 -1
  6. package/dist/fondue-components23.js +1 -0
  7. package/dist/fondue-components23.js.map +1 -1
  8. package/dist/fondue-components32.js +62 -60
  9. package/dist/fondue-components32.js.map +1 -1
  10. package/dist/fondue-components4.js +56 -48
  11. package/dist/fondue-components4.js.map +1 -1
  12. package/dist/fondue-components40.js +2 -2
  13. package/dist/fondue-components41.js +4 -2
  14. package/dist/fondue-components41.js.map +1 -1
  15. package/dist/fondue-components47.js +1 -1
  16. package/dist/fondue-components53.js +14 -12
  17. package/dist/fondue-components53.js.map +1 -1
  18. package/dist/fondue-components71.js +2 -2
  19. package/dist/fondue-components72.js +2 -2
  20. package/dist/fondue-components73.js +2 -2
  21. package/dist/fondue-components74.js +2 -2
  22. package/dist/fondue-components75.js +1 -1
  23. package/dist/fondue-components76.js +1 -1
  24. package/dist/fondue-components85.js +10 -10
  25. package/dist/fondue-components9.js +95 -83
  26. package/dist/fondue-components9.js.map +1 -1
  27. package/dist/fondue-components92.js +4 -216
  28. package/dist/fondue-components92.js.map +1 -1
  29. package/dist/fondue-components93.js +4 -18
  30. package/dist/fondue-components93.js.map +1 -1
  31. package/dist/fondue-components94.js +16 -16
  32. package/dist/fondue-components94.js.map +1 -1
  33. package/dist/fondue-components95.js +188 -122
  34. package/dist/fondue-components95.js.map +1 -1
  35. package/dist/fondue-components96.js +18 -44
  36. package/dist/fondue-components96.js.map +1 -1
  37. package/dist/fondue-components97.js +16 -16
  38. package/dist/fondue-components97.js.map +1 -1
  39. package/dist/fondue-components98.js +150 -4
  40. package/dist/fondue-components98.js.map +1 -1
  41. package/dist/fondue-components99.js +44 -4
  42. package/dist/fondue-components99.js.map +1 -1
  43. package/dist/index.d.ts +15 -3
  44. package/dist/style.css +1 -1
  45. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { jsxs as d, jsx as r } from "react/jsx-runtime";
2
2
  import { IconCheckMark as n } from "@frontify/fondue-icons";
3
3
  import { forwardRef as l } from "react";
4
- import a from "./fondue-components96.js";
4
+ import a from "./fondue-components99.js";
5
5
  const o = ({ "data-test-id": c = "fondue-select-item", ...e }, t) => /* @__PURE__ */ d("li", { "data-test-id": c, ref: t, ...e, children: [
6
6
  /* @__PURE__ */ r("div", { className: a.itemValue, children: e.children }),
7
7
  /* @__PURE__ */ r(n, { className: a.checkmarkIcon })
@@ -1,6 +1,6 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
2
  import { forwardRef as d } from "react";
3
- import m from "./fondue-components96.js";
3
+ import m from "./fondue-components99.js";
4
4
  const t = ({ children: e, name: o, "data-test-id": r = "fondue-select-slot", ...a }, s) => /* @__PURE__ */ l("div", { "data-test-id": r, ref: s, className: m.slot, "data-name": o, ...a, children: e });
5
5
  t.displayName = "Select.Slot";
6
6
  const S = d(t);
@@ -1,18 +1,18 @@
1
- const t = "_root_1f9jh_5", r = "_triggerListWrapper_1f9jh_13", e = "_trigger_1f9jh_13", i = "_activeIndicator_1f9jh_61", o = "_triggerList_1f9jh_13", g = "_content_1f9jh_149", _ = {
1
+ const t = "_root_ujssn_5", r = "_triggerListWrapper_ujssn_17", s = "_trigger_ujssn_17", n = "_activeIndicator_ujssn_65", e = "_triggerList_ujssn_17", i = "_content_ujssn_159", o = {
2
2
  root: t,
3
3
  triggerListWrapper: r,
4
- trigger: e,
5
- activeIndicator: i,
6
- triggerList: o,
7
- content: g
4
+ trigger: s,
5
+ activeIndicator: n,
6
+ triggerList: e,
7
+ content: i
8
8
  };
9
9
  export {
10
- i as activeIndicator,
11
- g as content,
12
- _ as default,
10
+ n as activeIndicator,
11
+ i as content,
12
+ o as default,
13
13
  t as root,
14
- e as trigger,
15
- o as triggerList,
14
+ s as trigger,
15
+ e as triggerList,
16
16
  r as triggerListWrapper
17
17
  };
18
18
  //# sourceMappingURL=fondue-components85.js.map
@@ -1,21 +1,21 @@
1
- import { jsx as o, jsxs as L } from "react/jsx-runtime";
2
- import { IconCross as _ } from "@frontify/fondue-icons";
3
- import * as d from "@radix-ui/react-dialog";
4
- import { createContext as $, forwardRef as l, useRef as k, useContext as G, useMemo as I } from "react";
1
+ import { jsx as o, jsxs as E } from "react/jsx-runtime";
2
+ import { IconCross as L } from "@frontify/fondue-icons";
3
+ import * as r from "@radix-ui/react-dialog";
4
+ import { createContext as _, forwardRef as d, useRef as k, useContext as G, useMemo as I } from "react";
5
5
  import { useSyncRefs as J } from "./fondue-components51.js";
6
6
  import { useTranslation as K } from "./fondue-components39.js";
7
7
  import { addShowFocusRing as Q, addAutoFocusAttribute as U } from "./fondue-components52.js";
8
8
  import { useFondueTheme as V, ThemeProvider as W } from "./fondue-components36.js";
9
- import n from "./fondue-components53.js";
10
- const D = $({ isModal: !1 });
9
+ import s from "./fondue-components53.js";
10
+ const D = _({ isModal: !1 });
11
11
  D.displayName = "DialogContext";
12
- const x = ({ children: t, modal: e, onOpenChange: a, open: i }) => {
13
- const r = I(() => ({ isModal: e ?? !1 }), [e]);
14
- return /* @__PURE__ */ o(D.Provider, { value: r, children: /* @__PURE__ */ o(d.Root, { open: i, onOpenChange: a, modal: e, children: t }) });
12
+ const T = ({ children: t, modal: e, onOpenChange: a, open: i }) => {
13
+ const n = I(() => ({ isModal: e ?? !1 }), [e]);
14
+ return /* @__PURE__ */ o(D.Provider, { value: n, children: /* @__PURE__ */ o(r.Root, { open: i, onOpenChange: a, modal: e, children: t }) });
15
15
  };
16
- x.displayName = "Dialog.Root";
17
- const S = ({ asChild: t = !0, children: e, "data-test-id": a = "fondue-dialog-trigger" }, i) => /* @__PURE__ */ o(
18
- d.Trigger,
16
+ T.displayName = "Dialog.Root";
17
+ const R = ({ asChild: t = !0, children: e, "data-test-id": a = "fondue-dialog-trigger" }, i) => /* @__PURE__ */ o(
18
+ r.Trigger,
19
19
  {
20
20
  onMouseDown: U,
21
21
  "data-auto-focus-visible": "true",
@@ -26,94 +26,94 @@ const S = ({ asChild: t = !0, children: e, "data-test-id": a = "fondue-dialog-tr
26
26
  children: e
27
27
  }
28
28
  );
29
- S.displayName = "Dialog.Trigger";
29
+ R.displayName = "Dialog.Trigger";
30
30
  const X = ({ children: t, showUnderlay: e }) => {
31
31
  const { isModal: a } = G(D);
32
- return a ? /* @__PURE__ */ o(d.Overlay, { "data-visible": e, className: n.underlay, children: t }) : /* @__PURE__ */ o("div", { className: n.underlay, "data-visible": e, children: t });
33
- }, T = ({
32
+ return a ? /* @__PURE__ */ o(r.Overlay, { "data-visible": e, className: s.underlay, children: t }) : /* @__PURE__ */ o("div", { className: s.underlay, "data-visible": e, children: t });
33
+ }, S = ({
34
34
  maxWidth: t = "800px",
35
35
  minWidth: e = "400px",
36
36
  minHeight: a = "200px",
37
37
  padding: i = "compact",
38
- verticalAlign: r = "center",
39
- "data-test-id": c = "fondue-dialog-content",
40
- showUnderlay: u = !1,
41
- rounded: g = !0,
42
- onEscapeKeyDown: O,
43
- children: P
44
- }, j) => {
45
- const { theme: B, dir: h } = V(), s = k(null);
46
- J(s, j);
47
- const z = (E) => {
48
- var b, N, v;
49
- E.preventDefault();
50
- const m = 'button:not([data-tooltip-trigger="true"]), [href], input, select, textarea, [tabindex]:not([tabindex="-1"])', p = (b = s.current) == null ? void 0 : b.querySelector('[data-dialog-layout-component="body"]'), f = (N = s.current) == null ? void 0 : N.querySelector('[data-dialog-layout-component="footer"]'), y = (v = s.current) == null ? void 0 : v.querySelector('[data-dialog-layout-component="header"]'), C = (p == null ? void 0 : p.querySelector(m)) || (f == null ? void 0 : f.querySelector(m)) || (y == null ? void 0 : y.querySelector(m));
51
- C instanceof HTMLElement && C.focus();
38
+ verticalAlign: n = "center",
39
+ "data-test-id": u = "fondue-dialog-content",
40
+ showUnderlay: c = !1,
41
+ rounded: p = !0,
42
+ onEscapeKeyDown: j,
43
+ children: A
44
+ }, H) => {
45
+ const { theme: P, dir: N } = V(), l = k(null);
46
+ J(l, H);
47
+ const B = (z) => {
48
+ var C, v, x;
49
+ z.preventDefault();
50
+ const g = 'button:not([data-tooltip-trigger="true"]), [href], input, select, textarea, [tabindex]:not([tabindex="-1"])', m = (C = l.current) == null ? void 0 : C.querySelector('[data-dialog-layout-component="body"]'), f = (v = l.current) == null ? void 0 : v.querySelector('[data-dialog-layout-component="footer"]'), y = (x = l.current) == null ? void 0 : x.querySelector('[data-dialog-layout-component="header"]'), b = (m == null ? void 0 : m.querySelector(g)) || (f == null ? void 0 : f.querySelector(g)) || (y == null ? void 0 : y.querySelector(g));
51
+ b instanceof HTMLElement && b.focus();
52
52
  };
53
- return /* @__PURE__ */ o(d.Portal, { children: /* @__PURE__ */ o(W, { theme: B, dir: h, children: /* @__PURE__ */ o(X, { showUnderlay: u, children: /* @__PURE__ */ o(
54
- d.Content,
53
+ return /* @__PURE__ */ o(r.Portal, { children: /* @__PURE__ */ o(W, { theme: P, dir: N, children: /* @__PURE__ */ o(X, { showUnderlay: c, children: /* @__PURE__ */ o(
54
+ r.Content,
55
55
  {
56
56
  style: {
57
57
  "--dialog-max-width": t,
58
58
  "--dialog-min-width": e,
59
59
  "--dialog-min-height": a
60
60
  },
61
- ref: s,
62
- className: n.content,
61
+ ref: l,
62
+ className: s.content,
63
63
  onFocus: Q,
64
- onOpenAutoFocus: z,
65
- onEscapeKeyDown: O,
64
+ onOpenAutoFocus: B,
65
+ onEscapeKeyDown: j,
66
66
  "data-dialog-padding": i,
67
- "data-dialog-rounded": g,
68
- "data-test-id": c,
69
- "data-dialog-vertical-align": r,
70
- dir: h,
71
- children: P
67
+ "data-dialog-rounded": p,
68
+ "data-test-id": u,
69
+ "data-dialog-vertical-align": n,
70
+ dir: N,
71
+ children: A
72
72
  }
73
73
  ) }) }) });
74
74
  };
75
- T.displayName = "Dialog.Content";
76
- const R = ({
75
+ S.displayName = "Dialog.Content";
76
+ const h = ({
77
77
  padding: t,
78
78
  showBorder: e = !0,
79
79
  showCloseButton: a = !0,
80
80
  closeProps: i,
81
- children: r,
82
- "data-test-id": c = "fondue-dialog-header"
83
- }, u) => {
84
- const { t: g } = K();
85
- return /* @__PURE__ */ L(
81
+ children: n,
82
+ "data-test-id": u = "fondue-dialog-header"
83
+ }, c) => {
84
+ const { t: p } = K();
85
+ return /* @__PURE__ */ E(
86
86
  "div",
87
87
  {
88
- "data-test-id": c,
89
- ref: u,
90
- className: n.header,
88
+ "data-test-id": u,
89
+ ref: c,
90
+ className: s.header,
91
91
  "data-dialog-header-padding": t,
92
92
  "data-show-border": e,
93
93
  "data-dialog-layout-component": "header",
94
94
  children: [
95
- /* @__PURE__ */ o("div", { children: r }),
95
+ /* @__PURE__ */ o("div", { children: n }),
96
96
  a && /* @__PURE__ */ o(
97
- d.Close,
97
+ r.Close,
98
98
  {
99
99
  role: "button",
100
- "data-test-id": `${c}-close`,
101
- "aria-label": g("Dialog_close"),
100
+ "data-test-id": `${u}-close`,
101
+ "aria-label": p("Dialog_close"),
102
102
  ...i,
103
- children: /* @__PURE__ */ o(_, { size: 20 })
103
+ children: /* @__PURE__ */ o(L, { size: 20 })
104
104
  }
105
105
  )
106
106
  ]
107
107
  }
108
108
  );
109
109
  };
110
- R.displayName = "Dialog.Header";
111
- const F = ({ padding: t, showBorder: e = !0, children: a, "data-test-id": i = "fondue-dialog-footer" }, r) => /* @__PURE__ */ o(
110
+ h.displayName = "Dialog.Header";
111
+ const F = ({ padding: t, showBorder: e = !0, children: a, "data-test-id": i = "fondue-dialog-footer" }, n) => /* @__PURE__ */ o(
112
112
  "div",
113
113
  {
114
114
  "data-test-id": i,
115
- ref: r,
116
- className: n.footer,
115
+ ref: n,
116
+ className: s.footer,
117
117
  "data-dialog-footer-padding": t,
118
118
  "data-show-border": e,
119
119
  "data-dialog-layout-component": "footer",
@@ -126,44 +126,56 @@ const q = ({ padding: t, children: e, "data-test-id": a = "fondue-dialog-body" }
126
126
  {
127
127
  "data-test-id": a,
128
128
  ref: i,
129
- className: n.body,
129
+ className: s.body,
130
130
  "data-dialog-body-padding": t,
131
131
  "data-dialog-layout-component": "body",
132
132
  children: e
133
133
  }
134
134
  );
135
135
  q.displayName = "Dialog.Body";
136
- const w = ({ children: t, "data-test-id": e = "fondue-dialog-side-content" }, a) => /* @__PURE__ */ o("div", { "data-test-id": e, ref: a, className: n.sideContent, "data-dialog-layout-component": !0, children: t });
136
+ const w = ({ children: t, "data-test-id": e = "fondue-dialog-side-content" }, a) => /* @__PURE__ */ o("div", { "data-test-id": e, ref: a, className: s.sideContent, "data-dialog-layout-component": !0, children: t });
137
137
  w.displayName = "Dialog.SideContent";
138
- const M = ({ children: t }) => /* @__PURE__ */ o(d.Close, { asChild: !0, children: t });
138
+ const M = ({ children: t }) => /* @__PURE__ */ o(r.Close, { asChild: !0, children: t });
139
139
  M.displayName = "Dialog.Close";
140
- const A = ({ children: t, asChild: e }) => /* @__PURE__ */ o(d.Title, { asChild: e, children: t });
141
- A.displayName = "Dialog.Title";
142
- const H = ({ children: t, asChild: e }) => /* @__PURE__ */ o(d.Description, { asChild: e, children: t });
143
- H.displayName = "Dialog.Description";
144
- const rt = {
145
- Root: x,
146
- Title: A,
147
- Description: H,
140
+ const O = ({ children: t, asChild: e, screenReaderOnly: a = !1 }) => a && !e ? /* @__PURE__ */ o(r.Title, { asChild: !0, children: /* @__PURE__ */ o("span", { className: s.screenReaderOnly, children: t }) }) : a && e ? /* @__PURE__ */ o(r.Title, { asChild: !0, children: typeof t == "object" && t && "props" in t ? {
141
+ ...t,
142
+ props: {
143
+ ...t.props,
144
+ className: `${t.props.className || ""} ${s.screenReaderOnly}`.trim()
145
+ }
146
+ } : t }) : /* @__PURE__ */ o(r.Title, { asChild: e, children: t });
147
+ O.displayName = "Dialog.Title";
148
+ const $ = ({ children: t, asChild: e, screenReaderOnly: a = !1 }) => a && !e ? /* @__PURE__ */ o(r.Description, { asChild: !0, children: /* @__PURE__ */ o("span", { className: s.screenReaderOnly, children: t }) }) : a && e ? /* @__PURE__ */ o(r.Description, { asChild: !0, children: typeof t == "object" && t && "props" in t ? {
149
+ ...t,
150
+ props: {
151
+ ...t.props,
152
+ className: `${t.props.className || ""} ${s.screenReaderOnly}`.trim()
153
+ }
154
+ } : t }) : /* @__PURE__ */ o(r.Description, { asChild: e, children: t });
155
+ $.displayName = "Dialog.Description";
156
+ const st = {
157
+ Root: T,
158
+ Title: O,
159
+ Description: $,
148
160
  Close: M,
149
- Trigger: l(S),
150
- Content: l(T),
151
- Header: l(R),
152
- Footer: l(F),
153
- Body: l(q),
154
- SideContent: l(w)
161
+ Trigger: d(R),
162
+ Content: d(S),
163
+ Header: d(h),
164
+ Footer: d(F),
165
+ Body: d(q),
166
+ SideContent: d(w)
155
167
  };
156
168
  export {
157
- rt as Dialog,
169
+ st as Dialog,
158
170
  q as DialogBody,
159
171
  M as DialogClose,
160
- T as DialogContent,
161
- H as DialogDescription,
172
+ S as DialogContent,
173
+ $ as DialogDescription,
162
174
  F as DialogFooter,
163
- R as DialogHeader,
164
- x as DialogRoot,
175
+ h as DialogHeader,
176
+ T as DialogRoot,
165
177
  w as DialogSideContent,
166
- A as DialogTitle,
167
- S as DialogTrigger
178
+ O as DialogTitle,
179
+ R as DialogTrigger
168
180
  };
169
181
  //# sourceMappingURL=fondue-components9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components9.js","sources":["../src/components/Dialog/Dialog.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCross } from '@frontify/fondue-icons';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n useRef,\n type CSSProperties,\n type ForwardedRef,\n type ReactNode,\n} from 'react';\n\nimport { type CommonAriaProps } from '#/helpers/aria';\nimport { useSyncRefs } from '#/hooks/useSyncRefs';\nimport { useTranslation } from '#/hooks/useTranslation';\nimport { addAutoFocusAttribute, addShowFocusRing } from '#/utilities/domUtilities';\n\nimport { ThemeProvider, useFondueTheme } from '../ThemeProvider/ThemeProvider';\n\nimport styles from './styles/dialog.module.scss';\n\nexport type DialogRootProps = {\n /**\n * Disable interaction with the rest of the page\n * @default false\n */\n modal?: boolean;\n /**\n * The controlled `open` state of the dialog\n * @default false\n */\n open?: boolean;\n /**\n * Event handler called when the `open` state changes\n */\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n};\n\nexport type DialogContentProps = {\n /**\n * Add rounded corners to the dialog\n * @default true\n */\n rounded?: boolean;\n /**\n * Define the padding of the dialog\n * @default \"compact\"\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n /**\n * The vertical alignment of the divider\n * @default \"center\"\n */\n verticalAlign?: 'top' | 'center';\n\n /**\n * Define a maximum width for the dialog\n * @default \"800px\"\n */\n maxWidth?: string;\n /**\n * Define a minimum width for the dialog\n * @default \"400px\"\n */\n minWidth?: string;\n /**\n * Define a minimum height for the dialog\n * @default \"200px\"\n */\n minHeight?: string;\n /**\n * Show a dark underlay behind the dialog\n * @default false\n */\n showUnderlay?: boolean;\n /**\n * Event handler called when the escape key is pressed.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogTriggerProps = {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default true\n */\n asChild?: boolean;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogHeaderProps = {\n /**\n * Define the padding for the dialog header\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n /**\n * Show a border at the bottom of the header\n * @default true\n */\n showBorder?: boolean;\n /**\n * Show a close button in the header\n * @default true\n */\n showCloseButton?: boolean;\n closeProps?: CommonAriaProps;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogFooterProps = {\n /**\n * Define the padding for the dialog footer\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n /**\n * Show a border at the top of the footer\n * @default true\n */\n showBorder?: boolean;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogBodyProps = {\n /**\n * Define the padding for the dialog body\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogSideContentProps = { children?: ReactNode; 'data-test-id'?: string };\n\nexport type DialogCloseProps = { children?: ReactNode };\n\nexport type DialogAnnouncementProps = { children?: ReactNode; asChild?: boolean };\n\ntype DialogContextType = {\n isModal: boolean;\n};\n\nconst DialogContext = createContext<DialogContextType>({ isModal: false });\nDialogContext.displayName = 'DialogContext';\n\nexport const DialogRoot = ({ children, modal, onOpenChange, open }: DialogRootProps) => {\n const value = useMemo(() => ({ isModal: modal ?? false }), [modal]);\n\n return (\n <DialogContext.Provider value={value}>\n <RadixDialog.Root open={open} onOpenChange={onOpenChange} modal={modal}>\n {children}\n </RadixDialog.Root>\n </DialogContext.Provider>\n );\n};\nDialogRoot.displayName = 'Dialog.Root';\n\nexport const DialogTrigger = (\n { asChild = true, children, 'data-test-id': dataTestId = 'fondue-dialog-trigger' }: DialogTriggerProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) => {\n return (\n <RadixDialog.Trigger\n onMouseDown={addAutoFocusAttribute}\n data-auto-focus-visible=\"true\"\n data-auto-focus-trigger\n data-test-id={dataTestId}\n asChild={asChild}\n ref={ref}\n >\n {children}\n </RadixDialog.Trigger>\n );\n};\nDialogTrigger.displayName = 'Dialog.Trigger';\n\nconst DialogUnderlay = ({ children, showUnderlay }: { children: ReactNode; showUnderlay: boolean }) => {\n const { isModal } = useContext(DialogContext);\n if (isModal) {\n return (\n <RadixDialog.Overlay data-visible={showUnderlay} className={styles.underlay}>\n {children}\n </RadixDialog.Overlay>\n );\n }\n return (\n <div className={styles.underlay} data-visible={showUnderlay}>\n {children}\n </div>\n );\n};\n\nexport const DialogContent = (\n {\n maxWidth = '800px',\n minWidth = '400px',\n minHeight = '200px',\n padding = 'compact',\n verticalAlign = 'center',\n 'data-test-id': dataTestId = 'fondue-dialog-content',\n showUnderlay = false,\n rounded = true,\n onEscapeKeyDown,\n children,\n }: DialogContentProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const { theme, dir } = useFondueTheme();\n const contentRef = useRef<HTMLDivElement>(null);\n\n useSyncRefs<HTMLDivElement>(contentRef, ref);\n\n const handleOpenAutoFocus = (event: Event) => {\n event.preventDefault();\n\n const focusableSelector =\n 'button:not([data-tooltip-trigger=\"true\"]), [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n // Try to find focusable element in order: body -> footer -> header\n const dialogBody = contentRef.current?.querySelector('[data-dialog-layout-component=\"body\"]');\n const dialogFooter = contentRef.current?.querySelector('[data-dialog-layout-component=\"footer\"]');\n const dialogHeader = contentRef.current?.querySelector('[data-dialog-layout-component=\"header\"]');\n\n const firstFocusable =\n dialogBody?.querySelector(focusableSelector) ||\n dialogFooter?.querySelector(focusableSelector) ||\n dialogHeader?.querySelector(focusableSelector);\n\n if (firstFocusable instanceof HTMLElement) {\n firstFocusable.focus();\n }\n };\n\n return (\n <RadixDialog.Portal>\n <ThemeProvider theme={theme} dir={dir}>\n <DialogUnderlay showUnderlay={showUnderlay}>\n <RadixDialog.Content\n style={\n {\n '--dialog-max-width': maxWidth,\n '--dialog-min-width': minWidth,\n '--dialog-min-height': minHeight,\n } as CSSProperties\n }\n ref={contentRef}\n className={styles.content}\n onFocus={addShowFocusRing}\n onOpenAutoFocus={handleOpenAutoFocus}\n onEscapeKeyDown={onEscapeKeyDown}\n data-dialog-padding={padding}\n data-dialog-rounded={rounded}\n data-test-id={dataTestId}\n data-dialog-vertical-align={verticalAlign}\n dir={dir}\n >\n {children}\n </RadixDialog.Content>\n </DialogUnderlay>\n </ThemeProvider>\n </RadixDialog.Portal>\n );\n};\nDialogContent.displayName = 'Dialog.Content';\n\nexport const DialogHeader = (\n {\n padding,\n showBorder = true,\n showCloseButton = true,\n closeProps,\n children,\n 'data-test-id': dataTestId = 'fondue-dialog-header',\n }: DialogHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const { t } = useTranslation();\n\n return (\n <div\n data-test-id={dataTestId}\n ref={ref}\n className={styles.header}\n data-dialog-header-padding={padding}\n data-show-border={showBorder}\n data-dialog-layout-component=\"header\"\n >\n <div>{children}</div>\n {showCloseButton && (\n <RadixDialog.Close\n role=\"button\"\n data-test-id={`${dataTestId}-close`}\n aria-label={t('Dialog_close')}\n {...closeProps}\n >\n <IconCross size={20} />\n </RadixDialog.Close>\n )}\n </div>\n );\n};\nDialogHeader.displayName = 'Dialog.Header';\n\nexport const DialogFooter = (\n { padding, showBorder = true, children, 'data-test-id': dataTestId = 'fondue-dialog-footer' }: DialogFooterProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div\n data-test-id={dataTestId}\n ref={ref}\n className={styles.footer}\n data-dialog-footer-padding={padding}\n data-show-border={showBorder}\n data-dialog-layout-component=\"footer\"\n >\n {children}\n </div>\n );\n};\nDialogFooter.displayName = 'Dialog.Footer';\n\nexport const DialogBody = (\n { padding, children, 'data-test-id': dataTestId = 'fondue-dialog-body' }: DialogBodyProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div\n data-test-id={dataTestId}\n ref={ref}\n className={styles.body}\n data-dialog-body-padding={padding}\n data-dialog-layout-component=\"body\"\n >\n {children}\n </div>\n );\n};\nDialogBody.displayName = 'Dialog.Body';\n\nexport const DialogSideContent = (\n { children, 'data-test-id': dataTestId = 'fondue-dialog-side-content' }: DialogSideContentProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div data-test-id={dataTestId} ref={ref} className={styles.sideContent} data-dialog-layout-component>\n {children}\n </div>\n );\n};\nDialogSideContent.displayName = 'Dialog.SideContent';\n\nexport const DialogClose = ({ children }: DialogCloseProps) => {\n return <RadixDialog.Close asChild>{children}</RadixDialog.Close>;\n};\nDialogClose.displayName = 'Dialog.Close';\n\nexport const DialogTitle = ({ children, asChild }: DialogAnnouncementProps) => {\n return <RadixDialog.Title asChild={asChild}>{children}</RadixDialog.Title>;\n};\nDialogTitle.displayName = 'Dialog.Title';\n\nexport const DialogDescription = ({ children, asChild }: DialogAnnouncementProps) => {\n return <RadixDialog.Description asChild={asChild}>{children}</RadixDialog.Description>;\n};\nDialogDescription.displayName = 'Dialog.Description';\n\nexport const Dialog = {\n Root: DialogRoot,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n Trigger: forwardRef<HTMLButtonElement, DialogTriggerProps>(DialogTrigger),\n Content: forwardRef<HTMLDivElement, DialogContentProps>(DialogContent),\n Header: forwardRef<HTMLDivElement, DialogHeaderProps>(DialogHeader),\n Footer: forwardRef<HTMLDivElement, DialogFooterProps>(DialogFooter),\n Body: forwardRef<HTMLDivElement, DialogBodyProps>(DialogBody),\n SideContent: forwardRef<HTMLDivElement, DialogSideContentProps>(DialogSideContent),\n};\n"],"names":["DialogContext","createContext","DialogRoot","children","modal","onOpenChange","open","value","useMemo","jsx","RadixDialog","DialogTrigger","asChild","dataTestId","ref","addAutoFocusAttribute","DialogUnderlay","showUnderlay","isModal","useContext","styles","DialogContent","maxWidth","minWidth","minHeight","padding","verticalAlign","rounded","onEscapeKeyDown","theme","dir","useFondueTheme","contentRef","useRef","useSyncRefs","handleOpenAutoFocus","event","focusableSelector","dialogBody","_a","dialogFooter","_b","dialogHeader","_c","firstFocusable","ThemeProvider","addShowFocusRing","DialogHeader","showBorder","showCloseButton","closeProps","t","useTranslation","jsxs","IconCross","DialogFooter","DialogBody","DialogSideContent","DialogClose","DialogTitle","DialogDescription","Dialog","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"fondue-components9.js","sources":["../src/components/Dialog/Dialog.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCross } from '@frontify/fondue-icons';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n useRef,\n type CSSProperties,\n type ForwardedRef,\n type ReactNode,\n} from 'react';\n\nimport { type CommonAriaProps } from '#/helpers/aria';\nimport { useSyncRefs } from '#/hooks/useSyncRefs';\nimport { useTranslation } from '#/hooks/useTranslation';\nimport { addAutoFocusAttribute, addShowFocusRing } from '#/utilities/domUtilities';\n\nimport { ThemeProvider, useFondueTheme } from '../ThemeProvider/ThemeProvider';\n\nimport styles from './styles/dialog.module.scss';\n\nexport type DialogRootProps = {\n /**\n * Disable interaction with the rest of the page\n * @default false\n */\n modal?: boolean;\n /**\n * The controlled `open` state of the dialog\n * @default false\n */\n open?: boolean;\n /**\n * Event handler called when the `open` state changes\n */\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n};\n\nexport type DialogContentProps = {\n /**\n * Add rounded corners to the dialog\n * @default true\n */\n rounded?: boolean;\n /**\n * Define the padding of the dialog\n * @default \"compact\"\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n /**\n * The vertical alignment of the divider\n * @default \"center\"\n */\n verticalAlign?: 'top' | 'center';\n\n /**\n * Define a maximum width for the dialog\n * @default \"800px\"\n */\n maxWidth?: string;\n /**\n * Define a minimum width for the dialog\n * @default \"400px\"\n */\n minWidth?: string;\n /**\n * Define a minimum height for the dialog\n * @default \"200px\"\n */\n minHeight?: string;\n /**\n * Show a dark underlay behind the dialog\n * @default false\n */\n showUnderlay?: boolean;\n /**\n * Event handler called when the escape key is pressed.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogTriggerProps = {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n * @default true\n */\n asChild?: boolean;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogHeaderProps = {\n /**\n * Define the padding for the dialog header\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n /**\n * Show a border at the bottom of the header\n * @default true\n */\n showBorder?: boolean;\n /**\n * Show a close button in the header\n * @default true\n */\n showCloseButton?: boolean;\n closeProps?: CommonAriaProps;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogFooterProps = {\n /**\n * Define the padding for the dialog footer\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n /**\n * Show a border at the top of the footer\n * @default true\n */\n showBorder?: boolean;\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogBodyProps = {\n /**\n * Define the padding for the dialog body\n */\n padding?: 'none' | 'tight' | 'compact' | 'comfortable' | 'spacious';\n children?: ReactNode;\n 'data-test-id'?: string;\n};\n\nexport type DialogSideContentProps = { children?: ReactNode; 'data-test-id'?: string };\n\nexport type DialogCloseProps = { children?: ReactNode };\n\nexport type DialogAnnouncementProps = {\n children?: ReactNode;\n asChild?: boolean;\n /**\n * Visually hide the element while keeping it accessible to screen readers\n * @default false\n */\n screenReaderOnly?: boolean;\n};\n\ntype DialogContextType = {\n isModal: boolean;\n};\n\nconst DialogContext = createContext<DialogContextType>({ isModal: false });\nDialogContext.displayName = 'DialogContext';\n\nexport const DialogRoot = ({ children, modal, onOpenChange, open }: DialogRootProps) => {\n const value = useMemo(() => ({ isModal: modal ?? false }), [modal]);\n\n return (\n <DialogContext.Provider value={value}>\n <RadixDialog.Root open={open} onOpenChange={onOpenChange} modal={modal}>\n {children}\n </RadixDialog.Root>\n </DialogContext.Provider>\n );\n};\nDialogRoot.displayName = 'Dialog.Root';\n\nexport const DialogTrigger = (\n { asChild = true, children, 'data-test-id': dataTestId = 'fondue-dialog-trigger' }: DialogTriggerProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) => {\n return (\n <RadixDialog.Trigger\n onMouseDown={addAutoFocusAttribute}\n data-auto-focus-visible=\"true\"\n data-auto-focus-trigger\n data-test-id={dataTestId}\n asChild={asChild}\n ref={ref}\n >\n {children}\n </RadixDialog.Trigger>\n );\n};\nDialogTrigger.displayName = 'Dialog.Trigger';\n\nconst DialogUnderlay = ({ children, showUnderlay }: { children: ReactNode; showUnderlay: boolean }) => {\n const { isModal } = useContext(DialogContext);\n if (isModal) {\n return (\n <RadixDialog.Overlay data-visible={showUnderlay} className={styles.underlay}>\n {children}\n </RadixDialog.Overlay>\n );\n }\n return (\n <div className={styles.underlay} data-visible={showUnderlay}>\n {children}\n </div>\n );\n};\n\nexport const DialogContent = (\n {\n maxWidth = '800px',\n minWidth = '400px',\n minHeight = '200px',\n padding = 'compact',\n verticalAlign = 'center',\n 'data-test-id': dataTestId = 'fondue-dialog-content',\n showUnderlay = false,\n rounded = true,\n onEscapeKeyDown,\n children,\n }: DialogContentProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const { theme, dir } = useFondueTheme();\n const contentRef = useRef<HTMLDivElement>(null);\n\n useSyncRefs<HTMLDivElement>(contentRef, ref);\n\n const handleOpenAutoFocus = (event: Event) => {\n event.preventDefault();\n\n const focusableSelector =\n 'button:not([data-tooltip-trigger=\"true\"]), [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n\n // Try to find focusable element in order: body -> footer -> header\n const dialogBody = contentRef.current?.querySelector('[data-dialog-layout-component=\"body\"]');\n const dialogFooter = contentRef.current?.querySelector('[data-dialog-layout-component=\"footer\"]');\n const dialogHeader = contentRef.current?.querySelector('[data-dialog-layout-component=\"header\"]');\n\n const firstFocusable =\n dialogBody?.querySelector(focusableSelector) ||\n dialogFooter?.querySelector(focusableSelector) ||\n dialogHeader?.querySelector(focusableSelector);\n\n if (firstFocusable instanceof HTMLElement) {\n firstFocusable.focus();\n }\n };\n\n return (\n <RadixDialog.Portal>\n <ThemeProvider theme={theme} dir={dir}>\n <DialogUnderlay showUnderlay={showUnderlay}>\n <RadixDialog.Content\n style={\n {\n '--dialog-max-width': maxWidth,\n '--dialog-min-width': minWidth,\n '--dialog-min-height': minHeight,\n } as CSSProperties\n }\n ref={contentRef}\n className={styles.content}\n onFocus={addShowFocusRing}\n onOpenAutoFocus={handleOpenAutoFocus}\n onEscapeKeyDown={onEscapeKeyDown}\n data-dialog-padding={padding}\n data-dialog-rounded={rounded}\n data-test-id={dataTestId}\n data-dialog-vertical-align={verticalAlign}\n dir={dir}\n >\n {children}\n </RadixDialog.Content>\n </DialogUnderlay>\n </ThemeProvider>\n </RadixDialog.Portal>\n );\n};\nDialogContent.displayName = 'Dialog.Content';\n\nexport const DialogHeader = (\n {\n padding,\n showBorder = true,\n showCloseButton = true,\n closeProps,\n children,\n 'data-test-id': dataTestId = 'fondue-dialog-header',\n }: DialogHeaderProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n const { t } = useTranslation();\n\n return (\n <div\n data-test-id={dataTestId}\n ref={ref}\n className={styles.header}\n data-dialog-header-padding={padding}\n data-show-border={showBorder}\n data-dialog-layout-component=\"header\"\n >\n <div>{children}</div>\n {showCloseButton && (\n <RadixDialog.Close\n role=\"button\"\n data-test-id={`${dataTestId}-close`}\n aria-label={t('Dialog_close')}\n {...closeProps}\n >\n <IconCross size={20} />\n </RadixDialog.Close>\n )}\n </div>\n );\n};\nDialogHeader.displayName = 'Dialog.Header';\n\nexport const DialogFooter = (\n { padding, showBorder = true, children, 'data-test-id': dataTestId = 'fondue-dialog-footer' }: DialogFooterProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div\n data-test-id={dataTestId}\n ref={ref}\n className={styles.footer}\n data-dialog-footer-padding={padding}\n data-show-border={showBorder}\n data-dialog-layout-component=\"footer\"\n >\n {children}\n </div>\n );\n};\nDialogFooter.displayName = 'Dialog.Footer';\n\nexport const DialogBody = (\n { padding, children, 'data-test-id': dataTestId = 'fondue-dialog-body' }: DialogBodyProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div\n data-test-id={dataTestId}\n ref={ref}\n className={styles.body}\n data-dialog-body-padding={padding}\n data-dialog-layout-component=\"body\"\n >\n {children}\n </div>\n );\n};\nDialogBody.displayName = 'Dialog.Body';\n\nexport const DialogSideContent = (\n { children, 'data-test-id': dataTestId = 'fondue-dialog-side-content' }: DialogSideContentProps,\n ref: ForwardedRef<HTMLDivElement>,\n) => {\n return (\n <div data-test-id={dataTestId} ref={ref} className={styles.sideContent} data-dialog-layout-component>\n {children}\n </div>\n );\n};\nDialogSideContent.displayName = 'Dialog.SideContent';\n\nexport const DialogClose = ({ children }: DialogCloseProps) => {\n return <RadixDialog.Close asChild>{children}</RadixDialog.Close>;\n};\nDialogClose.displayName = 'Dialog.Close';\n\nexport const DialogTitle = ({ children, asChild, screenReaderOnly = false }: DialogAnnouncementProps) => {\n if (screenReaderOnly && !asChild) {\n return (\n <RadixDialog.Title asChild>\n <span className={styles.screenReaderOnly}>{children}</span>\n </RadixDialog.Title>\n );\n }\n\n if (screenReaderOnly && asChild) {\n // When using asChild with screenReaderOnly, apply className to the child\n return (\n <RadixDialog.Title asChild>\n {typeof children === 'object' && children && 'props' in children\n ? {\n ...children,\n props: {\n ...children.props,\n className: `${children.props.className || ''} ${styles.screenReaderOnly}`.trim(),\n },\n }\n : children}\n </RadixDialog.Title>\n );\n }\n\n return <RadixDialog.Title asChild={asChild}>{children}</RadixDialog.Title>;\n};\nDialogTitle.displayName = 'Dialog.Title';\n\nexport const DialogDescription = ({ children, asChild, screenReaderOnly = false }: DialogAnnouncementProps) => {\n if (screenReaderOnly && !asChild) {\n return (\n <RadixDialog.Description asChild>\n <span className={styles.screenReaderOnly}>{children}</span>\n </RadixDialog.Description>\n );\n }\n\n if (screenReaderOnly && asChild) {\n // When using asChild with screenReaderOnly, apply className to the child\n return (\n <RadixDialog.Description asChild>\n {typeof children === 'object' && children && 'props' in children\n ? {\n ...children,\n props: {\n ...children.props,\n className: `${children.props.className || ''} ${styles.screenReaderOnly}`.trim(),\n },\n }\n : children}\n </RadixDialog.Description>\n );\n }\n\n return <RadixDialog.Description asChild={asChild}>{children}</RadixDialog.Description>;\n};\nDialogDescription.displayName = 'Dialog.Description';\n\nexport const Dialog = {\n Root: DialogRoot,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n Trigger: forwardRef<HTMLButtonElement, DialogTriggerProps>(DialogTrigger),\n Content: forwardRef<HTMLDivElement, DialogContentProps>(DialogContent),\n Header: forwardRef<HTMLDivElement, DialogHeaderProps>(DialogHeader),\n Footer: forwardRef<HTMLDivElement, DialogFooterProps>(DialogFooter),\n Body: forwardRef<HTMLDivElement, DialogBodyProps>(DialogBody),\n SideContent: forwardRef<HTMLDivElement, DialogSideContentProps>(DialogSideContent),\n};\n"],"names":["DialogContext","createContext","DialogRoot","children","modal","onOpenChange","open","value","useMemo","jsx","RadixDialog","DialogTrigger","asChild","dataTestId","ref","addAutoFocusAttribute","DialogUnderlay","showUnderlay","isModal","useContext","styles","DialogContent","maxWidth","minWidth","minHeight","padding","verticalAlign","rounded","onEscapeKeyDown","theme","dir","useFondueTheme","contentRef","useRef","useSyncRefs","handleOpenAutoFocus","event","focusableSelector","dialogBody","_a","dialogFooter","_b","dialogHeader","_c","firstFocusable","ThemeProvider","addShowFocusRing","DialogHeader","showBorder","showCloseButton","closeProps","t","useTranslation","jsxs","IconCross","DialogFooter","DialogBody","DialogSideContent","DialogClose","DialogTitle","screenReaderOnly","DialogDescription","Dialog","forwardRef"],"mappings":"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"}
@@ -1,220 +1,8 @@
1
- import { jsxs as g, jsx as n, Fragment as ue } from "react/jsx-runtime";
2
- import { IconCaretDown as me } from "@frontify/fondue-icons";
3
- import * as H from "@radix-ui/react-popover";
4
- import { useMultipleSelection as K, useCombobox as s } from "downshift";
5
- import { forwardRef as be, useRef as he, useCallback as fe, useState as ge, useMemo as j } from "react";
6
- import { LoadingCircle as pe } from "./fondue-components19.js";
7
- import { useTranslation as Ce } from "./fondue-components39.js";
8
- import { useBadgeItems as ye } from "./fondue-components100.js";
9
- import { useFocusRing as Ie } from "./fondue-components101.js";
10
- import { useSelectData as ve } from "./fondue-components102.js";
11
- import { useSelectionDescription as Be } from "./fondue-components103.js";
12
- import c from "./fondue-components96.js";
13
- import { ClearButton as xe } from "./fondue-components104.js";
14
- import { CollapsibleBadges as Se } from "./fondue-components105.js";
15
- import { SelectMenu as we } from "./fondue-components106.js";
16
- import { ForwardedRefSelectSlot as De } from "./fondue-components76.js";
17
- import { StatusIcons as Re } from "./fondue-components107.js";
18
- const z = ({
19
- children: E,
20
- selectedItemValues: i,
21
- onItemSelect: m,
22
- onClear: $,
23
- placeholder: x = "",
24
- status: p = "neutral",
25
- disabled: b,
26
- "data-test-id": d = "fondue-select-combobox",
27
- alignMenu: _ = "start",
28
- side: q = "bottom",
29
- id: G,
30
- viewportCollisionPadding: J = "compact",
31
- getAsyncItems: C,
32
- onEscapeKeyDown: Q,
33
- multiple: o,
34
- ...a
35
- }, U) => {
36
- const h = he(null), W = fe((e) => {
37
- h.current = e;
38
- }, []), { t: X } = Ce(), { inputSlots: Y, menuSlots: Z, items: y, filterText: A, clearButton: S, getItemByValue: r, setFilterText: I, asyncItemStatus: w } = ve(E, C), { wasClickedRef: V, onMouseDown: D, onFocus: R, onBlur: ee } = Ie(), { selectionDescriptionId: L, selectionDescription: O } = Be(
39
- o,
40
- i,
41
- r
42
- ), te = ye(i, r), [ae, k] = ge(!1), M = j(() => i.map((e) => r(e)).filter((e) => e !== void 0 && "value" in e && "label" in e), [i, r]), ne = K(
43
- o ? {
44
- selectedItems: M,
45
- onStateChange({ selectedItems: e, type: l }) {
46
- if (l === K.stateChangeTypes.SelectedItemKeyDownBackspace) {
47
- const t = M.find((u) => !(e != null && e.includes(u)));
48
- t && m(t.value);
49
- }
50
- }
51
- } : { selectedItems: [] }
52
- ), oe = o ? ne.removeSelectedItem : () => {
53
- }, {
54
- getInputProps: f,
55
- getToggleButtonProps: ie,
56
- getMenuProps: le,
57
- getItemProps: re,
58
- reset: N,
59
- selectedItem: v,
60
- isOpen: T,
61
- highlightedIndex: se,
62
- inputValue: B
63
- } = s({
64
- items: y,
65
- selectedItem: o ? null : r(i[0]),
66
- defaultHighlightedIndex: 0,
67
- toggleButtonId: G,
68
- // Only set labelId if aria-labelledby is explicitly provided, otherwise downshift generates an orphan ID
69
- ..."aria-labelledby" in a && a["aria-labelledby"] ? { labelId: a["aria-labelledby"] } : {},
70
- onSelectedItemChange: ({ selectedItem: e }) => {
71
- e && m(e.value), o && I("");
72
- },
73
- onInputValueChange: ({ inputValue: e }) => {
74
- I(e);
75
- },
76
- onIsOpenChange: () => {
77
- k(!1), I("");
78
- },
79
- onHighlightedIndexChange: () => {
80
- k(!0);
81
- },
82
- itemToString: (e) => e ? e.label : "",
83
- stateReducer: (e, l) => {
84
- const { changes: t, type: u } = l;
85
- if (o)
86
- switch (u) {
87
- case s.stateChangeTypes.InputKeyDownEnter:
88
- case s.stateChangeTypes.ItemClick:
89
- return {
90
- ...t,
91
- isOpen: !0,
92
- highlightedIndex: e.highlightedIndex,
93
- inputValue: ""
94
- };
95
- case s.stateChangeTypes.InputBlur:
96
- return {
97
- ...t,
98
- inputValue: ""
99
- };
100
- }
101
- else
102
- switch (u) {
103
- case s.stateChangeTypes.InputKeyDownEnter:
104
- case s.stateChangeTypes.ItemClick:
105
- t.selectedItem && e.selectedItem && t.selectedItem.value === e.selectedItem.value && m(t.selectedItem.value);
106
- break;
107
- }
108
- return t;
109
- }
110
- }), F = j(() => o ? !1 : !C && !y.find((e) => e.label.toLowerCase().includes(B.toLowerCase())), [B, y, C, o]) || !!w.error || p === "error", ce = (e, l) => {
111
- const t = r(e);
112
- t && (oe(t), m(e), h.current && (h.current.focus(), l && (h.current.dataset.showFocusRing = "false")));
113
- }, de = () => {
114
- $(), N();
115
- }, P = (e) => {
116
- var l, t;
117
- ee(e), o || ((v == null ? void 0 : v.label) ?? "").toLocaleLowerCase() !== B.toLocaleLowerCase() && N(), f().onBlur && ((t = (l = f()).onBlur) == null || t.call(l, e));
118
- };
119
- return /* @__PURE__ */ g(H.Root, { open: T, children: [
120
- /* @__PURE__ */ n(H.Anchor, { asChild: !0, children: /* @__PURE__ */ g(
121
- "div",
122
- {
123
- ref: U,
124
- className: c.root,
125
- "data-status": F ? "error" : p,
126
- "data-disabled": b,
127
- "data-empty": i.length === 0,
128
- children: [
129
- o ? /* @__PURE__ */ g(ue, { children: [
130
- /* @__PURE__ */ n("span", { id: L, className: c.srOnly, children: O }),
131
- /* @__PURE__ */ n(
132
- Se,
133
- {
134
- items: te,
135
- onDismiss: ce,
136
- selectedCount: i.length,
137
- children: /* @__PURE__ */ n(
138
- "input",
139
- {
140
- ...f({
141
- ref: W,
142
- "aria-label": "aria-label" in a ? a["aria-label"] : void 0,
143
- // Remove auto-generated aria-labelledby if not explicitly provided
144
- "aria-labelledby": "aria-labelledby" in a && a["aria-labelledby"] ? a["aria-labelledby"] : void 0,
145
- "aria-describedby": O ? L : void 0
146
- }),
147
- "data-test-id": d,
148
- placeholder: i.length === 0 ? x : "",
149
- className: c.multiSelectInput,
150
- disabled: b,
151
- onMouseDown: D,
152
- onFocus: R,
153
- onBlur: P
154
- }
155
- )
156
- }
157
- )
158
- ] }) : /* @__PURE__ */ n(
159
- "input",
160
- {
161
- ...f({
162
- "aria-label": "aria-label" in a ? a["aria-label"] : void 0,
163
- // Remove auto-generated aria-labelledby if not explicitly provided
164
- "aria-labelledby": "aria-labelledby" in a && a["aria-labelledby"] ? a["aria-labelledby"] : void 0
165
- }),
166
- "data-test-id": d,
167
- placeholder: x,
168
- className: c.input,
169
- disabled: b,
170
- onMouseDown: D,
171
- onFocus: R,
172
- onBlur: P
173
- }
174
- ),
175
- Y,
176
- S ? /* @__PURE__ */ n(xe, { onClear: de, children: S }) : null,
177
- w.isLoading && T ? /* @__PURE__ */ n(De, { name: "right", "data-test-id": `${d}-right-slot`, children: /* @__PURE__ */ n(pe, { size: "x-small", "data-test-id": `${d}-loading-circle` }) }) : null,
178
- /* @__PURE__ */ g("div", { className: c.icons, children: [
179
- /* @__PURE__ */ n(
180
- "button",
181
- {
182
- "aria-label": X("Select_toggleMenu"),
183
- ...ie(),
184
- type: "button",
185
- disabled: b,
186
- onMouseDown: () => {
187
- V.current = !0;
188
- },
189
- children: /* @__PURE__ */ n(me, { size: 16, className: c.caret })
190
- }
191
- ),
192
- /* @__PURE__ */ n(Re, { status: p, hasError: F, dataTestId: d })
193
- ] })
194
- ]
195
- }
196
- ) }),
197
- /* @__PURE__ */ n(
198
- we,
199
- {
200
- align: _,
201
- side: q,
202
- highlightedIndex: se,
203
- filterText: A,
204
- getMenuProps: le,
205
- getItemProps: re,
206
- selectedItemValues: i,
207
- hasInteractedSinceOpening: ae,
208
- viewportCollisionPadding: J,
209
- onEscapeKeyDown: Q,
210
- children: Z
211
- }
212
- )
213
- ] });
1
+ const o = "_root_1y4f3_2", t = {
2
+ root: o
214
3
  };
215
- z.displayName = "Select.Combobox";
216
- const Qe = be(z);
217
4
  export {
218
- Qe as ComboboxBase
5
+ t as default,
6
+ o as root
219
7
  };
220
8
  //# sourceMappingURL=fondue-components92.js.map