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

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 (48) hide show
  1. package/index.css +26 -3
  2. package/package.json +1 -1
  3. package/src/AdaptableOptions/ColumnMenuOptions.d.ts +3 -3
  4. package/src/AdaptableOptions/ContextMenuOptions.d.ts +3 -3
  5. package/src/Strategy/ExportModule.js +13 -1
  6. package/src/View/Alert/Wizard/AlertNotificationWizardSection.js +1 -1
  7. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +1 -1
  8. package/src/View/Alert/Wizard/AlertWizard.js +2 -2
  9. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.d.ts +3 -1
  10. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +9 -2
  11. package/src/View/Components/ColumnFilter/ColumnFilter.d.ts +2 -1
  12. package/src/View/Components/ColumnFilter/ColumnFilter.js +3 -2
  13. package/src/View/Components/ColumnFilter/columnFilterLocation.d.ts +2 -0
  14. package/src/View/Components/ColumnFilter/columnFilterLocation.js +5 -0
  15. package/src/View/Components/FilterForm/ListBoxFilterForm.js +2 -1
  16. package/src/View/Export/Wizard/ExportPopupWizardRouter.js +10 -1
  17. package/src/View/Export/Wizard/ScheduledReportSettings.d.ts +3 -1
  18. package/src/View/Export/Wizard/ScheduledReportSettings.js +8 -1
  19. package/src/View/Export/Wizard/ScheduledReportWizard.js +8 -3
  20. package/src/View/Export/Wizard/isReportScheduledSettingsValid.d.ts +1 -1
  21. package/src/View/Export/Wizard/isReportScheduledSettingsValid.js +3 -0
  22. package/src/View/Layout/Wizard/LayoutWizard.js +7 -2
  23. package/src/View/renderWithAdaptableContext.js +1 -1
  24. package/src/agGrid/AdaptableFrameworkComponent.d.ts +25 -3
  25. package/src/agGrid/AgGridFilterAdapter.js +3 -1
  26. package/src/components/Combobox/index.js +1 -1
  27. package/src/components/Datepicker/index.js +4 -4
  28. package/src/components/NewDropdownButton/index.js +1 -1
  29. package/src/components/NewSelect/index.js +2 -2
  30. package/src/components/NewTooltip/index.js +1 -1
  31. package/src/components/ui/button.js +1 -1
  32. package/src/components/ui/calendar.d.ts +1 -1
  33. package/src/components/ui/calendar.js +2 -2
  34. package/src/components/ui/combobox.js +3 -3
  35. package/src/components/ui/dropdown-menu.js +1 -1
  36. package/src/components/ui/input-group.d.ts +1 -1
  37. package/src/components/ui/input-group.js +4 -4
  38. package/src/components/ui/input.js +1 -1
  39. package/src/components/ui/popover.js +1 -1
  40. package/src/components/ui/select.js +1 -1
  41. package/src/components/ui/textarea.js +1 -1
  42. package/src/components/ui/tooltip.js +1 -1
  43. package/src/env.js +2 -2
  44. package/src/metamodel/adaptable.metamodel.d.ts +12 -0
  45. package/src/metamodel/adaptable.metamodel.js +1 -1
  46. package/src/types.d.ts +1 -1
  47. package/themes/dark.css +10 -2
  48. package/tsconfig.cjs.tsbuildinfo +1 -1
package/index.css CHANGED
@@ -1443,6 +1443,14 @@
1443
1443
  border-bottom-color: color-mix(in oklab, var(--ab-color-foreground) 20%, transparent);
1444
1444
  }
1445
1445
  }
1446
+ .twa\:border-b-text-on-defaultbackground\/20 {
1447
+ border-bottom-color: var(--ab-color-text-on-defaultbackground);
1448
+ }
1449
+ @supports (color: color-mix(in lab, red, red)) {
1450
+ .twa\:border-b-text-on-defaultbackground\/20 {
1451
+ border-bottom-color: color-mix(in oklab, var(--ab-color-text-on-defaultbackground) 20%, transparent);
1452
+ }
1453
+ }
1446
1454
  .twa\:bg-\(--ab-cmp-input--disabled__background\) {
1447
1455
  background-color: var(--ab-cmp-input--disabled__background);
1448
1456
  }
@@ -1509,7 +1517,7 @@
1509
1517
  background-color: currentcolor;
1510
1518
  }
1511
1519
  .twa\:bg-defaultbackground {
1512
- background-color: var(--ab-color-background);
1520
+ background-color: var(--ab-color-defaultbackground);
1513
1521
  }
1514
1522
  .twa\:bg-destructive\/10 {
1515
1523
  background-color: var(--ab-color-destructive);
@@ -5497,8 +5505,8 @@
5497
5505
  --ab-focus__outline: none;
5498
5506
  --ab-color-background: var(--ab-color-defaultbackground, oklch(1 0 0));
5499
5507
  --ab-color-foreground: var(--ab-color-text-on-defaultbackground);
5500
- --ab-color-popover: var(--ab-color-background);
5501
- --ab-color-popover-foreground: var(--ab-color-foreground);
5508
+ --ab-color-popover: var(--ab-color-defaultbackground);
5509
+ --ab-color-popover-foreground: var(--ab-color-text-on-defaultbackground);
5502
5510
  --ab-color-secondary: oklch(0.97 0 0);
5503
5511
  --ab-color-secondary-foreground: oklch(0.205 0 0);
5504
5512
  --ab-color-muted: var(--ab-color-primarylight);
@@ -5704,6 +5712,10 @@
5704
5712
  --ab-cmp-tabs__padding: calc(var(--ab-base-space) * 2);
5705
5713
  --ab-cmp-tabs-strip__background: var(--ab-color-defaultbackground);
5706
5714
  --ab-cmp-tabs-active__background: var(--ab-color-primarylight);
5715
+ --ab-cmp-tabs__font-weight: 400;
5716
+ --ab-cmp-tabs__color: inherit;
5717
+ --ab-cmp-tabs-inactive__opacity: 0.72;
5718
+ --ab-cmp-tabs-inactive-separator__color: var(--ab-color-primarydark);
5707
5719
  }
5708
5720
  :root {
5709
5721
  --ab-cmp-panel_header__background: var(--ab-color-primary);
@@ -6392,18 +6404,29 @@
6392
6404
  z-index: 10;
6393
6405
  overflow: visible;
6394
6406
  }
6407
+ .ab-Tabs__Tab {
6408
+ font-weight: var(--ab-cmp-tabs__font-weight);
6409
+ color: var(--ab-cmp-tabs__color);
6410
+ }
6395
6411
  .ab-Tabs__Tab:focus:after {
6396
6412
  box-shadow: var(--ab-focus__box-shadow);
6397
6413
  }
6398
6414
  .ab-Tabs__Tab:focus {
6399
6415
  outline: none;
6400
6416
  }
6417
+ .ab-Tabs__Tab:not(.ab-Tabs__Tab--active) {
6418
+ opacity: var(--ab-cmp-tabs-inactive__opacity);
6419
+ }
6420
+ .ab-Tabs__Tab:not(.ab-Tabs__Tab--active) + .ab-Tabs__Tab:not(.ab-Tabs__Tab--active) {
6421
+ box-shadow: inset 1px 0 0 var(--ab-cmp-tabs-inactive-separator__color);
6422
+ }
6401
6423
  .ab-Tabs__Tab--active + .ab-Tabs__Filler, .ab-Tabs__Tab--active + .ab-Tabs__Tab {
6402
6424
  border-bottom-left-radius: var(--ab-border-radius);
6403
6425
  }
6404
6426
  .ab-Tabs__Tab--active {
6405
6427
  position: relative;
6406
6428
  z-index: 30;
6429
+ opacity: 1;
6407
6430
  }
6408
6431
  .ab-Tabs__Tab--active:after {
6409
6432
  content: '';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable-cjs",
3
- "version": "23.0.0-canary.0",
3
+ "version": "23.0.0-canary.1",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,6 +1,6 @@
1
1
  import { AdaptableColumnMenuItemName, AdaptableMenuItem, AgGridMenuItem, ColumnMenuContext, MenuSeparator } from '../AdaptableState/Common/Menu';
2
2
  import { AdaptableIcon } from '../types';
3
- import { AdaptableFrameworkComponent } from '../agGrid/AdaptableFrameworkComponent';
3
+ import { MenuItemFrameworkComponent } from '../agGrid/AdaptableFrameworkComponent';
4
4
  /**
5
5
  * Options for managing menus in AdapTable – provided using 2 collections
6
6
  */
@@ -115,12 +115,12 @@ export interface UserColumnMenuItem {
115
115
  * The `onSetup` callback on `AngularFrameworkComponent` is NOT honoured
116
116
  * for menu items because AG Grid owns the component lifecycle.
117
117
  */
118
- frameworkComponent?: AdaptableFrameworkComponent;
118
+ frameworkComponent?: MenuItemFrameworkComponent<ColumnMenuContext>;
119
119
  /**
120
120
  * Extra parameters passed through to the Framework Component (alongside
121
121
  * `adaptableApi` and `menuContext`).
122
122
  */
123
- menuItemParams?: any;
123
+ menuItemParams?: Record<string, unknown>;
124
124
  }
125
125
  /**
126
126
  * Defines AG Grid Column Menu Items
@@ -1,7 +1,7 @@
1
1
  import { MenuSeparator } from '@infinite-table/infinite-react';
2
2
  import { AdaptableContextMenuItemName, AdaptableMenuItem, AgGridMenuItem, ContextMenuContext } from '../AdaptableState/Common/Menu';
3
3
  import { AdaptableIcon } from '../types';
4
- import { AdaptableFrameworkComponent } from '../agGrid/AdaptableFrameworkComponent';
4
+ import { MenuItemFrameworkComponent } from '../agGrid/AdaptableFrameworkComponent';
5
5
  /**
6
6
  * Options for managing menus in AdapTable – provided using 2 collections
7
7
  */
@@ -110,12 +110,12 @@ export interface UserContextMenuItem {
110
110
  * The `onSetup` callback on `AngularFrameworkComponent` is NOT honoured
111
111
  * for menu items because AG Grid owns the component lifecycle.
112
112
  */
113
- frameworkComponent?: AdaptableFrameworkComponent;
113
+ frameworkComponent?: MenuItemFrameworkComponent<ContextMenuContext>;
114
114
  /**
115
115
  * Extra parameters passed through to the Framework Component (alongside
116
116
  * `adaptableApi` and `menuContext`).
117
117
  */
118
- menuItemParams?: any;
118
+ menuItemParams?: Record<string, unknown>;
119
119
  }
120
120
  /**
121
121
  * Defines AG Grid Context Menu Items
@@ -182,7 +182,19 @@ class ExportModule extends AdaptableModuleBase_1.AdaptableModuleBase {
182
182
  render: ExportSchedulesTab_1.ExportSchedulesTab,
183
183
  },
184
184
  ],
185
- newTooltipText: 'Create New Report',
185
+ abObjectTypes: [
186
+ {
187
+ name: 'Report',
188
+ label: 'New Report',
189
+ accessLevel: this.AccessLevel,
190
+ },
191
+ {
192
+ name: 'Schedule',
193
+ label: 'New Schedule',
194
+ accessLevel: this.AccessLevel,
195
+ },
196
+ ],
197
+ newTooltipText: 'Create new Export item',
186
198
  actions: [ReportListItem_1.ReportListItem],
187
199
  getDeleteAction: ExportRedux.ReportDelete,
188
200
  getDeleteConfirmationMsg: (abObject) => {
@@ -88,7 +88,7 @@ const AlertNotificationWizardSection = (props) => {
88
88
  },
89
89
  });
90
90
  };
91
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { "data-name": "display-options", className: "twa:mt-2 twa:mb-3", autoFocus: false, children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Notification Options" }), (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs.Content, { children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", alignItems: "flex-start", className: isScheduled ? 'twa:gap-2' : undefined, children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { className: isScheduled ? 'twa:my-0' : undefined, checked: data.AlertProperties?.DisplayNotification, onChange: (DisplayNotification) => {
91
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { "data-name": "display-options", className: "twa:mt-2 twa:mb-3", autoFocus: false, children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Notification Options" }), (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs.Content, { children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", alignItems: "flex-start", className: isScheduled ? 'twa:gap-4' : undefined, children: [(0, jsx_runtime_1.jsx)(CheckBox_1.CheckBox, { className: isScheduled ? 'twa:my-0' : undefined, checked: data.AlertProperties?.DisplayNotification, onChange: (DisplayNotification) => {
92
92
  if (isScheduled && scheduledData) {
93
93
  updateScheduledProperties({ DisplayNotification });
94
94
  return;
@@ -15,7 +15,7 @@ const Flex_1 = require("../../../components/Flex");
15
15
  const getRuleStepDescription = (alertType) => {
16
16
  switch (alertType) {
17
17
  case 'DataChange':
18
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Build the Rule ", (0, jsx_runtime_1.jsx)("b", { children: "when" }), " the Alert should trigger (using a Predicate or a Query)"] }));
18
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Build the Rule for when the Alert should trigger (using a Predicate or a Query)" }));
19
19
  case 'RowChange':
20
20
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Specify which type of Row Change will trigger the Alert" });
21
21
  case 'Validation':
@@ -85,7 +85,7 @@ const AlertWizard = (props) => {
85
85
  {
86
86
  title: 'Name & Type',
87
87
  isValid: AlertTypeWizardSection_1.isSettingsValid,
88
- details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Enter Name and select ", (0, jsx_runtime_1.jsx)("b", { children: "what" }), " type of change in AdapTable will cause the Alert to fire"] })),
88
+ details: ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Enter Name and select and select an Alert Type" })),
89
89
  render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2", children: (0, jsx_runtime_1.jsx)(AlertTypeWizardSection_1.AlertTypeWizardSection, { alertType: alertType, onAlertTypeChange: handleAlertTypeChange, onChange: setAlertDefinition }) })),
90
90
  renderSummary: () => (0, AlertTypeWizardSection_1.renderAlertTypeSummary)(alertType),
91
91
  },
@@ -99,7 +99,7 @@ const AlertWizard = (props) => {
99
99
  {
100
100
  title: 'Trigger',
101
101
  isVisible: () => alertType === getAlertType_1.AlertType.DataChange || alertType == getAlertType_1.AlertType.Validation,
102
- details: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["Specify ", (0, jsx_runtime_1.jsx)("b", { children: "where" }), " data changes should trigger the Alert"] })),
102
+ details: ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: "Specify which columns should trigger the Alert" })),
103
103
  isValid: (data) => (0, ScheduledAlertHelper_1.isRuleBasedAlertDefinition)(data) ? (0, NewScopeComponent_1.isScopeValid)(data) : true,
104
104
  render: () => ((0, jsx_runtime_1.jsx)(AlertScopeWizardSection_1.AlertScopeWizardSection, { alertType: alertType, onChange: setAlertDefinition })),
105
105
  renderSummary: BaseAlertScopeWizardSection_1.renderScopeSummary,
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
- export type ColumnFilterLocation = 'columnMenu' | 'filterForm';
2
+ import { ColumnFilterLocation } from './columnFilterLocation';
3
+ export type { ColumnFilterLocation } from './columnFilterLocation';
4
+ export { isEmbeddedColumnFilterLocation } from './columnFilterLocation';
3
5
  export declare const ColumnFilterLocationProvider: React.Provider<ColumnFilterLocation>;
4
6
  export declare const useColumnFilterLocation: () => ColumnFilterLocation;
5
7
  export interface AdaptableColumnFilterProps {
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AdaptableColumnFilter = exports.useColumnFilterLocation = exports.ColumnFilterLocationProvider = void 0;
3
+ exports.AdaptableColumnFilter = exports.useColumnFilterLocation = exports.ColumnFilterLocationProvider = exports.isEmbeddedColumnFilterLocation = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const ColumnFilter_1 = require("./ColumnFilter");
8
8
  const useAdaptableFilterWrapper_1 = require("./useAdaptableFilterWrapper");
9
+ const Panel_1 = tslib_1.__importDefault(require("../../../components/Panel"));
10
+ var columnFilterLocation_1 = require("./columnFilterLocation");
11
+ Object.defineProperty(exports, "isEmbeddedColumnFilterLocation", { enumerable: true, get: function () { return columnFilterLocation_1.isEmbeddedColumnFilterLocation; } });
9
12
  const ColumnFilterLocationContext = React.createContext(null);
10
13
  exports.ColumnFilterLocationProvider = ColumnFilterLocationContext.Provider;
11
14
  const useColumnFilterLocation = () => {
@@ -18,8 +21,12 @@ exports.useColumnFilterLocation = useColumnFilterLocation;
18
21
  */
19
22
  const AdaptableColumnFilter = (props) => {
20
23
  const { qlPredicate, qlPredicateDefs, columnFilter, handlePredicateChange } = (0, useAdaptableFilterWrapper_1.useAdaptableFilterWrapper)(props.columnId, 'FilterForm');
21
- return ((0, jsx_runtime_1.jsx)(exports.ColumnFilterLocationProvider, { value: props.location, children: (0, jsx_runtime_1.jsx)(ColumnFilter_1.ColumnFilterComponent, { location: props.location, wrapperProps: props.wrapperProps, columnId: props.columnId, predicate: qlPredicate, predicateDefs: qlPredicateDefs, disabled: columnFilter?.IsSuspended, onPredicateChange: React.useCallback((predicate) => {
24
+ const filterContent = ((0, jsx_runtime_1.jsx)(exports.ColumnFilterLocationProvider, { value: props.location, children: (0, jsx_runtime_1.jsx)(ColumnFilter_1.ColumnFilterComponent, { location: props.location, wrapperProps: props.wrapperProps, columnId: props.columnId, predicate: qlPredicate, predicateDefs: qlPredicateDefs, disabled: columnFilter?.IsSuspended, onPredicateChange: React.useCallback((predicate) => {
22
25
  handlePredicateChange(predicate);
23
26
  }, [handlePredicateChange]) }) }));
27
+ if (props.location === 'filtersToolPanel') {
28
+ return ((0, jsx_runtime_1.jsx)(Panel_1.default, { className: "twa:mb-2", bodyProps: { className: 'twa:p-0' }, children: filterContent }));
29
+ }
30
+ return filterContent;
24
31
  };
25
32
  exports.AdaptableColumnFilter = AdaptableColumnFilter;
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { QlPredicate, QlPredicateDef } from '../../../parser/src/predicate';
3
+ import { ColumnFilterLocation } from './columnFilterLocation';
3
4
  interface ColumnFilterComponentProps {
4
- location: 'columnMenu' | 'filterForm';
5
+ location: ColumnFilterLocation;
5
6
  hideActionButtons?: boolean;
6
7
  columnId: string;
7
8
  disabled?: boolean;
@@ -14,6 +14,7 @@ const Flex_1 = require("../../../components/Flex");
14
14
  const clsx_1 = tslib_1.__importDefault(require("clsx"));
15
15
  const twMerge_1 = require("../../../twMerge");
16
16
  const NewSelect_1 = require("../../../components/NewSelect");
17
+ const columnFilterLocation_1 = require("./columnFilterLocation");
17
18
  const ColumnFilterPredicateDropdown = (props) => {
18
19
  const predicateDef = (0, hooks_1.usePredicateDef)(props.predicate?.operator, props.predicateDefs);
19
20
  const options = props.predicateDefs.map((predicateDef) => {
@@ -133,10 +134,10 @@ const ColumnFilterComponent = (props) => {
133
134
  .some((adaptablePredicate) => adaptable.api.predicateApi.isValidPredicate(adaptablePredicate));
134
135
  };
135
136
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Flex_1.Flex, { flexDirection: "column", className: (0, clsx_1.default)({
136
- 'twa:bg-primarylight': true,
137
137
  'twa:pb-2': !props.hideActionButtons,
138
- 'twa:mb-2': props.location === 'filterForm',
138
+ 'twa:mb-2': (0, columnFilterLocation_1.isEmbeddedColumnFilterLocation)(props.location),
139
139
  'twa:mt-2 twa:ml-2 twa:mr-2': props.location === 'columnMenu',
140
+ 'twa:mx-2': props.location === 'filtersToolPanel',
140
141
  'twa:rounded-standard': true,
141
142
  }), children: [(0, jsx_runtime_1.jsx)(Flex_1.Flex, { className: "twa:m-2", children: (0, jsx_runtime_1.jsx)(AndOrInput, { onChange: onCombineChange, operator: currentPredicate.operator }) }), !props.hideActionButtons && ((0, jsx_runtime_1.jsxs)(Flex_1.Flex, { className: "ab-ColumnFilter-actions twa:ml-2 twa:mr-2", justifyContent: "space-between", children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "ab-ColumnFilter-action-clearall", children: (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { "aria-label": 'Clear All Filters', onClick: () => clearAllFilters(), children: "Clear All" }) }), manuallyApplyColumnFilter ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:flex-1", "data-name": "spacer" }), (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "ab-ColumnFilter-action-reset twa:mr-2", children: (0, jsx_runtime_1.jsx)(SimpleButton_1.default, { "aria-label": 'Reset All', tone: "neutral", variant: "raised", onClick: () => {
142
143
  setPredicateNotYetApplied(props.predicate);
@@ -0,0 +1,2 @@
1
+ export type ColumnFilterLocation = 'columnMenu' | 'filterForm' | 'filtersToolPanel';
2
+ export declare const isEmbeddedColumnFilterLocation: (location: ColumnFilterLocation) => boolean;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEmbeddedColumnFilterLocation = void 0;
4
+ const isEmbeddedColumnFilterLocation = (location) => location === 'filterForm' || location === 'filtersToolPanel';
5
+ exports.isEmbeddedColumnFilterLocation = isEmbeddedColumnFilterLocation;
@@ -12,6 +12,7 @@ const TreeDropdown_1 = require("../../../components/Tree/TreeDropdown");
12
12
  const GeneralConstants_1 = require("../../../Utilities/Constants/GeneralConstants");
13
13
  const react_1 = require("react");
14
14
  const Combobox_1 = require("../../../components/Combobox");
15
+ const columnFilterLocation_1 = require("../ColumnFilter/columnFilterLocation");
15
16
  const AdaptableColumnFilter_1 = require("../ColumnFilter/AdaptableColumnFilter");
16
17
  const TreeDropdown_2 = require("../../../components/Tree/TreeDropdown");
17
18
  const baseClassName = 'ab-ListBoxFilterForm';
@@ -165,7 +166,7 @@ const ColumnValuesSelect = (props) => {
165
166
  : props.onChange, items: options,
166
167
  // for dates, the treeDateOptions have ids that are numbers
167
168
  // so we have to add the `toDateValue` function to convert the values to the correct format
168
- value: selectedColumnValues, primaryKey: 'value', isLoading: props.isLoading, onOpenChange: onOpenChange, showClear: location === 'filterForm' })) : ((0, jsx_runtime_1.jsx)(Combobox_1.GridFilterCombobox, { disabled: props.disabled, ...selectProps, onOpenChange: onOpenChange, items: options, value: value, isLoading: props.isLoading, onValueChange: props.onChange, showClear: location === 'filterForm' }, "select"));
169
+ value: selectedColumnValues, primaryKey: 'value', isLoading: props.isLoading, onOpenChange: onOpenChange, showClear: (0, columnFilterLocation_1.isEmbeddedColumnFilterLocation)(location) })) : ((0, jsx_runtime_1.jsx)(Combobox_1.GridFilterCombobox, { disabled: props.disabled, ...selectProps, onOpenChange: onOpenChange, items: options, value: value, isLoading: props.isLoading, onValueChange: props.onChange, showClear: (0, columnFilterLocation_1.isEmbeddedColumnFilterLocation)(location) }, "select"));
169
170
  return ((0, jsx_runtime_1.jsx)("div", { className: (0, join_1.default)(baseClassName, 'twa:relative', props.isLoading && `${baseClassName}--loading`, !value.length && `${baseClassName}--empty`), onKeyDownCapture: (e) => {
170
171
  if (e.key === 'Tab') {
171
172
  // Prevent AG Grid from hijacking Tab; keep browser default focus navigation.
@@ -4,8 +4,17 @@ exports.ExportPopupWizardRouter = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const NewReportWizard_1 = require("./NewReportWizard");
6
6
  const ScheduledReportWizard_1 = require("./ScheduledReportWizard");
7
- const ExportPopupWizardRouter = (props) => {
7
+ const isScheduledReportWizard = (props) => {
8
8
  if (props.popupParams?.action === 'NewSchedule') {
9
+ return true;
10
+ }
11
+ if (props.data != null && 'Schedule' in props.data) {
12
+ return true;
13
+ }
14
+ return props.abObjectType?.name === 'Schedule';
15
+ };
16
+ const ExportPopupWizardRouter = (props) => {
17
+ if (isScheduledReportWizard(props)) {
9
18
  const scheduleProps = props;
10
19
  return (0, jsx_runtime_1.jsx)(ScheduledReportWizard_1.ScheduledReportWizard, { ...scheduleProps });
11
20
  }
@@ -1,11 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { ExportDestinationType } from '../../../AdaptableOptions/ExportOptions';
3
- import { ReportFormatType, ReportSchedule } from '../../../AdaptableState/ExportState';
3
+ import { ReportFormatType, ReportNameType, ReportSchedule } from '../../../AdaptableState/ExportState';
4
4
  interface ScheduledReportSettingsProps {
5
5
  reportSchedule: ReportSchedule;
6
6
  onChange: (reportSchedule: ReportSchedule) => void;
7
7
  allFormats: ReportFormatType[];
8
8
  allDestinations: ExportDestinationType[];
9
+ /** When set, the user picks which report this schedule exports (Export popup → New Schedule). */
10
+ allReportNames?: ReportNameType[];
9
11
  }
10
12
  export declare const ScheduledReportSettings: React.FunctionComponent<ScheduledReportSettingsProps>;
11
13
  export {};
@@ -23,7 +23,14 @@ const ScheduledReportSettings = (props) => {
23
23
  label: destination,
24
24
  value: destination,
25
25
  }));
26
- return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { "data-name": "scheduled-report-settings", children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { autoFocus: false, className: "twa:mb-3", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Settings" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { children: [(0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Name", children: (0, jsx_runtime_1.jsx)(Input_1.default, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Schedule Name", type: "string", value: props.reportSchedule?.Name ?? '' }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Format", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[300px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", "data-name": "select-format", items: formatOptions, value: props.reportSchedule?.ReportFormat, placeholder: "Select Format", onValueChange: (value) => props.onChange({
26
+ const reportOptions = (props.allReportNames ?? []).map((reportName) => ({
27
+ label: reportName,
28
+ value: reportName,
29
+ }));
30
+ return ((0, jsx_runtime_1.jsx)(Flex_1.Box, { "data-name": "scheduled-report-settings", children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { autoFocus: false, className: "twa:mb-3", children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Tab, { children: "Settings" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tabs.Content, { children: (0, jsx_runtime_1.jsxs)(FormLayout_1.default, { children: [props.allReportNames && ((0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Report", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[300px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", "data-name": "select-report", items: reportOptions, value: props.reportSchedule?.ReportName || undefined, placeholder: "Select Report", onValueChange: (value) => props.onChange({
31
+ ...props.reportSchedule,
32
+ ReportName: value,
33
+ }) }) }) })), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Name", children: (0, jsx_runtime_1.jsx)(Input_1.default, { "data-name": "schedule-name", className: "twa:w-[300px]", onChange: handleNameChange, placeholder: "Enter Schedule Name", type: "string", value: props.reportSchedule?.Name ?? '' }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Format", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[300px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", "data-name": "select-format", items: formatOptions, value: props.reportSchedule?.ReportFormat, placeholder: "Select Format", onValueChange: (value) => props.onChange({
27
34
  ...props.reportSchedule,
28
35
  ReportFormat: value,
29
36
  }) }) }) }), (0, jsx_runtime_1.jsx)(FormLayout_1.FormRow, { label: "Destination", children: (0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:max-w-[300px]", children: (0, jsx_runtime_1.jsx)(NewSelect_1.SingleSelect, { className: "twa:w-full", "data-name": "select-destination", items: destinationOptions, value: props.reportSchedule?.ExportDestination, placeholder: "Select Destination", onValueChange: (value) => props.onChange({
@@ -28,10 +28,11 @@ const ScheduledReportWizard = (props) => {
28
28
  });
29
29
  const dispatch = (0, react_redux_1.useDispatch)();
30
30
  const handleFinish = () => {
31
- if (!reportName) {
31
+ const resolvedReportName = reportName ?? reportSchedule.ReportName;
32
+ if (!resolvedReportName?.trim()) {
32
33
  return;
33
34
  }
34
- const scheduleToSave = { ...reportSchedule, ReportName: reportName };
35
+ const scheduleToSave = { ...reportSchedule, ReportName: resolvedReportName };
35
36
  const action = isNew
36
37
  ? ExportRedux.ScheduledReportAdd(scheduleToSave)
37
38
  : ExportRedux.ScheduledReportEdit(scheduleToSave);
@@ -76,5 +77,9 @@ const ScheduledReportSettingsSection = (props) => {
76
77
  const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
77
78
  const allFormats = api.exportApi.getAvailableSystemFormats();
78
79
  const allDestinations = api.exportApi.getAllExportDestinations();
79
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [props.reportName && ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_1.SummaryText, { children: ["Report: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: props.reportName })] })), (0, jsx_runtime_1.jsx)(ScheduledReportSettings_1.ScheduledReportSettings, { reportSchedule: data, onChange: props.onChange, allFormats: allFormats ?? [], allDestinations: allDestinations ?? [] })] }));
80
+ const fixedReportName = props.reportName;
81
+ const allReportNames = fixedReportName
82
+ ? undefined
83
+ : api.exportApi.internalApi.getAllAvailableReportNames();
84
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [fixedReportName && ((0, jsx_runtime_1.jsxs)(OnePageAdaptableWizard_1.SummaryText, { children: ["Report: ", (0, jsx_runtime_1.jsx)(Tag_1.Tag, { children: fixedReportName })] })), (0, jsx_runtime_1.jsx)(ScheduledReportSettings_1.ScheduledReportSettings, { reportSchedule: data, onChange: props.onChange, allFormats: allFormats ?? [], allDestinations: allDestinations ?? [], allReportNames: allReportNames })] }));
80
85
  };
@@ -1,3 +1,3 @@
1
1
  import { AdaptableApi } from '../../../Api/AdaptableApi';
2
2
  import { ReportSchedule } from '../../../AdaptableState/ExportState';
3
- export declare const isReportScheduleSettingsValid: (reportSchedule: ReportSchedule, api: AdaptableApi) => true | "A name is required." | "A scheduled export with this name already exists." | "Please select a report format.";
3
+ export declare const isReportScheduleSettingsValid: (reportSchedule: ReportSchedule, api: AdaptableApi) => true | "A name is required." | "A scheduled export with this name already exists." | "Please select a report." | "Please select a report format.";
@@ -12,6 +12,9 @@ const isReportScheduleSettingsValid = (reportSchedule, api) => {
12
12
  if (isDuplicateName) {
13
13
  return 'A scheduled export with this name already exists.';
14
14
  }
15
+ if (StringExtensions_1.default.IsNullOrEmpty(reportSchedule?.ReportName?.trim())) {
16
+ return 'Please select a report.';
17
+ }
15
18
  if (StringExtensions_1.default.IsNullOrEmpty(reportSchedule?.ReportFormat)) {
16
19
  return 'Please select a report format.';
17
20
  }
@@ -24,6 +24,10 @@ const isPivotLayout_1 = require("../../../Utilities/isPivotLayout");
24
24
  const PivotRowGroupingSection_1 = require("./sections/PivotRowGroupingSection");
25
25
  const PivotAggregationsSection_1 = require("./sections/PivotAggregationsSection");
26
26
  const Flex_1 = require("../../../components/Flex");
27
+ const getLayoutWizardTitle = (layout, moduleFriendlyName) => {
28
+ const layoutName = layout.Name?.trim();
29
+ return layoutName ? `${moduleFriendlyName} (${layoutName})` : moduleFriendlyName;
30
+ };
27
31
  const LayoutWizard = (props) => {
28
32
  const dispatch = (0, react_redux_1.useDispatch)();
29
33
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
@@ -77,7 +81,8 @@ const LayoutWizard = (props) => {
77
81
  props.onFinishWizard(layout);
78
82
  };
79
83
  const layoutSupportedFeatures = adaptable.api.layoutApi.internalApi.getLayoutSupportedFeatures();
80
- return (0, isPivotLayout_1.isPivotLayout)(layout) ? ((0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
84
+ const wizardTitle = getLayoutWizardTitle(layout, props.moduleInfo.FriendlyName);
85
+ return (0, isPivotLayout_1.isPivotLayout)(layout) ? ((0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, moduleName: wizardTitle, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
81
86
  {
82
87
  title: 'Settings',
83
88
  details: 'Configure Pivot Layout',
@@ -155,7 +160,7 @@ const LayoutWizard = (props) => {
155
160
  render: () => ((0, jsx_runtime_1.jsx)(Flex_1.Box, { className: "twa:p-2", children: (0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageWizardSummary, {}) })),
156
161
  title: 'Summary',
157
162
  },
158
- ] })) : ((0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
163
+ ] })) : ((0, jsx_runtime_1.jsx)(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, moduleName: wizardTitle, data: layout, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
159
164
  {
160
165
  title: 'Settings',
161
166
  details: 'Configure Table Layout',
@@ -6,7 +6,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_redux_1 = require("react-redux");
7
7
  const AdaptableContext_1 = tslib_1.__importDefault(require("./AdaptableContext"));
8
8
  const AdaptableComputedCSSVarsContext_1 = require("./AdaptableComputedCSSVarsContext");
9
- const tooltip_1 = require("~/components/ui/tooltip");
9
+ const tooltip_1 = require("../components/ui/tooltip");
10
10
  const renderWithAdaptableContext = (children, adaptable) => {
11
11
  return ((0, jsx_runtime_1.jsx)(tooltip_1.TooltipProvider, { delay: 300, children: (0, jsx_runtime_1.jsx)(react_redux_1.Provider, { store: adaptable.adaptableStore.TheStore, children: (0, jsx_runtime_1.jsx)(AdaptableComputedCSSVarsContext_1.WithAdaptableComputedCSSVars, { children: (0, jsx_runtime_1.jsx)(AdaptableContext_1.default.Provider, { value: adaptable, children: children }) }) }) }));
12
12
  };
@@ -1,5 +1,5 @@
1
1
  import { AdaptableApi } from '../Api/AdaptableApi';
2
- import { ReactElement } from 'react';
2
+ import { ComponentType, ReactElement } from 'react';
3
3
  import { BaseContext } from '../types';
4
4
  /**
5
5
  * Base Component for Bespoke Components: can be Angular, React or Vue
@@ -21,12 +21,34 @@ export type AngularFrameworkComponent<T = unknown> = {
21
21
  }) => Partial<T>;
22
22
  };
23
23
  /**
24
- *
25
- * A function that returns a ReactNode
24
+ * A function that returns a ReactNode (toolbars, settings panels, tool panels, etc.).
25
+ * For custom Column / Context menu rows, use `ReactMenuItemFrameworkComponent` instead.
26
26
  */
27
27
  export type ReactFrameworkComponent = ({ adaptableApi, }: {
28
28
  adaptableApi: AdaptableApi;
29
29
  }) => ReactElement;
30
+ /** AdapTable extras passed on AG Grid `menuItemParams` for custom menu items. */
31
+ export interface AdaptableMenuItemParams<TMenuContext = unknown> {
32
+ adaptableApi: AdaptableApi;
33
+ menuContext: TMenuContext;
34
+ }
35
+ /**
36
+ * Props AG Grid passes to React custom menu item components, with AdapTable
37
+ * `menuItemParams` (see `AgGridMenuAdapter.mapCustomMenuItemToAgGridMenuDefinition`).
38
+ */
39
+ export interface AdaptableReactMenuItemProps<TMenuContext = unknown> {
40
+ name: string;
41
+ menuItemParams: AdaptableMenuItemParams<TMenuContext> & Record<string, unknown>;
42
+ }
43
+ /**
44
+ * React component for custom Column / Context menu rows (AG Grid `menuItem`).
45
+ * Unlike `ReactFrameworkComponent`, receives `name` and `menuItemParams`, not only `adaptableApi`.
46
+ */
47
+ export type ReactMenuItemFrameworkComponent<TMenuContext = unknown> = ComponentType<AdaptableReactMenuItemProps<TMenuContext>>;
48
+ /**
49
+ * Framework component for a custom menu item (Column Menu or Context Menu).
50
+ */
51
+ export type MenuItemFrameworkComponent<TMenuContext = unknown> = AngularFrameworkComponent | VueFrameworkComponent | ReactMenuItemFrameworkComponent<TMenuContext>;
30
52
  /**
31
53
  * Creates a Vue Component to be used in AdapTable UI controls
32
54
  */
@@ -42,10 +42,12 @@ const AgGridFilterAdapterFactory = (adaptable) => {
42
42
  const columnId = this.column.getColId();
43
43
  let column = adaptable.api.columnApi.getColumnWithColumnId(columnId);
44
44
  if (column) {
45
+ const isFiltersToolPanel = typeof params?.hidePopup !== 'function';
46
+ const location = isFiltersToolPanel ? 'filtersToolPanel' : 'columnMenu';
45
47
  this.unmountReactRoot = adaptable.renderReactRoot((0, renderWithAdaptableContext_1.renderWithAdaptableContext)(React.createElement(AdaptableColumnFilter_1.AdaptableColumnFilter, {
46
48
  columnId,
47
49
  wrapperProps: { className: 'twa:p-2' },
48
- location: 'columnMenu',
50
+ location,
49
51
  }), adaptable), this.filterContainer);
50
52
  }
51
53
  }
@@ -4,7 +4,7 @@ exports.GridFilterCombobox = exports.MultiCombobox = exports.SingleCombobox = vo
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
- const combobox_1 = require("~/components/ui/combobox");
7
+ const combobox_1 = require("../ui/combobox");
8
8
  const utils_1 = require("../../lib/utils");
9
9
  const lucide_react_1 = require("lucide-react");
10
10
  const react_1 = require("react");
@@ -13,10 +13,10 @@ const DatepickerContext_1 = require("./DatepickerContext");
13
13
  const AdaptableDateInlineInput_1 = require("../../View/Components/AdaptableInput/AdaptableDateInlineInput");
14
14
  const date_fns_1 = require("date-fns");
15
15
  const Flex_1 = require("../Flex");
16
- const utils_1 = require("~/lib/utils");
17
- const popover_1 = require("~/components/ui/popover");
18
- const calendar_1 = require("~/components/ui/calendar");
19
- const input_group_1 = require("~/components/ui/input-group");
16
+ const utils_1 = require("../../lib/utils");
17
+ const popover_1 = require("../ui/popover");
18
+ const calendar_1 = require("../ui/calendar");
19
+ const input_group_1 = require("../ui/input-group");
20
20
  const NewSelect_1 = require("../NewSelect");
21
21
  const twUtils_1 = require("../twUtils");
22
22
  // ── Caption dropdown components (month/year) ──────────────────────────
@@ -4,7 +4,7 @@ exports.NewDropdownButton = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
- const dropdown_menu_1 = require("~/components/ui/dropdown-menu");
7
+ const dropdown_menu_1 = require("../ui/dropdown-menu");
8
8
  const NewTooltip_1 = require("../NewTooltip");
9
9
  const utils_1 = require("../../lib/utils");
10
10
  const lucide_react_1 = require("lucide-react");
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MultiSelect = exports.SingleSelect = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
- const select_1 = require("~/components/ui/select");
7
- const tooltip_1 = require("~/components/ui/tooltip");
6
+ const select_1 = require("../ui/select");
7
+ const tooltip_1 = require("../ui/tooltip");
8
8
  const utils_1 = require("../../lib/utils");
9
9
  const react_1 = tslib_1.__importDefault(require("react"));
10
10
  const getItemTitle = (label, value) => {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NewTooltip = NewTooltip;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
- const tooltip_1 = require("~/components/ui/tooltip");
5
+ const tooltip_1 = require("../ui/tooltip");
6
6
  function NewTooltip({ label, children, side, align }) {
7
7
  if (!label) {
8
8
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
@@ -5,7 +5,7 @@ exports.Button = Button;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const button_1 = require("@base-ui/react/button");
7
7
  const class_variance_authority_1 = require("class-variance-authority");
8
- const utils_1 = require("~/lib/utils");
8
+ const utils_1 = require("../../lib/utils");
9
9
  const buttonVariants = (0, class_variance_authority_1.cva)('twa:group/button twa:inline-flex twa:shrink-0 twa:items-center twa:justify-center twa:rounded-button twa:border twa:border-transparent twa:bg-clip-padding twa:text-sm twa:font-medium twa:whitespace-nowrap twa:transition-all twa:outline-none twa:select-none twa:focus-visible:border-ring twa:focus-visible:ring-3 twa:focus-visible:ring-ring/50 twa:active:translate-y-px twa:disabled:pointer-events-none twa:disabled:opacity-50 twa:aria-invalid:border-destructive twa:aria-invalid:ring-3 twa:aria-invalid:ring-destructive/20 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', {
10
10
  variants: {
11
11
  variant: {
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { DayPicker } from 'react-day-picker';
3
- import { Button } from '~/components/ui/button';
3
+ import { Button } from "./button";
4
4
  declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, locale, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
5
5
  buttonVariant?: React.ComponentProps<typeof Button>['variant'];
6
6
  }): React.JSX.Element;
@@ -5,8 +5,8 @@ const tslib_1 = require("tslib");
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const react_day_picker_1 = require("react-day-picker");
8
- const utils_1 = require("~/lib/utils");
9
- const button_1 = require("~/components/ui/button");
8
+ const utils_1 = require("../../lib/utils");
9
+ const button_1 = require("./button");
10
10
  const lucide_react_1 = require("lucide-react");
11
11
  const CalendarRoot = ({ className, rootRef, ...props }) => {
12
12
  return (0, jsx_runtime_1.jsx)("div", { "data-slot": "calendar", ref: rootRef, className: (0, utils_1.cn)(className), ...props });
@@ -22,9 +22,9 @@ const jsx_runtime_1 = require("react/jsx-runtime");
22
22
  const React = tslib_1.__importStar(require("react"));
23
23
  const react_1 = require("@base-ui/react");
24
24
  Object.defineProperty(exports, "ComboboxPrimitive", { enumerable: true, get: function () { return react_1.Combobox; } });
25
- const utils_1 = require("~/lib/utils");
26
- const button_1 = require("~/components/ui/button");
27
- const input_group_1 = require("~/components/ui/input-group");
25
+ const utils_1 = require("../../lib/utils");
26
+ const button_1 = require("./button");
27
+ const input_group_1 = require("./input-group");
28
28
  const lucide_react_1 = require("lucide-react");
29
29
  const CheckBox_1 = require("../CheckBox");
30
30
  const useFilteredItems = react_1.Combobox.useFilteredItems;