xmlui 0.11.11 → 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.
@@ -254,11 +254,12 @@ declare interface Behavior {
254
254
  /**
255
255
  * A function that determines if the behavior should be applied based on the
256
256
  * component's context and props.
257
+ * @param context The renderer context of the component.
257
258
  * @param node The component definition.
258
259
  * @param metadata The metadata of the component.
259
260
  * @returns True if the behavior can be attached, otherwise false.
260
261
  */
261
- canAttach: (node: ComponentDef, metadata: ComponentMetadata) => boolean;
262
+ canAttach: (context: RendererContext<any>, node: ComponentDef, metadata: ComponentMetadata) => boolean;
262
263
  /**
263
264
  * A function that attaches the behavior to the component's React node.
264
265
  * @param context The renderer context of the component.
package/dist/lib/xmlui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { aa, Z, al, a1, ax, av, _, $, ai, ak, aw, ag, ab, a2, a0, S, ar, b, ao, ap, a4, a5, ae, af, as, aj, at, au, ah, ad, c, f, e, h, j, k, l, i, n, p, q, s, u, v, x, w, t, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, P, N, O, Q, R, U, V, a3, W, X, a7, an, a6, a8, aq, a9, am, Y, ac } from "./index-BNm0RhXG.js";
1
+ import { aa, Z, al, a1, ax, av, _, $, ai, ak, aw, ag, ab, a2, a0, S, ar, b, ao, ap, a4, a5, ae, af, as, aj, at, au, ah, ad, c, f, e, h, j, k, l, i, n, p, q, s, u, v, x, w, t, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, P, N, O, Q, R, U, V, a3, W, X, a7, an, a6, a8, aq, a9, am, Y, ac } from "./index-C_siLDTF.js";
2
2
  import { e as e2, x as x2 } from "./xmlui-parser-CW8YmGjO.js";
3
3
  import { X as X2 } from "./xmlui-serializer-CeCcgdVR.js";
4
4
  export {
@@ -12,7 +12,6 @@ import Color from "color";
12
12
  import toast, { Toaster, ToastBar } from "react-hot-toast";
13
13
  import { useLocation, NavLink as NavLink$1, useNavigate, Link, Routes, Route, Navigate, useParams, useSearchParams } from "@remix-run/react";
14
14
  import * as SheetPrimitive from "@radix-ui/react-dialog";
15
- import * as ReactDropdownMenu from "@radix-ui/react-dropdown-menu";
16
15
  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";
17
16
  import { createContext as createContext$1, useContextSelector } from "use-context-selector";
18
17
  import { parseRegExpLiteral } from "@eslint-community/regexpp";
@@ -2962,6 +2961,9 @@ const Button = React__default.forwardRef(function Button2({
2962
2961
  }, 0);
2963
2962
  }
2964
2963
  }, [autoFocus]);
2964
+ if (variant === "") {
2965
+ variant = defaultProps$1g.variant;
2966
+ }
2965
2967
  const iconToLeft = iconPosition === "start";
2966
2968
  if (!isSizeType(size)) {
2967
2969
  size = defaultProps$1g.size;
@@ -4546,9 +4548,10 @@ const TextBox = forwardRef(function TextBox2({
4546
4548
  useEffect(() => {
4547
4549
  setLocalValue(value);
4548
4550
  }, [value]);
4551
+ const normalizedInitialValue = initialValue ?? "";
4549
4552
  useEffect(() => {
4550
- updateState({ value: initialValue }, { initial: true });
4551
- }, [initialValue, updateState]);
4553
+ updateState({ value: normalizedInitialValue }, { initial: true });
4554
+ }, [normalizedInitialValue, updateState]);
4552
4555
  const updateValue = useCallback(
4553
4556
  (value2) => {
4554
4557
  setLocalValue(value2);
@@ -4630,6 +4633,15 @@ const TextBox = forwardRef(function TextBox2({
4630
4633
  required: required2
4631
4634
  }
4632
4635
  ),
4636
+ !readOnly2 && enabled2 && localValue.length > 0 && type == "search" && /* @__PURE__ */ jsx(
4637
+ Adornment,
4638
+ {
4639
+ "data-part-id": PART_END_ADORNMENT,
4640
+ iconName: "close",
4641
+ className: styles$1g.adornment,
4642
+ onClick: () => updateValue("")
4643
+ }
4644
+ ),
4633
4645
  type === "password" && showPasswordToggle ? /* @__PURE__ */ jsx(
4634
4646
  Adornment,
4635
4647
  {
@@ -8209,9 +8221,16 @@ const DropDownNavGroup = forwardRef(function DropDownNavGroup2({
8209
8221
  Trigger2 = DropdownMenuSubTrigger$1;
8210
8222
  Content2 = DropdownMenuSubContent$1;
8211
8223
  }
8212
- const [expanded2, setExpanded] = useState(initiallyExpanded);
8224
+ const [expanded2, setExpanded] = useState(false);
8213
8225
  const [renderCount, setRenderCount] = useState(false);
8214
- useEffect(() => setRenderCount(true), []);
8226
+ useEffect(() => {
8227
+ setRenderCount(true);
8228
+ if (initiallyExpanded) {
8229
+ requestAnimationFrame(() => {
8230
+ setExpanded(true);
8231
+ });
8232
+ }
8233
+ }, [initiallyExpanded]);
8215
8234
  return /* @__PURE__ */ jsxs(
8216
8235
  Wrapper,
8217
8236
  {
@@ -18393,6 +18412,11 @@ const styles$Z = {
18393
18412
  wrapper: wrapper$h,
18394
18413
  DropdownMenuSeparator
18395
18414
  };
18415
+ const DropdownMenuContext = createContext(null);
18416
+ const useDropdownMenuContext = () => {
18417
+ const context = useContext(DropdownMenuContext);
18418
+ return context;
18419
+ };
18396
18420
  const defaultDropdownMenuProps = {
18397
18421
  alignment: "start",
18398
18422
  triggerButtonVariant: "ghost",
@@ -18433,11 +18457,44 @@ const DropdownMenu = forwardRef(function DropdownMenu2({
18433
18457
  }
18434
18458
  };
18435
18459
  }, []);
18436
- return /* @__PURE__ */ jsxs(
18437
- ReactDropdownMenu.Root,
18460
+ const closeMenu = useCallback(() => {
18461
+ setOpen(false);
18462
+ }, []);
18463
+ const contentRef = useRef(null);
18464
+ const handleKeyDown = useCallback((event) => {
18465
+ if (event.key === "Escape") {
18466
+ setOpen(false);
18467
+ return;
18468
+ }
18469
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
18470
+ event.preventDefault();
18471
+ const content2 = contentRef.current;
18472
+ if (!content2) return;
18473
+ const menuItems = Array.from(
18474
+ content2.querySelectorAll('[role="menuitem"]:not([class*="disabled"])')
18475
+ );
18476
+ if (menuItems.length === 0) return;
18477
+ const currentIndex = menuItems.findIndex((item2) => item2 === document.activeElement);
18478
+ let nextIndex;
18479
+ if (currentIndex === -1) {
18480
+ nextIndex = event.key === "ArrowDown" ? 0 : menuItems.length - 1;
18481
+ } else if (event.key === "ArrowDown") {
18482
+ nextIndex = currentIndex < menuItems.length - 1 ? currentIndex + 1 : 0;
18483
+ } else {
18484
+ nextIndex = currentIndex > 0 ? currentIndex - 1 : menuItems.length - 1;
18485
+ }
18486
+ menuItems[nextIndex]?.focus();
18487
+ }
18488
+ if (event.key === "Enter" || event.key === " ") {
18489
+ return;
18490
+ }
18491
+ }, []);
18492
+ return /* @__PURE__ */ jsx(DropdownMenuContext.Provider, { value: { closeMenu }, children: /* @__PURE__ */ jsxs(
18493
+ Popover,
18438
18494
  {
18439
18495
  open,
18440
18496
  onOpenChange: async (isOpen) => {
18497
+ if (disabled2) return;
18441
18498
  if (isOpen) {
18442
18499
  if (closeTimeoutRef.current) {
18443
18500
  clearTimeout(closeTimeoutRef.current);
@@ -18455,31 +18512,51 @@ const DropdownMenu = forwardRef(function DropdownMenu2({
18455
18512
  }, 0);
18456
18513
  }
18457
18514
  },
18515
+ modal: false,
18458
18516
  children: [
18459
- /* @__PURE__ */ jsx(ReactDropdownMenu.Trigger, { ...rest, asChild: true, disabled: disabled2, ref, children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx(
18460
- Button,
18517
+ /* @__PURE__ */ jsx(
18518
+ PopoverTrigger,
18461
18519
  {
18462
- icon: /* @__PURE__ */ jsx(Icon$l, { name: triggerButtonIcon, fallback: "chevrondown" }),
18463
- iconPosition: triggerButtonIconPosition,
18464
- type: "button",
18465
- variant: triggerButtonVariant,
18466
- themeColor: triggerButtonThemeColor,
18520
+ ...rest,
18521
+ asChild: true,
18467
18522
  disabled: disabled2,
18468
- children: label2
18523
+ ref,
18524
+ "aria-haspopup": "menu",
18525
+ "aria-expanded": open,
18526
+ children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx(
18527
+ Button,
18528
+ {
18529
+ icon: /* @__PURE__ */ jsx(Icon$l, { name: triggerButtonIcon, fallback: "chevrondown" }),
18530
+ iconPosition: triggerButtonIconPosition,
18531
+ type: "button",
18532
+ variant: triggerButtonVariant,
18533
+ themeColor: triggerButtonThemeColor,
18534
+ disabled: disabled2,
18535
+ children: label2
18536
+ }
18537
+ )
18469
18538
  }
18470
- ) }),
18471
- /* @__PURE__ */ jsx(ReactDropdownMenu.Portal, { container: root2, children: /* @__PURE__ */ jsx(
18472
- ReactDropdownMenu.Content,
18539
+ ),
18540
+ /* @__PURE__ */ jsx(Portal, { container: root2, children: /* @__PURE__ */ jsx(
18541
+ PopoverContent,
18473
18542
  {
18543
+ ref: contentRef,
18474
18544
  align: alignment,
18475
18545
  style: style2,
18476
18546
  className: classnames(styles$Z.DropdownMenuContent, className),
18547
+ onOpenAutoFocus: (e) => {
18548
+ e.preventDefault();
18549
+ contentRef.current?.focus();
18550
+ },
18551
+ onKeyDownCapture: handleKeyDown,
18552
+ role: "menu",
18553
+ tabIndex: -1,
18477
18554
  children
18478
18555
  }
18479
18556
  ) })
18480
18557
  ]
18481
18558
  }
18482
- );
18559
+ ) });
18483
18560
  });
18484
18561
  const defaultMenuItemProps = {
18485
18562
  iconPosition: "start",
@@ -18497,26 +18574,45 @@ const MenuItem = forwardRef(function MenuItem2({
18497
18574
  enabled: enabled2 = true
18498
18575
  }, ref) {
18499
18576
  const iconToStart = iconPosition === "start";
18577
+ const context = useDropdownMenuContext();
18578
+ const handleClick = useCallback(
18579
+ (event) => {
18580
+ if (!enabled2) return;
18581
+ onClick(event);
18582
+ context?.closeMenu();
18583
+ },
18584
+ [enabled2, onClick, context]
18585
+ );
18586
+ const handleKeyDown = useCallback(
18587
+ (event) => {
18588
+ if (!enabled2) return;
18589
+ if (event.key === "Enter") {
18590
+ event.preventDefault();
18591
+ event.stopPropagation();
18592
+ onClick(event);
18593
+ context?.closeMenu();
18594
+ } else if (event.key === " ") {
18595
+ event.preventDefault();
18596
+ event.stopPropagation();
18597
+ onClick(event);
18598
+ context?.closeMenu();
18599
+ }
18600
+ },
18601
+ [enabled2, onClick, context]
18602
+ );
18500
18603
  return /* @__PURE__ */ jsxs(
18501
- ReactDropdownMenu.Item,
18604
+ "div",
18502
18605
  {
18503
18606
  style: style2,
18504
18607
  className: classnames(className, styles$Z.DropdownMenuItem, {
18505
18608
  [styles$Z.active]: active2,
18506
18609
  [styles$Z.disabled]: !enabled2
18507
18610
  }),
18508
- onClick: (event) => {
18509
- if (!enabled2) {
18510
- event.preventDefault();
18511
- event.stopPropagation();
18512
- return;
18513
- }
18514
- event.stopPropagation();
18515
- if (enabled2) {
18516
- onClick(event);
18517
- }
18518
- },
18519
18611
  ref,
18612
+ onClick: handleClick,
18613
+ onKeyDown: handleKeyDown,
18614
+ role: "menuitem",
18615
+ tabIndex: enabled2 ? 0 : -1,
18520
18616
  children: [
18521
18617
  iconToStart && icon2,
18522
18618
  /* @__PURE__ */ jsx("div", { className: styles$Z.wrapper, children: label2 ?? children }),
@@ -18525,17 +18621,38 @@ const MenuItem = forwardRef(function MenuItem2({
18525
18621
  }
18526
18622
  );
18527
18623
  });
18528
- const SubMenuItem = forwardRef(
18529
- function SubMenuItem2({ children, label: label2, triggerTemplate }, ref) {
18530
- const { root: root2 } = useTheme();
18531
- return /* @__PURE__ */ jsxs(ReactDropdownMenu.Sub, { children: [
18532
- /* @__PURE__ */ jsx(ReactDropdownMenu.SubTrigger, { className: styles$Z.DropdownMenuSubTrigger, asChild: true, ref, children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx("div", { children: label2 }) }),
18533
- /* @__PURE__ */ jsx(ReactDropdownMenu.Portal, { container: root2, children: /* @__PURE__ */ jsx(ReactDropdownMenu.SubContent, { className: styles$Z.DropdownMenuSubContent, children }) })
18534
- ] });
18535
- }
18536
- );
18624
+ const SubMenuItem = forwardRef(function SubMenuItem2({ children, label: label2, triggerTemplate }, ref) {
18625
+ const { root: root2 } = useTheme();
18626
+ const [open, setOpen] = useState(false);
18627
+ return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, modal: false, children: [
18628
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
18629
+ "div",
18630
+ {
18631
+ className: styles$Z.DropdownMenuSubTrigger,
18632
+ role: "menuitem",
18633
+ tabIndex: 0,
18634
+ ref,
18635
+ onMouseEnter: () => setOpen(true),
18636
+ onMouseLeave: () => setOpen(false),
18637
+ children: triggerTemplate ? triggerTemplate : /* @__PURE__ */ jsx("div", { children: label2 })
18638
+ }
18639
+ ) }),
18640
+ /* @__PURE__ */ jsx(Portal, { container: root2, children: /* @__PURE__ */ jsx(
18641
+ PopoverContent,
18642
+ {
18643
+ className: styles$Z.DropdownMenuSubContent,
18644
+ side: "right",
18645
+ align: "start",
18646
+ onMouseEnter: () => setOpen(true),
18647
+ onMouseLeave: () => setOpen(false),
18648
+ onOpenAutoFocus: (e) => e.preventDefault(),
18649
+ children
18650
+ }
18651
+ ) })
18652
+ ] });
18653
+ });
18537
18654
  const MenuSeparator = forwardRef(function MenuSeparator2(props, ref) {
18538
- return /* @__PURE__ */ jsx(ReactDropdownMenu.Separator, { ref, className: styles$Z.DropdownMenuSeparator, ...props });
18655
+ return /* @__PURE__ */ jsx("div", { ref, className: styles$Z.DropdownMenuSeparator, role: "separator", ...props });
18539
18656
  });
18540
18657
  const DDMCOMP = "DropdownMenu";
18541
18658
  const DropdownMenuMd = createMetadata({
@@ -35298,9 +35415,10 @@ function isMediaBreakpoint(value) {
35298
35415
  }
35299
35416
  const tooltipBehavior = {
35300
35417
  name: "tooltip",
35301
- canAttach: (node) => {
35302
- const tooltipText = node.props?.tooltip;
35303
- const tooltipMarkdown = node.props?.tooltipMarkdown;
35418
+ canAttach: (context, node) => {
35419
+ const { extractValue } = context;
35420
+ const tooltipText = extractValue(node.props?.tooltip, true);
35421
+ const tooltipMarkdown = extractValue(node.props?.tooltipMarkdown, true);
35304
35422
  return !!tooltipText || !!tooltipMarkdown;
35305
35423
  },
35306
35424
  attach: (context, node, metadata) => {
@@ -35314,8 +35432,10 @@ const tooltipBehavior = {
35314
35432
  };
35315
35433
  const animationBehavior = {
35316
35434
  name: "animation",
35317
- canAttach: (node) => {
35318
- return !!node.props?.animation;
35435
+ canAttach: (context, node) => {
35436
+ const { extractValue } = context;
35437
+ const animation = extractValue(node.props?.animation, true);
35438
+ return !!animation;
35319
35439
  },
35320
35440
  attach: (context, node, metadata) => {
35321
35441
  const { extractValue } = context;
@@ -35329,10 +35449,13 @@ const animationBehavior = {
35329
35449
  };
35330
35450
  const labelBehavior = {
35331
35451
  name: "label",
35332
- canAttach: (node, metadata) => {
35452
+ canAttach: (context, node, metadata) => {
35333
35453
  if (metadata?.props?.label) {
35334
35454
  return false;
35335
- } else if (!node.props?.label) {
35455
+ }
35456
+ const { extractValue } = context;
35457
+ const label2 = extractValue(node.props?.label, true);
35458
+ if (!label2) {
35336
35459
  return false;
35337
35460
  }
35338
35461
  return true;
@@ -35369,14 +35492,15 @@ const labelBehavior = {
35369
35492
  };
35370
35493
  const variantBehavior = {
35371
35494
  name: "variant",
35372
- canAttach: (node) => {
35373
- const variant = node.props?.variant;
35495
+ canAttach: (context, node) => {
35496
+ const { extractValue } = context;
35497
+ const variant = extractValue(node.props?.variant, true);
35374
35498
  if (!variant) {
35375
35499
  return false;
35376
35500
  }
35377
35501
  if (node.type === "Button") {
35378
35502
  const variantStr = typeof variant === "string" ? variant : String(variant);
35379
- return !buttonVariantValues.includes(variantStr);
35503
+ return variantStr != void 0 && variantStr !== "" && !buttonVariantValues.includes(variantStr);
35380
35504
  }
35381
35505
  if (node.type === "Badge") {
35382
35506
  const variantStr = typeof variant === "string" ? variant : String(variant);
@@ -36602,7 +36726,7 @@ const defaultProps$o = {
36602
36726
  weekStartsOn: 0,
36603
36727
  inline: true,
36604
36728
  clearable: false,
36605
- clearToInitialValue: true,
36729
+ clearToInitialValue: false,
36606
36730
  required: false,
36607
36731
  readOnly: false,
36608
36732
  autoFocus: false,
@@ -37744,7 +37868,7 @@ const defaultProps$n = {
37744
37868
  hour24: true,
37745
37869
  seconds: false,
37746
37870
  clearable: false,
37747
- clearToInitialValue: true,
37871
+ clearToInitialValue: false,
37748
37872
  required: false,
37749
37873
  readOnly: false,
37750
37874
  autoFocus: false,
@@ -43902,29 +44026,30 @@ const inspectButtonComponentRenderer = createComponentRenderer(
43902
44026
  }
43903
44027
  );
43904
44028
  const themeVars$4 = `'{"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)"}'`;
43905
- const nestedAppPlaceholder = "_nestedAppPlaceholder_2bz33_14";
43906
- const loadingContainer = "_loadingContainer_2bz33_21";
43907
- const logoWrapper = "_logoWrapper_2bz33_34";
43908
- const animatedLogoPath = "_animatedLogoPath_2bz33_39";
43909
- const loadingText = "_loadingText_2bz33_47";
43910
- const nestedAppRoot = "_nestedAppRoot_2bz33_71";
43911
- const shouldAnimate = "_shouldAnimate_2bz33_79";
43912
- const initialized = "_initialized_2bz33_83";
43913
- const nestedAppContainer = "_nestedAppContainer_2bz33_90";
43914
- const contentContainer = "_contentContainer_2bz33_109";
43915
- const splitViewMarkdown = "_splitViewMarkdown_2bz33_116";
43916
- const hidden = "_hidden_2bz33_125";
43917
- const viewControls = "_viewControls_2bz33_134";
43918
- const logo = "_logo_2bz33_34";
43919
- const splitViewButton = "_splitViewButton_2bz33_146";
43920
- const show = "_show_2bz33_154";
43921
- const hide = "_hide_2bz33_161";
43922
- const header = "_header_2bz33_167";
43923
- const headerText = "_headerText_2bz33_175";
43924
- const headerButton = "_headerButton_2bz33_204";
43925
- const wrapper$3 = "_wrapper_2bz33_211";
43926
- const shadowRoot = "_shadowRoot_2bz33_214";
43927
- const content$1 = "_content_2bz33_109";
44029
+ const nestedAppPlaceholder = "_nestedAppPlaceholder_1n7j8_14";
44030
+ const loadingContainer = "_loadingContainer_1n7j8_21";
44031
+ const logoWrapper = "_logoWrapper_1n7j8_34";
44032
+ const animatedLogoPath = "_animatedLogoPath_1n7j8_39";
44033
+ const loadingText = "_loadingText_1n7j8_47";
44034
+ const nestedAppRoot = "_nestedAppRoot_1n7j8_71";
44035
+ const shouldAnimate = "_shouldAnimate_1n7j8_79";
44036
+ const initialized = "_initialized_1n7j8_83";
44037
+ const nestedAppContainer = "_nestedAppContainer_1n7j8_90";
44038
+ const contentContainer = "_contentContainer_1n7j8_109";
44039
+ const splitViewMarkdown = "_splitViewMarkdown_1n7j8_116";
44040
+ const hidden = "_hidden_1n7j8_125";
44041
+ const viewControls = "_viewControls_1n7j8_134";
44042
+ const logo = "_logo_1n7j8_34";
44043
+ const splitViewButton = "_splitViewButton_1n7j8_146";
44044
+ const show = "_show_1n7j8_154";
44045
+ const hide = "_hide_1n7j8_161";
44046
+ const header = "_header_1n7j8_167";
44047
+ const headerText = "_headerText_1n7j8_175";
44048
+ const headerButton = "_headerButton_1n7j8_204";
44049
+ const wrapper$3 = "_wrapper_1n7j8_211";
44050
+ const controlWrapper = "_controlWrapper_1n7j8_214";
44051
+ const shadowRoot = "_shadowRoot_1n7j8_219";
44052
+ const content$1 = "_content_1n7j8_109";
43928
44053
  const styles$e = {
43929
44054
  themeVars: themeVars$4,
43930
44055
  nestedAppPlaceholder,
@@ -43948,12 +44073,14 @@ const styles$e = {
43948
44073
  headerText,
43949
44074
  headerButton,
43950
44075
  wrapper: wrapper$3,
44076
+ controlWrapper,
43951
44077
  shadowRoot,
43952
44078
  content: content$1
43953
44079
  };
43954
44080
  const defaultProps$c = {
43955
44081
  allowPlaygroundPopup: true,
43956
44082
  withFrame: true,
44083
+ allowReset: true,
43957
44084
  components: EMPTY_ARRAY
43958
44085
  };
43959
44086
  const COMP$f = "NestedApp";
@@ -44094,6 +44221,11 @@ It supports both side-by-side and stacked layouts.`,
44094
44221
  description: "This property defines whether the nested app should be displayed with a frame.",
44095
44222
  valueType: "boolean",
44096
44223
  defaultValue: defaultProps$c.withFrame
44224
+ },
44225
+ allowReset: {
44226
+ description: "This property defines whether the reset button should be displayed in the header.",
44227
+ valueType: "boolean",
44228
+ defaultValue: defaultProps$c.allowReset
44097
44229
  }
44098
44230
  },
44099
44231
  themeVars: parseScssVar(styles$d.themeVars),
@@ -44133,7 +44265,8 @@ const appWithCodeViewComponentRenderer = createComponentRenderer(
44133
44265
  title: extractValue(node.props?.title),
44134
44266
  height: extractValue(node.props?.height),
44135
44267
  allowPlaygroundPopup: extractValue.asOptionalBoolean(node.props?.allowPlaygroundPopup),
44136
- withFrame: extractValue.asOptionalBoolean(node.props?.withFrame)
44268
+ withFrame: extractValue.asOptionalBoolean(node.props?.withFrame),
44269
+ allowReset: extractValue.asOptionalBoolean(node.props?.allowReset)
44137
44270
  }
44138
44271
  );
44139
44272
  }
@@ -47947,7 +48080,7 @@ function IconProvider({ children }) {
47947
48080
  /* @__PURE__ */ jsx("svg", { style: { display: "none" }, ref: spriteRootRef })
47948
48081
  ] });
47949
48082
  }
47950
- const version = "0.11.11";
48083
+ const version = "0.11.12";
47951
48084
  const miscellaneousUtils = {
47952
48085
  capitalize,
47953
48086
  pluralize: pluralize$1,
@@ -51465,7 +51598,7 @@ const ComponentAdapter = forwardRef(function ComponentAdapter2({
51465
51598
  const behaviors = componentRegistry.getBehaviors();
51466
51599
  if (!isCompoundComponent) {
51467
51600
  for (const behavior of behaviors) {
51468
- if (behavior.canAttach(rendererContext.node, descriptor)) {
51601
+ if (behavior.canAttach(rendererContext, rendererContext.node, descriptor)) {
51469
51602
  renderedNode = behavior.attach(rendererContext, renderedNode, descriptor);
51470
51603
  }
51471
51604
  }
@@ -52521,7 +52654,7 @@ const ComponentViewer = () => {
52521
52654
  return "";
52522
52655
  }
52523
52656
  const { start: start2, end: end2, fileId } = compSrc;
52524
- const slicedSrc = sources[fileId].slice(start2, end2);
52657
+ const slicedSrc = sources[fileId].slice(start2, end2).replace(/inspect[\s\n]*=[\s\n]*"true"[\s\n]*/g, "");
52525
52658
  let dropEmptyLines = true;
52526
52659
  const prunedLines = [];
52527
52660
  let trimBeginCount = void 0;
@@ -52537,7 +52670,7 @@ const ComponentViewer = () => {
52537
52670
  }
52538
52671
  }
52539
52672
  });
52540
- return prunedLines.map((line2) => line2.slice(trimBeginCount).replace(/inspect="true"/g, "")).join("\n");
52673
+ return prunedLines.map((line2) => line2.slice(trimBeginCount)).join("\n");
52541
52674
  }, [inspectedNode2, sources]);
52542
52675
  return define_process_env_default$2.VITE_USER_COMPONENTS_Inspect !== "false" && isOpen && inspectedNode2 !== null ? /* @__PURE__ */ jsx(InspectorDialog, { isOpen, setIsOpen, clickPosition, children: /* @__PURE__ */ jsx(
52543
52676
  AppWithCodeViewNative,
@@ -52547,6 +52680,7 @@ const ComponentViewer = () => {
52547
52680
  initiallyShowCode: appGlobals?.initiallyShowCode ?? true,
52548
52681
  splitView: true,
52549
52682
  controlsWidth: "120px",
52683
+ allowReset: false,
52550
52684
  closeButton: /* @__PURE__ */ jsx(
52551
52685
  Tooltip$1,
52552
52686
  {
@@ -55596,7 +55730,7 @@ function ApiInterceptorProvider({
55596
55730
  return;
55597
55731
  }
55598
55732
  void (async () => {
55599
- const { initMock } = await import("./initMock-Bndg9J7D.js");
55733
+ const { initMock } = await import("./initMock-Dm6pyFPh.js");
55600
55734
  const apiInstance2 = await initMock(interceptor);
55601
55735
  setApiInstance(apiInstance2);
55602
55736
  setInitialized(true);
@@ -55613,7 +55747,7 @@ function ApiInterceptorProvider({
55613
55747
  if (define_process_env_default.VITE_MOCK_ENABLED) {
55614
55748
  const [{ createApiInterceptorWorker }, { initMock }] = await Promise.all([
55615
55749
  useWorker ? import("./apiInterceptorWorker-Wgm2_zjg.js") : Promise.resolve({ createApiInterceptorWorker: () => null }),
55616
- import("./initMock-Bndg9J7D.js")
55750
+ import("./initMock-Dm6pyFPh.js")
55617
55751
  ]);
55618
55752
  if (interceptor || forceInitialize) {
55619
55753
  const apiInstance2 = await initMock(interceptor || {});
@@ -55650,7 +55784,7 @@ function ApiInterceptorProvider({
55650
55784
  void (async () => {
55651
55785
  const [{ createApiInterceptorWorker }, { initMock }] = await Promise.all([
55652
55786
  import("./apiInterceptorWorker-Wgm2_zjg.js"),
55653
- import("./initMock-Bndg9J7D.js")
55787
+ import("./initMock-Dm6pyFPh.js")
55654
55788
  ]);
55655
55789
  const apiInstance2 = await initMock(interceptor);
55656
55790
  await createApiInterceptorWorker(apiInstance2, parentInterceptorWorker);
@@ -55975,6 +56109,7 @@ function AppWithCodeViewNative({
55975
56109
  markdown: markdown2,
55976
56110
  splitView,
55977
56111
  withFrame = true,
56112
+ allowReset = true,
55978
56113
  noHeader = false,
55979
56114
  initiallyShowCode = false,
55980
56115
  popOutUrl,
@@ -56057,7 +56192,7 @@ function AppWithCodeViewNative({
56057
56192
  )
56058
56193
  ] })
56059
56194
  ] }),
56060
- /* @__PURE__ */ jsxs("div", { className: styles$e.wrapper, style: { width: controlsWidth }, children: [
56195
+ /* @__PURE__ */ jsxs("div", { className: styles$e.controlWrapper, style: { width: controlsWidth }, children: [
56061
56196
  allowPlaygroundPopup && /* @__PURE__ */ jsx(
56062
56197
  Tooltip$1,
56063
56198
  {
@@ -56074,7 +56209,7 @@ function AppWithCodeViewNative({
56074
56209
  label: "View and edit in new full-width window"
56075
56210
  }
56076
56211
  ),
56077
- /* @__PURE__ */ jsx(
56212
+ allowReset && /* @__PURE__ */ jsx(
56078
56213
  Tooltip$1,
56079
56214
  {
56080
56215
  trigger: /* @__PURE__ */ jsx(
@@ -1,6 +1,6 @@
1
1
  import { delay as delay$1, HttpResponse, matchRequestUrl } from "msw";
2
2
  import { isArray, isObject, mapValues } from "lodash-es";
3
- import { r as runEventHandlerCode, g as getDate, d as delay, m as miscellaneousUtils, a as dateFunctions, o as orderBy, T as ThrowStatementError } from "./collectedComponentMetadata-DvV8yJ4N.js";
3
+ import { r as runEventHandlerCode, g as getDate, d as delay, m as miscellaneousUtils, a as dateFunctions, o as orderBy, T as ThrowStatementError } from "./collectedComponentMetadata-CCJh2wtR.js";
4
4
  import Dexie from "dexie";
5
5
  var HttpStatusCode = /* @__PURE__ */ ((HttpStatusCode2) => {
6
6
  HttpStatusCode2[HttpStatusCode2["Continue"] = 100] = "Continue";