@adaptabletools/adaptable-cjs 23.0.0-canary.1 → 23.0.0-canary.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/index.css +130 -137
  2. package/package.json +1 -1
  3. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -3
  4. package/src/AdaptableState/Common/AdaptableFormat.d.ts +1 -1
  5. package/src/AdaptableState/LayoutState.d.ts +5 -4
  6. package/src/AdaptableState/StyledColumnState.d.ts +7 -16
  7. package/src/AdaptableState/StyledColumnState.js +10 -0
  8. package/src/Api/EventApi.d.ts +1 -1
  9. package/src/Api/Events/ReportScheduleRan.d.ts +4 -0
  10. package/src/Api/Internal/EventInternalApi.js +2 -1
  11. package/src/View/AdaptablePopover/index.js +1 -1
  12. package/src/View/Components/Buttons/ButtonInfo.d.ts +1 -1
  13. package/src/View/Components/Buttons/ButtonInfo.js +4 -4
  14. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +1 -1
  15. package/src/View/Components/ColumnFilter/ColumnFilter.js +15 -5
  16. package/src/View/Components/ColumnFilter/FloatingFilter.js +57 -59
  17. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
  18. package/src/View/Components/Forms/AdaptableFormControlTextClear.js +2 -1
  19. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +1 -1
  20. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +2 -2
  21. package/src/View/Components/ValueSelector/index.js +1 -1
  22. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +3 -8
  23. package/src/View/GridFilter/GridFilterViewPanel.js +1 -1
  24. package/src/View/Layout/Wizard/sections/ColumnsSection.js +4 -4
  25. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +1 -1
  26. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +6 -2
  27. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +1 -1
  28. package/src/View/Layout/Wizard/sections/SettingsSection.js +1 -1
  29. package/src/View/License/LicenseWatermark.js +1 -1
  30. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +1 -1
  31. package/src/View/Wizard/OnePageWizards.js +1 -1
  32. package/src/agGrid/AdaptableAgGrid.js +2 -2
  33. package/src/components/Card/index.js +1 -1
  34. package/src/components/Combobox/index.js +10 -4
  35. package/src/components/Datepicker/index.js +2 -2
  36. package/src/components/Dialog/index.js +1 -1
  37. package/src/components/DragAndDropContext/TabList.js +1 -1
  38. package/src/components/Dropdown/Arrows.js +0 -1
  39. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  40. package/src/components/ExpressionEditor/index.js +1 -1
  41. package/src/components/Input/index.js +1 -1
  42. package/src/components/NewDropdownButton/index.d.ts +1 -0
  43. package/src/components/NewDropdownButton/index.js +2 -2
  44. package/src/components/NewSelect/index.d.ts +2 -0
  45. package/src/components/NewSelect/index.js +10 -7
  46. package/src/components/Panel/index.js +1 -1
  47. package/src/components/SimpleButton/index.js +1 -1
  48. package/src/components/Tabs/index.js +1 -1
  49. package/src/components/Tree/TreeDropdown/index.js +4 -8
  50. package/src/components/ui/button.d.ts +5 -2
  51. package/src/components/ui/button.js +8 -6
  52. package/src/components/ui/calendar.d.ts +1 -1
  53. package/src/components/ui/combobox.d.ts +16 -16
  54. package/src/components/ui/combobox.js +48 -49
  55. package/src/components/ui/input-group.d.ts +10 -9
  56. package/src/components/ui/input-group.js +19 -16
  57. package/src/components/ui/input.d.ts +2 -2
  58. package/src/components/ui/input.js +7 -4
  59. package/src/components/ui/popover.d.ts +5 -5
  60. package/src/components/ui/popover.js +5 -5
  61. package/src/components/ui/select.d.ts +7 -6
  62. package/src/components/ui/select.js +19 -17
  63. package/src/components/ui/textarea.d.ts +2 -2
  64. package/src/components/ui/textarea.js +7 -4
  65. package/src/components/ui/tooltip.d.ts +6 -5
  66. package/src/components/ui/tooltip.js +10 -7
  67. package/src/env.js +2 -2
  68. package/src/layout-manager/src/LayoutManagerModel.d.ts +2 -2
  69. package/src/layout-manager/src/index.js +5 -4
  70. package/src/layout-manager/src/normalizeLayoutModel.js +5 -1
  71. package/src/layout-manager/src/rowGroupDisplayType.d.ts +6 -0
  72. package/src/layout-manager/src/rowGroupDisplayType.js +29 -0
  73. package/src/lib/utils.d.ts +20 -0
  74. package/src/lib/utils.js +48 -1
  75. package/src/metamodel/adaptable.metamodel.d.ts +7 -26
  76. package/src/metamodel/adaptable.metamodel.js +1 -1
  77. package/src/migration/VersionUpgrade23.d.ts +2 -3
  78. package/src/migration/VersionUpgrade23.js +4 -16
  79. package/themes/dark.css +7 -17
  80. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -1,20 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RESIZABLE_VIRTUALIZED_SCROLL_CLASS = exports.RESIZABLE_VIRTUALIZED_LIST_CLASS = exports.Combobox = exports.ComboboxPrimitive = exports.useFilteredItems = void 0;
4
- exports.ComboboxClear = ComboboxClear;
5
- exports.ComboboxInput = ComboboxInput;
3
+ exports.RESIZABLE_VIRTUALIZED_SCROLL_CLASS = exports.RESIZABLE_VIRTUALIZED_LIST_CLASS = exports.ComboboxTrigger = exports.ComboboxChipsInput = exports.ComboboxChip = exports.ComboboxChips = exports.ComboboxSeparator = exports.ComboboxEmpty = exports.ComboboxLabel = exports.ComboboxGroup = exports.ComboboxItem = exports.ComboboxList = exports.ComboboxInput = exports.Combobox = exports.ComboboxClear = exports.ComboboxPrimitive = exports.useFilteredItems = void 0;
6
4
  exports.ComboboxContent = ComboboxContent;
7
- exports.ComboboxList = ComboboxList;
8
- exports.ComboboxItem = ComboboxItem;
9
- exports.ComboboxGroup = ComboboxGroup;
10
- exports.ComboboxLabel = ComboboxLabel;
11
5
  exports.ComboboxCollection = ComboboxCollection;
12
- exports.ComboboxEmpty = ComboboxEmpty;
13
- exports.ComboboxSeparator = ComboboxSeparator;
14
- exports.ComboboxChips = ComboboxChips;
15
- exports.ComboboxChip = ComboboxChip;
16
- exports.ComboboxChipsInput = ComboboxChipsInput;
17
- exports.ComboboxTrigger = ComboboxTrigger;
18
6
  exports.ComboboxValue = ComboboxValue;
19
7
  exports.useComboboxAnchor = useComboboxAnchor;
20
8
  const tslib_1 = require("tslib");
@@ -39,16 +27,18 @@ exports.RESIZABLE_VIRTUALIZED_SCROLL_CLASS = RESIZABLE_VIRTUALIZED_SCROLL_CLASS;
39
27
  function ComboboxValue({ ...props }) {
40
28
  return (0, jsx_runtime_1.jsx)(react_1.Combobox.Value, { "data-slot": "combobox-value", ...props });
41
29
  }
42
- function ComboboxTrigger({ className, children, ...props }) {
43
- return ((0, jsx_runtime_1.jsxs)(react_1.Combobox.Trigger, { "data-slot": "combobox-trigger", className: (0, utils_1.cn)('twa:[&_svg:not([class*=size-])]:size-4', className), ...props, children: [children, (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" })] }));
44
- }
45
- function ComboboxClear({ className, ...props }) {
46
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Clear, { "data-slot": "combobox-clear", render: (0, jsx_runtime_1.jsx)(input_group_1.InputGroupButton, { variant: "ghost", size: "icon-xs", className: "twa:min-h-auto!" }), className: (0, utils_1.cn)(className), ...props, children: (0, jsx_runtime_1.jsx)(lucide_react_1.XIcon, { className: "twa:pointer-events-none", strokeWidth: 1 }) }));
47
- }
48
- function ComboboxInput({ className, children, disabled = false, isLoading = false, showTrigger = true, showClear = false, groupRef, ...props }) {
30
+ const ComboboxTrigger = React.forwardRef(function ComboboxTrigger({ className, children, ...props }, ref) {
31
+ return ((0, jsx_runtime_1.jsxs)(react_1.Combobox.Trigger, { "data-slot": "combobox-trigger", className: (0, utils_1.cn)('twa:[&_svg:not([class*=size-])]:size-4', className), ref: ref, ...props, children: [children, (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" })] }));
32
+ });
33
+ exports.ComboboxTrigger = ComboboxTrigger;
34
+ exports.ComboboxClear = React.forwardRef(function ComboboxClear({ className, ...props }, ref) {
35
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Clear, { "data-slot": "combobox-clear", render: (0, jsx_runtime_1.jsx)(input_group_1.InputGroupButton, { variant: "ghost", size: "icon-xs", className: "twa:min-h-auto!" }), className: className, ref: ref, ...props, children: (0, jsx_runtime_1.jsx)(lucide_react_1.XIcon, { className: "twa:pointer-events-none", strokeWidth: 1 }) }));
36
+ });
37
+ const ComboboxInput = React.forwardRef(function ComboboxInput({ className, children, disabled = false, isLoading = false, showTrigger = true, showClear = false, groupRef, ...props }, ref) {
49
38
  const { 'aria-label': ariaLabel, ...rest } = props;
50
- return ((0, jsx_runtime_1.jsxs)(input_group_1.InputGroup, { ref: groupRef, className: (0, utils_1.cn)('twa:w-auto', className), "aria-label": ariaLabel, children: [(0, jsx_runtime_1.jsx)(react_1.Combobox.Input, { render: (0, jsx_runtime_1.jsx)(input_group_1.InputGroupInput, { disabled: disabled }), ...rest }), (0, jsx_runtime_1.jsxs)(input_group_1.InputGroupAddon, { align: "inline-end", children: [isLoading && ((0, jsx_runtime_1.jsx)(lucide_react_1.Loader2Icon, { className: "twa:size-4 twa:text-muted-foreground twa:animate-spin" })), showTrigger && ((0, jsx_runtime_1.jsx)(input_group_1.InputGroupButton, { size: "icon-xs", variant: "ghost", render: (0, jsx_runtime_1.jsx)(ComboboxTrigger, {}), "data-slot": "input-group-button", className: "twa:group-has-data-[slot=combobox-clear]/input-group:hidden twa:data-pressed:bg-transparent twa:min-h-auto!", disabled: disabled })), showClear && (0, jsx_runtime_1.jsx)(ComboboxClear, { disabled: disabled })] }), children] }));
51
- }
39
+ return ((0, jsx_runtime_1.jsxs)(input_group_1.InputGroup, { ref: groupRef, className: (0, utils_1.cn)('twa:w-auto', className), "aria-label": ariaLabel, children: [(0, jsx_runtime_1.jsx)(react_1.Combobox.Input, { ref: ref, render: (0, jsx_runtime_1.jsx)(input_group_1.InputGroupInput, { disabled: disabled }), ...rest }), (0, jsx_runtime_1.jsxs)(input_group_1.InputGroupAddon, { align: "inline-end", children: [isLoading && ((0, jsx_runtime_1.jsx)(lucide_react_1.Loader2Icon, { className: "twa:size-4 twa:text-muted-foreground twa:animate-spin" })), showTrigger && ((0, jsx_runtime_1.jsx)(input_group_1.InputGroupButton, { size: "icon-xs", variant: "ghost", render: (0, jsx_runtime_1.jsx)(ComboboxTrigger, {}), "data-slot": "combobox-toggle", className: "twa:group-has-data-[slot=combobox-clear]/input-group:hidden twa:data-pressed:bg-transparent twa:min-h-auto!", disabled: disabled })), showClear && (0, jsx_runtime_1.jsx)(exports.ComboboxClear, { disabled: disabled })] }), children] }));
40
+ });
41
+ exports.ComboboxInput = ComboboxInput;
52
42
  function ComboboxContent({ className, side = 'bottom', sideOffset = 6, align = 'start', alignOffset = 0, anchor, resizable = false, contentRef, style, ...props }) {
53
43
  const sizeRef = React.useRef(null);
54
44
  const popupElRef = React.useRef(null);
@@ -73,36 +63,43 @@ function ComboboxContent({ className, side = 'bottom', sideOffset = 6, align = '
73
63
  : undefined;
74
64
  return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Portal, { children: (0, jsx_runtime_1.jsx)(react_1.Combobox.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, anchor: anchor, className: `twa:isolate ${utils_1.POPUP_Z_INDEX}`, children: (0, jsx_runtime_1.jsx)(react_1.Combobox.Popup, { ref: popupRef, "data-slot": "combobox-content", "data-chips": !!anchor, "data-resizable": resizable || undefined, style: { ...resizableStyle, ...style }, className: (0, utils_1.cn)('twa:group/combobox-content twa:relative twa:origin-(--transform-origin) twa:overflow-hidden twa:rounded-input twa:bg-popover twa:text-popover-foreground twa:shadow-md twa:ring-1 twa:ring-foreground/10 twa:duration-100 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:*:data-[slot=input-group]:m-1 twa:*:data-[slot=input-group]:mb-0 twa:*:data-[slot=input-group]:h-8 twa:*:data-[slot=input-group]:border-input/30 twa:*:data-[slot=input-group]:bg-input/30 twa:*:data-[slot=input-group]:shadow-none twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', 'twa:max-h-[min(var(--available-height),80vh)]', 'twa:max-w-[min(var(--available-width),80vw)]', 'twa:min-w-[min(calc(var(--anchor-width)+--spacing(7)),var(--available-width),80vw)]', resizable ? 'twa:flex twa:flex-col twa:min-h-24' : 'twa:w-(--anchor-width)', className), ...props }) }) }));
75
65
  }
76
- function ComboboxList({ className, ...props }) {
77
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.List, { "data-slot": "combobox-list", className: (0, utils_1.cn)('twa:no-scrollbar twa:max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] twa:scroll-py-1 twa:overflow-y-auto twa:overscroll-contain twa:p-1 twa:data-empty:p-0', RESIZABLE_LIST_CLASS, className), ...props }));
78
- }
66
+ const ComboboxList = React.forwardRef(function ComboboxList({ className, ...props }, ref) {
67
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.List, { "data-slot": "combobox-list", className: (0, utils_1.cn)('twa:no-scrollbar twa:max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] twa:scroll-py-1 twa:overflow-y-auto twa:overscroll-contain twa:p-1 twa:data-empty:p-0', RESIZABLE_LIST_CLASS, className), ref: ref, ...props }));
68
+ });
69
+ exports.ComboboxList = ComboboxList;
79
70
  const checkboxIndicatorRender = (props, state) => {
80
71
  const clsForSquare = state.selected ? 'twa:ring-1 twa:ring-accent-foreground' : '';
81
72
  return ((0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { checked: state.selected, tabIndex: -1, checkSquareClassName: clsForSquare, className: "twa:p-0 twa:m-0 twa:cursor-pointer" }));
82
73
  };
83
- function ComboboxItem({ className, children, renderCheckboxIndicator, ...props }) {
84
- return ((0, jsx_runtime_1.jsxs)(react_1.Combobox.Item, { className: (0, utils_1.cn)('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:data-highlighted:bg-accent twa:data-highlighted:text-accent-foreground twa:not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', 'twa:cursor-pointer', renderCheckboxIndicator ? 'twa:pr-2' : 'twa:pr-8', className), ...props, "data-slot": "combobox-item", children: [renderCheckboxIndicator ? ((0, jsx_runtime_1.jsx)(react_1.Combobox.ItemIndicator, { keepMounted: true, render: renderCheckboxIndicator === true ? checkboxIndicatorRender : renderCheckboxIndicator })) : null, children, !renderCheckboxIndicator && ((0, jsx_runtime_1.jsx)(react_1.Combobox.ItemIndicator, { render: (0, jsx_runtime_1.jsx)("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: (0, jsx_runtime_1.jsx)(lucide_react_1.CheckIcon, { className: "twa:pointer-events-none" }) }))] }));
85
- }
86
- function ComboboxGroup({ className, ...props }) {
87
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Group, { "data-slot": "combobox-group", className: (0, utils_1.cn)(className), ...props }));
88
- }
89
- function ComboboxLabel({ className, ...props }) {
90
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.GroupLabel, { "data-slot": "combobox-label", className: (0, utils_1.cn)('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ...props }));
91
- }
74
+ const ComboboxItem = React.forwardRef(function ComboboxItem({ className, children, renderCheckboxIndicator, ...props }, ref) {
75
+ return ((0, jsx_runtime_1.jsxs)(react_1.Combobox.Item, { ref: ref, className: (0, utils_1.cn)('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:data-highlighted:bg-accent twa:data-highlighted:text-accent-foreground twa:not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', 'twa:cursor-pointer', renderCheckboxIndicator ? 'twa:pr-2' : 'twa:pr-8', className), ...props, "data-slot": "combobox-item", children: [renderCheckboxIndicator ? ((0, jsx_runtime_1.jsx)(react_1.Combobox.ItemIndicator, { keepMounted: true, render: renderCheckboxIndicator === true ? checkboxIndicatorRender : renderCheckboxIndicator })) : null, children, !renderCheckboxIndicator && ((0, jsx_runtime_1.jsx)(react_1.Combobox.ItemIndicator, { render: (0, jsx_runtime_1.jsx)("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: (0, jsx_runtime_1.jsx)(lucide_react_1.CheckIcon, { className: "twa:pointer-events-none" }) }))] }));
76
+ });
77
+ exports.ComboboxItem = ComboboxItem;
78
+ const ComboboxGroup = React.forwardRef(function ComboboxGroup({ className, ...props }, ref) {
79
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Group, { "data-slot": "combobox-group", className: (0, utils_1.cn)(className), ref: ref, ...props }));
80
+ });
81
+ exports.ComboboxGroup = ComboboxGroup;
82
+ const ComboboxLabel = React.forwardRef(function ComboboxLabel({ className, ...props }, ref) {
83
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.GroupLabel, { "data-slot": "combobox-label", className: (0, utils_1.cn)('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ref: ref, ...props }));
84
+ });
85
+ exports.ComboboxLabel = ComboboxLabel;
92
86
  function ComboboxCollection({ ...props }) {
93
87
  return (0, jsx_runtime_1.jsx)(react_1.Combobox.Collection, { "data-slot": "combobox-collection", ...props });
94
88
  }
95
- function ComboboxEmpty({ className, ...props }) {
96
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Empty, { "data-slot": "combobox-empty", className: (0, utils_1.cn)('twa:hidden twa:w-full twa:justify-center twa:py-2 twa:text-center twa:text-sm twa:text-muted-foreground twa:group-data-empty/combobox-content:flex', className), ...props }));
97
- }
98
- function ComboboxSeparator({ className, ...props }) {
99
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Separator, { "data-slot": "combobox-separator", className: (0, utils_1.cn)('twa:-mx-1 twa:my-1 twa:h-px twa:bg-border', className), ...props }));
100
- }
101
- function ComboboxChips({ className, ...props }) {
102
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Chips, { "data-slot": "combobox-chips", className: (0, utils_1.cn)('twa:focus-within:outline-none', 'twa:flex twa:flex-wrap twa:items-center twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:bg-input-background twa:bg-clip-padding twa:text-sm twa:shadow-xs twa:transition-[color,box-shadow] twa:focus-within:border-ring twa:focus-within:ring-3 twa:focus-within:ring-ring/50 twa:has-aria-invalid:border-destructive twa:has-aria-invalid:ring-3 twa:has-aria-invalid:ring-destructive/20 twa:has-data-[slot=combobox-chip]:px-1.5 twa:dark:bg-input/30 twa:dark:has-aria-invalid:border-destructive/50 twa:dark:has-aria-invalid:ring-destructive/40', 'twa:py-1', 'twa:px-2.5', 'twa:min-h-input', 'twa:[&>input]:max-h-[calc(var(--ab-input-height)-1.5*var(--ab-base-space))]!', className), ...props }));
103
- }
104
- function ComboboxChip({ className, children, showRemove = true, onRemove, ...props }) {
105
- return ((0, jsx_runtime_1.jsxs)(react_1.Combobox.Chip, { "data-slot": "combobox-chip", className: (0, utils_1.cn)('twa:flex twa:h-[calc(--spacing(5.5))] twa:w-fit twa:items-center twa:justify-center twa:gap-1 twa:rounded-input twa:bg-muted twa:px-1.5 twa:text-xs twa:font-medium twa:whitespace-nowrap twa:text-input-foreground twa:has-disabled:pointer-events-none twa:has-disabled:cursor-not-allowed twa:has-disabled:opacity-50 twa:has-data-[slot=combobox-chip-remove]:pr-0', className), ...props, children: [children, showRemove &&
89
+ const ComboboxEmpty = React.forwardRef(function ComboboxEmpty({ className, ...props }, ref) {
90
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Empty, { "data-slot": "combobox-empty", className: (0, utils_1.cn)('twa:hidden twa:w-full twa:justify-center twa:py-2 twa:text-center twa:text-sm twa:text-muted-foreground twa:group-data-empty/combobox-content:flex', className), ref: ref, ...props }));
91
+ });
92
+ exports.ComboboxEmpty = ComboboxEmpty;
93
+ const ComboboxSeparator = React.forwardRef(function ComboboxSeparator({ className, ...props }, ref) {
94
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Separator, { "data-slot": "combobox-separator", className: (0, utils_1.cn)('twa:-mx-1 twa:my-1 twa:h-px twa:bg-border', className), ref: ref, ...props }));
95
+ });
96
+ exports.ComboboxSeparator = ComboboxSeparator;
97
+ const ComboboxChips = React.forwardRef(function ComboboxChips({ className, ...props }, ref) {
98
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Chips, { "data-slot": "combobox-chips", className: (0, utils_1.cn)('twa:focus-within:outline-none', 'twa:flex twa:flex-wrap twa:items-center twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:bg-input-background twa:bg-clip-padding twa:text-sm twa:shadow-xs twa:transition-[color,box-shadow] twa:focus-within:border-ring twa:focus-within:ring-3 twa:focus-within:ring-ring/50 twa:has-aria-invalid:border-destructive twa:has-aria-invalid:ring-3 twa:has-aria-invalid:ring-destructive/20 twa:has-data-[slot=combobox-chip]:px-1.5 twa:dark:has-aria-invalid:border-destructive/50 twa:dark:has-aria-invalid:ring-destructive/40', 'twa:py-1', 'twa:px-2.5', 'twa:min-h-input', 'twa:[&>input]:max-h-[calc(var(--ab-input-height)-1.5*var(--ab-base-space))]!', className), ref: ref, ...props }));
99
+ });
100
+ exports.ComboboxChips = ComboboxChips;
101
+ const ComboboxChip = React.forwardRef(function ComboboxChip({ className, children, showRemove = true, onRemove, ...props }, ref) {
102
+ return ((0, jsx_runtime_1.jsxs)(react_1.Combobox.Chip, { ref: ref, "data-slot": "combobox-chip", className: (0, utils_1.cn)('twa:flex twa:h-[calc(--spacing(5.5))] twa:w-fit twa:items-center twa:justify-center twa:gap-1 twa:rounded-input twa:bg-muted twa:px-1.5 twa:text-xs twa:font-medium twa:whitespace-nowrap twa:text-input-foreground twa:has-disabled:pointer-events-none twa:has-disabled:cursor-not-allowed twa:has-disabled:opacity-50 twa:has-data-[slot=combobox-chip-remove]:pr-0', className), ...props, children: [children, showRemove &&
106
103
  (onRemove ? ((0, jsx_runtime_1.jsx)(button_1.Button, { type: "button", variant: "ghost", size: "icon-xs", tabIndex: -1, "data-slot": "combobox-chip-remove", className: "twa:-ml-1 twa:opacity-50 twa:hover:opacity-100", onMouseDown: (e) => {
107
104
  // Don't let base-ui's Chip onMouseDown steal focus back to the
108
105
  // input before the click fires.
@@ -114,10 +111,12 @@ function ComboboxChip({ className, children, showRemove = true, onRemove, ...pro
114
111
  e.stopPropagation();
115
112
  onRemove(e);
116
113
  }, children: (0, jsx_runtime_1.jsx)(lucide_react_1.XIcon, { className: "twa:pointer-events-none" }) })) : ((0, jsx_runtime_1.jsx)(react_1.Combobox.ChipRemove, { render: (0, jsx_runtime_1.jsx)(button_1.Button, { variant: "ghost", size: "icon-xs" }), className: "twa:-ml-1 twa:opacity-50 twa:hover:opacity-100", "data-slot": "combobox-chip-remove", children: (0, jsx_runtime_1.jsx)(lucide_react_1.XIcon, { className: "twa:pointer-events-none" }) })))] }));
117
- }
118
- function ComboboxChipsInput({ className, ...props }) {
119
- return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Input, { "data-slot": "combobox-chip-input", className: (0, utils_1.cn)('twa:placeholder:text-muted-foreground twa:min-w-16 twa:flex-1 twa:px-2.5 twa:outline-none twa:border-none twa:bg-transparent twa:min-h-auto!', className), ...props }));
120
- }
114
+ });
115
+ exports.ComboboxChip = ComboboxChip;
116
+ const ComboboxChipsInput = React.forwardRef(function ComboboxChipsInput({ className, ...props }, ref) {
117
+ return ((0, jsx_runtime_1.jsx)(react_1.Combobox.Input, { "data-slot": "combobox-chip-input", className: (0, utils_1.cn)('twa:placeholder:text-muted-foreground twa:min-w-16 twa:flex-1 twa:px-2.5 twa:outline-none twa:border-none twa:bg-transparent twa:min-h-auto!', className), ref: ref, ...props }));
118
+ });
119
+ exports.ComboboxChipsInput = ComboboxChipsInput;
121
120
  function useComboboxAnchor() {
122
121
  return React.useRef(null);
123
122
  }
@@ -1,18 +1,19 @@
1
1
  import * as React from 'react';
2
2
  import { type VariantProps } from 'class-variance-authority';
3
- import { Button } from "./button";
4
- declare function InputGroup({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
3
+ declare const InputGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
4
  declare const inputGroupAddonVariants: (props?: {
6
5
  align?: "inline-end" | "inline-start" | "block-end" | "block-start";
7
6
  } & import("class-variance-authority/dist/types").ClassProp) => string;
8
7
  declare function InputGroupAddon({ className, align, ...props }: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>): React.JSX.Element;
9
- declare const inputGroupButtonVariants: (props?: {
8
+ declare const InputGroupButton: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").ButtonProps & VariantProps<(props?: {
9
+ variant?: "link" | "secondary" | "default" | "ghost" | "outline" | "destructive";
10
+ size?: "default" | "icon" | "xs" | "sm" | "lg" | "icon-xs" | "icon-sm" | "icon-lg";
11
+ } & import("class-variance-authority/dist/types").ClassProp) => string>, "ref"> & React.RefAttributes<HTMLButtonElement>, "type" | "size"> & VariantProps<(props?: {
10
12
  size?: "xs" | "sm" | "icon-xs" | "icon-sm";
11
- } & import("class-variance-authority/dist/types").ClassProp) => string;
12
- declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> & VariantProps<typeof inputGroupButtonVariants> & {
13
- type?: 'button' | 'submit' | 'reset';
14
- }): React.JSX.Element;
13
+ } & import("class-variance-authority/dist/types").ClassProp) => string> & {
14
+ type?: "button" | "submit" | "reset";
15
+ }, "ref"> & React.RefAttributes<HTMLButtonElement>>;
15
16
  declare function InputGroupText({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
16
- declare function InputGroupInput({ className, ...props }: React.ComponentProps<'input'>): React.JSX.Element;
17
- declare function InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>): React.JSX.Element;
17
+ declare const InputGroupInput: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
18
+ declare const InputGroupTextarea: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
18
19
  export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, };
@@ -1,21 +1,21 @@
1
1
  'use client';
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.InputGroup = InputGroup;
4
+ exports.InputGroupTextarea = exports.InputGroupInput = exports.InputGroupButton = exports.InputGroup = void 0;
5
5
  exports.InputGroupAddon = InputGroupAddon;
6
- exports.InputGroupButton = InputGroupButton;
7
6
  exports.InputGroupText = InputGroupText;
8
- exports.InputGroupInput = InputGroupInput;
9
- exports.InputGroupTextarea = InputGroupTextarea;
7
+ const tslib_1 = require("tslib");
10
8
  const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const React = tslib_1.__importStar(require("react"));
11
10
  const class_variance_authority_1 = require("class-variance-authority");
12
11
  const utils_1 = require("../../lib/utils");
13
12
  const button_1 = require("./button");
14
13
  const input_1 = require("./input");
15
14
  const textarea_1 = require("./textarea");
16
- function InputGroup({ className, ...props }) {
17
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "input-group", role: "group", className: (0, utils_1.cn)('twa:group/input-group twa:relative twa:flex twa:h-input twa:w-full twa:min-w-0 twa:items-center twa:rounded-input twa:border twa:border-input twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:in-data-[slot=combobox-content]:focus-within:border-inherit twa:in-data-[slot=combobox-content]:focus-within:ring-0 twa:has-[[data-slot=input-group-control]:focus-visible]:border-ring twa:has-[[data-slot=input-group-control]:focus-visible]:ring-3 twa:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 twa:has-[[data-slot][aria-invalid=true]]:border-destructive twa:has-[[data-slot][aria-invalid=true]]:ring-3 twa:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 twa:has-[>[data-align=block-end]]:h-auto twa:has-[>[data-align=block-end]]:flex-col twa:has-[>[data-align=block-start]]:h-auto twa:has-[>[data-align=block-start]]:flex-col twa:has-[>textarea]:h-auto twa:dark:bg-input/30 twa:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 twa:has-[>[data-align=block-end]]:[&>input]:pt-3 twa:has-[>[data-align=block-start]]:[&>input]:pb-3 twa:has-[>[data-align=inline-end]]:[&>input]:pr-1.5 twa:has-[>[data-align=inline-start]]:[&>input]:pl-1.5', className), ...props }));
18
- }
15
+ const InputGroup = React.forwardRef(function InputGroup({ className, ...props }, ref) {
16
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, "data-slot": "input-group", role: "group", className: (0, utils_1.cn)('twa:group/input-group twa:relative twa:flex twa:h-input twa:w-full twa:min-w-0 twa:items-center twa:rounded-input twa:border twa:border-input twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:in-data-[slot=combobox-content]:focus-within:border-inherit twa:in-data-[slot=combobox-content]:focus-within:ring-0 twa:has-[[data-slot=input-group-control]:focus-visible]:border-ring twa:has-[[data-slot=input-group-control]:focus-visible]:ring-3 twa:has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 twa:has-[[data-slot][aria-invalid=true]]:border-destructive twa:has-[[data-slot][aria-invalid=true]]:ring-3 twa:has-[[data-slot][aria-invalid=true]]:ring-destructive/20 twa:has-[>[data-align=block-end]]:h-auto twa:has-[>[data-align=block-end]]:flex-col twa:has-[>[data-align=block-start]]:h-auto twa:has-[>[data-align=block-start]]:flex-col twa:has-[>textarea]:h-auto twa:dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 twa:has-[>[data-align=block-end]]:[&>input]:pt-3 twa:has-[>[data-align=block-start]]:[&>input]:pb-3 twa:has-[>[data-align=inline-end]]:[&>input]:pr-1.5 twa:has-[>[data-align=inline-start]]:[&>input]:pl-1.5', className), ...props }));
17
+ });
18
+ exports.InputGroup = InputGroup;
19
19
  const inputGroupAddonVariants = (0, class_variance_authority_1.cva)('twa:flex twa:h-auto twa:cursor-text twa:items-center twa:justify-center twa:gap-2 twa:py-1.5 twa:text-sm twa:font-medium twa:text-muted-foreground twa:select-none twa:group-data-[disabled=true]/input-group:opacity-50 twa:[&>kbd]:rounded-[calc(var(--ab-border-radius))] twa:[&>svg:not([class*=size-])]:size-4', {
20
20
  variants: {
21
21
  align: {
@@ -50,15 +50,18 @@ const inputGroupButtonVariants = (0, class_variance_authority_1.cva)('twa:flex t
50
50
  size: 'xs',
51
51
  },
52
52
  });
53
- function InputGroupButton({ className, type = 'button', variant = 'ghost', size = 'xs', ...props }) {
54
- return ((0, jsx_runtime_1.jsx)(button_1.Button, { type: type, "data-size": size, variant: variant, className: (0, utils_1.cn)(inputGroupButtonVariants({ size }), className), ...props }));
55
- }
53
+ const InputGroupButton = React.forwardRef(function InputGroupButton({ className, type = 'button', variant = 'ghost', size = 'xs', ...props }, ref) {
54
+ return ((0, jsx_runtime_1.jsx)(button_1.Button, { type: type, "data-size": size, variant: variant, className: (0, utils_1.cn)(inputGroupButtonVariants({ size }), className), ref: ref, ...props }));
55
+ });
56
+ exports.InputGroupButton = InputGroupButton;
56
57
  function InputGroupText({ className, ...props }) {
57
58
  return ((0, jsx_runtime_1.jsx)("span", { className: (0, utils_1.cn)('twa:flex twa:items-center twa:gap-2 twa:text-sm twa:text-muted-foreground twa:[&_svg]:pointer-events-none twa:[&_svg:not([class*=size-])]:size-4', className), ...props }));
58
59
  }
59
- function InputGroupInput({ className, ...props }) {
60
- return ((0, jsx_runtime_1.jsx)(input_1.Input, { "data-slot": "input-group-control", className: (0, utils_1.cn)('twa:flex-1 twa:rounded-none twa:border-0 twa:bg-transparent twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ...props }));
61
- }
62
- function InputGroupTextarea({ className, ...props }) {
63
- return ((0, jsx_runtime_1.jsx)(textarea_1.Textarea, { "data-slot": "input-group-control", className: (0, utils_1.cn)('twa:flex-1 twa:resize-none twa:rounded-none twa:border-0 twa:bg-transparent twa:py-2 twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ...props }));
64
- }
60
+ const InputGroupInput = React.forwardRef(function InputGroupInput({ className, ...props }, ref) {
61
+ return ((0, jsx_runtime_1.jsx)(input_1.Input, { "data-slot": "input-group-control", className: (0, utils_1.cn)('twa:flex-1 twa:rounded-none twa:border-0 twa:bg-transparent twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ref: ref, ...props }));
62
+ });
63
+ exports.InputGroupInput = InputGroupInput;
64
+ const InputGroupTextarea = React.forwardRef(function InputGroupTextarea({ className, ...props }, ref) {
65
+ return ((0, jsx_runtime_1.jsx)(textarea_1.Textarea, { "data-slot": "input-group-control", className: (0, utils_1.cn)('twa:flex-1 twa:resize-none twa:rounded-none twa:border-0 twa:bg-transparent twa:py-2 twa:shadow-none twa:ring-0 twa:focus-visible:ring-0 twa:aria-invalid:ring-0 twa:dark:bg-transparent', className), ...props, ref: ref }));
66
+ });
67
+ exports.InputGroupTextarea = InputGroupTextarea;
@@ -1,3 +1,3 @@
1
- import * as React from "react";
2
- declare function Input({ className, type, ...props }: React.ComponentProps<"input">): React.JSX.Element;
1
+ import * as React from 'react';
2
+ declare const Input: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
3
3
  export { Input };
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Input = Input;
3
+ exports.Input = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const React = tslib_1.__importStar(require("react"));
5
7
  const input_1 = require("@base-ui/react/input");
6
8
  const utils_1 = require("../../lib/utils");
7
- function Input({ className, type, ...props }) {
8
- return ((0, jsx_runtime_1.jsx)(input_1.Input, { type: type, "data-slot": "input", className: (0, utils_1.cn)("twa:h-9 twa:w-full twa:min-w-0 twa:rounded-md twa:border twa:border-input twa:bg-transparent twa:px-2.5 twa:py-1 twa:text-base twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:file:inline-flex twa:file:h-7 twa:file:border-0 twa:file:bg-transparent twa:file:text-sm twa:file:font-medium twa:file:text-foreground twa:placeholder:text-muted-foreground twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:pointer-events-none twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:md:text-sm twa:dark:bg-input/30 twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40", className), ...props }));
9
- }
9
+ const Input = React.forwardRef(function Input({ className, type, ...props }, ref) {
10
+ return ((0, jsx_runtime_1.jsx)(input_1.Input, { ref: ref, type: type, "data-slot": "input", className: (0, utils_1.cn)('twa:h-9 twa:w-full twa:min-w-0 twa:rounded-md twa:border twa:border-input twa:bg-transparent twa:px-2.5 twa:py-1 twa:text-base twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:file:inline-flex twa:file:h-7 twa:file:border-0 twa:file:bg-transparent twa:file:text-sm twa:file:font-medium twa:file:text-foreground twa:placeholder:text-muted-foreground twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:pointer-events-none twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:md:text-sm twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40', className), ...props }));
11
+ });
12
+ exports.Input = Input;
@@ -1,9 +1,9 @@
1
- import * as React from "react";
2
- import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
1
+ import * as React from 'react';
2
+ import { Popover as PopoverPrimitive } from '@base-ui/react/popover';
3
3
  declare function Popover({ ...props }: PopoverPrimitive.Root.Props): React.JSX.Element;
4
4
  declare function PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props): React.JSX.Element;
5
- declare function PopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): React.JSX.Element;
6
- declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
5
+ declare function PopoverContent({ className, align, alignOffset, side, sideOffset, ...props }: PopoverPrimitive.Popup.Props & Pick<PopoverPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): React.JSX.Element;
6
+ declare function PopoverHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
7
7
  declare function PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props): React.JSX.Element;
8
8
  declare function PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props): React.JSX.Element;
9
- export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, };
9
+ export { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger };
@@ -15,15 +15,15 @@ function Popover({ ...props }) {
15
15
  function PopoverTrigger({ ...props }) {
16
16
  return (0, jsx_runtime_1.jsx)(popover_1.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
17
17
  }
18
- function PopoverContent({ className, align = "center", alignOffset = 0, side = "bottom", sideOffset = 4, ...props }) {
19
- return ((0, jsx_runtime_1.jsx)(popover_1.Popover.Portal, { children: (0, jsx_runtime_1.jsx)(popover_1.Popover.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${utils_1.POPUP_Z_INDEX}`, children: (0, jsx_runtime_1.jsx)(popover_1.Popover.Popup, { "data-slot": "popover-content", className: (0, utils_1.cn)("twa:flex twa:w-72 twa:origin-(--transform-origin) twa:flex-col twa:gap-4 twa:rounded-md twa:bg-popover twa:p-4 twa:text-sm twa:text-popover-foreground twa:shadow-md twa:ring-1 twa:ring-foreground/10 twa:outline-hidden twa:duration-100 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95", className), ...props }) }) }));
18
+ function PopoverContent({ className, align = 'center', alignOffset = 0, side = 'bottom', sideOffset = 4, ...props }) {
19
+ return ((0, jsx_runtime_1.jsx)(popover_1.Popover.Portal, { children: (0, jsx_runtime_1.jsx)(popover_1.Popover.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${utils_1.POPUP_Z_INDEX}`, children: (0, jsx_runtime_1.jsx)(popover_1.Popover.Popup, { "data-slot": "popover-content", className: (0, utils_1.cn)('twa:flex twa:w-72 twa:origin-(--transform-origin) twa:flex-col twa:gap-4 twa:rounded-standard twa:bg-popover twa:p-4 twa:text-sm twa:text-popover-foreground twa:shadow-md twa:ring-1 twa:ring-foreground/10 twa:outline-hidden twa:duration-100 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', className), ...props }) }) }));
20
20
  }
21
21
  function PopoverHeader({ className, ...props }) {
22
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "popover-header", className: (0, utils_1.cn)("twa:flex twa:flex-col twa:gap-1 twa:text-sm", className), ...props }));
22
+ return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "popover-header", className: (0, utils_1.cn)('twa:flex twa:flex-col twa:gap-1 twa:text-sm', className), ...props }));
23
23
  }
24
24
  function PopoverTitle({ className, ...props }) {
25
- return ((0, jsx_runtime_1.jsx)(popover_1.Popover.Title, { "data-slot": "popover-title", className: (0, utils_1.cn)("twa: twa:font-medium", className), ...props }));
25
+ return ((0, jsx_runtime_1.jsx)(popover_1.Popover.Title, { "data-slot": "popover-title", className: (0, utils_1.cn)('twa: twa:font-medium', className), ...props }));
26
26
  }
27
27
  function PopoverDescription({ className, ...props }) {
28
- return ((0, jsx_runtime_1.jsx)(popover_1.Popover.Description, { "data-slot": "popover-description", className: (0, utils_1.cn)("twa:text-muted-foreground", className), ...props }));
28
+ return ((0, jsx_runtime_1.jsx)(popover_1.Popover.Description, { "data-slot": "popover-description", className: (0, utils_1.cn)('twa:text-muted-foreground', className), ...props }));
29
29
  }
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { Select as SelectPrimitive } from '@base-ui/react/select';
3
3
  declare const Select: typeof SelectPrimitive.Root;
4
- declare function SelectGroup({ className, ...props }: SelectPrimitive.Group.Props): React.JSX.Element;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
5
  declare function SelectValue({ className, ...props }: SelectPrimitive.Value.Props): React.JSX.Element;
6
- declare function SelectTrigger({ className, size, children, ...props }: SelectPrimitive.Trigger.Props & {
7
- size?: 'sm' | 'default';
6
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectTriggerProps & {
7
+ size?: "sm" | "default";
8
8
  'data-name'?: string;
9
- }): React.JSX.Element;
9
+ icon?: React.ReactNode;
10
+ }, "ref"> & React.RefAttributes<HTMLButtonElement>>;
10
11
  declare function SelectContent({ className, children, side, sideOffset, align, alignOffset, alignItemWithTrigger, container, stopMouseDownPropagation, ...props }: SelectPrimitive.Popup.Props & Pick<SelectPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset' | 'alignItemWithTrigger'> & {
11
12
  /** Portal mount node (e.g. popover body) so nested floating UI stays “inside” the parent surface. */
12
13
  container?: React.ComponentProps<typeof SelectPrimitive.Portal>['container'];
@@ -18,8 +19,8 @@ declare function SelectContent({ className, children, side, sideOffset, align, a
18
19
  */
19
20
  stopMouseDownPropagation?: boolean;
20
21
  }): React.JSX.Element;
21
- declare function SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props): React.JSX.Element;
22
- declare function SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props): React.JSX.Element;
22
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
23
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/select").SelectItemProps, "ref"> & React.RefAttributes<HTMLElement>>;
23
24
  declare function SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props): React.JSX.Element;
24
25
  declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>): React.JSX.Element;
25
26
  declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>): React.JSX.Element;
@@ -1,30 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Select = void 0;
3
+ exports.SelectTrigger = exports.SelectLabel = exports.SelectItem = exports.SelectGroup = exports.Select = void 0;
4
4
  exports.SelectContent = SelectContent;
5
- exports.SelectGroup = SelectGroup;
6
- exports.SelectItem = SelectItem;
7
- exports.SelectLabel = SelectLabel;
8
5
  exports.SelectScrollDownButton = SelectScrollDownButton;
9
6
  exports.SelectScrollUpButton = SelectScrollUpButton;
10
7
  exports.SelectSeparator = SelectSeparator;
11
- exports.SelectTrigger = SelectTrigger;
12
8
  exports.SelectValue = SelectValue;
9
+ const tslib_1 = require("tslib");
13
10
  const jsx_runtime_1 = require("react/jsx-runtime");
11
+ const React = tslib_1.__importStar(require("react"));
14
12
  const select_1 = require("@base-ui/react/select");
15
13
  const utils_1 = require("../../lib/utils");
16
14
  const lucide_react_1 = require("lucide-react");
17
15
  const Select = select_1.Select.Root;
18
16
  exports.Select = Select;
19
- function SelectGroup({ className, ...props }) {
20
- return ((0, jsx_runtime_1.jsx)(select_1.Select.Group, { "data-slot": "select-group", className: (0, utils_1.cn)('twa:scroll-my-1 twa:p-1', className), ...props }));
21
- }
17
+ const SelectGroup = React.forwardRef(function SelectGroup({ className, ...props }, ref) {
18
+ return ((0, jsx_runtime_1.jsx)(select_1.Select.Group, { "data-slot": "select-group", className: (0, utils_1.cn)('twa:scroll-my-1 twa:p-1', className), ref: ref, ...props }));
19
+ });
20
+ exports.SelectGroup = SelectGroup;
22
21
  function SelectValue({ className, ...props }) {
23
22
  return ((0, jsx_runtime_1.jsx)(select_1.Select.Value, { "data-slot": "select-value", className: (0, utils_1.cn)('twa:text-input-foreground twa:flex twa:flex-1 twa:text-left', className), ...props }));
24
23
  }
25
- function SelectTrigger({ className, size = 'default', children, ...props }) {
26
- return ((0, jsx_runtime_1.jsxs)(select_1.Select.Trigger, { "data-slot": "select-trigger", "data-size": size, className: (0, utils_1.cn)('twa:flex twa:w-fit twa:items-center twa:justify-between twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:py-1.5 twa:pr-2 twa:pl-2.5 twa:text-sm twa:whitespace-nowrap twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:data-placeholder:text-muted-foreground twa:data-[size=default]:min-h-input twa:data-[size=sm]:h-7 twa:data-[size=sm]:min-h-auto twa:*:data-[slot=select-value]:line-clamp-1 twa:*:data-[slot=select-value]:flex twa:*:data-[slot=select-value]:items-center twa:*:data-[slot=select-value]:gap-1.5 twa:bg-input-background twa:hover:bg-input-background/80 twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', className), ...props, "data-name": props['data-name'], children: [children, (0, jsx_runtime_1.jsx)(select_1.Select.Icon, { render: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" }) })] }));
27
- }
24
+ const SelectTrigger = React.forwardRef(function SelectTrigger({ className, size = 'default', children, icon, ...props }, ref) {
25
+ return ((0, jsx_runtime_1.jsxs)(select_1.Select.Trigger, { ref: ref, "data-slot": "select-trigger", "data-size": size, className: (0, utils_1.cn)('twa:flex twa:w-fit twa:items-center twa:justify-between twa:gap-1.5 twa:rounded-input twa:border twa:border-input twa:py-1.5 twa:pr-2 twa:pl-2.5 twa:text-sm twa:whitespace-nowrap twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:data-placeholder:text-muted-foreground twa:data-[size=default]:min-h-input twa:data-[size=sm]:h-7 twa:data-[size=sm]:min-h-auto twa:*:data-[slot=select-value]:line-clamp-1 twa:*:data-[slot=select-value]:flex twa:*:data-[slot=select-value]:items-center twa:*:data-[slot=select-value]:gap-1.5 twa:bg-input-background twa:hover:bg-input-background/80 twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4', className), ...props, "data-name": props['data-name'], children: [children, icon !== undefined ? (icon) : ((0, jsx_runtime_1.jsx)(select_1.Select.Icon, { render: (0, jsx_runtime_1.jsx)(lucide_react_1.ChevronDownIcon, { className: "twa:pointer-events-none twa:size-4 twa:text-muted-foreground" }) }))] }));
26
+ });
27
+ exports.SelectTrigger = SelectTrigger;
28
28
  function SelectContent({ className, children, side = 'bottom', sideOffset = 4, align = 'center', alignOffset = 0, alignItemWithTrigger = true, container, stopMouseDownPropagation = false, ...props }) {
29
29
  const onMouseDown = stopMouseDownPropagation
30
30
  ? (e) => {
@@ -33,12 +33,14 @@ function SelectContent({ className, children, side = 'bottom', sideOffset = 4, a
33
33
  : undefined;
34
34
  return ((0, jsx_runtime_1.jsx)(select_1.Select.Portal, { container: container, children: (0, jsx_runtime_1.jsx)(select_1.Select.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, alignItemWithTrigger: alignItemWithTrigger, className: `twa:isolate ${utils_1.POPUP_Z_INDEX}`, children: (0, jsx_runtime_1.jsxs)(select_1.Select.Popup, { "data-slot": "select-content", "data-align-trigger": alignItemWithTrigger, onMouseDown: onMouseDown, className: (0, utils_1.cn)('twa:relative twa:isolate twa:z-50 twa:max-h-(--available-height) twa:min-w-36 twa:origin-(--transform-origin) twa:overflow-x-hidden twa:overflow-y-auto twa:rounded-input twa:bg-popover twa:text-popover-foreground twa:shadow-md twa:ring-1 twa:ring-foreground/10 twa:duration-100 twa:data-[align-trigger=true]:animate-none twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', 'twa:w-(--anchor-width)', 'twa:max-w-[min(var(--available-width),80vw)]', className), ...props, children: [(0, jsx_runtime_1.jsx)(SelectScrollUpButton, {}), (0, jsx_runtime_1.jsx)(select_1.Select.List, { children: children }), (0, jsx_runtime_1.jsx)(SelectScrollDownButton, {})] }) }) }));
35
35
  }
36
- function SelectLabel({ className, ...props }) {
37
- return ((0, jsx_runtime_1.jsx)(select_1.Select.GroupLabel, { "data-slot": "select-label", className: (0, utils_1.cn)('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ...props }));
38
- }
39
- function SelectItem({ className, children, ...props }) {
40
- return ((0, jsx_runtime_1.jsxs)(select_1.Select.Item, { className: (0, utils_1.cn)('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pr-8 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:focus:bg-accent twa:focus:text-accent-foreground twa:not-data-[variant=destructive]:focus:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4 twa:*:[span]:last:flex twa:*:[span]:last:items-center twa:*:[span]:last:gap-2', className), ...props, "data-slot": "select-item", children: [(0, jsx_runtime_1.jsx)(select_1.Select.ItemText, { className: "twa:block twa:min-w-0 twa:flex-1 twa:truncate", children: children }), (0, jsx_runtime_1.jsx)(select_1.Select.ItemIndicator, { render: (0, jsx_runtime_1.jsx)("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: (0, jsx_runtime_1.jsx)(lucide_react_1.CheckIcon, { className: "twa:pointer-events-none" }) })] }));
41
- }
36
+ const SelectLabel = React.forwardRef(function SelectLabel({ className, ...props }, ref) {
37
+ return ((0, jsx_runtime_1.jsx)(select_1.Select.GroupLabel, { "data-slot": "select-label", className: (0, utils_1.cn)('twa:px-2 twa:py-1.5 twa:text-xs twa:text-muted-foreground', className), ref: ref, ...props }));
38
+ });
39
+ exports.SelectLabel = SelectLabel;
40
+ const SelectItem = React.forwardRef(function SelectItem({ className, children, ...props }, ref) {
41
+ return ((0, jsx_runtime_1.jsxs)(select_1.Select.Item, { ref: ref, className: (0, utils_1.cn)('twa:relative twa:flex twa:w-full twa:cursor-default twa:items-center twa:gap-2 twa:rounded-input twa:py-1.5 twa:pr-8 twa:pl-2 twa:text-sm twa:outline-hidden twa:select-none twa:focus:bg-accent twa:focus:text-accent-foreground twa:not-data-[variant=destructive]:focus:**:text-accent-foreground twa:data-disabled:pointer-events-none twa:data-disabled:opacity-50 twa:[&_svg]:pointer-events-none twa:[&_svg]:shrink-0 twa:[&_svg:not([class*=size-])]:size-4 twa:*:[span]:last:flex twa:*:[span]:last:items-center twa:*:[span]:last:gap-2', className), ...props, "data-slot": "select-item", children: [(0, jsx_runtime_1.jsx)(select_1.Select.ItemText, { className: "twa:block twa:min-w-0 twa:flex-1 twa:truncate", children: children }), (0, jsx_runtime_1.jsx)(select_1.Select.ItemIndicator, { render: (0, jsx_runtime_1.jsx)("span", { className: "twa:pointer-events-none twa:absolute twa:right-2 twa:flex twa:size-4 twa:items-center twa:justify-center" }), children: (0, jsx_runtime_1.jsx)(lucide_react_1.CheckIcon, { className: "twa:pointer-events-none" }) })] }));
42
+ });
43
+ exports.SelectItem = SelectItem;
42
44
  function SelectSeparator({ className, ...props }) {
43
45
  return ((0, jsx_runtime_1.jsx)(select_1.Select.Separator, { "data-slot": "select-separator", className: (0, utils_1.cn)('twa:pointer-events-none twa:-mx-1 twa:my-1 twa:h-px twa:bg-border', className), ...props }));
44
46
  }
@@ -1,3 +1,3 @@
1
- import * as React from "react";
2
- declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): React.JSX.Element;
1
+ import * as React from 'react';
2
+ declare const Textarea: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, "ref"> & React.RefAttributes<HTMLTextAreaElement>>;
3
3
  export { Textarea };
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Textarea = Textarea;
3
+ exports.Textarea = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const React = tslib_1.__importStar(require("react"));
5
7
  const utils_1 = require("../../lib/utils");
6
- function Textarea({ className, ...props }) {
7
- return ((0, jsx_runtime_1.jsx)("textarea", { "data-slot": "textarea", className: (0, utils_1.cn)("twa:flex twa:field-sizing-content twa:min-h-16 twa:w-full twa:rounded-md twa:border twa:border-input twa:bg-transparent twa:px-2.5 twa:py-2 twa:text-base twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:placeholder:text-muted-foreground twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:md:text-sm twa:dark:bg-input/30 twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40", className), ...props }));
8
- }
8
+ const Textarea = React.forwardRef(function Textarea({ className, ...props }, ref) {
9
+ return ((0, jsx_runtime_1.jsx)("textarea", { "data-slot": "textarea", className: (0, utils_1.cn)('twa:flex twa:field-sizing-content twa:min-h-16 twa:w-full twa:rounded-md twa:border twa:border-input twa:bg-transparent twa:px-2.5 twa:py-2 twa:text-base twa:shadow-xs twa:transition-[color,box-shadow] twa:outline-none twa:placeholder:text-muted-foreground twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:disabled:cursor-not-allowed twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 twa:md:text-sm twa:dark:aria-invalid:border-destructive/50 twa:dark:aria-invalid:ring-destructive/40', className), ref: ref, ...props }));
10
+ });
11
+ exports.Textarea = Textarea;
@@ -1,6 +1,7 @@
1
- import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
2
- declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react").JSX.Element;
3
- declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): import("react").JSX.Element;
4
- declare function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props): import("react").JSX.Element;
5
- declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): import("react").JSX.Element;
1
+ import * as React from 'react';
2
+ import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
3
+ declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): React.JSX.Element;
4
+ declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): React.JSX.Element;
5
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.Trigger.Props<unknown>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
6
+ declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): React.JSX.Element;
6
7
  export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -1,21 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TooltipTrigger = void 0;
3
4
  exports.Tooltip = Tooltip;
4
- exports.TooltipTrigger = TooltipTrigger;
5
5
  exports.TooltipContent = TooltipContent;
6
6
  exports.TooltipProvider = TooltipProvider;
7
+ const tslib_1 = require("tslib");
7
8
  const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const React = tslib_1.__importStar(require("react"));
8
10
  const tooltip_1 = require("@base-ui/react/tooltip");
9
11
  const utils_1 = require("../../lib/utils");
10
12
  function TooltipProvider({ delay = 0, ...props }) {
11
- return ((0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Provider, { "data-slot": "tooltip-provider", delay: delay, ...props }));
13
+ return (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Provider, { "data-slot": "tooltip-provider", delay: delay, ...props });
12
14
  }
13
15
  function Tooltip({ ...props }) {
14
16
  return (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Root, { "data-slot": "tooltip", ...props });
15
17
  }
16
- function TooltipTrigger({ ...props }) {
17
- return (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
18
- }
19
- function TooltipContent({ className, side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) {
20
- return ((0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Portal, { children: (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${utils_1.POPUP_Z_INDEX}`, children: (0, jsx_runtime_1.jsxs)(tooltip_1.Tooltip.Popup, { "data-slot": "tooltip-content", className: (0, utils_1.cn)("twa:z-50 twa:inline-flex twa:w-fit twa:max-w-xs twa:origin-(--transform-origin) twa:items-center twa:gap-1.5 twa:rounded-md twa:bg-foreground twa:px-3 twa:py-1.5 twa:text-xs twa:text-background twa:has-data-[slot=kbd]:pr-1.5 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:**:data-[slot=kbd]:relative twa:**:data-[slot=kbd]:isolate twa:**:data-[slot=kbd]:z-50 twa:**:data-[slot=kbd]:rounded-sm twa:data-[state=delayed-open]:animate-in twa:data-[state=delayed-open]:fade-in-0 twa:data-[state=delayed-open]:zoom-in-95 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95", className), ...props, children: [children, (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Arrow, { className: "twa:z-50 twa:size-2.5 twa:translate-y-[calc(-50%-2px)] twa:rotate-45 twa:rounded-[2px] twa:bg-foreground twa:fill-foreground twa:data-[side=bottom]:top-1 twa:data-[side=inline-end]:top-1/2! twa:data-[side=inline-end]:-left-1 twa:data-[side=inline-end]:-translate-y-1/2 twa:data-[side=inline-start]:top-1/2! twa:data-[side=inline-start]:-right-1 twa:data-[side=inline-start]:-translate-y-1/2 twa:data-[side=left]:top-1/2! twa:data-[side=left]:-right-1 twa:data-[side=left]:-translate-y-1/2 twa:data-[side=right]:top-1/2! twa:data-[side=right]:-left-1 twa:data-[side=right]:-translate-y-1/2 twa:data-[side=top]:-bottom-2.5" })] }) }) }));
18
+ const TooltipTrigger = React.forwardRef(function TooltipTrigger({ ...props }, ref) {
19
+ return (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ref: ref, ...props });
20
+ });
21
+ exports.TooltipTrigger = TooltipTrigger;
22
+ function TooltipContent({ className, side = 'top', sideOffset = 4, align = 'center', alignOffset = 0, children, ...props }) {
23
+ return ((0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Portal, { children: (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Positioner, { align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, className: `twa:isolate ${utils_1.POPUP_Z_INDEX}`, children: (0, jsx_runtime_1.jsxs)(tooltip_1.Tooltip.Popup, { "data-slot": "tooltip-content", className: (0, utils_1.cn)('twa:z-50 twa:inline-flex twa:w-fit twa:max-w-xs twa:origin-(--transform-origin) twa:items-center twa:gap-1.5 twa:rounded-md twa:bg-foreground twa:px-3 twa:py-1.5 twa:text-xs twa:text-background twa:has-data-[slot=kbd]:pr-1.5 twa:data-[side=bottom]:slide-in-from-top-2 twa:data-[side=inline-end]:slide-in-from-left-2 twa:data-[side=inline-start]:slide-in-from-right-2 twa:data-[side=left]:slide-in-from-right-2 twa:data-[side=right]:slide-in-from-left-2 twa:data-[side=top]:slide-in-from-bottom-2 twa:**:data-[slot=kbd]:relative twa:**:data-[slot=kbd]:isolate twa:**:data-[slot=kbd]:z-50 twa:**:data-[slot=kbd]:rounded-sm twa:data-[state=delayed-open]:animate-in twa:data-[state=delayed-open]:fade-in-0 twa:data-[state=delayed-open]:zoom-in-95 twa:data-open:animate-in twa:data-open:fade-in-0 twa:data-open:zoom-in-95 twa:data-closed:animate-out twa:data-closed:fade-out-0 twa:data-closed:zoom-out-95', className), ...props, children: [children, (0, jsx_runtime_1.jsx)(tooltip_1.Tooltip.Arrow, { className: "twa:z-50 twa:size-2.5 twa:translate-y-[calc(-50%-2px)] twa:rotate-45 twa:rounded-[2px] twa:bg-foreground twa:fill-foreground twa:data-[side=bottom]:top-1 twa:data-[side=inline-end]:top-1/2! twa:data-[side=inline-end]:-left-1 twa:data-[side=inline-end]:-translate-y-1/2 twa:data-[side=inline-start]:top-1/2! twa:data-[side=inline-start]:-right-1 twa:data-[side=inline-start]:-translate-y-1/2 twa:data-[side=left]:top-1/2! twa:data-[side=left]:-right-1 twa:data-[side=left]:-translate-y-1/2 twa:data-[side=right]:top-1/2! twa:data-[side=right]:-left-1 twa:data-[side=right]:-translate-y-1/2 twa:data-[side=top]:-bottom-2.5" })] }) }) }));
21
24
  }
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
5
- PUBLISH_TIMESTAMP: 1780401819925 || Date.now(),
6
- VERSION: "23.0.0-canary.1" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1780656149577 || Date.now(),
6
+ VERSION: "23.0.0-canary.3" || '--current-version--',
7
7
  };
@@ -1,4 +1,4 @@
1
- import { ColumnSizingMap, LayoutRowSelection } from '../../AdaptableState/LayoutState';
1
+ import { ColumnSizingMap, LayoutRowSelection, RowGroupDisplayType } from '../../AdaptableState/LayoutState';
2
2
  import { XOR } from '../../Utilities/Extensions/TypeExtensions';
3
3
  /**
4
4
  * Defines how a Column is sorted
@@ -17,7 +17,7 @@ export interface BaseLayoutModel {
17
17
  /**
18
18
  * @defaultValue 'single'
19
19
  */
20
- RowGroupDisplayType?: 'single' | 'multi';
20
+ RowGroupDisplayType?: RowGroupDisplayType;
21
21
  /**
22
22
  * Those are not actually used by the LayoutManager,
23
23
  * but we need to keep them here so we can give the layout
@@ -5,6 +5,7 @@ const infinite_react_1 = require("@infinite-table/infinite-react");
5
5
  const isPivotLayoutModel_1 = require("./isPivotLayoutModel");
6
6
  const LMEmitter_1 = require("./LMEmitter");
7
7
  const normalizeLayoutModel_1 = require("./normalizeLayoutModel");
8
+ const rowGroupDisplayType_1 = require("./rowGroupDisplayType");
8
9
  const isLayoutEqual_1 = require("./isLayoutEqual");
9
10
  const simplifyLayoutModel_1 = require("./simplifyLayoutModel");
10
11
  const sortColumnIdsByOrder_1 = require("./sortColumnIdsByOrder");
@@ -555,7 +556,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
555
556
  if (groupDisplayType === 'singleColumn') {
556
557
  colsInLayout.add(normalizeLayoutModel_1.AUTO_GROUP_COLUMN_ID__SINGLE);
557
558
  }
558
- else {
559
+ else if (groupDisplayType === 'multipleColumns') {
559
560
  this.currentLayout.RowGroupedColumns.forEach((colId) => {
560
561
  colsInLayout.add(`${normalizeLayoutModel_1.AUTO_GROUP_COLUMN_ID__MULTI_PREFIX}${colId}`);
561
562
  });
@@ -763,7 +764,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
763
764
  ColumnGroupValues,
764
765
  GrandTotalRow: this.gridApi.getGridOption('grandTotalRow'),
765
766
  SuppressAggFuncInHeader: this.gridApi.getGridOption('suppressAggFuncInHeader'),
766
- RowGroupDisplayType: this.gridApi.getGridOption('groupDisplayType') === 'multipleColumns' ? 'multi' : 'single',
767
+ RowGroupDisplayType: (0, rowGroupDisplayType_1.gridOptionToRowGroupDisplayType)(this.gridApi.getGridOption('groupDisplayType')),
767
768
  RowSelection: this.getRowSelectionFromGrid(),
768
769
  });
769
770
  return layout;
@@ -1317,7 +1318,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
1317
1318
  // this.gridApi.applyColumnState(state);
1318
1319
  const hasGroupedColumns = layout.RowGroupedColumns && layout.RowGroupedColumns.length;
1319
1320
  if (hasGroupedColumns) {
1320
- const displayTypeFromLayout = layout.RowGroupDisplayType === 'multi' ? 'multipleColumns' : 'singleColumn';
1321
+ const displayTypeFromLayout = (0, rowGroupDisplayType_1.rowGroupDisplayTypeToGridOption)(layout.RowGroupDisplayType);
1321
1322
  const groupDisplayType = this.gridApi.getGridOption('groupDisplayType');
1322
1323
  if (groupDisplayType !== displayTypeFromLayout) {
1323
1324
  this.gridApi.setGridOption('groupDisplayType', displayTypeFromLayout);
@@ -1680,7 +1681,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
1680
1681
  this.applyPivotTotals(layout);
1681
1682
  const hasGroupedColumns = layout.PivotGroupedColumns && !!layout.PivotGroupedColumns.length;
1682
1683
  if (hasGroupedColumns) {
1683
- const displayTypeFromLayout = layout.RowGroupDisplayType === 'multi' ? 'multipleColumns' : 'singleColumn';
1684
+ const displayTypeFromLayout = (0, rowGroupDisplayType_1.rowGroupDisplayTypeToGridOption)(layout.RowGroupDisplayType);
1684
1685
  const groupDisplayType = this.gridApi.getGridOption('groupDisplayType');
1685
1686
  if (groupDisplayType !== displayTypeFromLayout) {
1686
1687
  this.gridApi.setGridOption('groupDisplayType', displayTypeFromLayout);