@polpo-ai/dashboard 0.15.142 → 0.15.144

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 (80) hide show
  1. package/README.md +23 -3
  2. package/dist/host.d.ts +1 -0
  3. package/dist/host.d.ts.map +1 -1
  4. package/dist/host.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/v2/data/data-sql-panel.d.ts +15 -0
  10. package/dist/v2/data/data-sql-panel.d.ts.map +1 -0
  11. package/dist/v2/data/data-sql-panel.js +111 -0
  12. package/dist/v2/data/data-sql-panel.js.map +1 -0
  13. package/dist/v2/data/data-ui.d.ts +16 -0
  14. package/dist/v2/data/data-ui.d.ts.map +1 -0
  15. package/dist/v2/data/data-ui.js +27 -0
  16. package/dist/v2/data/data-ui.js.map +1 -0
  17. package/dist/v2/data/data-view.d.ts +5 -0
  18. package/dist/v2/data/data-view.d.ts.map +1 -0
  19. package/dist/v2/data/data-view.js +316 -0
  20. package/dist/v2/data/data-view.js.map +1 -0
  21. package/dist/v2/data/host.d.ts +83 -0
  22. package/dist/v2/data/host.d.ts.map +1 -0
  23. package/dist/v2/data/host.js +39 -0
  24. package/dist/v2/data/host.js.map +1 -0
  25. package/dist/v2/data/pagination.d.ts +3 -0
  26. package/dist/v2/data/pagination.d.ts.map +1 -0
  27. package/dist/v2/data/pagination.js +6 -0
  28. package/dist/v2/data/pagination.js.map +1 -0
  29. package/dist/v2/shell/dashboard-shell.d.ts.map +1 -1
  30. package/dist/v2/shell/dashboard-shell.js +2 -1
  31. package/dist/v2/shell/dashboard-shell.js.map +1 -1
  32. package/dist/v2/ui/bits.d.ts +7 -0
  33. package/dist/v2/ui/bits.d.ts.map +1 -1
  34. package/dist/v2/ui/bits.js +3 -0
  35. package/dist/v2/ui/bits.js.map +1 -1
  36. package/dist/v2/ui/code-editor.d.ts +2 -1
  37. package/dist/v2/ui/code-editor.d.ts.map +1 -1
  38. package/dist/v2/ui/code-editor.js +2 -1
  39. package/dist/v2/ui/code-editor.js.map +1 -1
  40. package/dist/v2/ui/copy-id.d.ts +15 -0
  41. package/dist/v2/ui/copy-id.d.ts.map +1 -0
  42. package/dist/v2/ui/copy-id.js +32 -0
  43. package/dist/v2/ui/copy-id.js.map +1 -0
  44. package/dist/v2/ui/data-table.d.ts +12 -1
  45. package/dist/v2/ui/data-table.d.ts.map +1 -1
  46. package/dist/v2/ui/data-table.js +39 -12
  47. package/dist/v2/ui/data-table.js.map +1 -1
  48. package/dist/v2/ui/refresh-button.d.ts +2 -1
  49. package/dist/v2/ui/refresh-button.d.ts.map +1 -1
  50. package/dist/v2/ui/refresh-button.js +2 -2
  51. package/dist/v2/ui/refresh-button.js.map +1 -1
  52. package/dist/v2/ui/search-input.d.ts +19 -0
  53. package/dist/v2/ui/search-input.d.ts.map +1 -0
  54. package/dist/v2/ui/search-input.js +17 -0
  55. package/dist/v2/ui/search-input.js.map +1 -0
  56. package/dist/v2/ui/select-field.d.ts +81 -0
  57. package/dist/v2/ui/select-field.d.ts.map +1 -0
  58. package/dist/v2/ui/select-field.js +89 -0
  59. package/dist/v2/ui/select-field.js.map +1 -0
  60. package/dist/v2/ui/select.d.ts +12 -1
  61. package/dist/v2/ui/select.d.ts.map +1 -1
  62. package/dist/v2/ui/select.js +14 -2
  63. package/dist/v2/ui/select.js.map +1 -1
  64. package/dist/v2/ui/table-row-actions.d.ts +15 -0
  65. package/dist/v2/ui/table-row-actions.d.ts.map +1 -0
  66. package/dist/v2/ui/table-row-actions.js +22 -0
  67. package/dist/v2/ui/table-row-actions.js.map +1 -0
  68. package/dist/v2/ui/tabs.d.ts +40 -0
  69. package/dist/v2/ui/tabs.d.ts.map +1 -0
  70. package/dist/v2/ui/tabs.js +46 -0
  71. package/dist/v2/ui/tabs.js.map +1 -0
  72. package/dist/v2/ui/tooltip.d.ts +7 -0
  73. package/dist/v2/ui/tooltip.d.ts.map +1 -0
  74. package/dist/v2/ui/tooltip.js +18 -0
  75. package/dist/v2/ui/tooltip.js.map +1 -0
  76. package/dist/v2/views/data.d.ts +2 -0
  77. package/dist/v2/views/data.d.ts.map +1 -0
  78. package/dist/v2/views/data.js +11 -0
  79. package/dist/v2/views/data.js.map +1 -0
  80. package/package.json +4 -3
@@ -3,8 +3,19 @@ import { Select as SelectPrimitive } from "@base-ui/react/select";
3
3
  declare const Select: typeof SelectPrimitive.Root;
4
4
  declare function SelectGroup({ className, ...props }: SelectPrimitive.Group.Props): import("react/jsx-runtime").JSX.Element;
5
5
  declare function SelectValue({ className, ...props }: SelectPrimitive.Value.Props): import("react/jsx-runtime").JSX.Element;
6
- declare function SelectTrigger({ className, size, children, ...props }: SelectPrimitive.Trigger.Props & {
6
+ /**
7
+ * Two surfaces, one control.
8
+ *
9
+ * `field` is the inset form field shared with `input.tsx` — right for a
10
+ * dense form where the control must read as "type/pick here".
11
+ * `card` is the flat button surface the model selector uses: it reads as
12
+ * a thing you press to open a list, not as an empty slot waiting to be
13
+ * filled, and it does not stamp a 3px ring over the layout on focus.
14
+ */
15
+ type SelectTriggerVariant = "field" | "card";
16
+ declare function SelectTrigger({ className, size, variant, children, ...props }: SelectPrimitive.Trigger.Props & {
7
17
  size?: "sm" | "default";
18
+ variant?: SelectTriggerVariant;
8
19
  }): import("react/jsx-runtime").JSX.Element;
9
20
  declare function SelectContent({ className, children, side, sideOffset, align, alignOffset, alignItemWithTrigger, ...props }: SelectPrimitive.Popup.Props & Pick<SelectPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset" | "alignItemWithTrigger">): import("react/jsx-runtime").JSX.Element;
10
21
  declare function SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAKjE,QAAA,MAAM,MAAM,6BAAuB,CAAA;AAEnC,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,2CAQxE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,2CAQxE;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,GAAG;IACjC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CACxB,2CAmBA;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,IAAe,EACf,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,oBAA2B,EAC3B,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAC5B,IAAI,CACF,eAAe,CAAC,UAAU,CAAC,KAAK,EAChC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,sBAAsB,CACzE,2CAwBF;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,UAAU,CAAC,KAAK,2CAQlC;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,2CAsB5B;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,SAAS,CAAC,KAAK,2CAQjC;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,aAAa,CAAC,2CAc5D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,eAAe,CAAC,2CAc9D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAA"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAKjE,QAAA,MAAM,MAAM,6BAAuB,CAAA;AAEnC,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,2CAQxE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,2CAQxE;AAED;;;;;;;;GAQG;AACH,KAAK,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AAoB7C,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,IAAgB,EAChB,OAAiB,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,GAAG;IACjC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;IACvB,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAC/B,2CAgCA;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,IAAe,EACf,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,oBAA2B,EAC3B,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAC5B,IAAI,CACF,eAAe,CAAC,UAAU,CAAC,KAAK,EAChC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,sBAAsB,CACzE,2CAwBF;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,UAAU,CAAC,KAAK,2CAQlC;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,2CAsB5B;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,SAAS,CAAC,KAAK,2CAQjC;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,aAAa,CAAC,2CAc5D;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,eAAe,CAAC,2CAc9D;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,CAAA"}
@@ -11,8 +11,20 @@ function SelectGroup({ className, ...props }) {
11
11
  function SelectValue({ className, ...props }) {
12
12
  return (_jsx(SelectPrimitive.Value, { "data-slot": "select-value", className: cn("flex flex-1 text-left", className), ...props }));
13
13
  }
14
- function SelectTrigger({ className, size = "default", children, ...props }) {
15
- return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, className: cn("flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { render: _jsx(ChevronDownIcon, { className: "pointer-events-none size-4 text-muted-foreground" }) })] }));
14
+ const TRIGGER_VARIANT = {
15
+ field: cn("rounded-lg border-input bg-secondary/25 shadow-[inset_0_1px_2px_rgba(0,0,0,0.05)] dark:bg-input/30 dark:shadow-[inset_0_1.5px_3px_rgba(0,0,0,0.35)]", "hover:border-muted-foreground/40 dark:hover:bg-input/50", "focus-visible:border-brand/60 focus-visible:ring-3 focus-visible:ring-brand/20 data-popup-open:border-brand/50 data-popup-open:ring-3 data-popup-open:ring-brand/15", "data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)]"),
16
+ card: cn("rounded-md border-border bg-card shadow-none",
17
+ // px-3 and gap-2, like the model selector's own trigger: side by side,
18
+ // a 10/8px inset next to a 12px one reads as a mistake
19
+ "gap-2 pr-3 pl-3", "hover:border-muted-foreground/30 dark:hover:bg-card", "focus-visible:border-muted-foreground/40 focus-visible:ring-0 data-popup-open:border-muted-foreground/40 data-popup-open:ring-0", "data-[size=default]:h-9 data-[size=sm]:h-8"),
20
+ };
21
+ function SelectTrigger({ className, size = "default", variant = "field", children, ...props }) {
22
+ return (_jsxs(SelectPrimitive.Trigger, { "data-slot": "select-trigger", "data-size": size, "data-variant": variant, className: cn(
23
+ // layout shared by both surfaces; the variant supplies the skin
24
+ "flex w-fit items-center justify-between gap-1.5 border py-2 pr-2 pl-2.5 text-sm whitespace-nowrap outline-none select-none", "transition-[border-color,box-shadow,background-color,color] duration-150", "disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", "data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", TRIGGER_VARIANT[variant], className), ...props, children: [children, _jsx(SelectPrimitive.Icon, { render: _jsx(ChevronDownIcon, { className: cn("pointer-events-none text-muted-foreground",
25
+ // a quieter caret on the card surface: the control is the
26
+ // button, the arrow is only a hint that a list opens
27
+ variant === "card" ? "ml-auto !size-3.5" : "size-4") }) })] }));
16
28
  }
17
29
  function SelectContent({ className, children, side = "bottom", sideOffset = 4, align = "center", alignOffset = 0, alignItemWithTrigger = true, ...props }) {
18
30
  return (_jsx(SelectPrimitive.Portal, { children: _jsx(SelectPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, alignItemWithTrigger: alignItemWithTrigger, className: "isolate z-50", children: _jsxs(SelectPrimitive.Popup, { "data-slot": "select-content", "data-align-trigger": alignItemWithTrigger, className: cn("relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: [_jsx(SelectScrollUpButton, {}), _jsx(SelectPrimitive.List, { children: children }), _jsx(SelectScrollDownButton, {})] }) }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/v2/ui/select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/v2/ui/select.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from "react";
2
+ export declare function TableRowActions({ label, busy, disabled, children, }: {
3
+ label?: string;
4
+ busy?: boolean;
5
+ disabled?: boolean;
6
+ children: ReactNode;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ export declare function TableRowAction({ icon, children, destructive, disabled, onSelect, }: {
9
+ icon?: ReactNode;
10
+ children: ReactNode;
11
+ destructive?: boolean;
12
+ disabled?: boolean;
13
+ onSelect: () => void;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=table-row-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-row-actions.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/table-row-actions.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQjD,wBAAgB,eAAe,CAAC,EAC9B,KAAqB,EACrB,IAAY,EACZ,QAAgB,EAChB,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CA4CA;AAED,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,EACR,WAAmB,EACnB,QAAgB,EAChB,QAAQ,GACT,EAAE;IACD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,2CAuBA"}
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Menu } from "@base-ui/react/menu";
5
+ import { CircleNotch, DotsThree, } from "@phosphor-icons/react/dist/ssr";
6
+ import { cn } from "../utils.js";
7
+ export function TableRowActions({ label = "Row actions", busy = false, disabled = false, children, }) {
8
+ const [open, setOpen] = useState(false);
9
+ return (_jsxs(Menu.Root, { open: open, onOpenChange: setOpen, children: [_jsx("span", { onMouseDownCapture: (event) => {
10
+ event.stopPropagation();
11
+ setOpen(!open);
12
+ }, onClick: (event) => event.stopPropagation(), onKeyDown: (event) => event.stopPropagation(), children: _jsx(Menu.Trigger, { "aria-label": label, title: label, disabled: disabled || busy, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-secondary hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/30 data-popup-open:bg-secondary data-popup-open:text-foreground disabled:pointer-events-none disabled:opacity-50", children: busy ? (_jsx(CircleNotch, { size: 14, className: "animate-spin" })) : (_jsx(DotsThree, { size: 17, weight: "bold" })) }) }), _jsx(Menu.Portal, { children: _jsx(Menu.Positioner, { side: "bottom", align: "end", sideOffset: 4, className: "isolate z-50", children: _jsx(Menu.Popup, { onClick: (event) => event.stopPropagation(), className: "v2 min-w-36 origin-(--transform-origin) rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-lg outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", children: children }) }) })] }));
13
+ }
14
+ export function TableRowAction({ icon, children, destructive = false, disabled = false, onSelect, }) {
15
+ return (_jsxs(Menu.Item, { disabled: disabled, onClick: (event) => {
16
+ event.stopPropagation();
17
+ onSelect();
18
+ }, className: cn("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-[12px] outline-none data-highlighted:bg-secondary data-disabled:pointer-events-none data-disabled:opacity-40", destructive
19
+ ? "text-destructive data-highlighted:bg-destructive/10"
20
+ : "text-foreground"), children: [icon ? (_jsx("span", { className: destructive ? "text-destructive" : "text-muted-foreground", children: icon })) : null, children] }));
21
+ }
22
+ //# sourceMappingURL=table-row-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-row-actions.js","sourceRoot":"","sources":["../../../src/v2/ui/table-row-actions.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,SAAS,GACV,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,GAAG,aAAa,EACrB,IAAI,GAAG,KAAK,EACZ,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAMT;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,MAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aAC1C,eACE,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,YAE7C,KAAC,IAAI,CAAC,OAAO,kBACC,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAC1B,SAAS,EAAC,uTAAuT,YAEhU,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,cAAc,GAAG,CACnD,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAC,MAAM,GAAG,CACtC,GACY,GACV,EAEP,KAAC,IAAI,CAAC,MAAM,cACV,KAAC,IAAI,CAAC,UAAU,IACd,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,KAAK,EACX,UAAU,EAAE,CAAC,EACb,SAAS,EAAC,cAAc,YAExB,KAAC,IAAI,CAAC,KAAK,IACT,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAC3C,SAAS,EAAC,4QAA4Q,YAErR,QAAQ,GACE,GACG,GACN,IACJ,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,EACR,WAAW,GAAG,KAAK,EACnB,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAOT;IACC,OAAO,CACL,MAAC,IAAI,CAAC,IAAI,IACR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,QAAQ,EAAE,CAAC;QACb,CAAC,EACD,SAAS,EAAE,EAAE,CACX,iLAAiL,EACjL,WAAW;YACT,CAAC,CAAC,qDAAqD;YACvD,CAAC,CAAC,iBAAiB,CACtB,aAEA,IAAI,CAAC,CAAC,CAAC,CACN,eAAM,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,uBAAuB,YACxE,IAAI,GACA,CACR,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IACC,CACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ReactNode } from "react";
2
+ /**
3
+ * The v2 underline tab bar. Nine surfaces had hand-rolled this exact markup
4
+ * and a tenth (Knowledge) had drifted to a tighter hit area — so the rule is now
5
+ * here rather than copied into each view.
6
+ */
7
+ export declare function TabBar<T extends string>({ tabs, value, onChange, className, "aria-label": ariaLabel, }: {
8
+ tabs: ReadonlyArray<{
9
+ id: T;
10
+ label: ReactNode;
11
+ disabled?: boolean;
12
+ }>;
13
+ value: T;
14
+ onChange: (id: T) => void;
15
+ className?: string;
16
+ "aria-label"?: string;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ /**
19
+ * The vertical counterpart: a left rail of named sections beside their
20
+ * content.
21
+ *
22
+ * Reach for it when the sections are *places* rather than filters — each with
23
+ * its own controls and its own state, where a row of pills reads as a filter
24
+ * strip and hides what the other sections even are. The label can carry a
25
+ * second line, which a horizontal bar has no room for.
26
+ */
27
+ export declare function SideTabs<T extends string>({ tabs, value, onChange, className, "aria-label": ariaLabel, }: {
28
+ tabs: ReadonlyArray<{
29
+ id: T;
30
+ label: ReactNode;
31
+ /** One short line under the label — what you find in that section. */
32
+ hint?: string;
33
+ disabled?: boolean;
34
+ }>;
35
+ value: T;
36
+ onChange: (id: T) => void;
37
+ className?: string;
38
+ "aria-label"?: string;
39
+ }): import("react/jsx-runtime").JSX.Element;
40
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EACvC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAc,EACd,YAAY,EAAE,SAAS,GACxB,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrE,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CA6BA;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EACzC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAc,EACd,YAAY,EAAE,SAAS,GACxB,EAAE;IACD,IAAI,EAAE,aAAa,CAAC;QAClB,EAAE,EAAE,CAAC,CAAC;QACN,KAAK,EAAE,SAAS,CAAC;QACjB,sEAAsE;QACtE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,2CA0DA"}
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * The v2 underline tab bar. Nine surfaces had hand-rolled this exact markup
5
+ * and a tenth (Knowledge) had drifted to a tighter hit area — so the rule is now
6
+ * here rather than copied into each view.
7
+ */
8
+ export function TabBar({ tabs, value, onChange, className = "", "aria-label": ariaLabel, }) {
9
+ return (_jsx("div", { role: "tablist", "aria-label": ariaLabel, className: `scrollbar-none flex items-center gap-1 overflow-x-auto border-b border-border ${className}`, children: tabs.map((tab) => {
10
+ const active = tab.id === value;
11
+ return (_jsx("button", { type: "button", role: "tab", "aria-selected": active, disabled: tab.disabled, onClick: () => onChange(tab.id), className: `-mb-px shrink-0 border-b-2 px-3 py-2 text-[13px] transition-colors disabled:opacity-40 ${active
12
+ ? "border-brand font-medium text-foreground"
13
+ : "border-transparent text-muted-foreground hover:text-foreground"}`, children: tab.label }, tab.id));
14
+ }) }));
15
+ }
16
+ /**
17
+ * The vertical counterpart: a left rail of named sections beside their
18
+ * content.
19
+ *
20
+ * Reach for it when the sections are *places* rather than filters — each with
21
+ * its own controls and its own state, where a row of pills reads as a filter
22
+ * strip and hides what the other sections even are. The label can carry a
23
+ * second line, which a horizontal bar has no room for.
24
+ */
25
+ export function SideTabs({ tabs, value, onChange, className = "", "aria-label": ariaLabel, }) {
26
+ return (_jsx("div", { role: "tablist", "aria-orientation": "vertical", "aria-label": ariaLabel, className: `flex shrink-0 flex-col gap-0.5 ${className}`, children: tabs.map((tab) => {
27
+ const active = tab.id === value;
28
+ return (_jsxs("button", { type: "button", role: "tab", "aria-selected": active, disabled: tab.disabled, tabIndex: active ? 0 : -1, "data-side-tab": tab.id, onClick: () => onChange(tab.id), onKeyDown: (event) => {
29
+ if (event.key !== "ArrowUp" && event.key !== "ArrowDown")
30
+ return;
31
+ event.preventDefault();
32
+ const items = Array.from(event.currentTarget.parentElement?.querySelectorAll('[role="tab"]:not(:disabled)') ?? []);
33
+ const index = items.indexOf(event.currentTarget);
34
+ const offset = event.key === "ArrowDown" ? 1 : -1;
35
+ const next = items[(index + offset + items.length) % items.length];
36
+ const nextId = next?.dataset.sideTab;
37
+ if (nextId) {
38
+ onChange(nextId);
39
+ next.focus();
40
+ }
41
+ }, className: `rounded-md px-2.5 py-1.5 text-left text-[13px] transition-colors disabled:cursor-not-allowed disabled:opacity-40 ${active
42
+ ? "bg-secondary font-medium text-foreground"
43
+ : "text-muted-foreground hover:bg-secondary/50 hover:text-foreground"}`, children: [_jsx("span", { className: "block truncate", children: tab.label }), tab.hint ? (_jsx("span", { className: `mt-0.5 block text-[11px] leading-4 ${active ? "text-muted-foreground" : "text-muted-foreground/70"}`, children: tab.hint })) : null] }, tab.id));
44
+ }) }));
45
+ }
46
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/v2/ui/tabs.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
2
+ declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react/jsx-runtime").JSX.Element;
3
+ declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
4
+ declare function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
5
+ declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): import("react/jsx-runtime").JSX.Element;
6
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
7
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/v2/ui/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAIpE,iBAAS,eAAe,CAAC,EACvB,KAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,2CAQjC;AAED,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,2CAEzD;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,2CAEnE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAY,EACZ,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CACF,gBAAgB,CAAC,UAAU,CAAC,KAAK,EACjC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAChD,2CAwBF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
4
+ import { cn } from "../utils.js";
5
+ function TooltipProvider({ delay = 0, ...props }) {
6
+ return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delay: delay, ...props }));
7
+ }
8
+ function Tooltip({ ...props }) {
9
+ return _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
10
+ }
11
+ function TooltipTrigger({ ...props }) {
12
+ return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
13
+ }
14
+ function TooltipContent({ className, side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) {
15
+ return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsxs(TooltipPrimitive.Popup, { "data-slot": "tooltip-content", className: cn("z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })] }) }) }));
16
+ }
17
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
18
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/v2/ui/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEpE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAEhC,SAAS,eAAe,CAAC,EACvB,KAAK,GAAG,CAAC,EACT,GAAG,KAAK,EACwB;IAChC,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,iBACd,kBAAkB,EAC5B,KAAK,EAAE,KAAK,KACR,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAA+B;IACxD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAA;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAkC;IAClE,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAA;AAC5E,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,CAAC,EACd,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,QAAQ,EACR,GAAG,KAAK,EAKP;IACD,OAAO,CACL,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,UAAU,IAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,SAAS,EAAC,cAAc,YAExB,MAAC,gBAAgB,CAAC,KAAK,iBACX,iBAAiB,EAC3B,SAAS,EAAE,EAAE,CACX,iwBAAiwB,EACjwB,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,gBAAgB,CAAC,KAAK,IAAC,SAAS,EAAC,0hBAA0hB,GAAG,IACxiB,GACG,GACN,CAC3B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function SelfHostDataView(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/v2/views/data.tsx"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,4CAG/B"}
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useDashboardHost } from "../../host.js";
4
+ import { DataView } from "../data/data-view.js";
5
+ import { PageBody } from "../ui/page-header.js";
6
+ import { TooltipProvider } from "../ui/tooltip.js";
7
+ export function SelfHostDataView() {
8
+ const { project, capabilities } = useDashboardHost();
9
+ return _jsx(TooltipProvider, { children: _jsx(PageBody, { children: _jsx(DataView, { projectId: project.id, enabled: capabilities?.data !== false }) }) });
10
+ }
11
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/v2/views/data.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACrD,OAAO,KAAC,eAAe,cAAC,KAAC,QAAQ,cAAC,KAAC,QAAQ,IAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,KAAK,KAAK,GAAI,GAAW,GAAkB,CAAC;AAC5I,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/dashboard",
3
- "version": "0.15.142",
3
+ "version": "0.15.144",
4
4
  "description": "Polpo v2 runtime dashboard views for self-hosted and managed hosts",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -41,8 +41,9 @@
41
41
  "react-markdown": "^10.1.0",
42
42
  "shiki": "^3.22.0",
43
43
  "tailwind-merge": "^3.5.0",
44
- "@polpo-ai/react": "0.15.142",
45
- "@polpo-ai/sdk": "0.15.142"
44
+ "@polpo-ai/sdk": "0.15.144",
45
+ "@polpo-ai/core": "0.15.144",
46
+ "@polpo-ai/react": "0.15.144"
46
47
  },
47
48
  "peerDependencies": {
48
49
  "react": "^18.0.0 || ^19.0.0",