xmlui 0.10.20 → 0.10.22

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 (32) hide show
  1. package/dist/lib/{index-Ckhnrf1F.mjs → index-BaUZuvtZ.mjs} +1472 -1289
  2. package/dist/lib/index.css +1 -1
  3. package/dist/lib/{initMock-qnCFw6Zc.mjs → initMock-BVLjWJxZ.mjs} +1 -1
  4. package/dist/lib/xmlui.d.ts +32 -0
  5. package/dist/lib/xmlui.mjs +1 -1
  6. package/dist/metadata/{collectedComponentMetadata-Dg7P-zOz.mjs → collectedComponentMetadata-MZbCI1Ki.mjs} +1463 -1281
  7. package/dist/metadata/{initMock-ZyyFNOpL.mjs → initMock-BkgwDrCY.mjs} +1 -1
  8. package/dist/metadata/style.css +1 -1
  9. package/dist/metadata/xmlui-metadata.mjs +1 -1
  10. package/dist/metadata/xmlui-metadata.umd.js +3 -3
  11. package/dist/scripts/package.json +3 -6
  12. package/dist/scripts/src/components/App/App.js +4 -4
  13. package/dist/scripts/src/components/App/AppNative.js +1 -1
  14. package/dist/scripts/src/components/ComponentProvider.js +30 -2
  15. package/dist/scripts/src/components/DateInput/DateInputNative.js +0 -1
  16. package/dist/scripts/src/components/Form/FormNative.js +0 -1
  17. package/dist/scripts/src/components/IFrame/IFrameNative.js +0 -2
  18. package/dist/scripts/src/components/Tabs/TabContext.js +26 -17
  19. package/dist/scripts/src/components/Tabs/TabItemNative.js +7 -2
  20. package/dist/scripts/src/components/Tabs/Tabs.js +22 -3
  21. package/dist/scripts/src/components/Tabs/Tabs.spec.js +362 -0
  22. package/dist/scripts/src/components/Tabs/TabsNative.js +28 -4
  23. package/dist/scripts/src/components/Text/Text.js +5 -1
  24. package/dist/scripts/src/components/Text/Text.spec.js +317 -0
  25. package/dist/scripts/src/components/Text/TextNative.js +112 -1
  26. package/dist/scripts/src/components/TimeInput/TimeInputNative.js +0 -1
  27. package/dist/scripts/src/components/Timer/TimerNative.js +0 -1
  28. package/dist/scripts/src/components/Tree/TreeNative.js +7 -12
  29. package/dist/scripts/src/components-core/rendering/ComponentAdapter.js +2 -3
  30. package/dist/standalone/xmlui-standalone.es.d.ts +34 -0
  31. package/dist/standalone/xmlui-standalone.umd.js +35 -35
  32. package/package.json +3 -6
@@ -2,12 +2,12 @@ var _a;
2
2
  import "./index.css";
3
3
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
4
4
  import * as React from "react";
5
- import React__default, { useRef, useInsertionEffect, useCallback, forwardRef, useState, useEffect, useId, cloneElement, useMemo, useContext, useLayoutEffect, createContext, memo, Fragment as Fragment$1, useImperativeHandle, useReducer, isValidElement, useDeferredValue, createElement, startTransition, useTransition, Children } from "react";
5
+ import React__default, { useRef, useInsertionEffect, useCallback, forwardRef, useState, useEffect, useId, cloneElement, useMemo, useContext, useLayoutEffect, createContext, memo, Fragment as Fragment$1, useReducer, isValidElement, useDeferredValue, createElement, startTransition, useTransition, Children } from "react";
6
6
  import require$$0, { flushSync, createPortal } from "react-dom";
7
7
  import yaml from "js-yaml";
8
8
  import { useQuery, useInfiniteQuery, QueryClientProvider, QueryClient } from "@tanstack/react-query";
9
9
  import produce, { createDraft, finishDraft, enableMapSet } from "immer";
10
- import { throttle, get, isNil, omitBy, isUndefined, noop as noop$2, isPlainObject, isEqual, isEmpty, union, uniq, orderBy as orderBy$1, isObject, isArray, groupBy, sortBy, omit, isNumber, isString as isString$1, set, isNaN as isNaN$1, cloneDeep, merge, defaultTo, capitalize, unset, setWith, keyBy, pick } from "lodash-es";
10
+ import { throttle, get, isNil, omitBy, isUndefined, noop as noop$2, isPlainObject, isEmpty, isEqual, union, uniq, orderBy as orderBy$1, isObject, isArray, groupBy, sortBy, omit, isNumber, isString as isString$1, set, isNaN as isNaN$1, cloneDeep, merge, defaultTo, capitalize, unset, setWith, keyBy, pick } from "lodash-es";
11
11
  import { formatDistanceToNow, parse, format, parseISO, isValid, isToday, isYesterday, isTomorrow, isThisWeek, formatRelative, isThisYear, isSameDay, differenceInMinutes } from "date-fns";
12
12
  import { l as labelPositionMd, o as orientationOptionMd, v as validationStatusMd, b as alignmentOptionValues, i as isSizeType, L as LinkTargetMd, c as alignmentOptionMd, d as iconPositionMd, e as buttonTypesMd, s as sizeMd, f as buttonThemeMd, g as buttonVariantMd, h as layoutOptionKeys, T as TextVariantElement, V as VariantPropsKeys, j as variantOptionsMd, k as scrollAnchoringValues, m as buttonThemeNames, n as iconPositionNames, p as buttonVariantNames, t as triggerPositionNames, q as httpMethodNames, r as orientationOptionValues, u as viewportSizeNames, M as MetadataProvider } from "./metadata-utils-BTIt1_wE.mjs";
13
13
  import classnames from "classnames";
@@ -21,15 +21,13 @@ import { useLocation, NavLink as NavLink$1, Link, useNavigate, Routes, Route, Na
21
21
  import { Helmet, HelmetProvider } from "react-helmet-async";
22
22
  import * as SheetPrimitive from "@radix-ui/react-dialog";
23
23
  import { useContextSelector, createContext as createContext$1 } from "use-context-selector";
24
- import { FixedSizeList } from "react-window";
25
- import AutoSizer from "react-virtualized-auto-sizer";
24
+ import { Virtualizer } from "virtua";
26
25
  import { F as Parser, G as T_CALCULATED_MEMBER_ACCESS_EXPRESSION, H as T_MEMBER_ACCESS_EXPRESSION, I as T_IDENTIFIER, J as T_PREFIX_OP_EXPRESSION, K as T_FUNCTION_DECLARATION, L as T_ARROW_EXPRESSION, M as createXmlUiTreeNodeId, O as T_EMPTY_STATEMENT, Q as T_SWITCH_STATEMENT, R as T_TRY_STATEMENT, V as T_THROW_STATEMENT, W as T_FOR_OF_STATEMENT, X as T_FOR_IN_STATEMENT, Y as T_FOR_STATEMENT, Z as T_EXPRESSION_STATEMENT, _ as T_BREAK_STATEMENT, $ as T_CONTINUE_STATEMENT, a0 as T_DO_WHILE_STATEMENT, a1 as T_WHILE_STATEMENT, a2 as T_RETURN_STATEMENT, a3 as T_IF_STATEMENT, a4 as T_CONST_STATEMENT, a5 as T_LET_STATEMENT, a6 as T_ARROW_EXPRESSION_STATEMENT, a7 as T_BLOCK_STATEMENT, a8 as T_VAR_STATEMENT, a9 as T_ASSIGNMENT_EXPRESSION, aa as T_LITERAL, ab as T_SPREAD_EXPRESSION, ac as T_FUNCTION_INVOCATION_EXPRESSION, ad as T_POSTFIX_OP_EXPRESSION, ae as T_CONDITIONAL_EXPRESSION, af as T_BINARY_EXPRESSION, ag as T_UNARY_EXPRESSION, ah as T_OBJECT_LITERAL, ai as T_ARRAY_LITERAL, aj as T_SEQUENCE_EXPRESSION, ak as T_TEMPLATE_LITERAL_EXPRESSION, al as T_VAR_DECLARATION, am as T_DESTRUCTURE, h as createXmlUiParser, w as nodeToComponentDef, D as DiagnosticCategory, E as ErrCodes, S as SyntaxKind, an as PARSED_MARK_PROP, ao as collectCodeBehindFromSource, ap as removeCodeBehindTokensFromTree } from "./transform-Tooy42EB.mjs";
27
26
  import { useReactTable, getPaginationRowModel, getCoreRowModel, flexRender } from "@tanstack/react-table";
28
27
  import { useVirtualizer } from "@tanstack/react-virtual";
29
28
  import { RenderPropSticky } from "react-sticky-el";
30
29
  import * as dropzone from "react-dropzone";
31
30
  import toast, { Toaster, ToastBar } from "react-hot-toast";
32
- import { Virtualizer } from "virtua";
33
31
  import memoizeOne from "memoize-one";
34
32
  import { Popover, PopoverTrigger, Portal as Portal$1, PopoverContent, PopoverPortal } from "@radix-ui/react-popover";
35
33
  import { FocusScope } from "@radix-ui/react-focus-scope";
@@ -44,6 +42,7 @@ import rehypeRaw from "rehype-raw";
44
42
  import { visit } from "unist-util-visit";
45
43
  import EmojiPicker, { EmojiStyle } from "emoji-picker-react";
46
44
  import * as HoverCard from "@radix-ui/react-hover-card";
45
+ import { useSpring, useInView, animated } from "@react-spring/web";
47
46
  import Papa from "papaparse";
48
47
  import { Root as Root$2, List, Trigger as Trigger$1, Content as Content$1 } from "@radix-ui/react-tabs";
49
48
  import scrollIntoView from "scroll-into-view-if-needed";
@@ -54,7 +53,6 @@ import { usePopper } from "react-popper";
54
53
  import * as RechartsPrimitive from "recharts";
55
54
  import { Area, ResponsiveContainer, AreaChart as AreaChart$1, XAxis, YAxis, CartesianGrid, Tooltip as Tooltip$2, Legend as Legend$1, BarChart as BarChart$1, Bar, PieChart as PieChart$1, Pie, LabelList as LabelList$1, Sector, LineChart as LineChart$1, Line, Radar, RadarChart as RadarChart$1, PolarGrid, PolarAngleAxis, PolarRadiusAxis } from "recharts";
56
55
  import { MemoryRouter, HashRouter, BrowserRouter } from "react-router-dom";
57
- import { useSpring, useInView, animated } from "@react-spring/web";
58
56
  import { AnimatePresence, motion } from "framer-motion";
59
57
  import { c as componentFileExtension, a as codeBehindFileExtension, g as getLintSeverity, L as LintSeverity, l as lintApp, p as printComponentLints, d as lintErrorsComponent } from "./xmlui-serializer-uCYa8_tZ.mjs";
60
58
  var client = {};
@@ -1734,8 +1732,8 @@ const styles$1h = {
1734
1732
  };
1735
1733
  const themeVars$Y = `'{"padding-Button": "var(--xmlui-padding-Button)", "paddingHorizontal-Button": "var(--xmlui-paddingHorizontal-Button, var(--xmlui-padding-Button))", "paddingVertical-Button": "var(--xmlui-paddingVertical-Button, var(--xmlui-padding-Button))", "paddingLeft-Button": "var(--xmlui-paddingLeft-Button, var(--xmlui-paddingHorizontal-Button, var(--xmlui-padding-Button)))", "paddingRight-Button": "var(--xmlui-paddingRight-Button, var(--xmlui-paddingHorizontal-Button, var(--xmlui-padding-Button)))", "paddingTop-Button": "var(--xmlui-paddingTop-Button, var(--xmlui-paddingVertical-Button, var(--xmlui-padding-Button)))", "paddingBottom-Button": "var(--xmlui-paddingBottom-Button, var(--xmlui-paddingVertical-Button, var(--xmlui-padding-Button)))", "padding-Button-xs": "var(--xmlui-padding-Button-xs)", "paddingHorizontal-Button-xs": "var(--xmlui-paddingHorizontal-Button-xs, var(--xmlui-padding-Button-xs))", "paddingVertical-Button-xs": "var(--xmlui-paddingVertical-Button-xs, var(--xmlui-padding-Button-xs))", "paddingLeft-Button-xs": "var(--xmlui-paddingLeft-Button-xs, var(--xmlui-paddingHorizontal-Button-xs, var(--xmlui-padding-Button-xs)))", "paddingRight-Button-xs": "var(--xmlui-paddingRight-Button-xs, var(--xmlui-paddingHorizontal-Button-xs, var(--xmlui-padding-Button-xs)))", "paddingTop-Button-xs": "var(--xmlui-paddingTop-Button-xs, var(--xmlui-paddingVertical-Button-xs, var(--xmlui-padding-Button-xs)))", "paddingBottom-Button-xs": "var(--xmlui-paddingBottom-Button-xs, var(--xmlui-paddingVertical-Button-xs, var(--xmlui-padding-Button-xs)))", "padding-Button-sm": "var(--xmlui-padding-Button-sm)", "paddingHorizontal-Button-sm": "var(--xmlui-paddingHorizontal-Button-sm, var(--xmlui-padding-Button-sm))", "paddingVertical-Button-sm": "var(--xmlui-paddingVertical-Button-sm, var(--xmlui-padding-Button-sm))", "paddingLeft-Button-sm": "var(--xmlui-paddingLeft-Button-sm, var(--xmlui-paddingHorizontal-Button-sm, var(--xmlui-padding-Button-sm)))", "paddingRight-Button-sm": "var(--xmlui-paddingRight-Button-sm, var(--xmlui-paddingHorizontal-Button-sm, var(--xmlui-padding-Button-sm)))", "paddingTop-Button-sm": "var(--xmlui-paddingTop-Button-sm, var(--xmlui-paddingVertical-Button-sm, var(--xmlui-padding-Button-sm)))", "paddingBottom-Button-sm": "var(--xmlui-paddingBottom-Button-sm, var(--xmlui-paddingVertical-Button-sm, var(--xmlui-padding-Button-sm)))", "padding-Button-md": "var(--xmlui-padding-Button-md)", "paddingHorizontal-Button-md": "var(--xmlui-paddingHorizontal-Button-md, var(--xmlui-padding-Button-md))", "paddingVertical-Button-md": "var(--xmlui-paddingVertical-Button-md, var(--xmlui-padding-Button-md))", "paddingLeft-Button-md": "var(--xmlui-paddingLeft-Button-md, var(--xmlui-paddingHorizontal-Button-md, var(--xmlui-padding-Button-md)))", "paddingRight-Button-md": "var(--xmlui-paddingRight-Button-md, var(--xmlui-paddingHorizontal-Button-md, var(--xmlui-padding-Button-md)))", "paddingTop-Button-md": "var(--xmlui-paddingTop-Button-md, var(--xmlui-paddingVertical-Button-md, var(--xmlui-padding-Button-md)))", "paddingBottom-Button-md": "var(--xmlui-paddingBottom-Button-md, var(--xmlui-paddingVertical-Button-md, var(--xmlui-padding-Button-md)))", "padding-Button-lg": "var(--xmlui-padding-Button-lg)", "paddingHorizontal-Button-lg": "var(--xmlui-paddingHorizontal-Button-lg, var(--xmlui-padding-Button-lg))", "paddingVertical-Button-lg": "var(--xmlui-paddingVertical-Button-lg, var(--xmlui-padding-Button-lg))", "paddingLeft-Button-lg": "var(--xmlui-paddingLeft-Button-lg, var(--xmlui-paddingHorizontal-Button-lg, var(--xmlui-padding-Button-lg)))", "paddingRight-Button-lg": "var(--xmlui-paddingRight-Button-lg, var(--xmlui-paddingHorizontal-Button-lg, var(--xmlui-padding-Button-lg)))", "paddingTop-Button-lg": "var(--xmlui-paddingTop-Button-lg, var(--xmlui-paddingVertical-Button-lg, var(--xmlui-padding-Button-lg)))", "paddingBottom-Button-lg": "var(--xmlui-paddingBottom-Button-lg, var(--xmlui-paddingVertical-Button-lg, var(--xmlui-padding-Button-lg)))", "width-Button": "var(--xmlui-width-Button)", "height-Button": "var(--xmlui-height-Button)", "fontFamily-Button-primary-solid": "var(--xmlui-fontFamily-Button-primary-solid)", "fontSize-Button-primary-solid": "var(--xmlui-fontSize-Button-primary-solid)", "fontWeight-Button-primary-solid": "var(--xmlui-fontWeight-Button-primary-solid)", "borderRadius-Button-primary-solid": "var(--xmlui-borderRadius-Button-primary-solid)", "borderWidth-Button-primary-solid": "var(--xmlui-borderWidth-Button-primary-solid)", "borderColor-Button-primary-solid": "var(--xmlui-borderColor-Button-primary-solid)", "borderStyle-Button-primary-solid": "var(--xmlui-borderStyle-Button-primary-solid)", "backgroundColor-Button-primary-solid": "var(--xmlui-backgroundColor-Button-primary-solid)", "textColor-Button-primary-solid": "var(--xmlui-textColor-Button-primary-solid)", "boxShadow-Button-primary-solid": "var(--xmlui-boxShadow-Button-primary-solid)", "outlineWidth-Button-primary-solid--focus": "var(--xmlui-outlineWidth-Button-primary-solid--focus)", "outlineColor-Button-primary-solid--focus": "var(--xmlui-outlineColor-Button-primary-solid--focus)", "outlineStyle-Button-primary-solid--focus": "var(--xmlui-outlineStyle-Button-primary-solid--focus)", "outlineOffset-Button-primary-solid--focus": "var(--xmlui-outlineOffset-Button-primary-solid--focus)", "borderColor-Button-primary-solid--hover": "var(--xmlui-borderColor-Button-primary-solid--hover)", "textColor-Button-primary-solid--hover": "var(--xmlui-textColor-Button-primary-solid--hover)", "backgroundColor-Button-primary-solid--hover": "var(--xmlui-backgroundColor-Button-primary-solid--hover)", "borderColor-Button-primary-solid--active": "var(--xmlui-borderColor-Button-primary-solid--active)", "textColor-Button-primary-solid--active": "var(--xmlui-textColor-Button-primary-solid--active)", "boxShadow-Button-primary-solid--active": "var(--xmlui-boxShadow-Button-primary-solid--active)", "backgroundColor-Button-primary-solid--active": "var(--xmlui-backgroundColor-Button-primary-solid--active)", "backgroundColor-Button--disabled": "var(--xmlui-backgroundColor-Button--disabled)", "textColor-Button--disabled": "var(--xmlui-textColor-Button--disabled)", "borderColor-Button--disabled": "var(--xmlui-borderColor-Button--disabled)", "fontFamily-Button-secondary-solid": "var(--xmlui-fontFamily-Button-secondary-solid)", "fontSize-Button-secondary-solid": "var(--xmlui-fontSize-Button-secondary-solid)", "fontWeight-Button-secondary-solid": "var(--xmlui-fontWeight-Button-secondary-solid)", "borderRadius-Button-secondary-solid": "var(--xmlui-borderRadius-Button-secondary-solid)", "borderWidth-Button-secondary-solid": "var(--xmlui-borderWidth-Button-secondary-solid)", "borderColor-Button-secondary-solid": "var(--xmlui-borderColor-Button-secondary-solid)", "borderStyle-Button-secondary-solid": "var(--xmlui-borderStyle-Button-secondary-solid)", "backgroundColor-Button-secondary-solid": "var(--xmlui-backgroundColor-Button-secondary-solid)", "textColor-Button-secondary-solid": "var(--xmlui-textColor-Button-secondary-solid)", "boxShadow-Button-secondary-solid": "var(--xmlui-boxShadow-Button-secondary-solid)", "outlineWidth-Button-secondary-solid--focus": "var(--xmlui-outlineWidth-Button-secondary-solid--focus)", "outlineColor-Button-secondary-solid--focus": "var(--xmlui-outlineColor-Button-secondary-solid--focus)", "outlineStyle-Button-secondary-solid--focus": "var(--xmlui-outlineStyle-Button-secondary-solid--focus)", "outlineOffset-Button-secondary-solid--focus": "var(--xmlui-outlineOffset-Button-secondary-solid--focus)", "borderColor-Button-secondary-solid--hover": "var(--xmlui-borderColor-Button-secondary-solid--hover)", "textColor-Button-secondary-solid--hover": "var(--xmlui-textColor-Button-secondary-solid--hover)", "backgroundColor-Button-secondary-solid--hover": "var(--xmlui-backgroundColor-Button-secondary-solid--hover)", "borderColor-Button-secondary-solid--active": "var(--xmlui-borderColor-Button-secondary-solid--active)", "textColor-Button-secondary-solid--active": "var(--xmlui-textColor-Button-secondary-solid--active)", "boxShadow-Button-secondary-solid--active": "var(--xmlui-boxShadow-Button-secondary-solid--active)", "backgroundColor-Button-secondary-solid--active": "var(--xmlui-backgroundColor-Button-secondary-solid--active)", "fontFamily-Button-attention-solid": "var(--xmlui-fontFamily-Button-attention-solid)", "fontSize-Button-attention-solid": "var(--xmlui-fontSize-Button-attention-solid)", "fontWeight-Button-attention-solid": "var(--xmlui-fontWeight-Button-attention-solid)", "borderRadius-Button-attention-solid": "var(--xmlui-borderRadius-Button-attention-solid)", "borderWidth-Button-attention-solid": "var(--xmlui-borderWidth-Button-attention-solid)", "borderColor-Button-attention-solid": "var(--xmlui-borderColor-Button-attention-solid)", "borderStyle-Button-attention-solid": "var(--xmlui-borderStyle-Button-attention-solid)", "backgroundColor-Button-attention-solid": "var(--xmlui-backgroundColor-Button-attention-solid)", "textColor-Button-attention-solid": "var(--xmlui-textColor-Button-attention-solid)", "boxShadow-Button-attention-solid": "var(--xmlui-boxShadow-Button-attention-solid)", "outlineWidth-Button-attention-solid--focus": "var(--xmlui-outlineWidth-Button-attention-solid--focus)", "outlineColor-Button-attention-solid--focus": "var(--xmlui-outlineColor-Button-attention-solid--focus)", "outlineStyle-Button-attention-solid--focus": "var(--xmlui-outlineStyle-Button-attention-solid--focus)", "outlineOffset-Button-attention-solid--focus": "var(--xmlui-outlineOffset-Button-attention-solid--focus)", "borderColor-Button-attention-solid--hover": "var(--xmlui-borderColor-Button-attention-solid--hover)", "textColor-Button-attention-solid--hover": "var(--xmlui-textColor-Button-attention-solid--hover)", "backgroundColor-Button-attention-solid--hover": "var(--xmlui-backgroundColor-Button-attention-solid--hover)", "borderColor-Button-attention-solid--active": "var(--xmlui-borderColor-Button-attention-solid--active)", "textColor-Button-attention-solid--active": "var(--xmlui-textColor-Button-attention-solid--active)", "boxShadow-Button-attention-solid--active": "var(--xmlui-boxShadow-Button-attention-solid--active)", "backgroundColor-Button-attention-solid--active": "var(--xmlui-backgroundColor-Button-attention-solid--active)", "fontFamily-Button-primary-outlined": "var(--xmlui-fontFamily-Button-primary-outlined)", "fontSize-Button-primary-outlined": "var(--xmlui-fontSize-Button-primary-outlined)", "fontWeight-Button-primary-outlined": "var(--xmlui-fontWeight-Button-primary-outlined)", "borderRadius-Button-primary-outlined": "var(--xmlui-borderRadius-Button-primary-outlined)", "borderWidth-Button-primary-outlined": "var(--xmlui-borderWidth-Button-primary-outlined)", "borderColor-Button-primary-outlined": "var(--xmlui-borderColor-Button-primary-outlined)", "borderStyle-Button-primary-outlined": "var(--xmlui-borderStyle-Button-primary-outlined)", "textColor-Button-primary-outlined": "var(--xmlui-textColor-Button-primary-outlined)", "boxShadow-Button-primary-outlined": "var(--xmlui-boxShadow-Button-primary-outlined)", "outlineWidth-Button-primary-outlined--focus": "var(--xmlui-outlineWidth-Button-primary-outlined--focus)", "outlineColor-Button-primary-outlined--focus": "var(--xmlui-outlineColor-Button-primary-outlined--focus)", "outlineStyle-Button-primary-outlined--focus": "var(--xmlui-outlineStyle-Button-primary-outlined--focus)", "outlineOffset-Button-primary-outlined--focus": "var(--xmlui-outlineOffset-Button-primary-outlined--focus)", "borderColor-Button-primary-outlined--hover": "var(--xmlui-borderColor-Button-primary-outlined--hover)", "backgroundColor-Button-primary-outlined--hover": "var(--xmlui-backgroundColor-Button-primary-outlined--hover)", "textColor-Button-primary-outlined--hover": "var(--xmlui-textColor-Button-primary-outlined--hover)", "borderColor-Button-primary-outlined--active": "var(--xmlui-borderColor-Button-primary-outlined--active)", "backgroundColor-Button-primary-outlined--active": "var(--xmlui-backgroundColor-Button-primary-outlined--active)", "textColor-Button-primary-outlined--active": "var(--xmlui-textColor-Button-primary-outlined--active)", "fontFamily-Button-secondary-outlined": "var(--xmlui-fontFamily-Button-secondary-outlined)", "fontSize-Button-secondary-outlined": "var(--xmlui-fontSize-Button-secondary-outlined)", "fontWeight-Button-secondary-outlined": "var(--xmlui-fontWeight-Button-secondary-outlined)", "borderRadius-Button-secondary-outlined": "var(--xmlui-borderRadius-Button-secondary-outlined)", "borderWidth-Button-secondary-outlined": "var(--xmlui-borderWidth-Button-secondary-outlined)", "borderColor-Button-secondary-outlined": "var(--xmlui-borderColor-Button-secondary-outlined)", "borderStyle-Button-secondary-outlined": "var(--xmlui-borderStyle-Button-secondary-outlined)", "textColor-Button-secondary-outlined": "var(--xmlui-textColor-Button-secondary-outlined)", "boxShadow-Button-secondary-outlined": "var(--xmlui-boxShadow-Button-secondary-outlined)", "outlineWidth-Button-secondary-outlined--focus": "var(--xmlui-outlineWidth-Button-secondary-outlined--focus)", "outlineColor-Button-secondary-outlined--focus": "var(--xmlui-outlineColor-Button-secondary-outlined--focus)", "outlineStyle-Button-secondary-outlined--focus": "var(--xmlui-outlineStyle-Button-secondary-outlined--focus)", "outlineOffset-Button-secondary-outlined--focus": "var(--xmlui-outlineOffset-Button-secondary-outlined--focus)", "borderColor-Button-secondary-outlined--hover": "var(--xmlui-borderColor-Button-secondary-outlined--hover)", "backgroundColor-Button-secondary-outlined--hover": "var(--xmlui-backgroundColor-Button-secondary-outlined--hover)", "textColor-Button-secondary-outlined--hover": "var(--xmlui-textColor-Button-secondary-outlined--hover)", "borderColor-Button-secondary-outlined--active": "var(--xmlui-borderColor-Button-secondary-outlined--active)", "backgroundColor-Button-secondary-outlined--active": "var(--xmlui-backgroundColor-Button-secondary-outlined--active)", "textColor-Button-secondary-outlined--active": "var(--xmlui-textColor-Button-secondary-outlined--active)", "fontFamily-Button-attention-outlined": "var(--xmlui-fontFamily-Button-attention-outlined)", "fontSize-Button-attention-outlined": "var(--xmlui-fontSize-Button-attention-outlined)", "fontWeight-Button-attention-outlined": "var(--xmlui-fontWeight-Button-attention-outlined)", "borderRadius-Button-attention-outlined": "var(--xmlui-borderRadius-Button-attention-outlined)", "borderWidth-Button-attention-outlined": "var(--xmlui-borderWidth-Button-attention-outlined)", "borderColor-Button-attention-outlined": "var(--xmlui-borderColor-Button-attention-outlined)", "borderStyle-Button-attention-outlined": "var(--xmlui-borderStyle-Button-attention-outlined)", "textColor-Button-attention-outlined": "var(--xmlui-textColor-Button-attention-outlined)", "boxShadow-Button-attention-outlined": "var(--xmlui-boxShadow-Button-attention-outlined)", "outlineWidth-Button-attention-outlined--focus": "var(--xmlui-outlineWidth-Button-attention-outlined--focus)", "outlineColor-Button-attention-outlined--focus": "var(--xmlui-outlineColor-Button-attention-outlined--focus)", "outlineStyle-Button-attention-outlined--focus": "var(--xmlui-outlineStyle-Button-attention-outlined--focus)", "outlineOffset-Button-attention-outlined--focus": "var(--xmlui-outlineOffset-Button-attention-outlined--focus)", "borderColor-Button-attention-outlined--hover": "var(--xmlui-borderColor-Button-attention-outlined--hover)", "backgroundColor-Button-attention-outlined--hover": "var(--xmlui-backgroundColor-Button-attention-outlined--hover)", "textColor-Button-attention-outlined--hover": "var(--xmlui-textColor-Button-attention-outlined--hover)", "borderColor-Button-attention-outlined--active": "var(--xmlui-borderColor-Button-attention-outlined--active)", "backgroundColor-Button-attention-outlined--active": "var(--xmlui-backgroundColor-Button-attention-outlined--active)", "textColor-Button-attention-outlined--active": "var(--xmlui-textColor-Button-attention-outlined--active)", "fontFamily-Button-primary-ghost": "var(--xmlui-fontFamily-Button-primary-ghost)", "fontSize-Button-primary-ghost": "var(--xmlui-fontSize-Button-primary-ghost)", "fontWeight-Button-primary-ghost": "var(--xmlui-fontWeight-Button-primary-ghost)", "borderRadius-Button-primary-ghost": "var(--xmlui-borderRadius-Button-primary-ghost)", "borderWidth-Button-primary-ghost": "var(--xmlui-borderWidth-Button-primary-ghost)", "textColor-Button-primary-ghost": "var(--xmlui-textColor-Button-primary-ghost)", "outlineWidth-Button-primary-ghost--focus": "var(--xmlui-outlineWidth-Button-primary-ghost--focus)", "outlineColor-Button-primary-ghost--focus": "var(--xmlui-outlineColor-Button-primary-ghost--focus)", "outlineStyle-Button-primary-ghost--focus": "var(--xmlui-outlineStyle-Button-primary-ghost--focus)", "outlineOffset-Button-primary-ghost--focus": "var(--xmlui-outlineOffset-Button-primary-ghost--focus)", "backgroundColor-Button-primary-ghost--hover": "var(--xmlui-backgroundColor-Button-primary-ghost--hover)", "textColor-Button-primary-ghost--hover": "var(--xmlui-textColor-Button-primary-ghost--hover)", "backgroundColor-Button-primary-ghost--active": "var(--xmlui-backgroundColor-Button-primary-ghost--active)", "textColor-Button-primary-ghost--active": "var(--xmlui-textColor-Button-primary-ghost--active)", "fontFamily-Button-secondary-ghost": "var(--xmlui-fontFamily-Button-secondary-ghost)", "fontSize-Button-secondary-ghost": "var(--xmlui-fontSize-Button-secondary-ghost)", "fontWeight-Button-secondary-ghost": "var(--xmlui-fontWeight-Button-secondary-ghost)", "borderRadius-Button-secondary-ghost": "var(--xmlui-borderRadius-Button-secondary-ghost)", "borderWidth-Button-secondary-ghost": "var(--xmlui-borderWidth-Button-secondary-ghost)", "textColor-Button-secondary-ghost": "var(--xmlui-textColor-Button-secondary-ghost)", "outlineWidth-Button-secondary-ghost--focus": "var(--xmlui-outlineWidth-Button-secondary-ghost--focus)", "outlineColor-Button-secondary-ghost--focus": "var(--xmlui-outlineColor-Button-secondary-ghost--focus)", "outlineStyle-Button-secondary-ghost--focus": "var(--xmlui-outlineStyle-Button-secondary-ghost--focus)", "outlineOffset-Button-secondary-ghost--focus": "var(--xmlui-outlineOffset-Button-secondary-ghost--focus)", "backgroundColor-Button-secondary-ghost--hover": "var(--xmlui-backgroundColor-Button-secondary-ghost--hover)", "textColor-Button-secondary-ghost--hover": "var(--xmlui-textColor-Button-secondary-ghost--hover)", "backgroundColor-Button-secondary-ghost--active": "var(--xmlui-backgroundColor-Button-secondary-ghost--active)", "textColor-Button-secondary-ghost--active": "var(--xmlui-textColor-Button-secondary-ghost--active)", "fontFamily-Button-attention-ghost": "var(--xmlui-fontFamily-Button-attention-ghost)", "fontSize-Button-attention-ghost": "var(--xmlui-fontSize-Button-attention-ghost)", "fontWeight-Button-attention-ghost": "var(--xmlui-fontWeight-Button-attention-ghost)", "borderRadius-Button-attention-ghost": "var(--xmlui-borderRadius-Button-attention-ghost)", "borderWidth-Button-attention-ghost": "var(--xmlui-borderWidth-Button-attention-ghost)", "textColor-Button-attention-ghost": "var(--xmlui-textColor-Button-attention-ghost)", "outlineWidth-Button-attention-ghost--focus": "var(--xmlui-outlineWidth-Button-attention-ghost--focus)", "outlineColor-Button-attention-ghost--focus": "var(--xmlui-outlineColor-Button-attention-ghost--focus)", "outlineStyle-Button-attention-ghost--focus": "var(--xmlui-outlineStyle-Button-attention-ghost--focus)", "outlineOffset-Button-attention-ghost--focus": "var(--xmlui-outlineOffset-Button-attention-ghost--focus)", "backgroundColor-Button-attention-ghost--hover": "var(--xmlui-backgroundColor-Button-attention-ghost--hover)", "textColor-Button-attention-ghost--hover": "var(--xmlui-textColor-Button-attention-ghost--hover)", "backgroundColor-Button-attention-ghost--active": "var(--xmlui-backgroundColor-Button-attention-ghost--active)", "textColor-Button-attention-ghost--active": "var(--xmlui-textColor-Button-attention-ghost--active)"}'`;
1736
1734
  const button$2 = "_button_1c10z_14";
1737
- const alignStart = "_alignStart_1c10z_30";
1738
- const alignEnd = "_alignEnd_1c10z_33";
1735
+ const alignStart$1 = "_alignStart_1c10z_30";
1736
+ const alignEnd$1 = "_alignEnd_1c10z_33";
1739
1737
  const buttonHorizontal = "_buttonHorizontal_1c10z_39";
1740
1738
  const xs$1 = "_xs_1c10z_42";
1741
1739
  const sm$1 = "_sm_1c10z_49";
@@ -1754,8 +1752,8 @@ const ghostAttention = "_ghostAttention_1c10z_366";
1754
1752
  const styles$1g = {
1755
1753
  themeVars: themeVars$Y,
1756
1754
  button: button$2,
1757
- alignStart,
1758
- alignEnd,
1755
+ alignStart: alignStart$1,
1756
+ alignEnd: alignEnd$1,
1759
1757
  buttonHorizontal,
1760
1758
  xs: xs$1,
1761
1759
  sm: sm$1,
@@ -4850,6 +4848,7 @@ function App({
4850
4848
  name,
4851
4849
  className,
4852
4850
  applyDefaultContentPadding,
4851
+ registerComponentApi,
4853
4852
  ...rest
4854
4853
  }) {
4855
4854
  const { getThemeVar } = useTheme();
@@ -6249,7 +6248,7 @@ function hierarchyToNative(hierarchyData, fieldConfig) {
6249
6248
  treeItemsById
6250
6249
  };
6251
6250
  }
6252
- const TreeRow = memo(({ index, style: style2, data }) => {
6251
+ const TreeRow = memo(({ index, data }) => {
6253
6252
  const {
6254
6253
  nodes,
6255
6254
  toggleNode,
@@ -6306,7 +6305,7 @@ const TreeRow = memo(({ index, style: style2, data }) => {
6306
6305
  );
6307
6306
  const nodeWithState = treeItem;
6308
6307
  const isLoading = nodeWithState.loadingState === "loading";
6309
- return /* @__PURE__ */ jsx("div", { style: { ...style2, width: "auto", minWidth: "100%", display: "flex" }, children: /* @__PURE__ */ jsxs(
6308
+ return /* @__PURE__ */ jsx("div", { style: { width: "100%", display: "flex" }, children: /* @__PURE__ */ jsxs(
6310
6309
  "div",
6311
6310
  {
6312
6311
  className: classnames(styles$16.rowWrapper, {
@@ -6897,10 +6896,6 @@ const TreeComponent = memo((props) => {
6897
6896
  animateExpand,
6898
6897
  expandRotation
6899
6898
  ]);
6900
- const getItemKey = useCallback((index, data2) => {
6901
- const node = data2.nodes[index];
6902
- return (node == null ? void 0 : node.key) || (node == null ? void 0 : node.id) || `fallback-${index}`;
6903
- }, []);
6904
6899
  const treeApiMethods = useMemo(() => {
6905
6900
  return {
6906
6901
  // Expansion methods
@@ -7076,14 +7071,14 @@ const TreeComponent = memo((props) => {
7076
7071
  (item2) => String(item2.key) === String(nodeId)
7077
7072
  );
7078
7073
  if (nodeIndex >= 0 && listRef.current) {
7079
- listRef.current.scrollToItem(nodeIndex, "center");
7074
+ listRef.current.scrollToIndex(nodeIndex, { align: "center" });
7080
7075
  }
7081
7076
  }, 0);
7082
7077
  },
7083
7078
  scrollToItem: (nodeId) => {
7084
7079
  const nodeIndex = findNodeIndexById(nodeId);
7085
7080
  if (nodeIndex >= 0 && listRef.current) {
7086
- listRef.current.scrollToItem(nodeIndex, "center");
7081
+ listRef.current.scrollToIndex(nodeIndex, { align: "center" });
7087
7082
  }
7088
7083
  },
7089
7084
  appendNode: (parentNodeId, nodeData) => {
@@ -7400,19 +7395,8 @@ const TreeComponent = memo((props) => {
7400
7395
  onFocus: handleTreeFocus,
7401
7396
  onBlur: handleTreeBlur,
7402
7397
  onKeyDown: handleKeyDown,
7403
- children: /* @__PURE__ */ jsx(AutoSizer, { children: ({ width, height }) => /* @__PURE__ */ jsx(
7404
- FixedSizeList,
7405
- {
7406
- ref: listRef,
7407
- height,
7408
- itemCount: itemData.nodes.length,
7409
- itemData,
7410
- itemSize: itemHeight,
7411
- itemKey: getItemKey,
7412
- width,
7413
- children: TreeRow
7414
- }
7415
- ) })
7398
+ style: { height: "100%", overflow: "auto" },
7399
+ children: /* @__PURE__ */ jsx(Virtualizer, { ref: listRef, children: flatTreeData.map((node, index) => /* @__PURE__ */ jsx(TreeRow, { index, data: itemData }, node.key)) })
7416
7400
  }
7417
7401
  );
7418
7402
  });
@@ -10798,6 +10782,576 @@ const styles$13 = {
10798
10782
  breakKeep,
10799
10783
  breakHyphenate
10800
10784
  };
10785
+ function hashString(str) {
10786
+ let hash = 5381;
10787
+ let i = str.length;
10788
+ while (i) {
10789
+ hash = hash * 33 ^ str.charCodeAt(--i);
10790
+ }
10791
+ let s = (hash >>> 0).toString(36);
10792
+ return s;
10793
+ }
10794
+ function toKebabCase(str) {
10795
+ if (str.startsWith("--")) {
10796
+ return str;
10797
+ }
10798
+ return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
10799
+ }
10800
+ function stableJSONStringify(obj) {
10801
+ return JSON.stringify(obj);
10802
+ }
10803
+ class StyleRegistry {
10804
+ constructor() {
10805
+ this.cache = /* @__PURE__ */ new Map();
10806
+ this.rootClasses = /* @__PURE__ */ new Set();
10807
+ this.injected = /* @__PURE__ */ new Set();
10808
+ this.refCounts = /* @__PURE__ */ new Map();
10809
+ this.ssrHashes = /* @__PURE__ */ new Set();
10810
+ }
10811
+ register(styles2) {
10812
+ const key = stableJSONStringify(styles2);
10813
+ const styleHash = hashString(key);
10814
+ const cachedEntry = this.cache.get(styleHash);
10815
+ if (cachedEntry) {
10816
+ return cachedEntry;
10817
+ }
10818
+ const className = `css-${styleHash}`;
10819
+ const css = this._generateCss(`.${className}`, styles2);
10820
+ const entry = { className, styleHash, css };
10821
+ this.cache.set(styleHash, entry);
10822
+ return entry;
10823
+ }
10824
+ /**
10825
+ * [PRIVATE] Recursively generates CSS rules from a style object.
10826
+ * This is the new, more powerful engine.
10827
+ * @param selector - The CSS selector for the current context (e.g., '.css-123' or '&:hover').
10828
+ * @param styles - The style object to process.
10829
+ * @returns A string of CSS rules.
10830
+ */
10831
+ _generateCss(selector, styles2) {
10832
+ const directProps = [];
10833
+ const nestedRules = [];
10834
+ for (const key in styles2) {
10835
+ const value = styles2[key];
10836
+ if (typeof value === "object" && value !== null) {
10837
+ nestedRules.push(this._processNestedRule(selector, key, value));
10838
+ } else {
10839
+ directProps.push(`${toKebabCase(key)}:${value};`);
10840
+ }
10841
+ }
10842
+ let finalCss = "";
10843
+ if (directProps.length > 0) {
10844
+ finalCss += `${selector} {${directProps.join("")}}`;
10845
+ }
10846
+ finalCss += nestedRules.join("");
10847
+ return finalCss;
10848
+ }
10849
+ _processNestedRule(parentSelector, nestedKey, nestedStyles) {
10850
+ if (nestedKey.startsWith("@")) {
10851
+ return `${nestedKey}{${this._generateCss(parentSelector, nestedStyles)}}`;
10852
+ }
10853
+ const newSelector = nestedKey.replace(/&/g, parentSelector);
10854
+ return this._generateCss(newSelector, nestedStyles);
10855
+ }
10856
+ getSsrStyles() {
10857
+ const allCss = Array.from(this.cache.values()).map((entry) => entry.css).join("");
10858
+ return `@layer dynamic {${allCss}}`;
10859
+ }
10860
+ /**
10861
+ * Adds a class name to be applied to the <html> tag.
10862
+ */
10863
+ addRootClasses(classNames) {
10864
+ classNames.forEach((className) => {
10865
+ this.rootClasses.add(className);
10866
+ });
10867
+ }
10868
+ /**
10869
+ * Returns a space-separated string of all collected html classes.
10870
+ */
10871
+ getRootClasses() {
10872
+ return Array.from(this.rootClasses).join(" ");
10873
+ }
10874
+ // NEW: A helper to safely get the current reference count.
10875
+ getRefCount(styleHash) {
10876
+ return this.refCounts.get(styleHash) || 0;
10877
+ }
10878
+ /**
10879
+ * Increments the reference count for a given style hash.
10880
+ */
10881
+ incrementRef(styleHash) {
10882
+ const newCount = (this.refCounts.get(styleHash) || 0) + 1;
10883
+ this.refCounts.set(styleHash, newCount);
10884
+ }
10885
+ /**
10886
+ * Decrements the reference count for a given style hash.
10887
+ * @returns {number} The new reference count.
10888
+ */
10889
+ decrementRef(styleHash) {
10890
+ const currentCount = this.refCounts.get(styleHash) || 0;
10891
+ const newCount = Math.max(0, currentCount - 1);
10892
+ if (newCount > 0) {
10893
+ this.refCounts.set(styleHash, newCount);
10894
+ } else {
10895
+ this.refCounts.delete(styleHash);
10896
+ }
10897
+ return newCount;
10898
+ }
10899
+ }
10900
+ const IndexerContext = React__default.createContext({
10901
+ indexing: false
10902
+ });
10903
+ function useIndexerContext() {
10904
+ return useContext(IndexerContext);
10905
+ }
10906
+ const StyleContext = createContext(null);
10907
+ function StyleProvider({
10908
+ children,
10909
+ styleRegistry = new StyleRegistry(),
10910
+ forceNew = false
10911
+ // Optional prop to force a new registry
10912
+ }) {
10913
+ const parentRegistry = useContext(StyleContext);
10914
+ const [registry] = useState(() => {
10915
+ const newRegistry = styleRegistry;
10916
+ if (typeof window !== "undefined") {
10917
+ const ssrTag = document.querySelector('style[data-style-registry="true"]');
10918
+ const ssrHashes = ssrTag == null ? void 0 : ssrTag.getAttribute("data-ssr-hashes");
10919
+ if (ssrHashes) {
10920
+ let hashes = ssrHashes.split(",");
10921
+ newRegistry.ssrHashes = new Set(hashes);
10922
+ newRegistry.injected = new Set(hashes);
10923
+ }
10924
+ }
10925
+ return newRegistry;
10926
+ });
10927
+ if (parentRegistry && !forceNew) {
10928
+ return /* @__PURE__ */ jsx(Fragment, { children });
10929
+ }
10930
+ return /* @__PURE__ */ jsx(StyleContext.Provider, { value: registry, children });
10931
+ }
10932
+ function useStyleRegistry() {
10933
+ const registry = useContext(StyleContext);
10934
+ if (registry === null) {
10935
+ throw new Error("Component must be used within a StyleProvider");
10936
+ }
10937
+ return registry;
10938
+ }
10939
+ function useComponentStyle(styles2) {
10940
+ const rootStyle = useMemo(() => {
10941
+ return !styles2 || Object.keys(styles2).length === 0 ? EMPTY_OBJECT : {
10942
+ "&": styles2
10943
+ // "@container style(--screenSize: 1) or @container style(--screenSize: 2) ... etc": responsiveSizes,
10944
+ };
10945
+ }, [styles2]);
10946
+ return useStyles(rootStyle);
10947
+ }
10948
+ const StyleInjectionTargetContext = createContext(null);
10949
+ function useDomRoot() {
10950
+ const domRoot = useContext(StyleInjectionTargetContext);
10951
+ return domRoot;
10952
+ }
10953
+ function useStyles(styles2, { prepend } = EMPTY_OBJECT) {
10954
+ const { indexing } = useIndexerContext();
10955
+ const domRoot = useDomRoot();
10956
+ const injectionTarget = typeof document === "undefined" ? null : domRoot instanceof ShadowRoot ? domRoot : document.head;
10957
+ const registry = useStyleRegistry();
10958
+ const { className, styleHash } = useMemo(() => {
10959
+ if (indexing || !styles2 || styles2 === EMPTY_OBJECT || Object.keys(styles2).length === 0) {
10960
+ return { className: void 0, styleHash: void 0 };
10961
+ }
10962
+ return registry.register(styles2);
10963
+ }, [indexing, registry, styles2]);
10964
+ useInsertionEffect(() => {
10965
+ if (!styleHash || registry.injected.has(styleHash)) {
10966
+ return;
10967
+ }
10968
+ const { css } = registry.cache.get(styleHash) || {};
10969
+ if (css) {
10970
+ const styleElement = document.createElement("style");
10971
+ styleElement.setAttribute("data-style-hash", styleHash);
10972
+ styleElement.innerHTML = `@layer dynamic {
10973
+ ${css}
10974
+ }`;
10975
+ if (prepend) {
10976
+ injectionTarget.insertBefore(styleElement, injectionTarget.firstChild.nextSibling);
10977
+ } else {
10978
+ injectionTarget.appendChild(styleElement);
10979
+ }
10980
+ registry.injected.add(styleHash);
10981
+ }
10982
+ }, [registry, styleHash, injectionTarget]);
10983
+ useEffect(() => {
10984
+ if (!styleHash) {
10985
+ return;
10986
+ }
10987
+ registry.incrementRef(styleHash);
10988
+ return () => {
10989
+ registry.decrementRef(styleHash);
10990
+ setTimeout(() => {
10991
+ var _a2;
10992
+ if (registry.getRefCount(styleHash) === 0 && !registry.ssrHashes.has(styleHash)) {
10993
+ registry.injected.delete(styleHash);
10994
+ (_a2 = injectionTarget.querySelector(`style[data-style-hash="${styleHash}"]`)) == null ? void 0 : _a2.remove();
10995
+ }
10996
+ }, 0);
10997
+ };
10998
+ }, [injectionTarget, registry, styleHash]);
10999
+ return className;
11000
+ }
11001
+ const THEME_VAR_PREFIX = "xmlui";
11002
+ const themeVarCapturesRegex = /(\$[a-zA-Z][a-zA-Z0-9-_]*)/g;
11003
+ const booleanRegex = /^(true|false)$/;
11004
+ const starSizeRegex = /^\d*\*$/;
11005
+ const defaultCompResult = {
11006
+ cssProps: {},
11007
+ issues: /* @__PURE__ */ new Set()
11008
+ };
11009
+ function resolveLayoutProps(layoutProps = EMPTY_OBJECT, layoutContext) {
11010
+ const result = {
11011
+ cssProps: {},
11012
+ issues: /* @__PURE__ */ new Set()
11013
+ };
11014
+ if (!!getOrientation(layoutContext)) {
11015
+ result.cssProps.flexShrink = 0;
11016
+ }
11017
+ collectCss("width");
11018
+ const horizontalStarSize = getHorizontalStarSize(result.cssProps.width, layoutContext);
11019
+ if (horizontalStarSize !== null) {
11020
+ result.cssProps.flex = horizontalStarSize;
11021
+ result.cssProps.flexShrink = 1;
11022
+ }
11023
+ collectCss("minWidth");
11024
+ collectCss("maxWidth");
11025
+ collectCss("height");
11026
+ const verticalStarSize = getVerticalStarSize(result.cssProps.height, layoutContext);
11027
+ if (verticalStarSize !== null) {
11028
+ result.cssProps.flex = verticalStarSize;
11029
+ result.cssProps.flexShrink = 1;
11030
+ }
11031
+ collectCss("minHeight");
11032
+ collectCss("maxHeight");
11033
+ collectCss("top");
11034
+ collectCss("right");
11035
+ collectCss("bottom");
11036
+ collectCss("left");
11037
+ collectCss("gap");
11038
+ collectCss("padding");
11039
+ const paddingHorizontal = transformLayoutValue("paddingHorizontal");
11040
+ if (paddingHorizontal) {
11041
+ result.cssProps.paddingLeft = paddingHorizontal;
11042
+ result.cssProps.paddingRight = paddingHorizontal;
11043
+ }
11044
+ collectCss("paddingRight");
11045
+ collectCss("paddingLeft");
11046
+ const paddingVertical = transformLayoutValue("paddingVertical");
11047
+ if (paddingVertical) {
11048
+ result.cssProps.paddingTop = paddingVertical;
11049
+ result.cssProps.paddingBottom = paddingVertical;
11050
+ }
11051
+ collectCss("paddingTop");
11052
+ collectCss("paddingBottom");
11053
+ collectCss("margin");
11054
+ const marginHorizontal = transformLayoutValue("marginHorizontal");
11055
+ if (marginHorizontal) {
11056
+ result.cssProps.marginLeft = marginHorizontal;
11057
+ result.cssProps.marginRight = marginHorizontal;
11058
+ }
11059
+ collectCss("marginRight");
11060
+ collectCss("marginLeft");
11061
+ const marginVertical = transformLayoutValue("marginVertical");
11062
+ if (marginVertical) {
11063
+ result.cssProps.marginTop = marginVertical;
11064
+ result.cssProps.marginBottom = marginVertical;
11065
+ }
11066
+ collectCss("marginTop");
11067
+ collectCss("marginBottom");
11068
+ collectCss("border");
11069
+ const horizontalBorder = transformLayoutValue("borderHorizontal");
11070
+ if (horizontalBorder) {
11071
+ result.cssProps.borderLeft = horizontalBorder;
11072
+ result.cssProps.borderRight = horizontalBorder;
11073
+ }
11074
+ collectCss("borderRight");
11075
+ collectCss("borderLeft");
11076
+ const verticalBorder = transformLayoutValue("borderVertical");
11077
+ if (verticalBorder) {
11078
+ result.cssProps.borderTop = verticalBorder;
11079
+ result.cssProps.borderBottom = verticalBorder;
11080
+ }
11081
+ collectCss("borderTop");
11082
+ collectCss("borderBottom");
11083
+ collectCss("borderColor");
11084
+ collectCss("borderStyle");
11085
+ collectCss("borderWidth");
11086
+ collectCss("borderRadius");
11087
+ collectCss("radiusTopLeft", "borderTopLeftRadius");
11088
+ collectCss("radiusTopRight", "borderTopRightRadius");
11089
+ collectCss("radiusBottomLeft", "borderBottomLeftRadius");
11090
+ collectCss("radiusBottomRight", "borderBottomRightRadius");
11091
+ collectCss("color");
11092
+ collectCss("fontFamily");
11093
+ collectCss("fontSize");
11094
+ collectCss("fontWeight");
11095
+ collectCss("fontStyle");
11096
+ collectCss("fontVariant");
11097
+ collectCss("lineBreak");
11098
+ collectCss("textDecoration");
11099
+ collectCss("textDecorationLine");
11100
+ collectCss("textDecorationColor");
11101
+ collectCss("textDecorationStyle");
11102
+ collectCss("textDecorationThickness");
11103
+ collectCss("textIndent");
11104
+ collectCss("textShadow");
11105
+ collectCss("textUnderlineOffset");
11106
+ collectCss("userSelect");
11107
+ collectCss("letterSpacing");
11108
+ collectCss("textTransform");
11109
+ collectCss("lineHeight");
11110
+ collectCss("textAlign");
11111
+ collectCss("textAlignLast");
11112
+ collectCss("textWrap");
11113
+ collectCss("wordBreak");
11114
+ collectCss("wordSpacing");
11115
+ collectCss("wordWrap");
11116
+ collectCss("writingMode");
11117
+ collectCss("backgroundColor");
11118
+ collectCss("background");
11119
+ collectCss("boxShadow");
11120
+ collectCss("direction");
11121
+ collectCss("overflowX");
11122
+ collectCss("overflowY");
11123
+ collectCss("zIndex");
11124
+ collectCss("opacity");
11125
+ collectCss("zoom");
11126
+ collectCss("cursor");
11127
+ collectCss("whiteSpace");
11128
+ collectCss("transform");
11129
+ collectCss("outline");
11130
+ collectCss("outlineWidth");
11131
+ collectCss("outlineColor");
11132
+ collectCss("outlineStyle");
11133
+ collectCss("outlineOffset");
11134
+ const wrapContent = transformLayoutValue("wrapContent");
11135
+ if (wrapContent) {
11136
+ result.cssProps.flexWrap = wrapContent === "true" ? "wrap" : "nowrap";
11137
+ }
11138
+ collectCss("canShrink", "flexShrink");
11139
+ const canShrink = transformLayoutValue("canShrink");
11140
+ if (canShrink) {
11141
+ result.cssProps.flexShrink = canShrink === "true" ? 1 : 0;
11142
+ }
11143
+ if (isEmpty(result.cssProps) && isEmpty(result.issues)) {
11144
+ return defaultCompResult;
11145
+ }
11146
+ return result;
11147
+ function transformLayoutValue(prop) {
11148
+ var _a2, _b;
11149
+ const defValue = resolveSingleValue();
11150
+ if (((_a2 = layoutContext == null ? void 0 : layoutContext.mediaSize) == null ? void 0 : _a2.sizeIndex) !== void 0) {
11151
+ const sizeIndex = (_b = layoutContext.mediaSize) == null ? void 0 : _b.sizeIndex;
11152
+ const xsValue = resolveSingleValue("xs");
11153
+ const smValue = resolveSingleValue("sm");
11154
+ const mdValue = resolveSingleValue("md");
11155
+ const lgValue = resolveSingleValue("lg");
11156
+ const xlValue = resolveSingleValue("xl");
11157
+ const xxlValue = resolveSingleValue("xxl");
11158
+ let mergedValue;
11159
+ switch (sizeIndex) {
11160
+ case 0:
11161
+ mergedValue = xsValue ?? smValue ?? mdValue;
11162
+ break;
11163
+ case 1:
11164
+ mergedValue = smValue ?? mdValue;
11165
+ break;
11166
+ case 2:
11167
+ mergedValue = mdValue;
11168
+ break;
11169
+ case 3:
11170
+ mergedValue = lgValue;
11171
+ break;
11172
+ case 4:
11173
+ mergedValue = xlValue ?? lgValue;
11174
+ break;
11175
+ case 5:
11176
+ mergedValue = xxlValue ?? xlValue ?? lgValue;
11177
+ break;
11178
+ }
11179
+ return mergedValue ?? defValue;
11180
+ }
11181
+ return defValue;
11182
+ function resolveSingleValue(sizeTag = "") {
11183
+ const fullProp = sizeTag ? `${prop}-${sizeTag}` : prop;
11184
+ let singleInput = layoutProps[fullProp];
11185
+ if (singleInput == void 0) {
11186
+ return;
11187
+ }
11188
+ if (typeof singleInput === "string") {
11189
+ singleInput = singleInput.trim();
11190
+ } else {
11191
+ singleInput = singleInput.toString();
11192
+ }
11193
+ const value = singleInput ? singleInput.replace(
11194
+ themeVarCapturesRegex,
11195
+ (match) => toCssVar(match.trim())
11196
+ ) : void 0;
11197
+ if (singleInput !== value) {
11198
+ return value;
11199
+ }
11200
+ const propPatterns = layoutPatterns[prop];
11201
+ if (!propPatterns || propPatterns.length === 0) {
11202
+ return value;
11203
+ }
11204
+ for (const pattern of propPatterns) {
11205
+ if (pattern.test(value)) {
11206
+ return value;
11207
+ }
11208
+ }
11209
+ result.issues.add(fullProp);
11210
+ return value;
11211
+ }
11212
+ }
11213
+ function collectCss(prop, propCssName = "") {
11214
+ const value = transformLayoutValue(prop);
11215
+ if (value) {
11216
+ result.cssProps[propCssName || prop] = value;
11217
+ }
11218
+ }
11219
+ function getHorizontalStarSize(size, layoutContext2) {
11220
+ if (!size) return null;
11221
+ const orientation = getOrientation(layoutContext2);
11222
+ return orientation === "horizontal" && starSizeRegex.test(size.toString()) ? getStarSizeNumber(size.toString()) : null;
11223
+ }
11224
+ function getVerticalStarSize(size, layoutContext2) {
11225
+ if (!size) return null;
11226
+ const orientation = getOrientation(layoutContext2);
11227
+ return orientation === "vertical" && starSizeRegex.test(size.toString()) ? getStarSizeNumber(size.toString()) : null;
11228
+ }
11229
+ function getStarSizeNumber(input2) {
11230
+ if (starSizeRegex.test(input2)) {
11231
+ const numberPart = input2.slice(0, -1);
11232
+ return numberPart === "" ? 1 : parseInt(numberPart, 10);
11233
+ }
11234
+ return null;
11235
+ }
11236
+ function getOrientation(layoutContext2) {
11237
+ if (!layoutContext2) return;
11238
+ let orientation = (layoutContext2 == null ? void 0 : layoutContext2.type) === "Stack" && (layoutContext2 == null ? void 0 : layoutContext2.orientation);
11239
+ return orientation == null ? void 0 : orientation.toString();
11240
+ }
11241
+ }
11242
+ function toCssVar(c) {
11243
+ return `var(--${THEME_VAR_PREFIX}-${c.substring(1)})`;
11244
+ }
11245
+ const layoutPatterns = {
11246
+ // --- Dimensions
11247
+ width: [],
11248
+ minWidth: [],
11249
+ maxWidth: [],
11250
+ height: [],
11251
+ minHeight: [],
11252
+ maxHeight: [],
11253
+ gap: [],
11254
+ // --- Positions
11255
+ top: [],
11256
+ right: [],
11257
+ bottom: [],
11258
+ left: [],
11259
+ // --- Border
11260
+ border: [],
11261
+ borderTop: [],
11262
+ borderRight: [],
11263
+ borderBottom: [],
11264
+ borderLeft: [],
11265
+ borderColor: [],
11266
+ borderStyle: [],
11267
+ borderWidth: [],
11268
+ borderHorizontal: [],
11269
+ borderVertical: [],
11270
+ // --- Border radius
11271
+ borderRadius: [],
11272
+ radiusTopLeft: [],
11273
+ radiusTopRight: [],
11274
+ radiusBottomLeft: [],
11275
+ radiusBottomRight: [],
11276
+ // --- Padding
11277
+ padding: [],
11278
+ paddingHorizontal: [],
11279
+ paddingVertical: [],
11280
+ paddingTop: [],
11281
+ paddingRight: [],
11282
+ paddingBottom: [],
11283
+ paddingLeft: [],
11284
+ // --- Margin
11285
+ margin: [],
11286
+ marginHorizontal: [],
11287
+ marginVertical: [],
11288
+ marginTop: [],
11289
+ marginRight: [],
11290
+ marginBottom: [],
11291
+ marginLeft: [],
11292
+ // --- Other
11293
+ backgroundColor: [],
11294
+ background: [],
11295
+ boxShadow: [],
11296
+ direction: [],
11297
+ overflowX: [],
11298
+ overflowY: [],
11299
+ zIndex: [],
11300
+ opacity: [],
11301
+ // --- Typography
11302
+ color: [],
11303
+ fontFamily: [],
11304
+ fontSize: [],
11305
+ fontWeight: [],
11306
+ fontStyle: [booleanRegex],
11307
+ fontVariant: [],
11308
+ lineBreak: [],
11309
+ textDecoration: [],
11310
+ userSelect: [],
11311
+ letterSpacing: [],
11312
+ textTransform: [],
11313
+ lineHeight: [],
11314
+ textAlign: [],
11315
+ textWrap: [],
11316
+ textAlignLast: [],
11317
+ textIndent: [],
11318
+ textShadow: [],
11319
+ wordBreak: [],
11320
+ wordSpacing: [],
11321
+ wordWrap: [],
11322
+ writingMode: [],
11323
+ // --- Content rendering
11324
+ wrapContent: [],
11325
+ canShrink: [],
11326
+ // --- Other
11327
+ cursor: [],
11328
+ zoom: [],
11329
+ whiteSpace: [],
11330
+ textDecorationLine: [],
11331
+ textDecorationColor: [],
11332
+ textDecorationStyle: [],
11333
+ textDecorationThickness: [],
11334
+ textUnderlineOffset: [],
11335
+ transform: [],
11336
+ // --- Outline
11337
+ outline: [],
11338
+ outlineWidth: [],
11339
+ outlineColor: [],
11340
+ outlineStyle: [],
11341
+ outlineOffset: [],
11342
+ // --- Animation
11343
+ transition: []
11344
+ };
11345
+ const customVariantCache = /* @__PURE__ */ new Map();
11346
+ function setCustomVariantCache(variant, entry) {
11347
+ customVariantCache.set(variant, {
11348
+ ...entry,
11349
+ createdAt: Date.now()
11350
+ });
11351
+ }
11352
+ function hasCustomVariantCache(variant) {
11353
+ return customVariantCache.has(variant);
11354
+ }
10801
11355
  const defaultProps$11 = {
10802
11356
  maxLines: 0,
10803
11357
  preserveLinebreaks: false,
@@ -10838,6 +11392,56 @@ const Text = forwardRef(function Text2({
10838
11392
  if (!variant || !TextVariantElement[variant]) return "div";
10839
11393
  return TextVariantElement[variant];
10840
11394
  }, [variant]);
11395
+ const isCustomVariant = useMemo(() => {
11396
+ return variant && !TextVariantElement[variant];
11397
+ }, [variant]);
11398
+ const variantSpec = useMemo(
11399
+ () => {
11400
+ if (!isCustomVariant) return EMPTY_OBJECT;
11401
+ const subject = `-Text-${variant}`;
11402
+ const cssInput = {
11403
+ color: toCssVar(`$textColor${subject}`),
11404
+ "font-family": toCssVar(`$fontFamily${subject}`),
11405
+ "font-size": toCssVar(`$fontSize${subject}`),
11406
+ "font-style": toCssVar(`$fontStyle${subject}`),
11407
+ "font-weight": toCssVar(`$fontWeight${subject}`),
11408
+ "font-stretch": toCssVar(`$fontStretch${subject}`),
11409
+ "text-decoration-line": toCssVar(`$textDecorationLine${subject}`),
11410
+ "text-decoration-color": toCssVar(`$textDecorationColor${subject}`),
11411
+ "text-decoration-style": toCssVar(`$textDecorationStyle${subject}`),
11412
+ "text-decoration-thickness": toCssVar(`$textDecorationThickness${subject}`),
11413
+ "text-underline-offset": toCssVar(`$textUnderlineOffset${subject}`),
11414
+ "line-height": toCssVar(`$lineHeight${subject}`),
11415
+ "background-color": toCssVar(`$backgroundColor${subject}`),
11416
+ "text-transform": toCssVar(`$textTransform${subject}`),
11417
+ "letter-spacing": toCssVar(`$letterSpacing${subject}`),
11418
+ "word-spacing": toCssVar(`$wordSpacing${subject}`),
11419
+ "text-shadow": toCssVar(`$textShadow${subject}`),
11420
+ "text-indent": toCssVar(`$textIndent${subject}`),
11421
+ "text-align": toCssVar(`$textAlign${subject}`),
11422
+ "text-align-last": toCssVar(`$textAlignLast${subject}`),
11423
+ "word-break": toCssVar(`$wordBreak${subject}`),
11424
+ "word-wrap": toCssVar(`$wordWrap${subject}`),
11425
+ direction: toCssVar(`$direction${subject}`),
11426
+ "writing-mode": toCssVar(`$writingMode${subject}`),
11427
+ "line-break": toCssVar(`$lineBreak${subject}`)
11428
+ };
11429
+ return cssInput;
11430
+ },
11431
+ [isCustomVariant, variant]
11432
+ );
11433
+ const customVariantClassName = useComponentStyle(variantSpec);
11434
+ useEffect(() => {
11435
+ if (isCustomVariant && variant && customVariantClassName) {
11436
+ if (!hasCustomVariantCache(variant)) {
11437
+ setCustomVariantCache(variant, {
11438
+ className: customVariantClassName,
11439
+ cssText: ""
11440
+ // Will be populated when CSS generation is implemented
11441
+ });
11442
+ }
11443
+ }
11444
+ }, [isCustomVariant, variant, customVariantClassName]);
10841
11445
  const overflowClasses = useMemo(() => {
10842
11446
  const classes = {};
10843
11447
  if (!overflowMode) {
@@ -10893,7 +11497,8 @@ const Text = forwardRef(function Text2({
10893
11497
  className: classnames(
10894
11498
  syntaxHighlightClasses,
10895
11499
  styles$13.text,
10896
- styles$13[variant || "default"],
11500
+ // Use custom variant className if it's a custom variant, otherwise use predefined variant style
11501
+ isCustomVariant ? customVariantClassName : styles$13[variant || "default"],
10897
11502
  {
10898
11503
  [styles$13.preserveLinebreaks]: preserveLinebreaks2,
10899
11504
  ...overflowClasses,
@@ -10920,7 +11525,7 @@ const TextMd = createMetadata({
10920
11525
  `The text to be displayed. This value can also be set via nesting the text into the \`${COMP$1n}\` component.`
10921
11526
  ),
10922
11527
  variant: {
10923
- description: "An optional string value that provides named presets for text variants with a unique combination of font style, weight, size, color, and other parameters. If not defined, the text uses the current style of its context.",
11528
+ description: "An optional string value that provides named presets for text variants with a unique combination of font style, weight, size, color, and other parameters. If not defined, the text uses the current style of its context. In addition to predefined variants, you can specify custom variant names and style them using theme variables with the pattern `{cssProperty}-Text-{variantName}` (e.g., `textColor-Text-brandTitle`, `fontSize-Text-highlight`). See the documentation for a complete list of supported CSS properties.",
10924
11529
  availableValues: variantOptionsMd
10925
11530
  },
10926
11531
  maxLines: d(
@@ -11113,7 +11718,7 @@ const headerRow = "_headerRow_1ylgd_97";
11113
11718
  const columnCell = "_columnCell_1ylgd_101";
11114
11719
  const cell = "_cell_1ylgd_102";
11115
11720
  const alignTop = "_alignTop_1ylgd_110";
11116
- const alignCenter = "_alignCenter_1ylgd_114";
11721
+ const alignCenter$1 = "_alignCenter_1ylgd_114";
11117
11722
  const alignBottom = "_alignBottom_1ylgd_118";
11118
11723
  const table = "_table_1ylgd_46";
11119
11724
  const row$1 = "_row_1ylgd_126";
@@ -11142,7 +11747,7 @@ const styles$12 = {
11142
11747
  columnCell,
11143
11748
  cell,
11144
11749
  alignTop,
11145
- alignCenter,
11750
+ alignCenter: alignCenter$1,
11146
11751
  alignBottom,
11147
11752
  table,
11148
11753
  row: row$1,
@@ -11223,458 +11828,114 @@ const SelectionStore = ({
11223
11828
  return {
11224
11829
  selectedItems,
11225
11830
  setSelectedRowIds,
11226
- refreshSelection,
11227
- idKey
11228
- };
11229
- }, [refreshSelection, selectedItems, setSelectedRowIds, idKey]);
11230
- return /* @__PURE__ */ jsx(SelectionContext.Provider, { value: contextValue2, children });
11231
- };
11232
- const SelectionContext = React__default.createContext(null);
11233
- function useSelectionContext() {
11234
- return useContext(SelectionContext);
11235
- }
11236
- const parsedHVarCache = {};
11237
- function parseHVar(input2) {
11238
- if (parsedHVarCache[input2] !== void 0) {
11239
- return parsedHVarCache[input2];
11240
- }
11241
- const parts = input2.split(/-[A-Z]+/);
11242
- if (parts.length !== 2) {
11243
- parsedHVarCache[input2] = null;
11244
- return parsedHVarCache[input2];
11245
- }
11246
- const firstPart = parts[0];
11247
- const classessParts = firstPart.split(":");
11248
- const attribute = classessParts[classessParts.length - 1];
11249
- const classes = classessParts.length > 1 ? classessParts.slice(0, classessParts.length - 1) : [];
11250
- const secondPart = input2.substring(firstPart.length + 1);
11251
- const [compName, ...rest] = secondPart.split("-");
11252
- const traitsAndStates = secondPart.substring(compName.length).split("--");
11253
- const states = [];
11254
- const traits = [];
11255
- traitsAndStates.forEach((part) => {
11256
- if (!part.includes("-") && part) {
11257
- states.push(part);
11258
- } else {
11259
- part.split("-").forEach((trait) => {
11260
- if (trait) {
11261
- traits.push(trait);
11262
- }
11263
- });
11264
- }
11265
- });
11266
- parsedHVarCache[input2] = {
11267
- classes,
11268
- attribute,
11269
- component: compName,
11270
- traits,
11271
- states
11272
- };
11273
- return parsedHVarCache[input2];
11274
- }
11275
- function createCombinations(arr = []) {
11276
- const stateCombinations = [];
11277
- for (let i = 1; i <= arr.length; i++) {
11278
- for (let j = 0; j <= arr.length - i; j++) {
11279
- stateCombinations.push(arr.slice(j, j + i));
11280
- }
11281
- }
11282
- return stateCombinations.sort((a, b) => b.length - a.length);
11283
- }
11284
- function matchThemeVar(themeVar, availableThemeVars = []) {
11285
- const hvar = parseHVar(themeVar);
11286
- if (!hvar) {
11287
- return;
11288
- }
11289
- const stateCombinations = createCombinations(hvar.states);
11290
- const traitCombinations = createCombinations(hvar.traits);
11291
- const sortedTraitCombinations = [];
11292
- traitCombinations.forEach((traitComb) => {
11293
- let result = "";
11294
- traitComb.forEach((t) => {
11295
- result = `${result}-${t}`;
11296
- });
11297
- sortedTraitCombinations.push(result);
11298
- });
11299
- sortedTraitCombinations.push("");
11300
- const sortedStateCombinations = [];
11301
- stateCombinations.forEach((stateComb) => {
11302
- let result = "";
11303
- stateComb.forEach((s) => {
11304
- result = `${result}--${s}`;
11305
- });
11306
- sortedStateCombinations.push(result);
11307
- });
11308
- sortedStateCombinations.push("");
11309
- const componentParts = [hvar.component, ...hvar.classes];
11310
- const from = [];
11311
- sortedStateCombinations.forEach((stateComb) => {
11312
- sortedTraitCombinations.forEach((traitComb) => {
11313
- componentParts.forEach((componentPart) => {
11314
- from.push(`${hvar.attribute}-${componentPart}${traitComb}${stateComb}`);
11315
- });
11316
- });
11317
- });
11318
- let matchedValue;
11319
- for (let i = availableThemeVars.length - 1; i >= 0; i--) {
11320
- const themeVars2 = availableThemeVars[i];
11321
- let foundValue = from.find((themeVar2) => themeVars2[themeVar2] !== void 0);
11322
- if (foundValue) {
11323
- matchedValue = foundValue;
11324
- break;
11325
- }
11326
- }
11327
- const forValue = from[0];
11328
- return {
11329
- forValue,
11330
- matchedValue,
11331
- from
11332
- };
11333
- }
11334
- const THEME_VAR_PREFIX = "xmlui";
11335
- const themeVarCapturesRegex = /(\$[a-zA-Z][a-zA-Z0-9-_]*)/g;
11336
- const booleanRegex = /^(true|false)$/;
11337
- const starSizeRegex = /^\d*\*$/;
11338
- const defaultCompResult = {
11339
- cssProps: {},
11340
- issues: /* @__PURE__ */ new Set()
11341
- };
11342
- function resolveLayoutProps(layoutProps = EMPTY_OBJECT, layoutContext) {
11343
- const result = {
11344
- cssProps: {},
11345
- issues: /* @__PURE__ */ new Set()
11346
- };
11347
- if (!!getOrientation(layoutContext)) {
11348
- result.cssProps.flexShrink = 0;
11349
- }
11350
- collectCss("width");
11351
- const horizontalStarSize = getHorizontalStarSize(result.cssProps.width, layoutContext);
11352
- if (horizontalStarSize !== null) {
11353
- result.cssProps.flex = horizontalStarSize;
11354
- result.cssProps.flexShrink = 1;
11355
- }
11356
- collectCss("minWidth");
11357
- collectCss("maxWidth");
11358
- collectCss("height");
11359
- const verticalStarSize = getVerticalStarSize(result.cssProps.height, layoutContext);
11360
- if (verticalStarSize !== null) {
11361
- result.cssProps.flex = verticalStarSize;
11362
- result.cssProps.flexShrink = 1;
11363
- }
11364
- collectCss("minHeight");
11365
- collectCss("maxHeight");
11366
- collectCss("top");
11367
- collectCss("right");
11368
- collectCss("bottom");
11369
- collectCss("left");
11370
- collectCss("gap");
11371
- collectCss("padding");
11372
- const paddingHorizontal = transformLayoutValue("paddingHorizontal");
11373
- if (paddingHorizontal) {
11374
- result.cssProps.paddingLeft = paddingHorizontal;
11375
- result.cssProps.paddingRight = paddingHorizontal;
11376
- }
11377
- collectCss("paddingRight");
11378
- collectCss("paddingLeft");
11379
- const paddingVertical = transformLayoutValue("paddingVertical");
11380
- if (paddingVertical) {
11381
- result.cssProps.paddingTop = paddingVertical;
11382
- result.cssProps.paddingBottom = paddingVertical;
11383
- }
11384
- collectCss("paddingTop");
11385
- collectCss("paddingBottom");
11386
- collectCss("margin");
11387
- const marginHorizontal = transformLayoutValue("marginHorizontal");
11388
- if (marginHorizontal) {
11389
- result.cssProps.marginLeft = marginHorizontal;
11390
- result.cssProps.marginRight = marginHorizontal;
11391
- }
11392
- collectCss("marginRight");
11393
- collectCss("marginLeft");
11394
- const marginVertical = transformLayoutValue("marginVertical");
11395
- if (marginVertical) {
11396
- result.cssProps.marginTop = marginVertical;
11397
- result.cssProps.marginBottom = marginVertical;
11398
- }
11399
- collectCss("marginTop");
11400
- collectCss("marginBottom");
11401
- collectCss("border");
11402
- const horizontalBorder = transformLayoutValue("borderHorizontal");
11403
- if (horizontalBorder) {
11404
- result.cssProps.borderLeft = horizontalBorder;
11405
- result.cssProps.borderRight = horizontalBorder;
11406
- }
11407
- collectCss("borderRight");
11408
- collectCss("borderLeft");
11409
- const verticalBorder = transformLayoutValue("borderVertical");
11410
- if (verticalBorder) {
11411
- result.cssProps.borderTop = verticalBorder;
11412
- result.cssProps.borderBottom = verticalBorder;
11413
- }
11414
- collectCss("borderTop");
11415
- collectCss("borderBottom");
11416
- collectCss("borderColor");
11417
- collectCss("borderStyle");
11418
- collectCss("borderWidth");
11419
- collectCss("borderRadius");
11420
- collectCss("radiusTopLeft", "borderTopLeftRadius");
11421
- collectCss("radiusTopRight", "borderTopRightRadius");
11422
- collectCss("radiusBottomLeft", "borderBottomLeftRadius");
11423
- collectCss("radiusBottomRight", "borderBottomRightRadius");
11424
- collectCss("color");
11425
- collectCss("fontFamily");
11426
- collectCss("fontSize");
11427
- collectCss("fontWeight");
11428
- collectCss("fontStyle");
11429
- collectCss("fontVariant");
11430
- collectCss("lineBreak");
11431
- collectCss("textDecoration");
11432
- collectCss("textDecorationLine");
11433
- collectCss("textDecorationColor");
11434
- collectCss("textDecorationStyle");
11435
- collectCss("textDecorationThickness");
11436
- collectCss("textIndent");
11437
- collectCss("textShadow");
11438
- collectCss("textUnderlineOffset");
11439
- collectCss("userSelect");
11440
- collectCss("letterSpacing");
11441
- collectCss("textTransform");
11442
- collectCss("lineHeight");
11443
- collectCss("textAlign");
11444
- collectCss("textAlignLast");
11445
- collectCss("textWrap");
11446
- collectCss("wordBreak");
11447
- collectCss("wordSpacing");
11448
- collectCss("wordWrap");
11449
- collectCss("writingMode");
11450
- collectCss("backgroundColor");
11451
- collectCss("background");
11452
- collectCss("boxShadow");
11453
- collectCss("direction");
11454
- collectCss("overflowX");
11455
- collectCss("overflowY");
11456
- collectCss("zIndex");
11457
- collectCss("opacity");
11458
- collectCss("zoom");
11459
- collectCss("cursor");
11460
- collectCss("whiteSpace");
11461
- collectCss("transform");
11462
- collectCss("outline");
11463
- collectCss("outlineWidth");
11464
- collectCss("outlineColor");
11465
- collectCss("outlineStyle");
11466
- collectCss("outlineOffset");
11467
- const wrapContent = transformLayoutValue("wrapContent");
11468
- if (wrapContent) {
11469
- result.cssProps.flexWrap = wrapContent === "true" ? "wrap" : "nowrap";
11470
- }
11471
- collectCss("canShrink", "flexShrink");
11472
- const canShrink = transformLayoutValue("canShrink");
11473
- if (canShrink) {
11474
- result.cssProps.flexShrink = canShrink === "true" ? 1 : 0;
11831
+ refreshSelection,
11832
+ idKey
11833
+ };
11834
+ }, [refreshSelection, selectedItems, setSelectedRowIds, idKey]);
11835
+ return /* @__PURE__ */ jsx(SelectionContext.Provider, { value: contextValue2, children });
11836
+ };
11837
+ const SelectionContext = React__default.createContext(null);
11838
+ function useSelectionContext() {
11839
+ return useContext(SelectionContext);
11840
+ }
11841
+ const parsedHVarCache = {};
11842
+ function parseHVar(input2) {
11843
+ if (parsedHVarCache[input2] !== void 0) {
11844
+ return parsedHVarCache[input2];
11475
11845
  }
11476
- if (isEmpty(result.cssProps) && isEmpty(result.issues)) {
11477
- return defaultCompResult;
11846
+ const parts = input2.split(/-[A-Z]+/);
11847
+ if (parts.length !== 2) {
11848
+ parsedHVarCache[input2] = null;
11849
+ return parsedHVarCache[input2];
11478
11850
  }
11479
- return result;
11480
- function transformLayoutValue(prop) {
11481
- var _a2, _b;
11482
- const defValue = resolveSingleValue();
11483
- if (((_a2 = layoutContext == null ? void 0 : layoutContext.mediaSize) == null ? void 0 : _a2.sizeIndex) !== void 0) {
11484
- const sizeIndex = (_b = layoutContext.mediaSize) == null ? void 0 : _b.sizeIndex;
11485
- const xsValue = resolveSingleValue("xs");
11486
- const smValue = resolveSingleValue("sm");
11487
- const mdValue = resolveSingleValue("md");
11488
- const lgValue = resolveSingleValue("lg");
11489
- const xlValue = resolveSingleValue("xl");
11490
- const xxlValue = resolveSingleValue("xxl");
11491
- let mergedValue;
11492
- switch (sizeIndex) {
11493
- case 0:
11494
- mergedValue = xsValue ?? smValue ?? mdValue;
11495
- break;
11496
- case 1:
11497
- mergedValue = smValue ?? mdValue;
11498
- break;
11499
- case 2:
11500
- mergedValue = mdValue;
11501
- break;
11502
- case 3:
11503
- mergedValue = lgValue;
11504
- break;
11505
- case 4:
11506
- mergedValue = xlValue ?? lgValue;
11507
- break;
11508
- case 5:
11509
- mergedValue = xxlValue ?? xlValue ?? lgValue;
11510
- break;
11511
- }
11512
- return mergedValue ?? defValue;
11513
- }
11514
- return defValue;
11515
- function resolveSingleValue(sizeTag = "") {
11516
- const fullProp = sizeTag ? `${prop}-${sizeTag}` : prop;
11517
- let singleInput = layoutProps[fullProp];
11518
- if (singleInput == void 0) {
11519
- return;
11520
- }
11521
- if (typeof singleInput === "string") {
11522
- singleInput = singleInput.trim();
11523
- } else {
11524
- singleInput = singleInput.toString();
11525
- }
11526
- const value = singleInput ? singleInput.replace(
11527
- themeVarCapturesRegex,
11528
- (match) => toCssVar(match.trim())
11529
- ) : void 0;
11530
- if (singleInput !== value) {
11531
- return value;
11532
- }
11533
- const propPatterns = layoutPatterns[prop];
11534
- if (!propPatterns || propPatterns.length === 0) {
11535
- return value;
11536
- }
11537
- for (const pattern of propPatterns) {
11538
- if (pattern.test(value)) {
11539
- return value;
11851
+ const firstPart = parts[0];
11852
+ const classessParts = firstPart.split(":");
11853
+ const attribute = classessParts[classessParts.length - 1];
11854
+ const classes = classessParts.length > 1 ? classessParts.slice(0, classessParts.length - 1) : [];
11855
+ const secondPart = input2.substring(firstPart.length + 1);
11856
+ const [compName, ...rest] = secondPart.split("-");
11857
+ const traitsAndStates = secondPart.substring(compName.length).split("--");
11858
+ const states = [];
11859
+ const traits = [];
11860
+ traitsAndStates.forEach((part) => {
11861
+ if (!part.includes("-") && part) {
11862
+ states.push(part);
11863
+ } else {
11864
+ part.split("-").forEach((trait) => {
11865
+ if (trait) {
11866
+ traits.push(trait);
11540
11867
  }
11541
- }
11542
- result.issues.add(fullProp);
11543
- return value;
11868
+ });
11544
11869
  }
11545
- }
11546
- function collectCss(prop, propCssName = "") {
11547
- const value = transformLayoutValue(prop);
11548
- if (value) {
11549
- result.cssProps[propCssName || prop] = value;
11870
+ });
11871
+ parsedHVarCache[input2] = {
11872
+ classes,
11873
+ attribute,
11874
+ component: compName,
11875
+ traits,
11876
+ states
11877
+ };
11878
+ return parsedHVarCache[input2];
11879
+ }
11880
+ function createCombinations(arr = []) {
11881
+ const stateCombinations = [];
11882
+ for (let i = 1; i <= arr.length; i++) {
11883
+ for (let j = 0; j <= arr.length - i; j++) {
11884
+ stateCombinations.push(arr.slice(j, j + i));
11550
11885
  }
11551
11886
  }
11552
- function getHorizontalStarSize(size, layoutContext2) {
11553
- if (!size) return null;
11554
- const orientation = getOrientation(layoutContext2);
11555
- return orientation === "horizontal" && starSizeRegex.test(size.toString()) ? getStarSizeNumber(size.toString()) : null;
11556
- }
11557
- function getVerticalStarSize(size, layoutContext2) {
11558
- if (!size) return null;
11559
- const orientation = getOrientation(layoutContext2);
11560
- return orientation === "vertical" && starSizeRegex.test(size.toString()) ? getStarSizeNumber(size.toString()) : null;
11887
+ return stateCombinations.sort((a, b) => b.length - a.length);
11888
+ }
11889
+ function matchThemeVar(themeVar, availableThemeVars = []) {
11890
+ const hvar = parseHVar(themeVar);
11891
+ if (!hvar) {
11892
+ return;
11561
11893
  }
11562
- function getStarSizeNumber(input2) {
11563
- if (starSizeRegex.test(input2)) {
11564
- const numberPart = input2.slice(0, -1);
11565
- return numberPart === "" ? 1 : parseInt(numberPart, 10);
11894
+ const stateCombinations = createCombinations(hvar.states);
11895
+ const traitCombinations = createCombinations(hvar.traits);
11896
+ const sortedTraitCombinations = [];
11897
+ traitCombinations.forEach((traitComb) => {
11898
+ let result = "";
11899
+ traitComb.forEach((t) => {
11900
+ result = `${result}-${t}`;
11901
+ });
11902
+ sortedTraitCombinations.push(result);
11903
+ });
11904
+ sortedTraitCombinations.push("");
11905
+ const sortedStateCombinations = [];
11906
+ stateCombinations.forEach((stateComb) => {
11907
+ let result = "";
11908
+ stateComb.forEach((s) => {
11909
+ result = `${result}--${s}`;
11910
+ });
11911
+ sortedStateCombinations.push(result);
11912
+ });
11913
+ sortedStateCombinations.push("");
11914
+ const componentParts = [hvar.component, ...hvar.classes];
11915
+ const from = [];
11916
+ sortedStateCombinations.forEach((stateComb) => {
11917
+ sortedTraitCombinations.forEach((traitComb) => {
11918
+ componentParts.forEach((componentPart) => {
11919
+ from.push(`${hvar.attribute}-${componentPart}${traitComb}${stateComb}`);
11920
+ });
11921
+ });
11922
+ });
11923
+ let matchedValue;
11924
+ for (let i = availableThemeVars.length - 1; i >= 0; i--) {
11925
+ const themeVars2 = availableThemeVars[i];
11926
+ let foundValue = from.find((themeVar2) => themeVars2[themeVar2] !== void 0);
11927
+ if (foundValue) {
11928
+ matchedValue = foundValue;
11929
+ break;
11566
11930
  }
11567
- return null;
11568
- }
11569
- function getOrientation(layoutContext2) {
11570
- if (!layoutContext2) return;
11571
- let orientation = (layoutContext2 == null ? void 0 : layoutContext2.type) === "Stack" && (layoutContext2 == null ? void 0 : layoutContext2.orientation);
11572
- return orientation == null ? void 0 : orientation.toString();
11573
11931
  }
11932
+ const forValue = from[0];
11933
+ return {
11934
+ forValue,
11935
+ matchedValue,
11936
+ from
11937
+ };
11574
11938
  }
11575
- function toCssVar(c) {
11576
- return `var(--${THEME_VAR_PREFIX}-${c.substring(1)})`;
11577
- }
11578
- const layoutPatterns = {
11579
- // --- Dimensions
11580
- width: [],
11581
- minWidth: [],
11582
- maxWidth: [],
11583
- height: [],
11584
- minHeight: [],
11585
- maxHeight: [],
11586
- gap: [],
11587
- // --- Positions
11588
- top: [],
11589
- right: [],
11590
- bottom: [],
11591
- left: [],
11592
- // --- Border
11593
- border: [],
11594
- borderTop: [],
11595
- borderRight: [],
11596
- borderBottom: [],
11597
- borderLeft: [],
11598
- borderColor: [],
11599
- borderStyle: [],
11600
- borderWidth: [],
11601
- borderHorizontal: [],
11602
- borderVertical: [],
11603
- // --- Border radius
11604
- borderRadius: [],
11605
- radiusTopLeft: [],
11606
- radiusTopRight: [],
11607
- radiusBottomLeft: [],
11608
- radiusBottomRight: [],
11609
- // --- Padding
11610
- padding: [],
11611
- paddingHorizontal: [],
11612
- paddingVertical: [],
11613
- paddingTop: [],
11614
- paddingRight: [],
11615
- paddingBottom: [],
11616
- paddingLeft: [],
11617
- // --- Margin
11618
- margin: [],
11619
- marginHorizontal: [],
11620
- marginVertical: [],
11621
- marginTop: [],
11622
- marginRight: [],
11623
- marginBottom: [],
11624
- marginLeft: [],
11625
- // --- Other
11626
- backgroundColor: [],
11627
- background: [],
11628
- boxShadow: [],
11629
- direction: [],
11630
- overflowX: [],
11631
- overflowY: [],
11632
- zIndex: [],
11633
- opacity: [],
11634
- // --- Typography
11635
- color: [],
11636
- fontFamily: [],
11637
- fontSize: [],
11638
- fontWeight: [],
11639
- fontStyle: [booleanRegex],
11640
- fontVariant: [],
11641
- lineBreak: [],
11642
- textDecoration: [],
11643
- userSelect: [],
11644
- letterSpacing: [],
11645
- textTransform: [],
11646
- lineHeight: [],
11647
- textAlign: [],
11648
- textWrap: [],
11649
- textAlignLast: [],
11650
- textIndent: [],
11651
- textShadow: [],
11652
- wordBreak: [],
11653
- wordSpacing: [],
11654
- wordWrap: [],
11655
- writingMode: [],
11656
- // --- Content rendering
11657
- wrapContent: [],
11658
- canShrink: [],
11659
- // --- Other
11660
- cursor: [],
11661
- zoom: [],
11662
- whiteSpace: [],
11663
- textDecorationLine: [],
11664
- textDecorationColor: [],
11665
- textDecorationStyle: [],
11666
- textDecorationThickness: [],
11667
- textUnderlineOffset: [],
11668
- transform: [],
11669
- // --- Outline
11670
- outline: [],
11671
- outlineWidth: [],
11672
- outlineColor: [],
11673
- outlineStyle: [],
11674
- outlineOffset: [],
11675
- // --- Animation
11676
- transition: []
11677
- };
11678
11939
  function isThemeVarName(varName) {
11679
11940
  return typeof varName === "string" && (varName == null ? void 0 : varName.startsWith("$"));
11680
11941
  }
@@ -15781,7 +16042,6 @@ const IFrame = memo(forwardRef(function IFrame2({
15781
16042
  ...rest
15782
16043
  }, ref) {
15783
16044
  const iframeRef = useRef(null);
15784
- useImperativeHandle(ref, () => iframeRef.current, []);
15785
16045
  useEffect(() => {
15786
16046
  registerComponentApi == null ? void 0 : registerComponentApi({
15787
16047
  postMessage: (message, targetOrigin = "*") => {
@@ -22107,7 +22367,6 @@ const Form = forwardRef(function({
22107
22367
  ...rest
22108
22368
  }, ref) {
22109
22369
  const formRef = useRef(null);
22110
- useImperativeHandle(ref, () => formRef.current);
22111
22370
  const [confirmSubmitModalVisible, setConfirmSubmitModalVisible] = useState(false);
22112
22371
  const requestModalFormClose = useModalFormClose();
22113
22372
  const isEnabled2 = enabled2 && !formState.submitInProgress;
@@ -24227,7 +24486,7 @@ function ApiInterceptorProvider({
24227
24486
  return;
24228
24487
  }
24229
24488
  void (async () => {
24230
- const { initMock } = await import("./initMock-qnCFw6Zc.mjs");
24489
+ const { initMock } = await import("./initMock-BVLjWJxZ.mjs");
24231
24490
  const apiInstance2 = await initMock(interceptor);
24232
24491
  setApiInstance(apiInstance2);
24233
24492
  setInitialized(true);
@@ -24244,7 +24503,7 @@ function ApiInterceptorProvider({
24244
24503
  if (process.env.VITE_MOCK_ENABLED) {
24245
24504
  const [{ createApiInterceptorWorker }, { initMock }] = await Promise.all([
24246
24505
  useWorker ? import("./apiInterceptorWorker-QiltRtq1.mjs") : Promise.resolve({ createApiInterceptorWorker: () => null }),
24247
- import("./initMock-qnCFw6Zc.mjs")
24506
+ import("./initMock-BVLjWJxZ.mjs")
24248
24507
  ]);
24249
24508
  if (interceptor || forceInitialize) {
24250
24509
  const apiInstance2 = await initMock(interceptor || {});
@@ -24281,7 +24540,7 @@ function ApiInterceptorProvider({
24281
24540
  void (async () => {
24282
24541
  const [{ createApiInterceptorWorker }, { initMock }] = await Promise.all([
24283
24542
  import("./apiInterceptorWorker-QiltRtq1.mjs"),
24284
- import("./initMock-qnCFw6Zc.mjs")
24543
+ import("./initMock-BVLjWJxZ.mjs")
24285
24544
  ]);
24286
24545
  const apiInstance2 = await initMock(interceptor);
24287
24546
  await createApiInterceptorWorker(apiInstance2, parentInterceptorWorker);
@@ -24383,12 +24642,6 @@ const ComponentRegistryContext = React__default.createContext(null);
24383
24642
  function useComponentRegistry() {
24384
24643
  return useContext(ComponentRegistryContext);
24385
24644
  }
24386
- const IndexerContext = React__default.createContext({
24387
- indexing: false
24388
- });
24389
- function useIndexerContext() {
24390
- return useContext(IndexerContext);
24391
- }
24392
24645
  const themeVars$e = `'{"padding-NestedApp": "var(--xmlui-padding-NestedApp)", "paddingHorizontal-NestedApp": "var(--xmlui-paddingHorizontal-NestedApp, var(--xmlui-padding-NestedApp))", "paddingVertical-NestedApp": "var(--xmlui-paddingVertical-NestedApp, var(--xmlui-padding-NestedApp))", "paddingLeft-NestedApp": "var(--xmlui-paddingLeft-NestedApp, var(--xmlui-paddingHorizontal-NestedApp, var(--xmlui-padding-NestedApp)))", "paddingRight-NestedApp": "var(--xmlui-paddingRight-NestedApp, var(--xmlui-paddingHorizontal-NestedApp, var(--xmlui-padding-NestedApp)))", "paddingTop-NestedApp": "var(--xmlui-paddingTop-NestedApp, var(--xmlui-paddingVertical-NestedApp, var(--xmlui-padding-NestedApp)))", "paddingBottom-NestedApp": "var(--xmlui-paddingBottom-NestedApp, var(--xmlui-paddingVertical-NestedApp, var(--xmlui-padding-NestedApp)))", "border-NestedApp": "var(--xmlui-border-NestedApp)", "borderHorizontal-NestedApp": "var(--xmlui-borderHorizontal-NestedApp, var(--xmlui-border-NestedApp))", "borderVertical-NestedApp": "var(--xmlui-borderVertical-NestedApp, var(--xmlui-border-NestedApp))", "borderLeft-NestedApp": "var(--xmlui-borderLeft-NestedApp, var(--xmlui-borderHorizontal-NestedApp, var(--xmlui-border-NestedApp)))", "borderRight-NestedApp": "var(--xmlui-borderRight-NestedApp, var(--xmlui-borderHorizontal-NestedApp, var(--xmlui-border-NestedApp)))", "borderTop-NestedApp": "var(--xmlui-borderTop-NestedApp, var(--xmlui-borderVertical-NestedApp, var(--xmlui-border-NestedApp)))", "borderBottom-NestedApp": "var(--xmlui-borderBottom-NestedApp, var(--xmlui-borderVertical-NestedApp, var(--xmlui-border-NestedApp)))", "borderWidth-NestedApp": "var(--xmlui-borderWidth-NestedApp)", "borderHorizontalWidth-NestedApp": "var(--xmlui-borderHorizontalWidth-NestedApp, var(--xmlui-borderWidth-NestedApp))", "borderLeftWidth-NestedApp": "var(--xmlui-borderLeftWidth-NestedApp, var(--xmlui-borderHorizontalWidth-NestedApp, var(--xmlui-borderWidth-NestedApp)))", "borderRightWidth-NestedApp": "var(--xmlui-borderRightWidth-NestedApp, var(--xmlui-borderHorizontalWidth-NestedApp, var(--xmlui-borderWidth-NestedApp)))", "borderVerticalWidth-NestedApp": "var(--xmlui-borderVerticalWidth-NestedApp, var(--xmlui-borderWidth-NestedApp))", "borderTopWidth-NestedApp": "var(--xmlui-borderTopWidth-NestedApp, var(--xmlui-borderVerticalWidth-NestedApp, var(--xmlui-borderWidth-NestedApp)))", "borderBottomWidth-NestedApp": "var(--xmlui-borderBottomWidth-NestedApp, var(--xmlui-borderVerticalWidth-NestedApp, var(--xmlui-borderWidth-NestedApp)))", "borderStyle-NestedApp": "var(--xmlui-borderStyle-NestedApp)", "borderHorizontalStyle-NestedApp": "var(--xmlui-borderHorizontalStyle-NestedApp, var(--xmlui-borderStyle-NestedApp))", "borderLeftStyle-NestedApp": "var(--xmlui-borderLeftStyle-NestedApp, var(--xmlui-borderHorizontalStyle-NestedApp, var(--xmlui-borderStyle-NestedApp)))", "borderRightStyle-NestedApp": "var(--xmlui-borderRightStyle-NestedApp, var(--xmlui-borderHorizontalStyle-NestedApp, var(--xmlui-borderStyle-NestedApp)))", "borderVerticalStyle-NestedApp": "var(--xmlui-borderVerticalStyle-NestedApp, var(--xmlui-borderStyle-NestedApp))", "borderTopStyle-NestedApp": "var(--xmlui-borderTopStyle-NestedApp, var(--xmlui-borderVerticalStyle-NestedApp, var(--xmlui-borderStyle-NestedApp)))", "borderBottomStyle-NestedApp": "var(--xmlui-borderBottomStyle-NestedApp, var(--xmlui-borderVerticalStyle-NestedApp, var(--xmlui-borderStyle-NestedApp)))", "borderColor-NestedApp": "var(--xmlui-borderColor-NestedApp)", "borderHorizontalColor-NestedApp": "var(--xmlui-borderHorizontalColor-NestedApp, var(--xmlui-borderColor-NestedApp))", "borderLeftColor-NestedApp": "var(--xmlui-borderLeftColor-NestedApp, var(--xmlui-borderHorizontalColor-NestedApp, var(--xmlui-borderColor-NestedApp)))", "borderRightColor-NestedApp": "var(--xmlui-borderRightColor-NestedApp, var(--xmlui-borderHorizontalColor-NestedApp, var(--xmlui-borderColor-NestedApp)))", "borderVerticalColor-NestedApp": "var(--xmlui-borderVerticalColor-NestedApp, var(--xmlui-borderColor-NestedApp))", "borderTopColor-NestedApp": "var(--xmlui-borderTopColor-NestedApp, var(--xmlui-borderVerticalColor-NestedApp, var(--xmlui-borderColor-NestedApp)))", "borderBottomColor-NestedApp": "var(--xmlui-borderBottomColor-NestedApp, var(--xmlui-borderVerticalColor-NestedApp, var(--xmlui-borderColor-NestedApp)))", "borderStartStartRadius-NestedApp": "var(--xmlui-borderStartStartRadius-NestedApp, var(--xmlui-borderRadius-NestedApp))", "borderStartEndRadius-NestedApp": "var(--xmlui-borderStartEndRadius-NestedApp, var(--xmlui-borderRadius-NestedApp))", "borderEndStartRadius-NestedApp": "var(--xmlui-borderEndStartRadius-NestedApp, var(--xmlui-borderRadius-NestedApp))", "borderEndEndRadius-NestedApp": "var(--xmlui-borderEndEndRadius-NestedApp, var(--xmlui-borderRadius-NestedApp))", "textColor-header-NestedApp": "var(--xmlui-textColor-header-NestedApp)", "fontFamily-header-NestedApp": "var(--xmlui-fontFamily-header-NestedApp)", "fontSize-header-NestedApp": "var(--xmlui-fontSize-header-NestedApp)", "fontStyle-header-NestedApp": "var(--xmlui-fontStyle-header-NestedApp)", "fontVariant-header-NestedApp": "var(--xmlui-fontVariant-header-NestedApp)", "fontWeight-header-NestedApp": "var(--xmlui-fontWeight-header-NestedApp)", "fontStretch-header-NestedApp": "var(--xmlui-fontStretch-header-NestedApp)", "textDecorationLine-header-NestedApp": "var(--xmlui-textDecorationLine-header-NestedApp)", "textDecorationColor-header-NestedApp": "var(--xmlui-textDecorationColor-header-NestedApp)", "textDecorationStyle-header-NestedApp": "var(--xmlui-textDecorationStyle-header-NestedApp)", "textDecorationThickness-header-NestedApp": "var(--xmlui-textDecorationThickness-header-NestedApp)", "textUnderlineOffset-header-NestedApp": "var(--xmlui-textUnderlineOffset-header-NestedApp)", "lineHeight-header-NestedApp": "var(--xmlui-lineHeight-header-NestedApp)", "backgroundColor-header-NestedApp": "var(--xmlui-backgroundColor-header-NestedApp)", "textTransform-header-NestedApp": "var(--xmlui-textTransform-header-NestedApp)", "letterSpacing-header-NestedApp": "var(--xmlui-letterSpacing-header-NestedApp)", "wordSpacing-header-NestedApp": "var(--xmlui-wordSpacing-header-NestedApp)", "textShadow-header-NestedApp": "var(--xmlui-textShadow-header-NestedApp)", "textIndent-header-NestedApp": "var(--xmlui-textIndent-header-NestedApp)", "textAlign-header-NestedApp": "var(--xmlui-textAlign-header-NestedApp)", "textAlignLast-header-NestedApp": "var(--xmlui-textAlignLast-header-NestedApp)", "wordBreak-header-NestedApp": "var(--xmlui-wordBreak-header-NestedApp)", "wordWrap-header-NestedApp": "var(--xmlui-wordWrap-header-NestedApp)", "direction-header-NestedApp": "var(--xmlui-direction-header-NestedApp)", "writingMode-header-NestedApp": "var(--xmlui-writingMode-header-NestedApp)", "lineBreak-header-NestedApp": "var(--xmlui-lineBreak-header-NestedApp)", "backgroundColor-frame-NestedApp": "var(--xmlui-backgroundColor-frame-NestedApp)", "gap-frame-NestedApp": "var(--xmlui-gap-frame-NestedApp)", "marginTop-NestedApp": "var(--xmlui-marginTop-NestedApp)", "marginBottom-NestedApp": "var(--xmlui-marginBottom-NestedApp)", "boxShadow-NestedApp": "var(--xmlui-boxShadow-NestedApp)", "backgroundColor-viewControls-NestedApp": "var(--xmlui-backgroundColor-viewControls-NestedApp)", "borderRadius-viewControls-NestedApp": "var(--xmlui-borderRadius-viewControls-NestedApp)", "padding-viewControls-NestedApp": "var(--xmlui-padding-viewControls-NestedApp)", "paddingVertical-viewControls-button-NestedApp": "var(--xmlui-paddingVertical-viewControls-button-NestedApp)", "paddingHorizontal-viewControls-button-NestedApp": "var(--xmlui-paddingHorizontal-viewControls-button-NestedApp)", "borderRadius-NestedApp": "var(--xmlui-borderRadius-NestedApp)", "borderBottom-header-NestedApp": "var(--xmlui-borderBottom-header-NestedApp)", "height-logo-splitView-NestedApp": "var(--xmlui-height-logo-splitView-NestedApp)", "width-logo-splitView-NestedApp": "var(--xmlui-width-logo-splitView-NestedApp)", "width-controls-NestedApp": "var(--xmlui-width-controls-NestedApp)", "padding-button-splitView-NestedApp": "var(--xmlui-padding-button-splitView-NestedApp)", "width-button-splitView-NestedApp": "var(--xmlui-width-button-splitView-NestedApp)", "height-button-splitView-NestedApp": "var(--xmlui-height-button-splitView-NestedApp)", "backgroundColor-code-splitView-NestedApp": "var(--xmlui-backgroundColor-code-splitView-NestedApp)", "backgroundColor-button-splitView-NestedApp--active": "var(--xmlui-backgroundColor-button-splitView-NestedApp--active)", "color-button-splitView-NestedApp": "var(--xmlui-color-button-splitView-NestedApp)", "color-button-splitView-NestedApp--active": "var(--xmlui-color-button-splitView-NestedApp--active)", "borderRadius-button-splitView-NestedApp": "var(--xmlui-borderRadius-button-splitView-NestedApp)", "borderColor-button-splitView-NestedApp": "var(--xmlui-borderColor-button-splitView-NestedApp)", "color-loadingText-NestedApp": "var(--xmlui-color-loadingText-NestedApp)"}'`;
24393
24646
  const nestedAppPlaceholder = "_nestedAppPlaceholder_2bz33_14";
24394
24647
  const loadingContainer = "_loadingContainer_2bz33_21";
@@ -24439,216 +24692,6 @@ const styles$w = {
24439
24692
  shadowRoot,
24440
24693
  content: content$2
24441
24694
  };
24442
- function hashString(str) {
24443
- let hash = 5381;
24444
- let i = str.length;
24445
- while (i) {
24446
- hash = hash * 33 ^ str.charCodeAt(--i);
24447
- }
24448
- let s = (hash >>> 0).toString(36);
24449
- return s;
24450
- }
24451
- function toKebabCase(str) {
24452
- if (str.startsWith("--")) {
24453
- return str;
24454
- }
24455
- return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
24456
- }
24457
- function stableJSONStringify(obj) {
24458
- return JSON.stringify(obj);
24459
- }
24460
- class StyleRegistry {
24461
- constructor() {
24462
- this.cache = /* @__PURE__ */ new Map();
24463
- this.rootClasses = /* @__PURE__ */ new Set();
24464
- this.injected = /* @__PURE__ */ new Set();
24465
- this.refCounts = /* @__PURE__ */ new Map();
24466
- this.ssrHashes = /* @__PURE__ */ new Set();
24467
- }
24468
- register(styles2) {
24469
- const key = stableJSONStringify(styles2);
24470
- const styleHash = hashString(key);
24471
- const cachedEntry = this.cache.get(styleHash);
24472
- if (cachedEntry) {
24473
- return cachedEntry;
24474
- }
24475
- const className = `css-${styleHash}`;
24476
- const css = this._generateCss(`.${className}`, styles2);
24477
- const entry = { className, styleHash, css };
24478
- this.cache.set(styleHash, entry);
24479
- return entry;
24480
- }
24481
- /**
24482
- * [PRIVATE] Recursively generates CSS rules from a style object.
24483
- * This is the new, more powerful engine.
24484
- * @param selector - The CSS selector for the current context (e.g., '.css-123' or '&:hover').
24485
- * @param styles - The style object to process.
24486
- * @returns A string of CSS rules.
24487
- */
24488
- _generateCss(selector, styles2) {
24489
- const directProps = [];
24490
- const nestedRules = [];
24491
- for (const key in styles2) {
24492
- const value = styles2[key];
24493
- if (typeof value === "object" && value !== null) {
24494
- nestedRules.push(this._processNestedRule(selector, key, value));
24495
- } else {
24496
- directProps.push(`${toKebabCase(key)}:${value};`);
24497
- }
24498
- }
24499
- let finalCss = "";
24500
- if (directProps.length > 0) {
24501
- finalCss += `${selector} {${directProps.join("")}}`;
24502
- }
24503
- finalCss += nestedRules.join("");
24504
- return finalCss;
24505
- }
24506
- _processNestedRule(parentSelector, nestedKey, nestedStyles) {
24507
- if (nestedKey.startsWith("@")) {
24508
- return `${nestedKey}{${this._generateCss(parentSelector, nestedStyles)}}`;
24509
- }
24510
- const newSelector = nestedKey.replace(/&/g, parentSelector);
24511
- return this._generateCss(newSelector, nestedStyles);
24512
- }
24513
- getSsrStyles() {
24514
- const allCss = Array.from(this.cache.values()).map((entry) => entry.css).join("");
24515
- return `@layer dynamic {${allCss}}`;
24516
- }
24517
- /**
24518
- * Adds a class name to be applied to the <html> tag.
24519
- */
24520
- addRootClasses(classNames) {
24521
- classNames.forEach((className) => {
24522
- this.rootClasses.add(className);
24523
- });
24524
- }
24525
- /**
24526
- * Returns a space-separated string of all collected html classes.
24527
- */
24528
- getRootClasses() {
24529
- return Array.from(this.rootClasses).join(" ");
24530
- }
24531
- // NEW: A helper to safely get the current reference count.
24532
- getRefCount(styleHash) {
24533
- return this.refCounts.get(styleHash) || 0;
24534
- }
24535
- /**
24536
- * Increments the reference count for a given style hash.
24537
- */
24538
- incrementRef(styleHash) {
24539
- const newCount = (this.refCounts.get(styleHash) || 0) + 1;
24540
- this.refCounts.set(styleHash, newCount);
24541
- }
24542
- /**
24543
- * Decrements the reference count for a given style hash.
24544
- * @returns {number} The new reference count.
24545
- */
24546
- decrementRef(styleHash) {
24547
- const currentCount = this.refCounts.get(styleHash) || 0;
24548
- const newCount = Math.max(0, currentCount - 1);
24549
- if (newCount > 0) {
24550
- this.refCounts.set(styleHash, newCount);
24551
- } else {
24552
- this.refCounts.delete(styleHash);
24553
- }
24554
- return newCount;
24555
- }
24556
- }
24557
- const StyleContext = createContext(null);
24558
- function StyleProvider({
24559
- children,
24560
- styleRegistry = new StyleRegistry(),
24561
- forceNew = false
24562
- // Optional prop to force a new registry
24563
- }) {
24564
- const parentRegistry = useContext(StyleContext);
24565
- const [registry] = useState(() => {
24566
- const newRegistry = styleRegistry;
24567
- if (typeof window !== "undefined") {
24568
- const ssrTag = document.querySelector('style[data-style-registry="true"]');
24569
- const ssrHashes = ssrTag == null ? void 0 : ssrTag.getAttribute("data-ssr-hashes");
24570
- if (ssrHashes) {
24571
- let hashes = ssrHashes.split(",");
24572
- newRegistry.ssrHashes = new Set(hashes);
24573
- newRegistry.injected = new Set(hashes);
24574
- }
24575
- }
24576
- return newRegistry;
24577
- });
24578
- if (parentRegistry && !forceNew) {
24579
- return /* @__PURE__ */ jsx(Fragment, { children });
24580
- }
24581
- return /* @__PURE__ */ jsx(StyleContext.Provider, { value: registry, children });
24582
- }
24583
- function useStyleRegistry() {
24584
- const registry = useContext(StyleContext);
24585
- if (registry === null) {
24586
- throw new Error("Component must be used within a StyleProvider");
24587
- }
24588
- return registry;
24589
- }
24590
- function useComponentStyle(styles2) {
24591
- const rootStyle = useMemo(() => {
24592
- return !styles2 || Object.keys(styles2).length === 0 ? EMPTY_OBJECT : {
24593
- "&": styles2
24594
- // "@container style(--screenSize: 1) or @container style(--screenSize: 2) ... etc": responsiveSizes,
24595
- };
24596
- }, [styles2]);
24597
- return useStyles(rootStyle);
24598
- }
24599
- const StyleInjectionTargetContext = createContext(null);
24600
- function useDomRoot() {
24601
- const domRoot = useContext(StyleInjectionTargetContext);
24602
- return domRoot;
24603
- }
24604
- function useStyles(styles2, { prepend } = EMPTY_OBJECT) {
24605
- const { indexing } = useIndexerContext();
24606
- const domRoot = useDomRoot();
24607
- const injectionTarget = typeof document === "undefined" ? null : domRoot instanceof ShadowRoot ? domRoot : document.head;
24608
- const registry = useStyleRegistry();
24609
- const { className, styleHash } = useMemo(() => {
24610
- if (indexing || !styles2 || styles2 === EMPTY_OBJECT || Object.keys(styles2).length === 0) {
24611
- return { className: void 0, styleHash: void 0 };
24612
- }
24613
- return registry.register(styles2);
24614
- }, [indexing, registry, styles2]);
24615
- useInsertionEffect(() => {
24616
- if (!styleHash || registry.injected.has(styleHash)) {
24617
- return;
24618
- }
24619
- const { css } = registry.cache.get(styleHash) || {};
24620
- if (css) {
24621
- const styleElement = document.createElement("style");
24622
- styleElement.setAttribute("data-style-hash", styleHash);
24623
- styleElement.innerHTML = `@layer dynamic {
24624
- ${css}
24625
- }`;
24626
- if (prepend) {
24627
- injectionTarget.insertBefore(styleElement, injectionTarget.firstChild.nextSibling);
24628
- } else {
24629
- injectionTarget.appendChild(styleElement);
24630
- }
24631
- registry.injected.add(styleHash);
24632
- }
24633
- }, [registry, styleHash, injectionTarget]);
24634
- useEffect(() => {
24635
- if (!styleHash) {
24636
- return;
24637
- }
24638
- registry.incrementRef(styleHash);
24639
- return () => {
24640
- registry.decrementRef(styleHash);
24641
- setTimeout(() => {
24642
- var _a2;
24643
- if (registry.getRefCount(styleHash) === 0 && !registry.ssrHashes.has(styleHash)) {
24644
- registry.injected.delete(styleHash);
24645
- (_a2 = injectionTarget.querySelector(`style[data-style-hash="${styleHash}"]`)) == null ? void 0 : _a2.remove();
24646
- }
24647
- }, 0);
24648
- };
24649
- }, [injectionTarget, registry, styleHash]);
24650
- return className;
24651
- }
24652
24695
  function AnimatedLogo() {
24653
24696
  return /* @__PURE__ */ jsxs("div", { className: styles$w.loadingContainer, children: [
24654
24697
  /* @__PURE__ */ jsx("div", { className: styles$w.loadingText, children: "Loading XMLUI App..." }),
@@ -28692,7 +28735,7 @@ const AppMd = createMetadata({
28692
28735
  }
28693
28736
  }
28694
28737
  });
28695
- function AppNode({ node, extractValue, renderChild: renderChild2, className, lookupEventHandler }) {
28738
+ function AppNode({ node, extractValue, renderChild: renderChild2, className, lookupEventHandler, registerComponentApi }) {
28696
28739
  const processedNavRef = useRef(false);
28697
28740
  const layoutType = useMemo(
28698
28741
  () => extractValue(node.props.layout),
@@ -28908,6 +28951,7 @@ function AppNode({ node, extractValue, renderChild: renderChild2, className, loo
28908
28951
  navPanelDef: NavPanel3,
28909
28952
  logoContentDef: node.props.logoTemplate,
28910
28953
  renderChild: renderChild2,
28954
+ registerComponentApi,
28911
28955
  children: [
28912
28956
  renderedContent,
28913
28957
  /* @__PURE__ */ jsx(SearchIndexCollector, { Pages: Pages2, renderChild: renderChild2 })
@@ -29039,7 +29083,7 @@ function PageIndexer({
29039
29083
  const appRenderer = createComponentRenderer(
29040
29084
  COMP$T,
29041
29085
  AppMd,
29042
- ({ node, extractValue, renderChild: renderChild2, className, lookupEventHandler }) => {
29086
+ ({ node, extractValue, renderChild: renderChild2, className, lookupEventHandler, registerComponentApi }) => {
29043
29087
  return /* @__PURE__ */ jsx(
29044
29088
  AppNode,
29045
29089
  {
@@ -29047,7 +29091,8 @@ const appRenderer = createComponentRenderer(
29047
29091
  renderChild: renderChild2,
29048
29092
  extractValue,
29049
29093
  className,
29050
- lookupEventHandler
29094
+ lookupEventHandler,
29095
+ registerComponentApi
29051
29096
  }
29052
29097
  );
29053
29098
  }
@@ -33181,6 +33226,305 @@ async function delay(_executionContext, timeoutInMs, callback) {
33181
33226
  await (callback == null ? void 0 : callback());
33182
33227
  }
33183
33228
  const timedAction = createAction("delay", delay);
33229
+ const AnimatedComponent = animated(
33230
+ forwardRef(function InlineComponentDef(props, ref) {
33231
+ const { children, ...rest } = props;
33232
+ if (!React__default.isValidElement(children)) {
33233
+ return children;
33234
+ }
33235
+ return React__default.cloneElement(children, { ...rest, ref });
33236
+ })
33237
+ );
33238
+ const defaultProps$l = {
33239
+ delay: 0,
33240
+ animateWhenInView: false,
33241
+ reverse: false,
33242
+ loop: false,
33243
+ once: false
33244
+ };
33245
+ const parseAnimation = (animation) => {
33246
+ if (typeof animation === "object") {
33247
+ return animation;
33248
+ }
33249
+ const presetAnimations = {
33250
+ fadein: {
33251
+ from: { opacity: 0 },
33252
+ to: { opacity: 1 }
33253
+ },
33254
+ fadeout: {
33255
+ from: { opacity: 1 },
33256
+ to: { opacity: 0 }
33257
+ },
33258
+ slidein: {
33259
+ from: { transform: "translateX(-100%)" },
33260
+ to: { transform: "translateX(0%)" }
33261
+ },
33262
+ slideout: {
33263
+ from: { transform: "translateX(0%)" },
33264
+ to: { transform: "translateX(100%)" }
33265
+ },
33266
+ popin: {
33267
+ from: { transform: "scale(0.8)", opacity: 0 },
33268
+ to: { transform: "scale(1)", opacity: 1 }
33269
+ },
33270
+ popout: {
33271
+ from: { transform: "scale(1)", opacity: 1 },
33272
+ to: { transform: "scale(0.8)", opacity: 0 }
33273
+ },
33274
+ flipin: {
33275
+ from: { transform: "rotateY(90deg)", opacity: 0 },
33276
+ to: { transform: "rotateY(0deg)", opacity: 1 }
33277
+ },
33278
+ flipout: {
33279
+ from: { transform: "rotateY(0deg)", opacity: 1 },
33280
+ to: { transform: "rotateY(90deg)", opacity: 0 }
33281
+ },
33282
+ rotatein: {
33283
+ from: { transform: "rotate(-180deg)", opacity: 0 },
33284
+ to: { transform: "rotate(0deg)", opacity: 1 }
33285
+ },
33286
+ rotateout: {
33287
+ from: { transform: "rotate(0deg)", opacity: 1 },
33288
+ to: { transform: "rotate(180deg)", opacity: 0 }
33289
+ },
33290
+ zoomin: {
33291
+ from: { transform: "scale(0)", opacity: 0 },
33292
+ to: { transform: "scale(1)", opacity: 1 }
33293
+ },
33294
+ zoomout: {
33295
+ from: { transform: "scale(1)", opacity: 1 },
33296
+ to: { transform: "scale(0)", opacity: 0 }
33297
+ }
33298
+ };
33299
+ return presetAnimations[animation] || { from: {}, to: {} };
33300
+ };
33301
+ function parseAnimationOptionValue(name, value) {
33302
+ switch (name) {
33303
+ case "duration":
33304
+ case "delay":
33305
+ const num = parseInt(value, 10);
33306
+ return isNaN(num) ? void 0 : num;
33307
+ case "animateWhenInView":
33308
+ case "reverse":
33309
+ case "loop":
33310
+ case "once":
33311
+ const lowerVal = value.toLowerCase();
33312
+ if (lowerVal === "true" || lowerVal === "1" || lowerVal === "yes") return true;
33313
+ if (lowerVal === "false" || lowerVal === "0" || lowerVal === "no") return false;
33314
+ return void 0;
33315
+ default:
33316
+ return void 0;
33317
+ }
33318
+ }
33319
+ function parseAnimationOptions(input2) {
33320
+ if (isPlainObject(input2)) {
33321
+ return input2;
33322
+ }
33323
+ if (typeof input2 === "string") {
33324
+ const options2 = {};
33325
+ const values = input2.split(";").map((value) => value.trim()).filter((value) => value.length > 0);
33326
+ for (const value of values) {
33327
+ if (value.includes(":")) {
33328
+ const [name, val] = value.split(":").map((part) => part.trim());
33329
+ if (name && val) {
33330
+ const parsedValue = parseAnimationOptionValue(name, val);
33331
+ if (parsedValue !== void 0) {
33332
+ options2[name] = parsedValue;
33333
+ }
33334
+ }
33335
+ } else {
33336
+ const booleanOptions = ["animateWhenInView", "reverse", "loop", "once"];
33337
+ if (booleanOptions.includes(value)) {
33338
+ options2[value] = true;
33339
+ } else if (value.startsWith("!") && value.length > 1) {
33340
+ const optionName = value.substring(1);
33341
+ if (booleanOptions.includes(optionName)) {
33342
+ options2[optionName] = false;
33343
+ }
33344
+ }
33345
+ }
33346
+ }
33347
+ return options2;
33348
+ }
33349
+ return {};
33350
+ }
33351
+ const Animation$1 = forwardRef(function Animation2({
33352
+ children,
33353
+ registerComponentApi,
33354
+ animation,
33355
+ duration,
33356
+ onStop,
33357
+ onStart,
33358
+ delay: delay2 = defaultProps$l.delay,
33359
+ animateWhenInView = defaultProps$l.animateWhenInView,
33360
+ reverse: reverse2 = defaultProps$l.reverse,
33361
+ loop = defaultProps$l.loop,
33362
+ once = defaultProps$l.once,
33363
+ ...rest
33364
+ }, forwardedRef) {
33365
+ const [_animation] = useState(animation);
33366
+ const [toggle, setToggle] = useState(false);
33367
+ const [reset, setReset] = useState(false);
33368
+ const [count, setCount] = useState(0);
33369
+ const times = 1;
33370
+ useId();
33371
+ const animationSettings = useMemo(
33372
+ () => ({
33373
+ from: _animation.from,
33374
+ to: _animation.to,
33375
+ config: {
33376
+ ..._animation.config,
33377
+ duration
33378
+ },
33379
+ delay: delay2,
33380
+ loop,
33381
+ reset,
33382
+ reverse: toggle,
33383
+ onRest: () => {
33384
+ onStop == null ? void 0 : onStop();
33385
+ if (loop) {
33386
+ if (reverse2) {
33387
+ setCount(count + 1);
33388
+ setToggle(!toggle);
33389
+ }
33390
+ setReset(true);
33391
+ } else {
33392
+ if (reverse2 && count < times) {
33393
+ setCount(count + 1);
33394
+ setToggle(!toggle);
33395
+ }
33396
+ }
33397
+ },
33398
+ onStart: () => {
33399
+ onStart == null ? void 0 : onStart();
33400
+ }
33401
+ }),
33402
+ [
33403
+ _animation.config,
33404
+ _animation.from,
33405
+ _animation.to,
33406
+ count,
33407
+ delay2,
33408
+ duration,
33409
+ loop,
33410
+ onStart,
33411
+ onStop,
33412
+ reset,
33413
+ once,
33414
+ reverse2,
33415
+ toggle
33416
+ ]
33417
+ );
33418
+ const [springs, api] = useSpring(
33419
+ () => ({
33420
+ ...animationSettings
33421
+ }),
33422
+ [animationSettings]
33423
+ );
33424
+ const [ref, animationStyles] = useInView(() => animationSettings, {
33425
+ once
33426
+ });
33427
+ const composedRef = ref ? composeRefs(ref, forwardedRef) : forwardedRef;
33428
+ const startAnimation = useCallback(() => {
33429
+ void api.start(_animation);
33430
+ return () => {
33431
+ api.stop();
33432
+ };
33433
+ }, [_animation, api]);
33434
+ const stopAnimation = useCallback(() => {
33435
+ api.stop();
33436
+ }, [api]);
33437
+ useEffect(() => {
33438
+ registerComponentApi == null ? void 0 : registerComponentApi({
33439
+ start: startAnimation,
33440
+ stop: stopAnimation
33441
+ });
33442
+ }, [registerComponentApi, startAnimation, stopAnimation]);
33443
+ const content2 = useMemo(() => {
33444
+ return Children.map(
33445
+ children,
33446
+ (child, index) => animateWhenInView ? /* @__PURE__ */ jsx(AnimatedComponent, { ...rest, style: animationStyles, ref: composedRef, children: child }, index) : /* @__PURE__ */ jsx(AnimatedComponent, { ...rest, style: springs, ref: forwardedRef, children: child }, index)
33447
+ );
33448
+ }, [animateWhenInView, animationStyles, children, springs, rest, composedRef, forwardedRef]);
33449
+ return content2;
33450
+ });
33451
+ const tooltipBehavior = {
33452
+ name: "tooltip",
33453
+ canAttach: (node) => {
33454
+ var _a2, _b;
33455
+ const tooltipText = (_a2 = node.props) == null ? void 0 : _a2.tooltip;
33456
+ const tooltipMarkdown = (_b = node.props) == null ? void 0 : _b.tooltipMarkdown;
33457
+ return !!tooltipText || !!tooltipMarkdown;
33458
+ },
33459
+ attach: (context, node) => {
33460
+ var _a2, _b, _c;
33461
+ const { extractValue } = context;
33462
+ const tooltipText = extractValue((_a2 = context.node.props) == null ? void 0 : _a2.tooltip, true);
33463
+ const tooltipMarkdown = extractValue((_b = context.node.props) == null ? void 0 : _b.tooltipMarkdown, true);
33464
+ const tooltipOptions = extractValue((_c = context.node.props) == null ? void 0 : _c.tooltipOptions, true);
33465
+ const parsedOptions = parseTooltipOptions(tooltipOptions);
33466
+ return /* @__PURE__ */ jsx(Tooltip, { text: tooltipText, markdown: tooltipMarkdown, ...parsedOptions, children: node });
33467
+ }
33468
+ };
33469
+ const animationBehavior = {
33470
+ name: "animation",
33471
+ canAttach: (node) => {
33472
+ var _a2;
33473
+ return !!((_a2 = node.props) == null ? void 0 : _a2.animation);
33474
+ },
33475
+ attach: (context, node) => {
33476
+ var _a2, _b;
33477
+ const { extractValue } = context;
33478
+ const animation = extractValue((_a2 = context.node.props) == null ? void 0 : _a2.animation, true);
33479
+ const animationOptions = extractValue((_b = context.node.props) == null ? void 0 : _b.animationOptions, true);
33480
+ const parsedOptions = parseAnimationOptions(animationOptions);
33481
+ return /* @__PURE__ */ jsx(Animation$1, { animation: parseAnimation(animation), ...parsedOptions, children: context.node.type === "ModalDialog" ? cloneElement(node, {
33482
+ externalAnimation: true
33483
+ }) : node });
33484
+ }
33485
+ };
33486
+ const labelBehavior = {
33487
+ name: "label",
33488
+ canAttach: (node, metadata) => {
33489
+ var _a2, _b;
33490
+ if ((_a2 = metadata == null ? void 0 : metadata.props) == null ? void 0 : _a2.label) {
33491
+ return false;
33492
+ } else if (!((_b = node.props) == null ? void 0 : _b.label)) {
33493
+ return false;
33494
+ }
33495
+ return true;
33496
+ },
33497
+ attach: (context, node) => {
33498
+ var _a2;
33499
+ const { extractValue, node: componentNode, className } = context;
33500
+ const label2 = extractValue.asOptionalString(componentNode.props.label);
33501
+ const labelPosition = extractValue(componentNode.props.labelPosition);
33502
+ const labelWidth = extractValue.asOptionalString(componentNode.props.labelWidth);
33503
+ const labelBreak2 = extractValue.asOptionalBoolean(componentNode.props.labelBreak);
33504
+ const required2 = extractValue.asOptionalBoolean(componentNode.props.required);
33505
+ const enabled2 = extractValue.asOptionalBoolean(componentNode.props.enabled, true);
33506
+ const shrinkToLabel2 = extractValue.asOptionalBoolean(componentNode.props.shrinkToLabel);
33507
+ const style2 = extractValue(componentNode.props.style);
33508
+ const readOnly2 = extractValue.asOptionalBoolean(componentNode.props.readOnly);
33509
+ return /* @__PURE__ */ jsx(
33510
+ ItemWithLabel,
33511
+ {
33512
+ labelPosition,
33513
+ label: label2,
33514
+ labelWidth,
33515
+ labelBreak: labelBreak2,
33516
+ required: required2,
33517
+ enabled: enabled2,
33518
+ style: style2,
33519
+ className,
33520
+ shrinkToLabel: shrinkToLabel2,
33521
+ labelStyle: { pointerEvents: readOnly2 ? "none" : void 0 },
33522
+ isInputTemplateUsed: !!((_a2 = componentNode.props) == null ? void 0 : _a2.inputTemplate),
33523
+ children: node
33524
+ }
33525
+ );
33526
+ }
33527
+ };
33184
33528
  function Loader({
33185
33529
  state,
33186
33530
  loader,
@@ -34488,7 +34832,7 @@ var WeekDays = /* @__PURE__ */ ((WeekDays2) => {
34488
34832
  WeekDays2[WeekDays2["Saturday"] = 6] = "Saturday";
34489
34833
  return WeekDays2;
34490
34834
  })(WeekDays || {});
34491
- const defaultProps$l = {
34835
+ const defaultProps$k = {
34492
34836
  enabled: true,
34493
34837
  validationStatus: "none",
34494
34838
  mode: "single",
@@ -34507,7 +34851,7 @@ const DateInput = forwardRef(function DateInputNative({
34507
34851
  id,
34508
34852
  initialValue,
34509
34853
  value: controlledValue,
34510
- enabled: enabled2 = defaultProps$l.enabled,
34854
+ enabled: enabled2 = defaultProps$k.enabled,
34511
34855
  updateState,
34512
34856
  style: style2,
34513
34857
  className,
@@ -34515,28 +34859,28 @@ const DateInput = forwardRef(function DateInputNative({
34515
34859
  onFocus: onFocus2,
34516
34860
  onBlur,
34517
34861
  onInvalidChange,
34518
- validationStatus = defaultProps$l.validationStatus,
34862
+ validationStatus = defaultProps$k.validationStatus,
34519
34863
  registerComponentApi,
34520
- mode = defaultProps$l.mode,
34521
- dateFormat = defaultProps$l.dateFormat,
34522
- showWeekNumber = defaultProps$l.showWeekNumber,
34523
- weekStartsOn = defaultProps$l.weekStartsOn,
34864
+ mode = defaultProps$k.mode,
34865
+ dateFormat = defaultProps$k.dateFormat,
34866
+ showWeekNumber = defaultProps$k.showWeekNumber,
34867
+ weekStartsOn = defaultProps$k.weekStartsOn,
34524
34868
  minValue,
34525
34869
  maxValue,
34526
34870
  disabledDates,
34527
- inline = defaultProps$l.inline,
34528
- clearable = defaultProps$l.clearable,
34871
+ inline = defaultProps$k.inline,
34872
+ clearable = defaultProps$k.clearable,
34529
34873
  clearIcon,
34530
- clearToInitialValue = defaultProps$l.clearToInitialValue,
34531
- required: required2 = defaultProps$l.required,
34874
+ clearToInitialValue = defaultProps$k.clearToInitialValue,
34875
+ required: required2 = defaultProps$k.required,
34532
34876
  startText,
34533
34877
  startIcon,
34534
34878
  endText,
34535
34879
  endIcon,
34536
34880
  gap,
34537
- readOnly: readOnly2 = defaultProps$l.readOnly,
34538
- autoFocus = defaultProps$l.autoFocus,
34539
- emptyCharacter = defaultProps$l.emptyCharacter,
34881
+ readOnly: readOnly2 = defaultProps$k.readOnly,
34882
+ autoFocus = defaultProps$k.autoFocus,
34883
+ emptyCharacter = defaultProps$k.emptyCharacter,
34540
34884
  ...rest
34541
34885
  }, ref) {
34542
34886
  const dateInputRef = useRef(null);
@@ -34837,7 +35181,6 @@ const DateInput = forwardRef(function DateInputNative({
34837
35181
  return null;
34838
35182
  }
34839
35183
  }, [day2, month2, year2]);
34840
- useImperativeHandle(ref, () => dateInputRef.current);
34841
35184
  useEffect(() => {
34842
35185
  if (registerComponentApi) {
34843
35186
  registerComponentApi({
@@ -35294,34 +35637,34 @@ const DateInputMd = createMetadata({
35294
35637
  initialValue: dInitialValue(),
35295
35638
  autoFocus: dAutoFocus(),
35296
35639
  readOnly: dReadonly(),
35297
- enabled: dEnabled(defaultProps$l.enabled),
35298
- validationStatus: dValidationStatus(defaultProps$l.validationStatus),
35640
+ enabled: dEnabled(defaultProps$k.enabled),
35641
+ validationStatus: dValidationStatus(defaultProps$k.validationStatus),
35299
35642
  mode: {
35300
35643
  description: "The mode of the date input (single or range)",
35301
35644
  valueType: "string",
35302
35645
  availableValues: DateInputModeValues,
35303
- defaultValue: defaultProps$l.mode
35646
+ defaultValue: defaultProps$k.mode
35304
35647
  },
35305
35648
  dateFormat: {
35306
35649
  description: "The format of the date displayed in the input field",
35307
35650
  valueType: "string",
35308
- defaultValue: defaultProps$l.dateFormat,
35651
+ defaultValue: defaultProps$k.dateFormat,
35309
35652
  availableValues: dateFormats
35310
35653
  },
35311
35654
  emptyCharacter: {
35312
35655
  description: "Character used to create placeholder text for empty input fields",
35313
35656
  valueType: "string",
35314
- defaultValue: defaultProps$l.emptyCharacter
35657
+ defaultValue: defaultProps$k.emptyCharacter
35315
35658
  },
35316
35659
  showWeekNumber: {
35317
35660
  description: "Whether to show the week number (compatibility with DatePicker, not used in DateInput)",
35318
35661
  valueType: "boolean",
35319
- defaultValue: defaultProps$l.showWeekNumber
35662
+ defaultValue: defaultProps$k.showWeekNumber
35320
35663
  },
35321
35664
  weekStartsOn: {
35322
35665
  description: "The first day of the week. 0 is Sunday, 1 is Monday, etc. (compatibility with DatePicker, not used in DateInput)",
35323
35666
  valueType: "number",
35324
- defaultValue: defaultProps$l.weekStartsOn,
35667
+ defaultValue: defaultProps$k.weekStartsOn,
35325
35668
  availableValues: [
35326
35669
  {
35327
35670
  value: WeekDays.Sunday,
@@ -35368,12 +35711,12 @@ const DateInputMd = createMetadata({
35368
35711
  inline: {
35369
35712
  description: "Whether to display the date input inline (compatibility with DatePicker, always true for DateInput)",
35370
35713
  valueType: "boolean",
35371
- defaultValue: defaultProps$l.inline
35714
+ defaultValue: defaultProps$k.inline
35372
35715
  },
35373
35716
  clearable: {
35374
35717
  description: "Whether to show a clear button to reset the input",
35375
35718
  valueType: "boolean",
35376
- defaultValue: defaultProps$l.clearable
35719
+ defaultValue: defaultProps$k.clearable
35377
35720
  },
35378
35721
  clearIcon: {
35379
35722
  description: "Icon name for the clear button",
@@ -35382,7 +35725,7 @@ const DateInputMd = createMetadata({
35382
35725
  clearToInitialValue: {
35383
35726
  description: "Whether clearing resets to initial value or null",
35384
35727
  valueType: "boolean",
35385
- defaultValue: defaultProps$l.clearToInitialValue
35728
+ defaultValue: defaultProps$k.clearToInitialValue
35386
35729
  },
35387
35730
  gap: {
35388
35731
  description: "The gap between input elements",
@@ -35391,7 +35734,7 @@ const DateInputMd = createMetadata({
35391
35734
  required: {
35392
35735
  description: "Whether the input is required",
35393
35736
  valueType: "boolean",
35394
- defaultValue: defaultProps$l.required
35737
+ defaultValue: defaultProps$k.required
35395
35738
  },
35396
35739
  startText: dStartText(),
35397
35740
  startIcon: dStartIcon(),
@@ -35483,7 +35826,7 @@ const dateInputComponentRenderer = createComponentRenderer(
35483
35826
  minValue: extractValue.asOptionalString(node.props.minValue),
35484
35827
  maxValue: extractValue.asOptionalString(node.props.maxValue),
35485
35828
  disabledDates: extractValue(node.props.disabledDates),
35486
- inline: extractValue.asOptionalBoolean(node.props.inline, defaultProps$l.inline),
35829
+ inline: extractValue.asOptionalBoolean(node.props.inline, defaultProps$k.inline),
35487
35830
  startText: extractValue.asOptionalString(node.props.startText),
35488
35831
  startIcon: extractValue.asOptionalString(node.props.startIcon),
35489
35832
  endText: extractValue.asOptionalString(node.props.endText),
@@ -35491,9 +35834,9 @@ const dateInputComponentRenderer = createComponentRenderer(
35491
35834
  readOnly: extractValue.asOptionalBoolean(node.props.readOnly),
35492
35835
  autoFocus: extractValue.asOptionalBoolean(node.props.autoFocus),
35493
35836
  required: extractValue.asOptionalBoolean(node.props.required),
35494
- clearable: extractValue.asOptionalBoolean(node.props.clearable, defaultProps$l.clearable),
35837
+ clearable: extractValue.asOptionalBoolean(node.props.clearable, defaultProps$k.clearable),
35495
35838
  clearIcon: extractValue.asOptionalString(node.props.clearIcon),
35496
- clearToInitialValue: extractValue.asOptionalBoolean(node.props.clearToInitialValue, defaultProps$l.clearToInitialValue),
35839
+ clearToInitialValue: extractValue.asOptionalBoolean(node.props.clearToInitialValue, defaultProps$k.clearToInitialValue),
35497
35840
  gap: extractValue.asOptionalString(node.props.gap),
35498
35841
  emptyCharacter: extractValue.asOptionalString(node.props.emptyCharacter)
35499
35842
  }
@@ -35782,7 +36125,7 @@ const PART_MINUTE = "minute";
35782
36125
  const PART_SECOND = "second";
35783
36126
  const PART_AMPM = "ampm";
35784
36127
  const PART_CLEAR_BUTTON = "clearButton";
35785
- const defaultProps$k = {
36128
+ const defaultProps$j = {
35786
36129
  enabled: true,
35787
36130
  validationStatus: "none",
35788
36131
  hour24: true,
@@ -35798,7 +36141,7 @@ const TimeInputNative = forwardRef(function TimeInputNative2({
35798
36141
  id,
35799
36142
  initialValue,
35800
36143
  value: controlledValue,
35801
- enabled: enabled2 = defaultProps$k.enabled,
36144
+ enabled: enabled2 = defaultProps$j.enabled,
35802
36145
  updateState,
35803
36146
  style: style2,
35804
36147
  className,
@@ -35806,24 +36149,24 @@ const TimeInputNative = forwardRef(function TimeInputNative2({
35806
36149
  onFocus,
35807
36150
  onBlur,
35808
36151
  onInvalidChange,
35809
- validationStatus = defaultProps$k.validationStatus,
36152
+ validationStatus = defaultProps$j.validationStatus,
35810
36153
  registerComponentApi,
35811
- hour24 = defaultProps$k.hour24,
35812
- seconds = defaultProps$k.seconds,
36154
+ hour24 = defaultProps$j.hour24,
36155
+ seconds = defaultProps$j.seconds,
35813
36156
  minTime,
35814
36157
  maxTime,
35815
- clearable = defaultProps$k.clearable,
36158
+ clearable = defaultProps$j.clearable,
35816
36159
  clearIcon,
35817
- clearToInitialValue = defaultProps$k.clearToInitialValue,
35818
- required: required2 = defaultProps$k.required,
36160
+ clearToInitialValue = defaultProps$j.clearToInitialValue,
36161
+ required: required2 = defaultProps$j.required,
35819
36162
  startText,
35820
36163
  startIcon,
35821
36164
  endText,
35822
36165
  endIcon,
35823
36166
  gap,
35824
- readOnly: readOnly2 = defaultProps$k.readOnly,
35825
- autoFocus = defaultProps$k.autoFocus,
35826
- emptyCharacter = defaultProps$k.emptyCharacter,
36167
+ readOnly: readOnly2 = defaultProps$j.readOnly,
36168
+ autoFocus = defaultProps$j.autoFocus,
36169
+ emptyCharacter = defaultProps$j.emptyCharacter,
35827
36170
  ...rest
35828
36171
  }, ref) {
35829
36172
  const timeInputRef = useRef(null);
@@ -36164,7 +36507,6 @@ const TimeInputNative = forwardRef(function TimeInputNative2({
36164
36507
  const s24 = (second2 || "00").padStart(2, "0");
36165
36508
  return `${h24}:${m24}:${s24}`;
36166
36509
  }, [hour2, minute2, second2, amPm, is12HourFormat]);
36167
- useImperativeHandle(ref, () => timeInputRef.current);
36168
36510
  useEffect(() => {
36169
36511
  if (registerComponentApi) {
36170
36512
  registerComponentApi({
@@ -36695,17 +37037,17 @@ const TimeInputMd = createMetadata({
36695
37037
  initialValue: dInitialValue(),
36696
37038
  autoFocus: dAutoFocus(),
36697
37039
  readOnly: dReadonly(),
36698
- enabled: dEnabled(defaultProps$k.enabled),
36699
- validationStatus: dValidationStatus(defaultProps$k.validationStatus),
37040
+ enabled: dEnabled(defaultProps$j.enabled),
37041
+ validationStatus: dValidationStatus(defaultProps$j.validationStatus),
36700
37042
  hour24: {
36701
37043
  description: "Whether to use 24-hour format (true) or 12-hour format with AM/PM (false)",
36702
37044
  valueType: "boolean",
36703
- defaultValue: defaultProps$k.hour24
37045
+ defaultValue: defaultProps$j.hour24
36704
37046
  },
36705
37047
  seconds: {
36706
37048
  description: "Whether to show and allow input of seconds",
36707
37049
  valueType: "boolean",
36708
- defaultValue: defaultProps$k.seconds
37050
+ defaultValue: defaultProps$j.seconds
36709
37051
  },
36710
37052
  minTime: {
36711
37053
  description: "Minimum time that the user can select",
@@ -36718,7 +37060,7 @@ const TimeInputMd = createMetadata({
36718
37060
  clearable: {
36719
37061
  description: "Whether to show a clear button that allows clearing the selected time",
36720
37062
  valueType: "boolean",
36721
- defaultValue: defaultProps$k.clearable
37063
+ defaultValue: defaultProps$j.clearable
36722
37064
  },
36723
37065
  clearIcon: {
36724
37066
  description: "The icon to display in the clear button.",
@@ -36727,12 +37069,12 @@ const TimeInputMd = createMetadata({
36727
37069
  clearToInitialValue: {
36728
37070
  description: "Whether the clear button resets the time input to its initial value",
36729
37071
  valueType: "boolean",
36730
- defaultValue: defaultProps$k.clearToInitialValue
37072
+ defaultValue: defaultProps$j.clearToInitialValue
36731
37073
  },
36732
37074
  required: {
36733
37075
  description: "Whether the time input should be required",
36734
37076
  valueType: "boolean",
36735
- defaultValue: defaultProps$k.required
37077
+ defaultValue: defaultProps$j.required
36736
37078
  },
36737
37079
  startText: dStartText(),
36738
37080
  startIcon: dStartIcon(),
@@ -36745,7 +37087,7 @@ const TimeInputMd = createMetadata({
36745
37087
  emptyCharacter: {
36746
37088
  description: "Character to use as placeholder for empty time values. If longer than 1 character, uses the first character. Defaults to '-'",
36747
37089
  valueType: "string",
36748
- defaultValue: defaultProps$k.emptyCharacter
37090
+ defaultValue: defaultProps$j.emptyCharacter
36749
37091
  }
36750
37092
  },
36751
37093
  events: {
@@ -36822,24 +37164,24 @@ const timeInputComponentRenderer = createComponentRenderer(
36822
37164
  value: stateValue,
36823
37165
  updateState,
36824
37166
  registerComponentApi,
36825
- enabled: extractValue.asOptionalBoolean(node.props.enabled, defaultProps$k.enabled),
36826
- autoFocus: extractValue.asOptionalBoolean(node.props.autoFocus, defaultProps$k.autoFocus),
36827
- readOnly: extractValue.asOptionalBoolean(node.props.readOnly, defaultProps$k.readOnly),
37167
+ enabled: extractValue.asOptionalBoolean(node.props.enabled, defaultProps$j.enabled),
37168
+ autoFocus: extractValue.asOptionalBoolean(node.props.autoFocus, defaultProps$j.autoFocus),
37169
+ readOnly: extractValue.asOptionalBoolean(node.props.readOnly, defaultProps$j.readOnly),
36828
37170
  validationStatus: extractValue(node.props.validationStatus),
36829
- hour24: extractValue.asOptionalBoolean(node.props.hour24, defaultProps$k.hour24),
36830
- seconds: extractValue.asOptionalBoolean(node.props.seconds, defaultProps$k.seconds),
37171
+ hour24: extractValue.asOptionalBoolean(node.props.hour24, defaultProps$j.hour24),
37172
+ seconds: extractValue.asOptionalBoolean(node.props.seconds, defaultProps$j.seconds),
36831
37173
  minTime: extractValue(node.props.minTime),
36832
37174
  maxTime: extractValue(node.props.maxTime),
36833
- clearable: extractValue.asOptionalBoolean(node.props.clearable, defaultProps$k.clearable),
37175
+ clearable: extractValue.asOptionalBoolean(node.props.clearable, defaultProps$j.clearable),
36834
37176
  clearIcon: extractValue(node.props.clearIcon),
36835
- clearToInitialValue: extractValue.asOptionalBoolean(node.props.clearToInitialValue, defaultProps$k.clearToInitialValue),
36836
- required: extractValue.asOptionalBoolean(node.props.required, defaultProps$k.required),
37177
+ clearToInitialValue: extractValue.asOptionalBoolean(node.props.clearToInitialValue, defaultProps$j.clearToInitialValue),
37178
+ required: extractValue.asOptionalBoolean(node.props.required, defaultProps$j.required),
36837
37179
  startText: extractValue(node.props.startText),
36838
37180
  startIcon: extractValue(node.props.startIcon),
36839
37181
  endText: extractValue(node.props.endText),
36840
37182
  endIcon: extractValue(node.props.endIcon),
36841
37183
  gap: extractValue.asOptionalString(node.props.gap),
36842
- emptyCharacter: extractValue.asOptionalString(node.props.emptyCharacter, defaultProps$k.emptyCharacter),
37184
+ emptyCharacter: extractValue.asOptionalString(node.props.emptyCharacter, defaultProps$j.emptyCharacter),
36843
37185
  onDidChange: lookupEventHandler("didChange"),
36844
37186
  onFocus: lookupEventHandler("gotFocus"),
36845
37187
  onBlur: lookupEventHandler("lostFocus"),
@@ -36848,17 +37190,17 @@ const timeInputComponentRenderer = createComponentRenderer(
36848
37190
  );
36849
37191
  }
36850
37192
  );
36851
- const defaultProps$j = {
37193
+ const defaultProps$i = {
36852
37194
  enabled: true,
36853
37195
  interval: 1e3,
36854
37196
  once: false,
36855
37197
  initialDelay: 0
36856
37198
  };
36857
37199
  const Timer = forwardRef(function Timer2({
36858
- enabled: enabled2 = defaultProps$j.enabled,
36859
- interval = defaultProps$j.interval,
36860
- once = defaultProps$j.once,
36861
- initialDelay = defaultProps$j.initialDelay,
37200
+ enabled: enabled2 = defaultProps$i.enabled,
37201
+ interval = defaultProps$i.interval,
37202
+ once = defaultProps$i.once,
37203
+ initialDelay = defaultProps$i.initialDelay,
36862
37204
  onTick,
36863
37205
  registerComponentApi,
36864
37206
  style: style2,
@@ -36911,7 +37253,6 @@ const Timer = forwardRef(function Timer2({
36911
37253
  isPaused: () => isPaused,
36912
37254
  isRunning: () => isRunning && !isPaused
36913
37255
  }), [pause, resume, isPaused, isRunning]);
36914
- useImperativeHandle(forwardedRef, () => timerApi, [timerApi]);
36915
37256
  useEffect(() => {
36916
37257
  if (registerComponentApi) {
36917
37258
  registerComponentApi(timerApi);
@@ -37009,22 +37350,22 @@ const TimerMd = createMetadata({
37009
37350
  enabled: {
37010
37351
  description: "Whether the timer is enabled and should fire events.",
37011
37352
  valueType: "boolean",
37012
- defaultValue: defaultProps$j.enabled
37353
+ defaultValue: defaultProps$i.enabled
37013
37354
  },
37014
37355
  interval: {
37015
37356
  description: "The interval in milliseconds between timer events.",
37016
37357
  valueType: "number",
37017
- defaultValue: defaultProps$j.interval
37358
+ defaultValue: defaultProps$i.interval
37018
37359
  },
37019
37360
  initialDelay: {
37020
37361
  description: "The delay in milliseconds before the first timer event.",
37021
37362
  valueType: "number",
37022
- defaultValue: defaultProps$j.initialDelay
37363
+ defaultValue: defaultProps$i.initialDelay
37023
37364
  },
37024
37365
  once: {
37025
37366
  description: "Whether the timer should stop after firing its first tick event.",
37026
37367
  valueType: "boolean",
37027
- defaultValue: defaultProps$j.once
37368
+ defaultValue: defaultProps$i.once
37028
37369
  }
37029
37370
  },
37030
37371
  events: {
@@ -37069,7 +37410,7 @@ const timerComponentRenderer = createComponentRenderer(
37069
37410
  }
37070
37411
  );
37071
37412
  const COMP$x = "Redirect";
37072
- const defaultProps$i = {
37413
+ const defaultProps$h = {
37073
37414
  to: ""
37074
37415
  };
37075
37416
  const RedirectMd = createMetadata({
@@ -37082,7 +37423,7 @@ const RedirectMd = createMetadata({
37082
37423
  },
37083
37424
  to: {
37084
37425
  description: `This property defines the URL to which this component is about to redirect requests.`,
37085
- defaultValue: defaultProps$i.to
37426
+ defaultValue: defaultProps$h.to
37086
37427
  }
37087
37428
  }
37088
37429
  });
@@ -37094,12 +37435,21 @@ const redirectRenderer = createComponentRenderer(
37094
37435
  }
37095
37436
  );
37096
37437
  const themeVars$9 = `'{"padding-trigger-Tabs": "var(--xmlui-padding-trigger-Tabs)", "paddingHorizontal-trigger-Tabs": "var(--xmlui-paddingHorizontal-trigger-Tabs, var(--xmlui-padding-trigger-Tabs))", "paddingVertical-trigger-Tabs": "var(--xmlui-paddingVertical-trigger-Tabs, var(--xmlui-padding-trigger-Tabs))", "paddingLeft-trigger-Tabs": "var(--xmlui-paddingLeft-trigger-Tabs, var(--xmlui-paddingHorizontal-trigger-Tabs, var(--xmlui-padding-trigger-Tabs)))", "paddingRight-trigger-Tabs": "var(--xmlui-paddingRight-trigger-Tabs, var(--xmlui-paddingHorizontal-trigger-Tabs, var(--xmlui-padding-trigger-Tabs)))", "paddingTop-trigger-Tabs": "var(--xmlui-paddingTop-trigger-Tabs, var(--xmlui-paddingVertical-trigger-Tabs, var(--xmlui-padding-trigger-Tabs)))", "paddingBottom-trigger-Tabs": "var(--xmlui-paddingBottom-trigger-Tabs, var(--xmlui-paddingVertical-trigger-Tabs, var(--xmlui-padding-trigger-Tabs)))", "backgroundColor-Tabs": "var(--xmlui-backgroundColor-Tabs)", "borderColor-Tabs": "var(--xmlui-borderColor-Tabs)", "borderWidth-Tabs": "var(--xmlui-borderWidth-Tabs)", "borderColor-active-Tabs": "var(--xmlui-borderColor-active-Tabs)", "backgroundColor-trigger-Tabs": "var(--xmlui-backgroundColor-trigger-Tabs)", "borderRadius-trigger-Tabs": "var(--xmlui-borderRadius-trigger-Tabs)", "border-trigger-Tabs": "var(--xmlui-border-trigger-Tabs)", "textColor-trigger-Tabs": "var(--xmlui-textColor-trigger-Tabs)", "backgroundColor-trigger-Tabs--hover": "var(--xmlui-backgroundColor-trigger-Tabs--hover)", "backgroundColor-trigger-Tabs--active": "var(--xmlui-backgroundColor-trigger-Tabs--active)", "backgroundColor-list-Tabs": "var(--xmlui-backgroundColor-list-Tabs)", "borderRadius-list-Tabs": "var(--xmlui-borderRadius-list-Tabs)", "border-list-Tabs": "var(--xmlui-border-list-Tabs)"}'`;
37097
- const tabs = "_tabs_vrzjk_14";
37098
- const filler = "_filler_vrzjk_26";
37099
- const tabTrigger = "_tabTrigger_vrzjk_39";
37100
- const distributeEvenly = "_distributeEvenly_vrzjk_56";
37101
- const tabsList = "_tabsList_vrzjk_87";
37102
- const tabsContent = "_tabsContent_vrzjk_107";
37438
+ const tabs = "_tabs_19izz_14";
37439
+ const filler = "_filler_19izz_26";
37440
+ const tabTrigger = "_tabTrigger_19izz_39";
37441
+ const distributeEvenly = "_distributeEvenly_19izz_56";
37442
+ const tabsList = "_tabsList_19izz_87";
37443
+ const alignStart = "_alignStart_19izz_104";
37444
+ const alignEnd = "_alignEnd_19izz_107";
37445
+ const alignCenter = "_alignCenter_19izz_110";
37446
+ const alignStretch = "_alignStretch_19izz_113";
37447
+ const tabsContent = "_tabsContent_19izz_119";
37448
+ const accordionView = "_accordionView_19izz_123";
37449
+ const accordionRoot = "_accordionRoot_19izz_126";
37450
+ const accordionInterleaved = "_accordionInterleaved_19izz_131";
37451
+ const accordionList = "_accordionList_19izz_136";
37452
+ const accordionTrigger = "_accordionTrigger_19izz_148";
37103
37453
  const styles$k = {
37104
37454
  themeVars: themeVars$9,
37105
37455
  tabs,
@@ -37107,43 +37457,61 @@ const styles$k = {
37107
37457
  tabTrigger,
37108
37458
  distributeEvenly,
37109
37459
  tabsList,
37110
- tabsContent
37460
+ alignStart,
37461
+ alignEnd,
37462
+ alignCenter,
37463
+ alignStretch,
37464
+ tabsContent,
37465
+ accordionView,
37466
+ accordionRoot,
37467
+ accordionInterleaved,
37468
+ accordionList,
37469
+ accordionTrigger
37111
37470
  };
37112
37471
  const TabContext = createContext({
37113
37472
  register: (tabItem) => {
37114
37473
  },
37115
37474
  unRegister: (innerId) => {
37116
37475
  },
37117
- activeTabId: ""
37476
+ activeTabId: "",
37477
+ getTabItems: () => []
37118
37478
  });
37119
37479
  function useTabContextValue() {
37120
37480
  const [tabItems, setTabItems] = useState(EMPTY_ARRAY);
37481
+ const tabItemsRef = useRef(EMPTY_ARRAY);
37482
+ tabItemsRef.current = tabItems;
37121
37483
  const [activeTabId, setActiveTabId] = useState("");
37484
+ const register = useCallback((tabItem) => {
37485
+ setTabItems(
37486
+ produce((draft) => {
37487
+ const existing = draft.findIndex((col) => col.innerId === tabItem.innerId);
37488
+ if (existing < 0) {
37489
+ draft.push(tabItem);
37490
+ } else {
37491
+ draft[existing] = tabItem;
37492
+ }
37493
+ })
37494
+ );
37495
+ }, []);
37496
+ const unRegister = useCallback((innerId) => {
37497
+ setTabItems(
37498
+ produce((draft) => {
37499
+ return draft.filter((col) => col.innerId !== innerId);
37500
+ })
37501
+ );
37502
+ }, []);
37503
+ const getTabItems = useCallback(() => {
37504
+ return tabItemsRef.current;
37505
+ }, []);
37122
37506
  const tabContextValue = useMemo(() => {
37123
37507
  return {
37124
- register: (tabItem) => {
37125
- setTabItems(
37126
- produce((draft) => {
37127
- const existing = draft.findIndex((col) => col.innerId === tabItem.innerId);
37128
- if (existing < 0) {
37129
- draft.push(tabItem);
37130
- } else {
37131
- draft[existing] = tabItem;
37132
- }
37133
- })
37134
- );
37135
- },
37136
- unRegister: (innerId) => {
37137
- setTabItems(
37138
- produce((draft) => {
37139
- return draft.filter((col) => col.innerId !== innerId);
37140
- })
37141
- );
37142
- },
37508
+ register,
37509
+ unRegister,
37143
37510
  activeTabId,
37144
- setActiveTabId
37511
+ setActiveTabId,
37512
+ getTabItems
37145
37513
  };
37146
- }, [activeTabId]);
37514
+ }, [register, unRegister, activeTabId, getTabItems]);
37147
37515
  return {
37148
37516
  tabItems,
37149
37517
  tabContextValue
@@ -37152,21 +37520,25 @@ function useTabContextValue() {
37152
37520
  function useTabContext() {
37153
37521
  return useContext(TabContext);
37154
37522
  }
37155
- const defaultProps$h = {
37523
+ const defaultProps$g = {
37156
37524
  activeTab: 0,
37157
37525
  orientation: "horizontal",
37526
+ tabAlignment: "start",
37527
+ accordionView: false,
37158
37528
  distributeEvenly: false
37159
37529
  };
37160
37530
  const Tabs = forwardRef(function Tabs2({
37161
- activeTab = defaultProps$h.activeTab,
37162
- orientation = defaultProps$h.orientation,
37531
+ activeTab = defaultProps$g.activeTab,
37532
+ orientation = defaultProps$g.orientation,
37533
+ tabAlignment = defaultProps$g.tabAlignment,
37534
+ accordionView: accordionView2 = defaultProps$g.accordionView,
37163
37535
  headerRenderer,
37164
37536
  style: style2,
37165
37537
  children,
37166
37538
  id,
37167
37539
  registerComponentApi,
37168
37540
  className,
37169
- distributeEvenly: distributeEvenly2 = defaultProps$h.distributeEvenly,
37541
+ distributeEvenly: distributeEvenly2 = defaultProps$g.distributeEvenly,
37170
37542
  onDidChange = noop$1,
37171
37543
  ...rest
37172
37544
  }, forwardedRef) {
@@ -37230,6 +37602,66 @@ const Tabs = forwardRef(function Tabs2({
37230
37602
  setActiveTabById
37231
37603
  });
37232
37604
  }, [next, prev, setActiveTabIndex, setActiveTabById, registerComponentApi]);
37605
+ if (accordionView2) {
37606
+ return /* @__PURE__ */ jsx(TabContext.Provider, { value: tabContextValue, children: /* @__PURE__ */ jsx(
37607
+ "div",
37608
+ {
37609
+ ...rest,
37610
+ id: tabsId,
37611
+ ref: forwardedRef,
37612
+ className: classnames(className, styles$k.tabs, styles$k.accordionView),
37613
+ style: style2,
37614
+ children: /* @__PURE__ */ jsx(
37615
+ Root$2,
37616
+ {
37617
+ value: `${currentTab}`,
37618
+ onValueChange: (tab) => {
37619
+ const tabItem = tabItems.find((item2) => item2.innerId === tab);
37620
+ const newIndex = tabItems.findIndex((item2) => item2.innerId === tab);
37621
+ if (newIndex !== activeIndex) {
37622
+ tabContextValue.setActiveTabId(tab);
37623
+ setActiveIndex(newIndex);
37624
+ onDidChange == null ? void 0 : onDidChange(newIndex, tabItem.id || tabItem.innerId, tabItem == null ? void 0 : tabItem.label);
37625
+ }
37626
+ },
37627
+ orientation: "vertical",
37628
+ className: styles$k.accordionRoot,
37629
+ children: /* @__PURE__ */ jsxs("div", { className: styles$k.accordionInterleaved, children: [
37630
+ /* @__PURE__ */ jsx(List, { className: styles$k.accordionList, children: tabItems.map((tab, index) => /* @__PURE__ */ jsx(
37631
+ Trigger$1,
37632
+ {
37633
+ value: tab.innerId,
37634
+ asChild: true,
37635
+ style: { order: index * 2 },
37636
+ children: /* @__PURE__ */ jsx(
37637
+ "div",
37638
+ {
37639
+ role: "tab",
37640
+ "aria-label": tab.label,
37641
+ className: classnames(styles$k.tabTrigger, styles$k.accordionTrigger),
37642
+ children: tab.headerRenderer ? tab.headerRenderer({
37643
+ ...tab.id !== void 0 && { id: tab.id },
37644
+ index,
37645
+ label: tab.label,
37646
+ isActive: tab.innerId === currentTab
37647
+ }) : headerRenderer ? headerRenderer({
37648
+ ...tab.id !== void 0 && { id: tab.id },
37649
+ index,
37650
+ label: tab.label,
37651
+ isActive: tab.innerId === currentTab
37652
+ }) : tab.label
37653
+ }
37654
+ )
37655
+ },
37656
+ tab.innerId
37657
+ )) }),
37658
+ children
37659
+ ] })
37660
+ }
37661
+ )
37662
+ }
37663
+ ) });
37664
+ }
37233
37665
  return /* @__PURE__ */ jsx(TabContext.Provider, { value: tabContextValue, children: /* @__PURE__ */ jsxs(
37234
37666
  Root$2,
37235
37667
  {
@@ -37250,30 +37682,44 @@ const Tabs = forwardRef(function Tabs2({
37250
37682
  orientation,
37251
37683
  style: style2,
37252
37684
  children: [
37253
- /* @__PURE__ */ jsxs(List, { className: styles$k.tabsList, role: "tablist", children: [
37254
- tabItems.map((tab, index) => /* @__PURE__ */ jsx(Trigger$1, { value: tab.innerId, asChild: true, children: /* @__PURE__ */ jsx(
37255
- "div",
37256
- {
37257
- role: "tab",
37258
- "aria-label": tab.label,
37259
- className: classnames(styles$k.tabTrigger, {
37260
- [styles$k.distributeEvenly]: distributeEvenly2
37261
- }),
37262
- children: tab.headerRenderer ? tab.headerRenderer({
37263
- ...tab.id !== void 0 && { id: tab.id },
37264
- index,
37265
- label: tab.label,
37266
- isActive: tab.innerId === currentTab
37267
- }) : headerRenderer ? headerRenderer({
37268
- ...tab.id !== void 0 && { id: tab.id },
37269
- index,
37270
- label: tab.label,
37271
- isActive: tab.innerId === currentTab
37272
- }) : tab.label
37273
- }
37274
- ) }, tab.innerId)),
37275
- !distributeEvenly2 && !headerRenderer && /* @__PURE__ */ jsx("div", { className: styles$k.filler, "data-orientation": orientation })
37276
- ] }),
37685
+ /* @__PURE__ */ jsxs(
37686
+ List,
37687
+ {
37688
+ className: classnames(styles$k.tabsList, {
37689
+ [styles$k.alignStart]: tabAlignment === "start",
37690
+ [styles$k.alignEnd]: tabAlignment === "end",
37691
+ [styles$k.alignCenter]: tabAlignment === "center",
37692
+ [styles$k.alignStretch]: tabAlignment === "stretch"
37693
+ }),
37694
+ role: "tablist",
37695
+ children: [
37696
+ !distributeEvenly2 && !headerRenderer && tabAlignment === "end" && /* @__PURE__ */ jsx("div", { className: styles$k.filler, "data-orientation": orientation }),
37697
+ !distributeEvenly2 && !headerRenderer && tabAlignment === "center" && /* @__PURE__ */ jsx("div", { className: styles$k.filler, "data-orientation": orientation }),
37698
+ tabItems.map((tab, index) => /* @__PURE__ */ jsx(Trigger$1, { value: tab.innerId, asChild: true, children: /* @__PURE__ */ jsx(
37699
+ "div",
37700
+ {
37701
+ role: "tab",
37702
+ "aria-label": tab.label,
37703
+ className: classnames(styles$k.tabTrigger, {
37704
+ [styles$k.distributeEvenly]: distributeEvenly2 || tabAlignment === "stretch"
37705
+ }),
37706
+ children: tab.headerRenderer ? tab.headerRenderer({
37707
+ ...tab.id !== void 0 && { id: tab.id },
37708
+ index,
37709
+ label: tab.label,
37710
+ isActive: tab.innerId === currentTab
37711
+ }) : headerRenderer ? headerRenderer({
37712
+ ...tab.id !== void 0 && { id: tab.id },
37713
+ index,
37714
+ label: tab.label,
37715
+ isActive: tab.innerId === currentTab
37716
+ }) : tab.label
37717
+ }
37718
+ ) }, tab.innerId)),
37719
+ !distributeEvenly2 && !headerRenderer && tabAlignment !== "stretch" && (tabAlignment === "start" || tabAlignment === "center") && /* @__PURE__ */ jsx("div", { className: styles$k.filler, "data-orientation": orientation })
37720
+ ]
37721
+ }
37722
+ ),
37277
37723
  children
37278
37724
  ]
37279
37725
  }
@@ -37288,11 +37734,22 @@ const TabsMd = createMetadata({
37288
37734
  `This property indicates the index of the active tab. The indexing starts from 0, representing the starting (leftmost) tab. If not set, the first tab is selected by default.`
37289
37735
  ),
37290
37736
  orientation: {
37291
- description: `This property indicates the orientation of the component. In horizontal orientation, the tab sections are laid out on the left side of the content panel, while in vertical orientation, the buttons are at the top.`,
37737
+ description: `This property indicates the orientation of the component. In horizontal orientation, the tab sections are laid out on the left side of the content panel, while in vertical orientation, the buttons are at the top. Note: This property is ignored when accordionView is set to true.`,
37292
37738
  availableValues: ["horizontal", "vertical"],
37293
- defaultValue: defaultProps$h.orientation,
37739
+ defaultValue: defaultProps$g.orientation,
37740
+ valueType: "string"
37741
+ },
37742
+ tabAlignment: {
37743
+ description: `This property controls how tabs are aligned within the tab header container in horizontal orientation. Use 'start' to align tabs to the left, 'end' to align to the right, 'center' to center the tabs, and 'stretch' to make tabs fill the full width of the header. Note: This property is ignored when orientation is set to 'vertical' or when accordionView is enabled.`,
37744
+ availableValues: ["start", "end", "center", "stretch"],
37745
+ defaultValue: defaultProps$g.tabAlignment,
37294
37746
  valueType: "string"
37295
37747
  },
37748
+ accordionView: {
37749
+ description: `When enabled, displays tabs in an accordion-like view where tab headers are stacked vertically and only the active tab's content is visible. Each tab header remains visible and clicking a header opens its content while closing others. When enabled, the orientation property is ignored.`,
37750
+ defaultValue: defaultProps$g.accordionView,
37751
+ valueType: "boolean"
37752
+ },
37296
37753
  headerTemplate: {
37297
37754
  ...dComponent(`This property declares the template for the clickable tab area.`)
37298
37755
  }
@@ -37336,7 +37793,7 @@ const tabsComponentRenderer = createComponentRenderer(
37336
37793
  COMP$w,
37337
37794
  TabsMd,
37338
37795
  ({ extractValue, node, renderChild: renderChild2, className, registerComponentApi, lookupEventHandler }) => {
37339
- var _a2, _b, _c;
37796
+ var _a2, _b, _c, _d, _e;
37340
37797
  return /* @__PURE__ */ jsx(
37341
37798
  Tabs,
37342
37799
  {
@@ -37355,6 +37812,8 @@ const tabsComponentRenderer = createComponentRenderer(
37355
37812
  ) : void 0,
37356
37813
  activeTab: extractValue((_b = node.props) == null ? void 0 : _b.activeTab),
37357
37814
  orientation: extractValue((_c = node.props) == null ? void 0 : _c.orientation),
37815
+ tabAlignment: extractValue((_d = node.props) == null ? void 0 : _d.tabAlignment),
37816
+ accordionView: extractValue((_e = node.props) == null ? void 0 : _e.accordionView),
37358
37817
  onDidChange: lookupEventHandler("didChange"),
37359
37818
  registerComponentApi,
37360
37819
  children: renderChild2(node.children)
@@ -37366,16 +37825,16 @@ const anchorRef = "_anchorRef_1tdkt_2";
37366
37825
  const styles$j = {
37367
37826
  anchorRef
37368
37827
  };
37369
- const defaultProps$g = {
37828
+ const defaultProps$f = {
37370
37829
  level: 1,
37371
37830
  omitFromToc: false
37372
37831
  };
37373
37832
  const Bookmark = ({
37374
37833
  uid,
37375
- level = defaultProps$g.level,
37834
+ level = defaultProps$f.level,
37376
37835
  children,
37377
37836
  title: title2,
37378
- omitFromToc = defaultProps$g.omitFromToc,
37837
+ omitFromToc = defaultProps$f.omitFromToc,
37379
37838
  registerComponentApi,
37380
37839
  ...rest
37381
37840
  }) => {
@@ -37423,7 +37882,7 @@ const BookmarkMd = createMetadata({
37423
37882
  level: {
37424
37883
  description: "The level of the bookmark. The level is used to determine the bookmark's position in the table of contents.",
37425
37884
  valueType: "number",
37426
- defaultValue: defaultProps$g.level
37885
+ defaultValue: defaultProps$f.level
37427
37886
  },
37428
37887
  title: {
37429
37888
  description: "Defines the text to display the bookmark in the table of contents. If this property is empty, the text falls back to the value of `id`.",
@@ -37432,7 +37891,7 @@ const BookmarkMd = createMetadata({
37432
37891
  omitFromToc: {
37433
37892
  description: "If true, this bookmark will be excluded from the table of contents.",
37434
37893
  valueType: "boolean",
37435
- defaultValue: defaultProps$g.omitFromToc
37894
+ defaultValue: defaultProps$f.omitFromToc
37436
37895
  }
37437
37896
  },
37438
37897
  apis: {
@@ -37463,11 +37922,11 @@ const AppStateContext = createContext$1(null);
37463
37922
  function useAppStateContextPart(selector) {
37464
37923
  return useContextSelector(AppStateContext, selector);
37465
37924
  }
37466
- const defaultProps$f = {
37925
+ const defaultProps$e = {
37467
37926
  bucket: "default"
37468
37927
  };
37469
37928
  function AppState({
37470
- bucket = defaultProps$f.bucket,
37929
+ bucket = defaultProps$e.bucket,
37471
37930
  updateState,
37472
37931
  initialValue,
37473
37932
  registerComponentApi,
@@ -37528,7 +37987,7 @@ const AppStateMd = createMetadata({
37528
37987
  bucket: {
37529
37988
  description: `This property is the identifier of the bucket to which the \`${COMP$u}\` instance is bound. Multiple \`${COMP$u}\` instances with the same bucket will share the same state object: any of them updating the state will cause the other instances to view the new, updated state.`,
37530
37989
  valueType: "string",
37531
- defaultValue: defaultProps$f.bucket
37990
+ defaultValue: defaultProps$e.bucket
37532
37991
  },
37533
37992
  initialValue: {
37534
37993
  description: `This property contains the initial state value. Though you can use multiple \`${COMP$u}\`component instances for the same bucket with their \`initialValue\` set, it may result in faulty app logic. When xmlui instantiates an \`${COMP$u}\` with an explicit initial value, that value is immediately merged with the existing state. The issue may come from the behavior that \`initialValue\` is set (merged) only when a component mounts. By default, the bucket's initial state is undefined.`
@@ -37611,16 +38070,16 @@ const styles$i = {
37611
38070
  head_6,
37612
38071
  active: active$1
37613
38072
  };
37614
- const defaultProps$e = {
38073
+ const defaultProps$d = {
37615
38074
  smoothScrolling: false,
37616
38075
  maxHeadingLevel: 6,
37617
38076
  omitH1: false
37618
38077
  };
37619
38078
  const TableOfContents = forwardRef(function TableOfContents2({
37620
38079
  style: style2,
37621
- smoothScrolling = defaultProps$e.smoothScrolling,
37622
- maxHeadingLevel = defaultProps$e.maxHeadingLevel,
37623
- omitH1 = defaultProps$e.omitH1,
38080
+ smoothScrolling = defaultProps$d.smoothScrolling,
38081
+ maxHeadingLevel = defaultProps$d.maxHeadingLevel,
38082
+ omitH1 = defaultProps$d.omitH1,
37624
38083
  className,
37625
38084
  ...rest
37626
38085
  }, forwardedRef) {
@@ -37712,12 +38171,12 @@ const TableOfContentsMd = createMetadata({
37712
38171
  smoothScrolling: {
37713
38172
  description: `This property indicates that smooth scrolling is used while scrolling the selected table of contents items into view.`,
37714
38173
  valueType: "boolean",
37715
- defaultValue: defaultProps$e.smoothScrolling
38174
+ defaultValue: defaultProps$d.smoothScrolling
37716
38175
  },
37717
38176
  maxHeadingLevel: {
37718
38177
  description: "Defines the maximum heading level (1 to 6) to include in the table of contents. For example, if it is 2, then `H1` and `H2` are displayed, but lower levels (`H3` to `H6`) are not.",
37719
38178
  valueType: "number",
37720
- defaultValue: defaultProps$e.maxHeadingLevel
38179
+ defaultValue: defaultProps$d.maxHeadingLevel
37721
38180
  },
37722
38181
  omitH1: {
37723
38182
  description: "If true, the `H1` heading is not included in the table of contents. This is useful when the `H1` is used for the page title and you want to avoid duplication.",
@@ -37805,7 +38264,7 @@ const AccordionContext = createContext({
37805
38264
  function useAccordionContext() {
37806
38265
  return useContext(AccordionContext);
37807
38266
  }
37808
- const defaultProps$d = {
38267
+ const defaultProps$c = {
37809
38268
  hideIcon: false,
37810
38269
  collapsedIcon: "chevrondown",
37811
38270
  triggerPosition: "end",
@@ -37815,13 +38274,13 @@ const AccordionComponent = forwardRef(function AccordionComponent2({
37815
38274
  className,
37816
38275
  style: style2,
37817
38276
  children,
37818
- hideIcon = defaultProps$d.hideIcon,
38277
+ hideIcon = defaultProps$c.hideIcon,
37819
38278
  expandedIcon,
37820
- collapsedIcon = defaultProps$d.collapsedIcon,
37821
- triggerPosition = defaultProps$d.triggerPosition,
38279
+ collapsedIcon = defaultProps$c.collapsedIcon,
38280
+ triggerPosition = defaultProps$c.triggerPosition,
37822
38281
  onDisplayDidChange = noop$1,
37823
38282
  registerComponentApi,
37824
- rotateExpanded = defaultProps$d.rotateExpanded,
38283
+ rotateExpanded = defaultProps$c.rotateExpanded,
37825
38284
  ...rest
37826
38285
  }, forwardedRef) {
37827
38286
  const [expandedItems, setExpandedItems] = useState([]);
@@ -37942,14 +38401,14 @@ const AccordionMd = createMetadata({
37942
38401
  props: {
37943
38402
  triggerPosition: {
37944
38403
  description: `This property indicates the position where the trigger icon should be displayed. The \`start\` value signs the trigger is before the header text (template), and \`end\` indicates that it follows the header.`,
37945
- defaultValue: defaultProps$d.triggerPosition,
38404
+ defaultValue: defaultProps$c.triggerPosition,
37946
38405
  valueType: "string",
37947
38406
  availableValues: triggerPositionNames
37948
38407
  },
37949
38408
  collapsedIcon: {
37950
38409
  description: "This property is the name of the icon that is displayed when the accordion is collapsed. This property is the name of the icon that is displayed when the accordion is expanded. If not provided, a chevron-down icon is used.",
37951
38410
  valueType: "string",
37952
- defaultValue: defaultProps$d.collapsedIcon
38411
+ defaultValue: defaultProps$c.collapsedIcon
37953
38412
  },
37954
38413
  expandedIcon: {
37955
38414
  description: "This property is the name of the icon that is displayed when the accordion is expanded. If not provided, a chevron-up icon is used.",
@@ -37957,13 +38416,13 @@ const AccordionMd = createMetadata({
37957
38416
  },
37958
38417
  hideIcon: {
37959
38418
  description: `This property indicates that the trigger icon is not displayed (\`true\`).`,
37960
- defaultValue: defaultProps$d.hideIcon,
38419
+ defaultValue: defaultProps$c.hideIcon,
37961
38420
  valueType: "boolean"
37962
38421
  },
37963
38422
  rotateExpanded: {
37964
38423
  description: `This optional property defines the rotation angle of the expanded icon (relative to the collapsed icon).`,
37965
38424
  valueType: "string",
37966
- defaultValue: defaultProps$d.rotateExpanded
38425
+ defaultValue: defaultProps$c.rotateExpanded
37967
38426
  }
37968
38427
  },
37969
38428
  events: {
@@ -38030,7 +38489,7 @@ const accordionComponentRenderer = createComponentRenderer(
38030
38489
  );
38031
38490
  const TabItemComponent = forwardRef(function TabItemComponent2({ children, label: label2, headerRenderer, style: style2, id, activated, ...rest }, forwardedRef) {
38032
38491
  const innerId = useId();
38033
- const { register, unRegister, activeTabId } = useTabContext();
38492
+ const { register, unRegister, activeTabId, getTabItems } = useTabContext();
38034
38493
  useEffect(() => {
38035
38494
  register({
38036
38495
  label: label2,
@@ -38051,6 +38510,9 @@ const TabItemComponent = forwardRef(function TabItemComponent2({ children, label
38051
38510
  }
38052
38511
  }, [activeTabId, innerId, activated]);
38053
38512
  if (activeTabId !== innerId) return null;
38513
+ const tabItems = getTabItems();
38514
+ const tabIndex = (tabItems == null ? void 0 : tabItems.findIndex((item2) => item2.innerId === innerId)) ?? 0;
38515
+ const contentOrder = tabIndex * 2 + 1;
38054
38516
  return /* @__PURE__ */ createElement(
38055
38517
  Content$1,
38056
38518
  {
@@ -38059,7 +38521,7 @@ const TabItemComponent = forwardRef(function TabItemComponent2({ children, label
38059
38521
  value: innerId,
38060
38522
  className: styles$k.tabsContent,
38061
38523
  ref: forwardedRef,
38062
- style: style2
38524
+ style: { ...style2, order: contentOrder }
38063
38525
  },
38064
38526
  children
38065
38527
  );
@@ -38121,16 +38583,16 @@ const tabItemComponentRenderer = createComponentRenderer(
38121
38583
  function defaultRenderer(header2) {
38122
38584
  return /* @__PURE__ */ jsx("div", { children: header2 });
38123
38585
  }
38124
- const defaultProps$c = {
38586
+ const defaultProps$b = {
38125
38587
  initiallyExpanded: false,
38126
38588
  headerRenderer: defaultRenderer
38127
38589
  };
38128
38590
  const AccordionItemComponent = forwardRef(function AccordionItemComponent2({
38129
38591
  id,
38130
38592
  header: header2,
38131
- headerRenderer = defaultProps$c.headerRenderer,
38593
+ headerRenderer = defaultProps$b.headerRenderer,
38132
38594
  content: content2,
38133
- initiallyExpanded = defaultProps$c.initiallyExpanded,
38595
+ initiallyExpanded = defaultProps$b.initiallyExpanded,
38134
38596
  style: style2,
38135
38597
  className,
38136
38598
  ...rest
@@ -38227,7 +38689,7 @@ const AccordionItemMd = createMetadata({
38227
38689
  initiallyExpanded: {
38228
38690
  description: `This property indicates if the ${COMP$q} is expanded (\`true\`) or collapsed (\`false\`).`,
38229
38691
  valueType: "boolean",
38230
- defaultValue: defaultProps$c.initiallyExpanded
38692
+ defaultValue: defaultProps$b.initiallyExpanded
38231
38693
  }
38232
38694
  }
38233
38695
  });
@@ -38480,7 +38942,7 @@ function useCarouselContextValue(isTabbed) {
38480
38942
  carouselContextValue
38481
38943
  };
38482
38944
  }
38483
- const defaultProps$b = {
38945
+ const defaultProps$a = {
38484
38946
  orientation: "horizontal",
38485
38947
  indicators: true,
38486
38948
  autoplay: false,
@@ -38492,21 +38954,21 @@ const defaultProps$b = {
38492
38954
  stopAutoplayOnInteraction: true
38493
38955
  };
38494
38956
  const CarouselComponent = forwardRef(function CarouselComponent2({
38495
- orientation = defaultProps$b.orientation,
38957
+ orientation = defaultProps$a.orientation,
38496
38958
  children,
38497
38959
  style: style2,
38498
38960
  className,
38499
- indicators: indicators2 = defaultProps$b.indicators,
38961
+ indicators: indicators2 = defaultProps$a.indicators,
38500
38962
  onDisplayDidChange = noop$1,
38501
- autoplay = defaultProps$b.autoplay,
38502
- controls: controls2 = defaultProps$b.controls,
38503
- loop = defaultProps$b.loop,
38504
- startIndex = defaultProps$b.startIndex,
38963
+ autoplay = defaultProps$a.autoplay,
38964
+ controls: controls2 = defaultProps$a.controls,
38965
+ loop = defaultProps$a.loop,
38966
+ startIndex = defaultProps$a.startIndex,
38505
38967
  prevIcon,
38506
38968
  nextIcon,
38507
- transitionDuration = defaultProps$b.transitionDuration,
38508
- autoplayInterval = defaultProps$b.autoplayInterval,
38509
- stopAutoplayOnInteraction = defaultProps$b.stopAutoplayOnInteraction,
38969
+ transitionDuration = defaultProps$a.transitionDuration,
38970
+ autoplayInterval = defaultProps$a.autoplayInterval,
38971
+ stopAutoplayOnInteraction = defaultProps$a.stopAutoplayOnInteraction,
38510
38972
  registerComponentApi,
38511
38973
  ...rest
38512
38974
  }, forwardedRef) {
@@ -38709,47 +39171,47 @@ const CarouselMd = createMetadata({
38709
39171
  description: "This property indicates the orientation of the carousel. The `horizontal` value indicates that the carousel moves horizontally, and the `vertical` value indicates that the carousel moves vertically.",
38710
39172
  availableValues: orientationOptionMd,
38711
39173
  valueType: "string",
38712
- defaultValue: defaultProps$b.orientation
39174
+ defaultValue: defaultProps$a.orientation
38713
39175
  },
38714
39176
  indicators: {
38715
39177
  description: "Display the individual slides as buttons (`true`) or not (`false`).",
38716
39178
  valueType: "boolean",
38717
- defaultValue: defaultProps$b.indicators
39179
+ defaultValue: defaultProps$a.indicators
38718
39180
  },
38719
39181
  controls: {
38720
39182
  description: "Display the previous/next controls (`true`) or not (`false`).",
38721
39183
  valueType: "boolean",
38722
- defaultValue: defaultProps$b.controls
39184
+ defaultValue: defaultProps$a.controls
38723
39185
  },
38724
39186
  autoplay: {
38725
39187
  description: "Start scrolling the carousel automatically (`true`) or not (`false`).",
38726
39188
  valueType: "boolean",
38727
- defaultValue: defaultProps$b.autoplay
39189
+ defaultValue: defaultProps$a.autoplay
38728
39190
  },
38729
39191
  loop: {
38730
39192
  description: "Sets whether the carousel should loop back to the start/end when it reaches the last/first slide.",
38731
39193
  valueType: "boolean",
38732
- defaultValue: defaultProps$b.loop
39194
+ defaultValue: defaultProps$a.loop
38733
39195
  },
38734
39196
  startIndex: {
38735
39197
  description: "The index of the first slide to display.",
38736
39198
  valueType: "number",
38737
- defaultValue: defaultProps$b.startIndex
39199
+ defaultValue: defaultProps$a.startIndex
38738
39200
  },
38739
39201
  transitionDuration: {
38740
39202
  description: "The duration of the transition between slides.",
38741
39203
  valueType: "number",
38742
- defaultValue: defaultProps$b.transitionDuration
39204
+ defaultValue: defaultProps$a.transitionDuration
38743
39205
  },
38744
39206
  autoplayInterval: {
38745
39207
  description: "Specifies the interval between autoplay transitions.",
38746
39208
  valueType: "number",
38747
- defaultValue: defaultProps$b.autoplayInterval
39209
+ defaultValue: defaultProps$a.autoplayInterval
38748
39210
  },
38749
39211
  stopAutoplayOnInteraction: {
38750
39212
  description: "This property indicates whether autoplay stops on user interaction.",
38751
39213
  valueType: "boolean",
38752
- defaultValue: defaultProps$b.stopAutoplayOnInteraction
39214
+ defaultValue: defaultProps$a.stopAutoplayOnInteraction
38753
39215
  },
38754
39216
  prevIcon: {
38755
39217
  description: "The icon to display for the previous control.",
@@ -38900,7 +39362,7 @@ const breakoutComponentRenderer = createComponentRenderer(
38900
39362
  const COMP$l = "ToneChangerButton";
38901
39363
  const LIGHT_TO_DARK_ICON = "lightToDark:ToneChangerButton";
38902
39364
  const DARK_TO_LIGHT_ICON = "darkToLight:ToneChangerButton";
38903
- const defaultProps$a = {
39365
+ const defaultProps$9 = {
38904
39366
  lightToDarkIcon: LIGHT_TO_DARK_ICON,
38905
39367
  darkToLightIcon: DARK_TO_LIGHT_ICON,
38906
39368
  onClick: noop$2
@@ -38911,11 +39373,11 @@ const ToneChangerButtonMd = createMetadata({
38911
39373
  props: {
38912
39374
  lightToDarkIcon: {
38913
39375
  description: `The icon displayed when the theme is in light mode and will switch to dark. You can change the default icon for all ${COMP$l} instances with the "icon.lightToDark:ToneChangerButton" declaration in the app configuration file.`,
38914
- defaultValue: defaultProps$a.lightToDarkIcon
39376
+ defaultValue: defaultProps$9.lightToDarkIcon
38915
39377
  },
38916
39378
  darkToLightIcon: {
38917
39379
  description: `The icon displayed when the theme is in dark mode and will switch to light. You can change the default icon for all ${COMP$l} instances with the "icon.darkToLight:ToneChangerButton" declaration in the app configuration file.`,
38918
- defaultValue: defaultProps$a.darkToLightIcon
39380
+ defaultValue: defaultProps$9.darkToLightIcon
38919
39381
  }
38920
39382
  },
38921
39383
  events: {
@@ -38923,9 +39385,9 @@ const ToneChangerButtonMd = createMetadata({
38923
39385
  }
38924
39386
  });
38925
39387
  function ToneChangerButton({
38926
- lightToDarkIcon = defaultProps$a.lightToDarkIcon,
38927
- darkToLightIcon = defaultProps$a.darkToLightIcon,
38928
- onClick = defaultProps$a.onClick
39388
+ lightToDarkIcon = defaultProps$9.lightToDarkIcon,
39389
+ darkToLightIcon = defaultProps$9.darkToLightIcon,
39390
+ onClick = defaultProps$9.onClick
38929
39391
  }) {
38930
39392
  const { activeThemeTone, setActiveThemeTone } = useThemes();
38931
39393
  const iconName = activeThemeTone === "light" ? lightToDarkIcon : darkToLightIcon;
@@ -39057,7 +39519,7 @@ const toneSwitchComponentRenderer = createComponentRenderer(
39057
39519
  );
39058
39520
  }
39059
39521
  );
39060
- const defaultProps$9 = {
39522
+ const defaultProps$8 = {
39061
39523
  method: "get"
39062
39524
  };
39063
39525
  function APICallNative({ registerComponentApi, node, uid }) {
@@ -39100,7 +39562,7 @@ const APICallMd = createMetadata({
39100
39562
  description: "The method of data manipulation can be done via setting this property.",
39101
39563
  valueType: "string",
39102
39564
  availableValues: httpMethodNames,
39103
- defaultValue: defaultProps$9.method
39565
+ defaultValue: defaultProps$8.method
39104
39566
  },
39105
39567
  url: {
39106
39568
  description: "Use this property to set the URL to which data will be sent. If not provided, an empty URL is used.",
@@ -41811,7 +42273,7 @@ const inspectButtonComponentRenderer = createComponentRenderer(
41811
42273
  return /* @__PURE__ */ jsx(InspectButton, { className, children: renderChild2(node.children) });
41812
42274
  }
41813
42275
  );
41814
- const defaultProps$8 = {
42276
+ const defaultProps$7 = {
41815
42277
  allowPlaygroundPopup: true,
41816
42278
  withFrame: true,
41817
42279
  components: EMPTY_ARRAY
@@ -41830,7 +42292,7 @@ const NestedAppMd = createMetadata({
41830
42292
  },
41831
42293
  components: {
41832
42294
  description: "This property defines an optional list of components to be used with the nested app.",
41833
- defaultValue: defaultProps$8.components
42295
+ defaultValue: defaultProps$7.components
41834
42296
  },
41835
42297
  config: {
41836
42298
  description: "You can define the nested app's configuration with this property."
@@ -41929,7 +42391,7 @@ It supports both side-by-side and stacked layouts.`,
41929
42391
  },
41930
42392
  components: {
41931
42393
  description: "This property defines an optional list of components to be used with the nested app.",
41932
- defaultValue: defaultProps$8.components
42394
+ defaultValue: defaultProps$7.components
41933
42395
  },
41934
42396
  config: {
41935
42397
  description: "You can define the nested app's configuration with this property."
@@ -41949,12 +42411,12 @@ It supports both side-by-side and stacked layouts.`,
41949
42411
  allowPlaygroundPopup: {
41950
42412
  description: "This property defines whether the nested app can be opened in the xmlui playground.",
41951
42413
  valueType: "boolean",
41952
- defaultValue: defaultProps$8.allowPlaygroundPopup
42414
+ defaultValue: defaultProps$7.allowPlaygroundPopup
41953
42415
  },
41954
42416
  withFrame: {
41955
42417
  description: "This property defines whether the nested app should be displayed with a frame.",
41956
42418
  valueType: "boolean",
41957
- defaultValue: defaultProps$8.withFrame
42419
+ defaultValue: defaultProps$7.withFrame
41958
42420
  }
41959
42421
  },
41960
42422
  themeVars: parseScssVar(styles$a.themeVars),
@@ -42151,7 +42613,7 @@ const TooltipContent = forwardRef(function({ active: active2, payload, indicator
42151
42613
  return null;
42152
42614
  });
42153
42615
  TooltipContent.displayName = "TooltipContent";
42154
- const defaultProps$7 = {
42616
+ const defaultProps$6 = {
42155
42617
  hideTickX: false,
42156
42618
  hideTickY: false,
42157
42619
  hideX: false,
@@ -42167,18 +42629,18 @@ function AreaChart({
42167
42629
  data = [],
42168
42630
  nameKey,
42169
42631
  dataKeys = [],
42170
- hideTickX = defaultProps$7.hideTickX,
42171
- hideTickY = defaultProps$7.hideTickY,
42172
- hideY = defaultProps$7.hideY,
42173
- hideX = defaultProps$7.hideX,
42174
- hideTooltip = defaultProps$7.hideTooltip,
42175
- tickFormatterX = defaultProps$7.tickFormatterX,
42176
- tickFormatterY = defaultProps$7.tickFormatterY,
42632
+ hideTickX = defaultProps$6.hideTickX,
42633
+ hideTickY = defaultProps$6.hideTickY,
42634
+ hideY = defaultProps$6.hideY,
42635
+ hideX = defaultProps$6.hideX,
42636
+ hideTooltip = defaultProps$6.hideTooltip,
42637
+ tickFormatterX = defaultProps$6.tickFormatterX,
42638
+ tickFormatterY = defaultProps$6.tickFormatterY,
42177
42639
  className,
42178
42640
  children,
42179
- showLegend = defaultProps$7.showLegend,
42180
- stacked = defaultProps$7.stacked,
42181
- curved = defaultProps$7.curved,
42641
+ showLegend = defaultProps$6.showLegend,
42642
+ stacked = defaultProps$6.stacked,
42643
+ curved = defaultProps$6.curved,
42182
42644
  tooltipRenderer
42183
42645
  }) {
42184
42646
  const validData = Array.isArray(data) ? data : [];
@@ -42299,42 +42761,42 @@ const AreaChartMd = createMetadata({
42299
42761
  hideX: {
42300
42762
  description: "Determines whether the X-axis should be hidden. If set to `true`, the axis will not be rendered.",
42301
42763
  valueType: "boolean",
42302
- defaultValue: defaultProps$7.hideX
42764
+ defaultValue: defaultProps$6.hideX
42303
42765
  },
42304
42766
  hideY: {
42305
42767
  description: "Determines whether the Y-axis should be hidden. If set to `true`, the axis will not be rendered.",
42306
42768
  valueType: "boolean",
42307
- defaultValue: defaultProps$7.hideY
42769
+ defaultValue: defaultProps$6.hideY
42308
42770
  },
42309
42771
  hideTickX: {
42310
42772
  description: "Determines whether the X-axis tick labels should be hidden. If set to `true`, the tick labels will not be rendered.",
42311
42773
  valueType: "boolean",
42312
- defaultValue: defaultProps$7.hideTickX
42774
+ defaultValue: defaultProps$6.hideTickX
42313
42775
  },
42314
42776
  hideTickY: {
42315
42777
  description: "Determines whether the Y-axis tick labels should be hidden. If set to `true`, the tick labels will not be rendered.",
42316
42778
  valueType: "boolean",
42317
- defaultValue: defaultProps$7.hideTickY
42779
+ defaultValue: defaultProps$6.hideTickY
42318
42780
  },
42319
42781
  hideTooltip: {
42320
42782
  description: "Determines whether the tooltip should be hidden. If set to `true`, the tooltip will not be rendered.",
42321
42783
  valueType: "boolean",
42322
- defaultValue: defaultProps$7.hideTooltip
42784
+ defaultValue: defaultProps$6.hideTooltip
42323
42785
  },
42324
42786
  showLegend: {
42325
42787
  description: "Determines whether the legend should be shown. If set to `true`, the legend will be rendered.",
42326
42788
  valueType: "boolean",
42327
- defaultValue: defaultProps$7.showLegend
42789
+ defaultValue: defaultProps$6.showLegend
42328
42790
  },
42329
42791
  stacked: {
42330
42792
  description: "Determines whether multiple areas should be stacked on top of each other. If set to `true`, areas will be stacked.",
42331
42793
  valueType: "boolean",
42332
- defaultValue: defaultProps$7.stacked
42794
+ defaultValue: defaultProps$6.stacked
42333
42795
  },
42334
42796
  curved: {
42335
42797
  description: "Determines whether the area lines should be curved (smooth) or straight. If set to `true`, lines will be curved.",
42336
42798
  valueType: "boolean",
42337
- defaultValue: defaultProps$7.curved
42799
+ defaultValue: defaultProps$6.curved
42338
42800
  },
42339
42801
  tooltipTemplate: {
42340
42802
  description: "This property allows replacing the default template to display a tooltip."
@@ -42394,7 +42856,7 @@ const wrapper$2 = "_wrapper_il6v1_14";
42394
42856
  const styles$8 = {
42395
42857
  wrapper: wrapper$2
42396
42858
  };
42397
- const defaultProps$6 = {
42859
+ const defaultProps$5 = {
42398
42860
  layout: "vertical",
42399
42861
  stacked: false,
42400
42862
  hideTickX: false,
@@ -42412,21 +42874,21 @@ const defaultChartParams$1 = {
42412
42874
  };
42413
42875
  function BarChart({
42414
42876
  data = [],
42415
- layout = defaultProps$6.layout,
42877
+ layout = defaultProps$5.layout,
42416
42878
  nameKey,
42417
- stacked = defaultProps$6.stacked,
42879
+ stacked = defaultProps$5.stacked,
42418
42880
  dataKeys = [],
42419
- hideTickX = defaultProps$6.hideTickX,
42420
- hideTickY = defaultProps$6.hideTickY,
42421
- hideY = defaultProps$6.hideY,
42422
- hideX = defaultProps$6.hideX,
42423
- hideTooltip = defaultProps$6.hideTooltip,
42424
- tickFormatterX = defaultProps$6.tickFormatterX,
42425
- tickFormatterY = defaultProps$6.tickFormatterY,
42881
+ hideTickX = defaultProps$5.hideTickX,
42882
+ hideTickY = defaultProps$5.hideTickY,
42883
+ hideY = defaultProps$5.hideY,
42884
+ hideX = defaultProps$5.hideX,
42885
+ hideTooltip = defaultProps$5.hideTooltip,
42886
+ tickFormatterX = defaultProps$5.tickFormatterX,
42887
+ tickFormatterY = defaultProps$5.tickFormatterY,
42426
42888
  style: style2,
42427
42889
  className,
42428
42890
  children,
42429
- showLegend = defaultProps$6.showLegend,
42891
+ showLegend = defaultProps$5.showLegend,
42430
42892
  tooltipRenderer
42431
42893
  }) {
42432
42894
  const validData = useMemo(() => Array.isArray(data) ? data : [], [data]);
@@ -42760,13 +43222,13 @@ const BarChartMd = createMetadata({
42760
43222
  stacked: {
42761
43223
  description: `This property determines how the bars are laid out.If set to \`true\`, bars with the same category will be stacked on top of each other rather than placed side by side.`,
42762
43224
  valueType: "boolean",
42763
- defaultValue: defaultProps$6.stacked
43225
+ defaultValue: defaultProps$5.stacked
42764
43226
  },
42765
43227
  orientation: {
42766
43228
  description: `This property determines the orientation of the bar chart. The \`vertical\` variant specifies the horizontal axis as the primary and lays out the bars from left to right. The \`horizontal\` variant specifies the vertical axis as the primary and has the bars spread from top to bottom.`,
42767
43229
  valueType: "string",
42768
43230
  availableValues: ["horizontal", "vertical"],
42769
- defaultValue: defaultProps$6.layout
43231
+ defaultValue: defaultProps$5.layout
42770
43232
  },
42771
43233
  xKey: {
42772
43234
  description: `This property specifies the keys in the data objects that should be used for rendering the bars.E.g. 'id' or 'key'.`,
@@ -42775,40 +43237,40 @@ const BarChartMd = createMetadata({
42775
43237
  hideX: {
42776
43238
  description: "Determines whether the X-axis should be hidden. If set to `true`, the axis will not be rendered.",
42777
43239
  valueType: "boolean",
42778
- defaultValue: defaultProps$6.hideX
43240
+ defaultValue: defaultProps$5.hideX
42779
43241
  },
42780
43242
  hideY: {
42781
43243
  description: "Determines whether the Y-axis should be hidden. If set to `true`, the axis will not be rendered.",
42782
43244
  valueType: "boolean",
42783
- defaultValue: defaultProps$6.hideY
43245
+ defaultValue: defaultProps$5.hideY
42784
43246
  },
42785
43247
  hideTickX: {
42786
43248
  description: "Controls the visibility of the X-axis ticks. If set to `true`, tick labels on the X-axis will be hidden.",
42787
43249
  valueType: "boolean",
42788
- defaultValue: defaultProps$6.hideTickX
43250
+ defaultValue: defaultProps$5.hideTickX
42789
43251
  },
42790
43252
  hideTickY: {
42791
43253
  description: "Controls the visibility of the Y-axis ticks. If set to `true`, tick labels on the Y-axis will be hidden.",
42792
43254
  valueType: "boolean",
42793
- defaultValue: defaultProps$6.hideTickY
43255
+ defaultValue: defaultProps$5.hideTickY
42794
43256
  },
42795
43257
  tickFormatterX: {
42796
43258
  description: "A function that formats the tick labels on the X-axis. ",
42797
- defaultValue: JSON.stringify(defaultProps$6.tickFormatterX)
43259
+ defaultValue: JSON.stringify(defaultProps$5.tickFormatterX)
42798
43260
  },
42799
43261
  tickFormatterY: {
42800
43262
  description: "A function that formats the tick labels on the Y-axis. ",
42801
- defaultValue: JSON.stringify(defaultProps$6.tickFormatterY)
43263
+ defaultValue: JSON.stringify(defaultProps$5.tickFormatterY)
42802
43264
  },
42803
43265
  hideTooltip: {
42804
43266
  description: "Determines whether the tooltip should be hidden. If set to `true`, tooltips will not appear on hover.",
42805
43267
  valueType: "boolean",
42806
- defaultValue: defaultProps$6.hideTooltip
43268
+ defaultValue: defaultProps$5.hideTooltip
42807
43269
  },
42808
43270
  showLegend: {
42809
43271
  description: "Determines whether the legend should be displayed.",
42810
43272
  valueType: "boolean",
42811
- defaultValue: defaultProps$6.showLegend
43273
+ defaultValue: defaultProps$5.showLegend
42812
43274
  },
42813
43275
  tooltipTemplate: {
42814
43276
  description: "This property allows replacing the default template to display a tooltip."
@@ -42861,7 +43323,7 @@ const styles$7 = {
42861
43323
  themeVars: themeVars$2,
42862
43324
  wrapper: wrapper$1
42863
43325
  };
42864
- const defaultProps$5 = {
43326
+ const defaultProps$4 = {
42865
43327
  showLabel: true,
42866
43328
  showLabelList: false,
42867
43329
  showLegend: false,
@@ -42932,14 +43394,14 @@ function PieChart({
42932
43394
  nameKey,
42933
43395
  style: style2,
42934
43396
  className,
42935
- showLabel = defaultProps$5.showLabel,
42936
- showLabelList = defaultProps$5.showLabelList,
42937
- labelListPosition = defaultProps$5.labelListPosition,
42938
- innerRadius = defaultProps$5.innerRadius,
43397
+ showLabel = defaultProps$4.showLabel,
43398
+ showLabelList = defaultProps$4.showLabelList,
43399
+ labelListPosition = defaultProps$4.labelListPosition,
43400
+ innerRadius = defaultProps$4.innerRadius,
42939
43401
  children,
42940
43402
  outerRadius,
42941
43403
  // no default; we'll compute when undefined or "auto"
42942
- showLegend = defaultProps$5.showLegend
43404
+ showLegend = defaultProps$4.showLegend
42943
43405
  }) {
42944
43406
  const { getThemeVar } = useTheme();
42945
43407
  const colorValues = useMemo(() => {
@@ -43061,7 +43523,7 @@ function PieChart({
43061
43523
  }
43062
43524
  const COMP$8 = "DonutChart";
43063
43525
  const defaultPropsDonut = {
43064
- ...defaultProps$5,
43526
+ ...defaultProps$4,
43065
43527
  innerRadius: 60
43066
43528
  };
43067
43529
  const DonutChartMd = createMetadata({
@@ -43144,10 +43606,10 @@ const styles$6 = {
43144
43606
  themeVars: themeVars$1,
43145
43607
  labelList
43146
43608
  };
43147
- const defaultProps$4 = {
43609
+ const defaultProps$3 = {
43148
43610
  position: "inside"
43149
43611
  };
43150
- const LabelList = ({ position = defaultProps$4.position, nameKey: key, style: style2, className }) => {
43612
+ const LabelList = ({ position = defaultProps$3.position, nameKey: key, style: style2, className }) => {
43151
43613
  const { nameKey } = useChart();
43152
43614
  const { setLabelList } = useLabelList();
43153
43615
  const content2 = useMemo(
@@ -43205,7 +43667,7 @@ const LabelListMd = createMetadata({
43205
43667
  description: "The position of the label list",
43206
43668
  valueType: "string",
43207
43669
  availableValues: LabelPositionValues,
43208
- defaultValue: defaultProps$4.position
43670
+ defaultValue: defaultProps$3.position
43209
43671
  }
43210
43672
  },
43211
43673
  themeVars: parseScssVar(styles$6.themeVars),
@@ -43239,13 +43701,13 @@ const horizontalAlignmentValues = [
43239
43701
  "right",
43240
43702
  "center"
43241
43703
  ];
43242
- const defaultProps$3 = {
43704
+ const defaultProps$2 = {
43243
43705
  verticalAlign: "bottom",
43244
43706
  align: "center"
43245
43707
  };
43246
43708
  const Legend = ({
43247
- verticalAlign = defaultProps$3.verticalAlign,
43248
- align = defaultProps$3.align
43709
+ verticalAlign = defaultProps$2.verticalAlign,
43710
+ align = defaultProps$2.align
43249
43711
  }) => {
43250
43712
  const { setLegend } = useLegend();
43251
43713
  const content2 = useMemo(
@@ -43266,13 +43728,13 @@ const LegendMd = createMetadata({
43266
43728
  description: "The alignment of the legend",
43267
43729
  valueType: "string",
43268
43730
  availableValues: horizontalAlignmentValues,
43269
- defaultValue: defaultProps$3.align
43731
+ defaultValue: defaultProps$2.align
43270
43732
  },
43271
43733
  verticalAlign: {
43272
43734
  description: "The vertical alignment of the legend",
43273
43735
  valueType: "string",
43274
43736
  availableValues: verticalAlignmentValues,
43275
- defaultValue: defaultProps$3.verticalAlign
43737
+ defaultValue: defaultProps$2.verticalAlign
43276
43738
  }
43277
43739
  }
43278
43740
  });
@@ -43296,7 +43758,7 @@ const styles$5 = {
43296
43758
  themeVars,
43297
43759
  wrapper
43298
43760
  };
43299
- const defaultProps$2 = {
43761
+ const defaultProps$1 = {
43300
43762
  hideTickX: false,
43301
43763
  hideTickY: false,
43302
43764
  hideX: false,
@@ -43315,15 +43777,15 @@ const LineChart = forwardRef(function LineChart2({
43315
43777
  nameKey,
43316
43778
  style: style2,
43317
43779
  className,
43318
- hideX = defaultProps$2.hideX,
43319
- hideY = defaultProps$2.hideY,
43320
- hideTickX = defaultProps$2.hideTickX,
43321
- hideTickY = defaultProps$2.hideTickY,
43322
- hideTooltip = defaultProps$2.hideTooltip,
43323
- tickFormatterX = defaultProps$2.tickFormatterX,
43324
- tickFormatterY = defaultProps$2.tickFormatterY,
43780
+ hideX = defaultProps$1.hideX,
43781
+ hideY = defaultProps$1.hideY,
43782
+ hideTickX = defaultProps$1.hideTickX,
43783
+ hideTickY = defaultProps$1.hideTickY,
43784
+ hideTooltip = defaultProps$1.hideTooltip,
43785
+ tickFormatterX = defaultProps$1.tickFormatterX,
43786
+ tickFormatterY = defaultProps$1.tickFormatterY,
43325
43787
  children,
43326
- showLegend = defaultProps$2.showLegend,
43788
+ showLegend = defaultProps$1.showLegend,
43327
43789
  tooltipRenderer
43328
43790
  }, forwardedRef) {
43329
43791
  const { getThemeVar } = useTheme();
@@ -43553,27 +44015,27 @@ const LineChartMd = createMetadata({
43553
44015
  hideX: {
43554
44016
  description: "Determines whether the X-axis should be hidden. If set to (`true`), the axis will not be displayed.",
43555
44017
  valueType: "boolean",
43556
- defaultValue: defaultProps$2.hideX
44018
+ defaultValue: defaultProps$1.hideX
43557
44019
  },
43558
44020
  hideY: {
43559
44021
  description: "Determines whether the Y-axis should be hidden. If set to (`true`), the axis will not be displayed.",
43560
44022
  valueType: "boolean",
43561
- defaultValue: defaultProps$2.hideY
44023
+ defaultValue: defaultProps$1.hideY
43562
44024
  },
43563
44025
  hideTickX: {
43564
44026
  description: "Determines whether the X-axis ticks should be hidden. If set to (`true`), the ticks will not be displayed.",
43565
44027
  valueType: "boolean",
43566
- defaultValue: defaultProps$2.hideTickX
44028
+ defaultValue: defaultProps$1.hideTickX
43567
44029
  },
43568
44030
  hideTickY: {
43569
44031
  description: "Determines whether the Y-axis ticks should be hidden. If set to (`true`), the ticks will not be displayed.",
43570
44032
  valueType: "boolean",
43571
- defaultValue: defaultProps$2.hideTickY
44033
+ defaultValue: defaultProps$1.hideTickY
43572
44034
  },
43573
44035
  hideTooltip: {
43574
44036
  description: "Determines whether the tooltip should be hidden.If set to (`true`), no tooltip will be shown when hovering over data points.",
43575
44037
  valueType: "boolean",
43576
- defaultValue: defaultProps$2.hideTooltip
44038
+ defaultValue: defaultProps$1.hideTooltip
43577
44039
  },
43578
44040
  tickFormatterX: {
43579
44041
  description: "A function that formats the X-axis tick labels. It receives a tick value and returns a formatted string."
@@ -43584,7 +44046,7 @@ const LineChartMd = createMetadata({
43584
44046
  showLegend: {
43585
44047
  description: "Determines whether the legend should be displayed.",
43586
44048
  valueType: "boolean",
43587
- defaultValue: defaultProps$2.showLegend
44049
+ defaultValue: defaultProps$1.showLegend
43588
44050
  },
43589
44051
  tooltipTemplate: {
43590
44052
  description: "This property allows replacing the default template to display a tooltip."
@@ -43661,17 +44123,17 @@ const PieChartMd = createMetadata({
43661
44123
  showLabel: {
43662
44124
  description: "Toggles whether to show labels (`true`) or not (`false`).",
43663
44125
  valueType: "boolean",
43664
- defaultValue: defaultProps$5.showLabel
44126
+ defaultValue: defaultProps$4.showLabel
43665
44127
  },
43666
44128
  showLabelList: {
43667
44129
  description: "Whether to show labels in a list (`true`) or not (`false`).",
43668
44130
  valueType: "boolean",
43669
- defaultValue: defaultProps$5.showLabelList
44131
+ defaultValue: defaultProps$4.showLabelList
43670
44132
  },
43671
44133
  labelListPosition: {
43672
44134
  description: "The position of the label list.",
43673
44135
  valueType: "string",
43674
- defaultValue: defaultProps$5.labelListPosition,
44136
+ defaultValue: defaultProps$4.labelListPosition,
43675
44137
  availableValues: LabelPositionValues
43676
44138
  },
43677
44139
  outerRadius: d(
@@ -43680,7 +44142,7 @@ const PieChartMd = createMetadata({
43680
44142
  showLegend: {
43681
44143
  description: "Toggles whether to show legend (`true`) or not (`false`).",
43682
44144
  valueType: "boolean",
43683
- defaultValue: defaultProps$5.showLegend
44145
+ defaultValue: defaultProps$4.showLegend
43684
44146
  }
43685
44147
  },
43686
44148
  themeVars: parseScssVar(styles$7.themeVars),
@@ -43709,7 +44171,7 @@ const pieChartComponentRenderer = createComponentRenderer(
43709
44171
  );
43710
44172
  }
43711
44173
  );
43712
- const defaultProps$1 = {
44174
+ const defaultProps = {
43713
44175
  hideGrid: false,
43714
44176
  hideAngleAxis: false,
43715
44177
  hideRadiusAxis: false,
@@ -43723,16 +44185,16 @@ function RadarChart({
43723
44185
  data = [],
43724
44186
  nameKey,
43725
44187
  dataKeys = [],
43726
- hideGrid = defaultProps$1.hideGrid,
43727
- hideAngleAxis = defaultProps$1.hideAngleAxis,
43728
- hideRadiusAxis = defaultProps$1.hideRadiusAxis,
43729
- hideTooltip = defaultProps$1.hideTooltip,
44188
+ hideGrid = defaultProps.hideGrid,
44189
+ hideAngleAxis = defaultProps.hideAngleAxis,
44190
+ hideRadiusAxis = defaultProps.hideRadiusAxis,
44191
+ hideTooltip = defaultProps.hideTooltip,
43730
44192
  className,
43731
44193
  children,
43732
- showLegend = defaultProps$1.showLegend,
43733
- filled = defaultProps$1.filled,
43734
- strokeWidth = defaultProps$1.strokeWidth,
43735
- fillOpacity = defaultProps$1.fillOpacity,
44194
+ showLegend = defaultProps.showLegend,
44195
+ filled = defaultProps.filled,
44196
+ strokeWidth = defaultProps.strokeWidth,
44197
+ fillOpacity = defaultProps.fillOpacity,
43736
44198
  tooltipRenderer
43737
44199
  }) {
43738
44200
  const validData = Array.isArray(data) ? data : [];
@@ -43855,42 +44317,42 @@ const RadarChartMd = createMetadata({
43855
44317
  hideGrid: {
43856
44318
  description: "Determines whether the polar grid should be hidden. If set to `true`, the grid will not be rendered.",
43857
44319
  valueType: "boolean",
43858
- defaultValue: defaultProps$1.hideGrid
44320
+ defaultValue: defaultProps.hideGrid
43859
44321
  },
43860
44322
  hideAngleAxis: {
43861
44323
  description: "Determines whether the angle axis should be hidden. If set to `true`, the angle axis will not be rendered.",
43862
44324
  valueType: "boolean",
43863
- defaultValue: defaultProps$1.hideAngleAxis
44325
+ defaultValue: defaultProps.hideAngleAxis
43864
44326
  },
43865
44327
  hideRadiusAxis: {
43866
44328
  description: "Determines whether the radius axis should be hidden. If set to `true`, the radius axis will not be rendered.",
43867
44329
  valueType: "boolean",
43868
- defaultValue: defaultProps$1.hideRadiusAxis
44330
+ defaultValue: defaultProps.hideRadiusAxis
43869
44331
  },
43870
44332
  hideTooltip: {
43871
44333
  description: "Determines whether the tooltip should be hidden. If set to `true`, the tooltip will not be rendered.",
43872
44334
  valueType: "boolean",
43873
- defaultValue: defaultProps$1.hideTooltip
44335
+ defaultValue: defaultProps.hideTooltip
43874
44336
  },
43875
44337
  showLegend: {
43876
44338
  description: "Determines whether the legend should be shown. If set to `true`, the legend will be rendered.",
43877
44339
  valueType: "boolean",
43878
- defaultValue: defaultProps$1.showLegend
44340
+ defaultValue: defaultProps.showLegend
43879
44341
  },
43880
44342
  filled: {
43881
44343
  description: "Determines whether the radar areas should be filled. If set to `true`, areas will be filled with color.",
43882
44344
  valueType: "boolean",
43883
- defaultValue: defaultProps$1.filled
44345
+ defaultValue: defaultProps.filled
43884
44346
  },
43885
44347
  strokeWidth: {
43886
44348
  description: "Sets the stroke width for the radar lines. Higher values create thicker lines.",
43887
44349
  valueType: "number",
43888
- defaultValue: defaultProps$1.strokeWidth
44350
+ defaultValue: defaultProps.strokeWidth
43889
44351
  },
43890
44352
  fillOpacity: {
43891
44353
  description: "Sets the fill opacity for the radar areas when filled is true. Value between 0 and 1.",
43892
44354
  valueType: "number",
43893
- defaultValue: defaultProps$1.fillOpacity
44355
+ defaultValue: defaultProps.fillOpacity
43894
44356
  },
43895
44357
  tooltipTemplate: {
43896
44358
  description: "This property allows replacing the default template to display a tooltip."
@@ -44271,7 +44733,7 @@ class ComponentRegistry {
44271
44733
  * about component registrations
44272
44734
  */
44273
44735
  constructor(contributes = {}, extensionManager) {
44274
- var _a2, _b, _c;
44736
+ var _a2, _b, _c, _d;
44275
44737
  this.extensionManager = extensionManager;
44276
44738
  this.pool = /* @__PURE__ */ new Map();
44277
44739
  this.namePool = /* @__PURE__ */ new Map();
@@ -44279,6 +44741,7 @@ class ComponentRegistry {
44279
44741
  this.defaultThemeVars = {};
44280
44742
  this.actionFns = /* @__PURE__ */ new Map();
44281
44743
  this.loaders = /* @__PURE__ */ new Map();
44744
+ this.behaviors = [];
44282
44745
  this.extensionRegistered = (extension) => {
44283
44746
  var _a3;
44284
44747
  (_a3 = extension.components) == null ? void 0 : _a3.forEach((c) => {
@@ -44767,7 +45230,13 @@ class ComponentRegistry {
44767
45230
  this.registerLoaderRenderer(externalDataLoaderRenderer);
44768
45231
  this.registerLoaderRenderer(mockLoaderRenderer);
44769
45232
  this.registerLoaderRenderer(dataLoaderRenderer);
44770
- (_c = this.extensionManager) == null ? void 0 : _c.subscribeToRegistrations(this.extensionRegistered);
45233
+ this.registerBehavior(tooltipBehavior);
45234
+ this.registerBehavior(animationBehavior);
45235
+ this.registerBehavior(labelBehavior);
45236
+ (_c = contributes.behaviors) == null ? void 0 : _c.forEach((behavior) => {
45237
+ this.registerBehavior(behavior);
45238
+ });
45239
+ (_d = this.extensionManager) == null ? void 0 : _d.subscribeToRegistrations(this.extensionRegistered);
44771
45240
  }
44772
45241
  /**
44773
45242
  * All theme variables used by the registered components.
@@ -44874,6 +45343,22 @@ class ComponentRegistry {
44874
45343
  registerActionFn({ actionName: functionName, actionFn }) {
44875
45344
  this.actionFns.set(functionName, actionFn);
44876
45345
  }
45346
+ // --- Registers a behavior
45347
+ registerBehavior(behavior, location = "after", position) {
45348
+ if (position) {
45349
+ const targetIndex = this.behaviors.findIndex((b) => b.name === position);
45350
+ if (targetIndex !== -1) {
45351
+ const insertIndex = location === "before" ? targetIndex : targetIndex + 1;
45352
+ this.behaviors.splice(insertIndex, 0, behavior);
45353
+ return;
45354
+ }
45355
+ }
45356
+ this.behaviors.push(behavior);
45357
+ }
45358
+ // --- Returns all registered behaviors
45359
+ getBehaviors() {
45360
+ return this.behaviors;
45361
+ }
44877
45362
  }
44878
45363
  function ComponentProvider({
44879
45364
  children,
@@ -45756,7 +46241,7 @@ function IconProvider({ children }) {
45756
46241
  /* @__PURE__ */ jsx("svg", { style: { display: "none" }, ref: spriteRootRef })
45757
46242
  ] });
45758
46243
  }
45759
- const version = "0.10.20";
46244
+ const version = "0.10.22";
45760
46245
  const miscellaneousUtils = {
45761
46246
  capitalize,
45762
46247
  pluralize: pluralize$1,
@@ -48963,308 +49448,6 @@ function InvalidComponent({ errors = EMPTY_ARRAY, node, children }) {
48963
49448
  children
48964
49449
  ] });
48965
49450
  }
48966
- const AnimatedComponent = animated(
48967
- forwardRef(function InlineComponentDef(props, ref) {
48968
- const { children, ...rest } = props;
48969
- if (!React__default.isValidElement(children)) {
48970
- return children;
48971
- }
48972
- return React__default.cloneElement(children, { ...rest, ref });
48973
- })
48974
- );
48975
- const defaultProps = {
48976
- delay: 0,
48977
- animateWhenInView: false,
48978
- reverse: false,
48979
- loop: false,
48980
- once: false
48981
- };
48982
- const parseAnimation = (animation) => {
48983
- if (typeof animation === "object") {
48984
- return animation;
48985
- }
48986
- const presetAnimations = {
48987
- fadein: {
48988
- from: { opacity: 0 },
48989
- to: { opacity: 1 }
48990
- },
48991
- fadeout: {
48992
- from: { opacity: 1 },
48993
- to: { opacity: 0 }
48994
- },
48995
- slidein: {
48996
- from: { transform: "translateX(-100%)" },
48997
- to: { transform: "translateX(0%)" }
48998
- },
48999
- slideout: {
49000
- from: { transform: "translateX(0%)" },
49001
- to: { transform: "translateX(100%)" }
49002
- },
49003
- popin: {
49004
- from: { transform: "scale(0.8)", opacity: 0 },
49005
- to: { transform: "scale(1)", opacity: 1 }
49006
- },
49007
- popout: {
49008
- from: { transform: "scale(1)", opacity: 1 },
49009
- to: { transform: "scale(0.8)", opacity: 0 }
49010
- },
49011
- flipin: {
49012
- from: { transform: "rotateY(90deg)", opacity: 0 },
49013
- to: { transform: "rotateY(0deg)", opacity: 1 }
49014
- },
49015
- flipout: {
49016
- from: { transform: "rotateY(0deg)", opacity: 1 },
49017
- to: { transform: "rotateY(90deg)", opacity: 0 }
49018
- },
49019
- rotatein: {
49020
- from: { transform: "rotate(-180deg)", opacity: 0 },
49021
- to: { transform: "rotate(0deg)", opacity: 1 }
49022
- },
49023
- rotateout: {
49024
- from: { transform: "rotate(0deg)", opacity: 1 },
49025
- to: { transform: "rotate(180deg)", opacity: 0 }
49026
- },
49027
- zoomin: {
49028
- from: { transform: "scale(0)", opacity: 0 },
49029
- to: { transform: "scale(1)", opacity: 1 }
49030
- },
49031
- zoomout: {
49032
- from: { transform: "scale(1)", opacity: 1 },
49033
- to: { transform: "scale(0)", opacity: 0 }
49034
- }
49035
- };
49036
- return presetAnimations[animation] || { from: {}, to: {} };
49037
- };
49038
- function parseAnimationOptionValue(name, value) {
49039
- switch (name) {
49040
- case "duration":
49041
- case "delay":
49042
- const num = parseInt(value, 10);
49043
- return isNaN(num) ? void 0 : num;
49044
- case "animateWhenInView":
49045
- case "reverse":
49046
- case "loop":
49047
- case "once":
49048
- const lowerVal = value.toLowerCase();
49049
- if (lowerVal === "true" || lowerVal === "1" || lowerVal === "yes") return true;
49050
- if (lowerVal === "false" || lowerVal === "0" || lowerVal === "no") return false;
49051
- return void 0;
49052
- default:
49053
- return void 0;
49054
- }
49055
- }
49056
- function parseAnimationOptions(input2) {
49057
- if (isPlainObject(input2)) {
49058
- return input2;
49059
- }
49060
- if (typeof input2 === "string") {
49061
- const options2 = {};
49062
- const values = input2.split(";").map((value) => value.trim()).filter((value) => value.length > 0);
49063
- for (const value of values) {
49064
- if (value.includes(":")) {
49065
- const [name, val] = value.split(":").map((part) => part.trim());
49066
- if (name && val) {
49067
- const parsedValue = parseAnimationOptionValue(name, val);
49068
- if (parsedValue !== void 0) {
49069
- options2[name] = parsedValue;
49070
- }
49071
- }
49072
- } else {
49073
- const booleanOptions = ["animateWhenInView", "reverse", "loop", "once"];
49074
- if (booleanOptions.includes(value)) {
49075
- options2[value] = true;
49076
- } else if (value.startsWith("!") && value.length > 1) {
49077
- const optionName = value.substring(1);
49078
- if (booleanOptions.includes(optionName)) {
49079
- options2[optionName] = false;
49080
- }
49081
- }
49082
- }
49083
- }
49084
- return options2;
49085
- }
49086
- return {};
49087
- }
49088
- const Animation$1 = forwardRef(function Animation2({
49089
- children,
49090
- registerComponentApi,
49091
- animation,
49092
- duration,
49093
- onStop,
49094
- onStart,
49095
- delay: delay2 = defaultProps.delay,
49096
- animateWhenInView = defaultProps.animateWhenInView,
49097
- reverse: reverse2 = defaultProps.reverse,
49098
- loop = defaultProps.loop,
49099
- once = defaultProps.once,
49100
- ...rest
49101
- }, forwardedRef) {
49102
- const [_animation] = useState(animation);
49103
- const [toggle, setToggle] = useState(false);
49104
- const [reset, setReset] = useState(false);
49105
- const [count, setCount] = useState(0);
49106
- const times = 1;
49107
- useId();
49108
- const animationSettings = useMemo(
49109
- () => ({
49110
- from: _animation.from,
49111
- to: _animation.to,
49112
- config: {
49113
- ..._animation.config,
49114
- duration
49115
- },
49116
- delay: delay2,
49117
- loop,
49118
- reset,
49119
- reverse: toggle,
49120
- onRest: () => {
49121
- onStop == null ? void 0 : onStop();
49122
- if (loop) {
49123
- if (reverse2) {
49124
- setCount(count + 1);
49125
- setToggle(!toggle);
49126
- }
49127
- setReset(true);
49128
- } else {
49129
- if (reverse2 && count < times) {
49130
- setCount(count + 1);
49131
- setToggle(!toggle);
49132
- }
49133
- }
49134
- },
49135
- onStart: () => {
49136
- onStart == null ? void 0 : onStart();
49137
- }
49138
- }),
49139
- [
49140
- _animation.config,
49141
- _animation.from,
49142
- _animation.to,
49143
- count,
49144
- delay2,
49145
- duration,
49146
- loop,
49147
- onStart,
49148
- onStop,
49149
- reset,
49150
- once,
49151
- reverse2,
49152
- toggle
49153
- ]
49154
- );
49155
- const [springs, api] = useSpring(
49156
- () => ({
49157
- ...animationSettings
49158
- }),
49159
- [animationSettings]
49160
- );
49161
- const [ref, animationStyles] = useInView(() => animationSettings, {
49162
- once
49163
- });
49164
- const composedRef = ref ? composeRefs(ref, forwardedRef) : forwardedRef;
49165
- const startAnimation = useCallback(() => {
49166
- void api.start(_animation);
49167
- return () => {
49168
- api.stop();
49169
- };
49170
- }, [_animation, api]);
49171
- const stopAnimation = useCallback(() => {
49172
- api.stop();
49173
- }, [api]);
49174
- useEffect(() => {
49175
- registerComponentApi == null ? void 0 : registerComponentApi({
49176
- start: startAnimation,
49177
- stop: stopAnimation
49178
- });
49179
- }, [registerComponentApi, startAnimation, stopAnimation]);
49180
- const content2 = useMemo(() => {
49181
- return Children.map(
49182
- children,
49183
- (child, index) => animateWhenInView ? /* @__PURE__ */ jsx(AnimatedComponent, { ...rest, style: animationStyles, ref: composedRef, children: child }, index) : /* @__PURE__ */ jsx(AnimatedComponent, { ...rest, style: springs, ref: forwardedRef, children: child }, index)
49184
- );
49185
- }, [animateWhenInView, animationStyles, children, springs, rest, composedRef, forwardedRef]);
49186
- return content2;
49187
- });
49188
- const tooltipBehavior = {
49189
- name: "tooltip",
49190
- canAttach: (node) => {
49191
- var _a2, _b;
49192
- const tooltipText = (_a2 = node.props) == null ? void 0 : _a2.tooltip;
49193
- const tooltipMarkdown = (_b = node.props) == null ? void 0 : _b.tooltipMarkdown;
49194
- return !!tooltipText || !!tooltipMarkdown;
49195
- },
49196
- attach: (context, node) => {
49197
- var _a2, _b, _c;
49198
- const { extractValue } = context;
49199
- const tooltipText = extractValue((_a2 = context.node.props) == null ? void 0 : _a2.tooltip, true);
49200
- const tooltipMarkdown = extractValue((_b = context.node.props) == null ? void 0 : _b.tooltipMarkdown, true);
49201
- const tooltipOptions = extractValue((_c = context.node.props) == null ? void 0 : _c.tooltipOptions, true);
49202
- const parsedOptions = parseTooltipOptions(tooltipOptions);
49203
- return /* @__PURE__ */ jsx(Tooltip, { text: tooltipText, markdown: tooltipMarkdown, ...parsedOptions, children: node });
49204
- }
49205
- };
49206
- const animationBehavior = {
49207
- name: "animation",
49208
- canAttach: (node) => {
49209
- var _a2;
49210
- return !!((_a2 = node.props) == null ? void 0 : _a2.animation);
49211
- },
49212
- attach: (context, node) => {
49213
- var _a2, _b;
49214
- const { extractValue } = context;
49215
- const animation = extractValue((_a2 = context.node.props) == null ? void 0 : _a2.animation, true);
49216
- const animationOptions = extractValue((_b = context.node.props) == null ? void 0 : _b.animationOptions, true);
49217
- const parsedOptions = parseAnimationOptions(animationOptions);
49218
- return /* @__PURE__ */ jsx(Animation$1, { animation: parseAnimation(animation), ...parsedOptions, children: context.node.type === "ModalDialog" ? cloneElement(node, {
49219
- externalAnimation: true
49220
- }) : node });
49221
- }
49222
- };
49223
- const labelBehavior = {
49224
- name: "label",
49225
- canAttach: (node, metadata) => {
49226
- var _a2, _b;
49227
- if ((_a2 = metadata == null ? void 0 : metadata.props) == null ? void 0 : _a2.label) {
49228
- return false;
49229
- } else if (!((_b = node.props) == null ? void 0 : _b.label)) {
49230
- return false;
49231
- }
49232
- return true;
49233
- },
49234
- attach: (context, node) => {
49235
- var _a2;
49236
- const { extractValue, node: componentNode, className } = context;
49237
- const label2 = extractValue.asOptionalString(componentNode.props.label);
49238
- const labelPosition = extractValue(componentNode.props.labelPosition);
49239
- const labelWidth = extractValue.asOptionalString(componentNode.props.labelWidth);
49240
- const labelBreak2 = extractValue.asOptionalBoolean(componentNode.props.labelBreak);
49241
- const required2 = extractValue.asOptionalBoolean(componentNode.props.required);
49242
- const enabled2 = extractValue.asOptionalBoolean(componentNode.props.enabled, true);
49243
- const shrinkToLabel2 = extractValue.asOptionalBoolean(componentNode.props.shrinkToLabel);
49244
- const style2 = extractValue(componentNode.props.style);
49245
- const readOnly2 = extractValue.asOptionalBoolean(componentNode.props.readOnly);
49246
- return /* @__PURE__ */ jsx(
49247
- ItemWithLabel,
49248
- {
49249
- labelPosition,
49250
- label: label2,
49251
- labelWidth,
49252
- labelBreak: labelBreak2,
49253
- required: required2,
49254
- enabled: enabled2,
49255
- style: style2,
49256
- className,
49257
- shrinkToLabel: shrinkToLabel2,
49258
- labelStyle: { pointerEvents: readOnly2 ? "none" : void 0 },
49259
- isInputTemplateUsed: !!((_a2 = componentNode.props) == null ? void 0 : _a2.inputTemplate),
49260
- children: node
49261
- }
49262
- );
49263
- }
49264
- };
49265
- const getCoreBehaviors = () => {
49266
- return [tooltipBehavior, animationBehavior, labelBehavior];
49267
- };
49268
49451
  const ComponentAdapter = forwardRef(function ComponentAdapter2({
49269
49452
  node,
49270
49453
  state,
@@ -49423,7 +49606,7 @@ const ComponentAdapter = forwardRef(function ComponentAdapter2({
49423
49606
  }
49424
49607
  renderedNode = renderer(rendererContext);
49425
49608
  }
49426
- const behaviors = getCoreBehaviors();
49609
+ const behaviors = componentRegistry.getBehaviors();
49427
49610
  if (!isCompoundComponent) {
49428
49611
  for (const behavior of behaviors) {
49429
49612
  if (behavior.canAttach(rendererContext.node, descriptor)) {