@acronis-platform/ui-react 0.53.0 → 0.55.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 (69) hide show
  1. package/dist/components/ui/avatar/avatar.js +1 -1
  2. package/dist/components/ui/avatar/avatar.js.map +1 -1
  3. package/dist/components/ui/breadcrumb/breadcrumb.js +5 -5
  4. package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -1
  5. package/dist/components/ui/chip/chip.js +1 -1
  6. package/dist/components/ui/chip/chip.js.map +1 -1
  7. package/dist/components/ui/combobox/combobox.js +51 -47
  8. package/dist/components/ui/combobox/combobox.js.map +1 -1
  9. package/dist/components/ui/data-table/data-table-column-header.js +7 -7
  10. package/dist/components/ui/data-table/data-table-column-header.js.map +1 -1
  11. package/dist/components/ui/data-table/data-table-view-options.js +4 -4
  12. package/dist/components/ui/data-table/data-table-view-options.js.map +1 -1
  13. package/dist/components/ui/data-table/data-table.js +1 -1
  14. package/dist/components/ui/data-table/data-table.js.map +1 -1
  15. package/dist/components/ui/dialog/dialog.js +36 -35
  16. package/dist/components/ui/dialog/dialog.js.map +1 -1
  17. package/dist/components/ui/dropdown-menu/dropdown-menu.js +55 -54
  18. package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
  19. package/dist/components/ui/filter-search/filter-search.js +28 -0
  20. package/dist/components/ui/filter-search/filter-search.js.map +1 -0
  21. package/dist/components/ui/input-date-picker/input-date-picker.js +8 -8
  22. package/dist/components/ui/input-date-picker/input-date-picker.js.map +1 -1
  23. package/dist/components/ui/input-search/input-search.js +11 -12
  24. package/dist/components/ui/input-search/input-search.js.map +1 -1
  25. package/dist/components/ui/input-select/input-select.js +72 -68
  26. package/dist/components/ui/input-select/input-select.js.map +1 -1
  27. package/dist/components/ui/input-text/input-text.js +6 -6
  28. package/dist/components/ui/input-text/input-text.js.map +1 -1
  29. package/dist/components/ui/popover/popover.js +18 -17
  30. package/dist/components/ui/popover/popover.js.map +1 -1
  31. package/dist/components/ui/resizable/resizable.js +24 -32
  32. package/dist/components/ui/resizable/resizable.js.map +1 -1
  33. package/dist/components/ui/scroll-area/scroll-area.js +61 -0
  34. package/dist/components/ui/scroll-area/scroll-area.js.map +1 -0
  35. package/dist/components/ui/sheet/sheet.js +38 -37
  36. package/dist/components/ui/sheet/sheet.js.map +1 -1
  37. package/dist/components/ui/sidebar-primary/sidebar-primary.js +203 -141
  38. package/dist/components/ui/sidebar-primary/sidebar-primary.js.map +1 -1
  39. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js +509 -351
  40. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js.map +1 -1
  41. package/dist/components/ui/switch/switch.js +6 -6
  42. package/dist/components/ui/switch/switch.js.map +1 -1
  43. package/dist/components/ui/table/table.js +7 -7
  44. package/dist/components/ui/table/table.js.map +1 -1
  45. package/dist/components/ui/tabs/tabs.js +11 -11
  46. package/dist/components/ui/tabs/tabs.js.map +1 -1
  47. package/dist/components/ui/toast/toast.js +35 -33
  48. package/dist/components/ui/toast/toast.js.map +1 -1
  49. package/dist/components/ui/tooltip/tooltip.js +41 -37
  50. package/dist/components/ui/tooltip/tooltip.js.map +1 -1
  51. package/dist/index.js +353 -349
  52. package/dist/index.js.map +1 -1
  53. package/dist/lib/portal-container.js +14 -0
  54. package/dist/lib/portal-container.js.map +1 -0
  55. package/dist/react.js +353 -349
  56. package/dist/react.js.map +1 -1
  57. package/dist/src/components/ui/filter-search/filter-search.d.ts +6 -0
  58. package/dist/src/components/ui/filter-search/index.d.ts +2 -0
  59. package/dist/src/components/ui/resizable/index.d.ts +2 -1
  60. package/dist/src/components/ui/resizable/resizable.d.ts +2 -5
  61. package/dist/src/components/ui/scroll-area/index.d.ts +1 -0
  62. package/dist/src/components/ui/scroll-area/scroll-area.d.ts +10 -0
  63. package/dist/src/components/ui/sidebar-primary/sidebar-primary.d.ts +48 -3
  64. package/dist/src/components/ui/sidebar-secondary/index.d.ts +1 -1
  65. package/dist/src/components/ui/sidebar-secondary/sidebar-secondary.d.ts +38 -33
  66. package/dist/src/index.d.ts +3 -0
  67. package/dist/src/lib/portal-container.d.ts +36 -0
  68. package/dist/ui-react.css +1 -1
  69. package/package.json +2 -3
@@ -1,30 +1,31 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import * as c from "react";
2
+ import * as P from "react";
3
3
  import { Popover as o } from "@base-ui/react/popover";
4
- import { cn as f } from "../../../lib/utils.js";
5
- const v = o.Root, h = o.Trigger, w = o.Portal, P = c.forwardRef(
4
+ import { cn as u } from "../../../lib/utils.js";
5
+ import { usePortalContainer as g } from "../../../lib/portal-container.js";
6
+ const w = o.Root, z = o.Trigger, N = o.Portal, b = P.forwardRef(
6
7
  ({
7
8
  className: r,
8
9
  side: a = "bottom",
9
- align: d = "center",
10
- sideOffset: n = 4,
10
+ align: n = "center",
11
+ sideOffset: d = 4,
11
12
  portal: i = !0,
12
13
  portalContainer: s,
13
14
  keepMounted: m,
14
15
  ...p
15
- }, l) => {
16
- const e = /* @__PURE__ */ t(
16
+ }, c) => {
17
+ const l = g(), f = s ?? l, e = /* @__PURE__ */ t(
17
18
  o.Positioner,
18
19
  {
19
20
  side: a,
20
- align: d,
21
- sideOffset: n,
21
+ align: n,
22
+ sideOffset: d,
22
23
  className: "z-50",
23
24
  children: /* @__PURE__ */ t(
24
25
  o.Popup,
25
26
  {
26
- ref: l,
27
- className: f(
27
+ ref: c,
28
+ className: u(
28
29
  "w-72 rounded-md border border-border bg-background p-4 text-foreground shadow-md outline-none",
29
30
  "duration-200 data-[open]:animate-in data-[closed]:animate-out data-[open]:fade-in-0 data-[closed]:fade-out-0 data-[open]:zoom-in-95 data-[closed]:zoom-out-95",
30
31
  "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2",
@@ -35,14 +36,14 @@ const v = o.Root, h = o.Trigger, w = o.Portal, P = c.forwardRef(
35
36
  )
36
37
  }
37
38
  );
38
- return i ? /* @__PURE__ */ t(o.Portal, { container: s, keepMounted: m, children: e }) : e;
39
+ return i ? /* @__PURE__ */ t(o.Portal, { container: f, keepMounted: m, children: e }) : e;
39
40
  }
40
41
  );
41
- P.displayName = "PopoverContent";
42
+ b.displayName = "PopoverContent";
42
43
  export {
43
- v as Popover,
44
- P as PopoverContent,
45
- w as PopoverPortal,
46
- h as PopoverTrigger
44
+ w as Popover,
45
+ b as PopoverContent,
46
+ N as PopoverPortal,
47
+ z as PopoverTrigger
47
48
  };
48
49
  //# sourceMappingURL=popover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sources":["../../../../src/components/ui/popover/popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn } from '@/lib/utils';\n\n// Ported from `@acronis-platform/shadcn-uikit`'s `popover`\n// (packages/ui-legacy/src/components/ui/popover.tsx). A floating panel anchored\n// to a trigger, built on the Base UI Popover primitive (positioning, focus\n// management, outside-press / Esc dismissal, ARIA come from Base UI). No\n// `--ui-popover-*` token tier exists yet, so this design-pending v1 themes from\n// the shared semantic tokens:\n// • surface -> bg-background (--ui-background-surface-primary) (legacy `bg-popover`)\n// • text -> text-foreground (--ui-text-on-surface-primary) (legacy `text-popover-foreground`)\n// • border -> border-border (--ui-border-on-surface-border) (legacy bare `border`)\n// Enter/exit animations use `tw-animate-css` keyed to Base UI's data-[open] /\n// data-[closed] / data-[side] attributes. Reconcile (and a possible\n// `--ui-popover-*` tier) with `/figma-component Popover <url> --update`.\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverPortal = PopoverPrimitive.Portal;\n\nexport interface PopoverContentProps\n extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Popup> {\n /** Which side of the trigger to render on. */\n side?: PopoverPrimitive.Positioner.Props['side'];\n /** Alignment along the chosen side. */\n align?: PopoverPrimitive.Positioner.Props['align'];\n /** Distance in px from the trigger. */\n sideOffset?: number;\n /**\n * Render inside a portal (default `true`). Set `false` for inline usage\n * (e.g. when supplying your own `PopoverPortal`).\n */\n portal?: boolean;\n /**\n * Portal container. Pass a shadow-root mount for isolated-style previews\n * (the docs demos do this via `useShadowMount`).\n */\n portalContainer?: PopoverPrimitive.Portal.Props['container'];\n /** Keep the content mounted while closed (Base UI `Portal` prop). */\n keepMounted?: PopoverPrimitive.Portal.Props['keepMounted'];\n}\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Popup>,\n PopoverContentProps\n>(\n (\n {\n className,\n side = 'bottom',\n align = 'center',\n sideOffset = 4,\n portal = true,\n portalContainer,\n keepMounted,\n ...props\n },\n ref\n ) => {\n const positioner = (\n <PopoverPrimitive.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n className=\"z-50\"\n >\n <PopoverPrimitive.Popup\n ref={ref}\n className={cn(\n 'w-72 rounded-md border border-border bg-background p-4 text-foreground shadow-md outline-none',\n 'duration-200 data-[open]:animate-in data-[closed]:animate-out data-[open]:fade-in-0 data-[closed]:fade-out-0 data-[open]:zoom-in-95 data-[closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n );\n\n return portal ? (\n <PopoverPrimitive.Portal container={portalContainer} keepMounted={keepMounted}>\n {positioner}\n </PopoverPrimitive.Portal>\n ) : (\n positioner\n );\n }\n);\nPopoverContent.displayName = 'PopoverContent';\n\nexport { Popover, PopoverTrigger, PopoverPortal, PopoverContent };\n"],"names":["Popover","PopoverPrimitive","PopoverTrigger","PopoverPortal","PopoverContent","React","className","side","align","sideOffset","portal","portalContainer","keepMounted","props","ref","positioner","jsx","cn"],"mappings":";;;;AAkBA,MAAMA,IAAUC,EAAiB,MAE3BC,IAAiBD,EAAiB,SAElCE,IAAgBF,EAAiB,QAwBjCG,IAAiBC,EAAM;AAAA,EAI3B,CACE;AAAA,IACE,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,OAAAC,IAAQ;AAAA,IACR,YAAAC,IAAa;AAAA,IACb,QAAAC,IAAS;AAAA,IACT,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IACJ,gBAAAC;AAAA,MAACf,EAAiB;AAAA,MAAjB;AAAA,QACC,MAAAM;AAAA,QACA,OAAAC;AAAA,QACA,YAAAC;AAAA,QACA,WAAU;AAAA,QAEV,UAAA,gBAAAO;AAAA,UAACf,EAAiB;AAAA,UAAjB;AAAA,YACC,KAAAa;AAAA,YACA,WAAWG;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACAX;AAAA,YAAA;AAAA,YAED,GAAGO;AAAA,UAAA;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAIJ,WAAOH,sBACJT,EAAiB,QAAjB,EAAwB,WAAWU,GAAiB,aAAAC,GAClD,UAAAG,EAAA,CACH,IAEAA;AAAA,EAEJ;AACF;AACAX,EAAe,cAAc;"}
1
+ {"version":3,"file":"popover.js","sources":["../../../../src/components/ui/popover/popover.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Popover as PopoverPrimitive } from '@base-ui/react/popover';\n\nimport { cn } from '@/lib/utils';\nimport { usePortalContainer } from '@/lib/portal-container';\n\n// Ported from `@acronis-platform/shadcn-uikit`'s `popover`\n// (packages/ui-legacy/src/components/ui/popover.tsx). A floating panel anchored\n// to a trigger, built on the Base UI Popover primitive (positioning, focus\n// management, outside-press / Esc dismissal, ARIA come from Base UI). No\n// `--ui-popover-*` token tier exists yet, so this design-pending v1 themes from\n// the shared semantic tokens:\n// • surface -> bg-background (--ui-background-surface-primary) (legacy `bg-popover`)\n// • text -> text-foreground (--ui-text-on-surface-primary) (legacy `text-popover-foreground`)\n// • border -> border-border (--ui-border-on-surface-border) (legacy bare `border`)\n// Enter/exit animations use `tw-animate-css` keyed to Base UI's data-[open] /\n// data-[closed] / data-[side] attributes. Reconcile (and a possible\n// `--ui-popover-*` tier) with `/figma-component Popover <url> --update`.\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverPortal = PopoverPrimitive.Portal;\n\nexport interface PopoverContentProps\n extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Popup> {\n /** Which side of the trigger to render on. */\n side?: PopoverPrimitive.Positioner.Props['side'];\n /** Alignment along the chosen side. */\n align?: PopoverPrimitive.Positioner.Props['align'];\n /** Distance in px from the trigger. */\n sideOffset?: number;\n /**\n * Render inside a portal (default `true`). Set `false` for inline usage\n * (e.g. when supplying your own `PopoverPortal`).\n */\n portal?: boolean;\n /**\n * Portal container. Pass a shadow-root mount for isolated-style previews\n * (the docs demos do this via `useShadowMount`).\n */\n portalContainer?: PopoverPrimitive.Portal.Props['container'];\n /** Keep the content mounted while closed (Base UI `Portal` prop). */\n keepMounted?: PopoverPrimitive.Portal.Props['keepMounted'];\n}\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Popup>,\n PopoverContentProps\n>(\n (\n {\n className,\n side = 'bottom',\n align = 'center',\n sideOffset = 4,\n portal = true,\n portalContainer,\n keepMounted,\n ...props\n },\n ref\n ) => {\n const ctxContainer = usePortalContainer();\n const resolvedContainer = portalContainer ?? ctxContainer;\n\n const positioner = (\n <PopoverPrimitive.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n className=\"z-50\"\n >\n <PopoverPrimitive.Popup\n ref={ref}\n className={cn(\n 'w-72 rounded-md border border-border bg-background p-4 text-foreground shadow-md outline-none',\n 'duration-200 data-[open]:animate-in data-[closed]:animate-out data-[open]:fade-in-0 data-[closed]:fade-out-0 data-[open]:zoom-in-95 data-[closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n );\n\n return portal ? (\n <PopoverPrimitive.Portal container={resolvedContainer} keepMounted={keepMounted}>\n {positioner}\n </PopoverPrimitive.Portal>\n ) : (\n positioner\n );\n }\n);\nPopoverContent.displayName = 'PopoverContent';\n\nexport { Popover, PopoverTrigger, PopoverPortal, PopoverContent };\n"],"names":["Popover","PopoverPrimitive","PopoverTrigger","PopoverPortal","PopoverContent","React","className","side","align","sideOffset","portal","portalContainer","keepMounted","props","ref","ctxContainer","usePortalContainer","resolvedContainer","positioner","jsx","cn"],"mappings":";;;;;AAmBA,MAAMA,IAAUC,EAAiB,MAE3BC,IAAiBD,EAAiB,SAElCE,IAAgBF,EAAiB,QAwBjCG,IAAiBC,EAAM;AAAA,EAI3B,CACE;AAAA,IACE,WAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,OAAAC,IAAQ;AAAA,IACR,YAAAC,IAAa;AAAA,IACb,QAAAC,IAAS;AAAA,IACT,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAeC,EAAA,GACfC,IAAoBN,KAAmBI,GAEvCG,IACJ,gBAAAC;AAAA,MAAClB,EAAiB;AAAA,MAAjB;AAAA,QACC,MAAAM;AAAA,QACA,OAAAC;AAAA,QACA,YAAAC;AAAA,QACA,WAAU;AAAA,QAEV,UAAA,gBAAAU;AAAA,UAAClB,EAAiB;AAAA,UAAjB;AAAA,YACC,KAAAa;AAAA,YACA,WAAWM;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACAd;AAAA,YAAA;AAAA,YAED,GAAGO;AAAA,UAAA;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAIJ,WAAOH,sBACJT,EAAiB,QAAjB,EAAwB,WAAWgB,GAAmB,aAAAL,GACpD,UAAAM,EAAA,CACH,IAEAA;AAAA,EAEJ;AACF;AACAd,EAAe,cAAc;"}
@@ -1,52 +1,44 @@
1
- import { jsx as a } from "react/jsx-runtime";
2
- import { Separator as o, Panel as n, Group as l } from "../../../node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/react-resizable-panels/dist/react-resizable-panels.js";
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { Separator as i, Panel as o, Group as n } from "../../../node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/react-resizable-panels/dist/react-resizable-panels.js";
3
3
  import { cn as e } from "../../../lib/utils.js";
4
- function b({ className: r, ...i }) {
5
- return /* @__PURE__ */ a(
6
- l,
4
+ function u({ className: r, ...a }) {
5
+ return /* @__PURE__ */ t(
6
+ n,
7
7
  {
8
8
  className: e("flex h-full w-full aria-[orientation=vertical]:flex-col", r),
9
- ...i
9
+ ...a
10
10
  }
11
11
  );
12
12
  }
13
- function z(r) {
14
- return /* @__PURE__ */ a(n, { ...r });
13
+ function c(r) {
14
+ return /* @__PURE__ */ t(o, { ...r });
15
15
  }
16
- function h({ withHandle: r, className: i, ...t }) {
17
- return /* @__PURE__ */ a(
18
- o,
16
+ function b({ className: r, ...a }) {
17
+ return /* @__PURE__ */ t(
18
+ i,
19
19
  {
20
20
  className: e(
21
- "relative flex w-[var(--ui-resizable-bar-width)] items-center justify-center",
21
+ // 9px hit area: 1px divider + 4px padding each side.
22
+ "relative flex w-[9px] items-center justify-center",
22
23
  "cursor-[var(--ui-resizable-cursor)] outline-none",
23
- // Centered 1px divider line (idle/hover → hover token, drag → active token).
24
- "after:absolute after:inset-y-0 after:left-1/2 after:-translate-x-1/2",
25
- "after:w-[var(--ui-resizable-border-width)] after:bg-[var(--ui-resizable-border-color-hover)]",
24
+ // Centered 1px divider line (idle → semantic border, hover → hover token, drag → active token).
25
+ "after:absolute after:inset-y-0 after:start-1/2 after:-translate-x-1/2",
26
+ "after:w-[var(--ui-resizable-border-width)] after:bg-[var(--ui-border-on-surface-border)]",
27
+ "hover:after:bg-[var(--ui-resizable-border-color-hover)]",
26
28
  "active:after:bg-[var(--ui-resizable-border-color-active)]",
27
29
  "focus-visible:ring-[3px] focus-visible:ring-[var(--ui-focus-primary)]",
28
30
  // orientation=horizontal = panels stacked → horizontal divider line.
29
- "aria-[orientation=horizontal]:h-[var(--ui-resizable-bar-width)] aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-[ns-resize]",
30
- "aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:inset-y-auto aria-[orientation=horizontal]:after:left-auto aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-[var(--ui-resizable-border-width)] aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=horizontal]:after:translate-x-0",
31
- "[&[aria-orientation=horizontal]>div]:rotate-90",
32
- i
31
+ "aria-[orientation=horizontal]:h-[9px] aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-[ns-resize]",
32
+ "aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:inset-y-auto aria-[orientation=horizontal]:after:start-auto aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-[var(--ui-resizable-border-width)] aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=horizontal]:after:translate-x-0",
33
+ r
33
34
  ),
34
- ...t,
35
- children: r && /* @__PURE__ */ a(
36
- "div",
37
- {
38
- className: e(
39
- "z-10 h-[var(--ui-resizable-bar-height)] w-[var(--ui-resizable-bar-width)]",
40
- "rounded-[var(--ui-resizable-bar-border-radius)] bg-[var(--ui-resizable-bar-color)]"
41
- )
42
- }
43
- )
35
+ ...a
44
36
  }
45
37
  );
46
38
  }
47
39
  export {
48
- h as ResizableHandle,
49
- z as ResizablePanel,
50
- b as ResizablePanelGroup
40
+ b as ResizableHandle,
41
+ c as ResizablePanel,
42
+ u as ResizablePanelGroup
51
43
  };
52
44
  //# sourceMappingURL=resizable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.js","sources":["../../../../src/components/ui/resizable/resizable.tsx"],"sourcesContent":["import * as ResizablePrimitive from 'react-resizable-panels';\n\nimport { cn } from '@/lib/utils';\n\n// Resizable panels: a thin wrapper over `react-resizable-panels` (v4: `Group` /\n// `Panel` / `Separator`) themed with the next-gen `--ui-resizable-*` token tier,\n// following the shadcn composition (`ResizablePanelGroup` / `ResizablePanel` /\n// `ResizableHandle`). Base UI has no resizable primitive, so this is the one\n// component that wraps a third-party panel library instead.\n//\n// The handle is the 7px-wide draggable `Separator`. It paints a centered 1px\n// divider line (`--ui-resizable-border-width`/`-style`) — `--ui-resizable-border-color-hover`\n// at rest, `--ui-resizable-border-color-active` while dragging (`:active`) — and,\n// when `withHandle` is set, an always-visible grab-bar pill\n// (`--ui-resizable-bar-*`: 7×32, 4px radius) centered over the line. Keyboard\n// focus paints a 3px `--ui-focus-primary` ring; the resting cursor is\n// `--ui-resizable-cursor` (`ew-resize`). The acronis brand draws hover/active/idle\n// in the same blue and deep-sky in the same gray, but each interaction state is\n// wired to its own token so a future brand can diverge.\n//\n// `orientation=\"vertical\"` (panels stacked) flips the layout: the Group goes\n// `flex-col`, the Separator becomes a horizontal line (`aria-orientation=horizontal`),\n// the cursor becomes `ns-resize`, and the grip pill rotates 90°.\n\nfunction ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n className={cn('flex h-full w-full aria-[orientation=vertical]:flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel(props: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel {...props} />;\n}\n\nexport interface ResizableHandleProps extends ResizablePrimitive.SeparatorProps {\n /** Render the grab-bar pill centered on the handle. */\n withHandle?: boolean;\n}\n\nfunction ResizableHandle({ withHandle, className, ...props }: ResizableHandleProps) {\n return (\n <ResizablePrimitive.Separator\n className={cn(\n 'relative flex w-[var(--ui-resizable-bar-width)] items-center justify-center',\n 'cursor-[var(--ui-resizable-cursor)] outline-none',\n // Centered 1px divider line (idle/hover → hover token, drag → active token).\n 'after:absolute after:inset-y-0 after:left-1/2 after:-translate-x-1/2',\n 'after:w-[var(--ui-resizable-border-width)] after:bg-[var(--ui-resizable-border-color-hover)]',\n 'active:after:bg-[var(--ui-resizable-border-color-active)]',\n 'focus-visible:ring-[3px] focus-visible:ring-[var(--ui-focus-primary)]',\n // orientation=horizontal = panels stacked → horizontal divider line.\n 'aria-[orientation=horizontal]:h-[var(--ui-resizable-bar-width)] aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-[ns-resize]',\n 'aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:inset-y-auto aria-[orientation=horizontal]:after:left-auto aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-[var(--ui-resizable-border-width)] aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=horizontal]:after:translate-x-0',\n '[&[aria-orientation=horizontal]>div]:rotate-90',\n className\n )}\n {...props}\n >\n {withHandle && (\n <div\n className={cn(\n 'z-10 h-[var(--ui-resizable-bar-height)] w-[var(--ui-resizable-bar-width)]',\n 'rounded-[var(--ui-resizable-bar-border-radius)] bg-[var(--ui-resizable-bar-color)]'\n )}\n />\n )}\n </ResizablePrimitive.Separator>\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n"],"names":["ResizablePanelGroup","className","props","jsx","ResizablePrimitive.Group","cn","ResizablePanel","ResizablePrimitive.Panel","ResizableHandle","withHandle","ResizablePrimitive.Separator"],"mappings":";;;AAwBA,SAASA,EAAoB,EAAE,WAAAC,GAAW,GAAGC,KAAwC;AACnF,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAG,2DAA2DJ,CAAS;AAAA,MACjF,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAeJ,GAAsC;AAC5D,SAAO,gBAAAC,EAACI,GAAA,EAA0B,GAAGL,EAAA,CAAO;AAC9C;AAOA,SAASM,EAAgB,EAAE,YAAAC,GAAY,WAAAR,GAAW,GAAGC,KAA+B;AAClF,SACE,gBAAAC;AAAA,IAACO;AAAAA,IAAA;AAAA,MACC,WAAWL;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAAO,KACC,gBAAAN;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWE;AAAA,YACT;AAAA,YACA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"resizable.js","sources":["../../../../src/components/ui/resizable/resizable.tsx"],"sourcesContent":["import * as ResizablePrimitive from 'react-resizable-panels';\n\nimport { cn } from '@/lib/utils';\n\n// Resizable panels: a thin wrapper over `react-resizable-panels` (v4: `Group` /\n// `Panel` / `Separator`) themed with the next-gen `--ui-resizable-*` token tier,\n// following the shadcn composition (`ResizablePanelGroup` / `ResizablePanel` /\n// `ResizableHandle`). Base UI has no resizable primitive, so this is the one\n// component that wraps a third-party panel library instead.\n//\n// The handle is the 9px-wide draggable `Separator` (Figma node 4649:6681,\n// 1px divider + 4px padding each side for hover hit area). It paints a centered\n// 1px divider line (`--ui-resizable-border-width`) — `--ui-border-on-surface-border`\n// at rest (idle), `--ui-resizable-border-color-hover` on pointer hover,\n// `--ui-resizable-border-color-active` while dragging (`:active`). Keyboard focus\n// paints a 3px `--ui-focus-primary` ring; the resting cursor is\n// `--ui-resizable-cursor` (`ew-resize`). Each interaction state is wired to its\n// own token so brands can diverge.\n//\n// `orientation=\"vertical\"` (panels stacked) flips the layout: the Group goes\n// `flex-col`, the Separator becomes a horizontal line (`aria-orientation=horizontal`),\n// and the cursor becomes `ns-resize`.\n\nfunction ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n className={cn('flex h-full w-full aria-[orientation=vertical]:flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel(props: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel {...props} />;\n}\n\nexport type ResizableHandleProps = ResizablePrimitive.SeparatorProps;\n\nfunction ResizableHandle({ className, ...props }: ResizableHandleProps) {\n return (\n <ResizablePrimitive.Separator\n className={cn(\n // 9px hit area: 1px divider + 4px padding each side.\n 'relative flex w-[9px] items-center justify-center',\n 'cursor-[var(--ui-resizable-cursor)] outline-none',\n // Centered 1px divider line (idle → semantic border, hover → hover token, drag → active token).\n 'after:absolute after:inset-y-0 after:start-1/2 after:-translate-x-1/2',\n 'after:w-[var(--ui-resizable-border-width)] after:bg-[var(--ui-border-on-surface-border)]',\n 'hover:after:bg-[var(--ui-resizable-border-color-hover)]',\n 'active:after:bg-[var(--ui-resizable-border-color-active)]',\n 'focus-visible:ring-[3px] focus-visible:ring-[var(--ui-focus-primary)]',\n // orientation=horizontal = panels stacked → horizontal divider line.\n 'aria-[orientation=horizontal]:h-[9px] aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:cursor-[ns-resize]',\n 'aria-[orientation=horizontal]:after:inset-x-0 aria-[orientation=horizontal]:after:inset-y-auto aria-[orientation=horizontal]:after:start-auto aria-[orientation=horizontal]:after:top-1/2 aria-[orientation=horizontal]:after:h-[var(--ui-resizable-border-width)] aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:-translate-y-1/2 aria-[orientation=horizontal]:after:translate-x-0',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n"],"names":["ResizablePanelGroup","className","props","jsx","ResizablePrimitive.Group","cn","ResizablePanel","ResizablePrimitive.Panel","ResizableHandle","ResizablePrimitive.Separator"],"mappings":";;;AAuBA,SAASA,EAAoB,EAAE,WAAAC,GAAW,GAAGC,KAAwC;AACnF,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAG,2DAA2DJ,CAAS;AAAA,MACjF,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAeJ,GAAsC;AAC5D,SAAO,gBAAAC,EAACI,GAAA,EAA0B,GAAGL,EAAA,CAAO;AAC9C;AAIA,SAASM,EAAgB,EAAE,WAAAP,GAAW,GAAGC,KAA+B;AACtE,SACE,gBAAAC;AAAA,IAACM;AAAAA,IAAA;AAAA,MACC,WAAWJ;AAAA;AAAA,QAET;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -0,0 +1,61 @@
1
+ import { jsxs as d, jsx as r } from "react/jsx-runtime";
2
+ import * as i from "react";
3
+ import { ScrollArea as a } from "@base-ui/react/scroll-area";
4
+ import { cn as s } from "../../../lib/utils.js";
5
+ const c = i.forwardRef(
6
+ ({ className: e, orientation: o = "vertical", ...l }, t) => /* @__PURE__ */ r(
7
+ a.Scrollbar,
8
+ {
9
+ ref: t,
10
+ orientation: o,
11
+ "data-slot": "scroll-area-scrollbar",
12
+ className: s(
13
+ "flex touch-none select-none opacity-0 transition-opacity duration-150",
14
+ // Revealed on hover/scroll; hidden at rest.
15
+ "data-[hovering]:opacity-100 data-[scrolling]:opacity-100",
16
+ o === "vertical" && "h-full w-2.5 p-px",
17
+ o === "horizontal" && "h-2.5 w-full flex-col p-px",
18
+ e
19
+ ),
20
+ ...l,
21
+ children: /* @__PURE__ */ r(
22
+ a.Thumb,
23
+ {
24
+ "data-slot": "scroll-area-thumb",
25
+ className: "relative flex-1 rounded-full bg-[var(--ui-border-on-surface-border)] transition-colors hover:bg-[var(--ui-border-on-surface-border-active)]"
26
+ }
27
+ )
28
+ }
29
+ )
30
+ );
31
+ c.displayName = "ScrollBar";
32
+ const f = i.forwardRef(
33
+ ({ className: e, children: o, orientation: l = "vertical", ...t }, n) => /* @__PURE__ */ d(
34
+ a.Root,
35
+ {
36
+ ref: n,
37
+ "data-slot": "scroll-area",
38
+ className: s("relative overflow-hidden", e),
39
+ ...t,
40
+ children: [
41
+ /* @__PURE__ */ r(
42
+ a.Viewport,
43
+ {
44
+ "data-slot": "scroll-area-viewport",
45
+ className: "size-full rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-brand)]",
46
+ children: /* @__PURE__ */ r(a.Content, { "data-slot": "scroll-area-content", children: o })
47
+ }
48
+ ),
49
+ l !== "horizontal" && /* @__PURE__ */ r(c, { orientation: "vertical" }),
50
+ l !== "vertical" && /* @__PURE__ */ r(c, { orientation: "horizontal" }),
51
+ l === "both" && /* @__PURE__ */ r(a.Corner, { "data-slot": "scroll-area-corner" })
52
+ ]
53
+ }
54
+ )
55
+ );
56
+ f.displayName = "ScrollArea";
57
+ export {
58
+ f as ScrollArea,
59
+ c as ScrollBar
60
+ };
61
+ //# sourceMappingURL=scroll-area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-area.js","sources":["../../../../src/components/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area';\n\nimport { cn } from '@/lib/utils';\n\n// A scrollable region with a custom **overlay** scrollbar built on Base UI's\n// Scroll Area. Unlike a native `overflow: auto` element, the scrollbar floats\n// over the content and reserves **zero** layout space, so full-bleed content\n// (e.g. edge-to-edge selected rows in a sidebar) is never cropped by a gutter —\n// on every OS and browser, not just where the platform provides overlay bars.\n// The bar is revealed on hover/scroll and hidden at rest.\n\nexport type ScrollBarProps = React.ComponentPropsWithoutRef<\n typeof ScrollAreaPrimitive.Scrollbar\n>;\n\nconst ScrollBar = React.forwardRef<HTMLDivElement, ScrollBarProps>(\n ({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.Scrollbar\n ref={ref}\n orientation={orientation}\n data-slot=\"scroll-area-scrollbar\"\n className={cn(\n 'flex touch-none select-none opacity-0 transition-opacity duration-150',\n // Revealed on hover/scroll; hidden at rest.\n 'data-[hovering]:opacity-100 data-[scrolling]:opacity-100',\n orientation === 'vertical' && 'h-full w-2.5 p-px',\n orientation === 'horizontal' && 'h-2.5 w-full flex-col p-px',\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-[var(--ui-border-on-surface-border)] transition-colors hover:bg-[var(--ui-border-on-surface-border-active)]\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n);\nScrollBar.displayName = 'ScrollBar';\n\nexport interface ScrollAreaProps\n extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n /** Which scrollbar(s) to render. @default 'vertical' */\n orientation?: 'vertical' | 'horizontal' | 'both';\n}\n\nconst ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(\n ({ className, children, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n data-slot=\"scroll-area\"\n className={cn('relative overflow-hidden', className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-brand)]\"\n >\n <ScrollAreaPrimitive.Content data-slot=\"scroll-area-content\">\n {children}\n </ScrollAreaPrimitive.Content>\n </ScrollAreaPrimitive.Viewport>\n {orientation !== 'horizontal' && <ScrollBar orientation=\"vertical\" />}\n {orientation !== 'vertical' && <ScrollBar orientation=\"horizontal\" />}\n {orientation === 'both' && (\n <ScrollAreaPrimitive.Corner data-slot=\"scroll-area-corner\" />\n )}\n </ScrollAreaPrimitive.Root>\n )\n);\nScrollArea.displayName = 'ScrollArea';\n\nexport { ScrollArea, ScrollBar };\n"],"names":["ScrollBar","React","className","orientation","props","ref","jsx","ScrollAreaPrimitive","cn","ScrollArea","children","jsxs"],"mappings":";;;;AAgBA,MAAMA,IAAYC,EAAM;AAAA,EACtB,CAAC,EAAE,WAAAC,GAAW,aAAAC,IAAc,YAAY,GAAGC,EAAA,GAASC,MAClD,gBAAAC;AAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,KAAAF;AAAA,MACA,aAAAF;AAAA,MACA,aAAU;AAAA,MACV,WAAWK;AAAA,QACT;AAAA;AAAA,QAEA;AAAA,QACAL,MAAgB,cAAc;AAAA,QAC9BA,MAAgB,gBAAgB;AAAA,QAChCD;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEJ,UAAA,gBAAAE;AAAA,QAACC,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ;AAAA,EAAA;AAGN;AACAP,EAAU,cAAc;AAQxB,MAAMS,IAAaR,EAAM;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,UAAAQ,GAAU,aAAAP,IAAc,YAAY,GAAGC,EAAA,GAASC,MAC5D,gBAAAM;AAAA,IAACJ,EAAoB;AAAA,IAApB;AAAA,MACC,KAAAF;AAAA,MACA,aAAU;AAAA,MACV,WAAWG,EAAG,4BAA4BN,CAAS;AAAA,MAClD,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAE;AAAA,UAACC,EAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA,YAEV,4BAACA,EAAoB,SAApB,EAA4B,aAAU,uBACpC,UAAAG,EAAA,CACH;AAAA,UAAA;AAAA,QAAA;AAAA,QAEDP,MAAgB,gBAAgB,gBAAAG,EAACN,GAAA,EAAU,aAAY,YAAW;AAAA,QAClEG,MAAgB,cAAc,gBAAAG,EAACN,GAAA,EAAU,aAAY,cAAa;AAAA,QAClEG,MAAgB,UACf,gBAAAG,EAACC,EAAoB,QAApB,EAA2B,aAAU,qBAAA,CAAqB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAInE;AACAE,EAAW,cAAc;"}
@@ -1,10 +1,11 @@
1
- import { jsx as r, jsxs as n, Fragment as u } from "react/jsx-runtime";
1
+ import { jsx as r, jsxs as n, Fragment as g } from "react/jsx-runtime";
2
2
  import * as d from "react";
3
3
  import { Dialog as a } from "@base-ui/react/dialog";
4
- import { TimesIcon as b } from "@acronis-platform/icons-react/stroke-mono";
5
- import { cva as g } from "../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js";
4
+ import { TimesIcon as x } from "@acronis-platform/icons-react/stroke-mono";
5
+ import { cva as y } from "../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js";
6
6
  import { cn as s } from "../../../lib/utils.js";
7
- const x = g(
7
+ import { usePortalContainer as v } from "../../../lib/portal-container.js";
8
+ const S = y(
8
9
  "fixed z-50 flex flex-col overflow-hidden bg-muted text-foreground shadow-lg duration-300 data-[open]:animate-in data-[closed]:animate-out",
9
10
  {
10
11
  variants: {
@@ -19,7 +20,7 @@ const x = g(
19
20
  side: "right"
20
21
  }
21
22
  }
22
- ), j = a.Root, z = a.Trigger, F = a.Portal, H = a.Close, l = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
23
+ ), O = a.Root, V = a.Trigger, I = a.Portal, q = a.Close, l = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
23
24
  a.Backdrop,
24
25
  {
25
26
  ref: t,
@@ -31,33 +32,33 @@ const x = g(
31
32
  }
32
33
  ));
33
34
  l.displayName = "SheetOverlay";
34
- const y = d.forwardRef(
35
+ const N = d.forwardRef(
35
36
  ({
36
37
  className: e,
37
38
  children: o,
38
39
  side: t,
39
40
  portal: m = !0,
40
- portalContainer: f,
41
- keepMounted: c,
41
+ portalContainer: c,
42
+ keepMounted: f,
42
43
  ...p
43
44
  }, h) => {
44
- const i = /* @__PURE__ */ n(u, { children: [
45
+ const u = v(), b = c ?? u, i = /* @__PURE__ */ n(g, { children: [
45
46
  /* @__PURE__ */ r(l, {}),
46
47
  /* @__PURE__ */ r(
47
48
  a.Popup,
48
49
  {
49
50
  ref: h,
50
- className: s(x({ side: t }), e),
51
+ className: s(S({ side: t }), e),
51
52
  ...p,
52
53
  children: o
53
54
  }
54
55
  )
55
56
  ] });
56
- return m ? /* @__PURE__ */ r(a.Portal, { container: f, keepMounted: c, children: i }) : i;
57
+ return m ? /* @__PURE__ */ r(a.Portal, { container: b, keepMounted: f, children: i }) : i;
57
58
  }
58
59
  );
59
- y.displayName = "SheetContent";
60
- const S = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
60
+ N.displayName = "SheetContent";
61
+ const w = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
61
62
  "div",
62
63
  {
63
64
  ref: t,
@@ -68,8 +69,8 @@ const S = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
68
69
  ...o
69
70
  }
70
71
  ));
71
- S.displayName = "SheetHeader";
72
- const v = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
72
+ w.displayName = "SheetHeader";
73
+ const C = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
73
74
  "div",
74
75
  {
75
76
  ref: t,
@@ -80,10 +81,10 @@ const v = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
80
81
  ...o
81
82
  }
82
83
  ));
83
- v.displayName = "SheetFooter";
84
- const N = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r("div", { ref: t, className: s("flex-1 overflow-auto p-6", e), ...o }));
85
- N.displayName = "SheetBody";
86
- const w = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
84
+ C.displayName = "SheetFooter";
85
+ const R = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r("div", { ref: t, className: s("flex-1 overflow-auto p-6", e), ...o }));
86
+ R.displayName = "SheetBody";
87
+ const k = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
87
88
  a.Title,
88
89
  {
89
90
  ref: t,
@@ -94,8 +95,8 @@ const w = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
94
95
  ...o
95
96
  }
96
97
  ));
97
- w.displayName = "SheetTitle";
98
- const R = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
98
+ k.displayName = "SheetTitle";
99
+ const T = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
99
100
  a.Description,
100
101
  {
101
102
  ref: t,
@@ -103,8 +104,8 @@ const R = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ r(
103
104
  ...o
104
105
  }
105
106
  ));
106
- R.displayName = "SheetDescription";
107
- const C = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ n(
107
+ T.displayName = "SheetDescription";
108
+ const B = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ n(
108
109
  a.Close,
109
110
  {
110
111
  ref: t,
@@ -114,25 +115,25 @@ const C = d.forwardRef(({ className: e, ...o }, t) => /* @__PURE__ */ n(
114
115
  ),
115
116
  ...o,
116
117
  children: [
117
- /* @__PURE__ */ r(b, { size: 24 }),
118
+ /* @__PURE__ */ r(x, { size: 24 }),
118
119
  /* @__PURE__ */ r("span", { className: "sr-only", children: "Close" })
119
120
  ]
120
121
  }
121
122
  ));
122
- C.displayName = "SheetCloseButton";
123
+ B.displayName = "SheetCloseButton";
123
124
  export {
124
- j as Sheet,
125
- N as SheetBody,
126
- H as SheetClose,
127
- C as SheetCloseButton,
128
- y as SheetContent,
129
- R as SheetDescription,
130
- v as SheetFooter,
131
- S as SheetHeader,
125
+ O as Sheet,
126
+ R as SheetBody,
127
+ q as SheetClose,
128
+ B as SheetCloseButton,
129
+ N as SheetContent,
130
+ T as SheetDescription,
131
+ C as SheetFooter,
132
+ w as SheetHeader,
132
133
  l as SheetOverlay,
133
- F as SheetPortal,
134
- w as SheetTitle,
135
- z as SheetTrigger,
136
- x as sheetVariants
134
+ I as SheetPortal,
135
+ k as SheetTitle,
136
+ V as SheetTrigger,
137
+ S as sheetVariants
137
138
  };
138
139
  //# sourceMappingURL=sheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sources":["../../../../src/components/ui/sheet/sheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { TimesIcon } from '@acronis-platform/icons-react/stroke-mono';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\n// Initial version ported from `@acronis-platform/shadcn-uikit`'s `sheet`\n// (packages/ui-legacy/src/components/ui/sheet.tsx). A modal side panel — the\n// same Base UI Dialog primitive the `Dialog` component uses (keyboard, focus\n// trap, scroll lock, ARIA come from Base UI), but anchored to a screen edge with\n// a slide transition. In the Vue kit this was `Details`; it's re-exported under\n// `Details*` aliases for a 1:1 drop-in. No `--ui-sheet-*` token tier exists yet,\n// so this design-pending v1 mirrors the Dialog family's semantic theming:\n// • overlay -> var(--ui-background-overlay-primary)\n// • panel -> bg-muted = --ui-background-surface-secondary\n// • header / footer -> bg-background = --ui-background-surface-primary bars,\n// divided by border-border\n// • title -> text-foreground / description -> text-muted-foreground\n// • close -> text-muted-foreground → hover text-foreground, focus ring\n// var(--ui-focus-primary)\n// Enter/exit slide animations use `tw-animate-css` (imported in styles/index.css),\n// keyed to Base UI's data-[open] / data-[closed] state attributes. Reconcile\n// against the real design with `/figma-component Sheet <url> --update`\n// (Cyber-Compliance node 3442-31542) once the mockup is ready for dev.\n\nconst sheetVariants = cva(\n 'fixed z-50 flex flex-col overflow-hidden bg-muted text-foreground shadow-lg duration-300 data-[open]:animate-in data-[closed]:animate-out',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 max-h-[80vh] border-b border-border data-[open]:slide-in-from-top data-[closed]:slide-out-to-top',\n bottom:\n 'inset-x-0 bottom-0 max-h-[80vh] border-t border-border data-[open]:slide-in-from-bottom data-[closed]:slide-out-to-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r border-border data-[open]:slide-in-from-left data-[closed]:slide-out-to-left sm:max-w-md',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l border-border data-[open]:slide-in-from-right data-[closed]:slide-out-to-right sm:max-w-md',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n);\n\nconst Sheet = DialogPrimitive.Root;\n\nconst SheetTrigger = DialogPrimitive.Trigger;\n\nconst SheetPortal = DialogPrimitive.Portal;\n\nconst SheetClose = DialogPrimitive.Close;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Backdrop>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Backdrop>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-[var(--ui-background-overlay-primary)] duration-200 data-[open]:animate-in data-[open]:fade-in-0 data-[closed]:animate-out data-[closed]:fade-out-0',\n className\n )}\n {...props}\n />\n));\nSheetOverlay.displayName = 'SheetOverlay';\n\nexport interface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Popup>,\n VariantProps<typeof sheetVariants> {\n /** Screen edge the panel anchors to. Defaults to `right`. */\n side?: VariantProps<typeof sheetVariants>['side'];\n /**\n * Render the content inside a portal (default `true`). Base UI requires the\n * Popup to sit in a Portal for correct stacking; set `false` for inline usage\n * (e.g. when the caller supplies its own `SheetPortal`, or in tests).\n */\n portal?: boolean;\n /**\n * Portal container. Pass a shadow-root mount for isolated-style previews\n * (the docs demos do this via `useShadowMount`).\n */\n portalContainer?: DialogPrimitive.Portal.Props['container'];\n /** Keep the content mounted while closed (Base UI `Portal` prop). */\n keepMounted?: DialogPrimitive.Portal.Props['keepMounted'];\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Popup>,\n SheetContentProps\n>(\n (\n {\n className,\n children,\n side,\n portal = true,\n portalContainer,\n keepMounted,\n ...props\n },\n ref\n ) => {\n const popup = (\n <>\n <SheetOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n </DialogPrimitive.Popup>\n </>\n );\n\n return portal ? (\n <DialogPrimitive.Portal container={portalContainer} keepMounted={keepMounted}>\n {popup}\n </DialogPrimitive.Portal>\n ) : (\n popup\n );\n }\n);\nSheetContent.displayName = 'SheetContent';\n\nconst SheetHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 shrink-0 items-center gap-4 border-b border-border bg-background px-5 py-4',\n className\n )}\n {...props}\n />\n));\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 shrink-0 items-center justify-end gap-4 border-t border-border bg-background px-6 py-4',\n className\n )}\n {...props}\n />\n));\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetBody = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex-1 overflow-auto p-6', className)} {...props} />\n));\nSheetBody.displayName = 'SheetBody';\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n 'flex-1 text-lg font-semibold leading-7 text-foreground',\n className\n )}\n {...props}\n />\n));\nSheetTitle.displayName = 'SheetTitle';\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSheetDescription.displayName = 'SheetDescription';\n\nconst SheetCloseButton = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Close>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Close>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Close\n ref={ref}\n className={cn(\n 'rounded p-1 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-primary)] disabled:pointer-events-none',\n className\n )}\n {...props}\n >\n <TimesIcon size={24} />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n));\nSheetCloseButton.displayName = 'SheetCloseButton';\n\nexport {\n Sheet,\n SheetTrigger,\n SheetPortal,\n SheetClose,\n SheetCloseButton,\n SheetOverlay,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetBody,\n SheetTitle,\n SheetDescription,\n sheetVariants,\n};\n"],"names":["sheetVariants","cva","Sheet","DialogPrimitive","SheetTrigger","SheetPortal","SheetClose","SheetOverlay","React","className","props","ref","jsx","cn","SheetContent","children","side","portal","portalContainer","keepMounted","popup","jsxs","Fragment","SheetHeader","SheetFooter","SheetBody","SheetTitle","SheetDescription","SheetCloseButton","TimesIcon"],"mappings":";;;;;;AA0BA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,KAAK;AAAA,QACL,QACE;AAAA,QACF,MAAM;AAAA,QACN,OACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ,GAEMC,IAAQC,EAAgB,MAExBC,IAAeD,EAAgB,SAE/BE,IAAcF,EAAgB,QAE9BG,IAAaH,EAAgB,OAE7BI,IAAeC,EAAM,WAGzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDH,EAAa,cAAc;AAsB3B,MAAMO,IAAeN,EAAM;AAAA,EAIzB,CACE;AAAA,IACE,WAAAC;AAAA,IACA,UAAAM;AAAA,IACA,MAAAC;AAAA,IACA,QAAAC,IAAS;AAAA,IACT,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,GAAGT;AAAA,EAAA,GAELC,MACG;AACH,UAAMS,IACJ,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAAV,EAACL,GAAA,EAAa;AAAA,MACd,gBAAAK;AAAA,QAACT,EAAgB;AAAA,QAAhB;AAAA,UACC,KAAAQ;AAAA,UACA,WAAWE,EAAGb,EAAc,EAAE,MAAAgB,EAAA,CAAM,GAAGP,CAAS;AAAA,UAC/C,GAAGC;AAAA,UAEH,UAAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GACF;AAGF,WAAOE,sBACJd,EAAgB,QAAhB,EAAuB,WAAWe,GAAiB,aAAAC,GACjD,UAAAC,EAAA,CACH,IAEAA;AAAA,EAEJ;AACF;AACAN,EAAa,cAAc;AAE3B,MAAMS,IAAcf,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDa,EAAY,cAAc;AAE1B,MAAMC,IAAchB,EAAM,WAGxB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDc,EAAY,cAAc;AAE1B,MAAMC,IAAYjB,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,KAASC,wBACzB,OAAA,EAAI,KAAAA,GAAU,WAAWE,EAAG,4BAA4BJ,CAAS,GAAI,GAAGC,GAAO,CACjF;AACDe,EAAU,cAAc;AAExB,MAAMC,IAAalB,EAAM,WAGvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,EAAA;AACN,CACD;AACDgB,EAAW,cAAc;AAEzB,MAAMC,IAAmBnB,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAACT,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE,EAAG,iCAAiCJ,CAAS;AAAA,IACvD,GAAGC;AAAA,EAAA;AACN,CACD;AACDiB,EAAiB,cAAc;AAE/B,MAAMC,IAAmBpB,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAU;AAAA,EAAClB,EAAgB;AAAA,EAAhB;AAAA,IACC,KAAAQ;AAAA,IACA,WAAWE;AAAA,MACT;AAAA,MACAJ;AAAA,IAAA;AAAA,IAED,GAAGC;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAACiB,GAAA,EAAU,MAAM,GAAA,CAAI;AAAA,MACrB,gBAAAjB,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AACjC,CACD;AACDgB,EAAiB,cAAc;"}
1
+ {"version":3,"file":"sheet.js","sources":["../../../../src/components/ui/sheet/sheet.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { TimesIcon } from '@acronis-platform/icons-react/stroke-mono';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\nimport { usePortalContainer } from '@/lib/portal-container';\n\n// Initial version ported from `@acronis-platform/shadcn-uikit`'s `sheet`\n// (packages/ui-legacy/src/components/ui/sheet.tsx). A modal side panel — the\n// same Base UI Dialog primitive the `Dialog` component uses (keyboard, focus\n// trap, scroll lock, ARIA come from Base UI), but anchored to a screen edge with\n// a slide transition. In the Vue kit this was `Details`; it's re-exported under\n// `Details*` aliases for a 1:1 drop-in. No `--ui-sheet-*` token tier exists yet,\n// so this design-pending v1 mirrors the Dialog family's semantic theming:\n// • overlay -> var(--ui-background-overlay-primary)\n// • panel -> bg-muted = --ui-background-surface-secondary\n// • header / footer -> bg-background = --ui-background-surface-primary bars,\n// divided by border-border\n// • title -> text-foreground / description -> text-muted-foreground\n// • close -> text-muted-foreground → hover text-foreground, focus ring\n// var(--ui-focus-primary)\n// Enter/exit slide animations use `tw-animate-css` (imported in styles/index.css),\n// keyed to Base UI's data-[open] / data-[closed] state attributes. Reconcile\n// against the real design with `/figma-component Sheet <url> --update`\n// (Cyber-Compliance node 3442-31542) once the mockup is ready for dev.\n\nconst sheetVariants = cva(\n 'fixed z-50 flex flex-col overflow-hidden bg-muted text-foreground shadow-lg duration-300 data-[open]:animate-in data-[closed]:animate-out',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 max-h-[80vh] border-b border-border data-[open]:slide-in-from-top data-[closed]:slide-out-to-top',\n bottom:\n 'inset-x-0 bottom-0 max-h-[80vh] border-t border-border data-[open]:slide-in-from-bottom data-[closed]:slide-out-to-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r border-border data-[open]:slide-in-from-left data-[closed]:slide-out-to-left sm:max-w-md',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l border-border data-[open]:slide-in-from-right data-[closed]:slide-out-to-right sm:max-w-md',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n);\n\nconst Sheet = DialogPrimitive.Root;\n\nconst SheetTrigger = DialogPrimitive.Trigger;\n\nconst SheetPortal = DialogPrimitive.Portal;\n\nconst SheetClose = DialogPrimitive.Close;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Backdrop>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Backdrop>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-[var(--ui-background-overlay-primary)] duration-200 data-[open]:animate-in data-[open]:fade-in-0 data-[closed]:animate-out data-[closed]:fade-out-0',\n className\n )}\n {...props}\n />\n));\nSheetOverlay.displayName = 'SheetOverlay';\n\nexport interface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Popup>,\n VariantProps<typeof sheetVariants> {\n /** Screen edge the panel anchors to. Defaults to `right`. */\n side?: VariantProps<typeof sheetVariants>['side'];\n /**\n * Render the content inside a portal (default `true`). Base UI requires the\n * Popup to sit in a Portal for correct stacking; set `false` for inline usage\n * (e.g. when the caller supplies its own `SheetPortal`, or in tests).\n */\n portal?: boolean;\n /**\n * Portal container. Pass a shadow-root mount for isolated-style previews\n * (the docs demos do this via `useShadowMount`).\n */\n portalContainer?: DialogPrimitive.Portal.Props['container'];\n /** Keep the content mounted while closed (Base UI `Portal` prop). */\n keepMounted?: DialogPrimitive.Portal.Props['keepMounted'];\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Popup>,\n SheetContentProps\n>(\n (\n {\n className,\n children,\n side,\n portal = true,\n portalContainer,\n keepMounted,\n ...props\n },\n ref\n ) => {\n const ctxContainer = usePortalContainer();\n const resolvedContainer = portalContainer ?? ctxContainer;\n\n const popup = (\n <>\n <SheetOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n </DialogPrimitive.Popup>\n </>\n );\n\n return portal ? (\n <DialogPrimitive.Portal container={resolvedContainer} keepMounted={keepMounted}>\n {popup}\n </DialogPrimitive.Portal>\n ) : (\n popup\n );\n }\n);\nSheetContent.displayName = 'SheetContent';\n\nconst SheetHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 shrink-0 items-center gap-4 border-b border-border bg-background px-5 py-4',\n className\n )}\n {...props}\n />\n));\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 shrink-0 items-center justify-end gap-4 border-t border-border bg-background px-6 py-4',\n className\n )}\n {...props}\n />\n));\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetBody = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex-1 overflow-auto p-6', className)} {...props} />\n));\nSheetBody.displayName = 'SheetBody';\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n 'flex-1 text-lg font-semibold leading-7 text-foreground',\n className\n )}\n {...props}\n />\n));\nSheetTitle.displayName = 'SheetTitle';\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSheetDescription.displayName = 'SheetDescription';\n\nconst SheetCloseButton = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Close>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Close>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Close\n ref={ref}\n className={cn(\n 'rounded p-1 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ui-focus-primary)] disabled:pointer-events-none',\n className\n )}\n {...props}\n >\n <TimesIcon size={24} />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n));\nSheetCloseButton.displayName = 'SheetCloseButton';\n\nexport {\n Sheet,\n SheetTrigger,\n SheetPortal,\n SheetClose,\n SheetCloseButton,\n SheetOverlay,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetBody,\n SheetTitle,\n SheetDescription,\n sheetVariants,\n};\n"],"names":["sheetVariants","cva","Sheet","DialogPrimitive","SheetTrigger","SheetPortal","SheetClose","SheetOverlay","React","className","props","ref","jsx","cn","SheetContent","children","side","portal","portalContainer","keepMounted","ctxContainer","usePortalContainer","resolvedContainer","popup","jsxs","Fragment","SheetHeader","SheetFooter","SheetBody","SheetTitle","SheetDescription","SheetCloseButton","TimesIcon"],"mappings":"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"}