xmlui 0.11.10 → 0.11.12

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.
@@ -12,8 +12,7 @@ import { formatDistanceToNow, parse, format, parseISO, isValid, isToday, isYeste
12
12
  import classnames from "classnames";
13
13
  import { c as PART_LABELED_ITEM, d as PART_LABEL, b as PART_INPUT, P as PART_START_ADORNMENT, a as PART_END_ADORNMENT, x as xmlUiMarkupToComponent, e as errReportComponent, f as errReportMessage, g as errReportScriptError, h as errReportModuleErrors } from "./xmlui-parser-CW8YmGjO.js";
14
14
  import Color from "color";
15
- import * as ReactDropdownMenu from "@radix-ui/react-dropdown-menu";
16
- import { DropdownMenu as DropdownMenu$1, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuSub, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuSubContent as DropdownMenuSubContent$1 } from "@radix-ui/react-dropdown-menu";
15
+ import { Popover, PopoverTrigger, Portal, PopoverContent, PopoverPortal } from "@radix-ui/react-popover";
17
16
  import * as VisuallyHidden$1 from "@radix-ui/react-visually-hidden";
18
17
  import { VisuallyHidden as VisuallyHidden$2 } from "@radix-ui/react-visually-hidden";
19
18
  import TextareaAutosize from "react-textarea-autosize";
@@ -23,13 +22,13 @@ import * as SheetPrimitive from "@radix-ui/react-dialog";
23
22
  import { useContextSelector, createContext as createContext$1 } from "use-context-selector";
24
23
  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, an as PARSED_MARK_PROP, ao as collectCodeBehindFromSource, ap as removeCodeBehindTokensFromTree } from "./transform-CQ_6R-43.js";
25
24
  import memoizeOne from "memoize-one";
25
+ import { DropdownMenu as DropdownMenu$1, DropdownMenuTrigger, DropdownMenuPortal, DropdownMenuContent as DropdownMenuContent$1, DropdownMenuItem as DropdownMenuItem$1, DropdownMenuSub, DropdownMenuSubTrigger as DropdownMenuSubTrigger$1, DropdownMenuSubContent as DropdownMenuSubContent$1 } from "@radix-ui/react-dropdown-menu";
26
26
  import { Virtualizer } from "virtua";
27
27
  import { useReactTable, getPaginationRowModel, getCoreRowModel, flexRender } from "@tanstack/react-table";
28
28
  import { useVirtualizer } from "@tanstack/react-virtual";
29
29
  import { RenderPropSticky } from "react-sticky-el";
30
30
  import * as dropzone from "react-dropzone";
31
31
  import toast, { Toaster, ToastBar } from "react-hot-toast";
32
- import { Popover, PopoverTrigger, Portal, PopoverContent, PopoverPortal } from "@radix-ui/react-popover";
33
32
  import * as InnerRadioGroup from "@radix-ui/react-radio-group";
34
33
  import { DayPicker } from "react-day-picker";
35
34
  import { Root, Track, Range, Thumb } from "@radix-ui/react-slider";
@@ -1824,6 +1823,9 @@ const Button = React__default.forwardRef(function Button2({
1824
1823
  }, 0);
1825
1824
  }
1826
1825
  }, [autoFocus]);
1826
+ if (variant === "") {
1827
+ variant = defaultProps$1f.variant;
1828
+ }
1827
1829
  const iconToLeft = iconPosition === "start";
1828
1830
  if (!isSizeType(size)) {
1829
1831
  size = defaultProps$1f.size;
@@ -3360,6 +3362,11 @@ function useFindIconRenderer(name, fallback) {
3360
3362
  }
3361
3363
  return { iconRenderer: null, iconName: null };
3362
3364
  }
3365
+ const DropdownMenuContext = createContext(null);
3366
+ const useDropdownMenuContext = () => {
3367
+ const context = useContext(DropdownMenuContext);
3368
+ return context;
3369
+ };
3363
3370
  const defaultDropdownMenuProps = {
3364
3371
  alignment: "start",
3365
3372
  triggerButtonVariant: "ghost",
@@ -3400,11 +3407,44 @@ const DropdownMenu = forwardRef(function DropdownMenu2({
3400
3407
  }
3401
3408
  };
3402
3409
  }, []);
3403
- return /* @__PURE__ */ jsxs(
3404
- ReactDropdownMenu.Root,
3410
+ const closeMenu = useCallback(() => {
3411
+ setOpen(false);
3412
+ }, []);
3413
+ const contentRef = useRef(null);
3414
+ const handleKeyDown = useCallback((event) => {
3415
+ if (event.key === "Escape") {
3416
+ setOpen(false);
3417
+ return;
3418
+ }
3419
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
3420
+ event.preventDefault();
3421
+ const content2 = contentRef.current;
3422
+ if (!content2) return;
3423
+ const menuItems = Array.from(
3424
+ content2.querySelectorAll('[role="menuitem"]:not([class*="disabled"])')
3425
+ );
3426
+ if (menuItems.length === 0) return;
3427
+ const currentIndex = menuItems.findIndex((item2) => item2 === document.activeElement);
3428
+ let nextIndex;
3429
+ if (currentIndex === -1) {
3430
+ nextIndex = event.key === "ArrowDown" ? 0 : menuItems.length - 1;
3431
+ } else if (event.key === "ArrowDown") {
3432
+ nextIndex = currentIndex < menuItems.length - 1 ? currentIndex + 1 : 0;
3433
+ } else {
3434
+ nextIndex = currentIndex > 0 ? currentIndex - 1 : menuItems.length - 1;
3435
+ }
3436
+ menuItems[nextIndex]?.focus();
3437
+ }
3438
+ if (event.key === "Enter" || event.key === " ") {
3439
+ return;
3440
+ }
3441
+ }, []);
3442
+ return /* @__PURE__ */ jsx(DropdownMenuContext.Provider, { value: { closeMenu }, children: /* @__PURE__ */ jsxs(
3443
+ Popover,
3405
3444
  {
3406
3445
  open,
3407
3446
  onOpenChange: async (isOpen) => {
3447
+ if (disabled2) return;
3408
3448
  if (isOpen) {
3409
3449
  if (closeTimeoutRef.current) {
3410
3450
  clearTimeout(closeTimeoutRef.current);
@@ -3422,31 +3462,51 @@ const DropdownMenu = forwardRef(function DropdownMenu2({
3422
3462
  }, 0);
3423
3463
  }
3424
3464
  },
3465
+ modal: false,
3425
3466
  children: [
3426
- /* @__PURE__ */ jsx(ReactDropdownMenu.Trigger, { ...rest, asChild: true, disabled: disabled2, ref, children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx(
3427
- Button,
3467
+ /* @__PURE__ */ jsx(
3468
+ PopoverTrigger,
3428
3469
  {
3429
- icon: /* @__PURE__ */ jsx(Icon, { name: triggerButtonIcon, fallback: "chevrondown" }),
3430
- iconPosition: triggerButtonIconPosition,
3431
- type: "button",
3432
- variant: triggerButtonVariant,
3433
- themeColor: triggerButtonThemeColor,
3470
+ ...rest,
3471
+ asChild: true,
3434
3472
  disabled: disabled2,
3435
- children: label2
3473
+ ref,
3474
+ "aria-haspopup": "menu",
3475
+ "aria-expanded": open,
3476
+ children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx(
3477
+ Button,
3478
+ {
3479
+ icon: /* @__PURE__ */ jsx(Icon, { name: triggerButtonIcon, fallback: "chevrondown" }),
3480
+ iconPosition: triggerButtonIconPosition,
3481
+ type: "button",
3482
+ variant: triggerButtonVariant,
3483
+ themeColor: triggerButtonThemeColor,
3484
+ disabled: disabled2,
3485
+ children: label2
3486
+ }
3487
+ )
3436
3488
  }
3437
- ) }),
3438
- /* @__PURE__ */ jsx(ReactDropdownMenu.Portal, { container: root2, children: /* @__PURE__ */ jsx(
3439
- ReactDropdownMenu.Content,
3489
+ ),
3490
+ /* @__PURE__ */ jsx(Portal, { container: root2, children: /* @__PURE__ */ jsx(
3491
+ PopoverContent,
3440
3492
  {
3493
+ ref: contentRef,
3441
3494
  align: alignment,
3442
3495
  style: style2,
3443
3496
  className: classnames(styles$1h.DropdownMenuContent, className),
3497
+ onOpenAutoFocus: (e) => {
3498
+ e.preventDefault();
3499
+ contentRef.current?.focus();
3500
+ },
3501
+ onKeyDownCapture: handleKeyDown,
3502
+ role: "menu",
3503
+ tabIndex: -1,
3444
3504
  children
3445
3505
  }
3446
3506
  ) })
3447
3507
  ]
3448
3508
  }
3449
- );
3509
+ ) });
3450
3510
  });
3451
3511
  const defaultMenuItemProps = {
3452
3512
  iconPosition: "start",
@@ -3464,26 +3524,45 @@ const MenuItem = forwardRef(function MenuItem2({
3464
3524
  enabled: enabled2 = true
3465
3525
  }, ref) {
3466
3526
  const iconToStart = iconPosition === "start";
3527
+ const context = useDropdownMenuContext();
3528
+ const handleClick = useCallback(
3529
+ (event) => {
3530
+ if (!enabled2) return;
3531
+ onClick(event);
3532
+ context?.closeMenu();
3533
+ },
3534
+ [enabled2, onClick, context]
3535
+ );
3536
+ const handleKeyDown = useCallback(
3537
+ (event) => {
3538
+ if (!enabled2) return;
3539
+ if (event.key === "Enter") {
3540
+ event.preventDefault();
3541
+ event.stopPropagation();
3542
+ onClick(event);
3543
+ context?.closeMenu();
3544
+ } else if (event.key === " ") {
3545
+ event.preventDefault();
3546
+ event.stopPropagation();
3547
+ onClick(event);
3548
+ context?.closeMenu();
3549
+ }
3550
+ },
3551
+ [enabled2, onClick, context]
3552
+ );
3467
3553
  return /* @__PURE__ */ jsxs(
3468
- ReactDropdownMenu.Item,
3554
+ "div",
3469
3555
  {
3470
3556
  style: style2,
3471
3557
  className: classnames(className, styles$1h.DropdownMenuItem, {
3472
3558
  [styles$1h.active]: active2,
3473
3559
  [styles$1h.disabled]: !enabled2
3474
3560
  }),
3475
- onClick: (event) => {
3476
- if (!enabled2) {
3477
- event.preventDefault();
3478
- event.stopPropagation();
3479
- return;
3480
- }
3481
- event.stopPropagation();
3482
- if (enabled2) {
3483
- onClick(event);
3484
- }
3485
- },
3486
3561
  ref,
3562
+ onClick: handleClick,
3563
+ onKeyDown: handleKeyDown,
3564
+ role: "menuitem",
3565
+ tabIndex: enabled2 ? 0 : -1,
3487
3566
  children: [
3488
3567
  iconToStart && icon2,
3489
3568
  /* @__PURE__ */ jsx("div", { className: styles$1h.wrapper, children: label2 ?? children }),
@@ -3492,17 +3571,38 @@ const MenuItem = forwardRef(function MenuItem2({
3492
3571
  }
3493
3572
  );
3494
3573
  });
3495
- const SubMenuItem = forwardRef(
3496
- function SubMenuItem2({ children, label: label2, triggerTemplate }, ref) {
3497
- const { root: root2 } = useTheme();
3498
- return /* @__PURE__ */ jsxs(ReactDropdownMenu.Sub, { children: [
3499
- /* @__PURE__ */ jsx(ReactDropdownMenu.SubTrigger, { className: styles$1h.DropdownMenuSubTrigger, asChild: true, ref, children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx("div", { children: label2 }) }),
3500
- /* @__PURE__ */ jsx(ReactDropdownMenu.Portal, { container: root2, children: /* @__PURE__ */ jsx(ReactDropdownMenu.SubContent, { className: styles$1h.DropdownMenuSubContent, children }) })
3501
- ] });
3502
- }
3503
- );
3574
+ const SubMenuItem = forwardRef(function SubMenuItem2({ children, label: label2, triggerTemplate }, ref) {
3575
+ const { root: root2 } = useTheme();
3576
+ const [open, setOpen] = useState(false);
3577
+ return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, modal: false, children: [
3578
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
3579
+ "div",
3580
+ {
3581
+ className: styles$1h.DropdownMenuSubTrigger,
3582
+ role: "menuitem",
3583
+ tabIndex: 0,
3584
+ ref,
3585
+ onMouseEnter: () => setOpen(true),
3586
+ onMouseLeave: () => setOpen(false),
3587
+ children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx("div", { children: label2 })
3588
+ }
3589
+ ) }),
3590
+ /* @__PURE__ */ jsx(Portal, { container: root2, children: /* @__PURE__ */ jsx(
3591
+ PopoverContent,
3592
+ {
3593
+ className: styles$1h.DropdownMenuSubContent,
3594
+ side: "right",
3595
+ align: "start",
3596
+ onMouseEnter: () => setOpen(true),
3597
+ onMouseLeave: () => setOpen(false),
3598
+ onOpenAutoFocus: (e) => e.preventDefault(),
3599
+ children
3600
+ }
3601
+ ) })
3602
+ ] });
3603
+ });
3504
3604
  const MenuSeparator = forwardRef(function MenuSeparator2(props, ref) {
3505
- return /* @__PURE__ */ jsx(ReactDropdownMenu.Separator, { ref, className: styles$1h.DropdownMenuSeparator, ...props });
3605
+ return /* @__PURE__ */ jsx("div", { ref, className: styles$1h.DropdownMenuSeparator, role: "separator", ...props });
3506
3606
  });
3507
3607
  const ResponsiveBarDropdown = ({
3508
3608
  overflowIcon,
@@ -8072,9 +8172,16 @@ const DropDownNavGroup = forwardRef(function DropDownNavGroup2({
8072
8172
  Trigger2 = DropdownMenuSubTrigger$1;
8073
8173
  Content2 = DropdownMenuSubContent$1;
8074
8174
  }
8075
- const [expanded2, setExpanded] = useState(initiallyExpanded);
8175
+ const [expanded2, setExpanded] = useState(false);
8076
8176
  const [renderCount, setRenderCount] = useState(false);
8077
- useEffect(() => setRenderCount(true), []);
8177
+ useEffect(() => {
8178
+ setRenderCount(true);
8179
+ if (initiallyExpanded) {
8180
+ requestAnimationFrame(() => {
8181
+ setExpanded(true);
8182
+ });
8183
+ }
8184
+ }, [initiallyExpanded]);
8078
8185
  return /* @__PURE__ */ jsxs(
8079
8186
  Wrapper,
8080
8187
  {
@@ -18009,6 +18116,8 @@ const CompoundComponent = forwardRef(
18009
18116
  appContext,
18010
18117
  state,
18011
18118
  lookupAction,
18119
+ contextVars,
18120
+ // Extract contextVars to prevent it from being passed to DOM elements
18012
18121
  ...restProps
18013
18122
  }, forwardedRef) => {
18014
18123
  const resolvedPropsInner = useMemo(() => {
@@ -19894,9 +20003,10 @@ const TextBox = forwardRef(function TextBox2({
19894
20003
  useEffect(() => {
19895
20004
  setLocalValue(value);
19896
20005
  }, [value]);
20006
+ const normalizedInitialValue = initialValue ?? "";
19897
20007
  useEffect(() => {
19898
- updateState({ value: initialValue }, { initial: true });
19899
- }, [initialValue, updateState]);
20008
+ updateState({ value: normalizedInitialValue }, { initial: true });
20009
+ }, [normalizedInitialValue, updateState]);
19900
20010
  const updateValue = useCallback(
19901
20011
  (value2) => {
19902
20012
  setLocalValue(value2);
@@ -19978,6 +20088,15 @@ const TextBox = forwardRef(function TextBox2({
19978
20088
  required: required2
19979
20089
  }
19980
20090
  ),
20091
+ !readOnly2 && enabled2 && localValue.length > 0 && type == "search" && /* @__PURE__ */ jsx(
20092
+ Adornment,
20093
+ {
20094
+ "data-part-id": PART_END_ADORNMENT,
20095
+ iconName: "close",
20096
+ className: styles$N.adornment,
20097
+ onClick: () => updateValue("")
20098
+ }
20099
+ ),
19981
20100
  type === "password" && showPasswordToggle ? /* @__PURE__ */ jsx(
19982
20101
  Adornment,
19983
20102
  {
@@ -24406,7 +24525,7 @@ function ApiInterceptorProvider({
24406
24525
  return;
24407
24526
  }
24408
24527
  void (async () => {
24409
- const { initMock } = await import("./initMock-DZD5kuk6.js");
24528
+ const { initMock } = await import("./initMock-BYfY6ibT.js");
24410
24529
  const apiInstance2 = await initMock(interceptor);
24411
24530
  setApiInstance(apiInstance2);
24412
24531
  setInitialized(true);
@@ -24423,7 +24542,7 @@ function ApiInterceptorProvider({
24423
24542
  if (process.env.VITE_MOCK_ENABLED) {
24424
24543
  const [{ createApiInterceptorWorker }, { initMock }] = await Promise.all([
24425
24544
  useWorker ? import("./apiInterceptorWorker-dwrAyq6l.js") : Promise.resolve({ createApiInterceptorWorker: () => null }),
24426
- import("./initMock-DZD5kuk6.js")
24545
+ import("./initMock-BYfY6ibT.js")
24427
24546
  ]);
24428
24547
  if (interceptor || forceInitialize) {
24429
24548
  const apiInstance2 = await initMock(interceptor || {});
@@ -24460,7 +24579,7 @@ function ApiInterceptorProvider({
24460
24579
  void (async () => {
24461
24580
  const [{ createApiInterceptorWorker }, { initMock }] = await Promise.all([
24462
24581
  import("./apiInterceptorWorker-dwrAyq6l.js"),
24463
- import("./initMock-DZD5kuk6.js")
24582
+ import("./initMock-BYfY6ibT.js")
24464
24583
  ]);
24465
24584
  const apiInstance2 = await initMock(interceptor);
24466
24585
  await createApiInterceptorWorker(apiInstance2, parentInterceptorWorker);
@@ -24562,29 +24681,30 @@ function useComponentRegistry() {
24562
24681
  return useContext(ComponentRegistryContext);
24563
24682
  }
24564
24683
  const themeVars$f = `'{"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)"}'`;
24565
- const nestedAppPlaceholder = "_nestedAppPlaceholder_2bz33_14";
24566
- const loadingContainer = "_loadingContainer_2bz33_21";
24567
- const logoWrapper = "_logoWrapper_2bz33_34";
24568
- const animatedLogoPath = "_animatedLogoPath_2bz33_39";
24569
- const loadingText = "_loadingText_2bz33_47";
24570
- const nestedAppRoot = "_nestedAppRoot_2bz33_71";
24571
- const shouldAnimate = "_shouldAnimate_2bz33_79";
24572
- const initialized = "_initialized_2bz33_83";
24573
- const nestedAppContainer = "_nestedAppContainer_2bz33_90";
24574
- const contentContainer = "_contentContainer_2bz33_109";
24575
- const splitViewMarkdown = "_splitViewMarkdown_2bz33_116";
24576
- const hidden = "_hidden_2bz33_125";
24577
- const viewControls = "_viewControls_2bz33_134";
24578
- const logo = "_logo_2bz33_34";
24579
- const splitViewButton = "_splitViewButton_2bz33_146";
24580
- const show = "_show_2bz33_154";
24581
- const hide = "_hide_2bz33_161";
24582
- const header$1 = "_header_2bz33_167";
24583
- const headerText = "_headerText_2bz33_175";
24584
- const headerButton = "_headerButton_2bz33_204";
24585
- const wrapper$9 = "_wrapper_2bz33_211";
24586
- const shadowRoot = "_shadowRoot_2bz33_214";
24587
- const content$2 = "_content_2bz33_109";
24684
+ const nestedAppPlaceholder = "_nestedAppPlaceholder_1n7j8_14";
24685
+ const loadingContainer = "_loadingContainer_1n7j8_21";
24686
+ const logoWrapper = "_logoWrapper_1n7j8_34";
24687
+ const animatedLogoPath = "_animatedLogoPath_1n7j8_39";
24688
+ const loadingText = "_loadingText_1n7j8_47";
24689
+ const nestedAppRoot = "_nestedAppRoot_1n7j8_71";
24690
+ const shouldAnimate = "_shouldAnimate_1n7j8_79";
24691
+ const initialized = "_initialized_1n7j8_83";
24692
+ const nestedAppContainer = "_nestedAppContainer_1n7j8_90";
24693
+ const contentContainer = "_contentContainer_1n7j8_109";
24694
+ const splitViewMarkdown = "_splitViewMarkdown_1n7j8_116";
24695
+ const hidden = "_hidden_1n7j8_125";
24696
+ const viewControls = "_viewControls_1n7j8_134";
24697
+ const logo = "_logo_1n7j8_34";
24698
+ const splitViewButton = "_splitViewButton_1n7j8_146";
24699
+ const show = "_show_1n7j8_154";
24700
+ const hide = "_hide_1n7j8_161";
24701
+ const header$1 = "_header_1n7j8_167";
24702
+ const headerText = "_headerText_1n7j8_175";
24703
+ const headerButton = "_headerButton_1n7j8_204";
24704
+ const wrapper$9 = "_wrapper_1n7j8_211";
24705
+ const controlWrapper = "_controlWrapper_1n7j8_214";
24706
+ const shadowRoot = "_shadowRoot_1n7j8_219";
24707
+ const content$2 = "_content_1n7j8_109";
24588
24708
  const styles$x = {
24589
24709
  themeVars: themeVars$f,
24590
24710
  nestedAppPlaceholder,
@@ -24608,6 +24728,7 @@ const styles$x = {
24608
24728
  headerText,
24609
24729
  headerButton,
24610
24730
  wrapper: wrapper$9,
24731
+ controlWrapper,
24611
24732
  shadowRoot,
24612
24733
  content: content$2
24613
24734
  };
@@ -24982,6 +25103,7 @@ function AppWithCodeViewNative({
24982
25103
  markdown: markdown2,
24983
25104
  splitView,
24984
25105
  withFrame = true,
25106
+ allowReset = true,
24985
25107
  noHeader = false,
24986
25108
  initiallyShowCode = false,
24987
25109
  popOutUrl,
@@ -25064,7 +25186,7 @@ function AppWithCodeViewNative({
25064
25186
  )
25065
25187
  ] })
25066
25188
  ] }),
25067
- /* @__PURE__ */ jsxs("div", { className: styles$x.wrapper, style: { width: controlsWidth }, children: [
25189
+ /* @__PURE__ */ jsxs("div", { className: styles$x.controlWrapper, style: { width: controlsWidth }, children: [
25068
25190
  allowPlaygroundPopup && /* @__PURE__ */ jsx(
25069
25191
  Tooltip$1,
25070
25192
  {
@@ -25081,7 +25203,7 @@ function AppWithCodeViewNative({
25081
25203
  label: "View and edit in new full-width window"
25082
25204
  }
25083
25205
  ),
25084
- /* @__PURE__ */ jsx(
25206
+ allowReset && /* @__PURE__ */ jsx(
25085
25207
  Tooltip$1,
25086
25208
  {
25087
25209
  trigger: /* @__PURE__ */ jsx(
@@ -31971,6 +32093,36 @@ const XmlUiRedThemeDefinition = {
31971
32093
  extends: "xmlui",
31972
32094
  themeVars: { ...redThemeColors }
31973
32095
  };
32096
+ const XmlUiDocsThemeDefinition = {
32097
+ id: "xmlui-docs",
32098
+ extends: "xmlui",
32099
+ themeVars: {}
32100
+ };
32101
+ const XmlUiBlogThemeDefinition = {
32102
+ id: "xmlui-blog",
32103
+ extends: "xmlui",
32104
+ themeVars: {}
32105
+ };
32106
+ const XmlUiWebThemeDefinition = {
32107
+ id: "xmlui-web",
32108
+ extends: "xmlui",
32109
+ themeVars: {
32110
+ // --- Fundamental colors & typography
32111
+ "maxWidth-content-AppHeader": "1280px",
32112
+ backgroundColor: "$color-surface-0",
32113
+ "color-primary": "#3367CC",
32114
+ "color-surface": "#1e2734",
32115
+ "fontWeight-Text": "400",
32116
+ "fontWeight-bold": "700",
32117
+ "textColor-primary": "$color-surface-800",
32118
+ "textColor-NavLink--active": "$color-primary",
32119
+ // --- App layout
32120
+ "maxWidth-content-App": "800px",
32121
+ // --- Headings
32122
+ "fontSize-H2": "32px",
32123
+ "fontSize-H3": "$space-6"
32124
+ }
32125
+ };
31974
32126
  const ThemeToneKeys = ["light", "dark"];
31975
32127
  function useCompiledTheme(activeTheme, activeTone, themes = EMPTY_ARRAY, resources = EMPTY_OBJECT, resourceMap = EMPTY_OBJECT) {
31976
32128
  const componentRegistry = useComponentRegistry();
@@ -32135,7 +32287,10 @@ const builtInThemes = [
32135
32287
  XmlUiOrangeThemeDefinition,
32136
32288
  XmlUiPurpleThemeDefinition,
32137
32289
  XmlUiCyanThemeDefinition,
32138
- XmlUiRedThemeDefinition
32290
+ XmlUiRedThemeDefinition,
32291
+ XmlUiDocsThemeDefinition,
32292
+ XmlUiBlogThemeDefinition,
32293
+ XmlUiWebThemeDefinition
32139
32294
  /*SolidThemeDefinition,*/
32140
32295
  ];
32141
32296
  function ThemeProvider({
@@ -33546,9 +33701,10 @@ function isMediaBreakpoint(value) {
33546
33701
  }
33547
33702
  const tooltipBehavior = {
33548
33703
  name: "tooltip",
33549
- canAttach: (node) => {
33550
- const tooltipText = node.props?.tooltip;
33551
- const tooltipMarkdown = node.props?.tooltipMarkdown;
33704
+ canAttach: (context, node) => {
33705
+ const { extractValue } = context;
33706
+ const tooltipText = extractValue(node.props?.tooltip, true);
33707
+ const tooltipMarkdown = extractValue(node.props?.tooltipMarkdown, true);
33552
33708
  return !!tooltipText || !!tooltipMarkdown;
33553
33709
  },
33554
33710
  attach: (context, node, metadata) => {
@@ -33562,8 +33718,10 @@ const tooltipBehavior = {
33562
33718
  };
33563
33719
  const animationBehavior = {
33564
33720
  name: "animation",
33565
- canAttach: (node) => {
33566
- return !!node.props?.animation;
33721
+ canAttach: (context, node) => {
33722
+ const { extractValue } = context;
33723
+ const animation = extractValue(node.props?.animation, true);
33724
+ return !!animation;
33567
33725
  },
33568
33726
  attach: (context, node, metadata) => {
33569
33727
  const { extractValue } = context;
@@ -33577,10 +33735,13 @@ const animationBehavior = {
33577
33735
  };
33578
33736
  const labelBehavior = {
33579
33737
  name: "label",
33580
- canAttach: (node, metadata) => {
33738
+ canAttach: (context, node, metadata) => {
33581
33739
  if (metadata?.props?.label) {
33582
33740
  return false;
33583
- } else if (!node.props?.label) {
33741
+ }
33742
+ const { extractValue } = context;
33743
+ const label2 = extractValue(node.props?.label, true);
33744
+ if (!label2) {
33584
33745
  return false;
33585
33746
  }
33586
33747
  return true;
@@ -33617,14 +33778,15 @@ const labelBehavior = {
33617
33778
  };
33618
33779
  const variantBehavior = {
33619
33780
  name: "variant",
33620
- canAttach: (node) => {
33621
- const variant = node.props?.variant;
33781
+ canAttach: (context, node) => {
33782
+ const { extractValue } = context;
33783
+ const variant = extractValue(node.props?.variant, true);
33622
33784
  if (!variant) {
33623
33785
  return false;
33624
33786
  }
33625
33787
  if (node.type === "Button") {
33626
33788
  const variantStr = typeof variant === "string" ? variant : String(variant);
33627
- return !buttonVariantValues.includes(variantStr);
33789
+ return variantStr != void 0 && variantStr !== "" && !buttonVariantValues.includes(variantStr);
33628
33790
  }
33629
33791
  if (node.type === "Badge") {
33630
33792
  const variantStr = typeof variant === "string" ? variant : String(variant);
@@ -35010,7 +35172,7 @@ const defaultProps$k = {
35010
35172
  weekStartsOn: 0,
35011
35173
  inline: true,
35012
35174
  clearable: false,
35013
- clearToInitialValue: true,
35175
+ clearToInitialValue: false,
35014
35176
  required: false,
35015
35177
  readOnly: false,
35016
35178
  autoFocus: false,
@@ -36152,7 +36314,7 @@ const defaultProps$j = {
36152
36314
  hour24: true,
36153
36315
  seconds: false,
36154
36316
  clearable: false,
36155
- clearToInitialValue: true,
36317
+ clearToInitialValue: false,
36156
36318
  required: false,
36157
36319
  readOnly: false,
36158
36320
  autoFocus: false,
@@ -42348,6 +42510,7 @@ const inspectButtonComponentRenderer = createComponentRenderer(
42348
42510
  const defaultProps$7 = {
42349
42511
  allowPlaygroundPopup: true,
42350
42512
  withFrame: true,
42513
+ allowReset: true,
42351
42514
  components: EMPTY_ARRAY
42352
42515
  };
42353
42516
  const COMP$d = "NestedApp";
@@ -42488,6 +42651,11 @@ It supports both side-by-side and stacked layouts.`,
42488
42651
  description: "This property defines whether the nested app should be displayed with a frame.",
42489
42652
  valueType: "boolean",
42490
42653
  defaultValue: defaultProps$7.withFrame
42654
+ },
42655
+ allowReset: {
42656
+ description: "This property defines whether the reset button should be displayed in the header.",
42657
+ valueType: "boolean",
42658
+ defaultValue: defaultProps$7.allowReset
42491
42659
  }
42492
42660
  },
42493
42661
  themeVars: parseScssVar(styles$a.themeVars),
@@ -42527,7 +42695,8 @@ const appWithCodeViewComponentRenderer = createComponentRenderer(
42527
42695
  title: extractValue(node.props?.title),
42528
42696
  height: extractValue(node.props?.height),
42529
42697
  allowPlaygroundPopup: extractValue.asOptionalBoolean(node.props?.allowPlaygroundPopup),
42530
- withFrame: extractValue.asOptionalBoolean(node.props?.withFrame)
42698
+ withFrame: extractValue.asOptionalBoolean(node.props?.withFrame),
42699
+ allowReset: extractValue.asOptionalBoolean(node.props?.allowReset)
42531
42700
  }
42532
42701
  );
42533
42702
  }
@@ -46302,7 +46471,7 @@ function IconProvider({ children }) {
46302
46471
  /* @__PURE__ */ jsx("svg", { style: { display: "none" }, ref: spriteRootRef })
46303
46472
  ] });
46304
46473
  }
46305
- const version = "0.11.10";
46474
+ const version = "0.11.12";
46306
46475
  const miscellaneousUtils = {
46307
46476
  capitalize,
46308
46477
  pluralize: pluralize$1,
@@ -49623,9 +49792,6 @@ const ComponentAdapter = forwardRef(function ComponentAdapter2({
49623
49792
  (url) => {
49624
49793
  const extractedUrl = valueExtractor(url);
49625
49794
  if (typeof extractedUrl !== "string" || extractedUrl.trim() === "") {
49626
- console.warn(
49627
- `Component '${safeNode.type}': the extracted resource URL is not a valid string: value ${extractedUrl}, type ${typeof extractedUrl}`
49628
- );
49629
49795
  return void 0;
49630
49796
  }
49631
49797
  return getResourceUrl(extractedUrl);
@@ -49690,7 +49856,7 @@ const ComponentAdapter = forwardRef(function ComponentAdapter2({
49690
49856
  const behaviors = componentRegistry.getBehaviors();
49691
49857
  if (!isCompoundComponent) {
49692
49858
  for (const behavior of behaviors) {
49693
- if (behavior.canAttach(rendererContext.node, descriptor)) {
49859
+ if (behavior.canAttach(rendererContext, rendererContext.node, descriptor)) {
49694
49860
  renderedNode = behavior.attach(rendererContext, renderedNode, descriptor);
49695
49861
  }
49696
49862
  }
@@ -50734,7 +50900,7 @@ const ComponentViewer = () => {
50734
50900
  return "";
50735
50901
  }
50736
50902
  const { start: start2, end: end2, fileId } = compSrc;
50737
- const slicedSrc = sources[fileId].slice(start2, end2);
50903
+ const slicedSrc = sources[fileId].slice(start2, end2).replace(/inspect[\s\n]*=[\s\n]*"true"[\s\n]*/g, "");
50738
50904
  let dropEmptyLines = true;
50739
50905
  const prunedLines = [];
50740
50906
  let trimBeginCount = void 0;
@@ -50750,7 +50916,7 @@ const ComponentViewer = () => {
50750
50916
  }
50751
50917
  }
50752
50918
  });
50753
- return prunedLines.map((line2) => line2.slice(trimBeginCount).replace(/inspect="true"/g, "")).join("\n");
50919
+ return prunedLines.map((line2) => line2.slice(trimBeginCount)).join("\n");
50754
50920
  }, [inspectedNode2, sources]);
50755
50921
  return process.env.VITE_USER_COMPONENTS_Inspect !== "false" && isOpen && inspectedNode2 !== null ? /* @__PURE__ */ jsx(InspectorDialog, { isOpen, setIsOpen, clickPosition, children: /* @__PURE__ */ jsx(
50756
50922
  AppWithCodeViewNative,
@@ -50760,6 +50926,7 @@ const ComponentViewer = () => {
50760
50926
  initiallyShowCode: appGlobals?.initiallyShowCode ?? true,
50761
50927
  splitView: true,
50762
50928
  controlsWidth: "120px",
50929
+ allowReset: false,
50763
50930
  closeButton: /* @__PURE__ */ jsx(
50764
50931
  Tooltip$1,
50765
50932
  {