@imfusion/web-ui 0.11.1-dev.48.g0fcb0d30 → 0.11.1-dev.49.gcda1589f

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,8 +1,9 @@
1
1
  import { t as e } from "../meta-V_KyLeGn.js";
2
2
  import { n as t, t as n } from "../toggle-group-eGr6_hgQ.js";
3
- import { a as r, d as i, f as a, i as o, m as s, n as c, o as l, r as u, t as d, u as f } from "../tabs-EMQSqOk5.js";
4
- import { t as p } from "../scroll-area-CXQ_SxPX.js";
5
- import { a as m, i as h, n as g, o as _, r as v, s as y, t as b } from "../slider-CpIZMAFl.js";
3
+ import { n as r, t as i } from "../row-CImu8yXV.js";
4
+ import { t as a } from "../scroll-area-CXQ_SxPX.js";
5
+ import { a as o, i as s, n as c, o as l, r as u, s as d, t as f } from "../slider-CpIZMAFl.js";
6
+ import { a as p, d as m, i as h, n as g, o as _, r as v, t as y, u as b } from "../tabs-BqgyMmo6.js";
6
7
  import { cva as x } from "class-variance-authority";
7
8
  import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
8
9
  import { useId as T, useMemo as E, useState as D } from "react";
@@ -76,7 +77,7 @@ function I(e, t) {
76
77
  //#region src/integrations/image-display-options/image-display-options-view.tsx
77
78
  var L = x(A.root);
78
79
  function R({ spec: e, value: t, row: n, onChange: r }) {
79
- let i = /* @__PURE__ */ w(h, {
80
+ let a = /* @__PURE__ */ w(s, {
80
81
  value: t,
81
82
  min: e.min,
82
83
  max: e.max,
@@ -85,19 +86,19 @@ function R({ spec: e, value: t, row: n, onChange: r }) {
85
86
  onValueChange: (e) => {
86
87
  r(typeof e == "number" ? e : e[0]);
87
88
  },
88
- children: [/* @__PURE__ */ w(f, {
89
+ children: [/* @__PURE__ */ w(i, {
89
90
  justify: "between",
90
- children: [/* @__PURE__ */ C(v, { children: e.label }), /* @__PURE__ */ C(y, {})]
91
- }), /* @__PURE__ */ C(b, { children: /* @__PURE__ */ w(_, { children: [/* @__PURE__ */ C(g, {}), /* @__PURE__ */ C(m, { "aria-label": e.label })] }) })]
91
+ children: [/* @__PURE__ */ C(u, { children: e.label }), /* @__PURE__ */ C(d, {})]
92
+ }), /* @__PURE__ */ C(f, { children: /* @__PURE__ */ w(l, { children: [/* @__PURE__ */ C(c, {}), /* @__PURE__ */ C(o, { "aria-label": e.label })] }) })]
92
93
  });
93
94
  return n ? /* @__PURE__ */ C("div", {
94
95
  className: A.rowField,
95
- children: i
96
- }) : i;
96
+ children: a
97
+ }) : a;
97
98
  }
98
99
  function z({ checked: e, row: t, onChange: n }) {
99
100
  let r = T();
100
- return /* @__PURE__ */ w(f, {
101
+ return /* @__PURE__ */ w(i, {
101
102
  align: "center",
102
103
  justify: t ? "start" : "between",
103
104
  gap: "2",
@@ -106,13 +107,13 @@ function z({ checked: e, row: t, onChange: n }) {
106
107
  id: r,
107
108
  className: A.invertLabel,
108
109
  children: "Invert"
109
- }), /* @__PURE__ */ C(i, {
110
+ }), /* @__PURE__ */ C(b, {
110
111
  "aria-labelledby": r,
111
112
  checked: e,
112
113
  onCheckedChange: (e) => {
113
114
  n(e);
114
115
  },
115
- children: /* @__PURE__ */ C(a, {})
116
+ children: /* @__PURE__ */ C(m, {})
116
117
  })]
117
118
  });
118
119
  }
@@ -151,123 +152,123 @@ function V({ dimension: e, fields: t, options: n, row: r, onChange: i }) {
151
152
  }
152
153
  })] });
153
154
  }
154
- function H({ variant: e = "default", options: t, intensityRange: n, ranges: i, onOptionsChange: a, className: m, ...h }) {
155
- let [g, _] = D("2d"), v = P(n, i), y = (e) => {
156
- _(e === "3d" ? "3d" : "2d");
155
+ function H({ variant: e = "default", options: t, intensityRange: n, ranges: o, onOptionsChange: s, className: c, ...l }) {
156
+ let [u, d] = D("2d"), f = P(n, o), m = (e) => {
157
+ d(e === "3d" ? "3d" : "2d");
157
158
  };
158
159
  return /* @__PURE__ */ C("div", {
159
- ...h,
160
+ ...l,
160
161
  "data-imf-ui-component": "ImageDisplayOptions",
161
- className: L({ className: m }),
162
- children: e === "default" ? /* @__PURE__ */ w(r, {
163
- value: g,
164
- onValueChange: y,
165
- children: [/* @__PURE__ */ w(c, { children: [
166
- /* @__PURE__ */ C(l, {
162
+ className: L({ className: c }),
163
+ children: e === "default" ? /* @__PURE__ */ w(p, {
164
+ value: u,
165
+ onValueChange: m,
166
+ children: [/* @__PURE__ */ w(g, { children: [
167
+ /* @__PURE__ */ C(_, {
167
168
  value: "2d",
168
169
  children: "2D Slices"
169
170
  }),
170
- /* @__PURE__ */ C(l, {
171
+ /* @__PURE__ */ C(_, {
171
172
  value: "3d",
172
173
  children: "3D Volume"
173
174
  }),
174
- /* @__PURE__ */ C(d, {})
175
- ] }), /* @__PURE__ */ w(o, { children: [/* @__PURE__ */ C(u, {
175
+ /* @__PURE__ */ C(y, {})
176
+ ] }), /* @__PURE__ */ w(h, { children: [/* @__PURE__ */ C(v, {
176
177
  value: "2d",
177
- children: /* @__PURE__ */ C(s, {
178
+ children: /* @__PURE__ */ C(r, {
178
179
  gap: "3",
179
180
  children: /* @__PURE__ */ C(V, {
180
181
  dimension: "2d",
181
- fields: v["2d"],
182
+ fields: f["2d"],
182
183
  options: t,
183
184
  row: !1,
184
- onChange: a
185
+ onChange: s
185
186
  })
186
187
  })
187
- }), /* @__PURE__ */ C(u, {
188
+ }), /* @__PURE__ */ C(v, {
188
189
  value: "3d",
189
- children: /* @__PURE__ */ C(s, {
190
+ children: /* @__PURE__ */ C(r, {
190
191
  gap: "3",
191
192
  children: /* @__PURE__ */ C(V, {
192
193
  dimension: "3d",
193
- fields: v["3d"],
194
+ fields: f["3d"],
194
195
  options: t,
195
196
  row: !1,
196
- onChange: a
197
+ onChange: s
197
198
  })
198
199
  })
199
200
  })] })]
200
- }) : e === "horizontal" ? /* @__PURE__ */ w(r, {
201
+ }) : e === "horizontal" ? /* @__PURE__ */ w(p, {
201
202
  className: A.horizontalTabs,
202
203
  orientation: "vertical",
203
- value: g,
204
- onValueChange: y,
205
- children: [/* @__PURE__ */ w(c, {
204
+ value: u,
205
+ onValueChange: m,
206
+ children: [/* @__PURE__ */ w(g, {
206
207
  fill: !0,
207
208
  children: [
208
- /* @__PURE__ */ C(l, {
209
+ /* @__PURE__ */ C(_, {
209
210
  value: "2d",
210
211
  children: "2D"
211
212
  }),
212
- /* @__PURE__ */ C(l, {
213
+ /* @__PURE__ */ C(_, {
213
214
  value: "3d",
214
215
  children: "3D"
215
216
  }),
216
- /* @__PURE__ */ C(d, {})
217
+ /* @__PURE__ */ C(y, {})
217
218
  ]
218
- }), /* @__PURE__ */ w(o, {
219
+ }), /* @__PURE__ */ w(h, {
219
220
  className: A.horizontalPanel,
220
- children: [/* @__PURE__ */ C(u, {
221
+ children: [/* @__PURE__ */ C(v, {
221
222
  value: "2d",
222
- children: /* @__PURE__ */ C(p, {
223
+ children: /* @__PURE__ */ C(a, {
223
224
  orientation: "horizontal",
224
225
  className: A.strip,
225
- children: /* @__PURE__ */ C(f, {
226
+ children: /* @__PURE__ */ C(i, {
226
227
  align: "center",
227
228
  gap: "3",
228
229
  children: /* @__PURE__ */ C(V, {
229
230
  dimension: "2d",
230
- fields: v["2d"],
231
+ fields: f["2d"],
231
232
  options: t,
232
233
  row: !0,
233
- onChange: a
234
+ onChange: s
234
235
  })
235
236
  })
236
237
  })
237
- }), /* @__PURE__ */ C(u, {
238
+ }), /* @__PURE__ */ C(v, {
238
239
  value: "3d",
239
- children: /* @__PURE__ */ C(p, {
240
+ children: /* @__PURE__ */ C(a, {
240
241
  orientation: "horizontal",
241
242
  className: A.strip,
242
- children: /* @__PURE__ */ C(f, {
243
+ children: /* @__PURE__ */ C(i, {
243
244
  align: "center",
244
245
  gap: "3",
245
246
  children: /* @__PURE__ */ C(V, {
246
247
  dimension: "3d",
247
- fields: v["3d"],
248
+ fields: f["3d"],
248
249
  options: t,
249
250
  row: !0,
250
- onChange: a
251
+ onChange: s
251
252
  })
252
253
  })
253
254
  })
254
255
  })]
255
256
  })]
256
- }) : /* @__PURE__ */ C(p, {
257
+ }) : /* @__PURE__ */ C(a, {
257
258
  orientation: "horizontal",
258
259
  className: A.strip,
259
- children: /* @__PURE__ */ w(f, {
260
+ children: /* @__PURE__ */ w(i, {
260
261
  align: "center",
261
262
  gap: "3",
262
263
  children: [/* @__PURE__ */ C(B, {
263
- active: g,
264
- onChange: _
264
+ active: u,
265
+ onChange: d
265
266
  }), /* @__PURE__ */ C(V, {
266
- dimension: g,
267
- fields: v[g],
267
+ dimension: u,
268
+ fields: f[u],
268
269
  options: t,
269
270
  row: !0,
270
- onChange: a
271
+ onChange: s
271
272
  })]
272
273
  })
273
274
  })
@@ -0,0 +1,4 @@
1
+ export { useViewInteraction } from './use-view-interaction';
2
+ export { ViewTools } from './view-tools';
3
+ export type { ViewToolAction } from './view-tools-view';
4
+ export { viewToolsMeta } from './view-tools.meta';
@@ -0,0 +1,21 @@
1
+ import { SliceViewDefaultEventHandler } from '@imfusion/sdk';
2
+ import { ViewToolAction } from './view-tools-view';
3
+ type InteractiveView = {
4
+ defaultEventHandler(): Pick<SliceViewDefaultEventHandler, "limitViewInteractionTo" | "restoreDefaultInputMapping"> | null;
5
+ };
6
+ export declare function createViewInteractionStore(views: () => InteractiveView[]): {
7
+ getViewInteraction: () => ViewToolAction;
8
+ subscribe: (listener: () => void) => () => boolean;
9
+ setViewInteraction: (next: ViewToolAction) => void;
10
+ };
11
+ /**
12
+ * useViewInteraction - the tool that limits the left mouse button in the main 2D and MPR views, shared by every caller
13
+ * and by `ViewTools`. `setViewInteraction("Default")` restores the default input mapping.
14
+ *
15
+ * Must run inside `ImFusionReady`, within an `ImFusionProvider`. Needs `@imfusion/sdk` 1.3.0 or later.
16
+ */
17
+ export declare function useViewInteraction(): {
18
+ viewInteraction: ViewToolAction;
19
+ setViewInteraction: (next: ViewToolAction) => void;
20
+ };
21
+ export {};
@@ -0,0 +1,23 @@
1
+ import { SliceViewAction } from '@imfusion/sdk';
2
+ type ViewTool = Extract<SliceViewAction, "Pan" | "Zoom" | "Windowing">;
3
+ /** `Default` restores the SDK's full input mapping; every other value limits the left mouse button to that action. */
4
+ export type ViewToolAction = "Default" | ViewTool;
5
+ type ViewToolsViewProps = React.ComponentProps<"div"> & {
6
+ /** The active tool, or `"Default"` when none is pressed. */
7
+ viewInteraction: ViewToolAction;
8
+ /** Called with the pressed tool, or `"Default"` when the active tool is pressed again. */
9
+ onViewInteractionChange: (viewInteraction: ViewToolAction) => void;
10
+ /** Called when the reset button is pressed. */
11
+ onReset: () => void;
12
+ /** Lays the tools out in a row or a column. */
13
+ orientation?: "horizontal" | "vertical";
14
+ };
15
+ /**
16
+ * ViewToolsView - the SDK-free presentational surface behind `ViewTools`:
17
+ * the same toggles and reset button, driven by plain props instead of the SDK views.
18
+ */
19
+ export declare function ViewToolsView({ viewInteraction, onViewInteractionChange, onReset, orientation, "aria-label": ariaLabel, className, ...props }: ViewToolsViewProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare namespace ViewToolsView {
21
+ var displayName: string;
22
+ }
23
+ export {};
@@ -0,0 +1,14 @@
1
+ import { ViewToolsView } from './view-tools-view';
2
+ type Props = Omit<React.ComponentProps<typeof ViewToolsView>, "viewInteraction" | "onViewInteractionChange" | "onReset">;
3
+ /**
4
+ * ViewTools - Pan, Zoom, and Windowing toggles that limit the left mouse button in the main 2D and MPR views to one
5
+ * action, and a button that resets the view group. Releasing the active toggle restores the default input mapping.
6
+ * The active tool is the one `useViewInteraction` reads and sets.
7
+ *
8
+ * Must render inside `ImFusionReady`, within an `ImFusionProvider`. Needs `@imfusion/sdk` 1.3.0 or later.
9
+ */
10
+ export declare function ViewTools(props: Props): import("react/jsx-runtime").JSX.Element;
11
+ export declare namespace ViewTools {
12
+ var displayName: string;
13
+ }
14
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const viewToolsMeta: ComponentMeta;
@@ -0,0 +1,133 @@
1
+ import { _M as e, ek as t, fM as n, hl as r, vC as i } from "../icons-vc1WZCxX.js";
2
+ import { t as a } from "../meta-V_KyLeGn.js";
3
+ import { n as o, t as s } from "../toggle-group-eGr6_hgQ.js";
4
+ import { n as c } from "../icon-button-roSB497o.js";
5
+ import { n as l, t as u } from "../row-CImu8yXV.js";
6
+ import { cva as d } from "class-variance-authority";
7
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
8
+ import { useSyncExternalStore as m } from "react";
9
+ import { useImFusion as h } from "@imfusion/sdk-react";
10
+ //#region src/integrations/view-tools/use-view-interaction.ts
11
+ function g(e) {
12
+ return [
13
+ e.display.main2dView(),
14
+ e.display.mainAxialView(),
15
+ e.display.mainCoronalView(),
16
+ e.display.mainSagittalView()
17
+ ];
18
+ }
19
+ function _(e) {
20
+ let t = "Default", n = /* @__PURE__ */ new Set();
21
+ return {
22
+ getViewInteraction: () => t,
23
+ subscribe: (e) => (n.add(e), () => n.delete(e)),
24
+ setViewInteraction: (r) => {
25
+ if (r !== t) {
26
+ t = r;
27
+ for (let t of e()) {
28
+ let e = t.defaultEventHandler();
29
+ r === "Default" ? e?.restoreDefaultInputMapping() : e?.limitViewInteractionTo(r);
30
+ }
31
+ for (let e of n) e();
32
+ }
33
+ }
34
+ };
35
+ }
36
+ var v = /* @__PURE__ */ new WeakMap();
37
+ function y(e) {
38
+ let t = v.get(e);
39
+ return t || (t = _(() => g(e)), v.set(e, t)), t;
40
+ }
41
+ function b() {
42
+ let { getViewInteraction: e, subscribe: t, setViewInteraction: n } = y(h());
43
+ return {
44
+ viewInteraction: m(t, e),
45
+ setViewInteraction: n
46
+ };
47
+ }
48
+ //#endregion
49
+ //#region src/integrations/view-tools/view-tools-view.tsx
50
+ var x = d({ root: "imf-ui-view-tools-module-root" }.root), S = {
51
+ Pan: r,
52
+ Zoom: n,
53
+ Windowing: t
54
+ };
55
+ function C(e) {
56
+ return typeof e == "string" && Object.hasOwn(S, e);
57
+ }
58
+ function w({ viewInteraction: t, onViewInteractionChange: n, onReset: r, orientation: a = "horizontal", "aria-label": d = "View tools", className: m, ...h }) {
59
+ let g = a === "vertical" ? l : u;
60
+ return /* @__PURE__ */ f("div", {
61
+ role: "group",
62
+ "aria-label": d,
63
+ ...h,
64
+ "data-imf-ui-component": "ViewTools",
65
+ "data-orientation": a,
66
+ className: x({ className: m }),
67
+ children: /* @__PURE__ */ p(g, {
68
+ gap: "2",
69
+ align: "center",
70
+ children: [/* @__PURE__ */ f(s, {
71
+ orientation: a,
72
+ value: t === "Default" ? [] : [t],
73
+ onValueChange: (e) => {
74
+ n(C(e[0]) ? e[0] : "Default");
75
+ },
76
+ children: Object.entries(S).map(([t, n]) => /* @__PURE__ */ f(o, {
77
+ value: t,
78
+ "aria-label": t,
79
+ children: /* @__PURE__ */ f(e, {
80
+ glyph: n,
81
+ "aria-hidden": !0
82
+ })
83
+ }, t))
84
+ }), /* @__PURE__ */ f(c, {
85
+ glyph: i,
86
+ label: "Reset view",
87
+ variant: "ghost",
88
+ onClick: r
89
+ })]
90
+ })
91
+ });
92
+ }
93
+ w.displayName = "ViewToolsView";
94
+ //#endregion
95
+ //#region src/integrations/view-tools/view-tools.tsx
96
+ function T(e) {
97
+ let t = h(), { viewInteraction: n, setViewInteraction: r } = b();
98
+ return /* @__PURE__ */ f(w, {
99
+ ...e,
100
+ viewInteraction: n,
101
+ onViewInteractionChange: r,
102
+ onReset: () => {
103
+ t.display.viewGroup().reset();
104
+ }
105
+ });
106
+ }
107
+ T.displayName = "ViewTools";
108
+ //#endregion
109
+ //#region src/integrations/view-tools/view-tools.meta.ts
110
+ var E = {
111
+ name: "ViewTools",
112
+ category: a.inputs,
113
+ status: "experimental",
114
+ description: "Toolbar that limits mouse interaction in the ImFusion main 2D and MPR views to pan, zoom, or windowing, with a reset button for the view group. For a segmented control not tied to the SDK, use ToggleGroup.",
115
+ origin: "adapted",
116
+ internalDependencies: [
117
+ "ToggleGroup",
118
+ "Toggle",
119
+ "Icon",
120
+ "IconButton",
121
+ "Row",
122
+ "Stack"
123
+ ],
124
+ upstream: {
125
+ name: "ImFusion Web SDK",
126
+ websiteLink: "https://www.imfusion.com/",
127
+ docLink: "https://docs.imfusion.com/",
128
+ llmDocLink: "https://docs.imfusion.com/",
129
+ runtimeDependencies: ["@imfusion/sdk", "@imfusion/sdk-react"]
130
+ }
131
+ };
132
+ //#endregion
133
+ export { T as ViewTools, b as useViewInteraction, E as viewToolsMeta };
@@ -0,0 +1,136 @@
1
+ import { cva as e } from "class-variance-authority";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ var n = {
4
+ alignCenter: "imf-ui-stack-module-alignCenter",
5
+ alignEnd: "imf-ui-stack-module-alignEnd",
6
+ alignStart: "imf-ui-stack-module-alignStart",
7
+ alignStretch: "imf-ui-stack-module-alignStretch",
8
+ gap0: "imf-ui-stack-module-gap0",
9
+ gap1: "imf-ui-stack-module-gap1",
10
+ gap10: "imf-ui-stack-module-gap10",
11
+ gap2: "imf-ui-stack-module-gap2",
12
+ gap3: "imf-ui-stack-module-gap3",
13
+ gap4: "imf-ui-stack-module-gap4",
14
+ gap5: "imf-ui-stack-module-gap5",
15
+ gap6: "imf-ui-stack-module-gap6",
16
+ gap7: "imf-ui-stack-module-gap7",
17
+ gap8: "imf-ui-stack-module-gap8",
18
+ gap9: "imf-ui-stack-module-gap9",
19
+ justifyAround: "imf-ui-stack-module-justifyAround",
20
+ justifyBetween: "imf-ui-stack-module-justifyBetween",
21
+ justifyCenter: "imf-ui-stack-module-justifyCenter",
22
+ justifyEnd: "imf-ui-stack-module-justifyEnd",
23
+ justifyEvenly: "imf-ui-stack-module-justifyEvenly",
24
+ justifyStart: "imf-ui-stack-module-justifyStart",
25
+ root: "imf-ui-stack-module-root"
26
+ }, r = e(n.root, { variants: {
27
+ gap: {
28
+ 0: n.gap0,
29
+ 1: n.gap1,
30
+ 2: n.gap2,
31
+ 3: n.gap3,
32
+ 4: n.gap4,
33
+ 5: n.gap5,
34
+ 6: n.gap6,
35
+ 7: n.gap7,
36
+ 8: n.gap8,
37
+ 9: n.gap9,
38
+ 10: n.gap10
39
+ },
40
+ align: {
41
+ start: n.alignStart,
42
+ center: n.alignCenter,
43
+ end: n.alignEnd,
44
+ stretch: n.alignStretch
45
+ },
46
+ justify: {
47
+ start: n.justifyStart,
48
+ center: n.justifyCenter,
49
+ end: n.justifyEnd,
50
+ between: n.justifyBetween,
51
+ around: n.justifyAround,
52
+ evenly: n.justifyEvenly
53
+ }
54
+ } });
55
+ function i({ gap: e = "4", align: n = "stretch", justify: i = "start", ...a }) {
56
+ return /* @__PURE__ */ t("div", {
57
+ ...a,
58
+ "data-imf-ui-component": "Stack",
59
+ className: r({
60
+ gap: e,
61
+ align: n,
62
+ justify: i,
63
+ className: a.className
64
+ })
65
+ });
66
+ }
67
+ var a = {
68
+ alignCenter: "imf-ui-row-module-alignCenter",
69
+ alignEnd: "imf-ui-row-module-alignEnd",
70
+ alignStart: "imf-ui-row-module-alignStart",
71
+ alignStretch: "imf-ui-row-module-alignStretch",
72
+ gap1: "imf-ui-row-module-gap1",
73
+ gap10: "imf-ui-row-module-gap10",
74
+ gap2: "imf-ui-row-module-gap2",
75
+ gap3: "imf-ui-row-module-gap3",
76
+ gap4: "imf-ui-row-module-gap4",
77
+ gap5: "imf-ui-row-module-gap5",
78
+ gap6: "imf-ui-row-module-gap6",
79
+ gap7: "imf-ui-row-module-gap7",
80
+ gap8: "imf-ui-row-module-gap8",
81
+ gap9: "imf-ui-row-module-gap9",
82
+ justifyAround: "imf-ui-row-module-justifyAround",
83
+ justifyBetween: "imf-ui-row-module-justifyBetween",
84
+ justifyCenter: "imf-ui-row-module-justifyCenter",
85
+ justifyEnd: "imf-ui-row-module-justifyEnd",
86
+ justifyEvenly: "imf-ui-row-module-justifyEvenly",
87
+ justifyStart: "imf-ui-row-module-justifyStart",
88
+ root: "imf-ui-row-module-root",
89
+ wrap: "imf-ui-row-module-wrap"
90
+ }, o = e(a.root, { variants: {
91
+ gap: {
92
+ 1: a.gap1,
93
+ 2: a.gap2,
94
+ 3: a.gap3,
95
+ 4: a.gap4,
96
+ 5: a.gap5,
97
+ 6: a.gap6,
98
+ 7: a.gap7,
99
+ 8: a.gap8,
100
+ 9: a.gap9,
101
+ 10: a.gap10
102
+ },
103
+ align: {
104
+ start: a.alignStart,
105
+ center: a.alignCenter,
106
+ end: a.alignEnd,
107
+ stretch: a.alignStretch
108
+ },
109
+ justify: {
110
+ start: a.justifyStart,
111
+ center: a.justifyCenter,
112
+ end: a.justifyEnd,
113
+ between: a.justifyBetween,
114
+ around: a.justifyAround,
115
+ evenly: a.justifyEvenly
116
+ },
117
+ wrap: {
118
+ true: a.wrap,
119
+ false: null
120
+ }
121
+ } });
122
+ function s({ gap: e = "2", align: n = "stretch", justify: r = "start", wrap: i = !1, ...a }) {
123
+ return /* @__PURE__ */ t("div", {
124
+ ...a,
125
+ "data-imf-ui-component": "Row",
126
+ className: o({
127
+ gap: e,
128
+ align: n,
129
+ justify: r,
130
+ wrap: i,
131
+ className: a.className
132
+ })
133
+ });
134
+ }
135
+ //#endregion
136
+ export { i as n, s as t };