@estiva-app/ui 0.21.1 → 0.23.0

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 (108) hide show
  1. package/README.md +21 -0
  2. package/dist/Avatar.d.ts +3 -0
  3. package/dist/Avatar.d.ts.map +1 -1
  4. package/dist/Banner.d.ts +20 -2
  5. package/dist/Banner.d.ts.map +1 -1
  6. package/dist/ChipInput.d.ts +3 -0
  7. package/dist/ChipInput.d.ts.map +1 -1
  8. package/dist/CommandPalette.d.ts +6 -0
  9. package/dist/CommandPalette.d.ts.map +1 -1
  10. package/dist/ContainerHeader.d.ts +25 -0
  11. package/dist/ContainerHeader.d.ts.map +1 -0
  12. package/dist/EmptyState.d.ts +10 -1
  13. package/dist/EmptyState.d.ts.map +1 -1
  14. package/dist/IdentityMenu.d.ts +3 -0
  15. package/dist/IdentityMenu.d.ts.map +1 -1
  16. package/dist/Menu.d.ts +7 -0
  17. package/dist/Menu.d.ts.map +1 -1
  18. package/dist/Skeleton.d.ts +2 -0
  19. package/dist/Skeleton.d.ts.map +1 -1
  20. package/dist/Toast.d.ts +5 -0
  21. package/dist/Toast.d.ts.map +1 -1
  22. package/dist/Toolbar.d.ts +4 -0
  23. package/dist/Toolbar.d.ts.map +1 -1
  24. package/dist/Tooltip.d.ts +4 -0
  25. package/dist/Tooltip.d.ts.map +1 -1
  26. package/dist/gates/app-checks.d.ts.map +1 -1
  27. package/dist/gates/{chunk-ZGJ2J5NU.js → chunk-EA33NP5B.js} +275 -11
  28. package/dist/gates/chunk-EA33NP5B.js.map +7 -0
  29. package/dist/gates/{chunk-AUXD4GCY.js → chunk-GTQZEHPC.js} +15 -1
  30. package/dist/gates/chunk-GTQZEHPC.js.map +7 -0
  31. package/dist/gates/cli.js +1 -1
  32. package/dist/gates/create-app.d.ts +2 -0
  33. package/dist/gates/create-app.d.ts.map +1 -1
  34. package/dist/gates/create-app.js +1 -1
  35. package/dist/gates/index.js +25 -3
  36. package/dist/gates/index.js.map +2 -2
  37. package/dist/gates/status.d.ts +2 -0
  38. package/dist/gates/status.d.ts.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +69 -48
  42. package/dist/index.js.map +4 -4
  43. package/dist/registry/app-DQI6WLHR.js +10 -0
  44. package/dist/registry/app-DQI6WLHR.js.map +7 -0
  45. package/dist/registry/app.d.ts +21 -0
  46. package/dist/registry/app.d.ts.map +1 -0
  47. package/dist/registry/build-LGFCCOLR.js +27 -0
  48. package/dist/registry/build-LGFCCOLR.js.map +7 -0
  49. package/dist/registry/build.d.ts +95 -0
  50. package/dist/registry/build.d.ts.map +1 -0
  51. package/dist/registry/chunk-E4JNV7PC.js +155 -0
  52. package/dist/registry/chunk-E4JNV7PC.js.map +7 -0
  53. package/dist/registry/chunk-NJN4MQAM.js +397 -0
  54. package/dist/registry/chunk-NJN4MQAM.js.map +7 -0
  55. package/dist/registry/chunk-W2B2G7OE.js +188 -0
  56. package/dist/registry/chunk-W2B2G7OE.js.map +7 -0
  57. package/dist/registry/chunk-WMFF3MPP.js +648 -0
  58. package/dist/registry/chunk-WMFF3MPP.js.map +7 -0
  59. package/dist/registry/cli.d.ts +2 -0
  60. package/dist/registry/cli.d.ts.map +1 -0
  61. package/dist/registry/cli.js +176 -0
  62. package/dist/registry/cli.js.map +7 -0
  63. package/dist/registry/find.d.ts +54 -0
  64. package/dist/registry/find.d.ts.map +1 -0
  65. package/dist/registry/index.d.ts +17 -0
  66. package/dist/registry/index.d.ts.map +1 -0
  67. package/dist/registry/index.js +34 -0
  68. package/dist/registry/index.js.map +7 -0
  69. package/dist/registry/schema.d.ts +224 -0
  70. package/dist/registry/schema.d.ts.map +1 -0
  71. package/package.json +15 -2
  72. package/registry.json +4615 -0
  73. package/src/Avatar.tsx +3 -0
  74. package/src/Banner.mdx +17 -4
  75. package/src/Banner.stories.tsx +22 -0
  76. package/src/Banner.test.tsx +35 -0
  77. package/src/Banner.tsx +34 -9
  78. package/src/ChipInput.tsx +3 -0
  79. package/src/CommandPalette.tsx +6 -0
  80. package/src/ContainerHeader.mdx +56 -0
  81. package/src/ContainerHeader.stories.tsx +62 -0
  82. package/src/ContainerHeader.test.tsx +47 -0
  83. package/src/ContainerHeader.tsx +45 -0
  84. package/src/EmptyState.mdx +12 -0
  85. package/src/EmptyState.stories.tsx +6 -1
  86. package/src/EmptyState.test.tsx +18 -1
  87. package/src/EmptyState.tsx +14 -1
  88. package/src/IdentityMenu.tsx +3 -0
  89. package/src/Menu.tsx +7 -0
  90. package/src/Skeleton.tsx +2 -0
  91. package/src/Toast.tsx +5 -0
  92. package/src/Toolbar.tsx +4 -0
  93. package/src/Tooltip.tsx +4 -0
  94. package/src/gates/app-checks.ts +23 -1
  95. package/src/gates/create-app.test.ts +77 -6
  96. package/src/gates/create-app.ts +288 -15
  97. package/src/gates/status.ts +16 -0
  98. package/src/index.ts +1 -0
  99. package/src/registry/app.test.ts +562 -0
  100. package/src/registry/app.ts +854 -0
  101. package/src/registry/build.ts +679 -0
  102. package/src/registry/cli.ts +204 -0
  103. package/src/registry/find.ts +232 -0
  104. package/src/registry/index.ts +31 -0
  105. package/src/registry/registry.test.ts +448 -0
  106. package/src/registry/schema.ts +419 -0
  107. package/dist/gates/chunk-AUXD4GCY.js.map +0 -7
  108. package/dist/gates/chunk-ZGJ2J5NU.js.map +0 -7
package/dist/index.js CHANGED
@@ -678,27 +678,10 @@ function AvatarGroup({ members, size = 24 }) {
678
678
 
679
679
  // src/Banner.tsx
680
680
  import { IconX as IconX2 } from "@tabler/icons-react";
681
- import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
682
- var TONE_STYLES = {
683
- ok: "bg-success-muted text-success-default",
684
- error: "bg-error-muted text-error-default",
685
- info: "bg-info-muted text-info-default",
686
- warning: "bg-warning-muted text-warning-default"
687
- };
688
- function Banner({ tone, children, onDismiss, dismissLabel = "Dismiss", className }) {
689
- const role = tone === "error" ? "alert" : "status";
690
- if (!onDismiss) {
691
- return /* @__PURE__ */ jsx12("div", { role, className: cn("px-4 py-2 text-body-2", TONE_STYLES[tone], className), children });
692
- }
693
- return /* @__PURE__ */ jsxs7("div", { role, className: cn("flex items-center gap-3 px-4 py-2 text-body-2", TONE_STYLES[tone], className), children: [
694
- /* @__PURE__ */ jsx12("span", { className: "min-w-0 flex-1", children }),
695
- /* @__PURE__ */ jsx12(IconButton, { variant: "current", "aria-label": dismissLabel, onClick: onDismiss, className: "-mr-1 shrink-0", children: /* @__PURE__ */ jsx12(IconX2, { size: 16, stroke: 1.5 }) })
696
- ] });
697
- }
698
681
 
699
682
  // src/Button.tsx
700
683
  import { Button as BaseButton3 } from "@base-ui/react/button";
701
- import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
684
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
702
685
  function Button({
703
686
  variant = "muted",
704
687
  size = "default",
@@ -712,7 +695,7 @@ function Button({
712
695
  }) {
713
696
  const hasLeadingIcon = !!leadingIcon;
714
697
  const formBusy = useFormBusy();
715
- const button = /* @__PURE__ */ jsxs8(
698
+ const button = /* @__PURE__ */ jsxs7(
716
699
  BaseButton3,
717
700
  {
718
701
  type,
@@ -759,7 +742,29 @@ function Button({
759
742
  ]
760
743
  }
761
744
  );
762
- return disabledReason ? /* @__PURE__ */ jsx13(TooltipTrigger, { label: disabledReason, children: button }) : button;
745
+ return disabledReason ? /* @__PURE__ */ jsx12(TooltipTrigger, { label: disabledReason, children: button }) : button;
746
+ }
747
+
748
+ // src/Banner.tsx
749
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
750
+ var TONE_STYLES = {
751
+ ok: "bg-success-muted text-success-default",
752
+ error: "bg-error-muted text-error-default",
753
+ info: "bg-info-muted text-info-default",
754
+ warning: "bg-warning-muted text-warning-default"
755
+ };
756
+ function Banner({ tone, children, icon, action, onDismiss, dismissLabel = "Dismiss", className }) {
757
+ const role = tone === "error" ? "alert" : "status";
758
+ if (!onDismiss && !icon && !action) {
759
+ return /* @__PURE__ */ jsx13("div", { role, className: cn("px-4 py-2 text-body-2", TONE_STYLES[tone], className), children });
760
+ }
761
+ const oneLine = Boolean(icon || action);
762
+ return /* @__PURE__ */ jsxs8("div", { role, className: cn("flex items-center gap-3 px-4 py-2 text-body-2", TONE_STYLES[tone], className), children: [
763
+ icon && /* @__PURE__ */ jsx13("span", { className: "flex shrink-0", children: icon }),
764
+ /* @__PURE__ */ jsx13("span", { className: cn("min-w-0 flex-1", oneLine && "truncate"), children }),
765
+ action && /* @__PURE__ */ jsx13(Button, { variant: "muted", size: "small", className: "shrink-0", onClick: action.onClick, children: action.label }),
766
+ onDismiss && /* @__PURE__ */ jsx13(IconButton, { variant: "current", "aria-label": dismissLabel, onClick: onDismiss, className: "-mr-1 shrink-0", children: /* @__PURE__ */ jsx13(IconX2, { size: 16, stroke: 1.5 }) })
767
+ ] });
763
768
  }
764
769
 
765
770
  // src/Checkbox.tsx
@@ -1281,13 +1286,14 @@ var VIEWPORT_PAD3 = 8;
1281
1286
  // src/EmptyState.tsx
1282
1287
  import { IconMessage2 } from "@tabler/icons-react";
1283
1288
  import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
1284
- function EmptyState({ icon, message, scope = "page", className }) {
1289
+ function EmptyState({ icon, message, scope = "page", action, className }) {
1285
1290
  if (scope === "section") {
1286
1291
  return /* @__PURE__ */ jsx20("p", { className: cn("text-caption text-text-muted", className), children: message });
1287
1292
  }
1288
1293
  return /* @__PURE__ */ jsxs14("div", { className: cn("flex flex-1 flex-col items-center justify-center gap-2", className), children: [
1289
1294
  /* @__PURE__ */ jsx20("span", { className: "text-text-secondary", children: icon ?? /* @__PURE__ */ jsx20(IconMessage2, { size: 16, stroke: 1.5 }) }),
1290
- /* @__PURE__ */ jsx20("p", { className: "text-body-2 text-text-secondary text-center", children: message })
1295
+ /* @__PURE__ */ jsx20("p", { className: "text-body-2 text-text-secondary text-center", children: message }),
1296
+ action && /* @__PURE__ */ jsx20(Button, { variant: "outlined", className: "mt-2", onClick: action.onClick, children: action.label })
1291
1297
  ] });
1292
1298
  }
1293
1299
 
@@ -2741,10 +2747,24 @@ function SectionHeader({ title, chevron = false, isExpanded = true, onToggle, tr
2741
2747
  );
2742
2748
  }
2743
2749
 
2750
+ // src/ContainerHeader.tsx
2751
+ import { IconChevronDown as IconChevronDown3 } from "@tabler/icons-react";
2752
+ import { jsx as jsx50, jsxs as jsxs34 } from "react/jsx-runtime";
2753
+ function ContainerHeader({ title, chevron = false, actions, className }) {
2754
+ const text = typeof title === "string";
2755
+ return /* @__PURE__ */ jsxs34("div", { className: cn("flex h-12 shrink-0 items-center justify-between overflow-hidden border-b border-border-subtle py-2 pr-4 pl-5", className), children: [
2756
+ /* @__PURE__ */ jsx50("div", { className: cn("flex items-center gap-2 overflow-hidden", text ? "shrink-0" : "min-w-0 flex-1"), children: /* @__PURE__ */ jsxs34("div", { className: cn("flex items-center gap-1", text ? "shrink-0" : "min-w-0 flex-1"), children: [
2757
+ text ? /* @__PURE__ */ jsx50("span", { className: "whitespace-nowrap text-body-2-strong text-text-primary", children: title }) : /* @__PURE__ */ jsx50("div", { className: "min-w-0 flex-1", children: title }),
2758
+ chevron && /* @__PURE__ */ jsx50(IconChevronDown3, { size: 12, stroke: 1.5, className: "shrink-0 text-text-secondary" })
2759
+ ] }) }),
2760
+ actions && /* @__PURE__ */ jsx50("div", { className: "flex shrink-0 items-center justify-end gap-3", children: /* @__PURE__ */ jsx50("div", { className: "flex shrink-0 items-center gap-1", children: actions }) })
2761
+ ] });
2762
+ }
2763
+
2744
2764
  // src/CollapsibleSection.tsx
2745
2765
  import { useState as useState7 } from "react";
2746
2766
  import { Collapsible } from "@base-ui/react/collapsible";
2747
- import { jsx as jsx50, jsxs as jsxs34 } from "react/jsx-runtime";
2767
+ import { jsx as jsx51, jsxs as jsxs35 } from "react/jsx-runtime";
2748
2768
  var OPEN = "open";
2749
2769
  var CLOSED = "closed";
2750
2770
  function readStored(key) {
@@ -2771,14 +2791,14 @@ function CollapsibleSection({ title, defaultOpen = true, open: openProp, onOpenC
2771
2791
  writeStored(storageKey, next);
2772
2792
  onOpenChange?.(next);
2773
2793
  };
2774
- return /* @__PURE__ */ jsxs34(Collapsible.Root, { open, onOpenChange: setOpen, className: cn("flex flex-col", className), children: [
2775
- /* @__PURE__ */ jsx50(SectionHeader, { title, chevron: true, isExpanded: open, trailing, actions, showActions, className: "shrink-0", render: /* @__PURE__ */ jsx50(Collapsible.Trigger, {}) }),
2776
- /* @__PURE__ */ jsx50(
2794
+ return /* @__PURE__ */ jsxs35(Collapsible.Root, { open, onOpenChange: setOpen, className: cn("flex flex-col", className), children: [
2795
+ /* @__PURE__ */ jsx51(SectionHeader, { title, chevron: true, isExpanded: open, trailing, actions, showActions, className: "shrink-0", render: /* @__PURE__ */ jsx51(Collapsible.Trigger, {}) }),
2796
+ /* @__PURE__ */ jsx51(
2777
2797
  Collapsible.Panel,
2778
2798
  {
2779
2799
  hiddenUntilFound: true,
2780
2800
  className: "h-[var(--collapsible-panel-height)] overflow-hidden transition-[height] duration-150 ease-out motion-reduce:transition-none data-[starting-style]:h-0 data-[ending-style]:h-0",
2781
- children: /* @__PURE__ */ jsx50("div", { className: cn("flex flex-col", contentClassName), children })
2801
+ children: /* @__PURE__ */ jsx51("div", { className: cn("flex flex-col", contentClassName), children })
2782
2802
  }
2783
2803
  )
2784
2804
  ] });
@@ -2786,9 +2806,9 @@ function CollapsibleSection({ title, defaultOpen = true, open: openProp, onOpenC
2786
2806
 
2787
2807
  // src/Tabs.tsx
2788
2808
  import { Tabs as BaseTabs } from "@base-ui/react/tabs";
2789
- import { jsx as jsx51, jsxs as jsxs35 } from "react/jsx-runtime";
2809
+ import { jsx as jsx52, jsxs as jsxs36 } from "react/jsx-runtime";
2790
2810
  function Tabs({ tabs, active, onChange, size = "default", className, ...aria }) {
2791
- return /* @__PURE__ */ jsx51(
2811
+ return /* @__PURE__ */ jsx52(
2792
2812
  BaseTabs.Root,
2793
2813
  {
2794
2814
  value: active,
@@ -2796,14 +2816,14 @@ function Tabs({ tabs, active, onChange, size = "default", className, ...aria })
2796
2816
  if (details.reason === "none") onChange(value);
2797
2817
  },
2798
2818
  className,
2799
- children: /* @__PURE__ */ jsx51(
2819
+ children: /* @__PURE__ */ jsx52(
2800
2820
  BaseTabs.List,
2801
2821
  {
2802
2822
  activateOnFocus: true,
2803
2823
  "aria-label": aria["aria-label"],
2804
2824
  "aria-labelledby": aria["aria-labelledby"],
2805
2825
  className: "flex items-center gap-2",
2806
- children: tabs.map((tab) => /* @__PURE__ */ jsxs35(
2826
+ children: tabs.map((tab) => /* @__PURE__ */ jsxs36(
2807
2827
  BaseTabs.Tab,
2808
2828
  {
2809
2829
  value: tab.id,
@@ -2816,9 +2836,9 @@ function Tabs({ tabs, active, onChange, size = "default", className, ...aria })
2816
2836
  ),
2817
2837
  children: [
2818
2838
  tab.icon,
2819
- /* @__PURE__ */ jsxs35("span", { className: "flex items-baseline", children: [
2839
+ /* @__PURE__ */ jsxs36("span", { className: "flex items-baseline", children: [
2820
2840
  tab.label,
2821
- tab.count !== void 0 ? /* @__PURE__ */ jsx51("span", { className: "ml-2.5 font-mono text-caption tabular-nums text-text-secondary", children: tab.count }) : null
2841
+ tab.count !== void 0 ? /* @__PURE__ */ jsx52("span", { className: "ml-2.5 font-mono text-caption tabular-nums text-text-secondary", children: tab.count }) : null
2822
2842
  ] })
2823
2843
  ]
2824
2844
  },
@@ -2834,7 +2854,7 @@ function Tabs({ tabs, active, onChange, size = "default", className, ...aria })
2834
2854
  import { createContext as createContext5, useContext as useContext5, useMemo as useMemo4 } from "react";
2835
2855
  import { Toast as BaseToast } from "@base-ui/react/toast";
2836
2856
  import { IconAlertCircle as IconAlertCircle2, IconCircleCheck, IconCircleX } from "@tabler/icons-react";
2837
- import { jsx as jsx52, jsxs as jsxs36 } from "react/jsx-runtime";
2857
+ import { jsx as jsx53, jsxs as jsxs37 } from "react/jsx-runtime";
2838
2858
  var SURFACE_STYLES = {
2839
2859
  success: "bg-success-muted signal:bg-bg-inset signal:border signal:border-border-default signal:shadow-md",
2840
2860
  brand: "bg-accent-muted signal:bg-bg-inset signal:border signal:border-border-default signal:shadow-md",
@@ -2870,16 +2890,16 @@ var pillClassName = (type, hasAction, className) => cn(
2870
2890
  );
2871
2891
  function LeadingIcon({ type }) {
2872
2892
  const Icon = ICONS[type];
2873
- return /* @__PURE__ */ jsx52(Icon, { size: 16, stroke: 1.5, className: cn("text-text-primary shrink-0", ICON_STYLES[type]) });
2893
+ return /* @__PURE__ */ jsx53(Icon, { size: 16, stroke: 1.5, className: cn("text-text-primary shrink-0", ICON_STYLES[type]) });
2874
2894
  }
2875
2895
  function Toast({ label, type = "neutral", leadingIcon = true, actionLabel, onAction, className }) {
2876
2896
  const hasAction = !!(actionLabel && onAction);
2877
- return /* @__PURE__ */ jsxs36("div", { className: pillClassName(type, hasAction, className), children: [
2878
- /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-2 shrink-0", children: [
2879
- leadingIcon && /* @__PURE__ */ jsx52(LeadingIcon, { type }),
2880
- /* @__PURE__ */ jsx52("span", { className: LABEL_CLASSES, children: label })
2897
+ return /* @__PURE__ */ jsxs37("div", { className: pillClassName(type, hasAction, className), children: [
2898
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2 shrink-0", children: [
2899
+ leadingIcon && /* @__PURE__ */ jsx53(LeadingIcon, { type }),
2900
+ /* @__PURE__ */ jsx53("span", { className: LABEL_CLASSES, children: label })
2881
2901
  ] }),
2882
- hasAction && /* @__PURE__ */ jsx52(Button, { variant: "outlined", size: "small", onClick: onAction, children: actionLabel })
2902
+ hasAction && /* @__PURE__ */ jsx53(Button, { variant: "outlined", size: "small", onClick: onAction, children: actionLabel })
2883
2903
  ] });
2884
2904
  }
2885
2905
  var ToastContext = createContext5(null);
@@ -2900,9 +2920,9 @@ function ToastProvider({ children }) {
2900
2920
  }),
2901
2921
  [manager]
2902
2922
  );
2903
- return /* @__PURE__ */ jsx52(ToastContext.Provider, { value, children: /* @__PURE__ */ jsxs36(BaseToast.Provider, { toastManager: manager, limit: VISIBLE_TOASTS, children: [
2923
+ return /* @__PURE__ */ jsx53(ToastContext.Provider, { value, children: /* @__PURE__ */ jsxs37(BaseToast.Provider, { toastManager: manager, limit: VISIBLE_TOASTS, children: [
2904
2924
  children,
2905
- /* @__PURE__ */ jsx52(BaseToast.Portal, { children: /* @__PURE__ */ jsx52(BaseToast.Viewport, { className: "fixed bottom-4 left-4 z-[100] flex flex-col-reverse items-start gap-2 pointer-events-none", children: /* @__PURE__ */ jsx52(ToastList, {}) }) })
2925
+ /* @__PURE__ */ jsx53(BaseToast.Portal, { children: /* @__PURE__ */ jsx53(BaseToast.Viewport, { className: "fixed bottom-4 left-4 z-[100] flex flex-col-reverse items-start gap-2 pointer-events-none", children: /* @__PURE__ */ jsx53(ToastList, {}) }) })
2906
2926
  ] }) });
2907
2927
  }
2908
2928
  function ToastList() {
@@ -2910,25 +2930,25 @@ function ToastList() {
2910
2930
  return toasts.map((toast) => {
2911
2931
  const type = toast.type ?? "neutral";
2912
2932
  const { leadingIcon = true, actionLabel, onAction } = toast.data ?? {};
2913
- return /* @__PURE__ */ jsxs36(
2933
+ return /* @__PURE__ */ jsxs37(
2914
2934
  BaseToast.Root,
2915
2935
  {
2916
2936
  toast,
2917
2937
  swipeDirection: ["left", "down"],
2918
2938
  className: pillClassName(type, !!actionLabel, "pointer-events-auto data-[limited]:hidden"),
2919
2939
  children: [
2920
- /* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-2 shrink-0", children: [
2921
- leadingIcon && /* @__PURE__ */ jsx52(LeadingIcon, { type }),
2922
- /* @__PURE__ */ jsx52(BaseToast.Title, { render: /* @__PURE__ */ jsx52("span", {}), className: LABEL_CLASSES })
2940
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2 shrink-0", children: [
2941
+ leadingIcon && /* @__PURE__ */ jsx53(LeadingIcon, { type }),
2942
+ /* @__PURE__ */ jsx53(BaseToast.Title, { render: /* @__PURE__ */ jsx53("span", {}), className: LABEL_CLASSES })
2923
2943
  ] }),
2924
- actionLabel && /* @__PURE__ */ jsx52(
2944
+ actionLabel && /* @__PURE__ */ jsx53(
2925
2945
  BaseToast.Action,
2926
2946
  {
2927
2947
  onClick: () => {
2928
2948
  onAction?.();
2929
2949
  close(toast.id);
2930
2950
  },
2931
- render: /* @__PURE__ */ jsx52(Button, { variant: "outlined", size: "small", children: actionLabel })
2951
+ render: /* @__PURE__ */ jsx53(Button, { variant: "outlined", size: "small", children: actionLabel })
2932
2952
  }
2933
2953
  )
2934
2954
  ]
@@ -2962,6 +2982,7 @@ export {
2962
2982
  CommandPaletteSearch,
2963
2983
  CommandPaletteWorking,
2964
2984
  ConfirmDialog,
2985
+ ContainerHeader,
2965
2986
  DialogShell,
2966
2987
  Divider,
2967
2988
  EditableText,