@acronis-platform/ui-react 0.54.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 (65) 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/sheet/sheet.js +38 -37
  34. package/dist/components/ui/sheet/sheet.js.map +1 -1
  35. package/dist/components/ui/sidebar-primary/sidebar-primary.js +200 -134
  36. package/dist/components/ui/sidebar-primary/sidebar-primary.js.map +1 -1
  37. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js +511 -357
  38. package/dist/components/ui/sidebar-secondary/sidebar-secondary.js.map +1 -1
  39. package/dist/components/ui/switch/switch.js +6 -6
  40. package/dist/components/ui/switch/switch.js.map +1 -1
  41. package/dist/components/ui/table/table.js +7 -7
  42. package/dist/components/ui/table/table.js.map +1 -1
  43. package/dist/components/ui/tabs/tabs.js +11 -11
  44. package/dist/components/ui/tabs/tabs.js.map +1 -1
  45. package/dist/components/ui/toast/toast.js +35 -33
  46. package/dist/components/ui/toast/toast.js.map +1 -1
  47. package/dist/components/ui/tooltip/tooltip.js +41 -37
  48. package/dist/components/ui/tooltip/tooltip.js.map +1 -1
  49. package/dist/index.js +356 -355
  50. package/dist/index.js.map +1 -1
  51. package/dist/lib/portal-container.js +14 -0
  52. package/dist/lib/portal-container.js.map +1 -0
  53. package/dist/react.js +356 -355
  54. package/dist/react.js.map +1 -1
  55. package/dist/src/components/ui/filter-search/filter-search.d.ts +6 -0
  56. package/dist/src/components/ui/filter-search/index.d.ts +2 -0
  57. package/dist/src/components/ui/resizable/index.d.ts +2 -1
  58. package/dist/src/components/ui/resizable/resizable.d.ts +2 -5
  59. package/dist/src/components/ui/sidebar-primary/sidebar-primary.d.ts +48 -3
  60. package/dist/src/components/ui/sidebar-secondary/index.d.ts +1 -1
  61. package/dist/src/components/ui/sidebar-secondary/sidebar-secondary.d.ts +38 -33
  62. package/dist/src/index.d.ts +2 -0
  63. package/dist/src/lib/portal-container.d.ts +36 -0
  64. package/dist/ui-react.css +1 -1
  65. package/package.json +1 -1
@@ -1,10 +1,11 @@
1
- import { jsx as t, jsxs as n, Fragment as u } from "react/jsx-runtime";
1
+ import { jsx as t, jsxs as s, Fragment as D } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
3
  import { Dialog as r } from "@base-ui/react/dialog";
4
- import { TimesIcon as x } from "@acronis-platform/icons-react/stroke-mono";
5
- import { cva as D } from "../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js";
4
+ import { TimesIcon as y } from "@acronis-platform/icons-react/stroke-mono";
5
+ import { cva as b } from "../../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js";
6
6
  import { cn as l } from "../../../lib/utils.js";
7
- const y = D(
7
+ import { usePortalContainer as v } from "../../../lib/portal-container.js";
8
+ const w = b(
8
9
  "fixed left-1/2 top-1/2 z-50 flex w-full -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-lg bg-muted text-foreground shadow-lg duration-200 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",
9
10
  {
10
11
  variants: {
@@ -21,7 +22,7 @@ const y = D(
21
22
  size: "sm"
22
23
  }
23
24
  }
24
- ), j = r.Root, F = r.Trigger, H = r.Portal, O = r.Close, d = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
25
+ ), V = r.Root, I = r.Trigger, $ = r.Portal, q = r.Close, d = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
25
26
  r.Backdrop,
26
27
  {
27
28
  ref: e,
@@ -33,7 +34,7 @@ const y = D(
33
34
  }
34
35
  ));
35
36
  d.displayName = "DialogOverlay";
36
- const b = i.forwardRef(
37
+ const N = i.forwardRef(
37
38
  ({
38
39
  className: o,
39
40
  children: a,
@@ -43,23 +44,23 @@ const b = i.forwardRef(
43
44
  keepMounted: f,
44
45
  ...g
45
46
  }, p) => {
46
- const s = /* @__PURE__ */ n(u, { children: [
47
+ const u = v(), x = c ?? u, n = /* @__PURE__ */ s(D, { children: [
47
48
  /* @__PURE__ */ t(d, {}),
48
49
  /* @__PURE__ */ t(
49
50
  r.Popup,
50
51
  {
51
52
  ref: p,
52
- className: l(y({ size: e }), o),
53
+ className: l(w({ size: e }), o),
53
54
  ...g,
54
55
  children: a
55
56
  }
56
57
  )
57
58
  ] });
58
- return m ? /* @__PURE__ */ t(r.Portal, { container: c, keepMounted: f, children: s }) : s;
59
+ return m ? /* @__PURE__ */ t(r.Portal, { container: x, keepMounted: f, children: n }) : n;
59
60
  }
60
61
  );
61
- b.displayName = "DialogContent";
62
- const w = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
62
+ N.displayName = "DialogContent";
63
+ const C = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
63
64
  "div",
64
65
  {
65
66
  ref: e,
@@ -70,8 +71,8 @@ const w = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
70
71
  ...a
71
72
  }
72
73
  ));
73
- w.displayName = "DialogHeader";
74
- const v = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
74
+ C.displayName = "DialogHeader";
75
+ const R = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
75
76
  "div",
76
77
  {
77
78
  ref: e,
@@ -82,10 +83,10 @@ const v = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
82
83
  ...a
83
84
  }
84
85
  ));
85
- v.displayName = "DialogFooter";
86
- const N = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t("div", { ref: e, className: l("flex-1 overflow-auto p-6", o), ...a }));
87
- N.displayName = "DialogBody";
88
- const R = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
86
+ R.displayName = "DialogFooter";
87
+ const h = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t("div", { ref: e, className: l("flex-1 overflow-auto p-6", o), ...a }));
88
+ h.displayName = "DialogBody";
89
+ const z = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
89
90
  r.Title,
90
91
  {
91
92
  ref: e,
@@ -96,8 +97,8 @@ const R = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
96
97
  ...a
97
98
  }
98
99
  ));
99
- R.displayName = "DialogTitle";
100
- const h = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
100
+ z.displayName = "DialogTitle";
101
+ const T = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
101
102
  r.Description,
102
103
  {
103
104
  ref: e,
@@ -105,8 +106,8 @@ const h = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ t(
105
106
  ...a
106
107
  }
107
108
  ));
108
- h.displayName = "DialogDescription";
109
- const C = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ n(
109
+ T.displayName = "DialogDescription";
110
+ const B = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ s(
110
111
  r.Close,
111
112
  {
112
113
  ref: e,
@@ -116,25 +117,25 @@ const C = i.forwardRef(({ className: o, ...a }, e) => /* @__PURE__ */ n(
116
117
  ),
117
118
  ...a,
118
119
  children: [
119
- /* @__PURE__ */ t(x, { size: 24 }),
120
+ /* @__PURE__ */ t(y, { size: 24 }),
120
121
  /* @__PURE__ */ t("span", { className: "sr-only", children: "Close" })
121
122
  ]
122
123
  }
123
124
  ));
124
- C.displayName = "DialogCloseButton";
125
+ B.displayName = "DialogCloseButton";
125
126
  export {
126
- j as Dialog,
127
- N as DialogBody,
128
- O as DialogClose,
129
- C as DialogCloseButton,
130
- b as DialogContent,
131
- h as DialogDescription,
132
- v as DialogFooter,
133
- w as DialogHeader,
127
+ V as Dialog,
128
+ h as DialogBody,
129
+ q as DialogClose,
130
+ B as DialogCloseButton,
131
+ N as DialogContent,
132
+ T as DialogDescription,
133
+ R as DialogFooter,
134
+ C as DialogHeader,
134
135
  d as DialogOverlay,
135
- H as DialogPortal,
136
- R as DialogTitle,
137
- F as DialogTrigger,
138
- y as dialogContentVariants
136
+ $ as DialogPortal,
137
+ z as DialogTitle,
138
+ I as DialogTrigger,
139
+ w as dialogContentVariants
139
140
  };
140
141
  //# sourceMappingURL=dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sources":["../../../../src/components/ui/dialog/dialog.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 `dialog`\n// (packages/ui-legacy/src/components/ui/dialog.tsx). A modal overlay built on\n// the Base UI Dialog primitive (keyboard, focus trap, scroll lock, ARIA come\n// from Base UI). No `--ui-dialog-*` token tier exists yet, so this design-\n// pending v1 themes from the shared semantic tokens via bridged Tailwind names:\n// • overlay -> var(--ui-background-overlay-primary) (legacy `bg-black/80`)\n// • popup -> bg-muted = --ui-background-surface-secondary\n// • header / footer -> bg-background = --ui-background-surface-primary (white\n// bars over the muted body), divided by border-border\n// • title -> text-foreground / description -> text-muted-foreground\n// • close -> text-muted-foreground → hover text-foreground (replaces the\n// legacy opacity hack), focus ring var(--ui-focus-primary)\n// Enter/exit animations use `tw-animate-css` (imported in styles/index.css),\n// keyed to Base UI's data-[open] / data-[closed] state attributes — overlay\n// fades, popup fades + zooms. The `size` scale (max-width) mirrors the reference\n// design's six widths; until a `--ui-dialog-*` tier defines them, they are plain\n// max-width utilities. Reconcile against the real design with\n// `/figma-component Dialog <url> --update` once a mockup lands.\n\n// Popup width scale. `sm` (512px) is the default and matches the pre-size width.\nconst dialogContentVariants = cva(\n 'fixed left-1/2 top-1/2 z-50 flex w-full -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-lg bg-muted text-foreground shadow-lg duration-200 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',\n {\n variants: {\n size: {\n xs: 'max-w-[464px]',\n sm: 'max-w-lg',\n md: 'max-w-2xl',\n lg: 'max-w-[832px]',\n xl: 'max-w-[992px]',\n '2xl': 'max-w-[1136px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n }\n);\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = 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));\nDialogOverlay.displayName = 'DialogOverlay';\n\nexport interface DialogContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Popup>,\n VariantProps<typeof dialogContentVariants> {\n /**\n * Popup max-width. `sm` 512 · `xs` 464 · `md` 672 · `lg` 832 · `xl` 992 ·\n * `2xl` 1136 (px). Defaults to `sm`.\n */\n size?: VariantProps<typeof dialogContentVariants>['size'];\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 `DialogPortal`, 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 DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Popup>,\n DialogContentProps\n>(\n (\n {\n className,\n children,\n size,\n portal = true,\n portalContainer,\n keepMounted,\n ...props\n },\n ref\n ) => {\n const popup = (\n <>\n <DialogOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(dialogContentVariants({ size }), 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);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 items-center gap-4 border-b border-border bg-background px-5 py-4',\n className\n )}\n {...props}\n />\n));\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 items-center justify-end gap-4 border-t border-border bg-background px-6 py-4',\n className\n )}\n {...props}\n />\n));\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogBody = 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));\nDialogBody.displayName = 'DialogBody';\n\nconst DialogTitle = 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-2xl font-normal leading-8 text-foreground',\n className\n )}\n {...props}\n />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = 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));\nDialogDescription.displayName = 'DialogDescription';\n\nconst DialogCloseButton = 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));\nDialogCloseButton.displayName = 'DialogCloseButton';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogCloseButton,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogBody,\n DialogDescription,\n dialogContentVariants,\n};\n"],"names":["dialogContentVariants","cva","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","className","props","ref","jsx","cn","DialogContent","children","size","portal","portalContainer","keepMounted","popup","jsxs","Fragment","DialogHeader","DialogFooter","DialogBody","DialogTitle","DialogDescription","DialogCloseButton","TimesIcon"],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sources":["../../../../src/components/ui/dialog/dialog.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 `dialog`\n// (packages/ui-legacy/src/components/ui/dialog.tsx). A modal overlay built on\n// the Base UI Dialog primitive (keyboard, focus trap, scroll lock, ARIA come\n// from Base UI). No `--ui-dialog-*` token tier exists yet, so this design-\n// pending v1 themes from the shared semantic tokens via bridged Tailwind names:\n// • overlay -> var(--ui-background-overlay-primary) (legacy `bg-black/80`)\n// • popup -> bg-muted = --ui-background-surface-secondary\n// • header / footer -> bg-background = --ui-background-surface-primary (white\n// bars over the muted body), divided by border-border\n// • title -> text-foreground / description -> text-muted-foreground\n// • close -> text-muted-foreground → hover text-foreground (replaces the\n// legacy opacity hack), focus ring var(--ui-focus-primary)\n// Enter/exit animations use `tw-animate-css` (imported in styles/index.css),\n// keyed to Base UI's data-[open] / data-[closed] state attributes — overlay\n// fades, popup fades + zooms. The `size` scale (max-width) mirrors the reference\n// design's six widths; until a `--ui-dialog-*` tier defines them, they are plain\n// max-width utilities. Reconcile against the real design with\n// `/figma-component Dialog <url> --update` once a mockup lands.\n\n// Popup width scale. `sm` (512px) is the default and matches the pre-size width.\nconst dialogContentVariants = cva(\n 'fixed left-1/2 top-1/2 z-50 flex w-full -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-lg bg-muted text-foreground shadow-lg duration-200 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',\n {\n variants: {\n size: {\n xs: 'max-w-[464px]',\n sm: 'max-w-lg',\n md: 'max-w-2xl',\n lg: 'max-w-[832px]',\n xl: 'max-w-[992px]',\n '2xl': 'max-w-[1136px]',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n }\n);\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = 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));\nDialogOverlay.displayName = 'DialogOverlay';\n\nexport interface DialogContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Popup>,\n VariantProps<typeof dialogContentVariants> {\n /**\n * Popup max-width. `sm` 512 · `xs` 464 · `md` 672 · `lg` 832 · `xl` 992 ·\n * `2xl` 1136 (px). Defaults to `sm`.\n */\n size?: VariantProps<typeof dialogContentVariants>['size'];\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 `DialogPortal`, 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 DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Popup>,\n DialogContentProps\n>(\n (\n {\n className,\n children,\n size,\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 <DialogOverlay />\n <DialogPrimitive.Popup\n ref={ref}\n className={cn(dialogContentVariants({ size }), 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);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 items-center gap-4 border-b border-border bg-background px-5 py-4',\n className\n )}\n {...props}\n />\n));\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-16 items-center justify-end gap-4 border-t border-border bg-background px-6 py-4',\n className\n )}\n {...props}\n />\n));\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogBody = 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));\nDialogBody.displayName = 'DialogBody';\n\nconst DialogTitle = 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-2xl font-normal leading-8 text-foreground',\n className\n )}\n {...props}\n />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = 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));\nDialogDescription.displayName = 'DialogDescription';\n\nconst DialogCloseButton = 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));\nDialogCloseButton.displayName = 'DialogCloseButton';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogCloseButton,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogBody,\n DialogDescription,\n dialogContentVariants,\n};\n"],"names":["dialogContentVariants","cva","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","className","props","ref","jsx","cn","DialogContent","children","size","portal","portalContainer","keepMounted","ctxContainer","usePortalContainer","resolvedContainer","popup","jsxs","Fragment","DialogHeader","DialogFooter","DialogBody","DialogTitle","DialogDescription","DialogCloseButton","TimesIcon"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { jsxs as l, jsx as t } from "react/jsx-runtime";
2
- import * as s from "react";
2
+ import * as d from "react";
3
3
  import { Menu as n } from "@base-ui/react/menu";
4
- import { CheckIcon as b, ChevronRightIcon as h } from "@acronis-platform/icons-react/stroke-mono";
5
- import { cn as d } from "../../../lib/utils.js";
6
- const T = n.Root, j = n.Trigger, G = n.Group, _ = n.Portal, L = n.SubmenuRoot, q = n.RadioGroup, p = "z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-border bg-background py-1 text-foreground shadow-md outline-none 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 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", m = "relative flex cursor-default select-none items-center gap-2 px-4 py-2 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", N = s.forwardRef(
4
+ import { CheckIcon as N, ChevronRightIcon as x } from "@acronis-platform/icons-react/stroke-mono";
5
+ import { cn as s } from "../../../lib/utils.js";
6
+ import { usePortalContainer as M } from "../../../lib/portal-container.js";
7
+ const L = n.Root, q = n.Trigger, A = n.Group, B = n.Portal, E = n.SubmenuRoot, F = n.RadioGroup, p = "z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-border bg-background py-1 text-foreground shadow-md outline-none 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 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", m = "relative flex cursor-default select-none items-center gap-2 px-4 py-2 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", D = d.forwardRef(
7
8
  ({
8
9
  className: e,
9
10
  side: o,
@@ -14,7 +15,7 @@ const T = n.Root, j = n.Trigger, G = n.Group, _ = n.Portal, L = n.SubmenuRoot, q
14
15
  keepMounted: f,
15
16
  ...g
16
17
  }, w) => {
17
- const c = /* @__PURE__ */ t(
18
+ const b = M(), h = u ?? b, c = /* @__PURE__ */ t(
18
19
  n.Positioner,
19
20
  {
20
21
  side: o,
@@ -25,135 +26,135 @@ const T = n.Root, j = n.Trigger, G = n.Group, _ = n.Portal, L = n.SubmenuRoot, q
25
26
  n.Popup,
26
27
  {
27
28
  ref: w,
28
- className: d(p, e),
29
+ className: s(p, e),
29
30
  ...g
30
31
  }
31
32
  )
32
33
  }
33
34
  );
34
- return i ? /* @__PURE__ */ t(n.Portal, { container: u, keepMounted: f, children: c }) : c;
35
+ return i ? /* @__PURE__ */ t(n.Portal, { container: h, keepMounted: f, children: c }) : c;
35
36
  }
36
37
  );
37
- N.displayName = "DropdownMenuContent";
38
- const M = s.forwardRef(({ className: e, sideOffset: o = 4, ...a }, r) => /* @__PURE__ */ t(n.Positioner, { sideOffset: o, className: "z-50", children: /* @__PURE__ */ t(
38
+ D.displayName = "DropdownMenuContent";
39
+ const y = d.forwardRef(({ className: e, sideOffset: o = 4, ...a }, r) => /* @__PURE__ */ t(n.Positioner, { sideOffset: o, className: "z-50", children: /* @__PURE__ */ t(
39
40
  n.Popup,
40
41
  {
41
42
  ref: r,
42
- className: d(p, e),
43
+ className: s(p, e),
43
44
  ...a
44
45
  }
45
46
  ) }));
46
- M.displayName = "DropdownMenuSubContent";
47
- const x = s.forwardRef(({ className: e, inset: o, ...a }, r) => /* @__PURE__ */ t(
47
+ y.displayName = "DropdownMenuSubContent";
48
+ const R = d.forwardRef(({ className: e, inset: o, ...a }, r) => /* @__PURE__ */ t(
48
49
  n.Item,
49
50
  {
50
51
  ref: r,
51
- className: d(m, o && "pl-8", e),
52
+ className: s(m, o && "ps-8", e),
52
53
  ...a
53
54
  }
54
55
  ));
55
- x.displayName = "DropdownMenuItem";
56
- const D = s.forwardRef(({ className: e, inset: o, children: a, ...r }, i) => /* @__PURE__ */ l(
56
+ R.displayName = "DropdownMenuItem";
57
+ const v = d.forwardRef(({ className: e, inset: o, children: a, ...r }, i) => /* @__PURE__ */ l(
57
58
  n.SubmenuTrigger,
58
59
  {
59
60
  ref: i,
60
- className: d(
61
+ className: s(
61
62
  m,
62
63
  "data-[popup-open]:bg-accent",
63
- o && "pl-8",
64
+ o && "ps-8",
64
65
  e
65
66
  ),
66
67
  ...r,
67
68
  children: [
68
69
  a,
69
- /* @__PURE__ */ t(h, { className: "ml-auto" })
70
+ /* @__PURE__ */ t(x, { className: "ms-auto rtl:rotate-180" })
70
71
  ]
71
72
  }
72
73
  ));
73
- D.displayName = "DropdownMenuSubTrigger";
74
- const y = s.forwardRef(({ className: e, children: o, ...a }, r) => /* @__PURE__ */ l(
74
+ v.displayName = "DropdownMenuSubTrigger";
75
+ const C = d.forwardRef(({ className: e, children: o, ...a }, r) => /* @__PURE__ */ l(
75
76
  n.CheckboxItem,
76
77
  {
77
78
  ref: r,
78
- className: d(
79
- "relative flex cursor-default select-none items-center py-2 pl-8 pr-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
79
+ className: s(
80
+ "relative flex cursor-default select-none items-center py-2 ps-8 pe-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
80
81
  e
81
82
  ),
82
83
  ...a,
83
84
  children: [
84
- /* @__PURE__ */ t("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ t(n.CheckboxItemIndicator, { children: /* @__PURE__ */ t(b, { className: "size-4" }) }) }),
85
+ /* @__PURE__ */ t("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ t(n.CheckboxItemIndicator, { children: /* @__PURE__ */ t(N, { className: "size-4" }) }) }),
85
86
  o
86
87
  ]
87
88
  }
88
89
  ));
89
- y.displayName = "DropdownMenuCheckboxItem";
90
- const R = s.forwardRef(({ className: e, children: o, ...a }, r) => /* @__PURE__ */ l(
90
+ C.displayName = "DropdownMenuCheckboxItem";
91
+ const I = d.forwardRef(({ className: e, children: o, ...a }, r) => /* @__PURE__ */ l(
91
92
  n.RadioItem,
92
93
  {
93
94
  ref: r,
94
- className: d(
95
- "relative flex cursor-default select-none items-center py-2 pl-8 pr-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
95
+ className: s(
96
+ "relative flex cursor-default select-none items-center py-2 ps-8 pe-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
96
97
  e
97
98
  ),
98
99
  ...a,
99
100
  children: [
100
- /* @__PURE__ */ t("span", { className: "absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ t(n.RadioItemIndicator, { children: /* @__PURE__ */ t("span", { className: "size-2 rounded-full bg-current" }) }) }),
101
+ /* @__PURE__ */ t("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ t(n.RadioItemIndicator, { children: /* @__PURE__ */ t("span", { className: "size-2 rounded-full bg-current" }) }) }),
101
102
  o
102
103
  ]
103
104
  }
104
105
  ));
105
- R.displayName = "DropdownMenuRadioItem";
106
- const v = s.forwardRef(({ className: e, inset: o, ...a }, r) => /* @__PURE__ */ t(
106
+ I.displayName = "DropdownMenuRadioItem";
107
+ const S = d.forwardRef(({ className: e, inset: o, ...a }, r) => /* @__PURE__ */ t(
107
108
  "div",
108
109
  {
109
110
  ref: r,
110
- className: d(
111
+ className: s(
111
112
  "px-4 py-2 text-sm font-semibold leading-6",
112
- o && "pl-8",
113
+ o && "ps-8",
113
114
  e
114
115
  ),
115
116
  ...a
116
117
  }
117
118
  ));
118
- v.displayName = "DropdownMenuLabel";
119
- const I = s.forwardRef(({ className: e, ...o }, a) => /* @__PURE__ */ t(
119
+ S.displayName = "DropdownMenuLabel";
120
+ const z = d.forwardRef(({ className: e, ...o }, a) => /* @__PURE__ */ t(
120
121
  "div",
121
122
  {
122
123
  ref: a,
123
124
  role: "separator",
124
- className: d("my-1 h-px bg-border", e),
125
+ className: s("my-1 h-px bg-border", e),
125
126
  ...o
126
127
  }
127
128
  ));
128
- I.displayName = "DropdownMenuSeparator";
129
- function C({
129
+ z.displayName = "DropdownMenuSeparator";
130
+ function k({
130
131
  className: e,
131
132
  ...o
132
133
  }) {
133
134
  return /* @__PURE__ */ t(
134
135
  "span",
135
136
  {
136
- className: d("ml-auto text-xs tracking-widest text-muted-foreground", e),
137
+ className: s("ms-auto text-xs tracking-widest text-muted-foreground", e),
137
138
  ...o
138
139
  }
139
140
  );
140
141
  }
141
- C.displayName = "DropdownMenuShortcut";
142
+ k.displayName = "DropdownMenuShortcut";
142
143
  export {
143
- T as DropdownMenu,
144
- y as DropdownMenuCheckboxItem,
145
- N as DropdownMenuContent,
146
- G as DropdownMenuGroup,
147
- x as DropdownMenuItem,
148
- v as DropdownMenuLabel,
149
- _ as DropdownMenuPortal,
150
- q as DropdownMenuRadioGroup,
151
- R as DropdownMenuRadioItem,
152
- I as DropdownMenuSeparator,
153
- C as DropdownMenuShortcut,
154
- L as DropdownMenuSub,
155
- M as DropdownMenuSubContent,
156
- D as DropdownMenuSubTrigger,
157
- j as DropdownMenuTrigger
144
+ L as DropdownMenu,
145
+ C as DropdownMenuCheckboxItem,
146
+ D as DropdownMenuContent,
147
+ A as DropdownMenuGroup,
148
+ R as DropdownMenuItem,
149
+ S as DropdownMenuLabel,
150
+ B as DropdownMenuPortal,
151
+ F as DropdownMenuRadioGroup,
152
+ I as DropdownMenuRadioItem,
153
+ z as DropdownMenuSeparator,
154
+ k as DropdownMenuShortcut,
155
+ E as DropdownMenuSub,
156
+ y as DropdownMenuSubContent,
157
+ v as DropdownMenuSubTrigger,
158
+ q as DropdownMenuTrigger
158
159
  };
159
160
  //# sourceMappingURL=dropdown-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","sources":["../../../../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { CheckIcon, ChevronRightIcon } from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\n\n// Ported from `@acronis-platform/shadcn-uikit`'s `dropdown-menu`\n// (packages/ui-legacy/src/components/ui/dropdown-menu.tsx). A menu of actions\n// anchored to a trigger, built on the Base UI Menu primitive (positioning, focus\n// management, typeahead, outside-press / Esc dismissal, ARIA). No `--ui-menu-*`\n// token tier exists yet, so this design-pending v1 themes from the shared\n// semantic tokens:\n// • popup surface -> bg-background / text-foreground / border-border, shadow-md\n// (legacy `bg-popover` / `text-popover-foreground` have no ui-react bridge)\n// • item highlight -> bg-accent on data-[highlighted] (Base UI sets it on both\n// pointer hover and keyboard nav; replaces legacy hover:bg-primary/10)\n// • separator -> bg-border · shortcut -> text-muted-foreground (no opacity hack)\n// Enter/exit animations use `tw-animate-css` keyed to data-[open]/[closed]/[side].\n// Reconcile with `/figma-component DropdownMenu <url> --update` once a mockup lands.\n\nconst DropdownMenu = MenuPrimitive.Root;\nconst DropdownMenuTrigger = MenuPrimitive.Trigger;\nconst DropdownMenuGroup = MenuPrimitive.Group;\nconst DropdownMenuPortal = MenuPrimitive.Portal;\nconst DropdownMenuSub = MenuPrimitive.SubmenuRoot;\nconst DropdownMenuRadioGroup = MenuPrimitive.RadioGroup;\n\nconst popupClassName =\n 'z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-border bg-background py-1 text-foreground shadow-md outline-none 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 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\nconst itemClassName =\n 'relative flex cursor-default select-none items-center gap-2 px-4 py-2 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0';\n\nexport interface DropdownMenuContentProps\n extends React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup> {\n side?: MenuPrimitive.Positioner.Props['side'];\n align?: MenuPrimitive.Positioner.Props['align'];\n sideOffset?: number;\n /** Render inside a portal (default `true`). */\n portal?: boolean;\n /** Portal container — pass a shadow-root mount for isolated-style previews. */\n portalContainer?: MenuPrimitive.Portal.Props['container'];\n keepMounted?: MenuPrimitive.Portal.Props['keepMounted'];\n}\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Popup>,\n DropdownMenuContentProps\n>(\n (\n {\n className,\n side,\n align,\n sideOffset = 4,\n portal = true,\n portalContainer,\n keepMounted,\n ...props\n },\n ref\n ) => {\n const positioner = (\n <MenuPrimitive.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n className=\"z-50\"\n >\n <MenuPrimitive.Popup\n ref={ref}\n className={cn(popupClassName, className)}\n {...props}\n />\n </MenuPrimitive.Positioner>\n );\n return portal ? (\n <MenuPrimitive.Portal container={portalContainer} keepMounted={keepMounted}>\n {positioner}\n </MenuPrimitive.Portal>\n ) : (\n positioner\n );\n }\n);\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Popup>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup> & {\n sideOffset?: number;\n }\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <MenuPrimitive.Positioner sideOffset={sideOffset} className=\"z-50\">\n <MenuPrimitive.Popup\n ref={ref}\n className={cn(popupClassName, className)}\n {...props}\n />\n </MenuPrimitive.Positioner>\n));\nDropdownMenuSubContent.displayName = 'DropdownMenuSubContent';\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenuPrimitive.Item\n ref={ref}\n className={cn(itemClassName, inset && 'pl-8', className)}\n {...props}\n />\n));\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.SubmenuTrigger>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubmenuTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <MenuPrimitive.SubmenuTrigger\n ref={ref}\n className={cn(\n itemClassName,\n 'data-[popup-open]:bg-accent',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n));\nDropdownMenuSubTrigger.displayName = 'DropdownMenuSubTrigger';\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <MenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center py-2 pl-8 pr-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = 'DropdownMenuCheckboxItem';\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center py-2 pl-8 pr-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <MenuPrimitive.RadioItemIndicator>\n <span className=\"size-2 rounded-full bg-current\" />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = 'DropdownMenuRadioItem';\n\nconst DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'px-4 py-2 text-sm font-semibold leading-6',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\n\nconst DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n role=\"separator\"\n className={cn('my-1 h-px bg-border', className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n );\n}\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n"],"names":["DropdownMenu","MenuPrimitive","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","popupClassName","itemClassName","DropdownMenuContent","React","className","side","align","sideOffset","portal","portalContainer","keepMounted","props","ref","positioner","jsx","cn","DropdownMenuSubContent","DropdownMenuItem","inset","DropdownMenuSubTrigger","children","jsxs","ChevronRightIcon","DropdownMenuCheckboxItem","CheckIcon","DropdownMenuRadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut"],"mappings":";;;;;AAoBA,MAAMA,IAAeC,EAAc,MAC7BC,IAAsBD,EAAc,SACpCE,IAAoBF,EAAc,OAClCG,IAAqBH,EAAc,QACnCI,IAAkBJ,EAAc,aAChCK,IAAyBL,EAAc,YAEvCM,IACJ,2cAEIC,IACJ,kRAcIC,IAAsBC,EAAM;AAAA,EAIhC,CACE;AAAA,IACE,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,QAAAC,IAAS;AAAA,IACT,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IACJ,gBAAAC;AAAA,MAACpB,EAAc;AAAA,MAAd;AAAA,QACC,MAAAW;AAAA,QACA,OAAAC;AAAA,QACA,YAAAC;AAAA,QACA,WAAU;AAAA,QAEV,UAAA,gBAAAO;AAAA,UAACpB,EAAc;AAAA,UAAd;AAAA,YACC,KAAAkB;AAAA,YACA,WAAWG,EAAGf,GAAgBI,CAAS;AAAA,YACtC,GAAGO;AAAA,UAAA;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAGJ,WAAOH,sBACJd,EAAc,QAAd,EAAqB,WAAWe,GAAiB,aAAAC,GAC/C,UAAAG,EAAA,CACH,IAEAA;AAAA,EAEJ;AACF;AACAX,EAAoB,cAAc;AAElC,MAAMc,IAAyBb,EAAM,WAKnC,CAAC,EAAE,WAAAC,GAAW,YAAAG,IAAa,GAAG,GAAGI,EAAA,GAASC,MAC1C,gBAAAE,EAACpB,EAAc,YAAd,EAAyB,YAAAa,GAAwB,WAAU,QAC1D,UAAA,gBAAAO;AAAA,EAACpB,EAAc;AAAA,EAAd;AAAA,IACC,KAAAkB;AAAA,IACA,WAAWG,EAAGf,GAAgBI,CAAS;AAAA,IACtC,GAAGO;AAAA,EAAA;AACN,GACF,CACD;AACDK,EAAuB,cAAc;AAErC,MAAMC,IAAmBd,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,OAAAc,GAAO,GAAGP,KAASC,MACjC,gBAAAE;AAAA,EAACpB,EAAc;AAAA,EAAd;AAAA,IACC,KAAAkB;AAAA,IACA,WAAWG,EAAGd,GAAeiB,KAAS,QAAQd,CAAS;AAAA,IACtD,GAAGO;AAAA,EAAA;AACN,CACD;AACDM,EAAiB,cAAc;AAE/B,MAAME,IAAyBhB,EAAM,WAKnC,CAAC,EAAE,WAAAC,GAAW,OAAAc,GAAO,UAAAE,GAAU,GAAGT,KAASC,MAC3C,gBAAAS;AAAA,EAAC3B,EAAc;AAAA,EAAd;AAAA,IACC,KAAAkB;AAAA,IACA,WAAWG;AAAA,MACTd;AAAA,MACA;AAAA,MACAiB,KAAS;AAAA,MACTd;AAAA,IAAA;AAAA,IAED,GAAGO;AAAA,IAEH,UAAA;AAAA,MAAAS;AAAA,MACD,gBAAAN,EAACQ,GAAA,EAAiB,WAAU,UAAA,CAAU;AAAA,IAAA;AAAA,EAAA;AACxC,CACD;AACDH,EAAuB,cAAc;AAErC,MAAMI,IAA2BpB,EAAM,WAGrC,CAAC,EAAE,WAAAC,GAAW,UAAAgB,GAAU,GAAGT,KAASC,MACpC,gBAAAS;AAAA,EAAC3B,EAAc;AAAA,EAAd;AAAA,IACC,KAAAkB;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAX;AAAA,IAAA;AAAA,IAED,GAAGO;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAG,EAAC,QAAA,EAAK,WAAU,6DACd,UAAA,gBAAAA,EAACpB,EAAc,uBAAd,EACC,UAAA,gBAAAoB,EAACU,GAAA,EAAU,WAAU,SAAA,CAAS,EAAA,CAChC,GACF;AAAA,MACCJ;AAAA,IAAA;AAAA,EAAA;AACH,CACD;AACDG,EAAyB,cAAc;AAEvC,MAAME,IAAwBtB,EAAM,WAGlC,CAAC,EAAE,WAAAC,GAAW,UAAAgB,GAAU,GAAGT,KAASC,MACpC,gBAAAS;AAAA,EAAC3B,EAAc;AAAA,EAAd;AAAA,IACC,KAAAkB;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAX;AAAA,IAAA;AAAA,IAED,GAAGO;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAG,EAAC,QAAA,EAAK,WAAU,6DACd,UAAA,gBAAAA,EAACpB,EAAc,oBAAd,EACC,UAAA,gBAAAoB,EAAC,QAAA,EAAK,WAAU,iCAAA,CAAiC,EAAA,CACnD,GACF;AAAA,MACCM;AAAA,IAAA;AAAA,EAAA;AACH,CACD;AACDK,EAAsB,cAAc;AAEpC,MAAMC,IAAoBvB,EAAM,WAG9B,CAAC,EAAE,WAAAC,GAAW,OAAAc,GAAO,GAAGP,KAASC,MACjC,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAG,KAAS;AAAA,MACTd;AAAA,IAAA;AAAA,IAED,GAAGO;AAAA,EAAA;AACN,CACD;AACDe,EAAkB,cAAc;AAEhC,MAAMC,IAAwBxB,EAAM,WAGlC,CAAC,EAAE,WAAAC,GAAW,GAAGO,EAAA,GAASC,MAC1B,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAF;AAAA,IACA,MAAK;AAAA,IACL,WAAWG,EAAG,uBAAuBX,CAAS;AAAA,IAC7C,GAAGO;AAAA,EAAA;AACN,CACD;AACDgB,EAAsB,cAAc;AAEpC,SAASC,EAAqB;AAAA,EAC5B,WAAAxB;AAAA,EACA,GAAGO;AACL,GAA0C;AACxC,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,yDAAyDX,CAAS;AAAA,MAC/E,GAAGO;AAAA,IAAA;AAAA,EAAA;AAGV;AACAiB,EAAqB,cAAc;"}
1
+ {"version":3,"file":"dropdown-menu.js","sources":["../../../../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Menu as MenuPrimitive } from '@base-ui/react/menu';\nimport { CheckIcon, ChevronRightIcon } from '@acronis-platform/icons-react/stroke-mono';\n\nimport { cn } from '@/lib/utils';\nimport { usePortalContainer } from '@/lib/portal-container';\n\n// Ported from `@acronis-platform/shadcn-uikit`'s `dropdown-menu`\n// (packages/ui-legacy/src/components/ui/dropdown-menu.tsx). A menu of actions\n// anchored to a trigger, built on the Base UI Menu primitive (positioning, focus\n// management, typeahead, outside-press / Esc dismissal, ARIA). No `--ui-menu-*`\n// token tier exists yet, so this design-pending v1 themes from the shared\n// semantic tokens:\n// • popup surface -> bg-background / text-foreground / border-border, shadow-md\n// (legacy `bg-popover` / `text-popover-foreground` have no ui-react bridge)\n// • item highlight -> bg-accent on data-[highlighted] (Base UI sets it on both\n// pointer hover and keyboard nav; replaces legacy hover:bg-primary/10)\n// • separator -> bg-border · shortcut -> text-muted-foreground (no opacity hack)\n// Enter/exit animations use `tw-animate-css` keyed to data-[open]/[closed]/[side].\n// Reconcile with `/figma-component DropdownMenu <url> --update` once a mockup lands.\n\nconst DropdownMenu = MenuPrimitive.Root;\nconst DropdownMenuTrigger = MenuPrimitive.Trigger;\nconst DropdownMenuGroup = MenuPrimitive.Group;\nconst DropdownMenuPortal = MenuPrimitive.Portal;\nconst DropdownMenuSub = MenuPrimitive.SubmenuRoot;\nconst DropdownMenuRadioGroup = MenuPrimitive.RadioGroup;\n\nconst popupClassName =\n 'z-50 min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border border-border bg-background py-1 text-foreground shadow-md outline-none 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 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\nconst itemClassName =\n 'relative flex cursor-default select-none items-center gap-2 px-4 py-2 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0';\n\nexport interface DropdownMenuContentProps\n extends React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup> {\n side?: MenuPrimitive.Positioner.Props['side'];\n align?: MenuPrimitive.Positioner.Props['align'];\n sideOffset?: number;\n /** Render inside a portal (default `true`). */\n portal?: boolean;\n /** Portal container — pass a shadow-root mount for isolated-style previews. */\n portalContainer?: MenuPrimitive.Portal.Props['container'];\n keepMounted?: MenuPrimitive.Portal.Props['keepMounted'];\n}\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Popup>,\n DropdownMenuContentProps\n>(\n (\n {\n className,\n side,\n align,\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 <MenuPrimitive.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n className=\"z-50\"\n >\n <MenuPrimitive.Popup\n ref={ref}\n className={cn(popupClassName, className)}\n {...props}\n />\n </MenuPrimitive.Positioner>\n );\n return portal ? (\n <MenuPrimitive.Portal container={resolvedContainer} keepMounted={keepMounted}>\n {positioner}\n </MenuPrimitive.Portal>\n ) : (\n positioner\n );\n }\n);\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Popup>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup> & {\n sideOffset?: number;\n }\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <MenuPrimitive.Positioner sideOffset={sideOffset} className=\"z-50\">\n <MenuPrimitive.Popup\n ref={ref}\n className={cn(popupClassName, className)}\n {...props}\n />\n </MenuPrimitive.Positioner>\n));\nDropdownMenuSubContent.displayName = 'DropdownMenuSubContent';\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenuPrimitive.Item\n ref={ref}\n className={cn(itemClassName, inset && 'ps-8', className)}\n {...props}\n />\n));\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.SubmenuTrigger>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.SubmenuTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <MenuPrimitive.SubmenuTrigger\n ref={ref}\n className={cn(\n itemClassName,\n 'data-[popup-open]:bg-accent',\n inset && 'ps-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ms-auto rtl:rotate-180\" />\n </MenuPrimitive.SubmenuTrigger>\n));\nDropdownMenuSubTrigger.displayName = 'DropdownMenuSubTrigger';\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>\n>(({ className, children, ...props }, ref) => (\n <MenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center py-2 ps-8 pe-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex size-3.5 items-center justify-center\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = 'DropdownMenuCheckboxItem';\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof MenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'relative flex cursor-default select-none items-center py-2 ps-8 pe-4 text-sm leading-6 outline-none transition-colors data-[highlighted]:bg-accent data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex size-3.5 items-center justify-center\">\n <MenuPrimitive.RadioItemIndicator>\n <span className=\"size-2 rounded-full bg-current\" />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = 'DropdownMenuRadioItem';\n\nconst DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'px-4 py-2 text-sm font-semibold leading-6',\n inset && 'ps-8',\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\n\nconst DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n role=\"separator\"\n className={cn('my-1 h-px bg-border', className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n className={cn('ms-auto text-xs tracking-widest text-muted-foreground', className)}\n {...props}\n />\n );\n}\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n"],"names":["DropdownMenu","MenuPrimitive","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","popupClassName","itemClassName","DropdownMenuContent","React","className","side","align","sideOffset","portal","portalContainer","keepMounted","props","ref","ctxContainer","usePortalContainer","resolvedContainer","positioner","jsx","cn","DropdownMenuSubContent","DropdownMenuItem","inset","DropdownMenuSubTrigger","children","jsxs","ChevronRightIcon","DropdownMenuCheckboxItem","CheckIcon","DropdownMenuRadioItem","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import * as i from "react";
3
+ import { cn as s } from "../../../lib/utils.js";
4
+ const c = i.forwardRef(
5
+ ({ className: e, ...r }, a) => /* @__PURE__ */ t(
6
+ "div",
7
+ {
8
+ ref: a,
9
+ className: s("flex items-center gap-4 px-4 py-6", e),
10
+ ...r
11
+ }
12
+ )
13
+ );
14
+ c.displayName = "FilterSearch";
15
+ const m = i.forwardRef(({ className: e, ...r }, a) => /* @__PURE__ */ t(
16
+ "div",
17
+ {
18
+ ref: a,
19
+ className: s("flex h-8 min-w-px flex-1 items-center justify-end gap-4", e),
20
+ ...r
21
+ }
22
+ ));
23
+ m.displayName = "FilterSearchActions";
24
+ export {
25
+ c as FilterSearch,
26
+ m as FilterSearchActions
27
+ };
28
+ //# sourceMappingURL=filter-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-search.js","sources":["../../../../src/components/ui/filter-search/filter-search.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n// A composable toolbar for data tables: arranges a search field, optional\n// filters button, optional tenant/scope switcher, and trailing action buttons\n// in a single horizontal row. Maps to the Figma \"FilterSearch\" component. The\n// root container uses 16px inter-item gap (Figma `gap/gap-16`) and centers\n// children vertically. `FilterSearchActions` is a right-aligned flex area that\n// pushes its content to the trailing edge.\n//\n// No dedicated token tier — spacing is the Figma `gap/gap-16` semantic token\n// (16px), and each child (Search, ButtonMenu, Select) brings its own\n// `--ui-*` tier.\n\nexport type FilterSearchProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst FilterSearch = React.forwardRef<HTMLDivElement, FilterSearchProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-4 px-4 py-6', className)}\n {...props}\n />\n )\n);\nFilterSearch.displayName = 'FilterSearch';\n\nexport type FilterSearchActionsProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst FilterSearchActions = React.forwardRef<\n HTMLDivElement,\n FilterSearchActionsProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex h-8 min-w-px flex-1 items-center justify-end gap-4', className)}\n {...props}\n />\n));\nFilterSearchActions.displayName = 'FilterSearchActions';\n\nexport { FilterSearch, FilterSearchActions };\n"],"names":["FilterSearch","React","className","props","ref","jsx","cn","FilterSearchActions"],"mappings":";;;AAiBA,MAAMA,IAAeC,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE,EAAG,qCAAqCJ,CAAS;AAAA,MAC3D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AACAH,EAAa,cAAc;AAI3B,MAAMO,IAAsBN,EAAM,WAGhC,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAG,2DAA2DJ,CAAS;AAAA,IACjF,GAAGC;AAAA,EAAA;AACN,CACD;AACDI,EAAoB,cAAc;"}
@@ -1,4 +1,4 @@
1
- import { jsxs as e, jsx as r } from "react/jsx-runtime";
1
+ import { jsxs as i, jsx as r } from "react/jsx-runtime";
2
2
  import * as m from "react";
3
3
  import { CalendarIcon as C } from "@acronis-platform/icons-react/stroke-mono";
4
4
  import { cn as p } from "../../../lib/utils.js";
@@ -6,7 +6,7 @@ const E = m.forwardRef(
6
6
  ({
7
7
  className: k,
8
8
  id: h,
9
- label: i,
9
+ label: e,
10
10
  required: s,
11
11
  description: f,
12
12
  error: a,
@@ -22,8 +22,8 @@ const E = m.forwardRef(
22
22
  ...R
23
23
  }, j) => {
24
24
  const P = m.useId(), n = h ?? P, v = `${n}-message`, c = a != null && a !== "", q = c || y, u = c ? a : f, g = u != null && u !== "", x = N === "dateRange", z = x ? l != null && l !== "" || t != null && t !== "" : o != null && o !== "";
25
- return /* @__PURE__ */ e("div", { className: "flex w-full min-w-[var(--ui-input-date-picker-global-container-width-min)] flex-col gap-[var(--ui-input-date-picker-global-container-gap)]", children: [
26
- i != null && i !== "" && /* @__PURE__ */ e(
25
+ return /* @__PURE__ */ i("div", { className: "flex w-full min-w-[var(--ui-input-date-picker-global-container-width-min)] flex-col gap-[var(--ui-input-date-picker-global-container-gap)]", children: [
26
+ e != null && e !== "" && /* @__PURE__ */ i(
27
27
  "label",
28
28
  {
29
29
  htmlFor: n,
@@ -32,7 +32,7 @@ const E = m.forwardRef(
32
32
  d ? "text-[var(--ui-input-date-picker-global-label-color-disabled)]" : "text-[var(--ui-input-date-picker-global-label-color-idle)]"
33
33
  ),
34
34
  children: [
35
- i,
35
+ e,
36
36
  s && /* @__PURE__ */ r(
37
37
  "span",
38
38
  {
@@ -44,7 +44,7 @@ const E = m.forwardRef(
44
44
  ]
45
45
  }
46
46
  ),
47
- /* @__PURE__ */ e(
47
+ /* @__PURE__ */ i(
48
48
  "button",
49
49
  {
50
50
  ref: j,
@@ -58,7 +58,7 @@ const E = m.forwardRef(
58
58
  "aria-describedby": g ? v : void 0,
59
59
  "data-open": b || void 0,
60
60
  className: p(
61
- "group flex h-[var(--ui-input-date-picker-global-box-height)] w-full min-w-0 items-center gap-[var(--ui-input-date-picker-global-box-gap)] rounded-[var(--ui-input-date-picker-global-box-border-radius)] border bg-[var(--ui-input-date-picker-global-box-color-idle)] border-[var(--ui-input-date-picker-normal-box-border-color-idle)] px-[var(--ui-input-date-picker-global-box-padding-x)] text-left text-sm leading-6 text-[var(--ui-input-date-picker-global-value-color-idle)] outline-none transition-colors",
61
+ "group flex h-[var(--ui-input-date-picker-global-box-height)] w-full min-w-0 items-center gap-[var(--ui-input-date-picker-global-box-gap)] rounded-[var(--ui-input-date-picker-global-box-border-radius)] border bg-[var(--ui-input-date-picker-global-box-color-idle)] border-[var(--ui-input-date-picker-normal-box-border-color-idle)] px-[var(--ui-input-date-picker-global-box-padding-x)] text-start text-sm leading-6 text-[var(--ui-input-date-picker-global-value-color-idle)] outline-none transition-colors",
62
62
  "enabled:not-aria-[invalid=true]:hover:bg-[var(--ui-input-date-picker-global-box-color-hover)] enabled:not-aria-[invalid=true]:hover:border-[var(--ui-input-date-picker-normal-box-border-color-hover)]",
63
63
  "not-aria-[invalid=true]:data-[open]:border-[var(--ui-input-date-picker-normal-box-border-color-active)]",
64
64
  "not-aria-[invalid=true]:focus-visible:border-[var(--ui-input-date-picker-normal-box-border-color-active)] not-aria-[invalid=true]:focus-visible:ring-[3px] not-aria-[invalid=true]:focus-visible:ring-[var(--ui-focus-primary)]",
@@ -68,7 +68,7 @@ const E = m.forwardRef(
68
68
  ),
69
69
  ...R,
70
70
  children: [
71
- z ? x ? /* @__PURE__ */ e("span", { className: "flex min-w-0 flex-1 items-center gap-[var(--ui-input-date-picker-global-box-gap-range)] truncate", children: [
71
+ z ? x ? /* @__PURE__ */ i("span", { className: "flex min-w-0 flex-1 items-center gap-[var(--ui-input-date-picker-global-box-gap-range)] truncate", children: [
72
72
  /* @__PURE__ */ r("span", { children: l }),
73
73
  /* @__PURE__ */ r("span", { className: "text-[var(--ui-input-date-picker-global-separator-color-idle)] group-disabled:text-[var(--ui-input-date-picker-global-separator-color-disabled)]", children: I }),
74
74
  /* @__PURE__ */ r("span", { children: t })