@rebasepro/ui 0.13.0 → 0.13.1-canary.g06dbe5b

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.
@@ -225,6 +225,16 @@ export type OnVirtualTableColumnResizeParams = {
225
225
  column: VirtualTableColumn;
226
226
  };
227
227
  /**
228
+ * The filter operators this table can express.
229
+ *
230
+ * A deliberate copy of `WhereFilterOp` in `@rebasepro/types`, not an import:
231
+ * `@rebasepro/ui` has no dependency on the core types and is meant to stay
232
+ * usable on its own. The cost is that two published packages export the same
233
+ * name, so the two must be kept identical by hand —
234
+ * `packages/types/test/filter-operators-duplication.test.ts` fails if they
235
+ * diverge, because a table that cannot express an operator the query layer
236
+ * supports is a silent gap: the filter simply is not offered.
237
+ *
228
238
  * @see Table
229
239
  * @group Components
230
240
  */
@@ -241,8 +251,13 @@ export type VirtualTableSort = "asc" | "desc" | undefined;
241
251
  */
242
252
  export type VirtualTableFilterValues<Key extends string> = FilterValues<Key>;
243
253
  /**
244
- * Filter conditions in a `Query.where()` clause are specified using the
245
- * strings `<`, `<=`, `==`, `>=`, `>`, `array-contains`, `in`, and `array-contains-any`.
254
+ * Filter conditions in a `Query.where()` clause, named by {@link WhereFilterOp}.
255
+ *
256
+ * The list is not repeated here: this comment used to name eight operators when
257
+ * the type had sixteen, having been written before the SQL pattern and null
258
+ * checks (`like`, `ilike`, `not-like`, `not-ilike`, `is-null`, `is-not-null`)
259
+ * were added. A prose copy of a union drifts from it silently.
260
+ *
246
261
  * @see Table
247
262
  * @group Models
248
263
  */
@@ -5,4 +5,4 @@ export * from "./GitHubIcon";
5
5
  export * from "./HandleIcon";
6
6
  export type { LucideProps, LucideIcon } from "lucide-react";
7
7
  export { icons as lucideIcons } from "lucide-react";
8
- export { AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, BoldIcon, BookOpenIcon, CalendarIcon, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, CircleUserIcon, CodeIcon, ColumnsIcon, CopyIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GlobeIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, ImageIcon, ImageOffIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyIcon, KeyRoundIcon, LanguagesIcon, LayoutGridIcon, LinkIcon, Link2Icon, Unlink2Icon, ListIcon, LockIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, LoaderIcon, LogOutIcon, MailIcon, Maximize2Icon, MenuIcon, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, Music2Icon, PanelLeftIcon, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, QuoteIcon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, Rows3Icon, SaveIcon, SearchIcon, SendIcon, SettingsIcon, ShieldIcon, ShoppingCartIcon, SlidersHorizontalIcon, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, TableIcon, TagIcon, TerminalIcon, TextIcon, Trash2Icon, TrendingUpIcon, TypeIcon, UnderlineIcon, UndoIcon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon } from "lucide-react";
8
+ export { AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, BoldIcon, BookOpenIcon, CalendarIcon, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, CircleUserIcon, CodeIcon, ColumnsIcon, CopyIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GlobeIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, ImageIcon, ImageOffIcon, InfoIcon, ItalicIcon, KanbanIcon, KeyIcon, KeyRoundIcon, LanguagesIcon, LayoutGridIcon, LinkIcon, Link2Icon, Unlink2Icon, ListIcon, LockIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, LoaderIcon, LogOutIcon, MailIcon, Maximize2Icon, MenuIcon, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, QuoteIcon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, Rows3Icon, SaveIcon, SearchIcon, SendIcon, SettingsIcon, ShieldIcon, ShoppingCartIcon, SlidersHorizontalIcon, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, TableIcon, TagIcon, TerminalIcon, TextIcon, Trash2Icon, TrendingUpIcon, TypeIcon, UnderlineIcon, UndoIcon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon } from "lucide-react";
package/dist/index.es.js CHANGED
@@ -5,7 +5,7 @@ import * as Collapsible from "@radix-ui/react-collapsible";
5
5
  import { clsx } from "clsx";
6
6
  import { twMerge } from "tailwind-merge";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
- import { AlertCircleIcon, AlertCircleIcon as AlertCircleIcon$1, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowLeftIcon as ArrowLeftIcon$1, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpIcon as ArrowUpIcon$1, ArrowUpToLineIcon, BoldIcon, BookOpenIcon, CalendarIcon, CalendarIcon as CalendarIcon$1, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckIcon as CheckIcon$1, CheckSquareIcon, ChevronDownIcon, ChevronDownIcon as ChevronDownIcon$1, ChevronLeftIcon, ChevronLeftIcon as ChevronLeftIcon$1, ChevronRightIcon, ChevronRightIcon as ChevronRightIcon$1, ChevronUpIcon, ChevronUpIcon as ChevronUpIcon$1, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, CircleUserIcon, CodeIcon, ColumnsIcon, CopyIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FilterIcon, FilterIcon as FilterIcon$1, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GlobeIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, ImageIcon, ImageIcon as ImageIcon$1, ImageOffIcon, InfoIcon, ItalicIcon, Kanban, KanbanIcon, KeyIcon, KeyRoundIcon, LanguagesIcon, LayoutGrid, LayoutGridIcon, LayoutList, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, LoaderIcon, LockIcon, LogOutIcon, MailIcon, Maximize2Icon, MenuIcon, MessageCircleIcon, MinusCircleIcon, MinusIcon, MinusIcon as MinusIcon$1, MoonIcon, MoreVerticalIcon, Music2Icon, PanelLeftIcon, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, QuoteIcon, RefreshCcwIcon, RefreshCwIcon, RefreshCwIcon as RefreshCwIcon$1, RepeatIcon, Rows3Icon, SaveIcon, SearchIcon, SearchIcon as SearchIcon$1, SendIcon, Settings2, SettingsIcon, ShieldAlertIcon, ShieldIcon, ShoppingCartIcon, SlidersHorizontalIcon, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Table2, TableIcon, TagIcon, TerminalIcon, TextIcon, Trash2Icon, TrendingUpIcon, TypeIcon, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, XIcon as XIcon$1, icons as lucideIcons } from "lucide-react";
8
+ import { AlertCircleIcon, AlertCircleIcon as AlertCircleIcon$1, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowLeftIcon as ArrowLeftIcon$1, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpIcon as ArrowUpIcon$1, ArrowUpToLineIcon, BoldIcon, BookOpenIcon, CalendarIcon, CalendarIcon as CalendarIcon$1, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckIcon as CheckIcon$1, CheckSquareIcon, ChevronDownIcon, ChevronDownIcon as ChevronDownIcon$1, ChevronLeftIcon, ChevronLeftIcon as ChevronLeftIcon$1, ChevronRightIcon, ChevronRightIcon as ChevronRightIcon$1, ChevronUpIcon, ChevronUpIcon as ChevronUpIcon$1, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, CircleDotIcon, CircleIcon, CircleUserIcon, CodeIcon, ColumnsIcon, CopyIcon, DatabaseIcon, DollarSignIcon, DownloadIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FilterIcon, FilterIcon as FilterIcon$1, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GlobeIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, ImageIcon, ImageIcon as ImageIcon$1, ImageOffIcon, InfoIcon, ItalicIcon, Kanban, KanbanIcon, KeyIcon, KeyRoundIcon, LanguagesIcon, LayoutGrid, LayoutGridIcon, LayoutList, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, LoaderIcon, LockIcon, LogOutIcon, MailIcon, Maximize2Icon, MenuIcon, MessageCircleIcon, MinusCircleIcon, MinusIcon, MinusIcon as MinusIcon$1, MoonIcon, MoreVerticalIcon, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, QuoteIcon, RefreshCcwIcon, RefreshCwIcon, RefreshCwIcon as RefreshCwIcon$1, RepeatIcon, Rows3Icon, SaveIcon, SearchIcon, SearchIcon as SearchIcon$1, SendIcon, Settings2, SettingsIcon, ShieldAlertIcon, ShieldIcon, ShoppingCartIcon, SlidersHorizontalIcon, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Table2, TableIcon, TagIcon, TerminalIcon, TextIcon, Trash2Icon, TrendingUpIcon, TypeIcon, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, XIcon as XIcon$1, icons as lucideIcons } from "lucide-react";
9
9
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
10
10
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
11
11
  import * as DialogPrimitive from "@radix-ui/react-dialog";
@@ -3210,7 +3210,7 @@ var Checkbox = React.memo(({ id, checked, indeterminate = false, padding = true,
3210
3210
  className: "rounded-full focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50",
3211
3211
  onCheckedChange: disabled ? void 0 : onCheckedChange,
3212
3212
  children: /* @__PURE__ */ jsx("div", {
3213
- className: cls(padding ? paddingClasses[size] : "", outerSizeClasses[size], "inline-flex items-center justify-center text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150", onCheckedChange ? "rounded-full hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-700 dark:hover:bg-opacity-75 dark:hover:bg-surface-accent-700/75" : "", onCheckedChange ? "cursor-pointer" : "cursor-default"),
3213
+ className: cls(padding ? paddingClasses[size] : "", padding || onCheckedChange ? outerSizeClasses[size] : "", "inline-flex items-center justify-center text-sm font-medium focus:outline-none transition-colors ease-in-out duration-150", onCheckedChange ? "rounded-full hover:bg-surface-accent-200 hover:bg-opacity-75 hover:bg-surface-accent-200/75 dark:hover:bg-surface-accent-700 dark:hover:bg-opacity-75 dark:hover:bg-surface-accent-700/75" : "", onCheckedChange ? "cursor-pointer" : "cursor-default"),
3214
3214
  children: /* @__PURE__ */ jsx("div", {
3215
3215
  className: cls("border-2 shrink-0 relative transition-colors ease-in-out duration-150", sizeClasses$2[size], disabled ? indeterminate || isChecked ? "bg-surface-accent-400 dark:bg-surface-accent-600" : "bg-surface-accent-400 dark:bg-surface-accent-600" : indeterminate || isChecked ? colorClasses$2[color] : "bg-white dark:bg-surface-900", indeterminate || isChecked ? "text-surface-accent-100 dark:text-surface-accent-900" : "", disabled ? "border-transparent" : indeterminate || isChecked ? "border-transparent" : "border-surface-accent-800 dark:border-surface-accent-500"),
3216
3216
  children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, {
@@ -3739,6 +3739,7 @@ var widthClasses = {
3739
3739
  };
3740
3740
  var Dialog = ({ open, onOpenChange, children, className, containerClassName, fullWidth = true, fullHeight, fullScreen, scrollable = true, maxWidth = "lg", modal = true, onOpenAutoFocus, onEscapeKeyDown, onPointerDownOutside, onInteractOutside, disableInitialFocus = true, portalContainer, "aria-describedby": ariaDescribedby }) => {
3741
3741
  const [displayed, setDisplayed] = useState(false);
3742
+ const [popupHost, setPopupHost] = useState(null);
3742
3743
  const contextContainer = usePortalContainer();
3743
3744
  const finalContainer = portalContainer ?? contextContainer ?? void 0;
3744
3745
  useEffect(() => {
@@ -3763,7 +3764,7 @@ var Dialog = ({ open, onOpenChange, children, className, containerClassName, ful
3763
3764
  children: [/* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
3764
3765
  className: cls("fixed inset-0 transition-opacity ease-in-out duration-200 bg-black/50 dark:bg-black/60 backdrop-blur-sm", displayed && open ? "opacity-100" : "opacity-0", "z-50 fixed top-0 left-0 w-full h-full flex justify-center items-center"),
3765
3766
  style: { pointerEvents: displayed ? "auto" : "none" }
3766
- }), /* @__PURE__ */ jsx(DialogPrimitive.Content, {
3767
+ }), /* @__PURE__ */ jsxs(DialogPrimitive.Content, {
3767
3768
  onEscapeKeyDown,
3768
3769
  onOpenAutoFocus: (e) => {
3769
3770
  if (disableInitialFocus) e.preventDefault();
@@ -3773,10 +3774,16 @@ var Dialog = ({ open, onOpenChange, children, className, containerClassName, ful
3773
3774
  onInteractOutside,
3774
3775
  "aria-describedby": ariaDescribedby,
3775
3776
  className: cls("relative h-full outline-none flex justify-center items-center z-60 opacity-100 transition-all duration-200 ease-in-out"),
3776
- children: /* @__PURE__ */ jsx("div", {
3777
+ children: [/* @__PURE__ */ jsx("div", {
3777
3778
  className: cls(paperMixin, "rounded-2xl", "z-60", "relative", "overflow-hidden", "outline-none focus:outline-none", fullWidth && !fullScreen ? "w-11/12" : void 0, fullHeight && !fullScreen ? "h-full" : void 0, "text-text-primary dark:text-text-primary-dark", "justify-center items-center", fullScreen ? "h-screen w-screen" : "max-h-[90vh] shadow-lg", "ease-in-out duration-200", scrollable && "overflow-y-auto", displayed && open ? "opacity-100 scale-100" : "opacity-0 scale-[0.97]", maxWidth && !fullScreen ? widthClasses[maxWidth] : void 0, className),
3778
- children
3779
- })
3779
+ children: /* @__PURE__ */ jsx(PortalContainerProvider, {
3780
+ container: popupHost,
3781
+ children
3782
+ })
3783
+ }), /* @__PURE__ */ jsx("div", {
3784
+ ref: setPopupHost,
3785
+ className: "relative z-70 w-0 h-0"
3786
+ })]
3780
3787
  })]
3781
3788
  })
3782
3789
  })
@@ -3955,7 +3962,7 @@ var FilterChip = React.forwardRef(function FilterChip({ children, active = false
3955
3962
  type: "button",
3956
3963
  onClick,
3957
3964
  disabled,
3958
- className: cls("inline-flex items-center gap-1 rounded-full", "font-medium whitespace-nowrap select-none shrink-0", "transition-colors duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", sizeClasses[size], active ? "bg-primary/12 text-primary dark:bg-primary/20 dark:text-primary shadow-[inset_0_0_0_1.5px_var(--color-primary)]" : cls("bg-surface-accent-100 text-text-secondary dark:bg-surface-accent-800 dark:text-text-secondary-dark", !disabled && "cursor-pointer hover:bg-primary/5 dark:hover:bg-primary/5"), disabled && "opacity-50 cursor-not-allowed", className),
3965
+ className: cls("inline-flex items-center gap-1 rounded-full", "font-medium whitespace-nowrap select-none shrink-0", "transition-colors duration-150", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50", sizeClasses[size], !disabled && "cursor-pointer", active ? cls("bg-primary/12 text-primary dark:bg-primary/20 dark:text-primary shadow-[inset_0_0_0_1.5px_var(--color-primary)]", !disabled && "hover:bg-primary/20 dark:hover:bg-primary/30") : cls("bg-surface-accent-100 text-text-secondary dark:bg-surface-accent-800 dark:text-text-secondary-dark", !disabled && "hover:bg-surface-accent-200 dark:hover:bg-surface-accent-700"), disabled && "opacity-50 cursor-not-allowed", className),
3959
3966
  ...rest,
3960
3967
  children: [icon, children]
3961
3968
  });
@@ -4051,7 +4058,7 @@ var Menu = React.forwardRef(({ children, trigger, open, defaultOpen, side, align
4051
4058
  side,
4052
4059
  sideOffset,
4053
4060
  align,
4054
- className: cls(paperMixin, focusedDisabled, "py-2 z-30", className),
4061
+ className: cls(paperMixin, focusedDisabled, "py-2 z-50", className),
4055
4062
  children
4056
4063
  })
4057
4064
  })]
@@ -4104,7 +4111,7 @@ function MenubarPortal({ children, portalContainer }) {
4104
4111
  function MenubarContent({ children, className, align, sideOffset, alignOffset, onSelect, ...rest }) {
4105
4112
  return /* @__PURE__ */ jsx(MenubarPrimitive.Content, {
4106
4113
  onSelect,
4107
- className: cls("min-w-[220px] bg-white dark:bg-surface-900 rounded-md p-[6px] shadow-[0px_10px_38px_-10px_rgba(22,_23,_24,_0.35),_0px_10px_20px_-15px_rgba(22,_23,_24,_0.2)] [animation-duration:_400ms] [animation-timing-function:_cubic-bezier(0.16,_1,_0.3,_1)] will-change-[transform,opacity]", className),
4114
+ className: cls("z-50 min-w-[220px] bg-white dark:bg-surface-900 rounded-md p-[6px] shadow-[0px_10px_38px_-10px_rgba(22,_23,_24,_0.35),_0px_10px_20px_-15px_rgba(22,_23,_24,_0.2)] [animation-duration:_400ms] [animation-timing-function:_cubic-bezier(0.16,_1,_0.3,_1)] will-change-[transform,opacity]", className),
4108
4115
  align: align ?? "start",
4109
4116
  sideOffset: sideOffset ?? 5,
4110
4117
  alignOffset: alignOffset ?? -3,
@@ -4289,10 +4296,9 @@ var MultiSelect = React$1.forwardRef(({ value, size = "large", label, error, onV
4289
4296
  onPopoverOpenChange(false);
4290
4297
  };
4291
4298
  useInjectStyles("MultiSelect", `
4292
- [cmdk-group] {
4299
+ [data-multi-select-content] [cmdk-group] {
4293
4300
  max-height: 45vh;
4294
4301
  overflow-y: auto;
4295
- // width: 400px;
4296
4302
  } `);
4297
4303
  const contextValue = React$1.useMemo(() => ({
4298
4304
  fieldValue: selectedValues,
@@ -4378,6 +4384,7 @@ var MultiSelect = React$1.forwardRef(({ value, size = "large", label, error, onV
4378
4384
  }), /* @__PURE__ */ jsx(PopoverPrimitive.Portal, {
4379
4385
  container: finalContainer,
4380
4386
  children: /* @__PURE__ */ jsx(PopoverPrimitive.Content, {
4387
+ "data-multi-select-content": true,
4381
4388
  className: cls("z-50 overflow-hidden border bg-white dark:bg-surface-800 rounded-lg w-[400px]", defaultBorderMixin),
4382
4389
  align: "start",
4383
4390
  sideOffset: 8,
@@ -5333,7 +5340,7 @@ function Popover({ trigger, children, open, onOpenChange, side, sideOffset = 5,
5333
5340
  }), /* @__PURE__ */ jsx(PopoverPrimitive.Portal, {
5334
5341
  container: finalContainer,
5335
5342
  children: /* @__PURE__ */ jsxs(PopoverPrimitive.Content, {
5336
- className: cls(paperMixin, "PopoverContent z-40", className),
5343
+ className: cls(paperMixin, "PopoverContent z-50", className),
5337
5344
  side,
5338
5345
  sideOffset,
5339
5346
  align,
@@ -5521,10 +5528,10 @@ function Skeleton({ width, height, className }) {
5521
5528
  useInjectStyles("Skeleton", styles);
5522
5529
  return /* @__PURE__ */ jsx("span", {
5523
5530
  style: {
5524
- width: width ? `${width}px` : "100%",
5525
- height: height ? `${height}px` : "12px"
5531
+ width: width === void 0 ? void 0 : `${width}px`,
5532
+ height: height === void 0 ? void 0 : `${height}px`
5526
5533
  },
5527
- className: cls("block relative overflow-hidden", "bg-surface-accent-50 dark:bg-surface-accent-800 rounded-md", "max-w-full max-h-full", className),
5534
+ className: cls("block relative overflow-hidden", "bg-surface-accent-50 dark:bg-surface-accent-800 rounded-md", "max-w-full max-h-full", width === void 0 ? "w-full" : void 0, height === void 0 ? "h-3" : void 0, className),
5528
5535
  children: /* @__PURE__ */ jsx("span", {
5529
5536
  className: "absolute inset-0 bg-gradient-to-r from-transparent via-white/50 dark:via-white/8 to-transparent",
5530
5537
  style: { animation: "shimmer 1.8s ease-in-out infinite" }
@@ -6417,6 +6424,8 @@ function VirtualTableInput(props) {
6417
6424
  return /* @__PURE__ */ jsx(TextareaAutosize, {
6418
6425
  className: focusedDisabled,
6419
6426
  ref,
6427
+ disabled,
6428
+ readOnly: disabled,
6420
6429
  style: {
6421
6430
  padding: 0,
6422
6431
  margin: 0,
@@ -6508,6 +6517,8 @@ function VirtualTableDateField(props) {
6508
6517
  return /* @__PURE__ */ jsx(DateTimeField, {
6509
6518
  value: internalValue ?? void 0,
6510
6519
  onChange: (dateValue) => updateValue(dateValue ?? null),
6520
+ disabled,
6521
+ error: Boolean(error),
6511
6522
  invisible: true,
6512
6523
  size: small ? "small" : "medium",
6513
6524
  inputClassName: cls("w-full h-full", focusedDisabled),
@@ -6616,8 +6627,9 @@ function getScrollParent$1(element) {
6616
6627
  }
6617
6628
  return document.documentElement;
6618
6629
  }
6619
- function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoadingError, itemCount, setItemCount, pageSize = 50, paginationEnabled = true, onItemClick, selectedIds, highlightedIds, selectionEnabled = true, onSelectionChange, emptyComponent, size = "m", selectedEntityId, renderRow }) {
6630
+ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoadingError, itemCount, setItemCount, pageSize = 50, paginationEnabled = true, onItemClick, selectedIds, highlightedIds, selectionEnabled = true, onSelectionChange, emptyComponent, size = "m", selectedEntityId, header, renderRow }) {
6620
6631
  const containerRef = useRef(null);
6632
+ const rowsRef = useRef(null);
6621
6633
  const isLoadingMore = useRef(false);
6622
6634
  useEffect(() => {
6623
6635
  if (!dataLoading) isLoadingMore.current = false;
@@ -6653,7 +6665,7 @@ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoading
6653
6665
  const update = () => {
6654
6666
  rafId = null;
6655
6667
  const scrollRect = scrollEl.getBoundingClientRect();
6656
- const listTopRelative = el.getBoundingClientRect().top - scrollRect.top;
6668
+ const listTopRelative = (rowsRef.current ?? el).getBoundingClientRect().top - scrollRect.top;
6657
6669
  setEffectiveScrollTop(Math.max(0, -listTopRelative));
6658
6670
  setViewportHeight(scrollRect.height);
6659
6671
  const { paginationEnabled: pe, noMoreToLoad: nm, itemCount: ic, pageSize: ps } = paginationStateRef.current;
@@ -6710,7 +6722,8 @@ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoading
6710
6722
  color: "secondary",
6711
6723
  children: "No entries found"
6712
6724
  })
6713
- }) : /* @__PURE__ */ jsxs("div", {
6725
+ }) : /* @__PURE__ */ jsxs(Fragment, { children: [header, /* @__PURE__ */ jsxs("div", {
6726
+ ref: rowsRef,
6714
6727
  style: {
6715
6728
  height: totalHeight + footerHeight,
6716
6729
  position: "relative"
@@ -6785,7 +6798,7 @@ function ListView({ data, dataLoading = false, noMoreToLoad = false, dataLoading
6785
6798
  })
6786
6799
  })
6787
6800
  ]
6788
- })
6801
+ })] })
6789
6802
  });
6790
6803
  }
6791
6804
  //#endregion
@@ -8594,7 +8607,7 @@ function CollectionView({ dataController, properties, propertiesOrder, displayed
8594
8607
  case "kanban": return resolvedKanbanProperty ? /* @__PURE__ */ jsx(CollectionKanbanView, {
8595
8608
  ...sharedProps,
8596
8609
  kanbanProperty: resolvedKanbanProperty,
8597
- onRowCreate
8610
+ onRowCreate: canCreate ? onRowCreate : void 0
8598
8611
  }) : /* @__PURE__ */ jsx("div", {
8599
8612
  className: "flex items-center justify-center p-8",
8600
8613
  children: /* @__PURE__ */ jsx(Typography, {
@@ -8647,6 +8660,6 @@ function CollectionView({ dataController, properties, propertiesOrder, displayed
8647
8660
  });
8648
8661
  }
8649
8662
  //#endregion
8650
- export { Alert, AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, Autocomplete, AutocompleteItem, Avatar, Badge, BoldIcon, BookOpenIcon, BooleanSwitch, BooleanSwitchWithLabel, Button, CHIP_COLORS, CHIP_HUES, CHIP_SEED_KEYS, CONTROL_HEIGHT, CalendarIcon, Card, CardView, CenteredView, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, Chip, CircleDotIcon, CircleIcon, CircleUserIcon, CircularProgress, CircularProgressCenter, CodeIcon, Collapse, CollectionView, ColorPicker, ColumnsIcon, Container, CopyIcon, DatabaseIcon, DateTimeField, DebouncedTextField, Dialog, DialogActions, DialogContent, DialogTitle, DollarSignIcon, DownloadIcon, ErrorBoundary, ExpandablePanel, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GitHubIcon, GlobeIcon, HandleIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, ImageIcon, ImageOffIcon, InfoIcon, InfoLabel, InputLabel, ItalicIcon, KanbanIcon, KanbanView, KeyIcon, KeyRoundIcon, Label, LanguagesIcon, LayoutGridIcon, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, ListView, LoaderIcon, LoadingButton, LockIcon, LogOutIcon, MailIcon, Markdown, Maximize2Icon, Menu, MenuIcon, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarItemIndicator, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarSubTriggerIndicator, MenubarTrigger, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, MultiSelect, MultiSelectContext, MultiSelectItem, Music2Icon, PanelLeftIcon, Paper, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, Popover, PopoverPrimitive, Portal, PortalContainerProvider, QuoteIcon, RadioGroup, RadioGroupItem, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, ResizablePanels, Rows3Icon, SaveIcon, SearchBar, SearchIcon, Select, SelectGroup, SelectItem, SendIcon, Separator, SettingsIcon, Sheet, ShieldIcon, ShoppingCartIcon, Skeleton, Slider, SlidersHorizontalIcon, Slot, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Tab, Table, TableBody, TableCell, TableHeader, TableIcon, TableRow, Tabs, TagIcon, TerminalIcon, TextField, TextIcon, TextareaAutosize, ToggleButtonGroup, Tooltip, Trash2Icon, TrendingUpIcon, TypeIcon, Typography, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VirtualTable, VirtualTableDateField, VirtualTableInput, VirtualTableNumberInput, VirtualTableSelect, VirtualTableSelectionProvider, VirtualTableSwitch, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, cardClickableMixin, cardMixin, cardSelectedMixin, cls, colorClassesMapping, controlHeightMixin, controlPaddingMixin, coolIconKeys, createVirtualTableSelectionStore, debounce, defaultBorderMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, fieldBackgroundInvisibleMixin, fieldBackgroundMixin, focusedClasses, focusedDisabled, focusedInvisibleMixin, getColorSchemeForKey, getColorSchemeForSeed, iconKeys, iconSize, lucideIcons, paperMixin, useAutoComplete, useDebounceCallback, useDebounceValue, useDebouncedCallback, useInjectStyles, useOutsideAlerter, usePortalContainer, useVirtualTableCellSelected, useVirtualTableSelection };
8663
+ export { Alert, AlertCircleIcon, AlertTriangleIcon, AlignLeftIcon, AppWindow, ArrowDownIcon, ArrowDownToLineIcon, ArrowLeftIcon, ArrowRightFromLineIcon, ArrowRightIcon, ArrowRightLeftIcon, ArrowRightToLineIcon, ArrowUpDownIcon, ArrowUpIcon, ArrowUpToLineIcon, Autocomplete, AutocompleteItem, Avatar, Badge, BoldIcon, BookOpenIcon, BooleanSwitch, BooleanSwitchWithLabel, Button, CHIP_COLORS, CHIP_HUES, CHIP_SEED_KEYS, CONTROL_HEIGHT, CalendarIcon, Card, CardView, CenteredView, CheckCircle2Icon, CheckCircleIcon, CheckIcon, CheckSquareIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, Chip, CircleDotIcon, CircleIcon, CircleUserIcon, CircularProgress, CircularProgressCenter, CodeIcon, Collapse, CollectionView, ColorPicker, ColumnsIcon, Container, CopyIcon, DatabaseIcon, DateTimeField, DebouncedTextField, Dialog, DialogActions, DialogContent, DialogTitle, DollarSignIcon, DownloadIcon, ErrorBoundary, ExpandablePanel, ExternalLinkIcon, EyeIcon, EyeOffIcon, FileIcon, FileSearchIcon, FileTextIcon, FileUpload, FilterChip, FilterIcon, FilterXIcon, FlagIcon, FolderIcon, FolderKanbanIcon, FolderPlusIcon, FolderUpIcon, FunctionSquareIcon, GitBranchIcon, GitHubIcon, GlobeIcon, HandleIcon, HashIcon, Heading1Icon, Heading2Icon, Heading3Icon, HelpCircleIcon, HistoryIcon, HomeIcon, IconButton, ImageIcon, ImageOffIcon, InfoIcon, InfoLabel, InputLabel, ItalicIcon, KanbanIcon, KanbanView, KeyIcon, KeyRoundIcon, Label, LanguagesIcon, LayoutGridIcon, Link2Icon, LinkIcon, ListIcon, ListOrderedIcon, ListPlusIcon, ListTodoIcon, ListView, LoaderIcon, LoadingButton, LockIcon, LogOutIcon, MailIcon, Markdown, Maximize2Icon, Menu, MenuIcon, MenuItem, Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarItemIndicator, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarSubTriggerIndicator, MenubarTrigger, MessageCircleIcon, MinusCircleIcon, MinusIcon, MoonIcon, MoreVerticalIcon, MultiSelect, MultiSelectContext, MultiSelectItem, Music2Icon, PanelLeftCloseIcon, PanelLeftIcon, PanelLeftOpenIcon, Paper, PauseIcon, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlayIcon, PlusIcon, Popover, PopoverPrimitive, Portal, PortalContainerProvider, QuoteIcon, RadioGroup, RadioGroupItem, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, ResizablePanels, Rows3Icon, SaveIcon, SearchBar, SearchIcon, Select, SelectGroup, SelectItem, SendIcon, Separator, SettingsIcon, Sheet, ShieldIcon, ShoppingCartIcon, Skeleton, Slider, SlidersHorizontalIcon, Slot, SquareIcon, StarIcon, StickyNoteIcon, StrikethroughIcon, SunIcon, SunMoonIcon, Tab, Table, TableBody, TableCell, TableHeader, TableIcon, TableRow, Tabs, TagIcon, TerminalIcon, TextField, TextIcon, TextareaAutosize, ToggleButtonGroup, Tooltip, Trash2Icon, TrendingUpIcon, TypeIcon, Typography, UnderlineIcon, UndoIcon, Unlink2Icon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserPlus, UsersIcon, VideoIcon, VirtualTable, VirtualTableDateField, VirtualTableInput, VirtualTableNumberInput, VirtualTableSelect, VirtualTableSelectionProvider, VirtualTableSwitch, VoteIcon, Wand2Icon, WrenchIcon, XCircleIcon, XIcon, cardClickableMixin, cardMixin, cardSelectedMixin, cls, colorClassesMapping, controlHeightMixin, controlPaddingMixin, coolIconKeys, createVirtualTableSelectionStore, debounce, defaultBorderMixin, fieldBackgroundDisabledMixin, fieldBackgroundHoverMixin, fieldBackgroundInvisibleMixin, fieldBackgroundMixin, focusedClasses, focusedDisabled, focusedInvisibleMixin, getColorSchemeForKey, getColorSchemeForSeed, iconKeys, iconSize, lucideIcons, paperMixin, useAutoComplete, useDebounceCallback, useDebounceValue, useDebouncedCallback, useInjectStyles, useOutsideAlerter, usePortalContainer, useVirtualTableCellSelected, useVirtualTableSelection };
8651
8664
 
8652
8665
  //# sourceMappingURL=index.es.js.map